From xen-devel-bounces@lists.xenproject.org Mon Dec 01 03:47:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 03:47:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175482.1500126 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPusT-0000xJ-3c; Mon, 01 Dec 2025 03:47:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175482.1500126; Mon, 01 Dec 2025 03:47:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPusS-0000x7-T8; Mon, 01 Dec 2025 03:47:04 +0000
Received: by outflank-mailman (input) for mailman id 1175482;
 Mon, 01 Dec 2025 03:47:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=isLO=6H=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vPusR-0000x1-UI
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 03:47:04 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5fa19831-ce68-11f0-980a-7dc792cee155;
 Mon, 01 Dec 2025 04:46:57 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 PH7PR12MB7890.namprd12.prod.outlook.com (2603:10b6:510:268::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Mon, 1 Dec
 2025 03:46:49 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2%2]) with mapi id 15.20.9366.012; Mon, 1 Dec 2025
 03:46:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5fa19831-ce68-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yCCq3NQbCp1lBuhnzczyzWF6CLsbNvhIFbMGzSxfqxNqnxO6AE3zm63SAmjkJpic2ue7z/u61FEbvRu9bp8IcAMwbKh+N16L0d92LlqgHnQ66KbgZgkX+631tUtaYuE85D3D8Vz2mm+B6VdeFJD003fl57ufLE65ZbwrFzWERHN6CaQ+AwGOUORgi5zkhBoW6B7mRDCpNDJbsUqcYg83zWOuoHBqWF4CFrLVYZpWrP6IO2rUj/sqGrp+xiKFBupNVAEwrbz+fYrBSTiyjPjR5pLluc9spNhTy62AqgXrTItTZ7ywy/3HZlOoQxePLdbUkuv5wv4xQz8WwHvABtQkMw==
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=eJJ92duJHZRAHvmDUvVqO816Fjj51lbIVpkTPrDRKIs=;
 b=Dx2sw1vtOyTO1NNH9f9ru3hDOcY3LGLyLEO7bPPR5jTh6mYSxzk+66BhDGvoY/3u6T21vdUV5dFnnv/PKIGz6xzq1Ks9LFxHKkXmiIXXsS3MU3w+kEGvLPfpSuoTDIQe+FBx2E0naZMwzROMn9sd5Cs1ZU4lbqUtMNj+GLmE8+aoSK1E8/FC6qX8P2Z+Sbi8SQRd4EFQosj+wXQzhAviCVI55dPujhCg/PyZYuxGZ2Jw0bSFttVrE13YMlADz1+VCRFQdq5XRIi+Jayk1QJNel2e7a7m8TR0XDtf/4UoIkz6QaPuDNefFnJ37RkliLaqvy2qGFTbRpH+2FbpMzq2cA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eJJ92duJHZRAHvmDUvVqO816Fjj51lbIVpkTPrDRKIs=;
 b=f0oa25gJodkWJ0Er0Hibsl5J1YFeIFeUG7oQndEwpPhuejHcjqRwnCUGlLRZBkQe1NNYRwCItXH309FR90ohxt624TjUJ6h4PIb6mC5dyN3gwqgR/ibWyiHCcdqHGrSF65lJWsrzHNgjl48cgwLhGBwjYJMBPxXCSd2egHzok+A=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "grygorii_strashko@epam.com"
	<grygorii_strashko@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Tamas K Lengyel
	<tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>, Petre
 Pircalabu <ppircalabu@bitdefender.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v3 6/7] xen/mem_access: wrap memory access when VM_EVENT=n
Thread-Topic: [PATCH v3 6/7] xen/mem_access: wrap memory access when
 VM_EVENT=n
Thread-Index: AQHcWseQ6uI32DuOSE+vYe1IrUdoVbUB4liAgApSOvA=
Date: Mon, 1 Dec 2025 03:46:48 +0000
Message-ID:
 <DM4PR12MB8451F30DFF25A0EA7BF3327CE1DBA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251121091554.1003315-1-Penny.Zheng@amd.com>
 <20251121091554.1003315-7-Penny.Zheng@amd.com>
 <e9a85592-9df1-4f32-82df-20c7f069d1e2@suse.com>
In-Reply-To: <e9a85592-9df1-4f32-82df-20c7f069d1e2@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-12-01T03:46:40.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|PH7PR12MB7890:EE_
x-ms-office365-filtering-correlation-id: 4f8e6752-cc72-4d0a-dee8-08de308c4193
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?dWVFU0ZUWTNTbENTQzYwZmdlRGNQMzBUS3BYSzdHSFhpbmZ2b1pMb09Xa21S?=
 =?utf-8?B?cTVSNzdEV0lPRmlmSlhlWVFLQkEzaWNVdHc1V05DVFoxWVdKUjMrcDl5WFdN?=
 =?utf-8?B?dUR2cmhYZGhMVjQxMndiY3JaS1FYVWg4L04vRXNTZkc0TmFQcVZzWWJkMHJ5?=
 =?utf-8?B?NDRNd00vUWdRbnM0MmJVenhBK0xXSWRlQmJIdmdBOFE1N0dER1ZnOHAwWWpt?=
 =?utf-8?B?NjlHSHZ2dE5wTTRSVHIyY0JtUlFvMGViM0UrWmpmcmYwYXU1M1VYdVZsY1A2?=
 =?utf-8?B?dUR1N0RMeXYxbHdkSFAxUENHbC83NEh5RWNZdlVqSm9jbUt6TzlZU0pGOEE4?=
 =?utf-8?B?ZHZVSFNLUHk2TldzYXdiZ0x5eUdNT1NQMVpIdlNiajVnb3BRT2w4YmFPN0hH?=
 =?utf-8?B?NlJpbUt6L3JBb0czNEdhWWZwOTBSd0VCdzhWdWpBZm5jUGFxNGo4U3QvQmYx?=
 =?utf-8?B?Qk1UWHZWRUR5aDNReUpKM3F2MzRIaUZaSlFlcjROQkJxNXBhL1d4NTdXcGxn?=
 =?utf-8?B?UDF0Wm1CdU5pUlQ3aXd4UlIyNU9hQkZCdEZOZE5aU3A1VUpTSzVTYUV5Nk5K?=
 =?utf-8?B?bmkrbUlrRXE5bVNOZFZrdmtLT0J3TXlOaENSRmQ0b3ZYV1R2ZHlHNTkzL2Ny?=
 =?utf-8?B?NVVOUm5BTnlTaExTRHhtekFldFA4a1FjdUpvYklwb0MzYk16bmVyV3hFMlJI?=
 =?utf-8?B?bTd6WFBFNlp2MWlrU2p3VG9PdWV2N3I4eGxpVGFuUTlTRENRWktmMGI2SHVR?=
 =?utf-8?B?dUdTZWI5dHJlcVNnZmsxQ0VET1J4ZnR6dWI2cm1YUkRFNStxYzJuOE40RGh0?=
 =?utf-8?B?dDMvMTYzSEtSaEV4VXVnYXhqdGY5dk4yMkNVMjFZZnRRWjJpUllEWUNwelkx?=
 =?utf-8?B?QXhzQlBkem1ETnlueFhHdDVveTMxNER0c3NQUVlkaWxKNHJCTVhYUGl4dDhE?=
 =?utf-8?B?Y0s2K2JmZ1pOUTczRmJXUGFmK3JUZUk3Q1d4ZmNvSklGV2tRL2VKbVg5UVZk?=
 =?utf-8?B?cm1kNWRwOUlyN0RReDJzN3dmMnh0VTd6ZXo1WW9rTmxhOEtHeEpBa3EzNFV5?=
 =?utf-8?B?Mi9HN25sL0lzZTU4dWJwbS9hMUE3SXJoOHZ2aWdpaGZMcUxsK0o4d0tIMFlt?=
 =?utf-8?B?ckFlTUxBd2pUb0FmSVVBbThDUXA5NTcxd0Z1QkhXYkR3bEJSdkNWbFpwbThR?=
 =?utf-8?B?dW9ESUhoZDJ6a1NzWFJzK2VOdGIrWkpZWE85SXhOTkJSSEROeDVOQmh2TVRZ?=
 =?utf-8?B?QXFQVUxBTms3RTBydEFJZVFsQWVxMWNTYUdTUGNBRXJSSEgzMHdQN2xONStP?=
 =?utf-8?B?TFVvSndYWkNqU2xDem5zRFUxYnBmTDNUYzZZdnVFdWU4dElweDhLQzNwZmtn?=
 =?utf-8?B?RzB5blVPTUM0K0F0TkpHL0RRNEdabnUzcUxjdEJtR2RkUm1udzFQWnRLTDRE?=
 =?utf-8?B?YU50N3lHdjJjK01nL0tQYUlvcGZnanptd2tkSUs2cklRaXI0YVFyVDJwTTZE?=
 =?utf-8?B?V1FreW0rVzZ2bDRISTlhOHJPalRRU2VhYmN0OTFWVEhUaFpOdE16SzZNaER6?=
 =?utf-8?B?bks5bWV2ak1QenVOTDkvTVlseWtvTGJIYjhKeTNMUndqRStSeFdZcHdxWG1u?=
 =?utf-8?B?WHJPNUV1VTFPKzRmeTNoVW84c3ZNUGRMb2xpWHhHMWN4TStBaWxweGZjVWtG?=
 =?utf-8?B?cStIaWs5eEpQQ0VjVzdHSXVlQXdjL1JhZ1k3UFk2djhHVDlQUmwwc1pkMDRT?=
 =?utf-8?B?eUtyR3NObUpxUWZzY0ZWdFQ3OHJFTXVXcGpsaThwRHluWXZtd3lNb24yOGdD?=
 =?utf-8?B?b3ZmeXg3UUZCT2tOQ2E3b3dmRzlIWFY5dG9CTkFMOVlNaHFQeDlZMWZ3ZTU5?=
 =?utf-8?B?SlRrWkh4aG1tZlFsWTFEMSs2eXlRRzBoOFowMG9FVTVrTnNxWjEwNEpRUDhR?=
 =?utf-8?B?ZW8zZ29UY3M4QzJLWFlSTXkwakpMS1NiN0luR3FDRHVsdDdOOGgrNDQxMFdv?=
 =?utf-8?B?UERDamNLTTJ3dVRXNWJRNWNrNjU4YjRieUdTRlhzenRsRnlYbnRhVVBVdHAx?=
 =?utf-8?Q?Ra3Ax4?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?RW55OFdJd3NDMHBiejNNTDhhNjVwQndRSWpvMHM1WG01aS9QVlRMTFZ0MTdk?=
 =?utf-8?B?U29sbnJjUnZINkhVSUhSaEpTZm15VndzNmwrVzBhTWloVExnQ1FpUEppTTFa?=
 =?utf-8?B?d0t4NndDRzF4YTRBZldFZGRqT0NQWVpzN0lZbWlFK0E4NE5FbTViU2VJN3Br?=
 =?utf-8?B?NEk3Y0pQS05EeXhZRWsza2VBL2dFZFRCcm1QamlNbmpyQzlyTXcwcXV6ZkVM?=
 =?utf-8?B?azIrZjloSURrNlk5R0x0cDM2UkNvSi9uc3l1QjFpZndWdGllVXVtYiszOHBO?=
 =?utf-8?B?UDFmTHgxUXVzTjloQnZiSGlyOEJKWFFZT3YzeS9jc3EvWDdtWU1vNVJTQWtp?=
 =?utf-8?B?WVFhd01xRDdtN1lBaUJ3N2kydGVFSVlYS2RVQm1KVUF6aG16SWdCNy9xWE1s?=
 =?utf-8?B?bUNrbmRocjlvRE9CVTBVWktjeUd5bUl1K1puK1ZZUGRGUUhrU05EZmV3MG01?=
 =?utf-8?B?a21KSUxuTG9GZzc1bld3bTJzUXF2ZmtEWHJweSsrRzN4WkpoN0RNOERsWGxI?=
 =?utf-8?B?VFFiNEp2eDQzTUsxL2VkWUg0dnp0S052TGlUNGp0azJXMXE3TkNnSkVxeGhT?=
 =?utf-8?B?RlZjNldkbDhHZXZCeUFROVlrM3FtdVc5TmNtMDNrSTIvdm9xQXBaQWdKQm5D?=
 =?utf-8?B?UGdRaEtjaHhJTm50QUx1a2tiNlh2VkNwZWk1bzVpd3pKSjhiYlBJaTkyU0hZ?=
 =?utf-8?B?SUFaSFNXNXpBQ2xsUTlVZG9WQlRlcTFzV3RuSnhMeXVoRFhDaFZKdTZxTkhH?=
 =?utf-8?B?UjJJLytXQ0xNWWlZbWpmanU3d3VmcjhSMTgvZEdiWkpTMWhabGhncXJ3VHo3?=
 =?utf-8?B?UUtxeGR2WGxmazdFYzFrZko5Mm5vQlQyeWZnY3ZtWnVTWmNsdm13cTVobUw5?=
 =?utf-8?B?SURFUGxzRGd1V1RNck01SkcrU214U0FBQW1PVVk1Ujg3NW9VTjlKdmZLWGI5?=
 =?utf-8?B?cmFDNmVyb1Zmc3g3OHVOUXpFbmUrSEVRVjl1cUFzUWZxaThRVHorcEdpUVU3?=
 =?utf-8?B?SUN2TW0vUGlJazFvK3FYVjAyWW5saUY2SktmR2s4THNsSkRjZHE0OHhVZVhN?=
 =?utf-8?B?RUY4NFFGTUZNTTBRU0U3WmUwQVV3N3pvWlJVRCtYaEdkS0ZZcVAzL1cwcUhv?=
 =?utf-8?B?cXF0a2JwcnYwNnVEbDIrZlRXcmV2M1oxWmZGNk9uRlhUWnpKSGxpL0p2aE1J?=
 =?utf-8?B?QVBjL24rRTlMYTdIeUYzcktseVVFbzMvN1BoRit6TW9NR0tFVjhmNUs2S2lZ?=
 =?utf-8?B?YzIrdGU0R1pENk1TR1RaYzZPQzRFT3pMZnNDN1J1ZndDNDdGMWZJck1HNWNv?=
 =?utf-8?B?VFhQN29WYWduNHVEazhJMUxVSnhqbTF2YzVSeTJXVHlFU1FWNHpCcm0zNjBq?=
 =?utf-8?B?aXZOc2MyQmtqNWpLZzF2N3NqaTdOKzNrK2o3c2dITXlsTUdFS25Zbk9PY0tw?=
 =?utf-8?B?QksrQ0p4d2FUTkpEakZYeUtXZnkyRER3VE4yd2tWSUt1NHFpMExwV21rU1Fp?=
 =?utf-8?B?anB3WWJhSUlpUUpPd29SU0t5NzhOWks1MElWeVdJSFRLMmJxMFpPY2ZVcCta?=
 =?utf-8?B?RnBRRmtQZTBIKzJ1UjFHWjdjRUJJYzVGaFBPNndyVWY3R2R5cUZjNDZOTGlY?=
 =?utf-8?B?b3hiQ3ZFVW93dXVhd0lhRDlQVUZDaEFwMGZpRFF2bGdPL0E4Rm9acnk1M21h?=
 =?utf-8?B?RVMvL04xS296NFdiaE9jcFhSdHNyYUxDZzhsd1FyQnU2N0l6b0tiSzNPMG0x?=
 =?utf-8?B?UDVQb1RCV1Q1VWlCZFYzVTVsbzU3U3c5N1ZEWHZDSnJaSDVDT1hCWjJxemdq?=
 =?utf-8?B?OXBMbXlOTmZ2bzZFQytNdEwrZksrOVNvUU9DaXcvMENtVVN1Qm5vUEdXOG55?=
 =?utf-8?B?c1NnQUJuRXRFMzB3NU9Fdk1NbTRGdVNySWdnTkVYWXhwMmNpSEtCRzZTalZV?=
 =?utf-8?B?ZVpZY2ZWY09FcUNjaWswdnYxRkRjT1RMdVdPNGtRaXNkTk5MMHZjTTE5K1VE?=
 =?utf-8?B?RjVDdmFzZDYrRVMrSHJyaWtJKy9nRFk2aXFMV2MrZzdZeVBOOXQ1Z3ZWVk5h?=
 =?utf-8?B?UGFET3liWUJpbmtiVTZ2REVqZC9LbkJqMG92NmpnOFhDYkdPaXlVLzdUT1Y3?=
 =?utf-8?Q?ZuKA=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4f8e6752-cc72-4d0a-dee8-08de308c4193
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Dec 2025 03:46:48.6932
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: G6GU1b6+TAxP8Jz5ic6VSXjoJmH3HV1s73NAEhahB1U5nkFRz9wmuV8/AfjAiejE0/+MNTxTmUOOYVni5W3rpA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7890

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IE1vbmRheSwgTm92ZW1iZXIgMjQsIDIw
MjUgMTA6MTAgUE0NCj4gVG86IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT4NCj4g
Q2M6IEh1YW5nLCBSYXkgPFJheS5IdWFuZ0BhbWQuY29tPjsgZ3J5Z29yaWlfc3RyYXNoa29AZXBh
bS5jb207IEFuZHJldw0KPiBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+OyBSb2dl
ciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT47DQo+IFRhbWFzIEsgTGVuZ3llbCA8
dGFtYXNAdGtsZW5neWVsLmNvbT47IEFsZXhhbmRydSBJc2FpbGENCj4gPGFpc2FpbGFAYml0ZGVm
ZW5kZXIuY29tPjsgUGV0cmUgUGlyY2FsYWJ1IDxwcGlyY2FsYWJ1QGJpdGRlZmVuZGVyLmNvbT47
IHhlbi0NCj4gZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRD
SCB2MyA2LzddIHhlbi9tZW1fYWNjZXNzOiB3cmFwIG1lbW9yeSBhY2Nlc3Mgd2hlbg0KPiBWTV9F
VkVOVD1uDQo+DQo+IE9uIDIxLjExLjIwMjUgMTA6MTUsIFBlbm55IFpoZW5nIHdyb3RlOg0KPiA+
IEBAIC0yMDgwLDcgKzIwODEsMTEgQEAgaW50IGh2bV9oYXBfbmVzdGVkX3BhZ2VfZmF1bHQocGFk
ZHJfdCBncGEsDQo+ID4gdW5zaWduZWQgbG9uZyBnbGEsICAjZW5kaWYNCj4gPiAgICAgIH0NCj4g
Pg0KPiA+IC0gICAgaWYgKCByZXFfcHRyICkNCj4gPiArICAgIC8qDQo+ID4gKyAgICAgKiBFeGNl
c3NpdmUgY29uZGl0aW9uIGlzIHRvIGF2b2lkIHJ1bnRpbWUgdW5kZWZpbmVkIGVycm9yIG9ubHkN
Cj4gPiArICAgICAqIHdoZW4gQ09ORklHX1VTQkFOPXkNCj4gPiArICAgICAqLw0KPiA+ICsgICAg
aWYgKCByZXFfcHRyICYmIHZtX2V2ZW50X2lzX2VuYWJsZWQoY3VycikgKQ0KPiA+ICAgICAgew0K
Pg0KPiBJIGZlYXIgdGhlIGNvbW1lbnQgaXNuJ3QgcmVhbGx5IGhlbHBmdWwgdGhpcyB3YXkuIFdo
YXQncyAiZXhjZXNzaXZlIiBoZXJlIG1heSBiZQ0KPiBjbGVhciBmcm9tIHBhdGNoIGNvbnRleHQs
IGJ1dCBpdCB3b24ndCBiZSBjbGVhciB3aGVuIGxvb2tpbmcgYXQgdGhlIGNvZGUgbGF0ZXIuIE5v
cg0KPiB3b3VsZCBpdCB0aGVuIGJlIGltbWVkaWF0ZWx5IGNsZWFyIHdoeSB0aGUgdm1fZXZlbnRf
aXNfZW5hYmxlZCgpIGNoZWNrIGlzDQo+IChzZWVtaW5nbHkpIHVubmVjZXNzYXJ5LiBIb3cgYWJv
dXQgdGhpczoNCj4NCj4gInJlcV9wdHIgYmVpbmcgY29uc3RhbnQgTlVMTCB3aGVuICFDT05GSUdf
Vk1fRVZFTlQsIENPTkZJR19VQlNBTj15DQo+IGJ1aWxkcyAgaGF2ZSBiZWVuIG9ic2VydmVkIHRv
IHN0aWxsIGhpdCB1bmRlZmluZWQtbmVzcyBhdCBydW50aW1lLiBIZW5jZSBkbyBhDQo+IHNlZW1p
bmdseSByZWR1bmRhbnQgdm1fZXZlbnRfaXNfZW5hYmxlZCgpIGNoZWNrIGhlcmUuIg0KPg0KPiBX
aXRoIHRoaXMgb3IgYW55IG90aGVyIHN1aXRhYmxlIGltcHJvdmVtZW50IHRvIHRoZSBjb21tZW50
Og0KPiBBY2tlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPiBJZiB3ZSB3YW50
IHRvIGdvIHdpdGggdGhlIHN1Z2dlc3Rpb24NCj4gYWJvdmUsIEknZCBiZSBoYXBweSB0byBkbyB0
aGUgcmVwbGFjZW1lbnQgd2hpbGUgY29tbWl0dGluZy4gQnV0IG9mIGNvdXJzZSBmaXJzdCB0aGUN
Cj4gbmVjZXNzYXJ5IDJuZCBhY2sgd2lsbCB3YW50IGNvbGxlY3RpbmcuDQoNClRoeCENCg0KPg0K
PiBKYW4NCg==


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 03:56:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 03:56:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175492.1500136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPv1Q-0002c2-RV; Mon, 01 Dec 2025 03:56:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175492.1500136; Mon, 01 Dec 2025 03:56:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPv1Q-0002bv-OQ; Mon, 01 Dec 2025 03:56:20 +0000
Received: by outflank-mailman (input) for mailman id 1175492;
 Mon, 01 Dec 2025 03:56:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=isLO=6H=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vPv1P-0002bp-L0
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 03:56:19 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id af6cf2bf-ce69-11f0-980a-7dc792cee155;
 Mon, 01 Dec 2025 04:56:17 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 CY8PR12MB7363.namprd12.prod.outlook.com (2603:10b6:930:51::9) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.17; Mon, 1 Dec 2025 03:56:13 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2%2]) with mapi id 15.20.9366.012; Mon, 1 Dec 2025
 03:56:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af6cf2bf-ce69-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pNYn5NSCGZnsHueW6eVi4Ls/vf+oSXwqvylRu1nXYWeQM8GJeLSTfUZOOMfW3yRHQUmkjfqvs3x7XoqyHbS3DnLedpx9uOpQuIA6L5WsUkKCITeRdIAUoBblF7T5qhXnpTYy+iVKgQEjVaYYFcW+6ErxcIhIFUQVyqQJhjRUKviHgRJ1c8XpgaxOSRkc1dpKilvc37JEyfTfJX1QRuSj62/pKt8xkEufHIIH4Z6MJ4s31ohHG23s+rXJ0Fh/QVnwIEQHON+cNTs6KSy85kCzhbyaIb5UzFi20daqYb3aJtnp6TmtGtgs8Vn63CRGvr/7zYRYsbhRfK9PjMapTxj2kQ==
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=DFlNIrgKAk3A5Ta9l1UYobBJjq79wtHYQWjdYWgv3+0=;
 b=YQz519TeHeAN4VhHz9+lCRw7E7rF9CJby4GeBCDl6q02aPdl4h5b0vuiaoUdyJa1LxWm4B/WRDF6Gi6/qi5RUsr+DarC4kJPZrBh0TMZTa0W8UAKtTxfMUwbBP+Tm0T78MKGiyU17stoBtcUO3+OP0DhzxG4iKZ5xgJzZDrYPWsoahIWcpBMXDHQmjCAniqgfNPUOCQEnl2neDCLYymEA6NnLeDHustmNg9kvlIYC/1iPpvH6Q2HZOJEp2fDeApsvB6sXHtb5x8E/tgCpRPzES6Eymj9knZsDX/zDXL71FnvKPk6haltYTenQpVukhJfXxdiaAo8Rtzr8sLXoktyBg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DFlNIrgKAk3A5Ta9l1UYobBJjq79wtHYQWjdYWgv3+0=;
 b=DpZATcuigKYnBxSTNgN/0Z3l6je/LX/FboYJG+JaZTCk5Ykf44JKRpJcWUf/xCcvsdQtuS+kK/IbVG3zxP1hn1CyjzWjJ+wlY0jXNQNlVnOwi/PHVWAl5ha55RSkwptjxKd3TBs6QnjidhrOAOJr6hRnRsGFNBHdGVr8xVtGShQ=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "grygorii_strashko@epam.com"
	<grygorii_strashko@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v4 22/24] xen/domctl: domctl_lock synchronization only
 when MGMT_HYPERCALLS=y
Thread-Topic: [PATCH v4 22/24] xen/domctl: domctl_lock synchronization only
 when MGMT_HYPERCALLS=y
Thread-Index: AQHcWtXpTPLVc9pgnEaS2HNYGgIlV7UEtj0AgAeAyGA=
Date: Mon, 1 Dec 2025 03:56:12 +0000
Message-ID:
 <DM4PR12MB84514DC6BBD2930ABF2DDD82E1DBA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-23-Penny.Zheng@amd.com>
 <6f9d00c7-8304-4d80-92c8-f134cceb01c1@suse.com>
In-Reply-To: <6f9d00c7-8304-4d80-92c8-f134cceb01c1@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-12-01T03:56:05.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|CY8PR12MB7363:EE_
x-ms-office365-filtering-correlation-id: b6ba6bcb-2547-45ff-6414-08de308d91f2
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?UmJZSFFuL04yR1dLb2UvMDZGbjI4TENZTHpMY2FUaUlNQk9iL0JNNnVhWGdX?=
 =?utf-8?B?QjhtbnZNRlRPTXF4T3ByTjRqQS9sVFNXQzNadnVJVjlsajBOeE9LZkhCdnZl?=
 =?utf-8?B?WTJxSXFvOWYyK3ZlbzVHazAvandlL0plamJaT2ptQTZqWHpqMlBSYTU2NCtH?=
 =?utf-8?B?WWw1dFJ3bm1qNDlySmMvV3JhbiswTmxzTUF1aWVQTWVUMnNJK2J5ZThqZ3Iy?=
 =?utf-8?B?a2E4K0s1MkN0dDdBdnFrQXV3emFsSDJLNENpdlY2VmU5SXlEYnYxREZYMkV2?=
 =?utf-8?B?d09QQnc5bG0yUVZJWDVacnhSRUlVaGhEaGZNaFRQRmlqWGVpRnJmZkt0SnJw?=
 =?utf-8?B?UWxnc3hsdzNySGRxY09kWDB4Q1RxekxmeUpvZ3lta1k2YjZHSTdHNWNTTXM0?=
 =?utf-8?B?Ylh6MGlDeE1vOTZlanpiYUthMUpUZFBqSER6Q1ZBTDlaNlgvZXpWZjh5L1pO?=
 =?utf-8?B?Uk0yNDErdGUybEhHaGVjQUZVYjNBQVlWT0pBQVdUWEoxK1ZRd3ZoT3BNMzZK?=
 =?utf-8?B?aXBTc1lNQVZPR1JmVjRBUjJwVFUzWnp1RGpWTnFtYTR4NlIxeTMydjRMSy9S?=
 =?utf-8?B?YU4zbEJCK0RnNURkMHpOdXdlNDNOeFVtaXRqQUUxL01ZNGJPMUtKUjRQdXhD?=
 =?utf-8?B?eW1NOXdEL21xR2ZDa2JDWjAwUkJnVVI4MG44UXNKTlpGS2QwRm1lWmYxVDNq?=
 =?utf-8?B?aTl4NnE2N1QyLzV4Z2dPN25sSVZ2dktMSC84QlFYM3lLdWpnVHgyTThKWW96?=
 =?utf-8?B?M2V4aVc4M2N0b04va2I2R05FSFRPbmZPZTd2UmJIbVRmSGtoWm8zNE5XZnBa?=
 =?utf-8?B?SFBvaHhReDFrTFEvcEl1YUZheGxieGFGWXJ6NmVNY085VEdqd1hWQXBhNTkv?=
 =?utf-8?B?Z0EwOWZiUVpaNUFlOGQxLzg5aDhTRmszMjBaTWtrVnJ0bVJyVEh4blUvVmd5?=
 =?utf-8?B?Zmd5Zjg2TjlwTjIyMTVLeHFteHUrcVJmajBhbWkyQnN4UHIyczQwUnE0TUh5?=
 =?utf-8?B?d0VaV3lUQ3ZYSjhqZFpwc2Q5emcwWURlcjBkOFRIendsendaNEx6Z2dCSFht?=
 =?utf-8?B?WHIvV2NWMzArcXZwcGhoeDA0c0NnQVdRdWZHU3E4YTlidkM2cEFxNFFLemly?=
 =?utf-8?B?RGtWNFgxeENVcldsMUZxeGxJN0hkWm5ZWHVydGZVRFNMTk41VmlwcWJVdjRI?=
 =?utf-8?B?RkJvNDFsOXJwMU1EQmZpKy9sTHl6N2xXOGh6UlN2MTJKSllENS80T0l3dldX?=
 =?utf-8?B?bE5mb3E3bGl4MUZSL0N1UWJkLzN3TTJ5V0hwNE9zRlVsOGdxcUxRU1crL2oz?=
 =?utf-8?B?OTUxM1d0VCs2MWYwcFJxYjZQcG41SEM2VjNaK0tJRng3L1FjTjlCclJidzY5?=
 =?utf-8?B?L2JvekxuclM2WVdLVXdBNFp1ZmVPVjdFbnNGekl6d3NidXF1K01PeW8rSHJD?=
 =?utf-8?B?aVZFdE9qNm1GMThhalc5N3d4UEd0VCtoQ2pHc2J6RXVkb1JkWXE5enRmMmxp?=
 =?utf-8?B?Z0xvNWpLek9uWnpaeUw1MXBmYjByaTBjMFZNY1Q0bUY4SXEvTkkwcENhaWZY?=
 =?utf-8?B?dEZGclNvQ0hmN1pFK3FJQ1JHdlc5TXJJdnFXOFpBakxwdU42MkptUCswaUox?=
 =?utf-8?B?Wnp5dHBpb2R1bTRKTFBBY1ZSdzR1WndNcTUvRXBIaGwyblIrUmJvbjRWT0Fi?=
 =?utf-8?B?RVBSVXQzNktKRmNBNUxUZ25CdTFtUHVqaU1CWjk1dy92ZWlBQ2NXNUl3a1lK?=
 =?utf-8?B?b1NtSEVHZTR3cVF6MXA2VmpObXZpU0RHSzFhcm1qY1dEK2FaSjZuQjJyTFZI?=
 =?utf-8?B?cXFQZ2RxOTd1TEg1WFRxZ3J1eTB3ZnhJSlpuQTgzSldGdVl3YVVVbnU1VWNs?=
 =?utf-8?B?YWp4amhrbjRHNDl4bVQvK2gxYnQvR1B5MStERlV5QzZBemRBc3hJSzdaaHRB?=
 =?utf-8?B?KzBmSmR5SHBvdW5RbFF0US9RQ1VQZkYwM1ZvL0pyUFpMNWJhNXVEczh0Mito?=
 =?utf-8?B?RmJVdi9qWk84Um5wR3BoZVlmZUhmR1dSdy9vRlh0djZoL1kvdFV5M2J0andt?=
 =?utf-8?Q?al3li1?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?SjZ1b2pQcDNTSVMwY3lRSGZjU3BGVExMS3dPdmE0SEJWZzJSMDlPZ2lUbEVl?=
 =?utf-8?B?M3gyckNaZ0h1MTJkUEY2MllBMGt0a3FINHA2Mm1aMlBwaCtPODdkcTVYdnlk?=
 =?utf-8?B?b3Bzd1VLVjc3d05XYjZKTnIweHdWUURJVHFiT1hMcHlPN0JXS3dLTHRORVpU?=
 =?utf-8?B?WmJ0K3QvcEd5UnQyWWZJbFNxRHJWS2I1WkFqNm9nMm5qVGJ1Qk1QdUNhZGNZ?=
 =?utf-8?B?cjlnUy9hQ2pndUt0S0dYUXZKNHBNYUZFa0plN1VHYVRmTzZFNjZyTG1aUUh1?=
 =?utf-8?B?OFgwK0ZCTTdQdUNVdWk2czNHVTVCNkMyTGxkc2IycjNKSTd0Q1Y5MnJTV2Ry?=
 =?utf-8?B?Rk9uUlpRSW1Pc0JQWUZ4R1lwY0hhTGhwTE1sQi9WYmxCa25sUzNTR2p4aXpp?=
 =?utf-8?B?VXhTZWJBWXpYdUdNNEtvcUJYY0Qrb1R2ZlBlL0RCSGlDcklOUjNCU3dVUVRa?=
 =?utf-8?B?TzJIdEZ6bmZ5Rm5oaW83aDczRThKUWhaQ2x2YUgzUmt3Z215V0I4dGFaOExI?=
 =?utf-8?B?a3BzTkVtSUJrRm9qMkpOSGVWbUkyaGd0bkV6OGpZREs1SlpRR2ZmUTNvOXFB?=
 =?utf-8?B?bGtIZHB5ak5XbTNYU2lpQ2NBZ21SbTc2Ym01TlplZEw3b2g4L3FncFREcVJi?=
 =?utf-8?B?T3p6b2p0Qmx2M1k4QytINUkveklOb2d1MjBNUlN4WlJHam11aWpyN3hnUGtS?=
 =?utf-8?B?L1BGZGhZU1V3SW1aYzRLTG10dG9JOUdFVDhRQjFlaStRSmZtQVVQMHIrQ1NU?=
 =?utf-8?B?UmQ3SW5FZVBaRUJJSjE4MWREUndEalEzUFVmdGRjTFR5WmNDZGRQc0RuTDRE?=
 =?utf-8?B?STRSdUEzZnQzYmRoWW96cVB2cHA3MFRVUVVnM0M4aWE5Y201UzAzY2tWVi9J?=
 =?utf-8?B?dVA5UU9WODB6TzdkT2w4MU9OdWlaNEpzR3BmRWtEUlVTOWpjTkJ5MEZkUW5Q?=
 =?utf-8?B?eGRqbmYvTHlLRDBENk0xZUFkVjZZcEFaeWtleittWSszNUtUMHNNQSsrck5y?=
 =?utf-8?B?YlJwTUFjeExObmloWUxzMGc0NzBraWNRQXZ6MkRscnFSZGxkYzdEaWd6MnM1?=
 =?utf-8?B?ODI5SDU2SXNPRHVYdmF5eDd2aVB6OVRWbTFTMit5WmU4bHdPdlpXeDVrS1Ir?=
 =?utf-8?B?S3FFcHZLbWdJRTIxZ1hLbnh5aDVDK0xwSFZJTzF1R2MvMXdkdWpYY2RWTk0z?=
 =?utf-8?B?eTd6Y0ljZnJFcVVlVFNENWgzOEZwamZVN280ZnhPNGtkYWNnWHZzb3J4U1pK?=
 =?utf-8?B?OG1tMUpWRTdWeDkyMUlKUmNYWjhoL2l1cGF2VkdVM3htQkw4T1VvOVRRTHBF?=
 =?utf-8?B?dzZKYmVqQ3Via1F1TFZnelEzOS9ETTM1d2ptVGJYa0NWMThGRkNHVllKcHJi?=
 =?utf-8?B?TmFUTm9HNXFvR1ZwNjM0d0hpa3BqVmI1WTRhOWdBT0U2NjZObGJXZG5TSEZQ?=
 =?utf-8?B?eENqcFErbThpd1NLMXZFdXBHd0J2cjBieUVyV3FBanExR2cvV1Mzb1BUV2Fl?=
 =?utf-8?B?ZG5sQ3h1cDNEZGlwWlkvZFhGV2pKSk5EZDBDWVN4WDV1cnl3RS9PMU5ZWHhk?=
 =?utf-8?B?WDZ1MjhJSzdJRld2MlA5UU9yQW85dU5QekNkTTRleGp6RXV4dWFTSDFjSVNa?=
 =?utf-8?B?QWJ4VWpOWmp5MFAyVXRlV3dna2EwMm8xUkxmZUZQaHYyeUlZU2ptYmtVdStM?=
 =?utf-8?B?QTIrSmpyaWdCSUxhWG5wVW5EU3huOE1UeTBrbHVtOUhDdUlKS3NSMlg5dEow?=
 =?utf-8?B?RDFEUVBSVHJRN2NqODhLTks2ZktZWFVWc0NZNGpwR1hYN1lqVTNWT2dQVmk3?=
 =?utf-8?B?bnVTSlZiNmFBWThSSUdlUnhQRWRzZkRkaHU1Zkp1YXVsYnZYQXA2OVBXbTlN?=
 =?utf-8?B?cXVSUTQwK0ZJb0dMQWxpRUsrNUxBTGlnRnZvUWN5ZU1OVnViVnQrdUo5NDc5?=
 =?utf-8?B?NDRKV09XUEUzSUxQVURGRWRVZWxhVEswckFtQW12My80VkJsMTBrbTFTekZk?=
 =?utf-8?B?UFpLc0V5eXVnYlVRTG8wMW84OGZnelB6dFNHTU9oWUtXd0tWeFl4MHpYTHNS?=
 =?utf-8?B?eEZlZXFXWFcrWGY5aWlIZklUSXV6TThkZHh5OHdGRFNYcEpWNEJhZ0lTM1Nx?=
 =?utf-8?Q?ZNhE=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b6ba6bcb-2547-45ff-6414-08de308d91f2
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Dec 2025 03:56:12.9913
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 5SapAOkpUKGiSfEX4WMMdPoTh/GAZwmCIUnUvRNZBwDmBC8fwwxI2wKyT8zRTT+qVd1hf198BAv4GP58QJeXQA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7363

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIgMjYs
IDIwMjUgNToyMSBQTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0K
PiBDYzogSHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBncnlnb3JpaV9zdHJhc2hrb0Bl
cGFtLmNvbTsgQW5kcmV3DQo+IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT47IFJv
Z2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPjsNCj4geGVuLWRldmVsQGxpc3Rz
LnhlbnByb2plY3Qub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjQgMjIvMjRdIHhlbi9kb21j
dGw6IGRvbWN0bF9sb2NrIHN5bmNocm9uaXphdGlvbiBvbmx5IHdoZW4NCj4gTUdNVF9IWVBFUkNB
TExTPXkNCj4NCj4gT24gMjEuMTEuMjAyNSAxMTo1NywgUGVubnkgWmhlbmcgd3JvdGU6DQo+ID4g
SGVscGVyIGRvbWN0bF9sb2NrX3thY3F1aXJlLHJlbGVhc2V9IGlzIGRvbWN0bF9sb2NrLCB3aGlj
aA0KPiA+IEhWTV9QQVJBTV9JREVOVF9QVCB1c2VzIHRvIGVuc3VyZSBzeW5jaHJvbml6YXRpb24g
b24gcG90ZW50aWFsIGRvbWN0bC1vcA0KPiBhbHRlcmluZyBndWVzdCBzdGF0ZS4NCj4gPiBTbyBp
dCBpcyBvbmx5IG5lZWRlZCB3aGVuIE1HTVRfSFlQRVJDQUxMUz15Lg0KPiA+DQo+ID4gU3VnZ2Vz
dGVkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+ID4gU2lnbmVkLW9mZi1i
eTogUGVubnkgWmhlbmcgPFBlbm55LlpoZW5nQGFtZC5jb20+DQo+DQo+IEFja2VkLWJ5OiBKYW4g
QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQoNClRoeA0KDQo+DQo+IEknZCBsaWtlIHRvIG5v
dGUgdGhvdWdoIHRoYXQgLi4uDQo+DQo+ID4gLS0tDQo+ID4gdjMgLT4gdjQ6DQo+ID4gLSBuZXcg
Y29tbWl0DQo+ID4gLS0tDQo+ID4gIHhlbi9hcmNoL3g4Ni9odm0vaHZtLmMgfCA1ICsrKy0tDQo+
ID4gIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+DQo+
IC4uLiB3aXRoIHRoaXMgZGlmZnN0YXQgdGhlIHN1YmplY3QgcHJlZml4IGlzIHByZXR0eSBtaXNs
ZWFkaW5nIG9uY2UgYWdhaW4uIEkgbWF5IHRha2UNCj4gdGhlIGxpYmVydHkgYW5kIGNvbnZlcnQg
aXQgdG8geDg2L2h2bTogKGFuZCB0aGVuIGFsc28gYWRkIHBhcmVudGhlc2VzIHRvDQo+IGRvbWN0
bF9sb2NrKCkpLg0KPg0KDQpXaWxsIGZpeA0KDQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 04:09:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 04:09:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175503.1500145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPvDf-0004Px-TI; Mon, 01 Dec 2025 04:08:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175503.1500145; Mon, 01 Dec 2025 04:08:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPvDf-0004Pq-QT; Mon, 01 Dec 2025 04:08:59 +0000
Received: by outflank-mailman (input) for mailman id 1175503;
 Mon, 01 Dec 2025 04:08:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=isLO=6H=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vPvDe-0004Pk-Hb
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 04:08:58 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 73ad43e6-ce6b-11f0-980a-7dc792cee155;
 Mon, 01 Dec 2025 05:08:55 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 SJ2PR12MB7992.namprd12.prod.outlook.com (2603:10b6:a03:4c3::9) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.17; Mon, 1 Dec 2025 04:08:51 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2%2]) with mapi id 15.20.9366.012; Mon, 1 Dec 2025
 04:08:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 73ad43e6-ce6b-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fsl+IX1Z72h1NbxP8yVludxLHrXpWGKIZ2+GS8uD9e8tOvp956o46GZ2YKDndCsuZ7iRE2MaPgvEf7q6uRbkOZj3aSF8l87einmLsX2CC7HGB499hLUMYb/loPVL6kzVFB3Zv2PyMuRazTg3G9dDlwszKG4ZvJFsKKOEHgZSAmhyU5b3V6jkmAVj8mcF56zXZ2xybrXRJY+lKmFKBozBbBsSZ+doaFKU/HLUzXsheNt5AurusloN+1veQHGLigou1dAjdllu+zpsQIQXEVd1Pi++Cq2WHkuXp73R3f93UR8o9pfGnK5aEY6+AnFfxO2fq1axEOdHWpZCnhgt5QaRag==
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=K7knYHnqsmGgFdKG6Txs4G4DWIqBK9cVQ+CSbYowSyM=;
 b=UR1h+fGM2cszKl0qF/RcpdIa7P2PK8VdOyX20IpaHVG0b8kTVKyHcKjxRx7lEWOTSC+47Zef60Zk/cKiJRpVIHp90GZz99inpLX/sazpOz1et2pclzPMrwxmKVuLLEOudVZQ1MuMGF9wp/gBsXBTfoCDeCjTBpQJkoLzU+YJpTnDLrd7vfEnnIR0Tgx79Rve9a3Fu7CJT/BUJuuCje2w9+VRgfqiHmh+1vrJtTkL60NuJpyOFz36Z7hm73PV65v5tqkUIcdkGtAF3AZl8HNq4VfG1L1QMJX/XKW9TeocCD6g3KFgoFg7038G/7r0+oMIVuKjyKy2OfpT3ZuWsYmIjg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=K7knYHnqsmGgFdKG6Txs4G4DWIqBK9cVQ+CSbYowSyM=;
 b=YsZZx0GdRulqJ2Kx1ESOJhKzG5nVcz+KTnYoqV6JlLYrAzLablKm9023QkO2KaISyl48l3A1xiPsjG76HiuaKgHj8N8wtNXGpnirbl/hi64k7n4rpLEXKREhuoCj/RiEsUMuYKMSmcKjanJdeXVF//4qiWIMk2vrWLXYJHS+Ymw=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "grygorii_strashko@epam.com"
	<grygorii_strashko@epam.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Juergen
 Gross <jgross@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v4 02/24] xen: consolidate cpuid library
Thread-Topic: [PATCH v4 02/24] xen: consolidate cpuid library
Thread-Index: AQHcWtXJjf66LsUGrE2uxhJqk+lJcbUC9piAgAk/5nA=
Date: Mon, 1 Dec 2025 04:08:51 +0000
Message-ID:
 <DM4PR12MB845192E5CA6B8364D853AF15E1DBA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-3-Penny.Zheng@amd.com>
 <6781dbd7-ddce-49c1-a359-0910e91bda43@suse.com>
In-Reply-To: <6781dbd7-ddce-49c1-a359-0910e91bda43@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-12-01T04:08:39.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|SJ2PR12MB7992:EE_
x-ms-office365-filtering-correlation-id: cbaf2db4-66ac-4e94-7fc2-08de308f55f0
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?N2UxUHNYUUEzZFNEMGJpb3drOGZ1VmoyVkhobkJ2NEp3RE4wSUZzZG1INE5h?=
 =?utf-8?B?WHcxLzg5VDRDSEpXdzVTbU5PR01EVE9MY3ROTUpGb2hPckhGWVZYQW5jTUZO?=
 =?utf-8?B?Vzd6M2YyOXJPODBHQTRWM1B0ZUpUeFo4MDl3dzk1UnlHU05HdXBMQjgySkJ5?=
 =?utf-8?B?eWFyNTQvRlJxbXA4ZmtGQ0l3UzVMVGUxN2RBS0kxL2tKenZZYTVhNTQvWEgz?=
 =?utf-8?B?ZzgrbVVpV2JBaWFVOWR1eWRNZVNCc3FXYzJGNkl3cFlVN3lHTkoyWWcwdzBM?=
 =?utf-8?B?d2tKRkZiWGQ2M0tyQmp1QmdzMkYwU2YwUFMyWFdmVldmT1ZxL1IvR1Bnb1Iv?=
 =?utf-8?B?RkNKVkNNR1Z2clorZDdLN2R1VVkzMWFnNUY2SFB3WTlvSmNxbjIxaGFqTWE3?=
 =?utf-8?B?Z1VGMjhUZG5LYkVnY0tMTEQ3dnB3NVdQODZoc1BVNmtJSTZ6bi9NVkZFOEhW?=
 =?utf-8?B?UEU5cTZOdFF1MXpmNWlXRDFISzVrSHJ0RXgzK1JqeG02R0ppWDdVbGRyWS9z?=
 =?utf-8?B?TlVLMThZUCtjcTI1U0lkRzJjTy84Tjh2dy9Eb05iczQwMFIzQ0ZTR05mUG52?=
 =?utf-8?B?MXIvMk9aNUpVR2EvZ25mbkFGR250anhMOVlNSTFzRW93UFBKbFJKcUFkb1Ew?=
 =?utf-8?B?WU1NVEJoSk84dFMwRWJjSkcxdXk0STFTdVhpaloyN0N4R0NMSUttcFByUlVs?=
 =?utf-8?B?ZVhBWFByLzlBSC9kdDBteXVFU1ZmMVJtV2trdXJ2aGpPSnFNOTBRd3pJdC9Q?=
 =?utf-8?B?blQxTWs2RDd3a1RIcVVmS3JUem5tcG1HUVAvcmNXL3RRUEhCdnFaR3JmeVZU?=
 =?utf-8?B?UXYvTUVTemNaYnI5cWRFOHV6Y2tyeFcrQXpFQ0VEYjFFRUlPakowYjFSYTEr?=
 =?utf-8?B?L2g2dDlzZm1xRjU4QUhqS2dDNDZJWjhucTFJUkg2WWtJWDdkcWJRSGRENWx4?=
 =?utf-8?B?ZlZCS2MzTnN5OFNCMno3VTd6NjdEblczZTd1WU5Gb3ZCanNlZDRubzl1SW9D?=
 =?utf-8?B?ejd2MlFxaUxlaGp3S3AzaXQrcWZlamQ3dGdZUE9JcXorYTFWUktsWUNjdUJV?=
 =?utf-8?B?RXhTcWJiR1dxYW83RFpHcXRkKzF2ZDJUZ1ZmSDBTaFFGYVRybGdHY2wvcnM4?=
 =?utf-8?B?U2JNbWMwUmZURi9MTzMzSGxzMHNkUHhJYk9HanhVN3VWQnZnSlVQQVJwQ1dB?=
 =?utf-8?B?S0lHOHhFOEFreWN2dFpldG55Wkh3L0JzMkJabFpuOHZWVCtSaVo1TU40enlv?=
 =?utf-8?B?SW5FaGJwWkpoTEhMeXVYTWUzMTN0NWtBSThkOFhPWHg1YjVjUFJlVURGUUVq?=
 =?utf-8?B?REsvU3dXMVhrNm0yeDZPWmVkVmMzcHdzdmoxMS9ZVE5abnp3ME0raVdJRUJJ?=
 =?utf-8?B?enFwNmwxc3Jzejh0RHpKTmRjSTlENThBU0dIcTVkWGhmZS8xQWkrTjRFdlBw?=
 =?utf-8?B?LytiajJTS29oQTdhbFlXb2M2TGQ2QXU4QUo2ODNDNTN4S0dCSkRYT1M3MUZR?=
 =?utf-8?B?TEtrWXB1NTFDUnk0UnBib0VTRHpaY1lWY0pOdjMrQkQwY0EzdDFYeC8vV1BT?=
 =?utf-8?B?ekZsQ2Z6cVh5TGNraFZXMlcvalhWNEZmditQWFRVR1hKSFdDSzA4VEUwRjVO?=
 =?utf-8?B?N0NlMTFRcTMwTGYrQnhLUmFRcG56UzBCa2JEeCtBM2FQL1c1MElTNkR6VnI0?=
 =?utf-8?B?bVNKWm1uTVJCQnJKMzRmbnIvZ3FhdGErWTd5UDc2eVJ0Zjd3K00wNG02VFRN?=
 =?utf-8?B?M0FoeDYyaTNMQktJN3pFdEQrOExlSk5YUVFYQmx2aVpwbjUvQWJMWDB1M05U?=
 =?utf-8?B?WnorM1ZLMFdNamZXMktZMUpXdnIxRGZBQktOQVlpTUhnVSs4RE9MamtDOUIw?=
 =?utf-8?B?RjZBRXM4SEhldzRmaGFYazl1QlBhM1NLcnRvUnU1KzJNSUJPREVGYUNsM1pr?=
 =?utf-8?B?c3Q0bUg5RERrTSt5ei9WOEJtMzdvMlc4QmtLMnBPeHF4azVGUGRObytZMnZE?=
 =?utf-8?B?UC9RWmtqZW0vallMVm9QUnVqY1ZDUm96NmdoMUoxVXZacDFnZVFqSysvY0xF?=
 =?utf-8?Q?efXefD?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?aCs5bUFPNk1Uc3d3bnorYXhtcmx3aE0zZlFDUTRlMHRQNnpCQmhCQW9iQ1JY?=
 =?utf-8?B?RUs3OUlacWpuMTR6dEQrSTU5NjFnY0FoVUJoUm9oZ2c0QldsREpsQ2xnc2FP?=
 =?utf-8?B?NncxL1NMRzFBNDFjTXNKZVB2RzZqZjE5NE5DMWc5blZSdnZqaFlGblFybHF1?=
 =?utf-8?B?QTBaNDFRNUpyTzEydnNTeTgyRk9ja2tMMkZEL1d4Y3RhWElhcHZpSFJoR0JO?=
 =?utf-8?B?ZmEvSXM3MlZIby9wUGlXSE03KzQwU3JnNmFibFNicjV2VnVDbXRwaEhXa3pN?=
 =?utf-8?B?NkFsbjZBMzI5SEx0MS9vRGtPUzRobTlOMHJ6NjVZY0pnVWpxNWZrdmNmTXdR?=
 =?utf-8?B?MzNMNnhDTSsveDFCYjdpRFZkS0hZdjk2V3NRM0p4TmdPcUxvekJnY3AvcFdp?=
 =?utf-8?B?ZERzN0ZtWlZPYzVmN2czMjdnaXFVenVxZFFNN0ZSNm5UM2k4TGRvZEFSQmdZ?=
 =?utf-8?B?bjBENzJOUUpiRVMwdlRCUlVEam8vVHVLaU5OK2pVWmhkRU02a09zNGxlUW0w?=
 =?utf-8?B?SDdza1grSWdLcUxrOGxBVDhCRmF4dVFIOCtIZmFnNFdQcWhsWWlaMjhVd2wv?=
 =?utf-8?B?ZXRNajUwZVVNTWlBL2x1cHVmUkRUK0VZLytiTlYyQ1c0ZkRUYVloZUYxemxO?=
 =?utf-8?B?VUhHOVdIMUxpblJydmMwWnFSV3ZiakUrNThyZUUzMXRpL3N2R24vUGFnRkRC?=
 =?utf-8?B?cGRZaS9qcC9VdUh4dFk3VjB5YUJBMkpDNVI2cHlQL2xReDFSQUIvdWF3Z01m?=
 =?utf-8?B?cUQrZTlUSnhDQml3R2RxV1c4VjlocHIranNHRXJlV3hteHMxbkJBTnRVR3pR?=
 =?utf-8?B?ZWNUYU00UkFtMFRsOGlMbVk2TUNEVUhnNitvMi9LR21qWExmV1JMNGVURk0r?=
 =?utf-8?B?VGNVVzA5bkV3d2ZySldPM01ibHdUT0MzbWVEdys2d0xJcEpqTmIyVHF3USs4?=
 =?utf-8?B?TFNtQlFVaEg5SXlYWmhDR2g3dytla3RyR1kwaWFHdHNocE95RUd3dHRFcUNG?=
 =?utf-8?B?Q0J1ekhMbWRXL3QzZ0NLTDBXcm1BMjFPWElEaHQ4MldQUXA1R05VanJpYSt1?=
 =?utf-8?B?RnEvSUdpbWV6Y2FCd0I2WUsxNmR6WnA4STV4UlBicWQ5YzdGNmVEeTlrdW1p?=
 =?utf-8?B?RllrY1lGTUtMRmRvUkVaOUJscXBwTXNLOGlUQW1MYjVWakhmakdHR3pOZWFv?=
 =?utf-8?B?NEVwMGk0SFFqRE8yMWZrSHYxTE9icFRXSTJ5aXpVTmdWRXJVWGFBbGRrVDNp?=
 =?utf-8?B?NGg0SHRSbXNYK0ZURWJDbzJZSU1JTklXWXUrMzQvRVVCbTd0MWE3OEhOa3gx?=
 =?utf-8?B?U2hDbFRnYXlQazdINDZreEdXcENja29nUGJTLzF0SHhvYUw4QjFwcThMcERu?=
 =?utf-8?B?UDY4endNVnN5RWRaUDdIZmdmTDJKSDM0MEo4Y09OZ2gyaUVHdjVzaEpBQ1V1?=
 =?utf-8?B?cFJSR2taSWFacXY0bUNBcUFNNVpMMWI3VG11ZE52bGI0a3hkbjBRVEVmWkNa?=
 =?utf-8?B?TFAwYjJFdVJDeTlaWkhBaXlYeGd1akkyQTUxNldza3hTRTJpRTgrN1hrbTRx?=
 =?utf-8?B?d0YvZ1BJa0VONmtLOGdEd2VCSzF2L2JlVWVPaWxYd0VSN1NpOFdtNjFNMC80?=
 =?utf-8?B?NGU0N3VVbmh0NzNvWFo3dkxIeEpINmJKSTJxUE1iUnJtSm96RWV4TDZ4QTJT?=
 =?utf-8?B?OFFuRHdOdDJrdFVvNkNtVWZ0aXZ0RDgyeWdCYm1GTnFVZzhUWkExSlZWUEYz?=
 =?utf-8?B?VXRMQTBuOE9ybUJwOFhnTE1lajJMcGR5aGswcHNoRVhkaTdWN3JYMlZkRkxY?=
 =?utf-8?B?cEVLalJwTzMwR2ZPRHF5R1VVaGdEZE8vYUhtczdoUS9NTGJTVzNyYlB1bktM?=
 =?utf-8?B?T1J1WUxVZWVXWlBDMHFkMGJvQXdoVXc2V1dDVnlCLzZNTjZqTWY3ZFMxNkk1?=
 =?utf-8?B?djlvTTIzNHZJSzZtVk1wbXBHTXNqbGdIYkM5U0dSamRvdStvZnBuNS93T01i?=
 =?utf-8?B?ajFwSXFqK3pJeDltOVp0MnYvVTBQTWFBMWtUek5nZU5KYkM3R1VYMVRIaWRk?=
 =?utf-8?B?SkQ2RXNyWUQ4R3VNMnI2NlhFZFFoRkRHVnJyNllYSFJuQjJlYldpYVplM1lu?=
 =?utf-8?Q?z5Eo=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cbaf2db4-66ac-4e94-7fc2-08de308f55f0
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Dec 2025 04:08:51.3252
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: gyGf3DS4HW9ZSvmUZ/SKQwnNvn5NAuKbuqqiQrCaXX6ZNOXmfpkUermm8cBUrAvMBqv9zUHZwRfgIdIDHu0BEA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB7992

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIE5vdmVtYmVyIDI1LCAy
MDI1IDI6MzkgUE0NCj4gVG86IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT47IEFu
ZHJldyBDb29wZXINCj4gPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+DQo+IENjOiBIdWFuZywg
UmF5IDxSYXkuSHVhbmdAYW1kLmNvbT47IGdyeWdvcmlpX3N0cmFzaGtvQGVwYW0uY29tOyBSb2dl
cg0KPiBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT47IEFudGhvbnkgUEVSQVJEDQo+
IDxhbnRob255LnBlcmFyZEB2YXRlcy50ZWNoPjsgSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2Uu
Y29tPjsgeGVuLQ0KPiBkZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0OiBSZTog
W1BBVENIIHY0IDAyLzI0XSB4ZW46IGNvbnNvbGlkYXRlIGNwdWlkIGxpYnJhcnkNCj4NCj4gT24g
MjEuMTEuMjAyNSAxMTo1NywgUGVubnkgWmhlbmcgd3JvdGU6DQo+ID4gVGhlcmUgYXJlIHNvbWUg
Y3B1aWQgbGlicmFyeSBmdW5jdGlvbnMgb25seSByZWZlcmVuY2VkIGluDQo+ID4gWEVOX0RPTUNU
TF9nZXR7LHNldH1fY3B1X3BvbGljeS1jYXNlLCBhbmQgc2hhbGwgYmUgd3JhcHBlZCB3aXRoDQo+
ID4gQ09ORklHX01HTVRfSFlQRVJDQUxMUyBsYXRlciwgb3RoZXJ3aXNlIHRoZXkgd2lsbCBiZWNv
bWUgdW5yZWFjaGFibGUNCj4gPiB3aGVuIE1HTVRfSFlQRVJDQUxMUz1uLCBhbmQgaGVuY2Ugdmlv
bGF0ZSBNaXNyYSAyLjENCj4gPiAtIHg4Nl9jcHVfcG9saWN5X2NsZWFyX291dF9vZl9yYW5nZV9s
ZWF2ZXMNCj4gPiAgIC0gemVyb19sZWF2ZXMNCj4gPiAtIHg4Nl9jcHVpZF9jb3B5X3RvX2J1ZmZl
cg0KPiA+ICAgLSBjb3B5X2xlYWZfdG9fYnVmZmVyDQo+ID4gLSB4ODZfY3B1aWRfY29weV9mcm9t
X2J1ZmZlcg0KPiA+IFdlIHNlcGVyYXRlIHRoZXNlIGZ1bmN0aW9ucyBieSBtb3Zpbmcgb3RoZXIg
ZnVuY3Rpb25zIHRvIGEgbmV3IGZpbGUNCj4gPiBuYW1lZCBjcHVpZC1nZW5lcmljLmMsIGFuZCBt
b2RpZnkgcmVsYXRlZCBNYWtlZmlsZS1zIHRvIHJldGFpbiBzYW1lIGJlaGF2aW9yLg0KPiA+DQo+
ID4gU2lnbmVkLW9mZi1ieTogUGVubnkgWmhlbmcgPFBlbm55LlpoZW5nQGFtZC5jb20+DQo+ID4g
LS0tDQo+ID4gdjMgLT4gdjQ6DQo+ID4gLSBuZXcgY29tbWl0DQo+ID4gLS0tDQo+ID4gIHRvb2xz
L2Z1enovY3B1LXBvbGljeS9NYWtlZmlsZSAgICAgICAgICAgICAgIHwgICAyICstDQo+ID4gIHRv
b2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL01ha2VmaWxlIHwgIDEwICstDQo+ID4g
IHRvb2xzL2xpYnMvZ3Vlc3QvTWFrZWZpbGUuY29tbW9uICAgICAgICAgICAgIHwgICAyICstDQo+
ID4gIHRvb2xzL3Rlc3RzL2NwdS1wb2xpY3kvTWFrZWZpbGUgICAgICAgICAgICAgIHwgICAyICst
DQo+ID4gIHRvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9NYWtlZmlsZSAgICAgICAgICAgIHwgICAy
ICstDQo+ID4gIHhlbi9saWIveDg2L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxICsNCj4gPiAgeGVuL2xpYi94ODYvY3B1aWQtZ2VuZXJpYy5jICAgICAgICAgICAgICAgICAg
fCAyNzMgKysrKysrKysrKysrKysrKysrKw0KPiA+ICB4ZW4vbGliL3g4Ni9jcHVpZC5jICAgICAg
ICAgICAgICAgICAgICAgICAgICB8IDI2MCAtLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiAgOCBmaWxl
cyBjaGFuZ2VkLCAyODMgaW5zZXJ0aW9ucygrKSwgMjY5IGRlbGV0aW9ucygtKSAgY3JlYXRlIG1v
ZGUNCj4gPiAxMDA2NDQgeGVuL2xpYi94ODYvY3B1aWQtZ2VuZXJpYy5jDQo+DQo+IEFuZHJldyAt
IHdoYXQncyB5b3VyIHRha2Ugb24gc3VjaCBhIHNwbGl0PyBQZXJzb25hbGx5IEknbSBub3Qgb3Zl
cmx5IGhhcHB5IHRvIHNlZQ0KPiByZWxhdGVkIGZ1bmN0aW9ucyBiZSBzY2F0dGVyZWQgYWNyb3Nz
IHR3byBmaWxlcy4gVGhlIHNlcGFyYXRpb24gYWxzbyBmZWVscyBwcmV0dHkNCj4gcmFuZG9tLCBw
b3NpbmcgdGhlIHJpc2sgdGhhdCBsYXRlciBzb21lIG9mIHRoZSBjb2RlIG1heSBuZWVkIHRvIG1v
dmUgYmFjay4NCj4NCj4gUGVubnksIEkgYWxzbyBkb24ndCB0aGluayAiY29uc29saWRhdGUiIGlz
IHdoYXQgaXMgaGFwcGVuaW5nIGhlcmUuDQo+IFBlcmhhcHMgInNwbGl0IiB3b3VsZCBiZSBnZXR0
aW5nIGNsb3Nlcj8NCj4NCg0KSSdsbCBjaGFuZ2UgaXQgdG8gc3BsaXQsIHRoeA0KDQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 06:22:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 06:22:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175519.1500156 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPxID-0004WJ-TN; Mon, 01 Dec 2025 06:21:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175519.1500156; Mon, 01 Dec 2025 06:21:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPxID-0004WC-QU; Mon, 01 Dec 2025 06:21:49 +0000
Received: by outflank-mailman (input) for mailman id 1175519;
 Mon, 01 Dec 2025 06:21:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3wau=6H=arm.com=anshuman.khandual@srs-se1.protection.inumbo.net>)
 id 1vPxIC-0004W6-Eb
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 06:21:48 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 0025515e-ce7e-11f0-980a-7dc792cee155;
 Mon, 01 Dec 2025 07:21:42 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 755C2497;
 Sun, 30 Nov 2025 22:21:33 -0800 (PST)
Received: from [10.163.49.14] (unknown [10.163.49.14])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 1C9083F73B;
 Sun, 30 Nov 2025 22:21:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0025515e-ce7e-11f0-980a-7dc792cee155
Message-ID: <8d9ed1f1-77da-45af-85b5-78a5da66f1cc@arm.com>
Date: Mon, 1 Dec 2025 11:51:26 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 05/12] mm: introduce CONFIG_ARCH_HAS_LAZY_MMU_MODE
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-6-kevin.brodsky@arm.com>
Content-Language: en-US
From: Anshuman Khandual <anshuman.khandual@arm.com>
In-Reply-To: <20251124132228.622678-6-kevin.brodsky@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24/11/25 6:52 PM, Kevin Brodsky wrote:
> Architectures currently opt in for implementing lazy_mmu helpers by
> defining __HAVE_ARCH_ENTER_LAZY_MMU_MODE.
> 
> In preparation for introducing a generic lazy_mmu layer that will
> require storage in task_struct, let's switch to a cleaner approach:
> instead of defining a macro, select a CONFIG option.
> 
> This patch introduces CONFIG_ARCH_HAS_LAZY_MMU_MODE and has each
> arch select it when it implements lazy_mmu helpers.
> __HAVE_ARCH_ENTER_LAZY_MMU_MODE is removed and <linux/pgtable.h>
> relies on the new CONFIG instead.
> 
> On x86, lazy_mmu helpers are only implemented if PARAVIRT_XXL is
> selected. This creates some complications in arch/x86/boot/, because
> a few files manually undefine PARAVIRT* options. As a result
> <asm/paravirt.h> does not define the lazy_mmu helpers, but this
> breaks the build as <linux/pgtable.h> only defines them if
> !CONFIG_ARCH_HAS_LAZY_MMU_MODE. There does not seem to be a clean
> way out of this - let's just undefine that new CONFIG too.
> 
> Acked-by: David Hildenbrand <david@redhat.com>
> Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
> Reviewed-by: Ryan Roberts <ryan.roberts@arm.com>
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
>  arch/arm64/Kconfig                                 | 1 +
>  arch/arm64/include/asm/pgtable.h                   | 1 -
>  arch/powerpc/include/asm/book3s/64/tlbflush-hash.h | 2 --
>  arch/powerpc/platforms/Kconfig.cputype             | 1 +
>  arch/sparc/Kconfig                                 | 1 +
>  arch/sparc/include/asm/tlbflush_64.h               | 2 --
>  arch/x86/Kconfig                                   | 1 +
>  arch/x86/boot/compressed/misc.h                    | 1 +
>  arch/x86/boot/startup/sme.c                        | 1 +
>  arch/x86/include/asm/paravirt.h                    | 1 -
>  include/linux/pgtable.h                            | 2 +-
>  mm/Kconfig                                         | 3 +++
>  12 files changed, 10 insertions(+), 7 deletions(-)
> 
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 6663ffd23f25..74be32f5f446 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -34,6 +34,7 @@ config ARM64
>  	select ARCH_HAS_KCOV
>  	select ARCH_HAS_KERNEL_FPU_SUPPORT if KERNEL_MODE_NEON
>  	select ARCH_HAS_KEEPINITRD
> +	select ARCH_HAS_LAZY_MMU_MODE
>  	select ARCH_HAS_MEMBARRIER_SYNC_CORE
>  	select ARCH_HAS_MEM_ENCRYPT
>  	select ARCH_SUPPORTS_MSEAL_SYSTEM_MAPPINGS
> diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
> index 0944e296dd4a..54f8d6bb6f22 100644
> --- a/arch/arm64/include/asm/pgtable.h
> +++ b/arch/arm64/include/asm/pgtable.h
> @@ -80,7 +80,6 @@ static inline void queue_pte_barriers(void)
>  	}
>  }
>  
> -#define  __HAVE_ARCH_ENTER_LAZY_MMU_MODE
>  static inline void arch_enter_lazy_mmu_mode(void)
>  {
>  	/*
> diff --git a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
> index 2d45f57df169..565c1b7c3eae 100644
> --- a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
> +++ b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
> @@ -24,8 +24,6 @@ DECLARE_PER_CPU(struct ppc64_tlb_batch, ppc64_tlb_batch);
>  
>  extern void __flush_tlb_pending(struct ppc64_tlb_batch *batch);
>  
> -#define __HAVE_ARCH_ENTER_LAZY_MMU_MODE
> -
>  static inline void arch_enter_lazy_mmu_mode(void)
>  {
>  	struct ppc64_tlb_batch *batch;
> diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype
> index 4c321a8ea896..f399917c17bd 100644
> --- a/arch/powerpc/platforms/Kconfig.cputype
> +++ b/arch/powerpc/platforms/Kconfig.cputype
> @@ -93,6 +93,7 @@ config PPC_BOOK3S_64
>  	select IRQ_WORK
>  	select PPC_64S_HASH_MMU if !PPC_RADIX_MMU
>  	select KASAN_VMALLOC if KASAN
> +	select ARCH_HAS_LAZY_MMU_MODE
>  
>  config PPC_BOOK3E_64
>  	bool "Embedded processors"
> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
> index a630d373e645..2bad14744ca4 100644
> --- a/arch/sparc/Kconfig
> +++ b/arch/sparc/Kconfig
> @@ -112,6 +112,7 @@ config SPARC64
>  	select NEED_PER_CPU_PAGE_FIRST_CHUNK
>  	select ARCH_SUPPORTS_SCHED_SMT if SMP
>  	select ARCH_SUPPORTS_SCHED_MC  if SMP
> +	select ARCH_HAS_LAZY_MMU_MODE
>  
>  config ARCH_PROC_KCORE_TEXT
>  	def_bool y
> diff --git a/arch/sparc/include/asm/tlbflush_64.h b/arch/sparc/include/asm/tlbflush_64.h
> index 925bb5d7a4e1..4e1036728e2f 100644
> --- a/arch/sparc/include/asm/tlbflush_64.h
> +++ b/arch/sparc/include/asm/tlbflush_64.h
> @@ -39,8 +39,6 @@ static inline void flush_tlb_range(struct vm_area_struct *vma,
>  
>  void flush_tlb_kernel_range(unsigned long start, unsigned long end);
>  
> -#define __HAVE_ARCH_ENTER_LAZY_MMU_MODE
> -
>  void flush_tlb_pending(void);
>  void arch_enter_lazy_mmu_mode(void);
>  void arch_flush_lazy_mmu_mode(void);
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index a3700766a8c0..db769c4addf9 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -805,6 +805,7 @@ config PARAVIRT
>  config PARAVIRT_XXL
>  	bool
>  	depends on X86_64
> +	select ARCH_HAS_LAZY_MMU_MODE
>  
>  config PARAVIRT_DEBUG
>  	bool "paravirt-ops debugging"
> diff --git a/arch/x86/boot/compressed/misc.h b/arch/x86/boot/compressed/misc.h
> index db1048621ea2..cdd7f692d9ee 100644
> --- a/arch/x86/boot/compressed/misc.h
> +++ b/arch/x86/boot/compressed/misc.h
> @@ -11,6 +11,7 @@
>  #undef CONFIG_PARAVIRT
>  #undef CONFIG_PARAVIRT_XXL
>  #undef CONFIG_PARAVIRT_SPINLOCKS
> +#undef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>  #undef CONFIG_KASAN
>  #undef CONFIG_KASAN_GENERIC
>  
> diff --git a/arch/x86/boot/startup/sme.c b/arch/x86/boot/startup/sme.c
> index e7ea65f3f1d6..b76a7c95dfe1 100644
> --- a/arch/x86/boot/startup/sme.c
> +++ b/arch/x86/boot/startup/sme.c
> @@ -24,6 +24,7 @@
>  #undef CONFIG_PARAVIRT
>  #undef CONFIG_PARAVIRT_XXL
>  #undef CONFIG_PARAVIRT_SPINLOCKS
> +#undef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>  
>  /*
>   * This code runs before CPU feature bits are set. By default, the
> diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
> index b5e59a7ba0d0..13f9cd31c8f8 100644
> --- a/arch/x86/include/asm/paravirt.h
> +++ b/arch/x86/include/asm/paravirt.h
> @@ -526,7 +526,6 @@ static inline void arch_end_context_switch(struct task_struct *next)
>  	PVOP_VCALL1(cpu.end_context_switch, next);
>  }
>  
> -#define  __HAVE_ARCH_ENTER_LAZY_MMU_MODE
>  static inline void arch_enter_lazy_mmu_mode(void)
>  {
>  	PVOP_VCALL0(mmu.lazy_mode.enter);
> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
> index b13b6f42be3c..de7d2c7e63eb 100644
> --- a/include/linux/pgtable.h
> +++ b/include/linux/pgtable.h
> @@ -231,7 +231,7 @@ static inline int pmd_dirty(pmd_t pmd)
>   * held, but for kernel PTE updates, no lock is held). Nesting is not permitted
>   * and the mode cannot be used in interrupt context.
>   */
> -#ifndef __HAVE_ARCH_ENTER_LAZY_MMU_MODE
> +#ifndef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>  static inline void arch_enter_lazy_mmu_mode(void) {}
>  static inline void arch_leave_lazy_mmu_mode(void) {}
>  static inline void arch_flush_lazy_mmu_mode(void) {}
> diff --git a/mm/Kconfig b/mm/Kconfig
> index bd0ea5454af8..a7486fae0cd3 100644
> --- a/mm/Kconfig
> +++ b/mm/Kconfig
> @@ -1464,6 +1464,9 @@ config PT_RECLAIM
>  config FIND_NORMAL_PAGE
>  	def_bool n
>  
> +config ARCH_HAS_LAZY_MMU_MODE
> +	bool
> +

Might be worth adding a help description for the new config option.

>  source "mm/damon/Kconfig"
>  
>  endmenu



From xen-devel-bounces@lists.xenproject.org Mon Dec 01 06:34:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 06:34:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175530.1500166 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPxU9-00068P-VB; Mon, 01 Dec 2025 06:34:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175530.1500166; Mon, 01 Dec 2025 06:34:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPxU9-00068I-RV; Mon, 01 Dec 2025 06:34:09 +0000
Received: by outflank-mailman (input) for mailman id 1175530;
 Mon, 01 Dec 2025 06:34:08 +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
 <SRS0=isLO=6H=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vPxU7-00068C-TT
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 06:34:08 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bb7a074a-ce7f-11f0-9d19-b5c5bf9af7f9;
 Mon, 01 Dec 2025 07:34:06 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 DS0PR12MB7875.namprd12.prod.outlook.com (2603:10b6:8:14d::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.17; Mon, 1 Dec 2025 06:34:02 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2%2]) with mapi id 15.20.9366.012; Mon, 1 Dec 2025
 06:34:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb7a074a-ce7f-11f0-9d19-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KbKHfDLd8+DuE6Ty5JaLG9SWpQMhURF3UheC9tRyJuU762tb5kmmgYHHylG7biQELOjjkOR64lA2Ep60eDuipCJFqkH0YH+EaiNJCpr1zysuT/jlhQfgAW97Kxe+rjTXb0YK67X5lxr/ftL4LZAgptLkW/qeNH5i7Pv2TRX1u7YuAwdt7hfMz3F8M5OrKqG2SMgTNb+CUqwezms2piQDMD4t7jyNMYrwublcLjakEuCPD5HSDJmNHFB/0ViFhV/JfQoxnudzRLs9ayQ03GqIGbCrBbZ5QIIOlYbs57xcu/rn+5RUW7821q58giNg93UFEULDQNS22Mf2jt2qjEKOiQ==
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=WIco463z03e4uitzfOUqQNtuIB11b1jc2qeI/q9jzpo=;
 b=SrtJ8nGdQHw0rqjmgq5hJrFw0wU8iV9cG6RwPbT5oUiX7srJNgpaiLF0ziYKkzyag7ohHKpzUYNr5E3I4/QWM760h6Q8j+KARXYrN3eJY8o5tnlLrhEa+nXC388CRNI3JO77NrN+QLrvUB+QQE02hFVTp3trHs9U8EFszQWJk2w9TMXy2dLeSLMnY0W4BU/lG3Zb3Xj7vdAFcv6riZYFJAkC+1OmB7f/A2wpYE7aAQwGUkJddJ8yGpuTZNxGUEHY2c2v3F8TexjhkcPsgflLu9FVAlG8Ji1LjZVPzCPv0UYUUv43ZhFSJ0K6xb5wWwrvx0cjD//kkAsU0lQhup1ckg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WIco463z03e4uitzfOUqQNtuIB11b1jc2qeI/q9jzpo=;
 b=FVXDMR9NDagMMXtBQ2FeaIRiyd4As4HsUJZWO22HuHFz02qGy21C5KLra+LvKAzqaBzLqJ0jZzngfVaevvg2NURwgvyIYsr5LGgj0R9RYJXElaYJFJHOaPsbuixOWGEUpgg6cDA+QDT4geJZO48G93cCbT701x2KL/N4b4zH8jA=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Jan Beulich <jbeulich@suse.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Juergen
 Gross <jgross@suse.com>
Subject: RE: [PATCH v4 02/24] xen: consolidate cpuid library
Thread-Topic: [PATCH v4 02/24] xen: consolidate cpuid library
Thread-Index: AQHcWtXJjf66LsUGrE2uxhJqk+lJcbUFhgcAgAbbbtA=
Date: Mon, 1 Dec 2025 06:34:02 +0000
Message-ID:
 <DM4PR12MB845173E05DF89C8D57974AF1E1DBA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-3-Penny.Zheng@amd.com>
 <64298088-489c-483c-97fa-62206f1a998c@epam.com>
In-Reply-To: <64298088-489c-483c-97fa-62206f1a998c@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-12-01T06:33:54.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|DS0PR12MB7875:EE_
x-ms-office365-filtering-correlation-id: e073d717-18a4-4aa9-babd-08de30a39df0
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?S3NBbWRMK1VwT2trRlJkVDBQS0YvdDA5Tmp5emc0RElVZFhNWFZyUEI4dlZy?=
 =?utf-8?B?bnErVHcxTTliZjdINkJhWUV1STZ4SFVWWmE2aDNuUm4xRlMwMkdaQ3BhQ1BJ?=
 =?utf-8?B?bDZ0VHZ4eUZqbGFoUzJkb291TlYzbnZUd21HOUVGQ0tyS3RBNURxT3Zzb1kw?=
 =?utf-8?B?VUhEa2ZmalRycWVhWXZJWmh4ZnNIMmdEd09SV2dMTWdET2F5QWZxbEtLRTM0?=
 =?utf-8?B?b3dCcEZwQW5TWjVkRVMyYmd5a0dScDdzWVJHZGk5anF0VVJNbDBtdGJUNnJK?=
 =?utf-8?B?NVZ2OW5ORlY2QUJSV3JlSFczZ2VkVFZNMUgxSzljR0pCVG5WeEZhWVc3OE5U?=
 =?utf-8?B?UUE0ODlyd3hLaFV3QXoweVlXSDdGVStRTndMYVEvQ1RiR2hLSkFvUFhIWGx6?=
 =?utf-8?B?YWtRRm9oZlNYRll2ME5Sc1N3TTlJeUhmY2NITmNLSTFsZWFjWHZmQjdGR3dV?=
 =?utf-8?B?czRlTjUvcGI2Zngwd2llZjgxbENlSEhhUytzQ0NjRUJ0ekQzOHpSZndFNEVK?=
 =?utf-8?B?amFUUDdBSU4vdG91QS9MYk9nVFdzbDRFblVrako2N2N4WDk3em9STy9uakZW?=
 =?utf-8?B?THN2RzhUUGtzZmpudyt5bE9YSkROOU9QNVdrdE9jVGNQWS9hbFdhWTU3U3BW?=
 =?utf-8?B?STcrVFRQVzQ4Zy82TnRuZEd6NXBERytNYll6dWFuczRiMGY1QzQxOGtBSmR0?=
 =?utf-8?B?a2p3Y1Njekl6bWJyeW5JU0pNZlVvOFBCSnlZVDdTajVnTk43YnpodkIzdjBL?=
 =?utf-8?B?aEVyTFFUQkF2OEZKaDV0WFh5RE5FSGE5Y0pDV0VQNW1zKzNyNWdjL3JXM004?=
 =?utf-8?B?TXZpSFBaSDlEQ1VjTHB0cG0yK0VNNGNrNFhWRkEvcGJSSkdtbGVSR3dRODJa?=
 =?utf-8?B?dHBxcDlMaFdVRUlDbVN4VVFBbUlKRFJwTjJGKzlLY3VXRjFjOUM5TlhIdGQw?=
 =?utf-8?B?bzBiUUw0dWZzODlnL2VUMFN0bkpwd3RGc0lRVFZjZjA4R3IzUFRwTno3dXNS?=
 =?utf-8?B?czNTMXo0RzBYd3R2cWNuc2ZHd2lOT01yKzBjTWFSZXM4L0dyN1FrYXVzZmFB?=
 =?utf-8?B?U21EU1ZpREZMeVo5L0lkWWlkb0dzMVdpTmpzTEp3TmhNYk53YW81MU5MaTRW?=
 =?utf-8?B?LzgybFhRRDJ5b1NFclNRRm90T3pKZEIyTnd3U3pIaFVFSkNhUE1QUUIybVpL?=
 =?utf-8?B?YVQ1VHh3MnVWRWVwUEJUZzZHM2VSRlBhTDcwZFRZMUplK2RNdFpweDRXYWtu?=
 =?utf-8?B?ckJKMVBvb1pkNUVIV0RqenJPVjZFbi9UcUpMOTlmUWsvSXF4L0hFYWovNWM0?=
 =?utf-8?B?WThKQ0NMekpuV05tTFpsaFp3c1k1OCttVkZ6NTBBcHpvVFlGcTBwajFaRGhJ?=
 =?utf-8?B?T2xLbnpOMHJtQUFJaVZBbmtDaUJYbEg4NHNOQW1VUjJGVmtrZWQyd0JQcGRr?=
 =?utf-8?B?STkxdC9kQm0yU3Zzck1Lc1YzZ2JFeVBrTnhWeXBaNUxSVWx1ZHlSSDRHRFBM?=
 =?utf-8?B?cjJxYVE5ekF0SjNrTHVmdEp4Z1ZEMUR0YThHMHNTOGZyN1Rqb250Y3JZT2hD?=
 =?utf-8?B?VGlSWmIzNFFtcW9SVmlxcllBaThteWxJazZJWGVvem12YUNNcWtJbWRjenBV?=
 =?utf-8?B?VVlFb2p5VHVmZ3V0NEhXNm1hb0k2dDJGaWthbVNwWHpvR3Y0V1ZRbkRQNjZI?=
 =?utf-8?B?OGl4L20vVWE1M1NIOXEvdm1ybzVuQXVYODUrS202REkxY2Q5TWtKek02Rm10?=
 =?utf-8?B?SXhzdnArUTRtd0toR0JnaSs1d0VFdjlDb084VDBJVkx6L0w0UlV3UHpSWkpR?=
 =?utf-8?B?d0JIajdCeG1GOFJFZTFBN2RwSmhHcXh5WVRXKyt3NkIvOEFoR21PcVdkeXVF?=
 =?utf-8?B?eTVPRzRXSWpWamhXV01lY2dUdG1xZkk2VU43VnhISjQ4d00ySzdDTitMbW1E?=
 =?utf-8?B?N0Nnb05haUxSTGVIRnRYeUtNalJvdXYxT2lQSHpna3FTU3Y3cFVsZ016d0ZT?=
 =?utf-8?B?cFVqanZaRXZNelhhVDRmckJNL2RLN1I1ZjI3K3B6eHhUWFZueTVOSnJ0ZU1I?=
 =?utf-8?Q?HLuV5o?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?YnJjVGx4MVJWcDJkVnIzbzhDdlVYMnYrTGd6dlhOZmZUK01DcExKd0VlSXo2?=
 =?utf-8?B?ZmNYN0R2WXRpRjdiWkxvNTJYQ0wwc2ZxSVUwbHhZaU1CRS9Yc2p6OFpWT1Iv?=
 =?utf-8?B?ZElyck9KL2VIUmUvWm1raHFQbktBMFF2ZFBQUExMQzhyS0NJMDUzejVWZUpx?=
 =?utf-8?B?U09XdlM1QkJMeFJQenltL2xhS1AxejlLeEhrUXF1aTI2Mk8rUmhiYlRvRHN0?=
 =?utf-8?B?NlQ1d0dxZDdIZE8rb2FtdVdCMjB1ZmUrT1FZTmtwU0g4OGpNNEVVSlFOcVhO?=
 =?utf-8?B?YjJjb1M5RHNXbzdDc1RFNzNxZkl6dHRHM1IyMG5RYXJNMStkUlhyczRoK3hQ?=
 =?utf-8?B?aFRNMVE5Mk95azJ1UUdHN05kbTFVNm51SkpQYXlUNWJ3V21rNWVpNldsQnIr?=
 =?utf-8?B?QzlBaEFDNnJFUTVqS2NheEZ4K1VUY0llQXpMaEE5R1dNcEhWaGlHVUkvNm1x?=
 =?utf-8?B?bDU0VFBJSnREZXE5REZ6NlB3OTU5b0tMZnhxNS9KUG1KY2E5S0xYQ1RvME9M?=
 =?utf-8?B?WVJHMUpvb2dHdzVKbmRRU255eWM1S3dhWEdwc3ZMR1NUeHh4NXhON1pYcnI4?=
 =?utf-8?B?eUlXdGxrTUhKUDVsOS9IdmFmMm03TW1hTGpLTExkNzgyWXB5VVBmZDNBRXJq?=
 =?utf-8?B?Snorcm5VR3g4TUVNZFpxNUxDU2JQYUxlcHA2dm4xZzAyL2pRN3V1OUovUEYz?=
 =?utf-8?B?SmJEOEs1RTQ4MURZMitLZkp0R0x5eitVUXVFQTBTdkM1WWt2TnZJRmRHSDB3?=
 =?utf-8?B?L1lTL1NwRjFiVVdDZVlmakUyQzYxUTZqTWNjbW9YeGEvNGlGN1JnZW9BL3VR?=
 =?utf-8?B?TlpNaEpxYWN5NDFheFdhOW5wbGpFNUdLRmtROUpXWVNmQnBzeXlPaURLU2FT?=
 =?utf-8?B?UkdIRDVqcVJsMHRHNC92UUltcW5BaGdFcVRZMUhTSWs5WWdNdG1sTTdESDQr?=
 =?utf-8?B?cG1HcTlDanZXUGlGa0hocW03MmdRZWNoY2E1NUdhdENJUU0wdndWUTVCNENt?=
 =?utf-8?B?YnJvd1U3L0V4aDcxdldTVUxCVk1WbHpieXZBWTFYamF0V3pjQjAvYXIySXFS?=
 =?utf-8?B?emdlei85azR5SktwT0ZOdGNIb2N5WGZadUMrVU5vMWNlL2Nua0xsU1hDZGpI?=
 =?utf-8?B?cFk5UUdNSTN3TVVyT1hUL3ZZbEkvUExFR2xqc2xaUkhBdUVKYlMyTWkySWhx?=
 =?utf-8?B?MXI4WVRuSzFFdmpkN1ZGbzFmaWlzQ3U0ZFNmeGV0SE5UUXZSeFUzVTdxdXlU?=
 =?utf-8?B?NHhvaFdnNnlEdENOS05KRnArVmQvVnpiWnVGUGR1Rys3NEY1c2FKMUhWZ1lR?=
 =?utf-8?B?YS9LaVVGVkNCa2xXeTVOS2NUN3lxajV6WUMya0tMbXlqRG1hWld5dEo5YXNR?=
 =?utf-8?B?Y3VTUEtSRjI4K0IraDFIV2RVQUlnelArampLdm5sU2JpMHMwWlRKVXVmbnNO?=
 =?utf-8?B?UzdrZEpOVjgwaFV0LzI5TjRaQXBmVmQvTTdTcS9GdEFSZHg2eVdIbC9Zejlv?=
 =?utf-8?B?NlduK3djeVdTSW9zUG5ncnNqUmFkVHNwZkdlR0srR0RsQ0I2aUpzb2d6YUlj?=
 =?utf-8?B?cWp3MzJiNXlYaldLU0k5NEtSc04rbEtwcDlmQjhIb1ZKZWlua1A2RFdaUUIx?=
 =?utf-8?B?YVJWc255Q0hndHZhNGF2OWJNamRzeUh3Q0p2OUd1UHB5NzlsdFRiMTJkQklT?=
 =?utf-8?B?ZWlleFlWM3FRVWdLL0R2ejZDYnVRbENGU2pSRkFFaW1qZEhPNE1nUWp1eTRj?=
 =?utf-8?B?UmpjSjNzeC9OYzN3NmNkOXJteEp3SnpYcnZqTkZyNWYxaFNGWmk4RmRqVzc2?=
 =?utf-8?B?QjJ1YWpqcE82Tm9TcTRaN2tCN05nZFRNbVlLSmJpcTV6TklsTy9heDhBUXJY?=
 =?utf-8?B?VjVkKzh5TUxmRTQ4elgwd2FHNDcyeStOOFRkMmNsNTNyZ1dkanQrYW4xbkp0?=
 =?utf-8?B?cDBrMjI1eC8wV1UwSzRyTUdJQjltTWx1MVdOQWJqbXUvTTZ4R0FPTmtjWVN4?=
 =?utf-8?B?QzJhSktOZi9idXJQWFNoVkJpWUtOUUJVNUN2UTk5Z3ZrZnFQMThEakpyVDZK?=
 =?utf-8?B?eTdUeVFoeU5MR0krWUJLZCtzdW1xTXlBeHpYVDd6NmVSYWxFVkF0S1daS0xv?=
 =?utf-8?Q?xiW8=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e073d717-18a4-4aa9-babd-08de30a39df0
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Dec 2025 06:34:02.0496
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: /psv3olKmResGePDNB6/mCqTzNBAfe6V2Z3KmLewYBGMJTXeDG8A8f6a5LGpf+0txb1/vPUjHhc6l7SG57Kt6w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7875

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBHcnlnb3Jp
aSBTdHJhc2hrbyA8Z3J5Z29yaWlfc3RyYXNoa29AZXBhbS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5
LCBOb3ZlbWJlciAyNywgMjAyNSA1OjQ1IEFNDQo+IFRvOiBQZW5ueSwgWmhlbmcgPHBlbm55Lnpo
ZW5nQGFtZC5jb20+OyB4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IEh1YW5n
LCBSYXkgPFJheS5IdWFuZ0BhbWQuY29tPjsgSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29t
PjsNCj4gQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT47IFJvZ2VyIFBh
dSBNb25uw6kNCj4gPHJvZ2VyLnBhdUBjaXRyaXguY29tPjsgQW50aG9ueSBQRVJBUkQgPGFudGhv
bnkucGVyYXJkQHZhdGVzLnRlY2g+OyBKdWVyZ2VuDQo+IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+
DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjQgMDIvMjRdIHhlbjogY29uc29saWRhdGUgY3B1aWQg
bGlicmFyeQ0KPg0KPg0KPg0KPiBPbiAyMS4xMS4yNSAxMjo1NywgUGVubnkgWmhlbmcgd3JvdGU6
DQo+ID4gVGhlcmUgYXJlIHNvbWUgY3B1aWQgbGlicmFyeSBmdW5jdGlvbnMgb25seSByZWZlcmVu
Y2VkIGluDQo+ID4gWEVOX0RPTUNUTF9nZXR7LHNldH1fY3B1X3BvbGljeS1jYXNlLCBhbmQgc2hh
bGwgYmUgd3JhcHBlZCB3aXRoDQo+ID4gQ09ORklHX01HTVRfSFlQRVJDQUxMUyBsYXRlciwgb3Ro
ZXJ3aXNlIHRoZXkgd2lsbCBiZWNvbWUgdW5yZWFjaGFibGUNCj4gPiB3aGVuIE1HTVRfSFlQRVJD
QUxMUz1uLCBhbmQgaGVuY2UgdmlvbGF0ZSBNaXNyYSAyLjENCj4gPiAtIHg4Nl9jcHVfcG9saWN5
X2NsZWFyX291dF9vZl9yYW5nZV9sZWF2ZXMNCj4gPiAgICAtIHplcm9fbGVhdmVzDQo+ID4gLSB4
ODZfY3B1aWRfY29weV90b19idWZmZXINCj4gPiAgICAtIGNvcHlfbGVhZl90b19idWZmZXINCj4g
PiAtIHg4Nl9jcHVpZF9jb3B5X2Zyb21fYnVmZmVyDQo+ID4gV2Ugc2VwZXJhdGUgdGhlc2UgZnVu
Y3Rpb25zIGJ5IG1vdmluZyBvdGhlciBmdW5jdGlvbnMgdG8gYSBuZXcgZmlsZQ0KPiA+IG5hbWVk
IGNwdWlkLWdlbmVyaWMuYywgYW5kIG1vZGlmeSByZWxhdGVkIE1ha2VmaWxlLXMgdG8gcmV0YWlu
IHNhbWUgYmVoYXZpb3IuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBQZW5ueSBaaGVuZyA8UGVu
bnkuWmhlbmdAYW1kLmNvbT4NCj4gPiAtLS0NCj4gPiB2MyAtPiB2NDoNCj4gPiAtIG5ldyBjb21t
aXQNCj4gPiAtLS0NCj4gPiAgIHRvb2xzL2Z1enovY3B1LXBvbGljeS9NYWtlZmlsZSAgICAgICAg
ICAgICAgIHwgICAyICstDQo+ID4gICB0b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRv
ci9NYWtlZmlsZSB8ICAxMCArLQ0KPiA+ICAgdG9vbHMvbGlicy9ndWVzdC9NYWtlZmlsZS5jb21t
b24gICAgICAgICAgICAgfCAgIDIgKy0NCj4gPiAgIHRvb2xzL3Rlc3RzL2NwdS1wb2xpY3kvTWFr
ZWZpbGUgICAgICAgICAgICAgIHwgICAyICstDQo+ID4gICB0b29scy90ZXN0cy94ODZfZW11bGF0
b3IvTWFrZWZpbGUgICAgICAgICAgICB8ICAgMiArLQ0KPiA+ICAgeGVuL2xpYi94ODYvTWFrZWZp
bGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiA+ICAgeGVuL2xpYi94ODYvY3B1
aWQtZ2VuZXJpYy5jICAgICAgICAgICAgICAgICAgfCAyNzMgKysrKysrKysrKysrKysrKysrKw0K
PiA+ICAgeGVuL2xpYi94ODYvY3B1aWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyNjAg
LS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gICA4IGZpbGVzIGNoYW5nZWQsIDI4MyBpbnNlcnRpb25z
KCspLCAyNjkgZGVsZXRpb25zKC0pDQo+ID4gICBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2xpYi94
ODYvY3B1aWQtZ2VuZXJpYy5jDQo+DQo+IEl0IHNlZW1zIHRoaXMgcGF0Y2ggaXMgbm90IHJlcXVp
cmVkIHByZXJlcXVpc2l0ZSwgYXQgbGVhc3QgZGVmaW5pdGVseSBub3QgZm9yIFBhdGNoIDMuDQo+
DQoNCkl0IGlzIHRoZSBwcmUtcmVxdWlzaXRlIGZvciBjb21taXQgIiB4ZW4veDg2OiB3cmFwIHg4
Ni1zcGVjaWZpYyBkb21jdGwtb3Agd2l0aCBDT05GSUdfTUdNVF9IWVBFUkNBTExTICIsIFdlIHdh
bnQgdG8gZ3VhcmQgbmV3IGNwdWlkLm8gd2l0aCBNR01UX0hZUEVSQ0FMTFMgdGhlcmUuIFdpdGhv
dXQgdGhlIHNwbGl0LCBmd2lzLCBJIGNvdWxkIG5vdCB0aGluayBhIGJldHRlciB3YXkgdG8gYXZv
aWQgZnVuY3Rpb25zIGxpa2UgeDg2X2NwdWlkX2NvcHlfdG97LGZyb219X2J1ZmZlciBiZWNvbWlu
ZyB1bnJlYWNoYWJsZSB3aGVuIE1HTVRfSFlQRVJDQUxMUz1uLg0KDQo+IEluIGdlbmVyYWwsIGkg
dGhpbmsgaXQgY2FuIGJlIHJlbW92ZWQgZnJvbSB0aGlzIHNlcmllcyBhbmQgc2VudCBhcyBmb2xs
b3cgdXAgcGF0Y2guDQo+DQo+IC0tDQo+IEJlc3QgcmVnYXJkcywNCj4gLWdyeWdvcmlpDQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 06:58:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 06:58:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175541.1500176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPxr8-0000VS-Mq; Mon, 01 Dec 2025 06:57:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175541.1500176; Mon, 01 Dec 2025 06:57:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPxr8-0000VL-KB; Mon, 01 Dec 2025 06:57:54 +0000
Received: by outflank-mailman (input) for mailman id 1175541;
 Mon, 01 Dec 2025 06:57:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=isLO=6H=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vPxr8-0000VF-2z
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 06:57:54 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0b425368-ce83-11f0-980a-7dc792cee155;
 Mon, 01 Dec 2025 07:57:48 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 PH0PR12MB8032.namprd12.prod.outlook.com (2603:10b6:510:26f::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Mon, 1 Dec
 2025 06:57:43 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2%2]) with mapi id 15.20.9366.012; Mon, 1 Dec 2025
 06:57:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b425368-ce83-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=D9em1INpZLZKdR/eLoQNAet6dmmk4SoUyjcItGrQBzzdU16mQKrLbRp+y+mSFCuGKH7YC+ujCkE3WEFqwhAPNFN+X+5USHD3xaeA5JDWInrnzeJSlDgYkLcUW/3lrn0Afq6cDwN52TGb46ZsG5xzp3EnbtI0F97Z4i6AAXZu/yfGGSXbUAaDh2mdLJDT0YIvs/RhPPOuw+CXSBdD0ROhBlPqli3d/0l3Fe2cxPz96liG2vFnZrHovVftv1OHNj9ptJ3c1G1jjBfuUNwcU0d7+8AJTlekFrawtBx0B+0R2koxUHCTmYa7oqM4vfKcLZZB7u2RqygAEU2cirjbBYNx+A==
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=ikCrHwEAtMLGWs5s6vKBbLSifaibZtqb/LLPbUMjgkc=;
 b=qMQzUO3mvcgLhmRVvMsTgAVIvS7qOyGeK4b1rn1fiUYR7lZBY4Jhkiz/lztFnAbA9kwCX09j/dftyJObQ/mDSoXCBstS8U423hJ2LlAq0k4rPCtotv19wi6QDKuaL798GcpXE1KWMHlwFJFs5lh7rZWtp7pX1OsuWzqls8KsBmsMudd+h25NO/FEQ8y3PbZ5rMNyvw8Am2KF2ehXki88zJLb1JI4S1pfZc7m6mSjYWBBJ9Uq8O8Vc3SQ6OxbSNg7QtjVgrop/Dw0vm951Hyi2QQvh76rcUPdnM1ezeX1l1w/8OItsFRrJGQlEt/odjSs6j3PUq1EvU4v0jqs2teoqg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ikCrHwEAtMLGWs5s6vKBbLSifaibZtqb/LLPbUMjgkc=;
 b=HZyV4PSz80Ah67Rspf3qv7gQ+PQD5Au32dhI/Sn9JdPnnuKRyeNHyNHMncPE6ZP1s0fNwtlM+/Oq7ecf2FA5zArziZZjSegDKQi5vODKfC3EI/HxuGHzaAKk9kyHZrpYOzi7RPz59IJwaTVYIMthS1AuZzi6+cBGugciJQwfbqA=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "grygorii_strashko@epam.com"
	<grygorii_strashko@epam.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Juergen
 Gross <jgross@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v4 02/24] xen: consolidate cpuid library
Thread-Topic: [PATCH v4 02/24] xen: consolidate cpuid library
Thread-Index: AQHcWtXJjf66LsUGrE2uxhJqk+lJcbUC9piAgAlt5QA=
Date: Mon, 1 Dec 2025 06:57:43 +0000
Message-ID:
 <DM4PR12MB84515C97AE3F68E676FED174E1DBA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-3-Penny.Zheng@amd.com>
 <6781dbd7-ddce-49c1-a359-0910e91bda43@suse.com>
In-Reply-To: <6781dbd7-ddce-49c1-a359-0910e91bda43@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-12-01T06:57:35.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|PH0PR12MB8032:EE_
x-ms-office365-filtering-correlation-id: c9c6b72e-d2ef-4f32-d497-08de30a6ed61
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?MWtNQzNXbGtLMVZINjRZNE1ISjZFUzZ4aXY3K2k0STNVYzhTY3BhMWtSTnQ3?=
 =?utf-8?B?L0pxRXB6WFZIRFo5VEQ0WE9XRks4Qkp2cy9WR2M1Q3hLYW9kdHpxOEVPSTlz?=
 =?utf-8?B?Yi9mTVZ1ZmZoVytHeElSdFpXUW5BM0lBYUNBQ3J4b0lPbTJYYWVYS2lZUC85?=
 =?utf-8?B?VkE1ZlEwMjl4dzJqSjlZQmhNN2locG5OaERBcno3dEVCOGI2WUoyaDdFcmJG?=
 =?utf-8?B?cHk0ZXVGVmR2L29BNDNCdC9rSDg3anlNMUJuckx2Vm9TQ3ByZ2VGN1R5em1z?=
 =?utf-8?B?N3EyeW9mb2NEcmdTSkFZVktZUytNM3NsamRpM3YrQmFQRWlOaHMrM3NVRXpu?=
 =?utf-8?B?K2Q4K2w3Ym1OenQ5RmUzOFN3WDVYamdWN2IyNDFlNkRCWDdFOTBNTjBZcnFr?=
 =?utf-8?B?ZlpsempKUDRUQUZ3b2gwbnp2ZWI3L1Jmc2xPY2FqU3JkZXVkWWNFc2RNQkJX?=
 =?utf-8?B?dmY4cHkxby9kVXBkTm9vMUFHWXhhTWhxTU8xcTVkRFptbS9sdkNvbXhQYS9a?=
 =?utf-8?B?ajdJaVViUTlROFhyVCtiNjd4TUw3STJGVWJrbmFTMkFwa0pSUTJCUjMzYWVs?=
 =?utf-8?B?elJWdWpCdldZMUtQWENKSEkya291NjNpMlFxbkFXb1krVFlWSFdnQ1VSUkNS?=
 =?utf-8?B?NlZ3ZnhzV0d0UVMvTjhaT1l3SE5pSW5Pc1JURUthZkQ1UXIwTk1PWGdsWmh6?=
 =?utf-8?B?QktMZVNUNDJ5dEVnNnVlV2daaDJMak9pZ1lCU1hWWlY3WS9NblhFVTFpcEJD?=
 =?utf-8?B?b3RyMm9RRHUraE0xQXU5YjFpdC9uZytybFV0NUJOc3MrUU1qOGozTEY3eEUy?=
 =?utf-8?B?ZmMwWFJ0ekV0MDkxZXdjZGxOYUtleW1oSGFDNjZWME5PVE1EOVdlNkN2Uks5?=
 =?utf-8?B?enhQbGQxb2Zwb0t3MllwUHhMV244VkZjdmRRNXo2a3BFcFF2V3Z4REZHUmlJ?=
 =?utf-8?B?UVR0c2dXazlSK2pQc1dzWXIwY1pzK0pJSXJ2RjhJTmMwdGpMZTlURjlTcEow?=
 =?utf-8?B?cjA2dE5TMzBoNFA2d2ZBbVRDUHVobTFscFY1WVltM3RIaTJKS1R6d2ZUNW1o?=
 =?utf-8?B?cWREYlpRVmFNcUdlNStNTXAwc3ZndTFSU21DblpaOVlMeC9BK05LZzhGZ21B?=
 =?utf-8?B?THYvd2dyeFptWFRrYTNxYWpuOURRNGJGM01EaFVvNC9XU1QvcW1OVG5QRU1i?=
 =?utf-8?B?YVRSeXNHcjZHMEtHUE15UDRWVWRHYUpoMjY5SC96WWRQemVVd1kvc2ZqdEVR?=
 =?utf-8?B?YXlKSUFudit5Sm5KL25pNlVlRWZhdk5KMnI2bWJicExKUUY5STZvSXBXaTY4?=
 =?utf-8?B?SUMvZnRKMlliaGliOGNMYWpQdUtTaDlxT1l6T2ErNGZWYXpQSC9SbkQ4Skdj?=
 =?utf-8?B?cUg2U05wNVlOWWQ1REl5TlZ1U3UwU2twUmRiQitoOU9Ob2hoOHBJbjNwVFpC?=
 =?utf-8?B?MkdaVFVPYmpwd05pS3FBNk1sZlNQYlNNTnA4U2JlaHl2R1g0YXF0VUVraExz?=
 =?utf-8?B?aHlKNTdWOXNHMVYvdU5IT0h1RHpKWVVsUStDWThrWmZVRjVBd0ZoVVFkODlR?=
 =?utf-8?B?Zzg3VktreDJJZ1gzZS93Qk8zVnJCbDZXZ2FvYkVIK1Z5a3lpMjN0SHYrdUVB?=
 =?utf-8?B?MFhXMVgxdEh2aXlYY0liNFliUTEyYko4NE5HWDBQcVdzaXgwZnJhdzRLQ3dt?=
 =?utf-8?B?VnNRdUdTWlhvMW5GNk12RGEzS2NKNktWRHpaY2M1ZGhMWlFkVkxsZktUWGg1?=
 =?utf-8?B?YVAwaTlpSzdvbENNTk5uMi8rNXpqbTMybWZuWmk5ampaemhmVTQ3R2Y0WEcy?=
 =?utf-8?B?Y0VKZXlDaS93MkJibmludkF6OGcrRWRmdEgrQUNuMlVmb0lDcWVBVnVaTWI0?=
 =?utf-8?B?RjRET1BQbEZlemZ4Y045a0lLT3BqRTE2RXZMU3NLZitlUW1Pa1JKeWp2dFR0?=
 =?utf-8?B?T0FyZElpUFowTGF3RTRrUU0yVzdSamMzNEZST3BaV3I0T3JhUXlqSXdGOHVh?=
 =?utf-8?B?ajRsRmUxblN3dUVIMWIrV1hxVGNVUXZacmJscVlxUlo1V0RocTRSTkJkU1Rh?=
 =?utf-8?Q?Y9NG+L?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?d21NRGppRlNCYzZPUVJjRGNjMFJmemt4TG03emlndlM0d0EvcWlLd3B2bnpi?=
 =?utf-8?B?YnFYNHFpQkg4RGttYnNkNldISHdvcVBJOWRiWGljV0pxZVNyTnkrZDNIWENO?=
 =?utf-8?B?WGxCNW1FbytzWDg3bFE1MlpKR3FWWmZQc3VldVBQM2RYazN0MG15bkdvU0dO?=
 =?utf-8?B?TlZCNk9FaFhJSGlwNlBWbCtDQURGRVp6Ky84clhhTWVzWnUzV25Kd3VpQmc4?=
 =?utf-8?B?YkhVYVkzTUVVYkxJVDdQNTZHL0YwUE1CWW9KK01NQlh0RWlWcG5LVmE1eTB0?=
 =?utf-8?B?VlNZZ1c3bGlOTkhUcys4cEN3NjhFdE1zNXpVN2FPbXpFTVZPY3E3TDhGRmpn?=
 =?utf-8?B?WXE4MmtlaXlFc3E1ZlpCRFVrYkpOdXFvcmpPNkMzVUFLc2ZPeUdnU0EyTXZQ?=
 =?utf-8?B?SmJheGc2UkVoMEVVWVdDUjVVZncrd0k3RldoVkZ0VVl2SWlIWlI1YzFpWkVM?=
 =?utf-8?B?WklvVWNYV1lqQUw0V2dHV1ZzM0ljeG10WXlGTGhqS1A2U0FwMTJFUktuSG8z?=
 =?utf-8?B?c2lReUNUbStWTG12dWxXVmJzVFNtS0hmamZwcDRVOVNGNGYrWXFrOEJoWDJl?=
 =?utf-8?B?L284UnZlNUdVdWtxeDBSeENhMjB2aU9KT1Vyc1FzL1ZnNkJlSmpBQTZDVnVR?=
 =?utf-8?B?cDhjdEtVY2NXRDdteGg5MTVqNFB0eWx0dmpnR0dMVEtvNlhML0F0eTcyakhv?=
 =?utf-8?B?eGF3cVExcFBac3hzdktXa3hISmdmWVRNb2JGMnY3NlBYaGRQTVZsc2hVRzRR?=
 =?utf-8?B?SzBLSGlqRzIxWnJwWU1SR3kwOHBrc0s0NnU2WDc5K09PMFpiNnI3eUhkd1V2?=
 =?utf-8?B?aFBMdWk2dDRkSmJ4dklFTng1L2Y3ZVUwMkwyd2ptRkdqQzZuNzJMdGpoSEJp?=
 =?utf-8?B?UW1iQ1ZQNkdlZUdDTnY2eWlWajR0eDB6M3J0SGRLRGZWZlVpdisxNjM3c3Zw?=
 =?utf-8?B?NTlGMWRDSWI2bWJieGw0YmltaWlHdzR5MlZTWkh6R21vaE13cUZ6UWpXWVNG?=
 =?utf-8?B?bHI4aFUrUWRmNEtkbkRXYkN5RG5iRGU0bktnUmZ5cjhuZmJIOHYrTSszZnlX?=
 =?utf-8?B?S0JSampqTGR5L3RtZ0poMDVkNWJsc1kzT3hSU1NUanZjK0V6cHV6Y0ladjR3?=
 =?utf-8?B?THlnUWNiaWp3U1luM0JPbkplT2o3N3lHNEU2OC9RakJuS2pMRkt5YVlEOU1j?=
 =?utf-8?B?YVBTT040OWlGbGxBd2xvYWo0YnV0VTFRMEpRdGY3MS9JQkRQVnlJVlpKNHhr?=
 =?utf-8?B?KzNZZFdUcEJvMkgySXlYeFdCMU1vTVVPUEI2UHlNN3o2V25ydm4ydjN1QmZa?=
 =?utf-8?B?Snc1cFRlVEdSdWwzejlaaUxwTnRxdUt0T3l5QWExcTlWeUZSVlhNdXkyNWtv?=
 =?utf-8?B?c09JNkZsNTltdjZXV1pQZmV6QzNwOUdobTBuR01MYlNLZ1BjMDE3Y0xNZjNk?=
 =?utf-8?B?Qks3emlXYjQ0YzdheTdVeWRHZm5OVVJxTjRwdVFneklpeDZ0MlRIQ1RCejZG?=
 =?utf-8?B?RnNrT3dodnltWHB0RmNkTG8xb2Z5SmQzM25LQWd0Zys5N05Za3VFRVc3WDdZ?=
 =?utf-8?B?UjF4QlVBWXUvMGU1bUc5T2tFeHJCeE5ydk9Ed2NWQ0orMlp6d2Z1UWFHUFov?=
 =?utf-8?B?clRBS3RVYWZudGpmRTdYRmY4d2dRT3ZYSmxzK3FZY3V3eUc2MDVWa2E2M2ZS?=
 =?utf-8?B?RGdIR0RCeldvWURJT0lNeWtDR3MzbHVVU2hkUmhPRHRLSmI5cHNPakRiSlRs?=
 =?utf-8?B?bVpQTUszNjlXMU1JbUk4ODhGNFdnTGFyL2dOTGlUYzlmK3V0R1B4NC9TWnFJ?=
 =?utf-8?B?aDViVHh4NW51bVJhTGptTnh3dzJIMGxDRTZmNWpGYk81MU84SjZCS2ttM2Rw?=
 =?utf-8?B?Zmg2RHA0YTF0Z2VGNm5hbDFGSklwZVljTGJrZzNUR05wb3Azdzcvdy9CN0Jp?=
 =?utf-8?B?aG51aS9iczc3bVVWTXNmTTltWVl6VzdEN3FmTm9uTVNaWVMrVDQ2ZzVuZEJu?=
 =?utf-8?B?eTZXNWUwUy9VMEZON2lLZDFaV2s4Qlp0d2hDQXRTd2F4VWRLSElVNnZadm9W?=
 =?utf-8?B?bTZTUXRXRHU2alB0R2syVmRNSXRFaHpvdTFxTDNXYmJ5RGtRYzRmY1lwREw4?=
 =?utf-8?Q?H6Fc=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c9c6b72e-d2ef-4f32-d497-08de30a6ed61
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Dec 2025 06:57:43.8255
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: J/3IVROYTywTxQ32e7PmpJnFvS/RwmqFOYdJQPNBHVlAluMvuawkK0z9lnVbahS73waav89J3uFs26LOZdRJTg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB8032

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIE5vdmVtYmVyIDI1LCAy
MDI1IDI6MzkgUE0NCj4gVG86IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT47IEFu
ZHJldyBDb29wZXINCj4gPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+DQo+IENjOiBIdWFuZywg
UmF5IDxSYXkuSHVhbmdAYW1kLmNvbT47IGdyeWdvcmlpX3N0cmFzaGtvQGVwYW0uY29tOyBSb2dl
cg0KPiBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT47IEFudGhvbnkgUEVSQVJEDQo+
IDxhbnRob255LnBlcmFyZEB2YXRlcy50ZWNoPjsgSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2Uu
Y29tPjsgeGVuLQ0KPiBkZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0OiBSZTog
W1BBVENIIHY0IDAyLzI0XSB4ZW46IGNvbnNvbGlkYXRlIGNwdWlkIGxpYnJhcnkNCj4NCj4gT24g
MjEuMTEuMjAyNSAxMTo1NywgUGVubnkgWmhlbmcgd3JvdGU6DQo+ID4gVGhlcmUgYXJlIHNvbWUg
Y3B1aWQgbGlicmFyeSBmdW5jdGlvbnMgb25seSByZWZlcmVuY2VkIGluDQo+ID4gWEVOX0RPTUNU
TF9nZXR7LHNldH1fY3B1X3BvbGljeS1jYXNlLCBhbmQgc2hhbGwgYmUgd3JhcHBlZCB3aXRoDQo+
ID4gQ09ORklHX01HTVRfSFlQRVJDQUxMUyBsYXRlciwgb3RoZXJ3aXNlIHRoZXkgd2lsbCBiZWNv
bWUgdW5yZWFjaGFibGUNCj4gPiB3aGVuIE1HTVRfSFlQRVJDQUxMUz1uLCBhbmQgaGVuY2Ugdmlv
bGF0ZSBNaXNyYSAyLjENCj4gPiAtIHg4Nl9jcHVfcG9saWN5X2NsZWFyX291dF9vZl9yYW5nZV9s
ZWF2ZXMNCj4gPiAgIC0gemVyb19sZWF2ZXMNCj4gPiAtIHg4Nl9jcHVpZF9jb3B5X3RvX2J1ZmZl
cg0KPiA+ICAgLSBjb3B5X2xlYWZfdG9fYnVmZmVyDQo+ID4gLSB4ODZfY3B1aWRfY29weV9mcm9t
X2J1ZmZlcg0KPiA+IFdlIHNlcGVyYXRlIHRoZXNlIGZ1bmN0aW9ucyBieSBtb3Zpbmcgb3RoZXIg
ZnVuY3Rpb25zIHRvIGEgbmV3IGZpbGUNCj4gPiBuYW1lZCBjcHVpZC1nZW5lcmljLmMsIGFuZCBt
b2RpZnkgcmVsYXRlZCBNYWtlZmlsZS1zIHRvIHJldGFpbiBzYW1lIGJlaGF2aW9yLg0KPiA+DQo+
ID4gU2lnbmVkLW9mZi1ieTogUGVubnkgWmhlbmcgPFBlbm55LlpoZW5nQGFtZC5jb20+DQo+ID4g
LS0tDQo+ID4gdjMgLT4gdjQ6DQo+ID4gLSBuZXcgY29tbWl0DQo+ID4gLS0tDQo+ID4gIHRvb2xz
L2Z1enovY3B1LXBvbGljeS9NYWtlZmlsZSAgICAgICAgICAgICAgIHwgICAyICstDQo+ID4gIHRv
b2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL01ha2VmaWxlIHwgIDEwICstDQo+ID4g
IHRvb2xzL2xpYnMvZ3Vlc3QvTWFrZWZpbGUuY29tbW9uICAgICAgICAgICAgIHwgICAyICstDQo+
ID4gIHRvb2xzL3Rlc3RzL2NwdS1wb2xpY3kvTWFrZWZpbGUgICAgICAgICAgICAgIHwgICAyICst
DQo+ID4gIHRvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9NYWtlZmlsZSAgICAgICAgICAgIHwgICAy
ICstDQo+ID4gIHhlbi9saWIveDg2L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxICsNCj4gPiAgeGVuL2xpYi94ODYvY3B1aWQtZ2VuZXJpYy5jICAgICAgICAgICAgICAgICAg
fCAyNzMgKysrKysrKysrKysrKysrKysrKw0KPiA+ICB4ZW4vbGliL3g4Ni9jcHVpZC5jICAgICAg
ICAgICAgICAgICAgICAgICAgICB8IDI2MCAtLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiAgOCBmaWxl
cyBjaGFuZ2VkLCAyODMgaW5zZXJ0aW9ucygrKSwgMjY5IGRlbGV0aW9ucygtKSAgY3JlYXRlIG1v
ZGUNCj4gPiAxMDA2NDQgeGVuL2xpYi94ODYvY3B1aWQtZ2VuZXJpYy5jDQo+DQo+IEFuZHJldyAt
IHdoYXQncyB5b3VyIHRha2Ugb24gc3VjaCBhIHNwbGl0PyBQZXJzb25hbGx5IEknbSBub3Qgb3Zl
cmx5IGhhcHB5IHRvIHNlZQ0KPiByZWxhdGVkIGZ1bmN0aW9ucyBiZSBzY2F0dGVyZWQgYWNyb3Nz
IHR3byBmaWxlcy4gVGhlIHNlcGFyYXRpb24gYWxzbyBmZWVscyBwcmV0dHkNCj4gcmFuZG9tLCBw
b3NpbmcgdGhlIHJpc2sgdGhhdCBsYXRlciBzb21lIG9mIHRoZSBjb2RlIG1heSBuZWVkIHRvIG1v
dmUgYmFjay4NCj4NCg0KUmlnaHQgbm93LCBJIGNvdWxkIG5vdCB0aGluayBhIGJldHRlciB3YXkg
dG8gZ3VhcmQgeDg2X2NwdWlkX2NvcHlfZnJvbXssdG99X2J1ZmZlciB3aXRoIE1HTVRfSFlQRVJD
QUxMUyB3aXRob3V0IHNwbGl0LCBhbnkgYmV0dGVyIHN1Z2dlc3Rpb24/IE9yIG1heWJlIEkgY291
bGQgYWRkIHVwIHNvbWUgZXhwbGFuYXRpb25zIG9uIHRoZSBmaWxlIGNwdWlkX2dlbmVyaWMuYyBo
ZWFkIG5vdGUgdG8gZXhwbGFpbiB0aGUgZGlmZnMgYmV0d2VlbiBpdHNlbGYgYW5kIGNwdWlkLmMs
IHNvbWV0aGluZyBsaWtlOg0KYGBgDQpUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGNwdWlkLmMgYW5k
IGNwdWlkX2dlbmVyaWMuYyBpcyB0aGF0IHRoZSBmb3JtZXIgY29udGFpbnMgbGlicmFyeSBmdW5j
dGlvbnMgdGhhdCBoYXMgb25seSBiZWVuIHJlZmVyZW5jZWQgaW4gbWFuYWdlbWVudCBoeXBlcmNh
bGxzLCBzdWNoIGFzIHN5c2N0bCwgZG9tY3RsLCBldGMuIFNlZSBjb21tZW50IGZvciBNR01UX0hZ
UEVSQ0FMTFMuDQpgYGANCg0KPiBQZW5ueSwgSSBhbHNvIGRvbid0IHRoaW5rICJjb25zb2xpZGF0
ZSIgaXMgd2hhdCBpcyBoYXBwZW5pbmcgaGVyZS4NCj4gUGVyaGFwcyAic3BsaXQiIHdvdWxkIGJl
IGdldHRpbmcgY2xvc2VyPw0KPg0KPiBKYW4NCg==


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 08:23:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 08:23:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175563.1500185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPzBc-00039y-KC; Mon, 01 Dec 2025 08:23:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175563.1500185; Mon, 01 Dec 2025 08:23:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPzBc-00039r-Hf; Mon, 01 Dec 2025 08:23:08 +0000
Received: by outflank-mailman (input) for mailman id 1175563;
 Mon, 01 Dec 2025 08:23:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0dw1=6H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vPzBb-00039l-Jr
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 08:23:07 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f574ee17-ce8e-11f0-980a-7dc792cee155;
 Mon, 01 Dec 2025 09:23:04 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-42e2ce8681eso1031310f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 01 Dec 2025 00:23:04 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42e1c5c30c4sm25329429f8f.9.2025.12.01.00.23.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Dec 2025 00:23:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f574ee17-ce8e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764577384; x=1765182184; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tVPM5a/fUWecAKcZ+uBvajHH3ZHtuTKVH+T2J+RzBuk=;
        b=P7G74Mb4izes13KlQL/urw1fD7bFGyasaLQrgD6RqxHfGGdeQH3QutpmTCs1ltsWTg
         1FFWwt9rvqBWVctzEKeZjrWBEXd5hrNs/pBP/X5PRIahCbALyAg0tXZz1iItroNyYSBJ
         VzuUZsVXrBq23nVrcnLpmNVRI6vqJwCw5PoIQWPrjgU+LgpgQSQL4feym8omJ7tblfJd
         IWKz2Ra7NVWAnEfLJIJQVbdSDn1Gm3N58EzeZQzLUM0oRcH2V5tHbnTEU4ZjnTqQxUR1
         Lm7SMErMwMWYk20yNQpXskiY8v+W7toMEQRCg41nIo57r0uUoGCZCEvKvUeJzJXfGbBf
         jriA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764577384; x=1765182184;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tVPM5a/fUWecAKcZ+uBvajHH3ZHtuTKVH+T2J+RzBuk=;
        b=BvgPP1ltrrpfmjLq6WTELL2/uixIr7f8c8o8cmbk4ofNV0Uv542kGgehlxGrGxLugJ
         anN6zQ/y2rZXmOWhOlZyIbuMvbAwVDxIGRZDMBReLKwmLsZiJnEEK75rr4lOK7gJTOTp
         DkNfeS29Zk7AxClJ3V3rPs09noXW95avqo3dbvKejyh5DZ7TySfXuOEBt5hudFuziMM6
         Y4ZeKLsx8Es7g3YK5UXT6fkGUC36RpGQrwGd5btYX4C9bfF7FGu0F7QvnJ5aCgyOo+H4
         ec9g+RHBdW+2pD7IQdDy1rTaIHM4bRkz3NyeIW/ScKMXR9c7aFeeqOfvir2UNTCj3fuw
         vIyA==
X-Forwarded-Encrypted: i=1; AJvYcCWCjEIpiVajIrH2DiTHSEFu/LVUTdNZdH1+DEjH+Iff7gWglGZJfDoYseu75WVE/5tYrzh7gw1V0Os=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwK6pMkWRb5T92hcv2JdWjP5VyjtQG3YArpHDYo0q7joQWFJzea
	DmDZ3VET9vAHVQPS+AURXk6dvZ2blhyDFERZqQUS7mVihdn/E7R+JVQGq+ApiSGKXQ==
X-Gm-Gg: ASbGncvwQpfKHngL0pGnABXeMXs2jH1L990pdXLDvQag2irsenthOR5XZSGcJ71osM7
	s6bMOosgZg0ZqrpRVYBHwUojHz7DoyqB1hJ9zq6OfB8aBLTlU42LCPDKSJtRBMhtkJ1FkUWexyw
	TNHrycrSskZ3PnsU8ngQx0pp4Pz6FUxVM3n62NAOaJyoUyOYji0cOTFGN5dJ2FpP+IuXoeoYEUZ
	g4DrXsRZkm6Ji1dskQVTKQA4E3pgs1/sYYW2HVrtgLMDn/y+On6YmbFZa414zsYSQi7i9DDo8vZ
	PVR42pYvMvey8KNZ0MdFu11MsRiOi3gX1VKFqtcU98tZG8UiMbZlrpeDfLWGgWrXL75WiLADpdC
	gvK6HhdDD4sOCKRJVAClSK1D0SYEjK4fsZm6a/sPYSuX7RuPL5qNfjLfCmCKyTVCDqdOPOQaoLZ
	iIjpJCNTOCfGnfdm03m0MOJKTss4PTaTeDTc0bjaR/rFfqykjc/dSHB176GIPRuWfMgujkUcmaK
	0g=
X-Google-Smtp-Source: AGHT+IGkjAAAEqjQZr2+oOKCnszf3Wbk+6Z/rQCujmBVAH54SKmmfJjiuzrUbeeU+Os0a/uY8pA7cQ==
X-Received: by 2002:a05:6000:40cb:b0:42b:2fc8:18c with SMTP id ffacd0b85a97d-42cc1d15526mr40813787f8f.32.1764577384288;
        Mon, 01 Dec 2025 00:23:04 -0800 (PST)
Message-ID: <a37b1779-6516-4e9a-8736-003c8e61aeb9@suse.com>
Date: Mon, 1 Dec 2025 09:23:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/24] xen: consolidate cpuid library
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 "grygorii_strashko@epam.com" <grygorii_strashko@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-3-Penny.Zheng@amd.com>
 <6781dbd7-ddce-49c1-a359-0910e91bda43@suse.com>
 <DM4PR12MB84515C97AE3F68E676FED174E1DBA@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <DM4PR12MB84515C97AE3F68E676FED174E1DBA@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01.12.2025 07:57, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Tuesday, November 25, 2025 2:39 PM
>> To: Penny, Zheng <penny.zheng@amd.com>; Andrew Cooper
>> <andrew.cooper3@citrix.com>
>> Cc: Huang, Ray <Ray.Huang@amd.com>; grygorii_strashko@epam.com; Roger
>> Pau Monné <roger.pau@citrix.com>; Anthony PERARD
>> <anthony.perard@vates.tech>; Juergen Gross <jgross@suse.com>; xen-
>> devel@lists.xenproject.org
>> Subject: Re: [PATCH v4 02/24] xen: consolidate cpuid library
>>
>> On 21.11.2025 11:57, Penny Zheng wrote:
>>> There are some cpuid library functions only referenced in
>>> XEN_DOMCTL_get{,set}_cpu_policy-case, and shall be wrapped with
>>> CONFIG_MGMT_HYPERCALLS later, otherwise they will become unreachable
>>> when MGMT_HYPERCALLS=n, and hence violate Misra 2.1
>>> - x86_cpu_policy_clear_out_of_range_leaves
>>>   - zero_leaves
>>> - x86_cpuid_copy_to_buffer
>>>   - copy_leaf_to_buffer
>>> - x86_cpuid_copy_from_buffer
>>> We seperate these functions by moving other functions to a new file
>>> named cpuid-generic.c, and modify related Makefile-s to retain same behavior.
>>>
>>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
>>> ---
>>> v3 -> v4:
>>> - new commit
>>> ---
>>>  tools/fuzz/cpu-policy/Makefile               |   2 +-
>>>  tools/fuzz/x86_instruction_emulator/Makefile |  10 +-
>>>  tools/libs/guest/Makefile.common             |   2 +-
>>>  tools/tests/cpu-policy/Makefile              |   2 +-
>>>  tools/tests/x86_emulator/Makefile            |   2 +-
>>>  xen/lib/x86/Makefile                         |   1 +
>>>  xen/lib/x86/cpuid-generic.c                  | 273 +++++++++++++++++++
>>>  xen/lib/x86/cpuid.c                          | 260 ------------------
>>>  8 files changed, 283 insertions(+), 269 deletions(-)  create mode
>>> 100644 xen/lib/x86/cpuid-generic.c
>>
>> Andrew - what's your take on such a split? Personally I'm not overly happy to see
>> related functions be scattered across two files. The separation also feels pretty
>> random, posing the risk that later some of the code may need to move back.
>>
> 
> Right now, I could not think a better way to guard x86_cpuid_copy_from{,to}_buffer with MGMT_HYPERCALLS without split, any better suggestion? Or maybe I could add up some explanations on the file cpuid_generic.c head note to explain the diffs between itself and cpuid.c, something like:
> ```
> The difference between cpuid.c and cpuid_generic.c is that the former contains library functions that has only been referenced in management hypercalls, such as sysctl, domctl, etc. See comment for MGMT_HYPERCALLS.
> ```

If one of the files is to have only MGMT_HYPERCALLS related stuff (and if, prior
to that, using #ifdef-ary in the existing file was proven unwieldy), then imo
the more "natural" split would be to have a separate cpuid-mgmt.c file, where
then from its name alone it already becomes halfway clear what it to live there.

Another option might be to properly library-fy the copy-in and copy-out functions,
one per source file, and then referenced by lib-y (or lib-$(CONFIG_...)) from the
Makefile.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 08:40:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 08:40:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175574.1500196 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPzS7-0005sC-Vx; Mon, 01 Dec 2025 08:40:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175574.1500196; Mon, 01 Dec 2025 08:40:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPzS7-0005s5-SO; Mon, 01 Dec 2025 08:40:11 +0000
Received: by outflank-mailman (input) for mailman id 1175574;
 Mon, 01 Dec 2025 08:40:10 +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 <SRS0=0dw1=6H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vPzS6-0005rz-8z
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 08:40:10 +0000
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com
 [2a00:1450:4864:20::432])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 574ea253-ce91-11f0-9d19-b5c5bf9af7f9;
 Mon, 01 Dec 2025 09:40:08 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-42e2ba54a6fso414876f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Dec 2025 00:40:08 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42e1ca1a4bbsm24176321f8f.21.2025.12.01.00.40.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Dec 2025 00:40:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 574ea253-ce91-11f0-9d19-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764578407; x=1765183207; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QCuVcawJcegDzU/oe5lo3A0KNiYJZ5XjXC5r/TZeQ5E=;
        b=Eu+eOajXokHmeG78LhkH5q2CqwMryR1w0xotJMXEP1jkpBSnkz5uIloPBAqRljCi7b
         6t8HVUffl4E+FpV3+puPXzkjFQYVdhOjLxpnSGFXvbkiiNXNYTiwHJJrMJ/nmdn0mdm8
         xsCrspHElzQL+d8OAIVJCdvJZdUI9ihs4KSf36u9Zw9fwojetpBrqdDmPmAhJuee+88N
         CRKwxtWzeWM6kXDkxP/LAFSAnjSgxVeoFSgd4XnyZ/Dj/X/B5B1W69OIk8m6kRvg5lgi
         9kTa73tsVw8ALhC8ThsjcZitloVKbsmVOdRMpPUhwNhmFNX9uQa8aaOMNAr0uRqXINEq
         BBqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764578407; x=1765183207;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QCuVcawJcegDzU/oe5lo3A0KNiYJZ5XjXC5r/TZeQ5E=;
        b=EQ4s6KTL5e5Jh8CJfU0d5qgIIA1P7jpODZmNpgjBJrP/zwlD8J2jFUAIL601eTtXvu
         wDg4Z/6J7xO5kVvmpV7+m6b4q9g6muj6cnRLtG+5QS1ajbSh6/tu0qDd45Me72CQvfZ/
         QzY+wZkZi7PAeVd59yxw0RYmOEPV0gNcaIKoicfWTEBtHor9CwTNSVFZ8gcB6d0klyoq
         Q702JfZW95GmnFw6LqaGCKmr6wzy8OE7/zuo8dqJh3NVrihYXe6TXLKgESz1htg96wpx
         /CLfbmNP51mBe/daV94LJB0POXtgbO5BhXwkZP5VIog6oxYL5Pzo/ET90LQuOLQyMoAX
         UyGA==
X-Forwarded-Encrypted: i=1; AJvYcCU7++FwISZnH2dZWm9sXwJx6F2stnGMAQSDM99RfXj5SBFzCE4G+KKOvmSZhtlBlPWgw0EJtZWos2Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyhuuOyDk2WL2q814N5P2bymjC9h1mxlOM5MGj1QQNXXARJVMp/
	RaiIKbRI/gBUMD6GyHFbOuCVsADxJwDp0A7wGFWCOzz1/vuiCeftBu/TDzdZaHS9mw==
X-Gm-Gg: ASbGncvQQVU+PE9AAIUQppBnm2MgOQb7XuLFyymqNcohjOyMKOWeC3WPNepANuFTYYj
	IYjvhNLGr63GcHV3wq2b+usNXNqdRK6VFnytupdF43gG6Wn5Q/Srjf5ty/fHLYNfb/ObCrtdZi8
	fBKZOXpLmRKA0qGCIE5ufGMY+wpiPcvNHwsavR0iw/Vd9yfMIPSqT8Wvl12sxZxKGZ5d08tBDfF
	vbMOefrJIxRqa9qkcVhMdKOJmlG72dgIg0nJCNQLPYPKe0qk4hXGlUnvwO1XP+IYLR6tVwQK48T
	m9UqvNIIvj/ErRyKh+0BaM3TjaxMGZN0MuYabLVnhXpjcgFzEbZYbVyQrVxHSCbDw45ow9Bu4UV
	VB73m9rb1fdcEKuwpXDccnKdhMMxTwOJQjYH54HHq8MqhkRYnb3FDY3j60I8rgRdOKyjAgxgG2K
	kQzyOuCpmYis/FwdAZtjEr53xIX39ur+1Qg20uQndo7/OQpEWQJAWes/dn3Ne6jtABypHNBYDOZ
	rA=
X-Google-Smtp-Source: AGHT+IFr1ASkrPWsHWfA0uXawemXCvxvbdQzsCi+vXMnS1BtLRReLoMzSG7eMT8NBo+dh5NzeuV8LA==
X-Received: by 2002:a05:6000:228a:b0:42b:3e20:f1b3 with SMTP id ffacd0b85a97d-42cc1cd9b45mr41144022f8f.9.1764578407430;
        Mon, 01 Dec 2025 00:40:07 -0800 (PST)
Message-ID: <0173e0bd-130a-4966-b0f1-882f8dd78aa1@suse.com>
Date: Mon, 1 Dec 2025 09:40:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: move vcpu_kick() declaration to common header
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <b009997b5f3e7489fadb5f62f1623fc4d13bf271.1764344988.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b009997b5f3e7489fadb5f62f1623fc4d13bf271.1764344988.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.11.2025 17:23, Oleksii Kurochko wrote:
> The vcpu_kick() declaration is duplicated across multiple
> architecture-specific event.h headers (ARM, x86, PPC).
> 
> Remove the redundant declarations and move vcpu_kick() into
> the common xen/include/xen/sched.h header.
> 
> Drop the definition of vcpu_kick() from ppc/include/asm/event.h,
> as it is already provided in ppc/stubs.c.
> 
> Add inclusion of xen/sched.h in the files where vcpu_kick() is
> used.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>
albeit preferably with at least ...

> --- a/xen/arch/x86/cpu/mcheck/vmce.c
> +++ b/xen/arch/x86/cpu/mcheck/vmce.c
> @@ -12,6 +12,7 @@
>  #include <xen/event.h>
>  #include <xen/kernel.h>
>  #include <xen/delay.h>
> +#include <xen/sched.h>
>  #include <xen/smp.h>
>  #include <xen/mm.h>
>  #include <asm/hvm/save.h>

... this change omitted. This file includes the private "mce.h", which in turn
includes xen/sched.h.

> --- a/xen/arch/x86/pv/traps.c
> +++ b/xen/arch/x86/pv/traps.c
> @@ -10,6 +10,7 @@
>  #include <xen/event.h>
>  #include <xen/hypercall.h>
>  #include <xen/lib.h>
> +#include <xen/sched.h>
>  #include <xen/softirq.h>

Somewhat similarly here, xen/event.h includes xen/sched.h. That's less obviously
guaranteed, though, so making the include explicit here is likely okay.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 08:44:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 08:44:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175585.1500206 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPzVz-0006Yu-EY; Mon, 01 Dec 2025 08:44:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175585.1500206; Mon, 01 Dec 2025 08:44:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPzVz-0006Yn-Bn; Mon, 01 Dec 2025 08:44:11 +0000
Received: by outflank-mailman (input) for mailman id 1175585;
 Mon, 01 Dec 2025 08:44:10 +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 <SRS0=0dw1=6H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vPzVy-0006Yh-2F
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 08:44:10 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e6fc6465-ce91-11f0-9d19-b5c5bf9af7f9;
 Mon, 01 Dec 2025 09:44:09 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-42e2e08b27eso480095f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 01 Dec 2025 00:44:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42e1ca1a38bsm25372242f8f.24.2025.12.01.00.44.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Dec 2025 00:44:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e6fc6465-ce91-11f0-9d19-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764578648; x=1765183448; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=b775cYLZSy3NITk66Jvd/6m4NnP3BHfiydigwGNd4YA=;
        b=D2C48Kg9VOoLtYIzFBiEGn5c2yK6vLgbVveSdh3KcxqDdWaW7HKmxRxxQlQlIaAADo
         tVR0xVdM3ZWTVlLav1k33HXPmDcqIpxaaWQ/bk9+XXjJ9lVcrv/9wxP9SCZlL7upQc4J
         fVxKfdUll/CXcIjrxdHMlvNTmD1kZ+pxWp0+6PqVz/jRoSLcvZWtc3CWVU3vLK/5/6lF
         +wKdFcZVzDiaG9fumK+vXAKnlIhbwQfa9tags7WRADDh2wKBy7rVDkPnIPOFpYQPysKi
         rmgkYKej7Yk22j4FZHh+a9urpxF/BejHTuOu/QrgRLVoXHR+QM8Zrfmga459yB/ONrdj
         LV1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764578648; x=1765183448;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=b775cYLZSy3NITk66Jvd/6m4NnP3BHfiydigwGNd4YA=;
        b=Cu48ztSEIleespFZkz83XPmJ5bg4XACfZrF1yLfA2cW50LM9MC6MrkxDoil497sB9R
         Wj6HHq3R8I8tRD+OFOIxNTo21pWJ64L9Txywpo+eUReQrF4uAewDQuanwFTfQiqI70YC
         tOkiGHMmpSrvc6d/XI6fTxKGb9daRyUXtlEu/DUvU7235O+tzpwX8Nkm6K2Cvm7YJ3Jj
         T194pl1RBT32xAOklOspXXFudYbFXKt+PS6IyhSJuAcGtMXTYYmPz1yB+R/zf2LEu3d6
         HmeO+RD7JB7xmdbIVSvGRxvlGOvNdeWqC6OD9wWPAHA21XcosIEjGwX83oiiCxVSaUuP
         zooQ==
X-Forwarded-Encrypted: i=1; AJvYcCU8B1t+oVOI9PX472GQg8HrwsO+LyIvbFVYTGgTqc0P3CWJmNY8ojPVp7smaDS25nIiZaz0+JpF3aE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzTUE3Vbh+d2ysJ/P5cOZcHJ4D2DTH535zvVfUVisjrYbqQWANJ
	9fY39TkYuV2MtSJr8RVnK9DZJ+40ShJgR3+lYI29a37ymf1CqLu7rFOVD2zvUtdw7A==
X-Gm-Gg: ASbGnctbSohYR3bRHjzkrhAYJG851FyWlhjWD6XeLIbR7qAq12HAlqbk2/VDD/dxSQF
	Lact+pNjyRGo4Jv3je37qEf2FX3pm7YzcEaw4TzfYSlwVAvNC6OojZToPaUQzzJUaM0LKZi3rtM
	ppTPrUyYiBfM8vLKXTnxBUntWOg4+qlY3fAj4DeZTbj/nsW1Muw+yb/hXdrFQc/q7nk+M7nYLnZ
	bZeUK4g++Xhv2Q2nfPcqcZJ+5rnZHLxVGxZIMThuM1Rk6lLUyoK+QzdrJo4jTyjUC0E1eyaB0y2
	jkqtLpqaQr4ZrUTLAVmREM24xM9qkRbSXcOUwKysnhDwSe/G32sSljD8zN70YQGT5JzqzJZyf/4
	Rlq4A1QkJhBe0juOVME/fZltOunG4zXn9iYrY8C8B3Jhqs+0rpEI4bprWVzwRMHbqlUANhjB7my
	xOJzJ6hAVE/ajla4hORKcceR/L2JjeOc8DNurykXVH6WWoC6gNaJaUeU0w1RchhjGzfV9W/GZyh
	uo=
X-Google-Smtp-Source: AGHT+IGP0wfFU+pzC9XiRW0PTpPkd6JpxhflSAbnl7bqXjEQtPIdpPBl3Iw8qItp2yUbo2ARML/EKg==
X-Received: by 2002:a05:6000:26cc:b0:429:cce9:9b76 with SMTP id ffacd0b85a97d-42cc1d14161mr35896367f8f.50.1764578648515;
        Mon, 01 Dec 2025 00:44:08 -0800 (PST)
Message-ID: <6d85a12e-f689-4336-ac40-ac872f21d6df@suse.com>
Date: Mon, 1 Dec 2025 09:44:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/2] xen/lib: SHA2 cleanup, and SHA1 support
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Krystian Hebel <krystian.hebel@3mdeb.com>,
 Sergii Dmytruk <sergii.dmytruk@3mdeb.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251128184757.1243678-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251128184757.1243678-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.11.2025 19:47, Andrew Cooper wrote:
> Pulled out of the Trenchboot series.
> 
> Andrew Cooper (1):
>   xen/lib: Misc SHA2 cleanup
> 
> Krystian Hebel (1):
>   xen/lib: Introduce SHA-1
> 
>  xen/arch/x86/cpu/microcode/amd.c |   2 +-
>  xen/include/xen/sha1.h           |  14 ++
>  xen/include/xen/sha2.h           |   4 +-
>  xen/lib/Makefile                 |   1 +
>  xen/lib/sha1.c                   | 215 +++++++++++++++++++++++++++++++
>  xen/lib/sha2-256.c               |   8 +-
>  6 files changed, 237 insertions(+), 7 deletions(-)
>  create mode 100644 xen/include/xen/sha1.h
>  create mode 100644 xen/lib/sha1.c

Acked-by: Jan Beulich <jbeulich@suse.com>

I'll raise one question on patch 2, but that's not to make the ack above
conditional in any way.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 08:46:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 08:46:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175595.1500216 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPzXy-00076y-R1; Mon, 01 Dec 2025 08:46:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175595.1500216; Mon, 01 Dec 2025 08:46:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPzXy-00076r-Nl; Mon, 01 Dec 2025 08:46:14 +0000
Received: by outflank-mailman (input) for mailman id 1175595;
 Mon, 01 Dec 2025 08:46:13 +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 <SRS0=0dw1=6H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vPzXx-00076l-K5
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 08:46:13 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 30217518-ce92-11f0-9d19-b5c5bf9af7f9;
 Mon, 01 Dec 2025 09:46:11 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-477b91680f8so33770715e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 01 Dec 2025 00:46:11 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4791163e3dasm228776155e9.11.2025.12.01.00.46.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Dec 2025 00:46:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 30217518-ce92-11f0-9d19-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764578771; x=1765183571; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ym9Pa61uD2HCgrEVuAXTcCAPEqptH/G26aB7H4L0n90=;
        b=RG8HhuOEucVKVEH4hZZu9eDefRpe5GayF8JN2t9PbQS7J0C62U+Gm3293yII/k+a1U
         IXa2c/gjKWtZTIBnVuCnjsv8+buwZZCDLpaDxfirJctFuA+5mRXmDOsKfkjs0K9rFVYR
         K7sP0UNIVIvmiw94aTscEcuRl79nL4Nh2JePplmROoJUpFRJu34nsLyqNUhXq+/YBqO9
         bby2shUZgRh5XwJvBJa9HAxE/137n7rSNsKDBW93cgdWcE7Vkv5U1H9/zwWakA25kquc
         rAPMDNuJavIIZof+M2U0yw/8BY73qb6inCO2rRPSwqsk3+cKiSpLH4Cqg468hkBI4rx4
         +P+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764578771; x=1765183571;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ym9Pa61uD2HCgrEVuAXTcCAPEqptH/G26aB7H4L0n90=;
        b=uShDI2DgdMPabd6wNQnbZ3tK/z8lJMGDPW7deNWojaintm7kEdj7J9xoom4hnDm+Ba
         5i1ftsVbrT9mvmChq2DKuQTZYqIXe40kBQzY5xg+grbZIe+Z4S2QZJKBEJVxNBAdxtux
         b8kfKQcADrunKDO5rvINnIPzQzI/HnLGoNxbUUHaSMhu5uZEcgyAC7RbqzY85U9xkV9p
         PoAKYUxQGy9SFl19PedqnYUbpNMMKzvGxfu3X5IhLk+8XHj2eJBsX0b4IcUjDKka/9iV
         RrOLusyjcrg+VJcJ0FgsJU6AUdSSQaH72S+9T2Ow2BHxZcyfo9mAazsKE0LiwuGZaJgW
         vCeA==
X-Forwarded-Encrypted: i=1; AJvYcCXzeTpUN9cl6DJjiJmnqcm92tUl370mNoN4uyO7/viVk+ykO1b3RXBJJ6qDnCeWLQEviSOOrS6qQmY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxKJGHkzEuUGG2xPEZmjAedgvY1IYJqf6boCH6jnhvWVgOsq2d0
	J2i3MqF4QJVxQ6JVSbRU1vJ4bkH06ptGnBCuqr7DGqsTpdqIYlko6rWZjKd8Pkv8QA==
X-Gm-Gg: ASbGncueh2TMKG+QDUone2WSvSvpRgu9kmv8G6IYfEwn1NNfpmIXL0Hg8A9XgRfF6KO
	4kh6Je/a/upLj2xiMj5jErOZfKmNj9gXe3K/sOZbWXSH9DQxVoQRAuqvnAR9MwB4mjVQJridxDi
	YE9Il9YJJG1i1nWOhQUKYGZ+yzn4pRg7Kf+QdoBCNebjUCHlpkIBhtxPKJij4TwZpWU+b0jINyX
	fFleJOPTNVytktpOmA+jsZItHKzqRGVfjOlswI1bf5Q0JS2ysH6N/TV699Rr1/ex9pTgdUK0qSE
	g5C3zfQ9c8nhOt1Ni4bAyd4IM0pCjW4sq/dxwgu1cwSB70Qyp02y4lD4w120Q+Bm5gfAyfACNYy
	eLcqb28X3/bPFeGdpNy2Fl5z68kBDwv9bRHCVIb6ib43hU4brE7T+lUl8fHotpi9OQQHru0ur7p
	Ke3sdVvf1VsUe0kcAJz/X234ArEoRSpfcvogGvUm49nWTM1we0puM7y/tFYJbnXfKo6FOkP6fEd
	sI=
X-Google-Smtp-Source: AGHT+IERkxTGhESXDtXeJdixKysHkxGDfItGmPqbAX/tzpRupC+qkBT3CNxU5azPu/YTWr6fZ1UhYQ==
X-Received: by 2002:a05:600c:c490:b0:46e:4b79:551 with SMTP id 5b1f17b1804b1-477c11325c2mr394797695e9.31.1764578771175;
        Mon, 01 Dec 2025 00:46:11 -0800 (PST)
Message-ID: <bb4ca936-da10-46f2-bf9c-055e19990d82@suse.com>
Date: Mon, 1 Dec 2025 09:46:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen/lib: Introduce SHA-1
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Krystian Hebel <krystian.hebel@3mdeb.com>,
 Sergii Dmytruk <sergii.dmytruk@3mdeb.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251128184757.1243678-1-andrew.cooper3@citrix.com>
 <20251128184757.1243678-3-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251128184757.1243678-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.11.2025 19:47, Andrew Cooper wrote:
> --- a/xen/lib/Makefile
> +++ b/xen/lib/Makefile
> @@ -17,6 +17,7 @@ lib-y += memset.o
>  lib-y += muldiv64.o
>  lib-y += parse-size.o
>  lib-y += rbtree.o
> +lib-$(CONFIG_X86) += sha1.o
>  lib-$(CONFIG_X86) += sha2-256.o
>  lib-y += sort.o
>  lib-y += strcasecmp.o

Why exactly are we confining the two SHA<n> to x86? They're both plain C
implementations, so ought to be fine to build everywhere. Being in $(lib-y)
they also wouldn't make it into the final binary until a reference would
appear.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 08:53:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 08:53:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175610.1500225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPzfO-0000SR-Li; Mon, 01 Dec 2025 08:53:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175610.1500225; Mon, 01 Dec 2025 08:53:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPzfO-0000SK-J1; Mon, 01 Dec 2025 08:53:54 +0000
Received: by outflank-mailman (input) for mailman id 1175610;
 Mon, 01 Dec 2025 08:53:53 +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
 <SRS0=isLO=6H=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vPzfN-0000SE-Hv
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 08:53:53 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 416c46f3-ce93-11f0-9d19-b5c5bf9af7f9;
 Mon, 01 Dec 2025 09:53:51 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 SA0PR12MB4414.namprd12.prod.outlook.com (2603:10b6:806:9a::11) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.17; Mon, 1 Dec 2025 08:53:47 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2%2]) with mapi id 15.20.9366.012; Mon, 1 Dec 2025
 08:53:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 416c46f3-ce93-11f0-9d19-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=topv71GpBOuZUJs1G0i1VUMrB3O/4hP7lkjmy+eSxUwrdexm0Uj3mS9G+h+B/J5Uapub92FzX/70Cw2ndwgLfko3wqd45vQqlJEEYyoCbD7ehJWd9zXvLv+P3slnYJ3u4Xhr/s0L6s2oC+0gXBMfhtfZymh9zpjJgFkqLahyjYebQseSUWLGu9ThsWrK19Bvc9+3kK102Px6s7VQEAAwzsbnrL0hblvki4l670AkBz3Yha5OKuudkF/OL+ZTvHzmGLGO5to8eqeI625o9zZWpgb4yQ0AF6geIwNQXcq7k0caqiyK7IGt9a8ty5l120/UBAJEl3wKgH9qL32075lJoA==
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=mQ+a5g+YtArrRSTJGHzBJ8/9SvIuV61iAPhwfeK451s=;
 b=MFf23QqnsChV8/lIyLzou3Jc+qXWBb/7EJcRikJ4g+8+pejA2GQwhyaYQASEDo3W/Zq+L6b96vuTmV6LrW+w4qwqhyTvx3Vbf5qZtDTmj4vVnH7XeaVhQI3roxiiqFUzIZyACG5fqsAQOxEDMmfFj6K2wufM0NCNtVEQjN0rQib7Qf7EkIbEFIL3bCLCHOMyxXWMmcMv0gX5/XW6rx4ADpXPEhqPpTTlO/5Di8/hy3TFORcZmA0xgtYSoexuj+cDM2odziRSZ1XC2h4KfgaZ+iTRE2t20f7wnQkHrdH5PchZ+NPBatBBgFwrlSwLukUaDxihIV8c0HWVNg2eSPTN5w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mQ+a5g+YtArrRSTJGHzBJ8/9SvIuV61iAPhwfeK451s=;
 b=QJcb7uXJhDrJAFewm4ZWrwjQAOUB1iq3L4HTppTnZMKZWc9CofI0+DdbfdV9/Owzd2188x2PJw0Nf7FH+u64pcSLKGkuVgAuxj4cFlTe7NQVbjbGOPsrLq96xUUH6RvIv6urGb6mypMxtPqk11eX+TmAIvG7LGXxU5aPxVR8EjU=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "grygorii_strashko@epam.com"
	<grygorii_strashko@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, "Andryuk, Jason"
	<Jason.Andryuk@amd.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v4 14/24] xen/domctl: wrap pci-subset iommu-related domctl
 op with CONFIG_MGMT_HYPERCALLS
Thread-Topic: [PATCH v4 14/24] xen/domctl: wrap pci-subset iommu-related
 domctl op with CONFIG_MGMT_HYPERCALLS
Thread-Index: AQHcWtXdwWaFTRetvk29bNPbH/CVXLUDjQOAgAjznsA=
Date: Mon, 1 Dec 2025 08:53:46 +0000
Message-ID:
 <DM4PR12MB84515158689F4064F314B7DFE1DBA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-15-Penny.Zheng@amd.com>
 <6e1dd697-7276-4d1b-841c-a9b1594fa858@suse.com>
In-Reply-To: <6e1dd697-7276-4d1b-841c-a9b1594fa858@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-12-01T08:53:39.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|SA0PR12MB4414:EE_
x-ms-office365-filtering-correlation-id: d17a98c6-72f3-4bbe-8841-08de30b723a5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?MFlpVVdpUU42QlFqZkEzWnFvWTAzbmpXRGJ4ZWVXK3FhUVMxQVhjbXVqQmJV?=
 =?utf-8?B?dVBhV3I2eVp3RWRCVWNqcUdlTUxhK1craUtJTUZYTW5CTklVQXNXeXVMYmN6?=
 =?utf-8?B?SXJmTzJOSHRXSzJhMDZhVUVCOVMyMVhLanRkZkJQRVI3M2Y1UlRZQlpkdHc4?=
 =?utf-8?B?aGNQVkdZU3kyL1g1NnUxMG8vemZvSE9yaDdpclVaWVhqengzZmVqeW8vdzN1?=
 =?utf-8?B?d0swY2RNYkp1TmpzY09zbkJJL0YrdHcvNHhrVFQzdWxkL1FjUkVRSGhmZDVq?=
 =?utf-8?B?UUVRRUpqMUkrQ000NzBUdEViNnBGanNTeEhKeTc3SmpwMVFYdnNyK2RCY25s?=
 =?utf-8?B?UER6MEVEQnNZUFVPeFhEMWtwdkpNdmlKUzhIRzB5VVRla0h2THhoYWg4N1lX?=
 =?utf-8?B?QmFkYXJvaG5ackhtMEVjK21WaUcxVU12MHZoSXJrUkhnVzdEWVBldXZCdExy?=
 =?utf-8?B?NSt4QmRMTDdHREprMmRNb2hBN2toT3JKYndCUkh4Wm5QUGprMlFvVXdSOE1x?=
 =?utf-8?B?Vmp0WlpmVHZVdjNMQzZ3NjhmNnhMUVJISUpaSW91cWFsdW1wcjBRR3ROQnpw?=
 =?utf-8?B?WGpzaDk0cmcvZjlMV1JoQmJtTnh2NjB4ZmVTYXB0NVhlQmh1MkdYVEpZTDYr?=
 =?utf-8?B?Yzh6NTgrVzFFdnkxbDJjRHgwK1ozTnN5MGlVdXhGNHVGM1RUVjU4cEV0MGhs?=
 =?utf-8?B?R3FKVGlUOEJ4eFFJSlhLaWFoNzF5V01Cd25BVGo5T1laZjl1R0szeW00UnIx?=
 =?utf-8?B?UFhIZVRFZDA2Q1FCL08xbzI0ZUVYVXJEYVBTZk00aWFhUVZiOGgybXhFVUxq?=
 =?utf-8?B?VTd0VGMya0o0SDdScnJPK2RhYUpZTldQNGdYYjRoU1FTQVdCbDF2bnhMVDA0?=
 =?utf-8?B?dnAyOGRxdFE3bkExZ2VkSE9JUW5iUm1BcDFLdWFObDNJaVF3NGZTWjFmTWdl?=
 =?utf-8?B?Mmx1UUJ3K1hzbnNCWGJtZjRTNmI2UWtHcm1PNFVzSXZwRUVaVTczZ1ZxaHVo?=
 =?utf-8?B?VTBJeWpKY3ZZUWJSQ2JENElIMXBsNTRxTDM2ZnhzbktUQitKdFdSUnRCcGhK?=
 =?utf-8?B?MzF1ZUlIT3BDajcrTEFQQnZEQkp4cWZHSS9tUG91MDlVcCs3eG9OUkxiajNL?=
 =?utf-8?B?blVHdDJxVlUvUVFYVnNiS1lWazllejRmaEtrU0Qydk9MbVVjWU43RXk5L2kz?=
 =?utf-8?B?WkdVSzI1cDJ2UVBUMUVWd2MvWVBTNDVDNUFDeEc2OWtkcTFYQ0MxVXgvVWV1?=
 =?utf-8?B?QUFhQXd5cGNKUCsvZkF3b25NZ05HdG5PNm1BZzM2WThNaDUyRFFIM2t0c1di?=
 =?utf-8?B?YStvSlNsdk1sVis2bktwRmcvQ0Y5NGp4TFN4NFR0dU42cDlPaElORzA3Ukl3?=
 =?utf-8?B?L0kwdzUyUk4ya1ErK3V0N05uRk1KL0Y5aDFtTG5xbDQvQkpJZUZtTlJpZEFv?=
 =?utf-8?B?S3F4NUxzZjFvRWY0MUxReTc0Mks5Z3pJMXNTd0J5M2VGN3pPRW9XVGZwUEdy?=
 =?utf-8?B?bE5ESjI1cUUzUHhaSEpOSDVzZC8rcURQN3g4T1phdjlhbTlPM2hFU2xDemln?=
 =?utf-8?B?b1dmclNxOTQzelhwVEg0RDQ3eUhqQWxDR0NUREdHWGV1MTdMUXlaL0NLM3hG?=
 =?utf-8?B?aWxCVk4weUU5bVlSTEM4MlRTTURjemlHVHBYMk4wNEhoVFhYTWxSbnFOMXMx?=
 =?utf-8?B?Q0hES2dGczkrVWUyaVFKZmdUNzNXL1NWL083amtpbGhiaHlHTitENnkyZnM5?=
 =?utf-8?B?RGp6MEZFNjRVTDZjMnR4b01iaGk3TFlzWm55bG04d0c2RnNiNkRUVEY1STBR?=
 =?utf-8?B?dGpuK2FOUERHNy94UFdLY2hENkxlMHcvZnFUdVRiRm9nRHZzWVNJRFFxTi9Y?=
 =?utf-8?B?ZU5WMWt4RUJicWhEMVBJVFdrZ0EvekNUYUZrWUFtSXQzK2VFa0piaFB5OXdG?=
 =?utf-8?B?UzRWQzVPZDJFbUVvcmRnSUo0MWNjZkl3TERrUzJtZ1hPMGgxTGNGQjNTaU02?=
 =?utf-8?B?TTRWWGs4SWtWQmsyMDgwSHMvNGFqWlpndzUzUXVDK29kcklSZkt6N2IwOG5v?=
 =?utf-8?Q?zA25xq?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MzhNN0Vjd1RtNGFidUJxQzQ4MWtjWnFHMVlTWkxBTXdEdjVFZ1pGcVJrc212?=
 =?utf-8?B?QVFQVDZvdk1NQUk0M3dKbGZldXdOVkpocU9iUUR1Y0hTeElYRDkvSWFWS1gz?=
 =?utf-8?B?bkJpVHNLUzJKSzFFdzlwaW15RUpuTzd6UElqTksxZzBDMjFrYllCOGd6Y3hz?=
 =?utf-8?B?UEcxV29HVEVTUkp2SnZUcC80SytYbW8reXd1TlR6dmxxTXVlZGcrMHBMYkU5?=
 =?utf-8?B?cm9LVTVDRW9qZENobHhodG0rQVFTOEp4cUFvaUdyMGR0bDhUeHI2Ny9kSGZt?=
 =?utf-8?B?RnY5bmd1ejFubGhONUVobjRndDBUZUNab3F4ZmhiNWVhQlFmSDhET2Vuc1Br?=
 =?utf-8?B?MGhKUHExSnRKbmtxSFpSVXJXWXRtUlpxUm44SUFvbll4cWpiMUczcC9JRmVL?=
 =?utf-8?B?SmNXWjlHQkd4S21xckFET2FRME85YzM3cTlqci8wTkRyOTZVdVNpVEluNk16?=
 =?utf-8?B?ejgwbDdwcE1nUG5MeCs1VlordGUwd0pKZDRwazFuZDZ1SFltN1h2MXMzM0lm?=
 =?utf-8?B?WXFjUnprRm1VN0JHcVdLVTUvS2d5Qi9wdW1JY2dRZHV4cElzU1pxTVZyV3Rr?=
 =?utf-8?B?ZVdwdWY1TjJjeEQwWS9XK0dlM0VVMDFFdVFleHdyL21lc3NUdlpzbWI1eVov?=
 =?utf-8?B?VEJlUnMzUTFQRTNTT3ZqSG1NRGNGTTRqQXpvOUtwekpQRUtUczlrS09rMC92?=
 =?utf-8?B?dE03dW9JWWJvaGs5cnFHd2ZJOWI3UGdPa0ZmVWNGVno1em80ajdjUWJLOElN?=
 =?utf-8?B?eVJta3l4OEluV0NJeUFIYVZMOHFtOHp2bGY3cHp1OGFkdUJ2OXREMjhUbThp?=
 =?utf-8?B?K2JMTEdRZ0h6SmpXZXh0MENJSm5id3VXK0pYM05oMzFFV003d2huUlgwTVZI?=
 =?utf-8?B?M0VYcFZwNmNXdit4Y0NiUmpRSVRDZ3loS1Zzd3RZSmh4enhIU3JERldRdSs3?=
 =?utf-8?B?L2FPbCtRMVNaYkFTZzdkMjBPM2l1Sm42N2ovSHlkT05zUm9nak8zenowNENC?=
 =?utf-8?B?dTBaZ1pPTnZRaGNSMEhieUxRZmQ2YmlWc0lPMUFjTVRQR212azNxRXh6Z0wy?=
 =?utf-8?B?MWgyUjhJUG94YVQzd05uMDhQL1AvdEN1Znp3clhHaTZmbkQ1Zjl2ZjcwZ25W?=
 =?utf-8?B?NG9yN0IwYm5tendaVTJ5dkErWU50N1czNUNZOUw3aWc0cHc1bkpTNW4wOVRE?=
 =?utf-8?B?cFB4RGtTdGZ3ZDFON2xwY21JSzd6WU1DREpmaTREaVoxekEyZE5BMUNUL3VS?=
 =?utf-8?B?KzRRUlIwVmgvSE4wa1dsWDFPLzJSTHlOSVZiU0pKdEhyRTBodGJnQ0tlVmNG?=
 =?utf-8?B?dW5jSldHUDQvb3RZOG9mVGFFSkFTUk1DNnFoanhXdm9qM1NzditueHNUbzE0?=
 =?utf-8?B?dzhzZy8xd3JXN0s0UGlmUWtwSklpYUplS2UrZjM1YUJxZXFjeXQza3ZUamUw?=
 =?utf-8?B?T2JiTVY3T3FPY3E1eFJ2NnU4UjF6eDlEcmh5ME9QSGlVcllmRXkxNDNsekE3?=
 =?utf-8?B?NDRFTXY1N3pDVDBLY2JFb1hBZ1NZRkVVcGlRbCtYL0wwOUl0WUdCa2JELzY2?=
 =?utf-8?B?aEZNdWUzY3VSeVo5a245VVVLcmhIU1czVmp1ZWtBbCtTYnhtL1M3aFNyRUFX?=
 =?utf-8?B?U255cnpZY0h1d1NTbGZES3ZHTUJYV2NpUVVsRlRtK1J5MkZEQWRoaE1HU3hC?=
 =?utf-8?B?NjY4eEhzTzExMStnaklMNkVYZ0pFQkpPU1kwaEtyN0ZxaWxCd2h5Z2xVSWJu?=
 =?utf-8?B?N0l5SVRIemJLVEdIbUlkRy8rc1N6K29GZE9KbnhZenNkSFlER05pQnlBbk9s?=
 =?utf-8?B?WUFHVkxsZDVadVd6TGo1TDNqL3lweXB0WHpyUzlGQlJBQ2srcUlzODdDOFlT?=
 =?utf-8?B?Y1F5NGRoVE5iamlSNzJrTVVERFh0ZXZXMWY4OVkrTTNaY0lhYmVIdFdnWWI4?=
 =?utf-8?B?VnBpM0Y0aDJpZlNTb1ZwcTA0alhuSXhiZ0lhc0toZjg3ZTZ1b2FsMUtZR28x?=
 =?utf-8?B?eCszRThITEhidGVha3RRVkNRd0NQZG9IVjQ5K0ZtbURFVXpvK0xhU3I4aXBG?=
 =?utf-8?B?K3NwUUh4Qy9GWlNhMDV5RUo1OGlUeWhhYm5BM1oyWTdRWkxxaVF1NGxGNWd2?=
 =?utf-8?Q?1sKU=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d17a98c6-72f3-4bbe-8841-08de30b723a5
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Dec 2025 08:53:46.8003
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: KpQ9XmZm+CF4C9FthKRN75YQ+Udtiw9KjHIVkgodCcaUxLWFQF+Uc/4C72RSh/kqAHQbNfKu9JdwK2EHCdlWtw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4414

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIE5vdmVtYmVyIDI1LCAy
MDI1IDExOjM3IFBNDQo+IFRvOiBQZW5ueSwgWmhlbmcgPHBlbm55LnpoZW5nQGFtZC5jb20+DQo+
IENjOiBIdWFuZywgUmF5IDxSYXkuSHVhbmdAYW1kLmNvbT47IGdyeWdvcmlpX3N0cmFzaGtvQGVw
YW0uY29tOyBBbmRyZXcNCj4gQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPjsgUm9n
ZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Ow0KPiBBbmRyeXVrLCBKYXNvbiA8
SmFzb24uQW5kcnl1a0BhbWQuY29tPjsgRGFuaWVsIFAuIFNtaXRoDQo+IDxkcHNtaXRoQGFwZXJ0
dXNzb2x1dGlvbnMuY29tPjsgeGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IFN1Ympl
Y3Q6IFJlOiBbUEFUQ0ggdjQgMTQvMjRdIHhlbi9kb21jdGw6IHdyYXAgcGNpLXN1YnNldCBpb21t
dS1yZWxhdGVkIGRvbWN0bA0KPiBvcCB3aXRoIENPTkZJR19NR01UX0hZUEVSQ0FMTFMNCj4NCj4g
T24gMjEuMTEuMjAyNSAxMTo1NywgUGVubnkgWmhlbmcgd3JvdGU6DQo+ID4gIHhlbi9kcml2ZXJz
L3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMgfCAyMCArKysrLS0tLQ0KPiA+ICB4ZW4v
ZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYyAgICAgICAgICAgICAgIHwgNTIgKysrKysrKysrKyst
LS0tLS0tLS0tDQo+ID4gIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jICAgICAg
ICAgfCAgNiArKy0NCj4gPiAgeGVuL2luY2x1ZGUveHNtL2R1bW15LmggICAgICAgICAgICAgICAg
ICAgICB8ICA2ICsrLQ0KPiA+ICB4ZW4vaW5jbHVkZS94c20veHNtLmggICAgICAgICAgICAgICAg
ICAgICAgIHwgMTIgKysrLS0NCj4gPiAgeGVuL3hzbS9kdW1teS5jICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICA2ICsrLQ0KPiA+ICB4ZW4veHNtL2ZsYXNrL2hvb2tzLmMgICAgICAgICAg
ICAgICAgICAgICAgIHwgMTIgKysrLS0NCj4gPiAgNyBmaWxlcyBjaGFuZ2VkLCA2OCBpbnNlcnRp
b25zKCspLCA0NiBkZWxldGlvbnMoLSkNCj4NCj4gV2l0aCB0aGlzIGRpZmZzdGF0IGFuZCB0aGVy
ZSBiZWluZyBxdWl0ZSBhIGZldyBIQVNfUENJIHVuZGVyDQo+IHhlbi9kcml2ZXJzL3Bhc3N0aHJv
dWdoL2FybS8sIHdoYXQncyB0aGUgKFBDSSkgZGVhbCB0aGVyZT8NCg0KSW4gYXJtLCB3ZSBoYXZl
IHRoZSBmb2xsb3dpbmcgc2VsZWN0IGNoYWluOg0KSEFTX1ZQQ0lfR1VFU1RfU1VQUE9SVCBpZiBQ
Q0lfUEFTU1RIUk9VR0ggLT4gSEFTX1ZQQ0kgLT4gSEFTX1BDSQ0KU28gaWYgd2UgbWFrZSBQQ0lf
UEFTU1RIUk9VR0ggbGF0ZXIgZGVwZW5kIG9uIE1HTVRfSFlQRVJDQUxMUywgdGhlIFBDSS1zdWJz
ZXQgZm9yIGFybSB3aWxsIGFsc28gYmUgZ3VhcmRlZCB0b28uDQpJJ2xsIGFkZCBkZXNjcmlwdGlv
biBpbiBjb21taXQgbWVzc2FnZQ0KDQo+ID4gLS0tIGEveGVuL2luY2x1ZGUveHNtL2R1bW15LmgN
Cj4gPiArKysgYi94ZW4vaW5jbHVkZS94c20vZHVtbXkuaA0KPiA+IEBAIC00MDcsNyArNDA3LDgg
QEAgc3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV9nZXRfdm51bWFpbmZvKA0KPiA+
ICAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwg
ZCk7ICB9DQo+ID4NCj4gPiAtI2lmIGRlZmluZWQoQ09ORklHX0hBU19QQVNTVEhST1VHSCkgJiYg
ZGVmaW5lZChDT05GSUdfSEFTX1BDSSkNCj4gPiArI2lmIGRlZmluZWQoQ09ORklHX0hBU19QQVNT
VEhST1VHSCkgJiYNCj4gPiArZGVmaW5lZChDT05GSUdfTUdNVF9IWVBFUkNBTExTKSAjaWZkZWYg
Q09ORklHX0hBU19QQ0kNCj4NCj4gV2h5IHRoZSBzZXBhcmF0ZSAjaWZkZWY/IENhbid0IHRoYXQg
YmUgZm9sZGVkIHdpdGggdGhlICNpZj8gQXJlIHRoZXJlIGZ1cnRoZXIgY2hhbmdlcw0KPiB0byBi
ZSBwdXQgaW5zaWRlIHRoZSBvdXRlciAjaWY/IChBcHBsaWVzIGFnYWluIGZ1cnRoZXIgZG93biBh
cyB3ZWxsLikNCj4NCg0KQmVjYXVzZSBsYXRlciBpbiBEVC1zdWJzZXQsIHdlIHdhbnQgc29tZXRo
aW5nIGxpa2UgdGhlIGZvbGxvd2luZzoNCmBgYA0KI2lmIGRlZmluZWQoQ09ORklHX0hBU19QQVNT
VEhST1VHSCkgJiYgZGVmaW5lZChDT05GSUdfTUdNVF9IWVBFUkNBTExTKQ0KI2lmZGVmIENPTkZJ
R19IQVNfUENJDQouLi4NCiNlbmRpZg0KI2lmZGVmIENPTkZJR19IQVNfREVWSUNFX1RSRUVfRElT
Q09WRVJZDQouLi4NCiNlbmRpZg0KI2VuZGlmIC8qIEhBU19QQVNTVEhST1VHSCAgJiYgTUdNVF9I
WVBFUkNBTExTICAqLw0KTGV0dGluZyBIQVNfUEFTU1RIUk9VR0ggICYmIE1HTVRfSFlQRVJDQUxM
UyBiZWluZyBvdXRlciB3cmFwcGVyIGFuZCBhIHNlcGFyYXRlICNpZmRlZiBDT05GSUdfSEFTX1BD
SSBoZXJlIGNvdWxkIGF2b2lkIGV4dHJhIGNoYW5nZXMgaW4gRFQgY29tbWl0Lg0KDQo+ID4gIHN0
YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21fZ2V0X2RldmljZV9ncm91cCgNCj4gPiAg
ICAgIFhTTV9ERUZBVUxUX0FSRyB1aW50MzJfdCBtYWNoaW5lX2JkZikgIHsgQEAgLTQyOSw3ICs0
MzAsOCBAQA0KPiA+IHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21fZGVhc3NpZ25f
ZGV2aWNlKA0KPiA+ICAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJl
bnQtPmRvbWFpbiwgZCk7ICB9DQo+ID4NCj4gPiAtI2VuZGlmIC8qIEhBU19QQVNTVEhST1VHSCAm
JiBIQVNfUENJICovDQo+ID4gKyNlbmRpZiAvKiBDT05GSUdfSEFTX1BDSSAqLw0KPiA+ICsjZW5k
aWYgLyogSEFTX1BBU1NUSFJPVUdIICYmIE1HTVRfSFlQRVJDQUxMUyAqLw0KPiA+DQo+ID4gICNp
ZiBkZWZpbmVkKENPTkZJR19IQVNfUEFTU1RIUk9VR0gpICYmDQo+ID4gZGVmaW5lZChDT05GSUdf
SEFTX0RFVklDRV9UUkVFX0RJU0NPVkVSWSkNCj4gPiAgc3RhdGljIFhTTV9JTkxJTkUgaW50IGNm
X2NoZWNrIHhzbV9hc3NpZ25fZHRkZXZpY2UoDQo+DQo+IFRoZSBEVCBjb3VudGVycGFydCwgb3Rv
aCwgaXMgc2VwYXJhdGUgYW55d2F5Lg0KPg0KPiBKYW4NCg==


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 09:02:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 09:02:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175621.1500235 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPznZ-0002BZ-FV; Mon, 01 Dec 2025 09:02:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175621.1500235; Mon, 01 Dec 2025 09:02:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPznZ-0002BS-CP; Mon, 01 Dec 2025 09:02:21 +0000
Received: by outflank-mailman (input) for mailman id 1175621;
 Mon, 01 Dec 2025 09:02:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0dw1=6H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vPznX-00029w-Ju
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 09:02:19 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6fa488b5-ce94-11f0-980a-7dc792cee155;
 Mon, 01 Dec 2025 10:02:17 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-477b198f4bcso26871385e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Dec 2025 01:02:17 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4791dd135d9sm49372115e9.2.2025.12.01.01.02.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Dec 2025 01:02:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6fa488b5-ce94-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764579737; x=1765184537; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6xUAFiWi0Ksfg3GF1JP4kl6rTs30VL0+0fE1agqihzY=;
        b=BgXu2ClhCTYhO6B0RCER65l1HuCo684jhnHCMhOtCBzR+CVV+6oPMhmLJy99ZyAcVQ
         S7Aa0M9hrK8blLj+xRZEYwjMC0R6bIPDnPsGeXOgE1om7B9g0u8pLtvos1DUBiWyOtmD
         4aNghAq/xkAUr9413GhkCV9S/au2jPmhc/pNRRHeb0NuDqQETnw+R/+xgUzxWpzZu+JC
         ttVLqz5RODVXhk7e/piHjUHOkSFAgoFX3jDo9MylhRoPQkGV0hLz1HLNsVvXI343hsMA
         ABBNiyTqr/cLskTIOGNOaFcir9gl3tzAbkrFCcNPJk4FtbJLJazM8tzTAAMMCXjV5qOc
         twSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764579737; x=1765184537;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6xUAFiWi0Ksfg3GF1JP4kl6rTs30VL0+0fE1agqihzY=;
        b=whgxyIJu3UPwFqXKk3fC6kjy9gSD2z5OKj8DwKR8Hr95eiTxtq1DWVzoX7UaeGQoUp
         FZUWJJhzMxb6QsyxdogBNjxllk39i6PE6b84JKjSSDC1hqWuzZ8Ytz6EcT1Vf7QTOidq
         Euyp5/sfi9Db143ofZaNEhbVZzFJuNpyJ3vs6zlZVP726nnl1y9Iio8MOURCir+oT56l
         9vUfT+XZNVfgwHCjg3avIoSFU3xjV7hoUiTmMDf95y0pEaLfCp5E2jGeNh3JsDZFRuMC
         70mZmdH4qAxoqZWFwUrFl3WEsHbCGNAvw2xkvKV8brP5XteEjaTzV5vaJWpsRMdRbaCs
         4PaQ==
X-Forwarded-Encrypted: i=1; AJvYcCVRoa5aFrpYV1w+2ZFjlloLX0Mm8xsvnpepPphgQsHsCNtbEVL/ZuPrtKg5IqZD4cBZZEs39QsUMa0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy8A8RfzfxduU0BRZjWWkRD6rYOMSx+Jc47AyQAgsq6unn0pevV
	JBk5202bkG3fKdab0OagpfuHlZNIBg+105wL1l2fwCoqWVftBiCDVMtsx/+AhwbVzQ==
X-Gm-Gg: ASbGncuAb67nP5PS1G4wXSfx8GdB330ItCVB2DyWzRZSx0NmMknGwJPOeGVReMICLda
	UHvGDGwaUa40aco1TAjPAoujvWJWIhaMnMsiG/Nzljr1Qd22cnTOxB2BGCmK6znNMQlJmmtZiPf
	W+V1tzgrqZTgl/Z+Q4zHNKkmoqajWTDGrSP0H1vlTnKXAq1445pNVLC25T8Qjl6BFoxgNk0BssL
	CuD2M1BzPjDI8ZP412v4Ahfw4MrYvRlT5ntoebjbLb48CSD7HcD0RpwwK1yaw040P9RmQpu7j0v
	hM3lJ6fFOBW8AmviXInpmGPzzWur3aQRb57YQWwvkIGkNUoZKE4ev1EQzlehAcbVMLGH8tJ5F+w
	8NkHY+2n+mqP6xWgECO4hK8CUDFt85SRyaJrVd0L12luWJoNfoT+KZhiSo86AeDfrJO1bWBlwqO
	/yv6ASrzVRNof8inKJwxQOvlblxXPMGtEAV8FToFJ07zmqCN6xUGvtG8WFSwzS1ZXAU6QmiKVX0
	C8=
X-Google-Smtp-Source: AGHT+IHf0W4zmO3A+wQiAtPcRpcq1ZqTU5Rfi1CySt5nQeHb06ykCJnClKyiTg0QIeoXJ/K0j/roJg==
X-Received: by 2002:a05:600c:3541:b0:477:9650:3184 with SMTP id 5b1f17b1804b1-477c0165bc3mr381558615e9.2.1764579736622;
        Mon, 01 Dec 2025 01:02:16 -0800 (PST)
Message-ID: <796dccdb-0cc4-4904-b776-d651ebb012c2@suse.com>
Date: Mon, 1 Dec 2025 10:02:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hvm: Unilaterally inject #UD for unknown VMExits
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251128174735.1238055-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251128174735.1238055-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.11.2025 18:47, Andrew Cooper wrote:
> While we do this for unknown user mode exits, crashing for supervisor mode
> exits is unhelpful.  Intel in particular expect the unknown case to be #UD
> because they do introduce new instructions with new VMEXIT_* codes without
> other enablement controls.  e.g. MSRLIST, USER_MSR, MSR_IMM, but AMD have
> RDPRU and SKINIT as examples too.

USER-MSR has MSR_USER_MSR_CTL, so doesn't fully fit here? (It's still not us
to directly control exposure of the insns, but an OS would need to use the
MSR to do so, and hence we need to properly handle writes to that MSR for
the respective exits to become possible.)

MSRLIST has a dedicated exec control, so whether the exits can occur is
under our control.

RDPRU and SKINIT have dedicated intercepts, without use of which the
respective exit can't occur aiui.

IOW it looks to be really only MSR-IMM which is special.

> @@ -3083,8 +3067,13 @@ void asmlinkage svm_vmexit_handler(void)
>          gprintk(XENLOG_ERR, "Unexpected vmexit: reason %#"PRIx64", "
>                  "exitinfo1 %#"PRIx64", exitinfo2 %#"PRIx64"\n",
>                  exit_reason, vmcb->exitinfo1, vmcb->exitinfo2);
> -    crash_or_fault:
> -        svm_crash_or_fault(v);
> +        fallthrough;
> +    case VMEXIT_MONITOR:
> +    case VMEXIT_MWAIT:
> +    case VMEXIT_SKINIT:
> +    case VMEXIT_RDPRU:
> +    inject_ud:
> +        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
>          break;
>      }
>  

Should this be brought more in line with respective VMX code (kept) below,
in never bypassing the gprintk() by any of the case labels? Basically
meaning that the case labels you move could simply be dropped for the time
being (or else, like the INVCPID one visible in context below, would want
re-inserting a few lines earlier).

Jan

> @@ -4902,14 +4903,9 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_regs *regs)
>      case EXIT_REASON_INVPCID:
>      /* fall through */
>      default:
> -    exit_and_crash:
> +    unexpected_vmexit:
>          gprintk(XENLOG_ERR, "Unexpected vmexit: reason %lu\n", exit_reason);
> -
> -        if ( vmx_get_cpl() )
> -            hvm_inject_hw_exception(X86_EXC_UD,
> -                                    X86_EVENT_NO_EC);
> -        else
> -            domain_crash(v->domain);
> +        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
>          break;
>      }
>  
> 
> base-commit: 117a46287427db2a6f5fe219eb2031d7ca39b603



From xen-devel-bounces@lists.xenproject.org Mon Dec 01 09:24:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 09:24:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175633.1500249 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ08d-00059F-5t; Mon, 01 Dec 2025 09:24:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175633.1500249; Mon, 01 Dec 2025 09:24:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ08d-000598-3C; Mon, 01 Dec 2025 09:24:07 +0000
Received: by outflank-mailman (input) for mailman id 1175633;
 Mon, 01 Dec 2025 09:24:06 +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
 <SRS0=tSLg=6H=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vQ08c-000590-0B
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 09:24:06 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7a8d1606-ce97-11f0-9d19-b5c5bf9af7f9;
 Mon, 01 Dec 2025 10:24:04 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-640a0812658so250828a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 01 Dec 2025 01:24:04 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-6475104fd7asm11908263a12.23.2025.12.01.01.24.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Dec 2025 01:24:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7a8d1606-ce97-11f0-9d19-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764581043; x=1765185843; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Gjl86UMleKeXJVTalJzmHYE5u/oaUaq48LnSt91wgiU=;
        b=Y4OrRQFO+gn3EQQXcmxCCXTGbxJUNFI3mBoGBrYxkwH+AZAh5MbjBTGF4uNN4jtsMu
         gJC+kKO5ua/K+FATepAVeUCtSASJOqXbosxp0Zur+9aNIQOov0zJDaoa/QZCefutRfxu
         caMFA31AEvlt+c7ORYwP8Trvt3YctknbEpEOBRrBxOZ5Pw1I4iF8AFr0L4w1wnzY+KNN
         3DKhbAVRLxkq/RmV32BG4f6PZlHn2fxwJQdhqneVBnIui37xciVMbgI3HGjbtBODwuSJ
         /vjUq3rVEwUWnfUXIeFmAh5/ElIjQYEmQjD+uNqQ5bujDB22SKtOmTaP+sTg+NiGf5cy
         6Z8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764581043; x=1765185843;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Gjl86UMleKeXJVTalJzmHYE5u/oaUaq48LnSt91wgiU=;
        b=fnCZkxlBhmQYlzV+Kq5N8T6Q8qrsisbNbXrqniXpAAdu5TItEGfRJi9wsPQoRiAdz1
         0UUa/44k72fZg7EJs+FU3SRE8hI8GXbrT949WlO9Ybcg2bHEzuKJYyd4YePDtgbG/PJn
         wxyR1GaDquMyet/5NLXXJIs9WRGAZIQ/n2k7vsWPjKxnKQPouB5BF5HEOfkwfRfdcL46
         3XG9HAE5E/xaP+8ki2BoQQBB9eqL6Wbm0h8xRjiB6h5EigWzttpjvhUzz0dqAxHN9Ahp
         W2cT5V0McbvJh7mzwiwmrPqv/ugp0dUCiG3qq2aVB0U+e+sDeASpC2ViDX+TjlBwE550
         Hm4w==
X-Forwarded-Encrypted: i=1; AJvYcCUr0+7onruzbg7XXSBzllMiQ2SJb8Sma7/DYdr2hcdNzrYcvLYuXAvTY03Qf7KpOGbhJhDSTbD04Po=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxzN9lzgyePRH2CRcJDLlfkq5zjUFXaY8KJkb7QScafeYbH+tV3
	bbGt36E8Ndg3wtC1u0M/CmZ2xkU04PupceMkrWpPmTYk6bPUHwi0OyjL
X-Gm-Gg: ASbGnctFlBGXmB7T87WxkQVfPM0pjfBFIXet9BMPQ5SjbeIpSREgTnbdOrCVUdmAiho
	uk4Ar36imUNUdczEOeZjadPDj5+NaqljOyDKI4ss300u3pTDoZkTRFJsiRudv70bxEeSeHlceuG
	wRVHpNTYod2FBDzFyy5x9nvlrvPioz73uCfsKjSaOmaafkiFp9W3KQfh3pwZOfK2SKxolerL0FQ
	KUjWVYZ66TcWE8ufw0tH55nADtwWnbprhymcf7OCMyfVvyMrYr//ULJ0mhbWgJ07Jic9u6mBBLm
	9wx1sjuF9CQKEFB0/ESnjaL9l0JwUK94xiQqZBNnAg1ZpjPOr+hUSasmVNVYlsy3NMQB1WqHfkW
	0jK+GUxMX1ViQAvmllCS1yPwWszviq82HLj7VnX3qlHrGg/IVuSFoVZwXTXeR3wv+2hcxBAoYaw
	PPtXeFYLodFCqUAzX6judW8PpWKKKZ3JRMTt501jrUyUNmmEH0L1fSuuR3152woJ9x
X-Google-Smtp-Source: AGHT+IEtqOiXGuT042WRpanUP/NoXdVrppQ7RvY4zWSra4S1bcvJH/FTDtbbXAl3J/dDLg7y2xit4g==
X-Received: by 2002:a05:6402:3510:b0:640:b99c:de83 with SMTP id 4fb4d7f45d1cf-645eb2a87e1mr24300946a12.17.1764581043201;
        Mon, 01 Dec 2025 01:24:03 -0800 (PST)
Message-ID: <74fdbc0e-7919-4a89-8cd4-cc6cf3ffc402@gmail.com>
Date: Mon, 1 Dec 2025 10:24:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: move vcpu_kick() declaration to common header
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <b009997b5f3e7489fadb5f62f1623fc4d13bf271.1764344988.git.oleksii.kurochko@gmail.com>
 <0173e0bd-130a-4966-b0f1-882f8dd78aa1@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <0173e0bd-130a-4966-b0f1-882f8dd78aa1@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 12/1/25 9:40 AM, Jan Beulich wrote:
> On 28.11.2025 17:23, Oleksii Kurochko wrote:
>> The vcpu_kick() declaration is duplicated across multiple
>> architecture-specific event.h headers (ARM, x86, PPC).
>>
>> Remove the redundant declarations and move vcpu_kick() into
>> the common xen/include/xen/sched.h header.
>>
>> Drop the definition of vcpu_kick() from ppc/include/asm/event.h,
>> as it is already provided in ppc/stubs.c.
>>
>> Add inclusion of xen/sched.h in the files where vcpu_kick() is
>> used.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks.


> albeit preferably with at least ...
>
>> --- a/xen/arch/x86/cpu/mcheck/vmce.c
>> +++ b/xen/arch/x86/cpu/mcheck/vmce.c
>> @@ -12,6 +12,7 @@
>>   #include <xen/event.h>
>>   #include <xen/kernel.h>
>>   #include <xen/delay.h>
>> +#include <xen/sched.h>
>>   #include <xen/smp.h>
>>   #include <xen/mm.h>
>>   #include <asm/hvm/save.h>
> ... this change omitted. This file includes the private "mce.h", which in turn
> includes xen/sched.h.
>
>> --- a/xen/arch/x86/pv/traps.c
>> +++ b/xen/arch/x86/pv/traps.c
>> @@ -10,6 +10,7 @@
>>   #include <xen/event.h>
>>   #include <xen/hypercall.h>
>>   #include <xen/lib.h>
>> +#include <xen/sched.h>
>>   #include <xen/softirq.h>
> Somewhat similarly here, xen/event.h includes xen/sched.h. That's less obviously
> guaranteed, though, so making the include explicit here is likely okay.

I am generally okay with not adding what is probably an unnecessary new header
inclusion, but it is unclear to me why we should avoid including a header just
because it is already included by another one. In other words, if one day someone
removes "xen/sched.h" from "mce.h", is it acceptable for this to result in a
compilation error? How do we decide when such an error is acceptable and when
it is not?

Should the default behavior be that if header X is already included indirectly
through other headers, there is no need to include header X directly?

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Dec 01 10:24:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 10:24:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175649.1500259 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ14w-000427-GE; Mon, 01 Dec 2025 10:24:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175649.1500259; Mon, 01 Dec 2025 10:24:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ14w-000420-Dc; Mon, 01 Dec 2025 10:24:22 +0000
Received: by outflank-mailman (input) for mailman id 1175649;
 Mon, 01 Dec 2025 10:24:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tSLg=6H=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vQ14v-00041k-Fh
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 10:24:21 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e57550c0-ce9f-11f0-980a-7dc792cee155;
 Mon, 01 Dec 2025 11:24:19 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-640a3317b89so6159149a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 01 Dec 2025 02:24:19 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-647510508e1sm12104724a12.27.2025.12.01.02.24.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Dec 2025 02:24:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e57550c0-ce9f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764584658; x=1765189458; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=JXaDdTIaXHz5CwivPwYNGu/Vc2I3vAaM0EXiho61L0Y=;
        b=AeYGr++yVJJrzzQAy30HluUzOBpB2xfMNUPhyzrs7TnmONP8F8WWJS4T9l4V2F5DIs
         XeEdB7J1xaZ5xxmUr7iP4J82EjsdzWMJcbNc5BuXenqHnq/XaUUM04Vcx8wgABG7DViy
         LDu1sksLMz/l68RDAckBKuJydu6vMs0HdF7FXwceHJXoMuue380IFqkrN2Zdzc3CzeNW
         6rhJBJNtA5zCoQOr9D0TN8Ck1rWAUPPzs9oDKBlgpmKt1w/q1q4gHlI4vgdAFHXsis3E
         tBHz3nYAqrQati65SR/UzDhFicAzVQ0og2ahDD4XDhv8SX7Ls6z2zzisZp60CKp/21sS
         O/0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764584658; x=1765189458;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JXaDdTIaXHz5CwivPwYNGu/Vc2I3vAaM0EXiho61L0Y=;
        b=oirHPth/nDyjExfzY2CU6ZQhcMIDXFU7m2h3dlsNVQRGVo/HN1Gm9oLZqryng4kwQ4
         96jlQc1kq0Vpcs/WaqG34X7S1pmpDnv1K/j51Gs03K3kR3EXH3iPH715yHdsJ7cJ+rDg
         ESz9H2p2RHDhkgE92H9C8IpOzKJJTG+oa2oZJuDFbKzZ+GyDwGH7gE74MKwmobyYjQqv
         cyiFedIva0/R7TSztKepWw13B0rfBgYJZcTFpJqLtwbttcoFelo2DKgGACO522QzZ/Bq
         NLCDcLVkPZlYwDdHIjqFnx4vBzPFRbM2vrJCAw+cLqDq0SJlzK/lxI/UPBjpdA8IeR8x
         Cqpw==
X-Gm-Message-State: AOJu0YxY6I+1hx6F6smq0kDHCvCgk76TExehZEirdLNJrT7+vT8Wt5Pt
	qJv6ncnJI4ftWJ3xJFpY4eK6422AR9JKOzyijMjzKibV1TQ16YO3Nx3pRCj6IXB8
X-Gm-Gg: ASbGncuc+wtmlhy0TJTCflFSFJ8+kc3QOfJBvRt2VJJQB7GsV0Ky4TO3ek8Qc6j82l+
	+T9eyrqXgLCNuuMD8FnFL7iH7t7lv10kcOP1xKAqXf4vgg+7/o45m0mMAr8aGcCd3jy44zzHelS
	I6O0DLffHHqBLLDVQUgLN0skpTit5nN2KZ6P8n1qzKV5vsOsXo8obZybrwsFlPOsKQ7xyXuFb69
	IeYZpvGgqAxqtu1HRfMkoO2YkosSLHQdVn5fP7IzLmQLlLtGjDnbtkIbgaKw3M/UUap2TJH1Peh
	g8cPg20ItoiPKbwqLVQt+nyKOWfGjPYDdlpugv4a3F+jzrarAZMWyY6A6n7dKfP4Q3qmlZWOIPC
	IqUQigBuOqc24hA7oic+OOGrTvNAOGQ8x7e0PD37lZw/3H6j0rNKZad4GDKFNVF6ufv6KirH1Fj
	ciDS7sY0ZA2VXGkGNpyxOhiS9AywQoEyus0moRHh6psE1ZpFwZnfEzIY4=
X-Google-Smtp-Source: AGHT+IFczAH9/1T2fKi7euXdl2mU6LAl5n2bUrgGA59CEDKqubzhELS8xwLHITF6n+OK6AbcsJS4gw==
X-Received: by 2002:a05:6402:1449:b0:643:4e9c:d164 with SMTP id 4fb4d7f45d1cf-645eb23f957mr20963081a12.2.1764584658248;
        Mon, 01 Dec 2025 02:24:18 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 0/3] RISC-V: Introduce vSBI framework
Date: Mon,  1 Dec 2025 11:24:07 +0100
Message-ID: <cover.1764582112.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the vSBI framework to handle extension ecall instruction calls
from a guest.

In this patch series, support is added for only a few extensions and FIDs,
just enough to boot the first guest domains and obtain logs from them. This
keeps the patch series independent from other ongoing work.

It was decided to start with support for the Legacy Extension, as it is still
supported by Linux (so we may need it anyway), and because some of its FIDs
require less functionality to implement at this stage compared to the more
modern extensions.

Oleksii Kurochko (3):
  xen/riscv: introduce vSBI extension framework
  xen/riscv: add RISC-V legacy SBI extension support for guests
  xen/riscv: add RISC-V virtual SBI base extension support for guests

 xen/arch/riscv/Makefile                     |  1 +
 xen/arch/riscv/include/asm/processor.h      |  1 +
 xen/arch/riscv/include/asm/sbi.h            | 14 +++++-
 xen/arch/riscv/include/asm/vsbi.h           | 31 ++++++++++++
 xen/arch/riscv/sbi.c                        |  8 ++--
 xen/arch/riscv/traps.c                      |  8 ++++
 xen/arch/riscv/vsbi/Makefile                |  3 ++
 xen/arch/riscv/vsbi/vsbi-base-extension.c   | 52 +++++++++++++++++++++
 xen/arch/riscv/vsbi/vsbi-legacy-extension.c | 37 +++++++++++++++
 xen/arch/riscv/vsbi/vsbi.c                  | 46 ++++++++++++++++++
 xen/arch/riscv/xen.lds.S                    |  7 +++
 11 files changed, 203 insertions(+), 5 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/vsbi.h
 create mode 100644 xen/arch/riscv/vsbi/Makefile
 create mode 100644 xen/arch/riscv/vsbi/vsbi-base-extension.c
 create mode 100644 xen/arch/riscv/vsbi/vsbi-legacy-extension.c
 create mode 100644 xen/arch/riscv/vsbi/vsbi.c

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 01 10:24:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 10:24:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175651.1500277 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ14y-0004Iq-2V; Mon, 01 Dec 2025 10:24:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175651.1500277; Mon, 01 Dec 2025 10:24:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ14x-0004IE-Sc; Mon, 01 Dec 2025 10:24:23 +0000
Received: by outflank-mailman (input) for mailman id 1175651;
 Mon, 01 Dec 2025 10:24:22 +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
 <SRS0=tSLg=6H=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vQ14w-00041l-UJ
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 10:24:22 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e7155d20-ce9f-11f0-9d19-b5c5bf9af7f9;
 Mon, 01 Dec 2025 11:24:22 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-644fcafdce9so6322263a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 01 Dec 2025 02:24:22 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-647510508e1sm12104724a12.27.2025.12.01.02.24.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Dec 2025 02:24:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e7155d20-ce9f-11f0-9d19-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764584661; x=1765189461; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5/5qXPCww7DpyOeKc5W7T3oZxeoVMBH7UuUZDrfemqE=;
        b=Z+HYFSTYsE29amSMV37ZLmgpDfuAcll5PfoSEa13APGB3tmj6magZISfgc95kfA7/1
         NYulz22kA36sxYWxVUvGQ+joKDN/lOInMbAOX7SOmeoz5RLjBme9Tl709vLny2LgPtmj
         Co0D07gNk+kN1LOG8VSyQp939QUnAxbKNrl7CCQ93XwcOnQktK6GoDtlmX0RDcBXKze9
         EnDDu+MbiuedHwjcEhp0DrVZkQoN2hX4RHKE/ZKlvRc4AlVQaD60XjwbJObLrXPOzbCM
         dfGxBZiR/rivysntjGBj/9swbcxk3FqCiDCpeVHgGE9wfcwFVYEOMMchWlJ4cz4B3p8l
         xWSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764584661; x=1765189461;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=5/5qXPCww7DpyOeKc5W7T3oZxeoVMBH7UuUZDrfemqE=;
        b=uqq6qCNmbVLMDgXQIEs/HmAoLBgj9GCrZ55/wzX97s0kB2smsLsIicuhrnJgtGFtsk
         6zWuoO7X9hRwUFpM07DqBnjQzzF3qdbYkKD6K9ne8ywGrHO+6mceCmQyPC3yUKkz062c
         vj5DjXSpwhqEFmVHEHbsZiSZSra9nVRPKfnc+LD6xPquL4RPpA397+Uem3BtaLiVrzEs
         O1Y5xeyT/E6g0IKAIRG4YeLWrjEcg+vZiP/CSsXIz9nkOVRYaq8A1cSTRpCzDm5lwFk3
         YYZJd5dfYWNjZRnozyJzjW+yyljD7ZhbOrILRmNOJGl39SqEhMVEhoFaM3oizBISfhLp
         AFmg==
X-Gm-Message-State: AOJu0YxtUU+6F4wPacoqYftBUA87/ze2au2pSsyX5AXiE/NzL0wzj91i
	pOjXdbnwx2YeiCzjtVEwz46ILsjMQYYWb23j3E9LW0v+PWy+1FsVRdVCSQXTen3v
X-Gm-Gg: ASbGncszJqmG334mY/scY1gDf3rOSXt2tzZwJEagJN+ZXf1jPFWQcw5Ka1ysBLumKd7
	e7qUpO+GqQiBQDUmHKLi+ArlN1C/OThgar4Ffe9mvGxxRI1hg3jCYPnN94FcLoT0HmQDfF71i+8
	edcIMjwNIAnA/u9vRdMWMHoi8En8i5/f4Rs/Ys90TLfFzz+ChQob/k6iHF9bHWowLeeTAHJwSHE
	2bJ9fLM2qVlMRm7I9n/GS2aXIa2sXFd4MpGSBwyMjpSjv0iveqUoNFzY3ADQ4xXB7Av0LzyUYu7
	4i0lEY3M9+7ZJi/mmCZUUqc53qZz0j7r0XaY31C+dgaptbilTPiAoew8H5/6M8Bs3KDkkLtxEiU
	AsVWjY5FXLqKNqTnAVM1dpfyq5NuWKITGmeFgHocnJeVSLPYBskKrKlvUPmyrIFtO/W+8nJwXYj
	pgLsrRK7rQQzV9lNZknLNx7ROSXty8Cqgsmj26PnkacnxUtbzqmG0GVdk=
X-Google-Smtp-Source: AGHT+IEHAkAjsx+AcYiFj6bbDfNxh05DgLlgcigwBuGP4ZsrHTsIk7PkL/MRnY4TibUboiviSfvm3Q==
X-Received: by 2002:a05:6402:1d50:b0:640:ebe3:dd55 with SMTP id 4fb4d7f45d1cf-645eb23f84emr21307302a12.6.1764584661090;
        Mon, 01 Dec 2025 02:24:21 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 3/3] xen/riscv: add RISC-V virtual SBI base extension support for guests
Date: Mon,  1 Dec 2025 11:24:10 +0100
Message-ID: <d17dcac47752681eed6703360389dd542433ab3e.1764582112.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1764582112.git.oleksii.kurochko@gmail.com>
References: <cover.1764582112.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add support of virtual SBI base extension calls for RISC-V guests, delegating
hardware-specific queries to the underlying SBI and handling version and
firmware ID queries directly.

The changes include:
1. Define new SBI base extension function IDs (SBI_EXT_BASE_GET_MVENDORID,
   SBI_EXT_BASE_GET_MARCHID, SBI_EXT_BASE_GET_MIMPID).
2. Make sbi_spec_version, sbi_fw_id, and sbi_fw_version global variables for
   use in virtual SBI handling, removing redundant local declarations in
   sbi_init.
3. Implement handling of SBI base extension functions, including version,
   firmware ID, and machine-specific queries.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/sbi.h          |  3 ++
 xen/arch/riscv/sbi.c                      |  8 ++--
 xen/arch/riscv/vsbi/Makefile              |  1 +
 xen/arch/riscv/vsbi/vsbi-base-extension.c | 52 +++++++++++++++++++++++
 4 files changed, 61 insertions(+), 3 deletions(-)
 create mode 100644 xen/arch/riscv/vsbi/vsbi-base-extension.c

diff --git a/xen/arch/riscv/include/asm/sbi.h b/xen/arch/riscv/include/asm/sbi.h
index e7d5d707b1..98ba872ef3 100644
--- a/xen/arch/riscv/include/asm/sbi.h
+++ b/xen/arch/riscv/include/asm/sbi.h
@@ -32,6 +32,9 @@
 #define SBI_EXT_BASE_GET_IMP_ID         0x1
 #define SBI_EXT_BASE_GET_IMP_VERSION    0x2
 #define SBI_EXT_BASE_PROBE_EXT          0x3
+#define SBI_EXT_BASE_GET_MVENDORID      0x4
+#define SBI_EXT_BASE_GET_MARCHID        0x5
+#define SBI_EXT_BASE_GET_MIMPID         0x6
 
 /* SBI function IDs for RFENCE extension */
 #define SBI_EXT_RFENCE_REMOTE_FENCE_I           0x0
diff --git a/xen/arch/riscv/sbi.c b/xen/arch/riscv/sbi.c
index 425dce44c6..97cbf84c21 100644
--- a/xen/arch/riscv/sbi.c
+++ b/xen/arch/riscv/sbi.c
@@ -23,7 +23,9 @@
 #include <asm/processor.h>
 #include <asm/sbi.h>
 
-static unsigned long __ro_after_init sbi_spec_version = SBI_SPEC_VERSION_DEFAULT;
+unsigned long __ro_after_init sbi_spec_version = SBI_SPEC_VERSION_DEFAULT;
+long __ro_after_init sbi_fw_id;
+long __ro_after_init sbi_fw_version;
 
 struct sbiret sbi_ecall(unsigned long ext, unsigned long fid,
                         unsigned long arg0, unsigned long arg1,
@@ -313,8 +315,8 @@ int __init sbi_init(void)
 
     if ( !sbi_spec_is_0_1() )
     {
-        long sbi_fw_id = sbi_get_firmware_id();
-        long sbi_fw_version = sbi_get_firmware_version();
+        sbi_fw_id = sbi_get_firmware_id();
+        sbi_fw_version = sbi_get_firmware_version();
 
         BUG_ON((sbi_fw_id < 0) || (sbi_fw_version < 0));
 
diff --git a/xen/arch/riscv/vsbi/Makefile b/xen/arch/riscv/vsbi/Makefile
index 4da625db9a..07ae27b99e 100644
--- a/xen/arch/riscv/vsbi/Makefile
+++ b/xen/arch/riscv/vsbi/Makefile
@@ -1,2 +1,3 @@
 obj-y += vsbi.o
+obj-y += vsbi-base-extension.o
 obj-y += vsbi-legacy-extension.o
diff --git a/xen/arch/riscv/vsbi/vsbi-base-extension.c b/xen/arch/riscv/vsbi/vsbi-base-extension.c
new file mode 100644
index 0000000000..88f4567cb1
--- /dev/null
+++ b/xen/arch/riscv/vsbi/vsbi-base-extension.c
@@ -0,0 +1,52 @@
+
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/lib.h>
+#include <xen/sched.h>
+
+#include <asm/processor.h>
+#include <asm/sbi.h>
+#include <asm/vsbi.h>
+
+extern unsigned long __ro_after_init sbi_spec_version;
+extern long __ro_after_init sbi_fw_id;
+extern long __ro_after_init sbi_fw_version;
+
+static int vsbi_base_ecall_handler(struct vcpu *vcpu, unsigned long eid,
+                                   unsigned long fid,
+                                   struct cpu_user_regs *regs)
+{
+    int ret = 0;
+    struct sbiret sbi_ret;
+
+    switch ( fid ) {
+    case SBI_EXT_BASE_GET_SPEC_VERSION:
+        regs->a1 = sbi_spec_version;
+        break;
+    case SBI_EXT_BASE_GET_IMP_ID:
+        regs->a1 = sbi_fw_id;
+        break;
+    case SBI_EXT_BASE_GET_IMP_VERSION:
+        regs->a1 = sbi_fw_version;
+        break;
+    case SBI_EXT_BASE_GET_MVENDORID:
+    case SBI_EXT_BASE_GET_MARCHID:
+    case SBI_EXT_BASE_GET_MIMPID:
+        sbi_ret = sbi_ecall(SBI_EXT_BASE, fid, 0, 0, 0, 0, 0, 0);
+        ret = sbi_ret.error;
+        regs->a1 = sbi_ret.value;
+        break;
+    case SBI_EXT_BASE_PROBE_EXT:
+        regs->a1 = vsbi_find_extension(regs->a0) ? 1 : 0;
+        break;
+    default:
+        panic("%s: Unsupported ecall: FID: #%lx, EID: #%lx\n",
+              __func__, fid, eid);
+        break;
+    }
+
+    return ret;
+}
+
+VSBI_EXT_START(base, SBI_EXT_BASE, SBI_EXT_BASE, vsbi_base_ecall_handler)
+VSBI_EXT_END
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 01 10:24:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 10:24:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175652.1500290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ14z-0004gn-5j; Mon, 01 Dec 2025 10:24:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175652.1500290; Mon, 01 Dec 2025 10:24:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ14z-0004ge-2y; Mon, 01 Dec 2025 10:24:25 +0000
Received: by outflank-mailman (input) for mailman id 1175652;
 Mon, 01 Dec 2025 10:24:23 +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
 <SRS0=tSLg=6H=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vQ14x-00041l-Mz
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 10:24:23 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e6704ee7-ce9f-11f0-9d19-b5c5bf9af7f9;
 Mon, 01 Dec 2025 11:24:21 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-640d0ec9651so7209124a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Dec 2025 02:24:21 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-647510508e1sm12104724a12.27.2025.12.01.02.24.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Dec 2025 02:24:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e6704ee7-ce9f-11f0-9d19-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764584660; x=1765189460; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lf+N5X3ZZ5bsc0bBTkOsHsGSk6FHfGVMZrI5qCr7EEo=;
        b=Nz1lIuNWZ23GQzNT7uPS2A4nWBLgSYss4y63rNkQNbIZfJaP/TugtdiEDZw7FAR2wI
         kL6MS9F4SixHugsD+k09TDJeljwIBnzDUxVL+dfsEPVAdmMcDqMhH7wjIgCdzQg4ILir
         VuT3at7qQJEWm1R0wxzjB/uGeca/+gzsYmFbH0D69vwImwpo02g5BNbqT0d3bbHVp1em
         1BPTOUprAxYyboY7fIyKdvFyjp55YoX2LScgAkednHqkSYTQLeVEvMA3cgumSEHIU2Yg
         T8xBrDoMlFxwmtxOJtGL+3kzCTRI9getG03dNavNCJzoatTwvvFa/jrYXhdvalt2Tit6
         V2sQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764584660; x=1765189460;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=lf+N5X3ZZ5bsc0bBTkOsHsGSk6FHfGVMZrI5qCr7EEo=;
        b=jIvMyYZmdin1jz1rBSO/iWK+zMxxTBMgQdsU0e03WJ4Je0XwMhtUKsVdPIS/M61CNP
         TrMsC9nWQ7j/qc/vKzCsZyflxaMjorkmardVSthNMFLMD/fIXZxcUrsxNyDuFL/50FZL
         mMkYjK+NbhABxYQ/alvD4bScNBCUoiHHPj4mWROuEOPKcNeBbW+xoqmRwpkfQ9JErRU9
         d/mHEEAayJBcfwV6VegrmLpPTwkAv52rZqLvkbCVXWHN1rV7krtbbbGXfX/Smi1mhskd
         XyUbs+o2hx+faPnD0wCzlx5cPT519w4hcQ9qbd37GmMsmWvK7mazo1PePqvgQzpCSW2S
         mMfA==
X-Gm-Message-State: AOJu0YxOkp5JPr29spwSbCRECsgTjgVyx9wA/H2Eo7JpncWyq0a8EuFc
	utD6Ag8hQkcFxlJR3lpTAtXhyNooiBRq6KQIzv/VzIBjItj4jOqHsra67jaidIpc
X-Gm-Gg: ASbGnctz1xabEtIGqo5m8/kNhRT2CeQnCINUrxAjJkZwA0xo9kde1+rRuzDdSfO3jbM
	n65pOGP1sNaNeYzfoIGsnuvNPzmOgE/sW/GaaA2E81nl47rRrKHeJJvmzKU2XRAcGHPJgfBYQ79
	5ec/gZjA72bSlhtzwb2WWqW1mwzUrvPBaS/MRyEnZulwRKqUgZg8asec69dnEuet1s2VFdxL5z+
	BkZwkM+9lSBPuLqn7fS+CrXmLX9ORWm0am6YllmOSAcXvyV1dQvt4SIQ2QhwTklLRLRXPU6AAaV
	JsnKLuJYm8kfrPN62Tk98bnRImAGrpul1F/cZR8qToIKGs34KrZbIby2/WcbYpmXbLAbrUDNoHd
	Y6Xf9XR7uKQlHWEN/jAYdJ+pthmN+5s28wyUAd6yltQMo1hJmwqPy8miqHhvgEadJSq5wIU9wh6
	v8rVAg/U84yweCTpJq8KAc+SPF8MRiHr9zUPjx+9TJCbvcYrP0MXPxoKX6ICiH3xSTkA==
X-Google-Smtp-Source: AGHT+IESPE5BRtDHOM0mPf44z/DvKR1KHQLIzguXTRd2Az3sSheaMmSW8ev4MCk0ZNllhessoEZqYw==
X-Received: by 2002:a05:6402:42c7:b0:640:e791:df67 with SMTP id 4fb4d7f45d1cf-64555b9bebbmr36232781a12.10.1764584660077;
        Mon, 01 Dec 2025 02:24:20 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 2/3] xen/riscv: add RISC-V legacy SBI extension support for guests
Date: Mon,  1 Dec 2025 11:24:09 +0100
Message-ID: <f4e4dc9beef4618ffaabe1c6caec3e10cf78fd5d.1764582112.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1764582112.git.oleksii.kurochko@gmail.com>
References: <cover.1764582112.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This commit adds support for legacy SBI extensions (version 0.1) in Xen
for guest domains.

The changes include:
1. Define all legacy SBI extension IDs (0x0 to 0x8) for better clarity and
   completeness.
2. Implement handling of legacy SBI extensions, starting with support for
   SBI_EXT_0_1_CONSOLE_{PUT,GET}CHAR.

The implementation uses the existing virtual SBI framework to handle legacy
SBI ecalls, ensuring compatibility with older SBI specifications in
RISC-V guests.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/sbi.h            | 11 ++++--
 xen/arch/riscv/vsbi/Makefile                |  1 +
 xen/arch/riscv/vsbi/vsbi-legacy-extension.c | 37 +++++++++++++++++++++
 3 files changed, 47 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/riscv/vsbi/vsbi-legacy-extension.c

diff --git a/xen/arch/riscv/include/asm/sbi.h b/xen/arch/riscv/include/asm/sbi.h
index ade24a572d..e7d5d707b1 100644
--- a/xen/arch/riscv/include/asm/sbi.h
+++ b/xen/arch/riscv/include/asm/sbi.h
@@ -14,8 +14,15 @@
 
 #include <xen/cpumask.h>
 
-#define SBI_EXT_0_1_CONSOLE_PUTCHAR		0x1
-#define SBI_EXT_0_1_SHUTDOWN			0x8
+#define SBI_EXT_0_1_SET_TIMER           0x0
+#define SBI_EXT_0_1_CONSOLE_PUTCHAR     0x1
+#define SBI_EXT_0_1_CONSOLE_GETCHAR     0x2
+#define SBI_EXT_0_1_CLEAR_IPI           0x3
+#define SBI_EXT_0_1_SEND_IPI            0x4
+#define SBI_EXT_0_1_REMOTE_FENCE_I      0x5
+#define SBI_EXT_0_1_REMOTE_SFENCE_VMA   0x6
+#define SBI_EXT_0_1_REMOTE_SFENCE_VMA_ASID  0x7
+#define SBI_EXT_0_1_SHUTDOWN            0x8
 
 #define SBI_EXT_BASE                    0x10
 #define SBI_EXT_RFENCE                  0x52464E43
diff --git a/xen/arch/riscv/vsbi/Makefile b/xen/arch/riscv/vsbi/Makefile
index 574c8ff78d..4da625db9a 100644
--- a/xen/arch/riscv/vsbi/Makefile
+++ b/xen/arch/riscv/vsbi/Makefile
@@ -1 +1,2 @@
 obj-y += vsbi.o
+obj-y += vsbi-legacy-extension.o
diff --git a/xen/arch/riscv/vsbi/vsbi-legacy-extension.c b/xen/arch/riscv/vsbi/vsbi-legacy-extension.c
new file mode 100644
index 0000000000..39d65931b1
--- /dev/null
+++ b/xen/arch/riscv/vsbi/vsbi-legacy-extension.c
@@ -0,0 +1,37 @@
+
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/lib.h>
+#include <xen/sched.h>
+
+#include <asm/processor.h>
+#include <asm/vsbi.h>
+
+static int vsbi_legacy_ecall_handler(struct vcpu *vcpu, unsigned long eid,
+                                     unsigned long fid,
+                                     struct cpu_user_regs *regs)
+{
+    int ret = 0;
+
+    switch ( eid )
+    {
+    case SBI_EXT_0_1_CONSOLE_PUTCHAR:
+        printk("%c", (char)regs->a0);
+        break;
+
+    case SBI_EXT_0_1_CONSOLE_GETCHAR:
+        regs->a0 = SBI_ERR_NOT_SUPPORTED;
+        break;
+
+    default:
+        panic("%s: Unsupported ecall: FID: #%lx, EID: #%lx\n",
+              __func__, fid, eid);
+		break;
+    }
+
+    return ret;
+}
+
+VSBI_EXT_START(legacy, SBI_EXT_0_1_SET_TIMER, SBI_EXT_0_1_SHUTDOWN,
+               vsbi_legacy_ecall_handler)
+VSBI_EXT_END
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 01 10:24:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 10:24:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175650.1500270 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ14x-0004FY-Nv; Mon, 01 Dec 2025 10:24:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175650.1500270; Mon, 01 Dec 2025 10:24:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ14x-0004FR-L5; Mon, 01 Dec 2025 10:24:23 +0000
Received: by outflank-mailman (input) for mailman id 1175650;
 Mon, 01 Dec 2025 10:24:22 +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
 <SRS0=tSLg=6H=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vQ14w-00041l-8H
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 10:24:22 +0000
Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com
 [2a00:1450:4864:20::531])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e5df3a98-ce9f-11f0-9d19-b5c5bf9af7f9;
 Mon, 01 Dec 2025 11:24:20 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-640aa1445c3so6082833a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 01 Dec 2025 02:24:20 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-647510508e1sm12104724a12.27.2025.12.01.02.24.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Dec 2025 02:24:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e5df3a98-ce9f-11f0-9d19-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764584659; x=1765189459; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kL4brVLXUEDyfmktWCJt4oVhAjrxxXr8mVfyNYUUh4g=;
        b=QyrNZBAbhL3d18StdX1x9+dFgrViHwJ41ovITKtg7LNT4mYOWdmWeBHIWKsa9WxTyI
         bJPuMCpLFhT2xBnnyFwLPDaWLwomKwB2XX9wGeVC2/EgPO0Y6SQlyxuOGRA2rYq2JabO
         CRNocLGx3Ddk4cfobOFK5xe9Je0lmzXxYiqDYoZRO0h6ONzmPBPmPkUM7kTJ1+kcERJh
         t+CeVvWyvygbLI3UvD1LV5YvQH5UwzC/EgmfW5FQZylK3rdqdMIIJkutycIPCbud+zIx
         XtWX9Fu8Ap89BPa8uJmiQ6QtAIBVUDdIVLX3EWOMn2aB0tjMbU3zp1lIstFjPtHFBwHN
         Jf1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764584659; x=1765189459;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=kL4brVLXUEDyfmktWCJt4oVhAjrxxXr8mVfyNYUUh4g=;
        b=T4KqQDAhwMwBsSMqbddh0BcF16zyLTS/4bX7JWwwqGccneVzy2VsBLlM5bkMrFsmvX
         KwmHdgYpU9Z0fu94c7+1pSf55y1SnYTzrEe6SoDSC7Wl2SE5AtusbnqDygDE+H1WDwIX
         O/IwOi+/Tg6Z/kbLSYvb/e0cZatMyfWKIwMs/gADpnbLfY2h4Lj2cuyQWPYmZIjTlFaO
         zz4Iii+MrWy//6WSpV3QcRj2sACRgb+ydzBxE46K4e8KhrChjOhCOcaYuGe/YU2doMOV
         9j7JQCUifEgws/EPCX0tDHON41ao4tsQuiLiNWQ3jId8xUMzUasobOgQkwB6EKm3W+sW
         Lj1A==
X-Gm-Message-State: AOJu0YzKuGaIU64JtcbampMKOZkE+qYIhrl0yXa0Dc0JUx0dMal/MVtf
	vnHjoFGTk6b3OWZOm2QNUuar/5xaPSJ1/VeKwsuhLeV/Uun+IROYhXrAuQjAOtkD
X-Gm-Gg: ASbGncszsRZOyGoTWQGp1xasgp5YIFm+N1ijxQ4YTbVgVwytCdzvlrcBgSrAaPAEip6
	JcVKcPeBviN1/e+C0LQQR72DPXUZo/otUJrdfEpYHGjiokVTJnLg/WIbDLjKU6YTiH4SK9p148a
	uTLP7szPNtttI31RHmdrfDmog43SGrhxY6bkYakxtlDnaG23mcJXWzi2kLKAk8YTno8ZXP5oTGE
	SqPPkvvhj7EtDhqzxTVByNFII9Z3c8xgfqDDb3GTmCSUejuM41Bif5nr0TQ9PkRKi0dc4fKWk6J
	7U7+oxXplsY6sRhr50BEvuP+jcm4FCyVp60vo/toNvddyUt4dOnJgoVaWxJkeE9x1HDbo5juUYn
	UgrqybTTJzTlDhcIbL8j9HnbruQIlsVHxig8L6tvj3V72iJK1CZcNO+rMgPPSHTaUCgf3sUK4kl
	kajXlI0hyWGRXv6RxdAf5YKZl4DmS5Zw2I0O9e4p8geQ/sTvTktGxr/Ps=
X-Google-Smtp-Source: AGHT+IFZryrOYkb6E/sYYZM1iPLmqTVJAElhSu2fpr7iBRoTe37+HPbTSir8+/dPNhmm4EjTHBrQVQ==
X-Received: by 2002:a05:6402:3494:b0:647:5c27:5440 with SMTP id 4fb4d7f45d1cf-6475c2754b6mr11197062a12.24.1764584659125;
        Mon, 01 Dec 2025 02:24:19 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 1/3] xen/riscv: introduce vSBI extension framework
Date: Mon,  1 Dec 2025 11:24:08 +0100
Message-ID: <3b67330dc4c1aa053eb15261a559e7b4eac3f493.1764582112.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1764582112.git.oleksii.kurochko@gmail.com>
References: <cover.1764582112.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This commit introduces support for handling virtual SBI extensions in Xen.

The changes include:
- Added new vsbi.c and vsbi.h files to implement virtual SBI extension
  handling.
- Modified traps.c to handle CAUSE_VIRTUAL_SUPERVISOR_ECALL by calling
  vsbi_handle_ecall() when the trap originates from VS-mode.
- Updated xen.lds.S to include a new .vsbi.exts section for virtual SBI
  extension data.
- Updated Makefile to include the new vsbi/ directory in the build.
- Add hstatus register to struct cpu_user_regs as it is needed for
  a check that CAUSE_VIRTUAL_SUPERVISOR_ECALL happens from VS-mode.

The implementation allows for registration and handling of SBI
extensions via a new vsbi_ext structure and ".vsbi.exts" section,
enabling extensible virtual SBI support for RISC-V guests.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/Makefile                |  1 +
 xen/arch/riscv/include/asm/processor.h |  1 +
 xen/arch/riscv/include/asm/vsbi.h      | 31 +++++++++++++++++
 xen/arch/riscv/traps.c                 |  8 +++++
 xen/arch/riscv/vsbi/Makefile           |  1 +
 xen/arch/riscv/vsbi/vsbi.c             | 46 ++++++++++++++++++++++++++
 xen/arch/riscv/xen.lds.S               |  7 ++++
 7 files changed, 95 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/vsbi.h
 create mode 100644 xen/arch/riscv/vsbi/Makefile
 create mode 100644 xen/arch/riscv/vsbi/vsbi.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index e2b8aa42c8..7bfe7024ef 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -17,6 +17,7 @@ obj-y += stubs.o
 obj-y += time.o
 obj-y += traps.o
 obj-y += vm_event.o
+obj-y += vsbi/
 
 $(TARGET): $(TARGET)-syms
 	$(OBJCOPY) -O binary -S $< $@
diff --git a/xen/arch/riscv/include/asm/processor.h b/xen/arch/riscv/include/asm/processor.h
index 39696fb58d..79d02c3dd2 100644
--- a/xen/arch/riscv/include/asm/processor.h
+++ b/xen/arch/riscv/include/asm/processor.h
@@ -49,6 +49,7 @@ struct cpu_user_regs
     unsigned long t6;
     unsigned long sepc;
     unsigned long sstatus;
+    unsigned long hstatus;
     /* pointer to previous stack_cpu_regs */
     unsigned long pregs;
 };
diff --git a/xen/arch/riscv/include/asm/vsbi.h b/xen/arch/riscv/include/asm/vsbi.h
new file mode 100644
index 0000000000..984e7acf7b
--- /dev/null
+++ b/xen/arch/riscv/include/asm/vsbi.h
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier:  GPL-2.0-only */
+
+#ifndef ASM_RISCV_VSBI_H
+#define ASM_RISCV_VSBI_H
+
+struct regs;
+struct vcpu;
+
+struct vsbi_ext {
+    const char *name;
+    unsigned long eid_start;
+    unsigned long eid_end;
+    int (*handle)(struct vcpu *vcpu, unsigned long eid,
+                  unsigned long fid, struct cpu_user_regs *regs);
+};
+
+#define VSBI_EXT_START(ext, extid_start, extid_end, extid_handle)   \
+static const struct vsbi_ext vsbi_ext_##ext __used                  \
+__section(".vsbi.exts") = {                                         \
+    .name = #ext,                                                   \
+    .eid_start = extid_start,                                       \
+    .eid_end = extid_end,                                           \
+    .handle = extid_handle,
+
+#define VSBI_EXT_END                                                \
+};
+
+void vsbi_handle_ecall(struct vcpu *vcpu, struct cpu_user_regs *regs);
+const struct vsbi_ext *vsbi_find_extension(unsigned long ext_id);
+
+#endif
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index f061004d83..dfe1a5a112 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -15,6 +15,7 @@
 #include <asm/processor.h>
 #include <asm/riscv_encoding.h>
 #include <asm/traps.h>
+#include <asm/vsbi.h>
 
 /*
  * Initialize the trap handling.
@@ -114,6 +115,13 @@ void do_trap(struct cpu_user_regs *cpu_regs)
 
     switch ( cause )
     {
+    case CAUSE_VIRTUAL_SUPERVISOR_ECALL:
+        if ( !(cpu_regs->hstatus & HSTATUS_SPV) )
+            panic("CAUSE_VIRTUAL_SUPERVISOR_ECALL came not from VS-mode\n");
+
+        vsbi_handle_ecall(current, cpu_regs);
+        break;
+
     case CAUSE_ILLEGAL_INSTRUCTION:
         if ( do_bug_frame(cpu_regs, pc) >= 0 )
         {
diff --git a/xen/arch/riscv/vsbi/Makefile b/xen/arch/riscv/vsbi/Makefile
new file mode 100644
index 0000000000..574c8ff78d
--- /dev/null
+++ b/xen/arch/riscv/vsbi/Makefile
@@ -0,0 +1 @@
+obj-y += vsbi.o
diff --git a/xen/arch/riscv/vsbi/vsbi.c b/xen/arch/riscv/vsbi/vsbi.c
new file mode 100644
index 0000000000..cd119ce0d6
--- /dev/null
+++ b/xen/arch/riscv/vsbi/vsbi.c
@@ -0,0 +1,46 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/sched.h>
+
+#include <asm/processor.h>
+#include <asm/sbi.h>
+#include <asm/vsbi.h>
+
+extern const struct vsbi_ext _svsbi_exts[], _evsbi_exts[];
+
+const struct vsbi_ext *vsbi_find_extension(unsigned long ext_id)
+{
+    const struct vsbi_ext *vsbi_ext;
+
+    for ( vsbi_ext = _svsbi_exts; vsbi_ext != _evsbi_exts; vsbi_ext++ )
+        if ( ext_id >= vsbi_ext->eid_start &&
+             ext_id <= vsbi_ext->eid_end )
+            return vsbi_ext;
+
+    return NULL;
+}
+
+void vsbi_handle_ecall(struct vcpu *vcpu, struct cpu_user_regs *regs)
+{
+    const unsigned long eid = regs->a7;
+    const unsigned long fid = regs->a6;
+    const struct vsbi_ext *ext = vsbi_find_extension(eid);
+    int ret;
+
+    if ( ext && ext->handle )
+        ret = ext->handle(vcpu, eid, fid, regs);
+    else
+    {
+        printk("Unsupported Guest SBI EID #%#lx, FID #%lu\n", eid, regs->a1);
+        ret = SBI_ERR_NOT_SUPPORTED;
+    }
+
+    /*
+     * The ecall instruction is not part of the RISC-V C extension (compressed
+     * instructions), so it is always 4 bytes long. Therefore, it is safe to
+     * use a fixed length of 4 bytes instead of reading guest memory to
+     * determine the instruction length.
+     */
+    regs->sepc += 4;
+    regs->a0 = ret;
+}
diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
index edcadff90b..2967f00ac5 100644
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -91,6 +91,13 @@ SECTIONS
 
     DT_DEV_INFO                       /* Devicetree based device info */
 
+    . = ALIGN(POINTER_ALIGN);
+    DECL_SECTION(.vsbi.exts) {
+        _svsbi_exts = .;
+        *(.vsbi.exts)
+        _evsbi_exts = .;
+    } :text
+
     . = ALIGN(PAGE_SIZE);             /* Init code and data */
     __init_begin = .;
     .init.text : {
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 01 10:44:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 10:44:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175700.1500319 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ1Ok-0000Rq-44; Mon, 01 Dec 2025 10:44:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175700.1500319; Mon, 01 Dec 2025 10:44:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ1Ok-0000Rj-1V; Mon, 01 Dec 2025 10:44:50 +0000
Received: by outflank-mailman (input) for mailman id 1175700;
 Mon, 01 Dec 2025 10:44:49 +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 <SRS0=0dw1=6H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vQ1Oj-0000Rd-NL
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 10:44:49 +0000
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com
 [2a00:1450:4864:20::432])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c1e58dc1-cea2-11f0-9d19-b5c5bf9af7f9;
 Mon, 01 Dec 2025 11:44:48 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-42e2e47be25so735578f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 01 Dec 2025 02:44:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42e1ca1a38bsm25930319f8f.24.2025.12.01.02.44.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Dec 2025 02:44:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c1e58dc1-cea2-11f0-9d19-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764585888; x=1765190688; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KW1ez9P9UYF74AAJFz6n/3tdo0OGkcdr8NW3Jeb7wWo=;
        b=DqGUXyUGlUgLPRu6NjIPwotGT+jQOuCH4pq2xeDR6gE4yT2np78PHzTtmQNENMydLd
         y1tArT+0uA7clwxaU6TDKQ1dXddt/mVto/O7oOD24vCkQqqTlrnOeG9F4q+YgIfWKLkE
         cAh2qVPyoItMPd/xgwoJZp5TphX46sVlX/uO7YUeLFS6IX9J89adA6QgcE4tIERg84nk
         jOmmy55VmGkoi88gVuUdK2PnPCt3oyvb5KBPSNLLjxXwGHfzPdV7HdizHLVdxyx7UqOi
         gGjjPKWxOfDmvA3B4dVHKshRO6q7roGZ8aI3xI1K2C1myhoYFGEwEmq3NCLztSFx/Frp
         66PQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764585888; x=1765190688;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KW1ez9P9UYF74AAJFz6n/3tdo0OGkcdr8NW3Jeb7wWo=;
        b=sayiKzJjgehrh9r2H6nUgPwmiuYXsybN8kFPBD85wluM60wcAXj5bVUNc5QvnoVwHQ
         AnmKXEN10uNWyluAtl45pEGtBq0XR4az3IeyqUyMITohknkw6QxMq8UjY9AfwTYhZMmx
         2Txcw0A8lomd9ACGZ/NnFqCM5a+fdk0togJANZzdAaSp/Fln1rg7Agwhg0mFIPjmzHrf
         I5W0YesnMI/gNG9warIEMtk8xz8WObZUCY6VQ7cb9g1BTtnp5BdWUSUHX/JkDC6OqC6m
         EdVaHcAE3Hzyy10Dy677Hfllwpjd2VbdXJ7a9ElGl8o+zgG9EROEewLu3sJk0pVuOyRi
         vFPg==
X-Forwarded-Encrypted: i=1; AJvYcCUCCOS2NqE+JJ1IfOqeM96jUI6DYWb9+04XiB514q3Ml5QR8ACwKYH6mHozqCVqbtZtRud5bsQFv5g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwsZSC8zUqEMGmfH3kBnSLkUqnDKrgGDqCobmyw/GWPa/ySN/rl
	+jCKKKItiP+Fynl5IVDc3V6+dyFHgXNFKGj6wAtm9bxQmyOWZ7LOiCNOLwkv0m6Bww==
X-Gm-Gg: ASbGnctygFA69Ja7Uh5cD3tMX3lh2l+p9IUcvJLnILqe/xNXlxhGanzbIl6w0bR545r
	PmXDslrtULV7iwLgoUiAm4iRzbhoeUNWKv9hLeX+U+rYD82YZusdvs3csCIevicTVFdSLdjkPi8
	8ZdWIG8zBN/NMy5e62vQjQg//OR1VkYakejpJDdWy1J0Nl/tzRVhr0VZ9weyyizPTEJov+boPQM
	YXeo59pG+xHBDtGS44PgJ4vJ9ED/tISzjaHh5Wl42tqhLAn6s3CqDaPC5c6h+MKWqVSFVXrfVrm
	NprhlBikO8x065OjXOC8D1A8y0bj0jv7n1kR8K49qcsyFzDNW+7h3bPthKjvsKhzHVW/3s97jh6
	NVXz28NDIdu8Tnxlyw+idaIGOvb/cBXwbXoqhPMsdgGS/MGrLo/j4A1AGLNrCFBCxl+ghP6eLy8
	IC/pXZ0CS2j7gsSSp4LIx1BM6ESWX7vFsLValMLvJKNuRgz5uIZ8x9mvGzx9aNBfI8695KuHUZW
	l0=
X-Google-Smtp-Source: AGHT+IEIF/FaVxkT9ImPuJTxN3AAVqh6D6bVUbL4mgGamR32XOaSBxFialUqSLdLPFEQL1FhZNU0RQ==
X-Received: by 2002:a05:6000:430d:b0:42b:36f4:cd24 with SMTP id ffacd0b85a97d-42e0f204b52mr27872695f8f.24.1764585887448;
        Mon, 01 Dec 2025 02:44:47 -0800 (PST)
Message-ID: <3678d8ef-8e7d-4667-ac3c-083add25c426@suse.com>
Date: Mon, 1 Dec 2025 11:44:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: move vcpu_kick() declaration to common header
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <b009997b5f3e7489fadb5f62f1623fc4d13bf271.1764344988.git.oleksii.kurochko@gmail.com>
 <0173e0bd-130a-4966-b0f1-882f8dd78aa1@suse.com>
 <74fdbc0e-7919-4a89-8cd4-cc6cf3ffc402@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <74fdbc0e-7919-4a89-8cd4-cc6cf3ffc402@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.12.2025 10:24, Oleksii Kurochko wrote:
> 
> On 12/1/25 9:40 AM, Jan Beulich wrote:
>> On 28.11.2025 17:23, Oleksii Kurochko wrote:
>>> The vcpu_kick() declaration is duplicated across multiple
>>> architecture-specific event.h headers (ARM, x86, PPC).
>>>
>>> Remove the redundant declarations and move vcpu_kick() into
>>> the common xen/include/xen/sched.h header.
>>>
>>> Drop the definition of vcpu_kick() from ppc/include/asm/event.h,
>>> as it is already provided in ppc/stubs.c.
>>>
>>> Add inclusion of xen/sched.h in the files where vcpu_kick() is
>>> used.
>>>
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> Thanks.
> 
> 
>> albeit preferably with at least ...
>>
>>> --- a/xen/arch/x86/cpu/mcheck/vmce.c
>>> +++ b/xen/arch/x86/cpu/mcheck/vmce.c
>>> @@ -12,6 +12,7 @@
>>>   #include <xen/event.h>
>>>   #include <xen/kernel.h>
>>>   #include <xen/delay.h>
>>> +#include <xen/sched.h>
>>>   #include <xen/smp.h>
>>>   #include <xen/mm.h>
>>>   #include <asm/hvm/save.h>
>> ... this change omitted. This file includes the private "mce.h", which in turn
>> includes xen/sched.h.
>>
>>> --- a/xen/arch/x86/pv/traps.c
>>> +++ b/xen/arch/x86/pv/traps.c
>>> @@ -10,6 +10,7 @@
>>>   #include <xen/event.h>
>>>   #include <xen/hypercall.h>
>>>   #include <xen/lib.h>
>>> +#include <xen/sched.h>
>>>   #include <xen/softirq.h>
>> Somewhat similarly here, xen/event.h includes xen/sched.h. That's less obviously
>> guaranteed, though, so making the include explicit here is likely okay.
> 
> I am generally okay with not adding what is probably an unnecessary new header
> inclusion, but it is unclear to me why we should avoid including a header just
> because it is already included by another one. In other words, if one day someone
> removes "xen/sched.h" from "mce.h", is it acceptable for this to result in a
> compilation error? How do we decide when such an error is acceptable and when
> it is not?

This is precisely why I made the distinction between global vs private headers.
Relying on private headers to have certain #include-s is imo always okay. For
global headers that's less clear, ...

> Should the default behavior be that if header X is already included indirectly
> through other headers, there is no need to include header X directly?

... and hence I wouldn't want to give too much of a rule of thumb. One may say
that if a (global) header, to fulfill its purpose, absolutely has to include
some other header, then one can rely on this when using that header. But in
most cases the situation is somewhat blurred, so it's case-by-case decision.

What commonly happens is that #include-s are added to keep the build working
in all configurations. But #include-s typically wouldn't be added "just because".

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 11:34:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 11:34:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175711.1500330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ2AY-00076I-Me; Mon, 01 Dec 2025 11:34:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175711.1500330; Mon, 01 Dec 2025 11:34:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ2AY-00076B-Jf; Mon, 01 Dec 2025 11:34:14 +0000
Received: by outflank-mailman (input) for mailman id 1175711;
 Mon, 01 Dec 2025 11:34:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RN/T=6H=epam.com=Oleksandr_Tyshchenko@srs-se1.protection.inumbo.net>)
 id 1vQ2AX-000765-AX
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 11:34:13 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a6005852-cea9-11f0-980a-7dc792cee155;
 Mon, 01 Dec 2025 12:34:08 +0100 (CET)
Received: from DB7PR03MB3577.eurprd03.prod.outlook.com (2603:10a6:5:3::28) by
 VI2PR03MB10596.eurprd03.prod.outlook.com (2603:10a6:800:26d::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Mon, 1 Dec
 2025 11:34:04 +0000
Received: from DB7PR03MB3577.eurprd03.prod.outlook.com
 ([fe80::49f8:7615:b631:1a66]) by DB7PR03MB3577.eurprd03.prod.outlook.com
 ([fe80::49f8:7615:b631:1a66%5]) with mapi id 15.20.9366.012; Mon, 1 Dec 2025
 11:34:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a6005852-cea9-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Tth1eWm0dDDYzRC0HAe4x6hs2Xt6o2QmbhTQOr/86zeZuQaZ7AIrR47j8nVDBp4qCV30D6dIQ4ZeEE87W1zerX3f4RkA8KPiEBD4TyKH9EInKoYKy1upucdZOekA1tuS+M2RdljmBUwJWc/KmcPKhsv3wbHKOcmV9b3frNXatAkEotSdjjX7Y5lPWxz3OlvHMbapY5YmyR+KWutKeuFTvrq/sGdsFStu5JrVlr1JVMILZMkVcArIEdkcRmlfGduvs9sAacyvfoh+zQvzboDu2L4EVr9q4J6pumYwJkw8k6bk1+SPqBaOVWCy2Ej4pI6gNLUqNqi7dTZI1T7Cy/Ec1w==
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=kY+sMmVl54NGo+Pk5wX1Z0fiWE7PBAn7tS4jA5GOxVs=;
 b=Ewwq7VOBKzVpEP3/SfC14ZR40ZiWcAscht2T0AZL+cx/l8v2nkSY3usAIvxG6ATwLLelHfKRQC/iNDyPwjEwE0HGPWaHm/5LhM026tiHJk2hJQQ9EeiPcJmcURezMk9bVnO6XTaf+byvT8YddbV8b7FnGJDxUP/5/8pWxdMBKEQSCLxKNWLz9S4RhrKwQ88hjXuqkVNn1+UP4b8EPI3QUE6Ro4V1v1KHGtdWvL2ihtvsMKObEHXnsAUIezqNnN0XgFlcOULnb57tg9t7ZP2DM/mYyD3YsJ+5NWDP9M0dn6mdlLQUaYnB7aRMiInEevY147cHCWquZ1X/pfKPquAn9A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kY+sMmVl54NGo+Pk5wX1Z0fiWE7PBAn7tS4jA5GOxVs=;
 b=Trh1AWjgh5j5xugfaMLr+t9lSBDALBFeyVEqV53KM3JeIh6DyQfQFbPeycP2L6p6Y3Zri4gSjoLHF+nEXw0BzhC7nKIzoSwLvL2b/ksXGMSqPjFbc2pqPPxrvFbv81DWYeT/NaeRWsOVaXc3QNwAEgavVPFCGvMkJXP2MKHmuKm8zkuVeJUTLqj5dUwHPvKoDh0aIp8vpqBVHNjsFAavVA9FrVjvS9Twf6xgqIP2U49YstvJDAZWJhH7nXWFlTBPyI/q4nKN5zEGQjeZKl4evLuHHX4arkdvljSZlkRRlpTHsW0rX0ipDIPaMiqYzRLhwOcezODf10miMVoYBWgmfQ==
From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Michal Orzel <michal.orzel@amd.com>, Ayan Kumar Halder <ayankuma@amd.com>,
	Stefano Stabellini <stefano.stabellini@amd.com>
Subject: [ImageBuilder][PATCH] uboot-script-gen: Add support for "passthrough"
 property
Thread-Topic: [ImageBuilder][PATCH] uboot-script-gen: Add support for
 "passthrough" property
Thread-Index: AQHcYrZlLhWjOcFOMESo6Ja5HoKvcA==
Date: Mon, 1 Dec 2025 11:34:04 +0000
Message-ID: <20251201113403.2898396-1-oleksandr_tyshchenko@epam.com>
Accept-Language: en-US, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB7PR03MB3577:EE_|VI2PR03MB10596:EE_
x-ms-office365-filtering-correlation-id: 27394682-fa47-4661-b882-08de30cd8812
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|366016|1800799024|376014|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?oLeDgkEepHhd8GMlzcUI3RPyvS+CG+Sgm51/Sap/x1fsFA1onXS51zIX9d?=
 =?iso-8859-1?Q?eBGdfmxre6VwriS5CAIC6mSjP2Yfj4zX3d17H/Ovm22UCK394iEdUZgbhP?=
 =?iso-8859-1?Q?gsFtPttCS1Rp99NqCMmpYYnz41iKXWRMMn8Zv5dQcXt+4QN0C1PFY+yd2w?=
 =?iso-8859-1?Q?PQ4nbAuZONVbKAU3ns9sSLmGtGsCIJx/VwQpzM2KOuj1P+2tfeZjH1ji15?=
 =?iso-8859-1?Q?NsJJQFTP2QqjYZr7zduAAGpKSB4X2agsWnmnGzQUWZlhX2VWXXZAUIUAzl?=
 =?iso-8859-1?Q?QGgbkg4OksbT8YWr6dNi4U0IpU5o5hzhA9YFVGfZ65W17PN09sMtaO48VR?=
 =?iso-8859-1?Q?ieNvUQQoTtNOMbU++dTTWuLykl8Mvlxpc+DwLNRbG42N3L6OihhO5EjmDi?=
 =?iso-8859-1?Q?p6RMdIMxcBQGGMFlQCckp12y9tmMFiaftlLOtZStu7fdnDesujaFFckGmT?=
 =?iso-8859-1?Q?serP3Q1GlD5Itb1Nf3hmK3T4goYj6fUnwTgMFgadhjsT/bz2GFpONR1Yrn?=
 =?iso-8859-1?Q?z20rRSYWJSmModYoE9ihatA3+4PGZZ4UkTJRbG4o9ul0HrpgkM1F2L+LLG?=
 =?iso-8859-1?Q?uwfx3SYwrpHYoxwPinmRCl1gNemS1iFxJ+h476kqVXH86692vqtpQ/8/Tj?=
 =?iso-8859-1?Q?zAcA/uWU1JTmtNoKG+ZTcl+wDvKLRgPFIr9qP5OFiQqu88Zv1bAf/5BEec?=
 =?iso-8859-1?Q?kYHPet5kvXijSAFprXBy1f8ET0Rydja4750NVihyKyfm6HuQkTLFwHUeq7?=
 =?iso-8859-1?Q?huLFkxEWH/pyfMWbmXJ+eCmQTJ4g59Tf8c8zRHLFXmoG6A8V0aW8GqsVNa?=
 =?iso-8859-1?Q?zjW+nw0eIuTFFgIV2lJEZUXeruCqn19CFXa/7IhttoUW9OA4PtcEbMvyLA?=
 =?iso-8859-1?Q?V91vbpy105dkxjUjmGlOAMroDwPpWF1Q5Socy+yt3ZUMbIzmI//UMuw3We?=
 =?iso-8859-1?Q?nWAocUB0HC82CgQl3S19gJXgezaujZBg/93hI1mahupl22yJciOeu/HeUF?=
 =?iso-8859-1?Q?dOmdSQwhF//PRj46zNwhNEcaKqyJNrsL1hD+FmgLC2KLzUR1lOIJjL1K1D?=
 =?iso-8859-1?Q?x1IGG8EiaE0kwVsTOnLw/wfGr2RLatcGVpZsfHc1zgypE+x3OpU7CGlOkD?=
 =?iso-8859-1?Q?jc4AJzgFFuQSw75vPO5EGM3XuiDNUtlHDohxhgrjfZ32J89A6mCxS65OSp?=
 =?iso-8859-1?Q?aQjlLF8KF9XA6/31WxrlzJZuBjFwXs/oIlk8JO2i1vbL3AC12Cm8jo/PHz?=
 =?iso-8859-1?Q?qsHAfMybHOc6piqeGfc11YUDenP4xhjC0O9YQ0YmxuW7snOUfAexAnDTMo?=
 =?iso-8859-1?Q?VVtHRJs5mVl7iGyZhY23l6wzYX4duxKDC1mZFsUFNOOwwjqbZpqLMXHksR?=
 =?iso-8859-1?Q?uwy2mWb2Ewp7smLmcaVgme/v6vH1cHxLYyIi+OGPUBhn20MObCpSw0PVtJ?=
 =?iso-8859-1?Q?4y5gx5JzwmerVuhWDnKcKZ7YT5JxWSBEKhLfx2uMjrUaKZcC3TB+TDc8mT?=
 =?iso-8859-1?Q?k6lbgH5YPRvqbXrp5uH1VgySVGCccs4YjR7XwDOQJx/eOoU+bmDltavl0h?=
 =?iso-8859-1?Q?iPyXlyo2YGTzSZqG3bWPM8/S29MR?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR03MB3577.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?qShyKq2GF2B2JAcTCwYJLXkGPfXJbiQDw6mpQpZdIClwNlCluC2F7Q38x3?=
 =?iso-8859-1?Q?DQZ/miJc4HwLRgKjVjZgycj3hIWbKx50Q9WSm7afFeoXPC2J2acQ+tBpKz?=
 =?iso-8859-1?Q?PHM93a3ieh9pX8sF5dtZPqmxSy9VTatdbhPCk2bzXXckRqlt58AamSYcAp?=
 =?iso-8859-1?Q?H6EGQdkD38/DeAq/yroZ1lBdX/1PPtx6++LHpAUAMiMJHCIbMUN2s+Ew2h?=
 =?iso-8859-1?Q?o9JOvhwF6rxcLL8qmLAF1F+IyH5JIJKN6qBtXCdVsERNUzpcBSx5RJKwwf?=
 =?iso-8859-1?Q?bSwvulhxwSea4k43xSeHHy2zEMznBXFZIJoMga9W/IB+ZydZmJVmPXn2ZH?=
 =?iso-8859-1?Q?b0TG7S8/b2FdfdqWPE6MaSiSK9F2cCOO7qsIt+ABV/g6lINrJ1q7cVR5yW?=
 =?iso-8859-1?Q?yEtfYw7W7k/tcw7WkrmXaBziWnD8IDeNGXjNrq6U4cix4fro1+4eY0+IQf?=
 =?iso-8859-1?Q?cOZls9bp3lsU0cGc+9xPSY75B6C/Yu0Y2x2eCGodAsv4Zva5X4bhrYBU6a?=
 =?iso-8859-1?Q?uaz7TkE4G2J6a4EBnIIdv0T7z8g0lWXrRInMpLpoWU4jBy8rZvT0F5ic+7?=
 =?iso-8859-1?Q?7GoAqRa0LUYKjS5cUibebNGP3vsUa87uMTNpWgG+V7cDjictcK344k0uMV?=
 =?iso-8859-1?Q?Iy9A5jAUFOjwTdPsXpQO0lN84IGyKjtHaDmVHeIdZHc6acBvMzn4AbdsoM?=
 =?iso-8859-1?Q?Ct1aOgj1M4KYffTLtCabzhW8JsV1wsppwMfT7axpWkqk8vMi+UzNk28zm7?=
 =?iso-8859-1?Q?JeHCYwf6jQlbw4ydYe+Th4Db3eMpAhn3GV6EwRbNnUAd5yPGcyU86DtNRI?=
 =?iso-8859-1?Q?H4cTe4dbCGK2jPo0a6Kl2P8f18jSl+ij/ltwE6pDxSaVRazHpozIo65NLG?=
 =?iso-8859-1?Q?ZUPpnRVjYauP08SqWDoFseXJhuKgAq34VhI50oDulk+F+2fGf9oOZye/SK?=
 =?iso-8859-1?Q?MksocttSOWGhaok6YJZF+pWBAGkmDgKl0XAh4q6EjaanHaQWRJUsEA456k?=
 =?iso-8859-1?Q?yfmSYWWcrCCBLpjPgfYPkj0IA4EzRu4vkD9+e+Fd0Y8NVa3LGxLxcCc1GP?=
 =?iso-8859-1?Q?gbjBejxlgszFPlB1l2q2kDXfdgRLStLfCeet2OKLUBeAnrX1RRbPZt61Nm?=
 =?iso-8859-1?Q?end9fgni6/lp0t7MgEod8CgAhjDrQoo+Jz5CuyCzJkYNPiFvR/tL4IK/4y?=
 =?iso-8859-1?Q?fmHwAjZwVn4+N2W8rrgvwcICSOq1yYUjgkcBLc1lNwODhofQZDXztGoXAo?=
 =?iso-8859-1?Q?znCUs1oVMnrJr4vlBV9xtLDtUbED1k+pbsz777JDtaNunuvz3q6gyPSR2n?=
 =?iso-8859-1?Q?cmAVKMfZqmZ61hTbzYKvJwyMQkH2bITOOqxGY8WfQi/NXfc8zSvaoEZDfV?=
 =?iso-8859-1?Q?KN7VWO+GrupQk+woXG561ZY7lWcQamff7TUtY6ivxn7KwtJFyS0NNwyBWo?=
 =?iso-8859-1?Q?o7pFt1DUP+g79yxjartrcx+5Ykcq1FCM1n0GQFm2jPxzibQSghK/Pc/ulb?=
 =?iso-8859-1?Q?c3hSwjIHU6NC0/T4exKk4V+jcex5XxaxjeKCCywMZST3LH1OJDBOtBfHuJ?=
 =?iso-8859-1?Q?Tj8TRzXlNhSqUmSSyGYcYB4Q77uiV/mEjuHmL5GNoT3wAzFjfRMsy6XoGj?=
 =?iso-8859-1?Q?J7zlwpEYWZTeXsQf42xWOHe/3mjBUxy6Ag/I9NB+aRxfLiH739VnwldnkU?=
 =?iso-8859-1?Q?6LyaMsaZeGcbmAG+deM=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB3577.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 27394682-fa47-4661-b882-08de30cd8812
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Dec 2025 11:34:04.2132
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Eojb2lKqpnOJ3h8bo2PdkWbQLrLUUcLthJ7tE1lmtg912Oe/cMw0OGgsEntRose/qeuzmYe2kw4NnHEikZE4RkIGFxFkDSeDlp/w+H0QtL8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR03MB10596

This property is used to grant a non-hardware domain
permission to use the IOMMU, which is a prerequisite
for device passthrough.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
 README.md                | 6 ++++++
 scripts/uboot-script-gen | 5 +++++
 2 files changed, 11 insertions(+)

diff --git a/README.md b/README.md
index 0063747..983cbbc 100644
--- a/README.md
+++ b/README.md
@@ -338,6 +338,12 @@ Where:
       assigned to a regular DomU.
     - An explicit non-zero ID cannot be assigned to the hardware domain it=
self.
=20
+- DOMU_PASSTHROUGH_PROP[number] is optional string used to permit a non-ha=
rdware
+  domain to use the IOMMU, which is a prerequisite for device passthrough.
+  If set to "enabled", the passthrough =3D "enabled"; property is added to
+  the domain's device tree node. This option has no effect if the IOMMU is=
 not
+  active.
+
 - LINUX is optional but specifies the Linux kernel for when Xen is NOT
   used.  To enable this set any LINUX\_\* variables and do NOT set the
   XEN variable.
diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
index 78a731d..d18ac55 100755
--- a/scripts/uboot-script-gen
+++ b/scripts/uboot-script-gen
@@ -509,6 +509,11 @@ function xen_device_tree_editing()
             dt_set "/chosen/domU$i" "domid" "int" "${DOMU_DOMID[$i]}"
         fi
=20
+        if test "${DOMU_PASSTHROUGH_PROP[$i]}" =3D "enabled"
+        then
+            dt_set "/chosen/domU$i" "passthrough" "str" "enabled"
+        fi
+
         if test -n "${DOMU_SHARED_MEM[i]}"
         then
             add_device_tree_static_shared_mem "/chosen/domU${i}" "${DOMU_S=
HARED_MEM[i]}"
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 13:04:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 13:04:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175726.1500341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ3Zk-00013m-4I; Mon, 01 Dec 2025 13:04:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175726.1500341; Mon, 01 Dec 2025 13:04:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ3Zj-00013f-VU; Mon, 01 Dec 2025 13:04:19 +0000
Received: by outflank-mailman (input) for mailman id 1175726;
 Mon, 01 Dec 2025 13:04:18 +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
 <SRS0=pBcI=6H=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vQ3Zi-00013X-GV
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 13:04:18 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d3de646-ceb6-11f0-9d19-b5c5bf9af7f9;
 Mon, 01 Dec 2025 14:04:15 +0100 (CET)
Received: from MN2PR07CA0001.namprd07.prod.outlook.com (2603:10b6:208:1a0::11)
 by CYYPR12MB8991.namprd12.prod.outlook.com (2603:10b6:930:b9::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Mon, 1 Dec
 2025 13:04:12 +0000
Received: from BL6PEPF0001AB4A.namprd04.prod.outlook.com
 (2603:10b6:208:1a0:cafe::e5) by MN2PR07CA0001.outlook.office365.com
 (2603:10b6:208:1a0::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Mon,
 1 Dec 2025 13:04:12 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BL6PEPF0001AB4A.mail.protection.outlook.com (10.167.242.68) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Mon, 1 Dec 2025 13:04:12 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 1 Dec
 2025 07:04:11 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 1 Dec 2025 05:04:10 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d3de646-ceb6-11f0-9d19-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sgjXdI2MNMxyxyjV6J4VzM2vtzGtTSt+FDU5I7s6MxyCXzxJJu4a9TkwTbI43sTFyved/DfbN3iv7jhbFh9wNDO89HJSxgACaW8CHfjjU7kGmAPWsJRBF/RjK47Kt4hNFoKbbWo/2eWaJkYunHLbY9vIRnxhf1N/FwMSsdq537O6OG9KpiA0Q8vD8kMz7yOdbFSs1G/Lwf5FcDHWy68zOhOvTTrbv4FkFGmLC9YqVbXjNjOLpXD7ljp38WW2im2T+LbZ29EIn1C0LzO6mFKgpQu3lVclu+FXlb1FKmrBmLC/CKiZizzhZ0pzGMPn+Owz+p9zASrnsyDnvWssh8CRfw==
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=whmVOzoWSekLtCBYL5R0EfBSnJ9cxpcTdcjA7bB6Nq0=;
 b=ODIUMBwG2roZY9p/Ti/W4rn7Jh9PvUEuhnJtQ06A5wnf4zstCejDGy8pOFRI2dxWj+KLLZ1s3KWNM3pzY1a0S3fYAl6Vy8wqNa6t1DnsPpfVPGDlRG1pP6fml2sU/lCiQfc+1oWv7zuZJT8huObTBXW58VNmG7soxvhS3xrgbfFnRkwNvdC60ta+VoYKDfvytIt8LXUJ7Ic8uCOMOx44o/pKuayBB2VAUlIJVqoW+iFTBhVLHObagEp0o/9zj6CQnm7BrvI04CnyjPKH0QYFbF9k8KwCr7O37hQyos/ETtgvRgwytiYL+mek7+jdHN8g4lPeaEkOouYrRUe91KTNmg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=whmVOzoWSekLtCBYL5R0EfBSnJ9cxpcTdcjA7bB6Nq0=;
 b=XKYeLhJIuYRaTSic01YD4cGdOurJq+896erFHIddzBerLL1Qruxv07dEAKq7/qyNBpveDUgUXsFCAJhKmBAyi/PslqfiuXWXQxdqLlNuvOUFG6/8enfpB5QMyUC2asf0UKn9Q2JNrw6jmbTGy2IbnNwts/O+nqw0e4RzupyiD+c=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <6203c8a3-9239-4476-945b-b3d563fd5685@amd.com>
Date: Mon, 1 Dec 2025 14:04:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [ImageBuilder][PATCH] uboot-script-gen: Add support for
 "passthrough" property
To: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayankuma@amd.com>, Stefano Stabellini
	<stefano.stabellini@amd.com>
References: <20251201113403.2898396-1-oleksandr_tyshchenko@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20251201113403.2898396-1-oleksandr_tyshchenko@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB4A:EE_|CYYPR12MB8991:EE_
X-MS-Office365-Filtering-Correlation-Id: d6148385-fee6-4bcf-6419-08de30da1f7c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?REVnMC94dkR0aWMvNmNBQUJLdGlVSG9LN2xaRlN2WGdLMnM3dG94S2hURjQy?=
 =?utf-8?B?N2FablVqbENVaXJuZFFtUjJvRHdNQkdOWHRQTEV0T3ZRSThidkVtbW5nSitD?=
 =?utf-8?B?MUQxMnJzcDhkNnMvSmc5V1d3MDVxRlVueUNidVRHOXdpVEJSc3dFZzJkTklI?=
 =?utf-8?B?RElWdkNkUkowRGtja2w1TTlXNm1pSFY3TldjY01SdndWL2hZakJLQm94NFZH?=
 =?utf-8?B?cld1NS82N2Mzb25HVTY4U0c5K1lrMFlTK3dmTDQvN015blhMYWtqT3NDeXc4?=
 =?utf-8?B?YUZSR0psZjZTQWQ2KzV3Q2VHd2RZckJ6bHlsK0JTMmJ0THQ3V1FDRzMzLzhL?=
 =?utf-8?B?UUs1ZkZjcHBTcDBZVXd0WTRXWWx4cVFWVlgyYmMyWktERHZPdDd6K2pkRmhu?=
 =?utf-8?B?dVQ3N0s0OGtyb0lwbTJEZ3JiS05XbGpBcGVVU3BCa3dKSGxmdlRVakFnUVp3?=
 =?utf-8?B?K1RuYU1Ud0QyUlAzcWxFWmNZa0pPMkE5ZEp6M1hNMHJuMjNjdk8vRmZGOUhE?=
 =?utf-8?B?bndNYit1RDQxVkRhTFpyY0crSlY4UTdValR6TVhWZlFqRHZGSVcvbjhCYTNG?=
 =?utf-8?B?QjdhbjV6bGVrZWhEZFdvR2JjRmplZEFhV1pWV1g5VjNPVFVZb21OZDloMHU5?=
 =?utf-8?B?RlpmTHhRMFpWNzhyWVpUZzhvSDJYOWpqbXpWRExsMEs5aFZFNmczN2NmQW16?=
 =?utf-8?B?UmR5WTFQR1dVV1h6MUJBNGMvcTl3a0llSko0bDdPaUdUT3lrSWtLNFZ5RGMw?=
 =?utf-8?B?M1RySHFpZzY0NE5zUGQ1Z3dBUHRyNm9xcXVuZngwdzRjOUFkY2d5NmpBbm5L?=
 =?utf-8?B?MzRTbnZNaXZ0VWRtRlFEZEF6SFhnZmcxdDNvcmlNMmI0OUpSOXVYRk0yYXBU?=
 =?utf-8?B?Z2lEbTFqMkdQdUltUnFPblFsTEJpekpKQjIrVnZqRWFzVUl6TXlXbjhmRExy?=
 =?utf-8?B?RkJSNXFDRWlDQ0MrNGY0WmQrdXZsV3RLNG0xUjdyQ2Jib2RVY0RUNFZ1bDVI?=
 =?utf-8?B?NnhWZ1pSM3AxY3N0amptU05TZFJmZVVDcmU1eU1tMlBFaVp4eldubG9rUEw1?=
 =?utf-8?B?UnJBVCs2RjI0d2toa0JyLzUxaUZXbmN0K0N4bWxVcGlpRk5YbmtrRUNRYmJJ?=
 =?utf-8?B?cVUzUHc1L2wyY3NtUVRiak9yTVBIbkFtbjdRQ1AxMEhKeFQyUlJtT0E3Q2VM?=
 =?utf-8?B?ajZoTzdRU3B0VjRvU2xMZVNoMjA0cmgvOTFZM1RSQ2F3NXliVEdBSUQvNXNR?=
 =?utf-8?B?c0NSUzBHT09nblRMbVU3Qk42NURMMnRZNitVSW9KeUdyUnR1L1lYUjluNmM3?=
 =?utf-8?B?Y2E1MlFlY2I5QWE3NmFRUXRaQkFJNndvVWgwNGRZYkNpS2hhS0t4VGFna0s5?=
 =?utf-8?B?RXNJdG12Y0RaQWJwZDZKalNMQ3hIelBLRjlneVkzbHMzdlhpRlo4YTN4c1p3?=
 =?utf-8?B?dFJzZllVR1FQNlQ2eW1KZmg1dm0zdVlQOHkxNE1xMVhVVnk1YnArWUhnY25v?=
 =?utf-8?B?Rkhwd3h1ZjArSEZsMHltYlZpaGhneGhsbm0wRU12Z3ZuRlczWEJicmhRRkFx?=
 =?utf-8?B?QWZLempUTFpOcSs1ODhXdEUvTUNYMnE1MDEyYUZQSVdpRmFYekxHS1YwRmFv?=
 =?utf-8?B?WkorMk4yVGFBdTJTakRqL2R1bWdMZVFOSE4xZ1RJanMxNnpIa3QyOFdOREpU?=
 =?utf-8?B?U05HNDd2L0hCdTBnOFlSeEJqcjZNeE1vTFV6YjJwREs0YjZJNmdzc0QyL3pp?=
 =?utf-8?B?ZDZWMnk2bDUzVXFVWms4dHZwM3BUR1RmdWd1N0xnRFM3STBJQ251c0VrR0c2?=
 =?utf-8?B?YWJ3UnZ6empNNEJ3UDhsTTlOa1Yxa1loa2NxQ2xjY3B6UFB5YWIwdUpSUGZ4?=
 =?utf-8?B?ei94S1RQbGVDcjNXNmFYTnJ3aEZqeERwTXZVaDEvblhVWE1adWNaUEdVTFoy?=
 =?utf-8?B?OWplSTlPT2M3dSs3ejdGQlo3SmlteWRBWGNjdEMvQUV3RnpyZnlXbjhDN0t6?=
 =?utf-8?B?amVvaVNkMzdabXFiUm9wTzNDeG1oRGFKZG1Ca0Jaa0p6V01id1orMTZkVDRw?=
 =?utf-8?B?TEhkK0VqaXljaUUzcWpxNHFVTkltRXpEbEZRTGJXRTlJdi9kNkxZL0JMWUQw?=
 =?utf-8?Q?6e88=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2025 13:04:12.1983
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d6148385-fee6-4bcf-6419-08de30da1f7c
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB4A.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8991



On 01/12/2025 12:34, Oleksandr Tyshchenko wrote:
> This property is used to grant a non-hardware domain
> permission to use the IOMMU, which is a prerequisite
> for device passthrough.
NIT: you could mention that this is not needed when using passthrough dtb.

> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Dec 01 14:19:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 14:19:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175737.1500350 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ4kW-0001AV-BV; Mon, 01 Dec 2025 14:19:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175737.1500350; Mon, 01 Dec 2025 14:19:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ4kW-0001AO-7U; Mon, 01 Dec 2025 14:19:32 +0000
Received: by outflank-mailman (input) for mailman id 1175737;
 Mon, 01 Dec 2025 14:19:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oG9V=6H=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vQ4kU-0001AI-Sz
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 14:19:31 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bb9698b2-cec0-11f0-980a-7dc792cee155;
 Mon, 01 Dec 2025 15:19:23 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by IA3PR03MB8453.namprd03.prod.outlook.com (2603:10b6:208:540::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Mon, 1 Dec
 2025 14:19:20 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Mon, 1 Dec 2025
 14:19:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb9698b2-cec0-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UHmxpafdaO7y5d2mmVNdCTqpS0Cf4dUO+7XZNUZRtgoO+qfqjYRGOMYuobRAATTDS2X8na/19CFRDgMEUKETtyu+NRQnslCNuavynondVItqN4Ty9yO1U7cLtoU9tPTwq7hPv7Gyk1tmP4dmXssWptIpmjj6zWaN+uzVzaIlDBkfXnpHvlV7k1mht/aQfBkQs/4MHRgxI9GtRq6DOo15mPaPHYuZpo3pTkxGcHtlQ5VqOi3Ier7DUzpwhai/SKt3WoaqDBIAGuPShKqc5qJRDVsmaGXDe1c9pTOudNt9LsUuVzyigdZzH9cjML/flncPsXmyfgcL215DTSlJm+rRgA==
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=DrPiG4g47fZrVfZHKt1No8nMNfrWSmlFY2AjhxLv/EQ=;
 b=dbnJaWYJY0YdZm+Fp2FgvetRZdMJcsNSVlYe5b5QbENybCJqwVs53V9JhBVMi0U4tIBRxp/jbfwi9I9AdO3kwAgWjHtSdweBjeicxUmsR4/6KqNeeDt3Cq0ISI0XlKdCMpLxf4sSAHxRtlad18WCZkyt6rUemUjRH/x7mH/3GEbbc69DD9pBkgfWl1AzdWmYSSnCBDY8HlT71LfO+twnEXL0T14p0hZsPyPE8J4ATledq9veHDxk+PfsmGz8t5xA23XeR+RPm42XIX6GFkuLKKlBG5RxUZzqG1MYr1XlqSlATT3cyQEzkpUc6WdbGo574Ajt5gtazHJr3pz1l0OEZw==
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=DrPiG4g47fZrVfZHKt1No8nMNfrWSmlFY2AjhxLv/EQ=;
 b=pokK4gBoYiefr6a5ky9Hm8YZnQnKtBpY7Vu3W2ys2JHkoq8CpjPh2fI6QfcuclLkSs9XZMbbfj/FOZRRQ5HzT5mrEtj93bUtlCfITBaPeV2HUdTtgpw/WuhKCYaEf0GSPZrrXZNuOy66HYm+Syr5/9dwtFF/rOaONvhRKzsYJiU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <040dbfeb-fe2f-4b5f-9495-799a22876d4a@citrix.com>
Date: Mon, 1 Dec 2025 14:19:16 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Krystian Hebel <krystian.hebel@3mdeb.com>,
 Sergii Dmytruk <sergii.dmytruk@3mdeb.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 2/2] xen/lib: Introduce SHA-1
To: Jan Beulich <jbeulich@suse.com>
References: <20251128184757.1243678-1-andrew.cooper3@citrix.com>
 <20251128184757.1243678-3-andrew.cooper3@citrix.com>
 <bb4ca936-da10-46f2-bf9c-055e19990d82@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <bb4ca936-da10-46f2-bf9c-055e19990d82@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0226.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a6::15) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|IA3PR03MB8453:EE_
X-MS-Office365-Filtering-Correlation-Id: adf5be1f-c613-42bf-a5c1-08de30e49e7b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?R1RLMytFVDMrcnVMcHdVTEZlUTA4SjBRVkZDVHoxbjREVFBTUHZWQ1llWjZ6?=
 =?utf-8?B?TUtZMzBjYk9rL0lRbUVzbGdCU05WTGx6OXNEV0Q2TDJqNVU5TVdVZUx6bWth?=
 =?utf-8?B?dndWL3hhKzVkRld0Y3IwLzA0dWJIaUhWYzczcE03eWtPWTR3bDJVNW9TSWJo?=
 =?utf-8?B?VVBZY1E1aWhFNFgwRGdFbWtzSGxSRGNFRGFIL3V5UUNwWXlzM200WjlzK092?=
 =?utf-8?B?aExMZ2QranBOeGJsZFU5bzJJN2ZQSFlSMjR1Q2JKQzlqenkrUW9od016cjZp?=
 =?utf-8?B?RkhNbjZVNS9TUUs1MDlodGl0ZFYwOXVENFl1RTNNb28xKzBuYXQ1T2xnRXhU?=
 =?utf-8?B?MFVsaFF0RWI1cW02SFFHcisrQlNJanM0eGJzNHZvUW9vcmV6QUlZQmFQNGpZ?=
 =?utf-8?B?TTRqM2ZkTElObHBGWlB5R1E0WFpvNHVRUzVqWTkrNmdUTFZ3dkVRS3VGaWFM?=
 =?utf-8?B?VW9OTlBRY3ppMG9rTUZVVTk2cURPME9KYVczZVkvNytkVm9qSE1XZXBjbk1D?=
 =?utf-8?B?TkhZbTdYRGkvMlcvWmhUODhqY1V0SWc0UDNVRVF5RGJQRG1GR1Z3MWNPWExC?=
 =?utf-8?B?ZkRvSGhrZS9hRmd2RTJjaXlPdlVSeDR1Y0RnM04yME9zZXpCQ3hiRVdKby9P?=
 =?utf-8?B?UnJqeWgrV0orQXI1NVFZOTlPMk5SYUdzbGZGS1JacW9xU0NsT0U0L3U2N0Ux?=
 =?utf-8?B?QVI1SE11OUZ0TkR6SEdlTTIxQVB6OXc0eUF2cDZTTGUwaVlRTE1kUzRlTTRa?=
 =?utf-8?B?TmQzMVJCYjJaVjJWZHYwRUZEb003NUwwR0xMOWdDTXFrUVkrZ3ViSlFYWXZw?=
 =?utf-8?B?Y3I0aFZpcmVhcFl3Vi9leDBsWUZTMmtYVkxmTnpiVHV4TmNRbDkrMEMwUEZl?=
 =?utf-8?B?QmVEWS9Td2Rtcm9ZQVg2MzZGWHMzZEc3dCtxKzI1M3RCWEZPSCtpR21NVXdF?=
 =?utf-8?B?S2pxZnd5RVQzQlR0YTRCS0RhMi9vYy9TTVluNjZaTSt1S1FzMmRwcjduZlBH?=
 =?utf-8?B?eWkwUnpSOTROVklJZ0IvRlRMRTNES3A1QWgyYTduYmN3Y3gvNVBMcytPa2wx?=
 =?utf-8?B?SkNSMFVtSzlvMFl5MnpyYnRjMDJQa1R1dUc0Q1cwR05mRFpUajJKRHIza2pm?=
 =?utf-8?B?MUFDN1lQUDlEc3lJZm51Rk5TTTdDZjJ6bWlCWHBHVlNEc1Y5VGd0VjZGbGtO?=
 =?utf-8?B?ZjhrUlRsMWdLMWtnVFoxT2ZjMjQrem1CeUs0aDhaR1JLaTdDbStUYVA0WDhG?=
 =?utf-8?B?MXBlaUVBM1F2NXpmVFd6ektsV3FlVXdzWWppVXY5OUNNa1pyWkFDS3pwTzNo?=
 =?utf-8?B?ZlQxc2xUZVRaeGVibVlwZEE0Yk1zS3lxTGppU1Axc3ord3ZFYmdJaUZyQmhh?=
 =?utf-8?B?andmMnRKRFR1a0ZkOS9RemM0Y01GZDkyemcrOHB3R1IwckwxWWhVVDVPekdD?=
 =?utf-8?B?dXBxRXp5MFJ0MjBkeFBzTG9VMGtMTUIrU0s1Z0tHYjVLam8rZmlHRU5aaE9x?=
 =?utf-8?B?aVVxM0grc0s2RG9BUjJkdVNGUWF6dmUxR0p5OVRWOGN2L0xYQ1Mxc3NGVVBz?=
 =?utf-8?B?cEhMNWZHSTRveGY0UGV2V1R6M2o5SGV5SkpETlBjR011L2pmVXpFa2FNYUNv?=
 =?utf-8?B?SEhSQVM1Vmh2TUJTNVowYTM5QTI3Z3d2VmNWWGExT0hsSEhNZ0RuSm5hWmxS?=
 =?utf-8?B?UjV5WTJvejEvUEt6TFNXWVdzZE9zOU0xUVJEb2o3dXdoalpwMStWa2NJQ01X?=
 =?utf-8?B?RWlwMENOaE0yZEVFR1YwU1JlK0Z5cWREL1QyandKWUxscTRSbGtFOUFkTHBF?=
 =?utf-8?B?R2dNSnZUekU0bTN3Y2UxMUdZWGFXeG1mZ0ZtbUhVbWVwZW8wRE5ybmtUOThJ?=
 =?utf-8?B?dm54enlUaCtnR3BlejlVU0RRa1dORCszcEZSL3Y3MTVXNkNyZVB4R0x5Ulpn?=
 =?utf-8?Q?KSSIhiXpNx5Elfj2AxsPdUSh7GvuNrls?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?a1h2aWVESDJ5cXQ4NFJtSmNndVBnU1p2KytTY2pmMnJ0MjhGSkRGMXZCempv?=
 =?utf-8?B?OU0yRGhOZGpUbnUyQnZYOXBJWTVibkYyeUxLMlkyY1U0RGE1ZGJ0Wjh0ekJK?=
 =?utf-8?B?aGlYUFk5VUVScExLYTR1RFJCWVFZRzBvem82ZjZPclEwbmNtYVFPNW1sdVh3?=
 =?utf-8?B?NkEwTWpTZzJGaGxSdUlnUXlpTmpsbjRyclo4UG45ZHB3dEJJRDB6T01STkRM?=
 =?utf-8?B?TVpXcDBnWnp1ZjBuZFl5cGZJYWJXMDlQZWtHaWk1ZDBFdzJWVW1iaFgxcGV4?=
 =?utf-8?B?TE5hdlJJVFo2RFRnUDBmOWdqcDloUC9XOTk5NGduencvQjIwQmw3RmJ3U2Zi?=
 =?utf-8?B?aTR0VCtYMFg5QVI0UlNIeDZPSkFXUHIyUExWY0JXY0hjbFhHWGR5ckFkVEth?=
 =?utf-8?B?WExXdmtGdDJYYmZGQWJraDY4NEkxcW4wQzhvYXJDcThvYW5EZVRjdG5XZmw0?=
 =?utf-8?B?bkdQT2FZeEtXUkRSNWpZdGVZc0tvMFhOeE1aenljeS9LRVlscG44bWlTT0c4?=
 =?utf-8?B?amU2dElKZXdLREJpWDFoeXU3QjEwYnRsWUNuR3laR3J3RTNLUlcxN0lsQWgx?=
 =?utf-8?B?WVUxL1hsOGkxY05Qd3U2d3hHN0cwSENlQVdib2N6QnhzTzNOUHZ1WlZXZ1U4?=
 =?utf-8?B?S3ZLeEM1RFgrMFZOT055a1kyMkkyaWtqanpBMVREN3BJSFBBc3ZuRkZqNk4z?=
 =?utf-8?B?TXNRMWtHdGR2eWl5MHc5a2dic2piOE5aNEFBSG9hRzlocjBGNTlkWHpjdmlZ?=
 =?utf-8?B?M3F2azBRRkg3ZCtlR3BZYXcydWpEUXR2aUxEamJ6WUpWOGJ0MzdodVdMeUVN?=
 =?utf-8?B?NEoycWdaajd6TDgydS9xb1YzQldjYnhxUzJuUE1xd3BpcTFXTkNXNE1xUmpn?=
 =?utf-8?B?NHFNR0VwaUdjR1czWmdnMHhZeWt2U1dtalkvWXVleklENnlGWUdQbEdIR3pC?=
 =?utf-8?B?cW9hMWpHd1lqdVFETnJmUmJFaVc1Vno2S1N0dGU5V0hyL0c5azJZS0VENFZr?=
 =?utf-8?B?MzNZNG5FdEcxNFpVb2p0ajdySWlZTkZZamI5emhmWlkxV2xjc3BEOEowU2RB?=
 =?utf-8?B?N1JUWDhoRlArenBZWkpkUW9ldklJaTIyRVNxeHFCTlVPVDFpdWpZeWhyMEJs?=
 =?utf-8?B?UEI5alYxQjZDaXpFeDZ6VDJ1Q05MVWduTk9zanlZdC9nVWRtNkQxSllaVVBu?=
 =?utf-8?B?UnlsYkYxejlRRmRPa3hCRHpON0F3ZGhYeENwY3p2SVprYjNLa0NMSEI3Q2Zv?=
 =?utf-8?B?STIvbVhqa042UUtOSDhSNDZ2T05PcDRHZkFDVTNRK2diU0JycUNGUDVSQTMx?=
 =?utf-8?B?TFVWYUcrUC9HRVFiSG0yRkw2WG1mSW5rbkxDa3AzM1lHeWhCbmRPa0Z0eGFT?=
 =?utf-8?B?TEZVOGV3RGRnU05RTmJnRzdZTzVlMWcxaCtGUTczNTRKeFZ5VXIwa1ltL2Mw?=
 =?utf-8?B?dXVQdTEzeHRLeXVHK0ZYTXZ0eUV6eE5oODhibDkvMHh1OC9kNnZQaDVOZHR2?=
 =?utf-8?B?Q2dlOHF4TUdQM3F0RUxKd3FPd2VHQUE5ZmhteldOWWFyMXZqaGY3Z3dPWkRU?=
 =?utf-8?B?VWEzMDFTMXdEUVRBVFMvWmVZK2d6RWtsalVoNGsrVDNDZ1IyWDhvL2YyTzFG?=
 =?utf-8?B?bjdKdlNtTXJkRlBCSDN0R3d2cFRkL2ExVzlualNSbUZVSjk4eWxNSXFBc3VH?=
 =?utf-8?B?ZzYwV3hZZTRWNVVlOXNYdXd6c2puK24zYitvSzBEZkJyaHVZQ3kyTDZnaUdL?=
 =?utf-8?B?V2lKSTRTR1h4SEc2SS94d0RDVzg1S01JckhZaFVvamI5ajhuZWVkRzJsZExL?=
 =?utf-8?B?N0h4ZkNkNVAyVkZOamkxRXI2bmR3Y2NXdk56QUNhQllNQ1hKdjNXQ3BZZWZr?=
 =?utf-8?B?V2ora0IyL20zc04wT3NaakRvZkVUYXpqN0xtMWdrbEtEUlAwM3EvYU9GYnMr?=
 =?utf-8?B?UjhWd3M3VXVCUXdtUDF0V3pISEFKTmVtVTFPcmx4SjFjTUxXMTJtVlFOS0Qw?=
 =?utf-8?B?bGwrVU05aFNaRWJ4cDQxaVdFSnBQWGVmMjdvNkFHc1JncEd5Y2NUUEZjTUlJ?=
 =?utf-8?B?cG4wQ0V1czRNVkNjYm9TTDhZbU1IZHhHdTVyaHZVbFlrRkN6d3hjWkpObTRR?=
 =?utf-8?B?MzFhNGY5aGl1MzM2QmtFalNuUzc5QmFTd2tPUUd1MUJpb2dPYnJtT3JqN3Qy?=
 =?utf-8?B?eFE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: adf5be1f-c613-42bf-a5c1-08de30e49e7b
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2025 14:19:20.4659
 (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: kohop4dysEVYyhg0XPbHy4y874ZTB+Kf/6QhrWzM7hKSljuogityp+hA+6DBaa6CJMhywMzeeY69OxS/NoSZu2le6dJ2qBaslWrEkmZvj0I=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR03MB8453

On 01/12/2025 8:46 am, Jan Beulich wrote:
> On 28.11.2025 19:47, Andrew Cooper wrote:
>> --- a/xen/lib/Makefile
>> +++ b/xen/lib/Makefile
>> @@ -17,6 +17,7 @@ lib-y += memset.o
>>  lib-y += muldiv64.o
>>  lib-y += parse-size.o
>>  lib-y += rbtree.o
>> +lib-$(CONFIG_X86) += sha1.o
>>  lib-$(CONFIG_X86) += sha2-256.o
>>  lib-y += sort.o
>>  lib-y += strcasecmp.o
> Why exactly are we confining the two SHA<n> to x86? They're both plain C
> implementations, so ought to be fine to build everywhere. Being in $(lib-y)
> they also wouldn't make it into the final binary until a reference would
> appear.

For the SHA2 patch, an objection was made to compiling it on the other
architectures.  Personally I think they ought to be plain lib-y.

I could always have patch 1 fix up to lib-y and have patch 2 match...

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 14:24:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 14:24:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175747.1500359 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ4pD-0002lF-RF; Mon, 01 Dec 2025 14:24:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175747.1500359; Mon, 01 Dec 2025 14:24:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ4pD-0002l8-OW; Mon, 01 Dec 2025 14:24:23 +0000
Received: by outflank-mailman (input) for mailman id 1175747;
 Mon, 01 Dec 2025 14:24:22 +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 <SRS0=0dw1=6H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vQ4pC-0002l2-MO
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 14:24:22 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6da800eb-cec1-11f0-9d19-b5c5bf9af7f9;
 Mon, 01 Dec 2025 15:24:21 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-47789cd2083so23916305e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 01 Dec 2025 06:24:21 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4790b0cc186sm299916015e9.13.2025.12.01.06.24.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Dec 2025 06:24:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6da800eb-cec1-11f0-9d19-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764599061; x=1765203861; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BoNc0EfE6oIDMoAeDnIpEEeaSUgG+5MJKYEPo03xtjc=;
        b=KklLoMnrc+6mZ6ODt3VXCo+N6ygm3lZBKJADJr2tH97p1UwYRuIj7DEyDtcgtMIQOZ
         x66ACYLEQilCQi5gdAk0g+2zfxuIx2/NbeiASPkNt8TZ7C40Awo6uKsY98+4KKNk6ceS
         pcaf9ZTwq53e21VDMNLimwsN325orUO+mE4pzKhxFjl232XYS+ZlXpsdu/wFbpTaOm/L
         0DlNYG1JsB054Bjr9aFJIMjqZ1jyXofUJG9gb9L+9s4Vk/leo7P9niDR8wXhoT9xYGa9
         dQ+ZDHfhmSO8tHCYfrh9EY/sV+SKcBSha6ze5bEhCEmAtKHPquW9pDHjdsFNoCVKN2O1
         9P5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764599061; x=1765203861;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BoNc0EfE6oIDMoAeDnIpEEeaSUgG+5MJKYEPo03xtjc=;
        b=mmUHDmsCOw94b9Cnt801+HlCtWChQh+R1ZP2/RyG2NO1auoUqd/Ozl9PMEYW35isES
         NqRewAnhdgQMzZ7cix+imC78betQTp9pyUjwg0KWHMqG9ZigGl/825VaMY1VmzNXO+E6
         18fqin1SPrsp79/iLl93z50SxaWv4KSJ+BPdsxZC0l/OU4aRBTO3QYd9CfchJT34qIl6
         OemgJ+ee//STVPs3d/SKuOrgC60FTyT8RPwxONE73iyWaVLCY3G99l4FMBS0TeqFWzSM
         KjEnxRvhhfBqzkPVXy/IshwsSshdAC087+r3Egxk6/io8buhc63DCRm7WAY4hcKg1opU
         CEkQ==
X-Forwarded-Encrypted: i=1; AJvYcCXdZFUNgEqt/zpBXpoIkUQRXOgF6J1xd2tj1MAcjbSSmI0uXXzybvLv6+9iOU3+gCL9q2Q3l1iF+yU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwFsMQBMLL6ohwys7BYldyCo90j1we1MahuCYiIf0/pl1aM9+wz
	rjNKcZi/IbkyExnL0BxdgNLh/DmgQwafSXmQFIQfuZ/eDHhiTcjbx3BqviZHQkbKbg==
X-Gm-Gg: ASbGncsjD0YEjzKA8vDA68hBpCo+woi3ivbbrEq3rTg0O5Lp3ASPbBbRln2IrgDOXY+
	MeJY6sKsV/YKkjxeXV0DqEPA8bn9jOAuMBXPAcAcz/KyYo7bQObFrnEMMVjVKuy9MHlhd88LEwo
	3kY0oYZ2ovl6jjDXEoyqlYXvtNcl6+Liyfh/Y6uNRxnzyU3GEJhOK1rz2BG3y1dbvwB0QiGhY/W
	gwSZMzzCO1/JjOSl7y5o39j+HMDN9hQtsd6mXiFsccLDfO+ruqwS2iwr7Yrh9++sa5W9LESb99K
	BPz3dcDRMxeYCmPKo8iHZxL8lJ0ik4gXAIp2pRwxC4i8A3ZYbByHhKD6wc8GMDjosuhrYED1bes
	3RJNwWH4Iss3IbdpZNO8HKVqNkK06IEwQVHkacErJSkDLeJHk7d2RvgLT7Mx/yhHDe9XoaMN/lT
	CgU0hLjGwVAykltbLypBG7JGmXP+8ThF16A5u42biYlWH7Iajnpl72S1YBy/ePBlzWIsC3LJm8h
	qQ=
X-Google-Smtp-Source: AGHT+IEWPFOrhbQSpnYMgepsF0cx0F17DxyoneBP/C2+0fAPq1Swe3sOx16GNa2sTAMAUNXJo3+Euw==
X-Received: by 2002:a05:600c:1c9a:b0:477:1bb6:17e5 with SMTP id 5b1f17b1804b1-477c115dabdmr460533875e9.30.1764599060702;
        Mon, 01 Dec 2025 06:24:20 -0800 (PST)
Message-ID: <8556154c-86d8-4208-8c47-3a2507c80dd1@suse.com>
Date: Mon, 1 Dec 2025 15:24:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen/lib: Introduce SHA-1
To: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Cc: Krystian Hebel <krystian.hebel@3mdeb.com>,
 Sergii Dmytruk <sergii.dmytruk@3mdeb.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251128184757.1243678-1-andrew.cooper3@citrix.com>
 <20251128184757.1243678-3-andrew.cooper3@citrix.com>
 <bb4ca936-da10-46f2-bf9c-055e19990d82@suse.com>
 <040dbfeb-fe2f-4b5f-9495-799a22876d4a@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <040dbfeb-fe2f-4b5f-9495-799a22876d4a@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01.12.2025 15:19, Andrew Cooper wrote:
> On 01/12/2025 8:46 am, Jan Beulich wrote:
>> On 28.11.2025 19:47, Andrew Cooper wrote:
>>> --- a/xen/lib/Makefile
>>> +++ b/xen/lib/Makefile
>>> @@ -17,6 +17,7 @@ lib-y += memset.o
>>>  lib-y += muldiv64.o
>>>  lib-y += parse-size.o
>>>  lib-y += rbtree.o
>>> +lib-$(CONFIG_X86) += sha1.o
>>>  lib-$(CONFIG_X86) += sha2-256.o
>>>  lib-y += sort.o
>>>  lib-y += strcasecmp.o
>> Why exactly are we confining the two SHA<n> to x86? They're both plain C
>> implementations, so ought to be fine to build everywhere. Being in $(lib-y)
>> they also wouldn't make it into the final binary until a reference would
>> appear.
> 
> For the SHA2 patch, an objection was made to compiling it on the other
> architectures.  Personally I think they ought to be plain lib-y.

Everyone (not knowing where the objection came from) - can we please re-
consider this, ideally ...

> I could always have patch 1 fix up to lib-y and have patch 2 match...

... allowing this to be done?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 14:44:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 14:44:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175759.1500370 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ582-0005g1-C9; Mon, 01 Dec 2025 14:43:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175759.1500370; Mon, 01 Dec 2025 14:43:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ582-0005fu-8W; Mon, 01 Dec 2025 14:43:50 +0000
Received: by outflank-mailman (input) for mailman id 1175759;
 Mon, 01 Dec 2025 14:43:48 +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
 <SRS0=ckhn=6H=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vQ580-0005fY-PE
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 14:43:48 +0000
Received: from mail-oo1-xc2f.google.com (mail-oo1-xc2f.google.com
 [2607:f8b0:4864:20::c2f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 24538357-cec4-11f0-9d19-b5c5bf9af7f9;
 Mon, 01 Dec 2025 15:43:47 +0100 (CET)
Received: by mail-oo1-xc2f.google.com with SMTP id
 006d021491bc7-65962c714eeso36805eaf.0
 for <xen-devel@lists.xenproject.org>; Mon, 01 Dec 2025 06:43:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 24538357-cec4-11f0-9d19-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764600226; x=1765205026; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BZbr8UvSDfzy4nkhgyFpOtzWOvl8QD48or1B2VBuZiE=;
        b=xVvtqoiyzJJyvVpl3mNDJ4a3P4eDDcXKYFFo5SMb9jeprtF9IZjmNFUq6xlO1TensC
         urUcmXb+flEbF/tICnVW9p7TYHVxZbQRgPhcgAqUEgCXB/aPZJH8bPIvBIuFsqSpQeAf
         4pQT94rzXcOagWJ+s9dPHuuwpU/IuOZtElhz71GSqkB2iQH1abBAHyN4GCNOq78HlL8L
         hPqnbbunN4GVee17IpMk1mxeI76YeYMW9EK7U3YavW6ouSrDH/lNJzuMh/OOZb7UHcUP
         Sm1C57qmZXweKS+/JAc55pTmvXW4RYCwGTHJ4JXx4XYEHh1K0P8V1R1zHcjVeVZXyTNZ
         wLzg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764600226; x=1765205026;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=BZbr8UvSDfzy4nkhgyFpOtzWOvl8QD48or1B2VBuZiE=;
        b=vLGUoqNn8mQAmIbLxSlyOyT1qkpa3d8AXYV+WN4xOoyCSq9+/NvS7UWt6PoJ++DMlv
         YZS47R7mbOlg0ypzjrYVrSVhfeX60+O/qZyZaH5gvnky6Q6erau5TE3TaXzdphL2BTAt
         87hNWb4Umq8aqaD8oyQYAIekZnXEbpRnWrZiKF3BABMIztHM0Zq4PeZ6jtelv1hJ+JFa
         laHXmCA3b8TzpEkCawNtV1HkvDCT4+ALW8JN+JsqmmbNhxPPSpI+9Ewdm7BSoteLsnMx
         KriptlK1XWOhT/nT8sj+RNqLzCHaPaTVZjwmykwtJQ1bODFPDeWkG7XlXjbIY82yJwu0
         odAg==
X-Gm-Message-State: AOJu0YzbMxSrEkPPxPz/rN+oMEXAIwMLlx1Ug5vrpXLzK4dpqZk8dfnY
	cShYC4TT9xGCOBdUQ42gzFVuGm/tBh+DikHxPr0ePqCOT88Of7GxT44HyqhniQ6emzdQXkHyLcO
	8X2J71NHHlo5SEC95wOkYaldcko39x7h+WTHzrd82sfFeUJlhI+R4zVoAAQ==
X-Gm-Gg: ASbGncuVWY0z10DAAPm7rA6W3kTSHm5lyW/UNoUWoDkiEe+Zf+eVbPc+5bfosCeadsv
	0YAuvxAm+0JEKTQVjLTZiow6lqARWmb8kfCsRNvqUqya7UeQExRhHfihzN/mKLsaIPyDjEOD06I
	caS6Gs8wYuAvYtDlb0NhgoAhqfEVBo5CGy6x3Vch1+b1v8KAMJ79zAAvbNea7S86c3U2xPIIlwY
	XRnrsSymWBNyCPFmF/VtVYwXfbIaT2FUoRnHOIoFin85rnrzfoDf/6a0LE03DndR/uDxqfJmXd8
	ApvCjROitSSzH867uuMUVznLcBQ0y7EeVg6j
X-Google-Smtp-Source: AGHT+IHfs1H7G1sRdfTTHIOIwCp8bdvrJ0mOQ9jWX0hRRqzDzXizpq2SFC+jhdTWHrftnS7HwMo/wYugsJQUB2uNcG4=
X-Received: by 2002:a05:6820:5107:b0:657:182a:a5e2 with SMTP id
 006d021491bc7-657858c6ee0mr12080066eaf.4.1764600226003; Mon, 01 Dec 2025
 06:43:46 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764254975.git.bertrand.marquis@arm.com> <2264daf90cbb25b9a60ebe8edbebb8988d95966b.1764254975.git.bertrand.marquis@arm.com>
In-Reply-To: <2264daf90cbb25b9a60ebe8edbebb8988d95966b.1764254975.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Mon, 1 Dec 2025 15:43:34 +0100
X-Gm-Features: AWmQ_bk3NsETxMlafFSuq_v7-OmTt4Bzp4yVeBDec8wo6RfMhXgKnLkanqJTafc
Message-ID: <CAHUa44E=JChox1T8K_kRBQ2nt1QutsDAaMGf3bzD=VO12LFiPg@mail.gmail.com>
Subject: Re: [PATCH 01/10] xen/arm: ffa: add FF-A v1.2 function IDs
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Thu, Nov 27, 2025 at 4:52=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Bring the FF-A headers up to the v1.2 baseline and fix the function-numbe=
r
> range used for ABI discovery:
>
> - update FFA_FNUM_MAX_VALUE so the FF-A function-number window covers the
>   full v1.2 range, and derive the ABI bitmap bounds from
>   FFA_FNUM_MIN_VALUE/FFA_FNUM_MAX_VALUE instead of hard-coding
>   FFA_ERROR/FFA_MSG_SEND2
> - define the new v1.2 function IDs; CONSOLE_LOG and
>   PARTITION_INFO_GET_REGS are added for ABI discovery even though they ar=
e
>   not implemented yet
> - extend the firmware ABI table to probe RUN and
>   MSG_SEND_DIRECT_REQ2/RESP2
> - while there, fix an off-by-one in ffa_fw_supports_fid(): the computed b=
it
>   index must be strictly smaller than FFA_ABI_BITMAP_SIZE, so use >=3D in=
 the
>   bounds check
>
> Keep FFA_MY_VERSION at 1.1 for now; we only advertise v1.2 once the
> implementation is fully compliant.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/include/asm/tee/ffa.h |  2 +-
>  xen/arch/arm/tee/ffa.c             |  4 ++++
>  xen/arch/arm/tee/ffa_private.h     | 18 +++++++++++-------
>  3 files changed, 16 insertions(+), 8 deletions(-)
>
> diff --git a/xen/arch/arm/include/asm/tee/ffa.h b/xen/arch/arm/include/as=
m/tee/ffa.h
> index 24cd4d99c8f9..c587f76e63ca 100644
> --- a/xen/arch/arm/include/asm/tee/ffa.h
> +++ b/xen/arch/arm/include/asm/tee/ffa.h
> @@ -16,7 +16,7 @@
>  #include <asm/types.h>
>
>  #define FFA_FNUM_MIN_VALUE              _AC(0x60,U)
> -#define FFA_FNUM_MAX_VALUE              _AC(0x86,U)
> +#define FFA_FNUM_MAX_VALUE              _AC(0x8F,U)

This is MAX+1, if I'm not mistaken.

>
>  static inline bool is_ffa_fid(uint32_t fid)
>  {
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 1d0239cf6950..2b4e24750d52 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -11,6 +11,8 @@
>   *               https://developer.arm.com/documentation/den0077/a
>   * FF-A-1.1-REL0: FF-A specification version 1.1 available at
>   *                https://developer.arm.com/documentation/den0077/e
> + * FF-A-1.2-REL0: FF-A specification version 1.2 available at
> + *                https://developer.arm.com/documentation/den0077/j
>   * TEEC-1.0C: TEE Client API Specification version 1.0c available at
>   *            https://globalplatform.org/specs-library/tee-client-api-sp=
ecification/
>   *
> @@ -102,6 +104,8 @@ static const struct ffa_fw_abi ffa_fw_abi_needed[] =
=3D {
>      FW_ABI(FFA_MSG_SEND_DIRECT_REQ_32),
>      FW_ABI(FFA_MSG_SEND_DIRECT_REQ_64),
>      FW_ABI(FFA_MSG_SEND2),
> +    FW_ABI(FFA_MSG_SEND_DIRECT_REQ2),
> +    FW_ABI(FFA_RUN),
>  };
>
>  /*
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index 6dbdb200d840..d7e6b6f5ef45 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -15,6 +15,7 @@
>  #include <xen/spinlock.h>
>  #include <xen/time.h>
>  #include <xen/types.h>
> +#include <asm/tee/ffa.h>
>
>  /* Error codes */
>  #define FFA_RET_OK                      0
> @@ -42,6 +43,7 @@
>
>  #define FFA_VERSION_1_0         MAKE_FFA_VERSION(1, 0)
>  #define FFA_VERSION_1_1         MAKE_FFA_VERSION(1, 1)
> +#define FFA_VERSION_1_2         MAKE_FFA_VERSION(1, 2)
>  /* The minimal FF-A version of the SPMC that can be supported */
>  #define FFA_MIN_SPMC_VERSION    FFA_VERSION_1_1
>
> @@ -270,6 +272,10 @@
>  #define FFA_RX_ACQUIRE                  0x84000084U
>  #define FFA_SPM_ID_GET                  0x84000085U
>  #define FFA_MSG_SEND2                   0x84000086U
> +#define FFA_CONSOLE_LOG                 0x8400008AU

This is the 32-bit version of the interface. There's also a 64-bit version.

> +#define FFA_PARTITION_INFO_GET_REGS     0x8400008BU
> +#define FFA_MSG_SEND_DIRECT_REQ2        0xC400008DU
> +#define FFA_MSG_SEND_DIRECT_RESP2       0xC400008EU
>
>  /**
>   * Encoding of features supported or not by the fw in a bitmap:
> @@ -280,11 +286,9 @@
>  #define FFA_ABI_ID(id)        ((id) & ARM_SMCCC_FUNC_MASK)
>  #define FFA_ABI_CONV(id)      (((id) >> ARM_SMCCC_CONV_SHIFT) & BIT(0,U)=
)
>
> -#define FFA_ABI_MIN           FFA_ABI_ID(FFA_ERROR)
> -#define FFA_ABI_MAX           FFA_ABI_ID(FFA_MSG_SEND2)
> -
> -#define FFA_ABI_BITMAP_SIZE   (2 * (FFA_ABI_MAX - FFA_ABI_MIN + 1))
> -#define FFA_ABI_BITNUM(id)    ((FFA_ABI_ID(id) - FFA_ABI_MIN) << 1 | \
> +#define FFA_ABI_BITMAP_SIZE   (2 * (FFA_FNUM_MAX_VALUE - FFA_FNUM_MIN_VA=
LUE \
> +                               + 1))

Depending on whether FFA_FNUM_MAX_VALUE is MAX+1 or just MAX, we could
drop the +1.

Cheers,
Jens

> +#define FFA_ABI_BITNUM(id)    ((FFA_ABI_ID(id) - FFA_FNUM_MIN_VALUE) << =
1 | \
>                                 FFA_ABI_CONV(id))
>
>  /* Constituent memory region descriptor */
> @@ -549,9 +553,9 @@ static inline int32_t ffa_hyp_rx_release(void)
>
>  static inline bool ffa_fw_supports_fid(uint32_t fid)
>  {
> -    BUILD_BUG_ON(FFA_ABI_MIN > FFA_ABI_MAX);
> +    BUILD_BUG_ON(FFA_FNUM_MIN_VALUE > FFA_FNUM_MAX_VALUE);
>
> -    if ( FFA_ABI_BITNUM(fid) > FFA_ABI_BITMAP_SIZE)
> +    if ( FFA_ABI_BITNUM(fid) >=3D FFA_ABI_BITMAP_SIZE)
>          return false;
>      return test_bit(FFA_ABI_BITNUM(fid), ffa_fw_abi_supported);
>  }
> --
> 2.51.2
>


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 14:52:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 14:52:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175779.1500400 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ5GW-0007aD-Fl; Mon, 01 Dec 2025 14:52:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175779.1500400; Mon, 01 Dec 2025 14:52:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ5GW-0007a6-C6; Mon, 01 Dec 2025 14:52:36 +0000
Received: by outflank-mailman (input) for mailman id 1175779;
 Mon, 01 Dec 2025 14:52:35 +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
 <SRS0=WSEW=6H=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vQ5GU-0007Zv-Vp
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 14:52:35 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5d301524-cec5-11f0-9d19-b5c5bf9af7f9;
 Mon, 01 Dec 2025 15:52:32 +0100 (CET)
Received: from SN7P220CA0002.NAMP220.PROD.OUTLOOK.COM (2603:10b6:806:123::7)
 by SJ5PPFDF5E260D0.namprd12.prod.outlook.com (2603:10b6:a0f:fc02::9a6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Mon, 1 Dec
 2025 14:52:28 +0000
Received: from SA2PEPF0000150A.namprd04.prod.outlook.com
 (2603:10b6:806:123:cafe::b1) by SN7P220CA0002.outlook.office365.com
 (2603:10b6:806:123::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Mon,
 1 Dec 2025 14:52:28 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF0000150A.mail.protection.outlook.com (10.167.242.42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Mon, 1 Dec 2025 14:52:28 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 1 Dec
 2025 08:52:27 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5d301524-cec5-11f0-9d19-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nTYH/clSaopUKzLl0I9afAr++7RLDdvp+kaPda1y1cy8WsOFFlFNQggipN/QcpQkRtFfdZUMa4AXirCsXLnR/8LGKPOpQvowVDw0skO5HgI1z2LpDWzv/PoqXeXabKsPr+FzvNCjfo61o42NVIKgyZ9bwcHK3zt/9zgl8Qj+u7SmE3dhth8nNcdzClsWocwPXZMcxpbYtkBtTqbt9NZrMf39sbn1ccV/lP60HiLUzBoV8+7JGz2U/BxUZfR+/tYgeZPjHHKvCsiTNYpm4/7swHZIOMro8lpZdeSbsUVkNyAS2gTPj1SPa97Gbt2Do23LNMlp/bs4EIFgPO4JqfPDsQ==
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=yOY/Avr0hMF8iRDljlBhbQHWq1KQbIodyYkw40oSnBQ=;
 b=hZy7hxsg6C12jtyJe5AZY3i1TdXgbSU8Sd8MZgSr5yaK1ygwZSZSIxtS5hURuHpzn4oDwI1CEpwDD92zA98SPz2yS/Kuu7PsNp0O6GVfh++GoJNkpg/Fe0XNz/tl9YxYzoUIGphodfwF215qwPxz7Mdi/bNG+cbigWf5texEiY3+lb5gflmtg4Xcy7FLYOY0ISeeVNdj/oi8NuuZIrSkyBKWVaXervNKoZ+TuATu1zMvA4AVy7y9EYVQsWQ8a1UwB8nZStxHntXKOnUHKOfXs/V0kYTDQPgM3jp7XPBWhovS6h5H2PJi3fUoRkXvIWlVTerHjt3JKlXrsI5Lwpe/Ig==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yOY/Avr0hMF8iRDljlBhbQHWq1KQbIodyYkw40oSnBQ=;
 b=kYh7FijPXnl3xW35cI8iTwVkCm+rHmJJnqPVtCaS1m6lmuddlMGQZOYbSArPZdmXmyPGxP/f8sjAasvmyhGkdL8c9rpIJCex9EupMeGF8zMSoB60ELuIkliVmq4vrtepyVTLe/VBTcaxPVIxgDhfSLHeYgt+3MHebqoM9HFFz+8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 1 Dec 2025 15:52:25 +0100
Message-ID: <DEMYRBFJE6YM.1I0BH2BFD5H72@amd.com>
CC: Jan Beulich <JBeulich@suse.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Xen-devel <xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH] x86/hvm: Unilaterally inject #UD for unknown VMExits
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20251128174735.1238055-1-andrew.cooper3@citrix.com>
In-Reply-To: <20251128174735.1238055-1-andrew.cooper3@citrix.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF0000150A:EE_|SJ5PPFDF5E260D0:EE_
X-MS-Office365-Filtering-Correlation-Id: d865f9c9-1292-4f0a-df4a-08de30e93f7e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZDN3dTlocmZ2WEgwalBZaXczTGVCQmdlT3hGWHFsY3huU3h4aGZqZ1ViTHBl?=
 =?utf-8?B?QmhwRlh3U2dtcWpzbWlRTnoxdkI5ZkxLVUM1TGdhYkptRjVXeDlaZUhTRXgx?=
 =?utf-8?B?NVYvQytnVUcrVWJvZlhnTThzNUR5VGxPR011OHphMUEyUXFqaWJJM2dYZGJv?=
 =?utf-8?B?RS9adHp5UW8yYm53Zk1YMmNUUlRPdVdBMWEvWFd0NFZzYnJULzJudzVyUXlw?=
 =?utf-8?B?ZTUzZktNZ0R4UEM3MHZFRU9EZVBDR051SXhmS29OSEZkdjVrelhia1I4eXli?=
 =?utf-8?B?Y2ZMd2RDMC9nMTFFM3pQM1JENTNNaG5pbU9jbWtCdWhiT09qcXVxVmFqN29H?=
 =?utf-8?B?ODZ6TVZJa1pwOWpWcUlxZS9QdHh3RTdQZEdZWlZLMkx6OGFvVWpJZ2Z1c0ZN?=
 =?utf-8?B?ek5WQVlDejFBVnBpWGJYN2JSd3YzTnB2VzhSVXNEemhCeUR2RlJZQnZqNm1E?=
 =?utf-8?B?bEdQL2hqbDZQK1VGLzh6QWxNSjFUUEhHajdabHNPL1NVaDg4bWpRdFMvdm5j?=
 =?utf-8?B?eU1DWTY2MWlaLzhEd3pzbTJMYTFRVHczVVJPa2krdW9DcW5tVnoydldiOFp3?=
 =?utf-8?B?WStkcjVGWjEvWDJxTGFaY0dVcHJFdjE2dXlXeWd5enpYOWdWTUN6WC9ucUdU?=
 =?utf-8?B?bTdteGhHUyt4cisrellGVXNFZnRMUUxRaVcvUFVvNmh4NnptdThRQkxuUWQw?=
 =?utf-8?B?aUpvSEM2eXFsYXNVODU4MmVIWVIwK24ybGgzYjhnaEY0dzJ5VmVSVU5xVGNU?=
 =?utf-8?B?ZnZQcC9hMFZaTE92QW9DQTBMQU5kQ1d6NTRhbjFkNytWUUpVSmpUYllrWGE0?=
 =?utf-8?B?aDZKWUhhUkdHZGgyaTc0L2lpcklxc0ZWNk9ESkF4d3IwY09BZzdTYUdDRTV3?=
 =?utf-8?B?Z2NWK0NUSVJjUWxjNDdERGJubHE4RjdIV09LYk5JRU9nek5QcjJrNDI2c0dN?=
 =?utf-8?B?QTNNenJwMDQyZWJSOUd1Q002cmxyWlVqS0k0Q3FNSXI1a1V6N1RCQTFlVmZU?=
 =?utf-8?B?NnFISDlacVFnQVF0eGVLWmVpdmR2Z0pVVXd6SGRHUGhRUWp5ZVA0WG5VRVZK?=
 =?utf-8?B?N3Y5MnBLNmcyZDFQTlV4Mk9UTWZrbEt3eWtKb0VqNVBRNUpoTmVMQWdCTHh1?=
 =?utf-8?B?MWV1MnQvY1NQdnVoQUhlZStaSE9jWjJoSTB2dUdnd1J1bVdaVEszeVB3WkxD?=
 =?utf-8?B?Yk9ORkJJMzNwZm1UMkFQYzRDQkorNjg2MjQrR3lSZTU3L2RLNDljYzUyZFlP?=
 =?utf-8?B?SFNOcEtDVzhRNjE3ZCtPRFNiaHBBVlVoeHpHSzBNVGtXVmY1cG5xSjZNdlpj?=
 =?utf-8?B?TFMxNjR0SXlYRjMwQW5Yb1NveFhDZXIyM3hTZk10QmpsZmhCcml3V3NYYWxp?=
 =?utf-8?B?TE1zaEN1ZG9QalJGVEQzZVFZeVNYcUtaTHllemJaMHBIRjRjMDJGK3E0b3pn?=
 =?utf-8?B?NGtrNGhpN2l0V0drdmlDSEtzdXg4enhReENaYnQxVzRyaGZyWlF4amd2OWE1?=
 =?utf-8?B?d254ZFNLMWpYb1ZqbVh5UGJXQjZUNFc0RDlOWXdydjBVaGhLQlY3cVRhTXFa?=
 =?utf-8?B?aVJTTkhOR1RkVUVId1ExRkdaNFJyazlZbkN5dCt6a0phZHY3enR3b25mOTZp?=
 =?utf-8?B?MWNmTzc0WlR4N0RQVUV6S2poR0swOHUyKy9NVVpkdGFKVHlZSGdXUkJWTTVV?=
 =?utf-8?B?OCs4ZnRnUzlSZnkrellhakU5dnpUMGhWSmFQVGtYc2VIV2taZ29TZWZjK0VM?=
 =?utf-8?B?Q3p6TUFmZEorWHdzTkpmcERrdzlHdExXanE2b2VDRTZIcStiTDFtazdhcmhm?=
 =?utf-8?B?WUFUL2pqaTVDNkp5VXhQZStiQTZvaVRqZHZCNXY5aFpGVnNaSGVuUkloSXRU?=
 =?utf-8?B?TmI2U2Q1Y3BTeWh3eU01akp0MjJZNUwwZEdOYU00NXlvbzJNdmM4NEFvSm9G?=
 =?utf-8?B?VGNCTHU4Z0w2dHBSL2xZZGlMNGtGZGpLWU84ano4dE9MeWRxMHBYY2JnVStQ?=
 =?utf-8?B?Rnl0UGVqOGo0cUR1VjRRYmJGRFUzYmoxOW5mY2U1dWprcmFEWGg3aTEvdzRu?=
 =?utf-8?B?V1Z4OWZ5YW9FK3JOVnp3TDFVQTlZNU5CZG00UE4wdTIyUmNJV1Q3ZC9pZUdV?=
 =?utf-8?Q?4HOI=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2025 14:52:28.3331
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d865f9c9-1292-4f0a-df4a-08de30e93f7e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF0000150A.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFDF5E260D0

On Fri Nov 28, 2025 at 6:47 PM CET, Andrew Cooper wrote:
> While we do this for unknown user mode exits, crashing for supervisor mod=
e
> exits is unhelpful.  Intel in particular expect the unknown case to be #U=
D
> because they do introduce new instructions with new VMEXIT_* codes withou=
t
> other enablement controls.  e.g. MSRLIST, USER_MSR, MSR_IMM, but AMD have
> RDPRU and SKINIT as examples too.

I don't know how often Intel adds intercepts (or whatever the VMX equivalen=
t is)
without default-off knobs, but there's a potentially dangerous assumption h=
ere
about all intercepts being synchronous with the executed instruction. Some =
might
depend on other events (i.e: NMIs, IRQs, IPIs, etc) and injecting #UD in th=
ose
cases would be very insecure for the guest. It might encourage the kernel t=
o
interpret the current instruction that the kernel can't know wasn't meant t=
o
ever trigger #UD. This would be an integrity-compromising mistake to make.

IOW, I think this is a dangerous default to have and Xen should just crash =
the
domain irrespective of CPL. At least on SVM. If a guest executes SKINIT and=
 it
doesn't exist=20

>
> A guest which gets its CPUID checks wrong can trigger the VMExit, and the
> VMexit handler would need to emulate the CPUID check and #UD anyway.  Thi=
s
> would be a guest bug, and giving it an exception is the right course of
> action.

You you need a guest bug compounded with an outdated hypervisor to reproduc=
e the
crash, and even then it's perfectly benign. Beats the alternative described
above, IMO.

>
> Drop the "#UD or crash" semantics and make it exclusively #UD.  Rename th=
e
> lables to match the changed semantics.  Fold the cases which were plain #=
UD's
> too.

nit: typo s/lables/labels

Also, does why emacs double spaces after each sentence on reflow? You have =
them
in a number of places.

>
> One case that was wrong beforehand was EPT_MISCONFIG.  Failing to resolve=
 is
> always a Xen bug, and not even necesserily due to the instruction under %=
rip.
> Convert it to be an unconditional domain_crash() with applicable diagnost=
ic
> information.

One example of the above synchronous vs asynchronous events.

>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> ---
>  xen/arch/x86/hvm/svm/svm.c | 29 +++++++++--------------------
>  xen/arch/x86/hvm/vmx/vmx.c | 26 +++++++++++---------------
>  2 files changed, 20 insertions(+), 35 deletions(-)
>
> diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
> index 2d7c598ffe99..637b47084c25 100644
> --- a/xen/arch/x86/hvm/svm/svm.c
> +++ b/xen/arch/x86/hvm/svm/svm.c
> @@ -66,15 +66,6 @@ static bool amd_erratum383_found __read_mostly;
>  static uint64_t osvw_length, osvw_status;
>  static DEFINE_SPINLOCK(osvw_lock);
> =20
> -/* Only crash the guest if the problem originates in kernel mode. */
> -static void svm_crash_or_fault(struct vcpu *v)
> -{
> -    if ( vmcb_get_cpl(v->arch.hvm.svm.vmcb) )
> -        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
> -    else
> -        domain_crash(v->domain);
> -}
> -
>  void __update_guest_eip(struct cpu_user_regs *regs, unsigned int inst_le=
n)
>  {
>      struct vcpu *curr =3D current;
> @@ -85,7 +76,7 @@ void __update_guest_eip(struct cpu_user_regs *regs, uns=
igned int inst_len)
>      if ( unlikely(inst_len > MAX_INST_LEN) )
>      {
>          gdprintk(XENLOG_ERR, "Bad instruction length %u\n", inst_len);
> -        svm_crash_or_fault(curr);
> +        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);

This seems more than fair enough.

>          return;
>      }
> =20
> @@ -2872,7 +2863,7 @@ void asmlinkage svm_vmexit_handler(void)
>           * task switch.  Decode under %rip to find its length.
>           */
>          if ( insn_len < 0 && (insn_len =3D svm_get_task_switch_insn_len(=
)) =3D=3D 0 )
> -            goto crash_or_fault;
> +            goto inject_ud;

And so does this (semantically).

> =20
>          hvm_task_switch(vmcb->ei.task_switch.sel,
>                          vmcb->ei.task_switch.iret ? TSW_iret :
> @@ -2984,13 +2975,6 @@ void asmlinkage svm_vmexit_handler(void)
>          svm_vmexit_do_rdtsc(regs, exit_reason =3D=3D VMEXIT_RDTSCP);
>          break;
> =20
> -    case VMEXIT_MONITOR:
> -    case VMEXIT_MWAIT:
> -    case VMEXIT_SKINIT:
> -    case VMEXIT_RDPRU:
> -        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
> -        break;
> -
>      case VMEXIT_VMRUN:
>          svm_vmexit_do_vmrun(regs, v, regs->rax);
>          break;
> @@ -3083,8 +3067,13 @@ void asmlinkage svm_vmexit_handler(void)
>          gprintk(XENLOG_ERR, "Unexpected vmexit: reason %#"PRIx64", "
>                  "exitinfo1 %#"PRIx64", exitinfo2 %#"PRIx64"\n",
>                  exit_reason, vmcb->exitinfo1, vmcb->exitinfo2);
> -    crash_or_fault:
> -        svm_crash_or_fault(v);
> +        fallthrough;
> +    case VMEXIT_MONITOR:
> +    case VMEXIT_MWAIT:
> +    case VMEXIT_SKINIT:
> +    case VMEXIT_RDPRU:
> +    inject_ud:
> +        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);

I understand monitor, mwait, skinit and rdpru triggering #UD, but in the
default case (and we're also covering "default" out of context) injecting #=
UD
might be meaningless, plain wrong or highly misleading (e.g: imagine receiv=
ing
#UD on IRQ). VMEXITs happen due to optional or mandatory intercepts about
synchronous and asynchronous events. If Xen receives a VMEXIT it doesn't
understand the ideal would be to BUG(), because they don't just come out of=
 thin
air. You're meant to enable the intercepts in the VMCB. For defensive purpo=
ses
a domain_crash() would be fine too, as it partly is now. I don't understand
the CPL distinction. The kernel might trigger highly dangerous and
integrity-compromising paths if it chooses to interpret #UD and it happens =
to to
be an externally triggered event rather than something related to the curre=
nt
instruction.

(dropped VMX, because I don't know about it)

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 15:20:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 15:20:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175790.1500410 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ5hd-00037L-Ei; Mon, 01 Dec 2025 15:20:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175790.1500410; Mon, 01 Dec 2025 15:20:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ5hd-00037E-Bv; Mon, 01 Dec 2025 15:20:37 +0000
Received: by outflank-mailman (input) for mailman id 1175790;
 Mon, 01 Dec 2025 15:20:37 +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
 <SRS0=C1Uc=6H=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vQ5hc-000378-No
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 15:20:37 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4559aa5b-cec9-11f0-9d19-b5c5bf9af7f9;
 Mon, 01 Dec 2025 16:20:29 +0100 (CET)
Received: from DUZPR01CA0317.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4ba::27) by AM0PR08MB5444.eurprd08.prod.outlook.com
 (2603:10a6:208:185::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Mon, 1 Dec
 2025 15:20:24 +0000
Received: from DB1PEPF000509EF.eurprd03.prod.outlook.com
 (2603:10a6:10:4ba:cafe::d0) by DUZPR01CA0317.outlook.office365.com
 (2603:10a6:10:4ba::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Mon,
 1 Dec 2025 15:20:14 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509EF.mail.protection.outlook.com (10.167.242.73) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.7
 via Frontend Transport; Mon, 1 Dec 2025 15:20:23 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PA6PR08MB10783.eurprd08.prod.outlook.com (2603:10a6:102:3d4::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Mon, 1 Dec
 2025 15:19:16 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d%4]) with mapi id 15.20.9366.012; Mon, 1 Dec 2025
 15:19:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4559aa5b-cec9-11f0-9d19-b5c5bf9af7f9
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=W/EnZEKqbRsBu7pGMmY/CsAX1fh69IJcEIEp2ajT5U54L6S9V+wexsd0wGcFovhTl/XiXkLb/iVzMT0jUxKbtRL6fAG+Hmcdvb1tEusodjlAt5ZVhe1/bgCfs0j2eXQ4Pjv2uIWviGiAV+Wg1SkBrAZ3uAWLHXK4R3utxSdtzJVE7CX/ICA+A9/uNR0PMZUPHt7ngJm5B+hn0A/tG1BwNMHNdcDZht4TxKQGoQaESlIGFvkZU+GCiUKgL0Ef2wtcYsORuRApdXxABhAq8dqWlKlQfwVCD9mVYMpZ0VkFqhc6RA+6XBnYX14TCcIwwaSHISyFRjAskXB76lUvSoNdSQ==
ARC-Message-Signature: i=2; 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=18k3Utn2gRpA8r7qlAAlTLCfkCVEiGmzbe6H6xoPBXM=;
 b=MfT/Ve5a8YFnQIg8dNxcbBVDchSq0yZjlg+7ovQHlUSnEBmadMsWNNTTAMW8IhETNO3N2uLiWTL0SAeU5C7RnPJjQgqxUr+hnJQCTpOWZyfomYfnMe6JJ+t2ESLakgArgrEsiDDPI+lMgrRUVRr/uxc89RuhxMV1pSZMXL34/M/6qaqMnoHYlrbTmR4IzvUnb3gIuiNvy70RXMjp9ZTLaF4cTkbWZ60wmNp5oPkYhZsdToROdRC7Bep5r7YydoXf75dKVRiDubvz2Q7QupEvqjyn8uYLJKEhlsPOjIDjsukBVcVMGhZmB6wcLg8TvUmD5ng/MnVf5m+tkajn8u1LdA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=18k3Utn2gRpA8r7qlAAlTLCfkCVEiGmzbe6H6xoPBXM=;
 b=BPDteHHWpEsAZIHfY8UHrabngBWXhMH4fXoNov6S31buVQcSZ6O+T6se/BoVlA9FKTKeeon3MlFsdLNNxJRVfilwKUJbAATFC2jAV/zjo4/RcG0I91lIh3JDPpQzBFsCRDs/2FVRKJZZUgkb7Yfl7DUw14bxPpFEW6xRIzqWFt4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LfbIu2pHtg7J8J/KjEvItPVQXURbRGA+xo5tk4tyFI8L9eMhdONPIIfCoARcmlzMKJz018jxRFTtWFoXbpHc3wwHFauuOK1B6mEmU7Nc1b6H/M810vdde3Ai/V9+pwcBmGdRJxuKqz/4o1BkRQd7C7qfCGc0qqt3pui4NexQqXCj6t8IZpz2RSehqxQM7JPvCo1wHIgbxaQC46jDaLUcMbYdda10rrZCoNbGIvTjX+s0bCBJvlMCT4PBqa714eNJlmbVYDUpUJ6grv+8Fm1ZTpKvQLb9FSCzreahn/AeOhF6ykZ2nOJxiEpq0MYLrkmRsDAoBjnNuEYFeVsCcXHKyA==
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=18k3Utn2gRpA8r7qlAAlTLCfkCVEiGmzbe6H6xoPBXM=;
 b=SjGGpmAtgzkncVzWvXOa7s0QHLlOVv2U5sbHNzzyJEb25dYjg9SAK1h/2dagXVQq9f/DcTuydELofnh5+39VbrOgPSpqueaRoR9Q0BUPQAXhQNE3iYcpEhj7hsvJ6z1pHgYc4mkc1FWdnK+8K13Vle2Ng+R48rnSoZJ04vZusoUJ98SAfyY32sMdG+ebMkJmvxesj904mQwdOJRKnT2qxe+CjvBWL4/49dUdbGAVxL0n1V9w8XtcJgRK7Fsf+w5EE0TIXLnTDeLsf3SD3UxkrSACAYynXfZRhOy7BgBS/ytkoDx9m4Ofw/CXoy/futF22N88bCKfzxWZziglS68uMg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=18k3Utn2gRpA8r7qlAAlTLCfkCVEiGmzbe6H6xoPBXM=;
 b=BPDteHHWpEsAZIHfY8UHrabngBWXhMH4fXoNov6S31buVQcSZ6O+T6se/BoVlA9FKTKeeon3MlFsdLNNxJRVfilwKUJbAATFC2jAV/zjo4/RcG0I91lIh3JDPpQzBFsCRDs/2FVRKJZZUgkb7Yfl7DUw14bxPpFEW6xRIzqWFt4=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 01/10] xen/arm: ffa: add FF-A v1.2 function IDs
Thread-Topic: [PATCH 01/10] xen/arm: ffa: add FF-A v1.2 function IDs
Thread-Index: AQHcX7Xto0AEat0+902uj2o4W4BR4LUM4lEAgAAJ7IA=
Date: Mon, 1 Dec 2025 15:19:16 +0000
Message-ID: <89AC0E6C-8ED0-48CB-8A86-5169592F61EF@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
 <2264daf90cbb25b9a60ebe8edbebb8988d95966b.1764254975.git.bertrand.marquis@arm.com>
 <CAHUa44E=JChox1T8K_kRBQ2nt1QutsDAaMGf3bzD=VO12LFiPg@mail.gmail.com>
In-Reply-To:
 <CAHUa44E=JChox1T8K_kRBQ2nt1QutsDAaMGf3bzD=VO12LFiPg@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.200.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PA6PR08MB10783:EE_|DB1PEPF000509EF:EE_|AM0PR08MB5444:EE_
X-MS-Office365-Filtering-Correlation-Id: 7554c5f3-6ef0-414b-1d37-08de30ed25d1
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?VmoydFVGS3NQMFlEUVFxTHFLYzgyMHNPeXRDQmxxMzJqTE1MY2RiaEU3eXlQ?=
 =?utf-8?B?bmdVNkI2ZlM0WXc1aUp5ZnJZRGRmN3lxMWpIWkNCWmpMNHZ5bUwrMnhBdGFo?=
 =?utf-8?B?bXluZ3RPaFFxeEhyZWkrU1V1YkVySGpEOUh1WE8rbEwwYXVtMlN0NlVxZ3RJ?=
 =?utf-8?B?bUEyRUtxSW9YYXVBY2lrVkFmeWJTckp2U3pjVnlDbzBrcFFlNWdKS3JHTmcz?=
 =?utf-8?B?b1ptSzhBZnZaNmxMTGVUaFhPOXA2U2p3TWJNRkl2N0dKVHhhYThQQkdOaFhl?=
 =?utf-8?B?NWtBaStwTmNoRXFDbEd1SEM1Sk50Z2tIajVuZ3hqa3dtS2hZaUphZmpnMW94?=
 =?utf-8?B?RFdsQndMSW1ITjNHVmFuZU5qOTZyRklUSGU0bmdyamd6cG54TGxXNEpyZk94?=
 =?utf-8?B?U0YwZU1hbDBjKzVqODhhcVBxMGNjcDJWYVJYY3JxZkJNd0dpakJySVEzV1E3?=
 =?utf-8?B?d3lFM3lRQXp3UW5wQXFxSHNNc09jM2FIa2czcHJhWExacFlocWNrSzNWQWVQ?=
 =?utf-8?B?blp3NVpZT2V3UE9MdldTZDZWbWlBS25VNzE5U0dLOFVZOGNPa1l3c3RXN01N?=
 =?utf-8?B?VEVaY3lMbDV6YUZOdTgyajM0K0FMZldialpuNktuUXhMeHAwWm42MWtOTktN?=
 =?utf-8?B?RHZCU0JBeWNtZkJvRjN1M3ZmVU5BZWpScHJEWTl1bWpCbkpEV2c2aWtPUEV4?=
 =?utf-8?B?ZFNoY3MrVzBaSXA2VVV2QmRlRVUwZHp4NnRCWWcrL2VHRzlxYzYwRWZqWEpN?=
 =?utf-8?B?aUVXeEZXcGV1TlJteWpsUmVsZG9qaWozRGI4ZlZJUUJzZFV5ck9vUDBhS0pL?=
 =?utf-8?B?VXE1Nm9VMVVkMjNrMEw2emRyL0lXNFdRK0lENFpZdFhWNHczZ0J2THRwMnlv?=
 =?utf-8?B?YXdjcEgvamdWTHZqSnRGaC8zbGcxcmg2UkVvWmsyV2xCRkhBRW03UkYyNW9B?=
 =?utf-8?B?NVlBVzFnVnlONUpEeHdFdVJvd29GaG1uWk4yUFovNlBLS21HYVpJemVwYzhF?=
 =?utf-8?B?MlNhTHIvbWtWaTRJdDBPNCt2TkxlalZ4djQ1VmJabVVIMWV5M2w0SWp0Z1hq?=
 =?utf-8?B?M1k2ajlDdis1aXB5SjdnM2h6K3NleE1ORjE2QVBITW9RdFoxb3FJNlRuSm9m?=
 =?utf-8?B?bEl3ejJxSDUwZ0gwM2RlOVVrNlVCVVFiSU5oQllnK1h5cTFjU0hVTjlHemVD?=
 =?utf-8?B?aGx1NWhJeENkU05FdzRhZGRRLzBpSGs2WVpHM29CU0RrZzBZeHZTekpaU1VY?=
 =?utf-8?B?NThmVmJVUXY2Z091d2J6OEhtM01UUy91K0R4Q3g3VUxqTjBGUnkrdlpqVmtu?=
 =?utf-8?B?cVpKaGUraEpCZlZNRmYrWklOVEFZc29jaDFUZDRTZEZhLzJvUFI0Vlc4T2w5?=
 =?utf-8?B?T2haVSswMDM2R1R0Rk1iWUV1d20zcVg1MndnU0xheU5WU1dzNWdhQnZYV2U3?=
 =?utf-8?B?YWZJa3FZNXhVQWpzeGJsR0FScGRvanlhMi8yV3A3cUEvbnFvZUcrbllzRTRw?=
 =?utf-8?B?V1lWQngyNTZXcit3ZUhQOGhUaUFSbDZqQmtaR3ZPdzhnWTNQWVJPVm9PdkdD?=
 =?utf-8?B?V1NpdmhkdzN2Z2RpdXBEZjRMdS9PZmt5SzAveVd0MVhrc1F6VmJ3LzFzTHgz?=
 =?utf-8?B?T2hXQ09ERjZ0ZzF4MGxTOWZEQ0M5blVrYzljZjNpOUVDZzhWMGllbGpjRi9q?=
 =?utf-8?B?NnhNQW1mLzlURVJOOE1QcGZlQmp2ZlBEeEV0QVdzamNtdlo2SC9nOEkyWnYv?=
 =?utf-8?B?Y1Y3a21ENEpYT1I5akwzQVF1N0EzTzNnYUxuZlN5WXJ5UERCRmxkMTBnSXk4?=
 =?utf-8?B?d21OUzhMc2krQUI4RHp5MHRoQlpjRXZndDhMcW82S0JWTG5BVkVzb0hxbFAy?=
 =?utf-8?B?WXpmc2c2UTZWMm4vbVFBSllNQTdWK2hEV2JWdHhvbGpFbGVKam9xcDdxUUYw?=
 =?utf-8?B?Yzg0ZXNWdUxFZzVac1Myd2E0czhoMFZIamdueW9vdjQ2MnlJZHV3ZkU1Q2NG?=
 =?utf-8?B?aXZ6azhhRzV4UmFpV3A5QmdzaUxDcmdZZUo4ZU92TnYxdFdsWlRqcmV3REFr?=
 =?utf-8?B?clNscjE2cnJQWHFtb3hWbDdrS3paUjNLbFQ4Zz09?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <77D77DC6EA329845886B6C0E48CF5442@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR08MB10783
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509EF.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	6903c98f-75ef-4fe8-a002-08de30ecfe0f
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|35042699022|82310400026|376014|1800799024|36860700013|13003099007|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SzBQeVpXU3N1Z0k3UVRvUVV2ZDRrMFZnY3cxWkx2RUtzZUpobXMyY1Uzbm44?=
 =?utf-8?B?djhDSlkzc3p3TGZYK1ZPSkhLOCtQeStUS1dRL3NibVhiVnAxOGlMdFJyaTJ0?=
 =?utf-8?B?VnE2ZlZwS3g3WTNWTE1tMXNieW9tcmFmNkFtTHZHZ2dnUmpybytLMVRKZDB6?=
 =?utf-8?B?c2FCYlU4UXdNTFp0RjNpb05GaVBRUHNCS3BIeXdYSXlNenBwRk9LTmFBNjky?=
 =?utf-8?B?d0xDUWFHZ1V5T2NLTGdzSXZKNVhVZzU0cGJhODB5ODRtS3pFM0Q2UEJ5RmdV?=
 =?utf-8?B?ZU8wYmMrUklTZ3BzMWVHZzk1R2VLVWpUT3k2UTU0dEpOaFhEMkdwR2hjTThX?=
 =?utf-8?B?YktNWmlJMTJPOU5mWFlzNm5XbjVFL3FCMngralZWOFB4MzAyOWpMUW9IQjZ4?=
 =?utf-8?B?NzVVVWNvTXVTQ29QSUpUUFlweDhoVzZVOExUS1piVWFGRGFScGlBdGFvcFF4?=
 =?utf-8?B?NCswK1FWbXpUNlcraTQzRExzaUswbFozSm13Qm1oSkp5VVlSNGJnZnJVMk9D?=
 =?utf-8?B?RldRdHhwaExmKzU3aVQ1UEIxcnRFUHRBZjZnMHN2RDNablNqcFozVG14dGl5?=
 =?utf-8?B?ZUg1UnlTQnVzVDVxUHp6ZEpyN2JJU2tPcDF2aUw0L1Q3NmVWT2FKOG1ic29x?=
 =?utf-8?B?cG5ZSTFmSjNQcmYyVEpwRjB2a0d6UUFQVW56QmQxWUVFR0dJRmRpOERaaXVF?=
 =?utf-8?B?WE1yd2VKUENHT3p6R0xzUzcvd3Q5N3pNc1BTWk5uTlo1aVpXNTRpRDR2WGtL?=
 =?utf-8?B?Q3RPOEtJVHB2V3pBeVFacnRsNWtQeHh0NU9ZVGZ5bW9NWVdIYkQxa1g3RWZi?=
 =?utf-8?B?a1lneWkwNVcrcWR1blYwN2FTYnh0dEtkaGNQVmlqbkZ0aXRBUzNaNjFWN1JN?=
 =?utf-8?B?QTJZckFRWW1hWWJOaXVKQXkxWFJqdU96dDhSZGhpa2hOTWd3Q3JIS2FSWnMr?=
 =?utf-8?B?MHhBMFBwVXFidFQ0QXVKS2xKODNDOW84d09lK3BKVTNqcURpNWhPb3VuMWRT?=
 =?utf-8?B?cWdZZEdPVmJqbkxQSlI2VkowemVIVlpGOVkxam1iOVVSZ3ZoTTR2WENoVm9S?=
 =?utf-8?B?NVRUdndCQnBZTHcxdEQ1d3BCcWRuWG9yYlZEYjh5Y2h6UFlJL0NyWkZpcXpC?=
 =?utf-8?B?NDdjMlpNVXNQYjc3VDV0c242MXllaytaVXV4WWV5c3Buakx0U2FXQ0lyNkZt?=
 =?utf-8?B?SlU1L2lqTndyckN0ZVpIaFhEK3VLN1ZHbXdZUE4zMGdoQVlMNVpHM0gxbDBL?=
 =?utf-8?B?akM1cktxa1NMcHVMaTZrWGVnbU03azRoWlFsRlhQVlFPVzNPek1NYWVxSnRS?=
 =?utf-8?B?a1EvZVdPZkdaV21HelF0bEJPZVVHSkVaMGhTTDIvZ3ZaZ1NkTS8yTGJSMUll?=
 =?utf-8?B?eHU4MFRkQjlrQlBxalJOc0RMOUo2b0tmR2ErODRQMlpoenZkYTRBTU5GVEdO?=
 =?utf-8?B?dWVEWDdxVWdPQk4yNTRId3c5bzBGVEdQUGRhSnpSRzJ5UTM3V05YT0tlVTBo?=
 =?utf-8?B?dGVUemw2WnZKeEZyM3RiQ2RLWDJVdHpiaWp1S2FpVWo3ZTJ1RDh5dVp0OGJM?=
 =?utf-8?B?TVFqVEZxYXdlSXNWNy9lcmtWSlJSWEZwQzB3d01SMnJ5OVFjSzRVS0Qya3lz?=
 =?utf-8?B?YjFtdDFrenovRmwrOXRmSDJ6ZHNORFdDVnVPQWorck9ybnUzK0prYUl4NFBW?=
 =?utf-8?B?MVUrdjJVSi8xbEpGMFlQUm44QWJ6Mk5nZzFUQzN4V3Y3d1lqalM2NmVSaDNk?=
 =?utf-8?B?SHBpZTFCT1I3Z1Uwdjl3SzBBOHVTYTloMEl3U0FXUllENGRqcFphbzJDUnJ0?=
 =?utf-8?B?bFVNWDE1a3pTdWs1MjVaK1NlVk9KVXFnWXRkaWRlOUlWdmQ4Z2NRM2d6VC9D?=
 =?utf-8?B?NDFVcUdGUGVzQ1RWU2xMRUlXa01leFJTZmxoWnN3OWlLNWlwME1ZbXBJYzV3?=
 =?utf-8?B?dVpISkVscHg4Z1JpalhwL3pUTU9xTzZ1TVZCL0IyYW1OSlhDV0JWNGRmeHFt?=
 =?utf-8?B?UnBSOURHeHFPb1pWb2ZRcE45Y3BHRmhMTlQxYzBuY29UckFFRFFyZ1ZPV3c1?=
 =?utf-8?B?N0FoRVVpYVZ3WDJnbFpFYTVyNytXdUdrZlcreWVVeG9kTjY1UWIzb3pwNll3?=
 =?utf-8?Q?8ywmtmroNZoOADxN7HYLTuedH?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(35042699022)(82310400026)(376014)(1800799024)(36860700013)(13003099007)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2025 15:20:23.1953
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7554c5f3-6ef0-414b-1d37-08de30ed25d1
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF000509EF.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB5444

SGkgSmVucywNCg0KVGhhbmtzIGEgbG90IGZvciB0aGUgcmV2aWV3Lg0KUGxlYXNlIGZpbmQgbXkg
YW5zd2VycyBoZXJlIGFmdGVyLg0KDQo+IE9uIDEgRGVjIDIwMjUsIGF0IDE1OjQzLCBKZW5zIFdp
a2xhbmRlciA8amVucy53aWtsYW5kZXJAbGluYXJvLm9yZz4gd3JvdGU6DQo+IA0KPiBIaSBCZXJ0
cmFuZCwNCj4gDQo+IE9uIFRodSwgTm92IDI3LCAyMDI1IGF0IDQ6NTLigK9QTSBCZXJ0cmFuZCBN
YXJxdWlzDQo+IDxiZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+IHdyb3RlOg0KPj4gDQo+PiBCcmlu
ZyB0aGUgRkYtQSBoZWFkZXJzIHVwIHRvIHRoZSB2MS4yIGJhc2VsaW5lIGFuZCBmaXggdGhlIGZ1
bmN0aW9uLW51bWJlcg0KPj4gcmFuZ2UgdXNlZCBmb3IgQUJJIGRpc2NvdmVyeToNCj4+IA0KPj4g
LSB1cGRhdGUgRkZBX0ZOVU1fTUFYX1ZBTFVFIHNvIHRoZSBGRi1BIGZ1bmN0aW9uLW51bWJlciB3
aW5kb3cgY292ZXJzIHRoZQ0KPj4gIGZ1bGwgdjEuMiByYW5nZSwgYW5kIGRlcml2ZSB0aGUgQUJJ
IGJpdG1hcCBib3VuZHMgZnJvbQ0KPj4gIEZGQV9GTlVNX01JTl9WQUxVRS9GRkFfRk5VTV9NQVhf
VkFMVUUgaW5zdGVhZCBvZiBoYXJkLWNvZGluZw0KPj4gIEZGQV9FUlJPUi9GRkFfTVNHX1NFTkQy
DQo+PiAtIGRlZmluZSB0aGUgbmV3IHYxLjIgZnVuY3Rpb24gSURzOyBDT05TT0xFX0xPRyBhbmQN
Cj4+ICBQQVJUSVRJT05fSU5GT19HRVRfUkVHUyBhcmUgYWRkZWQgZm9yIEFCSSBkaXNjb3Zlcnkg
ZXZlbiB0aG91Z2ggdGhleSBhcmUNCj4+ICBub3QgaW1wbGVtZW50ZWQgeWV0DQo+PiAtIGV4dGVu
ZCB0aGUgZmlybXdhcmUgQUJJIHRhYmxlIHRvIHByb2JlIFJVTiBhbmQNCj4+ICBNU0dfU0VORF9E
SVJFQ1RfUkVRMi9SRVNQMg0KPj4gLSB3aGlsZSB0aGVyZSwgZml4IGFuIG9mZi1ieS1vbmUgaW4g
ZmZhX2Z3X3N1cHBvcnRzX2ZpZCgpOiB0aGUgY29tcHV0ZWQgYml0DQo+PiAgaW5kZXggbXVzdCBi
ZSBzdHJpY3RseSBzbWFsbGVyIHRoYW4gRkZBX0FCSV9CSVRNQVBfU0laRSwgc28gdXNlID49IGlu
IHRoZQ0KPj4gIGJvdW5kcyBjaGVjaw0KPj4gDQo+PiBLZWVwIEZGQV9NWV9WRVJTSU9OIGF0IDEu
MSBmb3Igbm93OyB3ZSBvbmx5IGFkdmVydGlzZSB2MS4yIG9uY2UgdGhlDQo+PiBpbXBsZW1lbnRh
dGlvbiBpcyBmdWxseSBjb21wbGlhbnQuDQo+PiANCj4+IFNpZ25lZC1vZmYtYnk6IEJlcnRyYW5k
IE1hcnF1aXMgPGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT4NCj4+IC0tLQ0KPj4geGVuL2FyY2gv
YXJtL2luY2x1ZGUvYXNtL3RlZS9mZmEuaCB8ICAyICstDQo+PiB4ZW4vYXJjaC9hcm0vdGVlL2Zm
YS5jICAgICAgICAgICAgIHwgIDQgKysrKw0KPj4geGVuL2FyY2gvYXJtL3RlZS9mZmFfcHJpdmF0
ZS5oICAgICB8IDE4ICsrKysrKysrKysrLS0tLS0tLQ0KPj4gMyBmaWxlcyBjaGFuZ2VkLCAxNiBp
bnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQ0KPj4gDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2Fy
Y2gvYXJtL2luY2x1ZGUvYXNtL3RlZS9mZmEuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS90
ZWUvZmZhLmgNCj4+IGluZGV4IDI0Y2Q0ZDk5YzhmOS4uYzU4N2Y3NmU2M2NhIDEwMDY0NA0KPj4g
LS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3RlZS9mZmEuaA0KPj4gKysrIGIveGVuL2Fy
Y2gvYXJtL2luY2x1ZGUvYXNtL3RlZS9mZmEuaA0KPj4gQEAgLTE2LDcgKzE2LDcgQEANCj4+ICNp
bmNsdWRlIDxhc20vdHlwZXMuaD4NCj4+IA0KPj4gI2RlZmluZSBGRkFfRk5VTV9NSU5fVkFMVUUg
ICAgICAgICAgICAgIF9BQygweDYwLFUpDQo+PiAtI2RlZmluZSBGRkFfRk5VTV9NQVhfVkFMVUUg
ICAgICAgICAgICAgIF9BQygweDg2LFUpDQo+PiArI2RlZmluZSBGRkFfRk5VTV9NQVhfVkFMVUUg
ICAgICAgICAgICAgIF9BQygweDhGLFUpDQo+IA0KPiBUaGlzIGlzIE1BWCsxLCBpZiBJJ20gbm90
IG1pc3Rha2VuLg0KDQpJdCBkZXBlbmRzIG9uIGhvdyB3ZSBzZWUgaXQ6DQotIEZGQSB2MS4yIGRv
ZXMgbm90IGRlZmluZSBjYWxscyBvdmVyIDhFIHNvIGluIHRoaXMgc2Vuc2UgeWVzDQotIFNNQ0ND
IGlzIHJlc2VydmluZyAweDYwIHRvIDB4RUYgZm9yIEZGLUEgc28gaW4gdGhpcyBzZW5zZSB3ZSBh
cmUgbm90IGNvbXBsZXRlbHkNCiBjb3ZlcmluZyB0aGUgU01DQ0Mgc3BhY2UNCg0KSSBtdXN0IGFk
bWl0IGkganVzdCB1c2VkIDB4OTAtMSB0byBjb3ZlciBhbGwgMHg2MCB0byAweDkwIGV4Y2x1ZGVk
IGJlY2F1c2UgaSBkaWQgbm90DQp3YW50ZWQgdG8gaGF2ZSBzb21ldGhpbmcgdG8gYmlnIHdoZXJl
IHdlIHdvdWxkIG5vdCB1c2UgYWxsIGJpdHMuDQoNClNvIEkgd2lsbCBrZWVwIDB4OEYgYWRkaW5n
IGEgY29tbWVudCBzYXlpbmcgdGhhdCBTTUNDQyBpcyByZXNlcnZpbmcNCnRoZSBzcGFjZSB1bnRp
bCAweEVGIGJ1dCBvbmx5IG51bWJlciB1cCB0byAweDhFIGFyZSBkZWZpbmVkIGluIGZmYSB2MS4y
DQpzbyB0aGF0IEZOVU1fTUFYX1ZBTFVFIGlzIHRoZSBmaXJzdCB1bnVzZWQgdmFsdWUgc28gdGhh
dCBJIHdpbGwgYWxzbw0KcmVtb3ZlIHRoZSB0aGUgKzEgYWZ0ZXIuDQoNCj4gDQo+PiANCj4+IHN0
YXRpYyBpbmxpbmUgYm9vbCBpc19mZmFfZmlkKHVpbnQzMl90IGZpZCkNCj4+IHsNCj4+IGRpZmYg
LS1naXQgYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYS5jIGIveGVuL2FyY2gvYXJtL3RlZS9mZmEuYw0K
Pj4gaW5kZXggMWQwMjM5Y2Y2OTUwLi4yYjRlMjQ3NTBkNTIgMTAwNjQ0DQo+PiAtLS0gYS94ZW4v
YXJjaC9hcm0vdGVlL2ZmYS5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYS5jDQo+PiBA
QCAtMTEsNiArMTEsOCBAQA0KPj4gICogICAgICAgICAgICAgICBodHRwczovL2RldmVsb3Blci5h
cm0uY29tL2RvY3VtZW50YXRpb24vZGVuMDA3Ny9hDQo+PiAgKiBGRi1BLTEuMS1SRUwwOiBGRi1B
IHNwZWNpZmljYXRpb24gdmVyc2lvbiAxLjEgYXZhaWxhYmxlIGF0DQo+PiAgKiAgICAgICAgICAg
ICAgICBodHRwczovL2RldmVsb3Blci5hcm0uY29tL2RvY3VtZW50YXRpb24vZGVuMDA3Ny9lDQo+
PiArICogRkYtQS0xLjItUkVMMDogRkYtQSBzcGVjaWZpY2F0aW9uIHZlcnNpb24gMS4yIGF2YWls
YWJsZSBhdA0KPj4gKyAqICAgICAgICAgICAgICAgIGh0dHBzOi8vZGV2ZWxvcGVyLmFybS5jb20v
ZG9jdW1lbnRhdGlvbi9kZW4wMDc3L2oNCj4+ICAqIFRFRUMtMS4wQzogVEVFIENsaWVudCBBUEkg
U3BlY2lmaWNhdGlvbiB2ZXJzaW9uIDEuMGMgYXZhaWxhYmxlIGF0DQo+PiAgKiAgICAgICAgICAg
IGh0dHBzOi8vZ2xvYmFscGxhdGZvcm0ub3JnL3NwZWNzLWxpYnJhcnkvdGVlLWNsaWVudC1hcGkt
c3BlY2lmaWNhdGlvbi8NCj4+ICAqDQo+PiBAQCAtMTAyLDYgKzEwNCw4IEBAIHN0YXRpYyBjb25z
dCBzdHJ1Y3QgZmZhX2Z3X2FiaSBmZmFfZndfYWJpX25lZWRlZFtdID0gew0KPj4gICAgIEZXX0FC
SShGRkFfTVNHX1NFTkRfRElSRUNUX1JFUV8zMiksDQo+PiAgICAgRldfQUJJKEZGQV9NU0dfU0VO
RF9ESVJFQ1RfUkVRXzY0KSwNCj4+ICAgICBGV19BQkkoRkZBX01TR19TRU5EMiksDQo+PiArICAg
IEZXX0FCSShGRkFfTVNHX1NFTkRfRElSRUNUX1JFUTIpLA0KPj4gKyAgICBGV19BQkkoRkZBX1JV
TiksDQo+PiB9Ow0KPj4gDQo+PiAvKg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90ZWUv
ZmZhX3ByaXZhdGUuaCBiL3hlbi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUuaA0KPj4gaW5kZXgg
NmRiZGIyMDBkODQwLi5kN2U2YjZmNWVmNDUgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0v
dGVlL2ZmYV9wcml2YXRlLmgNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUu
aA0KPj4gQEAgLTE1LDYgKzE1LDcgQEANCj4+ICNpbmNsdWRlIDx4ZW4vc3BpbmxvY2suaD4NCj4+
ICNpbmNsdWRlIDx4ZW4vdGltZS5oPg0KPj4gI2luY2x1ZGUgPHhlbi90eXBlcy5oPg0KPj4gKyNp
bmNsdWRlIDxhc20vdGVlL2ZmYS5oPg0KPj4gDQo+PiAvKiBFcnJvciBjb2RlcyAqLw0KPj4gI2Rl
ZmluZSBGRkFfUkVUX09LICAgICAgICAgICAgICAgICAgICAgIDANCj4+IEBAIC00Miw2ICs0Myw3
IEBADQo+PiANCj4+ICNkZWZpbmUgRkZBX1ZFUlNJT05fMV8wICAgICAgICAgTUFLRV9GRkFfVkVS
U0lPTigxLCAwKQ0KPj4gI2RlZmluZSBGRkFfVkVSU0lPTl8xXzEgICAgICAgICBNQUtFX0ZGQV9W
RVJTSU9OKDEsIDEpDQo+PiArI2RlZmluZSBGRkFfVkVSU0lPTl8xXzIgICAgICAgICBNQUtFX0ZG
QV9WRVJTSU9OKDEsIDIpDQo+PiAvKiBUaGUgbWluaW1hbCBGRi1BIHZlcnNpb24gb2YgdGhlIFNQ
TUMgdGhhdCBjYW4gYmUgc3VwcG9ydGVkICovDQo+PiAjZGVmaW5lIEZGQV9NSU5fU1BNQ19WRVJT
SU9OICAgIEZGQV9WRVJTSU9OXzFfMQ0KPj4gDQo+PiBAQCAtMjcwLDYgKzI3MiwxMCBAQA0KPj4g
I2RlZmluZSBGRkFfUlhfQUNRVUlSRSAgICAgICAgICAgICAgICAgIDB4ODQwMDAwODRVDQo+PiAj
ZGVmaW5lIEZGQV9TUE1fSURfR0VUICAgICAgICAgICAgICAgICAgMHg4NDAwMDA4NVUNCj4+ICNk
ZWZpbmUgRkZBX01TR19TRU5EMiAgICAgICAgICAgICAgICAgICAweDg0MDAwMDg2VQ0KPj4gKyNk
ZWZpbmUgRkZBX0NPTlNPTEVfTE9HICAgICAgICAgICAgICAgICAweDg0MDAwMDhBVQ0KPiANCj4g
VGhpcyBpcyB0aGUgMzItYml0IHZlcnNpb24gb2YgdGhlIGludGVyZmFjZS4gVGhlcmUncyBhbHNv
IGEgNjQtYml0IHZlcnNpb24uDQoNCkFjayBpIHdpbGwgYWRkIHRoZSBtaXNzaW5nIGRlZmluaXRp
b24gZm9yIDY0Yml0IGFuZCByZW5hbWUgdGhhdCBvbmUgd2l0aA0KYSAzMiBzdWZmaXguDQoNCj4g
DQo+PiArI2RlZmluZSBGRkFfUEFSVElUSU9OX0lORk9fR0VUX1JFR1MgICAgIDB4ODQwMDAwOEJV
DQo+PiArI2RlZmluZSBGRkFfTVNHX1NFTkRfRElSRUNUX1JFUTIgICAgICAgIDB4QzQwMDAwOERV
DQo+PiArI2RlZmluZSBGRkFfTVNHX1NFTkRfRElSRUNUX1JFU1AyICAgICAgIDB4QzQwMDAwOEVV
DQo+PiANCj4+IC8qKg0KPj4gICogRW5jb2Rpbmcgb2YgZmVhdHVyZXMgc3VwcG9ydGVkIG9yIG5v
dCBieSB0aGUgZncgaW4gYSBiaXRtYXA6DQo+PiBAQCAtMjgwLDExICsyODYsOSBAQA0KPj4gI2Rl
ZmluZSBGRkFfQUJJX0lEKGlkKSAgICAgICAgKChpZCkgJiBBUk1fU01DQ0NfRlVOQ19NQVNLKQ0K
Pj4gI2RlZmluZSBGRkFfQUJJX0NPTlYoaWQpICAgICAgKCgoaWQpID4+IEFSTV9TTUNDQ19DT05W
X1NISUZUKSAmIEJJVCgwLFUpKQ0KPj4gDQo+PiAtI2RlZmluZSBGRkFfQUJJX01JTiAgICAgICAg
ICAgRkZBX0FCSV9JRChGRkFfRVJST1IpDQo+PiAtI2RlZmluZSBGRkFfQUJJX01BWCAgICAgICAg
ICAgRkZBX0FCSV9JRChGRkFfTVNHX1NFTkQyKQ0KPj4gLQ0KPj4gLSNkZWZpbmUgRkZBX0FCSV9C
SVRNQVBfU0laRSAgICgyICogKEZGQV9BQklfTUFYIC0gRkZBX0FCSV9NSU4gKyAxKSkNCj4+IC0j
ZGVmaW5lIEZGQV9BQklfQklUTlVNKGlkKSAgICAoKEZGQV9BQklfSUQoaWQpIC0gRkZBX0FCSV9N
SU4pIDw8IDEgfCBcDQo+PiArI2RlZmluZSBGRkFfQUJJX0JJVE1BUF9TSVpFICAgKDIgKiAoRkZB
X0ZOVU1fTUFYX1ZBTFVFIC0gRkZBX0ZOVU1fTUlOX1ZBTFVFIFwNCj4+ICsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKyAxKSkNCj4gDQo+IERlcGVuZGluZyBvbiB3aGV0aGVyIEZGQV9G
TlVNX01BWF9WQUxVRSBpcyBNQVgrMSBvciBqdXN0IE1BWCwgd2UgY291bGQNCj4gZHJvcCB0aGUg
KzEuDQoNCkFncmVlIGkgd2lsbCByZW1vdmUgdGhlICsxIHdpdGggdGhlIGNoYW5nZSBhYm92ZS4N
Cg0KQ2hlZXJzDQpCZXJ0cmFuZA0KDQo+IA0KPiBDaGVlcnMsDQo+IEplbnMNCj4gDQo+PiArI2Rl
ZmluZSBGRkFfQUJJX0JJVE5VTShpZCkgICAgKChGRkFfQUJJX0lEKGlkKSAtIEZGQV9GTlVNX01J
Tl9WQUxVRSkgPDwgMSB8IFwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGRkFf
QUJJX0NPTlYoaWQpKQ0KPj4gDQo+PiAvKiBDb25zdGl0dWVudCBtZW1vcnkgcmVnaW9uIGRlc2Ny
aXB0b3IgKi8NCj4+IEBAIC01NDksOSArNTUzLDkgQEAgc3RhdGljIGlubGluZSBpbnQzMl90IGZm
YV9oeXBfcnhfcmVsZWFzZSh2b2lkKQ0KPj4gDQo+PiBzdGF0aWMgaW5saW5lIGJvb2wgZmZhX2Z3
X3N1cHBvcnRzX2ZpZCh1aW50MzJfdCBmaWQpDQo+PiB7DQo+PiAtICAgIEJVSUxEX0JVR19PTihG
RkFfQUJJX01JTiA+IEZGQV9BQklfTUFYKTsNCj4+ICsgICAgQlVJTERfQlVHX09OKEZGQV9GTlVN
X01JTl9WQUxVRSA+IEZGQV9GTlVNX01BWF9WQUxVRSk7DQo+PiANCj4+IC0gICAgaWYgKCBGRkFf
QUJJX0JJVE5VTShmaWQpID4gRkZBX0FCSV9CSVRNQVBfU0laRSkNCj4+ICsgICAgaWYgKCBGRkFf
QUJJX0JJVE5VTShmaWQpID49IEZGQV9BQklfQklUTUFQX1NJWkUpDQo+PiAgICAgICAgIHJldHVy
biBmYWxzZTsNCj4+ICAgICByZXR1cm4gdGVzdF9iaXQoRkZBX0FCSV9CSVROVU0oZmlkKSwgZmZh
X2Z3X2FiaV9zdXBwb3J0ZWQpOw0KPj4gfQ0KPj4gLS0NCj4+IDIuNTEuMg0KDQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 15:24:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 15:24:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175806.1500420 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ5kz-0003qi-1D; Mon, 01 Dec 2025 15:24:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175806.1500420; Mon, 01 Dec 2025 15:24:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ5ky-0003qb-UE; Mon, 01 Dec 2025 15:24:04 +0000
Received: by outflank-mailman (input) for mailman id 1175806;
 Mon, 01 Dec 2025 15:24:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WSEW=6H=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vQ5kx-0003qQ-Gz
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 15:24:03 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bf823066-cec9-11f0-980a-7dc792cee155;
 Mon, 01 Dec 2025 16:23:55 +0100 (CET)
Received: from CH0PR13CA0038.namprd13.prod.outlook.com (2603:10b6:610:b2::13)
 by CH0PR12MB8488.namprd12.prod.outlook.com (2603:10b6:610:18d::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Mon, 1 Dec
 2025 15:23:46 +0000
Received: from CH2PEPF0000009D.namprd02.prod.outlook.com
 (2603:10b6:610:b2:cafe::a8) by CH0PR13CA0038.outlook.office365.com
 (2603:10b6:610:b2::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.9 via Frontend Transport; Mon, 1
 Dec 2025 15:23:37 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH2PEPF0000009D.mail.protection.outlook.com (10.167.244.25) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Mon, 1 Dec 2025 15:23:46 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 1 Dec
 2025 09:23:45 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf823066-cec9-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MEZ+ah64FZaR7rGv6dUizT8AsMUuIJ81QJBJh+21qhskDnKnbN7nTRRseRKZhkxhKfAvzghNkPSclxSgTtQ/ZgKxasRyskrXZR99+/+ece6mp361+sIJycsGlbbivy5yeNMuQnjb3O+Cqa/DTXBWC0IToRSr3r7KG9MjWX0xRErrvsRE5xkeshtt4nlKCZVPgbiLN4TkVHpki4afB8XjFmqjmS+BTyZGT0tl5s4vkTTcnuJXqAUEZkQ+oqMR00VO3cyWgevcgKZQyLQxvJMFx9Zo3OoY2OEOuDaTa425tJ3qoCNsYDJWqT7NChn9TjgktuIgKO9sUZHwaHw9Ngh4ww==
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=qi5qthMk8m27brwK0/AIX3bayGyenIbZaP/5taARoxI=;
 b=XxFwh3cg7VNz0NW3fchE2IWQKGS+B7ZD5SnU4Kr/5fWarEV+kiDX/Ji8J6JpyGsJ0CJ1Z1VavEdVpexY+MlLunEeUX/FpvrigccODNz11Ijnqpeb/PZIfRPhmc9QiHAi03U+gRY2P7vm9R4g321CBPTxLKmvWkVqSpnD6vVXLdaG4ZA/+xjXMhyfEx8gVsmNtm9xI0Y9LXRRPhO9dxu92wV4K/5TuFJlSuO8PvM8FO2ltZpmocFECKa1RDoB5ZArHLlFhhf5YCgdK7EOQdBWm9CYJHeD0mc5A/+MdBhL+z60UjaGnXTfy7j1pq6g+N/UQGC24+38v3buly7kHNPaag==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qi5qthMk8m27brwK0/AIX3bayGyenIbZaP/5taARoxI=;
 b=msvXvFqi5ATOyyS5iQRucypzRiYQFezNYRbN77M4bkfks1wJFB8ZjRK/26c/FuKpPxfobJN6a6s28okxTJfbkWu6koMJhBm2/Ed+Dke19eJ+dc2QiIJ/9aoa1fu05d9E5camg2DwDa8Yfds2E9g6N8HVqv6nojoH8SYeFgbu4iY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 1 Dec 2025 16:23:43 +0100
Message-ID: <DEMZF9XKYNUM.1NZ3NE2U54R8L@amd.com>
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Jan Beulich <JBeulich@suse.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Xen-devel <xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH 1/3] x86/svm: Make vmcb_struct private to svm/
X-Mailer: aerc 0.20.1
References: <20251128201937.1294742-1-andrew.cooper3@citrix.com>
 <20251128201937.1294742-2-andrew.cooper3@citrix.com>
In-Reply-To: <20251128201937.1294742-2-andrew.cooper3@citrix.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF0000009D:EE_|CH0PR12MB8488:EE_
X-MS-Office365-Filtering-Correlation-Id: 2268c697-ba77-445e-19a5-08de30ed9f07
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UXBLTWNTUG9PeVVyZEhPNTFNMTlYV2tpQzZibWFFK292dVR2Yk8xUCszNHBt?=
 =?utf-8?B?RjRVUGl4WWNGVUJNb3Q2WXhFU1ovdU9vMnNLa0dJN3Y1T0Ixajd2Y3R4dGRC?=
 =?utf-8?B?SDdzWUVKVGUxSy94SkJmZXhpTStTOUV0dkJqWTlhaEJ2QVpLZmNXVGxJRkE3?=
 =?utf-8?B?Z1dtRkxmS0pON3ZwUjBSS3VXcXdCU0xPeE5JUXU3eG1yNExqMkptUjZLZ0Nk?=
 =?utf-8?B?Z203VnV0Q2FQNjc2RitzQk5MbE00ZXVyUzkzaHNtaXVTZXU2NDhLSGtyNktH?=
 =?utf-8?B?L0VVa2p0NFJhQndTV3N6RG9TWDVTaUZiSENsSlk1bFdEL1YwVUpJTU43NXlj?=
 =?utf-8?B?OEY1MWRwdTVnTGdJa01hUmxjWllNNVg2emorN3pybUlSdzcvNkdZckhRTDIr?=
 =?utf-8?B?cE13Kzl1eUIxcVRZWjEzRjd0ODFCSTZDOWZNN2V3MnpOcmRNZ0QrUmtHNEhy?=
 =?utf-8?B?Mnc5c3QzRlBRS2FrRG1kQWVMVllOYnAydllVeU9LYjhJKzR1bEh5OXRMMkNI?=
 =?utf-8?B?LzhQbDViZnZKUUlQZXBYemJGRGd6T08yd2VvTWFHeU1TN3hXZmptQlhwTlNh?=
 =?utf-8?B?MjBNeUJ5bTd3T1cxVXE0YnRRVHpKeG9pemNtMFJJSkRveU1RVlpMbGNNL3Zu?=
 =?utf-8?B?aGYyWTkyYkpzczV5UVBYSUlTSmpwQnptOW83amNlU0UxQjRDc1cvK0pkSm1i?=
 =?utf-8?B?MDFrV0hwcXBLcTFKdjFIYzFCaDF5UUpNbFZnNnRYdGpjQzl4OVZ1NDZOVWpx?=
 =?utf-8?B?ZnNISlh0SGEyajRLd1loTm1HcEd3eFo5ZGlqdXRXZnpBMmIyald2d0VTT0c1?=
 =?utf-8?B?dnBnVG5OeTAzcG91alpIbTZZMWZGbkUrN3d2VWNLdVpHeG40SDBMYm4ydTEv?=
 =?utf-8?B?Z2hsZmVDdEczYndkUUhYd2lHNXNncHVsbWthUCtvUGNwdFVzNkNQUmU1c0FK?=
 =?utf-8?B?QXRpZUtMSEFaU1ZOVWxOTWQ0dDllblE0QnNQY2t1bFFHUkp0TDUrNTRCdmlq?=
 =?utf-8?B?dEM2dWI1K0E5dGt4QjMyajJCN1hrc01vanJaZXVQYklNRTc3akt3dW4zOTBo?=
 =?utf-8?B?ajJubWJWcWcveC8zTlN1Tm8yUVpRYmI0aUhTWXJWczgxZ1NLSGJZQmU4WXgz?=
 =?utf-8?B?bG1ISTRLRTR3QktqR0tZdVhvUmpabFBuUzRON0lOT0xCUGJ6MHB0c1JHRDc0?=
 =?utf-8?B?cUNQZHZRSEdWMjdDbEE1MHFFdHFmSmxpMWoza2pDcDFNK1Q1VmJEc1ZLRkdV?=
 =?utf-8?B?OWFjWitWZ05rY2JMWDZYclhyWHZmQ3hzV1c3NGVNcVVFQ3V0Qkg2R0lCU0c5?=
 =?utf-8?B?bFBLTFl1eGtyRW02b0E0aXJ6UG0zWEtsc0JvZWtYbkhYYUZXeFFNTklLUTVs?=
 =?utf-8?B?NXNZU2VEODJJWnF1UWcxWEdRUWtidGFVbHpyclBMb1c4a1ExdmpKY3dUUFk2?=
 =?utf-8?B?QVpBTzFEZ1RUUmpVRjBIc2I4RFc1bDY1S0o5Ym1TbFhVa1NFTG1JK0FJeHJB?=
 =?utf-8?B?OWQ0WER6RGRwWG5hVnFmeE9zczZ1TkVUaWlIdWZGMnkxMmdrYXM1blJBWW11?=
 =?utf-8?B?Unp6MXloOGRkSHF4bENlejhqRkZZcWVRVUwwR0NKa3o1RjN4ajRSMDhRaUhQ?=
 =?utf-8?B?VCtVZU1GcHJlV0RnUklPUi9RMTZZTFV4UVhOT1VkVFlHdlJDTXF6OGZXOGt0?=
 =?utf-8?B?Ymk0Wm9leVV6VFJ2NDE5aXNpOGFzUWs2Z2JSMHBKMUtTdG1JaUVlT2hQd2RF?=
 =?utf-8?B?SnhVa0xEZWUxbllsT1A5akc5L3BjdnRpSEtKVlQrR3NMcmY0Qi9hcm11V20v?=
 =?utf-8?B?VEphMUlRV3NWS0dYWFZKb3FDZWlLSGkyd0ZRVFlWT3VzVWZYOFNEZUZvTk9l?=
 =?utf-8?B?NFBZMUtWYUhINHFXUUw2RWpDai8wMHJkTE5mVTJPcEwxMVZ3c0Vpb1ZFTDhD?=
 =?utf-8?B?YVhGVGY0TDBweW9UekZDYmJiWlVWSCt3WGNnL1l5NXpmWU44RUlyYzVQYTV2?=
 =?utf-8?B?dGFySW5jWHN3YVN3aFdyam9rakNOTytPQjNkd25pMmZ2YWVhSlc5R2FhS3Zv?=
 =?utf-8?B?ckc5QXkwTVUrQUNxTDFYeHNWNlJLbTJkR2ptZ3hDN3A2MkN1Qk8zUnI3Y05Z?=
 =?utf-8?Q?2Yh4=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2025 15:23:46.6070
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2268c697-ba77-445e-19a5-08de30ed9f07
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF0000009D.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB8488

Hi,

Code motion is correct according to my scripts. A nit though...

On Fri Nov 28, 2025 at 9:19 PM CET, Andrew Cooper wrote:
> The rest of Xen has no buisness knowing this structure, and it is current=
ly
> included via xen/sched.h into most code.  Create a new private svm/vmcb.h=
.
>
> No functional change.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> ---
>  xen/arch/x86/hvm/svm/asid.c             |   1 +
>  xen/arch/x86/hvm/svm/emulate.c          |   1 +
>  xen/arch/x86/hvm/svm/intr.c             |   1 +
>  xen/arch/x86/hvm/svm/nestedsvm.c        |   1 +
>  xen/arch/x86/hvm/svm/svm.c              |   1 +
>  xen/arch/x86/hvm/svm/svmdebug.c         |   2 +
>  xen/arch/x86/hvm/svm/vmcb.c             |   2 +
>  xen/arch/x86/hvm/svm/vmcb.h             | 617 ++++++++++++++++++++++++
>  xen/arch/x86/include/asm/hvm/svm/vmcb.h | 606 -----------------------
>  9 files changed, 626 insertions(+), 606 deletions(-)
>  create mode 100644 xen/arch/x86/hvm/svm/vmcb.h
>

[snip]

> diff --git a/xen/arch/x86/hvm/svm/vmcb.h b/xen/arch/x86/hvm/svm/vmcb.h
> new file mode 100644
> index 000000000000..68012948a9e3
> --- /dev/null
> +++ b/xen/arch/x86/hvm/svm/vmcb.h
> @@ -0,0 +1,617 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#ifndef SVM_PRIVATE_VMCB_H
> +#define SVM_PRIVATE_VMCB_H
> +
> +#include <xen/types.h>
> +
> +#include <asm/x86_emulate.h>

Worth commenting here that this exists because the segment selector struct =
lives
as part of the x86 emulator even though it's part of the SVM ABI.

In an ideal world this wouldn't exist. Otherwise everything looks fine.

With or without the nit addressed

  Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 15:34:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 15:34:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175817.1500429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ5um-0005Zt-T3; Mon, 01 Dec 2025 15:34:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175817.1500429; Mon, 01 Dec 2025 15:34:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ5um-0005Zm-Q3; Mon, 01 Dec 2025 15:34:12 +0000
Received: by outflank-mailman (input) for mailman id 1175817;
 Mon, 01 Dec 2025 15:34:11 +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
 <SRS0=WSEW=6H=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vQ5ul-0005Zb-7J
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 15:34:11 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2cb11e9d-cecb-11f0-9d19-b5c5bf9af7f9;
 Mon, 01 Dec 2025 16:34:08 +0100 (CET)
Received: from BY5PR16CA0030.namprd16.prod.outlook.com (2603:10b6:a03:1a0::43)
 by PH8PR12MB6795.namprd12.prod.outlook.com (2603:10b6:510:1c6::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Mon, 1 Dec
 2025 15:33:57 +0000
Received: from BY1PEPF0001AE17.namprd04.prod.outlook.com
 (2603:10b6:a03:1a0:cafe::d4) by BY5PR16CA0030.outlook.office365.com
 (2603:10b6:a03:1a0::43) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Mon,
 1 Dec 2025 15:33:57 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BY1PEPF0001AE17.mail.protection.outlook.com (10.167.242.107) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Mon, 1 Dec 2025 15:33:57 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 1 Dec
 2025 09:33:35 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2cb11e9d-cecb-11f0-9d19-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sGUb7wYJCupUaogX6ehOPMDYc3792cyI9wwgYljL1cLsK8CAaAB/QeBXaXR81DRbI6D0gbl9bHOm9bp1xUXH1m7KraRBP5x7gM2FTxaoWOnlOjwqCvjLvgzEW+4tgOmerDDfJ9aWVe7NNQDweQH2XifXEJU7cSIATDLt6o8P91LVr96Lvlk9CQAzKJWUb4IFRhK/T80PWdGhQGbNz+8H3aWbM2tIyVlCOPcrBgGqHJtikiXqbtZJJ5unnayxXBn1wjVTkYEMdoyn8Ac9vsS3Q44phKQxWaXWN7EKBbDb5xTALbBqLrfUh1mZ5iaNTiRD/AbSzzkf6xvoK91gHVSVpQ==
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=mgjZe9wQQsYzCqmXtBpweMGHnOj6z7vqE8VdzpVNkAA=;
 b=bxqJQfHZsXd7vk+O3GPDce4o0nexhSGsIG9jsiJP0W9vj2rZ0pReC/mU6+a6Lap9mWwXPIYdHvQ/pGYlCZcY8T08eNtgWVrAGU3jJ6QdeZ3ZwpHa6frAwpNQoJYwU8GZbB8vdx0Vdwja2v/DUaTT/enhXZK5qBS2A4G0naI4JdSb46ezwOsgDOhnaV+nBXf+rI5MyTDg7Uor+Perfs8CWAlVZ1916F24faaXsL7qSMJz4RNf903QFR8K898F/F5sXckdKOLWWEp46dppLdhgn3XEn96YxFjhYGWpoK37XnTvCNL8dPUAJvsRh8LkHXkPAYUkXrrte5m/7a5eB8m4ZQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mgjZe9wQQsYzCqmXtBpweMGHnOj6z7vqE8VdzpVNkAA=;
 b=ed2jU5GzQ/HY+R7R6c7uLqApo8ByamIjC/PDgbKzJABDt5rTOewpLFMz5Q9tr2WLkAjrrWNqDZOzigW2WTL7DjS24CneuHJharxFg40wny4Wuw6FPcbdt4JW7EI3veUecgc8R8QD8h59jiC3UpP0oKSNlxsFKwWHckyJZi7/HCY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 1 Dec 2025 16:33:33 +0100
Message-ID: <DEMZMSXSLKT1.1MWK08XUVJTJ2@amd.com>
CC: Jan Beulich <JBeulich@suse.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Xen-devel <xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH 2/3] x86/svm: Drop svmdebug.c
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20251128201937.1294742-1-andrew.cooper3@citrix.com>
 <20251128201937.1294742-3-andrew.cooper3@citrix.com>
In-Reply-To: <20251128201937.1294742-3-andrew.cooper3@citrix.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PEPF0001AE17:EE_|PH8PR12MB6795:EE_
X-MS-Office365-Filtering-Correlation-Id: 59d35ec3-5323-4bbc-5e48-08de30ef0b40
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SytiWkZ1ZjVYdmxDWnNYSEJqRGNEYjRDbTg0dmhFRlRhL3RqVjNwY0dSOFMr?=
 =?utf-8?B?OFJqZWxkb2EybDRFNmltSkJXNVBXajZiRnlRdnpmMVN5TzNYVW52L1FFYnNX?=
 =?utf-8?B?S3I2TkFCWGE0Q2cwVEhRZmdqbFJnTHl3elJuWGdrOWFYb2dZMkJLV1FZejMx?=
 =?utf-8?B?empnQXhlcmROVHduMDdOTU5LL09PVUJMK1hvVEFHNHhIWHlNcHlpVDB2clFK?=
 =?utf-8?B?bElETDVCRllWMnlrN2lNNXhleHNNZmNWdzB3a1FrOWo3R2JNVzNQTTN0WHVU?=
 =?utf-8?B?aGs2UWFsVWJoRkN2c0dsVHZ5alphNWV3OStIMVF3aVJuUkcwRWR4MUJueC9x?=
 =?utf-8?B?WCsyU1JqV0lvUytKRm9nVU94dkJjZ28rZXR4R1p2aVg1WSt6WE9IV3djQy9u?=
 =?utf-8?B?WG9oYzhYVklGdTZaRTJsR1cvSWZ0TGNrVUd3WmVrWGRNbDFMcmZ1eW5rUGhR?=
 =?utf-8?B?c0pKK1lRUy9rRUhtQ3pSK1BsSkhRVS9pVFZ2N01HNGFhRkpzSDYyUGpLamp5?=
 =?utf-8?B?RDF2NFJFM2pGZFovOUhnVVFibDdlbmpsZTM2UzFxOHBKeGEzZEcwUWhqOWRW?=
 =?utf-8?B?alljcW1GNU95OTFNUkVDZ3NCZTJMZ3BxY1VFVTBQc29EbjVBUHRFTjZrSlhh?=
 =?utf-8?B?SEFBSkJPbkFodEVRNytFTXRaeGFnREF4WWl0cFo4eHZDd1NLK0dvbjZab0N3?=
 =?utf-8?B?TSt2YVIwTitPZjFnQXpXYndNVXFHN0ZjT3VEV2xwK21uYnVRUlJjSkRzb2xx?=
 =?utf-8?B?MEVEZVdtb1pWTGpDSnZQc3lqckxVZVN1N2tsbU9lKysrV3Z4SGwySkFvSTMz?=
 =?utf-8?B?bmh1K1VCOHhtNnlMM0FiSko0QTZ4dHNsSU81eG1BY1ZXRytqNERSYmJXUTVY?=
 =?utf-8?B?b3M4S3FLaEZUQmxzZEdRd1lvNkVXU3M3RVkrejlFMTZoRW9WYllrdjltdkxE?=
 =?utf-8?B?a29HS1hCYUwzaktTREZtUS96VXh6TmhzSmlWQkJmc3hRWWVEaEpvalQvdSsw?=
 =?utf-8?B?UGRXb2lzMEszTGhLVDZBOUhiVkZxblk3Ty8yNnhUd1FOa01yLyt3UHdSYWhX?=
 =?utf-8?B?dlFTdHZISnJyZnlvdXU0V3hXOVhQNTVqQ2hFZk94UnY2YXhXeEZMQTZkeHoz?=
 =?utf-8?B?ZDNlblFhcTJWVG1qU1JmbFNWWjN3NTdtelVhTnZTTkZzUzBXY0JWaWxSMktl?=
 =?utf-8?B?TGEzVUkxVENvVyttbGROd1phSHlIempOMERTZmlHYWNSd215YWx1b0k3dU5V?=
 =?utf-8?B?YUVBVDFjWEk2ZHVpZHVlZnAvWnVPYkUwOEdNR0tyTEZ5cWFKVmNCWllrbm5v?=
 =?utf-8?B?VWpJcEpNcW5LNHMrYnBnVTNEbjkzVzNhOFJjOHA4bVEyUnhSZlEwMjFFVWEz?=
 =?utf-8?B?TWl2d3RlOURMTlpONUxzSzRhSWYvRXFOQzhQOGdYSlpjZWV2UlNvRWFHcGF0?=
 =?utf-8?B?V1Z1U3hBeTRaR2t0UzJrVC9Vei9Tc01RY1FwbGJEUzUyNHIwYnZ2Qko2d2Js?=
 =?utf-8?B?M0VaUDVmNmNLN1lzSFVsRkVGTnZlR2xEMmcxMnRCU1BUeUxkMC9FTVBhakc3?=
 =?utf-8?B?bGtMVjhFZUw1RCtEc01XSXE2QXRBY2twTis4YVhJVlcxRllubllMSDRJMzVv?=
 =?utf-8?B?RmpjV2I1UlNwSEt5TnpRcWprSGIyS0svVXZNVnhxQytRTENtTnBZa2Jpb0ZR?=
 =?utf-8?B?ak1IL1VVMnJVRk1QSnpWS2hMcGk3S1YvNWdST1pSV3dSdWpXRVBiUjFKVUNa?=
 =?utf-8?B?cE85QWM4Z0xJbFQwaDZvUFFZYU1kUG5yUW1GMndqZndlUGNNZng5MmhGRmFG?=
 =?utf-8?B?OUwwbEZCOTA3c3p5MFZkdktRaTlFNWl6YmJDM2ZDd3VoS0FtcDFzNGlsaDVE?=
 =?utf-8?B?b3MzRUl1RklvcUx4ZFFVYTlPWkp0QkJhRkVDUWg2U1JPM0NWWDNNTm1VbHd5?=
 =?utf-8?B?NmlLRlRVczBKdlBSZXJnYlJtNUZmTXl2OWFrQm4yN0JoQjN1d3JScGNLQW9W?=
 =?utf-8?B?OEkveWVBUUxvdG4rdDVzdno5aHVESGtaa09SMGpYeGF2bCt5Z0FhZlMxOHhG?=
 =?utf-8?B?a1JrN0dzYnBRa0MrSjFPbHhBTDl2aGlWUDBXVGpoczU0aDNsSHJpUWhncDBP?=
 =?utf-8?Q?4txg=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2025 15:33:57.5944
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 59d35ec3-5323-4bbc-5e48-08de30ef0b40
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BY1PEPF0001AE17.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6795

Hi,

On Fri Nov 28, 2025 at 9:19 PM CET, Andrew Cooper wrote:
> Everything here is really VMCB functionality, so merge it into vmcb.c.  M=
ove
> the declarations from the global svmdebug.h to the logical vmcb.h.
>
> No functional change.

Not functional, but there's a single instance of style adjustment on move..=
.

>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> ---
>  xen/arch/x86/hvm/svm/Makefile               |   1 -
>  xen/arch/x86/hvm/svm/nestedsvm.c            |   1 -
>  xen/arch/x86/hvm/svm/svmdebug.c             | 181 --------------------
>  xen/arch/x86/hvm/svm/vmcb.c                 | 159 +++++++++++++++++
>  xen/arch/x86/hvm/svm/vmcb.h                 |   3 +
>  xen/arch/x86/include/asm/hvm/svm/svmdebug.h |   3 -
>  6 files changed, 162 insertions(+), 186 deletions(-)
>  delete mode 100644 xen/arch/x86/hvm/svm/svmdebug.c
>
> diff --git a/xen/arch/x86/hvm/svm/Makefile b/xen/arch/x86/hvm/svm/Makefil=
e
> index 760d2954da83..8a072cafd572 100644
> --- a/xen/arch/x86/hvm/svm/Makefile
> +++ b/xen/arch/x86/hvm/svm/Makefile
> @@ -4,5 +4,4 @@ obj-bin-y +=3D entry.o
>  obj-y +=3D intr.o
>  obj-y +=3D nestedsvm.o
>  obj-y +=3D svm.o
> -obj-y +=3D svmdebug.o
>  obj-y +=3D vmcb.o
> diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nest=
edsvm.c
> index 191466755148..63ed6c86b775 100644
> --- a/xen/arch/x86/hvm/svm/nestedsvm.c
> +++ b/xen/arch/x86/hvm/svm/nestedsvm.c
> @@ -9,7 +9,6 @@
>  #include <asm/hvm/svm/svm.h>
>  #include <asm/hvm/svm/vmcb.h>
>  #include <asm/hvm/nestedhvm.h>
> -#include <asm/hvm/svm/svmdebug.h>
>  #include <asm/paging.h> /* paging_mode_hap */
>  #include <asm/event.h> /* for local_event_delivery_(en|dis)able */
>  #include <asm/p2m.h> /* p2m_get_pagetable, p2m_get_nestedp2m */
> diff --git a/xen/arch/x86/hvm/svm/svmdebug.c b/xen/arch/x86/hvm/svm/svmde=
bug.c
> deleted file mode 100644
> index bdb9ea3583ee..000000000000
> --- a/xen/arch/x86/hvm/svm/svmdebug.c
> +++ /dev/null
> @@ -1,181 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0-only */
> -/*
> - * svmdebug.c: debug functions
> - * Copyright (c) 2011, Advanced Micro Devices, Inc.
> - *
> - */
> -
> -#include <xen/sched.h>
> -#include <asm/processor.h>
> -#include <asm/msr-index.h>
> -#include <asm/hvm/svm/svmdebug.h>
> -
> -#include "vmcb.h"
> -
> -static void svm_dump_sel(const char *name, const struct segment_register=
 *s)
> -{
> -    printk("%s: %04x %04x %08x %016"PRIx64"\n",
> -           name, s->sel, s->attr, s->limit, s->base);
> -}
> -
> -void svm_vmcb_dump(const char *from, const struct vmcb_struct *vmcb)
> -{
> -    struct vcpu *curr =3D current;
> -
> -    /*
> -     * If we are dumping the VMCB currently in context, some guest state=
 may
> -     * still be cached in hardware.  Retrieve it.
> -     */
> -    if ( vmcb =3D=3D curr->arch.hvm.svm.vmcb )
> -        svm_sync_vmcb(curr, vmcb_in_sync);
> -
> -    printk("Dumping guest's current state at %s...\n", from);
> -    printk("Size of VMCB =3D %zu, paddr =3D %"PRIpaddr", vaddr =3D %p\n"=
,
> -           sizeof(struct vmcb_struct), virt_to_maddr(vmcb), vmcb);
> -
> -    printk("cr_intercepts =3D %#x dr_intercepts =3D %#x "
> -           "exception_intercepts =3D %#x\n",
> -           vmcb_get_cr_intercepts(vmcb), vmcb_get_dr_intercepts(vmcb),
> -           vmcb_get_exception_intercepts(vmcb));
> -    printk("general1_intercepts =3D %#x general2_intercepts =3D %#x\n",
> -           vmcb_get_general1_intercepts(vmcb), vmcb_get_general2_interce=
pts(vmcb));
> -    printk("iopm_base_pa =3D %#"PRIx64" msrpm_base_pa =3D %#"PRIx64" tsc=
_offset =3D %#"PRIx64"\n",
> -           vmcb_get_iopm_base_pa(vmcb), vmcb_get_msrpm_base_pa(vmcb),
> -           vmcb_get_tsc_offset(vmcb));
> -    printk("tlb_control =3D %#x vintr =3D %#"PRIx64" int_stat =3D %#"PRI=
x64"\n",
> -           vmcb->tlb_control, vmcb_get_vintr(vmcb).bytes,
> -           vmcb->int_stat.raw);
> -    printk("event_inj %016"PRIx64", valid? %d, ec? %d, type %u, vector %=
#x\n",
> -           vmcb->event_inj.raw, vmcb->event_inj.v,
> -           vmcb->event_inj.ev, vmcb->event_inj.type,
> -           vmcb->event_inj.vector);
> -    printk("exitcode =3D %#"PRIx64" exit_int_info =3D %#"PRIx64"\n",
> -           vmcb->exitcode, vmcb->exit_int_info.raw);
> -    printk("exitinfo1 =3D %#"PRIx64" exitinfo2 =3D %#"PRIx64"\n",
> -           vmcb->exitinfo1, vmcb->exitinfo2);
> -    printk("asid =3D %#x np_ctrl =3D %#"PRIx64":%s%s%s\n",
> -           vmcb_get_asid(vmcb), vmcb_get_np_ctrl(vmcb),
> -           vmcb_get_np(vmcb)     ? " NP"     : "",
> -           vmcb_get_sev(vmcb)    ? " SEV"    : "",
> -           vmcb_get_sev_es(vmcb) ? " SEV_ES" : "");
> -    printk("virtual vmload/vmsave =3D %d, virt_ext =3D %#"PRIx64"\n",
> -           vmcb->virt_ext.fields.vloadsave_enable, vmcb->virt_ext.bytes)=
;
> -    printk("cpl =3D %d efer =3D %#"PRIx64" star =3D %#"PRIx64" lstar =3D=
 %#"PRIx64"\n",
> -           vmcb_get_cpl(vmcb), vmcb_get_efer(vmcb), vmcb->star, vmcb->ls=
tar);
> -    printk("CR0 =3D 0x%016"PRIx64" CR2 =3D 0x%016"PRIx64"\n",
> -           vmcb_get_cr0(vmcb), vmcb_get_cr2(vmcb));
> -    printk("CR3 =3D 0x%016"PRIx64" CR4 =3D 0x%016"PRIx64"\n",
> -           vmcb_get_cr3(vmcb), vmcb_get_cr4(vmcb));
> -    printk("RSP =3D 0x%016"PRIx64"  RIP =3D 0x%016"PRIx64"\n",
> -           vmcb->rsp, vmcb->rip);
> -    printk("RAX =3D 0x%016"PRIx64"  RFLAGS=3D0x%016"PRIx64"\n",
> -           vmcb->rax, vmcb->rflags);
> -    printk("DR6 =3D 0x%016"PRIx64", DR7 =3D 0x%016"PRIx64"\n",
> -           vmcb_get_dr6(vmcb), vmcb_get_dr7(vmcb));
> -    printk("CSTAR =3D 0x%016"PRIx64" SFMask =3D 0x%016"PRIx64"\n",
> -           vmcb->cstar, vmcb->sfmask);
> -    printk("KernGSBase =3D 0x%016"PRIx64" PAT =3D 0x%016"PRIx64"\n",
> -           vmcb->kerngsbase, vmcb_get_g_pat(vmcb));
> -    printk("SSP =3D 0x%016"PRIx64" S_CET =3D 0x%016"PRIx64" ISST =3D 0x%=
016"PRIx64"\n",
> -           vmcb->_ssp, vmcb->_msr_s_cet, vmcb->_msr_isst);
> -    printk("H_CR3 =3D 0x%016"PRIx64" CleanBits =3D %#x\n",
> -           vmcb_get_h_cr3(vmcb), vmcb->cleanbits.raw);
> -
> -    /* print out all the selectors */
> -    printk("       sel attr  limit   base\n");
> -    svm_dump_sel("  CS", &vmcb->cs);
> -    svm_dump_sel("  DS", &vmcb->ds);
> -    svm_dump_sel("  SS", &vmcb->ss);
> -    svm_dump_sel("  ES", &vmcb->es);
> -    svm_dump_sel("  FS", &vmcb->fs);
> -    svm_dump_sel("  GS", &vmcb->gs);
> -    svm_dump_sel("GDTR", &vmcb->gdtr);
> -    svm_dump_sel("LDTR", &vmcb->ldtr);
> -    svm_dump_sel("IDTR", &vmcb->idtr);
> -    svm_dump_sel("  TR", &vmcb->tr);
> -}
> -
> -bool svm_vmcb_isvalid(const char *from, const struct vmcb_struct *vmcb,
> -                      const struct vcpu *v, bool verbose)
> -{
> -    bool ret =3D false; /* ok */
> -    unsigned long cr0 =3D vmcb_get_cr0(vmcb);
> -    unsigned long cr3 =3D vmcb_get_cr3(vmcb);
> -    unsigned long cr4 =3D vmcb_get_cr4(vmcb);
> -    unsigned long valid;
> -    uint64_t efer =3D vmcb_get_efer(vmcb);
> -
> -#define PRINTF(fmt, args...) do { \
> -    if ( !verbose ) return true; \
> -    ret =3D true; \
> -    printk(XENLOG_GUEST "%pv[%s]: " fmt, v, from, ## args); \
> -} while (0)
> -
> -    if ( !(efer & EFER_SVME) )
> -        PRINTF("EFER: SVME bit not set (%#"PRIx64")\n", efer);
> -
> -    if ( !(cr0 & X86_CR0_CD) && (cr0 & X86_CR0_NW) )
> -        PRINTF("CR0: CD bit is zero and NW bit set (%#"PRIx64")\n", cr0)=
;
> -
> -    if ( cr0 >> 32 )
> -        PRINTF("CR0: bits [63:32] are not zero (%#"PRIx64")\n", cr0);
> -
> -    if ( (cr0 & X86_CR0_PG) &&
> -         ((cr3 & 7) ||
> -          ((!(cr4 & X86_CR4_PAE) || (efer & EFER_LMA)) && (cr3 & 0xfe0))=
 ||
> -          ((efer & EFER_LMA) &&
> -           (cr3 >> v->domain->arch.cpuid->extd.maxphysaddr))) )
> -        PRINTF("CR3: MBZ bits are set (%#"PRIx64")\n", cr3);
> -
> -    valid =3D hvm_cr4_guest_valid_bits(v->domain);
> -    if ( cr4 & ~valid )
> -        PRINTF("CR4: invalid value %#lx (valid %#lx, rejected %#lx)\n",
> -               cr4, valid, cr4 & ~valid);
> -
> -    if ( vmcb_get_dr6(vmcb) >> 32 )
> -        PRINTF("DR6: bits [63:32] are not zero (%#"PRIx64")\n",
> -               vmcb_get_dr6(vmcb));
> -
> -    if ( vmcb_get_dr7(vmcb) >> 32 )
> -        PRINTF("DR7: bits [63:32] are not zero (%#"PRIx64")\n",
> -               vmcb_get_dr7(vmcb));
> -
> -    if ( efer & ~EFER_KNOWN_MASK )
> -        PRINTF("EFER: unknown bits are not zero (%#"PRIx64")\n", efer);
> -
> -    if ( hvm_efer_valid(v, efer, -1) )
> -        PRINTF("EFER: %s (%"PRIx64")\n", hvm_efer_valid(v, efer, -1), ef=
er);
> -
> -    if ( (efer & EFER_LME) && (cr0 & X86_CR0_PG) )
> -    {
> -        if ( !(cr4 & X86_CR4_PAE) )
> -            PRINTF("EFER_LME and CR0.PG are both set and CR4.PAE is zero=
\n");
> -        if ( !(cr0 & X86_CR0_PE) )
> -            PRINTF("EFER_LME and CR0.PG are both set and CR0.PE is zero\=
n");
> -    }
> -
> -    if ( (efer & EFER_LME) && (cr0 & X86_CR0_PG) && (cr4 & X86_CR4_PAE) =
&&
> -         vmcb->cs.l && vmcb->cs.db )
> -        PRINTF("EFER_LME, CR0.PG, CR4.PAE, CS.L and CS.D are all non-zer=
o\n");
> -
> -    if ( !(vmcb_get_general2_intercepts(vmcb) & GENERAL2_INTERCEPT_VMRUN=
) )
> -        PRINTF("GENERAL2_INTERCEPT: VMRUN intercept bit is clear (%#"PRI=
x32")\n",
> -               vmcb_get_general2_intercepts(vmcb));
> -
> -    if ( vmcb->event_inj.resvd1 )
> -        PRINTF("eventinj: MBZ bits are set (%#"PRIx64")\n",
> -               vmcb->event_inj.raw);
> -
> -#undef PRINTF
> -    return ret;
> -}
> -
> -/*
> - * Local variables:
> - * mode: C
> - * c-file-style: "BSD"
> - * c-basic-offset: 4
> - * tab-width: 4
> - * indent-tabs-mode: nil
> - * End:
> - */
> diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
> index 44fa76bf0228..b1a79d515143 100644
> --- a/xen/arch/x86/hvm/svm/vmcb.c
> +++ b/xen/arch/x86/hvm/svm/vmcb.c
> @@ -228,6 +228,165 @@ void svm_destroy_vmcb(struct vcpu *v)
>      svm->vmcb =3D NULL;
>  }
> =20
> +static void svm_dump_sel(const char *name, const struct segment_register=
 *s)
> +{
> +    printk("%s: %04x %04x %08x %016"PRIx64"\n",
> +           name, s->sel, s->attr, s->limit, s->base);
> +}
> +
> +void svm_vmcb_dump(const char *from, const struct vmcb_struct *vmcb)
> +{
> +    struct vcpu *curr =3D current;
> +
> +    /*
> +     * If we are dumping the VMCB currently in context, some guest state=
 may
> +     * still be cached in hardware.  Retrieve it.
> +     */
> +    if ( vmcb =3D=3D curr->arch.hvm.svm.vmcb )
> +        svm_sync_vmcb(curr, vmcb_in_sync);
> +
> +    printk("Dumping guest's current state at %s...\n", from);
> +    printk("Size of VMCB =3D %zu, paddr =3D %"PRIpaddr", vaddr =3D %p\n"=
,
> +           sizeof(struct vmcb_struct), virt_to_maddr(vmcb), vmcb);
> +
> +    printk("cr_intercepts =3D %#x dr_intercepts =3D %#x "
> +           "exception_intercepts =3D %#x\n",
> +           vmcb_get_cr_intercepts(vmcb), vmcb_get_dr_intercepts(vmcb),
> +           vmcb_get_exception_intercepts(vmcb));
> +    printk("general1_intercepts =3D %#x general2_intercepts =3D %#x\n",
> +           vmcb_get_general1_intercepts(vmcb), vmcb_get_general2_interce=
pts(vmcb));
> +    printk("iopm_base_pa =3D %#"PRIx64" msrpm_base_pa =3D %#"PRIx64" tsc=
_offset =3D %#"PRIx64"\n",
> +           vmcb_get_iopm_base_pa(vmcb), vmcb_get_msrpm_base_pa(vmcb),
> +           vmcb_get_tsc_offset(vmcb));
> +    printk("tlb_control =3D %#x vintr =3D %#"PRIx64" int_stat =3D %#"PRI=
x64"\n",
> +           vmcb->tlb_control, vmcb_get_vintr(vmcb).bytes,
> +           vmcb->int_stat.raw);
> +    printk("event_inj %016"PRIx64", valid? %d, ec? %d, type %u, vector %=
#x\n",
> +           vmcb->event_inj.raw, vmcb->event_inj.v,
> +           vmcb->event_inj.ev, vmcb->event_inj.type,
> +           vmcb->event_inj.vector);
> +    printk("exitcode =3D %#"PRIx64" exit_int_info =3D %#"PRIx64"\n",
> +           vmcb->exitcode, vmcb->exit_int_info.raw);
> +    printk("exitinfo1 =3D %#"PRIx64" exitinfo2 =3D %#"PRIx64"\n",
> +           vmcb->exitinfo1, vmcb->exitinfo2);
> +    printk("asid =3D %#x np_ctrl =3D %#"PRIx64":%s%s%s\n",
> +           vmcb_get_asid(vmcb), vmcb_get_np_ctrl(vmcb),
> +           vmcb_get_np(vmcb)     ? " NP"     : "",
> +           vmcb_get_sev(vmcb)    ? " SEV"    : "",
> +           vmcb_get_sev_es(vmcb) ? " SEV_ES" : "");
> +    printk("virtual vmload/vmsave =3D %d, virt_ext =3D %#"PRIx64"\n",
> +           vmcb->virt_ext.fields.vloadsave_enable, vmcb->virt_ext.bytes)=
;
> +    printk("cpl =3D %d efer =3D %#"PRIx64" star =3D %#"PRIx64" lstar =3D=
 %#"PRIx64"\n",
> +           vmcb_get_cpl(vmcb), vmcb_get_efer(vmcb), vmcb->star, vmcb->ls=
tar);
> +    printk("CR0 =3D 0x%016"PRIx64" CR2 =3D 0x%016"PRIx64"\n",
> +           vmcb_get_cr0(vmcb), vmcb_get_cr2(vmcb));
> +    printk("CR3 =3D 0x%016"PRIx64" CR4 =3D 0x%016"PRIx64"\n",
> +           vmcb_get_cr3(vmcb), vmcb_get_cr4(vmcb));
> +    printk("RSP =3D 0x%016"PRIx64"  RIP =3D 0x%016"PRIx64"\n",
> +           vmcb->rsp, vmcb->rip);
> +    printk("RAX =3D 0x%016"PRIx64"  RFLAGS=3D0x%016"PRIx64"\n",
> +           vmcb->rax, vmcb->rflags);
> +    printk("DR6 =3D 0x%016"PRIx64", DR7 =3D 0x%016"PRIx64"\n",
> +           vmcb_get_dr6(vmcb), vmcb_get_dr7(vmcb));
> +    printk("CSTAR =3D 0x%016"PRIx64" SFMask =3D 0x%016"PRIx64"\n",
> +           vmcb->cstar, vmcb->sfmask);
> +    printk("KernGSBase =3D 0x%016"PRIx64" PAT =3D 0x%016"PRIx64"\n",
> +           vmcb->kerngsbase, vmcb_get_g_pat(vmcb));
> +    printk("SSP =3D 0x%016"PRIx64" S_CET =3D 0x%016"PRIx64" ISST =3D 0x%=
016"PRIx64"\n",
> +           vmcb->_ssp, vmcb->_msr_s_cet, vmcb->_msr_isst);
> +    printk("H_CR3 =3D 0x%016"PRIx64" CleanBits =3D %#x\n",
> +           vmcb_get_h_cr3(vmcb), vmcb->cleanbits.raw);
> +
> +    /* print out all the selectors */
> +    printk("       sel attr  limit   base\n");
> +    svm_dump_sel("  CS", &vmcb->cs);
> +    svm_dump_sel("  DS", &vmcb->ds);
> +    svm_dump_sel("  SS", &vmcb->ss);
> +    svm_dump_sel("  ES", &vmcb->es);
> +    svm_dump_sel("  FS", &vmcb->fs);
> +    svm_dump_sel("  GS", &vmcb->gs);
> +    svm_dump_sel("GDTR", &vmcb->gdtr);
> +    svm_dump_sel("LDTR", &vmcb->ldtr);
> +    svm_dump_sel("IDTR", &vmcb->idtr);
> +    svm_dump_sel("  TR", &vmcb->tr);
> +}
> +
> +bool svm_vmcb_isvalid(
> +    const char *from, const struct vmcb_struct *vmcb, const struct vcpu =
*v,
> +    bool verbose)

... here, which is probably unintentional. If intentional it's worth mentio=
ning
in the commit message and worth keeping in sync with the form in the protot=
ype.

I personally prefer the former style rather than this one, FWIW.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 15:40:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 15:40:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175834.1500439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ60Y-0007C9-Jf; Mon, 01 Dec 2025 15:40:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175834.1500439; Mon, 01 Dec 2025 15:40:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ60Y-0007C2-Gn; Mon, 01 Dec 2025 15:40:10 +0000
Received: by outflank-mailman (input) for mailman id 1175834;
 Mon, 01 Dec 2025 15:40:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WSEW=6H=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vQ60W-00077M-TK
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 15:40:08 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 00c28e4b-cecc-11f0-980a-7dc792cee155;
 Mon, 01 Dec 2025 16:40:04 +0100 (CET)
Received: from BYAPR02CA0042.namprd02.prod.outlook.com (2603:10b6:a03:54::19)
 by LV2PR12MB5941.namprd12.prod.outlook.com (2603:10b6:408:172::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Mon, 1 Dec
 2025 15:39:56 +0000
Received: from SJ1PEPF000023D5.namprd21.prod.outlook.com
 (2603:10b6:a03:54:cafe::f0) by BYAPR02CA0042.outlook.office365.com
 (2603:10b6:a03:54::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Mon,
 1 Dec 2025 15:40:00 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF000023D5.mail.protection.outlook.com (10.167.244.70) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.0 via Frontend Transport; Mon, 1 Dec 2025 15:39:56 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 1 Dec
 2025 09:39:54 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 00c28e4b-cecc-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vtMoir4tKUxy90QJbmisxFRCUdr0nqcL+ShoiHcU8Zt28hPjYPXMBK6V2ixUEtlQFhxDhksSW6AKUs2oVip8Axg5W+F8Vq7jm7+GzLEDs32oI6pZZpGKQRH+Y1hXiIRkiTsBPS6ubdKRrdvw2t7zwPFyBnKNojrmz+shV9FW/lx2VcrNb3T1SSO0PEEbQ6icikgZfOgJfKONC37pvDQyXPBV2nJBBnlHpys/YK2JlX46xzGyUa2gaevYezRQ5F3fIyT1uO1J4Yn3SBqxJG/MMjUFPcieR48s9whUCGBqpwbqLG5kxc5XHbvAXPX8+C9vHawaSjTyWt5qbCpOxRdmTA==
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=sar9cuNbW5/wix3CLG33GCKNcehMGre7ZojghHkxWpM=;
 b=TDuMDMO2fL1anc0gDf3cvQz8wq7iUkwhqZhKOcd+zH5OpPv4yvwFNk8Qbv0Q9sSJp4FdGlO0gEDjh5e1itbVALg6IUffgnbSxXZdyW18B4BqL38Ui0sbk5IvdaYEhCYXJvhyg3yGNqIbv4NMzdBQstlneb9h8DLi8sAWG2HD/1NbyTaNp4fycyj96bhDv63Qd/weOZbz8DqRjoNqWTSsXpHxR8g98mZnjlgPnWayIeFitZXYUQpud+V4l4tfxaj7wvtcjG1+tUMzQBw1I2IisnyhpjpkB8Zys/TqgPIEzIwdmlCF9Hu0ZxDcWkI/xtS8ty/l8m9xWeELm1+ob3oNbw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sar9cuNbW5/wix3CLG33GCKNcehMGre7ZojghHkxWpM=;
 b=jkzB+79/rKXgHcixrGVa+sKpbOcfbsOie1DTAwHsVytxCTlVqnk/RJNSSU70T6+aUWPe6Km7X959+XEjQBw3d0MHtfpWTcQR++XsotSReNWBaJ+bnihP+ZHXdlIcC5NC2cXJNCk8ewXZO1GgOcfNrCdSPGeLLqf/YQSUZ1KEjug=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 1 Dec 2025 16:39:52 +0100
Message-ID: <DEMZRNCQPXI1.2YAGC4KJQ67RM@amd.com>
CC: Jan Beulich <JBeulich@suse.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Xen-devel <xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH 3/3] x86/svm: Drop svmdebug.h
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20251128201937.1294742-1-andrew.cooper3@citrix.com>
 <20251128201937.1294742-4-andrew.cooper3@citrix.com>
In-Reply-To: <20251128201937.1294742-4-andrew.cooper3@citrix.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000023D5:EE_|LV2PR12MB5941:EE_
X-MS-Office365-Filtering-Correlation-Id: e4cc2e83-e364-4f51-67c6-08de30efe131
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?T2hmbERiamNwOVJiSmNIQjUxam82TExaQndXV2NyclU1em1wWHNnWWt5eCth?=
 =?utf-8?B?WnlZLzJWZXRpSW9rWlU1WmpzMnpTN1FKa2FwQlF2S1dvTFBTSE5WbGhpYjQ2?=
 =?utf-8?B?WVdMcVdBc3lQZ1RGYU90ZGZnbXpHa3VPaWh4UUk5TXJlSUFCTzUxYlRYSTJ2?=
 =?utf-8?B?elV5bUdzODJFTVhEd0l4RXAxVlJWMWRoajROR1RYZSs1Ti94RnRMU2ZEemhn?=
 =?utf-8?B?cXdoTkY0WCtRM3lxUDY4czlOQVhXSFZnWVphSXJIalZDNUZMZC9OQkwwYnpB?=
 =?utf-8?B?Z3RaeE16MVFrNG5QN3ROcFE0dW93azc3akxPNFpYZEk2U1A2bmlrcWpzQk9P?=
 =?utf-8?B?OFpySk0wcG1lY3VsRHlvMTc5WDNveU4wTEhNSXh0NUhMSzZXR3ZwRkJaZmJT?=
 =?utf-8?B?em5JNExxTGt0Vmo1aWVlVlQwWXNHc2pySTNxMkxudDF0V05zQXVibVBYRUN0?=
 =?utf-8?B?cEJSMk95OFA3UEU1enB0STVKbVRxaXhTeUY3ZEQ0MGZnbmZkZUN5cHh6NHNP?=
 =?utf-8?B?ZWF5QkV3ejFhVUlKSDFnR0dzUU1NTS9PWHc0d3NkeFNGYkFNcENMRVpzcEJh?=
 =?utf-8?B?ODZFNmpQOXk3citudm1QMVBGVnViNXZjaHRwOE5kWkNNTDV1NHBmYk9pc3p3?=
 =?utf-8?B?ck9nWnBLUkZWbDFkQjZCenhvZ0dneHNKUFhQWHVrUkcrelJYRkRBTVJHZUIz?=
 =?utf-8?B?aWpEa1JVZTFmbFY3NzFGanZHU2FaazBZOE5pSkI4MS9iTjRXaG1wNjFKeElO?=
 =?utf-8?B?Rjc0SU9lcm9jZ1p3MG1tRCtqTTVUb2g3akhja1lVSnNCOTJUQ2hTNG1sdlM3?=
 =?utf-8?B?NEJWV29uamdPMys5c2MvdnRWYm9DOGl1R3BrL2ZMOWtodkIxSnJKMUhxdU5Q?=
 =?utf-8?B?V2xPWmw3K2Q2M000OEgvT3FwZEVMZ0M0RlZsQVhscExXY1BDd2NBZ3crNktQ?=
 =?utf-8?B?ZUpkNDVjNWV0YVR0SU9WazJMM1lsc0k3bmdxNUZxUjJsQmpKd2RQOHFudWVW?=
 =?utf-8?B?clNYVnRPMkpUN1drd3dQMVFPQ0lTR3ozUlY2ZjZOVGFpWjRJVjRTdVNRVHRK?=
 =?utf-8?B?SlgvM25oeHVtc1N3Y1VHNFRZT2RlcVYwOWFITHplOWRSc0d5VklvNXB6UEsr?=
 =?utf-8?B?SDBjcURuZFBxaEtkSWx5dTFhY3E0Y2Nyc3pIQ0N2MjZZaUE2eWkzS1BCVGJ6?=
 =?utf-8?B?RU4ycFg0TFRmMk5lWmdYaWhiakhIeGMyS0IyWC9GV3l4ZTg0MWFJOGU1Rk9P?=
 =?utf-8?B?bHhlK1dKS3BJVGh4dmFuRUZNcXZVcHlEK1RGU25UN1RneTdtWkFEOHd1RU9s?=
 =?utf-8?B?NXBVbkhZU1Jkem1hRkRWYWtuTndHU25Zc0g2ZkltTnd4K2RDTlhvWlFlWU10?=
 =?utf-8?B?aTcwYTQyYXQzbFpZbkZtMzZMUENkcmgxRWFMR2s0bTVPM1hFSTgrOEZlK0xi?=
 =?utf-8?B?eVJEdzBTZTBOQ05IaDRBTy93bnUvV2Z4U2RHY3ZwYzdLejlFZ0xRVkE2S2w4?=
 =?utf-8?B?dU9QeEg0N0ZhKyt2MDNObldKa2tLY3FYamZFNDFLZVkzVGNHQ1laaVVQTC9w?=
 =?utf-8?B?eENiSzV6bFpLUVV0MVFzRGVrWEN6aFNJaHZiNXVjcytaWmZCOEdBYTVUNFEv?=
 =?utf-8?B?c0Z5U1lCZjRKTFpJYXc1K21kLzF3NG5nM0JiZmdxN2NxZ0I5cENKNW9HQW9n?=
 =?utf-8?B?SFQ5NDFndmdGZUpVd3FQZk8yV2NwVy9CVSttZFZjYlBBbWZOUUNTZTc1cHU2?=
 =?utf-8?B?d05SbE8wVExUcnF6NHcvMk1VOWFYZHVNUFowcnR1RVhMbnlqamxlTUZLVUlE?=
 =?utf-8?B?dU9jL1k3YW9kQkdUQ0VVNGhTK3dqN3RmMHE4cW04MVg5TExnc3d3SVlJR21K?=
 =?utf-8?B?Sy9LZUdweHFlcG1wR3lLWGVmS05XanNGYVJDVzE1dkwrL0szdlJhQThmb3Jl?=
 =?utf-8?B?Mkt2TmJoMjNKMzg4cHB5ZC84MDQrbWJDRUY5QUlSODMyZU9FZEJmbFN0MnVw?=
 =?utf-8?B?c0dxNkIxUGxPY3FmdWpDWWFaNkdIaGFBbmVXd1FiYU5xbDZ6R0dwTFBic1I1?=
 =?utf-8?B?ZzNTSEZiTGJPVXBrN2dIR2pqYkVlTWk0ZzYrQ0NkOUdPQXZjOW9sZzZZT016?=
 =?utf-8?Q?r5us=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2025 15:39:56.5525
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e4cc2e83-e364-4f51-67c6-08de30efe131
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000023D5.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5941

On Fri Nov 28, 2025 at 9:19 PM CET, Andrew Cooper wrote:
> svmdebug.h now only contains the declaration for svm_sync_vmcb(), despite=
 the
> function being implemented in svm.c.  Move the declaration into svm.h
>
> No functional change.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> ---
>  xen/arch/x86/hvm/svm/svm.c                  |  1 -
>  xen/arch/x86/hvm/svm/svm.h                  | 17 +++++++++++++++++
>  xen/arch/x86/hvm/svm/vmcb.c                 |  2 +-
>  xen/arch/x86/include/asm/hvm/svm/svmdebug.h | 16 ----------------
>  xen/arch/x86/include/asm/hvm/svm/vmcb.h     | 15 ---------------
>  5 files changed, 18 insertions(+), 33 deletions(-)
>  delete mode 100644 xen/arch/x86/include/asm/hvm/svm/svmdebug.h
>
> diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
> index 14b3a427e642..15d45cbb57c5 100644
> --- a/xen/arch/x86/hvm/svm/svm.c
> +++ b/xen/arch/x86/hvm/svm/svm.c
> @@ -27,7 +27,6 @@
>  #include <asm/hvm/nestedhvm.h>
>  #include <asm/hvm/support.h>
>  #include <asm/hvm/svm/svm.h>
> -#include <asm/hvm/svm/svmdebug.h>
>  #include <asm/hvm/svm/vmcb.h>
>  #include <asm/i387.h>
>  #include <asm/idt.h>
> diff --git a/xen/arch/x86/hvm/svm/svm.h b/xen/arch/x86/hvm/svm/svm.h
> index f5b0312d2dcf..cfa411ad5ae1 100644
> --- a/xen/arch/x86/hvm/svm/svm.h
> +++ b/xen/arch/x86/hvm/svm/svm.h
> @@ -78,6 +78,23 @@ unsigned int svm_get_task_switch_insn_len(void);
>  #define _NPT_PFEC_in_gpt       33
>  #define NPT_PFEC_in_gpt        (1UL<<_NPT_PFEC_in_gpt)
> =20
> +/*
> + * VMRUN doesn't switch fs/gs/tr/ldtr and SHADOWGS/SYSCALL/SYSENTER stat=
e.
> + * Therefore, guest state is in the hardware registers when servicing a
> + * VMExit.
> + *
> + * Immediately after a VMExit, the vmcb is stale, and needs to be brough=
t
> + * into sync by VMSAVE.  If state in the vmcb is modified, a VMLOAD is
> + * needed before the following VMRUN.
> + */
> +enum vmcb_sync_state {
> +    vmcb_in_sync,
> +    vmcb_needs_vmsave,    /* VMCB out of sync (VMSAVE needed)? */
> +    vmcb_needs_vmload,    /* VMCB dirty (VMLOAD needed)? */

extra comma on move, but this is better, IMO.

  Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 16:02:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 16:02:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175851.1500454 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ6MQ-0002UY-Mp; Mon, 01 Dec 2025 16:02:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175851.1500454; Mon, 01 Dec 2025 16:02:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ6MQ-0002U5-IT; Mon, 01 Dec 2025 16:02:46 +0000
Received: by outflank-mailman (input) for mailman id 1175851;
 Mon, 01 Dec 2025 16:02:45 +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
 <SRS0=R1GK=6H=bounce.vates.tech=bounce-md_30504962.692dbc21.v1-48f594ec5e2d46d98c7318464bdca1c2@srs-se1.protection.inumbo.net>)
 id 1vQ6MP-0002Ro-BC
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 16:02:45 +0000
Received: from mail132-18.atl131.mandrillapp.com
 (mail132-18.atl131.mandrillapp.com [198.2.132.18])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2b2bbcf0-cecf-11f0-9d19-b5c5bf9af7f9;
 Mon, 01 Dec 2025 17:02:43 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-18.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4dKpZn0pK2zCf9RN7
 for <xen-devel@lists.xenproject.org>; Mon,  1 Dec 2025 16:02:41 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 48f594ec5e2d46d98c7318464bdca1c2; Mon, 01 Dec 2025 16:02:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b2bbcf0-cecf-11f0-9d19-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1764604961; x=1764874961;
	bh=wTQxpQQfgPrjbY7oIt614N2tDGiZ1nm5F0FQrhDGsts=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=n8WTVJa68gvA6/8QCRkaRQK9xKMaRihyoVp6ho8bOt5/3cRn4c5P6I1rCDJdzbi2p
	 ElJo0P79RBM/qojvB8ZSyfJxKCXkpBJJG1amfH0djmVI7M/WjFpiB1Orcv40GI31fF
	 YB6NRX/wRxtBsmk+mn2frRq1U0dFoZ/mM7UDWZbvWvZluoNK7NU4FmAQ1j84dbuLvQ
	 ALSh2pqpTY/QxxKWP0qBxHfIcjyUnwRemZ9KAwIWg90NYG0cQJe9Ix/Ix7CQNZcBPi
	 Ch88hcsuDepuXK5NkoPErWLYAoNyvmyPf4iBO3RH8h6Rye0JTTIVp/xiBTA3WXgoau
	 wQ7RdmBkCGOlA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1764604961; x=1764865461; i=julian.vetter@vates.tech;
	bh=wTQxpQQfgPrjbY7oIt614N2tDGiZ1nm5F0FQrhDGsts=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=ewShey7UfWIxn/iLdwDXFhOOnVWqx/gHiiQsbzcWoWeJt4fr68RS/f3juDF9C3hO+
	 DmvQBxhhFLQPxlt/8fNezP8y90ieKr5Z7sQ7p9/guSS8HGzZYHRhq6G42doxoXJUSs
	 0bP3JOWCxoOSNPBpCmJuQNmLimQBDgJ6McjqMqYDfoOuVUX32wdKAlkZzmG15wmfDl
	 Uo+H3bI3VAql1mGK2jqEulki7sSzIZijZIsC8LzMjzUIltBPExr9vmKaRnCK04feow
	 V/NhHb0+gU8fvpeSgWJe2j+UNp7pvu7MlopQQ8ICr5F7m9KeTTA7fV79sN0wBQfeDN
	 GrxOPMXKNHwNQ==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20x86/efi:=20Remove=20NX=20check=20from=20efi-boot.h?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1764604951909
Message-Id: <c556d983-29da-467c-9787-a7d08b0b8f3c@vates.tech>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>, "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>, "Teddy Astie" <teddy.astie@vates.tech>
References: <20251127143136.1598354-1-julian.vetter@vates.tech> <3653404b-0428-4dae-912f-18c4f8e74853@citrix.com> <83850159-6b76-4127-a689-e83a84c71e4f@vates.tech> <ac7c40e6-70d9-4141-bcb3-407e531d17ee@citrix.com>
In-Reply-To: <ac7c40e6-70d9-4141-bcb3-407e531d17ee@citrix.com>
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.48f594ec5e2d46d98c7318464bdca1c2?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251201:md
Date: Mon, 01 Dec 2025 16:02:41 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 11/28/25 7:25 PM, Andrew Cooper wrote:
> On 28/11/2025 1:19 pm, Julian Vetter wrote:
>> On 11/27/25 16:20, Andrew Cooper wrote:
>>> On 27/11/2025 2:31 pm, Julian Vetter wrote:
>>>> Currently Intel CPUs in EFI mode with the "Execute Disable Bit" disabl=
ed
>>>> and the 'CONFIG_REQUIRE_NX=3Dy' fail to boot, because this check is
>>>> performed before trampoline_setup is called, which determines if NX is
>>>> supported or if it's hidden by 'MSR_IA32_MISC_ENABLE[34] =3D 1' (if so=
,
>>>> re-enables NX).
>>>>
>>>> Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
>>> Lovely...=C2=A0 This isn't the only bug; there's another one from the V=
ates
>>> forums about AMD CPUs which I haven't gotten around to fixing yet.
>>>
>> Thank you. I will have a look. I haven't seen this thread.
> 
> https://xcp-ng.org/forum/post/80714
> 
> But the tl;dr is that AMD have introduced a firmware option to disable
> NX.=C2=A0 Unlike Intel, there's no positive way to know you've reactivate=
d it.
> 

Yes, I found the thread. Thank you. I have now tested on 3 different AMD 
machines as well:
* Laptop with an Ryzen 9 5900HX -> XN not exposed via BIOS
* Beelink with AMD Ryzen 7 6800H-> XN exposed via BIOS -> XEN fails to 
boot if disabled
* Workstation with AMD Ryzen 5 7600 -> XN exposed via BIOS -> XEN fails 
to boot if disabled

again, I booted all machines via efi -> grub -> multiboot2 and I end up 
in the same "This build of Xen requires NX support", as on the Intel 
machines. But, as you explained the code path is the same, and the check 
even later than on Intel machines. So, no surprise.

> A conversation with AMD has revealed that there's no capability to
> prevent setting EFER.NXE, and that NX is always available in practice.
> I'm pretty sure the firmware is just clearing NX in the CPUID Override MS=
R.
> 
> However, to reactivate this safely, we need to do a wrmsr_safe(), which
> means we need to delay setting NXE until exception handling is available
> which is rather later on boot.=C2=A0 There's also a tangle with the
> order-of-initialisation of the CPUID Override MSRs which I found
> recently while doing something else.
> 
> The other observation is that, even on a STRICT_NX build of Xen, we can
> boot into __start_xen() because we can't insert NX into the pagetables
> that early.=C2=A0 In fact it's quite late that we lock down permissions; =
see
> the calls to modify_xen_mappings() in __start_xen().
> 
> Given that we need to be this late for AMD, we can also move the Intel
> logic later (effectively reverts part of the original work; sorry
> Alejandro) which means we can also use safe accessors, and we don't need
> to worry about the divergent early paths.
> 
>>
>>> Do you have any more information about which system looks like this?
>>>
>> I'm not sure if I understand your question correctly, but I was just
>> booting an Intel based machine newer than ~2012. I have tested this on 4
>> different machines, on which 3 hit this code path. One was a HPE
>> ProLiant m510 Server with a XEON CPU
> 
> Broadwell.
> 
>> , second was a Mini PC with Celeron CPU,
> 
> Sorry, not enough information here to figure out the microarchitecture.

Alder Lake Celeron.

> 
>> and third was an old Intel NUC DCCP847DYE also with a Celeron CPU.
> 
> Sandy Bridge.
> 
>> The only system where I couldn't reproduce the issue was an old
>> workstation with a Gigabyte mainboard. It has the flag in the Bios to
>> set MSR_IA32_MISC_ENABLE, but I'm not sure if it was actually booting
>> via UEFI.
> 
> Same, not enough information here.

Ivy Bridge (Intel Core i5-3470)

> 
> But, it's clear that Intel's XD-disable is still honoured in EFI mode on
> a wide range of systems, and that we need a fix for UEFI.
> 
>>   I will verify this on monday. I booted all the 3 other systems
>> via UEFI -> Grub -> multiboot2. My grub entry looks like this:
>>
>> multiboot2 /boot/xen.gz dom0_mem=3D2656M,max:2656M watchdog ucode=3Dscan
>> dom0_max_vcpus=3D1-8 crashkernel=3D256M,below=3D4G console=3Dvga vga=3Dm=
ode-0x0311
>> module2 boot/vmlinuz console=3Dhvc0 console=3Dtty0 init=3D/bin/sh
>> module2 boot/initrd-dom0
>>
>>> trampoline_setup isn't executed on all EFI boots.=C2=A0 I had a differe=
nt fix
>>> in mind, but it's a little more complicated.
>> Aha. yes, I didn't thought about other code paths.
> 
> https://xenbits.xen.org/docs/latest/hypervisor-guide/x86/how-xen-boots.ht=
ml
> 
> Here's something I put together to cover some of these details.=C2=A0 But=
,
> most of the detail is in the source only.
> 
> ~Andrew



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Dec 01 16:02:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 16:02:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175849.1500450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ6MQ-0002S6-EF; Mon, 01 Dec 2025 16:02:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175849.1500450; Mon, 01 Dec 2025 16:02:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ6MQ-0002Rz-Am; Mon, 01 Dec 2025 16:02:46 +0000
Received: by outflank-mailman (input) for mailman id 1175849;
 Mon, 01 Dec 2025 16:02:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WSEW=6H=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vQ6MO-0002Ri-IF
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 16:02:44 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 298baf14-cecf-11f0-980a-7dc792cee155;
 Mon, 01 Dec 2025 17:02:40 +0100 (CET)
Received: from CH2PR12CA0028.namprd12.prod.outlook.com (2603:10b6:610:57::38)
 by DM6PR12MB4468.namprd12.prod.outlook.com (2603:10b6:5:2ac::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Mon, 1 Dec
 2025 16:02:36 +0000
Received: from DS3PEPF000099DD.namprd04.prod.outlook.com
 (2603:10b6:610:57:cafe::70) by CH2PR12CA0028.outlook.office365.com
 (2603:10b6:610:57::38) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Mon,
 1 Dec 2025 16:01:46 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS3PEPF000099DD.mail.protection.outlook.com (10.167.17.199) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Mon, 1 Dec 2025 16:02:35 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 1 Dec
 2025 10:02:34 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 298baf14-cecf-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BTPlRgXmZ6sGzvtnxMZGAk+9W9kIH0+457IMTsd3z0+8U+xUUS8OKi2/epJ3B/qPw/Ywu4T7qu2SRzyl2P77dWb/gwl+BSYEF0jLDA+cgRJPRBSd+xBWD/10z7hizvPSvk/e4AEFBbAaye9J4M9QYl6RqfpN3gXT9hKM7atDulnmJvAOqvNdsQjebgI43O5L5xTBttgWBfG+N2YwKVMNWPESaisOIMoLAi5KXjTd38EKsuyLLAZfEW6bp1yUH9hnlEqk7lTIcxO9F6lmvJPPNDQ9jOM1+pFsIdfm3oX1we+XXQeqNCnkk7LgUBeniuDQ1Czi/tjlM0RJzPXYrRwrKQ==
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=5wnM6YZ9GXbG4PWy1OEPQoo1KbQ/Pc/X5oKx+uTb8Ew=;
 b=FwGNm2XE3hn6Ln68qmQ2jI9T9XqYWMyQOG13U6SwlzGoA1FYBAe8UNTagXI+ntIBhGhE84xNMJTvBVDZ3sEp6ZnuA6NYntmW8ZTNDAEUupyZLQg2OEd1HjuTycrtt6RL+frtyAZBr3dGlY493/OCPDc7Im5xLrG9cFr3YwVcQtnrJxYR1q8BlNprz3CLYH49sgv9ilFMVDKRNPNcCEx9IdS1LI+VCyjSpNC79sCbgnLechpU4rEvHS77xMQLEJvSOaV0AVGzrqr5OetvSYVGigIaW3i8xyTv8CXSTV35rc/Gmpg3AVnhgDplOk/tUlrR/tUc4k5RxLJnp2ZppdXBiw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5wnM6YZ9GXbG4PWy1OEPQoo1KbQ/Pc/X5oKx+uTb8Ew=;
 b=v9Ciudpl1ZqVIbOVWS8COkkEGxTqwHLr0mYUMx4zcqKfdDU2xQXAghTMY0ZW1BC+MA9uJ+T0bzesrbIKMH53uPAafPPnpft4RCPoEi+cLOC3bhczPhM3FTBp8u8NUFKWQSNbGRf9omtzBxR9IYeCqXuKazmudaOR5wdlOarBUUY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 1 Dec 2025 17:02:33 +0100
Message-ID: <DEN090BAVOTH.2S8BW9I0HVMP8@amd.com>
CC: Jan Beulich <JBeulich@suse.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Xen-devel <xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH] x86/hvm: Unilaterally inject #UD for unknown VMExits
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20251128174735.1238055-1-andrew.cooper3@citrix.com>
 <DEMYRBFJE6YM.1I0BH2BFD5H72@amd.com>
In-Reply-To: <DEMYRBFJE6YM.1I0BH2BFD5H72@amd.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF000099DD:EE_|DM6PR12MB4468:EE_
X-MS-Office365-Filtering-Correlation-Id: 2651ed49-f411-43e8-962b-08de30f30b4a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bFd5N210K3VucDA3bDVNU3ZMNGxRZE01RVFYbUVSYmJIRW1leStjWkNlWUtw?=
 =?utf-8?B?R0RLV05GbkNja3QzbCtudWM5dEM1dStzQVNRaDZQbEp3cXdVSGZHZkV5cDVO?=
 =?utf-8?B?OEpzM3Q4RVZzWjV2NG10cVM5MC94eVJnRk1WZGJRYURyRFcrUzlYSjVHOEtw?=
 =?utf-8?B?dEdldzN3QURyNkxqdklqVGxjaU03L2hDalVYSXdyeGthQytyd1hsYitvcUxC?=
 =?utf-8?B?djU5TmZnd3B1ai80Z0owTUtiUmtPZ01UTko3b0VJcnBBWklhR3l2OExRbVlV?=
 =?utf-8?B?ZVowVVFqanNnRzMrS2M1VXFIUWswMml1NDVCWkRKODRtVmE2MWxrL1kwM0FT?=
 =?utf-8?B?Ymp2Y0JnQXRXMmc3MUVib1NLQ05OT3BaejMwNXh1YzlDSGZnK0h6UFV5UmFz?=
 =?utf-8?B?UFdYcThjeGxSc1NmMllXRzNsbW5qRWVjaEh4a2N1dmI2emw0aXVlMWh5aGx5?=
 =?utf-8?B?UjhCVkE0WVVRWlM3dE1RSVBxYXNSUlhvSXArSEszOUFTdG5vRG1qUGc0R3dh?=
 =?utf-8?B?OUk3cXpDUFQrV3ZZMHVkelFuSUZVT0w2OU1WT3VxREpGRHBNUW04bEN3d25D?=
 =?utf-8?B?dEdoSWNzUkI2bjFYbmNONWJ0a3RhUWFCMVR2MWZxMnVuMDVCeVVlQ2pHRUF0?=
 =?utf-8?B?WUxWajkrMkFHWWpOVldNRUx0UkxrS0VIMUFJVS9OdERicUR3cG9mMlJNNFUv?=
 =?utf-8?B?bGF6TmhiQjNnMWFyd0ZZeHc3RWR5K0RXTUNMdFNBVVZ0amR2R2NwcUNEZ1Fa?=
 =?utf-8?B?V2JJb0xYYm5KUHlXUXFBeXo2UkVzYWF1SEgzYzhtMHVHWFpoYW5xUklEQk5T?=
 =?utf-8?B?OXNKOVpwcXdWQklBYXZ4Q20vbFYveHk4ZzdqaDlwTnA0TkFteHdsQW9QR09G?=
 =?utf-8?B?eGhnTXVpdnk0Zmp1aWQ2am01dloramRCRzF4dnBTMWFrS2ljSUtZQkNkbnRC?=
 =?utf-8?B?b1c4MzdkZHJObEMwaFFmUVRpdnlydk1LVlhvTEhzS0ZIdzdmcElJZk1DYlZv?=
 =?utf-8?B?VjNqOGorc29UMGFoV1BWVU9jRDFmZmlQZkNjeng1ZDBxbk9BUVFRNTFvZFRG?=
 =?utf-8?B?MEFPNEFvcjcraXZlZitmdW9yNkJYR0NqanVTVXhKSkwxK0V4Y3JIQkwvTmd5?=
 =?utf-8?B?eW1vRG5HMUlwTlRzZ2Q4TFF0TVVTQStPQ3JYKzFteHF2YjYyU1pFRU5kUmcr?=
 =?utf-8?B?R3c3S2Y1Y1VPQWM2aStLRjNyR0Y5Qnl6TGdLZUhyVm5SVEM3WndjSkx0ZHNT?=
 =?utf-8?B?M0pySFBZWkM3aXZxVWowUlNtZkxLVk8xUG4zbGpsd3NYR1J4K2dFcGM5aTVk?=
 =?utf-8?B?NTZMSDB6TVU1dkM0VWRVOWpxS0V5WUkyKzcxZ1B5YUFDVnk0L2N1M1ZpZ2cx?=
 =?utf-8?B?ZS81VFhydnA1bHgxM2IzVUQzMkJHR1oybzFMc3UzbXZvSnRLdW1UdW5xV0ht?=
 =?utf-8?B?YVBwQXZXWFJDMWlXYzdpdjZ5QjhWVWM5NDJaem5SWHhkSmMweDlKVlJ3bHBj?=
 =?utf-8?B?UUwycDVxYWxBUWlNaEFCY3AwMDVPdGljTmxUVG82UlBrV1NmRHZxNGowY1dq?=
 =?utf-8?B?elc4WnBocXlkZ01zdXF1SWtST0RJd1VMNERtVlJlcTcwNVhIWjFJbEhrd1hr?=
 =?utf-8?B?NTFsOXB5WUxHUmNMakhwOFN5eHZJdWRibU52SW5mNzdjUGlUeG8yd0ZRYmg0?=
 =?utf-8?B?V1RRcGJKcU1CRHlkOU9HaUFxeWlZeUdjWFlaQWdQMkI5R1JXbytXUDRIRUow?=
 =?utf-8?B?bWx5WjhLTjNydGc1KzVtV0NJS2NoNVJRYlNUR3pLWWthQkhUWU5OT3ZzVHZi?=
 =?utf-8?B?ckxYdll2VERVTENaTTNVUWYvY0p4b2hSU2NublhzdkpnZ0kvK2xjc2UxZmVw?=
 =?utf-8?B?a3VWY3N1OUFxbTVwR0UzNmUzZ1A5QkJINGYyall1c2NEaVBWMm81ai92Rk1I?=
 =?utf-8?B?QWplallRWThvTTZIaWJLdHRXOWdBZ2Jma0RObXNITjJxZmhmTHRUNjE0MGpO?=
 =?utf-8?B?UkJKZGR1b09FeGZBTlRFbXJVa2gya1pESTlFVzl5Q1lpakFyZUxXUWFFKzcx?=
 =?utf-8?B?dHEvSDVMTlJkcGZlbFMwdVhMNjFnTmtDeDV1TFZKcmlLYUEwNFB1bGUyYzNy?=
 =?utf-8?Q?g6lo=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2025 16:02:35.7346
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2651ed49-f411-43e8-962b-08de30f30b4a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099DD.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4468

On Mon Dec 1, 2025 at 3:52 PM CET, Alejandro Vallejo wrote:
> On Fri Nov 28, 2025 at 6:47 PM CET, Andrew Cooper wrote:
>> While we do this for unknown user mode exits, crashing for supervisor mo=
de
>> exits is unhelpful.  Intel in particular expect the unknown case to be #=
UD
>> because they do introduce new instructions with new VMEXIT_* codes witho=
ut
>> other enablement controls.  e.g. MSRLIST, USER_MSR, MSR_IMM, but AMD hav=
e
>> RDPRU and SKINIT as examples too.
>
> I don't know how often Intel adds intercepts (or whatever the VMX equival=
ent is)
> without default-off knobs, but there's a potentially dangerous assumption=
 here
> about all intercepts being synchronous with the executed instruction. Som=
e might
> depend on other events (i.e: NMIs, IRQs, IPIs, etc) and injecting #UD in =
those
> cases would be very insecure for the guest. It might encourage the kernel=
 to
> interpret the current instruction that the kernel can't know wasn't meant=
 to
> ever trigger #UD. This would be an integrity-compromising mistake to make=
.
>
> IOW, I think this is a dangerous default to have and Xen should just cras=
h the
> domain irrespective of CPL. At least on SVM. If a guest executes SKINIT a=
nd it
> doesn't exist=20

... and it doesn't exist, it's fine for a guest to crash. The domain crashi=
ng is
a Xen bug, but the bug triggering is a guest bug. And that's ok.

Sorry, those linnes got lost.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 16:05:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 16:05:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175871.1500470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ6Oy-0003cF-7q; Mon, 01 Dec 2025 16:05:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175871.1500470; Mon, 01 Dec 2025 16:05:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ6Oy-0003c8-4t; Mon, 01 Dec 2025 16:05:24 +0000
Received: by outflank-mailman (input) for mailman id 1175871;
 Mon, 01 Dec 2025 16:05:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RhWH=6H=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vQ6Ox-0003bz-1G
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 16:05:23 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 879f8d4f-cecf-11f0-980a-7dc792cee155;
 Mon, 01 Dec 2025 17:05:17 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4775895d69cso18812835e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 01 Dec 2025 08:05:17 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4790adc8bbbsm323560585e9.3.2025.12.01.08.05.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Dec 2025 08:05:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 879f8d4f-cecf-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764605117; x=1765209917; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=k7/QrVGalRKP3ng4dR+2IOAKCooDRaCU8dsfYQQva5g=;
        b=uAgqmCw2VE2V3vL0huJyOT5FiiGw9HklMMJfzONXjMayH5EoFjEVjqpZVFf5dox0fR
         4r/hOzB8HDqq6oc7L2WWUU499WF775HM9cXWOqLLKI/jg9Y3Pr/VDoaYM1atDUV1MxlQ
         wXUycvjmPiY8oUZl8IPgS29j4sePqdikQomY8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764605117; x=1765209917;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=k7/QrVGalRKP3ng4dR+2IOAKCooDRaCU8dsfYQQva5g=;
        b=PkEEuNMaEKUYRTU3trOatfHjvb0HEQSv0wmojD8IDn5hAY8pWHN0K7/mbb6UMrVg17
         NLS887QvOlF3DsHHeQBmsSv0OyZJyEH6MfVwyiGGf6vSjCABGrMHkIWWdrZCk0JWJpEP
         Cc+E65N4Pa5BFAXk7OAVzx03PuFjifp/HE0q9mN4dPRPc/dOmpxmlWAjzIlVdPv1dNLp
         Q5F2numea6fdTt/gVhakGQDlFXDh5MzNzZhh4a+E28tYZYwI7GKW6g0Bxlu2ZXsfQV5L
         iUJ6fcjyvskq0IMrYfugaHu48rrURp6cWNvh5rlz9huJ3tbBShtw6iWRzvLjYaSJSBM+
         2DKA==
X-Gm-Message-State: AOJu0YwYK6vDQUixat9qO0gFC2lKNI5wf5gfzAmIo0ffHNw3Pq8hcM36
	9pmRn1+TeR0az0WXfHsPhVqMNIkLAsMcsndrZXfl7YXKdGMV2wKNkalfehc6ahN+KCL9k4oxq3+
	+M1Tp
X-Gm-Gg: ASbGncv5FRHwtqV0Li2vZuMVfBzJuUMQhDY9v13NI+K69KKIOMZUPsFG/YEhBU8eGCr
	qErQOLDcGmIg/Hbn94G/OkwlUGti9yXk06UDcsIg2QjnrM6/Je+gRpl6MnUAdrw/YjR1ROuoWYZ
	9ITH0E8T92cIdkFtqG+BYre/W/WV5CBahStM9YKkiqC19D0+vvL9YvZ3d0qQ/VuJv+EaTa+CGUs
	8Vt//PDj35XcKldB25Hf1BSkGm7Q3+NUKPGe6FxhPfFDCoCTadm7JWTVMaBP1jF7xAW2J57VpTd
	+oc2gDS1/zPySLkgmQutheU4UgkC4/b8jlYXZtd8x6crJeM7dQX2ghQA8VWlzV9A4+Ohsdg0Jt4
	Wk/HFbyOpqq8rOjXJr20tomfuiGRQOR7SopZ28eLrPHwqnxbSfhd0ZdMVRmG5jtFRWYOcQ+WK5T
	p94vmYL2vWRrztJ6pYV4mByMRtLehgADtw3eE9Hyk9A8eltozCai7BI7d7fKL2WzwukcviBamM
X-Google-Smtp-Source: AGHT+IGOSvypeyB8zoUiSnPg+gKR09o6Fn5+2AB4I/q3YXSu/pWf+TKcXJPMDDBMAK3I6vn+oJYgfw==
X-Received: by 2002:a05:600c:4fce:b0:477:73e9:dc17 with SMTP id 5b1f17b1804b1-47904b2bff2mr246826515e9.35.1764605115577;
        Mon, 01 Dec 2025 08:05:15 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v1.9 1/3] x86/amd: Use setup_force_cpu_cap() for BTC_NO
Date: Mon,  1 Dec 2025 16:05:12 +0000
Message-Id: <20251201160512.1311688-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251126132220.881028-2-andrew.cooper3@citrix.com>
References: <20251126132220.881028-2-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

A XenServer feature in the process of being upstreamed is to be able to
re-caculate the guest CPU Policies at runtime, e.g. after a microcode load
and/or livepatch to expose new functionality.  Right now, upstream Xen only
rescans the Raw CPU Policy on microcode load.

One complication with recalculating the guest policies is that BTC_NO is
handled differently to other $FOO_NO bits, by using __set_bit() rather than
setup_force_cpu_cap().

For consistency, switch it to using setup_force_cpu_cap().  This doesn't
matter for upstream Xen right now, but it will ease upstream the feature.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

v2:
 * Rewrite the commit message.
---
 xen/arch/x86/cpu/amd.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index 805a8189e6cd..b3e12b084c56 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -1115,8 +1115,9 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 		 * Branch Type Confusion, but predate the allocation of the
 		 * BTC_NO bit.  Fill it back in if we're not virtualised.
 		 */
-		if (!cpu_has_hypervisor && !cpu_has(c, X86_FEATURE_BTC_NO))
-			__set_bit(X86_FEATURE_BTC_NO, c->x86_capability);
+		if (c == &boot_cpu_data && !cpu_has_hypervisor &&
+		    !cpu_has(c, X86_FEATURE_BTC_NO))
+			setup_force_cpu_cap(X86_FEATURE_BTC_NO);
 		break;
 	}
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Dec 01 16:13:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 16:13:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175888.1500480 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ6WJ-0005VJ-Uu; Mon, 01 Dec 2025 16:12:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175888.1500480; Mon, 01 Dec 2025 16:12:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ6WJ-0005VB-Rb; Mon, 01 Dec 2025 16:12:59 +0000
Received: by outflank-mailman (input) for mailman id 1175888;
 Mon, 01 Dec 2025 16:12:58 +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 <SRS0=0dw1=6H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vQ6WI-0005UI-Bk
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 16:12:58 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 99722be1-ced0-11f0-9d19-b5c5bf9af7f9;
 Mon, 01 Dec 2025 17:12:57 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-477a1c28778so50418375e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Dec 2025 08:12:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4791116c0acsm249945665e9.7.2025.12.01.08.12.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Dec 2025 08:12:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 99722be1-ced0-11f0-9d19-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764605577; x=1765210377; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0+QyCyMhm+d4P3mDrjW3JiBgI+OLgmknpMMXTQ6TJcs=;
        b=a3kiHeqA9U5RJpseLLQViUIrzfn8tWsAYU83NOtmUrRkPOSp8JcEYR3OEjCKe32m6U
         hhICbhWdliI0cFu+meOw8n2vlYNqt6fm203pOWqak9biD0LOaZX1kUk2lZJv2M8sHlvB
         zY8KOBs1l2vNUVa6uzesKwzpP7FJlKYB57kRCCOO9+zl5LKk/1RPE5EsshhKNj7JDyNf
         MsueXLDo1N0uB2dnossfdoxXXlWmF6rwbaIjk0DMqie9KYHfBoaHlD+LudoxRcZfg+Vb
         J0irEmXgY2+GcCQT/Ck4bL7T3LpV2cYR8juuqMytrrw40wuofufYYDyvyP6zJZ8m/rq4
         CR7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764605577; x=1765210377;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0+QyCyMhm+d4P3mDrjW3JiBgI+OLgmknpMMXTQ6TJcs=;
        b=cObLNnK/yI6b7ujLA152emmjZxaPbZ5Av/d+Aw1MMLHuzu0ywWo+5hZJa4x8P8ZzSt
         qTWMmZ3MzbX2FUJbkCDibMMj4jTzIPQPe+NmfsK2QRcHXtk3xG/+4jSuiYf+kWviMsBk
         JVdeM+q2dKMKK3tevv5J2rSK9KHmGN8MWUXFHFTJ8FMpqSm+M/v1gDF477u62Z2H1FXT
         yN+e/THwx4Fm2U/+yqumHApMGYUwl1P0KGT+dP2miI9T33D1IUjD4+fDthQUZ0OWVtzv
         4tHEEt6gHIOI9bG8hTVQ1KMJf4+jC1QL5fI8oQyCmnuq3B85HHCjb1o9LHuPCg9iFthS
         moqg==
X-Forwarded-Encrypted: i=1; AJvYcCViHshfQ/wXX8ZWPUkCzlUzEkyiTOuVgAo4mWNB2JFm/Z4bX4T4XOZXR9FDpUP50wJoqDhLKsAGR0M=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw/gVKn/cwE2yy4DFIVlouHjpV+YQhQKBfej1jaaIJvtIdc1KBd
	l9lm3kj1HVUbemF+dsqddF9ix3Tk+Ech5TaWmQFR3EhOGJojqTkwBojNELPnEFnltA==
X-Gm-Gg: ASbGncvTXYHhLxFH6CbRY6ACbDZPTYvm3BDqRNk351aE3ZG2YxvqCXJQatQR96r7mh+
	JfsoFXp/lJCWDzhI32k9X7yKT2AJm7aiWHWxSbfVrQcPXJKRaO5a/RtXINojnWo6dBFkpKS1DOV
	t2XEI8iZopc8N0kaYy+cFh33u24wg/jfr+gHW5JRBaSmREyLbRsuxXv0PE4xUGgfoSGmvTGRvPO
	sySxHazHx7eucWcC/KBFDSknVcVeQ346P63OuHZ+aHnSIMxYyDotxdW3ZG9p4HDAjvSlMwotAa8
	O4aCvVf2OFgp8JdCyWAuV9dbmnNOjRuQveGxhLJLVBDD38JF7Oc3JuwNu0dJHSeXslQB4yTHwfr
	IjvxpRjGcC1a94hSQRi+sl8BTneZmhFR1rSwLoXFL8uk5zLgUxrs+DnanTjU/6Ua3GRjnE6erJX
	NOFgYN9zLrtlvX024YyNlmRDYxpTy0VSMe3i0SMA2J2A4SwFmKbGTJWVIWg4QsU3TmOp4ECmn7U
	elyQgubJ8XF3Q==
X-Google-Smtp-Source: AGHT+IERL6XEyYunP9oNeqB05lJoQW1Rj2pCjwGStO/akjAVJkSdzcppMG9FHM05OQ7uPCIve24irA==
X-Received: by 2002:a05:600c:c8c:b0:477:9fcf:3fe3 with SMTP id 5b1f17b1804b1-47904a6bd48mr251206395e9.0.1764605576642;
        Mon, 01 Dec 2025 08:12:56 -0800 (PST)
Message-ID: <a34abdf7-574d-41eb-b22c-9aa4ba2f3997@suse.com>
Date: Mon, 1 Dec 2025 17:12:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1.9 1/3] x86/amd: Use setup_force_cpu_cap() for BTC_NO
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251126132220.881028-2-andrew.cooper3@citrix.com>
 <20251201160512.1311688-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251201160512.1311688-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.12.2025 17:05, Andrew Cooper wrote:
> A XenServer feature in the process of being upstreamed is to be able to
> re-caculate the guest CPU Policies at runtime, e.g. after a microcode load
> and/or livepatch to expose new functionality.  Right now, upstream Xen only
> rescans the Raw CPU Policy on microcode load.
> 
> One complication with recalculating the guest policies is that BTC_NO is
> handled differently to other $FOO_NO bits, by using __set_bit() rather than
> setup_force_cpu_cap().
> 
> For consistency, switch it to using setup_force_cpu_cap().  This doesn't
> matter for upstream Xen right now, but it will ease upstream the feature.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Mon Dec 01 16:30:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 16:30:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175900.1500490 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ6ma-0007Ki-8P; Mon, 01 Dec 2025 16:29:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175900.1500490; Mon, 01 Dec 2025 16:29:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ6ma-0007Kb-5W; Mon, 01 Dec 2025 16:29:48 +0000
Received: by outflank-mailman (input) for mailman id 1175900;
 Mon, 01 Dec 2025 16:29:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=X7L5=6H=bounce.vates.tech=bounce-md_30504962.692dc26f.v1-8bb66142feb44fe79911fc12e1f26070@srs-se1.protection.inumbo.net>)
 id 1vQ6mY-0007KV-4e
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 16:29:46 +0000
Received: from mail132-18.atl131.mandrillapp.com
 (mail132-18.atl131.mandrillapp.com [198.2.132.18])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ed0357a6-ced2-11f0-980a-7dc792cee155;
 Mon, 01 Dec 2025 17:29:37 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-18.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4dKq9q3nXdzCf9K7K
 for <xen-devel@lists.xenproject.org>; Mon,  1 Dec 2025 16:29:35 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 8bb66142feb44fe79911fc12e1f26070; Mon, 01 Dec 2025 16:29:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ed0357a6-ced2-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1764606575; x=1764876575;
	bh=cbgGDfe5Uty0mkLvZGLz7aA/6b3AGgLC+44Q+TaBA9M=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=Iy5aa1NzVqh0R/JA4uvymMRZRJqb+cc/sD76sTXzohFhzAf3aJgyFtcWoT9/FyLL1
	 10k+Tx2+G+iZEg+/usmpRqRU29uUOR/vde/ch3V1Y7yvimiz+2vsW+hMRXW9DdYQoQ
	 gL9R4jiOT08X+8bh2lhvBuf8aLpMfBXpI5WVonY1ess4Mi0z963yV+dwBupan/wQEg
	 c44IHg2aiWTA1ITxq9DdRG89xQ5sSIsG1Obge/bEgGoDsO4qxiCL8XhkIFPB+1l+9e
	 k4xjpWYS1d2mpxGSKpNlQEirKPP2xoz4cPV9klCChOND6LyhVnaV/u/CY1xEg8gHWs
	 ItfGnzmSqj+jw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1764606575; x=1764867075; i=teddy.astie@vates.tech;
	bh=cbgGDfe5Uty0mkLvZGLz7aA/6b3AGgLC+44Q+TaBA9M=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=bqorIooo7KSFgFxt3J53k70ILYwPC5ABqHLaa3Z9MOe92fLJ9HmagaHFPNY59gHBy
	 ugtdbuHOhfwKLk17h04Gy6fw/1IDcGrxV2I+JeeDbA6pSrTS+cExWqjXbBNyfEOVFP
	 hYFJzMQQtlpQEgvZxoVTTufwppDUT6AC11/0D4tw42MYMONYxbibW3RRus9k9HBFse
	 dALxiXEKgSupywD6thRJeKccnNPla8ejFrizbXP9DgraJ4Jn3k9dUledGqkKJteKFB
	 qRXLyBDVB9miCytI3Rcv0ft/Tel1iBElxDa6ekqhZeU3CI6wjPQe+sAt3vpzJVobFR
	 3gckdHcbe1Wmw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH]=20viridian:=20Fix=20bank=20count=20counting?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1764606574403
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Paul Durrant" <paul@xen.org>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <5e38608b45ad25e6582163700edd3f232b6d2325.1764606368.git.teddy.astie@vates.tech>
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.8bb66142feb44fe79911fc12e1f26070?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251201:md
Date: Mon, 01 Dec 2025 16:29:35 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

hv_vpset_nr_banks() incorrectly counts the number of bank by using hweight64()
instead of flsl(). This for instance problematic in case only the second bank
is selected (i.e >64 vCPUs, where here hweight64 gives 1), causing only the first
bank to be checked (non-valid) and the second (meaningful) one to be skipped.

Fixes: b4124682db6e ("viridian: add ExProcessorMasks variants of the flush hypercalls")
Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/arch/x86/hvm/viridian/viridian.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/viridian/viridian.c b/xen/arch/x86/hvm/viridian/viridian.c
index 90e749ceb5..f5e526241d 100644
--- a/xen/arch/x86/hvm/viridian/viridian.c
+++ b/xen/arch/x86/hvm/viridian/viridian.c
@@ -601,7 +601,7 @@ static DEFINE_PER_CPU(union hypercall_vpset, hypercall_vpset);
 
 static unsigned int hv_vpset_nr_banks(struct hv_vpset *vpset)
 {
-    return hweight64(vpset->valid_bank_mask);
+    return fls64(vpset->valid_bank_mask);
 }
 
 static int hv_vpset_to_vpmask(const struct hv_vpset *in, paddr_t bank_gpa,
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Dec 01 16:36:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 16:36:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175911.1500500 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ6tO-0000r8-TC; Mon, 01 Dec 2025 16:36:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175911.1500500; Mon, 01 Dec 2025 16:36:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ6tO-0000r0-QZ; Mon, 01 Dec 2025 16:36:50 +0000
Received: by outflank-mailman (input) for mailman id 1175911;
 Mon, 01 Dec 2025 16:36:49 +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
 <SRS0=oG9V=6H=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vQ6tN-0000qY-Gn
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 16:36:49 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id edc226d7-ced3-11f0-9d19-b5c5bf9af7f9;
 Mon, 01 Dec 2025 17:36:48 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB5879.namprd03.prod.outlook.com (2603:10b6:510:35::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Mon, 1 Dec
 2025 16:36:44 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Mon, 1 Dec 2025
 16:36:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: edc226d7-ced3-11f0-9d19-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Up3x++qvPJtrKdwKIalZyOcpAtg4tYLfwhg+pXgG2vGq6VRtAXYgwbpLKpyy7lL4FTQflc6PjAoMyOO68T8m8CuF01ZvrC/VPrSMaFS8eVms806lgeBUqNHbRGL9fv6yDYLIffRDJ8bXsauhq1VZDrpuddSbkqk9I1ZG5jrUSxBo+LxBRfz9jKEyzSwg6Ci1QMIAu6QBImBFP+WmMv+E/Lij9PGsY8IEBxeva693tllpb6zU35SQJOUqCM+ITLrjx2BpmBHrlfSFLhQ/Zp7zWveUtIJUdEDH2ZRmQTRBKR9CPUK6m4DizhAcfWzQsAFt3bluDwxTQyySQDIENVv/Fw==
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=MFy+j7j4204PdZF6ILlsKZQuXZNe/sxvfyKULuusmVI=;
 b=pqL+fanX+eeH3c6VyiY8QYduNzHXodEdiobh6TnwRsbtkcKmHLtwBQ6kRsgmva9hS/xqgh/VndkMAa6TCgokcHHfd2gMSRh7AXXlVl+6UNiPXc3QMoHrnjAMJ9ZP6colLo2VmN3hvDopL9CZJxhOJpSo9ufRxLEDPZ35f1QNnzMhiz1n9n5nEbAlv5RjgVpdIMIn0NlSG2PXgjc62BTIt/0cN8UCTAKmTke+2wWB9B4Fip2gW8EPcsKbVxR/t7N24pvqhrXbTO1TLGMCP2fs7EnVdIPZeizuQmwWi+KI3/Ww5ubQ+qQCcq5j+d1Rze8p56JuA1CAUpZISPBQFlNziA==
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=MFy+j7j4204PdZF6ILlsKZQuXZNe/sxvfyKULuusmVI=;
 b=TaMB/HRrih8gz7n7E5sgPt3PYGj7FeUHmKXeUzoEZ8hY20vScS4LbANyrilQlzjLBoj+hlAy8MYEJvD/HktMxk5g5jj9b90sOb1LY1hPoLwqi7EVXy04at+AR+oVZdcsNKUka9gtoRDPV987escrMmIuZt/gTETRK8Mu+ESQjSY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <331118cc-9c2d-49dc-aa5c-b6cd0d4e6021@citrix.com>
Date: Mon, 1 Dec 2025 16:36:41 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] x86/hvm: Unilaterally inject #UD for unknown VMExits
To: Jan Beulich <jbeulich@suse.com>
References: <20251128174735.1238055-1-andrew.cooper3@citrix.com>
 <796dccdb-0cc4-4904-b776-d651ebb012c2@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <796dccdb-0cc4-4904-b776-d651ebb012c2@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0141.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:193::20) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH0PR03MB5879:EE_
X-MS-Office365-Filtering-Correlation-Id: 897b8903-c52e-4d0b-9971-08de30f7d04a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?b0gvMk81SEIrK1NlOUl3MDVObjh1T1JLZDlTSFE0WnpkQXdwaWw5cHRSUUxL?=
 =?utf-8?B?UmsrK2NuWTRXK2JFWmVjRnFHTXk4cEtKSmJDN2pGTTZ5TEc0cXVTaStHMVJT?=
 =?utf-8?B?UVRPZUpSdEdlZ0pSa2tvc3czNnJFeXJiVDBxMjRIeU9jelVNd00rM3B6NVVB?=
 =?utf-8?B?K0oxdFg0WFloWlFmdzZPRWFYQzZGd2pWdlpFcW1DbGVweWVPQ3BibHI0UlBr?=
 =?utf-8?B?R3ZDSCtSaUNRNTc2QVNsbnlSTk5vMExWTWthZTZ2Q3ZVbk4vSWNlU0RPQlds?=
 =?utf-8?B?Q1ByOUlET0tjSkxIb3dmWVlONUxObzAzalNqTWVDUXF2TkY3cTMwOS9mVEJw?=
 =?utf-8?B?Zkg1bEhVR3N3UkZIR2NLVGJJQ3JNWXRPclBwYW54UXJ3SFFiK2ZydUxCb0dW?=
 =?utf-8?B?VHdVRkFyQ3NGaUxSQlp6MTdCT2JpaXUvUU9PMlVWREgzQ1U2MHZPOThSeGdR?=
 =?utf-8?B?cUVnazFpZlNlbjlIRzI5QXhVZzBoTkJIVnpBa1lpcU1CUDliRk5VSEhCSDNr?=
 =?utf-8?B?Y1ZlRStaNTdJYjR6ZFZsMTJSTlJpOHRlY2FlNWtQbUZDTlUrMi9MK0lKcjR2?=
 =?utf-8?B?L2M3ZXljS1lNTTlNcmFLVk9mKy9rRjN5RW1uRFRLajdMU3gxV09HeWloK2d4?=
 =?utf-8?B?cGU5eG9FMXZsemJCeTgydWpJY25PVWVkT2QrTlZnM3Y5MXZJVXd0VEFKWG1E?=
 =?utf-8?B?NkNEVEZYK0lZWXRzMkJSYmZmeXBHNGI2RkZ4RVhlQlRYaDE1UlIxNGRQU2Rl?=
 =?utf-8?B?ZHJEU3Z5VncvQnVscXlNNkV6QjhqMzE1VkNxYVR1bURwZVhVQlpKUUVzRnVG?=
 =?utf-8?B?d3Zjbll4RXA3b2VQQ3BxM29wUmlOLy8xZHlHZURlYm5CYmdod3ZtM1BkeDJ3?=
 =?utf-8?B?bUs2enZnNkQyclcwekZRUUhvRFpCTHFwcVJmK3ZGRDd3UkJEN1Z4eUdMR3Ez?=
 =?utf-8?B?Y2pPSlVGcGJtNnlibzhWcllhVHpZME52bGMxSTNMa2FFOEFoN0ZQRHIxNmta?=
 =?utf-8?B?RmF0MXlockVvMWJsRytTeXg2c09xbkZzTHlqVVFYcHoramNqZzRjZ2xyalhE?=
 =?utf-8?B?SStNVzUwN1plYnpWTGZ6Rm93QWJqZ0lUdEx0cFlWcVMzVWxUUytVNmpNOFlY?=
 =?utf-8?B?WHRNc3VkM1VWamZsNnBLWVZiMjdFa0VGbFVoVTV2MkptYzE1WlBEU2xWRnlX?=
 =?utf-8?B?UktHbXFEZ0xsazczMGo3RVVWN1A4b3JaYXRsNWVyOFRUa1JFNlBpNm1FbXNt?=
 =?utf-8?B?clRMcUdxNmk3WTYxeW9hb0xQQnBBVEtuNm56UWQreTZHQ1pXSVVraHZyY3ZN?=
 =?utf-8?B?Z0IyNDZTa3Q2SVRtaEpCQ3g3cUo3bm9PdmI5NTNnRHFoOHIrdk9lMGFOWVBV?=
 =?utf-8?B?bG9sL2tUSUNXNEV1MWljaVp2UzFiRWRxQTFJSmt5SDVXRmZ1ZDVvbkhZZ0tR?=
 =?utf-8?B?TXRxN2FSYWhuQzhRMnZpbHRyOUduQW05UEVja2NYY1BLVHpTUEZ2eG9CaEZn?=
 =?utf-8?B?TjB1SEhrTTZ6bXR0ODhUTXVkcUpQaVl5SUdrNTdKMmdLQXQrUUpqWmliT1Bv?=
 =?utf-8?B?NWlpa2lXa0tvZHFyNCtMNEtDOVdCR2JHbURlZSt5Y0hQR3R0R1FGWk5aNVly?=
 =?utf-8?B?USt4U2pBRW13d1NrNCtPa2o5emcvUXNjTU5SNnp1Y3NsdnhVZlJQU3ZtQktw?=
 =?utf-8?B?SG5rNEJycWlsQ2EwRTN1TEo1WG9HbExWQk45cnpyREpPL1R2QWM0dlRNa0dW?=
 =?utf-8?B?VlFJVnNsYzh6SXlWa01qZDcyVXFkRWJBbVdwenZvUGtiaGhtb3RaYUgvdDlY?=
 =?utf-8?B?UWowVHJlUHo4UlVQakhXREZMMTNGWG9BM016djQ1QVNCUEJrd29BQ3E5TDhr?=
 =?utf-8?B?TmhzT1N6MTVscUd2UndpZHF4V3UzalhjL09lSFpLSitlMDAvdDRVNDBwVE5N?=
 =?utf-8?Q?H7gn1ytZsM+64s4XfonVR7fI9GU5KPTJ?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Q1orWHM1ME5pZ24vODUwck9WUHRpRWpmU0FJZVBrS1RHY3R2UmQrbFUwWkQ5?=
 =?utf-8?B?Y1QzWEFWNnZvQUVIa0w2VkVGL0szZHp5MitHUnYwb1hZdGsrT1RlKzZLeklP?=
 =?utf-8?B?N0JwYXNlblNDREZJc3FpRHczam9VSHFTVExUL2FTTjJXemk3cmg0bXlXQTZm?=
 =?utf-8?B?L3pTbEt0WUVkYmVPVDgwMWV2WWNGd3dQMDhqYjYyTU8yNDZTOVZmQzJlVCs1?=
 =?utf-8?B?SXZCVDRXWWh4VEpKdDNLZlZyRzE2b1FVWTFzU0t1K1ozUDRoMEgwZjhYVkhp?=
 =?utf-8?B?cWh2TksxQXR6MGRBMGJuVUEzdHB3Q0k2TEZXMXk2VmN5eTRnRFF0Wk4zQ0pK?=
 =?utf-8?B?c1ZNL3FIOFRPaUdrZUlUeTc3TWpRY04xbzZ1SmRrbjNlM2s2YzU0OTcyQ0R5?=
 =?utf-8?B?ZFlYSEZGa3hpV1YyY1paS1V2VExIcm5mQUtjbzkwemRZTnlmQmNaMEQ2cGdw?=
 =?utf-8?B?TG93OTc5cUNxaGgzbTBuWVJnNzFMQ09TTUhIVXRkbjUyU2xnZ24yUS9FRFV2?=
 =?utf-8?B?UHBnSjRCWXJNY0VKazlUV3c3Q3dMMlN0NjBjVCt4NUVtYWYweUE5QlZaOFp1?=
 =?utf-8?B?OTNtUnJCN1pLb21vY01MWkRkOGY3dVdsdFMySmkrQXN5NG5XMkJoWEZ1T1h3?=
 =?utf-8?B?VkQrMERYcnJOU0RNU0pHbnc2em1IcVNsR1dNSFZ0QkdVRmgrSUVNMVJBakhy?=
 =?utf-8?B?YncvK0lBRFVFTVduV0tBdlJhTGJ2blRHUTZBVmJFSnZSWWxSc1pjS0M2bmxl?=
 =?utf-8?B?Y09mcEcvNjZicVlDd01vTE0rbHM4ajk3ZWhZR0g1a0diRDF3TGE2aDYvelJj?=
 =?utf-8?B?NXpXZlg5UTdjSklrTVFydndydjNPYmNGOVkrRmd5bjlzbjlweVE1a3BITDdW?=
 =?utf-8?B?L3ltNVlORUVBMU92eFRWYmtBSVBydGlmT0dsZDZGdEhBTmFLZUtHU0FEb3F4?=
 =?utf-8?B?ZEtMYzN6R1k5Q04rdTJQdFAxQVlOcUZEU3BpRVd5alFuV2tUVGIrVjRSL1pU?=
 =?utf-8?B?bE51UktLNXVhS3ZjYkVyL24zb25QQUdydVROZmp3aEZoUXNTTjZ2SWdVT1I1?=
 =?utf-8?B?S25oMStDRmNiVVlMeWRwbDlJazhvY2Z2VVRxVEtxVWxINkp6NS9yOXBMTWFt?=
 =?utf-8?B?T1lpWk0vSW56QmppQVVkaGpDZ08rQzVuWVpOOURtTER3d1I4ZUdPZ21hbkFw?=
 =?utf-8?B?NU1BcWY3VTNMTzBmODMvWFBkUnZzMzNUY0IrM1diZmhnekJVNk5FeFlZR25S?=
 =?utf-8?B?Mmo1SEFDaHM2UVNIZ2RDdW1vbGVaQVVQelZxazVWMVNnQldtRFByeEQwUkhh?=
 =?utf-8?B?bmxFYklPNUJSQzl4eTRUUzI3OUhMRTNXTDRCZXJkT3lhTHdCODlQNHBIMWZD?=
 =?utf-8?B?ZEV4NVdLbVhYV3g4ZzE0ZFhNZkwxQlRIVFdmWGlDczdtV2ZXSUlZTkZFWkxq?=
 =?utf-8?B?TWsrOTc0SWYyNU1Ua3RmWVpkTTZzZGdOdHdPOGtCZlkyVkhHZ01GRCtBdEFR?=
 =?utf-8?B?My9rVmgxbDd5bXNHbkdBNjJXZTBJaVJ1N3FQU3R3ci9CMWRYYkc5cmV6eHZJ?=
 =?utf-8?B?L3R0dVk5VkIvUnVnVSttQzdLa3pBL2FIcjNzaWxMVjUrZXEyRWhjdzVwODZy?=
 =?utf-8?B?WW1rMjZpb0M5dUljOW5sZGpFcTB2U1VaeFVuRVhBQjUzTHd6Z2JUSU1ZWWZC?=
 =?utf-8?B?VC9IZWpqS3FITlp0OWczSjg5V2FSM3B6VmFmTUlURnRJc0ZYRWZQc0lnUHJS?=
 =?utf-8?B?TkxnTGJ5Q1FQYnVMSnZvc1UyZUF2MFRrSGJFWXZ2TlhmcUYycjN4dDl2cFBs?=
 =?utf-8?B?RHhJVnlWMS9OVm90Z3VKdVV2b0pESjBhaU5QN3UzbVNadTNmN3V5UTdqMUo4?=
 =?utf-8?B?azE3VWs2TitIVkUvK2Jib0R4RmZOY29uL0dCcG1ZODJpYlQrNUdVQUZYZ2tC?=
 =?utf-8?B?ZCt6UDJ6S21rZ2xwN2hQVVgrV2RuK1oyM3lRQnRRcDRrQzMwYms5clpZeHp3?=
 =?utf-8?B?MUhjekJWUjcvMnVvOVRRTU9pQXZFTWxJZUIvdmVwbFkwZFNOL0RzeVRkR3VN?=
 =?utf-8?B?N20yUmZGWER3NTNiVVdOL3hQdisxNk91Rm1XRGNUV0VJMmEwejJ4U3hFS08r?=
 =?utf-8?B?akZMTnpRVWw3ekRlMDhvWDdncEZhN0pkSVc4UzN6UjZsMDRlZXVJQnpGNENi?=
 =?utf-8?B?MUE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 897b8903-c52e-4d0b-9971-08de30f7d04a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2025 16:36:44.4281
 (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: 9fDEmGtoKedoZVXKhByzG/KMXpgSM1LUzBbnc/JIHz5desh1386QoRGatfLfsWInUGiHp3hlRkPc1fSqwKzytLObaYia1mYfNn/StBIt4I0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB5879

On 01/12/2025 9:02 am, Jan Beulich wrote:
> On 28.11.2025 18:47, Andrew Cooper wrote:
>> While we do this for unknown user mode exits, crashing for supervisor mode
>> exits is unhelpful.  Intel in particular expect the unknown case to be #UD
>> because they do introduce new instructions with new VMEXIT_* codes without
>> other enablement controls.  e.g. MSRLIST, USER_MSR, MSR_IMM, but AMD have
>> RDPRU and SKINIT as examples too.
> USER-MSR has MSR_USER_MSR_CTL, so doesn't fully fit here? (It's still not us
> to directly control exposure of the insns, but an OS would need to use the
> MSR to do so, and hence we need to properly handle writes to that MSR for
> the respective exits to become possible.)

Oh yes, and the #GP from failing the MSR_USER_MSR_CTL check take
priority over the intercept.

> MSRLIST has a dedicated exec control, so whether the exits can occur is
> under our control.

Ah ok.


> RDPRU and SKINIT have dedicated intercepts, without use of which the
> respective exit can't occur aiui.

Correct, but note how we intercept them unconditionally?

MONITOR, MWAIT and SKINIT are for Xen's safety, because otherwise the
instructions would execute normally in guest context.

RDPRU is to block access to the perf counters, because a guest has no
legitimate use for them.

There are no enablement controls for these instructions.  They're always
guest-available (on capable hardware) if not intercepted.

>
> IOW it looks to be really only MSR-IMM which is special.
>
>> @@ -3083,8 +3067,13 @@ void asmlinkage svm_vmexit_handler(void)
>>          gprintk(XENLOG_ERR, "Unexpected vmexit: reason %#"PRIx64", "
>>                  "exitinfo1 %#"PRIx64", exitinfo2 %#"PRIx64"\n",
>>                  exit_reason, vmcb->exitinfo1, vmcb->exitinfo2);
>> -    crash_or_fault:
>> -        svm_crash_or_fault(v);
>> +        fallthrough;
>> +    case VMEXIT_MONITOR:
>> +    case VMEXIT_MWAIT:
>> +    case VMEXIT_SKINIT:
>> +    case VMEXIT_RDPRU:
>> +    inject_ud:
>> +        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
>>          break;
>>      }
>>  
> Should this be brought more in line with respective VMX code (kept) below,
> in never bypassing the gprintk() by any of the case labels? Basically
> meaning that the case labels you move could simply be dropped for the time
> being (or else, like the INVCPID one visible in context below, would want
> re-inserting a few lines earlier).

As said, they're all reachable by guests on capable hardware.

I could add a /* Not implemented for guests */ if that would make it
clearer?

But, we don't want the printk().  We know the labels are reachable, and
#UD is the right action.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 17:15:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 17:15:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175926.1500510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ7Uw-0006NM-So; Mon, 01 Dec 2025 17:15:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175926.1500510; Mon, 01 Dec 2025 17:15:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ7Uw-0006NF-PP; Mon, 01 Dec 2025 17:15:38 +0000
Received: by outflank-mailman (input) for mailman id 1175926;
 Mon, 01 Dec 2025 17:15:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2MM0=6H=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vQ7Uw-0006N9-2h
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 17:15:38 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 565584da-ced9-11f0-980a-7dc792cee155;
 Mon, 01 Dec 2025 18:15:32 +0100 (CET)
Received: from BN8PR04CA0062.namprd04.prod.outlook.com (2603:10b6:408:d4::36)
 by IA1PR12MB8239.namprd12.prod.outlook.com (2603:10b6:208:3f7::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Mon, 1 Dec
 2025 17:15:23 +0000
Received: from BN3PEPF0000B078.namprd04.prod.outlook.com
 (2603:10b6:408:d4:cafe::34) by BN8PR04CA0062.outlook.office365.com
 (2603:10b6:408:d4::36) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Mon,
 1 Dec 2025 17:15:18 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN3PEPF0000B078.mail.protection.outlook.com (10.167.243.123) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Mon, 1 Dec 2025 17:15:23 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 1 Dec
 2025 11:15:23 -0600
Received: from [172.31.77.70] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 1 Dec 2025 09:15:22 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 565584da-ced9-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UVATkSpBsh+5A6Kew6paDwPbC3D1Xmb2tMW9R0XYvn4ZyCsprjF4GBmZN0/gztACBKk60/BJda8HTdP0WWtmRUm6IJr1iTJjtEOgDHvpYYk26MjSrvo9ssgpTt2XdCjmvzph0vuWIWNqZLU6A32fVIS31lxv/6Q41q8SqHgTUmjmOo0zUVdmsFvFhSHmn0bM5FITG5qs3Nu0bheBp5uB+0K2Yx9NZ0zlvw2lmgP+ske4a9PVFmFxLvTen4HjtHN04yhwjFh6hWA1o5fMH7OHrw/VT7Z9a7zSnephsAsVfhQJfF2dkfkSk1SvDkZxfkLRMHZVBlgJ1JxwZ5NcbCeB5A==
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=n0TMjo/MIt1o8DBY2AnzLgOWBc7wgV/u13yRi2eKAYQ=;
 b=SDV2+H3oZ+0A+Z1pRbIQ4hkkBd79ZZyR5ec4K2xWKoDnFnOzm3t8NgoA4szWosDRKc82Wb9azcVZM10tqXVWNfz4+Qj8FZZ5IOpzGmRZQeq/+4XFnedGZpacvZ2f7YHV26WOgkuVNTRz9f+uSVYdKv2KnhjgWaQYcgAjjIF2p2ZFDf+lkD2VM5oQtenWNkqNucR6+WmXPm25bZWpCI8B6/0oIZjMyIaOB3wgJwXtFmVMbYrNjcUsx4m8U25d+lBSUPI3t7wqJaFMSCN6W9IKKD76b3q7ptt4UWU4hrDG4Mg+/kkTdkCOMI1tM8HPZfAre/q7B0WNEjQZFctxybSg0w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=vates.tech smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=n0TMjo/MIt1o8DBY2AnzLgOWBc7wgV/u13yRi2eKAYQ=;
 b=belQRIwe+iarG2zAhREFNDLByYlQ0jJz6BJ7Jx8nyhHqDXc7p4SWjeP+AiCb0qYoW5PUsIeQ8Rji4U/lHVQfOPxItOJV+j8pUrJZwvbhHmglPA4It5o79z3/3Y4R3kWScDn93rNj/kR2PYh4U67xQlyIosWWGaNDj11KBmJnG84=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <ce270a90-ffc4-45f8-9af6-be9aa1c49162@amd.com>
Date: Mon, 1 Dec 2025 12:15:17 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xenbus: Use .freeze/.thaw to handle xenbus devices
To: Yann Sionneau <yann.sionneau@vates.tech>, Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>
CC: <xen-devel@lists.xenproject.org>, <linux-kernel@vger.kernel.org>
References: <20251119224731.61497-1-jason.andryuk@amd.com>
 <20251119224731.61497-2-jason.andryuk@amd.com>
 <584b282f-4562-4051-b028-b9d36b3d16c6@vates.tech>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <584b282f-4562-4051-b028-b9d36b3d16c6@vates.tech>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B078:EE_|IA1PR12MB8239:EE_
X-MS-Office365-Filtering-Correlation-Id: 9b9a9c4c-bc68-473f-15c0-08de30fd36a9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UWhCcWdHWUJxMDVIaFJvbGJHZVBlODIrdkVhaHRkeDZKQlVDdVd0RmVsNzBO?=
 =?utf-8?B?VHVJZ3NDQitYRDRxQURGd0l4dllnVVorMVIzb2FPUmlLeGcxTUdISTdJWlJ5?=
 =?utf-8?B?dXY5aGJOTGV1TFlSY2FtRFdSUldBSVZPTG9WZjdHbXhhVHpHN2o3QWJJYkZW?=
 =?utf-8?B?QnpoME1ZNDdqdDlhOHJ1T3JldjYxOCsrSmQwdC9OZk83ZHY5NHUrdU1rMlF6?=
 =?utf-8?B?WlFDVXg0dE43NWJaUFlHQURHWURvVEVDL0pDcDVxanp2RVdhYmVkYzZ6bjgy?=
 =?utf-8?B?V3NHeGZDOTFLejlOZ2tLSFN2dStrSXhPN0JBaU1MMFJZK3g2eFdJVEZnNlU4?=
 =?utf-8?B?VWJVZEhlaVFLRHVSQWNpTTFmYXR1b1NPUm1TNEE5M0NwekdrajZ0R2NwbnRT?=
 =?utf-8?B?RXhqZVp5OWUybmhydTZ0TEVJbmxaVFNQMXRWbXlKVzhGVTR5SndycWk4MzN2?=
 =?utf-8?B?QzJHQ0NENXBicVNqNDU5ZGcxZXh5eHBSTmoyaWZwdEtaSjlwejE1WjVrWFQx?=
 =?utf-8?B?WU1uRXBKSS9Iam10aWxPc1dGbzJnWURMaExrZ2NwZWJhU3JJSXo4bFFnbktN?=
 =?utf-8?B?bkwwY3ZiY3NnT3lQdGRldm4wbC9tVVlXTk40b05YeSs2R0g4TWtUc2piQmlj?=
 =?utf-8?B?SE42NkVVWktURmp6SUl3Y0w4Z1lab0F4RFRoYnAydUUrSU9JTTY5MlVsSGtY?=
 =?utf-8?B?MXpiTER6TDhrb1p6WFNtcU5wcExCemNLVWFZZmRUQlc5VTNNS3A4SWtwSFE0?=
 =?utf-8?B?WklSeGJkUGlDQ0NSQVNMY3hJVUhKV1RScVpKRkJ0SFJlUktoSXJRMEJjOEFQ?=
 =?utf-8?B?Mkk5SElRdFA5OWpOTGtZKzIxajN1Q3VldUlaTUd6Sis3NHM3eEZzM0FYZGZX?=
 =?utf-8?B?dWJXUHRGTHNzZVFZRUFmYk9aR2JxOEl5cisyNzhFRjB6Njc5Um5rcFNYSFMr?=
 =?utf-8?B?Qllqb1VneUYvZ3RCL0JLOG5tQmtTK0pDZjl5MGtJYzRIc3JVZ2N2WjI3MjA3?=
 =?utf-8?B?UkpxRDgzbmo5aUR2enBGNjh6WGtudWYrV2hFVEJjV1l4SERMeU13NCt0RnM2?=
 =?utf-8?B?V29zLys2WklaNHFabUo0UnpTWDdIc2tvNTg0cHRtTE5LRkIzZHhpUGpxY3A5?=
 =?utf-8?B?SjJJaXNkWE81THBmY0lVY0hBdWllQUtwWFRHWDlseWlaWXoyem9TT0RSY1g5?=
 =?utf-8?B?Ynd4VnRtVnRZNTdNRFREUTVBclpaTUYzRjdOZFZnb1RKUCtISmFHV0U1dWhU?=
 =?utf-8?B?VlA1cURVbVN0cUxRbExBRGVVQmFZdms3ajExb0tLN2w2QWkvVGwrTGRXYXJn?=
 =?utf-8?B?aHFMR0VTUTBhRFJzK2tkNlcrN2k0OWxhbHJ5b3FkUnpwZUVCNzZwMCtraURl?=
 =?utf-8?B?dituTHRXVHB0RDZ0SSt4TjlaSlJIYVZkZHMyWW1zN3VWdDZKOGY1WHdCT1JP?=
 =?utf-8?B?NGZFYVBVQ2RSLzJLN2NHWDFPemZhRkxyQ0pZemZGeDZiNVcyRGFzR2YzRG9z?=
 =?utf-8?B?dzVPS0NBZnFiZDgwYmdYRnBiQm1qSlQrd0tCNjg1c081SDM4M2hBVm5ZUUhh?=
 =?utf-8?B?MzRNMlVuSFJBYngxd2lCWm9VUUFEVHFjMTJmQW1PTEZ2a0tPUFNwR1d5SHhL?=
 =?utf-8?B?ekZsRTlSZ1ZGREhxRjU2Y0hndERuRE51YXBwZ3ZreWJOZ0QwZENvSDd4bE1K?=
 =?utf-8?B?TjE4UFB6aTIvNlRZY3pJQkY2U3dIaXJZL21BSkRxYmNZQndnQkVWZXhvbHZq?=
 =?utf-8?B?eWsxaUNZeGZBcG9xUTk1dlFycVpxajJibklwdTNDV3BuaS9reE5GbTdMMGNM?=
 =?utf-8?B?aExrRXZIZGdrVTUvWk9ScmFXR05sbnRQTHZ2dURpYTg2SDNhUlRyYUtseVdo?=
 =?utf-8?B?RVN3V1hkLzF6K1JYNTdNcUlIVkRwK2NXdno2T1ZBeno3YVFVS0k0MjFvV3hH?=
 =?utf-8?B?SlRHWnFvMEQzNkJ6bXlGSUgzNSszVkUybDRObG5QaW0zaHErcFdMT01ZNmtV?=
 =?utf-8?B?N0xnQXNIU1AxbDdYSzlReFpUUUEwbzBVY1BnZmFSMWNlVHVySStVajFlRHo1?=
 =?utf-8?B?NnpqWXcyWFZGTDllYlVYZnhFSmpoSm1XVjB3T2c1TGZlTXFJUFUyTTNDNDJ0?=
 =?utf-8?Q?6QDLOPLqwNWbIlj1s/26Yl4R2?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2025 17:15:23.4670
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9b9a9c4c-bc68-473f-15c0-08de30fd36a9
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B078.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8239

On 2025-11-26 10:00, Yann Sionneau wrote:
> Hi Jason,
> 
> On 11/19/25 23:46, Jason Andryuk wrote:
>> The goal is to fix s2idle and S3 for Xen PV devices.  A domain resuming
>> from s3 or s2idle disconnects its PV devices during resume.  The
>> backends are not expecting this and do not reconnect.
>>
>> b3e96c0c7562 ("xen: use freeze/restore/thaw PM events for suspend/
>> resume/chkpt") changed xen_suspend()/do_suspend() from
>> PMSG_SUSPEND/PMSG_RESUME to PMSG_FREEZE/PMSG_THAW/PMSG_RESTORE, but the
>> suspend/resume callbacks remained.
>>
>> .freeze/restore are used with hiberation where Linux restarts in a new
>> place in the future.  .suspend/resume are useful for runtime power
>> management for the duration of a boot.
>>
>> The current behavior of the callbacks works for an xl save/restore or
>> live migration where the domain is restored/migrated to a new location
>> and connecting to a not-already-connected backend.
>>
>> Change xenbus_pm_ops to use .freeze/thaw/restore and drop the
>> .suspend/resume hook.  This matches the use in drivers/xen/manage.c for
>> save/restore and live migration.  With .suspend/resume empty, PV devices
>> are left connected during s2idle and s3, so PV devices are not changed
>> and work after resume.
>>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> ---
>>    drivers/xen/xenbus/xenbus_probe_frontend.c | 4 +---
>>    1 file changed, 1 insertion(+), 3 deletions(-)
>>
>> diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c
>> index 6d1819269cbe..199917b6f77c 100644
>> --- a/drivers/xen/xenbus/xenbus_probe_frontend.c
>> +++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
>> @@ -148,11 +148,9 @@ static void xenbus_frontend_dev_shutdown(struct device *_dev)
>>    }
>>    
>>    static const struct dev_pm_ops xenbus_pm_ops = {
>> -	.suspend	= xenbus_dev_suspend,
>> -	.resume		= xenbus_frontend_dev_resume,
>>    	.freeze		= xenbus_dev_suspend,
>>    	.thaw		= xenbus_dev_cancel,
>> -	.restore	= xenbus_dev_resume,
>> +	.restore	= xenbus_frontend_dev_resume,
>>    };
>>    
>>    static struct xen_bus_type xenbus_frontend = {
> 
> I've tried putting Debian 13 to sleep with your patch (echo freeze >
> /sys/power/state) and could not wake up the guest.
> Isn't it also mandatory to apply this patch
> https://github.com/QubesOS/qubes-linux-kernel/blob/main/xen-events-Add-wakeup-support-to-xen-pirq.patch
> ?
> 
> With both patches applied, I get the wake up to work.

I did not need the additional patch.  I thought it was necessary for 
dom0 s0ix wakeup which uses xen-pirq for hardware interrupts.  I did not 
think it was necessary for a domU.  I'm only looking at the domU case 
here, and this code is for frontend PV devices.

In my setup, I use `xl trigger $dom sleep` to enter (and exit) s2idle 
for a PVH domain, which has the ACPI buttons exposed with X86_EMU_PM. 
This is a non-standard configuration.

I've additionally tested with `echo mem > /sys/power/state` to enter 
s2idle.  Again waking with `xl trigger $dom sleep`.

xl console remains connected, but typing there does not wake.

What kind of guest are you testing with?  How do you wake it?  If it's 
HVM in S3, another way to attempt wake up may be `xl 
qemu-monitor-command $dom system_wakeup`.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 17:45:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 17:45:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175938.1500528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ7xk-0001xb-5h; Mon, 01 Dec 2025 17:45:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175938.1500528; Mon, 01 Dec 2025 17:45:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ7xk-0001xU-1y; Mon, 01 Dec 2025 17:45:24 +0000
Received: by outflank-mailman (input) for mailman id 1175938;
 Mon, 01 Dec 2025 17:45:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oG9V=6H=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vQ7xi-0001xO-Ju
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 17:45:22 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7e9256f2-cedd-11f0-980a-7dc792cee155;
 Mon, 01 Dec 2025 18:45:16 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BN8PR03MB4978.namprd03.prod.outlook.com (2603:10b6:408:78::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Mon, 1 Dec
 2025 17:45:13 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Mon, 1 Dec 2025
 17:45:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7e9256f2-cedd-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mgIRA5sTmwN8e8vEz/PlgoBDY/3pvUhEHdBOikfrblp+PBB8q2M12SUeRCkOwKmhEc76MRYjwuburo1EeDdmQSzmwqASFplINt+5I6vx97Bfea0GLk4U8r8SE9vN/StLBNjnGvDx+1tkHtQgd9WYiwuX7bFe15XXNkz2FzpxOUP8wf8tG0vEC6eE8LmG4azXP85Fa402rEumLvpmHh3k9A2hZrM+BTrwdWzB8hAAwSmQGIx4OSQ9jair8QDZ+5eHTqjjvd8AwtUGkKfluHfZzAUdde2ge7RDe9vpGLMt+3GqLEgqcdsf5Ui8ifQ7ETigFZBSY90nAtf3Xc8+iGvPCQ==
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=LqNmJ7YR6hEJP1RbETLwR0r9mKoImCRlDZDzPhR/11c=;
 b=di6fLZV0i2CH7cq5vwBOlpvCyN+95SVcDP4tujgbtLzE8tPx6iB0uUXJyagdPdBPF3wwW6/Csxo/uTJMS6zWbUKaJnLktel+pSNey8LCTDzI9KQyPuh7l3aOkx1ng53KYk3aN6l6YIPrzD3H+fM1az9kkWB4hKpssLoA/7h99yjfCO/CLsCpzWksl/Ych+/5uBUnPbH/udsGq4Zryqi6FtncU3bYzXmbjlt0Sre59T85fhMvOG9lInd47WzEkY4o3ezYSoc/9g03SwN9ecl+S5e2P7HXYyOpem8AvjrTifd3YCH3qNVdRGDpYl7D8+1zB/NI2skw5n4+UyQk8fmg3Q==
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=LqNmJ7YR6hEJP1RbETLwR0r9mKoImCRlDZDzPhR/11c=;
 b=aSKXMJn1WX7ASH5DDM1++2z4Y2uB0NfUmxfi6YsKvH39vkTOZ85obV8i2AjTKZj6ZKh9obPbg3SnMCA47ZyG5DzfWO0OjnY+zsuCVrrb9gNr8l+QE4mPfck5Mnhi8KXCUq4BZVirZEX3AV7xNmeYHeUFeFcjhlVpkSyxxsPVvls=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <12d2c454-7744-4b13-9156-48b284900c8c@citrix.com>
Date: Mon, 1 Dec 2025 17:45:09 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Paul Durrant <paul@xen.org>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [PATCH] viridian: Fix bank count counting
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <5e38608b45ad25e6582163700edd3f232b6d2325.1764606368.git.teddy.astie@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <5e38608b45ad25e6582163700edd3f232b6d2325.1764606368.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0340.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18c::21) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BN8PR03MB4978:EE_
X-MS-Office365-Filtering-Correlation-Id: 530d9a23-2a0d-4930-7c3d-08de31016110
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VTdBU21KYmxvaGZtZ2NBYjhNeU96Y2pBWTgyUXByTzViR0phTEluZE5mc3Zx?=
 =?utf-8?B?SkhFM3U3dnBQNWk1MXNNdlFwamxrVENPb1g1MDNsOFRuRklGU3YwNVFEOWVQ?=
 =?utf-8?B?L1RsZUdjUG9hRnVBZmE5SkRhZldrVUdaZWNDWnBMYVNDUU43Mk95MnJ1d0NC?=
 =?utf-8?B?QkMydENSUU14alQvVWFPalkwQTdpZzJrWnozTC9qamNYRUpUVEJOZXBIVGx4?=
 =?utf-8?B?VlZHR0NPZWhzTUpZS2xaTDVKRGZxM29adUR5d0FkMDhGbnZ2bGdlMElnWm53?=
 =?utf-8?B?dWlldHJZTUI5QW4wbkpxV3BSZ3ZoRnBZRlY5bE9uQ3krWkxrRjd1VXp1a3FO?=
 =?utf-8?B?Q2k5RVFoanF1ekh4eXhrcFNONWpyNzU3MGdZMzhRS1JHT2h4Wlh2VlFQZlg1?=
 =?utf-8?B?M05XQXR0NWtJOFo3VUQvMWNCZ1dhVGs0cDZjUFFOMDVjRGhCcUQvUVlEYUJ5?=
 =?utf-8?B?NXJNLzJHVUxocnhnU3U1UnFIRGlOTnRrVzlBSExGK2tFbjMzSmMzREFHNDJ1?=
 =?utf-8?B?eHBJVjVkTXd1VjFMQnRhV0h3UGZrVXJ0RXlwMkVUZThlc2w1SEVLUVpFdWE3?=
 =?utf-8?B?Y0NpQ2NCajhtbmU2ZHJxV3pSdlExN25JUlV1eGZUUFFoS09pZzJPZXdLSmJu?=
 =?utf-8?B?anhhZkwvQ2ZjWWZMUThoTVhFL1lKc1o4WmZsRlZaZitDMkkxbGdZc1YyVmJT?=
 =?utf-8?B?UFhYamgxRTExbnNBdG9JQnljRHFzU0Faa1hUejR0NkEybDkrYmxORzVLNWpR?=
 =?utf-8?B?WlR6OHZ3b2x1ZlJMRVk1V1V1QTB5enBUbUpLdmpvTEtTVjNYbzZBT0hHSGdP?=
 =?utf-8?B?bk1sVnRQWHg1NDgzcHVLZEdmSnhhU0tOd2czR0htdzRZRnNQY0c3Wml0YW5I?=
 =?utf-8?B?bVdqcnZzWUd3d3E4aVZoTklud01TOGNhRmRnUkZIc0NKaktkdlFydHY5aVpZ?=
 =?utf-8?B?dmp1ODFiUzJQSEs5Zkh0N25ZSnBYZUFXT2cxV1lZSm1uaEFjN0ZEaktIcHll?=
 =?utf-8?B?dk9wMSszbnBDYmVwQjk4SkQ1aDZySFUwTXJFTnFYbU9tREg3cjE3WkhyZ0Zh?=
 =?utf-8?B?WVBnUXAyZDhUVHhRVVovanVJVklBME96RWNHZXRSUDV2YlZQTitnN1M4bzZj?=
 =?utf-8?B?TnRKZyttZHBROFJTaVpLalJNV1hMSzI5OWpvVkI4ZXNkRGozNFdlQSt5OFJT?=
 =?utf-8?B?VXltK0x4cVlJS1hpTTFrSk9Pd2VhdDV3WFR3MFZDekE2S2FyZkNJVFdPM1N5?=
 =?utf-8?B?UjBiOHcxYU01Z09jOFZBdU05Nm5mS1FLOFRsV2t1VGdhQXduMXA4VmxURGRB?=
 =?utf-8?B?Y0c3UUVOTFZES2ZVK3o1TXZ3aS9IY2lrS0dtUFpjbGpFVmFGQko0S2tqSUNP?=
 =?utf-8?B?NWliR0dZSWRIZzdWWWpURml4NFh2eG9DUExtODNpRjN1ejNUVnF5RGZQMTVO?=
 =?utf-8?B?Mm95cW9FNjZMTzJvMXN6bTdZNWZiOEs4MmJlNlBJSEFZVjltWFIzdjZjV0Jj?=
 =?utf-8?B?bzhRV1FwNG84dHZwd3ZiR2ttZ3JiRFB4bDVVN2lKOS9pSDlTaytyNVFndFNX?=
 =?utf-8?B?YVZGYzhrd3Z2NVdwOGRZSENlTXFheVk4cGJiTy9GdENIbnByVFluRHcvZHFj?=
 =?utf-8?B?SGpaaXd0blJPc0dSa04zTE9hNk4zazJMN2J0NE5MZWV4UWErNzl0WGJkcWp6?=
 =?utf-8?B?K3A4ajBhQlhXVVcxdElrQTY3NW5weXRUY2FZb1RyVlRGbUxGeFAyR1crd0tN?=
 =?utf-8?B?elpUZnJxL3E3ZFBKdHdwdUgrbGpsM2lBOU0wUjdWZjA2RWRPb3J2eGMzc1VV?=
 =?utf-8?B?OHpFR2lyQ29ubVI2Yi84ZERBZU9ibEdYY1YrbWdjdHMyZ2JaQUNjb2FIeDZh?=
 =?utf-8?B?OVU3L1lQN2Q5L2dNUDJINzdjZFFhRHF5SDAzV1dxVEZaSHFxNjFYbDFvaUlU?=
 =?utf-8?B?STlscmhDaXgwdGJ1T3h1WlNvMmIydkZxY1cyZUxxWUpFZE5sclN3cEt2Slh0?=
 =?utf-8?B?d3lya2podE5BPT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cHNxczQwcUl1V3VXVENnNjlVbis0YndEa29VOXovZTBhVGJLb1BTQmphd29V?=
 =?utf-8?B?T0E5ejFYOXBiTVkvd2I2UjhJQ0Qva0E3UHpBeS9xQ0w0dmZWTVVDYXZ4V3Nu?=
 =?utf-8?B?Mnd2TWlMSlROeEYvbVpHdnBIaENjZUUrL3RnaGVYcllQMnZOZm1mZjVWTkdx?=
 =?utf-8?B?dmVzNTRlNlFBRTZydVhBZlNma1lqdXYwVzNtYURzVnBYbGw1Qm9yeEFTOThl?=
 =?utf-8?B?MXk0bFVUZkxQVk9JOXNXUFFsZjRoNUdyOG9LY0MxeGJRd0JWZVJacnFJeHVX?=
 =?utf-8?B?clRlMHIvUW4zcWMwWFVaS0RxeDVJKzdxTTFRbi9Vb3JPWmZ5ZllQdXN4OXVz?=
 =?utf-8?B?bnJBRkt6dE5xV01JY0RCVzdxeSs4Q21JQnRZdlFSM2RLU1paT3ZzaExjR0kw?=
 =?utf-8?B?MFVmK2xBZEdmVjRNZWRwYm13UFhJZUp0akJ5em4vd3krb3EyT2VhOTRtN2M2?=
 =?utf-8?B?cUg0dG9JTmMxbkZrWGZEMjlKSmhydjF6OUkrK0RvZkVoN2M5Y2s2NHZiTEs4?=
 =?utf-8?B?TmszUU5GU2xGNm5ybkxZbHRuZjIxNlhLa2lxaUNNYXkrSWlkVnJOV0JNcVY5?=
 =?utf-8?B?cmpsd2pHWUZXckUyTjJjTHEvLzA1c3Jkb25SNkNZZHdwcnBQcm5qM1JWSXcr?=
 =?utf-8?B?VUp6RUFCRzBFbjFySVU5a2hQSVAyMDNBbzJmVVhyTS9MdURKVE45WWNGbHJ6?=
 =?utf-8?B?VFgrVytNNUw1VmQrMFArTmxTd0x6ZXo5NjExRHhqLytSOTdZMUUzdDdoenVl?=
 =?utf-8?B?dEhOWnNUQWV4UURSVjduNi9peFpxdzM0aTByZytxbi80b2ZHQWJEUkxHM3Z4?=
 =?utf-8?B?bSt5TFovNW91TUhDSzFhbTk0RDRhVE1XNUNhYmpTZ3FoV2dkMWsyOEpDTFoy?=
 =?utf-8?B?ZWc5cWxPUzEwTExmWC9ScE1saFJSSFZjL0pUMEgyNkpzN0M4Vk4xcWZFZ1lW?=
 =?utf-8?B?dmJ3VzU1WnZRUDVOSVhCMUdlT2xpMEdGMkNhOGxHY3N3QmlVOUFpNWJmcTVq?=
 =?utf-8?B?ZFprRXpOMnBSZ1RpZkUvRzNHMmo1V3g4RnpEOUZJaWhkQVVTblFlb0JneXdl?=
 =?utf-8?B?azFvY1Vidy9hbXpRQkIrOXhrSkNqZS9VZXdJTkJJMUhEQllGMmRHTU9vNmZP?=
 =?utf-8?B?NTVxajdsVDcvb0gzcUtRMEtXTEdFKzR4c3c3blFudVE3Q0kwT3VsbHhvWWtS?=
 =?utf-8?B?K3llTEpNNzQ2QWhVSkx0R0VMTjVlWXZSS05EWFFVbnpsQUtyNEVtd3VJT3Ns?=
 =?utf-8?B?OVlrb3M4cFl6ckZ5bzQ0amlmY2tOSVRtZll1Q2REM2FjNHAxRTRzOU9OeTN4?=
 =?utf-8?B?b0ZLT0JJT1MxT0VOOVBaQWJUZmV3d2o2Q0gvNGNUUThiYVc0b2VBNUtuQlp3?=
 =?utf-8?B?blkwL3kwcnZKY29IMXVJcjdCZ0JqbTl2TTBGOTdzZmhmbGtydDd1cFhwd1Ju?=
 =?utf-8?B?L2E3TWsrazJLUHBSek1BQm9pWE04eVJyWmNXSWtFR1FZdW1Xb1N4U0hkREw4?=
 =?utf-8?B?WC9vNDMvVUZ3VE1XaFRQLzljcUdhcUdGUVB2ZmExUjdlSnZkOWxhQTk3d3Rw?=
 =?utf-8?B?QXpIb2ZXSW1OSjZaK2R6WmFwamVWSjMvK2pEZ0wzd2E0dFppUjltK2lneVB2?=
 =?utf-8?B?R1ZGUVFqTWZNalo5N3JDMy9QSVA2Nk4weXhOYmlGQUU1NkN0NlFXNUo3aG9K?=
 =?utf-8?B?U3c5a0tJN3U4MFVyeVB5L0hLQWduTVpSYVYxclh3MTFjemtZM1NzUE9semJp?=
 =?utf-8?B?N1Z2ZDUrY2s3RGJtdENrMmpxcmRFaW5QdWxKd1hOSWRETDdwTDFKSHc0RUZo?=
 =?utf-8?B?V3UwbnhwK3ZWKzZFMk5iMmhlQnloZC9ocEorbzJ1bzBEN0VRSHpNalRIY2pT?=
 =?utf-8?B?aFJ2Qm5NTDlQaVlzNmErR1QxV0QxMlhSa0lqaGU5VWNGanozemcyNm9neVQr?=
 =?utf-8?B?UjJMVm9FMUZYSWsrbjRSeml4dzdqSnJ5ak0wYTUvb2NjV0s1K055czQ2SVcw?=
 =?utf-8?B?bGFCU3AwWUtuTEttWm81ZnB2NVdBeFVQRkpVQ1VLY2RvRFYvcFNiZUl2Q05u?=
 =?utf-8?B?TjVCYXhHK1Y4dHcxZWhEOW9Tc25Fakh4UnZ4OVpmUzRoZHR4aXM1QkFHUnlv?=
 =?utf-8?B?eHpZVVZpRGUySllVVmVJZllDOVhoRjBhdloyTC9sWUNpZk13NloxRUc3VVcr?=
 =?utf-8?B?d0E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 530d9a23-2a0d-4930-7c3d-08de31016110
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2025 17:45:12.8024
 (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: qN7mfioaV8CP13PshowDiV+35BvdvNUHi8SQE7Op03g4wn5sVFj59DWRcR+vlDXzoLLLFyZVyF9/OqKYe+ZrjFm5gQdGWwCja8jNbkmZsQ8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR03MB4978

On 01/12/2025 4:29 pm, Teddy Astie wrote:
> hv_vpset_nr_banks() incorrectly counts the number of bank by using hweight64()
> instead of flsl(). This for instance problematic in case only the second bank
> is selected (i.e >64 vCPUs, where here hweight64 gives 1), causing only the first
> bank to be checked (non-valid) and the second (meaningful) one to be skipped.
>
> Fixes: b4124682db6e ("viridian: add ExProcessorMasks variants of the flush hypercalls")
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
>  xen/arch/x86/hvm/viridian/viridian.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/xen/arch/x86/hvm/viridian/viridian.c b/xen/arch/x86/hvm/viridian/viridian.c
> index 90e749ceb5..f5e526241d 100644
> --- a/xen/arch/x86/hvm/viridian/viridian.c
> +++ b/xen/arch/x86/hvm/viridian/viridian.c
> @@ -601,7 +601,7 @@ static DEFINE_PER_CPU(union hypercall_vpset, hypercall_vpset);
>  
>  static unsigned int hv_vpset_nr_banks(struct hv_vpset *vpset)
>  {
> -    return hweight64(vpset->valid_bank_mask);
> +    return fls64(vpset->valid_bank_mask);
>  }
>  
>  static int hv_vpset_to_vpmask(const struct hv_vpset *in, paddr_t bank_gpa,

https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/tlfs/datatypes/hv_vp_set#processor-set-example

This example is poor (it has several errors in the text), but the final
statement says fairly clearly that the banks are tightly packed and not
contiguous.

Therefore, hweight64() the correct calculation, and AFAICT, the single
use of this helper in Xen correct.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Dec 01 18:21:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 18:21:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175952.1500537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ8WC-0006yr-Po; Mon, 01 Dec 2025 18:21:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175952.1500537; Mon, 01 Dec 2025 18:21:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ8WC-0006yk-Mn; Mon, 01 Dec 2025 18:21:00 +0000
Received: by outflank-mailman (input) for mailman id 1175952;
 Mon, 01 Dec 2025 18:20:59 +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
 <SRS0=2MM0=6H=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vQ8WA-0006ye-Vz
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 18:20:59 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7a33266e-cee2-11f0-9d1a-b5c5bf9af7f9;
 Mon, 01 Dec 2025 19:20:56 +0100 (CET)
Received: from MN2PR04CA0028.namprd04.prod.outlook.com (2603:10b6:208:d4::41)
 by SA0PR12MB4416.namprd12.prod.outlook.com (2603:10b6:806:99::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Mon, 1 Dec
 2025 18:20:51 +0000
Received: from BL6PEPF00020E64.namprd04.prod.outlook.com
 (2603:10b6:208:d4:cafe::9c) by MN2PR04CA0028.outlook.office365.com
 (2603:10b6:208:d4::41) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Mon,
 1 Dec 2025 18:20:54 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BL6PEPF00020E64.mail.protection.outlook.com (10.167.249.25) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Mon, 1 Dec 2025 18:20:50 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 1 Dec
 2025 12:20:48 -0600
Received: from [172.31.77.70] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 1 Dec 2025 10:20:47 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7a33266e-cee2-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FEOF4oz3QZ93rQQqLCdqepRsU6E2mTxvxn4aQDrdxQPxBsVCvKxSzZpii6JTxwm8jM85Bu+kxwJDxBm9frLtDYSCCCQ36qJHe2SseRlGsH+QCo3bt8W6I2JDQlQ3mz1msIfWxSnoudTAldlUoEzsJh3p1lu5rHHe+EdPoWaNAECEDGG/yWtujlyFrRweG/sYLaDpOUZXOeW5D++JNuZA7SZpMFA58IthnFK2QbZDiReewdWhzJfUNxGBMhLj3+TY0vkf4XkpXnC9yFi0UC2kMXYucc/QKT68psVKjtR5prp+vk/4AuLSZ0UgCG2LfSdPNaX3TnP007Duood9Nhn3og==
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=I52DyuTMlAwzXRPy6YzI1itobKzOSJLCLxnFKBFnQTQ=;
 b=EyyWRruGmCYqkOuWKIk4DDtKMpF36hZt6UMh7u55PL7M7OVZBWxP/VitinL0rl6xk36HSQa1nYzTUOsZ/bDXOMYj6x0kMagygD5P51kx6v9JRyUWsKsZVa9fLSD2oT4Lx1Um1ZCGZKSkP+gnV7vIGPrDk7pL/OGkJv87FMUS97koZ+twXepdh+VEQx3J/wg/40yLi9mHqDipIUxBk7nSZzDMjH5n8iRefjEqQWgZaY1OUu3vbHFIgZepQMEEopeRq30r3WnEFHX5rQAvYoxAksEkLhmsdcpu0woHVfUtuVulnbxBP8YL/+i4lmB/EuWMLgp87sOI+ktF+t6DHsvOCg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=invisiblethingslab.com
 smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100)
 action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=I52DyuTMlAwzXRPy6YzI1itobKzOSJLCLxnFKBFnQTQ=;
 b=pmhWN4QRX1Lh6bu3P5Bzi7BltIK6Z8nRlDziILcIMcJ9w3mXZ8H+4rcjhUtoHDG0UqhME59bdEwfjABrFCwvTJIGIyG/xKvh7gOHw+nlMeOzIhstJf0tXRWWzifbxBcmtzXogA7In9XDbFayYs25WyRU7IhMXrt08rRJxRI2lI4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <fb1e5c6f-cb0e-49d0-9e96-8e778573f49c@amd.com>
Date: Mon, 1 Dec 2025 13:20:40 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xenbus: Use .freeze/.thaw to handle xenbus devices
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>
CC: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, Yann Sionneau <yann.sionneau@vates.tech>,
	<xen-devel@lists.xenproject.org>, <linux-kernel@vger.kernel.org>
References: <20251119224731.61497-1-jason.andryuk@amd.com>
 <20251119224731.61497-2-jason.andryuk@amd.com> <aSul6qAYTSOSFJR3@mail-itl>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <aSul6qAYTSOSFJR3@mail-itl>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00020E64:EE_|SA0PR12MB4416:EE_
X-MS-Office365-Filtering-Correlation-Id: 9ab1479c-3fbc-41c0-9a33-08de31065b7a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|30052699003|376014|82310400026|36860700013|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RzVBUkNOUy9MWUdRc0ZEQlBXdDZ5WkxUbFIrRWJOQ0tVTkNCUWtXdUVjVWdJ?=
 =?utf-8?B?Ym9RRTkybUpvV1pnSmRZb0NwT1lkTjQvVld6d0czNzZsaGJZQ3IvWHZFUXFr?=
 =?utf-8?B?Z2hxbzcyYUsrNDlTR2RaNTY2TmFWRzdJQlZsVFBuWE1sZXFoWDJoQlY3SlBi?=
 =?utf-8?B?ZGlydXRXTmU0UkticWM4WTQ2WEN1cnJXNlFBSTRDWjZwZngrU3pYQ2x5U1FT?=
 =?utf-8?B?bkFtd0E2dGkwM09pZG1lRm1lbTlqT0VrSldYSzNHNkw3U2RybkVrdStxZzJv?=
 =?utf-8?B?YUFlVUxra1RJUUpPNGNCdzNJZFRIUVVQR0pPckRkSEtsLzB2VEoyQitSb091?=
 =?utf-8?B?TVAvWDl4WkpmQ05zZEJkMEtWeXJheFVsZDhEdTNLSW5ZbUt1VitYK3pFa0F2?=
 =?utf-8?B?V2YwaGdEK2JlODY4Q05XVFBZOHVBejlSdWFiY1MwRC9GZXFSMWNIcHFqWkJr?=
 =?utf-8?B?c2dQRjc1bmFPeml0S0lGK2VkWjFxRys0R3k3VTRjTWRNOTJUdlhkdzF5cFpw?=
 =?utf-8?B?ZUU3M3ZWMm45ODNEVjUyckc0RXE5cE9BVGlYT3NpMC9GTnFVWXRrRmk1bTA3?=
 =?utf-8?B?Z2FSSkEyVHBJVTJPSTRvbGFka1BQbGU5Q25EeUxnYTc2cXRVMGlpM1gyQkxn?=
 =?utf-8?B?MytYTkI1SWRnZTBHazdadVFPODVzeUVxTDNRdFNqcmJXeTRjU1hIQW1GL3kr?=
 =?utf-8?B?Z1RacUlnYVIvVklkYVlNQ3JKNW9NcHp2dzlETWdCVEJMcUIzOTBGWVNGQVVm?=
 =?utf-8?B?V0gyZzRnejVBYW9NNmYrekZ2MDJFaCtZL0pkZmlSb3FwcXpHQ3BoYy9jbEpC?=
 =?utf-8?B?aHdRUjJPQmhzQlJwMEhTMVZyNzJVelJQOWludVBPNjdMK2EzdWZWWThBcWhE?=
 =?utf-8?B?QzVJZ2FmQkpFeld0d1NzRUNBQUZHVVlLK2JFUUxNN3VnZEhuKzc2d3grUnZy?=
 =?utf-8?B?V1h2bWdTRlhPY2xLQ0V4ZXQwSExWdnh0YmNJUzlWNXdyNWwraVMzYlJNQUVO?=
 =?utf-8?B?eTUwTUxtV3dJUERDUUN0MFY4L2QzK3UybTNUU1FjNGdsNTFzZW5OaWltdXYz?=
 =?utf-8?B?M2NRZlN6WHpUcFdadGR6VkdjY1AzdUhPbUFmcHIyNENnR1lZckJQWHFoWWpn?=
 =?utf-8?B?dENlSWNPdzRVMmp6Zng1dDNXVmQ2elUyS3ZzNDdDOUJld0xURDl4ZGkwbXAz?=
 =?utf-8?B?eHFsYVpuU2ZBOXcxdGN6WldZQXh1Z3h6TFV4VWhsMlN3MzFSa1QzVnhpM3ZK?=
 =?utf-8?B?WUk1VEVSNjV3eWRQdHFmbmZkcjB4T29HZ3kvRC9aOTJReEFiclRyc3dZSGlm?=
 =?utf-8?B?SnlETHVZVkZyTHdOSFdpWm1TOU9kOHZBTCs2TWFwMTlrSy9aZk9sTnFrd3ow?=
 =?utf-8?B?bUtGVWswckNNMTd5OUlmSWVXVm10Q2M0L2lzeUE4NEpOWWo5K05xclY4RGk1?=
 =?utf-8?B?K21Td1B4SFFrRWRQbmZPMzNSQUhCdjlxZlBzdytabEdkSkVWZlVBZmRhMWxi?=
 =?utf-8?B?YS9iOWRCREpBeXdoY0JwMk5uMWJGM20yanFhZUZEZDRDVC9QV3NCUzZYU3J2?=
 =?utf-8?B?eXhjcEZNSm5MUDUvbkgrRVBMd2dvUlRvVjR3cmxjVTJoRkRQdGY2eGZpQkRS?=
 =?utf-8?B?aXN1SWZ0QVN4WExxSE0xa0YrT21zMHRRL0hDVHUvOUZzemJxWFdmYjMrK0Jk?=
 =?utf-8?B?ZTk5TkhtVUFJWXIzb3pPUWZqMGk3QndoK3hkYmN6S0N2Nm1WMEFqTklLU0JG?=
 =?utf-8?B?NTQ5V204VVpnTUlWWTR1c2Q3TjJTMzZaWU1PalI1NCsvNXQ3QXljY2xNSlY3?=
 =?utf-8?B?dStxWEpEam5XMkluWjRsS3BvdUJUaDdMeXloK0RQOFkvcUVCWFRLeWJjb2JR?=
 =?utf-8?B?Y2d3bEZPampEYjlOWlNLY1JEMHZSN25FYk9jRTZBR0FjYjBLY29lWXQzQXRI?=
 =?utf-8?B?NVpLSEpMbXl4R3pWSjltOE11bXZReEx6c2hqZlhCK2ExcGZnWFVmR0RMUnNs?=
 =?utf-8?B?alRtK3ZDQmFCbC9qa1FKOVdsSnRSY3B5YWFGVjdubEkyVzVFVWZ5Q1FEMitz?=
 =?utf-8?Q?pA7pnp?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(30052699003)(376014)(82310400026)(36860700013)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2025 18:20:50.7077
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9ab1479c-3fbc-41c0-9a33-08de31065b7a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF00020E64.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4416

On 2025-11-29 21:03, Marek Marczykowski-Górecki wrote:
> On Wed, Nov 19, 2025 at 05:47:29PM -0500, Jason Andryuk wrote:
>> The goal is to fix s2idle and S3 for Xen PV devices.
> 
> Can you give a little more context of this? We do have working S3 in
> qubes with no need for such change. We trigger it via the toolstack (libxl_domain_suspend_only()).
> Are you talking about guest-initiated suspend here?

This is intended to help domU s2idle/S3 and resume.  I guess that is 
what you mean by guest-initiated?  The domU can use 'echo mem > 
/sys/power/state' to enter s2idle/S3.  We also have the domU react to 
the ACPI sleep button from `xl trigger $dom sleep`.

AIUI, libxl_domain_suspend_only() triggers xenstore writes which Linux 
drivers/xen/manage.c:do_suspend() acts on.  `xl save/suspend/migrate` 
all use this path.

The terminology gets confusing.  Xen uses "suspend" for 
save/suspend/migrate, but the Linux power management codes uses 
freeze/thaw/restore.  AIUI, Linux's PMSG_SUSPEND/.suspend is for runtime 
power management.

When you call libxl_domain_suspend_only()/libxl_domain_resume(), you 
pass suspend_cancel==1.
  *  1. (fast=1) Resume the guest without resetting the domain
        environment.
  *     The guests's call to SCHEDOP_shutdown(SHUTDOWN_suspend) will
        return 1.

That ends up in Linux do_suspend() as si.cancelled = 1, which calls 
PMSG_THAW -> .thaw -> xenbus_dev_cancel() which is a no-op.  So it does 
not change the PV devices.

We needed guest user space to perform actions before entering s2idle. 
libxl_domain_suspend_only() triggers the Linux kernel path which does 
not notify user space.  The ACPI power buttons let user space perform 
actions (lock and blank the screen) before entering the idle state.

> We also have kinda working (host) s2idle. You may want to take a look at this
> work (some/most of it was posted upstream, but not all got
> committed/reviewed):
> https://github.com/QubesOS/qubes-issues/issues/6411#issuecomment-1538089344
> https://github.com/QubesOS/qubes-linux-kernel/pull/910 (some patches
> changed since that PR, see the current main too).

This would not affect host s2idle - it changes PV frontend devices.

Do you libxl_domain_suspend_only() all domUs and then put dom0 into s0ix?

>> A domain resuming
>> from s3 or s2idle disconnects its PV devices during resume.  The
>> backends are not expecting this and do not reconnect.
>>
>> b3e96c0c7562 ("xen: use freeze/restore/thaw PM events for suspend/
>> resume/chkpt") changed xen_suspend()/do_suspend() from
>> PMSG_SUSPEND/PMSG_RESUME to PMSG_FREEZE/PMSG_THAW/PMSG_RESTORE, but the
>> suspend/resume callbacks remained.
>>
>> .freeze/restore are used with hiberation where Linux restarts in a new
>> place in the future.  .suspend/resume are useful for runtime power
>> management for the duration of a boot.
>>
>> The current behavior of the callbacks works for an xl save/restore or
>> live migration where the domain is restored/migrated to a new location
>> and connecting to a not-already-connected backend.
>>
>> Change xenbus_pm_ops to use .freeze/thaw/restore and drop the
>> .suspend/resume hook.  This matches the use in drivers/xen/manage.c for
>> save/restore and live migration.  With .suspend/resume empty, PV devices
>> are left connected during s2idle and s3, so PV devices are not changed
>> and work after resume.
> 
> Is that intended? While it might work for suspend by a chance(*), I'm
> pretty sure not disconnecting + re-reconnecting PV devices across
> save/restore/live migration will break them.

save/restore/live migration keep using .freeze/thaw/restore, which 
disconnects and reconnects today.  Nothing changes there as 
xen_suspend()/do_suspend() call the power management code with 
PMSG_FREEZE/PMSG_THAW/PMSG_RESTORE.

This patches makes .suspend/resume no-ops for PMSG_SUSPEND/PMSG_RESUME. 
When a domU goes into s2idle/S3, the backend state remains connected. 
With this patch, when the domU wakes up, the frontends do nothing and 
remain connected.

> (*) and even that I'm not sure - with driver domains, depending on
> suspend order this feels like might result in a deadlock...

I'm not sure.  I don't think this patch changes anything with respect to 
them.

Thanks for testing.

Maybe the commit messages should change to highlight this is for domU PV 
devices?  struct xen_bus_type xenbus_backend does not define dev_pm_ops.

Regards,
Jason

>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> ---
>>   drivers/xen/xenbus/xenbus_probe_frontend.c | 4 +---
>>   1 file changed, 1 insertion(+), 3 deletions(-)
>>
>> diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c
>> index 6d1819269cbe..199917b6f77c 100644
>> --- a/drivers/xen/xenbus/xenbus_probe_frontend.c
>> +++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
>> @@ -148,11 +148,9 @@ static void xenbus_frontend_dev_shutdown(struct device *_dev)
>>   }
>>   
>>   static const struct dev_pm_ops xenbus_pm_ops = {
>> -	.suspend	= xenbus_dev_suspend,
>> -	.resume		= xenbus_frontend_dev_resume,
>>   	.freeze		= xenbus_dev_suspend,
>>   	.thaw		= xenbus_dev_cancel,
>> -	.restore	= xenbus_dev_resume,
>> +	.restore	= xenbus_frontend_dev_resume,
>>   };
>>   
>>   static struct xen_bus_type xenbus_frontend = {
>> -- 
>> 2.34.1
>>
>>
> 



From xen-devel-bounces@lists.xenproject.org Mon Dec 01 18:59:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 18:59:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175969.1500555 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ97Y-0002hx-LU; Mon, 01 Dec 2025 18:59:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175969.1500555; Mon, 01 Dec 2025 18:59:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQ97Y-0002hq-In; Mon, 01 Dec 2025 18:59:36 +0000
Received: by outflank-mailman (input) for mailman id 1175969;
 Mon, 01 Dec 2025 18:59:35 +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
 <SRS0=dZUx=6H=bounce.vates.tech=bounce-md_30504962.692de592.v1-eabfd459e8c54d01ac90e9eaf32310aa@srs-se1.protection.inumbo.net>)
 id 1vQ97X-0002hk-KN
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 18:59:35 +0000
Received: from mail132-18.atl131.mandrillapp.com
 (mail132-18.atl131.mandrillapp.com [198.2.132.18])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id decd81dc-cee7-11f0-9d1a-b5c5bf9af7f9;
 Mon, 01 Dec 2025 19:59:32 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-18.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4dKtVp5HkSzCf9KJ3
 for <xen-devel@lists.xenproject.org>; Mon,  1 Dec 2025 18:59:30 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 eabfd459e8c54d01ac90e9eaf32310aa; Mon, 01 Dec 2025 18:59:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: decd81dc-cee7-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1764615570; x=1764885570;
	bh=ylhC4YE60smKb0i1ZncxMoizZaeMIEpwPETneDMcwXQ=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=ehCQyZ+dDv1AneK4EPxUViHlDFI9+QAJ76NNN9S6vzte0ZiqDQYzljrFC7+0N6A+l
	 apOEfX+mtN/niLAGnES6HytXeUIGOA4++bZy1o1iQG5u7OmZlPq28ybTYCMPvGAdln
	 rpvlYtbBK2kEQ+36uYtiJymY9ui97rBi9plNr5k5MxO6/B8zM90xq1h6OrrcS56Yl3
	 0Na4bvUbXE2nGdxHiMqWaCRDawMDIYmXUry4btp2KYGbR6nTuhFyQI/wSGhy92SS1B
	 EAI2hSi3qBeiCFxytNB8hd6OAPq0xFfdn7DwtoP1WCR86Td6KwAeKGgtk5T3stFSFm
	 6HN8A3upK37mQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1764615570; x=1764876070; i=teddy.astie@vates.tech;
	bh=ylhC4YE60smKb0i1ZncxMoizZaeMIEpwPETneDMcwXQ=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=OB5RwmwqmCI9FD09FTZ5895aAf67DLmxU7YShrNOC+r7bpZ53U1uEP5GqEgAuax+B
	 a2jvnwNa3q7xeT0KzP9pn3wLrCocDb3L5nOV5xwj/LokyJ1ZRqAylo/DvkxCLOBDcm
	 CuGd/VmCNaeHrkIczR+SZR3gha260xqD9RNvRvnuHQ26xCQ+OaIXBkOqi6M7sashOt
	 Djg8r4jTor2/y9CCyoLjHI2aFNSoOx5G7k9aPqYHyip1XjvCeFRpjDBkx5N5hY/jc6
	 TIslbm29PY2fma4q5hCc60DTK5Jl0T3H/q11WeAuA0QQemiYFwqDyWKxJ5ubyIQJCU
	 1aW2SqHBPQuHQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20viridian:=20Fix=20bank=20count=20counting?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1764615569642
Message-Id: <94d1520d-f848-41cb-89e5-48b37e29bd9a@vates.tech>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: "Paul Durrant" <paul@xen.org>, "Jan Beulich" <jbeulich@suse.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
References: <5e38608b45ad25e6582163700edd3f232b6d2325.1764606368.git.teddy.astie@vates.tech> <12d2c454-7744-4b13-9156-48b284900c8c@citrix.com>
In-Reply-To: <12d2c454-7744-4b13-9156-48b284900c8c@citrix.com>
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.eabfd459e8c54d01ac90e9eaf32310aa?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251201:md
Date: Mon, 01 Dec 2025 18:59:30 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 01/12/2025 =C3=A0 18:48, Andrew Cooper a =C3=A9crit=C2=A0:
> On 01/12/2025 4:29 pm, Teddy Astie wrote:
>> hv_vpset_nr_banks() incorrectly counts the number of bank by using hweig=
ht64()
>> instead of flsl(). This for instance problematic in case only the second=
 bank
>> is selected (i.e >64 vCPUs, where here hweight64 gives 1), causing only =
the first
>> bank to be checked (non-valid) and the second (meaningful) one to be ski=
pped.
>>
>> Fixes: b4124682db6e ("viridian: add ExProcessorMasks variants of the flu=
sh hypercalls")
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>> ---
>>   xen/arch/x86/hvm/viridian/viridian.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/xen/arch/x86/hvm/viridian/viridian.c b/xen/arch/x86/hvm/vir=
idian/viridian.c
>> index 90e749ceb5..f5e526241d 100644
>> --- a/xen/arch/x86/hvm/viridian/viridian.c
>> +++ b/xen/arch/x86/hvm/viridian/viridian.c
>> @@ -601,7 +601,7 @@ static DEFINE_PER_CPU(union hypercall_vpset, hyperca=
ll_vpset);
>>   
>>   static unsigned int hv_vpset_nr_banks(struct hv_vpset *vpset)
>>   {
>> -    return hweight64(vpset->valid_bank_mask);
>> +    return fls64(vpset->valid_bank_mask);
>>   }
>>   
>>   static int hv_vpset_to_vpmask(const struct hv_vpset *in, paddr_t bank_=
gpa,
> 
> https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/tlfs/=
datatypes/hv_vp_set#processor-set-example
> 
> This example is poor (it has several errors in the text), but the final
> statement says fairly clearly that the banks are tightly packed and not
> contiguous.
> 
> Therefore, hweight64() the correct calculation, and AFAICT, the single
> use of this helper in Xen correct.
> 

Ok, I see what you mean, such that only set bit of the mask imply a bank 
in the "BankContents". Which means that 2 set bits (regardless of their 
position) means 2 banks (regardless of which one).

But that looks contradictory with the second sentence
> The total set of virtual processors is split up into chunks of 64, known =
as a =E2=80=9Cbank=E2=80=9D. For example,
> processors 0-63 are in bank 0, 64-127 are in bank 1, and so on.

Even though, all the banks and "BankContents" are different things.

Interestingly, all open-source users of this hypercall I found fills the 
mask with 1s (up to the maximum vCPU they want to target). So in such 
case the layout is fully contiguous at the end.

> ~Andrew
> 



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Dec 01 22:17:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2025 22:17:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175982.1500566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQCCP-0000Q7-Us; Mon, 01 Dec 2025 22:16:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175982.1500566; Mon, 01 Dec 2025 22:16:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQCCP-0000Q0-RA; Mon, 01 Dec 2025 22:16:49 +0000
Received: by outflank-mailman (input) for mailman id 1175982;
 Mon, 01 Dec 2025 22:16:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hgWx=6H=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vQCCO-0000Pu-3M
 for xen-devel@lists.xenproject.org; Mon, 01 Dec 2025 22:16:48 +0000
Received: from fhigh-a8-smtp.messagingengine.com
 (fhigh-a8-smtp.messagingengine.com [103.168.172.159])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 68553641-cf03-11f0-980a-7dc792cee155;
 Mon, 01 Dec 2025 23:16:39 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 9C02F140015F;
 Mon,  1 Dec 2025 17:16:38 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-06.internal (MEProxy); Mon, 01 Dec 2025 17:16:38 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 1 Dec 2025 17:16:36 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 68553641-cf03-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm3; t=1764627398;
	 x=1764713798; bh=J3qMW1OCZIlVxI0UekDVekbDTFyGGqilI0Pi5RQhmhY=; b=
	Gh83FDlI7RX03Dj3y6HaCsupq9S9+q0x4mT4ZEEqmcZYTf7KvPUlHCzLmo/Sohci
	QmpnE9KitImOm2lW30CkiYux3WwJwfQve/d8z6I1mcVA4FcATihWtIXqyWELb6EQ
	a19bZfvRfDBevecrb5609YHgeJrwprK3y31dC4juYq6O/7Y/WRFCxaQ4JYn4hRA2
	jaFjkDXI92zmiy0Wj/eWbtzBm2xSNeGF8BM0RIhPnNUWQKNeF6V6McIhGQcxV+OG
	DImGxLbBFlW2aQ51oEsyod8tK8kEuKJBJRKRv9BY+5RikrtLT1Wi4+71E/Q2tGbO
	ETfDTCGU2CiUV14puCnqeQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
	1764627398; x=1764713798; bh=J3qMW1OCZIlVxI0UekDVekbDTFyGGqilI0P
	i5RQhmhY=; b=S3/GN4eafYOvnAB6vfwiP3zK7pYn28um3ZE93lJ+K7KRg0p08ki
	EIaIa7nFMFPhltQEumE8V7+McSHQRWhLMYjGzkh36AvvIA1XENf/quciGtLz4n0+
	Tvdc+c1sC7LUpOxGwi+0+K0SGhKAvL6nO5c2w13XdeZTky19l/l5yAK8DaVdg3aB
	aIP9RLB0Uu+yw/8ycssxzo8tsad2VQ89WECglqww5KTksQwvN7q4gmaPA9YoYfFF
	MMGZArjUbmmw2tSq8B5F5Q2YQaNjcZKxIJrfGS2SF41b65r5WuOFvzNaWXaveHyU
	16U3QGhy8suJxlWTJ73TsFuRjyYCUPVRpMg==
X-ME-Sender: <xms:xhMuaSJBoI0EtGG2AYWs7ANvdL8O5KwIP7X97D33LxAjSIThHKzLQQ>
    <xme:xhMuaa21x12pBLWKEx2g0619PqECa7Ce7oa1n8N8yhEB-Gzdxh_FEYjV6AnBRkjFo
    wKWMAzgo2DHoisKOzUPZqbzcYVlma2axYESvrzwxYvKIKw>
X-ME-Received: <xmr:xhMuaQ6dciQDrHIacg3uccVAt2qGiXXIQeZwaDO1oK0yblmpljgo_b5x8o0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvheekkeelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepffeiffej
    hfevvdegtedtgfelueeliedvvdeftdeuueeutdfffefhfedvhfejhfeunecuffhomhgrih
    hnpehgihhthhhusgdrtghomhdpthhhvghmrdhsrghvvgenucevlhhushhtvghrufhiiigv
    pedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisg
    hlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeejpdhmohguvgepshhm
    thhpohhuthdprhgtphhtthhopehjrghsohhnrdgrnhgurhihuhhksegrmhgurdgtohhmpd
    hrtghpthhtohepjhhgrhhoshhssehsuhhsvgdrtghomhdprhgtphhtthhopehsshhtrggs
    vghllhhinhhisehkvghrnhgvlhdrohhrghdprhgtphhtthhopeholhgvkhhsrghnughrpg
    hthihshhgthhgvnhhkohesvghprghmrdgtohhmpdhrtghpthhtohephigrnhhnrdhsihho
    nhhnvggruhesvhgrthgvshdrthgvtghhpdhrtghpthhtohepgigvnhdquggvvhgvlheslh
    hishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoheplhhinhhugidqkhgv
    rhhnvghlsehvghgvrhdrkhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:xhMuab_SHL2L6CaoJAXIx0Nc7fRMolgYB4IoEPt9RdmtOGfAfo8oYQ>
    <xmx:xhMuafWwi8h-ygoLxMJYLaYOrLecMXmywqCgqfzqxraHidZejS6VRg>
    <xmx:xhMuaWpxuwrj5QE2XluWdVAyR3LAI2c-BK1wf_GJM6EEmrsFXKhCEw>
    <xmx:xhMuaRlE-QZ3gS0f7h5kEz9ETSajTBwEY7z9YxrKEMYVPA-kJzNOzA>
    <xmx:xhMuaXEUAR_jpfzXo2inJfGBhYeLbaZERlEOtNpKLnCohknKknFN3RAu>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 1 Dec 2025 23:16:35 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Yann Sionneau <yann.sionneau@vates.tech>,
	xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] xenbus: Use .freeze/.thaw to handle xenbus devices
Message-ID: <aS4Tw7hUJDw6Jt_9@mail-itl>
References: <20251119224731.61497-1-jason.andryuk@amd.com>
 <20251119224731.61497-2-jason.andryuk@amd.com>
 <aSul6qAYTSOSFJR3@mail-itl>
 <fb1e5c6f-cb0e-49d0-9e96-8e778573f49c@amd.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="7URB8WNuJVC0wZb9"
Content-Disposition: inline
In-Reply-To: <fb1e5c6f-cb0e-49d0-9e96-8e778573f49c@amd.com>


--7URB8WNuJVC0wZb9
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 1 Dec 2025 23:16:35 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Yann Sionneau <yann.sionneau@vates.tech>,
	xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] xenbus: Use .freeze/.thaw to handle xenbus devices

On Mon, Dec 01, 2025 at 01:20:40PM -0500, Jason Andryuk wrote:
> On 2025-11-29 21:03, Marek Marczykowski-G=C3=B3recki wrote:
> > On Wed, Nov 19, 2025 at 05:47:29PM -0500, Jason Andryuk wrote:
> > > The goal is to fix s2idle and S3 for Xen PV devices.
> >=20
> > Can you give a little more context of this? We do have working S3 in
> > qubes with no need for such change. We trigger it via the toolstack (li=
bxl_domain_suspend_only()).
> > Are you talking about guest-initiated suspend here?
>=20
> This is intended to help domU s2idle/S3 and resume.  I guess that is what
> you mean by guest-initiated?  The domU can use 'echo mem > /sys/power/sta=
te'
> to enter s2idle/S3.  We also have the domU react to the ACPI sleep button
> from `xl trigger $dom sleep`.

Ok, so this is indeed a different path than we use in Qubes OS.

> AIUI, libxl_domain_suspend_only() triggers xenstore writes which Linux
> drivers/xen/manage.c:do_suspend() acts on.  `xl save/suspend/migrate` all
> use this path.
>=20
> The terminology gets confusing.  Xen uses "suspend" for
> save/suspend/migrate, but the Linux power management codes uses
> freeze/thaw/restore.  AIUI, Linux's PMSG_SUSPEND/.suspend is for runtime
> power management.

Indeed it gets confusing...

> When you call libxl_domain_suspend_only()/libxl_domain_resume(), you pass
> suspend_cancel=3D=3D1.
>  *  1. (fast=3D1) Resume the guest without resetting the domain
>        environment.
>  *     The guests's call to SCHEDOP_shutdown(SHUTDOWN_suspend) will
>        return 1.
>=20
> That ends up in Linux do_suspend() as si.cancelled =3D 1, which calls
> PMSG_THAW -> .thaw -> xenbus_dev_cancel() which is a no-op.  So it does n=
ot
> change the PV devices.
>=20
> We needed guest user space to perform actions before entering s2idle.
> libxl_domain_suspend_only() triggers the Linux kernel path which does not
> notify user space.  The ACPI power buttons let user space perform actions
> (lock and blank the screen) before entering the idle state.

I see. In our case, we have our own userspace hook that gets called
before (if relevant - in most cases it isn't).

> > We also have kinda working (host) s2idle. You may want to take a look a=
t this
> > work (some/most of it was posted upstream, but not all got
> > committed/reviewed):
> > https://github.com/QubesOS/qubes-issues/issues/6411#issuecomment-153808=
9344
> > https://github.com/QubesOS/qubes-linux-kernel/pull/910 (some patches
> > changed since that PR, see the current main too).
>=20
> This would not affect host s2idle - it changes PV frontend devices.
>=20
> Do you libxl_domain_suspend_only() all domUs and then put dom0 into s0ix?

Yes, exactly.

> > > A domain resuming
> > > from s3 or s2idle disconnects its PV devices during resume.  The
> > > backends are not expecting this and do not reconnect.
> > >=20
> > > b3e96c0c7562 ("xen: use freeze/restore/thaw PM events for suspend/
> > > resume/chkpt") changed xen_suspend()/do_suspend() from
> > > PMSG_SUSPEND/PMSG_RESUME to PMSG_FREEZE/PMSG_THAW/PMSG_RESTORE, but t=
he
> > > suspend/resume callbacks remained.
> > >=20
> > > .freeze/restore are used with hiberation where Linux restarts in a new
> > > place in the future.  .suspend/resume are useful for runtime power
> > > management for the duration of a boot.
> > >=20
> > > The current behavior of the callbacks works for an xl save/restore or
> > > live migration where the domain is restored/migrated to a new location
> > > and connecting to a not-already-connected backend.
> > >=20
> > > Change xenbus_pm_ops to use .freeze/thaw/restore and drop the
> > > .suspend/resume hook.  This matches the use in drivers/xen/manage.c f=
or
> > > save/restore and live migration.  With .suspend/resume empty, PV devi=
ces
> > > are left connected during s2idle and s3, so PV devices are not changed
> > > and work after resume.
> >=20
> > Is that intended? While it might work for suspend by a chance(*), I'm
> > pretty sure not disconnecting + re-reconnecting PV devices across
> > save/restore/live migration will break them.
>=20
> save/restore/live migration keep using .freeze/thaw/restore, which
> disconnects and reconnects today.  Nothing changes there as
> xen_suspend()/do_suspend() call the power management code with
> PMSG_FREEZE/PMSG_THAW/PMSG_RESTORE.
>=20
> This patches makes .suspend/resume no-ops for PMSG_SUSPEND/PMSG_RESUME. W=
hen
> a domU goes into s2idle/S3, the backend state remains connected. With this
> patch, when the domU wakes up, the frontends do nothing and remain
> connected.

This explanation makes sense.

> > (*) and even that I'm not sure - with driver domains, depending on
> > suspend order this feels like might result in a deadlock...
>=20
> I'm not sure.  I don't think this patch changes anything with respect to
> them.
>=20
> Thanks for testing.
>=20
> Maybe the commit messages should change to highlight this is for domU PV
> devices?  struct xen_bus_type xenbus_backend does not define dev_pm_ops.

Good idea.

> Regards,
> Jason
>=20
> > > Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> > > ---
> > >   drivers/xen/xenbus/xenbus_probe_frontend.c | 4 +---
> > >   1 file changed, 1 insertion(+), 3 deletions(-)
> > >=20
> > > diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen=
/xenbus/xenbus_probe_frontend.c
> > > index 6d1819269cbe..199917b6f77c 100644
> > > --- a/drivers/xen/xenbus/xenbus_probe_frontend.c
> > > +++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
> > > @@ -148,11 +148,9 @@ static void xenbus_frontend_dev_shutdown(struct =
device *_dev)
> > >   }
> > >   static const struct dev_pm_ops xenbus_pm_ops =3D {
> > > -	.suspend	=3D xenbus_dev_suspend,
> > > -	.resume		=3D xenbus_frontend_dev_resume,
> > >   	.freeze		=3D xenbus_dev_suspend,
> > >   	.thaw		=3D xenbus_dev_cancel,
> > > -	.restore	=3D xenbus_dev_resume,
> > > +	.restore	=3D xenbus_frontend_dev_resume,
> > >   };
> > >   static struct xen_bus_type xenbus_frontend =3D {
> > > --=20
> > > 2.34.1
> > >=20
> > >=20
> >=20
>=20

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--7URB8WNuJVC0wZb9
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkuE8MACgkQ24/THMrX
1yyP5AgAkhl+NBtcgDULHljQUhGByww8Twt2ETkimFzpUKzLC2CcIvuEGf4vqjUm
gK+pc+lmtnIsTua+PJb86Ko5hOb1VLHtcx0zPLfHtF/zwngMIvZyOuCah+86ZjgF
3vEUkV6n56X10uMMY0J8VgPKERzF7mNelu06anIS0KphMHkp6IPeBVQ+KcSQZKFM
RjPmmiFVMFcVRybubrWmDquy+VbXxrarEVS/h6BZjyafrC35rlwSrLXhUhNjaBOF
sZ8MlEkXphgOG5Si4WZ2PrqNXPkGcBadfzjW19gWKah5HeNujr96iu+flQB5ndC1
6Dph+gWq07LKdJkcUCEpi4luOlsgSA==
=aTHl
-----END PGP SIGNATURE-----

--7URB8WNuJVC0wZb9--


From xen-devel-bounces@lists.xenproject.org Tue Dec 02 08:34:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 08:34:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176014.1500575 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQLpm-0005TA-JR; Tue, 02 Dec 2025 08:34:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176014.1500575; Tue, 02 Dec 2025 08:34:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQLpm-0005T3-Gp; Tue, 02 Dec 2025 08:34:06 +0000
Received: by outflank-mailman (input) for mailman id 1176014;
 Tue, 02 Dec 2025 08:34:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=2qtr=6I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vQLpk-0005Sx-Us
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 08:34:05 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a52c8a9a-cf59-11f0-980a-7dc792cee155;
 Tue, 02 Dec 2025 09:33:58 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-42b3c5defb2so3593031f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 02 Dec 2025 00:33:58 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42e1c5c3c8csm36827831f8f.2.2025.12.02.00.33.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Dec 2025 00:33:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a52c8a9a-cf59-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764664437; x=1765269237; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=s/EhB9hLYvc7dZEaIAnd0w+tYNG4LjT+wNDZjil2WpQ=;
        b=IH4mc5BasNnhyKPE+1txLhOEGNlTdxn0hIRhYbCUvy7u1Yl4XRDvBpnbo1mw9VpMOe
         svbTqmR5t1sdbK/LDUE8ZLRg6plXpKyveA8PwU+sqDwGJgKwXiShhfrV+4BkQ0nMpG53
         8ek/IfJwacwQvwNwB4XQCjfo8EORE4NmuJ+0uu3mYu3TshNX61mRjnBP6qtQXl62CUzg
         xVZxP0neS7kRn9F13X3SeGwJ11NsvTZ4veW3CaK9FsAhswIQl3wa8pZ6QcZhPIlxnP9H
         9gryY+srgz0y+o0SYCRMowNJGoRTHQvHV+H6tXIDfotV/IlFdCMF1we/PWG0kXBymRvQ
         TxHg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764664437; x=1765269237;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=s/EhB9hLYvc7dZEaIAnd0w+tYNG4LjT+wNDZjil2WpQ=;
        b=Q78MRI7ohH2h/8FPRFLXss8LLW2B+V2KtLNRs+JFq+aue3jBhYvNttYCn0dkROguBG
         4/1LVT50mrcpn++TWjaF1ZeG7SPZQixNkq8MMuup8dH/+0/DNe6/T/MUOwdVTpu8WE6V
         2PTGsJfQHzogxBFtrHq4P/ygozIIXnqzvgUbNAuGtAuDLjHbrxq9LFpQwnylb/V+0RIP
         +gNxuUXwirNMSJoC8N3nl1a0jeHafR2UQJLtnPG8fLBILxou5oOzoPgEgy6DJPQP7a2E
         jTbuTUm/1m19CFBRj2u/Kpw+M0Q9qOiTWkVgiWLJ7kQPPWrh/DsuRDIjRPRwCb0dgcNq
         Tm/Q==
X-Forwarded-Encrypted: i=1; AJvYcCVRyV/CNBQ1VKWu6CaCHzubUr1pxwPvPOnkjtGQG8vIzzxWJvspXTyEjDWk7ZHDAsNd/Sc4lpK5RVw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzTAoWpkXlPRNRmXt410qNqAh2N2hG9lTsF9+3zC/G8O6BHtCJH
	Li/Mu1ZaiOzNOMbt6o4ChiDiAroMhV4mcEoCrx1Za5cNYR77o3f1BZ34aLKiji431A==
X-Gm-Gg: ASbGnctnE6hSMvZv8xB44yzLNn1SAXOugXBI2vX5d2oyZNOXExp3l03UY7TfLsRqPJa
	KVRyHvLX7ibUAhONJ7HiEzfOGO90tOYK/FTQX9PVfNqaqBPsGCCOQUumakbbu39qMhznvj5JGjs
	5K5xNB90njg63sYHOTRCkRlIfhyS3YnW+gdBiO08oP9cHRBL4aQ3sNu1gyxVnJSnaWkr6NnlUso
	IdJ1+HlnWzLWM72YsUepJHv+VGaigrqwujLPSMPtrYeeUp2FNJzQyNvK8DOF6cZKoarzeUDzVpy
	ZIhsccNYjCitDB/UmxCgwnLmZRdAlHZH2XERpIXGg3UyvBeed6YUS9o4BnBJ3r/xbh/IshJtYJs
	tQLgs6dIit2KKBSzweARaEeijeBA8f9mOkRTyxNdMTeNwawBcMZ2hhhKLboU0OpMr6u7e0M06xE
	m1eTymzXST6IUrWOvYo6Cg2ne4uhfMVBzKuey2F+V3CKqWPWSlpI11qMVgrL7F1ex1StypoDmsZ
	L4=
X-Google-Smtp-Source: AGHT+IG+IbdfVINptInq4poY6ujn4uJ5IuM9Fcx1ZQ5CGxMPr8T48fh+AYOMUkBi5PAmJKvZaGlTWQ==
X-Received: by 2002:a05:6000:2410:b0:42b:396e:2817 with SMTP id ffacd0b85a97d-42cc1d199cdmr42516628f8f.40.1764664437523;
        Tue, 02 Dec 2025 00:33:57 -0800 (PST)
Message-ID: <76873588-cb85-447a-a59f-392b05327cdb@suse.com>
Date: Tue, 2 Dec 2025 09:33:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hvm: Unilaterally inject #UD for unknown VMExits
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251128174735.1238055-1-andrew.cooper3@citrix.com>
 <796dccdb-0cc4-4904-b776-d651ebb012c2@suse.com>
 <331118cc-9c2d-49dc-aa5c-b6cd0d4e6021@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <331118cc-9c2d-49dc-aa5c-b6cd0d4e6021@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01.12.2025 17:36, Andrew Cooper wrote:
> On 01/12/2025 9:02 am, Jan Beulich wrote:
>> On 28.11.2025 18:47, Andrew Cooper wrote:
>>> While we do this for unknown user mode exits, crashing for supervisor mode
>>> exits is unhelpful.  Intel in particular expect the unknown case to be #UD
>>> because they do introduce new instructions with new VMEXIT_* codes without
>>> other enablement controls.  e.g. MSRLIST, USER_MSR, MSR_IMM, but AMD have
>>> RDPRU and SKINIT as examples too.
>> USER-MSR has MSR_USER_MSR_CTL, so doesn't fully fit here? (It's still not us
>> to directly control exposure of the insns, but an OS would need to use the
>> MSR to do so, and hence we need to properly handle writes to that MSR for
>> the respective exits to become possible.)
> 
> Oh yes, and the #GP from failing the MSR_USER_MSR_CTL check take
> priority over the intercept.
> 
>> MSRLIST has a dedicated exec control, so whether the exits can occur is
>> under our control.
> 
> Ah ok.
> 
> 
>> RDPRU and SKINIT have dedicated intercepts, without use of which the
>> respective exit can't occur aiui.
> 
> Correct, but note how we intercept them unconditionally?
> 
> MONITOR, MWAIT and SKINIT are for Xen's safety, because otherwise the
> instructions would execute normally in guest context.
> 
> RDPRU is to block access to the perf counters, because a guest has no
> legitimate use for them.
> 
> There are no enablement controls for these instructions.  They're always
> guest-available (on capable hardware) if not intercepted.

For our purposes, the intercept is the enable (i.e. we disable their use
by injecting #UD if the intercept triggers). IOW I think those are
slightly different in any event, in not really being "unknown". I don't
mind their mentioning, but I think the distinction wants to at least be
expressed somehow.

>>> @@ -3083,8 +3067,13 @@ void asmlinkage svm_vmexit_handler(void)
>>>          gprintk(XENLOG_ERR, "Unexpected vmexit: reason %#"PRIx64", "
>>>                  "exitinfo1 %#"PRIx64", exitinfo2 %#"PRIx64"\n",
>>>                  exit_reason, vmcb->exitinfo1, vmcb->exitinfo2);
>>> -    crash_or_fault:
>>> -        svm_crash_or_fault(v);
>>> +        fallthrough;
>>> +    case VMEXIT_MONITOR:
>>> +    case VMEXIT_MWAIT:
>>> +    case VMEXIT_SKINIT:
>>> +    case VMEXIT_RDPRU:
>>> +    inject_ud:
>>> +        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
>>>          break;
>>>      }
>>>  
>> Should this be brought more in line with respective VMX code (kept) below,
>> in never bypassing the gprintk() by any of the case labels? Basically
>> meaning that the case labels you move could simply be dropped for the time
>> being (or else, like the INVCPID one visible in context below, would want
>> re-inserting a few lines earlier).
> 
> As said, they're all reachable by guests on capable hardware.
> 
> I could add a /* Not implemented for guests */ if that would make it
> clearer?

Yes, ideally with "yet" also added - recall I've been sitting on an RDPRU
emulator patch, awaiting you to fulfill your promise of sorting the CPUID
side of things there.

> But, we don't want the printk().  We know the labels are reachable, and
> #UD is the right action.

Hmm, yes, with what you have said further up I think I agree. Yet then my
question goes the other way around: Do we want the log message for the
(at least) two known exits in VMX, which are grouped with the default:
label? IOW I'm still puzzled by the asymmetry between SVM and VMX in this
regard.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 02 09:27:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 09:27:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176029.1500586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQMfX-0003LC-Bw; Tue, 02 Dec 2025 09:27:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176029.1500586; Tue, 02 Dec 2025 09:27:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQMfX-0003L5-8F; Tue, 02 Dec 2025 09:27:35 +0000
Received: by outflank-mailman (input) for mailman id 1176029;
 Tue, 02 Dec 2025 09:27:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nxws=6I=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vQMfV-0003Kz-Ks
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 09:27:33 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2058afee-cf61-11f0-980a-7dc792cee155;
 Tue, 02 Dec 2025 10:27:31 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-42e2e628f8aso981462f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Dec 2025 01:27:31 -0800 (PST)
Received: from fedora (cust-east-par-46-193-78-210.cust.wifirst.net.
 [46.193.78.210]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42e1ca78f77sm31629696f8f.32.2025.12.02.01.27.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Dec 2025 01:27:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2058afee-cf61-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764667650; x=1765272450; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=CjHH7CcLaXAazXvtIJiaWKciM+74jmvT7IKSepF/+zY=;
        b=VTztwFpL06yK21l/J1fxFkuqL/iLqtGbxgS03d51dXZzkQsc8ASpRMVS5q+vAQOPLd
         kZZ+WFzaiPgu4k0SiGxhW2KdNPzZCAfI4A3/6tGyWjyJMuVqWPLG54woRmh0AwqO6PAu
         me289ZY4QkdOJShNC1bCsd1Pz6Wd2RQA8WiiAECzAk0NpXIlbWB1uKkdSbcZwqA5XIoi
         URh6l7CI6KLRF+cQz5btXNqeCgmgdAgIlLDqGMIwmUBCamsMwXDGYRd5qHUK0qRJPBjS
         rLtiva+Lyqv0NMEqakvJ8w5d+mZR4wuDURQAd/dwZ+GuOUgxJ3LJqrEwRilBFkdeuFyo
         yowA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764667650; x=1765272450;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CjHH7CcLaXAazXvtIJiaWKciM+74jmvT7IKSepF/+zY=;
        b=WWO/MLH3u+8jOd5BzkhYlSd4ICmwni11C7QUFY0UFCkhHTNT9sOte9ERDeD0dMXRJ4
         FeWdavUXXtnhY5jlu9VJ+YdD0qry8GTyIhsGk5locUxx9HW+GZPXCPnSzarH2qqDARpJ
         eTD2FkPovl0MiYx+cGBD2tcjxISpky27Hcop5zEi/C5bNIaKiH9FU2ajqprVQB0fzBlM
         9AmdzO1LnDNPke63MYEfjCldz+Ud5+nsB+K1ffIYocAU5e/j+xBq45wbwF7bfRiB7Ufl
         wvO3PZ6znp6chlRXr4r4ZyO/ny7IHa9Zlg9zGK9PuyCo4by/klbtfDQLbulqgN8CWhRC
         13CQ==
X-Gm-Message-State: AOJu0YzTT2jUetmSDky2cuH6mClnCaiSITfn9Xw60YKCmW1Y715vHeDZ
	6XW4j+DQLb1AAVhnw40BDUA5+6UcHBsiatMrujsYIrWM3aMGqThvVegsUxVs4x8WPFU=
X-Gm-Gg: ASbGncvn4Z1XSEHw2fzmOOcJteg32d5lxNvCGvYAZaOcGW1ewo8jkIF2xnp45jAFWC/
	W1xXIqjLZyTBVDbUlmmMMbSa72Yo2Iz76DTERcs2X5KGvO4Iucom/uhDxoAqJsLpzfk2/HEPKSk
	PsRuuL+vukE6clAumZcBF6ZiYJk/dtP06tIkAobsKjwe8H52sZ/E64LO4iOD4wDt7Dsh/Sw6UbP
	t2KqBYaQcfAlCCGPWQtrSOv4VG6HISDwCkNrPzms5Aj8BYZundCDYJCNveqDWC5xtu9MFhMByor
	gUjilcgHqtV707fqrbPYp6p04VqjFLBoYoCqXQIIETD0tdTqAcw0jyOXOLZVPvn+soKoKTK0NYd
	AROZxBebHMrlEIi7+o9MbJMfN6oZ4HGisTnkkyv658OMv/HjGAwfgFbCZLHIHNQh+EAZdtvmlQ4
	TOwLon0wFaNi3smWSx5pND/ZDclBhQcuvHlwiU6LE3LH7SaKLWoqBF3wzdDQrKr+KeP9o=
X-Google-Smtp-Source: AGHT+IF4G1iy1x5X4O2ZLkn5e4L7S3otJ7JdiPBy3sK7vFHS3GEYNfya5/8l11UnHHnwESs7jBwCaA==
X-Received: by 2002:a05:6000:381:b0:429:bca4:6b3c with SMTP id ffacd0b85a97d-42e0f1e3555mr33705139f8f.9.1764667650169;
        Tue, 02 Dec 2025 01:27:30 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v4] xen/domain: introduce generic functions for domain struct allocation and freeing
Date: Tue,  2 Dec 2025 10:27:18 +0100
Message-ID: <be5ac1646fca57c2cc5838d367955bf849c4858c.1764584967.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Roger Pau Monne <roger.pau@citrix.com>

Move x86's free_domain_struct() to common code since it is shared between
architectures.

Move the x86 version of alloc_domain_struct() to common code as most of the
logic is architecture-independent. To handle the remaining architectural
differences, introduce arch_domain_struct_memflags() for x86-specific
allocation requirements.

No functional change.

Suggested-by: Jan Beulich <jbeulich@suse.com>
[Introduce an arch-specific function instead of using a weak function]
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
CI tests:
 https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2188761305
---
Changes in v4:
 - Use alloc_xenheap_pages() as variable initializer of 'd' variable.
 - Drop "!= NULL" from if condtition inside alloc_domain_struct().
 - Add Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v3:
 - s/arch_alloc_domain_struct_bits/arch_domain_struct_memflags.
 - Make arch_domain_struct_memflags() to return MEMF_bits(bits) instead of
   bits.
 - Move "#define arch_domain_struct_memflags arch_domain_struct_memflags"
   and declaration of arch_domain_struct_memflags() from x86/asm/pv/domain.h
   to x86/domain.h.
 - Update alloc_domain_struct() to work with arch_domain_struct_memflags().
 - s/Suggested-By/Suggested-by.
---
Changes in v2:
- Introduce an arch-specific function to handle differences between arch-es
  in domain structure allocation requirements, instead of relying on a weak
  function.
- Move free_domain_struct() to common code.
- Add Suggested-by: Jan Beulich <jbeulich@suse.com>.
- Update the commit message.
- Link to original patch:
  https://lore.kernel.org/xen-devel/c08595dd7940b44a1392e16d4a2035b95b5c580b.1749829230.git.oleksii.kurochko@gmail.com/
---
 xen/arch/arm/domain.c             | 17 -----------------
 xen/arch/ppc/stubs.c              | 10 ----------
 xen/arch/riscv/stubs.c            | 10 ----------
 xen/arch/x86/domain.c             | 15 ++-------------
 xen/arch/x86/include/asm/domain.h |  3 +++
 xen/common/domain.c               | 21 +++++++++++++++++++++
 6 files changed, 26 insertions(+), 50 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index ab78444335..3e3a1fb9f5 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -480,23 +480,6 @@ void startup_cpu_idle_loop(void)
     reset_stack_and_jump(idle_loop);
 }
 
-struct domain *alloc_domain_struct(void)
-{
-    struct domain *d;
-    BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
-    d = alloc_xenheap_pages(0, 0);
-    if ( d == NULL )
-        return NULL;
-
-    clear_page(d);
-    return d;
-}
-
-void free_domain_struct(struct domain *d)
-{
-    free_xenheap_page(d);
-}
-
 void dump_pageframe_info(struct domain *d)
 {
 
diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index 75ebcae5e2..9953ea1c6c 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -147,11 +147,6 @@ void startup_cpu_idle_loop(void)
     BUG_ON("unimplemented");
 }
 
-void free_domain_struct(struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
 void dump_pageframe_info(struct domain *d)
 {
     BUG_ON("unimplemented");
@@ -269,11 +264,6 @@ void vcpu_kick(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-struct domain *alloc_domain_struct(void)
-{
-    BUG_ON("unimplemented");
-}
-
 struct vcpu *alloc_vcpu_struct(const struct domain *d)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 340ed3cd6c..fe7d85ee1d 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -121,11 +121,6 @@ void startup_cpu_idle_loop(void)
     BUG_ON("unimplemented");
 }
 
-void free_domain_struct(struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
 void dump_pageframe_info(struct domain *d)
 {
     BUG_ON("unimplemented");
@@ -243,11 +238,6 @@ void vcpu_kick(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-struct domain *alloc_domain_struct(void)
-{
-    BUG_ON("unimplemented");
-}
-
 struct vcpu *alloc_vcpu_struct(const struct domain *d)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 3a21e035f4..42643c8813 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -463,10 +463,8 @@ void domain_cpu_policy_changed(struct domain *d)
     }
 }
 
-struct domain *alloc_domain_struct(void)
+unsigned int arch_domain_struct_memflags(void)
 {
-    struct domain *d;
-
     /*
      * Without CONFIG_BIGMEM, we pack the PDX of the domain structure into
      * a 32-bit field within the page_info structure. Hence the MEMF_bits()
@@ -492,16 +490,7 @@ struct domain *alloc_domain_struct(void)
                 - 1;
 #endif
 
-    BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
-    d = alloc_xenheap_pages(0, MEMF_bits(bits));
-    if ( d != NULL )
-        clear_page(d);
-    return d;
-}
-
-void free_domain_struct(struct domain *d)
-{
-    free_xenheap_page(d);
+    return MEMF_bits(bits);
 }
 
 struct vcpu *alloc_vcpu_struct(const struct domain *d)
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index 5df8c78253..386ec61745 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -12,6 +12,9 @@
 #include <public/vcpu.h>
 #include <public/hvm/hvm_info_table.h>
 
+unsigned int arch_domain_struct_memflags(void);
+#define arch_domain_struct_memflags arch_domain_struct_memflags
+
 #define has_32bit_shinfo(d)    ((d)->arch.has_32bit_shinfo)
 
 /*
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 3b6e9471c4..b9128a2883 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -799,6 +799,27 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
     return arch_sanitise_domain_config(config);
 }
 
+struct domain *alloc_domain_struct(void)
+{
+#ifndef arch_domain_struct_memflags
+# define arch_domain_struct_memflags() 0
+#endif
+
+    struct domain *d = alloc_xenheap_pages(0, arch_domain_struct_memflags());
+
+    BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
+
+    if ( d )
+        clear_page(d);
+
+    return d;
+}
+
+void free_domain_struct(struct domain *d)
+{
+    free_xenheap_page(d);
+}
+
 struct domain *domain_create(domid_t domid,
                              struct xen_domctl_createdomain *config,
                              unsigned int flags)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 02 09:27:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 09:27:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176030.1500597 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQMfl-0003ct-MX; Tue, 02 Dec 2025 09:27:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176030.1500597; Tue, 02 Dec 2025 09:27:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQMfl-0003ck-Hc; Tue, 02 Dec 2025 09:27:49 +0000
Received: by outflank-mailman (input) for mailman id 1176030;
 Tue, 02 Dec 2025 09:27:47 +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
 <SRS0=Nxws=6I=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vQMfj-0003c7-Q2
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 09:27:47 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 29a0549a-cf61-11f0-9d1a-b5c5bf9af7f9;
 Tue, 02 Dec 2025 10:27:46 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4775ae5684fso24296675e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Dec 2025 01:27:46 -0800 (PST)
Received: from fedora (cust-east-par-46-193-78-210.cust.wifirst.net.
 [46.193.78.210]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4790adc8bc7sm373122725e9.1.2025.12.02.01.27.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Dec 2025 01:27:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 29a0549a-cf61-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764667666; x=1765272466; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=OyxUbCI0eTZpVejGp6ZUvurQ8ce6r710+xVj+fha1TA=;
        b=M+MCzoZXV99CR2In7fy6ewFC96rDVzetnti9uA2YxfaM9c/Hvrwek0ZHti3CYEkkA0
         yBbLmVYB7Mbr1LTsv0oTJer4bHtKTuftJxZlOTE18htfqMDeIXD4Wio2EuRsPoM0LBA+
         jb5pP68AsXZ+ftMwQRqORn4wVaPtZMuiHQILey5OLL/IKV5kkLODfufCEV1hcaY21sb0
         vxIo8sm+UEc/uAYQ40xQHLEeJWuHDyuiRfGmnq5+a6YbrH7owFxmHtN6yY9+N8K+p6Fx
         BHuitZEdEmTntXnNRhLihNqwG/oGDi+3zighqdIjNT2NuOd6+dzCkdisKb+R6E0TfHvF
         hwTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764667666; x=1765272466;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OyxUbCI0eTZpVejGp6ZUvurQ8ce6r710+xVj+fha1TA=;
        b=A+6d72XWzoXo6/LbQFXFCNj2nCaRngNG5tD87qtYYRw5Sl2ua/v8Q7W6hFhaCCwRsX
         /qb8TUOcDMWgG5tyxghQoMiQj/uP3vo688rRamERGeFn2/CY5o3hITfpRxg0UUSek9lu
         scZDO5jOseDoMoaexG3mfH9PDdYxtTEbeHDY0bsXbYr7lKrvdCe/VbugR79BY4a9hDZa
         YyJFvw7r2SO2Eex24rRIEo8ipfkCuFd5zvXhqZrlSmdUpysInTXrTFAc6WzXmBBNaKRt
         VXey03ydm+eWAsEKiD5AwTfpl0BcHLxPK2/gZFLEMbze2tFibZ8CL/MFEi1gUq3XYG54
         FPMQ==
X-Gm-Message-State: AOJu0YxiUCADx7zus7sBZKQe8tRiixdGgPKguFmnUxg+Z9MmeaXwEaxM
	AIDE71SbTgvJ/6fErFJW3ntHz7LpXEc2c3Eg+z1Exx4E2LhnB7BiHgqZ71zyK/pG4h0=
X-Gm-Gg: ASbGncv8yojS5op30eWMklxjgTVqxhSwBpxD7sTbP2NcWXSbrQyytxE9HhPajr6wXqc
	j0XDPSqJsxMkYyJf9IOW2IVBkTqKg8sy4jFMtApffs0nJ6lrfYtTO8pwQ4ik1EDciZ83JKCQaTm
	hJU+osqqFr34RMxBPNk7rP94JG+1gBZUeuGaJLsZ6oMbB4DWQg8brEDbz3Omn52MPZTNqLF3qhl
	wZAhQh1X3TPS6X5wGQ1jwK7ux7Z+E6XASp1Ar5aSCLx3tebd3mPxG7K+/fzDRRB8lf0GJHscKXN
	IM+7qQ8H/KfdyuThKq06FYC0WXCwNH3uO/rHASOLrn2ZF5D/T+dgMHcDLutndlpZySTQkeeKn50
	YR6QtRSZJkhqhiLuw+gEmNGvq3kmufjMNuRG1ZNT+HdqLMrSDPKxQ4rpxn9PQnRxUGVFGHhKHSs
	Iin3FGBAGqjxkkflY4mxL1OPXeAivOsk6//ZupWJZCic7ovYWySfDToVBJ5o4rzsgQnmE=
X-Google-Smtp-Source: AGHT+IF4l9VDQFWfOr+mBze3yfuVfduxFrMWYn6L8B3OTbOjR+3ZxCeXpl4Vp6jcU131tmGq50Hq1A==
X-Received: by 2002:a05:600c:3543:b0:46e:1a5e:211 with SMTP id 5b1f17b1804b1-477c1143046mr380000585e9.21.1764667665832;
        Tue, 02 Dec 2025 01:27:45 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Timothy Pearson <tpearson@raptorengineering.com>
Subject: [PATCH v3] xen: move vcpu_kick() declaration to common header
Date: Tue,  2 Dec 2025 10:27:34 +0100
Message-ID: <260f0884737c0d99afc392cf5b0eeb1ba7557437.1764586422.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The vcpu_kick() declaration is duplicated across multiple
architecture-specific event.h headers (ARM, x86, PPC).

Remove the redundant declarations and move vcpu_kick() into
the common xen/include/xen/sched.h header.

Drop the definition of vcpu_kick() from ppc/include/asm/event.h,
as it is already provided in ppc/stubs.c.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
CI tests:
  https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2188785661
---
Changes in v3:
 - Drop inclusion of <xen/sched.h> from "x86/.../vmce.c" as it is already
   included in "mce.h" which is included in ".../vmce.c".
 - Drop inclusion of <xen/sched.h> from "x86/pv/traps.c" as it is already
   included in xen/event.h, which is included in ".../traps.c".
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Move vcpu_kick() declaration to xen/sched.h instead of xen/event.h
 - Revert changes connected to switching asm/event.h to xen/event.h as vcpu_kick() 
   is now living in xen/sched.h.
 - Add inclusion of xen/sched.h because of moved vcpu_kick() declaration to
   xen/sched.h.
 - Update the commit message.
---
 xen/arch/arm/include/asm/event.h | 1 -
 xen/arch/ppc/include/asm/event.h | 1 -
 xen/arch/x86/include/asm/event.h | 1 -
 xen/include/xen/sched.h          | 1 +
 4 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/xen/arch/arm/include/asm/event.h b/xen/arch/arm/include/asm/event.h
index 509157b2b3..e036ab7fb8 100644
--- a/xen/arch/arm/include/asm/event.h
+++ b/xen/arch/arm/include/asm/event.h
@@ -3,7 +3,6 @@
 
 #include <asm/domain.h>
 
-void vcpu_kick(struct vcpu *v);
 void vcpu_mark_events_pending(struct vcpu *v);
 void vcpu_update_evtchn_irq(struct vcpu *v);
 void vcpu_block_unless_event_pending(struct vcpu *v);
diff --git a/xen/arch/ppc/include/asm/event.h b/xen/arch/ppc/include/asm/event.h
index 0f475c4b89..565eee1439 100644
--- a/xen/arch/ppc/include/asm/event.h
+++ b/xen/arch/ppc/include/asm/event.h
@@ -5,7 +5,6 @@
 #include <xen/lib.h>
 
 /* TODO: implement */
-static inline void vcpu_kick(struct vcpu *v) { BUG_ON("unimplemented"); }
 static inline void vcpu_mark_events_pending(struct vcpu *v) { BUG_ON("unimplemented"); }
 static inline void vcpu_update_evtchn_irq(struct vcpu *v) { BUG_ON("unimplemented"); }
 static inline void vcpu_block_unless_event_pending(struct vcpu *v) { BUG_ON("unimplemented"); }
diff --git a/xen/arch/x86/include/asm/event.h b/xen/arch/x86/include/asm/event.h
index 434f65007e..d13ce28167 100644
--- a/xen/arch/x86/include/asm/event.h
+++ b/xen/arch/x86/include/asm/event.h
@@ -11,7 +11,6 @@
 
 #include <xen/shared.h>
 
-void vcpu_kick(struct vcpu *v);
 void vcpu_mark_events_pending(struct vcpu *v);
 
 static inline int vcpu_event_delivery_is_enabled(struct vcpu *v)
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 52090b4f70..1f77e0869b 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -877,6 +877,7 @@ void vcpu_wake(struct vcpu *v);
 long vcpu_yield(void);
 void vcpu_sleep_nosync(struct vcpu *v);
 void vcpu_sleep_sync(struct vcpu *v);
+void vcpu_kick(struct vcpu *v);
 
 /*
  * Force synchronisation of given VCPU's state. If it is currently descheduled,
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 02 10:10:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 10:10:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176056.1500605 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQNKy-0001mn-MM; Tue, 02 Dec 2025 10:10:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176056.1500605; Tue, 02 Dec 2025 10:10:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQNKy-0001mg-JA; Tue, 02 Dec 2025 10:10:24 +0000
Received: by outflank-mailman (input) for mailman id 1176056;
 Tue, 02 Dec 2025 10:04:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GrWF=6I=citrix.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1vQNFN-0000il-0U
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 10:04:37 +0000
Received: from mail-ej1-x641.google.com (mail-ej1-x641.google.com
 [2a00:1450:4864:20::641])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4bcb8017-cf66-11f0-980a-7dc792cee155;
 Tue, 02 Dec 2025 11:04:31 +0100 (CET)
Received: by mail-ej1-x641.google.com with SMTP id
 a640c23a62f3a-b79af62d36bso316036766b.3
 for <xen-devel@lists.xenproject.org>; Tue, 02 Dec 2025 02:04:31 -0800 (PST)
Received: from tbernhardk-x-u.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b76f5a4a652sm1501590066b.65.2025.12.02.02.04.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Dec 2025 02:04:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4bcb8017-cf66-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764669871; x=1765274671; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=sRghr6u8t7LZWLGIMGwRWafYIQtc04eqnIv5UNUe8E8=;
        b=J06P0CO88RCodqVp0/JcrupaoYSjqN9CTK254RaL7+s5lo0JCLSJItEyo7duEaJXte
         RdC9R9dMOpFPXU/BgMZpRVWPQzSM1iGunos1vw7E1+zgLsQ0rmGfeV0bPTEWM2iFjHNg
         zh/dwP6a3Lxiu2SoqEBpoFHjXt05eOA1NVKPM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764669871; x=1765274671;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sRghr6u8t7LZWLGIMGwRWafYIQtc04eqnIv5UNUe8E8=;
        b=jnpzug0lDU2zcULXb3YayWUsCEk0ApDLWpY7mnq5pZgjvis+GNhB6xzSvageYoUEXT
         2IwAslUGQsYE7T7ipEyal6VWn1D64/sP5UkVkdSIqvARFZSTdYWkdCBYrJ813XiZf63B
         8/EwxpWyUO6Da9PpvxUHWRSlMHbEIL/lDQ3cA9xw4CwwP809giLM4698ewsUEtoy2XI/
         c04cb19kuLkDp787qcatQybaxHp9JdJNhYQHba3q6LMjTv21DRKsz5Bhet6UDdTB3L8M
         xLH3DvfluMd6D7Hq5ZdTfzm0jTNz+Gve7l98GA8tnsx6f8BluQg2il19oPLp9TBEtIiL
         EjXg==
X-Gm-Message-State: AOJu0YyCOjjf8Fd0Ph29SYeb4j6cPIzKBxuagblW0FyhMVbQ+79OGoR8
	uh7u5/1OWFN7v0GF9GLHF3hTesMaQY0NkZmq3U8kVlQvu7yJbwMNOaia/SYB9q7NwcLBGoGE2Pu
	Go77bFNy2Wr8JbqE=
X-Gm-Gg: ASbGncuoHLNkwwQCqx5V+a5xDZqu2p1OmkQ/sbO/lWhi6+8cOQl79q0bIPtfNBm9Rw1
	LdsE9Zq+IEWjaHGl3Ncr20lxxAGoTBDwP788Nemg8NKuuquiaIheRVl3suQgFFz+acoSFxhHXj+
	uLlEWeDKSwLckNSHBGRtDmvS31RmGWPFjJFoJ4rQzBYTENQBE/dR1GwdmZOhA6wd9GkjenODyCn
	9SDlFfqxL7MewO5hlYIxs5rwOssdRnO4znJY4qta7MYH9CJPXzBMApyJNA9bIpndfFHVaxljlUF
	Ea+e9CoZkEpPjCiDqOMUmWXZ3CGNE9WffpVNlXjtKXd4ReYril5483w+UdxjEFQEBFt9YNZhmtm
	T+gSdYmDZ0JyXldSYxeaCpkYUSW7I6LiEOFIai1vrHF7iEQ8bCjgM/qJaMfTXMY08u5mPd/I9/7
	Tqbj7G0IUEV7VnKIywA8Ky40rrOTGEB9te+zS8
X-Google-Smtp-Source: AGHT+IGot6vEvPPguBDxq3OYexLjA9/V/O8mWyyrxOAKqk22OTHGJdJCH5E0zXvXsB1ELOPdaHJPyg==
X-Received: by 2002:a17:907:c09:b0:b79:cb08:30e with SMTP id a640c23a62f3a-b79cb0803b6mr10985066b.58.1764669870711;
        Tue, 02 Dec 2025 02:04:30 -0800 (PST)
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
X-Google-Original-From: Bernhard Kaindl <bernhard.kaindl@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] xen/page_alloc: Much more concise domain_adjust_tot_pages()
Date: Tue,  2 Dec 2025 11:02:37 +0100
Message-Id: <a5adbc25d18c34eb6d46120989d379862cd721bd.1764669686.git.bernhard.kaindl@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Non-functional change to make consuming claims more concise:

When we limit the consumption of claims to the remaining claims
of the domain, we can make the code more concise by limiting the
adjustment to it instead of carrying a special case for it.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@cloud.com>
Co-authored-by: Roger Pau Monné <roger.pau@citrix.com>

---
Changes
- Use min_t(unsigned long, a, b) as the tool of the trade (Roger Pau Monné)
- Reviewed by Andrew Cooper and Roger Pau Monné(Excluding comments, commit message)
- Regression-tested and included as part of te NUMA work for XenServer 9
- Improved comments and the commit message (non-functional change, comment cleanup)

Previous reviews
----------------

Review with the requested changes to the commit message:
- https://patchew.org/Xen/cover.1757261045.git.bernhard.kaindl@cloud.com/15ae395c6933e74da0cdd8f9d71d349a7bfad3f3.1757261045.git.bernhard.kaindl@cloud.com/

Obsoleted review:
- https://patchew.org/Xen/cover.1755341947.git.bernhard.kaindl@cloud.com/5f417fea5ca8e4da0d4b9679103c3eff4bc92900.1755341947.git.bernhard.kaindl@cloud.com/
---
 xen/common/page_alloc.c | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 1f67b88a89..ae2a560e0a 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -510,8 +510,11 @@ static unsigned long avail_heap_pages(
     return free_pages;
 }
 
+/* Adjust the tot_pages and remaining outstanding claims of the domain. */
 unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
 {
+    unsigned long adjustment;
+
     ASSERT(rspin_is_locked(&d->page_alloc_lock));
     d->tot_pages += pages;
 
@@ -519,23 +522,19 @@ unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
      * can test d->outstanding_pages race-free because it can only change
      * if d->page_alloc_lock and heap_lock are both held, see also
      * domain_set_outstanding_pages below
+     *
+     * skip claims adjustment when the domain has no outstanding claims
+     * or we unassigned pages from it.
      */
     if ( !d->outstanding_pages || pages <= 0 )
         goto out;
 
     spin_lock(&heap_lock);
     BUG_ON(outstanding_claims < d->outstanding_pages);
-    if ( d->outstanding_pages < pages )
-    {
-        /* `pages` exceeds the domain's outstanding count. Zero it out. */
-        outstanding_claims -= d->outstanding_pages;
-        d->outstanding_pages = 0;
-    }
-    else
-    {
-        outstanding_claims -= pages;
-        d->outstanding_pages -= pages;
-    }
+    /* consume claims until the domain's outstanding_claims are exhausted */
+    adjustment = min_t(unsigned long, d->outstanding_pages, pages);
+    d->outstanding_pages -= adjustment;
+    outstanding_claims -= adjustment;
     spin_unlock(&heap_lock);
 
 out:
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 02 10:57:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 10:57:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176071.1500635 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQO4P-0007X5-6I; Tue, 02 Dec 2025 10:57:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176071.1500635; Tue, 02 Dec 2025 10:57:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQO4P-0007Wy-3f; Tue, 02 Dec 2025 10:57:21 +0000
Received: by outflank-mailman (input) for mailman id 1176071;
 Tue, 02 Dec 2025 10:57:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tQLy=6I=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vQO4O-0007Nh-HB
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 10:57:20 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aaccb00d-cf6d-11f0-980a-7dc792cee155;
 Tue, 02 Dec 2025 11:57:17 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-47789cd2083so31027195e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 02 Dec 2025 02:57:17 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4791164d365sm289825795e9.12.2025.12.02.02.57.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Dec 2025 02:57:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aaccb00d-cf6d-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764673037; x=1765277837; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Y3F0v8B5tAKK2oIAslcDrKA97kPJ4tzxA9EyhzU5Mmg=;
        b=wKnwYpRB3LL7Mw6aTy/TF4x/TSSlJez7GcXwFLKDO34xr5rS6JC+R/fDWRDtfmoe8B
         JV99Br7g336lLv4z0xVfBnRh0Hy92iE4m9p0vZK3y64cBrI12+vgzCKy53BD7kutRbJW
         CCdrx3892q4Ayn7VPj7mZxsNJBxNlCVYCahjM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764673037; x=1765277837;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Y3F0v8B5tAKK2oIAslcDrKA97kPJ4tzxA9EyhzU5Mmg=;
        b=bLEHcKllmr52zWAMrcVAEjWLnY4dCrQUdJGSCYrB1q4jvnljOUYYAmVFw18tfWKCeR
         mKZ95j+Qe9lwwep03dmgan0hA/QMzCEDxPlHWCumV5FSguB0C9iCPdjurTftHrfY4aSw
         Fd+KojDGd1b0HQCSMQ1DogaYfw3hSLOAsm6C/XTA4M1TON/CQ2tWiVPRE0TjMFIHTm+2
         w4Cel4auz5IWirLDDuWHOGXR4xG4sokBsPR25KRqYtYVE9AWlaJxa3jrwxp+syqcYBBs
         IRGNKMbfFSvGrpxUhfgnuy/H9j9zoDaiS0I0tPPcF7dZmTPXeUHwG1cPU6Zv8rmZX9UH
         BGFg==
X-Gm-Message-State: AOJu0YxWmkjxoRaz0fNo58aRrBRgFfnWNSY049epcBUtAFVFuE14zcF+
	MnGCAu/2p3PJ9VsThXoMpQJs4zWnZ4veJDoedTvMYzQ9oM8J3Bbh/bVIZZI2Bze5diOrOg8rGtz
	r9PE5
X-Gm-Gg: ASbGnctGLMiduUcrsz6yYaRKm0keiGrQ9rbTdF1SwGuA3NU3M7ChKfYpoROB7To+xhy
	BJRc+jZ1FT/BQ01ZB7bbthxqpWdPTluIaMzjkKYP92F0KVQgygRzZTy/WcRjNsyoMFCGBf5x5oo
	8otgCobqmZTdwL9xREZUnro8Q0gAtpTMdKrjKotU0KBX2sRvy7Bo76mFnhuUFJwCvYX4aAUwZ64
	F5S1KnVckVROk51gLsjSPbLY+PZ+36begO2vfMtQG+wFjqrPcndPrjK528HWNoAljxOcWco+cfE
	T7jB1GZm2MSdf3/dkmXNkgu0BDh5G23yXONbFkjJjgBLGWWVWtQZZzksXO0KA04apq41MyFd5jb
	kYX0cBJOyT/cI5o/KQBHQ3zgelcuQe23NMM9TEMmetSSzYkHpf3b0nLw5dgAf1INdshM3UEjLCb
	C5BJtZ7Hp+4iOIQE5eqTq6kYXySarM/3pkXd14rvxoziT6Cr9r9ppewIlIJYcxeA==
X-Google-Smtp-Source: AGHT+IEaso1pVFzc+d42WVIjUWuuXqzVjN0XMUbvo93FY2+XATOdq6XNtm++GWgxF/aHqfUMAshfCA==
X-Received: by 2002:a05:600c:19ca:b0:477:a978:3a7b with SMTP id 5b1f17b1804b1-477c1143073mr407258435e9.22.1764673036572;
        Tue, 02 Dec 2025 02:57:16 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 2/3] x86/amd: Exclude K8 RevD and earlier from levelling
Date: Tue,  2 Dec 2025 10:57:09 +0000
Message-Id: <20251202105710.1472927-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251202105710.1472927-1-andrew.cooper3@citrix.com>
References: <20251202105710.1472927-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Between RevD and RevE silicon, the feature MSRs moved location.  This property
is highlighted by the suggested workaround for Erratum #110 which gives the
two different MSRs for the extended feature leaf.

The other feature MSRs are not given and while they're easy enough to figure
out I don't have any K8's to test the result with.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/cpu/amd.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index 4dc9157836ad..73f43b0f9174 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -117,10 +117,12 @@ static void __init noinline probe_masking_msrs(void)
 	/*
 	 * First, work out which masking MSRs we should have, based on
 	 * revision and cpuid.
+	 *
+	 * Fam11h doesn't support masking at all.  FamFh RevD and earlier had
+	 * the feature MSRs in different locations, as can be seen by the
+	 * suggested workaround for Erratum #110, docID 25759.
 	 */
-
-	/* Fam11 doesn't support masking at all. */
-	if (c->x86 == 0x11)
+	if (c->family == 0x11 || (c->family == 0xf && c->model < 0x20))
 		return;
 
 	cpuidmask_defaults._1cd =
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 02 10:57:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 10:57:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176069.1500616 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQO4M-000762-Q5; Tue, 02 Dec 2025 10:57:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176069.1500616; Tue, 02 Dec 2025 10:57:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQO4M-00075v-Me; Tue, 02 Dec 2025 10:57:18 +0000
Received: by outflank-mailman (input) for mailman id 1176069;
 Tue, 02 Dec 2025 10:57:17 +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
 <SRS0=tQLy=6I=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vQO4L-00075j-Du
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 10:57:17 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aa1cbe01-cf6d-11f0-9d1a-b5c5bf9af7f9;
 Tue, 02 Dec 2025 11:57:16 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4779a4fc95aso40860635e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Dec 2025 02:57:16 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4791164d365sm289825795e9.12.2025.12.02.02.57.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Dec 2025 02:57:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa1cbe01-cf6d-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764673035; x=1765277835; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=xrL0FvCQZwFfencE4E0741eUwaWwStBHn3t1ATURTIU=;
        b=UG3uiqDlT4kdrjr263+Z53DFXBl6uFEhfGFmqDIKVjI5/WnfI3F4a4SvYgyA1dWN2g
         dsqwUaBR8g2PpUck95CVU+y2vByehlvr9B98dYpNKpGCahBx+kJ8jvPvI1EVCVZICpdq
         2uU7j4YZKRchDzpqHj/+Q/ViiDw/HNrwH1YjM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764673035; x=1765277835;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xrL0FvCQZwFfencE4E0741eUwaWwStBHn3t1ATURTIU=;
        b=gWv1Szw5QFkSqodTtBypP6GpRSu32/VB6fbliRuYF++NhKvNtLrLNC7xS7pTP3bROH
         bGVjfxxZKHcYSIbsKbeFkNBhIApc7KZoiySyULRWtv4ve5r4CkcCbXyZyBgdnW8G8Vod
         gKw3a42LLsELTlV/smNWREvItP2FHiwdUyAgG497dkosxzCx0LL45tNc1HsYXfTmMj7Z
         HMfvLhGnrjvVFMGE27rJDfv6r3MuF1EF7HhNY3VaC4BRPESEQIVjQa0LcUcAPhw0BqtP
         wcoSrHsx6BYb2Bjl56XM5kq/3ORgHftY3dnBAeXWSXVd6NAEGPTXgqj93CuobXW3jugF
         mexQ==
X-Gm-Message-State: AOJu0Yw2JNHYoxotf/6zB0Z8oaiEKNyRzYKvAEpXYB0c/4P1IRJlZw37
	Zsf5qgmuQLQtG6IOlQGptdBj6Gdilo/0SH9Dkh7hPdt6DSlTFflT1qgStaI0X4+BzNQSYOzCXgI
	Cslvk
X-Gm-Gg: ASbGncvYLJT/iIw2SRlYP6w85B+RMRjb+zpGBvCb6l0Rz6mqVrU3FuSxNJbBmH8lsvC
	hgd/RezM1BMqKKnDNdxNLkIoRLDKwMtUNEzs0KlFD8svAnHejmLa+bMME5vJpLqWoxXeRGIqw9v
	43ZbA2o9XMP0LT5SfPWNJOgwwqECGT1yJvcMy9R8XW0BreRJ2fwWlSYIYyb9Hg7Todoykdunkz0
	WEj57YcHmf3ThMmMuuEmgXaDaTWWbPefZWwdg/lz4F0H1oTtpKwJWMhHprPu4ptYXuSQDDvboNa
	8ICYVqtaw/EualHOWDXz3a0NTaS1VuLqz32PmwAdPX/HNYMjTNDc5kSDp2mEIXqf5VrHvGAcWhd
	RhP0QorZ4Mb0dLR8U6Cwj0RTuNKujYdAXR2V2HBWQcYfeuUAarC7/LX+Otlo3mrgi7lVv6P4+vq
	oEO9Fgz6dTTzZw3h2moQaayp6s9X5F1lu6PsSv1ucmrySQexiXHITT97lEmzi5Sw==
X-Google-Smtp-Source: AGHT+IFi4Kk7JXi3FtIKAA9OFg31sEycDB98aS7Z0ApNQYzzIEh+qVGvvPyRX5+i5u2exZiZzTS9Yg==
X-Received: by 2002:a05:600c:1f0f:b0:479:13e9:3d64 with SMTP id 5b1f17b1804b1-47926fc1797mr21515605e9.15.1764673035182;
        Tue, 02 Dec 2025 02:57:15 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 0/3] x86/amd: Fixes for levelling setup
Date: Tue,  2 Dec 2025 10:57:07 +0000
Message-Id: <20251202105710.1472927-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

More fixes for AMD setup.

Andrew Cooper (3):
  x86/amd: Fold another DE_CFG edit into amd_init_de_cfg()
  x86/amd: Exclude K8 RevD and earlier from levelling
  x86/amd: Delay amd_init_levelling() until after fixes to the CPUID
    MSRs

 xen/arch/x86/cpu/amd.c   | 40 ++++++++++++++++++----------------------
 xen/arch/x86/cpu/cpu.h   |  2 +-
 xen/arch/x86/cpu/hygon.c |  6 +++++-
 3 files changed, 24 insertions(+), 24 deletions(-)

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 02 10:57:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 10:57:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176070.1500620 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQO4N-00079A-0q; Tue, 02 Dec 2025 10:57:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176070.1500620; Tue, 02 Dec 2025 10:57:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQO4M-00078H-T5; Tue, 02 Dec 2025 10:57:18 +0000
Received: by outflank-mailman (input) for mailman id 1176070;
 Tue, 02 Dec 2025 10:57:18 +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
 <SRS0=tQLy=6I=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vQO4M-00075j-GO
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 10:57:18 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ab33504f-cf6d-11f0-9d1a-b5c5bf9af7f9;
 Tue, 02 Dec 2025 11:57:18 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4779a4fc95aso40860875e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Dec 2025 02:57:18 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4791164d365sm289825795e9.12.2025.12.02.02.57.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Dec 2025 02:57:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ab33504f-cf6d-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764673037; x=1765277837; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=riRPJvWz61nwq2yHn5ai8Dg4B8xFn5kKgazweRThc40=;
        b=pdil9SN85+xLiSUie1v7OahUeFgphkAk3urlAAFokdg51Q+hjQ2kW6tXjgSCGjpjmy
         PVMop6nk7r8q6SRj8CVdzqg5zriM/MItPKklm1gnM5nDjZZ+cxK53zRR7ecXepx+IKDI
         1FrQXqJHfdigII9UPnYnzjgpfGhz7KRW5BLM0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764673037; x=1765277837;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=riRPJvWz61nwq2yHn5ai8Dg4B8xFn5kKgazweRThc40=;
        b=hWko3jhWImIQrddmdny/pHxJpXV9KBlB/qYyACExCRA4vDLFMsz+UUhHgFN1xlDdtI
         KrMqKK6ezuU28GTDOO7CC24jLML4fhujDX5II1OrVeyQSRj17ujLZ5cXSiWunvXb+jlX
         /S8nMsH/71sBr4WiD6wK1cAawKDsq5RTZSiaXo2zTQQqH14+Mm6iTAiGDdaAfvQVpxoP
         2Kqr4HlxQEaVH6FG9Im69pq7jJHRHCoXLUACMnKtpUcCzVxE2K8eS0qYrF/GHnpXBrz3
         ARbRcNvd2tabTj8Jp2JVTFPMxq3i6I4qkq8oL0BB/j2eFZFBlfgDzhl0Is4bjrkpAi67
         DErA==
X-Gm-Message-State: AOJu0Yz18E6HqETp7JQ3p0TkT4YxcCinKF6P2QGcB550jBDaVM1qmPVR
	pwMJGuUjiiCurXt5TQs1Zh5ZgDepIRO6kdX755EjdaeaeROxAggdRsSxhrfKDx2tdiM3isbkHZV
	nFOIW
X-Gm-Gg: ASbGncueLH12+QchjRAyo/vWXmXfp/DtD3CTkvAiXBJovKZxZxIInayPnR20qU47xcl
	IIdPEDxxi5JqBV+OhLJT2YZgcnfBKjNLggKHFEesZ1g4i7HJEJbLqW/Tl7lN8MvMK+i31XS+Yuv
	nAbk7Nkpg6TiEc/VKuCYr41IdmMPrYf3ErgYm8jxGVEd806QX2THtE6mdp94GNfF5uE5kphM3rT
	RAaUsQcDAfY9kk1y7CYXXyLj3G88tpAHiPXwDA0xxtExV8uPpzK31d3tfX8o6Jxdbdb55n0aR+t
	TquLnPqaBVg+cdtpgyOauhyVIGS2LL0kZxyXXz0xvjar6820lKMDuULKQo+a84co2c2afR+Iw1/
	0vM3ltkVw7jay6GWGttSq3HKA2Wkt5V5KyAINcP8s6YQtg3sTkf56GMu1hRGB4XgDm7QksnuEdp
	wM1kDdCoUSmKhPQTIoPFydA/mD0n32wxtN4n75rpTNiZKrzC4qdcWfx08JjfKGcQ==
X-Google-Smtp-Source: AGHT+IF8xRcUg1w/qTR4FnaeZsLwR12ATjw4zfcKNq+vdchgjluVzL8fyAnzMxYpc6oK21J/+MaZLA==
X-Received: by 2002:a05:600c:1c9e:b0:477:9e0c:f59 with SMTP id 5b1f17b1804b1-47926f80703mr23758275e9.2.1764673037174;
        Tue, 02 Dec 2025 02:57:17 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 3/3] x86/amd: Delay amd_init_levelling() until after fixes to the CPUID MSRs
Date: Tue,  2 Dec 2025 10:57:10 +0000
Message-Id: <20251202105710.1472927-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251202105710.1472927-1-andrew.cooper3@citrix.com>
References: <20251202105710.1472927-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

There's no need for amd_init_levelling() to be specifically early.  In fact,
it must be after init_amd() edits the feature MSRs, e.g. enabling TOPOEXT on
Fam15h, or we revert the change on the next context switch.

As the only action in early_init_amd(), drop the function entirely.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/cpu/amd.c   | 16 ++++++----------
 xen/arch/x86/cpu/cpu.h   |  2 +-
 xen/arch/x86/cpu/hygon.c |  6 +++++-
 3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index 73f43b0f9174..b66601b3c51e 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -224,7 +224,7 @@ static const typeof(ctxt_switch_masking) __initconst_cf_clobber __used csm =
  * avoid this, as the accidentally-advertised features will not actually
  * function.
  */
-static void __init noinline amd_init_levelling(void)
+void __init amd_init_levelling(void)
 {
 	/*
 	 * If there's support for CpuidUserDis or CPUID faulting then
@@ -617,14 +617,6 @@ void amd_process_freq(const struct cpuinfo_x86 *c,
 		*low_mhz = amd_parse_freq(c->x86, lo);
 }
 
-void cf_check early_init_amd(struct cpuinfo_x86 *c)
-{
-	if (c == &boot_cpu_data)
-		amd_init_levelling();
-
-	ctxt_switch_levelling(NULL);
-}
-
 void amd_log_freq(const struct cpuinfo_x86 *c)
 {
 	unsigned int low_mhz = 0, nom_mhz = 0, hi_mhz = 0;
@@ -1270,10 +1262,14 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 	check_syscfg_dram_mod_en();
 
 	amd_log_freq(c);
+
+	if (c == &boot_cpu_data)
+		amd_init_levelling(); /* After CPUID MSR adjustments. */
+
+	ctxt_switch_levelling(NULL);
 }
 
 const struct cpu_dev __initconst_cf_clobber amd_cpu_dev = {
-	.c_early_init	= early_init_amd,
 	.c_init		= init_amd,
 };
 
diff --git a/xen/arch/x86/cpu/cpu.h b/xen/arch/x86/cpu/cpu.h
index 8bed3f52490f..c05c620c29bc 100644
--- a/xen/arch/x86/cpu/cpu.h
+++ b/xen/arch/x86/cpu/cpu.h
@@ -22,9 +22,9 @@ extern void display_cacheinfo(struct cpuinfo_x86 *c);
 extern void detect_ht(struct cpuinfo_x86 *c);
 extern bool detect_extended_topology(struct cpuinfo_x86 *c);
 
-void cf_check early_init_amd(struct cpuinfo_x86 *c);
 void amd_log_freq(const struct cpuinfo_x86 *c);
 void amd_init_de_cfg(const struct cpuinfo_x86 *c);
+void amd_init_levelling(void);
 void amd_init_lfence_dispatch(void);
 void amd_init_ssbd(const struct cpuinfo_x86 *c);
 void amd_init_spectral_chicken(void);
diff --git a/xen/arch/x86/cpu/hygon.c b/xen/arch/x86/cpu/hygon.c
index cab915a2fcf1..51104cbaf42c 100644
--- a/xen/arch/x86/cpu/hygon.c
+++ b/xen/arch/x86/cpu/hygon.c
@@ -90,9 +90,13 @@ static void cf_check init_hygon(struct cpuinfo_x86 *c)
 	}
 
 	amd_log_freq(c);
+
+	if (c == &boot_cpu_data)
+		amd_init_levelling(); /* After CPUID MSR adjustments. */
+
+	ctxt_switch_levelling(NULL);
 }
 
 const struct cpu_dev __initconst_cf_clobber hygon_cpu_dev = {
-	.c_early_init	= early_init_amd,
 	.c_init		= init_hygon,
 };
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 02 10:57:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 10:57:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176072.1500646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQO4R-0007mo-G2; Tue, 02 Dec 2025 10:57:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176072.1500646; Tue, 02 Dec 2025 10:57:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQO4R-0007mf-DJ; Tue, 02 Dec 2025 10:57:23 +0000
Received: by outflank-mailman (input) for mailman id 1176072;
 Tue, 02 Dec 2025 10:57:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tQLy=6I=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vQO4Q-0007Nh-0n
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 10:57:22 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aa719918-cf6d-11f0-980a-7dc792cee155;
 Tue, 02 Dec 2025 11:57:16 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-477632b0621so33135495e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 02 Dec 2025 02:57:16 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4791164d365sm289825795e9.12.2025.12.02.02.57.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Dec 2025 02:57:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa719918-cf6d-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764673036; x=1765277836; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3uTknspdwfVlg5HxX4a1l7HLU0GTjm03g0aB2rEYFsg=;
        b=mlij7gWD6fPtxgJvZlrg8+0nusMdD/uE3/0nyjQs/MmrHapGl8NbF4up3zJC3/CDAE
         0Xa7CidpUixZmiwu9DmdZN6ZVsZZtZyg5xcdp7KNCuolfTI0dQ9eDKj3xD8NW0LXKe9t
         rYowqWz7IM8f4oARIKSusK2lmcdeHKljwyfOo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764673036; x=1765277836;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=3uTknspdwfVlg5HxX4a1l7HLU0GTjm03g0aB2rEYFsg=;
        b=W8hNFlq7RgD0dTQcEjwdpJFrW44AEE6WLg4RGln/zRj0OtNxx8Umy5j+nlmYlSESqD
         y8fiivC5L3Ts02d/2JL7jyEP/+K7G12rZUXJsp3Y6mSgSUY/6cc9Je7Vaz2QFHoDEhwV
         4z1/CGAKCnyBMmEIJebab+pkyJi9nG7s8IMzDU8Ha3zTQVAWsudsEW4safQm1LqZ7C0n
         okMlyfqiaLvjhu2a42AT8UekzkfqZePd3C+kLReECAdfcQf95JvejbofWHaphIziRbh7
         MHJOrIOzwbJ3XXn0CodpniBcSEYM0GTXFCNcWxdTU5L1XwaabtrOBvPcBr1/WMQCxjAb
         l1qA==
X-Gm-Message-State: AOJu0YxQBZ9PhTx4zy5Q6ec7VInSSdOskqL6alZPGaL31b4X8XjDwaPv
	lHJgmk4lYCGnWxyjYwlDihW8ovMyAUI1a2ieZGQn/ZtriOawNv3vIRixtaQqnw0TWF8AjeQ31rL
	x/350
X-Gm-Gg: ASbGnctS1JrTFRBKiJpD7ywGGKXTKT3UDL1+lz7Tk4Or+SyQjWp+9Br5W0lh2nCr95r
	Q4scCIwKdPSQNLfdqtCORHE2E/fUI2FEKcFbE1a4ULeIcQbg0rZxTnWnS0Ri+nWVByYkbVpIN6P
	SJKsiEBkY6uVFX+jmUbLTq1uxfrje+TqnhsIW4g190+TRdB141lZ8Oegnce7XWCOAWMNv3YE/j/
	WP1HmQkzaVA5KwxuBPRZEIbow8P4TMLRsnamIZHLzWwiAq9o5DBKShBEkDQjH6rm0hH2jeeJOlm
	W/yA9lPZV4P7k/eIE56q3RRFlo2gICgpeUqLV0EXkmr0wz8RDQ9vpyE1FNrNHurIuckU6g/Y6Ry
	03/snIHbv55TG7tB95pbb4ixCFKTacwVapbzuFk5t7gm0AxZipycI3a9U2qf/Z8TzeiMSx6s1Yy
	HCANW4rupLtwTcBZztSxktUoh5FdwXSzXvFLBQqawBIpWDnG1Ns0fno/lu63XP8Q==
X-Google-Smtp-Source: AGHT+IEu+buKMVbsAKdlEx9OLFYApjuDQtKjGSVYWrbbpb3M2OiazRwqK6TuNVelOV2m117N04nNhg==
X-Received: by 2002:a05:600c:450f:b0:46e:1abc:1811 with SMTP id 5b1f17b1804b1-477c1124ecfmr404638545e9.27.1764673035896;
        Tue, 02 Dec 2025 02:57:15 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 1/3] x86/amd: Fold another DE_CFG edit into amd_init_de_cfg()
Date: Tue,  2 Dec 2025 10:57:08 +0000
Message-Id: <20251202105710.1472927-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251202105710.1472927-1-andrew.cooper3@citrix.com>
References: <20251202105710.1472927-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fam12h processors aren't SMT-capable so there are no race condition worries
with this path.  Nevertheless, group it together with the other DE_CFG
modifications.

Fixes: d0c75dc4c028 ("x86/amd: Fix race editing DE_CFG")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

I apparently couldn't count how many examples we had editing DE_CFG...
---
 xen/arch/x86/cpu/amd.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index 47c109f89804..4dc9157836ad 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -920,6 +920,13 @@ void amd_init_de_cfg(const struct cpuinfo_x86 *c)
     if ( zenbleed_use_chickenbit() )
         new |= (1 << 9);
 
+    /*
+     * Erratum #665, doc 44739.  Integer divide instructions may cause
+     * unpredictable behaviour.
+     */
+    if ( c->family == 0x12 )
+        new |= 1U << 31;
+
     /* Avoid reading DE_CFG if we don't intend to change anything. */
     if ( !new )
         return;
@@ -1201,15 +1208,6 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 					    smp_processor_id());
 			wrmsrl(MSR_AMD64_LS_CFG, value | (1 << 15));
 		}
-	} else if (c->x86 == 0x12) {
-		rdmsrl(MSR_AMD64_DE_CFG, value);
-		if (!(value & (1U << 31))) {
-			if (c == &boot_cpu_data || opt_cpu_info)
-				printk_once(XENLOG_WARNING
-					    "CPU%u: Applying workaround for erratum 665\n",
-					    smp_processor_id());
-			wrmsrl(MSR_AMD64_DE_CFG, value | (1U << 31));
-		}
 	}
 
 	/* AMD CPUs do not support SYSENTER outside of legacy mode. */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 02 10:57:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 10:57:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176096.1500657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQO4u-0000Qp-QQ; Tue, 02 Dec 2025 10:57:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176096.1500657; Tue, 02 Dec 2025 10:57:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQO4u-0000Qi-MF; Tue, 02 Dec 2025 10:57:52 +0000
Received: by outflank-mailman (input) for mailman id 1176096;
 Tue, 02 Dec 2025 10:57:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=2qtr=6I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vQO4t-0007Nh-8p
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 10:57:51 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bd5f9520-cf6d-11f0-980a-7dc792cee155;
 Tue, 02 Dec 2025 11:57:48 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-42e2e50c233so1155315f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 02 Dec 2025 02:57:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42e1c5c30c4sm32584562f8f.9.2025.12.02.02.57.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Dec 2025 02:57:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bd5f9520-cf6d-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764673068; x=1765277868; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iGQmzOTHQVxZhOuDPWqR9a8TFoVmUjibvWGR4WexcdI=;
        b=arGte0ma9vRd1zRSoSYTKprpLbIYSxSEGTG+ils6AG70HIO5/4j4CYCY4YCA9C5y8k
         FCg+qF/v3aXXD09kn0E6BsWTEiGO9+Nbm7hJbbN3/xldHQoP8kZJZEJqbgOtfP1knevk
         FstemwO0mjoUCkt9q5f+x73/K04ya9IXdhozYh0xKrMpqBI7JutdaPavDbGl/212PCAC
         TNOILDyIQtmX6sg8z/e7233Tao84/RVQoq7CeA6yv6ot7oS+ufzNEAN0etTkJTu9PDwC
         xRbVxir+MubaHfDRBUskOJhHY9aRxoEU+obyfqha/LJvkKDfys+ftH6Dm6hVkAqCVsYQ
         GA8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764673068; x=1765277868;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iGQmzOTHQVxZhOuDPWqR9a8TFoVmUjibvWGR4WexcdI=;
        b=liI6msq/qru9rfynqgFbkRQ6iR+ykSz848/sqZQ5XxgUfVmdkxNNCOmRlUQAKGdhtj
         3DdY74nBFi6SHxml+Vze9fknq75H/fWCJBSSt41NUzJ524v+quWJ5L5ioAhbfGW3wUtg
         QXJxL2Q9G5LiK49gghtykcuSZxjemzfL0XYSBqd25TUgDziSW2xmJWjWRaY4ULbWQFSN
         J7mqWGzLdV7b6rq9TXgvPoEEcqiGvNhCGWbPsp7rdsp55yAW8zEZQUfHHugYKhpipapk
         m81yx9tXalOTllTqpPSZzrk23oLK4FAG5VyL+iVthD6LU7ogEb2eDC17uqSdJU639iBn
         CmoQ==
X-Forwarded-Encrypted: i=1; AJvYcCUSd/geJVfXiFGnGQ7mxwK6KpOm00BB0X9PCWj0A350wAQOq6jet9td8iiuAtOo+bAacjEJPR9nBUU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxsrlL2FcVV6SRbxZb/e1QEm3PNNLFzN4xLjHgv6A8a/b4gsrKV
	pua8JpZao2B36ZEhGkxKSGW4N/63f+uJjGNnnG7A6oxiDbBDSlzSc/a7ZJZOWqzj8a7fCDdNReM
	1JU8=
X-Gm-Gg: ASbGncu0zt/2xYSutfLXsZkOdwt1tBEBqj55qOMBu6grD2mY+Y7uoFQJGu49laJ4QzH
	7olVlHsKHEa2E1+GZonV51DUotXDqLf44e7YE5svt9ivQIh1a25Lfi2iHrjtg6EsOmL3DvojMzS
	MznO89JhRUGEqSU5EmVhCCXqQ8p2VrblPvALlMXwzVHOAcnpVj9wWruuAK/JllAc/O/RnL1To8K
	8MQBtFLVnTPXubJ1IS8/h7tOG7rWGhHuDRWdClo/BpAOxGN4K+4EOtkeC1lb2IE1Fe5fhHQHcvp
	RfGzTwwe7rcRRAVsXVmPJdM5UmuI8l3xMhNo1tDv2EY9Uxmup6oZwa3ZerKe42VjicWTPIPwid0
	KwHSWi+W9oueixThjtB9R0dRYaWfqrEIJ8z6sqEnXaVWS5M5t46gZCOto1belt3QPKm5qd0sY4y
	MXA3FmPI5npPuMcwpvmtwc3Zs1ybUxf1zRZDG5Y9vYz74HOm8gHNE8eSRvAfTMSe1RK6cgJIwdz
	2FLVNX8ITaBtQ==
X-Google-Smtp-Source: AGHT+IG1K8guqAjyaA98CnxCpU0/Z0anMnauHlLpbS1wwhh0oPTOELEr6GehL8K+lYWtKkpTntZ0tQ==
X-Received: by 2002:a05:6000:4012:b0:428:5673:11e0 with SMTP id ffacd0b85a97d-42cc1d1999dmr46852933f8f.40.1764673067878;
        Tue, 02 Dec 2025 02:57:47 -0800 (PST)
Message-ID: <90ac9206-10ce-4c46-83e3-82ac8ef0d152@suse.com>
Date: Tue, 2 Dec 2025 11:57:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Ping: [XEN][PATCH v4] xen: make VMTRACE support optional
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 Tamas K Lengyel <tamas@tklengyel.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Teddy Astie <teddy.astie@vates.tech>, Penny Zheng <Penny.Zheng@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251119193120.1011448-1-grygorii_strashko@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251119193120.1011448-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.11.2025 20:31, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> The VMTRACE feature is depends on Platform/Arch HW and code support and now
> can be used only on x86 HVM with Intel VT-x (INTEL_VMX) enabled.
> This makes VMTRACE support optional by introducing HVM Kconfig option:
> - CONFIG_VMTRACE to enable/disable the feature.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
> changes in v4:
> - format changes
> 
> changes in v3:
> - drop vmtrace stubs for HVM=n case from hvm.h (VMTRACE depnds on HVM)
> - hvm_vmtrace_reset() fix return err code
> - add comment about using func declaration without definition
> 
> changes in v2:
>  - fix comments from Jan Beulich
>  - move CONFIG_VMTRACE in HVM
>  - drop HAS_VMTRACE
> 
> v3:
>  https://patchwork.kernel.org/project/xen-devel/patch/20251114142207.279834-1-grygorii_strashko@epam.com/
> v2:
>  https://patchwork.kernel.org/project/xen-devel/patch/20251112202442.3879997-1-grygorii_strashko@epam.com/ 
> v1:
>  https://patchwork.kernel.org/project/xen-devel/patch/20251031212005.1338212-1-grygorii_strashko@epam.com/
> 
>  xen/arch/x86/domctl.c                   |  4 +++
>  xen/arch/x86/hvm/Kconfig                | 12 +++++++++
>  xen/arch/x86/hvm/vmx/vmcs.c             |  2 ++
>  xen/arch/x86/hvm/vmx/vmx.c              | 11 ++++++++
>  xen/arch/x86/include/asm/guest-msr.h    |  2 ++
>  xen/arch/x86/include/asm/hvm/hvm.h      | 36 ++++++++++---------------
>  xen/arch/x86/include/asm/hvm/vmx/vmcs.h |  2 ++
>  xen/arch/x86/mm/mem_sharing.c           |  2 ++
>  xen/arch/x86/vm_event.c                 |  8 +++---
>  xen/common/domain.c                     | 10 +++++++
>  xen/common/memory.c                     |  6 +++++
>  xen/common/vm_event.c                   |  3 ++-
>  xen/include/xen/domain.h                |  4 +++
>  xen/include/xen/sched.h                 |  4 +++
>  14 files changed, 80 insertions(+), 26 deletions(-)

Tamas - any chance of an ack here?

Grygorii - chasing missing acks is generally the submitter's responsibility.

Jan

> diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
> index 6153e3c07e2d..d9521808dcba 100644
> --- a/xen/arch/x86/domctl.c
> +++ b/xen/arch/x86/domctl.c
> @@ -154,6 +154,7 @@ void arch_get_domain_info(const struct domain *d,
>  static int do_vmtrace_op(struct domain *d, struct xen_domctl_vmtrace_op *op,
>                           XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>  {
> +#ifdef CONFIG_VMTRACE
>      struct vcpu *v;
>      int rc;
>  
> @@ -198,6 +199,9 @@ static int do_vmtrace_op(struct domain *d, struct xen_domctl_vmtrace_op *op,
>      vcpu_unpause(v);
>  
>      return rc;
> +#else
> +    return -EOPNOTSUPP;
> +#endif
>  }
>  
>  #define MAX_IOPORTS 0x10000
> diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
> index c1a131d1851a..f75dec5ea40a 100644
> --- a/xen/arch/x86/hvm/Kconfig
> +++ b/xen/arch/x86/hvm/Kconfig
> @@ -35,6 +35,18 @@ config INTEL_VMX
>  	  If your system includes a processor with Intel VT-x support, say Y.
>  	  If in doubt, say Y.
>  
> +config VMTRACE
> +	bool "HW VM tracing support"
> +	depends on INTEL_VMX
> +	default y
> +	help
> +	  Enables HW VM tracing support which allows to configure HW processor
> +	  features (vmtrace_op) to enable capturing information about software
> +	  execution using dedicated hardware facilities with minimal interference
> +	  to the software being traced. The trace data can be retrieved using buffer
> +	  shared between Xen and domain
> +	  (see XENMEM_acquire_resource(XENMEM_resource_vmtrace_buf)).
> +
>  config HVM_FEP
>  	bool "HVM Forced Emulation Prefix support (UNSUPPORTED)" if UNSUPPORTED
>  	default DEBUG
> diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
> index d610988bf91b..c2e7f9aed39f 100644
> --- a/xen/arch/x86/hvm/vmx/vmcs.c
> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
> @@ -306,6 +306,7 @@ static int vmx_init_vmcs_config(bool bsp)
>  
>      rdmsrl(MSR_IA32_VMX_MISC, _vmx_misc_cap);
>  
> +#ifdef CONFIG_VMTRACE
>      /* Check whether IPT is supported in VMX operation. */
>      if ( bsp )
>          vmtrace_available = cpu_has_proc_trace &&
> @@ -317,6 +318,7 @@ static int vmx_init_vmcs_config(bool bsp)
>                 smp_processor_id());
>          return -EINVAL;
>      }
> +#endif
>  
>      if ( caps.cpu_based_exec_control & CPU_BASED_ACTIVATE_SECONDARY_CONTROLS )
>      {
> diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
> index d042e7fb927f..c98ec110d144 100644
> --- a/xen/arch/x86/hvm/vmx/vmx.c
> +++ b/xen/arch/x86/hvm/vmx/vmx.c
> @@ -622,6 +622,7 @@ static void cf_check domain_creation_finished(struct domain *d)
>  
>  static void vmx_init_ipt(struct vcpu *v)
>  {
> +#ifdef CONFIG_VMTRACE
>      unsigned int size = v->domain->vmtrace_size;
>  
>      if ( !size )
> @@ -632,6 +633,7 @@ static void vmx_init_ipt(struct vcpu *v)
>      ASSERT(size >= PAGE_SIZE && (size & (size - 1)) == 0);
>  
>      v->arch.msrs->rtit.output_limit = size - 1;
> +#endif
>  }
>  
>  static int cf_check vmx_vcpu_initialise(struct vcpu *v)
> @@ -724,11 +726,13 @@ static void vmx_save_guest_msrs(struct vcpu *v)
>       */
>      v->arch.hvm.vmx.shadow_gs = read_gs_shadow();
>  
> +#ifdef CONFIG_VMTRACE
>      if ( v->arch.hvm.vmx.ipt_active )
>      {
>          rdmsrl(MSR_RTIT_OUTPUT_MASK, msrs->rtit.output_mask);
>          rdmsrl(MSR_RTIT_STATUS, msrs->rtit.status);
>      }
> +#endif
>  
>      if ( cp->feat.pks )
>          msrs->pkrs = rdpkrs_and_cache();
> @@ -747,12 +751,14 @@ static void vmx_restore_guest_msrs(struct vcpu *v)
>      if ( cpu_has_msr_tsc_aux )
>          wrmsr_tsc_aux(msrs->tsc_aux);
>  
> +#ifdef CONFIG_VMTRACE
>      if ( v->arch.hvm.vmx.ipt_active )
>      {
>          wrmsrl(MSR_RTIT_OUTPUT_BASE, page_to_maddr(v->vmtrace.pg));
>          wrmsrl(MSR_RTIT_OUTPUT_MASK, msrs->rtit.output_mask);
>          wrmsrl(MSR_RTIT_STATUS, msrs->rtit.status);
>      }
> +#endif
>  
>      if ( cp->feat.pks )
>          wrpkrs(msrs->pkrs);
> @@ -2626,6 +2632,7 @@ static bool cf_check vmx_get_pending_event(
>      return true;
>  }
>  
> +#ifdef CONFIG_VMTRACE
>  /*
>   * We only let vmtrace agents see and modify a subset of bits in MSR_RTIT_CTL.
>   * These all pertain to data-emitted into the trace buffer(s).  Must not
> @@ -2768,6 +2775,7 @@ static int cf_check vmtrace_reset(struct vcpu *v)
>      v->arch.msrs->rtit.status = 0;
>      return 0;
>  }
> +#endif
>  
>  static uint64_t cf_check vmx_get_reg(struct vcpu *v, unsigned int reg)
>  {
> @@ -2940,11 +2948,14 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
>      .altp2m_vcpu_emulate_ve = vmx_vcpu_emulate_ve,
>      .altp2m_vcpu_emulate_vmfunc = vmx_vcpu_emulate_vmfunc,
>  #endif
> +
> +#ifdef CONFIG_VMTRACE
>      .vmtrace_control = vmtrace_control,
>      .vmtrace_output_position = vmtrace_output_position,
>      .vmtrace_set_option = vmtrace_set_option,
>      .vmtrace_get_option = vmtrace_get_option,
>      .vmtrace_reset = vmtrace_reset,
> +#endif
>  
>      .get_reg = vmx_get_reg,
>      .set_reg = vmx_set_reg,
> diff --git a/xen/arch/x86/include/asm/guest-msr.h b/xen/arch/x86/include/asm/guest-msr.h
> index 5f0cb0a93995..702f47fe1e16 100644
> --- a/xen/arch/x86/include/asm/guest-msr.h
> +++ b/xen/arch/x86/include/asm/guest-msr.h
> @@ -50,6 +50,7 @@ struct vcpu_msrs
>          };
>      } misc_features_enables;
>  
> +#ifdef CONFIG_VMTRACE
>      /*
>       * 0x00000560 ... 57x - MSR_RTIT_*
>       *
> @@ -81,6 +82,7 @@ struct vcpu_msrs
>              };
>          };
>      } rtit;
> +#endif
>  
>      /*
>       * 0x000006e1 - MSR_PKRS - Protection Key Supervisor.
> diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
> index 7412256a2dab..93da4dd2dc4b 100644
> --- a/xen/arch/x86/include/asm/hvm/hvm.h
> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
> @@ -234,12 +234,14 @@ struct hvm_function_table {
>      int (*altp2m_vcpu_emulate_vmfunc)(const struct cpu_user_regs *regs);
>  #endif
>  
> +#ifdef CONFIG_VMTRACE
>      /* vmtrace */
>      int (*vmtrace_control)(struct vcpu *v, bool enable, bool reset);
>      int (*vmtrace_output_position)(struct vcpu *v, uint64_t *pos);
>      int (*vmtrace_set_option)(struct vcpu *v, uint64_t key, uint64_t value);
>      int (*vmtrace_get_option)(struct vcpu *v, uint64_t key, uint64_t *value);
>      int (*vmtrace_reset)(struct vcpu *v);
> +#endif
>  
>      uint64_t (*get_reg)(struct vcpu *v, unsigned int reg);
>      void (*set_reg)(struct vcpu *v, unsigned int reg, uint64_t val);
> @@ -738,6 +740,7 @@ static inline bool altp2m_vcpu_emulate_ve(struct vcpu *v)
>  bool altp2m_vcpu_emulate_ve(struct vcpu *v);
>  #endif /* CONFIG_ALTP2M */
>  
> +#ifdef CONFIG_VMTRACE
>  static inline int hvm_vmtrace_control(struct vcpu *v, bool enable, bool reset)
>  {
>      if ( hvm_funcs.vmtrace_control )
> @@ -772,13 +775,24 @@ static inline int hvm_vmtrace_get_option(
>  
>      return -EOPNOTSUPP;
>  }
> +#else
> +/*
> + * Function declaration(s) here are used without definition(s) to make compiler
> + * happy when VMTRACE=n, compiler DCE will eliminate unused code.
> + */
> +int hvm_vmtrace_output_position(struct vcpu *v, uint64_t *pos);
> +#endif
>  
>  static inline int hvm_vmtrace_reset(struct vcpu *v)
>  {
> +#ifdef CONFIG_VMTRACE
>      if ( hvm_funcs.vmtrace_reset )
>          return alternative_call(hvm_funcs.vmtrace_reset, v);
>  
>      return -EOPNOTSUPP;
> +#else
> +    return -EOPNOTSUPP;
> +#endif
>  }
>  
>  /*
> @@ -934,28 +948,6 @@ static inline bool hvm_has_set_descriptor_access_exiting(void)
>      return false;
>  }
>  
> -static inline int hvm_vmtrace_control(struct vcpu *v, bool enable, bool reset)
> -{
> -    return -EOPNOTSUPP;
> -}
> -
> -static inline int hvm_vmtrace_output_position(struct vcpu *v, uint64_t *pos)
> -{
> -    return -EOPNOTSUPP;
> -}
> -
> -static inline int hvm_vmtrace_set_option(
> -    struct vcpu *v, uint64_t key, uint64_t value)
> -{
> -    return -EOPNOTSUPP;
> -}
> -
> -static inline int hvm_vmtrace_get_option(
> -    struct vcpu *v, uint64_t key, uint64_t *value)
> -{
> -    return -EOPNOTSUPP;
> -}
> -
>  static inline uint64_t hvm_get_reg(struct vcpu *v, unsigned int reg)
>  {
>      ASSERT_UNREACHABLE();
> diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
> index 8ff7c8045fc6..879ec10cefd0 100644
> --- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
> +++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
> @@ -154,8 +154,10 @@ struct vmx_vcpu {
>      /* Do we need to tolerate a spurious EPT_MISCONFIG VM exit? */
>      bool                 ept_spurious_misconfig;
>  
> +#ifdef CONFIG_VMTRACE
>      /* Processor Trace configured and enabled for the vcpu. */
>      bool                 ipt_active;
> +#endif
>  
>      /* Is the guest in real mode? */
>      uint8_t              vmx_realmode;
> diff --git a/xen/arch/x86/mm/mem_sharing.c b/xen/arch/x86/mm/mem_sharing.c
> index 4787b2796479..074f1b2562b3 100644
> --- a/xen/arch/x86/mm/mem_sharing.c
> +++ b/xen/arch/x86/mm/mem_sharing.c
> @@ -1888,7 +1888,9 @@ static int fork(struct domain *cd, struct domain *d)
>          domain_pause(d);
>          cd->max_pages = d->max_pages;
>          *cd->arch.cpu_policy = *d->arch.cpu_policy;
> +#ifdef CONFIG_VMTRACE
>          cd->vmtrace_size = d->vmtrace_size;
> +#endif
>          cd->parent = d;
>      }
>  
> diff --git a/xen/arch/x86/vm_event.c b/xen/arch/x86/vm_event.c
> index fc349270b9c5..112d2ef66dc7 100644
> --- a/xen/arch/x86/vm_event.c
> +++ b/xen/arch/x86/vm_event.c
> @@ -253,7 +253,9 @@ void vm_event_fill_regs(vm_event_request_t *req)
>      req->data.regs.x86.shadow_gs = ctxt.shadow_gs;
>      req->data.regs.x86.dr6 = ctxt.dr6;
>  
> -    if ( hvm_vmtrace_output_position(curr, &req->data.regs.x86.vmtrace_pos) != 1 )
> +    if ( IS_ENABLED(CONFIG_VMTRACE) &&
> +         hvm_vmtrace_output_position(curr,
> +                                     &req->data.regs.x86.vmtrace_pos) != 1 )
>          req->data.regs.x86.vmtrace_pos = ~0;
>  #endif
>  }
> @@ -303,12 +305,12 @@ void vm_event_emulate_check(struct vcpu *v, vm_event_response_t *rsp)
>  #endif
>  }
>  
> +#ifdef CONFIG_VMTRACE
>  void vm_event_reset_vmtrace(struct vcpu *v)
>  {
> -#ifdef CONFIG_HVM
>      hvm_vmtrace_reset(v);
> -#endif
>  }
> +#endif
>  
>  /*
>   * Local variables:
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index e13e01c1d272..ce4f55339fb4 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -136,7 +136,9 @@ struct vcpu *idle_vcpu[NR_CPUS] __read_mostly;
>  
>  vcpu_info_t dummy_vcpu_info;
>  
> +#ifdef CONFIG_VMTRACE
>  bool __read_mostly vmtrace_available;
> +#endif
>  
>  bool __read_mostly vpmu_is_available;
>  
> @@ -318,6 +320,7 @@ static void vcpu_info_reset(struct vcpu *v)
>  
>  static void vmtrace_free_buffer(struct vcpu *v)
>  {
> +#ifdef CONFIG_VMTRACE
>      const struct domain *d = v->domain;
>      struct page_info *pg = v->vmtrace.pg;
>      unsigned int i;
> @@ -332,10 +335,12 @@ static void vmtrace_free_buffer(struct vcpu *v)
>          put_page_alloc_ref(&pg[i]);
>          put_page_and_type(&pg[i]);
>      }
> +#endif
>  }
>  
>  static int vmtrace_alloc_buffer(struct vcpu *v)
>  {
> +#ifdef CONFIG_VMTRACE
>      struct domain *d = v->domain;
>      struct page_info *pg;
>      unsigned int i;
> @@ -377,6 +382,9 @@ static int vmtrace_alloc_buffer(struct vcpu *v)
>      }
>  
>      return -ENODATA;
> +#else
> +    return 0;
> +#endif
>  }
>  
>  /*
> @@ -825,7 +833,9 @@ struct domain *domain_create(domid_t domid,
>          ASSERT(!config->altp2m.nr);
>  #endif
>  
> +#ifdef CONFIG_VMTRACE
>          d->vmtrace_size = config->vmtrace_size;
> +#endif
>      }
>  
>      /* Sort out our idea of is_control_domain(). */
> diff --git a/xen/common/memory.c b/xen/common/memory.c
> index 3688e6dd5032..66dc7f7a0a41 100644
> --- a/xen/common/memory.c
> +++ b/xen/common/memory.c
> @@ -1155,8 +1155,10 @@ static unsigned int resource_max_frames(const struct domain *d,
>      case XENMEM_resource_ioreq_server:
>          return ioreq_server_max_frames(d);
>  
> +#ifdef CONFIG_VMTRACE
>      case XENMEM_resource_vmtrace_buf:
>          return d->vmtrace_size >> PAGE_SHIFT;
> +#endif
>  
>      default:
>          return 0;
> @@ -1198,6 +1200,7 @@ static int acquire_ioreq_server(struct domain *d,
>  #endif
>  }
>  
> +#ifdef CONFIG_VMTRACE
>  static int acquire_vmtrace_buf(
>      struct domain *d, unsigned int id, unsigned int frame,
>      unsigned int nr_frames, xen_pfn_t mfn_list[])
> @@ -1220,6 +1223,7 @@ static int acquire_vmtrace_buf(
>  
>      return nr_frames;
>  }
> +#endif
>  
>  /*
>   * Returns -errno on error, or positive in the range [1, nr_frames] on
> @@ -1238,8 +1242,10 @@ static int _acquire_resource(
>      case XENMEM_resource_ioreq_server:
>          return acquire_ioreq_server(d, id, frame, nr_frames, mfn_list);
>  
> +#ifdef CONFIG_VMTRACE
>      case XENMEM_resource_vmtrace_buf:
>          return acquire_vmtrace_buf(d, id, frame, nr_frames, mfn_list);
> +#endif
>  
>      default:
>          ASSERT_UNREACHABLE();
> diff --git a/xen/common/vm_event.c b/xen/common/vm_event.c
> index b2787c010890..cf0258223f50 100644
> --- a/xen/common/vm_event.c
> +++ b/xen/common/vm_event.c
> @@ -441,7 +441,8 @@ static int vm_event_resume(struct domain *d, struct vm_event_domain *ved)
>              if ( rsp.flags & VM_EVENT_FLAG_GET_NEXT_INTERRUPT )
>                  vm_event_monitor_next_interrupt(v);
>  
> -            if ( rsp.flags & VM_EVENT_FLAG_RESET_VMTRACE )
> +            if ( IS_ENABLED(CONFIG_VMTRACE) &&
> +                 (rsp.flags & VM_EVENT_FLAG_RESET_VMTRACE) )
>                  vm_event_reset_vmtrace(v);
>  
>              if ( rsp.flags & VM_EVENT_FLAG_VCPU_PAUSED )
> diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
> index 8aab05ae93c8..aa86a9f46022 100644
> --- a/xen/include/xen/domain.h
> +++ b/xen/include/xen/domain.h
> @@ -191,7 +191,11 @@ void vnuma_destroy(struct vnuma_info *vnuma);
>  static inline void vnuma_destroy(struct vnuma_info *vnuma) { ASSERT(!vnuma); }
>  #endif
>  
> +#ifdef CONFIG_VMTRACE
>  extern bool vmtrace_available;
> +#else
> +#define vmtrace_available false
> +#endif
>  
>  extern bool vpmu_is_available;
>  
> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
> index 02bdc256ce37..dcd8647e0d36 100644
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -300,9 +300,11 @@ struct vcpu
>      /* vPCI per-vCPU area, used to store data for long running operations. */
>      struct vpci_vcpu vpci;
>  
> +#ifdef CONFIG_VMTRACE
>      struct {
>          struct page_info *pg; /* One contiguous allocation of d->vmtrace_size */
>      } vmtrace;
> +#endif
>  
>      struct arch_vcpu arch;
>  
> @@ -623,7 +625,9 @@ struct domain
>      unsigned int nr_altp2m;    /* Number of altp2m tables. */
>  #endif
>  
> +#ifdef CONFIG_VMTRACE
>      unsigned int vmtrace_size; /* Buffer size in bytes, or 0 to disable. */
> +#endif
>  
>  #ifdef CONFIG_ARGO
>      /* Argo interdomain communication support */



From xen-devel-bounces@lists.xenproject.org Tue Dec 02 11:34:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 11:34:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176129.1500666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQOdg-0006aH-EU; Tue, 02 Dec 2025 11:33:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176129.1500666; Tue, 02 Dec 2025 11:33:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQOdg-0006aA-Ad; Tue, 02 Dec 2025 11:33:48 +0000
Received: by outflank-mailman (input) for mailman id 1176129;
 Tue, 02 Dec 2025 11:33:48 +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
 <SRS0=JGiA=6I=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vQOdg-0006a4-0I
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 11:33:48 +0000
Received: from mail-oo1-xc33.google.com (mail-oo1-xc33.google.com
 [2607:f8b0:4864:20::c33])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c01dc723-cf72-11f0-9d1a-b5c5bf9af7f9;
 Tue, 02 Dec 2025 12:33:41 +0100 (CET)
Received: by mail-oo1-xc33.google.com with SMTP id
 006d021491bc7-6596897c2b5so242217eaf.0
 for <xen-devel@lists.xenproject.org>; Tue, 02 Dec 2025 03:33:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c01dc723-cf72-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764675220; x=1765280020; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JyXl5Uwe+7LLw2uOAk13W9T08ZfHu18vispL0Z1eZVo=;
        b=vl3z/XtOemBGFB5VONRt2kenBpRZWnnHa8C1+ds12131Y6j3xb+2nEGIQZDuD5eKHO
         +YDsqGr/pLp0uWZahOBd1ECbT0GiicnDK/3xl7tkDLaMwIqqH+SKZ8SMqSeLcqzwD9n2
         M/YUcHsp2IhmPGQxnh0fPliOAETntrtsoLlw+xtCrEp7NIkmFtyfAgbnXhOdxVrfbsgz
         rv2vi7X6Br1ozGPt8H8yIUPQRFUokGh7n3dJKdmRs8hOlnaaUzS0xTM1O1bttGj7KJ/g
         L0cResaK2pjBF4FQGWYLbmG55s/ZCwZ33PAJb3bz+UdwAw17v73k2dgg9M4qZ/UdWn9S
         14qg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764675220; x=1765280020;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=JyXl5Uwe+7LLw2uOAk13W9T08ZfHu18vispL0Z1eZVo=;
        b=UL5WRvNveImHxjKKPdQG/HAVl6FMNwIRDVr4hCw6wsFmcA6Zbbf13amJ201X+C9Y3e
         IuRM+wSv8DFaNmxp1f1lxvdWs+gu9aZvxLXY6o5bK8/9SEthIT35NO9cCm1ZvTGoR8qi
         6+Bx2FKzA/emQ4thVb2j6+t8YpuIMD3r3ePmg5mQAAoB7hLLw78eVzwv+SjDNGaI00yr
         DZBPPd2nd9uq7wIwKyNj0ljxhCY667kMV4MkzcAMlK2rS4k3TPkeZMksaXbs4/2nQUo5
         O8XhJs9rzwQjd3w6jFPfINsPYBC2WYeYOZkEDdhQTOMx2uLbAkuZaECKoS73Qp2CMQkf
         uWhg==
X-Gm-Message-State: AOJu0YzE3GfGs+ddd731gZzK0584wLD9aX91eEouGF6UrJld7/lpLi5R
	7owDBViO1TrNH1mdMs/igC6nL92zQUZWDwjgWbNIExB0yyTl/uSb74pyerD9Bns9CsrwMvKAtdP
	A1pjwCxnS6J9UvhK7nGgk5Mi/jOqh9+kxD9VxjtAToA==
X-Gm-Gg: ASbGnctfLI4+pr7V4CPyxolpaHjkToq/oQ1DumdccXjtM2eGz/rmyqrMTCzy2ewWFiS
	zZXocuHVTq5a7VS0XS0hNd427zFG9wDKE8ETj7xTipo7ewuvD1brHes6XNpUB+Zf+dcA1Hh6hlf
	bHpEaVzS2Y6BwMCn8zBIOJHAUL/fCH/lYfRHhisk7Bw6qfVVDKlBy4Ro6B3Lmkf6ygtiOoiMlhJ
	Tra4r+8U+/daipCWT/xjMBdutqHA7DuP6kMGZZ5IgAXcITSQf4N7TcIMQ3pFc9KF6B9XBUEdTX7
	+vCRya9qHKrRE3kOxESR+2ieZXk7THftGTAK
X-Google-Smtp-Source: AGHT+IFW7i3dfES0Xb4sukVQLMDZA65THvwhMrFNq7hJDqg19UOOp4+LiSCiWKWhx0UCMqRq2oMSAqjnVDNIOY3XCGQ=
X-Received: by 2002:a05:6820:88f:b0:657:5629:2cef with SMTP id
 006d021491bc7-6595dd842fcmr2725762eaf.4.1764675219790; Tue, 02 Dec 2025
 03:33:39 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764254975.git.bertrand.marquis@arm.com> <5e66b2991340f010befcaa3a57d0f35ad18d4149.1764254975.git.bertrand.marquis@arm.com>
In-Reply-To: <5e66b2991340f010befcaa3a57d0f35ad18d4149.1764254975.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 2 Dec 2025 12:33:28 +0100
X-Gm-Features: AWmQ_bl58x99MENRUJ2heu2BeXbVrnBiAu6RnkIU6NIv_UXXYQcqVHXNR9zQ_aE
Message-ID: <CAHUa44E1SnhBR8=ibG+r6QPN9hehcRVPa93zKpYd756OHza+=A@mail.gmail.com>
Subject: Re: [PATCH 02/10] xen/arm: ffa: per-VM FFA_VERSION negotiation state
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,


On Thu, Nov 27, 2025 at 4:52=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Track FF-A version negotiation per VM and enforce that no FF-A ABI
> (other than FFA_VERSION) is processed before a guest has selected a
> version.
>
> Each ffa_ctx gains a dedicated guest_vers_lock, a negotiated version
> (guest_vers) and a guest_vers_negotiated flag. guest_vers records the
> version requested by the guest so the mediator can provide data
> structures compatible with older minor versions. The value returned to
> the guest by FFA_VERSION is always FFA_MY_VERSION, the implementation
> version, as required by FF-A.
>
> FFA_VERSION may be issued multiple times. Negotiation becomes final
> only when a non-FFA_VERSION ABI is invoked, in accordance with the
> FF-A requirement that the version cannot change once any other ABI has
> been used. Before this point, non-FFA_VERSION ABIs are rejected if no
> valid version has been provided.
>
> Once negotiation completes, the context is added to the global FF-A
> VM list (when VM-to-VM is enabled) and the version may not be modified
> for the lifetime of the VM. All VM-to-VM paths and teardown logic are
> updated to use the guest_vers_negotiated flag.
>
> This prevents partially initialised contexts from using the mediator
> and complies with the FF-A 1.2 FFA_VERSION semantics.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa.c         | 115 +++++++++++++++++++++++++--------
>  xen/arch/arm/tee/ffa_msg.c     |   2 +-
>  xen/arch/arm/tee/ffa_private.h |  21 ++++--
>  3 files changed, 104 insertions(+), 34 deletions(-)
>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 2b4e24750d52..3309ca875ec4 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -158,40 +158,89 @@ static bool ffa_abi_supported(uint32_t id)
>      return !ffa_simple_call(FFA_FEATURES, id, 0, 0, 0);
>  }
>
> -static void handle_version(struct cpu_user_regs *regs)
> +static bool ffa_negotiate_version(struct cpu_user_regs *regs)
>  {
>      struct domain *d =3D current->domain;
>      struct ffa_ctx *ctx =3D d->arch.tee;
> -    uint32_t vers =3D get_user_reg(regs, 1);
> -    uint32_t old_vers;
> +    uint32_t fid =3D get_user_reg(regs, 0);
> +    uint32_t in_vers =3D get_user_reg(regs, 1);
> +    uint32_t out_vers =3D FFA_MY_VERSION;
>
> -    /*
> -     * Guest will use the version it requested if it is our major and mi=
nor
> -     * lower or equals to ours. If the minor is greater, our version wil=
l be
> -     * used.
> -     * In any case return our version to the caller.
> -     */
> -    if ( FFA_VERSION_MAJOR(vers) =3D=3D FFA_MY_VERSION_MAJOR )
> -    {
> -        spin_lock(&ctx->lock);
> -        old_vers =3D ctx->guest_vers;
> +    spin_lock(&ctx->guest_vers_lock);
>
> -        if ( FFA_VERSION_MINOR(vers) > FFA_MY_VERSION_MINOR )
> -            ctx->guest_vers =3D FFA_MY_VERSION;
> -        else
> -            ctx->guest_vers =3D vers;
> -        spin_unlock(&ctx->lock);
> +    /* Handle FFA_VERSION races from different vCPUs. */
> +    if ( ctx->guest_vers_negotiated )
> +        goto out_continue;
>
> -        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !old_vers )
> +    if ( fid !=3D FFA_VERSION )
> +    {
> +        if ( !ctx->guest_vers )
>          {
> -            /* One more VM with FF-A support available */
> -            inc_ffa_vm_count();
> -            write_lock(&ffa_ctx_list_rwlock);
> -            list_add_tail(&ctx->ctx_list, &ffa_ctx_head);
> -            write_unlock(&ffa_ctx_list_rwlock);
> +            out_vers =3D 0;
> +            goto out_handled;
>          }
> +
> +        /*
> +         * A successful FFA_VERSION call does not freeze negotiation. Gu=
ests
> +         * are allowed to issue multiple FFA_VERSION attempts (e.g. prob=
ing
> +         * several minor versions). Negotiation becomes final only when =
a
> +         * non-VERSION ABI is invoked, as required by the FF-A specifica=
tion.
> +         */
> +        if ( !ctx->guest_vers_negotiated )

ctx->guest_vers_negotiated is always false here, due to the check above.

> +        {
> +            ctx->guest_vers_negotiated =3D true;

I'm on thin ice here, but I think that barriers or some other
primitives are needed to close the gap if ffa_handle_call() is called
concurrently during these conditions:
ctx->guest_vers_negotiated =3D=3D false
CPU0 called with FFA_VERSION 1.1 -> sets ctx->guest_vers =3D 1.1
CPU1 called with a valid FF-A ID !=3D FFA_VERSION -> sets
ctx->guest_vers_negotiated =3D true
CPU2 called with a valid FF-A ID !=3D FFA_VERSION -> guarantee is
missing that CPU2 will observe the updated ctx->guest_vers if it
observes the updated ctx->guest_vers_negotiated

Cheers,
Jens

> +
> +            if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> +            {
> +                /* One more VM with FF-A support available */
> +                inc_ffa_vm_count();
> +                write_lock(&ffa_ctx_list_rwlock);
> +                list_add_tail(&ctx->ctx_list, &ffa_ctx_head);
> +                write_unlock(&ffa_ctx_list_rwlock);
> +            }
> +        }
> +
> +        goto out_continue;
> +    }
> +
> +    /*
> +     * guest_vers stores the version selected by the guest (lower minor =
may
> +     * require reduced data structures). However, the value returned to =
the
> +     * guest via FFA_VERSION is always FFA_MY_VERSION, the implementatio=
n
> +     * version, as required by FF-A. The two values intentionally differ=
.
> +     */
> +
> +    /*
> +     * Return our highest implementation version on request different th=
an our
> +     * major and mark negotiated version as our implementation version.
> +     */
> +    if ( FFA_VERSION_MAJOR(in_vers) !=3D FFA_MY_VERSION_MAJOR )
> +    {
> +        ctx->guest_vers =3D FFA_MY_VERSION;
> +        goto out_handled;
>      }
> -    ffa_set_regs(regs, FFA_MY_VERSION, 0, 0, 0, 0, 0, 0, 0);
> +
> +    /*
> +     * Use our minor version if a greater minor was requested or the req=
uested
> +     * minor if it is lower than ours was requested.
> +     */
> +    if ( FFA_VERSION_MINOR(in_vers) > FFA_MY_VERSION_MINOR )
> +        ctx->guest_vers =3D FFA_MY_VERSION;
> +    else
> +        ctx->guest_vers =3D in_vers;
> +
> +out_handled:
> +    spin_unlock(&ctx->guest_vers_lock);
> +    if ( out_vers )
> +        ffa_set_regs(regs, out_vers, 0, 0, 0, 0, 0, 0, 0);
> +    else
> +        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> +    return true;
> +
> +out_continue:
> +    spin_unlock(&ctx->guest_vers_lock);
> +
> +    return false;
>  }
>
>  static void handle_features(struct cpu_user_regs *regs)
> @@ -274,10 +323,17 @@ static bool ffa_handle_call(struct cpu_user_regs *r=
egs)
>      if ( !ctx )
>          return false;
>
> +    /* A version must be negotiated first */
> +    if ( !ctx->guest_vers_negotiated )
> +    {
> +        if ( ffa_negotiate_version(regs) )
> +            return true;
> +    }
> +
>      switch ( fid )
>      {
>      case FFA_VERSION:
> -        handle_version(regs);
> +        ffa_set_regs(regs, FFA_MY_VERSION, 0, 0, 0, 0, 0, 0, 0);
>          return true;
>      case FFA_ID_GET:
>          ffa_set_regs_success(regs, ffa_get_vm_id(d), 0);
> @@ -371,6 +427,11 @@ static int ffa_domain_init(struct domain *d)
>      d->arch.tee =3D ctx;
>      ctx->teardown_d =3D d;
>      INIT_LIST_HEAD(&ctx->shm_list);
> +    spin_lock_init(&ctx->lock);
> +    spin_lock_init(&ctx->guest_vers_lock);
> +    ctx->guest_vers =3D 0;
> +    ctx->guest_vers_negotiated =3D false;
> +    INIT_LIST_HEAD(&ctx->ctx_list);
>
>      ctx->ffa_id =3D ffa_get_vm_id(d);
>      ctx->num_vcpus =3D d->max_vcpus;
> @@ -452,7 +513,7 @@ static int ffa_domain_teardown(struct domain *d)
>      if ( !ctx )
>          return 0;
>
> -    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && ctx->guest_vers )
> +    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && ctx->guest_vers_negotiated )
>      {
>          dec_ffa_vm_count();
>          write_lock(&ffa_ctx_list_rwlock);
> diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
> index c20c5bec0f76..dec429cbf160 100644
> --- a/xen/arch/arm/tee/ffa_msg.c
> +++ b/xen/arch/arm/tee/ffa_msg.c
> @@ -113,7 +113,7 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, cons=
t void *src_buf,
>      }
>
>      dst_ctx =3D dst_d->arch.tee;
> -    if ( !dst_ctx->guest_vers )
> +    if ( !dst_ctx->guest_vers_negotiated )
>      {
>          ret =3D FFA_RET_INVALID_PARAMETERS;
>          goto out_unlock;
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index d7e6b6f5ef45..88b85c7c453a 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -354,12 +354,6 @@ struct ffa_ctx {
>       * Global data accessed with lock locked.
>       */
>      spinlock_t lock;
> -    /*
> -     * FF-A version negotiated by the guest, only modifications to
> -     * this field are done with the lock held as this is expected to
> -     * be done once at init by a guest.
> -     */
> -    uint32_t guest_vers;
>      /* Number of 4kB pages in each of rx/rx_pg and tx/tx_pg */
>      unsigned int page_count;
>      /* Number of allocated shared memory object */
> @@ -367,6 +361,21 @@ struct ffa_ctx {
>      /* Used shared memory objects, struct ffa_shm_mem */
>      struct list_head shm_list;
>
> +    /*
> +     * FF-A version handling
> +     * guest_vers and guest_vers_negotiated are only written with
> +     * guest_vers_lock held. Reads do not take the lock, but ordering is
> +     * guaranteed because the writer updates guest_vers first and then
> +     * guest_vers_negotiated while holding the lock, ensuring any reader
> +     * that observes guest_vers_negotiated =3D=3D true also sees the fin=
al
> +     * guest_vers value.
> +     * The ffa_ctx is added to the ctx_list only when a version
> +     * has been negotiated and locked.
> +     */
> +    spinlock_t guest_vers_lock;
> +    uint32_t guest_vers;
> +    bool guest_vers_negotiated;
> +
>      /*
>       * Rx buffer, accessed with rx_lock locked.
>       * rx_is_free is used to serialize access.
> --
> 2.51.2
>


From xen-devel-bounces@lists.xenproject.org Tue Dec 02 11:44:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 11:44:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176143.1500676 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQOnu-0008Rh-Fh; Tue, 02 Dec 2025 11:44:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176143.1500676; Tue, 02 Dec 2025 11:44:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQOnu-0008Ra-Bm; Tue, 02 Dec 2025 11:44:22 +0000
Received: by outflank-mailman (input) for mailman id 1176143;
 Tue, 02 Dec 2025 11:44:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WL05=6I=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vQOnt-0008RQ-0K
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 11:44:21 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3a1b95a5-cf74-11f0-980a-7dc792cee155;
 Tue, 02 Dec 2025 12:44:15 +0100 (CET)
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com (2603:10a6:20b:6::31)
 by AS2PR03MB9003.eurprd03.prod.outlook.com (2603:10a6:20b:5e6::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Tue, 2 Dec
 2025 11:44:11 +0000
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4]) by AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4%4]) with mapi id 15.20.9366.012; Tue, 2 Dec 2025
 11:44:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3a1b95a5-cf74-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mvbFMZbYOd2GB6FVZaFaHeVvalUzpkrNLsZmQaBEF1tjXlaA6wUTMX3GzbzJd4exDJI9UYQb7EzwUD2LhS3s7mziEuVYnF/fWCI0cuKykwuHJJw8xgfDicL1m6t9xrmgUX+wsDa+vAiNq5Eyf7dU7seprHPKcYoDd2NvBSu/zEYNUbASCS9nnf7skGmP2ouY7Or2w+MZZb7cW5r+F9VtF1O9N98QXYQ5n+jEZNlRzu98GY6dpibEaoz5zLicBlUHeETQKZK4hgcgctAsrPTMChGaB1otN4Hd9s910V35Xakr+j8rNqCGvy6dqxehlL2s0paKoisE9V89viBrC0Gq4g==
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=v8Dm0QJ0gR2lbXLFTrqzLa2MbAI0+LzNdHczf/PDrrg=;
 b=osXe7+z65bOy67rqa6x9WjoCZewB7R6WRy0ltH7vwrWRtHA2v1LuhFFuoeqmcwoLME9cE0gn3XgFD3Qxd0nU+716L3mEiySmaQSI2v56YDmWzc5ahvEfm2uvHOILDbbm77QHei82ZUXJRaUJnZxhnj08QPKpVJIiOe1kqzV3eJ31sGni/H6U59mevHrxqeGY2hBaNnOkVR46WfVjf/v/urPZqP9TfeNljQetsmURYAIc5Kemppn+hj8GnzjoKjz3S/9Y9FUG82q7cnXIMntRT6opFyPK9+b1b6tkYu/QTkR3/5NnngvUAob47ASbGsbfEEw9ZXf1IhfuaewytT18hg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=v8Dm0QJ0gR2lbXLFTrqzLa2MbAI0+LzNdHczf/PDrrg=;
 b=buRAUGMzvJao9L3mKUMTGAUHNopFw8pvYU/LAkSu54daUT21fnwYulOWqQ4wJrgl+AI32fVQqUd1QCZUch18yllN/600x7+xzUI0d7CTHrPtiaVvb0o3tXhXrudrVe+7rS00PqfdgnZbN4mN/Pe63iq0sOvnD9q5pkZU+0E5ekymyxWmJ5a72xr2Pn6usBaqSTBTMJxDvcmNJ6WQ0chDVRe82t8+IjET0xw2VInkT3dPbC+TVRFMk+55S7/E0NI3DEwXofJ120SO+awJukB3/q7LHBpj5KTDY8HWzlgHq31DoAD4IGfz0hbm8LCjsalGBbXk2hyV8Py9d1sHQi7aKg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <11b01aca-5a3e-4bfc-b939-46461d143c4d@epam.com>
Date: Tue, 2 Dec 2025 13:44:09 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: Ping: [XEN][PATCH v4] xen: make VMTRACE support optional
To: Jan Beulich <jbeulich@suse.com>, Tamas K Lengyel <tamas@tklengyel.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Teddy Astie <teddy.astie@vates.tech>, Penny Zheng <Penny.Zheng@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251119193120.1011448-1-grygorii_strashko@epam.com>
 <90ac9206-10ce-4c46-83e3-82ac8ef0d152@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <90ac9206-10ce-4c46-83e3-82ac8ef0d152@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
X-ClientProxiedBy: WA1P291CA0012.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::9) To AM6PR03MB4600.eurprd03.prod.outlook.com
 (2603:10a6:20b:6::31)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM6PR03MB4600:EE_|AS2PR03MB9003:EE_
X-MS-Office365-Filtering-Correlation-Id: 722c0880-c0cc-4a84-ac01-08de31981c2f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dXZMZ1M4NUxLclZUUCtWcFJSWE5TVGw1RXdHd1pXa0ZocGFjVmxsN3NvYllJ?=
 =?utf-8?B?WFpURThWR200VjErN1lNNEdlNGx0dHZaUDhzbXVkb201R3QwZkJFTUtOT0Rv?=
 =?utf-8?B?c3pDK3gxVklrYmdOVWMrZ3Q0NWJYMy85RE1vQk1hQWtWUXlUZ0tGWjBqSEla?=
 =?utf-8?B?dENmWDhDTkVpNmo2d2RyY1huZzY4VWMrMGhUMzZpT09sQzJxUFFvR2c3bWJ1?=
 =?utf-8?B?dlZsZ0grUk44c1hyNVZ4eVZ6REpUMVJKTHRONWowQVh6TlNnMUV3MHdmY1I5?=
 =?utf-8?B?STBSaUVRMXo2TjVBYzVhTjFJMmxqV3Z5c3NsTjdvb05JQ0RKT25ORWk3UWNK?=
 =?utf-8?B?OVRacGR0UE4yK0tnYlkyVG5SaGp3eGtJYnRQdzBrdFFER29vMFIxZ3V1TUVn?=
 =?utf-8?B?bmJtdkpDWFRxWENKYkpQdjJ2dHNtUUZKRXMrYlFEdDBSZlcwLzIrd0M3NlVr?=
 =?utf-8?B?VjNvNWFRMjlMRVhodGI0c2dyQTJLaDV5aGRTZHMxeFBGUzV6ZDV0Q3lrVnJ6?=
 =?utf-8?B?aHBQTEpWUkt5OTJDWUd2aGM0MzJudUwxK0Q3Vk1INUtGMUo2b3drQkxmNWp4?=
 =?utf-8?B?YjVjdWxFbktXcjJRZ3RLL2FvRFViT1ZqQ0s3dHRRdmRPK3V4djFEQU5icG4x?=
 =?utf-8?B?OFhxU2xGV3VRUk4vLzh2U2Zsem94dGFGWnYrYlNiWDVZbSt3ejk5RHd4ZlpR?=
 =?utf-8?B?UU5GSnJvcDhhckVta0xNYUJhS0dvNG9OenMzVU1oQzJCZlFVaDUrSFVnWFBi?=
 =?utf-8?B?NklkTlZqNnk2WUdHelR6REZseXZxaWdXbDdoUmN0NUpNak5IZVd6UU1Hby92?=
 =?utf-8?B?MjZOdGY2VWV4eFhtb0hiRGxNd2hXYk5BTkV4OU5qcXZJZVZQSEtHWTMwMlhm?=
 =?utf-8?B?VXBwK045R21HbElFeWc5M1l4SXp2YlFxVUc1VXpFNlZodzg2U2p0ZjJ1aXVG?=
 =?utf-8?B?S2pRbWFYdlZRcEltQkZaR3lzSCs2emUvZEhMak9vWVBISVdQNWY2SzdMU3Mz?=
 =?utf-8?B?VXBvbytkdzVaYWFuVEpuYkVudHpLS1gvM3puQyt6ZkptUEZBSXBnWnhudlNy?=
 =?utf-8?B?NG5sN0hkakNyRGY4K3RVTmZYbklhRXB4aktxZXpOeHB4cVU5TFlydUtyaW9n?=
 =?utf-8?B?cGlVcWp4RHBxN2tKUXpLR2dMNDhuTVRkRWxiNTV5TWorT3VRdVg2RUw4NDU5?=
 =?utf-8?B?NEpOdm9NRFRGNi9ZT2ZMNzNrZWVaSGRJS2lwNFNXNG85N1pvVTZxWTQ0UnFk?=
 =?utf-8?B?b1Nub2dzcWJBYTlPVmZrTTBNNTg5Qm9zL2t1akRzVXdPQXYwL1J4Z3hJcXhU?=
 =?utf-8?B?b09naS9FZmJOWDRpWW1SR0xBdjF5d3N2U1RzTXplL1RWcy81Vk1EZ2VkZ3pn?=
 =?utf-8?B?SzdTVWVyMnZpWlBwZTJ5NENoWGt5UG9TM3RpZnBtb0ZLMU5icHdycHptWjd2?=
 =?utf-8?B?aTJ4bHVMVjBrSzRUdVVEeGpDR1VDWmhDNVgrbVh3a0tXLzVLVklVM0RGL0x2?=
 =?utf-8?B?VUhSYmFjdytUcWtnMnNqTWM3eGFJWVVzdnJ2MEhTdXladjMrNGJYY2E0RXk3?=
 =?utf-8?B?MEtWaWRXMEoxaGhDcmRFb1Y4Wmg3ZkRKZURIYm9oUnoyZ3FINGVyN3hSZVhP?=
 =?utf-8?B?OHIwTmIxbkhTOXU0SW1WaERwWTZyd2JCdDhhVTlYUURmUS9xenF3cFl3b2pm?=
 =?utf-8?B?K1dGZm9uQ3oxNW9ia1VXU1p6YlRPTlNyY1IvbklUMjhCMDlHWmoyeVhSVnB0?=
 =?utf-8?B?S3RjRlhyUHlUTnZmdWRpT2g5NFpiN3lvRnE1UWRpTDZTSFE4MWdyYitJd2M4?=
 =?utf-8?B?SmtPTjExWFVjR0RaZjVveVpjMUNnb1VmMXVCS2FSL0Zpcjcrdm5leHJDb1RY?=
 =?utf-8?B?Z1paT1VKZ3g4eG9lTUpxOEF5UFRGVDQvQ2FqVzNHbTBjbmNLbXBFeVFqbWlL?=
 =?utf-8?B?L2FiL1lDdUNsd285ZmZBZjJvK2J6cnRCaFpWS1FqVjFCaW8vMDN5RFhCa3hT?=
 =?utf-8?B?ek5LQ3ZIZUl3PT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR03MB4600.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SFJrUWxiRm5EZWFTOTJGZk9ERUpFSzNhdU5CUGdzdFZUMVJJMVhEYWQ2YmNQ?=
 =?utf-8?B?eWM2WGJ4M0V6OTBiTFhrSHZWeThCbEVaaHlyWkhUUXRaTVJMdjlBOVVJSktm?=
 =?utf-8?B?THM5aEpzK051QzIvWFkrTnl5cUhVRTRYMStKV05PbXhDZlo4YTY1RzFXZkZB?=
 =?utf-8?B?ZlBzaHZ4Mm5mOTlCQVNBN2VKZm9KbElsTHdiUE5vcmU3bzFsQjhNUEd2bVhY?=
 =?utf-8?B?cktSdCtDb2hQV0tsVFErNTFDT2k1YkVCZDJjVy9OWnd5TGdnbFRXSE9MQlh2?=
 =?utf-8?B?QlJ1ZVZNM2RMSWlpM0xiWWJwam1wQjE2K3VTZ3VRVkxiT3JtL0RWbUZDdDIr?=
 =?utf-8?B?R2xiaUZGSHNEMXFjZTN6WWV0enFaSS81QzBQWFB4bUFCMkFEU1J3NURqa1c0?=
 =?utf-8?B?TklpR1ljZFFxOXg0dzR3anFEZWVOOHNmRHl6UUgxQUpiQklPRXdCaUJscDlD?=
 =?utf-8?B?TU84eWdsVzBoVWZteklaL25QbmtkZ0tRWlZ1dzhCTUFWeWlRNUlmQWZRVVUx?=
 =?utf-8?B?WGV1dXlQVEwzbnp1NmVyV2VUeUNTbXFpNjhNWDlpNUkrc2Flck1tc0RINXRw?=
 =?utf-8?B?MjN5Z2ZJelVPeGsxbjl4ZjRQajEwUStvdFh0RklrbVlna2V2ZTFDNml3WnFk?=
 =?utf-8?B?c01LcXN6SVBXU1JGTnJSMXZ5MlBuQXdGRjdTaDQ0M3lJS0MwSkh5RFNIbG03?=
 =?utf-8?B?NnNYSjJySXFkUmRibWJIR0tMMi9oS0p1SDErMUtleWZEZ2h5Sm14ZE9lLzZP?=
 =?utf-8?B?cVk2d3ZvaDJIeXF5NkNWWEUyZzlzQk81VFo0ZmdwUXc3aGR6cVpRQTRCVFFo?=
 =?utf-8?B?WjhlRlpDM1VhYml6bytXZGUyWWhxMTY5a2psNisvV2JhcUQxSFNrcjBRdTFj?=
 =?utf-8?B?WDVxSlEzOFUvbWJSTzdTVjNWQnovZGJvUnBRcFQrOFNCQmVQZTFaelhVdFVt?=
 =?utf-8?B?OGI4M3gxRlFvQ1dLbk9nYndUbFVDVGFYeGVIVndZbWVoQXVoMVVFS2gxaTc2?=
 =?utf-8?B?Q3VBaXdYOTJ1c3ExMEYzREtaVnlkSUMvR3kwT25WL2ZSZ00xNDJOckJ5ajZ4?=
 =?utf-8?B?WTVFb0dIalgvU05weXhSUWJoMURvNGl0Y3ZraFF4SGxEQlpjb1MvUnFrM2po?=
 =?utf-8?B?QmZ6TzhqOVNxcWIyUjUyWUFRTG56WTB2eTZ0L3ZPNGZQSFlDNnJGeHNFUTF6?=
 =?utf-8?B?alVsV2VtQzFXVWcyZkNFU3gzTVA2L0V2R1dMaFkrVmlMY1JDTjc3SHZ2NUxa?=
 =?utf-8?B?L0V6QnQxY1g2d2tvejRLUVlNQ0tDNkdTS05kSDFwMXZwakpvRWdmalJUdEpN?=
 =?utf-8?B?eHhJL01Jc09kVmNRRE9VRDRXcVJaaEh1Ym5XMzh4MFB1dmJjbVdpR002T3BN?=
 =?utf-8?B?ZVMraUpVOG5lRWE5SXJkeC9jNkJJbTV6aDNyWVh0NzhwZVF4SlcwYXRlV210?=
 =?utf-8?B?SlVkazVCWm5tMTVFRnhXSXhJeDdOa0NQdjJqMGptRVNoUzFybWlubW5KWk4z?=
 =?utf-8?B?TnlkYmIvbVo2S0NiQ3VSb1JlcUtuaXJpTGhtS0t5YkZlZldhaVVRUFlLQm52?=
 =?utf-8?B?L0U2d04vaSt4Q0QvUTJwUGg2RVRXeTBnci9RL0ZONis3UWpQK09YT2xUdkxv?=
 =?utf-8?B?SGkvQmtjcGNvK1d0SjdoRVpFZHNtbHpHeWtpY0RQWStPMzdBLzd5bEFCNVZW?=
 =?utf-8?B?a05wSy9sSk1vSjNMeHYrbytPUlUwbmhGSW9ZcnVZeldjMk9Ydk1sTEhDQkJF?=
 =?utf-8?B?ekJlTEVLek9OSVZwS1N6dGliZmdVTm5YVC8wWlVBWFRMWHNJTXk2OTdlODNa?=
 =?utf-8?B?SklpNHRaZ2QwN1FuL2E2UmpBR0Rsb2ZSa1I4Rkl2Rlo5RFE5RWtBNUpzQnFK?=
 =?utf-8?B?VUg0ZHlPQUlqTWY4K082UHhqVDJQTHVzQ1NUdEZ6dkRnNkdsNExVcmFUQjg4?=
 =?utf-8?B?V3JMSU96ZnpXc3BVUHlLRGk3Y2pSY1FIZWJOTExVMkNSbFI3c0VRWGtUb2x3?=
 =?utf-8?B?R2JmRXBmMGRVZlFiMWZkMjErZllmNVdmaURlNWd0RnNsVGVsU1BGVDR6aEVo?=
 =?utf-8?B?UjZXR2VLdmZIcG5rc0RoTlQvdVdnREF0TkhtQWl2ZjdoUENwbUZnUVVTQUxQ?=
 =?utf-8?B?UXU3T1pubUhBbCtnRWZEWE1KazNUeit3aEc2aWNFYkNlZVY0cWwrMW1ZNW83?=
 =?utf-8?B?d2c9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 722c0880-c0cc-4a84-ac01-08de31981c2f
X-MS-Exchange-CrossTenant-AuthSource: AM6PR03MB4600.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2025 11:44:11.2282
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wAf4u4LBxTrIbEx2xGDjamqzmtzIy/EJ3yrNkP99v8Yg3sFrePbwIMpP2F9OBmTYK2EGaWxLzI1axmZiDebHcjKaoU4qydv3cksObmyHdDg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9003



On 02.12.25 12:57, Jan Beulich wrote:
> On 19.11.2025 20:31, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> The VMTRACE feature is depends on Platform/Arch HW and code support and now
>> can be used only on x86 HVM with Intel VT-x (INTEL_VMX) enabled.
>> This makes VMTRACE support optional by introducing HVM Kconfig option:
>> - CONFIG_VMTRACE to enable/disable the feature.
>>
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> ---
>> changes in v4:
>> - format changes
>>
>> changes in v3:
>> - drop vmtrace stubs for HVM=n case from hvm.h (VMTRACE depnds on HVM)
>> - hvm_vmtrace_reset() fix return err code
>> - add comment about using func declaration without definition
>>
>> changes in v2:
>>   - fix comments from Jan Beulich
>>   - move CONFIG_VMTRACE in HVM
>>   - drop HAS_VMTRACE
>>
>> v3:
>>   https://patchwork.kernel.org/project/xen-devel/patch/20251114142207.279834-1-grygorii_strashko@epam.com/
>> v2:
>>   https://patchwork.kernel.org/project/xen-devel/patch/20251112202442.3879997-1-grygorii_strashko@epam.com/
>> v1:
>>   https://patchwork.kernel.org/project/xen-devel/patch/20251031212005.1338212-1-grygorii_strashko@epam.com/
>>
>>   xen/arch/x86/domctl.c                   |  4 +++
>>   xen/arch/x86/hvm/Kconfig                | 12 +++++++++
>>   xen/arch/x86/hvm/vmx/vmcs.c             |  2 ++
>>   xen/arch/x86/hvm/vmx/vmx.c              | 11 ++++++++
>>   xen/arch/x86/include/asm/guest-msr.h    |  2 ++
>>   xen/arch/x86/include/asm/hvm/hvm.h      | 36 ++++++++++---------------
>>   xen/arch/x86/include/asm/hvm/vmx/vmcs.h |  2 ++
>>   xen/arch/x86/mm/mem_sharing.c           |  2 ++
>>   xen/arch/x86/vm_event.c                 |  8 +++---
>>   xen/common/domain.c                     | 10 +++++++
>>   xen/common/memory.c                     |  6 +++++
>>   xen/common/vm_event.c                   |  3 ++-
>>   xen/include/xen/domain.h                |  4 +++
>>   xen/include/xen/sched.h                 |  4 +++
>>   14 files changed, 80 insertions(+), 26 deletions(-)
> 
> Tamas - any chance of an ack here?
> 
> Grygorii - chasing missing acks is generally the submitter's responsibility.
>

Sorry, I switched to different task and forgot to ask :(
  
> Jan
> 
> 

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Dec 02 11:46:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 11:46:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176151.1500687 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQOpf-0000Za-Qz; Tue, 02 Dec 2025 11:46:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176151.1500687; Tue, 02 Dec 2025 11:46:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQOpf-0000ZT-N1; Tue, 02 Dec 2025 11:46:11 +0000
Received: by outflank-mailman (input) for mailman id 1176151;
 Tue, 02 Dec 2025 11:46:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WL05=6I=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vQOpd-0000ZL-Ua
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 11:46:10 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7d4e79ce-cf74-11f0-980a-7dc792cee155;
 Tue, 02 Dec 2025 12:46:07 +0100 (CET)
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com (2603:10a6:20b:6::31)
 by GVXPR03MB10730.eurprd03.prod.outlook.com (2603:10a6:150:21a::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Tue, 2 Dec
 2025 11:46:02 +0000
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4]) by AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4%4]) with mapi id 15.20.9366.012; Tue, 2 Dec 2025
 11:46:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7d4e79ce-cf74-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KnnXKuDZwu7HSiDACltX4RDitL26gU+71xHAFXjZCIHbPCKyCULtfrva8nOS8HcfAWo9nB8o6OExiydqUgv/nAJ+eB6Obk4sDI5GSxw0BgGx1YaBjeQm2GfoigvMkcE70+CdtFyxGgHSgTnMS8eyWIP8jK3HwJw6vNU/c0X00Odz1xYxxTnlRN3UO9YIB9lLLVFbjGOLGEqTTMwxXxfm/Cb25khP6IERpwlJSn+pTNuH7b8YEL+0Me64AJbqjPo7ve+X2m1OuORgK7QinJyZrXxcaA5Doo4vcmYS8bVzxdhe+cyjZc/k7lw4nFy/hFqCQjOqPMUA90TMm3SsPtQFPg==
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=B4hF5jWz+q0rDtUoloYxl1dnjJtfk1uJ6cK5yuXSIkI=;
 b=jTJDjp4GJtafHYXH9X8qeHhdL/3kB6rzq6RBfhC3T2oOWQBEKDbvmbyoGzDCNBjrvbNoHdeEp/3DF1Euqmn6u2epFi6aFDk7ICbvLGWKAQarkSlNz2PslnHHyboPbXJboV3Qt5NqBEM/7kUlBiy8KHBykChuoztyBNGsSkEVOi5ynwcHeX7tbsHnGM8wX0oKaEJulgSGHgkdB3YI06bBX8CXVh1CMkeI1TEQX7DzyNGx+oUzG3S9OhMdQNbKItlA9eodPb1/5ouIMHoSdaefJbYQB9suaMbxW27/UVHYaVghxciebnje98FEWC+vmfHXAs1xuYE+BEtYyAIe+4/5zg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=B4hF5jWz+q0rDtUoloYxl1dnjJtfk1uJ6cK5yuXSIkI=;
 b=mnfEkAlBs34vzmO2furB5y+Q6PUBYVf2TNTB48qUdfEwmmLPt1JutnspCP3cdrfu7EW/kbql52vFRHZxSHNfpMwqqYvYyYn1bMBzWSdN7wZmJyq9ljW6wBO9CmR/Is49ieOys67ZsgSdz86pR2Lu3rgWiRxC3HZSHfvJj1iWNqm17ynBtWebOcVvRFRXj0MY5n9LE5JVdgNUNJqVzHzpahrK6ZnT62wQa7lH763cnoA2Itkm+AzNO0XNvjZ6S0ivO0Ag4kSmZeTjZv6BEb0clNlj1E13em0/+h2bxj8slGRf3mD2Co24GJutB0QksTV0efSl9SgJsSLdSu+NlQ7QZw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <c0ea6866-1899-456b-a47d-1aa46d6b3bdc@epam.com>
Date: Tue, 2 Dec 2025 13:46:00 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v4] xen/x86: guest_access: optimize raw_x_guest() for
 PV and HVM combinations
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251114140117.270461-1-grygorii_strashko@epam.com>
 <11c3929a-977b-4ef8-aaaa-9aea01657b04@suse.com>
 <fdd51da7-c8dc-4c0f-aaaf-a9fd2094bcd4@epam.com>
 <567f2759-fa03-43bd-9ae4-75e0e3811b60@suse.com>
 <276968a6-4688-48bb-b0a1-5270ad3f0002@epam.com>
 <081b0989-79fc-4cf2-9527-0dcd2d91d518@suse.com>
 <0256fa42-59d9-4d0e-b439-0a89217a207e@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <0256fa42-59d9-4d0e-b439-0a89217a207e@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA1P291CA0016.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::27) To AM6PR03MB4600.eurprd03.prod.outlook.com
 (2603:10a6:20b:6::31)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM6PR03MB4600:EE_|GVXPR03MB10730:EE_
X-MS-Office365-Filtering-Correlation-Id: d60b7896-3c44-44f0-0830-08de31985eaf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NlhwbmpuN09BSVZLdFZ0RzBZUzdUMCt3UW5MeHhxWEs3WGdaMlpPa041S0hn?=
 =?utf-8?B?WXIrZWFZSThJZVE5WTBtRERBa2xSbTBrMVliUHBaT1d3QWxJMGp4Q2RjTkFT?=
 =?utf-8?B?VHZRWFVYdVR3R1c5MmZ5ZEdwNmFwd296VXc2c0E1RGpYdTZJa0wxN1ZBb3U5?=
 =?utf-8?B?T1J4TzJJQVI5Yk9qU1BaU1hLNzU4c01obm1LTllMYnFoUG8vbEdwZWlmOUZ5?=
 =?utf-8?B?bnlaWENqb0VjT0JLSk9uUk55Rk9oT2lXOE5nRE1hOEkrNjd4YWZWM0VGY2ZX?=
 =?utf-8?B?Q2QxVDVkbTlQZm4xOUFiZDh0TGpmekVLWm9uUXM4cjBXRWJWZVZXQjRiM1B5?=
 =?utf-8?B?RnZEZDFkOUdtT2psMU9HN0I5K3N4NDcrV3F5Ullvdlo1MFZZdFBHcWlpQVBM?=
 =?utf-8?B?cXRJczhORTJmMTZaOFR2M0xTK1ljNTZZZ2FxamlCeE9aS2pzTitYQ0tIRU9z?=
 =?utf-8?B?Ykk4VjRoR0FaNVQ2UVhoTVZqZmtRNW9FanVmMXBLU0IvNmxkNm1FL2toMGJ0?=
 =?utf-8?B?cWduUHdqTTlvN280WTl4RWxpZUx2cmRJTXVPUUZBSjJ3YTNZQkQ5RW8xMUwv?=
 =?utf-8?B?L3JHdndDUFgzSEJaeFhKOVFrVDd2YzI0T2d5TzlFWkkvR1dtZWJiME5xZWFq?=
 =?utf-8?B?eDN6QzVGbEJlQzJScDJJSFFiRTQxT0R3M3JOZkVnM0JIQ0s5d0VtVm5mZTd6?=
 =?utf-8?B?eXF6NktwWEZTQ1RGc3pOdGFVaERIMFIzeWhUMHozUERrbkdQeVNTZE1PNWpq?=
 =?utf-8?B?b2RNY1pBc3ZqeHBIblh5VXFWVlNtQmtUbk1vLzkveS9WNW9PVXhiZmpCRGlK?=
 =?utf-8?B?SVA4L21zVFU2ZE1CUzY1RFAxR3VBSUpkajBCUzNsNHFDRXlFcCt1cmVzR1dU?=
 =?utf-8?B?aDJ6YXJUUHVua24vSVNLbmN3MXpkNEVMdFVYUW1BaGFvWU13K2RmcmdDRm03?=
 =?utf-8?B?MG1IQndJT05RV1NMU3NpdURubGtxQWlsZGc5TGlkNHBONjkvSmhTWmVmSlYz?=
 =?utf-8?B?dnk2WmdER0FRWjg1Tzh2Qm51QXZyMTJsTnJmWEpURVhBNFlySkpCWDFPUm14?=
 =?utf-8?B?a2NGcmduTUZjN0xMbEtONGJSRFJNMVEwVThCRkZZQmhOaWtzTzVySkV6UW5G?=
 =?utf-8?B?L0k5Ti9ESHp4ZGpNeDZMQXdjOWo4cXpwTWQrV3pUVlVZdXdDQlVCYUhNVG9B?=
 =?utf-8?B?Tkg0VE5tVFB0YXpDbWlpcDVNZStCRUVQcDBJTDl2K0RyYkVYN3VZYkd1TEUr?=
 =?utf-8?B?aU51RmtDMnEyaExHdnlOTHZ1Y0ZHbHF2ZDc3SDZLOTMzMjhldnBwMWVTZGJt?=
 =?utf-8?B?RkQ4b0RNeE93VlF1TjlzL2pCbFlRbUpIdkttMFJsbk4xaERId0t4U3pESkR1?=
 =?utf-8?B?aDBkZEZ2bUZGd2gwQXdRMTRJWHhJZEl2SUJBUHV0Ym5VOGFMNGZpRnF4ZDR2?=
 =?utf-8?B?V0lKd1dQRWg1WFkyTHpmcDJ4OXIxalhITTltdnRlNk8wbHlXcUV6bHZqQ1h3?=
 =?utf-8?B?US9VTFBmdEtqVDJJSmk3ckI2dlllVXU0aFJhWFV1S3pYSWhLNWZzV2tnYzNS?=
 =?utf-8?B?ZXdDUGJlWnc0VmRibTFTMFV1dGthaHk3dUp6WWRWZkhoZzJaanpETTlMUVRC?=
 =?utf-8?B?UGo0eFhRTndRbEFSSEZIRVQycEs0OG5mUVhiQXA5dkMzR0Y5WjcrOVNleHB0?=
 =?utf-8?B?czhVbFpoMkxyRmJBY1NwUnBZVW9aYUhUY0Q0dVB0OVVtWXFTT1J2K09hS2FP?=
 =?utf-8?B?OGk0SjJLVTBmTlB4Vjd4VjR0K29ZOWloaDJzREVHRzJFVHJ1bkdxZXJ0cUZM?=
 =?utf-8?B?bHdtQzhuRENyOTNtRU9xQllZZlBtVURROE43U2Z4d08ycXEvRmEzcHZROUht?=
 =?utf-8?B?L1liNFBnaGc4YU9mNDF5Y21jVGcrNmVaYXlCRzN1RVVuWjlESFF6WHVNellM?=
 =?utf-8?Q?p+3c82sGlBGJQbpjIcxHbzQvn5HqpG/l?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR03MB4600.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QkdRbzRQUGVQVXM5T1dvbUxla1BweXhiS3d2MVo4QlJPNXFleG81NnhiQXlF?=
 =?utf-8?B?c0tKbkNjd0JuVEdYMXo0SmJaNzEzZlZlbnA4UUoxM0FLQnUzRFJwcEVWcHVP?=
 =?utf-8?B?YW5JSlZmL0R4bTBtR3laOGcvRnFpeE41TURiTFVpZDJTYUFvbmlqUXpzL1o1?=
 =?utf-8?B?ZlIvRGxNcldpQjczOWRScEFqelhlc2x4S05YNnI4OVlWMEdkS1J4dk04SzUz?=
 =?utf-8?B?TUpaaVJrVEJKSWt6RExlbk9FdXBPRElkNGRSL254UEpjczg4RStSeHp3K3hr?=
 =?utf-8?B?ZmpjbExZb1h6dzBneWZxeUk1VjNNUGZsMlk1Z0xob2NPZG90Wi9UdGc4QjBX?=
 =?utf-8?B?YUZBK0I0ZDRBRnpJTWh3SjZxbUpnSTJoeE9BQ0t5NGs2RisvSEdLQXlUd1l6?=
 =?utf-8?B?cTBhN2lYYVZiUWIvOG1QQVNJR1NGM2RSYkRzbHVyM0JFZFphSTlqMEFRVFow?=
 =?utf-8?B?L2ZiZ2VmRGltZVk5ZE93UDRUcjZCeW1Jb0dmUlI0cE9HelAwM0M0alRkd01x?=
 =?utf-8?B?UzN6ZmV4Rk1OdUNSMHh6T0tOanRIRWlESGlMcjcrR3lpbVMrOG8vb2NDU1d2?=
 =?utf-8?B?SFM2OXNKcWRkeTFVSFA0RWRwbzNRMFdaZnhWNUJSMWdjeHcrMGpCeWxDQTRL?=
 =?utf-8?B?dzFtUkVEczYwc1pOZnZiRWQ1UU1YbDFTamJDU1p5Mis4dzE0aVNPclVoNytj?=
 =?utf-8?B?NnB4dHZyMzlyd2YyRW1PRUc1T2dwcnJVdWhwdlRHd2ZPaVdtMStVYnpjVEdB?=
 =?utf-8?B?cjVtNklhYjBZdkU2Y1A0Z3pFVGhhRW5tU2ZuWlNLNXNQZnR4U2FVK1JicXVJ?=
 =?utf-8?B?U25ham1RNFFMMWtPYW1VY1YvN0M4NjN3L1hwZnNVL0tTWXR0RERQTzI2dmZB?=
 =?utf-8?B?TUNIQU56R2tCNCtYeEhqb0R5Qnp6KzlOZlVXS1dVckhJVzZpTmw4ZGFFSmJ5?=
 =?utf-8?B?VTZNTS8vaW5qaFdyS3VHUTZKOHVYRnROYzNKczB1dzJsbys0QnF4YlIvMlJJ?=
 =?utf-8?B?anZHVlpIOEt1SHhtZVMrWDMrRVlGTFJFRFBwRG9wTzhCaEJuZ0dZcXJMNEk0?=
 =?utf-8?B?VE11TmhTQjF0QzNXNFhuQ3VzNzZuWThXTHY0ZURZdzRYVGs0VVlMUzdCTzU2?=
 =?utf-8?B?MkZDeGlZSXUrT2tXSEpkUVZpam44bVpJUkJleWN5QjF4dmRxOURKMHAxYW5X?=
 =?utf-8?B?Rkl0MXNPekgyWTV3Q2RVbU8zR29rMjc2V3JLdFNtcjZiTER3c0F3UHU4Y2tU?=
 =?utf-8?B?UWZzOEdBYk00RXdlaFJEcmdqVmNZQk05THFUWmNZcmxoRnZlek83WHBlZm1n?=
 =?utf-8?B?QUxROURXTkROcWJ2M0grNnNYSyszZWY5bjVnZDRCWFVDMmRvWC95YlUzSk1t?=
 =?utf-8?B?WDJKUDY4ZWdqc2tLUXN0R09XWko5U2wySzN2azljUTVIYkFIMTBUU0hDTUlN?=
 =?utf-8?B?b2o5Y0N0OFZaMWt3UFVPWmtUZW5aeFFUck4wbFBpMVRZdTdXNWEzZ3JlQzlE?=
 =?utf-8?B?SjRRdkNNSnE4dlhqOGcwT1d0dE9tdW9BODhlQ1paVEFPWDNyR0ZXbm5pYk5W?=
 =?utf-8?B?aml1Q3NsazVzdnBrQWE1OUhLaTNtL2JwSHdrNUdvZURyaUpHUld3Zm1wNHk2?=
 =?utf-8?B?cHBmZ3Z2bWtzSkg5Y2hPdHVGZkZWSk1LUTI4Q2JkbDdhY1BuY0xUU3ZWTU1B?=
 =?utf-8?B?MUZZb3lVWjU0UVZaTlE3VTAvQms5dm5XcGJPaHhOVCtyMUFoS1hlOUljc1U1?=
 =?utf-8?B?QUJ5QVNEaXdZMGlIc091VnN1ejRDaUlRazlCNnhneW1NTzFpWnhnUmh4a040?=
 =?utf-8?B?WE1LSHBBTVdjbUpzZTZ1a21kT0VjcXNLMFFyMjVQSUZyMXdPZGhQT1FJU2Zj?=
 =?utf-8?B?ay9hN3k1SGQvVDduTisyY01EZTcyU01WOXl6R3kzWEczenJhaGt5Vmp0Zk0r?=
 =?utf-8?B?OWxpOTNIczFtUG1wSnl3RFU4QnVVTTRZOUxuRDRBQzM5UlBIMmFQZVlNL3Ix?=
 =?utf-8?B?anpRL1hhRjNDNnU2U3VoeXJnUFJFVGhDVVlCWVY1bmwvN2UzUHAxOHFaQm92?=
 =?utf-8?B?WU92TEEwY3JBbGFXR1lXSVF0Wng5aGxaK1p4VnZzRU9McU54aW1tSkJSOEFr?=
 =?utf-8?B?VWxCMXJnaGFYb3RCVXlWeEMya1pYZnJaZlFZc3RDSHQ1akc1SkZVTHJ4OFd3?=
 =?utf-8?B?WkE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d60b7896-3c44-44f0-0830-08de31985eaf
X-MS-Exchange-CrossTenant-AuthSource: AM6PR03MB4600.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2025 11:46:02.7875
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ImYTwLWwgJwVoQF76qN6uPDPn1kDysactGAJPNRBNy5khhjmfC/ASFDjqC+JhNGG4cAqN9isYCRUEDrVEaFkwNIpAPvceeyAfeKO34D8Vm8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB10730

Hi Jan,

On 24.11.25 12:08, Jan Beulich wrote:
> On 20.11.2025 09:11, Jan Beulich wrote:
>> On 19.11.2025 20:36, Grygorii Strashko wrote:
>>> Hi Jan
>>>
>>> On 18.11.25 15:45, Jan Beulich wrote:
>>>> On 18.11.2025 14:08, Grygorii Strashko wrote:
>>>>> On 17.11.25 18:43, Jan Beulich wrote:
>>>>>> On 14.11.2025 15:01, Grygorii Strashko wrote:
>>>>>>> --- a/xen/arch/x86/pv/Makefile
>>>>>>> +++ b/xen/arch/x86/pv/Makefile
>>>>>>> @@ -14,6 +14,10 @@ obj-y += ro-page-fault.o
>>>>>>>     obj-$(CONFIG_PV_SHIM) += shim.o
>>>>>>>     obj-$(CONFIG_TRACEBUFFER) += trace.o
>>>>>>>     obj-y += traps.o
>>>>>>> +obj-$(CONFIG_PV) += usercopy.o
>>>>>>
>>>>>> Just obj-y with the movement.
>>>>>>
>>>>>> However, is the movement (and was the adding of $(CONFIG_PV) in the earlier
>>>>>> version) actually correct? The file also produces copy_{from,to}_unsafe_ll(),
>>>>>> which aren't PV-specific. This may be only a latent issue right now, as we
>>>>>> have only a single use site of copy_from_unsafe(), but those functions need
>>>>>> to remain available. (We may want to arrange for them to be removed when
>>>>>> linking, as long as they're not referenced. But that's a separate topic.)
>>>>>
>>>>> It is confusing that none of build cfg combinations have failed
>>>>> (HVM=y PV=n, HVM=n PV=n) :(
>>>>>
>>>>> copy_to_unsafe_ll()
>>>>> - called from copy_to_unsafe()
>>>>> - copy_to_unsafe() has no users (unreachable, MISRA 2.1?)
>>>>>
>>>>> copy_from_unsafe_ll()
>>>>> - called from copy_from_unsafe()
>>>>> - copy_from_unsafe() called from one place do_invalid_op() with
>>>>>      copy_from_unsafe(,, n = sizeof(bug_insn)).
>>>>>      Due to __builtin_constant_p(n) check the copy_from_unsafe() call
>>>>>      optimized by compiler to
>>>>>      get_unsafe_size(*(uint16_t *)to, from, 2, UA_DROP, ret, 2);
>>>>>
>>>>> as result copy_from_unsafe_ll() is unreachable also (?).
>>>>
>>>> Yes, these likely all want to become library-like, so they are linked in only
>>>> when actually referenced.
>>>>
>>>>> If those function are not subject to be removed, the
>>>>>     usercopy.c can't be moved in "x86/pv", Right?
>>>>
>>>> That's my take, yes.
>>>>
>>>>> Making copy_{from,to}_unsafe_ll() available for !PV means
>>>>> rewriting usercopy.c in some way, Right?
>>>>
>>>> "Re-writing" is probably too much, but some adjustments would be needed if
>>>> you want to keep the "unsafe" functions but compile out the "guest" ones.
>>>> It may be possible to compile the file twice, once from x86/pv/ and once
>>>> from x86/, replacing the self-#include near the bottom of the file. The
>>>> former would then produce the "guest" functions, the latter the "unsafe"
>>>> ones.
>>>
>>> Below is the difference I came up with, will it work?
>>
>> That'll be on you to make sure, but ...
>>
>>> --- /dev/null
>>> +++ b/xen/arch/x86/usercopy.c
>>> @@ -0,0 +1,77 @@
>>> +/*
>>> + * User address space access functions.
>>> + *
>>> + * Copyright 1997 Andi Kleen <ak@muc.de>
>>> + * Copyright 1997 Linus Torvalds
>>> + * Copyright 2002 Andi Kleen <ak@suse.de>
>>> + */
>>> +
>>> +#include <xen/lib.h>
>>> +#include <xen/sched.h>
>>> +#include <asm/uaccess.h>
>>> +
>>> +# define GUARD UA_DROP
>>> +# define copy_to_guest_ll copy_to_unsafe_ll
>>> +# define copy_from_guest_ll copy_from_unsafe_ll
>>> +# undef __user
>>> +# define __user
>>> +
>>> +unsigned int copy_to_guest_ll(void __user *to, const void *from, unsigned int n)
>>> +{
>>> +    GUARD(unsigned dummy);
>>> +
>>> +    stac();
>>> +    asm_inline volatile (
>>> +        GUARD(
>>> +        "    guest_access_mask_ptr %[to], %q[scratch1], %q[scratch2]\n"
>>> +        )
>>> +        "1:  rep movsb\n"
>>> +        "2:\n"
>>> +        _ASM_EXTABLE(1b, 2b)
>>> +        : [cnt] "+c" (n), [to] "+D" (to), [from] "+S" (from)
>>> +          GUARD(, [scratch1] "=&r" (dummy), [scratch2] "=&r" (dummy))
>>> +        :: "memory" );
>>> +    clac();
>>> +
>>> +    return n;
>>> +}
>>> +
>>> +unsigned int copy_from_guest_ll(void *to, const void __user *from, unsigned int n)
>>> +{
>>> +    unsigned dummy;
>>> +
>>> +    stac();
>>> +    asm_inline volatile (
>>> +        GUARD(
>>> +        "    guest_access_mask_ptr %[from], %q[scratch1], %q[scratch2]\n"
>>> +        )
>>> +        "1:  rep movsb\n"
>>> +        "2:\n"
>>> +        ".section .fixup,\"ax\"\n"
>>> +        "6:  mov  %[cnt], %k[from]\n"
>>> +        "    xchg %%eax, %[aux]\n"
>>> +        "    xor  %%eax, %%eax\n"
>>> +        "    rep stosb\n"
>>> +        "    xchg %[aux], %%eax\n"
>>> +        "    mov  %k[from], %[cnt]\n"
>>> +        "    jmp 2b\n"
>>> +        ".previous\n"
>>> +        _ASM_EXTABLE(1b, 6b)
>>> +        : [cnt] "+c" (n), [to] "+D" (to), [from] "+S" (from),
>>> +          [aux] "=&r" (dummy)
>>> +          GUARD(, [scratch1] "=&r" (dummy), [scratch2] "=&r" (dummy))
>>> +        :: "memory" );
>>> +    clac();
>>> +
>>> +    return n;
>>> +}
>>
>> ... we don't want to have two instances of that code in the code base. One file
>> should #include the other, after putting in place suitable #define-s. Which
>> direction the #include should work I'm not entirely certain:
>> - pv/usercopy.c including usercopy.c means usercopy.c then ends up misnamed,
>> - usercopy.c including pv/usercopy.c means a "common" file includes a more
>>    specialized (PV-only) one.
> 
> Likely it would be best to build this into library members (ideally one per
> function), such that unused ones wouldn't even be pulled in by the linker. I
> meant to suggest to move to xen/arch/x86/lib/, but right now we only have
> xen/lib/x86/, where I don't think this would be a good fit. I've brought this
> up with the other x86 maintainers ...

I've seen your "x86 lib" patches. Hope they will move forward.
I'd be happy to resend on top of them.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Dec 02 11:56:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 11:56:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176166.1500697 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQOzU-0002N3-SU; Tue, 02 Dec 2025 11:56:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176166.1500697; Tue, 02 Dec 2025 11:56:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQOzU-0002Mw-O5; Tue, 02 Dec 2025 11:56:20 +0000
Received: by outflank-mailman (input) for mailman id 1176166;
 Tue, 02 Dec 2025 11:56:19 +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
 <SRS0=WL05=6I=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vQOzT-0002Mn-5x
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 11:56:19 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e884ac1b-cf75-11f0-9d1a-b5c5bf9af7f9;
 Tue, 02 Dec 2025 12:56:17 +0100 (CET)
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com (2603:10a6:20b:6::31)
 by GVXPR03MB10705.eurprd03.prod.outlook.com (2603:10a6:150:21f::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Tue, 2 Dec
 2025 11:56:14 +0000
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4]) by AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4%4]) with mapi id 15.20.9366.012; Tue, 2 Dec 2025
 11:56:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e884ac1b-cf75-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DVVPedy9Gmi11ceOzYoLHTs2wiIxpQthwX1dIaFXKt/h1aahnokgI5qFkfgXzpWuOb8gIusyNTdNqUaBTc41rTdi4g1sduT2+eO78tasHngluyLv/F/EPi9iI9Bgteqkt4mK6ofeUvx+4zpQOYdW0xUZX0akcRhF2eThvCuTbk1IrjfDTsrfyeuOrUCyiW32pWGKcqB7EjUETx/HgS72YfLrOXPoGoEU+Dr6/lb7Ouyp9ij3guRZsYJECTJn8Zy3gfmZacChd0YwhdYPfBb1I2YdMVxeBXb3/IKVdHRRRagrJ+Y1tmLKg9Z6v+vm8WsAXF0GGU1nWytw1lLyZY3MJw==
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=fDhCvBF771WX8M2TbfL5tSYNdS5sUMCDrzsKav3Su/M=;
 b=Iko+WIiHzjmAhOsN+7b/c4ylYuPZwrVxq/VMoW6m9O/BvIRtMX8U6p4WRUJPR1IqkItWdgIOapgoT2GH6JjQrX/EH7nfg73aSPc7/nvYU/6WeE7oYA+kjA346pj8Cu7Np0BRFRDtEL28UVtKjvZI+JzDaqgI5bFaOcUyeExjRucGEb0SLwzr+eTxfNj8FbL20ymcCT56jhwi+Yve9iguOsSwD4v49jkNET0TrUHy7pjwxH6qiZyHW2w2/SGKPUE3TCmlauFh36XpbpeMo2mvTovy0rTMUAO1rqJL5ujQNw4EelJIvGDXfaCAPn2bQaBfaBOpNKakgcDtUZqezliqZQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fDhCvBF771WX8M2TbfL5tSYNdS5sUMCDrzsKav3Su/M=;
 b=QXImPRCYxeEvyuCzSFSQYiqzAariYa/QFJI3wzO5t6JGQX2vSJm+8Ifn+1Gp4JXgJxZoJYgtrRxUpeMI1Nh0m3e07uRnxnBbAz32FNMqRyso7rw9h5Rn1MWTxdRn+BB+cf8/S3esJBFT7UIAebE0iDm3vP2SjJ1qoTfqPEm1sNtV9yCgryenmjF1cpMcqniRQOCM5zDVMriYmxOWz7Fxzg7pV7qnJdZYiCNYrXL5DuT0FJczv9gqKImKjPNAdD/XbajhLa4hu4cb60mJB8hrCphPzuIpqOLk2lIVnPkPhq2TZKOjxr6g51nU57wJ+zan6Dg5obSMH+XQ3lKSQFIj7A==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <d6e7f493-3765-4b10-8088-838b8d838cc2@epam.com>
Date: Tue, 2 Dec 2025 13:56:12 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/24] xen: consolidate cpuid library
To: "Penny, Zheng" <penny.zheng@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "Huang, Ray" <Ray.Huang@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-3-Penny.Zheng@amd.com>
 <64298088-489c-483c-97fa-62206f1a998c@epam.com>
 <DM4PR12MB845173E05DF89C8D57974AF1E1DBA@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <DM4PR12MB845173E05DF89C8D57974AF1E1DBA@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA1P291CA0015.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::13) To AM6PR03MB4600.eurprd03.prod.outlook.com
 (2603:10a6:20b:6::31)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM6PR03MB4600:EE_|GVXPR03MB10705:EE_
X-MS-Office365-Filtering-Correlation-Id: 259fc0ed-fc48-4604-4309-08de3199cad3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?aXBvSFlqODlvR2kyRUVqOXNxbnFjWkxNR3FVQnJna0JwL0hBaWVWNjdYeFNE?=
 =?utf-8?B?eS95K09XNWluNXFMUWFVT2FKaXluRURPRGp5NFE0RGVKM2Jsd1ZUZ0R3K3pO?=
 =?utf-8?B?V2RIWlVOTXdncjNHaGtUdGFvYTREYUdFL0JETFFSTjNLaE84R2NoVGZsQU9p?=
 =?utf-8?B?TUlxQXdsMURFaWZQSUU4MERRZnV5NkQ5VlhCVUNoaDJYd3JUaEpKdjFDd1p6?=
 =?utf-8?B?Zm13TUZPbmJSNGsvajBtNWxlQnhFWXVxYkJLYlRUNTdHbE52dWR6aDVacEI5?=
 =?utf-8?B?SmZNWlJSWUZmc3dsOFNkeFhBRHRwQ0VFVlhQMlp3eE1IUFdnVEJQdjkya3JG?=
 =?utf-8?B?eEZDYUxOSzQwVDZpSU9GVWY4ZWNFQ1duUmh4STIvWWZRMUVlQlByay8zN1pY?=
 =?utf-8?B?SE9DVStCdHpQNnk0MWk3K2gyOStEUjBJUEF4d0U2WU05aGVaSUtSZUR4RlRE?=
 =?utf-8?B?cGxpSFV2Sjg3elQ5TTh0L1hpK1lLcnltRitzaVRYQmlMWWV4UjZUZWdwU01V?=
 =?utf-8?B?dm1JZG1YMGYzdHBvekRHRSsrT3lUdlV5a0JHenlPUHdrNW9jWFVPcElrQW1a?=
 =?utf-8?B?MFdWWm4wWHBLcUUrT0pWZ0g0VnJUK3JiREZOUVZXZUE5TVAvdzl5bVBxMTBL?=
 =?utf-8?B?Q2FVVkptT0MrRmpaanlKMGI1ZGJ6MVJiNUR6dk9uaEZlMDYrT1pOOE8xOVlG?=
 =?utf-8?B?Q0dVNDRIYTQwYlVOZk55TjVoRUptSEVpNDAxa2J5TVIzV3NKSUo2RGV2ck9x?=
 =?utf-8?B?UzhDTEZ3Q1Q5RUdtTytlSWdua1M1UWZtbVRMK1puL0dTTEtYWVlYNjBQSGd4?=
 =?utf-8?B?TTRWWkFHb1lRaXAxQWJ1S3krOGFjZmhMNDd2dGxRZlloN0YxanR0NFk3R2RB?=
 =?utf-8?B?TTRDUlQvcFJuQkVXdHd5WTJCY3VEaVVHWm03UG5xSVVXVFphbzBEMFFMZjRm?=
 =?utf-8?B?dXVmT3VGUEV5ZWI0bkV0WWg3QTZ1UUpFYWdVVGErNzZsYUVZL21FSU1GMXpM?=
 =?utf-8?B?TDhKV3czN0lHcTlKMkZFVExnRjJFOXZFdEVQSUtZaTc5QVEzTmhLQ1dkbUx0?=
 =?utf-8?B?TkxEblRaczNIZU05M0R0dDNoNFRCaTF5bWtYNkFkK0tGeFlIOUJpV2lkNU9L?=
 =?utf-8?B?dW95clNxanFCdVlvdjgwMlVQUDlZTFQ4elFHRmFQc3hzTm0xVlNGQVhHL21I?=
 =?utf-8?B?TUYvQUllYVlWVGRtaHd2dFR1YmNybGtwY1dhMFlTVjhVQ3YzZitXc0dSR2ta?=
 =?utf-8?B?T1kzMFo3NGprU1V2K3FsZmdFVVdKeGVtWnpna1o1bnNZQk1XVDFtTGxKZU1s?=
 =?utf-8?B?ejJSM0tMcEh6bjhYN0R2RlNKUmJFYWxqczVJSjEyTE9Cc2RZUFVXaWlZOTIr?=
 =?utf-8?B?QytmWXNqVFJzbUhadG5vNll3R3R6ak5PV1c3SCtyR3IwN0VaNnUwUkhoY0ZE?=
 =?utf-8?B?aGxVclRxWk96TXU2K0E2Y3QwNjI5OXU2TEcrS2lUdkNlb3BYSEVJL0JnVElx?=
 =?utf-8?B?ODIyTDZIZmI4QTNSekRWMy9MMEk4cDh3cVdqUWZNdUNqNml0MHhSbnQ2dVZD?=
 =?utf-8?B?cTFianh6K3phRUJkbTdKT1hnYUJROU5namcyUmhVN3dmMHY1YXJqc285QXZz?=
 =?utf-8?B?MjQvV05nNU1heVFWRHgremUzN2lJNU5TMG95S0dSNENwMVZOTUhQUFFKRXFx?=
 =?utf-8?B?R2tuRVJtMG5JZVpxMWR2ZnZXd25ZUUdOUEM3djVDK3lzbW9rTjJST0tGeldB?=
 =?utf-8?B?dWFsa2dFaDNFRDk0cHoxcnNVS3hxODcxMHdXNDl2VWMvOXI3cDNKc0dEQzRa?=
 =?utf-8?B?NHY4NDBTUm9NNHd4U2kxMEF5ejV1V01jTWh4aU5XcUNpL21lb3czRFkrWDVv?=
 =?utf-8?B?NjJxenVUM2R2WUtTV21ENDVxWWJrOGNIVW0yNjIrbHlaT21rdTc1UVRjOGJO?=
 =?utf-8?Q?1ejagr5XLnibwDa8XypUlwklH5jfvvZc?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR03MB4600.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZlZkM08rS3p2cWpBbzl2byswZGYrUDYxcWprYUViSi9EcGhhZVNkZ0VDZGdS?=
 =?utf-8?B?akxXVGg4bEhXcXd6OFZLaVMycXJJSXhXS2NoZVVMWTBhS01VdjY5RlNCN2lC?=
 =?utf-8?B?TUllR2ZPNEIyT0U3YjlzVlJIbE85Q3Nzc21CaW1zbVBVb3ludDVsMXYwNHNX?=
 =?utf-8?B?NXMvRXRTRDQ1SWx5L1o5V3JvU0FQTXV4RmdiY1ByR3lXa0tQcmF0NC80Vmtk?=
 =?utf-8?B?OWUzcmNLc3RUVmJyZGxhMm55clVyTGozRE5oODQyMWhXSWpMZm5ua2crVy9D?=
 =?utf-8?B?TEIxZTNxb21QRzdzOTBtTkFuWVBlazlqell5Mk1LWUYxekVKekZYb3RxNi9I?=
 =?utf-8?B?Q2g4NkY0a2ZCL0ttQmNCLzllQ3c4NXJGeHpEdGlaTE03NCtlemF1aisxWjRG?=
 =?utf-8?B?UXMzcm1rUURBbXlzQ29mcVZLOTJXakZRVjJKeGM2dUswUG12YTFPZ3IyWUJh?=
 =?utf-8?B?MncwNVptTzRyNGltUXJpRGFPUDc3eEIweTdBeGpzMW1Hd2xrQzhlRUpISmVK?=
 =?utf-8?B?blg3SisvTyszT09rOGRHM3hpb2I4bjJUc3krMFZyK0M0WVgwTU40R29KSFJY?=
 =?utf-8?B?UGJOeENJY0NaSlZmZW5UbURzVTJLZWlZQTRtdG91YjdOaWdsVWc1NDQzaW5t?=
 =?utf-8?B?cmV0V0ZPVWZ4eFErdTJVY0t2QUtZa3k2VWdrYnJVem04aHpRVzZVclpsRnBD?=
 =?utf-8?B?NElrcHBHejJsTVJUTlJBczF3dElTZVdrOGxBVmZMUXVFdmF6SkZmb0MxOTNx?=
 =?utf-8?B?NzdDNEtsamI2UjVCejhkN2x5STBkc0ZXZEMyMFR1OVFYNzVocFBoOTBGOUVM?=
 =?utf-8?B?TEFMK2pOYndXaU12WXhhYkZLZmZyaWNNOFVBK2Q4OStwcXQ0bVJUN0ZHSDky?=
 =?utf-8?B?aEd1bnRtMFVNMVBlUE1DRGpuMklWczMvNEJlcCtISHc1WUtKbHFTSEN4TEN4?=
 =?utf-8?B?Z1YrMFpBMEU4TzBkZU9WenAwRVdsRnYxeU5VblNabWlUWnV3dWNGbjNOYVJk?=
 =?utf-8?B?eURNZHpGS05MRjVOaTZHU0k1d25lVTh4ME4wN2ZobHlpUHVVdDhkWCtUQWor?=
 =?utf-8?B?WlBMMzJiMUJNR1pvWVVmZnFEZTZCWVQ3SnIzRVJ0clNWaUIvVWZ1ZEwyT2x3?=
 =?utf-8?B?N3RTZThkZTRFZWN5U3VCRVlsbDgybWhISjBybml6TysyUjl5RzhrUy9lSkQw?=
 =?utf-8?B?cGJBSXYyU3Y0c0dxRllRaUNnSFlOS2NZUEJtSzMzenBzZFFJT09LNTcwVURt?=
 =?utf-8?B?ZUhQVi9Udk95VjRsSVBXOVpsd0RDUXF5WjRvcFB5MHpVUWV3TXZPS2dZNGFP?=
 =?utf-8?B?Y2lna0VxQVR6bVRrZmRzNEhEUDBaZXpuWGlnN01BZk1uSm5pdXN6UThPRUZh?=
 =?utf-8?B?dEZySjNYRzVJYTM0MWlRU0ptY2w0Q2gyaG1ZK2pUcjVRdk1kdlB1R2RUT3R3?=
 =?utf-8?B?T1dqTnRwdzRFS3BKU2MrT2lXS3hZUHdXb1ZNTmMzNnRPV29vVmg4dGdlZmF6?=
 =?utf-8?B?a3JkZlJQU3VHQ1dFdHZCYUtHU2oxaGpoZTBYWmoxRjU5bEo1aDA4ZHNVWmM5?=
 =?utf-8?B?eFUvRXhURjF2WFl1Y0V5ODluQlZPOGFrN2J3V1FsWmdlRmwzMmlpNHlEQXlB?=
 =?utf-8?B?dU9PMXo2d1lFMWIzKzhzTGdOVHlpeXpFVEJKV3Nqa2NXU2FiN2c2ckcrand0?=
 =?utf-8?B?Y2tpTndGcUhhN2l2VStjTS9kbWVjRVJMWVpTRGFacXZKS2d4dWUxdEtIRTY1?=
 =?utf-8?B?dkxFYmdaY1paVWVRVGprUjYvNzF0ZENVeGxzdGIvNUEvUmF3eldPNkQ5UTkv?=
 =?utf-8?B?NHJnVUpoQ0VldnNMcDFzQURDMXFkYVoxd01Id0xYaElWdWNjNlV3Qy82OURi?=
 =?utf-8?B?amd3bDU0TisyVVpnanlQNFVDUUNlOHN5RStRY3ZmTFdKTnMrMmZ6Qmh5ZkFL?=
 =?utf-8?B?TlRRNDBZSVcyc0NwZWNzK0tnQlh6RVo0eVBsRWdGZnMvb20xK0lYMTQvSkd6?=
 =?utf-8?B?TmxyTFJ1aEJCMHNwS3FhbWZkOTZBSmVMVkxaUlJwdDFHN3lPU2NISytyV0FG?=
 =?utf-8?B?TFptM3YxS1doWndpbDJBNkUyZWFSRi9Rak5iRXdnOHJtRXFOSlo0RFdhcHdv?=
 =?utf-8?B?UjFDNW1JYUpSN3RXbGJqUnVnS2g5L0R1NDBjZkpXMlljck9EbXJ5Znc4QjFr?=
 =?utf-8?B?a3c9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 259fc0ed-fc48-4604-4309-08de3199cad3
X-MS-Exchange-CrossTenant-AuthSource: AM6PR03MB4600.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2025 11:56:13.6895
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: InDUkJbfD4t1FTQKXGYWgFpS1lgPxU4/vZxxplnZ/SWOjycBWg9+UfDcV7/LhEte5GV5B/Wx2hYHx+X/YOfcwdzV3p2s4joVF8pB0FGM65U=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB10705



On 01.12.25 08:34, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>> Sent: Thursday, November 27, 2025 5:45 AM
>> To: Penny, Zheng <penny.zheng@amd.com>; xen-devel@lists.xenproject.org
>> Cc: Huang, Ray <Ray.Huang@amd.com>; Jan Beulich <jbeulich@suse.com>;
>> Andrew Cooper <andrew.cooper3@citrix.com>; Roger Pau Monné
>> <roger.pau@citrix.com>; Anthony PERARD <anthony.perard@vates.tech>; Juergen
>> Gross <jgross@suse.com>
>> Subject: Re: [PATCH v4 02/24] xen: consolidate cpuid library
>>
>>
>>
>> On 21.11.25 12:57, Penny Zheng wrote:
>>> There are some cpuid library functions only referenced in
>>> XEN_DOMCTL_get{,set}_cpu_policy-case, and shall be wrapped with
>>> CONFIG_MGMT_HYPERCALLS later, otherwise they will become unreachable
>>> when MGMT_HYPERCALLS=n, and hence violate Misra 2.1
>>> - x86_cpu_policy_clear_out_of_range_leaves
>>>     - zero_leaves
>>> - x86_cpuid_copy_to_buffer
>>>     - copy_leaf_to_buffer
>>> - x86_cpuid_copy_from_buffer
>>> We seperate these functions by moving other functions to a new file
>>> named cpuid-generic.c, and modify related Makefile-s to retain same behavior.
>>>
>>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
>>> ---
>>> v3 -> v4:
>>> - new commit
>>> ---
>>>    tools/fuzz/cpu-policy/Makefile               |   2 +-
>>>    tools/fuzz/x86_instruction_emulator/Makefile |  10 +-
>>>    tools/libs/guest/Makefile.common             |   2 +-
>>>    tools/tests/cpu-policy/Makefile              |   2 +-
>>>    tools/tests/x86_emulator/Makefile            |   2 +-
>>>    xen/lib/x86/Makefile                         |   1 +
>>>    xen/lib/x86/cpuid-generic.c                  | 273 +++++++++++++++++++
>>>    xen/lib/x86/cpuid.c                          | 260 ------------------
>>>    8 files changed, 283 insertions(+), 269 deletions(-)
>>>    create mode 100644 xen/lib/x86/cpuid-generic.c
>>
>> It seems this patch is not required prerequisite, at least definitely not for Patch 3.
>>
> 
> It is the pre-requisite for commit " xen/x86: wrap x86-specific domctl-op with CONFIG_MGMT_HYPERCALLS ", We want to guard new cpuid.o with MGMT_HYPERCALLS there. Without the split, fwis, I could not think a better way to avoid functions like x86_cpuid_copy_to{,from}_buffer becoming unreachable when MGMT_HYPERCALLS=n.

I think, confusion here is that this patch:
- new
- placed before patch 3
which introduces false assumption that all patches after it are dependent  on it.
Effectively blocking possible merge of Patch 3, for example.

Could it be moved up in this series before patch you've mentioned?

> 
>> In general, i think it can be removed from this series and sent as follow up patch.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Dec 02 13:16:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 13:16:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176187.1500706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQQF3-00044M-4B; Tue, 02 Dec 2025 13:16:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176187.1500706; Tue, 02 Dec 2025 13:16:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQQF3-00044F-1K; Tue, 02 Dec 2025 13:16:29 +0000
Received: by outflank-mailman (input) for mailman id 1176187;
 Tue, 02 Dec 2025 13:16:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YqM6=6I=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vQQF1-000449-M2
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 13:16:27 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 174e72dd-cf81-11f0-980a-7dc792cee155;
 Tue, 02 Dec 2025 14:16:20 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SN7PR03MB7155.namprd03.prod.outlook.com (2603:10b6:806:359::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Tue, 2 Dec
 2025 13:16:16 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.003; Tue, 2 Dec 2025
 13:16:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 174e72dd-cf81-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=McADmejGljUx/jZ+vNblUVqz6eClilnfXTKDrs4R0e91PAPxjpw1UW3S6d6AAnQusPtlwQh10ky6P5CRcXv1nh5hIELywjvoJO5/fmHV2frBjfuVXecwkw+JVXr3t8pehwqwrgWsMRnJ0DpKJWCCNcPw4MsyzVSRSMkU6CAJW9mzthr0HE/x8C1a6PbgBQIATGXKL8/onG1suJAxs2XRa38bhwOT9kytY00SHHmpuZEdz+hPJ6k6vL2xdzerTxANak6jL+kqKf5IjkyVXAzYLxEj2bgtub5i+G+hI+q2u6vU3I9S5TcOF20SqC2v2C/FXfP8HvScjljMLHT8xLzWwA==
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=jK7yXRp7vkzg0WUZLiNa36Oa32vH2foT2YQxDmSDsVc=;
 b=bwPB62P8H5LI1yPryNNnT/qWLwtZnB6O6rc84HaYahgx8v0cFazoGGlU4GlnmgrU1xE1fA0eO8KhCuEQPYTs0KqUAIiN79DEYUFhidEhAI9WM1ZViJv1bIFhXwG/pdx9YUll3U7i18nH+0sDemyhRdguSEdTuNpzOm5HlMrpw7lUWdP7qqSxkl0ZHMekB9uXIQP6Zyc/ZcEqA0ngsTkSnljix/oVoOE1P5LQAPROQZOV3GasRKKQ4G5AhB3B7G7lETU8eiWFzABBfjXW9BAly+5FPEuUl/fg170mIPBerrvmswvaoibQbL1V9IRtvUI1gX0QFih8wF7B3mcBIFOYyw==
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=jK7yXRp7vkzg0WUZLiNa36Oa32vH2foT2YQxDmSDsVc=;
 b=AWcwGqSQ4cU1gxhsJ7MaQejhT7cbf7fnVY2/G1QPiOYyxiOp87aI+o9T1YGUfx0dq9uUs/q4cr1W7WW7nC6m5PqIVgecbR09jwSL2VWCBUVr/1iDLRjwYlaOIovU9qq15xD3VSv/T9xDCXoMlx2dN27k/KpjfTFmcP0YWpBY+Uo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <43d27d63-40e3-422f-b902-6b8203c18e98@citrix.com>
Date: Tue, 2 Dec 2025 13:16:13 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] x86/hvm: Unilaterally inject #UD for unknown VMExits
To: Jan Beulich <jbeulich@suse.com>
References: <20251128174735.1238055-1-andrew.cooper3@citrix.com>
 <796dccdb-0cc4-4904-b776-d651ebb012c2@suse.com>
 <331118cc-9c2d-49dc-aa5c-b6cd0d4e6021@citrix.com>
 <76873588-cb85-447a-a59f-392b05327cdb@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <76873588-cb85-447a-a59f-392b05327cdb@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0149.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:188::10) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SN7PR03MB7155:EE_
X-MS-Office365-Filtering-Correlation-Id: e00f7df3-8131-4ff8-6894-08de31a4f93b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YVdsd0JaYU01TXo2QUxNYUdwN00rN1ZlQ0wrb1d1U1FCREJ3Q0VBYWIySTV2?=
 =?utf-8?B?NnFPZHVvOGJmWmpDR1JReGdncGt0UlQ1S3Fkb216R3YwUks2ZTYxUmFBMWJl?=
 =?utf-8?B?aG9rVUdIaG8vL2RtNEh0V0RlUUFXN3NFLzZVYlBRUHRXWkljNHR5ZWl6RGM4?=
 =?utf-8?B?ckJSVjNtcXR6TEh0YTNOUHBkSnhnRW0vNjRkcHF4TmxJekhobmJuRGpPSGNF?=
 =?utf-8?B?NW94cjN1YVNqQlJYOUgyeU1UNCtDdys0WXMrRk93RjZGS1V6ZXp2Vi9VbU5M?=
 =?utf-8?B?NmNhUHhxTk13YkZzTlBQYlZwSW9vNDhSOGFTWFVBWE5tMmhSRndGKzdLaTRZ?=
 =?utf-8?B?TDlSaGhtdVM1OWpkeGZRdDNlVjE4RUxoNExoUnJqRDBFRS9iWmI4c3JmUXhO?=
 =?utf-8?B?SC94YlRlREFCZHJQdjJRM2xrL0taYkdyL2xVR01GcFJVRkRVY0kxaitVbXp0?=
 =?utf-8?B?SjBESW5JMUpvakgzUnNtcEJWSUtQaWV5bkl2T1R6NmVsYmE2WGhGQmFhTXE5?=
 =?utf-8?B?ZnFoV0tuSUZvWWRPUVFML3FXNUZ1V1ljWHJGQ2g3eG1qYUZNa3hYOU5DTjd1?=
 =?utf-8?B?bjVtYy9UYUpKazkxZkk5ckYrMVRhZU01OU5DN3F3aGplYmNWOXVHSXhOc2Nx?=
 =?utf-8?B?M0wwcE5lRGxCYW5zeDdEUEhyZDg2VE9JejBPZWQybTk5Zm11N0s2R2NjS1VC?=
 =?utf-8?B?dU1vVTBWbHZLNkVQS1djOStvUFBPOGtJK1J1ZHBvVnpHeEpOQUM5TG4wSEVO?=
 =?utf-8?B?cWJIWHhlTU5OTnZRZ1Y0K0U0bDBUQ1RTenU4Z1B3dmg3eVViWXovNFFHUnBG?=
 =?utf-8?B?ajMrRlNqQWROTnZQQ1JiOHBWZFNSWUNzaU5MaDJGYjIrUmVYajBrQnlBc1Vp?=
 =?utf-8?B?anBQYVo1S2R5MEhZRVhZK1hIc0JSdWJCVEk5aHFZVEJlM3Y3ZXdTNE5oZkRU?=
 =?utf-8?B?VmNEZFl3aUNVdFBSUjQ2U3F3Ti9odGw4VXRiK1ltTVkxTlMxLzZpdTg0Vk1C?=
 =?utf-8?B?MDJhUU5IbDZMM2w0RGw0N0wraW5QZXdQYzJ6cFlhdHdnMkJmR201UVFRNGE2?=
 =?utf-8?B?T1BvUlJrZ3I1TW9wRjJUNnZIS3I4QzdXT1ZuSnVOaVhvVk84akN0bGhoMVFY?=
 =?utf-8?B?NVpWMzRuYkwwM0RCNHV0V3VBV1BOZU4wbEVaSlhvTGFNendHK0ZqV0V4bFJz?=
 =?utf-8?B?dUpITUFuM1Z1TC94YmhDTXZEZmcrK0JCL3lwdTE2aWk5SlBTVDFQOFlGWmth?=
 =?utf-8?B?TlVLSk9McHRvMkRUZnV3VU1ZMktIcDkwbUZCS1Nmb0owWnFpTzhLWkY2aVhS?=
 =?utf-8?B?eUtLcTFmaExIVE1EMGs5NEovK1RVcHA0N2lQLysvNXhWbkE0SHpueE9hTnUr?=
 =?utf-8?B?YnFWVno3dVBwVnFpcUtQOVZzR0llZmxXYmlEckpWbUE5anNqRUNsbWUweDMv?=
 =?utf-8?B?QUdSV3BOMWJQV3BTYkloMkhwc1hDbzlWWkxxTDlJZUZ0MkhzbW1nVTBaL20w?=
 =?utf-8?B?VG5rS05oaG52TFY3NUZ3Y0dJaXdUZmlaajZVOXlKbTNVb2FsdHhjcFZBRDkz?=
 =?utf-8?B?cUJyeWpHditLTkR4SXB4bmZDb2phNm52aVJhaDhaSEZneXFMZ1NTU3ZpWDdT?=
 =?utf-8?B?RDFONlZXTWNYazU2YmsxZ205c2JhUWpjR1FaR1p1T3FIWUZ0aU1oaEs2YUgw?=
 =?utf-8?B?UUx3dVhWeGFzcHFBSnBMclEvb2VYTGR3YTB1aDZzc0VqZ3VnQStCZlFjVlV2?=
 =?utf-8?B?OTRIaDBqSEpvR2RwVWRBd0xtL2creGVZSTVYYVJJellvNDlCbnlBZG5wcUVh?=
 =?utf-8?B?QzBlV1d2WlZVSDROSlJIb2pKM09KZHl5SUVPMktYbGkxRXFBVCtHeFFSdFNW?=
 =?utf-8?B?cmJWZXpXcmdTaFFDaENseDc1VjVwUXV2bnRWWHBkTWJkU3BLQ3ZzNmhtdHZn?=
 =?utf-8?Q?BKRlRC3tPKLqVIh+nNHSdFM43C6jx3lc?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SDdxUjVwVmNJQnE4WGpJbFYyNG8rM0o4TS81M2tZVXo2c2JGZ2x5WkNDdDRN?=
 =?utf-8?B?cGRLUUdGcVZBektSL25PSXBTMEwydU01czQ1QkM4UWsrOVJxeXlLdkNraW9t?=
 =?utf-8?B?aFhqbHpja2dpVjAwQnloTDNsTWNVc1grUStzZkFYLzBvME0rSG55aktGdmV3?=
 =?utf-8?B?MW84NWs2cTJFbmdEVXVDeEcva1pRSW8zWCtIWjdaUmQ1MGFKWThEL1JqcHcr?=
 =?utf-8?B?Njl0Rmlwcy9VcFYyUFp6aHU5bzhmaGFFcTRLbUtRSVVram9hWkUvTGxxY0VJ?=
 =?utf-8?B?VGtkeUtkcnZIR0NycWxtQ0k5c01BVnlaQVluc1RVNFNKZlZlYkN4aGRHbmRp?=
 =?utf-8?B?Um5acm5kZVoyNk9NRHovTlBRTWpjRTR3NWR6ZXRhc0doR1JIeXAxOStidUtE?=
 =?utf-8?B?dnlCZFEwYk9kYXh5M3M0RUV4WTBweXQ3WlRmZlRZOVlJNkZaYlNWZEkwa2ZJ?=
 =?utf-8?B?YkZnMzd6ZVJNNm9xZkM4Y2lxckVveElrUzNJK0x2YkU2bVg3SnlxNlBVbW5B?=
 =?utf-8?B?aldMaHFNdkZ4c3VYYzhZMVhpSFNqUnNVZXFjSUJ1Z1BleE1CTmpwY0RvYzFp?=
 =?utf-8?B?MDhDVjVneUlTSi9oMG1XMERIdDlGQ3NGRzhsZHorOHNTZWlEVmM5UEw5a2Rx?=
 =?utf-8?B?b3p6akhKeFUxdXZwZ2xiUXN4bGRRYmMyNXNSb3Q1bDlnZG9mWTNoRTNMQ2d3?=
 =?utf-8?B?NGRiUFYyNVY0OVM3L3VrYTh0eVlGK0hBZURSbDZDWStDNUQybElBdTVYS0Ev?=
 =?utf-8?B?Q0ZpUmYvTFBiRmt2aXZOYkRxQUVkYnNaQUNXV0ZCOGptL054b2MzaGZ0RzJU?=
 =?utf-8?B?ZWV0QVZxN1VsLzQ5R1NqMVF3SEV4YWtWc0VFQ3FSa1ZEdld0MHlJdE9KRjFI?=
 =?utf-8?B?WHJibmlMTHJ1ZTNESVVNbU1FWkpUSEVLaGVKTkVCTGIwekhGR0tDV3ZNYStv?=
 =?utf-8?B?QWlTM0hQZFRJSlF6aE1LM0ZES2FSc2pvMzFLb2FBKzBpeVJjOTFwK3Q5NDhx?=
 =?utf-8?B?NXNQQkZhM25NbnhiK0hybHdzRUZtNWNmL2hmbDJYcjNEdmtSZjZxUkkwZ2FI?=
 =?utf-8?B?V3hKemVaMDAzUTZ6Uk5TWjJjc2QyeE5OR0J1b21UZ3Nxa2VmcmpXb0VldTlo?=
 =?utf-8?B?ZzZOTGwzbXJGTkNWRWRUOXdzRDgra0pCR3RWZ1Y0bVFQdzk1cUF4bWVRUnpi?=
 =?utf-8?B?ZS9NWDV6cGRsbitTbDVudjB6aHR6Q3JNcGcra0RLNlpjd3k0N3VuR3cxYW9h?=
 =?utf-8?B?TU1WcjBKUkxBNWVhc0ptWTR5Nk51WkxkcVI1eGV5cGRxMlRzTE1xQzVLbXVi?=
 =?utf-8?B?WTN3R2hnenQvY3VPNFpFbDZXdmVCOVp5V2ZIZXdKT3NabVpSd09PUHBRN01C?=
 =?utf-8?B?bDZ4SDZDZjFpSEl6M3NIV1FjN0duZW04Z3E5a3dGS2ZUbnlJb3ZHK3k5M2x3?=
 =?utf-8?B?SWFoTEVEdWs4NXJzbUlNV2RUSzg1SkJzZWZmU0NUWnduTW8yVENKaVR6bXFt?=
 =?utf-8?B?R1RKS2NnWkN2eUdRWm81Q1dFT3dIeW1DaENQTnRZMVhFcXd2VzNGRWtUNXAr?=
 =?utf-8?B?VGdoMmpPcnJaUVVaZ3dFZitxNlNQckQ2Q09JSytJWUdnd282TUVTVlN4b0x4?=
 =?utf-8?B?dnVuaHpVN3NHN2dBbTByaFRXRVJYUS9TK21ROE5Oa3F0aWVwQ2JkaThjR0Ir?=
 =?utf-8?B?NHZFL3RTam5ZUFI5N043L3pTOGx6ZVJQTXNObHRQUlVqL0lvY2NoTktKSjF5?=
 =?utf-8?B?clVxNUlRL3lJdFE0OGdQOHpVUzMwb0JsMWQxc29Mc2pvMGlkQ0tqRHJXOTRo?=
 =?utf-8?B?Ty9nb2ltdlZNNWtxL05teTF1eXZIRkpUYmR5MUFQb0wyMUtHZFMvblhwTWE1?=
 =?utf-8?B?RlJqaWxXazh0cllWaCtFNjc2eEE4VnVMVStJOTFwZkxRak5QVDhoZFZzeE41?=
 =?utf-8?B?aWdST1J2Q3ZqVHVxUWJmYjdjQVN5ZzlIaVNzWHp5YVV1Qmg5UEU0OXVYREdY?=
 =?utf-8?B?SkNjN2FDaDk4NUVMVVVwbnRTa2pPM3NQeTgvR3dLc3lsRkFQV3BLRThMUy85?=
 =?utf-8?B?TERnNHg5Uk5oMjRZcDA4Zkt6bTZkVUJtM1NiQVAwU1dpQjltd3gyQlpiVDVw?=
 =?utf-8?B?Qm51U0dESkZpdkM2UDNPYldiOS81M3FYMnpoL3hYd1MwbkZKYlp4eGZmNktq?=
 =?utf-8?B?bFE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e00f7df3-8131-4ff8-6894-08de31a4f93b
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2025 13:16:15.9790
 (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: PSvEHlE3z2HVw/JJC+j9TwEegyHTxZeVJt7xgaQ9aPSovSc2oAk0u+ZCB9qrlOtl+wzjnSmi84SPmS6jhehuhVQYOZYTOWDzquyo+JN8RJ4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR03MB7155

On 02/12/2025 8:33 am, Jan Beulich wrote:
> On 01.12.2025 17:36, Andrew Cooper wrote:
>> On 01/12/2025 9:02 am, Jan Beulich wrote:
>>> On 28.11.2025 18:47, Andrew Cooper wrote:
>>>> While we do this for unknown user mode exits, crashing for supervisor mode
>>>> exits is unhelpful.  Intel in particular expect the unknown case to be #UD
>>>> because they do introduce new instructions with new VMEXIT_* codes without
>>>> other enablement controls.  e.g. MSRLIST, USER_MSR, MSR_IMM, but AMD have
>>>> RDPRU and SKINIT as examples too.
>>> USER-MSR has MSR_USER_MSR_CTL, so doesn't fully fit here? (It's still not us
>>> to directly control exposure of the insns, but an OS would need to use the
>>> MSR to do so, and hence we need to properly handle writes to that MSR for
>>> the respective exits to become possible.)
>> Oh yes, and the #GP from failing the MSR_USER_MSR_CTL check take
>> priority over the intercept.
>>
>>> MSRLIST has a dedicated exec control, so whether the exits can occur is
>>> under our control.
>> Ah ok.
>>
>>
>>> RDPRU and SKINIT have dedicated intercepts, without use of which the
>>> respective exit can't occur aiui.
>> Correct, but note how we intercept them unconditionally?
>>
>> MONITOR, MWAIT and SKINIT are for Xen's safety, because otherwise the
>> instructions would execute normally in guest context.
>>
>> RDPRU is to block access to the perf counters, because a guest has no
>> legitimate use for them.
>>
>> There are no enablement controls for these instructions.  They're always
>> guest-available (on capable hardware) if not intercepted.
> For our purposes, the intercept is the enable 

No - very critically not.

If we were to not intercept SKINIT, the guest could INIT the logical
processor (into a weird protected mode, rather than real mode), and
reset the DRTM PCRs in the TPM.

This is an example of a capability which *should* have had an enable
(FamFh Rev F and G and Fam10h Rev B had SVM but not SKINIT) but didn't.

It is always available in guest mode on capable hardware, and Xen *must*
intercept SKINIT to keep control of the system.

The absence of an enable should also have had a CVE but I can't locate one.

It turns out to be the same for MONITOR, which appeared in Fam10h Rev B
and has no enable.

So actually, AMD is full of examples where we ought to have a CPU
support policy...


> (i.e. we disable their use
> by injecting #UD if the intercept triggers). IOW I think those are
> slightly different in any event, in not really being "unknown". I don't
> mind their mentioning, but I think the distinction wants to at least be
> expressed somehow.
>
>>>> @@ -3083,8 +3067,13 @@ void asmlinkage svm_vmexit_handler(void)
>>>>          gprintk(XENLOG_ERR, "Unexpected vmexit: reason %#"PRIx64", "
>>>>                  "exitinfo1 %#"PRIx64", exitinfo2 %#"PRIx64"\n",
>>>>                  exit_reason, vmcb->exitinfo1, vmcb->exitinfo2);
>>>> -    crash_or_fault:
>>>> -        svm_crash_or_fault(v);
>>>> +        fallthrough;
>>>> +    case VMEXIT_MONITOR:
>>>> +    case VMEXIT_MWAIT:
>>>> +    case VMEXIT_SKINIT:
>>>> +    case VMEXIT_RDPRU:
>>>> +    inject_ud:
>>>> +        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
>>>>          break;
>>>>      }
>>>>  
>>> Should this be brought more in line with respective VMX code (kept) below,
>>> in never bypassing the gprintk() by any of the case labels? Basically
>>> meaning that the case labels you move could simply be dropped for the time
>>> being (or else, like the INVCPID one visible in context below, would want
>>> re-inserting a few lines earlier).
>> As said, they're all reachable by guests on capable hardware.
>>
>> I could add a /* Not implemented for guests */ if that would make it
>> clearer?
> Yes, ideally with "yet" also added - recall I've been sitting on an RDPRU
> emulator patch, awaiting you to fulfill your promise of sorting the CPUID
> side of things there.
>
>> But, we don't want the printk().  We know the labels are reachable, and
>> #UD is the right action.
> Hmm, yes, with what you have said further up I think I agree. Yet then my
> question goes the other way around: Do we want the log message for the
> (at least) two known exits in VMX, which are grouped with the default:
> label?

The preemption timer and INVPCID?

Those have explicit enables and are either not configured (preemption
timer, and INVPCID with Shadow), or enabled and not intercepted (INVPCID
on capable hardware and with HAP).

Getting the VMExit is either a configuration error in Xen, or a
hardware/VMM violation of the VT-x spec.

I suppose we probably want to make those into explicit domain crashes.

> IOW I'm still puzzled by the asymmetry between SVM and VMX in this regard.

VT-x and SVM are different in almost every regard.  I find it surprising
how well they mange to approximate a working system given the differences.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 02 13:23:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 13:23:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176198.1500715 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQQLg-0005gg-Ov; Tue, 02 Dec 2025 13:23:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176198.1500715; Tue, 02 Dec 2025 13:23:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQQLg-0005gZ-MR; Tue, 02 Dec 2025 13:23:20 +0000
Received: by outflank-mailman (input) for mailman id 1176198;
 Tue, 02 Dec 2025 13:23:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JGiA=6I=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vQQLe-0005gT-Pu
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 13:23:18 +0000
Received: from mail-ot1-x32a.google.com (mail-ot1-x32a.google.com
 [2607:f8b0:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0ebf9e63-cf82-11f0-980a-7dc792cee155;
 Tue, 02 Dec 2025 14:23:15 +0100 (CET)
Received: by mail-ot1-x32a.google.com with SMTP id
 46e09a7af769-7c704bf2d9eso2715084a34.0
 for <xen-devel@lists.xenproject.org>; Tue, 02 Dec 2025 05:23:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ebf9e63-cf82-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764681794; x=1765286594; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dc0GDNGat/xXk0kGngXyU5po9TKeJxjeediOvdyxPXw=;
        b=Jh1a72vioXxxWkVuYbWsEiqDZBvgKsEkxbw9XWyIDB+/w2IpVsmBdIBqblN5uw07Ac
         L12xwEohPjLgk+PcavswD1F5e8xU+WFg1tFYNr/OMMVPRi1W5hh4rPzZwQUDdzdU0yDW
         GJSj0crJcNYecepbxyAbOwviH7dj+CjZBqyr8G1fUtmlKstJ8jc+eUWPGRTtSbI6GwdI
         lx1lGGA1ElpUai0Fh0Ikmos+lOPjqv8FcgwEKjGIAWrbASuRx4AwHjz7Nyjr73KFUb9n
         0/vZy0O6bNWy6+rYEbAvuPwXPbaJY2H60KbZEYtcmd12MG5TbQT0HkZmkGymu8vBiy35
         z71Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764681794; x=1765286594;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=dc0GDNGat/xXk0kGngXyU5po9TKeJxjeediOvdyxPXw=;
        b=l1qB6SNlhIgfnE24TFDTP0f6i/Ea0DQYEA3B2a4VuYlvgNM5lzK8HLzL48oqPGdvCi
         E9pTMdnEXwaDFF06q6NKjsQB7ETk5JGP5poKVNWT1sVNsAZvKhr+dn4pgm7nMccPBCh1
         pTTPGc68QaKivHGsDwhdcLxg3sNvEGBoCAuPBI2fz0lTQ0E5M/PjAEc/22lTBDsaHHGo
         e+coY6jiyIdk4AiqWREZhVMciemLIEqHBPzYl7gxM7Ixjn9i8hII56YtFutPNVnJT6J+
         wBSAgitIPuJrbBnRxwQ6fY1sElSDLHAX+omvI6z4P33BPYHud3f9oiaCYGakm5eY7HeK
         Nvqg==
X-Gm-Message-State: AOJu0YxfTlrvFMi7+6orSPEsiCfORPzqAJfjPaVrKI2luQVQF4YpwXns
	JLVKPMpxPrSxp86aRDzKKNAVCuuDxof46hR+5e56vjX+jZ9qt2VmOZoigMibb3+Grz+rIFD4o2H
	drvjWulBw8ubVvVDKtLABDFdbm/5wIHmqwI2ewzyHEw==
X-Gm-Gg: ASbGnctqx9T9bfMKoRkMetJmZAX2PV/mNBGFEuYAyU51513DXs0HtW89BR0w4wZI05h
	FUCrs7FEElJpsr8SOz5HnPyl4UxMGs79rP0isVGWl+86Bnty8sxGVdynxKNxEb0De621jgWVp1b
	qtUg8T/4Pmp8tW0RM8qVB1ILzOk3jZ+Qpz71eFpVWXcxYFPDKFKEV7DgmRNVRNeENk/qoF3wb6H
	OvgNdRM2eoMq7FdiZgz0Bwhszf+E/cNdmutTgoBqHEnU8/in56cZb1AEsjwyBjc0mAvLKItl2J4
	lgN/VNWWw7YTGzOk7FNMO4bGpA==
X-Google-Smtp-Source: AGHT+IGG1p7WgqK7wUmdqhVCLbiVBd0beHG22npXUOFHSC3jxKfTudC7o75sT1B+alVSe6U+KPLE61RsjkRvXMtJnbQ=
X-Received: by 2002:a05:6830:2696:b0:7c7:cf5:8110 with SMTP id
 46e09a7af769-7c7c437f20amr18161628a34.17.1764681794214; Tue, 02 Dec 2025
 05:23:14 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764254975.git.bertrand.marquis@arm.com> <d4e6fa4807528918f40e4db76ac57db33efa5f67.1764254975.git.bertrand.marquis@arm.com>
In-Reply-To: <d4e6fa4807528918f40e4db76ac57db33efa5f67.1764254975.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 2 Dec 2025 14:23:02 +0100
X-Gm-Features: AWmQ_bnRxE3WWjG7gbYNrnjpQPVZF_3HOJRW5m9LlF3FyVw7vQmj0Y1UVlNNUyc
Message-ID: <CAHUa44GCwG+4cGqZUGdLSk9gmiOdXUq3=JTqcRqzTvSAK6x2xQ@mail.gmail.com>
Subject: Re: [PATCH 03/10] xen/arm: ffa: harden RX/TX mapping
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Thu, Nov 27, 2025 at 4:52=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Harden the RX/TX mapping paths and keep signed FF-A return codes
> end-to-end.
>
> Reject zero-length mappings and insist on page-aligned RX/TX buffer
> addresses before touching the P2M. The unmap plumbing is switched to
> use the same signed helpers so dispatcher error handling is consistent
> across map and unmap operations.
>
> This avoids partially mapped or silently truncated buffers and makes the
> mediator behaviour match the FF-A error model more closely.
>
> While there also introduce a domain_rxtx_init to properly initialize the
> rxtx buffers spinlocks.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa.c         |  4 ++++
>  xen/arch/arm/tee/ffa_private.h |  5 +++--
>  xen/arch/arm/tee/ffa_rxtx.c    | 28 +++++++++++++++++++++-------
>  3 files changed, 28 insertions(+), 9 deletions(-)

Looks good
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 3309ca875ec4..47f426e85864 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -446,6 +446,10 @@ static int ffa_domain_init(struct domain *d)
>      if ( ret )
>          return ret;
>
> +    ret =3D ffa_rxtx_domain_init(d);
> +    if ( ret )
> +        return ret;
> +
>      return ffa_notif_domain_init(d);
>  }
>
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index 88b85c7c453a..4272afd37343 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -427,10 +427,11 @@ void ffa_handle_partition_info_get(struct cpu_user_=
regs *regs);
>
>  bool ffa_rxtx_init(void);
>  void ffa_rxtx_destroy(void);
> +int32_t ffa_rxtx_domain_init(struct domain *d);
>  void ffa_rxtx_domain_destroy(struct domain *d);
> -uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
> +int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
>                              register_t rx_addr, uint32_t page_count);
> -uint32_t ffa_handle_rxtx_unmap(void);
> +int32_t ffa_handle_rxtx_unmap(void);
>  int32_t ffa_rx_acquire(struct domain *d);
>  int32_t ffa_rx_release(struct domain *d);
>
> diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
> index a40e5b32e3a5..cd467d1dba68 100644
> --- a/xen/arch/arm/tee/ffa_rxtx.c
> +++ b/xen/arch/arm/tee/ffa_rxtx.c
> @@ -41,10 +41,10 @@ static int32_t ffa_rxtx_unmap(uint16_t id)
>      return ffa_simple_call(FFA_RXTX_UNMAP, ((uint64_t)id) << 16, 0, 0, 0=
);
>  }
>
> -uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
> +int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
>                              register_t rx_addr, uint32_t page_count)
>  {
> -    uint32_t ret =3D FFA_RET_INVALID_PARAMETERS;
> +    int32_t ret =3D FFA_RET_INVALID_PARAMETERS;
>      struct domain *d =3D current->domain;
>      struct ffa_ctx *ctx =3D d->arch.tee;
>      struct page_info *tx_pg;
> @@ -66,13 +66,17 @@ uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t=
 tx_addr,
>          rx_addr &=3D UINT32_MAX;
>      }
>
> -    if ( page_count > FFA_MAX_RXTX_PAGE_COUNT )
> +    if ( page_count > FFA_MAX_RXTX_PAGE_COUNT || !page_count )
>      {
>          printk(XENLOG_ERR "ffa: RXTX_MAP: error: %u pages requested (lim=
it %u)\n",
>                 page_count, FFA_MAX_RXTX_PAGE_COUNT);
>          return FFA_RET_INVALID_PARAMETERS;
>      }
>
> +    if ( !IS_ALIGNED(tx_addr, FFA_PAGE_SIZE) ||
> +         !IS_ALIGNED(rx_addr, FFA_PAGE_SIZE) )
> +        return FFA_RET_INVALID_PARAMETERS;
> +
>      /* Already mapped */
>      if ( ctx->rx )
>          return FFA_RET_DENIED;
> @@ -181,7 +185,7 @@ err_put_tx_pg:
>      return ret;
>  }
>
> -static uint32_t  rxtx_unmap(struct domain *d)
> +static int32_t rxtx_unmap(struct domain *d)
>  {
>      struct ffa_ctx *ctx =3D d->arch.tee;
>
> @@ -190,7 +194,7 @@ static uint32_t  rxtx_unmap(struct domain *d)
>
>      if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
>      {
> -        uint32_t ret;
> +        int32_t ret;
>
>          ret =3D ffa_rxtx_unmap(ffa_get_vm_id(d));
>          if ( ret !=3D FFA_RET_OK )
> @@ -211,7 +215,7 @@ static uint32_t  rxtx_unmap(struct domain *d)
>      return FFA_RET_OK;
>  }
>
> -uint32_t ffa_handle_rxtx_unmap(void)
> +int32_t ffa_handle_rxtx_unmap(void)
>  {
>      return rxtx_unmap(current->domain);
>  }
> @@ -272,6 +276,16 @@ out:
>      return ret;
>  }
>
> +int32_t ffa_rxtx_domain_init(struct domain *d)
> +{
> +    struct ffa_ctx *ctx =3D d->arch.tee;
> +
> +    spin_lock_init(&ctx->rx_lock);
> +    spin_lock_init(&ctx->tx_lock);
> +
> +    return 0;
> +}
> +
>  void ffa_rxtx_domain_destroy(struct domain *d)
>  {
>      rxtx_unmap(d);
> @@ -298,7 +312,7 @@ void ffa_rxtx_destroy(void)
>
>  bool ffa_rxtx_init(void)
>  {
> -    int e;
> +    int32_t e;
>
>      /* Firmware not there or not supporting */
>      if ( !ffa_fw_supports_fid(FFA_RXTX_MAP_64) )
> --
> 2.51.2
>


From xen-devel-bounces@lists.xenproject.org Tue Dec 02 14:09:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 14:09:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176208.1500727 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQR44-0002rV-2C; Tue, 02 Dec 2025 14:09:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176208.1500727; Tue, 02 Dec 2025 14:09:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQR43-0002rO-Ub; Tue, 02 Dec 2025 14:09:11 +0000
Received: by outflank-mailman (input) for mailman id 1176208;
 Tue, 02 Dec 2025 14:09:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JGiA=6I=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vQR41-0002rI-TQ
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 14:09:10 +0000
Received: from mail-oo1-xc30.google.com (mail-oo1-xc30.google.com
 [2607:f8b0:4864:20::c30])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 74d03cbd-cf88-11f0-980a-7dc792cee155;
 Tue, 02 Dec 2025 15:09:03 +0100 (CET)
Received: by mail-oo1-xc30.google.com with SMTP id
 006d021491bc7-6593155d8d6so3233169eaf.3
 for <xen-devel@lists.xenproject.org>; Tue, 02 Dec 2025 06:09:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 74d03cbd-cf88-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764684542; x=1765289342; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HMJRjpO/S7Wdq89Bj8nSRX3fzb+MzOOYdbOhquH4bhg=;
        b=rkXBkCLTJ4BVyw34OqIZPXKEa2upYbFoF2ZACmE0GVqbMq5LfozbJ9hyt1NjdGLkZD
         Oos2qbsYwincYa85GJ00hYb7HZRTi7EKD+5ylC65Zyc4us/J//uyGACjYrdd1htm3Jfv
         6aHA6xyCA/TJX03VrZx9kDQ58tSLHG4s0zn/uvWZkflQZwjyTNN+b2kO9q/q35yQFqGn
         e6fn2HLuG0W9t024PIA4Zi7tu5NN/tb8PUes5wQ0X+otmaw8J6xhmB7wjidqJDJZ8yc7
         ZHMtOrqLRVLd9+DqzkvHc1Ao9y6Aj/FjwIRyqHyWCtz6I/9FRgh5BP1BzMLauIlvPLDg
         3TAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764684542; x=1765289342;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=HMJRjpO/S7Wdq89Bj8nSRX3fzb+MzOOYdbOhquH4bhg=;
        b=SvJ11DWmHDIuwzqnR2G2CUfSmN+LJ5NVT+Z1J0oYuVEhhohk+Uej6u71Mz4m6993ic
         EtgSlPUDbdN8p447h7SqUv0tw0G+PaJWP6/fZb/aoVkntHmjir/FAcXqx/1J/LwypJ0w
         WrG6/gYzmq7prQ939dzXVOAjHLW93frv1KGAT1rfRNir4Cq48ihhiC+YXMMzIWcZgV67
         j5mW6/XR/L5XaGM0XDJkPB6+Vf9xDlbuyAMo7WUJn55kGZ+igqM/LNO8KpYb2/Ty5VwO
         mQUkv5OLIfQbSxxs73aSKdP37DibppKibKbIjNsPtDtNtSvLoue6mYmzRXs9tPtwJejx
         BYaw==
X-Gm-Message-State: AOJu0YwJNgKHo0ZXPl2rLab988O4fJbp6VIAl/ZmIzK/WOnMq5Zwogmg
	Dy1M7M3WIN3UHah4Y/EVF4VRS8zVrZMPgi1jcgr8+tPu7QCb7p5/nAFCpFN7E04hBQascwhzioa
	tqj1OjjOMCXJr3IBm0IHv4fh57fEqVSsmsITOFZKu1A==
X-Gm-Gg: ASbGnct7P150AId/Kqg9YOtkN5LL0SKnm4CexD2w7zlPkM4hJYPVjDbdTla4lGkXuPD
	lVyp5ydJ+9uJd8XD7kvmVknOMqe8jm1oeYVEN3hhLgf838JZl3/MZ7rtJ+6J0H/50V98RwHbp8z
	5JQ67bPz/5ColLfd5b5st3RyaW4y9uSdvhcIjF4KTHtIP/XPah6IrZKtyWS3Q7foCHggrbYYOqB
	Ybhd3/O4rFdo2iLQFSbeslTwVNLzt3hPFIXk8KwPf/Hy5asygnSOurcGaAGAJHH5yJZw3Xc4itk
	vEoGaoaxKwyjkiI6Z0jmCpQ43Q==
X-Google-Smtp-Source: AGHT+IEU4C6DfeWKDH2Whf8q5gqWTGwwmhXNIByH0zFFxZGA6v/amwVUeeXnUrQs0XrtJrc0w7kcznSZdY49L/hrcCU=
X-Received: by 2002:a05:6820:1ca2:b0:654:f20e:2d02 with SMTP id
 006d021491bc7-65791b33afemr16722901eaf.0.1764684542276; Tue, 02 Dec 2025
 06:09:02 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764254975.git.bertrand.marquis@arm.com> <72d6592157a9ec15d4b5de19751186e0ca1680ba.1764254975.git.bertrand.marquis@arm.com>
In-Reply-To: <72d6592157a9ec15d4b5de19751186e0ca1680ba.1764254975.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 2 Dec 2025 15:08:50 +0100
X-Gm-Features: AWmQ_bkhUF11SjTrIj1vnKhuA4D_ldb4z2Rw5QYJ9HWpmfNwa2f7qZNsbg7E1RE
Message-ID: <CAHUa44Gq4L95i3wTMEVRoFNFt2PzPCKGAuF4KT3YL9mfmT2FRA@mail.gmail.com>
Subject: Re: [PATCH 04/10] xen/arm: ffa: rework SPMC RX/TX buffer management
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Thu, Nov 27, 2025 at 4:52=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Rework how Xen accesses the RX/TX buffers shared with the SPMC so that
> ownership and locking are handled centrally.
>
> Move the SPMC RX/TX buffer bases into ffa_rxtx.c as ffa_spmc_rx/ffa_spmc_=
tx,
> protect them with dedicated ffa_spmc_{rx,tx}_lock spinlocks and expose
> ffa_rxtx_spmc_{rx,tx}_{acquire,release}() helpers instead of the global
> ffa_rx/ffa_tx pointers and ffa_{rx,tx}_buffer_lock.
>
> The RX helpers now always issue FFA_RX_RELEASE when we are done
> consuming data from the SPMC, so partition-info enumeration and shared
> memory paths release the RX buffer on all exit paths. The RX/TX mapping
> code is updated to use the descriptor offsets (rx_region_offs and
> tx_region_offs) rather than hard-coded structure layout, and to use the
> TX acquire/release helpers instead of touching the TX buffer directly.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa.c          |  22 +-----
>  xen/arch/arm/tee/ffa_partinfo.c |  40 +++++-----
>  xen/arch/arm/tee/ffa_private.h  |  18 ++---
>  xen/arch/arm/tee/ffa_rxtx.c     | 132 +++++++++++++++++++++++++-------
>  xen/arch/arm/tee/ffa_shm.c      |  26 ++++---
>  5 files changed, 153 insertions(+), 85 deletions(-)
>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 47f426e85864..4c1b9a4c3b48 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -48,8 +48,8 @@
>   *     notification for secure partitions
>   *   - doesn't support notifications for Xen itself
>   *
> - * There are some large locked sections with ffa_tx_buffer_lock and
> - * ffa_rx_buffer_lock. Especially the ffa_tx_buffer_lock spinlock used
> + * There are some large locked sections with ffa_spmc_tx_lock and
> + * ffa_spmc_rx_lock. Especially the ffa_spmc_tx_lock spinlock used
>   * around share_shm() is a very large locked section which can let one V=
M
>   * affect another VM.
>   */
> @@ -108,20 +108,6 @@ static const struct ffa_fw_abi ffa_fw_abi_needed[] =
=3D {
>      FW_ABI(FFA_RUN),
>  };
>
> -/*
> - * Our rx/tx buffers shared with the SPMC. FFA_RXTX_PAGE_COUNT is the
> - * number of pages used in each of these buffers.
> - *
> - * The RX buffer is protected from concurrent usage with ffa_rx_buffer_l=
ock.
> - * Note that the SPMC is also tracking the ownership of our RX buffer so
> - * for calls which uses our RX buffer to deliver a result we must call
> - * ffa_rx_release() to let the SPMC know that we're done with the buffer=
.
> - */
> -void *ffa_rx __read_mostly;
> -void *ffa_tx __read_mostly;
> -DEFINE_SPINLOCK(ffa_rx_buffer_lock);
> -DEFINE_SPINLOCK(ffa_tx_buffer_lock);
> -
>  LIST_HEAD(ffa_ctx_head);
>  /* RW Lock to protect addition/removal and reading in ffa_ctx_head */
>  DEFINE_RWLOCK(ffa_ctx_list_rwlock);
> @@ -612,7 +598,7 @@ static bool ffa_probe_fw(void)
>                     ffa_fw_abi_needed[i].name);
>      }
>
> -    if ( !ffa_rxtx_init() )
> +    if ( !ffa_rxtx_spmc_init() )
>      {
>          printk(XENLOG_ERR "ffa: Error during RXTX buffer init\n");
>          goto err_no_fw;
> @@ -626,7 +612,7 @@ static bool ffa_probe_fw(void)
>      return true;
>
>  err_rxtx_destroy:
> -    ffa_rxtx_destroy();
> +    ffa_rxtx_spmc_destroy();
>  err_no_fw:
>      ffa_fw_version =3D 0;
>      bitmap_zero(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index fa56b1587e3b..766b75dffb8c 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -77,28 +77,24 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, ui=
nt32_t *sp_count,
>  {
>      int32_t ret;
>      uint32_t src_size, real_sp_count;
> -    void *src_buf =3D ffa_rx;
> +    void *src_buf;
>      uint32_t count =3D 0;
>
> -    /* Do we have a RX buffer with the SPMC */
> -    if ( !ffa_rx )
> -        return FFA_RET_DENIED;
> -
>      /* We need to use the RX buffer to receive the list */
> -    spin_lock(&ffa_rx_buffer_lock);
> +    src_buf =3D ffa_rxtx_spmc_rx_acquire();
> +    if ( !src_buf )
> +        return FFA_RET_DENIED;
>
>      ret =3D ffa_partition_info_get(uuid, 0, &real_sp_count, &src_size);
>      if ( ret )
>          goto out;
>
> -    /* We now own the RX buffer */
> -
>      /* Validate the src_size we got */
>      if ( src_size < sizeof(struct ffa_partition_info_1_0) ||
>           src_size >=3D FFA_PAGE_SIZE )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
> -        goto out_release;
> +        goto out;
>      }
>
>      /*
> @@ -114,7 +110,7 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, ui=
nt32_t *sp_count,
>      if ( real_sp_count > (FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE) / src_siz=
e )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
> -        goto out_release;
> +        goto out;
>      }
>
>      for ( uint32_t sp_num =3D 0; sp_num < real_sp_count; sp_num++ )
> @@ -127,7 +123,7 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, ui=
nt32_t *sp_count,
>              if ( dst_buf > (end_buf - dst_size) )
>              {
>                  ret =3D FFA_RET_NO_MEMORY;
> -                goto out_release;
> +                goto out;
>              }
>
>              memcpy(dst_buf, src_buf, MIN(src_size, dst_size));
> @@ -143,10 +139,8 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, u=
int32_t *sp_count,
>
>      *sp_count =3D count;
>
> -out_release:
> -    ffa_hyp_rx_release();
>  out:
> -    spin_unlock(&ffa_rx_buffer_lock);
> +    ffa_rxtx_spmc_rx_release();
>      return ret;
>  }
>
> @@ -378,7 +372,7 @@ static void uninit_subscribers(void)
>          XFREE(subscr_vm_destroyed);
>  }
>
> -static bool init_subscribers(uint16_t count, uint32_t fpi_size)
> +static bool init_subscribers(void *buf, uint16_t count, uint32_t fpi_siz=
e)
>  {
>      uint16_t n;
>      uint16_t c_pos;
> @@ -395,7 +389,7 @@ static bool init_subscribers(uint16_t count, uint32_t=
 fpi_size)
>      subscr_vm_destroyed_count =3D 0;
>      for ( n =3D 0; n < count; n++ )
>      {
> -        fpi =3D ffa_rx + n * fpi_size;
> +        fpi =3D buf + n * fpi_size;
>
>          /*
>           * We need to have secure partitions using bit 15 set convention=
 for
> @@ -433,7 +427,7 @@ static bool init_subscribers(uint16_t count, uint32_t=
 fpi_size)
>
>      for ( c_pos =3D 0, d_pos =3D 0, n =3D 0; n < count; n++ )
>      {
> -        fpi =3D ffa_rx + n * fpi_size;
> +        fpi =3D buf + n * fpi_size;
>
>          if ( FFA_ID_IS_SECURE(fpi->id) )
>          {
> @@ -455,10 +449,14 @@ bool ffa_partinfo_init(void)
>      uint32_t fpi_size;
>      uint32_t count;
>      int e;
> +    void *spmc_rx;
>
>      if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) ||
> -         !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32) ||
> -         !ffa_rx || !ffa_tx )
> +         !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32))
> +        return false;
> +
> +    spmc_rx =3D ffa_rxtx_spmc_rx_acquire();
> +    if (!spmc_rx)
>          return false;
>
>      e =3D ffa_partition_info_get(NULL, 0, &count, &fpi_size);
> @@ -475,10 +473,10 @@ bool ffa_partinfo_init(void)
>          goto out;
>      }
>
> -    ret =3D init_subscribers(count, fpi_size);
> +    ret =3D init_subscribers(spmc_rx, count, fpi_size);
>
>  out:
> -    ffa_hyp_rx_release();
> +    ffa_rxtx_spmc_rx_release();
>      return ret;
>  }
>
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index 4272afd37343..cd35c44b8986 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -404,10 +404,6 @@ struct ffa_ctx {
>      unsigned long *vm_destroy_bitmap;
>  };
>
> -extern void *ffa_rx;
> -extern void *ffa_tx;
> -extern spinlock_t ffa_rx_buffer_lock;
> -extern spinlock_t ffa_tx_buffer_lock;
>  extern DECLARE_BITMAP(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
>
>  extern struct list_head ffa_ctx_head;
> @@ -425,8 +421,13 @@ int ffa_partinfo_domain_init(struct domain *d);
>  bool ffa_partinfo_domain_destroy(struct domain *d);
>  void ffa_handle_partition_info_get(struct cpu_user_regs *regs);
>
> -bool ffa_rxtx_init(void);
> -void ffa_rxtx_destroy(void);
> +bool ffa_rxtx_spmc_init(void);
> +void ffa_rxtx_spmc_destroy(void);
> +void *ffa_rxtx_spmc_rx_acquire(void);
> +void ffa_rxtx_spmc_rx_release(void);
> +void *ffa_rxtx_spmc_tx_acquire(void);
> +void ffa_rxtx_spmc_tx_release(void);
> +
>  int32_t ffa_rxtx_domain_init(struct domain *d);
>  void ffa_rxtx_domain_destroy(struct domain *d);
>  int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
> @@ -556,11 +557,6 @@ static inline int32_t ffa_simple_call(uint32_t fid, =
register_t a1,
>      return ffa_get_ret_code(&resp);
>  }
>
> -static inline int32_t ffa_hyp_rx_release(void)
> -{
> -    return ffa_simple_call(FFA_RX_RELEASE, 0, 0, 0, 0);
> -}
> -
>  static inline bool ffa_fw_supports_fid(uint32_t fid)
>  {
>      BUILD_BUG_ON(FFA_FNUM_MIN_VALUE > FFA_FNUM_MAX_VALUE);
> diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
> index cd467d1dba68..07b01430d139 100644
> --- a/xen/arch/arm/tee/ffa_rxtx.c
> +++ b/xen/arch/arm/tee/ffa_rxtx.c
> @@ -30,6 +30,20 @@ struct ffa_endpoint_rxtx_descriptor_1_1 {
>      uint32_t tx_region_offs;
>  };
>
> +/*
> + * Our rx/tx buffers shared with the SPMC. FFA_RXTX_PAGE_COUNT is the
> + * number of pages used in each of these buffers.
> + * Each buffer has its own lock to protect from concurrent usage.
> + *
> + * Note that the SPMC is also tracking the ownership of our RX buffer so
> + * for calls which uses our RX buffer to deliver a result we must do an
> + * FFA_RX_RELEASE to let the SPMC know that we're done with the buffer.
> + */
> +static void *ffa_spmc_rx __read_mostly;
> +static void *ffa_spmc_tx __read_mostly;
> +static DEFINE_SPINLOCK(ffa_spmc_rx_lock);
> +static DEFINE_SPINLOCK(ffa_spmc_tx_lock);
> +
>  static int32_t ffa_rxtx_map(paddr_t tx_addr, paddr_t rx_addr,
>                              uint32_t page_count)
>  {
> @@ -120,8 +134,9 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t =
tx_addr,
>                       sizeof(struct ffa_address_range) * 2 >
>                       FFA_MAX_RXTX_PAGE_COUNT * FFA_PAGE_SIZE);
>
> -        spin_lock(&ffa_tx_buffer_lock);
> -        rxtx_desc =3D ffa_tx;
> +        rxtx_desc =3D ffa_rxtx_spmc_tx_acquire();
> +        if ( !rxtx_desc )
> +            goto err_unmap_rx;
>
>          /*
>           * We have only one page for each so we pack everything:
> @@ -138,7 +153,7 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t =
tx_addr,
>                                               address_range_array[1]);
>
>          /* rx buffer */
> -        mem_reg =3D ffa_tx + sizeof(*rxtx_desc);
> +        mem_reg =3D (void *)rxtx_desc + rxtx_desc->rx_region_offs;
>          mem_reg->total_page_count =3D 1;
>          mem_reg->address_range_count =3D 1;
>          mem_reg->reserved =3D 0;
> @@ -148,7 +163,7 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t =
tx_addr,
>          mem_reg->address_range_array[0].reserved =3D 0;
>
>          /* tx buffer */
> -        mem_reg =3D ffa_tx + rxtx_desc->tx_region_offs;
> +        mem_reg =3D (void *)rxtx_desc + rxtx_desc->tx_region_offs;
>          mem_reg->total_page_count =3D 1;
>          mem_reg->address_range_count =3D 1;
>          mem_reg->reserved =3D 0;
> @@ -159,7 +174,7 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t =
tx_addr,
>
>          ret =3D ffa_rxtx_map(0, 0, 0);
>
> -        spin_unlock(&ffa_tx_buffer_lock);
> +        ffa_rxtx_spmc_tx_release();
>
>          if ( ret !=3D FFA_RET_OK )
>              goto err_unmap_rx;
> @@ -291,49 +306,114 @@ void ffa_rxtx_domain_destroy(struct domain *d)
>      rxtx_unmap(d);
>  }
>
> -void ffa_rxtx_destroy(void)
> +void *ffa_rxtx_spmc_rx_acquire(void)
> +{
> +    ASSERT(!spin_is_locked(&ffa_spmc_rx_lock));

Is it invalid for two CPUs to concurrently try to acquire the RX buffer?

> +
> +    spin_lock(&ffa_spmc_rx_lock);
> +
> +    if ( ffa_spmc_rx )
> +        return ffa_spmc_rx;
> +
> +    spin_unlock(&ffa_spmc_rx_lock);
> +    return NULL;
> +}
> +
> +void ffa_rxtx_spmc_rx_release(void)
> +{
> +    int32_t ret;
> +
> +    ASSERT(spin_is_locked(&ffa_spmc_rx_lock));
> +
> +    /* Inform the SPMC that we are done with our RX buffer */
> +    ret =3D ffa_simple_call(FFA_RX_RELEASE, 0, 0, 0, 0);
> +    if ( ret !=3D FFA_RET_OK )
> +        printk(XENLOG_DEBUG "Error releasing SPMC RX buffer: %d\n", ret)=
;
> +
> +    spin_unlock(&ffa_spmc_rx_lock);
> +}
> +
> +void *ffa_rxtx_spmc_tx_acquire(void)
>  {
> -    bool need_unmap =3D ffa_tx && ffa_rx;
> +    ASSERT(!spin_is_locked(&ffa_spmc_tx_lock));

Is it invalid for two CPUs to concurrently try to acquire the TX buffer?

>
> -    if ( ffa_tx )
> +    spin_lock(&ffa_spmc_tx_lock);
> +
> +    if ( ffa_spmc_tx )
> +        return ffa_spmc_tx;
> +
> +    spin_unlock(&ffa_spmc_tx_lock);
> +    return NULL;
> +}
> +
> +void ffa_rxtx_spmc_tx_release(void)
> +{
> +    ASSERT(spin_is_locked(&ffa_spmc_tx_lock));
> +
> +    spin_unlock(&ffa_spmc_tx_lock);
> +}
> +
> +void ffa_rxtx_spmc_destroy(void)
> +{
> +    bool need_unmap;
> +
> +    spin_lock(&ffa_spmc_rx_lock);
> +    spin_lock(&ffa_spmc_tx_lock);
> +    need_unmap =3D ffa_spmc_tx && ffa_spmc_rx;
> +
> +    if ( ffa_spmc_tx )
>      {
> -        free_xenheap_pages(ffa_tx, 0);
> -        ffa_tx =3D NULL;
> +        free_xenheap_pages(ffa_spmc_tx, 0);
> +        ffa_spmc_tx =3D NULL;
>      }
> -    if ( ffa_rx )
> +    if ( ffa_spmc_rx )
>      {
> -        free_xenheap_pages(ffa_rx, 0);
> -        ffa_rx =3D NULL;
> +        free_xenheap_pages(ffa_spmc_rx, 0);
> +        ffa_spmc_rx =3D NULL;
>      }
>
>      if ( need_unmap )
>          ffa_rxtx_unmap(0);
> +
> +    spin_unlock(&ffa_spmc_tx_lock);
> +    spin_unlock(&ffa_spmc_rx_lock);
>  }
>
> -bool ffa_rxtx_init(void)
> +bool ffa_rxtx_spmc_init(void)
>  {
>      int32_t e;
> +    bool ret =3D false;
>
>      /* Firmware not there or not supporting */
>      if ( !ffa_fw_supports_fid(FFA_RXTX_MAP_64) )
>          return false;
>
> -    ffa_rx =3D alloc_xenheap_pages(get_order_from_pages(FFA_RXTX_PAGE_CO=
UNT), 0);
> -    if ( !ffa_rx )
> -        return false;
> +    spin_lock(&ffa_spmc_rx_lock);
> +    spin_lock(&ffa_spmc_tx_lock);
> +
> +    ffa_spmc_rx =3D alloc_xenheap_pages(
> +                            get_order_from_pages(FFA_RXTX_PAGE_COUNT), 0=
);
> +    if ( !ffa_spmc_rx )
> +        goto exit;
>
> -    ffa_tx =3D alloc_xenheap_pages(get_order_from_pages(FFA_RXTX_PAGE_CO=
UNT), 0);
> -    if ( !ffa_tx )
> -        goto err;
> +    ffa_spmc_tx =3D alloc_xenheap_pages(
> +                            get_order_from_pages(FFA_RXTX_PAGE_COUNT), 0=
);
> +    if ( !ffa_spmc_tx )
> +        goto exit;
>
> -    e =3D ffa_rxtx_map(__pa(ffa_tx), __pa(ffa_rx), FFA_RXTX_PAGE_COUNT);
> +    e =3D ffa_rxtx_map(__pa(ffa_spmc_tx), __pa(ffa_spmc_rx),
> +                     FFA_RXTX_PAGE_COUNT);
>      if ( e )
> -        goto err;
> +        goto exit;
>
> -    return true;
> +    ret =3D true;
>
> -err:
> -    ffa_rxtx_destroy();
> +exit:
> +    spin_unlock(&ffa_spmc_tx_lock);
> +    spin_unlock(&ffa_spmc_rx_lock);
>
> -    return false;
> +    if ( !ret )
> +        ffa_rxtx_spmc_destroy();
> +
> +    return ret;
>  }
> diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
> index d628c1b70609..b9022797c3bf 100644
> --- a/xen/arch/arm/tee/ffa_shm.c
> +++ b/xen/arch/arm/tee/ffa_shm.c
> @@ -286,9 +286,8 @@ static void init_range(struct ffa_address_range *addr=
_range,
>  }
>
>  /*
> - * This function uses the ffa_tx buffer to transmit the memory transacti=
on
> - * descriptor. The function depends ffa_tx_buffer_lock to be used to gua=
rd
> - * the buffer from concurrent use.
> + * This function uses the ffa_spmc tx buffer to transmit the memory tran=
saction
> + * descriptor.
>   */
>  static int share_shm(struct ffa_shm_mem *shm)
>  {
> @@ -298,17 +297,22 @@ static int share_shm(struct ffa_shm_mem *shm)
>      struct ffa_address_range *addr_range;
>      struct ffa_mem_region *region_descr;
>      const unsigned int region_count =3D 1;
> -    void *buf =3D ffa_tx;
>      uint32_t frag_len;
>      uint32_t tot_len;
>      paddr_t last_pa;
>      unsigned int n;
>      paddr_t pa;
> +    int32_t ret;
> +    void *buf;
>
> -    ASSERT(spin_is_locked(&ffa_tx_buffer_lock));
>      ASSERT(shm->page_count);
>
> +    buf =3D ffa_rxtx_spmc_tx_acquire();
> +    if ( !buf )
> +        return FFA_RET_NOT_SUPPORTED;
> +
>      descr =3D buf;
> +
>      memset(descr, 0, sizeof(*descr));
>      descr->sender_id =3D shm->sender_id;
>      descr->handle =3D shm->handle;
> @@ -340,7 +344,10 @@ static int share_shm(struct ffa_shm_mem *shm)
>      tot_len =3D ADDR_RANGE_OFFSET(descr->mem_access_count, region_count,
>                                  region_descr->address_range_count);
>      if ( tot_len > max_frag_len )
> +    {
> +        ffa_rxtx_spmc_tx_release();
>          return FFA_RET_NOT_SUPPORTED;
I'd prefer adding an out label below before the
ffa_rxtx_spmc_tx_release() call and:
     ret =3D FFA_RET_NOT_SUPPORTED;
     goto out;

Cheers,
Jens

> +    }
>
>      addr_range =3D region_descr->address_range_array;
>      frag_len =3D ADDR_RANGE_OFFSET(descr->mem_access_count, region_count=
, 1);
> @@ -360,7 +367,11 @@ static int share_shm(struct ffa_shm_mem *shm)
>          init_range(addr_range, pa);
>      }
>
> -    return ffa_mem_share(tot_len, frag_len, 0, 0, &shm->handle);
> +    ret =3D ffa_mem_share(tot_len, frag_len, 0, 0, &shm->handle);
> +
> +    ffa_rxtx_spmc_tx_release();
> +
> +    return ret;
>  }
>
>  static int read_mem_transaction(uint32_t ffa_vers, const void *buf, size=
_t blen,
> @@ -578,10 +589,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs=
)
>      if ( ret )
>          goto out;
>
> -    /* Note that share_shm() uses our tx buffer */
> -    spin_lock(&ffa_tx_buffer_lock);
>      ret =3D share_shm(shm);
> -    spin_unlock(&ffa_tx_buffer_lock);
>      if ( ret )
>          goto out;
>
> --
> 2.51.2
>


From xen-devel-bounces@lists.xenproject.org Tue Dec 02 15:40:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 15:40:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176222.1500736 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQSTm-00064T-CA; Tue, 02 Dec 2025 15:39:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176222.1500736; Tue, 02 Dec 2025 15:39:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQSTm-00064M-8v; Tue, 02 Dec 2025 15:39:50 +0000
Received: by outflank-mailman (input) for mailman id 1176222;
 Tue, 02 Dec 2025 15:39:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tQLy=6I=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vQSTl-00064G-56
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 15:39:49 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1cfe56a6-cf95-11f0-980a-7dc792cee155;
 Tue, 02 Dec 2025 16:39:39 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-477770019e4so47399755e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 02 Dec 2025 07:39:39 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42e1ca1a2easm34569012f8f.23.2025.12.02.07.39.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Dec 2025 07:39:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1cfe56a6-cf95-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764689978; x=1765294778; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=gd7SKQqJeiPzFQHeyode4k2RLn3minZyG1g3bOwqujM=;
        b=Q2Lb8j1fQV17WmARcRbnP83phqWpCIqAacnnjTP8JHnnzoUi90oOONo43U4N9LvSNt
         PA8NpDMPK0BvE0CuMrZVHrDtQFZRxDORQ5uv1kyktyLdfI2e96oUn7CuWPBHSS9XoXQ3
         Ak0iJWNheD4erNebPT+0tio1J5XKvb3Yw+vug=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764689978; x=1765294778;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gd7SKQqJeiPzFQHeyode4k2RLn3minZyG1g3bOwqujM=;
        b=d6PG0OzgvcWHUtVqVmEzRdhOFUjmkG8XGa9gZSvogedX4Ttu8BHbRsR5tqJOiIPew3
         31zS/IllGUACMmpxha3f2nezbWwZEr4si8JUt/N/GovImy6VFHXP1kCaM2IEqCqPmhHd
         dwRfLHnh6S47mb9XXv0WISEAJUDhJX78yM/ZWaGzU/UZ4/iMz3Uv/3VMigz4fZtkCFVf
         yE86zYNujcPbo4+86pbawOYBPXgtTBe65vOqysFAbJre+ntCB4GqB02eoyzKZnPAB/00
         CNrAw4CPABvJRWCrG37CMUBjpLb3ONbXC5DIHparcoA0qzKl958DI7oXk0XD6BDyaxfz
         SWMA==
X-Gm-Message-State: AOJu0YyZccI6/IiDomJmjiZ0NbSknK9DzTAAeODFL1PS05getYSWpEgU
	O4/83FiH5ukRVTExc/a23/jz/1I27557GXYsPuxuAjRjkIxpV4OPJGHUvZB1WYG4upGnE6WypQ1
	HyTBV
X-Gm-Gg: ASbGncsTIucm0WsqVPZ9M+xG6zLs/Nou/h24egjlY3WoNafIqtpA9x+GF1m6rp3568y
	J1UI0KBf8dyDYc7gFR2brU51Z6qRVb1Mhdz5KjEJCmkkMzsTvjSEgX6+d+lcCDrl3YWoExTunc8
	WQ89j6zy5lROHVxzXd18ZrQM3dVrfR6+Q+IQ6P5APmsl7SIQD+DVP16KoRgvPKtCusPNaDlBiws
	zbV14Y2p+fWX4oPK7+CI+YqJuud3nNfaL0mkGPHVtgL8xut2+4XYYUthbXHUtrvuIM/mLXgJrtk
	Yc+aaytvYiAun+rf/BenOHvG54S14gmEO7k/mcCYeeMZQgGatAt/8CYSgL3CT1Nn62SS4HDkPSU
	UszWnk/wrvNhCGGY1mXHvm1jISZ9793IaWSPpMUukjq3yo03jR+12sgat1hdHkrZEDngGvwWBDg
	89o8KrKRqkvmdBjgogDerQ1W0UuXDTVvbjsa9v5ZwBA/WPsB2jti8hDPebF9gheg==
X-Google-Smtp-Source: AGHT+IEHotpsBF97dO3Z0JcaFaB7so4jccVxDZYK+wHnIwdEuLKkXmhAM2gFXi7FP7HujWm3lBjdIQ==
X-Received: by 2002:a05:600c:1f0f:b0:477:1af2:f40a with SMTP id 5b1f17b1804b1-47904b1b27bmr329540405e9.17.1764689978450;
        Tue, 02 Dec 2025 07:39:38 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] x86/cpu-policy: Feature names for Granite Rapids
Date: Tue,  2 Dec 2025 15:39:35 +0000
Message-Id: <20251202153935.1476414-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Slightly surprisingly, AVX10 is the only unnamed feature right now.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

Hunk borrowed from the AVX10 series.
---
 xen/include/public/arch-x86/cpufeatureset.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/include/public/arch-x86/cpufeatureset.h b/xen/include/public/arch-x86/cpufeatureset.h
index 9cd778586f10..714ac7fcc4a6 100644
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -361,6 +361,7 @@ XEN_CPUFEATURE(AVX_VNNI_INT16,     15*32+10) /*A  AVX-VNNI-INT16 Instructions */
 XEN_CPUFEATURE(PREFETCHI,          15*32+14) /*A  PREFETCHIT{0,1} Instructions */
 XEN_CPUFEATURE(UIRET_UIF,          15*32+17) /*   UIRET updates UIF */
 XEN_CPUFEATURE(CET_SSS,            15*32+18) /*   CET Supervisor Shadow Stacks safe to use */
+XEN_CPUFEATURE(AVX10,              15*32+19) /*   AVX10 Converged Vector ISA */
 XEN_CPUFEATURE(SLSM,               15*32+24) /*   Static Lockstep Mode */
 
 /* Intel-defined CPU features, MSR_ARCH_CAPS 0x10a.eax, word 16 */

base-commit: d0c75dc4c028bc32fd9cf1d4358973929548de54
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 02 16:26:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 16:26:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176234.1500747 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQTCg-0004Jy-LB; Tue, 02 Dec 2025 16:26:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176234.1500747; Tue, 02 Dec 2025 16:26:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQTCg-0004Jr-HA; Tue, 02 Dec 2025 16:26:14 +0000
Received: by outflank-mailman (input) for mailman id 1176234;
 Tue, 02 Dec 2025 16:26:13 +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
 <SRS0=AIEi=6I=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vQTCe-0004Jl-P1
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 16:26:13 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9cd6bd35-cf9b-11f0-9d1a-b5c5bf9af7f9;
 Tue, 02 Dec 2025 17:26:11 +0100 (CET)
Received: from AS4PR09CA0003.eurprd09.prod.outlook.com (2603:10a6:20b:5e0::6)
 by DB9PR08MB11312.eurprd08.prod.outlook.com (2603:10a6:10:608::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Tue, 2 Dec
 2025 16:26:06 +0000
Received: from AM2PEPF0001C70C.eurprd05.prod.outlook.com
 (2603:10a6:20b:5e0:cafe::b4) by AS4PR09CA0003.outlook.office365.com
 (2603:10a6:20b:5e0::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Tue,
 2 Dec 2025 16:26:05 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM2PEPF0001C70C.mail.protection.outlook.com (10.167.16.200) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Tue, 2 Dec 2025 16:26:05 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by VE1PR08MB5824.eurprd08.prod.outlook.com (2603:10a6:800:1a8::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Tue, 2 Dec
 2025 16:25:03 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d%4]) with mapi id 15.20.9366.012; Tue, 2 Dec 2025
 16:25:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9cd6bd35-cf9b-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=j6Bu+STgvwY392kYHlKgWl8jrZRbRtwjAh5lcQkYb9jJfUfIy49Q9ngYQvIQzP8yRD5QBIdtZHjShCNYfHjSr5bDuw0lCW6bF5Urz+JgLqPuQsnHFnpN12CVa92hpcC+Aal4mT44/SAdflnpPXtoTqOpinKj+MWriYT8AuicK0C3qNxLdJEDV6RWyjnZk076I40pdNJWWxO8oiA3o+FQaBoyu60Pv9DSBYgnQmEfQijCXTK7KbPmXQ4Ikx82TSGH0CP2wE7rpXUvu5h5SJsooBugWnfCn+U7x6nSCMS2fJLyVaPIAE6kjq6h1+rLEE9zogKBHC6BOb5AvFVIq0A+0g==
ARC-Message-Signature: i=2; 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=H/8nsYaWX/Qy2YXEnaQVtt+2CS/ccBjAE7ZxT75UO5Q=;
 b=B7KTxHcEoMecWnH+8RmfPYKoKMOQq9tqsAqWmhzIFUfmtZMA3g1xHc3NUNw2Uhi920YAb86CtVqXUSAWD/G+bZfmdY8RJUoI9gAQ5E3KotWjQOJob/2suwP7mloW6k5C+9dkWxlX0UficRckjjvwmu7u/5sPRgaBNoc4sZUMwGKW3HusxM0FQmhizL/ImttCJW/8wtYt8ROiCwp6FqDSKcNB9bZLrfKg8Fdr9T5oOcywY+qfmlcSxqqVQHpuxUJTYOTooC7v8lQpJ7zRtR371M7cdGSuS3z0cGzZcBbg0UgQ6EyvqgYMl90FpOjiAbip40cmgaZ/KBgsls/Mzgjhfw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=H/8nsYaWX/Qy2YXEnaQVtt+2CS/ccBjAE7ZxT75UO5Q=;
 b=ncJV50jwoZ5NEwA2JtwHK7kW7uBPiyl3dlKcM+of/Sy1kaol1t7nW+NIyozlcqvsswZMcuCcOnov3r32LWD/KtUPkt71AbvzRgPy+6GaOlYChkXCQ8kfDOxjXVICRWqg9jYyypjriC/CAlj33smkcGAVbktr04mmLMT7EXvjvBc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Hx3/aNz6KqqYQLxUMZfCUa/FGL1zzH2U+W0wQzempAWdGRqo8F7zlgVN+gFvvINHfCkidpzEuwEkIml/AoHFXzqzPKw5GeXWus8EbxJMSnDeCJU8qpdj/jKFx8acpZmGXEePqsW/uN47Q9HQCCrV3xMMePjMT37UmNOz5pRThEyBeCJ/jtyjo+JjY4lmLRdcx1hwL0iR9g4wmQgzv2ZJ36SIgxp1WzObTqqfrojsgtlBc9jOK/S22qmBwM2htUpo5JIu210vK9bVZB18/jTGgSDNknSta2qJ+H5ocweNBJfRnR0x5WalL3q3bOX1vmZxSWrVZiJWEc7/Sf7TbVzqDA==
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=H/8nsYaWX/Qy2YXEnaQVtt+2CS/ccBjAE7ZxT75UO5Q=;
 b=T6c1akYdws4wdQLY9XqlRygZzZKYyXmJvMl10d8NXCdGNW+AW1i0JtbaKdAVxyNeBYr9ClShGOQ0EEB66t2R24gZTBeI2KmB68Thkx6+6aPz8ucp3QQxEipSeDU3bthWB0/fajJoNdAyCkiYGnN8/1uandzkddYqJSSXx4LdxWoAnnagjHo7WOwfO+2NtO9HUwn1+7jgTLhDtvFRfZxjMv8DpMALUm6qFUBC6i/NLlsliVAEa+XiWiIehrKaMaK7ykximBYYfAd3ERq7KTakYceFZYZygtM4ugj5GBtQnx596dtVydS2/n32zTqWaYd/eOwh6+N7FKGeaeI9Vo4DLQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=H/8nsYaWX/Qy2YXEnaQVtt+2CS/ccBjAE7ZxT75UO5Q=;
 b=ncJV50jwoZ5NEwA2JtwHK7kW7uBPiyl3dlKcM+of/Sy1kaol1t7nW+NIyozlcqvsswZMcuCcOnov3r32LWD/KtUPkt71AbvzRgPy+6GaOlYChkXCQ8kfDOxjXVICRWqg9jYyypjriC/CAlj33smkcGAVbktr04mmLMT7EXvjvBc=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 02/10] xen/arm: ffa: per-VM FFA_VERSION negotiation state
Thread-Topic: [PATCH 02/10] xen/arm: ffa: per-VM FFA_VERSION negotiation state
Thread-Index: AQHcX7Xvyms3Jvlueked9RGXf9F8HrUOP4gAgABRawA=
Date: Tue, 2 Dec 2025 16:25:02 +0000
Message-ID: <BBA18875-32B0-4CAE-91B3-160DBD1B3BB8@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
 <5e66b2991340f010befcaa3a57d0f35ad18d4149.1764254975.git.bertrand.marquis@arm.com>
 <CAHUa44E1SnhBR8=ibG+r6QPN9hehcRVPa93zKpYd756OHza+=A@mail.gmail.com>
In-Reply-To:
 <CAHUa44E1SnhBR8=ibG+r6QPN9hehcRVPa93zKpYd756OHza+=A@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.200.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|VE1PR08MB5824:EE_|AM2PEPF0001C70C:EE_|DB9PR08MB11312:EE_
X-MS-Office365-Filtering-Correlation-Id: 89204812-fbc9-4451-bbab-08de31bf7e0e
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?WndaZXozU3ZOd2xBK0xkSFFNM2RoUGNicS9qK0w0TnEzSmtzZUNxWDVNOUNL?=
 =?utf-8?B?M2F6R2JxdkM1aXMzbWIzTGJDRTNFVnBkRjF1cmhyaTBkcUpDUlFJUmxSOXRN?=
 =?utf-8?B?TE83WjJCUmtqZUhES3FhTlhuY051SzVZRlJ4Z0N5R2QyamhiMzhBaU16OWdG?=
 =?utf-8?B?MjVmZGRwN2lVQkFsQW9GT3l2dTJpaCtvVU5NMmlMeTdmWWMyVWtMNElwQVUx?=
 =?utf-8?B?U2R2MW5ja1hjdERRbEdscTd0ZzZoNVlmNThrVkF6TUU0bHRweGUvQVhCcUxD?=
 =?utf-8?B?dmJPTXMrZDQ5c2FzbVVCTTc4SjlOMmRqYjNobHlzMTREUlVUZ2ZEL1RVeTh0?=
 =?utf-8?B?VTZJMTBjWWlpbmhjWHZFdTh4WjRvOG5ZNlRBdGxqVG8yU3JQQ25VdXdvVTdt?=
 =?utf-8?B?UEplc1pITjcxUmVoeHR5aXZIdkhSeDR5eFljUFQ2N3UzYjhMS0ZFU084d1pZ?=
 =?utf-8?B?VURac2Y0VWwyLzJzelZQUFREYXlid0RJa1YxMlpxQTIxaUlIcS9tOVBmUTUv?=
 =?utf-8?B?RnVCUlVqbjRoVkk1V0JGcTF0V29ldUdqNzJmOVhjbnpMMDdqcW9GbzJES0lK?=
 =?utf-8?B?ZXFmMjZBM0FLYk4yVzZoUWd5T0VtY29qcm5YckdyRmMwbVdMS0xYUTBoc0VY?=
 =?utf-8?B?V1ZSa3JjTFkrcTJKdDVSbmRxZmNCVFJCQU1GbmxaZGVZcHoyeWh4cUZ1bVNU?=
 =?utf-8?B?Q2wwL211NkpUMXYwNWl5OHYvblQ0ZnU1OEN6MmZWbWtyb2FMRUJRNUlUV0xi?=
 =?utf-8?B?OVBsQTFrTnQ1WmlqeTZtSlFOQnkvQzBNNmZxUmg0MmZMU20wRGxKYWJZU25L?=
 =?utf-8?B?aUl5S1Jhck04ZzNqZWlvcFJpUjUxbTBsRDRVbEdWZ09ycnY1c2xqZ0ZjbGtB?=
 =?utf-8?B?c1hzRU85RlE1YUpCRWIrL1pBeTltZ1J6M2hLdGZ0bkNqYjJtMmRjOVVxeVkv?=
 =?utf-8?B?ZTY1K3VlbGh0bVkyZFYrdnE0ZFFzL3RsMFMwT3ZyWlY4YkI5cndSdUZydThw?=
 =?utf-8?B?VHZNZklXN1ZJZE1raFd4djZQUXM0cnIwOGlSQlhTY3RTZld0bm9yUythVS9H?=
 =?utf-8?B?WjU3UEZmb2VEVlczRmlSQUVhYy83STI2T2Nnc0Roa3ozejZYMzNDbWNiUTlB?=
 =?utf-8?B?Z3oxSTFiTDg5TWM3dEVZZENvbUFPVy81dFRlZ0Z0N0NOUHRMQXpDN0FKcEhH?=
 =?utf-8?B?aXdjWFdRVXNyVERuajdlY1ptck9nd3NiNERZNmNKNTIxbitWamxHT3hSUXhX?=
 =?utf-8?B?NHpSMlo5RGJ2Q3hGOGhaTUJ2MmtFaDByQ3NNUnBQVU5oK0txVW8xdUZKMzJS?=
 =?utf-8?B?Sk1kUm1zQWtUS0l6b0l5YVUrTVp1d1FoTE5hem8yaktjUWFLY0h0bU1MOE1J?=
 =?utf-8?B?Smh4NUNWV1FWNDhrVE1lSFlqMTBibkhyU3M0WDBDWUIzQnNBemhORmxBZlpJ?=
 =?utf-8?B?U0tYTTZUeW5uRWYvbk5BRWdiODA4Y0lYNDdhSlJnakJJbmpKbGdGTlBXdVZO?=
 =?utf-8?B?Zm5jUnJzNEFnUnJzWlVuZ0JrQkllaVVNQll2OENZUFVpNjMxL2R1T3hrYmNI?=
 =?utf-8?B?YXQxVlVIOXdVT2M3aS91NGlSeDUwTjlld0dCTXdadzRoRmRUUUNLZnFnWnlx?=
 =?utf-8?B?UHZTa1pNU3FyM1BweTBpREsrNThab2o1TGIxUE5lVi9scXFxKzdnYllyL2xK?=
 =?utf-8?B?TmhSUzhSS05XeFM4TW5IZWdqMmFKOWVpVUdGNHdJdXpSSUE2NVVlbURJQnlp?=
 =?utf-8?B?ZkZJdldXV2JtU1ZoNDdDUitUbjNjSmhkdHQ1alZ5Ri9YUDFML2FPZFFTOWJQ?=
 =?utf-8?B?cjI5eUlwRkFIYXVZdkdjcUxldGl0N01jMC9vbkdxM3RXUlZ6ZERvR2dUOWJH?=
 =?utf-8?B?UTFRcmZhNEszd2UvRTBWcVk1bXFFNU4zK2NyWnIrMjh6UUk2OElKdlB2THp1?=
 =?utf-8?B?b056SU9wdHh2em9YMmhHeHlXV3RvUEFScTJtNGRablJaVkhTV2o4TkpEeksx?=
 =?utf-8?B?d1QyY3d3V3dPa0F4bjJ5ZWt0VXN4dHVBVW1JZ1B3SFArbkEremMwNWlGc2tF?=
 =?utf-8?Q?9fV5PU?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <60CDFFD39D3AB844820588BCCAF2BA9E@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5824
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM2PEPF0001C70C.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	ebaadfaf-4a8e-4940-f273-08de31bf58a6
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|35042699022|1800799024|36860700013|376014|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?c1hDNmpqWXF4Y3UySllwMklBSW51dkVSaEJSeFo1MlFuT2NzRGRpT3hSTkhw?=
 =?utf-8?B?R2JCQUNoRytpRnBwTkxqcURyUkZVKzl5SUZLbi9pTjZWYUp2eXYveWFQU3Iy?=
 =?utf-8?B?c0dhS0pXRVFtZVFrWFVoNUxOdXMzQlJmcEpxZzl5eFc1UEx5YzU5QWs4UEFy?=
 =?utf-8?B?SzlLeFlEaU9KQWRVRUpPWkJKZFZqS1NHall0Y3JtTzU5QkJienBZeTZiWXJm?=
 =?utf-8?B?eTNzZXFleG5EcDdxby9yRGR3dENNV2srRzl0Um93cUc4bExieTdBdG94OEwz?=
 =?utf-8?B?SHZGY1ZmdExucUQrZVpPSGYrUHhQSmhNYi9wc3dQU3h3WXZ1ejc0RGJjK3po?=
 =?utf-8?B?Z1BTTXEzaktEU0RWcFFWSnR5cmpNNklIajE1TFZ1TDk4THpkN3liU1RpNUZh?=
 =?utf-8?B?Kys3SzJNeHFJWEY0L0pBS2pId2R0ZGh4UE82NE1YUW9uNU1kVGJkTUtBV2Ir?=
 =?utf-8?B?cDlGSWJ1V0Y2QzhaSk0rQi9wR1FUSW9FSHBPc2hJTzRiUnNKRFplTVg5Mmh4?=
 =?utf-8?B?cUR6eFZJL1M0OVUzSEljNkdodlI1bm8rU3pBZXY5eHVjUURmdTZROUlMMUJr?=
 =?utf-8?B?OHNtMmVwWXZOSjF1T1BoZWhOVWVkTnVlRGFoUXUxc0hCK0hNR01qSWszaXFo?=
 =?utf-8?B?SzlKNmtVRDIxeVkyOU4zN1JubTJhSitDcmxsVTlpeDBmUEMwSjR2Q1o3d3My?=
 =?utf-8?B?Z05yN2lDSG1PT3lIZ2xhWHVQVEhiSndNNE9VUkozU1FmT0hVbDVOQ2VZa0ZY?=
 =?utf-8?B?c3dpclYySkhlVXRXUVpnY1locVRia2RlSEtQeUtUdW9MVGFtMWcrQ1pEbzdK?=
 =?utf-8?B?eDhWZE1kVTdZVVJQaE00RkJWOE9CSkJnRWI0TkxJS3MzUVBkdTcvMkd6dUxh?=
 =?utf-8?B?U3RmMFlud093d09EK01rL1VKemFoN0F0cEg2QXFybTkzcUlmR1pMVEJwaW1r?=
 =?utf-8?B?RnEyRGJIUmtUYnVZUE1tSTlwSS96Z29YOWtuUmEyNE9jSkVmNnROLzd0Q0pU?=
 =?utf-8?B?cUFHT0RLU0tLV3hhL0hVdXpac2wwT1dKV3p6S0ZzNlUrdWwrdnNsVVVLbFJz?=
 =?utf-8?B?MGpwM1ZnVDc4bW45azAxZEtCd0dKakRSTnVsWDdRRVl2WFlwRjh4N242VCtw?=
 =?utf-8?B?MVRQUjhIbkNHV21JWVYrRU8ybUhUZ0xNcmVQb0txR29zdG8rZ3hyM1VqOWg2?=
 =?utf-8?B?Nk1GbU0wTFdrc3lHbmlTRVI3RXZabmhhalh2YkU5TTIzWCtqRFFvMktabFRu?=
 =?utf-8?B?Rys5cTVhK2NoWnhmMkptbjdYeU1NNlViQy9lbnJGZnAreThzdVhncTEvQWdJ?=
 =?utf-8?B?ZGNNdGtBT25wVmNNS0E2aklWcHJmRUdHcE1NZzR4OGY4NkptRVBHSEJVcTRC?=
 =?utf-8?B?dzdnWUlxNG9wb0YzMFEzOW5pelpKTGN4SWc3VFpkVm1vUUwzVFlrbDdoVzVI?=
 =?utf-8?B?aU5Ta3NCRTJxRTV5U0pjbnlpKzRNYTlhaEYvU2NrZXovNTJJSHF3ejBNRVVS?=
 =?utf-8?B?ZmE1QndSVVpmaEtWb1RDOWtKNk04VmE3YVhzSWdISkVhT2ViYXZYV29jTTdT?=
 =?utf-8?B?R1VvMWYzMG1TcEpWcnl4S1Y5RmkrQktnR1Y3cGV2NUhhbEE5RzNPUFB6VFhZ?=
 =?utf-8?B?RXRrT3EvOU9rdXNFOHJ3UUlqbWhGcy9tVUhuRjJad2kzWkRWdXNNTDZnYnp3?=
 =?utf-8?B?eW1kUlJPK2tjVmJKQ3ZjMnRiNnlRSHdBajRYaThPd1VsbldJc2Y0S2R5eDJj?=
 =?utf-8?B?RlZ4d1dTNGxRTFFaOWtnQ0FlbVpOQW9HcUQ2Y2tyZDVDMU93czIxMnM3d0R4?=
 =?utf-8?B?Z2E5ZitZTmgzSkRNSFZ0Z1FkaG9Vamg2UjAxZzB1Tzl6RmpMUlhZcDU0SFA0?=
 =?utf-8?B?QWJ3elphUDhRN3lZT1Q0SE5xYWFGOHErTmpuMDk2ZHdULytycWlsT1JMK0xT?=
 =?utf-8?B?YlovbjlqTUFoTmRFZWpOc29KNm03Nmg4VkVVVUV3dEdNZlVuVXRvQ0dCekxT?=
 =?utf-8?B?UzFQRHF1RXZWYmJwSUkxT3V5cnI1WTBrL3JWQ1pnNlhOZlRmWHpIc2dhelZP?=
 =?utf-8?B?YW9XQUVBMlpzK0psOVhVNzJhdmRRRml3U0l2bkRuTGsySFhCSnQ0V3AwV3lK?=
 =?utf-8?Q?yNxg=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(35042699022)(1800799024)(36860700013)(376014)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2025 16:26:05.5511
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 89204812-fbc9-4451-bbab-08de31bf7e0e
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM2PEPF0001C70C.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB11312

SGkgSmVucywNCg0KPiBPbiAyIERlYyAyMDI1LCBhdCAxMjozMywgSmVucyBXaWtsYW5kZXIgPGpl
bnMud2lrbGFuZGVyQGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gSGkgQmVydHJhbmQsDQo+IA0K
PiANCj4gT24gVGh1LCBOb3YgMjcsIDIwMjUgYXQgNDo1MuKAr1BNIEJlcnRyYW5kIE1hcnF1aXMN
Cj4gPGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT4gd3JvdGU6DQo+PiANCj4+IFRyYWNrIEZGLUEg
dmVyc2lvbiBuZWdvdGlhdGlvbiBwZXIgVk0gYW5kIGVuZm9yY2UgdGhhdCBubyBGRi1BIEFCSQ0K
Pj4gKG90aGVyIHRoYW4gRkZBX1ZFUlNJT04pIGlzIHByb2Nlc3NlZCBiZWZvcmUgYSBndWVzdCBo
YXMgc2VsZWN0ZWQgYQ0KPj4gdmVyc2lvbi4NCj4+IA0KPj4gRWFjaCBmZmFfY3R4IGdhaW5zIGEg
ZGVkaWNhdGVkIGd1ZXN0X3ZlcnNfbG9jaywgYSBuZWdvdGlhdGVkIHZlcnNpb24NCj4+IChndWVz
dF92ZXJzKSBhbmQgYSBndWVzdF92ZXJzX25lZ290aWF0ZWQgZmxhZy4gZ3Vlc3RfdmVycyByZWNv
cmRzIHRoZQ0KPj4gdmVyc2lvbiByZXF1ZXN0ZWQgYnkgdGhlIGd1ZXN0IHNvIHRoZSBtZWRpYXRv
ciBjYW4gcHJvdmlkZSBkYXRhDQo+PiBzdHJ1Y3R1cmVzIGNvbXBhdGlibGUgd2l0aCBvbGRlciBt
aW5vciB2ZXJzaW9ucy4gVGhlIHZhbHVlIHJldHVybmVkIHRvDQo+PiB0aGUgZ3Vlc3QgYnkgRkZB
X1ZFUlNJT04gaXMgYWx3YXlzIEZGQV9NWV9WRVJTSU9OLCB0aGUgaW1wbGVtZW50YXRpb24NCj4+
IHZlcnNpb24sIGFzIHJlcXVpcmVkIGJ5IEZGLUEuDQo+PiANCj4+IEZGQV9WRVJTSU9OIG1heSBi
ZSBpc3N1ZWQgbXVsdGlwbGUgdGltZXMuIE5lZ290aWF0aW9uIGJlY29tZXMgZmluYWwNCj4+IG9u
bHkgd2hlbiBhIG5vbi1GRkFfVkVSU0lPTiBBQkkgaXMgaW52b2tlZCwgaW4gYWNjb3JkYW5jZSB3
aXRoIHRoZQ0KPj4gRkYtQSByZXF1aXJlbWVudCB0aGF0IHRoZSB2ZXJzaW9uIGNhbm5vdCBjaGFu
Z2Ugb25jZSBhbnkgb3RoZXIgQUJJIGhhcw0KPj4gYmVlbiB1c2VkLiBCZWZvcmUgdGhpcyBwb2lu
dCwgbm9uLUZGQV9WRVJTSU9OIEFCSXMgYXJlIHJlamVjdGVkIGlmIG5vDQo+PiB2YWxpZCB2ZXJz
aW9uIGhhcyBiZWVuIHByb3ZpZGVkLg0KPj4gDQo+PiBPbmNlIG5lZ290aWF0aW9uIGNvbXBsZXRl
cywgdGhlIGNvbnRleHQgaXMgYWRkZWQgdG8gdGhlIGdsb2JhbCBGRi1BDQo+PiBWTSBsaXN0ICh3
aGVuIFZNLXRvLVZNIGlzIGVuYWJsZWQpIGFuZCB0aGUgdmVyc2lvbiBtYXkgbm90IGJlIG1vZGlm
aWVkDQo+PiBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBWTS4gQWxsIFZNLXRvLVZNIHBhdGhzIGFu
ZCB0ZWFyZG93biBsb2dpYyBhcmUNCj4+IHVwZGF0ZWQgdG8gdXNlIHRoZSBndWVzdF92ZXJzX25l
Z290aWF0ZWQgZmxhZy4NCj4+IA0KPj4gVGhpcyBwcmV2ZW50cyBwYXJ0aWFsbHkgaW5pdGlhbGlz
ZWQgY29udGV4dHMgZnJvbSB1c2luZyB0aGUgbWVkaWF0b3INCj4+IGFuZCBjb21wbGllcyB3aXRo
IHRoZSBGRi1BIDEuMiBGRkFfVkVSU0lPTiBzZW1hbnRpY3MuDQo+PiANCj4+IFNpZ25lZC1vZmYt
Ynk6IEJlcnRyYW5kIE1hcnF1aXMgPGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT4NCj4+IC0tLQ0K
Pj4geGVuL2FyY2gvYXJtL3RlZS9mZmEuYyAgICAgICAgIHwgMTE1ICsrKysrKysrKysrKysrKysr
KysrKysrKystLS0tLS0tLQ0KPj4geGVuL2FyY2gvYXJtL3RlZS9mZmFfbXNnLmMgICAgIHwgICAy
ICstDQo+PiB4ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wcml2YXRlLmggfCAgMjEgKysrKy0tDQo+PiAz
IGZpbGVzIGNoYW5nZWQsIDEwNCBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkNCj4+IA0K
Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90ZWUvZmZhLmMgYi94ZW4vYXJjaC9hcm0vdGVl
L2ZmYS5jDQo+PiBpbmRleCAyYjRlMjQ3NTBkNTIuLjMzMDljYTg3NWVjNCAxMDA2NDQNCj4+IC0t
LSBhL3hlbi9hcmNoL2FybS90ZWUvZmZhLmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS90ZWUvZmZh
LmMNCj4+IEBAIC0xNTgsNDAgKzE1OCw4OSBAQCBzdGF0aWMgYm9vbCBmZmFfYWJpX3N1cHBvcnRl
ZCh1aW50MzJfdCBpZCkNCj4+ICAgICByZXR1cm4gIWZmYV9zaW1wbGVfY2FsbChGRkFfRkVBVFVS
RVMsIGlkLCAwLCAwLCAwKTsNCj4+IH0NCj4+IA0KPj4gLXN0YXRpYyB2b2lkIGhhbmRsZV92ZXJz
aW9uKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4gK3N0YXRpYyBib29sIGZmYV9uZWdv
dGlhdGVfdmVyc2lvbihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykNCj4+IHsNCj4+ICAgICBz
dHJ1Y3QgZG9tYWluICpkID0gY3VycmVudC0+ZG9tYWluOw0KPj4gICAgIHN0cnVjdCBmZmFfY3R4
ICpjdHggPSBkLT5hcmNoLnRlZTsNCj4+IC0gICAgdWludDMyX3QgdmVycyA9IGdldF91c2VyX3Jl
ZyhyZWdzLCAxKTsNCj4+IC0gICAgdWludDMyX3Qgb2xkX3ZlcnM7DQo+PiArICAgIHVpbnQzMl90
IGZpZCA9IGdldF91c2VyX3JlZyhyZWdzLCAwKTsNCj4+ICsgICAgdWludDMyX3QgaW5fdmVycyA9
IGdldF91c2VyX3JlZyhyZWdzLCAxKTsNCj4+ICsgICAgdWludDMyX3Qgb3V0X3ZlcnMgPSBGRkFf
TVlfVkVSU0lPTjsNCj4+IA0KPj4gLSAgICAvKg0KPj4gLSAgICAgKiBHdWVzdCB3aWxsIHVzZSB0
aGUgdmVyc2lvbiBpdCByZXF1ZXN0ZWQgaWYgaXQgaXMgb3VyIG1ham9yIGFuZCBtaW5vcg0KPj4g
LSAgICAgKiBsb3dlciBvciBlcXVhbHMgdG8gb3Vycy4gSWYgdGhlIG1pbm9yIGlzIGdyZWF0ZXIs
IG91ciB2ZXJzaW9uIHdpbGwgYmUNCj4+IC0gICAgICogdXNlZC4NCj4+IC0gICAgICogSW4gYW55
IGNhc2UgcmV0dXJuIG91ciB2ZXJzaW9uIHRvIHRoZSBjYWxsZXIuDQo+PiAtICAgICAqLw0KPj4g
LSAgICBpZiAoIEZGQV9WRVJTSU9OX01BSk9SKHZlcnMpID09IEZGQV9NWV9WRVJTSU9OX01BSk9S
ICkNCj4+IC0gICAgew0KPj4gLSAgICAgICAgc3Bpbl9sb2NrKCZjdHgtPmxvY2spOw0KPj4gLSAg
ICAgICAgb2xkX3ZlcnMgPSBjdHgtPmd1ZXN0X3ZlcnM7DQo+PiArICAgIHNwaW5fbG9jaygmY3R4
LT5ndWVzdF92ZXJzX2xvY2spOw0KPj4gDQo+PiAtICAgICAgICBpZiAoIEZGQV9WRVJTSU9OX01J
Tk9SKHZlcnMpID4gRkZBX01ZX1ZFUlNJT05fTUlOT1IgKQ0KPj4gLSAgICAgICAgICAgIGN0eC0+
Z3Vlc3RfdmVycyA9IEZGQV9NWV9WRVJTSU9OOw0KPj4gLSAgICAgICAgZWxzZQ0KPj4gLSAgICAg
ICAgICAgIGN0eC0+Z3Vlc3RfdmVycyA9IHZlcnM7DQo+PiAtICAgICAgICBzcGluX3VubG9jaygm
Y3R4LT5sb2NrKTsNCj4+ICsgICAgLyogSGFuZGxlIEZGQV9WRVJTSU9OIHJhY2VzIGZyb20gZGlm
ZmVyZW50IHZDUFVzLiAqLw0KPj4gKyAgICBpZiAoIGN0eC0+Z3Vlc3RfdmVyc19uZWdvdGlhdGVk
ICkNCj4+ICsgICAgICAgIGdvdG8gb3V0X2NvbnRpbnVlOw0KPj4gDQo+PiAtICAgICAgICBpZiAo
IElTX0VOQUJMRUQoQ09ORklHX0ZGQV9WTV9UT19WTSkgJiYgIW9sZF92ZXJzICkNCj4+ICsgICAg
aWYgKCBmaWQgIT0gRkZBX1ZFUlNJT04gKQ0KPj4gKyAgICB7DQo+PiArICAgICAgICBpZiAoICFj
dHgtPmd1ZXN0X3ZlcnMgKQ0KPj4gICAgICAgICB7DQo+PiAtICAgICAgICAgICAgLyogT25lIG1v
cmUgVk0gd2l0aCBGRi1BIHN1cHBvcnQgYXZhaWxhYmxlICovDQo+PiAtICAgICAgICAgICAgaW5j
X2ZmYV92bV9jb3VudCgpOw0KPj4gLSAgICAgICAgICAgIHdyaXRlX2xvY2soJmZmYV9jdHhfbGlz
dF9yd2xvY2spOw0KPj4gLSAgICAgICAgICAgIGxpc3RfYWRkX3RhaWwoJmN0eC0+Y3R4X2xpc3Qs
ICZmZmFfY3R4X2hlYWQpOw0KPj4gLSAgICAgICAgICAgIHdyaXRlX3VubG9jaygmZmZhX2N0eF9s
aXN0X3J3bG9jayk7DQo+PiArICAgICAgICAgICAgb3V0X3ZlcnMgPSAwOw0KPj4gKyAgICAgICAg
ICAgIGdvdG8gb3V0X2hhbmRsZWQ7DQo+PiAgICAgICAgIH0NCj4+ICsNCj4+ICsgICAgICAgIC8q
DQo+PiArICAgICAgICAgKiBBIHN1Y2Nlc3NmdWwgRkZBX1ZFUlNJT04gY2FsbCBkb2VzIG5vdCBm
cmVlemUgbmVnb3RpYXRpb24uIEd1ZXN0cw0KPj4gKyAgICAgICAgICogYXJlIGFsbG93ZWQgdG8g
aXNzdWUgbXVsdGlwbGUgRkZBX1ZFUlNJT04gYXR0ZW1wdHMgKGUuZy4gcHJvYmluZw0KPj4gKyAg
ICAgICAgICogc2V2ZXJhbCBtaW5vciB2ZXJzaW9ucykuIE5lZ290aWF0aW9uIGJlY29tZXMgZmlu
YWwgb25seSB3aGVuIGENCj4+ICsgICAgICAgICAqIG5vbi1WRVJTSU9OIEFCSSBpcyBpbnZva2Vk
LCBhcyByZXF1aXJlZCBieSB0aGUgRkYtQSBzcGVjaWZpY2F0aW9uLg0KPj4gKyAgICAgICAgICov
DQo+PiArICAgICAgICBpZiAoICFjdHgtPmd1ZXN0X3ZlcnNfbmVnb3RpYXRlZCApDQo+IA0KPiBj
dHgtPmd1ZXN0X3ZlcnNfbmVnb3RpYXRlZCBpcyBhbHdheXMgZmFsc2UgaGVyZSwgZHVlIHRvIHRo
ZSBjaGVjayBhYm92ZS4NCg0KQWJzb2x1dGVseSwgSSB3aWxsIHJlbW92ZSB0aGUgaWYgaGVyZSBz
byB0aGF0IHdlIHNldCB2ZXJzaW9uIHRvIG5lZ290aWF0ZWQgb24NCnRoZSBmaXJzdCBwYXNzIGFu
ZCBkbyBub3QgY29tZSBiYWNrIGhlcmUgYWZ0ZXIuDQoNCj4gDQo+PiArICAgICAgICB7DQo+PiAr
ICAgICAgICAgICAgY3R4LT5ndWVzdF92ZXJzX25lZ290aWF0ZWQgPSB0cnVlOw0KPiANCj4gSSdt
IG9uIHRoaW4gaWNlIGhlcmUsIGJ1dCBJIHRoaW5rIHRoYXQgYmFycmllcnMgb3Igc29tZSBvdGhl
cg0KPiBwcmltaXRpdmVzIGFyZSBuZWVkZWQgdG8gY2xvc2UgdGhlIGdhcCBpZiBmZmFfaGFuZGxl
X2NhbGwoKSBpcyBjYWxsZWQNCj4gY29uY3VycmVudGx5IGR1cmluZyB0aGVzZSBjb25kaXRpb25z
Og0KPiBjdHgtPmd1ZXN0X3ZlcnNfbmVnb3RpYXRlZCA9PSBmYWxzZQ0KPiBDUFUwIGNhbGxlZCB3
aXRoIEZGQV9WRVJTSU9OIDEuMSAtPiBzZXRzIGN0eC0+Z3Vlc3RfdmVycyA9IDEuMQ0KPiBDUFUx
IGNhbGxlZCB3aXRoIGEgdmFsaWQgRkYtQSBJRCAhPSBGRkFfVkVSU0lPTiAtPiBzZXRzDQo+IGN0
eC0+Z3Vlc3RfdmVyc19uZWdvdGlhdGVkID0gdHJ1ZQ0KPiBDUFUyIGNhbGxlZCB3aXRoIGEgdmFs
aWQgRkYtQSBJRCAhPSBGRkFfVkVSU0lPTiAtPiBndWFyYW50ZWUgaXMNCj4gbWlzc2luZyB0aGF0
IENQVTIgd2lsbCBvYnNlcnZlIHRoZSB1cGRhdGVkIGN0eC0+Z3Vlc3RfdmVycyBpZiBpdA0KPiBv
YnNlcnZlcyB0aGUgdXBkYXRlZCBjdHgtPmd1ZXN0X3ZlcnNfbmVnb3RpYXRlZA0KDQpEZWZpbml0
ZWx5IHlvdSBhcmUgcmlnaHQgYW5kIHRoZSBjb21iaW5hdGlvbiBvZiBndWVzdF92ZXJzIGFuZA0K
Z3Vlc3RfdmVyc19uZWdvdGlhdGVkIGhhcyBhbiBpc3N1ZSB3aXRoIG9yZGVyaW5nLg0KDQpJIHRo
aW5rIHRoZSBmb2xsb3dpbmcgbW9kaWZpY2F0aW9uIHNob3VsZCBzb2x2ZSB0aGlzOg0KLSByZW1v
dmUgZ3Vlc3RfdmVyc19uZWdvdGlhdGVkIGFuZCB1c2UgZ3Vlc3RfdmVycyA9IDAgYXMgdGVzdCBm
b3INCnZlcnNpb24gbmVnb3RpYXRlZCB1c2VkIHdpdGggQUNDRVNTX09OQ0UNCi0gaW50cm9kdWNl
ZCBhIGd1ZXN0X3ZlcnNfdG1wIG9ubHkgYWNjZXNzZWQgdW5kZXIgdGhlIGxvY2sgdG8gc3RvcmUN
CnRoZSB0ZW1wb3JhcnkgYWdyZWVkIHZlcnNpb24gdW50aWwgbmVnb3RpYXRpb24gaXMgZG9uZQ0K
LSBkdXJpbmcgbmVnb3RpYXRpb24gZG9uZSBjb3B5IHRtcCBpbnRvIGd1ZXN0X3ZlcnMgd2l0aCBh
IHByZXZpb3VzDQp3cml0ZSBiYXJyaWVyIGJlZm9yZSBhbmQgQUNDRVNTX09OQ0UgdG8gZW5zdXJl
IHZpc2liaWxpdHkNCg0KVGVsbCBpZiB0aGF0IHNvdW5kcyByaWdodCA6LSkNCg0KQ2hlZXJzDQpC
ZXJ0cmFuZA0KDQo+IA0KPiBDaGVlcnMsDQo+IEplbnMNCj4gDQo+PiArDQo+PiArICAgICAgICAg
ICAgaWYgKCBJU19FTkFCTEVEKENPTkZJR19GRkFfVk1fVE9fVk0pICkNCj4+ICsgICAgICAgICAg
ICB7DQo+PiArICAgICAgICAgICAgICAgIC8qIE9uZSBtb3JlIFZNIHdpdGggRkYtQSBzdXBwb3J0
IGF2YWlsYWJsZSAqLw0KPj4gKyAgICAgICAgICAgICAgICBpbmNfZmZhX3ZtX2NvdW50KCk7DQo+
PiArICAgICAgICAgICAgICAgIHdyaXRlX2xvY2soJmZmYV9jdHhfbGlzdF9yd2xvY2spOw0KPj4g
KyAgICAgICAgICAgICAgICBsaXN0X2FkZF90YWlsKCZjdHgtPmN0eF9saXN0LCAmZmZhX2N0eF9o
ZWFkKTsNCj4+ICsgICAgICAgICAgICAgICAgd3JpdGVfdW5sb2NrKCZmZmFfY3R4X2xpc3Rfcnds
b2NrKTsNCj4+ICsgICAgICAgICAgICB9DQo+PiArICAgICAgICB9DQo+PiArDQo+PiArICAgICAg
ICBnb3RvIG91dF9jb250aW51ZTsNCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICAvKg0KPj4gKyAg
ICAgKiBndWVzdF92ZXJzIHN0b3JlcyB0aGUgdmVyc2lvbiBzZWxlY3RlZCBieSB0aGUgZ3Vlc3Qg
KGxvd2VyIG1pbm9yIG1heQ0KPj4gKyAgICAgKiByZXF1aXJlIHJlZHVjZWQgZGF0YSBzdHJ1Y3R1
cmVzKS4gSG93ZXZlciwgdGhlIHZhbHVlIHJldHVybmVkIHRvIHRoZQ0KPj4gKyAgICAgKiBndWVz
dCB2aWEgRkZBX1ZFUlNJT04gaXMgYWx3YXlzIEZGQV9NWV9WRVJTSU9OLCB0aGUgaW1wbGVtZW50
YXRpb24NCj4+ICsgICAgICogdmVyc2lvbiwgYXMgcmVxdWlyZWQgYnkgRkYtQS4gVGhlIHR3byB2
YWx1ZXMgaW50ZW50aW9uYWxseSBkaWZmZXIuDQo+PiArICAgICAqLw0KPj4gKw0KPj4gKyAgICAv
Kg0KPj4gKyAgICAgKiBSZXR1cm4gb3VyIGhpZ2hlc3QgaW1wbGVtZW50YXRpb24gdmVyc2lvbiBv
biByZXF1ZXN0IGRpZmZlcmVudCB0aGFuIG91cg0KPj4gKyAgICAgKiBtYWpvciBhbmQgbWFyayBu
ZWdvdGlhdGVkIHZlcnNpb24gYXMgb3VyIGltcGxlbWVudGF0aW9uIHZlcnNpb24uDQo+PiArICAg
ICAqLw0KPj4gKyAgICBpZiAoIEZGQV9WRVJTSU9OX01BSk9SKGluX3ZlcnMpICE9IEZGQV9NWV9W
RVJTSU9OX01BSk9SICkNCj4+ICsgICAgew0KPj4gKyAgICAgICAgY3R4LT5ndWVzdF92ZXJzID0g
RkZBX01ZX1ZFUlNJT047DQo+PiArICAgICAgICBnb3RvIG91dF9oYW5kbGVkOw0KPj4gICAgIH0N
Cj4+IC0gICAgZmZhX3NldF9yZWdzKHJlZ3MsIEZGQV9NWV9WRVJTSU9OLCAwLCAwLCAwLCAwLCAw
LCAwLCAwKTsNCj4+ICsNCj4+ICsgICAgLyoNCj4+ICsgICAgICogVXNlIG91ciBtaW5vciB2ZXJz
aW9uIGlmIGEgZ3JlYXRlciBtaW5vciB3YXMgcmVxdWVzdGVkIG9yIHRoZSByZXF1ZXN0ZWQNCj4+
ICsgICAgICogbWlub3IgaWYgaXQgaXMgbG93ZXIgdGhhbiBvdXJzIHdhcyByZXF1ZXN0ZWQuDQo+
PiArICAgICAqLw0KPj4gKyAgICBpZiAoIEZGQV9WRVJTSU9OX01JTk9SKGluX3ZlcnMpID4gRkZB
X01ZX1ZFUlNJT05fTUlOT1IgKQ0KPj4gKyAgICAgICAgY3R4LT5ndWVzdF92ZXJzID0gRkZBX01Z
X1ZFUlNJT047DQo+PiArICAgIGVsc2UNCj4+ICsgICAgICAgIGN0eC0+Z3Vlc3RfdmVycyA9IGlu
X3ZlcnM7DQo+PiArDQo+PiArb3V0X2hhbmRsZWQ6DQo+PiArICAgIHNwaW5fdW5sb2NrKCZjdHgt
Pmd1ZXN0X3ZlcnNfbG9jayk7DQo+PiArICAgIGlmICggb3V0X3ZlcnMgKQ0KPj4gKyAgICAgICAg
ZmZhX3NldF9yZWdzKHJlZ3MsIG91dF92ZXJzLCAwLCAwLCAwLCAwLCAwLCAwLCAwKTsNCj4+ICsg
ICAgZWxzZQ0KPj4gKyAgICAgICAgZmZhX3NldF9yZWdzX2Vycm9yKHJlZ3MsIEZGQV9SRVRfTk9U
X1NVUFBPUlRFRCk7DQo+PiArICAgIHJldHVybiB0cnVlOw0KPj4gKw0KPj4gK291dF9jb250aW51
ZToNCj4+ICsgICAgc3Bpbl91bmxvY2soJmN0eC0+Z3Vlc3RfdmVyc19sb2NrKTsNCj4+ICsNCj4+
ICsgICAgcmV0dXJuIGZhbHNlOw0KPj4gfQ0KPj4gDQo+PiBzdGF0aWMgdm9pZCBoYW5kbGVfZmVh
dHVyZXMoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpDQo+PiBAQCAtMjc0LDEwICszMjMsMTcg
QEAgc3RhdGljIGJvb2wgZmZhX2hhbmRsZV9jYWxsKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdz
KQ0KPj4gICAgIGlmICggIWN0eCApDQo+PiAgICAgICAgIHJldHVybiBmYWxzZTsNCj4+IA0KPj4g
KyAgICAvKiBBIHZlcnNpb24gbXVzdCBiZSBuZWdvdGlhdGVkIGZpcnN0ICovDQo+PiArICAgIGlm
ICggIWN0eC0+Z3Vlc3RfdmVyc19uZWdvdGlhdGVkICkNCj4+ICsgICAgew0KPj4gKyAgICAgICAg
aWYgKCBmZmFfbmVnb3RpYXRlX3ZlcnNpb24ocmVncykgKQ0KPj4gKyAgICAgICAgICAgIHJldHVy
biB0cnVlOw0KPj4gKyAgICB9DQo+PiArDQo+PiAgICAgc3dpdGNoICggZmlkICkNCj4+ICAgICB7
DQo+PiAgICAgY2FzZSBGRkFfVkVSU0lPTjoNCj4+IC0gICAgICAgIGhhbmRsZV92ZXJzaW9uKHJl
Z3MpOw0KPj4gKyAgICAgICAgZmZhX3NldF9yZWdzKHJlZ3MsIEZGQV9NWV9WRVJTSU9OLCAwLCAw
LCAwLCAwLCAwLCAwLCAwKTsNCj4+ICAgICAgICAgcmV0dXJuIHRydWU7DQo+PiAgICAgY2FzZSBG
RkFfSURfR0VUOg0KPj4gICAgICAgICBmZmFfc2V0X3JlZ3Nfc3VjY2VzcyhyZWdzLCBmZmFfZ2V0
X3ZtX2lkKGQpLCAwKTsNCj4+IEBAIC0zNzEsNiArNDI3LDExIEBAIHN0YXRpYyBpbnQgZmZhX2Rv
bWFpbl9pbml0KHN0cnVjdCBkb21haW4gKmQpDQo+PiAgICAgZC0+YXJjaC50ZWUgPSBjdHg7DQo+
PiAgICAgY3R4LT50ZWFyZG93bl9kID0gZDsNCj4+ICAgICBJTklUX0xJU1RfSEVBRCgmY3R4LT5z
aG1fbGlzdCk7DQo+PiArICAgIHNwaW5fbG9ja19pbml0KCZjdHgtPmxvY2spOw0KPj4gKyAgICBz
cGluX2xvY2tfaW5pdCgmY3R4LT5ndWVzdF92ZXJzX2xvY2spOw0KPj4gKyAgICBjdHgtPmd1ZXN0
X3ZlcnMgPSAwOw0KPj4gKyAgICBjdHgtPmd1ZXN0X3ZlcnNfbmVnb3RpYXRlZCA9IGZhbHNlOw0K
Pj4gKyAgICBJTklUX0xJU1RfSEVBRCgmY3R4LT5jdHhfbGlzdCk7DQo+PiANCj4+ICAgICBjdHgt
PmZmYV9pZCA9IGZmYV9nZXRfdm1faWQoZCk7DQo+PiAgICAgY3R4LT5udW1fdmNwdXMgPSBkLT5t
YXhfdmNwdXM7DQo+PiBAQCAtNDUyLDcgKzUxMyw3IEBAIHN0YXRpYyBpbnQgZmZhX2RvbWFpbl90
ZWFyZG93bihzdHJ1Y3QgZG9tYWluICpkKQ0KPj4gICAgIGlmICggIWN0eCApDQo+PiAgICAgICAg
IHJldHVybiAwOw0KPj4gDQo+PiAtICAgIGlmICggSVNfRU5BQkxFRChDT05GSUdfRkZBX1ZNX1RP
X1ZNKSAmJiBjdHgtPmd1ZXN0X3ZlcnMgKQ0KPj4gKyAgICBpZiAoIElTX0VOQUJMRUQoQ09ORklH
X0ZGQV9WTV9UT19WTSkgJiYgY3R4LT5ndWVzdF92ZXJzX25lZ290aWF0ZWQgKQ0KPj4gICAgIHsN
Cj4+ICAgICAgICAgZGVjX2ZmYV92bV9jb3VudCgpOw0KPj4gICAgICAgICB3cml0ZV9sb2NrKCZm
ZmFfY3R4X2xpc3Rfcndsb2NrKTsNCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdGVlL2Zm
YV9tc2cuYyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhX21zZy5jDQo+PiBpbmRleCBjMjBjNWJlYzBm
NzYuLmRlYzQyOWNiZjE2MCAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX21z
Zy5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9tc2cuYw0KPj4gQEAgLTExMyw3ICsx
MTMsNyBAQCBzdGF0aWMgaW50MzJfdCBmZmFfbXNnX3NlbmQyX3ZtKHVpbnQxNl90IGRzdF9pZCwg
Y29uc3Qgdm9pZCAqc3JjX2J1ZiwNCj4+ICAgICB9DQo+PiANCj4+ICAgICBkc3RfY3R4ID0gZHN0
X2QtPmFyY2gudGVlOw0KPj4gLSAgICBpZiAoICFkc3RfY3R4LT5ndWVzdF92ZXJzICkNCj4+ICsg
ICAgaWYgKCAhZHN0X2N0eC0+Z3Vlc3RfdmVyc19uZWdvdGlhdGVkICkNCj4+ICAgICB7DQo+PiAg
ICAgICAgIHJldCA9IEZGQV9SRVRfSU5WQUxJRF9QQVJBTUVURVJTOw0KPj4gICAgICAgICBnb3Rv
IG91dF91bmxvY2s7DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RlZS9mZmFfcHJpdmF0
ZS5oIGIveGVuL2FyY2gvYXJtL3RlZS9mZmFfcHJpdmF0ZS5oDQo+PiBpbmRleCBkN2U2YjZmNWVm
NDUuLjg4Yjg1YzdjNDUzYSAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX3By
aXZhdGUuaA0KPj4gKysrIGIveGVuL2FyY2gvYXJtL3RlZS9mZmFfcHJpdmF0ZS5oDQo+PiBAQCAt
MzU0LDEyICszNTQsNiBAQCBzdHJ1Y3QgZmZhX2N0eCB7DQo+PiAgICAgICogR2xvYmFsIGRhdGEg
YWNjZXNzZWQgd2l0aCBsb2NrIGxvY2tlZC4NCj4+ICAgICAgKi8NCj4+ICAgICBzcGlubG9ja190
IGxvY2s7DQo+PiAtICAgIC8qDQo+PiAtICAgICAqIEZGLUEgdmVyc2lvbiBuZWdvdGlhdGVkIGJ5
IHRoZSBndWVzdCwgb25seSBtb2RpZmljYXRpb25zIHRvDQo+PiAtICAgICAqIHRoaXMgZmllbGQg
YXJlIGRvbmUgd2l0aCB0aGUgbG9jayBoZWxkIGFzIHRoaXMgaXMgZXhwZWN0ZWQgdG8NCj4+IC0g
ICAgICogYmUgZG9uZSBvbmNlIGF0IGluaXQgYnkgYSBndWVzdC4NCj4+IC0gICAgICovDQo+PiAt
ICAgIHVpbnQzMl90IGd1ZXN0X3ZlcnM7DQo+PiAgICAgLyogTnVtYmVyIG9mIDRrQiBwYWdlcyBp
biBlYWNoIG9mIHJ4L3J4X3BnIGFuZCB0eC90eF9wZyAqLw0KPj4gICAgIHVuc2lnbmVkIGludCBw
YWdlX2NvdW50Ow0KPj4gICAgIC8qIE51bWJlciBvZiBhbGxvY2F0ZWQgc2hhcmVkIG1lbW9yeSBv
YmplY3QgKi8NCj4+IEBAIC0zNjcsNiArMzYxLDIxIEBAIHN0cnVjdCBmZmFfY3R4IHsNCj4+ICAg
ICAvKiBVc2VkIHNoYXJlZCBtZW1vcnkgb2JqZWN0cywgc3RydWN0IGZmYV9zaG1fbWVtICovDQo+
PiAgICAgc3RydWN0IGxpc3RfaGVhZCBzaG1fbGlzdDsNCj4+IA0KPj4gKyAgICAvKg0KPj4gKyAg
ICAgKiBGRi1BIHZlcnNpb24gaGFuZGxpbmcNCj4+ICsgICAgICogZ3Vlc3RfdmVycyBhbmQgZ3Vl
c3RfdmVyc19uZWdvdGlhdGVkIGFyZSBvbmx5IHdyaXR0ZW4gd2l0aA0KPj4gKyAgICAgKiBndWVz
dF92ZXJzX2xvY2sgaGVsZC4gUmVhZHMgZG8gbm90IHRha2UgdGhlIGxvY2ssIGJ1dCBvcmRlcmlu
ZyBpcw0KPj4gKyAgICAgKiBndWFyYW50ZWVkIGJlY2F1c2UgdGhlIHdyaXRlciB1cGRhdGVzIGd1
ZXN0X3ZlcnMgZmlyc3QgYW5kIHRoZW4NCj4+ICsgICAgICogZ3Vlc3RfdmVyc19uZWdvdGlhdGVk
IHdoaWxlIGhvbGRpbmcgdGhlIGxvY2ssIGVuc3VyaW5nIGFueSByZWFkZXINCj4+ICsgICAgICog
dGhhdCBvYnNlcnZlcyBndWVzdF92ZXJzX25lZ290aWF0ZWQgPT0gdHJ1ZSBhbHNvIHNlZXMgdGhl
IGZpbmFsDQo+PiArICAgICAqIGd1ZXN0X3ZlcnMgdmFsdWUuDQo+PiArICAgICAqIFRoZSBmZmFf
Y3R4IGlzIGFkZGVkIHRvIHRoZSBjdHhfbGlzdCBvbmx5IHdoZW4gYSB2ZXJzaW9uDQo+PiArICAg
ICAqIGhhcyBiZWVuIG5lZ290aWF0ZWQgYW5kIGxvY2tlZC4NCj4+ICsgICAgICovDQo+PiArICAg
IHNwaW5sb2NrX3QgZ3Vlc3RfdmVyc19sb2NrOw0KPj4gKyAgICB1aW50MzJfdCBndWVzdF92ZXJz
Ow0KPj4gKyAgICBib29sIGd1ZXN0X3ZlcnNfbmVnb3RpYXRlZDsNCj4+ICsNCj4+ICAgICAvKg0K
Pj4gICAgICAqIFJ4IGJ1ZmZlciwgYWNjZXNzZWQgd2l0aCByeF9sb2NrIGxvY2tlZC4NCj4+ICAg
ICAgKiByeF9pc19mcmVlIGlzIHVzZWQgdG8gc2VyaWFsaXplIGFjY2Vzcy4NCj4+IC0tDQo+PiAy
LjUxLjINCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Tue Dec 02 16:39:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 16:39:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176249.1500756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQTPd-00064b-Q8; Tue, 02 Dec 2025 16:39:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176249.1500756; Tue, 02 Dec 2025 16:39:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQTPd-00064U-Mt; Tue, 02 Dec 2025 16:39:37 +0000
Received: by outflank-mailman (input) for mailman id 1176249;
 Tue, 02 Dec 2025 16:39:36 +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
 <SRS0=YqM6=6I=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vQTPc-00064O-Ft
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 16:39:36 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7badc599-cf9d-11f0-9d1a-b5c5bf9af7f9;
 Tue, 02 Dec 2025 17:39:35 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CO1PR03MB7915.namprd03.prod.outlook.com (2603:10b6:303:270::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Tue, 2 Dec
 2025 16:39:31 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.003; Tue, 2 Dec 2025
 16:39:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7badc599-cf9d-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LbIf4JMge8OS+UCiFJto5uyD/KkdnJ4VIpxANRdVWk44xFl8NYYvrzJxL44wlpn1+eVsYN9pSfhTXVYyZxXkfZzMGPYaKklNkJWN7RTe7D0SxtZQwVbLelaYKNkoix0Ln+9xbevzia5u9tKHF+mMDP86Na/99doPXSU2YTBXy6t10AAeJB2xDg7YgedLfsbhlakeVQOYy/6X/u4HZdQVmt+yxrSe3BUdXA4QkkA+2fJalrDcxfzu+m9ySoazcjV7e0hqmXOLvi1fOV5ZzzGlgcxuWK0V3Y304zoZ3KoC+hKWF/Dw/1atfLJc1p8jgsL/FBKG1Qn+silrvDAgkMEX0Q==
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=XNiCogE6Pi2TTTBLzbjTvI7Jluz7Q9CDEMTi2mlQm50=;
 b=hOs+PhgrmV1Mn5XNRRjjLxL3bfylARgQ7m4AK97wDNRzip/T/88cm20qldHGqG/w+6UUppeYn1mMtUfFqbZ2a2gq7CTwZEiReEVtHBob9S4HwElWOooqZN1NM0LFKe9dewOXbDU5+3eGfJ4M5WH6Ekr0euyuolTjzb5xNjcHlr1PSeDRPRfoC1qvXyXkaDpg+AuVDNVmv5oSTTrILp61ospOJizDSdwYHJ7BglQFA7YcZO0YwN4NgCO0RamVQAAEy7djY3/AC4MAZUubw4uDXBdrXZUO7Drf7bFELdJhU+/spQlIui3M2CFc1Fr3dQIxk1k+/Z9q0yY6em+O/JHfhw==
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=XNiCogE6Pi2TTTBLzbjTvI7Jluz7Q9CDEMTi2mlQm50=;
 b=O/en1XKv0tgZFqhQYD0kQgcSTQa6FkR54rP23IZWS207zZE1iMa1q/ZXsMVY5z5Vd2EkXs1vGwKypHt4DSVvkYB/90SyTj3Qei7CQgOrVDV2zk9POL0SOnGrhJfGHI/nQ3C8MViqxLlXAxq+qUxho7q5ZJo/yJWtpbGyLQYdV+g=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <fd86d046-40c7-4c95-be75-ba3013689961@citrix.com>
Date: Tue, 2 Dec 2025 16:39:27 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Krystian Hebel <krystian.hebel@3mdeb.com>,
 Sergii Dmytruk <sergii.dmytruk@3mdeb.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 2/2] xen/lib: Introduce SHA-1
To: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20251128184757.1243678-1-andrew.cooper3@citrix.com>
 <20251128184757.1243678-3-andrew.cooper3@citrix.com>
 <bb4ca936-da10-46f2-bf9c-055e19990d82@suse.com>
 <040dbfeb-fe2f-4b5f-9495-799a22876d4a@citrix.com>
 <8556154c-86d8-4208-8c47-3a2507c80dd1@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <8556154c-86d8-4208-8c47-3a2507c80dd1@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0506.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:13b::13) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CO1PR03MB7915:EE_
X-MS-Office365-Filtering-Correlation-Id: 40c6af9d-7f93-4847-19fe-08de31c15e15
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SmJhVm8zTmJJNjJLaEN4ZWU2bWxacUNBQ2FMOU5BQmhEMitHU1pIeS80cDBR?=
 =?utf-8?B?UE9tWGwyUVVEblpMOS9iZFRjWXd1WmNvQW5wcFFFTGhYTEFzaXZBY0JEelRk?=
 =?utf-8?B?RXkvQTRiWU9lTFlhdjRrYXlyNlcyNnRhcmwyQytIaVlaMnpxSUNseVk3cFNn?=
 =?utf-8?B?azZkak1SaG10U3hlWHc1TUw4bGtuK2RJMjJ0OExocTU2SGxuZFRCYnk0Wktj?=
 =?utf-8?B?RUFzYjVlcktOWThCNUovbUZlY0N4N29haEFOYTdrOWVHN21LTGpRVTVZdFpS?=
 =?utf-8?B?dHJQZVpGQ3gwZitKZTQreWlaN1l5S0dlbFZCSmY4QUFiTzIxMytDZ1RGeFlm?=
 =?utf-8?B?SlB1cmtkTm9walBzaTJMNjNRQkJPZGtCOHdTT3Z1N1VBRjloSllib3BpTmkv?=
 =?utf-8?B?T2s4WmFSenBtN2x2enZ0KzVsem1vTG9lN0NXUC95dDZJVEZjOGxrVG9PMHFa?=
 =?utf-8?B?ekJpQTlDaHp3eklpUFlWYm54b1NOd1Q0TUF0TGdTbzJqakorVCtJU2tiSlR6?=
 =?utf-8?B?b3RuZVBVL2xCL2xBWTF1dUV5bGk5eG85QkgrK0l1aDF4MEwxbEJrVnd0QzIr?=
 =?utf-8?B?VGVhYlFXUFBqS1N1bW1Va3J6OUdpY1g1aUNXNUF0YndPVFhOOUNydVY4M1BP?=
 =?utf-8?B?RlczZ1hvVmZncXJRaUtwaGVKU2JvblVlcmRMeHF6RWxoWGdxczk5UENDTzEz?=
 =?utf-8?B?VkhlQjlMSDNiRU1nS3Rlc1FDL3ZWOW90SUtlQThiQkIxWFJpOVlTNmRmOWZS?=
 =?utf-8?B?Y0d3V0VIL3c0MEdnNURhL3c2VUlGbXI0Rkd0Qk5wWnpDYk9DQy9wbjZWQXV1?=
 =?utf-8?B?N1k4SFlab1p3RFNDWHJ4azZrellKOUxPOEloSHh0NTRMWjFjR3dZZWNMQWlT?=
 =?utf-8?B?aFY1SVVKU2EvanU1dVZLcksxY2VnZ1JLZSs0WUlOL2E5YXFMS3NhQkJ6VlhR?=
 =?utf-8?B?eXY0em41UytxcUFkM0oremtxZDUxbGFodCtRWWd4YitIOS9CYm02SDZZcmVN?=
 =?utf-8?B?eXhXR0F2U2MwZkFFamdvbmNBLzdVOTY4d1d1ZHh0czIvOFdKL3hMRUpxS09w?=
 =?utf-8?B?bmJBZDU1ODBnQzdmNVJJR2N3NGhYS2VBU0owYkxRb2dRUW1UcUM0dDM4dXBT?=
 =?utf-8?B?VmhVdFR2U3hET0QvQ0tPWUlCTVpsUHRjSkpDV2pObENFWURpaGtGazU2bG82?=
 =?utf-8?B?SnZjM1N2blB6VGNhcmxZTk1FTlI1ZktNVXVMVmdEcnlScDhNSkliR3J6bkJ5?=
 =?utf-8?B?UTBUL3did1hGUHNoTllHT3ZGeHQ3RzVzMzduNUhFS3RjV3hDTEphNWtZaW0y?=
 =?utf-8?B?QVRoK1ovOTBJS25ONVZueWxPZmhxVDNBT0J2K1lEcis5ajFpdGM3cjFJVUd6?=
 =?utf-8?B?WktacGZxTGNmS0NpVEJrVmE2c1hwSmFHUDBFYUNybjZscDBRVGlONytma3pz?=
 =?utf-8?B?dGNMUHJBQ1FOK1dkUkFCSE5OZTFuWjE2MVBzNkJtUGtqNmh0dkl4ZG1oeVk2?=
 =?utf-8?B?NlAxb1BLeUY5VW1UMXlDSUlPbVlkdXNsWkRReWVwOFRzTUh1cjBML1ErMFBF?=
 =?utf-8?B?b0JFaXVxYlE5TE9mWTMrMzltOG5nbFJ5SnA5MlQvZlNxZnY3V2RHWDZvU3RK?=
 =?utf-8?B?a2QybGdoS3ZuWEJZWTZJcjlxVVNxdURtOWsybkdjdkZYVXoyZ0YrTWl5M0k4?=
 =?utf-8?B?azVXVTFETWNrbnd3MWdOcCtad3ZBTk1OcWZ5Q3VKVzhSeDBIanhiN1FBNmZs?=
 =?utf-8?B?VTlISS9pRHdBYXNYODFDV3NZVk9ZWFN0YUZ5M0JJbk5TWU15Tm94c1JhT0VP?=
 =?utf-8?B?d1dmSFhTOXo3RjZVNDBJOGVyY0hIY2ZHbTFKVERBcWlZSlFKUlAyTGJNdUFP?=
 =?utf-8?B?OGtSRmNmZmdCTTUyaTJ3TmVFNXFhT3NkOVQ4WVJ2UVR2YW5XTC9sakdyRXpO?=
 =?utf-8?Q?nuFeI3zlla+nxEvxYIiVy2tKuGXHVaVb?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZXVtRy8yL3Y1R3laUTh3a1o4SEY3L2pLZExKOFF3N245ejJKZkFXbmJjejBl?=
 =?utf-8?B?c3N5K2pJOFlucUpQeVRSNzFYN005L2pjemcwL3pTSnBPbENVSTE2THVzNEQ2?=
 =?utf-8?B?UjVjcURJVmJnanJJYzZ2TzBXNVNxWjBIMTcrV3hTVXhIZWpyRUNJOEJKazNt?=
 =?utf-8?B?eXhuaWZkcTJ5M2Q5MTJaS1lzazZQMkw5eVVuWlNETE52VGliQllxczYzTTN2?=
 =?utf-8?B?YjR6eHdOakVubVFEcmtJeE5tazBOaWg4UTFVVkYzN2ZUUEdDMjlPdkZZdVZQ?=
 =?utf-8?B?RmRaNXJVSU1tekxWcDdHOThlSGc1TitPLzBJMjZCeDY5c3FYMHgycXRZOFFX?=
 =?utf-8?B?NWN5YVU5NjVjaHIyMmNkVjZ1VmwyTE1makl3bFhvRUhXbHVOb1BVTW1nTS9J?=
 =?utf-8?B?Szh5a1E0dmtsZmdGdnlrZXd6K3N1WG5mblVGMHFITEdUQy9aZlRPcWtpei9O?=
 =?utf-8?B?YnBNN2JJMkpVT0NkMGhIcGNzeUJHdjg2R0NRR1p4OTlNam9obDZCZXc4SnlZ?=
 =?utf-8?B?d0cvc3pKUm1DVTRJWHQ5YkFJeGdvSk9xZitzb21sRFYxQlJ3UVZFYXZTck5T?=
 =?utf-8?B?VG5naGIvd2ZHTEF6UUJVaTR1YkRoTlRSM0RuU05PN1F3dTcyYytQOTQzWC9P?=
 =?utf-8?B?UGNRQUJhMVdUTUFlQThUViszdmxUTlNOcUNpZUw1YlRGNkxTUzNVWmR1blUz?=
 =?utf-8?B?MVFDVGNSek1jQTFEc3c5Tzg2UEdtWTVrd0R5Z2ZyS1pQTTRrMXJIWTl2Snpi?=
 =?utf-8?B?L2JPakJyZ2J1YnRpTytFUlExSVZrSHZKd29EemRVRGUyNHp3dktyc0kxT3ZH?=
 =?utf-8?B?dkVmN3RLVWRBUmtsTExTUlRPRE1NNlFscjU1SmtIR0tBdnFSNDNqd0trUWoy?=
 =?utf-8?B?NFRXdEtSVlBsYTI3STAvZk9NS3g2Vks2ZUpiTXBXNlBlT2FBV2tTUzFmRjNj?=
 =?utf-8?B?dGxFQ095Z0tIN09Ecm1NaS93djVySnBOL2l6eVdrQTFiSXk4STY2RHRrOVpi?=
 =?utf-8?B?TFBIWHhQdytrUGwvQlR5ZDFjWWYwdGd4aS81MlVOQm5UL2VCTkt2dXlzQTBx?=
 =?utf-8?B?SHlpWHVpdFJ6VFArTGxQbFR3M3JWVkJmVk00N3NmRzZTZmFLaWV3b0xEdDM5?=
 =?utf-8?B?TE5MNk81TkU4T1dQRjl0L0pVU0ZFSEVCenJmU0RWdmtXWjFOY0tiNFRYbUlP?=
 =?utf-8?B?OXM3OVdIVGllTjYrclFremtzUTlPSFlndWMrU3RBUEtDeEt6ckVZQkVZNXdm?=
 =?utf-8?B?MzFjN0NzMkcyNGZFc21WSHhxUFdZMDN0WXpCMTNwWC9GWE5zZ0FBSlk3dGlC?=
 =?utf-8?B?U3NWNmQrdVlCeUNiOHJWL2NxSG9oc0dkTTZHVzNDb2tmTmNHbEZicnV4eWt0?=
 =?utf-8?B?eVlxMVdkL3RXSnRZZlNCYmhmNmlvbzUwSVhMN3J0b0NHRXYwbEphdXRTcEU5?=
 =?utf-8?B?a2NMSUQ4cGVRaVJKTUpCTmhYUG1QK2tRSkZtbFIvM25nRWhSVnZkMGovTHRP?=
 =?utf-8?B?T1oxSWxnTktINEUxQ1pHZmVCaERVZUVISkZ5UzhubGFndHZ5TnpsdklWZDEw?=
 =?utf-8?B?SW10RWJxcks3eGo4MXo5K05pQlQ3NURudEpYTUNBVUxMZXdZeDFWc2l1a09J?=
 =?utf-8?B?d251ODZiZnpNMEVsWnNIRGlZaW5SRzlEODgvWHBMakI0dW5QKzZrRkExTFBa?=
 =?utf-8?B?NU14OXZYRVlRUkFldTdIK0lsa0J1cWVmT1E4bGpyYS8xdDM2Ynd1VkFaL1Jp?=
 =?utf-8?B?N2FxWmg1ZzlaWGxoeHZMd2lxTGpOMWRScDRaNlc3SGNEcCs1TXRUWU1Kc1Iy?=
 =?utf-8?B?bS90UEUzbk4xWXVETEYxYmlYWVduNVJDUGQ5RGRsbGRWTno3MGF6TmFWOU54?=
 =?utf-8?B?cm5JaHNJSTFjZk9tZjF3TThUS0lxK1YyTjFHbGhYMlhvK255emROT29sWVdw?=
 =?utf-8?B?YkZiNTI1WWJSczFxU3FXNCtIVmRZMy9uYjRhQVIvT3VnSGgwTEExL3N6UXZN?=
 =?utf-8?B?WW0vV1VFa3VWMXZWbU5oNWIzUW50cVM2T3F6bVlqZnhkN2JrUE1CUzdxMTRh?=
 =?utf-8?B?SXlNejhEY2EzdCtjSTB4VlgyUitjSE5kY096MVRPOUQ0cFNRRDhzcTVZVnZV?=
 =?utf-8?B?anljemo1Slp1ZVBqVllFdTRLK3FsbTJUMiswc3hIT0JUckxjZ1U4a2tRQkZR?=
 =?utf-8?B?QXc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 40c6af9d-7f93-4847-19fe-08de31c15e15
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2025 16:39:31.1772
 (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: 5xKylmMLmUEvyr9flQjocIw26zaYCaXTLK6Z3X++OB2AlqjFfVchgfrsQhgVdjl9r9g9c8VdfdQFuQjCXWmAGgQmWFLgBdFxfPieLpROMxY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB7915

On 01/12/2025 2:24 pm, Jan Beulich wrote:
> On 01.12.2025 15:19, Andrew Cooper wrote:
>> On 01/12/2025 8:46 am, Jan Beulich wrote:
>>> On 28.11.2025 19:47, Andrew Cooper wrote:
>>>> --- a/xen/lib/Makefile
>>>> +++ b/xen/lib/Makefile
>>>> @@ -17,6 +17,7 @@ lib-y += memset.o
>>>>  lib-y += muldiv64.o
>>>>  lib-y += parse-size.o
>>>>  lib-y += rbtree.o
>>>> +lib-$(CONFIG_X86) += sha1.o
>>>>  lib-$(CONFIG_X86) += sha2-256.o
>>>>  lib-y += sort.o
>>>>  lib-y += strcasecmp.o
>>> Why exactly are we confining the two SHA<n> to x86? They're both plain C
>>> implementations, so ought to be fine to build everywhere. Being in $(lib-y)
>>> they also wouldn't make it into the final binary until a reference would
>>> appear.
>> For the SHA2 patch, an objection was made to compiling it on the other
>> architectures.  Personally I think they ought to be plain lib-y.
> Everyone (not knowing where the objection came from) - can we please re-
> consider this, ideally ...
>
>> I could always have patch 1 fix up to lib-y and have patch 2 match...
> ... allowing this to be done?

FYI, we discussed this on the committers/maintainers call, and decided
that lib/ does want to be generally enabled.

As such, I'll do as suggested.  Have patch 1 make sha2 non-x86-specific,
and have patch 2 be general from its introduction.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 02 16:41:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 16:41:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176258.1500766 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQTRU-0007dA-7Y; Tue, 02 Dec 2025 16:41:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176258.1500766; Tue, 02 Dec 2025 16:41:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQTRU-0007c6-20; Tue, 02 Dec 2025 16:41:32 +0000
Received: by outflank-mailman (input) for mailman id 1176258;
 Tue, 02 Dec 2025 16:41:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AIEi=6I=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vQTRS-0007bX-Ns
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 16:41:30 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bf661b71-cf9d-11f0-980a-7dc792cee155;
 Tue, 02 Dec 2025 17:41:27 +0100 (CET)
Received: from AS4P192CA0007.EURP192.PROD.OUTLOOK.COM (2603:10a6:20b:5da::19)
 by GV4PR08MB11249.eurprd08.prod.outlook.com (2603:10a6:150:2e8::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Tue, 2 Dec
 2025 16:41:21 +0000
Received: from AMS1EPF00000041.eurprd04.prod.outlook.com
 (2603:10a6:20b:5da:cafe::43) by AS4P192CA0007.outlook.office365.com
 (2603:10a6:20b:5da::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.9 via Frontend Transport; Tue, 2
 Dec 2025 16:41:20 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS1EPF00000041.mail.protection.outlook.com (10.167.16.38) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Tue, 2 Dec 2025 16:41:20 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PA4PR08MB7665.eurprd08.prod.outlook.com (2603:10a6:102:262::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.13; Tue, 2 Dec
 2025 16:40:17 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d%4]) with mapi id 15.20.9366.012; Tue, 2 Dec 2025
 16:40:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf661b71-cf9d-11f0-980a-7dc792cee155
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=SaX7tahtVGIiX2YSVslJqIf7+dpSprl6JIcaeFQIOY6MT+4+39nuYCRs0t4bvLO5yogxw3sX3+RJs3CGxFuK/LLtvsyuHS/KwUVvOLbVfcyyt9Q+Lg4cRm76gAKkChIJCLXbMWRFPoT9hluwnK3Awb+vcs2hjJkqoISqOJSHv7pXQvvrBy/plnYCvK3FuS6UUUzXEseIzUQCrk+09JmwzQYDhYeuk7Ao2eo4ahwF/4hS/RgmC9/Lar0n32r4r5g4Ngjbfxm7xDy8raj0DSKui4wINQPns0Cla2KDoRU59Rtd8nbmUF0PErHqr14s3wz1WV36ct8cDnLxSvfpMRgVrw==
ARC-Message-Signature: i=2; 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=rN7Khsfj/aQ0LdaUhfhARVLP84mh25MIw1rEhJOlzpc=;
 b=I0nUgYsy10oZ4yFDGeKLlswOqAOcNjQbNFadlpWDlrMkTqtZT5iE8OQ1MH3PWWYw7HTPieNGyn2VMd/oV4hH39eTlcqzQaZissoTu6qcQWu7dVAfG1Qc+W8gBNP7KY0qvGWT31xb6hoA/2jV3e9IYwX+goGZod7iYmk9NQwR+5hsM9bXQ4eKaGVaQQWfSh8nhZVOxEqoQ/Nrl9Zy8oH/GS9waWYe4+1XBGZ6mKWOLULFXwPEiO7TJkig2cCSlicvrL/Wv7vllpbhiQ0moDvMvjftHVa3n3QdTm79y+AnYYSTeNxsgWOdtCRIughhR/SL3ghBsxnoVyHF8dZvuiIysg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rN7Khsfj/aQ0LdaUhfhARVLP84mh25MIw1rEhJOlzpc=;
 b=X3VPwgtLb/UmL57H0nxwp2DO+voqibebiFujkXR/yqChtTU/P0nThKIAOMGqC20U88+TOuf/iwkhLtMVBZ7TJu++JDsxMGfwuipO3FEdr20lHDczO2WZEip5pqVXkv6HlANJIpqKTa3u+D1FV6Pfa7qbMm3WAzITziO8M9sT16c=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dn3aekLXVJSobc47FTlooyGnwlRAbft6i6Eko9BBY5w+Vep1/P+6cwCmHtNXdW1oD5yWHuf+YD2GvwMgCVFlHFAln627CoMyG+2mmkut39n/KPuFb8rB1Zl92+lwo9MXo6dqXDCmhdourcjseSpiIX3Pqyf7ZOWYD9t74M+iVNA0cVXbCQde0DM514Gq+OUJ2Fs/8nHdbMHIgwa+xXi73GMHlARZyyniup7WHuu1aw98HZj7tqI2nLantduRZq878HeckK6lDuMPNmCBlLOZb7boOoMJ2Xe4P5xIM/pXPqUE9zl/BCkJSFrTWn70X9oyYMYxc+ch+eKdMuc0g6ToTA==
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=rN7Khsfj/aQ0LdaUhfhARVLP84mh25MIw1rEhJOlzpc=;
 b=YL4xiyemw0+tph1WSUQ6qq5ORNzFktFWEnlLrII03WNDQvPoz/NnBDA9EASLv3UmGl7GD8pJ59/nyf0pogYVvwLILVEUyxKUXCLf6S4OO8xDvfIcAo1ndNZDFa5K90PsVWpe5QbIZsGs/u12rXC2+JLo5m2jSwoaoO/p30rRoaiZAkP/bKeZF5FHaN6R48/eBq4Q2iOsygq9pvqR+0PptmY+Yn51zimpDOc9W1U0f1CjOKW0trrEu1xIp/OAQyQNmkMUnRu1cNDdFzXJHxCyrqxtTTlB0UX6kyz5ivBcAbiZw6+lazRWcgitmCx1trciPgSuA4D74m3tPFaKcfACPg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rN7Khsfj/aQ0LdaUhfhARVLP84mh25MIw1rEhJOlzpc=;
 b=X3VPwgtLb/UmL57H0nxwp2DO+voqibebiFujkXR/yqChtTU/P0nThKIAOMGqC20U88+TOuf/iwkhLtMVBZ7TJu++JDsxMGfwuipO3FEdr20lHDczO2WZEip5pqVXkv6HlANJIpqKTa3u+D1FV6Pfa7qbMm3WAzITziO8M9sT16c=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 01/10] xen/arm: ffa: add FF-A v1.2 function IDs
Thread-Topic: [PATCH 01/10] xen/arm: ffa: add FF-A v1.2 function IDs
Thread-Index: AQHcX7Xto0AEat0+902uj2o4W4BR4LUM4lEAgAAJ7ICAAaj4AA==
Date: Tue, 2 Dec 2025 16:40:17 +0000
Message-ID: <809360B4-97DD-45F3-B0F6-3C19FD7F2D47@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
 <2264daf90cbb25b9a60ebe8edbebb8988d95966b.1764254975.git.bertrand.marquis@arm.com>
 <CAHUa44E=JChox1T8K_kRBQ2nt1QutsDAaMGf3bzD=VO12LFiPg@mail.gmail.com>
 <89AC0E6C-8ED0-48CB-8A86-5169592F61EF@arm.com>
In-Reply-To: <89AC0E6C-8ED0-48CB-8A86-5169592F61EF@arm.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.200.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PA4PR08MB7665:EE_|AMS1EPF00000041:EE_|GV4PR08MB11249:EE_
X-MS-Office365-Filtering-Correlation-Id: 514be683-4996-41e9-def2-08de31c19faa
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?aThybDE5c2xlRW9OODRmV25KcDBmanRNM2xDaXd3aTFGN1l1K3lNZ1J0OFl0?=
 =?utf-8?B?eExtTGU0YjFYWGt4R3pkSXRlQ050UGE2Z2d2Y0tBOHNwWlFTNnFxblJOUnRR?=
 =?utf-8?B?SS9rYnhwanNXenJPUk5xS0dxSng3YXk1RDBVVlBnQjB6YmZSQUppb2NlRTk1?=
 =?utf-8?B?MGp4dUNUU3dEQ2hsN1Urb21JTzZ1NTEyYmJuMzVHK2pHTGVmU053aWZxZW4w?=
 =?utf-8?B?N29Wb05KTnJkU2ZsWUI4NHpCYW1lakRoS3FBRU9Vc2Z3Y0dITlRTOVdBckFO?=
 =?utf-8?B?MGxoTi9peHB5anpOY0I5NDhsMzlxS0FHR2xkSnNGUmt4VlhEQ25SVDJOdzVq?=
 =?utf-8?B?M1g0SkxzMjdWemFvN20vQ1pMTk9qSEFGem9ESGZXdlprbGpkdlB5R241dGYy?=
 =?utf-8?B?bWNkd3BrZWZXRFBIUGswNk9KNFlGK28wY21adStxT3V1WktaL2N5dEo0UHJW?=
 =?utf-8?B?VzZCNFo1TzF6YmtIejZNS0UvUFhhNlpFQzRZOGVqdEhyblRXNmdDSmZrQ01Z?=
 =?utf-8?B?d0lKV2tvV204M3RYTjJvZjJGd2crVDRlQUsyVUt0bGZyQjNxSFB6eHJWRG5l?=
 =?utf-8?B?c0R3Z2cxaE1OMk5CZ0dKYkJ2K1BsdXhIcTVUMkFUdVRPMXBGQUVtaUczejI2?=
 =?utf-8?B?U05IRldKMVYwaXVraGd3R25KT3BuekhhK2lleG01SndnSlVLUHZtVHcrcC9I?=
 =?utf-8?B?MVhhNXduQVBQZmhKTlJFMmFiNWh4TG5nV1NjZXpTV2REZDV3Ym5HZ3lWVVMw?=
 =?utf-8?B?ZXdwQzdYUEtRMjdJS0tyakpNOGxrRTJZK3NZSHhXL3RjcXBabWxEd3BsYUc0?=
 =?utf-8?B?L1BZRGR0UXdNdnNTdGh1d0JZRE9DdDNJWnRtdk1CalQ1NXFHOWl2eW5Jb0Ni?=
 =?utf-8?B?RjRJR25lcGEvc2hYUWt3U0tHQU9ScUJKVkhtcDBOOHpLSTlFYXdaMTZ6N2p5?=
 =?utf-8?B?aERBbndIUnN2RDJpZGhQVDN3L1N4UHlDcUZnOEYybzhpYjVJYi9YRFhkM3dK?=
 =?utf-8?B?TFFueWhQSC9RRVhtK0N5dlZJY3FlWFA2Zy9maFVsUHlaUXhyVEFKamNOMnNO?=
 =?utf-8?B?bzlEN3g1V1FsTFNWOHBjR3o1c09JTGhaL1dla0I4aGtMdkVjSlcxYXc2WnB3?=
 =?utf-8?B?aWUwdUIwTUhuVkw5aXRoSFgvMWNxdVFlUjlSTERjNzRWNlJMbjd3dGFYK3Z0?=
 =?utf-8?B?c1JUZTBGMWJ4NHFhUmRHVkFTeUlkcXR3dERmTWxRcTdnZUVPRTVUK3Z0WE50?=
 =?utf-8?B?SEpmUnhOVXhWaFo4VDlZTk9Uc3d1RUxaaWdFaTh6Q004MThSaC9LMGQxRDFN?=
 =?utf-8?B?cjZreVlmeWRTNE5mbWY0U0NUM1hXM2xWN21xWm9zRHVQL0JZc0F0bjZWQlpO?=
 =?utf-8?B?MkkzMFJ3eFQ0MzFEKzJsaFFQUXZjUGlFQVd2NjV0K0FUbFZKbEZGUENXdmgr?=
 =?utf-8?B?MlpwenU5UldiR2VjOFBYazJWNWtPOHc4WWxZK00vNXpXeG5aOWVxczZEdXdF?=
 =?utf-8?B?bER0d3UxTnB4TkdBdzgrN1ZSRXJXVDIxZHRDTGNEeDl2QUNMaVU0aVlmQVht?=
 =?utf-8?B?NGhmcGZCNVQyMXV4aTIrVkZWZkRoM2p3L0JPQUV4d0VPVlJ0ZklHazc4YnRO?=
 =?utf-8?B?aGplcEZrL1Ayc2tzZHYyWi9BWlA0QkE3TFBwOW1FZTgxWFZtU0Vleml1TFVp?=
 =?utf-8?B?Uk10YTB5MXNDdXhhNldtMUhlSmJWMHhHcVRab0s2UWhTZE42aXQwc3NNbFpR?=
 =?utf-8?B?SittMUQyWUNBUG9RMzRiakpodEpxYjZIQythYldIbzdMNFlwQ2d1bmpNa1la?=
 =?utf-8?B?K2krNVlYYVc0elZRdENia2FSZmpLVkpMdmlUVi9sNVoxY0ZndWFEcWxjTVJS?=
 =?utf-8?B?TmdNSXV5WklCU0JvaUNxbHdLemZncWJiaXdwOHJZcTltcVpzUzBLSGQ0WmZ6?=
 =?utf-8?B?dXk5dloyNk8rK3FPTjlTTmh2SG5NR1c1ZkRxM25mS0NlblQ0ZFJvR0lMYitk?=
 =?utf-8?B?QUk0VDBxTXErQnpjZEVVK1l6dU8zYWdpV1QvOHJudWhCU2l4Zm5KNUpqVkM1?=
 =?utf-8?B?QjFiYUpXT3JWTkt4ZjkzcXlTclQzMTNtT1cxZz09?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <92829200DF985C46AA5D6C82CE951F45@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB7665
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS1EPF00000041.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	935d134c-2ad9-499f-5638-08de31c17989
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|36860700013|376014|82310400026|1800799024|35042699022|7053199007|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dnBRdXQyVnE3dnNtb3ZvS0lLeklOVVhDa1orMThjdkExS0hoamZabUlVdmpr?=
 =?utf-8?B?Y0dYSWZjRk1FQjdqUWxQK0NvcjhhVWhqcGNNSG9ZTFlYa2NPL29VcHVKUWw4?=
 =?utf-8?B?Sk5GUDlZVXFmc0gzVk11VUdJQUhrVTg4K1FPSUYyVDY2UjVmQ002RzRIYnBt?=
 =?utf-8?B?M0Z1SG13b1l3NWk1aGk5NnhVbDlOdDlHenN2ZW5vRlkwWk5RTnV4ZUtacTg2?=
 =?utf-8?B?L0JLcVhQOE5RbFVGUlM1Rktrd29RSlk1bXMxVC9FaUdFaERhbnFRWXhDZUxs?=
 =?utf-8?B?bXpGREQ5amM3TFM1ZVRZODlRR2dBZHFNbWJocktWdGZvQ2w2YnZLZVk0b2R2?=
 =?utf-8?B?Y2xPUWtYczhpNkxVR3ExM0Q2MXhMM1NBWDE4ZE5NWjFLTzlraEZBK2VkbTBh?=
 =?utf-8?B?Q1BNbGczVStVZ0pTKzA1QUQybFJYUElOZTgvMFY5N2ZHb3F0Q3ZQUFFkNkg0?=
 =?utf-8?B?aFRnTFp1Q1JDVlZ0d3JnL3ZCK0IwVnVMeURTL3o4Q2tmQ1dCUlVCMkNpdERF?=
 =?utf-8?B?N1I3VGt5YUdJanFua05CUEpWczNvTjhIa1E0RURna2xtN0dhV1o1Z0xRbHgr?=
 =?utf-8?B?Wi9FOFZQVUg0MXBBaUZMajQ5dlN2VzRudjdIeFd4VW9KaEIxRmFnVnMycG1p?=
 =?utf-8?B?dUdzQ3ZwbHdGZi9VSm56NnQ1RjJSV0xkQ29TNnBFS1huZE9yNWdoM0VURDBY?=
 =?utf-8?B?L0FXZytaL3I1T3RBUFp2Q09mMk0zUlZYRzBVU1RLd20ybDA0TkY1VVJsQ3ZF?=
 =?utf-8?B?UHdFblNJRjU0U2JuOHAwUkd4cGh3enliQ3dSL3dNRXFKNjFqVFNmSUhQSXdM?=
 =?utf-8?B?a25hWVJFaGZWSTlQYjd2QkwvMFZQWmg0cm9IOG5rN0x1ajBrQXNrVGlwMVBN?=
 =?utf-8?B?Z3dCbGd0QnJickFIdU9jRDdxemFTWVZTam5VQUdoaHNWYTlBeGtURzc1NURp?=
 =?utf-8?B?cVA0VElabDVxay9uRUM4OWE0MlZVOFlKTEp4dkZNdG5ab0YyRWVETktQNzVL?=
 =?utf-8?B?UDRMS3hOSnlPTzhlc0MrdWwySlgxUzlzZEtjeDJnVmpDbG1MOHhmWU1IcFZ3?=
 =?utf-8?B?MmJmb1NETk5QWXh5M01yemcwVHJ3T0RGclR2K0p3Ky9YTUh4Zk1MUThKTitF?=
 =?utf-8?B?UU5DWnpnVlg1bkRESkJDN05TMVh1eVNVZkF0L0NObGxpOXN5Y1N4TXN1WmZx?=
 =?utf-8?B?c0xLWlJRZks0OWo4dEo4c1BDR0ZoU01rNTBsTy9KTi94cUVqUzAzNHQzQmJ3?=
 =?utf-8?B?eENYL1p3UjlrTFVOZU1IQS9kL3FhcUk0ZUEwQlpzSzJsMWhtZ3pnTWVCbnRK?=
 =?utf-8?B?KzJlZ05Qb3lvZHpqNU9CRGVydEliZVMzbllJNHkwY1E4RjBSUzNnclhFT2cr?=
 =?utf-8?B?cHVsbHhaOTFlM1krK2ticmtyMEJyZ2N5SjBSQ2N6emVxK3BBeUtvOUwwYkgy?=
 =?utf-8?B?MHp4b2RWVEJiaEFuY0RJTDJ0OE41Q0ZTcHhhZmVPUE90Qkp4MXlYUGg2dEJr?=
 =?utf-8?B?L0paTjlqQnNjYmFUTk5iS1JPR1ZHMDVtd0tGU3h5eWpQWUl5aGtyaUVVWHdX?=
 =?utf-8?B?OElyZWJXN3lvajlHSGEybENha1V4TXZzdGZYckZKTWFWdXhmQ2ZMOGxSb21k?=
 =?utf-8?B?VSt0Ulh4RFU0L1BJSWJzWkozbFU2djVKcFlqZ2NiOTZ6dDdENzkxdDRWUDFw?=
 =?utf-8?B?RlpuRXlDRGM4ZERjRmdCcHl0M2JPeE9TM0ZnTENlRXpFNExnbzZ0NnhEUEZ0?=
 =?utf-8?B?N2RydGgxTk5QYUNmRzlKbVlLNk5OakFQSkJ3NTk1L01jZVFla3pFQmROcFlB?=
 =?utf-8?B?ZExPWVN2K1hKbDZYVUZiQ3QvMTBhRUd3L1QxQ3QzMzhYdE9tenpvZ3BFM1cz?=
 =?utf-8?B?Mk5ETit1VEptc0tobHB3U2RXY2p5eWZmSGs3VEx4V2dLeHhXR1VxNyt3VGlD?=
 =?utf-8?B?UGhyS0VyUjVGeDZOTHQwK0tsbDlrU09SN3F0M2hzNkFvQjVONFJJdGtJR0JQ?=
 =?utf-8?B?ZkpRUHlGaGJFWEduNGRqL1RrQVdZTXdNSHF4MGZ2eEdKcExtT2ZYWHN1aUZP?=
 =?utf-8?B?VjJ0K0UwZUdpL3ZBVng4SFEzR3psamRxNHBjbWQzMEV5dU9zNXJVM2hIUVlV?=
 =?utf-8?Q?0UI8s+n2HnKoVH8pIJa5R6sUM?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(36860700013)(376014)(82310400026)(1800799024)(35042699022)(7053199007)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2025 16:41:20.9312
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 514be683-4996-41e9-def2-08de31c19faa
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS1EPF00000041.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV4PR08MB11249

SGkgSmVucywNCg0KPiBPbiAxIERlYyAyMDI1LCBhdCAxNjoxOSwgQmVydHJhbmQgTWFycXVpcyA8
QmVydHJhbmQuTWFycXVpc0Bhcm0uY29tPiB3cm90ZToNCj4gDQo+IEhpIEplbnMsDQo+IA0KPiBU
aGFua3MgYSBsb3QgZm9yIHRoZSByZXZpZXcuDQo+IFBsZWFzZSBmaW5kIG15IGFuc3dlcnMgaGVy
ZSBhZnRlci4NCj4gDQo+PiBPbiAxIERlYyAyMDI1LCBhdCAxNTo0MywgSmVucyBXaWtsYW5kZXIg
PGplbnMud2lrbGFuZGVyQGxpbmFyby5vcmc+IHdyb3RlOg0KPj4gDQo+PiBIaSBCZXJ0cmFuZCwN
Cj4+IA0KPj4gT24gVGh1LCBOb3YgMjcsIDIwMjUgYXQgNDo1MuKAr1BNIEJlcnRyYW5kIE1hcnF1
aXMNCj4+IDxiZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+IHdyb3RlOg0KPj4+IA0KPj4+IEJyaW5n
IHRoZSBGRi1BIGhlYWRlcnMgdXAgdG8gdGhlIHYxLjIgYmFzZWxpbmUgYW5kIGZpeCB0aGUgZnVu
Y3Rpb24tbnVtYmVyDQo+Pj4gcmFuZ2UgdXNlZCBmb3IgQUJJIGRpc2NvdmVyeToNCj4+PiANCj4+
PiAtIHVwZGF0ZSBGRkFfRk5VTV9NQVhfVkFMVUUgc28gdGhlIEZGLUEgZnVuY3Rpb24tbnVtYmVy
IHdpbmRvdyBjb3ZlcnMgdGhlDQo+Pj4gZnVsbCB2MS4yIHJhbmdlLCBhbmQgZGVyaXZlIHRoZSBB
QkkgYml0bWFwIGJvdW5kcyBmcm9tDQo+Pj4gRkZBX0ZOVU1fTUlOX1ZBTFVFL0ZGQV9GTlVNX01B
WF9WQUxVRSBpbnN0ZWFkIG9mIGhhcmQtY29kaW5nDQo+Pj4gRkZBX0VSUk9SL0ZGQV9NU0dfU0VO
RDINCj4+PiAtIGRlZmluZSB0aGUgbmV3IHYxLjIgZnVuY3Rpb24gSURzOyBDT05TT0xFX0xPRyBh
bmQNCj4+PiBQQVJUSVRJT05fSU5GT19HRVRfUkVHUyBhcmUgYWRkZWQgZm9yIEFCSSBkaXNjb3Zl
cnkgZXZlbiB0aG91Z2ggdGhleSBhcmUNCj4+PiBub3QgaW1wbGVtZW50ZWQgeWV0DQo+Pj4gLSBl
eHRlbmQgdGhlIGZpcm13YXJlIEFCSSB0YWJsZSB0byBwcm9iZSBSVU4gYW5kDQo+Pj4gTVNHX1NF
TkRfRElSRUNUX1JFUTIvUkVTUDINCj4+PiAtIHdoaWxlIHRoZXJlLCBmaXggYW4gb2ZmLWJ5LW9u
ZSBpbiBmZmFfZndfc3VwcG9ydHNfZmlkKCk6IHRoZSBjb21wdXRlZCBiaXQNCj4+PiBpbmRleCBt
dXN0IGJlIHN0cmljdGx5IHNtYWxsZXIgdGhhbiBGRkFfQUJJX0JJVE1BUF9TSVpFLCBzbyB1c2Ug
Pj0gaW4gdGhlDQo+Pj4gYm91bmRzIGNoZWNrDQo+Pj4gDQo+Pj4gS2VlcCBGRkFfTVlfVkVSU0lP
TiBhdCAxLjEgZm9yIG5vdzsgd2Ugb25seSBhZHZlcnRpc2UgdjEuMiBvbmNlIHRoZQ0KPj4+IGlt
cGxlbWVudGF0aW9uIGlzIGZ1bGx5IGNvbXBsaWFudC4NCj4+PiANCj4+PiBTaWduZWQtb2ZmLWJ5
OiBCZXJ0cmFuZCBNYXJxdWlzIDxiZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+DQo+Pj4gLS0tDQo+
Pj4geGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3RlZS9mZmEuaCB8ICAyICstDQo+Pj4geGVuL2Fy
Y2gvYXJtL3RlZS9mZmEuYyAgICAgICAgICAgICB8ICA0ICsrKysNCj4+PiB4ZW4vYXJjaC9hcm0v
dGVlL2ZmYV9wcml2YXRlLmggICAgIHwgMTggKysrKysrKysrKystLS0tLS0tDQo+Pj4gMyBmaWxl
cyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQ0KPj4+IA0KPj4+IGRp
ZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vdGVlL2ZmYS5oIGIveGVuL2FyY2gv
YXJtL2luY2x1ZGUvYXNtL3RlZS9mZmEuaA0KPj4+IGluZGV4IDI0Y2Q0ZDk5YzhmOS4uYzU4N2Y3
NmU2M2NhIDEwMDY0NA0KPj4+IC0tLSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS90ZWUvZmZh
LmgNCj4+PiArKysgYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vdGVlL2ZmYS5oDQo+Pj4gQEAg
LTE2LDcgKzE2LDcgQEANCj4+PiAjaW5jbHVkZSA8YXNtL3R5cGVzLmg+DQo+Pj4gDQo+Pj4gI2Rl
ZmluZSBGRkFfRk5VTV9NSU5fVkFMVUUgICAgICAgICAgICAgIF9BQygweDYwLFUpDQo+Pj4gLSNk
ZWZpbmUgRkZBX0ZOVU1fTUFYX1ZBTFVFICAgICAgICAgICAgICBfQUMoMHg4NixVKQ0KPj4+ICsj
ZGVmaW5lIEZGQV9GTlVNX01BWF9WQUxVRSAgICAgICAgICAgICAgX0FDKDB4OEYsVSkNCj4+IA0K
Pj4gVGhpcyBpcyBNQVgrMSwgaWYgSSdtIG5vdCBtaXN0YWtlbi4NCj4gDQo+IEl0IGRlcGVuZHMg
b24gaG93IHdlIHNlZSBpdDoNCj4gLSBGRkEgdjEuMiBkb2VzIG5vdCBkZWZpbmUgY2FsbHMgb3Zl
ciA4RSBzbyBpbiB0aGlzIHNlbnNlIHllcw0KPiAtIFNNQ0NDIGlzIHJlc2VydmluZyAweDYwIHRv
IDB4RUYgZm9yIEZGLUEgc28gaW4gdGhpcyBzZW5zZSB3ZSBhcmUgbm90IGNvbXBsZXRlbHkNCj4g
Y292ZXJpbmcgdGhlIFNNQ0NDIHNwYWNlDQo+IA0KPiBJIG11c3QgYWRtaXQgaSBqdXN0IHVzZWQg
MHg5MC0xIHRvIGNvdmVyIGFsbCAweDYwIHRvIDB4OTAgZXhjbHVkZWQgYmVjYXVzZSBpIGRpZCBu
b3QNCj4gd2FudGVkIHRvIGhhdmUgc29tZXRoaW5nIHRvIGJpZyB3aGVyZSB3ZSB3b3VsZCBub3Qg
dXNlIGFsbCBiaXRzLg0KPiANCj4gU28gSSB3aWxsIGtlZXAgMHg4RiBhZGRpbmcgYSBjb21tZW50
IHNheWluZyB0aGF0IFNNQ0NDIGlzIHJlc2VydmluZw0KPiB0aGUgc3BhY2UgdW50aWwgMHhFRiBi
dXQgb25seSBudW1iZXIgdXAgdG8gMHg4RSBhcmUgZGVmaW5lZCBpbiBmZmEgdjEuMg0KPiBzbyB0
aGF0IEZOVU1fTUFYX1ZBTFVFIGlzIHRoZSBmaXJzdCB1bnVzZWQgdmFsdWUgc28gdGhhdCBJIHdp
bGwgYWxzbw0KPiByZW1vdmUgdGhlIHRoZSArMSBhZnRlci4NCg0KQWN0dWFsbHkgdGhpcyB3b3Vs
ZCBub3QgYmUgY29oZXJlbnQgd2l0aCBob3cgcHNjaS5oIGlzIHVzaW5nIEZOVU0gc28NCkkgd2ls
bCBzZXQgdGhlIHZhbHVlIHRvIDB4OEUgd2l0aCBhIGNvbW1lbnQgdGhhdCBpdCBpcyB0aGUgcmFu
Z2UgdXNlZA0KYXMgb2YgRkYtQSB2MS4yIGFuZCAuLi4NCg0KPiANCj4+IA0KPj4+IA0KPj4+IHN0
YXRpYyBpbmxpbmUgYm9vbCBpc19mZmFfZmlkKHVpbnQzMl90IGZpZCkNCj4+PiB7DQo+Pj4gZGlm
ZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90ZWUvZmZhLmMgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYS5j
DQo+Pj4gaW5kZXggMWQwMjM5Y2Y2OTUwLi4yYjRlMjQ3NTBkNTIgMTAwNjQ0DQo+Pj4gLS0tIGEv
eGVuL2FyY2gvYXJtL3RlZS9mZmEuYw0KPj4+ICsrKyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhLmMN
Cj4+PiBAQCAtMTEsNiArMTEsOCBAQA0KPj4+ICogICAgICAgICAgICAgICBodHRwczovL2RldmVs
b3Blci5hcm0uY29tL2RvY3VtZW50YXRpb24vZGVuMDA3Ny9hDQo+Pj4gKiBGRi1BLTEuMS1SRUww
OiBGRi1BIHNwZWNpZmljYXRpb24gdmVyc2lvbiAxLjEgYXZhaWxhYmxlIGF0DQo+Pj4gKiAgICAg
ICAgICAgICAgICBodHRwczovL2RldmVsb3Blci5hcm0uY29tL2RvY3VtZW50YXRpb24vZGVuMDA3
Ny9lDQo+Pj4gKyAqIEZGLUEtMS4yLVJFTDA6IEZGLUEgc3BlY2lmaWNhdGlvbiB2ZXJzaW9uIDEu
MiBhdmFpbGFibGUgYXQNCj4+PiArICogICAgICAgICAgICAgICAgaHR0cHM6Ly9kZXZlbG9wZXIu
YXJtLmNvbS9kb2N1bWVudGF0aW9uL2RlbjAwNzcvag0KPj4+ICogVEVFQy0xLjBDOiBURUUgQ2xp
ZW50IEFQSSBTcGVjaWZpY2F0aW9uIHZlcnNpb24gMS4wYyBhdmFpbGFibGUgYXQNCj4+PiAqICAg
ICAgICAgICAgaHR0cHM6Ly9nbG9iYWxwbGF0Zm9ybS5vcmcvc3BlY3MtbGlicmFyeS90ZWUtY2xp
ZW50LWFwaS1zcGVjaWZpY2F0aW9uLw0KPj4+ICoNCj4+PiBAQCAtMTAyLDYgKzEwNCw4IEBAIHN0
YXRpYyBjb25zdCBzdHJ1Y3QgZmZhX2Z3X2FiaSBmZmFfZndfYWJpX25lZWRlZFtdID0gew0KPj4+
ICAgIEZXX0FCSShGRkFfTVNHX1NFTkRfRElSRUNUX1JFUV8zMiksDQo+Pj4gICAgRldfQUJJKEZG
QV9NU0dfU0VORF9ESVJFQ1RfUkVRXzY0KSwNCj4+PiAgICBGV19BQkkoRkZBX01TR19TRU5EMiks
DQo+Pj4gKyAgICBGV19BQkkoRkZBX01TR19TRU5EX0RJUkVDVF9SRVEyKSwNCj4+PiArICAgIEZX
X0FCSShGRkFfUlVOKSwNCj4+PiB9Ow0KPj4+IA0KPj4+IC8qDQo+Pj4gZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUuaCBiL3hlbi9hcmNoL2FybS90ZWUvZmZhX3ByaXZh
dGUuaA0KPj4+IGluZGV4IDZkYmRiMjAwZDg0MC4uZDdlNmI2ZjVlZjQ1IDEwMDY0NA0KPj4+IC0t
LSBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUuaA0KPj4+ICsrKyBiL3hlbi9hcmNoL2Fy
bS90ZWUvZmZhX3ByaXZhdGUuaA0KPj4+IEBAIC0xNSw2ICsxNSw3IEBADQo+Pj4gI2luY2x1ZGUg
PHhlbi9zcGlubG9jay5oPg0KPj4+ICNpbmNsdWRlIDx4ZW4vdGltZS5oPg0KPj4+ICNpbmNsdWRl
IDx4ZW4vdHlwZXMuaD4NCj4+PiArI2luY2x1ZGUgPGFzbS90ZWUvZmZhLmg+DQo+Pj4gDQo+Pj4g
LyogRXJyb3IgY29kZXMgKi8NCj4+PiAjZGVmaW5lIEZGQV9SRVRfT0sgICAgICAgICAgICAgICAg
ICAgICAgMA0KPj4+IEBAIC00Miw2ICs0Myw3IEBADQo+Pj4gDQo+Pj4gI2RlZmluZSBGRkFfVkVS
U0lPTl8xXzAgICAgICAgICBNQUtFX0ZGQV9WRVJTSU9OKDEsIDApDQo+Pj4gI2RlZmluZSBGRkFf
VkVSU0lPTl8xXzEgICAgICAgICBNQUtFX0ZGQV9WRVJTSU9OKDEsIDEpDQo+Pj4gKyNkZWZpbmUg
RkZBX1ZFUlNJT05fMV8yICAgICAgICAgTUFLRV9GRkFfVkVSU0lPTigxLCAyKQ0KPj4+IC8qIFRo
ZSBtaW5pbWFsIEZGLUEgdmVyc2lvbiBvZiB0aGUgU1BNQyB0aGF0IGNhbiBiZSBzdXBwb3J0ZWQg
Ki8NCj4+PiAjZGVmaW5lIEZGQV9NSU5fU1BNQ19WRVJTSU9OICAgIEZGQV9WRVJTSU9OXzFfMQ0K
Pj4+IA0KPj4+IEBAIC0yNzAsNiArMjcyLDEwIEBADQo+Pj4gI2RlZmluZSBGRkFfUlhfQUNRVUlS
RSAgICAgICAgICAgICAgICAgIDB4ODQwMDAwODRVDQo+Pj4gI2RlZmluZSBGRkFfU1BNX0lEX0dF
VCAgICAgICAgICAgICAgICAgIDB4ODQwMDAwODVVDQo+Pj4gI2RlZmluZSBGRkFfTVNHX1NFTkQy
ICAgICAgICAgICAgICAgICAgIDB4ODQwMDAwODZVDQo+Pj4gKyNkZWZpbmUgRkZBX0NPTlNPTEVf
TE9HICAgICAgICAgICAgICAgICAweDg0MDAwMDhBVQ0KPj4gDQo+PiBUaGlzIGlzIHRoZSAzMi1i
aXQgdmVyc2lvbiBvZiB0aGUgaW50ZXJmYWNlLiBUaGVyZSdzIGFsc28gYSA2NC1iaXQgdmVyc2lv
bi4NCj4gDQo+IEFjayBpIHdpbGwgYWRkIHRoZSBtaXNzaW5nIGRlZmluaXRpb24gZm9yIDY0Yml0
IGFuZCByZW5hbWUgdGhhdCBvbmUgd2l0aA0KPiBhIDMyIHN1ZmZpeC4NCj4gDQo+PiANCj4+PiAr
I2RlZmluZSBGRkFfUEFSVElUSU9OX0lORk9fR0VUX1JFR1MgICAgIDB4ODQwMDAwOEJVDQo+Pj4g
KyNkZWZpbmUgRkZBX01TR19TRU5EX0RJUkVDVF9SRVEyICAgICAgICAweEM0MDAwMDhEVQ0KPj4+
ICsjZGVmaW5lIEZGQV9NU0dfU0VORF9ESVJFQ1RfUkVTUDIgICAgICAgMHhDNDAwMDA4RVUNCj4+
PiANCj4+PiAvKioNCj4+PiAqIEVuY29kaW5nIG9mIGZlYXR1cmVzIHN1cHBvcnRlZCBvciBub3Qg
YnkgdGhlIGZ3IGluIGEgYml0bWFwOg0KPj4+IEBAIC0yODAsMTEgKzI4Niw5IEBADQo+Pj4gI2Rl
ZmluZSBGRkFfQUJJX0lEKGlkKSAgICAgICAgKChpZCkgJiBBUk1fU01DQ0NfRlVOQ19NQVNLKQ0K
Pj4+ICNkZWZpbmUgRkZBX0FCSV9DT05WKGlkKSAgICAgICgoKGlkKSA+PiBBUk1fU01DQ0NfQ09O
Vl9TSElGVCkgJiBCSVQoMCxVKSkNCj4+PiANCj4+PiAtI2RlZmluZSBGRkFfQUJJX01JTiAgICAg
ICAgICAgRkZBX0FCSV9JRChGRkFfRVJST1IpDQo+Pj4gLSNkZWZpbmUgRkZBX0FCSV9NQVggICAg
ICAgICAgIEZGQV9BQklfSUQoRkZBX01TR19TRU5EMikNCj4+PiAtDQo+Pj4gLSNkZWZpbmUgRkZB
X0FCSV9CSVRNQVBfU0laRSAgICgyICogKEZGQV9BQklfTUFYIC0gRkZBX0FCSV9NSU4gKyAxKSkN
Cj4+PiAtI2RlZmluZSBGRkFfQUJJX0JJVE5VTShpZCkgICAgKChGRkFfQUJJX0lEKGlkKSAtIEZG
QV9BQklfTUlOKSA8PCAxIHwgXA0KPj4+ICsjZGVmaW5lIEZGQV9BQklfQklUTUFQX1NJWkUgICAo
MiAqIChGRkFfRk5VTV9NQVhfVkFMVUUgLSBGRkFfRk5VTV9NSU5fVkFMVUUgXA0KPj4+ICsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAxKSkNCj4+IA0KPj4gRGVwZW5kaW5nIG9uIHdo
ZXRoZXIgRkZBX0ZOVU1fTUFYX1ZBTFVFIGlzIE1BWCsxIG9yIGp1c3QgTUFYLCB3ZSBjb3VsZA0K
Pj4gZHJvcCB0aGUgKzEuDQo+IA0KPiBBZ3JlZSBpIHdpbGwgcmVtb3ZlIHRoZSArMSB3aXRoIHRo
ZSBjaGFuZ2UgYWJvdmUuDQoNCkkgd2lsbCBrZWVwIHRoaXMgb25lIGFzIGlzIGFzIGEgY29uc2Vx
dWVuY2UuDQoNCkNoZWVycw0KQmVydHJhbmQNCg0K


From xen-devel-bounces@lists.xenproject.org Tue Dec 02 16:49:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 16:49:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176274.1500776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQTYs-0008Ma-Vl; Tue, 02 Dec 2025 16:49:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176274.1500776; Tue, 02 Dec 2025 16:49:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQTYs-0008MT-So; Tue, 02 Dec 2025 16:49:10 +0000
Received: by outflank-mailman (input) for mailman id 1176274;
 Tue, 02 Dec 2025 16:49:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AIEi=6I=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vQTYr-0008MN-Aq
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 16:49:09 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d0c26989-cf9e-11f0-980a-7dc792cee155;
 Tue, 02 Dec 2025 17:49:06 +0100 (CET)
Received: from AS8P189CA0012.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:31f::27)
 by AS2PR08MB8311.eurprd08.prod.outlook.com (2603:10a6:20b:556::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Tue, 2 Dec
 2025 16:49:00 +0000
Received: from AM2PEPF0001C711.eurprd05.prod.outlook.com
 (2603:10a6:20b:31f:cafe::3a) by AS8P189CA0012.outlook.office365.com
 (2603:10a6:20b:31f::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Tue,
 2 Dec 2025 16:49:00 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM2PEPF0001C711.mail.protection.outlook.com (10.167.16.181) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Tue, 2 Dec 2025 16:49:00 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AS4PR08MB7429.eurprd08.prod.outlook.com (2603:10a6:20b:4e1::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Tue, 2 Dec
 2025 16:47:58 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d%4]) with mapi id 15.20.9366.012; Tue, 2 Dec 2025
 16:47:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d0c26989-cf9e-11f0-980a-7dc792cee155
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=D5qKwHOEVghn3FYXXkQBIo36qlfsJMPKBCRaN9maQSfeD+7QOFebbND+Se97Hf+JA15JIyaj+q90RmdQVZldy4H6N+OLcHWWeZJwmu1sO2UJ4pbaJZ/Ul2rp9ioOp36KeI1pwHWO9mbvGGpq1GRZySFbVGJr3zXryaLazTCLNnwtkR6L7k1xP0uhTI+mqDSnvcxZTu/lA8enMHBkKiCNiKIBr+TnOI/6aia1r+N2FdbD2SOffkQOWFG+i6Jhq5nL5b3lwNXOJjMZsnEmRq1E8TUdRK5Dt8lKdelHSWLFXA5qzKc9WE5W8Q1MW3lPNKPyGrMSt5v/5qI/VEsggGE3mg==
ARC-Message-Signature: i=2; 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=Re1lw7pDv9wYTw+s3VgbGF7f13nfRQjsJeKx+uY+SHA=;
 b=DGdDIsA1tFFuNXO4Rpa/oCW9xC0kr3IhNc3ttcZAUNoA+U1/DED0VBkq9evO0IsCk9IMY+iKO79KAwm3yTnza8imvSKSl1aa7PDbVUb3226ZPGpvO/Z/eIT54BfQ0Kw5yvmykUjTdK9VAw9vKDhGXIYgJPjiGxVsAWvdQZBujmJlSnB0NvDMqSOPaNOgzZv0gFjQDMqqK8BIXW3SYkIG6T4CG4lhzcl5HJm/wq8SFWO2xnUvNTHFgmHnM9B4ZcnnLl7Jpd/nJBeQRow/xHgn4JhqKYUo+IfwVFo3BVcah0wyao3qYlOmFDnXm9vjusdJp3eDeDbrusZO+e8rWeQEtg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Re1lw7pDv9wYTw+s3VgbGF7f13nfRQjsJeKx+uY+SHA=;
 b=j7ZLqbrZROB5cqRatKFiKZFy9ViptwVjHD5jGLkngc2svAk6Uc6stv+4ljeYrZ59apdqvo6sNZJk3SlN5yootnpb8WvrV0qauh2qdyzRSB2g84FDC4tuebF0Qlq1AyyhEPzyPW5fFI4YuIwEZOZSbfo6+s39uR3aw8ybBZYJ3hw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oVkVTGbYERtSQc/byR86hw5vOZsJ/oVp5OT5KNxOjQg0GRjXC0zRhJX9RR3kj5PlDw+cUbMzaTKFM8SRC85ss7Qz3PgROC7qZYLeoD+yqPuuFI+nEkhQgUoN3r+OUTLVjzX/0rjSBH6vJBJkPkhO1ps1ToQg6Sk5w9Ino7DoEZhBe2yl03o87Qw5k60UPunej3FJO5HsRtBJmK42T+kMC5+7z+G+W8IaXAIwGwzu/yU5S5msVVB91Y+GUJEe0VD+89eMP6VM/Ih02CEfgakgcBh6M9+NDUs7ilaWabo8HRJ0BuY3PBN97bmlVrHv/dSV3is2drXG8wtrQWGkFsX1FA==
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=Re1lw7pDv9wYTw+s3VgbGF7f13nfRQjsJeKx+uY+SHA=;
 b=gyT4BDQ1risDmzAghSYPxpn0dILhQb0Ajzsz9dBmNUw4eh0Ni8pcJhglXOYCI7aN81kMMmCfb2XxTlfsY95c1QiHqLHdcbPi/YOBRbg5LYnyS15z1xpcSUoibBHgix5fX5CgGGPA5HjSDCm7LqwH4WXflKQgqBWYQqDBZzDGA+S7tBmudt85CsNmF2Int40A5r1F6OHam/mq7bYtDLz+Hecr5HII2oBQfkCzAeVxkJNvXHV9NEwaAzjaN89C5e4kk2GNAeCBoJpITK/NTjW2K//wbxRO5Z3GFsL+OtBfpaMAt4wavUmIARK6o6T2tQ5yclLPs/layjiSWeNpKv2SYA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Re1lw7pDv9wYTw+s3VgbGF7f13nfRQjsJeKx+uY+SHA=;
 b=j7ZLqbrZROB5cqRatKFiKZFy9ViptwVjHD5jGLkngc2svAk6Uc6stv+4ljeYrZ59apdqvo6sNZJk3SlN5yootnpb8WvrV0qauh2qdyzRSB2g84FDC4tuebF0Qlq1AyyhEPzyPW5fFI4YuIwEZOZSbfo6+s39uR3aw8ybBZYJ3hw=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 04/10] xen/arm: ffa: rework SPMC RX/TX buffer management
Thread-Topic: [PATCH 04/10] xen/arm: ffa: rework SPMC RX/TX buffer management
Thread-Index: AQHcX7XuY/AW54zALEuMn1h4iIrvHbUOavEAgAAsagA=
Date: Tue, 2 Dec 2025 16:47:58 +0000
Message-ID: <33EF4249-1F82-4DF5-BCCE-0BCBB0F3D157@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
 <72d6592157a9ec15d4b5de19751186e0ca1680ba.1764254975.git.bertrand.marquis@arm.com>
 <CAHUa44Gq4L95i3wTMEVRoFNFt2PzPCKGAuF4KT3YL9mfmT2FRA@mail.gmail.com>
In-Reply-To:
 <CAHUa44Gq4L95i3wTMEVRoFNFt2PzPCKGAuF4KT3YL9mfmT2FRA@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.200.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AS4PR08MB7429:EE_|AM2PEPF0001C711:EE_|AS2PR08MB8311:EE_
X-MS-Office365-Filtering-Correlation-Id: b4c95da7-e3fd-4128-73fd-08de31c2b1a9
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?OFJQNVBiV2F0L0dYUUdxTUo2NnZ4a3E3N0p1NGRHRTRJMGkrVzEzdTk0a0pu?=
 =?utf-8?B?OFo4QTJhODZ1TksrSzY4R1RqUDAzMDZWays4YmRwZnEyTWNOUlNaUEMzaFU0?=
 =?utf-8?B?Tm93ODhlSkVpYlR4djh2K1lCOVljOXJYcWxYcEJnMnJ4N05qQVZjMkp1bzRi?=
 =?utf-8?B?bUZmcy9PdEpNWG1tUjlkSW54ZGlRMVZCd25YbzRtU20xQnY3TnBvQ0x5VDUw?=
 =?utf-8?B?Mi90RTRUZVgrVEZ3ci9hVWZrTWxmK3ZTY0srY0NYK0FHbTByYnFrNVhtb24z?=
 =?utf-8?B?bUtXQ09YRDRGVmFlQStMbTlxQm9OQXkxZG5RTmpQZ1pMRjh1Y0FNUnpibURD?=
 =?utf-8?B?NmhXRCtsYWR0YnovQTFyY0wvSEhSZmVZR0VmMERuclJPdU1NVnFKRHl2NERO?=
 =?utf-8?B?NjJ0eWtlSDdOWlVSR0lWMzRLTG85VDJNbVhWUXFnL081aytZRExkZzJ5VVlP?=
 =?utf-8?B?TUY3V1U3c0ZDZUM3QVRUbVplMUNGZk9HYjE0MDB3NWNvWDMyRkZhR21EUDJa?=
 =?utf-8?B?VUpoTVJrRW5OOHBHOVoyN1p5eVhhTThiRyttaFhNeVlycnRlUUpvNGNnaUVV?=
 =?utf-8?B?bWpSaG03WHc5cVBKalh1cXpESXpGWCs4V1loWnJ2eW0vZCsrVUNpTTNDUzY5?=
 =?utf-8?B?L2ZkK1JBYlZRR20rdnJBS1hLYit0QjRSR0tSVXpuT3BxQVFMQTExNFFQelk1?=
 =?utf-8?B?TmVobWtmdG1xeUw3T000MHd0c25lZm5tOVA1ZkpBT0VFSEpNUEl2ekVQMWtZ?=
 =?utf-8?B?ZnpMVFNVRDNKcWJvM1lKeUdkaFFDbUFFeW83RTk4UE90SWl2RUFIc0V3QTU2?=
 =?utf-8?B?ZkhOYTUyclBJMUljaHZJQWFYeVVpSWxFZSsya2Ywcll2SkltOGhIaUtxQlZq?=
 =?utf-8?B?RzdZZTlheTJGZUtkYVVSVlRmMlVUOCtheUZZc3BzZ2NRVzNRQXQ5SE5WeXM0?=
 =?utf-8?B?REVyNzZ0ak15UkR5cGRaQVkwM3pIRTFMalpMNXFSV2Z0dFVqNFNUUmZJcGpv?=
 =?utf-8?B?WFlGeU1mRlR3U0pEVzBjUkllZnBLL0FGY3B5aWZhK2hwdmMwM2VvK0xnaDI4?=
 =?utf-8?B?Qk9zVVVXOGduWFk5Mm1idmR3RUhWVnNhRnp4YVUyL3UrSlNHNUhzVEJFR0xa?=
 =?utf-8?B?bDhqYVNYSy9xSm1RYVZxRDNCaFpGNG5RSVc1YWJCeENVVnNHenlNck5LaHBJ?=
 =?utf-8?B?NDgvL1phYkhRZmdmZ3VJT2x4RmxnOTBvWnFQUTZwakhLVEYyQ0pkb2NWWTds?=
 =?utf-8?B?WTdseXhXZlhBRjRWeWVYOTNxcHlBZEppc1ZPRldQVnN3RVVzOVlKN3BRWlJw?=
 =?utf-8?B?UU14Z21kUElnanA3OVJSb1FYa0RneE9PN3krNnBzWE82d3NhYVVhc2lXSTVK?=
 =?utf-8?B?LzllSkEyd1FKRGEreFlkTmpMaFhiaTRGR1BYTTgzdXVjYzUxQVE2WjdwVFVL?=
 =?utf-8?B?WVVtQmpQMFNYaVdTaTVldWlIbHFYY3hEY2p1bXpxdmxpVkp2NVIzck9UM0Y1?=
 =?utf-8?B?MkJlakF6RzFKbHlWY1BnVkRqUW1WR2JCV3pkOGNGdlRweUJQYTB5N0NqOTRt?=
 =?utf-8?B?MXVoS3RQT2Y4cUhEVzNRSXltdWVZWjRSTXFCOXBBZU5PSFpYZjhFdncyMWJM?=
 =?utf-8?B?U09ENmp3NUtZNmtKbUNlTkNHRjgyR1FJeFM2SHp5NkNhN2xoc3lraU9RdDJR?=
 =?utf-8?B?RmJzUkNqVlErdnBkSSt3QVExaGdIZEtQZ0M0OVZnS0RJZ2hYYktlQThqQXhh?=
 =?utf-8?B?Nm5lWHdBTzAvakZOSFg5K2R1OHYvMDdvS0k2R2laa1NFOFZmNXhibkpLRFYx?=
 =?utf-8?B?N2Jrb2VpOEtUYng2N1ZBTndHUmJXL2tKMXQrU3lYajYrMlpWaW0vc2hiT2xD?=
 =?utf-8?B?N1I4UHR5emgwSCtzeGhOTi9FS3BuSDRBNnpIWDhEVWc0bkl4cWR2L2Q0VW00?=
 =?utf-8?B?cE05REQ4eUFRR0ZDYjVBajBSRlJFSjBJNnlZNUJQQ2MzRDQrVnZQWkZVdlR1?=
 =?utf-8?B?UXI3TW5ZSmpBMkxHOUZGbE1kSFN6NGxFbWE3djJLNE85eExqL0ZDOEppQ3FT?=
 =?utf-8?Q?6G+y4w?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <6E8F5FA5E1FE1D49B4637835944D381C@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7429
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM2PEPF0001C711.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	0721c1f8-2cfb-4c5b-8e93-08de31c28cb1
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|36860700013|14060799003|82310400026|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bDg2VS9GWmpKYlJXTVNSNEZLODlOT2JiaG9STXZ4cjFNVFNXMmtkSDd2ZkZB?=
 =?utf-8?B?dldOUkdPYjk3MFgwOEpwRktEVDlKNUZNSlhRazgyQ1grbDVQV3A5M3grZlFX?=
 =?utf-8?B?b3JFbVNUaVlwM20rY1dVd29tRFZ1SS9Pckx6MldzZ284ajdoaTFadTdFc3dQ?=
 =?utf-8?B?T285d3c3Q3lZTUQ4NERZL3FTb3phTG1BRGd5T3dySnZBSCs2Y2pIbVNwT3BJ?=
 =?utf-8?B?Y0NSQ2hzdWdMdGx4Mis2dkNUWXJKdE5icEpmMEE2TCt3UDJlaVpjY3NJdmFo?=
 =?utf-8?B?bnVKVmRsSElZNmhyRkkwYmN0UncwTEppUmxlOW5MclJPNkxVNXJ5c2xmU20z?=
 =?utf-8?B?NU8xQ2NhK2tnVzA5ODdNQ1JRS2lBZVFBMHJUR2d5TDYwNFZXQmw4WlkwN3R2?=
 =?utf-8?B?Q1g5MUZzT1dPY2dMbnVhU1QzWm43Q05GZDdoTHhvcndzQlk3ZDMzU3dHbFYr?=
 =?utf-8?B?c1NmZ0MzOU01b01mTXJDZEluZ1VQUGFKdUd6QlQyZGNtT01PL0QzN3k5TVF4?=
 =?utf-8?B?eSt5WG1VdzVpZWtpdlIvYkpaZ1FkOGZnVnZTV2FyWUE1QmRhZGF3K0x3dktO?=
 =?utf-8?B?ZWUrTFFNQThrNEhQeEJrUE1hd2lORGs5MnZaR0gwVWhUVjNrL21xQzNpRnlN?=
 =?utf-8?B?UnFtNFZZb0JINjVMYlF2RGk4VDNSU3JXOUtTSzFoblVaaGxlM3JZR3FlaWpt?=
 =?utf-8?B?TVpXT1pFRkVzbG44MWF6MU4wQWJ3aW15ejUxV3NuaFFYTkpJdGxHN3JDaHZG?=
 =?utf-8?B?SlAya3pvVzVQakErQ2g5M0k3M0R2ZjZybnk3ZXdwaHNuOGp3VkNiUGpISkFQ?=
 =?utf-8?B?MllmOENKSkx5ZzkvNmozejVQNkpDMWd2S0RnQ3pjU01pcEZheEVTd004Vzdn?=
 =?utf-8?B?Vjl1WlJJSkZDb3l0dmtkV25aMFQ5MkJSVzIzUmhEZGliWDRKeTFJTjdrRFh1?=
 =?utf-8?B?SUtUOElkbU5pRFYra241SVkwNTF3UGhUUE1pSmNSMndaNUZydE02VGVMQm9S?=
 =?utf-8?B?WHVIaExOMkd3Z3YxZGxjUHNkQjIyU09CNm9lekQyR0c3NUt2SEg0dlY5NFhF?=
 =?utf-8?B?azREdmN6TWJ5ZHpmVnl4TFViNFR1VkluamdhNmNmZG8vd2Q4dkc2WW9XS21N?=
 =?utf-8?B?K3gvVFYvaW45bVE1YzVwN3hxZklLNmNSQ1BhV3pOUGZHWnlJazIvS0xXM1lM?=
 =?utf-8?B?eUdBMGJaR1NPUFZ6c3JNM3A1U1hvZHhsdU5DQWZZdnN0SU9yNlc1ckYvSFMr?=
 =?utf-8?B?OFQyQ3F4bC9ZVW5EQTM0Zit3eVJVZ0g3YjltdnhMKzhUQlQ1L2JHSXdyWEVG?=
 =?utf-8?B?aUIwZitlTjZLLzZ5OUl4WkMya2RRK2JxWUtjdDkzbFRzMjE3eHJqc1RwQVJJ?=
 =?utf-8?B?dW5tN09FT2FDWjRTOUgvajdvVW5SVktrVkFtVnRNdjhVT256M1ZUdFlkWlpQ?=
 =?utf-8?B?UTJBQWZzOUh0bVB5ZW9jLzNmOHh4eEdzSGthZ2xYVm14NGlaMSs4TjhlU2dU?=
 =?utf-8?B?c1pwQzRCVkNXc0JXdnlVNC9EYVFuTCtDdTdDNlBDMHB2aWsxVnBCV2FJa2Fj?=
 =?utf-8?B?ZTRFNFFCemlaaDUvNWhRUkRFMFJhaFlmRnRGbElFeWtuckJGaU83TzhUQ25y?=
 =?utf-8?B?WldmbktiVnVDUkZuZ0RZTEY0T0RjZjhUOVoyNmdkcU9tSWRRVy8xQ1g1M1hR?=
 =?utf-8?B?aGxMdWJmb1RCbUEwZExJenRBY2lCZnNZL254Nzhrb3ZZYk1SVW81ZHoyQW9B?=
 =?utf-8?B?UUNYR2ZHVURwVUp5bmRzS09hWUI4NjlFcjNRR3ptYjFTNUhab0pNOTB2cWFv?=
 =?utf-8?B?d0lSb2k2YWc2UTErbloyQkdaanpEdGJlanNNTWxlRnBJTWRYMVVwKytPNVhE?=
 =?utf-8?B?RGtkN25BUlk3MWZkb0xUNk04ZGR5ZllNN01LTW9kb2p0eFA2ejZXWEg4QWhR?=
 =?utf-8?B?Vm1IdCtHaEZIbC9hN3EzUlV2ODVrTVBoamQ3UEtkWER0U0UydVpBamQrRGNm?=
 =?utf-8?B?VmpSM1BRbk9vM3hyRlF6YldOUU5BSHpWWlljdHAwTVExV2Ira2hhQjRiOXdX?=
 =?utf-8?B?d1A0Y1NFS0gvUjFxRkR2N21TR0NTSTN3eUNNSzVHa0NMbC9abkVxZmU4a2Nw?=
 =?utf-8?Q?1B9s=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(36860700013)(14060799003)(82310400026)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2025 16:49:00.6357
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b4c95da7-e3fd-4128-73fd-08de31c2b1a9
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM2PEPF0001C711.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8311

SGkgSmVucywNCg0KPiBPbiAyIERlYyAyMDI1LCBhdCAxNTowOCwgSmVucyBXaWtsYW5kZXIgPGpl
bnMud2lrbGFuZGVyQGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gSGkgQmVydHJhbmQsDQo+IA0K
PiBPbiBUaHUsIE5vdiAyNywgMjAyNSBhdCA0OjUy4oCvUE0gQmVydHJhbmQgTWFycXVpcw0KPiA8
YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPiB3cm90ZToNCj4+IA0KPj4gUmV3b3JrIGhvdyBYZW4g
YWNjZXNzZXMgdGhlIFJYL1RYIGJ1ZmZlcnMgc2hhcmVkIHdpdGggdGhlIFNQTUMgc28gdGhhdA0K
Pj4gb3duZXJzaGlwIGFuZCBsb2NraW5nIGFyZSBoYW5kbGVkIGNlbnRyYWxseS4NCj4+IA0KPj4g
TW92ZSB0aGUgU1BNQyBSWC9UWCBidWZmZXIgYmFzZXMgaW50byBmZmFfcnh0eC5jIGFzIGZmYV9z
cG1jX3J4L2ZmYV9zcG1jX3R4LA0KPj4gcHJvdGVjdCB0aGVtIHdpdGggZGVkaWNhdGVkIGZmYV9z
cG1jX3tyeCx0eH1fbG9jayBzcGlubG9ja3MgYW5kIGV4cG9zZQ0KPj4gZmZhX3J4dHhfc3BtY197
cngsdHh9X3thY3F1aXJlLHJlbGVhc2V9KCkgaGVscGVycyBpbnN0ZWFkIG9mIHRoZSBnbG9iYWwN
Cj4+IGZmYV9yeC9mZmFfdHggcG9pbnRlcnMgYW5kIGZmYV97cngsdHh9X2J1ZmZlcl9sb2NrLg0K
Pj4gDQo+PiBUaGUgUlggaGVscGVycyBub3cgYWx3YXlzIGlzc3VlIEZGQV9SWF9SRUxFQVNFIHdo
ZW4gd2UgYXJlIGRvbmUNCj4+IGNvbnN1bWluZyBkYXRhIGZyb20gdGhlIFNQTUMsIHNvIHBhcnRp
dGlvbi1pbmZvIGVudW1lcmF0aW9uIGFuZCBzaGFyZWQNCj4+IG1lbW9yeSBwYXRocyByZWxlYXNl
IHRoZSBSWCBidWZmZXIgb24gYWxsIGV4aXQgcGF0aHMuIFRoZSBSWC9UWCBtYXBwaW5nDQo+PiBj
b2RlIGlzIHVwZGF0ZWQgdG8gdXNlIHRoZSBkZXNjcmlwdG9yIG9mZnNldHMgKHJ4X3JlZ2lvbl9v
ZmZzIGFuZA0KPj4gdHhfcmVnaW9uX29mZnMpIHJhdGhlciB0aGFuIGhhcmQtY29kZWQgc3RydWN0
dXJlIGxheW91dCwgYW5kIHRvIHVzZSB0aGUNCj4+IFRYIGFjcXVpcmUvcmVsZWFzZSBoZWxwZXJz
IGluc3RlYWQgb2YgdG91Y2hpbmcgdGhlIFRYIGJ1ZmZlciBkaXJlY3RseS4NCj4+IA0KPj4gU2ln
bmVkLW9mZi1ieTogQmVydHJhbmQgTWFycXVpcyA8YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPg0K
Pj4gLS0tDQo+PiB4ZW4vYXJjaC9hcm0vdGVlL2ZmYS5jICAgICAgICAgIHwgIDIyICstLS0tLQ0K
Pj4geGVuL2FyY2gvYXJtL3RlZS9mZmFfcGFydGluZm8uYyB8ICA0MCArKysrKy0tLS0tDQo+PiB4
ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wcml2YXRlLmggIHwgIDE4ICsrLS0tDQo+PiB4ZW4vYXJjaC9h
cm0vdGVlL2ZmYV9yeHR4LmMgICAgIHwgMTMyICsrKysrKysrKysrKysrKysrKysrKysrKystLS0t
LS0tDQo+PiB4ZW4vYXJjaC9hcm0vdGVlL2ZmYV9zaG0uYyAgICAgIHwgIDI2ICsrKystLS0NCj4+
IDUgZmlsZXMgY2hhbmdlZCwgMTUzIGluc2VydGlvbnMoKyksIDg1IGRlbGV0aW9ucygtKQ0KPj4g
DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RlZS9mZmEuYyBiL3hlbi9hcmNoL2FybS90
ZWUvZmZhLmMNCj4+IGluZGV4IDQ3ZjQyNmU4NTg2NC4uNGMxYjlhNGMzYjQ4IDEwMDY0NA0KPj4g
LS0tIGEveGVuL2FyY2gvYXJtL3RlZS9mZmEuYw0KPj4gKysrIGIveGVuL2FyY2gvYXJtL3RlZS9m
ZmEuYw0KPj4gQEAgLTQ4LDggKzQ4LDggQEANCj4+ICAqICAgICBub3RpZmljYXRpb24gZm9yIHNl
Y3VyZSBwYXJ0aXRpb25zDQo+PiAgKiAgIC0gZG9lc24ndCBzdXBwb3J0IG5vdGlmaWNhdGlvbnMg
Zm9yIFhlbiBpdHNlbGYNCj4+ICAqDQo+PiAtICogVGhlcmUgYXJlIHNvbWUgbGFyZ2UgbG9ja2Vk
IHNlY3Rpb25zIHdpdGggZmZhX3R4X2J1ZmZlcl9sb2NrIGFuZA0KPj4gLSAqIGZmYV9yeF9idWZm
ZXJfbG9jay4gRXNwZWNpYWxseSB0aGUgZmZhX3R4X2J1ZmZlcl9sb2NrIHNwaW5sb2NrIHVzZWQN
Cj4+ICsgKiBUaGVyZSBhcmUgc29tZSBsYXJnZSBsb2NrZWQgc2VjdGlvbnMgd2l0aCBmZmFfc3Bt
Y190eF9sb2NrIGFuZA0KPj4gKyAqIGZmYV9zcG1jX3J4X2xvY2suIEVzcGVjaWFsbHkgdGhlIGZm
YV9zcG1jX3R4X2xvY2sgc3BpbmxvY2sgdXNlZA0KPj4gICogYXJvdW5kIHNoYXJlX3NobSgpIGlz
IGEgdmVyeSBsYXJnZSBsb2NrZWQgc2VjdGlvbiB3aGljaCBjYW4gbGV0IG9uZSBWTQ0KPj4gICog
YWZmZWN0IGFub3RoZXIgVk0uDQo+PiAgKi8NCj4+IEBAIC0xMDgsMjAgKzEwOCw2IEBAIHN0YXRp
YyBjb25zdCBzdHJ1Y3QgZmZhX2Z3X2FiaSBmZmFfZndfYWJpX25lZWRlZFtdID0gew0KPj4gICAg
IEZXX0FCSShGRkFfUlVOKSwNCj4+IH07DQo+PiANCj4+IC0vKg0KPj4gLSAqIE91ciByeC90eCBi
dWZmZXJzIHNoYXJlZCB3aXRoIHRoZSBTUE1DLiBGRkFfUlhUWF9QQUdFX0NPVU5UIGlzIHRoZQ0K
Pj4gLSAqIG51bWJlciBvZiBwYWdlcyB1c2VkIGluIGVhY2ggb2YgdGhlc2UgYnVmZmVycy4NCj4+
IC0gKg0KPj4gLSAqIFRoZSBSWCBidWZmZXIgaXMgcHJvdGVjdGVkIGZyb20gY29uY3VycmVudCB1
c2FnZSB3aXRoIGZmYV9yeF9idWZmZXJfbG9jay4NCj4+IC0gKiBOb3RlIHRoYXQgdGhlIFNQTUMg
aXMgYWxzbyB0cmFja2luZyB0aGUgb3duZXJzaGlwIG9mIG91ciBSWCBidWZmZXIgc28NCj4+IC0g
KiBmb3IgY2FsbHMgd2hpY2ggdXNlcyBvdXIgUlggYnVmZmVyIHRvIGRlbGl2ZXIgYSByZXN1bHQg
d2UgbXVzdCBjYWxsDQo+PiAtICogZmZhX3J4X3JlbGVhc2UoKSB0byBsZXQgdGhlIFNQTUMga25v
dyB0aGF0IHdlJ3JlIGRvbmUgd2l0aCB0aGUgYnVmZmVyLg0KPj4gLSAqLw0KPj4gLXZvaWQgKmZm
YV9yeCBfX3JlYWRfbW9zdGx5Ow0KPj4gLXZvaWQgKmZmYV90eCBfX3JlYWRfbW9zdGx5Ow0KPj4g
LURFRklORV9TUElOTE9DSyhmZmFfcnhfYnVmZmVyX2xvY2spOw0KPj4gLURFRklORV9TUElOTE9D
SyhmZmFfdHhfYnVmZmVyX2xvY2spOw0KPj4gLQ0KPj4gTElTVF9IRUFEKGZmYV9jdHhfaGVhZCk7
DQo+PiAvKiBSVyBMb2NrIHRvIHByb3RlY3QgYWRkaXRpb24vcmVtb3ZhbCBhbmQgcmVhZGluZyBp
biBmZmFfY3R4X2hlYWQgKi8NCj4+IERFRklORV9SV0xPQ0soZmZhX2N0eF9saXN0X3J3bG9jayk7
DQo+PiBAQCAtNjEyLDcgKzU5OCw3IEBAIHN0YXRpYyBib29sIGZmYV9wcm9iZV9mdyh2b2lkKQ0K
Pj4gICAgICAgICAgICAgICAgICAgIGZmYV9md19hYmlfbmVlZGVkW2ldLm5hbWUpOw0KPj4gICAg
IH0NCj4+IA0KPj4gLSAgICBpZiAoICFmZmFfcnh0eF9pbml0KCkgKQ0KPj4gKyAgICBpZiAoICFm
ZmFfcnh0eF9zcG1jX2luaXQoKSApDQo+PiAgICAgew0KPj4gICAgICAgICBwcmludGsoWEVOTE9H
X0VSUiAiZmZhOiBFcnJvciBkdXJpbmcgUlhUWCBidWZmZXIgaW5pdFxuIik7DQo+PiAgICAgICAg
IGdvdG8gZXJyX25vX2Z3Ow0KPj4gQEAgLTYyNiw3ICs2MTIsNyBAQCBzdGF0aWMgYm9vbCBmZmFf
cHJvYmVfZncodm9pZCkNCj4+ICAgICByZXR1cm4gdHJ1ZTsNCj4+IA0KPj4gZXJyX3J4dHhfZGVz
dHJveToNCj4+IC0gICAgZmZhX3J4dHhfZGVzdHJveSgpOw0KPj4gKyAgICBmZmFfcnh0eF9zcG1j
X2Rlc3Ryb3koKTsNCj4+IGVycl9ub19mdzoNCj4+ICAgICBmZmFfZndfdmVyc2lvbiA9IDA7DQo+
PiAgICAgYml0bWFwX3plcm8oZmZhX2Z3X2FiaV9zdXBwb3J0ZWQsIEZGQV9BQklfQklUTUFQX1NJ
WkUpOw0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX3BhcnRpbmZvLmMgYi94
ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wYXJ0aW5mby5jDQo+PiBpbmRleCBmYTU2YjE1ODdlM2IuLjc2
NmI3NWRmZmI4YyAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX3BhcnRpbmZv
LmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhX3BhcnRpbmZvLmMNCj4+IEBAIC03Nywy
OCArNzcsMjQgQEAgc3RhdGljIGludDMyX3QgZmZhX2dldF9zcF9wYXJ0aW5mbyh1aW50MzJfdCAq
dXVpZCwgdWludDMyX3QgKnNwX2NvdW50LA0KPj4gew0KPj4gICAgIGludDMyX3QgcmV0Ow0KPj4g
ICAgIHVpbnQzMl90IHNyY19zaXplLCByZWFsX3NwX2NvdW50Ow0KPj4gLSAgICB2b2lkICpzcmNf
YnVmID0gZmZhX3J4Ow0KPj4gKyAgICB2b2lkICpzcmNfYnVmOw0KPj4gICAgIHVpbnQzMl90IGNv
dW50ID0gMDsNCj4+IA0KPj4gLSAgICAvKiBEbyB3ZSBoYXZlIGEgUlggYnVmZmVyIHdpdGggdGhl
IFNQTUMgKi8NCj4+IC0gICAgaWYgKCAhZmZhX3J4ICkNCj4+IC0gICAgICAgIHJldHVybiBGRkFf
UkVUX0RFTklFRDsNCj4+IC0NCj4+ICAgICAvKiBXZSBuZWVkIHRvIHVzZSB0aGUgUlggYnVmZmVy
IHRvIHJlY2VpdmUgdGhlIGxpc3QgKi8NCj4+IC0gICAgc3Bpbl9sb2NrKCZmZmFfcnhfYnVmZmVy
X2xvY2spOw0KPj4gKyAgICBzcmNfYnVmID0gZmZhX3J4dHhfc3BtY19yeF9hY3F1aXJlKCk7DQo+
PiArICAgIGlmICggIXNyY19idWYgKQ0KPj4gKyAgICAgICAgcmV0dXJuIEZGQV9SRVRfREVOSUVE
Ow0KPj4gDQo+PiAgICAgcmV0ID0gZmZhX3BhcnRpdGlvbl9pbmZvX2dldCh1dWlkLCAwLCAmcmVh
bF9zcF9jb3VudCwgJnNyY19zaXplKTsNCj4+ICAgICBpZiAoIHJldCApDQo+PiAgICAgICAgIGdv
dG8gb3V0Ow0KPj4gDQo+PiAtICAgIC8qIFdlIG5vdyBvd24gdGhlIFJYIGJ1ZmZlciAqLw0KPj4g
LQ0KPj4gICAgIC8qIFZhbGlkYXRlIHRoZSBzcmNfc2l6ZSB3ZSBnb3QgKi8NCj4+ICAgICBpZiAo
IHNyY19zaXplIDwgc2l6ZW9mKHN0cnVjdCBmZmFfcGFydGl0aW9uX2luZm9fMV8wKSB8fA0KPj4g
ICAgICAgICAgc3JjX3NpemUgPj0gRkZBX1BBR0VfU0laRSApDQo+PiAgICAgew0KPj4gICAgICAg
ICByZXQgPSBGRkFfUkVUX05PVF9TVVBQT1JURUQ7DQo+PiAtICAgICAgICBnb3RvIG91dF9yZWxl
YXNlOw0KPj4gKyAgICAgICAgZ290byBvdXQ7DQo+PiAgICAgfQ0KPj4gDQo+PiAgICAgLyoNCj4+
IEBAIC0xMTQsNyArMTEwLDcgQEAgc3RhdGljIGludDMyX3QgZmZhX2dldF9zcF9wYXJ0aW5mbyh1
aW50MzJfdCAqdXVpZCwgdWludDMyX3QgKnNwX2NvdW50LA0KPj4gICAgIGlmICggcmVhbF9zcF9j
b3VudCA+IChGRkFfUlhUWF9QQUdFX0NPVU5UICogRkZBX1BBR0VfU0laRSkgLyBzcmNfc2l6ZSAp
DQo+PiAgICAgew0KPj4gICAgICAgICByZXQgPSBGRkFfUkVUX05PVF9TVVBQT1JURUQ7DQo+PiAt
ICAgICAgICBnb3RvIG91dF9yZWxlYXNlOw0KPj4gKyAgICAgICAgZ290byBvdXQ7DQo+PiAgICAg
fQ0KPj4gDQo+PiAgICAgZm9yICggdWludDMyX3Qgc3BfbnVtID0gMDsgc3BfbnVtIDwgcmVhbF9z
cF9jb3VudDsgc3BfbnVtKysgKQ0KPj4gQEAgLTEyNyw3ICsxMjMsNyBAQCBzdGF0aWMgaW50MzJf
dCBmZmFfZ2V0X3NwX3BhcnRpbmZvKHVpbnQzMl90ICp1dWlkLCB1aW50MzJfdCAqc3BfY291bnQs
DQo+PiAgICAgICAgICAgICBpZiAoIGRzdF9idWYgPiAoZW5kX2J1ZiAtIGRzdF9zaXplKSApDQo+
PiAgICAgICAgICAgICB7DQo+PiAgICAgICAgICAgICAgICAgcmV0ID0gRkZBX1JFVF9OT19NRU1P
Ulk7DQo+PiAtICAgICAgICAgICAgICAgIGdvdG8gb3V0X3JlbGVhc2U7DQo+PiArICAgICAgICAg
ICAgICAgIGdvdG8gb3V0Ow0KPj4gICAgICAgICAgICAgfQ0KPj4gDQo+PiAgICAgICAgICAgICBt
ZW1jcHkoZHN0X2J1Ziwgc3JjX2J1ZiwgTUlOKHNyY19zaXplLCBkc3Rfc2l6ZSkpOw0KPj4gQEAg
LTE0MywxMCArMTM5LDggQEAgc3RhdGljIGludDMyX3QgZmZhX2dldF9zcF9wYXJ0aW5mbyh1aW50
MzJfdCAqdXVpZCwgdWludDMyX3QgKnNwX2NvdW50LA0KPj4gDQo+PiAgICAgKnNwX2NvdW50ID0g
Y291bnQ7DQo+PiANCj4+IC1vdXRfcmVsZWFzZToNCj4+IC0gICAgZmZhX2h5cF9yeF9yZWxlYXNl
KCk7DQo+PiBvdXQ6DQo+PiAtICAgIHNwaW5fdW5sb2NrKCZmZmFfcnhfYnVmZmVyX2xvY2spOw0K
Pj4gKyAgICBmZmFfcnh0eF9zcG1jX3J4X3JlbGVhc2UoKTsNCj4+ICAgICByZXR1cm4gcmV0Ow0K
Pj4gfQ0KPj4gDQo+PiBAQCAtMzc4LDcgKzM3Miw3IEBAIHN0YXRpYyB2b2lkIHVuaW5pdF9zdWJz
Y3JpYmVycyh2b2lkKQ0KPj4gICAgICAgICBYRlJFRShzdWJzY3Jfdm1fZGVzdHJveWVkKTsNCj4+
IH0NCj4+IA0KPj4gLXN0YXRpYyBib29sIGluaXRfc3Vic2NyaWJlcnModWludDE2X3QgY291bnQs
IHVpbnQzMl90IGZwaV9zaXplKQ0KPj4gK3N0YXRpYyBib29sIGluaXRfc3Vic2NyaWJlcnModm9p
ZCAqYnVmLCB1aW50MTZfdCBjb3VudCwgdWludDMyX3QgZnBpX3NpemUpDQo+PiB7DQo+PiAgICAg
dWludDE2X3QgbjsNCj4+ICAgICB1aW50MTZfdCBjX3BvczsNCj4+IEBAIC0zOTUsNyArMzg5LDcg
QEAgc3RhdGljIGJvb2wgaW5pdF9zdWJzY3JpYmVycyh1aW50MTZfdCBjb3VudCwgdWludDMyX3Qg
ZnBpX3NpemUpDQo+PiAgICAgc3Vic2NyX3ZtX2Rlc3Ryb3llZF9jb3VudCA9IDA7DQo+PiAgICAg
Zm9yICggbiA9IDA7IG4gPCBjb3VudDsgbisrICkNCj4+ICAgICB7DQo+PiAtICAgICAgICBmcGkg
PSBmZmFfcnggKyBuICogZnBpX3NpemU7DQo+PiArICAgICAgICBmcGkgPSBidWYgKyBuICogZnBp
X3NpemU7DQo+PiANCj4+ICAgICAgICAgLyoNCj4+ICAgICAgICAgICogV2UgbmVlZCB0byBoYXZl
IHNlY3VyZSBwYXJ0aXRpb25zIHVzaW5nIGJpdCAxNSBzZXQgY29udmVudGlvbiBmb3INCj4+IEBA
IC00MzMsNyArNDI3LDcgQEAgc3RhdGljIGJvb2wgaW5pdF9zdWJzY3JpYmVycyh1aW50MTZfdCBj
b3VudCwgdWludDMyX3QgZnBpX3NpemUpDQo+PiANCj4+ICAgICBmb3IgKCBjX3BvcyA9IDAsIGRf
cG9zID0gMCwgbiA9IDA7IG4gPCBjb3VudDsgbisrICkNCj4+ICAgICB7DQo+PiAtICAgICAgICBm
cGkgPSBmZmFfcnggKyBuICogZnBpX3NpemU7DQo+PiArICAgICAgICBmcGkgPSBidWYgKyBuICog
ZnBpX3NpemU7DQo+PiANCj4+ICAgICAgICAgaWYgKCBGRkFfSURfSVNfU0VDVVJFKGZwaS0+aWQp
ICkNCj4+ICAgICAgICAgew0KPj4gQEAgLTQ1NSwxMCArNDQ5LDE0IEBAIGJvb2wgZmZhX3BhcnRp
bmZvX2luaXQodm9pZCkNCj4+ICAgICB1aW50MzJfdCBmcGlfc2l6ZTsNCj4+ICAgICB1aW50MzJf
dCBjb3VudDsNCj4+ICAgICBpbnQgZTsNCj4+ICsgICAgdm9pZCAqc3BtY19yeDsNCj4+IA0KPj4g
ICAgIGlmICggIWZmYV9md19zdXBwb3J0c19maWQoRkZBX1BBUlRJVElPTl9JTkZPX0dFVCkgfHwN
Cj4+IC0gICAgICAgICAhZmZhX2Z3X3N1cHBvcnRzX2ZpZChGRkFfTVNHX1NFTkRfRElSRUNUX1JF
UV8zMikgfHwNCj4+IC0gICAgICAgICAhZmZhX3J4IHx8ICFmZmFfdHggKQ0KPj4gKyAgICAgICAg
ICFmZmFfZndfc3VwcG9ydHNfZmlkKEZGQV9NU0dfU0VORF9ESVJFQ1RfUkVRXzMyKSkNCj4+ICsg
ICAgICAgIHJldHVybiBmYWxzZTsNCj4+ICsNCj4+ICsgICAgc3BtY19yeCA9IGZmYV9yeHR4X3Nw
bWNfcnhfYWNxdWlyZSgpOw0KPj4gKyAgICBpZiAoIXNwbWNfcngpDQo+PiAgICAgICAgIHJldHVy
biBmYWxzZTsNCj4+IA0KPj4gICAgIGUgPSBmZmFfcGFydGl0aW9uX2luZm9fZ2V0KE5VTEwsIDAs
ICZjb3VudCwgJmZwaV9zaXplKTsNCj4+IEBAIC00NzUsMTAgKzQ3MywxMCBAQCBib29sIGZmYV9w
YXJ0aW5mb19pbml0KHZvaWQpDQo+PiAgICAgICAgIGdvdG8gb3V0Ow0KPj4gICAgIH0NCj4+IA0K
Pj4gLSAgICByZXQgPSBpbml0X3N1YnNjcmliZXJzKGNvdW50LCBmcGlfc2l6ZSk7DQo+PiArICAg
IHJldCA9IGluaXRfc3Vic2NyaWJlcnMoc3BtY19yeCwgY291bnQsIGZwaV9zaXplKTsNCj4+IA0K
Pj4gb3V0Og0KPj4gLSAgICBmZmFfaHlwX3J4X3JlbGVhc2UoKTsNCj4+ICsgICAgZmZhX3J4dHhf
c3BtY19yeF9yZWxlYXNlKCk7DQo+PiAgICAgcmV0dXJuIHJldDsNCj4+IH0NCj4+IA0KPj4gZGlm
ZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUuaCBiL3hlbi9hcmNoL2FybS90
ZWUvZmZhX3ByaXZhdGUuaA0KPj4gaW5kZXggNDI3MmFmZDM3MzQzLi5jZDM1YzQ0Yjg5ODYgMTAw
NjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wcml2YXRlLmgNCj4+ICsrKyBiL3hl
bi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUuaA0KPj4gQEAgLTQwNCwxMCArNDA0LDYgQEAgc3Ry
dWN0IGZmYV9jdHggew0KPj4gICAgIHVuc2lnbmVkIGxvbmcgKnZtX2Rlc3Ryb3lfYml0bWFwOw0K
Pj4gfTsNCj4+IA0KPj4gLWV4dGVybiB2b2lkICpmZmFfcng7DQo+PiAtZXh0ZXJuIHZvaWQgKmZm
YV90eDsNCj4+IC1leHRlcm4gc3BpbmxvY2tfdCBmZmFfcnhfYnVmZmVyX2xvY2s7DQo+PiAtZXh0
ZXJuIHNwaW5sb2NrX3QgZmZhX3R4X2J1ZmZlcl9sb2NrOw0KPj4gZXh0ZXJuIERFQ0xBUkVfQklU
TUFQKGZmYV9md19hYmlfc3VwcG9ydGVkLCBGRkFfQUJJX0JJVE1BUF9TSVpFKTsNCj4+IA0KPj4g
ZXh0ZXJuIHN0cnVjdCBsaXN0X2hlYWQgZmZhX2N0eF9oZWFkOw0KPj4gQEAgLTQyNSw4ICs0MjEs
MTMgQEAgaW50IGZmYV9wYXJ0aW5mb19kb21haW5faW5pdChzdHJ1Y3QgZG9tYWluICpkKTsNCj4+
IGJvb2wgZmZhX3BhcnRpbmZvX2RvbWFpbl9kZXN0cm95KHN0cnVjdCBkb21haW4gKmQpOw0KPj4g
dm9pZCBmZmFfaGFuZGxlX3BhcnRpdGlvbl9pbmZvX2dldChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAq
cmVncyk7DQo+PiANCj4+IC1ib29sIGZmYV9yeHR4X2luaXQodm9pZCk7DQo+PiAtdm9pZCBmZmFf
cnh0eF9kZXN0cm95KHZvaWQpOw0KPj4gK2Jvb2wgZmZhX3J4dHhfc3BtY19pbml0KHZvaWQpOw0K
Pj4gK3ZvaWQgZmZhX3J4dHhfc3BtY19kZXN0cm95KHZvaWQpOw0KPj4gK3ZvaWQgKmZmYV9yeHR4
X3NwbWNfcnhfYWNxdWlyZSh2b2lkKTsNCj4+ICt2b2lkIGZmYV9yeHR4X3NwbWNfcnhfcmVsZWFz
ZSh2b2lkKTsNCj4+ICt2b2lkICpmZmFfcnh0eF9zcG1jX3R4X2FjcXVpcmUodm9pZCk7DQo+PiAr
dm9pZCBmZmFfcnh0eF9zcG1jX3R4X3JlbGVhc2Uodm9pZCk7DQo+PiArDQo+PiBpbnQzMl90IGZm
YV9yeHR4X2RvbWFpbl9pbml0KHN0cnVjdCBkb21haW4gKmQpOw0KPj4gdm9pZCBmZmFfcnh0eF9k
b21haW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpkKTsNCj4+IGludDMyX3QgZmZhX2hhbmRsZV9y
eHR4X21hcCh1aW50MzJfdCBmaWQsIHJlZ2lzdGVyX3QgdHhfYWRkciwNCj4+IEBAIC01NTYsMTEg
KzU1Nyw2IEBAIHN0YXRpYyBpbmxpbmUgaW50MzJfdCBmZmFfc2ltcGxlX2NhbGwodWludDMyX3Qg
ZmlkLCByZWdpc3Rlcl90IGExLA0KPj4gICAgIHJldHVybiBmZmFfZ2V0X3JldF9jb2RlKCZyZXNw
KTsNCj4+IH0NCj4+IA0KPj4gLXN0YXRpYyBpbmxpbmUgaW50MzJfdCBmZmFfaHlwX3J4X3JlbGVh
c2Uodm9pZCkNCj4+IC17DQo+PiAtICAgIHJldHVybiBmZmFfc2ltcGxlX2NhbGwoRkZBX1JYX1JF
TEVBU0UsIDAsIDAsIDAsIDApOw0KPj4gLX0NCj4+IC0NCj4+IHN0YXRpYyBpbmxpbmUgYm9vbCBm
ZmFfZndfc3VwcG9ydHNfZmlkKHVpbnQzMl90IGZpZCkNCj4+IHsNCj4+ICAgICBCVUlMRF9CVUdf
T04oRkZBX0ZOVU1fTUlOX1ZBTFVFID4gRkZBX0ZOVU1fTUFYX1ZBTFVFKTsNCj4+IGRpZmYgLS1n
aXQgYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9yeHR4LmMgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9y
eHR4LmMNCj4+IGluZGV4IGNkNDY3ZDFkYmE2OC4uMDdiMDE0MzBkMTM5IDEwMDY0NA0KPj4gLS0t
IGEveGVuL2FyY2gvYXJtL3RlZS9mZmFfcnh0eC5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vdGVl
L2ZmYV9yeHR4LmMNCj4+IEBAIC0zMCw2ICszMCwyMCBAQCBzdHJ1Y3QgZmZhX2VuZHBvaW50X3J4
dHhfZGVzY3JpcHRvcl8xXzEgew0KPj4gICAgIHVpbnQzMl90IHR4X3JlZ2lvbl9vZmZzOw0KPj4g
fTsNCj4+IA0KPj4gKy8qDQo+PiArICogT3VyIHJ4L3R4IGJ1ZmZlcnMgc2hhcmVkIHdpdGggdGhl
IFNQTUMuIEZGQV9SWFRYX1BBR0VfQ09VTlQgaXMgdGhlDQo+PiArICogbnVtYmVyIG9mIHBhZ2Vz
IHVzZWQgaW4gZWFjaCBvZiB0aGVzZSBidWZmZXJzLg0KPj4gKyAqIEVhY2ggYnVmZmVyIGhhcyBp
dHMgb3duIGxvY2sgdG8gcHJvdGVjdCBmcm9tIGNvbmN1cnJlbnQgdXNhZ2UuDQo+PiArICoNCj4+
ICsgKiBOb3RlIHRoYXQgdGhlIFNQTUMgaXMgYWxzbyB0cmFja2luZyB0aGUgb3duZXJzaGlwIG9m
IG91ciBSWCBidWZmZXIgc28NCj4+ICsgKiBmb3IgY2FsbHMgd2hpY2ggdXNlcyBvdXIgUlggYnVm
ZmVyIHRvIGRlbGl2ZXIgYSByZXN1bHQgd2UgbXVzdCBkbyBhbg0KPj4gKyAqIEZGQV9SWF9SRUxF
QVNFIHRvIGxldCB0aGUgU1BNQyBrbm93IHRoYXQgd2UncmUgZG9uZSB3aXRoIHRoZSBidWZmZXIu
DQo+PiArICovDQo+PiArc3RhdGljIHZvaWQgKmZmYV9zcG1jX3J4IF9fcmVhZF9tb3N0bHk7DQo+
PiArc3RhdGljIHZvaWQgKmZmYV9zcG1jX3R4IF9fcmVhZF9tb3N0bHk7DQo+PiArc3RhdGljIERF
RklORV9TUElOTE9DSyhmZmFfc3BtY19yeF9sb2NrKTsNCj4+ICtzdGF0aWMgREVGSU5FX1NQSU5M
T0NLKGZmYV9zcG1jX3R4X2xvY2spOw0KPj4gKw0KPj4gc3RhdGljIGludDMyX3QgZmZhX3J4dHhf
bWFwKHBhZGRyX3QgdHhfYWRkciwgcGFkZHJfdCByeF9hZGRyLA0KPj4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVpbnQzMl90IHBhZ2VfY291bnQpDQo+PiB7DQo+PiBAQCAtMTIwLDggKzEz
NCw5IEBAIGludDMyX3QgZmZhX2hhbmRsZV9yeHR4X21hcCh1aW50MzJfdCBmaWQsIHJlZ2lzdGVy
X3QgdHhfYWRkciwNCj4+ICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgZmZhX2Fk
ZHJlc3NfcmFuZ2UpICogMiA+DQo+PiAgICAgICAgICAgICAgICAgICAgICBGRkFfTUFYX1JYVFhf
UEFHRV9DT1VOVCAqIEZGQV9QQUdFX1NJWkUpOw0KPj4gDQo+PiAtICAgICAgICBzcGluX2xvY2so
JmZmYV90eF9idWZmZXJfbG9jayk7DQo+PiAtICAgICAgICByeHR4X2Rlc2MgPSBmZmFfdHg7DQo+
PiArICAgICAgICByeHR4X2Rlc2MgPSBmZmFfcnh0eF9zcG1jX3R4X2FjcXVpcmUoKTsNCj4+ICsg
ICAgICAgIGlmICggIXJ4dHhfZGVzYyApDQo+PiArICAgICAgICAgICAgZ290byBlcnJfdW5tYXBf
cng7DQo+PiANCj4+ICAgICAgICAgLyoNCj4+ICAgICAgICAgICogV2UgaGF2ZSBvbmx5IG9uZSBw
YWdlIGZvciBlYWNoIHNvIHdlIHBhY2sgZXZlcnl0aGluZzoNCj4+IEBAIC0xMzgsNyArMTUzLDcg
QEAgaW50MzJfdCBmZmFfaGFuZGxlX3J4dHhfbWFwKHVpbnQzMl90IGZpZCwgcmVnaXN0ZXJfdCB0
eF9hZGRyLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YWRkcmVzc19yYW5nZV9hcnJheVsxXSk7DQo+PiANCj4+ICAgICAgICAgLyogcnggYnVmZmVyICov
DQo+PiAtICAgICAgICBtZW1fcmVnID0gZmZhX3R4ICsgc2l6ZW9mKCpyeHR4X2Rlc2MpOw0KPj4g
KyAgICAgICAgbWVtX3JlZyA9ICh2b2lkICopcnh0eF9kZXNjICsgcnh0eF9kZXNjLT5yeF9yZWdp
b25fb2ZmczsNCj4+ICAgICAgICAgbWVtX3JlZy0+dG90YWxfcGFnZV9jb3VudCA9IDE7DQo+PiAg
ICAgICAgIG1lbV9yZWctPmFkZHJlc3NfcmFuZ2VfY291bnQgPSAxOw0KPj4gICAgICAgICBtZW1f
cmVnLT5yZXNlcnZlZCA9IDA7DQo+PiBAQCAtMTQ4LDcgKzE2Myw3IEBAIGludDMyX3QgZmZhX2hh
bmRsZV9yeHR4X21hcCh1aW50MzJfdCBmaWQsIHJlZ2lzdGVyX3QgdHhfYWRkciwNCj4+ICAgICAg
ICAgbWVtX3JlZy0+YWRkcmVzc19yYW5nZV9hcnJheVswXS5yZXNlcnZlZCA9IDA7DQo+PiANCj4+
ICAgICAgICAgLyogdHggYnVmZmVyICovDQo+PiAtICAgICAgICBtZW1fcmVnID0gZmZhX3R4ICsg
cnh0eF9kZXNjLT50eF9yZWdpb25fb2ZmczsNCj4+ICsgICAgICAgIG1lbV9yZWcgPSAodm9pZCAq
KXJ4dHhfZGVzYyArIHJ4dHhfZGVzYy0+dHhfcmVnaW9uX29mZnM7DQo+PiAgICAgICAgIG1lbV9y
ZWctPnRvdGFsX3BhZ2VfY291bnQgPSAxOw0KPj4gICAgICAgICBtZW1fcmVnLT5hZGRyZXNzX3Jh
bmdlX2NvdW50ID0gMTsNCj4+ICAgICAgICAgbWVtX3JlZy0+cmVzZXJ2ZWQgPSAwOw0KPj4gQEAg
LTE1OSw3ICsxNzQsNyBAQCBpbnQzMl90IGZmYV9oYW5kbGVfcnh0eF9tYXAodWludDMyX3QgZmlk
LCByZWdpc3Rlcl90IHR4X2FkZHIsDQo+PiANCj4+ICAgICAgICAgcmV0ID0gZmZhX3J4dHhfbWFw
KDAsIDAsIDApOw0KPj4gDQo+PiAtICAgICAgICBzcGluX3VubG9jaygmZmZhX3R4X2J1ZmZlcl9s
b2NrKTsNCj4+ICsgICAgICAgIGZmYV9yeHR4X3NwbWNfdHhfcmVsZWFzZSgpOw0KPj4gDQo+PiAg
ICAgICAgIGlmICggcmV0ICE9IEZGQV9SRVRfT0sgKQ0KPj4gICAgICAgICAgICAgZ290byBlcnJf
dW5tYXBfcng7DQo+PiBAQCAtMjkxLDQ5ICszMDYsMTE0IEBAIHZvaWQgZmZhX3J4dHhfZG9tYWlu
X2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAqZCkNCj4+ICAgICByeHR4X3VubWFwKGQpOw0KPj4gfQ0K
Pj4gDQo+PiAtdm9pZCBmZmFfcnh0eF9kZXN0cm95KHZvaWQpDQo+PiArdm9pZCAqZmZhX3J4dHhf
c3BtY19yeF9hY3F1aXJlKHZvaWQpDQo+PiArew0KPj4gKyAgICBBU1NFUlQoIXNwaW5faXNfbG9j
a2VkKCZmZmFfc3BtY19yeF9sb2NrKSk7DQo+IA0KPiBJcyBpdCBpbnZhbGlkIGZvciB0d28gQ1BV
cyB0byBjb25jdXJyZW50bHkgdHJ5IHRvIGFjcXVpcmUgdGhlIFJYIGJ1ZmZlcj8NCg0KTm8gdGhl
IFJYIGJ1ZmZlciBvciB0aGUgVFggYnVmZmVyIHdpdGggdGhlIFNQTUMgc2hvdWxkIG9ubHkgYmUg
dXNlZCBieQ0Kb25lIENQVSBhdCBhIHRpbWUgYXMgdGhlcmUgY2Fubm90IGJlIGFueSBjb25jdXJy
ZW50IG9wZXJhdGlvbnMgdXNpbmcgaXQuDQoNCj4gDQo+PiArDQo+PiArICAgIHNwaW5fbG9jaygm
ZmZhX3NwbWNfcnhfbG9jayk7DQo+PiArDQo+PiArICAgIGlmICggZmZhX3NwbWNfcnggKQ0KPj4g
KyAgICAgICAgcmV0dXJuIGZmYV9zcG1jX3J4Ow0KPj4gKw0KPj4gKyAgICBzcGluX3VubG9jaygm
ZmZhX3NwbWNfcnhfbG9jayk7DQo+PiArICAgIHJldHVybiBOVUxMOw0KPj4gK30NCj4+ICsNCj4+
ICt2b2lkIGZmYV9yeHR4X3NwbWNfcnhfcmVsZWFzZSh2b2lkKQ0KPj4gK3sNCj4+ICsgICAgaW50
MzJfdCByZXQ7DQo+PiArDQo+PiArICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmZmZhX3NwbWNf
cnhfbG9jaykpOw0KPj4gKw0KPj4gKyAgICAvKiBJbmZvcm0gdGhlIFNQTUMgdGhhdCB3ZSBhcmUg
ZG9uZSB3aXRoIG91ciBSWCBidWZmZXIgKi8NCj4+ICsgICAgcmV0ID0gZmZhX3NpbXBsZV9jYWxs
KEZGQV9SWF9SRUxFQVNFLCAwLCAwLCAwLCAwKTsNCj4+ICsgICAgaWYgKCByZXQgIT0gRkZBX1JF
VF9PSyApDQo+PiArICAgICAgICBwcmludGsoWEVOTE9HX0RFQlVHICJFcnJvciByZWxlYXNpbmcg
U1BNQyBSWCBidWZmZXI6ICVkXG4iLCByZXQpOw0KPj4gKw0KPj4gKyAgICBzcGluX3VubG9jaygm
ZmZhX3NwbWNfcnhfbG9jayk7DQo+PiArfQ0KPj4gKw0KPj4gK3ZvaWQgKmZmYV9yeHR4X3NwbWNf
dHhfYWNxdWlyZSh2b2lkKQ0KPj4gew0KPj4gLSAgICBib29sIG5lZWRfdW5tYXAgPSBmZmFfdHgg
JiYgZmZhX3J4Ow0KPj4gKyAgICBBU1NFUlQoIXNwaW5faXNfbG9ja2VkKCZmZmFfc3BtY190eF9s
b2NrKSk7DQo+IA0KPiBJcyBpdCBpbnZhbGlkIGZvciB0d28gQ1BVcyB0byBjb25jdXJyZW50bHkg
dHJ5IHRvIGFjcXVpcmUgdGhlIFRYIGJ1ZmZlcj8NCg0KU2FtZSBhcyBhYm92ZS4NCg0KPiANCj4+
IA0KPj4gLSAgICBpZiAoIGZmYV90eCApDQo+PiArICAgIHNwaW5fbG9jaygmZmZhX3NwbWNfdHhf
bG9jayk7DQo+PiArDQo+PiArICAgIGlmICggZmZhX3NwbWNfdHggKQ0KPj4gKyAgICAgICAgcmV0
dXJuIGZmYV9zcG1jX3R4Ow0KPj4gKw0KPj4gKyAgICBzcGluX3VubG9jaygmZmZhX3NwbWNfdHhf
bG9jayk7DQo+PiArICAgIHJldHVybiBOVUxMOw0KPj4gK30NCj4+ICsNCj4+ICt2b2lkIGZmYV9y
eHR4X3NwbWNfdHhfcmVsZWFzZSh2b2lkKQ0KPj4gK3sNCj4+ICsgICAgQVNTRVJUKHNwaW5faXNf
bG9ja2VkKCZmZmFfc3BtY190eF9sb2NrKSk7DQo+PiArDQo+PiArICAgIHNwaW5fdW5sb2NrKCZm
ZmFfc3BtY190eF9sb2NrKTsNCj4+ICt9DQo+PiArDQo+PiArdm9pZCBmZmFfcnh0eF9zcG1jX2Rl
c3Ryb3kodm9pZCkNCj4+ICt7DQo+PiArICAgIGJvb2wgbmVlZF91bm1hcDsNCj4+ICsNCj4+ICsg
ICAgc3Bpbl9sb2NrKCZmZmFfc3BtY19yeF9sb2NrKTsNCj4+ICsgICAgc3Bpbl9sb2NrKCZmZmFf
c3BtY190eF9sb2NrKTsNCj4+ICsgICAgbmVlZF91bm1hcCA9IGZmYV9zcG1jX3R4ICYmIGZmYV9z
cG1jX3J4Ow0KPj4gKw0KPj4gKyAgICBpZiAoIGZmYV9zcG1jX3R4ICkNCj4+ICAgICB7DQo+PiAt
ICAgICAgICBmcmVlX3hlbmhlYXBfcGFnZXMoZmZhX3R4LCAwKTsNCj4+IC0gICAgICAgIGZmYV90
eCA9IE5VTEw7DQo+PiArICAgICAgICBmcmVlX3hlbmhlYXBfcGFnZXMoZmZhX3NwbWNfdHgsIDAp
Ow0KPj4gKyAgICAgICAgZmZhX3NwbWNfdHggPSBOVUxMOw0KPj4gICAgIH0NCj4+IC0gICAgaWYg
KCBmZmFfcnggKQ0KPj4gKyAgICBpZiAoIGZmYV9zcG1jX3J4ICkNCj4+ICAgICB7DQo+PiAtICAg
ICAgICBmcmVlX3hlbmhlYXBfcGFnZXMoZmZhX3J4LCAwKTsNCj4+IC0gICAgICAgIGZmYV9yeCA9
IE5VTEw7DQo+PiArICAgICAgICBmcmVlX3hlbmhlYXBfcGFnZXMoZmZhX3NwbWNfcngsIDApOw0K
Pj4gKyAgICAgICAgZmZhX3NwbWNfcnggPSBOVUxMOw0KPj4gICAgIH0NCj4+IA0KPj4gICAgIGlm
ICggbmVlZF91bm1hcCApDQo+PiAgICAgICAgIGZmYV9yeHR4X3VubWFwKDApOw0KPj4gKw0KPj4g
KyAgICBzcGluX3VubG9jaygmZmZhX3NwbWNfdHhfbG9jayk7DQo+PiArICAgIHNwaW5fdW5sb2Nr
KCZmZmFfc3BtY19yeF9sb2NrKTsNCj4+IH0NCj4+IA0KPj4gLWJvb2wgZmZhX3J4dHhfaW5pdCh2
b2lkKQ0KPj4gK2Jvb2wgZmZhX3J4dHhfc3BtY19pbml0KHZvaWQpDQo+PiB7DQo+PiAgICAgaW50
MzJfdCBlOw0KPj4gKyAgICBib29sIHJldCA9IGZhbHNlOw0KPj4gDQo+PiAgICAgLyogRmlybXdh
cmUgbm90IHRoZXJlIG9yIG5vdCBzdXBwb3J0aW5nICovDQo+PiAgICAgaWYgKCAhZmZhX2Z3X3N1
cHBvcnRzX2ZpZChGRkFfUlhUWF9NQVBfNjQpICkNCj4+ICAgICAgICAgcmV0dXJuIGZhbHNlOw0K
Pj4gDQo+PiAtICAgIGZmYV9yeCA9IGFsbG9jX3hlbmhlYXBfcGFnZXMoZ2V0X29yZGVyX2Zyb21f
cGFnZXMoRkZBX1JYVFhfUEFHRV9DT1VOVCksIDApOw0KPj4gLSAgICBpZiAoICFmZmFfcnggKQ0K
Pj4gLSAgICAgICAgcmV0dXJuIGZhbHNlOw0KPj4gKyAgICBzcGluX2xvY2soJmZmYV9zcG1jX3J4
X2xvY2spOw0KPj4gKyAgICBzcGluX2xvY2soJmZmYV9zcG1jX3R4X2xvY2spOw0KPj4gKw0KPj4g
KyAgICBmZmFfc3BtY19yeCA9IGFsbG9jX3hlbmhlYXBfcGFnZXMoDQo+PiArICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdldF9vcmRlcl9mcm9tX3BhZ2VzKEZGQV9SWFRYX1BBR0VfQ09VTlQp
LCAwKTsNCj4+ICsgICAgaWYgKCAhZmZhX3NwbWNfcnggKQ0KPj4gKyAgICAgICAgZ290byBleGl0
Ow0KPj4gDQo+PiAtICAgIGZmYV90eCA9IGFsbG9jX3hlbmhlYXBfcGFnZXMoZ2V0X29yZGVyX2Zy
b21fcGFnZXMoRkZBX1JYVFhfUEFHRV9DT1VOVCksIDApOw0KPj4gLSAgICBpZiAoICFmZmFfdHgg
KQ0KPj4gLSAgICAgICAgZ290byBlcnI7DQo+PiArICAgIGZmYV9zcG1jX3R4ID0gYWxsb2NfeGVu
aGVhcF9wYWdlcygNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X29yZGVyX2Zy
b21fcGFnZXMoRkZBX1JYVFhfUEFHRV9DT1VOVCksIDApOw0KPj4gKyAgICBpZiAoICFmZmFfc3Bt
Y190eCApDQo+PiArICAgICAgICBnb3RvIGV4aXQ7DQo+PiANCj4+IC0gICAgZSA9IGZmYV9yeHR4
X21hcChfX3BhKGZmYV90eCksIF9fcGEoZmZhX3J4KSwgRkZBX1JYVFhfUEFHRV9DT1VOVCk7DQo+
PiArICAgIGUgPSBmZmFfcnh0eF9tYXAoX19wYShmZmFfc3BtY190eCksIF9fcGEoZmZhX3NwbWNf
cngpLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgIEZGQV9SWFRYX1BBR0VfQ09VTlQpOw0KPj4g
ICAgIGlmICggZSApDQo+PiAtICAgICAgICBnb3RvIGVycjsNCj4+ICsgICAgICAgIGdvdG8gZXhp
dDsNCj4+IA0KPj4gLSAgICByZXR1cm4gdHJ1ZTsNCj4+ICsgICAgcmV0ID0gdHJ1ZTsNCj4+IA0K
Pj4gLWVycjoNCj4+IC0gICAgZmZhX3J4dHhfZGVzdHJveSgpOw0KPj4gK2V4aXQ6DQo+PiArICAg
IHNwaW5fdW5sb2NrKCZmZmFfc3BtY190eF9sb2NrKTsNCj4+ICsgICAgc3Bpbl91bmxvY2soJmZm
YV9zcG1jX3J4X2xvY2spOw0KPj4gDQo+PiAtICAgIHJldHVybiBmYWxzZTsNCj4+ICsgICAgaWYg
KCAhcmV0ICkNCj4+ICsgICAgICAgIGZmYV9yeHR4X3NwbWNfZGVzdHJveSgpOw0KPj4gKw0KPj4g
KyAgICByZXR1cm4gcmV0Ow0KPj4gfQ0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90ZWUv
ZmZhX3NobS5jIGIveGVuL2FyY2gvYXJtL3RlZS9mZmFfc2htLmMNCj4+IGluZGV4IGQ2MjhjMWI3
MDYwOS4uYjkwMjI3OTdjM2JmIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL3RlZS9mZmFf
c2htLmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhX3NobS5jDQo+PiBAQCAtMjg2LDkg
KzI4Niw4IEBAIHN0YXRpYyB2b2lkIGluaXRfcmFuZ2Uoc3RydWN0IGZmYV9hZGRyZXNzX3Jhbmdl
ICphZGRyX3JhbmdlLA0KPj4gfQ0KPj4gDQo+PiAvKg0KPj4gLSAqIFRoaXMgZnVuY3Rpb24gdXNl
cyB0aGUgZmZhX3R4IGJ1ZmZlciB0byB0cmFuc21pdCB0aGUgbWVtb3J5IHRyYW5zYWN0aW9uDQo+
PiAtICogZGVzY3JpcHRvci4gVGhlIGZ1bmN0aW9uIGRlcGVuZHMgZmZhX3R4X2J1ZmZlcl9sb2Nr
IHRvIGJlIHVzZWQgdG8gZ3VhcmQNCj4+IC0gKiB0aGUgYnVmZmVyIGZyb20gY29uY3VycmVudCB1
c2UuDQo+PiArICogVGhpcyBmdW5jdGlvbiB1c2VzIHRoZSBmZmFfc3BtYyB0eCBidWZmZXIgdG8g
dHJhbnNtaXQgdGhlIG1lbW9yeSB0cmFuc2FjdGlvbg0KPj4gKyAqIGRlc2NyaXB0b3IuDQo+PiAg
Ki8NCj4+IHN0YXRpYyBpbnQgc2hhcmVfc2htKHN0cnVjdCBmZmFfc2htX21lbSAqc2htKQ0KPj4g
ew0KPj4gQEAgLTI5OCwxNyArMjk3LDIyIEBAIHN0YXRpYyBpbnQgc2hhcmVfc2htKHN0cnVjdCBm
ZmFfc2htX21lbSAqc2htKQ0KPj4gICAgIHN0cnVjdCBmZmFfYWRkcmVzc19yYW5nZSAqYWRkcl9y
YW5nZTsNCj4+ICAgICBzdHJ1Y3QgZmZhX21lbV9yZWdpb24gKnJlZ2lvbl9kZXNjcjsNCj4+ICAg
ICBjb25zdCB1bnNpZ25lZCBpbnQgcmVnaW9uX2NvdW50ID0gMTsNCj4+IC0gICAgdm9pZCAqYnVm
ID0gZmZhX3R4Ow0KPj4gICAgIHVpbnQzMl90IGZyYWdfbGVuOw0KPj4gICAgIHVpbnQzMl90IHRv
dF9sZW47DQo+PiAgICAgcGFkZHJfdCBsYXN0X3BhOw0KPj4gICAgIHVuc2lnbmVkIGludCBuOw0K
Pj4gICAgIHBhZGRyX3QgcGE7DQo+PiArICAgIGludDMyX3QgcmV0Ow0KPj4gKyAgICB2b2lkICpi
dWY7DQo+PiANCj4+IC0gICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZmZmFfdHhfYnVmZmVyX2xv
Y2spKTsNCj4+ICAgICBBU1NFUlQoc2htLT5wYWdlX2NvdW50KTsNCj4+IA0KPj4gKyAgICBidWYg
PSBmZmFfcnh0eF9zcG1jX3R4X2FjcXVpcmUoKTsNCj4+ICsgICAgaWYgKCAhYnVmICkNCj4+ICsg
ICAgICAgIHJldHVybiBGRkFfUkVUX05PVF9TVVBQT1JURUQ7DQo+PiArDQo+PiAgICAgZGVzY3Ig
PSBidWY7DQo+PiArDQo+PiAgICAgbWVtc2V0KGRlc2NyLCAwLCBzaXplb2YoKmRlc2NyKSk7DQo+
PiAgICAgZGVzY3ItPnNlbmRlcl9pZCA9IHNobS0+c2VuZGVyX2lkOw0KPj4gICAgIGRlc2NyLT5o
YW5kbGUgPSBzaG0tPmhhbmRsZTsNCj4+IEBAIC0zNDAsNyArMzQ0LDEwIEBAIHN0YXRpYyBpbnQg
c2hhcmVfc2htKHN0cnVjdCBmZmFfc2htX21lbSAqc2htKQ0KPj4gICAgIHRvdF9sZW4gPSBBRERS
X1JBTkdFX09GRlNFVChkZXNjci0+bWVtX2FjY2Vzc19jb3VudCwgcmVnaW9uX2NvdW50LA0KPj4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpb25fZGVzY3ItPmFkZHJlc3NfcmFu
Z2VfY291bnQpOw0KPj4gICAgIGlmICggdG90X2xlbiA+IG1heF9mcmFnX2xlbiApDQo+PiArICAg
IHsNCj4+ICsgICAgICAgIGZmYV9yeHR4X3NwbWNfdHhfcmVsZWFzZSgpOw0KPj4gICAgICAgICBy
ZXR1cm4gRkZBX1JFVF9OT1RfU1VQUE9SVEVEOw0KPiBJJ2QgcHJlZmVyIGFkZGluZyBhbiBvdXQg
bGFiZWwgYmVsb3cgYmVmb3JlIHRoZQ0KPiBmZmFfcnh0eF9zcG1jX3R4X3JlbGVhc2UoKSBjYWxs
IGFuZDoNCj4gICAgIHJldCA9IEZGQV9SRVRfTk9UX1NVUFBPUlRFRDsNCj4gICAgIGdvdG8gb3V0
Ow0KDQpBY2sgSSB3aWxsIGZpeCB0aGF0Lg0KDQpDaGVlcnMNCkJlcnRyYW5kDQoNCj4gDQo+IENo
ZWVycywNCj4gSmVucw0KPiANCj4+ICsgICAgfQ0KPj4gDQo+PiAgICAgYWRkcl9yYW5nZSA9IHJl
Z2lvbl9kZXNjci0+YWRkcmVzc19yYW5nZV9hcnJheTsNCj4+ICAgICBmcmFnX2xlbiA9IEFERFJf
UkFOR0VfT0ZGU0VUKGRlc2NyLT5tZW1fYWNjZXNzX2NvdW50LCByZWdpb25fY291bnQsIDEpOw0K
Pj4gQEAgLTM2MCw3ICszNjcsMTEgQEAgc3RhdGljIGludCBzaGFyZV9zaG0oc3RydWN0IGZmYV9z
aG1fbWVtICpzaG0pDQo+PiAgICAgICAgIGluaXRfcmFuZ2UoYWRkcl9yYW5nZSwgcGEpOw0KPj4g
ICAgIH0NCj4+IA0KPj4gLSAgICByZXR1cm4gZmZhX21lbV9zaGFyZSh0b3RfbGVuLCBmcmFnX2xl
biwgMCwgMCwgJnNobS0+aGFuZGxlKTsNCj4+ICsgICAgcmV0ID0gZmZhX21lbV9zaGFyZSh0b3Rf
bGVuLCBmcmFnX2xlbiwgMCwgMCwgJnNobS0+aGFuZGxlKTsNCj4+ICsNCj4+ICsgICAgZmZhX3J4
dHhfc3BtY190eF9yZWxlYXNlKCk7DQo+PiArDQo+PiArICAgIHJldHVybiByZXQ7DQo+PiB9DQo+
PiANCj4+IHN0YXRpYyBpbnQgcmVhZF9tZW1fdHJhbnNhY3Rpb24odWludDMyX3QgZmZhX3ZlcnMs
IGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGJsZW4sDQo+PiBAQCAtNTc4LDEwICs1ODksNyBAQCB2
b2lkIGZmYV9oYW5kbGVfbWVtX3NoYXJlKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4g
ICAgIGlmICggcmV0ICkNCj4+ICAgICAgICAgZ290byBvdXQ7DQo+PiANCj4+IC0gICAgLyogTm90
ZSB0aGF0IHNoYXJlX3NobSgpIHVzZXMgb3VyIHR4IGJ1ZmZlciAqLw0KPj4gLSAgICBzcGluX2xv
Y2soJmZmYV90eF9idWZmZXJfbG9jayk7DQo+PiAgICAgcmV0ID0gc2hhcmVfc2htKHNobSk7DQo+
PiAtICAgIHNwaW5fdW5sb2NrKCZmZmFfdHhfYnVmZmVyX2xvY2spOw0KPj4gICAgIGlmICggcmV0
ICkNCj4+ICAgICAgICAgZ290byBvdXQ7DQo+PiANCj4+IC0tDQo+PiAyLjUxLjINCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Tue Dec 02 18:21:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 18:21:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176290.1500785 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQUzh-0003eX-DC; Tue, 02 Dec 2025 18:20:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176290.1500785; Tue, 02 Dec 2025 18:20:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQUzh-0003eQ-AD; Tue, 02 Dec 2025 18:20:57 +0000
Received: by outflank-mailman (input) for mailman id 1176290;
 Tue, 02 Dec 2025 18:20:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vQUzf-0003eK-9x
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 18:20:55 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vQUze-003GaQ-2I;
 Tue, 02 Dec 2025 18:20:54 +0000
Received: from [2a02:8012:3a1:0:2026:f832:c2a8:fb4c]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vQUzd-005umB-2q;
 Tue, 02 Dec 2025 18:20:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=o70NayaIlwLvt3TegZsweJjmkQ5zEv5n425MWdEhIz4=; b=I9iO9HkkjsRt99hoAjjJlkdySr
	TwIHx4yhPic7N+GXPqLdaD5Zp8yOGdm7SbORYbQQPYEJHnzwqW9PU23m3GZ2CM/TRtR77sAzt1a7L
	ByVy/LH7OE5984xsWEDWnM7t0JoeI/5jX38fVwYFjMn9zSD/iGVpAcn/puiRnlLC5tQE=;
Message-ID: <64aafb9b-c1b3-44a7-bcaa-c007dcfcf24f@xen.org>
Date: Tue, 2 Dec 2025 18:20:52 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] vgic-v3: Ignore writes to ISACTIVER{nE}N when eSPI is
 not used
To: Michal Orzel <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20251128114913.36244-1-michal.orzel@amd.com>
Content-Language: en-US
From: Julien Grall <julien@xen.org>
In-Reply-To: <20251128114913.36244-1-michal.orzel@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 28/11/2025 11:49, Michal Orzel wrote:
> Prior to introducing GICv3 eSPI support, writes to these registers were
> ignored. Now the behavior is changed and we inject fault to the guests.
> According to documentation, eSPI registers are treated as RES0, when
> GICD_TYPER.ESPI is 0 (this would be the case when CONFIG_GICV3_ESPI=n or
> nr_espis is 0). Restore the previous behavior by checking whether eSPI
> is in use or not.
> 
> Fixes: 93eecb2c4b88 ("xen/arm: vgic-v3: add emulation of GICv3.1 eSPI registers")
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>

Reviewed-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Dec 02 18:26:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 18:26:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176301.1500795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQV4w-0004IY-VQ; Tue, 02 Dec 2025 18:26:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176301.1500795; Tue, 02 Dec 2025 18:26:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQV4w-0004IR-Sf; Tue, 02 Dec 2025 18:26:22 +0000
Received: by outflank-mailman (input) for mailman id 1176301;
 Tue, 02 Dec 2025 18:26:22 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vQV4w-0004IL-76
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 18:26:22 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vQV4v-003Gga-0Z;
 Tue, 02 Dec 2025 18:26:21 +0000
Received: from [2a02:8012:3a1:0:2026:f832:c2a8:fb4c]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vQV4u-006V1n-1g;
 Tue, 02 Dec 2025 18:26:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=q4bronLa0tHH9LcnTjL05f4EhnhgZmXUo79y2Y54kAo=; b=P2RYQhbugtb50di8oBseAGuRFD
	wPC1HaInIbMPvPcxGaKIBM2mRkm15G1C5IbnU0AT+LNSOINcNMn6dPiHcWYevBP6W/Iyr/pAJLpcF
	4eaiVtJTU9HPlkCB3szy8WYZkEkYtOr5YN/7AfT/Y4f6tlgll9J2K71V1j/VAKeQZFa4=;
Message-ID: <b3e97c6a-b93b-424f-a10e-1d3c93afbe35@xen.org>
Date: Tue, 2 Dec 2025 18:26:19 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: irq: Use appropriate priority for SGIs in
 setup_irq()
To: Mykola Kvach <xakep.amatop@gmail.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <f7475c0083bf4995f2ec4afa3aaf44b9676fd1ab.1756867760.git.mykola_kvach@epam.com>
 <0d0f4689-97e2-408f-91e4-dd59f47bdb95@xen.org>
 <CAGeoDV9zgfyHaHb5W6+T4F9Hjxv_R5wnGkcbwcN2xgRUhY+v2w@mail.gmail.com>
Content-Language: en-US
From: Julien Grall <julien@xen.org>
In-Reply-To: <CAGeoDV9zgfyHaHb5W6+T4F9Hjxv_R5wnGkcbwcN2xgRUhY+v2w@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

Sorry for the late answer.

On 16/09/2025 11:19, Mykola Kvach wrote:
> On Sat, Sep 13, 2025 at 1:01 AM Julien Grall <julien@xen.org> wrote:
>>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>>> ---
>>>    xen/arch/arm/irq.c | 8 +++++++-
>>>    1 file changed, 7 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
>>> index 02ca82c089..17c7ac92b5 100644
>>> --- a/xen/arch/arm/irq.c
>>> +++ b/xen/arch/arm/irq.c
>>> @@ -397,7 +397,13 @@ int setup_irq(unsigned int irq, unsigned int irqflags, struct irqaction *new)
>> AFAIK, we are not using setup_irq() to handle SGIs because they are all
>> static and always enabled. Are you planning to handle dynamic SGIs? If
>> yes, then can you provide more details?As far as I know, there can be at least one “dynamic” SGI in Xen.
> 
> As far as I know, there is at least one “dynamic” SGI in Xen. For
> example, see ffa_notif.c in the functions ffa_notif_init_interrupt
> and ffa_notif_init, which handle initialization of such SGIs.

Bertrand can you comment on this? In particular, do we want the FFA SGIs 
to have the priority of the internal ones?

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Dec 02 18:41:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 18:41:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176314.1500813 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQVJm-00074g-7t; Tue, 02 Dec 2025 18:41:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176314.1500813; Tue, 02 Dec 2025 18:41:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQVJm-00074Z-5K; Tue, 02 Dec 2025 18:41:42 +0000
Received: by outflank-mailman (input) for mailman id 1176314;
 Tue, 02 Dec 2025 18:41: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
 <SRS0=O/vY=6I=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vQVJl-00074T-6L
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 18:41:41 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 895d47b6-cfae-11f0-9d1a-b5c5bf9af7f9;
 Tue, 02 Dec 2025 19:41:39 +0100 (CET)
Received: from PH7PR03CA0016.namprd03.prod.outlook.com (2603:10b6:510:339::13)
 by MN0PR12MB6176.namprd12.prod.outlook.com (2603:10b6:208:3c3::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Tue, 2 Dec
 2025 18:41:34 +0000
Received: from CY4PEPF0000EDD3.namprd03.prod.outlook.com
 (2603:10b6:510:339:cafe::d6) by PH7PR03CA0016.outlook.office365.com
 (2603:10b6:510:339::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Tue,
 2 Dec 2025 18:41:38 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CY4PEPF0000EDD3.mail.protection.outlook.com (10.167.241.199) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Tue, 2 Dec 2025 18:41:33 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Tue, 2 Dec
 2025 12:41:33 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 2 Dec
 2025 12:41:32 -0600
Received: from [172.31.77.70] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 2 Dec 2025 10:41:32 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 895d47b6-cfae-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iqIPMoiv0Tnv/h5ooOBJspOpYmFghCW47ZHj0fCwfzGJb9EWsMPXok+BqxNvPnqRW24Bl4NC2eVZ3jQVHBoNaHQhOPAJQ7DHPrkVbnJE6168jb7tT50VAdVGEfQ6jRjpbrp5g8v1MMXMEpFfSk5HiAkKvUtjTZ58SxEaj26zCELSov+J/JKvhpCvHelkWwksrj2GpxV6bG+B2bPkoaAM2hqrEsXyoNJliSJujfv0gNlV6rSAOAmUexnhTh3JGZX/c55yjYHA3sgaiyHEFbyd9M2yJdMbeJfVSTzDAp2PCfsaIsURNbEgxqCQAdcsMGfYyo7IHgFvwIQIVj2ZrEb/Rg==
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=PGdfIf//6+hO4yhMhimeGAXBM65bie/zdIJ3sjiYyZk=;
 b=rWrQkHa73meROdafXQDfGeM1RUskaaQqUrTDvJogc9NiSpzKXKO7dU2RXPoxL/AGJuXchHavfPREMkVyxB9tus4mYf7z354hJK4RTNns0UcHEB5BSx+qVfQlM9Taey4ECGdbFF0kZ9ef6/kCnC9lq7t9rzD7e5YdWV5TbvZjSQLBUvUKv4yLNNRxkgtBqjPMCDHuO1ySeJ5XyHpAOvptoW87kF638Rj3S8alHbsyQBuShz0/1cfhSKbkohLIe8P5h3R39BMghuey1Hc6KCG9BWzEOwLwvyEEcWLWebNejpoC1hWUHz57awLeh1Uj9cwSnj1z7SVGmOnhbvNJwukTow==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PGdfIf//6+hO4yhMhimeGAXBM65bie/zdIJ3sjiYyZk=;
 b=kNbjWwxLnvYlCQTns9aDi0GxqgTeIzNLiG/VfH7O9dz4CniE2dWbX6oyMg88eMCZxPbep5oRG1d1zxz4LYZYHjINsUXluGUS7z6K7U1BS1gbhcgpCHE1KLnEdjlLXH38hXZgnh4IGHjOWT8bTht10XtIfq1AysnMvSRFEpc+ozo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <0054b5cc-d278-4c8c-bb6b-fbe1d641ac2c@amd.com>
Date: Tue, 2 Dec 2025 13:41:31 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2 2/4] x86: hvm: compat: introduce is_hcall_compat()
 helper
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Alejandro Vallejo
	<alejandro.garciavallejo@amd.com>
References: <20251119192916.1009549-1-grygorii_strashko@epam.com>
 <20251119192916.1009549-3-grygorii_strashko@epam.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20251119192916.1009549-3-grygorii_strashko@epam.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EDD3:EE_|MN0PR12MB6176:EE_
X-MS-Office365-Filtering-Correlation-Id: afc072b5-43ef-4af6-ce59-08de31d26aca
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?aThMWmFqbVVwYzBtcHZFSisva3NPRjYrRjNsaFJUeVRWRWxlVGxETk1QV1VB?=
 =?utf-8?B?Y01uZGxsYzJTUnF0MjVkdVhzWVJaQzh1cmk5WGFER2x6Y2RMdENKWlo1Z1ky?=
 =?utf-8?B?WXJKTnVNRmtlMk15cktURFloV1dKU1hrVmtxb2YycUprbm5qbXlPeThMMkNO?=
 =?utf-8?B?M0NsQ1lkR25xeUNNUWRzZUwzdGthWjg3VFJXL2pza21xcE1zVFAydHhsSG0x?=
 =?utf-8?B?T2lETmd0TXRYOUZJQ2hYeU5lNkJNK250ZkcxWTBsZlZmYWFjbUJpZ2VBOERS?=
 =?utf-8?B?UXpBT1V2ZnR3Y01xZ2hWTmxadUI2Z1NXcE5tb29CSndlTnI2QTFRYUVoOXk3?=
 =?utf-8?B?bFJkWW5Jc0pRQXEvQjVUL0EvQlNmZTZXeHU4MGdUajRER0JmWTB6eCsrYmpi?=
 =?utf-8?B?ZG1tNHZuaWJKNzVJaHVEM1F1QVpVR1pOb2xuMUxvN051UVBoN2pKdkpBWmhU?=
 =?utf-8?B?c3hNalVnaEVpMU1XU1EzNGhITis4KzBNUk41bGlISndLLzhFY3JMeDZmZng1?=
 =?utf-8?B?QjE2VHlmbkF0c0tsWDFsbWdIOWFWbS8rOGFhNW9kWDFUeEJKN1hoamZlaEtJ?=
 =?utf-8?B?Qi90R0pvSExOdzZNQ2ozdTh6SU5wSGZ5WHhsZnVsY21XZHZvSmJDL0h1RDhv?=
 =?utf-8?B?Q1BXbkdOaEkyaG8xVHFWaHdZYzBwWnlZR0oxZFlFSnNRT2lSa2VWOUQ3aFRk?=
 =?utf-8?B?TFNGMGJiLzNuQXZzemdscWpJN3JHL1RPTVBvWHZSbitEbFhPdllOTnJhejc4?=
 =?utf-8?B?QVBHcWQxd3Ixa1JPMWZVbkRGSEE4TFJMWk14dTVLeWxqajNqN2twTzZlNUtS?=
 =?utf-8?B?Q1RPMU96U3Q4NHdCMjlzc3M3U3ptdXY2dFhmNDU5eEMzSldxcERGam44NjFt?=
 =?utf-8?B?TzJlRFA2REFRR3YxajhIZTZYMjlZb2djT0RWQ0tTLzdGdGdGQTJBbGZPMHVo?=
 =?utf-8?B?Yzl2VVBNRDFZMmtiR2RJd2x4U1VZMHBmcFc1clFZS29aSkE0aisvMVZWSjVv?=
 =?utf-8?B?YzYwWHRqUGJnWWpYSVpIWEVNb05uak5OOUFlLzlOTlpiSXozRnJnYnVEUHM1?=
 =?utf-8?B?MmpLemNRTHh3NnFHZTlMVXNYRVMrcm1pQ2hXTlYrWmtING5rcTlvbGNzTW9y?=
 =?utf-8?B?aTJTalpUK3ZDNElOYWpNSXhjQXFpMTBHc2NWYVlmU29FQ3ZLMGpVbGMrSnlj?=
 =?utf-8?B?Ym9ZREx1Zkk5MGVhU3QvTXhhOXp6OHpRb2hCSWpVZTd0VFZQejN6QVp5N0xX?=
 =?utf-8?B?WlVIMVZGbXpsS3kydlo5aWRkZlIza2RIS2R1T0dESDVwUXBxNzFDNlhHUEpv?=
 =?utf-8?B?enpGOTRWT3huZFdzVlhla0lmK2JpMnBLbE9KYTJvellubzJCdlpvSUhTSG5t?=
 =?utf-8?B?bjRyL1ZuazlrbWJOTENDeGVMaytWeWNIdGxaZ21ycW5XT0dHQTBMQWdkK25i?=
 =?utf-8?B?Q2NZYkthTTNmTHE0SStkNzEwTU1GZE9qQ0hONC9INElveDF6c0Vudzc1Vk52?=
 =?utf-8?B?UFQ3M2U2b210dGRoaS93UUd6dEV2UUg0Qk83SHkwZlI1TTd3ckYrTnppVmRl?=
 =?utf-8?B?RFlwcjhqQ25rMFhrOGIyZUNidnlSd2VTSzNZcGp5VmN4SmU0ZWNBVlNibXpB?=
 =?utf-8?B?K0U3RkV3MWdoVGs0RlE5RjUzTGRyV2dsVmZwZTJ4U1NiWDZxVHV4YUtNSFIr?=
 =?utf-8?B?cE5oN3dNdmpETjBxQ2poYTB6dFAzK1hETFUvZFpoRzM2N2lSUVFTTjhBOHNP?=
 =?utf-8?B?TDN2UUlVTXFzWlNxT1VjY2lkM050SlgvQkVGWkltZm5JbWMrdFI3R3I5dFVz?=
 =?utf-8?B?OWVXZjJCTkRYOHlSM1o2ME0zbUlET0JTellLS0g2VnVVTys5ZTl2M3dwc2d0?=
 =?utf-8?B?WXprOGhNd3M3d2dXRVBzOUpMUVFLMjJ1VDkxcjlHaUFJY2xoMXhENGU0MHJZ?=
 =?utf-8?B?ZjVhcDZpOWtKQ3VvVG5zeUdxN1ZLdTJ5NE9tRVJSeXhxZXpzTFd0UUlHYlNk?=
 =?utf-8?B?citVSytIb2RTVWcrWm8yc09hcVhCbmRhNW9tK0twQ0NXeGlQMTZiQW9HdFNy?=
 =?utf-8?B?N1dNV2NNMENlTWpVMG1pSXQ0V29qeXc3YTRteHFhSU1zYXVGV2wwbzBLTUJG?=
 =?utf-8?Q?HWW4=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2025 18:41:33.6882
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: afc072b5-43ef-4af6-ce59-08de31d26aca
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EDD3.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6176

On 2025-11-19 14:30, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Introduce is_hcall_compat() helper and use it instead of direct access to
> struct vcpu->hcall_compat field in preparation for making HVM COMPAT code
> optional. The vcpu->hcall_compat field is under CONFIG_COMPAT ifdefs
> already.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>

> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
> index 02bdc256ce37..ed6fdeeda9f9 100644
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -311,6 +311,15 @@ struct vcpu
>   #endif
>   };
>   
> +static inline bool is_hcall_compat(void)
> +{
> +#ifdef CONFIG_COMPAT
> +    return current->hcall_compat;
> +#else
> +    return false;
> +#endif /* CONFIG_COMPAT */
> +}
> +

is_hcall_compat() matches the hcall_compat field, so I am okay with this.

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

However, is_compat_hcall() might be a slightly better name for the 
helper.  For me at least, I think of these as "compat hypercalls", so 
that ordering reads a little more naturally for me.  It's not a big 
deal, but I figured I'd mention it in case others have an opinion.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Dec 02 19:26:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 19:26:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176325.1500824 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQW1G-0003tC-D5; Tue, 02 Dec 2025 19:26:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176325.1500824; Tue, 02 Dec 2025 19:26:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQW1G-0003t5-A2; Tue, 02 Dec 2025 19:26:38 +0000
Received: by outflank-mailman (input) for mailman id 1176325;
 Tue, 02 Dec 2025 19:26:36 +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
 <SRS0=O/vY=6I=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vQW1E-0003sz-QD
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 19:26:36 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cf2513bf-cfb4-11f0-9d1a-b5c5bf9af7f9;
 Tue, 02 Dec 2025 20:26:33 +0100 (CET)
Received: from BN9PR03CA0146.namprd03.prod.outlook.com (2603:10b6:408:fe::31)
 by DM3PR12MB9391.namprd12.prod.outlook.com (2603:10b6:0:3d::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Tue, 2 Dec
 2025 19:26:25 +0000
Received: from BN2PEPF000055DC.namprd21.prod.outlook.com
 (2603:10b6:408:fe:cafe::b7) by BN9PR03CA0146.outlook.office365.com
 (2603:10b6:408:fe::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.9 via Frontend Transport; Tue, 2
 Dec 2025 19:26:25 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN2PEPF000055DC.mail.protection.outlook.com (10.167.245.6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.0 via Frontend Transport; Tue, 2 Dec 2025 19:26:25 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 2 Dec
 2025 13:26:24 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 2 Dec
 2025 13:26:24 -0600
Received: from [172.31.77.70] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 2 Dec 2025 11:26:23 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cf2513bf-cfb4-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WV2N2grsz8pt37pBITipn92C8I9w4HjuCP53xbDastfDmpHaWecdiKGXKJRLhcOrpBT88x17hDTLQ3BCWWaBsqB+8PPu4cwKkxKauff/MNMOxg3wzi36o/XLKJjoDVZZpSdvOAKhUML88FryJCD/UBCBIIoqk6wckm/60X0SKsMhA6GPcgJ/ASXahbb8ugIvvITuFCYtdvyXV2ud2v7Fgw3bh13tnNdboNYbxAIf7sKi+2JgEPLqZpTMMg2o6gqZoXxub9XDiM/MX/aupFsATpPD6NqOXPgbAulI6uA4ZB0KIPAEZkcAh1PSkudxgkgq9Y0w7pdOrfO4wZhg94IXOQ==
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=1D1uoybhF9d7OkIjgFCgPM+f3eVGpi7FVEjaq/W9ISY=;
 b=eaI43s2YrkOIyBK0nAULZq0ubOSHz+u800cFUk92XFf/RRxE8racXLAgLYN0I4q0OsB88ygXbWx7CANfG4XeY0+BxLRDOWWv+L1qozdVK7D6r8apf5RSpZfwsF/yQTM5HW6Luf+wRDJH2pdoDC49zWrpZlyQco4WI1D3BAt6dl7UPM/Z5MxjvL9xYQtphfjBbKeKn7iHdrq0elstq69qINRGvo2YNXFeLYtGly3SLGvyOZKtfAvCLrXx92FftEvZbSeeqQ+BIklUmLWrPMcTpgn49w1wL92m8DtJcjWdTUBXN7sPbbqHS+01yaWbK0wLVNk2PywbqmKnXWXY2RnBbQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1D1uoybhF9d7OkIjgFCgPM+f3eVGpi7FVEjaq/W9ISY=;
 b=fqFDMv5nIyRbJf47bBgTvczXisWdmSlVoMq/70qX9FtJfWPSoMo96jn2+UTQBFj2PF4KUq2qzGiZcDwnweSaEUZ4KFmOwPV9OJKQ/jI3dUH1BjEGutEZkjztaluAYnvE1OUWQ6Xse9M+WOTVwSYNsXK637VfMwb+Lv9FszeqsNo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <88f06355-b49d-4ac1-a7e2-5665d4901618@amd.com>
Date: Tue, 2 Dec 2025 14:26:23 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2 3/4] x86: hvm: factor out COMPAT code under ifdefs
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Alejandro Vallejo
	<alejandro.garciavallejo@amd.com>, =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?=
	<jgross@suse.com>
References: <20251119192916.1009549-1-grygorii_strashko@epam.com>
 <20251119192916.1009549-4-grygorii_strashko@epam.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20251119192916.1009549-4-grygorii_strashko@epam.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000055DC:EE_|DM3PR12MB9391:EE_
X-MS-Office365-Filtering-Correlation-Id: d2c45bac-4f9f-4835-7e33-08de31d8af18
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MUJBOUZHWGplRG00dXlZRy9CdHhWOVR3dDhuc29ZcDBwRTg2ODdvSkE2SDBU?=
 =?utf-8?B?VC9GWndxRFV4VnRTaW83Mi94SHQwcEpWTXVoc0preDROcFdxMkJBa1Q3OTF2?=
 =?utf-8?B?SDdMS0V1TExNUDZaVDZNYVh5bFg4QUhISXgxcDhaN0dRa2hIbFhpOHh3Zm5a?=
 =?utf-8?B?RENqTW9EYVFLVERVNldIYW1pRlZ6NXlFSlJjeEoyaEIwUVRKOWFLOVVKR0tO?=
 =?utf-8?B?N2FCY013RnQ3eFRzS3MrNTF5anpmVkROZWF5Ukl1Y05mcTR4Q2lBaWNoWFMy?=
 =?utf-8?B?M3cxT2E0OS95ZU1jbWpQVmRhcEQrQkxPR3M1STl6WVNLOHo4OUhETVVQa2xT?=
 =?utf-8?B?Qnk3aXJndWk5MHhtQWNuYko5Nmt1T3JBQ3ViK0ZyUklVOEVJSVQ2ZnBMbEhH?=
 =?utf-8?B?SXVCbEZQQjdKbC9FNHZINkc5NWVaUW51cmROZWt2STM0MGluNk5ZeDIwOG1l?=
 =?utf-8?B?aFlMZjlRZ00rYUR5a3NnMlo1elVhaEtGUHZFSHJQMXByQVNDNW51dzZoaGJn?=
 =?utf-8?B?aG1PODl3ZlJ0d3NhOWx1cVdQRkhueXUyaWhQUjhJU3o4SkRBdkVGUm1QdlZi?=
 =?utf-8?B?cHlIZEtBdkRsZENJSkZtbEpwQm84dGo0VDJqczhEV2ZxdFlWZDVkZ1pQWlRG?=
 =?utf-8?B?OURDOXF1TTd4T3JESGozcjROcXYzNW94aFVXMDQwL1B3NDRVeWhac0JtUTRa?=
 =?utf-8?B?Yml1VjFYT0dZclEyQzJGVDJLbXFJb0ZFYkNhMjZ6ZkhIMklBSXN3NHFNRkhF?=
 =?utf-8?B?elhHN2ExWDNZTUV2aFkvQmFGOGFUaWZ0Qjl1QWdjaHcvR2oyaXBlOTBiVVFs?=
 =?utf-8?B?MmdiLzh5dFR6aGNnc0JjazNBaUU1eDN3d0FodFVOY0hmMGg1Qkp1Z1dSWHpN?=
 =?utf-8?B?dzcwSjJFMHdmRzZWSmhnSkd2UU1xU0RQaDg1clJZVk95ZXdXV1EySEp3T1F1?=
 =?utf-8?B?UFdzZU9uUVBDV1VGbHJEaFJZUkxub1lBdlB4dCtuODU4UC9KcjBTOG5Sc2Ns?=
 =?utf-8?B?S1BtQWUwQkdSa1Y0T1Evb0VvTDZqVXpWbGgvRU5yOE41WE96b3d6b3lGWjZU?=
 =?utf-8?B?K09WR1U2Nzk1L3BNSUJ4Z0tTR243ZVdxVFZhOWowYVkyT2NrdG5mR2QvcHRP?=
 =?utf-8?B?ZWJSNkllY1VFQ2QyQ1VLMVBiSUlmaVdRRlptOThNSEtjTjh6OGFjZ29vSUlX?=
 =?utf-8?B?QXpuSVR6d0Z5S0hDSFdiMS9HV0NzUDVmMkRTSWNLRlczeGpGcS8yeEZSUjR1?=
 =?utf-8?B?NlZSTlZqQmVwZ05JemdvYU1uZng0UlRWSnFVZTF3UkJDd2VxL1Z1eW43N0FQ?=
 =?utf-8?B?RTF1OWN4MlEyVG92b0grZmtmTEJxdDAxL1RrZ1cySFlNWUxVSTRHUFhDQkdv?=
 =?utf-8?B?R1hoNkVRTUJOTnZNeVhWcm5FWDM4WHZVU09jZ0lGL3ZlbWx0SmNFNEZDNUxy?=
 =?utf-8?B?T3ZMc29HSFFURytROUNtelVFWlR0VVcxQ2RVTFpFYlZ6MXlQL25XZDBKdzI0?=
 =?utf-8?B?UTQ4d3dPOVVyZFdZbDFJeitjU2xVdHpjaXpscnowRkJMNThiOUpySUtRbllV?=
 =?utf-8?B?SnVkYzQybExQQWRya0V1dlBWMkhjdkgvODZTTENlN2x4ck54aEVCeEN3TnVZ?=
 =?utf-8?B?aDdxanNNUlZISjBHRUR5Szgyc21VOUtjek00ZEl4Y0xwTHZodVpXRHgwQ1lv?=
 =?utf-8?B?S3lCaWo4cmZYUUxyVTZTTUtQT1g3eTBTSjRBTzNsNWl4VlNVVjhTVUZrMjlu?=
 =?utf-8?B?VXdLMDF2emJLUW9MQitBM29UNUdvQTg0ZE16YjRlMk5UenFHczhZM3I1bCsy?=
 =?utf-8?B?M3d4blBRSHdOUUdjWmhsWU9uWEdzKzRGWFY3eERVTVVrdzNmTk5tR2pDRmFP?=
 =?utf-8?B?U24wUm01V1lTRE9pQ1dVaTZtYktJSENsekUxbS94Z252V0czNlNnRkFXTUph?=
 =?utf-8?B?QWlSa1lkdFp6REdid05WVDg2YTVKenhQWmJkckhxUkxaVkZFTHkvZWVjTUxB?=
 =?utf-8?B?VUk1bmZORzZGRzNQaUN6R25ReWxOTGlnQTFnU2N4Y0pZZlUyS2xCa1ZZZVBp?=
 =?utf-8?B?dmFTand2aXpZSlZjYm1YWTRxYjc3RTQ0ZzZLRVppT3k1dXBXVDhOeUJNNms4?=
 =?utf-8?Q?paQk=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2025 19:26:25.3087
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d2c45bac-4f9f-4835-7e33-08de31d8af18
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000055DC.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR12MB9391

On 2025-11-19 14:30, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Factor out COMPAT HVM code under ifdefs in preparation for making HVM
> COMPAT code optional.
> 
> - hypercall-defs.c updated to always provide compat declaration for:
> physdev_op, grant_table_op, grant_table_op. This reduces number of COMPAT
> ifdefs in HVM code and lets compiler DCE do the job.
> 
> - Only 64-bit shinfo is supported with COMPAT=n, so struct
> arch_domain->has_32bit_shinfo field is moved under COMPAT ifdef and
> has_32bit_shinfo() is updated to account for COMPAT=n.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>

> diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
> index 5df8c7825333..0005f4450931 100644
> --- a/xen/arch/x86/include/asm/domain.h
> +++ b/xen/arch/x86/include/asm/domain.h
> @@ -12,8 +12,11 @@
>   #include <public/vcpu.h>
>   #include <public/hvm/hvm_info_table.h>
>   
> -#define has_32bit_shinfo(d)    ((d)->arch.has_32bit_shinfo)
> -
> +#ifdef CONFIG_COMPAT
> +#define has_32bit_shinfo(d) ((d)->arch.has_32bit_shinfo)
> +#else
> +#define has_32bit_shinfo(d) ((void)(d), false)

(void)(d) is to avoid an any potential unreferenced 'd' messages?

Just using false builds for me, but your way is a little more robust.

> +#endif
>   /*
>    * Set to true if either the global vector-type callback or per-vCPU
>    * LAPIC vectors are used. Assume all vCPUs will use
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Dec 02 19:32:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 19:32:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176336.1500834 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQW7K-0005Ug-16; Tue, 02 Dec 2025 19:32:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176336.1500834; Tue, 02 Dec 2025 19:32:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQW7J-0005UZ-Tu; Tue, 02 Dec 2025 19:32:53 +0000
Received: by outflank-mailman (input) for mailman id 1176336;
 Tue, 02 Dec 2025 19:32:52 +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
 <SRS0=3ffo=6I=epam.com=Oleksandr_Tyshchenko@srs-se1.protection.inumbo.net>)
 id 1vQW7I-0005UT-Fj
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 19:32:52 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b0cbe434-cfb5-11f0-9d1a-b5c5bf9af7f9;
 Tue, 02 Dec 2025 20:32:51 +0100 (CET)
Received: from DB7PR03MB3577.eurprd03.prod.outlook.com (2603:10a6:5:3::28) by
 DB9PR03MB9831.eurprd03.prod.outlook.com (2603:10a6:10:461::15) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.17; Tue, 2 Dec 2025 19:32:48 +0000
Received: from DB7PR03MB3577.eurprd03.prod.outlook.com
 ([fe80::49f8:7615:b631:1a66]) by DB7PR03MB3577.eurprd03.prod.outlook.com
 ([fe80::49f8:7615:b631:1a66%5]) with mapi id 15.20.9366.012; Tue, 2 Dec 2025
 19:32:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b0cbe434-cfb5-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Srsxj6SpLMwOOqEat/E3e+FKx7rZdH3v8ZY1R7Tnxm61y0X9y4B+7a7lrml5fxFD5N2uPJtBm93CuB4gaB8ySA/FkWj5jx7l2ICS74UaZOQOH79ZxiaIJpq5rZySMC82MqCcgGLvH1sJqSzj4m2DnIUZmzFqDllQYKZ5t8m5FYp4qsDTuDvi8XfgNouz39cQ12pjfJAAaOYQc66Eh8Xen62YBRAFo6pgxwGV4FLo3wE1D3ul+ljrjq5GFkNjcqyXJfgiehBxMqggPv7htksaYcTeM0FE9IKAoNoq2WQm3FO2DtQsItpkrnZ7a81UdqmF9UML0EZU6qo9nseOT0uGnQ==
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=2nYNDrNMNzvaEhhLE8PiKcUqoUCJJHNNM4EcfEtokNQ=;
 b=ODEoHNNFzribr3ln7hk6DBS500zaZslDa2tsH17uq4dx6dVWS/pTBQyoe+4b+mOBNBqR0D6SIcRLyyELe2ePkJGspMttPqI3i2p03xh2K9OWQaeu0WBYzsYr80bo2yQvXPI6e5rNNfXrUVatT0FxV9AIOuQ0ZLUInN5RN8dAPrnoSLg91xVkzNYMHkEffuO056jC6edlx6A4Rr/HYnE/dH+5bZhYAhiC9cwTnjYfjM3NWBijkCLVfCl2vqWlPDgZi+73lcvrItcgwcFiNDOYbt+NfHoR9/7ZOIIz6Y+gmhKiFzr31f8qOY5WC4BY+OEdjk2HKwawsAfZXXiM6SHrKw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2nYNDrNMNzvaEhhLE8PiKcUqoUCJJHNNM4EcfEtokNQ=;
 b=LZo8c1FGQXvvYRw15wnmjYfgkOf4m7NTIb1gY2zoPpLN4p6CfQdq1+23mFp1wD4ytEJMlUtAzrq9MCGBQfEmE4nNpSf3JOU01z6aMvxfZcXeBcaC730xPGjF8pXlDQoD6xUMiCKjwY2Ez7R05nB0+26AZIhW/5vB/jwP7jd+YoGfpMjbBPkNFm68eISQ7ge3pyso6K5v9qi9CcKaxdz+nluQQ1Ck2F62gUVJGnKCUo7QyPQPgh0kkg5pK+teeg+v/a4gbCBEKGq3BzAH/6p/FKoLFY7iWf1xev+PZxhSponAM6o1VjiZiLv9pbXz0SgEEW+JFStn4sTLSeIRx8HRiw==
From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>
Subject: [PATCH] xen/dom0less: Increase guest DTB size for high-vCPU guests
Thread-Topic: [PATCH] xen/dom0less: Increase guest DTB size for high-vCPU
 guests
Thread-Index: AQHcY8JwgLGK5hUeEUKxVWNaY5XmsA==
Date: Tue, 2 Dec 2025 19:32:47 +0000
Message-ID: <20251202193246.3357821-1-oleksandr_tyshchenko@epam.com>
Accept-Language: en-US, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB7PR03MB3577:EE_|DB9PR03MB9831:EE_
x-ms-office365-filtering-correlation-id: 579cd643-e80a-44de-83bd-08de31d9932b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|366016|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?6OiLrxn08INF5itUBtbY3slElllv5M23Sd0v6Y+bC2GAW6GPrDdwOiAk9y?=
 =?iso-8859-1?Q?gViwKg2E8OrEqTX0w+bXve84cUZNBFo51++J2qcYAeNdkM/1eiyge4hT5L?=
 =?iso-8859-1?Q?DXzhGTcLe468CgvIkfYaLGXTL22nDkDZzsKTmd1/PaHnQYAjy2QATxh70+?=
 =?iso-8859-1?Q?xvIsyYJpM6mS+68AnSS/93MRCQaWtvgZYHvtKTvdNTCh7715rIsOGzkcS5?=
 =?iso-8859-1?Q?+e6A8zw8QYAtoVlnlkw3tE5IVtjcKM4F5SPfC0pTmly7bozr0B9H1TgpfE?=
 =?iso-8859-1?Q?HIhvP86Uv963EWNPbXQguo68NOj4nx9+vLzfbLOTZl9uBf9wuXsr5M8ay2?=
 =?iso-8859-1?Q?tNRbZa4Bcbd/+3mSIJoP8qaU1gSN6Xuw87ryHd43mv+B0nfVP5gMd1pLwh?=
 =?iso-8859-1?Q?Fl1h2GAuzgLLsmTnE06XWmCFhYispPjL9IrpCOewo78t8MO5eVGPlXCwaP?=
 =?iso-8859-1?Q?osEcyaqvXWpHCJMhs3NULe01lQGlDknTkobgdQU5aNy22HzBLXlbpGOoze?=
 =?iso-8859-1?Q?MXt8hjjKtzFeeWROlFWro+wis7BrwQ2x4Sb1RWQm13bGw61pF/AOcvIMuY?=
 =?iso-8859-1?Q?h2AFWC1b8dPRM1ev0Ojy2i06tMpvJjtz7N+65OeArj3DFfI5le2ZlUmg4F?=
 =?iso-8859-1?Q?gkuVcBLS56581ps9Uy/hNrIPlIPLe6tii8iTOLasXaPtigcc4wnh+JFPjB?=
 =?iso-8859-1?Q?XJuJOgWhzdeT0HdBJQ31cUOlIdGjqcJYbKRqMKsZVqQBig2Ka81mTVt+m5?=
 =?iso-8859-1?Q?UtKUVpTls6M4WVI6rD/GwmpmsA9ZLLsZ/rYj3GfLAa1rCjBVS3q81nOgyp?=
 =?iso-8859-1?Q?bj/3t7BzcNW6iMUFhOKbD1BMRluWOHVyhb32rd0YqlzFWF5y+oeUlznCN3?=
 =?iso-8859-1?Q?I6kl0uVcnRb7vBupGF8SxoP9Ti6kYume5LEHz0eaZ4tAcpxZu3fzoGY0h7?=
 =?iso-8859-1?Q?omavp1KGtTkeR2nmLNczx5Alzw6RV5TfG2TbkL7ZiOe3xw5CKS3g8DHoF9?=
 =?iso-8859-1?Q?77dGfWFwfOU6SkkrPjIFyBmc+zPY3/GnbNCqS6+Bf+DIF01tVYMYGBDY2S?=
 =?iso-8859-1?Q?fqRBEUPHU/nKUIwE2Xocy/6QoSWAd/PoycH48dm5Qwb5jEtumk7NefpGEL?=
 =?iso-8859-1?Q?U2CK47QxzT7BoSvPlwY+v2Rfc99XFBCUI60jgoK76AChEqvgQ12gyvgc7L?=
 =?iso-8859-1?Q?fJEefKeK03HrNzcy0FbUuolGZVN9ZPat5KcHp6ilMEniRO5YG4BJZP7RjJ?=
 =?iso-8859-1?Q?YsZkt6Bl3lnlbodN8PDGeIY/olnPxEwaoi+DGxJpCrOyfyJ+V/F1+dxhPd?=
 =?iso-8859-1?Q?y6ZRDDmgTzKK5fgLHDxV5XlLQXbVsdcKu7ExwxyK1ApK0gGidSlObsVcad?=
 =?iso-8859-1?Q?UMNQvHGL+JlTnTP9UTDZLG/O2fvKoa9h10/7Ue9HToyeNK/lnfl9Fxnwry?=
 =?iso-8859-1?Q?Sxu8SFEEOO3lltrWVZ0iu7nA1Cwwdfp3n1jktZCccskpdzewj6h2aHoFPn?=
 =?iso-8859-1?Q?ccJNWk+PGV+45LJuOF3LkBt3xpIoA1XY5ppvklFn3f2M3A1aSVbClDCHMd?=
 =?iso-8859-1?Q?tO0i49QZLmIHGCIt2iHDjMMSj6xn?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR03MB3577.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?O4+yyX26JfIp0SLYVFHle8rfIsGtQq8TaFr5fVY6rUerNoOoLuC8MRwi4L?=
 =?iso-8859-1?Q?d46O5m6TLJerNeqBuL1tuRulm00iJSZX+QvZg7twkv/N8lunwYTph34H23?=
 =?iso-8859-1?Q?AZtAOcxDJdQFOqNblgR/lCf1PKiYmR9C2pnaqFsV8VaBghnCQV5hB2gU4A?=
 =?iso-8859-1?Q?Qgn8C5lHp9z2LzbaAgZpv/RgBIaWPVVpih5BBuQV6OXnftchKm+lCy17Vt?=
 =?iso-8859-1?Q?bcQqn5KlRBF71e+pb/zI80tUh5u6kaweDCEbAH1zy6yMQYyOGY9zmMKJaz?=
 =?iso-8859-1?Q?BhAF8oYPfgEGoSv9QqTWOIkCMkCUUoMzxwd3yyUVf6mUH6WT/IWVlOjcx1?=
 =?iso-8859-1?Q?r0cG0tDv7RUPRV8KCiqQzJ7rwsNSbF8fpSMJ/puJ/yYB3/FWxVfy4xt4iL?=
 =?iso-8859-1?Q?6PDUoXK2njV4g+Vhi5dSE5Nm+DB+rMq31qR18MYNsGvzQZWjpusjMkBUt6?=
 =?iso-8859-1?Q?QLUMJiEkBkZ9ZrBpsYgC+FHlYF+gzIoKCituH639FZBuP+p/p0w5jFVfSH?=
 =?iso-8859-1?Q?mBmVQB0c+mWk2JcdyTxKGO0PooXqVC/bPS8FHbE40VQw17BQCfuBSJeSPD?=
 =?iso-8859-1?Q?77hph/qYCYPfMTcm98tjpO6R/sf/fQLJy4NRVBNZfJ2o1rT/h3lHx0HEc5?=
 =?iso-8859-1?Q?waQC9o7f9rPtmX0yaJrB2/XBKEo067TrQrVIu+pD7vAx6+oYANyarKL9S/?=
 =?iso-8859-1?Q?TmkQh+32KDLsZSPnXhqsem9bAru39HHg9GLIQImeyVA3WY06epfOQ6tUKv?=
 =?iso-8859-1?Q?hnskNIWOaDz0XOQPGXUFK2Po7TEz/KY6+renHhQcxTi2/9OFePkrO5hHRK?=
 =?iso-8859-1?Q?z072YGaTuiLzfInT60B6tJ47kAFyxVFjHYqDQ9iUlIOxvD8dBvauxZE9Eg?=
 =?iso-8859-1?Q?hMeB0xpcvqQiIszaXbO8hZe3HatmgeBqbTcbfLqF0mE+i9M6klyQ7MLbtB?=
 =?iso-8859-1?Q?BBxntzb7s7bUNKq57TqrN0UEXyDCLfxR5Exp/ZA2PdbJjQSMBMA+W/LX6b?=
 =?iso-8859-1?Q?R9DJ4SXltEA52yuplhRtjybGyxPWJ+L3/Sn5d7iznfPRVAlZt6g9ekeixj?=
 =?iso-8859-1?Q?+ecoDxTssCjjjGebsxcefYSQYqrTkTydh2N28s8ttqv+P4PA4JSVHf6sdl?=
 =?iso-8859-1?Q?6DESNqFzEs01DhyTVReuvlqr5R3G1N2vWmYgQNye9qEuK3Ou0fM9cMCQ1A?=
 =?iso-8859-1?Q?i2Ji5vrTeDjQHs3Ooz4xjAJbuvJWqmvYRnEBk20NWWieTNLMiQU+Of76jt?=
 =?iso-8859-1?Q?8QipOvFaCAkdS1xMKB0esFBVXmUpWXIZpy5IRo7nCl4s0hlb7AHH6VBEfY?=
 =?iso-8859-1?Q?2SpxX70gByM2HH728PhoVOHvTopQ+PwDv0k5ww/3O5SYT/vLPDie7jlXZV?=
 =?iso-8859-1?Q?GifyiXEgRVhCEWwkMUQuE0LJ3d1/fx4+jVnmXpZSSz2yRkPyK4oC2tbCEi?=
 =?iso-8859-1?Q?Sn7ELTMF9Jtvx8K2HW8ucJCIXBiHmAo/j7eDu5tk5hKhQtLWZPPEuF3FdG?=
 =?iso-8859-1?Q?nH9epjuu398q+IVF0rMfGChML3dqhQHiOfJ8feUR6EmtUTe5pSd+Dx5rD9?=
 =?iso-8859-1?Q?eX38b2r6uTMRC/oNY/B54pn4yfl9Ebebo8cZAK6oGhaVM6lj9W12uZmtkZ?=
 =?iso-8859-1?Q?/mKXbg5r5NjZ98SZ2eQIWC+hGVWWRxdADntWfeeavCcxldXpxU4jM/mU24?=
 =?iso-8859-1?Q?ZanhF683D+R+jTWH2ko=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB3577.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 579cd643-e80a-44de-83bd-08de31d9932b
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2025 19:32:47.9622
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: owTIyGfZJzBsGGK9L+4yW34bzqtJIl0vfb920beb859OYOxNueu3AJm7tpiX8G92xu02kDMPa6r1VDt+tjJzdZf6yScf/6bYuhWiVdE8lwM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB9831

Creating a guest with a high vCPU count (e.g., >32) fails because
the guest's device tree buffer (DOMU_DTB_SIZE) overflows during creation.
The FDT nodes for each vCPU quickly exhaust the 4KiB buffer,
causing a guest creation failure.

Increase the buffer size to 16KiB to support guests up to
the MAX_VIRT_CPUS limit (128).

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
Noticed when testing the boundary conditions for dom0less guest
creation on Arm64.

Domain configuration:
fdt mknod /chosen domU0
fdt set /chosen/domU0 compatible "xen,domain"
fdt set /chosen/domU0 \#address-cells <0x2>
fdt set /chosen/domU0 \#size-cells <0x2>
fdt set /chosen/domU0 memory <0x0 0x10000 >
fdt set /chosen/domU0 cpus <33>
fdt set /chosen/domU0 vpl011
fdt mknod /chosen/domU0 module@40400000
fdt set /chosen/domU0/module@40400000 compatible  "multiboot,kernel" "multi=
boot,module"
fdt set /chosen/domU0/module@40400000 reg <0x0 0x40400000 0x0 0x16000 >
fdt set /chosen/domU0/module@40400000 bootargs "console=3DttyAMA0"

Failure log:
(XEN) Xen dom0less mode detected
(XEN) *** LOADING DOMU cpus=3D33 memory=3D0x10000KB ***
(XEN) Loading d1 kernel from boot module @ 0000000040400000
(XEN) Allocating mappings totalling 64MB for d1:
(XEN) d1 BANK[0] 0x00000040000000-0x00000044000000 (64MB)
(XEN) Device tree generation failed (-22).
(XEN)
(XEN) ****************************************
(XEN) Panic on CPU 0:
(XEN) Could not set up domain domU0 (rc =3D -22)
(XEN) ****************************************
---
---
 xen/common/device-tree/dom0less-build.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tr=
ee/dom0less-build.c
index 3f5b987ed8..d7d0a47b97 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -461,10 +461,12 @@ static int __init domain_handle_dtb_boot_module(struc=
t domain *d,
=20
 /*
  * The max size for DT is 2MB. However, the generated DT is small (not inc=
luding
- * domU passthrough DT nodes whose size we account separately), 4KB are en=
ough
- * for now, but we might have to increase it in the future.
+ * domU passthrough DT nodes whose size we account separately). The size i=
s
+ * primarily driven by the number of vCPU nodes. The previous 4KiB buffer =
was
+ * insufficient for guests with high vCPU counts, so it has been increased
+ * to support up to the MAX_VIRT_CPUS limit (128).
  */
-#define DOMU_DTB_SIZE 4096
+#define DOMU_DTB_SIZE (4096 * 4)
 static int __init prepare_dtb_domU(struct domain *d, struct kernel_info *k=
info)
 {
     int addrcells, sizecells;
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Dec 02 19:56:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 19:56:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176353.1500852 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQWU5-00009Q-VA; Tue, 02 Dec 2025 19:56:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176353.1500852; Tue, 02 Dec 2025 19:56:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQWU5-00009J-Sd; Tue, 02 Dec 2025 19:56:25 +0000
Received: by outflank-mailman (input) for mailman id 1176353;
 Tue, 02 Dec 2025 19:56:24 +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
 <SRS0=O/vY=6I=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vQWU4-00009D-Pq
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 19:56:24 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f8e8bcf5-cfb8-11f0-9d1a-b5c5bf9af7f9;
 Tue, 02 Dec 2025 20:56:22 +0100 (CET)
Received: from BYAPR07CA0062.namprd07.prod.outlook.com (2603:10b6:a03:60::39)
 by MN0PR12MB5907.namprd12.prod.outlook.com (2603:10b6:208:37b::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Tue, 2 Dec
 2025 19:56:16 +0000
Received: from SJ1PEPF0000231E.namprd03.prod.outlook.com
 (2603:10b6:a03:60:cafe::88) by BYAPR07CA0062.outlook.office365.com
 (2603:10b6:a03:60::39) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Tue,
 2 Dec 2025 19:56:16 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF0000231E.mail.protection.outlook.com (10.167.242.230) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Tue, 2 Dec 2025 19:56:16 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 2 Dec
 2025 13:56:15 -0600
Received: from [172.31.77.70] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 2 Dec 2025 11:56:13 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f8e8bcf5-cfb8-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ASVR8zZqD8Wl5e6IZCquatBxJ/JJlh37UWilQL7P0ttpgfzUge+QMBjPr6enFHz9CdBYZ7IIJ6O91k+1vWVtdLTm97J3lFRmq14wUEA2L4aHiWp388otgN941GpeCQAei2JT5xqKzZfQXsYHwtR7Ls75K6QEUVeg7ihknyT3Ky5UQgsl9kSUcgfkv4/GHjxVtym52OT0IWHd1nOO5YnHnbbUx/bm8aTHweKhqP4PHM0uv9nJTAVkcprbDRBFm+HLGXSdB2Sj7gU4W8+XkGSPsyFzFLGSQslmScrv6NAsyDQGC+agxJueJcJ7Wo7H8+8CozclFbnwCnWwO8/tLHV1Vw==
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=T/jLf+4/m/GtFIA0NHSxkTyYmsW3Re9H5WpdqOIhZbw=;
 b=hrM96WCv99lKNZVqjYi3gRkRfWK2kPzw8WJ/XG/hg93cQrNByrEy2Jr83q/3EgmPZtPlOatG9tdErApkSWRt6v1pwfv0Hs1RGKzAg9V0alIl0jcMvqIXLJVDxdhLJ1yPxGnPtpdQVqF2/wV+yuwk7gSkR0RmBeOMOhyGwIaMrh9Axlpyf1xZwBfIFm+7Bg8hFez0pWJ4r8b0d/pU3WeoeUkRdr9agoWP9cr8z+7zgp/dBdDdhYlBdMgdXv9T+cocS2sW9gTA1xOXfKG6gS39d1zbJz10yJJ+kMkcpW5u8EAqoXOdsvVRju9z9mHo/XXKUAqAUsr6wIXuz25LdkU2uQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=T/jLf+4/m/GtFIA0NHSxkTyYmsW3Re9H5WpdqOIhZbw=;
 b=CcPEWpXPtrA/e6BhXSnXsk/1rBz12KKskpR5Rl728O2zkazSZy6dgy4F2qgTFdbfcVgP3PI3s+fZWQpYTehnD2hcwVBroaEROJXCCNXR3UhqCjOZVJDI3BWVYHsxABU9nlhF/uB7hyIisAYuNLsTIoKGy8Bx/j16nSo6avPMHlw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <d1c1df48-a498-4ce5-8340-33755720101e@amd.com>
Date: Tue, 2 Dec 2025 14:56:12 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2 4/4] x86: pvh: allow to disable 32-bit interface
 support
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <alejandro.garciavallejo@amd.com>
References: <20251119192916.1009549-1-grygorii_strashko@epam.com>
 <20251119192916.1009549-5-grygorii_strashko@epam.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20251119192916.1009549-5-grygorii_strashko@epam.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231E:EE_|MN0PR12MB5907:EE_
X-MS-Office365-Filtering-Correlation-Id: 894ae473-ab44-476f-9b64-08de31dcda83
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Mm5Bd2V1WXJoTUtXK1J5VVYvcXBLOG9kbTBCd01RczRIeWJXUlI2bnhNcERY?=
 =?utf-8?B?SHpiR3JGSjFlbUpDN3lGNkR6NFFBUXBDTm0veDY5bVRPZStFRll2czdWdThj?=
 =?utf-8?B?THdraUs3RzhrczAvSnZTbU1xME9QV2Z0S1pkNnRoTkJxUm56VGVaUUtQU3Zx?=
 =?utf-8?B?S1ZBN3FvQXAxaUptdGJHZXZKdml6SzJDNmJUcGp1N3cwbTZGMWZoQzBXdHdM?=
 =?utf-8?B?ZUptNWxUdGxxWXdZUEVIVGthREJqbVZmN0puRmVhOGxMcUpzTXR6YXU0WTJM?=
 =?utf-8?B?aGlCM25KdlZWS1FrSnVCNURRMWgxdVc4VXFCUzRLMnc2TWRkT1JGQjJleWly?=
 =?utf-8?B?QURsbnZRUHlJZWZUcEZYRkc3NUhxdi9IUFgxbEdxMUJyd2llb0dZOUxuanNR?=
 =?utf-8?B?VG9SbTBnbnZoa3NPQTdKQXZDVmN3VStwYXgzVzdqSXRZSDRSTTZ4NGcrWVo1?=
 =?utf-8?B?NmFWME9RNG4vRXpIZzQ3Z1BPRjF1eHFFcXgzc292citySjkreXM2VnNxN0RF?=
 =?utf-8?B?clpXemVva296Umk2aittTE9zcGNVeWFXWjN2KzRSenZyNnZuaWRNcVUrTGln?=
 =?utf-8?B?TjFYQXVUa3dKUlMrZVY1NXArQTN5SjNjRUc0b1VIaTJJNGRUQ1Y4bTNXaWtU?=
 =?utf-8?B?R09KSVBnV1NRalM1Y29samlvRVIxL1VkcjJrQlZwOHFCZU9EemZyTjY5Z0h5?=
 =?utf-8?B?SVh1Q1JNdjVnSnBTYmJnNDcwM21XQk5jcVBOT3dSdUpwRGRwdHgremhWM1la?=
 =?utf-8?B?bkNDR1FmOUdublM0YU5heFBtejVwZmsvNXNTelhYNGw4Y2orcm5ibkM0bUdY?=
 =?utf-8?B?RTBLM1FmOWZSRHhNSjBhakJpdFZGQnFHVU5LRS9nUWsvNGxaWFhvTGxTR1g3?=
 =?utf-8?B?QU40U01xRWR4ZmlyTEVua3VCUUZLYmFLYmdoWGV1OXhRbXVGWUYyVjdXVUkv?=
 =?utf-8?B?d0k0RFhCdklIb0UrU01ndUVRS2ZPazh5eHRsek1TR291T25ZWUxGT2trS3ZM?=
 =?utf-8?B?aG9EWXpTdFFTTWpoNHVKeW44a1RnQVFzVHg2SXI3di9yQ2pwbVJSMHRGSjZC?=
 =?utf-8?B?YW9BM09kQVJuZnJ0MzZPbUgxMFN1LzF4d2Q1WmdnV00xSDVmUDE2M3lYZHZB?=
 =?utf-8?B?R2NTZi9iajlRNWtLQUVUMnFMQStHeEk1S0Q1SERUWkRBK0dHcUY3TVUxWFhO?=
 =?utf-8?B?bFVTbnAvV0dRL1pkM1BmRTFJcjAvZlZpWEorZ2RraEM3Q3Y3TVZjSVlrY2s5?=
 =?utf-8?B?NGwyTHhSaldnNk1reDdvWnlZSmZPM2w2V2RNeHJ2S3E1RzczaW1YdXJxVVc5?=
 =?utf-8?B?UTBzUGNUWWVSSXgvQzB5RkdrdjlzVVZiRkhPK3ljOWlCN2lHM3RLcXhCK29y?=
 =?utf-8?B?MEViK3dnQklaVitLaEhIRlRucXp1QzgydG1GNHpkWmFleEJuNEppR0hCL2hB?=
 =?utf-8?B?WVcvTlJqQzVFbU9HSkJmdGk5RGVFWlJpRkhsdXNnZ1E4eGN1TTl3MnhWeCtx?=
 =?utf-8?B?Rkt0N1FnTjN1OWEzUGp3b1NFSE8vbkptemhjUE83RUNHY0ZuVy9DLzZzOWRx?=
 =?utf-8?B?dWFYdVovUklqMG40Qk5yUFhJK2RTcmcyaGN1MC9qUndUTmYzRENyYk5BUjFh?=
 =?utf-8?B?SWNLc1ZBc3NQa0xwTWNsN1FsdEFJeXNnT21ablpSQ2Y1Ym1yOHRkOTFZMmh3?=
 =?utf-8?B?U3RwUXB1ZlpON1diR0NPenRZNlc4Tkp0ODdVRklES1FqbzBVWFpCamFiS0Ex?=
 =?utf-8?B?YW9zenpBVGhwTTl5NWx6dmVSWGhsdlVrakMxS2M5eTBkYm1tVnJvbnRLUWpa?=
 =?utf-8?B?UmFPdENzUWx0NDltY2pyZ0xFYUZ0UHZkV3UzRnZmZ3lwbU5kSEd6aXhmZEZZ?=
 =?utf-8?B?YWFlZEdVYjIyaHcrbmV3ZnV3ckEwZDZZN1ZsSGV6VDNOWkQrUlRoYmVnUFRp?=
 =?utf-8?B?bTVocWV3UngvRE9VdlhDNmhISjRFRW1hdFVsZUhQaWl4TmhQZUdKai9WUEZ6?=
 =?utf-8?B?MlhKZG5OK2p5dm4wYjR1aHdDTlRuTGx1YUhwcUJVSzU2RmRwemdMdnpqWEc5?=
 =?utf-8?B?NVI0UXduK3dBVWRNeVJmeTl4UkFVZXFsand3cDZxRzBUQjJQanI0eGxueUph?=
 =?utf-8?Q?X5Ns=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2025 19:56:16.1055
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 894ae473-ab44-476f-9b64-08de31dcda83
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231E.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5907

On 2025-11-19 14:30, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> For x86 Xen safety certification only PVH Gusts are selected to be allowed

s/Gusts/Guests/

> which are started by using direct Direct Kernel Boot only. There is also an

s/direct Direct/direct/

> assumption that x86 Guest's (OS) early boot code (which is running not in
> 64-bit mode) does not access Xen interfaces (hypercalls, shared_info, ..).
> 
> In this case the Xen HVM 32-bit COMPAT interface become unused and leaves
> gaps in terms of coverage.
> 
> Hence now all prerequisite changes are in place, introduce a
> CONFIG_HVM_COMPAT option through which HVM(PVH) 32-bit interface support on
> 64-bit Xen can be disabled.
> 
> By default, CONFIG_HVM_COMPAT is ("y") enabled and accessible only in
> EXPERT mode.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
> changes in v2:
> - fix format and move above HVM_FEP
> 
>   xen/arch/x86/hvm/Kconfig | 19 ++++++++++++++++++-
>   1 file changed, 18 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
> index c323d767e77c..88090f5b3965 100644
> --- a/xen/arch/x86/hvm/Kconfig
> +++ b/xen/arch/x86/hvm/Kconfig
> @@ -2,7 +2,6 @@ menuconfig HVM
>   	bool "HVM support"
>   	depends on !PV_SHIM_EXCLUSIVE
>   	default !PV_SHIM
> -	select COMPAT
>   	select IOREQ_SERVER
>   	select MEM_ACCESS_ALWAYS_ON
>   	help
> @@ -35,6 +34,24 @@ config INTEL_VMX
>   	  If your system includes a processor with Intel VT-x support, say Y.
>   	  If in doubt, say Y.
>   
> +config HVM_COMPAT
> +	bool "HVM 32-bit hypercalls interface support" if EXPERT

Maybe "HVM 32-bit compat hypercall support" to get "compat" in the 
user-visible text?

> +	select COMPAT
> +	default y
> +	help
> +	  The HVM 32-bit interface must be enabled for HVM domains to be able to
> +	  make hypercalls in 32bit mode. Non-PVH domains unconditionally need this
> +	  option so that hvmloader may issue hypercalls in 32bit mode.
> +
> +	  The HVM 32-bit interface can be disabled if:
> +	  - Only PVH domains are used
> +	  - Guests (OS) are started by using direct Direct Kernel Boot
> +	  - Guests (OS) are 64-bit and Guest early boot code, which is running not
> +	    in 64-bit mode, does not access Xen interfaces
> +	    (hypercalls, shared_info, ..)
> +
> +	  If unsure, say Y.
> +

Maybe something like:
"""
Support HVM hypercalls from 32-bit code.  Hypercalls from 64-bit code 
are always supported.

Disabling 32-bit compat hypercalls reduces the hypervisor binary size. 
HVM guests require the 32-bit hvmloader, so they cannot run with this 
disabled.  i.e. Xen will only run 64-bit PVH guests with this disabled.

If unsure, say Y.
"""

While what you wrote is correct, I tried to rephrase to highlight the 
the implications.

Regards,
Jason

>   config HVM_FEP
>   	bool "HVM Forced Emulation Prefix support (UNSUPPORTED)" if UNSUPPORTED
>   	default DEBUG



From xen-devel-bounces@lists.xenproject.org Tue Dec 02 21:34:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 21:34:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176364.1500861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQY0U-0003XO-NM; Tue, 02 Dec 2025 21:33:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176364.1500861; Tue, 02 Dec 2025 21:33:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQY0U-0003XH-Kg; Tue, 02 Dec 2025 21:33:58 +0000
Received: by outflank-mailman (input) for mailman id 1176364;
 Tue, 02 Dec 2025 21:33:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WL05=6I=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vQY0T-0003X9-CS
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 21:33:57 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 914d7711-cfc6-11f0-980a-7dc792cee155;
 Tue, 02 Dec 2025 22:33:39 +0100 (CET)
Received: from DB7PR03MB4603.eurprd03.prod.outlook.com (2603:10a6:10:18::24)
 by AS8PR03MB6806.eurprd03.prod.outlook.com (2603:10a6:20b:299::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Tue, 2 Dec
 2025 21:33:36 +0000
Received: from DB7PR03MB4603.eurprd03.prod.outlook.com
 ([fe80::7eb2:6a9b:fddb:6365]) by DB7PR03MB4603.eurprd03.prod.outlook.com
 ([fe80::7eb2:6a9b:fddb:6365%5]) with mapi id 15.20.9366.012; Tue, 2 Dec 2025
 21:33:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 914d7711-cfc6-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NhWuLEoAh1Hz29yNuPV1Ti8mjyNvQPTNIK668211/Jpo8qY5ChyoySPUyrwa1khgjVUTHj2XZ1cxJBRA2XOyj7RGd9YGgjqtVf7LBoSRB75WDqzpdNDGEGTfDMrrixLiYF8y1i2TfEmSxiMPZW3Qxm22j11z0eZRVNjj2hhoUs5MnanFgtpBMM3y1URjO07H60VOTVbSrIhpzB2gViMJy9cjlE1pkmq/yJLzbXnH5tp8CepM4MUX4IvuNs2YEkRIIXSNfA+bJzJts2RoHGrwgxPuB1kbVytfpG+K3ix9acnVIi8ohcu0mci/wjX1rnUULRD12B8Hl96ENruiO3QkYg==
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=w3imEDtJhDTR4KPhpBxwU3oT7pPoKK5KcXrl6UfJt+M=;
 b=j3n3q2qO8049q1OwzjEDMYfjRhJ1Q+ACpyjCRA4ORT9DAUIm3kmFheDiQfirQ7SckOWDbs3b/p2U7Gz/I6m2pOH05Sys/nGVbYuK7HT/kt370ff/SOMcKslgYcUiRLhRygYL6A3apHh5wQh5gFKwau9La7oonoVY4XZeTRPcTP+qaPYKcQfznl1nrkQS/FMKnWyPjNbu689H4135dbINVru8FuX+iH3JroXmCRgBtMGk0zYwqDSUdqgOQFJ+Sl40yb2VidqgtXCewSRgTu7B/JaTkuPm/jONspnlH4EMAkC+Id+CYcM5s7kb8chYWEHLuv/Pdri4mR9UjOzimC37Bg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=w3imEDtJhDTR4KPhpBxwU3oT7pPoKK5KcXrl6UfJt+M=;
 b=gbO1Zo7ESgn+Bld67tbfUF6vpeKkvN38j22sYT9s9agWn4FMNpuJikaWJgxlWGTm4jWmu6P4Yoh3ET1Qqqy7fK7lQTgNHHfpwJvm9cxxbRWdq+Ry17yK2SymVd9UPNb9RGOF4yKxw00ibB4JHO1IRnjbNDuU5VO8bIRei3Ux4MNnVrqGim1H1rWTfVoUpEUXO4mS+Ayr8bmcTal/JAL5mq4QS5wdYFTiZRiKIA9l0GxxmZLTVfwN1jMDGeTLlVfRtlg7rmFcZmZzPqEaPtZb+DQIrb5q5iC2Bk8Ykx0MG0yV91zmz48QspTRqcSVZ0vWFJOLwHBu2hCcAbXAwgU5zQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <98e9f551-cd8f-4c0c-aa79-144466e68df0@epam.com>
Date: Tue, 2 Dec 2025 23:33:34 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/dom0less: Increase guest DTB size for high-vCPU
 guests
To: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <20251202193246.3357821-1-oleksandr_tyshchenko@epam.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20251202193246.3357821-1-oleksandr_tyshchenko@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA1P291CA0018.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::25) To DB7PR03MB4603.eurprd03.prod.outlook.com
 (2603:10a6:10:18::24)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DB7PR03MB4603:EE_|AS8PR03MB6806:EE_
X-MS-Office365-Filtering-Correlation-Id: 66e56bd2-6557-4bf9-46bf-08de31ea73b5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Vi9odDkrN2RoVi9HSDhxZjNmQU9VaVJXd25qMmlYMnE3L0ZnMlFrd21iTXlW?=
 =?utf-8?B?UGlNVHlPOHVZUXlJQUdtSk5SREwvaFBNb20rRUhEVUJBOXRwVEhHekVRQy9Q?=
 =?utf-8?B?ekoyU2NKdDR1VXlYYmpJOFBndVVqWUFjWS9aRXBMa05pTDVuRzluMnVJa1ky?=
 =?utf-8?B?bC9rU004R3MwOWRuclBraXhEcVFLc0VlalVoZlZBT296RGQvRnZDY0kyMkpS?=
 =?utf-8?B?VlIzU2pLQVpudURISHc2SGVpQWdtd2lSREFSUmdGdDRxc0NTMkF5c1pUOWVz?=
 =?utf-8?B?eDFLZ0dlKzhFcG1iRDFPLzJKUE1MbXJ5ZnVCT0gzd3l1UWNMZEhNUUp3ZVZs?=
 =?utf-8?B?U1JVTjlrY0VRZTlwNFRCc1BkRzN0Y1dLT2ZaNW1SL3ZZU0ZRZnFWODlKSTE1?=
 =?utf-8?B?VUNpUHJJcHZVYWhCb3pjUEhZTWdEMjNQcTN4Y0QvQzNMOU42SHFyWHRyVm02?=
 =?utf-8?B?bnJCSmlsZUEyVExhaFp5aFBEb3BUZW9YaWV4cWNaR2k5TWM4V2NodzMwejJs?=
 =?utf-8?B?RHV6QWlvUnI4SVc1bFhLSWNQU3o2Q0FmditENitSeG91UmpKRjVKNlBON3kv?=
 =?utf-8?B?N3BhZjhacWxMUzQ3NHM5MVJLaGxLbDhhSE05RFQvcjBGSGd1a2oxWmJpc2I1?=
 =?utf-8?B?eUJnS1ZqRCtIaC9CN0VJVVQxWkpzdTd3SHZjTC9Falo1TDZmdmhmWGVDQWVH?=
 =?utf-8?B?dktiZW5oZnQzeUtjNTFGZFhKQWpXdUtWQzR4L2JZRkhpTTlweHJkU0ZMOCt3?=
 =?utf-8?B?cXJla0U3Y1ZaYVU0bU11OHNORnR1eDJ2ZE9PcTlUalJLbHpXZ0RCYzQ1NFdF?=
 =?utf-8?B?dUpHS1BDRWlMd0lnK0g1czg2Y05uNWY0V05YMlMyZHFrdzdDT0JoSGZjTC90?=
 =?utf-8?B?Sk1uVldhVDE2RzhPU21naVA0Q0VtVkx5S2JjNjRBN2hobWp1ZTI2NEYyMWRG?=
 =?utf-8?B?UEx3K0RieWQzd3ZYM0hFaExMT1p0aDFlRzUrZTh2Wk82R3d5bTRpbGMyY0hr?=
 =?utf-8?B?RzVoU2hlbWt3NGk2eDNocjZPalNac1lqOHpYbTRTUHpwcXZleG9wbVJDRjV1?=
 =?utf-8?B?UHBsSHRaNkRJR2lyMC8zb0dWMGxJZmRDRW52L2krWXl6OW5QVUpHd0pxajhN?=
 =?utf-8?B?dkZOaWZidktkcFNMaFg2YmxMRWMxaGlkTXpEdkZiSytuZmFmYlJTK0lJUVpO?=
 =?utf-8?B?eFNrM09mVWxlMGlnV1FTanVuWkxsL3lobW0xOHQrby9HRnVnR1dxSW5sc0Vo?=
 =?utf-8?B?eXN4M0VLMk1vRWRLZjFNSUtSZXNpcUFTY0pzSS81bkcvMlR3elJWM3V5WFpr?=
 =?utf-8?B?VFZwV0c5U2FKS0x6cVhyODl0eTFmZEFsQ3Fpd24rdXM5UWdlSWt2c25SdVpz?=
 =?utf-8?B?YVNDVnV5eGV4NS9VSzN2UWZWQW5CUExyTm5lbWJUbXRPcE1PZUVJMlE3WFlw?=
 =?utf-8?B?QllrSlRXSGFDY3JDYk1kN1hNVzY1ZFlqeHlHdXkyTFZEUDJMdzQvRlE0VDYv?=
 =?utf-8?B?cmFHTmNOUTgyQmV1Y3BXN3owMUFKdWtTOVFGRnhHWG52VC9EZFFpSHB4blJq?=
 =?utf-8?B?ZHFrbGRnWFlKOU8wTkVMN2Z5Y01VVXpsODJMWFBodHlyaXFvZDBaaklENTFT?=
 =?utf-8?B?dUhiSXd3ZHdKb1hFWkdPRVVjbGFCK2NYQkFVYVJCTXl2SzZHNU1vYVlBb2JN?=
 =?utf-8?B?YnZPUXE5WCtYN0MweHh4T2VES3lmMlpaN1kvVnRFeld2dW45TTFqQWxYL1dX?=
 =?utf-8?B?bC8rZUt2UG9tTkF0dzBzRjBtT0dvYjVqRUxTVDA1TTlwaENuQkxmTDJuM2Y4?=
 =?utf-8?B?YXVidFJMM3N2STdiTmxqVFgzc3dpQ0cxeklURGhwbTFEclF2N1RSZHlGbVFI?=
 =?utf-8?B?NHJFbWhGSkI0NE8xeEhUdFlLQlgwMjc3cmk2a2VWQzJ4QXVkem81dmduWHZl?=
 =?utf-8?Q?t7foYUUZhRL4RXi8+woRorefXw7xUUDg?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR03MB4603.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QmhET25XdzMrTGp4QlFSbWFyc3U3clJJTmpqTWlIR1RYdWFFeXU2MXhrSUcr?=
 =?utf-8?B?KzM5VEVoc1VtVlBWQUJIL3FMa0gyMExQNkQ2M3lnbjRFVjVUcjBIdkpXY0hW?=
 =?utf-8?B?Tzh5enRjU2h4cHJlWWluR2ZWU0toVlJnRzBKdHY2c2U5S2Q5Y0JzZnpnZStT?=
 =?utf-8?B?ZlRjUmZSS0RYL29mOEhzUWtIdCsrdlc1azBrb2pDT0xhU1BZMzBKa2xDNDN4?=
 =?utf-8?B?MW9rYmpzVnRqeUpVNnBGb3JjNzlnWXpNTnkrTEt6Nm9kVzdYdHRwNlY3eTVq?=
 =?utf-8?B?MkVQdEExYUgvRE1XUUorM083dGUvVGRuY2lnV3h0Y01BdlJyK2UzRnd2VVVE?=
 =?utf-8?B?NTc1MXpnS0I4eWdHb3laMU5jL1VzNHMxNnZTUUdIenVVWlVvc25qMk40cU9I?=
 =?utf-8?B?Mmg5UlhLN0Y1b201dDBLNkI5VWlsZVBhZEhMT1JLbFpvSWcrWmtMWUhxd01C?=
 =?utf-8?B?OGdrczFTMTZ0cy94c2FqakNJT2djV3lkNzNGTnF2MFR5TnJoZTFSR1BSWXpI?=
 =?utf-8?B?NlRLQjhtbjBsYVZIMkRaYVJpTnFCcVViZFl2T3hSUThrVk81elNsY3JITDls?=
 =?utf-8?B?QnRuTE1qUDdPNGlyZENtMGxXbDdNK095TGQydWYrSG9DQi82Z2ttSmJvOGhy?=
 =?utf-8?B?MG1QR1lxcEdlS0pxZFcvNlpuc2oybm5XUTRJWm5USEJzMEx4Uk4weThSc20y?=
 =?utf-8?B?OEtsY1NOVnpGbFVlZlNsbXRyU0VEQVlKekdjRXplQmR1QWZCaCtqVzl5aHpE?=
 =?utf-8?B?UDYvSVh3YW15TExUaEhaN0NKckM2Z0QxU3VkWGlnSjZsM0pZVEFEaGUwUWhQ?=
 =?utf-8?B?ZDRCMzR6YnZ1dXgzQ3lBcnNVeU9xVStoR0ZCNW85RXpXOVJ1ekIzTVpQVmN1?=
 =?utf-8?B?WUFJcHk2c1paQlBoN1k0d1UyZmROMkxwcHo5R0s2ZDIxTjBBeUw0VENWZnV3?=
 =?utf-8?B?RnRRdjgyMnFRSS85L2FIVEUxRHIwTFhmeWsyTFhBd1FwSGQrTnYzUEk1WldN?=
 =?utf-8?B?eEtPQktwMHlCZnJaQy9FT2lJeHVaOWRvNklLMUZhZHViUzRsWU5IbCt3Vkh2?=
 =?utf-8?B?VDhnaTdrVWNxMjBCMEM5RWpJdmhlRWcyLzNpUXFsU2dYVXFtZ1V2aDJsaklO?=
 =?utf-8?B?N040c29jYzJCVDMzYmgrbk1MZjBMU1FaYmF4Mzg0VUEwNU13QmNDTXEvRUhl?=
 =?utf-8?B?QVdhZDczOFRxdDJ1UWhWbWt5T2xjRFRjUnhjWU5ZVE9tNE16ZGdJMzYvajgy?=
 =?utf-8?B?TnhZWFZ3UkFEYldQSEZyU2lxclNMbTgra3JvUzBJaEdob1IxNy9nSGtqcHQ4?=
 =?utf-8?B?c0h4SUJtMnJGeVZra0VXdmt3REFUNjJOcEVZR3pZK3NET3lUSnlPdjBLNmJW?=
 =?utf-8?B?dk5FQW1NSzFrNEExc2lUMm5CZnB4aUVSQVB5TzB3Zi9VTFVxdC9lWFFoT01C?=
 =?utf-8?B?NzdHNklFeXhoYlVaTlpQclBVZTB5anBTMWduUDFYdVcwdE9MTTQzRUZvYUFk?=
 =?utf-8?B?K3gxeEF2NmczN2xFdmpuZzFYZ3JWU2lJL3dieUhnc0pzU2x4dDVOK3JIMEow?=
 =?utf-8?B?NGlUekFRV2l1OGJqSiszaWt4VjZCYTR2ZmZxd0ZRTTB2c083cWcyVGtCZ1RZ?=
 =?utf-8?B?bVNSdmdVQkIzeTA0MGxWei9OcWhSQ1NHQmVadjlpMkxra0w3emZvNUtWTHBG?=
 =?utf-8?B?OVk3M29ucWQvS3pFeGNORkQ5K2dLSmRkSUJVZjFjckVvZWFWdlFLN3lGbEJU?=
 =?utf-8?B?cXU4K0pZVzFHNVNPSEcxa3c4elFjdkd2K3R1NDhISFI4US9YUUEyVGplekJS?=
 =?utf-8?B?NHBjV3RVWVRtWktzdjRKWCtWMFlmL0hYRXE0a1Q4TTZNK0grbDFnOWwzL09T?=
 =?utf-8?B?clk3QldOaVhQZzhQNEtsYzI0ak4wWmkxbS9MTEc3NlBFcmNMb2M4Nk96eWJq?=
 =?utf-8?B?czc0Mncvbkh5MUJRUDFacWRJMUh1WnIxMkU0cGZpNy9xdEoyTkh5VndxVzFl?=
 =?utf-8?B?Y2tTaDFzT2lVaVdPazlNY2xGam0vZVY0aDR4VWhvY3YyYTNtdE1aZUJ4ZktM?=
 =?utf-8?B?UFZKczA0dS9VZm83VlFHRkpPd3prVTVyU3B0MExpeGsxeHlzTTNTdFRpUTh6?=
 =?utf-8?B?WGNXS2hwSDJabXNZaGRCRkt4YnVKeDdOVTZURHI3Y0FaMG00ckdpT0trZTlC?=
 =?utf-8?B?RlE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 66e56bd2-6557-4bf9-46bf-08de31ea73b5
X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4603.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2025 21:33:36.7977
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: p+7BIFrcwqY4am0ec2nUTz0p3b8vs14gSMiMHHxuHJ1FSZxC7TKdK0cgASl0UaWvmBclmIkgpIFcxA00P9RtUJbULz58k0N/Fpz8oHdAu5c=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB6806



On 02.12.25 21:32, Oleksandr Tyshchenko wrote:
> Creating a guest with a high vCPU count (e.g., >32) fails because
> the guest's device tree buffer (DOMU_DTB_SIZE) overflows during creation.
> The FDT nodes for each vCPU quickly exhaust the 4KiB buffer,
> causing a guest creation failure.
> 
> Increase the buffer size to 16KiB to support guests up to
> the MAX_VIRT_CPUS limit (128).
> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> ---
> Noticed when testing the boundary conditions for dom0less guest
> creation on Arm64.
> 
> Domain configuration:
> fdt mknod /chosen domU0
> fdt set /chosen/domU0 compatible "xen,domain"
> fdt set /chosen/domU0 \#address-cells <0x2>
> fdt set /chosen/domU0 \#size-cells <0x2>
> fdt set /chosen/domU0 memory <0x0 0x10000 >
> fdt set /chosen/domU0 cpus <33>
> fdt set /chosen/domU0 vpl011
> fdt mknod /chosen/domU0 module@40400000
> fdt set /chosen/domU0/module@40400000 compatible  "multiboot,kernel" "multiboot,module"
> fdt set /chosen/domU0/module@40400000 reg <0x0 0x40400000 0x0 0x16000 >
> fdt set /chosen/domU0/module@40400000 bootargs "console=ttyAMA0"
> 
> Failure log:
> (XEN) Xen dom0less mode detected
> (XEN) *** LOADING DOMU cpus=33 memory=0x10000KB ***
> (XEN) Loading d1 kernel from boot module @ 0000000040400000
> (XEN) Allocating mappings totalling 64MB for d1:
> (XEN) d1 BANK[0] 0x00000040000000-0x00000044000000 (64MB)
> (XEN) Device tree generation failed (-22).
> (XEN)
> (XEN) ****************************************
> (XEN) Panic on CPU 0:
> (XEN) Could not set up domain domU0 (rc = -22)
> (XEN) ****************************************
> ---
> ---
>   xen/common/device-tree/dom0less-build.c | 8 +++++---
>   1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
> index 3f5b987ed8..d7d0a47b97 100644
> --- a/xen/common/device-tree/dom0less-build.c
> +++ b/xen/common/device-tree/dom0less-build.c
> @@ -461,10 +461,12 @@ static int __init domain_handle_dtb_boot_module(struct domain *d,
>   
>   /*
>    * The max size for DT is 2MB. However, the generated DT is small (not including
> - * domU passthrough DT nodes whose size we account separately), 4KB are enough
> - * for now, but we might have to increase it in the future.
> + * domU passthrough DT nodes whose size we account separately). The size is
> + * primarily driven by the number of vCPU nodes. The previous 4KiB buffer was
> + * insufficient for guests with high vCPU counts, so it has been increased
> + * to support up to the MAX_VIRT_CPUS limit (128).
>    */
> -#define DOMU_DTB_SIZE 4096
> +#define DOMU_DTB_SIZE (4096 * 4)

May be It wants Kconfig?
Or some formula which accounts MAX_VIRT_CPUS?

>   static int __init prepare_dtb_domU(struct domain *d, struct kernel_info *kinfo)
>   {
>       int addrcells, sizecells;

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Dec 02 21:42:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 21:42:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176374.1500872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQY8a-00059O-G5; Tue, 02 Dec 2025 21:42:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176374.1500872; Tue, 02 Dec 2025 21:42:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQY8a-00059H-D4; Tue, 02 Dec 2025 21:42:20 +0000
Received: by outflank-mailman (input) for mailman id 1176374;
 Tue, 02 Dec 2025 21:42:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WL05=6I=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vQY8Z-00059B-5E
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 21:42:19 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c5744e3b-cfc7-11f0-980a-7dc792cee155;
 Tue, 02 Dec 2025 22:42:16 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by GV1PR03MB10518.eurprd03.prod.outlook.com (2603:10a6:150:164::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Tue, 2 Dec
 2025 21:42:12 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9366.012; Tue, 2 Dec 2025
 21:42:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c5744e3b-cfc7-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Le0uCPt3eUvM1HAPfvwGoVsXsn0KQUmNunWF0FkZnLgxMlWBmzuKtp50zeE1HXsLPr5pKVW0V3OkuQ3hJRu1gpO002G8253uJa6HUWH0jw0onNiUnCDqYsCXScP/CrPMzTKrQZehvL8YL3DOvxIphVkCY795w/UwXVnjfRV4riNY4DSwdxLSF01lW9icOZFiZOyXACMLcR75+WXlGlifCDu2Nl3kuhXvG9RGqMjgoJ9s2aG8GPBpWyBrZn+r9EukiQJZN7uvOY0+KhmaOMWdDjOrEGIY7rkvjrzrxNBLJjprMTzS9qWYag5ZueoaZpNLk6u3YD3elBzHBpek2VZqFg==
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=fl11NCIGAD5Yo+640t3InN51CUL5wLKMWZYnexmF/tA=;
 b=rwWoEinPJMUyeLWEVQ6ae961rMNJ9VoLHHtjo3TJcHUbSxTz7ZKxLoJnUntzdRWxu00Qf2XgLszvJ+JCie1Lkqi/mG+zJ5XxMojHr6AfOHhivTbb97u/08DzzWyamOzgVVYy9HKnbSW4WLpVTirslvRqKSKkV5ZUE6dnL/rHqo8ahlcafFbeW3bzKlHl2oxB+XLNu0pvZPKT50LJHpRGvaoG6lMqjF2U0R7SaiRkPp/1vEA5MgDksgZhNpzMTBiUY3g37GBuHvUeohg4E9wEBEMjIWRDnAd1+cx16yJaEn2pdXVpvv8ExWlbtn9Vrff10zFgrwtN2MW9CDLFwA6lDQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fl11NCIGAD5Yo+640t3InN51CUL5wLKMWZYnexmF/tA=;
 b=mDZQE60hu+npLYuhVe4bJ2f2S/7aeyaXPIy2ByDev3jhk22GYOgE/KbAkGkr4Z52uIdV3jiWPe12AkQ2yUpnkjY51PDhhZYK6+NhWdEmMWAKTlWCH/Y86nOKPFRoPSOdbpVFyPMR22OuzDjMG+y7ttDnOm6oo05sOhd/7/P/sZCFSv9rvouwJKupX67BV2G7miokYh2f4CDVvUw9oqr1rESByECidoR9wtbgpo2euIvU5N7TDCcCEKgpm1BeARu2BEeWGt1WevTDZMvo4FiNYVMkmN4ah/0o47/SCAPK99Shi/cUumYXG3IL+vEQzQBPG9ub5wBzs4haQGIOjvHjzQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <f8ef4286-dd9e-4213-b186-c0aedcdb74f8@epam.com>
Date: Tue, 2 Dec 2025 23:42:06 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen/arm: restrict cpu_up_send_sgi() to arm32
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250911081213.1323594-1-grygorii_strashko@epam.com>
 <705d4436-2263-462b-a582-5f0092821959@xen.org>
 <alpine.DEB.2.22.394.2509121512450.628111@ubuntu-linux-20-04-desktop>
 <A139EB0F-3966-409B-90D5-4A12684E81EB@arm.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <A139EB0F-3966-409B-90D5-4A12684E81EB@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA1P291CA0021.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::21) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|GV1PR03MB10518:EE_
X-MS-Office365-Filtering-Correlation-Id: 8ef83816-f4f6-46ca-f398-08de31eba49a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YmZYSHpPTDhnaHhjM1Q2V1BWRUMvQ3kzbWY1SGRQeUlIL3V2UHVkTE0zRjB1?=
 =?utf-8?B?NHRJVnFOOUY0d0RydGpMeEpOcERBTTZ5T2NGQU54c2pzeXRHU3ZRbFZ5YXM3?=
 =?utf-8?B?dlI5RlVZTVpJMGlZWmJWbWdadHQ0azQyVjYrczJKTGpRZWdZNFkybHAxTG8z?=
 =?utf-8?B?UVBpdlRTTHpNMVZLb0prT2tTc2phNzFSbVJRL05KTHYzRDZJT01FQ3VqZ1RF?=
 =?utf-8?B?YlBBTmQ0WVE5TlpJaE44NiswaTIxaHZnYXdOUWtiMU5oVFFzUG0xSzhVRnFu?=
 =?utf-8?B?L01mVmN1Rm1HOUVrUk9OcEl5ZWxzTlZxQzYrc2FacFVWY1hINWx3a0dFUE5K?=
 =?utf-8?B?NFVDUnVFTm9naDBCcncrS0lGRjN0UFkzVFhGb2trNGpFSndhcG5KUzZORm1O?=
 =?utf-8?B?aTQzdzJQamRKOU9yVFRIVnkrSElTOHU4ZTc2dUFYMThPekdzV0V4TXJXTFN0?=
 =?utf-8?B?eVBqZGxHbmxkLzYvUFlnMElkRFVwczljZGRaRkFtSUlUbDRRUWw1K0J3MWJv?=
 =?utf-8?B?Y0VMRndrMjg1WXhWaG1PcWZiWStOdkNyekVXbDRNZVl1U290RDdueFkwckls?=
 =?utf-8?B?VmFsMjBSM3Z0a1Y2bXlwRzJxSEpSeU9jSExSb0xTaXVGRzlRbll2WUdHUVVB?=
 =?utf-8?B?WjRCeGdjTmNPNGRCQjAwRitQVzN4RTJuTlNqQUkwZDl1MUpxblNFa0craVV4?=
 =?utf-8?B?VWxST0p0NUs5dlBQbnR0WE9sUlNaWWtkenFzQVoyc3dwWGk4OFJydDJkbXNT?=
 =?utf-8?B?Y082M0I1VUx4OCtLSEMyNDlqU2d2V3JjM2ZsM2NETGlZNkZJZEJiZW16RWln?=
 =?utf-8?B?YWxZV1EyOVY0NkJrb3l4U1VBRThyK24vYjdyR0ZZVHNmaFV5MThGNVV6WnJn?=
 =?utf-8?B?SjBrdTBRR05ZbkU0OTFSMXlQMy9oL2ZneDhRSjUxUy9VRnM5TlNHMEZiOUlC?=
 =?utf-8?B?QTU4RlFkSVMybHZ3cjh6b3dKR2hhWFpaTGh4eldFU2lTcEwvbnN1UTZPZ2dU?=
 =?utf-8?B?N1JjV3RjMDVBNkc4MThzUEk2ampEVENGdWl6UzU0QmVrOHJvbFJNRXhqZThL?=
 =?utf-8?B?ZXhPVFZzVGIwQmdINkMwN0c5RzkrVWx1VFV0YjQ3aG5TNGNGK2M5OXFlaXhE?=
 =?utf-8?B?NjBvVjllakxRMzgvb2Z2MlpwWEErZElkSG1OTm16WUE0a00xOHRKT1dNQmVC?=
 =?utf-8?B?MzBWT0NvT2dEdlRxSFExd25KaEwwY25DZmVqQWRtN0ZidTJVNGNPOTVhamE2?=
 =?utf-8?B?WjgwZ3VRRlhoNWs0Q1p5MVp0bjhUSzBuNzkzSkxJYk96NVNrZjJ3M3hDenB6?=
 =?utf-8?B?eTgwVmNrRDRabk1QOFZYa0RCZThtV25VSGoxdkF1MjhyTkRnekJmNkdhN0RP?=
 =?utf-8?B?S2U1ODFMdEhWWU9xM3RWdktRSnAzdlJ6UGYxN0EvUWw4MkcrL3ZsaDJUald5?=
 =?utf-8?B?eHh6THkxSHJxMmg2R0p0ejhqWE40YmlXekcvZjhoTW1tZ1JqNFZuWEVrWDNZ?=
 =?utf-8?B?djVubFhGM1hQdVd3M25ieXQ2SGRIZHlrM2Y1eFVZUTBUTVJ6eUgvNWFiSzQ0?=
 =?utf-8?B?Nkg5cnArTWRYdDhveXZGMHdQanRNZ3dXOHdKRElTWmxXay9tNktXbWlGUjVk?=
 =?utf-8?B?N1RqVG1FYWNwbGFweEU1TnVjVDZxbGlxRm5LbkdLWFY2Qkt1ZlZQRjRLb2t5?=
 =?utf-8?B?TWxrbWpNcjhDWUhHQzE1OG9mbmNEdzIvYmMwSDFXaXNyK05SaXJadldVZ3pt?=
 =?utf-8?B?U2M4T3hCMkYwbXBrczRjZm9uTzd6VjZtR2tvbFp4Y2dCVXNpS3NrTlpXdXQx?=
 =?utf-8?B?ZnpaeXU4LzNnZGt2a0RjS2VxazlWclgvejBuYmFHNHh5RWdFbUFHZC9LS3Nq?=
 =?utf-8?B?VW9LSUs2NW55WUxVSXlQZ2VRakROZ0JRQ3VrdkJ5UEdwOFZLYThrakVCaWM3?=
 =?utf-8?Q?FBLBQMMbWYhQdzQ6/oqQBc4ubCzgNUar?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RlFhN3FENjFxMzJJd0kxc2gzN2VaMUk4akF1TmpCWFVVQ0NPZXdNdUg1elVX?=
 =?utf-8?B?VThuRHo0NERKTkhqZktJdklLZWRib3JWVEFyZWFEWDd3eTZyN3k0MGIxc2J1?=
 =?utf-8?B?QkpZL1lrZy8yN3BjY3I3VWU0UnpldzBLRkRobVJEVHFSbzI0VjdVaWtuTUox?=
 =?utf-8?B?NkNhWFBDMjdBNlFjd2ZQb3NUYWFMS1NWenRKSXpkQjFWUkl0RzNjYTJjakFn?=
 =?utf-8?B?L2lUajFrOUFBTHE3NHcwUGNORnJNZ0VFWVRQbTRqYTFyY0h1T3lWSEkxQWtq?=
 =?utf-8?B?eE1XVXBmYlczUVN5WEVabFNCWElEbzRrT1RvQWYyQVhTY1o1NllxVk1YbTRY?=
 =?utf-8?B?eWFTMVRVS0RXWWs2U01FeUVXZFcwNFBhcUQ4SFFNYko2WnpNaGd2LzIvZWVs?=
 =?utf-8?B?T3pZdDluZTNRWG1XVDhXUm1CVGptWU5za0R3Z2hpRVFGbXdHQldDa04rQ0NG?=
 =?utf-8?B?d0dOMVREUTRyTDdrMjdsSGk3aEhTT3d4MFViaTl4SUE1RHhtWnBJKzNWTENW?=
 =?utf-8?B?czZrREtjZlljZTJxM1dnRC9tRTZ3NEY0RzZjRjFVK3piR2lpa3dTVDhJV1dM?=
 =?utf-8?B?dDBHbUpaTk5IbmI2blB4aVFpTElScXRyNTVKWTd2V1o3b0hOTnRpNlB5ZmZP?=
 =?utf-8?B?WkZPQ1dRQmErdmJDdWJDeVF0N2tNejlicmMxdjlwYmx3ZTMxRnZ6dzBlYU9N?=
 =?utf-8?B?S0JvcWlkRWdOQy82eGF4RlI5cyt1ejd2K3dxQWhUajR2S2UxNEdWR3h0cG40?=
 =?utf-8?B?alRSeU04TGlKNmdlVWNIREtZVzZod2oyUVpaaDdzdHZDcGNFazN6aFlrVTNG?=
 =?utf-8?B?NG9vNTMwQ1VGcEIvL2NtUjY1bEVnaXNOamRZdFduNnlTRUhUSEtnaTk2QXl4?=
 =?utf-8?B?S3NMQjMwWmJTTmxGNS8xU0MyTmkyVWVrMWhGQlZBak1BRXN1OGFXN3RYOG4x?=
 =?utf-8?B?WHV6OXVKZHRWR3dwSFA0VEhIczg1ZzFDM3A3NW9zbTFmLy9oT2U4Zm1DcGJS?=
 =?utf-8?B?RW1GT1FlTFpzNzlDU2JxSEJOMFVwU3pQMEpvNlErVWltTVV5L0xWWWlVSjFu?=
 =?utf-8?B?ZmxzM0d0VlRFR1FEUlMrcTBrTWJOMWVLdlVYTTh1VXRWWDVkdjFXREh1dEE4?=
 =?utf-8?B?b0hWa0Q1QkV4UGVoMzNIZjdCQy9rRmhzelVhelJIa2hxRUkvWi96b3MvMFQy?=
 =?utf-8?B?aEwvdU1GS3lZMVZmK050QVptRFFCaU8vYXUydmhpYzZmZ21WRkFmeHJNbElK?=
 =?utf-8?B?U05XeVk5L1RWVEVJYkJkRXFXNGlWVDh6QmhmdG83SFYyTkRDM0hySWJzcHI0?=
 =?utf-8?B?dytpV0hib2F0b1IxbW1KTkl2L1RFdVQ3UjVWWW4rOUpFVjhPeUlaSUtNODYv?=
 =?utf-8?B?Yk0raDU2ME1PZU1kaG4raXZ2czV5Sk41VVRVbk45bmhnTTF1M2Zha2kzcXpp?=
 =?utf-8?B?UklmSUJoM3hZbHM2QUxSSHlDUFZLMHA5QXB4d2M1WWd6NUdpNi9idmxCZURs?=
 =?utf-8?B?bjVxV1lpbGhxQXZDSHJ4QU1pbGw1NmN0eWExRk9IMDVaUDRQWUYvQWNqaDVS?=
 =?utf-8?B?aFJEeFgrS0tGbm5wcVNMbkxZbTJJRzlQd3FKdXZBMkpwN3hrZUVoT2ExNjk0?=
 =?utf-8?B?dnNROWt3VXFvTGY3MDNiQk9haXJ2N250cGNQYkt3YlY0MWdmRXBZYW5YMFRV?=
 =?utf-8?B?SGpJakdOZDQxUDJWbHIwN0hwblUzSDl3R2dTUmpBZHY2S1lTb05qUHd4K1ZV?=
 =?utf-8?B?V0FUd01XU21lblM1Q21sR05hRS9JT1I1QjJVNC85K2Q4RUFjU3lzMjRNTEI3?=
 =?utf-8?B?ZVQxMEhQcnhzVkErend4Qm8ybTcvWXNuYW9rdHQrUmZhVzRXb1Fjc3FCT29R?=
 =?utf-8?B?RmNzNDlhbVB2NHkyd2xOcWEvNTN6K0hJcDFqNnIrbVBXZnJ3Zk45aU91UHlH?=
 =?utf-8?B?NTFXdXoxb3hPaUhmcDdWVlJubmIzd2FaT1N5dDl3Y3ozdVpWNUNCQnZlWDZH?=
 =?utf-8?B?Yk9NWkdBUE5TNkV6NTlXbDZXMnhjQUtBZmc0dy9STlc0WjR4S2N5ZkN3MVJL?=
 =?utf-8?B?bkJSUW5RcnZsdjFXU1VJZWUxR3pWWkhkWGtTZ2l6SnFZdTVqSVdOZDhDNUFh?=
 =?utf-8?B?M1JNWlhLSG1Mdy9VbnpxdHFnN09wRktxWnNvVjBPUVBqMUVOZ2x4NWhtY3pw?=
 =?utf-8?B?Ymc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8ef83816-f4f6-46ca-f398-08de31eba49a
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2025 21:42:10.5550
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: fuLvfl3poyqAaqAIAxTmVN2I1SXlS59eJsCdAD1OXe74DJPB28mx4OgjBpJGu8zBPlQ0JpnQZXQ3vtRcnflk8gjQOIrYeM/2zGrqKqeOKGM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB10518

Hi, all

On 22.09.25 12:48, Bertrand Marquis wrote:
> Hi,
> 
>> On 13 Sep 2025, at 00:12, Stefano Stabellini <sstabellini@kernel.org> wrote:
>>
>> On Fri, 12 Sep 2025, Julien Grall wrote:
>>> Hi Grygorii,
>>>
>>> On 11/09/2025 09:12, Grygorii Strashko wrote:
>>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>
>>>> Restrict cpu_up_send_sgi() function to arm32 code as it's used by arm32
>>>> platforms only and unreachable on arm64 (Misra rule 2.1).
>>>>
>>>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>>> ---> Logically cpu_up_send_sgi() should be moved in arm32, but source is
>>>> "GPL-2.0-or-later" while possible destination is "GPL-2.0-only", so put it
>>>> under ifdef for now.
>>>
>>> :(. I don't know if we will ever solve this license mess... Looking at the
>>> list of platform using cpu_up_send_sgi(), all the platforms are 10+ years old
>>> and to be honest except maybe the rcar2 development platforms. I doubt there
>>> are anyone using them.
>>>
>>> So I would be tempted to get rid of them and mandate PSCI when booting on Xen.
>>>
>>> Bertrand, Michal, Stefano any thoughts?
>>
>> I am OK with that.
> 
> I am OK with that to.

I'd like to clarify if this patch as is will be merged as is?
or expected to be superseded by clean up series?


> 
>>
>>
>>> Meanwhile for this patch:
>>>
>>> Acked-by: Julien Grall <jgrall@amazon.com>
> 
> 

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Dec 02 22:08:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 22:08:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176389.1500881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQYXl-00088s-Fw; Tue, 02 Dec 2025 22:08:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176389.1500881; Tue, 02 Dec 2025 22:08:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQYXl-00088l-D6; Tue, 02 Dec 2025 22:08:21 +0000
Received: by outflank-mailman (input) for mailman id 1176389;
 Tue, 02 Dec 2025 22:08:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tiuh=6I=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1vQYXk-00088f-06
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 22:08:20 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6764768d-cfcb-11f0-980a-7dc792cee155;
 Tue, 02 Dec 2025 23:08:17 +0100 (CET)
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com (2603:10a6:20b:509::16)
 by AS2PR03MB9419.eurprd03.prod.outlook.com (2603:10a6:20b:59d::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Tue, 2 Dec
 2025 22:08:13 +0000
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb]) by AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb%5]) with mapi id 15.20.9366.012; Tue, 2 Dec 2025
 22:08:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6764768d-cfcb-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oeYpum/DZNzUasnCOajtw76zEOO7PUfjU0oBokzWjRYzQCquwI8PlNZqV3GKB1GvZWvy2ZYmsJDPuQi2eSRhSwZ8GYsb8/KndLteGK9tCM9R87CSuVDnbX03viPveA6Ux9RJX4zQss/Hz1ZZdhhVw+6TsONDD/WE9sI4uZqmTvqy0KRifru/Jd/qbKq9plg+lvAMdE73gRvYuGFYm7WniPEAycLX9/mJ2AXN2w4ff4muJ80dp6aYtEdZlEc+eQ3zLa4P6ekMPo1kJG7oem7g17nrO4z6xkf5l1arFlsuShKlB3/kQhHHLjHo0ikBkPxmW7HsEjwkKwULkxcstRQN5g==
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=fIXK5Wkamt1SBWwVFDU42iIXdHitqwWjwSybZiNCCmE=;
 b=YDRQYHLDfgbs/s6G5LLr0ISYXq5EA4nZBmvOu9uXpeOTEaX4tOgaa3o4m205Nijip9WqqcNaL4V4HnkCWRBwA4voFjO9GmQmc2nQcaYglNyHDboVusBYSH2fsujaIpjqxjszvBfWminzXFls/8AHcfkccku3L9pbcr6RbAsOjEjLNMOJN1OLpjuWIHUCYU+Wo8IbXjKkZZ+XB5hjwaiUjlOKxZb23ZLzrXzaAip0SdUVnlZf9ZrwVFgdPeCnSt3y2bYKlBE3ggtQhGGMbIkJCW0jXf2pXuVhhOaF5jlK7RUtSbJIIV4Z+gCrbG6Ox1HQybkEItl8fLahFehhG7fBcA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fIXK5Wkamt1SBWwVFDU42iIXdHitqwWjwSybZiNCCmE=;
 b=QoU3anWYGyOZawgBTFtuWIMeBAt38ukTSHwy2zg2FMEw0qr/IcnmqgnSOc1x7ZBYBEU50qujWegPYRvKHHNROQx8GP3Kl5YiJ0bVRHIOBq8djJCmBoQ4+KMB104lB1ctQOxEAsmqsh4mR+/NxrK656jssCB3fuYqZmLfIr2aJeGeHGvxI15pMRxz3myaefaasNNEgV9Tr3sucpUKT97o0LcZZwL84U0tA2pkzsCqVJhRDfAPX7Eh/ZpCUEM40+FZ1y/ugfQxpUkIOOETaj7yt63IEQQL6CgBppW6KnDYuTzwsTtPuire0q1EEmFuzujnLhhfAhXfj6onmbzq8HsNXA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <c776c308-cda6-412f-b03c-a4b691b69d33@epam.com>
Date: Tue, 2 Dec 2025 23:08:11 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/20] Add SMMUv3 Stage 1 Support for XEN guests
To: Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Julien Grall <julien.grall.oss@gmail.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Nick Rosbrook
 <enr0n@ubuntu.com>, George Dunlap <gwd@xenproject.org>,
 Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
 <CAJ=z9a1eM6M+Gagond9TiFtF7c7EEQKOKHANcvDWDhW_3JzqOA@mail.gmail.com>
 <12ba4388-ee23-4e17-910f-9702271865ad@epam.com>
 <b1f79b84-d0c4-4807-87a7-1cf94e58ecee@xen.org>
 <a5943713-85fa-48ad-86fe-5698604ed8c9@epam.com> <87v7m93bo0.fsf@epam.com>
 <6c80a929-8139-4461-b11c-e6ac67c3d2e4@epam.com> <875xe6ytyk.fsf@epam.com>
 <65727710-0a88-4fff-bb5b-9cf34106833c@epam.com>
 <5df30dbf-17a2-446f-83f9-0e4468622917@epam.com>
 <485a8166-5079-4c0e-a6bf-f6aee8af991d@xen.org>
Content-Language: en-US
From: Milan Djokic <milan_djokic@epam.com>
In-Reply-To: <485a8166-5079-4c0e-a6bf-f6aee8af991d@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: VI1PR08CA0266.eurprd08.prod.outlook.com
 (2603:10a6:803:dc::39) To AS8PR03MB8322.eurprd03.prod.outlook.com
 (2603:10a6:20b:509::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB8322:EE_|AS2PR03MB9419:EE_
X-MS-Office365-Filtering-Correlation-Id: 1f4c195e-7d2d-44bf-e82a-08de31ef494c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|366016|1800799024|3122999012;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SENHZjBxWUIwblYvUlVZaFpDR3VGNnI4UU5jTjA5NjhoOGVMTjBlTksrbkxH?=
 =?utf-8?B?a3U1YnRjbnJSQ3loc0p6ZHE0L25mNEt6dEZLUndaRDVna3o3QTArb1M3ZXdy?=
 =?utf-8?B?dmpQdkUyc3liVlN2R2JIOWp0N3FrSllWY1dkSTJub2NIb3FRbTJaeW4zc2tI?=
 =?utf-8?B?NnpOc1J3ditGWDJ3eGlsdUQ1QjN2UGRJS3lFOFdCMm0rcEJrSXlpK0NXZWp1?=
 =?utf-8?B?TEpiOUJzVG5yZ1JKYm54RWI0WEVOVUg1Z015ZkxzQW9PVTM1bVlrTDhyS0VD?=
 =?utf-8?B?WHFkbHk5RzVxRGhDaTU1cWRYMjBmWmlPVG1uK2l3N0VVR0d1Z241WU8weE1X?=
 =?utf-8?B?UEVkNHFxZ1FBay9paGZpWnBkMFk5ajdjdXpSUkZTYXdVWmZ3MDg5SjhxUHdR?=
 =?utf-8?B?KzFJOVNjenlrWFIxN3FiRXhHUEVFdVVsUTNGM3VIY1JLUU5VRlU1bEFtQ05a?=
 =?utf-8?B?djdyZEZBb0lMY1RDSUUwWWlvOGN4b1R4a1ljVFFEK0ZYRkdxUk1YUVVMRTNR?=
 =?utf-8?B?UEt6YU1ueWNYblhsWGZ3VSttTlFHd00xNmgzcE0vZmVTbFBCcWR6Qjh1bEFO?=
 =?utf-8?B?N3hEZVRienZjVDJXN1hlOW5qZ2tLcWIyQTlaNlJBV1ZMK2NFNS91VzQxYnM2?=
 =?utf-8?B?OXhLN3lCR2RqSlBEalZ2SkJkK2diZEpQWVFhMXl5UDZjV09pMEVGQXZlQlA3?=
 =?utf-8?B?SHExODRUT0E1MFhVdXFjSDNJeDhaem14L2dhZ2Q5ZEFnODdjQUVIby9POERI?=
 =?utf-8?B?YUZ5YjdYRmZkZjU1V0RVTDJJTkR4cXBCVERvM3VkMEg1NlRrRWVVdmc3TzNX?=
 =?utf-8?B?QmVxSzJocDZPQnFTV1NJN1JkajludlBIVHpTMkc0SG52RDJQS1NNS2pTSlJM?=
 =?utf-8?B?OUtlMC80M3JEUE82cURzc3BvamVwdHJZQWpLYm1nTnNIWksxQ3JuK3JyN0pM?=
 =?utf-8?B?ODZ1QWJVMWZvamFxZmhJNmt6NnloMGw4QysySXk2T2F1WElxazJZRUgzRDRx?=
 =?utf-8?B?cWltaXAycVY1NkpjR1BSakplUzJCbitoaE1kZ0lHR0RpUm5GTm5idnI2MEI0?=
 =?utf-8?B?SXR3bEZVaG5HczhGMWJxR05WMldPS0tLUndoYnB1eHV0TVh3MG5WY0VZaXc1?=
 =?utf-8?B?QWFmcWd1WitXOEN2RlhpRTcwcGNIUGxWM0F4NVVCUXlxc3FoNktNdERwWGMr?=
 =?utf-8?B?eDZwZ2U2WG5VU1dBTzMxUVR1NEsvaUhjNGd6NEdRbk9BcDRvZ051RlFKcXha?=
 =?utf-8?B?Vndpb2MrcVg2a0hxeGZxcmJpRWgrSnI3MHVDNHBrK3o5MlVMNTRvM2FwOUtG?=
 =?utf-8?B?dWVhY0FhQUE5L0ZVaVBWQnNqaE50VVplRzM2NUdiZVJPc21qVElJSXd2a3Uz?=
 =?utf-8?B?WkFiSnRWdTdYVmtCNXZwUmI0dFVMbXRYZWFhNk5wblpWQlFpZW9WdVJWY3E5?=
 =?utf-8?B?MDE4YmJ2L0hJVlR1VFZqMWlVaXgxOGRlRGw3S0xSZnVrTGNyWFJJdm55ZXpo?=
 =?utf-8?B?SlBwQ2dGZGNVcEk0NW0yVlo5SXdoSkFxZkp0NVFkVGRKWHZMcEFMRWFMUmFB?=
 =?utf-8?B?V0NmYnBqVlN0RjcvT01FWHphdlNzY29zMm91YXlGYXRCcVAzWWJ2b2YzTUt1?=
 =?utf-8?B?Y21jK1cxazMzb3lsN3JKcEdZRmNBSjhJcnZwejRUSjBkNFJwclJlWVZnQ0V6?=
 =?utf-8?B?ZmMyTnVSRnRwUzJ3bHpJYWwrQlJ6Ym9tZXhhM3hrR0xUSWJqUkFqZnpZclll?=
 =?utf-8?B?c0ZyRmFUWHU2N09PcWpaa2g3SzRSTzQrbXM3WERqOVZ4ZldLcTZJa0ZjS2pN?=
 =?utf-8?B?TmhmTFVVcXhFanpDanFMRitsSkQvYTdlVjhNWm5Mbmc1dmZXcCs4ZStqUW10?=
 =?utf-8?B?NG9VeFB6b1h5SUcyZ1gyMCtiOU9iT0N4WEV6UUNlcWlFakpUZVRkQzlTY3hQ?=
 =?utf-8?B?Q2dMOFU2aVZwRXRoWE9TYjloSUVoRi9vT1M2S0ZRNlhKQzhGT0xUOHZtWFMw?=
 =?utf-8?B?VFFjaEg4U0ZRPT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB8322.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(3122999012);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?a2RkVGNqQWxJUkc0amdRdnBQZ1l2ZWNXdzgrYVRNU0xiRmRXeDV1TGNUZjZ5?=
 =?utf-8?B?ZmtMZE05N2xzWU5TRnY1endsbVA0U3c2cnpNOXhOZGppcjNCZEUwbWRDV09N?=
 =?utf-8?B?QS84NUM5aWpXOWRrd0d1TVZnVU9nVXFpeElxRjVFb3B3aXEvZGJ0aUR6cEdj?=
 =?utf-8?B?NFpRL0RqN0toenEybThLRHUrcEhSRzNEL29CblFldlJUS1d6NjArRVdsQlVp?=
 =?utf-8?B?a1JkZDBkNnBNa3NWdW8xdDRRSHdrT1AvWHBiYlhia0VISWZiTGJTYVBpQ2hB?=
 =?utf-8?B?VEtRa1N1S0RwMFkvUzZhY3VUd0hLcXBiVmx3blkxZWlLaHM0eUlGc1BJZU1B?=
 =?utf-8?B?cGY1bkEzMDZSOWx5cEp5NVk5dHdKeFZDakFzSnJFMWZNa1FlcTUvRTNHTDdG?=
 =?utf-8?B?dWtUeFlhdy91UzZnUHlib2djWi9DS0JoRG0wMVg1K3FoTDZmTzhxNkxjWTlB?=
 =?utf-8?B?WTE2dkd6dWtBQVcwK3Jjejh6TlVRWmJhN3NuWmZsOE9qYnlMb3BiWjhwSWNM?=
 =?utf-8?B?NkNZYWZGbHhmRlVJTUY4d0daV29HRlRDNE13UDUvY1l3TmtkZkRvQWhxZ01H?=
 =?utf-8?B?b2U1bEw0OHhJdlFEUzRId3lSWVFuLzh1clhydWRmbTNWMkdiVEtmdmhkY3JG?=
 =?utf-8?B?VUovOUFPNDczMlo2QllGaDBZVDZyUGwrOXFUSTRRK2VZQk1WeXpPZ3hpWWZP?=
 =?utf-8?B?MXo5cFVFUUIvc0lhRkFVUm5aM0t2UlVsMDJVbFp3VlZwdldwcU4wbmRCNXVi?=
 =?utf-8?B?SmpIb0xDU2dxaHhiNlljbU85TG00TjA5Ymo3eUY2RUhKQ0dNV0RhZzBPMTEr?=
 =?utf-8?B?QWRQK254cElwdVFkNVIxSmQ2ZWJPRUdTaEZVWVhkUXRYWEVEU2hPQW1Ick0w?=
 =?utf-8?B?aEFYalkxZ0JVSS9jNDFNK1hJcWRmb1c0VWM2ZnlUalBTTGQ0ZE8xdnovbllR?=
 =?utf-8?B?bVNnSUdSYWdXb25tMmQ4SnZQQldHZzl6WTVCWHZUUERuUzNTc2ZvNzlKYzFG?=
 =?utf-8?B?VU9HR3FwSFBjWmNTQXduWi96RGxrclFHS3NGYklpRlY0enM2Tkh4amFiZzJP?=
 =?utf-8?B?eHRZSUVXbGZWdlNMZldRMHZLSTRJODZCbEMwQ3VFa3RlZzlndmp0T0ZDMm1Q?=
 =?utf-8?B?ZGljbFU4RythM2VKVUhqQjI3bldYTEZKWThIeEk2eHFVZkRlZ1JRanZyZGpV?=
 =?utf-8?B?dmxCR3FJYm9JYUFVQ2RNeXA2Z2dlMlo1Z2IzU0xjRHlxT3FrZUc4RWhiZ0Ir?=
 =?utf-8?B?cmtZL0QzYUl3NGIva2h6ckJZZVpOVDNCbFpDckxZQ1VWcnhqRVlUVnBwMlll?=
 =?utf-8?B?RDUyNFVOd3pUTGJJcnZqRDJIUmsxbitmc0Q0bnBrSHErM002V3phRzNCVUNT?=
 =?utf-8?B?TTFYWEpaUFNaSXpoOThobW54eEZya0F4TnpwTTZVc3lxQkNjaWJmTjNuWkUv?=
 =?utf-8?B?S0VDakMwOGdQSjlFUVI4ZXJtQWJvK2VPb1REbkVaOWJYekxKWnFkSlB0S3d2?=
 =?utf-8?B?MnByOWFiVG9ILzJiSERLUktQZkVYVkJTNUdWOHorYW9EQWhNek90Z2x1eXp4?=
 =?utf-8?B?ck9Edi9hZzQrbFhTZXZLZ0NENzRqLzJKTzliYmhnVEordDNDbjZodjNZbHNW?=
 =?utf-8?B?RERFOWs4elhCR2xQd0VmUHl5eXhwbDJPbHJFUng2ZTk1TldaeHRvQ3hRUjho?=
 =?utf-8?B?QVlORWdaNGpYRU9MaWlmendnd2hLNjNXRlorY3lseHhXVWRhMkd3R0FkZkxB?=
 =?utf-8?B?bEZyYTVOSTNCcEtqMzJCWHVUWjVNYVY0K0JSaC9IbUFZYXg4NC83bFN5ZWZY?=
 =?utf-8?B?U0FRVFV2UDZRS1QwK0tpNysrbUtFUWpOQ3BYSUUwME1CNFlOS285OWRFUHA2?=
 =?utf-8?B?Y1BrNnpOdDRCTllpZWx6dzAzRWR1Q1hnb09iT0FHWjFmeUMwS3ZKaUcxZ0R0?=
 =?utf-8?B?TzRnbWk1MjdBaVlvRWJVajJKejN6cUtjamdTQjZCOXhMeDdFSzVNekVndUds?=
 =?utf-8?B?RzdLRHZLOFFVb0pEOWJ3VXVWZFJyckhQblU0MUxTcWQ2dGVsUzZqNUhXWWdu?=
 =?utf-8?B?Rm41anBXVGxiRnluY3BOQXk3aXFRYkNlVGJZYzd6SWpPOVdaYnNFTXpiUzZE?=
 =?utf-8?Q?+1ZatjfHHO5HaXoidfGGAn4iO?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1f4c195e-7d2d-44bf-e82a-08de31ef494c
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB8322.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2025 22:08:13.2901
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vKbvYEaqB8SyYJWq+dg6QRSe9QavpqkbJYf7ysWbpN3ftgoYVDvULzbIHsypgWi7lPZ8w9rABBMZ9DMUXuF4SQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9419

Hi Julien,

On 11/27/25 11:22, Julien Grall wrote:
>> We have changed vIOMMU design from 1-N to N-N mapping between vIOMMU and
>> pIOMMU. Considering single vIOMMU model limitation pointed out by
>> Volodymyr (SID overlaps), vIOMMU-per-pIOMMU model turned out to be the
>> only proper solution.
> 
> I am not sure to fully understand. My assumption with the single vIOMMU
> is you have a virtual SID that would be mapped to a (pIOMMU, physical
> SID). 

In the original single vIOMMU implementation, vSID was also equal to 
pSID, we didn't have SW mapping layer between them. Once SID overlap 
issue was discovered with this model, I have switched to 
vIOMMU-per-pIOMMU model. Alternative was to introduce a SW mapping layer 
and stick with a single vIOMMU model. Imo, vSID->pSID mapping layer 
would overcomplicate the design, especially for PCI RC streamIDs handling.
On the other hand, if even a multi-vIOMMU model introduces problems that 
I am not aware of yet, adding a complex mapping layer would be the only 
viable solution.

 > Does this means in your solution you will end up with multiple
 > vPCI as well and then map pBDF == vBDF? (this because the SID have to be
 > fixed at boot)
 >

The important thing which I haven't mentioned here is that our focus is 
on non-PCI devices for this feature atm. If I'm not mistaken, arm PCI 
passthrough is still work in progress, so our plan was to implement full 
vIOMMU PCI support in the future, once PCI passthrough support is 
complete for arm. Of course, we need to make sure that vIOMMU design 
provides a suitable infrastructure for PCI.
To answer your question, yes we will have multiple vPCI nodes with this 
model, establishing 1-1 vSID-pSID mapping (same iommu-map range between 
pPCI-vPCI).
For pBDF to vBDF 1-1 mapping, I'm not sure if this is necessary. My 
understanding is that vBDF->pBDF mapping does not affect vSID->pSID 
mapping. Am I wrong here?


>> ==========================================================
>> Design Proposal: Add SMMUv3 Stage-1 Support for XEN Guests
>> ==========================================================
>>
>> :Author:     Milan Djokic <milan_djokic@epam.com>
>> :Date:       2025-11-03
>> :Status:     Draft
>>
>> Introduction
>> ============
>>
>> The SMMUv3 supports two stages of translation. Each stage of translation
>> can be
>> independently enabled. An incoming address is logically translated from
>> VA to
>> IPA in stage 1, then the IPA is input to stage 2 which translates the
>> IPA to
>> the output PA. Stage 1 translation support is required to provide
>> isolation between different
>> devices within OS. XEN already supports Stage 2 translation but there is no
>> support for Stage 1 translation.
>> This design proposal outlines the introduction of Stage-1 SMMUv3 support
>> in Xen for ARM guests.
>>
>> Motivation
>> ==========
>>
>> ARM systems utilizing SMMUv3 require stage-1 address translation to
>> ensure secure DMA and
>> guest managed I/O memory mappings.
>> With stage-1 enabed, guest manages IOVA to IPA mappings through its own
>> IOMMU driver.
>>
>> This feature enables:
>>
>> - Stage-1 translation in guest domain
>> - Safe device passthrough with per-device address translation table
> 
> I find this misleading. Even without this feature, device passthrough is
> still safe in the sense a device will be isolated (assuming all the DMA
> goes through the IOMMU) and will not be able to DMA outside of the guest
> memory. What the stage-1 is doing is providing an extra layer to control
> what each device can see. This is useful if you don't trust your devices
> or you want to assign a device to userspace (e.g. for DPDK).
> 

I'll rephrase this.

>>
>> Design Overview
>> ===============
>>
>> These changes provide emulated SMMUv3 support:
> 
> If my understanding is correct, there are all some implications in how
> we create the PCI topology. It would be good to spell them out.
> 

Sure, I will outline them.

>>
>> - **SMMUv3 Stage-1 Translation**: stage-1 and nested translation support
>> in SMMUv3 driver.
>> - **vIOMMU Abstraction**: Virtual IOMMU framework for guest stage-1
>> handling.
>> - **Register/Command Emulation**: SMMUv3 register emulation and command
>> queue handling.
>> - **Device Tree Extensions**: Adds `iommus` and virtual SMMUv3 nodes to
>> device trees for dom0 and dom0less scenarios.
> 
> What about ACPI?
> 

ACPI support is not part of this feature atm. This will be a topic for 
future updates.

>> - **Runtime Configuration**: Introduces a `viommu` boot parameter for
>> dynamic enablement.
>>
>> Separate vIOMMU device is exposed to guest for every physical IOMMU in
>> the system.
>> vIOMMU feature is designed in a way to provide a generic vIOMMU
>> framework and a backend implementation
>> for target IOMMU as separate components.
>> Backend implementation contains specific IOMMU structure and commands
>> handling (only SMMUv3 currently supported).
>> This structure allows potential reuse of stage-1 feature for other IOMMU
>> types.
>>
>> Security Considerations
>> =======================
>>
>> **viommu security benefits:**
>>
>> - Stage-1 translation ensures guest devices cannot perform unauthorized
>> DMA (device I/O address mapping managed by guest).
>> - Emulated IOMMU removes guest direct dependency on IOMMU hardware,
>> while maintaining domains isolation.
> 
> Sorry, I don't follow this argument. Are you saying that it would be
> possible to emulate a SMMUv3 vIOMMU on top of the IPMMU?
> 

No, this would not work. Emulated IOMMU has to match with the pIOMMU type.
The argument only points out that we are emulating IOMMU, so the guest 
does not need direct HW interface for IOMMU functions.

>> 1. Observation:
>> ---------------
>> Support for Stage-1 translation in SMMUv3 introduces new data structures
>> (`s1_cfg` alongside `s2_cfg`)
>> and logic to write both Stage-1 and Stage-2 entries in the Stream Table
>> Entry (STE), including an `abort`
>> field to handle partial configuration states.
>>
>> **Risk:**
>> Without proper handling, a partially applied Stage-1 configuration might
>> leave guest DMA mappings in an
>> inconsistent state, potentially enabling unauthorized access or causing
>> cross-domain interference.
> 
> How so? Even if you misconfigure the S1, the S2 would still be properly
> configured (you just mention partially applied stage-1).
> 

This could be the case when we have only stage-1. But yes, this is 
improbable case for xen, stage-2 should be mentioned also, will fix this.

>>
>> **Mitigation:** *(Handled by design)*
>> This feature introduces logic that writes both `s1_cfg` and `s2_cfg` to
>> STE and manages the `abort` field-only
>> considering Stage-1 configuration if fully attached. This ensures
>> incomplete or invalid guest configurations
>> are safely ignored by the hypervisor.
> 
> Can you clarify what you mean by invalid guest configurations?
> 

s1 and s2 config will be considered only if configured for the guest 
device. E.g. if only stage-2 is attached for the guest device, stage-1 
configuration will be invalid, but safely ignored. I'll change this to 
"device configuration" instead of ambiguous "guest configuration".

>>
>> 2. Observation:
>> ---------------
>> Guests can now invalidate Stage-1 caches; invalidation needs forwarding
>> to SMMUv3 hardware to maintain coherence.
>>
>> **Risk:**
>> Failing to propagate cache invalidation could allow stale mappings,
>> enabling access to old mappings and possibly
>> data leakage or misrouting.
> 
> You are referring to data leakage/misrouting between two devices own by
> the same guest, right? Xen would still be in charge of flush when the
> stage-2 is updated.
> 

Yes, this risk could affect only guests, not xen.

>>
>> **Mitigation:** *(Handled by design)*
>> This feature ensures that guest-initiated invalidations are correctly
>> forwarded to the hardware,
>> preserving IOMMU coherency.
> 
> How is this a mitigation? You have to properly handle commands. If you
> don't properly handle them, then yes it will break.
> 

Not really a mitigation, will remove it. Guest is responsible for the 
regular initiation of invalidation requests to mitigate this risk.

>>
>> 4. Observation:
>> ---------------
>> The code includes transformations to handle nested translation versus
>> standard modes and uses guest-configured
>> command queues (e.g., `CMD_CFGI_STE`) and event notifications.
>>
>> **Risk:**
>> Malicious or malformed queue commands from guests could bypass
>> validation, manipulate SMMUv3 state,
>> or cause system instability.
>>
>> **Mitigation:** *(Handled by design)*
>> Built-in validation of command queue entries and sanitization mechanisms
>> ensure only permitted configurations
>> are applied.
> 
> This is true as long as we didn't make an mistake in the configurations ;).
> 

Yes, but I don’t see anything we can do to prevent configuration mistakes.

> 
>> This is supported via additions in `vsmmuv3` and `cmdqueue`
>> handling code.
>>
>> 5. Observation:
>> ---------------
>> Device Tree modifications enable device assignment and configuration
>> through guest DT fragments (e.g., `iommus`)
>> are added via `libxl`.
>>
>> **Risk:**
>> Erroneous or malicious Device Tree injection could result in device
>> misbinding or guest access to unauthorized
>> hardware.
> 
> The DT fragment are not security support and will never be at least
> until you have can a libfdt that is able to detect malformed Device-Tree
> (I haven't checked if this has changed recently).
> 

But this should still be considered a risk? Similar to the previous 
observation, system integrator should ensure that DT fragments are correct.

>>
>> **Mitigation:**
>>
>> - `libxl` perform checks of guest configuration and parse only
>> predefined dt fragments and nodes, reducing risk.
>> - The system integrator must ensure correct resource mapping in the
>> guest Device Tree (DT) fragments.
>   > > 6. Observation:
>> ---------------
>> Introducing optional per-guest enabled features (`viommu` argument in xl
>> guest config) means some guests
>> may opt-out.
>>
>> **Risk:**
>> Differences between guests with and without `viommu` may cause
>> unexpected behavior or privilege drift.
> 
> I don't understand this risk. Can you clarify?
> 

This risk is similar to the topics discussed in Observations 8 and 9, 
but in the context of vIOMMU-disabled guests potentially hogging the 
command and event queues due to faster processing of iommu requests. I 
will expand this.

>>
>> **Mitigation:**
>> Verify that downgrade paths are safe and well-isolated; ensure missing
>> support doesn't cause security issues.
>> Additional audits on emulation paths and domains interference need to be
>> performed in a multi-guest environment.
>>
>> 7. Observation:
>> ---------------
> 
> This observation with 7, 8 and 9 are the most important observations but
> it seems to be missing some details on how this will be implemented. I
> will try to provide some questions that should help filling the gaps.
> 

Thanks, I will expand these observations according to comments.

>> Guests have the ability to issue Stage-1 IOMMU commands like cache
>> invalidation, stream table entries
>> configuration, etc. An adversarial guest may issue a high volume of
>> commands in rapid succession.
>>
>> **Risk:**
>> Excessive commands requests can cause high hypervisor CPU consumption
>> and disrupt scheduling,
>> leading to degraded system responsiveness and potential denial-of-
>> service scenarios.
>>
>> **Mitigation:**
>>
>> - Xen scheduler limits guest vCPU execution time, securing basic guest
>> rate-limiting.
> 
> This really depends on your scheduler. Some scheduler (e.g. NULL) will
> not do any scheduling at all. Furthermore, the scheduler only preempt
> EL1/EL0. It doesn't preempt EL2, so any long running operation need
> manual preemption. Therefore, I wouldn't consider this as a mitigation.
> 
>> - Batch multiple commands of same type to reduce overhead on the virtual
>> SMMUv3 hardware emulation.
> 
> The guest can send commands in any order. So can you expand how this
> would work? Maybe with some example.
> 
>> - Implement vIOMMU commands execution restart and continuation support
> 
> This needs a bit more details. How will you decide whether to restart
> and what would be the action? (I guess it will be re-executing the
> instruction to write to the CWRITER).
> 
>>
>> 8. Observation:
>> ---------------
>> Some guest commands issued towards vIOMMU are propagated to pIOMMU
>> command queue (e.g. TLB invalidate).
>>
>> **Risk:**
>> Excessive commands requests from abusive guest can cause flooding of
>> physical IOMMU command queue,
>> leading to degraded pIOMMU responsivness on commands issued from other
>> guests.
>>
>> **Mitigation:**
>>
>> - Xen credit scheduler limits guest vCPU execution time, securing basic
>> guest rate-limiting.
> 
> Same as above. This mitigation cannot be used.
> 
> 
>> - Batch commands which should be propagated towards pIOMMU cmd queue and
>> enable support for batch
>>     execution pause/continuation
> 
> Can this be expanded?
> 
>> - If possible, implement domain penalization by adding a per-domain cost
>> counter for vIOMMU/pIOMMU usage.
> 
> Can this be expanded?
> 
>>
>> 9. Observation:
>> ---------------
>> vIOMMU feature includes event queue used for forwarding IOMMU events to
>> guest
>> (e.g. translation faults, invalid stream IDs, permission errors).
>> A malicious guest can misconfigure its SMMU state or intentionally
>> trigger faults with high frequency.
>>
>> **Risk:**
>> Occurance of IOMMU events with high frequency can cause Xen to flood the
> 
> s/occurance/occurrence/
> 
>> event queue and disrupt scheduling with
>> high hypervisor CPU load for events handling.
>>
>> **Mitigation:**
>>
>> - Implement fail-safe state by disabling events forwarding when faults
>> are occured with high frequency and
>>     not processed by guest.
> 
> I am not sure to understand how this would work. Can you expand?
> 
>> - Batch multiple events of same type to reduce overhead on the virtual
>> SMMUv3 hardware emulation.
> 
> Ditto.
> 
>> - Consider disabling event queue for untrusted guests
> 
> My understanding is there is only a single physical event queue. Xen
> would be responsible to handle the events in the queue and forward to
> the respective guests. If so, it is not clear what you mean by "disable
> event queue".
> 

I was referring to emulated IOMMU event queue. The idea is to make it 
optional for guests. When disabled, events won't be propagated to the guest.

>>
>> Performance Impact
>> ==================
>>
>> With iommu stage-1 and nested translation inclusion, performance
>> overhead is introduced comparing to existing,
>> stage-2 only usage in Xen. Once mappings are established, translations
>> should not introduce significant overhead.
>> Emulated paths may introduce moderate overhead, primarily affecting
>> device initialization and event handling.
>> Performance impact highly depends on target CPU capabilities.
>> Testing is performed on QEMU virt and Renesas R-Car (QEMU emulated)
>> platforms.
> 
> I am afraid QEMU is not a reliable platform to do performance testing.
> Don't you have a real HW with vIOMMU support?
> 

Yes, I will provide performance measurement for Renesas HW also.

> [...]
> 
>> References
>> ==========
>>
>> - Original feature implemented by Rahul Singh:
>>
>> https://patchwork.kernel.org/project/xen-devel/cover/
>> cover.1669888522.git.rahul.singh@arm.com/
>> - SMMUv3 architecture documentation
>> - Existing vIOMMU code patterns
> 
> I am not sure what this is referring to?
> 

QEMU and KVM IOMMU emulation patterns were used as a reference.

BR,
Milan



From xen-devel-bounces@lists.xenproject.org Tue Dec 02 22:20:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Dec 2025 22:20:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176400.1500891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQYix-0001Pn-FC; Tue, 02 Dec 2025 22:19:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176400.1500891; Tue, 02 Dec 2025 22:19:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQYix-0001Pg-C4; Tue, 02 Dec 2025 22:19:55 +0000
Received: by outflank-mailman (input) for mailman id 1176400;
 Tue, 02 Dec 2025 22:19:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O/vY=6I=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vQYiv-0001Pa-B0
 for xen-devel@lists.xenproject.org; Tue, 02 Dec 2025 22:19:53 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 01fe637f-cfcd-11f0-980a-7dc792cee155;
 Tue, 02 Dec 2025 23:19:47 +0100 (CET)
Received: from PH7PR03CA0016.namprd03.prod.outlook.com (2603:10b6:510:339::13)
 by CH2PR12MB4133.namprd12.prod.outlook.com (2603:10b6:610:7a::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Tue, 2 Dec
 2025 22:19:41 +0000
Received: from SJ5PEPF00000203.namprd05.prod.outlook.com
 (2603:10b6:510:339:cafe::e6) by PH7PR03CA0016.outlook.office365.com
 (2603:10b6:510:339::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Tue,
 2 Dec 2025 22:19:45 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ5PEPF00000203.mail.protection.outlook.com (10.167.244.36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Tue, 2 Dec 2025 22:19:40 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 2 Dec
 2025 16:19:39 -0600
Received: from fedora.mshome.net (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 2 Dec 2025 14:19:38 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 01fe637f-cfcd-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qfonmEbpUFH0KB8lchwHJ3edJppfdTZvEk0vrTdowt+LPhB5w6xuvAtBuw4TGkrRZ9FLbnVoAKwwojNqC8K/sw2rfFgS1KQn4aFjs/v+Xi1StncD0xeq6yj92Q1+7WU9sMKuyBG1XsL61ZLYa/Q13WNAzYkxIzXfNkOmm0YhdtDxJjyS3L3AK3EZQasjTpoLPx08P/idGZhUDpQgYMWyitemeeIdzQhvLbzKkG7/yi6FAbJ3fcy61+duu3PTTIyoZkTd8wg3Li5Bzcw3RGAdD4b+2wSJ5GGKDRKRqBOczw4rr98r252LJOnIprAf8InOfoaqPNCPKyvWenphPGOeEw==
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=u9fyRm/qkLAdJRd4Zac3oiSGIvPacBykJHufEhTl5FY=;
 b=TifzNIaegVMnjOhDFipU9EBJXCn1TLV2tOr62jJc3KnfS/FhAs84zjpqVMlnBD/myf1EAg7pQEGQZLApxU0ziQ7NwAdlSTWyYvKexMXPKX9kr2UORweifouZPBqTlgJmG9FcWbBMT++tkL85pe4dejW1yneX9ivFmiGD6X7Gd1PyO9stnfih2dWDnBjYYrZ8rp4IzoYLZdF9qvTJZ/y/t7LG7waevuRlV5WmNRY7sW9G4VW1L2sscndqdGlTqaFANDdqi0Ib9/DnaLfrzBViRh79xHY9etMqa2+KYOMD6ZojaNQ9YsA6CwtbHXXv4iz4sS2YwVxGPvChTiFEl6KbFg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=u9fyRm/qkLAdJRd4Zac3oiSGIvPacBykJHufEhTl5FY=;
 b=gB15+TvHA7B0cR73xGp5j5kCIkDzzTY6Gv9DokooJs0JEbRL7/w5FBiaRrltx4hXMJ+U+00kO+0RwGTsU2BnlR089xtcZCbvrYT3z/kAOYU6r6ewIihIjLQ5yGVojSaFCmhlIw5EdhDqahCwzG3g8c6PnNq8mUOZ4/IgcXZg6LA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] xen/gen_hypercall: Fix if indent
Date: Tue, 2 Dec 2025 17:19:29 -0500
Message-ID: <20251202221930.151264-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.51.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF00000203:EE_|CH2PR12MB4133:EE_
X-MS-Office365-Filtering-Correlation-Id: a459f76a-21de-4344-147f-08de31f0e2f8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?9P4H8JSWx3tOpei+5bsACP2gzAZLx/+R4ZB81gvsgb6U8zqZcFHNJoruvo2o?=
 =?us-ascii?Q?V+9XR3ufy2ifO35P5WDCd778KjZwEGzf38bTeLNnuwKpzTtk3SMUl+QCynxM?=
 =?us-ascii?Q?fKRq86QzYCUS6TwC+cJEIEWcK3lCX8BjDu6R8+t9M4w1SZY267K7+8rRkKfO?=
 =?us-ascii?Q?4c4wZN0ieuYbNL3WoAUNovAx1Hnls6u2IXxPYGRuIj7qPLWYQe6E6sofCKWA?=
 =?us-ascii?Q?00t9PJhzeR0yI850JzvseimnxMtGcPW6PSgvEm64pyE2D8s/gOsnJO17Yi+L?=
 =?us-ascii?Q?5uBmv+qhmDUFi+Uu8EXSAVBzbw3CtwRQcSGwwTWCIgqJMGwQjPlxkK2esu09?=
 =?us-ascii?Q?aNb3IQkl48XFepiJVCvwSeLA5OL+BxGEfy+ym5RTdKXClGXjCkxASSg1RdU9?=
 =?us-ascii?Q?EUHAJ+Z8aQOKA4ZT2Tuu/5LdJV/Oh+hAkdkVtu2eqVqVLud8tdQB2N4n4WVn?=
 =?us-ascii?Q?uuxIrV4JGdT/xae9Ubgt2Naf2xkY+8uX4G10f0rkOQbP/RaqBFJunGRqV3Zo?=
 =?us-ascii?Q?x9MyHpO1f0iEKPD6ZC5qm4/s5pXcILPpG4t/DICEjVfVKGjk/jq0JDgooH2b?=
 =?us-ascii?Q?HOtdP2bkDFNkmWAeMRyFYZx34/tgqR/lGWRkknvAPe/D5rXkQq/6dwFwuQHM?=
 =?us-ascii?Q?ey4u/CKI9KZo/KeebL8jbNT9o3PmnwDTpHXuiz31lMPaE0KyAvLNDfRZd0H5?=
 =?us-ascii?Q?+OPdr3z3yXvYbXciBpxDHdFUkIPCcbcdkt9OUplWBaZsCJqiWZ46v8rk/EhZ?=
 =?us-ascii?Q?j4Jm76Cl+w5965KmHAe6poSmPjITn0bj7ojYEinGR2mmtParfqX61P04FHHJ?=
 =?us-ascii?Q?zIyq+K7QsBW3KlFJ3Bprg8nTKhxAWraaWRw+kGafq8C+YlsoeOLIkBq+cEIj?=
 =?us-ascii?Q?m1vCu6cqTJgsi3xsEug9k7Wody9kbL6uRBNWMlUH0Ln2PvonGh/oc0kZuyiO?=
 =?us-ascii?Q?UK1Yq1Xe45bIwBnmLu9L2RzVxsDeta5K/s346GOBnBpjo8a3hbhVidW/GIYJ?=
 =?us-ascii?Q?zCV1OH09hSjcMKKnD1vkQbDkrQvkXNCi+MNSvRf1VnK1/jPtqLz1DCLFfkW6?=
 =?us-ascii?Q?cRkBEQZh42J+FIMDCXx5bqo53ZnlUrTKFHi9bbcO7zFB7gGBKSS0NSdESdYs?=
 =?us-ascii?Q?a2ot9SjAhxd32O4TjHCFdvbbjisoQ8lfdJsccsUzPbKIn4azb28jd2D0GWjf?=
 =?us-ascii?Q?QoN8Bn6wHs/WyAdYz6wgLRT6Z/yJob5zl9H1yCD2/rqJp9dFCpQlGjZwTfF3?=
 =?us-ascii?Q?hCkZ9b5ljkk+TTn5QjCfKtZPExEyhGlXLtPiybuznwgBIc/ao1R952Pyp7G3?=
 =?us-ascii?Q?cciFEa0w557FbOE9BEUxoiMUG6Tc39loNzirAsvuMpoWaPVrje9ff7rfSOQF?=
 =?us-ascii?Q?FPy5a5VKF2cewKQpNaD6bLlwHnLpUafwfnWNzT8t7t6zHrJ1EzmaL+ByD32g?=
 =?us-ascii?Q?C7vs5T8VlERowQneAJRoLHX6XISjfUyUCFnVbB2xv2JcXQl2iPqxVywn6RVh?=
 =?us-ascii?Q?zHd9iGoqGrEhTLFYyzvpGigF+35tglBqU8xZlFuoKNty/7N1dK8d3fK8STTs?=
 =?us-ascii?Q?O+Lp8QMZxYAq2HZh8wU=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2025 22:19:40.1681
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a459f76a-21de-4344-147f-08de31f0e2f8
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF00000203.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4133

On x86, the opening if of call_handlers_*() is indented 4 spaces which
breaks alignment.  The alignment is broken by printf("    "), but
that actually aligns ARM's opening "if ( likely() )".  Move the indent
to the if that needs it.

This results in x86 hypercall-defs.h changes like:

 #define call_handlers_hvm64(num, ret, a1, a2, a3, a4, a5) \
 ({ \
     uint64_t mask = (num) > 63 ? 0 : 1ULL << (num); \
-        if ( likely(mask & ((1ULL << __HYPERVISOR_vcpu_op) | (1ULL << __HYPERVISOR_event_channel_op))) ) \
+    if ( likely(mask & ((1ULL << __HYPERVISOR_vcpu_op) | (1ULL << __HYPERVISOR_event_channel_op))) ) \
     { \
         if ( (num) == __HYPERVISOR_vcpu_op ) \

ARM's hypercall-defs.h does not change.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
 xen/scripts/gen_hypercall.awk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/scripts/gen_hypercall.awk b/xen/scripts/gen_hypercall.awk
index 47a18cd75e..b544fe1c4d 100644
--- a/xen/scripts/gen_hypercall.awk
+++ b/xen/scripts/gen_hypercall.awk
@@ -266,7 +266,7 @@ END {
         printf("({ \\\n");
         if (need_mask)
             printf("    uint64_t mask = (num) > 63 ? 0 : 1ULL << (num); \\\n");
-        printf("    ");
+
         for (pl = 1; pl <= n_prios[ca]; pl++) {
             if (prios[ca, p_list[pl]] > 1) {
                 if (pl < n_prios[ca]) {
@@ -292,7 +292,7 @@ END {
             } else {
                 for (i = 1; i <= nc; i++)
                     if (call[i] == ca && call_prio[i] == p_list[pl]) {
-                        printf("if ( likely((num) == __HYPERVISOR_%s) ) \\\n", fn[call_fn[i]]);
+                        printf("    if ( likely((num) == __HYPERVISOR_%s) ) \\\n", fn[call_fn[i]]);
                         do_call(call_fn[i], call_p[i]);
                     }
             }
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 03:58:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 03:58:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176417.1500902 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQe0W-0006Kj-RD; Wed, 03 Dec 2025 03:58:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176417.1500902; Wed, 03 Dec 2025 03:58:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQe0W-0006Kb-NV; Wed, 03 Dec 2025 03:58:24 +0000
Received: by outflank-mailman (input) for mailman id 1176417;
 Wed, 03 Dec 2025 03:58:23 +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
 <SRS0=xHXm=6J=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vQe0V-0006KV-Jg
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 03:58:23 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4d79291f-cffc-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 04:58:19 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 LV3PR12MB9403.namprd12.prod.outlook.com (2603:10b6:408:217::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Wed, 3 Dec
 2025 03:58:15 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2%2]) with mapi id 15.20.9366.012; Wed, 3 Dec 2025
 03:58:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4d79291f-cffc-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZgcEzmpVj98v3Vuf5W6xN4gKmCEJ44FCE0+p7yVnxvulcYG8pNnowH6KtPS9k8d8w36T2F/waTcN2xhqzNi63JOhszYCuD+TfwF04zYPZzECeS3Y0vzcW8TYtJj/xudaCUOxrsk0Wwc8lkdtUUNyC5hu7fjF+lM6eUDhiHA9CIs+Wb1vGPlBKpH4Bcp59alOIBGNV+zUaP6rkNOb9bgZFvtJ1W3LtGRTnXaYnIQijb9N2Nr2d/fZ5FTp1gt4Gk9IinDFoWdJsZ+RQ4F2W1Egy585c6PKkh/+umZo9UwbjDiLcOCjOZqkkzP5KnIOEm7MwzBjS3KYz4WPHgY9JZu80A==
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=hlgJKKkJQHNlB7lz9jydKGxQANbBJMrrV0q/RBpeZw0=;
 b=KvWlcnY3u/bIlauCIk0tUJoGWZ7UgUrMN/m7pNDkYL26KRxzkR8dhlJrxHjx8S/U3853PSWVPOCCd4ckxZKZS/bcM7OD/iPfgFstJDD+KmWmqh2BjnyzOyTP6+3bUeiqITrXXrx+iv/2zaBl8ZhU1US7fffB9xqyN+ACWacAqcPCUtvc3ZvuVBFNkDwmwoz+aGq5Yv/2gVpGHoGuDMTVnJsnVAEz32u7OmwvCbk+mmUETU0GZRvNIgLoxXnyDJ9QmGWyiO2s5kjBAvremjYuwYrP9G0twJcHc6Ah4JMGY8U59HUx6M/xR+Fs/hBasiuZnxGxT+0T7C3zeI+o4aganQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hlgJKKkJQHNlB7lz9jydKGxQANbBJMrrV0q/RBpeZw0=;
 b=GSM5KVyjLuVuw95jytKvHKitOX6qgXQp2i+G5CqG6stlQpRTmJJHiuKZn7d3tcKh1uTVgBMzidYwI8KA2jLgvtGks9Pq+jfQMO+M+ZUJ25RwBZZgbbqRa2e1u6xd1ghYE2PkvOg3EDhr8QhpAgtdO+DYHhoGSdnoBeaGRYeOqyc=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "grygorii_strashko@epam.com"
	<grygorii_strashko@epam.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Juergen
 Gross <jgross@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Andrew Cooper <andrew.cooper3@citrix.com>
Subject: RE: [PATCH v4 02/24] xen: consolidate cpuid library
Thread-Topic: [PATCH v4 02/24] xen: consolidate cpuid library
Thread-Index: AQHcWtXJjf66LsUGrE2uxhJqk+lJcbUC9piAgAlt5QCAAB1GgIAC0yUQ
Date: Wed, 3 Dec 2025 03:58:13 +0000
Message-ID:
 <DM4PR12MB8451D17CDE692270AD3084C8E1D9A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-3-Penny.Zheng@amd.com>
 <6781dbd7-ddce-49c1-a359-0910e91bda43@suse.com>
 <DM4PR12MB84515C97AE3F68E676FED174E1DBA@DM4PR12MB8451.namprd12.prod.outlook.com>
 <a37b1779-6516-4e9a-8736-003c8e61aeb9@suse.com>
In-Reply-To: <a37b1779-6516-4e9a-8736-003c8e61aeb9@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-12-03T03:57:55.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|LV3PR12MB9403:EE_
x-ms-office365-filtering-correlation-id: 1b32b71d-3f7a-4ddc-8e3d-08de32202e70
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?cHVjbEw5V0NydzhqeFkyMk84YWs1NTFLSkd5MFdHNzNIM2RwNnZBeHh2OXYz?=
 =?utf-8?B?WFFJZGJCRWxWUjhLT2QxdXFNbHNLZW85MFNsTzFLTHNDVmNHZ3ZFdzZTQWJ3?=
 =?utf-8?B?RGt2Zk5ibFYyZkk3czQwVld6VDZTQlcrM2M2d3A1ZzllYWlYWUZJSlNpd0Y0?=
 =?utf-8?B?c21YelJ2YmFwNzM0VHRmSWZwMng3YzcxNUo3eXFUdzA1RFlUQW5JUzUyUnNp?=
 =?utf-8?B?SmpjcXlyUkFFOTFiU1dkS0hzTndJZk1OUFNiL2s5YS83MEtNVU5uR2ZhTjRH?=
 =?utf-8?B?ajU4RkVhcGNpcmtCK29XYy9Qb3NZMmIvUFBhbzUvS0JEWVBka2NQckNCTU13?=
 =?utf-8?B?ZzVQQkxhdzQ2U3NWdlRlOFVNa0ExdDZpUEp4RlRDczdIaVdVcXBib0YzbDVZ?=
 =?utf-8?B?TSs3Vjc3bmE2K1RuamIwUmQ5Z1A2YnBOVVE4Y1UvSmpUQndIOWc3bk5ZYk9B?=
 =?utf-8?B?MG1JQ0twMzRobDRCVm9UQ0p6WlRaaW5wMW4yOXNIRllrczk4Q3IxcmdLclNm?=
 =?utf-8?B?VjJTdWNOQWd4Mzh6YVhJdSs5ZkZDWnhEeFlPOHcyaTA4MzMzQXVyc1hOWHQr?=
 =?utf-8?B?aVVlcGZMaG5kaXlFTTBNVXhvK2tGZHNERWtBbjZFYktjM24vd084M2toQU9n?=
 =?utf-8?B?RGxkOXhOcmpYS2xkcVJ2QlZCT3ZVN0xVdVlSMmRJN3oyWmtiWWhOTyt6TFQ2?=
 =?utf-8?B?NVdEbWs1TlRFOUF1RVUrNkw3RG50aXh0d210RFpXdUY0U0xXS3BscFdNTjgr?=
 =?utf-8?B?UTc1amFmaHRYdkNjbVhRdFltaFpDMlFLM1RaWUMvV1pmTWxhN1VJY2F0T09D?=
 =?utf-8?B?YWVUWlloR09JSzZPcTlzbXRwc0l1ZG5YZEFHZEROT3BnL1gwZkFZVjNTZUVa?=
 =?utf-8?B?aFMyMkQrY2NsckFkM1puWUdUQXZ1ekp4dUM1di9oVTJvMDBKRzJFcU9HRlhY?=
 =?utf-8?B?QlN3ekpTb094dTRBQUdqR0hxVGh2anNMeXZHV2hQcy90WGtNU3hFOU85MTNl?=
 =?utf-8?B?blJnem5Ham5CcDIxUXdLczFMNmQrNTVCTHJqNEVrQXpWYjZJZm0yV0NudnBl?=
 =?utf-8?B?eC93bHZBTFdhU29BczFwU2ROQ3JPWC81Rmg3YzR5R0FyeHRlYm1Hdk1OK0d3?=
 =?utf-8?B?ZGJFZGJ1bkI0NzVzYUg1MFZ4YytSM0lQOVcwTHk1Q0xvam90RzFXKzJSL2U1?=
 =?utf-8?B?eXlNdXMxL2FWdEZZRWljRlo1dEViLzJDcE1mNGVSbjdkU21zTGdMNUR1OE1P?=
 =?utf-8?B?NUxrbEc2OVEwYWNpd2U2VzNyMTBGRWhEY3lMbGZ3TVZkcjRsd0V1VStWNW1K?=
 =?utf-8?B?Q2lNRzQ4eit1UjlPbTMvcHdhdU9LRTJEQUk3MTc3bVVvSlZYTXFDclpmb1pz?=
 =?utf-8?B?NmlBdnNzcm1EZC9oU2hEWWxnZllQRVRCZ2VPQnhpMlpQWTYrTGQ5RFlmTCtE?=
 =?utf-8?B?S2ppVC9Mckt3VzI3U1ZsUHNoUFZVbmhyUWZ0WmptUXc2dmJYZXl4SjFDd1V5?=
 =?utf-8?B?K2VydEVhYk5POG8ycXFNWXUwQXYrS1l0TmZCcFU4eDZWMk5sL2tOUmpLUWIv?=
 =?utf-8?B?SkZuTnlwbVgxVUdVcmhzdU1ybTdIRUFJaStCMTRZczNWdGgvdGFwbTZ1THJH?=
 =?utf-8?B?VlRlSlZDTG9xam9lbUROMHdYaW11WDg3VUR6RTViUndTWmFjd1ZwdHFpSEVO?=
 =?utf-8?B?V3BZdG9GL05PTFhIdG9CNmZGZ0dGRUVWRE80cHJ1SEs2d3cxaGJ2eGY0MWh5?=
 =?utf-8?B?RUZLTkRPdm1iR2UzcWZmYmRVcWpjbi9ISDBMMTB2UzNwRXd1amg5WCs5T1Ux?=
 =?utf-8?B?SnV6ZVNEZkFQNi9tRTZOR1AvL3c0T05QWkRTd1p2U2V6M2grNHE0Z3djM1U1?=
 =?utf-8?B?SEkzNTJESHVBSHcreFVmUGZxVVk3c1BKZVV0VWlaT3ZlaWRrbjV0RXRIK2o5?=
 =?utf-8?B?MmY5YTNUUkRTdm14YVpBQWhOd2xmSEVYMkdoRStKTmhvYkF6K2N5YXE4Y1hy?=
 =?utf-8?B?eDRWMUkxaGZ0cnB5K1h5NG9KVVEvNEZQdlR1UGZ6MC9uQTV6NWJ5M1llL1ZZ?=
 =?utf-8?Q?+zc3/X?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?cjB5dCtMbXhLOHFuWk1FTGpYbmd2dXdId1NQampMN3VvcHBGYk8wOUh1UTM3?=
 =?utf-8?B?TVNMQmlGUmdQT29uUVIrdDhLQXlLbzZ5NThpY2trMFZTMDNyZ1YwL0xWS2ox?=
 =?utf-8?B?eWlqaGlnVFp1UlBWS0w4V2gxOStBTXdnNGNrOHlIa2QxT21WYUdqeU5KNU10?=
 =?utf-8?B?QmgwSUlUTlF6Nk80cnZxQ3dTT0oxNzc1bWpHRjZ0Q3FZOXloT0hpTmVTR0Yy?=
 =?utf-8?B?blROa2NIYThFajZMYXJobFV0MjQ3QW1aNWsvbG50SnJjWFFaMCtQUlZMcFVr?=
 =?utf-8?B?N0owQ1NoTDRwa0txcmk0anlndkZBdzBYc3J5dnA4NHRPR1M4U0VZTXZhR2ZD?=
 =?utf-8?B?ZlU2VWJnNkc5TW1ZbUpKU0xHWVdSZWkzZnBoVTZmbmFuK0krcUt6SnJDZDJT?=
 =?utf-8?B?T2VQZTAyRWJlaGE2U3RNNkNBWEpEampaRGRVK3ppbmJJSkNxT0xhOW1lMWdZ?=
 =?utf-8?B?MGppNElsUUhBLzhwS01qVnd4RkhsaHJzZ0tkUHQzSW81Q1Z5LzRDVXpTcGdU?=
 =?utf-8?B?MEM2T3ZTNmtoaFoydVp4bUdsbGtxL2NNZ0hwUzNnUnVhcU4xK2FJVDVjQTRG?=
 =?utf-8?B?dEV1TFVxQkswY2h2di8zcmI5S1NjbWdSTmJiNnIyY1ArMm9NemIvaW5sTFpi?=
 =?utf-8?B?K1UrNlZMMTd5N3JKZGVablBHMkZ1WEorWDYwd3h6UFJPdFNpcVNGTFNZdi9t?=
 =?utf-8?B?TEU0Qlp2Yk9Kd2U4bEJPR1FkU2JpYzgzbzd1dU5QMGNiQm5wbnhrV0tZNldV?=
 =?utf-8?B?WklLYkVIbGErTFhlMG9mcXJkUU5sNzRDaTR1VlMxbFlvVGQ0UVhJZ0U1THhX?=
 =?utf-8?B?R0Rhd253cmNCRU0rTGs1T3hVTjJRb3BVbFlsbTdNSDFyMGhOOGVrOWp0K0dn?=
 =?utf-8?B?NTFJSU12emxaTC9NcDBXWjBhV1lUdnR6UlFHbk5YYXAzTnllaU9tT1Y2dkFJ?=
 =?utf-8?B?d2FEM091ZWw5VDJNYnJzeVMxT2k4a05UMFVxTkxsVUt4azZ3YUNpN2IzOG9m?=
 =?utf-8?B?ZGttZ3BmVXVLeDVhWGNsczRFRWtBQy9xYkhWRERjY0t4aDhTR1NPRlpvN0dx?=
 =?utf-8?B?dHdBSlhQWEtROVY3bDZzM0c2WDJNb3RBV0ZKYmJSdEI5ekg1SWpDUTBRR3Bs?=
 =?utf-8?B?ZS8zMlJlTDBCSm5OWUVwWWNsbk5pUXN2VGpjV2FYaUJSMFZFdkdsT1Fsb1FS?=
 =?utf-8?B?MWNDSFI4VjlubkIyaCt6bkF0REhreFJBMUo0MFoxUzZpaWRwRDllOENCQlUv?=
 =?utf-8?B?eGpFK0JSRUhLZUtGVFhOaHlSanNVOTg2V245clQxQTJRVVhSbktMNEZ3WHdz?=
 =?utf-8?B?M0dWcE5nczV6TzRTQng0cFl0dklxb2NHMXA0UTBzZERQY1ArZndPb2gyeWN1?=
 =?utf-8?B?VEIvQ3pZK0M5Z3diSnhpc2lwM01MdFJoSFowVUttcDhSSGpEbGlSRFZ1TXdG?=
 =?utf-8?B?M2tRRHcyTldremlMdC9GSGYyMnpFYlByT0w3UlJhSCtNNC8zcGRtVUNoR29F?=
 =?utf-8?B?eCt5U29ZSEw1RFEwVFlGUnh6UXprZFQ3YnNYSjRQbFQxUUx3T1VtWXJyVm4r?=
 =?utf-8?B?MFRidnlUN0orOFgyK3RWTEM3Tlk5UnpiMGtFTWZyVlZmN0lOVUZMenFQcXo0?=
 =?utf-8?B?TEpINFVuTWRrT0Z2TVh4WjhoSVNEbTQ3V3JxaklSOW1rUnJ1TTF1THJrdmQr?=
 =?utf-8?B?L3FicVZHWEl6N3ZZaUJTRVUwRmIyK01JaTY4K09jTGRSMWJEZHB2NWVTSTZT?=
 =?utf-8?B?WjEzbG04bFQxYmNmOHNtUkxrRXZHVFIwT3pGaVJXcE40b05xZE1XaDlGQzdY?=
 =?utf-8?B?ck1OTmVaRnN3QytUVzkxZm5yZldrdVdCbFA0bU43WFd1U0NOL3hkZUR5U2dy?=
 =?utf-8?B?SUxCUUVTY3dpN21QUUxyZ0NIcTlqNkNudmVrRTRMdVIwOGhpT3h5ZmFyMG4r?=
 =?utf-8?B?OEV2cXJpVnU4clVZNVdnSWNCYWVSNFJMWlRHZFlIQUd5WkFFcGFBQkl4aUUy?=
 =?utf-8?B?enc4VHZ1RWZLaWtQRDVvdU1iNVM1YTRsUzJHSDdqb09KL2tWWEQreXNNVjhZ?=
 =?utf-8?B?M1lyVElBNXR2WjlYVHBMaVIxUlo2MzhuRVYrUjVTa0IzNENZdmRiaXl2dDU0?=
 =?utf-8?Q?bzTQ=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1b32b71d-3f7a-4ddc-8e3d-08de32202e70
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Dec 2025 03:58:13.2530
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: NqfeqEIzD2On2/P+gozL0IAeQxciKyD7GJhzkZN3oEPJUBzuFaOhBBl6/YUUdTSm7+hpS/IMUg0ZPNbGXG8UTA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9403

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IE1vbmRheSwgRGVjZW1iZXIgMSwgMjAy
NSA0OjIzIFBNDQo+IFRvOiBQZW5ueSwgWmhlbmcgPHBlbm55LnpoZW5nQGFtZC5jb20+DQo+IENj
OiBIdWFuZywgUmF5IDxSYXkuSHVhbmdAYW1kLmNvbT47IGdyeWdvcmlpX3N0cmFzaGtvQGVwYW0u
Y29tOyBSb2dlcg0KPiBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT47IEFudGhvbnkg
UEVSQVJEDQo+IDxhbnRob255LnBlcmFyZEB2YXRlcy50ZWNoPjsgSnVlcmdlbiBHcm9zcyA8amdy
b3NzQHN1c2UuY29tPjsgeGVuLQ0KPiBkZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzsgQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRD
SCB2NCAwMi8yNF0geGVuOiBjb25zb2xpZGF0ZSBjcHVpZCBsaWJyYXJ5DQo+DQo+IE9uIDAxLjEy
LjIwMjUgMDc6NTcsIFBlbm55LCBaaGVuZyB3cm90ZToNCj4gPiBbUHVibGljXQ0KPiA+DQo+ID4+
IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IEphbiBCZXVsaWNoIDxqYmV1
bGljaEBzdXNlLmNvbT4NCj4gPj4gU2VudDogVHVlc2RheSwgTm92ZW1iZXIgMjUsIDIwMjUgMjoz
OSBQTQ0KPiA+PiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPjsgQW5kcmV3
IENvb3Blcg0KPiA+PiA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4NCj4gPj4gQ2M6IEh1YW5n
LCBSYXkgPFJheS5IdWFuZ0BhbWQuY29tPjsgZ3J5Z29yaWlfc3RyYXNoa29AZXBhbS5jb207IFJv
Z2VyDQo+ID4+IFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPjsgQW50aG9ueSBQRVJB
UkQNCj4gPj4gPGFudGhvbnkucGVyYXJkQHZhdGVzLnRlY2g+OyBKdWVyZ2VuIEdyb3NzIDxqZ3Jv
c3NAc3VzZS5jb20+OyB4ZW4tDQo+ID4+IGRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4+
IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjQgMDIvMjRdIHhlbjogY29uc29saWRhdGUgY3B1aWQgbGli
cmFyeQ0KPiA+Pg0KPiA+PiBPbiAyMS4xMS4yMDI1IDExOjU3LCBQZW5ueSBaaGVuZyB3cm90ZToN
Cj4gPj4+IFRoZXJlIGFyZSBzb21lIGNwdWlkIGxpYnJhcnkgZnVuY3Rpb25zIG9ubHkgcmVmZXJl
bmNlZCBpbg0KPiA+Pj4gWEVOX0RPTUNUTF9nZXR7LHNldH1fY3B1X3BvbGljeS1jYXNlLCBhbmQg
c2hhbGwgYmUgd3JhcHBlZCB3aXRoDQo+ID4+PiBDT05GSUdfTUdNVF9IWVBFUkNBTExTIGxhdGVy
LCBvdGhlcndpc2UgdGhleSB3aWxsIGJlY29tZSB1bnJlYWNoYWJsZQ0KPiA+Pj4gd2hlbiBNR01U
X0hZUEVSQ0FMTFM9biwgYW5kIGhlbmNlIHZpb2xhdGUgTWlzcmEgMi4xDQo+ID4+PiAtIHg4Nl9j
cHVfcG9saWN5X2NsZWFyX291dF9vZl9yYW5nZV9sZWF2ZXMNCj4gPj4+ICAgLSB6ZXJvX2xlYXZl
cw0KPiA+Pj4gLSB4ODZfY3B1aWRfY29weV90b19idWZmZXINCj4gPj4+ICAgLSBjb3B5X2xlYWZf
dG9fYnVmZmVyDQo+ID4+PiAtIHg4Nl9jcHVpZF9jb3B5X2Zyb21fYnVmZmVyDQo+ID4+PiBXZSBz
ZXBlcmF0ZSB0aGVzZSBmdW5jdGlvbnMgYnkgbW92aW5nIG90aGVyIGZ1bmN0aW9ucyB0byBhIG5l
dyBmaWxlDQo+ID4+PiBuYW1lZCBjcHVpZC1nZW5lcmljLmMsIGFuZCBtb2RpZnkgcmVsYXRlZCBN
YWtlZmlsZS1zIHRvIHJldGFpbiBzYW1lIGJlaGF2aW9yLg0KPiA+Pj4NCj4gPj4+IFNpZ25lZC1v
ZmYtYnk6IFBlbm55IFpoZW5nIDxQZW5ueS5aaGVuZ0BhbWQuY29tPg0KPiA+Pj4gLS0tDQo+ID4+
PiB2MyAtPiB2NDoNCj4gPj4+IC0gbmV3IGNvbW1pdA0KPiA+Pj4gLS0tDQo+ID4+PiAgdG9vbHMv
ZnV6ei9jcHUtcG9saWN5L01ha2VmaWxlICAgICAgICAgICAgICAgfCAgIDIgKy0NCj4gPj4+ICB0
b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9NYWtlZmlsZSB8ICAxMCArLQ0KPiA+
Pj4gIHRvb2xzL2xpYnMvZ3Vlc3QvTWFrZWZpbGUuY29tbW9uICAgICAgICAgICAgIHwgICAyICst
DQo+ID4+PiAgdG9vbHMvdGVzdHMvY3B1LXBvbGljeS9NYWtlZmlsZSAgICAgICAgICAgICAgfCAg
IDIgKy0NCj4gPj4+ICB0b29scy90ZXN0cy94ODZfZW11bGF0b3IvTWFrZWZpbGUgICAgICAgICAg
ICB8ICAgMiArLQ0KPiA+Pj4gIHhlbi9saWIveDg2L01ha2VmaWxlICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxICsNCj4gPj4+ICB4ZW4vbGliL3g4Ni9jcHVpZC1nZW5lcmljLmMgICAgICAg
ICAgICAgICAgICB8IDI3MyArKysrKysrKysrKysrKysrKysrDQo+ID4+PiAgeGVuL2xpYi94ODYv
Y3B1aWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyNjAgLS0tLS0tLS0tLS0tLS0tLS0t
DQo+ID4+PiAgOCBmaWxlcyBjaGFuZ2VkLCAyODMgaW5zZXJ0aW9ucygrKSwgMjY5IGRlbGV0aW9u
cygtKSAgY3JlYXRlIG1vZGUNCj4gPj4+IDEwMDY0NCB4ZW4vbGliL3g4Ni9jcHVpZC1nZW5lcmlj
LmMNCj4gPj4NCj4gPj4gQW5kcmV3IC0gd2hhdCdzIHlvdXIgdGFrZSBvbiBzdWNoIGEgc3BsaXQ/
IFBlcnNvbmFsbHkgSSdtIG5vdCBvdmVybHkNCj4gPj4gaGFwcHkgdG8gc2VlIHJlbGF0ZWQgZnVu
Y3Rpb25zIGJlIHNjYXR0ZXJlZCBhY3Jvc3MgdHdvIGZpbGVzLiBUaGUNCj4gPj4gc2VwYXJhdGlv
biBhbHNvIGZlZWxzIHByZXR0eSByYW5kb20sIHBvc2luZyB0aGUgcmlzayB0aGF0IGxhdGVyIHNv
bWUgb2YgdGhlIGNvZGUNCj4gbWF5IG5lZWQgdG8gbW92ZSBiYWNrLg0KPiA+Pg0KPiA+DQo+ID4g
UmlnaHQgbm93LCBJIGNvdWxkIG5vdCB0aGluayBhIGJldHRlciB3YXkgdG8gZ3VhcmQNCj4geDg2
X2NwdWlkX2NvcHlfZnJvbXssdG99X2J1ZmZlciB3aXRoIE1HTVRfSFlQRVJDQUxMUyB3aXRob3V0
IHNwbGl0LCBhbnkNCj4gYmV0dGVyIHN1Z2dlc3Rpb24/IE9yIG1heWJlIEkgY291bGQgYWRkIHVw
IHNvbWUgZXhwbGFuYXRpb25zIG9uIHRoZSBmaWxlDQo+IGNwdWlkX2dlbmVyaWMuYyBoZWFkIG5v
dGUgdG8gZXhwbGFpbiB0aGUgZGlmZnMgYmV0d2VlbiBpdHNlbGYgYW5kIGNwdWlkLmMsIHNvbWV0
aGluZw0KPiBsaWtlOg0KPiA+IGBgYA0KPiA+IFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gY3B1aWQu
YyBhbmQgY3B1aWRfZ2VuZXJpYy5jIGlzIHRoYXQgdGhlIGZvcm1lciBjb250YWlucw0KPiBsaWJy
YXJ5IGZ1bmN0aW9ucyB0aGF0IGhhcyBvbmx5IGJlZW4gcmVmZXJlbmNlZCBpbiBtYW5hZ2VtZW50
IGh5cGVyY2FsbHMsIHN1Y2ggYXMNCj4gc3lzY3RsLCBkb21jdGwsIGV0Yy4gU2VlIGNvbW1lbnQg
Zm9yIE1HTVRfSFlQRVJDQUxMUy4NCj4gPiBgYGANCj4NCj4gSWYgb25lIG9mIHRoZSBmaWxlcyBp
cyB0byBoYXZlIG9ubHkgTUdNVF9IWVBFUkNBTExTIHJlbGF0ZWQgc3R1ZmYgKGFuZCBpZiwgcHJp
b3IgdG8NCj4gdGhhdCwgdXNpbmcgI2lmZGVmLWFyeSBpbiB0aGUgZXhpc3RpbmcgZmlsZSB3YXMg
cHJvdmVuIHVud2llbGR5KSwgdGhlbiBpbW8gdGhlIG1vcmUNCj4gIm5hdHVyYWwiIHNwbGl0IHdv
dWxkIGJlIHRvIGhhdmUgYSBzZXBhcmF0ZSBjcHVpZC1tZ210LmMgZmlsZSwgd2hlcmUgdGhlbiBm
cm9tIGl0cw0KPiBuYW1lIGFsb25lIGl0IGFscmVhZHkgYmVjb21lcyBoYWxmd2F5IGNsZWFyIHdo
YXQgaXQgdG8gbGl2ZSB0aGVyZS4NCj4NCj4gQW5vdGhlciBvcHRpb24gbWlnaHQgYmUgdG8gcHJv
cGVybHkgbGlicmFyeS1meSB0aGUgY29weS1pbiBhbmQgY29weS1vdXQgZnVuY3Rpb25zLA0KPiBv
bmUgcGVyIHNvdXJjZSBmaWxlLCBhbmQgdGhlbiByZWZlcmVuY2VkIGJ5IGxpYi15IChvciBsaWIt
JChDT05GSUdfLi4uKSkgZnJvbSB0aGUNCj4gTWFrZWZpbGUuDQo+DQoNClRoeCENCkknZCBwcmVm
ZXIgc2Vjb25kIG9wdGlvbiwgd2UgbmVlZCB0byBsaWJyYXJ5LWZ5IHRoZSBjb3B5LWluLCBjb3B5
LW91dCwgYW5kIHRyaW0tY3B1aWQtbGVhdmVzIGZ1bmN0aW9ucy4gTWF5YmUgaXQgaXMgZnJhZ21l
bnRhdGVkLCBidXQgY291bGQgYXZvaWQgZnV0dXJlIG1vdmVtZW50IGluIG9wdGlvbiBvbmUNCg0K
PiBKYW4NCg==


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 08:11:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 08:11:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176433.1500912 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQhwj-0002ZV-UL; Wed, 03 Dec 2025 08:10:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176433.1500912; Wed, 03 Dec 2025 08:10:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQhwj-0002ZO-RS; Wed, 03 Dec 2025 08:10:45 +0000
Received: by outflank-mailman (input) for mailman id 1176433;
 Wed, 03 Dec 2025 08:10:44 +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
 <SRS0=PcFb=6J=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vQhwi-0002ZI-6J
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 08:10:44 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8de3219c-d01f-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 09:10:40 +0100 (CET)
Received: from DU7P251CA0001.EURP251.PROD.OUTLOOK.COM (2603:10a6:10:551::14)
 by VI0PR08MB10582.eurprd08.prod.outlook.com (2603:10a6:800:20f::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Wed, 3 Dec
 2025 08:10:36 +0000
Received: from DU6PEPF0000B621.eurprd02.prod.outlook.com
 (2603:10a6:10:551:cafe::5) by DU7P251CA0001.outlook.office365.com
 (2603:10a6:10:551::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Wed,
 3 Dec 2025 08:10:36 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU6PEPF0000B621.mail.protection.outlook.com (10.167.8.138) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Wed, 3 Dec 2025 08:10:34 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DBBPR08MB10435.eurprd08.prod.outlook.com (2603:10a6:10:52a::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Wed, 3 Dec
 2025 08:09:29 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d%4]) with mapi id 15.20.9388.003; Wed, 3 Dec 2025
 08:09:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8de3219c-d01f-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=rUB8i9KE0VWVtqkPSEzjte4/scWoXUaFzlAK1qkACVU5ZGUxGL8K+V8TP1OfG1cQJvtTF+6QuFs0e6HeSmyf/9nMMEEvE1eqYsGjaBhEMqTuHF0KQW30nY/VHhN14G3zo2/QXQ97nuqpNUqnlsqkoxdMMkCZchFYKb5cUyctR/X3Cy7/dvwT4HM09hdi7Wc8pK2pS45mgiZ94/YSon6Bs3fQf+iZxlwxcBGK3QlMD4YHMgiOs5Xb+yrMS15qoaAIuDKHxqDthxLeJ1FiH0uj63ZiErKxkQX95THwveQtZPteGV/WYbuROD9vJlmxuxqGQhyZ1+7vQ88TjafTnulLVA==
ARC-Message-Signature: i=2; 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=d78r7dK2BNhBZRSpuf6193+G9CJ2z0umvXCKFdMSYRg=;
 b=LsFNnE02TWv7OUDbgT5Avh/lZWjFwRJJdzJlQV7V8mqMH3kq1sKLZ/FSC9+ljsQ0Ze7YvwytwomBbxTtxJs7pKkL7fjVmUphKjenP1jiM7UTJ4cGZIhVz9SXXr7P2MR99asRbTG7W1TBdLN04fIk5rf15fDQUN7NTUmm+YaV59XpUGFiFjJaGzfqJhOxAgVfocwTCx+N1dXv0xyU1qnS0DKEYz/sNKPKVM5z7PhQBySFDynssQ1cc/2Fmq3De57g0lqDPBEyjqd2554ri6GDjN0NFZHjJHoKnFnye66571Y0P/ryONrnQU9K9uk31rI5zAcLoxf7feSzxE6L/ib+oQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=xen.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=d78r7dK2BNhBZRSpuf6193+G9CJ2z0umvXCKFdMSYRg=;
 b=heGoevEXCuJhOBgZPAP4CDuNU5tw4Vx/pE1vS0vkdoXAup2zwQ6fYKaaDv4Al59A5wBbLt9glLldYW7swtFW+lr0MyQut0gfes4aRlV2OO9pe53MOBcMg+NgJEsFJ7FISor8ka9snxtSIf8byXyLH3yNfL0iciI3uVqwlt0yaXs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=I3QJcPRSjPse0p+Cly8nj+SpXbzTUpFqMuEqvu7GbjX/N32QK+lhUFmqwupnrdyXrcgDjxU+EqYR8t+T0/BgI3t1/yqeCuqJMm28O6ot+7gOWUXUDh7NDZCovw1Yk8mHpRzgNfvAZ1eiXiJdr+i+dBQSitIduoI5FgbAC98+ZM+ulkxNZtFzs9E3seQYKxTnvfGYkuQo+9MKMfm6ljehcRJ//8YNtvKdjFQev7c6PmWCVWLPzkuQKUN3NSl3KUY7zWDRt/6Vgu23Zqd0l56YqgQm6lRlac3fRZmiBOCwha5svlmwhRryMDLHsjbTRS4kEe51IdnLgbFDwNG4yFCoug==
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=d78r7dK2BNhBZRSpuf6193+G9CJ2z0umvXCKFdMSYRg=;
 b=uB9WbJ4KY45skRRbMLrM0vbU5UIYGsTbY+k5OenjfUbW/mUKGSweR8a0NzbxDyFt+QucrfAopRPc9h2T3khGPnFAdfr7ZSIAyLdghm0HUvtFdMGpzZCTmSkt15SWT+Aa0SmnHBHgXJ6pc7qXaYUtzKNwWVTK1hzN5W+v4zdbA06vRaQrwt0sQqmfiQpCLIMYnXxjqy8Kt7TFau7kNyDXauhkI8Qs1V6aONtIaam8a+66zqzQSnJUUfQHtOgmt9dV0VrVWmsn+LjP+fibnxljPb/jwbODyx5cgkK7o2cxiqfG69aGoWLYj/hAn5JuTF1XBEQ/6PwFzt25Pwb/S7F5xw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=d78r7dK2BNhBZRSpuf6193+G9CJ2z0umvXCKFdMSYRg=;
 b=heGoevEXCuJhOBgZPAP4CDuNU5tw4Vx/pE1vS0vkdoXAup2zwQ6fYKaaDv4Al59A5wBbLt9glLldYW7swtFW+lr0MyQut0gfes4aRlV2OO9pe53MOBcMg+NgJEsFJ7FISor8ka9snxtSIf8byXyLH3yNfL0iciI3uVqwlt0yaXs=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Julien Grall <julien@xen.org>
CC: Mykola Kvach <xakep.amatop@gmail.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] xen/arm: irq: Use appropriate priority for SGIs in
 setup_irq()
Thread-Topic: [PATCH] xen/arm: irq: Use appropriate priority for SGIs in
 setup_irq()
Thread-Index: AQHcHH4xsTo+MqBrSUGlzawFWy7VyrSQKKUAgAWFLACAeYuAgIAA5fEA
Date: Wed, 3 Dec 2025 08:09:29 +0000
Message-ID: <8133A491-4245-4376-A00C-D6D98C10A2AC@arm.com>
References:
 <f7475c0083bf4995f2ec4afa3aaf44b9676fd1ab.1756867760.git.mykola_kvach@epam.com>
 <0d0f4689-97e2-408f-91e4-dd59f47bdb95@xen.org>
 <CAGeoDV9zgfyHaHb5W6+T4F9Hjxv_R5wnGkcbwcN2xgRUhY+v2w@mail.gmail.com>
 <b3e97c6a-b93b-424f-a10e-1d3c93afbe35@xen.org>
In-Reply-To: <b3e97c6a-b93b-424f-a10e-1d3c93afbe35@xen.org>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.200.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DBBPR08MB10435:EE_|DU6PEPF0000B621:EE_|VI0PR08MB10582:EE_
X-MS-Office365-Filtering-Correlation-Id: 97b4e6ed-390a-4795-1570-08de32436f8a
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|10070799003|366016|376014|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?Sm9TRGUxSmxHQ0pHWlB0dzBGbUlkL0xhd1l4QlQ2VFpOVTE4VEx3am02OXJr?=
 =?utf-8?B?VFdNdjlCM3JqK3RScHZZMFh5N2hHbTVENUdHQU1ZOXUxN21HV0hsMU5Va0xT?=
 =?utf-8?B?UjIrc2NiSm1aOE43Qjgra2pTcTJYSS81dFBXSkgxUkNCS0ZGNTN1QUlJUUdU?=
 =?utf-8?B?T25xMCszVmVlb2pUOEE4RFFUZ3NydDFkMGR1LzU4TElrRHpBNkE4VEg5QVlx?=
 =?utf-8?B?Z1J6WTNIR1R0VW5vbzE4YXRLZU1uRDNPcEdsT3hGeHIvcHNQNkd3RlVjN1Iy?=
 =?utf-8?B?a1RFdWtxWUhRdUtNSkpQUVRPeXRaODArazBlN2lSSmxkT29GUy9wb1JESW5C?=
 =?utf-8?B?ZlZ6b1BUbnI2Nm83SjEzZVAzTzRGN0QxQTlqdzQzeExpaVY4ZXozaXJFdFpl?=
 =?utf-8?B?cVUyS1F1WmMxbDIwY3ptM2hoM2JMU1VIWFZSV0VYaUFLUjBUTC9nY0d5T1ZY?=
 =?utf-8?B?OGNQcEdyTVkrNXNic3Y1NzFFOE1wbkR0ak9tV3hzRm44NkxxaktDYWIxT29y?=
 =?utf-8?B?UUV0OEVMM3lGRmNHWFcrVG91Y0tZT2svWlVhWURHNzRSVDNRNlhNN2VGVjFE?=
 =?utf-8?B?WlhuY1J1WE5BcVlNd25LQjFLak1ocDdPVFVhSmFUM3lBMzFtSEVBSEVxckVq?=
 =?utf-8?B?bFRNQXBGRjVOYzVRWDVDRTBiNjJjVDhqMkVSL3U0dnROZlNBVXhITzNzYThY?=
 =?utf-8?B?bHJ5ODI1amhjNlk2cUIyQ24ybEpHQ2U2VGxQK21vc1dsWTl4ZUtIOWExUGQ3?=
 =?utf-8?B?aFZXNHhiWFVqZjVxTEhJY0Q5TTJ3bHZUMGhRd0c5dW1WU0tYTDVyb21LM0NS?=
 =?utf-8?B?VFNPRW5TQWpJWlVmczB0NSsxVXhhUFlhVy9xalFMLzcxbngvZiswRWw1ekdw?=
 =?utf-8?B?VVNwbDhHSlBnbDM2VzNxM28zZXg1ekhJTGNKSmFxeDNaa0FPSEZMMDNKWG9o?=
 =?utf-8?B?RkMrRnpjbUNjR0RQNmVUbDJUd0lUa0FTMm1LZlQ3UjFOZXpZUERyZVN4aXF6?=
 =?utf-8?B?bWdnQ3VlQkltY0h0emZRQ0tOZTJSc2tmZnl4WVRSbjRFNlE0RmRLc2prSldU?=
 =?utf-8?B?VVZvWklLNXd4TnJjNzI4UDZ0WGZwK2JZaTNQVjhaOXBDcHc0bFc0Z0xJVlhS?=
 =?utf-8?B?N3ovOElaL2M4RlU5WnZpRXZIU3FRb003OUJEYk5VUGNPRmUyNEFLenJwY0c3?=
 =?utf-8?B?eU16ZGJuQ2Q4MGVxRGYyMHFBMFhHbnJhSngyQ05ySzNsVFM3WUtNTy9nb1Y4?=
 =?utf-8?B?Zm5keWRqYjhWVE0yNGhQc1VGYkJyY0g0RkdEREd4MHk2YXV0elNNMzNuSUZJ?=
 =?utf-8?B?V0dvbVArSjNOQmV6OFpYZUhqQUY0Z2FYanhEd3Q4ZzdqbjJxOXV1Mjd1WjRZ?=
 =?utf-8?B?NWhoSmlISHM1SlZNY0V0c0NYT3pCREdOQ01HZmxOQ3M4bXpJTTNDcVhaa0dI?=
 =?utf-8?B?a1R4R1IrbHVnL0lxdmh5NGIrZ3FHa3BWWXpxcjFEZ0VRcFlLRXh2WDB2MW93?=
 =?utf-8?B?Z0ZoeURFSjk2Zm9ZamwyZ1l3VXBWdWpVU1ZlcWVJRkJOaUVYRGZTZ2ZsMnho?=
 =?utf-8?B?dHVTU3h6c0FhODBVdFVKUzMwREd6TEdPc2gyczY0bFRzYVFuM3BHMkI0aFNj?=
 =?utf-8?B?MFpLYWx5QkczcmpjNXRZTnBqeWs0VGpUK2E2Y0V3NWVDMjJ2SVpFV1I4OWFW?=
 =?utf-8?B?Q3lmYXBMMkxQa2ZkMWdJclY3Tms1YWl2cStPMUdLRE5nWFkwMnBWdk1sZXBj?=
 =?utf-8?B?NmxuR090cUZERTluaGJxSm5NM1o4dXZ4QVhKNk9xQ1FHdmRKM3RxVldDNTAz?=
 =?utf-8?B?N2ZuNnFGcVF0OXJZQWNnYXpmaEVxQWJGb2NqZ2EveXZEaE41eUp3V3dPeUhk?=
 =?utf-8?B?U1IwbGVqUE9aaXo0Z3RudjJVZlVIU3Q5S2VHTllHNWZpT3c0UXhCMnBBUG9a?=
 =?utf-8?B?YzgrQjZ6Y1hHS3ZGVmtJLzJPSVltWjlmNHcyaG9EQk5FR1J5NURGWlliZHRX?=
 =?utf-8?B?NVFyZ2tPWVpJQWlRSzZuYlhnZVVZVzB4QWY0ZnR6UHpJSWlRMmdkdy9lM0Rm?=
 =?utf-8?Q?RuuZPE?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <CFEF53C94A092844B571B331A0525392@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB10435
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF0000B621.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	461dbcad-a84b-4c12-9e4d-08de32434860
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|35042699022|376014|36860700013|14060799003|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WUdhS04vaG5yUkVOQWhXYjVuaUdRR1E5TzdzQ1NtSGNwbFBDWFFzTm0zODRM?=
 =?utf-8?B?Mmo2cytLMXdrbmpVWkJNLytZRk5oRWRWUVhaeHJudjIzcFZhVDEyM1pOUWYy?=
 =?utf-8?B?YU9RMlpZY01LbXJ4TE9vanBvb0dVVlkvdUdJQWtmTUtNRWxvNGFVQmx3WTV3?=
 =?utf-8?B?Z2pDb2hGamRIU3p3Ymd0K1NDVHgvZFhxUFhBZS9SWm1SQXZaUHNCVzcyMHhm?=
 =?utf-8?B?aE9lZ2tFNHNPUnBNTDhOWGRYbjNUNHFWamhmdElxWXc5ano4QTdtZElKWEox?=
 =?utf-8?B?ZVliU1B1YnRGMnk3d1lwNDlzV3l0a1A5c1AvNjVtclhkRHlaL2xCTUJEc2ZE?=
 =?utf-8?B?d01ZSUFRSTliMUtkclZUYnZBamxZZFQvd1hidEtQc1ZIL0RsME1iMGtucGNx?=
 =?utf-8?B?RlJmWWMrWHhzNTV4cTlMS0dCanZNQnFDcC90eFpaL1hlYitTOC9kVW8xeExs?=
 =?utf-8?B?UXpuSTQvZWtqTGNBSlBmdUZONzA1NGJ4Rzg3MkhOd3h1U3NhVjdJWnltKzlL?=
 =?utf-8?B?aXk0N1kzZXNYL1hiQkltTFQzeklDMkFPZE5sb2NkQnBuaXIwUnZnZjVHeWNO?=
 =?utf-8?B?QlNPYlVtSkpXY2dCRSt5MC9HRjNCbzIvaE03YWgrZnJ4Z3NaNHNZVXlvcDdw?=
 =?utf-8?B?dGFuK1VBV2NQVjZHdWt2dndMUVJ3dXlybjVNV2N6RmZlLzF4NDVQV3FYMHgx?=
 =?utf-8?B?MFZIalMzWWdSd2l0NktRNDQwY1FKaTRGK2gwMkQwOWovMmZLTHd2dE5vNFFx?=
 =?utf-8?B?OGdIbXV0Z0Z3cVFiN3dSMGFZdEJuTllzalA3aWRMZ1dmNkFNdWFYOFBXNFFI?=
 =?utf-8?B?TUFUZWRqeUNHdktrdUQvY2F5dGJOeE5MZ2hoaUNxYlZrSUthWmNDSDNKZExp?=
 =?utf-8?B?cXIzcXFRRHhVQjhkbXM5Y3FYaHpOYm95cFhYeXBHOW9RT1N3WXM4QUl3MWto?=
 =?utf-8?B?dGp5TDFiaE5OVFdoRXVndHlCNXJXeXNDSitsaDBjVXAvdWZDcVV0YTBKWE1P?=
 =?utf-8?B?YUsxU053U25mQW4wOGp6TEYzN04rQzRZYmxlNlVRNVNGSmxoaER1RmpvYUoy?=
 =?utf-8?B?SVpaNmdOOGNnM0xyeDFKVkVndnBBU1RTTzUwWUlwaUVSbFpoNk5uUmlIV0Rx?=
 =?utf-8?B?Z1U2a3NFR05ZenVKa1NPWUFqQUhWeHhzV0JBZFNRckp1VnAzUWF1N3JDcXlM?=
 =?utf-8?B?ZW1NT3lLWm93MnBTLzRRVFkwckRESituSW5rajVZMUFCTUxuL01SZW9YZDJp?=
 =?utf-8?B?U3BkdXVCenJmeGZOYTNlaW5xeE96WGdzZVVrc1A4OHNlL0xHTVdYbHVsWXI1?=
 =?utf-8?B?cTFmNUFvRTlDMVZ4Q2JKaHllRituQmt6b2R2cVU1YmI2ZXZLZVNEMmZYV0xS?=
 =?utf-8?B?ZGw3ZXJIVXJvMkl3R0lmeUdpM1BhZkd6WCtJRXZyMGJIcytlVU9URE43TkJN?=
 =?utf-8?B?b3BKemkxOW1BelYxTVlGVXlZYWdldFJySFk2TVZpNk1UTXhvU1BIYjh4TUlh?=
 =?utf-8?B?WE9Ua0pXMGNaSTg2Y2hVQnV1TUczVHlwTkNWL2xqWTBUU1ZQdG9oSHhqQUdh?=
 =?utf-8?B?Vy9tKzNkcFVqMUNPR1M5aGVuVjVweFlFY0dxUXNQaU1EWCtzdnBZVFpBcU5v?=
 =?utf-8?B?bGM3cDZlRDVvQmdtVHFSZjdGUFNmczhKU3V4Y00rRko3alI2QTJaaTIwenJt?=
 =?utf-8?B?cXl5QjBiR2U0aWJyZWhSYUxPckVaL25rQldJcG9OTkQ4VXNlY2hIZ1RPQUFM?=
 =?utf-8?B?QzJEb3hDY1FQZW9XUnh2N3hFc2FDd0prZXVSU2tLTlJWVkFIZEJMSVB2S3FH?=
 =?utf-8?B?aWhsVklGampoSzU4a3pFUFlxSnNVS3AzaXdWdTRKcVBPbVpnV2MyOXV0amZm?=
 =?utf-8?B?RTVZbldSNkQya1hMYW94eUs4OW43U2dlV2JUZGx1Vm5GMXkxa2JMeU5pU25W?=
 =?utf-8?B?UjdvWnZrL3NyVlE2WnBKM0FiZmoxU1JyUVVtSFp6MlJwT0dOVGZid2lxZEVs?=
 =?utf-8?B?Ny9IdUxlYzljTlNzRlZ3ZWROWjRuTWxZcTJmb2N5Y1N0TkVQRnRCa2svR3ZS?=
 =?utf-8?B?WDRza3hlNFhLZWNCQXlvVlkwVW5JVVQwU0xLdFRzdEhPM1NkcHZOVG5YK1Nl?=
 =?utf-8?Q?cIK0=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(35042699022)(376014)(36860700013)(14060799003)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2025 08:10:34.7634
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 97b4e6ed-390a-4795-1570-08de32436f8a
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU6PEPF0000B621.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB10582

SGkgSnVsaWVuL015a29sYSwNCg0KPiBPbiAyIERlYyAyMDI1LCBhdCAxOToyNiwgSnVsaWVuIEdy
YWxsIDxqdWxpZW5AeGVuLm9yZz4gd3JvdGU6DQo+IA0KPiBIaSwNCj4gDQo+IFNvcnJ5IGZvciB0
aGUgbGF0ZSBhbnN3ZXIuDQo+IA0KPiBPbiAxNi8wOS8yMDI1IDExOjE5LCBNeWtvbGEgS3ZhY2gg
d3JvdGU6DQo+PiBPbiBTYXQsIFNlcCAxMywgMjAyNSBhdCAxOjAx4oCvQU0gSnVsaWVuIEdyYWxs
IDxqdWxpZW5AeGVuLm9yZz4gd3JvdGU6DQo+Pj4+IFNpZ25lZC1vZmYtYnk6IE15a29sYSBLdmFj
aCA8bXlrb2xhX2t2YWNoQGVwYW0uY29tPg0KPj4+PiAtLS0NCj4+Pj4gICB4ZW4vYXJjaC9hcm0v
aXJxLmMgfCA4ICsrKysrKystDQo+Pj4+ICAgMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygr
KSwgMSBkZWxldGlvbigtKQ0KPj4+PiANCj4+Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9p
cnEuYyBiL3hlbi9hcmNoL2FybS9pcnEuYw0KPj4+PiBpbmRleCAwMmNhODJjMDg5Li4xN2M3YWM5
MmI1IDEwMDY0NA0KPj4+PiAtLS0gYS94ZW4vYXJjaC9hcm0vaXJxLmMNCj4+Pj4gKysrIGIveGVu
L2FyY2gvYXJtL2lycS5jDQo+Pj4+IEBAIC0zOTcsNyArMzk3LDEzIEBAIGludCBzZXR1cF9pcnEo
dW5zaWduZWQgaW50IGlycSwgdW5zaWduZWQgaW50IGlycWZsYWdzLCBzdHJ1Y3QgaXJxYWN0aW9u
ICpuZXcpDQo+Pj4gQUZBSUssIHdlIGFyZSBub3QgdXNpbmcgc2V0dXBfaXJxKCkgdG8gaGFuZGxl
IFNHSXMgYmVjYXVzZSB0aGV5IGFyZSBhbGwNCj4+PiBzdGF0aWMgYW5kIGFsd2F5cyBlbmFibGVk
LiBBcmUgeW91IHBsYW5uaW5nIHRvIGhhbmRsZSBkeW5hbWljIFNHSXM/IElmDQo+Pj4geWVzLCB0
aGVuIGNhbiB5b3UgcHJvdmlkZSBtb3JlIGRldGFpbHM/QXMgZmFyIGFzIEkga25vdywgdGhlcmUg
Y2FuIGJlIGF0IGxlYXN0IG9uZSDigJxkeW5hbWlj4oCdIFNHSSBpbiBYZW4uDQo+PiBBcyBmYXIg
YXMgSSBrbm93LCB0aGVyZSBpcyBhdCBsZWFzdCBvbmUg4oCcZHluYW1pY+KAnSBTR0kgaW4gWGVu
LiBGb3INCj4+IGV4YW1wbGUsIHNlZSBmZmFfbm90aWYuYyBpbiB0aGUgZnVuY3Rpb25zIGZmYV9u
b3RpZl9pbml0X2ludGVycnVwdA0KPj4gYW5kIGZmYV9ub3RpZl9pbml0LCB3aGljaCBoYW5kbGUg
aW5pdGlhbGl6YXRpb24gb2Ygc3VjaCBTR0lzLg0KPiANCj4gQmVydHJhbmQgY2FuIHlvdSBjb21t
ZW50IG9uIHRoaXM/IEluIHBhcnRpY3VsYXIsIGRvIHdlIHdhbnQgdGhlIEZGQSBTR0lzIHRvIGhh
dmUgdGhlIHByaW9yaXR5IG9mIHRoZSBpbnRlcm5hbCBvbmVzPw0KDQpUaGUgZm9sbG93aW5nIGlz
IG9ubHkgYW4gYWR2aWNlLCBkZWZpbml0ZWx5IG5vdCBhIHJlcXVpcmVtZW50LiBJIHdvdWxkDQpi
ZSBvayB0byBhY2sgdGhlIGN1cnJlbnQgd2F5IHRvIGRvIHRoaW5ncyBhcyByaWdodCBub3cgRkYt
QSBpcyB1bnN1cHBvcnRlZCBhbmQNCmlzIHRoZSBvbmx5IGNhc2Ugb2YgdXNhZ2Ugb2YgZHluYW1p
YyBTR0kuDQpJIHdvdWxkIHRob3VnaCByZXF1aXJlIHRvIGhhdmUgYSBsb2cgbWVzc2FnZSB0byB3
YXJuIHRoZSB1c2VyIHRoYXQgU0dJIHh4DQpoYXMgdGhlIHNhbWUgcHJpb3JpdHkgYXMgeGVuIGlu
dGVybmFsIGludGVycnVwdHMgZHVyaW5nIHJlcXVlc3RfaXJxLg0KDQpIZXJlIGlzIHdoYXQgSSB0
aGluazoNCg0KRkZBIFNHSXMgY2FuIG9ubHkgYmUgZ2VuZXJhdGVkIGJ5IHRoZSBzZWN1cmUgd29y
bGQgYW5kIGluIHByYWN0aWNlIHRoZXkgd2lsbA0KYmUgZ2VuZXJhdGVkIG1vc3RseSB3aGVuIGNv
bWluZyBjb21pbmcgYmFjayBmcm9tIHRoZSBzZWN1cmUgd29ybGQgKGVpdGhlcg0KYWZ0ZXIgYSBw
cmVlbXB0aW9uIG9yIG9uIGEgcmV0dXJuIHRvIGFuIHNtYyBjYWxsKSBidXQgb25lIGNvdWxkIGFs
c28gYmUNCmdlbmVyYXRlZCBmcm9tIHRoZSBzZWN1cmUgd29ybGQgZnJvbSBhbm90aGVyIGNvcmUs
IHByZWVtcHRpbmcgd2hhdGV2ZXIgcnVucw0KKGJ1dCBzYW1lIHdvdWxkIG9jY3VyIHdoZW4gYW4g
aW50ZXJydXB0IGlzIGRpcmVjdGx5IGhhbmRsZWQgaW4gdGhlIHNlY3VyZSB3b3JsZCkuDQoNCkxp
bnV4IGtlcm5lbCBpbXBsZW1lbnRhdGlvbiBpcyBub3QgbG93ZXJpbmcgdGhlIEZGLUEgU0dJIGlu
dGVycnVwdCBhcyBmYXIgYXMgSSBrbm93Lg0KDQpJbiBteSB2aWV3IGhhdmluZyB0aGUgRkZBIFNH
SSBoYXZpbmcgdGhlIHNhbWUgcHJpb3JpdHkgYXMgZmZhIGludGVybmFsIFNHSSB3b3VsZCBtZWFu
DQp3ZSBoYXZlIHNvbWUgdHJ1c3QgdGhhdCB0aGUgc2VjdXJlIHdvcmxkIHdpbGwgbm90IG92ZXJs
b2FkIHVzLg0KDQpCdXQgaW4gcmVhbGl0eSBpdCB3b3VsZCBtYWtlIHNlbnNlIHRvIGhhdmUgYSBw
cmlvcml0eSBvcmRlcmluZyBsaWtlOg0KLSBYZW4gaW50ZXJuYWwgU0dJcw0KLSBGRi1BIFNHSSAo
b3IgYW55IG90aGVyIGR5bmFtaWMgU0dJKQ0KLSBhbnkgb3RoZXIga2luZCBvZiBpbnRlcnJ1cHQg
DQoNClNvIHRoYXQgWGVuIGludGVybmFsIFNHSXMgaGF2ZSB0aGUgaGlnaGVzdCBwcmlvcml0eSwg
YnV0IGhhdmluZyBvdGhlciBTR0lzIHN0aWxsIGhhdmluZw0KYSBiZXR0ZXIgcHJpb3JpdHkgdGhh
biBvdGhlciBpbnRlcnJ1cHRzLg0KDQpJbiBhbnkgY2FzZSwgd2hhdGV2ZXIgd2UgZG8sIHdlIHNo
b3VsZCBrZWVwIGl0IHBvc3NpYmxlIHRvIGhhdmUgb25lIHNwZWNpZmljIGR5bmFtaWMNClNHSSBh
dCB0aGUgbWF4aW11bSBsZXZlbCBvciBldmVuIGF0IGFuIGhpZ2hlciBsZXZlbCAoaWUgbG93ZXIg
ZG93biB4ZW4gaW50ZXJuYWwgU0dJcykNCmZvciBzcGVjaWZpYyB1c2UgY2FzZXMgKGhhbmRsaW5n
IGhhcmR3YXJlIGVycm9ycyBjb21lcyB0byBtaW5kKSBidXQgdGhpcyBpcyBvayB0byBtYWtlDQp0
aGlzIHBvc3NpYmxlIG9ubHkgYnkgY2hhbmdpbmcgeGVuIGNvZGUgb3Igd2hlbiBjcmVhdGluZyBz
dWNoIGEgc3BlY2lmaWMgZHJpdmVyLg0KDQpDaGVlcnMNCkJlcnRyYW5kDQoNCg==


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 08:20:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 08:20:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176447.1500922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQi5r-0004Ew-SP; Wed, 03 Dec 2025 08:20:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176447.1500922; Wed, 03 Dec 2025 08:20:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQi5r-0004Ep-Os; Wed, 03 Dec 2025 08:20:11 +0000
Received: by outflank-mailman (input) for mailman id 1176447;
 Wed, 03 Dec 2025 08:20:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cBBS=6J=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vQi5q-0004Eh-8E
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 08:20:10 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id e0a58641-d020-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 09:20:08 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 7AC81339;
 Wed,  3 Dec 2025 00:19:59 -0800 (PST)
Received: from [10.57.45.92] (unknown [10.57.45.92])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 199493F73B;
 Wed,  3 Dec 2025 00:19:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e0a58641-d020-11f0-980a-7dc792cee155
Message-ID: <eb6fac72-a813-4b01-bbd7-f3961894bf53@arm.com>
Date: Wed, 3 Dec 2025 09:19:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 05/12] mm: introduce CONFIG_ARCH_HAS_LAZY_MMU_MODE
To: Anshuman Khandual <anshuman.khandual@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-6-kevin.brodsky@arm.com>
 <8d9ed1f1-77da-45af-85b5-78a5da66f1cc@arm.com>
From: Kevin Brodsky <kevin.brodsky@arm.com>
Content-Language: en-GB
In-Reply-To: <8d9ed1f1-77da-45af-85b5-78a5da66f1cc@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01/12/2025 07:21, Anshuman Khandual wrote:
>> +config ARCH_HAS_LAZY_MMU_MODE
>> +	bool
>> +
> Might be worth adding a help description for the new config option.

Sure, would be an occasion to clarify which functions an arch needs to
define.

- Kevin


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 08:20:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 08:20:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176453.1500932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQi6T-0004jL-4c; Wed, 03 Dec 2025 08:20:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176453.1500932; Wed, 03 Dec 2025 08:20:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQi6T-0004jE-1S; Wed, 03 Dec 2025 08:20:49 +0000
Received: by outflank-mailman (input) for mailman id 1176453;
 Wed, 03 Dec 2025 08:20:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cBBS=6J=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vQi6R-0004Eh-Q9
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 08:20:47 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id f796d87d-d020-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 09:20:46 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 1B547339;
 Wed,  3 Dec 2025 00:20:38 -0800 (PST)
Received: from [10.57.45.92] (unknown [10.57.45.92])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 49CE33F73B;
 Wed,  3 Dec 2025 00:20:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f796d87d-d020-11f0-980a-7dc792cee155
Message-ID: <51339cdd-3c73-433c-abf7-24553e0fbd6b@arm.com>
Date: Wed, 3 Dec 2025 09:20:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 06/12] mm: introduce generic lazy_mmu helpers
To: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-7-kevin.brodsky@arm.com>
 <07ffb66d-1e74-4634-bccb-75575b3862af-agordeev@linux.ibm.com>
From: Kevin Brodsky <kevin.brodsky@arm.com>
Content-Language: en-GB
In-Reply-To: <07ffb66d-1e74-4634-bccb-75575b3862af-agordeev@linux.ibm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28/11/2025 14:50, Alexander Gordeev wrote:
> Would it make sense to explicitly describe the policy wrt sleeping while
> in lazy MMU mode? If I understand the conclusion of conversation right:
>
> * An arch implementation may disable preemption, but then it is arch
>   responsibility not to call any arch-specific code that might sleep;
> * As result, while in lazy MMU mode the generic code should never
>   call a code that might sleep;

I think that's a good summary, and I agree that the second point is not
obvious from the comment in <linux/pgtable.h>. This series it not making
any change in that respect, but I'll add a clarification in this patch
(or a separate patch).

- Kevin


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 08:21:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 08:21:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176459.1500942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQi6q-0005AH-BD; Wed, 03 Dec 2025 08:21:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176459.1500942; Wed, 03 Dec 2025 08:21:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQi6q-0005AA-8K; Wed, 03 Dec 2025 08:21:12 +0000
Received: by outflank-mailman (input) for mailman id 1176459;
 Wed, 03 Dec 2025 08:21:10 +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
 <SRS0=cBBS=6J=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vQi6o-00059d-9e
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 08:21:10 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 051db88f-d021-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 09:21:09 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id CDA3E1477;
 Wed,  3 Dec 2025 00:21:00 -0800 (PST)
Received: from [10.57.45.92] (unknown [10.57.45.92])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 23FCA3F73B;
 Wed,  3 Dec 2025 00:20:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 051db88f-d021-11f0-9d1a-b5c5bf9af7f9
Message-ID: <703cbee6-a813-4970-9232-34ee91ed8961@arm.com>
Date: Wed, 3 Dec 2025 09:20:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 08/12] mm: enable lazy_mmu sections to nest
To: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-9-kevin.brodsky@arm.com>
 <23dcf752-0b75-45a7-84f8-25bddf97af08-agordeev@linux.ibm.com>
From: Kevin Brodsky <kevin.brodsky@arm.com>
Content-Language: en-GB
In-Reply-To: <23dcf752-0b75-45a7-84f8-25bddf97af08-agordeev@linux.ibm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28/11/2025 14:55, Alexander Gordeev wrote:
>> + * in_lazy_mmu_mode() can be used to check whether the lazy MMU mode is
>> + * currently enabled.
> The in_lazy_mmu_mode() name looks ambiguous to me. When the lazy MMU mode
> is paused are we still in lazy MMU mode? The __task_lazy_mmu_mode_active()
> implementation suggests we are not, while one could still assume we are,
> just paused.
>
> Should in_lazy_mmu_mode() be named e.g. as in_active_lazy_mmu_mode() such
> a confusion would not occur in the first place.

I see your point, how about is_lazy_mmu_mode_active()?

- Kevin


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 08:21:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 08:21:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176463.1500952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQi6v-0005QZ-I1; Wed, 03 Dec 2025 08:21:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176463.1500952; Wed, 03 Dec 2025 08:21:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQi6v-0005QR-F0; Wed, 03 Dec 2025 08:21:17 +0000
Received: by outflank-mailman (input) for mailman id 1176463;
 Wed, 03 Dec 2025 08:21:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Qm2A=6J=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vQi6u-0004Eh-Pj
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 08:21:16 +0000
Received: from mail-oo1-xc2c.google.com (mail-oo1-xc2c.google.com
 [2607:f8b0:4864:20::c2c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 03307dda-d021-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 09:21:06 +0100 (CET)
Received: by mail-oo1-xc2c.google.com with SMTP id
 006d021491bc7-65962c714eeso419031eaf.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 00:21:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 03307dda-d021-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764750065; x=1765354865; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8N0YgyFKdSngXQfHGPmBwD03gL16SL5yPxUgUvFtSKg=;
        b=qX2lH8vVdr3GeikBXW4sI1KIbj2b1oWYmPgh5yyJqYQSynAznbz2GueZOKAv5lULkb
         xVzLk5ik9JqHft3mLpXHTByuNFF8oTqnu+DDzZ8uglJT2oEg7ujl4AwjA9v3mZ7v8Hlz
         oUXGSSc5nGXc/oIZ4qsEEtzlTjV6NhZDFt/DD2SnQaUtEUjIuYLvZ+l8IZo8bWAqPe/X
         2kcEU99aT8YbseaGkWF4ZdNYz+qkcxbqi9QDpbRxYOmpo8o8zL18Ez+pUnmiiVbRf7nO
         Kwy9eAeQDRIJlt1p5X8EZQRDKmIQaZvm4gcsrUJ3NezbHDDaCCYoWbsJPwGQer2vXOpM
         vBfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764750065; x=1765354865;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=8N0YgyFKdSngXQfHGPmBwD03gL16SL5yPxUgUvFtSKg=;
        b=aJGEccFXaKYIvM1hZueb2bACsS/z8VOFSEd6yHmrR3mEEsXuIsXsTwDcvgoY8GTX73
         19z/7qHgkeXDC64g9ziE+GfCW7WBZjZrSP2puYBAwukAmYFbFGax7TFDFv2Kgk38VaoS
         n2zZNq60XuKX7AoVCIxLIOU1M7N7wiytqMCge/rT9tSjUv9A3Cx83T3pxPSIVS83RUZB
         XGPVAEPNzD/O0B6SovzQYIE0y0s3BOw/lgVkxfFhabth5aRosibshMCDLx2ziTN9+EVW
         EM5iB28bE9eY7Ju53xUt+dTutknVWZ2BOVE8CEXMvlOMlp44MysjAa6tjn+6i/79VKUh
         3EFQ==
X-Gm-Message-State: AOJu0YwOClg14gTOuPWSo1YjRxGjsTzXAV9wtkOY6GizxECAnQxXOaE4
	J3QxMQnwhBcQrQIKHAMxTPwkduVBc5sHJ1UqLKxeAJovwXdJZxuW4vNd1MyoKXnXYkwJVqlTAKY
	t93sB2LgPCx7eDWlmoZ+uAWAkCCoKONTsO75U70eQfA==
X-Gm-Gg: ASbGncvYK9iqx7GWYkY0LyRKtZ45YdiYlWH2fjypnHQ2lW6z9E6lF3N1mZ6vByfwEMY
	nzs+f8pIE4nLJ3NbQei7V249k4hT2SBS38jwL8WPArL3CI+bF10Jpq7wRWvba/xyeor/nqKVjUi
	Z+a+tPBtj9PTANMxitIbvVjoQJRq05IALdmFoKXeRXEfpFo3xUO0qdpU0IP2/nG98RLnw75iZyH
	x3de+eBJAgzrCZt1yvBAje4QiduSHkW+MGSjpMlYXPXonTVdJI8ViHtU0KyZ48QN/5pPCUis917
	0bED3hpGL72qqQmvnlONtsH5Xw==
X-Google-Smtp-Source: AGHT+IFJQ8PJKluLvDrX5br9DlFOy9pR/2tzVPh0zb3flF2drXM/2oyqegMLr3WVVrXKHNklD8dQHViugjkZZliBM5o=
X-Received: by 2002:a05:6820:30f:b0:657:182a:a5e2 with SMTP id
 006d021491bc7-65966caea70mr2077267eaf.4.1764750064755; Wed, 03 Dec 2025
 00:21:04 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764254975.git.bertrand.marquis@arm.com>
 <5e66b2991340f010befcaa3a57d0f35ad18d4149.1764254975.git.bertrand.marquis@arm.com>
 <CAHUa44E1SnhBR8=ibG+r6QPN9hehcRVPa93zKpYd756OHza+=A@mail.gmail.com> <BBA18875-32B0-4CAE-91B3-160DBD1B3BB8@arm.com>
In-Reply-To: <BBA18875-32B0-4CAE-91B3-160DBD1B3BB8@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 3 Dec 2025 09:20:53 +0100
X-Gm-Features: AWmQ_bnCzIK1lMsusdan31d70d_Y8QvRtUxri0gam-BE64OPdJCq-vatgqoXSN4
Message-ID: <CAHUa44Fhk=thuwPuSC3V35p8c31OVRcerC4xxLca_ob2FPyd1g@mail.gmail.com>
Subject: Re: [PATCH 02/10] xen/arm: ffa: per-VM FFA_VERSION negotiation state
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi,

On Tue, Dec 2, 2025 at 5:26=E2=80=AFPM Bertrand Marquis
<Bertrand.Marquis@arm.com> wrote:
>
> Hi Jens,
>
> > On 2 Dec 2025, at 12:33, Jens Wiklander <jens.wiklander@linaro.org> wro=
te:
> >
> > Hi Bertrand,
> >
> >
> > On Thu, Nov 27, 2025 at 4:52=E2=80=AFPM Bertrand Marquis
> > <bertrand.marquis@arm.com> wrote:
> >>
> >> Track FF-A version negotiation per VM and enforce that no FF-A ABI
> >> (other than FFA_VERSION) is processed before a guest has selected a
> >> version.
> >>
> >> Each ffa_ctx gains a dedicated guest_vers_lock, a negotiated version
> >> (guest_vers) and a guest_vers_negotiated flag. guest_vers records the
> >> version requested by the guest so the mediator can provide data
> >> structures compatible with older minor versions. The value returned to
> >> the guest by FFA_VERSION is always FFA_MY_VERSION, the implementation
> >> version, as required by FF-A.
> >>
> >> FFA_VERSION may be issued multiple times. Negotiation becomes final
> >> only when a non-FFA_VERSION ABI is invoked, in accordance with the
> >> FF-A requirement that the version cannot change once any other ABI has
> >> been used. Before this point, non-FFA_VERSION ABIs are rejected if no
> >> valid version has been provided.
> >>
> >> Once negotiation completes, the context is added to the global FF-A
> >> VM list (when VM-to-VM is enabled) and the version may not be modified
> >> for the lifetime of the VM. All VM-to-VM paths and teardown logic are
> >> updated to use the guest_vers_negotiated flag.
> >>
> >> This prevents partially initialised contexts from using the mediator
> >> and complies with the FF-A 1.2 FFA_VERSION semantics.
> >>
> >> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> >> ---
> >> xen/arch/arm/tee/ffa.c         | 115 +++++++++++++++++++++++++--------
> >> xen/arch/arm/tee/ffa_msg.c     |   2 +-
> >> xen/arch/arm/tee/ffa_private.h |  21 ++++--
> >> 3 files changed, 104 insertions(+), 34 deletions(-)
> >>
> >> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> >> index 2b4e24750d52..3309ca875ec4 100644
> >> --- a/xen/arch/arm/tee/ffa.c
> >> +++ b/xen/arch/arm/tee/ffa.c
> >> @@ -158,40 +158,89 @@ static bool ffa_abi_supported(uint32_t id)
> >>     return !ffa_simple_call(FFA_FEATURES, id, 0, 0, 0);
> >> }
> >>
> >> -static void handle_version(struct cpu_user_regs *regs)
> >> +static bool ffa_negotiate_version(struct cpu_user_regs *regs)
> >> {
> >>     struct domain *d =3D current->domain;
> >>     struct ffa_ctx *ctx =3D d->arch.tee;
> >> -    uint32_t vers =3D get_user_reg(regs, 1);
> >> -    uint32_t old_vers;
> >> +    uint32_t fid =3D get_user_reg(regs, 0);
> >> +    uint32_t in_vers =3D get_user_reg(regs, 1);
> >> +    uint32_t out_vers =3D FFA_MY_VERSION;
> >>
> >> -    /*
> >> -     * Guest will use the version it requested if it is our major and=
 minor
> >> -     * lower or equals to ours. If the minor is greater, our version =
will be
> >> -     * used.
> >> -     * In any case return our version to the caller.
> >> -     */
> >> -    if ( FFA_VERSION_MAJOR(vers) =3D=3D FFA_MY_VERSION_MAJOR )
> >> -    {
> >> -        spin_lock(&ctx->lock);
> >> -        old_vers =3D ctx->guest_vers;
> >> +    spin_lock(&ctx->guest_vers_lock);
> >>
> >> -        if ( FFA_VERSION_MINOR(vers) > FFA_MY_VERSION_MINOR )
> >> -            ctx->guest_vers =3D FFA_MY_VERSION;
> >> -        else
> >> -            ctx->guest_vers =3D vers;
> >> -        spin_unlock(&ctx->lock);
> >> +    /* Handle FFA_VERSION races from different vCPUs. */
> >> +    if ( ctx->guest_vers_negotiated )
> >> +        goto out_continue;
> >>
> >> -        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !old_vers )
> >> +    if ( fid !=3D FFA_VERSION )
> >> +    {
> >> +        if ( !ctx->guest_vers )
> >>         {
> >> -            /* One more VM with FF-A support available */
> >> -            inc_ffa_vm_count();
> >> -            write_lock(&ffa_ctx_list_rwlock);
> >> -            list_add_tail(&ctx->ctx_list, &ffa_ctx_head);
> >> -            write_unlock(&ffa_ctx_list_rwlock);
> >> +            out_vers =3D 0;
> >> +            goto out_handled;
> >>         }
> >> +
> >> +        /*
> >> +         * A successful FFA_VERSION call does not freeze negotiation.=
 Guests
> >> +         * are allowed to issue multiple FFA_VERSION attempts (e.g. p=
robing
> >> +         * several minor versions). Negotiation becomes final only wh=
en a
> >> +         * non-VERSION ABI is invoked, as required by the FF-A specif=
ication.
> >> +         */
> >> +        if ( !ctx->guest_vers_negotiated )
> >
> > ctx->guest_vers_negotiated is always false here, due to the check above=
.
>
> Absolutely, I will remove the if here so that we set version to negotiate=
d on
> the first pass and do not come back here after.
>
> >
> >> +        {
> >> +            ctx->guest_vers_negotiated =3D true;
> >
> > I'm on thin ice here, but I think that barriers or some other
> > primitives are needed to close the gap if ffa_handle_call() is called
> > concurrently during these conditions:
> > ctx->guest_vers_negotiated =3D=3D false
> > CPU0 called with FFA_VERSION 1.1 -> sets ctx->guest_vers =3D 1.1
> > CPU1 called with a valid FF-A ID !=3D FFA_VERSION -> sets
> > ctx->guest_vers_negotiated =3D true
> > CPU2 called with a valid FF-A ID !=3D FFA_VERSION -> guarantee is
> > missing that CPU2 will observe the updated ctx->guest_vers if it
> > observes the updated ctx->guest_vers_negotiated
>
> Definitely you are right and the combination of guest_vers and
> guest_vers_negotiated has an issue with ordering.
>
> I think the following modification should solve this:
> - remove guest_vers_negotiated and use guest_vers =3D 0 as test for
> version negotiated used with ACCESS_ONCE
> - introduced a guest_vers_tmp only accessed under the lock to store
> the temporary agreed version until negotiation is done
> - during negotiation done copy tmp into guest_vers with a previous
> write barrier before and ACCESS_ONCE to ensure visibility
>
> Tell if that sounds right :-)

That should work. I think we may be able to skip an explicit barrier
or even ACCESS_ONCE since the other CPUs will either see the updated
version or enter ffa_negotiate_version() to take the lock (which
includes a barrier) for synchronized access.

Cheers,
Jens


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 08:50:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 08:50:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176491.1500961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQiZ8-0001SK-Oa; Wed, 03 Dec 2025 08:50:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176491.1500961; Wed, 03 Dec 2025 08:50:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQiZ8-0001SD-Ln; Wed, 03 Dec 2025 08:50:26 +0000
Received: by outflank-mailman (input) for mailman id 1176491;
 Wed, 03 Dec 2025 08:50:25 +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
 <SRS0=Qm2A=6J=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vQiZ7-0001S4-QC
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 08:50:25 +0000
Received: from mail-ot1-x330.google.com (mail-ot1-x330.google.com
 [2607:f8b0:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1b33e49d-d025-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 09:50:24 +0100 (CET)
Received: by mail-ot1-x330.google.com with SMTP id
 46e09a7af769-7c78d30649aso5074880a34.2
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 00:50:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1b33e49d-d025-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764751823; x=1765356623; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=y14wmZu+6Hl0hy8F4Amx9+E4Gb1nA1Es5CfmvZ8UCzw=;
        b=pRe7YVDKgYFyC6g/d8YvUe8cODsqwjhfDbJhsI+CivQ55nqzwFrg/zfG0Wu8pKvcgp
         F5RAY8jBF14ml40/VNGTShISYrHS/J5Co+vXBMRQpS2+FZ5ByMnEMXfQD2CFNeXhTBSI
         8kz9rS0/D6AdTQItUUq1dK0KL6amwEgBQ5I3DOpiERhJy5Vu7VwCBrqP34mRTJw4Au7r
         y/sRHyPZWFxSgKT26hsoWr81OrRxRM+Y3RcLS8Wzibp3wRvc05IrQh5z1Yf3H0UhJMzF
         UMeeqJ9HD+rAMGqVcGGg9bBKtW5ESOTiBLJN0lI7tZZNsR7AWM3PgEBaAiYoLkzWdcTM
         i+7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764751823; x=1765356623;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=y14wmZu+6Hl0hy8F4Amx9+E4Gb1nA1Es5CfmvZ8UCzw=;
        b=ZF4q1jFI/BllBB6GeYfBvRc00dGc2jnZAom+Xg5czqepdt5nWHgYuLVQYJgdR7OjJL
         zkMsQZFPW1ZUAu0zj7RenPSsx0I7EjWotlB1tDX3kIv0ndkzXNfQfcDC2IpvIRPH1stp
         UwXnJhzARg9RoUnd/u1tnhP/TBsbPaAFbSDaTpD/gxhdXCHtRE94LUilqUebjuF2KvYz
         jAADGYuhFIQ0zpJMET8cmBaWE+MQ89uMNMVMDuOR1wiBKtqQzuUnECiRzuHHjSHPTUbk
         cy77lXzOK/BvNWXnA5niJPy8USpIYZQFnEqeRYyyNKbb34E2QXdPYi0Ey9wgglE2jlg5
         Bf1Q==
X-Gm-Message-State: AOJu0YxRQsxVHqjVcDvjD/187KUsihDIzmRXs5OOxDYnWDkodUDhJFDW
	kK/UOnj//R2SiCc/XxOpSkTuupjtzL8pcuvq94cAiUsVMqni3YkpsxG2rmkwHJ00nSQxhHHAMlT
	Ek9obCgzcIiTDjCBBQJYr16P+6VUPMKfjf38FujXxeA==
X-Gm-Gg: ASbGncuYHMDziOp+JLMGjPt42ZZklpjyNUR7e3TnzS89+wNMXWP0pdf7/6QR43c3tzz
	JC1qzHGQKZnGWDmFhvAbIfmGFCFIwqY5Jd/rxU4xMa61gctT2kGxIueuC7VDCxI9rIYzaNDhsrT
	7MB2ZViq1KEtLsWdpsstsPgrxb8smx02slvLALoOo10Bx4AuFImeLt8TtiWLhRP06TqzRvvVweu
	k2ESPh1sVgm+wWSHJjwEv+4alX/Ov9QfzIB1mvI5ko5hlfhxFutnuUWyOpyTY/8s9u2BjllTSAz
	944fPR9/LwKrrM1Rmv9kRxCB5g==
X-Google-Smtp-Source: AGHT+IGXQ7+R0N/6sbIzu6bXmf4uiuvI2uykiFWseqV/In2woWAVAWShZjdPiVViASBKURZ2+Lknks/uspXKB7zTA14=
X-Received: by 2002:a05:6830:2644:b0:7c1:12c5:334e with SMTP id
 46e09a7af769-7c94dae71bemr1287346a34.17.1764751823125; Wed, 03 Dec 2025
 00:50:23 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764254975.git.bertrand.marquis@arm.com>
 <72d6592157a9ec15d4b5de19751186e0ca1680ba.1764254975.git.bertrand.marquis@arm.com>
 <CAHUa44Gq4L95i3wTMEVRoFNFt2PzPCKGAuF4KT3YL9mfmT2FRA@mail.gmail.com> <33EF4249-1F82-4DF5-BCCE-0BCBB0F3D157@arm.com>
In-Reply-To: <33EF4249-1F82-4DF5-BCCE-0BCBB0F3D157@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 3 Dec 2025 09:50:11 +0100
X-Gm-Features: AWmQ_bkGgh16alJhvbLQ1dW2IMhOC3iO-PmouHfOvmdgtqaQPT-j-acTbK0wnag
Message-ID: <CAHUa44FQ8bCo5cuVR-JW9om+jEqUA8uZAPAmic9GkwnG-OeE7A@mail.gmail.com>
Subject: Re: [PATCH 04/10] xen/arm: ffa: rework SPMC RX/TX buffer management
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Tue, Dec 2, 2025 at 5:50=E2=80=AFPM Bertrand Marquis
<Bertrand.Marquis@arm.com> wrote:
>
> Hi Jens,
>
> > On 2 Dec 2025, at 15:08, Jens Wiklander <jens.wiklander@linaro.org> wro=
te:
> >
> > Hi Bertrand,
> >
> > On Thu, Nov 27, 2025 at 4:52=E2=80=AFPM Bertrand Marquis
> > <bertrand.marquis@arm.com> wrote:
> >>
> >> Rework how Xen accesses the RX/TX buffers shared with the SPMC so that
> >> ownership and locking are handled centrally.
> >>
> >> Move the SPMC RX/TX buffer bases into ffa_rxtx.c as ffa_spmc_rx/ffa_sp=
mc_tx,
> >> protect them with dedicated ffa_spmc_{rx,tx}_lock spinlocks and expose
> >> ffa_rxtx_spmc_{rx,tx}_{acquire,release}() helpers instead of the globa=
l
> >> ffa_rx/ffa_tx pointers and ffa_{rx,tx}_buffer_lock.
> >>
> >> The RX helpers now always issue FFA_RX_RELEASE when we are done
> >> consuming data from the SPMC, so partition-info enumeration and shared
> >> memory paths release the RX buffer on all exit paths. The RX/TX mappin=
g
> >> code is updated to use the descriptor offsets (rx_region_offs and
> >> tx_region_offs) rather than hard-coded structure layout, and to use th=
e
> >> TX acquire/release helpers instead of touching the TX buffer directly.
> >>
> >> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> >> ---
> >> xen/arch/arm/tee/ffa.c          |  22 +-----
> >> xen/arch/arm/tee/ffa_partinfo.c |  40 +++++-----
> >> xen/arch/arm/tee/ffa_private.h  |  18 ++---
> >> xen/arch/arm/tee/ffa_rxtx.c     | 132 +++++++++++++++++++++++++-------
> >> xen/arch/arm/tee/ffa_shm.c      |  26 ++++---

[snip]

> >>
> >> -void ffa_rxtx_destroy(void)
> >> +void *ffa_rxtx_spmc_rx_acquire(void)
> >> +{
> >> +    ASSERT(!spin_is_locked(&ffa_spmc_rx_lock));
> >
> > Is it invalid for two CPUs to concurrently try to acquire the RX buffer=
?
>
> No the RX buffer or the TX buffer with the SPMC should only be used by
> one CPU at a time as there cannot be any concurrent operations using it.

What if two guests call FFA_PARTITION_INFO_GET concurrently? Both can
succeed in acquiring their RX buffer so they can call
ffa_get_sp_partinfo() concurrently, and the assert might be triggered.
We have a similar problem with FFA_RXTX_MAP_64 and
ffa_rxtx_spmc_tx_acquire(). Contention on the spinlocks for the rx and
tx buffers should be valid. If we can't allow a guest to block here,
we should return an error and let the guest retry.

Cheers,
Jens


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 09:23:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 09:23:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176507.1500973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQj4f-0005aO-9y; Wed, 03 Dec 2025 09:23:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176507.1500973; Wed, 03 Dec 2025 09:23:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQj4f-0005aH-5x; Wed, 03 Dec 2025 09:23:01 +0000
Received: by outflank-mailman (input) for mailman id 1176507;
 Wed, 03 Dec 2025 09:22:59 +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 <SRS0=kX12=6J=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vQj4d-0005a0-B5
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 09:22:59 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a6eddde5-d029-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 10:22:56 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-42e2e6aa22fso1796163f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 01:22:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42e1c5c3c8csm45852278f8f.2.2025.12.03.01.22.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Dec 2025 01:22:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a6eddde5-d029-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764753776; x=1765358576; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SYGvs6y/iFswRC7dH+RpYLA5wBXDkTx4wOBA/LCpgG0=;
        b=UrXS9haSzxG9tMg3Ueu+q6fMTBOwFmjgjm4PTi5R3JA+LXXZcw+QG7ia2GcIFHwuae
         r8rGDt/vpmtNViattGXM7QsmPiRBGlzrWBfCBDHsDRu9twE0P8eB4t+4cyxBIkTHCH3B
         0jOYbNoGUplerveiluH6Eh37FG/c8f/qYVPJWiE8gh5PO+u+ypZFZSZwUozHeOuel1n1
         fvLfreBfcYIvv9iLjKW61Gsb0bQQB9pc+btA9CbexafI/CrqYxMF2VEbst6WC3DyJGpu
         dLWY1kSCNYLAuIjFJbWM/xc2U+E8tRyvJSM6Gdhb0fK2O6TFwzG3wbDkMd5ABOxUTa86
         fM7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764753776; x=1765358576;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SYGvs6y/iFswRC7dH+RpYLA5wBXDkTx4wOBA/LCpgG0=;
        b=v5NX3XBsTNs4pRZE1b4q7AMzDfiwX/2GwSjGhgNnUIYw3PHufhdU3fBuFEp80eCHaJ
         1OaK4MaHelT+LGNBwXxTUyElZk47jU4QY0M5zbyRW4PtMipj24MjFbnU1R0q3r7ZcG2V
         F1pL+eCOxqlAjISJQHXqByjHzu6+pPKYNdQGhO8Egf7lnJL0/6HmmeQB04RlVztKDqgc
         iuFtqvh1EeVPTFnBGkuWTIvgkdF1dsbIhvJQrhsUELxLhEZp2mdLtlNmHnwW1uMe/Nf8
         h+FqEZKgd2a/kq0/nl2+XqE12iXenFx41OJ8ASXCty73QwNSFhTzT2BWNmMeuwAdkq8A
         bYhA==
X-Forwarded-Encrypted: i=1; AJvYcCWMTBS+bDd/lj3ZVHHJjy4pjQtHQ6ksR3aRkvCf8Ke+CM15CG4lMAru5ZByjTWb45griXRg3A7827s=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx7OPL/w9mL0VqqjvSFK0IC2S8oVCUBxzKsEpcIRCwcYmndw1NX
	uC0Dro3y0gUFgbwCSCt/1H/xRuDD8xEZmJKf4GqcJhBKLTJX9cOQG1IpdQchx0EGIg==
X-Gm-Gg: ASbGncsZUD7wFfVeAJFOgVszBBCIR5/WMae7fagmiaPlgb3sbECqeQYlZRbdmLRS/8k
	Nw14rj0xAuvvYvoATrjonRaWtc47HTP92dlQZOxneE/Lo7l4N+XM0vDluZGaDXfpo7a1wdeltxv
	bst2G/UzDdK9sARPpoEVmh6xY+75+PYbek5+pYY5/dFGs2NzebNO5+4PRBwOK1LiPk3TTVwPxYP
	4CjqjVuJs/lnseRq0CfJvaJs2ma6/lOZdXq6qAZXuHBt9roIQL8sTlg411gFzGQLD77c4i6w0E3
	rbeFuNogzVwlTxfS1U3kyeCZq4Aw7DIW6mW9DVaTKc46IiUo5c1SWMPqsPkqifJXt2ADRmtYrbJ
	5h23ntde0nrdXf1EFJDYQqy5ZzT1Z8Y86QkcTPvKjSYEhx0RDwbYdvgCAhlN3nT9gCcjYER87HD
	kAMZ0rgdqTPyiXuGNt7Na8JpjpD3X6lJwdTatu3FOXY+nqUM7NEg3u/FJjBDY2aUidEos7KWwWA
	ncWofWtuW1+AQ==
X-Google-Smtp-Source: AGHT+IHaJCdVq8xN8O5N3JTmJS2/SIjqFwvaWxVmv/saLcIrlTKItHwNT4wPqkkKGG7YhygYRJrXmg==
X-Received: by 2002:a05:6000:25c4:b0:425:7e45:a4df with SMTP id ffacd0b85a97d-42f731699edmr1427919f8f.11.1764753775820;
        Wed, 03 Dec 2025 01:22:55 -0800 (PST)
Message-ID: <ff49a553-3d5d-447f-ac45-faab7afa8aca@suse.com>
Date: Wed, 3 Dec 2025 10:22:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/cpu-policy: Feature names for Granite Rapids
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251202153935.1476414-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251202153935.1476414-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02.12.2025 16:39, Andrew Cooper wrote:
> Slightly surprisingly, AVX10 is the only unnamed feature right now.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> 
> Hunk borrowed from the AVX10 series.

Please can you also "borrow" the gen-cpuid.py hunk from there then? With that
Acked-by: Jan Beulich <jbeulich@suse.com>
albeit I'm sure you understand that I'd much rather see the full patch go in.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 09:23:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 09:23:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176512.1500982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQj59-0005zA-HA; Wed, 03 Dec 2025 09:23:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176512.1500982; Wed, 03 Dec 2025 09:23:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQj59-0005z3-DN; Wed, 03 Dec 2025 09:23:31 +0000
Received: by outflank-mailman (input) for mailman id 1176512;
 Wed, 03 Dec 2025 09:23:30 +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
 <SRS0=Qm2A=6J=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vQj57-0005a0-VU
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 09:23:30 +0000
Received: from mail-oo1-xc33.google.com (mail-oo1-xc33.google.com
 [2607:f8b0:4864:20::c33])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ba148ce8-d029-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 10:23:29 +0100 (CET)
Received: by mail-oo1-xc33.google.com with SMTP id
 006d021491bc7-6592f588c45so3350839eaf.1
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 01:23:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ba148ce8-d029-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764753808; x=1765358608; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hM1KPilD0PjS8mRiOAXCHXCKoEMz3kAJW5UXctIczDM=;
        b=T2iKfRbL4m6/PwJP7t75B9v+vRSMUvj2/4M/cwreJDiNz9Bf8L0IqWyYrm8ftdbBmC
         JwHWTL71WDYCNqVY5i4jRnnjBMlg3Ey9gtjQ0Bkida1H5LXrdmillTOO4GWobFXCO0hF
         JHJxJm9KTIG3yH1OIwqMlxmlbV1p2oF8ZTiGnTlwKvPhMg5Bbtye50R6uLFQ44NUP6aA
         3fSH4rwvufV6aphfInFS5vr5bowest4gwR/ptdEfC1JXtjPSHr3sTWuJgxf1qMD2AYr5
         mIRWlh4eyJM/gOJUZ7ZMGnJ9VNbuHVmYpOyKmy4EyrROtBwEL5Cv5A5PozoHGNTAS9A7
         5w0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764753808; x=1765358608;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=hM1KPilD0PjS8mRiOAXCHXCKoEMz3kAJW5UXctIczDM=;
        b=kHCvBstqTdVE4C7hIZ27Rw6qeB4bChwt/iGEfvSKs1ZE/uv33AzRcgsUnoo2UVo88e
         klmWB/8tRvXcHFpptEPA7etLXErjFRMJL4HM06rUmj1qjoLNGgXRDT6alas0y1KtE4MA
         8vf0NX6wWAjvrVwXOVRmBBfgLv02OGer41IRbje1DTYCvIjEBW8vupJT2kv8OrJPkVaf
         atQpw3/uSUWhqvzB5qlEYLUNnhnDlgzt8C8ybNBkAZpGPCPCeR4ka2mZ9geHUjDWTWNY
         FYm3kCw1etWIkWEPihbuR1OG5XlnU1jSsNpHBGJFSA+pLM1p8e+tbkPDk7a8TIfsxfRV
         MPJA==
X-Gm-Message-State: AOJu0YzUv3H+HU7jRQOkRI0iWUaa9ALbcvsJBgW3CjxvsILcQtXLuAuN
	pssLvyvDjpjUCPxhhs7yOgdbZRALg89Wb9g52aKAd8D37kjBLEC0sJj9b9Nmox95TilXmxeJcTV
	2ZMmujaVFWvGYEDp7ol/ZiaH8X2EMiqxK3crvYxRMNA==
X-Gm-Gg: ASbGncvlfAqt4YVP5wqdJzbDVV5eLX5aJ1Nj2Wh/DcH2TKsr8Z05QK84GylMyaB2A7X
	xn1Byr/AyJw7P/XZPVIe1YP6E9IkoaTHiwPmF01AuRYrp8AkIaxKiEQtIvp3UldcomtvdIWgcBF
	ZezuthYnf5boalZ0DGKxId5kUcsMHL+mffgZBxRSuMlkaeahUdEKoflaQQ9Yb05HTbYPN6w6oFa
	PbPOdgWy/xbmrIVb0yuTzBDcabmblbcU5SHMe56cFN/eE0b8MnFQ53/uKDl5PVXbqE330xhiHjQ
	d530oqNJpQSywiDABcbJCfHOtg==
X-Google-Smtp-Source: AGHT+IFebkAhfN3gbjIoeXSF9advN03o0hGBKVTyQ6GF2CdCzOCj18wtSdREQONhiBVG5Xe1xEynpA6V1R4tZXDipd0=
X-Received: by 2002:a05:6820:f016:b0:654:f6f1:dd07 with SMTP id
 006d021491bc7-65972738751mr850659eaf.4.1764753807754; Wed, 03 Dec 2025
 01:23:27 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764254975.git.bertrand.marquis@arm.com> <6e31745ff6473189d79a53cec2c29fdd41a22251.1764254975.git.bertrand.marquis@arm.com>
In-Reply-To: <6e31745ff6473189d79a53cec2c29fdd41a22251.1764254975.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 3 Dec 2025 10:23:15 +0100
X-Gm-Features: AWmQ_bm4CrbdzFdpUcAAilnOlJ2pCY562imeE8IMfBBX4JOYWX63T92lojg8b5U
Message-ID: <CAHUa44HeiozpurYLfjHU6qv=GsquRLKQrjZY+cemzbmVAS+kaQ@mail.gmail.com>
Subject: Re: [PATCH 05/10] xen/arm: ffa: use signed 32-bit status codes
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Thu, Nov 27, 2025 at 4:52=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> The FF-A spec defines return status values as signed 32-bit integers.
> Align the Xen mediator with this requirement by:
>
> - switching the FF-A helpers (ffa_handle_mem_reclaim(), partition info
>   init, notification ops, dispatcher glue, etc.) to int32_t return types
>   so callers cannot silently truncate negative values
> - masking SMCCC responses/exits in ffa_get_version(),
>   ffa_get_ret_code() and ffa_set_regs_error() to 32 bits before storing
>   them in guest registers
> - updating notifier, shared-memory reclaim, partition-info and
>   dispatcher call sites to use the new prototypes so the entire FF-A
>   path propagates spec-compliant 32-bit signed error codes
>
> While there, tidy up the FF-A notification helpers by using GENMASK(15, 0=
)
> for endpoint extraction and fix the secure-endpoint check in
> ffa_handle_notification_set() to apply the mask to the endpoint ID before
> calling FFA_ID_IS_SECURE(), instead of testing the wrong halfword of
> src_dst.
>
> Fixes: 911b305e7bdab ("xen/arm: ffa: Enable VM to VM without firmware")
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa.c          | 12 +++++++-----
>  xen/arch/arm/tee/ffa_notif.c    | 14 +++++++-------
>  xen/arch/arm/tee/ffa_partinfo.c |  4 ++--
>  xen/arch/arm/tee/ffa_private.h  | 21 +++++++++++----------
>  xen/arch/arm/tee/ffa_shm.c      |  4 ++--
>  5 files changed, 29 insertions(+), 26 deletions(-)

Looks good.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 09:25:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 09:25:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176528.1500992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQj6w-0006az-S9; Wed, 03 Dec 2025 09:25:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176528.1500992; Wed, 03 Dec 2025 09:25:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQj6w-0006as-OI; Wed, 03 Dec 2025 09:25:22 +0000
Received: by outflank-mailman (input) for mailman id 1176528;
 Wed, 03 Dec 2025 09:25:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kX12=6J=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vQj6v-0006YI-LG
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 09:25:21 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f9a8d45a-d029-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 10:25:15 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-42e2e47be25so2068548f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 01:25:15 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42e1c5c30b8sm38385981f8f.7.2025.12.03.01.25.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Dec 2025 01:25:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f9a8d45a-d029-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764753914; x=1765358714; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=c2pnRSpjpC7NU+2m5+UXqb22+OOJx5ih4jd4GZfRsEA=;
        b=Yx+p8s1nknJtrpjxPaVUvgc9ZMLJvCx1wN+KQK/3EHvy4+w5uYy0TfvCGONpOaZoUB
         a9octCML+jjPjwckiAOPBRSWDZS31KRfRatANV9cUC2Oy/+fHFYAYcxvKdh+cxS53JCM
         Xwf6NVQZS+l7Ub//pl52xAnQ8uRjBPIOWHzRDqgNwxIRc/McjKc/2YX+yiJt8jIi+6fT
         OWVVo2ghM93IjVGpMlONv7ZHF3LQHw5VqbwsVvEhOeZ4KUiAdlt7eaj8979iDYJRzI5N
         VedSAjelqqsUjJKGfBVE948x9BYyum6ChxWeELwQZ4LfMB0X+gOtcn/KoVH4cpBNli72
         hRLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764753914; x=1765358714;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=c2pnRSpjpC7NU+2m5+UXqb22+OOJx5ih4jd4GZfRsEA=;
        b=cuDuPhUe7liwgdxSqFpHiXX8ZyIjdNiBEHj7UBLWwR7UoTZk3b4+xWmr6QTOv9sZ3X
         j3FVx9vt8IfRVAbmijGKTlmXIt50u50v94WlogQgtMAsQpW6Uu9xf4OOyppUwI/c9qUs
         AwikmtNI882yQzAc+D9yi6fNwdYqrEiDmP39s6NnfkBQxNzALZrmyOBnn2DMm2bLtskx
         E+wZamIdKqpLx7TlLpq8420JRA0q3G32QzCG1HB8Dw/L7MmUa+UO2ApiVnKqS5ZvkdLB
         YfG5OrC+4vY6lrJAaA42kHsNFyDIlbFU6p7ArWBa2HNaCX62a1JhIf7n01k4V0j0Dvfv
         yFgg==
X-Forwarded-Encrypted: i=1; AJvYcCUbXP4rjWP/Yswz8xPrdALMw3PokwEwG9+N4k8JfuS0JELeteF/DPSCXeHpXi7gI8BUSSMw3QcRRCY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwwZYL9VZrRpgQzm2MdGPOFUjcN3a88h4t6cjKI3SFsJP59Frh8
	XFWiJ6BzxbIr499YrZOouqHs/U/3DA5YiYVAO4lCiVqm/gBFOfWt+G+S3gTRBh2omUCdECmZG2j
	NCZw=
X-Gm-Gg: ASbGnctId9+dTm730wXu2TazQnYah4eoVqAMp1lmtw+m/HDluPl4ZideeU/k90pxybG
	VC1wrd59z9khv7ghw9nW8n4YHf8qJo2v1jdwh06e9SYNzVS9KMmIq9q7Y+4M+yElQFuMUCquTkJ
	YJ9mmPi7wZ1ii7rEu5xZa3zRtjxGHS+qy+AFCfzwbJy5I1sVdk4AkQpGoPWAaN46lvn8ZvZkZIF
	AZd4FZlWaevoNgOVLMqgNWTkJtE1nqaCV1HuVEuDrsZl5fRHcXIRuR1+gYegCI+i4SqfT1czV+h
	fwCEdHF7Mkmut0wGZiAeD0LEpbP998wbrS+mJDYY0/dYJckhjDWRtYQWxTYRvxUAu0Om4/u1d9K
	AgAIerrPudAuK7sE6gMi240GGxwkp+Yu+cS10hs62Eo6FlHDaGiRVUuHDy5USS/42szjOvOyHUY
	vNUl2NcV4ITdO+wvLwp3w893GA6ksL/VOgsbWZFNjY+W78ZFO06gfH5AaeW1CHk6n98DfJjM/Dh
	i8=
X-Google-Smtp-Source: AGHT+IEeCMa1uF3Vvu6VRRYt7yNJ0MRTBXDGrw3ZZ3hmptNQpiB/wxWA1+D+Kf1P2gMyiuZwIZzuuw==
X-Received: by 2002:a05:6000:26cb:b0:42b:3ccc:91ec with SMTP id ffacd0b85a97d-42f7318c12dmr1512685f8f.22.1764753914474;
        Wed, 03 Dec 2025 01:25:14 -0800 (PST)
Message-ID: <1fb180e4-b2c9-43d1-a9ad-10ef3eb2de7e@suse.com>
Date: Wed, 3 Dec 2025 10:25:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/gen_hypercall: Fix if indent
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251202221930.151264-1-jason.andryuk@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251202221930.151264-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.12.2025 23:19, Jason Andryuk wrote:
> On x86, the opening if of call_handlers_*() is indented 4 spaces which
> breaks alignment.  The alignment is broken by printf("    "), but
> that actually aligns ARM's opening "if ( likely() )".  Move the indent
> to the if that needs it.
> 
> This results in x86 hypercall-defs.h changes like:
> 
>  #define call_handlers_hvm64(num, ret, a1, a2, a3, a4, a5) \
>  ({ \
>      uint64_t mask = (num) > 63 ? 0 : 1ULL << (num); \
> -        if ( likely(mask & ((1ULL << __HYPERVISOR_vcpu_op) | (1ULL << __HYPERVISOR_event_channel_op))) ) \
> +    if ( likely(mask & ((1ULL << __HYPERVISOR_vcpu_op) | (1ULL << __HYPERVISOR_event_channel_op))) ) \
>      { \
>          if ( (num) == __HYPERVISOR_vcpu_op ) \
> 
> ARM's hypercall-defs.h does not change.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 09:36:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 09:36:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176540.1501001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQjHq-0008Ln-QU; Wed, 03 Dec 2025 09:36:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176540.1501001; Wed, 03 Dec 2025 09:36:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQjHq-0008Lg-Ns; Wed, 03 Dec 2025 09:36:38 +0000
Received: by outflank-mailman (input) for mailman id 1176540;
 Wed, 03 Dec 2025 09:36:38 +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
 <SRS0=PcFb=6J=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vQjHp-0008La-Rw
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 09:36:38 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8baaca6c-d02b-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 10:36:29 +0100 (CET)
Received: from DU2P250CA0012.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:231::17)
 by VI0PR08MB11325.eurprd08.prod.outlook.com (2603:10a6:800:2fb::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Wed, 3 Dec
 2025 09:36:25 +0000
Received: from DB1PEPF000509FB.eurprd03.prod.outlook.com
 (2603:10a6:10:231:cafe::19) by DU2P250CA0012.outlook.office365.com
 (2603:10a6:10:231::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Wed,
 3 Dec 2025 09:36:25 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509FB.mail.protection.outlook.com (10.167.242.37) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.7
 via Frontend Transport; Wed, 3 Dec 2025 09:36:24 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AM7PR08MB5413.eurprd08.prod.outlook.com (2603:10a6:20b:10a::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Wed, 3 Dec
 2025 09:35:20 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d%4]) with mapi id 15.20.9388.003; Wed, 3 Dec 2025
 09:35:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8baaca6c-d02b-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=PcPFEEFA4WGRV0rkS8JZu20eJOgpg0OUJmqNcLZi83stXxPR7kRSP8PlVLx3zlYPCEedxB8ESBGIbicI2bBs1SlnVC8aM49PvIr9R2RIJmxtvbyVy1T319U/xSYuU0vmRNOppUCGqaVnQ/YR+IAiEZed+KdINHPkOzo9EBgZs0SnpMEL16Xl+0TQ3eSXRWWK6aldan+PSdoxgzfE2Cl36bNZNVQJQMf9rWg3shzfRmAQeUkLalnsw8G3Pox2ylPyNkwXvTREmZzBUtcWDazStjUi5GkegF8k+UKqTGCUTj17HVwTm4QxwSnfcdf3zGK8jkRBSKpR/tT7AEK9/m9XmQ==
ARC-Message-Signature: i=2; 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=Ssg/oP4Twi0OiA/t1dLEESSaZPP9q6WYl5pjfk8OYjE=;
 b=Iomz9EtnHZfbWt3CZ5ZeZybnbvOAav2Pqw6l1gCI95BdCbbhvMIdQ3pVeXySm3a7GUno0MVxvUthcDGFaDEx065cdL1YCtaaqryW+Jz+sXk4RQ2ieV27HSQMIqtcai4bjV2Z9AchEqaPtfoLjgYa0Zs0mqScmvG1Fer958HJlIO6+qOQdCYIhSzvhCvyOWhQfL3CXIzaI5WlV+pLOl8Owy0G+D5+4e4rrQrsl3S0c3auHGewZ9baJ+e8TAQoP+IJdWc+Vxo0gDXILSHctK8B+Qh8tkBJ2P8IhChi0Ytv7BKcacUCxhyorVdmc+mUWOl90nIcKUrssgzeMXCZG+n3cQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ssg/oP4Twi0OiA/t1dLEESSaZPP9q6WYl5pjfk8OYjE=;
 b=frIhOqRhdr/ThtDQDIIMTex2Dhtmkjx1Yr9rxCy9683E5XafcZHF9h66B0lXMnK6ZdnvhmLEIJ0an43nyluJK6ucBSvXC+Ctbc+oR9NdXfbINo0dOpC8e4Lq5v4iIyW1HfaFy1TKTgfLz9z3R6F4Fu0MQDA+LkjFy53JOk+b22M=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qAYVqu0hKJJgG0IH7JZz8QNpG8Dho9CSROVwbB8I3Yfh+U46Znb/wISPOb/8fpBeAoXL9qtq6P/qclMsisZBIVJdaOhRIsNR7UVuUZAal645ROdw5Z+/tPC72h0DpGhSaBH610/uOmhz64N51GaLymsgkTTVu7rKWLwQUEA+YR0gpWM/aNZaMJsv1cAaS8rSejNLQ6q85BSII9Pz3MKE/E5YdHxzzNBBSrmb8UHpLyFAmFxWcx/HSG2IYvHatzegUoJ99jVOk0PTOgLz64R+W7cxQAJgrA0TRTv3eWXQe9qeq8hqNkFX+RhluXG8i3qAjwdeYW5eXDb8EOrH1jfU0A==
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=Ssg/oP4Twi0OiA/t1dLEESSaZPP9q6WYl5pjfk8OYjE=;
 b=xgubLAnz/gezDHk9sYAhDsg4gTrX8NiDtPQ1yR6hUXSUCwdGEPtECTRoTWtOcRyfNcap9cFx8Tu5Za4Z4wVDhlqZHeiXCfM6VPcquiPhljKkmMCtqF+LYAdNRPtHF5W21+pNVX/tq0i5xOuEzFhrPmr7MSLkJ6IzDZrQvgHlIcWU+Fb2stwGgsPToJncfv9a6Ib6NadlulLRszuBzNn9gSHkiE30H1IK2Pyp8FE472dTaVq726oazoHgsGBMWRQXbE2RbipePqdHbPhCUoY+Ku5fVCr+XGJA3I6rxpFGUAG9fa1ESQS8Yag7VMzhOUqIREcwEPMxlYDQypttbWi7eQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ssg/oP4Twi0OiA/t1dLEESSaZPP9q6WYl5pjfk8OYjE=;
 b=frIhOqRhdr/ThtDQDIIMTex2Dhtmkjx1Yr9rxCy9683E5XafcZHF9h66B0lXMnK6ZdnvhmLEIJ0an43nyluJK6ucBSvXC+Ctbc+oR9NdXfbINo0dOpC8e4Lq5v4iIyW1HfaFy1TKTgfLz9z3R6F4Fu0MQDA+LkjFy53JOk+b22M=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 04/10] xen/arm: ffa: rework SPMC RX/TX buffer management
Thread-Topic: [PATCH 04/10] xen/arm: ffa: rework SPMC RX/TX buffer management
Thread-Index: AQHcX7XuY/AW54zALEuMn1h4iIrvHbUOavEAgAAsagCAAQzjgIAADJGA
Date: Wed, 3 Dec 2025 09:35:20 +0000
Message-ID: <4E39091E-8EFB-4C80-8A1C-FB37B07B8AA3@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
 <72d6592157a9ec15d4b5de19751186e0ca1680ba.1764254975.git.bertrand.marquis@arm.com>
 <CAHUa44Gq4L95i3wTMEVRoFNFt2PzPCKGAuF4KT3YL9mfmT2FRA@mail.gmail.com>
 <33EF4249-1F82-4DF5-BCCE-0BCBB0F3D157@arm.com>
 <CAHUa44FQ8bCo5cuVR-JW9om+jEqUA8uZAPAmic9GkwnG-OeE7A@mail.gmail.com>
In-Reply-To:
 <CAHUa44FQ8bCo5cuVR-JW9om+jEqUA8uZAPAmic9GkwnG-OeE7A@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.200.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AM7PR08MB5413:EE_|DB1PEPF000509FB:EE_|VI0PR08MB11325:EE_
X-MS-Office365-Filtering-Correlation-Id: bfc87aee-9ec0-4233-fbf8-08de324f6d3e
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|10070799003|376014|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?V1dlV3M0ckEzWE9kRzVOelE4K2k2YSt4Tmd0N2preHJFWGgza3VCZW5vcVl0?=
 =?utf-8?B?N1UwOUcxWU45dXFBWFdyQUZlL1pwaGlHS3kvKzE0SkVyU1ZvekxWejdreFZy?=
 =?utf-8?B?d0h3NWRYM1liYnlKaFdMemwwSlZVY1k3OEJLck9paUlwejVBVmM1bGNrS0sv?=
 =?utf-8?B?MldyRDRhK25UdTFnUmg2SXk4NVJ1dkRweEJUS3JlaFo5Zm52ZUFubjYvbjBP?=
 =?utf-8?B?L0VWUktUelVzdG9RUEZDWUVBQjV5QjkzdW9KL3pMelIzMG5rUFJwRlNSZjdF?=
 =?utf-8?B?eDRFak1xTGxlQlkySndDSElpMTlIWWFnaWdUcDczOXV2N0srSzJ5Z012QTda?=
 =?utf-8?B?Um50RVhwcHpXMWdGMkF0ZGhIRjhZd1R6eTdMYmQ1S3EzZWtmYUVRclNxa3pJ?=
 =?utf-8?B?OVkzWUJ0dDJ2QUgwVFErNXdrL0lCekdqM29URmFYaStOUExBbHlOeDRtN2E5?=
 =?utf-8?B?ZmtsZTBvQ3M5a2F3MjRnNGpTNldlWm1Ydm9SaVo1a2ZWZndhdm5EMTNHZzhO?=
 =?utf-8?B?dTVHK3h0QzIwMmxKYTY5Q1RFQkVBNXVmVDk5RHN1UG9weFQrZWx5cTNORHpn?=
 =?utf-8?B?QUJ1TU1RNTZwL3E0eXhNSFpmbTJZVDloZ00ycG5lanJqMTgxREE5Q1V0ai8w?=
 =?utf-8?B?czExOGdHSmxuVG5wYkovU1JhYldSam1scFRTdGl3TGs5QmlONXRtbE4wZVJP?=
 =?utf-8?B?SE5zOExiRDhGTEF1VlhGQ1BoWlNENkhKMmtWSUlpMlFTN2lLZ0xoOVJNM1U4?=
 =?utf-8?B?QXhZZ1J2Qm1BRk1yWXk1dHF3M1Q5cmlFTDJMZEd0bnNHN25TQTNMQm1GeVRH?=
 =?utf-8?B?bStKTmZWbmQrZGhwcW9YMThjc2tYR0NKdlhQUDV4b0RZSnFZSDhseS9XZDM1?=
 =?utf-8?B?Rkc5Ri9QaUZXM0VKV3ZBbTU0V3AwSFBSRjZaRExYTDRLTjdXbjl5eXFkcjhl?=
 =?utf-8?B?Q1hRYTBDb2N1NmhtWXR5cDhycGMyRzdCQzhPNWhXMWtXWTFQRTMvcThZcmdY?=
 =?utf-8?B?RFBkdjRZMDhWb2Jma0g5MWVQVFFYZjdsOFBpY1V5UXF4Yy9FdXZORy91K2RQ?=
 =?utf-8?B?cW9oMXMrYmV1NG9VdWcyaUxRU0c5MVhIYVAxVFdZbE5taUxTRGVSTWFSUXp6?=
 =?utf-8?B?TzNZYWswOC9VZ294cW9pQ1MvK3YwelhQcmRQekUwVzgxbzljdWNMd2JNaVBw?=
 =?utf-8?B?V1lzYUpleFo2TWk1VU5DeUdTdStac3BGZTBwcVJOUEEwZEVKTWZkT2J0OU44?=
 =?utf-8?B?S1BWTjQrUWR2UnNqQlQ2ZStXcGJLeHhHaWtNVGVyWGNVeWg4eHMyTEF3ZnZo?=
 =?utf-8?B?dlMzMVpSRDBGQ3pIR0Irb24vdE9QRllOMTJBUHRVK0IyR1FSYWFBWEtEd293?=
 =?utf-8?B?aEJpSjJjMWEyR21VNEJPT2VUVGN3T05UM09BZ2svOFI1Vmk0UWhoeHcvd1A2?=
 =?utf-8?B?SzZOSmQxc2ZzVlhSVjBwYTJGdGkyQ3gxMjJGNmVqK0JZakpRTDEyMzFGZHlM?=
 =?utf-8?B?dWFwU3JPZDZCZ2l4b3BMZ2NZbVVPVUlMSTZML2tBSnR1MDI3am00OFFKbDRV?=
 =?utf-8?B?L0FLb20raEhMa3MvRzMrcU9TaTdRc1c1QlVOVlRzNlF5SW1NcGFmNnBSUFRJ?=
 =?utf-8?B?TEwvdjVVd24rc2FUTldZUStQbEdTQzNUK0FxdlNwU1E3QStibXF3RE9WdFNx?=
 =?utf-8?B?Q2N2NXY3OWdPUTNKcTJORjhhcVE1ZkI2bnhiZGZlTlc2YlFoc1E1VVErT3Iv?=
 =?utf-8?B?bXo3TEFqaXZDbWZHT2w4NUhvK2J5WEdSMnZoT3FJRzc3NzNLQ2NnV0lYKzF0?=
 =?utf-8?B?UHRIUEIyVHFxZG9TU3VuSGhNOWY3OHYxdVhZcmFGWWxFUnE1UE9aVWViMk9W?=
 =?utf-8?B?WnprVzQxM0lWcGZoVjlVeGh1c0pybHVzVnBoQ3U3MEVIMU16ZDFaM3NlYnZK?=
 =?utf-8?B?dk85eWM1cGFTdXFXMXNCcnpNOUpMM2VjN1crS2tGN2NHaThyTSt3T3U1OERS?=
 =?utf-8?B?YTJ3TWhjeHBWTno2NHVNQ0VmRkYrdmJmVWxsZ1BzLzd0V25Qeisxd3pXaCtt?=
 =?utf-8?Q?rRnMUU?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(10070799003)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <739DAC84E8DFFA4B85C9D2C5D65B39A7@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5413
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509FB.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	d263e836-0051-4d4f-e226-08de324f46a5
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|14060799003|82310400026|35042699022|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YVNKMVQ3R2lmSkxQZWlJWVRhRksyM1VNdFZZcEZNeEdhc3pmZlE3NWkyeDNm?=
 =?utf-8?B?NTBvQnF3YS9UTlBZNldOY01DWXd6Y3RpM1ZvT2pDa2t4TlpZTkFMY1hvNWMx?=
 =?utf-8?B?VkhOQVVDbWJNZVhHdHFaYXJ1M2ZzYm9qUlB5VHhBT2JkanRxRmhUOGlIMDhF?=
 =?utf-8?B?SXpOTTV6R0IvWCtkamlhWVVYQ1dtSTV3ckdCTGE5bWxHVE9vV3dESGx4RWpE?=
 =?utf-8?B?NE81SEJMQVhFRk9FN3JPUHZOYWxTRlJwUjhNa0xCZHRtVDFCc2hJUVdVWWdq?=
 =?utf-8?B?R0ZZMGpILzhqR2M3S3RCNGZkUjVDZDRjYjF0ZlpST1JLS09MV1hxL296aXJW?=
 =?utf-8?B?VkhxZktTV1B2MWoyL2xjcHIxKzJQUjdhRTdhWlFjRFhmWmxkSUZrL2tweFVv?=
 =?utf-8?B?TDY1TUxPSjFwZmx6SVY0eE54aGtXcG1IRkVCNXQ2TzV1eGZISG5MMFFCQmQy?=
 =?utf-8?B?MStObjBNblBmWFRLNDBrbkJ1RVpjeXYzQ3dzRE9vSDZLdDVwbUplQzBzMjZu?=
 =?utf-8?B?djlxSnNSU0ltS3R1Z3ZBUGRVZC9wVkx0MEJzbHBuMGp4b1g1eEcvV2pueFpu?=
 =?utf-8?B?TmI0Z1MzNmg4NmVIWUZmOU9YR2F6TTB5U3RlR09LOU50Y0N3dVBlaEJobHh2?=
 =?utf-8?B?eSt2dTA2SkY2UjZpRGtURHI4cXdDSzJpcWltYkgyM255cVVUWWZDU05VY2xV?=
 =?utf-8?B?ZGlJSlNoazE1VzAvOVdrUkNHVkU1ajRCYk1GbjF3SnJ6OTl3bzJFS00yVjdt?=
 =?utf-8?B?VmJNak9rYmt4dXBZMFRlbEJ2RU9RcHhvRlI5RG8rM1VzMWJjVFcxaXNZdzM3?=
 =?utf-8?B?cDUyN1NJM3NjVkZ6Z3g0djZ1YVc4VlpZYklRcHhoUUE0bHdld1k4VFh1Nmkw?=
 =?utf-8?B?NG1BK05JRUhwRDdaaWdXRnlTMjJqU3FUYzhtT3hUTjFaNERxczhRb0w2UjhR?=
 =?utf-8?B?OHBwRldoVlIyVnRodDFoc3REZDRPQWlkTDlKeUoyenZ4bmxQMTlWcDByWFV4?=
 =?utf-8?B?YUcyalMvQStBRGo4M2lRVjU2RFhVY1daZktuK1dmMDBoYWNEUlpIVm8weE0x?=
 =?utf-8?B?OHBTd3FVLytkNmljOUpvZHFhc0tDV0xQVWVzTnVhRlJoK0x6eWEyU3NMeHE2?=
 =?utf-8?B?aWRzWExiblBKU3BicExhL05mZUxEUWYyd1UvYnpHUWFJWVQ2UHJGUWo1M1lH?=
 =?utf-8?B?c3RtNE83WGxlcm84L1ZaUmRPWG9rY1h5Rkc4N0ZnK3Z0by9JbGp6TXByREg3?=
 =?utf-8?B?ZjVOTFNENjc4OXRDMlFFZDlZME5KS2liUnlSUTNubkozZkN0ZW9Ha0FUREVo?=
 =?utf-8?B?Q0d2TW1tNEZoaDVqRS9pSzczdjRNeXBxVmRoMVBNM01hS2dwbnNuQXlNYjdI?=
 =?utf-8?B?VHhVK3VQakFnSUcxekZaakVORmdFZzNPcy9DY1BpMEdnRVZHZTY5NDJac0s1?=
 =?utf-8?B?aXBWYWQ3NVZyYUdFbDRqOGpRTDBQQXcwblhNdFhxWWYyMVZkZ3lVN2ZZRkFT?=
 =?utf-8?B?TjRUM0ZKTFVyYlE1WHBjaHNvanVaVjc3UW8vYmdPeTNueGM0QjAxSWNveHFY?=
 =?utf-8?B?clN4a1RZViswTGNTaE5sSDF2bm9QMjFUZnJ5bXp1K3pmNFcrL0JJZzV1UndO?=
 =?utf-8?B?ZU9wMjJUMFJhMXBHSDVUL29VL3JQNnZSaFF5Rkhma0hwREt3eWVBeDJ4cVVh?=
 =?utf-8?B?VWszbFIyTys4UThlQ3NDYS82YVlTaUE5RkEzYnpjK2VOYmo2blBuajJWQmVw?=
 =?utf-8?B?Ykg3YVpoNmZ5cE8rSUNRdlA4Ynp1WCtuamR2YjM2SE9pdzl6ZmtKajV2MVBs?=
 =?utf-8?B?U1BVTHdGSWNqY2tTM0tEZDkwTHlXNHM4TGhmQnliYUt1OXYyeExyaklnOTBR?=
 =?utf-8?B?ZEM0enFPZHBtejJaM2hPb2FmamhzMUppYTVsU3FDdVhFTUJZWmRIbWk5bU1z?=
 =?utf-8?B?Mjk1UW53Nyt4aGVKVWtLSHV5TS9aWGwxeXZZYzZvYmYxMGtDOEM0dElTdzh0?=
 =?utf-8?B?UE1SN1h4YTE2a2RYTkRJWXd4bGcwOWtLSW0wc3p1WXhzNEdHR25CeVJUVVZU?=
 =?utf-8?B?dDJ0ZVdRY0drbUU5ek4wMnhjMTQ2dmFWbFZ4a3dYNlNlMVZqQ2dtcEVrSXdt?=
 =?utf-8?Q?QUTI=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(14060799003)(82310400026)(35042699022)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2025 09:36:24.8761
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bfc87aee-9ec0-4233-fbf8-08de324f6d3e
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF000509FB.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB11325

SGkgSmVucywNCg0KPiBPbiAzIERlYyAyMDI1LCBhdCAwOTo1MCwgSmVucyBXaWtsYW5kZXIgPGpl
bnMud2lrbGFuZGVyQGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gSGkgQmVydHJhbmQsDQo+IA0K
PiBPbiBUdWUsIERlYyAyLCAyMDI1IGF0IDU6NTDigK9QTSBCZXJ0cmFuZCBNYXJxdWlzDQo+IDxC
ZXJ0cmFuZC5NYXJxdWlzQGFybS5jb20+IHdyb3RlOg0KPj4gDQo+PiBIaSBKZW5zLA0KPj4gDQo+
Pj4gT24gMiBEZWMgMjAyNSwgYXQgMTU6MDgsIEplbnMgV2lrbGFuZGVyIDxqZW5zLndpa2xhbmRl
ckBsaW5hcm8ub3JnPiB3cm90ZToNCj4+PiANCj4+PiBIaSBCZXJ0cmFuZCwNCj4+PiANCj4+PiBP
biBUaHUsIE5vdiAyNywgMjAyNSBhdCA0OjUy4oCvUE0gQmVydHJhbmQgTWFycXVpcw0KPj4+IDxi
ZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+IHdyb3RlOg0KPj4+PiANCj4+Pj4gUmV3b3JrIGhvdyBY
ZW4gYWNjZXNzZXMgdGhlIFJYL1RYIGJ1ZmZlcnMgc2hhcmVkIHdpdGggdGhlIFNQTUMgc28gdGhh
dA0KPj4+PiBvd25lcnNoaXAgYW5kIGxvY2tpbmcgYXJlIGhhbmRsZWQgY2VudHJhbGx5Lg0KPj4+
PiANCj4+Pj4gTW92ZSB0aGUgU1BNQyBSWC9UWCBidWZmZXIgYmFzZXMgaW50byBmZmFfcnh0eC5j
IGFzIGZmYV9zcG1jX3J4L2ZmYV9zcG1jX3R4LA0KPj4+PiBwcm90ZWN0IHRoZW0gd2l0aCBkZWRp
Y2F0ZWQgZmZhX3NwbWNfe3J4LHR4fV9sb2NrIHNwaW5sb2NrcyBhbmQgZXhwb3NlDQo+Pj4+IGZm
YV9yeHR4X3NwbWNfe3J4LHR4fV97YWNxdWlyZSxyZWxlYXNlfSgpIGhlbHBlcnMgaW5zdGVhZCBv
ZiB0aGUgZ2xvYmFsDQo+Pj4+IGZmYV9yeC9mZmFfdHggcG9pbnRlcnMgYW5kIGZmYV97cngsdHh9
X2J1ZmZlcl9sb2NrLg0KPj4+PiANCj4+Pj4gVGhlIFJYIGhlbHBlcnMgbm93IGFsd2F5cyBpc3N1
ZSBGRkFfUlhfUkVMRUFTRSB3aGVuIHdlIGFyZSBkb25lDQo+Pj4+IGNvbnN1bWluZyBkYXRhIGZy
b20gdGhlIFNQTUMsIHNvIHBhcnRpdGlvbi1pbmZvIGVudW1lcmF0aW9uIGFuZCBzaGFyZWQNCj4+
Pj4gbWVtb3J5IHBhdGhzIHJlbGVhc2UgdGhlIFJYIGJ1ZmZlciBvbiBhbGwgZXhpdCBwYXRocy4g
VGhlIFJYL1RYIG1hcHBpbmcNCj4+Pj4gY29kZSBpcyB1cGRhdGVkIHRvIHVzZSB0aGUgZGVzY3Jp
cHRvciBvZmZzZXRzIChyeF9yZWdpb25fb2ZmcyBhbmQNCj4+Pj4gdHhfcmVnaW9uX29mZnMpIHJh
dGhlciB0aGFuIGhhcmQtY29kZWQgc3RydWN0dXJlIGxheW91dCwgYW5kIHRvIHVzZSB0aGUNCj4+
Pj4gVFggYWNxdWlyZS9yZWxlYXNlIGhlbHBlcnMgaW5zdGVhZCBvZiB0b3VjaGluZyB0aGUgVFgg
YnVmZmVyIGRpcmVjdGx5Lg0KPj4+PiANCj4+Pj4gU2lnbmVkLW9mZi1ieTogQmVydHJhbmQgTWFy
cXVpcyA8YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPg0KPj4+PiAtLS0NCj4+Pj4geGVuL2FyY2gv
YXJtL3RlZS9mZmEuYyAgICAgICAgICB8ICAyMiArLS0tLS0NCj4+Pj4geGVuL2FyY2gvYXJtL3Rl
ZS9mZmFfcGFydGluZm8uYyB8ICA0MCArKysrKy0tLS0tDQo+Pj4+IHhlbi9hcmNoL2FybS90ZWUv
ZmZhX3ByaXZhdGUuaCAgfCAgMTggKystLS0NCj4+Pj4geGVuL2FyY2gvYXJtL3RlZS9mZmFfcnh0
eC5jICAgICB8IDEzMiArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQ0KPj4+PiB4ZW4v
YXJjaC9hcm0vdGVlL2ZmYV9zaG0uYyAgICAgIHwgIDI2ICsrKystLS0NCj4gDQo+IFtzbmlwXQ0K
PiANCj4+Pj4gDQo+Pj4+IC12b2lkIGZmYV9yeHR4X2Rlc3Ryb3kodm9pZCkNCj4+Pj4gK3ZvaWQg
KmZmYV9yeHR4X3NwbWNfcnhfYWNxdWlyZSh2b2lkKQ0KPj4+PiArew0KPj4+PiArICAgIEFTU0VS
VCghc3Bpbl9pc19sb2NrZWQoJmZmYV9zcG1jX3J4X2xvY2spKTsNCj4+PiANCj4+PiBJcyBpdCBp
bnZhbGlkIGZvciB0d28gQ1BVcyB0byBjb25jdXJyZW50bHkgdHJ5IHRvIGFjcXVpcmUgdGhlIFJY
IGJ1ZmZlcj8NCj4+IA0KPj4gTm8gdGhlIFJYIGJ1ZmZlciBvciB0aGUgVFggYnVmZmVyIHdpdGgg
dGhlIFNQTUMgc2hvdWxkIG9ubHkgYmUgdXNlZCBieQ0KPj4gb25lIENQVSBhdCBhIHRpbWUgYXMg
dGhlcmUgY2Fubm90IGJlIGFueSBjb25jdXJyZW50IG9wZXJhdGlvbnMgdXNpbmcgaXQuDQo+IA0K
PiBXaGF0IGlmIHR3byBndWVzdHMgY2FsbCBGRkFfUEFSVElUSU9OX0lORk9fR0VUIGNvbmN1cnJl
bnRseT8gQm90aCBjYW4NCj4gc3VjY2VlZCBpbiBhY3F1aXJpbmcgdGhlaXIgUlggYnVmZmVyIHNv
IHRoZXkgY2FuIGNhbGwNCj4gZmZhX2dldF9zcF9wYXJ0aW5mbygpIGNvbmN1cnJlbnRseSwgYW5k
IHRoZSBhc3NlcnQgbWlnaHQgYmUgdHJpZ2dlcmVkLg0KPiBXZSBoYXZlIGEgc2ltaWxhciBwcm9i
bGVtIHdpdGggRkZBX1JYVFhfTUFQXzY0IGFuZA0KPiBmZmFfcnh0eF9zcG1jX3R4X2FjcXVpcmUo
KS4gQ29udGVudGlvbiBvbiB0aGUgc3BpbmxvY2tzIGZvciB0aGUgcnggYW5kDQo+IHR4IGJ1ZmZl
cnMgc2hvdWxkIGJlIHZhbGlkLiBJZiB3ZSBjYW4ndCBhbGxvdyBhIGd1ZXN0IHRvIGJsb2NrIGhl
cmUsDQo+IHdlIHNob3VsZCByZXR1cm4gYW4gZXJyb3IgYW5kIGxldCB0aGUgZ3Vlc3QgcmV0cnku
DQoNCmkgYW0gbm90IHN1cmUgaSBhbSBmb2xsb3dpbmcgYW55bW9yZS4NClRoZSBhc3NlcnQgaXMg
anVzdCB0aGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgbG9jayBpcyBub3QgYWxyZWFkeSB0YWtlbi4N
ClRoZSBmdW5jdGlvbiBpcyB0aGVuIHRha2luZyB0aGUgbG9jayBhbmQgbm90IHJlbGVhc2luZyBp
dCB1bnRpbCByZWxlYXNlDQppcyBjYWxsZWQgd2hpY2ggaXMgZW5zdXJpbmcgdGhhdCBvbmx5IG9u
ZSB2Y3B1IGF0IGEgdGltZSBpcyB1c2luZyB0aGUNCnJ4IGJ1ZmZlci4gRGlkIGkgbWlzcyBzb21l
dGhpbmcgaGVyZSA/DQoNCmZvciByeHR4IG1hcCB3ZSBkbyBjYWxsIHR4X2FjcXVpcmUgc28gd2Ug
bG9jayB0aGUgYnVmZmVyLg0KDQpOb3cgd2UgbWlnaHQgaGF2ZSBhIHJhY2UgY29uZGl0aW9uIGJl
dHdlZW4gaW4gcnh0eF9tYXAgYW5kIHVubWFwDQp3aGVyZSBpIHNob3VsZCB0YWtlIHRoZSByeF9s
b2NrIGFuZCB0aGUgdHhfbG9jayBvZiB0aGUgZ3Vlc3QgdG8gcHJldmVudA0KY29uY3VycmVudCB1
c2FnZSBvZiB0aGUgdm0gcnh0eCBidWZmZXIuIEkgd2lsbCBmaXggdGhhdCBvbmUuDQoNClBsZWFz
ZSB0ZWxsIG1lIGZvciB0aGUgc3BtYyByeHR4IGJ1ZmZlcnMgYXMgaSBhbSBub3Qgc3VyZSBpIGFt
IGZvbGxvd2luZw0Kd2hhdCB5b3UgbWVhbiB0aGVyZSA6LSkNCg0KQ2hlZXJzDQpCZXJ0cmFuZA0K
DQo=


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 10:00:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 10:00:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176558.1501023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQjev-000466-Af; Wed, 03 Dec 2025 10:00:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176558.1501023; Wed, 03 Dec 2025 10:00:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQjev-000433-5D; Wed, 03 Dec 2025 10:00:29 +0000
Received: by outflank-mailman (input) for mailman id 1176558;
 Wed, 03 Dec 2025 10:00:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1EAn=6J=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vQjet-0003xW-R9
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 10:00:27 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e3bb2761-d02e-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 11:00:25 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-64162c04f90so12009464a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 02:00:25 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-211.as6723.net. [185.5.253.211])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-647510615c0sm18190969a12.30.2025.12.03.02.00.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Dec 2025 02:00:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e3bb2761-d02e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764756025; x=1765360825; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aadf3ko+I/c1Yg3RWCNNDblN+tC0Sr7zOTobR7NNsys=;
        b=fOxl6yX3bOxfJ7nvs7mVnGeq2X6ErnN9Je8TlxfEtZCl9zzHS58Rlm6SjL5Wc/fXk9
         1IiPbC04iMqKXg7ulEvcE7IpsK27pAhmm4LWYmMqPGF/HCiWiyjioIYdcBN8VWu9cXY/
         h01n38Lc6CHf9W8Be42boiND2gDmOzJYL50YC3QIS38O8mW6NXRgGGAIL2BR40vZi1x7
         l0ZtbbeKEPwKlFXWF9EW4NqCBRsEa/axoNVHlW0xMioonjxH6559rEAJmrexXhbr4gNF
         LzULhtIz3kYQwNMtrH8+5XOR2ajco5j4pGPrrSluNmKup6mwuLfLZW25Cz/UVjhBdpCe
         M5Hw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764756025; x=1765360825;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=aadf3ko+I/c1Yg3RWCNNDblN+tC0Sr7zOTobR7NNsys=;
        b=d4z2vvD19w/3xTB+bRw5/Sms9ZV0bRYo/Cr49IeiNaQXmSFSNS1Uba5m+38qqRfdRV
         hFg90FBV3QFk8mvuE9+njFplxjc/PHxOsdjWOaM/jeN/RoBy14+MC3A5d5vqX6FWPwLF
         W9T3la44nartYJtKOyVAvBAqtmUKqJQzoFlvE+PfhEj1QJRExzOrXXpsS/60o7hOv9c7
         GDSgg7SfpfSgXG9y+nsJ3B7JJEjWCBpE/VZJGdKKbra6ZIEB4jZDtx0yz3pumVKbsRMi
         Wa21/teIeTDMHTDPBn4dk7wlcJcb8KzsJo0Sly4RqX5RH9YVjBu5LIQCq+Y4XQ0sO/Cw
         KuhA==
X-Gm-Message-State: AOJu0YwO5/imDco+kdCdES0R5mJnjaBp/2vgd6eUZtmONKgy5hN4XplT
	LGw4i2J2dIDF1YEkmO1imcSwk0aS/ITCxpb32wSYufSjex5LK4jJMwSzHhymsWjM
X-Gm-Gg: ASbGncuxOR5ImlrTosWt9gFPjXOt2FIVCFXZMWW5508n3X1egbJGwhoz14TguygXVwB
	kcKWFI4mRQyc4DDAQP8Jr8fgzB9/RVhnWG7KfcfyE0YHQI9p82Q5P8rppgKA8pXT5bp2aoqFLWT
	R0bT3gpc7hvLWiQHFOAxEdAxJ4gJfB0u3POrmyP8VpuBPxBgA08c5s8LplNdjnvm90lQNnTwWCR
	nR7erzwSeDhVzOd62BpYqUwsrky08U9Ur/kSxvk3D61cGQn9g9CAopK/1wC5bTI4pxU/l7hLdeG
	ZPNmfuNSk8UtSI09VmnMJwTnOFim+yV/lIzw5aU4ut7EUeSh65nU/6y+eIgooutS8CVMVKo3iq5
	xOKRLrc8B7Zdkt0dq2/z/osqtUlzYqfzDF/S47Alb3RM4Ysgf57/4sa5gFDA2JSM6aPd03Cn05W
	E9T27pROPoYR6MrECUrOF+taTcNMOM099IEw7QcODzp0ZnqA==
X-Google-Smtp-Source: AGHT+IEPKN9ig1SmVj1r8aKUz0n3VdZ1BtKrDstgoQy287j01bQoX3YsT6ulbwJFZvNqLbpgmaa/Ig==
X-Received: by 2002:a05:6402:1473:b0:640:947e:70ce with SMTP id 4fb4d7f45d1cf-6479c4431b5mr1258903a12.5.1764756024703;
        Wed, 03 Dec 2025 02:00:24 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v15 2/4] tools/xl: Allow compilation of 'xl resume' command on Arm
Date: Wed,  3 Dec 2025 11:57:05 +0200
Message-ID: <0518a53a9e20f37a275ac9e507c2b8be8b2a809c.1764755558.git.xakep.amatop@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1764755558.git.xakep.amatop@gmail.com>
References: <cover.1764755558.git.xakep.amatop@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

The "xl resume" command was previously excluded from Arm builds because
system suspend/resume (e.g., SYSTEM_SUSPEND via vPSCI) was not
implemented. On x86, this command is used for resume.

This change enables compilation of `xl resume` on Arm regardless of the
underlying implementation status, making the tool available for testing
and future feature support. The relevant libxl infrastructure and handler
functions are already present and usable.

Note: This does not imply full system suspend/resume support on Arm.
      The `xl suspend` command still does not work on Arm platforms.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Acked-by: Anthony PERARD <anthony.perard@vates.tech>
---
Changes in v15:
- no chnages
---
 tools/include/libxl.h     |  1 -
 tools/xl/xl.h             |  4 ++--
 tools/xl/xl_cmdtable.c    |  4 ++--
 tools/xl/xl_migrate.c     |  2 +-
 tools/xl/xl_saverestore.c |  2 +-
 tools/xl/xl_vmcontrol.c   | 12 ++++++------
 6 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index bc35e412da..14b9e4a859 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -1145,7 +1145,6 @@ typedef struct libxl__ctx libxl_ctx;
  * restoring or migrating a domain. In this case the related functions
  * should be expected to return failure. That is:
  *  - libxl_domain_suspend
- *  - libxl_domain_resume
  *  - libxl_domain_remus_start
  */
 #if defined(__arm__) || defined(__aarch64__)
diff --git a/tools/xl/xl.h b/tools/xl/xl.h
index 9000df00de..63db30a6eb 100644
--- a/tools/xl/xl.h
+++ b/tools/xl/xl.h
@@ -65,7 +65,7 @@ static const char migrate_permission_to_go[]=
     "domain is yours, you are cleared to unpause";
 static const char migrate_report[]=
     "my copy unpause results are as follows";
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
   /* followed by one byte:
    *     0: everything went well, domain is running
@@ -130,8 +130,8 @@ int main_migrate_receive(int argc, char **argv);
 int main_save(int argc, char **argv);
 int main_migrate(int argc, char **argv);
 int main_suspend(int argc, char **argv);
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 int main_resume(int argc, char **argv);
-#endif
 int main_dump_core(int argc, char **argv);
 int main_pause(int argc, char **argv);
 int main_unpause(int argc, char **argv);
diff --git a/tools/xl/xl_cmdtable.c b/tools/xl/xl_cmdtable.c
index 06a0039718..bcb2d233cc 100644
--- a/tools/xl/xl_cmdtable.c
+++ b/tools/xl/xl_cmdtable.c
@@ -198,12 +198,12 @@ const struct cmd_spec cmd_table[] = {
       "Suspend a domain to RAM",
       "<Domain>",
     },
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
     { "resume",
       &main_resume, 0, 1,
       "Resume a domain from RAM",
       "<Domain>",
     },
-#endif
     { "dump-core",
       &main_dump_core, 0, 1,
       "Core dump a domain",
@@ -548,7 +548,7 @@ const struct cmd_spec cmd_table[] = {
       "                        checkpoint must be disabled.\n"
       "-p                      Use COLO userspace proxy."
     },
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
     { "devd",
       &main_devd, 0, 1,
       "Daemon that listens for devices and launches backends",
diff --git a/tools/xl/xl_migrate.c b/tools/xl/xl_migrate.c
index b8594f44a5..4b4a379aa1 100644
--- a/tools/xl/xl_migrate.c
+++ b/tools/xl/xl_migrate.c
@@ -767,7 +767,7 @@ int main_remus(int argc, char **argv)
     close(send_fd);
     return EXIT_FAILURE;
 }
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
 
 /*
diff --git a/tools/xl/xl_saverestore.c b/tools/xl/xl_saverestore.c
index 953d791d1a..747094ec7b 100644
--- a/tools/xl/xl_saverestore.c
+++ b/tools/xl/xl_saverestore.c
@@ -270,7 +270,7 @@ int main_save(int argc, char **argv)
     return EXIT_SUCCESS;
 }
 
-#endif /* LIBXL_HAVE_NO_SUSPEND_RESUME */
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
 
 
diff --git a/tools/xl/xl_vmcontrol.c b/tools/xl/xl_vmcontrol.c
index c813732838..93766f631b 100644
--- a/tools/xl/xl_vmcontrol.c
+++ b/tools/xl/xl_vmcontrol.c
@@ -38,11 +38,6 @@ static void suspend_domain(uint32_t domid)
     libxl_domain_suspend_only(ctx, domid, NULL);
 }
 
-static void resume_domain(uint32_t domid)
-{
-    libxl_domain_resume(ctx, domid, 1, NULL);
-}
-
 int main_suspend(int argc, char **argv)
 {
     int opt;
@@ -55,6 +50,12 @@ int main_suspend(int argc, char **argv)
 
     return EXIT_SUCCESS;
 }
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
+
+static void resume_domain(uint32_t domid)
+{
+    libxl_domain_resume(ctx, domid, 1, NULL);
+}
 
 int main_resume(int argc, char **argv)
 {
@@ -68,7 +69,6 @@ int main_resume(int argc, char **argv)
 
     return EXIT_SUCCESS;
 }
-#endif
 
 static void pause_domain(uint32_t domid)
 {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 10:00:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 10:00:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176560.1501053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQjex-0004ob-32; Wed, 03 Dec 2025 10:00:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176560.1501053; Wed, 03 Dec 2025 10:00:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQjew-0004ns-Td; Wed, 03 Dec 2025 10:00:30 +0000
Received: by outflank-mailman (input) for mailman id 1176560;
 Wed, 03 Dec 2025 10:00:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1EAn=6J=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vQjev-0003xW-6g
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 10:00:29 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e4a1ad3a-d02e-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 11:00:27 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-64162c04f90so12009517a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 02:00:27 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-211.as6723.net. [185.5.253.211])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-647510615c0sm18190969a12.30.2025.12.03.02.00.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Dec 2025 02:00:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e4a1ad3a-d02e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764756026; x=1765360826; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nXdf7WuWMyXQpmMPvQ2wyLtkzf1aXZKEnXZRs84dpyw=;
        b=l2OndIrhi+lYpgMfWItPzwvkUve7BalYca9B1CVaXQe0A5j8s78TrJ573TlJYW8mnZ
         vF+GDKfXjQhM8o2F4wUWhPYJiyCMs91F/JGfvKzyjYyZmbQP/6ndo5jiW+YrN81TRMze
         h2Wx7EzfrcQ5BEINIe8iI4ivS1DsMTzhZBzTkuxWRmRZppRxhPw6IYfrcOZW8uhhHKQZ
         fUhvNauErPvgB6CsdEVtXP/dEM6pRfjwpRIp5v9PTMbpT6fBwQ8ttHFLTIHluAloEurI
         Ks5lEs28e+HvyRn2UVBlziEAAqSQThN/F+BMCng8V3+EgB8ce3ICp9Kf7/uZWC2sVL0q
         C1Gw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764756026; x=1765360826;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=nXdf7WuWMyXQpmMPvQ2wyLtkzf1aXZKEnXZRs84dpyw=;
        b=bfduIFE0zkoALnFVBeMLiNjkiQHMWSYcIYWCLx0uSI04Jv5T1+lzz2cuzaCGyRWZeY
         zknX+5SvesHqq5fz0nzfK7Yi7z+RGOuA9o1FP3qKxgSOQwAHtkTUipx6vhcBSjeByUue
         CN5YqPpzMBwjSBdhFiJBIhNeUi9GBqqy+1cBj8R/CYzmaRxmQjBgcAweHO0YI8iFUkq/
         MwEUdnbJuUc7zITm5U3WTir/PxabaQo6V0gSpburQ5jg9iZtL92UU+aLeC0JUViN7gZ5
         cSuuGpPxPuqWH+fC3fB+xNWITb72ia+KD08pZPS57I18/2HdrfpzghxcdDVEEPlAirM2
         PZfA==
X-Gm-Message-State: AOJu0YzD799t2QP+0vq8zlj9/C4+IWCrhN9TsOB058El+8vdO2gq67jf
	bYHb79yoOnaCvZU6gbMzLIQEbC6lfmKj3lpeiVNVd4vaCpmBnBVqPndgA06A6a9x
X-Gm-Gg: ASbGncvHOnwp8s/OYHpLGDuFr07LEPZv6+R65zoIu4pfqSsvjpmwbM9lgnqwntqEkIk
	C1Hh7KyTzQHgPaC1SOjmjYM504u8r161NQvDXotISo0Z6Ac3VAEZXX4p4ypfGmsqAI8OIaXX7WQ
	0ZRfZ5tPjNWkqcZULS7Adn6Ky3+MvsswB7T/77kFq97WfTbAsogJbQjiOk80+u63Hzxv5WXPwRU
	GNpaOxW+XMVE4lSTINbH+3tN8yPUf6RH+uelHlbTTFPJlci/xCIqXs6fkBEdIt7KlefyJ8L9vkD
	hZ/m/wDWRrLZ/ydhUo7XSjPWaIfq/2nHb/GXgXlADXV8SKczy+G96jowljE2akhT/L3tqmduEjK
	bq1t+tTKmPlFYcdKGzPFI4lX2XHuxquT9/E5Ya+2azJJTJoNBpNBmvSWvaqTg9CG0vB7BR3J0b4
	jP1t9czcPHxQNbTuxNnJP2vRt/ozRAjCx7/2JK0kpWb1qs3Q==
X-Google-Smtp-Source: AGHT+IHN9WVLht4jgbNWDLGX4jppGZHfv1eLrOxJM+UkFra0ijDkGDuRMIp1r+Ddoxf/rDGyn0IOxw==
X-Received: by 2002:a05:6402:2687:b0:640:c8b7:f2bd with SMTP id 4fb4d7f45d1cf-6479c51971fmr1062217a12.29.1764756026191;
        Wed, 03 Dec 2025 02:00:26 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v15 3/4] SUPPORT.md: Document PSCI SYSTEM_SUSPEND support for guests
Date: Wed,  3 Dec 2025 11:57:06 +0200
Message-ID: <f92317db2d3d6ec1d1ee8978661f34206d50415c.1764755558.git.xakep.amatop@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1764755558.git.xakep.amatop@gmail.com>
References: <cover.1764755558.git.xakep.amatop@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Add a new entry under the "Virtual Hardware, Hypervisor" section
documenting support for the optional PSCI SYSTEM_SUSPEND function
exposed to guests.

This function is available via the virtual PSCI interface and allows
guest domains (domUs) to initiate system suspend operations.

The feature is currently marked as "Tech Preview".

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Acked-by: Julien Grall <jgrall@amazon.com>
---
Changes in V15:
- no changes.
---
 SUPPORT.md | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/SUPPORT.md b/SUPPORT.md
index d441bccf37..8e7ab7cb3e 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -962,8 +962,9 @@ Emulated PSCI interface exposed to guests. We support all mandatory
 functions of PSCI 1.1. See below for the list of optional PSCI call
 implemented and their status.
 
-   Status, Mandatory: Supported
-   Status, MIGRATE_INFO_TYPE: Supported
+    Status, Mandatory: Supported
+    Status, MIGRATE_INFO_TYPE: Supported
+    Status, SYSTEM_SUSPEND: Tech Preview
 
 ## Virtual Hardware, QEMU
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 10:00:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 10:00:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176556.1501012 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQjeu-0003xk-OG; Wed, 03 Dec 2025 10:00:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176556.1501012; Wed, 03 Dec 2025 10:00:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQjeu-0003xd-LH; Wed, 03 Dec 2025 10:00:28 +0000
Received: by outflank-mailman (input) for mailman id 1176556;
 Wed, 03 Dec 2025 10:00:26 +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
 <SRS0=1EAn=6J=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vQjes-0003xM-N4
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 10:00:26 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e375cb0d-d02e-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 11:00:25 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-b727f452fffso115351066b.1
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 02:00:25 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-211.as6723.net. [185.5.253.211])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-647510615c0sm18190969a12.30.2025.12.03.02.00.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Dec 2025 02:00:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e375cb0d-d02e-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764756024; x=1765360824; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=MK/pVqfc47MyltDBIvg2lje02DkokilRefxSfXQOmfw=;
        b=ejQwHhkDXrjNz8mfAmvJd9qlFlwfrX+zOs+Hy74lhg31+PLwcDjHm27UjYxg7RU5QG
         VhvjL5LMwzx1vYTy85jOuaiLRL5VsG1eU+AixmbtFsSa0Ewm6+1bqUYLMZpb65Ne4jl8
         754oKb9Z/33nhiya4hGrEvw9bhuNnlxHWks1R8rNl01AXvFQFTzCFNtSBqY22VX7aomv
         tAekvaHTn9J2VtY3R5aUmzoq+WUDcnfl1nuzRbsBdkczalg77BYq5A3knRtJRo4yAS5B
         umFMs3QFIpAjYzFL7PugsTfzCxbqfv5Mu8kxOqT1C+LID8HDvSutq3eayuDxTh+4mvpP
         hACA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764756024; x=1765360824;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MK/pVqfc47MyltDBIvg2lje02DkokilRefxSfXQOmfw=;
        b=Vz5pqqyHEWHCBL1AL39siQED7V20QpeEySier9irFmLewCUOemGPh8b9f/NMBlMJjn
         zGjy7HEsVqm5in8MJ1+WVKIe51K+qv7Sz2hfpWquY1Jp9h8QPef2qChrONva/JHNxOxl
         JA0CTP+5dHMpIPDKfzeDJ0zJnSIhBMoiogfFJW7v9kbCWa+XY6x+nhxiqGw0gZjUzYZU
         yxrlzkHd7LD6x6a+b7tZGRir5mKxULJLj1E0ENonHPDfbv/GSUlND31DquAyem7Y3o9w
         gsBeBt1/PVxVq1xtOeEyfT8P2j/D33OAxkglVsepVhPNvyFZJ94yyizQenYA8cxPnj/F
         cHjg==
X-Gm-Message-State: AOJu0Yxk/now1BxZQmeghOH+9cGGUQedwU/l+3hZn7mvktzLQTBq8y8o
	Qx6ZE4+qRPYkO7K4l8qqy1XYKFStB8hy7gYPBhWAouYM00fhYUNXqeO9+jaNhV3o
X-Gm-Gg: ASbGncu1Xe4NAnFqWZo/sb2L8g2eAYLs8+cE8pfU+fXCOB3uEFpyz5bMrogp4Vfo4uj
	ZltCZd9mHixnOakcSW1tCsbqe4wxvYJeIPXuH9Sdrm782pd0CMt1mfVDAllwuEM32guNx3dAmRu
	lN7bw04xTG8o94eQUvigxn+cYosmUQ86s4fdD27Bk1CRyztdjzwrQIlQuxhz+dnlb0ddKZOpCT5
	yUBwfrtK7yBj8B1e9y/gzjNJzK4uFvDD+5AyvzlWGRQItaO5KRg8zrVUfVoaEr571kgKNRdLyRj
	6up3csDwgtdzsA1DH+usIPrFyd+/IhkqMjCFAk36+HeX0HlNGh+zQrWOjBHGIvY0Uo8CCWcTKyT
	zojSnYVm/nHv1EGN8UWxeOJJL3HQg2QunFyXen0rQjQhbU2K15EUwwZlwlVRjtzgJpEpHMozZ8+
	rAyu1KanHqx+4BRAcLa/05bDvkwoLQ0NV2wxcocS7BgAnq2Q==
X-Google-Smtp-Source: AGHT+IFg6lQs2OsZsNCGIWTjjVJLl2dXbCRU2KNHwNow3ieDEL0zFgTAdsdzf5Agaia5hPgyoXOs7Q==
X-Received: by 2002:a17:907:741:b0:b3f:f6d:1d9e with SMTP id a640c23a62f3a-b79c21c52e5mr694119366b.6.1764756022474;
        Wed, 03 Dec 2025 02:00:22 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v15 0/4] Enable guest suspend/resume support on ARM via vPSCI
Date: Wed,  3 Dec 2025 11:57:03 +0200
Message-ID: <cover.1764755558.git.xakep.amatop@gmail.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch series introduces the initial support for guest suspend
and resume on ARM platforms using the PSCI SYSTEM_SUSPEND interface. The main
goal is to allow ARM guests to request suspension using PSCI and be resumed
by the control domain (e.g., via "xl resume").


Background

The PSCI SYSTEM_SUSPEND call is part of the PSCI v1.0+ specification and is
used by guests to enter the deepest possible power state. On Xen/ARM, we
emulate this interface in the virtual PSCI (vPSCI) layer for guests.

This series includes:

1. A new vPSCI implementation of the PSCI SYSTEM_SUSPEND function for guests
2. Documentation updates to SUPPORT.md to reflect PSCI and vPSCI support status
3. Enabling "xl resume" command compilation for ARM, which was previously disabled


Usage

For Linux-based guests:
  - Suspend can be triggered using: "echo mem > /sys/power/state" or "systemctl suspend"
  - Resume can be performed from control domain using: "xl resume <domain>"

For more information, refer to the official Linux kernel documentation on power management.

Note that currently, SYSTEM_SUSPEND is supported only for guest domains (not for
the hardware domain).
---

This is the first part of previous patch series and originally consist only
with necessary changes needed for guest domain suspend.

The second part can be found here:
    https://patchew.org/Xen/cover.1756763487.git.mykola._5Fkvach@epam.com/
---

Changes in V15:
- add forward declaration of vcpu and domain structures to asm/suspend.h
- minor fixes after review

Mykola Kvach (4):
  xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
  tools/xl: Allow compilation of 'xl resume' command on Arm
  SUPPORT.md: Document PSCI SYSTEM_SUSPEND support for guests
  CHANGELOG: Document guest suspend/resume to RAM support on Arm

 CHANGELOG.md                          |   4 +
 SUPPORT.md                            |   5 +-
 tools/include/libxl.h                 |   1 -
 tools/xl/xl.h                         |   4 +-
 tools/xl/xl_cmdtable.c                |   4 +-
 tools/xl/xl_migrate.c                 |   2 +-
 tools/xl/xl_saverestore.c             |   2 +-
 tools/xl/xl_vmcontrol.c               |  12 +--
 xen/arch/arm/domain.c                 |  41 +++++++++
 xen/arch/arm/include/asm/domain.h     |   2 +
 xen/arch/arm/include/asm/perfc_defn.h |   1 +
 xen/arch/arm/include/asm/psci.h       |   2 +
 xen/arch/arm/include/asm/suspend.h    |  27 ++++++
 xen/arch/arm/include/asm/vpsci.h      |   5 +-
 xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-----
 xen/common/domain.c                   |   5 ++
 xen/include/xen/suspend.h             |  25 ++++++
 17 files changed, 221 insertions(+), 37 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/suspend.h
 create mode 100644 xen/include/xen/suspend.h

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 10:00:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 10:00:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176559.1501032 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQjev-0004Ho-SW; Wed, 03 Dec 2025 10:00:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176559.1501032; Wed, 03 Dec 2025 10:00:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQjev-0004Ex-LE; Wed, 03 Dec 2025 10:00:29 +0000
Received: by outflank-mailman (input) for mailman id 1176559;
 Wed, 03 Dec 2025 10:00:28 +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
 <SRS0=1EAn=6J=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vQjeu-0003xM-Pm
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 10:00:28 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e53c472a-d02e-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 11:00:28 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-640a0812658so4284256a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 02:00:28 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-211.as6723.net. [185.5.253.211])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-647510615c0sm18190969a12.30.2025.12.03.02.00.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Dec 2025 02:00:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e53c472a-d02e-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764756027; x=1765360827; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=s5UVLmBmvgKxs7oTb1qCk8tDRMlakYOYuX5/F17a/uQ=;
        b=ThFUqNI2JZsqJ8uQw0G47UgWipRo4mZl+8EbnxH/zXWWN/1ozTpipw4qK8AryZ2xBo
         6NT2EV7Q4ymtnDhoWZO8gsTvKtVfKTDjvE98ee1Eds11jfjP37MxUDIbxSOoZ9H70DBd
         kzYcIn8GYIzjsifszlNvb0AOevOEDcCZ1iWtg8ASi3HTWKl4QB+X5ybbdu8BWxic5qP8
         6TVy27ucs6dx9bwoWtboKLnWwmsjd23ENnITmkYNGzlUKeH11K7MRW6BYvwXdWaFyYnm
         6sFxU1iGyoL7qa9jsTevUiUA5yveb0PPXUYVE+5QHqMecprop/r8N2hqmPvlcp+dGuAL
         BZJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764756027; x=1765360827;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=s5UVLmBmvgKxs7oTb1qCk8tDRMlakYOYuX5/F17a/uQ=;
        b=HpZxGcV4W48U+d7n/snxH4lpoar+71B+KEQQHCE0vtmW1w3QAqP5hi0UdUdwCjOIUQ
         PIFqrHn6xxyNtgB36nnjZ0/IMbqsBEWqtAqK9fmdWPGG9L06lgoAMpzq8u/+QPjvsbgx
         Shq900GlPTgDzN4U2Tb0n7BVb3asN4hmy29CLtP0AloGxDySlXTHQgrRaHWuVKZExRkf
         MotFEH1uDNtRQp06lXFG2WFNnpC9HBRK1rhYBp4jrPRGJbF+WovQYvNhMphQhZftHt1W
         sLITQZhSDmGooTstBlkR9cvvr676CqcUP/fzHyICEezLwtjFk8gr+7bhJtj7IKwodbmj
         nOaA==
X-Gm-Message-State: AOJu0YzlkxkusJKAf5hjHNlMPo3SjjEUCTZ3x9rwzNSjSIjsAts9cbA1
	Dt1HzVVe7AkwKsbmonbMiqnaFuFNOP/l2SYV3kwzXDop3yC902/jPi5GGUn65Z3x
X-Gm-Gg: ASbGncsBvrDjSi9zmgJmzHBb8LKhRXoQJzXQoGZot3jWGrdk052eVOWJpoh72KjPqDb
	xLVUm9SLLOv9dEi+iW6KUBMyh6lcOW4Xi+623dwqWxheXZofsNA7TT0FGn94OXMU48MZoc+X7lu
	5f4H5yJnmz4htRvpJBdns76KvkFYaBQagKARkapsuP/s0EH3vhAGqGl3hgp4oZdfZ1nRkHWWR0F
	9FDTy9mCsC8Itp0Ol2F01M/6WebVwcBW9v7pGLQAN7+D6rxHNAa7ALz+7H9qcDvVr+Ez7BMX7RA
	soWqwxZ6XYx7X9TqAMFYBN+sX/H1dGYWPLoasE9Ya4uTJd2TWJiieBxgWPkiJdcwdI1dvNeGrQ4
	N0/hGiqXb1qsv/6/tGqfmbL+bAJxtvCumwVk6M5Xc0tqmg0eNljj10wcXWC5AYNBzuxh7pfna2J
	b+9XBamBX3DMKI0ncXkBOpnKqmWuQcW2f/WeYulbdXbwAzBuLCEqYtdjRu
X-Google-Smtp-Source: AGHT+IE4Ukb6uX0vF6c5uedNAyGgvE09ZzPx5FI8z/XX5GVbKvAoTMzktZobsuDRXNOCTMBTiXbB/A==
X-Received: by 2002:a05:6402:50cc:b0:640:a50b:609 with SMTP id 4fb4d7f45d1cf-6479c48ab45mr1432568a12.16.1764756027323;
        Wed, 03 Dec 2025 02:00:27 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v15 4/4] CHANGELOG: Document guest suspend/resume to RAM support on Arm
Date: Wed,  3 Dec 2025 11:57:07 +0200
Message-ID: <ba51b0ca5457566e1dbef2b6d6ff984dbc318895.1764755558.git.xakep.amatop@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1764755558.git.xakep.amatop@gmail.com>
References: <cover.1764755558.git.xakep.amatop@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Mention the newly added support for guest suspend and resume to/from
RAM via vPSCI on Arm platforms.

This support is limited to non-hardware domain guests.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in v15:
- no changes.
---
 CHANGELOG.md | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index adaad5ee89..18757d6677 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 
 ### Added
 
+ - On Arm:
+   - Support for guest suspend and resume to/from RAM via vPSCI.
+     Applies only to non-hardware domain guests.
+
 ### Removed
 
 ## [4.21.0](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.21.0) - 2025-11-19
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 10:00:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 10:00:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176557.1501018 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQjev-00040x-2f; Wed, 03 Dec 2025 10:00:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176557.1501018; Wed, 03 Dec 2025 10:00:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQjeu-00040q-TZ; Wed, 03 Dec 2025 10:00:28 +0000
Received: by outflank-mailman (input) for mailman id 1176557;
 Wed, 03 Dec 2025 10:00:27 +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
 <SRS0=1EAn=6J=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vQjet-0003xM-CK
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 10:00:27 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e3555432-d02e-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 11:00:25 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-64149f78c0dso9943203a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 02:00:25 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-211.as6723.net. [185.5.253.211])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-647510615c0sm18190969a12.30.2025.12.03.02.00.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Dec 2025 02:00:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e3555432-d02e-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764756024; x=1765360824; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nLsHT/7UQMO7e6XL24sydV+TIgZIA2Vb3cpc3ckDtxc=;
        b=VCHhVUsSh0gMaofNoH8/+TC8xZ+idCUc+UDp6rPCysbFka8BGHIXEfJA5fLNFNWMIb
         gogoaI293/tdIZyRrjA8ENxxJiQ4YLNWmNjQ1LbxuFFAzxvFxeMjsnoWuwEIYyrV7T0f
         BE2ks3whtF8RRxxEmB0GG/pS4YEDP86LzGWBTlFTRjSYQU/t7gs/ECH5WYEWlWGdb6rL
         ay8t7BEZvSDiFWpowVAj6dnd5RaiawsI6L3nPalUsFfMN2IahG0DIDo/4z+ooPauSH3E
         8VjrwjppqEwNJZldpOfmy4cjvX/tVDiA0AKInPDrDw1gHGNIzGnWOHb866GGUYTiCvGP
         wSSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764756024; x=1765360824;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=nLsHT/7UQMO7e6XL24sydV+TIgZIA2Vb3cpc3ckDtxc=;
        b=Awt5E0luilgyMGPkXs+1uWLX1YEPNqkInaeVADs+W8xh/42rzF54iZX2w7WWKb3MZz
         G4MOgu4hzdFSj1v/1yYY72V7EenbdTaN7Qg2MQUuN991JElktu/SmlVmdliL9MX+QWjv
         pR4h9HhR/M5REQ5QCIRWbdqFN1zVBV7Bg201MowBVbfL3Mcv+jkadYioymFV9f9zyxko
         H/Zpkw9EoAoRX0w8XhzGGFB3cPNd+egMwUlq3tRphM6R7Zka0nEz4P9b0NfFg9r9uDKJ
         P5floEdOuw9txEq2JGpcNIwoe1P0CYo2V130kcRgv6kdqMkTKGjyTOu4vHXVyVy8NTZe
         9ISw==
X-Gm-Message-State: AOJu0YyEDVopjNQZOQewrKVJZG/AYQg0R0MuVhpgqPaYB9imlrVB8H5Z
	LNBzYKtJlMQde2n93EpnpCzRw9zct8fgVuntq+VRH/eos/SWDjnbFdeLX7c1H+PO
X-Gm-Gg: ASbGncugx2c0nZhyqBK7W8GrxltmwVzv79F5GubOohuXvN3/v+27YbCx5evx9kVykkY
	L1C1Tm6O0q9T2XGv/yqL1Fu1PNaDXc0a6Q1wXanSRM9b9qwzDkmFrkbKPcoc9EEXs1r4ArgLvr8
	pFZYarvZ2TeWGTgZ4+P6XVNBsDxyhTx6XqKWq/bDonM7t2mcVv27JUEh88SwLuJx/rYNDqKYy6e
	NuBQ/32OvyD2cD0Ck8BaYaFOST4dMVAFr9ryNHyLjhgUQDGSPIn1qeQVx3qXWichz62sgClCIpU
	c6KgpAq03xbh3iKkz1yNs4ANrmwHcbHYdVLJgVerXhRf1kICXDRtl1iArVEFjlFyFvanHbirTtF
	z8Gkprg5XNTNJOJinzi0aYBBPKfqMi9o7byu12RCGmUJezCvMBKMLb8N0ctN5anOCLp7tePXYZ4
	Cpjfy2N3vQmQa9O3Q+AT6bGU6FVtUuVJL9afPApcOm3Lajeg==
X-Google-Smtp-Source: AGHT+IEGo5ME6EwHvRNsyvEd0xxwAuQKVK2DvplPv2NEV/CKKXfA6WAqntWD2aIRn2vD9asNWBNqVg==
X-Received: by 2002:a05:6402:26c3:b0:643:8301:d136 with SMTP id 4fb4d7f45d1cf-6479c47fe11mr1213607a12.19.1764756023824;
        Wed, 03 Dec 2025 02:00:23 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v15 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
Date: Wed,  3 Dec 2025 11:57:04 +0200
Message-ID: <f05ece00c276187d764c7539142f29ee3c48987c.1764755558.git.xakep.amatop@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1764755558.git.xakep.amatop@gmail.com>
References: <cover.1764755558.git.xakep.amatop@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Add support for the PSCI SYSTEM_SUSPEND function in the vPSCI interface,
allowing guests to request suspend via the PSCI v1.0+ SYSTEM_SUSPEND call
(both 32-bit and 64-bit variants).

Implementation details:
- Add SYSTEM_SUSPEND function IDs to PSCI definitions
- Trap and handle SYSTEM_SUSPEND in vPSCI
- Allow only non-hardware domains to invoke SYSTEM_SUSPEND; return
  PSCI_NOT_SUPPORTED for the hardware domain to avoid halting the system
  in hwdom_shutdown() via domain_shutdown
- Require all secondary VCPUs of the calling domain to be offline before
  suspend, as mandated by the PSCI specification

The arch_domain_resume() function is an architecture-specific hook that is
invoked during domain resume to perform any necessary setup or restoration
steps required by the platform.

The new vpsci_vcpu_up_prepare() helper is called on the resume path to set up
the vCPU context (such as entry point, some system regs and context ID) before
resuming a suspended guest. This keeps ARM/vPSCI-specific logic out of common
code and avoids intrusive changes to the generic resume flow.

Usage:

For Linux-based guests, suspend can be initiated with:
    echo mem > /sys/power/state
or via:
    systemctl suspend

Resuming the guest is performed from control domain using:
      xl resume <domain>

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V15:
- add forward declaration of vcpu and domain structures to asm/suspend.h
- minor fixes after review
---
 xen/arch/arm/domain.c                 |  41 +++++++++
 xen/arch/arm/include/asm/domain.h     |   2 +
 xen/arch/arm/include/asm/perfc_defn.h |   1 +
 xen/arch/arm/include/asm/psci.h       |   2 +
 xen/arch/arm/include/asm/suspend.h    |  27 ++++++
 xen/arch/arm/include/asm/vpsci.h      |   5 +-
 xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-----
 xen/common/domain.c                   |   5 ++
 xen/include/xen/suspend.h             |  25 ++++++
 9 files changed, 202 insertions(+), 22 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/suspend.h
 create mode 100644 xen/include/xen/suspend.h

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index ab78444335..f4ae33d6c7 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -12,6 +12,8 @@
 #include <xen/softirq.h>
 #include <xen/wait.h>
 
+#include <public/sched.h>
+
 #include <asm/arm64/sve.h>
 #include <asm/cpuerrata.h>
 #include <asm/cpufeature.h>
@@ -24,10 +26,12 @@
 #include <asm/platform.h>
 #include <asm/procinfo.h>
 #include <asm/regs.h>
+#include <asm/suspend.h>
 #include <asm/firmware/sci.h>
 #include <asm/tee/tee.h>
 #include <asm/vfp.h>
 #include <asm/vgic.h>
+#include <asm/vpsci.h>
 #include <asm/vtimer.h>
 
 #include "vpci.h"
@@ -880,6 +884,43 @@ void arch_domain_creation_finished(struct domain *d)
     p2m_domain_creation_finished(d);
 }
 
+int arch_domain_resume(struct domain *d)
+{
+    int rc;
+    struct resume_info *ctx = &d->arch.resume_ctx;
+
+    if ( !d->is_shutting_down || d->shutdown_code != SHUTDOWN_suspend )
+    {
+        dprintk(XENLOG_WARNING,
+                "%pd: Invalid domain state for resume: is_shutting_down=%u, shutdown_code=%u\n",
+                d, d->is_shutting_down, d->shutdown_code);
+        return -EINVAL;
+    }
+
+    /*
+     * It is still possible to call domain_shutdown() with a suspend reason
+     * via some hypercalls, such as SCHEDOP_shutdown or SCHEDOP_remote_shutdown.
+     * In these cases, the resume context will be empty.
+     * This is not expected to cause any issues, so we just notify about the
+     * situation and return without error, allowing the existing logic to
+     * proceed as expected.
+     */
+    if ( !ctx->wake_cpu )
+    {
+        dprintk(XENLOG_INFO, "%pd: Wake CPU pointer context was not provided\n",
+                d);
+        return 0;
+    }
+
+    rc = vpsci_vcpu_up_prepare(ctx->wake_cpu , ctx->ep, ctx->cid);
+    if ( rc )
+        printk("%pd: Failed to resume domain (ret %d)\n", d, rc);
+
+    memset(ctx, 0, sizeof(*ctx));
+
+    return rc;
+}
+
 static int is_guest_pv32_psr(uint32_t psr)
 {
     switch (psr & PSR_MODE_MASK)
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index af3e168374..e637cb4de0 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -5,6 +5,7 @@
 #include <xen/timer.h>
 #include <asm/page.h>
 #include <asm/p2m.h>
+#include <asm/suspend.h>
 #include <asm/vfp.h>
 #include <asm/mmio.h>
 #include <asm/gic.h>
@@ -126,6 +127,7 @@ struct arch_domain
     void *sci_data;
 #endif
 
+    struct resume_info resume_ctx;
 }  __cacheline_aligned;
 
 struct arch_vcpu
diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/include/asm/perfc_defn.h
index effd25b69e..8dfcac7e3b 100644
--- a/xen/arch/arm/include/asm/perfc_defn.h
+++ b/xen/arch/arm/include/asm/perfc_defn.h
@@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system_reset")
 PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
 PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
 PERFCOUNTER(vpsci_features,            "vpsci: features")
+PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
 
 PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
 
diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/psci.h
index 4780972621..48a93e6b79 100644
--- a/xen/arch/arm/include/asm/psci.h
+++ b/xen/arch/arm/include/asm/psci.h
@@ -47,10 +47,12 @@ void call_psci_system_reset(void);
 #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
 #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
 #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
+#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
 
 #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
 #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
 #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
+#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
 
 /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
 #define PSCI_0_2_AFFINITY_LEVEL_ON      0
diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
new file mode 100644
index 0000000000..313d03ea59
--- /dev/null
+++ b/xen/arch/arm/include/asm/suspend.h
@@ -0,0 +1,27 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef ARM_SUSPEND_H
+#define ARM_SUSPEND_H
+
+struct domain;
+struct vcpu;
+
+struct resume_info {
+    register_t ep;
+    register_t cid;
+    struct vcpu *wake_cpu;
+};
+
+int arch_domain_resume(struct domain *d);
+
+#endif /* ARM_SUSPEND_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/asm/vpsci.h
index 0cca5e6830..d790ab3715 100644
--- a/xen/arch/arm/include/asm/vpsci.h
+++ b/xen/arch/arm/include/asm/vpsci.h
@@ -23,12 +23,15 @@
 #include <asm/psci.h>
 
 /* Number of function implemented by virtual PSCI (only 0.2 or later) */
-#define VPSCI_NR_FUNCS  12
+#define VPSCI_NR_FUNCS  14
 
 /* Functions handle PSCI calls from the guests */
 bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
 bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid);
 
+int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
+                          register_t context_id);
+
 #endif /* __ASM_VPSCI_H__ */
 
 /*
diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index 7ba9ccd94b..c4d616ec68 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -10,32 +10,16 @@
 
 #include <public/sched.h>
 
-static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
-                            register_t context_id)
+int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
+                          register_t context_id)
 {
-    struct vcpu *v;
-    struct domain *d = current->domain;
-    struct vcpu_guest_context *ctxt;
     int rc;
+    struct domain *d = v->domain;
     bool is_thumb = entry_point & 1;
-    register_t vcpuid;
-
-    vcpuid = vaffinity_to_vcpuid(target_cpu);
-
-    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
-        return PSCI_INVALID_PARAMETERS;
-
-    /* THUMB set is not allowed with 64-bit domain */
-    if ( is_64bit_domain(d) && is_thumb )
-        return PSCI_INVALID_ADDRESS;
-
-    if ( !test_bit(_VPF_down, &v->pause_flags) )
-        return PSCI_ALREADY_ON;
+    struct vcpu_guest_context *ctxt;
 
     if ( (ctxt = alloc_vcpu_guest_context()) == NULL )
-        return PSCI_DENIED;
-
-    vgic_clear_pending_irqs(v);
+        return -ENOMEM;
 
     memset(ctxt, 0, sizeof(*ctxt));
     ctxt->user_regs.pc64 = (u64) entry_point;
@@ -76,8 +60,37 @@ static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
     free_vcpu_guest_context(ctxt);
 
     if ( rc < 0 )
+        return rc;
+
+    return 0;
+}
+
+static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
+                            register_t context_id)
+{
+    struct vcpu *v;
+    struct domain *d = current->domain;
+    int rc;
+    bool is_thumb = entry_point & 1;
+    register_t vcpuid;
+
+    vcpuid = vaffinity_to_vcpuid(target_cpu);
+
+    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
+        return PSCI_INVALID_PARAMETERS;
+
+    /* THUMB set is not allowed with 64-bit domain */
+    if ( is_64bit_domain(d) && is_thumb )
+        return PSCI_INVALID_ADDRESS;
+
+    if ( !test_bit(_VPF_down, &v->pause_flags) )
+        return PSCI_ALREADY_ON;
+
+    rc = vpsci_vcpu_up_prepare(v, entry_point, context_id);
+    if ( rc )
         return PSCI_DENIED;
 
+    vgic_clear_pending_irqs(v);
     vcpu_wake(v);
 
     return PSCI_SUCCESS;
@@ -197,6 +210,48 @@ static void do_psci_0_2_system_reset(void)
     domain_shutdown(d,SHUTDOWN_reboot);
 }
 
+static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
+{
+    int32_t rc;
+    struct vcpu *v;
+    struct domain *d = current->domain;
+    bool is_thumb = epoint & 1;
+
+    /* THUMB set is not allowed with 64-bit domain */
+    if ( is_64bit_domain(d) && is_thumb )
+        return PSCI_INVALID_ADDRESS;
+
+    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
+    if ( is_hardware_domain(d) )
+        return PSCI_NOT_SUPPORTED;
+
+    /* Ensure that all CPUs other than the calling one are offline */
+    domain_lock(d);
+    for_each_vcpu ( d, v )
+    {
+        if ( v != current && is_vcpu_online(v) )
+        {
+            domain_unlock(d);
+            return PSCI_DENIED;
+        }
+    }
+    domain_unlock(d);
+
+    rc = domain_shutdown(d, SHUTDOWN_suspend);
+    if ( rc )
+        return PSCI_DENIED;
+
+    d->arch.resume_ctx.ep = epoint;
+    d->arch.resume_ctx.cid = cid;
+    d->arch.resume_ctx.wake_cpu = current;
+
+    gprintk(XENLOG_DEBUG,
+            "SYSTEM_SUSPEND requested, epoint=%#"PRIregister", cid=%#"PRIregister"\n",
+            epoint, cid);
+
+    return rc;
+}
+
 static int32_t do_psci_1_0_features(uint32_t psci_func_id)
 {
     /* /!\ Ordered by function ID and not name */
@@ -214,6 +269,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
     case PSCI_0_2_FN32_SYSTEM_OFF:
     case PSCI_0_2_FN32_SYSTEM_RESET:
     case PSCI_1_0_FN32_PSCI_FEATURES:
+    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
+    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
     case ARM_SMCCC_VERSION_FID:
         return 0;
     default:
@@ -344,6 +401,23 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
         return true;
     }
 
+    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
+    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
+    {
+        register_t epoint = PSCI_ARG(regs, 1);
+        register_t cid = PSCI_ARG(regs, 2);
+
+        if ( fid == PSCI_1_0_FN32_SYSTEM_SUSPEND )
+        {
+            epoint &= GENMASK(31, 0);
+            cid &= GENMASK(31, 0);
+        }
+
+        perfc_incr(vpsci_system_suspend);
+        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid));
+        return true;
+    }
+
     default:
         return false;
     }
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 3b6e9471c4..33f33f2838 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -26,6 +26,7 @@
 #include <xen/hypercall.h>
 #include <xen/delay.h>
 #include <xen/shutdown.h>
+#include <xen/suspend.h>
 #include <xen/percpu.h>
 #include <xen/multicall.h>
 #include <xen/rcupdate.h>
@@ -1363,6 +1364,9 @@ void domain_resume(struct domain *d)
 
     spin_lock(&d->shutdown_lock);
 
+    if ( arch_domain_resume(d) )
+        goto fail;
+
     d->is_shutting_down = d->is_shut_down = 0;
     d->shutdown_code = SHUTDOWN_CODE_INVALID;
 
@@ -1373,6 +1377,7 @@ void domain_resume(struct domain *d)
         v->paused_for_shutdown = 0;
     }
 
+ fail:
     spin_unlock(&d->shutdown_lock);
 
     domain_unpause(d);
diff --git a/xen/include/xen/suspend.h b/xen/include/xen/suspend.h
new file mode 100644
index 0000000000..528879c2a9
--- /dev/null
+++ b/xen/include/xen/suspend.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef XEN_SUSPEND_H
+#define XEN_SUSPEND_H
+
+#if __has_include(<asm/suspend.h>)
+#include <asm/suspend.h>
+#else
+static inline int arch_domain_resume(struct domain *d)
+{
+    return 0;
+}
+#endif
+
+#endif /* XEN_SUSPEND_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 10:09:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 10:09:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176610.1501062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQjnh-0006yp-UE; Wed, 03 Dec 2025 10:09:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176610.1501062; Wed, 03 Dec 2025 10:09:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQjnh-0006yi-RR; Wed, 03 Dec 2025 10:09:33 +0000
Received: by outflank-mailman (input) for mailman id 1176610;
 Wed, 03 Dec 2025 10:09:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kX12=6J=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vQjnf-0006ya-RJ
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 10:09:31 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 27c8e1e8-d030-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 11:09:29 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4779a4fc95aso5056665e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 02:09:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4792a7970dbsm37830705e9.3.2025.12.03.02.09.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Dec 2025 02:09:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 27c8e1e8-d030-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764756569; x=1765361369; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6J2dEnsrsETbG54XCAomp9SR0qwFKyS7lrh1SrqgGEs=;
        b=DzapJ5cbs7+Ea1JAwdjqFiYiwU64hYp7LE5RBCofLTcM2gS+Oso0r7PYrNWyzVfxhp
         KbokitNSZVhP4YgRymAhMpxuGq6zA4HEizNVhJVhXNI/hgVldynwTG8oV+i9KnQQbGiz
         ijkPufZPBbkKPJ2LHdj9iC8TX27DDM6Mk/KZwf2zBfk9Ln4uwC+PE53MzIUWQiixYJKu
         6w7RVBbuyo91bD4gBbbqc00kHwM5GlcOZkGK1U4anMDtG08nVM+thBI9lF2V5oZ3w3Nt
         qRgdBHfUtRIWCzCaYOzvxRf3lraSxsugHC8AAs2wt6MbcYIszHfVJoZoN1qzX6diuUqL
         6CnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764756569; x=1765361369;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6J2dEnsrsETbG54XCAomp9SR0qwFKyS7lrh1SrqgGEs=;
        b=f3D9ZijwsfJkW62DyCvjeE2mPJjcBEcuwkOgBf5JlBD4SNIWt/TSuzZLQmWtVNxLtn
         8BoVXqCzspIn9Jx42CdSGARNf+7qgjKGuYk7Pn1S/GAxrDMiT/KeF9Zf9TUwzAgPqY2k
         J5dtQPCnuq+rwjcBvQfdAErBPP7TcIRmZ99u0pRt/se5rsrK5k+Mg5q8FyxQUna5qr3t
         1bJYLyOvyHaAiI7HJ5CJJ76iAm636ThZmO/LWXStquDqiRBbnCIYlseQHLpiM2e9tZNc
         kSygn8vToXRD31bvNn1d5WAgd3pJd1OZITqpbYDJhWUD8zMoEc0PCv4UG49Xy+B/dCm+
         FzFw==
X-Forwarded-Encrypted: i=1; AJvYcCV39zV1JkCl6GbTwXOxPGlgSUQ+Y4yC9VWL2yUtIcLNTfxXdzAB0Fd/67W41SgoRm7IzxKpca44yFQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyRDf6zDxPtkxVsFeQm1odn4m4ibsvRmgpoyRyiUxNUCFgCHFlz
	sJWi8eju6rXYkhq2tbIEdNS2XjnbRQfasVQzOnVjQ3NrGiBqxaT80Sn2pTbJUzDbVw==
X-Gm-Gg: ASbGncv3t/CSmnP7f6IDVvtilz5hsyzxBpXzH/GjSReoW7lveNpwZVwURoYUnU7M3VO
	F6fNSLMqPUBnDHpJt4uZB/WOKp6z9DXyZmT25VkOlem/2xVM3D9P8CRwt/ydR+NrUOJrUoeGQnj
	rHl1ATpBh19GySjCvPYu9R4Gzur7Zf3L5973bIzsjQ321dgglYlXPWZUQ/LWdC6G2Mfu8tdaQ2G
	FfhUo8sJV0a12wSPJYY6h7eJ6+TtoxA18/hncIPQSaQC7CmtJB7cd6FxMVIMYEGjQ1tDg3IUZDv
	IgrhK0NO37ES+Uo7LT4zSCC5RI/UcA9fCKpPjGxo49VRTjkQ9tFX65wnni1NYdsUUHR7JnCX10R
	w4lhj2/2O7RtnJP1ikd3AbRWVSpdAHORi3/ActAv43iW3XMaAXybvxC36T62tqk0Nyx2k8SjwUQ
	DEqEo9taZC4AjTlzP7Q4dud63jcmdF04kJxA2Zl+LQnHpKJoQLH6Gx+vwqVuLp4tph3m29iBX5u
	s/IWQHhL/qHig==
X-Google-Smtp-Source: AGHT+IFOh6XpTUMYgSzsZkfjIOOouTl9yGoYw1hHHWwQ2bdW2ruHKW0mYEidDFmVZ/Ixyoe+gCdg5Q==
X-Received: by 2002:a05:600c:3145:b0:477:9e0c:f59 with SMTP id 5b1f17b1804b1-4792aee03eamr18127005e9.2.1764756568863;
        Wed, 03 Dec 2025 02:09:28 -0800 (PST)
Message-ID: <b844a0bc-ee86-42fe-bcf1-f8a33a594c4c@suse.com>
Date: Wed, 3 Dec 2025 11:09:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v15 4/4] CHANGELOG: Document guest suspend/resume to RAM
 support on Arm
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 xen-devel@lists.xenproject.org
References: <cover.1764755558.git.xakep.amatop@gmail.com>
 <ba51b0ca5457566e1dbef2b6d6ff984dbc318895.1764755558.git.xakep.amatop@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ba51b0ca5457566e1dbef2b6d6ff984dbc318895.1764755558.git.xakep.amatop@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.12.2025 10:57, Mykola Kvach wrote:
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -10,6 +10,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>  
>  ### Added
>  
> + - On Arm:

Nit: If you look elsewhere in the file, you'll notice that there's no blank line
between the section heading and the first bullet point.

Jan

> +   - Support for guest suspend and resume to/from RAM via vPSCI.
> +     Applies only to non-hardware domain guests.
> +
>  ### Removed
>  
>  ## [4.21.0](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.21.0) - 2025-11-19



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 10:11:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 10:11:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176618.1501071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQjpa-0008U7-9K; Wed, 03 Dec 2025 10:11:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176618.1501071; Wed, 03 Dec 2025 10:11:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQjpa-0008U0-6Y; Wed, 03 Dec 2025 10:11:30 +0000
Received: by outflank-mailman (input) for mailman id 1176618;
 Wed, 03 Dec 2025 10:11:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kX12=6J=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vQjpZ-0008Sc-8t
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 10:11:29 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6c0208a3-d030-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 11:11:23 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-47790b080e4so35460865e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 02:11:23 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42e1ca1a2easm39573250f8f.23.2025.12.03.02.11.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Dec 2025 02:11:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6c0208a3-d030-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764756683; x=1765361483; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oNrxV2QThHFro8YEMtPvvoomOVw3KIbRKSrdS7jyeEU=;
        b=JgEr/5D0UlANWy4c5eKaIDZtouU9UCvnNV23uVeq1WAZHedLc98yRk/3GCATKtcClo
         Inr7q4zDbYMVB322kdCmN1Cu1hrTWXkAmhY1yTjNzBn5M5KyUZZocfrvOomOrNyFtZBY
         0r5O7YIDYytt8Um5sBQQKgkumxEmIkd1tISNsFY0KJde3mM0q/BKLeeQ1o9P8gnZyhV+
         xOnCzNfU6Av34/HI/xdVUR+RPmJeguGNt53+bVJPdta19QfBJqo9zctBbkcSdzc5ZtQ2
         PrkYSoQGjrL5MvqeAz4Dj8jsC+mchl7iDYjzVVhCwLLwMH3v2j7A79ktqQvLwf2/m2tT
         BeXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764756683; x=1765361483;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oNrxV2QThHFro8YEMtPvvoomOVw3KIbRKSrdS7jyeEU=;
        b=MzHuVWqhufuRheVbagEW119z/046BoYFx29aG++eIAimffJ79RnQYLzLqX2I0ROzBl
         Vj29pxwp63cbN9B2PJwgK8qYHx7dZhuxpMBWuQgKna3SCh3u5tsrsxBgzCCWO4Wev0Qt
         t9xFKbjkVd1aSfepyj0mpqCkkoLwuoU4rc8f/UJre/LNcfAqDws29fOnOWAkxB20JbZg
         dwT+lXANgbAtM2GAQxs1LvCLz8Fhv7hE1bSplkUue+yJpUBSGtwTauhvMcCb/bHGhVEr
         chQd8ofhkTNIeaMxoIFAi95MTSuClonldJC/hPVrgc/eEL2CO3243wb8dvzxcKqzci+s
         yzEQ==
X-Forwarded-Encrypted: i=1; AJvYcCWsaiufwDLTcZOnk0a5IcjHe/oPmxY5sywdkWwB3PBaNZ5Kfyh1bv9h7ddadHFusR+FALu2kqgA8Nk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyFENVmBxHGhLZflixVhhAIHbn5LsPQI8zuxFx7NIenPq72SkZL
	sc4hPqAcWs86opU820bcnXeWn5wjW8rXjDsyrbGY+W6+L9gyzMARH7Sp2Fp2EZt9UQ==
X-Gm-Gg: ASbGncuGj1yBGqaXJQjGSqMnWhpa5av9ZlqKmzIZr3kO22uT2uP2nMdeo4To8V9M1Y9
	oBnGP67shSyd6q5UJyYU279fBL9DjZ5375WvUORiDHOkBz2KQquiCC2ozhn63SyltJQeMaFB8tt
	sQ1J54sR6brDpiNQ5Z9qGYmUWf8C9YII+GTYf6npJ9QdC2nCL1JtNK3AMVDb59ZANEroeKcFc+y
	cgsbzI0r9soYbm+Zx2SIn2YKFpF7CS0aud6dyJHwGpZ4hjrK6A+M3vr2s1b04Lm137w3hcXoftC
	XTqegBk5CAQfLWREhXboPufFyVp1r/n1QZxvB4FOl711gvwPIeRqLwJL0EiS+KUVm4yFYbVQTkT
	n35/YpL7rGDkU/pzyYZB7pgXdO8WYDUaohML/ToZVBWv6q6CSz0K/FGl92yCB9APFxdUQ1XAplr
	uRMuZfjKIxgVr32l4zcF3O+uqXUiqo+clfx1BOLK4U1Sw5M9hDc4jQa6vcyevL88UxqbuMAfYoq
	UY=
X-Google-Smtp-Source: AGHT+IFUHjSNTvJMGijgzA8DXjfvw5UgkYREerNpoqGAspxs6iw86zeY0AtSSZvQmv4Ug7USX793Mw==
X-Received: by 2002:a05:600c:450a:b0:477:b0b8:4dd0 with SMTP id 5b1f17b1804b1-4792af1b10fmr15908325e9.17.1764756683273;
        Wed, 03 Dec 2025 02:11:23 -0800 (PST)
Message-ID: <63ed70d8-ab4c-4b9e-8884-954f8f8194e4@suse.com>
Date: Wed, 3 Dec 2025 11:11:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v15 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1764755558.git.xakep.amatop@gmail.com>
 <f05ece00c276187d764c7539142f29ee3c48987c.1764755558.git.xakep.amatop@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f05ece00c276187d764c7539142f29ee3c48987c.1764755558.git.xakep.amatop@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.12.2025 10:57, Mykola Kvach wrote:
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -26,6 +26,7 @@
>  #include <xen/hypercall.h>
>  #include <xen/delay.h>
>  #include <xen/shutdown.h>
> +#include <xen/suspend.h>
>  #include <xen/percpu.h>
>  #include <xen/multicall.h>
>  #include <xen/rcupdate.h>
> @@ -1363,6 +1364,9 @@ void domain_resume(struct domain *d)
>  
>      spin_lock(&d->shutdown_lock);
>  
> +    if ( arch_domain_resume(d) )
> +        goto fail;

In case I didn't ask before: You're after a boolean result here, yet ...

> --- /dev/null
> +++ b/xen/include/xen/suspend.h
> @@ -0,0 +1,25 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#ifndef XEN_SUSPEND_H
> +#define XEN_SUSPEND_H
> +
> +#if __has_include(<asm/suspend.h>)
> +#include <asm/suspend.h>
> +#else
> +static inline int arch_domain_resume(struct domain *d)
> +{
> +    return 0;
> +}
> +#endif

... int is being returned. Why?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 10:32:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 10:32:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176638.1501082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQk9u-0003YZ-Ty; Wed, 03 Dec 2025 10:32:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176638.1501082; Wed, 03 Dec 2025 10:32:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQk9u-0003YS-Qn; Wed, 03 Dec 2025 10:32:30 +0000
Received: by outflank-mailman (input) for mailman id 1176638;
 Wed, 03 Dec 2025 10:32:29 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vQk9t-0003YK-S5
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 10:32:29 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vQk9q-004n8m-0O;
 Wed, 03 Dec 2025 10:32:26 +0000
Received: from [15.248.3.91] (helo=[10.24.66.55])
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vQk9p-009JQh-10;
 Wed, 03 Dec 2025 10:32:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=trY5er7axf4nOSIFkCEsTXU/opY8dtHV/iEq2PIEpV4=; b=ZEICtCDFME5zXb6pEHYhpWecTh
	fuR1efpte/BPoGqp/fc46VT57kY54/p2gtQzbuyJYp8ZIn5QQN1pbbpOZ/q6FVm1/4B4HzuG+7uCX
	vsAfyAePMDszL27zGoAbEHeUtubZzeBGzcz002y9t8TSAR7M54lHdaurTPaqMw+S2kdo=;
Message-ID: <2d07bef7-a7a1-4458-9da6-43bf2956d7d8@xen.org>
Date: Wed, 3 Dec 2025 10:32:22 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/20] Add SMMUv3 Stage 1 Support for XEN guests
To: Milan Djokic <milan_djokic@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Julien Grall <julien.grall.oss@gmail.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Nick Rosbrook
 <enr0n@ubuntu.com>, George Dunlap <gwd@xenproject.org>,
 Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
 <CAJ=z9a1eM6M+Gagond9TiFtF7c7EEQKOKHANcvDWDhW_3JzqOA@mail.gmail.com>
 <12ba4388-ee23-4e17-910f-9702271865ad@epam.com>
 <b1f79b84-d0c4-4807-87a7-1cf94e58ecee@xen.org>
 <a5943713-85fa-48ad-86fe-5698604ed8c9@epam.com> <87v7m93bo0.fsf@epam.com>
 <6c80a929-8139-4461-b11c-e6ac67c3d2e4@epam.com> <875xe6ytyk.fsf@epam.com>
 <65727710-0a88-4fff-bb5b-9cf34106833c@epam.com>
 <5df30dbf-17a2-446f-83f9-0e4468622917@epam.com>
 <485a8166-5079-4c0e-a6bf-f6aee8af991d@xen.org>
 <c776c308-cda6-412f-b03c-a4b691b69d33@epam.com>
Content-Language: en-US
From: Julien Grall <julien@xen.org>
In-Reply-To: <c776c308-cda6-412f-b03c-a4b691b69d33@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 02/12/2025 22:08, Milan Djokic wrote:
> Hi Julien,
> 
> On 11/27/25 11:22, Julien Grall wrote:
>>> We have changed vIOMMU design from 1-N to N-N mapping between vIOMMU and
>>> pIOMMU. Considering single vIOMMU model limitation pointed out by
>>> Volodymyr (SID overlaps), vIOMMU-per-pIOMMU model turned out to be the
>>> only proper solution.
>>
>> I am not sure to fully understand. My assumption with the single vIOMMU
>> is you have a virtual SID that would be mapped to a (pIOMMU, physical
>> SID). 
> 
> In the original single vIOMMU implementation, vSID was also equal to 
> pSID, we didn't have SW mapping layer between them. Once SID overlap 
> issue was discovered with this model, I have switched to vIOMMU-per- 
> pIOMMU model. Alternative was to introduce a SW mapping layer and stick 
> with a single vIOMMU model. Imo, vSID->pSID mapping layer would 
> overcomplicate the design, especially for PCI RC streamIDs handling.
> On the other hand, if even a multi-vIOMMU model introduces problems that 
> I am not aware of yet, adding a complex mapping layer would be the only 
> viable solution.
> 
>  > Does this means in your solution you will end up with multiple
>  > vPCI as well and then map pBDF == vBDF? (this because the SID have to be
>  > fixed at boot)
>  >
> 
> The important thing which I haven't mentioned here is that our focus is 
> on non-PCI devices for this feature atm. If I'm not mistaken, arm PCI 
> passthrough is still work in progress, so our plan was to implement full 
> vIOMMU PCI support in the future, once PCI passthrough support is 
> complete for arm. Of course, we need to make sure that vIOMMU design 
> provides a suitable infrastructure for PCI.
> To answer your question, yes we will have multiple vPCI nodes with this 
> model, establishing 1-1 vSID-pSID mapping (same iommu-map range between 
> pPCI-vPCI).
> For pBDF to vBDF 1-1 mapping, I'm not sure if this is necessary. My 
> understanding is that vBDF->pBDF mapping does not affect vSID->pSID 
> mapping. Am I wrong here?

 From my understanding, the mapping between a vBDF and vSID is setup at 
domain creation (as this is described in ACPI/Device-Tree). As PCI 
devices can be hotplug, if you want to enforce vSID == pSID, then you 
indirectly need to enforce vBDF == pBDF.

[...]

>>> - **Runtime Configuration**: Introduces a `viommu` boot parameter for
>>> dynamic enablement.
>>>
>>> Separate vIOMMU device is exposed to guest for every physical IOMMU in
>>> the system.
>>> vIOMMU feature is designed in a way to provide a generic vIOMMU
>>> framework and a backend implementation
>>> for target IOMMU as separate components.
>>> Backend implementation contains specific IOMMU structure and commands
>>> handling (only SMMUv3 currently supported).
>>> This structure allows potential reuse of stage-1 feature for other IOMMU
>>> types.
>>>
>>> Security Considerations
>>> =======================
>>>
>>> **viommu security benefits:**
>>>
>>> - Stage-1 translation ensures guest devices cannot perform unauthorized
>>> DMA (device I/O address mapping managed by guest).
>>> - Emulated IOMMU removes guest direct dependency on IOMMU hardware,
>>> while maintaining domains isolation.
>>
>> Sorry, I don't follow this argument. Are you saying that it would be
>> possible to emulate a SMMUv3 vIOMMU on top of the IPMMU?
>>
> 
> No, this would not work. Emulated IOMMU has to match with the pIOMMU type.
> The argument only points out that we are emulating IOMMU, so the guest 
> does not need direct HW interface for IOMMU functions.

Sorry, but I am still missing how this is a security benefits.

[...]


>>>
>>> 2. Observation:
>>> ---------------
>>> Guests can now invalidate Stage-1 caches; invalidation needs forwarding
>>> to SMMUv3 hardware to maintain coherence.
>>>
>>> **Risk:**
>>> Failing to propagate cache invalidation could allow stale mappings,
>>> enabling access to old mappings and possibly
>>> data leakage or misrouting.
>>
>> You are referring to data leakage/misrouting between two devices own by
>> the same guest, right? Xen would still be in charge of flush when the
>> stage-2 is updated.
>>
> 
> Yes, this risk could affect only guests, not xen.

But it would affect a single guest right? IOW, it is not possible for 
guest A to leak data to guest B even if we don't properly invalidate 
stage-1. Correct?

> 
>>>
>>> **Mitigation:** *(Handled by design)*
>>> This feature ensures that guest-initiated invalidations are correctly
>>> forwarded to the hardware,
>>> preserving IOMMU coherency.
>>
>> How is this a mitigation? You have to properly handle commands. If you
>> don't properly handle them, then yes it will break.
>>
> 
> Not really a mitigation, will remove it. Guest is responsible for the 
> regular initiation of invalidation requests to mitigate this risk.
> 
>>>
>>> 4. Observation:
>>> ---------------
>>> The code includes transformations to handle nested translation versus
>>> standard modes and uses guest-configured
>>> command queues (e.g., `CMD_CFGI_STE`) and event notifications.
>>>
>>> **Risk:**
>>> Malicious or malformed queue commands from guests could bypass
>>> validation, manipulate SMMUv3 state,
>>> or cause system instability.
>>>
>>> **Mitigation:** *(Handled by design)*
>>> Built-in validation of command queue entries and sanitization mechanisms
>>> ensure only permitted configurations
>>> are applied.
>>
>> This is true as long as we didn't make an mistake in the 
>> configurations ;).
>>
> 
> Yes, but I don’t see anything we can do to prevent configuration mistakes.

There is nothing really preventing it. Same for ...
> 
>>
>>> This is supported via additions in `vsmmuv3` and `cmdqueue`
>>> handling code.
>>>
>>> 5. Observation:
>>> ---------------
>>> Device Tree modifications enable device assignment and configuration
>>> through guest DT fragments (e.g., `iommus`)
>>> are added via `libxl`.
>>>
>>> **Risk:**
>>> Erroneous or malicious Device Tree injection could result in device
>>> misbinding or guest access to unauthorized
>>> hardware.
>>
>> The DT fragment are not security support and will never be at least
>> until you have can a libfdt that is able to detect malformed Device-Tree
>> (I haven't checked if this has changed recently).
>>
> 
> But this should still be considered a risk? Similar to the previous 
> observation, system integrator should ensure that DT fragments are correct.

... this one. I agree they are risks, but they don't provide much input 
in the design of the vIOMMU.

I am a lot more concerned for the scheduling part because the resources 
are shared.

>> My understanding is there is only a single physical event queue. Xen
>> would be responsible to handle the events in the queue and forward to
>> the respective guests. If so, it is not clear what you mean by "disable
>> event queue".
>>
> 
> I was referring to emulated IOMMU event queue. The idea is to make it 
> optional for guests. When disabled, events won't be propagated to the 
> guest.

But Xen will still receive the events, correct? If so, how does it make 
it better?

> 
>>>
>>> Performance Impact
>>> ==================
>>>
>>> With iommu stage-1 and nested translation inclusion, performance
>>> overhead is introduced comparing to existing,
>>> stage-2 only usage in Xen. Once mappings are established, translations
>>> should not introduce significant overhead.
>>> Emulated paths may introduce moderate overhead, primarily affecting
>>> device initialization and event handling.
>>> Performance impact highly depends on target CPU capabilities.
>>> Testing is performed on QEMU virt and Renesas R-Car (QEMU emulated)
>>> platforms.
>>
>> I am afraid QEMU is not a reliable platform to do performance testing.
>> Don't you have a real HW with vIOMMU support?
>>
> 
> Yes, I will provide performance measurement for Renesas HW also.

FWIW, I don't need to know the performance right now. I am mostly 
pointing out that if you want to provide performance number, then they 
should really come from real HW rather than QEMU.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 10:32:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 10:32:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176639.1501092 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQkAB-0003qw-8W; Wed, 03 Dec 2025 10:32:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176639.1501092; Wed, 03 Dec 2025 10:32:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQkAB-0003qp-4c; Wed, 03 Dec 2025 10:32:47 +0000
Received: by outflank-mailman (input) for mailman id 1176639;
 Wed, 03 Dec 2025 10:32:45 +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
 <SRS0=Qm2A=6J=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vQkA9-0003pO-ID
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 10:32:45 +0000
Received: from mail-oo1-xc2e.google.com (mail-oo1-xc2e.google.com
 [2607:f8b0:4864:20::c2e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 65e09030-d033-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 11:32:42 +0100 (CET)
Received: by mail-oo1-xc2e.google.com with SMTP id
 006d021491bc7-6597046fc87so334737eaf.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 02:32:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 65e09030-d033-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764757961; x=1765362761; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lZlZC9Cq6WLvNRYs88B2wOuAje4OZjKj+koZj74J1Cw=;
        b=eoWTp4+BauhsOOMBX1/zqJ5G0UDEhp5k3TFcG1xbALCCKttsHs0yAaipeTegZZM+Lc
         m++Kb2NKQ75NV7BQwjWOdJwxKZ6nzfDc0nb3f/O4xDr/f7PNWzLEdsAvpMqKpy/QLkbm
         VwzzA1lZzCY7kkM0RTfbH/ME7AJOkXhbfj3q5r9OGuIHQ+iuRoC65RW8uoDsILf3lc0j
         B6SQuHYZ07XwoeLtoC58DfEnq4apJl2Z3BiiXz8ipGbiadPVeSsn4vmt9WEwfvFxEMJp
         uoOTWpHr9r0KB3xeV1ROii8XcWtCFDwGIsok2mJa3MEthN7Q3dcPne4X8/VByK/W7PKg
         4d1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764757961; x=1765362761;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=lZlZC9Cq6WLvNRYs88B2wOuAje4OZjKj+koZj74J1Cw=;
        b=C8FZrdxBL0UE32KOg2HU8Gu0GAlsfYFJ/xjcFbdduTAGkTrMJ47kda4Mhac+aeR4cO
         CFnXRkfn/QTXqFNJvILqkDTSYol4/IHunoF+hfLpTXExin+RskY/MniuEK1aTWjJ5Ten
         pOw/X9hsEA4bg3QwJhr/4qxtvRenFifYRwLKGOyq6cpRfkAzz2/d+C8FNgJgQwnRSJnh
         NHFTjIEJJEk6t2aTEc08THLHWYeMafQbAUsnaJqJnaU4QCFZu0KM8KoLVY2aqOEgjOKT
         eYYcBmOehyeVS6ZGLjaUBT96qZNQqtCZCjk2sCSFaj8zfEhmp49P1e/Ifgc8YZAYrOAl
         WVzQ==
X-Gm-Message-State: AOJu0Yy23ix2GzCWK21Bg8/9G+wBXSmW+ocl3cyJQuHJiRuF7dBKA8kG
	sSBAfAw6YrpGPt306LichFQNcD+r4mgXUANAlKp2JLg/gosf8SEGQEThIe5ziRQbV80VUcAxe1S
	dlGZoZmUiNhP+fzL4tijRKEzq/FysKlHxYf0GbKF6V12yxDCgvhdpErqw/w==
X-Gm-Gg: ASbGncueRjF3J0QWWU1eMpVCYALwJTgu3SqaEUMvHcL57G1WkDGIzgOw4OoBGnvl5I2
	dQ/aSRuT9VfZr+lerwiC+UZZ265FkSSDae/VMtwtQWsDGu/V3HiqM9nk85BHTD2j/yiPHof1kQh
	NW0GfEnxibKmFP95sfwxcic/W0/IEBPjEetWZVs++1M33SKzQ0uG+lQSXWgz7tbFuNMXrWBd4HW
	eDClZIQeLGH9X+DMThMwZKA3gYsUmL0LdYjsDayHaxUQNnFNTcfDdgDd+LU/4sZG3rJv12kgcpc
	0BBgQ2eNZrnvKYvmEbqD4IFkN7sGnLJb8I+u
X-Google-Smtp-Source: AGHT+IGa9rfUtgwfdKE/1E0wYHC/UTFHGn4ElfXlgBVB92MEzO1ZuU6vEkYB+Yt1G/f5qSZvdv8Ej23nszqZC4bHuwg=
X-Received: by 2002:a05:6820:4c0b:b0:657:64ce:b40f with SMTP id
 006d021491bc7-65972739a69mr771558eaf.4.1764757961293; Wed, 03 Dec 2025
 02:32:41 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764254975.git.bertrand.marquis@arm.com>
 <72d6592157a9ec15d4b5de19751186e0ca1680ba.1764254975.git.bertrand.marquis@arm.com>
 <CAHUa44Gq4L95i3wTMEVRoFNFt2PzPCKGAuF4KT3YL9mfmT2FRA@mail.gmail.com>
 <33EF4249-1F82-4DF5-BCCE-0BCBB0F3D157@arm.com> <CAHUa44FQ8bCo5cuVR-JW9om+jEqUA8uZAPAmic9GkwnG-OeE7A@mail.gmail.com>
 <4E39091E-8EFB-4C80-8A1C-FB37B07B8AA3@arm.com>
In-Reply-To: <4E39091E-8EFB-4C80-8A1C-FB37B07B8AA3@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 3 Dec 2025 11:32:27 +0100
X-Gm-Features: AWmQ_bnTF_l2QTx_zpGRibuBTF3WwBGDNyRa_01EoawPy3vHvouUa_jKS4n_4t8
Message-ID: <CAHUa44H_nD2ep+q1b2sZy-hJXAtbSmoHCNtaR0ASs1=JoRY2jg@mail.gmail.com>
Subject: Re: [PATCH 04/10] xen/arm: ffa: rework SPMC RX/TX buffer management
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi,

On Wed, Dec 3, 2025 at 10:36=E2=80=AFAM Bertrand Marquis
<Bertrand.Marquis@arm.com> wrote:
>
> Hi Jens,
>
> > On 3 Dec 2025, at 09:50, Jens Wiklander <jens.wiklander@linaro.org> wro=
te:
> >
> > Hi Bertrand,
> >
> > On Tue, Dec 2, 2025 at 5:50=E2=80=AFPM Bertrand Marquis
> > <Bertrand.Marquis@arm.com> wrote:
> >>
> >> Hi Jens,
> >>
> >>> On 2 Dec 2025, at 15:08, Jens Wiklander <jens.wiklander@linaro.org> w=
rote:
> >>>
> >>> Hi Bertrand,
> >>>
> >>> On Thu, Nov 27, 2025 at 4:52=E2=80=AFPM Bertrand Marquis
> >>> <bertrand.marquis@arm.com> wrote:
> >>>>
> >>>> Rework how Xen accesses the RX/TX buffers shared with the SPMC so th=
at
> >>>> ownership and locking are handled centrally.
> >>>>
> >>>> Move the SPMC RX/TX buffer bases into ffa_rxtx.c as ffa_spmc_rx/ffa_=
spmc_tx,
> >>>> protect them with dedicated ffa_spmc_{rx,tx}_lock spinlocks and expo=
se
> >>>> ffa_rxtx_spmc_{rx,tx}_{acquire,release}() helpers instead of the glo=
bal
> >>>> ffa_rx/ffa_tx pointers and ffa_{rx,tx}_buffer_lock.
> >>>>
> >>>> The RX helpers now always issue FFA_RX_RELEASE when we are done
> >>>> consuming data from the SPMC, so partition-info enumeration and shar=
ed
> >>>> memory paths release the RX buffer on all exit paths. The RX/TX mapp=
ing
> >>>> code is updated to use the descriptor offsets (rx_region_offs and
> >>>> tx_region_offs) rather than hard-coded structure layout, and to use =
the
> >>>> TX acquire/release helpers instead of touching the TX buffer directl=
y.
> >>>>
> >>>> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> >>>> ---
> >>>> xen/arch/arm/tee/ffa.c          |  22 +-----
> >>>> xen/arch/arm/tee/ffa_partinfo.c |  40 +++++-----
> >>>> xen/arch/arm/tee/ffa_private.h  |  18 ++---
> >>>> xen/arch/arm/tee/ffa_rxtx.c     | 132 +++++++++++++++++++++++++-----=
--
> >>>> xen/arch/arm/tee/ffa_shm.c      |  26 ++++---
> >
> > [snip]
> >
> >>>>
> >>>> -void ffa_rxtx_destroy(void)
> >>>> +void *ffa_rxtx_spmc_rx_acquire(void)
> >>>> +{
> >>>> +    ASSERT(!spin_is_locked(&ffa_spmc_rx_lock));
> >>>
> >>> Is it invalid for two CPUs to concurrently try to acquire the RX buff=
er?
> >>
> >> No the RX buffer or the TX buffer with the SPMC should only be used by
> >> one CPU at a time as there cannot be any concurrent operations using i=
t.
> >
> > What if two guests call FFA_PARTITION_INFO_GET concurrently? Both can
> > succeed in acquiring their RX buffer so they can call
> > ffa_get_sp_partinfo() concurrently, and the assert might be triggered.
> > We have a similar problem with FFA_RXTX_MAP_64 and
> > ffa_rxtx_spmc_tx_acquire(). Contention on the spinlocks for the rx and
> > tx buffers should be valid. If we can't allow a guest to block here,
> > we should return an error and let the guest retry.
>
> i am not sure i am following anymore.
> The assert is just there to ensure that the lock is not already taken.

But it could already be taken by another CPU.

> The function is then taking the lock and not releasing it until release
> is called which is ensuring that only one vcpu at a time is using the
> rx buffer. Did i miss something here ?

Only one CPU at a time should use the spmc rx buffer, but others might
try and should be blocked in spin_lock() rather than ASSERT.

>
> for rxtx map we do call tx_acquire so we lock the buffer.
>
> Now we might have a race condition between in rxtx_map and unmap
> where i should take the rx_lock and the tx_lock of the guest to prevent
> concurrent usage of the vm rxtx buffer. I will fix that one.

Yes, you're right, good catch.

>
> Please tell me for the spmc rxtx buffers as i am not sure i am following
> what you mean there :-)

Each guest has its own rxtx buffer, so the spinlock here is just in
case the guest didn't synchronize its CPUs before calling. But the
SPMC rxtx buffers are for Xen, so a guest can't be sure that no other
guest is holding the spinlock.

Two guests can independently call FFA_RXTX_MAP_64 and then call
ffa_rxtx_spmc_tx_acquire() more or less at the same time.

I you remove the "ASSERT(!spin_is_locked(...));" from
ffa_rxtx_spmc_tx_acquire() and ffa_rxtx_spmc_rx_acquire() it should be
OK.

Cheers,
Jens


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 11:04:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 11:04:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176680.1501149 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQkeV-0000Pk-00; Wed, 03 Dec 2025 11:04:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176680.1501149; Wed, 03 Dec 2025 11:04:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQkeU-0000Pd-TD; Wed, 03 Dec 2025 11:04:06 +0000
Received: by outflank-mailman (input) for mailman id 1176680;
 Wed, 03 Dec 2025 11:04:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WC6h=6J=epam.com=Oleksandr_Tyshchenko@srs-se1.protection.inumbo.net>)
 id 1vQkeU-0000PX-55
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 11:04:06 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c7660fcf-d037-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 12:04:03 +0100 (CET)
Received: from DB7PR03MB3577.eurprd03.prod.outlook.com (2603:10a6:5:3::28) by
 DB8PR03MB6169.eurprd03.prod.outlook.com (2603:10a6:10:142::14) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.9; Wed, 3 Dec 2025 11:04:01 +0000
Received: from DB7PR03MB3577.eurprd03.prod.outlook.com
 ([fe80::49f8:7615:b631:1a66]) by DB7PR03MB3577.eurprd03.prod.outlook.com
 ([fe80::49f8:7615:b631:1a66%5]) with mapi id 15.20.9388.003; Wed, 3 Dec 2025
 11:03:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c7660fcf-d037-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aqlGfjUjz9ZDSz6RWIgrr9tAxX6/Vyak1GtCuV5JVQRDcgmSzmuby+37FVDoGAnx5QaR0097PaRxd6yxZq7aULxbAhXNwIBPljfr+x198Kj2GVZ9OrOI+xn8GHwc/qhvi0hWBUG02L7MNW0bet4rQ1BjB+y5WY/UC3UVgeVv3qcemJxpN0xCwy87obUcWpqRHQiR4F/0VN6T3DhM2AU9DljsElvprc2zDn8V3Ol+QjSqdwITyqKIH4CBoENE7Qy6JGjTI5+VcE+q1KA4cXLdIl1ESwvCfpwqaEKtp0tNW+xfRtNMcFI2LD3wVxHjEzj0qcjN1c8ptk3dMmbW/jnQUg==
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=X1Jw/ELQ5sb17jQ0lDazk6HaRNkoryVDqllHdvMS8dk=;
 b=rNtyeWMsszuWXewLafbTej8dTZM/uSx9AZfQVUhIFxWyPtv7pVWRyfVcaLr1eZaWV6r2Ekxk5PakKTWgNS8wjsuoh9QUKYtH0hTvI0cWWeuVRet+w9m8OFLJ168lKeZIItOkuY9EmqZQqNKLK5G4oKBA9+W7+gIps8EoEXHK/6TmfQf+BC33vDFw9uIBTDX1c/8ekxpRI9rvuajS0slSrOzlWasvIgte+p+HTQbLSHFIZcqnZ6lBDpeaWdEEu0ZgVvUycZd7OvF8p7p+6DzpnciLWVmLzs979NFiSZb4rXNjLUHVj5D4U0L6mzux+1sBxUoEWidzU8fXboS/liF6lA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=X1Jw/ELQ5sb17jQ0lDazk6HaRNkoryVDqllHdvMS8dk=;
 b=CEzGJRhbV1jGUgiFnBSk7zPbp1NxeQQ0mQwNnmNoJ8R1JWubiQc2R5dNcq4jJ+Kg723aZSz/o4rAGKM6UGEFPDv+xnNgqjgOHIXMGZ3/SuLTRcVNYWiXHzLPb/JistDcF5EDim60zaJSIFU9SJ1bJIZ+cbBqCez2jZTmpv9WmISS/gcFtZOtkcw/2CRnT0QbXWG20vo/x0A/wPpLqOfW02+mKwGP14SIWuwcwnTZ8leITcFkAGFc7W2otdbnml9k6VfBCOs/jOhufNxUYAuerSomK47a4WDSIa1RembXh8lnFeG0IKjY/2k0dE4UvvvBBQFmlVaWIDa+jeaH62XWlg==
From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH] xen/dom0less: Increase guest DTB size for high-vCPU
 guests
Thread-Topic: [PATCH] xen/dom0less: Increase guest DTB size for high-vCPU
 guests
Thread-Index: AQHcY8JwgLGK5hUeEUKxVWNaY5XmsLUO3xoAgADiZoA=
Date: Wed, 3 Dec 2025 11:03:59 +0000
Message-ID: <a1443030-f594-4f25-b12a-37974eae64d2@epam.com>
References: <20251202193246.3357821-1-oleksandr_tyshchenko@epam.com>
 <98e9f551-cd8f-4c0c-aa79-144466e68df0@epam.com>
In-Reply-To: <98e9f551-cd8f-4c0c-aa79-144466e68df0@epam.com>
Accept-Language: en-US, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB7PR03MB3577:EE_|DB8PR03MB6169:EE_
x-ms-office365-filtering-correlation-id: 57070236-d332-401b-2165-08de325ba970
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|366016|42112799006|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?WWNWRmdMaHRVZGNPdjA0K1M1T1Q3aDlTNHFqVzhqWHB0aFRVUjNzcmJXWEVM?=
 =?utf-8?B?ci9ZUnRoVnZSUnJHWTRLZ25xKy9rcElqU0JsOW1oSy9CeFNaLytCNldtUTc1?=
 =?utf-8?B?c2lvVUdoMmpHVk5mU1FFNTFBNGlPd09oU1FjUHF1WFA0RDlKVkhzSVZyMGgx?=
 =?utf-8?B?WkIrbnRrcm54WlV5TzFvZDB1ZDY0UTBzQ2JIMW9RT3Y3a1lxVGYwM1d5V3Fu?=
 =?utf-8?B?eVV6WVhnU1lBbUFLM0x4UW9XaHAya1V5M29NQmNrYkkrbFZjYUdCSVdScXFH?=
 =?utf-8?B?NXdjOVpzTmwwaWZ4VUkwU1FqNHI1eVFrRWd5UUt5Z0x0a2NUeC9hanN4U2po?=
 =?utf-8?B?V0grUS9sMjNYME9WaWM0dlh4VHVGK0xWQ2pTWEJVMkxGMFo4TXVVWFRlNndk?=
 =?utf-8?B?dm9qSy80cFA2eVV5NmNmQk42QXA4NGVrUHlMeldBWHJIZlhsQzBhSjBlNjd5?=
 =?utf-8?B?SC9pSERHVU5jalIvNktwNElqYVBKNWZGcU1mbWwxV3JVcGZRbklFUzhsQXlW?=
 =?utf-8?B?ZHVRa0hpS1JEV0hwSXdabEtMMmFOeVBqWVZpVzFlTEZiWFFsRkJDNHBpQ1lO?=
 =?utf-8?B?dFNHcC9IWEgzeXo3SWRxTjEzZVhJNmZCMDlWYUNPK0VSczVjVHEzc0VJYmdL?=
 =?utf-8?B?WDlhVnFiUVFMb1pLR1hZRVNGZzFOUDdsSzhzQ2J1WTNaYWZYT0NOdHlkakhW?=
 =?utf-8?B?R0N2T0kxWHc3TllsZDBOMEI1UW5TaDQwNlNTSFhxbWs2TmN5RmlXelc2YUtH?=
 =?utf-8?B?TFFQTUR5YW9RWnpSZHlPT1d4aGhEbzJpVDNLT1hqTTMzK1FrclViVkNoRzAw?=
 =?utf-8?B?ZUc1alh0N0xJc3RFMWJHV2cvWWh2emdDZWUwT01QSnNJYnJoZnlVQWVwTE9W?=
 =?utf-8?B?Mkxtak8yNHM3dS95VTNFS29pcVBmS1BXaW1TelpOMVd4YjhaRVpmOE92QUNV?=
 =?utf-8?B?eWtqK1c1R2hpK2VyMkhwd0xRd0lQT0xTRkpqd2tYWjBQZjVnYnlFeWJiMVpq?=
 =?utf-8?B?TG0zcExJOFlsTmRVZUZ3STNHZmorTGlRQzEvb1dqd3JCSFNURlE2V3JKR0o0?=
 =?utf-8?B?WTNzbWlyQUkrMFpxYW90K09BV0sweVF6cWhOVFdaN2VuOG5pQzRXaFFpdXB0?=
 =?utf-8?B?aTUzM1lRTWdUU1NNZDBDRlBVL1VNMGNyRkVOdkdZWjFpWTFoTU9yUGxpTTdx?=
 =?utf-8?B?SkhFN05NYnYwNmQyTW9YdU5Rc3R1ZGNiN1FSNVFhTkcybkZuSGgwZDYzT2lm?=
 =?utf-8?B?bGFhTllpbThpdnNpb1NhRGhCL0J6VlFPWmFMU0ZTZEpuV2xmUStyUnVXakZE?=
 =?utf-8?B?VDBEU1hpM1d5ODExSVF1QmlOcDR4WDVTdzdZc1BuSEFFN0xjaHR6RUhqekVn?=
 =?utf-8?B?a3l3azBMcHRqOEhjWFkvbWt4cFlaZGFabStYK1paRm5SOTgyRk41WnVzeHRu?=
 =?utf-8?B?eHZjOE41dVI0d05BdldqOXROVm9QdnR1dWJlU1VvNzVFcldjMUw0TklNS3RH?=
 =?utf-8?B?dVVWNTdKVGI0OGtBdTE1YmdCb1NGRFZhZXRYb0QxdHdRY0p4ZGQ0bjVlYm1y?=
 =?utf-8?B?d1Q1b1I0YmFOWHpPSUY3RVI3MzJ1QTdZVFBNSzVFcGFIZ0dOa3ZTeWZ6RHds?=
 =?utf-8?B?NFJJNjY2K3o0MVB2MG5kTnpVdWZMZGphZUpOUkE2Q2xYams1Zk5hUGk5S3RG?=
 =?utf-8?B?Uk81Vk9wTTFod1JrQkpZNzM1dVVVby96bVgwQzNVbHN1UDhkTDdiMndPeFQ3?=
 =?utf-8?B?SGVEQm1RNDYvRWRNL3FwUFdWSFEvVEpEbE4vdExVM0pycWFWbkdYRUVEL044?=
 =?utf-8?B?NWYva01oU045MzVvL0lSTFdnazB0M0xHdUZlSmVKUmJPYSszMjNWZ2hoVDh6?=
 =?utf-8?B?ZHdldUpvYXhaUXpsSGtlSWNrZGtvcHpZbDAvS3VjbVI3NitrNzRKOXNtT2t6?=
 =?utf-8?B?RTJTYUtMWGlMSEdpN2RjT1NFcG1nKzRPcms1NzVRVjRVVEJvUnQwMVFrYStm?=
 =?utf-8?B?aEQ4OEUwVG9haERQV3JvN2s4TFVuTTZScmpxSm1xUE5iUUUxWWdLSXpNMC9i?=
 =?utf-8?Q?T+vMgT?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR03MB3577.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(42112799006)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?eWZuMzU0Z3Qzb2IvMlRsSkRZcENXbS85WEJ3eEtnckNoa1dlSElCQmRSZzRy?=
 =?utf-8?B?VjVzUUZKbTV5OHF3SUltTnRFZUNNbkkvY3llNkZna2YzL0ZlV1B1eG1vWG53?=
 =?utf-8?B?amxzNi9YWUJKb0w3YUMxc2EwamZORldBK0ZkbjNSbGg0OGhPTG1mTUlESWs0?=
 =?utf-8?B?Y0UxZzNDay9aTUg5bkpLVTN2ang4UWdSL09zQzVCNDBnbWo2cGtZOWZUaEk5?=
 =?utf-8?B?NEkrNXZnK3BRQldPejNiL2s3SllFOUF6Yytkb21JVVpkSWdlRVNQWElrRE05?=
 =?utf-8?B?Ny85U1Y4bnVjUUR6SkpwazJFaVZnZ2xJVSt1Ykxxd2Q0UWVLTlI3bWVsbGJO?=
 =?utf-8?B?T1I2Qy9RMWl4L1cySUFJN3crVHVwb1JqcmRMd3I2TmhoWm9IdnVacU02amRu?=
 =?utf-8?B?aFV3OTNVbU5HOTNoTW9vbnJkejVvTGo1NWd5REViUWhBNTFxcS9iSjNlL2h4?=
 =?utf-8?B?b2liT0hXZWUrOFY0Mzl6cmJUS2ZHc3RpSVdvd1BlQm5leE41cU5BdlV6bGNU?=
 =?utf-8?B?bnhzVDZxQmtuWVVId3RZM1BONEZZNHNBNzkvSWZuYUwzeVBRcjlYSndTLzQ5?=
 =?utf-8?B?bU9yeW45YlZQN3BzN3hKNUwrTjdnaWt4T3IvTjVuZ0dpM05GMEw3VGZXSmxF?=
 =?utf-8?B?UVVyK3ZVVmhOSnRONFFWQ1ZoY3hESDcvaG9FcHpNS0dZam4wSWlLV2ZpSGtt?=
 =?utf-8?B?WFBJRW44TmVDU3UwTWl4SUZNYlZzZEM1TXVHbXJvM3loQ1FWYklsVmYremV3?=
 =?utf-8?B?c1I1MzlOVU9SeXJQYU44eG1HNzNTakEzSXpUclRwM250Vm9UbU04S3YycDRh?=
 =?utf-8?B?TFIxVXdLc3lrR2hwanZtN3grb0NVeXh1dkdMcXdRdFppKzRPd3hacUpoOUZj?=
 =?utf-8?B?RjNJMXdwVGxRZlVSa0NKTndpY2FmSnF2ZTBld2pHSkc5bSt5QmpNMnlPQ2Vi?=
 =?utf-8?B?anI5M1FRMUNhZ0oxVmJGRzZqd0VyYW5ldDZrVUthWlFuNGF5QWdYanN4MXdK?=
 =?utf-8?B?K3VGSzkxWWRHNlZMMmJiRnNFS1hhZWhNQlozZWRzc0FLcEx1MmczYUFaU2xF?=
 =?utf-8?B?bW9kb3NtcmR5bzVlMm4vVzR1ZnBxdmhQaG9EZlRTTUJXWnNPc2RCaXJ4WFY1?=
 =?utf-8?B?WmpRd3ErM2JlbVlGZXdjaWJwRm5GWTBzNlpyTFhaa3Vzd2NhbDRtdFc1YWUz?=
 =?utf-8?B?L2VvaDZZSzZndDE4cDNIYmxZYUt1dElMaHhwVWZpU2FVY3VLK2hrdXluS2xy?=
 =?utf-8?B?Y08zMFplV0JLMjF4S21uRUVzR1NlUWhrVFZuSk1RQXFaelFoWUFGMTR0enF2?=
 =?utf-8?B?c28yRzhKR1cra0wxMjlDUnFVUlBZbWdLbTJ0R0g3bEl6eUNEVkxyeGk4VnpL?=
 =?utf-8?B?M0E0b0kwc2hmZjU2Znd6NnhrSFlBbzFENENsUVlsRnpNYlR2RWI1ampiK2Z1?=
 =?utf-8?B?cEs3WnVWUUpJdFJBaHZtN1p3YkpOZENreXE3aXc2anExdFdJQ3ZvUTRPU1NV?=
 =?utf-8?B?eVpEZ1pRRExZalZwZTQ4TTNOSHpnU2VueDdGN215M29PdEk0OGVGUkRUYnAy?=
 =?utf-8?B?NXFVSEV2bnYvWnJYWjlQVi9PZjM3cm0wamhBRVhjL3VROGdzcHdldEJtWnN2?=
 =?utf-8?B?L0dCaGRyL0FUak9iQzVKNzFuUXM0YUd2NzFXUVNIZCthOTB6VXRobU9CY2gz?=
 =?utf-8?B?WStBYy9FdVRvakJicWxGL0Z2aXB2cDVYYnhicFQwM1l6ZW1FSlNtV1hvdmVj?=
 =?utf-8?B?a0pYMkdXK01tbnBmN21SY0NPOFl1MTVvcmlqMzhIdkwwTFhJTkhqTmhGU1NU?=
 =?utf-8?B?YmkyVW0vZzJMWGxmdTR2bndmTlU1NFp4eXZySGZCOFUveG9QbGZSMTd2Nytj?=
 =?utf-8?B?MTd4c3VnS29vT2JXMHp3b2ZESldSUVc5eUtXV1FiSTJDL1JpOFVEdEVoemFq?=
 =?utf-8?B?Q1ZlNWV1U2dwTHovcWozV3ptU0lGeEdYZEtHVGNwLzJ4V1NpakxYS1NIT2gx?=
 =?utf-8?B?Z1BOK1liSHpwci9RYmJvWllUdENWOW9LdWpSY1lWSi96TklHQ1JobUNjNDJI?=
 =?utf-8?B?OHI1R3ZTUm1rWTBBY01IS3BlNDJTbUlIQklzeEFPTk5rQ0RZa2VNekZ4QzlL?=
 =?utf-8?B?aEZWWFJUQkh0MGQwbGFkSnBDa29pZHVielRqT0xmOWN0Z3ZPVDJRUkVkdys1?=
 =?utf-8?Q?pFdUhGcfjoeUVCxZT3eruwM=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <6B7A7E5A66717641AE2337288AF68181@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB3577.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 57070236-d332-401b-2165-08de325ba970
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Dec 2025 11:03:59.8903
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: WpOEHJXcjOm85e1r8PCMmnPbRONiKSEUIOY/62KJsm+ZCeakIpyCC50EVnRwqKVBtpR3SFATB83sH9TyqFFOIXiQg6XgEAzA8K/NloAc19Q=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR03MB6169

DQoNCk9uIDAyLjEyLjI1IDIzOjMzLCBHcnlnb3JpaSBTdHJhc2hrbyB3cm90ZToNCg0KDQpIZWxs
byBHcnlnb3JpaQ0KDQo+IA0KPiANCj4gT24gMDIuMTIuMjUgMjE6MzIsIE9sZWtzYW5kciBUeXNo
Y2hlbmtvIHdyb3RlOg0KPj4gQ3JlYXRpbmcgYSBndWVzdCB3aXRoIGEgaGlnaCB2Q1BVIGNvdW50
IChlLmcuLCA+MzIpIGZhaWxzIGJlY2F1c2UNCj4+IHRoZSBndWVzdCdzIGRldmljZSB0cmVlIGJ1
ZmZlciAoRE9NVV9EVEJfU0laRSkgb3ZlcmZsb3dzIGR1cmluZyBjcmVhdGlvbi4NCj4+IFRoZSBG
RFQgbm9kZXMgZm9yIGVhY2ggdkNQVSBxdWlja2x5IGV4aGF1c3QgdGhlIDRLaUIgYnVmZmVyLA0K
Pj4gY2F1c2luZyBhIGd1ZXN0IGNyZWF0aW9uIGZhaWx1cmUuDQo+Pg0KPj4gSW5jcmVhc2UgdGhl
IGJ1ZmZlciBzaXplIHRvIDE2S2lCIHRvIHN1cHBvcnQgZ3Vlc3RzIHVwIHRvDQo+PiB0aGUgTUFY
X1ZJUlRfQ1BVUyBsaW1pdCAoMTI4KS4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIg
VHlzaGNoZW5rbyA8b2xla3NhbmRyX3R5c2hjaGVua29AZXBhbS5jb20+DQo+PiAtLS0NCj4+IE5v
dGljZWQgd2hlbiB0ZXN0aW5nIHRoZSBib3VuZGFyeSBjb25kaXRpb25zIGZvciBkb20wbGVzcyBn
dWVzdA0KPj4gY3JlYXRpb24gb24gQXJtNjQuDQo+Pg0KPj4gRG9tYWluIGNvbmZpZ3VyYXRpb246
DQo+PiBmZHQgbWtub2QgL2Nob3NlbiBkb21VMA0KPj4gZmR0IHNldCAvY2hvc2VuL2RvbVUwIGNv
bXBhdGlibGUgInhlbixkb21haW4iDQo+PiBmZHQgc2V0IC9jaG9zZW4vZG9tVTAgXCNhZGRyZXNz
LWNlbGxzIDwweDI+DQo+PiBmZHQgc2V0IC9jaG9zZW4vZG9tVTAgXCNzaXplLWNlbGxzIDwweDI+
DQo+PiBmZHQgc2V0IC9jaG9zZW4vZG9tVTAgbWVtb3J5IDwweDAgMHgxMDAwMCA+DQo+PiBmZHQg
c2V0IC9jaG9zZW4vZG9tVTAgY3B1cyA8MzM+DQo+PiBmZHQgc2V0IC9jaG9zZW4vZG9tVTAgdnBs
MDExDQo+PiBmZHQgbWtub2QgL2Nob3Nlbi9kb21VMCBtb2R1bGVANDA0MDAwMDANCj4+IGZkdCBz
ZXQgL2Nob3Nlbi9kb21VMC9tb2R1bGVANDA0MDAwMDAgY29tcGF0aWJsZcKgICJtdWx0aWJvb3Qs
a2VybmVsIiANCj4+ICJtdWx0aWJvb3QsbW9kdWxlIg0KPj4gZmR0IHNldCAvY2hvc2VuL2RvbVUw
L21vZHVsZUA0MDQwMDAwMCByZWcgPDB4MCAweDQwNDAwMDAwIDB4MCAweDE2MDAwID4NCj4+IGZk
dCBzZXQgL2Nob3Nlbi9kb21VMC9tb2R1bGVANDA0MDAwMDAgYm9vdGFyZ3MgImNvbnNvbGU9dHR5
QU1BMCINCj4+DQo+PiBGYWlsdXJlIGxvZzoNCj4+IChYRU4pIFhlbiBkb20wbGVzcyBtb2RlIGRl
dGVjdGVkDQo+PiAoWEVOKSAqKiogTE9BRElORyBET01VIGNwdXM9MzMgbWVtb3J5PTB4MTAwMDBL
QiAqKioNCj4+IChYRU4pIExvYWRpbmcgZDEga2VybmVsIGZyb20gYm9vdCBtb2R1bGUgQCAwMDAw
MDAwMDQwNDAwMDAwDQo+PiAoWEVOKSBBbGxvY2F0aW5nIG1hcHBpbmdzIHRvdGFsbGluZyA2NE1C
IGZvciBkMToNCj4+IChYRU4pIGQxIEJBTktbMF0gMHgwMDAwMDA0MDAwMDAwMC0weDAwMDAwMDQ0
MDAwMDAwICg2NE1CKQ0KPj4gKFhFTikgRGV2aWNlIHRyZWUgZ2VuZXJhdGlvbiBmYWlsZWQgKC0y
MikuDQo+PiAoWEVOKQ0KPj4gKFhFTikgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKg0KPj4gKFhFTikgUGFuaWMgb24gQ1BVIDA6DQo+PiAoWEVOKSBDb3VsZCBub3Qgc2V0
IHVwIGRvbWFpbiBkb21VMCAocmMgPSAtMjIpDQo+PiAoWEVOKSAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqDQo+PiAtLS0NCj4+IC0tLQ0KPj4gwqAgeGVuL2NvbW1vbi9k
ZXZpY2UtdHJlZS9kb20wbGVzcy1idWlsZC5jIHwgOCArKysrKy0tLQ0KPj4gwqAgMSBmaWxlIGNo
YW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0
IGEveGVuL2NvbW1vbi9kZXZpY2UtdHJlZS9kb20wbGVzcy1idWlsZC5jIGIveGVuL2NvbW1vbi8g
DQo+PiBkZXZpY2UtdHJlZS9kb20wbGVzcy1idWlsZC5jDQo+PiBpbmRleCAzZjViOTg3ZWQ4Li5k
N2QwYTQ3Yjk3IDEwMDY0NA0KPj4gLS0tIGEveGVuL2NvbW1vbi9kZXZpY2UtdHJlZS9kb20wbGVz
cy1idWlsZC5jDQo+PiArKysgYi94ZW4vY29tbW9uL2RldmljZS10cmVlL2RvbTBsZXNzLWJ1aWxk
LmMNCj4+IEBAIC00NjEsMTAgKzQ2MSwxMiBAQCBzdGF0aWMgaW50IF9faW5pdCANCj4+IGRvbWFp
bl9oYW5kbGVfZHRiX2Jvb3RfbW9kdWxlKHN0cnVjdCBkb21haW4gKmQsDQo+PiDCoCAvKg0KPj4g
wqDCoCAqIFRoZSBtYXggc2l6ZSBmb3IgRFQgaXMgMk1CLiBIb3dldmVyLCB0aGUgZ2VuZXJhdGVk
IERUIGlzIHNtYWxsIA0KPj4gKG5vdCBpbmNsdWRpbmcNCj4+IC0gKiBkb21VIHBhc3N0aHJvdWdo
IERUIG5vZGVzIHdob3NlIHNpemUgd2UgYWNjb3VudCBzZXBhcmF0ZWx5KSwgNEtCIA0KPj4gYXJl
IGVub3VnaA0KPj4gLSAqIGZvciBub3csIGJ1dCB3ZSBtaWdodCBoYXZlIHRvIGluY3JlYXNlIGl0
IGluIHRoZSBmdXR1cmUuDQo+PiArICogZG9tVSBwYXNzdGhyb3VnaCBEVCBub2RlcyB3aG9zZSBz
aXplIHdlIGFjY291bnQgc2VwYXJhdGVseSkuIFRoZSANCj4+IHNpemUgaXMNCj4+ICsgKiBwcmlt
YXJpbHkgZHJpdmVuIGJ5IHRoZSBudW1iZXIgb2YgdkNQVSBub2Rlcy4gVGhlIHByZXZpb3VzIDRL
aUIgDQo+PiBidWZmZXIgd2FzDQo+PiArICogaW5zdWZmaWNpZW50IGZvciBndWVzdHMgd2l0aCBo
aWdoIHZDUFUgY291bnRzLCBzbyBpdCBoYXMgYmVlbiANCj4+IGluY3JlYXNlZA0KPj4gKyAqIHRv
IHN1cHBvcnQgdXAgdG8gdGhlIE1BWF9WSVJUX0NQVVMgbGltaXQgKDEyOCkuDQo+PiDCoMKgICov
DQo+PiAtI2RlZmluZSBET01VX0RUQl9TSVpFIDQwOTYNCj4+ICsjZGVmaW5lIERPTVVfRFRCX1NJ
WkUgKDQwOTYgKiA0KQ0KPiANCj4gTWF5IGJlIEl0IHdhbnRzIEtjb25maWc/DQo+IE9yIHNvbWUg
Zm9ybXVsYSB3aGljaCBhY2NvdW50cyBNQVhfVklSVF9DUFVTPw0KDQoNCkkgYWdyZWUgdGhhdCB1
c2luZyBhIGZvcm11bGEgdGhhdCBhY2NvdW50cyBmb3IgTUFYX1ZJUlRfQ1BVUyBpcyB0aGUgbW9z
dCANCnJvYnVzdCBhcHByb2FjaC4NCg0KSGVyZSBpcyB0aGUgZW1waXJpY2FsIGRhdGEgKGJ5IHRl
c3Rpbmcgd2l0aCB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGV2aWNlIA0KdHJlZSBub2RlcyAoZS5n
LiwgaHlwZXJ2aXNvciBhbmQgcmVzZXJ2ZWQtbWVtb3J5IG5vZGVzKSBhbmQgZW5hYmxpbmcgYWxs
IA0Kb3B0aW9uYWwgQ1BVIHByb3BlcnRpZXMgKGUuZy4sIGNsb2NrLWZyZXF1ZW5jeSkpOg0KDQpj
cHVzPTENCihYRU4pIEZpbmFsIGNvbXBhY3RlZCBGRFQgc2l6ZSBpczogMTU4NiBieXRlcw0KDQpj
cHVzPTINCihYRU4pIEZpbmFsIGNvbXBhY3RlZCBGRFQgc2l6ZSBpczogMTY5OCBieXRlcw0KDQpj
cHVzPTMyDQooWEVOKSBGaW5hbCBjb21wYWN0ZWQgRkRUIHNpemUgaXM6IDUwNTggYnl0ZXMNCg0K
Y3B1cz0xMjgNCihYRU4pIEZpbmFsIGNvbXBhY3RlZCBGRFQgc2l6ZSBpczogMTU4MTAgYnl0ZXMN
Cg0KDQpzdGF0aWMgaW50IF9faW5pdCBwcmVwYXJlX2R0Yl9kb21VKHN0cnVjdCBkb21haW4gKmQs
IHN0cnVjdCBrZXJuZWxfaW5mbyANCipraW5mbykNCiAgew0KICAgICAgaW50IGFkZHJjZWxscywg
c2l6ZWNlbGxzOw0KQEAgLTU2OSw2ICs1NjksOCBAQCBzdGF0aWMgaW50IF9faW5pdCBwcmVwYXJl
X2R0Yl9kb21VKHN0cnVjdCBkb21haW4gKmQsIA0Kc3RydWN0IGtlcm5lbF9pbmZvICpraW5mbykN
CiAgICAgIGlmICggcmV0IDwgMCApDQogICAgICAgICAgZ290byBlcnI7DQoNCisgICAgcHJpbnRr
KCJGaW5hbCBjb21wYWN0ZWQgRkRUIHNpemUgaXM6ICVkIGJ5dGVzXG4iLCANCmZkdF90b3RhbHNp
emUoa2luZm8tPmZkdCkpOw0KKw0KICAgICAgcmV0dXJuIDA7DQoNCiAgICBlcnI6DQoNClRoaXMg
ZGF0YSBzaG93cyAoYXNzdW1pbmcgbXkgdGVzdGluZy9jYWxjdWxhdGlvbnMgYXJlIGNvcnJlY3Qp
Og0KDQotIEEgbWFyZ2luYWwgY29zdCBvZiAxMTIgYnl0ZXMgcGVyIHZDUFUgaW4gdGhlIGZpbmFs
LCBjb21wYWN0ZWQgZGV2aWNlIHRyZWUuDQotIEEgZml4ZWQgYmFzZSBzaXplIG9mIDE0NzQgYnl0
ZXMgZm9yIGFsbCBub24tdkNQVSBjb250ZW50Lg0KDQpCYXNlZCBvbiB0aGF0IEkgd291bGQgcHJv
cG9zZSB0aGUgZm9sbG93aW5nIGZvcm11bGEgd2l0aCB0aGUganVzdGlmaWNhdGlvbjoNCg0KLyoN
CiAgKiBUaGUgc2l6ZSBpcyBjYWxjdWxhdGVkIGZyb20gYSBmaXhlZCBiYXNlbGluZSBwbHVzIGEg
c2NhbGFibGUNCiAgKiBwb3J0aW9uIGZvciBlYWNoIHBvdGVudGlhbCB2Q1BVIG5vZGUgdXAgdG8g
dGhlIHN5c3RlbSBsaW1pdA0KICAqIChNQVhfVklSVF9DUFVTKSwgYXMgdGhlIHZDUFUgbm9kZXMg
YXJlIHRoZSBwcmltYXJ5IGNvbnN1bWVyDQogICogb2Ygc3BhY2UuDQogICoNCiAgKiBUaGUgYmFz
ZWxpbmUgb2YgMktpQiBpcyBhIHNhZmUgYnVmZmVyIGZvciBhbGwgbm9uLXZDUFUgRkRUDQogICog
Y29udGVudC4gVGhlIDEyOCBieXRlcyBwZXIgdkNQVSBpcyBkZXJpdmVkIGZyb20gYSB3b3JzdC1j
YXNlDQogICogYW5hbHlzaXMgb2YgdGhlIEZEVCBjb25zdHJ1Y3Rpb24tdGltZSBzaXplIGZvciBh
IHNpbmdsZQ0KICAqIHZDUFUgbm9kZS4NCiAgKi8NCiNkZWZpbmUgRE9NVV9EVEJfU0laRSAoMjA0
OCArIChNQVhfVklSVF9DUFVTICogMTI4KSkNCg0KKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKg0KDQpQbGVhc2UgdGVsbCBtZSB3b3VsZCB5b3UgYmUgaGFwcHkg
d2l0aCB0aGF0Pw0KDQoNCj4gDQo+PiDCoCBzdGF0aWMgaW50IF9faW5pdCBwcmVwYXJlX2R0Yl9k
b21VKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCANCj4+IGtlcm5lbF9pbmZvICpraW5mbykNCj4+
IMKgIHsNCj4+IMKgwqDCoMKgwqAgaW50IGFkZHJjZWxscywgc2l6ZWNlbGxzOw0KPiANCg==


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 12:13:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 12:13:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176699.1501159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQlji-0000SF-D9; Wed, 03 Dec 2025 12:13:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176699.1501159; Wed, 03 Dec 2025 12:13:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQlji-0000S8-AB; Wed, 03 Dec 2025 12:13:34 +0000
Received: by outflank-mailman (input) for mailman id 1176699;
 Wed, 03 Dec 2025 12:13:33 +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
 <SRS0=1EAn=6J=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vQljg-0000S2-UQ
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 12:13:33 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7b7dfebf-d041-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 13:13:31 +0100 (CET)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-37a415a22ecso8399581fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 04:13:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b7dfebf-d041-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764764011; x=1765368811; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0PTApX7PqTX0x3z2ts5Hkh82xuUbt3IG9TwxGNUSC4U=;
        b=APsC1qn+wK1/He/S8jRlFOzO+x6SnhIwYzQEAdNBX6U2gDaRsbHNSG1P0kjxyawUK+
         IdDFOUhH+ik/Bz626nDfb4+Ytw3WzL+qceT0wJs+QN5ToJzzRzdTtzQhA0x8ohZGnaze
         1KE9DNStgTNcb14Te0SWwLgdsPe/H/JJycIi+IP2m1Gm7ov74x+ScZaEuGDOeOb1PK3+
         y4p0hzgwFkJ+tI2PtNQQFK/1x8VV66LNHopTNVKJQtdr8js191hTg7cUK1NTGJgWqXDJ
         NEVOrThQHprIbs8FRECHdF9mqQ8b/iMFW+EZDsR6dOWuSyTaBnPfEePwbrhsw4bPm1lV
         kSPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764764011; x=1765368811;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=0PTApX7PqTX0x3z2ts5Hkh82xuUbt3IG9TwxGNUSC4U=;
        b=jjehL259yOyMX3NR+RVbDj9ilt7NZBivfHs8B2wquMIKbmHA+UlcM5yPaYAWUSQQDc
         YgDf0qWCRsUW5bXzqwKcAmSdgFqJpziEZny4Rnu8FnJQG+RGG36bLT3vtygOYuqSw85J
         xzaHEjmB88zg2lNPlyCx9R5Hcs1kRXlfPAuxasC5PWuvzm5TTakS69o2uB2d6mEhJS8H
         KArO02xj/0LCyNcaBTEd2K2di80qGMys+6EGvuJBrdBFDFtUDt7YGkBub2C8Bfg3XTUc
         NWYsQ8n9PwSEKfRfGXUbela8L/jRqKQgJohKGdswM4oFt5q8JEM1swVnl8To5zXhF4Pn
         dH2g==
X-Forwarded-Encrypted: i=1; AJvYcCVBELeiE9p7Z7m6HM7VnQFZXqhrXFXzu0X2qb6tqYka42T5gR3TplRc1znZEciWtHM241h+jeFuq8A=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywk+MaxGteLo7I1Qftm9R6pc7bjgE9WrTKcXCbZXOJTXnV8lGEO
	/986OZZXKTMEe/6HLM/+8MA0SLEq5zvYqO7OChPR2VlkmhT2imfZ1s4IpWusQtC2dmtOjjWh86C
	GLMl+8aQxKZuPUIZfGPXKwC4sgD9mO3A=
X-Gm-Gg: ASbGnctv7d3c1tr7dkbOwXR2z+qKZmCSW2CwKIQDC4PgjXJ+OPWP2e9wCStwRCV9H9m
	LH9tkiEyL+L+wdpWXKN6Npxf4KQ/GwKS6o6SBv6CeOzwD/wiWpi0P97cDX1IwORwUKd5h1IWsfX
	83CHoM4KID3YIdQSBJMJyZ1FmENIrUkY5qGH9446/gdFbJwaChC3KQ1KtY1hy8a6o2GMs6bWiIR
	A761fsEcPoe2Q08fhPDo5ChNOBMYKT9/8DSyLDLEAjhU+4dYlO0X6I072IG37w0oygqlcQ=
X-Google-Smtp-Source: AGHT+IHktBYvHbZebiSd1KVCAgtriP+d5+b1kO3mKLYqLvu/pbK9kTsVOvltAi3+GxhpPaCEOGhuQACmR/OZ1K6xPuU=
X-Received: by 2002:a05:651c:1b84:b0:37a:582b:9ae3 with SMTP id
 38308e7fff4ca-37e58e87d9fmr18348151fa.17.1764764010427; Wed, 03 Dec 2025
 04:13:30 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764755558.git.xakep.amatop@gmail.com> <f05ece00c276187d764c7539142f29ee3c48987c.1764755558.git.xakep.amatop@gmail.com>
 <63ed70d8-ab4c-4b9e-8884-954f8f8194e4@suse.com>
In-Reply-To: <63ed70d8-ab4c-4b9e-8884-954f8f8194e4@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Wed, 3 Dec 2025 14:13:19 +0200
X-Gm-Features: AWmQ_bm0WhAlwghdYhAotWRE5XuunpiRmRWkKMY_YdYzOx0P-6DI0Velyo0jgOg
Message-ID: <CAGeoDV8zjwZ5YMLG4RKO6NCOwjeiS85mW5=yRP5E8MRYwgNESw@mail.gmail.com>
Subject: Re: [PATCH v15 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Jan,

Thank you for the review.

On Wed, Dec 3, 2025 at 12:11=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 03.12.2025 10:57, Mykola Kvach wrote:
> > --- a/xen/common/domain.c
> > +++ b/xen/common/domain.c
> > @@ -26,6 +26,7 @@
> >  #include <xen/hypercall.h>
> >  #include <xen/delay.h>
> >  #include <xen/shutdown.h>
> > +#include <xen/suspend.h>
> >  #include <xen/percpu.h>
> >  #include <xen/multicall.h>
> >  #include <xen/rcupdate.h>
> > @@ -1363,6 +1364,9 @@ void domain_resume(struct domain *d)
> >
> >      spin_lock(&d->shutdown_lock);
> >
> > +    if ( arch_domain_resume(d) )
> > +        goto fail;
>
> In case I didn't ask before: You're after a boolean result here, yet ...
>
> > --- /dev/null
> > +++ b/xen/include/xen/suspend.h
> > @@ -0,0 +1,25 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +
> > +#ifndef XEN_SUSPEND_H
> > +#define XEN_SUSPEND_H
> > +
> > +#if __has_include(<asm/suspend.h>)
> > +#include <asm/suspend.h>
> > +#else
> > +static inline int arch_domain_resume(struct domain *d)
> > +{
> > +    return 0;
> > +}
> > +#endif
>
> ... int is being returned. Why?

Would you prefer I switch arch_domain_resume() to bool, or is keeping
int acceptable?

I lean toward keeping int: the generic call site is shared by all arches,
so future arches could inspect/handle specific error codes, and this matche=
s
other arch hooks (e.g. arch_domain_teardown()) that are only checked for
"rc !=3D 0" before bailing.

With int, I'll store the result and gate the rest:

    rc =3D arch_domain_resume(d);
    if (rc)
        goto fail;

If int works for you, I=E2=80=99ll keep it; otherwise I can flip to bool.

>
> Jan

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 12:16:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 12:16:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176710.1501169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQlmR-000101-Qa; Wed, 03 Dec 2025 12:16:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176710.1501169; Wed, 03 Dec 2025 12:16:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQlmR-0000zu-NV; Wed, 03 Dec 2025 12:16:23 +0000
Received: by outflank-mailman (input) for mailman id 1176710;
 Wed, 03 Dec 2025 12:16:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PcFb=6J=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vQlmQ-0000zo-Ch
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 12:16:22 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ddf6d0bf-d041-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 13:16:16 +0100 (CET)
Received: from AS4P191CA0047.EURP191.PROD.OUTLOOK.COM (2603:10a6:20b:657::22)
 by PAWPR08MB10044.eurprd08.prod.outlook.com (2603:10a6:102:362::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Wed, 3 Dec
 2025 12:16:09 +0000
Received: from AM1PEPF000252DD.eurprd07.prod.outlook.com
 (2603:10a6:20b:657:cafe::f0) by AS4P191CA0047.outlook.office365.com
 (2603:10a6:20b:657::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.9 via Frontend Transport; Wed, 3
 Dec 2025 12:16:07 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM1PEPF000252DD.mail.protection.outlook.com (10.167.16.55) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Wed, 3 Dec 2025 12:16:09 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by GV2PR08MB9253.eurprd08.prod.outlook.com (2603:10a6:150:e3::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Wed, 3 Dec
 2025 12:15:06 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d%4]) with mapi id 15.20.9388.003; Wed, 3 Dec 2025
 12:15:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ddf6d0bf-d041-11f0-980a-7dc792cee155
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=P9bd6RMf6CJWWTb/K3WSObgs/u4nBU/sfaNGpwqq+/pBqeBaNPPF4+CA0LUm/u77gTzP2X1EcDJQqQG1+LXPO6Zwv1teVmBj9yXxyPmQTQyU9Gw2aGBGn9Oa5pDbrnF3T8y2bUpIf+5/L2vouqaSPZlk3P7UO2OvF7P+KMaa2zyvbqUvlqvopZSiKheK9zd+bTCgH/k/TyJqXYe3byPYKs58NQHfUYjm44p28HVBzYfbddLq+ewAgsMThihaMUhPH+pMwroyRDXlzOUfqTFdujNNya6wvXojCQl+8801NgSFOQSEThZPmDo9AaZqdIALUUFOO18MQQvEutMgFwUvYw==
ARC-Message-Signature: i=2; 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=VB7UskeVf7o5DRGGKZLrZbXEy/iwTjAcQ0qV6s8fwfI=;
 b=OHRU/5bJnSdyr2eE1WvUQ/GkuxIozN+VU9Eg8Ebb3LWwYtyDqPFR678EGTY2rEMmdUuSchzVa2gsGWeF6TkfiFxYusVbzyhRrH8zll2NkbhSW8Af8muWP/Q7r1vamFe9+hPQS2Ux8LV1jjQ8TcQSGcPT51PZpe5ge4k96g3jxX3fiRSKq8TruU3Fv6jAq9BVR+B7zN+EoauxZsYSRvpyRlmpncB9hvi9XKhXPMoIP/MnvuvN4dSz28HW9ZcmDqvdBC69bSBMXjQKtHS2Hfl9vZtHqRk3XxMt/MspwBXQZ+DLiKpFO6bftWmqEUh6F75Mx602U5sRtBtqx6s6apowWg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VB7UskeVf7o5DRGGKZLrZbXEy/iwTjAcQ0qV6s8fwfI=;
 b=aZoc+fIG767HaOvEhaqJEaPmSAOMqBrZjQ8mm5VNjkO8XmdWsC0Q8HcPUsJN8rsziRF6OusIi9LUqr5FLM+WlNXl2sdZi1pkh/GK5URNwWF0jM01TC/fGNPjcc8RenoGBB+lkrGo3vUNiBR2vdik3D0cdwSLt1LBcEbdBDllJz4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MSaP4j6V2Q6cbrP+eRYD6Hgh1LnqJ4YSyUOvzKoFYXNZy7D+VWlXDEuNJYz+9pVtEV6+/k/jiycdxxIpq+YnQDFElqvRTanp44/MHdDTJSgHMuHQnBmSTUIWB30wJOmPrqPJRnY6U4n1cJ1RB30gw0ONK5TOXQ9aUxt/Rex7WArv9QFGaRONDghW/a7x0+CdjOnfc2bA7oFV2YGLN6nPM8j7Fy/ygHEhGOzA88E05kG6l4C8N4ONDBqe+nD993YVmNE/L93vQf047lPPbJeocbYNRDvF+yr/Vs2Pv9jT5SPHc9wXeCSIKlousGWkaFt7MHhrwMxjGQ5QpgIfQTmv4Q==
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=VB7UskeVf7o5DRGGKZLrZbXEy/iwTjAcQ0qV6s8fwfI=;
 b=Jeve7LKw0+xtFxQ6fqzRysUszS0MvR9NZXcKt21X+JqDgnFRjf7hpuoWQ02hnpGtJLypZq2tY8UJjI4kTq6ra3Qday29UZUdydFUo2yS/ZFAXjuku0uE5tl61wr92ips720Tf9rhRHMiDagVq4HfK7Vus0u9+9OrJ8RQEVDwu41xU77JaSil93ruTJ5nn5BfG6Ctw8doXVp4P9FcKMpbTJUXwDSGkzI3KVWN3BCYRj/IkqOwQ9Bs0zSTxxJbCH6nU1sBFwAFosRPHvw7wttKOdrmOWvk4+Bx9xi6ph1o+w54kc7Bz+8I9hqUvjK+EC2JxY1dKB2csR+Tvtk+OENgcQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VB7UskeVf7o5DRGGKZLrZbXEy/iwTjAcQ0qV6s8fwfI=;
 b=aZoc+fIG767HaOvEhaqJEaPmSAOMqBrZjQ8mm5VNjkO8XmdWsC0Q8HcPUsJN8rsziRF6OusIi9LUqr5FLM+WlNXl2sdZi1pkh/GK5URNwWF0jM01TC/fGNPjcc8RenoGBB+lkrGo3vUNiBR2vdik3D0cdwSLt1LBcEbdBDllJz4=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 04/10] xen/arm: ffa: rework SPMC RX/TX buffer management
Thread-Topic: [PATCH 04/10] xen/arm: ffa: rework SPMC RX/TX buffer management
Thread-Index:
 AQHcX7XuY/AW54zALEuMn1h4iIrvHbUOavEAgAAsagCAAQzjgIAADJGAgAAQAoCAAByhgA==
Date: Wed, 3 Dec 2025 12:15:06 +0000
Message-ID: <928FFDB0-3341-468A-9E0B-0578E3B4BA7C@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
 <72d6592157a9ec15d4b5de19751186e0ca1680ba.1764254975.git.bertrand.marquis@arm.com>
 <CAHUa44Gq4L95i3wTMEVRoFNFt2PzPCKGAuF4KT3YL9mfmT2FRA@mail.gmail.com>
 <33EF4249-1F82-4DF5-BCCE-0BCBB0F3D157@arm.com>
 <CAHUa44FQ8bCo5cuVR-JW9om+jEqUA8uZAPAmic9GkwnG-OeE7A@mail.gmail.com>
 <4E39091E-8EFB-4C80-8A1C-FB37B07B8AA3@arm.com>
 <CAHUa44H_nD2ep+q1b2sZy-hJXAtbSmoHCNtaR0ASs1=JoRY2jg@mail.gmail.com>
In-Reply-To:
 <CAHUa44H_nD2ep+q1b2sZy-hJXAtbSmoHCNtaR0ASs1=JoRY2jg@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.200.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|GV2PR08MB9253:EE_|AM1PEPF000252DD:EE_|PAWPR08MB10044:EE_
X-MS-Office365-Filtering-Correlation-Id: 5814c906-098f-418a-c3c2-08de3265be08
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|10070799003|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?N3ZVT0dSVS9sT3ZXTEo5NWgxTTZZUXBkOHFnbmplOVd2ZDZPVU1UNXBwUHpt?=
 =?utf-8?B?bXpTdmU3YUtNK3ZLeEtKaWloTVhGSTdNT2dDK25RTm1qRGFrRU1kcnhpSm50?=
 =?utf-8?B?aiszWVJWcmNMajA1cHFtb3IxK0VvYkhyZ29YZUdwTUtZNFVCR3FGTkRsZHFW?=
 =?utf-8?B?ZVNxcDhHYTBKVEJmTjBwWlJYeHRSZFBZYWVFT1pVZDI3VGhWeVd1ejZLN3gy?=
 =?utf-8?B?YkkzR3g0ZHc2c1owb08xUHJ0WTVncXZyWTg5RmRJNmFrMW4wdWt2dlBJdEFR?=
 =?utf-8?B?NnBlZnpsR0Fqei92TUNHcXVwVmkwdkVSOUk1Zkt4QUxCZDgvWGN5NkNBYmt4?=
 =?utf-8?B?ck9nenB2cVQ5VGs2RGZ0UGZwNmlQOEVkd3BnckVYbUQ5ekFkRmQzODJHNElB?=
 =?utf-8?B?M2pTYVBCTkdDTWN1aEN0NU5Ca1V6VWhkRmNRNWNZbHNHSDc0eFdFb0xDOW1M?=
 =?utf-8?B?cG1ieXFrRVhVWjVqQ1NMTzRQck9sVitscTlqWTVnRUUySGFLVDM5RGU1bUVI?=
 =?utf-8?B?cjJ0T3A1UTBrKzViTUdnakY5UUFySnQvNnBUUlBpYzZlRWZzREg1RC80UFlY?=
 =?utf-8?B?aFlQRXdPQXZRZVJFQWg1YU1MSlhDVkFQR05pYW4waGc4ZnNHamQvNkpRdTZ1?=
 =?utf-8?B?YXRsenNIa3RKaUJzSW5oNW5kQmZOdnB2U0RQcVJjK0owNHhQMSs5VGdLNkRI?=
 =?utf-8?B?bUlLay9LWGtaQ0RZQmhLUUEvSW4rVjZrcDNJS0tkckE2OUkzMWZOcS9Md0M1?=
 =?utf-8?B?ZURpd2lzVWRLcDhqNTE1SHA4bEcwQnR0UkhZYW1ndUdrV29hdEdHNnRpaEZS?=
 =?utf-8?B?QjdaWmUwQm5tR0pBWmZRMENtMVJ4WFQ5dEVWR0dabU11cVREUFN6aEVZTjE3?=
 =?utf-8?B?MnQybFZwckNTdzFrb3VmbW5UOHE4WS93MDB2MDRSUkQ2OStMeGtESUlFd3lK?=
 =?utf-8?B?eWNSa3ovL2w3ZXJ3NEFVZFhNaGt0RjhVdExBNUVLaUM2R0VsQW9aU1BsL1ZG?=
 =?utf-8?B?a3VjT20wUFRhQ2YybzlndXJZY0Z2UEV3dXdJY1BCZ0hKRStJR2gvSE1kMHdU?=
 =?utf-8?B?RzlxS2I4cWJUdmZLSWxyWjUxWG8xblJZMU81b2dKVHdLZU1wbFYxK1YwcVN0?=
 =?utf-8?B?ckZvV1NBU2RFVzhyRzNtNjUzcG9HMmt2SzBPT3RoYU9HYTRXU0JOd3BpNkRM?=
 =?utf-8?B?cTRBQlIxUkhDR3RCOUhLWEtWcG1yd2R1K1hsVUZlN3BCWmxhWTBiWUJkVjhT?=
 =?utf-8?B?aS9Ba0NaczVsQUptb3Q1VWJwVkM1dW1sbWFCSmp2Uy8xNjBWMTV4dW51UjRO?=
 =?utf-8?B?Mmh4VUpPMm56b29VaHBuZHEwd28wWjQ0Unp4c1RYbDMyaGluUWtaOG1ISDRW?=
 =?utf-8?B?emRhTU1VNW9LVTFwbCtuelBodXBCVUNncTZaQWQ4amh3UWNuakd1OWV2T1JX?=
 =?utf-8?B?azVDTmZ3RVFGajFOQ2tIejU3UnhnS3A5WkMxSi9wNTNDOXYrS1JGTzdRSlFz?=
 =?utf-8?B?ZkIvL0wvQktDalp4TU1zQWhBay9VUFgxOUZjWEJtVFlzbHpoTXZFaWI2UWM3?=
 =?utf-8?B?OHRScXZhY1k1L3FLR2F5N3NhbDlENVVkYi9aMDRBNUFKL3B6elBTTHVDOGkz?=
 =?utf-8?B?dE16QWkxMzBHRWFvMnhpTXY4UlhxQjY2c0g2bTMvOHpQd2dndG51OUlHYStI?=
 =?utf-8?B?MUlKUjMrZEVLVHZCYVU1WGRjZjNkdnlUVE4zbjQwMnpGRUNmRFQzcHJubEV1?=
 =?utf-8?B?SWFRdi8rS3RmYVJHSHQ3ampuZ1FOVks3RVV1MzhGQko4K1V2UTZQRmtQOEo4?=
 =?utf-8?B?MlBZY0hUaUlXRDBOandpWlQ2QmV0Q1lmM1pWTG44U2hkR1FDcGtuY1IzSlNX?=
 =?utf-8?B?djR6a25mYnJpOXFMVXJEQkZZcjlhalJtM2EzN0trakZKR2I1NG0rSTcwdDRu?=
 =?utf-8?B?R2dDSHovUzVxMC9NNFVzTVhSc1BEYmFYSzZ1Tm16RERJc2pock9yVkFQSTVC?=
 =?utf-8?B?S2NTT0Z5aW9OVWZvdmdRbjVNWWFsWmpQQXU2SmN5aU0yS1VQajVxVVppbTg2?=
 =?utf-8?Q?DmvvN6?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(10070799003)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <6D66B00230BAF84B8C6F416E8AB241AD@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB9253
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM1PEPF000252DD.eurprd07.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	6870fb1d-7bdd-4573-c211-08de3265985d
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|35042699022|36860700013|1800799024|14060799003|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?K1g3MkE3ekhVYVhaK0NhaHdZS2R5dGdOSFJ5cmR0ZWY5RHZiejEvaDRvaUk1?=
 =?utf-8?B?TzlEVUxvVUFLTVBUMkx2WEw1Q3ZiY2U4S2taS0dpbWtzK1ZmZys4NWY0WC9I?=
 =?utf-8?B?TnFidXpMVEFISnhwbGczNmpvZzI5ejc4S2ptbFZEQ2p5QUtiOHVHUGphc1Bn?=
 =?utf-8?B?bkJGUDRLWG9VMVcwN3c1OVB6ZVpKREFlb2Z3VkQvMG9UMmgzVFNESXFHOHV1?=
 =?utf-8?B?Z3d3czZmL0VLNVoybEFEUGx0N2MvRm1CeURUNGxnYVVIYkJmK3pXL2pOdlNr?=
 =?utf-8?B?U1htZnpxV0NiS3l5RkR2WjU5Y3VNekhORnZzZHI2ZGN3enpvK2FoYXJoT0d0?=
 =?utf-8?B?bWZMY1RyN3ZxSzJheTNxL3VlWVZiNnF5VEpRQzhiU2N3VTNkVnExeGppaUl0?=
 =?utf-8?B?eGpwdks5N1JOWXozbUtBSHFJUzJvcWNFTFIwU2NWSlAxYVR3aW5oT2VNejR4?=
 =?utf-8?B?ZHpadDE2SnkrVS95R0xFTC9ZdXJ0NXY4TnhtdHB0M0wyVlVaMEIyVU9zRlk3?=
 =?utf-8?B?VllPUVhMazhNZ0QvU1A4OFlhemgzNDI3SnZjUVE3UUFUb0djWW1jOWh1YXc4?=
 =?utf-8?B?dlVMT1JnSW5hcVNjbHNoV2d2UUNkSlNQTERIOGZlQzBYTGR0STg0a0NyeXJl?=
 =?utf-8?B?dWFHRkQ5MmJrV0JNbU90RnZmMTdramhEUndZYXJQNDFEOEt0TnduaW5NUTkz?=
 =?utf-8?B?WGxnRnpvT2hVeityaHNoUU51U1hzaGpSK0lqTmduaDd2K1llc1MrbnZKMUtq?=
 =?utf-8?B?NWE3ck51dHVsWEZWM3Jya1hwaVZxTTRBYzYwVWpOeUlqWldnUGZwN3BiSFVY?=
 =?utf-8?B?Z0tTSTJRc21vb3BVdW9IZkZGRW9rU0t0TmFhRmRDM004N2hLR3g5Y244RUdp?=
 =?utf-8?B?VDFKRHQ2WE5YREQwWm1kSS9xZUxLK3NZQUhENEMyRmJtRTMxa0VMdEV1VnVi?=
 =?utf-8?B?bWxZQXIxK01pMDM1VjhUYXdlamg3V1VkMzFaWE4xeVd1cW1rQ2k1Q0hSaG90?=
 =?utf-8?B?N2FmN1ZhaDNhZStNSldsWHpVbXdHMStzeXRSNi9rQVRPdVFOZC8rcVlhNEs4?=
 =?utf-8?B?QWEzMmYyOXVocStwSlR2STJGTlYwUVpSTlVLVEhzYklSdi9MdjgxZmwwTSt3?=
 =?utf-8?B?U2tBamJjK2dqWkoxc3pWN1BacXNicEg5MTA0d3pOelZVNm1JbkxWbVpSZ1BS?=
 =?utf-8?B?WldPSHVMZTBqYUVEOHFqU0JSUVF4eW85RFREWUc4VzFuYnkvbWpzWHAyQ3lN?=
 =?utf-8?B?emNUQ05yVTdXRzJiUFNOSEpZZ0JBemsrTytDVFlzSElqa0lCWmVaTHVvbXlZ?=
 =?utf-8?B?Z0d6TXFMRjVCVDhOM0YvYldUdzhmRnNONnJnOUF1OEJFZ0tNSm9yb0lHdWpz?=
 =?utf-8?B?ZnJEUmRKdHJicGgrR0REdWdGWTlDMCtOeGJ5dXJmbk54UHAyZmd3bVkwRUVG?=
 =?utf-8?B?MFhPdWNrZU11N3dmazk0UDIvaFBtWWdPVHNTTU5sVXJ4eVlrUHlROE5pVjNW?=
 =?utf-8?B?YnFjelBlTkZUU2JqS2tsQWE3emNYQUJvVzJ0NUVycHVvWmJOMi91VU9BQzJZ?=
 =?utf-8?B?bkhzRUhhVGZURHF0SkJKMlhYTXBBRU9mRWRCQTM1TWdSM2NleFd2aFA2eFZE?=
 =?utf-8?B?cS9KWUNkWWNFS2p5VEE0Qk5ZYy9qYnpZNzg2L0V5dTdaOWwzQlM3dEJib2FT?=
 =?utf-8?B?b0g4WXV6Y3pqT0d6b0JIMnBNR3dZWElLc0tpMjJCRndqVG9NZmpMTmp3enBG?=
 =?utf-8?B?aGE3amhDQWo1Ymo0SndRY0daYzl5WnNiL0M5TWRyUVlreWdCTjg2ZWVPUTFx?=
 =?utf-8?B?RloxM3NidWF2R2twQjQyb29mblhDOGhFUGduRzBtUDNYZUJObTZ6b2ZHOERY?=
 =?utf-8?B?UGdsTU15NENKeTF4czIxOVJTR0RndHdXZkZYSGhLSEo4aUt1cFMvYTh3NGpU?=
 =?utf-8?B?TTgxRFFrR1NYNG1yajBlRFNodUNpVFppU21vRElOUDFaYXI3aDF2NmlFMmNB?=
 =?utf-8?B?ZmRXQ1ZTNUdHb3lxVy9qWVppMjdyMi93Ynl0ajhCV3FhL05ZS24vclVuWVk4?=
 =?utf-8?B?b2VVaThPZ1crRmtON2ZiaHRoNU9JYkErMWhtbHNYRU1JYVlSaE80V1R2WHBB?=
 =?utf-8?Q?s9g8=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(35042699022)(36860700013)(1800799024)(14060799003)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2025 12:16:09.3530
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5814c906-098f-418a-c3c2-08de3265be08
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM1PEPF000252DD.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB10044

SGkgSmVucywNCg0KPiBPbiAzIERlYyAyMDI1LCBhdCAxMTozMiwgSmVucyBXaWtsYW5kZXIgPGpl
bnMud2lrbGFuZGVyQGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gSGksDQo+IA0KPiBPbiBXZWQs
IERlYyAzLCAyMDI1IGF0IDEwOjM24oCvQU0gQmVydHJhbmQgTWFycXVpcw0KPiA8QmVydHJhbmQu
TWFycXVpc0Bhcm0uY29tPiB3cm90ZToNCj4+IA0KPj4gSGkgSmVucywNCj4+IA0KPj4+IE9uIDMg
RGVjIDIwMjUsIGF0IDA5OjUwLCBKZW5zIFdpa2xhbmRlciA8amVucy53aWtsYW5kZXJAbGluYXJv
Lm9yZz4gd3JvdGU6DQo+Pj4gDQo+Pj4gSGkgQmVydHJhbmQsDQo+Pj4gDQo+Pj4gT24gVHVlLCBE
ZWMgMiwgMjAyNSBhdCA1OjUw4oCvUE0gQmVydHJhbmQgTWFycXVpcw0KPj4+IDxCZXJ0cmFuZC5N
YXJxdWlzQGFybS5jb20+IHdyb3RlOg0KPj4+PiANCj4+Pj4gSGkgSmVucywNCj4+Pj4gDQo+Pj4+
PiBPbiAyIERlYyAyMDI1LCBhdCAxNTowOCwgSmVucyBXaWtsYW5kZXIgPGplbnMud2lrbGFuZGVy
QGxpbmFyby5vcmc+IHdyb3RlOg0KPj4+Pj4gDQo+Pj4+PiBIaSBCZXJ0cmFuZCwNCj4+Pj4+IA0K
Pj4+Pj4gT24gVGh1LCBOb3YgMjcsIDIwMjUgYXQgNDo1MuKAr1BNIEJlcnRyYW5kIE1hcnF1aXMN
Cj4+Pj4+IDxiZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+IHdyb3RlOg0KPj4+Pj4+IA0KPj4+Pj4+
IFJld29yayBob3cgWGVuIGFjY2Vzc2VzIHRoZSBSWC9UWCBidWZmZXJzIHNoYXJlZCB3aXRoIHRo
ZSBTUE1DIHNvIHRoYXQNCj4+Pj4+PiBvd25lcnNoaXAgYW5kIGxvY2tpbmcgYXJlIGhhbmRsZWQg
Y2VudHJhbGx5Lg0KPj4+Pj4+IA0KPj4+Pj4+IE1vdmUgdGhlIFNQTUMgUlgvVFggYnVmZmVyIGJh
c2VzIGludG8gZmZhX3J4dHguYyBhcyBmZmFfc3BtY19yeC9mZmFfc3BtY190eCwNCj4+Pj4+PiBw
cm90ZWN0IHRoZW0gd2l0aCBkZWRpY2F0ZWQgZmZhX3NwbWNfe3J4LHR4fV9sb2NrIHNwaW5sb2Nr
cyBhbmQgZXhwb3NlDQo+Pj4+Pj4gZmZhX3J4dHhfc3BtY197cngsdHh9X3thY3F1aXJlLHJlbGVh
c2V9KCkgaGVscGVycyBpbnN0ZWFkIG9mIHRoZSBnbG9iYWwNCj4+Pj4+PiBmZmFfcngvZmZhX3R4
IHBvaW50ZXJzIGFuZCBmZmFfe3J4LHR4fV9idWZmZXJfbG9jay4NCj4+Pj4+PiANCj4+Pj4+PiBU
aGUgUlggaGVscGVycyBub3cgYWx3YXlzIGlzc3VlIEZGQV9SWF9SRUxFQVNFIHdoZW4gd2UgYXJl
IGRvbmUNCj4+Pj4+PiBjb25zdW1pbmcgZGF0YSBmcm9tIHRoZSBTUE1DLCBzbyBwYXJ0aXRpb24t
aW5mbyBlbnVtZXJhdGlvbiBhbmQgc2hhcmVkDQo+Pj4+Pj4gbWVtb3J5IHBhdGhzIHJlbGVhc2Ug
dGhlIFJYIGJ1ZmZlciBvbiBhbGwgZXhpdCBwYXRocy4gVGhlIFJYL1RYIG1hcHBpbmcNCj4+Pj4+
PiBjb2RlIGlzIHVwZGF0ZWQgdG8gdXNlIHRoZSBkZXNjcmlwdG9yIG9mZnNldHMgKHJ4X3JlZ2lv
bl9vZmZzIGFuZA0KPj4+Pj4+IHR4X3JlZ2lvbl9vZmZzKSByYXRoZXIgdGhhbiBoYXJkLWNvZGVk
IHN0cnVjdHVyZSBsYXlvdXQsIGFuZCB0byB1c2UgdGhlDQo+Pj4+Pj4gVFggYWNxdWlyZS9yZWxl
YXNlIGhlbHBlcnMgaW5zdGVhZCBvZiB0b3VjaGluZyB0aGUgVFggYnVmZmVyIGRpcmVjdGx5Lg0K
Pj4+Pj4+IA0KPj4+Pj4+IFNpZ25lZC1vZmYtYnk6IEJlcnRyYW5kIE1hcnF1aXMgPGJlcnRyYW5k
Lm1hcnF1aXNAYXJtLmNvbT4NCj4+Pj4+PiAtLS0NCj4+Pj4+PiB4ZW4vYXJjaC9hcm0vdGVlL2Zm
YS5jICAgICAgICAgIHwgIDIyICstLS0tLQ0KPj4+Pj4+IHhlbi9hcmNoL2FybS90ZWUvZmZhX3Bh
cnRpbmZvLmMgfCAgNDAgKysrKystLS0tLQ0KPj4+Pj4+IHhlbi9hcmNoL2FybS90ZWUvZmZhX3By
aXZhdGUuaCAgfCAgMTggKystLS0NCj4+Pj4+PiB4ZW4vYXJjaC9hcm0vdGVlL2ZmYV9yeHR4LmMg
ICAgIHwgMTMyICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tDQo+Pj4+Pj4geGVuL2Fy
Y2gvYXJtL3RlZS9mZmFfc2htLmMgICAgICB8ICAyNiArKysrLS0tDQo+Pj4gDQo+Pj4gW3NuaXBd
DQo+Pj4gDQo+Pj4+Pj4gDQo+Pj4+Pj4gLXZvaWQgZmZhX3J4dHhfZGVzdHJveSh2b2lkKQ0KPj4+
Pj4+ICt2b2lkICpmZmFfcnh0eF9zcG1jX3J4X2FjcXVpcmUodm9pZCkNCj4+Pj4+PiArew0KPj4+
Pj4+ICsgICAgQVNTRVJUKCFzcGluX2lzX2xvY2tlZCgmZmZhX3NwbWNfcnhfbG9jaykpOw0KPj4+
Pj4gDQo+Pj4+PiBJcyBpdCBpbnZhbGlkIGZvciB0d28gQ1BVcyB0byBjb25jdXJyZW50bHkgdHJ5
IHRvIGFjcXVpcmUgdGhlIFJYIGJ1ZmZlcj8NCj4+Pj4gDQo+Pj4+IE5vIHRoZSBSWCBidWZmZXIg
b3IgdGhlIFRYIGJ1ZmZlciB3aXRoIHRoZSBTUE1DIHNob3VsZCBvbmx5IGJlIHVzZWQgYnkNCj4+
Pj4gb25lIENQVSBhdCBhIHRpbWUgYXMgdGhlcmUgY2Fubm90IGJlIGFueSBjb25jdXJyZW50IG9w
ZXJhdGlvbnMgdXNpbmcgaXQuDQo+Pj4gDQo+Pj4gV2hhdCBpZiB0d28gZ3Vlc3RzIGNhbGwgRkZB
X1BBUlRJVElPTl9JTkZPX0dFVCBjb25jdXJyZW50bHk/IEJvdGggY2FuDQo+Pj4gc3VjY2VlZCBp
biBhY3F1aXJpbmcgdGhlaXIgUlggYnVmZmVyIHNvIHRoZXkgY2FuIGNhbGwNCj4+PiBmZmFfZ2V0
X3NwX3BhcnRpbmZvKCkgY29uY3VycmVudGx5LCBhbmQgdGhlIGFzc2VydCBtaWdodCBiZSB0cmln
Z2VyZWQuDQo+Pj4gV2UgaGF2ZSBhIHNpbWlsYXIgcHJvYmxlbSB3aXRoIEZGQV9SWFRYX01BUF82
NCBhbmQNCj4+PiBmZmFfcnh0eF9zcG1jX3R4X2FjcXVpcmUoKS4gQ29udGVudGlvbiBvbiB0aGUg
c3BpbmxvY2tzIGZvciB0aGUgcnggYW5kDQo+Pj4gdHggYnVmZmVycyBzaG91bGQgYmUgdmFsaWQu
IElmIHdlIGNhbid0IGFsbG93IGEgZ3Vlc3QgdG8gYmxvY2sgaGVyZSwNCj4+PiB3ZSBzaG91bGQg
cmV0dXJuIGFuIGVycm9yIGFuZCBsZXQgdGhlIGd1ZXN0IHJldHJ5Lg0KPj4gDQo+PiBpIGFtIG5v
dCBzdXJlIGkgYW0gZm9sbG93aW5nIGFueW1vcmUuDQo+PiBUaGUgYXNzZXJ0IGlzIGp1c3QgdGhl
cmUgdG8gZW5zdXJlIHRoYXQgdGhlIGxvY2sgaXMgbm90IGFscmVhZHkgdGFrZW4uDQo+IA0KPiBC
dXQgaXQgY291bGQgYWxyZWFkeSBiZSB0YWtlbiBieSBhbm90aGVyIENQVS4NCj4gDQo+PiBUaGUg
ZnVuY3Rpb24gaXMgdGhlbiB0YWtpbmcgdGhlIGxvY2sgYW5kIG5vdCByZWxlYXNpbmcgaXQgdW50
aWwgcmVsZWFzZQ0KPj4gaXMgY2FsbGVkIHdoaWNoIGlzIGVuc3VyaW5nIHRoYXQgb25seSBvbmUg
dmNwdSBhdCBhIHRpbWUgaXMgdXNpbmcgdGhlDQo+PiByeCBidWZmZXIuIERpZCBpIG1pc3Mgc29t
ZXRoaW5nIGhlcmUgPw0KPiANCj4gT25seSBvbmUgQ1BVIGF0IGEgdGltZSBzaG91bGQgdXNlIHRo
ZSBzcG1jIHJ4IGJ1ZmZlciwgYnV0IG90aGVycyBtaWdodA0KPiB0cnkgYW5kIHNob3VsZCBiZSBi
bG9ja2VkIGluIHNwaW5fbG9jaygpIHJhdGhlciB0aGFuIEFTU0VSVC4NCj4gDQo+PiANCj4+IGZv
ciByeHR4IG1hcCB3ZSBkbyBjYWxsIHR4X2FjcXVpcmUgc28gd2UgbG9jayB0aGUgYnVmZmVyLg0K
Pj4gDQo+PiBOb3cgd2UgbWlnaHQgaGF2ZSBhIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gaW4gcnh0
eF9tYXAgYW5kIHVubWFwDQo+PiB3aGVyZSBpIHNob3VsZCB0YWtlIHRoZSByeF9sb2NrIGFuZCB0
aGUgdHhfbG9jayBvZiB0aGUgZ3Vlc3QgdG8gcHJldmVudA0KPj4gY29uY3VycmVudCB1c2FnZSBv
ZiB0aGUgdm0gcnh0eCBidWZmZXIuIEkgd2lsbCBmaXggdGhhdCBvbmUuDQo+IA0KPiBZZXMsIHlv
dSdyZSByaWdodCwgZ29vZCBjYXRjaC4NCj4gDQo+PiANCj4+IFBsZWFzZSB0ZWxsIG1lIGZvciB0
aGUgc3BtYyByeHR4IGJ1ZmZlcnMgYXMgaSBhbSBub3Qgc3VyZSBpIGFtIGZvbGxvd2luZw0KPj4g
d2hhdCB5b3UgbWVhbiB0aGVyZSA6LSkNCj4gDQo+IEVhY2ggZ3Vlc3QgaGFzIGl0cyBvd24gcnh0
eCBidWZmZXIsIHNvIHRoZSBzcGlubG9jayBoZXJlIGlzIGp1c3QgaW4NCj4gY2FzZSB0aGUgZ3Vl
c3QgZGlkbid0IHN5bmNocm9uaXplIGl0cyBDUFVzIGJlZm9yZSBjYWxsaW5nLiBCdXQgdGhlDQo+
IFNQTUMgcnh0eCBidWZmZXJzIGFyZSBmb3IgWGVuLCBzbyBhIGd1ZXN0IGNhbid0IGJlIHN1cmUg
dGhhdCBubyBvdGhlcg0KPiBndWVzdCBpcyBob2xkaW5nIHRoZSBzcGlubG9jay4NCg0KSW4gZmFj
dCBpIGp1c3Qgc2F3IHdoeSB0aGlzIGlzIHdyb25nLiBJIG11c3Qgbm90IHVubG9jayBhdCB0aGUg
ZW5kIG9mIA0Kc3BtY19yeC90eF9hY3F1aXJlIHNvIHRoYXQgb25seSBvbmUgYXQgYSB0aW1lIGlz
IHRha2luZyB0aGUgcnh0eCBidWZmZXJzDQp3aXRoIHRoZSBzcG1jIGFuZCB0aGV5IGJlY29tZSBh
dmFpbGFibGUgb25seSB3aGVuIGN1cnJlbnQgdXNlciBpcyBkb25lLg0KDQo+IA0KPiBUd28gZ3Vl
c3RzIGNhbiBpbmRlcGVuZGVudGx5IGNhbGwgRkZBX1JYVFhfTUFQXzY0IGFuZCB0aGVuIGNhbGwN
Cj4gZmZhX3J4dHhfc3BtY190eF9hY3F1aXJlKCkgbW9yZSBvciBsZXNzIGF0IHRoZSBzYW1lIHRp
bWUuDQo+IA0KPiBJIHlvdSByZW1vdmUgdGhlICJBU1NFUlQoIXNwaW5faXNfbG9ja2VkKC4uLikp
OyIgZnJvbQ0KPiBmZmFfcnh0eF9zcG1jX3R4X2FjcXVpcmUoKSBhbmQgZmZhX3J4dHhfc3BtY19y
eF9hY3F1aXJlKCkgaXQgc2hvdWxkIGJlDQo+IE9LLg0KDQpNeSBjdXJyZW50IGNvbmNsdXNpb24g
d2FzIHRoYXQgaSBuZWVkIHRvIHJlbW92ZSB0aGUgdW5sb2NrIGluIGFjcXVpcmUgc28NCnRoYXQg
aSBzcGluX2xvY2sgaW4gYWNxdWlyZSBhbmQgc3Bpbl91bmxvY2sgaW4gcmVsZWFzZS4NCg0KSW4g
ZmFjdCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIHJ4dHggdm0gYnVmZmVycywgSSB3aWxsIGFkZCB0
eF9hY3F1aXJlIGFuZCB0eF9yZWxlYXNlDQpmdW5jdGlvbnMgZm9yIHRoZSB2bSB0eCBidWZmZXIg
YW5kIGdpdmUgdGhlIGJ1ZmZlciBhZGRyZXNzIGFuZCBzaXplIGFzIHJldHVybiB0bw0KdGhlIGNh
bGxlci4NClRoaXMgd2lsbCBwcmV2ZW50IGFueSBhY2Nlc3MgdG8gdHggb3IgcGFnZV9jb3VudCBv
dXRzaWRlIG9mIGEgbG9ja2VkIHNlY3Rpb24gYW5kDQpyZW1vdmUgcG90ZW50aWFsIHJhY2UgY29u
ZGl0aW9ucy4NCg0KSSB3aWxsIHJld29yayB0aGlzIHBhdGNoIGFuZCB0aGUgbmV4dCBvbmUgdG8g
ZW5kIHVwIHdpdGggYSBjbGVhbmVyIGhhbmRsaW5nIG9mIHZtDQphbmQgc3BtYyByeHR4IGJ1ZmZl
cnMuDQoNCkNoZWVycw0KQmVydHJhbmQNCg0KDQo+IA0KPiBDaGVlcnMsDQo+IEplbnMNCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 12:49:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 12:49:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176721.1501180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQmIn-0005MX-58; Wed, 03 Dec 2025 12:49:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176721.1501180; Wed, 03 Dec 2025 12:49:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQmIn-0005MQ-1h; Wed, 03 Dec 2025 12:49:49 +0000
Received: by outflank-mailman (input) for mailman id 1176721;
 Wed, 03 Dec 2025 12:49:47 +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
 <SRS0=Qm2A=6J=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vQmIl-0005MK-4z
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 12:49:47 +0000
Received: from mail-ot1-x32d.google.com (mail-ot1-x32d.google.com
 [2607:f8b0:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8ad241ab-d046-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 13:49:45 +0100 (CET)
Received: by mail-ot1-x32d.google.com with SMTP id
 46e09a7af769-7c77ed036c3so558251a34.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 04:49:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8ad241ab-d046-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764766184; x=1765370984; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wF0bfxopm4snbSo6SQU0d0WHzw8H5rUDxqdwkGIDAd8=;
        b=MRO3tDwVTRQlk1gRQsP+o94gCIlcjzb7xt7+GJaLnetCCnafTfW86ztqSutYEv1aPZ
         FfvY7MUbgoWW5cKgw8JbhWxG1nsLKQ0NMoTpQyYd8umBXDKw3liwYwqG7Xed6OiWtZQ3
         OGo8n+l+fzdJ2mqAeODuStva6g7aVozZto0Z7+Y0IMpM28pCMOJQITfQT1o8ASLdb8Lg
         G5z0c+zBl9fK7UT/bhKnax1o9EfT7yRPldN9r4EKi7jni8yH2SFRWoOp3YNMp0yAmeIh
         KpjXqX5kCPaXzEV2PAuXlG0bcSstE9iOJ+Z/HHa/9zqfQWPAJCC6m8VxLSgEQyeHeqF/
         msdw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764766184; x=1765370984;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=wF0bfxopm4snbSo6SQU0d0WHzw8H5rUDxqdwkGIDAd8=;
        b=VVKVbtlM8HcMe6y6TYaf/GOWInHdZDgExOqy1ZUvm7QNY3JAU7GfalXMAAafvVkuJ7
         fEZPq4wAufuTFa+hWTCvSIRiSBFZaLz7YrVdlYPN1IndKuwTccpqaeP1fZBZhS9f5Um2
         6IGhTfS67+4b6vewmiJML5vL5mwVwAzBBu4O+PfgexaBmLQFyXdrRruJPZVaMCnvTW8E
         ADB+42XiLBB3ppBNt042oRKVaoADiq6XoCySDOWniVKuyL6kM/TKF5IBHhTJFWUeGxzS
         4tOOs34s7tqifhjIDwBYfwS+LHx1Y0vKFguK85eOcKtXRA8+fswjGcEmIW/lItEttPXq
         1Prw==
X-Gm-Message-State: AOJu0YzMVai/L33MivhlRrh5ZBQ9Wmm8YW0yPxeQBxLWnnTLzceOAD+t
	0BG3K5XzoMEKxGYQe9nPVZjIX7aaJ6+fsGfizT2FOJl3hv2l47AMwZ8Mgq6nhXuyW8+E7yv/eQC
	2HXY3DQ3riK1V6Q3AAVk+ilyUgxbtsbQThpbfdI7HPA==
X-Gm-Gg: ASbGncukTnfUJILS/bfKTwxQ6X8XXio5T03WJK1qd8DOsaJlh28uWnofrG3D6ehBW3S
	Yyv2duOeIv521TwHnC7aXSOS1N7akJvSeaUSO623EjDZIieY/QMvKKF7CLkeRhH2piApExrYUb4
	CqOe8M8F7TaOBg0FjFdxmYDv7i4U/lCI9rfHh00QTT8Z298DYsrSHIXXSUl6QvOJnF8nwzG5rbS
	lHJx9nz2MRcnOcNeFJGgbMlSrPKZqiZ2wDJtBnE7nbX6kqf7I0ly5KqEHZVKv56F703OTkwJ6es
	O1qjMMZb6vCyz1odlI1rqMZgiw==
X-Google-Smtp-Source: AGHT+IEmx5E0qmi2WfCJXnpTEpTk+Fo5zzBDOq2OyfP93GTxBf9EwA0LYFSRXigQx1VaN6s8VsgUQ6aB5z8DIaDuUMc=
X-Received: by 2002:a05:6808:4a47:10b0:44d:be91:afe9 with SMTP id
 5614622812f47-4535d3f3a10mr2793901b6e.27.1764766183568; Wed, 03 Dec 2025
 04:49:43 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764254975.git.bertrand.marquis@arm.com> <c8fe1053ae135387da8f75f96054f3a6eae3b00b.1764254975.git.bertrand.marquis@arm.com>
In-Reply-To: <c8fe1053ae135387da8f75f96054f3a6eae3b00b.1764254975.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 3 Dec 2025 13:49:32 +0100
X-Gm-Features: AWmQ_bmvL4y_Hrag0J3dVjocdlgpDuSsnv7TxmtgImHnfnOiBtK-IXPQ05lvxRQ
Message-ID: <CAHUa44E=+yX5uW_7mkZk_n13GDwP42HGoba2AZesuFEjU8BFkg@mail.gmail.com>
Subject: Re: [PATCH 06/10] xen/arm: ffa: add UUID helpers for partition info
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Thu, Nov 27, 2025 at 4:52=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Introduce struct ffa_uuid together with nil/equality/set helpers, and
> use it end-to-end in the partition-info plumbing.
>
> The SP and VM enumeration paths now build UUIDs from the guest
> registers, call a new ffa_copy_info() helper and ensure non-nil UUID
> queries only return matching SP entries, relying on firmware UUID
> filtering. VM entries are skipped because we do not track per-VM UUIDs.
>
> Count requests and subscriber initialisation are updated accordingly so
> firmware is always called with an explicit UUID. This keeps count and
> listing requests aligned with the FF-A v1.1 rules while preserving the
> Linux compatibility workaround for v1.2 requesters.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa_partinfo.c | 206 ++++++++++++++++++++------------
>  xen/arch/arm/tee/ffa_private.h  |  21 ++++
>  2 files changed, 152 insertions(+), 75 deletions(-)
>
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index 3f4a779f4146..4adbe2736c94 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -33,7 +33,7 @@ static uint16_t subscr_vm_created_count __read_mostly;
>  static uint16_t *subscr_vm_destroyed __read_mostly;
>  static uint16_t subscr_vm_destroyed_count __read_mostly;
>
> -static int32_t ffa_partition_info_get(uint32_t *uuid, uint32_t flags,
> +static int32_t ffa_partition_info_get(struct ffa_uuid uuid, uint32_t fla=
gs,
>                                        uint32_t *count, uint32_t *fpi_siz=
e)
>  {
>      struct arm_smccc_1_2_regs arg =3D {
> @@ -41,15 +41,12 @@ static int32_t ffa_partition_info_get(uint32_t *uuid,=
 uint32_t flags,
>          .a5 =3D flags,
>      };
>      struct arm_smccc_1_2_regs resp;
> -    uint32_t ret;
> +    int32_t ret;
>
> -    if ( uuid )
> -    {
> -        arg.a1 =3D uuid[0];
> -        arg.a2 =3D uuid[1];
> -        arg.a3 =3D uuid[2];
> -        arg.a4 =3D uuid[3];
> -    }
> +    arg.a1 =3D uuid.val[0] & 0xFFFFFFFFU;
> +    arg.a2 =3D (uuid.val[0] >> 32) & 0xFFFFFFFFU;
> +    arg.a3 =3D uuid.val[1] & 0xFFFFFFFFU;
> +    arg.a4 =3D (uuid.val[1] >> 32) & 0xFFFFFFFFU;

You were switching to GENMASK in the previous patches, so we should
probably use that here too.

With that fixed:
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
>      arm_smccc_1_2_smc(&arg, &resp);
>
> @@ -63,7 +60,26 @@ static int32_t ffa_partition_info_get(uint32_t *uuid, =
uint32_t flags,
>      return ret;
>  }
>
> -static int32_t ffa_get_sp_count(uint32_t *uuid, uint32_t *sp_count)
> +static int32_t ffa_copy_info(void **dst, void *dst_end, const void *src,
> +                             uint32_t dst_size, uint32_t src_size)
> +{
> +    uint8_t *pos =3D *dst;
> +    uint8_t *end =3D dst_end;
> +
> +    if ( pos > end - dst_size )
> +        return FFA_RET_NO_MEMORY;
> +
> +    memcpy(pos, src, MIN(dst_size, src_size));
> +
> +    if ( dst_size > src_size )
> +        memset(pos + src_size, 0, dst_size - src_size);
> +
> +    *dst =3D pos + dst_size;
> +
> +    return FFA_RET_OK;
> +}
> +
> +static int32_t ffa_get_sp_count(struct ffa_uuid uuid, uint32_t *sp_count=
)
>  {
>      uint32_t src_size;
>
> @@ -71,8 +87,8 @@ static int32_t ffa_get_sp_count(uint32_t *uuid, uint32_=
t *sp_count)
>                                    sp_count, &src_size);
>  }
>
> -static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
> -                                   void *dst_buf, void *end_buf,
> +static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_co=
unt,
> +                                   void **dst_buf, void *end_buf,
>                                     uint32_t dst_size)
>  {
>      int32_t ret;
> @@ -120,17 +136,18 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, =
uint32_t *sp_count,
>          /* filter out SP not following bit 15 convention if any */
>          if ( FFA_ID_IS_SECURE(fpi->id) )
>          {
> -            if ( dst_buf > (end_buf - dst_size) )
> -            {
> -                ret =3D FFA_RET_NO_MEMORY;
> -                goto out;
> -            }
> +            /*
> +             * If VM is 1.0 but firmware is 1.1 we could have several en=
tries
> +             * with the same ID but different UUIDs. In this case the VM=
 will
> +             * get a list with several time the same ID.
> +             * This is a non-compliance to the specification but 1.0 VMs=
 should
> +             * handle that on their own to simplify Xen implementation.
> +             */
>
> -            memcpy(dst_buf, src_buf, MIN(src_size, dst_size));
> -            if ( dst_size > src_size )
> -                memset(dst_buf + src_size, 0, dst_size - src_size);
> +            ret =3D ffa_copy_info(dst_buf, end_buf, src_buf, dst_size, s=
rc_size);
> +            if ( ret )
> +                goto out;
>
> -            dst_buf +=3D dst_size;
>              count++;
>          }
>
> @@ -144,69 +161,89 @@ out:
>      return ret;
>  }
>
> -static int32_t ffa_get_vm_partinfo(uint32_t *vm_count, void *dst_buf,
> -                                   void *end_buf, uint32_t dst_size)
> +static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t *vm_co=
unt,
> +                                   void **dst_buf, void *end_buf,
> +                                   uint32_t dst_size)
>  {
>      struct ffa_ctx *curr_ctx =3D current->domain->arch.tee;
>      struct ffa_ctx *dest_ctx;
>      uint32_t count =3D 0;
>      int32_t ret =3D FFA_RET_OK;
> +    /*
> +     * We do not have UUID info for VMs so use the 1.0 structure so that=
 we set
> +     * UUIDs to zero using memset
> +     */
> +    struct ffa_partition_info_1_0 info;
>
>      /*
> -     * There could potentially be a lot of VMs in the system and we coul=
d
> -     * hold the CPU for long here.
> -     * Right now there is no solution in FF-A specification to split
> -     * the work in this case.
> -     * TODO: Check how we could delay the work or have preemption checks=
.
> +     * We do not have protocol UUIDs for VMs so if a request has non Nil=
 UUID
> +     * we must return an empty list.
>       */
> -    read_lock(&ffa_ctx_list_rwlock);
> -    list_for_each_entry(dest_ctx, &ffa_ctx_head, ctx_list)
> +    if ( !ffa_uuid_is_nil(uuid) )
> +    {
> +        *vm_count =3D 0;
> +        return FFA_RET_OK;
> +    }
> +
> +    /*
> +     * Workaround for Linux FF-A Driver not accepting to have its own
> +     * entry in the list before FF-A v1.2 was supported.
> +     * This workaround is generally acceptable for other implementations
> +     * as the specification was not completely clear on wether or not
> +     * the requester endpoint information should be included or not
> +     */
> +    if ( curr_ctx->guest_vers >=3D FFA_VERSION_1_2 )
> +    {
> +        /* Add caller VM information */
> +        info.id =3D curr_ctx->ffa_id;
> +        info.execution_context =3D curr_ctx->num_vcpus;
> +        info.partition_properties =3D FFA_PART_VM_PROP;
> +        if ( curr_ctx->is_64bit )
> +            info.partition_properties |=3D FFA_PART_PROP_AARCH64_STATE;
> +
> +        ret =3D ffa_copy_info(dst_buf, end_buf, &info, dst_size, sizeof(=
info));
> +        if ( ret )
> +            return ret;
> +
> +        count++;
> +    }
> +
> +    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
>      {
>          /*
> -         * Do not include an entry for the caller VM as the spec is not
> -         * clearly mandating it and it is not supported by Linux.
> +         * There could potentially be a lot of VMs in the system and we =
could
> +         * hold the CPU for long here.
> +         * Right now there is no solution in FF-A specification to split
> +         * the work in this case.
> +         * TODO: Check how we could delay the work or have preemption ch=
ecks.
>           */
> -        if ( dest_ctx !=3D curr_ctx )
> +        read_lock(&ffa_ctx_list_rwlock);
> +        list_for_each_entry(dest_ctx, &ffa_ctx_head, ctx_list)
>          {
> -            /*
> -             * We do not have UUID info for VMs so use
> -             * the 1.0 structure so that we set UUIDs to
> -             * zero using memset
> -             */
> -            struct ffa_partition_info_1_0 info;
> -
> -            if  ( dst_buf > (end_buf - dst_size) )
> -            {
> -                ret =3D FFA_RET_NO_MEMORY;
> -                goto out;
> -            }
> +            /* Ignore the caller entry as it was already added */
> +            if ( dest_ctx =3D=3D curr_ctx )
> +                continue;
>
> -            /*
> -             * Context might has been removed since we go it or being re=
moved
> -             * right now so we might return information for a VM not exi=
sting
> -             * anymore. This is acceptable as we return a view of the sy=
stem
> -             * which could change at any time.
> -             */
>              info.id =3D dest_ctx->ffa_id;
>              info.execution_context =3D dest_ctx->num_vcpus;
>              info.partition_properties =3D FFA_PART_VM_PROP;
>              if ( dest_ctx->is_64bit )
>                  info.partition_properties |=3D FFA_PART_PROP_AARCH64_STA=
TE;
>
> -            memcpy(dst_buf, &info, MIN(sizeof(info), dst_size));
> -
> -            if ( dst_size > sizeof(info) )
> -                memset(dst_buf + sizeof(info), 0,
> -                       dst_size - sizeof(info));
> +            ret =3D ffa_copy_info(dst_buf, end_buf, &info, dst_size,
> +                                sizeof(info));
> +            if ( ret )
> +            {
> +                read_unlock(&ffa_ctx_list_rwlock);
> +                return ret;
> +            }
>
> -            dst_buf +=3D dst_size;
>              count++;
>          }
> +        read_unlock(&ffa_ctx_list_rwlock);
>      }
> -    *vm_count =3D count;
>
> -out:
> -    read_unlock(&ffa_ctx_list_rwlock);
> +    *vm_count =3D count;
>
>      return ret;
>  }
> @@ -217,16 +254,17 @@ void ffa_handle_partition_info_get(struct cpu_user_=
regs *regs)
>      struct domain *d =3D current->domain;
>      struct ffa_ctx *ctx =3D d->arch.tee;
>      uint32_t flags =3D get_user_reg(regs, 5);
> -    uint32_t uuid[4] =3D {
> -        get_user_reg(regs, 1),
> -        get_user_reg(regs, 2),
> -        get_user_reg(regs, 3),
> -        get_user_reg(regs, 4),
> -    };
> +    struct ffa_uuid uuid;
>      uint32_t dst_size =3D 0;
>      void *dst_buf, *end_buf;
>      uint32_t ffa_vm_count =3D 0, ffa_sp_count =3D 0;
>
> +    ffa_uuid_set(&uuid,
> +             get_user_reg(regs, 1),
> +             get_user_reg(regs, 2),
> +             get_user_reg(regs, 3),
> +             get_user_reg(regs, 4));
> +
>      /*
>       * If the guest is v1.0, he does not get back the entry size so we m=
ust
>       * use the v1.0 structure size in the destination buffer.
> @@ -259,10 +297,23 @@ void ffa_handle_partition_info_get(struct cpu_user_=
regs *regs)
>          }
>
>          /*
> -         * Do not count the caller VM as the spec is not clearly mandati=
ng it
> -         * and it is not supported by Linux.
> +         * We do not have protocol UUIDs for VMs so if a request has non=
 Nil
> +         * UUID we must return a vm_count of 0
>           */
> -        ffa_vm_count =3D get_ffa_vm_count() - 1;
> +        if ( ffa_uuid_is_nil(uuid) )
> +        {
> +            ffa_vm_count =3D get_ffa_vm_count();
> +
> +            /*
> +             * Workaround for Linux FF-A Driver not accepting to have it=
s own
> +             * entry in the list before FF-A v1.2 was supported.
> +             * This workaround is generally acceptable for other impleme=
ntations
> +             * as the specification was not completely clear on wether o=
r not
> +             * the requester endpoint information should be included or =
not
> +             */
> +            if ( ctx->guest_vers < FFA_VERSION_1_2 )
> +                ffa_vm_count -=3D 1;
> +        }
>
>          goto out;
>      }
> @@ -290,17 +341,15 @@ void ffa_handle_partition_info_get(struct cpu_user_=
regs *regs)
>
>      if ( ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
>      {
> -        ret =3D ffa_get_sp_partinfo(uuid, &ffa_sp_count, dst_buf, end_bu=
f,
> +        ret =3D ffa_get_sp_partinfo(uuid, &ffa_sp_count, &dst_buf, end_b=
uf,
>                                    dst_size);
>
>          if ( ret )
>              goto out_rx_release;
> -
> -        dst_buf +=3D ffa_sp_count * dst_size;
>      }
>
> -    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> -        ret =3D ffa_get_vm_partinfo(&ffa_vm_count, dst_buf, end_buf, dst=
_size);
> +    ret =3D ffa_get_vm_partinfo(uuid, &ffa_vm_count, &dst_buf, end_buf,
> +                              dst_size);
>
>  out_rx_release:
>      if ( ret )
> @@ -309,7 +358,13 @@ out:
>      if ( ret )
>          ffa_set_regs_error(regs, ret);
>      else
> +    {
> +        /* Size should be 0 on count request and was not supported in 1.=
0 */
> +        if ( flags || ctx->guest_vers =3D=3D FFA_VERSION_1_0 )
> +            dst_size =3D 0;
> +
>          ffa_set_regs_success(regs, ffa_sp_count + ffa_vm_count, dst_size=
);
> +    }
>  }
>
>  static int32_t ffa_direct_req_send_vm(uint16_t sp_id, uint16_t vm_id,
> @@ -450,6 +505,7 @@ bool ffa_partinfo_init(void)
>      uint32_t count;
>      int32_t e;
>      void *spmc_rx;
> +    struct ffa_uuid nil_uuid =3D { .val =3D { 0ULL, 0ULL } };
>
>      if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) ||
>           !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32))
> @@ -459,7 +515,7 @@ bool ffa_partinfo_init(void)
>      if (!spmc_rx)
>          return false;
>
> -    e =3D ffa_partition_info_get(NULL, 0, &count, &fpi_size);
> +    e =3D ffa_partition_info_get(nil_uuid, 0, &count, &fpi_size);
>      if ( e )
>      {
>          printk(XENLOG_ERR "ffa: Failed to get list of SPs: %d\n", e);
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index 9cae238f972c..c1dac09c75ca 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -306,6 +306,10 @@ struct ffa_mem_region {
>      struct ffa_address_range address_range_array[];
>  };
>
> +struct ffa_uuid {
> +    uint64_t val[2];
> +};
> +
>  struct ffa_ctx_notif {
>      /*
>       * True if domain is reported by FFA_NOTIFICATION_INFO_GET to have
> @@ -567,4 +571,21 @@ static inline bool ffa_fw_supports_fid(uint32_t fid)
>      return test_bit(FFA_ABI_BITNUM(fid), ffa_fw_abi_supported);
>  }
>
> +static inline bool ffa_uuid_is_nil(struct ffa_uuid id)
> +{
> +    return id.val[0] =3D=3D 0 && id.val[1] =3D=3D 0;
> +}
> +
> +static inline bool ffa_uuid_equal(struct ffa_uuid id1, struct ffa_uuid i=
d2)
> +{
> +    return id1.val[0] =3D=3D id2.val[0] && id1.val[1] =3D=3D id2.val[1];
> +}
> +
> +static inline void ffa_uuid_set(struct ffa_uuid *id, uint32_t val0,
> +                                uint32_t val1, uint32_t val2, uint32_t v=
al3)
> +{
> +    id->val[0] =3D ((uint64_t)val1 << 32U) | val0;
> +    id->val[1] =3D ((uint64_t)val3 << 32U) | val2;
> +}
> +
>  #endif /*__FFA_PRIVATE_H__*/
> --
> 2.51.2
>


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 13:13:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 13:13:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176748.1501223 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQmfF-0001Fn-Gn; Wed, 03 Dec 2025 13:13:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176748.1501223; Wed, 03 Dec 2025 13:13:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQmfF-0001Fg-Bm; Wed, 03 Dec 2025 13:13:01 +0000
Received: by outflank-mailman (input) for mailman id 1176748;
 Wed, 03 Dec 2025 13:12:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Wh3s=6J=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vQmfD-0001FT-Ma
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 13:12:59 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c858db66-d049-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 14:12:57 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA0PR03MB5513.namprd03.prod.outlook.com (2603:10b6:806:b8::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Wed, 3 Dec
 2025 13:12:42 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.003; Wed, 3 Dec 2025
 13:12:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c858db66-d049-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YcCbsyvQ66zMfgPVFal1g6PVmbxjUv27POWYGHfraFHjgEz+0lkZt26X6EwzBIARSROAW9V+TZle3ZtZxjgu3c0c8qO3GxJ7PIGBMJQcu7sbYGdhEPVMN0EV5b83zQf2A/GLek1tFfdqBYTN98K26FQWgMk06H7Qt3qpPR9EicriJlSHpQM3i/s2qxTBQzXmSDD3LFxe9oCMhB6gmw07UI9bIkl6A9kMACccNcmOpNZ5xhib0/DlgagIVnLszaRXL1DTaKWTkbegAohYqiwUsUCSFFD75T8P9PFVfVWZTV/+0W7MbajBw5nP54UkwCBYSwzTCN781P6p3EWG35eA6A==
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=R+pFcYOx6jvLy3jNC+FBASZLCEy2PfMCZvEsw1QfR+8=;
 b=OB4Mhz1JhtjoYNkn25YTUEAJTZmTntt8SkbJmVj20FU7X/PJhvMRvAm9i65cdrtDrVQ4sgaWfOawoDXCCynQJd/RNqb1f0U4Uq+oHYxOz2xSS8n9GThqPgDtZGjLaRi7WqlcNylWxHISCcmQwNcOxwHrf7YJ6MRRlWFSF2PhERMUW+aZRRzARWRaEwLpbLvjZ7LeYo5o/ZwJ33lwSJBNe8kI7556uMu9KGBH86mD+z+PYBuYmD4lxBm1MexUnVRjiU9+7ZTMIapBPjd5jsfbgw3fg5dgFxaCXaIEw/AwIdme3SkAEmL6RSfe/x6Mbll3ykWnRDWbsuaySgBZjPvyiQ==
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=R+pFcYOx6jvLy3jNC+FBASZLCEy2PfMCZvEsw1QfR+8=;
 b=peiruNq4GvFDM9HFTUQVB/c5FzwiiedLzEJXL5lok6S7ELL2FDhHujI5eF0Il/F86wIJke4kWfyYw4PMfCp9Bna/faPihH1v543e7etlvS8wKabx/CRutFk4/ZHhl6y6VDxBKy7evXQkUOEpTUhodRq76oYqUqaf/QxL/l9RwBM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b71fad57-ca46-40f4-a210-5f95b441f01d@citrix.com>
Date: Wed, 3 Dec 2025 13:12:38 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [XEN][PATCH] common/libfdt: optimize usage
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251114180130.346755-1-grygorii_strashko@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251114180130.346755-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0677.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:351::20) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA0PR03MB5513:EE_
X-MS-Office365-Filtering-Correlation-Id: 4058e1f4-13a5-47bb-2c44-08de326da463
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dzREYXdmZ0tTZmw0UlhCUDZjZXVrRnNmU3o5bE43bWV1ZjNlck94dHI1STRZ?=
 =?utf-8?B?aUZOSWQza3lzclh6RHFsdmlNVldKcWtzWnF0NkdQMjBHNEllQVdpNzkvSTVm?=
 =?utf-8?B?WTdtQ1h0d05CYnVITHBLV1N0OFlrTDJ6M000WjFwTjZWZDFqTmYvRzFCbDNY?=
 =?utf-8?B?UHhncVFuSXVDMkYvSTFmWm5PaTl0Yzl1ckhacjU3cjNZM01xR21UaU8vMEVB?=
 =?utf-8?B?dis2WkE1cmIzWVFMRGlEMDl6ekxSU0RXVEJET1pMMVRuSDFLNVE4VUswMlVs?=
 =?utf-8?B?UUNNWVdiN2VrYTA4aExIS2hkYWkzZC9vMkIxV00yaWJ4NTVPeWZkRjQ3ZFdB?=
 =?utf-8?B?QjJYdWJFN3p4bURlOXNPcVpDb0tXU1g0OXE5WGZ2MlhYb1QySm9oTmQ3NWlx?=
 =?utf-8?B?UldMUjN1SUVTcWVvcmVQQUMvVk1mMkNTMzUvMzJWRDNYSEdBZUJzTThhUW1q?=
 =?utf-8?B?bHdrMENucVFVQ1ZrQkpoWm9BYXZ6K0dIQkdBWjN4dmVMaFRyYTYxK2VlZ25Z?=
 =?utf-8?B?eGVTczJmSjB4Wk9Hb3RwY01WcmMrT0VaMlhHbHZNZXRHeVp1L1k0a2FuUVAx?=
 =?utf-8?B?Z0w3WTRsWmRmYzV3WGdPRlo0a0FFSkR6VHNUbFhTTFJmaXg4NU5PRlUvZWxo?=
 =?utf-8?B?MTd0MCs4a2luUUhXZ2dSSEh5Q1ZxMG93dEZxNjJ3ZTcrLyt5U29FSlViai84?=
 =?utf-8?B?SVk5cXBueUJmb0lYQXFVK1FMZVBhTGd3OHExU0FKY3NBMmttYWNIOTBOUzV5?=
 =?utf-8?B?WnJxcElNcDVodVpvQUxWRzAraXQyMGxwbmhMUU40OEZpalhEVEVHeEFKOThT?=
 =?utf-8?B?a2ltcU1HL0hjazJxZUxSTUQ4RmNCeFpJZTJ0MGZCbjlYcmtIa0doTExrVlRR?=
 =?utf-8?B?RDhWNGVCS3p1c1ZxbzRSWDBKUXZLVGlWSy9JZE85TkdXdTV6akczczRlN0hX?=
 =?utf-8?B?TFVOMVJvNGtYY1BSajc0dHFiYTBIcG04RXhlU1pZL1FMU3RBdkN4cUlGU3lE?=
 =?utf-8?B?OWlvY2JCZ2RGTGpVRStVbjY1ZWw2Q09JU21XaUw4aXJVZndXMmdKOTVIWmp5?=
 =?utf-8?B?aStBaW15VmJLZ0xOc3BIVFZ1NUJzTHc1akJWSXlwWE9IZXpYemRUdUl4MXd0?=
 =?utf-8?B?dWl0ZnF1NnI3dUgwcmw5blF6RUxrQTFobjJWeXlPdlBSdm14TmJ2WGtCeHNq?=
 =?utf-8?B?OUpHOE01aEMyRnl2R2dQanhoUnRqakIzaytnMFhEd092b3pLNExQYnVLd1Zo?=
 =?utf-8?B?UDNua3FlOVhnZjYzVFE0UEJRWGJLZ0JIZE9JQnVzQzdJcS83Qjhoem1IR0kx?=
 =?utf-8?B?Z1cyTlJGRHE1RHlQSVdRSDRScmZyc0NOdllBQVZQRkgyMWY1K08rUUM4Qlh4?=
 =?utf-8?B?eHppazFxZEpyWDExZFJoSitwdW1DUE8xV2RGMXB6Yk1FSEd2dzRKV0FxMzNH?=
 =?utf-8?B?UEV4SzBOa21NODJXMFVxamJHVFlQSkxiNGU2eWRycVNPOWw3SmNBVkZGOE41?=
 =?utf-8?B?TW9WemNtdHJvL0pHNTZxSG9ERTVrZmlReTFMNTJZTWhXeUFHYzROdnV4MFI5?=
 =?utf-8?B?NFB3NFBGNE9CTm51N3FLRjRBVURHQlBMeU0rTEY2YzFWNmozZGp2MlVPQ3JF?=
 =?utf-8?B?UlJQNTBOM0ppLzJ0TGVBLzBKM2FFbjB0eGlNSkZlS0JKWllEN2dsZTkzSEZx?=
 =?utf-8?B?M21GWWtjemFWb0hEaDVpanVIT2xhT1RhVGtYTlQwbGN6NWhtV241SHJLRXFT?=
 =?utf-8?B?bUNWdFVOZStGYmdDamRiSEVOb2MzU29BMjR1Zy9ZMThEb213SHI3NkFraitI?=
 =?utf-8?B?eHVybGNJMjh4VFZMcUh6WG9tcEl3VFA3YXVOdjBXR1IzWWloVkN3NHR6WkRY?=
 =?utf-8?B?QXlDdGhqSTBVNEtrQmVHYWNZK2N1RVhERGRPb3BsbVdSdW10dmwvOXhmVlQx?=
 =?utf-8?Q?aj28OEvsNwnCCliAFbmnaQ1plH5sN0Cr?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MjdmbjJtL0JqVVFMTmRyUy93M1l0K2NyTmVTYVF3aEFMekMzMlpyTjNhbTM4?=
 =?utf-8?B?VmxvNGhkNU9pWGF1eXJPd1l0Z2ZRMmdMS0c2UjBubG02LzVLT1hXL1R4YXo3?=
 =?utf-8?B?ZVFoMjVLdlliMVBZV0liQVJmaVYwalMyRmhjYjFVWThlalpCeXprUDcvMDdX?=
 =?utf-8?B?YzlXYVBxcGU3NnNicE1NaHlpcW0rWVdtak52bjI5RjRsK0MzTVlqNjdxTWpC?=
 =?utf-8?B?KzZhMTdYVUwrRmttT3lMbkh1UFRQbkdsTjdVZlJuc1NwR3h6SEhYZ21ONVV2?=
 =?utf-8?B?Q05nNWhRZmtESlVXNHViTlFmM1hRU0tadnFWNlZBRHBzUEk4MFRZYmZaRDIy?=
 =?utf-8?B?UmpyRS9Hd1lhVWtoY01xdGQwZzFON1J4UFJFclh3dDBwcEZRSVFFMUk4bWZ0?=
 =?utf-8?B?Y08wVzZob001bVVTTFZrQU1LZzg2SUhMV01TUUViZTY1WXl5aUtpNzZoQVlK?=
 =?utf-8?B?NUNhcVVMOFcxTEJkaXNJVkFOWU1nekg3S041a0dyWm1peFpTODRzWk1FWXFG?=
 =?utf-8?B?RmxzYURTd2ZHZm9xenZpdUVpeEsrdDg2YkJ3bG0zY1pjVFE4d3BlNkNmK0pQ?=
 =?utf-8?B?SWxnR2h6bk1OQkQ1b2lTelRIWUU0WU1ybitlTHA4d054c1ptc2IyaUQwQUJE?=
 =?utf-8?B?ZGZqbkFzcEs0UDFEcEdIdU9lVzNvQThncHJXQmh0REhMa1hMYnBsbDhTSEJP?=
 =?utf-8?B?dTNnMmVzYzRiUWxYUUxTMWkwRWxNNXZJNnNYRUpjN1oxcDNObWpqSXAwbTJE?=
 =?utf-8?B?ZG1RbkdNUGNsRVo5Y2F3Qzg5KzBkUW50WkVaN2IvNnpLYmRxRGtGMWVJSzJV?=
 =?utf-8?B?TWhZT1A1OHFQcm5uYXNFWDhhMDFBZXdudzBNeEhyN0FDNW5BeEFnYnViMGZo?=
 =?utf-8?B?cEtuZkptbUJxYmJTT05CaDJ3Q3VxcTFwTVpMYTdGbWk5M0ViSlQ2UEJySGlh?=
 =?utf-8?B?RDg5ZjBqcXJKWDRVdXZHczB0djI1R1NjY29EWHlXMnhSSkFWd2VBS1NDdU90?=
 =?utf-8?B?VkdTNkpOWmhBamxLbU4xb0tEeS9DVmpBQ3dQbXVOaUJLRXZiMHVSemdnVGRr?=
 =?utf-8?B?QXk4Slk3bVBqcGp5bXd4amZFUTdSaUtXdjRwc3o2bXJHRjdRelN3Mmd1TDY3?=
 =?utf-8?B?QUsxem5qQXpsUyszRHhsbDZtVkJrazlpbDM0ditsOWh1QkxvN01ZejBORm1X?=
 =?utf-8?B?WHJKbUJ3aFl6aDdDOEc0aksvRTlIa1hIbkt6STAydEpaS1N1WEZ5czJzY3l1?=
 =?utf-8?B?SG16K1gvWGpEeHNQNlRTYmxVczljSG9mVXJXdkl0ZWtiRHk1R0E1dHo3MDk3?=
 =?utf-8?B?RDN0V0NvUlNDcGc2VFpxc1hSaTZvR3ZGN2dRUHg3WEY0by9DZlBHc0hkK2Jy?=
 =?utf-8?B?WC9QNUlVTW1MU2VxQ2Q3TUlLdVpVcEFLVGUyUXAwUlhSTjFVdTM2YkoydHdh?=
 =?utf-8?B?bGQ1OG9DQ2tlRG5CdGhab3Y5OG5XMWhhenlNZzdGdGJLc3l5VGw2bDJhTnls?=
 =?utf-8?B?Q0dvVFVzN1Z6eWhOOWgwZ2dyd2NXazlmaW5KRjJtZndxR2xQTFVVREM0Q3d0?=
 =?utf-8?B?akZ4WG00aGRqSFFiY0k3S2c2dmZZTmtzcGZ4UnE4cERscGlpV1BxTStpRDlE?=
 =?utf-8?B?NHY3TVNjVlFnNnFzTmVta2J1dkluSHppWSs2MnZMNmRQaEFDVWJGRndkY1NS?=
 =?utf-8?B?KytTWmUxNWdxQmhOYy83UVlIN2svaFh3WSsxc2V0ci9GOXdzRlovaURtaEd2?=
 =?utf-8?B?RWhLSHdJNXBCTDNNb0pTTDN6UDUxZ3NHS2R4UWxRemU5RFRiRzk2SC95Y0VR?=
 =?utf-8?B?dHNrTTh6ZHBoTnBFQnhsaDdhTCtueHg0c2xMZm5PcW1rSUo5OUF3SHhhRUlL?=
 =?utf-8?B?YjBoTUd4cWxCRE1JM3lSTEtKd1NXTFROY3VXTXN1OXFaTmNvc1VCcDNZQ2kz?=
 =?utf-8?B?alRTTUpTRUdQSXpGUTM1Qk54R3Q2aDEwL3hyMldjcmUyU0tRblBXcWtsbVdn?=
 =?utf-8?B?Q3hFTVBQeXp2bVRVY2dIem9LS3BwaXRHdE4wTWZwWkFDSDViNVJjN3g3djRJ?=
 =?utf-8?B?eVVjTGFrNGtYck1MdDJCaHpkQnBvRU5IOVlSaTVLVjZleWM5QU92eE9nKzV6?=
 =?utf-8?B?anhmZVlBVVNaWmNvaXdiN1ljRlhtem9ZUW9mMENQaU1wYUROODRERytpbXNJ?=
 =?utf-8?B?Z1E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4058e1f4-13a5-47bb-2c44-08de326da463
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2025 13:12:42.4786
 (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: DOpgQ6bn39tSFkHlyq/CQpERh8htyM4B3NwK1iAV5Qa5qGrr2F5gOQqlxAMkECpWh69osgezcK7YEQlY7xKVSpCae2AZMsQLbrtP6qUn3Wg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR03MB5513

On 14/11/2025 6:01 pm, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
>
> Now all libfdt features are built-it unconditionally, but...
>
> X86: The libfdt is used on x86 only to parse Hyperlaunch/dom0less Xen
> nodes, so full libfdt is not needed in this case and minimal, RO
> configuration can be used.
>
> ARM - situation is more complicated:
> 1) ARM reads Host DT (fdt.c RO)
> 2) ARM reads passthrough DT (RO)
> 3) ARM generates dom0/hwdom DT from Host DT (there is a mix of WIP and SW APIs)
> 4) ARM generates domU DT (there is a mix of WIP and SW APIs)
> 4) With EFI enabled - ARM needs RW API and fdt_empty_tree
> 5) With CONFIG_OVERLAY_DTB - ARM needs RW and fdt_overlay API
>
> Hence, add possibility for optimizing libfdt usage by introducing separate
> Kconfig options for each libfdt feature and select them where needed.
>
> Following libfdt modules are not used after this change:
>  Makefile.libfdt
>  fdt_addresses.c
>  fdt_strerror.c
>  fdt_check.c
>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
> Not sure about using DOMAIN_BUILD_HELPERS for selecting 
> LIBFDT features, as DOMAIN_BUILD_HELPERS doesn't exactly
> says that domain's DT will be generated when selected.
>
>  xen/arch/arm/Kconfig       |  4 ++++
>  xen/common/Kconfig         |  4 ++++
>  xen/common/libfdt/Kconfig  | 14 ++++++++++++++
>  xen/common/libfdt/Makefile | 12 +++++++++---
>  4 files changed, 31 insertions(+), 3 deletions(-)
>  create mode 100644 xen/common/libfdt/Kconfig
>
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index cf6af68299f6..f10cd3d7effc 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -111,6 +111,8 @@ config ARM_EFI
>  	bool "UEFI boot service support"
>  	depends on ARM_64 && !MPU
>  	default y
> +	select LIBFDT_RW
> +	select LIBFDT_EMPTY_TREE
>  	help
>  	  This option provides support for boot services through
>  	  UEFI firmware. A UEFI stub is provided to allow Xen to
> @@ -149,6 +151,8 @@ config HAS_ITS
>  config OVERLAY_DTB
>  	bool "DTB overlay support (UNSUPPORTED)" if UNSUPPORTED
>  	depends on SYSCTL
> +	select LIBFDT_RW
> +	select LIBFDT_OVERLAY
>  	help
>  	  Dynamic addition/removal of Xen device tree nodes using a dtbo.
>  
> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> index 401d5046f6f5..256aff269c3b 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -28,6 +28,8 @@ config DOM0LESS_BOOT
>  
>  config DOMAIN_BUILD_HELPERS
>  	bool
> +	select LIBFDT_WIP
> +	select LIBFDT_SW
>  
>  config GRANT_TABLE
>  	bool "Grant table support" if EXPERT
> @@ -680,4 +682,6 @@ config PM_STATS
>  	  Enable collection of performance management statistics to aid in
>  	  analyzing and tuning power/performance characteristics of the system
>  
> +source "common/libfdt/Kconfig"
> +
>  endmenu
> diff --git a/xen/common/libfdt/Kconfig b/xen/common/libfdt/Kconfig
> new file mode 100644
> index 000000000000..3abd904b2969
> --- /dev/null
> +++ b/xen/common/libfdt/Kconfig
> @@ -0,0 +1,14 @@
> +config LIBFDT_WIP
> +	bool
> +
> +config LIBFDT_SW
> +    bool
> +
> +config LIBFDT_RW
> +    bool
> +
> +config LIBFDT_EMPTY_TREE
> +    bool
> +
> +config LIBFDT_OVERLAY
> +    bool
> diff --git a/xen/common/libfdt/Makefile b/xen/common/libfdt/Makefile
> index 6ce679f98f47..c832d1849a5c 100644
> --- a/xen/common/libfdt/Makefile
> +++ b/xen/common/libfdt/Makefile
> @@ -1,7 +1,13 @@
> -include $(src)/Makefile.libfdt
>  
>  SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
>  
> +obj-libfdt-y := fdt.o fdt_ro.o
> +obj-libfdt-$(CONFIG_LIBFDT_WIP) += fdt_wip.o
> +obj-libfdt-$(CONFIG_LIBFDT_SW) += fdt_sw.o
> +obj-libfdt-$(CONFIG_LIBFDT_RW) += fdt_rw.o
> +obj-libfdt-$(CONFIG_LIBFDT_EMPTY_TREE) += fdt_empty_tree.o
> +obj-libfdt-$(CONFIG_LIBFDT_OVERLAY) += fdt_overlay.o
> +
>  # For CONFIG_OVERLAY_DTB, libfdt functionalities will be needed during runtime.
>  ifneq ($(CONFIG_OVERLAY_DTB),y)
>  OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section .$(s)=.init.$(s))
> @@ -15,7 +21,7 @@ CFLAGS-y += -I$(srctree)/include/xen/libfdt/
>  $(obj)/libfdt.o: $(obj)/libfdt-temp.o FORCE
>  	$(call if_changed,objcopy)
>  
> -$(obj)/libfdt-temp.o: $(addprefix $(obj)/,$(LIBFDT_OBJS)) FORCE
> +$(obj)/libfdt-temp.o: $(addprefix $(obj)/,$(obj-libfdt-y)) FORCE
>  	$(call if_changed,ld)
>  
> -targets += libfdt-temp.o $(LIBFDT_OBJS)
> +targets += libfdt-temp.o $(obj-libfdt-y)

Pulling together several aspects.

Now that we have xen/lib, library stuff should be in it, including this
libfdt.  I suggest moving it to xen/lib/fdt.

The build system problems are created by using non-standard rules to
bodge the init-ness.  For livepatches, we have `init_or_livepatch` as
friends to do conditional init-ness.  I'd suggest a similar approach here.

You might want a prompt-less CONFIG_LIBFDT_NONINIT which can be selected
by CONFIG_DTB_OVERLAY, because that's going to be better than trying to
make an implication directly about DTB_OVERLAY.


As to other issues hinted at:

* Init coverage.  The only reason we don't have init coverage is because
of the overly-restrictive SPECIAL_DATA_SECTIONS check, and while it
serves a purpose, it does a lot of harm too.  It should be disabled by
things like CONFIG_COVERAGE so that we can retrieve coverage of boot
time paths, and because data placement is not interesting for these
types of builds.

* -f{function,data}-sections and --gc-sections.  This gets dead
code/data elimination with better granularity than the translation unit,
and removes the need for interior ifdefary to achieve the same savings. 
We already have -f*-sections for livepatching, so this is really just
using --gc-sections and will probably net a good win in one fell swoop.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 13:25:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 13:25:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176761.1501232 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQmqg-0002x3-G8; Wed, 03 Dec 2025 13:24:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176761.1501232; Wed, 03 Dec 2025 13:24:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQmqg-0002ww-CK; Wed, 03 Dec 2025 13:24:50 +0000
Received: by outflank-mailman (input) for mailman id 1176761;
 Wed, 03 Dec 2025 13:24:48 +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
 <SRS0=PcFb=6J=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vQmqe-0002wq-6O
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 13:24:48 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6fc2fcb5-d04b-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 14:24:46 +0100 (CET)
Received: from DU2PR04CA0254.eurprd04.prod.outlook.com (2603:10a6:10:28e::19)
 by GV1PR08MB7779.eurprd08.prod.outlook.com (2603:10a6:150:57::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Wed, 3 Dec
 2025 13:24:41 +0000
Received: from DB5PEPF00014B8C.eurprd02.prod.outlook.com
 (2603:10a6:10:28e:cafe::2) by DU2PR04CA0254.outlook.office365.com
 (2603:10a6:10:28e::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Wed,
 3 Dec 2025 13:24:41 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B8C.mail.protection.outlook.com (10.167.8.200) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Wed, 3 Dec 2025 13:24:41 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by GV1PR08MB10423.eurprd08.prod.outlook.com (2603:10a6:150:165::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Wed, 3 Dec
 2025 13:23:36 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d%4]) with mapi id 15.20.9388.003; Wed, 3 Dec 2025
 13:23:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6fc2fcb5-d04b-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=BjL+BJSe2MoEqLPACzjnD6NnLkpEtBZExCMDnxdY3qPygWR8wCjQUNLlOLsnq0zxP4BoowGtrrsHGVxSPWEUETdx6YucV6e7j4ytZdUfHHvOmefKteHk0Ops6AbGmLpuh6xMzg0NI+pHzLUWglH+67cB1mBi6sUVevolQ2SvEm33KBcsd34yJSQDCsdBQ48uqKTf+0jDvIeEtHdfG5yxH9G//7ZxH1YKMPIiKcB71OErj0SQSjuD5jswCbTv8bbcrdnyHbD32Idge7JWBMV+Y8JpjHF/wpeVN06P7pcd6YLocOSA0PtrFfCtOk7jrL7DYotnujaRKxFzA0nzw1w54A==
ARC-Message-Signature: i=2; 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=MvKnCVACC5fM57FYIbW30xlokoXBQ2PBkXaPTtBkJzc=;
 b=lwJUY2MepgM0XlbdivxBQqSpHPp0uZxwLC7cAGsvqEfAaMPexsMBKBTm3I2kZxmA9F5fGRWfnMwVzOLjisRvDVtezg/zku3SlAtMBOf8qV1yn1E64StEGTb32Z5Y833lvfAsHyn6/WK9VSTNPwlsAhsmIk9JZRTy2Z6DR/PcKg3mAtjUGSDMfdr8UCMcN4Z4076Coj+dBUDzYxsVW3cPsFcir4K9I2aF6SLqAzrpvCJUh4N95+ytvPLdNzHMMRCByK/wnjrDzjmftzNiMO3rDE1Z6375tY1BC1/CjnXpwIWRjyXEoBDAw0Z65knztC5zu7YZv51taHplDmEFmXU2/g==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MvKnCVACC5fM57FYIbW30xlokoXBQ2PBkXaPTtBkJzc=;
 b=MeDtkjxiOLKdrrjWhmCvPibhplUTJ7QnswvlGKppra6pwZ+UuEsd71ZNSBCwiCZZ8vv7WgcV4KGoiRklwINqWfjySQASYVNXggA2SXkCREFm1QVPMZ8w2vszC1CY/Y91v2WmvJxBOXDVPPLd89bg9vygGWpDK3SNS3AwpDuw8FU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NWmM3ZUrgCPZzdqGanDowpX+Damk6ec6u97RBMPjetJhnlc3/PHMClWh+bEW6JmbSoTYKfa0wnApqV3+EAwRPtY5qcznObE1te/CJ8IlwptFY/2d96pYn1mxVsQfAFn2EL12QXtO1BSX7EDvqfS987mhruA9uyjVZeNaS/nfzeFNpgiGAe+2z7UYzAzAm033Fy6lZ4RqfvqRLjoETHp6zJw4+7n8YGNCcFrKeBhE3fZvU/KUoQtaAM7edx4krUbl+Hj05kZI7he+MtdT0RVJzXSBsDVo4vq32kO5Sy6upSxjE+rlXUcUhk6rOTmW9xJg5PSEZgedaav0IIpKcGJaqg==
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=MvKnCVACC5fM57FYIbW30xlokoXBQ2PBkXaPTtBkJzc=;
 b=lIHu/aMg0P+rxbfJLv+RThhsX7oql/sNDxSXxjkzGvHLCbrACi5E+HVfqAY5HFmSGzoaz6s8W/HL/NyOGtH7K7iYnOXfSTGo516NnWCSy/ncq1Vl6MJoVBfNEcbaGImt7V+nh4RBs7EVIKSKQOYBaFXRUcpKUf2VRLAeITtbsvnuh20PUExfMZQNNHtvYTC+ztP/K27YTPalYZB91OU7oJ2QqwAwYUjYZxGnjFA+oxec44+xOXlbD2AVs1idB+eqNFJvIL37Tgn19afjLXoyocDqcbqB2Xz6O37CyLQC9A6pU+vAOLZnr3jg4GQorfKuhQlTXNNBLDx7XbPUw+z8iw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MvKnCVACC5fM57FYIbW30xlokoXBQ2PBkXaPTtBkJzc=;
 b=MeDtkjxiOLKdrrjWhmCvPibhplUTJ7QnswvlGKppra6pwZ+UuEsd71ZNSBCwiCZZ8vv7WgcV4KGoiRklwINqWfjySQASYVNXggA2SXkCREFm1QVPMZ8w2vszC1CY/Y91v2WmvJxBOXDVPPLd89bg9vygGWpDK3SNS3AwpDuw8FU=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 06/10] xen/arm: ffa: add UUID helpers for partition info
Thread-Topic: [PATCH 06/10] xen/arm: ffa: add UUID helpers for partition info
Thread-Index: AQHcX7X1cV8Oy9wIyU2XZxYHvoEoGbUP5x4AgAAJd4A=
Date: Wed, 3 Dec 2025 13:23:35 +0000
Message-ID: <2431CB0A-4AD2-454C-BFA5-7B26FC219BE1@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
 <c8fe1053ae135387da8f75f96054f3a6eae3b00b.1764254975.git.bertrand.marquis@arm.com>
 <CAHUa44E=+yX5uW_7mkZk_n13GDwP42HGoba2AZesuFEjU8BFkg@mail.gmail.com>
In-Reply-To:
 <CAHUa44E=+yX5uW_7mkZk_n13GDwP42HGoba2AZesuFEjU8BFkg@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.200.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|GV1PR08MB10423:EE_|DB5PEPF00014B8C:EE_|GV1PR08MB7779:EE_
X-MS-Office365-Filtering-Correlation-Id: 14951bbc-089b-4f97-86eb-08de326f50ec
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|10070799003|376014|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?dGRrdDFreEtZdHVVWlo4emdvWE4ycFhKTFE5TWlBMHdyTWVCRFlNNWx6UnQ0?=
 =?utf-8?B?WmZURGlKSnBiK254eDN5ZFNETUZJQzh1dnBteWRsRmM3WHNiTFc2VjE5N0dk?=
 =?utf-8?B?MlFlRTZiall6RjhZc0NSL3BmZkZCRWdWZVZPZWRBbnNSZ1lwbDN5ZldwQlJG?=
 =?utf-8?B?ZGl1V3luZXNVZ1crelhUY1g5VG4yU1hXZjdkbmVJVlJnSkxDVjdGZDRPVldY?=
 =?utf-8?B?WnNJMW5sSkFmcGhTL2pjRFBCcjQ5MllodUorbElJczhabFlwZ1ZrQ2YwNVRC?=
 =?utf-8?B?OUovQUVGQ1BGTFhxVktBNHBKcXdZY0NVSVNHRWk4SWhuUzRBTDRua1Rjbk9B?=
 =?utf-8?B?Y2M0MDBMZDIwbndsdWgzcXhLMGxuUXdycWNTbWlnRDVGOUI2VlNXZnQyVVpK?=
 =?utf-8?B?dnRKdFErZVZyR0lKcWlxRm43dDJQVmEvM2R5RGxmU0lSdE9aL05IMnJRVFFJ?=
 =?utf-8?B?QTdtYWVOQ1RobW03UnYzU2tZUHh6WS9SZzJNSUpNQk9RQlc1amdSR3l5b09E?=
 =?utf-8?B?U0F2UUtvWThaZnVFdm83ZC8xUTQ1cWtqRDNQeERYMUY1aCtjL0pvU0Y1bzFr?=
 =?utf-8?B?amdHVTNRejFBbXY3L1pNWnNISjJsMlFjYWN2TVNxUTZwdERXNVFDbGt2cU53?=
 =?utf-8?B?TTRwMElqUmVsc2tzdU1JWnZZbGNZemV2WW5xMllkTFVLY1p6eEhPbVA0d0Fs?=
 =?utf-8?B?d2tUY2VxUFZVQWVUU01adHp2TDJqcmVZbU00MmpLMVorNXlVQVJNVUQ0R2xa?=
 =?utf-8?B?cU04Vm1tbStPTVhEMTlIaU1aQ3ZWOUVudCtJUkplWlI4ZVVsN0IyUjZxYXlS?=
 =?utf-8?B?U0t3ZXlUTVdLYnBOUWk4Q2dzZVBiTVBCZ0pIaFZ4ZGtaVWkvVlZHNkJEcHNH?=
 =?utf-8?B?TTlMZnNoZUxuSzFmVnlFeEJTS2VxdG9udFNiUWc1eDhXNGJIS1l0WmhkeUxD?=
 =?utf-8?B?a2xNczZIV1NVTXJBUUlCTzQ4U0g1YngrNHRvZTl6RXc1S3dmYmJIUTZnZCsr?=
 =?utf-8?B?MlQ4cks2QTllU1hnY2NVbzFBa3BUb3Jwa2tJRjJmWEI0M3pCWnh6Ris2SXBT?=
 =?utf-8?B?ZGhWdko1M2JEY2FzVWVWQlRHb2JXc0ZLaUFpVkpxNm5UREh2eElvaGNkcnZa?=
 =?utf-8?B?NE0yU2o3WEI3di9meE9oZmpoWmZmV2RYY3l1a0I5R3l6ZVpuem4xYWtyY1lY?=
 =?utf-8?B?T09uSDduMUljNWtMc24xM3M2UjBCUVZIcmpEaFI4em85WkZZcFoyeXJNU2Yv?=
 =?utf-8?B?d0IvdnB3aVdRckJtK3FNR2g3ZGJmemtsKytaR0VLcElDcnF1NXF4VnFnUXkx?=
 =?utf-8?B?ZHBHVmhHNDR3clNLWEI0VStWT0tMdERIdGxoT2p4N0Q3Vm5JclhkMEdMTmZr?=
 =?utf-8?B?aHBOdUNWWlRYNzcyWE9wUmUwNVZmM1NqWHR0SEJWLzdGUWUwTnoyNjBsVkRx?=
 =?utf-8?B?YXBKelFwamNUN1haTmxVNHlLTG9oQmkrWENuSHhOR3pzNVYxUERxcTZGWjd1?=
 =?utf-8?B?Sy9TWlZacWt6WHdiVFN4eEcyc2RvZERDczNlamlzVzVUd1VUYTNrN3VPRlN4?=
 =?utf-8?B?d1FlZ3BrSk5wdXlCRFN2ZHdZQmRIUURYTnlxT2NsRzc5T0tKZDNuZ29DY3Fy?=
 =?utf-8?B?QnhkZUswdnJQeks1SkhTZTl5bVYvQnhxbURNUXNkMS9Yc1d5V1NzZ3ZRVSs1?=
 =?utf-8?B?QVVnWkNRNEtQMEUrSFI3VVdQTVN5VzFWbUtaQ2tWRVkxZEtzcjNra0pPeDk1?=
 =?utf-8?B?YXNqTGZ4ekJ6c2g1V0ZseVdPSzA0akpkdVFYczE2YUJSeHdvZWZYelMyTjJl?=
 =?utf-8?B?eGdObHpKOGV6Sm5CUGdhTlRTUENncGJSdmNESWwwOURTemNLbkQrak9SOVl6?=
 =?utf-8?B?ZFJuYnJvMnBRVUd1QTRQVEZwbUUvOVhvbGZibFJTMWhkTlNXTUN2RlB0Rklu?=
 =?utf-8?B?ck9oVlUwY1F0c1d0SHdOVG1Qbys2bkRkcTJlNG93WHd3VG95a0IyUXdGZmRY?=
 =?utf-8?B?dTExajArVkM4ck85MG9BMDRkMm1na25xejJ4Mk9nL2RwMEZoNk5HZ0hwZ3Jj?=
 =?utf-8?Q?62gDn0?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <3B7F1D90807B5C43A59B11BB4053C55C@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB10423
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B8C.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	bcc43f02-21cf-47aa-f768-08de326f29cf
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|35042699022|376014|82310400026|1800799024|14060799003|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bWJLbk5Ea1N5QjFkcDIxaDkrZXZvbjk2d1BYVTBIekpscG54dDhoM3I2VTVC?=
 =?utf-8?B?YUNBeGpTOUZkWjMvNFdzdG9vNWo5cjJlV1RVTi8zWTRmeDlNKy9LeVgrMTV2?=
 =?utf-8?B?ZUhkT3Y4bEhNcGMwdXgzR282VDMwa2ZUV3dlUXliTkJndHBTbXpNZENJWXNZ?=
 =?utf-8?B?YnJhTSt0RitEK3k5OVVUZ05NaVR1NG13SWx4WXRWOU1FNWtTaDU3VEU3Q2Yz?=
 =?utf-8?B?VUVXUk5XdWhNd0w4emp0K2c2UzJVZ3Bub2hzS0xJMVdPbjR1S01BSFQ1MUh6?=
 =?utf-8?B?NlU3U1FDY1E0ZUQ1eUxCMHlpR0s3bFAzUGRwbjEwcG1lTW9PcURKckFEVEdP?=
 =?utf-8?B?YWhmZGk4bWJrdVdFK0E2dDZlVVFUNWRGdlEweG9ubXVwNnEzcW5vZ1lwK3pR?=
 =?utf-8?B?clBZT1JRRFBvaGVOZ251MitlSUhIMm1PTGd5cUxaMGZnWGczS01HTk1VL2hW?=
 =?utf-8?B?NmMrYjlGMG1XYndrd1pldktVUEtLVDdWYjFtSFp2RGZzdFNkeDE5U2Y3ODRu?=
 =?utf-8?B?SHBZRDh1T3prL3lNV0EySExORW85Ny9lcmlTbThmcUxRMmdkcCs3MEtCZ2hp?=
 =?utf-8?B?Z3d3TWRCbmx6ZEkrVFZEaW9DVFduQmZEalVYdjFabCsxSTQyVTh5MGtrclY4?=
 =?utf-8?B?bmdTYUx2VzdyOUx6Ujl1V1g4UHNubmZmcXhoVWEvVVorZWl0aGhIRFlia1dG?=
 =?utf-8?B?a0lIaC9HakRkb3FhL1p1VUc2c3pURU5oZGdHbkJQTEFsemJhT0dlOEtXT1BK?=
 =?utf-8?B?WE10MzVTVVBhcXhFak0vcEdDdWpxZFREZHg3YzJ2U3dFV0F1TkxwcmI5OEhF?=
 =?utf-8?B?SldQczUwcEo2dUhTaDU0RTZFVWVySm1DRGl5STlnZ3pZUmxWc1lnc2sxNStQ?=
 =?utf-8?B?bEFKOVFRSWtiU3hZYjNTUklQazZRQ2NkMmpsemhkK3B1Qk5DcGNBTngydHFQ?=
 =?utf-8?B?U2RGdldZNXFLZTNTMUh5Q055MUZaWnNPbzV2R2JtMkVON0taRFJicXJUdGhX?=
 =?utf-8?B?aUJJenB6ZDZDTEdMaEllaW9nRStLNzRob29RTGVSbnhhUG5pdWxkYzlmVkhG?=
 =?utf-8?B?N2E3MlFQM1JMUzJmbUxPVjJDcDIrbnYwbTU1S1RoREx5R3d0R1FGLzI4c2Vk?=
 =?utf-8?B?OWZRYUEwcGRmR2tPaUp1MytWaWJPd0Q3bllsYzY2azFzM2dWTnZwdkZ2b0V4?=
 =?utf-8?B?WnBzTmVwanZRdXo3dnZ0dSs1aW11RDZKNSs4NUx5NHc0K3hPU0xrWlJocWtK?=
 =?utf-8?B?MncxL0xzaldTaS9HbWMrakZ6NWZNdWt3TVQzZVFjcVVXSlI4TnlHMFhHY1pF?=
 =?utf-8?B?aDlFZDZqQ24xZ1lGU2FjOTlsNzFISHFtZ0xhT3dHQ3JrL0pCcTlzVStxV05x?=
 =?utf-8?B?WWp1OVVVaFBaZXNvYUhPSkIwMWx1YzA5TUwzMFlhNkFpeDNCWE1DY2ppMWNs?=
 =?utf-8?B?Q3BmbGVBVmlGMHN4akxleUJnSndCdGdIVjV1WnUzNlBVRUhtS2lqQ0VCbzBF?=
 =?utf-8?B?dzZSWWo0b0NuMUozRENyZ01COVJMQk5JTWcwUG1RZi80U29vKzlGL3hxckg5?=
 =?utf-8?B?aUs5dVNSeEY3dnV2RGJEcDRGZnMvTGJ3QllOcG1HZmdYMVJkbml5cHFEYnpt?=
 =?utf-8?B?Sit3MHIxN0hRRkJ6ckFWSzNVOE1rV1NWZmM2S0g1b1FFN3Axa2RPeDdOcUNT?=
 =?utf-8?B?VkxNMktqa05HTzBTN3cyYTNHcDdLZXRzVGI4UnFZbmVGNkVjOXJuQ2wrTnl1?=
 =?utf-8?B?QUNKWjNQQ3daVndqUktObnBRWTVmc1FHd0QzYVczclJhWEtNSG1TNmkxRUEz?=
 =?utf-8?B?K2krNTBCc2pYNkR0K2RxaUxQaTZWRjhHRG1taDRBejVEWkFZME9FbThmTjlp?=
 =?utf-8?B?YUFRVlVKZ1VxQ1lNNVVZekdWcEMyUDRQU1V4QVlqNmJaWXJEZEhsWnlVcHNy?=
 =?utf-8?B?alB6NkVJMTRSem5iZTV2YTVWb2lGYWlFRm85Zk9jblVBTno2VTFGdDhDbjd0?=
 =?utf-8?B?OUlWQ1RWcW0xNHUwRVJBRnBWTWNJcWhSa1h1NmlZWFJsRHo3WG85UlRIa1dy?=
 =?utf-8?B?WDE4dTdja1BweGhyUDJzU2hMSzNGOFFZdHVSWG54a0NJbU5YZmJGSEh6QzYy?=
 =?utf-8?Q?UD68=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(35042699022)(376014)(82310400026)(1800799024)(14060799003)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2025 13:24:41.2308
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 14951bbc-089b-4f97-86eb-08de326f50ec
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B8C.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB7779

SGkgSmVucywNCg0KPiBPbiAzIERlYyAyMDI1LCBhdCAxMzo0OSwgSmVucyBXaWtsYW5kZXIgPGpl
bnMud2lrbGFuZGVyQGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gSGkgQmVydHJhbmQsDQo+IA0K
PiBPbiBUaHUsIE5vdiAyNywgMjAyNSBhdCA0OjUy4oCvUE0gQmVydHJhbmQgTWFycXVpcw0KPiA8
YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPiB3cm90ZToNCj4+IA0KPj4gSW50cm9kdWNlIHN0cnVj
dCBmZmFfdXVpZCB0b2dldGhlciB3aXRoIG5pbC9lcXVhbGl0eS9zZXQgaGVscGVycywgYW5kDQo+
PiB1c2UgaXQgZW5kLXRvLWVuZCBpbiB0aGUgcGFydGl0aW9uLWluZm8gcGx1bWJpbmcuDQo+PiAN
Cj4+IFRoZSBTUCBhbmQgVk0gZW51bWVyYXRpb24gcGF0aHMgbm93IGJ1aWxkIFVVSURzIGZyb20g
dGhlIGd1ZXN0DQo+PiByZWdpc3RlcnMsIGNhbGwgYSBuZXcgZmZhX2NvcHlfaW5mbygpIGhlbHBl
ciBhbmQgZW5zdXJlIG5vbi1uaWwgVVVJRA0KPj4gcXVlcmllcyBvbmx5IHJldHVybiBtYXRjaGlu
ZyBTUCBlbnRyaWVzLCByZWx5aW5nIG9uIGZpcm13YXJlIFVVSUQNCj4+IGZpbHRlcmluZy4gVk0g
ZW50cmllcyBhcmUgc2tpcHBlZCBiZWNhdXNlIHdlIGRvIG5vdCB0cmFjayBwZXItVk0gVVVJRHMu
DQo+PiANCj4+IENvdW50IHJlcXVlc3RzIGFuZCBzdWJzY3JpYmVyIGluaXRpYWxpc2F0aW9uIGFy
ZSB1cGRhdGVkIGFjY29yZGluZ2x5IHNvDQo+PiBmaXJtd2FyZSBpcyBhbHdheXMgY2FsbGVkIHdp
dGggYW4gZXhwbGljaXQgVVVJRC4gVGhpcyBrZWVwcyBjb3VudCBhbmQNCj4+IGxpc3RpbmcgcmVx
dWVzdHMgYWxpZ25lZCB3aXRoIHRoZSBGRi1BIHYxLjEgcnVsZXMgd2hpbGUgcHJlc2VydmluZyB0
aGUNCj4+IExpbnV4IGNvbXBhdGliaWxpdHkgd29ya2Fyb3VuZCBmb3IgdjEuMiByZXF1ZXN0ZXJz
Lg0KPj4gDQo+PiBTaWduZWQtb2ZmLWJ5OiBCZXJ0cmFuZCBNYXJxdWlzIDxiZXJ0cmFuZC5tYXJx
dWlzQGFybS5jb20+DQo+PiAtLS0NCj4+IHhlbi9hcmNoL2FybS90ZWUvZmZhX3BhcnRpbmZvLmMg
fCAyMDYgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0NCj4+IHhlbi9hcmNoL2FybS90
ZWUvZmZhX3ByaXZhdGUuaCAgfCAgMjEgKysrKw0KPj4gMiBmaWxlcyBjaGFuZ2VkLCAxNTIgaW5z
ZXJ0aW9ucygrKSwgNzUgZGVsZXRpb25zKC0pDQo+PiANCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJj
aC9hcm0vdGVlL2ZmYV9wYXJ0aW5mby5jIGIveGVuL2FyY2gvYXJtL3RlZS9mZmFfcGFydGluZm8u
Yw0KPj4gaW5kZXggM2Y0YTc3OWY0MTQ2Li40YWRiZTI3MzZjOTQgMTAwNjQ0DQo+PiAtLS0gYS94
ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wYXJ0aW5mby5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vdGVl
L2ZmYV9wYXJ0aW5mby5jDQo+PiBAQCAtMzMsNyArMzMsNyBAQCBzdGF0aWMgdWludDE2X3Qgc3Vi
c2NyX3ZtX2NyZWF0ZWRfY291bnQgX19yZWFkX21vc3RseTsNCj4+IHN0YXRpYyB1aW50MTZfdCAq
c3Vic2NyX3ZtX2Rlc3Ryb3llZCBfX3JlYWRfbW9zdGx5Ow0KPj4gc3RhdGljIHVpbnQxNl90IHN1
YnNjcl92bV9kZXN0cm95ZWRfY291bnQgX19yZWFkX21vc3RseTsNCj4+IA0KPj4gLXN0YXRpYyBp
bnQzMl90IGZmYV9wYXJ0aXRpb25faW5mb19nZXQodWludDMyX3QgKnV1aWQsIHVpbnQzMl90IGZs
YWdzLA0KPj4gK3N0YXRpYyBpbnQzMl90IGZmYV9wYXJ0aXRpb25faW5mb19nZXQoc3RydWN0IGZm
YV91dWlkIHV1aWQsIHVpbnQzMl90IGZsYWdzLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1aW50MzJfdCAqY291bnQsIHVpbnQzMl90ICpmcGlfc2l6ZSkNCj4+IHsN
Cj4+ICAgICBzdHJ1Y3QgYXJtX3NtY2NjXzFfMl9yZWdzIGFyZyA9IHsNCj4+IEBAIC00MSwxNSAr
NDEsMTIgQEAgc3RhdGljIGludDMyX3QgZmZhX3BhcnRpdGlvbl9pbmZvX2dldCh1aW50MzJfdCAq
dXVpZCwgdWludDMyX3QgZmxhZ3MsDQo+PiAgICAgICAgIC5hNSA9IGZsYWdzLA0KPj4gICAgIH07
DQo+PiAgICAgc3RydWN0IGFybV9zbWNjY18xXzJfcmVncyByZXNwOw0KPj4gLSAgICB1aW50MzJf
dCByZXQ7DQo+PiArICAgIGludDMyX3QgcmV0Ow0KPj4gDQo+PiAtICAgIGlmICggdXVpZCApDQo+
PiAtICAgIHsNCj4+IC0gICAgICAgIGFyZy5hMSA9IHV1aWRbMF07DQo+PiAtICAgICAgICBhcmcu
YTIgPSB1dWlkWzFdOw0KPj4gLSAgICAgICAgYXJnLmEzID0gdXVpZFsyXTsNCj4+IC0gICAgICAg
IGFyZy5hNCA9IHV1aWRbM107DQo+PiAtICAgIH0NCj4+ICsgICAgYXJnLmExID0gdXVpZC52YWxb
MF0gJiAweEZGRkZGRkZGVTsNCj4+ICsgICAgYXJnLmEyID0gKHV1aWQudmFsWzBdID4+IDMyKSAm
IDB4RkZGRkZGRkZVOw0KPj4gKyAgICBhcmcuYTMgPSB1dWlkLnZhbFsxXSAmIDB4RkZGRkZGRkZV
Ow0KPj4gKyAgICBhcmcuYTQgPSAodXVpZC52YWxbMV0gPj4gMzIpICYgMHhGRkZGRkZGRlU7DQo+
IA0KPiBZb3Ugd2VyZSBzd2l0Y2hpbmcgdG8gR0VOTUFTSyBpbiB0aGUgcHJldmlvdXMgcGF0Y2hl
cywgc28gd2Ugc2hvdWxkDQo+IHByb2JhYmx5IHVzZSB0aGF0IGhlcmUgdG9vLg0KDQpBZ3JlZSwg
SSB3aWxsIGZpeCB0aGF0Lg0KDQo+IA0KPiBXaXRoIHRoYXQgZml4ZWQ6DQo+IFJldmlld2VkLWJ5
OiBKZW5zIFdpa2xhbmRlciA8amVucy53aWtsYW5kZXJAbGluYXJvLm9yZz4NCg0KVGhhbmtzDQoN
CkNoZWVycw0KQmVydHJhbmQNCg0K


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 13:33:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 13:33:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176775.1501241 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQmym-0004rN-Ce; Wed, 03 Dec 2025 13:33:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176775.1501241; Wed, 03 Dec 2025 13:33:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQmym-0004rG-9G; Wed, 03 Dec 2025 13:33:12 +0000
Received: by outflank-mailman (input) for mailman id 1176775;
 Wed, 03 Dec 2025 13:33:11 +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
 <SRS0=dwxk=6J=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vQmyk-0004r8-NN
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 13:33:11 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 97468dee-d04c-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 14:33:02 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-477ba2c1ca2so76985325e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 05:33:02 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4792b021cd2sm20007645e9.1.2025.12.03.05.32.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Dec 2025 05:33:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97468dee-d04c-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764768781; x=1765373581; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=XCUZkoCKxWFHG8v48p67eBgxCJ09M8G5lm8kJ2gK7Lg=;
        b=gX4wkQA6MlFdrU6A+yaDJGof+GCTm4GNiw9FaZTOik7iIMx3vuMfpqb201LjZjkUyh
         YF/lFU4Uy/Y28Vf/PhTHzxrJl9aXUaX0e+cLEhfi14WD2KTxu5zL0mzOvPI1KUK9ilay
         8Znsp+2nlmobUXPgsLC65aD6fBxG13NGtSEgA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764768781; x=1765373581;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XCUZkoCKxWFHG8v48p67eBgxCJ09M8G5lm8kJ2gK7Lg=;
        b=qOS9GsIMpzPWrIaohU1HtbVRu08Nulh1jhJRYdDEf7503uAmQIGYftsRWZmuKelTc0
         DXtZR3gajF7dugXlGlS54LzVnSvRokZfbqbEF69PWOAMLNoMxmDe49e+12Q3baSTbwf/
         Q7BLOQVLImdGg0gLiLoJRTG47fLtSINMvwVifofeWoN1JGy8yx7o8ihDaU60yashy7zw
         CQHwR0T0hi13fpMOY+DIdW1yUZV0t+e/1MFmc59pSHnLZhjgebKb2QThd6/MIRoFYBqO
         zGgqs3ceosE0T5tRwH9S1dyszpDdhi3aAaNDm7JBhP1Vwu6TInVn6EF665z1Jz1wA/EN
         Sgyg==
X-Gm-Message-State: AOJu0Yz4Bk8Vj6MBIU71Qgu+1IsN9pdn5FiNPp0mIv22e/2IXvU2NbUA
	ZRdjgYWk94PoJO/iOWVj0zIogFrTbDdkAODVBhjXIHj/z+/ghgN4AnEgI3QAaIDQRch3WJbNUwZ
	V8EbX
X-Gm-Gg: ASbGncukGGq2yRZcZ1kRgBF4iO1c/phhofUFkiQOL1S8mYQvloQc0U1FNz32qNObyT4
	3m6kvhYsjjpRRoRTvJ3KGaBgFNr0rrNP2zyQnwGviNKzKq4g2HuFCW4aIDBcQKrJoUVAPYBXpZ1
	h26/3znKZV84ngcKtBc/S+XlOCs4MVXXcMYLUp3syU5E8hzEatsjHtbYQDtGF/e7+IKcQMVB7OA
	vB/1CScHwJsauFCcuV2+Y6csOjUtJW44aaXqkLNdVswTxtVkoyLqM/RlQBe8Znw65xV5g4hkT3W
	N8ivAoYSuoUO5Wpqx+X5GXycIeAMjAAm+kUFcOIZJux9QJjQU7dBr982xfOUVUVm8cM2vMWIwbK
	oF0wWUOphMpdkqntJeXNCoPSODUXWE+hc3y7sPAcVbZ4+ivmKI67kz+jx/kF3HlbbZ37dJPpnjO
	ycPOAaaWhkx+aHH8VAPsro4v5gtWA4PaIN2l6ruD2l7ozVDi6PtBVMhRTueOOZlg==
X-Google-Smtp-Source: AGHT+IHmte9MpL5l72MvytKLIC2I7xNrdtAj40fYBFNuu6NhtCmsg3EjopThFM3ON8RnNJg2GfxcAA==
X-Received: by 2002:a05:600c:4f91:b0:477:aed0:f40a with SMTP id 5b1f17b1804b1-4792af3362cmr26221915e9.19.1764768780973;
        Wed, 03 Dec 2025 05:33:00 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Timothy Pearson <tpearson@raptorengineering.com>
Subject: [PATCH] xen/treewide: Use __ASSEMBLER__ instead of __ASSEMBLY__
Date: Wed,  3 Dec 2025 13:32:58 +0000
Message-Id: <20251203133258.1624223-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

__ASSEMBLER__ is how GCC and Clang spell this, removing the need to set it up
manually in AFLAGS.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Timothy Pearson <tpearson@raptorengineering.com>

Generated with sed.  Linux has done the same change too.

I debated splitting this patch, but it's simple enough IMO.
---
 xen/Makefile                               |  2 --
 xen/arch/arm/arm32/lib/assembler.h         |  2 +-
 xen/arch/arm/arm64/lib/assembler.h         |  2 +-
 xen/arch/arm/include/asm/alternative.h     |  4 ++--
 xen/arch/arm/include/asm/arm32/mpu.h       |  4 ++--
 xen/arch/arm/include/asm/arm32/page.h      |  4 ++--
 xen/arch/arm/include/asm/arm32/processor.h |  2 +-
 xen/arch/arm/include/asm/arm32/sysregs.h   |  6 +++---
 xen/arch/arm/include/asm/arm64/efibind.h   |  2 +-
 xen/arch/arm/include/asm/arm64/mpu.h       |  4 ++--
 xen/arch/arm/include/asm/arm64/page.h      |  4 ++--
 xen/arch/arm/include/asm/arm64/processor.h |  4 ++--
 xen/arch/arm/include/asm/arm64/sysregs.h   |  6 +++---
 xen/arch/arm/include/asm/config.h          |  4 ++--
 xen/arch/arm/include/asm/cpufeature.h      |  4 ++--
 xen/arch/arm/include/asm/current.h         |  2 +-
 xen/arch/arm/include/asm/fixmap.h          |  4 ++--
 xen/arch/arm/include/asm/gic.h             |  4 ++--
 xen/arch/arm/include/asm/insn.h            |  4 ++--
 xen/arch/arm/include/asm/lpae.h            |  4 ++--
 xen/arch/arm/include/asm/macros.h          |  2 +-
 xen/arch/arm/include/asm/mpu.h             |  4 ++--
 xen/arch/arm/include/asm/page.h            |  4 ++--
 xen/arch/arm/include/asm/pl011-uart.h      |  4 ++--
 xen/arch/arm/include/asm/processor.h       |  8 ++++----
 xen/arch/arm/include/asm/regs.h            |  2 +-
 xen/arch/arm/include/asm/smccc.h           |  4 ++--
 xen/arch/arm/include/asm/smp.h             |  2 +-
 xen/arch/arm/include/asm/sysregs.h         |  4 ++--
 xen/arch/ppc/include/asm/current.h         |  4 ++--
 xen/arch/ppc/include/asm/opal-api.h        |  4 ++--
 xen/arch/ppc/include/asm/processor.h       |  4 ++--
 xen/arch/riscv/include/asm/asm.h           |  6 +++---
 xen/arch/riscv/include/asm/bug.h           |  4 ++--
 xen/arch/riscv/include/asm/config.h        |  4 ++--
 xen/arch/riscv/include/asm/cpufeature.h    |  4 ++--
 xen/arch/riscv/include/asm/csr.h           |  4 ++--
 xen/arch/riscv/include/asm/current.h       |  4 ++--
 xen/arch/riscv/include/asm/fixmap.h        |  4 ++--
 xen/arch/riscv/include/asm/page.h          |  4 ++--
 xen/arch/riscv/include/asm/processor.h     |  4 ++--
 xen/arch/riscv/include/asm/regs.h          |  4 ++--
 xen/arch/riscv/include/asm/system.h        |  4 ++--
 xen/arch/riscv/include/asm/traps.h         |  4 ++--
 xen/arch/x86/boot/video.h                  |  4 ++--
 xen/arch/x86/include/asm/alternative-asm.h |  4 ++--
 xen/arch/x86/include/asm/alternative.h     |  4 ++--
 xen/arch/x86/include/asm/asm_defns.h       | 12 ++++++------
 xen/arch/x86/include/asm/bug.h             |  6 +++---
 xen/arch/x86/include/asm/cache.h           |  2 +-
 xen/arch/x86/include/asm/config.h          |  6 +++---
 xen/arch/x86/include/asm/cpufeature.h      |  6 +++---
 xen/arch/x86/include/asm/cpufeatureset.h   |  6 +++---
 xen/arch/x86/include/asm/desc.h            |  8 ++++----
 xen/arch/x86/include/asm/edd.h             |  4 ++--
 xen/arch/x86/include/asm/fixmap.h          |  4 ++--
 xen/arch/x86/include/asm/ldt.h             |  4 ++--
 xen/arch/x86/include/asm/machine_kexec.h   |  2 +-
 xen/arch/x86/include/asm/nops.h            |  2 +-
 xen/arch/x86/include/asm/page.h            | 20 ++++++++++----------
 xen/arch/x86/include/asm/processor.h       |  6 +++---
 xen/arch/x86/include/asm/smp.h             |  6 +++---
 xen/arch/x86/include/asm/spec_ctrl.h       |  4 ++--
 xen/arch/x86/include/asm/spec_ctrl_asm.h   |  4 ++--
 xen/arch/x86/include/asm/trampoline.h      |  4 ++--
 xen/arch/x86/include/asm/x86_64/page.h     |  6 +++---
 xen/common/efi/boot.c                      |  6 +++---
 xen/include/efi/pe.h                       |  4 ++--
 xen/include/public/arch-arm.h              |  4 ++--
 xen/include/public/arch-ppc.h              |  4 ++--
 xen/include/public/arch-riscv.h            |  2 +-
 xen/include/public/arch-x86/xen-mca.h      |  4 ++--
 xen/include/public/arch-x86/xen-x86_32.h   |  4 ++--
 xen/include/public/arch-x86/xen-x86_64.h   |  4 ++--
 xen/include/public/arch-x86/xen.h          |  8 ++++----
 xen/include/public/errno.h                 |  6 +++---
 xen/include/public/tmem.h                  |  2 +-
 xen/include/public/xen.h                   | 10 +++++-----
 xen/include/xen/acpi.h                     |  4 ++--
 xen/include/xen/bitmap.h                   |  4 ++--
 xen/include/xen/bug.h                      |  4 ++--
 xen/include/xen/config.h                   |  2 +-
 xen/include/xen/const.h                    |  2 +-
 xen/include/xen/err.h                      |  4 ++--
 xen/include/xen/errno.h                    |  6 +++---
 xen/include/xen/init.h                     |  4 ++--
 xen/include/xen/kimage.h                   |  4 ++--
 xen/include/xen/lib.h                      |  4 ++--
 xen/include/xen/libfdt/fdt.h               |  2 +-
 xen/include/xen/linkage.h                  |  4 ++--
 xen/include/xen/macros.h                   |  4 ++--
 xen/include/xen/multiboot.h                |  4 ++--
 xen/include/xen/multiboot2.h               |  4 ++--
 xen/include/xen/percpu.h                   |  4 ++--
 xen/include/xen/pmap.h                     |  4 ++--
 xen/include/xen/softirq.h                  |  4 ++--
 96 files changed, 208 insertions(+), 210 deletions(-)

diff --git a/xen/Makefile b/xen/Makefile
index fc9244420e7d..e6cf2874251c 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -412,8 +412,6 @@ ifneq ($(CONFIG_CC_IS_CLANG),y)
 CFLAGS += -Wa,--strip-local-absolute
 endif
 
-AFLAGS += -D__ASSEMBLY__
-
 $(call cc-option-add,AFLAGS,CC,-Wa$$(comma)--noexecstack)
 
 LDFLAGS-$(call ld-option,--warn-rwx-segments) += --no-warn-rwx-segments
diff --git a/xen/arch/arm/arm32/lib/assembler.h b/xen/arch/arm/arm32/lib/assembler.h
index 6de2638a36d5..75d97ab0cc5f 100644
--- a/xen/arch/arm/arm32/lib/assembler.h
+++ b/xen/arch/arm/arm32/lib/assembler.h
@@ -17,7 +17,7 @@
 #ifndef __ASM_ASSEMBLER_H__
 #define __ASM_ASSEMBLER_H__
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 #error "Only include this from assembly code"
 #endif
 
diff --git a/xen/arch/arm/arm64/lib/assembler.h b/xen/arch/arm/arm64/lib/assembler.h
index 3f9c0dcf5d32..0fac7d1c6e30 100644
--- a/xen/arch/arm/arm64/lib/assembler.h
+++ b/xen/arch/arm/arm64/lib/assembler.h
@@ -1,7 +1,7 @@
 #ifndef __ASM_ASSEMBLER_H__
 #define __ASM_ASSEMBLER_H__
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 #error "Only include this from assembly code"
 #endif
 
diff --git a/xen/arch/arm/include/asm/alternative.h b/xen/arch/arm/include/asm/alternative.h
index 1563f03a0f5a..c751e11fc56b 100644
--- a/xen/arch/arm/include/asm/alternative.h
+++ b/xen/arch/arm/include/asm/alternative.h
@@ -6,7 +6,7 @@
 
 #define ARM_CB_PATCH ARM_NCAPS
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/types.h>
 #include <xen/stringify.h>
@@ -206,7 +206,7 @@ alternative_endif
 #define _ALTERNATIVE_CFG(insn1, insn2, cap, cfg, ...)	\
 	alternative_insn insn1, insn2, cap, IS_ENABLED(cfg)
 
-#endif  /*  __ASSEMBLY__  */
+#endif  /*  __ASSEMBLER__  */
 
 /*
  * Usage: asm_inline (ALTERNATIVE(oldinstr, newinstr, feature));
diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
index 137022d92264..2cf0f8cbacae 100644
--- a/xen/arch/arm/include/asm/arm32/mpu.h
+++ b/xen/arch/arm/include/asm/arm32/mpu.h
@@ -3,7 +3,7 @@
 #ifndef ARM_ARM32_MPU_H
 #define ARM_ARM32_MPU_H
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 /*
  * Unlike arm64, there are no reserved 0 bits beyond base and limit bitfield in
@@ -43,7 +43,7 @@ typedef struct {
     uint8_t pad[7];     /* Pad structure to 16 Bytes */
 } pr_t;
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* ARM_ARM32_MPU_H */
 
diff --git a/xen/arch/arm/include/asm/arm32/page.h b/xen/arch/arm/include/asm/arm32/page.h
index 6d1ff0636ce3..d3e86cb61e7c 100644
--- a/xen/arch/arm/include/asm/arm32/page.h
+++ b/xen/arch/arm/include/asm/arm32/page.h
@@ -1,7 +1,7 @@
 #ifndef __ARM_ARM32_PAGE_H__
 #define __ARM_ARM32_PAGE_H__
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 /* Inline ASM to invalidate dcache on register R (may be an inline asm operand) */
 #define __invalidate_dcache_one(R) STORE_CP32(R, DCIMVAC)
@@ -87,7 +87,7 @@ static inline uint64_t gva_to_ipa_par(vaddr_t va, unsigned int flags)
 
 #define clear_page(page) memset((void *)(page), 0, PAGE_SIZE)
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* __ARM_ARM32_PAGE_H__ */
 
diff --git a/xen/arch/arm/include/asm/arm32/processor.h b/xen/arch/arm/include/asm/arm32/processor.h
index 4e679f3273ab..254bc4867c64 100644
--- a/xen/arch/arm/include/asm/arm32/processor.h
+++ b/xen/arch/arm/include/asm/arm32/processor.h
@@ -3,7 +3,7 @@
 
 #define ACTLR_CAXX_SMP      (1<<6)
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 /* On stack VCPU state */
 struct cpu_user_regs
 {
diff --git a/xen/arch/arm/include/asm/arm32/sysregs.h b/xen/arch/arm/include/asm/arm32/sysregs.h
index ef1a870fd61e..33ac0c4fdb9c 100644
--- a/xen/arch/arm/include/asm/arm32/sysregs.h
+++ b/xen/arch/arm/include/asm/arm32/sysregs.h
@@ -25,11 +25,11 @@
 #define REGION_DATA_PRBAR       0x19    /* SH=11 AP=00 XN=1 */
 #define REGION_DEVICE_PRBAR     0x11    /* SH=10 AP=00 XN=1 */
 
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 
 #define WRITE_SYSREG_ASM(v, name) mcr CP32(v, name)
 
-#else /* __ASSEMBLY__ */
+#else /* __ASSEMBLER__ */
 
 /* C wrappers */
 #define READ_CP32(name...) ({                                   \
@@ -93,7 +93,7 @@
 /* MVFR2 is not defined on ARMv7 */
 #define MVFR2_MAYBE_UNDEFINED
 
-#endif /* !__ASSEMBLY__ */
+#endif /* !__ASSEMBLER__ */
 
 #endif /* __ASM_ARM_ARM32_SYSREGS_H */
 /*
diff --git a/xen/arch/arm/include/asm/arm64/efibind.h b/xen/arch/arm/include/asm/arm64/efibind.h
index a1323d452e2e..7ab00e4f55a4 100644
--- a/xen/arch/arm/include/asm/arm64/efibind.h
+++ b/xen/arch/arm/include/asm/arm64/efibind.h
@@ -31,7 +31,7 @@ Revision History
 
 #define EFI_STUB_ERROR      MAX_ADDRESS
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 //
 // Basic int types of various widths
 //
diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
index 17f62ccaf6ca..4f694190a8a3 100644
--- a/xen/arch/arm/include/asm/arm64/mpu.h
+++ b/xen/arch/arm/include/asm/arm64/mpu.h
@@ -3,7 +3,7 @@
 #ifndef ARM_ARM64_MPU_H
 #define ARM_ARM64_MPU_H
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #define MPU_REGION_RES0        (0xFFFFULL << 48)
 
@@ -42,7 +42,7 @@ typedef struct {
     uint8_t pad[15];    /* Pad structure to 32 Bytes */
 } pr_t;
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* ARM_ARM64_MPU_H */
 
diff --git a/xen/arch/arm/include/asm/arm64/page.h b/xen/arch/arm/include/asm/arm64/page.h
index e944985ee09d..f3ba30730b4a 100644
--- a/xen/arch/arm/include/asm/arm64/page.h
+++ b/xen/arch/arm/include/asm/arm64/page.h
@@ -1,7 +1,7 @@
 #ifndef __ARM_ARM64_PAGE_H__
 #define __ARM_ARM64_PAGE_H__
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <asm/alternative.h>
 
@@ -77,7 +77,7 @@ static inline uint64_t gva_to_ipa_par(vaddr_t va, unsigned int flags)
 
 extern void clear_page(void *to);
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* __ARM_ARM64_PAGE_H__ */
 
diff --git a/xen/arch/arm/include/asm/arm64/processor.h b/xen/arch/arm/include/asm/arm64/processor.h
index c749f80ad91b..0513015bbb83 100644
--- a/xen/arch/arm/include/asm/arm64/processor.h
+++ b/xen/arch/arm/include/asm/arm64/processor.h
@@ -1,7 +1,7 @@
 #ifndef __ASM_ARM_ARM64_PROCESSOR_H
 #define __ASM_ARM_ARM64_PROCESSOR_H
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 /* Anonymous union includes both 32- and 64-bit names (e.g., r0/x0). */
 
@@ -86,7 +86,7 @@ struct cpu_user_regs
 
 #undef __DECL_REG
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* __ASM_ARM_ARM64_PROCESSOR_H */
 /*
diff --git a/xen/arch/arm/include/asm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
index 7440d495e4fb..7dfd20414d7d 100644
--- a/xen/arch/arm/include/asm/arm64/sysregs.h
+++ b/xen/arch/arm/include/asm/arm64/sysregs.h
@@ -467,11 +467,11 @@
 #define REGION_DATA_PRBAR       0x32    /* SH=11 AP=00 XN=10 */
 #define REGION_DEVICE_PRBAR     0x22    /* SH=10 AP=00 XN=10 */
 
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 
 #define WRITE_SYSREG_ASM(v, name) "msr " __stringify(name,) #v
 
-#else /* __ASSEMBLY__ */
+#else /* __ASSEMBLER__ */
 
 /* Access to system registers */
 
@@ -492,7 +492,7 @@
 #define WRITE_SYSREG_LR(v, index)  WRITE_SYSREG(v, ICH_LR_REG(index))
 #define READ_SYSREG_LR(index)      READ_SYSREG(ICH_LR_REG(index))
 
-#endif /* !__ASSEMBLY__ */
+#endif /* !__ASSEMBLER__ */
 
 #endif /* _ASM_ARM_ARM64_SYSREGS_H */
 
diff --git a/xen/arch/arm/include/asm/config.h b/xen/arch/arm/include/asm/config.h
index f18825bc2d50..a077ec49b77e 100644
--- a/xen/arch/arm/include/asm/config.h
+++ b/xen/arch/arm/include/asm/config.h
@@ -44,7 +44,7 @@
 #define CONFIG_AEABI
 
 /* Linkage for ARM */
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 #define GLOBAL(name)                            \
   .globl name;                                  \
   name:
@@ -69,7 +69,7 @@
 #define watchdog_disable() ((void)0)
 #define watchdog_enable()  ((void)0)
 
-#if defined(__ASSEMBLY__) && !defined(LINKER_SCRIPT)
+#if defined(__ASSEMBLER__) && !defined(LINKER_SCRIPT)
 #include <asm/asm_defns.h>
 #include <asm/macros.h>
 #endif
diff --git a/xen/arch/arm/include/asm/cpufeature.h b/xen/arch/arm/include/asm/cpufeature.h
index b6df18801166..13353c8e1ad1 100644
--- a/xen/arch/arm/include/asm/cpufeature.h
+++ b/xen/arch/arm/include/asm/cpufeature.h
@@ -79,7 +79,7 @@
 
 #define ARM_NCAPS           18
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/types.h>
 #include <xen/lib.h>
@@ -461,7 +461,7 @@ extern struct cpuinfo_arm cpu_data[];
 
 extern struct cpuinfo_arm domain_cpuinfo;
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif
 /*
diff --git a/xen/arch/arm/include/asm/current.h b/xen/arch/arm/include/asm/current.h
index 0be7ad6ef956..8254363fda67 100644
--- a/xen/arch/arm/include/asm/current.h
+++ b/xen/arch/arm/include/asm/current.h
@@ -11,7 +11,7 @@
 #define CPUINFO_WORKAROUND_2_FLAG_SHIFT   0
 #define CPUINFO_WORKAROUND_2_FLAG (_AC(1, U) << CPUINFO_WORKAROUND_2_FLAG_SHIFT)
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 struct vcpu;
 
diff --git a/xen/arch/arm/include/asm/fixmap.h b/xen/arch/arm/include/asm/fixmap.h
index 0cb5d54d1c74..84d55e4c2885 100644
--- a/xen/arch/arm/include/asm/fixmap.h
+++ b/xen/arch/arm/include/asm/fixmap.h
@@ -20,7 +20,7 @@
 #define FIXADDR_START FIXMAP_ADDR(0)
 #define FIXADDR_TOP FIXMAP_ADDR(FIX_LAST + 1)
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 /*
  * Direct access to xen_fixmap[] should only happen when {set,
@@ -43,6 +43,6 @@ static inline unsigned int virt_to_fix(vaddr_t vaddr)
     return ((vaddr - FIXADDR_START) >> PAGE_SHIFT);
 }
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* __ASM_FIXMAP_H */
diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.h
index 3947c8634d22..8e713aa4773a 100644
--- a/xen/arch/arm/include/asm/gic.h
+++ b/xen/arch/arm/include/asm/gic.h
@@ -158,7 +158,7 @@
 #define GICH_LR_PENDING         1
 #define GICH_LR_ACTIVE          2
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 #include <xen/device_tree.h>
 #include <xen/irq.h>
 
@@ -479,7 +479,7 @@ unsigned long gic_get_hwdom_madt_size(const struct domain *d);
 int gic_map_hwdom_extra_mappings(struct domain *d);
 int gic_iomem_deny_access(struct domain *d);
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 #endif
 
 /*
diff --git a/xen/arch/arm/include/asm/insn.h b/xen/arch/arm/include/asm/insn.h
index 27271e95f9e2..db32babd23f6 100644
--- a/xen/arch/arm/include/asm/insn.h
+++ b/xen/arch/arm/include/asm/insn.h
@@ -1,7 +1,7 @@
 #ifndef __ARCH_ARM_INSN
 #define __ARCH_ARM_INSN
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/types.h>
 
@@ -13,7 +13,7 @@
 # error "unknown ARM variant"
 #endif
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 /* On ARM32,64 instructions are always 4 bytes long. */
 #define ARCH_PATCH_INSN_SIZE 4
diff --git a/xen/arch/arm/include/asm/lpae.h b/xen/arch/arm/include/asm/lpae.h
index 4a1679cb3334..8e062c9e37f5 100644
--- a/xen/arch/arm/include/asm/lpae.h
+++ b/xen/arch/arm/include/asm/lpae.h
@@ -1,7 +1,7 @@
 #ifndef __ARM_LPAE_H__
 #define __ARM_LPAE_H__
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/page-defs.h>
 #include <xen/mm-frame.h>
@@ -176,7 +176,7 @@ static inline bool lpae_is_superpage(lpae_t pte, unsigned int level)
  */
 lpae_t mfn_to_xen_entry(mfn_t mfn, unsigned int attr);
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 /*
  * AArch64 supports pages with different sizes (4K, 16K, and 64K).
diff --git a/xen/arch/arm/include/asm/macros.h b/xen/arch/arm/include/asm/macros.h
index dc791245df76..9e8793107e1b 100644
--- a/xen/arch/arm/include/asm/macros.h
+++ b/xen/arch/arm/include/asm/macros.h
@@ -1,7 +1,7 @@
 #ifndef __ASM_MACROS_H
 #define __ASM_MACROS_H
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 # error "This file should only be included in assembly file"
 #endif
 
diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
index 5053edaf63d6..72fa5b00b861 100644
--- a/xen/arch/arm/include/asm/mpu.h
+++ b/xen/arch/arm/include/asm/mpu.h
@@ -25,7 +25,7 @@
 
 #define PRENR_MASK  GENMASK(31, 0)
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 /*
  * Set base address of MPU protection region.
@@ -87,7 +87,7 @@ static inline bool region_is_valid(const pr_t *pr)
     return pr->prlar.reg.en;
 }
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* __ARM_MPU_H__ */
 
diff --git a/xen/arch/arm/include/asm/page.h b/xen/arch/arm/include/asm/page.h
index 03bdf52ce023..90100a96dfda 100644
--- a/xen/arch/arm/include/asm/page.h
+++ b/xen/arch/arm/include/asm/page.h
@@ -121,7 +121,7 @@
 #define GV2M_WRITE (1u<<0)
 #define GV2M_EXEC  (1u<<1)
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/errno.h>
 #include <xen/types.h>
@@ -320,7 +320,7 @@ static inline int gva_to_ipa(vaddr_t va, paddr_t *paddr, unsigned int flags)
 /* Bits in the PAR returned by va_to_par */
 #define PAR_FAULT 0x1
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* __ARM_PAGE_H__ */
 
diff --git a/xen/arch/arm/include/asm/pl011-uart.h b/xen/arch/arm/include/asm/pl011-uart.h
index 27c9bfa444cb..a991b274cd4b 100644
--- a/xen/arch/arm/include/asm/pl011-uart.h
+++ b/xen/arch/arm/include/asm/pl011-uart.h
@@ -21,7 +21,7 @@
 #ifndef __ASM_ARM_PL011_H
 #define __ASM_ARM_PL011_H
 
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 
 /*
  * PL011 registers are 8/16-bit wide. However, there are implementations that
@@ -38,7 +38,7 @@
 #define PL011_LDRH ldrh
 #endif
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 /* PL011 register addresses */
 #define DR     (0x00)
diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
index 92c8bc1a3125..ed5674636816 100644
--- a/xen/arch/arm/include/asm/processor.h
+++ b/xen/arch/arm/include/asm/processor.h
@@ -1,7 +1,7 @@
 #ifndef __ASM_ARM_PROCESSOR_H
 #define __ASM_ARM_PROCESSOR_H
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 #include <xen/types.h>
 #endif
 #include <public/arch-arm.h>
@@ -463,7 +463,7 @@
 #define MM64_VMID_16_BITS_SUPPORT   0x2
 #endif
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 extern register_t __cpu_logical_map[];
 #define cpu_logical_map(cpu) __cpu_logical_map[cpu]
@@ -570,7 +570,7 @@ extern register_t __cpu_logical_map[];
 # error "unknown ARM variant"
 #endif
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 void noreturn panic_PAR(uint64_t par);
 
 /* Debugging functions are declared with external linkage to aid development. */
@@ -631,7 +631,7 @@ register_t get_default_cptr_flags(void);
         WRITE_SYSREG((v)->arch.hcr_el2, HCR_EL2);   \
     } while (0)
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 #endif /* __ASM_ARM_PROCESSOR_H */
 /*
  * Local variables:
diff --git a/xen/arch/arm/include/asm/regs.h b/xen/arch/arm/include/asm/regs.h
index 0d9f239a7782..490db9056d12 100644
--- a/xen/arch/arm/include/asm/regs.h
+++ b/xen/arch/arm/include/asm/regs.h
@@ -3,7 +3,7 @@
 
 #define PSR_MODE_MASK 0x1f
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/bug.h>
 #include <xen/types.h>
diff --git a/xen/arch/arm/include/asm/smccc.h b/xen/arch/arm/include/asm/smccc.h
index a289c48b7ffd..441b3ab65dee 100644
--- a/xen/arch/arm/include/asm/smccc.h
+++ b/xen/arch/arm/include/asm/smccc.h
@@ -54,7 +54,7 @@
 
 #define ARM_SMCCC_FUNC_MASK             _AC(0xFFFF,U)
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 extern uint32_t smccc_ver;
 
@@ -307,7 +307,7 @@ void arm_smccc_1_2_smc(const struct arm_smccc_1_2_regs *args,
                        struct arm_smccc_1_2_regs *res);
 #endif /* CONFIG_ARM_64 */
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 /*
  * Construct function identifier from call type (fast or standard),
diff --git a/xen/arch/arm/include/asm/smp.h b/xen/arch/arm/include/asm/smp.h
index f5c829e2296e..16ae0844e7b9 100644
--- a/xen/arch/arm/include/asm/smp.h
+++ b/xen/arch/arm/include/asm/smp.h
@@ -1,7 +1,7 @@
 #ifndef __ASM_SMP_H
 #define __ASM_SMP_H
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 #include <xen/percpu.h>
 #include <xen/cpumask.h>
 #include <asm/current.h>
diff --git a/xen/arch/arm/include/asm/sysregs.h b/xen/arch/arm/include/asm/sysregs.h
index 5c2d362be3d8..f6af987ef5e9 100644
--- a/xen/arch/arm/include/asm/sysregs.h
+++ b/xen/arch/arm/include/asm/sysregs.h
@@ -9,7 +9,7 @@
 # error "unknown ARM variant"
 #endif
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <asm/alternative.h>
 
@@ -33,7 +33,7 @@ static inline register_t read_sysreg_par(void)
     return par_el1;
 }
 
-#endif /*  !__ASSEMBLY__  */
+#endif /*  !__ASSEMBLER__  */
 
 #endif /* __ASM_ARM_SYSREGS_H */
 /*
diff --git a/xen/arch/ppc/include/asm/current.h b/xen/arch/ppc/include/asm/current.h
index e329a548e61e..cd7af3e0c56a 100644
--- a/xen/arch/ppc/include/asm/current.h
+++ b/xen/arch/ppc/include/asm/current.h
@@ -6,7 +6,7 @@
 
 #include <asm/processor.h>
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 struct vcpu;
 
@@ -44,6 +44,6 @@ static inline struct cpu_info *get_cpu_info(void)
 
 #define get_per_cpu_offset()    smp_processor_id() /* TODO: Fix this */
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* __ASM_PPC_CURRENT_H__ */
diff --git a/xen/arch/ppc/include/asm/opal-api.h b/xen/arch/ppc/include/asm/opal-api.h
index 8790246f48ce..a83184a5c2e6 100644
--- a/xen/arch/ppc/include/asm/opal-api.h
+++ b/xen/arch/ppc/include/asm/opal-api.h
@@ -246,7 +246,7 @@
 #define OPAL_CONFIG_IDLE_UNDO		0
 #define OPAL_CONFIG_IDLE_APPLY		1
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/types.h>
 
@@ -1185,6 +1185,6 @@ struct opal_mpipl_fadump {
 	struct	opal_mpipl_region region[];
 } __packed;
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* __OPAL_API_H */
diff --git a/xen/arch/ppc/include/asm/processor.h b/xen/arch/ppc/include/asm/processor.h
index 50161cc32d50..242346cab957 100644
--- a/xen/arch/ppc/include/asm/processor.h
+++ b/xen/arch/ppc/include/asm/processor.h
@@ -134,7 +134,7 @@
 /* Base address of interrupt vector table when LPCR[AIL]=3 */
 #define AIL_VECTOR_BASE _AC(0xc000000000004000, UL)
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/types.h>
 
@@ -221,6 +221,6 @@ static inline void noreturn die(void)
 
 #define dump_execution_state() run_in_exception_handler(show_execution_state)
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* _ASM_PPC_PROCESSOR_H */
diff --git a/xen/arch/riscv/include/asm/asm.h b/xen/arch/riscv/include/asm/asm.h
index 8b0403e2e471..e147b6f05388 100644
--- a/xen/arch/riscv/include/asm/asm.h
+++ b/xen/arch/riscv/include/asm/asm.h
@@ -6,7 +6,7 @@
 #ifndef ASM__RISCV__ASM_H
 #define ASM__RISCV__ASM_H
 
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 #include <xen/linkage.h>
 #define __ASM_STR(x)	x
 #else
@@ -25,13 +25,13 @@
 #define REG_S		__REG_SEL(sd, sw)
 
 #if __SIZEOF_POINTER__ == 8
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 #define RISCV_PTR		.dword
 #else
 #define RISCV_PTR		".dword"
 #endif
 #elif __SIZEOF_POINTER__ == 4
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 #define RISCV_PTR		.word
 #else
 #define RISCV_PTR		".word"
diff --git a/xen/arch/riscv/include/asm/bug.h b/xen/arch/riscv/include/asm/bug.h
index c395b809c60d..6ec8adc528a9 100644
--- a/xen/arch/riscv/include/asm/bug.h
+++ b/xen/arch/riscv/include/asm/bug.h
@@ -7,7 +7,7 @@
 #ifndef ASM__RISCV__BUG_H
 #define ASM__RISCV__BUG_H
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #define BUG_INSTR "unimp"
 
@@ -30,6 +30,6 @@
 #define GET_INSN_LENGTH(insn)                               \
     (((insn) & INSN_LENGTH_MASK) == INSN_LENGTH_32 ? 4 : 2) \
 
-#endif /* !__ASSEMBLY__ */
+#endif /* !__ASSEMBLER__ */
 
 #endif /* ASM__RISCV__BUG_H */
diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h
index e150f28f536d..1e08d3bf78be 100644
--- a/xen/arch/riscv/include/asm/config.h
+++ b/xen/arch/riscv/include/asm/config.h
@@ -137,7 +137,7 @@
 #define INVALID_VCPU_ID MAX_VIRT_CPUS
 
 /* Linkage for RISCV */
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 #define CODE_FILL /* empty */
 #endif
 
@@ -147,7 +147,7 @@
 
 #define IDENT_AREA_SIZE 64
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 extern unsigned long phys_offset; /* = load_start - XEN_VIRT_START */
 #endif
 
diff --git a/xen/arch/riscv/include/asm/cpufeature.h b/xen/arch/riscv/include/asm/cpufeature.h
index 768b84b769be..d42d7b294ef1 100644
--- a/xen/arch/riscv/include/asm/cpufeature.h
+++ b/xen/arch/riscv/include/asm/cpufeature.h
@@ -2,7 +2,7 @@
 #ifndef ASM__RISCV__CPUFEATURE_H
 #define ASM__RISCV__CPUFEATURE_H
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/stdbool.h>
 
@@ -46,7 +46,7 @@ void riscv_fill_hwcap(void);
 bool riscv_isa_extension_available(const unsigned long *isa_bitmap,
                                    enum riscv_isa_ext_id id);
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* ASM__RISCV__CPUFEATURE_H */
 
diff --git a/xen/arch/riscv/include/asm/csr.h b/xen/arch/riscv/include/asm/csr.h
index 775f1f170f37..01876f828981 100644
--- a/xen/arch/riscv/include/asm/csr.h
+++ b/xen/arch/riscv/include/asm/csr.h
@@ -10,7 +10,7 @@
 #include <xen/const.h>
 #include <asm/riscv_encoding.h>
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #define csr_read(csr)                                           \
 ({                                                              \
@@ -78,6 +78,6 @@
                            : "memory" );                        \
 })
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* ASM__RISCV__CSR_H */
diff --git a/xen/arch/riscv/include/asm/current.h b/xen/arch/riscv/include/asm/current.h
index 1485bceea414..0c3ea70c2ec8 100644
--- a/xen/arch/riscv/include/asm/current.h
+++ b/xen/arch/riscv/include/asm/current.h
@@ -9,7 +9,7 @@
 
 #include <asm/processor.h>
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 register struct pcpu_info *tp asm ( "tp" );
 
@@ -52,6 +52,6 @@ DECLARE_PER_CPU(struct vcpu *, curr_vcpu);
 
 #define get_per_cpu_offset() __per_cpu_offset[smp_processor_id()]
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* ASM__RISCV__CURRENT_H */
diff --git a/xen/arch/riscv/include/asm/fixmap.h b/xen/arch/riscv/include/asm/fixmap.h
index 5990c964aa2f..085d135c15d4 100644
--- a/xen/arch/riscv/include/asm/fixmap.h
+++ b/xen/arch/riscv/include/asm/fixmap.h
@@ -23,7 +23,7 @@
 #define FIXADDR_START FIXMAP_ADDR(0)
 #define FIXADDR_TOP FIXMAP_ADDR(FIX_LAST + 1)
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 /*
  * Direct access to xen_fixmap[] should only happen when {set,
@@ -46,6 +46,6 @@ static inline unsigned int virt_to_fix(vaddr_t vaddr)
     return ((vaddr - FIXADDR_START) >> PAGE_SHIFT);
 }
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* ASM__RISCV__FIXMAP_H */
diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
index ddcc4da0a3d5..7fde99f91617 100644
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -3,7 +3,7 @@
 #ifndef ASM__RISCV__PAGE_H
 #define ASM__RISCV__PAGE_H
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/bug.h>
 #include <xen/const.h>
@@ -213,6 +213,6 @@ static inline pte_t pte_from_mfn(mfn_t mfn, pte_attr_t flags)
 
 pte_t pt_walk(vaddr_t va, unsigned int *pte_level);
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* ASM__RISCV__PAGE_H */
diff --git a/xen/arch/riscv/include/asm/processor.h b/xen/arch/riscv/include/asm/processor.h
index 39696fb58dc6..2502045642d8 100644
--- a/xen/arch/riscv/include/asm/processor.h
+++ b/xen/arch/riscv/include/asm/processor.h
@@ -10,7 +10,7 @@
 #ifndef ASM__RISCV__PROCESSOR_H
 #define ASM__RISCV__PROCESSOR_H
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 /* On stack VCPU state */
 struct cpu_user_regs
@@ -93,7 +93,7 @@ static inline void sfence_vma(void)
 
 #define dump_execution_state() run_in_exception_handler(show_execution_state)
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* ASM__RISCV__PROCESSOR_H */
 
diff --git a/xen/arch/riscv/include/asm/regs.h b/xen/arch/riscv/include/asm/regs.h
index 218b9455bd5f..531958f3d748 100644
--- a/xen/arch/riscv/include/asm/regs.h
+++ b/xen/arch/riscv/include/asm/regs.h
@@ -2,7 +2,7 @@
 #ifndef ASM__RISCV__REGS_H
 #define ASM__RISCV__REGS_H
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/bug.h>
 
@@ -15,7 +15,7 @@ static inline bool guest_mode(const struct cpu_user_regs *r)
     BUG_ON("unimplemented");
 }
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* ASM__RISCV__REGS_H */
 
diff --git a/xen/arch/riscv/include/asm/system.h b/xen/arch/riscv/include/asm/system.h
index 7b78d11e04dd..f33af64fd2ec 100644
--- a/xen/arch/riscv/include/asm/system.h
+++ b/xen/arch/riscv/include/asm/system.h
@@ -7,7 +7,7 @@
 
 #include <asm/csr.h>
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #define RISCV_FENCE(p, s) \
     __asm__ __volatile__ ( "fence " #p "," #s : : : "memory" )
@@ -76,7 +76,7 @@ static inline bool local_irq_is_enabled(void)
 
 #define arch_fetch_and_add(x, v) __sync_fetch_and_add(x, v)
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* ASM__RISCV__SYSTEM_H */
 
diff --git a/xen/arch/riscv/include/asm/traps.h b/xen/arch/riscv/include/asm/traps.h
index 72b8f6c475cc..21fa3c3259b3 100644
--- a/xen/arch/riscv/include/asm/traps.h
+++ b/xen/arch/riscv/include/asm/traps.h
@@ -5,12 +5,12 @@
 
 #include <asm/processor.h>
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 void do_trap(struct cpu_user_regs *cpu_regs);
 void handle_trap(void);
 void trap_init(void);
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* ASM__RISCV__TRAPS_H */
diff --git a/xen/arch/x86/boot/video.h b/xen/arch/x86/boot/video.h
index 1203515f9e5b..7c2848791799 100644
--- a/xen/arch/x86/boot/video.h
+++ b/xen/arch/x86/boot/video.h
@@ -28,7 +28,7 @@
 /* The "recalculate timings" flag */
 #define VIDEO_RECALC        0x8000
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 struct boot_video_info {
     uint8_t  orig_x;             /* 0x00 */
     uint8_t  orig_y;             /* 0x01 */
@@ -69,6 +69,6 @@ struct boot_video_info {
 };
 
 extern struct boot_video_info boot_vid_info;
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* __BOOT_VIDEO_H__ */
diff --git a/xen/arch/x86/include/asm/alternative-asm.h b/xen/arch/x86/include/asm/alternative-asm.h
index 3eb0f4e8a02a..d5c7f18160d9 100644
--- a/xen/arch/x86/include/asm/alternative-asm.h
+++ b/xen/arch/x86/include/asm/alternative-asm.h
@@ -3,7 +3,7 @@
 
 #include <asm/nops.h>
 
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 
 /*
  * Issue one struct alt_instr descriptor entry (need to put it into
@@ -120,7 +120,7 @@
 #undef decl_orig
 #undef as_true
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 #endif /* _ASM_X86_ALTERNATIVE_ASM_H_ */
 
 /*
diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/include/asm/alternative.h
index 0482bbf7cbf1..18109e3dc594 100644
--- a/xen/arch/x86/include/asm/alternative.h
+++ b/xen/arch/x86/include/asm/alternative.h
@@ -8,7 +8,7 @@
 #define ALT_FLAG_NOT (1 << 15)
 #define ALT_NOT(x) (ALT_FLAG_NOT | (x))
 
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 #include <asm/alternative-asm.h>
 #else
 
@@ -175,6 +175,6 @@ extern void alternative_instructions(void);
 /* Use this macro(s) if you need more than one output parameter. */
 #define ASM_OUTPUT2(a...) a
 
-#endif /*  !__ASSEMBLY__  */
+#endif /*  !__ASSEMBLER__  */
 
 #endif /* __X86_ALTERNATIVE_H__ */
diff --git a/xen/arch/x86/include/asm/asm_defns.h b/xen/arch/x86/include/asm/asm_defns.h
index 72a0082d319d..9b75c9cae3d4 100644
--- a/xen/arch/x86/include/asm/asm_defns.h
+++ b/xen/arch/x86/include/asm/asm_defns.h
@@ -12,7 +12,7 @@
 #include <asm/cpufeature.h>
 #include <asm/alternative.h>
 
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 #include <xen/linkage.h>
 #include <asm/asm-defns.h>
 #ifndef CONFIG_INDIRECT_THUNK
@@ -24,7 +24,7 @@ asm ( "\t.equ CONFIG_INDIRECT_THUNK, "
       __stringify(IS_ENABLED(CONFIG_INDIRECT_THUNK)) );
 #endif
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 /*
  * This output constraint should be used for any inline asm which has a "call"
@@ -57,14 +57,14 @@ register unsigned long current_stack_pointer asm("rsp");
 #define ASSERT_INTERRUPTS_DISABLED \
     ASSERT_INTERRUPT_STATUS(z, "INTERRUPTS DISABLED")
 
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 # define _ASM_EX(p) p-.
 #else
 # define _ASM_EX(p) #p "-."
 #endif
 
 /* Exception table entry */
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 # define _ASM__EXTABLE(sfx, from, to)             \
     .section .ex_table##sfx, "a" ;                \
     .balign 4 ;                                   \
@@ -81,7 +81,7 @@ register unsigned long current_stack_pointer asm("rsp");
 #define _ASM_EXTABLE(from, to)     _ASM__EXTABLE(, from, to)
 #define _ASM_PRE_EXTABLE(from, to) _ASM__EXTABLE(.pre, from, to)
 
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 
 .macro BUILD_BUG_ON condstr, cond:vararg
         .if \cond
@@ -221,7 +221,7 @@ static always_inline void stac(void)
 }
 #endif
 
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 .macro SAVE_ALL compat=0
         addq  $-(UREGS_error_code-UREGS_r15), %rsp
         cld
diff --git a/xen/arch/x86/include/asm/bug.h b/xen/arch/x86/include/asm/bug.h
index e748b6c2f269..3a4f41e38032 100644
--- a/xen/arch/x86/include/asm/bug.h
+++ b/xen/arch/x86/include/asm/bug.h
@@ -19,12 +19,12 @@
  *  ...
  */
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #define BUG_INSTR       "ud2"
 #define BUG_ASM_CONST   "c"
 
-#else  /* !__ASSEMBLY__ */
+#else  /* !__ASSEMBLER__ */
 
 /*
  * Construct a bugframe, suitable for using in assembly code.  Should always
@@ -66,6 +66,6 @@
 #define ASSERT_FAILED(msg)                                      \
      BUG_FRAME BUGFRAME_assert, __LINE__, __FILE__, 1, msg
 
-#endif /* !__ASSEMBLY__ */
+#endif /* !__ASSEMBLER__ */
 
 #endif /* __X86_BUG_H__ */
diff --git a/xen/arch/x86/include/asm/cache.h b/xen/arch/x86/include/asm/cache.h
index f15d10dc7f2d..e17a10b49ee5 100644
--- a/xen/arch/x86/include/asm/cache.h
+++ b/xen/arch/x86/include/asm/cache.h
@@ -9,7 +9,7 @@
 #define L1_CACHE_SHIFT	(CONFIG_X86_L1_CACHE_SHIFT)
 #define L1_CACHE_BYTES	(1 << L1_CACHE_SHIFT)
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 void cache_flush(const void *addr, unsigned int size);
 void cache_writeback(const void *addr, unsigned int size);
diff --git a/xen/arch/x86/include/asm/config.h b/xen/arch/x86/include/asm/config.h
index 3553bf89dc97..156369695442 100644
--- a/xen/arch/x86/include/asm/config.h
+++ b/xen/arch/x86/include/asm/config.h
@@ -32,7 +32,7 @@
 #define OPT_CONSOLE_STR "vga"
 
 /* Linkage for x86 */
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 #define CODE_FILL 0x90
 #endif
 
@@ -195,7 +195,7 @@
 #endif
 #define DIRECTMAP_VIRT_END      (DIRECTMAP_VIRT_START + DIRECTMAP_SIZE)
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #ifdef CONFIG_PV32
 
@@ -237,7 +237,7 @@
 #define __OS          "q"  /* Operation Suffix */
 #define __OP          "r"  /* Operand Prefix */
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 extern unsigned long xen_phys_start;
 #endif
 
diff --git a/xen/arch/x86/include/asm/cpufeature.h b/xen/arch/x86/include/asm/cpufeature.h
index 0b764b9fb97b..28c4085cc786 100644
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -10,7 +10,7 @@
 #include <xen/const.h>
 #include <xen/macros.h>
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 #include <asm/cpuid.h>
 #else
 #include <asm/cpufeatureset.h>
@@ -38,7 +38,7 @@
 #define VFM_FAMILY(vfm) MASK_EXTR(vfm, VFM_FAMILY_MASK)
 #define VFM_VENDOR(vfm) MASK_EXTR(vfm, VFM_VENDOR_MASK)
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 struct cpuinfo_x86 {
     /* TODO: Phase out the x86 prefixed names. */
@@ -349,7 +349,7 @@ struct cpuid4_info {
 };
 
 int cpuid4_cache_lookup(int index, struct cpuid4_info *this_leaf);
-#endif /* !__ASSEMBLY__ */
+#endif /* !__ASSEMBLER__ */
 
 #endif /* __ASM_I386_CPUFEATURE_H */
 
diff --git a/xen/arch/x86/include/asm/cpufeatureset.h b/xen/arch/x86/include/asm/cpufeatureset.h
index a9c51bc514a8..e12b54ab2223 100644
--- a/xen/arch/x86/include/asm/cpufeatureset.h
+++ b/xen/arch/x86/include/asm/cpufeatureset.h
@@ -1,7 +1,7 @@
 #ifndef __XEN_X86_CPUFEATURESET_H__
 #define __XEN_X86_CPUFEATURESET_H__
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/stringify.h>
 
@@ -17,13 +17,13 @@ enum {
 #include <public/arch-x86/cpufeatureset.h>
 #include <asm/cpufeatures.h>
 
-#else /* !__ASSEMBLY__ */
+#else /* !__ASSEMBLER__ */
 
 #define XEN_CPUFEATURE(name, value) .equ X86_FEATURE_##name, value
 #include <public/arch-x86/cpufeatureset.h>
 #include <asm/cpufeatures.h>
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #undef XEN_CPUFEATURE
 
diff --git a/xen/arch/x86/include/asm/desc.h b/xen/arch/x86/include/asm/desc.h
index 85fae6b2f9ae..dcbdac3ff7d4 100644
--- a/xen/arch/x86/include/asm/desc.h
+++ b/xen/arch/x86/include/asm/desc.h
@@ -42,7 +42,7 @@
 #define LDT_SELECTOR     (LDT_ENTRY << 3)
 #define PER_CPU_SELECTOR (PER_CPU_GDT_ENTRY << 3)
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #define GUEST_KERNEL_RPL(d) (is_pv_32bit_domain(d) ? 1 : 3)
 
@@ -76,7 +76,7 @@
                 FLAT_COMPAT_KERNEL_CS)) ||                              \
      ((sel) & 4))                               /* LDT seg? */
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 /* These are bitmasks for the high 32 bits of a descriptor table entry. */
 #define _SEGMENT_TYPE    (15<< 8)
@@ -92,7 +92,7 @@
 #define _SEGMENT_DB      ( 1<<22) /* 16- or 32-bit segment */
 #define _SEGMENT_G       ( 1<<23) /* Granularity */
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 /* System Descriptor types for GDT and IDT entries. */
 #define SYS_DESC_tss16_avail  1
@@ -162,6 +162,6 @@ static inline void ltr(unsigned int sel)
     __asm__ __volatile__ ( "ltr %w0" :: "rm" (sel) : "memory" );
 }
 
-#endif /* !__ASSEMBLY__ */
+#endif /* !__ASSEMBLER__ */
 
 #endif /* __ARCH_DESC_H */
diff --git a/xen/arch/x86/include/asm/edd.h b/xen/arch/x86/include/asm/edd.h
index afaa23732a38..ebd46171c195 100644
--- a/xen/arch/x86/include/asm/edd.h
+++ b/xen/arch/x86/include/asm/edd.h
@@ -23,7 +23,7 @@
 #ifndef __XEN_EDD_H__
 #define __XEN_EDD_H__
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 struct __packed edd_info {
     /* Int13, Fn48: Check Extensions Present. */
@@ -149,7 +149,7 @@ extern u8 boot_mbr_signature_nr;
 extern struct edd_info boot_edd_info[];
 extern u8 boot_edd_info_nr;
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 /* Maximum number of EDD information structures at boot_edd_info. */
 #define EDD_INFO_MAX            6
diff --git a/xen/arch/x86/include/asm/fixmap.h b/xen/arch/x86/include/asm/fixmap.h
index 516ec3fa6c95..5b9e1a240153 100644
--- a/xen/arch/x86/include/asm/fixmap.h
+++ b/xen/arch/x86/include/asm/fixmap.h
@@ -17,7 +17,7 @@
 #define FIXADDR_TOP (VMAP_VIRT_END - PAGE_SIZE)
 #define FIXADDR_X_TOP (XEN_VIRT_END - PAGE_SIZE)
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/acpi.h>
 #include <xen/pfn.h>
@@ -118,6 +118,6 @@ extern void __set_fixmap_x(
 #define __fix_x_to_virt(x) (FIXADDR_X_TOP - ((x) << PAGE_SHIFT))
 #define fix_x_to_virt(x)   ((void *)__fix_x_to_virt(x))
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif
diff --git a/xen/arch/x86/include/asm/ldt.h b/xen/arch/x86/include/asm/ldt.h
index 58e3e042fcf9..f08e0230906a 100644
--- a/xen/arch/x86/include/asm/ldt.h
+++ b/xen/arch/x86/include/asm/ldt.h
@@ -2,7 +2,7 @@
 #ifndef __ARCH_LDT_H
 #define __ARCH_LDT_H
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 static inline void load_LDT(struct vcpu *v)
 {
@@ -20,7 +20,7 @@ static inline void load_LDT(struct vcpu *v)
     }
 }
 
-#endif /* !__ASSEMBLY__ */
+#endif /* !__ASSEMBLER__ */
 
 #endif
 
diff --git a/xen/arch/x86/include/asm/machine_kexec.h b/xen/arch/x86/include/asm/machine_kexec.h
index d4880818c1d9..3e189acf2464 100644
--- a/xen/arch/x86/include/asm/machine_kexec.h
+++ b/xen/arch/x86/include/asm/machine_kexec.h
@@ -3,7 +3,7 @@
 
 #define KEXEC_RELOC_FLAG_COMPAT 0x1 /* 32-bit image */
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 extern void kexec_reloc(unsigned long reloc_code, unsigned long reloc_pt,
                         unsigned long ind_maddr, unsigned long entry_maddr,
diff --git a/xen/arch/x86/include/asm/nops.h b/xen/arch/x86/include/asm/nops.h
index 2724a9862e6b..32a05c88133f 100644
--- a/xen/arch/x86/include/asm/nops.h
+++ b/xen/arch/x86/include/asm/nops.h
@@ -47,7 +47,7 @@
 #define P6_NOP8 0x0f,0x1f,0x84,0x00,0,0,0,0
 #define P6_NOP9 0x66,0x0f,0x1f,0x84,0x00,0,0,0,0
 
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 #define _ASM_MK_NOP(x) .byte x
 #else
 #define _ASM_MK_NOP(x) ".byte " __stringify(x) "\n"
diff --git a/xen/arch/x86/include/asm/page.h b/xen/arch/x86/include/asm/page.h
index 65a01f240213..23e06d39ad84 100644
--- a/xen/arch/x86/include/asm/page.h
+++ b/xen/arch/x86/include/asm/page.h
@@ -8,7 +8,7 @@
 #define PAGE_ORDER_2M       9
 #define PAGE_ORDER_1G       18
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 # include <xen/types.h>
 # include <xen/lib.h>
 #endif
@@ -107,7 +107,7 @@
 #define l4e_from_mfn(m, f) l4e_from_pfn(mfn_x(m), f)
 
 /* Construct a pte from a physical address and access flags. */
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 static inline l1_pgentry_t l1e_from_paddr(paddr_t pa, unsigned int flags)
 {
     ASSERT((pa & ~(PADDR_MASK & PAGE_MASK)) == 0);
@@ -128,7 +128,7 @@ static inline l4_pgentry_t l4e_from_paddr(paddr_t pa, unsigned int flags)
     ASSERT((pa & ~(PADDR_MASK & PAGE_MASK)) == 0);
     return (l4_pgentry_t) { pa | put_pte_flags(flags) };
 }
-#endif /* !__ASSEMBLY__ */
+#endif /* !__ASSEMBLER__ */
 
 /* Construct a pte from its direct integer representation. */
 #define l1e_from_intpte(intpte)    ((l1_pgentry_t) { (intpte_t)(intpte) })
@@ -204,7 +204,7 @@ static inline l4_pgentry_t l4e_from_paddr(paddr_t pa, unsigned int flags)
 #define pgentry_ptr_to_slot(_p)    \
     (((unsigned long)(_p) & ~PAGE_MASK) / sizeof(*(_p)))
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 /* Page-table type. */
 typedef struct { u64 pfn; } pagetable_t;
@@ -270,7 +270,7 @@ void scrub_page_cold(void *ptr);
 #define vmap_to_mfn(va)     xen_map_to_mfn((unsigned long)(va))
 #define vmap_to_page(va)    mfn_to_page(vmap_to_mfn(va))
 
-#endif /* !defined(__ASSEMBLY__) */
+#endif /* !defined(__ASSEMBLER__) */
 
 /* Where to find each level of the linear mapping */
 #define __linear_l1_table ((l1_pgentry_t *)(LINEAR_PT_VIRT_START))
@@ -282,7 +282,7 @@ void scrub_page_cold(void *ptr);
  ((l4_pgentry_t *)(__linear_l3_table + l3_linear_offset(LINEAR_PT_VIRT_START)))
 
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 extern root_pgentry_t idle_pg_table[ROOT_PAGETABLE_ENTRIES];
 extern l2_pgentry_t  *compat_idle_pg_table_l2;
 extern unsigned int   m2p_compat_vstart;
@@ -293,7 +293,7 @@ extern l2_pgentry_t l2_directmap[4*L2_PAGETABLE_ENTRIES];
 extern l1_pgentry_t l1_fixmap[L1_PAGETABLE_ENTRIES];
 void paging_init(void);
 void efi_update_l4_pgtable(unsigned int l4idx, l4_pgentry_t l4e);
-#endif /* !defined(__ASSEMBLY__) */
+#endif /* !defined(__ASSEMBLER__) */
 
 #define _PAGE_NONE     _AC(0x000,U)
 #define _PAGE_PRESENT  _AC(0x001,U)
@@ -313,7 +313,7 @@ void efi_update_l4_pgtable(unsigned int l4idx, l4_pgentry_t l4e);
 #define _PAGE_PSE_PAT  _AC(0x1000,U)
 #define _PAGE_AVAIL_HIGH (_AC(0x7ff, U) << 12)
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 /* Dependency on NX being available can't be expressed. */
 #define _PAGE_NX       (cpu_has_nx ? _PAGE_NX_BIT : 0)
 #endif
@@ -354,7 +354,7 @@ void efi_update_l4_pgtable(unsigned int l4idx, l4_pgentry_t l4e);
 
 #define MAP_SMALL_PAGES _PAGE_AVAIL0 /* don't use superpages mappings */
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 /* Convert between PAT/PCD/PWT embedded in PTE flags and 3-bit cacheattr. */
 static inline unsigned int pte_flags_to_cacheattr(unsigned int flags)
@@ -391,7 +391,7 @@ static inline void invalidate_icache(void)
  */
 }
 
-#endif /* !__ASSEMBLY__ */
+#endif /* !__ASSEMBLER__ */
 
 #endif /* __X86_PAGE_H__ */
 
diff --git a/xen/arch/x86/include/asm/processor.h b/xen/arch/x86/include/asm/processor.h
index 2e087c625770..cf614bd8c678 100644
--- a/xen/arch/x86/include/asm/processor.h
+++ b/xen/arch/x86/include/asm/processor.h
@@ -4,7 +4,7 @@
 #ifndef __ASM_X86_PROCESSOR_H
 #define __ASM_X86_PROCESSOR_H
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 #include <xen/types.h>
 #include <xen/smp.h>
 #include <xen/percpu.h>
@@ -75,7 +75,7 @@
                      (_AC(X86_MT_UC,  ULL) << 0x30) | \
                      (_AC(X86_MT_UC,  ULL) << 0x38))
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 struct domain;
 struct vcpu;
@@ -435,7 +435,7 @@ enum ap_boot_method {
 };
 extern enum ap_boot_method ap_boot_method;
 
-#endif /* !__ASSEMBLY__ */
+#endif /* !__ASSEMBLER__ */
 
 #endif /* __ASM_X86_PROCESSOR_H */
 
diff --git a/xen/arch/x86/include/asm/smp.h b/xen/arch/x86/include/asm/smp.h
index 60eb4ac254bb..3f16e6269615 100644
--- a/xen/arch/x86/include/asm/smp.h
+++ b/xen/arch/x86/include/asm/smp.h
@@ -4,7 +4,7 @@
 /*
  * We need the APIC definitions automatically as part of 'smp.h'
  */
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 #include <xen/bitops.h>
 #include <xen/kernel.h>
 #include <xen/cpumask.h>
@@ -14,7 +14,7 @@
 
 #define BAD_APICID   (-1U)
 #define INVALID_CUID (~0U)   /* AMD Compute Unit ID */
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 /*
  * Private routines/data
@@ -80,6 +80,6 @@ extern bool unaccounted_cpus;
 
 void *cpu_alloc_stack(unsigned int cpu);
 
-#endif /* !__ASSEMBLY__ */
+#endif /* !__ASSEMBLER__ */
 
 #endif
diff --git a/xen/arch/x86/include/asm/spec_ctrl.h b/xen/arch/x86/include/asm/spec_ctrl.h
index 3d92928f9439..505e3ab863f0 100644
--- a/xen/arch/x86/include/asm/spec_ctrl.h
+++ b/xen/arch/x86/include/asm/spec_ctrl.h
@@ -45,7 +45,7 @@
  */
 #define SCF_DOM_MASK (SCF_verw | SCF_entry_ibpb | SCF_entry_bhb)
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <asm/alternative.h>
 #include <asm/current.h>
@@ -201,7 +201,7 @@ static always_inline void spec_ctrl_exit_idle(struct cpu_info *info)
      */
 }
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 #endif /* !__X86_SPEC_CTRL_H__ */
 
 /*
diff --git a/xen/arch/x86/include/asm/spec_ctrl_asm.h b/xen/arch/x86/include/asm/spec_ctrl_asm.h
index 729a830411eb..abb64ad2b7f9 100644
--- a/xen/arch/x86/include/asm/spec_ctrl_asm.h
+++ b/xen/arch/x86/include/asm/spec_ctrl_asm.h
@@ -8,7 +8,7 @@
 #ifndef __X86_SPEC_CTRL_ASM_H__
 #define __X86_SPEC_CTRL_ASM_H__
 
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 #include <asm/msr-index.h>
 #include <asm/spec_ctrl.h>
 
@@ -500,7 +500,7 @@
 .L\@_skip_ist_exit:
 .endm
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 #endif /* !__X86_SPEC_CTRL_ASM_H__ */
 
 /*
diff --git a/xen/arch/x86/include/asm/trampoline.h b/xen/arch/x86/include/asm/trampoline.h
index dc536efe1f3d..deed2679d9d5 100644
--- a/xen/arch/x86/include/asm/trampoline.h
+++ b/xen/arch/x86/include/asm/trampoline.h
@@ -96,7 +96,7 @@
 #define TRAMPOLINE_HEAP_END     (TRAMPOLINE_SIZE - PAGE_SIZE)
 #define MBI_SPACE_MIN           (2 * PAGE_SIZE)
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/compiler.h>
 #include <xen/types.h>
@@ -168,5 +168,5 @@ extern uint8_t kbd_shift_flags;
 extern uint16_t boot_edid_caps;
 extern uint8_t boot_edid_info[128];
 
-#endif /* !__ASSEMBLY__ */
+#endif /* !__ASSEMBLER__ */
 #endif /* X86_ASM_TRAMPOLINE_H */
diff --git a/xen/arch/x86/include/asm/x86_64/page.h b/xen/arch/x86/include/asm/x86_64/page.h
index 201b79f99e57..c80b4b01ad26 100644
--- a/xen/arch/x86/include/asm/x86_64/page.h
+++ b/xen/arch/x86/include/asm/x86_64/page.h
@@ -9,7 +9,7 @@
 
 #define is_canonical_address(x) (((long)(x) >> 47) == ((long)(x) >> 63))
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 static inline unsigned long canonicalise_addr(unsigned long addr)
 {
@@ -68,7 +68,7 @@ typedef struct { intpte_t l3; } l3_pgentry_t;
 typedef struct { intpte_t l4; } l4_pgentry_t;
 typedef l4_pgentry_t root_pgentry_t;
 
-#endif /* !__ASSEMBLY__ */
+#endif /* !__ASSEMBLER__ */
 
 /* Given a virtual address, get an entry offset into a linear page table. */
 #define l1_linear_offset(_a) (((_a) & VADDR_MASK) >> L1_PAGETABLE_SHIFT)
@@ -100,7 +100,7 @@ typedef l4_pgentry_t root_pgentry_t;
  */
 
 /* Extract flags into 24-bit integer, or turn 24-bit flags into a pte mask. */
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 static inline unsigned int get_pte_flags(intpte_t x)
 {
     return ((x >> 40) & ~0xfff) | (x & 0xfff);
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index d7f4d0cb2200..8adba7bd4da8 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -25,11 +25,11 @@
 /*
  * Keep this arch-specific modified include in the common file, as moving
  * it to the arch specific include file would obscure that special care is
- * taken to include it with __ASSEMBLY__ defined.
+ * taken to include it with __ASSEMBLER__ defined.
  */
-#define __ASSEMBLY__ /* avoid pulling in ACPI stuff (conflicts with EFI) */
+#define __ASSEMBLER__ /* avoid pulling in ACPI stuff (conflicts with EFI) */
 #include <asm/fixmap.h>
-#undef __ASSEMBLY__
+#undef __ASSEMBLER__
 #endif
 
 #define EFI_REVISION(major, minor) (((major) << 16) | (minor))
diff --git a/xen/include/efi/pe.h b/xen/include/efi/pe.h
index 64e047e88b4d..6b3458e888b7 100644
--- a/xen/include/efi/pe.h
+++ b/xen/include/efi/pe.h
@@ -136,7 +136,7 @@
 #define IMAGE_DEBUG_TYPE_CODEVIEW              2
 #define IMAGE_DEBUG_TYPE_EX_DLLCHARACTERISTICS 20
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 struct mz_hdr {
     uint16_t magic;              /* MZ_MAGIC */
@@ -286,6 +286,6 @@ struct section_header {
     uint32_t flags;
 };
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* EFI__PE_H */
diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
index b31324f8d409..cd563cf70684 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -184,7 +184,7 @@
 #define uint64_aligned_t uint64_t __attribute__((__aligned__(8)))
 #endif
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 #define ___DEFINE_XEN_GUEST_HANDLE(name, type)                  \
     typedef union { type *p; unsigned long q; }                 \
         __guest_handle_ ## name;                                \
@@ -542,7 +542,7 @@ typedef uint64_t xen_callback_t;
 
 #endif
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 /* Stub definition of PMU structure */
 typedef struct xen_pmu_arch { uint8_t dummy; } xen_pmu_arch_t;
 #endif
diff --git a/xen/include/public/arch-ppc.h b/xen/include/public/arch-ppc.h
index 264e20b89ea4..b5e1a940a575 100644
--- a/xen/include/public/arch-ppc.h
+++ b/xen/include/public/arch-ppc.h
@@ -16,7 +16,7 @@
 #define uint64_aligned_t uint64_t __attribute__((__aligned__(8)))
 #endif
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 #define ___DEFINE_XEN_GUEST_HANDLE(name, type)                  \
     typedef union { type *p; unsigned long q; }                 \
         __guest_handle_ ## name;                                \
@@ -102,6 +102,6 @@ struct xen_arch_domainconfig {
 
 typedef struct xen_pmu_arch { uint8_t dummy; } xen_pmu_arch_t;
 
-#endif /* !__ASSEMBLY__ */
+#endif /* !__ASSEMBLER__ */
 
 #endif /* __XEN_PUBLIC_ARCH_PPC_H__ */
diff --git a/xen/include/public/arch-riscv.h b/xen/include/public/arch-riscv.h
index 168263b92074..360d8e6871ba 100644
--- a/xen/include/public/arch-riscv.h
+++ b/xen/include/public/arch-riscv.h
@@ -12,7 +12,7 @@
 #define uint64_aligned_t uint64_t __attribute__((__aligned__(8)))
 #endif
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 #define ___DEFINE_XEN_GUEST_HANDLE(name, type)                  \
     typedef union { type *p; unsigned long q; }                 \
         __guest_handle_ ## name;                                \
diff --git a/xen/include/public/arch-x86/xen-mca.h b/xen/include/public/arch-x86/xen-mca.h
index bb1b12f14fae..30d18b6ad767 100644
--- a/xen/include/public/arch-x86/xen-mca.h
+++ b/xen/include/public/arch-x86/xen-mca.h
@@ -74,7 +74,7 @@
 /* Applicable to all mc_vcpuid fields below. */
 #define XEN_MC_VCPUID_INVALID 0xffff
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #define VIRQ_MCA VIRQ_ARCH_0 /* G. (DOM0) Machine Check Architecture */
 
@@ -433,6 +433,6 @@ struct xen_mc {
 typedef struct xen_mc xen_mc_t;
 DEFINE_XEN_GUEST_HANDLE(xen_mc_t);
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* __XEN_PUBLIC_ARCH_X86_MCA_H__ */
diff --git a/xen/include/public/arch-x86/xen-x86_32.h b/xen/include/public/arch-x86/xen-x86_32.h
index 25cc44728838..6a5eddf0c3b4 100644
--- a/xen/include/public/arch-x86/xen-x86_32.h
+++ b/xen/include/public/arch-x86/xen-x86_32.h
@@ -90,7 +90,7 @@
 #define XEN_GUEST_HANDLE_64(name) __XEN_GUEST_HANDLE_64(name)
 #endif
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #if defined(XEN_GENERATING_COMPAT_HEADERS)
 /* nothing */
@@ -171,7 +171,7 @@ struct xen_callback {
 };
 typedef struct xen_callback xen_callback_t;
 
-#endif /* !__ASSEMBLY__ */
+#endif /* !__ASSEMBLER__ */
 
 #endif /* __XEN_PUBLIC_ARCH_X86_XEN_X86_32_H__ */
 
diff --git a/xen/include/public/arch-x86/xen-x86_64.h b/xen/include/public/arch-x86/xen-x86_64.h
index ea6b56aa3bd8..75f121be0e14 100644
--- a/xen/include/public/arch-x86/xen-x86_64.h
+++ b/xen/include/public/arch-x86/xen-x86_64.h
@@ -105,7 +105,7 @@
 #define VGCF_in_syscall  (1<<_VGCF_in_syscall)
 #define VGCF_IN_SYSCALL  VGCF_in_syscall
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 struct iret_context {
     /* Top of stack (%rsp at point of hypercall). */
@@ -218,7 +218,7 @@ typedef struct arch_vcpu_info arch_vcpu_info_t;
 
 typedef unsigned long xen_callback_t;
 
-#endif /* !__ASSEMBLY__ */
+#endif /* !__ASSEMBLER__ */
 
 #endif /* __XEN_PUBLIC_ARCH_X86_XEN_X86_64_H__ */
 
diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x86/xen.h
index b99a691706f8..a7bf046ee006 100644
--- a/xen/include/public/arch-x86/xen.h
+++ b/xen/include/public/arch-x86/xen.h
@@ -53,7 +53,7 @@ __DeFiNe__ __DECL_REG_LO16(name) e ## name
 #include "xen-x86_64.h"
 #endif
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 typedef unsigned long xen_pfn_t;
 #define PRI_xen_pfn "lx"
 #define PRIu_xen_pfn "lu"
@@ -97,7 +97,7 @@ typedef unsigned long xen_pfn_t;
 /* Maximum number of virtual CPUs in legacy multi-processor guests. */
 #define XEN_LEGACY_MAX_VCPUS 32
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 typedef unsigned long xen_ulong_t;
 #define PRI_xen_ulong "lx"
@@ -335,7 +335,7 @@ typedef struct xen_msr_entry {
 } xen_msr_entry_t;
 DEFINE_XEN_GUEST_HANDLE(xen_msr_entry_t);
 
-#endif /* !__ASSEMBLY__ */
+#endif /* !__ASSEMBLER__ */
 
 /*
  * ` enum neg_errnoval
@@ -359,7 +359,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_msr_entry_t);
  * Prefix forces emulation of some non-trapping instructions.
  * Currently only CPUID.
  */
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 #define XEN_EMULATE_PREFIX .byte 0x0f,0x0b,0x78,0x65,0x6e ;
 #define XEN_CPUID          XEN_EMULATE_PREFIX cpuid
 #else
diff --git a/xen/include/public/errno.h b/xen/include/public/errno.h
index b9fc6762fbb6..6543d0f3530a 100644
--- a/xen/include/public/errno.h
+++ b/xen/include/public/errno.h
@@ -30,7 +30,7 @@
 
 #define XEN_ERRNO_DEFAULT_INCLUDE
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #define XEN_ERRNO(name, value) XEN_##name = (value),
 enum xen_errno {
@@ -39,7 +39,7 @@ enum xen_errno {
 
 #define XEN_ERRNO(name, value) .equ XEN_##name, value
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* __XEN_PUBLIC_ERRNO_H__ */
 #endif /* !XEN_ERRNO */
@@ -123,7 +123,7 @@ XEN_ERRNO(ECONNREFUSED,	111)	/* Connection refused */
 /* Clean up from a default include.  Close the enum (for C). */
 #ifdef XEN_ERRNO_DEFAULT_INCLUDE
 #undef XEN_ERRNO_DEFAULT_INCLUDE
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 };
 #endif
 
diff --git a/xen/include/public/tmem.h b/xen/include/public/tmem.h
index da68de76fe5f..8c91a7bb944f 100644
--- a/xen/include/public/tmem.h
+++ b/xen/include/public/tmem.h
@@ -58,7 +58,7 @@ struct xen_tmem_oid {
 typedef struct xen_tmem_oid xen_tmem_oid_t;
 DEFINE_XEN_GUEST_HANDLE(xen_tmem_oid_t);
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 #if __XEN_INTERFACE_VERSION__ < 0x00040400
 typedef xen_pfn_t tmem_cli_mfn_t;
 #endif
diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
index 82b9c05a76b7..7f15204c3885 100644
--- a/xen/include/public/xen.h
+++ b/xen/include/public/xen.h
@@ -24,7 +24,7 @@
 #error "Unsupported architecture"
 #endif
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 /* Guest handles for primitive C types. */
 DEFINE_XEN_GUEST_HANDLE(char);
 __DEFINE_XEN_GUEST_HANDLE(uchar, unsigned char);
@@ -437,7 +437,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_ulong_t);
 #define MMUEXT_UNMARK_SUPER     20
 /* ` } */
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 struct mmuext_op {
     unsigned int cmd; /* => enum mmuext_cmd */
     union {
@@ -614,7 +614,7 @@ DEFINE_XEN_GUEST_HANDLE(mmuext_op_t);
 /* Mask for valid domain id values */
 #define DOMID_MASK           xen_mk_uint(0x7FFF)
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 typedef uint16_t domid_t;
 
@@ -1011,7 +1011,7 @@ typedef struct {
     XEN_DEFINE_UUID_(a, b, c, d, e1, e2, e3, e4, e5, e6)
 #endif /* __STDC_VERSION__ / __GNUC__ */
 
-#endif /* !__ASSEMBLY__ */
+#endif /* !__ASSEMBLER__ */
 
 /* Default definitions for macros used by domctl/sysctl. */
 #if defined(__XEN__) || defined(__XEN_TOOLS__)
@@ -1026,7 +1026,7 @@ typedef struct {
 #define XEN_GUEST_HANDLE_64(name) XEN_GUEST_HANDLE(name)
 #endif
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 struct xenctl_bitmap {
     XEN_GUEST_HANDLE_64(uint8) bitmap;
     uint32_t nr_bits;
diff --git a/xen/include/xen/acpi.h b/xen/include/xen/acpi.h
index 57e710a16d90..90635ba0f322 100644
--- a/xen/include/xen/acpi.h
+++ b/xen/include/xen/acpi.h
@@ -35,7 +35,7 @@
  */
 #define NUM_FIXMAP_ACPI_PAGES  64
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/errno.h>
 #include <xen/list.h>
@@ -202,6 +202,6 @@ static inline void acpi_dmar_zap(void) {}
 static inline void acpi_dmar_reinstate(void) {}
 #endif
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /*_LINUX_ACPI_H*/
diff --git a/xen/include/xen/bitmap.h b/xen/include/xen/bitmap.h
index b5e9cdd3db86..c69398a12796 100644
--- a/xen/include/xen/bitmap.h
+++ b/xen/include/xen/bitmap.h
@@ -1,7 +1,7 @@
 #ifndef __XEN_BITMAP_H
 #define __XEN_BITMAP_H
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/lib.h>
 #include <xen/types.h>
@@ -290,6 +290,6 @@ int xenctl_bitmap_to_bitmap(unsigned long *bitmap,
 int bitmap_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_bitmap,
                             const unsigned long *bitmap, unsigned int nbits);
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* __XEN_BITMAP_H */
diff --git a/xen/include/xen/bug.h b/xen/include/xen/bug.h
index 0cabdba37992..044c059d6936 100644
--- a/xen/include/xen/bug.h
+++ b/xen/include/xen/bug.h
@@ -14,7 +14,7 @@
 
 #include <asm/bug.h>
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/compiler.h>
 #include <xen/macros.h>
@@ -156,7 +156,7 @@ int do_bug_frame(const struct cpu_user_regs *regs, unsigned long pc);
 
 #endif /* CONFIG_GENERIC_BUG_FRAME */
 
-#endif /* !__ASSEMBLY__ */
+#endif /* !__ASSEMBLER__ */
 
 #endif /* __XEN_BUG_H__ */
 /*
diff --git a/xen/include/xen/config.h b/xen/include/xen/config.h
index 1d7195066c08..33e6aafa407b 100644
--- a/xen/include/xen/config.h
+++ b/xen/include/xen/config.h
@@ -13,7 +13,7 @@
 
 #include <xen/kconfig.h>
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 #include <xen/compiler.h>
 
 #if defined(CONFIG_ENFORCE_UNIQUE_SYMBOLS) || defined(__clang__)
diff --git a/xen/include/xen/const.h b/xen/include/xen/const.h
index baf28ef14487..af228874025a 100644
--- a/xen/include/xen/const.h
+++ b/xen/include/xen/const.h
@@ -12,7 +12,7 @@
  * leave it unchanged in asm.
  */
 
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 #define _AC(X,Y)	X
 #define _AT(T,X)	X
 #else
diff --git a/xen/include/xen/err.h b/xen/include/xen/err.h
index a5971e290c16..4465468cdedf 100644
--- a/xen/include/xen/err.h
+++ b/xen/include/xen/err.h
@@ -1,7 +1,7 @@
 #ifndef XEN_ERR_H
 #define XEN_ERR_H
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/compiler.h>
 #include <xen/errno.h>
@@ -43,6 +43,6 @@ static inline int __must_check PTR_RET(const void *ptr)
 	return IS_ERR(ptr) ? PTR_ERR(ptr) : 0;
 }
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* XEN_ERR_H */
diff --git a/xen/include/xen/errno.h b/xen/include/xen/errno.h
index 506674701fae..db9ef7f3e103 100644
--- a/xen/include/xen/errno.h
+++ b/xen/include/xen/errno.h
@@ -1,18 +1,18 @@
 #ifndef __XEN_ERRNO_H__
 #define __XEN_ERRNO_H__
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #define XEN_ERRNO(name, value) name = (value),
 enum {
 #include <public/errno.h>
 };
 
-#else /* !__ASSEMBLY__ */
+#else /* !__ASSEMBLER__ */
 
 #define XEN_ERRNO(name, value) .equ name, value
 #include <public/errno.h>
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /*  __XEN_ERRNO_H__ */
diff --git a/xen/include/xen/init.h b/xen/include/xen/init.h
index abf275f0eb72..0c921672c196 100644
--- a/xen/include/xen/init.h
+++ b/xen/include/xen/init.h
@@ -54,7 +54,7 @@
  * Also note, that this data cannot be "const".
  */
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 /*
  * Used for initialization calls..
@@ -72,7 +72,7 @@ typedef void (*exitcall_t)(void);
 void do_presmp_initcalls(void);
 void do_initcalls(void);
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #ifdef CONFIG_LATE_HWDOM
 #define __hwdom_init
diff --git a/xen/include/xen/kimage.h b/xen/include/xen/kimage.h
index 348f07f5c881..fccba1d88d5c 100644
--- a/xen/include/xen/kimage.h
+++ b/xen/include/xen/kimage.h
@@ -7,7 +7,7 @@
 #define IND_SOURCE       0x8
 #define IND_ZERO        0x10
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/list.h>
 #include <xen/mm.h>
@@ -53,7 +53,7 @@ unsigned long kimage_entry_ind(kimage_entry_t *entry, bool compat);
 int kimage_build_ind(struct kexec_image *image, mfn_t ind_mfn,
                      bool compat);
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* __XEN_KIMAGE_H__ */
 
diff --git a/xen/include/xen/lib.h b/xen/include/xen/lib.h
index c4ac4823920f..559e87636c02 100644
--- a/xen/include/xen/lib.h
+++ b/xen/include/xen/lib.h
@@ -3,7 +3,7 @@
 
 #include <xen/macros.h>
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/inttypes.h>
 #include <xen/stdarg.h>
@@ -165,6 +165,6 @@ void cf_check dump_execstate(const struct cpu_user_regs *regs);
 
 void init_constructors(void);
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* __LIB_H__ */
diff --git a/xen/include/xen/libfdt/fdt.h b/xen/include/xen/libfdt/fdt.h
index f2e68807f277..57fe566306d0 100644
--- a/xen/include/xen/libfdt/fdt.h
+++ b/xen/include/xen/libfdt/fdt.h
@@ -7,7 +7,7 @@
  * Copyright 2012 Kim Phillips, Freescale Semiconductor.
  */
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 struct fdt_header {
 	fdt32_t magic;			 /* magic word FDT_MAGIC */
diff --git a/xen/include/xen/linkage.h b/xen/include/xen/linkage.h
index 3d401b88c1ad..4446eee5a8db 100644
--- a/xen/include/xen/linkage.h
+++ b/xen/include/xen/linkage.h
@@ -1,7 +1,7 @@
 #ifndef __LINKAGE_H__
 #define __LINKAGE_H__
 
-#ifdef __ASSEMBLY__
+#ifdef __ASSEMBLER__
 
 #include <xen/macros.h>
 
@@ -62,6 +62,6 @@
 
 #define ASM_INT(label, val)    DATA(label, 4) .long (val); END(label)
 
-#endif /*  __ASSEMBLY__ */
+#endif /*  __ASSEMBLER__ */
 
 #endif /* __LINKAGE_H__ */
diff --git a/xen/include/xen/macros.h b/xen/include/xen/macros.h
index 6b4a8dc8b766..6e8ac8b45290 100644
--- a/xen/include/xen/macros.h
+++ b/xen/include/xen/macros.h
@@ -38,7 +38,7 @@
 #define __STR(...) #__VA_ARGS__
 #define STR(...) __STR(__VA_ARGS__)
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 /* Force a compilation error if condition is true */
 #define BUILD_BUG_ON(cond) ({ _Static_assert(!(cond), "!(" #cond ")"); })
@@ -140,7 +140,7 @@
 #define MIN(x, y) ((x) < (y) ? (x) : (y))
 #define MAX(x, y) ((x) > (y) ? (x) : (y))
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* __MACROS_H__ */
 
diff --git a/xen/include/xen/multiboot.h b/xen/include/xen/multiboot.h
index 6d7f2b767161..4acb614669c3 100644
--- a/xen/include/xen/multiboot.h
+++ b/xen/include/xen/multiboot.h
@@ -43,7 +43,7 @@
 #define MBI_LOADERNAME (_AC(1,u) << 9)
 #define MBI_APM        (_AC(1,u) << 10)
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/stdint.h>
 
@@ -130,6 +130,6 @@ struct memory_map {
 typedef struct memory_map memory_map_t;
 
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* __MULTIBOOT_H__ */
diff --git a/xen/include/xen/multiboot2.h b/xen/include/xen/multiboot2.h
index 534b26444cc3..7c9180929e68 100644
--- a/xen/include/xen/multiboot2.h
+++ b/xen/include/xen/multiboot2.h
@@ -113,7 +113,7 @@
 #define MULTIBOOT2_FRAMEBUFFER_TYPE_RGB                 1
 #define MULTIBOOT2_FRAMEBUFFER_TYPE_EGA_TEXT            2
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/stdint.h>
 
@@ -233,6 +233,6 @@ typedef struct {
     uint32_t mod_end;
     char cmdline[];
 } multiboot2_tag_module_t;
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* __MULTIBOOT2_H__ */
diff --git a/xen/include/xen/percpu.h b/xen/include/xen/percpu.h
index e7f585c7ed69..fcf2095bd543 100644
--- a/xen/include/xen/percpu.h
+++ b/xen/include/xen/percpu.h
@@ -29,7 +29,7 @@
 
 #include <asm/percpu.h>
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/types.h>
 #include <asm/current.h>
@@ -57,7 +57,7 @@ extern unsigned long __per_cpu_offset[];
 
 void percpu_init_areas(void);
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 /* Linux compatibility. */
 #define get_cpu_var(var) this_cpu(var)
diff --git a/xen/include/xen/pmap.h b/xen/include/xen/pmap.h
index 93e61b10870e..b223fa919690 100644
--- a/xen/include/xen/pmap.h
+++ b/xen/include/xen/pmap.h
@@ -4,13 +4,13 @@
 /* Large enough for mapping 5 levels of page tables with some headroom */
 #define NUM_FIX_PMAP 8
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 #include <xen/mm-frame.h>
 
 void *pmap_map(mfn_t mfn);
 void pmap_unmap(const void *p);
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* __XEN_PMAP_H__ */
diff --git a/xen/include/xen/softirq.h b/xen/include/xen/softirq.h
index 48f17e49efa1..49da6974feb1 100644
--- a/xen/include/xen/softirq.h
+++ b/xen/include/xen/softirq.h
@@ -1,7 +1,7 @@
 #ifndef XEN_SOFTIRQ_H
 #define XEN_SOFTIRQ_H
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__
 
 /* Low-latency softirqs come first in the following list. */
 enum {
@@ -58,6 +58,6 @@ void cpu_raise_softirq_batch_finish(void);
  */
 void process_pending_softirqs(void);
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif /* XEN_SOFTIRQ_H */

base-commit: 62bd4c2a8ee809c181d47098583270dc9db9300e
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 13:37:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 13:37:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176789.1501251 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQn2T-0005Xz-0m; Wed, 03 Dec 2025 13:37:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176789.1501251; Wed, 03 Dec 2025 13:37:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQn2S-0005Xs-TJ; Wed, 03 Dec 2025 13:37:00 +0000
Received: by outflank-mailman (input) for mailman id 1176789;
 Wed, 03 Dec 2025 13:36:59 +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
 <SRS0=mi53=6J=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vQn2R-0005Xk-A3
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 13:36:59 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 23c50b63-d04d-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 14:36:58 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4779a4fc95aso6790575e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 05:36:58 -0800 (PST)
Received: from [10.188.153.1] (cust-east-par-46-193-78-210.cust.wifirst.net.
 [46.193.78.210]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f6ffa18ffsm8659858f8f.5.2025.12.03.05.36.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Dec 2025 05:36:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 23c50b63-d04d-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764769017; x=1765373817; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=AveSLccaTYPYn21bzC3+zll33l8dwPO6jD/UJYury4U=;
        b=TSrRngM48EgAlFhwXa0y1oD56w+7zs65rQsJxtnuRjfE10tnVSe85b1fptzkzOV1/J
         00nfmrnii3bwPCpF4YglenpCl+e/WFZG8OKE3mq7uvOOqjw55TWMK7HQ69kEtQ72ZIVM
         qwuO8XmsGxvUE5SoWCs7R+fOssm+giLyFO/b7zLNOfVgsUFkSmsk4MGCT3hwuD5WpvFN
         JGXgD0v2XEwjvtNdsI4V0GmFXxDmd1SIVsdchqgqkBEtcVQjOUTGZ/K89MMlo/Ngl0Gm
         N+F0S2S0SnsET4p6W9RNDAjF9rbQ0aEQFi83i8vaY2b5VeWiS5shiOdE8ppBaoKwTtvt
         LX1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764769017; x=1765373817;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=AveSLccaTYPYn21bzC3+zll33l8dwPO6jD/UJYury4U=;
        b=qg4y6C1XjlmWQ85wbfRL6F5oJRcE2AZOkVlUAKKHRu6O8ZSP2yjpqSs0TflvvzX8rI
         jwQd9HEyyNeer9XXungIhUb0QhHCjTW4xdQpXEeiP52ZoDSNmX5HJDb5npNYp32Df1CN
         Au3UCxwPKFcs9jpxa9Nh1bD6ZYzEbNN8+sRNDh9LDy8KDaGIK5fbNk8lf6/Re/ZKykdh
         qUwWK7yVgIvrK5J79FNk5qs6AsqaitFeXYqckqQmxmC+SYsJEgRL5JU/zlUX0gyX4zcj
         ypC0l9KUFJVLDI5FfaA5DLMrwMvE1ERf2U1UJZzL+nQ8zDYcFs/qM6zet79Z3Dr++OSK
         dVgA==
X-Forwarded-Encrypted: i=1; AJvYcCXrgOOA8wjwLtWHdhVbUtPorLSdm+mSdzaEfWdW4DQiPIKIplF1TOMl7EyGXaQBsaFF8G22n8BYphw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzKX+eTMTMjW5oiuXBdPAWPYxtGnNITYE7M5iwdaLRdyn4VtFdY
	dkT3cS3LWAqa5QM2HSdcO0PQ4DMRffufbXR24ACwiKP2QFQkEXZBiiiI
X-Gm-Gg: ASbGnctvT9J8PjGBwmIWyc/Zt369cjVsV7f5bdzHGRA16wcnZNEK1/Wi0AD0P1H0/TJ
	Y5C3UTEf5TrOJj2nk0vPUAhUabJNkbakg8z4CwPVCOkcmxtr1lrpFPo26pN9zyaZSrjYRMpwJf8
	CLK1lDkpfE+4c/L5cUquDempG0a09aWr8TsyEUENjqjLktYIGs5NJ5BlOYaMrIVoSk9jyHLrtvd
	3mnnmaz+Xzwcqj9DvXgwzhzwNj6mrjvIQIeQq5quX8Rg2jHgLuxDaIysgHqmyoTwFXDsdyBNTM5
	tbGGnMHIJ0/w7Dh2Atnl29o+omAJAuL1h4vkzmB87+/ykCoAR3BPceNPrF78spUPjEsLd8v9F23
	Qlf6kwlY0NPKsucIwx4FtBKCbUq3bYxG3nVFCNGi/hHLQmr5ORLjZSU0ZGUMubxP79yvD/kZtq+
	pbec70Tmrk2i7s/l5l0ZpO2cs4hqKqQOU7xZl8uTDRuFtgNnBPvUYGcA/Qr2AD78cVsHFn675Ll
	g==
X-Google-Smtp-Source: AGHT+IHD+VLT6T8HxpQ9CM5M4n6GyrEHnCDxVkbUcN2C7rFdcI10soWv/62KyWmCQAYKKMP87pU+7A==
X-Received: by 2002:a05:600c:4507:b0:479:2a78:4a2e with SMTP id 5b1f17b1804b1-4792aeefe08mr28368165e9.7.1764769017218;
        Wed, 03 Dec 2025 05:36:57 -0800 (PST)
Message-ID: <291a2d7c-f9fa-4c36-bfd5-5706ebea3e2e@gmail.com>
Date: Wed, 3 Dec 2025 14:36:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/dom0less: Increase guest DTB size for high-vCPU
 guests
To: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <20251202193246.3357821-1-oleksandr_tyshchenko@epam.com>
 <98e9f551-cd8f-4c0c-aa79-144466e68df0@epam.com>
 <a1443030-f594-4f25-b12a-37974eae64d2@epam.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <a1443030-f594-4f25-b12a-37974eae64d2@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hello Oleksandr,

On 12/3/25 12:03 PM, Oleksandr Tyshchenko wrote:
> On 02.12.25 23:33, Grygorii Strashko wrote:
>>
>> On 02.12.25 21:32, Oleksandr Tyshchenko wrote:
>>> Creating a guest with a high vCPU count (e.g., >32) fails because
>>> the guest's device tree buffer (DOMU_DTB_SIZE) overflows during creation.
>>> The FDT nodes for each vCPU quickly exhaust the 4KiB buffer,
>>> causing a guest creation failure.
>>>
>>> Increase the buffer size to 16KiB to support guests up to
>>> the MAX_VIRT_CPUS limit (128).
>>>
>>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>> ---
>>> Noticed when testing the boundary conditions for dom0less guest
>>> creation on Arm64.
>>>
>>> Domain configuration:
>>> fdt mknod /chosen domU0
>>> fdt set /chosen/domU0 compatible "xen,domain"
>>> fdt set /chosen/domU0 \#address-cells <0x2>
>>> fdt set /chosen/domU0 \#size-cells <0x2>
>>> fdt set /chosen/domU0 memory <0x0 0x10000 >
>>> fdt set /chosen/domU0 cpus <33>
>>> fdt set /chosen/domU0 vpl011
>>> fdt mknod /chosen/domU0 module@40400000
>>> fdt set /chosen/domU0/module@40400000 compatible  "multiboot,kernel"
>>> "multiboot,module"
>>> fdt set /chosen/domU0/module@40400000 reg <0x0 0x40400000 0x0 0x16000 >
>>> fdt set /chosen/domU0/module@40400000 bootargs "console=ttyAMA0"
>>>
>>> Failure log:
>>> (XEN) Xen dom0less mode detected
>>> (XEN) *** LOADING DOMU cpus=33 memory=0x10000KB ***
>>> (XEN) Loading d1 kernel from boot module @ 0000000040400000
>>> (XEN) Allocating mappings totalling 64MB for d1:
>>> (XEN) d1 BANK[0] 0x00000040000000-0x00000044000000 (64MB)
>>> (XEN) Device tree generation failed (-22).
>>> (XEN)
>>> (XEN) ****************************************
>>> (XEN) Panic on CPU 0:
>>> (XEN) Could not set up domain domU0 (rc = -22)
>>> (XEN) ****************************************
>>> ---
>>> ---
>>>    xen/common/device-tree/dom0less-build.c | 8 +++++---
>>>    1 file changed, 5 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/
>>> device-tree/dom0less-build.c
>>> index 3f5b987ed8..d7d0a47b97 100644
>>> --- a/xen/common/device-tree/dom0less-build.c
>>> +++ b/xen/common/device-tree/dom0less-build.c
>>> @@ -461,10 +461,12 @@ static int __init
>>> domain_handle_dtb_boot_module(struct domain *d,
>>>    /*
>>>     * The max size for DT is 2MB. However, the generated DT is small
>>> (not including
>>> - * domU passthrough DT nodes whose size we account separately), 4KB
>>> are enough
>>> - * for now, but we might have to increase it in the future.
>>> + * domU passthrough DT nodes whose size we account separately). The
>>> size is
>>> + * primarily driven by the number of vCPU nodes. The previous 4KiB
>>> buffer was
>>> + * insufficient for guests with high vCPU counts, so it has been
>>> increased
>>> + * to support up to the MAX_VIRT_CPUS limit (128).
>>>     */
>>> -#define DOMU_DTB_SIZE 4096
>>> +#define DOMU_DTB_SIZE (4096 * 4)
>> May be It wants Kconfig?
>> Or some formula which accounts MAX_VIRT_CPUS?
>
> I agree that using a formula that accounts for MAX_VIRT_CPUS is the most
> robust approach.

One option could be to detect the size at runtime, essentially, try to allocate
it, and if an error occurs, increase the fdtsize and try again. I don’t really
like this approach, but I wanted to mention it in case someone finds it useful.
The benefit of this approach is that if, in the future, something else such
as a CPU node contributes to the final FDT size, we won’t need to update the
formula again.

>
> Here is the empirical data (by testing with the maximum number of device
> tree nodes (e.g., hypervisor and reserved-memory nodes) and enabling all
> optional CPU properties (e.g., clock-frequency)):
>
> cpus=1
> (XEN) Final compacted FDT size is: 1586 bytes
>
> cpus=2
> (XEN) Final compacted FDT size is: 1698 bytes
>
> cpus=32
> (XEN) Final compacted FDT size is: 5058 bytes
>
> cpus=128
> (XEN) Final compacted FDT size is: 15810 bytes
>
>
> static int __init prepare_dtb_domU(struct domain *d, struct kernel_info
> *kinfo)
>    {
>        int addrcells, sizecells;
> @@ -569,6 +569,8 @@ static int __init prepare_dtb_domU(struct domain *d,
> struct kernel_info *kinfo)
>        if ( ret < 0 )
>            goto err;
>
> +    printk("Final compacted FDT size is: %d bytes\n",
> fdt_totalsize(kinfo->fdt));
> +
>        return 0;
>
>      err:
>
> This data shows (assuming my testing/calculations are correct):
>
> - A marginal cost of 112 bytes per vCPU in the final, compacted device tree.
> - A fixed base size of 1474 bytes for all non-vCPU content.
>
> Based on that I would propose the following formula with the justification:
>
> /*
>    * The size is calculated from a fixed baseline plus a scalable
>    * portion for each potential vCPU node up to the system limit
>    * (MAX_VIRT_CPUS), as the vCPU nodes are the primary consumer
>    * of space.
>    *
>    * The baseline of 2KiB is a safe buffer for all non-vCPU FDT
>    * content. The 128 bytes per vCPU is derived from a worst-case
>    * analysis of the FDT construction-time size for a single
>    * vCPU node.
>    */
> #define DOMU_DTB_SIZE (2048 + (MAX_VIRT_CPUS * 128))
>
> **********************************************
>
> Please tell me would you be happy with that?

I would also like to note that we probably want to add a BUILD_BUG_ON() check
to ensure that DOMU_DTB_SIZE is not larger than SZ_2M. Otherwise, we would get
a runtime error instead of a build-time failure, since there is code that limits
fdtsize to SZ_2M:

     /* Cap to max DT size if needed */
     fdt_size = min(fdt_size, SZ_2M);

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 13:47:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 13:47:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176800.1501262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQnCU-0007JP-T7; Wed, 03 Dec 2025 13:47:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176800.1501262; Wed, 03 Dec 2025 13:47:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQnCU-0007JI-QH; Wed, 03 Dec 2025 13:47:22 +0000
Received: by outflank-mailman (input) for mailman id 1176800;
 Wed, 03 Dec 2025 13:47:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mi53=6J=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vQnCT-0007JC-V0
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 13:47:21 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 962d8f8a-d04e-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 14:47:19 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-477619f8ae5so47694325e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 05:47:19 -0800 (PST)
Received: from [10.188.153.1] (cust-east-par-46-193-78-210.cust.wifirst.net.
 [46.193.78.210]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4792a79dd66sm52057665e9.6.2025.12.03.05.47.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Dec 2025 05:47:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 962d8f8a-d04e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764769639; x=1765374439; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=M0IkzHn1xtecF7m6P18vE/G57sjYgSI5qrcqOsl482Q=;
        b=ZXQA1JxG7GRM1Mloc7WSbFNpzdxPcZnVmQks+9B2OCBLqYIX1yJmW96blkCvrv2+DQ
         mGQJ/YMoV9olsDwQkxxrhgWAQ01scPLl51PLjhx/3gA5rXh7TtLmyYAZ6ihAZ1dhWL1l
         fNjzfcupiH0Om+/2r4LqfNH+qYF7oXdggwD2F6J3ffW7GV7mnF16Uliux7z1qCaNcGKo
         uOQTq1nnLX/0Xv43zUaNYAHsVwk1HNLrRAkDqJAzmpNYHW/42GJLaZVNy97bTJCJiomG
         fKYlZOKpAC5zWiLKBqn49Nlt57pXH0txz+VTw/JqW+Kf0rS0QZU5AIFqf2KyJ/dYvUq6
         IwQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764769639; x=1765374439;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=M0IkzHn1xtecF7m6P18vE/G57sjYgSI5qrcqOsl482Q=;
        b=QmVqQaaXqr022KahpJUZMEw4+ElJC8NsrrbDrmc2oeMF0r+zu9bCJC0lJI79uqbykC
         OLOgzOi9ifisEzhPVpARyCDyuZ7UazWdRqMdIwzMZsH/kmfyeXnhAIQ6SZ2BT2Q6XhG6
         aLDD6No3ij2XfRQ2m23GFQ/jT9zkRvYq0REm9jv5A6TsfOPv67h9xz/8WK/VOUnrK3zr
         kL0gy286w609xL2lDC/l63RddwAC5ApVfSetwP4IkZmvsK9paWhyUD6UBXlLcmzklm0Z
         YQEs5ifBFNVUErtUNLXIrLREv7u+BsV/qpv7jRMoMCVYkdr6hiszjcoASDZZFoyB9mBk
         INHA==
X-Forwarded-Encrypted: i=1; AJvYcCWD80sy/O9OM1TY/h6PVV6VYBmc+wfzjLVC4f5QkknMHCOtacSiF9TgqJnjqcdLa74waUuX5NXtnOo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxzAwkpw6VswE6cxw0PM/hW6Q9G0pZII9uSKIXPXDr4Tb5BB+z7
	1v4fbcTJ19z8XKabMf6TK9vwSzed+lNNrWatWNjzmTqc0jABGGupZ0I2
X-Gm-Gg: ASbGnctVJCLDr7zspkf3pI3U5gPd34zTHkwGioXpEMGWSNQ8sDBD4qdlt9GUPAO+IdO
	bTz0BAXcdfBYw0AOTukdB+88VHEBLnZWh+fkcTHXrFNZgiQEtpcBk2G8ei+x8/DICPB1InZc2Tn
	FuRBKeeooDuEhftzIbn/9OwF3b4T0cpbcLDbqV9AZrowSrMq8frYfi16QW8eZIHTXIUwKFdTAE2
	ZOY0rK5lI4girtzbOAQ8VLnM7+8Glna7CNareij+8z/LLYjKpBNjJmtiJy3P//zc+Zd2UOOEiEm
	xCFZOxWPS32oFjHvF7Ykdb60Rt2i4U54/GCmvp0xZKPNX7dDPHyUa2sSyNcG6bTGzuc4NcNrZSt
	0wC/gvmExliUMnyCLihB94SC0IMXjfNGXXrygIbvCMtDVPv2qhIkxt+by+Mu1RXbUOEYnEYNIl6
	52+hVdFVUpwpOtDJE/U+fxny426LcUWEEjsHzH+wQWh9m787k9ca+HmXWMPaK9Gp5l50E0/wu6D
	g==
X-Google-Smtp-Source: AGHT+IGW+l+z5HI9KXKD/wxbuG5K99xEchBZhbSiKJjfy64n47baAlhNrESKon4aBf5BC4aHbkZeSg==
X-Received: by 2002:a05:600c:3513:b0:477:7bd2:693f with SMTP id 5b1f17b1804b1-4792aee39a1mr22064205e9.6.1764769638806;
        Wed, 03 Dec 2025 05:47:18 -0800 (PST)
Message-ID: <56246946-2cb2-4f9b-86b0-6e3807bfe130@gmail.com>
Date: Wed, 3 Dec 2025 14:47:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v15 4/4] CHANGELOG: Document guest suspend/resume to RAM
 support on Arm
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Jan Beulich <jbeulich@suse.com>, Mykola Kvach <mykola_kvach@epam.com>,
 Community Manager <community.manager@xenproject.org>,
 xen-devel@lists.xenproject.org
References: <cover.1764755558.git.xakep.amatop@gmail.com>
 <ba51b0ca5457566e1dbef2b6d6ff984dbc318895.1764755558.git.xakep.amatop@gmail.com>
 <b844a0bc-ee86-42fe-bcf1-f8a33a594c4c@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <b844a0bc-ee86-42fe-bcf1-f8a33a594c4c@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 12/3/25 11:09 AM, Jan Beulich wrote:
> On 03.12.2025 10:57, Mykola Kvach wrote:
>> --- a/CHANGELOG.md
>> +++ b/CHANGELOG.md
>> @@ -10,6 +10,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>>   
>>   ### Added
>>   
>> + - On Arm:
> Nit: If you look elsewhere in the file, you'll notice that there's no blank line
> between the section heading and the first bullet point.
>
> Jan
>
>> +   - Support for guest suspend and resume to/from RAM via vPSCI.
>> +     Applies only to non-hardware domain guests.
>> +

With the Nit from Jan B. applied:
  Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii

>>   ### Removed
>>   
>>   ## [4.21.0](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.21.0) - 2025-11-19


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 13:49:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 13:49:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176810.1501272 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQnEn-0007qe-80; Wed, 03 Dec 2025 13:49:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176810.1501272; Wed, 03 Dec 2025 13:49:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQnEn-0007qX-53; Wed, 03 Dec 2025 13:49:45 +0000
Received: by outflank-mailman (input) for mailman id 1176810;
 Wed, 03 Dec 2025 13:49:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kX12=6J=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vQnEl-0007qR-Jq
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 13:49:43 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ea91bd7d-d04e-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 14:49:41 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-47798ded6fcso41496305e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 05:49:41 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42e1caa86d0sm37716279f8f.39.2025.12.03.05.49.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Dec 2025 05:49:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ea91bd7d-d04e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764769780; x=1765374580; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NZmnbCb46luIJoKh+bwSc/BvLKT0WXdRDuJsInDK41U=;
        b=Lktg2u5aU8r6f5hOjGAm3e0WVhJK4P+zJcei7wXJDK0c+KjCQ4UpghNutqI7h6S6WN
         duhRtszzTMwuvMCd8DrqrlFyNBBKejl5eVbgFYqb/KodUbTIKTbcYGxsT8UkJLN+1bGL
         +8gamtSB/X8HJfKWOyqNaGOBJ8imhhZXxZLiJVd9x3+s83zb4qSIr3ZN032ZleWz4pww
         ksM5A6pj/FildwT5902mSzo2TWOWvMJgfzPNtO1DRtJXcpXwerps1MxVz7kBBlo2JCLz
         zsf6Fy8byIaW7j7AZU7UVs1VLUgscDODALkVzcDfsmDQtqyMVO0ybPwJXZnYnDMGLbkv
         Ho/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764769780; x=1765374580;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NZmnbCb46luIJoKh+bwSc/BvLKT0WXdRDuJsInDK41U=;
        b=Sm36uvdpdH4sO+WFxBszJxJ+BK82RHk6Xn+lTJ61OKfqqtKr5PZyd0IL8WZ7TmJkHf
         YnVj2oEenhmY01obNAsBmc9FYPsgbp3MVZZZjI/L5VsDYIFq8n5g9IB0C0EM6+6gAjQQ
         pBOLsSmWOCgmS7RBC1wnBhsMZ+NZ9Po3fpApI0TXttOskX4EcRX+IB29BJbz/xsrkDeT
         rqeYe/65sr+MWuwfCXVt4/1ZL6LvBgyw3a1d/o6lAMa3yC5z0HbldtJZv1F9l9emhupE
         BLH/yemdQGJ9tWMu3l0g3MgoowENM5KrfYHLugh4IfLWK/Bu+vIORwqOswbjhNoJT1CQ
         5x2g==
X-Forwarded-Encrypted: i=1; AJvYcCUNS3g93Ja8x8vbL46JsFXBnpnqdi5voZeoEqXd5Asb4prpHe6HK2W4S1gIy4HR9tCy6whT4C02O+Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw7CMZJtE+5SXD9YL8eRpNyURQlHZc8LXT8iTjgaMTDkCym3ie5
	oA1KWU7GOfLGmXTF4HlTwDOWsqmhweCRsKyvfOxIyJBfIlhigfuXaD12cflGB+pcKQ==
X-Gm-Gg: ASbGncvwv9llzsvws/5jhe+n20EsESutdaOhgYmCCL8h2v05brFpvMnbaNGNCuQMqWp
	WhhLb73O2W/tjfGjd+8ofJjqv5QxBOzDwOGDdLn/H6t6gNsTwZOvd/Wt+CiMQqS9gP9a6XV42pe
	q5o+vdR/gp5Jh5OQyxozFz9QwhlIRvMgESfGoL5xBpgWLWKnGTnOzqqrhEpHfA3/tiZ62otJZUF
	TtO87iToxRZOG8ggwNmNtKpJKDANKIJoGqFg4P8oYLTlmOqRWANykmiuvw4VfFanILfgpFVx1LD
	KrX3LZ4j9oJvcKXHe//a4Gn2cchPjJXz5iIYOw9nTyhCxcsUVa6HXGPtCuq5wV5lACCDbeZZjUT
	lh546sHe7owdetC6f7mc96bvLR+FZdragc+0TcZNQ0WCBMGAWdfYdlSYT5rSPHxczmffuW6nZZw
	L+hk57dNFJRguHxEsubn5cs9mdtyVtQtNUeXRFBpLz4AmUs44fLuA1hMIteDIorvFR2BHtWNNUI
	bk=
X-Google-Smtp-Source: AGHT+IEPU2Uxl2pnZVlp4nDsBWfsOfOqJbOJm4aNsjs1UBFYBaTiD5FjnsAYy+ROLWcT8K7cHP2RoQ==
X-Received: by 2002:a05:600c:450a:b0:477:b0b8:4dd0 with SMTP id 5b1f17b1804b1-4792af1b10fmr22846885e9.17.1764769780580;
        Wed, 03 Dec 2025 05:49:40 -0800 (PST)
Message-ID: <329029f1-cca5-4c33-8183-680ffabbb250@suse.com>
Date: Wed, 3 Dec 2025 14:49:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v15 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1764755558.git.xakep.amatop@gmail.com>
 <f05ece00c276187d764c7539142f29ee3c48987c.1764755558.git.xakep.amatop@gmail.com>
 <63ed70d8-ab4c-4b9e-8884-954f8f8194e4@suse.com>
 <CAGeoDV8zjwZ5YMLG4RKO6NCOwjeiS85mW5=yRP5E8MRYwgNESw@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAGeoDV8zjwZ5YMLG4RKO6NCOwjeiS85mW5=yRP5E8MRYwgNESw@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03.12.2025 13:13, Mykola Kvach wrote:
> Hi Jan,
> 
> Thank you for the review.
> 
> On Wed, Dec 3, 2025 at 12:11 PM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 03.12.2025 10:57, Mykola Kvach wrote:
>>> --- a/xen/common/domain.c
>>> +++ b/xen/common/domain.c
>>> @@ -26,6 +26,7 @@
>>>  #include <xen/hypercall.h>
>>>  #include <xen/delay.h>
>>>  #include <xen/shutdown.h>
>>> +#include <xen/suspend.h>
>>>  #include <xen/percpu.h>
>>>  #include <xen/multicall.h>
>>>  #include <xen/rcupdate.h>
>>> @@ -1363,6 +1364,9 @@ void domain_resume(struct domain *d)
>>>
>>>      spin_lock(&d->shutdown_lock);
>>>
>>> +    if ( arch_domain_resume(d) )
>>> +        goto fail;
>>
>> In case I didn't ask before: You're after a boolean result here, yet ...
>>
>>> --- /dev/null
>>> +++ b/xen/include/xen/suspend.h
>>> @@ -0,0 +1,25 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +
>>> +#ifndef XEN_SUSPEND_H
>>> +#define XEN_SUSPEND_H
>>> +
>>> +#if __has_include(<asm/suspend.h>)
>>> +#include <asm/suspend.h>
>>> +#else
>>> +static inline int arch_domain_resume(struct domain *d)
>>> +{
>>> +    return 0;
>>> +}
>>> +#endif
>>
>> ... int is being returned. Why?
> 
> Would you prefer I switch arch_domain_resume() to bool, or is keeping
> int acceptable?
> 
> I lean toward keeping int: the generic call site is shared by all arches,
> so future arches could inspect/handle specific error codes,

It's an arch hook, so the arch provides the error code. It's common code
which may want to inspect it.

> and this matches
> other arch hooks (e.g. arch_domain_teardown()) that are only checked for
> "rc != 0" before bailing.

And it's questionable there as well why they would return an error code
if the sole caller cares about a boolean outcome only.

> With int, I'll store the result and gate the rest:
> 
>     rc = arch_domain_resume(d);
>     if (rc)
>         goto fail;
> 
> If int works for you, I’ll keep it; otherwise I can flip to bool.

If you want to stick to int, please justify doing so in the description.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 13:56:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 13:56:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176823.1501282 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQnLF-0001HP-TP; Wed, 03 Dec 2025 13:56:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176823.1501282; Wed, 03 Dec 2025 13:56:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQnLF-0001HI-QV; Wed, 03 Dec 2025 13:56:25 +0000
Received: by outflank-mailman (input) for mailman id 1176823;
 Wed, 03 Dec 2025 13:56:24 +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
 <SRS0=Qm2A=6J=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vQnLE-0001Gk-37
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 13:56:24 +0000
Received: from mail-oo1-xc35.google.com (mail-oo1-xc35.google.com
 [2607:f8b0:4864:20::c35])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d2688b43-d04f-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 14:56:10 +0100 (CET)
Received: by mail-oo1-xc35.google.com with SMTP id
 006d021491bc7-656b8ca52e8so3062788eaf.3
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 05:56:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d2688b43-d04f-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764770169; x=1765374969; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UKWaL5gCfpXMlcxhMeqVo5bl8hb0oKqK3zPOGUyqrOY=;
        b=AsorDzxgKD+u+aUXmWLRD/DC/wPuF1zjNf8t0yWkv4P+rS+TjxXvUeNLLzYXKMAh1K
         rs+RBT0ruTXbquGrgLBMW/KYe/YA/Q6EMzNadZIEUufWvNtd0Jo8npaRYIoSJKeQRACa
         9Vjzim8viXcNOnTcoy43QYYHMH3Ybn7jEz+s4F/RbB+hu68tATxdsdSRPZoqoi9fjim0
         ImaMRsWJkulGdVyjqGcmERxRirNcT0Z5kb7sMEX4kJZJWcmH19/FCIa+qNxOYSbj+Kdc
         YtcYm+412lCO2jRzLLnSxFkH/WDscY9HxPjc5hurldRQqDEEZ64/yTr77cfFw9nZU98n
         roGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764770169; x=1765374969;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=UKWaL5gCfpXMlcxhMeqVo5bl8hb0oKqK3zPOGUyqrOY=;
        b=FJDuiPiFTSH06VdVJmLSlognqy2ithrwodjG891xSgVublm0J69snu0gsO5sYJByyC
         PIMPGlR7XxTb+NZrniQBCaLKTYTpifuSf8JdOKRv/dbM1wOs6wwn7TEgt+ENfGSbl2YW
         S2Qkv0iy8t8iYS1UZL/Tq2r+sGoQebl65DCIwKcomI737eV2gUZeu8OFYzo1Jr9jxBUR
         0IYndMmRCtHbwuAJlLxOoPh60nB46WSUniyvHLWm2dUoTqZ2lyPmCLTd4Jc1Zabbk7OW
         GgkhKEprv9Pw+gm+JcCRlzO3ELx1D0L9AZQ5gm+wvkj3T82OqeJ8PIId7150Fjsbkfnz
         8f9A==
X-Gm-Message-State: AOJu0Yxl2P0LcVy1eBWDkM6qb5VPXIEIAITD4bL50lgapsutoopa9+Cs
	BUkc8lMQACEYlzfsaQgQ0R3uirok3t7+7xk5y8XnDfJ8Jscd9z324kkyAHmwA65DUkfD2+LpMGb
	7Xq6k4/Zh3tDieZIF4oIb+ZKPxywx1Am/OkHNf/uYISWQiNZuohUbn776og==
X-Gm-Gg: ASbGncsoEdRzTp6WyyAMFED/d+PCBVym4Lc9/8JTC85TPKvOQb0SfBsKlVS44kyDUwe
	3Yhtlb7VQjS6TIK3TVzIso2KXMqL2VK1G+QbsfLEBTp4L0NHerQfRfRNiqzsqHXpm7yeCtNLt8g
	4xQjt4218b9fty4NOkpyAgi7LQKT0OZ60CezueC2DE5kWIEULAxReid0S2InS/K1OXErfLe/wF+
	vQb1oWZv8zUT5vH6LvnPBwo7mnXA+K91FUcA3LH7pLsrqc3hQoXtA2f6rj3T3Ny7CbkWQlpQrcy
	0XflQ80tHjEjk3HwXcJtrwmaJw==
X-Google-Smtp-Source: AGHT+IFY8l88TPjcaXyVr3ElJfsgCxVlF26knyY5+jJPiIIx7KBXG4SbCampcFTof5phslJvhPxH8iaXwCarEW+fPOM=
X-Received: by 2002:a05:6830:3bc6:b0:7c7:5991:3c7b with SMTP id
 46e09a7af769-7c94dcefb1cmr1192486a34.30.1764770169338; Wed, 03 Dec 2025
 05:56:09 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764254975.git.bertrand.marquis@arm.com> <b13dfa489f41d5b72a25f40d6e45d38ad1b93051.1764254975.git.bertrand.marquis@arm.com>
In-Reply-To: <b13dfa489f41d5b72a25f40d6e45d38ad1b93051.1764254975.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 3 Dec 2025 14:55:58 +0100
X-Gm-Features: AWmQ_bnYs8CL9YDCS78bczklvUanfgufxxqKX3ZNkA1Ge2Sc5CNqpMn2J4hCjBk
Message-ID: <CAHUa44EJdyBV0Uy9yY8xo7YuJPLfUM6v0RtfpRiEqUu=o1ig6g@mail.gmail.com>
Subject: Re: [PATCH 07/10] xen/arm: ffa: refactor direct requests via RUN helper
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Thu, Nov 27, 2025 at 4:53=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Share the SMCCC plumbing used by SEND_DIRECT and RUN via a common
> ffa_finish_direct_req_run() helper so canonical success and error cases
> are handled in one place.
>
> The dispatcher now routes FFA_RUN through ffa_handle_run(), and direct
> requests bail out early if a guest targets itself or a non-secure
> endpoint. This simplifies the direct path and prepares the mediator for
> the wider v1.2 register ABI.

>From the above, it sounds like FFA_RUN was already supported, but I
don't see how.

>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa.c         |   3 +
>  xen/arch/arm/tee/ffa_msg.c     | 111 ++++++++++++++++++++++++---------
>  xen/arch/arm/tee/ffa_private.h |   1 +
>  3 files changed, 84 insertions(+), 31 deletions(-)
>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 7392bb6c3db9..92cb6ad7ec97 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c

FFA_RUN should be removed from the list of unsupported FF-A interfaces
close to the top of this file.

The rest looks good.

Cheers,
Jens


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 14:05:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 14:05:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176838.1501292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQnU0-0003CJ-Tn; Wed, 03 Dec 2025 14:05:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176838.1501292; Wed, 03 Dec 2025 14:05:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQnU0-0003CC-QE; Wed, 03 Dec 2025 14:05:28 +0000
Received: by outflank-mailman (input) for mailman id 1176838;
 Wed, 03 Dec 2025 14:05:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WC6h=6J=epam.com=Oleksandr_Tyshchenko@srs-se1.protection.inumbo.net>)
 id 1vQnTz-0003C5-O4
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 14:05:27 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1d44882d-d051-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 15:05:25 +0100 (CET)
Received: from DB7PR03MB3577.eurprd03.prod.outlook.com (2603:10a6:5:3::28) by
 PA4PR03MB7008.eurprd03.prod.outlook.com (2603:10a6:102:f2::18) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.17; Wed, 3 Dec 2025 14:05:19 +0000
Received: from DB7PR03MB3577.eurprd03.prod.outlook.com
 ([fe80::49f8:7615:b631:1a66]) by DB7PR03MB3577.eurprd03.prod.outlook.com
 ([fe80::49f8:7615:b631:1a66%5]) with mapi id 15.20.9388.003; Wed, 3 Dec 2025
 14:05:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1d44882d-d051-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wJH+GQsbVCQZ6GN5uSeK9lFbw1GNoB11litd7q8F1gWIuQu1qe7ZQ1m5s3e5FvO0GnzDn9lnxnA/nrrGy67R9ssczPbWIrVQXhFCueWtfvrbttCAK9gWGde/ITuIUXOusexPa0oT+xioav53UmvB+BdAOux6Y7OScorxD7tbmtWIqv5uXgCFKs5MhaDH4dZYRuLrleohcjSJryN6Q10SsHtH02ZxhZVgL4hkac037DJGtVpcm8focxMzuWLkv3RCQX7O69S7Q7nKOEnm+VDoMd4h5lrQaH2bqn3nLVgEr1nFNbNpsQrsQbUtY9g+T8erZi3h5s8r/XSkRx4mPsqyww==
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=1dzrTSdORmenXOrS2yxeobEITLecqPGcnksgkRbPn0k=;
 b=gYYN+6XGRmd+DsyYBvSp9h2pixFRrH3GMpp6mLjJKlRea6LDr1NLURBYdwOKBFKZG0rckOPhBLK+KqiBTFl/ZtEZ5D8ig7DXC0wqfJ7xP4COwV71pQ7Cd5Eq8JL81Vmj5W1TWQWqoJuvZmVodqFZY//BlHbqjhdxvvJClS6HIAH3e4VF8rA2Dvlgk7x4n3pe0QHk2X6zHxWKSLmQTP/U+zA017KSxPZwa1Vc4HwU4ezkuvlxPWZc07oF6WIAsj2XxPpNb39GI+9RPRsVO2jOoIHVLKEIg99lesiIHfNTmNRiCFjmSwjL3sHGGI5MBFd1/A5RWqw3CT1r06Q81rPxJA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1dzrTSdORmenXOrS2yxeobEITLecqPGcnksgkRbPn0k=;
 b=IrobZ74wyIoQJygxPvnejwjfma+dtkI23q/Zg3ypKHaa/GEwYUuL3hNqG4vFc6HBrax/gvNCfjuQ+lk0nQcVSRQgFdeJrJuOsp7LB6lhRqoJ6DpzCc3++ZyKkEExhNznA49la8sQ6xZUOilz7ELNn0q7ZPE28+//HI4Egx5rZNxdgw6Jw++4lBTUIwezWHqzx/Vzkq1KdeUWUhGqVZ9nqvobqgsWpd7RUmJlSe1h3kVr0mplmcdAC3ffJPkvhUStbTpXHyVHU8Ky3Exh9j2fTykqPGag5YLMSk0XCkvIWkJbynvb1uxYWJDTeXQ0bBMyXSGkY2S2xXKRNy61DRIG+A==
From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH] xen/dom0less: Increase guest DTB size for high-vCPU
 guests
Thread-Topic: [PATCH] xen/dom0less: Increase guest DTB size for high-vCPU
 guests
Thread-Index: AQHcY8JwgLGK5hUeEUKxVWNaY5XmsLUO3xoAgADiZoCAACrCgIAAB+uA
Date: Wed, 3 Dec 2025 14:05:19 +0000
Message-ID: <66282501-ac91-4d00-89e4-8d3765786219@epam.com>
References: <20251202193246.3357821-1-oleksandr_tyshchenko@epam.com>
 <98e9f551-cd8f-4c0c-aa79-144466e68df0@epam.com>
 <a1443030-f594-4f25-b12a-37974eae64d2@epam.com>
 <291a2d7c-f9fa-4c36-bfd5-5706ebea3e2e@gmail.com>
In-Reply-To: <291a2d7c-f9fa-4c36-bfd5-5706ebea3e2e@gmail.com>
Accept-Language: en-US, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB7PR03MB3577:EE_|PA4PR03MB7008:EE_
x-ms-office365-filtering-correlation-id: d1820fa4-0156-4441-c09d-08de3274fe41
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|366016|42112799006|38070700021|7053199007;
x-microsoft-antispam-message-info:
 =?utf-8?B?VGFXVkZiZmdzOElUZVJ1Z2F2M3FZMmI5V05JL3RENHdPaGtvU3Y5Y2hPM2Fa?=
 =?utf-8?B?K3hzY1p2ZnVQZmp6QUVreVo4b3I4QldzeEdxeXI2d0JGdFgwNVZuWGNPdmFn?=
 =?utf-8?B?SVh4L3ZxME45OU5jekRqV3Q3SG9kb0lPQ0VFWWs3aVdWa1NyVUp4K3J1N1M2?=
 =?utf-8?B?NTlBY0pna3k2SUpML01PeWRxYTRjRWMyS2I3SlRLNUNJa3JhQnd4Zk9vSi8z?=
 =?utf-8?B?TlpKYlZyeTQ3VG5lamxGRFd2dllOU2Y0cTNmVk5vMEFzUTRyZml3TWNBUDY1?=
 =?utf-8?B?eXpqTkNBY29pb1I4WFVvRHVpUzQ3U1NlSVBxbXU0Rk5ablUxazM5Nm13Rk5y?=
 =?utf-8?B?YUZ1QTRQdzVZZlBBZW1QZzllM2pWNTdveHJLaE1HWVRmRXIreng3SmNCSkdO?=
 =?utf-8?B?a0dINGNuRFZ6RTArNmE4WTNXRnE4dnJzdjZwOWJxdHlwTXYrL2Z2SFZBUW5w?=
 =?utf-8?B?ZFFFN3Q4TEh5aVJYUllaNmVGdk5uNzVsYUFLM3hVRkFnWExNSzluZ0l5Nk5W?=
 =?utf-8?B?ODFIbTBkc0E2NDdXaERyUFUzK1dqdDQxWVlHR1l4VDhzaUM1ZUxpdy9oQlpq?=
 =?utf-8?B?bmhhSHk0QVk5dHZaRUc2NXF6TG1IOEpIcnhIU0lhR1JtK2JiSm9jYlhnQmtC?=
 =?utf-8?B?YzZDek1HdWNObEd2R2FLOWh2cWRsK1ZnOFJUVFNRRENJNXBMT3ZrcXRrcGMx?=
 =?utf-8?B?QUxyV1J0dUZHR0lNY3VuTS9kaGJKK2dHVmxPU3J2WEJ0MUVWbWlKMW8wR0tG?=
 =?utf-8?B?aTZaTXBodGRWUDJFK2lieVcrUitLVTlocE1WNi80b3l4RmVyMHdNWmRxRTRi?=
 =?utf-8?B?NHR5ZDlzbzI1andpcEJLSWtOdVlFYVZIM1JZUU1sKytUeTZXVWdEcm5saTJD?=
 =?utf-8?B?L0xTaUJWZW1FTFhWUjVWWnpENDhBRjRXQ2FTeXhEK0drMVNWYlRiY2cvblJX?=
 =?utf-8?B?N1MyRDMwdU5xOUNzUUx0QW5xZnlYdVZ6amVncmNGL0l4d0Z5YzRzNEUvMnFV?=
 =?utf-8?B?NjF0L0pGOWlybkhpWGw2RlFUamdybWdMR2FyVnArT05sWmZvUllNeHB2OWJB?=
 =?utf-8?B?b0M5MCtCQ2dCSXEvUmljbXFtYU5sOUhnR2JmMGdYZkdienVlQTd2ZGw3VXp4?=
 =?utf-8?B?cEV6bnRCeTBnalUvTEgxNHF2dkZUV2lMK2YvaVNneWk5Nk1nUHRmTGhFNE50?=
 =?utf-8?B?RXhoM1pMaXRuU1ZDd0ZleFNHdG1aTHRNdlhzM3BUVkRNNVlDd0lBcUZnOS94?=
 =?utf-8?B?NnpuNkJpc2FDbjhyL29tSWVWZHpjOGNGWm8wdHk0S1I0VEZCeS8xbzdNZ2VE?=
 =?utf-8?B?S2RDWkpBUFc4dFY1ZUJ4OFB4V1JZZTJpbytqb2ZMQTh2MExHZjZwK29Pd0ND?=
 =?utf-8?B?UkJvUkcvTnhSVVFNaldvRGpXa3RQYzNjOVFsZHlSYVduRnlLQXI3UHZKS3FU?=
 =?utf-8?B?dFpXalVPbjZsNXo3SGs4Q0FtM293VVkyWENOWjlHTkdJenI4b3RiMVdzWEhy?=
 =?utf-8?B?TElML0NWNUtHSndqWEN0RTFrYVQwb0F6N1QwMWJJeEhEeHBUMlkwM2VEVWRo?=
 =?utf-8?B?b05VNHdlcG9wZWExYmFDRUV1M0NLR2V5ak9tSXBCRFF5cld6eFROeFV5WXNN?=
 =?utf-8?B?M2VMb0hoYTg3eXFTaFp1cU92S2daUWhtd3JlL0ROdnJ1TzVZRXlEU0lGdmZz?=
 =?utf-8?B?ZFVoQXlSdVpkRkh5NHJ5cTNWdzJNbUlMWndSNU0yczNmdHlpTU0wUUJmV3Bs?=
 =?utf-8?B?VHhjc3lIdUpzVk5WVDBzbDFLV0d5ZDBhSmJ6WHRqQjY5V1k0SXZEV051M0xK?=
 =?utf-8?B?V3pVKzFsdTl6b05CK0YxdlYwSldGN2ZtY1o2c1VLV0c1WC9qWW5jbm1EbE84?=
 =?utf-8?B?bjl4Mms0OVY3bDVla2J4NXVWdDdNMHBuQW9JWkR6M2dmTzI0ak96Yk1BOUJq?=
 =?utf-8?B?U2g4OUZtZ2l6YmgyOUpEbmd0WTBVRm9WM2tPRkt5RnVkVEsxTi8rRHlYbGZz?=
 =?utf-8?B?NGZOQmNzVXhqRS9UVjR0TmIrM3dwUGNycENPRFhUN3JvNHRsVDdkTmFIamRL?=
 =?utf-8?Q?CcSbOq?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR03MB3577.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(42112799006)(38070700021)(7053199007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WkpHOTVNMFhMQVhrSW5oWXF3MEQ4dFl1VCtLWUpnd3NPcHBrMGFNUUUwYVVD?=
 =?utf-8?B?Z1VqRlpHb1E1U1JqaDdKZWlLaytHNStyTUpnSGduL0k2clA2QnJSMGk3QzJF?=
 =?utf-8?B?NVJMdExpbFBXaEdEOEtZL1hKMDhMUTd6eTRTaytJYkhOczRsUjBPZk1wWDVs?=
 =?utf-8?B?d3REeEI1elI0N052KzdYaXJYUDlJTThaZW5lWkRLVGhTRFRqVVhYRnhTM2xR?=
 =?utf-8?B?ME1ndFRCYytjZDJEQnQvajZGbmNHdThDQ1BtY1NuTnp0VTV0NDhOVndyVWlp?=
 =?utf-8?B?UFZGL0szTWhXaS9uSlBsaDlPSU5WRzVkUmlkVHlKaDljZ3VJbVRDQk0yOVZM?=
 =?utf-8?B?WC84dEJTYkxpQ0J2dGlKeVRNQUlYdm1mcjB5Y0VCLy9udUFnSytPNVNTYUF5?=
 =?utf-8?B?QzJtdEtROXFCOXVoWkl2THJDdXNrQmczaXNpVldIaWhVNEp1NGZlbHZJRFJP?=
 =?utf-8?B?MXd3N0lxUFkveW1HYnhFU2g0VE9CSkx5ODJlMHphVnZ6ekJBN2dNTm1vbTNl?=
 =?utf-8?B?RjluMG0yeVFHODVZQThSUlRaSHF5b0dqbXliR0VaNTRqaTc2dzZ1MnZMaThH?=
 =?utf-8?B?K2ZGT2VZSm5lMktOTEQxaCs4TE5jVkhSRFlvVmZIU1lDeVpJRzFUdHJxZ1h1?=
 =?utf-8?B?ZzBDbi9XQVNjb2MvbFdTMVN6S3JVVDFmRDBzckVJL1BQWU9KTFowSTdZV0ht?=
 =?utf-8?B?SGpOVkZoeXA3aEdDRGVLUjV6bEpTeEpkbTNGaC9OTTF2dW5yaHdVbVI4cXAz?=
 =?utf-8?B?YnpLQklBcGJMMW9RYmZEQ2Nwa3dVWFN3Y0VXSHI0c1pkdlUreVVZS2dwK0Fx?=
 =?utf-8?B?d1NPTTYySHlxUHppMjNVYlNud2pqQU95Q1VIMXFUaWlnV3Vnd05tQmpkMmlz?=
 =?utf-8?B?ZzBMTXJlZ1RNcUw5SThhSG9TR2JaRm54VkszcHBJcE9BTWxkV24zbUQ4TmVy?=
 =?utf-8?B?MTFSYlV3UWpZaG5yWHhmcUd3WExXTGhhUmVHT08vb3VPVFVKOXNIYjE3ZERP?=
 =?utf-8?B?Z0N0OVZ3ZVZ3Tnp0dFp1UGlub1k0TFQyUzY5Y1ZXMlR1WXJKR0VNNnlyZU5U?=
 =?utf-8?B?NVBTa2RRaFV4dWdQWmNKK0VEZHNnL3F2MHMxeUtyWEszcVgySEFCSDJEeTBm?=
 =?utf-8?B?RzUvOXdnNlc1dUJRUGhxR2g2WkpjYlRhOUduVTVIK1ZQYm1XZjVWMkMvSnJl?=
 =?utf-8?B?REZVTWV4MFR4K1A0K3VGQnlmb3Y5WjY1L0hIOGRFZmRDVjhnREZBS0J3Sm5R?=
 =?utf-8?B?ZThsekRqMmZMU0F5MGVZUXN1bk9LWDNCNnZVUTJDU2NxaXRVSlRIa0VpZCta?=
 =?utf-8?B?VVNUZHI3aHV1L2VDK3VuTG5VL2dkQzhJelNwRFgyMVRHRUhEeXYxRjVxZWUr?=
 =?utf-8?B?TXQ0S2lLY0ZCZXlkMFhTZE54Ry85VlJmanAzYWs3TVJLZ0Rpa29WZlErYmtN?=
 =?utf-8?B?R0xiSHQxNkdxNHVVNzRxajB4bllXbVBjVU15UzdkNHRsK0N5Y3pubEkrSnN1?=
 =?utf-8?B?K2pKU1VLbnIyOEprU3RLUXBES2l5SEx3T0FqQzdDVVlKNTVRU0lSY3dVUVg4?=
 =?utf-8?B?WXh4SllWems1VVFUT3RFc3hHRUxkTldDNDd5cHB1Z2FvOGphSXpDdEsrNys1?=
 =?utf-8?B?M090T3VXK2dZeWNvcGF6TmllVStkSmxnRGhvODdTWjl4UXpxMmpBcC9DWldl?=
 =?utf-8?B?NC9yZlo4Yk51aEhmNWhKOFZOZFlUTTN3SVpKTXEvODVtVFN4S2lrZjRWUmJr?=
 =?utf-8?B?blFSYnMrd0JEQmFRNHBXWlpRMmJGaTJkYkFEWE9KZzBtc3E1VmltWVpua2ta?=
 =?utf-8?B?c1hhOUdGbGhsM29VckRqM2NVbWJqR3B6QzB2WExtTTJVMXM1QzRoV3F2MnBI?=
 =?utf-8?B?akU3Z1pVcFhya3Y4R0hlNnVTOXJ3dGFPQ3BSUFlhZEthbys1QnVjMUc3ZnNq?=
 =?utf-8?B?Y1NDTk9EVXZoSkZQTS9SbUtjM1FmOThrQ3pQVlFGYldDcy9BS3FsQ1NDT1Jr?=
 =?utf-8?B?WEdKUEVtYjBlTjI4a2wwZzA2M0lEUUVFU3pLUGRqTCt3UjA2OU9RL2MvZ0pn?=
 =?utf-8?B?QWVGamJ3aGltUlpDM2paa0REK0JQMnIxQ09qdjZ2dThEZEY4SEJGUmh5c3I4?=
 =?utf-8?B?c3FheDhCWmk5ZUFmQnE0KzF4TE16VnI1ZkVVTnZ0Q3ZMYmxaQ210UEpqRlVY?=
 =?utf-8?Q?AHJkGlH7nFH3G2hmI0BlFVc=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <918EA749AFCF164FA7E30E4C0FCB1384@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB3577.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d1820fa4-0156-4441-c09d-08de3274fe41
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Dec 2025 14:05:19.6138
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: t6TWwIK7U2LrzAqi/VLyjAMlA5IXGd1hXfRK/gIUa99ZpeZjrVYsxOlRJ1XNWIYZv36fgKh26tabA9s0EB596ur/gD2Nt1tn19AeKResG8A=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7008

DQoNCk9uIDAzLjEyLjI1IDE1OjM2LCBPbGVrc2lpIEt1cm9jaGtvIHdyb3RlOg0KDQoNCj4gW1lv
dSBkb24ndCBvZnRlbiBnZXQgZW1haWwgZnJvbSBvbGVrc2lpLmt1cm9jaGtvQGdtYWlsLmNvbS4g
TGVhcm4gd2h5IA0KPiB0aGlzIGlzIGltcG9ydGFudCBhdCBodHRwczovL2FrYS5tcy9MZWFybkFi
b3V0U2VuZGVySWRlbnRpZmljYXRpb24gXQ0KPiANCj4gSGVsbG8gT2xla3NhbmRyLA0KDQpIZWxs
byBPbGVrc2lpDQoNCj4gDQo+IE9uIDEyLzMvMjUgMTI6MDMgUE0sIE9sZWtzYW5kciBUeXNoY2hl
bmtvIHdyb3RlOg0KPj4gT24gMDIuMTIuMjUgMjM6MzMsIEdyeWdvcmlpIFN0cmFzaGtvIHdyb3Rl
Og0KPj4+DQo+Pj4gT24gMDIuMTIuMjUgMjE6MzIsIE9sZWtzYW5kciBUeXNoY2hlbmtvIHdyb3Rl
Og0KPj4+PiBDcmVhdGluZyBhIGd1ZXN0IHdpdGggYSBoaWdoIHZDUFUgY291bnQgKGUuZy4sID4z
MikgZmFpbHMgYmVjYXVzZQ0KPj4+PiB0aGUgZ3Vlc3QncyBkZXZpY2UgdHJlZSBidWZmZXIgKERP
TVVfRFRCX1NJWkUpIG92ZXJmbG93cyBkdXJpbmcgDQo+Pj4+IGNyZWF0aW9uLg0KPj4+PiBUaGUg
RkRUIG5vZGVzIGZvciBlYWNoIHZDUFUgcXVpY2tseSBleGhhdXN0IHRoZSA0S2lCIGJ1ZmZlciwN
Cj4+Pj4gY2F1c2luZyBhIGd1ZXN0IGNyZWF0aW9uIGZhaWx1cmUuDQo+Pj4+DQo+Pj4+IEluY3Jl
YXNlIHRoZSBidWZmZXIgc2l6ZSB0byAxNktpQiB0byBzdXBwb3J0IGd1ZXN0cyB1cCB0bw0KPj4+
PiB0aGUgTUFYX1ZJUlRfQ1BVUyBsaW1pdCAoMTI4KS4NCj4+Pj4NCj4+Pj4gU2lnbmVkLW9mZi1i
eTogT2xla3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5kcl90eXNoY2hlbmtvQGVwYW0uY29tPg0K
Pj4+PiAtLS0NCj4+Pj4gTm90aWNlZCB3aGVuIHRlc3RpbmcgdGhlIGJvdW5kYXJ5IGNvbmRpdGlv
bnMgZm9yIGRvbTBsZXNzIGd1ZXN0DQo+Pj4+IGNyZWF0aW9uIG9uIEFybTY0Lg0KPj4+Pg0KPj4+
PiBEb21haW4gY29uZmlndXJhdGlvbjoNCj4+Pj4gZmR0IG1rbm9kIC9jaG9zZW4gZG9tVTANCj4+
Pj4gZmR0IHNldCAvY2hvc2VuL2RvbVUwIGNvbXBhdGlibGUgInhlbixkb21haW4iDQo+Pj4+IGZk
dCBzZXQgL2Nob3Nlbi9kb21VMCBcI2FkZHJlc3MtY2VsbHMgPDB4Mj4NCj4+Pj4gZmR0IHNldCAv
Y2hvc2VuL2RvbVUwIFwjc2l6ZS1jZWxscyA8MHgyPg0KPj4+PiBmZHQgc2V0IC9jaG9zZW4vZG9t
VTAgbWVtb3J5IDwweDAgMHgxMDAwMCA+DQo+Pj4+IGZkdCBzZXQgL2Nob3Nlbi9kb21VMCBjcHVz
IDwzMz4NCj4+Pj4gZmR0IHNldCAvY2hvc2VuL2RvbVUwIHZwbDAxMQ0KPj4+PiBmZHQgbWtub2Qg
L2Nob3Nlbi9kb21VMCBtb2R1bGVANDA0MDAwMDANCj4+Pj4gZmR0IHNldCAvY2hvc2VuL2RvbVUw
L21vZHVsZUA0MDQwMDAwMCBjb21wYXRpYmxlwqAgIm11bHRpYm9vdCxrZXJuZWwiDQo+Pj4+ICJt
dWx0aWJvb3QsbW9kdWxlIg0KPj4+PiBmZHQgc2V0IC9jaG9zZW4vZG9tVTAvbW9kdWxlQDQwNDAw
MDAwIHJlZyA8MHgwIDB4NDA0MDAwMDAgMHgwIDB4MTYwMDAgPg0KPj4+PiBmZHQgc2V0IC9jaG9z
ZW4vZG9tVTAvbW9kdWxlQDQwNDAwMDAwIGJvb3RhcmdzICJjb25zb2xlPXR0eUFNQTAiDQo+Pj4+
DQo+Pj4+IEZhaWx1cmUgbG9nOg0KPj4+PiAoWEVOKSBYZW4gZG9tMGxlc3MgbW9kZSBkZXRlY3Rl
ZA0KPj4+PiAoWEVOKSAqKiogTE9BRElORyBET01VIGNwdXM9MzMgbWVtb3J5PTB4MTAwMDBLQiAq
KioNCj4+Pj4gKFhFTikgTG9hZGluZyBkMSBrZXJuZWwgZnJvbSBib290IG1vZHVsZSBAIDAwMDAw
MDAwNDA0MDAwMDANCj4+Pj4gKFhFTikgQWxsb2NhdGluZyBtYXBwaW5ncyB0b3RhbGxpbmcgNjRN
QiBmb3IgZDE6DQo+Pj4+IChYRU4pIGQxIEJBTktbMF0gMHgwMDAwMDA0MDAwMDAwMC0weDAwMDAw
MDQ0MDAwMDAwICg2NE1CKQ0KPj4+PiAoWEVOKSBEZXZpY2UgdHJlZSBnZW5lcmF0aW9uIGZhaWxl
ZCAoLTIyKS4NCj4+Pj4gKFhFTikNCj4+Pj4gKFhFTikgKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKg0KPj4+PiAoWEVOKSBQYW5pYyBvbiBDUFUgMDoNCj4+Pj4gKFhFTikg
Q291bGQgbm90IHNldCB1cCBkb21haW4gZG9tVTAgKHJjID0gLTIyKQ0KPj4+PiAoWEVOKSAqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+Pj4+IC0tLQ0KPj4+PiAtLS0N
Cj4+Pj4gwqDCoCB4ZW4vY29tbW9uL2RldmljZS10cmVlL2RvbTBsZXNzLWJ1aWxkLmMgfCA4ICsr
KysrLS0tDQo+Pj4+IMKgwqAgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMyBkZWxl
dGlvbnMoLSkNCj4+Pj4NCj4+Pj4gZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZGV2aWNlLXRyZWUv
ZG9tMGxlc3MtYnVpbGQuYyBiL3hlbi9jb21tb24vDQo+Pj4+IGRldmljZS10cmVlL2RvbTBsZXNz
LWJ1aWxkLmMNCj4+Pj4gaW5kZXggM2Y1Yjk4N2VkOC4uZDdkMGE0N2I5NyAxMDA2NDQNCj4+Pj4g
LS0tIGEveGVuL2NvbW1vbi9kZXZpY2UtdHJlZS9kb20wbGVzcy1idWlsZC5jDQo+Pj4+ICsrKyBi
L3hlbi9jb21tb24vZGV2aWNlLXRyZWUvZG9tMGxlc3MtYnVpbGQuYw0KPj4+PiBAQCAtNDYxLDEw
ICs0NjEsMTIgQEAgc3RhdGljIGludCBfX2luaXQNCj4+Pj4gZG9tYWluX2hhbmRsZV9kdGJfYm9v
dF9tb2R1bGUoc3RydWN0IGRvbWFpbiAqZCwNCj4+Pj4gwqDCoCAvKg0KPj4+PiDCoMKgwqAgKiBU
aGUgbWF4IHNpemUgZm9yIERUIGlzIDJNQi4gSG93ZXZlciwgdGhlIGdlbmVyYXRlZCBEVCBpcyBz
bWFsbA0KPj4+PiAobm90IGluY2x1ZGluZw0KPj4+PiAtICogZG9tVSBwYXNzdGhyb3VnaCBEVCBu
b2RlcyB3aG9zZSBzaXplIHdlIGFjY291bnQgc2VwYXJhdGVseSksIDRLQg0KPj4+PiBhcmUgZW5v
dWdoDQo+Pj4+IC0gKiBmb3Igbm93LCBidXQgd2UgbWlnaHQgaGF2ZSB0byBpbmNyZWFzZSBpdCBp
biB0aGUgZnV0dXJlLg0KPj4+PiArICogZG9tVSBwYXNzdGhyb3VnaCBEVCBub2RlcyB3aG9zZSBz
aXplIHdlIGFjY291bnQgc2VwYXJhdGVseSkuIFRoZQ0KPj4+PiBzaXplIGlzDQo+Pj4+ICsgKiBw
cmltYXJpbHkgZHJpdmVuIGJ5IHRoZSBudW1iZXIgb2YgdkNQVSBub2Rlcy4gVGhlIHByZXZpb3Vz
IDRLaUINCj4+Pj4gYnVmZmVyIHdhcw0KPj4+PiArICogaW5zdWZmaWNpZW50IGZvciBndWVzdHMg
d2l0aCBoaWdoIHZDUFUgY291bnRzLCBzbyBpdCBoYXMgYmVlbg0KPj4+PiBpbmNyZWFzZWQNCj4+
Pj4gKyAqIHRvIHN1cHBvcnQgdXAgdG8gdGhlIE1BWF9WSVJUX0NQVVMgbGltaXQgKDEyOCkuDQo+
Pj4+IMKgwqDCoCAqLw0KPj4+PiAtI2RlZmluZSBET01VX0RUQl9TSVpFIDQwOTYNCj4+Pj4gKyNk
ZWZpbmUgRE9NVV9EVEJfU0laRSAoNDA5NiAqIDQpDQo+Pj4gTWF5IGJlIEl0IHdhbnRzIEtjb25m
aWc/DQo+Pj4gT3Igc29tZSBmb3JtdWxhIHdoaWNoIGFjY291bnRzIE1BWF9WSVJUX0NQVVM/DQo+
Pg0KPj4gSSBhZ3JlZSB0aGF0IHVzaW5nIGEgZm9ybXVsYSB0aGF0IGFjY291bnRzIGZvciBNQVhf
VklSVF9DUFVTIGlzIHRoZSBtb3N0DQo+PiByb2J1c3QgYXBwcm9hY2guDQo+IA0KPiBPbmUgb3B0
aW9uIGNvdWxkIGJlIHRvIGRldGVjdCB0aGUgc2l6ZSBhdCBydW50aW1lLCBlc3NlbnRpYWxseSwg
dHJ5IHRvIA0KPiBhbGxvY2F0ZQ0KPiBpdCwgYW5kIGlmIGFuIGVycm9yIG9jY3VycywgaW5jcmVh
c2UgdGhlIGZkdHNpemUgYW5kIHRyeSBhZ2Fpbi4gSSBkb27igJl0IA0KPiByZWFsbHkNCj4gbGlr
ZSB0aGlzIGFwcHJvYWNoLCBidXQgSSB3YW50ZWQgdG8gbWVudGlvbiBpdCBpbiBjYXNlIHNvbWVv
bmUgZmluZHMgaXQgDQo+IHVzZWZ1bC4NCj4gVGhlIGJlbmVmaXQgb2YgdGhpcyBhcHByb2FjaCBp
cyB0aGF0IGlmLCBpbiB0aGUgZnV0dXJlLCBzb21ldGhpbmcgZWxzZSBzdWNoDQo+IGFzIGEgQ1BV
IG5vZGUgY29udHJpYnV0ZXMgdG8gdGhlIGZpbmFsIEZEVCBzaXplLCB3ZSB3b27igJl0IG5lZWQg
dG8gdXBkYXRlIA0KPiB0aGUNCj4gZm9ybXVsYSBhZ2Fpbi4NCg0KSSBnb3QgeW91ciBwb2ludCBh
bmQgdW5kZXJzdGFuZCB0aGUgZ29hbCwgYnV0IEkgc2VlIHRoZSBmb2xsb3dpbmcgDQpjb25jZXJu
cyB3aXRoIHRoYXQ6DQoNCjEuIFhlbiBoYXMgdG8gZG8gYWxsIHRoZSB3b3JrIHRvIGJ1aWxkIHRo
ZSBkZXZpY2UgdHJlZSwgZmFpbCwgdGhyb3cgYWxsIA0KdGhhdCB3b3JrIGF3YXksIGFuZCB0aGVu
IHN0YXJ0IG92ZXIgYWdhaW4uIFRoaXMgd2FzdGVzIHRpbWUgZHVyaW5nIHRoZSANCnN5c3RlbSdz
IGJvb3QtdXAgcHJvY2Vzcy4NCg0KMi4gQm9vdC10aW1lIGNvZGUgc2hvdWxkIGJlIGFzIGRldGVy
bWluaXN0aWMgYW5kIHByZWRpY3RhYmxlIGFzIA0KcG9zc2libGUuIEEgc3RhdGljLCB3b3JzdC1j
YXNlIGNhbGN1bGF0aW9uIGlzIGhpZ2hseSBwcmVkaWN0YWJsZSwgDQp3aGVyZWFzIGEgcmV0cnkg
bG9vcCBpcyBub3QuDQoNCjMuIEl0IGFkZHMgbG9naWNhbCBjb21wbGV4aXR5IChlcnJvciBoYW5k
bGluZywgbG9vcGluZywgc2l6ZSBpbmNyZW1lbnRzKSANCnRvIHdoYXQgc2hvdWxkIGJlIGEgc3Ry
YWlnaHRmb3J3YXJkIHNldHVwIHN0ZXAuDQoNCj4gDQo+Pg0KPj4gSGVyZSBpcyB0aGUgZW1waXJp
Y2FsIGRhdGEgKGJ5IHRlc3Rpbmcgd2l0aCB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGV2aWNlDQo+
PiB0cmVlIG5vZGVzIChlLmcuLCBoeXBlcnZpc29yIGFuZCByZXNlcnZlZC1tZW1vcnkgbm9kZXMp
IGFuZCBlbmFibGluZyBhbGwNCj4+IG9wdGlvbmFsIENQVSBwcm9wZXJ0aWVzIChlLmcuLCBjbG9j
ay1mcmVxdWVuY3kpKToNCj4+DQo+PiBjcHVzPTENCj4+IChYRU4pIEZpbmFsIGNvbXBhY3RlZCBG
RFQgc2l6ZSBpczogMTU4NiBieXRlcw0KPj4NCj4+IGNwdXM9Mg0KPj4gKFhFTikgRmluYWwgY29t
cGFjdGVkIEZEVCBzaXplIGlzOiAxNjk4IGJ5dGVzDQo+Pg0KPj4gY3B1cz0zMg0KPj4gKFhFTikg
RmluYWwgY29tcGFjdGVkIEZEVCBzaXplIGlzOiA1MDU4IGJ5dGVzDQo+Pg0KPj4gY3B1cz0xMjgN
Cj4+IChYRU4pIEZpbmFsIGNvbXBhY3RlZCBGRFQgc2l6ZSBpczogMTU4MTAgYnl0ZXMNCj4+DQo+
Pg0KPj4gc3RhdGljIGludCBfX2luaXQgcHJlcGFyZV9kdGJfZG9tVShzdHJ1Y3QgZG9tYWluICpk
LCBzdHJ1Y3Qga2VybmVsX2luZm8NCj4+ICpraW5mbykNCj4+IMKgwqAgew0KPj4gwqDCoMKgwqDC
oMKgIGludCBhZGRyY2VsbHMsIHNpemVjZWxsczsNCj4+IEBAIC01NjksNiArNTY5LDggQEAgc3Rh
dGljIGludCBfX2luaXQgcHJlcGFyZV9kdGJfZG9tVShzdHJ1Y3QgZG9tYWluICpkLA0KPj4gc3Ry
dWN0IGtlcm5lbF9pbmZvICpraW5mbykNCj4+IMKgwqDCoMKgwqDCoCBpZiAoIHJldCA8IDAgKQ0K
Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBlcnI7DQo+Pg0KPj4gK8KgwqDCoCBwcmludGso
IkZpbmFsIGNvbXBhY3RlZCBGRFQgc2l6ZSBpczogJWQgYnl0ZXNcbiIsDQo+PiBmZHRfdG90YWxz
aXplKGtpbmZvLT5mZHQpKTsNCj4+ICsNCj4+IMKgwqDCoMKgwqDCoCByZXR1cm4gMDsNCj4+DQo+
PiDCoMKgwqDCoCBlcnI6DQo+Pg0KPj4gVGhpcyBkYXRhIHNob3dzIChhc3N1bWluZyBteSB0ZXN0
aW5nL2NhbGN1bGF0aW9ucyBhcmUgY29ycmVjdCk6DQo+Pg0KPj4gLSBBIG1hcmdpbmFsIGNvc3Qg
b2YgMTEyIGJ5dGVzIHBlciB2Q1BVIGluIHRoZSBmaW5hbCwgY29tcGFjdGVkIGRldmljZSANCj4+
IHRyZWUuDQo+PiAtIEEgZml4ZWQgYmFzZSBzaXplIG9mIDE0NzQgYnl0ZXMgZm9yIGFsbCBub24t
dkNQVSBjb250ZW50Lg0KPj4NCj4+IEJhc2VkIG9uIHRoYXQgSSB3b3VsZCBwcm9wb3NlIHRoZSBm
b2xsb3dpbmcgZm9ybXVsYSB3aXRoIHRoZSANCj4+IGp1c3RpZmljYXRpb246DQo+Pg0KPj4gLyoN
Cj4+IMKgwqAgKiBUaGUgc2l6ZSBpcyBjYWxjdWxhdGVkIGZyb20gYSBmaXhlZCBiYXNlbGluZSBw
bHVzIGEgc2NhbGFibGUNCj4+IMKgwqAgKiBwb3J0aW9uIGZvciBlYWNoIHBvdGVudGlhbCB2Q1BV
IG5vZGUgdXAgdG8gdGhlIHN5c3RlbSBsaW1pdA0KPj4gwqDCoCAqIChNQVhfVklSVF9DUFVTKSwg
YXMgdGhlIHZDUFUgbm9kZXMgYXJlIHRoZSBwcmltYXJ5IGNvbnN1bWVyDQo+PiDCoMKgICogb2Yg
c3BhY2UuDQo+PiDCoMKgICoNCj4+IMKgwqAgKiBUaGUgYmFzZWxpbmUgb2YgMktpQiBpcyBhIHNh
ZmUgYnVmZmVyIGZvciBhbGwgbm9uLXZDUFUgRkRUDQo+PiDCoMKgICogY29udGVudC4gVGhlIDEy
OCBieXRlcyBwZXIgdkNQVSBpcyBkZXJpdmVkIGZyb20gYSB3b3JzdC1jYXNlDQo+PiDCoMKgICog
YW5hbHlzaXMgb2YgdGhlIEZEVCBjb25zdHJ1Y3Rpb24tdGltZSBzaXplIGZvciBhIHNpbmdsZQ0K
Pj4gwqDCoCAqIHZDUFUgbm9kZS4NCj4+IMKgwqAgKi8NCj4+ICNkZWZpbmUgRE9NVV9EVEJfU0la
RSAoMjA0OCArIChNQVhfVklSVF9DUFVTICogMTI4KSkNCj4+DQo+PiAqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+Pg0KPj4gUGxlYXNlIHRlbGwgbWUgd291
bGQgeW91IGJlIGhhcHB5IHdpdGggdGhhdD8NCj4gDQo+IEkgd291bGQgYWxzbyBsaWtlIHRvIG5v
dGUgdGhhdCB3ZSBwcm9iYWJseSB3YW50IHRvIGFkZCBhIEJVSUxEX0JVR19PTigpIA0KPiBjaGVj
aw0KPiB0byBlbnN1cmUgdGhhdCBET01VX0RUQl9TSVpFIGlzIG5vdCBsYXJnZXIgdGhhbiBTWl8y
TS4gT3RoZXJ3aXNlLCB3ZSANCj4gd291bGQgZ2V0DQo+IGEgcnVudGltZSBlcnJvciBpbnN0ZWFk
IG9mIGEgYnVpbGQtdGltZSBmYWlsdXJlLCBzaW5jZSB0aGVyZSBpcyBjb2RlIA0KPiB0aGF0IGxp
bWl0cw0KPiBmZHRzaXplIHRvIFNaXzJNOg0KPiANCj4gIMKgwqDCoCAvKiBDYXAgdG8gbWF4IERU
IHNpemUgaWYgbmVlZGVkICovDQo+ICDCoMKgwqAgZmR0X3NpemUgPSBtaW4oZmR0X3NpemUsIFNa
XzJNKTsNCg0KDQpvaywgc291bmRzIHJlYXNvbmFibGUsIHdpbGwgYWRkOg0KDQpCVUlMRF9CVUdf
T04oRE9NVV9EVEJfU0laRSA+IFNaXzJNKTsNCg0KPiANCj4gVGhhbmtzLg0KPiANCj4gfiBPbGVr
c2lpDQo+IA0K


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 14:12:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 14:12:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176849.1501302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQnac-0004q1-Je; Wed, 03 Dec 2025 14:12:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176849.1501302; Wed, 03 Dec 2025 14:12:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQnac-0004pu-Gj; Wed, 03 Dec 2025 14:12:18 +0000
Received: by outflank-mailman (input) for mailman id 1176849;
 Wed, 03 Dec 2025 14:12:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4PLl=6J=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vQnaa-0004pn-Nm
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 14:12:17 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 10c854da-d052-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 15:12:13 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 57E014EEBE47;
 Wed,  3 Dec 2025 15:12:12 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 10c854da-d052-11f0-980a-7dc792cee155
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1764771132;
	b=XxT/wl/yG7bewKr0OOgk6FCb9MSvQaCXcsK9Gcd4apkqlJ5EXfj8qqDRnk2QF9poZTaZ
	 IAjoFfmZ7/GnVx0m/y61SOPHE+ic+pa5sjAzdQ0a5QJM7R+LBmnDs92U3Ll+SFm1FJeCD
	 Cv9l0B1bC6EwszJIacgxlORoVz9NHieDw//ZsCqilCIIWssRjAudyR+oRghp0HQtQsVrz
	 0vtnVr7UKAZ2sESh5HD2g1O46/j1rQQ59huA1Lltxc/MV6J6R1mfDG0MDPI877+DeOeX4
	 cvt5HpD5flyhvbyDe7h5iTO/ZOMRlh/qgtc+FV0hn1zWPfcYC16vyIdoLqutsArYXMo2O
	 Y621AqpAQCDd+Me+vWxveIxMur7XVf+F5oif4AmRs+en62i5YOR2p6/+2dGHdNbtAq/Wy
	 IGIR4VllO4SKEHfZNgkzwNuMF4m+/DIDFmi+poC/+BcEVxDOLFZ34LPY6xdOKg435DQGK
	 +u8B6KsF+Zm5f4qrxa+xXCUqQrREKd4BKkQmzUMVSY4D40eoh4Trtn7OTDYPaV6/fpY0d
	 Gn030M64vn/pQzbcznN+bgBYVKc0Qb2CNZJ6Qyc+GVtu6lKo/SkQsIfNW0lKHoxMAhCWk
	 yztqTRkIpw/zPr1JiLFdzyJbpB4ppB9qE+Ipals23syY6CuWsA5xLpNhwRH0g9A=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1764771132;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=CsBBI8N+nh90r+GNkxKjJtlc4bAy0OVNevZauo3uL4g=;
	b=0jXuCG/jJ0yvtUlQdzzlw/SwKxa/chgkeJDVRjPVorljAGsrfxhlRD4rntrF1l8qoWM0
	 ciu3XShqECZPr7AhYHTppDjrqXn0WJNRdDa+Pu4qfVBEvQvKQTBqS3u23Tp4rQHpjGr2X
	 rj5lSCenD84jb6xW7vYMv+Mk6++jd3Ppoz3ONx5cQTLlpxUacVVXBjY8/HyWzs0AIyjH+
	 y5B1vHU/O9aXn6BdD3tu9uYQPZT1CmKvpCVHq12pOdCZywnRwFcSWIIW7zckw/FVbIuRW
	 zqeydyR4NV3m6/x6kBU80Yz4hG87MIVYrmii2J9039Nfkdb7c3CVPDuT/FWCaxAq2ZXa9
	 +i2SLZ+TAi+T84tbWjmGUOd7dWCnLd5QQ5wfqvtjvXpGdDyNFw7NILU/LywpJlz4hmMM7
	 TIOmNMDJ31LgkEgsidAsxFAiFb6KUn7euny5KfG+7KnNpJS0HtrzTTTI7+KNGk8fRPwSk
	 DCJbcx6QUYQnXgcq2AQ3cEHxDpeLccpIaBebHWhj5eUxX1Hytsb1dcfQ5AlAdATQDsUNJ
	 jgYjH6DPxxpN493zotNNcW7pqU0RsAeuahyeitM3WfBasoqMKA0gtzHEuPIj5iBPVOeC4
	 yk1B4no3RldbxxBBo+5TH2A9cvyUlYUPleQyqyBljU20XcNoh1HU+aEe0KSVDWE=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1764771132; bh=HTz3RO1SNx7+9wTF3fI9hRmX8TFSMz6k9E+UouvAduE=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=ZSDFDaPXgSCGpGY0Ecn00ILJcWgUxxmLYv+3cuUy4zSsL+RF7CS1YBAQYvQX4zvVm
	 eLDMffH9fBvEZalUAXbI6rPxG1PZMHB9UKUcA9QZLiqdmJUvHdNlsTveAFkJFdDMiy
	 jzu4XimewY09worKNGg60u2rCmfFifwrvE2/gVuKJvUOtZ2wmQqiovneuyyz+9Cqjb
	 yhJkanCH3Hez9nz6wQKzhI6ri4aWeCJFATyZAzAeQ6J5bY8ouVZmHDBd2UmryPbSet
	 lpk7eEPysp1CcUIaSnaOEkH3A1dlm5ygEsOPZ+V9qXT/ndnp8x0Mj7xTcpgVU+r7Cz
	 dW+KPEDNh9vMQ==
MIME-Version: 1.0
Date: Wed, 03 Dec 2025 15:12:12 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Grygorii Strashko <grygorii_strashko@epam.com>,
 xen-devel@lists.xenproject.org, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [XEN][PATCH] common/libfdt: optimize usage
In-Reply-To: <b71fad57-ca46-40f4-a210-5f95b441f01d@citrix.com>
References: <20251114180130.346755-1-grygorii_strashko@epam.com>
 <b71fad57-ca46-40f4-a210-5f95b441f01d@citrix.com>
Message-ID: <1a46ef266f8b00869e8a44cdd6117183@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-12-03 14:12, Andrew Cooper wrote:
> On 14/11/2025 6:01 pm, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>> 
>> Now all libfdt features are built-it unconditionally, but...
>> 
>> X86: The libfdt is used on x86 only to parse Hyperlaunch/dom0less Xen
>> nodes, so full libfdt is not needed in this case and minimal, RO
>> configuration can be used.
>> 
>> ARM - situation is more complicated:
>> 1) ARM reads Host DT (fdt.c RO)
>> 2) ARM reads passthrough DT (RO)
>> 3) ARM generates dom0/hwdom DT from Host DT (there is a mix of WIP and 
>> SW APIs)
>> 4) ARM generates domU DT (there is a mix of WIP and SW APIs)
>> 4) With EFI enabled - ARM needs RW API and fdt_empty_tree
>> 5) With CONFIG_OVERLAY_DTB - ARM needs RW and fdt_overlay API
>> 
>> Hence, add possibility for optimizing libfdt usage by introducing 
>> separate
>> Kconfig options for each libfdt feature and select them where needed.
>> 
>> Following libfdt modules are not used after this change:
>>  Makefile.libfdt
>>  fdt_addresses.c
>>  fdt_strerror.c
>>  fdt_check.c
>> 
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> ---
>> Not sure about using DOMAIN_BUILD_HELPERS for selecting
>> LIBFDT features, as DOMAIN_BUILD_HELPERS doesn't exactly
>> says that domain's DT will be generated when selected.
>> 
>>  xen/arch/arm/Kconfig       |  4 ++++
>>  xen/common/Kconfig         |  4 ++++
>>  xen/common/libfdt/Kconfig  | 14 ++++++++++++++
>>  xen/common/libfdt/Makefile | 12 +++++++++---
>>  4 files changed, 31 insertions(+), 3 deletions(-)
>>  create mode 100644 xen/common/libfdt/Kconfig
>> 
>> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
>> index cf6af68299f6..f10cd3d7effc 100644
>> --- a/xen/arch/arm/Kconfig
>> +++ b/xen/arch/arm/Kconfig
>> @@ -111,6 +111,8 @@ config ARM_EFI
>>  	bool "UEFI boot service support"
>>  	depends on ARM_64 && !MPU
>>  	default y
>> +	select LIBFDT_RW
>> +	select LIBFDT_EMPTY_TREE
>>  	help
>>  	  This option provides support for boot services through
>>  	  UEFI firmware. A UEFI stub is provided to allow Xen to
>> @@ -149,6 +151,8 @@ config HAS_ITS
>>  config OVERLAY_DTB
>>  	bool "DTB overlay support (UNSUPPORTED)" if UNSUPPORTED
>>  	depends on SYSCTL
>> +	select LIBFDT_RW
>> +	select LIBFDT_OVERLAY
>>  	help
>>  	  Dynamic addition/removal of Xen device tree nodes using a dtbo.
>> 
>> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
>> index 401d5046f6f5..256aff269c3b 100644
>> --- a/xen/common/Kconfig
>> +++ b/xen/common/Kconfig
>> @@ -28,6 +28,8 @@ config DOM0LESS_BOOT
>> 
>>  config DOMAIN_BUILD_HELPERS
>>  	bool
>> +	select LIBFDT_WIP
>> +	select LIBFDT_SW
>> 
>>  config GRANT_TABLE
>>  	bool "Grant table support" if EXPERT
>> @@ -680,4 +682,6 @@ config PM_STATS
>>  	  Enable collection of performance management statistics to aid in
>>  	  analyzing and tuning power/performance characteristics of the 
>> system
>> 
>> +source "common/libfdt/Kconfig"
>> +
>>  endmenu
>> diff --git a/xen/common/libfdt/Kconfig b/xen/common/libfdt/Kconfig
>> new file mode 100644
>> index 000000000000..3abd904b2969
>> --- /dev/null
>> +++ b/xen/common/libfdt/Kconfig
>> @@ -0,0 +1,14 @@
>> +config LIBFDT_WIP
>> +	bool
>> +
>> +config LIBFDT_SW
>> +    bool
>> +
>> +config LIBFDT_RW
>> +    bool
>> +
>> +config LIBFDT_EMPTY_TREE
>> +    bool
>> +
>> +config LIBFDT_OVERLAY
>> +    bool
>> diff --git a/xen/common/libfdt/Makefile b/xen/common/libfdt/Makefile
>> index 6ce679f98f47..c832d1849a5c 100644
>> --- a/xen/common/libfdt/Makefile
>> +++ b/xen/common/libfdt/Makefile
>> @@ -1,7 +1,13 @@
>> -include $(src)/Makefile.libfdt
>> 
>>  SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
>> 
>> +obj-libfdt-y := fdt.o fdt_ro.o
>> +obj-libfdt-$(CONFIG_LIBFDT_WIP) += fdt_wip.o
>> +obj-libfdt-$(CONFIG_LIBFDT_SW) += fdt_sw.o
>> +obj-libfdt-$(CONFIG_LIBFDT_RW) += fdt_rw.o
>> +obj-libfdt-$(CONFIG_LIBFDT_EMPTY_TREE) += fdt_empty_tree.o
>> +obj-libfdt-$(CONFIG_LIBFDT_OVERLAY) += fdt_overlay.o
>> +
>>  # For CONFIG_OVERLAY_DTB, libfdt functionalities will be needed 
>> during runtime.
>>  ifneq ($(CONFIG_OVERLAY_DTB),y)
>>  OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section 
>> .$(s)=.init.$(s))
>> @@ -15,7 +21,7 @@ CFLAGS-y += -I$(srctree)/include/xen/libfdt/
>>  $(obj)/libfdt.o: $(obj)/libfdt-temp.o FORCE
>>  	$(call if_changed,objcopy)
>> 
>> -$(obj)/libfdt-temp.o: $(addprefix $(obj)/,$(LIBFDT_OBJS)) FORCE
>> +$(obj)/libfdt-temp.o: $(addprefix $(obj)/,$(obj-libfdt-y)) FORCE
>>  	$(call if_changed,ld)
>> 
>> -targets += libfdt-temp.o $(LIBFDT_OBJS)
>> +targets += libfdt-temp.o $(obj-libfdt-y)
> 
> Pulling together several aspects.
> 
> Now that we have xen/lib, library stuff should be in it, including this
> libfdt.  I suggest moving it to xen/lib/fdt.
> 
> The build system problems are created by using non-standard rules to
> bodge the init-ness.  For livepatches, we have `init_or_livepatch` as
> friends to do conditional init-ness.  I'd suggest a similar approach 
> here.
> 
> You might want a prompt-less CONFIG_LIBFDT_NONINIT which can be 
> selected
> by CONFIG_DTB_OVERLAY, because that's going to be better than trying to
> make an implication directly about DTB_OVERLAY.
> 
> 
> As to other issues hinted at:
> 
> * Init coverage.  The only reason we don't have init coverage is 
> because
> of the overly-restrictive SPECIAL_DATA_SECTIONS check, and while it
> serves a purpose, it does a lot of harm too.  It should be disabled by
> things like CONFIG_COVERAGE so that we can retrieve coverage of boot
> time paths, and because data placement is not interesting for these
> types of builds.
> 
> * -f{function,data}-sections and --gc-sections.  This gets dead
> code/data elimination with better granularity than the translation 
> unit,
> and removes the need for interior ifdefary to achieve the same 
> savings. 
> We already have -f*-sections for livepatching, so this is really just
> using --gc-sections and will probably net a good win in one fell swoop.
> 
> ~Andrew

I didn't check, but moving libfdt code might entail doing some 
replacements in ECLAIR deviations to keep guidelines clean, since there 
are a few assumptions about paths there and in 
"docs/misra/exclude-list.json", which is used also by ECLAIR.

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 14:23:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 14:23:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176870.1501328 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQnlh-0006wr-SN; Wed, 03 Dec 2025 14:23:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176870.1501328; Wed, 03 Dec 2025 14:23:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQnlh-0006wk-OY; Wed, 03 Dec 2025 14:23:45 +0000
Received: by outflank-mailman (input) for mailman id 1176870;
 Wed, 03 Dec 2025 14:23:44 +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
 <SRS0=PcFb=6J=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vQnlf-0006we-UE
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 14:23:44 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ab5b2d42-d053-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 15:23:42 +0100 (CET)
Received: from AS8PR05CA0005.eurprd05.prod.outlook.com (2603:10a6:20b:311::10)
 by PAVPR08MB9083.eurprd08.prod.outlook.com (2603:10a6:102:325::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Wed, 3 Dec
 2025 14:23:37 +0000
Received: from AMS0EPF00000196.eurprd05.prod.outlook.com
 (2603:10a6:20b:311:cafe::3) by AS8PR05CA0005.outlook.office365.com
 (2603:10a6:20b:311::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Wed,
 3 Dec 2025 14:23:33 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF00000196.mail.protection.outlook.com (10.167.16.217) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Wed, 3 Dec 2025 14:23:36 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PAXPR08MB7468.eurprd08.prod.outlook.com (2603:10a6:102:2b6::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Wed, 3 Dec
 2025 14:22:32 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d%4]) with mapi id 15.20.9388.003; Wed, 3 Dec 2025
 14:22:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ab5b2d42-d053-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=ppwpAlkaf7geG4ca2ay2yIk/J7CDMrNJrX/z1cXKdODckP7WTd4FZ5E6txEX1v9B7EvaDa6DwTLfMz7h+ity9ny2JDqzTZzx+TDMLtzv5QN0EJD4yeWLh+n7J92u1LXDTyohXAtXu81frvQRldD25j8JIEb/PTksWo4KaAmiKHgSV3VurmrMUmMW616zA4473vUjN7Fa1Xv8KDj7B1WqF5q61iaPqAnxHR6EhnLm5zveE5cJHy8MkBHrgWaRARaeUM/i6EZvIVAZODl/XL1+nVB4Ee1znscIWMb/NNl9dxx+Ae7R6G6BPsX+gk9RJ48kbtVnw311CeiNfcUiEkeTeQ==
ARC-Message-Signature: i=2; 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=qAY2NJoKF6dhvdCIt7QIOTlfzvtsswO8KDntMLjoqbk=;
 b=HdfM9a+bx6FkdwYlElDaPcFdMEaXe4ClGbKF2s0slavKS23PqhFif0Bz7blQMdMgEEcIGr0kWZTSRt4qb/DL7dvxiRujxaa62F3vTlmM+e8oQRDdMvN69a5TzR7P17CmrGvFHkLjkym5euNIptpl4eRUo8fWyctZPvDqfjJDz53cXy0lPfKnFJTxmH+89I0XUTmdqOgZyQZtCy5F4/f+xJh1mJKP0dAilICMPWX759QEnB8HjvzbqPXGM1y7Ofc3BjEV78o5SoAupMTtIgh582tiC3zYvsJ9uPSrlTNavIKOQiSOPbtZql2a8zQ2twJyeNjNFqHEKnZfvFIj3vOEZw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qAY2NJoKF6dhvdCIt7QIOTlfzvtsswO8KDntMLjoqbk=;
 b=ptjCh3AHmEAFf5DtSHA+7Ylo87T4SGTMlIxyRURwe8SZeEqOsAgxERNQZn8a8yhvwg2cZlwrDCzz+39HKubvLaqNtcpnAfu/f1hMOCvdYKkf6Sd117NaVeu20PBzFRnM0ytuWgpchjjjKaSItBT5/VaB1IoYQvWH5HhQvjM8xms=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MyUDAhHKhvYnABkmFt1v4TMrt030E/JppYflnZSbB7VKE+pFggCnGTTuJUJyvXO6z5I04xAbwULMH62uEOn/inmR5mu+erPGVOX+1Q3jxr0B4r3ci80jVX0k9jLQ3WPDIjkNripUKhPPWWA97t2yZSCbH3Rzcze8YoaWE4LoMompAC2vliP2hAhToEn41+0fdtLlKkk6ILaPyu9r5Uvk5+Oi8Zvx/NabpZrXgGY52gC8IJCk4pSkpVHxSuErE8KQp4sB2BNC/T/aq7Ds0VS8JvUAiMV8q7uResebUjpyZcbiwnvjKGzKNlOVOCntWOCQNvh6dpphfQD9p2V4RWCdYQ==
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=qAY2NJoKF6dhvdCIt7QIOTlfzvtsswO8KDntMLjoqbk=;
 b=y6iZbLEJVNIx3ppYKSo/gAymtI0n5D0cRjTcuEZVzlIR6CHgnfkyCj+lfzK0ru1SOGDyCxrAfb+snE/jr8m2s/3OVlSdw3Vi/NH3hSpEeS5QoqfkVZEikkx4jFdJ6O/0Y0p0V3KlKBrhkZyp2oIXXUYG439B2gaO07UF1IMtDMysjzBOMadywPCtatHG9TBf/KgrsAYXa767nIFAOcFCceOaYGSM0/Jj9jLCDurcnr28tLu8ZbeomRBCOBkLaWd9z+XrWGolLom75ifTsdHFP22IkflmXSlC6szsNDtzpzHWFrI/dSyi8t+QKKeSXDbbLpxxNp3Gk/fDs+4bsQPdlw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qAY2NJoKF6dhvdCIt7QIOTlfzvtsswO8KDntMLjoqbk=;
 b=ptjCh3AHmEAFf5DtSHA+7Ylo87T4SGTMlIxyRURwe8SZeEqOsAgxERNQZn8a8yhvwg2cZlwrDCzz+39HKubvLaqNtcpnAfu/f1hMOCvdYKkf6Sd117NaVeu20PBzFRnM0ytuWgpchjjjKaSItBT5/VaB1IoYQvWH5HhQvjM8xms=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 07/10] xen/arm: ffa: refactor direct requests via RUN
 helper
Thread-Topic: [PATCH 07/10] xen/arm: ffa: refactor direct requests via RUN
 helper
Thread-Index: AQHcX7X0sGAu99JlG0eRwdEB2YckarUP+a4AgAAHX4A=
Date: Wed, 3 Dec 2025 14:22:31 +0000
Message-ID: <F68AA498-C239-486A-8C29-4AACC55B8B5E@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
 <b13dfa489f41d5b72a25f40d6e45d38ad1b93051.1764254975.git.bertrand.marquis@arm.com>
 <CAHUa44EJdyBV0Uy9yY8xo7YuJPLfUM6v0RtfpRiEqUu=o1ig6g@mail.gmail.com>
In-Reply-To:
 <CAHUa44EJdyBV0Uy9yY8xo7YuJPLfUM6v0RtfpRiEqUu=o1ig6g@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.200.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PAXPR08MB7468:EE_|AMS0EPF00000196:EE_|PAVPR08MB9083:EE_
X-MS-Office365-Filtering-Correlation-Id: 333a830e-a9ea-4c27-cbbe-08de32778c1e
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|366016|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?MDdtNkh2RWsvVldWcmtsb0sxVzZnb0hialpOWnpiR3FxR3JjRG9rSXRnbVFR?=
 =?utf-8?B?aVI3U09iQjExeGVsTkxTdytlVUsrZUR4Y2hYQjhZWkk1NDdUdURNUHNEWjAx?=
 =?utf-8?B?cjdtWVRmVEc0N0RDRVNQQWdnZXBxNnJIQ1I4OEs0eEtDRG1lQWxpeVcwZnNa?=
 =?utf-8?B?Rkl1ZUZyL1hFQ2J0QXpyRGJUQXp3UlZodWxid2xvNlUzTTNkb3hNWTZSckdX?=
 =?utf-8?B?SEZmczc2UzJJV1lvMEgxcjZqcSt6eVZNOGhVOXVKb3dpczBJNTVlWDN2elNC?=
 =?utf-8?B?LzBRVUhST21XZ1RQN0pYRENZWGVaaktUMTFZYWs3Y0JQRmd4RkwyT2FSamJB?=
 =?utf-8?B?dDBrV2Vxcm1MRnJ4RENXVVpVb1VIWm5YZUs3bW9hRjQ5aWIvT0NZL0RxMUtL?=
 =?utf-8?B?enY3Q1d3VnJBMEpoVGFYeHZTOXF1Ylo4T25ubmx6czZwZVR6N1RIU1YrZ0d6?=
 =?utf-8?B?NkJ3Sk1LcFJrTEhOa2dQU29QVWJDSzJqUitnbURZbnVYV1RlV3gyTUZnSnBu?=
 =?utf-8?B?VGlPNXFNTk5qNWJnZkVaM25mODkyM055cU5oL2Z4ZkkwY3lTOE1HZGRYK2x4?=
 =?utf-8?B?a0hTK3YxckVIRUVrV3RuOHlVNVdCdzY1eDAxZHdVN3BlczhGdDlPN1RlWUlF?=
 =?utf-8?B?eVRMdFJPT2VpWElIL25ueExRWWRVQ1NiWXc0MVp0VmRJdEROako1R0tabmU5?=
 =?utf-8?B?dEtBVFZvL3lucjJNbFZJYllGTWlHZVZjeGFHTUFZZ3B0eXBMTnk5aG5HclQv?=
 =?utf-8?B?c2IwLytUcUdhNldjZUVXdmYxQ2JJcHVyemRTOWJ6a2s0aWdvNWNYSWd5THAz?=
 =?utf-8?B?MnpwR0xuaDhwK2cvREJPaHpVd01PWnFHL1hjc3hNVTczV3UrdW9RWTkyVGdI?=
 =?utf-8?B?cWVDcFhpaUNUZnRpYWc0RURUMDFCQmNvNVhXUlBLSEZaaFJCNUsrZXpPa1kz?=
 =?utf-8?B?elFpVExJTXY2b2xmcm1DMHJHSGovU0Iyd0sxWithUE14cjBhalhnU1RIVTZL?=
 =?utf-8?B?Q203SlRJNWN4L1RpdTlRaCsrVndhUmVrMnBaclpYN3p1WHF0VmROeENxaVg4?=
 =?utf-8?B?VDl2ZHZQeEtJVGZIaWhKM3pLMHlmcC85a1FaRHNRRThTdjBxdm1MOC9IYys3?=
 =?utf-8?B?dmV1R0RvTUJ4akk3cTBnV0JRSU9YNTFGY1dNc3R0RW90bmM4K1Q0NUlVZ0Ix?=
 =?utf-8?B?RVY1M0F2QmpyMjlyK2tITmo1clhPZkFqNWZrQ1JuYmlLbmhTY2NiQVFMTkpZ?=
 =?utf-8?B?R1Fhb3BoS1M5Q1c4UjZRdG9OK0VFQnd2a3B3RS8vSmVkaktXOVNRTS90NXJ5?=
 =?utf-8?B?di9waVF5ejI3MVNFU2ZnaUR3bVc4UWdQRzZrWHpFRDdoUkl2Z1BCU0ZOZzM5?=
 =?utf-8?B?TVQ1U2tHU1lCTWhFd0cyT0JaWlc0RnB2UzQzcUY5REFYU2hRdXdBNGp1OE8y?=
 =?utf-8?B?OTgrNXZCRjBORFZxdWJ0eTRyN3QvbkpCSVBPbFg0YUhiNjdWZWVqczdKbnJQ?=
 =?utf-8?B?V3VlbDUrOWJuK3A1MW1KbG93OG9WcllJRkRrSjBYK1dhRHZsSWdtUTBPZ3ZV?=
 =?utf-8?B?UEc4eUl2eE1rWjF4T2VCMlNzYUJvWlhMQWQrOXZsTndFNkdyMlJuai9aRHJC?=
 =?utf-8?B?TGg1Vkh0Y0ROVFdWemowdlZvdnJKVHBaOG1TSFVkNXhRcXprY2cvcnpRZk9W?=
 =?utf-8?B?VlBObHp0WFBPZWswdS9CYSttd0dsMjFSUm52RGZZcnEzU3V6Q3c2dzhyVDhs?=
 =?utf-8?B?Mk5zSnJZVDV3Y3B6Sm5ZZW0rbjV1enFiOXpvcklGQjBubThPeGVWbGxlQ29m?=
 =?utf-8?B?ZWNya2xaaFFOU2MxV21aMjk3KzdFN0FQQ1l3eW1VbTlPek1oekNGVi96UDUx?=
 =?utf-8?B?UCt6K1FMV3h1VHhDOEdzYUF2MHFvZkNFY2o0NDhGTnhOTVJNYmhhUE9nZ1Jy?=
 =?utf-8?B?QlRpcmpPb3ZqWmdLYnFrUWJrN0RJRUxncWthNDUvUGRBNDhwSDhzQUp2U29R?=
 =?utf-8?B?TWFjKzBUKzNXK3JZeVdabUFib2ZtbXhZZEdaMTFDWkdJQ3Ezb0lyTFpKUGpk?=
 =?utf-8?Q?GgL3mZ?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <FACCC811902C6A4CBE0D2ADF0B7A25C8@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7468
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF00000196.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	16ff5b3d-2a59-4fb5-e6f9-08de32776588
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|35042699022|36860700013|1800799024|376014|14060799003|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RGhPN3phWk5za0wvOU1xeWxjcHZhcFkvSUZnazdKUVA1RUFUcDNMMGUrTUxz?=
 =?utf-8?B?Ylo3Q0R5UGYvbERkUEc3N0xoNW9jU0dpSDZJcGJFdEJveWEvOU5DRXNxY21a?=
 =?utf-8?B?Sk00UVJVdUQ3QTVFeWFZUlNuK1ZIUURTdEJ0NFcrbnE5YVdPRlZ2cmZZYUxP?=
 =?utf-8?B?SEpaR1RDcmxneVFYc3d1NFFYWk5XOU91a0pXdS9IcWNyQVNJbVNNaTkxZm9o?=
 =?utf-8?B?RGQyOUc2dzdDOHgrUHMrb0kvTlNjanM3Y1oweVppR3Y2WE1YakN6c2g4VWJ4?=
 =?utf-8?B?czVDOElpZUpNQThqU0ZBOWtUOHFJYUhZcUNJckVXVkRSaFJDNGZTT2c3VkFv?=
 =?utf-8?B?bVdGYzQxTUNuQjJ2Y1lncUw5aWFtVnVvVmR1SmZhUFllbzJGZUw5WUlDUlpU?=
 =?utf-8?B?dHJjYzJxNlB5dVU3c21ldG01bGlOd09NdWExcWZLUmZYZ0lOcG5pdnk2Vnho?=
 =?utf-8?B?TXdCQzNZamxOZjV2T3ZMRndMRlRUaEV3MkkwT3p3MytKdXFnUWxLb1VVWWtP?=
 =?utf-8?B?OUVxMmFsWU9ieTA3VzRxNlB5cmg1ZGdEZE5OV3Bidll6SUd0S3lGMVFJbWRL?=
 =?utf-8?B?dUNrNDJUdG0xYXM3MzZlMjdHcG9OVkdCVDFnTXFlNEdBMHpsR01KVzE4Nkli?=
 =?utf-8?B?YldmWnlEWHhSZjBhWjRBUGRjRW5tVUhTY0t6SmM0elV4TUVac05tbk11bW9w?=
 =?utf-8?B?a2cyenl5b2g4bXRyRmFiUVk1Y3lNVDVTbGFTMEZMUThNL21pdGdMZzJVMXdr?=
 =?utf-8?B?cUErcEdLQXZsZkpqRi9SMGRTNEdvekZzOUIyc2NsR0prRktnT3JMbmlnTEoy?=
 =?utf-8?B?dkd1R3J6RnFtZ1V2LytUYUcycDEzMVl1UFFSK2xmZ040MTZCTVRiOXlFWHp5?=
 =?utf-8?B?cWU2MTQxQWdrRGlxSEF6NWNLZDZ1SHZ4YTl4YmlrWWg5UmllWGJEaUlWd29y?=
 =?utf-8?B?TGZmNzhYc3U4NFJPTGI0RkYybUcwV04xZzQ0SWhUd1d4QWN0OTlsR3pzQnFw?=
 =?utf-8?B?QzFwRXFva2t5K1dhM0RJZ3FES29qZUZ6R2dodDFHSFNHK2N1M3l3TG45dG8z?=
 =?utf-8?B?cWlQdEJyUVBCdjB4czlGYTJTem1XNDdSS1VXRXdyUEdYTkpGV2svMVNvVTV5?=
 =?utf-8?B?T0Y1STVaMm5rT0ZyMXdGUTJBVFRPVldnY1Q4QjQ4QUlVNFp0ZHB0d1V3bTZN?=
 =?utf-8?B?MU1RdFRidkwvUXI3QzNGT1JLbUNXOHBBaExDdnRQQXUxNTNyTUV4c0VXR29s?=
 =?utf-8?B?eEdtQUR1NFJic2Z4S2Z5d3U3MUhwN2xKdStTd3lFVmU3cnpsVjQvcm14THJC?=
 =?utf-8?B?OURrWHNTZkhJdm0vSlJQMHpQNnF6elJSZ2g4M3VERHB0Z3l3UmNUOWk1SEZ0?=
 =?utf-8?B?dlhnOG9qaE5ZMGp6OERXemVmeWVzdjVXdDhJaXNUNjJnMkUyM09hUW15R05a?=
 =?utf-8?B?MUxLNEtudWR5REJuMGNlVDQ2Rml6UExiZUt4U25id25JR3Y1TGFqTk5yMEpq?=
 =?utf-8?B?aVp6V1g3cnNJRE1yMjZqR3BLTTN4Qjc1cGVjY1NhZXg4WmMxdkg2ODJDVHZY?=
 =?utf-8?B?bzlPejR0WjUwWkhaWnFiYlh4LzJkcHZoTHhOSERLeHFycDhqUlpzR3NyYlpN?=
 =?utf-8?B?cmF4Vm5KcVJVUFlURzJBZTZEOHFFYUsxTTRNcUlnck50RHNkVWZDdituazFW?=
 =?utf-8?B?WmpoTHl1dXVQaVEzVi9QYTVpMEZKVjVHeEEydDNSS0ptUWxnRnBPZkVneXg5?=
 =?utf-8?B?UGVWV0VVRy95MndwTjhZRUFva3F2Wm92VHNRTWZGSCtaWDgvMXZxcVl4cDgy?=
 =?utf-8?B?Q2VZOXhsY2pQQUpDTlB0MnUrLytBajhhaWxHTFp0a3R3M1NaWkkxYk5wekk2?=
 =?utf-8?B?OUk1WXM0ZzFHbGI1UG9kMUJPYzQzb0xFWHc4N0M0WWZ0MFV4bzRaWDdzSXJJ?=
 =?utf-8?B?emNWSUJuWFVzaG9qeTQ4VkhSeVhOOWVqRytwYWxLM2lrN2V3RXVjNnlEZGFo?=
 =?utf-8?B?d04vUTVFczFONk9uRmJSdEdObldHOG05VU9nYmd2NFlrZHNoSDFpVE5CVXBM?=
 =?utf-8?B?NDhEa2VPV3ROdFpRYlBlb1c0TkJidFc2aDdCTVk4N1hNS0RaZ2dpTXZLaFkr?=
 =?utf-8?Q?Ug64=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(35042699022)(36860700013)(1800799024)(376014)(14060799003)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2025 14:23:36.5596
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 333a830e-a9ea-4c27-cbbe-08de32778c1e
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF00000196.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9083

SGkgSmVucywNCg0KPiBPbiAzIERlYyAyMDI1LCBhdCAxNDo1NSwgSmVucyBXaWtsYW5kZXIgPGpl
bnMud2lrbGFuZGVyQGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gSGkgQmVydHJhbmQsDQo+IA0K
PiBPbiBUaHUsIE5vdiAyNywgMjAyNSBhdCA0OjUz4oCvUE0gQmVydHJhbmQgTWFycXVpcw0KPiA8
YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPiB3cm90ZToNCj4+IA0KPj4gU2hhcmUgdGhlIFNNQ0ND
IHBsdW1iaW5nIHVzZWQgYnkgU0VORF9ESVJFQ1QgYW5kIFJVTiB2aWEgYSBjb21tb24NCj4+IGZm
YV9maW5pc2hfZGlyZWN0X3JlcV9ydW4oKSBoZWxwZXIgc28gY2Fub25pY2FsIHN1Y2Nlc3MgYW5k
IGVycm9yIGNhc2VzDQo+PiBhcmUgaGFuZGxlZCBpbiBvbmUgcGxhY2UuDQo+PiANCj4+IFRoZSBk
aXNwYXRjaGVyIG5vdyByb3V0ZXMgRkZBX1JVTiB0aHJvdWdoIGZmYV9oYW5kbGVfcnVuKCksIGFu
ZCBkaXJlY3QNCj4+IHJlcXVlc3RzIGJhaWwgb3V0IGVhcmx5IGlmIGEgZ3Vlc3QgdGFyZ2V0cyBp
dHNlbGYgb3IgYSBub24tc2VjdXJlDQo+PiBlbmRwb2ludC4gVGhpcyBzaW1wbGlmaWVzIHRoZSBk
aXJlY3QgcGF0aCBhbmQgcHJlcGFyZXMgdGhlIG1lZGlhdG9yIGZvcg0KPj4gdGhlIHdpZGVyIHYx
LjIgcmVnaXN0ZXIgQUJJLg0KPiANCj4gRnJvbSB0aGUgYWJvdmUsIGl0IHNvdW5kcyBsaWtlIEZG
QV9SVU4gd2FzIGFscmVhZHkgc3VwcG9ydGVkLCBidXQgSQ0KPiBkb24ndCBzZWUgaG93Lg0KDQpZ
ZXMgSXQgc2VlbXMgaSBmb3Jnb3QgdG8gcmV3b3JrIHRoZSBjb21taXQgbWVzc2FnZSB3aGVuIGkg
cmV3b3JrDQp0aGUgc3BsaXQgaW4gbXkgc2VyaWUuDQoNCkkgd2lsbCB1cGRhdGUgdGhlIGNvbW1p
dCBtZXNzYWdlIGluIG5leHQgdmVyc2lvbi4NCg0KPiANCj4+IA0KPj4gU2lnbmVkLW9mZi1ieTog
QmVydHJhbmQgTWFycXVpcyA8YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPg0KPj4gLS0tDQo+PiB4
ZW4vYXJjaC9hcm0vdGVlL2ZmYS5jICAgICAgICAgfCAgIDMgKw0KPj4geGVuL2FyY2gvYXJtL3Rl
ZS9mZmFfbXNnLmMgICAgIHwgMTExICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQ0K
Pj4geGVuL2FyY2gvYXJtL3RlZS9mZmFfcHJpdmF0ZS5oIHwgICAxICsNCj4+IDMgZmlsZXMgY2hh
bmdlZCwgODQgaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25zKC0pDQo+PiANCj4+IGRpZmYgLS1n
aXQgYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYS5jIGIveGVuL2FyY2gvYXJtL3RlZS9mZmEuYw0KPj4g
aW5kZXggNzM5MmJiNmMzZGI5Li45MmNiNmFkN2VjOTcgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJj
aC9hcm0vdGVlL2ZmYS5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYS5jDQo+IA0KPiBG
RkFfUlVOIHNob3VsZCBiZSByZW1vdmVkIGZyb20gdGhlIGxpc3Qgb2YgdW5zdXBwb3J0ZWQgRkYt
QSBpbnRlcmZhY2VzDQo+IGNsb3NlIHRvIHRoZSB0b3Agb2YgdGhpcyBmaWxlLg0KDQpJbiBmYWN0
IGkgZG8gdGhhdCBpbiB0aGUgbGFzdCBwYXRjaCBvZiB0aGUgc2VyaWUgd2l0aCBhZGRpbmcgc3Vw
cG9ydCBmb3IgRkZBX1JVTg0KaW4gZmZhX2ZlYXR1cmVzIGJ1dCB0aGlzIGRvZXMgbm90IHJlYWxs
eSBtYWtlIHNlbnNlIGFzIHRoaXMgaXMgbm90IGJvdW5kZWQgdG8gMS4yLg0KDQpJIHdpbGwgbW92
ZSB0aG9zZSBmcm9tIHBhdGNoIDEwIGludG8gdGhpcyBvbmUgaW5zdGVhZCBpbiBuZXh0IHZlcnNp
b24uDQoNCj4gDQo+IFRoZSByZXN0IGxvb2tzIGdvb2QuDQo+IA0KDQpUaGFua3MNCkNoZWVycw0K
QmVydHJhbmQNCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 14:33:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 14:33:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176880.1501337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQnuV-0000Dl-Lv; Wed, 03 Dec 2025 14:32:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176880.1501337; Wed, 03 Dec 2025 14:32:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQnuV-0000De-JG; Wed, 03 Dec 2025 14:32:51 +0000
Received: by outflank-mailman (input) for mailman id 1176880;
 Wed, 03 Dec 2025 14:32:50 +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
 <SRS0=7Ymo=6J=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vQnuU-0000DY-CI
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 14:32:50 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f0f6f815-d054-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 15:32:49 +0100 (CET)
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com (2603:10a6:20b:6::31)
 by DU0PR03MB9056.eurprd03.prod.outlook.com (2603:10a6:10:464::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Wed, 3 Dec
 2025 14:32:46 +0000
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4]) by AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4%4]) with mapi id 15.20.9388.003; Wed, 3 Dec 2025
 14:32:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f0f6f815-d054-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ynUPmaRP3eGF//xduvN4law3V4R+IPrjj8g+n2fZ/i4kaqOb9664Q38yO7VA89e5TEZ4CapyTlSN9SWgdC7nXA6Sk3Erl1U8ayjF1u6qSydQbF9QWpx70iTVXubFRhsOBNS2bCAzqyTIOvsovd6+HAAqsY0sSRN/4MeYd44OVj+p9ciOTGpNLARGjB7jEXWOskSoordUBUcSxpuykc38PaIyMPmqjk7LG7ex1toePjXtvjRZm73GUfwLKhcO54ijxsKGnrPSxg3oa+jUNL+4QtzBWllBErh3EnMA54iWIIWWxwf51Ij52hE9ojniDHjdWFnn3UO0Qmo1zs77+MrBUA==
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=BXK1X0YWQIWeNf42q7rA/LtFNPCr+yzLUG2W8AhPii0=;
 b=sukNRJbjIa+a8Ur1qwcJFjndhgrjPf9NoI51Sty1T+PUh8XpgDwb/E6RmQZbVaOOfMOvoobQcmCJ16hzFsSLGVFhQFN+z5Dvpn5i/Z3djCLNHJD9O30TyKYq8TOMGh5HjY3K6W7ejckGEpPI3mBqlR1axTIs9PymJNf3yR/QIMflDWt/7/xhG8LYIdgaZJz9TNYP2JpkKxYT2EJx3xaTHwWWAWzwekJJ0fuG3IgJIc2mv1eL73dbABALPTMJm2Iqu5bpfHGPzTRBVoBZX+13WR4USm8gbJsi5CWBdnIStwuEtCn8Jld2SdyXtuoyFp1dgoSJultFnSBERHcjhUKHJw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BXK1X0YWQIWeNf42q7rA/LtFNPCr+yzLUG2W8AhPii0=;
 b=f8mpbsvDhRHKAVcKgG5YDQmdZ31KuhwLMT0EmWvjKoenr8/Q178Givt8NO33UTCPyljM17R7y1L4vQQDp1C+t+dFziPhNUuMX+9IJHylxhgM7/h2BspropE7tlYnjJ+EnAeX+s+6uvmjpFi+x2ZqvKrDTi7p3o/briUX4b891ICVqHu6v/Cn8UIzI9PhRmISUyA+CWUbFYFUtV3S+E36RCWKCxDnH+GACqSuQUbRVVEgY0jMiLnfFibYJjTQ7u9JWwZIqovW4eSA5yf92iU7r4LZxusWOOezOYuIiHm/wkesK02VD6mnWu6f5j1cx35oy44Naz1hB60RXSRfYgekmg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <6a724a9d-dee8-483d-89bb-050aff381077@epam.com>
Date: Wed, 3 Dec 2025 16:32:44 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/dom0less: Increase guest DTB size for high-vCPU
 guests
To: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <20251202193246.3357821-1-oleksandr_tyshchenko@epam.com>
 <98e9f551-cd8f-4c0c-aa79-144466e68df0@epam.com>
 <a1443030-f594-4f25-b12a-37974eae64d2@epam.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <a1443030-f594-4f25-b12a-37974eae64d2@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA0P291CA0014.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1::19) To AM6PR03MB4600.eurprd03.prod.outlook.com
 (2603:10a6:20b:6::31)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM6PR03MB4600:EE_|DU0PR03MB9056:EE_
X-MS-Office365-Filtering-Correlation-Id: fc501fed-8704-4835-3921-08de3278d355
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?V1lhOVdBdC9BT3M0NUJUbnFpclVUVVgrd21HcVB6eTBUdkw2MkdmWkovMXJE?=
 =?utf-8?B?Y2xUczc2NllnVlYyK2lrL1dFNW9LSm1tS1NGZDJ1bmx4Qkp2R0UrYlVVc05R?=
 =?utf-8?B?L2ZxSDBkeVk0d0lhR0hCbk1EQy93ZjVVUnkraGNqZ0VuSEtUeG5VbTRRM2g1?=
 =?utf-8?B?YnJ1TzZrVVRBM1NHZ29nYWpldXBxVmtzK2t5TUdDay8rOFhtUGx1Wnk4aVly?=
 =?utf-8?B?cTRjdWZOSmlUcUd6SDlOaTFTRU42R1o4cXFTcFNacGNwVndjVlFnSnIrSW9k?=
 =?utf-8?B?dWFCL2FyV3NmcjdKZ2JTTE9DOGhQaCtyUUtqSzhWRCtBRkRpTEhRV1lHUEM3?=
 =?utf-8?B?YWg4RmJuMFd5NFI0V1VJVVpxejRXUzgxc0ZUUkhsSHd3YkYwKzR2OGh2SGNp?=
 =?utf-8?B?NHk5ZHNmc25HYWVEekhyemFKR3YzUElXOVNCcVkwVHhGWGVoaDdnS0dCRVRj?=
 =?utf-8?B?RTBXNXJMU0IybUw1M05PaEdrOTV6cEhNWGhYQnBad3FzZU94aDJvY1FFSlpE?=
 =?utf-8?B?YVJkYXo2VkZUcXA2MlZmL2REeEpIa3hQMks3ZEgwUmpkdWF5Z1RsU1RtOE5E?=
 =?utf-8?B?MzhTczk4eFNNMmNPUWRDd21GajFOQzRsU01nNTBaTExyZjFSS3ZrZlV0NGZL?=
 =?utf-8?B?RFBhdGZndGh2aDV0UUpFWFBUY3pQUU0yYmg2RkJHdDR1cDg4bWJ1NlM4YWxh?=
 =?utf-8?B?Y25hMnVPMHJ4enZhRUE1OWlnckVLbXFHU3g5b2gvd2J0alFIbGNmSk9LWnkr?=
 =?utf-8?B?dWM2M0ZPK3ZaNDdXdDZtZTJBZmRGLyt4bEJlaXI2aytjd21ycXc2RXJYRDdY?=
 =?utf-8?B?WXgvb3ozMWFnSE5LQmQ2YWdmcThOVkJmdEZyTzVQRlZJenZ1RzdKU3BpTVRF?=
 =?utf-8?B?bWtIMStIVCtxekJKUG1vNGYvQk1vQ3o1aXJSNjdLWHdabk43TytvTVNZZW4y?=
 =?utf-8?B?ZmdSWGE5YjBFVk9TVWN6NXI3UWlPV2hrZWdsZzRERUlHUWhPVGErcTZtS0lO?=
 =?utf-8?B?eE9RWmV4WGF2c2pKL1F4blhSaU1ackxHOFgzbVFNemcvek5GMG11cm0rLzFi?=
 =?utf-8?B?eWhRRkRZaUt3eUZMRjZ3a0pPc3grcVc1bC9YS3VRWVFuNGRyWmFVS3dYQ1E4?=
 =?utf-8?B?Ym5IbEdtUGR0SEkrQk5rYitRR2YrRkZLVXU5NmliVGVYTythemVTc3M1Uytl?=
 =?utf-8?B?ZjRpd0s3bnA4LytMajF1dHJ4aFljVitCeG5xdEhrajd6Znh4TmYzOEU1SWxG?=
 =?utf-8?B?S0ZUbHJ0TzJ2QnN5dGk2eU80Q0hKMGpCS1I0M255OGdoMjRlOXpwMEJuRWgz?=
 =?utf-8?B?WUFjUFNWdFZMdGljeGZkRWJoN3ZMeFIydkJsNmZDNGw4SUFUZGJNL05IRk8v?=
 =?utf-8?B?alFzQTZaUEczR1hGRnNFNmVDQlBJOERjTHd0Um55MVhCbkFvMlhYbXVaRWdz?=
 =?utf-8?B?eWQ4aEpTa1JVc1c0VGlsUVpxK2xtVkhHV1luVk5nN1BGWGhkQ3pTSUxYeGpH?=
 =?utf-8?B?S3BQeVJ1SXdleXMrUmwzU3BYVStBY1BDNURiMWRDVWE1VzF6U3NKSnMxYW9P?=
 =?utf-8?B?UTYxaXBBU29vazNqdTdsajUvV0pMa0VXc3JTZ0dIaGFVYlczaTVwbkVrU00x?=
 =?utf-8?B?OUEvcVcrcHhPMGlucnFMQmhGcmdWZllFQ0l2cE5vUlJ3RXlLN2MrYVRhNXd1?=
 =?utf-8?B?WjFTRUNTczZTQkJjUkpsc05ya2VTazE0aWpZZ24zdmptUmhzS1NhRXM3RHd3?=
 =?utf-8?B?TCs4ckNFaE5ILzBFOHIvdm1OYU1MdXJQZTIwaG11V1pkb1RmY2swRDdVNjRC?=
 =?utf-8?B?T092clc4cGp4OVIyalBSd20yUjU4UVd3dGZGOVExNnpuTlMrYnRlenh6d2lR?=
 =?utf-8?B?eTRqWEhjeEFXdmFDWkxacjN2VXkzMkxMMTJNSzhOVUx1anQ3WGxmSHNNUUhQ?=
 =?utf-8?Q?ploPxLQIEDLk3rwfPkXaxCLLTVlU4dW+?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR03MB4600.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NTVJYmpXWnNPZ1dZb05mV0FRQmJLMmdhTE1PRW1USi93SmFsVnBhc2NjTEEr?=
 =?utf-8?B?R09JZUhHMUdDbDRpUERHdHN3eXlBaVAyNm1zaVErVmZrbVBrQm9zMmdIby9z?=
 =?utf-8?B?T2YwODVSSjNCbEFhMTBjWDNTWkpLeGYwVDF4TEgrSVRGSmZnOHMxWHdvdW5O?=
 =?utf-8?B?RnJWU3dvWElxdU1TWkxoV0Z3b1FPMGloWFIzTTAwOFJjZnVsT054ZWcxWnNs?=
 =?utf-8?B?TzFZdm00SmoyU0NibVJibjlSRkJyYkRRWFA2Mm5zWFo3VGVBM2FrQ3FpSnNm?=
 =?utf-8?B?Q2dYWDd4cDRoOURHSGpoV0gxNXhHcHdJeDRmbEs3eTJnbisxbXNoczhRemFj?=
 =?utf-8?B?ODViVjNxeFVKOUlWYVVyVGptWWMrZGx5KzU0OUdrTmJybWVXeDk4aDFheGhw?=
 =?utf-8?B?MHRudEJFVjRadVlhR3JyS2ZmYmZJQ0JBTVR1eERnNFkwV2s2VldWNVQvR1Iz?=
 =?utf-8?B?MSsxc0hnNGliK1hlWWZ4Nytzemc3MkQyZ2RKSUFZZlVCNzdLZmlOY3NUMm9i?=
 =?utf-8?B?Zjk3VzR2cGF0YXBVNzJrcDZuM2daMTE5dEFlMktrNXQyaGRXY0xBUkw0UnJP?=
 =?utf-8?B?VE9rVWdNOHgvRThPZnh4S1BPRFEva0VMU29uWDFEc0dFVDFwRmE5WnZzU29j?=
 =?utf-8?B?dGpXNjVNenhvUHZrYjUxYlhQNmt2Z1BKaTBWK3BkUE5zTG9yK1l5bHhYQzZM?=
 =?utf-8?B?THhIdDAzOE9WZHgzMkRQeEpUcGJGTWpKNEQ4aDBoMS9UblUvM1k1SFNpQlNN?=
 =?utf-8?B?QlNVcUxhWFlkcUxxM0hzQ0FDOVBQSlRKcElaSm1sQWJGYzQyOXYzMVBYcXMz?=
 =?utf-8?B?Wk5FN3FZWVdKR2hqL0xxcTRmem11YzhVRVc2R0g2bEFTWTlVSnJsa0ZpNDVs?=
 =?utf-8?B?V3NVRG1yWEJTTVpZVkZtQVNCQ21kZnlTNnExS3lUb1pkMWtWMzUzSUpPKzBW?=
 =?utf-8?B?T2Z4N3RqNGJnTWJPWHdYeGRXWHd5SGNIMTNLNWprZ3llcmp5R1BkZy83WHQr?=
 =?utf-8?B?anRCUWNkTHlkS1FKeDZlVUlUNmMwWTRlOCt1RHJTRm82U0hFWW5lRjlhNU0x?=
 =?utf-8?B?UmhlV3lIN0JxS21aKzVwQklZWEN2SjROdzcrMnR0VWNrT2U0VFVxU0oxYUc2?=
 =?utf-8?B?VWgydTQzYXkvbDRFV1E2UXRZb2JWR0djemU2c0NmZmhwc1FUaE9la1p1RWgz?=
 =?utf-8?B?bmV0VEZabGh0NFAvZ08xYWdESFZ3NDN2TGZaTmF6R01KcDY4Q2FZMkRTTFFr?=
 =?utf-8?B?T1RLZ3o2Ymw5RWdRY3NWeVNYWEdMNUM3MUw1L2xBKzJuYW4xRzR4U1paSHJy?=
 =?utf-8?B?a3dOYy83eDcrWWlId1U3aGN3OTd1Y05Dc3NJL2NTUTJVMVRGS1JycTNFVllX?=
 =?utf-8?B?UTQ2UEVxRlBwTC9XOER5MUo0ejVxTW9zayttOUpCaDJ0N29rMEhGTHFMZ0xM?=
 =?utf-8?B?bTFaOTdTem95aU9JcW15OHRiMk5TaVdDK3BDR25yT0s5UmpheFIyczZzaDhO?=
 =?utf-8?B?REREZ2s4bGVxUFMxd01VeWw5ck1qd0xjcnFqYnNyVHdtRmdHdVVnUk14amJr?=
 =?utf-8?B?REVkM3pGREM5YXJUWU8zdjBXN3JFYnpJcVV4cytYN21VVHVLUzBtdjJkMFVa?=
 =?utf-8?B?SmtERGpXbHBpblEwZ001SjV0Vm4wUUgyekNqaURxeHpjMGJDTEtOM1NiZ0VY?=
 =?utf-8?B?cko1K1pmYVFuZ2Q5enIyTHpqa2RicmZEV2xOeTRCdFNBM09JUURLUXpsd1pq?=
 =?utf-8?B?SU1KNVdqem5DNHZwRUk4cVZMeWRhL0p0WHZLbHRCQW1CRVNBcDdXUFZkYmJS?=
 =?utf-8?B?ZzNxNTBmT3d0Q2JZbEhYRmY1TVlRblpCRVV3U25zeGpuU09jVjBMa21XaDl2?=
 =?utf-8?B?VVUzQTNybmFTZnBMNzRjNDNZTXB5dy9EcHpadS9mdndUcUdLQkNZM1JkSVJm?=
 =?utf-8?B?anpvNzBIMVVjc1hzSis0WTJqdy8rNzJRY3F3WmRhbHMvZVpQbjBSMnoyYmlH?=
 =?utf-8?B?cS9kb1g0L09LMGwrMHNkWkdEMVZjRjFWNEF3d01MRTJ2d05yT0JKUzFiUjdU?=
 =?utf-8?B?ZXpYOXBoeGsvMHNnK3ZZVUF2RUN3UVM2QVJUVFA3WXFMWVMrMHh6WG4xNXBq?=
 =?utf-8?B?YzJVeTkzbG5wOUVXTFV6YldXSjNGcjA5OEc0MEdjeGlDcXZpZ0hWenAySEo2?=
 =?utf-8?B?bWc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fc501fed-8704-4835-3921-08de3278d355
X-MS-Exchange-CrossTenant-AuthSource: AM6PR03MB4600.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2025 14:32:45.8131
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: kHV99XvINCT+AagqM/palxDaSTu13/KNIgx46I00n6930GMELNvH6eGi+klyNhy+knx+HrivbVt+bTtxTalmQs0ub/smQZrgqD7D2v+TPbA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB9056

Hi Oleksandr,

On 03.12.25 13:03, Oleksandr Tyshchenko wrote:
> 
> 
> On 02.12.25 23:33, Grygorii Strashko wrote:
> 
> 
> Hello Grygorii
> 
>>
>>
>> On 02.12.25 21:32, Oleksandr Tyshchenko wrote:
>>> Creating a guest with a high vCPU count (e.g., >32) fails because
>>> the guest's device tree buffer (DOMU_DTB_SIZE) overflows during creation.
>>> The FDT nodes for each vCPU quickly exhaust the 4KiB buffer,
>>> causing a guest creation failure.
>>>
>>> Increase the buffer size to 16KiB to support guests up to
>>> the MAX_VIRT_CPUS limit (128).
>>>
>>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>> ---
>>> Noticed when testing the boundary conditions for dom0less guest
>>> creation on Arm64.
>>>
>>> Domain configuration:
>>> fdt mknod /chosen domU0
>>> fdt set /chosen/domU0 compatible "xen,domain"
>>> fdt set /chosen/domU0 \#address-cells <0x2>
>>> fdt set /chosen/domU0 \#size-cells <0x2>
>>> fdt set /chosen/domU0 memory <0x0 0x10000 >
>>> fdt set /chosen/domU0 cpus <33>
>>> fdt set /chosen/domU0 vpl011
>>> fdt mknod /chosen/domU0 module@40400000
>>> fdt set /chosen/domU0/module@40400000 compatible  "multiboot,kernel"
>>> "multiboot,module"
>>> fdt set /chosen/domU0/module@40400000 reg <0x0 0x40400000 0x0 0x16000 >
>>> fdt set /chosen/domU0/module@40400000 bootargs "console=ttyAMA0"
>>>
>>> Failure log:
>>> (XEN) Xen dom0less mode detected
>>> (XEN) *** LOADING DOMU cpus=33 memory=0x10000KB ***
>>> (XEN) Loading d1 kernel from boot module @ 0000000040400000
>>> (XEN) Allocating mappings totalling 64MB for d1:
>>> (XEN) d1 BANK[0] 0x00000040000000-0x00000044000000 (64MB)
>>> (XEN) Device tree generation failed (-22).
>>> (XEN)
>>> (XEN) ****************************************
>>> (XEN) Panic on CPU 0:
>>> (XEN) Could not set up domain domU0 (rc = -22)
>>> (XEN) ****************************************
>>> ---
>>> ---
>>>    xen/common/device-tree/dom0less-build.c | 8 +++++---
>>>    1 file changed, 5 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/
>>> device-tree/dom0less-build.c
>>> index 3f5b987ed8..d7d0a47b97 100644
>>> --- a/xen/common/device-tree/dom0less-build.c
>>> +++ b/xen/common/device-tree/dom0less-build.c
>>> @@ -461,10 +461,12 @@ static int __init
>>> domain_handle_dtb_boot_module(struct domain *d,
>>>    /*
>>>     * The max size for DT is 2MB. However, the generated DT is small
>>> (not including
>>> - * domU passthrough DT nodes whose size we account separately), 4KB
>>> are enough
>>> - * for now, but we might have to increase it in the future.
>>> + * domU passthrough DT nodes whose size we account separately). The
>>> size is
>>> + * primarily driven by the number of vCPU nodes. The previous 4KiB
>>> buffer was
>>> + * insufficient for guests with high vCPU counts, so it has been
>>> increased
>>> + * to support up to the MAX_VIRT_CPUS limit (128).
>>>     */
>>> -#define DOMU_DTB_SIZE 4096
>>> +#define DOMU_DTB_SIZE (4096 * 4)
>>
>> May be It wants Kconfig?
>> Or some formula which accounts MAX_VIRT_CPUS?
> 
> 
> I agree that using a formula that accounts for MAX_VIRT_CPUS is the most
> robust approach.
> 
> Here is the empirical data (by testing with the maximum number of device
> tree nodes (e.g., hypervisor and reserved-memory nodes) and enabling all
> optional CPU properties (e.g., clock-frequency)):
> 
> cpus=1
> (XEN) Final compacted FDT size is: 1586 bytes
> 
> cpus=2
> (XEN) Final compacted FDT size is: 1698 bytes
> 
> cpus=32
> (XEN) Final compacted FDT size is: 5058 bytes
> 
> cpus=128
> (XEN) Final compacted FDT size is: 15810 bytes
> 
> 
> static int __init prepare_dtb_domU(struct domain *d, struct kernel_info
> *kinfo)
>    {
>        int addrcells, sizecells;
> @@ -569,6 +569,8 @@ static int __init prepare_dtb_domU(struct domain *d,
> struct kernel_info *kinfo)
>        if ( ret < 0 )
>            goto err;
> 
> +    printk("Final compacted FDT size is: %d bytes\n",
> fdt_totalsize(kinfo->fdt));
> +
>        return 0;
> 
>      err:
> 
> This data shows (assuming my testing/calculations are correct):
> 
> - A marginal cost of 112 bytes per vCPU in the final, compacted device tree.
> - A fixed base size of 1474 bytes for all non-vCPU content.

Thank for detailed analyses and info.

> 
> Based on that I would propose the following formula with the justification:
> 
> /*
>    * The size is calculated from a fixed baseline plus a scalable
>    * portion for each potential vCPU node up to the system limit
>    * (MAX_VIRT_CPUS), as the vCPU nodes are the primary consumer
>    * of space.
>    *
>    * The baseline of 2KiB is a safe buffer for all non-vCPU FDT
>    * content. The 128 bytes per vCPU is derived from a worst-case
>    * analysis of the FDT construction-time size for a single
>    * vCPU node.
>    */
> #define DOMU_DTB_SIZE (2048 + (MAX_VIRT_CPUS * 128))
> 
> **********************************************
> 
> Please tell me would you be happy with that?

It looks ok. One thing I worry about - should it be Xen page aligned?

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 15:47:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 15:47:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176901.1501347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQp4V-0000kE-2y; Wed, 03 Dec 2025 15:47:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176901.1501347; Wed, 03 Dec 2025 15:47:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQp4V-0000k7-0I; Wed, 03 Dec 2025 15:47:15 +0000
Received: by outflank-mailman (input) for mailman id 1176901;
 Wed, 03 Dec 2025 15:47:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ybfj=6J=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1vQp4T-0000k1-Aj
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 15:47:13 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5445aee6-d05f-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 16:47:10 +0100 (CET)
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com (2603:10a6:20b:509::16)
 by DU4PR03MB10790.eurprd03.prod.outlook.com (2603:10a6:10:581::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Wed, 3 Dec
 2025 15:47:07 +0000
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb]) by AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb%5]) with mapi id 15.20.9366.012; Wed, 3 Dec 2025
 15:47:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5445aee6-d05f-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=My/fBeAHxuneSnqJLrdRgN8norGm0oOqbCoonUIHe+4nQosx7J7lXvanrSzoFeGB1Ht3R0hrs0GvvJhmmG4F1PTXfwvHNc/um4faZFJukjYokb5EQDYetM7xpCAsfRNDpkbM5/ax7gKOwJcguyNil+kjAXNUpcfNqEzZmMdXXibePyKPTyexkPkpVZCigzuJHLhgYKoqg+Ni+pAF1pFCWffJBYHD8FuLvOov3UXoW/uatVnzLajQ1JDSPr4x/o5ycTn1u6PHHzXPRcPHgmILpSJR142264xo7PxmMs03rF8xkpbbWT+q7OJ49GI257gMyDjVog3nfNa18jPQ0vWLCg==
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=zFGrzGtLPPmLrMXllGtxZJge1JQG65AnI2RWLpvahHI=;
 b=LGUTD+OeqQdJJjObilOui/tXvMBxkbcqhXDqp3J1O1eN/Xy7S1HTuPQL47A/ass1QoGR/OXKzVC+5T3vg8WV5fd2Zmq6rCkEi53oNP5istLIjtCG1rCuC7TX7gLKmPgy3oIFgDPz9stG/b6uW3r6wUzM8m/vcSByMIPRnFJHw6voIh+KEjFN2xXtjwrrNNveWxT6aInqW7cEZzFVxaddxtkKrp/+2r51Dxxpq7KZMDFPHJx0HpOhT2tLGTnwstIRdQDzii3YvkDR3Oh/+82kbExxzkM7UDlyUkE7jEPTsZ3oRT0P151vKa3M3qPYBPqYYNGGuN8E+08Z5+XYBlNf2w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zFGrzGtLPPmLrMXllGtxZJge1JQG65AnI2RWLpvahHI=;
 b=I6ByLeWj92QrEjpy0C0GmxpuOHKpO7fALDAJIwIjXqaZ3ZbZV+eznK9B0ZefTs1AKWu3VWf60U7MKxouihnYmmdtG/oVO7aYSRQEG6zQwGw0DKxLn/eJrzGjgB6rBgDXCud04xNma5L4A2MVJ+38dOy5H/rqoX47lYCzGmj1uSsksPq5HqGvxGZ0GOBOZ2jK0bRagCnie4ePhLL3/sX5kES21K6QLNiGLGJdqeBzXr3vVxCTGv1R+yQA2ykdrJ0ThLOBf7YjMzXPqgfc5P428JKu37QkrBtyqtyRALjPJod/u8s2Ec3xE5j89DHwRn8AgI4ANsm5pmCPcHHc11uS5w==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <9c07b1b6-4543-41ba-b58e-1494654a0425@epam.com>
Date: Wed, 3 Dec 2025 16:47:05 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/20] Add SMMUv3 Stage 1 Support for XEN guests
To: Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Julien Grall <julien.grall.oss@gmail.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Nick Rosbrook
 <enr0n@ubuntu.com>, George Dunlap <gwd@xenproject.org>,
 Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
 <CAJ=z9a1eM6M+Gagond9TiFtF7c7EEQKOKHANcvDWDhW_3JzqOA@mail.gmail.com>
 <12ba4388-ee23-4e17-910f-9702271865ad@epam.com>
 <b1f79b84-d0c4-4807-87a7-1cf94e58ecee@xen.org>
 <a5943713-85fa-48ad-86fe-5698604ed8c9@epam.com> <87v7m93bo0.fsf@epam.com>
 <6c80a929-8139-4461-b11c-e6ac67c3d2e4@epam.com> <875xe6ytyk.fsf@epam.com>
 <65727710-0a88-4fff-bb5b-9cf34106833c@epam.com>
 <5df30dbf-17a2-446f-83f9-0e4468622917@epam.com>
 <485a8166-5079-4c0e-a6bf-f6aee8af991d@xen.org>
 <c776c308-cda6-412f-b03c-a4b691b69d33@epam.com>
 <2d07bef7-a7a1-4458-9da6-43bf2956d7d8@xen.org>
Content-Language: en-US
From: Milan Djokic <milan_djokic@epam.com>
In-Reply-To: <2d07bef7-a7a1-4458-9da6-43bf2956d7d8@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: VI1PR04CA0092.eurprd04.prod.outlook.com
 (2603:10a6:803:64::27) To AS8PR03MB8322.eurprd03.prod.outlook.com
 (2603:10a6:20b:509::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB8322:EE_|DU4PR03MB10790:EE_
X-MS-Office365-Filtering-Correlation-Id: 74fb3025-8cac-42cd-fbbc-08de3283365f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?b3hOcGcwRGxQRXpxVTFpT2lvSFRKQ3VOeEtaZXdmMDFFR0I4MDhKK3FKcFFS?=
 =?utf-8?B?eEpxMXlhcmdpeTlDTHlsRE9EdFNIZ0svbTJLcnJWUW9XQkdiZlZXT3ZVYXVW?=
 =?utf-8?B?RW9SWjJrVW5McXNmOTFJZndPR2hjakUxVjJNaGl5VWJQOVRLb05ITVFaa3Vn?=
 =?utf-8?B?ZWJzTTZQTldSTkVVVWEyOVhFL1h0QWJYYVNsWW1NM3pZeGVkTXREMFZNZk1t?=
 =?utf-8?B?YTcxMDVvMzM0V0FrRmRBU1Z3Ky9qT2VQd0dFUjhaYURoSjZsblIvZTZFcTN4?=
 =?utf-8?B?aE9GT2hvN0NUT05MU3JHRUlGaG5kSUp4SGg1OVZDVjVHZ0ZaKzRFZlZ0QnlP?=
 =?utf-8?B?MEdLNjgweWhWNm1VSjQrV0h1NWxiemtYNUpYV3ArK203MUtPWnlqSmptSFdi?=
 =?utf-8?B?TFppWEJQeXNXbThMbUt3Mml6T25QU1ZUNDBtQVVyK3EyNkVyRlNycmxrNGFi?=
 =?utf-8?B?MjAvbzN6a1JuTTFzZWZPajlkazhUbWtkclFvNGEwL2gyY1RtK3JsZEVhSkVG?=
 =?utf-8?B?eEpIQVIxZ21uK3ErZVR5WHM3WFArNkdpU1czalhtZWZqZEk4T0hYampPeWNL?=
 =?utf-8?B?Q284UE1HUFI4SjFKendZOGxlS2RrYTRVVWZIejlhRkdrQk1ua2M2bENwazFU?=
 =?utf-8?B?UUl5THlaemNaczFQYXBhdFZMK1Z5R3NLOXdxRHV5RlhVWFA2SGhyWXJYMnlE?=
 =?utf-8?B?VjJ0U1pqNk9aaVVleHZ2TXNlL2FDZVVRbTZmVWJiQ1FZdS9sTWlIN0FMakhF?=
 =?utf-8?B?UXNkdURoQ1JZZ2pPajJCbTlaZzNabUY0VUFrbjUwbUw0MmV0TWh4K2NrNkpq?=
 =?utf-8?B?RHRUMjlQZ1lpN29VQnZ4NFUzMmd5RHBoKy9PeWhnME1ndFlKSjZBZWZVRWpt?=
 =?utf-8?B?QUFmQjZMSy9IMkFxaDArRitaYTkvL3p1WEdId2FjR09xeU1ZNENnNUYzcURU?=
 =?utf-8?B?NnVndXhNQm50SE1vWUhoMXZXZHo2aVdCdUQzbXYzaTEyM1A4LzRtOS9ERU5v?=
 =?utf-8?B?cEFpMjNya0owdDcyd0dwc1hCVEwyK0Mrc0U1aldnREN2WW5OMnliUjB4eldj?=
 =?utf-8?B?UVhDT04xRkdkUXdHdlVzajU5OUg5bi82Rk1uaFBTaFllUTVEd2cvM29PcDlV?=
 =?utf-8?B?bEU2Yk9BZE1KTFZkYk9lUVp2aCszdzhvVElPTXRyMGZtank4TG4vdVJVRFI5?=
 =?utf-8?B?VVp1VTJISStqdlNubVBlZm9tb2FCNjExU1hCNVhVMStmdjVZYURieW54R05Q?=
 =?utf-8?B?UXdvbVl0aWozYXVIdDBlRE5vaUczZVIrbC9vN1h5R0E4SG9nUVBNTHNCZkdB?=
 =?utf-8?B?VGo2MHd3eHZUQmZVbmNHNHR2L3pOVk5aUm85ak92UEJvV245c1gwRWtrSVlj?=
 =?utf-8?B?eWlhcFU5dTBiL2R1WFNMYVJaLzV1YTRRWGpTbG5zejRNYjJUSHRtdVVDNWxm?=
 =?utf-8?B?VnY1OFpLQ0lnNnBZaHRVWjNBNEUyYnF2QjZrYk1iUXNjQXpjbzIxUHU1M3p4?=
 =?utf-8?B?dFJJYldpUHVDOVRzVmhVeEU2RVVOaE5UTS9WYjdJN253UlVhUW9FY1JiZW53?=
 =?utf-8?B?YkhoWk8wdnEwcUx1YSs1MTZkRGhLNFBsSjR6bTI1KzBCdVF3Wi90NERKeUI4?=
 =?utf-8?B?NDJ4NHBYeXhaaXZ1QTRJb1g1eFZxek9ROFhpd3ZmY2dTZy9HZHd0ZXlJRUFN?=
 =?utf-8?B?cVl6MVlNZEt4Qm02T3JHdzRuN3RVM0xqWTVtMTdZVStVeitCKyswTFR5SEdi?=
 =?utf-8?B?dGJCNWJUZWpNNk9MZnNsKytZaDlHUWF2VGhuc3Z5c2ROdEhpWEs5UnNneWR6?=
 =?utf-8?B?ck1GbkFUdnBHOHo0UE4yQmlmWDc1TkM5dC9udGw0Z29Va05McGpwa1RFY1dJ?=
 =?utf-8?B?aVg3NnhNTUMrWVU4U2pac0doRFA1NVU1ZkcyeDNXODRERjBGWWtIa2RLN3N5?=
 =?utf-8?Q?9YULASw25z0D8+F70c6oKShXsd/hUQwb?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB8322.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TDVNMFhnclUxcUpQRzV4cXRKcGc3MUlTY3llQm5oOXl3elk4VWlYMVRzRFRK?=
 =?utf-8?B?UDFFZXhodDM5TE1WNEd4T3F2bEJIdWtGSVZqdkxaR3Ezb3A3dHlTbDl0cTBo?=
 =?utf-8?B?VThzNThBdVJFeVl3YmdWNlZIdWtsV0Q4OG1sb3R6ZDdLYjN3K1krZDl5NUNU?=
 =?utf-8?B?YlEwYzhTV0d6eFBYV3VFcEtUNmFLRlhHZElRN1kzeGNmZjhzdFlRVy9sc1Ez?=
 =?utf-8?B?MmVPR1pVa0FhOWJVZ3pLY2NwREk0NUZFVUdUR2xCS2NPZzB4QVYxVlV2amp2?=
 =?utf-8?B?VWpPYURQVVpydVJseXlSc0M0YnZGL3hlNHc2bmtmSDRjdVJSNmlrS3Q2ZTlz?=
 =?utf-8?B?d3VoVGZlaWx0TjZwNk1tNmlDTEtqQTJwN3R3Yk0xZXFkMUlIbkhwK3hqT0NN?=
 =?utf-8?B?UnlBTSs3cGZYQ1psWlU5ak1FKzlMQ2VQekhDd0JBYVNBL09xemtBU3l0ZitB?=
 =?utf-8?B?V1RZSmx3VlYvdG5kdmUwd2lnczJiOC9ZUE1LS0k0SE1XSzlYWlE1K2o4WlN3?=
 =?utf-8?B?eUlCOGYrTmNUV3lqNjRwMWVnZnM0V2NqeGY1eFJtZXgwS2tEYlNJKzcxemdi?=
 =?utf-8?B?dHdyS1VpV2ZqSHlvakJNV1A0NFgxdmwvNjBncksvQlNXNjhYK1gyNHdvOGNt?=
 =?utf-8?B?cmovSTByVC9uL0d3RzlYeEVZU29SbU1ZSHd4dEZlN2loeHVOME1XNHEyWmgz?=
 =?utf-8?B?Zmk2Q0JzWUdEMDBLdEQ0TktXekhUVTBaSUkrdTZQUFNSWGhVSmF2d2hlTWdX?=
 =?utf-8?B?VzNtQ0w4UHB4M2pGdXhURlFsZ2lQNDh4TGl5MlFTZjhKdE81M00rZjdMc2Ix?=
 =?utf-8?B?dGNxSngzSVpFWlZ4T3FsQ2VGNktzM1FvbkxXbms3WkZWYWJQQ2pHdzZKOWxs?=
 =?utf-8?B?ZTdGbnZxMkdpbGVsNEtLWmh5S0VJOWJCWllpNGNUVmRra1lLVEJBdUI4UFhq?=
 =?utf-8?B?TndCanJOZ3VjUldwdnpLY1loYkROM2pXaEZUNmhUK0cvV1dlMk9xWXFRYjkr?=
 =?utf-8?B?dExnbWMrcTJJQk1CbDE1TUQ2ZS9idE5iSjFzaUR0UlpKQ1B2blB4bFNvVDM4?=
 =?utf-8?B?VnpNNWNoTWVlMEtkUG1wd2N3TWJFTzhYTXhTdGpMQ0VzdFpuMklha3kzMVJn?=
 =?utf-8?B?cUZYMHVLSTAzVEdTejFudWNtVUhwTExybWlVV1JFdkJVQVF0dE8vV0Q3L2Vm?=
 =?utf-8?B?alBadjBZaHZPcVVpai9wQUNOdzk1UkRFOE5ZVVNQdHdFOFYwemNUSzRabEQ0?=
 =?utf-8?B?VGZSby93NEpTZjBMSzBpclZkRzlkSlh3ak5laS84K2NtQjYwbm9Xc0VXTENP?=
 =?utf-8?B?TyttdHBVdjU5UmV5T04yM3RiOWlRVDAvQXRrdFJxWkR6cjEzOWJjK0JwOThk?=
 =?utf-8?B?S0hBQmo0TTh2OXppbVFUSWdBdWMreTQ4MlZvU29uaDBtYXEvL1Jvd1FoZ1ZE?=
 =?utf-8?B?cFF3WjdrMWM5YkdRYitXbnNubFJ6TGFCMFRpbTl3RjU0dkhVb0ZsbTMrTzlx?=
 =?utf-8?B?Um9UNExUOG1LVGpGSFd4TGZKRG1kOGlDd1JoeU5xcGlQVUNhamkzc01ZOVZn?=
 =?utf-8?B?d1lnc0pxUExXRGNaUGJhWk1GVWJxSnRVcDRLU3RERmQ0Y3JKVXkvWXlRRVRt?=
 =?utf-8?B?aG9SdHRyMzZRUUN5SlM1U0QvdVg3b1dMTENIRkZPZ1pXZ2tJU1ViVVpmYldW?=
 =?utf-8?B?NVp2MUwvNkpkTWJGQXdrOUFBTmdLYTREWjZUOGRYcWpWQ0ViTDkvN1ZpRjlH?=
 =?utf-8?B?UlBOYTUvNHBHL21FN1BuUVh6eDlMYzd3Z2MzaEhRbi94WjE3MHdjZ0U0YzZ0?=
 =?utf-8?B?NmYxZlhnckFOVnFmL0Z5c3JqRzV4ZlBYNXpsWU5CTG45SWkxTXJRaStqMllO?=
 =?utf-8?B?VFFrWU56WEtLMnZ2djBvcnpiOXMxVWNrRkl3VTRBZmFWTVhBVmsrWlhrRXZw?=
 =?utf-8?B?QlJPVDZ4SU01czkyT0t3ZVJhN1Mxcmxsd20zZlRYK2psUjZieCtkYVZjM2cy?=
 =?utf-8?B?dTcrV1lMaFl6NDB3WlZORVVUcWNhdCtGMkVlZTZTeTdETzVVYmR2RHJXc0Ux?=
 =?utf-8?B?cm0xd1dYeGt1bzc4Qkd1bnQrMkpGOGRjT2xnemYzTjFOZFFYdlIwb1FvT0xt?=
 =?utf-8?Q?bnmKUv0DAyZkCTkyEudOOWc5n?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 74fb3025-8cac-42cd-fbbc-08de3283365f
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB8322.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2025 15:47:06.9219
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 1iruQEfiyes1XwVMjuJ3DvrVmJxYS4QA9Ang23n0gwn0YuPyq+yKFWANp4/rjDGeGef7AdDPPVXPFnes5vdEjA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR03MB10790

Hi Julien,
On 12/3/25 11:32, Julien Grall wrote:
> Hi,
> 
> On 02/12/2025 22:08, Milan Djokic wrote:
>> Hi Julien,
>>
>> On 11/27/25 11:22, Julien Grall wrote:
>>>> We have changed vIOMMU design from 1-N to N-N mapping between vIOMMU and
>>>> pIOMMU. Considering single vIOMMU model limitation pointed out by
>>>> Volodymyr (SID overlaps), vIOMMU-per-pIOMMU model turned out to be the
>>>> only proper solution.
>>
>>   > Does this means in your solution you will end up with multiple
>>   > vPCI as well and then map pBDF == vBDF? (this because the SID have to be
>>   > fixed at boot)
>>   >
>>
>> To answer your question, yes we will have multiple vPCI nodes with this
>> model, establishing 1-1 vSID-pSID mapping (same iommu-map range between
>> pPCI-vPCI).
>> For pBDF to vBDF 1-1 mapping, I'm not sure if this is necessary. My
>> understanding is that vBDF->pBDF mapping does not affect vSID->pSID
>> mapping. Am I wrong here?
> 
>   From my understanding, the mapping between a vBDF and vSID is setup at
> domain creation (as this is described in ACPI/Device-Tree). As PCI
> devices can be hotplug, if you want to enforce vSID == pSID, then you
> indirectly need to enforce vBDF == pBDF.
> 

I was not aware of that. I will have to do a detailed analysis on this 
and come back with a solution. Right now I'm not sure how and if 
enumeration will work with multi vIOMMU/vPCI model. If that's not 
possible, we will have to introduce a mapping layer for vSID->pSID and 
go back to single vPCI/vIOMMU model.

> [...]
> 
>>>> - **Runtime Configuration**: Introduces a `viommu` boot parameter for
>>>> dynamic enablement.
>>>>
>>>> Separate vIOMMU device is exposed to guest for every physical IOMMU in
>>>> the system.
>>>> vIOMMU feature is designed in a way to provide a generic vIOMMU
>>>> framework and a backend implementation
>>>> for target IOMMU as separate components.
>>>> Backend implementation contains specific IOMMU structure and commands
>>>> handling (only SMMUv3 currently supported).
>>>> This structure allows potential reuse of stage-1 feature for other IOMMU
>>>> types.
>>>>
>>>> Security Considerations
>>>> =======================
>>>>
>>>> **viommu security benefits:**
>>>>
>>>> - Stage-1 translation ensures guest devices cannot perform unauthorized
>>>> DMA (device I/O address mapping managed by guest).
>>>> - Emulated IOMMU removes guest direct dependency on IOMMU hardware,
>>>> while maintaining domains isolation.
>>>
>>> Sorry, I don't follow this argument. Are you saying that it would be
>>> possible to emulate a SMMUv3 vIOMMU on top of the IPMMU?
>>>
>>
>> No, this would not work. Emulated IOMMU has to match with the pIOMMU type.
>> The argument only points out that we are emulating IOMMU, so the guest
>> does not need direct HW interface for IOMMU functions.
> 
> Sorry, but I am still missing how this is a security benefits.
> 

Yes, this is a mistake. This should be in the design section.

> [...]
> 
> 
>>>>
>>>> 2. Observation:
>>>> ---------------
>>>> Guests can now invalidate Stage-1 caches; invalidation needs forwarding
>>>> to SMMUv3 hardware to maintain coherence.
>>>>
>>>> **Risk:**
>>>> Failing to propagate cache invalidation could allow stale mappings,
>>>> enabling access to old mappings and possibly
>>>> data leakage or misrouting.
>>>
>>> You are referring to data leakage/misrouting between two devices own by
>>> the same guest, right? Xen would still be in charge of flush when the
>>> stage-2 is updated.
>>>
>>
>> Yes, this risk could affect only guests, not xen.
> 
> But it would affect a single guest right? IOW, it is not possible for
> guest A to leak data to guest B even if we don't properly invalidate
> stage-1. Correct?
> 

Correct. I don't see any possible scenario for data leakage between 
different guests, just between 2 devices assigned to the same guest.
I will elaborate on this risk to make it clearer.

>>>>
>>>> 4. Observation:
>>>> ---------------
>>>> The code includes transformations to handle nested translation versus
>>>> standard modes and uses guest-configured
>>>> command queues (e.g., `CMD_CFGI_STE`) and event notifications.
>>>>
>>>> **Risk:**
>>>> Malicious or malformed queue commands from guests could bypass
>>>> validation, manipulate SMMUv3 state,
>>>> or cause system instability.
>>>>
>>>> **Mitigation:** *(Handled by design)*
>>>> Built-in validation of command queue entries and sanitization mechanisms
>>>> ensure only permitted configurations
>>>> are applied.
>>>
>>> This is true as long as we didn't make an mistake in the
>>> configurations ;).
>>>
>>
>> Yes, but I don’t see anything we can do to prevent configuration mistakes.
> 
> There is nothing really preventing it. Same for ...
>>
>>>
>>>> This is supported via additions in `vsmmuv3` and `cmdqueue`
>>>> handling code.
>>>>
>>>> 5. Observation:
>>>> ---------------
>>>> Device Tree modifications enable device assignment and configuration
>>>> through guest DT fragments (e.g., `iommus`)
>>>> are added via `libxl`.
>>>>
>>>> **Risk:**
>>>> Erroneous or malicious Device Tree injection could result in device
>>>> misbinding or guest access to unauthorized
>>>> hardware.
>>>
>>> The DT fragment are not security support and will never be at least
>>> until you have can a libfdt that is able to detect malformed Device-Tree
>>> (I haven't checked if this has changed recently).
>>>
>>
>> But this should still be considered a risk? Similar to the previous
>> observation, system integrator should ensure that DT fragments are correct.
> 
> ... this one. I agree they are risks, but they don't provide much input
> in the design of the vIOMMU.
> 

I get your point. I can remove them if considered to be overhead in this 
context.

> I am a lot more concerned for the scheduling part because the resources
> are shared.
> 
>>> My understanding is there is only a single physical event queue. Xen
>>> would be responsible to handle the events in the queue and forward to
>>> the respective guests. If so, it is not clear what you mean by "disable
>>> event queue".
>>>
>>
>> I was referring to emulated IOMMU event queue. The idea is to make it
>> optional for guests. When disabled, events won't be propagated to the
>> guest.
> 
> But Xen will still receive the events, correct? If so, how does it make
> it better?
> 

You are correct, Xen will still receive events and handle them in pIOMMU 
driver. This is only a mitigation for the part introduced by vIOMMU 
design (events emulation), not the complete solution. This risk has more 
general context and could be related to stage-2 only guests also (e.g. 
guests that perform DMA to an address they are not allowed to access, 
causing translation faults).
But imo mitigation for the physical event queue flooding should be part 
of the pIOMMU driver design

Best regards,
Milan



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 16:07:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 16:07:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176912.1501358 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQpNj-00044j-KS; Wed, 03 Dec 2025 16:07:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176912.1501358; Wed, 03 Dec 2025 16:07:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQpNj-00044c-Gw; Wed, 03 Dec 2025 16:07:07 +0000
Received: by outflank-mailman (input) for mailman id 1176912;
 Wed, 03 Dec 2025 16:07:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Oy6P=6J=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1vQpNi-00044W-Fm
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 16:07:06 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1aeeafe6-d062-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 17:07:03 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by BLAPR03MB5604.namprd03.prod.outlook.com (2603:10b6:208:29a::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Wed, 3 Dec
 2025 16:06:58 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::c0cd:bcd1:5235:66f0]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::c0cd:bcd1:5235:66f0%7]) with mapi id 15.20.9366.012; Wed, 3 Dec 2025
 16:06:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1aeeafe6-d062-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Vo7bGGq71+Lpw5gyBCe78cOUb0WVmC5ffMN9MZwp0YYYl7TE1I9grROW/oI8OIOy49zAlp8vSUdfwrqwZjk0/PD4fvlzh5ivmYjqOZtzfrpH2mcYejlyLtVmvA8DiygGpvKMJ5PMsy8holqGGmEKObPH9zZcmOOe6occ+bURsHmT5uVzCtjdmANLIcSPIrdpV1Mx3agrHYBHaWozXtk1Gfp7Ix3xnb3aMRuVXqFl8HVjNoIzEBI4V+uLdoqsElWcbYe3aP+6X0M0N3lKhYSBkAVKwx6nplO4iRJH3SYBPafjrFXJjrnZ4o6R8iL2unVZonWD6qvuV275q5FLoGYKUA==
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=REWVNpdysv7KaSa1XUg6pNxY7LrRMxapyE56yZ5LTjY=;
 b=fC4lp4SJ63LG63w2rSL5+n/zHA9YFrlqKCy6k8A6SAZhhPwnx236f7Qx5wZ0YoZVRdq4VF4GjzZEeyjdj+pyo+xrOXI0jZE4hQD+kD55x3eKjWyma9L200Hdn6EdzzteOFcO2rD7bzzZqYVk6szG3Ji3YEzo4t0Kf6YktdSdvbVbIOHfC+fDeSo5byNmOi4E29pM4PQ92MVDQ27O3U0useZWS6yMHAZQkDSOX87H3Z/jR+qyuMMVKO84VfV1N1nnWgZdKu2aXkshCGFk+EDSUGXgm3pbFBBaiYJIQDTnwfPoI4KmGYjxrLPQDIfA16F4nYncRhuh/eAiHrNIlCi3bQ==
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=REWVNpdysv7KaSa1XUg6pNxY7LrRMxapyE56yZ5LTjY=;
 b=tiFLwO6kEHe1eSWZ8QL2FmtHD/rZWM3DbetfgeDIfZTALu4iZKlUyP2PQi0Gwvvy/k/QFePtqptD8xjLGsNliEsZrPORU1B4NZEspiZ9NiiNE77clp02Oqrp83qMCKTWzbGPUG6XryqxE/taexBb0s7G2aIJz+3UGOtwnRmD1Aw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Kevin Lampis <kevin.lampis@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	roger.pau@citrix.com,
	Kevin Lampis <kevin.lampis@citrix.com>
Subject: [PATCH] x86: Limit the non-architectural constant TSC model checks
Date: Wed,  3 Dec 2025 16:06:18 +0000
Message-ID: <20251203160618.91883-1-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0460.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1aa::15) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|BLAPR03MB5604:EE_
X-MS-Office365-Filtering-Correlation-Id: cd79498c-2a9c-4b23-d971-08de3285fc70
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?Y+xJ0b7DoCdU/AFDuav8NOo1jFWNfwDL0Jo9jiddCuGDzwAa6Dt6k679Mzk8?=
 =?us-ascii?Q?/M1cZAaUkAm9fqOQDhkdwOAHHZHwYkd2evdMJn6mQ4yYKoFebgoUXp+4IFwW?=
 =?us-ascii?Q?03v5TKLAU5DDLL9LJKS+P8aLO1Y9lP3VrkP1dTMgAiFrVe+VNqW3Ta6Yu+z1?=
 =?us-ascii?Q?hw93tkvOySxcWoiWWxiqdQfiEhc+BTZoG1B6kfBicZCLHo6fjUMGGrmrDnYX?=
 =?us-ascii?Q?0Yof2lzdJfVxgV+6P3qZ4RpiAIl5DSVz8uTtRGwLJfYnXD4G/y/j6aS0C8tn?=
 =?us-ascii?Q?jdIHA7YmBw028BUkcQku4/JX7vE/ZyAkveRzYZQYRm7FleXe9Nepyb/fj7+Y?=
 =?us-ascii?Q?zGZgNPdBVwEYgApPHJ7bzxnr3e19wqeHvUKVix6ILMZQR9lZYyDbhJc1qHF+?=
 =?us-ascii?Q?0CQ9KfeDMrX32UGOJpDWJ/TwqgFLSbpJZZS1Cln3Z6zCaKYlTfBH8AdfjiUP?=
 =?us-ascii?Q?znhYZ3xF/G9SUJstmH7fySvwqYKFF67qlMCt1FJj2QmEbHWKbUmG4U87kQHW?=
 =?us-ascii?Q?tZ2R3HDQAePyW16FeOt/wasTtcS/KpC9Y1xjNoGLwqG7uPKyl/l8I/OzZxHz?=
 =?us-ascii?Q?4bxOvzFGeqQZqSekFAJyMH17OfG2oXGxe0iyuKi+6aDWxbjIp+cBium1vS6U?=
 =?us-ascii?Q?hmywV8p52tDJJ/2xuwWWC9q7c3l541XqvBJIh6/tX0UInFTXnsjgIsIfx1QI?=
 =?us-ascii?Q?zGvHBzK4aV3niByKTw+rFYCMEDDU9zHnV3TiF6j8tlIAVEf3mTM0VcZdizK0?=
 =?us-ascii?Q?z7rnjRz4QX+pqqwmA6uAg2rReaf7KLt1ruQUAOWItGD5N1CVaXDY6ojESEpT?=
 =?us-ascii?Q?Arw5foIyBwl2qj+hG31npB4uVxUDzULxUTUTCIJ9gc2vAbJRItUyMAJbSFq+?=
 =?us-ascii?Q?rhSCad99DAPVRH87DYwZNlN5kMr+BRgRN7QeD/b2NhvAWb9r1XuIkOT5Ka2N?=
 =?us-ascii?Q?U21iNDPDSsPaylXht3d8YmMp8HOeyuhJR335FuzMfeIGCUMcHrZIGeuKiqE9?=
 =?us-ascii?Q?uaNRhJZeQPHAklirQKxARcZvT6MsE7On+wvU8mKPVgr9QhozN85o+ox4xLYp?=
 =?us-ascii?Q?57cZzqhA2TVSYZrtSzJwdTp7THFdqq/KsbDxC2mk6rkjZrgdKJtPJJlUiu0M?=
 =?us-ascii?Q?aoxCg6HXV+MpmgJa5vZTe7LsadBvu3Hjuxsr+0ANNZ9XGyLTmHoF0UezgOX7?=
 =?us-ascii?Q?BPJvn6hUHTtc+pd2Lf27ptqk7iKtGaxhel3g/Qkwn1tRqliHGaso3B/8hhlK?=
 =?us-ascii?Q?DSI6GpQEar7g71b+ncAIp2P1nTs1fd6ulLwMlElaoXFToy8LSovs4xSF+FmY?=
 =?us-ascii?Q?bUMEg/syioENb48+lN4ds9mk2dNBFPezeRFoCUWT1vQg2LX3RDq9oVCJxKy3?=
 =?us-ascii?Q?jaCUgczRnjrHfuZOFdVe4aRwR7TUyb2miylewQ1eTxHG/7cBqt0YYkFFjHvX?=
 =?us-ascii?Q?VFEhzmkXnzmlkE1Js4BCKYtgqCEA91OH?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7996.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?3MdXFPYYQiM1UOmj634wXHHt3TsI5geazdKg+GGNZCUTfJZrdh4SEfUtpQ0Z?=
 =?us-ascii?Q?XnQDojfZtKXkLsUT7Uy6VBg2zy6iAj3UPg6KxlD40I3mVoRXkXhiwkNFsKY0?=
 =?us-ascii?Q?VCmNyxaJP2FVPDtim9H5Fp4QPB/f5i/xICogflyeoA4AT7A2fPg3TvcLm9Gf?=
 =?us-ascii?Q?yRwjadhtPjHxnyt/LXO0pLQAUn52++Nri5xHRYfMOY/xx/rUhHTyAlb0FjjW?=
 =?us-ascii?Q?9yUUbanobF/vS9bVad55gDcBbdewCnyqGE+UR2UaPlXoeXhPGXK8UU5Xy4bS?=
 =?us-ascii?Q?PV3yVAJZEYnarKFC+rgglNb4+5yXVmtFBvyQgJCZqXDOj0FHnzwxBe+8zJ9+?=
 =?us-ascii?Q?G2KfwSe5itlYgCc879uNNSwpAm5QAxr0gUHA+uil6RpReLLY7tQr1v68C8nm?=
 =?us-ascii?Q?bF5DF1cZid7uxeIqJ/L+NPOXBZAyzm5D9nIWzN34ym7+S21XnXP2JBFaIcfG?=
 =?us-ascii?Q?smy1MzENAvpNERhnZ0nCoHxWgDrLX/eFJtEplPrJCvc+T+hTl17EjaVPl1sl?=
 =?us-ascii?Q?LVbXrOOAKKRx8OA6eCmMlGVRAdQgbHQ0IRAyQ5un69yBlz2gHLcxl2qGKSxB?=
 =?us-ascii?Q?IeVWzjiVVS6hB6h1B7efZWslP0SnvLFqXyqSWghbyXrdNUmaqDCt6Z6RqNUb?=
 =?us-ascii?Q?HjWE03JWxChTO8JAM+8KKzWXk+MNMHM+SKq0rZpv3CVY7rsIatuclMMYo0VU?=
 =?us-ascii?Q?fAZIPaSuMX+AQ4EgmtIQhU35IAQbrgjko5i7ZHOhyLHCgtbZ++mUqh5MfStg?=
 =?us-ascii?Q?m02p4lofUD4FdLWRvTF4LZskqKP+gpUcTQeaJ5H2wyq0orhZoMf2Aul7VkEQ?=
 =?us-ascii?Q?qMu2X9Z6RHcILZhhSZkos35mjrUs6Yh87VWMZo3cZ2C9hTeABBhfmkVFl8Fl?=
 =?us-ascii?Q?LGYlRpFxIXrK3Knvr0x5Q8uXBiUdUUXNWmKr/XC3e6mSmCr6O3+p+Ah0zFOr?=
 =?us-ascii?Q?H2JuK0/F2xScCcmgsJMgmwoWtr07AoWl+B7GqnEzPYcNyvk3NPNtmbzev5T7?=
 =?us-ascii?Q?5BAlI2BM7wfCeiyWm6HHHx/8QPTqjSDj3r1UUeVHRAEtAHm9qFj83l5k+SjS?=
 =?us-ascii?Q?DNXKPO8cqSS6Zs3vRU9T7LLg8l9G3ORm3y7xQaCsgbKp9ecoHeMIAQBlAXxE?=
 =?us-ascii?Q?pFQcZilU3PmxY12O/l9k382JM2DbDekvApgsk0Gghz75T0SIFiuJ/WkCRNEC?=
 =?us-ascii?Q?W6RcCR30lQyhnsiBGmucV/PcXx3J3tOzSJKLEgbgArKaGmSZ+CtrDZv7SBHR?=
 =?us-ascii?Q?pa1cuZhrsMw36kOagGKA4ZR2CH0NEtT91QTX1p90pz0Uj/azc7QI1VpeBUSb?=
 =?us-ascii?Q?PWZoAvPOWZ1DjQI2r/qDpEtdH04asfK37InJEtPiANUG7inUyVV6dhj/dq+i?=
 =?us-ascii?Q?V6IwZTiVX6AR4ywnRhFLOZbdZ3YgYs59eOw735JZpfPKgoB5m18cZiSkVBml?=
 =?us-ascii?Q?gOVi8SzOEsip5vBXDkEWia0nPDv6N8QQnu/0EYFJEgka1b4VYci2Idu5CCDT?=
 =?us-ascii?Q?fk7d0EBY8+eeKn6nqLlMUgNPh56sEFHnRm4A5bLeYDWMfozwjPJQ1vcBrRXQ?=
 =?us-ascii?Q?c1gtEKTNKYwfd+E6RF21ujCMumFJsxZ4UC797WA6rvgU6IwKyUFcBMgYPpCk?=
 =?us-ascii?Q?Ag=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cd79498c-2a9c-4b23-d971-08de3285fc70
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2025 16:06:58.1328
 (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: INmB+HEQd9SftCHTINFg6NOx+uE94mfJevsrfS5O3IgmMDvCqIqoir7lnvq3LjXEwMEJzyKsqPUxaVZ82I+cbA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR03MB5604

There are some older Intel CPUs which have CONSTANT_TSC behavior but
don't advertise it through CPUID. This change replaces the previous
open-ended check with a definitive range to make it clear that this only
applies to a specific set of CPUs and that later CPUs like Family 18+
won't need to be included.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
 xen/arch/x86/cpu/intel.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
index 2bb9956a79..1c37179bc5 100644
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -673,15 +673,15 @@ static void cf_check init_intel(struct cpuinfo_x86 *c)
 	/* Work around errata */
 	Intel_errata_workarounds(c);
 
-	if ( ( c->family == 15 && c->model >= 0x03 ) ||
-	     ( c->family == 6 && c->model >= 0x0e ) )
-		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
-
+	/* Use a model specific check for some older CPUs that have
+	 * constant TSC but may not report it via CPUID. */
 	if (cpu_has(c, X86_FEATURE_ITSC)) {
 		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
 		__set_bit(X86_FEATURE_NONSTOP_TSC, c->x86_capability);
 		__set_bit(X86_FEATURE_TSC_RELIABLE, c->x86_capability);
-	}
+	} else if ( ( c->vfm >= INTEL_P4_PRESCOTT && c->vfm <= INTEL_P4_CEDARMILL ) ||
+	            ( c->vfm >= INTEL_CORE_YONAH && c->vfm <= INTEL_IVYBRIDGE ) )
+		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
 
 	if ( opt_arat &&
 	     ( c->cpuid_level >= 0x00000006 ) &&
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 16:16:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 16:16:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176922.1501367 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQpX9-0005lV-GL; Wed, 03 Dec 2025 16:16:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176922.1501367; Wed, 03 Dec 2025 16:16:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQpX9-0005lO-Dg; Wed, 03 Dec 2025 16:16:51 +0000
Received: by outflank-mailman (input) for mailman id 1176922;
 Wed, 03 Dec 2025 16:10:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ik/O=6J=linux.ibm.com=venkat88@srs-se1.protection.inumbo.net>)
 id 1vQpQu-0005ZS-A0
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 16:10:24 +0000
Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com
 [148.163.156.1]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 90961ea8-d062-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 17:10:21 +0100 (CET)
Received: from pps.filterd (m0353729.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5B3CO5ib017680;
 Wed, 3 Dec 2025 16:09:15 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aqrh73qnt-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 03 Dec 2025 16:09:15 +0000 (GMT)
Received: from m0353729.ppops.net (m0353729.ppops.net [127.0.0.1])
 by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5B3G6PaS010932;
 Wed, 3 Dec 2025 16:09:14 GMT
Received: from ppma21.wdc07v.mail.ibm.com
 (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aqrh73qnm-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 03 Dec 2025 16:09:14 +0000 (GMT)
Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1])
 by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5B3E9LMX021504;
 Wed, 3 Dec 2025 16:09:13 GMT
Received: from smtprelay02.wdc07v.mail.ibm.com ([172.16.1.69])
 by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4at8c6c5et-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 03 Dec 2025 16:09:13 +0000
Received: from smtpav06.dal12v.mail.ibm.com (smtpav06.dal12v.mail.ibm.com
 [10.241.53.105])
 by smtprelay02.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 5B3G9B5859572634
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Wed, 3 Dec 2025 16:09:11 GMT
Received: from smtpav06.dal12v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 7232D5805E;
 Wed,  3 Dec 2025 16:09:11 +0000 (GMT)
Received: from smtpav06.dal12v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 2DA365805D;
 Wed,  3 Dec 2025 16:09:00 +0000 (GMT)
Received: from smtpclient.apple (unknown [9.61.245.178])
 by smtpav06.dal12v.mail.ibm.com (Postfix) with ESMTPS;
 Wed,  3 Dec 2025 16:08:59 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 90961ea8-d062-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=pp1; bh=jXScAL
	ikZ30hQ2GZgvAK3QYxrVSr7/W2SKCyOSYy+M8=; b=OzAaPrJ9niAlz8YUabjc2c
	D2rDIzen8I5c7OyZYxx2URHyV2XunQ2MUcgBaoNzneCJqJaoH45EyqRiZgfDjB+/
	veCs0WNuB+IbYJeej2GoS0RN8J1IpA0hi2OgqVMfSotjONRPs+k2RuSnMpFy8HHN
	uiAleHpdwlEsdAtRS2pAUCQ172+p/m8QMwvQAm9OmQg8jrxQBSxTCS49GJQDM/hd
	YaiXShCl1Wyn3/gTBPTCgGV783dZ+t3yx4e2oTF2YM1ZjRt408LJ08mvqP4uL2wh
	+BFiORtd4IG/QtGj3cFZ2h8ZbcqM1iCSyZ+Ofzu8c0xTKmsr/4136UJDD7xjesdw
	==
Content-Type: text/plain;
	charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.600.62\))
Subject: Re: [PATCH v5 00/12] Nesting support for lazy MMU mode
From: Venkat <venkat88@linux.ibm.com>
In-Reply-To: <20251124132228.622678-1-kevin.brodsky@arm.com>
Date: Wed, 3 Dec 2025 21:38:46 +0530
Cc: linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org>,
        Alexander Gordeev <agordeev@linux.ibm.com>,
        Andreas Larsson <andreas@gaisler.com>,
        Andrew Morton <akpm@linux-foundation.org>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Borislav Petkov <bp@alien8.de>,
        Catalin Marinas <catalin.marinas@arm.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        David Hildenbrand <david@redhat.com>,
        "David S. Miller" <davem@davemloft.net>,
        David Woodhouse <dwmw2@infradead.org>,
        "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
        Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
        "Liam R. Howlett" <Liam.Howlett@oracle.com>,
        Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
        Madhavan Srinivasan <maddy@linux.ibm.com>,
        Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
        Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
        Peter Zijlstra <peterz@infradead.org>,
        "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
        Ryan Roberts <ryan.roberts@arm.com>,
        Suren Baghdasaryan <surenb@google.com>,
        Thomas Gleixner <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
        Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
        linux-arm-kernel@lists.infradead.org,
        linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        x86@kernel.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <94889730-1AEF-458F-B623-04092C0D6819@linux.ibm.com>
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>
X-Mailer: Apple Mail (2.3774.600.62)
X-TM-AS-GCONF: 00
X-Authority-Analysis: v=2.4 cv=dK+rWeZb c=1 sm=1 tr=0 ts=693060ab cx=c_pps
 a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17
 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22
 a=VwQbUJbxAAAA:8 a=7CQSdrXTAAAA:8 a=20KFwNOVAAAA:8 a=NEAV23lmAAAA:8
 a=VnNF1IyMAAAA:8 a=ebG-ZW-8AAAA:8 a=Z4Rwk6OoAAAA:8 a=yPCof4ZbAAAA:8
 a=1UX6Do5GAAAA:8 a=QyXUC8HyAAAA:8 a=J1Y8HTJGAAAA:8 a=JfrnYn6hAAAA:8
 a=oGMlB6cnAAAA:8 a=1XWaLZrsAAAA:8 a=iox4zFpeAAAA:8 a=pGLkceISAAAA:8
 a=voM4FWlXAAAA:8 a=cWRNjhkoAAAA:8 a=FiMq9w3UmxbX_X-K2aIA:9 a=QEXdDO2ut3YA:10
 a=a-qgeE7W1pNrGK8U0ZQC:22 a=Bj2TwAA_C77lQ_X2_dkp:22 a=HkZW87K1Qel5hWWM3VKY:22
 a=Et2XPkok5AAZYJIKzHr1:22 a=y1Q9-5lHfBjTkpIzbSAN:22 a=1CNFftbPRP8L7MoqJWF3:22
 a=NdAtdrkLVvyUPsUoGJp4:22 a=WzC6qhA0u3u7Ye7llzcV:22 a=IC2XNlieTeVoXbcui8wp:22
 a=sVa6W5Aao32NNC1mekxh:22
X-Proofpoint-GUID: 793QMPZ1KY-blGu-SBEcqhhoUxKTBTPT
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTI5MDAyMCBTYWx0ZWRfX0Y2RJ6pY6f9G
 m7cnnUyc3HVayFdbJ8Y4k6LXm7VoMHSKC06j1sstdK8iRNOp43h8/5lXlJzRyMFMOkegM/YL0t7
 uHv9SIDvRWXY/EKqqrIimWlBZRLSRAgOBF4gk2Xot87tbYXsiVnaukxT1saJqjqQ0r0bPe10fQw
 ebRokn+rP5Dr6S57DFJViOyBvzPSu7nMhQXml2iQlGg8l7boxqiMcoTdjYFnse6EYftUPjxeWZe
 MGmnOFTxzjWPZDmm/bKQ+e3L/l/GwpDCojvQuL7j2d5Yz5YuziA0XIkWiBZW3RPXY32AZclnmqt
 wPoca86vF4yKC81xjojgszJzuCIvZcNgdX7sNhM04AVP6ms5j1l2VO43joUDFPf3weZ3oFA5u7V
 hBuOHcByMOvgTlotD8Cjz6ve04L0kw==
X-Proofpoint-ORIG-GUID: -W-wtyUpyFvwADIN6iXaZYxBgTf_cVPF
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-12-03_02,2025-11-27_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 suspectscore=0 lowpriorityscore=0 clxscore=1011 priorityscore=1501
 bulkscore=0 adultscore=0 phishscore=0 impostorscore=0 spamscore=0
 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000
 definitions=main-2511290020



> On 24 Nov 2025, at 6:52=E2=80=AFPM, Kevin Brodsky =
<kevin.brodsky@arm.com> wrote:
>=20
> When the lazy MMU mode was introduced eons ago, it wasn't made clear
> whether such a sequence was legal:
>=20
> arch_enter_lazy_mmu_mode()
> ...
> arch_enter_lazy_mmu_mode()
> ...
> arch_leave_lazy_mmu_mode()
> ...
> arch_leave_lazy_mmu_mode()
>=20
> It seems fair to say that nested calls to
> arch_{enter,leave}_lazy_mmu_mode() were not expected, and most
> architectures never explicitly supported it.
>=20
> Nesting does in fact occur in certain configurations, and avoiding it
> has proved difficult. This series therefore enables lazy_mmu sections =
to
> nest, on all architectures.
>=20
> Nesting is handled using a counter in task_struct (patch 8), like =
other
> stateless APIs such as pagefault_{disable,enable}(). This is fully
> handled in a new generic layer in <linux/pgtable.h>; the arch_* API
> remains unchanged. A new pair of calls, =
lazy_mmu_mode_{pause,resume}(),
> is also introduced to allow functions that are called with the lazy =
MMU
> mode enabled to temporarily pause it, regardless of nesting.
>=20
> An arch now opts in to using the lazy MMU mode by selecting
> CONFIG_ARCH_LAZY_MMU; this is more appropriate now that we have a
> generic API, especially with state conditionally added to task_struct.
>=20
> ---
>=20
> Background: Ryan Roberts' series from March [1] attempted to prevent
> nesting from ever occurring, and mostly succeeded. Unfortunately, a
> corner case (DEBUG_PAGEALLOC) may still cause nesting to occur on =
arm64.
> Ryan proposed [2] to address that corner case at the generic level but
> this approach received pushback; [3] then attempted to solve the issue
> on arm64 only, but it was deemed too fragile.
>=20
> It feels generally difficult to guarantee that lazy_mmu sections don't
> nest, because callers of various standard mm functions do not know if
> the function uses lazy_mmu itself.
>=20
> The overall approach in v3/v4 is very close to what David Hildenbrand
> proposed on v2 [4].
>=20
> Unlike in v1/v2, no special provision is made for architectures to
> save/restore extra state when entering/leaving the mode. Based on the
> discussions so far, this does not seem to be required - an arch can
> store any relevant state in thread_struct during arch_enter() and
> restore it in arch_leave(). Nesting is not a concern as these =
functions
> are only called at the top level, not in nested sections.
>=20
> The introduction of a generic layer, and tracking of the lazy MMU =
state
> in task_struct, also allows to streamline the arch callbacks - this
> series removes 67 lines from arch/.
>=20
> Patch overview:
>=20
> * Patch 1: cleanup - avoids having to deal with the powerpc
>  context-switching code
>=20
> * Patch 2-4: prepare arch_flush_lazy_mmu_mode() to be called from the
>  generic layer (patch 8)
>=20
> * Patch 5-6: new API + CONFIG_ARCH_LAZY_MMU
>=20
> * Patch 7: ensure correctness in interrupt context
>=20
> * Patch 8: nesting support
>=20
> * Patch 9-12: replace arch-specific tracking of lazy MMU mode with
>  generic API
>=20
> This series has been tested by running the mm kselftests on arm64 with
> DEBUG_VM, DEBUG_PAGEALLOC, KFENCE and KASAN. It was also build-tested =
on
> other architectures (with and without XEN_PV on x86).
>=20
> - Kevin
>=20
> [1] =
https://lore.kernel.org/all/20250303141542.3371656-1-ryan.roberts@arm.com/=

> [2] =
https://lore.kernel.org/all/20250530140446.2387131-1-ryan.roberts@arm.com/=

> [3] =
https://lore.kernel.org/all/20250606135654.178300-1-ryan.roberts@arm.com/
> [4] =
https://lore.kernel.org/all/ef343405-c394-4763-a79f-21381f217b6c@redhat.co=
m/
> ---
> Changelog
>=20
> v4..v5:
>=20
> - Rebased on mm-unstable
> - Patch 3: added missing radix_enabled() check in arch_flush()
>  [Ritesh Harjani]
> - Patch 6: declare arch_flush_lazy_mmu_mode() as static inline on x86
>  [Ryan Roberts]
> - Patch 7 (formerly 12): moved before patch 8 to ensure correctness in
>  interrupt context [Ryan]. The diffs in in_lazy_mmu_mode() and
>  queue_pte_barriers() are moved to patch 8 and 9 resp.
> - Patch 8:
>  * Removed all restrictions regarding lazy_mmu_mode_{pause,resume}().
>    They may now be called even when lazy MMU isn't enabled, and
>    any call to lazy_mmu_mode_* may be made while paused (such calls
>    will be ignored). [David, Ryan]
>  * lazy_mmu_state.{nesting_level,active} are replaced with
>    {enable_count,pause_count} to track arbitrary nesting of both
>    enable/disable and pause/resume [Ryan]
>  * Added __task_lazy_mmu_mode_active() for use in patch 12 [David]
>  * Added documentation for all the functions [Ryan]
> - Patch 9: keep existing test + set TIF_LAZY_MMU_PENDING instead of
>  atomic RMW [David, Ryan]
> - Patch 12: use __task_lazy_mmu_mode_active() instead of accessing
>  lazy_mmu_state directly [David]
> - Collected R-b/A-b tags
>=20
> v4: =
https://lore.kernel.org/all/20251029100909.3381140-1-kevin.brodsky@arm.com=
/
>=20
> v3..v4:
>=20
> - Patch 2: restored ordering of preempt_{disable,enable}() [Dave =
Hansen]
> - Patch 5 onwards: s/ARCH_LAZY_MMU/ARCH_HAS_LAZY_MMU_MODE/ [Mike =
Rapoport]
> - Patch 7: renamed lazy_mmu_state members, removed VM_BUG_ON(),
>  reordered writes to lazy_mmu_state members [David Hildenbrand]
> - Dropped patch 13 as it doesn't seem justified [David H]
> - Various improvements to commit messages [David H]
>=20
> v3: =
https://lore.kernel.org/all/20251015082727.2395128-1-kevin.brodsky@arm.com=
/
>=20
> v2..v3:
>=20
> - Full rewrite; dropped all Acked-by/Reviewed-by.
> - Rebased on v6.18-rc1.
>=20
> v2: =
https://lore.kernel.org/all/20250908073931.4159362-1-kevin.brodsky@arm.com=
/
>=20
> v1..v2:
> - Rebased on mm-unstable.
> - Patch 2: handled new calls to enter()/leave(), clarified how the =
"flush"
>  pattern (leave() followed by enter()) is handled.
> - Patch 5,6: removed unnecessary local variable [Alexander Gordeev's
>  suggestion].
> - Added Mike Rapoport's Acked-by.
>=20
> v1: =
https://lore.kernel.org/all/20250904125736.3918646-1-kevin.brodsky@arm.com=
/
> ---
> Cc: Alexander Gordeev <agordeev@linux.ibm.com>
> Cc: Andreas Larsson <andreas@gaisler.com>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
> Cc: Borislav Petkov <bp@alien8.de>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
> Cc: Dave Hansen <dave.hansen@linux.intel.com>
> Cc: David Hildenbrand <david@redhat.com>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: David Woodhouse <dwmw2@infradead.org>
> Cc: "H. Peter Anvin" <hpa@zytor.com>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: Jann Horn <jannh@google.com>
> Cc: Juergen Gross <jgross@suse.com>
> Cc: "Liam R. Howlett" <Liam.Howlett@oracle.com>
> Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
> Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Cc: Michal Hocko <mhocko@suse.com>
> Cc: Mike Rapoport <rppt@kernel.org>
> Cc: Nicholas Piggin <npiggin@gmail.com>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
> Cc: Ryan Roberts <ryan.roberts@arm.com>
> Cc: Suren Baghdasaryan <surenb@google.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Venkat Rao Bagalkote <venkat88@linux.ibm.com>
> Cc: Vlastimil Babka <vbabka@suse.cz>
> Cc: Will Deacon <will@kernel.org>
> Cc: Yeoreum Yun <yeoreum.yun@arm.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Cc: linuxppc-dev@lists.ozlabs.org
> Cc: sparclinux@vger.kernel.org
> Cc: xen-devel@lists.xenproject.org
> Cc: x86@kernel.org
> ---
> Alexander Gordeev (1):
>  powerpc/64s: Do not re-activate batched TLB flush
>=20
> Kevin Brodsky (11):
>  x86/xen: simplify flush_lazy_mmu()
>  powerpc/mm: implement arch_flush_lazy_mmu_mode()
>  sparc/mm: implement arch_flush_lazy_mmu_mode()
>  mm: introduce CONFIG_ARCH_HAS_LAZY_MMU_MODE
>  mm: introduce generic lazy_mmu helpers
>  mm: bail out of lazy_mmu_mode_* in interrupt context
>  mm: enable lazy_mmu sections to nest
>  arm64: mm: replace TIF_LAZY_MMU with in_lazy_mmu_mode()
>  powerpc/mm: replace batch->active with in_lazy_mmu_mode()
>  sparc/mm: replace batch->active with in_lazy_mmu_mode()
>  x86/xen: use lazy_mmu_state when context-switching
>=20
> arch/arm64/Kconfig                            |   1 +
> arch/arm64/include/asm/pgtable.h              |  41 +----
> arch/arm64/include/asm/thread_info.h          |   3 +-
> arch/arm64/mm/mmu.c                           |   4 +-
> arch/arm64/mm/pageattr.c                      |   4 +-
> .../include/asm/book3s/64/tlbflush-hash.h     |  20 ++-
> arch/powerpc/include/asm/thread_info.h        |   2 -
> arch/powerpc/kernel/process.c                 |  25 ---
> arch/powerpc/mm/book3s64/hash_tlb.c           |  10 +-
> arch/powerpc/mm/book3s64/subpage_prot.c       |   4 +-
> arch/powerpc/platforms/Kconfig.cputype        |   1 +
> arch/sparc/Kconfig                            |   1 +
> arch/sparc/include/asm/tlbflush_64.h          |   5 +-
> arch/sparc/mm/tlb.c                           |  14 +-
> arch/x86/Kconfig                              |   1 +
> arch/x86/boot/compressed/misc.h               |   1 +
> arch/x86/boot/startup/sme.c                   |   1 +
> arch/x86/include/asm/paravirt.h               |   1 -
> arch/x86/include/asm/pgtable.h                |   1 +
> arch/x86/include/asm/thread_info.h            |   4 +-
> arch/x86/xen/enlighten_pv.c                   |   3 +-
> arch/x86/xen/mmu_pv.c                         |   6 +-
> fs/proc/task_mmu.c                            |   4 +-
> include/linux/mm_types_task.h                 |   5 +
> include/linux/pgtable.h                       | 147 +++++++++++++++++-
> include/linux/sched.h                         |  45 ++++++
> mm/Kconfig                                    |   3 +
> mm/kasan/shadow.c                             |   8 +-
> mm/madvise.c                                  |  18 +--
> mm/memory.c                                   |  16 +-
> mm/migrate_device.c                           |   8 +-
> mm/mprotect.c                                 |   4 +-
> mm/mremap.c                                   |   4 +-
> mm/userfaultfd.c                              |   4 +-
> mm/vmalloc.c                                  |  12 +-
> mm/vmscan.c                                   |  12 +-
> 36 files changed, 282 insertions(+), 161 deletions(-)

Tested this patch series by applying on top of mm-unstable, on both HASH =
and RADIX MMU, and all tests are passed on both MMU=E2=80=99s.

Ran: cache_shape, copyloops, mm from linux source, selftests/powerpc/ =
and ran memory-hotplug from selftests/. Also ran below tests from =
avocado misc-test repo.

Link to repo: =
https://github.com/avocado-framework-tests/avocado-misc-tests

avocado-misc-tests/memory/stutter.py
avocado-misc-tests/memory/eatmemory.py
avocado-misc-tests/memory/hugepage_sanity.py
avocado-misc-tests/memory/fork_mem.py
avocado-misc-tests/memory/memory_api.py
avocado-misc-tests/memory/mprotect.py
avocado-misc-tests/memory/vatest.py =
avocado-misc-tests/memory/vatest.py.data/vatest.yaml
avocado-misc-tests/memory/transparent_hugepages.py
avocado-misc-tests/memory/transparent_hugepages_swapping.py
avocado-misc-tests/memory/transparent_hugepages_defrag.py
avocado-misc-tests/memory/ksm_poison.py

If its good enough, please add below tag for PowerPC changes.

Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com>

Regards,
Venkat.
>=20
>=20
> base-commit: 1f1edd95f9231ba58a1e535b10200cb1eeaf1f67
> --=20
> 2.51.2
>=20



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 16:38:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 16:38:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176942.1501378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQprU-0000Ru-8m; Wed, 03 Dec 2025 16:37:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176942.1501378; Wed, 03 Dec 2025 16:37:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQprU-0000Rn-5O; Wed, 03 Dec 2025 16:37:52 +0000
Received: by outflank-mailman (input) for mailman id 1176942;
 Wed, 03 Dec 2025 16:37:50 +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
 <SRS0=H1HU=6J=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vQprS-0000Rc-FO
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 16:37:50 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 65fac94e-d066-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 17:37:48 +0100 (CET)
Received: from SJ0PR05CA0087.namprd05.prod.outlook.com (2603:10b6:a03:332::32)
 by CH3PR12MB8187.namprd12.prod.outlook.com (2603:10b6:610:125::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Wed, 3 Dec
 2025 16:37:41 +0000
Received: from SJ1PEPF00002314.namprd03.prod.outlook.com
 (2603:10b6:a03:332:cafe::29) by SJ0PR05CA0087.outlook.office365.com
 (2603:10b6:a03:332::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.9 via Frontend Transport; Wed, 3
 Dec 2025 16:37:11 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF00002314.mail.protection.outlook.com (10.167.242.168) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Wed, 3 Dec 2025 16:37:40 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 3 Dec
 2025 10:37:38 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 65fac94e-d066-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mmttSTy9SQIFjGIu3kgZomxdaaZ5B3TRwZ9zBgbxLGWH72ihqT0Ip9v0QDXKKZxFWFTMwPK2VTV24uMv+W6nabzhZXhtpAaH17ncmlOPN/WH9sGDw//mxSDL5at120ftWekDiijufG3Wyd2VGPSy85uzQBJJb8E8Jv+O53P61wiwarlkYBTYrU8bLNgQ/vsNif1X3ZS724bI+qh/Q2LII9SVLnmBwW7ufWcxpiaQeCXZE32mlEx2eeq/BK7DnM4geCq1KK5w9uDYMgE6wGa99WaE6uEP0rclDR+Fuv1k4j7axbN7BgPxMwjDFsqG9BBVEysbhlwNWFTcbUyzqQgWnA==
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=dMZBcldQUrL03VFy1A47Q+fGCKyzBVL9OV8G9PDcI28=;
 b=B94bApXAmihSEa/Lac7AVobkWTx69Gz2rfQvFt8+f3zTsMmxoSmdu3NqXnWT0NMO7qwgndts905U87xlGPThrHj8464IRLWUn35Y0/dlrVkW6DsvuceOANtKDIL20dBkbUAeJaqoEscVJW4RSx/knsOUPbCqlg2XPyNAau1VqKjzz3g0hqpUtVtONDaJrDWDEetNqwpEz/KxdOqd/uyQFqa4iSGZ2u6kaL6eGCwIhHH0ghFu/H6pxh5EsaE5AjKGpCuLFw/pmmBnx9anowDIORAQaacGvYBTseAAVrrxEcqMFa2U16Jbm1ffiyIPwyoQKpfJcslXJwAlWmhmWcuKwQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dMZBcldQUrL03VFy1A47Q+fGCKyzBVL9OV8G9PDcI28=;
 b=NtWpIi+2pg1Hgi+3BIhMqeUQdju2VaB4+r+wFjihlUZmBTlCULDsLAdmbPSPtciRYVeSuDOOxjl38hyozzSDzNWBGWLjlKKzYnPaZX/1VX9HS2Iy+lzNxA6h7H7kjaeNJd+RF5nk/ZjLdGn28ck7RFJZTzyxAIFyj/PR6lBbQPQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 3 Dec 2025 17:37:36 +0100
Message-ID: <DEOQ8Y07PC6V.1VOZ92WKKGDQN@amd.com>
Subject: Re: [PATCH] xen/treewide: Use __ASSEMBLER__ instead of __ASSEMBLY__
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel
	<michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Xen-devel
	<xen-devel-bounces@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20251203133258.1624223-1-andrew.cooper3@citrix.com>
In-Reply-To: <20251203133258.1624223-1-andrew.cooper3@citrix.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002314:EE_|CH3PR12MB8187:EE_
X-MS-Office365-Filtering-Correlation-Id: 0e46e86b-c62e-4a90-06e7-08de328a46c8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|7416014|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZkVMWThHeWVQTnBHSThOTW9uUGVMMldmbmdleHNJWTdsZWJGV3A4VkUvckt4?=
 =?utf-8?B?RmpYUWl0VEZaZXZSOTVINENCZzZ4UjlCdHA0cTlIYXFEMjNUMEorSVl0NEg4?=
 =?utf-8?B?RlMvTVQxc2lwRTc4N3FxbXpTOElWVlorczQ0RVBzc3JPajMxeENuMXFvNmFB?=
 =?utf-8?B?OGV0cEtkZVJKZytZZ1NxRUlyY0ROamN2ZkYvT09ya1pteDRMMnRJQmVhTDgx?=
 =?utf-8?B?dUVBQktVSmxCTTk1bTg4TXBWVzRMK1owcEQ5YUd0NHU3UFB1V1lPMVJCcm10?=
 =?utf-8?B?ajRWTGVsUEdobThUSHVKd3pkamVFT3grQU5PaTY4UUtpcGJxbUg2TUJuRjZR?=
 =?utf-8?B?Yi9ZSTE1UGlidjEyTFE3Vm13QWdYeUIyWTI4aXE1dVlEZ25MWFR0Ky9KemJO?=
 =?utf-8?B?WVRsZGJXanZjL2hGS1JacFBBZjdjSkNPZkIzeUlRT1V1bDZMRFFvMHpBM3lK?=
 =?utf-8?B?QVpRWVNUaE4wV0YyU0Rjb3JIZm9qSnNNMEM4TEhjWFRHeStiQU5aNWZYdVFP?=
 =?utf-8?B?ZXFRRVBSNWdITHViOEV2VHYyM1JOazZodHNOd29lZFJkWHJJREFPd2M5dlVw?=
 =?utf-8?B?ZlFtZW1XVVlENE4vUFpvNnFCME1rTmw1MkhtTWZXbHUrcVlDTkg2V3NJK2JC?=
 =?utf-8?B?cHN0RjlFSmdjeWsvekY4djJIM0lZOXBZcklRWDRyYjBqZjQrN3dnekgrdGM5?=
 =?utf-8?B?SmhxYjRhRmpPc3B5b2xQYzBjeXRiUDFGY0N1a1kyQitTRnBWU1pWWXFLOGpi?=
 =?utf-8?B?Ukk0MDBwL3hzZW11THFVb2tZbkhSWHd3N0owUXpFeGNyOEhtK3FIUzl1REZr?=
 =?utf-8?B?M3QwUVVtN0NueS80T0FtejRCVG5nUjZMdW1aQnp1MjkvV3hCNHNQd094TkJQ?=
 =?utf-8?B?QUt6d21CK1RPdEs1N25zZUh2TjI4NXhhUlNta0tldVB0b0dMTCtDNFRtb2xt?=
 =?utf-8?B?VDV6NlJGNWdPMEpJb05HSlp6M0lRU0gxSEt2K0lOV0dKNFArY2tnU3p6MzZX?=
 =?utf-8?B?WFhaWXZNMnR4UktobWl1SGJVU24rN1A3RExBelZ4dmhrQkxtblRqMmt2TldS?=
 =?utf-8?B?QVNCMm1zRThjR3NERURhMEx4WGZ6aUxCMXNOY3JlekxvWWxabUg0eTRQbVJG?=
 =?utf-8?B?bEVaUVFreGlmSXF6aG1ZRldKWGVyVWFnS01BaU1LOFN4TXhmeGpPUjhDQkhB?=
 =?utf-8?B?MVJUbzl2MGxlcjFhaEloK3BTMzRYQkcydWZjcnFmN3FUUjh4a3MvQ2VrdzJx?=
 =?utf-8?B?eE9IbjdGL2VnOWtmSkx2K2k2T1lGNE05b0IzUWprTFhnR05WMFJ0bVhWUWJl?=
 =?utf-8?B?U0ZOR0J5cU9GcmNxS3VPazJQUTRCN3NvWUF2R0xYbFlQZXZyOUJObVcwbE9S?=
 =?utf-8?B?ZjBDcGNzN0RVV3QwdXNqY0I2bXVVSURpM2xoUzVEUlFaL2czdXFpTnBQWDRP?=
 =?utf-8?B?dS9sVjNCVDlYUzhxL0lTTUhxN0x4R0lDNnh1OUdnTERRWmRScGxIcENDZzVx?=
 =?utf-8?B?eS8vaXQvbzVicjFRVUFPUWpHVkI4ckhucjdaYnNYZ0FXUCs4N3BNTXNSZ2Ro?=
 =?utf-8?B?WGFad0NXMEQyNU4rc2dSOWlyVGhZQ290ZnFzOFlnendaZXZSQUtkSmNWdzVx?=
 =?utf-8?B?YmtkeXpnSE92UHZNaGFaRHVYVWg2Qmd0emI4QWNkNVp1ZXJHMWljV05mUUda?=
 =?utf-8?B?RmlRbE9lZ3oyaURINWhKbXNuTW96SDhpbHN4ME9wd2tDMU5wNXRKamgrZCtW?=
 =?utf-8?B?S2N5ekJzSkVJY24ycktqRkRoQlpSRTkzVWZHemo2SDZ4cmNvUHA1b202Q2pF?=
 =?utf-8?B?Zm1uMnJTeTNMb0Z4ZXpyOVhyVHUycWFTK2xvdXFOb1EzSHFUQy9WUndIaytY?=
 =?utf-8?B?Z2ZWa3JSRUdzdllqdVMvS0lTYXBMaUJtWXVUMzVXbWFxS2FlV0t1SGYrWXIx?=
 =?utf-8?B?cUNyYkFmZHZVNWpvK09oY2FMaVg5c0lJMkVFSnZ2cWFWc1JYTWVEbmQyallH?=
 =?utf-8?B?eUZPQ0d3WmN0SmNmNXdMV2pwdTBIcG9DT3k0NGxVZWFDZkc2RkFERThQbGRB?=
 =?utf-8?B?YkFLaTE2aWZrUHVrelliNGpIZFlGa1dubVJxOXJrZVBPZVRtcEdxY0JqL0Ju?=
 =?utf-8?Q?OK94=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(7416014)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2025 16:37:40.6232
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0e46e86b-c62e-4a90-06e7-08de328a46c8
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002314.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8187

Hi,

On Wed Dec 3, 2025 at 2:32 PM CET, Andrew Cooper wrote:
> __ASSEMBLER__ is how GCC and Clang spell this, removing the need to set i=
t up
> manually in AFLAGS.

Documented in GCC since GCC 3.4.6 and inherited by the very first public
versions of LLVM. I might just be marginally older than this macro.

I've checked the replacements and they all appear to be consistent.

  Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 16:38:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 16:38:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176952.1501388 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQpsY-0000vo-H7; Wed, 03 Dec 2025 16:38:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176952.1501388; Wed, 03 Dec 2025 16:38:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQpsY-0000vh-EI; Wed, 03 Dec 2025 16:38:58 +0000
Received: by outflank-mailman (input) for mailman id 1176952;
 Wed, 03 Dec 2025 16:38:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Qm2A=6J=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vQpsX-0000rP-1Y
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 16:38:57 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8ccb89ce-d066-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 17:38:51 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-640ca678745so12018551a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 08:38:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8ccb89ce-d066-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764779931; x=1765384731; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Z5aHQkGzpf+upRpWJ11bQwlgkk0tbTPDG2l2pgwFtxY=;
        b=YGCRMIEyv9QKjsyEj2Td7fu7AWCe2t7x5QO5QJ55hYqhXOWRLwUQz7M4fAR/hNSDco
         W/8gswVU8GSekjT1EOtDEInrjINhOxbG0DEznB3PJagvmh7vrusB+34IsP2PZYdf/5oT
         z0d8RjRlxtYsi9GBz+HOOWuOOErJtecRi4n4SXgg4TcCMRV3D6gIXvkx8gw2NjB0XeCf
         PFU5KdjMn1hCSWXU5O/e34tCYQfr3S2W7fB8RrEGsKdQWDl8e0Rzm2nkASRedZBjbqUE
         IYtEA9a1NQrzw0GRlm4rFa/JcW7wiocfhOWk78ZoZQE+kCsjqj5KaJlVckUtFsqRbniK
         l4WA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764779931; x=1765384731;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Z5aHQkGzpf+upRpWJ11bQwlgkk0tbTPDG2l2pgwFtxY=;
        b=J6pWDDysv8yEN73T6+wxuXuJS4s5QcxCNP44pL/X+zzs0dHAclynk8K21xX1bXluQg
         h7EmJJjS/3pDXuLHWQcXHUJ4rxLOBMU+Mo5M2FWcBrFMzMKymX1I+pwWXMdjhbnguqfB
         pYvmLxM2BFowQi1Kcmf4o8G66EhyEC9ed5rgdyePT4Neu0m4Hwg6bP6+Fnr3Eei0A7W3
         nIgWa03ahrxCHfl+2+kBq0AS80FTU1zOTU4WkI4EeRw55W0DS1NTETYpHeDkXneJ0WCf
         631CXIjNwVLYxfq+rIluimSb8CbdakYWIPNUlV7gi4/a2C2GfzqEzow7LoTqEeuVefNS
         qRug==
X-Gm-Message-State: AOJu0YxpJgTM1sEkU4hecASa/OoNKmmLMYSezZM7kv2oULY2wMvWKs0S
	Wi68Wg5kBgo+rpFeJrMFDSe85AIlu9aMPPmOO1QDwqhl0wpxuu8UcRwtpUcypM2E2NpiCoA/RC8
	xKHrAPn1BWF+6j6WyRHhoFq3u+OBzPO+TTFvCZbEgPg==
X-Gm-Gg: ASbGncsxcFC8D9Yc1qdNo8F97LbYwAXT0z1GlAKXvtM/A8wEh0BPtSItVs1+nozRS7i
	h2OA7CHm9ZBIn0j7Ydgetw0px6+BLbcliE7iTsgXyUffC65bwqpFGbCDao1GIubwTGftFvI/NeN
	ikBI9EM69qlGKzrMIL//zCv27Oeyf/BzyxVouy3wxggBG6Bw+RyQRd9MyEqcN5exd1udr5IuJnl
	kjeK/aJd88PoR53cAAApd1a9F3pWigHB+iF+uNiiaraysHvHwJ2sizdsTklDzq51fSEvDWbC/UI
	yLR9CMgsTdkZDiCItSf325EQ0Q==
X-Google-Smtp-Source: AGHT+IGuz7b9ZDsCeS0apxCvIquz9fDhzHc3/sKlH7i4bwruDV/IsBfzfiy63wNZMTTcVlgBjQeyoPjNAniDd7PYe/A=
X-Received: by 2002:a05:6402:35cd:b0:641:72a8:c921 with SMTP id
 4fb4d7f45d1cf-6479c504208mr2472260a12.23.1764779930962; Wed, 03 Dec 2025
 08:38:50 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764254975.git.bertrand.marquis@arm.com> <769c7ad291abe47d7991b878b131f9b31d4f0954.1764254975.git.bertrand.marquis@arm.com>
In-Reply-To: <769c7ad291abe47d7991b878b131f9b31d4f0954.1764254975.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 3 Dec 2025 17:38:38 +0100
X-Gm-Features: AWmQ_bkoSgX5xporm8CRAljOmJJBZOzdsjKk_iRsZyTXnjx6yqZ2-SYqyGbPSvo
Message-ID: <CAHUa44EBeb+9+_JfwX4iLyEbnEE1dxuRvV5_reUtHM0XejG_SQ@mail.gmail.com>
Subject: Re: [PATCH 08/10] xen/arm: ffa: add v1.2 SEND2 header layout
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Thu, Nov 27, 2025 at 4:53=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Teach the SEND2 path about the distinct FF-A v1.1 and v1.2 RX/TX header
> layouts so we can propagate the 128-bit UUIDs introduced in v1.2.
>
> VM-to-VM SEND2 calls now build the larger v1.2 header, zeroing the UUID
> fields for v1.1 senders, and the dispatcher validates messages using
> the v1.1 header layout to keep legacy guests working.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa_msg.c | 55 +++++++++++++++++++++++++++++---------
>  1 file changed, 42 insertions(+), 13 deletions(-)
>
> diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
> index 8bb4bd93f724..472bfad79dd3 100644
> --- a/xen/arch/arm/tee/ffa_msg.c
> +++ b/xen/arch/arm/tee/ffa_msg.c
> @@ -13,7 +13,7 @@
>  #include "ffa_private.h"
>
>  /* Encoding of partition message in RX/TX buffer */
> -struct ffa_part_msg_rxtx {
> +struct ffa_part_msg_rxtx_1_1 {
>      uint32_t flags;
>      uint32_t reserved;
>      uint32_t msg_offset;
> @@ -21,6 +21,16 @@ struct ffa_part_msg_rxtx {
>      uint32_t msg_size;
>  };
>
> +struct ffa_part_msg_rxtx_1_2 {
> +    uint32_t flags;
> +    uint32_t reserved;
> +    uint32_t msg_offset;
> +    uint32_t send_recv_id;
> +    uint32_t msg_size;
> +    uint32_t reserved2;
> +    uint64_t uuid[2];
> +};
> +
>  static void ffa_finish_direct_req_run(struct cpu_user_regs *regs,
>                                        struct arm_smccc_1_2_regs *req)
>  {
> @@ -104,12 +114,12 @@ out:
>      ffa_set_regs_error(regs, ret);
>  }
>
> -static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
> -                                struct ffa_part_msg_rxtx *src_msg)
> +static int32_t ffa_msg_send2_vm(struct ffa_ctx *src_ctx, uint16_t dst_id=
,
> +                                struct ffa_part_msg_rxtx_1_2 *src_msg)
>  {
>      struct domain *dst_d;
>      struct ffa_ctx *dst_ctx;
> -    struct ffa_part_msg_rxtx *dst_msg;
> +    struct ffa_part_msg_rxtx_1_2 *dst_msg;
>      int err;
>      int32_t ret;
>
> @@ -142,7 +152,7 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, cons=
t void *src_buf,
>
>      /* we need to have enough space in the destination buffer */
>      if ( (dst_ctx->page_count * FFA_PAGE_SIZE -
> -          sizeof(struct ffa_part_msg_rxtx)) < src_msg->msg_size )
> +          sizeof(struct ffa_part_msg_rxtx_1_2)) < src_msg->msg_size )
>      {
>          ret =3D FFA_RET_NO_MEMORY;
>          ffa_rx_release(dst_d);
> @@ -154,12 +164,24 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, co=
nst void *src_buf,
>      /* prepare destination header */
>      dst_msg->flags =3D 0;
>      dst_msg->reserved =3D 0;
> -    dst_msg->msg_offset =3D sizeof(struct ffa_part_msg_rxtx);
> +    dst_msg->msg_offset =3D sizeof(struct ffa_part_msg_rxtx_1_2);
>      dst_msg->send_recv_id =3D src_msg->send_recv_id;
>      dst_msg->msg_size =3D src_msg->msg_size;
> +    dst_msg->reserved2 =3D 0;
>
> -    memcpy(dst_ctx->rx + sizeof(struct ffa_part_msg_rxtx),
> -           src_buf + src_msg->msg_offset, src_msg->msg_size);
> +    if ( src_ctx->guest_vers < FFA_VERSION_1_2 )
> +    {
> +        dst_msg->uuid[0] =3D 0;
> +        dst_msg->uuid[1] =3D 0;
> +    }
> +    else
> +    {
> +        dst_msg->uuid[0] =3D src_msg->uuid[0];
> +        dst_msg->uuid[1] =3D src_msg->uuid[1];
> +    }
> +
> +    memcpy(dst_ctx->rx + sizeof(struct ffa_part_msg_rxtx_1_2),
> +           src_ctx->tx + src_msg->msg_offset, src_msg->msg_size);
>
>      /* receiver rx buffer will be released by the receiver*/
>
> @@ -175,11 +197,17 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *=
regs)
>  {
>      struct domain *src_d =3D current->domain;
>      struct ffa_ctx *src_ctx =3D src_d->arch.tee;
> -    struct ffa_part_msg_rxtx src_msg;
> +    /*
> +     * src_msg is interpreted as v1.2 header, but:
> +     * - for v1.1 guests, uuid[] is ignored and may contain payload byte=
s
> +     * - for v1.2 guests, uuid[] carries the FF-A v1.2 UUID fields
> +     */
> +    struct ffa_part_msg_rxtx_1_2 src_msg;
>      uint16_t dst_id, src_id;
>      int32_t ret;
>
> -    BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx) >=3D FFA_PAGE_SIZE);
> +    BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx_1_1) >=3D FFA_PAGE_SIZE=
);
> +    BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx_1_2) >=3D FFA_PAGE_SIZE=
);
>
>      if ( !spin_trylock(&src_ctx->tx_lock) )
>          return FFA_RET_BUSY;
> @@ -190,14 +218,15 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *=
regs)
>      src_id =3D src_msg.send_recv_id >> 16;
>      dst_id =3D src_msg.send_recv_id & GENMASK(15,0);
>
> -    if ( src_id !=3D ffa_get_vm_id(src_d) )
> +    if ( src_id !=3D ffa_get_vm_id(src_d) ||
> +         dst_id =3D=3D ffa_get_vm_id(src_d) )

It might be worth mentioning in the commit message that we're making
it a bit more robust.

>      {
>          ret =3D FFA_RET_INVALID_PARAMETERS;
>          goto out;
>      }
>
>      /* check source message fits in buffer */
> -    if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx) ||
> +    if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx_1_1) ||

This is for FF-A version 1.1; for version 1.2, the minimal offset must
be larger.

Cheers,
Jens

>              src_msg.msg_size =3D=3D 0 ||
>              src_msg.msg_offset > src_ctx->page_count * FFA_PAGE_SIZE ||
>              src_msg.msg_size > (src_ctx->page_count * FFA_PAGE_SIZE -
> @@ -222,7 +251,7 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *re=
gs)
>      else if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
>      {
>          /* Message for a VM */
> -        ret =3D ffa_msg_send2_vm(dst_id, src_ctx->tx, &src_msg);
> +        ret =3D ffa_msg_send2_vm(src_ctx, dst_id, &src_msg);
>      }
>      else
>          ret =3D FFA_RET_INVALID_PARAMETERS;
> --
> 2.51.2
>


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 16:48:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 16:48:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176963.1501398 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQq18-0002nl-A6; Wed, 03 Dec 2025 16:47:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176963.1501398; Wed, 03 Dec 2025 16:47:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQq18-0002ne-7T; Wed, 03 Dec 2025 16:47:50 +0000
Received: by outflank-mailman (input) for mailman id 1176963;
 Wed, 03 Dec 2025 16:47:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WC6h=6J=epam.com=Oleksandr_Tyshchenko@srs-se1.protection.inumbo.net>)
 id 1vQq17-0002nY-0P
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 16:47:49 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cbb71cb4-d067-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 17:47:46 +0100 (CET)
Received: from DB7PR03MB3577.eurprd03.prod.outlook.com (2603:10a6:5:3::28) by
 DB4PR03MB9412.eurprd03.prod.outlook.com (2603:10a6:10:3f8::21) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.17; Wed, 3 Dec 2025 16:47:43 +0000
Received: from DB7PR03MB3577.eurprd03.prod.outlook.com
 ([fe80::49f8:7615:b631:1a66]) by DB7PR03MB3577.eurprd03.prod.outlook.com
 ([fe80::49f8:7615:b631:1a66%5]) with mapi id 15.20.9388.003; Wed, 3 Dec 2025
 16:47:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cbb71cb4-d067-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=K1laEPJ5/DKUl1Kwm9OHgUKQ7kw5k7Jw+njb5eUgWutEEyRUG4h6J1nmhjakSWxSrUeBPDcU6/ZO6ULD4p05biZCFMNmcaVCthzyVcFbss8CKHa1O+84PIJV+s9IdzrUxbiV2CDnZFK0QDabbQmthVIUmzn2FKjnUkfB/KejZfB4CCeeSLxuipVxbzWvjz/sOsQ8eG3uEg7cSrm+ec5Cgn2Ey5wVxEmxBbQnT2EPXcceoJSiqOdHg/sHXd+pmFMICZs2agbjAgLkB2nNGbNJi3jLZaUG2tjh5Qch5fd0iEVsU9syqNOVYlU3JKyzS5Zq6iSPUmp8vG6R8uwRfVgP2Q==
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=eGoeMGDyK8mIHLXtZi2wh1tcABLeq6d3HDNB7BSiNig=;
 b=eU/t6vNbFxDfjnjsOEWsATpbq6SjgvIvktAvMsezxupYATVM1aUOKz1dgT6V5eewCjTjT3CDcDidg7Ng2cTrM9z+8ufojMD5+FTAP1GPhu7nm7bAFAK+UtoZ0B8mQuz6Ge9UleRMGA9GaOTE/fyVeRrX2HHTJaEk88fdU5ZqeKYCJrDy1vWU2oU/Jf85MQqO1rlw5emaIavp+YAJVPOU24BubPnBY8mxNjx8jvKlNDfyZ0MKWu/XJvtQfo1LfsTartTyoMQGuV8sHjBs6/CDmQJb/9XydsltNwHWACVWnJb6gpwG6CYRwaH15ysAbKTeaoOlhhpbTjjl/1k5QpmR1g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eGoeMGDyK8mIHLXtZi2wh1tcABLeq6d3HDNB7BSiNig=;
 b=qNyBya3gBR3378rwHtKbua5STPETygRl19BuHKHI5Qm7Ftm4o2bGDWTvnQWAbpdHW12meUHS1nGuFdHzqcYTbAlRKAbVx0Z4TL/PUqkHL5jIQ9vy2/poittfWByS2y+dXr4ZQGNVHDX2JoYkTcvBBO0VZ0c4u7iRV17pbsdOACYB1NTD0SWWuc37enrqLT1FnlF5TI/kZvtqWzPqL4Ral6UKlRogre6ua7DviEJC8VvGKmI5ShBEFWWUr+MoiIvQ6lqv1UBIe/pVvUUupRYbhlyJjxjpJRXagL47+ZFGjJJQgcmJFqVqy/qJf2nv7/OYECvDGnXnwDGSyIGCuN/EPA==
From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH] xen/dom0less: Increase guest DTB size for high-vCPU
 guests
Thread-Topic: [PATCH] xen/dom0less: Increase guest DTB size for high-vCPU
 guests
Thread-Index: AQHcY8JwgLGK5hUeEUKxVWNaY5XmsLUO3xoAgADiZoCAADpaAIAAJbeA
Date: Wed, 3 Dec 2025 16:47:43 +0000
Message-ID: <add1ee27-7ea1-47ca-9721-ac49e7326184@epam.com>
References: <20251202193246.3357821-1-oleksandr_tyshchenko@epam.com>
 <98e9f551-cd8f-4c0c-aa79-144466e68df0@epam.com>
 <a1443030-f594-4f25-b12a-37974eae64d2@epam.com>
 <6a724a9d-dee8-483d-89bb-050aff381077@epam.com>
In-Reply-To: <6a724a9d-dee8-483d-89bb-050aff381077@epam.com>
Accept-Language: en-US, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB7PR03MB3577:EE_|DB4PR03MB9412:EE_
x-ms-office365-filtering-correlation-id: 9dad189e-b560-4db1-7e27-08de328bae1e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|1800799024|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?Z0JwTk90SUphQ1Nlc3RFTDJlVDErZG80QWNNSDBjcDhnS2gyVjRCMFo5Z3o4?=
 =?utf-8?B?QjB3S1VCUUl0NjJvRHFYSG1NbWVtdGp5UFR3VGFnOU94ajlGZXRLU3p1OU4z?=
 =?utf-8?B?UnArclYzSUdVQUZ4UU1kbEg2VGJYcDFjODJGdlVTOEtsMlg3ZTNDbURmN2RK?=
 =?utf-8?B?QVY5dHNUckxoSDZ1MEhEUjAvS0dUYXIxTkpUeWcvZXJFUVJSRjIxdGNYYXUw?=
 =?utf-8?B?dEVZcDlVUHBRcXlYL29yUUJsMEN3Z3R6cG5HWTRmc2U1S0hYUlBtcDJLRWJ1?=
 =?utf-8?B?VzBReTJPYkp5bnlXT1p0K0l4dUZXUm5BRm01cG52cFpzN1NCTmJweWljc3Fl?=
 =?utf-8?B?b0NSeCt3KzFxckZ1RXVyeU5NUmQwcTFSbVFteHF2Z0g3d2ZCSERYc0pBVjh6?=
 =?utf-8?B?bDRjOW1IcERsS21hTVozdThVd3hSSm9KRG9DTlRPaG9rVmVkdFdzcW04ZHBm?=
 =?utf-8?B?ay81NVRnNm5IYWJXQUxSMllnY0xBdTBzUFlMSTQ4KzlnSVJkVFowb09MN2Jo?=
 =?utf-8?B?eEpsNHU5MGIvSFVnSWZQVndDaFZuK1dkQjRvaDB1RXhseVJtM2hibUVpWmJM?=
 =?utf-8?B?TVJFbEFZVitCVGRRbHVycTZFcXZaNU9pby9hTG8vWGZibFo2T1NETURnN1pP?=
 =?utf-8?B?UHlYZVRmMkcvMmZ3T2ZaM0ZSZmVLWnIxcTNhMkxKNHFuK3NFcGlsdHFNM01O?=
 =?utf-8?B?MFhrR1llT0dPQktqQk5FbVp0bFhwUVk3ZjZBVnFQV3lJcVg5a3BhazVJcVdr?=
 =?utf-8?B?YWFJWDlrYmxHd05KN2p1V0hHMEJnajk2RmRoNVRXYktxaUtGdFZ0dkRoRG5u?=
 =?utf-8?B?Y01YOTdVVzE0MmR0blNCaTF2dkgwbVUrTWRBcFhiS1pEVlV1YlFDWlJ1REZS?=
 =?utf-8?B?OTcraWY3OVBIOHAydG9xdUp6MlBjQ1I1QVVnWC81U2cxSGtORzFqV2lJQWQw?=
 =?utf-8?B?bHJubTd0RTNvalJQd0M5VGlUSHFKU3lKUk1pdm82T3ZqTkRCTHFIWlRURFZm?=
 =?utf-8?B?MkVZTG9pZlFjV0dWR1MrNnY0c1ZJbzQzMG90cGgwQXFuWk9oalZKSVJWbk4y?=
 =?utf-8?B?TjdNNkowVTI3em5QSkd3YXdqZkdDN0FEcFJXdDZnQXdKWE4xRGNrZktyL041?=
 =?utf-8?B?bFZKVGF4QlN5a1hhWHFreERkOEhCWGJIU1BPQkhBaWZOVVRKU3JnTUFCRXVF?=
 =?utf-8?B?QUNYVk5BUEdQajd6YUNybWNORUlWQ2Vvc000OEJ2UGtsekJOVzBSbWc2K1Yw?=
 =?utf-8?B?aS91RGFQeFdOWEo1TEc2ZjU1eEVVRnBDNmhWQ0w0T09RdTlXSmtXM2hDUGRZ?=
 =?utf-8?B?dlZOTGtUNW54U1FLSU1DOS9yemF1Z0Y4T1FYTW1GR3VhemtLZU5hb2tET01O?=
 =?utf-8?B?YnRRbE1kTkt3cmRBeU9VQ3hIUWR3aFNrRitvNmovdkVBWkt6bXNKZURHbDA0?=
 =?utf-8?B?WFFTZGVaVVlIRHRhd2NmM2VjSzByS1BGWWQrWEx2RHBuWUtTckd3SkFHRFQ2?=
 =?utf-8?B?RkNUZ29leWs3dFg3NkVzMHZMeklWR1FwOTBzelMrcXNrdXhBYlVVbnNhTTQv?=
 =?utf-8?B?QXFwSllNeGE5MVA3UkVzOS9YckJjTnRhZGFnS1Nkd3hRTTNvblhjWUxOeXdo?=
 =?utf-8?B?UGd5cHB4SFgxTmFja3gralUxT0hKL1hGN1pSZGIxQWtQaytQMmhnaU5FNTZa?=
 =?utf-8?B?OWNBeFpoTkVLVHBzNktFU2J5Nmw4RWcxOGlFczFRZi9xRGN3a01neWQ2TGhi?=
 =?utf-8?B?NHRiYjg2WlhJN2NEOEI0cHpGQ0l5Wk9MSmt0TzNZWUliUkxaT0dUM2c4NXNE?=
 =?utf-8?B?c2tqZW1RL29zbWZZR1krZGRLQTIyb0Z4Y09aVmhyWVhiTzVrM1hMYW0rYk1F?=
 =?utf-8?B?VlNMQ0lydFVYSWtHS1dtUEZ4YXhlVVZ3azhvUlZVenhwSVFwRW1jNk8xaHlR?=
 =?utf-8?B?NkY1Q3pZTmJhMmI1UzVicjJ3eHZZTXRTNmJacmpRNDg2a0xwZExPcEJia1hZ?=
 =?utf-8?B?aURDWU5CTDhsZFR0d2pIRU9uMHF0TEMvNmdwMG1JK1dlbEVJeTVNazl3R2Nx?=
 =?utf-8?Q?/oly/8?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR03MB3577.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VWJJWENjWlpsR0I2NjVRcThEb0pVNlhLdXg2a24wd2hEWHZpTDhNa2tqN0NS?=
 =?utf-8?B?VjF0NmZHV2JUamxkeHVOMTY1WUlNd3kzc2lOMTgyaFNiaHY5VDNXT05kUEhP?=
 =?utf-8?B?WiszbUl3MW5NM2txbTJaREdXUE01ZlJ2ZjE1S2llbnhuRTlrMWxPcXRqZkNL?=
 =?utf-8?B?UzNnM2c3dFBxV2E3T0NGUFM4ZFZ4Q0QzZEdCNk92VWR3UTFHcTZmSDQ1SlZr?=
 =?utf-8?B?enJ3UEFuK1g4RXNWNlNGWVBucEZNc0hCRWlMazBzRTRKRVpUdFQxVlpNYzdU?=
 =?utf-8?B?dURuL05iVGc3TFlsVjNmUUZmWW1lRTg2Y0RFK09lcEgvM3BLQ2lkb2s3NElv?=
 =?utf-8?B?bmZmc3NwRGFBM1oxb2t0am9USFZ5a1VXbExQbG1VNmd0OWxjbmtYSjIxd2F2?=
 =?utf-8?B?WXE3TTFobzN6dytkSlJjRGtQV2pvTGRMQTN6QXJETDM5MXJDTlliWEd1MDlD?=
 =?utf-8?B?YnFxSm1TY1Q1MjhtWUFxSS9LK05VOFAxcTFjQmEyaVhReE5nNm5td1BycS8x?=
 =?utf-8?B?Ti8ya1B1VGVqYjVzZGJTbXd4alR2NzRVM0V5WEZYQkpESEV4eEQreHlSMXVp?=
 =?utf-8?B?eStmTEdTcDhwSUZOQTJ5TU1WTXJyT0tNODVRSUlBbGYvdmRVUnliNzlQWlN3?=
 =?utf-8?B?Q3k2T1hWZ2RJWSttUytvTzNNYlNIMzZKSTdEVWQ1akZxOWtvYW5uek8ralk4?=
 =?utf-8?B?TFhCcG1kQ0UraS94WTFPMDRLZDZyNGJVSjRBUjRPYmRVY29TVXBvdjhURUpY?=
 =?utf-8?B?ZmJzQmVMZENSb2d1SUVjU2xvYVd0WHJreTZJVmxRMzVMRE5CS1p2ckYrL29n?=
 =?utf-8?B?V3Jwd3VIejBOSUh5NVEyWWlMSE9idEJnZ0xUa1R3NmgyeHBFdGdtclEvaXhE?=
 =?utf-8?B?SFI5Ym9SMGFnbHlUcjM3Nlk4Uy9vU0FGY3JVcjZ4d2ppOXl5eE9Jc3lQNjVM?=
 =?utf-8?B?VHdYWUJCaGNoN0M0WVFSU3J5aHZ0VmQ0RHJUcStsMStZaVpwQVpsd2YwN1BG?=
 =?utf-8?B?RXh6L2c1dHNLRnYvOWl6aWtNUjVPbFYxeDY2RWhqTkdveWlhejJTN3hRRmQy?=
 =?utf-8?B?NW9ZbVg1dUU3WjVzRzl2bHh3Z01MWGUxQTRFbmdHamNUeTljWG16MWtqMm9u?=
 =?utf-8?B?c0JtYjVXelhLZ0NXYXE1YXI1SnJKK1lwbVJuQURHWS83MGhrZDh5SWdqSEJ6?=
 =?utf-8?B?OFBFNDhLc29UeVI1dFl0L2pEa1BpSEpNYlh4SDN5TDBsMS9udWlzOUVUSHBZ?=
 =?utf-8?B?Y3JtK1hwS3hCMWJpMnJFdEd2TXFML3E3bGp2a2RMSlhnUDRIdkw1YU5Da25k?=
 =?utf-8?B?dVNJZjdEVVU4R3dQY2haY2liTXI4TE5GaW81TDdyM0V0RVQ0WklVb2Y1MGtx?=
 =?utf-8?B?SnpETDkvMWlGcWs3OGFSZHFhYkx5V3hlaFVDRmtJczlMMTBRZGljVElwMVZZ?=
 =?utf-8?B?cDRkeEYzVEFhcUVFV2p6S0JEMHkyU3FMVkkrN0dVWXYrQ1RxTWpzeXFYcmpN?=
 =?utf-8?B?WW9rUy9HeWhVeTR5ZitpMGhLQzNCVVdqeXJ1VE1VOUNKbjBKajk3N2F0cVNo?=
 =?utf-8?B?WE5MMjN1Y25SZGdob3hMYVIwNVlPWlVkVXE4UkdyZDRudnhzZ1V5WWdDVGFX?=
 =?utf-8?B?UEwxRDJuWndydFVnYlA3T3MxZmg2a1lJRFg0aE5jQUxBSk1IMk9pMXYreFlS?=
 =?utf-8?B?akhHNDFTQ3UwYjQ1ZERyYUt3aS9kVVVHeENaUktqeWN5cThWWVVEMDVrZWtR?=
 =?utf-8?B?SWtiTS80bEtybHpuOWJsdWZoWTFXOW8zRnRDN0JKdUdRNEt6Vy8rWU1QWmdL?=
 =?utf-8?B?ajVySm5BcGw2SlJ3eHdSNUVvSEFwY09oMHNNTW5zMWhGZEdZZ2JNaFJXYVZK?=
 =?utf-8?B?YXQvT3JlMVR4L0x5STgyL25qRDlKUFBMNjBzSkNPWE1pVDZ4VnREMUhUOWRC?=
 =?utf-8?B?WndIZG9wZElXa3pDVkVZcXl3WnAwN0NoOGhCaXJkVUZvNy8vVEtZSjF2OThm?=
 =?utf-8?B?c3lDbFNLekNrbFgxQ0w0dFNKMUVXejNiZjlKL3RlVWpXMlRJUkxVV09sVDVN?=
 =?utf-8?B?KyszY1BWOEZ6YVc1VyswZXBYaGxZTkJ2a0JpNUZFc3F1STAxRW5hUEtzbjlr?=
 =?utf-8?B?eEVkd212RUpreHFqenlUY2d0WUhCY3A0S3pQOWFpWWhJMERsOW5XMnoydXpH?=
 =?utf-8?Q?E5tRe/BZucGcYd6g9/DqLEg=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <782689631CB83E4089F231B9DDC349E6@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB3577.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9dad189e-b560-4db1-7e27-08de328bae1e
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Dec 2025 16:47:43.6169
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ToiUlL1ErERzTCFh9F//PV5ShO17YGMZrCwA4YVLC9eVKiLpy4UaeCkgYFL+N/l0yet6/gCb6lJjoSegPy1Orfbb0sGwBLVx4+oO1biG+AU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR03MB9412

DQoNCk9uIDAzLjEyLjI1IDE2OjMyLCBHcnlnb3JpaSBTdHJhc2hrbyB3cm90ZToNCj4gSGkgT2xl
a3NhbmRyLA0KDQpIZWxsbyBHcnlnb3JpaQ0KDQo+IA0KPiBPbiAwMy4xMi4yNSAxMzowMywgT2xl
a3NhbmRyIFR5c2hjaGVua28gd3JvdGU6DQo+Pg0KPj4NCj4+IE9uIDAyLjEyLjI1IDIzOjMzLCBH
cnlnb3JpaSBTdHJhc2hrbyB3cm90ZToNCj4+DQo+Pg0KPj4gSGVsbG8gR3J5Z29yaWkNCj4+DQo+
Pj4NCj4+Pg0KPj4+IE9uIDAyLjEyLjI1IDIxOjMyLCBPbGVrc2FuZHIgVHlzaGNoZW5rbyB3cm90
ZToNCj4+Pj4gQ3JlYXRpbmcgYSBndWVzdCB3aXRoIGEgaGlnaCB2Q1BVIGNvdW50IChlLmcuLCA+
MzIpIGZhaWxzIGJlY2F1c2UNCj4+Pj4gdGhlIGd1ZXN0J3MgZGV2aWNlIHRyZWUgYnVmZmVyIChE
T01VX0RUQl9TSVpFKSBvdmVyZmxvd3MgZHVyaW5nIA0KPj4+PiBjcmVhdGlvbi4NCj4+Pj4gVGhl
IEZEVCBub2RlcyBmb3IgZWFjaCB2Q1BVIHF1aWNrbHkgZXhoYXVzdCB0aGUgNEtpQiBidWZmZXIs
DQo+Pj4+IGNhdXNpbmcgYSBndWVzdCBjcmVhdGlvbiBmYWlsdXJlLg0KPj4+Pg0KPj4+PiBJbmNy
ZWFzZSB0aGUgYnVmZmVyIHNpemUgdG8gMTZLaUIgdG8gc3VwcG9ydCBndWVzdHMgdXAgdG8NCj4+
Pj4gdGhlIE1BWF9WSVJUX0NQVVMgbGltaXQgKDEyOCkuDQo+Pj4+DQo+Pj4+IFNpZ25lZC1vZmYt
Ynk6IE9sZWtzYW5kciBUeXNoY2hlbmtvIDxvbGVrc2FuZHJfdHlzaGNoZW5rb0BlcGFtLmNvbT4N
Cj4+Pj4gLS0tDQo+Pj4+IE5vdGljZWQgd2hlbiB0ZXN0aW5nIHRoZSBib3VuZGFyeSBjb25kaXRp
b25zIGZvciBkb20wbGVzcyBndWVzdA0KPj4+PiBjcmVhdGlvbiBvbiBBcm02NC4NCj4+Pj4NCj4+
Pj4gRG9tYWluIGNvbmZpZ3VyYXRpb246DQo+Pj4+IGZkdCBta25vZCAvY2hvc2VuIGRvbVUwDQo+
Pj4+IGZkdCBzZXQgL2Nob3Nlbi9kb21VMCBjb21wYXRpYmxlICJ4ZW4sZG9tYWluIg0KPj4+PiBm
ZHQgc2V0IC9jaG9zZW4vZG9tVTAgXCNhZGRyZXNzLWNlbGxzIDwweDI+DQo+Pj4+IGZkdCBzZXQg
L2Nob3Nlbi9kb21VMCBcI3NpemUtY2VsbHMgPDB4Mj4NCj4+Pj4gZmR0IHNldCAvY2hvc2VuL2Rv
bVUwIG1lbW9yeSA8MHgwIDB4MTAwMDAgPg0KPj4+PiBmZHQgc2V0IC9jaG9zZW4vZG9tVTAgY3B1
cyA8MzM+DQo+Pj4+IGZkdCBzZXQgL2Nob3Nlbi9kb21VMCB2cGwwMTENCj4+Pj4gZmR0IG1rbm9k
IC9jaG9zZW4vZG9tVTAgbW9kdWxlQDQwNDAwMDAwDQo+Pj4+IGZkdCBzZXQgL2Nob3Nlbi9kb21V
MC9tb2R1bGVANDA0MDAwMDAgY29tcGF0aWJsZcKgICJtdWx0aWJvb3Qsa2VybmVsIg0KPj4+PiAi
bXVsdGlib290LG1vZHVsZSINCj4+Pj4gZmR0IHNldCAvY2hvc2VuL2RvbVUwL21vZHVsZUA0MDQw
MDAwMCByZWcgPDB4MCAweDQwNDAwMDAwIDB4MCAweDE2MDAwID4NCj4+Pj4gZmR0IHNldCAvY2hv
c2VuL2RvbVUwL21vZHVsZUA0MDQwMDAwMCBib290YXJncyAiY29uc29sZT10dHlBTUEwIg0KPj4+
Pg0KPj4+PiBGYWlsdXJlIGxvZzoNCj4+Pj4gKFhFTikgWGVuIGRvbTBsZXNzIG1vZGUgZGV0ZWN0
ZWQNCj4+Pj4gKFhFTikgKioqIExPQURJTkcgRE9NVSBjcHVzPTMzIG1lbW9yeT0weDEwMDAwS0Ig
KioqDQo+Pj4+IChYRU4pIExvYWRpbmcgZDEga2VybmVsIGZyb20gYm9vdCBtb2R1bGUgQCAwMDAw
MDAwMDQwNDAwMDAwDQo+Pj4+IChYRU4pIEFsbG9jYXRpbmcgbWFwcGluZ3MgdG90YWxsaW5nIDY0
TUIgZm9yIGQxOg0KPj4+PiAoWEVOKSBkMSBCQU5LWzBdIDB4MDAwMDAwNDAwMDAwMDAtMHgwMDAw
MDA0NDAwMDAwMCAoNjRNQikNCj4+Pj4gKFhFTikgRGV2aWNlIHRyZWUgZ2VuZXJhdGlvbiBmYWls
ZWQgKC0yMikuDQo+Pj4+IChYRU4pDQo+Pj4+IChYRU4pICoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioNCj4+Pj4gKFhFTikgUGFuaWMgb24gQ1BVIDA6DQo+Pj4+IChYRU4p
IENvdWxkIG5vdCBzZXQgdXAgZG9tYWluIGRvbVUwIChyYyA9IC0yMikNCj4+Pj4gKFhFTikgKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPj4+PiAtLS0NCj4+Pj4gLS0t
DQo+Pj4+IMKgwqAgeGVuL2NvbW1vbi9kZXZpY2UtdHJlZS9kb20wbGVzcy1idWlsZC5jIHwgOCAr
KysrKy0tLQ0KPj4+PiDCoMKgIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDMgZGVs
ZXRpb25zKC0pDQo+Pj4+DQo+Pj4+IGRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2RldmljZS10cmVl
L2RvbTBsZXNzLWJ1aWxkLmMgYi94ZW4vY29tbW9uLw0KPj4+PiBkZXZpY2UtdHJlZS9kb20wbGVz
cy1idWlsZC5jDQo+Pj4+IGluZGV4IDNmNWI5ODdlZDguLmQ3ZDBhNDdiOTcgMTAwNjQ0DQo+Pj4+
IC0tLSBhL3hlbi9jb21tb24vZGV2aWNlLXRyZWUvZG9tMGxlc3MtYnVpbGQuYw0KPj4+PiArKysg
Yi94ZW4vY29tbW9uL2RldmljZS10cmVlL2RvbTBsZXNzLWJ1aWxkLmMNCj4+Pj4gQEAgLTQ2MSwx
MCArNDYxLDEyIEBAIHN0YXRpYyBpbnQgX19pbml0DQo+Pj4+IGRvbWFpbl9oYW5kbGVfZHRiX2Jv
b3RfbW9kdWxlKHN0cnVjdCBkb21haW4gKmQsDQo+Pj4+IMKgwqAgLyoNCj4+Pj4gwqDCoMKgICog
VGhlIG1heCBzaXplIGZvciBEVCBpcyAyTUIuIEhvd2V2ZXIsIHRoZSBnZW5lcmF0ZWQgRFQgaXMg
c21hbGwNCj4+Pj4gKG5vdCBpbmNsdWRpbmcNCj4+Pj4gLSAqIGRvbVUgcGFzc3Rocm91Z2ggRFQg
bm9kZXMgd2hvc2Ugc2l6ZSB3ZSBhY2NvdW50IHNlcGFyYXRlbHkpLCA0S0INCj4+Pj4gYXJlIGVu
b3VnaA0KPj4+PiAtICogZm9yIG5vdywgYnV0IHdlIG1pZ2h0IGhhdmUgdG8gaW5jcmVhc2UgaXQg
aW4gdGhlIGZ1dHVyZS4NCj4+Pj4gKyAqIGRvbVUgcGFzc3Rocm91Z2ggRFQgbm9kZXMgd2hvc2Ug
c2l6ZSB3ZSBhY2NvdW50IHNlcGFyYXRlbHkpLiBUaGUNCj4+Pj4gc2l6ZSBpcw0KPj4+PiArICog
cHJpbWFyaWx5IGRyaXZlbiBieSB0aGUgbnVtYmVyIG9mIHZDUFUgbm9kZXMuIFRoZSBwcmV2aW91
cyA0S2lCDQo+Pj4+IGJ1ZmZlciB3YXMNCj4+Pj4gKyAqIGluc3VmZmljaWVudCBmb3IgZ3Vlc3Rz
IHdpdGggaGlnaCB2Q1BVIGNvdW50cywgc28gaXQgaGFzIGJlZW4NCj4+Pj4gaW5jcmVhc2VkDQo+
Pj4+ICsgKiB0byBzdXBwb3J0IHVwIHRvIHRoZSBNQVhfVklSVF9DUFVTIGxpbWl0ICgxMjgpLg0K
Pj4+PiDCoMKgwqAgKi8NCj4+Pj4gLSNkZWZpbmUgRE9NVV9EVEJfU0laRSA0MDk2DQo+Pj4+ICsj
ZGVmaW5lIERPTVVfRFRCX1NJWkUgKDQwOTYgKiA0KQ0KPj4+DQo+Pj4gTWF5IGJlIEl0IHdhbnRz
IEtjb25maWc/DQo+Pj4gT3Igc29tZSBmb3JtdWxhIHdoaWNoIGFjY291bnRzIE1BWF9WSVJUX0NQ
VVM/DQo+Pg0KPj4NCj4+IEkgYWdyZWUgdGhhdCB1c2luZyBhIGZvcm11bGEgdGhhdCBhY2NvdW50
cyBmb3IgTUFYX1ZJUlRfQ1BVUyBpcyB0aGUgbW9zdA0KPj4gcm9idXN0IGFwcHJvYWNoLg0KPj4N
Cj4+IEhlcmUgaXMgdGhlIGVtcGlyaWNhbCBkYXRhIChieSB0ZXN0aW5nIHdpdGggdGhlIG1heGlt
dW0gbnVtYmVyIG9mIGRldmljZQ0KPj4gdHJlZSBub2RlcyAoZS5nLiwgaHlwZXJ2aXNvciBhbmQg
cmVzZXJ2ZWQtbWVtb3J5IG5vZGVzKSBhbmQgZW5hYmxpbmcgYWxsDQo+PiBvcHRpb25hbCBDUFUg
cHJvcGVydGllcyAoZS5nLiwgY2xvY2stZnJlcXVlbmN5KSk6DQo+Pg0KPj4gY3B1cz0xDQo+PiAo
WEVOKSBGaW5hbCBjb21wYWN0ZWQgRkRUIHNpemUgaXM6IDE1ODYgYnl0ZXMNCj4+DQo+PiBjcHVz
PTINCj4+IChYRU4pIEZpbmFsIGNvbXBhY3RlZCBGRFQgc2l6ZSBpczogMTY5OCBieXRlcw0KPj4N
Cj4+IGNwdXM9MzINCj4+IChYRU4pIEZpbmFsIGNvbXBhY3RlZCBGRFQgc2l6ZSBpczogNTA1OCBi
eXRlcw0KPj4NCj4+IGNwdXM9MTI4DQo+PiAoWEVOKSBGaW5hbCBjb21wYWN0ZWQgRkRUIHNpemUg
aXM6IDE1ODEwIGJ5dGVzDQo+Pg0KPj4NCj4+IHN0YXRpYyBpbnQgX19pbml0IHByZXBhcmVfZHRi
X2RvbVUoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGtlcm5lbF9pbmZvDQo+PiAqa2luZm8pDQo+
PiDCoMKgIHsNCj4+IMKgwqDCoMKgwqDCoCBpbnQgYWRkcmNlbGxzLCBzaXplY2VsbHM7DQo+PiBA
QCAtNTY5LDYgKzU2OSw4IEBAIHN0YXRpYyBpbnQgX19pbml0IHByZXBhcmVfZHRiX2RvbVUoc3Ry
dWN0IGRvbWFpbiAqZCwNCj4+IHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8pDQo+PiDCoMKgwqDC
oMKgwqAgaWYgKCByZXQgPCAwICkNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gZXJyOw0K
Pj4NCj4+ICvCoMKgwqAgcHJpbnRrKCJGaW5hbCBjb21wYWN0ZWQgRkRUIHNpemUgaXM6ICVkIGJ5
dGVzXG4iLA0KPj4gZmR0X3RvdGFsc2l6ZShraW5mby0+ZmR0KSk7DQo+PiArDQo+PiDCoMKgwqDC
oMKgwqAgcmV0dXJuIDA7DQo+Pg0KPj4gwqDCoMKgwqAgZXJyOg0KPj4NCj4+IFRoaXMgZGF0YSBz
aG93cyAoYXNzdW1pbmcgbXkgdGVzdGluZy9jYWxjdWxhdGlvbnMgYXJlIGNvcnJlY3QpOg0KPj4N
Cj4+IC0gQSBtYXJnaW5hbCBjb3N0IG9mIDExMiBieXRlcyBwZXIgdkNQVSBpbiB0aGUgZmluYWws
IGNvbXBhY3RlZCBkZXZpY2UgDQo+PiB0cmVlLg0KPj4gLSBBIGZpeGVkIGJhc2Ugc2l6ZSBvZiAx
NDc0IGJ5dGVzIGZvciBhbGwgbm9uLXZDUFUgY29udGVudC4NCj4gDQo+IFRoYW5rIGZvciBkZXRh
aWxlZCBhbmFseXNlcyBhbmQgaW5mby4NCj4gDQo+Pg0KPj4gQmFzZWQgb24gdGhhdCBJIHdvdWxk
IHByb3Bvc2UgdGhlIGZvbGxvd2luZyBmb3JtdWxhIHdpdGggdGhlIA0KPj4ganVzdGlmaWNhdGlv
bjoNCj4+DQo+PiAvKg0KPj4gwqDCoCAqIFRoZSBzaXplIGlzIGNhbGN1bGF0ZWQgZnJvbSBhIGZp
eGVkIGJhc2VsaW5lIHBsdXMgYSBzY2FsYWJsZQ0KPj4gwqDCoCAqIHBvcnRpb24gZm9yIGVhY2gg
cG90ZW50aWFsIHZDUFUgbm9kZSB1cCB0byB0aGUgc3lzdGVtIGxpbWl0DQo+PiDCoMKgICogKE1B
WF9WSVJUX0NQVVMpLCBhcyB0aGUgdkNQVSBub2RlcyBhcmUgdGhlIHByaW1hcnkgY29uc3VtZXIN
Cj4+IMKgwqAgKiBvZiBzcGFjZS4NCj4+IMKgwqAgKg0KPj4gwqDCoCAqIFRoZSBiYXNlbGluZSBv
ZiAyS2lCIGlzIGEgc2FmZSBidWZmZXIgZm9yIGFsbCBub24tdkNQVSBGRFQNCj4+IMKgwqAgKiBj
b250ZW50LiBUaGUgMTI4IGJ5dGVzIHBlciB2Q1BVIGlzIGRlcml2ZWQgZnJvbSBhIHdvcnN0LWNh
c2UNCj4+IMKgwqAgKiBhbmFseXNpcyBvZiB0aGUgRkRUIGNvbnN0cnVjdGlvbi10aW1lIHNpemUg
Zm9yIGEgc2luZ2xlDQo+PiDCoMKgICogdkNQVSBub2RlLg0KPj4gwqDCoCAqLw0KPj4gI2RlZmlu
ZSBET01VX0RUQl9TSVpFICgyMDQ4ICsgKE1BWF9WSVJUX0NQVVMgKiAxMjgpKQ0KPj4NCj4+ICoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCj4+DQo+PiBQbGVh
c2UgdGVsbCBtZSB3b3VsZCB5b3UgYmUgaGFwcHkgd2l0aCB0aGF0Pw0KPiANCj4gSXQgbG9va3Mg
b2suDQoNClRoYW5rcy4NCg0KDQo+IE9uZSB0aGluZyBJIHdvcnJ5IGFib3V0IC0gc2hvdWxkIGl0
IGJlIFhlbiBwYWdlIGFsaWduZWQ/DQoNCkdvb2QgcXVlc3Rpb24uIEkgY291bGQgbm90IGZpbmQg
YW55IGluZm9ybWF0aW9uIHRoYXQgdGhlIGRldmljZSB0cmVlIA0KYmxvYiAoRFRCKSBzaXplIGl0
c2VsZiBpcyByZXF1aXJlZCB0byBiZSBwYWdlLWFsaWduZWQgKGF0IGxlYXN0IG9uIEFybTY0KS4N
Cg0KMS4gVGhlIExpbnV4IEtlcm5lbCBCb290IFByb3RvY29sIERvY3VtZW50YXRpb24gb24gQXJt
NjQgc2F5cyBhYm91dCANCnNldHRpbmcgdXAgdGhlIGRldmljZSB0cmVlIjoNCiJUaGUgZGV2aWNl
IHRyZWUgYmxvYiAoZHRiKSBtdXN0IGJlIHBsYWNlZCBvbiBhbiA4LWJ5dGUgYm91bmRhcnkgYW5k
IA0KbXVzdCBub3QgZXhjZWVkIDIgbWVnYWJ5dGVzIGluIHNpemUuIg0KDQpJdCBkb2VzIG5vdCBz
YXkgInRoZSBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZi4uLiIgb3IgInRoZSBzaXplIG11c3Qg
YmUgDQpwYWdlLWFsaWduZWQuIg0KDQoyLiBUaGUgb2ZmaWNpYWwgRGV2aWNlIFRyZWUgU3BlY2lm
aWNhdGlvbiBzYXlzIGFib3V0IHRoZSAidG90YWxzaXplIiANCmZpZWxkIGluIHRoZSBoZWFkZXI6
DQoiIC0gdG90YWxzaXplDQpUaGlzIGZpZWxkIHNoYWxsIGNvbnRhaW4gdGhlIHRvdGFsIHNpemUg
aW4gYnl0ZXMgb2YgdGhlIGRldmljZXRyZWUgZGF0YSANCnN0cnVjdHVyZS4iDQoNCkl0IGFsc28g
ZG9lcyBub3Qgc2F5ICJ0aGUgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YuLi4iIG9yICJ0aGUg
c2l6ZSANCm11c3QgYmUgcGFnZS1hbGlnbmVkLiINCg0KTXkgdW5kZXJzdGFuZGluZyBpczogbm8s
IHRoZSBzaXplIG9mIERUQiBkb2VzIG5vdCBuZWVkIHRvIGJlIHBhZ2UtYWxpZ25lZC4NCg0KPiAN
Cg==


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 17:07:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 17:07:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176978.1501407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQqK8-00064s-UU; Wed, 03 Dec 2025 17:07:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176978.1501407; Wed, 03 Dec 2025 17:07:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQqK8-00064l-Rj; Wed, 03 Dec 2025 17:07:28 +0000
Received: by outflank-mailman (input) for mailman id 1176978;
 Wed, 03 Dec 2025 17:07:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=H1HU=6J=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vQqK7-00064a-NT
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 17:07:27 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8846d46c-d06a-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 18:07:23 +0100 (CET)
Received: from PH7P220CA0033.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:32b::33)
 by MN2PR12MB4437.namprd12.prod.outlook.com (2603:10b6:208:26f::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Wed, 3 Dec
 2025 17:07:18 +0000
Received: from CY4PEPF0000E9D3.namprd03.prod.outlook.com
 (2603:10b6:510:32b:cafe::25) by PH7P220CA0033.outlook.office365.com
 (2603:10b6:510:32b::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.9 via Frontend Transport; Wed, 3
 Dec 2025 17:07:17 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000E9D3.mail.protection.outlook.com (10.167.241.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Wed, 3 Dec 2025 17:07:17 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 3 Dec
 2025 11:07:16 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8846d46c-d06a-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=C64aqkEAYSijQfC61tSU8MA4NZWmnqG4JWZcKThiJB3IX0F6j94mHffgtLP6pbxPbCmgVq62RcN9a+gCpzADolF49zbqGfI4UMDDuqeXRYqXdycwfkJnLYaQxDLMhAPaoT1gCoDbih40I6fybby/lCwI7AEUWvcOsWulLwp3n4hO+nehEYeZ8tdiGdGEx+dz/wap4QLhoXSfa2kEEmVEVVGLRrXLwRTNcD6Xs2cZGAd3RP7qFR6XWS0XulggwXo2OdWnZXQOeF+bqjL6ONTcwGwtoc1IreuqdYI2zchZYY9UC+KuJMFSoZ9FvQrnpUCAAxUwSvSqzDwlO7qTBWWtsg==
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=NdQjUmBHbThEu3wLwnA+hvhbsUwyLXlz/w2W1XAjPnI=;
 b=GoKp3/BRT8z4BjmHjgNX33ilqomimEpcbvdMnwQ9WHbATUDraB0iAvgD3GhKcHooG0QRgrzR4hmXi24hOe2AOKgDxasHtDvafy1Hh2RfyLMFegoOvhVwtoAua7EjZUVkdHbKp1n8US8kQ53UmKHJrOUQlQ8vw2s1BisfycAcipQz0LfMMatU8Z9teAQnggF3ehRtT8zHH4sfD7THtH9Zs1IXsYPWhPkDYkHMpCwARtA6D39I0r7pPR+M5WTQxA/Giw5ODpiPWoi1J4gICRjPMrtTJ74PdvSx5qI2ujTIndGCikZi1IEqBoQmOhXpRgVQqOa65nd+84CEHt06ynuOPw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NdQjUmBHbThEu3wLwnA+hvhbsUwyLXlz/w2W1XAjPnI=;
 b=vfC8HejQQy2ElEGiwtY+yU3wQi+lkCq1WNf944kOL+svRzR/Pa2KBj/engwuIeioHmjwMq67ihc8NdFrNS2/lM2Plmt2GuOgOvv36Zl98xw0LdQ/Wc8C6ATEiYuTNM79ceCXLWnuYkuSa5w/NON2guRWl/fD9T0cZNjBToT2tCA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 3 Dec 2025 18:07:15 +0100
Message-ID: <DEOQVMZ253US.Q734JQ1TNWZ9@amd.com>
CC: <jbeulich@suse.com>, <andrew.cooper3@citrix.com>, <roger.pau@citrix.com>,
	Xen-devel <xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH] x86: Limit the non-architectural constant TSC model
 checks
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Kevin Lampis <kevin.lampis@citrix.com>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20251203160618.91883-1-kevin.lampis@citrix.com>
In-Reply-To: <20251203160618.91883-1-kevin.lampis@citrix.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D3:EE_|MN2PR12MB4437:EE_
X-MS-Office365-Filtering-Correlation-Id: 0727a1d7-95cc-45fe-3cd7-08de328e6a1b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RjEwWXJSZEpOUDIyWWZ0YUtSMnc1ZTBhRGZRZXVobUZtSWhMc3ZKQUtYMzhu?=
 =?utf-8?B?T0RTY29ScHBuVmdycU5ZWld6VXMxbkNDcnVUSGg2a05wMWFvUGJnMjFGZ0ox?=
 =?utf-8?B?LzY4ejlaM3lSa214QUVHbEtRVVpaWWR3VXFoa29ZMUZMb0s2Rng4QXg4MVUz?=
 =?utf-8?B?N29Fb2V0VThqajhyVTFVb294ZWs3ZWN0eDFWYmYrMzhkcDBBTTNSUzAzV05T?=
 =?utf-8?B?a0FMeUJ6VmpxMHlOcE0rVSsxMmlReFR4M3BtV2NKM0tkQjUvQkNibFlSOWZU?=
 =?utf-8?B?enh4TEVOcXo0MVdOSzBDdEk5ckluYzlHU1pQTGx6NjlhaFZycG15aGFMVHV5?=
 =?utf-8?B?ZmVBcStBbWNWVU9oZE9Ec1BGam1EVm1nVHRPczhiZmdtdXc0Z0V4SEN6R3Rn?=
 =?utf-8?B?UUtXb1N0WVI0b1A3MnhRangyRnhFVlBzL3FDMnpuNERnY1NjdWJpSmphdGRh?=
 =?utf-8?B?bEdsVVBBM3J2REYvdUVPTGtyajlOVEJxeFJzOGh4R29aRU9ZUnkwYVJHL2sr?=
 =?utf-8?B?OFhuWjgzL05oaE4xZUlxSk0reGZLNVBONWUrZG9RUm1NTHFjSi9QRjQyRXJy?=
 =?utf-8?B?alB6NWQ5QVF3R3VHVDdJZEhYYXpUOTJnQUEzZWl0K2Z5OFdIMlhhYzFZQ1Jp?=
 =?utf-8?B?eG9pQis3a04zbVh2eGxjQnNkeDRVNldKajJxSElrQmZQSDZoRjRUT25mSml6?=
 =?utf-8?B?UDRaMTV4MDlFR3ZpMThjbVRPbW1yVFBiN3V4Rzg2UFZMYlNaTFA3QXFRY1Ir?=
 =?utf-8?B?cXlCc3RLZWFhNmNNQk92REswOFdrbmxyM0xkekNjWU9ySjJXaTBzalBRY3JF?=
 =?utf-8?B?cmhHeC9uM3FVZFZhdlBsLzRteTZvYjlNK1U0ZyszeGZNU01Ed04xNDVWVXh2?=
 =?utf-8?B?Q3p1VFdITFEyS3E5Tk1pYmtUeTJ3OGw2Vms3RzhQZnN3UGszQkl0TFBiMlh1?=
 =?utf-8?B?YWdrUlA2blVmR1IxeHkrQWZtNUJBUHJPOTJkcWoyOVhyaWFlK2hXR0I1YW1s?=
 =?utf-8?B?U2l5SWNBeW9HKzZYTFRDdTBycC9xV3Y0TmhRMG1TRWgyZWFJYTY2cytoUDk3?=
 =?utf-8?B?dXFSS3U0WVVXRXJOL2tOSDBhWThuUmdSSXl3bXhGU2pWOTVpT3VPWlN1VnJh?=
 =?utf-8?B?MmZyUjQ1L2FDcStHeUNqQW5HS0NzeGhQMi9hNldkWTJ6ZVpHaDFObHRwSE9P?=
 =?utf-8?B?RDkxVDF2NENtakFWcHBERVZRZ1NxbHNES0R2d2NDWTNjZmk5V3JPMm1rRGhu?=
 =?utf-8?B?N0o3K0YwMnpPQzdYQXFVOXZMVTJ2SlBiQjlEY0Y3MDkvanNUM3ZiaElYdTcy?=
 =?utf-8?B?WjZKM0RpVGlQMWUxbTQwUG53NHQxZHN0Z2QvdFRMUzIvcGZjUXZuVGNtZW55?=
 =?utf-8?B?dlF4c24zQlpIRzY5bzhHQ1FuTjM5eVdZWGsxVEhBOTRIR1UyZXBuQ0JKWUhn?=
 =?utf-8?B?endqSDhzdjRKc0JRUVRhNE41ZlFhbDZTbDc4cnEwRzdBYnZhYWpFY2ZCRjlo?=
 =?utf-8?B?UmFlOUl3cC94TkZDMm85WTlLWkRDNlFuNFZXNFNPZzQ4RHZHOHQvWFkxWjZR?=
 =?utf-8?B?V1hDUW1CaktPY0NiN05DNFJNWVlXMDVNQjd4Tmd1Qkt6cGJheWptalZvOVlS?=
 =?utf-8?B?TEdCVGVQbnVSRXZKb0laSXZuWnBJQ09QNUJUTHRWcTRsV1NxVU9GQ3JxT0Nt?=
 =?utf-8?B?TEVtZ2VkTEV5U09yZzJOMlJXbkV6bkc0czJuUjZmRm5lZGxvdDhKVEZ2YTF6?=
 =?utf-8?B?R3U3L3M4Y3RqMDB1QUJyTGQ1WnE1c3BIYnE4YVc0QWpza1ZhSWRoL1B6eDcv?=
 =?utf-8?B?QXh2R29nZUsxYndrSFRFcmVHYXFrSm91dWN5c2c2ejFKc0s4dU9VRW1MaEwv?=
 =?utf-8?B?ZGdwMEh0eUIzZW9OTHdqMmFxRFM4RkNrWlVFbUJ3ajV0a2g3Kzh0cWVHSzhE?=
 =?utf-8?B?Z2VSLzFrRytkOGI1YUM1QjBDS1FwL0NtUnVUSlI0M09ZcG9PYTFIR1hTVFVB?=
 =?utf-8?B?S3YxZXVNT1JpU1hBNzJRM0tlT1NkZFhQSTA1b0NoMFgxU1FQZUpHTFR6R0cx?=
 =?utf-8?B?aWUyZnk1cHppemNQUlJlVkkzUEMvakFFSHRBMGdIYTBITXFQcDhxK0QxVjQ5?=
 =?utf-8?Q?kUEM=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2025 17:07:17.9230
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0727a1d7-95cc-45fe-3cd7-08de328e6a1b
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9D3.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4437

On Wed Dec 3, 2025 at 5:06 PM CET, Kevin Lampis wrote:
> There are some older Intel CPUs which have CONSTANT_TSC behavior but
> don't advertise it through CPUID. This change replaces the previous
> open-ended check with a definitive range to make it clear that this only
> applies to a specific set of CPUs and that later CPUs like Family 18+
> won't need to be included.
>
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
> ---
>  xen/arch/x86/cpu/intel.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
> index 2bb9956a79..1c37179bc5 100644
> --- a/xen/arch/x86/cpu/intel.c
> +++ b/xen/arch/x86/cpu/intel.c
> @@ -673,15 +673,15 @@ static void cf_check init_intel(struct cpuinfo_x86 =
*c)
>  	/* Work around errata */
>  	Intel_errata_workarounds(c);
> =20
> -	if ( ( c->family =3D=3D 15 && c->model >=3D 0x03 ) ||
> -	     ( c->family =3D=3D 6 && c->model >=3D 0x0e ) )
> -		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
> -
> +	/* Use a model specific check for some older CPUs that have
> +	 * constant TSC but may not report it via CPUID. */

nit:  This comment, or some variation of it, should (imo) be inside the bra=
nch
you add instead. Also, multiline comments follow Xen style elsewhere in
the file.

>  	if (cpu_has(c, X86_FEATURE_ITSC)) {
>  		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
>  		__set_bit(X86_FEATURE_NONSTOP_TSC, c->x86_capability);
>  		__set_bit(X86_FEATURE_TSC_RELIABLE, c->x86_capability);
> -	}
> +	} else if ( ( c->vfm >=3D INTEL_P4_PRESCOTT && c->vfm <=3D INTEL_P4_CED=
ARMILL ) ||
> +	            ( c->vfm >=3D INTEL_CORE_YONAH && c->vfm <=3D INTEL_IVYBRID=
GE ) )

I understand this is code motion + macro usage, but it might be worth gatin=
g
everything by !cpu_has(c, X86_FEATURE_HYPERVISOR). Otherwise you risk getti=
ng
your assumptions wrong when running virtualised.

This might be QEMU TCG, or other shenanigans with live migration when runni=
ng
virtualised and subject to guest-unaware live-migrations guest-unaware live
migration.

IOW: If you're running virtualised and you have no ITSC it's probably becau=
se
your hypervisor didn't want you making assumptions about it based on fam/mo=
del
checks.

Not that any CSP would use those processors, but my point stands.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 17:16:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 17:16:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1176990.1501418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQqSc-0007y0-PY; Wed, 03 Dec 2025 17:16:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1176990.1501418; Wed, 03 Dec 2025 17:16:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQqSc-0007xt-MD; Wed, 03 Dec 2025 17:16:14 +0000
Received: by outflank-mailman (input) for mailman id 1176990;
 Wed, 03 Dec 2025 17:16:12 +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
 <SRS0=dwxk=6J=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vQqSa-0007xn-Lj
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 17:16:12 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c3edd675-d06b-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 18:16:11 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso505885e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 09:16:11 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4792a8ccbfesm59381855e9.13.2025.12.03.09.16.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Dec 2025 09:16:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3edd675-d06b-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764782171; x=1765386971; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=9gh+R+SZtQJehKOncYKGKlhzLBvG4VuQxZob9EYE/i0=;
        b=VoGAVoqMlXHLfSeiXQQoqDStCFCT4HlKB6mptNkJ2RAapJAqGcVGSc5YeG0xrUum6G
         iUtarRN2yUs9i9mIjbJXsSEaE85CaKiAi0yYfPV5gZxThC4tfSuvXN/NjhSE9eTam6Ty
         erGtuKx3cwxR5M19SQRRmVeVbhiXHaeatdxkI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764782171; x=1765386971;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9gh+R+SZtQJehKOncYKGKlhzLBvG4VuQxZob9EYE/i0=;
        b=n8lOnPXz+sz71o+yY4bI45DQ+cqSNEUD6dvi0ifXHQfWTrMV5KDTKNRM6S2+GVAPEi
         +C3IAV48FrkS1RXkdEKi66zRm/m6Lr+gjsnH3Wo7awlavLiomJQnShpL9fopqEznH2xh
         9LM4Xx1dmdkm22eLj3oRv6Xu28QfXcJ5ZxMJ4Kmw04PS4ThkX1LcGPj9WiNYIuRwzt4b
         TOT6XQHAzyp1LMd/7YI/R5USTkay9/J+8JQLB8HtredA3zf0pzrm/TUjlcO7a9KnRCVD
         tFWV5Ytl5NJsSf1euUi78m3PMR2lazZLQDbA9I6eMo6rxOTKkbclC5Ue5uJwGxh7EMGO
         8KEw==
X-Gm-Message-State: AOJu0YwkhlORiCGbSll8lzQ4qccTK+ccM1LNhCFbIAx2XrMHcqLNFTvA
	xrxqxycwwGtBIYbBB6zH358/z92Jn1GTufbLf4Kyb6fF/P44wJnSGn2XQ7v0/xoRDm5aFFqUvb6
	/pj1f
X-Gm-Gg: ASbGncvHYzk7AJaU4a9CDp1wRDKZUPS7TcoxKRmfVa95acUfrYz6UPnc3xXyqCNh+gv
	1OFlqapX8A9LabPNkJUzm+aKmH8PqK+aN+rCjaV8/drRzkGB7Jc9RKeWm0Nvg0cjAuCOge0XP6v
	NelMRIsOs9JCkJc/K6g/gToYw/7ajFsNvhw6rRA4LBQkzYFP9cIguwxKtjUC+qrhuESlHVZKfse
	bS7T/3hrzXNES2WDm209sfy9zYqG5Fy6Re6Acbrw8/iAvN8ApQfIUhNWDDv2QjaoK/SJKIjRHG/
	igCVbcpVFvvW0u2wX+N1giMoXGjIxwpKlo0v1Ye72wLh7Ip+9aZDdlCDDyQTRnBknCB0yLRcz+r
	t5+pLPpjFFTbH36nAf+OS7QMoBmggFjorkzVGdXVfH6Z8BVD5lat57u3qOcfG0NI8cSAMT4YKwi
	KB2aAnLu8WJ2Q86W/HfH9Ik1TaWnmWkl4wy9DYwW2QbuyP+B/5yAdIjP40i8CS9Q==
X-Google-Smtp-Source: AGHT+IEQBEinCWx27Txdk9QSdMrtpcEQJUHvNwnF518KE9DHGS+8qWMevRVM52dS1A9+X/6qBNj4WQ==
X-Received: by 2002:a05:600c:46c6:b0:477:7588:c8cc with SMTP id 5b1f17b1804b1-4792eb19ee1mr2205375e9.7.1764782170746;
        Wed, 03 Dec 2025 09:16:10 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Hans van Kranenburg <hans@knorrie.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <JBeulich@suse.com>,
	Maximilian Engelhardt <maxi@daemonizer.de>
Subject: [PATCH] ARM: Drop ThumbEE support
Date: Wed,  3 Dec 2025 17:16:08 +0000
Message-Id: <20251203171608.1714964-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

It was reported that Xen no longer builds on Debian Trixie:

  Assembler messages:
  {standard input}:474: Error: unknown or missing system register name at operand 1 -- `msr TEECR32_EL1,x0'
  {standard input}:480: Error: unknown or missing system register name at operand 1 -- `msr TEEHBR32_EL1,x0'
  {standard input}:488: Error: unknown or missing system register name at operand 2 -- `mrs x0,TEECR32_EL1'
  {standard input}:494: Error: unknown or missing system register name at operand 2 -- `mrs x0,TEEHBR32_EL1'
  make[5]: *** [Rules.mk:249: arch/arm/domain.o] Error 1

This turns out to be an intentional change in bintuils.  ThumbEE was dropped
from the architecture and doesn't exist in v8 (i.e. AArch64).

Xen supports v7+virt extentions so in principle we could #ifdef CONFIG_ARM_32
to keep it working, but there was apparently no use of ThumbEE outside of demo
code, so simply drop it.

Reported-by: Hans van Kranenburg <hans@knorrie.org>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Hans van Kranenburg <hans@knorrie.org>
CC: Maximilian Engelhardt <maxi@daemonizer.de>

There's been no movement on this and it's urgent.  This (cross)compiles for
me, but is the sum total of testing it's had.

Bintuils link: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=8c0024ca8f6c01fc45f081f5ef11c9a6a1c24eb0
---
 xen/arch/arm/domain.c                 | 12 ------------
 xen/arch/arm/include/asm/cpufeature.h |  1 -
 xen/arch/arm/include/asm/domain.h     |  1 -
 xen/arch/arm/setup.c                  |  3 +--
 4 files changed, 1 insertion(+), 16 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index ab7844433597..3e32a15cac7a 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -111,12 +111,6 @@ static void ctxt_switch_from(struct vcpu *p)
     p->arch.cntkctl = READ_SYSREG(CNTKCTL_EL1);
     virt_timer_save(p);
 
-    if ( is_32bit_domain(p->domain) && cpu_has_thumbee )
-    {
-        p->arch.teecr = READ_SYSREG(TEECR32_EL1);
-        p->arch.teehbr = READ_SYSREG(TEEHBR32_EL1);
-    }
-
 #ifdef CONFIG_ARM_32
     p->arch.joscr = READ_CP32(JOSCR);
     p->arch.jmcr = READ_CP32(JMCR);
@@ -244,12 +238,6 @@ static void ctxt_switch_to(struct vcpu *n)
     WRITE_SYSREG(n->arch.tpidrro_el0, TPIDRRO_EL0);
     WRITE_SYSREG(n->arch.tpidr_el1, TPIDR_EL1);
 
-    if ( is_32bit_domain(n->domain) && cpu_has_thumbee )
-    {
-        WRITE_SYSREG(n->arch.teecr, TEECR32_EL1);
-        WRITE_SYSREG(n->arch.teehbr, TEEHBR32_EL1);
-    }
-
 #ifdef CONFIG_ARM_32
     WRITE_CP32(n->arch.joscr, JOSCR);
     WRITE_CP32(n->arch.jmcr, JMCR);
diff --git a/xen/arch/arm/include/asm/cpufeature.h b/xen/arch/arm/include/asm/cpufeature.h
index b6df18801166..bb1629546f63 100644
--- a/xen/arch/arm/include/asm/cpufeature.h
+++ b/xen/arch/arm/include/asm/cpufeature.h
@@ -29,7 +29,6 @@
 #define cpu_has_thumb     (boot_cpu_feature32(thumb) >= 1)
 #define cpu_has_thumb2    (boot_cpu_feature32(thumb) >= 3)
 #define cpu_has_jazelle   (boot_cpu_feature32(jazelle) > 0)
-#define cpu_has_thumbee   (boot_cpu_feature32(thumbee) == 1)
 #define cpu_has_aarch32   (cpu_has_arm || cpu_has_thumb)
 
 #ifdef CONFIG_ARM64_SVE
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index af3e168374b4..758ad807e461 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -211,7 +211,6 @@ struct arch_vcpu
     register_t hcr_el2;
     register_t mdcr_el2;
 
-    uint32_t teecr, teehbr; /* ThumbEE, 32-bit guests only */
 #ifdef CONFIG_ARM_32
     /*
      * ARMv8 only supports a trivial implementation on Jazelle when in AArch32
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 7ad870e382c2..c24e6d01c1f8 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -172,12 +172,11 @@ static void __init processor_id(void)
         printk("32-bit Execution:\n");
         printk("  Processor Features: %"PRIregister":%"PRIregister"\n",
                system_cpuinfo.pfr32.bits[0], system_cpuinfo.pfr32.bits[1]);
-        printk("    Instruction Sets:%s%s%s%s%s%s\n",
+        printk("    Instruction Sets:%s%s%s%s%s\n",
                cpu_has_aarch32 ? " AArch32" : "",
                cpu_has_arm ? " A32" : "",
                cpu_has_thumb ? " Thumb" : "",
                cpu_has_thumb2 ? " Thumb-2" : "",
-               cpu_has_thumbee ? " ThumbEE" : "",
                cpu_has_jazelle ? " Jazelle" : "");
         printk("    Extensions:%s%s\n",
                cpu_has_gentimer ? " GenericTimer" : "",

base-commit: 62bd4c2a8ee809c181d47098583270dc9db9300e
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 17:26:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 17:26:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177003.1501428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQqcm-0001NE-Ky; Wed, 03 Dec 2025 17:26:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177003.1501428; Wed, 03 Dec 2025 17:26:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQqcm-0001N7-Ht; Wed, 03 Dec 2025 17:26:44 +0000
Received: by outflank-mailman (input) for mailman id 1177003;
 Wed, 03 Dec 2025 17:26:42 +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
 <SRS0=Qm2A=6J=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vQqck-0001N1-GM
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 17:26:42 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3aae0154-d06d-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 18:26:40 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-64320b9bb4bso104545a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Dec 2025 09:26:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3aae0154-d06d-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764782800; x=1765387600; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=82aUxN6z1AEXBhiLhdI9OrxP4fk0J5kUshV4gL9CybA=;
        b=iRaMdpiuprzUnCU2AZPPptDfqVd7YO4KQRUE7cdk/U51w6U/oamdHARiXnoFMSN58I
         jgzGY5tezO5Jj2BZongZBZgKgRINi+BI0UtVOie3g3NgjYD1Qgj9JE97J3/AHnV35fX0
         REC+jZp00NcDpbX//pkayoFGU/fZiRb8JBXYzyh+CSAGU8SWFtgtU648sxCE1QGpEBW7
         C1UKclvIBV3KPcGRQpeUc3IK0rX4MN/YhQS7mJirkUMAuQJ/+5pgzA3IzNvmEialJ6ZF
         1xzGo21MRYTh6Hy35hzM8TRsEHF5gVfsEh79mwHuuKBSztHv+b1aA8F47zCKt+YvANyM
         z5qA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764782800; x=1765387600;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=82aUxN6z1AEXBhiLhdI9OrxP4fk0J5kUshV4gL9CybA=;
        b=xO6o3zNDTz7EGhe+Z5fnIFph3y/0EsTVUUSCv89EYSn0Zcy1WjcgYhdJ3lp2Vend+2
         F79F6TJDrD3/xKd3ZClnXi+xmlZEnTZaBhJeAhmmt5OZCaQzXcV6XoWFM3qxbbRP3caV
         ypKaIkXmBS+F0j0UUlcpgxt5IlHcGA1n1Um7I+BvyJ4VjD+fzt2Gd1Xp6sTafUhpv7dr
         OHtvrh1xDLxwySf/90GZv7BhOAn3Ow96/9Eh0n7u6MdTJPkc2weEAqzkXkT5sQ0GfYzf
         rjnl4vf0xMMJ1FZ9Y06ult9wLAspG5A8pOzBnoQ1U9jSI2tKxD2ZXsAOBeUMlmNPVIqI
         SdcQ==
X-Gm-Message-State: AOJu0Yz2/438ZFR5yPP4onlEjW1v7anrzGbEjA7s/PFOKJQsc4LVx+a9
	rJMu3Pbgq8ABb5WD1XEH8of05JNsw2LCbLpVzVjr4AqbZf3NTe5rrFOFKnmhprxxoIWNrNYuiQa
	TZDeZGH3LxF4VKoNRQ5Q9vS+HYI38jBpdzJqjMjuGjg==
X-Gm-Gg: ASbGncscYlb0mvGqV4y1tyW2olNJP4EjSbgd6kxtefGOo7JlO0AqVAPoiIPlWwSKe1q
	Mt6k9ArUBywwfhwsYPxSE/fsNFwTPAIT8mYZicysUll3nYVLNCLwzvyawTZF3CE49F8BREk3ofg
	SY6Xv7hXFpuretA6Hhvunuk4NS8gI0oi5tT+djNIncVQwtAXMDnk72NaH5mUYPL1UaOQ+jLXV4i
	GqHGanILYXUcQM9tEolacWavNWBDGumHBckGR4yeSfqzL+2bRJVovjlxpbnLx/4CdESyEEngtFF
	sIpGl9VaYWXxk5ztkl+mVXwMzw==
X-Google-Smtp-Source: AGHT+IFYwj/gtlCE5BBQQSz1MlJIVq2nx6mlr5zaT3UB3JBBT+XSJCQgyUe7PAQqejEo+QZYKKTAwqyn2OsQ2ORAk5E=
X-Received: by 2002:aa7:d407:0:b0:640:931e:ccac with SMTP id
 4fb4d7f45d1cf-647a6a0eb5amr156977a12.7.1764782799950; Wed, 03 Dec 2025
 09:26:39 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764254975.git.bertrand.marquis@arm.com> <06eae7d0caaf5379086d9a2efde8489448f14f39.1764254975.git.bertrand.marquis@arm.com>
In-Reply-To: <06eae7d0caaf5379086d9a2efde8489448f14f39.1764254975.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 3 Dec 2025 18:26:27 +0100
X-Gm-Features: AWmQ_bnjmRS87CIqkuotEQ_s_E0Izk0P01BbmLUcY-3r6YYeeyK4R7xx5QxCi5g
Message-ID: <CAHUa44F2cGs=xqHbqsG=me1qnJ8u+gawoqmf__1CuOtx3B5XwA@mail.gmail.com>
Subject: Re: [PATCH 09/10] xen/arm: ffa: add MSG_SEND_DIRECT_REQ2 support
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Thu, Nov 27, 2025 at 4:53=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Extend the direct-request path so FF-A v1.2 guests can issue
> FFA_MSG_SEND_DIRECT_REQ2 and receive the matching RESP2.
>
> The handler now marshals registers x8=E2=80=93x17, and
> ffa_finish_direct_req_run() copies back the 17-register response used by
> FFA_MSG_SEND_DIRECT_RESP2. The new opcode is exposed via FFA_FEATURES
> and gated on guests that negotiated v1.2.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa.c     | 20 +++++++++++++++++++
>  xen/arch/arm/tee/ffa_msg.c | 39 ++++++++++++++++++++++++++++++++++++++
>  2 files changed, 59 insertions(+)

Looks good.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 92cb6ad7ec97..8b2f042287fc 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -234,6 +234,8 @@ out_continue:
>  static void handle_features(struct cpu_user_regs *regs)
>  {
>      uint32_t a1 =3D get_user_reg(regs, 1);
> +    struct domain *d =3D current->domain;
> +    struct ffa_ctx *ctx =3D d->arch.tee;
>      unsigned int n;
>
>      for ( n =3D 2; n <=3D 7; n++ )
> @@ -262,6 +264,16 @@ static void handle_features(struct cpu_user_regs *re=
gs)
>      case FFA_MSG_SEND2:
>          ffa_set_regs_success(regs, 0, 0);
>          break;
> +    case FFA_MSG_SEND_DIRECT_REQ2:
> +        if ( ctx->guest_vers >=3D FFA_VERSION_1_2 )
> +        {
> +            ffa_set_regs_success(regs, 0, 0);
> +        }
> +        else
> +        {
> +            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> +        }
> +        break;
>      case FFA_MEM_SHARE_64:
>      case FFA_MEM_SHARE_32:
>          /*
> @@ -347,6 +359,14 @@ static bool ffa_handle_call(struct cpu_user_regs *re=
gs)
>      case FFA_MSG_SEND_DIRECT_REQ_64:
>          ffa_handle_msg_send_direct_req(regs, fid);
>          return true;
> +    case FFA_MSG_SEND_DIRECT_REQ2:
> +        if ( ctx->guest_vers >=3D FFA_VERSION_1_2 )
> +        {
> +            ffa_handle_msg_send_direct_req(regs, fid);
> +            return true;
> +        }
> +        e =3D FFA_RET_NOT_SUPPORTED;
> +        break;
>      case FFA_RUN:
>          ffa_handle_run(regs, fid);
>          return true;
> diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
> index 472bfad79dd3..1f42aae1e0b6 100644
> --- a/xen/arch/arm/tee/ffa_msg.c
> +++ b/xen/arch/arm/tee/ffa_msg.c
> @@ -49,6 +49,30 @@ static void ffa_finish_direct_req_run(struct cpu_user_=
regs *regs,
>      case FFA_MSG_YIELD:
>      case FFA_INTERRUPT:
>          break;
> +    case FFA_MSG_SEND_DIRECT_RESP2:
> +        /*
> +         * REQ2 / RESP2 use a 17-register payload (x1=E2=80=93x17). Copy=
 all of them
> +         * back to the guest context.
> +         */
> +        set_user_reg(regs, 0, resp.a0);
> +        set_user_reg(regs, 1, resp.a1);
> +        set_user_reg(regs, 2, resp.a2);
> +        set_user_reg(regs, 3, resp.a3);
> +        set_user_reg(regs, 4, resp.a4);
> +        set_user_reg(regs, 5, resp.a5);
> +        set_user_reg(regs, 6, resp.a6);
> +        set_user_reg(regs, 7, resp.a7);
> +        set_user_reg(regs, 8, resp.a8);
> +        set_user_reg(regs, 9, resp.a9);
> +        set_user_reg(regs, 10, resp.a10);
> +        set_user_reg(regs, 11, resp.a11);
> +        set_user_reg(regs, 12, resp.a12);
> +        set_user_reg(regs, 13, resp.a13);
> +        set_user_reg(regs, 14, resp.a14);
> +        set_user_reg(regs, 15, resp.a15);
> +        set_user_reg(regs, 16, resp.a16);
> +        set_user_reg(regs, 17, resp.a17);
> +        return;
>      default:
>          /* Bad fid, report back to the caller. */
>          ffa_set_regs_error(regs, FFA_RET_ABORTED);
> @@ -107,6 +131,21 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_=
regs *regs, uint32_t fid)
>      arg.a6 =3D get_user_reg(regs, 6) & mask;
>      arg.a7 =3D get_user_reg(regs, 7) & mask;
>
> +    if ( fid =3D=3D FFA_MSG_SEND_DIRECT_REQ2 )
> +    {
> +        /* 17 registers are used for REQ2 */
> +        arg.a8 =3D get_user_reg(regs, 8);
> +        arg.a9 =3D get_user_reg(regs, 9);
> +        arg.a10 =3D get_user_reg(regs, 10);
> +        arg.a11 =3D get_user_reg(regs, 11);
> +        arg.a12 =3D get_user_reg(regs, 12);
> +        arg.a13 =3D get_user_reg(regs, 13);
> +        arg.a14 =3D get_user_reg(regs, 14);
> +        arg.a15 =3D get_user_reg(regs, 15);
> +        arg.a16 =3D get_user_reg(regs, 16);
> +        arg.a17 =3D get_user_reg(regs, 17);
> +    }
> +
>      ffa_finish_direct_req_run(regs, &arg);
>      return;
>
> --
> 2.51.2
>


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 17:47:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 17:47:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177014.1501439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQqx0-0004TM-6Q; Wed, 03 Dec 2025 17:47:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177014.1501439; Wed, 03 Dec 2025 17:47:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQqx0-0004TF-1o; Wed, 03 Dec 2025 17:47:38 +0000
Received: by outflank-mailman (input) for mailman id 1177014;
 Wed, 03 Dec 2025 17:47:37 +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 <SRS0=NLTO=6J=knorrie.org=hans@srs-se1.protection.inumbo.net>)
 id 1vQqwz-0004T9-9o
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 17:47:37 +0000
Received: from albatros.knorrie.org (albatros.knorrie.org [35.156.0.23])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 26ed58a4-d070-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 18:47:35 +0100 (CET)
Received: from [IPV6:2a10:3781:4007:a::15] (unknown
 [IPv6:2a10:3781:4007:a::15])
 (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
 key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384)
 (No client certificate requested)
 by albatros.knorrie.org (Postfix) with ESMTPSA id CEC7A690F8B;
 Wed,  3 Dec 2025 18:47:34 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 26ed58a4-d070-11f0-9d1a-b5c5bf9af7f9
Message-ID: <a7f28465-e068-4250-873a-42e6cce71a04@knorrie.org>
Date: Wed, 3 Dec 2025 18:47:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] ARM: Drop ThumbEE support
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <JBeulich@suse.com>,
 Maximilian Engelhardt <maxi@daemonizer.de>
References: <20251203171608.1714964-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Hans van Kranenburg <hans@knorrie.org>
In-Reply-To: <20251203171608.1714964-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Hi Andrew,

On 12/3/25 6:16 PM, Andrew Cooper wrote:
> It was reported that Xen no longer builds on Debian Trixie:

The FTBFS is on Debian *unstable/sid*.

The build on Debian 13 Trixie is OK.

>   Assembler messages:
>   {standard input}:474: Error: unknown or missing system register name at operand 1 -- `msr TEECR32_EL1,x0'
>   {standard input}:480: Error: unknown or missing system register name at operand 1 -- `msr TEEHBR32_EL1,x0'
>   {standard input}:488: Error: unknown or missing system register name at operand 2 -- `mrs x0,TEECR32_EL1'
>   {standard input}:494: Error: unknown or missing system register name at operand 2 -- `mrs x0,TEEHBR32_EL1'
>   make[5]: *** [Rules.mk:249: arch/arm/domain.o] Error 1
> 
> This turns out to be an intentional change in bintuils.  ThumbEE was dropped
> from the architecture and doesn't exist in v8 (i.e. AArch64).
> 
> Xen supports v7+virt extentions so in principle we could #ifdef CONFIG_ARM_32
> to keep it working, but there was apparently no use of ThumbEE outside of demo
> code, so simply drop it.
> 
> Reported-by: Hans van Kranenburg <hans@knorrie.org>

Thanks!

I have just applied the patch here and have now successfully built the
Debian Xen packages using Debian unstable/sid build chroot on the arm64
Debian VM that I have here on my work macbook.

Hans

> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
> CC: Bertrand Marquis <bertrand.marquis@arm.com>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Hans van Kranenburg <hans@knorrie.org>
> CC: Maximilian Engelhardt <maxi@daemonizer.de>
> 
> There's been no movement on this and it's urgent.  This (cross)compiles for
> me, but is the sum total of testing it's had.
> 
> Bintuils link: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=8c0024ca8f6c01fc45f081f5ef11c9a6a1c24eb0
> [...]



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 17:49:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 17:49:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177028.1501449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQqyy-00053s-Kw; Wed, 03 Dec 2025 17:49:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177028.1501449; Wed, 03 Dec 2025 17:49:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQqyy-00053l-GS; Wed, 03 Dec 2025 17:49:40 +0000
Received: by outflank-mailman (input) for mailman id 1177028;
 Wed, 03 Dec 2025 17:49:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Wh3s=6J=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vQqyx-00053b-P8
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 17:49:39 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6f0d7449-d070-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 18:49:37 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH5PR03MB7960.namprd03.prod.outlook.com (2603:10b6:610:215::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Wed, 3 Dec
 2025 17:49:33 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.003; Wed, 3 Dec 2025
 17:49:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6f0d7449-d070-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VKLyx5WI5Ck2QHe7CG6YC2EFMsNuTvnQ2KWch3GY446y03ONVK3CH119gnHSzJejbwPFSpY5fH3+roNEHXfk+9pwwZoJs0HJCN7Ogf6RVzN1BtgdhdtWlXjThHdP1ROjbmqHkg6OuiyhO7VaH6AyCB1LMs2T3qo1A5R5lBMo/Aspi0w6Xk7IdlL6dSR6SqBO3y1zUhimHzGzDjY3cgRhYRN3R24k/9H7wXuYthpXP6YNOz2zllWiXJGfivBFD2zZSCafwTt0As+aXPLam34yAcmxuhJOJ2P/MFqVrTrQMCNrccq7jCOou+c+ndiDgfXjDXBH0wawX7bq2vj4EM+wog==
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=foZ3tpcWSFQ8NDKcbPcOkWJbgdFpk0NfMwdqJKiO1r4=;
 b=LQNLhdw0cER+Wqy0ZxakoFRyyDh6lJQamWAQf4iCBndkolDBa+9kV7RjsKe4SWGC5ykMchzqPCEKz7aa6yqhqw3dUIpayuUdjM/TtpDnqV9xuJ3AGyCtAXGe6z+hAB77yT3STUoyEBldZ0WXHCU29mPOPjPkrbIypTceWl+Cf1MGqVAZ7sCup24Dan2lRwjf3BpgX1DNYrgWpN9p/4W05wHF9JLTkqfApeUm+VwdWr6nXLoP0bnPgoCnG0MPPUR2pqjIs5Tglz5S35iH0HNcArbrVUCUxcmljZvskBhQyR8kOSyEa7A6/5byU8W0WYWHHyFQq1fMqkq1CQjZIjroEw==
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=foZ3tpcWSFQ8NDKcbPcOkWJbgdFpk0NfMwdqJKiO1r4=;
 b=o+Sim4yk7l4DowomDxMaabvq/6lmSJb0WjWjDUDXP6dKFesfYVuZ924Kthrpefo7uMJnJ/EiCguYtwO/vHdMJX4MGOnVT3sflLA9QvAuVPHBy12cKUdaDdtOn8BPs72T139e1drQpX6qe+JJLM7w7yjWRu1XeN/sqbrNautDlfA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e5ca01e0-bcd3-4fdc-8136-8b62baa3e8c2@citrix.com>
Date: Wed, 3 Dec 2025 17:49:30 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <JBeulich@suse.com>,
 Maximilian Engelhardt <maxi@daemonizer.de>
Subject: Re: [PATCH] ARM: Drop ThumbEE support
To: Hans van Kranenburg <hans@knorrie.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251203171608.1714964-1-andrew.cooper3@citrix.com>
 <a7f28465-e068-4250-873a-42e6cce71a04@knorrie.org>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <a7f28465-e068-4250-873a-42e6cce71a04@knorrie.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0556.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:33b::6) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH5PR03MB7960:EE_
X-MS-Office365-Filtering-Correlation-Id: c1cc4d54-c18d-45b2-604f-08de3294516e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MXpqaEM5cGVDOEwzWDdBTHF6MlVTOXczaDY3bjhiNjhmT0VSczR6ZEsrK245?=
 =?utf-8?B?bXNOY29RcUN0Ymg3bFI5UmRrS3FJRkpNbVQzTnRWc2R6WkN4b21Cc3dNK0ZC?=
 =?utf-8?B?WWYrRVdsM293R21PT1BKL21yZWZTYzYvekN6dmxjYVZoZ3hEdWlTQi9yNVVO?=
 =?utf-8?B?V2x2ZEdTb1BCZmgwRGZSRDYrbFZoaHgwODhtcFgydDJMMFN1N2lDOWFsc0R3?=
 =?utf-8?B?VW1kbXBLWldhdkhsaXJXcDJjRGJReGFRK2xFMWVQeVQ0bTJudTRzV0tGQW8v?=
 =?utf-8?B?aExJK0ZYZWp3d2FLN0hSVmN1YUdpQUU0T0lRTncvcG81cnlralZPeGkzSGla?=
 =?utf-8?B?TlJFNHVkTW41NXgzdkc0RExMazBqWU8vQjNkUm50ZjJUMFV6YnVYUTlOVVgy?=
 =?utf-8?B?SFhXS1NxK3RFWkFLV0xacVgwRDlkZDl6ZG9qenRmVEppZU4yQXZ1S0lDQSty?=
 =?utf-8?B?b0UyQi9rd1grR21mMWlVaHNZTXRuNTcyczFyWTUzdDNQdEJlTGxiSGt0Ni9x?=
 =?utf-8?B?bGtXaVNFdHcyRFhTNFpzQmIvVGNOWGpRcWoxRnlpKzNBSnI2YVd5UHVzUFBu?=
 =?utf-8?B?aEg0TGxqc2hxcEQ0UFQ5TExjazhxNS9wbnF1VS9EZldxQU5Ld0hPOWlVUGVI?=
 =?utf-8?B?VytmdXR6UXhMeTJWYnNaWWVSZTRXRy9EZTRTVVJMR29ES2FXeTdjYkMyc1Qy?=
 =?utf-8?B?M3pkb09jVmdCZ1RYeHZ6L0x5R1E3Vkw4WG1BYjlWTjV1Z01KS2VNVWdlVEJW?=
 =?utf-8?B?eE5GNVZpYnlWY1p0SDA0bVROZ0MweU84THlzMDVhZUY4L0xMZUZ6MytLNDZV?=
 =?utf-8?B?WTFTMUp4SkJ4SXdWeWlXcHIvd0trSXlTdFZRVkR1S2trZmRHalRMODBzZ0M3?=
 =?utf-8?B?ay9jcVhKNTk4WEc4YVJndCtlQkpBUXpTNi91RVRJcXFzWHBQeGNmN3dZZXFQ?=
 =?utf-8?B?cFZwN2I2Y1AxZmxDbW9QWnFUUjFXM0M0T1RqK29seUhCSGpyVVBsOGZmZFRS?=
 =?utf-8?B?c0crRHdmdHBwUUJ2MkNPQ3NQdURhbWtpWjJ3bFg0eE5XMWpocE9VK1F0b3l4?=
 =?utf-8?B?dEpjYjZaSy94NWFLMXcwZTEySmlqZXlhY3ZzQ0ttaDBWUmtQM1MraXZDdDhv?=
 =?utf-8?B?N0xCNDE5NWlpMnlsQzhBRkUxTkt0ZVV5Y05FbEFrMitrQ1lDbThpUzN6aTN1?=
 =?utf-8?B?SDh2WklaMzJQV2JQWks0aXUzaEVIZXNESEVRS3B2VVB6bWVtbWpISWZLcEc1?=
 =?utf-8?B?MWFleVRDcndpbHduUnJiMDVBQ215M05SUDhtSEdMTWpVSmhHWWRuQ2lSVGRW?=
 =?utf-8?B?OGhhZjAvT2ZBVDZIeVZVY0lVQ2RaVXBIRTF6aFFJUWx1ZkJ3NktaVGN0dEFh?=
 =?utf-8?B?eFZ4dnQ1NWUrWjN2MGRoZnN6NUNIU3ZNK1pQdkRDbkRFMFBudEMvWi9CZ0Z0?=
 =?utf-8?B?SkZYZGhiY1hxL0NIZ3kvWHZSL3dlTk1oaWd6VDlpYnpJTklScmR5R2RCU0Zv?=
 =?utf-8?B?Z3oycU1rTE90UG1SaXNuNUhNMW9vRnFDN1ZRVUNDS2JmenN0UVhYWTd0UHQy?=
 =?utf-8?B?SGEyUEVUTUF0T09HR0tmRVZtTXg5NGV4TEZBWHlTQnBwaUNoWTZITjIvYWhw?=
 =?utf-8?B?bHhEQ3g0b0djeW1LalJHSDlHanVkUTdOR2tCYnhYN080T3Vsb2VySU9mdkRL?=
 =?utf-8?B?enZaOFg3ZFliT3NnQ0s3bTVJNUw1eDBwZ2xHVzdFUStwSlpJdzJQbFNoOFFL?=
 =?utf-8?B?ZFpqcWUrU2pNUENYaDBqWDBrV2ZndjBvNnRHODF1ZjBkSkQ1aEgwL2FNZC9v?=
 =?utf-8?B?L0NneHdJV0xaOXhab0VJRFJHUS80Z0psc0F2Z2lBMEw1MnlHcWt2WGZqb3M0?=
 =?utf-8?B?RjA3QzhobGxCemFnS1hReEgzOS9qTkYzejVxYWxoN3RmbEUvaEt0YlRCUGpB?=
 =?utf-8?Q?xJtbukeQLa/TQKa01tXk7FgEralm6RHK?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NERSRE5wamFmWFk4YllWR2IxYVI4d1VFQ3RXcEpMSDhObUQ3WVJwQzZ6cnVw?=
 =?utf-8?B?Y0dYU2grNFd5MFZWekxjUGEzWTFiV0RUanBicDdlcEtkVkxkKzNRN3cvWXg5?=
 =?utf-8?B?SVpsR3JoU3pTZEFrRzlib2tJVWZOWEowblQ0RS81blhad0dkQnc0U3cvMzZy?=
 =?utf-8?B?ejVXczBSZmJrU2EzU1dMWWM1RDRGSUNXczYrMUJmSEhUSm1zY3l6TnZFbzRU?=
 =?utf-8?B?TWtTR1Z4MUR6OGloUXY1YXJNK1lDU1g0bURiOG9CL1lqRE1mQ0JhKzFlTkxX?=
 =?utf-8?B?ZEJURlROR0pQNU9ld3IvUlNQZHdCc0N5NmlsY0RTV29WL2YwaTlRZUpISURl?=
 =?utf-8?B?VjNNNVVlTEtOUkF4YS8yMmVIM1hmSExySmlpMU5hWGVxYUV3V0Z0RFZaVXox?=
 =?utf-8?B?QTh2ZWk1VlBlZW1pS0VIeGtwN0oxWHVJejdBZVdiajJqWWYwVmVGSThqVTQ4?=
 =?utf-8?B?eDJKcHEzV1ExZHgrY2ExV29RQmdYYUlVcE1ySkxUbFEyS1prcWY2MW1DU0xx?=
 =?utf-8?B?MVpNckJDb0ZFblk1WWUyY0dnQUl2UURxZGUrN1c5TDZjNXFKQ21pY0R0UWt2?=
 =?utf-8?B?Rk9qSkVHTHFjZm9nYVVHT0l0dzhLcGhsWTFMYlZ1dW55RDlVM1BzNXZBcmdr?=
 =?utf-8?B?cExEdHZMbExpTlZoWjRKYSt0dkpqU2pueWlVTEtOY1ZsOGcxRHd5ZzNEWkZQ?=
 =?utf-8?B?cWVJM1N2RTB3bTRtWWlHbWxQTVIvcklnRitpUk1uM2xVUkk2YlkwUDlicEk2?=
 =?utf-8?B?UUZyOXhFZVpYNnY3anJLczE5MFd2TWJiWDF2bW5sa2tCVzJ6Q3lQa0tLRy9R?=
 =?utf-8?B?RC96TFNHVGdIRnAyYjhmYmxPS0FxNzc3RkJMamVyZWp2RENXRklMNVZaZWl3?=
 =?utf-8?B?QkROWGt4YmFCRSsrYk1sR1lwRGFPL0h5K0E1dzhQalJvb05ibkhGb0pUcWoz?=
 =?utf-8?B?dXQxY2tJQTVmMEtCWng2MU9vblVzY1R3eVFsZE9ZSW5EU1laMkVXZlVpZkts?=
 =?utf-8?B?SHVBanpmaGl0NERIakZGMmVsbStnMk14WjJEZDU1RFBCMU5QeDZuUzdDM0My?=
 =?utf-8?B?NmxGRUxmSGY1VjFUa0NKbHdaK0I3Qjl4MUc5NzVkajlKTXFVUzdVUGFuMU0x?=
 =?utf-8?B?cUZQRDNJdkJxQjBGZlkyMVN6TEV6SldNcnltMkFtQlpiUHpUQ1BKbXRaTTJZ?=
 =?utf-8?B?dnBvMUZkWHNPTVBpWlcwcy9kOEJKRkpOT0ZrL1lUeTErQVBSaVRqdjFrVlBO?=
 =?utf-8?B?Zkc4SXF1Tzc0ZG1FUjlRdzN5bFBsZUxicE93T1c3TmdIcWZNZkdnMkMvZlRF?=
 =?utf-8?B?bDkwU1gxZDFjN2x0TmdVZk4yNUxzc240STNhL2IrekZQeDhUNC92TDVjbEJF?=
 =?utf-8?B?WHl0VndHdlVabHRkQXJFWXpoM3dYVTRrUVlRZFRrWTBDZkt5Q2o3Zlh6cnp1?=
 =?utf-8?B?ckRlSHczSVdIYTBwa1BCUGxPZG1mdXpnTmNGYkdQcVBOdWg1NDNvT25VRTQ0?=
 =?utf-8?B?UlFRZWQ3Ni8zK2VtOEl5ZmtDOUJJSlp6UVlxSWhKaTFMcWZVN3J0SlhZdGw2?=
 =?utf-8?B?cGx1S0lnZytPYTJCZGZjY0tYTDVTTGVQMnkyWWt1Sm1vejNKUjQ2WExpa3Uw?=
 =?utf-8?B?NGl2aWl4Y05EelpWOGhHeVdoSVBlTVo5eHJRbXMvNWZXOUVMNjFiWmsxeHly?=
 =?utf-8?B?TGpDcG1CdVA5QW1yaFhRTTNYNFpvMzZCVXBYelV5YkZma2xBQ3RINnYxYWZS?=
 =?utf-8?B?d1h1WVR6MzRMOThXYVVGN1BuVExVck9nRHU5QjJmdHcrWUJrNDJJbWtoalB2?=
 =?utf-8?B?SWpKcWZqSFFhbEVJMFI4aDRRcGUyZE80R2JLUFN1bEtSUnF5Wk8yK3VLVTNw?=
 =?utf-8?B?RTlMRUNJc0swTHZkZjlqby83d0lybUlzS1hJM2UxZG52dytyOVZwVjIzdGtS?=
 =?utf-8?B?Vkw2WjNlY0o5OHk3UXhNdHVmOGhYblI4VTVkek80UlpuQUpYb3YyUkZlNFlp?=
 =?utf-8?B?bEZVbkx6WnRmQWtSMFdqU1dYUHBxQmtsQitNQ0xoa0ltaVVtV1NnZ1p5SkRG?=
 =?utf-8?B?Uk9NZytaNXBlUUpIckU0YXhLZ1RueVg5V0NLcXhDTnhVb1YxdUFhZS8rUUpj?=
 =?utf-8?B?Z2Y3SVROcEJsS3A1SG1BUE5FRVl1WXNUS0JCYzF6bGxtNGh0UzNkenZNTHFL?=
 =?utf-8?B?OGc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c1cc4d54-c18d-45b2-604f-08de3294516e
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2025 17:49:33.7508
 (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: 0SM/74TZ5IZ0OFX27xCM3V9MQCYfz+2K5I7K4Syv3h928e7vbxYIHGUQKqRQTqC6rPhQRGfd+vw3FEyUxu0GkEaBSny4tGuZE6hMr0cbCiw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH5PR03MB7960

On 03/12/2025 5:47 pm, Hans van Kranenburg wrote:
> Hi Andrew,
>
> On 12/3/25 6:16 PM, Andrew Cooper wrote:
>> It was reported that Xen no longer builds on Debian Trixie:
> The FTBFS is on Debian *unstable/sid*.
>
> The build on Debian 13 Trixie is OK.

Ah ok.  I can tweak that.

>
>>   Assembler messages:
>>   {standard input}:474: Error: unknown or missing system register name at operand 1 -- `msr TEECR32_EL1,x0'
>>   {standard input}:480: Error: unknown or missing system register name at operand 1 -- `msr TEEHBR32_EL1,x0'
>>   {standard input}:488: Error: unknown or missing system register name at operand 2 -- `mrs x0,TEECR32_EL1'
>>   {standard input}:494: Error: unknown or missing system register name at operand 2 -- `mrs x0,TEEHBR32_EL1'
>>   make[5]: *** [Rules.mk:249: arch/arm/domain.o] Error 1
>>
>> This turns out to be an intentional change in bintuils.  ThumbEE was dropped
>> from the architecture and doesn't exist in v8 (i.e. AArch64).
>>
>> Xen supports v7+virt extentions so in principle we could #ifdef CONFIG_ARM_32
>> to keep it working, but there was apparently no use of ThumbEE outside of demo
>> code, so simply drop it.
>>
>> Reported-by: Hans van Kranenburg <hans@knorrie.org>
> Thanks!
>
> I have just applied the patch here and have now successfully built the
> Debian Xen packages using Debian unstable/sid build chroot on the arm64
> Debian VM that I have here on my work macbook.

Assuming that the maintainers are happy, can I translate this into a
Tested-by tag?

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 17:54:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 17:54:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177040.1501457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQr43-0006mi-4w; Wed, 03 Dec 2025 17:54:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177040.1501457; Wed, 03 Dec 2025 17:54:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQr43-0006mb-2R; Wed, 03 Dec 2025 17:54:55 +0000
Received: by outflank-mailman (input) for mailman id 1177040;
 Wed, 03 Dec 2025 17:54:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NLTO=6J=knorrie.org=hans@srs-se1.protection.inumbo.net>)
 id 1vQr41-0006mV-V3
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 17:54:53 +0000
Received: from albatros.knorrie.org (albatros.knorrie.org [35.156.0.23])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2aeb8e37-d071-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 18:54:51 +0100 (CET)
Received: from [IPV6:2a10:3781:4007:a::15] (unknown
 [IPv6:2a10:3781:4007:a::15])
 (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
 key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384)
 (No client certificate requested)
 by albatros.knorrie.org (Postfix) with ESMTPSA id B7569690FA7;
 Wed,  3 Dec 2025 18:54:50 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2aeb8e37-d071-11f0-980a-7dc792cee155
Message-ID: <c72ef282-2774-4405-ad62-d690229495bd@knorrie.org>
Date: Wed, 3 Dec 2025 18:54:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] ARM: Drop ThumbEE support
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <JBeulich@suse.com>,
 Maximilian Engelhardt <maxi@daemonizer.de>
References: <20251203171608.1714964-1-andrew.cooper3@citrix.com>
 <a7f28465-e068-4250-873a-42e6cce71a04@knorrie.org>
 <e5ca01e0-bcd3-4fdc-8136-8b62baa3e8c2@citrix.com>
Content-Language: en-US
From: Hans van Kranenburg <hans@knorrie.org>
In-Reply-To: <e5ca01e0-bcd3-4fdc-8136-8b62baa3e8c2@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/3/25 6:49 PM, Andrew Cooper wrote:
> On 03/12/2025 5:47 pm, Hans van Kranenburg wrote:
>> Hi Andrew,
>>
>> On 12/3/25 6:16 PM, Andrew Cooper wrote:
>>> It was reported that Xen no longer builds on Debian Trixie:
>> The FTBFS is on Debian *unstable/sid*.
>>
>> The build on Debian 13 Trixie is OK.
> 
> Ah ok.  I can tweak that.
> 
>>
>>>   Assembler messages:
>>>   {standard input}:474: Error: unknown or missing system register name at operand 1 -- `msr TEECR32_EL1,x0'
>>>   {standard input}:480: Error: unknown or missing system register name at operand 1 -- `msr TEEHBR32_EL1,x0'
>>>   {standard input}:488: Error: unknown or missing system register name at operand 2 -- `mrs x0,TEECR32_EL1'
>>>   {standard input}:494: Error: unknown or missing system register name at operand 2 -- `mrs x0,TEEHBR32_EL1'
>>>   make[5]: *** [Rules.mk:249: arch/arm/domain.o] Error 1
>>>
>>> This turns out to be an intentional change in bintuils.  ThumbEE was dropped
>>> from the architecture and doesn't exist in v8 (i.e. AArch64).
>>>
>>> Xen supports v7+virt extentions so in principle we could #ifdef CONFIG_ARM_32
>>> to keep it working, but there was apparently no use of ThumbEE outside of demo
>>> code, so simply drop it.
>>>
>>> Reported-by: Hans van Kranenburg <hans@knorrie.org>
>> Thanks!
>>
>> I have just applied the patch here and have now successfully built the
>> Debian Xen packages using Debian unstable/sid build chroot on the arm64
>> Debian VM that I have here on my work macbook.
> 
> Assuming that the maintainers are happy, can I translate this into a
> Tested-by tag?

Well, it builds, but if it behaves, I do not know, since I don't have an
easy way to boot the arm64 packages here.

So, if a Build-Tested-by also exists, that one would be fine :D

Hans


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 18:23:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 18:23:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177051.1501468 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQrVg-0002P9-Ac; Wed, 03 Dec 2025 18:23:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177051.1501468; Wed, 03 Dec 2025 18:23:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQrVg-0002P2-7D; Wed, 03 Dec 2025 18:23:28 +0000
Received: by outflank-mailman (input) for mailman id 1177051;
 Wed, 03 Dec 2025 18:23:26 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vQrVe-0002Ow-DI
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 18:23:26 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vQrVb-004xbh-2T;
 Wed, 03 Dec 2025 18:23:23 +0000
Received: from [2a00:23ee:1580:641d:ccf6:de01:f285:957c]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vQrVb-00Gcq4-00;
 Wed, 03 Dec 2025 18:23:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=UowNLDN+RQcruj2tQG2ifBBZ0VgZXhQoJXcFL7XZWrU=; b=jmhDttSIRDHlJCoWYzdxiORrMR
	qZe5WwBRHD3Do6GuFDkFWM7EoeZPlQ/EMiAUOkbaES92MNp6a1NRWsZuP1ZFI4m6ihym4WQjDZkKC
	WVQPdOxdAlpgvIDzy+aiTfSWOjIyKNk4EkPSIHZJ8onGBavOQ/cR8N+XX5OITrvHAHQo=;
Message-ID: <f081cd84-a626-4b02-8c8b-6c0c0b723b84@xen.org>
Date: Wed, 3 Dec 2025 18:23:20 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] ARM: Drop ThumbEE support
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Hans van Kranenburg <hans@knorrie.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <JBeulich@suse.com>,
 Maximilian Engelhardt <maxi@daemonizer.de>
References: <20251203171608.1714964-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Julien Grall <julien@xen.org>
In-Reply-To: <20251203171608.1714964-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Andrew,

On 03/12/2025 17:16, Andrew Cooper wrote:
> It was reported that Xen no longer builds on Debian Trixie:
> 
>    Assembler messages:
>    {standard input}:474: Error: unknown or missing system register name at operand 1 -- `msr TEECR32_EL1,x0'
>    {standard input}:480: Error: unknown or missing system register name at operand 1 -- `msr TEEHBR32_EL1,x0'
>    {standard input}:488: Error: unknown or missing system register name at operand 2 -- `mrs x0,TEECR32_EL1'
>    {standard input}:494: Error: unknown or missing system register name at operand 2 -- `mrs x0,TEEHBR32_EL1'
>    make[5]: *** [Rules.mk:249: arch/arm/domain.o] Error 1
> 
> This turns out to be an intentional change in bintuils.  ThumbEE was dropped

typo: s/binuils/binutils/

> from the architecture and doesn't exist in v8 (i.e. AArch64).
> 
> Xen supports v7+virt extentions so in principle we could #ifdef CONFIG_ARM_32

typo: s/extentions/extensions/

> to keep it working, but there was apparently no use of ThumbEE outside of demo
> code, so simply drop it.

I am in favor of dropping support for ThumbEE for guest. But I am not 
sure I understand this comment. Are you saying there are no processors 
supporting ThumbEE where Xen would run? Asking because below, you are 
removing code to context switch the ThumbEE registers. But I don't see 
any code that would ensure the registers are trapping (i.e. HSTR.TEE is 
set). So wouldn't this result to a cross-VM leak on those processors?

If we really don't want to support CPU where ThumbEE is available, then 
we should check that "cpu_has_thumbee" is 0.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 18:49:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 18:49:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177064.1501477 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQruk-0005JT-5X; Wed, 03 Dec 2025 18:49:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177064.1501477; Wed, 03 Dec 2025 18:49:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQruk-0005JM-2u; Wed, 03 Dec 2025 18:49:22 +0000
Received: by outflank-mailman (input) for mailman id 1177064;
 Wed, 03 Dec 2025 18:49:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Wh3s=6J=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vQrui-0005JG-Ux
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 18:49:20 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c380d05b-d078-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 19:49:15 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM6PR03MB5034.namprd03.prod.outlook.com (2603:10b6:5:1ec::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Wed, 3 Dec
 2025 18:49:12 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.003; Wed, 3 Dec 2025
 18:49:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c380d05b-d078-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZZ6Ikd2GTz8ioAM0QAImi3cR6Of03OhQ9zAlfl9by0o5d39atP+YwDokvl+10vmqYKgaFJ4+wKUgawmtWnec32lZEsFFcvyi+0Fzyv+TLf/HfPlhfOL4sqCYnynNqnoZNqNVejmN6d2ErrOoF2J7gPHviAqAjXIYOc006eCZ2+xV4exwM6RCcsQmrTwO6Il2UUfOd8so8iAL6izil8UbDpGrxvHyp7pPiMDnUvUoeqvaq3Z3frxM8P5ft9QxEY0MyZYoRGxC5Du858wq5QDTxDDOucd1ykqfXlYo7brUn0QlAk07H86yekqZMVpHYDzTlyqEdVRePFZdoFeTp4G9Ww==
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=HpUj48lRI1FbM4YrNv8sWLXbzKw3mYvzQFe0VxENfb4=;
 b=Vu+JVwZwU2R/FGnOEG8qzrwDKRH+2Ht7+qDyGsozEw5/N4mlbO7Bxw7F4I9PC7raLrD/UAQnx7Qu0O453LTJ4eskUuVsAzlrV42V2ydrorChOzpOKNUCaUk2qBVhTKDqhg7e8EDnpqSv4fE9vlNmKGNhnZYw9qArb+PcwCHURxovP7PBOroXC0qSxsR/mnIaGRUaZRn7DmC1YYQxcKh4I/n5YkWQhiSDxJMCiWjm5fFKv8JGNuhz55GK14/KESTpnVsBkcda3rnOAuFtSOdX2aQ7PC+faC6Qnc+z/jWGzzuZagCP2RNL9bVd2uZ8yUODXSvuA7bl319HC7T8YROZxg==
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=HpUj48lRI1FbM4YrNv8sWLXbzKw3mYvzQFe0VxENfb4=;
 b=oZJV1OSK23BrCXSSD+l4E00tCmYhH5IOfLEVABa/lBFp6fJFHEeWpyB1YeaG4kk34i9nLuOnj4BwyiEz4VvSX8L3ufFUZoBX9eEK3iKQSyOK95DCW98nz0v+E+0a/cYtxQ1LFcQ2In5KJ5e77X0PNorANaV67Uek8hEP436r9zw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <875a6a6c-f81f-449e-bd57-7e720d07e8a2@citrix.com>
Date: Wed, 3 Dec 2025 18:49:07 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Hans van Kranenburg <hans@knorrie.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <JBeulich@suse.com>,
 Maximilian Engelhardt <maxi@daemonizer.de>
Subject: Re: [PATCH] ARM: Drop ThumbEE support
To: Julien Grall <julien@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20251203171608.1714964-1-andrew.cooper3@citrix.com>
 <f081cd84-a626-4b02-8c8b-6c0c0b723b84@xen.org>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <f081cd84-a626-4b02-8c8b-6c0c0b723b84@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0240.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:350::20) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DM6PR03MB5034:EE_
X-MS-Office365-Filtering-Correlation-Id: b46a1ee4-c4a6-48f5-ba58-08de329ca600
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SXpPR2FVZ2pGQTZqak1QMHZucnlrNEpZakticno3VG44NmErVTAxQjlEcWlJ?=
 =?utf-8?B?dHVxY3JmSlo1dVh1Q0RzWnlsblhqVXY2aDBvc3RsTC9xS0dQeVhXRDdCcGlm?=
 =?utf-8?B?aU4xd1cydnIzUzUrazdZR29mclcxMWVGRWppc2dXeHVIdGxNOEQ0UTJKWlAy?=
 =?utf-8?B?MTBYQlVnazdQU2JVTnFQOHppVldMOUpNaE5uUHlTTitraVRpeE5wUjQxZmh3?=
 =?utf-8?B?Qm9GaWNMcHFLbEhGS1RTNWVEWkxuT25MYmNuUWthMHVDS1paWXJVQWFIdGpZ?=
 =?utf-8?B?WHhTUWRnanNybkxyZmo0cHd3QlJxajhEZ1EvTUdKa0wyYW5PWGFMck5yL1Aw?=
 =?utf-8?B?SFp0a2x2ZlN2enhuV0NNeU5ZZkw2K1J1WjVYSjNOYURQWkFUYWVGZDhOYzlF?=
 =?utf-8?B?V016eDNZZFVaYTlXdXAyV1hCR3I3OFJ3NmFvNHp5dGJldHZQb280V1M4Q1ZJ?=
 =?utf-8?B?NkV0Z0IzdnJOOGpBN3hGeXV6ZjNWSURTcUt6MzJtNkdYZFRFWU90VVBlRk4r?=
 =?utf-8?B?U0FsU0tCOWlpRE5ockRseDcyT2FmOUI4MGJsTThXSG1vUC92SXZtQlhjeHpF?=
 =?utf-8?B?S29jbFVjeWNLTlBkOWtyalBuNWkrV3RNTmo3cDJHYkNQelI3WUV6MEJKWFBy?=
 =?utf-8?B?ejBLSUFxeXRIWmFhd3k5NmpTMm51YlZxL0FqUXZUakdHbmNWVDEvUGZFZStE?=
 =?utf-8?B?ZFUvUDhLWUxIRFl1bXNwcmtFU2E4WGNxblppTkdtbkdRVHVBUWlBQ3F6VElV?=
 =?utf-8?B?MzZTNnNZVVZiOE5IWXNpMCsyK2JnWDY0a2swOXo2ZE81OFhlNGhwZXUzeEhv?=
 =?utf-8?B?WjkxMmo5M2dhUVlLVlFwVFEzSFlmalhBbTFEaHlKTTdhRXRwZEpCVTdWUzFa?=
 =?utf-8?B?dU9jYmM2NzVVZjRyT1IxUHdCd283MmJHNHB1azZ4enZBdzkxZVM1MEZJOS9j?=
 =?utf-8?B?aVhIQ0YvREJIdHJLQWRrU0lnRmdRK3F3anFxaDB5OW1pdzZEQ3NBZ2Irc2I1?=
 =?utf-8?B?WFhVREtmNmt0SXVvaTFOWVZ3QUZhSjdrYzBJTThXWVBoYitBNzIxTDFkMHA5?=
 =?utf-8?B?SlFTVlhqZGRoYWxGNG03OU5RNmF5Z1orTmFYKzh4a2h6UGFvNzhYZCtMN29O?=
 =?utf-8?B?a013VEN5R1dzMzZ1eHlBWEV2REw3R0lxOFZjRTJ5ZFhGWWtpWmNLanBWUHhD?=
 =?utf-8?B?VTNML0puOFBmZ0FWTDhtRml3a3hkRkxmbFozZWozOHhCRlQ5LzRQcGxpUWVB?=
 =?utf-8?B?dnplRjlKaU5NQ0VxYXE0MDRKTU1KYndVWVJmSmEzdkVtVGloL3BubS9JTmhF?=
 =?utf-8?B?WVhmN1hlVHRURTN4Y0twU3VSU1p6bHphRWZuVWg5eDdJdE53NnJ3eXpLQnh5?=
 =?utf-8?B?VHVDR2dmTzM2TGlTdVBlb3lON3JreEJGcDViVlBvYkVFUTJ1U2tlTjVBUG0r?=
 =?utf-8?B?K0hRTkRsbXZ2U05nK1BCbFBlQ2ptSVBYZVpmQ0MxSWtvZEFRRVRiMzI5bnUw?=
 =?utf-8?B?djVBNlYyK2lFQ1RXcG51VzNhNE9uZ0d4WjE0bHpBYTl4QTFiSUdZL2pDT2dr?=
 =?utf-8?B?ZGdyaDJlQ2pUOTVkcm1XSk9YYUFUTUlGZk01aWU2Yi8rM2lob0FrYnFXY044?=
 =?utf-8?B?WlhCOExBUWRhcmNpTzJZZFVXU2t4cnVNSzh5Ly9Zb2lvTEp5b3RSMWNoMVpi?=
 =?utf-8?B?ZldHM0kvRWZNaTBZYTlHNlBYSUwxMStURnNEYVlYYkFsbEtxcmxPTlBHcWlt?=
 =?utf-8?B?VnZTZzhvTVRkYmR5c25ZcVhQTThaSjlSOWtXdXoybkltSHZGNUNOUGNuSUtj?=
 =?utf-8?B?NjZlaVZkSTJkZmpUb2FwTHRHWXg0bmtKNmI4T3hxejhUWTVGckNMWmJLMUIz?=
 =?utf-8?B?RnN5OGNvT1A4YS9rZ3F0RkRoVFA2YkozYURRbmEweTVuNXN3a0N3b0hrNkRY?=
 =?utf-8?Q?6xF2ZmJ8/Tzs/UHgmb9cq9nn7JiQF549?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?L0pYbGxERGdLUlNqY1g3bXoyS04xRkVEVUVsNlpUb3g3OUZZTlM4eDVGemZW?=
 =?utf-8?B?MnZIMnN4MGlibnJTTkYrUEpka2RzZHYrUHhySjdwTWJnbEVEekNTTVRrVmpC?=
 =?utf-8?B?OTlkUnJYTjJwQTZQejd3UWJSeTh2WERtclptY2JJK010LzR2WUNJQXFUaHVU?=
 =?utf-8?B?NEtwVG9BMExtbXBSSXJUNDFuOWppOWs4NG9XbWltSElhTDh4MGlzMmp4VHl3?=
 =?utf-8?B?MXkvSXRBSExUN0RaRnlTUVQxcnc1YXVOUGdwUjc4UENxdThQN2tqRTFrNnE0?=
 =?utf-8?B?NFNzcVQ2dURjQjl1Y2hrT0RBN2l5c3JDZ3pBSS9oUFRNQmE5ZVBkQVNGcFg3?=
 =?utf-8?B?REJ2SEVsT3JlcUN4VzhEeHFWbU03MmtTOWwrbC9admVROE9oZWRKL1h2VTFv?=
 =?utf-8?B?MHdZU2RJd3JzM3hGRjdDd08vaTlNbmYxcHlqbkZCa21ZenBNSWJEOWQyN0kx?=
 =?utf-8?B?M24xNXNuczFkRnNkMGtVL0pwZUtqdXArTHBQY3g0STZvVGlJMU9hK1UvdDdK?=
 =?utf-8?B?eVNDWDNaVDNzUjMzQ1VWNERhNlNPZGZYWXB2SHJlWldJSWZ4NlBVcFZ5dWV5?=
 =?utf-8?B?Qms3NWFoakp2R0VpbXB4anc1ajFwczFsdktjaUFBa1NwYktuaU9tc0tpaFFj?=
 =?utf-8?B?QUtOYjNZdVlCYkNwdDBMdXZ5Uzc4ZnlKU0NnMnRMb0lTd2gzZmk5TGdqUjRK?=
 =?utf-8?B?QkxlUUZHb1FtNlhBODdISlVQWTBGbFZXMHdUd1R3UCszZjZqbmF5alhyRlBC?=
 =?utf-8?B?SnVPdCtVSXgrbG9mUGhlZjhMT2NvUjJmbllZUHp5U1pZZjJkMEdnd0NVclZW?=
 =?utf-8?B?bjY1dUhBbTVSZFZjc0hWeGVtUEtCYUNISmtKMUVZY3hBUVdGV0loMzdYSC81?=
 =?utf-8?B?aHN6Q1ZhaTkxd0RsMkhCeFBSU1FJVkNWVTJVNjRoMUIweStJVFR0M3NQb2pu?=
 =?utf-8?B?V2plRmZJK3RSUmxXSDRIdWQrM0RyUjVFRnduQkhxQlJnTkZ2SW5yODcyTFA3?=
 =?utf-8?B?ZXpQV2RhNkdWRkM3Tk5NbDlwYXJvd3dsNy95dXhvcEw0UUJZaHAxN1NYL0pE?=
 =?utf-8?B?WjQxMjNVN2s3YVR6UEdVSjU2MWh0UzI5MVhESlV2K3c3a21Id3YxRnlMUU53?=
 =?utf-8?B?R0RvZTQrY2YyTGVjdmsyRXRpUnE5UmZrRFhDQkZiRHkzY1ZOSVdITjZzSWw1?=
 =?utf-8?B?UXJjcWdiZ1hTQzMvQzduQnFoNmVjdmUwc1c3bGk5ZW4yT2xhWld6TG5oTEZE?=
 =?utf-8?B?d1RaV1pzbUhZNmxaQnllRW91V3M0b3VBZXpWenpGTEs3WW04K0paMVhvaWhB?=
 =?utf-8?B?dnkzeXVTalNmVU5mVkpYSFhsMisxdFJIQmFLZ1dMN0xNM21kUTl4SEN3TlYz?=
 =?utf-8?B?WFcvdk82V091d0E2enhsa1JkTkVWKzdXZkhhSENsNUlPNW1LeHA4Q2hPVkJG?=
 =?utf-8?B?dE1ZaE5MUklCemsyUTIzRE9tajZWT2Z0TTBvWkk1c1NsUVc2TytFdmhLQi9h?=
 =?utf-8?B?U1ZQUlF1WEcwbS80ZUphUFVTdFhSOUZ4U3Jwd2thTFp5ODVodnNsc2FYdU9Y?=
 =?utf-8?B?T2UwbmphY0FKZTF1RE96cEF1VnE2SXN4ZHl6YnIrSHA4ZzlKTEhMVW1jNXBC?=
 =?utf-8?B?Wk9mSzV3K2VFSVhwYWRoSUdzL3FCbC9PdG1LS2NuZlVDYzlGVyt2U0krT3lR?=
 =?utf-8?B?Y3kvdVc2TWRCREY5QzZ2UjgrUzZzczZnbG0yOElwZ0x0bW5TQ2I4dkc3c2Rh?=
 =?utf-8?B?bTZsNUVxYXZLOGZYTUdXNnVSbytLMEN6bkJMOHlCZ1dsUUo5Q3ZyVGt3a2dG?=
 =?utf-8?B?djlWM0V4SEsxTGQ2UVorTG1YRnp2aXZUTDdKUE44bVAyMEU5VFpvNE1pbHhs?=
 =?utf-8?B?WVVSUzJ3cldEc3lJd3dBVzcwSDlxNnlKOFVndW5sSjRkTTBhZHAzOHhwOEUx?=
 =?utf-8?B?WGZqTTNXbUpWZWprYUcveFh6MmovZ2hMM3BZaXBDamZZaVg3NUJWNTFEa1JT?=
 =?utf-8?B?ZHdOeE1LOCtJQUxVSzc0VHhhcGM5Ry94S1NGVHhJNkM3M2Z4dEYzS0kvdWZD?=
 =?utf-8?B?OHZKMVZFd05lakQ3MCsvVTNSbVkyWWNaeXpsRXRYbVc4bkoyV2hvQXNQNXdt?=
 =?utf-8?B?N3p4UkJpVW1rUjRRaGhvWlhuVmN5S2lsVG55dWw2ZUdTcHQxblVEN2ZGSExQ?=
 =?utf-8?B?bGc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b46a1ee4-c4a6-48f5-ba58-08de329ca600
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2025 18:49:11.6192
 (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: 0FGOsr+grLn9VeyF+FZK1u3rWVGwLRl8iOKqDZPZx73Ue6cgtHXxfDPh2/ItutoWyoI05mogcCZRZEJuvOzmyKdB9Hf83vvuKsfQACqO6EY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5034

On 03/12/2025 6:23 pm, Julien Grall wrote:
> Hi Andrew,
>
> On 03/12/2025 17:16, Andrew Cooper wrote:
>> to keep it working, but there was apparently no use of ThumbEE
>> outside of demo
>> code, so simply drop it.
>
> I am in favor of dropping support for ThumbEE for guest. But I am not
> sure I understand this comment.

There's no production use of ThumbEE known to ARM.

> Are you saying there are no processors supporting ThumbEE where Xen
> would run? Asking because below, you are removing code to context
> switch the ThumbEE registers. But I don't see any code that would
> ensure the registers are trapping (i.e. HSTR.TEE is set). So wouldn't
> this result to a cross-VM leak on those processors?
>
> If we really don't want to support CPU where ThumbEE is available,
> then we should check that "cpu_has_thumbee" is 0.

The registers exist in ARM v7 only.  They do not exist in ARM v8.

I suppose yes this change would result in a cross-VM leak on hardware
supporting ThumbEE.

Can HSTR.TTEE be set unilaterally, or does it need gating on
cpu_has_thumbee?

Is setting HSTR.TTEE sufficient to cause an undefined instruction
exception to be thrown back at a guest which goes poking?  (I guess this
is really "will the default do the right thing")

I'll freely admit that I'm out of my depth here, but the build failure
does need fixing.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 18:58:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 18:58:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177080.1501498 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQs3a-0007II-9h; Wed, 03 Dec 2025 18:58:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177080.1501498; Wed, 03 Dec 2025 18:58:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQs3a-0007IB-6q; Wed, 03 Dec 2025 18:58:30 +0000
Received: by outflank-mailman (input) for mailman id 1177080;
 Wed, 03 Dec 2025 18:58:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WC6h=6J=epam.com=Oleksandr_Tyshchenko@srs-se1.protection.inumbo.net>)
 id 1vQs3Z-0007Hi-Ek
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 18:58:29 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 09f0caf9-d07a-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 19:58:22 +0100 (CET)
Received: from DB7PR03MB3577.eurprd03.prod.outlook.com (2603:10a6:5:3::28) by
 GV2PR03MB9353.eurprd03.prod.outlook.com (2603:10a6:150:d3::20) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.17; Wed, 3 Dec 2025 18:58:19 +0000
Received: from DB7PR03MB3577.eurprd03.prod.outlook.com
 ([fe80::49f8:7615:b631:1a66]) by DB7PR03MB3577.eurprd03.prod.outlook.com
 ([fe80::49f8:7615:b631:1a66%5]) with mapi id 15.20.9388.003; Wed, 3 Dec 2025
 18:58:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 09f0caf9-d07a-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zOf1K2tpUg7qRQ/AqcePv24loHKDknrIZjAn5E/ulgbQhAul9WikdA3UPUMKo5BMGDCnWNMgS08ZxFFRRBUGSY2yDeu/3fpC05DzyPUnZmFTysU2R+lrMzeTFzv8Zkf8M4jUH3grhmA5vqIcX0/HLVts4QJl6Q2N0nDEjou6WpJ/78WaXo4hAl2JsVapGUgNpR+PJ9PPWgWbZQnoVdbVp8T10KC7Ny2NWMx+cDSgFNH4zRCAgpvMe3MGf9DDb0WclvhD+QDA2ZWlrwh0DH66YruLSsTUcAFAytLM0SWHfFVpSNpufbjra5S+Cg7jfreWpjEq6FHpFMOvn61qT1JqtQ==
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=x+AKNCSVBWI3D7Q1DukJIYv1PltJZB/5iZ39snSEJi0=;
 b=yCCtdfC3KTvid+3J6v0U3v+ZAAEP18Jh9x8u0605u7T39NAoL62ZmspJvWEym0oGcaeXqlYPvuMpMjeU6XELQAIWQZny83RVNpuVLtnBsa4DvFBBPDicz6LsKfQ3/9N4DZ19DOZE6suXgaklU+hICO/B6ME7KN3pwOh0sWazOtqNBIy35f6a5n4ZrliPkhGKT/82r7KYZ9rTD8jc68eTBIaI7snCO3MljizghmeCvT2CC+zBr4Tf/8c4j4qDTo040+TET4XlggQrrpdwKhfEj/2ThVaUMfUUlXHFYBpdQEk1bQgFfi420Yyk3RUOR73NnrMdLNDga5iS8a83qw+RMw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=x+AKNCSVBWI3D7Q1DukJIYv1PltJZB/5iZ39snSEJi0=;
 b=JuO77R1ocVC1lyNz4F75dk5wYzdDIHgydplqWvdztQEoaLiTYLsYkOv82Ixd0VpbrN51O6ifvLZpR6DOymeWeOiZQZ/qt7yvsNUzGObTvacQSKfkPCPsAqhB28+b52h5sFWepr8l2r7nBu5Z78HiUUISKi7XARMmnGSGFHF4xXpJk7jCaV/TZ9ZmpyxIpsmgCTnf9A4EkmNS8lz+DTGXLNDYHeSDdJpKoUbqyV2OLDM6wJNwR/JyCmIvRaRrGmxtZYgzTSKtcy/KlJdbObjtvg0PcMDDGL8rJeOnjKg4KWhu4PN60e+LPy51IMHwSMsbTbcPPCbTG5AwhMUstyUsEQ==
From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>
Subject: [PATCH V2] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
Thread-Topic: [PATCH V2] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
Thread-Index: AQHcZIbKZWHMCLfhnk2g+3dibmJCCQ==
Date: Wed, 3 Dec 2025 18:58:19 +0000
Message-ID: <20251203185817.3722903-1-oleksandr_tyshchenko@epam.com>
Accept-Language: en-US, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB7PR03MB3577:EE_|GV2PR03MB9353:EE_
x-ms-office365-filtering-correlation-id: 03e731b1-eb34-48b1-3850-08de329dec9f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|42112799006|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?AEiUNSmw5NOrfH5uT3D2xLEXpj3odIfJ7tSHDxR8Y1Jn2QDYLxZ5DIZEkZ?=
 =?iso-8859-1?Q?WT/d3DkCFqwGo93P+wcumhbS780HNTzDk7EjvW9ZX6Hsurh6dOIiTc44Fq?=
 =?iso-8859-1?Q?CewMvTeLZ9kQkpbzA3O78daID6EG5zujOOzVd/B2xP7Ndj65TMuRA2Gtbg?=
 =?iso-8859-1?Q?onkxMzhJ2t7wi/Ompw1Gmi+MfxkgAZC+fzwwsC38Px4y5TieK8Qr9NKfus?=
 =?iso-8859-1?Q?Iztxprwy83jnykM/O2cFUh3+Dwkkfr3EblJUzEx0UEOXhAu6XUmnNiC5c4?=
 =?iso-8859-1?Q?malQa95BQgiP2pIHiJMZaC7XjJGDCwwU3CYA+Zi6czLqubaIgX895dsZd5?=
 =?iso-8859-1?Q?zTEUYyayeQOqCQSBRhtHNxcVFlAO7tQ5r9e6qO0JRNFPIsbRxf+eGlQXDE?=
 =?iso-8859-1?Q?7dDBdvrDqnOZlaMjuNq5nR3gKM46o4BM9b3oYnHpIcB/GMyHHLGSLrWapi?=
 =?iso-8859-1?Q?sFsOJJdarFxjun6uPzAcR/by/e0XmJHwgSBkG/rGvCh9uSvPTl5X/VzHR7?=
 =?iso-8859-1?Q?PQwsRiZQkvRNO6Jyy5ZtFCmijr29NVvUzs9kgirsKkubBkfG3LsJVjBM2D?=
 =?iso-8859-1?Q?mGfa6p3YgtE4zv59Og0RQvFhM8QEQhSJV7B8Wk2gs8avhsnkhuftiKxa8w?=
 =?iso-8859-1?Q?tk71Q4J1GMCCubN6+ey2Ciq9cGqI7an7xdIs/EgShwboUtL2oFmeOtutIi?=
 =?iso-8859-1?Q?Pm7q8t2ZQBB+PkFK9aW+1hyzEFztSiPUm82hEnRRCrpXjhlhaAnaJ9EztI?=
 =?iso-8859-1?Q?rnfFC4FQKa8Su9yFU7S0xrzw/GyCnzE623UZNrdWh3hKo1oQ3tKUj0gTa7?=
 =?iso-8859-1?Q?/dwOOqXaQ1KzK0ZyepUnssxL3LmUL4SBYVynouym91C9LC9+vDpRvjy9Xo?=
 =?iso-8859-1?Q?v5w+9D8qbKrCJ5nIbVTh5JCA2syl4jGrqf6xVo1n7rcowbqM4BliulObuF?=
 =?iso-8859-1?Q?yomwRTEU19buuMgS6FuOPVZjl6+9/TnO5L+UgdsQhr0l0xdHY8gOTmEN8O?=
 =?iso-8859-1?Q?uBfy+KplAhh/wnHyAcb6ivbpcXgER+bmOj+hsLLzyXXfD0uybxIKuIJlZV?=
 =?iso-8859-1?Q?MHFMvQWntMHk8LmslZ/3plHqdJYT7ujL/ZOCTnW/H0SSeC13MuGC5U7B0F?=
 =?iso-8859-1?Q?VNNDgfts4d7ueHse/ltSM819tlpDsSe5UsBmLP6xcobGKitg5pesC5mBhX?=
 =?iso-8859-1?Q?6S1cvRsoMc9IEXzLrhnFfHUcqNKH1BBf74eqOMFC3c7gJlg7YNA9pnBtZA?=
 =?iso-8859-1?Q?WLgt7EpoZbhE+MRYb/v9nbZbAmCT6dm5B4jpdGnyYhMnYgyYnLJj3jl8D3?=
 =?iso-8859-1?Q?VjhHziVpSYGremIue5zJXKX9+P9RpqO5Vmx27QkoouSYQ1mluB49z4cbTK?=
 =?iso-8859-1?Q?UcgPFHJA29puF1MSc/2r4xFOJJePrM5hb3i2jhXRqhrnWegJkw++Zkon/u?=
 =?iso-8859-1?Q?V27rSI2x4rNQQQ/5qMi814eQRMIF2xpAeRm0MD+VBxhKuhFzGzf6lHdvcM?=
 =?iso-8859-1?Q?SVSB21692G9c/XtseSHYcB/s4c89i3Vti0BU8siY9odw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR03MB3577.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(42112799006)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?RKy3mmS/chYFQ6TkcbIaO4OQlyaw31PKMUQrF6/DvB0jxO2LXcWCGL2piY?=
 =?iso-8859-1?Q?L9GVThjxfv9I9vhbSqOtCen9YRV/gtzLDFboXcGFGo87RectQCUxRJGeIY?=
 =?iso-8859-1?Q?isT6xFoqkkyYfIIS0KS9xPJpC6Tw714IdODHipOFWxad+R63NsV+8zAUuz?=
 =?iso-8859-1?Q?oUWdhYx6uSITGp5PSlkB36U4U8z0TrQdIOkIFeTZpLu5sBEyjxXTMD9m56?=
 =?iso-8859-1?Q?KQjdITkUsOjp/MZPonRgdlenkN4WimrjTeOxebyTyLE4rGqRas57jw8O2v?=
 =?iso-8859-1?Q?qZwH0c1IA/q3ehapFcKtOM97pFG0wn/6vlmNpWD5nxAAplI6J0OLHktQtq?=
 =?iso-8859-1?Q?B1FOKI7SP48CYoACFKDMijcaBxgMAmYwC/09Gl4m4KGoOE6kAkS1EPXoO2?=
 =?iso-8859-1?Q?wa25Jr8ND9iEhVmw5Ovch7tcKR2+Bpt/0L4V404W0s90fXv02SD+0hbDQT?=
 =?iso-8859-1?Q?nXf/IaCBK2r05zTBsgnJ0Qzio2WI8IZtYT9jpJuXNzilKSIL64yKj3m8tF?=
 =?iso-8859-1?Q?vCLBIfD/kU3BtEg5jp0MRlGYeVSUATtT20Njp0zKJ77Xyz29STxoXA8YGR?=
 =?iso-8859-1?Q?efm5MuaztkCs3JhztgqY0f0OOmjIR8PlwnRbRvPWxiZC+C1Y23K2TzHchl?=
 =?iso-8859-1?Q?8IImzrFikAycex/vBabq+hrEl5ihBuamhI74VsGdK0V/gRQl7XmE4syIrN?=
 =?iso-8859-1?Q?rV0u9fLAvKd1qUBNc6iskyuLK4vOfsIeixypA6supAy79ZyG+08C5L/bi1?=
 =?iso-8859-1?Q?MEEJ9pIBZDLl7FTMRb5VLi36QUwPmqT26o0360+zSzSyVWuZRQSCUSAQTv?=
 =?iso-8859-1?Q?B8zOb2zDARsZzLlZ2FJJUrf+E7F5fAATL/ewhZeK5Un6uiJMod4KAjZYLG?=
 =?iso-8859-1?Q?4Rtmo+wuXrxK1m7ZaJN7EtHjXOFpMUf9+fgExz723iFaxEMvvpUT8wRNP4?=
 =?iso-8859-1?Q?SImG5P5SQ6t8t6Dv12NFoEXa4Q8lpOEk1QaXdke1bzT4eBncuSD/odW/IH?=
 =?iso-8859-1?Q?nHLTZ4XhCPOcT1rWz9+HRl6fh4cmqjrDzZ6zVUmYF9g8DvZ9TnG0f2nMio?=
 =?iso-8859-1?Q?/ME11muwaB6gUS5Y8yo/4+tm6s3I+RQn5NXo5uw6dhP4Feu0b8dcGtehFP?=
 =?iso-8859-1?Q?gWkN/10Tq6aD3cWAi2DTougKir7N9+CXfBPVu9Vwq51KFhxbYGahnSWXdF?=
 =?iso-8859-1?Q?q2Uig+gflCNv2NLgmG0FUaWnjzo40Q6pEuVMUk84o7kxKhwrjy1ur+MFIH?=
 =?iso-8859-1?Q?B5yWtKwTRk8KEpCshSMQPlujq1QTBzSXkUoBAk6EQmlsoQ+3N/xl/zJOEf?=
 =?iso-8859-1?Q?fKdUdv8bm4AZCD9q7aoWSQRPxes0VuiybUeFlKASiw40opqOPEwtYwXXoV?=
 =?iso-8859-1?Q?/Ir6Wmb6RsD8GJvueHiTVw7s41RNFkPquvspvMLtKTixF8Wg99zsDz1t4d?=
 =?iso-8859-1?Q?eQdCiXjLRC5ovDATQ9EZldJhoc79mVvXqxZMaV5YHZWDQO17gJYWu0uyy0?=
 =?iso-8859-1?Q?EG3SpT8cwh4sY6KA0Ph/uwkRVhXwb1sSBnz8FSPJTFE0S5eS0jbZSHTG7g?=
 =?iso-8859-1?Q?zLXorBpAvKs9/knOsrFU1UHH5qgjY3+BFtO1yJjxzcMp2+EWEUsxW2OdAw?=
 =?iso-8859-1?Q?dJwd4VAevyRgYS7DMvDLll5kpLAIMqieiH0QTQ1pzg9ZPSplA1trrLRbxt?=
 =?iso-8859-1?Q?6yjIiOT4pZki1bPbpFU=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB3577.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 03e731b1-eb34-48b1-3850-08de329dec9f
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Dec 2025 18:58:19.4228
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Awu9Yx+G2dkipPlp6EzNz1wQkaJMyKB46/zYEqiUZemNmUc+ScECLOVkRt9iOX0bX6DJgzYz7Mb6aQ87hw6ItXA34lD1MRPE2fwUece+c88=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR03MB9353

Creating a dom0less guest with a high vCPU count (e.g., >32) fails
because the fixed 4KiB device tree buffer (DOMU_DTB_SIZE) overflows
during creation.

The FDT nodes for each vCPU are the primary consumer of space,
and the previous fixed-size buffer was insufficient.

This patch replaces the fixed size with a formula that calculates
the required buffer size based on a fixed baseline plus a scalable
portion for each potential vCPU up to the MAX_VIRT_CPUS limit.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
V1: https://patchew.org/Xen/20251202193246.3357821-1-oleksandr._5Ftyshchenk=
o@epam.com/

  V2:
   - update commit subj/desc
   - use a formula that accounts MAX_VIRT_CPUS
   - add BUILD_BUG_ON
---
---
 xen/common/device-tree/dom0less-build.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tr=
ee/dom0less-build.c
index 3f5b987ed8..38a5830813 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -461,15 +461,25 @@ static int __init domain_handle_dtb_boot_module(struc=
t domain *d,
=20
 /*
  * The max size for DT is 2MB. However, the generated DT is small (not inc=
luding
- * domU passthrough DT nodes whose size we account separately), 4KB are en=
ough
- * for now, but we might have to increase it in the future.
+ * domU passthrough DT nodes whose size we account separately). The size i=
s
+ * calculated from a fixed baseline plus a scalable portion for each poten=
tial
+ * vCPU node up to the system limit (MAX_VIRT_CPUS), as the vCPU nodes are
+ * the primary consumer of space.
+ *
+ * The baseline of 2KiB is a safe buffer for all non-vCPU FDT content.
+ * Empirical testing with the maximum number of other device tree nodes sh=
ows
+ * a final compacted base size of ~1.5KiB. The 128 bytes per vCPU is deriv=
ed
+ * from a worst-case analysis of the FDT construction-time size for a sing=
le
+ * vCPU node.
  */
-#define DOMU_DTB_SIZE 4096
+#define DOMU_DTB_SIZE (2048 + (MAX_VIRT_CPUS * 128))
 static int __init prepare_dtb_domU(struct domain *d, struct kernel_info *k=
info)
 {
     int addrcells, sizecells;
     int ret, fdt_size =3D DOMU_DTB_SIZE;
=20
+    BUILD_BUG_ON(DOMU_DTB_SIZE > SZ_2M);
+
     kinfo->phandle_intc =3D GUEST_PHANDLE_GIC;
=20
 #ifdef CONFIG_GRANT_TABLE
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 18:58:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 18:58:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177079.1501487 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQs3R-00072s-2t; Wed, 03 Dec 2025 18:58:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177079.1501487; Wed, 03 Dec 2025 18:58:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQs3R-00072l-0J; Wed, 03 Dec 2025 18:58:21 +0000
Received: by outflank-mailman (input) for mailman id 1177079;
 Wed, 03 Dec 2025 18:58:20 +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
 <SRS0=Wh3s=6J=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vQs3P-00072f-Vo
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 18:58:20 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 074d80f0-d07a-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 19:58:18 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM6PR03MB5034.namprd03.prod.outlook.com (2603:10b6:5:1ec::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Wed, 3 Dec
 2025 18:58:15 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.003; Wed, 3 Dec 2025
 18:58:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 074d80f0-d07a-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IR1NpYpESKgEn+CKItNANiVepkD/uXHty3IsHmWmEmGIcqwcuVXzKVox2u3eUnsTS6WLS2xLiLfVxQ6z9K66rGFGkRD9sP/SfYexDRKkQffZ4cqqQLgT49OE6G12b/Rn6WAUV+D4iydtwL9gnORiA0YOPyGIyBWTgkOnin2aWqlFoKZhB64W5BAE+5CMoVLI8qnlEUL07MSamnsjfpnuCvpt+C3on0t4pLKm3yHMUEcvgBqreNsHY6JRG0UQCFVgq70EujMxXjmcRJVaFvXqO7vXs9sTWgufSB34UQEKf/8s4vgHhtI/uUhzEVQQU+nZQmO4Bbr4iBYrP95FGybWvg==
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=+VOw19oPxPeUS0+sH/lI69fnuoxBZpca3sCNMKXEH5U=;
 b=OA4LIV5fEH62Xo+mUHrO4KCK1LSuWjgdXEx3HYjUtINH71qwoODm/QXPrQkK5sJfSShA/+saJCzpR972dtRd2Iq0vJ5PeOVL+d4VwltUVyMx7B9hpnPFReE/sYUfyXl9ksALYJlFNbT5vrr/yO3kaFrDaZrm3tJm9hJKC04hvZ91Um1JqBmgwezVlVJZiIOM+WI+KiWocscTsQP1sHyUGUCpC/M+qhcg3Bni+ntGbm4BretNhEHGbf/P6CJzHpI3OkE3FxYxkIrMnGiiBBuF9GtF7W1DXH4sWqQmc6oDFqYSj+yTvVvbZV9TJWFuiWQve/ogJeQMU4wbiTwKKVEENg==
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=+VOw19oPxPeUS0+sH/lI69fnuoxBZpca3sCNMKXEH5U=;
 b=w3X5luYgIsv4wCVwA9khdi4cHy3Uuyxe9p1qbgKwCo2jT+oYaFGhu2S4HA+qfPPyNk5HKVmSBb5M2CGhYMqZsPoQwfpxqoyen4piruA4XnHSKtZ/bpUY2wVsKtnOLGxUNdc68k87sK9LvbCCeUu+sDTIgRFV4+33MRqAxgCyW9E=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <9a7c8d3c-222c-46f2-ba88-cfb2b59599cc@citrix.com>
Date: Wed, 3 Dec 2025 18:58:11 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Hans van Kranenburg <hans@knorrie.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <JBeulich@suse.com>,
 Maximilian Engelhardt <maxi@daemonizer.de>
Subject: Re: [PATCH] ARM: Drop ThumbEE support
To: Julien Grall <julien@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20251203171608.1714964-1-andrew.cooper3@citrix.com>
 <f081cd84-a626-4b02-8c8b-6c0c0b723b84@xen.org>
 <875a6a6c-f81f-449e-bd57-7e720d07e8a2@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <875a6a6c-f81f-449e-bd57-7e720d07e8a2@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0541.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:319::12) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DM6PR03MB5034:EE_
X-MS-Office365-Filtering-Correlation-Id: 29b98d4b-bf13-46e2-fdfb-08de329de9fe
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RDVwQmo2dEpFTkw0MllHOFo4clZ2SW5aWUdWM0hEZURCQzBtQ3ZqWEE2OXhr?=
 =?utf-8?B?RnBTYXF0SDczQ3hzam10dy84OVZzU1lTQmVUQVVNSGFLT2hOUnBzK1VsSWVr?=
 =?utf-8?B?ZFhYYnpnL3RMdVhUbWt5QmRTUXFSR1dwaEEyZEhqR3RMWDlON1c5cmRGenVQ?=
 =?utf-8?B?eDUyUmM1QjF0WUk4dG5OYXJnQkxiWGVmS3FmTGk4VklmZUhvd3Q0c2xsUEoy?=
 =?utf-8?B?TFhDbXBmREMxZVA3anEybklMcjFyaFlJa1hVNnEyQ09RbENrNWlUUExES2k2?=
 =?utf-8?B?SXhyak8wbDJPRFB4a0FsWllHY1VqcmxwOEZFNW5aRjd5YlFPYTNNLzNadGtw?=
 =?utf-8?B?QWFOM282ckh5dTJxZDVDWklxeHRtdXR5YUxsc0ZVZnNEZ2E1WGxiMkh5VjY5?=
 =?utf-8?B?UUdyWkpKek9FS0VMSnBJYnNZRWZYeE1oREpYdzBhTzVCTndGLzVKa0hWR3JV?=
 =?utf-8?B?K0RnSHllNFhBamVCZDd6M1VQV1VOOFBLN3kxemFHb2FyZ0M4b3BvU3pvRGpo?=
 =?utf-8?B?RzhScVRia21JdUlPZS8xaDZmUXU3L2lrTTdRTGdOQ1hhc2JDNmg3SDlNRFVZ?=
 =?utf-8?B?Wkx2K3loZm51UEZvN0xDNVlvalNRTDhrZkpsbk1KeWRiQW1GanAyQkVzNURG?=
 =?utf-8?B?Z0Q0Vm1lYmxKUlh5ZkFnUGhGK0xRR2NYK0hHSmxSQzB1L3FpV2kzTHdicndK?=
 =?utf-8?B?UEJyS21pM0NXc0ljV24zbVJoMHZKN0hHVTdmRHc3b1ZwYmt4L1JWUHBhWmcw?=
 =?utf-8?B?c0JkUXkrV1loZTJ4Vm9qWWJiS3h3ZXBKYmc0Sm5XRVU1TFgzSkhiSUVWZ214?=
 =?utf-8?B?eDB0UUhPcHRjS2tKWk1TT2c4N3dqSzlHdmZHVG1qb01PMjUyajRUODhLazNU?=
 =?utf-8?B?LzROdTJIK3hrc1grUmRFTWQvWVdIMzFqbjhsNXBsYk5NMkJFMWMreEg4dHBM?=
 =?utf-8?B?SXYva2xVTzRyOFFNYXpiWnZ4cFFDZ0ZFc3U1ZkFENWtpSHIrbVpJMVh0a251?=
 =?utf-8?B?T0RmempkK3pEVmpNQkxZVHNEQ2xiTGs1a1NiTWV2eUR1YUtFRWcxUVZYVDFy?=
 =?utf-8?B?MUhsNHlEUkhxWDA4bUgrMHFNbW1jaVpPTDQzYjFsSm1MNXV6VTl0c0NaVXhp?=
 =?utf-8?B?eXFnN1lQY1RRZUNQMEhoQTJTS0MwandyVFpzSVNEWHZjelAxYmtreThUQjFC?=
 =?utf-8?B?UkIrSmVSc1pQZDVlRS9CSlUxbHBNbGFydHB5bFlBaTkxS2l0Wkp0dkVDczFL?=
 =?utf-8?B?MEVhSEV0WE1TQ0ZRREsxSDlIbml3aDBvempEbTRWMGxIU2R1ekN4Q05XOVZv?=
 =?utf-8?B?V0t4S2k0KzFpdkwveXR4MUZIWXdiNWNtRWFxejNJSEFYOU5qUTBiTURYamww?=
 =?utf-8?B?RStRTGt6eStuS0VEZEFIYVZ5Y1g4TU9WNmlDdUErNjdaZm40YzFWZ05sK09J?=
 =?utf-8?B?cVBEZXFlL2xabU5aRVd2ZnUrNVltUnI0KzBLajQ2aGF3d2tGUVJCSjJLa0F1?=
 =?utf-8?B?WHVKY3hvQ01DOW9xTXg2azZzM3BEci9LT1phT2xqb2RCK01hODlYT1lHRGY1?=
 =?utf-8?B?MTExS1FaOThGMVhYT3RJSWh6TVFTaTQ0eFZRbTRJK3FFdy82TXVwSlptRHMx?=
 =?utf-8?B?RGlyM08wdWxnVWhBMjcvaEFaa0tLSStlTmZKaXpvRWQweXRMcVZLS2RZbjJv?=
 =?utf-8?B?cTdCR1NzKzdCMGFSUFJLaEp6cUwvb3NPZXlwMzFZSTdUUXVLbDB0VEV5T1I5?=
 =?utf-8?B?ZGxXcTh0YjAwd3JzS2lON04wenRweGVuSEJ1S1BBb20zN05jbW5UbXdzVVRM?=
 =?utf-8?B?Y3F1WUZuV3NGUUNOOTQ1aUdMUHYvUXJNc2hNUXFyWFl5MEYvMWRvdmk4UGxS?=
 =?utf-8?B?NkpTaG9zSjNUaXVEZjU2MjFiOW1HWkFvQzBkcmNycDVYdDVud1BCQnhvQndB?=
 =?utf-8?Q?CRrCoZrp3vt1JNjk2MxLoQi+UgqSw8dK?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NGFVdDB0SDVhN3lxUzdGMlBqd1lLalRZVndqSCtnU2xPZWUzYm5wMGNJWjhG?=
 =?utf-8?B?SFJTNnB0bG5XbmZ3SEtDNmdSUHNWUkFPS1F2cEhoMXYrUTZPeGs5bnZGNEpL?=
 =?utf-8?B?K3RjZkhnb28yaGhicU9nWDdMcmJqaWw2WHdoVTR3MWJ6MkVPRjc5dkkxdnRn?=
 =?utf-8?B?UDE1TmVSaXhUZ1FKSEpWQzJFRzVyYUp1WE9uTVUxQUxSa1k4ZlprWlF3d1Fr?=
 =?utf-8?B?bTFndWJtTWlXOGVIa0VwQXZ0RjNUTGExNjNrQmJjd3l1VEUrNTRLZUVzVUxh?=
 =?utf-8?B?K3FLdFRSOVJrbkhPYUZRd2VJTHZRUUpYbk55R0YyRUl6cjhrWWZic0hoNDF6?=
 =?utf-8?B?dExDL2M1Q2FWWEdWNUtWWk5pd3BwNWUxRG9Db0NJYkR5SUp0cDhldFlhUUEx?=
 =?utf-8?B?alY0UHBQeEJ2VnZqS3hxMmxDd0swMitIUE5SUFRJQ0NHWnJiN0JSREpLVWhX?=
 =?utf-8?B?ZzR4MGFnOWNDRnVuTG9IVldZaURUN3lveVJRVmJmTHMwbEdsWUtwRGNhczRq?=
 =?utf-8?B?THMyc2RJd1VmZ3lCVzRhZUZKNnZJc0lYY0lhNWhLSjl5RTd2R0tBUUhYQTUv?=
 =?utf-8?B?VXUzNE5HNTJyRzAxNEl2V1R5d3B0aDJ1QzZKdmV1Z3hJVE02UDRscE83NWRx?=
 =?utf-8?B?SWVvQmg4VmhNd01lVkhXZFZGOENpSWEyRUFCdXA1cTBTR0xUdUJlVXNzZDEr?=
 =?utf-8?B?RDMvYXlCcjRHVFBBM1FielR5UHVjcHBWd1VCQUNIRkNxU3hjdUs4d2pHTTZH?=
 =?utf-8?B?WW5YMDlOcTZsU2sxc1JURXdHc3BoMUpEaFVuSWMzdWNvUFBmVk5TOEVMNDZV?=
 =?utf-8?B?dHM1UE1iamFNVDhrZXE2akhmYlJ0N0loSUR0cUZOSmxTLzFVYkNNc1l5OS9B?=
 =?utf-8?B?cmxSZFFQQ2l0eEg0UU8vbzY4WDdoSWdUZnhqbXpNNzEzWHZhWXExWFZsVFdY?=
 =?utf-8?B?WFBLWTZuU3BDOEZiYWhMemNjMzkrb0ZIZ3kwaWZlZ1RFamt5MHJ5MHhBY2Qx?=
 =?utf-8?B?dVlTYjlwdjhyeHRobmJmVS9PWG5rZ3Q0eFVFbUd6MUUyanRJc0RvNGcwK3pw?=
 =?utf-8?B?WFJnbmN5Q2V2blR1NDNnUFZOYVFoRXZvV2RUVmkwWkt1MFg3a2FTRW9WS2RI?=
 =?utf-8?B?MEh0eDU3WWEvOXo1YmNydFRuV2VObktSRXhIeWlqV2tZUFUzV0F1T3doZC8y?=
 =?utf-8?B?MDZRbVNsbGRBY0Q0cElxL1h5QU9FbURzNlZRTnAwSE9pU0dheGd4SXZHSEg3?=
 =?utf-8?B?Y01Pd0VRc1pOak5Db3d6dnhURWtNVFhobU9aeVM0ZHQxTkJ4KzU5bGRYNm1N?=
 =?utf-8?B?UzJkZVp2NkxFeEZkZHhXaDBqNmxMeWV2K3U5MjZaZXNZVWRta0VNR3RMNnpx?=
 =?utf-8?B?MzNGbnpiaUdBRTBJYmpvY2hxeUdOUzMyYktWeVR4RFIralI2Y0VIM2pvUGFS?=
 =?utf-8?B?V0x5UVNpY1ZuZEsyeDJtQmJ1ZTNrQnRKUTFHc0dzRm9JYms0VHpuTldhc0g4?=
 =?utf-8?B?QTNmVitIYk1iTVQ4bWtBbUMrWkxPeURxWFdXZ0hWRlgrOWZTdjEvMDNtaTU5?=
 =?utf-8?B?S0l6QUlBdDN0U25pS3pxd2IzUmljUGUvSnJDemE5MFVxbElrbnF5QkJ1WXV2?=
 =?utf-8?B?SUhNRGxWMmhuQndIc0JLY1BHb1lYcU9jeDk3QitDY2Z4TnowMk4rUFVZc25s?=
 =?utf-8?B?NXA1UWZ6dnhTRDFoNTlYNGExTWorVWR6eFpsbytScG5pK3lEZTltcFlIdUV5?=
 =?utf-8?B?dXJzTzRvQW9tc01pRW4xNi9rL093anZ2dHBYUXNTZVBpdTcxQ1NHcWl2aTJW?=
 =?utf-8?B?OEluYmp6QTEwS1FGOGRLby9YZUxleUtYUnVOL1EwdHJGRE9mekJTS2YxaXhI?=
 =?utf-8?B?K1YrR0lZSWNYOTkzOFhQRmw5UWJ3MENCUmU5SE1HalZkWnJYdmJsa280a0dl?=
 =?utf-8?B?UTdKTTRLS3ZKblBGZUx1OC92eWFsSHkrV3hNSkxLS0pQamtDMUNTQy9QWDZ5?=
 =?utf-8?B?ZnJ4R3lCMGdBYVVFTitRK3RpZ0Q3M3RUUUJmRk9WOXE4dUdxVlluOXJqM0lL?=
 =?utf-8?B?djFVNTk2M2I4d1E2WU9HYWlGN0RodE1idGFxUE80UC9DcEJvdHp2ZXJXUmFC?=
 =?utf-8?B?VmJFVXNKRmJnYXJYOWlsZGY5aEpZTEh4NVlTeGZYTHZZKytWVitGbXF1U3E3?=
 =?utf-8?B?U1E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 29b98d4b-bf13-46e2-fdfb-08de329de9fe
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2025 18:58:15.1748
 (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: J3Kc47EtVrrgziGUce5CefxGjTqEufJCxqNf4nT1PKGReQhC3h8oALzWXsTUNYu9wBzWllwQxLd+jxtUB+JUC2RZ2nWNyUepFy3UYvSvdqU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5034

On 03/12/2025 6:49 pm, Andrew Cooper wrote:
> On 03/12/2025 6:23 pm, Julien Grall wrote:
>> Hi Andrew,
>>
>> On 03/12/2025 17:16, Andrew Cooper wrote:
>>> to keep it working, but there was apparently no use of ThumbEE
>>> outside of demo
>>> code, so simply drop it.
>> I am in favor of dropping support for ThumbEE for guest. But I am not
>> sure I understand this comment.
> There's no production use of ThumbEE known to ARM.
>
>> Are you saying there are no processors supporting ThumbEE where Xen
>> would run? Asking because below, you are removing code to context
>> switch the ThumbEE registers. But I don't see any code that would
>> ensure the registers are trapping (i.e. HSTR.TEE is set). So wouldn't
>> this result to a cross-VM leak on those processors?
>>
>> If we really don't want to support CPU where ThumbEE is available,
>> then we should check that "cpu_has_thumbee" is 0.
> The registers exist in ARM v7 only.  They do not exist in ARM v8.
>
> I suppose yes this change would result in a cross-VM leak on hardware
> supporting ThumbEE.
>
> Can HSTR.TTEE be set unilaterally, or does it need gating on
> cpu_has_thumbee?
>
> Is setting HSTR.TTEE sufficient to cause an undefined instruction
> exception to be thrown back at a guest which goes poking?  (I guess this
> is really "will the default do the right thing")
>
> I'll freely admit that I'm out of my depth here, but the build failure
> does need fixing.

e.g.

diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
index 92c8bc1a3125..ec23fd098b63 100644
--- a/xen/arch/arm/include/asm/processor.h
+++ b/xen/arch/arm/include/asm/processor.h
@@ -411,6 +411,7 @@
 
 /* HSTR Hyp. System Trap Register */
 #define HSTR_T(x)       ((_AC(1,U)<<(x)))       /* Trap Cp15 c<x> */
+#define HSTR_TTEE       (_AC(1,U)<<16)          /* Trap ThumbEE */
 
 /* HDCR Hyp. Debug Configuration Register */
 #define HDCR_TDRA       (_AC(1,U)<<11)          /* Trap Debug ROM access */
diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 2bc3e1df0416..040c0f2e0db1 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -158,8 +158,8 @@ void init_traps(void)
     WRITE_SYSREG(HDCR_TDRA|HDCR_TDOSA|HDCR_TDA|HDCR_TPM|HDCR_TPMCR,
                  MDCR_EL2);
 
-    /* Trap CP15 c15 used for implementation defined registers */
-    WRITE_SYSREG(HSTR_T(15), HSTR_EL2);
+    /* Trap CP15 c15 used for implementation defined registers, and ThumbEE. */
+    WRITE_SYSREG(HSTR_T(15) | (cpu_has_thumbee ? HSTR_TTEE : 0), HSTR_EL2);
 
     WRITE_SYSREG(get_default_cptr_flags(), CPTR_EL2);



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 20:15:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 20:15:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177107.1501508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQtFn-0000OW-Jc; Wed, 03 Dec 2025 20:15:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177107.1501508; Wed, 03 Dec 2025 20:15:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQtFn-0000OP-Gv; Wed, 03 Dec 2025 20:15:11 +0000
Received: by outflank-mailman (input) for mailman id 1177107;
 Wed, 03 Dec 2025 20:15:10 +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
 <SRS0=7Ymo=6J=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vQtFm-0000OJ-RA
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 20:15:10 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c39d6434-d084-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 21:15:08 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by PAWPR03MB9689.eurprd03.prod.outlook.com (2603:10a6:102:2e9::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 3 Dec
 2025 20:15:06 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9366.012; Wed, 3 Dec 2025
 20:15:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c39d6434-d084-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AmKDLmfGANVk+Fu9re2VY6n7uA7uL7RzfvrnQjCSIgJB1sXpqdlHgSpqjDya7O0OmvrDmzRN1JcG76Y8IzyT0pOU3D1z2vDnijRF4A5L2dtxUz1OdEqRRqyW6E/JQliOF5TQcT4cK578cZznkT5dOFZLjcN1KqV+brwAuvewEKTSUdMMg7UVbw5QzzPljT33+BUFPUXcY3USfu9aCqEUxeD2Cp1+UWmjhHvq0AgKfkUOUoujfOvVxEFa9Bh4yI02jQqLfRQEo2TnWfjL9yrOTjJoX0BTnQiYew3Ef3rej48tTqDdzoT2wzkiwER7OdkfR5W5PMYg0bbz25KWo2Jvtg==
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=NOFmLvdYGGyIfQP9eMobra+CovqHFu5AZXo6eqWj3uA=;
 b=fOaAR3kCCRqVlfScEJXmCYfPY3DPEpcRKmOIi9ptddKNvwS3z6M1FHZEt3V8bdIOjpst3p2/sQScagQTgCeYhkiqu9ahnMCE9YTYgP93chodszZNqh7PM0R1ec0tS3RkudBdHjK6w8BzQrEvZJNZ133zpaylvU1sVVCWGYp8fDG2rh5ZWaWF4VVz/ZsVWkYJKjSV/9F7WRCU1L55tvmvb7zwUXI+LJ1uusldGriCZEgJfad1ZIqg3N1iYLBQljrSjwTCaqw6aL18M1IUkEP9NEAYxsD/1VzV9L7t2YnqA5fXSq/mqa02oKA4f50lE890AObWCFa2724OziECNYDpDw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NOFmLvdYGGyIfQP9eMobra+CovqHFu5AZXo6eqWj3uA=;
 b=km0ET96jdleCfrK6Ih4Q/+y+B+O6mxdp0yG5vkzhFoxeGYIfoMqhHrROeCc8kM329BprUrwktdtLlkKF7ioouCYvVNpEAna5iExALfEZxGk+PNWHUbmJ4uitnh4kmFU3MOovhv0AHceBSyk3eicilc5E+wdRAjuPT/orreqZBfIHByvJDoP18tzawZMwf41d+odCTJTQUSvwPNzM5RIz3CBw0Ix2pFSCAf4t39tfBbtNsYFa/vFZ/nyjkAe8Rzcms4KjpGnlrEo8somMjtKdWbY4EHpnFjrfac3JRxVF47n9QCboYZ/tpr+ch8M8gPSu3FMyQsltViVSka39WpEKnQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <bbc41ec8-8ee6-4562-9b33-cf17da0812b7@epam.com>
Date: Wed, 3 Dec 2025 22:15:04 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH V2] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
To: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <20251203185817.3722903-1-oleksandr_tyshchenko@epam.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20251203185817.3722903-1-oleksandr_tyshchenko@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
X-ClientProxiedBy: WA0P291CA0002.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1::29) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|PAWPR03MB9689:EE_
X-MS-Office365-Filtering-Correlation-Id: 414c7bbc-d66a-4505-28bc-08de32a8a681
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?M0kzNjhocGYydlZ5aVc3aXZPSDBRRUErV1VaeUZkVzEzY01Qa0dnZml1bFVT?=
 =?utf-8?B?Z1JwK0JreGFhczkvMlEvS1NlZkNjL3kvZEVzS0RJeUJzZTg0OUdBL2htRTJX?=
 =?utf-8?B?UVZXcnhCV1UyTXhyeDB6aUtyRXk2YjFqVE1SK2tKM3Z0OUJ0MjJZMlpmYkFx?=
 =?utf-8?B?Q3gzcFhOV2FPRWJlUkFsTHQ3aEtSV1pTRGFEN2FRNVBrcmhoL0dpcThvWkdv?=
 =?utf-8?B?MEdaVUVhbENjMHZrdUhSVDhEVXpCQXIzUnNGNHBieGVJQ1VBdEwxZ1NSNDRW?=
 =?utf-8?B?MkVXVkl5N1MwR3RTTXhYKzMrS2dIYTRBWmQ0T1hudlljTWtyYlBqanRONFY4?=
 =?utf-8?B?KytoY3ZrUmRCbTdEb0Z4TUFlblhCWWdoTGNocUQ5TXBYbXpxNGVRZUNoVE5U?=
 =?utf-8?B?YzhlUDBzcWs3M1NYMEkrM0dCekVwd2cweTRMSEtRd1A4dlBoNExOUVM2VnVP?=
 =?utf-8?B?QnI3YndoUTFNRDgxbktvK3V1T0pxTEJoUXRsbzl5dkxOYzg0Z0tGTmU0N0o1?=
 =?utf-8?B?UFN2elhWd0hxYUJId2tMM1hGOVo4dTV0bktvTkhhcDl6aEdzampncFhwaTl2?=
 =?utf-8?B?bnA3UGdtNmRnVHUwcHc3cER6UnBORERKUFQ2YU80WTNScU1IUU5jVFFnRTBP?=
 =?utf-8?B?djY1c3lnS0ZyU0tTRU02Y1JTVkZEdXhMTDM5cVVrSXI5Tk1tWFlIMEFlb0Jv?=
 =?utf-8?B?aC8xemRTQnJJdzNJUVVFVFRwTVZGT2VKaE55d1FxM3Y2NkRmN1AxQWNobzM1?=
 =?utf-8?B?NVJTSDJRTDlPL1ZNZmpRTXZVZ0prMXNDMmxvQzc4OGx0dnlkYklnRWw3Z2I1?=
 =?utf-8?B?bTdFNzFBSElmekpIVlNyYkJ6RGpUS29OZStsWGJLS2FLNmdnSUFlcDZNcTc1?=
 =?utf-8?B?aHE4STF0Rk5UZThpUVNMdURNV3UzOVNqVXRTS1p1Ymk5WUFCbHJMa1hyTXlq?=
 =?utf-8?B?a0s0aGw5TzA1clJncjNlNWxiTmVsUE5HbThURUt0UE93SThhVHkxOWRJYkpI?=
 =?utf-8?B?ZEVLMG9PQVR1eWVDRzcwb01tYjk0TGhEK3lLVEVoOUNmTG5sTmxBZDUwVllK?=
 =?utf-8?B?TEhQNjZEVXFubHl3ZlpKVTlpM1RGYTZXVGVNRkZqUzZybXN5WnpuOFQwMWZQ?=
 =?utf-8?B?L2F4WHJncERyVW56TWVyT3hxY3JIZlNxVFZhNHJiQklsVExEQ3J5VWNsUk5B?=
 =?utf-8?B?RmNHc3pWWWNrbnN1Zzg0WldUNlVFdWtSWVQrNTRRNE84UFkyRGhGRmVnRUhV?=
 =?utf-8?B?aTJ5S1k0N1dMYUxMd1d0dWdQYkZ1djlSN0pXZmxrRFJsMHoreTgvRjNPakda?=
 =?utf-8?B?aEVwYlBrT1poeXNnemg1RVlnc1ZtNDBKa3ROdDJYRzRoaE5uQmFPazZya3Rk?=
 =?utf-8?B?SU1mLzBJdExaSjhIVGlQM3kyV2lobGVjeGtHZG5YKy9lNFNzZEhValNIV1JR?=
 =?utf-8?B?Tkc5Y3JtSVIxcTBhb1l4Rkx5NmlNVzI0Z2t2V3pKNndUb1NHaXpEVE91V3Ns?=
 =?utf-8?B?Z3ZjdUNHbG84eXp0V2xCSCsxMGh4bVpxaW95UXZ6UXlOa0QzZTJLNGVPR3pZ?=
 =?utf-8?B?QytYci9lb2JKck82MDdsU3RLeDlndFpQckw0TUEzOGFTT2YrV1ZRZ0M4NWh0?=
 =?utf-8?B?cXlrbmxCa0VwcjN4WXFlMXNydzUydTBCaEJXL3BKUUpQSlFOckp5TXEzQTZN?=
 =?utf-8?B?ZVpUZjEyUU9mam4xeTN1TWp6MGhIWUM3MlRBNEp5NUZOR0F1b0VEdTNHVy9T?=
 =?utf-8?B?M2JVeDkyRENZYWFnVmI4b1RQQlpKQi9SL01JSUlTNTJxM2tDWlNMeVU3WEVQ?=
 =?utf-8?B?Z04yV3F6Vnc0aXVHNGZUdUVHZ3Q2VE9FTGp1V3ZLRkVORUN4NG1tVWQyVGZV?=
 =?utf-8?B?MlJ3TVBZVk1vVUhvSjFWMXlWWkxQUHVFaVdEMU0weGVuMVE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TmNuYW1QNEV5WXlOSGtzcE5ydnFPT2M1TWNNMTFZa0Q3RzdFRlcyRURzeWZi?=
 =?utf-8?B?TENWWDVadlZpc2F2SDVQSm9ZaW1ib3RhK0k4aGo4RmFXTVdCRkdYMW5jRjJD?=
 =?utf-8?B?K201eklZSllvbDB4MkFhMTg1VUMrcHViK0t2cjBXYkxMTWFRLzdtU1QyWktz?=
 =?utf-8?B?MEkyWmRDSFMxQXVFa1ZrR3JRdUF2RjFrdHhaQWRaWFFmaUl0UUNmZFhJMkY4?=
 =?utf-8?B?Yy80V0djUjR6OFhGKzFZa2U1RXRhNlV5aHJseEd2aFBZb1Rsbkw5UFlJSGpT?=
 =?utf-8?B?Q0Q4OC9CYzl0Q3lyU0ZLaE1WUklDcnNlaWExVU5zUzZRK3U0d0VSQUdZbWZz?=
 =?utf-8?B?QkZha3Ntb21WWStiUWVuaVVpYkZIZjhmMnJ2aHlKdk9lUnR6QUlxaGRGREt0?=
 =?utf-8?B?ZTR5Zys4dEVpLy9ySlFkM01aOFVTVzAwY0s2R0Yva0Mvb1JJdVl1VkNyam9x?=
 =?utf-8?B?VElWMStCS29OcDNGM3V5ZmhxZ3p5U1lGUnUzdXdLSDZIdzMvVzFyL0VydjFR?=
 =?utf-8?B?K3RqNEFibHVsZVZCTXliaHFzY1VXNXg0VFFSRVdHK0FkY1gzbll3UnFSZDFu?=
 =?utf-8?B?dFJUYjh2MGViWjY5NzJ2a09YaTJ0Z0NYRnJrWUdHL2VER3IzOHVmMEoyQldZ?=
 =?utf-8?B?YityanhNVEdsemFmNGM4MFVhTEpWZXRCODIzTzRwUTBFKzVtRXZvc0FyTjhn?=
 =?utf-8?B?OXpESFFFYlJMQmtvWUZPbUt4RkhINVdwZmd3SVFQU09vQU9lYldkRlVZRDBO?=
 =?utf-8?B?eUlsNG4zMHpid3JCNkVtcU02YjdkNmp0cU5JNHR2QmNaU3JaMXVFTHBlTFo3?=
 =?utf-8?B?N04zNTN4UWx4c0g1RjAxZkpBM1Y2RkZZQmJoakRNb0FyS3F5R3VibmE0dGF4?=
 =?utf-8?B?MGtGMGU1UXpEOThESXoxZUxrVktKOGsyZlFOZzhaS2h6a2dwaVEyakVVbTk0?=
 =?utf-8?B?YytvQXI5UklLMStNVlpHTEdEL0w0MEFhZnBoeDBmU3JWZGFiN2NlN084d294?=
 =?utf-8?B?VEMwRXp5QndwYU1ZYnFMcWFnVmUwKzZ4Q09sRjhUb2hwTEpIc0N6M054ZTU1?=
 =?utf-8?B?VGo4OG10OXdFcUtZdWdHT0FSY0cvU0poTDk0cTFsV2RKeFVlRlhIYjVzeGxB?=
 =?utf-8?B?bWRvNW1pY2F0STJqYlBCV1hIcXpDYkJaZFdmMmVPOTBjZ05nd09ZdXdIaFBO?=
 =?utf-8?B?Y25rQ09iL01DR1prMWVqR2J5YVI5L3BQVVFnSGJtQjFRRk5QWlJMZHlmRko0?=
 =?utf-8?B?ZmNsTTh0azUzaWpxZGF0V3htNjVycTJqQXBJVjRKN2s0VmRKZlFSZ0lrSzBU?=
 =?utf-8?B?UHB1Q2h2TDY0ZU5EK2dBSmV4aVdsRlBobXQ4TXZmdjdmVTR0TEp1Q3VUTmlx?=
 =?utf-8?B?cWloaXFwcWdEQ1k0WU0rV2JGcjFycy9mUGtjTzZzTmdxajg4aC9ZR1dPTSs2?=
 =?utf-8?B?UXFRcnBzRVVoc2xPVjNrT2NCWFYzaGhZOVJ6WE5rSUlSUXhUbGhFeWIybnNS?=
 =?utf-8?B?eFZyVWNUaTlPS2VhUUxBalgyaFAvQjdyc25laktFUHJnMzBGUXI1bWFockpq?=
 =?utf-8?B?SWpLamorRXdiRUtrSXk3Z25VblhKWEtqTzdFZXJFanY5SmhyVm5sOG5UYlFs?=
 =?utf-8?B?L3d6blF2YU9zUWtPNloxM2VsZU9TZCtNSU8wSDFNZEk0TXpRcWlWOHdud2Qx?=
 =?utf-8?B?YWJhOTB2NmpzTmxhTUluWWxNcjdKSWd2Z0tvdnNZUzE3U25COTgyZmYySHRs?=
 =?utf-8?B?MGtnU0JlNEFYQkFYZTYxTTA1VEZlZHJBOGYxanlmb0ZOaXQ0YU5TbzdybHA4?=
 =?utf-8?B?UVhRaHNRMExTVnhueG85aFg0cmhnWjl6QUlDdW1uL3BNaVFnc2N1ZkxjbXA2?=
 =?utf-8?B?U1JLTk1DSkpYekI5SitCc1Y2UWlzQ0twU1lyTUlHNEREYnJPRUhOY2FQbHdB?=
 =?utf-8?B?VDlYUFMrWFpTVTlWd1VsdjBZLzZIdXdWdmc5ZFdzRStnV1NXM1Rtb0toNEQz?=
 =?utf-8?B?UStrMytvUDI4eVNTTFpTeWRJMGNES1ZLeTBUbmNzU0dsYzdqTlpyN3VYeTh5?=
 =?utf-8?B?Nno0b1pGTGtTZEMxWmhqSTl5dHpOVGhCWTM3NFYyNjFKY2FCbmNMUFV5elk5?=
 =?utf-8?B?ZDFEZXRuQm9ad01jY2pPZmxmUEpjZ00xTmdKU1JuQkN1UThPZ1kyVXpMTmN4?=
 =?utf-8?B?eVE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 414c7bbc-d66a-4505-28bc-08de32a8a681
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2025 20:15:06.3896
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wwonww3ib2VCEbct/8vrIy+isGQzJnm6FHfA5TBRLPfkVlYH0Vpp6S3pgNi3/8U4ElEyrJ+JBsnkVoxfIIM9YdEvrSpTvycNwz+iPBjZgMk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9689



On 03.12.25 20:58, Oleksandr Tyshchenko wrote:
> Creating a dom0less guest with a high vCPU count (e.g., >32) fails
> because the fixed 4KiB device tree buffer (DOMU_DTB_SIZE) overflows
> during creation.
> 
> The FDT nodes for each vCPU are the primary consumer of space,
> and the previous fixed-size buffer was insufficient.
> 
> This patch replaces the fixed size with a formula that calculates
> the required buffer size based on a fixed baseline plus a scalable
> portion for each potential vCPU up to the MAX_VIRT_CPUS limit.
> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> ---
> V1: https://patchew.org/Xen/20251202193246.3357821-1-oleksandr._5Ftyshchenko@epam.com/
> 
>    V2:
>     - update commit subj/desc
>     - use a formula that accounts MAX_VIRT_CPUS
>     - add BUILD_BUG_ON
> ---
> ---
>   xen/common/device-tree/dom0less-build.c | 16 +++++++++++++---
>   1 file changed, 13 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
> index 3f5b987ed8..38a5830813 100644
> --- a/xen/common/device-tree/dom0less-build.c
> +++ b/xen/common/device-tree/dom0less-build.c
> @@ -461,15 +461,25 @@ static int __init domain_handle_dtb_boot_module(struct domain *d,
>   
>   /*
>    * The max size for DT is 2MB. However, the generated DT is small (not including
> - * domU passthrough DT nodes whose size we account separately), 4KB are enough
> - * for now, but we might have to increase it in the future.
> + * domU passthrough DT nodes whose size we account separately). The size is
> + * calculated from a fixed baseline plus a scalable portion for each potential
> + * vCPU node up to the system limit (MAX_VIRT_CPUS), as the vCPU nodes are
> + * the primary consumer of space.
> + *
> + * The baseline of 2KiB is a safe buffer for all non-vCPU FDT content.
> + * Empirical testing with the maximum number of other device tree nodes shows
> + * a final compacted base size of ~1.5KiB. The 128 bytes per vCPU is derived
> + * from a worst-case analysis of the FDT construction-time size for a single
> + * vCPU node.
>    */
> -#define DOMU_DTB_SIZE 4096
> +#define DOMU_DTB_SIZE (2048 + (MAX_VIRT_CPUS * 128))
>   static int __init prepare_dtb_domU(struct domain *d, struct kernel_info *kinfo)
>   {
>       int addrcells, sizecells;
>       int ret, fdt_size = DOMU_DTB_SIZE;
>   
> +    BUILD_BUG_ON(DOMU_DTB_SIZE > SZ_2M);
> +
>       kinfo->phandle_intc = GUEST_PHANDLE_GIC;
>   
>   #ifdef CONFIG_GRANT_TABLE

Reviewed-by: Grygorii Strashko <grygorii_strashko@epam.com>

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 21:02:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 21:02:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177125.1501519 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQtzS-0006gn-Uh; Wed, 03 Dec 2025 21:02:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177125.1501519; Wed, 03 Dec 2025 21:02:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQtzS-0006gg-QR; Wed, 03 Dec 2025 21:02:22 +0000
Received: by outflank-mailman (input) for mailman id 1177125;
 Wed, 03 Dec 2025 21:02:21 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vQtzR-0006gY-I3
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 21:02:21 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vQtzP-0050eK-1V;
 Wed, 03 Dec 2025 21:02:19 +0000
Received: from [2a02:8012:3a1:0:a90a:e0da:b0b5:e466]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vQtzO-00BJ8I-2U;
 Wed, 03 Dec 2025 21:02:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=gL/rt9eEmumR6Q2tJV1h556Vey9yXOCfpAxhha+N5Rc=; b=4byBcTb2PN/fYSEPX3PqLBQisP
	HMwgGiR/z9+VPKDHEcE3lSZ92CNBSF4t9okl7/rST4troWJR7LOd11nVz2/3NoxLjNF/WdyfmJzRN
	Z71dRnSQyuEebwgf5MRqONLMu8FWJuuYuXD0/l1lnyweqQcoW2VBcQXmo8kZyZSLic3k=;
Message-ID: <9ddb8824-2d88-444e-819a-e46be4b406d1@xen.org>
Date: Wed, 3 Dec 2025 21:02:16 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] ARM: Drop ThumbEE support
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Hans van Kranenburg <hans@knorrie.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <JBeulich@suse.com>,
 Maximilian Engelhardt <maxi@daemonizer.de>
References: <20251203171608.1714964-1-andrew.cooper3@citrix.com>
 <f081cd84-a626-4b02-8c8b-6c0c0b723b84@xen.org>
 <875a6a6c-f81f-449e-bd57-7e720d07e8a2@citrix.com>
Content-Language: en-US
From: Julien Grall <julien@xen.org>
In-Reply-To: <875a6a6c-f81f-449e-bd57-7e720d07e8a2@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Andrew,

On 03/12/2025 18:49, Andrew Cooper wrote:
> On 03/12/2025 6:23 pm, Julien Grall wrote:
>> Hi Andrew,
>>
>> On 03/12/2025 17:16, Andrew Cooper wrote:
>>> to keep it working, but there was apparently no use of ThumbEE
>>> outside of demo
>>> code, so simply drop it.
>>
>> I am in favor of dropping support for ThumbEE for guest. But I am not
>> sure I understand this comment.
> 
> There's no production use of ThumbEE known to ARM.

Interesting. The Arm Arm is less assertive and in fact confusing, the 
latest spec released in 2018 (ARM DDI 0406C.d) has the following:

"
 From the publication of issue C.a of this manual, ARM deprecates any 
use of the ThumbEE instruction set.

[...]

ThumbEE is both the name of the instruction set and the name of the 
extension that provides support for that
instruction set. The ThumbEE Extension is:
• Required in implementations of the ARMv7-A profile.
"

I have also checked the TRM of the Cortex-A15 (one of the Armv7 CPU we 
used to have in the CI before gitlab) and it supports ThumbEE. So I 
think we need to additional diff you sent in this patch.

> 
>> Are you saying there are no processors supporting ThumbEE where Xen
>> would run? Asking because below, you are removing code to context
>> switch the ThumbEE registers. But I don't see any code that would
>> ensure the registers are trapping (i.e. HSTR.TEE is set). So wouldn't
>> this result to a cross-VM leak on those processors?
>>
>> If we really don't want to support CPU where ThumbEE is available,
>> then we should check that "cpu_has_thumbee" is 0.
> 
> The registers exist in ARM v7 only.  They do not exist in ARM v8.
> 
> I suppose yes this change would result in a cross-VM leak on hardware
> supporting ThumbEE.
> 
> Can HSTR.TTEE be set unilaterally, or does it need gating on
> cpu_has_thumbee?

 From my understanding of the Armv7 specification, the bit doesn't need 
to be gated. The Armv8 specification suggest it is RES0 so in theory it 
could be used in the future. So the diff you sent is correct.

> 
> Is setting HSTR.TTEE sufficient to cause an undefined instruction
> exception to be thrown back at a guest which goes poking?  (I guess this
> is really "will the default do the right thing")

I believe so. The default behavior in Xen is to inject an undefined 
exception if it can't handle a trap.

> 
> I'll freely admit that I'm out of my depth here, but the build failure
> does need fixing.

I agree. Do we need to include the fix in 4.19 (I think Jan asked to cut 
it tomorrow)? Thanks for sending the patch!

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 21:10:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 21:10:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177136.1501528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQu7U-0008KN-M7; Wed, 03 Dec 2025 21:10:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177136.1501528; Wed, 03 Dec 2025 21:10:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQu7U-0008KG-Iy; Wed, 03 Dec 2025 21:10:40 +0000
Received: by outflank-mailman (input) for mailman id 1177136;
 Wed, 03 Dec 2025 21:10:39 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vQu7T-0008KA-Mf
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 21:10:39 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vQu7T-0050oW-0W;
 Wed, 03 Dec 2025 21:10:39 +0000
Received: from [2a02:8012:3a1:0:a90a:e0da:b0b5:e466]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vQu7S-00Bvm9-1f;
 Wed, 03 Dec 2025 21:10:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=T2qSEDOYO4OtxDEa2Qs9O+9WMHizUhUsD/iN7ViM070=; b=OvOL5krpEnge2CffM9YYHJMIrX
	bFwt3wiUS6gdrJHkYrnfGaB3lA0GD5uOBsRdh1PQAFCTxxo2Kq1O5hVx5gQ+cyZFUz07yRbDILmOd
	GeI6MHZDDiIdAoOW5id1zBYKISV5Azgd9r1OM37r2KDhHc3obBva3yvsMeVZXr2ueJcc=;
Message-ID: <6e83d3bc-c49c-49f4-9dbd-e994e53a62a7@xen.org>
Date: Wed, 3 Dec 2025 21:10:37 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH V2] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
To: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <20251203185817.3722903-1-oleksandr_tyshchenko@epam.com>
Content-Language: en-US
From: Julien Grall <julien@xen.org>
In-Reply-To: <20251203185817.3722903-1-oleksandr_tyshchenko@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 03/12/2025 18:58, Oleksandr Tyshchenko wrote:
> Creating a dom0less guest with a high vCPU count (e.g., >32) fails
> because the fixed 4KiB device tree buffer (DOMU_DTB_SIZE) overflows
> during creation.
> 
> The FDT nodes for each vCPU are the primary consumer of space,
> and the previous fixed-size buffer was insufficient.
> 
> This patch replaces the fixed size with a formula that calculates
> the required buffer size based on a fixed baseline plus a scalable
> portion for each potential vCPU up to the MAX_VIRT_CPUS limit.
> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> ---
> V1: https://patchew.org/Xen/20251202193246.3357821-1-oleksandr._5Ftyshchenko@epam.com/
> 
>    V2:
>     - update commit subj/desc
>     - use a formula that accounts MAX_VIRT_CPUS
>     - add BUILD_BUG_ON
> ---
> ---
>   xen/common/device-tree/dom0less-build.c | 16 +++++++++++++---
>   1 file changed, 13 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
> index 3f5b987ed8..38a5830813 100644
> --- a/xen/common/device-tree/dom0less-build.c
> +++ b/xen/common/device-tree/dom0less-build.c
> @@ -461,15 +461,25 @@ static int __init domain_handle_dtb_boot_module(struct domain *d,
>   
>   /*
>    * The max size for DT is 2MB. However, the generated DT is small (not including
> - * domU passthrough DT nodes whose size we account separately), 4KB are enough
> - * for now, but we might have to increase it in the future.
> + * domU passthrough DT nodes whose size we account separately). The size is
> + * calculated from a fixed baseline plus a scalable portion for each potential
> + * vCPU node up to the system limit (MAX_VIRT_CPUS), as the vCPU nodes are
> + * the primary consumer of space.
> + *
> + * The baseline of 2KiB is a safe buffer for all non-vCPU FDT content.

What if the use decides to pass a DTB fragment? How do we know this will 
fit in the 2KiB?

> + * Empirical testing with the maximum number of other device tree nodes shows
> + * a final compacted base size of ~1.5KiB. The 128 bytes per vCPU is derived
> + * from a worst-case analysis of the FDT construction-time size for a single
> + * vCPU node.

For in-code documentation, this is ok to just provide some numbers. But 
this needs a bit more details in the commit message with the exact tests 
you did. This would be helpful if we ever need to change the size (for 
instance we could have extra emulated devices or we need another 
property per CPU).

>    */
> -#define DOMU_DTB_SIZE 4096
> +#define DOMU_DTB_SIZE (2048 + (MAX_VIRT_CPUS * 128))

On Arm32, MAX_VIRT_CPUS is 8. This means the new DOMU_DTB_SIZE is going 
to be smaller than 4096. Why is it ok?

>   static int __init prepare_dtb_domU(struct domain *d, struct kernel_info *kinfo)
>   {
>       int addrcells, sizecells;
>       int ret, fdt_size = DOMU_DTB_SIZE;
>   
> +    BUILD_BUG_ON(DOMU_DTB_SIZE > SZ_2M);
> +
>       kinfo->phandle_intc = GUEST_PHANDLE_GIC;
>   
>   #ifdef CONFIG_GRANT_TABLE

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Dec 03 22:25:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 22:25:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177154.1501538 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQvHA-0000WQ-T4; Wed, 03 Dec 2025 22:24:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177154.1501538; Wed, 03 Dec 2025 22:24:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQvHA-0000WJ-Po; Wed, 03 Dec 2025 22:24:44 +0000
Received: by outflank-mailman (input) for mailman id 1177154;
 Wed, 03 Dec 2025 22:24:43 +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
 <SRS0=7Ymo=6J=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vQvH8-0000WD-VE
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 22:24:43 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dc39d759-d096-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 23:24:41 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by GV1PR03MB10606.eurprd03.prod.outlook.com (2603:10a6:150:20b::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Wed, 3 Dec
 2025 22:24:37 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9366.012; Wed, 3 Dec 2025
 22:24:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dc39d759-d096-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pvrhbRmi8BUoz1kZo+v9ojTrgh/0P2GvmZ2KNuF1xqMczteUe1403mupyrNb2I785T52+L4uYhbIZhfK8GGG5uS3b3tBimel838Uvp2wXRp/apeZzBr3ZWNPcivRcnKk+TDAPxAHrNDofW4OfLWLGZ/NQp0lDho1IUavKCXgzgeXKl9f6if4co6+yMIiswdjS4hz8kt5+ReytbMc0T8F9Gk3IsDy07RYFx5cJo0pFWstvrvFnWVCNc95Wu4zYl/RW/jtalk03kmeWBiOZYW0P1x8z6LZnYoxIeU80YaHRc0iJ3i1HsA+9wN27+I/Ke7gwkKDQlCVaDOZBL9So2muYg==
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=bPtGcHBEXFQVmoPyWWG8r+gWneBTvEfW3Fjt1tGU0Ws=;
 b=XoJZ8uoT6ddshkID9euPlo+EA62KrrAKOBUhWFCduplTSjvS1+852ckihDkg/g81gz0kjtiZ0YjeLxQ0QP5e3+ybw/Csiek60rU3LTv1UuVJREwoznQkY/145V5DsV+xZSk3br3BguszzhjkhsP43Qo73ip+Cz8IRgVXvUhDFEMOiBSfPBdfQueQTW8aP6HldB1BL2DUyi7Wb3QP0nTp7N/0uRcoTmKbFd6jJAD3RaZJxYIaoqiSYr2OA9V/3ZidvW/Y771lg0rXmKLg5cvy3ygXWFLjQpdX6Quz1z2zAcdr0oIeZDl4IDVAO6UqDlSFlrdXnsX6XkoWGBCHdJ6zeA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bPtGcHBEXFQVmoPyWWG8r+gWneBTvEfW3Fjt1tGU0Ws=;
 b=GldP2znvorlN+AsaBly4cRoomCwPpQZoARbv5oYZefWJwAtrOtdKtuxYsxxupM7surB+b5AapOfHiPZzrKTEy4A5RY8dy5J0z/lwFbgUPLZE/+xxgGosraZth4A8DHgYhs0B5MSFG5TjhKmxGtfqJmPhspkk1WB631LZLj240zcMWviht5EmsIsrv/UNBzG2PJ+UyskZqsbejOUySfKMhbum2TsHtFO8Llm9BeuyaEnOcKsqlTlijE64rQo0DBt4o5UTDkKRaWQxeKlPMm5e22O2f6KMe9tSL1D74BgrSiMmwhJX640eC6fEh3gHJZk7qpRkaQEyyaZcNWruxtoKTw==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Jason Andryuk <jason.andryuk@amd.com>, Victor
 Lira <victorm.lira@amd.com>
Subject: [XEN][PATCH] coverage: add extended coverage capabilities
Thread-Topic: [XEN][PATCH] coverage: add extended coverage capabilities
Thread-Index: AQHcZKObyWzDLx/m00qdJ3PE7ZDmIg==
Date: Wed, 3 Dec 2025 22:24:37 +0000
Message-ID: <20251203222436.660044-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM0PR03MB4594:EE_|GV1PR03MB10606:EE_
x-ms-office365-filtering-correlation-id: 0582e1fa-738e-436a-0c1f-08de32babe76
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|7416014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?3vn12UxetgzKw22yIJOq0cPhimBqKdbSCG6y5KTEKehBGZJ8HWEchzmx4w?=
 =?iso-8859-1?Q?lfHmxD8MODPKmNLSx4KVTN0J5RWyoYxPEk4LfpveRCdrF5EDJJFRZ2S88s?=
 =?iso-8859-1?Q?WrKtJxz7ZMsuc3iDgDfRT9D7iPY7LFQnpt1PFuW0NIKdKo66Ouf2LY1BYa?=
 =?iso-8859-1?Q?aAz5m7Rfk6guqUwpRNuvOmKUbt+i8T4y9qRIsvy3sH1lPCbZtypl9qsZG+?=
 =?iso-8859-1?Q?H18agnlZj5n9HVPr3eVRDvVZbtXXZbCOZM+PP5oOtKrngs4GL6aYu+T+42?=
 =?iso-8859-1?Q?/F48MgCbIkkA+8UNHZ74WFm7Cc+JLiKaDDPHIvrg2Z6tSHp1WWegDm9Pm1?=
 =?iso-8859-1?Q?TO7/V2Hm2ABcgOR9+T4/cHtSCdl9BQ3xMuRRtqxf0hC80yLadHrArlQ3GR?=
 =?iso-8859-1?Q?ZPgMHSOvBXZex5UUv0haGECKIum0Ji4VDHb6B7lPc/+WOuzdS5oREOLgo6?=
 =?iso-8859-1?Q?rubDt3rB+Muna4BBlXDars1BJln1UQD+A7jtX9JuLfa7ziS+8TIQ7JijAg?=
 =?iso-8859-1?Q?sd0tKj6EKkIXh7HR/KJa+u9HHWuZMW+7y83gNV+6vwDvA8qOn7nQIyOLUH?=
 =?iso-8859-1?Q?yJndaIgKwawrTcXU45pGsZZPyKMMVGE8FDGAXgf+mWydx0dpPh/rBGhTeT?=
 =?iso-8859-1?Q?XI+/ZOncUvmUpO8/EeO/GqA5D30/vN81O1YS15TgWqBTlTjTt+sWToqw6g?=
 =?iso-8859-1?Q?PPHph4eVMntIewfeyHEwLHQc/hPymNzvI2LGDDKd+rD1dmWGo2jo9bVj1+?=
 =?iso-8859-1?Q?FaalavBHfzMeuxklrN7TnRrp/lM/YVw9flZgjgYcjmrCPwDYJwUFNTg87Z?=
 =?iso-8859-1?Q?bXYWPyQMsLLQr0cUXstaZsnuWVutV0iKXQaKU5pMkQ+Ec6DCZVzPFjsYcA?=
 =?iso-8859-1?Q?FLwhyQlnLo8/wJA60jh3qRAwA5duNQ9dCUNSBizhCqXlaSD8Yrvh+pCwGP?=
 =?iso-8859-1?Q?cyDzssePXDDd4F84Obh6cEfH2q9Gqcj3VWpd8XaAVa3eDOZyRKFVRd7C2/?=
 =?iso-8859-1?Q?IUraPEnV6M3MEMunzgvalITegKjCthQPi4i3pVObdko7GWFc3LfTYx4X3f?=
 =?iso-8859-1?Q?24MBHjwiBymrTXAkkF9zGwEd63r12ItX+wA8/Izh13XzkxK/WyFiH+8/X7?=
 =?iso-8859-1?Q?eG4BV6xO3jCPOVixDQV2fzHy4SV099UwTBvV0HM2Yzqar0FlQHlBdZ8ash?=
 =?iso-8859-1?Q?ncdP7Z59A7O0LNdQOCuvjt8ZyfXy+oOZvRF/S8SE167eC0oNbYcBQ3XMbx?=
 =?iso-8859-1?Q?B12zCSXenkpzLPqUFmqsiXN8FFmR97ZHP7dGLZxBVWfROxkwDFSOmBeL3R?=
 =?iso-8859-1?Q?dIv94MUrPCwhrKldIm3nCBWIDNroqdRDcQk7ca1FtySLBTUhzGebdSVSeP?=
 =?iso-8859-1?Q?yzV63AgkY9uGeGQM001pal31VA6TJwkHla7yQTSwhpFmqGBWPcQNDr1S1l?=
 =?iso-8859-1?Q?XEJMWaCiEDpdle9T4KGTgwd4UXIC6G5mwUeRnw/WVGbG1zv6VlfOtkcoBf?=
 =?iso-8859-1?Q?NE9MUXSq2IjE1S7HBbmo2RfVgR0qzZZXkpFyCMsaDhQ68a89cjd+NUYhtK?=
 =?iso-8859-1?Q?Cy7wjyrrH68wRkH48OMIFSMihQqb?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?f7L8dtTDLienWA9ceCJn8WkKCaAPV2MkBZ64AZ3OHmB1bCEZ2yVOBebWaT?=
 =?iso-8859-1?Q?ae/w5F9leZWHg3H7ZdposAvepEktdo6kbrbmtwKNGSjQxuDK3LalA7Ffm2?=
 =?iso-8859-1?Q?aiUb9UkOv2AMW/Jn8Wnm6w7a12dcPj1qMLusYfe8zvzrN3bD096ctTLCnv?=
 =?iso-8859-1?Q?7ZaJKZrHlyILfaDabIQbxJG9G7d3HJ+R04ehbH0/oZrwS158t3y/CBemhU?=
 =?iso-8859-1?Q?1eDq2dhNjo/6n9KdZxogv5OqI50KzpDaJnB8ahe7aDbhJ4ydNMm8luOYo/?=
 =?iso-8859-1?Q?I28yCZI8Z6dqi2gbTM94vmpeDb2MqI5/WzKV5zk9R7pqrRTro07KCi9GjQ?=
 =?iso-8859-1?Q?2WaHhbFG+s8uy6I7T6ZtPguKXDKxVuJ/3Afcii7SGrSb/IfVsEbDTbokM8?=
 =?iso-8859-1?Q?0QJhYZ+FKR6RsyVtFoxTdUobmMV0zzP8+DBupq+D9fapsCHqnMtTsjVejT?=
 =?iso-8859-1?Q?aFjI6wMlQdiY7nM4W8uL2F6EXpdtf+qD12aQctAsTydZbQn1NwJ1pARFbx?=
 =?iso-8859-1?Q?TkNMbW83sTC72AToP4y19gvZ/GAPHO8HtPR153XE/pnaWsO2s5MW5VMKMu?=
 =?iso-8859-1?Q?g+WBr3wBsP+w8feKy6de6p2tXhjEZZebVUbrhjDmvE3gjodeP3l1nsUGD0?=
 =?iso-8859-1?Q?vtK/ycKNWYg1N3MTfTZyXGfWICOv4eSBhRd3nRteMgd7mM4JQbSSJRWOIc?=
 =?iso-8859-1?Q?r+qZmwsJrg/HRyxlDriuga1fBH8YGNzFp2+bkpygiwdcfDVoyU//S/FB/Z?=
 =?iso-8859-1?Q?pdpKXpaAN3cSUtLx4yEgDdtbn8V7Gf13C8lDaLpTn4YYqM8lJdkMIgFxzp?=
 =?iso-8859-1?Q?gr7xZbqNawo9gbeSOFGrCNrnazQWmYX4R2gETbhqJircED/tuXZ/hrdWdz?=
 =?iso-8859-1?Q?odVKa6K2lq8X92sZ7FOTKlaT9Yjts56sbkzmGLbrApHDPiRVHMkWPZ9Kko?=
 =?iso-8859-1?Q?Js+PX/5Po46FfkrnM3v6/ccqc5Xn5vQ7lHAfCkxGNAv5ueASofHQVqxg4z?=
 =?iso-8859-1?Q?VpsV/ujKnjJ+9lV5pqarGGTBQiXx2ew63VVDyEk3aiPCIsh39IdOUcvSU0?=
 =?iso-8859-1?Q?mC3hiYHp9cr7l4CGJ9oC66yZ6svri7QfDt1dwa6wZ79qEqu8+QhxhGD7cB?=
 =?iso-8859-1?Q?eM8uMdTw2EiFRqlhAEIQcvv0qXoQUiR+NJL8l3UNGCt2j0UOt1M5TLxrJS?=
 =?iso-8859-1?Q?aax52j2p3IRz8oe5TPF41XGO82kg1/vpQq3TzbQLj25cwdaZYdbm2gZMWI?=
 =?iso-8859-1?Q?1BSwFOVf+etQW/qzRwImiIFyX1nrzVXuoOO4KRjc+drvy9Dis8T2qJGDwe?=
 =?iso-8859-1?Q?tjJAVmQTyIsFWXIPYhS1ZQ0Ly7AhcY8+tO6ncC3morjvkZoQZx143szpI6?=
 =?iso-8859-1?Q?DI7OFTLg2eNZpXFt952uFM/PuvLVC2TlzkcVT4IWEDG+i3cVYYHc5UqcxW?=
 =?iso-8859-1?Q?HD70Gwg5bLcgqE27/D8avhlWgiyipx9S6CyvGHK8QsIKr+Adzy812Kp7K6?=
 =?iso-8859-1?Q?O2SO4l+zUSA7FuJIySUJsy6YjqCefjqerJHP2Nfr8SQaLIqcTTCsrxTyxm?=
 =?iso-8859-1?Q?ITX7/SZtdew4bG5UixanckY0ozq14hruY9s8zFjBXVacgQq0AcxUkUazqZ?=
 =?iso-8859-1?Q?RC60RVd8JhhJtVIBcs7Vq/Ob3ujww5tSHUT8zn+wsIYpSj/qrxd3ZYuw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0582e1fa-738e-436a-0c1f-08de32babe76
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Dec 2025 22:24:37.2698
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Ov1uSgA8q27e5A6iVFYKkZoPC0EFBizltqThuiB4Y7fiTrPs5PwiBvxoTzgAIOSKYZ8Mkht1pwEiLhk6rxelH1fo2BiL5/eoGBV+l1ZOTX4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB10606

From: Grygorii Strashko <grygorii_strashko@epam.com>

Added CONFIG_COVERAGE_EXTENDED to enable coverage for .init and lib code.
When enabled - Xen .init data will not be freed.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
 xen/Kconfig.debug          | 10 ++++++++++
 xen/Rules.mk               | 13 +++++++++++++
 xen/arch/arm/setup.c       |  2 ++
 xen/arch/x86/setup.c       |  4 ++++
 xen/common/libelf/Makefile |  4 +++-
 xen/common/libfdt/Makefile |  4 +++-
 6 files changed, 35 insertions(+), 2 deletions(-)

diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index d900d926c555..3e04e1a3992b 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -44,6 +44,16 @@ config COVERAGE
=20
 	  If unsure, say N here.
=20
+config COVERAGE_EXTENDED
+    bool "Extended Code coverage support"
+    depends on COVERAGE
+    default y
+    help
+      Enable Extended code coverage support which include .init and libs c=
ode.
+      The .init sections are not freed in this case.
+
+      If unsure, say N here.
+
 config CONDITION_COVERAGE
 	bool "Condition coverage support"
 	depends on COVERAGE && CC_HAS_MCDC
diff --git a/xen/Rules.mk b/xen/Rules.mk
index 2b28d1ac3c18..6d66a2332fb0 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -145,11 +145,18 @@ endif
 # Ensure that profile/coverage data is updated atomically
 $(call cc-option-add,cov-cflags-$(CONFIG_COVERAGE),CC,-fprofile-update=3Da=
tomic)
=20
+ifeq ($(CONFIG_COVERAGE_EXTENDED),y)
+$(nocov-y) $(extra-y): \
+    cov-cflags-y :=3D
+
+$(obj-y) $(obj-bin-y) $(extra-y) $(lib-y): _c_flags +=3D $(cov-cflags-y)
+else
 # Reset cov-cflags-y in cases where an objects has another one as prerequi=
site
 $(nocov-y) $(filter %.init.o, $(obj-y) $(obj-bin-y) $(extra-y)): \
     cov-cflags-y :=3D
=20
 $(non-init-objects): _c_flags +=3D $(cov-cflags-y)
+endif
=20
 ifeq ($(CONFIG_UBSAN),y)
 # Any -fno-sanitize=3D options need to come after any -fsanitize=3D option=
s
@@ -260,6 +267,7 @@ $(obj)/%.o: $(src)/%.S FORCE
=20
=20
 quiet_cmd_obj_init_o =3D INIT_O  $@
+ifneq ($(CONFIG_COVERAGE_EXTENDED),y)
 define cmd_obj_init_o
     $(OBJDUMP) -h $< | while read idx name sz rest; do \
         case "$$name" in \
@@ -272,6 +280,11 @@ define cmd_obj_init_o
     done || exit $$?; \
     $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=
=3D.init.$(s)) $< $@
 endef
+else
+define cmd_obj_init_o
+    $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=
=3D.init.$(s)) $< $@
+endef
+endif
=20
 $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): $(obj)/%.init.o: $(ob=
j)/%.o FORCE
 	$(call if_changed,obj_init_o)
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 7ad870e382c2..900585eb7099 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -68,10 +68,12 @@ static __used void noreturn init_done(void)
 {
     int rc;
=20
+#if !defined(CONFIG_COVERAGE_EXTENDED)
     /* Must be done past setting system_state. */
     unregister_init_virtual_region();
=20
     free_init_memory();
+#endif
=20
     /*
      * We have finished booting. Mark the section .data.ro_after_init
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 872a8c63f94a..05810fa67787 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -845,6 +845,7 @@ static void noreturn init_done(void)
=20
     domain_unpause_by_systemcontroller(dom0);
=20
+#if !defined(CONFIG_COVERAGE_EXTENDED)
     /* MUST be done prior to removing .init data. */
     unregister_init_virtual_region();
=20
@@ -867,6 +868,9 @@ static void noreturn init_done(void)
     destroy_xen_mappings(start, end);
     init_xenheap_pages(__pa(start), __pa(end));
     printk("Freed %lukB init memory\n", (end - start) >> 10);
+#else
+    (void) end, (void) start, (void)va;
+#endif
=20
     /* Mark .rodata/ro_after_init as RO.  Maybe reform the superpage. */
     modify_xen_mappings((unsigned long)&__2M_rodata_start,
diff --git a/xen/common/libelf/Makefile b/xen/common/libelf/Makefile
index 917d12b006f7..337a3a8e1b35 100644
--- a/xen/common/libelf/Makefile
+++ b/xen/common/libelf/Makefile
@@ -1,5 +1,7 @@
 obj-bin-y :=3D libelf.o
-nocov-y +=3D libelf.o
+ifneq ($(CONFIG_COVERAGE_EXTENDED),y)
+	nocov-y +=3D libelf.o
+endif
 libelf-objs :=3D libelf-tools.o libelf-loader.o libelf-dominfo.o
=20
 SECTIONS :=3D text data $(SPECIAL_DATA_SECTIONS)
diff --git a/xen/common/libfdt/Makefile b/xen/common/libfdt/Makefile
index 6ce679f98f47..8c62563ccdbc 100644
--- a/xen/common/libfdt/Makefile
+++ b/xen/common/libfdt/Makefile
@@ -5,7 +5,9 @@ SECTIONS :=3D text data $(SPECIAL_DATA_SECTIONS)
 # For CONFIG_OVERLAY_DTB, libfdt functionalities will be needed during run=
time.
 ifneq ($(CONFIG_OVERLAY_DTB),y)
 OBJCOPYFLAGS :=3D $(foreach s,$(SECTIONS),--rename-section .$(s)=3D.init.$=
(s))
-nocov-y +=3D libfdt.o
+ifneq ($(CONFIG_COVERAGE_EXTENDED),y)
+	nocov-y +=3D libfdt.o
+endif
 endif
=20
 obj-y +=3D libfdt.o
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 22:25:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 22:25:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177162.1501548 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQvHx-0000zw-5o; Wed, 03 Dec 2025 22:25:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177162.1501548; Wed, 03 Dec 2025 22:25:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQvHx-0000zp-2h; Wed, 03 Dec 2025 22:25:33 +0000
Received: by outflank-mailman (input) for mailman id 1177162;
 Wed, 03 Dec 2025 22:25:32 +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
 <SRS0=WC6h=6J=epam.com=Oleksandr_Tyshchenko@srs-se1.protection.inumbo.net>)
 id 1vQvHw-0000WD-Jb
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 22:25:32 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fa754152-d096-11f0-9d1a-b5c5bf9af7f9;
 Wed, 03 Dec 2025 23:25:31 +0100 (CET)
Received: from DB7PR03MB3577.eurprd03.prod.outlook.com (2603:10a6:5:3::28) by
 GVXPR03MB10899.eurprd03.prod.outlook.com (2603:10a6:150:21a::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Wed, 3 Dec
 2025 22:25:27 +0000
Received: from DB7PR03MB3577.eurprd03.prod.outlook.com
 ([fe80::49f8:7615:b631:1a66]) by DB7PR03MB3577.eurprd03.prod.outlook.com
 ([fe80::49f8:7615:b631:1a66%5]) with mapi id 15.20.9388.003; Wed, 3 Dec 2025
 22:25:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fa754152-d096-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bZnFGUV6ZbgHIktDbln/eMPyhrPVQi5G1vhfB1m3qqrtiRTWg/ipe1ts+MZsU6kyzjQbLf2GrV7zcQd5J/jfTewEWtfgSzOAkpxTvoeUqgfw+b4VzI+XKJk5tuZhZ3/9aMadkzD3WAcd2Ch0ZVhZRaNzgdxAg5MWxNOK/fq0pnAjzVA8n9izNOZ93leEqxPbTPd4Fh9d2pBw2CrzKTXR4tPNo4jLk/HrvjdUbTo5cjndv7hqJaFwfktZUMS5UKAILzbZ43ZZB7y+aB3c9t38sBqdfQvHd0xOFm2Dkrww5JVqy7LEVFWjsoVxs0YTEgPv+HeijgUWAu9MOeVly+PyNg==
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=1qOMvZLcNNPGyyEBKWzT/OD/Ocn0P5AV/dLSORJsr98=;
 b=EJ2zdMv66QVxMNODhw4nwHr+zMXQAyy9mt1vCu9wM1+mqPxpoJeXPt6DE9CfldYvMYWvOYZzB3E1Lu4OwjgV2k1mYYP2kc7nLjMWwq2Oo05njO2eWhCgleFgZf/7Fz5ZnRMks4/q2+UCpznt5VTsP4qYSo39CVwMK+RrtlsiThoQgCJHdstNJF8LWJ2ZFWtBPqUtuDLVOkog/v1n/8kQJGriOoZPp61Euxeydgt+QGrFVWVs1pVg+FSxfmA56eKo1LUPC3+JNzHjwr/2LqxYLeSWO3J3yitXGcdO1AnhgZjSnWUQTTrZHLgNkW0yWFdvoP1V2UszebH4626O9aat9w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1qOMvZLcNNPGyyEBKWzT/OD/Ocn0P5AV/dLSORJsr98=;
 b=VDqD4y9B1e31S7/Ggr2OeLzrRvblfQrPrvv73lVIfaDjf6dTDqcBJlxFtlrjGzaXFCKuQBSJraqcW6xdf5g1NZqs1rgVEZ0tnXOXDUdltX+JBAx7Aiar6AubbweOyWOADVmB8RA1h3k8UrvS/kj84fESmRvJzHgr0WnEvqtdfdtoWRakM7k9/mEB+vtX4M5caKptPeAV7xilFlalK8SoLMkWNyRqfwpIU23o9dv9pnp9i9FvEU2IgWSfBId/PhrJQRQzn9a1cs2v3u/5HN+TdGCmx3PIDm6GSkIDzVPlT1EwdquhU4tPkoaY0C8dRvZPg9BuxmA3htqSf4HqwyX8YQ==
From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
To: Julien Grall <julien@xen.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH V2] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
Thread-Topic: [PATCH V2] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
Thread-Index: AQHcZIbKZWHMCLfhnk2g+3dibmJCCbUQaX2AgAAU4YA=
Date: Wed, 3 Dec 2025 22:25:27 +0000
Message-ID: <44f6cb05-33c3-4937-b508-7616c36d0e4d@epam.com>
References: <20251203185817.3722903-1-oleksandr_tyshchenko@epam.com>
 <6e83d3bc-c49c-49f4-9dbd-e994e53a62a7@xen.org>
In-Reply-To: <6e83d3bc-c49c-49f4-9dbd-e994e53a62a7@xen.org>
Accept-Language: en-US, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB7PR03MB3577:EE_|GVXPR03MB10899:EE_
x-ms-office365-filtering-correlation-id: 8cb9cf65-e3f7-4031-a660-08de32badc30
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|42112799006|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?Z3pOSitkTU51SkNzSjdqcmhyVlEyRGNpTjdVcVNHcHhyNkVIWDNTOW14SVQv?=
 =?utf-8?B?akErUk4zby9yWFRTcVlvK2xTb1VYWG9lVkh3K3JlTS9Lb0NGbkRYY3ZoYUIy?=
 =?utf-8?B?eG5PUXVxWTA2aWdpa3dBNDZLY0VYL2FQR0NXWU9tOHhVNUZ3MWs3V04wNVRC?=
 =?utf-8?B?QWVWTVRNS1c2NWR0enVqR3FJdGRvampBMTNWZThFSWQvdzFRSTVEUGlhWWt6?=
 =?utf-8?B?OExCNVFkUy9DcUp4NlZvMzJOaWFmb01SeXhUUVlvc0s4TkVZMm43NFhKRndk?=
 =?utf-8?B?amhOZURGNEwydkFBekZQMzI3eWRQWEZ1MmFpL0JZUE82OFM5OXl0Tnl5c3M2?=
 =?utf-8?B?ajFCZ2piMEpnUk55SnFQODJRSmswV2liVmp0U1NtS2pLNml0d3pGMFdUMVQz?=
 =?utf-8?B?VURPMFhQM0svd1U0clhZV3VHYTNzM1U4QnUxQ0xPRWEzaWU1VVBiZ0tzUVk3?=
 =?utf-8?B?QlFGalMxNlJoejdGbkpuQkFvckxTdjJrdFhRN3JIR2VQZWtUVG55dGkyUHdM?=
 =?utf-8?B?SWRZU3daR3BENjc0Tys1bi9DL1RSZk5VYWx5Z3RabFlwRWlyUVNsbEh2V0FE?=
 =?utf-8?B?SHV3NkV2Y0hQTENQU052RFhabnZkMjZJM1gxMFd0M3VQbVJ4QjlzYVp0cElF?=
 =?utf-8?B?RlJzZ1FPQ09mTXpmSUxuTXNHUmF6LzExNDcvR2tyM21RU0J3ZnM5NWZaN01F?=
 =?utf-8?B?VkszWmhmWVpWUnNpeGtHeFRqMi81cDh2c3FYWkNIaWlPVlBIOG5oQ25leDdK?=
 =?utf-8?B?bzVpdCtDNGNXRDNhbk1Vd0lDU0Y2ZVJyWUh5TCtrM2dlS1I4UkdRRng5Znd1?=
 =?utf-8?B?TFNvSkhMazZrQldkNWxsRXEvTkxnU1pTN3B2Zm5kN2U0UUx2cWl1WUw2MXND?=
 =?utf-8?B?U3d3SURGeDRMS0NUMXlkVmJpcS9kZ2Q3alVxMU9TUGFhSXdwMWFVMnlKSlg5?=
 =?utf-8?B?dUlKbU9NYlVnRGROd09sd1pLSTlMbmlHTnI1Mlc3THQzU1BFaVFXZkM5Qkk2?=
 =?utf-8?B?VmZMckFsZjlzZHpSTnVSRFpHRnBaaUp3bnB6cVZRRWFucGVBaVB5ZXk1TC9N?=
 =?utf-8?B?N1dESHlsWVRPUGUzc0QvQklSUS9IajRXUDg4WXRNREJock9TVXc5a1JMTnkx?=
 =?utf-8?B?NVBUcFNKKzF3U0FYMThMbS9OcStWYytvWmhsOWhJUVZtdXpnVjl0RHkyQjd6?=
 =?utf-8?B?OGpwdDVZVzBySE5oMzl0QkFpRzI3alpFUCt3RWR0YTNMNXZIS0lYSFFvMDJy?=
 =?utf-8?B?VWNtd21abTdZcThqb0c1NFMvbEsraFE0WnBiVmF5TnlmT1BOb09DeXBqa0RT?=
 =?utf-8?B?MHV5ME9Sb051M3h5RFpWWEdNb3VzbWUrZGQrVnNQOUNPYW5hNi8wVzVLVGFl?=
 =?utf-8?B?QytERlpBR2tGUkpjVXljNm8rOGpoRndKMzhya0lIa0R2VzRMN2J2R2V0R1dp?=
 =?utf-8?B?S043aFZ6VHJ1bzNhQ2hSTHlGcWdKeTVsdXZuUFU3eFRMYnBSaml6TnpmTUU5?=
 =?utf-8?B?OExaSHgrVVJWMnZyaGxmVGhHbm1QbGtKajdrQkhycVZtd25hL3B3VjhIYkpT?=
 =?utf-8?B?eDZwS2xDY3BNZEFtNXdoZmh4YTFOMjAyQ0tlTEFmQVd6bDNhK2NKbFRqdzBO?=
 =?utf-8?B?d2RSRUdNWWlLRWg5ZmM2UVY5Y1JnbWpJeEdsRTBOZm5PL0FPSVRkTy9BekhP?=
 =?utf-8?B?S09KdFlGVUxDNDZ6MHVhN3I4Y3NmNHNjMkIzV1Y2amMwWXN1TnNJUEFLZ3Fi?=
 =?utf-8?B?TnFLNGNYT3UzL0QzRGo0YWdKMHNtcm15TmxyaGFLak02UTZEQ01MZWVtb1RG?=
 =?utf-8?B?NVZUV1JJd0xpUUdSR3NTanVzSFlYa0RGMzBZZXBpd1ZnZG4xUXpjcWNneW1q?=
 =?utf-8?B?c3F5enlXM0sya0F5UWNJTnBMUVoyQTVKZnBacDhTcVYxeHFGTU1Pb2hKVXhO?=
 =?utf-8?B?VytiQ0VCMkNvSGs5T1gzeitNS0s4K1RWdW5qNk91a1pDNE0wMHh4d0kzSUJJ?=
 =?utf-8?B?NDhGZlk2a21BPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR03MB3577.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(42112799006)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?UExlT0tveHRBSTg5WjFGYlBZN2lselA0a0RRZE4rSzVaWUpKeU90TXdlUm9Y?=
 =?utf-8?B?WllLRTlNRDZxZkdWOXFDRjlHWEFndjhoTzNCbUJBU0lja1ZDSmt0WXJXTEhr?=
 =?utf-8?B?a1h3SmY4R04zT1J4S0FSWENGT2oxYlA1VWlrWDFCQlA4MXpIODU2VjdtdGho?=
 =?utf-8?B?TURBemZLSmZMbUVPcnlZRTNWVVlHQmptUjdKTXBmelJkQy9PMy9zcklKdHlP?=
 =?utf-8?B?NC9CUGNDQVVTMjB6SG05UUxNUjdYSm8vSWlaR05TNGkyZ21RaXBqRjNVOWdW?=
 =?utf-8?B?THgxR1Z2TUVJb1R1VlAwMFpFNzRFeGZ3MVlnYy9VTnRNU04zZ25pajlEUUJ4?=
 =?utf-8?B?TmhFdUxSOTYvR1ZSTjkvNldEc3c1RDJnSGVFYlFFNjF4WXJiSnNzTDFtRDBD?=
 =?utf-8?B?U2NaZFRoQXUzNVFDUkVieFlPdHB4T0pXbzNzUXJ5eHlXLzVaZmo2bFA5aHJt?=
 =?utf-8?B?aXlFRDdRV1NmRmFNSHJvejNCaE90aDNkc3JGdmoxcTVFeXBRS01pZ0FZeHp2?=
 =?utf-8?B?N01XZUF3RWtTMmc1K3UxbFA5dGhOZ0FHRWtVUHZOWG5yM292MzdxblZCY0JW?=
 =?utf-8?B?WXlhcU5xNTNEbWZVVlI5OW9TNFhMYUIvN3hteTlMcncrREtNMzlET0hPTGc0?=
 =?utf-8?B?Wkk5QkhZbzBKOEdHQmlqa2FvRnpPNWdaUG5ZOVU3YnQxc1o2U25VMDFxc2JH?=
 =?utf-8?B?SW9ZdjlEWXRqZzBMV3F5WnhuMFlMbGhpMkVkSTdIc0tRWVRiTkE3VEVQOHJ5?=
 =?utf-8?B?R0hiUFc0SWhUNlFwQlkyUzZSMWFtUWI5TkRLTE42bU9pSTVJWC83bDZlWFNl?=
 =?utf-8?B?YlM4SUc3UWEzL2NuS1N1VUNQMzAvTnNNd3pnQ3pkVS9Xa1Q2VHVUdUVYYW5P?=
 =?utf-8?B?RzdPallzdnhSV1RRVURiTm02MXBKZWtQTUxnVGswV3p4T3B3ZnBsbVVjTlFl?=
 =?utf-8?B?bXNIQTRVTFJWSTdtNDgrdVFSTUE2N1F2amRyL1NvWlJ1L0NLWnZSYllSaXRp?=
 =?utf-8?B?c3NJempkaEwvd0dBWmpiNy9uWmdGWVdRN3lxbmdJVXVHT1MvQjlUNXRScThk?=
 =?utf-8?B?akh3NjBlVXdFRldHVzFGdU5qSGtLdlc3QVQ3RzY4NjZoQkxrcnphajQ2N3pu?=
 =?utf-8?B?YjNFTWNLWGw4dkJwTmE0SnZydCthU0ZRNEJOeGFCdzhPQU9ZMlVhbHFwdGt0?=
 =?utf-8?B?ZWRxbjBGVkw1dVk1aEo3S0RCYm04UFk4R0FQTFd3N2xmMkozTkQ1S0ptQlNG?=
 =?utf-8?B?SmFoYmVuRnovZ3NkTDVuQ3hjczZzT2lrWmNyQzJ2KzV4TDhHekhEcUFIaGJy?=
 =?utf-8?B?dmZydmROTGRGVHlCckZhNmVMR1dJMnRJUVE3K1lrU1htc3U5MGNEZGFTak1B?=
 =?utf-8?B?V0tVTmxIZnF0bG4xSDczZjlmNE9aVFloNXdRK1NMYm9qVGE1UGFuaUF6RGdy?=
 =?utf-8?B?RTdXU2doZE1rTW1JazM2UG05WEFCbVU4N3N2TW0xRTBRc0hNSkh5TVpkN3dR?=
 =?utf-8?B?bUdNOFQ0TjVxNjZ3MTV3WkIxY1c5NXZTUnRiOUZyU0xxRitYSFlmbUtMUHdY?=
 =?utf-8?B?MThSQ1hyd1pKME9zWHNGVXBVSkNXVS9uTzd3d2ErSFNTRWRjNjVtZGhualZD?=
 =?utf-8?B?Z0V0S3h1K2ErR0J3VDE1N3Rqa3BVdG92V1c2MSt0U3lVenZhRXVKVjhkRnJ6?=
 =?utf-8?B?djZobnBLVU53bzY5OE1QWEFPN2E4NUs4OXpKQjNWMmZRVGlRd1BpUUcrVktW?=
 =?utf-8?B?dHBwZjk1OHZhd2FZd2J5T25JRFp6UTBGdmp0NUZLT0JDOXJYcHRnMDJPVVNk?=
 =?utf-8?B?dHJOckgyYXBTRnYrWjlpVHZrWjBVTWJwZUlMVHdmc3RNcXYyRUw0TUI1WWNr?=
 =?utf-8?B?aEhvZlNLb2RBZGVRVVdnMCtCVlZkYXpyaHpIZ29TVFRXb2tnYUh6MzBDdXlW?=
 =?utf-8?B?RUFJUEliNjh6Y0tnWnRyQy90dHhrTzViTFZKbWc3RzNLUGRHTmpRU01aZDky?=
 =?utf-8?B?TExiSFI0UzZmR2d2SnBwK2FudFpZSG1ZS1lLMy9WOXcwbmg2MnpzbUR0blpw?=
 =?utf-8?B?VTU2TGpEaUhienRWd21TUWVvWjMrdzlvVDVqcnF0QStFL01VYTgxU1RCNk5T?=
 =?utf-8?B?TGhIbkhYYnFaaDNHcXBYYXpiRnVqRTREVDhiR3YvYWdEMURvbkF5Ym52TE5T?=
 =?utf-8?Q?2CRsnQm8igaYE0ZfvVowF1Y=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <E986ABC48805064F86B8CAB52194C7C7@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB3577.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8cb9cf65-e3f7-4031-a660-08de32badc30
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Dec 2025 22:25:27.2053
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: WxMyulg0x2IDpNaoNNRyua4xMshGL1SVXfXl7/s3EPi8c7/R0rHEb46KYl2kbO/fsmdyBKoxd4mINpvu66oWgk+DpqGVc7o840r24VaxwzE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB10899

DQoNCk9uIDAzLjEyLjI1IDIzOjEwLCBKdWxpZW4gR3JhbGwgd3JvdGU6DQo+IEhpLA0KDQpIZWxs
byBKdWxpZW4NCg0KPiANCj4gT24gMDMvMTIvMjAyNSAxODo1OCwgT2xla3NhbmRyIFR5c2hjaGVu
a28gd3JvdGU6DQo+PiBDcmVhdGluZyBhIGRvbTBsZXNzIGd1ZXN0IHdpdGggYSBoaWdoIHZDUFUg
Y291bnQgKGUuZy4sID4zMikgZmFpbHMNCj4+IGJlY2F1c2UgdGhlIGZpeGVkIDRLaUIgZGV2aWNl
IHRyZWUgYnVmZmVyIChET01VX0RUQl9TSVpFKSBvdmVyZmxvd3MNCj4+IGR1cmluZyBjcmVhdGlv
bi4NCj4+DQo+PiBUaGUgRkRUIG5vZGVzIGZvciBlYWNoIHZDUFUgYXJlIHRoZSBwcmltYXJ5IGNv
bnN1bWVyIG9mIHNwYWNlLA0KPj4gYW5kIHRoZSBwcmV2aW91cyBmaXhlZC1zaXplIGJ1ZmZlciB3
YXMgaW5zdWZmaWNpZW50Lg0KPj4NCj4+IFRoaXMgcGF0Y2ggcmVwbGFjZXMgdGhlIGZpeGVkIHNp
emUgd2l0aCBhIGZvcm11bGEgdGhhdCBjYWxjdWxhdGVzDQo+PiB0aGUgcmVxdWlyZWQgYnVmZmVy
IHNpemUgYmFzZWQgb24gYSBmaXhlZCBiYXNlbGluZSBwbHVzIGEgc2NhbGFibGUNCj4+IHBvcnRp
b24gZm9yIGVhY2ggcG90ZW50aWFsIHZDUFUgdXAgdG8gdGhlIE1BWF9WSVJUX0NQVVMgbGltaXQu
DQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5kcl90
eXNoY2hlbmtvQGVwYW0uY29tPg0KPj4gLS0tDQo+PiBWMTogaHR0cHM6Ly9ldXIwMS5zYWZlbGlu
a3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/IA0KPj4gdXJsPWh0dHBzJTNBJTJGJTJGcGF0Y2hl
dy5vcmclMkZYZW4lMkYyMDI1MTIwMjE5MzI0Ni4zMzU3ODIxLTEtIA0KPj4gb2xla3NhbmRyLl81
RnR5c2hjaGVua28lNDBlcGFtLmNvbSUyRiZkYXRhPTA1JTdDMDIlN0NPbGVrc2FuZHJfVHlzaGNo
ZW5rbyU0MGVwYW0uY29tJTdDNTdiZjc3MTFhYzQ3NDdkZTNkMmYwOGRlMzJiMDY5Y2UlN0NiNDFi
NzJkMDRlOWY0YzI2OGE2OWY5NDlmMzY3YzkxZCU3QzElN0MwJTdDNjM5MDAzOTMwNDQzOTcwNjM5
JTdDVW5rbm93biU3Q1RXRnBiR1pzYjNkOGV5SkZiWEIwZVUxaGNHa2lPblJ5ZFdVc0lsWWlPaUl3
TGpBdU1EQXdNQ0lzSWxBaU9pSlhhVzR6TWlJc0lrRk9Jam9pVFdGcGJDSXNJbGRVSWpveWZRJTNE
JTNEJTdDMCU3QyU3QyU3QyZzZGF0YT11NnBwMzklMkZWdG8ydlU3SHA1YVhsNDZWRjR6RHZEOEM3
OVhwMDliYm93UzQlM0QmcmVzZXJ2ZWQ9MA0KPj4NCj4+IMKgwqAgVjI6DQo+PiDCoMKgwqAgLSB1
cGRhdGUgY29tbWl0IHN1YmovZGVzYw0KPj4gwqDCoMKgIC0gdXNlIGEgZm9ybXVsYSB0aGF0IGFj
Y291bnRzIE1BWF9WSVJUX0NQVVMNCj4+IMKgwqDCoCAtIGFkZCBCVUlMRF9CVUdfT04NCj4+IC0t
LQ0KPj4gLS0tDQo+PiDCoCB4ZW4vY29tbW9uL2RldmljZS10cmVlL2RvbTBsZXNzLWJ1aWxkLmMg
fCAxNiArKysrKysrKysrKysrLS0tDQo+PiDCoCAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9u
cygrKSwgMyBkZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9kZXZp
Y2UtdHJlZS9kb20wbGVzcy1idWlsZC5jIGIveGVuL2NvbW1vbi8gDQo+PiBkZXZpY2UtdHJlZS9k
b20wbGVzcy1idWlsZC5jDQo+PiBpbmRleCAzZjViOTg3ZWQ4Li4zOGE1ODMwODEzIDEwMDY0NA0K
Pj4gLS0tIGEveGVuL2NvbW1vbi9kZXZpY2UtdHJlZS9kb20wbGVzcy1idWlsZC5jDQo+PiArKysg
Yi94ZW4vY29tbW9uL2RldmljZS10cmVlL2RvbTBsZXNzLWJ1aWxkLmMNCj4+IEBAIC00NjEsMTUg
KzQ2MSwyNSBAQCBzdGF0aWMgaW50IF9faW5pdCANCj4+IGRvbWFpbl9oYW5kbGVfZHRiX2Jvb3Rf
bW9kdWxlKHN0cnVjdCBkb21haW4gKmQsDQo+PiDCoCAvKg0KPj4gwqDCoCAqIFRoZSBtYXggc2l6
ZSBmb3IgRFQgaXMgMk1CLiBIb3dldmVyLCB0aGUgZ2VuZXJhdGVkIERUIGlzIHNtYWxsIA0KPj4g
KG5vdCBpbmNsdWRpbmcNCj4+IC0gKiBkb21VIHBhc3N0aHJvdWdoIERUIG5vZGVzIHdob3NlIHNp
emUgd2UgYWNjb3VudCBzZXBhcmF0ZWx5KSwgNEtCIA0KPj4gYXJlIGVub3VnaA0KPj4gLSAqIGZv
ciBub3csIGJ1dCB3ZSBtaWdodCBoYXZlIHRvIGluY3JlYXNlIGl0IGluIHRoZSBmdXR1cmUuDQo+
PiArICogZG9tVSBwYXNzdGhyb3VnaCBEVCBub2RlcyB3aG9zZSBzaXplIHdlIGFjY291bnQgc2Vw
YXJhdGVseSkuIFRoZSANCj4+IHNpemUgaXMNCj4+ICsgKiBjYWxjdWxhdGVkIGZyb20gYSBmaXhl
ZCBiYXNlbGluZSBwbHVzIGEgc2NhbGFibGUgcG9ydGlvbiBmb3IgZWFjaCANCj4+IHBvdGVudGlh
bA0KPj4gKyAqIHZDUFUgbm9kZSB1cCB0byB0aGUgc3lzdGVtIGxpbWl0IChNQVhfVklSVF9DUFVT
KSwgYXMgdGhlIHZDUFUgDQo+PiBub2RlcyBhcmUNCj4+ICsgKiB0aGUgcHJpbWFyeSBjb25zdW1l
ciBvZiBzcGFjZS4NCj4+ICsgKg0KPj4gKyAqIFRoZSBiYXNlbGluZSBvZiAyS2lCIGlzIGEgc2Fm
ZSBidWZmZXIgZm9yIGFsbCBub24tdkNQVSBGRFQgY29udGVudC4NCj4gDQo+IFdoYXQgaWYgdGhl
IHVzZSBkZWNpZGVzIHRvIHBhc3MgYSBEVEIgZnJhZ21lbnQ/IEhvdyBkbyB3ZSBrbm93IHRoaXMg
d2lsbCANCj4gZml0IGluIHRoZSAyS2lCPw0KDQpJZiBhIHBhcnRpYWwgZGV2aWNlIHRyZWUgaXMg
cHJvdmlkZWQgdGhlbiBpdCB3aWxsIGJlIGFjY291bnRlZCANCnNlcGFyYXRlbHkuIFRoZXJlIGlz
IGEgY29kZSwgbm9uLXZpc2libGUgaXMgdGhlIGNvbnRleHQsIHNvIEkgdGhpbmssIHdlIA0KYXJl
IGdvb2QgaGVyZS4NCg0KICAgICAvKiBBY2NvdW50IGZvciBkb21VIHBhc3N0aHJvdWdoIERUIHNp
emUgKi8NCiAgICAgaWYgKCBraW5mby0+ZHRiICkNCiAgICAgICAgIGZkdF9zaXplICs9IGtpbmZv
LT5kdGItPnNpemU7DQoNCg0KPiANCj4+ICsgKiBFbXBpcmljYWwgdGVzdGluZyB3aXRoIHRoZSBt
YXhpbXVtIG51bWJlciBvZiBvdGhlciBkZXZpY2UgdHJlZSANCj4+IG5vZGVzIHNob3dzDQo+PiAr
ICogYSBmaW5hbCBjb21wYWN0ZWQgYmFzZSBzaXplIG9mIH4xLjVLaUIuIFRoZSAxMjggYnl0ZXMg
cGVyIHZDUFUgaXMgDQo+PiBkZXJpdmVkDQo+PiArICogZnJvbSBhIHdvcnN0LWNhc2UgYW5hbHlz
aXMgb2YgdGhlIEZEVCBjb25zdHJ1Y3Rpb24tdGltZSBzaXplIGZvciBhIA0KPj4gc2luZ2xlDQo+
PiArICogdkNQVSBub2RlLg0KPiANCj4gRm9yIGluLWNvZGUgZG9jdW1lbnRhdGlvbiwgdGhpcyBp
cyBvayB0byBqdXN0IHByb3ZpZGUgc29tZSBudW1iZXJzLiBCdXQgDQo+IHRoaXMgbmVlZHMgYSBi
aXQgbW9yZSBkZXRhaWxzIGluIHRoZSBjb21taXQgbWVzc2FnZSB3aXRoIHRoZSBleGFjdCB0ZXN0
cyANCj4geW91IGRpZC4gVGhpcyB3b3VsZCBiZSBoZWxwZnVsIGlmIHdlIGV2ZXIgbmVlZCB0byBj
aGFuZ2UgdGhlIHNpemUgKGZvciANCj4gaW5zdGFuY2Ugd2UgY291bGQgaGF2ZSBleHRyYSBlbXVs
YXRlZCBkZXZpY2VzIG9yIHdlIG5lZWQgYW5vdGhlciANCj4gcHJvcGVydHkgcGVyIENQVSkuDQoN
Cm9rLCBJIHdpbGwgYWRkIG15IHRlc3RpbmcgZGV0YWlscyBpbnRvIHRoZSBjb21taXQgZGVzY3Jp
cHRpb24uDQoNCj4gDQo+PiDCoMKgICovDQo+PiAtI2RlZmluZSBET01VX0RUQl9TSVpFIDQwOTYN
Cj4+ICsjZGVmaW5lIERPTVVfRFRCX1NJWkUgKDIwNDggKyAoTUFYX1ZJUlRfQ1BVUyAqIDEyOCkp
DQo+IA0KPiBPbiBBcm0zMiwgTUFYX1ZJUlRfQ1BVUyBpcyA4LiBUaGlzIG1lYW5zIHRoZSBuZXcg
RE9NVV9EVEJfU0laRSBpcyBnb2luZyANCj4gdG8gYmUgc21hbGxlciB0aGFuIDQwOTYuIFdoeSBp
cyBpdCBvaz8NCg0KWW91IGFyZSBjb3JyZWN0IHRvIHF1ZXN0aW9uIHRoZSBpbXBhY3Qgb24gQXJt
MzIsIHdoZXJlIE1BWF9WSVJUX0NQVVMgaXMgDQpzbWFsbGVyLCBsZWFkaW5nIHRvIGEgY2FsY3Vs
YXRlZCBidWZmZXIgc2l6ZSBvZiAzMDcyIGJ5dGVzLCB3aGljaCBpcyANCmxlc3MgdGhhbiB0aGUg
b3JpZ2luYWwgNDA5NiBieXRlcy4NCg0KVW5mb3J0dW5hdGVseSwgSSBoYXZlIG5vIHBvc3NpYmls
aXR5IHRvIHRlc3Qgb24gQXJtMzIuIEJ1dCwgSSBkbyBub3Qgc2VlIA0KbXVjaCBkaWZmZXJlbmNl
IGJldHdlZW4gQXJtNjQgYW5kIEFybTMyIGluIHRoZSBjb250ZXh0IG9mIERvbVUgZGV2aWNlIA0K
dHJlZSBnZW5lcmF0aW9uIGJ5IGxvb2tpbmcgaW50byB0aGUgY29kZS4NCg0KSSBzaW11bGF0ZWQg
dGhpcyBleGFjdCBlbnZpcm9ubWVudCBvbiBteSBBcm02NCBzZXR1cCB0byB2YWxpZGF0ZSB0aGF0
IA0KdGhlIG5ldyBzaXplIHJlbWFpbnMgc3VmZmljaWVudC4gVG8gZG8gdGhpcywgSSB0ZW1wb3Jh
cmlseSBzd2l0Y2hlZCANCk1BWF9WSVJUX0NQVVMgdG8gOCBhbmQgcmFuIHRlc3RzIHdpdGggMSBh
bmQgOCB2Q1BVcy4NCg0KDQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9kZXZpY2UtdHJlZS9kb20w
bGVzcy1idWlsZC5jIA0KYi94ZW4vY29tbW9uL2RldmljZS10cmVlL2RvbTBsZXNzLWJ1aWxkLmMN
CmluZGV4IDM4YTU4MzA4MTMuLjBjNjRiOWRmYjcgMTAwNjQ0DQotLS0gYS94ZW4vY29tbW9uL2Rl
dmljZS10cmVlL2RvbTBsZXNzLWJ1aWxkLmMNCisrKyBiL3hlbi9jb21tb24vZGV2aWNlLXRyZWUv
ZG9tMGxlc3MtYnVpbGQuYw0KQEAgLTQ3Miw3ICs0NzIsNyBAQCBzdGF0aWMgaW50IF9faW5pdCAN
CmRvbWFpbl9oYW5kbGVfZHRiX2Jvb3RfbW9kdWxlKHN0cnVjdCBkb21haW4gKmQsDQogICAqIGZy
b20gYSB3b3JzdC1jYXNlIGFuYWx5c2lzIG9mIHRoZSBGRFQgY29uc3RydWN0aW9uLXRpbWUgc2l6
ZSBmb3IgYSANCnNpbmdsZQ0KICAgKiB2Q1BVIG5vZGUuDQogICAqLw0KLSNkZWZpbmUgRE9NVV9E
VEJfU0laRSAoMjA0OCArIChNQVhfVklSVF9DUFVTICogMTI4KSkNCisjZGVmaW5lIERPTVVfRFRC
X1NJWkUgKDIwNDggKyAoOCAqIDEyOCkpDQogIHN0YXRpYyBpbnQgX19pbml0IHByZXBhcmVfZHRi
X2RvbVUoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IA0Ka2VybmVsX2luZm8gKmtpbmZvKQ0KICB7
DQogICAgICBpbnQgYWRkcmNlbGxzLCBzaXplY2VsbHM7DQpAQCAtNTc3LDYgKzU3Nyw5IEBAIHN0
YXRpYyBpbnQgX19pbml0IHByZXBhcmVfZHRiX2RvbVUoc3RydWN0IGRvbWFpbiAqZCwgDQpzdHJ1
Y3Qga2VybmVsX2luZm8gKmtpbmZvKQ0KICAgICAgaWYgKCByZXQgPCAwICkNCiAgICAgICAgICBn
b3RvIGVycjsNCg0KKyAgICBwcmludGsoIkZpbmFsIGNvbXBhY3RlZCBGRFQgc2l6ZSBpczogJWQg
Ynl0ZXNcbiIsIA0KZmR0X3RvdGFsc2l6ZShraW5mby0+ZmR0KSk7DQorICAgIHByaW50aygiUHJl
ZGVmaW5lZCBGRFQgc2l6ZSBpczogJWQgYnl0ZXNcbiIsIERPTVVfRFRCX1NJWkUpOw0KKw0KICAg
ICAgcmV0dXJuIDA7DQoNCiAgICBlcnI6DQooRU5EKQ0KDQoNCg0KY3B1cz0xDQooWEVOKSBGaW5h
bCBjb21wYWN0ZWQgRkRUIHNpemUgaXM6IDE1ODYgYnl0ZXMNCihYRU4pIFByZWRlZmluZWQgRkRU
IHNpemUgaXM6IDMwNzIgYnl0ZXMNCg0KY3B1cz04DQooWEVOKSBGaW5hbCBjb21wYWN0ZWQgRkRU
IHNpemUgaXM6IDIzNzAgYnl0ZXMNCihYRU4pIFByZWRlZmluZWQgRkRUIHNpemUgaXM6IDMwNzIg
Ynl0ZXMNCg0KQWxzbywgaWYgSSB1bmRlcnN0YW5kIHRoZSBjb2RlIGNvcnJlY3RseSwgb24gQXJt
MzIgdGhlICJlbmFibGUtbWV0aG9kID0gDQoicHNjaSIgaXMgbm90IGFkZGVkIHRvIHRoZSBnZW5l
cmF0ZWQgZGV2aWNlIHRyZWUsIHNvIEFybTMyJ3MgdkNQVSBub2RlIA0Kd291bGQgcmVxdWlyZSBs
ZXNzIHNwYWNlLg0KDQogICAgIGlmICggaXNfNjRiaXRfZG9tYWluKGQpICkNCiAgICAgew0KICAg
ICAgICAgcmVzID0gZmR0X3Byb3BlcnR5X3N0cmluZyhmZHQsICJlbmFibGUtbWV0aG9kIiwgInBz
Y2kiKTsNCiAgICAgICAgIGlmICggcmVzICkNCiAgICAgICAgICAgICByZXR1cm4gcmVzOw0KICAg
ICB9DQoNCg0KDQo+IA0KPj4gwqAgc3RhdGljIGludCBfX2luaXQgcHJlcGFyZV9kdGJfZG9tVShz
dHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgDQo+PiBrZXJuZWxfaW5mbyAqa2luZm8pDQo+PiDCoCB7
DQo+PiDCoMKgwqDCoMKgIGludCBhZGRyY2VsbHMsIHNpemVjZWxsczsNCj4+IMKgwqDCoMKgwqAg
aW50IHJldCwgZmR0X3NpemUgPSBET01VX0RUQl9TSVpFOw0KPj4gK8KgwqDCoCBCVUlMRF9CVUdf
T04oRE9NVV9EVEJfU0laRSA+IFNaXzJNKTsNCj4+ICsNCj4+IMKgwqDCoMKgwqAga2luZm8tPnBo
YW5kbGVfaW50YyA9IEdVRVNUX1BIQU5ETEVfR0lDOw0KPj4gwqAgI2lmZGVmIENPTkZJR19HUkFO
VF9UQUJMRQ0KPiANCj4gQ2hlZXJzLA0KPiANCg==


From xen-devel-bounces@lists.xenproject.org Wed Dec 03 22:34:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2025 22:34:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177181.1501557 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQvQC-0002n0-4O; Wed, 03 Dec 2025 22:34:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177181.1501557; Wed, 03 Dec 2025 22:34:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vQvQC-0002mt-1I; Wed, 03 Dec 2025 22:34:04 +0000
Received: by outflank-mailman (input) for mailman id 1177181;
 Wed, 03 Dec 2025 22:34:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gGbu=6J=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vQvQA-0002mn-HF
 for xen-devel@lists.xenproject.org; Wed, 03 Dec 2025 22:34:02 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 284fd19c-d098-11f0-980a-7dc792cee155;
 Wed, 03 Dec 2025 23:33:59 +0100 (CET)
Received: from SA9PR13CA0070.namprd13.prod.outlook.com (2603:10b6:806:23::15)
 by DM4PR12MB6158.namprd12.prod.outlook.com (2603:10b6:8:a9::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Wed, 3 Dec
 2025 22:33:52 +0000
Received: from SA2PEPF000015C8.namprd03.prod.outlook.com
 (2603:10b6:806:23:cafe::84) by SA9PR13CA0070.outlook.office365.com
 (2603:10b6:806:23::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.9 via Frontend Transport; Wed, 3
 Dec 2025 22:33:52 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF000015C8.mail.protection.outlook.com (10.167.241.198) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Wed, 3 Dec 2025 22:33:51 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Wed, 3 Dec
 2025 16:33:51 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 3 Dec
 2025 16:33:50 -0600
Received: from [172.31.77.70] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 3 Dec 2025 14:33:50 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 284fd19c-d098-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MiBnQa7lTpXtdtV4FqVPVJOz8qPW32RM3U8Dk5ZzV9plWrvC7TrURYF0JvlI6WhKjMquKVYWSQ9AvcOapRua6jc2kAE4+1UYID5DdqoLVL+HiSU45+l4956J6D8c4GWPhjIaSRMmQM1Q57o129ux10D9Fm/ZPo0ceOId2J34edJZZEgvw7jES1zkLAWxhnmnETtyvl6OKquad8ffH9Ao9CyfXqmyFfinFaCe9f2eYR5shA5gy3zp+ma8tP945DbWx8mmA9Nx0lKLw1dAbvN9WWbVXfIglYhla7NodXF50K5nNA1aCteQTsuL3QsHj5CrGRDFGh2p5pUVnGVi9LUSAg==
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=1wMUjIOgBaaeqtG0iX+BgpwxQMFFHvUc/PUYaR6KRgI=;
 b=PrlJ9eK3E9NoCsHbyt7JplrOtyd2WTp7xpPmAycUfanPR1bSfIWdMiDmt4lKU3cqpwmVAbHGpmnNG6Sy2KJxDnktnTY6KtRPh584RBMci/enQ5dXM0mfpsct5m7ev1dmw4y7ZSn/Wo2UpKfuRe9UX6xEWPVmE6oE1GUpD7CbCJ/fuxQDv6Q+Ra/qArGHHI0MJPL1phdG6tlJmX1X6bwCMaZOzGIG/rENrX3kPhjIW0Zug88F5AYixsLYEsPnNRIDTqOScKgjfS6lfNfLbxvQc24Wsq906lFpSH2pmMF+LWYpRU09zDpyC3B/Wd+8v313Lhi1GDzEhix+WC/G77QN0w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=invisiblethingslab.com
 smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100)
 action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1wMUjIOgBaaeqtG0iX+BgpwxQMFFHvUc/PUYaR6KRgI=;
 b=xbDPHEYuK9pKubbHEJnisAObYJ8+8qlmap2F64Rj7KJwttSQw59dZlcpVM3dfIAMZspVeLYX5ejxoe6D8dK6mfhgyjPgjEwvYz1NIFcJYeK4VvJY2SYz8j3w/xGWAq0Tb60G+yxz4aphK+pLq/TPzCD7H5TqAIRl+eyN9iIgcfk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <a1e7acec-b437-427f-ba76-5a264df689ef@amd.com>
Date: Wed, 3 Dec 2025 17:33:49 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xenbus: Use .freeze/.thaw to handle xenbus devices
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>
CC: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, Yann Sionneau <yann.sionneau@vates.tech>,
	<xen-devel@lists.xenproject.org>, <linux-kernel@vger.kernel.org>, "Daniel
 Smith" <dpsmith@apertussolutions.com>, Christopher Clark
	<christopher.w.clark@gmail.com>
References: <20251119224731.61497-1-jason.andryuk@amd.com>
 <20251119224731.61497-2-jason.andryuk@amd.com> <aSul6qAYTSOSFJR3@mail-itl>
 <fb1e5c6f-cb0e-49d0-9e96-8e778573f49c@amd.com> <aS4Tw7hUJDw6Jt_9@mail-itl>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <aS4Tw7hUJDw6Jt_9@mail-itl>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB04.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015C8:EE_|DM4PR12MB6158:EE_
X-MS-Office365-Filtering-Correlation-Id: c7e1ec43-af7e-4ccd-2495-08de32bc08f2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|30052699003|82310400026|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?R2tZa1lZaFNmQ3hQR09XVWhneld5WGxmSCtzWkdQaVM5eUx6SS9FOGcvdFNX?=
 =?utf-8?B?TUE4N0gyY2hzVFhkOWFXd1kzaDNkY1g1aVNGblcvK0FHa3JzMlYzb1RmNkJ5?=
 =?utf-8?B?elBTd3BZR2Q0KzFkUVFYZGRyNUR0L3BhVkJxWUUvdHYvZHFiTzIyWjQ1cHp6?=
 =?utf-8?B?ZHU1RGZlcXdET1AwaVQ4K25lb1N4eFUyK1UraThKT3RvM0x2NWlDVmtMbjdo?=
 =?utf-8?B?cVM1QmRKWGNwTHV4ejNkQThGRXQweWxlZURqd3g5YTk2ZFoxSmllUVRJeXFQ?=
 =?utf-8?B?c1IvOENoelkvb0hSanFXcHduWlB6QlFlMStEU1cwWTZxcjZ3VHArcGNrSXh3?=
 =?utf-8?B?T2dqODI3dDVuSGlTdkk4NkVSNG8yNkk0SlZlMEFLRDBLRHdnV1VTU0UzT1dk?=
 =?utf-8?B?K01IQVlLdXRBT0Q1ekJhVmovaFkyMXZDR2JVSm81MlEyUU44dkF5L291a3VV?=
 =?utf-8?B?NnpkSTQ4RHpJb0RJNUJhd0lUQ1BkQmhpY1NmS2E5VEd4MFNwVVkwbmdSSktx?=
 =?utf-8?B?TFZGV1Y3c0ZuUkRFajBVUmQvU2p1ZU1seDg5MU5uejZ0WFl2OXI3VW5CV2Qy?=
 =?utf-8?B?aGNhYW5tU2FKazdRc2JTcXgxdUhFalJycFRMU2tzbmVlVGNJdjV3R1l6dHlR?=
 =?utf-8?B?enJBb0tqRWd3V0dPTEJsUXV6bStJMmZXWG01d0hKbTBjVTRlMW1Sb3J6Znd2?=
 =?utf-8?B?Y04rMi9jYTd3QUpsL3Y4RFQ4ekp6NDhkeEhHcUVSc1p6djVJMGs2UEhCSmR4?=
 =?utf-8?B?SklKemx4TmVIK1dmcXlDZUZaVHJPVXdPL2dVTzY3dVJrOTB3Mjl4Q3AyZENU?=
 =?utf-8?B?cHN6L2FlOUxWY0NxOEdTWkxwQmRoSEp6MCtqQlI4cGNuSmlDT3pmSWwreVVT?=
 =?utf-8?B?NlQwdVlZUWlPVUhZSDkwUWVKbHpnUnFvZk5TbUViK28reXZVUWFCaHdsaW9z?=
 =?utf-8?B?SlJxcGR1MUJkTzd1c1VYTWpSQ1ZyazNUdWtpM2g5VkNwamUxMHh1WFpmTjBw?=
 =?utf-8?B?c1MzaHkzaWZkWnkwanZ4eUFpcWNZakxaRnV3K25RYlBuazBmRXNFcVRxRUJY?=
 =?utf-8?B?Q29nVUlaNEpGSGZLQkVIcDVhd3c2OVAwSFBYZTJkRU5YbjhtK2VLZHFLT0Z1?=
 =?utf-8?B?ei9aNDlFZVY0OWRWUXc4Tmc4RXRwbmQwUHJ0VFkwZW1OUDhnWGZTMW9xdm80?=
 =?utf-8?B?NE5WOHYyYWVGamc3U2xRaFM3dHc4U0FRR0t2T2JhbngyU3pOODdWWmNGVk9I?=
 =?utf-8?B?c01hWWY1bGwwOHZnMng2cHo5U1VQMDQwTUxlVzRRaGZBblJZL3MvTWJGeGIx?=
 =?utf-8?B?RkdJSmwyNFovV29uT1RQNlpRTE52c1ZZekJjeUhSWWYxMjFzVGRZUkd3S0RC?=
 =?utf-8?B?ci9heE5aMjlKOExJS0FKNHF2R0RzajNMVTlXa3Erb09oZ3RQeEliUzBsYWZo?=
 =?utf-8?B?TGFvcThzNXFRRWc3a3A1QWFIWFZzZ1o4Q29zTEJ5cmV0b05kTjlkSHl4aFBF?=
 =?utf-8?B?eUI3aHhSU253NlhCRGZvY1ZLRWFFc0xscGM0VE1SSGo0QlNvYzkwUWRibFV4?=
 =?utf-8?B?MjdWYytaV3ZZbENEOFBlUk9Gekl6M1hqNGFJL2M5R0xKeWtjelhYQ1VLVTZ6?=
 =?utf-8?B?azdBMmJYbTV3MXQxTDFHRWl2QWtkM0RMUmg1c2dqOHZSQ3dWbkdrd0IyZmpQ?=
 =?utf-8?B?TXNOTFAyTXp4T1pSZCt6MWdMTURZMktEZVlZVVpFMW1TK05Ia0Q2UTBvd0hp?=
 =?utf-8?B?TVpOTk1vZ1lIaG5iZXJIS2p0ekZpVWNWT0Y1VUNUcmRva1VTaGU3ZzNQRXRp?=
 =?utf-8?B?cXJmSWdRWXlxN042VTFSeDBrNHB0L0RaT3FReVBURzBjTTlqa1FWRW1KWWFZ?=
 =?utf-8?B?R09DQ2NYTGNZeld4WFJWbDRUb1ZONnNiNkhNUUJZcjFNZ2NwSjlBZVk5a1ZB?=
 =?utf-8?B?N2x0NGE3TlA5RWMvVmE1RmR4TlAydEwzWWhRVGN1TkZ6WStHVnNxVHFDTzFO?=
 =?utf-8?B?blBXc2JONUxTSi9pNlpiQzdzYWQveDdMN0MvTDhoNnFSd1MxMVpOTGc4YTU4?=
 =?utf-8?B?NTJ5VGU3Z0dKL3dWUDdCSDVaelkrUC9xaUVHNis2Ylh2dW4vWnhpN2h6YVVQ?=
 =?utf-8?Q?371g0aQ4Wf0lkHEUX+lY802Ph?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(30052699003)(82310400026)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2025 22:33:51.7850
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c7e1ec43-af7e-4ccd-2495-08de32bc08f2
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015C8.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6158

On 2025-12-01 17:16, Marek Marczykowski-Górecki wrote:
> On Mon, Dec 01, 2025 at 01:20:40PM -0500, Jason Andryuk wrote:
>> On 2025-11-29 21:03, Marek Marczykowski-Górecki wrote:
>>> On Wed, Nov 19, 2025 at 05:47:29PM -0500, Jason Andryuk wrote:
>>>> The goal is to fix s2idle and S3 for Xen PV devices.
>>>
>>> Can you give a little more context of this? We do have working S3 in
>>> qubes with no need for such change. We trigger it via the toolstack (libxl_domain_suspend_only()).
>>> Are you talking about guest-initiated suspend here?
>>
>> This is intended to help domU s2idle/S3 and resume.  I guess that is what
>> you mean by guest-initiated?  The domU can use 'echo mem > /sys/power/state'
>> to enter s2idle/S3.  We also have the domU react to the ACPI sleep button
>> from `xl trigger $dom sleep`.
> 
> Ok, so this is indeed a different path than we use in Qubes OS.
> 
>> AIUI, libxl_domain_suspend_only() triggers xenstore writes which Linux
>> drivers/xen/manage.c:do_suspend() acts on.  `xl save/suspend/migrate` all
>> use this path.
>>
>> The terminology gets confusing.  Xen uses "suspend" for
>> save/suspend/migrate, but the Linux power management codes uses
>> freeze/thaw/restore.  AIUI, Linux's PMSG_SUSPEND/.suspend is for runtime
>> power management.
> 
> Indeed it gets confusing...
> 
>> When you call libxl_domain_suspend_only()/libxl_domain_resume(), you pass
>> suspend_cancel==1.
>>   *  1. (fast=1) Resume the guest without resetting the domain
>>         environment.
>>   *     The guests's call to SCHEDOP_shutdown(SHUTDOWN_suspend) will
>>         return 1.
>>
>> That ends up in Linux do_suspend() as si.cancelled = 1, which calls
>> PMSG_THAW -> .thaw -> xenbus_dev_cancel() which is a no-op.  So it does not
>> change the PV devices.
>>
>> We needed guest user space to perform actions before entering s2idle.
>> libxl_domain_suspend_only() triggers the Linux kernel path which does not
>> notify user space.  The ACPI power buttons let user space perform actions
>> (lock and blank the screen) before entering the idle state.
> 
> I see. In our case, we have our own userspace hook that gets called
> before (if relevant - in most cases it isn't).
> 
>>> We also have kinda working (host) s2idle. You may want to take a look at this
>>> work (some/most of it was posted upstream, but not all got
>>> committed/reviewed):
>>> https://github.com/QubesOS/qubes-issues/issues/6411#issuecomment-1538089344
>>> https://github.com/QubesOS/qubes-linux-kernel/pull/910 (some patches
>>> changed since that PR, see the current main too).
>>
>> This would not affect host s2idle - it changes PV frontend devices.
>>
>> Do you libxl_domain_suspend_only() all domUs and then put dom0 into s0ix?
> 
> Yes, exactly.
> 
>>>> A domain resuming
>>>> from s3 or s2idle disconnects its PV devices during resume.  The
>>>> backends are not expecting this and do not reconnect.
>>>>
>>>> b3e96c0c7562 ("xen: use freeze/restore/thaw PM events for suspend/
>>>> resume/chkpt") changed xen_suspend()/do_suspend() from
>>>> PMSG_SUSPEND/PMSG_RESUME to PMSG_FREEZE/PMSG_THAW/PMSG_RESTORE, but the
>>>> suspend/resume callbacks remained.
>>>>
>>>> .freeze/restore are used with hiberation where Linux restarts in a new
>>>> place in the future.  .suspend/resume are useful for runtime power
>>>> management for the duration of a boot.
>>>>
>>>> The current behavior of the callbacks works for an xl save/restore or
>>>> live migration where the domain is restored/migrated to a new location
>>>> and connecting to a not-already-connected backend.
>>>>
>>>> Change xenbus_pm_ops to use .freeze/thaw/restore and drop the
>>>> .suspend/resume hook.  This matches the use in drivers/xen/manage.c for
>>>> save/restore and live migration.  With .suspend/resume empty, PV devices
>>>> are left connected during s2idle and s3, so PV devices are not changed
>>>> and work after resume.
>>>
>>> Is that intended? While it might work for suspend by a chance(*), I'm
>>> pretty sure not disconnecting + re-reconnecting PV devices across
>>> save/restore/live migration will break them.
>>
>> save/restore/live migration keep using .freeze/thaw/restore, which
>> disconnects and reconnects today.  Nothing changes there as
>> xen_suspend()/do_suspend() call the power management code with
>> PMSG_FREEZE/PMSG_THAW/PMSG_RESTORE.
>>
>> This patches makes .suspend/resume no-ops for PMSG_SUSPEND/PMSG_RESUME. When
>> a domU goes into s2idle/S3, the backend state remains connected. With this
>> patch, when the domU wakes up, the frontends do nothing and remain
>> connected.
> 
> This explanation makes sense.
> 
>>> (*) and even that I'm not sure - with driver domains, depending on
>>> suspend order this feels like might result in a deadlock...
>>
>> I'm not sure.  I don't think this patch changes anything with respect to
>> them.
>>
>> Thanks for testing.
>>
>> Maybe the commit messages should change to highlight this is for domU PV
>> devices?  struct xen_bus_type xenbus_backend does not define dev_pm_ops.
> 
> Good idea.
> 
>> Regards,
>> Jason
>>
>>>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>>>> ---
>>>>    drivers/xen/xenbus/xenbus_probe_frontend.c | 4 +---
>>>>    1 file changed, 1 insertion(+), 3 deletions(-)
>>>>
>>>> diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c
>>>> index 6d1819269cbe..199917b6f77c 100644
>>>> --- a/drivers/xen/xenbus/xenbus_probe_frontend.c
>>>> +++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
>>>> @@ -148,11 +148,9 @@ static void xenbus_frontend_dev_shutdown(struct device *_dev)
>>>>    }
>>>>    static const struct dev_pm_ops xenbus_pm_ops = {
>>>> -	.suspend	= xenbus_dev_suspend,
>>>> -	.resume		= xenbus_frontend_dev_resume,
>>>>    	.freeze		= xenbus_dev_suspend,
>>>>    	.thaw		= xenbus_dev_cancel,
>>>> -	.restore	= xenbus_dev_resume,
>>>> +	.restore	= xenbus_frontend_dev_resume,

I was double checking before sending a v2, and I have questions about 
this.  I purposely switched the .restore callback since 
xenbus_frontend_dev_resume() handles the extra case.  It was added in:

commit 2abb274629614bef4044a0b98ada42e977feadfd
Author: Aurelien Chartier <aurelien.chartier@citrix.com>
Date:   Tue May 28 18:09:56 2013 +0100

     xenbus: delay xenbus frontend resume if xenstored is not running

     If the xenbus frontend is located in a domain running xenstored, 
the device
     resume is hanging because it is happening before the process 
resume. This
     patch adds extra logic to the resume code to check if we are the domain
     running xenstored and delay the resume if needed.

It was after b3e96c0c7562, so .freeze/thaw/restore were already present 
for domU xen_suspend() handling.  So the .resume handler should have 
been used.

This is for the "domain running xenstored", so dom0.  So maybe this was 
called for a dom0 S3 suspend/resume?  But as stated above this is patch 
changes PV frontends.  Maybe the change was for Xenclient/OpenXT - 
OpenXT has netfront in dom0 connected to the network driver domain.  But 
without netback changes, I don't think that would work today?  As it is, 
S3 in OpenXT has been disabled for years as broken.

Ok, yes, dom0 S3:
https://lore.kernel.org/xen-devel/1367413042-13987-1-git-send-email-aurelien.chartier@citrix.com/

 > This patch series fixes the S3 resume of dom0 or a Xenstore stub
 > domain running a frontend over xenbus (xen-netfront in my use case).
 >
 > As device resume is happening before process resume, the xenbus
 > frontend resume is hanging if xenstored is not running, thus causing
 > a deadlock. This patch series is fixing that issue by bypassing the
 > xenbus frontend resume when we are running in dom0 or a Xenstore stub
 > domain.

I don't think setting .restore = xenbus_frontend_dev_resume will break 
anything for a domU.  It handles a case which doesn't trigger for a 
domU.  Removing .resume, a frontend in dom0 will not be touched, so that 
at least cannot hang.

Does this all sound okay?  Does anyone think I am missing anything

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 03:37:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 03:37:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177213.1501568 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR09Z-0003B3-4C; Thu, 04 Dec 2025 03:37:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177213.1501568; Thu, 04 Dec 2025 03:37:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR09Y-0003Av-Vk; Thu, 04 Dec 2025 03:37:12 +0000
Received: by outflank-mailman (input) for mailman id 1177213;
 Thu, 04 Dec 2025 03:37:12 +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
 <SRS0=mr2u=6K=arm.com=anshuman.khandual@srs-se1.protection.inumbo.net>)
 id 1vR09Y-0003Ap-GM
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 03:37:12 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 834ee27f-d0c2-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 04:37:10 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 63087339;
 Wed,  3 Dec 2025 19:37:01 -0800 (PST)
Received: from [10.164.18.78] (unknown [10.164.18.78])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id EBB883F59E;
 Wed,  3 Dec 2025 19:36:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 834ee27f-d0c2-11f0-9d1a-b5c5bf9af7f9
Message-ID: <15cc652c-937b-4d5b-98f3-7cdcecf28e27@arm.com>
Date: Thu, 4 Dec 2025 09:06:56 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Anshuman Khandual <anshuman.khandual@arm.com>
Subject: Re: [PATCH v5 02/12] x86/xen: simplify flush_lazy_mmu()
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-3-kevin.brodsky@arm.com>
Content-Language: en-US
In-Reply-To: <20251124132228.622678-3-kevin.brodsky@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit



On 24/11/25 6:52 PM, Kevin Brodsky wrote:
> arch_flush_lazy_mmu_mode() is called when outstanding batched
> pgtable operations must be completed immediately. There should
> however be no need to leave and re-enter lazy MMU completely. The
> only part of that sequence that we really need is xen_mc_flush();
> call it directly.
> 
> Reviewed-by: David Hildenbrand <david@redhat.com>
> Reviewed-by: Ryan Roberts <ryan.roberts@arm.com>
> Reviewed-by: Juergen Gross <jgross@suse.com>
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---

Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>

>  arch/x86/xen/mmu_pv.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
> index 2a4a8deaf612..7a35c3393df4 100644
> --- a/arch/x86/xen/mmu_pv.c
> +++ b/arch/x86/xen/mmu_pv.c
> @@ -2139,10 +2139,8 @@ static void xen_flush_lazy_mmu(void)
>  {
>  	preempt_disable();
>  
> -	if (xen_get_lazy_mode() == XEN_LAZY_MMU) {
> -		arch_leave_lazy_mmu_mode();
> -		arch_enter_lazy_mmu_mode();
> -	}
> +	if (xen_get_lazy_mode() == XEN_LAZY_MMU)
> +		xen_mc_flush();
>  
>  	preempt_enable();
>  }



From xen-devel-bounces@lists.xenproject.org Thu Dec 04 04:17:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 04:17:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177233.1501578 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR0me-0008Fq-2j; Thu, 04 Dec 2025 04:17:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177233.1501578; Thu, 04 Dec 2025 04:17:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR0md-0008Fi-V1; Thu, 04 Dec 2025 04:17:35 +0000
Received: by outflank-mailman (input) for mailman id 1177233;
 Thu, 04 Dec 2025 04:17:35 +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
 <SRS0=mr2u=6K=arm.com=anshuman.khandual@srs-se1.protection.inumbo.net>)
 id 1vR0md-0008Fc-3u
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 04:17:35 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 2781fbc5-d0c8-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 05:17:32 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 85D5E339;
 Wed,  3 Dec 2025 20:17:24 -0800 (PST)
Received: from [10.164.18.78] (unknown [10.164.18.78])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C294D3F73B;
 Wed,  3 Dec 2025 20:17:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2781fbc5-d0c8-11f0-9d1a-b5c5bf9af7f9
Message-ID: <e43c147f-bff8-462a-88dc-4345500f4ed7@arm.com>
Date: Thu, 4 Dec 2025 09:47:19 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 06/12] mm: introduce generic lazy_mmu helpers
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-7-kevin.brodsky@arm.com>
Content-Language: en-US
From: Anshuman Khandual <anshuman.khandual@arm.com>
In-Reply-To: <20251124132228.622678-7-kevin.brodsky@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24/11/25 6:52 PM, Kevin Brodsky wrote:
> The implementation of the lazy MMU mode is currently entirely
> arch-specific; core code directly calls arch helpers:
> arch_{enter,leave}_lazy_mmu_mode().
> 
> We are about to introduce support for nested lazy MMU sections.
> As things stand we'd have to duplicate that logic in every arch
> implementing lazy_mmu - adding to a fair amount of logic
> already duplicated across lazy_mmu implementations.
> 
> This patch therefore introduces a new generic layer that calls the
> existing arch_* helpers. Two pair of calls are introduced:
> 
> * lazy_mmu_mode_enable() ... lazy_mmu_mode_disable()
>     This is the standard case where the mode is enabled for a given
>     block of code by surrounding it with enable() and disable()
>     calls.
> 
> * lazy_mmu_mode_pause() ... lazy_mmu_mode_resume()
>     This is for situations where the mode is temporarily disabled
>     by first calling pause() and then resume() (e.g. to prevent any
>     batching from occurring in a critical section).
> 
> The documentation in <linux/pgtable.h> will be updated in a
> subsequent patch.
> > No functional change should be introduced at this stage.
> The implementation of enable()/resume() and disable()/pause() is
> currently identical, but nesting support will change that.
> 
> Most of the call sites have been updated using the following
> Coccinelle script:
> 
> @@
> @@
> {
> ...
> - arch_enter_lazy_mmu_mode();
> + lazy_mmu_mode_enable();
> ...
> - arch_leave_lazy_mmu_mode();
> + lazy_mmu_mode_disable();
> ...
> }
> 
> @@
> @@
> {
> ...
> - arch_leave_lazy_mmu_mode();
> + lazy_mmu_mode_pause();
> ...
> - arch_enter_lazy_mmu_mode();
> + lazy_mmu_mode_resume();
> ...
> }

At this point arch_enter/leave_lazy_mmu_mode() helpers are still
present on a given platform but now being called from new generic
helpers lazy_mmu_mode_enable/disable(). Well except x86, there is
direct call sites for those old helpers.

arch/arm64/include/asm/pgtable.h:static inline void arch_enter_lazy_mmu_mode(void)
arch/arm64/include/asm/pgtable.h:static inline void arch_leave_lazy_mmu_mode(void)

arch/arm64/mm/mmu.c:    lazy_mmu_mode_enable();
arch/arm64/mm/pageattr.c:       lazy_mmu_mode_enable();

arch/arm64/mm/mmu.c:    lazy_mmu_mode_disable();
arch/arm64/mm/pageattr.c:       lazy_mmu_mode_disable();

> 
> A couple of notes regarding x86:
> 
> * Xen is currently the only case where explicit handling is required
>   for lazy MMU when context-switching. This is purely an
>   implementation detail and using the generic lazy_mmu_mode_*
>   functions would cause trouble when nesting support is introduced,
>   because the generic functions must be called from the current task.
>   For that reason we still use arch_leave() and arch_enter() there.
> 
> * x86 calls arch_flush_lazy_mmu_mode() unconditionally in a few
>   places, but only defines it if PARAVIRT_XXL is selected, and we
>   are removing the fallback in <linux/pgtable.h>. Add a new fallback
>   definition to <asm/pgtable.h> to keep things building.
> 
> Acked-by: David Hildenbrand <david@redhat.com>
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
>  arch/arm64/mm/mmu.c                     |  4 ++--
>  arch/arm64/mm/pageattr.c                |  4 ++--
>  arch/powerpc/mm/book3s64/hash_tlb.c     |  8 +++----
>  arch/powerpc/mm/book3s64/subpage_prot.c |  4 ++--
>  arch/x86/include/asm/pgtable.h          |  1 +
>  fs/proc/task_mmu.c                      |  4 ++--
>  include/linux/pgtable.h                 | 29 +++++++++++++++++++++----
>  mm/kasan/shadow.c                       |  8 +++----
>  mm/madvise.c                            | 18 +++++++--------
>  mm/memory.c                             | 16 +++++++-------
>  mm/migrate_device.c                     |  8 +++----
>  mm/mprotect.c                           |  4 ++--
>  mm/mremap.c                             |  4 ++--
>  mm/userfaultfd.c                        |  4 ++--
>  mm/vmalloc.c                            | 12 +++++-----
>  mm/vmscan.c                             | 12 +++++-----
>  16 files changed, 81 insertions(+), 59 deletions(-)
> 
> diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
> index 94e29e3574ff..ce66ae77abaa 100644
> --- a/arch/arm64/mm/mmu.c
> +++ b/arch/arm64/mm/mmu.c
> @@ -729,7 +729,7 @@ int split_kernel_leaf_mapping(unsigned long start, unsigned long end)
>  		return -EINVAL;
>  
>  	mutex_lock(&pgtable_split_lock);
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	/*
>  	 * The split_kernel_leaf_mapping_locked() may sleep, it is not a
> @@ -751,7 +751,7 @@ int split_kernel_leaf_mapping(unsigned long start, unsigned long end)
>  			ret = split_kernel_leaf_mapping_locked(end);
>  	}
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	mutex_unlock(&pgtable_split_lock);
>  	return ret;
>  }
> diff --git a/arch/arm64/mm/pageattr.c b/arch/arm64/mm/pageattr.c
> index 5135f2d66958..e4059f13c4ed 100644
> --- a/arch/arm64/mm/pageattr.c
> +++ b/arch/arm64/mm/pageattr.c
> @@ -110,7 +110,7 @@ static int update_range_prot(unsigned long start, unsigned long size,
>  	if (WARN_ON_ONCE(ret))
>  		return ret;
>  
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	/*
>  	 * The caller must ensure that the range we are operating on does not
> @@ -119,7 +119,7 @@ static int update_range_prot(unsigned long start, unsigned long size,
>  	 */
>  	ret = walk_kernel_page_table_range_lockless(start, start + size,
>  						    &pageattr_ops, NULL, &data);
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  
>  	return ret;
>  }
> diff --git a/arch/powerpc/mm/book3s64/hash_tlb.c b/arch/powerpc/mm/book3s64/hash_tlb.c
> index 21fcad97ae80..787f7a0e27f0 100644
> --- a/arch/powerpc/mm/book3s64/hash_tlb.c
> +++ b/arch/powerpc/mm/book3s64/hash_tlb.c
> @@ -205,7 +205,7 @@ void __flush_hash_table_range(unsigned long start, unsigned long end)
>  	 * way to do things but is fine for our needs here.
>  	 */
>  	local_irq_save(flags);
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  	for (; start < end; start += PAGE_SIZE) {
>  		pte_t *ptep = find_init_mm_pte(start, &hugepage_shift);
>  		unsigned long pte;
> @@ -217,7 +217,7 @@ void __flush_hash_table_range(unsigned long start, unsigned long end)
>  			continue;
>  		hpte_need_flush(&init_mm, start, ptep, pte, hugepage_shift);
>  	}
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	local_irq_restore(flags);
>  }
>  
> @@ -237,7 +237,7 @@ void flush_hash_table_pmd_range(struct mm_struct *mm, pmd_t *pmd, unsigned long
>  	 * way to do things but is fine for our needs here.
>  	 */
>  	local_irq_save(flags);
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  	start_pte = pte_offset_map(pmd, addr);
>  	if (!start_pte)
>  		goto out;
> @@ -249,6 +249,6 @@ void flush_hash_table_pmd_range(struct mm_struct *mm, pmd_t *pmd, unsigned long
>  	}
>  	pte_unmap(start_pte);
>  out:
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	local_irq_restore(flags);
>  }
> diff --git a/arch/powerpc/mm/book3s64/subpage_prot.c b/arch/powerpc/mm/book3s64/subpage_prot.c
> index ec98e526167e..07c47673bba2 100644
> --- a/arch/powerpc/mm/book3s64/subpage_prot.c
> +++ b/arch/powerpc/mm/book3s64/subpage_prot.c
> @@ -73,13 +73,13 @@ static void hpte_flush_range(struct mm_struct *mm, unsigned long addr,
>  	pte = pte_offset_map_lock(mm, pmd, addr, &ptl);
>  	if (!pte)
>  		return;
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  	for (; npages > 0; --npages) {
>  		pte_update(mm, addr, pte, 0, 0, 0);
>  		addr += PAGE_SIZE;
>  		++pte;
>  	}
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	pte_unmap_unlock(pte - 1, ptl);
>  }
>  
> diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
> index e33df3da6980..2842fa1f7a2c 100644
> --- a/arch/x86/include/asm/pgtable.h
> +++ b/arch/x86/include/asm/pgtable.h
> @@ -118,6 +118,7 @@ extern pmdval_t early_pmd_flags;
>  #define __pte(x)	native_make_pte(x)
>  
>  #define arch_end_context_switch(prev)	do {} while(0)
> +static inline void arch_flush_lazy_mmu_mode(void) {}
>  #endif	/* CONFIG_PARAVIRT_XXL */
>  
>  static inline pmd_t pmd_set_flags(pmd_t pmd, pmdval_t set)
> diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
> index d00ac179d973..ee1778adcc20 100644
> --- a/fs/proc/task_mmu.c
> +++ b/fs/proc/task_mmu.c
> @@ -2737,7 +2737,7 @@ static int pagemap_scan_pmd_entry(pmd_t *pmd, unsigned long start,
>  		return 0;
>  	}
>  
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	if ((p->arg.flags & PM_SCAN_WP_MATCHING) && !p->vec_out) {
>  		/* Fast path for performing exclusive WP */
> @@ -2807,7 +2807,7 @@ static int pagemap_scan_pmd_entry(pmd_t *pmd, unsigned long start,
>  	if (flush_end)
>  		flush_tlb_range(vma, start, addr);
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	pte_unmap_unlock(start_pte, ptl);
>  
>  	cond_resched();
> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
> index de7d2c7e63eb..c121358dba15 100644
> --- a/include/linux/pgtable.h
> +++ b/include/linux/pgtable.h
> @@ -231,10 +231,31 @@ static inline int pmd_dirty(pmd_t pmd)
>   * held, but for kernel PTE updates, no lock is held). Nesting is not permitted
>   * and the mode cannot be used in interrupt context.
>   */
> -#ifndef CONFIG_ARCH_HAS_LAZY_MMU_MODE
> -static inline void arch_enter_lazy_mmu_mode(void) {}
> -static inline void arch_leave_lazy_mmu_mode(void) {}
> -static inline void arch_flush_lazy_mmu_mode(void) {}
> +#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
> +static inline void lazy_mmu_mode_enable(void)
> +{
> +	arch_enter_lazy_mmu_mode();
> +}
> +
> +static inline void lazy_mmu_mode_disable(void)
> +{
> +	arch_leave_lazy_mmu_mode();
> +}
> +
> +static inline void lazy_mmu_mode_pause(void)
> +{
> +	arch_leave_lazy_mmu_mode();
> +}
> +
> +static inline void lazy_mmu_mode_resume(void)
> +{
> +	arch_enter_lazy_mmu_mode();
> +}
> +#else
> +static inline void lazy_mmu_mode_enable(void) {}
> +static inline void lazy_mmu_mode_disable(void) {}
> +static inline void lazy_mmu_mode_pause(void) {}
> +static inline void lazy_mmu_mode_resume(void) {}
>  #endif
>  
>  #ifndef pte_batch_hint
> diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
> index 29a751a8a08d..c1433d5cc5db 100644
> --- a/mm/kasan/shadow.c
> +++ b/mm/kasan/shadow.c
> @@ -305,7 +305,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep, unsigned long addr,
>  	pte_t pte;
>  	int index;
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_pause();

This replacement works because lazy_mmu_mode_pause() still calls
arch_leave_lazy_mmu_mode() atleast for now.

>  
>  	index = PFN_DOWN(addr - data->start);
>  	page = data->pages[index];
> @@ -319,7 +319,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep, unsigned long addr,
>  	}
>  	spin_unlock(&init_mm.page_table_lock);
>  
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_resume();

Same.

>  
>  	return 0;
>  }
> @@ -471,7 +471,7 @@ static int kasan_depopulate_vmalloc_pte(pte_t *ptep, unsigned long addr,
>  	pte_t pte;
>  	int none;
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_pause();
>  
>  	spin_lock(&init_mm.page_table_lock);
>  	pte = ptep_get(ptep);
> @@ -483,7 +483,7 @@ static int kasan_depopulate_vmalloc_pte(pte_t *ptep, unsigned long addr,
>  	if (likely(!none))
>  		__free_page(pfn_to_page(pte_pfn(pte)));
>  
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_resume();
>  
>  	return 0;
>  }
> diff --git a/mm/madvise.c b/mm/madvise.c
> index b617b1be0f53..6bf7009fa5ce 100644
> --- a/mm/madvise.c
> +++ b/mm/madvise.c
> @@ -453,7 +453,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
>  	if (!start_pte)
>  		return 0;
>  	flush_tlb_batched_pending(mm);
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  	for (; addr < end; pte += nr, addr += nr * PAGE_SIZE) {
>  		nr = 1;
>  		ptent = ptep_get(pte);
> @@ -461,7 +461,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
>  		if (++batch_count == SWAP_CLUSTER_MAX) {
>  			batch_count = 0;
>  			if (need_resched()) {
> -				arch_leave_lazy_mmu_mode();
> +				lazy_mmu_mode_disable();
>  				pte_unmap_unlock(start_pte, ptl);
>  				cond_resched();
>  				goto restart;
> @@ -497,7 +497,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
>  				if (!folio_trylock(folio))
>  					continue;
>  				folio_get(folio);
> -				arch_leave_lazy_mmu_mode();
> +				lazy_mmu_mode_disable();
>  				pte_unmap_unlock(start_pte, ptl);
>  				start_pte = NULL;
>  				err = split_folio(folio);
> @@ -508,7 +508,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
>  				if (!start_pte)
>  					break;
>  				flush_tlb_batched_pending(mm);
> -				arch_enter_lazy_mmu_mode();
> +				lazy_mmu_mode_enable();
>  				if (!err)
>  					nr = 0;
>  				continue;
> @@ -556,7 +556,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
>  	}
>  
>  	if (start_pte) {
> -		arch_leave_lazy_mmu_mode();
> +		lazy_mmu_mode_disable();
>  		pte_unmap_unlock(start_pte, ptl);
>  	}
>  	if (pageout)
> @@ -675,7 +675,7 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr,
>  	if (!start_pte)
>  		return 0;
>  	flush_tlb_batched_pending(mm);
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  	for (; addr != end; pte += nr, addr += PAGE_SIZE * nr) {
>  		nr = 1;
>  		ptent = ptep_get(pte);
> @@ -724,7 +724,7 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr,
>  				if (!folio_trylock(folio))
>  					continue;
>  				folio_get(folio);
> -				arch_leave_lazy_mmu_mode();
> +				lazy_mmu_mode_disable();
>  				pte_unmap_unlock(start_pte, ptl);
>  				start_pte = NULL;
>  				err = split_folio(folio);
> @@ -735,7 +735,7 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr,
>  				if (!start_pte)
>  					break;
>  				flush_tlb_batched_pending(mm);
> -				arch_enter_lazy_mmu_mode();
> +				lazy_mmu_mode_enable();
>  				if (!err)
>  					nr = 0;
>  				continue;
> @@ -775,7 +775,7 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr,
>  	if (nr_swap)
>  		add_mm_counter(mm, MM_SWAPENTS, nr_swap);
>  	if (start_pte) {
> -		arch_leave_lazy_mmu_mode();
> +		lazy_mmu_mode_disable();
>  		pte_unmap_unlock(start_pte, ptl);
>  	}
>  	cond_resched();
> diff --git a/mm/memory.c b/mm/memory.c
> index 6675e87eb7dd..c0c29a3b0bcc 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -1256,7 +1256,7 @@ copy_pte_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma,
>  	spin_lock_nested(src_ptl, SINGLE_DEPTH_NESTING);
>  	orig_src_pte = src_pte;
>  	orig_dst_pte = dst_pte;
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	do {
>  		nr = 1;
> @@ -1325,7 +1325,7 @@ copy_pte_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma,
>  	} while (dst_pte += nr, src_pte += nr, addr += PAGE_SIZE * nr,
>  		 addr != end);
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	pte_unmap_unlock(orig_src_pte, src_ptl);
>  	add_mm_rss_vec(dst_mm, rss);
>  	pte_unmap_unlock(orig_dst_pte, dst_ptl);
> @@ -1842,7 +1842,7 @@ static unsigned long zap_pte_range(struct mmu_gather *tlb,
>  		return addr;
>  
>  	flush_tlb_batched_pending(mm);
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  	do {
>  		bool any_skipped = false;
>  
> @@ -1874,7 +1874,7 @@ static unsigned long zap_pte_range(struct mmu_gather *tlb,
>  		direct_reclaim = try_get_and_clear_pmd(mm, pmd, &pmdval);
>  
>  	add_mm_rss_vec(mm, rss);
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  
>  	/* Do the actual TLB flush before dropping ptl */
>  	if (force_flush) {
> @@ -2813,7 +2813,7 @@ static int remap_pte_range(struct mm_struct *mm, pmd_t *pmd,
>  	mapped_pte = pte = pte_alloc_map_lock(mm, pmd, addr, &ptl);
>  	if (!pte)
>  		return -ENOMEM;
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  	do {
>  		BUG_ON(!pte_none(ptep_get(pte)));
>  		if (!pfn_modify_allowed(pfn, prot)) {
> @@ -2823,7 +2823,7 @@ static int remap_pte_range(struct mm_struct *mm, pmd_t *pmd,
>  		set_pte_at(mm, addr, pte, pte_mkspecial(pfn_pte(pfn, prot)));
>  		pfn++;
>  	} while (pte++, addr += PAGE_SIZE, addr != end);
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	pte_unmap_unlock(mapped_pte, ptl);
>  	return err;
>  }
> @@ -3174,7 +3174,7 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
>  			return -EINVAL;
>  	}
>  
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	if (fn) {
>  		do {
> @@ -3187,7 +3187,7 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
>  	}
>  	*mask |= PGTBL_PTE_MODIFIED;
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  
>  	if (mm != &init_mm)
>  		pte_unmap_unlock(mapped_pte, ptl);
> diff --git a/mm/migrate_device.c b/mm/migrate_device.c
> index 23379663b1e1..0346c2d7819f 100644
> --- a/mm/migrate_device.c
> +++ b/mm/migrate_device.c
> @@ -271,7 +271,7 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
>  	ptep = pte_offset_map_lock(mm, pmdp, start, &ptl);
>  	if (!ptep)
>  		goto again;
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  	ptep += (addr - start) / PAGE_SIZE;
>  
>  	for (; addr < end; addr += PAGE_SIZE, ptep++) {
> @@ -313,7 +313,7 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
>  			if (folio_test_large(folio)) {
>  				int ret;
>  
> -				arch_leave_lazy_mmu_mode();
> +				lazy_mmu_mode_disable();
>  				pte_unmap_unlock(ptep, ptl);
>  				ret = migrate_vma_split_folio(folio,
>  							  migrate->fault_page);
> @@ -356,7 +356,7 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
>  			if (folio && folio_test_large(folio)) {
>  				int ret;
>  
> -				arch_leave_lazy_mmu_mode();
> +				lazy_mmu_mode_disable();
>  				pte_unmap_unlock(ptep, ptl);
>  				ret = migrate_vma_split_folio(folio,
>  							  migrate->fault_page);
> @@ -485,7 +485,7 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
>  	if (unmapped)
>  		flush_tlb_range(walk->vma, start, end);
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	pte_unmap_unlock(ptep - 1, ptl);
>  
>  	return 0;
> diff --git a/mm/mprotect.c b/mm/mprotect.c
> index 283889e4f1ce..c0571445bef7 100644
> --- a/mm/mprotect.c
> +++ b/mm/mprotect.c
> @@ -233,7 +233,7 @@ static long change_pte_range(struct mmu_gather *tlb,
>  		is_private_single_threaded = vma_is_single_threaded_private(vma);
>  
>  	flush_tlb_batched_pending(vma->vm_mm);
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  	do {
>  		nr_ptes = 1;
>  		oldpte = ptep_get(pte);
> @@ -379,7 +379,7 @@ static long change_pte_range(struct mmu_gather *tlb,
>  			}
>  		}
>  	} while (pte += nr_ptes, addr += nr_ptes * PAGE_SIZE, addr != end);
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	pte_unmap_unlock(pte - 1, ptl);
>  
>  	return pages;
> diff --git a/mm/mremap.c b/mm/mremap.c
> index 672264807db6..8275b9772ec1 100644
> --- a/mm/mremap.c
> +++ b/mm/mremap.c
> @@ -260,7 +260,7 @@ static int move_ptes(struct pagetable_move_control *pmc,
>  	if (new_ptl != old_ptl)
>  		spin_lock_nested(new_ptl, SINGLE_DEPTH_NESTING);
>  	flush_tlb_batched_pending(vma->vm_mm);
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	for (; old_addr < old_end; old_ptep += nr_ptes, old_addr += nr_ptes * PAGE_SIZE,
>  		new_ptep += nr_ptes, new_addr += nr_ptes * PAGE_SIZE) {
> @@ -305,7 +305,7 @@ static int move_ptes(struct pagetable_move_control *pmc,
>  		}
>  	}
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	if (force_flush)
>  		flush_tlb_range(vma, old_end - len, old_end);
>  	if (new_ptl != old_ptl)
> diff --git a/mm/userfaultfd.c b/mm/userfaultfd.c
> index e6dfd5f28acd..b11f81095fa5 100644
> --- a/mm/userfaultfd.c
> +++ b/mm/userfaultfd.c
> @@ -1103,7 +1103,7 @@ static long move_present_ptes(struct mm_struct *mm,
>  	/* It's safe to drop the reference now as the page-table is holding one. */
>  	folio_put(*first_src_folio);
>  	*first_src_folio = NULL;
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	while (true) {
>  		orig_src_pte = ptep_get_and_clear(mm, src_addr, src_pte);
> @@ -1140,7 +1140,7 @@ static long move_present_ptes(struct mm_struct *mm,
>  			break;
>  	}
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	if (src_addr > src_start)
>  		flush_tlb_range(src_vma, src_start, src_addr);
>  
> diff --git a/mm/vmalloc.c b/mm/vmalloc.c
> index ecbac900c35f..1dea299fbb5a 100644
> --- a/mm/vmalloc.c
> +++ b/mm/vmalloc.c
> @@ -108,7 +108,7 @@ static int vmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
>  	if (!pte)
>  		return -ENOMEM;
>  
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	do {
>  		if (unlikely(!pte_none(ptep_get(pte)))) {
> @@ -134,7 +134,7 @@ static int vmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
>  		pfn++;
>  	} while (pte += PFN_DOWN(size), addr += size, addr != end);
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	*mask |= PGTBL_PTE_MODIFIED;
>  	return 0;
>  }
> @@ -366,7 +366,7 @@ static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
>  	unsigned long size = PAGE_SIZE;
>  
>  	pte = pte_offset_kernel(pmd, addr);
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	do {
>  #ifdef CONFIG_HUGETLB_PAGE
> @@ -385,7 +385,7 @@ static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
>  		WARN_ON(!pte_none(ptent) && !pte_present(ptent));
>  	} while (pte += (size >> PAGE_SHIFT), addr += size, addr != end);
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	*mask |= PGTBL_PTE_MODIFIED;
>  }
>  
> @@ -533,7 +533,7 @@ static int vmap_pages_pte_range(pmd_t *pmd, unsigned long addr,
>  	if (!pte)
>  		return -ENOMEM;
>  
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	do {
>  		struct page *page = pages[*nr];
> @@ -555,7 +555,7 @@ static int vmap_pages_pte_range(pmd_t *pmd, unsigned long addr,
>  		(*nr)++;
>  	} while (pte++, addr += PAGE_SIZE, addr != end);
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	*mask |= PGTBL_PTE_MODIFIED;
>  
>  	return err;
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index 92980b072121..564c97a9362f 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -3515,7 +3515,7 @@ static bool walk_pte_range(pmd_t *pmd, unsigned long start, unsigned long end,
>  		return false;
>  	}
>  
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  restart:
>  	for (i = pte_index(start), addr = start; addr != end; i++, addr += PAGE_SIZE) {
>  		unsigned long pfn;
> @@ -3556,7 +3556,7 @@ static bool walk_pte_range(pmd_t *pmd, unsigned long start, unsigned long end,
>  	if (i < PTRS_PER_PTE && get_next_vma(PMD_MASK, PAGE_SIZE, args, &start, &end))
>  		goto restart;
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	pte_unmap_unlock(pte, ptl);
>  
>  	return suitable_to_scan(total, young);
> @@ -3597,7 +3597,7 @@ static void walk_pmd_range_locked(pud_t *pud, unsigned long addr, struct vm_area
>  	if (!spin_trylock(ptl))
>  		goto done;
>  
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	do {
>  		unsigned long pfn;
> @@ -3644,7 +3644,7 @@ static void walk_pmd_range_locked(pud_t *pud, unsigned long addr, struct vm_area
>  
>  	walk_update_folio(walk, last, gen, dirty);
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	spin_unlock(ptl);
>  done:
>  	*first = -1;
> @@ -4243,7 +4243,7 @@ bool lru_gen_look_around(struct page_vma_mapped_walk *pvmw)
>  		}
>  	}
>  
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	pte -= (addr - start) / PAGE_SIZE;
>  
> @@ -4277,7 +4277,7 @@ bool lru_gen_look_around(struct page_vma_mapped_walk *pvmw)
>  
>  	walk_update_folio(walk, last, gen, dirty);
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  
>  	/* feedback from rmap walkers to page table walkers */
>  	if (mm_state && suitable_to_scan(i, young))

LGTM and also no apparent problem on arm64 platform.

Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 04:23:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 04:23:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177248.1501589 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR0sO-0001Ti-RS; Thu, 04 Dec 2025 04:23:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177248.1501589; Thu, 04 Dec 2025 04:23:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR0sO-0001Tb-M5; Thu, 04 Dec 2025 04:23:32 +0000
Received: by outflank-mailman (input) for mailman id 1177248;
 Thu, 04 Dec 2025 04:23:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OurU=6K=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vR0sM-0001TV-Lh
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 04:23:30 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fabcd8b7-d0c8-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 05:23:27 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 DM3PR12MB9351.namprd12.prod.outlook.com (2603:10b6:8:1ac::9) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.17; Thu, 4 Dec 2025 04:23:22 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2%2]) with mapi id 15.20.9366.012; Thu, 4 Dec 2025
 04:23:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fabcd8b7-d0c8-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CYQXWhCvl+PVnX8ZrsBsbwbZq75awJuiAZztayIjvq1CHmaKkGrCescybdsMM8q2FGEHVn+5fESeacamb9n2o66SRnNjrDbeCHH//HA4ey6iy4NICYX9H7bP7RK9BD0jCoKh9NTzGg6mc/xjDAudRYQOvPqdoivoyiBK9B4KPIIqsdj08KI/nT/9iJxNhilvPOquxaino0ITSgIwPVIO1lpNnkqXXNChwycBGLbSueXF25MFdk23b/EieHQeEZg2vJBGFsnSl9jDGHM55g3+mZQIq2R59t7W9Il4O6C+xDqdygBoiT/LuRXSUGm5Hi75d2EuAK3yWo7tudBRj1uZxQ==
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=t6lENOaPQIzFqzDTuMRuVnqLQvMfY2zoaYbAAVvrO0M=;
 b=CqH9ES+I8BGvSN2fDE1OU18syVOLw2Lyr31jC/H6IvLIwbShoCSlCxzdrzZdjrjS0ckgIo3GXbBtE+4lrZYNhxNcJBZ4qqtH4u+QHS1fLWvzUU/aV99XR4Sxf5jNnEXy6sOe9z1LqnhtKVEUU83h4SLR6F5lDMYZ5vTJcGS7xk7a0C9r6HfaB14Vr/NVm8Joj+Dc7Q/jARtbPpuJJjlJnczGyVCrYOr+98x0YyVGvev8hkBFgZCseFVKeqvWhW1exK1WEdHdhzDnqW/V58KzVdM7Jx4q3pX4txygRlLFYbJPUEsmzHHkd79w5PGgeB+8fzoMKE7H/8Kl66bRYEmDjA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=t6lENOaPQIzFqzDTuMRuVnqLQvMfY2zoaYbAAVvrO0M=;
 b=rvUYGreAn5OTd1RbY85r6N5bM3KyXGs+GOCQiM9FffK0cV49wXuaRAypHrgOAuBuIsiMWJKQz4TClxpOjCTiUvL6Z87E3V/oX4PT/0g3P63so2V6B56WN1hLM1kb/R75CEOFKyziPtMA6kbnfla6CgA9Jq/s+6tFKVTAQ8byrIU=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "grygorii_strashko@epam.com"
	<grygorii_strashko@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>, "Orzel, Michal"
	<Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v4 20/24] xen/x86: wrap x86-specific domctl-op with
 CONFIG_MGMT_HYPERCALLS
Thread-Topic: [PATCH v4 20/24] xen/x86: wrap x86-specific domctl-op with
 CONFIG_MGMT_HYPERCALLS
Thread-Index: AQHcWtXmS51F6WJwgE2h9vzl8XgXOrUDpDaAgA1N7rA=
Date: Thu, 4 Dec 2025 04:23:22 +0000
Message-ID:
 <DM4PR12MB84519D61527BF82117F65CAEE1A6A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-21-Penny.Zheng@amd.com>
 <de34ea34-1558-46b3-b5a6-79edd60ad45f@suse.com>
In-Reply-To: <de34ea34-1558-46b3-b5a6-79edd60ad45f@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-12-04T04:23:15.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|DM3PR12MB9351:EE_
x-ms-office365-filtering-correlation-id: 469a90ea-740f-41a4-a942-08de32ecdc65
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?Y1h2U3h0NkxrYi9SMTRydUZ0bnhSMWNja2hYamlnSWNoYjUwL3IyY1hSUitF?=
 =?utf-8?B?QUZEaWRpTE5MeEJFTE11cFRiRHl6NGs3QVVUWXZMTEMwYkF3WWx3RERsN1Nm?=
 =?utf-8?B?UUh0dW9qellLUU8xRHNIbmFJSnhxb1NvOEVzeWdkeHN1akxGK3Q0SHprNStV?=
 =?utf-8?B?bzNXYkFRNjN0dXBjODExUzhVQmZjZHhsV1FRTjZOU2FHMGRtejNPWXBlNSt3?=
 =?utf-8?B?VlgyQlV5SXlXNTB4Qmtna2FUVHIyUm1oSy9CcDkwZVUxdWZlWkUxU3dhMklV?=
 =?utf-8?B?dXRFbGhRK0owT1RXN1c4NUFmeFAzYklFUk1aRXlvYVNYQUN6amZEcEttNGM4?=
 =?utf-8?B?S0g0VXQ2YXA2L1ptODUvaHVvK2FGdlBVZmg4NjI3R0o0U0tGUEM3Z1oxUlBW?=
 =?utf-8?B?REVzZ2lCUjEyTFBoZ2drVFBmOGFmZ0wzYmZ3ajZRWWE2eUllWHNNWitCSHI2?=
 =?utf-8?B?VWxoSGd0ZERUTlZHNVpiU0drVldOSFBSUGRXamNMakJsTW03ZzdXakFZWlpU?=
 =?utf-8?B?N09MZTd5VGMxbzFncDFhNXJFdGJXYUVkTUx2TktFTDM3ZkFzVTg0UHZlTnhV?=
 =?utf-8?B?OXNaVEREZTl1Nk1iU2tUbGtxSnNLQnE5azZxVHJYREhoWUNlWDJlMlZtMFhU?=
 =?utf-8?B?MVk5enBhUVdsK2hCVVk4M2ZHNWZQd2Z5dzJjYThCK1JrVHhYNUxGd0lyanBi?=
 =?utf-8?B?L2w2NzZicTBxZ1ZFbjlJTEU1QkxRYUx1Ni9zZ0RnUGRGTWdjclFyQWppNElJ?=
 =?utf-8?B?bU5JMXJKYW1TVkx6Z3pnVXhES2JsaVpZZFFOQzFFV2VYRWpHUCtYZ3cxVW9Y?=
 =?utf-8?B?dXdJWjBzV1NJcHRoeUMwUVhMak9uSkJjTDJYQVptQ1U5cDhNMytvUitNZi8w?=
 =?utf-8?B?Y1JsNkhRNDFyT1NKcTdYdGtuMlQwTG9vVTJTUUNWM2Ric1BKWHJoYndFZTRS?=
 =?utf-8?B?V3dwbjc4aEZWVjJVTktKNkpMclFEM2p3WURGZ3N5UVRWZnU5anZZUXJ6UVhW?=
 =?utf-8?B?eFgrNjR4TllhZE9wNmUrR1hzT2dTK2ludThVTUkvazJzQWw3QmVLaVUwQnh6?=
 =?utf-8?B?UUkvMlZZK09peXlyM01HcGFHZzBwY0JhVTBVaUtiSWorSlZ5cmtOTDk4bHhz?=
 =?utf-8?B?VVRNTElKSUdxK0tSTmg2UDJaSUJ6VFBFNjFTRlh1b2llUUk2dXZpS0orV0dQ?=
 =?utf-8?B?eWRnd3NwWTBaeGZVMVFlb0xPWU5DZmhjUWlrVnpFMUhrOWx0RnkxREkvN1hE?=
 =?utf-8?B?a3pxZ2s5dzN3ZDY1dnlhMTlhVU1rdjVlaksvSGh4REkrdTBFcGhJMmZXVHhs?=
 =?utf-8?B?akl6cCtJU1o0NCs0MTFWM0dNdXVyYmh0RkFZTU5pQktYNlI1ZHFLVWUyTk5F?=
 =?utf-8?B?dE0vd3Awbnh1bFZtUk5xWXJLaDAzOE9WUkJ4cFBDZFd2UFAvK2VmZHZPWVpr?=
 =?utf-8?B?OThYNjJtd1IrcnB2djVLT0pqN3BLdTBpeFhvbUQzTmFTMDE2a0crVlk4a2RS?=
 =?utf-8?B?djZPUVYzWDRWOFk2eHE3YVVma1BuRWFLQjltU0duMGhFQVRmb1B6aGpKa09o?=
 =?utf-8?B?b0F0VVJLS1FkMm9XZ2RPKzhUZzBBNnB2VWJVSUpPS0lJT3p1WUFCTDB6OW1u?=
 =?utf-8?B?cFdZNy9tODE2emNreis3bk5ITkRqN0wvcStQeVQ5c3dRK0RHRm9aQlhHNTgw?=
 =?utf-8?B?Z043dVhEdm9HWTFmYzZLWmRKWDVtZ3Z2cms5MXI5bjZ0cThlVzlSZmRYcEJ5?=
 =?utf-8?B?ZFVKQ1ZHbDB0WDZoOFA3Z1pDYTdreXdwZmlWWTdkRldWU1ovUUZSY2xkZzg1?=
 =?utf-8?B?VXNTdGpqd3l2Tkx1WU1yaTdWUWZTZVROTSt1MVJrZUEraWdXcXg1RUFSRUdj?=
 =?utf-8?B?eE1JWFEwTVFwM2hndmZqUVJXRDB1UGRKK2NpTThBS3VLcE50V0QyY3BJcUhi?=
 =?utf-8?B?OGFvUlZpU3hCYit6L2tydUV6NEYzOVFXZWNvUXlqb2hQd2JTTWVyNXJvOFlM?=
 =?utf-8?B?YmpYL25nOFlMY3ZwNUUxeTM5TVZxcU4rUzMxbmwxR1g0NkNac1R3V01pWjVt?=
 =?utf-8?Q?0/Z3KC?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?dTRLMWcrdEN2TG5rZlFWcnFVOXczc3JNOVVUTGtxcWJqeFpTQk1Db0xzL2RN?=
 =?utf-8?B?ZVZwT05nMExrTjlvQXY1dW83UHFWNGdrM2d1QWRkTkc2Q0djZEMyTmxLc1pQ?=
 =?utf-8?B?VGtWUGZGdG1SL1cyQ3d6ck5yOUZqYmZzcVQ2czRoOGRldG00bU4vc1gybVhR?=
 =?utf-8?B?VklBUC9xZmlVNmNyL3RuSHpHS1NUVlZhUzBQVFJ1eVl3SGNieWVwN0JsN1E4?=
 =?utf-8?B?WGJFZnp4TE10NmVJY0JrRzYrQXpCUUE5NHZjbWJkMWoyU1lRVXZHSmtncE1p?=
 =?utf-8?B?dVRiSXNReFhuKzZHNEVDY0ZTY1NQa3FwZ3dGMGR5cjhndEdtcEg5L0RlQmhE?=
 =?utf-8?B?SE9PMFVUeVVYNTZTTnFsZWtDQkY4YXBhRVA1VDlkS3RZSk95U2FLNE5BNGtv?=
 =?utf-8?B?K3Bnc0FmZXR6ZFdnSkVQYzE2S3pCZ3ptYlBsSUt4RGkzYmJQanEvUVFYT0N6?=
 =?utf-8?B?U0p1VTVra2VyU0dMUndZRkdhN0FYUFRBTW5JUVJTdGVxQXM3ZERyd1FYV1kz?=
 =?utf-8?B?THMwZVlURVZYY1k3LzJ6bTVQUWpSQlY4Q3FtdWQvMzl1UW95TXhBUlQzZTVm?=
 =?utf-8?B?TVo2elFralJvY3IrWGRSQnRBa3dZTFpmdVgzd3NjVm1ucVNBK0ZmUm5Ea3Vv?=
 =?utf-8?B?TVhMc0dZeTUvKytmSDRhbVhJTys3SlZ5dmMxREZpdjMvWndMd3JxTGJUd3JH?=
 =?utf-8?B?c1FiRGRiQUVyaHR0ZGtmQS9IVnF0TCt6eHI3YmVDOE84S3hoN3Z2Y3NiWWlK?=
 =?utf-8?B?ZENtN1E5K3ZFamJOaU9KZTR6ZVNJY0tWRzY2ZWljWDRoa09SR2dMK2ZmcHVK?=
 =?utf-8?B?Y2xXZzY5S2U2Vi8rYk0yNStsZWNZbFE5VFVTMkFackR0azFnVWR3WlNVa2I4?=
 =?utf-8?B?L2hmU1lSZzNHM2l2dENNWVU4WWJwWmxTN3o0c1ViQmZIL1hMWE1reFdldUVZ?=
 =?utf-8?B?aDJ2OGovNlZlQmhpeTR4a1Y2cTJBYWhjekxheEFmRzRhWE0zd0VUUzZNZ1U0?=
 =?utf-8?B?S0tFY2JXU3Q3aDd1emJBN2wyN3NXM1pQNjZ6OW1JNktOYWdUS1p4ZytDV2tl?=
 =?utf-8?B?RlBOZi9wWG0rVWtOVmZ5YkZLQndrZ1Vna0lYNWt0Ri9rZjU1NVJyTXhua2VI?=
 =?utf-8?B?WHhJVHcyVHMrUlhUN2lvbklVelN1TXVPTlcycUhVM1JISGJleit5NjV6Y1JM?=
 =?utf-8?B?WVBIWHM1SmNLb2tTREg2a2xJcmRObEFkMFBoNDRMRVFSb05USVUvOUJIUzcz?=
 =?utf-8?B?NDlJYUl6WnV5TXlOcjlNT0wyaEJ3K3BKY3Z4d0gxUlYvMlJZTzNFWEVqZWt2?=
 =?utf-8?B?czQ4akkvVUovNmpybVJJcURQcG5MMjRjaitjeDBPTUVCNkljS2RUSUJ4dGpz?=
 =?utf-8?B?c0wzVkVHSGN4TVlIZU52VHlyKzRzd29zVDNSdyt1QmQxdnVxQmZKTVduMFM1?=
 =?utf-8?B?cDVYOXBzVUxaem43SDhVTzZNRmU3cGt2dlhvTE5Wd01PdmVpa1I1M29XK0Q1?=
 =?utf-8?B?cXRGVWE1SlJnK1l1cDhhMFk2ZEltL3RheURYTnZxNHpFRnE3YnNncm55UFp1?=
 =?utf-8?B?L0dKL2JCbDQ3dmtLM2FrdG80QzBGMEZvS1JocFovcG9tMHpUellZaEVwL1dU?=
 =?utf-8?B?cG8wcTZHT2tvSEhIWmJBK3FGbEw0d0pWbkNCOHRvclJ0cVA0ajBrazdsM29u?=
 =?utf-8?B?NGFVVDlZNmRzdFhudTB0R01NQy9iR3Y1Ulc1U3p6WWM4YTBPeXBjeTdwaUdR?=
 =?utf-8?B?MDY5ZU41bVkybStCQUJWM3UrNDFSckxkZ1Nsb2s2RE94T1NSa0dCOFpuKzlw?=
 =?utf-8?B?WnNjdk0reW5jMjZ4eTlJK0RkWUZMY0xaZXl6NnRHbzBZZDQ0ZXRNQTVKQ2Nr?=
 =?utf-8?B?Y0poS0Rvb1lYcVhyV3pNeE5OeE8xdmNwRWZ1ZkZSTkhUaUY4eHRpcUhyR0hj?=
 =?utf-8?B?OGlBbHRVT0cwVURLSFVrYVJvQkMySDVOTnhyRFFUOGdRa0draTByT2YyQW5q?=
 =?utf-8?B?MklRcWR4SGkzMU05Yms4MXdGM0VyZlkzQVZkUDh4ZC9ZZVZpeS9qay9zQjNI?=
 =?utf-8?B?dU1rNjg4UXhpb2Jzc1BGVUtTNDNHOWwwNlRFOVBoUjZYamc5UzVKVll3NkNE?=
 =?utf-8?Q?doQk=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 469a90ea-740f-41a4-a942-08de32ecdc65
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Dec 2025 04:23:22.4162
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: GG+tLNBeqdFslVTe/83w642iMmWdyk29zfF485axBR2LTYd5oi0GSjcVEkBsSgnZ8fvurhe6nfujUv6l+ghNZA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR12MB9351

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIgMjYs
IDIwMjUgMTowMCBBTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0K
PiBDYzogSHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBncnlnb3JpaV9zdHJhc2hrb0Bl
cGFtLmNvbTsgQW5kcmV3DQo+IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT47IEFu
dGhvbnkgUEVSQVJEDQo+IDxhbnRob255LnBlcmFyZEB2YXRlcy50ZWNoPjsgT3J6ZWwsIE1pY2hh
bCA8TWljaGFsLk9yemVsQGFtZC5jb20+OyBKdWxpZW4NCj4gR3JhbGwgPGp1bGllbkB4ZW4ub3Jn
PjsgUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+OyBTdGVmYW5vDQo+IFN0
YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+OyBEYW5pZWwgUC4gU21pdGgNCj4gPGRw
c21pdGhAYXBlcnR1c3NvbHV0aW9ucy5jb20+OyB4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2NCAyMC8yNF0geGVuL3g4Njogd3JhcCB4ODYtc3Bl
Y2lmaWMgZG9tY3RsLW9wIHdpdGgNCj4gQ09ORklHX01HTVRfSFlQRVJDQUxMUw0KPg0KPiBPbiAy
MS4xMS4yMDI1IDExOjU3LCBQZW5ueSBaaGVuZyB3cm90ZToNCj4gPiAtLS0gYS94ZW4vYXJjaC94
ODYvS2NvbmZpZw0KPiA+ICsrKyBiL3hlbi9hcmNoL3g4Ni9LY29uZmlnDQo+ID4gQEAgLTI5LDcg
KzI5LDcgQEAgY29uZmlnIFg4Ng0KPiA+ICAgICBzZWxlY3QgSEFTX1BDSV9NU0kNCj4gPiAgICAg
c2VsZWN0IEhBU19QSVJRDQo+ID4gICAgIHNlbGVjdCBIQVNfU0NIRURfR1JBTlVMQVJJVFkNCj4g
PiAtICAgaW1wbHkgSEFTX1NPRlRfUkVTRVQNCj4gPiArICAgc2VsZWN0IEhBU19TT0ZUX1JFU0VU
IGlmIE1HTVRfSFlQRVJDQUxMUw0KPg0KPiBXaHkgd291bGQgeW91IHVuZG8gYW4gImltcGx5Iiwg
d2hlbiByZWFsbHkgd2Ugc2hvdWxkIHVzZSBpdCBtb3JlPyBPbmUgb2YgaXRzDQo+IHB1cnBvc2Vz
IGlzIHNvIHRoYXQgeW91IGNhbiBhZGQgImRlcGVuZHMgb24gTUdNVF9IWVBFUkNBTExTIiB0aGVy
ZSwgYW5kIGl0DQo+IHRoZW4gd29uJ3QgYmUgYXV0by1lbmFibGVkIGlmIHRoYXQgZGVwZW5kZW5j
eSBpc24ndCBmdWxmaWxsZWQuDQo+DQo+ID4gLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L3BhZ2luZy5oDQo+ID4gKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2luZy5oDQo+
ID4gQEAgLTU1LDcgKzU1LDcgQEANCj4gPiAgI2RlZmluZSBQR190cmFuc2xhdGUgICAwDQo+ID4g
ICNkZWZpbmUgUEdfZXh0ZXJuYWwgICAgMA0KPiA+ICAjZW5kaWYNCj4gPiAtI2lmIGRlZmluZWQo
Q09ORklHX1BBR0lORykgJiYgIWRlZmluZWQoQ09ORklHX1BWX1NISU1fRVhDTFVTSVZFKQ0KPiA+
ICsjaWYgZGVmaW5lZChDT05GSUdfUEFHSU5HKSAmJiAhZGVmaW5lZChDT05GSUdfUFZfU0hJTV9F
WENMVVNJVkUpDQo+ICYmDQo+ID4gK2RlZmluZWQoQ09ORklHX01HTVRfSFlQRVJDQUxMUykNCj4N
Cj4gVGhpcyBsaW5lIGlzIHRvbyBsb25nIG5vdy4NCg0KSG1tLCBob3cgYWJvdXQgSSBpbnRyb2R1
Y2UgYSBuZXcgS2NvbmZpZywgc29tZXRoaW5nIGxpa2U6DQpgYGANCmRpZmYgLS1naXQgYS94ZW4v
YXJjaC94ODYvS2NvbmZpZyBiL3hlbi9hcmNoL3g4Ni9LY29uZmlnDQppbmRleCBjODA4Yzk4OWZj
Li5lYzhmNTFiMGIxIDEwMDY0NA0KLS0tIGEveGVuL2FyY2gveDg2L0tjb25maWcNCisrKyBiL3hl
bi9hcmNoL3g4Ni9LY29uZmlnDQpAQCAtMTY2LDYgKzE2Niw5IEBAIGNvbmZpZyBTSEFET1dfUEFH
SU5HDQogY29uZmlnIFBBR0lORw0KICAgICAgICBkZWZfYm9vbCBIVk0gfHwgU0hBRE9XX1BBR0lO
Rw0KDQorY29uZmlnIFBBR0lOR19MT0dfRElSVFkNCisgICAgICAgZGVmX2Jvb2wgUEFHSU5HDQor
DQogY29uZmlnIEJJR01FTQ0KICAgICAgICBib29sICJiaWcgbWVtb3J5IHN1cHBvcnQiDQogICAg
ICAgIGRlZmF1bHQgbg0KYGBgDQpUaGVuLCBsYXRlciBmdXR1cmUgZGVwZW5kZW5jeSBjb3VsZCBi
ZSBhZGRlZCB0byBQQUdJTkdfTE9HX0RJUlRZDQoNCj4gSmFuDQo=


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 04:34:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 04:34:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177259.1501597 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR12v-00039b-Le; Thu, 04 Dec 2025 04:34:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177259.1501597; Thu, 04 Dec 2025 04:34:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR12v-00039U-J8; Thu, 04 Dec 2025 04:34:25 +0000
Received: by outflank-mailman (input) for mailman id 1177259;
 Thu, 04 Dec 2025 04:34:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mr2u=6K=arm.com=anshuman.khandual@srs-se1.protection.inumbo.net>)
 id 1vR12t-00039O-Nj
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 04:34:23 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 7e75afaf-d0ca-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 05:34:17 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 64906339;
 Wed,  3 Dec 2025 20:34:09 -0800 (PST)
Received: from [10.164.18.78] (unknown [10.164.18.78])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E05AF3F73B;
 Wed,  3 Dec 2025 20:34:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7e75afaf-d0ca-11f0-980a-7dc792cee155
Message-ID: <565ac89c-1e7a-4e2f-a866-15039fbe22f6@arm.com>
Date: Thu, 4 Dec 2025 10:04:04 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 07/12] mm: bail out of lazy_mmu_mode_* in interrupt
 context
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-8-kevin.brodsky@arm.com>
Content-Language: en-US
From: Anshuman Khandual <anshuman.khandual@arm.com>
In-Reply-To: <20251124132228.622678-8-kevin.brodsky@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24/11/25 6:52 PM, Kevin Brodsky wrote:
> The lazy MMU mode cannot be used in interrupt context. This is
> documented in <linux/pgtable.h>, but isn't consistently handled
> across architectures.
> 
> arm64 ensures that calls to lazy_mmu_mode_* have no effect in
> interrupt context, because such calls do occur in certain
> configurations - see commit b81c688426a9 ("arm64/mm: Disable barrier
> batching in interrupt contexts"). Other architectures do not check
> this situation, most likely because it hasn't occurred so far.
> 
> Let's handle this in the new generic lazy_mmu layer, in the same
> fashion as arm64: bail out of lazy_mmu_mode_* if in_interrupt().
> Also remove the arm64 handling that is now redundant.

Ensuring a common behaviour across platforms such as this in interrupt
context bail out - can now be easily achieved now as there are generic
helpers that call the platform ones.

> > Both arm64 and x86/Xen also ensure that any lazy MMU optimisation is
> disabled while in interrupt (see queue_pte_barriers() and
> xen_get_lazy_mode() respectively). This will be handled in the
> generic layer in a subsequent patch.

Makes sense.

> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
>  arch/arm64/include/asm/pgtable.h |  9 ---------
>  include/linux/pgtable.h          | 17 +++++++++++++++--
>  2 files changed, 15 insertions(+), 11 deletions(-)
> 
> diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
> index 54f8d6bb6f22..e596899f4029 100644
> --- a/arch/arm64/include/asm/pgtable.h
> +++ b/arch/arm64/include/asm/pgtable.h
> @@ -94,26 +94,17 @@ static inline void arch_enter_lazy_mmu_mode(void)
>  	 * keeps tracking simple.
>  	 */
>  
> -	if (in_interrupt())
> -		return;
> -
>  	set_thread_flag(TIF_LAZY_MMU);
>  }
>  
>  static inline void arch_flush_lazy_mmu_mode(void)
>  {
> -	if (in_interrupt())
> -		return;
> -
>  	if (test_and_clear_thread_flag(TIF_LAZY_MMU_PENDING))
>  		emit_pte_barriers();
>  }
>  
>  static inline void arch_leave_lazy_mmu_mode(void)
>  {
> -	if (in_interrupt())
> -		return;
> -
>  	arch_flush_lazy_mmu_mode();
>  	clear_thread_flag(TIF_LAZY_MMU);
>  }
> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
> index c121358dba15..8ff6fdb4b13d 100644
> --- a/include/linux/pgtable.h
> +++ b/include/linux/pgtable.h
> @@ -228,27 +228,40 @@ static inline int pmd_dirty(pmd_t pmd)
>   * of the lazy mode. So the implementation must assume preemption may be enabled
>   * and cpu migration is possible; it must take steps to be robust against this.
>   * (In practice, for user PTE updates, the appropriate page table lock(s) are
> - * held, but for kernel PTE updates, no lock is held). Nesting is not permitted
> - * and the mode cannot be used in interrupt context.
> + * held, but for kernel PTE updates, no lock is held). The mode is disabled in
> + * interrupt context and calls to the lazy_mmu API have no effect.
> + * Nesting is not permitted.

Right - nesting is still not not permitted.

>   */>  #ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>  static inline void lazy_mmu_mode_enable(void)
>  {
> +	if (in_interrupt())
> +		return;
> +
>  	arch_enter_lazy_mmu_mode();
>  }
>  
>  static inline void lazy_mmu_mode_disable(void)
>  {
> +	if (in_interrupt())
> +		return;
> +
>  	arch_leave_lazy_mmu_mode();
>  }
>  
>  static inline void lazy_mmu_mode_pause(void)
>  {
> +	if (in_interrupt())
> +		return;
> +
>  	arch_leave_lazy_mmu_mode();
>  }
>  
>  static inline void lazy_mmu_mode_resume(void)
>  {
> +	if (in_interrupt())
> +		return;
> +
>  	arch_enter_lazy_mmu_mode();
>  }
>  #else

LGTM

Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 05:26:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 05:26:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177275.1501608 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR1qy-0001HQ-Br; Thu, 04 Dec 2025 05:26:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177275.1501608; Thu, 04 Dec 2025 05:26:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR1qy-0001HJ-9D; Thu, 04 Dec 2025 05:26:08 +0000
Received: by outflank-mailman (input) for mailman id 1177275;
 Thu, 04 Dec 2025 05:26:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mr2u=6K=arm.com=anshuman.khandual@srs-se1.protection.inumbo.net>)
 id 1vR1qx-0001HC-KC
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 05:26:07 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id bab13225-d0d1-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 06:26:05 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id EEB83339;
 Wed,  3 Dec 2025 21:25:56 -0800 (PST)
Received: from [10.164.18.78] (unknown [10.164.18.78])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 80D2B3F59E;
 Wed,  3 Dec 2025 21:25:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bab13225-d0d1-11f0-980a-7dc792cee155
Message-ID: <2c2b3382-7bdb-41a9-b48e-4fa9a44312ba@arm.com>
Date: Thu, 4 Dec 2025 10:55:51 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 08/12] mm: enable lazy_mmu sections to nest
To: Kevin Brodsky <kevin.brodsky@arm.com>,
 Alexander Gordeev <agordeev@linux.ibm.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-9-kevin.brodsky@arm.com>
 <23dcf752-0b75-45a7-84f8-25bddf97af08-agordeev@linux.ibm.com>
 <703cbee6-a813-4970-9232-34ee91ed8961@arm.com>
Content-Language: en-US
From: Anshuman Khandual <anshuman.khandual@arm.com>
In-Reply-To: <703cbee6-a813-4970-9232-34ee91ed8961@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit



On 03/12/25 1:50 PM, Kevin Brodsky wrote:
> On 28/11/2025 14:55, Alexander Gordeev wrote:
>>> + * in_lazy_mmu_mode() can be used to check whether the lazy MMU mode is
>>> + * currently enabled.
>> The in_lazy_mmu_mode() name looks ambiguous to me. When the lazy MMU mode
>> is paused are we still in lazy MMU mode? The __task_lazy_mmu_mode_active()
>> implementation suggests we are not, while one could still assume we are,
>> just paused.
>>
>> Should in_lazy_mmu_mode() be named e.g. as in_active_lazy_mmu_mode() such
>> a confusion would not occur in the first place.
> 
> I see your point, how about is_lazy_mmu_mode_active()?

Agreed - is_lazy_mmu_mode_active() seems better.


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 06:23:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 06:23:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177290.1501617 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR2kf-0008UW-DD; Thu, 04 Dec 2025 06:23:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177290.1501617; Thu, 04 Dec 2025 06:23:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR2kf-0008UP-AZ; Thu, 04 Dec 2025 06:23:41 +0000
Received: by outflank-mailman (input) for mailman id 1177290;
 Thu, 04 Dec 2025 06:23:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mr2u=6K=arm.com=anshuman.khandual@srs-se1.protection.inumbo.net>)
 id 1vR2kd-0008UG-NJ
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 06:23:39 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id c0573cfc-d0d9-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 07:23:30 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 4C7BD339;
 Wed,  3 Dec 2025 22:23:22 -0800 (PST)
Received: from [10.164.18.78] (unknown [10.164.18.78])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C12193F73B;
 Wed,  3 Dec 2025 22:23:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0573cfc-d0d9-11f0-980a-7dc792cee155
Message-ID: <2dfd54d7-fe2a-4921-85ff-a581392a777a@arm.com>
Date: Thu, 4 Dec 2025 11:53:17 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 08/12] mm: enable lazy_mmu sections to nest
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-9-kevin.brodsky@arm.com>
Content-Language: en-US
From: Anshuman Khandual <anshuman.khandual@arm.com>
In-Reply-To: <20251124132228.622678-9-kevin.brodsky@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24/11/25 6:52 PM, Kevin Brodsky wrote:
> Despite recent efforts to prevent lazy_mmu sections from nesting, it
> remains difficult to ensure that it never occurs - and in fact it
> does occur on arm64 in certain situations (CONFIG_DEBUG_PAGEALLOC).
> Commit 1ef3095b1405 ("arm64/mm: Permit lazy_mmu_mode to be nested")
> made nesting tolerable on arm64, but without truly supporting it:
> the inner call to leave() disables the batching optimisation before
> the outer section ends.
> 
> This patch actually enables lazy_mmu sections to nest by tracking
> the nesting level in task_struct, in a similar fashion to e.g.
> pagefault_{enable,disable}(). This is fully handled by the generic
> lazy_mmu helpers that were recently introduced.
> 
> lazy_mmu sections were not initially intended to nest, so we need to
> clarify the semantics w.r.t. the arch_*_lazy_mmu_mode() callbacks.
> This patch takes the following approach:
> 
> * The outermost calls to lazy_mmu_mode_{enable,disable}() trigger
>   calls to arch_{enter,leave}_lazy_mmu_mode() - this is unchanged.
> 
> * Nested calls to lazy_mmu_mode_{enable,disable}() are not forwarded
>   to the arch via arch_{enter,leave} - lazy MMU remains enabled so
>   the assumption is that these callbacks are not relevant. However,
>   existing code may rely on a call to disable() to flush any batched
>   state, regardless of nesting. arch_flush_lazy_mmu_mode() is
>   therefore called in that situation.
> 
> A separate interface was recently introduced to temporarily pause
> the lazy MMU mode: lazy_mmu_mode_{pause,resume}(). pause() fully
> exits the mode *regardless of the nesting level*, and resume()
> restores the mode at the same nesting level.
> 
> pause()/resume() are themselves allowed to nest, so we actually
> store two nesting levels in task_struct: enable_count and
> pause_count. A new helper in_lazy_mmu_mode() is introduced to
> determine whether we are currently in lazy MMU mode; this will be
> used in subsequent patches to replace the various ways arch's
> currently track whether the mode is enabled.
> 
> In summary (enable/pause represent the values *after* the call):
> 
> lazy_mmu_mode_enable()		-> arch_enter()	    enable=1 pause=0
>     lazy_mmu_mode_enable()	-> ø		    enable=2 pause=0
> 	lazy_mmu_mode_pause()	-> arch_leave()     enable=2 pause=1
> 	lazy_mmu_mode_resume()	-> arch_enter()     enable=2 pause=0
>     lazy_mmu_mode_disable()	-> arch_flush()     enable=1 pause=0
> lazy_mmu_mode_disable()		-> arch_leave()     enable=0 pause=0
> 
> Note: in_lazy_mmu_mode() is added to <linux/sched.h> to allow arch
> headers included by <linux/pgtable.h> to use it.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
>  arch/arm64/include/asm/pgtable.h |  12 ----
>  include/linux/mm_types_task.h    |   5 ++
>  include/linux/pgtable.h          | 115 +++++++++++++++++++++++++++++--
>  include/linux/sched.h            |  45 ++++++++++++
>  4 files changed, 158 insertions(+), 19 deletions(-)
> 
> diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
> index e596899f4029..a7d99dee3dc4 100644
> --- a/arch/arm64/include/asm/pgtable.h
> +++ b/arch/arm64/include/asm/pgtable.h
> @@ -82,18 +82,6 @@ static inline void queue_pte_barriers(void)
>  
>  static inline void arch_enter_lazy_mmu_mode(void)
>  {
> -	/*
> -	 * lazy_mmu_mode is not supposed to permit nesting. But in practice this
> -	 * does happen with CONFIG_DEBUG_PAGEALLOC, where a page allocation
> -	 * inside a lazy_mmu_mode section (such as zap_pte_range()) will change
> -	 * permissions on the linear map with apply_to_page_range(), which
> -	 * re-enters lazy_mmu_mode. So we tolerate nesting in our
> -	 * implementation. The first call to arch_leave_lazy_mmu_mode() will
> -	 * flush and clear the flag such that the remainder of the work in the
> -	 * outer nest behaves as if outside of lazy mmu mode. This is safe and
> -	 * keeps tracking simple.
> -	 */
> -
>  	set_thread_flag(TIF_LAZY_MMU);>  }

Should not platform specific changes be deferred to subsequent patches until
nesting is completely enabled in generic first ? Although no problem as such
but would be bit cleaner.

>  
> diff --git a/include/linux/mm_types_task.h b/include/linux/mm_types_task.h
> index a82aa80c0ba4..11bf319d78ec 100644
> --- a/include/linux/mm_types_task.h
> +++ b/include/linux/mm_types_task.h
> @@ -88,4 +88,9 @@ struct tlbflush_unmap_batch {
>  #endif
>  };
>  
> +struct lazy_mmu_state {
> +	u8 enable_count;
> +	u8 pause_count;
> +};
> +

Should not this be wrapped with CONFIG_ARCH_HAS_LAZY_MMU_MODE as the task_struct
element 'lazy_mmu_state' is only available with the feature. Besides, is a depth
of 256 really expected here ? 4 bits for each element would not be sufficient for
a depth of 16 ?


>  #endif /* _LINUX_MM_TYPES_TASK_H */
> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
> index 8ff6fdb4b13d..24fdb6f5c2e1 100644
> --- a/include/linux/pgtable.h
> +++ b/include/linux/pgtable.h
> @@ -230,39 +230,140 @@ static inline int pmd_dirty(pmd_t pmd)
>   * (In practice, for user PTE updates, the appropriate page table lock(s) are
>   * held, but for kernel PTE updates, no lock is held). The mode is disabled in
>   * interrupt context and calls to the lazy_mmu API have no effect.
> - * Nesting is not permitted.
> + *
> + * The lazy MMU mode is enabled for a given block of code using:
> + *
> + *   lazy_mmu_mode_enable();
> + *   <code>
> + *   lazy_mmu_mode_disable();
> + *
> + * Nesting is permitted: <code> may itself use an enable()/disable() pair.
> + * A nested call to enable() has no functional effect; however disable() causes
> + * any batched architectural state to be flushed regardless of nesting. After a

Just wondering if there is a method for these generic helpers to ensure that platform
really does the required flushing on _disable() or the expected platform semantics is
only described via this comment alone ?

> + * call to disable(), the caller can therefore rely on all previous page table
> + * modifications to have taken effect, but the lazy MMU mode may still be
> + * enabled.
> + *
> + * In certain cases, it may be desirable to temporarily pause the lazy MMU mode.
> + * This can be done using:
> + *
> + *   lazy_mmu_mode_pause();
> + *   <code>
> + *   lazy_mmu_mode_resume();
> + *
> + * pause() ensures that the mode is exited regardless of the nesting level;
> + * resume() re-enters the mode at the same nesting level. Any call to the
> + * lazy_mmu_mode_* API between those two calls has no effect. In particular,
> + * this means that pause()/resume() pairs may nest.
> + *
> + * in_lazy_mmu_mode() can be used to check whether the lazy MMU mode is
> + * currently enabled.

Just wondering - could a corresponding test be included probably via KUNIT_TEST
to ensure the above described semantics are being followed.

>   */
>  #ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
> +/**
> + * lazy_mmu_mode_enable() - Enable the lazy MMU mode.
> + *
> + * Enters a new lazy MMU mode section; if the mode was not already enabled,
> + * enables it and calls arch_enter_lazy_mmu_mode().
> + *
> + * Must be paired with a call to lazy_mmu_mode_disable().
> + *
> + * Has no effect if called:
> + * - While paused - see lazy_mmu_mode_pause()
> + * - In interrupt context
> + */
>  static inline void lazy_mmu_mode_enable(void)
>  {
> -	if (in_interrupt())
> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
> +
> +	if (in_interrupt() || state->pause_count > 0)
>  		return;
>  
> -	arch_enter_lazy_mmu_mode();
> +	VM_WARN_ON_ONCE(state->enable_count == U8_MAX);
> +
> +	if (state->enable_count++ == 0)
> +		arch_enter_lazy_mmu_mode();

When lazy_mmu_mode_enable() gets called for the first time with state->enable_count as 0,
then arch_enter_lazy_mmu_mode() will not get called ? Bit confused.

>  }
>  
> +/**
> + * lazy_mmu_mode_disable() - Disable the lazy MMU mode.
> + *
> + * Exits the current lazy MMU mode section. If it is the outermost section,
> + * disables the mode and calls arch_leave_lazy_mmu_mode(). Otherwise (nested
> + * section), calls arch_flush_lazy_mmu_mode().
> + *
> + * Must match a call to lazy_mmu_mode_enable().
> + *
> + * Has no effect if called:
> + * - While paused - see lazy_mmu_mode_pause()
> + * - In interrupt context
> + */
>  static inline void lazy_mmu_mode_disable(void)
>  {
> -	if (in_interrupt())
> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
> +
> +	if (in_interrupt() || state->pause_count > 0)
>  		return;
>  
> -	arch_leave_lazy_mmu_mode();
> +	VM_WARN_ON_ONCE(state->enable_count == 0);
> +
> +	if (--state->enable_count == 0)
> +		arch_leave_lazy_mmu_mode();
> +	else /* Exiting a nested section */
> +		arch_flush_lazy_mmu_mode();
> +
>  }
>  
> +/**
> + * lazy_mmu_mode_pause() - Pause the lazy MMU mode.
> + *
> + * Pauses the lazy MMU mode; if it is currently active, disables it and calls
> + * arch_leave_lazy_mmu_mode().
> + *
> + * Must be paired with a call to lazy_mmu_mode_resume(). Calls to the
> + * lazy_mmu_mode_* API have no effect until the matching resume() call.
> + *
> + * Has no effect if called:
> + * - While paused (inside another pause()/resume() pair)
> + * - In interrupt context
> + */
>  static inline void lazy_mmu_mode_pause(void)
>  {
> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
> +
>  	if (in_interrupt())
>  		return;
>  
> -	arch_leave_lazy_mmu_mode();
> +	VM_WARN_ON_ONCE(state->pause_count == U8_MAX);
> +
> +	if (state->pause_count++ == 0 && state->enable_count > 0)
> +		arch_leave_lazy_mmu_mode();
>  }
>  
> +/**
> + * lazy_mmu_mode_pause() - Resume the lazy MMU mode.
> + *
> + * Resumes the lazy MMU mode; if it was active at the point where the matching
> + * call to lazy_mmu_mode_pause() was made, re-enables it and calls
> + * arch_enter_lazy_mmu_mode().
> + *
> + * Must match a call to lazy_mmu_mode_pause().
> + *
> + * Has no effect if called:
> + * - While paused (inside another pause()/resume() pair)
> + * - In interrupt context
> + */
>  static inline void lazy_mmu_mode_resume(void)
>  {
> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
> +
>  	if (in_interrupt())
>  		return;
>  
> -	arch_enter_lazy_mmu_mode();
> +	VM_WARN_ON_ONCE(state->pause_count == 0);
> +
> +	if (--state->pause_count == 0 && state->enable_count > 0)
> +		arch_enter_lazy_mmu_mode();
>  }

Should not state->pause/enable_count tests and increment/decrement be handled
inside include/linux/sched via helpers like in_lazy_mmu_mode() ? This is will
ensure cleaner abstraction with respect to task_struct.

>  #else
>  static inline void lazy_mmu_mode_enable(void) {}
> diff --git a/include/linux/sched.h b/include/linux/sched.h
> index b469878de25c..847e242376db 100644
> --- a/include/linux/sched.h
> +++ b/include/linux/sched.h
> @@ -1441,6 +1441,10 @@ struct task_struct {
>  
>  	struct page_frag		task_frag;
>  
> +#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
> +	struct lazy_mmu_state		lazy_mmu_state;
> +#endif
> +
>  #ifdef CONFIG_TASK_DELAY_ACCT
>  	struct task_delay_info		*delays;
>  #endif
> @@ -1724,6 +1728,47 @@ static inline char task_state_to_char(struct task_struct *tsk)
>  	return task_index_to_char(task_state_index(tsk));
>  }
>  
> +#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
> +/**
> + * __task_lazy_mmu_mode_active() - Test the lazy MMU mode state for a task.
> + * @tsk: The task to check.
> + *
> + * Test whether @tsk has its lazy MMU mode state set to active (i.e. enabled
> + * and not paused).
> + *
> + * This function only considers the state saved in task_struct; to test whether
> + * current actually is in lazy MMU mode, in_lazy_mmu_mode() should be used
> + * instead.
> + *
> + * This function is intended for architectures that implement the lazy MMU
> + * mode; it must not be called from generic code.
> + */
> +static inline bool __task_lazy_mmu_mode_active(struct task_struct *tsk)
> +{
> +	struct lazy_mmu_state *state = &tsk->lazy_mmu_state;
> +
> +	return state->enable_count > 0 && state->pause_count == 0;
> +}
> +
> +/**
> + * in_lazy_mmu_mode() - Test whether we are currently in lazy MMU mode.
> + *
> + * Test whether the current context is in lazy MMU mode. This is true if both:
> + * 1. We are not in interrupt context
> + * 2. Lazy MMU mode is active for the current task
> + *
> + * This function is intended for architectures that implement the lazy MMU
> + * mode; it must not be called from generic code.
> + */
> +static inline bool in_lazy_mmu_mode(void)
> +{
> +	if (in_interrupt())
> +		return false;
> +
> +	return __task_lazy_mmu_mode_active(current);
> +}
> +#endif
> +
>  extern struct pid *cad_pid;
>  
>  /*



From xen-devel-bounces@lists.xenproject.org Thu Dec 04 06:52:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 06:52:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177305.1501627 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR3CX-0003z2-Kw; Thu, 04 Dec 2025 06:52:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177305.1501627; Thu, 04 Dec 2025 06:52:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR3CX-0003yv-IJ; Thu, 04 Dec 2025 06:52:29 +0000
Received: by outflank-mailman (input) for mailman id 1177305;
 Thu, 04 Dec 2025 06:52:28 +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
 <SRS0=mr2u=6K=arm.com=anshuman.khandual@srs-se1.protection.inumbo.net>)
 id 1vR3CW-0003yo-NK
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 06:52:28 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id cb57ca03-d0dd-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 07:52:27 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id AEABB339;
 Wed,  3 Dec 2025 22:52:18 -0800 (PST)
Received: from [10.164.18.78] (unknown [10.164.18.78])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3C0333F59E;
 Wed,  3 Dec 2025 22:52:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cb57ca03-d0dd-11f0-9d1a-b5c5bf9af7f9
Message-ID: <89ecddb7-83ee-427b-823b-984204939ecf@arm.com>
Date: Thu, 4 Dec 2025 12:22:13 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 09/12] arm64: mm: replace TIF_LAZY_MMU with
 in_lazy_mmu_mode()
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-10-kevin.brodsky@arm.com>
Content-Language: en-US
From: Anshuman Khandual <anshuman.khandual@arm.com>
In-Reply-To: <20251124132228.622678-10-kevin.brodsky@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24/11/25 6:52 PM, Kevin Brodsky wrote:
> The generic lazy_mmu layer now tracks whether a task is in lazy MMU
> mode. As a result we no longer need a TIF flag for that purpose -
> let's use the new in_lazy_mmu_mode() helper instead.
> 
> The explicit check for in_interrupt() is no longer necessary either
> as in_lazy_mmu_mode() always returns false in interrupt context.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
>  arch/arm64/include/asm/pgtable.h     | 19 +++----------------
>  arch/arm64/include/asm/thread_info.h |  3 +--
>  2 files changed, 4 insertions(+), 18 deletions(-)
> 
> diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
> index a7d99dee3dc4..dd7ed653a20d 100644
> --- a/arch/arm64/include/asm/pgtable.h
> +++ b/arch/arm64/include/asm/pgtable.h
> @@ -62,28 +62,16 @@ static inline void emit_pte_barriers(void)
>  
>  static inline void queue_pte_barriers(void)
>  {
> -	unsigned long flags;
> -
> -	if (in_interrupt()) {
> -		emit_pte_barriers();
> -		return;
> -	}
> -
> -	flags = read_thread_flags();
> -
> -	if (flags & BIT(TIF_LAZY_MMU)) {
> +	if (in_lazy_mmu_mode()) {
>  		/* Avoid the atomic op if already set. */
> -		if (!(flags & BIT(TIF_LAZY_MMU_PENDING)))
> +		if (!test_thread_flag(TIF_LAZY_MMU_PENDING))

A small nit - will it be better not to use test_thread_flag() here and just
keep checking flags like earlier to avoid non-related changes. Although not
a problem TBH.

>  			set_thread_flag(TIF_LAZY_MMU_PENDING);
>  	} else {
>  		emit_pte_barriers();
>  	}
>  }
>  
> -static inline void arch_enter_lazy_mmu_mode(void)
> -{
> -	set_thread_flag(TIF_LAZY_MMU);
> -}
> +static inline void arch_enter_lazy_mmu_mode(void) {}
>  
>  static inline void arch_flush_lazy_mmu_mode(void)
>  {
> @@ -94,7 +82,6 @@ static inline void arch_flush_lazy_mmu_mode(void)
>  static inline void arch_leave_lazy_mmu_mode(void)
>  {
>  	arch_flush_lazy_mmu_mode();
> -	clear_thread_flag(TIF_LAZY_MMU);
>  }
>  
>  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
> diff --git a/arch/arm64/include/asm/thread_info.h b/arch/arm64/include/asm/thread_info.h
> index f241b8601ebd..4ff8da0767d9 100644
> --- a/arch/arm64/include/asm/thread_info.h
> +++ b/arch/arm64/include/asm/thread_info.h
> @@ -84,8 +84,7 @@ void arch_setup_new_exec(void);
>  #define TIF_SME_VL_INHERIT	28	/* Inherit SME vl_onexec across exec */
>  #define TIF_KERNEL_FPSTATE	29	/* Task is in a kernel mode FPSIMD section */
>  #define TIF_TSC_SIGSEGV		30	/* SIGSEGV on counter-timer access */
> -#define TIF_LAZY_MMU		31	/* Task in lazy mmu mode */
> -#define TIF_LAZY_MMU_PENDING	32	/* Ops pending for lazy mmu mode exit */
> +#define TIF_LAZY_MMU_PENDING	31	/* Ops pending for lazy mmu mode exit */
>  
>  #define _TIF_SIGPENDING		(1 << TIF_SIGPENDING)
>  #define _TIF_NEED_RESCHED	(1 << TIF_NEED_RESCHED)

LGTM.

Hence with or without the 'flags' changes in queue_pte_barriers() above.

Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 07:21:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 07:21:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177319.1501638 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR3e1-0007xW-PL; Thu, 04 Dec 2025 07:20:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177319.1501638; Thu, 04 Dec 2025 07:20:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR3e1-0007xP-LU; Thu, 04 Dec 2025 07:20:53 +0000
Received: by outflank-mailman (input) for mailman id 1177319;
 Thu, 04 Dec 2025 07:20:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8VGT=6K=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vR3dz-0007xJ-KC
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 07:20:51 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c1951c8c-d0e1-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 08:20:48 +0100 (CET)
Received: from DU2PR04CA0207.eurprd04.prod.outlook.com (2603:10a6:10:28d::32)
 by PAXPR08MB6509.eurprd08.prod.outlook.com (2603:10a6:102:12e::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Thu, 4 Dec
 2025 07:20:43 +0000
Received: from DB1PEPF000509F5.eurprd02.prod.outlook.com
 (2603:10a6:10:28d:cafe::67) by DU2PR04CA0207.outlook.office365.com
 (2603:10a6:10:28d::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.9 via Frontend Transport; Thu, 4
 Dec 2025 07:20:39 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509F5.mail.protection.outlook.com (10.167.242.151) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Thu, 4 Dec 2025 07:20:43 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by GV1PR08MB7732.eurprd08.prod.outlook.com (2603:10a6:150:53::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Thu, 4 Dec
 2025 07:19:36 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d%4]) with mapi id 15.20.9388.003; Thu, 4 Dec 2025
 07:19:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c1951c8c-d0e1-11f0-980a-7dc792cee155
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=szNsPoKqarA0xNnpFYZZAgTZ6/jDOxNonbYl+iRDbhqVV0+/wu5Gdnn1B6nO2uwb8N9VS4Rr+fhwuavSAbAaCOlmuqnYUCtHjDAswDGjaF5lNIHdd5qBW5kotelFGpbU7hLZFdeUGbRq/MPNMK/FFT/d101XqB8h7ROIwVzgB2xTl3Az8PSrnXvVbkJYeAXissgLzwgdj1dSPK7s3gmVK4pZ3aSQDIMFU7M5BPR6DlrJiqs5997SXpKpVZ2NFn41OlsCiPsKyqCN33xn5SuAuz00sRcVj4H0ptESnPGAifJfMwRDHgos0W92maWvnjRzppVOu8ObnisTDQ/yBOI1TA==
ARC-Message-Signature: i=2; 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=8rG587oZEWwoxfK1+u71M6Y71itEBhTBhYHZl3XbcZc=;
 b=IYOyby4r3+3E/yI9BPXNlTeatA27wZMjHoGBpHW7f5/9XfRXiXkkufAatz2WVVYVrQ6OfLiZ4/JsOyUch1vYqdiN1ptbhOUecB4ViTVBxrQ4/AxE/whT8trCyP3o/Lbx9RVwCdxFM8Pp9z7JT4d8UCch3S+aT4RA2DBUpJnXsLw2bgynCUqh24c7QqmF1T00b+ljjiGjfnKTdyaj8Rvpv3E/5DH2dteKQ7Vg7IzKanSQFsSg5J6AbsSMhHcFMh0/lm1wfNjI0gjR5Osa91L134NFTDwpEAUfFNc42OnvG5bpvjRGadKY4hcoZGJhafXugOlCdMNWA/Tx0Jq5vZVM5A==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=xen.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8rG587oZEWwoxfK1+u71M6Y71itEBhTBhYHZl3XbcZc=;
 b=WwI/TuRrME4d+YVuxQxdHd/CXg8bh8sYL1vGs+N3Gx79yiNVmEaMvH/oUZiu0j6fJYDGrRPmuYHwhMVOVYRBVcsMfY6d55czj+R3oTkKlMOU6YlHe5dmefH5ysudhkQ2TUVsMZDsojPJwRuKUuUZ+L4nRW9yRnaji6z6aIz7kes=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DZqn+Kt8vblsiypluH97/ODIqs8uwPzcfrBbvNaGBhFkopUFMVS9KUysp+KPk7d8HvIGjXRs4sDPQvYcTWoSYIWPMx3HAWPGfOqY4Dd1nmoEleF6oS0lE+TtKs6eEc4YQewXfr0XLksKJzrHcI5hi/tvguBhq+tHySFIaPqfjeOJValTNWwwuFJX36V40zPhfvLEog8sScDM7hm6B8+0fVY7wadz/1RJtal9zjx8yWnKohynPZV4ezDTOMu4cpWPB1fWMYC3s0kgjohk3kCRv8oObG8JNiJkKAJkfqvpWmGMES/hoVYtAnty8Rs2xUZ5vNvOJlKQllKd91g99V67eQ==
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=8rG587oZEWwoxfK1+u71M6Y71itEBhTBhYHZl3XbcZc=;
 b=vkUUUJmuYZ0CqfL50zjFzv2gv7DjHfxpx0r4x2vhOjZZ3LMyhN3/BgLaLXgzm1IllreAh7p/xkxAF8I8D/TkH6teDVdEZzGy9zJlXrlhn4N4OSe9lT1TSN12gOgP/Tr/akVhf+PbzQP8KjsiIXo02tpwVUmPWvPS61e2whdTJZFajQGzVHKo8cGVcMzqzL7dUsWv3S8+Y5p80HzCcwxcydqarEC218clQe2UB+LjSvMMf6yG5NeGO/7i33c9NUdAwgLNZCQy/pHBRFjrsUzkR7XhyRWUChREYpJYxn9yXCC5WTWYW2pWvwwjmIFG6eRCUh+91J1IqplJq2LpNRwAHA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8rG587oZEWwoxfK1+u71M6Y71itEBhTBhYHZl3XbcZc=;
 b=WwI/TuRrME4d+YVuxQxdHd/CXg8bh8sYL1vGs+N3Gx79yiNVmEaMvH/oUZiu0j6fJYDGrRPmuYHwhMVOVYRBVcsMfY6d55czj+R3oTkKlMOU6YlHe5dmefH5ysudhkQ2TUVsMZDsojPJwRuKUuUZ+L4nRW9yRnaji6z6aIz7kes=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Julien Grall <julien@xen.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>, Hans van Kranenburg <hans@knorrie.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Michal Orzel <michal.orzel@amd.com>, Jan
 Beulich <JBeulich@suse.com>, Maximilian Engelhardt <maxi@daemonizer.de>
Subject: Re: [PATCH] ARM: Drop ThumbEE support
Thread-Topic: [PATCH] ARM: Drop ThumbEE support
Thread-Index: AQHcZHiHHimnEym6ZUmnz/k7agCZbbUQOtwAgAAHNICAACU0AIAArG6A
Date: Thu, 4 Dec 2025 07:19:35 +0000
Message-ID: <A58EC61D-A05E-42B6-B541-60F577AA222C@arm.com>
References: <20251203171608.1714964-1-andrew.cooper3@citrix.com>
 <f081cd84-a626-4b02-8c8b-6c0c0b723b84@xen.org>
 <875a6a6c-f81f-449e-bd57-7e720d07e8a2@citrix.com>
 <9ddb8824-2d88-444e-819a-e46be4b406d1@xen.org>
In-Reply-To: <9ddb8824-2d88-444e-819a-e46be4b406d1@xen.org>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.200.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|GV1PR08MB7732:EE_|DB1PEPF000509F5:EE_|PAXPR08MB6509:EE_
X-MS-Office365-Filtering-Correlation-Id: a9106228-9aa1-4e70-0d61-08de3305a2cc
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|10070799003|376014|1800799024|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?OFBBT2tYbGNZM2tYVlR4aUMxeC9JSmRkMlBURjUrUGIxVmcyT2ZueHRSUTg2?=
 =?utf-8?B?VnBrR2Z3bStqNGVkRnVuNFJrOFRkaG9JZkNTMGgvcjBjcDU0NzdIV211Zktl?=
 =?utf-8?B?ZjV2M0hlUENNQ1ZiTzlQaTY1c3BrSGFQMEREVXdZeVoxc0lzVlBZYjFOVlJn?=
 =?utf-8?B?TEtKSzZnaEVHOTB5dWtlTWhQMFdKcHF1RkpXSUEyMGNnYnkrSVBHYzRZQWNG?=
 =?utf-8?B?UTVaRTM1LzVYSkdseUROOXlManNveUIxcWVERGh1eUZ3ekRLM3crVWJseVM2?=
 =?utf-8?B?TmZQYzNJWDZkVUwvMXB5TUUwcU9hdkxtUHBQMWZCRndEbHBhR2FPdjJlZWxj?=
 =?utf-8?B?UWFvemtKdXJqWGtDT2V1eklianpvZDBaTStUaDNwaitTN0ZlSmZBUFJ0M1N1?=
 =?utf-8?B?Tno0RFJHOGhZUmtpYVZabWpqN05CN1hsVEN1Y01iY1hlekJoM0cwYTZSZm5K?=
 =?utf-8?B?NlVQMkpXU0tFMEtIN3J3cmhQcFZBSmhHK1ZNMHZwaExkNjA2aTlTMjRSUWpL?=
 =?utf-8?B?VXlMSTEvVjJibzdhcnA5MXdSdFcwQ3VNRkFIck9VOXVCMlRQUTZ3ZDZRcEgw?=
 =?utf-8?B?eUxyQjU3cUI4ZTdoMmFIdVE3TzhpR280MXRxc2cwU1ByY2dyK2Nrd0MwWUFN?=
 =?utf-8?B?bXYycC9GcDd1Z3NCMHduM2I0ditlMHdpMHBuZXRxaGZ0SFBCT21wYjN5eU4v?=
 =?utf-8?B?RTJHQU8xQnBvWmY0dG1SL09BQXRzLzJYajN1RE1vd2YxOW1BbGN5Mm9pREwz?=
 =?utf-8?B?RENuTml1WlR3WDhhR2JxNHNVdWE3Rm9UQTdmc3MxQ0pEWGZpRUxPQ2VxNDY5?=
 =?utf-8?B?ekdCZFl0N090TDZjRmhBTy9UNkxWL3VkNy9MblFxSmMybEVST2pjWFdDN3FX?=
 =?utf-8?B?d2dyWHVoQ3B3MjFUYmJqZ1diQndxUFd4NXhpOVZ4MDVLTDNLWGptSHFDZ3dK?=
 =?utf-8?B?L1Bud0MzTVpxcUhyK3Z5OVJab3BrWXJEVFo0dEtnSkxHdkJGNnltRXNGTWZG?=
 =?utf-8?B?WFVmV2tOekh5LytldjRpNjl1TnA0aVNiVGVWSjhZdHpiVlUrWW9tN1hWRXg2?=
 =?utf-8?B?aHVXSGpaNFFja1U4VmtBUHJveGE2MHpKWlFsMlRaZmYwWDIxeFZCekN0NU5k?=
 =?utf-8?B?K2lNVHhwMzJzRnRLU2gzTDBIRFhBTXdySUtHVjZVY3owcXJLaENxeWxaRzkv?=
 =?utf-8?B?dy9JN0tPY2FXUTJ1cFdEQ3hGV1lvTW9jbFRKUU82Yko3cWNydVlhM0dhUmFt?=
 =?utf-8?B?bm91bW5WaXpER3VTTlpPeWlLUExpcXhhMlFVbHY1WTR4YVJRV0FPUkhnemRs?=
 =?utf-8?B?b1JIN3kxTE5tMzY0enJBemw1TG5oUnhPREpPUnRzZkptbHRmZFJlZ0Q3Y3NM?=
 =?utf-8?B?Zk5FeEk2Z0RodGhpYVdzZis2UENza3VLY2FuZDBtNTdDTkw1N0ZDbm1xZUgw?=
 =?utf-8?B?Y0JCaXBXR2NIOHJHbFZ5eEgyOWh4UGdkWW1LaVd4NWEra3kxUXg4YTFqSjYx?=
 =?utf-8?B?S0h0dStJZWc3UitMRlRmQ3FRa2NKdmxCMy9GTVBLbGd1Z1gvQXZpbFU5Skpy?=
 =?utf-8?B?SXdQWmp0YjVJNDg2dHpOYjNrdm1MVVZFMTVGSzFSbHFrU0VWV3RKTGxQZ2VE?=
 =?utf-8?B?b1M3NURwbnpCRXZublZuRXVoZWhXTGFRVjhDT2ErdENmVjNGQm5YNk9Wd1Z2?=
 =?utf-8?B?endFQUV1VDZsM24reit2QVVBNUxBZ2Y4aEhqVEZJWTZEenNNRkV6S3hyNitU?=
 =?utf-8?B?b2xGL2pleXBKMDFMRGtlWXI3TmpsZkxQMzZmR2t6NW1wOCtoM0RMQXBWZkFH?=
 =?utf-8?B?S2ljMG0wU0tUYVdGdW1rejFUU3U1bFlHQkY0S0Rmc2UrUXYzb0NyVjFacEE1?=
 =?utf-8?B?djFTemZENU9KeWVYY0N3eDErcTVkeFhOQmlyb09tcnZNWkU2ZWZtd2ZSWXZ6?=
 =?utf-8?B?eTY5TnNLRU83Q3J1MDZFc2tzWGtPWHBUOWFaMzFCZk5ML3dkS25HOHNwYnox?=
 =?utf-8?B?Q2RRbkl5bjZodkVMWlVxYTNSSG9ZOG9ESWtMa1JXTXNWTDA1cHlYc01Vam0w?=
 =?utf-8?Q?A6PMbz?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <E85492E474FB7E49B3F293B6AC8BEF5B@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB7732
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509F5.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	8c660111-9178-4b25-0756-08de33057ab0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700013|35042699022|1800799024|14060799003|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UEQ5b2MyOHNmRGZjUExDaytXN0RvbjlDQWRvU3BzZnUwTXhtWEE2WFlvdEU3?=
 =?utf-8?B?dkp0UDlPTTNyZ2VDd3NLaWpBVlNobzlxS08wK0xxM3ppTWRmSnpkUXpTLzBW?=
 =?utf-8?B?c3JZblNuVzdzNWpsSjI5dEt6ZCtWQ1dOWE5BR2NPWTRJcjVlcDFhRmxNVkJE?=
 =?utf-8?B?aWlaSi9uaUZxVE9DVVUxUlZuKzdCOUJ4UkN5aWNacEdVZm9IN3kyOUVSMGN3?=
 =?utf-8?B?M25Td2x0ZWllcWdoZURZb3JnS1pwSkdoZDE2bk1pM0ErVzlmOWNiNThKRzd5?=
 =?utf-8?B?cFJQUTBvN2o5dFNpV1dsWkgwaUJvMVljbjhmMnVVQ0FkYjJWcjRJSm1KRFBF?=
 =?utf-8?B?Z21VeGZtZWtXVVU4WnA4S3oydzhZY2FBdkcwS3NlQ3VOTjlwYUdFbERLd0pz?=
 =?utf-8?B?b2t1dUZVcFFtVTJNNUNya2hmN0p4TlowUXlWd0dONWNsVXRMMlZKclNmSkRt?=
 =?utf-8?B?NlllQkY3MWJRNXFPUDBoVkt6M3RvM2tZMGhsbG05ZlZzWDZLUi9BS1FjQjdr?=
 =?utf-8?B?TzFzTVgyK1lkUXllc3lVMjdGT1dCWGRldjExcUo5enArdXp2QzA3ZGdZSFRX?=
 =?utf-8?B?RWxCS01hKzVOZnI2S2ZkU2cxWDEwOUtxZS9PRHhmeFVUajNFb0VtaXFlWW52?=
 =?utf-8?B?MmtJS0N3RkpZcnptaXZKRi95bm9DSWs2QzJudytvL0dWTVh3RnNuZ0dBeGJX?=
 =?utf-8?B?WG5qRFNFdUdzb1h3SGZhZmZHVUl5SG9TRmlUajcxWDNaN1BRMlVZdFAzTzBY?=
 =?utf-8?B?cnU0T00rQXA0Si9qaWdtd2ZjQ1JhdUlJQkxYc0J6UHNwek1tUk1jVmpFOHpu?=
 =?utf-8?B?alBYOW9nRWdmUTdlVEFoa1AyWktnNG1KR01YTlE1WENLSDR0R2ZqajdpT25m?=
 =?utf-8?B?b0dNeEY1cS83NmNHOWlmOGdtb2tiWC9lZWY5VXAxM1RSWElGcUpnMlBYM1Fj?=
 =?utf-8?B?eDh4TjFRbHJSS1ZFVHR0TXBpSFM1d3JFalhNdkhNRS9leS8xbW5Zb0hTZmd6?=
 =?utf-8?B?dVJ1dzVzeWpmVU5VbmpFTC9KK2Z0dU9GUlV5ODJZZllkdTc3MWVrc2czeVdq?=
 =?utf-8?B?NTdON3ZETlNVaXJwSXVLbmcrU0xNT2Z1T3FGclo0bUZ2eVVoajc0czFWR2xL?=
 =?utf-8?B?QXdFNU4vV0k2OHZSSC9RRWVEN2w1YVpjVnF3TXBiWmpmakFhZi9PK2lWeVlS?=
 =?utf-8?B?TlNoMWpzK2hSL2xocTdSSGsxRTVHekgwN01kUVRoK1hRY1oybGpWYnA4cE9Z?=
 =?utf-8?B?SkROKzRRODRpcHhQYURTUThBVkdKSElTTVIzOUhZQnJ1bGZXTytjNGZZanQv?=
 =?utf-8?B?Z1lOVWJEeEcwdTg4RHVic3A3LzVIc3hYNW1yUnFJdDQweVRQdTZuOVlzM2hp?=
 =?utf-8?B?TGo4cjJuYnFrSnlsdGxFSVNMUEd0WEJwN0F1eFA1MGtQYlNkZzIxV1E0Y0Np?=
 =?utf-8?B?NEJ5VWRqUVVCWUxnSCs1OXBiY1NIRGlhWlNWSFMxcmc2NkM0WWJ3cG5kcWhz?=
 =?utf-8?B?SHVYcW9Ebi9yY1E4SU9YTW94VGYyaC9heThlQ2J5UXNlVU5UQ3QwUU5MM29q?=
 =?utf-8?B?SlhNRkRTeThuTTc5bWNFS1c0SnlnVllaa0pEMlBuS2dBTXhzSXMvQWp2YVRI?=
 =?utf-8?B?cytqRDJrM0JsU2pSdkFML3RQQU9mOUZXcDJkd1V1QjdvWWdiU1hzSGxpTkFz?=
 =?utf-8?B?YStOVmZ1Z3g4Y2ZWeUxSaXRUNHBHR0VYS2dza3V4Q0FiQjA1OFRFVDhrSzlN?=
 =?utf-8?B?WHgxUmRIVlh4VXBGTUdRZmV4RUJRMXA5UGNFWDZ6L3pqLzhJeUlUVjdrUXVC?=
 =?utf-8?B?ME03N3BKK29iN0VkUHZVRHdMdEZUUDVIYXppOG55R3lUaTM5MVlnZXQ0dnZi?=
 =?utf-8?B?dEVwMlozODJMYW5jdHd6eTZaVDdPYWhzTEZyK0Q2TnhXVkZmdG1lVEZXVWR3?=
 =?utf-8?B?OHRHc0xaUjVGbmVlMmxzcjVNa2V4TEJvMjZXaVNPc0tCcVVqazN0WStla24v?=
 =?utf-8?B?MUZRUUpBN2U3ZWxsYjZ5SlQreWFwTWIvNXVlT2dXTnBla1EvZDQ2bUdRNnZW?=
 =?utf-8?B?ejBYUEladFUraE44QW14TGRZcFRscUxJK0x5NS9WcDJaTkhNY3pQbWQ2a2sy?=
 =?utf-8?Q?VRaU=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(35042699022)(1800799024)(14060799003)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2025 07:20:43.1230
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a9106228-9aa1-4e70-0d61-08de3305a2cc
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF000509F5.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6509

SGkgQW5kcmV3IGFuZCBKdWxpZW4sDQoNClI1MiB3aGljaCBpIHRoaW5rIGlzIG9uZSBvZiB0aGUg
ZmV3IEFybSBDUFVzIHRoYXQgc29tZSBwZW9wbGUgYXJlIGxvb2tpbmcgYXQgdXNpbmcNCjMyYml0
IGluc3RydWN0aW9ucyBzdXBwb3J0IFRodW1iLTIgYnV0IG5vdCBUaHVtYkVFLg0KDQpUaHVtYkVF
IGhhcyBiZWVuIGRlcHJlY2F0ZWQgc28gSSB0aGluayBBbmRyZXdzIGNoYW5nZXMgKGluY2x1ZGlu
ZyB0aGUgb25lDQp0aGF0IHRyYXBzIGFueSBUaHVtYkVFIHVzYWdlIHdoaWNoIGlzIGRlZmluaXRl
bHkgcmVxdWlyZWQpIGFyZSBPay4NCg0KRXZlbiBvbiBDb3J0ZXggQTE1LCBJIGFtIG5vdCB0aGF0
IHN1cmUgdGhhdCBtYW55IHBlb3BsZSBhY3R1YWxseSB1c2VkIFRodW1iRUUuDQoNClJlZ2FyZHMN
CkJlcnRyYW5kDQoNCj4gT24gMyBEZWMgMjAyNSwgYXQgMjI6MDIsIEp1bGllbiBHcmFsbCA8anVs
aWVuQHhlbi5vcmc+IHdyb3RlOg0KPiANCj4gSGkgQW5kcmV3LA0KPiANCj4gT24gMDMvMTIvMjAy
NSAxODo0OSwgQW5kcmV3IENvb3BlciB3cm90ZToNCj4+IE9uIDAzLzEyLzIwMjUgNjoyMyBwbSwg
SnVsaWVuIEdyYWxsIHdyb3RlOg0KPj4+IEhpIEFuZHJldywNCj4+PiANCj4+PiBPbiAwMy8xMi8y
MDI1IDE3OjE2LCBBbmRyZXcgQ29vcGVyIHdyb3RlOg0KPj4+PiB0byBrZWVwIGl0IHdvcmtpbmcs
IGJ1dCB0aGVyZSB3YXMgYXBwYXJlbnRseSBubyB1c2Ugb2YgVGh1bWJFRQ0KPj4+PiBvdXRzaWRl
IG9mIGRlbW8NCj4+Pj4gY29kZSwgc28gc2ltcGx5IGRyb3AgaXQuDQo+Pj4gDQo+Pj4gSSBhbSBp
biBmYXZvciBvZiBkcm9wcGluZyBzdXBwb3J0IGZvciBUaHVtYkVFIGZvciBndWVzdC4gQnV0IEkg
YW0gbm90DQo+Pj4gc3VyZSBJIHVuZGVyc3RhbmQgdGhpcyBjb21tZW50Lg0KPj4gVGhlcmUncyBu
byBwcm9kdWN0aW9uIHVzZSBvZiBUaHVtYkVFIGtub3duIHRvIEFSTS4NCj4gDQo+IEludGVyZXN0
aW5nLiBUaGUgQXJtIEFybSBpcyBsZXNzIGFzc2VydGl2ZSBhbmQgaW4gZmFjdCBjb25mdXNpbmcs
IHRoZSBsYXRlc3Qgc3BlYyByZWxlYXNlZCBpbiAyMDE4IChBUk0gRERJIDA0MDZDLmQpIGhhcyB0
aGUgZm9sbG93aW5nOg0KPiANCj4gIg0KPiBGcm9tIHRoZSBwdWJsaWNhdGlvbiBvZiBpc3N1ZSBD
LmEgb2YgdGhpcyBtYW51YWwsIEFSTSBkZXByZWNhdGVzIGFueSB1c2Ugb2YgdGhlIFRodW1iRUUg
aW5zdHJ1Y3Rpb24gc2V0Lg0KPiANCj4gWy4uLl0NCj4gDQo+IFRodW1iRUUgaXMgYm90aCB0aGUg
bmFtZSBvZiB0aGUgaW5zdHJ1Y3Rpb24gc2V0IGFuZCB0aGUgbmFtZSBvZiB0aGUgZXh0ZW5zaW9u
IHRoYXQgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhhdA0KPiBpbnN0cnVjdGlvbiBzZXQuIFRoZSBU
aHVtYkVFIEV4dGVuc2lvbiBpczoNCj4g4oCiIFJlcXVpcmVkIGluIGltcGxlbWVudGF0aW9ucyBv
ZiB0aGUgQVJNdjctQSBwcm9maWxlLg0KPiAiDQo+IA0KPiBJIGhhdmUgYWxzbyBjaGVja2VkIHRo
ZSBUUk0gb2YgdGhlIENvcnRleC1BMTUgKG9uZSBvZiB0aGUgQXJtdjcgQ1BVIHdlIHVzZWQgdG8g
aGF2ZSBpbiB0aGUgQ0kgYmVmb3JlIGdpdGxhYikgYW5kIGl0IHN1cHBvcnRzIFRodW1iRUUuIFNv
IEkgdGhpbmsgd2UgbmVlZCB0byBhZGRpdGlvbmFsIGRpZmYgeW91IHNlbnQgaW4gdGhpcyBwYXRj
aC4NCj4gDQo+Pj4gQXJlIHlvdSBzYXlpbmcgdGhlcmUgYXJlIG5vIHByb2Nlc3NvcnMgc3VwcG9y
dGluZyBUaHVtYkVFIHdoZXJlIFhlbg0KPj4+IHdvdWxkIHJ1bj8gQXNraW5nIGJlY2F1c2UgYmVs
b3csIHlvdSBhcmUgcmVtb3ZpbmcgY29kZSB0byBjb250ZXh0DQo+Pj4gc3dpdGNoIHRoZSBUaHVt
YkVFIHJlZ2lzdGVycy4gQnV0IEkgZG9uJ3Qgc2VlIGFueSBjb2RlIHRoYXQgd291bGQNCj4+PiBl
bnN1cmUgdGhlIHJlZ2lzdGVycyBhcmUgdHJhcHBpbmcgKGkuZS4gSFNUUi5URUUgaXMgc2V0KS4g
U28gd291bGRuJ3QNCj4+PiB0aGlzIHJlc3VsdCB0byBhIGNyb3NzLVZNIGxlYWsgb24gdGhvc2Ug
cHJvY2Vzc29ycz8NCj4+PiANCj4+PiBJZiB3ZSByZWFsbHkgZG9uJ3Qgd2FudCB0byBzdXBwb3J0
IENQVSB3aGVyZSBUaHVtYkVFIGlzIGF2YWlsYWJsZSwNCj4+PiB0aGVuIHdlIHNob3VsZCBjaGVj
ayB0aGF0ICJjcHVfaGFzX3RodW1iZWUiIGlzIDAuDQo+PiBUaGUgcmVnaXN0ZXJzIGV4aXN0IGlu
IEFSTSB2NyBvbmx5LiAgVGhleSBkbyBub3QgZXhpc3QgaW4gQVJNIHY4Lg0KPj4gSSBzdXBwb3Nl
IHllcyB0aGlzIGNoYW5nZSB3b3VsZCByZXN1bHQgaW4gYSBjcm9zcy1WTSBsZWFrIG9uIGhhcmR3
YXJlDQo+PiBzdXBwb3J0aW5nIFRodW1iRUUuDQo+PiBDYW4gSFNUUi5UVEVFIGJlIHNldCB1bmls
YXRlcmFsbHksIG9yIGRvZXMgaXQgbmVlZCBnYXRpbmcgb24NCj4+IGNwdV9oYXNfdGh1bWJlZT8N
Cj4gDQo+IEZyb20gbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgQXJtdjcgc3BlY2lmaWNhdGlvbiwg
dGhlIGJpdCBkb2Vzbid0IG5lZWQgdG8gYmUgZ2F0ZWQuIFRoZSBBcm12OCBzcGVjaWZpY2F0aW9u
IHN1Z2dlc3QgaXQgaXMgUkVTMCBzbyBpbiB0aGVvcnkgaXQgY291bGQgYmUgdXNlZCBpbiB0aGUg
ZnV0dXJlLiBTbyB0aGUgZGlmZiB5b3Ugc2VudCBpcyBjb3JyZWN0Lg0KPiANCj4+IElzIHNldHRp
bmcgSFNUUi5UVEVFIHN1ZmZpY2llbnQgdG8gY2F1c2UgYW4gdW5kZWZpbmVkIGluc3RydWN0aW9u
DQo+PiBleGNlcHRpb24gdG8gYmUgdGhyb3duIGJhY2sgYXQgYSBndWVzdCB3aGljaCBnb2VzIHBv
a2luZz8gIChJIGd1ZXNzIHRoaXMNCj4+IGlzIHJlYWxseSAid2lsbCB0aGUgZGVmYXVsdCBkbyB0
aGUgcmlnaHQgdGhpbmciKQ0KPiANCj4gSSBiZWxpZXZlIHNvLiBUaGUgZGVmYXVsdCBiZWhhdmlv
ciBpbiBYZW4gaXMgdG8gaW5qZWN0IGFuIHVuZGVmaW5lZCBleGNlcHRpb24gaWYgaXQgY2FuJ3Qg
aGFuZGxlIGEgdHJhcC4NCj4gDQo+PiBJJ2xsIGZyZWVseSBhZG1pdCB0aGF0IEknbSBvdXQgb2Yg
bXkgZGVwdGggaGVyZSwgYnV0IHRoZSBidWlsZCBmYWlsdXJlDQo+PiBkb2VzIG5lZWQgZml4aW5n
Lg0KPiANCj4gSSBhZ3JlZS4gRG8gd2UgbmVlZCB0byBpbmNsdWRlIHRoZSBmaXggaW4gNC4xOSAo
SSB0aGluayBKYW4gYXNrZWQgdG8gY3V0IGl0IHRvbW9ycm93KT8gVGhhbmtzIGZvciBzZW5kaW5n
IHRoZSBwYXRjaCENCj4gDQo+IENoZWVycywNCj4gDQo+IC0tIA0KPiBKdWxpZW4gR3JhbGwNCg0K
DQo=


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 08:00:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 08:00:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177335.1501648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR4G2-0004wv-OQ; Thu, 04 Dec 2025 08:00:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177335.1501648; Thu, 04 Dec 2025 08:00:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR4G2-0004wo-Ke; Thu, 04 Dec 2025 08:00:10 +0000
Received: by outflank-mailman (input) for mailman id 1177335;
 Thu, 04 Dec 2025 08:00:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OYDh=6K=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vR4G2-0004wh-4Y
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 08:00:10 +0000
Received: from mail-oo1-xc34.google.com (mail-oo1-xc34.google.com
 [2607:f8b0:4864:20::c34])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3d582bb3-d0e7-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 09:00:04 +0100 (CET)
Received: by mail-oo1-xc34.google.com with SMTP id
 006d021491bc7-6593155d8d6so409173eaf.3
 for <xen-devel@lists.xenproject.org>; Thu, 04 Dec 2025 00:00:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d582bb3-d0e7-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764835203; x=1765440003; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mEZT8oDY+g//HBWaISlgQDtla/8UQbqNj7CzYcbpSEw=;
        b=hd0PTrbmq2CzOgFnCVKc4kvX8IWuKOfPXdeCODJRRxfEqJ3+tkXxuETqiCf3Aal2S6
         H8CJmhfSIa3TjCh2+SygEbSAbYVrQJgT9UUGOgmWG5BPRYdVDKjQGpgjh3r96mN6DNGU
         y2vr4jWXA4N6gkrzIWv6CEmXmdn3JlnDboDHTohkQSnKLzSEKNuawDs8YY2a8ki44d4e
         BBH+c/DUzJaPzvJ8ApETIld5DBEnKZJ9l9ni9m0JESBbrYRO+P2iFeqvXPJjUJth7WGU
         RDB3fVRvtfAaWkG/YJBFZ2JPS2y86skBHYKHBdm63AilJx3NQrBt2NkK4Ww8BbYYA4jd
         vlmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764835203; x=1765440003;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=mEZT8oDY+g//HBWaISlgQDtla/8UQbqNj7CzYcbpSEw=;
        b=ZbV7lWmEL9+csxGZCgiobdrtxqsyHOFkDRXBo+HYUIBIqAr+ggv31UbLhzZHRRpV9N
         gjimAS2bukKd2j2AzZwD8V7NfRrlfmCiBzHmgxpruwIVfbpCcL5QTiYphO4pt+5DKVOr
         C8G2nBmwDao4caCuTA3vkNlIz4Agt1rzN8mlRN5hyrN2hx14xlgqLvH0zUAaW4/iA+Wv
         58hD4OkTrwXMr2moIju7LJ4x9LVYEh3sVCQqGbl54f5BfmR73g9J2yMBUPJznDauZ5ci
         e+9JAE4QC2oJIX+mB8p/6Rm0CUMm+pM8oQWUvveRPHlhOcRoo3ZWwRgUTz1TJVrzJ1jK
         wK1g==
X-Gm-Message-State: AOJu0YzxFuDDnUkN6uEPp+2cplxglQLB0bcHDbdm2Vtt/T6bc4Lika3v
	4qAHAsSZqqbn3o1GhAgcMU5t4yGS0fRGzU0UL3dynJPCgsRvdpaLMcgXrSUWbAauAWWf2vAjS6r
	SihXS/hLMI0185FUwnLNKMMK59+AU52TiCHgeeFGUVw==
X-Gm-Gg: ASbGncu/LycLPIXVNRJhWzxFBkpHye8JFbo0Hqq6N4XfOJkyD4KNjFm2RxVRjpRvUTN
	PObThXhRJEsZeZYanQl6U3yUeJapIJEvt3aZtn64cRxhnWjgy5jokiiDOaeMO3MJe8Lw9Y3hzA5
	a4jGfHQASyRRqvyir3DkKgJqoo0/+9ndxqncHZSrDg8vDr9I/yQUu7gy40OdntPUcFXJ3bAMnDr
	VU7T+9L4Ez2++oVe6ZzILR9bwyz0RMdM7bnT/mxMVSkHeSrt7kOq25oZuYu4qrydTnnEj52pkXF
	Twa8Eh5XJOSvRd3vwVn/eDGUbw==
X-Google-Smtp-Source: AGHT+IF6ruQ/S6Y9qXsuAdE2p8oILBkUN9zkuVftLDEKLAPHgtCiXNYZDfH3/Q69ArCm9nwou3vjgHTHDgoG0YIf9Cg=
X-Received: by 2002:a05:6820:4c15:b0:657:4e49:83b7 with SMTP id
 006d021491bc7-6597264c99fmr2361760eaf.1.1764835202227; Thu, 04 Dec 2025
 00:00:02 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764254975.git.bertrand.marquis@arm.com> <8ae9b12641301ecfafa7ddee3e60544d3fa45c40.1764254975.git.bertrand.marquis@arm.com>
In-Reply-To: <8ae9b12641301ecfafa7ddee3e60544d3fa45c40.1764254975.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Thu, 4 Dec 2025 08:59:50 +0100
X-Gm-Features: AWmQ_bkH_dF57ccRxbXOifrAVEBEur-7g512rf2OyonCHqjveaSE02L7p3BkAEM
Message-ID: <CAHUa44ERxthL+pfXnLVZqfOmqvK747owroouv6uqHfTw+=QCkw@mail.gmail.com>
Subject: Re: [PATCH 10/10] xen/arm: ffa: advertise FF-A v1.2
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Thu, Nov 27, 2025 at 4:53=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Advertise RUN/YIELD/INTERRUPT via FFA_FEATURES now that the runtime
> helpers are in place, and expose the RX/TX MAP capacity field only once
> a guest has negotiated FF-A v1.2.
>
> While there, drop the stale <asm/tee/ffa.h> include.
>
> To comply with the wider v1.2 register ABI, zero registers x8=E2=80=93x17=
 when
> responding to a v1.2 VM. The dispatcher also rejects SMCCC64 calls from
> AArch32 guests.
>
> Finally, bump Xen's FF-A version to 1.2.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa.c         | 25 ++++++++++++++++++++-----
>  xen/arch/arm/tee/ffa_private.h | 28 +++++++++++++++++++---------
>  2 files changed, 39 insertions(+), 14 deletions(-)
>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 8b2f042287fc..c8fe97856d06 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -24,9 +24,6 @@
>   * o FFA_MEM_DONATE_* and FFA_MEM_LEND_* - Used when tranferring ownersh=
ip
>   *   or access of a memory region
>   * o FFA_MSG_SEND2 and FFA_MSG_WAIT - Used for indirect messaging
> - * o FFA_MSG_YIELD
> - * o FFA_INTERRUPT - Used to report preemption
> - * o FFA_RUN
>   *
>   * Limitations in the implemented FF-A interfaces:
>   * o FFA_RXTX_MAP_*:
> @@ -68,7 +65,6 @@
>  #include <asm/event.h>
>  #include <asm/regs.h>
>  #include <asm/smccc.h>
> -#include <asm/tee/ffa.h>
>  #include <asm/tee/tee.h>
>
>  #include "ffa_private.h"
> @@ -262,6 +258,9 @@ static void handle_features(struct cpu_user_regs *reg=
s)
>      case FFA_MSG_SEND_DIRECT_REQ_32:
>      case FFA_MSG_SEND_DIRECT_REQ_64:
>      case FFA_MSG_SEND2:
> +    case FFA_RUN:
> +    case FFA_INTERRUPT:
> +    case FFA_MSG_YIELD:
>          ffa_set_regs_success(regs, 0, 0);
>          break;
>      case FFA_MSG_SEND_DIRECT_REQ2:
> @@ -290,7 +289,16 @@ static void handle_features(struct cpu_user_regs *re=
gs)
>           * differs from FFA_PAGE_SIZE (SZ_4K).
>           */
>          BUILD_BUG_ON(PAGE_SIZE !=3D FFA_PAGE_SIZE);
> -        ffa_set_regs_success(regs, 0, 0);
> +
> +        /*
> +         * From FFA v1.2, we can give the maximum number of pages we sup=
port
> +         * for the RX/TX buffers.
> +         */
> +        if ( ctx->guest_vers < FFA_VERSION_1_2 )
> +            ffa_set_regs_success(regs, 0, 0);
> +        else
> +            ffa_set_regs_success(regs, FFA_MAX_RXTX_PAGE_COUNT << 16, 0)=
;
> +
>          break;
>      case FFA_FEATURE_NOTIF_PEND_INTR:
>          ffa_set_regs_success(regs, GUEST_FFA_NOTIF_PEND_INTR_ID, 0);
> @@ -323,6 +331,13 @@ static bool ffa_handle_call(struct cpu_user_regs *re=
gs)
>      if ( !ctx )
>          return false;
>
> +    if ( !is_64bit_domain(d) && smccc_is_conv_64(fid) )

You use ctx->is_64bit in ffa_set_regs() below, but here
is_64bit_domain(d). Which one do we prefer?

Cheers,
Jens

> +    {
> +        /* 32bit guests should only use 32bit convention calls */
> +        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> +        return true;
> +    }
> +
>      /* A version must be negotiated first */
>      if ( !ctx->guest_vers_negotiated )
>      {
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index a9a03c7c5d71..6afca2ea07ef 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -53,7 +53,7 @@
>   * that particular guest or SP.
>   */
>  #define FFA_MY_VERSION_MAJOR    1U
> -#define FFA_MY_VERSION_MINOR    1U
> +#define FFA_MY_VERSION_MINOR    2U
>  #define FFA_MY_VERSION          MAKE_FFA_VERSION(FFA_MY_VERSION_MAJOR, \
>                                                   FFA_MY_VERSION_MINOR)
>
> @@ -505,14 +505,24 @@ static inline void ffa_set_regs(struct cpu_user_reg=
s *regs, register_t v0,
>                                  register_t v4, register_t v5, register_t=
 v6,
>                                  register_t v7)
>  {
> -        set_user_reg(regs, 0, v0);
> -        set_user_reg(regs, 1, v1);
> -        set_user_reg(regs, 2, v2);
> -        set_user_reg(regs, 3, v3);
> -        set_user_reg(regs, 4, v4);
> -        set_user_reg(regs, 5, v5);
> -        set_user_reg(regs, 6, v6);
> -        set_user_reg(regs, 7, v7);
> +    struct domain *d =3D current->domain;
> +    struct ffa_ctx *ctx =3D d->arch.tee;
> +    int i;
> +
> +    set_user_reg(regs, 0, v0);
> +    set_user_reg(regs, 1, v1);
> +    set_user_reg(regs, 2, v2);
> +    set_user_reg(regs, 3, v3);
> +    set_user_reg(regs, 4, v4);
> +    set_user_reg(regs, 5, v5);
> +    set_user_reg(regs, 6, v6);
> +    set_user_reg(regs, 7, v7);
> +
> +    if ( ctx && ctx->guest_vers >=3D FFA_VERSION_1_2 && ctx->is_64bit )
> +    {
> +        for (i =3D 8; i <=3D 17; i++)
> +            set_user_reg(regs, i, 0);
> +    }
>  }
>
>  static inline void ffa_set_regs_error(struct cpu_user_regs *regs,
> --
> 2.51.2
>


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 08:10:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 08:10:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177350.1501657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR4Pr-0006vE-OS; Thu, 04 Dec 2025 08:10:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177350.1501657; Thu, 04 Dec 2025 08:10:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR4Pr-0006v7-Ls; Thu, 04 Dec 2025 08:10:19 +0000
Received: by outflank-mailman (input) for mailman id 1177350;
 Thu, 04 Dec 2025 08:10:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6HWG=6K=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vR4Pq-0006tQ-5U
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 08:10:18 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a3353d03-d0e8-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 09:10:03 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-42b3c5defb2so356530f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 04 Dec 2025 00:10:03 -0800 (PST)
Received: from [10.188.153.1] (cust-west-par-46-193-35-210.cust.wifirst.net.
 [46.193.35.210]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d352a52sm1788537f8f.38.2025.12.04.00.10.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 04 Dec 2025 00:10:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a3353d03-d0e8-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764835803; x=1765440603; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Kfat4wxdrTqwqAlZzuGd6mN1XCYqVm4+qO5sYRRuw5I=;
        b=aECG9jA0tJvsM55x2mE9oA/WGnDbUX/O+BNGZoPGBrCQVEvMPSMMvFJePqxTL14RGE
         /xhQElOkuEHdAOhZouL8175UpTD3oicC8OynIvzt9wQoOanByquYZtNQwKeeZ96K40aE
         6npKYCToisZ1fwXC8WUBoAQWawNFb2iJkDZk3Bm6hfLwoLkXY/rOU1I7ijmnqLd+1RvF
         5AHH97hJbepPrPShGUMGUqEpB7OUss6fKLXaYJcOvHoGe66J6sLDQIOstcN52akYlRol
         fs3SfTL8jmqcAiQFw8dZhSMPzFVwWNMUxr97rYiSdIwDre9hD8CeJ9uwqeGgrMiwe+5K
         JQNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764835803; x=1765440603;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Kfat4wxdrTqwqAlZzuGd6mN1XCYqVm4+qO5sYRRuw5I=;
        b=eJlke72+QcxsC51AgfoLpWbMVTERu1DxFsxuicATywIxgnyz231PBAQkg/aHo/8JHX
         Mj+dRQ1UY8OX4sgw6s7ckOAVZ/TkPVgfI1ZQvbhMIhk7LHqxH8o4Xk6Y5s7aMWZB6nGo
         yH3KgQfF8uBH9pItOlALWeg49FFSIL9JK+rK/NdARPXn+dF39Ls0wQJsslE3KVvYsxHS
         zNzKvW4xt7QzAK/6jjSRi9CXU4eK7yO7A3SDUcbnRBjspBpJED29D6OU3VzmFq6/GtFR
         LvyJi7Oz197cbfLK/pZQ7AQtb5M8CdMM3/Ks9JFE0W75JzghznP5jE75ozhDlfu+hsRs
         g7TQ==
X-Forwarded-Encrypted: i=1; AJvYcCXGoRlJf56ZDs//DkxVE6i2i1kUQfkyHApv4TVddHR9Ncyd1D8Ui0tp4P1kyZzfoV+m9Y+Szm+VOM8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz3PBb1uHfI8+3umX3p/Q7c3zT2cb5+qcFLSvIA41dTgTMb6z2F
	Wwfgo9ml6BWFfpjez6rVIChhu8w2vCJPB0QQ61EqraQdrFygiH2f3N/K
X-Gm-Gg: ASbGnct8DL8/jc42+hGvp7aV7tCbAWE6Q6XcjeNcVEhrUTnpxEVCwhyrMpj8MYQkezw
	c7Rlj+UPIcSypYzfwOiXUk9tlzPGS8fd6NZaDEgk7lFKr3KYUcgRHYXCjaJvWKAZAeJX/WjBlDE
	IvcT7kdmeoOf0svtA3ajNuVs6n7ONwQDOB1SZjkV5jDjrJe57xbpLw6zCuGWIoG7MatOUhMRTDJ
	2GYDcoM7q0mguGsoc0va/MUMcTzukTMU/a877gn6TepWz1fs8Tvd5459ff+GW3DNKn83/CxH1gz
	NY/kLc5h3/bHQIzvjO3FDBb4rYUxI67CJjcp5+aXjH9k6Lh3QYgqN2uRh+XnMLzidJgyp28yqqO
	COOuktoSWrTetPKg8vKMsyC+ihsoYv63+CzDwKz3yPnchl7BeKHvSRgjVxBHKY82TeEusdDs18c
	NuEgdTZIQ1dscJP6+Vt3017rGqkBqs4AMfgmD/RnGg43l7K8j1Vf5WLPFSASvS8Unrbmn2ioEmz
	e0PSvQrdu3p
X-Google-Smtp-Source: AGHT+IG+OyvU4M/3UQERDLSeBuC3m74mpdJx5BtG3weZS/A1YOeNdP2eT9VfOGbkHnFfmNmqhaCJhw==
X-Received: by 2002:a05:6000:24c1:b0:42b:41d3:daf1 with SMTP id ffacd0b85a97d-42f731a5cc7mr5535776f8f.38.1764835803075;
        Thu, 04 Dec 2025 00:10:03 -0800 (PST)
Message-ID: <123abeae-cd91-492a-b9e3-3b6bfde0503e@gmail.com>
Date: Thu, 4 Dec 2025 09:10:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/dom0less: Increase guest DTB size for high-vCPU
 guests
To: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <20251202193246.3357821-1-oleksandr_tyshchenko@epam.com>
 <98e9f551-cd8f-4c0c-aa79-144466e68df0@epam.com>
 <a1443030-f594-4f25-b12a-37974eae64d2@epam.com>
 <291a2d7c-f9fa-4c36-bfd5-5706ebea3e2e@gmail.com>
 <66282501-ac91-4d00-89e4-8d3765786219@epam.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <66282501-ac91-4d00-89e4-8d3765786219@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hello Oleksandr,

On 12/3/25 3:05 PM, Oleksandr Tyshchenko wrote:
>
> On 03.12.25 15:36, Oleksii Kurochko wrote:
>
>
>> On 12/3/25 12:03 PM, Oleksandr Tyshchenko wrote:
>>> On 02.12.25 23:33, Grygorii Strashko wrote:
>>>> On 02.12.25 21:32, Oleksandr Tyshchenko wrote:
>>>>> Creating a guest with a high vCPU count (e.g., >32) fails because
>>>>> the guest's device tree buffer (DOMU_DTB_SIZE) overflows during
>>>>> creation.
>>>>> The FDT nodes for each vCPU quickly exhaust the 4KiB buffer,
>>>>> causing a guest creation failure.
>>>>>
>>>>> Increase the buffer size to 16KiB to support guests up to
>>>>> the MAX_VIRT_CPUS limit (128).
>>>>>
>>>>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>>>> ---
>>>>> Noticed when testing the boundary conditions for dom0less guest
>>>>> creation on Arm64.
>>>>>
>>>>> Domain configuration:
>>>>> fdt mknod /chosen domU0
>>>>> fdt set /chosen/domU0 compatible "xen,domain"
>>>>> fdt set /chosen/domU0 \#address-cells <0x2>
>>>>> fdt set /chosen/domU0 \#size-cells <0x2>
>>>>> fdt set /chosen/domU0 memory <0x0 0x10000 >
>>>>> fdt set /chosen/domU0 cpus <33>
>>>>> fdt set /chosen/domU0 vpl011
>>>>> fdt mknod /chosen/domU0 module@40400000
>>>>> fdt set /chosen/domU0/module@40400000 compatible  "multiboot,kernel"
>>>>> "multiboot,module"
>>>>> fdt set /chosen/domU0/module@40400000 reg <0x0 0x40400000 0x0 0x16000 >
>>>>> fdt set /chosen/domU0/module@40400000 bootargs "console=ttyAMA0"
>>>>>
>>>>> Failure log:
>>>>> (XEN) Xen dom0less mode detected
>>>>> (XEN) *** LOADING DOMU cpus=33 memory=0x10000KB ***
>>>>> (XEN) Loading d1 kernel from boot module @ 0000000040400000
>>>>> (XEN) Allocating mappings totalling 64MB for d1:
>>>>> (XEN) d1 BANK[0] 0x00000040000000-0x00000044000000 (64MB)
>>>>> (XEN) Device tree generation failed (-22).
>>>>> (XEN)
>>>>> (XEN) ****************************************
>>>>> (XEN) Panic on CPU 0:
>>>>> (XEN) Could not set up domain domU0 (rc = -22)
>>>>> (XEN) ****************************************
>>>>> ---
>>>>> ---
>>>>>     xen/common/device-tree/dom0less-build.c | 8 +++++---
>>>>>     1 file changed, 5 insertions(+), 3 deletions(-)
>>>>>
>>>>> diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/
>>>>> device-tree/dom0less-build.c
>>>>> index 3f5b987ed8..d7d0a47b97 100644
>>>>> --- a/xen/common/device-tree/dom0less-build.c
>>>>> +++ b/xen/common/device-tree/dom0less-build.c
>>>>> @@ -461,10 +461,12 @@ static int __init
>>>>> domain_handle_dtb_boot_module(struct domain *d,
>>>>>     /*
>>>>>      * The max size for DT is 2MB. However, the generated DT is small
>>>>> (not including
>>>>> - * domU passthrough DT nodes whose size we account separately), 4KB
>>>>> are enough
>>>>> - * for now, but we might have to increase it in the future.
>>>>> + * domU passthrough DT nodes whose size we account separately). The
>>>>> size is
>>>>> + * primarily driven by the number of vCPU nodes. The previous 4KiB
>>>>> buffer was
>>>>> + * insufficient for guests with high vCPU counts, so it has been
>>>>> increased
>>>>> + * to support up to the MAX_VIRT_CPUS limit (128).
>>>>>      */
>>>>> -#define DOMU_DTB_SIZE 4096
>>>>> +#define DOMU_DTB_SIZE (4096 * 4)
>>>> May be It wants Kconfig?
>>>> Or some formula which accounts MAX_VIRT_CPUS?
>>> I agree that using a formula that accounts for MAX_VIRT_CPUS is the most
>>> robust approach.
>> One option could be to detect the size at runtime, essentially, try to
>> allocate
>> it, and if an error occurs, increase the fdtsize and try again. I don’t
>> really
>> like this approach, but I wanted to mention it in case someone finds it
>> useful.
>> The benefit of this approach is that if, in the future, something else such
>> as a CPU node contributes to the final FDT size, we won’t need to update
>> the
>> formula again.
> I got your point and understand the goal, but I see the following
> concerns with that:
>
> 1. Xen has to do all the work to build the device tree, fail, throw all
> that work away, and then start over again. This wastes time during the
> system's boot-up process.
>
> 2. Boot-time code should be as deterministic and predictable as
> possible. A static, worst-case calculation is highly predictable,
> whereas a retry loop is not.
>
> 3. It adds logical complexity (error handling, looping, size increments)
> to what should be a straightforward setup step.

Yes, I totally agree with all your concerns, so lets just go with a formula
approach.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Dec 04 08:12:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 08:12:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177359.1501668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR4Rb-0007Xn-3J; Thu, 04 Dec 2025 08:12:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177359.1501668; Thu, 04 Dec 2025 08:12:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR4Rb-0007Xg-0E; Thu, 04 Dec 2025 08:12:07 +0000
Received: by outflank-mailman (input) for mailman id 1177359;
 Thu, 04 Dec 2025 08:12:06 +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
 <SRS0=6HWG=6K=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vR4RZ-0007XV-K5
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 08:12:06 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e963eb77-d0e8-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 09:12:01 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-477770019e4so6144585e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 04 Dec 2025 00:12:01 -0800 (PST)
Received: from [10.188.153.1] (cust-west-par-46-193-35-210.cust.wifirst.net.
 [46.193.35.210]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47930c7473bsm28537695e9.10.2025.12.04.00.11.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 04 Dec 2025 00:11:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e963eb77-d0e8-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764835921; x=1765440721; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=8dxAMXtb6wFVNyIqEZfeiFWJb4L42zmthpMwlxyUiqI=;
        b=iLP7bnb0tswph3KZDAUY6N6yhKdCe52laeiKcdS16VbvRpd1dXxgbJ/rEctdQxqqcM
         A+Vw0nTgz/ej5BMZY7KoeEPl+B6Sy3kOEKlpUVxeNfAi7YS7OSLOsAO/K0+TXyJURg3y
         N54ukBrH7FC+HochR6peSCo4KNdPrHOpUExqTSBkVPH0A7mZo83rIlxs79dWzd+62ZEZ
         PHMZPAXmHsB9Xrm052l1vXwrggDJdwXUXHQWoUFSON7Ovo+nMcPQE2lOzw0fsluSZI0x
         MD9ruLz0IpAQqHqeXSRHJvbi3vja/z07r8dyBoRucOqxhLUtjAyqhux+nmKgGbfrXRFX
         DaDQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764835921; x=1765440721;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=8dxAMXtb6wFVNyIqEZfeiFWJb4L42zmthpMwlxyUiqI=;
        b=ODZfxogQVr+WZ13YuKXpYWNOKxFNrpV8L2Or6XdYurLcDOVxoKLz0Dh83d3hq8/YhL
         RtCwAYrKZO3i2TcasMfhYegYeRxTndrPzYtE+RsvH2B+wiQxAdyFRw2mnemQ7uq8CUzg
         r2xWiCO4UH3SSS5eND0RM8iE4vUOst1PqzmbYVKTAOSEMrEP37lDrVDN0xkscdrjvslj
         w8o+JcHndwMrVSRS/WBusCyxPfyDm8rUe5az/bl4ebkZODDISAhoztZrmSb0Aktj7Mpc
         QqV0xLD84Clq0AjD2nj5z3aC3ENA/+xYq6JW8f5YIvfXrE1ql9czLkv6uNu3JcmZ37Vg
         MzlA==
X-Forwarded-Encrypted: i=1; AJvYcCUeF/MDyre/SnutOSeTIzowsmiwox+Y+GgWTg0/V3Nh6jzx1n3EyJzE/CPu8pWbaR7bMel2ftJSqe8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxQ1jSNRdL6vSfa/EV7b+59wbKWWRkMoa42NW96OOf/eJtjJ077
	VCo2etX1jOaNS0nSwb3dyYGqfoJIgdpvcNOcw8CzHKSCYKS2+Zn3EtIv
X-Gm-Gg: ASbGncta3vnx/tARDhVN2jOi3tZsdCQbkIVDpNCD0Vk1KGSvat9BBXsB0AVaN9Y67Mg
	unGFBncKu1MHZJDnHGkNOp3XLf6b3/ve292ezjve1Iqy1z8xo8K/Hbey980pCuQO8ZbHoAbAlNI
	sZ0rDWNssjUDJux1afPFRZZ5UIQuTf1Px8QNZVzb5YL7OMACKBhHZO4L+W38wRZ+ziXWeYyPTgh
	ivzvClZZvvZgLu8bNs6kgIf2z7CkAbYYLU5/04w/pM2UdcwjrOfyjHwY1ycVWoKyYsByCUwMA7J
	LxD1rFFG6c0h8UAa0XEqoD/mjY0l8aDvp7Ix42cPrpQzndLXp8tzymh48SRQ8tqR+MVJTVr/7Cv
	arKEN0PhjS1CkCVf8HbPLR9+B+ZjNicGIzqQhRamUOauqbdCdntyTn+aBtxfAyTPuYp02G5X/bF
	KINjVqDIikV1zuAcH7+zUVMUVLInnn+JBu5dTU7R2+GxKgBsgMhKdj63Hn7+f5ArlyiM7A/5vCG
	w==
X-Google-Smtp-Source: AGHT+IG6slvVEjJQMNC0hCtLQj6vf4kJtAUfQIHkM5oVtuEoU9tIGv402m9wpceYSwIH8nhXDDHEjw==
X-Received: by 2002:a05:600c:b90:b0:477:54cd:2030 with SMTP id 5b1f17b1804b1-4792f380954mr15405465e9.21.1764835920341;
        Thu, 04 Dec 2025 00:12:00 -0800 (PST)
Message-ID: <d23ac894-a4bd-4163-a1a8-7174caa22ff2@gmail.com>
Date: Thu, 4 Dec 2025 09:11:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/treewide: Use __ASSEMBLER__ instead of __ASSEMBLY__
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Timothy Pearson <tpearson@raptorengineering.com>
References: <20251203133258.1624223-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20251203133258.1624223-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/3/25 2:32 PM, Andrew Cooper wrote:
> __ASSEMBLER__ is how GCC and Clang spell this, removing the need to set it up
> manually in AFLAGS.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Jan Beulich <jbeulich@suse.com>
> CC: Julien Grall <julien@xen.org>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
> CC: Bertrand Marquis <bertrand.marquis@arm.com>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> CC: Timothy Pearson <tpearson@raptorengineering.com>
>
> Generated with sed.  Linux has done the same change too.
>
> I debated splitting this patch, but it's simple enough IMO.
> ---

LGTM:
  Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii

>   xen/Makefile                               |  2 --
>   xen/arch/arm/arm32/lib/assembler.h         |  2 +-
>   xen/arch/arm/arm64/lib/assembler.h         |  2 +-
>   xen/arch/arm/include/asm/alternative.h     |  4 ++--
>   xen/arch/arm/include/asm/arm32/mpu.h       |  4 ++--
>   xen/arch/arm/include/asm/arm32/page.h      |  4 ++--
>   xen/arch/arm/include/asm/arm32/processor.h |  2 +-
>   xen/arch/arm/include/asm/arm32/sysregs.h   |  6 +++---
>   xen/arch/arm/include/asm/arm64/efibind.h   |  2 +-
>   xen/arch/arm/include/asm/arm64/mpu.h       |  4 ++--
>   xen/arch/arm/include/asm/arm64/page.h      |  4 ++--
>   xen/arch/arm/include/asm/arm64/processor.h |  4 ++--
>   xen/arch/arm/include/asm/arm64/sysregs.h   |  6 +++---
>   xen/arch/arm/include/asm/config.h          |  4 ++--
>   xen/arch/arm/include/asm/cpufeature.h      |  4 ++--
>   xen/arch/arm/include/asm/current.h         |  2 +-
>   xen/arch/arm/include/asm/fixmap.h          |  4 ++--
>   xen/arch/arm/include/asm/gic.h             |  4 ++--
>   xen/arch/arm/include/asm/insn.h            |  4 ++--
>   xen/arch/arm/include/asm/lpae.h            |  4 ++--
>   xen/arch/arm/include/asm/macros.h          |  2 +-
>   xen/arch/arm/include/asm/mpu.h             |  4 ++--
>   xen/arch/arm/include/asm/page.h            |  4 ++--
>   xen/arch/arm/include/asm/pl011-uart.h      |  4 ++--
>   xen/arch/arm/include/asm/processor.h       |  8 ++++----
>   xen/arch/arm/include/asm/regs.h            |  2 +-
>   xen/arch/arm/include/asm/smccc.h           |  4 ++--
>   xen/arch/arm/include/asm/smp.h             |  2 +-
>   xen/arch/arm/include/asm/sysregs.h         |  4 ++--
>   xen/arch/ppc/include/asm/current.h         |  4 ++--
>   xen/arch/ppc/include/asm/opal-api.h        |  4 ++--
>   xen/arch/ppc/include/asm/processor.h       |  4 ++--
>   xen/arch/riscv/include/asm/asm.h           |  6 +++---
>   xen/arch/riscv/include/asm/bug.h           |  4 ++--
>   xen/arch/riscv/include/asm/config.h        |  4 ++--
>   xen/arch/riscv/include/asm/cpufeature.h    |  4 ++--
>   xen/arch/riscv/include/asm/csr.h           |  4 ++--
>   xen/arch/riscv/include/asm/current.h       |  4 ++--
>   xen/arch/riscv/include/asm/fixmap.h        |  4 ++--
>   xen/arch/riscv/include/asm/page.h          |  4 ++--
>   xen/arch/riscv/include/asm/processor.h     |  4 ++--
>   xen/arch/riscv/include/asm/regs.h          |  4 ++--
>   xen/arch/riscv/include/asm/system.h        |  4 ++--
>   xen/arch/riscv/include/asm/traps.h         |  4 ++--
>   xen/arch/x86/boot/video.h                  |  4 ++--
>   xen/arch/x86/include/asm/alternative-asm.h |  4 ++--
>   xen/arch/x86/include/asm/alternative.h     |  4 ++--
>   xen/arch/x86/include/asm/asm_defns.h       | 12 ++++++------
>   xen/arch/x86/include/asm/bug.h             |  6 +++---
>   xen/arch/x86/include/asm/cache.h           |  2 +-
>   xen/arch/x86/include/asm/config.h          |  6 +++---
>   xen/arch/x86/include/asm/cpufeature.h      |  6 +++---
>   xen/arch/x86/include/asm/cpufeatureset.h   |  6 +++---
>   xen/arch/x86/include/asm/desc.h            |  8 ++++----
>   xen/arch/x86/include/asm/edd.h             |  4 ++--
>   xen/arch/x86/include/asm/fixmap.h          |  4 ++--
>   xen/arch/x86/include/asm/ldt.h             |  4 ++--
>   xen/arch/x86/include/asm/machine_kexec.h   |  2 +-
>   xen/arch/x86/include/asm/nops.h            |  2 +-
>   xen/arch/x86/include/asm/page.h            | 20 ++++++++++----------
>   xen/arch/x86/include/asm/processor.h       |  6 +++---
>   xen/arch/x86/include/asm/smp.h             |  6 +++---
>   xen/arch/x86/include/asm/spec_ctrl.h       |  4 ++--
>   xen/arch/x86/include/asm/spec_ctrl_asm.h   |  4 ++--
>   xen/arch/x86/include/asm/trampoline.h      |  4 ++--
>   xen/arch/x86/include/asm/x86_64/page.h     |  6 +++---
>   xen/common/efi/boot.c                      |  6 +++---
>   xen/include/efi/pe.h                       |  4 ++--
>   xen/include/public/arch-arm.h              |  4 ++--
>   xen/include/public/arch-ppc.h              |  4 ++--
>   xen/include/public/arch-riscv.h            |  2 +-
>   xen/include/public/arch-x86/xen-mca.h      |  4 ++--
>   xen/include/public/arch-x86/xen-x86_32.h   |  4 ++--
>   xen/include/public/arch-x86/xen-x86_64.h   |  4 ++--
>   xen/include/public/arch-x86/xen.h          |  8 ++++----
>   xen/include/public/errno.h                 |  6 +++---
>   xen/include/public/tmem.h                  |  2 +-
>   xen/include/public/xen.h                   | 10 +++++-----
>   xen/include/xen/acpi.h                     |  4 ++--
>   xen/include/xen/bitmap.h                   |  4 ++--
>   xen/include/xen/bug.h                      |  4 ++--
>   xen/include/xen/config.h                   |  2 +-
>   xen/include/xen/const.h                    |  2 +-
>   xen/include/xen/err.h                      |  4 ++--
>   xen/include/xen/errno.h                    |  6 +++---
>   xen/include/xen/init.h                     |  4 ++--
>   xen/include/xen/kimage.h                   |  4 ++--
>   xen/include/xen/lib.h                      |  4 ++--
>   xen/include/xen/libfdt/fdt.h               |  2 +-
>   xen/include/xen/linkage.h                  |  4 ++--
>   xen/include/xen/macros.h                   |  4 ++--
>   xen/include/xen/multiboot.h                |  4 ++--
>   xen/include/xen/multiboot2.h               |  4 ++--
>   xen/include/xen/percpu.h                   |  4 ++--
>   xen/include/xen/pmap.h                     |  4 ++--
>   xen/include/xen/softirq.h                  |  4 ++--
>   96 files changed, 208 insertions(+), 210 deletions(-)
>
> diff --git a/xen/Makefile b/xen/Makefile
> index fc9244420e7d..e6cf2874251c 100644
> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -412,8 +412,6 @@ ifneq ($(CONFIG_CC_IS_CLANG),y)
>   CFLAGS += -Wa,--strip-local-absolute
>   endif
>   
> -AFLAGS += -D__ASSEMBLY__
> -
>   $(call cc-option-add,AFLAGS,CC,-Wa$$(comma)--noexecstack)
>   
>   LDFLAGS-$(call ld-option,--warn-rwx-segments) += --no-warn-rwx-segments
> diff --git a/xen/arch/arm/arm32/lib/assembler.h b/xen/arch/arm/arm32/lib/assembler.h
> index 6de2638a36d5..75d97ab0cc5f 100644
> --- a/xen/arch/arm/arm32/lib/assembler.h
> +++ b/xen/arch/arm/arm32/lib/assembler.h
> @@ -17,7 +17,7 @@
>   #ifndef __ASM_ASSEMBLER_H__
>   #define __ASM_ASSEMBLER_H__
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   #error "Only include this from assembly code"
>   #endif
>   
> diff --git a/xen/arch/arm/arm64/lib/assembler.h b/xen/arch/arm/arm64/lib/assembler.h
> index 3f9c0dcf5d32..0fac7d1c6e30 100644
> --- a/xen/arch/arm/arm64/lib/assembler.h
> +++ b/xen/arch/arm/arm64/lib/assembler.h
> @@ -1,7 +1,7 @@
>   #ifndef __ASM_ASSEMBLER_H__
>   #define __ASM_ASSEMBLER_H__
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   #error "Only include this from assembly code"
>   #endif
>   
> diff --git a/xen/arch/arm/include/asm/alternative.h b/xen/arch/arm/include/asm/alternative.h
> index 1563f03a0f5a..c751e11fc56b 100644
> --- a/xen/arch/arm/include/asm/alternative.h
> +++ b/xen/arch/arm/include/asm/alternative.h
> @@ -6,7 +6,7 @@
>   
>   #define ARM_CB_PATCH ARM_NCAPS
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/types.h>
>   #include <xen/stringify.h>
> @@ -206,7 +206,7 @@ alternative_endif
>   #define _ALTERNATIVE_CFG(insn1, insn2, cap, cfg, ...)	\
>   	alternative_insn insn1, insn2, cap, IS_ENABLED(cfg)
>   
> -#endif  /*  __ASSEMBLY__  */
> +#endif  /*  __ASSEMBLER__  */
>   
>   /*
>    * Usage: asm_inline (ALTERNATIVE(oldinstr, newinstr, feature));
> diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
> index 137022d92264..2cf0f8cbacae 100644
> --- a/xen/arch/arm/include/asm/arm32/mpu.h
> +++ b/xen/arch/arm/include/asm/arm32/mpu.h
> @@ -3,7 +3,7 @@
>   #ifndef ARM_ARM32_MPU_H
>   #define ARM_ARM32_MPU_H
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   /*
>    * Unlike arm64, there are no reserved 0 bits beyond base and limit bitfield in
> @@ -43,7 +43,7 @@ typedef struct {
>       uint8_t pad[7];     /* Pad structure to 16 Bytes */
>   } pr_t;
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* ARM_ARM32_MPU_H */
>   
> diff --git a/xen/arch/arm/include/asm/arm32/page.h b/xen/arch/arm/include/asm/arm32/page.h
> index 6d1ff0636ce3..d3e86cb61e7c 100644
> --- a/xen/arch/arm/include/asm/arm32/page.h
> +++ b/xen/arch/arm/include/asm/arm32/page.h
> @@ -1,7 +1,7 @@
>   #ifndef __ARM_ARM32_PAGE_H__
>   #define __ARM_ARM32_PAGE_H__
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   /* Inline ASM to invalidate dcache on register R (may be an inline asm operand) */
>   #define __invalidate_dcache_one(R) STORE_CP32(R, DCIMVAC)
> @@ -87,7 +87,7 @@ static inline uint64_t gva_to_ipa_par(vaddr_t va, unsigned int flags)
>   
>   #define clear_page(page) memset((void *)(page), 0, PAGE_SIZE)
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* __ARM_ARM32_PAGE_H__ */
>   
> diff --git a/xen/arch/arm/include/asm/arm32/processor.h b/xen/arch/arm/include/asm/arm32/processor.h
> index 4e679f3273ab..254bc4867c64 100644
> --- a/xen/arch/arm/include/asm/arm32/processor.h
> +++ b/xen/arch/arm/include/asm/arm32/processor.h
> @@ -3,7 +3,7 @@
>   
>   #define ACTLR_CAXX_SMP      (1<<6)
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   /* On stack VCPU state */
>   struct cpu_user_regs
>   {
> diff --git a/xen/arch/arm/include/asm/arm32/sysregs.h b/xen/arch/arm/include/asm/arm32/sysregs.h
> index ef1a870fd61e..33ac0c4fdb9c 100644
> --- a/xen/arch/arm/include/asm/arm32/sysregs.h
> +++ b/xen/arch/arm/include/asm/arm32/sysregs.h
> @@ -25,11 +25,11 @@
>   #define REGION_DATA_PRBAR       0x19    /* SH=11 AP=00 XN=1 */
>   #define REGION_DEVICE_PRBAR     0x11    /* SH=10 AP=00 XN=1 */
>   
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   
>   #define WRITE_SYSREG_ASM(v, name) mcr CP32(v, name)
>   
> -#else /* __ASSEMBLY__ */
> +#else /* __ASSEMBLER__ */
>   
>   /* C wrappers */
>   #define READ_CP32(name...) ({                                   \
> @@ -93,7 +93,7 @@
>   /* MVFR2 is not defined on ARMv7 */
>   #define MVFR2_MAYBE_UNDEFINED
>   
> -#endif /* !__ASSEMBLY__ */
> +#endif /* !__ASSEMBLER__ */
>   
>   #endif /* __ASM_ARM_ARM32_SYSREGS_H */
>   /*
> diff --git a/xen/arch/arm/include/asm/arm64/efibind.h b/xen/arch/arm/include/asm/arm64/efibind.h
> index a1323d452e2e..7ab00e4f55a4 100644
> --- a/xen/arch/arm/include/asm/arm64/efibind.h
> +++ b/xen/arch/arm/include/asm/arm64/efibind.h
> @@ -31,7 +31,7 @@ Revision History
>   
>   #define EFI_STUB_ERROR      MAX_ADDRESS
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   //
>   // Basic int types of various widths
>   //
> diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
> index 17f62ccaf6ca..4f694190a8a3 100644
> --- a/xen/arch/arm/include/asm/arm64/mpu.h
> +++ b/xen/arch/arm/include/asm/arm64/mpu.h
> @@ -3,7 +3,7 @@
>   #ifndef ARM_ARM64_MPU_H
>   #define ARM_ARM64_MPU_H
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #define MPU_REGION_RES0        (0xFFFFULL << 48)
>   
> @@ -42,7 +42,7 @@ typedef struct {
>       uint8_t pad[15];    /* Pad structure to 32 Bytes */
>   } pr_t;
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* ARM_ARM64_MPU_H */
>   
> diff --git a/xen/arch/arm/include/asm/arm64/page.h b/xen/arch/arm/include/asm/arm64/page.h
> index e944985ee09d..f3ba30730b4a 100644
> --- a/xen/arch/arm/include/asm/arm64/page.h
> +++ b/xen/arch/arm/include/asm/arm64/page.h
> @@ -1,7 +1,7 @@
>   #ifndef __ARM_ARM64_PAGE_H__
>   #define __ARM_ARM64_PAGE_H__
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <asm/alternative.h>
>   
> @@ -77,7 +77,7 @@ static inline uint64_t gva_to_ipa_par(vaddr_t va, unsigned int flags)
>   
>   extern void clear_page(void *to);
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* __ARM_ARM64_PAGE_H__ */
>   
> diff --git a/xen/arch/arm/include/asm/arm64/processor.h b/xen/arch/arm/include/asm/arm64/processor.h
> index c749f80ad91b..0513015bbb83 100644
> --- a/xen/arch/arm/include/asm/arm64/processor.h
> +++ b/xen/arch/arm/include/asm/arm64/processor.h
> @@ -1,7 +1,7 @@
>   #ifndef __ASM_ARM_ARM64_PROCESSOR_H
>   #define __ASM_ARM_ARM64_PROCESSOR_H
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   /* Anonymous union includes both 32- and 64-bit names (e.g., r0/x0). */
>   
> @@ -86,7 +86,7 @@ struct cpu_user_regs
>   
>   #undef __DECL_REG
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* __ASM_ARM_ARM64_PROCESSOR_H */
>   /*
> diff --git a/xen/arch/arm/include/asm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
> index 7440d495e4fb..7dfd20414d7d 100644
> --- a/xen/arch/arm/include/asm/arm64/sysregs.h
> +++ b/xen/arch/arm/include/asm/arm64/sysregs.h
> @@ -467,11 +467,11 @@
>   #define REGION_DATA_PRBAR       0x32    /* SH=11 AP=00 XN=10 */
>   #define REGION_DEVICE_PRBAR     0x22    /* SH=10 AP=00 XN=10 */
>   
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   
>   #define WRITE_SYSREG_ASM(v, name) "msr " __stringify(name,) #v
>   
> -#else /* __ASSEMBLY__ */
> +#else /* __ASSEMBLER__ */
>   
>   /* Access to system registers */
>   
> @@ -492,7 +492,7 @@
>   #define WRITE_SYSREG_LR(v, index)  WRITE_SYSREG(v, ICH_LR_REG(index))
>   #define READ_SYSREG_LR(index)      READ_SYSREG(ICH_LR_REG(index))
>   
> -#endif /* !__ASSEMBLY__ */
> +#endif /* !__ASSEMBLER__ */
>   
>   #endif /* _ASM_ARM_ARM64_SYSREGS_H */
>   
> diff --git a/xen/arch/arm/include/asm/config.h b/xen/arch/arm/include/asm/config.h
> index f18825bc2d50..a077ec49b77e 100644
> --- a/xen/arch/arm/include/asm/config.h
> +++ b/xen/arch/arm/include/asm/config.h
> @@ -44,7 +44,7 @@
>   #define CONFIG_AEABI
>   
>   /* Linkage for ARM */
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   #define GLOBAL(name)                            \
>     .globl name;                                  \
>     name:
> @@ -69,7 +69,7 @@
>   #define watchdog_disable() ((void)0)
>   #define watchdog_enable()  ((void)0)
>   
> -#if defined(__ASSEMBLY__) && !defined(LINKER_SCRIPT)
> +#if defined(__ASSEMBLER__) && !defined(LINKER_SCRIPT)
>   #include <asm/asm_defns.h>
>   #include <asm/macros.h>
>   #endif
> diff --git a/xen/arch/arm/include/asm/cpufeature.h b/xen/arch/arm/include/asm/cpufeature.h
> index b6df18801166..13353c8e1ad1 100644
> --- a/xen/arch/arm/include/asm/cpufeature.h
> +++ b/xen/arch/arm/include/asm/cpufeature.h
> @@ -79,7 +79,7 @@
>   
>   #define ARM_NCAPS           18
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/types.h>
>   #include <xen/lib.h>
> @@ -461,7 +461,7 @@ extern struct cpuinfo_arm cpu_data[];
>   
>   extern struct cpuinfo_arm domain_cpuinfo;
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif
>   /*
> diff --git a/xen/arch/arm/include/asm/current.h b/xen/arch/arm/include/asm/current.h
> index 0be7ad6ef956..8254363fda67 100644
> --- a/xen/arch/arm/include/asm/current.h
> +++ b/xen/arch/arm/include/asm/current.h
> @@ -11,7 +11,7 @@
>   #define CPUINFO_WORKAROUND_2_FLAG_SHIFT   0
>   #define CPUINFO_WORKAROUND_2_FLAG (_AC(1, U) << CPUINFO_WORKAROUND_2_FLAG_SHIFT)
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   struct vcpu;
>   
> diff --git a/xen/arch/arm/include/asm/fixmap.h b/xen/arch/arm/include/asm/fixmap.h
> index 0cb5d54d1c74..84d55e4c2885 100644
> --- a/xen/arch/arm/include/asm/fixmap.h
> +++ b/xen/arch/arm/include/asm/fixmap.h
> @@ -20,7 +20,7 @@
>   #define FIXADDR_START FIXMAP_ADDR(0)
>   #define FIXADDR_TOP FIXMAP_ADDR(FIX_LAST + 1)
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   /*
>    * Direct access to xen_fixmap[] should only happen when {set,
> @@ -43,6 +43,6 @@ static inline unsigned int virt_to_fix(vaddr_t vaddr)
>       return ((vaddr - FIXADDR_START) >> PAGE_SHIFT);
>   }
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* __ASM_FIXMAP_H */
> diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.h
> index 3947c8634d22..8e713aa4773a 100644
> --- a/xen/arch/arm/include/asm/gic.h
> +++ b/xen/arch/arm/include/asm/gic.h
> @@ -158,7 +158,7 @@
>   #define GICH_LR_PENDING         1
>   #define GICH_LR_ACTIVE          2
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   #include <xen/device_tree.h>
>   #include <xen/irq.h>
>   
> @@ -479,7 +479,7 @@ unsigned long gic_get_hwdom_madt_size(const struct domain *d);
>   int gic_map_hwdom_extra_mappings(struct domain *d);
>   int gic_iomem_deny_access(struct domain *d);
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   #endif
>   
>   /*
> diff --git a/xen/arch/arm/include/asm/insn.h b/xen/arch/arm/include/asm/insn.h
> index 27271e95f9e2..db32babd23f6 100644
> --- a/xen/arch/arm/include/asm/insn.h
> +++ b/xen/arch/arm/include/asm/insn.h
> @@ -1,7 +1,7 @@
>   #ifndef __ARCH_ARM_INSN
>   #define __ARCH_ARM_INSN
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/types.h>
>   
> @@ -13,7 +13,7 @@
>   # error "unknown ARM variant"
>   #endif
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   /* On ARM32,64 instructions are always 4 bytes long. */
>   #define ARCH_PATCH_INSN_SIZE 4
> diff --git a/xen/arch/arm/include/asm/lpae.h b/xen/arch/arm/include/asm/lpae.h
> index 4a1679cb3334..8e062c9e37f5 100644
> --- a/xen/arch/arm/include/asm/lpae.h
> +++ b/xen/arch/arm/include/asm/lpae.h
> @@ -1,7 +1,7 @@
>   #ifndef __ARM_LPAE_H__
>   #define __ARM_LPAE_H__
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/page-defs.h>
>   #include <xen/mm-frame.h>
> @@ -176,7 +176,7 @@ static inline bool lpae_is_superpage(lpae_t pte, unsigned int level)
>    */
>   lpae_t mfn_to_xen_entry(mfn_t mfn, unsigned int attr);
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   /*
>    * AArch64 supports pages with different sizes (4K, 16K, and 64K).
> diff --git a/xen/arch/arm/include/asm/macros.h b/xen/arch/arm/include/asm/macros.h
> index dc791245df76..9e8793107e1b 100644
> --- a/xen/arch/arm/include/asm/macros.h
> +++ b/xen/arch/arm/include/asm/macros.h
> @@ -1,7 +1,7 @@
>   #ifndef __ASM_MACROS_H
>   #define __ASM_MACROS_H
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   # error "This file should only be included in assembly file"
>   #endif
>   
> diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
> index 5053edaf63d6..72fa5b00b861 100644
> --- a/xen/arch/arm/include/asm/mpu.h
> +++ b/xen/arch/arm/include/asm/mpu.h
> @@ -25,7 +25,7 @@
>   
>   #define PRENR_MASK  GENMASK(31, 0)
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   /*
>    * Set base address of MPU protection region.
> @@ -87,7 +87,7 @@ static inline bool region_is_valid(const pr_t *pr)
>       return pr->prlar.reg.en;
>   }
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* __ARM_MPU_H__ */
>   
> diff --git a/xen/arch/arm/include/asm/page.h b/xen/arch/arm/include/asm/page.h
> index 03bdf52ce023..90100a96dfda 100644
> --- a/xen/arch/arm/include/asm/page.h
> +++ b/xen/arch/arm/include/asm/page.h
> @@ -121,7 +121,7 @@
>   #define GV2M_WRITE (1u<<0)
>   #define GV2M_EXEC  (1u<<1)
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/errno.h>
>   #include <xen/types.h>
> @@ -320,7 +320,7 @@ static inline int gva_to_ipa(vaddr_t va, paddr_t *paddr, unsigned int flags)
>   /* Bits in the PAR returned by va_to_par */
>   #define PAR_FAULT 0x1
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* __ARM_PAGE_H__ */
>   
> diff --git a/xen/arch/arm/include/asm/pl011-uart.h b/xen/arch/arm/include/asm/pl011-uart.h
> index 27c9bfa444cb..a991b274cd4b 100644
> --- a/xen/arch/arm/include/asm/pl011-uart.h
> +++ b/xen/arch/arm/include/asm/pl011-uart.h
> @@ -21,7 +21,7 @@
>   #ifndef __ASM_ARM_PL011_H
>   #define __ASM_ARM_PL011_H
>   
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   
>   /*
>    * PL011 registers are 8/16-bit wide. However, there are implementations that
> @@ -38,7 +38,7 @@
>   #define PL011_LDRH ldrh
>   #endif
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   /* PL011 register addresses */
>   #define DR     (0x00)
> diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
> index 92c8bc1a3125..ed5674636816 100644
> --- a/xen/arch/arm/include/asm/processor.h
> +++ b/xen/arch/arm/include/asm/processor.h
> @@ -1,7 +1,7 @@
>   #ifndef __ASM_ARM_PROCESSOR_H
>   #define __ASM_ARM_PROCESSOR_H
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   #include <xen/types.h>
>   #endif
>   #include <public/arch-arm.h>
> @@ -463,7 +463,7 @@
>   #define MM64_VMID_16_BITS_SUPPORT   0x2
>   #endif
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   extern register_t __cpu_logical_map[];
>   #define cpu_logical_map(cpu) __cpu_logical_map[cpu]
> @@ -570,7 +570,7 @@ extern register_t __cpu_logical_map[];
>   # error "unknown ARM variant"
>   #endif
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   void noreturn panic_PAR(uint64_t par);
>   
>   /* Debugging functions are declared with external linkage to aid development. */
> @@ -631,7 +631,7 @@ register_t get_default_cptr_flags(void);
>           WRITE_SYSREG((v)->arch.hcr_el2, HCR_EL2);   \
>       } while (0)
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   #endif /* __ASM_ARM_PROCESSOR_H */
>   /*
>    * Local variables:
> diff --git a/xen/arch/arm/include/asm/regs.h b/xen/arch/arm/include/asm/regs.h
> index 0d9f239a7782..490db9056d12 100644
> --- a/xen/arch/arm/include/asm/regs.h
> +++ b/xen/arch/arm/include/asm/regs.h
> @@ -3,7 +3,7 @@
>   
>   #define PSR_MODE_MASK 0x1f
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/bug.h>
>   #include <xen/types.h>
> diff --git a/xen/arch/arm/include/asm/smccc.h b/xen/arch/arm/include/asm/smccc.h
> index a289c48b7ffd..441b3ab65dee 100644
> --- a/xen/arch/arm/include/asm/smccc.h
> +++ b/xen/arch/arm/include/asm/smccc.h
> @@ -54,7 +54,7 @@
>   
>   #define ARM_SMCCC_FUNC_MASK             _AC(0xFFFF,U)
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   extern uint32_t smccc_ver;
>   
> @@ -307,7 +307,7 @@ void arm_smccc_1_2_smc(const struct arm_smccc_1_2_regs *args,
>                          struct arm_smccc_1_2_regs *res);
>   #endif /* CONFIG_ARM_64 */
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   /*
>    * Construct function identifier from call type (fast or standard),
> diff --git a/xen/arch/arm/include/asm/smp.h b/xen/arch/arm/include/asm/smp.h
> index f5c829e2296e..16ae0844e7b9 100644
> --- a/xen/arch/arm/include/asm/smp.h
> +++ b/xen/arch/arm/include/asm/smp.h
> @@ -1,7 +1,7 @@
>   #ifndef __ASM_SMP_H
>   #define __ASM_SMP_H
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   #include <xen/percpu.h>
>   #include <xen/cpumask.h>
>   #include <asm/current.h>
> diff --git a/xen/arch/arm/include/asm/sysregs.h b/xen/arch/arm/include/asm/sysregs.h
> index 5c2d362be3d8..f6af987ef5e9 100644
> --- a/xen/arch/arm/include/asm/sysregs.h
> +++ b/xen/arch/arm/include/asm/sysregs.h
> @@ -9,7 +9,7 @@
>   # error "unknown ARM variant"
>   #endif
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <asm/alternative.h>
>   
> @@ -33,7 +33,7 @@ static inline register_t read_sysreg_par(void)
>       return par_el1;
>   }
>   
> -#endif /*  !__ASSEMBLY__  */
> +#endif /*  !__ASSEMBLER__  */
>   
>   #endif /* __ASM_ARM_SYSREGS_H */
>   /*
> diff --git a/xen/arch/ppc/include/asm/current.h b/xen/arch/ppc/include/asm/current.h
> index e329a548e61e..cd7af3e0c56a 100644
> --- a/xen/arch/ppc/include/asm/current.h
> +++ b/xen/arch/ppc/include/asm/current.h
> @@ -6,7 +6,7 @@
>   
>   #include <asm/processor.h>
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   struct vcpu;
>   
> @@ -44,6 +44,6 @@ static inline struct cpu_info *get_cpu_info(void)
>   
>   #define get_per_cpu_offset()    smp_processor_id() /* TODO: Fix this */
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* __ASM_PPC_CURRENT_H__ */
> diff --git a/xen/arch/ppc/include/asm/opal-api.h b/xen/arch/ppc/include/asm/opal-api.h
> index 8790246f48ce..a83184a5c2e6 100644
> --- a/xen/arch/ppc/include/asm/opal-api.h
> +++ b/xen/arch/ppc/include/asm/opal-api.h
> @@ -246,7 +246,7 @@
>   #define OPAL_CONFIG_IDLE_UNDO		0
>   #define OPAL_CONFIG_IDLE_APPLY		1
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/types.h>
>   
> @@ -1185,6 +1185,6 @@ struct opal_mpipl_fadump {
>   	struct	opal_mpipl_region region[];
>   } __packed;
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* __OPAL_API_H */
> diff --git a/xen/arch/ppc/include/asm/processor.h b/xen/arch/ppc/include/asm/processor.h
> index 50161cc32d50..242346cab957 100644
> --- a/xen/arch/ppc/include/asm/processor.h
> +++ b/xen/arch/ppc/include/asm/processor.h
> @@ -134,7 +134,7 @@
>   /* Base address of interrupt vector table when LPCR[AIL]=3 */
>   #define AIL_VECTOR_BASE _AC(0xc000000000004000, UL)
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/types.h>
>   
> @@ -221,6 +221,6 @@ static inline void noreturn die(void)
>   
>   #define dump_execution_state() run_in_exception_handler(show_execution_state)
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* _ASM_PPC_PROCESSOR_H */
> diff --git a/xen/arch/riscv/include/asm/asm.h b/xen/arch/riscv/include/asm/asm.h
> index 8b0403e2e471..e147b6f05388 100644
> --- a/xen/arch/riscv/include/asm/asm.h
> +++ b/xen/arch/riscv/include/asm/asm.h
> @@ -6,7 +6,7 @@
>   #ifndef ASM__RISCV__ASM_H
>   #define ASM__RISCV__ASM_H
>   
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   #include <xen/linkage.h>
>   #define __ASM_STR(x)	x
>   #else
> @@ -25,13 +25,13 @@
>   #define REG_S		__REG_SEL(sd, sw)
>   
>   #if __SIZEOF_POINTER__ == 8
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   #define RISCV_PTR		.dword
>   #else
>   #define RISCV_PTR		".dword"
>   #endif
>   #elif __SIZEOF_POINTER__ == 4
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   #define RISCV_PTR		.word
>   #else
>   #define RISCV_PTR		".word"
> diff --git a/xen/arch/riscv/include/asm/bug.h b/xen/arch/riscv/include/asm/bug.h
> index c395b809c60d..6ec8adc528a9 100644
> --- a/xen/arch/riscv/include/asm/bug.h
> +++ b/xen/arch/riscv/include/asm/bug.h
> @@ -7,7 +7,7 @@
>   #ifndef ASM__RISCV__BUG_H
>   #define ASM__RISCV__BUG_H
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #define BUG_INSTR "unimp"
>   
> @@ -30,6 +30,6 @@
>   #define GET_INSN_LENGTH(insn)                               \
>       (((insn) & INSN_LENGTH_MASK) == INSN_LENGTH_32 ? 4 : 2) \
>   
> -#endif /* !__ASSEMBLY__ */
> +#endif /* !__ASSEMBLER__ */
>   
>   #endif /* ASM__RISCV__BUG_H */
> diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h
> index e150f28f536d..1e08d3bf78be 100644
> --- a/xen/arch/riscv/include/asm/config.h
> +++ b/xen/arch/riscv/include/asm/config.h
> @@ -137,7 +137,7 @@
>   #define INVALID_VCPU_ID MAX_VIRT_CPUS
>   
>   /* Linkage for RISCV */
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   #define CODE_FILL /* empty */
>   #endif
>   
> @@ -147,7 +147,7 @@
>   
>   #define IDENT_AREA_SIZE 64
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   extern unsigned long phys_offset; /* = load_start - XEN_VIRT_START */
>   #endif
>   
> diff --git a/xen/arch/riscv/include/asm/cpufeature.h b/xen/arch/riscv/include/asm/cpufeature.h
> index 768b84b769be..d42d7b294ef1 100644
> --- a/xen/arch/riscv/include/asm/cpufeature.h
> +++ b/xen/arch/riscv/include/asm/cpufeature.h
> @@ -2,7 +2,7 @@
>   #ifndef ASM__RISCV__CPUFEATURE_H
>   #define ASM__RISCV__CPUFEATURE_H
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/stdbool.h>
>   
> @@ -46,7 +46,7 @@ void riscv_fill_hwcap(void);
>   bool riscv_isa_extension_available(const unsigned long *isa_bitmap,
>                                      enum riscv_isa_ext_id id);
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* ASM__RISCV__CPUFEATURE_H */
>   
> diff --git a/xen/arch/riscv/include/asm/csr.h b/xen/arch/riscv/include/asm/csr.h
> index 775f1f170f37..01876f828981 100644
> --- a/xen/arch/riscv/include/asm/csr.h
> +++ b/xen/arch/riscv/include/asm/csr.h
> @@ -10,7 +10,7 @@
>   #include <xen/const.h>
>   #include <asm/riscv_encoding.h>
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #define csr_read(csr)                                           \
>   ({                                                              \
> @@ -78,6 +78,6 @@
>                              : "memory" );                        \
>   })
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* ASM__RISCV__CSR_H */
> diff --git a/xen/arch/riscv/include/asm/current.h b/xen/arch/riscv/include/asm/current.h
> index 1485bceea414..0c3ea70c2ec8 100644
> --- a/xen/arch/riscv/include/asm/current.h
> +++ b/xen/arch/riscv/include/asm/current.h
> @@ -9,7 +9,7 @@
>   
>   #include <asm/processor.h>
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   register struct pcpu_info *tp asm ( "tp" );
>   
> @@ -52,6 +52,6 @@ DECLARE_PER_CPU(struct vcpu *, curr_vcpu);
>   
>   #define get_per_cpu_offset() __per_cpu_offset[smp_processor_id()]
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* ASM__RISCV__CURRENT_H */
> diff --git a/xen/arch/riscv/include/asm/fixmap.h b/xen/arch/riscv/include/asm/fixmap.h
> index 5990c964aa2f..085d135c15d4 100644
> --- a/xen/arch/riscv/include/asm/fixmap.h
> +++ b/xen/arch/riscv/include/asm/fixmap.h
> @@ -23,7 +23,7 @@
>   #define FIXADDR_START FIXMAP_ADDR(0)
>   #define FIXADDR_TOP FIXMAP_ADDR(FIX_LAST + 1)
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   /*
>    * Direct access to xen_fixmap[] should only happen when {set,
> @@ -46,6 +46,6 @@ static inline unsigned int virt_to_fix(vaddr_t vaddr)
>       return ((vaddr - FIXADDR_START) >> PAGE_SHIFT);
>   }
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* ASM__RISCV__FIXMAP_H */
> diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
> index ddcc4da0a3d5..7fde99f91617 100644
> --- a/xen/arch/riscv/include/asm/page.h
> +++ b/xen/arch/riscv/include/asm/page.h
> @@ -3,7 +3,7 @@
>   #ifndef ASM__RISCV__PAGE_H
>   #define ASM__RISCV__PAGE_H
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/bug.h>
>   #include <xen/const.h>
> @@ -213,6 +213,6 @@ static inline pte_t pte_from_mfn(mfn_t mfn, pte_attr_t flags)
>   
>   pte_t pt_walk(vaddr_t va, unsigned int *pte_level);
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* ASM__RISCV__PAGE_H */
> diff --git a/xen/arch/riscv/include/asm/processor.h b/xen/arch/riscv/include/asm/processor.h
> index 39696fb58dc6..2502045642d8 100644
> --- a/xen/arch/riscv/include/asm/processor.h
> +++ b/xen/arch/riscv/include/asm/processor.h
> @@ -10,7 +10,7 @@
>   #ifndef ASM__RISCV__PROCESSOR_H
>   #define ASM__RISCV__PROCESSOR_H
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   /* On stack VCPU state */
>   struct cpu_user_regs
> @@ -93,7 +93,7 @@ static inline void sfence_vma(void)
>   
>   #define dump_execution_state() run_in_exception_handler(show_execution_state)
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* ASM__RISCV__PROCESSOR_H */
>   
> diff --git a/xen/arch/riscv/include/asm/regs.h b/xen/arch/riscv/include/asm/regs.h
> index 218b9455bd5f..531958f3d748 100644
> --- a/xen/arch/riscv/include/asm/regs.h
> +++ b/xen/arch/riscv/include/asm/regs.h
> @@ -2,7 +2,7 @@
>   #ifndef ASM__RISCV__REGS_H
>   #define ASM__RISCV__REGS_H
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/bug.h>
>   
> @@ -15,7 +15,7 @@ static inline bool guest_mode(const struct cpu_user_regs *r)
>       BUG_ON("unimplemented");
>   }
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* ASM__RISCV__REGS_H */
>   
> diff --git a/xen/arch/riscv/include/asm/system.h b/xen/arch/riscv/include/asm/system.h
> index 7b78d11e04dd..f33af64fd2ec 100644
> --- a/xen/arch/riscv/include/asm/system.h
> +++ b/xen/arch/riscv/include/asm/system.h
> @@ -7,7 +7,7 @@
>   
>   #include <asm/csr.h>
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #define RISCV_FENCE(p, s) \
>       __asm__ __volatile__ ( "fence " #p "," #s : : : "memory" )
> @@ -76,7 +76,7 @@ static inline bool local_irq_is_enabled(void)
>   
>   #define arch_fetch_and_add(x, v) __sync_fetch_and_add(x, v)
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* ASM__RISCV__SYSTEM_H */
>   
> diff --git a/xen/arch/riscv/include/asm/traps.h b/xen/arch/riscv/include/asm/traps.h
> index 72b8f6c475cc..21fa3c3259b3 100644
> --- a/xen/arch/riscv/include/asm/traps.h
> +++ b/xen/arch/riscv/include/asm/traps.h
> @@ -5,12 +5,12 @@
>   
>   #include <asm/processor.h>
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   void do_trap(struct cpu_user_regs *cpu_regs);
>   void handle_trap(void);
>   void trap_init(void);
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* ASM__RISCV__TRAPS_H */
> diff --git a/xen/arch/x86/boot/video.h b/xen/arch/x86/boot/video.h
> index 1203515f9e5b..7c2848791799 100644
> --- a/xen/arch/x86/boot/video.h
> +++ b/xen/arch/x86/boot/video.h
> @@ -28,7 +28,7 @@
>   /* The "recalculate timings" flag */
>   #define VIDEO_RECALC        0x8000
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   struct boot_video_info {
>       uint8_t  orig_x;             /* 0x00 */
>       uint8_t  orig_y;             /* 0x01 */
> @@ -69,6 +69,6 @@ struct boot_video_info {
>   };
>   
>   extern struct boot_video_info boot_vid_info;
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* __BOOT_VIDEO_H__ */
> diff --git a/xen/arch/x86/include/asm/alternative-asm.h b/xen/arch/x86/include/asm/alternative-asm.h
> index 3eb0f4e8a02a..d5c7f18160d9 100644
> --- a/xen/arch/x86/include/asm/alternative-asm.h
> +++ b/xen/arch/x86/include/asm/alternative-asm.h
> @@ -3,7 +3,7 @@
>   
>   #include <asm/nops.h>
>   
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   
>   /*
>    * Issue one struct alt_instr descriptor entry (need to put it into
> @@ -120,7 +120,7 @@
>   #undef decl_orig
>   #undef as_true
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   #endif /* _ASM_X86_ALTERNATIVE_ASM_H_ */
>   
>   /*
> diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/include/asm/alternative.h
> index 0482bbf7cbf1..18109e3dc594 100644
> --- a/xen/arch/x86/include/asm/alternative.h
> +++ b/xen/arch/x86/include/asm/alternative.h
> @@ -8,7 +8,7 @@
>   #define ALT_FLAG_NOT (1 << 15)
>   #define ALT_NOT(x) (ALT_FLAG_NOT | (x))
>   
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   #include <asm/alternative-asm.h>
>   #else
>   
> @@ -175,6 +175,6 @@ extern void alternative_instructions(void);
>   /* Use this macro(s) if you need more than one output parameter. */
>   #define ASM_OUTPUT2(a...) a
>   
> -#endif /*  !__ASSEMBLY__  */
> +#endif /*  !__ASSEMBLER__  */
>   
>   #endif /* __X86_ALTERNATIVE_H__ */
> diff --git a/xen/arch/x86/include/asm/asm_defns.h b/xen/arch/x86/include/asm/asm_defns.h
> index 72a0082d319d..9b75c9cae3d4 100644
> --- a/xen/arch/x86/include/asm/asm_defns.h
> +++ b/xen/arch/x86/include/asm/asm_defns.h
> @@ -12,7 +12,7 @@
>   #include <asm/cpufeature.h>
>   #include <asm/alternative.h>
>   
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   #include <xen/linkage.h>
>   #include <asm/asm-defns.h>
>   #ifndef CONFIG_INDIRECT_THUNK
> @@ -24,7 +24,7 @@ asm ( "\t.equ CONFIG_INDIRECT_THUNK, "
>         __stringify(IS_ENABLED(CONFIG_INDIRECT_THUNK)) );
>   #endif
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   /*
>    * This output constraint should be used for any inline asm which has a "call"
> @@ -57,14 +57,14 @@ register unsigned long current_stack_pointer asm("rsp");
>   #define ASSERT_INTERRUPTS_DISABLED \
>       ASSERT_INTERRUPT_STATUS(z, "INTERRUPTS DISABLED")
>   
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   # define _ASM_EX(p) p-.
>   #else
>   # define _ASM_EX(p) #p "-."
>   #endif
>   
>   /* Exception table entry */
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   # define _ASM__EXTABLE(sfx, from, to)             \
>       .section .ex_table##sfx, "a" ;                \
>       .balign 4 ;                                   \
> @@ -81,7 +81,7 @@ register unsigned long current_stack_pointer asm("rsp");
>   #define _ASM_EXTABLE(from, to)     _ASM__EXTABLE(, from, to)
>   #define _ASM_PRE_EXTABLE(from, to) _ASM__EXTABLE(.pre, from, to)
>   
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   
>   .macro BUILD_BUG_ON condstr, cond:vararg
>           .if \cond
> @@ -221,7 +221,7 @@ static always_inline void stac(void)
>   }
>   #endif
>   
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   .macro SAVE_ALL compat=0
>           addq  $-(UREGS_error_code-UREGS_r15), %rsp
>           cld
> diff --git a/xen/arch/x86/include/asm/bug.h b/xen/arch/x86/include/asm/bug.h
> index e748b6c2f269..3a4f41e38032 100644
> --- a/xen/arch/x86/include/asm/bug.h
> +++ b/xen/arch/x86/include/asm/bug.h
> @@ -19,12 +19,12 @@
>    *  ...
>    */
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #define BUG_INSTR       "ud2"
>   #define BUG_ASM_CONST   "c"
>   
> -#else  /* !__ASSEMBLY__ */
> +#else  /* !__ASSEMBLER__ */
>   
>   /*
>    * Construct a bugframe, suitable for using in assembly code.  Should always
> @@ -66,6 +66,6 @@
>   #define ASSERT_FAILED(msg)                                      \
>        BUG_FRAME BUGFRAME_assert, __LINE__, __FILE__, 1, msg
>   
> -#endif /* !__ASSEMBLY__ */
> +#endif /* !__ASSEMBLER__ */
>   
>   #endif /* __X86_BUG_H__ */
> diff --git a/xen/arch/x86/include/asm/cache.h b/xen/arch/x86/include/asm/cache.h
> index f15d10dc7f2d..e17a10b49ee5 100644
> --- a/xen/arch/x86/include/asm/cache.h
> +++ b/xen/arch/x86/include/asm/cache.h
> @@ -9,7 +9,7 @@
>   #define L1_CACHE_SHIFT	(CONFIG_X86_L1_CACHE_SHIFT)
>   #define L1_CACHE_BYTES	(1 << L1_CACHE_SHIFT)
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   void cache_flush(const void *addr, unsigned int size);
>   void cache_writeback(const void *addr, unsigned int size);
> diff --git a/xen/arch/x86/include/asm/config.h b/xen/arch/x86/include/asm/config.h
> index 3553bf89dc97..156369695442 100644
> --- a/xen/arch/x86/include/asm/config.h
> +++ b/xen/arch/x86/include/asm/config.h
> @@ -32,7 +32,7 @@
>   #define OPT_CONSOLE_STR "vga"
>   
>   /* Linkage for x86 */
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   #define CODE_FILL 0x90
>   #endif
>   
> @@ -195,7 +195,7 @@
>   #endif
>   #define DIRECTMAP_VIRT_END      (DIRECTMAP_VIRT_START + DIRECTMAP_SIZE)
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #ifdef CONFIG_PV32
>   
> @@ -237,7 +237,7 @@
>   #define __OS          "q"  /* Operation Suffix */
>   #define __OP          "r"  /* Operand Prefix */
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   extern unsigned long xen_phys_start;
>   #endif
>   
> diff --git a/xen/arch/x86/include/asm/cpufeature.h b/xen/arch/x86/include/asm/cpufeature.h
> index 0b764b9fb97b..28c4085cc786 100644
> --- a/xen/arch/x86/include/asm/cpufeature.h
> +++ b/xen/arch/x86/include/asm/cpufeature.h
> @@ -10,7 +10,7 @@
>   #include <xen/const.h>
>   #include <xen/macros.h>
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   #include <asm/cpuid.h>
>   #else
>   #include <asm/cpufeatureset.h>
> @@ -38,7 +38,7 @@
>   #define VFM_FAMILY(vfm) MASK_EXTR(vfm, VFM_FAMILY_MASK)
>   #define VFM_VENDOR(vfm) MASK_EXTR(vfm, VFM_VENDOR_MASK)
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   struct cpuinfo_x86 {
>       /* TODO: Phase out the x86 prefixed names. */
> @@ -349,7 +349,7 @@ struct cpuid4_info {
>   };
>   
>   int cpuid4_cache_lookup(int index, struct cpuid4_info *this_leaf);
> -#endif /* !__ASSEMBLY__ */
> +#endif /* !__ASSEMBLER__ */
>   
>   #endif /* __ASM_I386_CPUFEATURE_H */
>   
> diff --git a/xen/arch/x86/include/asm/cpufeatureset.h b/xen/arch/x86/include/asm/cpufeatureset.h
> index a9c51bc514a8..e12b54ab2223 100644
> --- a/xen/arch/x86/include/asm/cpufeatureset.h
> +++ b/xen/arch/x86/include/asm/cpufeatureset.h
> @@ -1,7 +1,7 @@
>   #ifndef __XEN_X86_CPUFEATURESET_H__
>   #define __XEN_X86_CPUFEATURESET_H__
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/stringify.h>
>   
> @@ -17,13 +17,13 @@ enum {
>   #include <public/arch-x86/cpufeatureset.h>
>   #include <asm/cpufeatures.h>
>   
> -#else /* !__ASSEMBLY__ */
> +#else /* !__ASSEMBLER__ */
>   
>   #define XEN_CPUFEATURE(name, value) .equ X86_FEATURE_##name, value
>   #include <public/arch-x86/cpufeatureset.h>
>   #include <asm/cpufeatures.h>
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #undef XEN_CPUFEATURE
>   
> diff --git a/xen/arch/x86/include/asm/desc.h b/xen/arch/x86/include/asm/desc.h
> index 85fae6b2f9ae..dcbdac3ff7d4 100644
> --- a/xen/arch/x86/include/asm/desc.h
> +++ b/xen/arch/x86/include/asm/desc.h
> @@ -42,7 +42,7 @@
>   #define LDT_SELECTOR     (LDT_ENTRY << 3)
>   #define PER_CPU_SELECTOR (PER_CPU_GDT_ENTRY << 3)
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #define GUEST_KERNEL_RPL(d) (is_pv_32bit_domain(d) ? 1 : 3)
>   
> @@ -76,7 +76,7 @@
>                   FLAT_COMPAT_KERNEL_CS)) ||                              \
>        ((sel) & 4))                               /* LDT seg? */
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   /* These are bitmasks for the high 32 bits of a descriptor table entry. */
>   #define _SEGMENT_TYPE    (15<< 8)
> @@ -92,7 +92,7 @@
>   #define _SEGMENT_DB      ( 1<<22) /* 16- or 32-bit segment */
>   #define _SEGMENT_G       ( 1<<23) /* Granularity */
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   /* System Descriptor types for GDT and IDT entries. */
>   #define SYS_DESC_tss16_avail  1
> @@ -162,6 +162,6 @@ static inline void ltr(unsigned int sel)
>       __asm__ __volatile__ ( "ltr %w0" :: "rm" (sel) : "memory" );
>   }
>   
> -#endif /* !__ASSEMBLY__ */
> +#endif /* !__ASSEMBLER__ */
>   
>   #endif /* __ARCH_DESC_H */
> diff --git a/xen/arch/x86/include/asm/edd.h b/xen/arch/x86/include/asm/edd.h
> index afaa23732a38..ebd46171c195 100644
> --- a/xen/arch/x86/include/asm/edd.h
> +++ b/xen/arch/x86/include/asm/edd.h
> @@ -23,7 +23,7 @@
>   #ifndef __XEN_EDD_H__
>   #define __XEN_EDD_H__
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   struct __packed edd_info {
>       /* Int13, Fn48: Check Extensions Present. */
> @@ -149,7 +149,7 @@ extern u8 boot_mbr_signature_nr;
>   extern struct edd_info boot_edd_info[];
>   extern u8 boot_edd_info_nr;
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   /* Maximum number of EDD information structures at boot_edd_info. */
>   #define EDD_INFO_MAX            6
> diff --git a/xen/arch/x86/include/asm/fixmap.h b/xen/arch/x86/include/asm/fixmap.h
> index 516ec3fa6c95..5b9e1a240153 100644
> --- a/xen/arch/x86/include/asm/fixmap.h
> +++ b/xen/arch/x86/include/asm/fixmap.h
> @@ -17,7 +17,7 @@
>   #define FIXADDR_TOP (VMAP_VIRT_END - PAGE_SIZE)
>   #define FIXADDR_X_TOP (XEN_VIRT_END - PAGE_SIZE)
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/acpi.h>
>   #include <xen/pfn.h>
> @@ -118,6 +118,6 @@ extern void __set_fixmap_x(
>   #define __fix_x_to_virt(x) (FIXADDR_X_TOP - ((x) << PAGE_SHIFT))
>   #define fix_x_to_virt(x)   ((void *)__fix_x_to_virt(x))
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif
> diff --git a/xen/arch/x86/include/asm/ldt.h b/xen/arch/x86/include/asm/ldt.h
> index 58e3e042fcf9..f08e0230906a 100644
> --- a/xen/arch/x86/include/asm/ldt.h
> +++ b/xen/arch/x86/include/asm/ldt.h
> @@ -2,7 +2,7 @@
>   #ifndef __ARCH_LDT_H
>   #define __ARCH_LDT_H
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   static inline void load_LDT(struct vcpu *v)
>   {
> @@ -20,7 +20,7 @@ static inline void load_LDT(struct vcpu *v)
>       }
>   }
>   
> -#endif /* !__ASSEMBLY__ */
> +#endif /* !__ASSEMBLER__ */
>   
>   #endif
>   
> diff --git a/xen/arch/x86/include/asm/machine_kexec.h b/xen/arch/x86/include/asm/machine_kexec.h
> index d4880818c1d9..3e189acf2464 100644
> --- a/xen/arch/x86/include/asm/machine_kexec.h
> +++ b/xen/arch/x86/include/asm/machine_kexec.h
> @@ -3,7 +3,7 @@
>   
>   #define KEXEC_RELOC_FLAG_COMPAT 0x1 /* 32-bit image */
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   extern void kexec_reloc(unsigned long reloc_code, unsigned long reloc_pt,
>                           unsigned long ind_maddr, unsigned long entry_maddr,
> diff --git a/xen/arch/x86/include/asm/nops.h b/xen/arch/x86/include/asm/nops.h
> index 2724a9862e6b..32a05c88133f 100644
> --- a/xen/arch/x86/include/asm/nops.h
> +++ b/xen/arch/x86/include/asm/nops.h
> @@ -47,7 +47,7 @@
>   #define P6_NOP8 0x0f,0x1f,0x84,0x00,0,0,0,0
>   #define P6_NOP9 0x66,0x0f,0x1f,0x84,0x00,0,0,0,0
>   
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   #define _ASM_MK_NOP(x) .byte x
>   #else
>   #define _ASM_MK_NOP(x) ".byte " __stringify(x) "\n"
> diff --git a/xen/arch/x86/include/asm/page.h b/xen/arch/x86/include/asm/page.h
> index 65a01f240213..23e06d39ad84 100644
> --- a/xen/arch/x86/include/asm/page.h
> +++ b/xen/arch/x86/include/asm/page.h
> @@ -8,7 +8,7 @@
>   #define PAGE_ORDER_2M       9
>   #define PAGE_ORDER_1G       18
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   # include <xen/types.h>
>   # include <xen/lib.h>
>   #endif
> @@ -107,7 +107,7 @@
>   #define l4e_from_mfn(m, f) l4e_from_pfn(mfn_x(m), f)
>   
>   /* Construct a pte from a physical address and access flags. */
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   static inline l1_pgentry_t l1e_from_paddr(paddr_t pa, unsigned int flags)
>   {
>       ASSERT((pa & ~(PADDR_MASK & PAGE_MASK)) == 0);
> @@ -128,7 +128,7 @@ static inline l4_pgentry_t l4e_from_paddr(paddr_t pa, unsigned int flags)
>       ASSERT((pa & ~(PADDR_MASK & PAGE_MASK)) == 0);
>       return (l4_pgentry_t) { pa | put_pte_flags(flags) };
>   }
> -#endif /* !__ASSEMBLY__ */
> +#endif /* !__ASSEMBLER__ */
>   
>   /* Construct a pte from its direct integer representation. */
>   #define l1e_from_intpte(intpte)    ((l1_pgentry_t) { (intpte_t)(intpte) })
> @@ -204,7 +204,7 @@ static inline l4_pgentry_t l4e_from_paddr(paddr_t pa, unsigned int flags)
>   #define pgentry_ptr_to_slot(_p)    \
>       (((unsigned long)(_p) & ~PAGE_MASK) / sizeof(*(_p)))
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   /* Page-table type. */
>   typedef struct { u64 pfn; } pagetable_t;
> @@ -270,7 +270,7 @@ void scrub_page_cold(void *ptr);
>   #define vmap_to_mfn(va)     xen_map_to_mfn((unsigned long)(va))
>   #define vmap_to_page(va)    mfn_to_page(vmap_to_mfn(va))
>   
> -#endif /* !defined(__ASSEMBLY__) */
> +#endif /* !defined(__ASSEMBLER__) */
>   
>   /* Where to find each level of the linear mapping */
>   #define __linear_l1_table ((l1_pgentry_t *)(LINEAR_PT_VIRT_START))
> @@ -282,7 +282,7 @@ void scrub_page_cold(void *ptr);
>    ((l4_pgentry_t *)(__linear_l3_table + l3_linear_offset(LINEAR_PT_VIRT_START)))
>   
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   extern root_pgentry_t idle_pg_table[ROOT_PAGETABLE_ENTRIES];
>   extern l2_pgentry_t  *compat_idle_pg_table_l2;
>   extern unsigned int   m2p_compat_vstart;
> @@ -293,7 +293,7 @@ extern l2_pgentry_t l2_directmap[4*L2_PAGETABLE_ENTRIES];
>   extern l1_pgentry_t l1_fixmap[L1_PAGETABLE_ENTRIES];
>   void paging_init(void);
>   void efi_update_l4_pgtable(unsigned int l4idx, l4_pgentry_t l4e);
> -#endif /* !defined(__ASSEMBLY__) */
> +#endif /* !defined(__ASSEMBLER__) */
>   
>   #define _PAGE_NONE     _AC(0x000,U)
>   #define _PAGE_PRESENT  _AC(0x001,U)
> @@ -313,7 +313,7 @@ void efi_update_l4_pgtable(unsigned int l4idx, l4_pgentry_t l4e);
>   #define _PAGE_PSE_PAT  _AC(0x1000,U)
>   #define _PAGE_AVAIL_HIGH (_AC(0x7ff, U) << 12)
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   /* Dependency on NX being available can't be expressed. */
>   #define _PAGE_NX       (cpu_has_nx ? _PAGE_NX_BIT : 0)
>   #endif
> @@ -354,7 +354,7 @@ void efi_update_l4_pgtable(unsigned int l4idx, l4_pgentry_t l4e);
>   
>   #define MAP_SMALL_PAGES _PAGE_AVAIL0 /* don't use superpages mappings */
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   /* Convert between PAT/PCD/PWT embedded in PTE flags and 3-bit cacheattr. */
>   static inline unsigned int pte_flags_to_cacheattr(unsigned int flags)
> @@ -391,7 +391,7 @@ static inline void invalidate_icache(void)
>    */
>   }
>   
> -#endif /* !__ASSEMBLY__ */
> +#endif /* !__ASSEMBLER__ */
>   
>   #endif /* __X86_PAGE_H__ */
>   
> diff --git a/xen/arch/x86/include/asm/processor.h b/xen/arch/x86/include/asm/processor.h
> index 2e087c625770..cf614bd8c678 100644
> --- a/xen/arch/x86/include/asm/processor.h
> +++ b/xen/arch/x86/include/asm/processor.h
> @@ -4,7 +4,7 @@
>   #ifndef __ASM_X86_PROCESSOR_H
>   #define __ASM_X86_PROCESSOR_H
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   #include <xen/types.h>
>   #include <xen/smp.h>
>   #include <xen/percpu.h>
> @@ -75,7 +75,7 @@
>                        (_AC(X86_MT_UC,  ULL) << 0x30) | \
>                        (_AC(X86_MT_UC,  ULL) << 0x38))
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   struct domain;
>   struct vcpu;
> @@ -435,7 +435,7 @@ enum ap_boot_method {
>   };
>   extern enum ap_boot_method ap_boot_method;
>   
> -#endif /* !__ASSEMBLY__ */
> +#endif /* !__ASSEMBLER__ */
>   
>   #endif /* __ASM_X86_PROCESSOR_H */
>   
> diff --git a/xen/arch/x86/include/asm/smp.h b/xen/arch/x86/include/asm/smp.h
> index 60eb4ac254bb..3f16e6269615 100644
> --- a/xen/arch/x86/include/asm/smp.h
> +++ b/xen/arch/x86/include/asm/smp.h
> @@ -4,7 +4,7 @@
>   /*
>    * We need the APIC definitions automatically as part of 'smp.h'
>    */
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   #include <xen/bitops.h>
>   #include <xen/kernel.h>
>   #include <xen/cpumask.h>
> @@ -14,7 +14,7 @@
>   
>   #define BAD_APICID   (-1U)
>   #define INVALID_CUID (~0U)   /* AMD Compute Unit ID */
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   /*
>    * Private routines/data
> @@ -80,6 +80,6 @@ extern bool unaccounted_cpus;
>   
>   void *cpu_alloc_stack(unsigned int cpu);
>   
> -#endif /* !__ASSEMBLY__ */
> +#endif /* !__ASSEMBLER__ */
>   
>   #endif
> diff --git a/xen/arch/x86/include/asm/spec_ctrl.h b/xen/arch/x86/include/asm/spec_ctrl.h
> index 3d92928f9439..505e3ab863f0 100644
> --- a/xen/arch/x86/include/asm/spec_ctrl.h
> +++ b/xen/arch/x86/include/asm/spec_ctrl.h
> @@ -45,7 +45,7 @@
>    */
>   #define SCF_DOM_MASK (SCF_verw | SCF_entry_ibpb | SCF_entry_bhb)
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <asm/alternative.h>
>   #include <asm/current.h>
> @@ -201,7 +201,7 @@ static always_inline void spec_ctrl_exit_idle(struct cpu_info *info)
>        */
>   }
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   #endif /* !__X86_SPEC_CTRL_H__ */
>   
>   /*
> diff --git a/xen/arch/x86/include/asm/spec_ctrl_asm.h b/xen/arch/x86/include/asm/spec_ctrl_asm.h
> index 729a830411eb..abb64ad2b7f9 100644
> --- a/xen/arch/x86/include/asm/spec_ctrl_asm.h
> +++ b/xen/arch/x86/include/asm/spec_ctrl_asm.h
> @@ -8,7 +8,7 @@
>   #ifndef __X86_SPEC_CTRL_ASM_H__
>   #define __X86_SPEC_CTRL_ASM_H__
>   
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   #include <asm/msr-index.h>
>   #include <asm/spec_ctrl.h>
>   
> @@ -500,7 +500,7 @@
>   .L\@_skip_ist_exit:
>   .endm
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   #endif /* !__X86_SPEC_CTRL_ASM_H__ */
>   
>   /*
> diff --git a/xen/arch/x86/include/asm/trampoline.h b/xen/arch/x86/include/asm/trampoline.h
> index dc536efe1f3d..deed2679d9d5 100644
> --- a/xen/arch/x86/include/asm/trampoline.h
> +++ b/xen/arch/x86/include/asm/trampoline.h
> @@ -96,7 +96,7 @@
>   #define TRAMPOLINE_HEAP_END     (TRAMPOLINE_SIZE - PAGE_SIZE)
>   #define MBI_SPACE_MIN           (2 * PAGE_SIZE)
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/compiler.h>
>   #include <xen/types.h>
> @@ -168,5 +168,5 @@ extern uint8_t kbd_shift_flags;
>   extern uint16_t boot_edid_caps;
>   extern uint8_t boot_edid_info[128];
>   
> -#endif /* !__ASSEMBLY__ */
> +#endif /* !__ASSEMBLER__ */
>   #endif /* X86_ASM_TRAMPOLINE_H */
> diff --git a/xen/arch/x86/include/asm/x86_64/page.h b/xen/arch/x86/include/asm/x86_64/page.h
> index 201b79f99e57..c80b4b01ad26 100644
> --- a/xen/arch/x86/include/asm/x86_64/page.h
> +++ b/xen/arch/x86/include/asm/x86_64/page.h
> @@ -9,7 +9,7 @@
>   
>   #define is_canonical_address(x) (((long)(x) >> 47) == ((long)(x) >> 63))
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   static inline unsigned long canonicalise_addr(unsigned long addr)
>   {
> @@ -68,7 +68,7 @@ typedef struct { intpte_t l3; } l3_pgentry_t;
>   typedef struct { intpte_t l4; } l4_pgentry_t;
>   typedef l4_pgentry_t root_pgentry_t;
>   
> -#endif /* !__ASSEMBLY__ */
> +#endif /* !__ASSEMBLER__ */
>   
>   /* Given a virtual address, get an entry offset into a linear page table. */
>   #define l1_linear_offset(_a) (((_a) & VADDR_MASK) >> L1_PAGETABLE_SHIFT)
> @@ -100,7 +100,7 @@ typedef l4_pgentry_t root_pgentry_t;
>    */
>   
>   /* Extract flags into 24-bit integer, or turn 24-bit flags into a pte mask. */
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   static inline unsigned int get_pte_flags(intpte_t x)
>   {
>       return ((x >> 40) & ~0xfff) | (x & 0xfff);
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index d7f4d0cb2200..8adba7bd4da8 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -25,11 +25,11 @@
>   /*
>    * Keep this arch-specific modified include in the common file, as moving
>    * it to the arch specific include file would obscure that special care is
> - * taken to include it with __ASSEMBLY__ defined.
> + * taken to include it with __ASSEMBLER__ defined.
>    */
> -#define __ASSEMBLY__ /* avoid pulling in ACPI stuff (conflicts with EFI) */
> +#define __ASSEMBLER__ /* avoid pulling in ACPI stuff (conflicts with EFI) */
>   #include <asm/fixmap.h>
> -#undef __ASSEMBLY__
> +#undef __ASSEMBLER__
>   #endif
>   
>   #define EFI_REVISION(major, minor) (((major) << 16) | (minor))
> diff --git a/xen/include/efi/pe.h b/xen/include/efi/pe.h
> index 64e047e88b4d..6b3458e888b7 100644
> --- a/xen/include/efi/pe.h
> +++ b/xen/include/efi/pe.h
> @@ -136,7 +136,7 @@
>   #define IMAGE_DEBUG_TYPE_CODEVIEW              2
>   #define IMAGE_DEBUG_TYPE_EX_DLLCHARACTERISTICS 20
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   struct mz_hdr {
>       uint16_t magic;              /* MZ_MAGIC */
> @@ -286,6 +286,6 @@ struct section_header {
>       uint32_t flags;
>   };
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* EFI__PE_H */
> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
> index b31324f8d409..cd563cf70684 100644
> --- a/xen/include/public/arch-arm.h
> +++ b/xen/include/public/arch-arm.h
> @@ -184,7 +184,7 @@
>   #define uint64_aligned_t uint64_t __attribute__((__aligned__(8)))
>   #endif
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   #define ___DEFINE_XEN_GUEST_HANDLE(name, type)                  \
>       typedef union { type *p; unsigned long q; }                 \
>           __guest_handle_ ## name;                                \
> @@ -542,7 +542,7 @@ typedef uint64_t xen_callback_t;
>   
>   #endif
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   /* Stub definition of PMU structure */
>   typedef struct xen_pmu_arch { uint8_t dummy; } xen_pmu_arch_t;
>   #endif
> diff --git a/xen/include/public/arch-ppc.h b/xen/include/public/arch-ppc.h
> index 264e20b89ea4..b5e1a940a575 100644
> --- a/xen/include/public/arch-ppc.h
> +++ b/xen/include/public/arch-ppc.h
> @@ -16,7 +16,7 @@
>   #define uint64_aligned_t uint64_t __attribute__((__aligned__(8)))
>   #endif
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   #define ___DEFINE_XEN_GUEST_HANDLE(name, type)                  \
>       typedef union { type *p; unsigned long q; }                 \
>           __guest_handle_ ## name;                                \
> @@ -102,6 +102,6 @@ struct xen_arch_domainconfig {
>   
>   typedef struct xen_pmu_arch { uint8_t dummy; } xen_pmu_arch_t;
>   
> -#endif /* !__ASSEMBLY__ */
> +#endif /* !__ASSEMBLER__ */
>   
>   #endif /* __XEN_PUBLIC_ARCH_PPC_H__ */
> diff --git a/xen/include/public/arch-riscv.h b/xen/include/public/arch-riscv.h
> index 168263b92074..360d8e6871ba 100644
> --- a/xen/include/public/arch-riscv.h
> +++ b/xen/include/public/arch-riscv.h
> @@ -12,7 +12,7 @@
>   #define uint64_aligned_t uint64_t __attribute__((__aligned__(8)))
>   #endif
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   #define ___DEFINE_XEN_GUEST_HANDLE(name, type)                  \
>       typedef union { type *p; unsigned long q; }                 \
>           __guest_handle_ ## name;                                \
> diff --git a/xen/include/public/arch-x86/xen-mca.h b/xen/include/public/arch-x86/xen-mca.h
> index bb1b12f14fae..30d18b6ad767 100644
> --- a/xen/include/public/arch-x86/xen-mca.h
> +++ b/xen/include/public/arch-x86/xen-mca.h
> @@ -74,7 +74,7 @@
>   /* Applicable to all mc_vcpuid fields below. */
>   #define XEN_MC_VCPUID_INVALID 0xffff
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #define VIRQ_MCA VIRQ_ARCH_0 /* G. (DOM0) Machine Check Architecture */
>   
> @@ -433,6 +433,6 @@ struct xen_mc {
>   typedef struct xen_mc xen_mc_t;
>   DEFINE_XEN_GUEST_HANDLE(xen_mc_t);
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* __XEN_PUBLIC_ARCH_X86_MCA_H__ */
> diff --git a/xen/include/public/arch-x86/xen-x86_32.h b/xen/include/public/arch-x86/xen-x86_32.h
> index 25cc44728838..6a5eddf0c3b4 100644
> --- a/xen/include/public/arch-x86/xen-x86_32.h
> +++ b/xen/include/public/arch-x86/xen-x86_32.h
> @@ -90,7 +90,7 @@
>   #define XEN_GUEST_HANDLE_64(name) __XEN_GUEST_HANDLE_64(name)
>   #endif
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #if defined(XEN_GENERATING_COMPAT_HEADERS)
>   /* nothing */
> @@ -171,7 +171,7 @@ struct xen_callback {
>   };
>   typedef struct xen_callback xen_callback_t;
>   
> -#endif /* !__ASSEMBLY__ */
> +#endif /* !__ASSEMBLER__ */
>   
>   #endif /* __XEN_PUBLIC_ARCH_X86_XEN_X86_32_H__ */
>   
> diff --git a/xen/include/public/arch-x86/xen-x86_64.h b/xen/include/public/arch-x86/xen-x86_64.h
> index ea6b56aa3bd8..75f121be0e14 100644
> --- a/xen/include/public/arch-x86/xen-x86_64.h
> +++ b/xen/include/public/arch-x86/xen-x86_64.h
> @@ -105,7 +105,7 @@
>   #define VGCF_in_syscall  (1<<_VGCF_in_syscall)
>   #define VGCF_IN_SYSCALL  VGCF_in_syscall
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   struct iret_context {
>       /* Top of stack (%rsp at point of hypercall). */
> @@ -218,7 +218,7 @@ typedef struct arch_vcpu_info arch_vcpu_info_t;
>   
>   typedef unsigned long xen_callback_t;
>   
> -#endif /* !__ASSEMBLY__ */
> +#endif /* !__ASSEMBLER__ */
>   
>   #endif /* __XEN_PUBLIC_ARCH_X86_XEN_X86_64_H__ */
>   
> diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x86/xen.h
> index b99a691706f8..a7bf046ee006 100644
> --- a/xen/include/public/arch-x86/xen.h
> +++ b/xen/include/public/arch-x86/xen.h
> @@ -53,7 +53,7 @@ __DeFiNe__ __DECL_REG_LO16(name) e ## name
>   #include "xen-x86_64.h"
>   #endif
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   typedef unsigned long xen_pfn_t;
>   #define PRI_xen_pfn "lx"
>   #define PRIu_xen_pfn "lu"
> @@ -97,7 +97,7 @@ typedef unsigned long xen_pfn_t;
>   /* Maximum number of virtual CPUs in legacy multi-processor guests. */
>   #define XEN_LEGACY_MAX_VCPUS 32
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   typedef unsigned long xen_ulong_t;
>   #define PRI_xen_ulong "lx"
> @@ -335,7 +335,7 @@ typedef struct xen_msr_entry {
>   } xen_msr_entry_t;
>   DEFINE_XEN_GUEST_HANDLE(xen_msr_entry_t);
>   
> -#endif /* !__ASSEMBLY__ */
> +#endif /* !__ASSEMBLER__ */
>   
>   /*
>    * ` enum neg_errnoval
> @@ -359,7 +359,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_msr_entry_t);
>    * Prefix forces emulation of some non-trapping instructions.
>    * Currently only CPUID.
>    */
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   #define XEN_EMULATE_PREFIX .byte 0x0f,0x0b,0x78,0x65,0x6e ;
>   #define XEN_CPUID          XEN_EMULATE_PREFIX cpuid
>   #else
> diff --git a/xen/include/public/errno.h b/xen/include/public/errno.h
> index b9fc6762fbb6..6543d0f3530a 100644
> --- a/xen/include/public/errno.h
> +++ b/xen/include/public/errno.h
> @@ -30,7 +30,7 @@
>   
>   #define XEN_ERRNO_DEFAULT_INCLUDE
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #define XEN_ERRNO(name, value) XEN_##name = (value),
>   enum xen_errno {
> @@ -39,7 +39,7 @@ enum xen_errno {
>   
>   #define XEN_ERRNO(name, value) .equ XEN_##name, value
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* __XEN_PUBLIC_ERRNO_H__ */
>   #endif /* !XEN_ERRNO */
> @@ -123,7 +123,7 @@ XEN_ERRNO(ECONNREFUSED,	111)	/* Connection refused */
>   /* Clean up from a default include.  Close the enum (for C). */
>   #ifdef XEN_ERRNO_DEFAULT_INCLUDE
>   #undef XEN_ERRNO_DEFAULT_INCLUDE
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   };
>   #endif
>   
> diff --git a/xen/include/public/tmem.h b/xen/include/public/tmem.h
> index da68de76fe5f..8c91a7bb944f 100644
> --- a/xen/include/public/tmem.h
> +++ b/xen/include/public/tmem.h
> @@ -58,7 +58,7 @@ struct xen_tmem_oid {
>   typedef struct xen_tmem_oid xen_tmem_oid_t;
>   DEFINE_XEN_GUEST_HANDLE(xen_tmem_oid_t);
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   #if __XEN_INTERFACE_VERSION__ < 0x00040400
>   typedef xen_pfn_t tmem_cli_mfn_t;
>   #endif
> diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
> index 82b9c05a76b7..7f15204c3885 100644
> --- a/xen/include/public/xen.h
> +++ b/xen/include/public/xen.h
> @@ -24,7 +24,7 @@
>   #error "Unsupported architecture"
>   #endif
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   /* Guest handles for primitive C types. */
>   DEFINE_XEN_GUEST_HANDLE(char);
>   __DEFINE_XEN_GUEST_HANDLE(uchar, unsigned char);
> @@ -437,7 +437,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_ulong_t);
>   #define MMUEXT_UNMARK_SUPER     20
>   /* ` } */
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   struct mmuext_op {
>       unsigned int cmd; /* => enum mmuext_cmd */
>       union {
> @@ -614,7 +614,7 @@ DEFINE_XEN_GUEST_HANDLE(mmuext_op_t);
>   /* Mask for valid domain id values */
>   #define DOMID_MASK           xen_mk_uint(0x7FFF)
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   typedef uint16_t domid_t;
>   
> @@ -1011,7 +1011,7 @@ typedef struct {
>       XEN_DEFINE_UUID_(a, b, c, d, e1, e2, e3, e4, e5, e6)
>   #endif /* __STDC_VERSION__ / __GNUC__ */
>   
> -#endif /* !__ASSEMBLY__ */
> +#endif /* !__ASSEMBLER__ */
>   
>   /* Default definitions for macros used by domctl/sysctl. */
>   #if defined(__XEN__) || defined(__XEN_TOOLS__)
> @@ -1026,7 +1026,7 @@ typedef struct {
>   #define XEN_GUEST_HANDLE_64(name) XEN_GUEST_HANDLE(name)
>   #endif
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   struct xenctl_bitmap {
>       XEN_GUEST_HANDLE_64(uint8) bitmap;
>       uint32_t nr_bits;
> diff --git a/xen/include/xen/acpi.h b/xen/include/xen/acpi.h
> index 57e710a16d90..90635ba0f322 100644
> --- a/xen/include/xen/acpi.h
> +++ b/xen/include/xen/acpi.h
> @@ -35,7 +35,7 @@
>    */
>   #define NUM_FIXMAP_ACPI_PAGES  64
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/errno.h>
>   #include <xen/list.h>
> @@ -202,6 +202,6 @@ static inline void acpi_dmar_zap(void) {}
>   static inline void acpi_dmar_reinstate(void) {}
>   #endif
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /*_LINUX_ACPI_H*/
> diff --git a/xen/include/xen/bitmap.h b/xen/include/xen/bitmap.h
> index b5e9cdd3db86..c69398a12796 100644
> --- a/xen/include/xen/bitmap.h
> +++ b/xen/include/xen/bitmap.h
> @@ -1,7 +1,7 @@
>   #ifndef __XEN_BITMAP_H
>   #define __XEN_BITMAP_H
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/lib.h>
>   #include <xen/types.h>
> @@ -290,6 +290,6 @@ int xenctl_bitmap_to_bitmap(unsigned long *bitmap,
>   int bitmap_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_bitmap,
>                               const unsigned long *bitmap, unsigned int nbits);
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* __XEN_BITMAP_H */
> diff --git a/xen/include/xen/bug.h b/xen/include/xen/bug.h
> index 0cabdba37992..044c059d6936 100644
> --- a/xen/include/xen/bug.h
> +++ b/xen/include/xen/bug.h
> @@ -14,7 +14,7 @@
>   
>   #include <asm/bug.h>
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/compiler.h>
>   #include <xen/macros.h>
> @@ -156,7 +156,7 @@ int do_bug_frame(const struct cpu_user_regs *regs, unsigned long pc);
>   
>   #endif /* CONFIG_GENERIC_BUG_FRAME */
>   
> -#endif /* !__ASSEMBLY__ */
> +#endif /* !__ASSEMBLER__ */
>   
>   #endif /* __XEN_BUG_H__ */
>   /*
> diff --git a/xen/include/xen/config.h b/xen/include/xen/config.h
> index 1d7195066c08..33e6aafa407b 100644
> --- a/xen/include/xen/config.h
> +++ b/xen/include/xen/config.h
> @@ -13,7 +13,7 @@
>   
>   #include <xen/kconfig.h>
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   #include <xen/compiler.h>
>   
>   #if defined(CONFIG_ENFORCE_UNIQUE_SYMBOLS) || defined(__clang__)
> diff --git a/xen/include/xen/const.h b/xen/include/xen/const.h
> index baf28ef14487..af228874025a 100644
> --- a/xen/include/xen/const.h
> +++ b/xen/include/xen/const.h
> @@ -12,7 +12,7 @@
>    * leave it unchanged in asm.
>    */
>   
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   #define _AC(X,Y)	X
>   #define _AT(T,X)	X
>   #else
> diff --git a/xen/include/xen/err.h b/xen/include/xen/err.h
> index a5971e290c16..4465468cdedf 100644
> --- a/xen/include/xen/err.h
> +++ b/xen/include/xen/err.h
> @@ -1,7 +1,7 @@
>   #ifndef XEN_ERR_H
>   #define XEN_ERR_H
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/compiler.h>
>   #include <xen/errno.h>
> @@ -43,6 +43,6 @@ static inline int __must_check PTR_RET(const void *ptr)
>   	return IS_ERR(ptr) ? PTR_ERR(ptr) : 0;
>   }
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* XEN_ERR_H */
> diff --git a/xen/include/xen/errno.h b/xen/include/xen/errno.h
> index 506674701fae..db9ef7f3e103 100644
> --- a/xen/include/xen/errno.h
> +++ b/xen/include/xen/errno.h
> @@ -1,18 +1,18 @@
>   #ifndef __XEN_ERRNO_H__
>   #define __XEN_ERRNO_H__
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #define XEN_ERRNO(name, value) name = (value),
>   enum {
>   #include <public/errno.h>
>   };
>   
> -#else /* !__ASSEMBLY__ */
> +#else /* !__ASSEMBLER__ */
>   
>   #define XEN_ERRNO(name, value) .equ name, value
>   #include <public/errno.h>
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /*  __XEN_ERRNO_H__ */
> diff --git a/xen/include/xen/init.h b/xen/include/xen/init.h
> index abf275f0eb72..0c921672c196 100644
> --- a/xen/include/xen/init.h
> +++ b/xen/include/xen/init.h
> @@ -54,7 +54,7 @@
>    * Also note, that this data cannot be "const".
>    */
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   /*
>    * Used for initialization calls..
> @@ -72,7 +72,7 @@ typedef void (*exitcall_t)(void);
>   void do_presmp_initcalls(void);
>   void do_initcalls(void);
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #ifdef CONFIG_LATE_HWDOM
>   #define __hwdom_init
> diff --git a/xen/include/xen/kimage.h b/xen/include/xen/kimage.h
> index 348f07f5c881..fccba1d88d5c 100644
> --- a/xen/include/xen/kimage.h
> +++ b/xen/include/xen/kimage.h
> @@ -7,7 +7,7 @@
>   #define IND_SOURCE       0x8
>   #define IND_ZERO        0x10
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/list.h>
>   #include <xen/mm.h>
> @@ -53,7 +53,7 @@ unsigned long kimage_entry_ind(kimage_entry_t *entry, bool compat);
>   int kimage_build_ind(struct kexec_image *image, mfn_t ind_mfn,
>                        bool compat);
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* __XEN_KIMAGE_H__ */
>   
> diff --git a/xen/include/xen/lib.h b/xen/include/xen/lib.h
> index c4ac4823920f..559e87636c02 100644
> --- a/xen/include/xen/lib.h
> +++ b/xen/include/xen/lib.h
> @@ -3,7 +3,7 @@
>   
>   #include <xen/macros.h>
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/inttypes.h>
>   #include <xen/stdarg.h>
> @@ -165,6 +165,6 @@ void cf_check dump_execstate(const struct cpu_user_regs *regs);
>   
>   void init_constructors(void);
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* __LIB_H__ */
> diff --git a/xen/include/xen/libfdt/fdt.h b/xen/include/xen/libfdt/fdt.h
> index f2e68807f277..57fe566306d0 100644
> --- a/xen/include/xen/libfdt/fdt.h
> +++ b/xen/include/xen/libfdt/fdt.h
> @@ -7,7 +7,7 @@
>    * Copyright 2012 Kim Phillips, Freescale Semiconductor.
>    */
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   struct fdt_header {
>   	fdt32_t magic;			 /* magic word FDT_MAGIC */
> diff --git a/xen/include/xen/linkage.h b/xen/include/xen/linkage.h
> index 3d401b88c1ad..4446eee5a8db 100644
> --- a/xen/include/xen/linkage.h
> +++ b/xen/include/xen/linkage.h
> @@ -1,7 +1,7 @@
>   #ifndef __LINKAGE_H__
>   #define __LINKAGE_H__
>   
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
>   
>   #include <xen/macros.h>
>   
> @@ -62,6 +62,6 @@
>   
>   #define ASM_INT(label, val)    DATA(label, 4) .long (val); END(label)
>   
> -#endif /*  __ASSEMBLY__ */
> +#endif /*  __ASSEMBLER__ */
>   
>   #endif /* __LINKAGE_H__ */
> diff --git a/xen/include/xen/macros.h b/xen/include/xen/macros.h
> index 6b4a8dc8b766..6e8ac8b45290 100644
> --- a/xen/include/xen/macros.h
> +++ b/xen/include/xen/macros.h
> @@ -38,7 +38,7 @@
>   #define __STR(...) #__VA_ARGS__
>   #define STR(...) __STR(__VA_ARGS__)
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   /* Force a compilation error if condition is true */
>   #define BUILD_BUG_ON(cond) ({ _Static_assert(!(cond), "!(" #cond ")"); })
> @@ -140,7 +140,7 @@
>   #define MIN(x, y) ((x) < (y) ? (x) : (y))
>   #define MAX(x, y) ((x) > (y) ? (x) : (y))
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* __MACROS_H__ */
>   
> diff --git a/xen/include/xen/multiboot.h b/xen/include/xen/multiboot.h
> index 6d7f2b767161..4acb614669c3 100644
> --- a/xen/include/xen/multiboot.h
> +++ b/xen/include/xen/multiboot.h
> @@ -43,7 +43,7 @@
>   #define MBI_LOADERNAME (_AC(1,u) << 9)
>   #define MBI_APM        (_AC(1,u) << 10)
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/stdint.h>
>   
> @@ -130,6 +130,6 @@ struct memory_map {
>   typedef struct memory_map memory_map_t;
>   
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* __MULTIBOOT_H__ */
> diff --git a/xen/include/xen/multiboot2.h b/xen/include/xen/multiboot2.h
> index 534b26444cc3..7c9180929e68 100644
> --- a/xen/include/xen/multiboot2.h
> +++ b/xen/include/xen/multiboot2.h
> @@ -113,7 +113,7 @@
>   #define MULTIBOOT2_FRAMEBUFFER_TYPE_RGB                 1
>   #define MULTIBOOT2_FRAMEBUFFER_TYPE_EGA_TEXT            2
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/stdint.h>
>   
> @@ -233,6 +233,6 @@ typedef struct {
>       uint32_t mod_end;
>       char cmdline[];
>   } multiboot2_tag_module_t;
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* __MULTIBOOT2_H__ */
> diff --git a/xen/include/xen/percpu.h b/xen/include/xen/percpu.h
> index e7f585c7ed69..fcf2095bd543 100644
> --- a/xen/include/xen/percpu.h
> +++ b/xen/include/xen/percpu.h
> @@ -29,7 +29,7 @@
>   
>   #include <asm/percpu.h>
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/types.h>
>   #include <asm/current.h>
> @@ -57,7 +57,7 @@ extern unsigned long __per_cpu_offset[];
>   
>   void percpu_init_areas(void);
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   /* Linux compatibility. */
>   #define get_cpu_var(var) this_cpu(var)
> diff --git a/xen/include/xen/pmap.h b/xen/include/xen/pmap.h
> index 93e61b10870e..b223fa919690 100644
> --- a/xen/include/xen/pmap.h
> +++ b/xen/include/xen/pmap.h
> @@ -4,13 +4,13 @@
>   /* Large enough for mapping 5 levels of page tables with some headroom */
>   #define NUM_FIX_PMAP 8
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   #include <xen/mm-frame.h>
>   
>   void *pmap_map(mfn_t mfn);
>   void pmap_unmap(const void *p);
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* __XEN_PMAP_H__ */
> diff --git a/xen/include/xen/softirq.h b/xen/include/xen/softirq.h
> index 48f17e49efa1..49da6974feb1 100644
> --- a/xen/include/xen/softirq.h
> +++ b/xen/include/xen/softirq.h
> @@ -1,7 +1,7 @@
>   #ifndef XEN_SOFTIRQ_H
>   #define XEN_SOFTIRQ_H
>   
> -#ifndef __ASSEMBLY__
> +#ifndef __ASSEMBLER__
>   
>   /* Low-latency softirqs come first in the following list. */
>   enum {
> @@ -58,6 +58,6 @@ void cpu_raise_softirq_batch_finish(void);
>    */
>   void process_pending_softirqs(void);
>   
> -#endif /* __ASSEMBLY__ */
> +#endif /* __ASSEMBLER__ */
>   
>   #endif /* XEN_SOFTIRQ_H */
>
> base-commit: 62bd4c2a8ee809c181d47098583270dc9db9300e


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 08:45:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 08:45:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177382.1501678 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR4yI-0003Jk-OX; Thu, 04 Dec 2025 08:45:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177382.1501678; Thu, 04 Dec 2025 08:45:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR4yI-0003Jd-Kf; Thu, 04 Dec 2025 08:45:54 +0000
Received: by outflank-mailman (input) for mailman id 1177382;
 Thu, 04 Dec 2025 08:45:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=anql=6K=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1vR4yG-0003JX-Ss
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 08:45:53 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a26c84aa-d0ed-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 09:45:50 +0100 (CET)
Received: from DUZP191CA0029.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4f8::17)
 by VI0PR08MB11549.eurprd08.prod.outlook.com (2603:10a6:800:2fc::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Thu, 4 Dec
 2025 08:45:46 +0000
Received: from DB5PEPF00014B9C.eurprd02.prod.outlook.com
 (2603:10a6:10:4f8:cafe::bf) by DUZP191CA0029.outlook.office365.com
 (2603:10a6:10:4f8::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Thu,
 4 Dec 2025 08:45:45 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B9C.mail.protection.outlook.com (10.167.8.170) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Thu, 4 Dec 2025 08:45:45 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by PAVPR08MB9308.eurprd08.prod.outlook.com (2603:10a6:102:303::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Thu, 4 Dec
 2025 08:44:41 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc%5]) with mapi id 15.20.9388.003; Thu, 4 Dec 2025
 08:44:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a26c84aa-d0ed-11f0-980a-7dc792cee155
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=JYYPkJ56QNMLcERezwP2JtA3tdHf1ok6AH3faMaJzVuckOzhUrTONE/2zjL/TNcApm1RjmhlCclqaCqMVXfvmh1Q7ZOrwxVLuE2Zmd0zDuJ5l8NKD3HA84iYsfD0HhPlSKxMFe/NLC7rBF2kWRdTnKiSl5bGEFKdixkQur4CkWWDPTfEwIqZC3gwtprfv58Vgjnr3etEJKCh+MUFyQxF5IW3UHgh0z3g0XY8szANs2yiOPloZCSMbi2joPxBtLjNxWzUVkEwAu/Ji5UO3Af8Xf1dqoutO7osxFkHsLz1dgjSFnsD73M7fIwsX1besHMUVRaH4B3EyzrzV+YANZw2jw==
ARC-Message-Signature: i=2; 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=ehfkvZHkUdLZkpqGnHzJx+s1dyrXJ5/mwH9i7SCxMRw=;
 b=WzdJoXjTnNq1HeKjiYj4ObrZEEiOqUHSI4esFDU3rePDYSX0IQvLye+3WHl4AzNE0Ss5FqX/EV29f1hjN+SP3AZ7uZzPCPYpSQWogAGLaN04F+QEzKHdaRIGEWrbSjH9yl7iJS7+jdgCyTJV9lew7E9ipXR6FwwmklPVgFx7bIq9LtuZtIfuO271lkmK2L22xSwCoy0oD8sVhUs9KL3TY84kCjA41mZXPt72UFSREa4h4lp6MXHepLRiSJu0vnIFLesCinXF4gEl+0uhyiyqA8ZPG8mZ3jBKn+mwwOAnZl7uwYUeBWwPLgxwi4Rz7vhjh8xI65ek8n7BVmKmtFL/Eg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=epam.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ehfkvZHkUdLZkpqGnHzJx+s1dyrXJ5/mwH9i7SCxMRw=;
 b=k167xQ4ij+LheTrprIMXjVXZRFXHlaDUj1eWOx/YabDByck6j3dkkRzb2v2F5RIRTr81VZSj4CBFCPTPb7COX4rQL2nPzsVkTaAO+GKpVqyvvZdNsDpPcA2CDhL5b7MeFPkAKfM3j1psfTEd8k7F2sBSJTif9YP0laObOUwLlTQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=j9uX1iY20emHCCKI/5vIwVqPaqwfqx4jCSt5EI9n5E5Qhu6xlr9m96mmvVbU75v/mB2JfZI6dAf6jY9WMV8QTAEqn1UHj9Rdoo7vZ9SijtLAAwX8tkar/f+Hkm8rgt1c4RozcfnANLOJ1UYQJM6XpwrinOwAAM67sawy0ZSoXdcZF8xo/cPZ7oWiFlAAJQJSL/Gwy95sFc+e0kYvOH/Vid0i6AU6RZqEd/1nTp8Bgb623N6QCyNsT4jCGtvSyzBmuGErN6L8xx8mBP8HUWTjbmiin8TGSmwJX7eq3Hp2ZvhJhRj2KerlunnKmVKCMhDLZTLjjs/aDCPVNXMYniuPWQ==
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=ehfkvZHkUdLZkpqGnHzJx+s1dyrXJ5/mwH9i7SCxMRw=;
 b=UD9qTc8kYrOs1FK1Di7PWgGC9957mxIj0oYZE3vKWlXhKAWy9uxXXjJA+m7J7ULsXnU3HBCiFRPCiDLfkFsv89RYYqv8UQTc9zBe84TD40ZccsyHAcuge0ckWPiqZv/UCeT7jV/kEtQ1yZy07CqJh8N3UJzxFxg1gshi9ZOyIij/lVrxkEoD3T+O4QLFwFNRtam0XSUwVCeyQ9pr5RN6cQDEgw2JHl1avj7vQua5ArMwtj20D7UD9ax02yHJ6qUsPyApZ6lZd6x/VHNI//+PyJ39Q26qLN/E4dOJgE/fdVXw55jBtt73WzXyfMzuuQmj/wKzrGZzCi9FqtbmluKFVA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ehfkvZHkUdLZkpqGnHzJx+s1dyrXJ5/mwH9i7SCxMRw=;
 b=k167xQ4ij+LheTrprIMXjVXZRFXHlaDUj1eWOx/YabDByck6j3dkkRzb2v2F5RIRTr81VZSj4CBFCPTPb7COX4rQL2nPzsVkTaAO+GKpVqyvvZdNsDpPcA2CDhL5b7MeFPkAKfM3j1psfTEd8k7F2sBSJTif9YP0laObOUwLlTQ=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
CC: Julien Grall <julien@xen.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH V2] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
Thread-Topic: [PATCH V2] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
Thread-Index: AQHcZIbKZWHMCLfhnk2g+3dibmJCCbUQaX2AgAAU4YCAAKzmgA==
Date: Thu, 4 Dec 2025 08:44:41 +0000
Message-ID: <9FB64A3E-D05F-49B0-B979-25894D25BBD9@arm.com>
References: <20251203185817.3722903-1-oleksandr_tyshchenko@epam.com>
 <6e83d3bc-c49c-49f4-9dbd-e994e53a62a7@xen.org>
 <44f6cb05-33c3-4937-b508-7616c36d0e4d@epam.com>
In-Reply-To: <44f6cb05-33c3-4937-b508-7616c36d0e4d@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|PAVPR08MB9308:EE_|DB5PEPF00014B9C:EE_|VI0PR08MB11549:EE_
X-MS-Office365-Filtering-Correlation-Id: d31ba91a-7b26-4c5c-1459-08de3311840c
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?Kylp546LLWs67EbUWpcztDzJLy4snaPI//eyMekgr9GqtrdanRXx3klwJkg3?=
 =?us-ascii?Q?/4hSSnoyELSTZ7pvDrclnoq0os9LRbFzd0J7/iDvX0gHEOubYLO1OKAl5Rvz?=
 =?us-ascii?Q?B16Zmg1xE+t2P1UKzGdSHqQMXdxtM25XpI/0Uh1M1XIIJeYVtCjYgKxhfg5m?=
 =?us-ascii?Q?RewKzZsyIBvPhHJ9dXf4tpc+B1LV3K4h3Fht+yKfzEboHm4u2MB/m6IpTJOp?=
 =?us-ascii?Q?F48xg5Ecj3/6rYf3gTRZkyJT8f1Wh1M7jXv4cFXyMokpFVHyy0H77e60rFbR?=
 =?us-ascii?Q?C3jb/tALbfqAQNG9Ebsj3cO8ASZ4eezHvSi37KwoSJDnOyZ1pMATNCv8OFoh?=
 =?us-ascii?Q?ULYROxbaPJVVF1gx0oAm1LuGkl0f8A5ryurvLOH7yeVIjCey7aDfu3zgPCMT?=
 =?us-ascii?Q?JTSKf0sjGLayTkh1tc0BIzdmR0zR41eeVY2wvtqZXunxDOcLKmng96jS0OFA?=
 =?us-ascii?Q?oVu2qge3v6ELmIeIdU0NATelGcQvlFgVEpYZwkiOIPYyW5ncCEfvOUn46A2w?=
 =?us-ascii?Q?M0Kv9LagtVAPmlhHV4mD5EYp+yvu6f8Yw3fKRU4KViVGTvcSxVthQhm3po6n?=
 =?us-ascii?Q?vIqEIVeUY9lKcio1T7T3b7qvXJ+uqUmBH2UBYJVbvZ/U55RZcuEPrILbenct?=
 =?us-ascii?Q?w7Yv4bLWPH4A70oK+JC3tugkzYEWkKCTmaJu2PXp/SV+03rs0wkJvvuWm9zb?=
 =?us-ascii?Q?8MRtpq8PyHSPTT7KXjAKOZoSV/LdkJqUJ4JPb7Uuxr39vwYPHl5DnC9igz+Y?=
 =?us-ascii?Q?jAscCksYbFoZykDe1IYYEhnPwiTj3GB9X2p28wmE6Ke6t61zS7/z8ewxiq1w?=
 =?us-ascii?Q?DnZCOoQ0vgelC4DDW5uwPBLP66fIREkGvjo4ibgH15vdgv8Jk/J/Dcv8+VnW?=
 =?us-ascii?Q?85stHHlqbhoTOvW8D08qAqhNrAV83+r7BIGMxSw13zdTlMMAK+d5euRPuok6?=
 =?us-ascii?Q?ZQVg1xo2LQsMT7ziZkBKP/QhK26wmKZQwFYD4bluNJZ8DY1opbNw4IG17Zx9?=
 =?us-ascii?Q?ndc4BJwnZHPV+/rt5HGyDVGHf9kY/cWy+9O4SfYgUt0onPmepdPHUV6c/qPY?=
 =?us-ascii?Q?BaUlXLvGGHpijrAkWsnSjLJalJgT1saZuIVWkFfFvwiiAian51oarhN+ETVr?=
 =?us-ascii?Q?poMDhRqmj5ysHPML2ACfjs4oW2DZrg5msixKbeg/lg4h/n3xy7XL1OonDPnZ?=
 =?us-ascii?Q?tg9Blo/Co9LH/eT9FgsQN3R4uzQ2cDriXplGHLjs6kvMJszh2keNMjrAzWpI?=
 =?us-ascii?Q?fSCw1OGBbFzk+azPefvse36IuPJclZRCYhKqS0NUSI5knBVIE6O+up49dSV6?=
 =?us-ascii?Q?K7VisydmhduxrfoQg6coX5L+m4FtjTYnI5UnvQhBFmG2y+vlBIRN2dsb0bOB?=
 =?us-ascii?Q?xf5dMYCU4P4omf2KRnkL1Qq3SFJ9Nfub7TvWYolsc+mPGSv8vRShNCTmZaVS?=
 =?us-ascii?Q?xrb2+fa/5vTlSlR2UdAG9tLPNfkY4xAflsn1ZJDJTho7TjMXSHI5+EGA4cls?=
 =?us-ascii?Q?mCASw+hlaKiZNKJy/3oms0492CSNiDa0wi14?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <D33BBF35600D434DA3765474B5BC7DAC@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9308
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B9C.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	c1eaf9c5-4147-4c3c-fb52-08de33115de4
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|14060799003|376014|35042699022|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?o8gP5/UW8W1ejwQpVQwE6vigOCG9wtVQ2DfYEaeMq7sNxcd2WXTcuA3RI71q?=
 =?us-ascii?Q?xCKlV9gNQ3IKUURRBLuR8gpk52R7AiimHFxgBVKJNllTTv/lBCi2zMTh+cKg?=
 =?us-ascii?Q?s1eBpRDBX+muLQRHJ6LJ+vD0IZGWHTAydcxHi6xvhJvbnwSl7RwSLIKj4YDG?=
 =?us-ascii?Q?W/jXZ+kIVhYj0WXzvSHQr/eAGJP2eEz8Ycja8LtZzaObYNeUELz/Rm6aCAWx?=
 =?us-ascii?Q?acpWDrNjQfM+xwlAwQse5+713Sp/WV4qCKL+IZ8uPUjEWRlZkp/ogUXjPMeg?=
 =?us-ascii?Q?+Ag0gCrQ/60u9rPYLjAXkTgG86XM2SyGxQlE3NIKAftQLyuxuZIRiB43ewyQ?=
 =?us-ascii?Q?buMsMQ46Xp9igDUnz4ZX6/EdKi4xQqp4PebzX5IjSqCFtNIfF8i/tHheHfXS?=
 =?us-ascii?Q?tSlCUdgaoknFyi+wdSbHhJVRggndcStpEdo7t6ee+W4GnSf+FTc3+4Rr8sdx?=
 =?us-ascii?Q?qWJmWf10vO2fRLYeRC8WjRQ3/NgE1msVLBGi8bta7/V3yUBPWZlwlOMkNHBE?=
 =?us-ascii?Q?V/BBhNQwu7WAQPVEzbFfFnOcIqhRLSAIoZl5F/GYiVWeclNCUi/qsKGZtyLm?=
 =?us-ascii?Q?C5lGR0m3ikfz29BdIjl83PHA6pTL6uHRcZQzYLynHiVsoAZUEd1iajPoxabc?=
 =?us-ascii?Q?OXMyHV6vitsixviJDCe4ZC+vcJ6cL7udhLPsuVI+63rVUm76K6AYe5QDvcAr?=
 =?us-ascii?Q?DZ1E0CCi7X6cvBC10b4tN4b7RK/7WafzXheJi/Mn1mjJ6fDOc7pj8Ne6lq3X?=
 =?us-ascii?Q?ISENw1oQNIXnGYpWD6nnQZwe+TpP1iYrAeGhMNWfbCjB8O6ARQrt//bTFsEs?=
 =?us-ascii?Q?Gh5yTjoGRLFXrh/iCTThJN7gihEmr9W5dVOfH2x/kL/BrcCw5i+J/mGekXg5?=
 =?us-ascii?Q?fF/viClSIbfd2/bQEimf/FUk9QOACm7YHnnNNYr3H0/vy+u4oYyZ/goE12BR?=
 =?us-ascii?Q?nXPn5+yN+7No9fsfo97fArrGZU439FFNzdcrlCvqrF0UAbAU/3NLarA2+MLA?=
 =?us-ascii?Q?H3HDhPdK2Nvf7c5BdGay0GAyIXxeEx/O3seC+HllHeD7vHAccU+rPXhScZyY?=
 =?us-ascii?Q?LarwkXzp08MCpRkSZYWtNE6krXqJbY6+ypAiSzYPk7KIV7qP5ded+qchu98n?=
 =?us-ascii?Q?/jBxvJSt+yVcYJ/654gYS48q1pkSrIoWdcnG3kWw1u/QIDoLwdR/mmx1Cwqo?=
 =?us-ascii?Q?pU0g03MYU4QmbjzGmpkZabiWqSZD75T86STCDEXI+N5gVFl3O+UUeUAhnxUB?=
 =?us-ascii?Q?8fXr/bWz3j2rXE4SZUdoel2njvgmCRjsR+RC4kQz36wXMB5jEuD9foCtT7ou?=
 =?us-ascii?Q?WNmu0WnqY7MhZTqbfcrl8aBMZsMjDMC7V9xaRmEPy4TMSCSbjec8ygtjLOeb?=
 =?us-ascii?Q?DtlbBmSy8lYnhyo94ytCQKda+5g0Zom89Y6aCmSxA39WMr6Xg0EA7cdOGUdZ?=
 =?us-ascii?Q?RgEx74rLSUTNeSVcpcQ3lPfScNY6RStQ+afgFZECX+IjGIxq6nv4ogSvm1Au?=
 =?us-ascii?Q?VSAaYcq5QmtMfIlgYYOpeZoofbNPcSXsVQJx+834BIUNM9Jrsv8TbLmlRVJW?=
 =?us-ascii?Q?ABJPQYofqvdpF8qYgPA=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(14060799003)(376014)(35042699022)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2025 08:45:45.5057
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d31ba91a-7b26-4c5c-1459-08de3311840c
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B9C.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB11549

Hi Oleksandr,

>=20
>>=20
>>>    */
>>> -#define DOMU_DTB_SIZE 4096
>>> +#define DOMU_DTB_SIZE (2048 + (MAX_VIRT_CPUS * 128))
>>=20
>> On Arm32, MAX_VIRT_CPUS is 8. This means the new DOMU_DTB_SIZE is going=
=20
>> to be smaller than 4096. Why is it ok?
>=20
> You are correct to question the impact on Arm32, where MAX_VIRT_CPUS is=20
> smaller, leading to a calculated buffer size of 3072 bytes, which is=20
> less than the original 4096 bytes.
>=20
> Unfortunately, I have no possibility to test on Arm32. But, I do not see=
=20
> much difference between Arm64 and Arm32 in the context of DomU device=20
> tree generation by looking into the code.

Let me know what kind of test you need, we have some arm32 setup here (not =
HW, virtual platforms).

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Thu Dec 04 08:53:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 08:53:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177393.1501687 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR55x-0004xo-FL; Thu, 04 Dec 2025 08:53:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177393.1501687; Thu, 04 Dec 2025 08:53:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR55x-0004xh-Cn; Thu, 04 Dec 2025 08:53:49 +0000
Received: by outflank-mailman (input) for mailman id 1177393;
 Thu, 04 Dec 2025 08:53:48 +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
 <SRS0=8VGT=6K=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vR55w-0004xb-Pb
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 08:53:48 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bf269d5a-d0ee-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 09:53:47 +0100 (CET)
Received: from DU2PR04CA0340.eurprd04.prod.outlook.com (2603:10a6:10:2b4::12)
 by AS1PR08MB7425.eurprd08.prod.outlook.com (2603:10a6:20b:4c6::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Thu, 4 Dec
 2025 08:53:41 +0000
Received: from DB1PEPF000509F2.eurprd02.prod.outlook.com
 (2603:10a6:10:2b4:cafe::c9) by DU2PR04CA0340.outlook.office365.com
 (2603:10a6:10:2b4::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Thu,
 4 Dec 2025 08:53:41 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509F2.mail.protection.outlook.com (10.167.242.148) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Thu, 4 Dec 2025 08:53:41 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by VI1PR08MB10007.eurprd08.prod.outlook.com (2603:10a6:800:1cc::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Thu, 4 Dec
 2025 08:52:35 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d%4]) with mapi id 15.20.9388.003; Thu, 4 Dec 2025
 08:52:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf269d5a-d0ee-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=ynvbXKl0wBoFpHplPTSL71m0MLNirOzeZ1molteLLN7S1TPAJqeEiQWUaBbTDd7fgBzH6LRfg20mj+rxKpfdps8lq4CczwS0O9juTME4JXEZ26Mb5MgzyZDM8V7978SeeiGkSjE2wBTd51F9wQY9xkR9EYlk6MJKmj2yq838pRWWKJsv1/PJvshqBmM6OvVW8PvUxy5FAdjLoA4uy02Zk+xwmRYWKxrufwStPu3hTjrsfl53Vi8cRfPR1jbujEaEgpkg8nQmUMiq44lsT6IWql+Ynq9Fx15l4+0lYRZEFUCMtLYfVaVm+lydnMRpXOdPkVGylES+KfSeKCyrUVx9oQ==
ARC-Message-Signature: i=2; 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=rDWqyrcgjfAa0KpmzmBNpTdkuFH5QEA9lwuQvK+KgGc=;
 b=th6jJWRpuQ2yDMMjUaN/OUlN3GqTUEprS/PzwoyfYZ5rHPu8Bnm6HHwat7Pdk3CiHy73vYqbiYi4FybwI5sHuu6rW49PEu08L6/qPlYMDoT+CsHvDDzdH2wHD0/UUUjQhBRRRtVbNXi8Mf5CB56athfeWjJ6wB/6dGIrv2iVgVblRcyr7AyjkCbGVSl3WoFM+og9+7C3Tzk6uDeGlL/fsIGQgFhiVun2E1lpG1Te2H717Wllx9tlrTE+Usjpzf2s5NXEZ4z2WD3S6cZHn/jFsaNHtjQpv1jX7B24ZRyNS0EWC/slZ6zitW6i5CS5sNs5yT4lbRQJvDVoqUPpNqeowg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rDWqyrcgjfAa0KpmzmBNpTdkuFH5QEA9lwuQvK+KgGc=;
 b=mfay2wRWyiI0Ps5+2hV0O+EkpO8Uj2yzhobczC1E7R41KWmEvXzVK+h6enrM+2bzfy0tW9gtPTLcIDkuGFQe8vE9Jz8d4UAgj9W+0qMk2sJbtsaYiwJ8Kuv9v+aMN0jDwFZ6PaUYF17vNMFVQT++ZBR7klojzL0Q7LsoFnsrA4g=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ypi5RdjWeaWFNKjX+KxX7eAcpbghMSxxTvXdoymdGeBP8k1Nd32Zbi30z21ck/Ao+z4PEfc7YHCGIW/SJW0OfPd1/pJydP8DsGk5hGvjqpyMbmPl3svpqO/2VjWruuIO7PO0QjuEN8i3TvH+kgW7baAlhVAH37KpfuPU3xXCk9fV65CwVAHpYHkFX1DuhwUdrpbMCVfqjhpfapBh1CtwCWtzbaE17/avHzY3ctev3QviQtlYSN4HDSbHccMuYXv/RP8Wxzm6P+9vQ5EAaAxYOFfykKvfU3eKBTPnG5H8l7Fctb6WlMDKcgEIt10cLgWGtw5Oq3kmVL5+Bh6xoEdW9A==
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=rDWqyrcgjfAa0KpmzmBNpTdkuFH5QEA9lwuQvK+KgGc=;
 b=gyg1r9U9Kmvt7MscChKVq3BOn46w8m/iVDG9SW6MQZOKMRg93u1fudY/f62SVO2cII+rkWkk10S/vjSBYvyVhnJAkVoRF+TmFhW/VhRgqMDZTLmcnXFRHFVJtAWr52K6VuMAZbLb9n7SJwtaa9OUNcnmQJqU1cBzTNshXFLbJxzfb0n3RS6TPoIWarsw2EtsHPfr6aRsrTgtM35/tgoGNftv1tk8GYoclmVMLONWiJaDHSvEbdiQXdqadwuhuWCi6ed3rEwRYsnkJxYU5qcq9mHFjhf/bZynO4gjAujkXiM3n6L+gn34yqcmq4ftmW/Qb3fiXh3VKKuSZ+R/yBpXSA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rDWqyrcgjfAa0KpmzmBNpTdkuFH5QEA9lwuQvK+KgGc=;
 b=mfay2wRWyiI0Ps5+2hV0O+EkpO8Uj2yzhobczC1E7R41KWmEvXzVK+h6enrM+2bzfy0tW9gtPTLcIDkuGFQe8vE9Jz8d4UAgj9W+0qMk2sJbtsaYiwJ8Kuv9v+aMN0jDwFZ6PaUYF17vNMFVQT++ZBR7klojzL0Q7LsoFnsrA4g=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 10/10] xen/arm: ffa: advertise FF-A v1.2
Thread-Topic: [PATCH 10/10] xen/arm: ffa: advertise FF-A v1.2
Thread-Index: AQHcX7X0Biqt31cxnESztYOGDz/aZLURKIIAgAAOsAA=
Date: Thu, 4 Dec 2025 08:52:35 +0000
Message-ID: <F2593494-070C-41FD-A52B-5121CB03FD42@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
 <8ae9b12641301ecfafa7ddee3e60544d3fa45c40.1764254975.git.bertrand.marquis@arm.com>
 <CAHUa44ERxthL+pfXnLVZqfOmqvK747owroouv6uqHfTw+=QCkw@mail.gmail.com>
In-Reply-To:
 <CAHUa44ERxthL+pfXnLVZqfOmqvK747owroouv6uqHfTw+=QCkw@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.200.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|VI1PR08MB10007:EE_|DB1PEPF000509F2:EE_|AS1PR08MB7425:EE_
X-MS-Office365-Filtering-Correlation-Id: 538dcf30-2add-4933-d13d-08de33129f98
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|10070799003|376014|366016|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?TzBBWVpDUXlmaDY1MHdqVnMweXM4YWlBSnNPZEtCN0oxQW14dEN0ZHlDQzMz?=
 =?utf-8?B?eFk0K3g4eHhsZGU0ZHpybHRHMktzcEhKak94d1BCOVFsYVNZcTJPZXJBWXgy?=
 =?utf-8?B?NTBjZE01OGwyOFZoMU1UWm95bzYraHp4dENQU0xWSGhQcG9FbjJmendxVkFz?=
 =?utf-8?B?bHlDMU5mejM1ZVFCQXhJZklXUFowOXIweVorTXZpVmZ5NERlL3E3WkR3SzFn?=
 =?utf-8?B?c3psSVlDNlMzOTU5Uy9HdUtFNkx0ZzBqMTd4Q0cxUkt0N0F0T1lvYkJ5ZTBD?=
 =?utf-8?B?Y29Za2d3Z0NHYm1aQWhRRmdtaHNBWmV0UVlnSEovbmhBeU95SmVDcHhxbVhr?=
 =?utf-8?B?ZEMvSE42TVlKN3ZDZUFQNVdoVktQQ2Q2U2xqbThQS0R5eThFZlppcEFJWFpi?=
 =?utf-8?B?dHN6RU9INzhBVnlvei9iVzJQSkNFNCsxZVFCYlFNM3M0U0FLTVg4RTVFSzEx?=
 =?utf-8?B?cStxUlpzUFRuZHNlbmFCaTN3UFNXdHh3aU4rQWpwZ2tiWnB1MDdWalFndS9K?=
 =?utf-8?B?NW1reUhKL2crb29pSlBaakpjUitKTlp4Y09xU3VJQ3dSWWttTjVIMHRPQmdN?=
 =?utf-8?B?UFVyOEU2ZHcyUDk1YzFIQXFMaVJXLzBPWXhLUUovZUM0bk9NMEZDUy8zRmZy?=
 =?utf-8?B?ZWJLSXljYjlNQktPaGFUeGJoem5UMk1BS3lSWjVLV1BGaDJRVFBWdnpLT0lI?=
 =?utf-8?B?dFhkWGcxWG5ZT05IQlRXbVFnQVNFOEtIV3FoQklWM0pJSVZKdnBBUkFBR3ow?=
 =?utf-8?B?eTRGUkdSU1NDbTdRc2x4OElZak9JaGRmYXZWVlkyS3NXZGl0S0M3YXFDRUly?=
 =?utf-8?B?bDBBbncwamdvWFRGRTdFdnJqNmEzNGtuVFF3YVFadGc4T1RrNWx1azlyZkN1?=
 =?utf-8?B?eGl3d2NUdVBDU2cxSUdNTVFpeVhNd08wTlcxeHR3WHBXUFpaYXVDSWF2UVpO?=
 =?utf-8?B?MmZnOTNvUmxzT3gySWJHRDhZNGZnWEVUTC9NUGlqSldYUDUxODJObGJxSGVm?=
 =?utf-8?B?QkovV1psWFBuZHYwNmpOWEZzUmNjQlJnT2NhNUtQVXRIbWIvaHMxSzBSelhj?=
 =?utf-8?B?czQ4OSs3ZDc1elM2amtFa2FqMm5tb3FLWkVkelhwaFVKMmJFSXIwUGFReGVo?=
 =?utf-8?B?ODBFajFjSmVCS3lldlRJVXVwSlkweVByZzF6aEEwQ0ZOaEo0YURlbWM2QlJk?=
 =?utf-8?B?WTYyWmtuTzdhNWpHNWJkOXBNNGdZTFM1L210MFlEYTBjaDZlZXBtUjBwUi83?=
 =?utf-8?B?YTM5WklKUDRzV3A0cG5UakhPb0lVb1FmOUJoN3ptbEhRazFFZ2dTM25OOGVx?=
 =?utf-8?B?aVNkcHVZNFdCVVk5Y0lWWENkOEU1ZGxvcVlqbjFYVnNoRmNxQlU0L3ZXWXRx?=
 =?utf-8?B?U1RkcmVkVjk4Lzc4dVhUUXN3L3I4MjU2ZUk0QjV5bHlRMTBYYlFOMUloZTZx?=
 =?utf-8?B?OVhVcUh5S1NtREFhb1dNWXhvdTdOT3R0aThVOVBBZDlMK3krVE1uaGwyMm5R?=
 =?utf-8?B?S2JvVUtRdnVGUjB6ejRScC9GMzhVZEFRdGtPTE55UFZJU0RRRjFZT0ZmMmxs?=
 =?utf-8?B?UTlsKzBWTS9wUmhOcStDcUsxKzdrS2FQRFhnS2RwSzFUVlJpNVpoRzRnTXhv?=
 =?utf-8?B?MjJUUmN1UUdUMFd4NEMwcjNuRXg4a01aWE02Z21mL0UxVVI3OE1hL2Y3ZHEy?=
 =?utf-8?B?Y1lzWit0Z1NtVEJVTW1PWE1sL0d3eXh0NVg5SVBaWXFBMHhnWUVwd1h4U242?=
 =?utf-8?B?ZEpCWCtyWHV4VnNTL2FWZyt5S2w4b2JuKzhsZm9pZ3dnSGRGc3Vpb3QwL2p5?=
 =?utf-8?B?RWdIYUM5VStja2FIdHlSYjF1MDlYVllpYXNKSVUrdGk4NG13UXBHMkdPaTlK?=
 =?utf-8?B?RXJwNnFVeDJrNHNtUE84NktlTVBGVkZpRWZlY0NzeENadmc5aFRuN2VTQ2lu?=
 =?utf-8?B?WEtLZkNXSnEwTlZWaDd1cDRRZzJpYm8wSENMTERNS3BRR1JTVyszR0ZkbVAv?=
 =?utf-8?B?ZCtubURBVS8wUnF4cGRRNzFUNVZ6MEx2N2FpMSt1bHl4ZUtIYXdpRXBlckR3?=
 =?utf-8?Q?NuFAGW?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <2208D63307BB1F40A2BFA193D460D080@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB10007
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509F2.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	47bfbb25-98a0-4d68-0432-08de3312782a
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|14060799003|35042699022|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MUtrdDlLUi9QWm5mWWpsSTZnZDNkSEsvblNIcFo3bDdzNDc3ZmtQWS9aQjFq?=
 =?utf-8?B?Z2ZxWjE2dFl0ZFVMaVdDRm1COElkUWM2V0NNM3dMWnorOGowRXFWWE5qVFFQ?=
 =?utf-8?B?anM1RzlCdlBRY1dYK09xMjBzcVBCaXQyQjhmN3ZnK0NLWTBtaXdRMTZseUsz?=
 =?utf-8?B?TFQxOXBqQUdRVDU1NFltZ2sxUXVIMnVGTmRXUEZQQmsvOWRZV2ZOYmlLMi9O?=
 =?utf-8?B?V1RHSGk2aGZFSitHNUZvNnRteWpQbkZKQXJiUDY4MHorV24rMFdsVnhhUGZ3?=
 =?utf-8?B?SlFPM2x5OVJmU2hVWVVOWEQyaks0SllYSWhEajlxWEZTTzg5NkpTVnhvbGo1?=
 =?utf-8?B?cjExazVLL1QxdS9rVVhneDg4a1BDWDJQbmVXT0xxallCa0NZdFV1Qm9FYkJC?=
 =?utf-8?B?bkhod3hzdjgwYXQrMjYxSlluWTBaU2Rac1o3WkpNbUhab21pYk0vUEdrdStu?=
 =?utf-8?B?b0VYaE9XQXREVGV1MjNkYUh1UXVPbkplcDNacVA3WTZaaEJ0cnR4enV1Nmsx?=
 =?utf-8?B?MFI5YU4xbXpMNXFKUjA2WU5ldGNBU0RpOTVqK04ra01PRjg0V1ZCN1dORFBz?=
 =?utf-8?B?dkltMHNiV003a1ZsOFI0OHprQTdlOFZxd0twNTB0dmdPaWN6bytabTJQajBm?=
 =?utf-8?B?RHRpRXArTlRNRk9CVTFJMVNHdTc3dUdzaG9hcW5JRkFQRDhhNW9DUEhrc2Ez?=
 =?utf-8?B?cGpxZGhCWklLYlNQaG5MMXBvSzBEelVpb0MzaTdoNnRCMGkwQU55YkJoeVJH?=
 =?utf-8?B?SUpldzJyZllNWkExUnJSVnd0YmFkRUZUNjg5NFI1QUJJUGxBd0ZKelNRVmI1?=
 =?utf-8?B?RnZ1ZDVpZ3p1NzFnOGJ5MFJXVTkwSWJaVnBtNTFOVlFEVlJUbXFMM0Y5TGd6?=
 =?utf-8?B?TmN6YkRMdGlVcnJuZ2sxQ2U3WkZ0V1BFaHF5L2JmajNiN3h6aUdZV3cyNldD?=
 =?utf-8?B?NVBoU04yOFJyQi9SVDJ1bDNObUF6QVZlN0hLNFQ2UjNxcjJVVWJJZHlURkJS?=
 =?utf-8?B?cDBJMTdLeVNRbmhoaCtWT0hzeWRLRzh6Z0hpRU90ZUxHWStRdXdGUGViM216?=
 =?utf-8?B?enF6SzhYeCtLS2MreFlMckU5OFRhUTlDVDhJaVh1OG5tRlo5dFpBY0lXQi9G?=
 =?utf-8?B?TTdJbXRidWY5NGE0YkRVSTlCbGJodjVPVnlLVTJTTEMrMTgyeXlaTDVwTkJv?=
 =?utf-8?B?ZVlLMndDQXc0Z0dxYm5DYThpbW9nNG9URTRpV3hMLzVwa01XRHFYMGs2eG9Y?=
 =?utf-8?B?cWszUStvd3QvdGM3VHN5TVpVR2E0a3dPSEhkZGN4QkhJMUNXT0wrNW1zMm9y?=
 =?utf-8?B?TjBvRTNDNEh4bS9SbkdwSU9KTmJGU0VEb1lRSmNyL0IxWllrSUdLc3JEN3FO?=
 =?utf-8?B?djZvQWZleUtEWnZlR01WSmhXdWZZdUdWMkZ5VCtVKzIxb1Vrdk55VVpjc1NQ?=
 =?utf-8?B?TTVBbmJsVVRnKzRJOTlLOTZManZmMTNVTi9MQVpwYjAxR2FhNnE0R2dsN24z?=
 =?utf-8?B?K2g2Q3RQd1dRd21vTUxqaVNvZGV0Q2NMd1huWnNZOFhhaXVaN241WFJTdDRi?=
 =?utf-8?B?TjZPM0h4cWQwV1VSK2xaNzRETFpubWRuRk40Qm8zT3VQZHpOUy9GVU1VbVQy?=
 =?utf-8?B?MXJiOVRUcGRkNjBiZ0Nhd2VpMHJFRnozaUJKMUtaTXhlaXNPSEQ3TFJSWmtU?=
 =?utf-8?B?UlVkcWpNQ1pmQWtmczh3MDR6Q3ZLbXVseVI1TXRYV0pPZW5mQUltUjQzb0ph?=
 =?utf-8?B?Wjh2NkZYZUw2SHUzTXBwaUYrM3puUUx3ZEk1bkM3NlZmajdkUUR1UWpEbjc4?=
 =?utf-8?B?U1gzSVBzZFZBSWY5NUNBdFoyRFVWZXVEWUJRVG8wUXBxbXlwS1cvRUErYVcw?=
 =?utf-8?B?cHZJNVhGU1hlNW9ZMXZXZy9hMXZ6QUl3Zk8wdkdINDdxdkZlOFJDNENkYWhp?=
 =?utf-8?B?VVdJK2hnYXJoamg2NDI2SEZVWDVoSTBKS1hISVByRE5KUWF3blpBU0V5Zmh3?=
 =?utf-8?B?VlhtRE5VN2xVSjUzMVFTUGIzTUtsNFNmeE5BTjl4N2dJRjBaMXBBVENVWHRz?=
 =?utf-8?B?cTlQcll6ck5wdVNUc0JkakVVM0Vqdm53NkJDbm96ZTI3SDk5bmpndHpycHlU?=
 =?utf-8?Q?AXOY=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(14060799003)(35042699022)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2025 08:53:41.2092
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 538dcf30-2add-4933-d13d-08de33129f98
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF000509F2.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR08MB7425

SGkgSmVucywNCg0KPiBPbiA0IERlYyAyMDI1LCBhdCAwODo1OSwgSmVucyBXaWtsYW5kZXIgPGpl
bnMud2lrbGFuZGVyQGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gSGkgQmVydHJhbmQsDQo+IA0K
PiBPbiBUaHUsIE5vdiAyNywgMjAyNSBhdCA0OjUz4oCvUE0gQmVydHJhbmQgTWFycXVpcw0KPiA8
YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPiB3cm90ZToNCj4+IA0KPj4gQWR2ZXJ0aXNlIFJVTi9Z
SUVMRC9JTlRFUlJVUFQgdmlhIEZGQV9GRUFUVVJFUyBub3cgdGhhdCB0aGUgcnVudGltZQ0KPj4g
aGVscGVycyBhcmUgaW4gcGxhY2UsIGFuZCBleHBvc2UgdGhlIFJYL1RYIE1BUCBjYXBhY2l0eSBm
aWVsZCBvbmx5IG9uY2UNCj4+IGEgZ3Vlc3QgaGFzIG5lZ290aWF0ZWQgRkYtQSB2MS4yLg0KPj4g
DQo+PiBXaGlsZSB0aGVyZSwgZHJvcCB0aGUgc3RhbGUgPGFzbS90ZWUvZmZhLmg+IGluY2x1ZGUu
DQo+PiANCj4+IFRvIGNvbXBseSB3aXRoIHRoZSB3aWRlciB2MS4yIHJlZ2lzdGVyIEFCSSwgemVy
byByZWdpc3RlcnMgeDjigJN4MTcgd2hlbg0KPj4gcmVzcG9uZGluZyB0byBhIHYxLjIgVk0uIFRo
ZSBkaXNwYXRjaGVyIGFsc28gcmVqZWN0cyBTTUNDQzY0IGNhbGxzIGZyb20NCj4+IEFBcmNoMzIg
Z3Vlc3RzLg0KPj4gDQo+PiBGaW5hbGx5LCBidW1wIFhlbidzIEZGLUEgdmVyc2lvbiB0byAxLjIu
DQo+PiANCj4+IFNpZ25lZC1vZmYtYnk6IEJlcnRyYW5kIE1hcnF1aXMgPGJlcnRyYW5kLm1hcnF1
aXNAYXJtLmNvbT4NCj4+IC0tLQ0KPj4geGVuL2FyY2gvYXJtL3RlZS9mZmEuYyAgICAgICAgIHwg
MjUgKysrKysrKysrKysrKysrKysrKystLS0tLQ0KPj4geGVuL2FyY2gvYXJtL3RlZS9mZmFfcHJp
dmF0ZS5oIHwgMjggKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQ0KPj4gMiBmaWxlcyBjaGFu
Z2VkLCAzOSBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkNCj4+IA0KPj4gZGlmZiAtLWdp
dCBhL3hlbi9hcmNoL2FybS90ZWUvZmZhLmMgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYS5jDQo+PiBp
bmRleCA4YjJmMDQyMjg3ZmMuLmM4ZmU5Nzg1NmQwNiAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNo
L2FybS90ZWUvZmZhLmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhLmMNCj4+IEBAIC0y
NCw5ICsyNCw2IEBADQo+PiAgKiBvIEZGQV9NRU1fRE9OQVRFXyogYW5kIEZGQV9NRU1fTEVORF8q
IC0gVXNlZCB3aGVuIHRyYW5mZXJyaW5nIG93bmVyc2hpcA0KPj4gICogICBvciBhY2Nlc3Mgb2Yg
YSBtZW1vcnkgcmVnaW9uDQo+PiAgKiBvIEZGQV9NU0dfU0VORDIgYW5kIEZGQV9NU0dfV0FJVCAt
IFVzZWQgZm9yIGluZGlyZWN0IG1lc3NhZ2luZw0KPj4gLSAqIG8gRkZBX01TR19ZSUVMRA0KPj4g
LSAqIG8gRkZBX0lOVEVSUlVQVCAtIFVzZWQgdG8gcmVwb3J0IHByZWVtcHRpb24NCj4+IC0gKiBv
IEZGQV9SVU4NCj4+ICAqDQo+PiAgKiBMaW1pdGF0aW9ucyBpbiB0aGUgaW1wbGVtZW50ZWQgRkYt
QSBpbnRlcmZhY2VzOg0KPj4gICogbyBGRkFfUlhUWF9NQVBfKjoNCj4+IEBAIC02OCw3ICs2NSw2
IEBADQo+PiAjaW5jbHVkZSA8YXNtL2V2ZW50Lmg+DQo+PiAjaW5jbHVkZSA8YXNtL3JlZ3MuaD4N
Cj4+ICNpbmNsdWRlIDxhc20vc21jY2MuaD4NCj4+IC0jaW5jbHVkZSA8YXNtL3RlZS9mZmEuaD4N
Cj4+ICNpbmNsdWRlIDxhc20vdGVlL3RlZS5oPg0KPj4gDQo+PiAjaW5jbHVkZSAiZmZhX3ByaXZh
dGUuaCINCj4+IEBAIC0yNjIsNiArMjU4LDkgQEAgc3RhdGljIHZvaWQgaGFuZGxlX2ZlYXR1cmVz
KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4gICAgIGNhc2UgRkZBX01TR19TRU5EX0RJ
UkVDVF9SRVFfMzI6DQo+PiAgICAgY2FzZSBGRkFfTVNHX1NFTkRfRElSRUNUX1JFUV82NDoNCj4+
ICAgICBjYXNlIEZGQV9NU0dfU0VORDI6DQo+PiArICAgIGNhc2UgRkZBX1JVTjoNCj4+ICsgICAg
Y2FzZSBGRkFfSU5URVJSVVBUOg0KPj4gKyAgICBjYXNlIEZGQV9NU0dfWUlFTEQ6DQo+PiAgICAg
ICAgIGZmYV9zZXRfcmVnc19zdWNjZXNzKHJlZ3MsIDAsIDApOw0KPj4gICAgICAgICBicmVhazsN
Cj4+ICAgICBjYXNlIEZGQV9NU0dfU0VORF9ESVJFQ1RfUkVRMjoNCj4+IEBAIC0yOTAsNyArMjg5
LDE2IEBAIHN0YXRpYyB2b2lkIGhhbmRsZV9mZWF0dXJlcyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAq
cmVncykNCj4+ICAgICAgICAgICogZGlmZmVycyBmcm9tIEZGQV9QQUdFX1NJWkUgKFNaXzRLKS4N
Cj4+ICAgICAgICAgICovDQo+PiAgICAgICAgIEJVSUxEX0JVR19PTihQQUdFX1NJWkUgIT0gRkZB
X1BBR0VfU0laRSk7DQo+PiAtICAgICAgICBmZmFfc2V0X3JlZ3Nfc3VjY2VzcyhyZWdzLCAwLCAw
KTsNCj4+ICsNCj4+ICsgICAgICAgIC8qDQo+PiArICAgICAgICAgKiBGcm9tIEZGQSB2MS4yLCB3
ZSBjYW4gZ2l2ZSB0aGUgbWF4aW11bSBudW1iZXIgb2YgcGFnZXMgd2Ugc3VwcG9ydA0KPj4gKyAg
ICAgICAgICogZm9yIHRoZSBSWC9UWCBidWZmZXJzLg0KPj4gKyAgICAgICAgICovDQo+PiArICAg
ICAgICBpZiAoIGN0eC0+Z3Vlc3RfdmVycyA8IEZGQV9WRVJTSU9OXzFfMiApDQo+PiArICAgICAg
ICAgICAgZmZhX3NldF9yZWdzX3N1Y2Nlc3MocmVncywgMCwgMCk7DQo+PiArICAgICAgICBlbHNl
DQo+PiArICAgICAgICAgICAgZmZhX3NldF9yZWdzX3N1Y2Nlc3MocmVncywgRkZBX01BWF9SWFRY
X1BBR0VfQ09VTlQgPDwgMTYsIDApOw0KPj4gKw0KPj4gICAgICAgICBicmVhazsNCj4+ICAgICBj
YXNlIEZGQV9GRUFUVVJFX05PVElGX1BFTkRfSU5UUjoNCj4+ICAgICAgICAgZmZhX3NldF9yZWdz
X3N1Y2Nlc3MocmVncywgR1VFU1RfRkZBX05PVElGX1BFTkRfSU5UUl9JRCwgMCk7DQo+PiBAQCAt
MzIzLDYgKzMzMSwxMyBAQCBzdGF0aWMgYm9vbCBmZmFfaGFuZGxlX2NhbGwoc3RydWN0IGNwdV91
c2VyX3JlZ3MgKnJlZ3MpDQo+PiAgICAgaWYgKCAhY3R4ICkNCj4+ICAgICAgICAgcmV0dXJuIGZh
bHNlOw0KPj4gDQo+PiArICAgIGlmICggIWlzXzY0Yml0X2RvbWFpbihkKSAmJiBzbWNjY19pc19j
b252XzY0KGZpZCkgKQ0KPiANCj4gWW91IHVzZSBjdHgtPmlzXzY0Yml0IGluIGZmYV9zZXRfcmVn
cygpIGJlbG93LCBidXQgaGVyZQ0KPiBpc182NGJpdF9kb21haW4oZCkuIFdoaWNoIG9uZSBkbyB3
ZSBwcmVmZXI/DQoNCkl0IHdvdWxkIGRlZmluaXRlbHkgYmUgbW9yZSBjb2hlcmVudCB0byB1c2Ug
Y3R4LT5pc182NGJpdC4NCg0KSSB3aWxsIGZpeCB0aGF0IGluIG5leHQgdmVyc2lvbi4NCg0KQ2hl
ZXJzDQpCZXJ0cmFuZA0KDQo=


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 09:05:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 09:05:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177411.1501698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR5HO-0006oT-NR; Thu, 04 Dec 2025 09:05:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177411.1501698; Thu, 04 Dec 2025 09:05:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR5HO-0006oM-Jf; Thu, 04 Dec 2025 09:05:38 +0000
Received: by outflank-mailman (input) for mailman id 1177411;
 Thu, 04 Dec 2025 09:05:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8VGT=6K=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vR5HN-0006oG-0z
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 09:05:37 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 64726840-d0f0-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 10:05:34 +0100 (CET)
Received: from AS4P191CA0023.EURP191.PROD.OUTLOOK.COM (2603:10a6:20b:5d9::19)
 by DB9PR08MB6635.eurprd08.prod.outlook.com (2603:10a6:10:254::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Thu, 4 Dec
 2025 09:05:31 +0000
Received: from AMS0EPF00000193.eurprd05.prod.outlook.com
 (2603:10a6:20b:5d9:cafe::8e) by AS4P191CA0023.outlook.office365.com
 (2603:10a6:20b:5d9::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.11 via Frontend Transport; Thu,
 4 Dec 2025 09:05:26 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF00000193.mail.protection.outlook.com (10.167.16.212) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Thu, 4 Dec 2025 09:05:30 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by VI0PR08MB10828.eurprd08.prod.outlook.com (2603:10a6:800:204::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.11; Thu, 4 Dec
 2025 09:04:26 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d%4]) with mapi id 15.20.9388.003; Thu, 4 Dec 2025
 09:04:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 64726840-d0f0-11f0-980a-7dc792cee155
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=CaOyQzN7kqsRnHjNqqniBBHifUT+6Oz8Bu3jCU1IlEsNzEff5AW8K9i6k17arqKoh7cg+wL3s5VR7xhWlKVSkLnV1BDsWOAS23kyEEwofhb1P0YDKPRqGJByhiSLRV+ecuctP93HGoA8ReytXDRf983NQQNKRx/COpRmZmgBgkqxCXPhwHDK/Xl8MTbYTvPMNyS00yc4MTJrQqFnigxcr534hZKTgyhw+zG5d9sbZdGutUb43Gcx7lmdKOgShZwwXxwbaNiuOsQf/S2sZMP4YgSxET9DdIs/sQf4Mrpjo5rS8MZZFmbx5h2MV8SWYAQ3V4Qg/SVh4LD3RjRWUhOtvg==
ARC-Message-Signature: i=2; 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=zHWEXAD6RCbnQoRj9KlX2IrqkoFJrOxOWkpVO8W/bVE=;
 b=Ap4j60IQ6wta9FAtYw+uaphUXQKP5H7lrWqFyZs20ZnwDUW6EoY8Lqq16mQbTHs+Oe+Yi9T4P4+Uzvx1JksJMFmD5XuFPAldv6BpgeE8UJZBLVtUVNuV5g3s42sLJQc/1GQb0+rReFUsS26sd0AbbdVCKiPldPxcTdh1+V9CePkfhy31qxjtbG7julyq1IPlGLgKTl1KcjjTdUUm1rOlaAykpab+pbm7LvKF5h0Prgqqj0oRGqvu9wjqwCowB02XEnIEFqyjpqPPg0MuEg4/fPffkrkxVxL8ae+WqgL69M74ZRSf4udZhH7+f9FZdKdFzf09pAPoDDTdruxyA3j6BA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zHWEXAD6RCbnQoRj9KlX2IrqkoFJrOxOWkpVO8W/bVE=;
 b=S4tKnGKCFvh9CzAMx9RWirjSOHwWJhW3uFXx9RlWEQQ8B02nIVF2LF+iQBLvKtfcJqCJJr4LfFi/dBZ6FMQz5dIomkpkfQ1tK4wGrUQg9dU2Sm2dqqHWfQEzKl+OSJkjvxifpygnrjNbXCi83HF2PWRe9bY9iGaYEWr13PnJyjY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TxMG7l8mW+dtGouuiIxQJVzAFKqfEwBy9wu7cX9mqAuBY8uvv+JhR4T6JtDEltiguPV1Wy+4a6SRtOfYzIFeykNuTc6edjyZu/JkPSCeEqilNkkKfr59mlkIPq69L1BphFvgE6nDu9fSnDAUgSDfmoljYVHXP/EmYyetyU98OFhD9WOKQvlga7TidSEJdA88f/P0WlVPsLsk9Lxf0f6FRFfYA5+Ig20EjLQEPZdETcaEtEtnKgPJNNzQoALASVyaazwhyUU0axWiVZLaz3CBgpajoQoQdOEV7ArFF3/cSXMzr6X/r7QEJKXyNkDVhDhTOI1yMTZtqsEZaqnouUoxgQ==
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=zHWEXAD6RCbnQoRj9KlX2IrqkoFJrOxOWkpVO8W/bVE=;
 b=tolRNWOiuDLhNIm/tCQcbE8IzMvVVaYOMsrN+E0HkL4y4EkakM0/CoPY9G8oB3iDmn5KM+Hpp9ViixdlanYueL59h67hhiybFFGitp/k0r1f3Zt3osZrGc+/ru6+2+rPYzRlIJrhq4JIEX/q5/HQ2knqlYnz2NSIKBUjYoKjzHwoWvr+DFRchtdndPJYA8EVCop5/8wXPUIauS46qATvjKeitz+MgKNYetdB3UdQ8z+dxGHt1ih9HhqgTbc2I31pX4HM262yomRLpvmP41UUO1QAKFhfpH7iWbCEUXi2b95bkUIPhzhX+NnfawHccYL8mfJSWxdAaYp4fRE1I4aQSg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zHWEXAD6RCbnQoRj9KlX2IrqkoFJrOxOWkpVO8W/bVE=;
 b=S4tKnGKCFvh9CzAMx9RWirjSOHwWJhW3uFXx9RlWEQQ8B02nIVF2LF+iQBLvKtfcJqCJJr4LfFi/dBZ6FMQz5dIomkpkfQ1tK4wGrUQg9dU2Sm2dqqHWfQEzKl+OSJkjvxifpygnrjNbXCi83HF2PWRe9bY9iGaYEWr13PnJyjY=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 08/10] xen/arm: ffa: add v1.2 SEND2 header layout
Thread-Topic: [PATCH 08/10] xen/arm: ffa: add v1.2 SEND2 header layout
Thread-Index: AQHcX7chemRTAZm0AECGA5ix0BasKrUQJx4AgAETYYA=
Date: Thu, 4 Dec 2025 09:04:25 +0000
Message-ID: <CBF5B9E0-2EEA-4CD1-ADAF-3EB05DEF850A@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
 <769c7ad291abe47d7991b878b131f9b31d4f0954.1764254975.git.bertrand.marquis@arm.com>
 <CAHUa44EBeb+9+_JfwX4iLyEbnEE1dxuRvV5_reUtHM0XejG_SQ@mail.gmail.com>
In-Reply-To:
 <CAHUa44EBeb+9+_JfwX4iLyEbnEE1dxuRvV5_reUtHM0XejG_SQ@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.200.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|VI0PR08MB10828:EE_|AMS0EPF00000193:EE_|DB9PR08MB6635:EE_
X-MS-Office365-Filtering-Correlation-Id: ae49f26b-f760-4dc1-c2c3-08de3314465e
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|10070799003|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?Z3N2VGgvZW52K3ZVZDNmdUR5UjB4Q0o4bzFuNDFibC9OMkl4d3JUQ1lpaTVx?=
 =?utf-8?B?WGl6VFRlZ25VdCtieHZPeFp0dCtIRUJRbjRzZVBKbDRLYjFGNWRZbytDMStF?=
 =?utf-8?B?NEp5bGNRVnpaeWx4K205RmdtanpDSmZiK3YxcVEvUktRbnBQTEt3d0JYVGxm?=
 =?utf-8?B?eTlIRGZCOFA1REl0MVFLZ1IxNGs1bjBwR0RpZWhEV1J6RDZNNjNYTjBxRCt6?=
 =?utf-8?B?T1BFbnZuOU4ydzFBQVg4NWxUN0NzUEpFYVhueklqR09tNEoxWGZ1UHdCRmRL?=
 =?utf-8?B?dU5JQkdlNjlDSkJNVC8wUk55Y3ZrdnZnbmNBWlkva2tESk91REVKaWFOVXN3?=
 =?utf-8?B?d0tBaVNKWlhvYXpVb2FxT05IbS9ESGlvcmorRHZBQ0NMN3R3ZEh5bnRldWJj?=
 =?utf-8?B?K2R6T0RheWVoRnJCd0tLeVlSYkg2bEhZVUJ6WHg2cGI2YXd5M1ZlVGcxL3NT?=
 =?utf-8?B?ZEp6bUFkZVZtbDYzQkRWcW5qMGl1Ri9GTFp0aVB1cktaM0JyNGtQNVRPcGNu?=
 =?utf-8?B?Y3JyRWQyUmYrOFJINi9iZ05pSTFsVlArQlZDOG9zejRQOWtGVGlnQU1hamVD?=
 =?utf-8?B?TGVTVnlzMjl3TXR5ZHdaU1hUcXpJdTM5dG9MeUQ3UExETVdLYUpid1YxOStK?=
 =?utf-8?B?WEdVeEtVc0E5LzVmOHFHUXJtSGpGNzBtZHc2ZHF1UE1qTjFkUmZXUU1EL0lG?=
 =?utf-8?B?eWNSU1Q1dHRmTFgzWkRPMFN6aFMvellOaWEvcXpnY2x0VnlwdGRVL3Arb2d0?=
 =?utf-8?B?dVE1a1FSaVllb3pSbDBtd3E4VXM0QmNlbDBlTStuQ1QwUGx0VkJ0UmMyay9w?=
 =?utf-8?B?YWV1MDFOVm82aWFUQzUrbHNjUklaR1lFL0F3Rk5GZlZGZEgvVUhEcDJYQzlX?=
 =?utf-8?B?SEdTODBrakk3bWVocXJDOEc5clJOOE5sUlFpemw2ZHJKdW5KYlVZc2FwZXRk?=
 =?utf-8?B?WDdiSm9nM1N2NlNLSnFiQ1pZWUE4Sm1HQUtyQ3hNMUxURW5SYmFUejUyRVNZ?=
 =?utf-8?B?QmI2MFZDMnNVb3lMcEtUTlVKNHFCMTRGTzB1RDhGckZaOVZCQXdRWWJpa01j?=
 =?utf-8?B?Wlk1anFWL1RaaEJoT2hTd21KVU5wY1Y0Y3dzM1ZTcDdJaWVER0YwTS9UNGJ0?=
 =?utf-8?B?ZlhIREJLLzNkcDFuNDJ4VHF3Sm5SODdkRDEySkRsOVNHbjFoUzB3cXNEUVdw?=
 =?utf-8?B?ME1mS1VYMXFLamFKMzEwV1JHVUQ2VkZnczhyZDJNbmJWajB6VndCUDY2VXF4?=
 =?utf-8?B?WjF2cVVMT05Bam8yUDNtdUgzaXpNN09hMFlsdTZxS2RjUVpkZXRQZlk3bEU0?=
 =?utf-8?B?bWl6TkV4WFpuUTFOUmRaaHBzLzM5RkErZ1hWcHd2dFV3YkVrTUsvMmJuYXpp?=
 =?utf-8?B?OFdQZ2krdHF1YmQveUpKNU5PVXVxczFNUjJERTBVTHVGa0xQWGIrSTFQdXBT?=
 =?utf-8?B?YXRldTB2eWdOU0VLUzV6SUd0SG1mbzZHS1A0aGVPRlo1Z2RVdStGKzFYbUp4?=
 =?utf-8?B?cmQ0OVE4TVdFbW9Wdkt2TWh1dyt4YWdhMGg5cXNNTGpUMDJ4V3pKMzdsY2Ri?=
 =?utf-8?B?VUtoVXZRQnRsYWtMWnBUL0JMYmJTZkFaRXk0S3RURlo1dVphY2xwZlNWMVlU?=
 =?utf-8?B?cVYvc2NDYXJBbEVvSHBjVUlCMjgwSHA4dHhCcy81VVVNQXFHVzB3YmxreFdV?=
 =?utf-8?B?SElaNTNLd1FGbVJFWFVab1l2Z2ZaM0J0NmdPdjRIYVZxdHo3bHFGWmJaeW00?=
 =?utf-8?B?Wk5iaDVHNzNxd2lvbFZUVnFXV2RxZXlVZjBYWjJneWdSd2tRRXRnTks2N05X?=
 =?utf-8?B?MXlSKzV4R1c1M1N3RWQ4R25wSDBROHhPTTRKa2dFOEFTODNoMjJIWjVWNGhy?=
 =?utf-8?B?ODE4VVpJRjNRcUZvSC81eVRja2F4NnhwdUhMRm9tOXN4S0QyTHRBL01uYm9m?=
 =?utf-8?B?VzRhQzdDRU9BcWF1Y1BTdm9zOG9HbWxxbVloU1ZPUnFMZVpvd0JYRDZGcGFv?=
 =?utf-8?B?V1hWSGkraUxhSjNzSkJ4NW9NVXJlTlkwMzkxeWNFSS95ejUxNnpXUmZFaG1X?=
 =?utf-8?Q?PXwTam?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(10070799003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <5B5A9F2F49C1B547B59BE3213ED5692C@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB10828
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF00000193.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	6dc22417-49de-451e-764e-08de33141fd5
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|35042699022|82310400026|14060799003|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Yi8rQU5QN0dlRkl5YVJ6KytCVHErVmRqb1ZqaEJqNnp6RTBrVjlzRjNVT0k2?=
 =?utf-8?B?US9PR0ZEYXZzSjVzaXpFTmQ5Q1krM25mRkpHbVlPdndHZmsrTHludmhXZGZM?=
 =?utf-8?B?UE9vaHplK0l2R0lwYUNxN0tKM1ZlVW5IK1o5M21TZy9XR2hsRFc3TTFyZHBU?=
 =?utf-8?B?NEN4N2F2OUdjOGR4MmtUa1BPU0NqbUNLaG9iRTBRTTZNdGxEeStic0JNYVlu?=
 =?utf-8?B?QnNaNFdIbW9SU1VGL0RQMkdaM1pueHBnaGVIa0RiOEhzUGUxSVI0bTk2VFU3?=
 =?utf-8?B?c256c1Z3VTRXZHpnM3FodVNROFFLSHJjYndqRkI5QitHNnptUVRuOXhBSk8w?=
 =?utf-8?B?dEN5MGlkWE9yWjFlbmlYaHNaMHRxQU5ONFpUZ0JNWlF3d0llUVhKNHp4amdH?=
 =?utf-8?B?azYraTgvMzM3cEJTaWpVSERqdTFZRjRSTHJoWEJRaW5lbHhYRG05YmlvWTJX?=
 =?utf-8?B?NGRaRldEQlUxQXVNMkNzL25Qd3RBZ1FLR1ErM0dNWXgyZm51YkpjNGZtY1Fa?=
 =?utf-8?B?Q2M4Y0xqN09lRUZSQ2RHMGNaSVNyN3NzenFsT0dwcFgyR1BjcEZDQlI2cnJW?=
 =?utf-8?B?S254Mk9TOW9OVmN0NytpQjZMNkNUdmNlY3J4b1U1SFZxSGhlNmxJNm44NVVi?=
 =?utf-8?B?WVRjY0sydEo1aG5zQWp6VFRHelMwd0JjdjNlelY4WDdnS2t5ellKeVo5NHJ0?=
 =?utf-8?B?a0J1Y2xCLzJhb3BHbXRNaGkzcFR4T3U3Z0piOXYzSyt3ZnBtRVg2MUNHZDhG?=
 =?utf-8?B?ZWNqZXNpeGFlaTVtNlhhMTdaWWh4UndGQmVvdHdrajVXQncySEJDdTJBMTB0?=
 =?utf-8?B?N3hXMFZWQXMwZUJDZ1ZvRkpEZThDWkFJMmh2QkNEVC85dDRTMTJ4RVRJMFlV?=
 =?utf-8?B?SVZ1K0pKQmZ0UU90TFphYXZJNzJweXpOZ1lJNjlMSkVvWEsxN3hjYmlzN3ll?=
 =?utf-8?B?OHNsTWk2UWJ4NEZld1lEdSsrQjJHbkxuanBFa2gwZm9VV21OSHRjNi8xa01k?=
 =?utf-8?B?czdJZXh3QUYrQ2xna1YzYmRYV1gwZXJLR1pMODExOTJ0OXViNjdxakUwL25h?=
 =?utf-8?B?RjNiMVpMdWhjbjZTb3JkWlV2K1VCNHBkcmJhalg1VDNIbHJLWnpmK2RmMUhG?=
 =?utf-8?B?NjZxMDNhNy8reHV5cmdtUWJDL3BFNW5tUlJhUW9oUjZsWlJzUVpMREcyOXpO?=
 =?utf-8?B?NFV4N0ZmWGYxdHBGSnROUkZGV2MwUi94dzN3d3B0cENFNlU3S2NhejlsbmZY?=
 =?utf-8?B?VUMyV1pVZFBlb09pMWlweHN5TG9ZK3c1RnpTWmN1Q1FJbGZOMUpoWWg3Ym9D?=
 =?utf-8?B?YTh2RTZJSHhYVjBDY00yK21FUWVpVldoazRLV3BuL2Y4aVdDMlRzemRaVFlx?=
 =?utf-8?B?elBydDF3eW1ZR1pxZWxHZjI1OVhZVmhhQnZ0cjgwTENZK1ptUEhsRXBHS1VY?=
 =?utf-8?B?WkRxZ1pYZzVFOHdISy9pTWNEU0d5TXdtdEVtbzlsZStMQnFZclRTNzczbE9E?=
 =?utf-8?B?MVl2NEErWk5sVXc0RmdpWFBST3ZZQVFqdVg0ZDBWN3A3OEZtTUdzQ2VpVlBn?=
 =?utf-8?B?QVpqb2NKRStZamRHK0E3SjJqUkFma2lHNmRVNVRQQjZZZmhXd2xsUTAwOW9p?=
 =?utf-8?B?aFdDeHNXa1o0aDg0TmxuTFN2VUZ3Mmw2TEx6dkVQUFZEYWhOSExyVmUva2Jj?=
 =?utf-8?B?NDJKODc2U1REM2UveUpMT1U4bVR2ZElreVRPdTJZOWJsVWl5bFV3Q3pncUZQ?=
 =?utf-8?B?bHFBQWl4MU9ES2ZsVXZDeHJFbWtudnBScVRsZ3RYMEI3ZzBSSDJWSGFQREkx?=
 =?utf-8?B?RGNNS2FGckErbS80UXRPQnoxRkVNTkVNSW9QQURvSHd0Nm9EblZPOEVFOEhp?=
 =?utf-8?B?WDhHSS9wbDRMNFA3V0gvdVkwc0trU1VtVWlaNEVqMkhVeEdYSDNER3ZxTFhO?=
 =?utf-8?B?Uy8yZ0JTODlvd2N4V20wbjZaNjJ2bnpaVFFGbm16M29JaFFLTHo4RXNwaVlM?=
 =?utf-8?B?akFRMnpTQzdFMlJoSjJtWFVLUXZPbjdObW00OGRDRUlPWDViS0JZditlMCtB?=
 =?utf-8?B?NEFsdjkyZ0VORE1PQmExQjdHVU4vaEptWmV5NGRFcUFVMVlnL29JYUFLUHla?=
 =?utf-8?Q?7lio=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(35042699022)(82310400026)(14060799003)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2025 09:05:30.5227
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ae49f26b-f760-4dc1-c2c3-08de3314465e
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF00000193.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6635

SEkgSmVucywNCg0KPiBPbiAzIERlYyAyMDI1LCBhdCAxNzozOCwgSmVucyBXaWtsYW5kZXIgPGpl
bnMud2lrbGFuZGVyQGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gSGkgQmVydHJhbmQsDQo+IA0K
PiBPbiBUaHUsIE5vdiAyNywgMjAyNSBhdCA0OjUz4oCvUE0gQmVydHJhbmQgTWFycXVpcw0KPiA8
YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPiB3cm90ZToNCj4+IA0KPj4gVGVhY2ggdGhlIFNFTkQy
IHBhdGggYWJvdXQgdGhlIGRpc3RpbmN0IEZGLUEgdjEuMSBhbmQgdjEuMiBSWC9UWCBoZWFkZXIN
Cj4+IGxheW91dHMgc28gd2UgY2FuIHByb3BhZ2F0ZSB0aGUgMTI4LWJpdCBVVUlEcyBpbnRyb2R1
Y2VkIGluIHYxLjIuDQo+PiANCj4+IFZNLXRvLVZNIFNFTkQyIGNhbGxzIG5vdyBidWlsZCB0aGUg
bGFyZ2VyIHYxLjIgaGVhZGVyLCB6ZXJvaW5nIHRoZSBVVUlEDQo+PiBmaWVsZHMgZm9yIHYxLjEg
c2VuZGVycywgYW5kIHRoZSBkaXNwYXRjaGVyIHZhbGlkYXRlcyBtZXNzYWdlcyB1c2luZw0KPj4g
dGhlIHYxLjEgaGVhZGVyIGxheW91dCB0byBrZWVwIGxlZ2FjeSBndWVzdHMgd29ya2luZy4NCj4+
IA0KPj4gU2lnbmVkLW9mZi1ieTogQmVydHJhbmQgTWFycXVpcyA8YmVydHJhbmQubWFycXVpc0Bh
cm0uY29tPg0KPj4gLS0tDQo+PiB4ZW4vYXJjaC9hcm0vdGVlL2ZmYV9tc2cuYyB8IDU1ICsrKysr
KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tDQo+PiAxIGZpbGUgY2hhbmdlZCwgNDIg
aW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pDQo+PiANCj4+IGRpZmYgLS1naXQgYS94ZW4v
YXJjaC9hcm0vdGVlL2ZmYV9tc2cuYyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhX21zZy5jDQo+PiBp
bmRleCA4YmI0YmQ5M2Y3MjQuLjQ3MmJmYWQ3OWRkMyAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNo
L2FybS90ZWUvZmZhX21zZy5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9tc2cuYw0K
Pj4gQEAgLTEzLDcgKzEzLDcgQEANCj4+ICNpbmNsdWRlICJmZmFfcHJpdmF0ZS5oIg0KPj4gDQo+
PiAvKiBFbmNvZGluZyBvZiBwYXJ0aXRpb24gbWVzc2FnZSBpbiBSWC9UWCBidWZmZXIgKi8NCj4+
IC1zdHJ1Y3QgZmZhX3BhcnRfbXNnX3J4dHggew0KPj4gK3N0cnVjdCBmZmFfcGFydF9tc2dfcnh0
eF8xXzEgew0KPj4gICAgIHVpbnQzMl90IGZsYWdzOw0KPj4gICAgIHVpbnQzMl90IHJlc2VydmVk
Ow0KPj4gICAgIHVpbnQzMl90IG1zZ19vZmZzZXQ7DQo+PiBAQCAtMjEsNiArMjEsMTYgQEAgc3Ry
dWN0IGZmYV9wYXJ0X21zZ19yeHR4IHsNCj4+ICAgICB1aW50MzJfdCBtc2dfc2l6ZTsNCj4+IH07
DQo+PiANCj4+ICtzdHJ1Y3QgZmZhX3BhcnRfbXNnX3J4dHhfMV8yIHsNCj4+ICsgICAgdWludDMy
X3QgZmxhZ3M7DQo+PiArICAgIHVpbnQzMl90IHJlc2VydmVkOw0KPj4gKyAgICB1aW50MzJfdCBt
c2dfb2Zmc2V0Ow0KPj4gKyAgICB1aW50MzJfdCBzZW5kX3JlY3ZfaWQ7DQo+PiArICAgIHVpbnQz
Ml90IG1zZ19zaXplOw0KPj4gKyAgICB1aW50MzJfdCByZXNlcnZlZDI7DQo+PiArICAgIHVpbnQ2
NF90IHV1aWRbMl07DQo+PiArfTsNCj4+ICsNCj4+IHN0YXRpYyB2b2lkIGZmYV9maW5pc2hfZGly
ZWN0X3JlcV9ydW4oc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsDQo+PiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBhcm1fc21jY2NfMV8yX3JlZ3MgKnJlcSkN
Cj4+IHsNCj4+IEBAIC0xMDQsMTIgKzExNCwxMiBAQCBvdXQ6DQo+PiAgICAgZmZhX3NldF9yZWdz
X2Vycm9yKHJlZ3MsIHJldCk7DQo+PiB9DQo+PiANCj4+IC1zdGF0aWMgaW50MzJfdCBmZmFfbXNn
X3NlbmQyX3ZtKHVpbnQxNl90IGRzdF9pZCwgY29uc3Qgdm9pZCAqc3JjX2J1ZiwNCj4+IC0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBmZmFfcGFydF9tc2dfcnh0eCAqc3Jj
X21zZykNCj4+ICtzdGF0aWMgaW50MzJfdCBmZmFfbXNnX3NlbmQyX3ZtKHN0cnVjdCBmZmFfY3R4
ICpzcmNfY3R4LCB1aW50MTZfdCBkc3RfaWQsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdHJ1Y3QgZmZhX3BhcnRfbXNnX3J4dHhfMV8yICpzcmNfbXNnKQ0KPj4gew0KPj4g
ICAgIHN0cnVjdCBkb21haW4gKmRzdF9kOw0KPj4gICAgIHN0cnVjdCBmZmFfY3R4ICpkc3RfY3R4
Ow0KPj4gLSAgICBzdHJ1Y3QgZmZhX3BhcnRfbXNnX3J4dHggKmRzdF9tc2c7DQo+PiArICAgIHN0
cnVjdCBmZmFfcGFydF9tc2dfcnh0eF8xXzIgKmRzdF9tc2c7DQo+PiAgICAgaW50IGVycjsNCj4+
ICAgICBpbnQzMl90IHJldDsNCj4+IA0KPj4gQEAgLTE0Miw3ICsxNTIsNyBAQCBzdGF0aWMgaW50
MzJfdCBmZmFfbXNnX3NlbmQyX3ZtKHVpbnQxNl90IGRzdF9pZCwgY29uc3Qgdm9pZCAqc3JjX2J1
ZiwNCj4+IA0KPj4gICAgIC8qIHdlIG5lZWQgdG8gaGF2ZSBlbm91Z2ggc3BhY2UgaW4gdGhlIGRl
c3RpbmF0aW9uIGJ1ZmZlciAqLw0KPj4gICAgIGlmICggKGRzdF9jdHgtPnBhZ2VfY291bnQgKiBG
RkFfUEFHRV9TSVpFIC0NCj4+IC0gICAgICAgICAgc2l6ZW9mKHN0cnVjdCBmZmFfcGFydF9tc2df
cnh0eCkpIDwgc3JjX21zZy0+bXNnX3NpemUgKQ0KPj4gKyAgICAgICAgICBzaXplb2Yoc3RydWN0
IGZmYV9wYXJ0X21zZ19yeHR4XzFfMikpIDwgc3JjX21zZy0+bXNnX3NpemUgKQ0KPj4gICAgIHsN
Cj4+ICAgICAgICAgcmV0ID0gRkZBX1JFVF9OT19NRU1PUlk7DQo+PiAgICAgICAgIGZmYV9yeF9y
ZWxlYXNlKGRzdF9kKTsNCj4+IEBAIC0xNTQsMTIgKzE2NCwyNCBAQCBzdGF0aWMgaW50MzJfdCBm
ZmFfbXNnX3NlbmQyX3ZtKHVpbnQxNl90IGRzdF9pZCwgY29uc3Qgdm9pZCAqc3JjX2J1ZiwNCj4+
ICAgICAvKiBwcmVwYXJlIGRlc3RpbmF0aW9uIGhlYWRlciAqLw0KPj4gICAgIGRzdF9tc2ctPmZs
YWdzID0gMDsNCj4+ICAgICBkc3RfbXNnLT5yZXNlcnZlZCA9IDA7DQo+PiAtICAgIGRzdF9tc2ct
Pm1zZ19vZmZzZXQgPSBzaXplb2Yoc3RydWN0IGZmYV9wYXJ0X21zZ19yeHR4KTsNCj4+ICsgICAg
ZHN0X21zZy0+bXNnX29mZnNldCA9IHNpemVvZihzdHJ1Y3QgZmZhX3BhcnRfbXNnX3J4dHhfMV8y
KTsNCj4+ICAgICBkc3RfbXNnLT5zZW5kX3JlY3ZfaWQgPSBzcmNfbXNnLT5zZW5kX3JlY3ZfaWQ7
DQo+PiAgICAgZHN0X21zZy0+bXNnX3NpemUgPSBzcmNfbXNnLT5tc2dfc2l6ZTsNCj4+ICsgICAg
ZHN0X21zZy0+cmVzZXJ2ZWQyID0gMDsNCj4+IA0KPj4gLSAgICBtZW1jcHkoZHN0X2N0eC0+cngg
KyBzaXplb2Yoc3RydWN0IGZmYV9wYXJ0X21zZ19yeHR4KSwNCj4+IC0gICAgICAgICAgIHNyY19i
dWYgKyBzcmNfbXNnLT5tc2dfb2Zmc2V0LCBzcmNfbXNnLT5tc2dfc2l6ZSk7DQo+PiArICAgIGlm
ICggc3JjX2N0eC0+Z3Vlc3RfdmVycyA8IEZGQV9WRVJTSU9OXzFfMiApDQo+PiArICAgIHsNCj4+
ICsgICAgICAgIGRzdF9tc2ctPnV1aWRbMF0gPSAwOw0KPj4gKyAgICAgICAgZHN0X21zZy0+dXVp
ZFsxXSA9IDA7DQo+PiArICAgIH0NCj4+ICsgICAgZWxzZQ0KPj4gKyAgICB7DQo+PiArICAgICAg
ICBkc3RfbXNnLT51dWlkWzBdID0gc3JjX21zZy0+dXVpZFswXTsNCj4+ICsgICAgICAgIGRzdF9t
c2ctPnV1aWRbMV0gPSBzcmNfbXNnLT51dWlkWzFdOw0KPj4gKyAgICB9DQo+PiArDQo+PiArICAg
IG1lbWNweShkc3RfY3R4LT5yeCArIHNpemVvZihzdHJ1Y3QgZmZhX3BhcnRfbXNnX3J4dHhfMV8y
KSwNCj4+ICsgICAgICAgICAgIHNyY19jdHgtPnR4ICsgc3JjX21zZy0+bXNnX29mZnNldCwgc3Jj
X21zZy0+bXNnX3NpemUpOw0KPj4gDQo+PiAgICAgLyogcmVjZWl2ZXIgcnggYnVmZmVyIHdpbGwg
YmUgcmVsZWFzZWQgYnkgdGhlIHJlY2VpdmVyKi8NCj4+IA0KPj4gQEAgLTE3NSwxMSArMTk3LDE3
IEBAIGludDMyX3QgZmZhX2hhbmRsZV9tc2dfc2VuZDIoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJl
Z3MpDQo+PiB7DQo+PiAgICAgc3RydWN0IGRvbWFpbiAqc3JjX2QgPSBjdXJyZW50LT5kb21haW47
DQo+PiAgICAgc3RydWN0IGZmYV9jdHggKnNyY19jdHggPSBzcmNfZC0+YXJjaC50ZWU7DQo+PiAt
ICAgIHN0cnVjdCBmZmFfcGFydF9tc2dfcnh0eCBzcmNfbXNnOw0KPj4gKyAgICAvKg0KPj4gKyAg
ICAgKiBzcmNfbXNnIGlzIGludGVycHJldGVkIGFzIHYxLjIgaGVhZGVyLCBidXQ6DQo+PiArICAg
ICAqIC0gZm9yIHYxLjEgZ3Vlc3RzLCB1dWlkW10gaXMgaWdub3JlZCBhbmQgbWF5IGNvbnRhaW4g
cGF5bG9hZCBieXRlcw0KPj4gKyAgICAgKiAtIGZvciB2MS4yIGd1ZXN0cywgdXVpZFtdIGNhcnJp
ZXMgdGhlIEZGLUEgdjEuMiBVVUlEIGZpZWxkcw0KPj4gKyAgICAgKi8NCj4+ICsgICAgc3RydWN0
IGZmYV9wYXJ0X21zZ19yeHR4XzFfMiBzcmNfbXNnOw0KPj4gICAgIHVpbnQxNl90IGRzdF9pZCwg
c3JjX2lkOw0KPj4gICAgIGludDMyX3QgcmV0Ow0KPj4gDQo+PiAtICAgIEJVSUxEX0JVR19PTihz
aXplb2Yoc3RydWN0IGZmYV9wYXJ0X21zZ19yeHR4KSA+PSBGRkFfUEFHRV9TSVpFKTsNCj4+ICsg
ICAgQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3QgZmZhX3BhcnRfbXNnX3J4dHhfMV8xKSA+PSBG
RkFfUEFHRV9TSVpFKTsNCj4+ICsgICAgQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3QgZmZhX3Bh
cnRfbXNnX3J4dHhfMV8yKSA+PSBGRkFfUEFHRV9TSVpFKTsNCj4+IA0KPj4gICAgIGlmICggIXNw
aW5fdHJ5bG9jaygmc3JjX2N0eC0+dHhfbG9jaykgKQ0KPj4gICAgICAgICByZXR1cm4gRkZBX1JF
VF9CVVNZOw0KPj4gQEAgLTE5MCwxNCArMjE4LDE1IEBAIGludDMyX3QgZmZhX2hhbmRsZV9tc2df
c2VuZDIoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpDQo+PiAgICAgc3JjX2lkID0gc3JjX21z
Zy5zZW5kX3JlY3ZfaWQgPj4gMTY7DQo+PiAgICAgZHN0X2lkID0gc3JjX21zZy5zZW5kX3JlY3Zf
aWQgJiBHRU5NQVNLKDE1LDApOw0KPj4gDQo+PiAtICAgIGlmICggc3JjX2lkICE9IGZmYV9nZXRf
dm1faWQoc3JjX2QpICkNCj4+ICsgICAgaWYgKCBzcmNfaWQgIT0gZmZhX2dldF92bV9pZChzcmNf
ZCkgfHwNCj4+ICsgICAgICAgICBkc3RfaWQgPT0gZmZhX2dldF92bV9pZChzcmNfZCkgKQ0KPiAN
Cj4gSXQgbWlnaHQgYmUgd29ydGggbWVudGlvbmluZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2UgdGhh
dCB3ZSdyZSBtYWtpbmcNCj4gaXQgYSBiaXQgbW9yZSByb2J1c3QuDQoNCkFjayBpIHdpbGwgYWRk
IHRoaXMgaW4gdGhlIGNvbW1pdCBtZXNzYWdlLg0KDQo+IA0KPj4gICAgIHsNCj4+ICAgICAgICAg
cmV0ID0gRkZBX1JFVF9JTlZBTElEX1BBUkFNRVRFUlM7DQo+PiAgICAgICAgIGdvdG8gb3V0Ow0K
Pj4gICAgIH0NCj4+IA0KPj4gICAgIC8qIGNoZWNrIHNvdXJjZSBtZXNzYWdlIGZpdHMgaW4gYnVm
ZmVyICovDQo+PiAtICAgIGlmICggc3JjX21zZy5tc2dfb2Zmc2V0IDwgc2l6ZW9mKHN0cnVjdCBm
ZmFfcGFydF9tc2dfcnh0eCkgfHwNCj4+ICsgICAgaWYgKCBzcmNfbXNnLm1zZ19vZmZzZXQgPCBz
aXplb2Yoc3RydWN0IGZmYV9wYXJ0X21zZ19yeHR4XzFfMSkgfHwNCj4gDQo+IFRoaXMgaXMgZm9y
IEZGLUEgdmVyc2lvbiAxLjE7IGZvciB2ZXJzaW9uIDEuMiwgdGhlIG1pbmltYWwgb2Zmc2V0IG11
c3QNCj4gYmUgbGFyZ2VyLg0KDQpZZXMgeW91IGFyZSByaWdodC4NCg0KSSB3aWxsIHVwZGF0ZSB0
aGUgY2hlY2sgYW5kIG9wdGltaXplIHRoaW5ncyBhIGxpdHRsZSBiaXQgc2V0dGluZyBoZXJlIHRo
ZQ0KdXVpZCB0byAwIGluIHNyY19tc2cgaWYgc2VuZGVyIGlzIDwgMS4xLiBUaGlzIHdpbGwgcmVt
b3ZlIHRoZSBuZWVkIHRvIA0KdHJhbnNmZXIgdGhlIGNvbnRleHQgdG8gdGVzdCB0aGUgdmVyc2lv
biB0byBmZmFfbXNnX3NlbmQyX3ZtLg0KDQpUaGFua3MgZm9yIHRoZSBmaW5kaW5nIDotKQ0KDQpD
aGVlcnMNCkJlcnRyYW5kDQoNCg==


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 09:20:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 09:20:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177426.1501708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR5Vc-00016r-TU; Thu, 04 Dec 2025 09:20:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177426.1501708; Thu, 04 Dec 2025 09:20:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR5Vc-00016k-QX; Thu, 04 Dec 2025 09:20:20 +0000
Received: by outflank-mailman (input) for mailman id 1177426;
 Thu, 04 Dec 2025 09:20:19 +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
 <SRS0=OurU=6K=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vR5Vb-00016e-LA
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 09:20:19 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 726f4eeb-d0f2-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 10:20:17 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 CH2PR12MB4167.namprd12.prod.outlook.com (2603:10b6:610:7a::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.11; Thu, 4 Dec 2025 09:20:14 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2%2]) with mapi id 15.20.9366.012; Thu, 4 Dec 2025
 09:20:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 726f4eeb-d0f2-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dNG6TOoPU9frueZEfPB60PhP0xgyzs1yLEFVkyvK8SXqBsRueTIinvDKVmpqJ0KOhe42IQmhd6ZcgbdaQaOpX400JuwjqaDWZmjj1eIYTbeLcdxolnjJN+jwl8fp1Fs00gLsvSUsGjJc4ZQCeFJryc5kYf/FHfxWm6SGHtxZKTn0rMbbNPpsS2oDLuk0Ykd/szmYxzuTEhJ94KvmwamWsSS5dqyvlz0RkQXELzjU+Stj/pVqIe2UVXTfr0b1D7W2c6Aps6ZoIWejzuSbOrNiDjPhqfCM8W683VQIRP/FXC+sEjArqapDOAGAtkObizWZ8VAF+aRACWQzblRlxNSk4w==
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=T1QolN5ar6dSUTF5KgheUVkOcUdTDKdSTFGX0xO6S3A=;
 b=xnniIyT5biaLoOfhqIE/LljQYQ2pWNXmUgu3BvrwZVn00LA7Q0gty8l3kIrt4HYIlvwC8JmdEmUSZV98SpPeyGpl2FdoYr3BsBdTZJXkuVpr56jZCjlKBvOkYkgRIb1rCZd7DiF7rhxmtO5gFG7EymkWIUFJYryaWiHsS92TYNyMa8xGAGIT/IsfCecZoOmCfmH8E69S/B6+VY7dxn02eaDB8hkkATo5cFIK4reqzcRTEgVSR9ATBG2672xcSEA2CM/hEBlV7m2cBtiFkuGRAQIfxZEDZMx48YHDCD47bKcWwlRj9brfFq3QCH958epAQeA5ULrgaAc51UM0EA2T7g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=T1QolN5ar6dSUTF5KgheUVkOcUdTDKdSTFGX0xO6S3A=;
 b=F6dC+3MH7c3DNOMvcoEzp9/xJD1g6WMrFqDiLuWkiCdTHT3zv9id27L0c0LIMAuEjes6wjHtW59osnaLtDvoVQbGs+n9TTziyeHfJsytKzFUDdL/62WO1s6ls9EWOevkR1dFfh288JRqpkDXkmmNm9DQjBKiR0H8Ju8IM+53uts=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "grygorii_strashko@epam.com"
	<grygorii_strashko@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, "Orzel, Michal" <Michal.Orzel@amd.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v4 24/24] xen: move MGMT_HYPERCALLS out of
 PV_SHIM_EXCLUSIVE
Thread-Topic: [PATCH v4 24/24] xen: move MGMT_HYPERCALLS out of
 PV_SHIM_EXCLUSIVE
Thread-Index: AQHcWtXtEnwTBuQwpUm2Fi91lgBgbbUEufQAgAyNPyA=
Date: Thu, 4 Dec 2025 09:20:14 +0000
Message-ID:
 <DM4PR12MB84514B5C0BF7AC492D8E863AE1A6A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-25-Penny.Zheng@amd.com>
 <55d23825-fb8c-472c-9d31-5b482f32e915@suse.com>
In-Reply-To: <55d23825-fb8c-472c-9d31-5b482f32e915@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-12-04T09:20:06.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|CH2PR12MB4167:EE_
x-ms-office365-filtering-correlation-id: 7a4f01e2-29fb-4e1b-fb2e-08de33165537
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?M2QrT0htR1NXSTlTcllzSy9yYlQzZm54U3kybFNyZC9LQmFSNzhGZjMvYmRh?=
 =?utf-8?B?a1pzT21PZC9ZNW10dUs5QnpnUlpkaFd6L3FISmgzZ0ZlYnVrZWlyWnM1M3lT?=
 =?utf-8?B?NnMrK2NpaFBuQXVFRzJpTm01dTVFZXNtTzkyTHlrbStjdEQzMlNkR2NTQlNR?=
 =?utf-8?B?eXNHbHY5anpYV25WYktjempqQVZzWDVzNHJDa1Z3SlFIOGQyZkFyaTVJQU1F?=
 =?utf-8?B?OGFJdjdqMENkTU1peS9hekc2eWxhTUpCbHZ1TzBnTG5md3NQai9RdDJZcWJl?=
 =?utf-8?B?RmI0am9VVW0yTy9DWUV1L3cxeXY1Ui8wVjI1Zm1Pc3ByRHpMUklyRFh0TDV5?=
 =?utf-8?B?QnNKQlFhQ0g4aStLRit0Ky9BbWttOFVzSEFtUkp1MnNTY3hDUzY1a2h0WGdk?=
 =?utf-8?B?QkFxRnNVOWlFQjVXbTJQWU82RVpDWFFnRUtGZjd6c3lDRHlWaTJsZ3J4Wnhq?=
 =?utf-8?B?eVRhQVdDOHovYno3dVBsRklaa3d5M1NqS2ZHYVdxeVhXVEhmOUVGZmZXdmhH?=
 =?utf-8?B?am5FZTFPcDRzZjB1L0lBckZSZHF0blc4RyszMkh0aENsd0VyUzhYdDYvQ3BO?=
 =?utf-8?B?M0k2WXgrTEd1TmJlckN3VXZBNTJQMUFUbDBWUFd1K2RuamgwNnRoL0VXZm5H?=
 =?utf-8?B?VGJka3VDbmoxRDI1L1k0WDF5cEVicU8rWlQ1Y1BUZXQ1a29OekhJYnZqU3NI?=
 =?utf-8?B?UGpLQmVJd1l6VEUyWkFYcURnZDVmN2pSMG91aWNmR0x5TUpnWkpsOE9YdUdp?=
 =?utf-8?B?dDVJYTNSMGo5TWtqMVM2UmE4RVI5QjNnQmxvVGFuZlZMWkFkemdwdEhqbmFk?=
 =?utf-8?B?UG9RaUtZakQ2ZmhKTzhRSDFESEp6c1B1MU5Rbm9Zb1JIMC9zWmUyMzBNa0U0?=
 =?utf-8?B?OHV4Y0FITkhpWUs0Q0ZTYXVUNjBicFhsQkNjcTJFbjJQUTdPenE0eE0xMmNO?=
 =?utf-8?B?OFZEZU5qYkQrNkhWZkhkRm5YblNxSTJqWnhncTYvWEliN25nS3FxWjM5V05Y?=
 =?utf-8?B?MVBpRUxQY3JaNDZ2alAyWEpTKzN6T2lvRmo2RDh3WFR6TkhHUlVwbnp2YVhN?=
 =?utf-8?B?WFR4UHA4NWgwQmFOTytFREtDdGJtOXY4aVVTeTJyc29vUVkxc1dyWFE1WGcw?=
 =?utf-8?B?Ym5OSWs3MjhoTnZtNlk3UGVrWEZSUGF0aDV4eWtrQ0JKeUxkTW1zQVc2SEpo?=
 =?utf-8?B?VEhvT1lZaDVPWUdadlpPK2ZybDBrTThKYlhnNTJnNUt4bjNTSXNhaHM2SXYy?=
 =?utf-8?B?VnhHNTZXS2NjT1ZRbGxuekhxOUg2QmZQQzNySVB4OXMxN1V2N1JvY0pGbE9J?=
 =?utf-8?B?OXZRT0lubU1UTGJXY1ZpdnB6cHAwY0VjblByM0dGNlJVUVl3azMyR1lFd3ZQ?=
 =?utf-8?B?cDJmOGNocC9UNk1GWHFPTlg5ZnZYSlpkdmRTSEI5TlR5eFlZaXZKWXBkd0VS?=
 =?utf-8?B?ZUZETUhTMjkyTzUxNUw2RTNFSkZyZTVMTENWMXF6UlZQcXJDYzdDaUMrNWls?=
 =?utf-8?B?cTBSRVF6aWFrRHBqTkx2R1JsMHR6dFh4dmF6b21vZWRsQnJycjVGL3ZjWlVF?=
 =?utf-8?B?QlYyTUtma3NJMUVxU2pCQlNza3krZTlHZGhoa01zdFNpd3RvQW9xanYyMjlh?=
 =?utf-8?B?c1ZtaWVFeHZ2cGh5eFlRVytIby93VDNLNm9YUzNJZE9HekJsVWJ0M0RFY3Vt?=
 =?utf-8?B?VmhRdE55cEtWWnAvenJqelJ1RXRFWWszQ1cwd2NHanpJWkVEUndPWEpCOFBE?=
 =?utf-8?B?VXRlOFRlTnE5N1dKOXczV05IMFJHNFRmMnpHSmhsTzdTRmFPaU0vaXlyeTE5?=
 =?utf-8?B?RkFJYTZKcGRGbzVVWDg2TGtEbDNHRmNHQzBSSGZ5Ny9xdjk4YVhkNW1JdG9j?=
 =?utf-8?B?bC9aODR0Z2x0YmtsSnJjZi9SWXgvMUk5T1hzUHRBQW1uc3FWUDBGR1MzQU1m?=
 =?utf-8?B?ZzFSTngvTFhWUEVXWTY5SEd3YkZZOHEzTUJuK0lWTXJQTEZLVEhucytxdXY5?=
 =?utf-8?B?TE9VN1UvSlE5Vld5SU52TnZrdHc3NXkzdjRuR3hnaCtzR3FHd1dyQS9Zc3E0?=
 =?utf-8?Q?+/v1va?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?RzZhQktqeXcwRXhQTTd6cFF5N0pxSDhlV1dWc0JNdkViaFlQTWkwRlEvaElO?=
 =?utf-8?B?aDVnR3V5L3JNOWhEM1NWSHBhY0lHY2w0dW8rbzhIc0w2NXBuamFvVEx0MHpk?=
 =?utf-8?B?VDFRejVVMEk3dHFkU2JkL2hrMHg4Y1RqK3NyWHNrOWZIY1h4akxOSzlVM2dp?=
 =?utf-8?B?Qy9EeWp5UjhqUlgwRzR5RDVYSVFGb2kyaDkyNUg4Ymh5c2QwOGpHZFBrWkZK?=
 =?utf-8?B?ZkdJQTJsMWx4LzQyQzRnaUxFSjhqckRmbEZyYm5oMnplS2x6MzVXY1ZsWFJh?=
 =?utf-8?B?T2k1dURUakdaNHdqQWRXYndWWHNod2pIMG1uZzAzT2tXVEFwMmpEeVo1bk5F?=
 =?utf-8?B?OHVaUzlRWGxwMWo1bHl1bDMwYlhORHZpam5MNkgvbVo3Q1I4TCtHK0x5YWc2?=
 =?utf-8?B?S3dwSWhmZkJzRkRxTmE2SFhzT3UwemVkcnAwT0d0VGFEdU5TTHErUks4Z0NO?=
 =?utf-8?B?cklkQ1hRUFo2WDlrSyt0aFBmZFlzd0QycVNRVHhYc05HK0l2VnUyOElsQlN2?=
 =?utf-8?B?QjhlNGhCOHBhZ2FFZlN2Qm1rSDVEbTFIeTRra3NLd3lOQ2s5OVFVeWJtVytC?=
 =?utf-8?B?NlY5emRkVDRqdTlsaTc2WFpYd0w4K09jUCtvQTh6UmVNeGR0bmFOUTBmMVFB?=
 =?utf-8?B?RFdJVnE3M0FSamNMVGx4QnA4NG1tNkUrUHRaZFlpdlo5UG1lWWxMNmN1b0Ey?=
 =?utf-8?B?VWxxaFEzSGMyUVF1ZzJPYU9XYWxMbVE4MHA0a2o4bUFSODczUGJtUTJEUTEv?=
 =?utf-8?B?azRkSWpjcmpYckNEbXNuK3V1VVVKY0tlRjEwT1lDNHd1bXNFRmlaVDdhUkZ3?=
 =?utf-8?B?N1IwSmpObmg0TXVlOXFqT21tSkhNYk1OTGJDeC9Zb2xNMEtvNFBpaFVjUnRs?=
 =?utf-8?B?VmhHaWtVR1hEVEo3QjRBMkRVS2FxLzIxUEJYWmdtV08yWkhPQTZvR2Njd1Z3?=
 =?utf-8?B?RHp0M1JGWmhSNkFQanAyQmdSUmdTTHAzWXZzRlU4Rmp3ZnJTUkhoRnRpUGZr?=
 =?utf-8?B?SXhiUHRWZ1ZMZVhRMm96Yi9XYUFMWng1UDNqZGw4UHRuY1cweUpDM2JNZ0dM?=
 =?utf-8?B?VWhWZ0NwUkVKZEhqQ05ackFUcEFhL1RXdDFKMUhLbTRPL1BURHgzWXgyS1R6?=
 =?utf-8?B?MXJ6bWs2WjYvZzlXQ2REOUhqRElFcmhxcWl6VWxPRW11aTFIdDBVZHh1Uldx?=
 =?utf-8?B?c1dMN1VlN3NabXp3YXQ0KzJoMGNXOE12RmU0SUROOVRSRmE4NlZpT3grRlVT?=
 =?utf-8?B?V0lMc2ZSMXJRaktiNzBVaktFRmo1L25NRWZOb2dKbE8wcnJTMUZsT1prM1lq?=
 =?utf-8?B?Yy9YcEV0TEgwdFhrbngxV3FBSmg1bVFlK2k1K2VSeDh6MEh5Ui81WmFoOG1F?=
 =?utf-8?B?UnRmeHkxUmZNd2NLdGVseDQ1dEJhaTVCeDB4b1RXSmZWNWc2Q3NUMkxQL2U4?=
 =?utf-8?B?bmpvbGZobFVic0M4NmtLbG0zMCtocGphZnFTYXlyWVNiU3NDUzVlcVZ5N1A2?=
 =?utf-8?B?cmZPcy9PcUNPZUdPNDU2ZTFGdTQ0MGZGMnVMZGtSQlEyVndnZW1nVWJpMXg2?=
 =?utf-8?B?amZCa043NUw4MEI3am9oR2owdFIrVmUycGIrSEIweDlPaGZVdG4yYjVBaDl1?=
 =?utf-8?B?NXRYVGt0dUg3QVlRTmpscGNOWXFqelcwZEN3QkNSWkczQkRkT2ZTbVV1ZERm?=
 =?utf-8?B?d2hJVGVHVDc4b2hQQ2JkSHJZRVFDYzBhQzZnWEdJK292S2lCNytORm9MUndC?=
 =?utf-8?B?UzV0OTI0TzRtbDB4aFBkZENNZXhoTkU4Y1duUkJnWElXRVc3bkN4UXpCTmtU?=
 =?utf-8?B?bnJ3MEdHN3BIWkdPZStTSGxhaHk2TUtITnhRckdydWxlR0hnMmcyUUpSSmVU?=
 =?utf-8?B?RzFKckhGWC9qZy85VE52eEF5N3BHUjhxb1hhNldES3o0NjIyZWprOGpZVGw3?=
 =?utf-8?B?VVkrM1FHSkdCMzhTdExTaEZPcTZ5ZklzM3A0ZlB6enFZN09Tem93M2c4M2Rl?=
 =?utf-8?B?ZDQ1akRpSlVUSjVyS2Y5cUpDV1FOQTFpc1YyZDlRZ00rc3p0Q2xLOFA3Tnpz?=
 =?utf-8?B?M1RjTzNJb2Q0N2t3d0ZVZWJBK1BadVZDbHprYm11RjgyU21ES0FRUXhTMWxK?=
 =?utf-8?Q?0Dj0=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7a4f01e2-29fb-4e1b-fb2e-08de33165537
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Dec 2025 09:20:14.4625
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: hRbybrr1iqUvde2AFehysV/HFmmBnx071nF4gGkIMcoQpGjicux+OgHBGz9fBuH/tdrVbeJPAXdkIj2qP8ecqA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4167

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIgMjYs
IDIwMjUgNTozNCBQTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0K
PiBDYzogSHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBncnlnb3JpaV9zdHJhc2hrb0Bl
cGFtLmNvbTsgQW5kcmV3DQo+IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT47IFJv
Z2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPjsNCj4gQW50aG9ueSBQRVJBUkQg
PGFudGhvbnkucGVyYXJkQHZhdGVzLnRlY2g+OyBPcnplbCwgTWljaGFsDQo+IDxNaWNoYWwuT3J6
ZWxAYW1kLmNvbT47IEp1bGllbiBHcmFsbCA8anVsaWVuQHhlbi5vcmc+OyBTdGVmYW5vIFN0YWJl
bGxpbmkNCj4gPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+OyB4ZW4tZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2NCAyNC8yNF0geGVuOiBtb3ZlIE1HTVRf
SFlQRVJDQUxMUyBvdXQgb2YNCj4gUFZfU0hJTV9FWENMVVNJVkUNCj4NCj4gRnVydGhlciwgYmVj
YXVzZSBvZiBwcmlvciBpc3N1ZTogQ2FuIHlvdSBwbGVhc2UgY2xhcmlmeSB0aGF0IHlvdSBoYXZl
IHRyaWVkIGJ1aWxkcw0KPiB3aXRoIGFsbCAocG9zc2libGUpIGNvbWJpbmF0aW9ucyBvZiB0aGUg
aW52b2x2ZWQgS2NvbmZpZyBzZXR0aW5ncz8gVGhlIHNldCBpc24ndCB0aGF0DQo+IGJpZywgc28g
ZXhoYXVzdGl2ZSB0ZXN0aW5nIGlzIHBvc3NpYmxlLg0KDQpJbiBjYXNlIEkgb21pdHMgYW55dGhp
bmc6DQpJJ2xsIHRlc3QgdGhlIGZvbGxvd2luZyBmb3VyIHNjZW5hcmlvLCAodHVybmluZyBvbiBh
bGwgb3RoZXIgcG9zc2libGUga2NvbmZpZ3MgYXQgdGhlIHNhbWUgdGltZSk6DQoxKSBNR01UX0hZ
UEVSQ0FMTFM9eSAmJiBQVl9TSElNX0VYQ0xVU0lWRT15DQoyKSBNR01UX0hZUEVSQ0FMTFM9biAm
JiBQVl9TSElNX0VYQ0xVU0lWRT15DQozKSBNR01UX0hZUEVSQ0FMTFM9eSAmJiBQVl9TSElNX0VY
Q0xVU0lWRT1uDQo0KSBNR01UX0hZUEVSQ0FMTFM9biAmJiBQVl9TSElNX0VYQ0xVU0lWRT1uDQoN
Cj4NCj4gSmFuDQo=


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 09:32:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 09:32:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177444.1501718 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR5gr-00036b-1s; Thu, 04 Dec 2025 09:31:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177444.1501718; Thu, 04 Dec 2025 09:31:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR5gq-00036U-UP; Thu, 04 Dec 2025 09:31:56 +0000
Received: by outflank-mailman (input) for mailman id 1177444;
 Thu, 04 Dec 2025 09:31:56 +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 <SRS0=jX19=6K=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vR5gq-000359-37
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 09:31:56 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1234a07b-d0f4-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 10:31:54 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4779adb38d3so5790585e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 04 Dec 2025 01:31:54 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479310b8e70sm20908175e9.5.2025.12.04.01.31.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 04 Dec 2025 01:31:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1234a07b-d0f4-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764840714; x=1765445514; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=up1sLWmb1tJsYJEmq1cqZ3IzyimJLi4b3TqXUWc5gU8=;
        b=DC6a3Ah8PdN7YvrJI3guU8vdm+gTCCebz4GSenIak2KlOUXAu2ZbKB6REo8REiSCjW
         6FNx+QurU/jkiewFioVZanNDIPnakL9rJZEIZMj6E3VJGDbs7i3cQiUCpyARQ9uX+gdV
         JThdy6tZY4QlbhMl+CCbn7ic3f8LJdeFF9+uvxFAeavFTFoxX+v+bTmZmEPZcBOslo6g
         a9LxFzq987fITBRufCmQpGG5Dlf0L7P6GjaNlcTaG2LqS7hwvWjq8eBTJdg9WXtdMuBx
         0F7p3hrhKMqAG3EFOcRFUTFh850qAzYVbtcu0mXpWvd98xl8IdkG7psWsoJ83I3Qu8tU
         ciFA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764840714; x=1765445514;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=up1sLWmb1tJsYJEmq1cqZ3IzyimJLi4b3TqXUWc5gU8=;
        b=m9fm+EfBS/ysAUglQOYkSYnLN2OQv4bJ6w1UmQTPrgLp9Dn86Tg4F8gRJXOAxSfzPe
         X4+juInidp09ETSm0ETW+2nOPGcSQyfvKvrtqqDPXTEk4OWmnrSrz02+PeGCqWFudF67
         9ztLBmT3qpoZJJYatyHsgYiS21hzsyUZKJfFydQf0GLKf3whJZoNRW281A9pHAQBeWhT
         ZO0Z9BXEudBBwxbfndhAI/c9D7fxygNca6lLMhaYw8rDBYHV8VZpVZ3H9TePsmc63xzp
         2F0A0reZiZebo+QMORk+TiTC0zGnOVIYQV5N57upWWSPyyUcOq2hpR1onGGsphajU0TZ
         bnJg==
X-Forwarded-Encrypted: i=1; AJvYcCVudJeXshTIY4ugR3ZzNe16j9fLLleH6LjQSS1zDjhA5lBrFA/NWJHyLRl/xi1lxPiHuftjYLoHsgM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwFoSvPSHEbkJdeT5qdjQwLRWMz2DM2o9utuNQS4LbdMg3dAqec
	tzLCxQ9J7ZNCJuliMUaQ5Cmsh0uNwApQLIcZVsWC8/YLSR2+Kiflg4tHicu0NBXz1A==
X-Gm-Gg: ASbGncvjyNUgg/rka6cZDd1CnboWiTkVif0Bc06IQsxbPZ2BKbj9ZQ/JJyS5RYSHk3A
	8Xa9d3iygk5l5dGfEXqLovw97FMhMFvqxtRzqbnYZ0uSv8BivC7F15pOraqkGLu/BvJoMKVp2Gv
	xwZaPwdQ9vsC1IUm2OCtcnU4r7pfcF3yKXlp/BptVhJ1Bxz6qwD3uOzsewOdGet49qXqj2TNpqu
	kAfFQW2uXqV6PFABBbhi1Js+Vh6ruZAcXuXXTLBcnjom9yMcUy8ksGEFaOyhfZi52l88CaFln3S
	53A4g7DSI3AGdhgMgSKTXo0a4OinztfMvThKBvMQ8FqLTGC7NNavl0eRW3vXeKkfuWYKsSxdN2S
	hsRLspPYZDCGkYadKinERtXDr/qxUPoi6g/75h++yYQYR9qRcCdNY2JTMMlNi7yDDgBbRFxIeaK
	nrWQksp174dg+wbCqFI3P3iDqE9Isw6QbjiwCMtJm+K4dUI4P5anahJnXdGvbKBb7AS6GTssdv4
	m/NfZaobPjS3A==
X-Google-Smtp-Source: AGHT+IGMEJ+DkqONC/SsjB+n9852gKmHwppncMIjTU+mL43JOZDv3YRKFT8Y1I7a3NHzoeK6q4OKAw==
X-Received: by 2002:a05:600c:4706:b0:477:8ba7:fe17 with SMTP id 5b1f17b1804b1-4792f244c3bmr23145455e9.7.1764840713990;
        Thu, 04 Dec 2025 01:31:53 -0800 (PST)
Message-ID: <835cd913-d280-4c99-af0d-80fcaf23db76@suse.com>
Date: Thu, 4 Dec 2025 10:31:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] ARM: Drop ThumbEE support
To: Julien Grall <julien@xen.org>
Cc: Hans van Kranenburg <hans@knorrie.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Maximilian Engelhardt <maxi@daemonizer.de>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251203171608.1714964-1-andrew.cooper3@citrix.com>
 <f081cd84-a626-4b02-8c8b-6c0c0b723b84@xen.org>
 <875a6a6c-f81f-449e-bd57-7e720d07e8a2@citrix.com>
 <9ddb8824-2d88-444e-819a-e46be4b406d1@xen.org>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <9ddb8824-2d88-444e-819a-e46be4b406d1@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.12.2025 22:02, Julien Grall wrote:
> I agree. Do we need to include the fix in 4.19 (I think Jan asked to cut 
> it tomorrow)? Thanks for sending the patch!

Too late for 4.19.4 now, but 4.19.5 can still get it once ready.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 09:38:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 09:38:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177455.1501728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR5mt-0003jL-Kf; Thu, 04 Dec 2025 09:38:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177455.1501728; Thu, 04 Dec 2025 09:38:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR5mt-0003jE-H9; Thu, 04 Dec 2025 09:38:11 +0000
Received: by outflank-mailman (input) for mailman id 1177455;
 Thu, 04 Dec 2025 09:38:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SyTI=6K=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vR5ms-0003j8-2u
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 09:38:10 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id efedf93d-d0f4-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 10:38:07 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-42e2e2eccd2so531529f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 04 Dec 2025 01:38:06 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d352a52sm2222690f8f.38.2025.12.04.01.38.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Dec 2025 01:38:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: efedf93d-d0f4-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764841085; x=1765445885; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=2W2GSKBzu5ItheZNWHIKOToGLaI2QT0J35dhvTXXxhI=;
        b=Vv/kIpGrxPukHGH2DOewiicJzElZZ0p/9L/17QUEE/butpcd+2ns2aJidlqv48meMm
         mfAwvDnB84j8YOIRbcNjvcoG1hOmfEwXIN9UuataNIhoYpV28RW1hu/YomlwWeHcqY3u
         +LE2iO3X1tWiI1ZNGhOMnTxNCKr1nAPbtqwqQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764841085; x=1765445885;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2W2GSKBzu5ItheZNWHIKOToGLaI2QT0J35dhvTXXxhI=;
        b=AiZE9G8saG9VciU/17oULO/2jQze15yhRYG1z2UgCARYjFsTe82OhGsWbeQJfGQeTF
         93IGM/YRRDo0LLukM/q8o9rBs+D0wppogOYo49HQyXYSZKD+uSXV8KG0UUZ/9extW/AO
         ws9oqlQk7SRGB592aKNx67hRlMtOF7++ntKE/7o00jTNG9JkjNQfGYviM54YkyuMvx5b
         +dUrzaKCPqhLlnLQfI5enBr1W+AyJjDnlhAMyNanje5fguN+vtTAAj7+Hk8NQN5jF9cb
         ER+fcV8tbWYhpnNi6WfyeuipYG2nymGLgtZxFYTAwwcmRtz3RfDl3cURyk725RqSiFWY
         EWzg==
X-Gm-Message-State: AOJu0YyGtn95LYo7NHZQ7kRbMN9VlRzlUzUADyb0N6VYYZ5ft4AVqdnx
	OGdATpLNAU6IolrxgzvjQ8nwoQxX32l5JNLjmydgri3t+v2mxfKjEMH/Qr0xE2PFKXIgHtsWpEq
	7R+O8
X-Gm-Gg: ASbGncv+0m8gzwmstMDBH/rj03bSaYumJeeIRUgRdwZbVOHvCjKQPUGoBW5HMoVe01j
	hEpHhTSTDJPvhEsg1HW2wvTn4nvDoCi1hVTvKzetMoqSDXbh7OMgGcjKGP6mFVLMogEQ1t0sZjG
	ONi5NvzeTztdYSFuvnNvQmpAEBjowlKzvGx/8l+lh71lgtGb+AIDmM01NT28YyqrAApiIFo8UrZ
	V8iax61K7WIUBgBHzTuIA8LIVrqnXXvIAGvUU4Y4WrwjDVZhilx7lwsUP2OhsnRQfb+KdlrPhR8
	4In/nbutfUuDzjuZW7Aijcw6/z3h7oQJFKVBuNC9KMASUpURkGPsUrQvaMNA2QltRPzhDmSMJrv
	3vRBV3Tw2YnuYp5pBUvFQjgSjLuwJh8jhOYOu5PTNgwmcGj8f2AaE4xZ/TL+KMfwllxGuIz7qqM
	GPm+/bUHbvfzhgWJXQf00nO9U6tv3naiW+gMrqjdAQ6j7Weuy1kssHLaojP5cIVA==
X-Google-Smtp-Source: AGHT+IGcuaX9aD3thK7GGoXvmVbhWYzUjT7LqAOvLJqh6ZJxXQQrjIL0OwOjsQzaJhB83QmjvAjjVQ==
X-Received: by 2002:a05:6000:420a:b0:42b:3680:3567 with SMTP id ffacd0b85a97d-42f73172b34mr5580069f8f.18.1764841085501;
        Thu, 04 Dec 2025 01:38:05 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Hans van Kranenburg <hans@knorrie.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <JBeulich@suse.com>,
	Maximilian Engelhardt <maxi@daemonizer.de>
Subject: [PATCH v2] ARM: Drop ThumbEE support
Date: Thu,  4 Dec 2025 09:38:02 +0000
Message-Id: <20251204093802.1717792-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

It was reported that Xen no longer builds on Debian unstable/sid.

  Assembler messages:
  {standard input}:474: Error: unknown or missing system register name at operand 1 -- `msr TEECR32_EL1,x0'
  {standard input}:480: Error: unknown or missing system register name at operand 1 -- `msr TEEHBR32_EL1,x0'
  {standard input}:488: Error: unknown or missing system register name at operand 2 -- `mrs x0,TEECR32_EL1'
  {standard input}:494: Error: unknown or missing system register name at operand 2 -- `mrs x0,TEEHBR32_EL1'
  make[5]: *** [Rules.mk:249: arch/arm/domain.o] Error 1

This turns out to be an intentional change in binutils.  ThumbEE was dropped
ahead of ARM v8 (i.e. AArch64).

Xen supports ARM v7+virt extensions so in principle we could #ifdef
CONFIG_ARM_32 to keep it working.  However, there was apparently no use of
ThumbEE outside of demo code, so simply drop it.

On ThumbEE capable hardware, unconditionally trap ThumbEE instructions, and
drop the context switching logic for TEE{CR,HBR}32.

Reported-by: Hans van Kranenburg <hans@knorrie.org>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Hans van Kranenburg <hans@knorrie.org>
CC: Maximilian Engelhardt <maxi@daemonizer.de>

v2:
 * Trap ThumbEE
 * s/Trixie/Sid/ in the commit message

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2195763116

Bintuils link:
https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=8c0024ca8f6c01fc45f081f5ef11c9a6a1c24eb0
---
 xen/arch/arm/domain.c                | 12 ------------
 xen/arch/arm/include/asm/domain.h    |  1 -
 xen/arch/arm/include/asm/processor.h |  1 +
 xen/arch/arm/traps.c                 |  4 ++--
 4 files changed, 3 insertions(+), 15 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index ab7844433597..3e32a15cac7a 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -111,12 +111,6 @@ static void ctxt_switch_from(struct vcpu *p)
     p->arch.cntkctl = READ_SYSREG(CNTKCTL_EL1);
     virt_timer_save(p);
 
-    if ( is_32bit_domain(p->domain) && cpu_has_thumbee )
-    {
-        p->arch.teecr = READ_SYSREG(TEECR32_EL1);
-        p->arch.teehbr = READ_SYSREG(TEEHBR32_EL1);
-    }
-
 #ifdef CONFIG_ARM_32
     p->arch.joscr = READ_CP32(JOSCR);
     p->arch.jmcr = READ_CP32(JMCR);
@@ -244,12 +238,6 @@ static void ctxt_switch_to(struct vcpu *n)
     WRITE_SYSREG(n->arch.tpidrro_el0, TPIDRRO_EL0);
     WRITE_SYSREG(n->arch.tpidr_el1, TPIDR_EL1);
 
-    if ( is_32bit_domain(n->domain) && cpu_has_thumbee )
-    {
-        WRITE_SYSREG(n->arch.teecr, TEECR32_EL1);
-        WRITE_SYSREG(n->arch.teehbr, TEEHBR32_EL1);
-    }
-
 #ifdef CONFIG_ARM_32
     WRITE_CP32(n->arch.joscr, JOSCR);
     WRITE_CP32(n->arch.jmcr, JMCR);
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index af3e168374b4..758ad807e461 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -211,7 +211,6 @@ struct arch_vcpu
     register_t hcr_el2;
     register_t mdcr_el2;
 
-    uint32_t teecr, teehbr; /* ThumbEE, 32-bit guests only */
 #ifdef CONFIG_ARM_32
     /*
      * ARMv8 only supports a trivial implementation on Jazelle when in AArch32
diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
index 92c8bc1a3125..ec23fd098b63 100644
--- a/xen/arch/arm/include/asm/processor.h
+++ b/xen/arch/arm/include/asm/processor.h
@@ -411,6 +411,7 @@
 
 /* HSTR Hyp. System Trap Register */
 #define HSTR_T(x)       ((_AC(1,U)<<(x)))       /* Trap Cp15 c<x> */
+#define HSTR_TTEE       (_AC(1,U)<<16)          /* Trap ThumbEE */
 
 /* HDCR Hyp. Debug Configuration Register */
 #define HDCR_TDRA       (_AC(1,U)<<11)          /* Trap Debug ROM access */
diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 2bc3e1df0416..040c0f2e0db1 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -158,8 +158,8 @@ void init_traps(void)
     WRITE_SYSREG(HDCR_TDRA|HDCR_TDOSA|HDCR_TDA|HDCR_TPM|HDCR_TPMCR,
                  MDCR_EL2);
 
-    /* Trap CP15 c15 used for implementation defined registers */
-    WRITE_SYSREG(HSTR_T(15), HSTR_EL2);
+    /* Trap CP15 c15 used for implementation defined registers, and ThumbEE. */
+    WRITE_SYSREG(HSTR_T(15) | (cpu_has_thumbee ? HSTR_TTEE : 0), HSTR_EL2);
 
     WRITE_SYSREG(get_default_cptr_flags(), CPTR_EL2);
 

base-commit: 62bd4c2a8ee809c181d47098583270dc9db9300e
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Dec 04 09:41:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 09:41:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177463.1501737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR5pf-0005E0-1J; Thu, 04 Dec 2025 09:41:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177463.1501737; Thu, 04 Dec 2025 09:41:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR5pe-0005Dt-U7; Thu, 04 Dec 2025 09:41:02 +0000
Received: by outflank-mailman (input) for mailman id 1177463;
 Thu, 04 Dec 2025 09:41:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jX19=6K=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vR5pe-0005Dl-0R
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 09:41:02 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5731e789-d0f5-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 10:40:59 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-42b3d7c1321so414623f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 04 Dec 2025 01:40:59 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d3319ccsm2099990f8f.34.2025.12.04.01.40.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 04 Dec 2025 01:40:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5731e789-d0f5-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764841259; x=1765446059; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xYsgryKDP8RVXhT+eXWM597Ck76L+IkzFj5LQ93t4yQ=;
        b=RZJGeU57iHLogswuPj06x4WoiulnsRQ3L2P1EM/IwJylz0JXsqU/Cu11Y4LJW/1ieV
         k3kVwBLq/1NHpDroqLAPseSQ2BPVXn7htQ5zapamcc60w2CtEMJ0phmLWGlaS9/n3MDt
         AkEURrQwECJas8nWJzcJPnRY3Ufw1WEL1wKUzGBOspNckjCpxiu705goxIXwdBaVcJdi
         TZE8Il4m4usjsSst8YDcoQo+k8vxFzW61+MPasaoya7zKhLbnpxT37XgPhzdltfVdO+i
         DH0M23gDR8gayqeMi/UwqJTfIJW+Kp10wphseqYb2024Xv0XmrhYFMtcJSxTCXdNNCya
         EpkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764841259; x=1765446059;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xYsgryKDP8RVXhT+eXWM597Ck76L+IkzFj5LQ93t4yQ=;
        b=bq38S3pAWN401xAcsNnIuNa0mEFSyL5wRybR0y/sMj9agbNXm49290EyS7Qk8VZICA
         eT/qQGQTmXUOiz+tadyPQOTDm+JdkRn5y+kfSobeREGgSpOkHVHN0FlgENUgwngTLprw
         +WptK7lBBjbTJyesQlv8uraZOohzbZ+2Tw6EHUOXgrCK/5g2uMSqiwYL5zgbocrzMZ2b
         k6YQoapyd17i5VmwutKLUkAu3IKK9j9OAlbLyPST9uPmoY+mKdgR+1Y5eWDxUMP6YR6x
         nVDtei9lv8k+Fk95lnP3/fx1FdztTeg9v2FTMaEyTRnkUALGUkwzV/YgahzcmU7Ofi7X
         q9jg==
X-Forwarded-Encrypted: i=1; AJvYcCW65MeLOelY3lfC/mu7LJ7IoKvvAcuuV571nj38TwWna//WMad32OGpVJXOpLKPp3ewhHSzJ2pv5I8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyCiFxSRZzFlEopFD/Rdixh33TImYahpMsURDi2RD1dedOfhR3o
	rr4ObfHARIe1NCOhS1xGQ6lOUyONr+hwymkm3Twuyr4V0DvCr9IT6cDS1qBl7Kih8VHJKDThg3D
	rhRk=
X-Gm-Gg: ASbGncsIShO7LRjeLof8xXZXy6oK08g/Wt3OjxVBSMWatYgpjLbQ9wqB1BgOkj35Z+N
	4ZprY/iv3ntQn3Fd8h9IiRTZEVxQbxQKysKPoVGH37HQDOjUqW49G+GF3Gk8IeZoKG44NdgtUO3
	XnHVOkkMG12b3RPAcdA1F7uW4q4XWRe79SDCHx3EKRVP1CfHGuShMJTh8/lJkVQPNIsNgFjRRo+
	APIPc0fpXRaAzzylTGuNn0zVKjjYMtX/QuCym5oUWzzA5B+q8bMe+mhj4vZ1rmg0X8R439eANGt
	+H7X+X7nUsdx2+dBHuIZyII6u/U15YlQhXre/3Ss6/aW/dCso57EcdPxq7x2MSjQ5Qk3iCUB3DK
	dGRLdt4zIpVtlSYY276/zDYFSUishc6NlNW9djFWwLv3wF8Sh5VCiyKMQBeX8HNG/LeeCc8oDJr
	PHIt2u0sYmt+5m+dr3puqcbUkqclxJKa0yYhCYtIY+CXw2G4GXS4fC3aLpFLgh5321xL5lLBuMA
	fA=
X-Google-Smtp-Source: AGHT+IGlZBAq0gsp1AsQ0UPXC2nBjtJoxvY+EDPZJp6bVuBUHBhpz3PyOja0ZFTFqwwfOMexkqHNdQ==
X-Received: by 2002:a05:6000:2dc6:b0:42b:3220:9412 with SMTP id ffacd0b85a97d-42f798482d6mr2287855f8f.28.1764841259136;
        Thu, 04 Dec 2025 01:40:59 -0800 (PST)
Message-ID: <57dea7ef-9bbe-44f8-a0dc-c933a6235c05@suse.com>
Date: Thu, 4 Dec 2025 10:40:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 20/24] xen/x86: wrap x86-specific domctl-op with
 CONFIG_MGMT_HYPERCALLS
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 "grygorii_strashko@epam.com" <grygorii_strashko@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-21-Penny.Zheng@amd.com>
 <de34ea34-1558-46b3-b5a6-79edd60ad45f@suse.com>
 <DM4PR12MB84519D61527BF82117F65CAEE1A6A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <DM4PR12MB84519D61527BF82117F65CAEE1A6A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.12.2025 05:23, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Wednesday, November 26, 2025 1:00 AM
>> To: Penny, Zheng <penny.zheng@amd.com>
>> Cc: Huang, Ray <Ray.Huang@amd.com>; grygorii_strashko@epam.com; Andrew
>> Cooper <andrew.cooper3@citrix.com>; Anthony PERARD
>> <anthony.perard@vates.tech>; Orzel, Michal <Michal.Orzel@amd.com>; Julien
>> Grall <julien@xen.org>; Roger Pau Monné <roger.pau@citrix.com>; Stefano
>> Stabellini <sstabellini@kernel.org>; Daniel P. Smith
>> <dpsmith@apertussolutions.com>; xen-devel@lists.xenproject.org
>> Subject: Re: [PATCH v4 20/24] xen/x86: wrap x86-specific domctl-op with
>> CONFIG_MGMT_HYPERCALLS
>>
>> On 21.11.2025 11:57, Penny Zheng wrote:
>>> --- a/xen/arch/x86/Kconfig
>>> +++ b/xen/arch/x86/Kconfig
>>> @@ -29,7 +29,7 @@ config X86
>>>     select HAS_PCI_MSI
>>>     select HAS_PIRQ
>>>     select HAS_SCHED_GRANULARITY
>>> -   imply HAS_SOFT_RESET
>>> +   select HAS_SOFT_RESET if MGMT_HYPERCALLS
>>
>> Why would you undo an "imply", when really we should use it more? One of its
>> purposes is so that you can add "depends on MGMT_HYPERCALLS" there, and it
>> then won't be auto-enabled if that dependency isn't fulfilled.
>>
>>> --- a/xen/arch/x86/include/asm/paging.h
>>> +++ b/xen/arch/x86/include/asm/paging.h
>>> @@ -55,7 +55,7 @@
>>>  #define PG_translate   0
>>>  #define PG_external    0
>>>  #endif
>>> -#if defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
>>> +#if defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
>> &&
>>> +defined(CONFIG_MGMT_HYPERCALLS)
>>
>> This line is too long now.
> 
> Hmm, how about I introduce a new Kconfig, something like:
> ```
> diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
> index c808c989fc..ec8f51b0b1 100644
> --- a/xen/arch/x86/Kconfig
> +++ b/xen/arch/x86/Kconfig
> @@ -166,6 +166,9 @@ config SHADOW_PAGING
>  config PAGING
>         def_bool HVM || SHADOW_PAGING
> 
> +config PAGING_LOG_DIRTY
> +       def_bool PAGING
> +
>  config BIGMEM
>         bool "big memory support"
>         default n
> ```
> Then, later future dependency could be added to PAGING_LOG_DIRTY

I fear I don't see how having an option merely aliasing another option
would help the line length issue. I may simply be missing some context ...

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 09:44:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 09:44:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177475.1501748 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR5tI-0005za-Fg; Thu, 04 Dec 2025 09:44:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177475.1501748; Thu, 04 Dec 2025 09:44:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR5tI-0005zT-Cs; Thu, 04 Dec 2025 09:44:48 +0000
Received: by outflank-mailman (input) for mailman id 1177475;
 Thu, 04 Dec 2025 09:44:47 +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 <SRS0=jX19=6K=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vR5tH-0005zN-2V
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 09:44:47 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ddd50745-d0f5-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 10:44:45 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-477a1c28778so9581055e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 04 Dec 2025 01:44:45 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d331af5sm2133764f8f.31.2025.12.04.01.44.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 04 Dec 2025 01:44:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ddd50745-d0f5-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764841485; x=1765446285; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=10upfO7vJ8RQPtB7AjY8QmUcQxUBYZu2o7pwoNTVqbU=;
        b=Wt68wcyYn9LQCX/CLWsGUIHt6CdWdnDkpaHJ9rVD7GK9aWnu941Qr9M7BrFv5LWxFd
         32FAcDqWlpG78JgJ0nyqiiF01Onzrp+jZ56hNpLSZe7asScf62CqOjUePcZLSLJ0rN8Y
         HaJVplchShhIxDL6SbCsJVmEZhZI076Yh551B/RAcCNPPmlJyPjI/S1R9ZUnAsTDDTQk
         1vIYnSTx9RIXYDX0ZWq50trhiYyiaiB+so8Nj8XYSirr0wxSkUhpp4YNSpXu2YTca3v/
         YMawSuZeKRM36AiW8/UObohu7lMNaKIfwAhcO27Q3A3QuKUKQKiTxkaM3hWDpgbnvJnf
         lrDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764841485; x=1765446285;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=10upfO7vJ8RQPtB7AjY8QmUcQxUBYZu2o7pwoNTVqbU=;
        b=EBMGBiHUSE/fnau/lKj94/Ao7E19xADL2FM2YnVrc2NkuIUYJkUmmRxAPT9G+vKhQI
         tc4hOGKlrSS8ZRKDgdoSW+4B/jKie6NA31/Idmv3gY+oqUVNRlxDkQ8UwahIsAD8BsDR
         I+tQXF9XF7ipxb5FQsN7l6uLRic4WDzskJY7jxThYgJK9s2VhD37aiLVPuAReeY2Qtx2
         RTEqPgvrkQe+Kd/P22nZdc8F4Wyzm+siwlKz/tgdGucLewD3TCPzf+a5IveSyk3faH2g
         oysEUm3LT5gKrg0cV4l4IH6vtir/StGUplwZpCs13McmdTlu1fUchKpkHDK9o9YTzUrD
         FK5w==
X-Forwarded-Encrypted: i=1; AJvYcCWb4zDiU2XnNKQCJ7q11EM2lvMMh5VbMkKH6YGTovmpw5SyjEq9rreleGMpee6aEBDlrjA0gd4VeQQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx9nfvL8Zu2ePXZ6MlnQCBYwqfmnsiPpUOw9qHI1Qtc+Jm4lyls
	etwWk7Onrw1OY5f6dUZ9j5loodiCsLigNgQghB+o/v8m3glsfowehDJz3MYbv9XaOw==
X-Gm-Gg: ASbGncsl6XC0+At2rxv7f2Ao3Txz6biPN95l1Kks/B0UrAQchUlsxebIs2SbkoR0XU8
	eHXAhzja8PE/ZL0D9Qt0wb7ircNwFNJryylblYuC4Ufj3d+rJ+yDVPHU8KXcSPIh3sRlJ4t3WuC
	Al4U1DTRVOPRP8C+SN0EtpxnohnTCEMSIZLzumxMczqSsea8a+k58bJ+kdej1ZUtyJR8EWtzrLZ
	tCyO2+KQwYV+YmnDyXFwxQ8FVVsR8GPci4ghkV7asXDKt1fBfXI7adaXaXLIIlwPEkiTsx2cPh1
	8ufmQfSbRqHMPxBOvH8i09FqhtZtOxYxQ7BroyWXViq+7zr7J24YJpc8/dNnmLwhVWq4Rbqi/8p
	Wimj+xs5d/W0tm/nWgdoV3u7UiZlrzH3al18zIUxA8y+F+7fBVhdMVRlMq2S6m4eZaknbN9KF2G
	pkym+0ipkR0B4dAKSWVMp2nNxRLOeIrGMFVYKhkDxfSESWRtEEskouuZq8DwVkyvbYiDZ1riNi8
	+s=
X-Google-Smtp-Source: AGHT+IHrDtZPMMKs52aT0kzZLDy4cepHY2+eqXjkFvzX8T5KIkiNQ/oUESwu4k0L5iP+ffM4UHOnRQ==
X-Received: by 2002:a05:600c:4743:b0:477:5b0a:e616 with SMTP id 5b1f17b1804b1-4792f244d1bmr16511735e9.5.1764841485032;
        Thu, 04 Dec 2025 01:44:45 -0800 (PST)
Message-ID: <75e0490c-935e-4fc9-ac63-377cf4324778@suse.com>
Date: Thu, 4 Dec 2025 10:44:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 24/24] xen: move MGMT_HYPERCALLS out of
 PV_SHIM_EXCLUSIVE
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 "grygorii_strashko@epam.com" <grygorii_strashko@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-25-Penny.Zheng@amd.com>
 <55d23825-fb8c-472c-9d31-5b482f32e915@suse.com>
 <DM4PR12MB84514B5C0BF7AC492D8E863AE1A6A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <DM4PR12MB84514B5C0BF7AC492D8E863AE1A6A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.12.2025 10:20, Penny, Zheng wrote:
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Wednesday, November 26, 2025 5:34 PM
>>
>> Further, because of prior issue: Can you please clarify that you have tried builds
>> with all (possible) combinations of the involved Kconfig settings? The set isn't that
>> big, so exhaustive testing is possible.
> 
> In case I omits anything:
> I'll test the following four scenario, (turning on all other possible kconfigs at the same time):
> 1) MGMT_HYPERCALLS=y && PV_SHIM_EXCLUSIVE=y
> 2) MGMT_HYPERCALLS=n && PV_SHIM_EXCLUSIVE=y
> 3) MGMT_HYPERCALLS=y && PV_SHIM_EXCLUSIVE=n
> 4) MGMT_HYPERCALLS=n && PV_SHIM_EXCLUSIVE=n

Judging from this patch alone, at least PAGING also looks to be in need of
testing both ways (indirectly, as it can't be controlled directly).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 10:02:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 10:02:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177493.1501762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR6Ab-0000qF-0p; Thu, 04 Dec 2025 10:02:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177493.1501762; Thu, 04 Dec 2025 10:02:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR6Aa-0000q8-UO; Thu, 04 Dec 2025 10:02:40 +0000
Received: by outflank-mailman (input) for mailman id 1177493;
 Thu, 04 Dec 2025 10:02:39 +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
 <SRS0=TdJQ=6K=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vR6AZ-0000q2-Fx
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 10:02:39 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5ae17e8e-d0f8-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 11:02:35 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA6PR03MB7854.namprd03.prod.outlook.com (2603:10b6:806:433::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Thu, 4 Dec
 2025 10:02:30 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.003; Thu, 4 Dec 2025
 10:02:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ae17e8e-d0f8-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WK5zaLch4mwK5Lvn8pl1sZSFcVcG8Y9oBZwZVFvsop8d5T7hiLV3mb/1rE2A0Js5mbrECOCXKG43sfvbbjYCC48ytE59VNas0W47hq+wRS0RxB2iFrWuwsMq1ZhQZdNO6WX4hhX9G+H4xOJxPsXYRmW/6y9jOvHTVZjQloAjrJdCWEQF+6Xxtz00aZ5wqnXVTOq8dWoZw79B4Rg2QS0VB0CwzRZxpsjEKjcAtj9yK8dUXoumAWbRRwkZUD4ZsGmjMtYbIap0+d6qOqZb/cwRB9xYs7tPGwfnrmgVI7tSccZDZ6uqg5I0eujVUwS+8tLwqRfE5SjTzAy8lB7PtutQ2Q==
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=UCweXumEBpQ1J8/fMoYiqHa55RBu7WSdw1mOHcoC2xw=;
 b=BIKioVY5xbYiEpKn/VU64l1Gh5bXqiO4A+ohodYC83LNLdG9lbB1pCAPjLkkyGLYAvbLdXHPYiXWKcG5s9sSJ4CMtMJfJkeKVV01t6DVICGWpmMlQw9FUrEzWTy0i18HCc+cpd097Seiy0eUAnQPIVZCXGQEVPG6TeY132Y7mECpxiJPHJORSyN/nkLBQS2rsybyGXctwKj3EITLM/uBXp0Zjlf7RQobPriN+zcjXRz+mgXLyA8b1/znJfATwwH+1jfdjYaRsNmHr3npSHACZ6VxEZ3QEZdJ2w8UIoV+5E2HRiQq5FlZUD7ZgF4MIAG30A8g8R7TUry2bXW+8C/SAA==
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=UCweXumEBpQ1J8/fMoYiqHa55RBu7WSdw1mOHcoC2xw=;
 b=x9OPoak4w/J9S9irLy4JtZnI8xKi+BjC7g9oXAFPSpbGENiKfcfdkXBcQjlAG9lY6mAwqdLDqxH5PBH5CRzaCPkK8Y5t6YVOwHaJLcuK7AIE1I9uuYEjQZYrnWUXbFiHggjTadccvSN/qXuMEFtdEsp7nHAGbBxkt872qkyPg94=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d477a21c-b621-46bb-94ce-4775b2b6a90e@citrix.com>
Date: Thu, 4 Dec 2025 10:02:26 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>
Subject: Re: [XEN][PATCH] coverage: add extended coverage capabilities
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251203222436.660044-1-grygorii_strashko@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251203222436.660044-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO6P123CA0054.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:310::11) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA6PR03MB7854:EE_
X-MS-Office365-Filtering-Correlation-Id: 9152e1f9-3b94-4d39-65c3-08de331c3c96
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|7416014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?M0pFcjhmZE9UMTJHTm52aUlhazEvMVBOcGFqa1ZQL1R5Q3krSmNyVDBKeEhr?=
 =?utf-8?B?S2RuUkhFMFE5NHBWeHpQRVlMN1lPZDlraWF5SndRSXozSWtLd2tML0VkdUEy?=
 =?utf-8?B?UkxDTTBCM1hQZWFmdmxaSDNTWnVib3o5U2hCeGM4T0xLdjE2L0hLUjFwWlV2?=
 =?utf-8?B?QWV0NVlpSkVXSitCb09EamZMUG43ckdoS2tDVVI5YVJIUEZocGZYRStwVXZw?=
 =?utf-8?B?UGhxUDZsNXNvQ3R4aVI0bmlwRFJYNy9XUDVqZkdkS1QrMXNsUGpnMmNQQXlF?=
 =?utf-8?B?bWZmVHYxZDNzWXkrTFUwOThodVJSRWFMYnpVRmdlc3RTRExMbFlnRHFZcFBP?=
 =?utf-8?B?YVkrRXdkaWJRc0FENG01bGdyMWRmbU9rY0ZTblFNK1NtZFhDTWthVHZxemJK?=
 =?utf-8?B?TkoxS0IzZ210TW1IVkdtMWRoSzZ1dUFBVmNPR3Y2UmNXT1F5cVZSSisySk5y?=
 =?utf-8?B?NkNJcTZhZXBHOXhES1gwQWdFNTVoTDd3L0dqTzBGYnVhUjgzRjJJSXlFNHJB?=
 =?utf-8?B?T0tqQ1RnNk4zZWpvNC9WK0xUUU8xMUowVEZ4d29HSUdJQStMMDYxWWdNME4v?=
 =?utf-8?B?YlBEdHRpQWpDRWJGN2tyQUhFNEhSVklQR1dkTFJkTUh3Z2JOTlcwQXFnSllL?=
 =?utf-8?B?SVlwd3loNGovd1RIWWhTMzlmUDZnYk1TVitXeTJZb0JaRWpNQzBjUEhJUVNW?=
 =?utf-8?B?MzRQRnhWalJqRmJ1cTc5RHJPcGNtY21scUNZUlpBTlRqaU5XRDJSRGQ0OGFE?=
 =?utf-8?B?a2xBYnErZWkrdS93UnZQVFlxR2VCeU51WWk1U2trVngwMGxIeGFCUHZkSkJI?=
 =?utf-8?B?WE0vTWdaME9oa0UyK1lyZitMd2tRTHVFdVUrMzVRdWpQbW1DT1llcGJIalRC?=
 =?utf-8?B?WFBMcU16eHFBMmVXM3RFbE9IUkhUcERCa0lTaDd2UGhKVXdxSHZuazBiREkx?=
 =?utf-8?B?bk5GSDB2VTZESmVhWC9ubVdtTHVRanVYMnNYa3BtVld1S284czZ3TzhhUExz?=
 =?utf-8?B?WlNOVlJrWi9PVThWWGF5U0ZNbVQ4OUluTEsrenltdjd4WWxhSlNGR2EreVZK?=
 =?utf-8?B?QzZvY1hSTWJrcnNSampDQlhlYUNMeitPM0pmdnBXbmxJOFpnek0xVnMxVHBO?=
 =?utf-8?B?aEhyMGhFNWE3bmgxZ1p3MXM2dituMTluUy9QOFh6Z1JrMCtuK1ZDRXhGd0tq?=
 =?utf-8?B?UmFhVWZ4bXFHK3JIdUZMZHJVZVFTZ1VTbTkwcWc2Q0czb0s5UTh1aGlMeG5L?=
 =?utf-8?B?Q1JnTVhjUytsN1BkdEJFeHNST1lpa0hobVNLVVZkZWNYMCtBSTNHMDdHdUtk?=
 =?utf-8?B?VnpIYjN2ZS9OTk1WRzRyU2ZlL3JvWWlYK3RnVWVadHhNZHhhUk9HYjE5S0dl?=
 =?utf-8?B?UjNPeWszK2NtMEliZVFyWVZZamZTT3hhWmltMGF3cmQwUXJQdENMZmZBSXlv?=
 =?utf-8?B?SVdJZFdmbTMrOGpNR3IwdTc4blhaMDU2d3pVNTE5eDBxdmlLRkFldFJ1OWlP?=
 =?utf-8?B?QnBKVEZhL3FxMjdvRlMvSGNBNW9MeDF4dnpkZVFYVzN5NFBZN2preDZLMmVz?=
 =?utf-8?B?cFFhVlV4Qk1lYzBycW0yN0NPOThYOSsxVEhVaUJIcUlSbEJsWC8xa1VZUng0?=
 =?utf-8?B?WUFBMUI0bzVwN1NQVEw2S0dPWXoweWdDOEYzUmRKaThKUHFJbGNPRlI3QTVm?=
 =?utf-8?B?YkFlTTZ0WHdhZk9vT3hjVU5JNDFTQ29Mb3lzK0VzMXRjWmUzWlU2MGtsRk5t?=
 =?utf-8?B?aEhzS1F1RllwZ01xbjJIVm9YQnIrRkpuTDlOck5CdUlEYUkxekI5WmhWdXFi?=
 =?utf-8?B?cmlZZUJPSmJ4V1FZbjVIa1YxN0xSaVJwbGQ2d2p4dEVRRE5PQTM3ckJkOS82?=
 =?utf-8?B?SHVjSkFwMXRiSndQV0x1dE5zRWJ2bVZmSkhJWkdsR2dtQlE2bis0WUc1TVF3?=
 =?utf-8?Q?nF41+PDrAQHPLc1LeXF+tftf3KlPjQ7V?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VklxVFNGRHpqYnZTaGtYdXJES09YQ2wveEZJTkNzaXFIWDFtRnoxc0h2NGJV?=
 =?utf-8?B?UFRQclMremh3VzlBZnhOSGt3NkEra0x0TWVPNXdNQzRUSWFDK1Q4aTdYR2ZP?=
 =?utf-8?B?QUhhT1pJT2preUtPc09vb012cGJJRkRrZ1VaUkl2YUNUQVJ2SmU4YVFnVk1O?=
 =?utf-8?B?dHNPdC9SeXpxVGxiYisxNmRTVEVIOVRPdnZWenhScGpsanFCVHA1Ry8rc1hM?=
 =?utf-8?B?MzZNbWVmK1FuY1hwQ0swME1Ib0dPTlVodENZc1FpSUpsNVY5aEFNWTBkOC9Q?=
 =?utf-8?B?dXRVcSsrSHkrQjVZemRDYk5lem9rbzVXMTlxV3JIdGFSWUtPaFZYYzNkVXVj?=
 =?utf-8?B?UWpjL0hmamxZcUxGNktNY1ZwZFFBYWpxWTBRU0RudVFiWGI2a1krZVR6Qy9L?=
 =?utf-8?B?UVc0amFidGVYWDhRUVdDVTdROG40eHhvQ2RKd0JPZWRBZllVRzdROU9MQ1py?=
 =?utf-8?B?RFFRbFU5V0NrZGZTTkk5QTl6NUNHT1NFV09qVzlFbXpJa0tXS2thMGhZNVBk?=
 =?utf-8?B?N2V4aWtpamt4cFRjY2t6UUFZeG9ZR2pKV0V2dzd4dTNJVGZZQzRKanBlM015?=
 =?utf-8?B?c0pPQlNESHl2UDNldC9OWVQwTnQyZWtmUXBCTnBjUyt4aExhRDYzWTh2amt1?=
 =?utf-8?B?QmJUS0NaM3BVc0E2S25ZUkpWc2RvNmhvUGkwVXFNdUR3MDBoS1RJQ3BmWFRh?=
 =?utf-8?B?WkhqQWhzVmJLQ1lzWGVHVitLWlBHU1c0YS94bUhQbXJGU25pRXlldGVoWVN4?=
 =?utf-8?B?aHdybVJiVFB6Wk5DelFWRFNPUnlMNHBYNkFpR2w5NW13NlpQV1lCYmp1RGhP?=
 =?utf-8?B?cUEreG1yQXVPbTVCUWQwanNZdUx1Z1hGZzBWUDVVMWZSRXZMQ2tKN05TcTlk?=
 =?utf-8?B?S1NsRUtRZnpocThOUUExTkJDQ09Fajh5Q0l0ZEV0QXpxa2ZUWnVMcHgvWVha?=
 =?utf-8?B?TU14RWlBYkFnOXFoODhvazRnWGtrNlI4ZVVEclFZZWN5MnhDcWFIa0d1cDBX?=
 =?utf-8?B?RER0MkxJTGNZdVFpcEhSYlEvZ1U1QTF5YWZZQmFySTZSY2t4R1JWeU9BcG5q?=
 =?utf-8?B?MWFZeGZhek0wNEY1Tks2K0xFaTdNVXVybjIyY2Z3V2dlbTFOYTFEbUI0Uncr?=
 =?utf-8?B?Y3F4MXhrMURPcGlMZWc2eUJmbHNnelczYmxkRWw4MEw3MWIxRitScE9YYUYx?=
 =?utf-8?B?YnU3ck5UQnZBcDExS0FjSjdxVll4aEFRM1hIZUtpS3VSN3U3UHdDUk9WYjZD?=
 =?utf-8?B?N0g3TFNBNHpEYUs0NDc2cVE0cW1nQnBFZG16NTBQU1dpNU54aHMrR2xSeEg5?=
 =?utf-8?B?aEFURTFMTDl0VGVGbzROMWcyRW92ZktVMlFUT2Q1MFAxVHMzMUhvT1JQUDl1?=
 =?utf-8?B?TzdCSy9wZVkxSHJZQ0RiUTZXa1JlbmVrUGhNUEdoUXVHTmFCWVcvdVM1UDVM?=
 =?utf-8?B?SzhnZDhoOElqRHY0RGJ6WDJodUZvbjA3OXl6eVVhYUZJQldHZTJvV1dGUnYv?=
 =?utf-8?B?czNIdUlSK290SlVHeU1Fczl2ajhoNlJDcmZxbUR1Z01tVTFtUEIvT3VNSHVh?=
 =?utf-8?B?eU5IUDZEQXhjRWxmR1NLYW9seXViclVJOUsxQU94T1dSZW5ZbE15Q2xUT1Jh?=
 =?utf-8?B?QnZzZDNva1ZrdFJNcjk1Rm45bzNWQ0xMRjZpK1g5TG5EZVoramcvYUsyZURG?=
 =?utf-8?B?SUc3WkdlaHRRYmdJV1lmempFWWJKc3l1Mm9XVEV6K3p6dFdiUEo3OXJLQVdh?=
 =?utf-8?B?eE0wVE1FYVhreE1LdHNwMThMOUh0dmNncDFXdk05UFpTUnBKUWFXL3dDRnFi?=
 =?utf-8?B?T2x6QkNoNklrMkRUMiszWXVQcjNMR2RTNU91MmFMTlFWbmtLdFQrMXVWRnBo?=
 =?utf-8?B?WTFOL3Z3TjBzbG1WLzNpcFArT1dBbkxZZWZjNnE1Zy9RWjdEcXZrVGZuN3ZO?=
 =?utf-8?B?SkYzajNtb3l5cHB3TE1sRlhFSHcrRDJJY1B1c0RDZEJFdmYralBTbUc4K0NE?=
 =?utf-8?B?Qzc5QkNaTGFKNWdmeXhEYXV4QjM1TU1TcThaeWdVdHRsRjdqdVcxY05CTDky?=
 =?utf-8?B?SUtGS3dsY0t5ak5oVU9YNFJESVZ2UWVuNVRlNmNyOENGcklyVC9oQitPTFM0?=
 =?utf-8?B?dVRZbjVLcmtzMWhMVFZsSDN2UnRLTFp0TVMwaTI0a2dIY0p3TkRPTlhLU2tZ?=
 =?utf-8?B?QVE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9152e1f9-3b94-4d39-65c3-08de331c3c96
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2025 10:02:30.2674
 (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: vIMHOWClcXY/yJ6jKzmYvhv6SlARK1OhXapFvHrYy1SXm926mecDCvRh5LfWCNGpXlsBIC3eJ7eu7ZVC9i3rUUhreXnra8gBoSqiwG6j6kI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR03MB7854

On 03/12/2025 10:24 pm, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
>
> Added CONFIG_COVERAGE_EXTENDED to enable coverage for .init and lib code.
> When enabled - Xen .init data will not be freed.
>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
>  xen/Kconfig.debug          | 10 ++++++++++
>  xen/Rules.mk               | 13 +++++++++++++
>  xen/arch/arm/setup.c       |  2 ++
>  xen/arch/x86/setup.c       |  4 ++++
>  xen/common/libelf/Makefile |  4 +++-
>  xen/common/libfdt/Makefile |  4 +++-
>  6 files changed, 35 insertions(+), 2 deletions(-)
>
> diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
> index d900d926c555..3e04e1a3992b 100644
> --- a/xen/Kconfig.debug
> +++ b/xen/Kconfig.debug
> @@ -44,6 +44,16 @@ config COVERAGE
>  
>  	  If unsure, say N here.
>  
> +config COVERAGE_EXTENDED
> +    bool "Extended Code coverage support"
> +    depends on COVERAGE
> +    default y
> +    help
> +      Enable Extended code coverage support which include .init and libs code.
> +      The .init sections are not freed in this case.
> +
> +      If unsure, say N here.

IMO this is unhelpful.  Noone wants to opt for the model we've got right
now.

Instead, I think we want:

config RELAX_INIT_CHECK
    bool

and have CONFIG_COVERAGE select it.  There's no need for any user
visible option here.


> +
>  config CONDITION_COVERAGE
>  	bool "Condition coverage support"
>  	depends on COVERAGE && CC_HAS_MCDC
> diff --git a/xen/Rules.mk b/xen/Rules.mk
> index 2b28d1ac3c18..6d66a2332fb0 100644
> --- a/xen/Rules.mk
> +++ b/xen/Rules.mk
> @@ -260,6 +267,7 @@ $(obj)/%.o: $(src)/%.S FORCE
>  
>  
>  quiet_cmd_obj_init_o = INIT_O  $@
> +ifneq ($(CONFIG_COVERAGE_EXTENDED),y)
>  define cmd_obj_init_o
>      $(OBJDUMP) -h $< | while read idx name sz rest; do \
>          case "$$name" in \
> @@ -272,6 +280,11 @@ define cmd_obj_init_o
>      done || exit $$?; \
>      $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=.init.$(s)) $< $@
>  endef
> +else
> +define cmd_obj_init_o
> +    $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=.init.$(s)) $< $@
> +endef
> +endif

This wants to be something more like:

@@ -261,6 +268,7 @@ $(obj)/%.o: $(src)/%.S FORCE
 
 quiet_cmd_obj_init_o = INIT_O  $@
 define cmd_obj_init_o
+ifneq ($(CONFIG_RELAX_INIT_CHECK),y)
     $(OBJDUMP) -h $< | while read idx name sz rest; do \
         case "$$name" in \
         .*.local) ;; \
@@ -269,7 +277,8 @@ define cmd_obj_init_o
             echo "Error: size of $<:$$name is 0x$$sz" >&2; \
             exit $$(expr $$idx + 1);; \
         esac; \
-    done || exit $$?; \
+    done || exit $$?
+endif
     $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=.init.$(s)) $< $@
 endef

 
to avoid duplicating the OBJCOPY invocation.

> diff --git a/xen/common/libelf/Makefile b/xen/common/libelf/Makefile
> index 917d12b006f7..337a3a8e1b35 100644
> --- a/xen/common/libelf/Makefile
> +++ b/xen/common/libelf/Makefile
> @@ -1,5 +1,7 @@
>  obj-bin-y := libelf.o
> -nocov-y += libelf.o
> +ifneq ($(CONFIG_COVERAGE_EXTENDED),y)
> +	nocov-y += libelf.o
> +endif
>  libelf-objs := libelf-tools.o libelf-loader.o libelf-dominfo.o
>  
>  SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
> diff --git a/xen/common/libfdt/Makefile b/xen/common/libfdt/Makefile
> index 6ce679f98f47..8c62563ccdbc 100644
> --- a/xen/common/libfdt/Makefile
> +++ b/xen/common/libfdt/Makefile
> @@ -5,7 +5,9 @@ SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
>  # For CONFIG_OVERLAY_DTB, libfdt functionalities will be needed during runtime.
>  ifneq ($(CONFIG_OVERLAY_DTB),y)
>  OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section .$(s)=.init.$(s))
> -nocov-y += libfdt.o
> +ifneq ($(CONFIG_COVERAGE_EXTENDED),y)
> +	nocov-y += libfdt.o
> +endif

both of these simply want to drop their nocov-ness now that coverage
does work for them.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 10:24:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 10:24:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177509.1501772 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR6VJ-0003hh-I0; Thu, 04 Dec 2025 10:24:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177509.1501772; Thu, 04 Dec 2025 10:24:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR6VJ-0003ha-Eu; Thu, 04 Dec 2025 10:24:05 +0000
Received: by outflank-mailman (input) for mailman id 1177509;
 Thu, 04 Dec 2025 10:24:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8VGT=6K=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vR6VH-0003hU-8D
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 10:24:03 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 594eea3b-d0fb-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 11:24:00 +0100 (CET)
Received: from DU2PR04CA0196.eurprd04.prod.outlook.com (2603:10a6:10:28d::21)
 by FRZPR08MB11072.eurprd08.prod.outlook.com (2603:10a6:d10:13a::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Thu, 4 Dec
 2025 10:23:51 +0000
Received: from DB1PEPF000509F2.eurprd02.prod.outlook.com
 (2603:10a6:10:28d:cafe::73) by DU2PR04CA0196.outlook.office365.com
 (2603:10a6:10:28d::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.10 via Frontend Transport; Thu,
 4 Dec 2025 10:23:49 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509F2.mail.protection.outlook.com (10.167.242.148) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Thu, 4 Dec 2025 10:23:49 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DU0PR08MB8446.eurprd08.prod.outlook.com (2603:10a6:10:406::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.11; Thu, 4 Dec
 2025 10:22:46 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d%4]) with mapi id 15.20.9388.003; Thu, 4 Dec 2025
 10:22:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 594eea3b-d0fb-11f0-980a-7dc792cee155
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=QLuL56jmqP+qqNV8/MfXGmnVNQ1RocjlPf9QpY4ifFsWEZsLCrYHW9vRGjYTVLT9oPvxxMfr/HqL0Ny2xECpErHmSRk1azHnOGZICu3NF+mdK3culxOUg+SBmwvd8twrFg5h9ytab/o0K0VTpw5Q4k1Jdr52couI8AC6Dt93Zt3AGxzRc9PffIxvmH4XtVufwVCFm6gUje1iorMbtHUg1FJ46LMKSnHg0BTE4D4a1P+4CPw9e6tnRrm78FudCYyhs10Rm5uWEqd4kYMeuQQ2SuwSTyzEklSrjqcrpeOyMiH0p497M0bKwSBa5fOVR+rXVKv7NFvv702mXS56oUsG9Q==
ARC-Message-Signature: i=2; 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=wsLVfJ9WxCpjPL4WNSGZUsCkleU7OHa9w+Igy9urFs0=;
 b=DWR/M8wqjvmxLEhqbSVETK1bebyH8DpoV4tt2gwSSFeiTUGpmvT+/y5n8soyTLXbA6PVIk3UV564cpodjfiy2MQ8AEzCeMUsmZDyiZmXE6iC2hrX96lm06Tn/xpQkQPUsGwCd7nvyCh33MYQSWzb5Q2xxWmJg2VI5A8brAfT0vAbw5EQeBD3nQxS+LoRbqCagvASXvHD7WXbFWSAUnmJ5Nd9zU9l3GYG1ZKhe71s3/qDcFWJG+NpMyz0cNFc5tleB1mA9n1QQp+JvX54H4pipDvUTI7vpTX9J3BiFEHZHje4Rlf4IvwA236xR+huBXX0nitvYlkJsfHRU5PveUjQ5g==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wsLVfJ9WxCpjPL4WNSGZUsCkleU7OHa9w+Igy9urFs0=;
 b=n8PGWRaRa1SWa+WiVEd8xCdgQXcEb5UJuU2K8yJq3zZUlZMr4+e9yg+GtGdBcvNILSmXQTFjPN4OMI5nqgLvajtLTOSjXnC4BSGDcbPzGmbN5AYw8Ne2+D2J0D/yjSSJhJA48dJyaaIbB9JfwTP+4BVhnvBcb3+8osoKOXBc5Sg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Hj4Jt7DhZGnP2Z7Gii+R/GFpBvur8XBPSr8nUKuHKF56lU3B0AQZvl0NZIFeAzcMmFbL7divbE30NX4Lr8fMy3Lz/+gEtivkD4yqL+UYoYXa8yP0dEEk1Yhtm/sF1tQEYElToOh81kfTIHsjWft0oi9iWIU9YCat8n/wpZbAvPpJ4x82uj7RMo30zPmoHiYz9nffTpWvtxilZMsUfAcwPQptQVvm17RYwBVggtIcymHV+ar9FGZwAz8aOYlG/r6dZR8S/HMRb3v/6+BkQHdmfhvJ/q+0iqHCG3y1BpSHpaAZkznY+9FKLk/Sj7fyTo4kgq0JpCFaujAePlM3Ha9ESg==
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=wsLVfJ9WxCpjPL4WNSGZUsCkleU7OHa9w+Igy9urFs0=;
 b=pG9Mz8B6YHSLa+8K8pnt6crjFK+ewjY8ky1hS4KgQISHMMgHyZWxXmBT+Cp9QmfCjfl6BPpOzKMeg1UoNLki0wt+rInMkxbbwHVxWKa1tZ8sYvN34FVNAjd2ePdO3ct7uz5JJt7i6XmSPoLs0Xf0caO7qdZAR3DtYXMKGud/AijiG2yCnQwAT3KRNH/5qXoCMtgG5EeYwZ4gylAbvr/XLzAc4pI32Q+HIMmucNtuR39ymPcrPfOP2FytmcMNs0+pz4DUDc4cuwDj9KjkeP/od5LLmAOi9mt2HyPNrjW9fA+n6QDaJFf/1xdFipLVcf8vLOVZb3RsJC4vlJPWU81vuQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wsLVfJ9WxCpjPL4WNSGZUsCkleU7OHa9w+Igy9urFs0=;
 b=n8PGWRaRa1SWa+WiVEd8xCdgQXcEb5UJuU2K8yJq3zZUlZMr4+e9yg+GtGdBcvNILSmXQTFjPN4OMI5nqgLvajtLTOSjXnC4BSGDcbPzGmbN5AYw8Ne2+D2J0D/yjSSJhJA48dJyaaIbB9JfwTP+4BVhnvBcb3+8osoKOXBc5Sg=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Hans van Kranenburg
	<hans@knorrie.org>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Michal
 Orzel <michal.orzel@amd.com>, Jan Beulich <JBeulich@suse.com>, Maximilian
 Engelhardt <maxi@daemonizer.de>
Subject: Re: [PATCH v2] ARM: Drop ThumbEE support
Thread-Topic: [PATCH v2] ARM: Drop ThumbEE support
Thread-Index: AQHcZQG1izPOHi/67kCiRUDJelIfObURRcsA
Date: Thu, 4 Dec 2025 10:22:45 +0000
Message-ID: <4C8CF7CE-BF53-4D0D-AD35-3C62674401C3@arm.com>
References: <20251204093802.1717792-1-andrew.cooper3@citrix.com>
In-Reply-To: <20251204093802.1717792-1-andrew.cooper3@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.200.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DU0PR08MB8446:EE_|DB1PEPF000509F2:EE_|FRZPR08MB11072:EE_
X-MS-Office365-Filtering-Correlation-Id: a19b7c05-0766-402a-7160-08de331f3709
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|10070799003|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?5cH8dmlSQ1CI13h3PKgfKeFOgr+2F6nSGQ/T6kBrd1ylWyp8MEGJaFYXtMjd?=
 =?us-ascii?Q?+nAGrtozM+ZjhYi88fuwgAXuBDJKUZs8StF27rlN47z4xpbtg8pl3NBHTqyk?=
 =?us-ascii?Q?8iGaUxf792L5yzCNxL12+b/5WfMOsZOQl2nauJoY1GsPEiK7kRgSD3v9P4vE?=
 =?us-ascii?Q?ZcX3HNmsXXS5h3tUqP574TTvQU9SfKxttOSQn6lLmfsHjH6I/CeLn8QLBz4S?=
 =?us-ascii?Q?fsPpzQbQr1qUZK8pCVAM08h6HmYZwfCsjc91RbI0UC/9x3Yv8Nii3xQA9VIl?=
 =?us-ascii?Q?49Afvqv7cQDX2W/u9IHym45omAykwmKX/fphvws+HE7FAMILMJjNxtlIedFP?=
 =?us-ascii?Q?n3j7uFlu0k9fTh3JsYERYau0Cspku+T7Jy3ejyLDTh/AS7FGkUeBo65ug2e5?=
 =?us-ascii?Q?XExKJ6FEd+YYX6OSMjpRBz0jWdxS9iVjalMIiRxn3fBBC3W1eWhiXtlQmQWe?=
 =?us-ascii?Q?hww5jegAQf/1TueX6J9gA1mmvlcrtwMBhYx41opRZjJGvbRQr6Is7TWrUWL3?=
 =?us-ascii?Q?gdEqzeVo1TJiKeVL0Zc3N+LlPwBSeN3gW9Lyu/z5wUTxi4WBe156h6+hJ4vO?=
 =?us-ascii?Q?iYrDkuCRcWNm9sRlgbK+uqyOYuA9FRTWKiFspvtROSnggGd8w6RLuH4hvcMn?=
 =?us-ascii?Q?HkjxCexd0QfYd/ClTfZQ2wBZHf55XWfK5o825VSbLGJUmATjCnvvMPbh/Xpu?=
 =?us-ascii?Q?9b0WsrpPBaYqFzvTnj/KHFs+MU8Mvr4AnQNYb3/bADPKNHCtS19HuO7gLtF9?=
 =?us-ascii?Q?Sw3IBd8zqeKH3/yip5TYRB1IPnUvPTWp/JvpvYCWZ7J2Mu1jfroDf5GX3dTe?=
 =?us-ascii?Q?3f0FQmIrJKNafIxL5NeRur+DDbHxHzMIXHjLDUJt7Zk59BNrTBo2fD4cEPct?=
 =?us-ascii?Q?/umnn8YBWKExFCVG8+1241lCGy0eGLTSEb5UHsg26PWPMInVuL6gueegGlC9?=
 =?us-ascii?Q?ggzE7LXJBSuDGCgoJwvWS969MXv3fgW9xyBMXhJMGp0P9qTCeoEDBC2GirP8?=
 =?us-ascii?Q?Vuhg0w2rjNUZ4nichZfhPLmDFcQcCInGpAem5BZICA7J4Q4Ats1dikxOoQ2Z?=
 =?us-ascii?Q?w296ATi1VjlyFAcsd334O1IqlP8x+IeQCR4JVc0/WGyHVjJ0jAn3VnDX8e53?=
 =?us-ascii?Q?GE7ADtQhU/YVTZtMbDa9WgnUSySMpx08WBweYZeAzCgZVP4kC6QHALsu2Uln?=
 =?us-ascii?Q?aYRE27BFaYhPvj4EWID7h8dZxQwgW1Vsda+cmbTNg38AbHidlSenWQZC7Y7g?=
 =?us-ascii?Q?4fsI5RzwJ8KSBz5dDHD4emsDqVxOqon5bJLolk7jg2KYbcaS6UjAnkIZe2ey?=
 =?us-ascii?Q?fXyhPhycfc9CJq6h8aZb8sZJyj1PGiFz9ZTMBydODP01v8ztdGt2tnZ6aJoI?=
 =?us-ascii?Q?Lh909auSun8D3wpIyVrsY/p126Gn2Jbv2ngGyBIKe7W86d6QaC1U4yZ4rm56?=
 =?us-ascii?Q?o7Fbl2CKTrk0Q/Xe0UZDMDjtKkhiQBoAtvOLHlmB2TKwRnEvaSW5hIxZ78p0?=
 =?us-ascii?Q?6KQEI1CajwX0uZ2X3C8QIF18i7WWYUKRMNCb?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(10070799003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <B269929AD7725242A021D009420E8E81@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8446
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509F2.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	b63775a2-bcc8-42d9-3c34-08de331f1148
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|14060799003|82310400026|376014|1800799024|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?dDuLWBoEsuwRH8JFGgcUympIChF5RYGf7ot2qngTLQpS3xu2LLH/OvpyLphU?=
 =?us-ascii?Q?Zfr7v/XIMzPLHH3JL7sxUV4aCgVXzQXjQjE1nTA2n82+72afIrVC4Odyo6Jh?=
 =?us-ascii?Q?wuuNzz5M195IOdLAwBhv5YhOsoBR70m7Kg8v1tbZFP1N8jVIPMIPnpcuCsXJ?=
 =?us-ascii?Q?nSxBpmoEnPqoTuVpZm60asF3pEuk5MqJJrufPv/hSJAUUxdzU70AkrzDxN1L?=
 =?us-ascii?Q?UY+JbO24uH1lM4fV3iPOCKQTF/bZS65Xqq1F5RgATXXp5JV0pFR14YtB2tP1?=
 =?us-ascii?Q?30iXinajY1YfPKgN6Ll/U1Qzh0A4P0XY1TojXo3MB5sYwrsLIBYJYa3P9PKt?=
 =?us-ascii?Q?fRSzPnW/vgtrVbF5U3Yt18jhL49xxtJumSubzCoylYmfVGE59kzNoewg2laj?=
 =?us-ascii?Q?Kd4H0x/xHudGoAtIU8EZIcPCDUSH03tm4wGacEKoOJvE0hk6xyH4X/xGZDr+?=
 =?us-ascii?Q?tOl38DPCqESg7n/AUnSGGkfaAoBCnCfgYK1G17gdmYf89BNrJyMHkGyCtdtd?=
 =?us-ascii?Q?8uWNTC9Ln69BORbGQak9D4F562Q/IyCNrgYHqtCNlZoqy0Qvj+T+cw8M5IqR?=
 =?us-ascii?Q?fpYYdMx9lPGA657TiKGh1/JWI1fdttrQG2kCkle5VkTtIfhEaXmjsMvcuQMo?=
 =?us-ascii?Q?SBjrlfEdXfzeBIurPd2y3QpRBA9/J5pbsvQNrO2W66dlhx/MRsM52RfmTY2v?=
 =?us-ascii?Q?kpgN9K53rMXwStackBPhfxqQzdiPXYzNMhkK32H0yCQJVMvKxZohpeOcKoc3?=
 =?us-ascii?Q?GiDZgCWwbstGRbqF1fTiSG72bf24oh+VVd96TBR3wdWUKzFOPmDeQ7hqekiM?=
 =?us-ascii?Q?2PeUtO+ED5+5wCuVvL1EZrfeQtcTV20uTPC7LMz7eFAjKa1Erz/oPxfe6tRd?=
 =?us-ascii?Q?evxU+XhgngwhA1SnZD2hwhnS9/8WVyePtFk+H6fpulf0J5dvp0nmtbCv8CXk?=
 =?us-ascii?Q?8Ju4ZRkbateGQg/EjuHZ4q5oPdDNwPm2AdZTQ3PM/4ghmjhMBQBCCqqvOZdb?=
 =?us-ascii?Q?9r966UXyt9QIwhaJpzWSt0wD6rabfTAjAawpsonFmcVZ3H7EARuNbsr77+8J?=
 =?us-ascii?Q?bXxKx25ATqH2K7IJNoYTSvXOIpgBMu0pDu+ngThJG65Fn6d0lXI1et97R6Kl?=
 =?us-ascii?Q?2L3mDp/9tiCMCgE1+EP7uTvCmoGEAe6zJls1dzWOi08F4zqTA6Z+me5myRlF?=
 =?us-ascii?Q?vKWpClX9W//pndgik4vDASCjWuisbGN7spzdcBaF0OXWv5aEYZHU2d4BWZVv?=
 =?us-ascii?Q?PmsQerVtgi/mrBi7wz9rl0moezOGEvmqRYSxjLkt5opE3+S3gLrFTbtpBF4a?=
 =?us-ascii?Q?8Ii+alA0X4yKAIPGJbNZTt41JV8TMw8H7D2ghJ93vgSwT+sBvaty0xVMwJO6?=
 =?us-ascii?Q?DX5sStHDkUK//akhkTZ/4oLUPQRQQCQG52hFu5napiRVqg7DZzdOM/XOtFmf?=
 =?us-ascii?Q?nAdN7FC0Unkua+s6UFD2vF97kbu/srQpwvAIEop8A+wGqkGTIHlKkdiInfyR?=
 =?us-ascii?Q?/3zyPIW0J+XTV8ozPhkjg5IWorfntioOeq8dwynRXlPDuyVXTtAm/Zq8V7zf?=
 =?us-ascii?Q?KOAc40ABbmuP+sQnWQ4=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(14060799003)(82310400026)(376014)(1800799024)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2025 10:23:49.2538
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a19b7c05-0766-402a-7160-08de331f3709
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF000509F2.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: FRZPR08MB11072

Hi Andrew,


> On 4 Dec 2025, at 10:38, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>=20
> It was reported that Xen no longer builds on Debian unstable/sid.
>=20
>  Assembler messages:
>  {standard input}:474: Error: unknown or missing system register name at =
operand 1 -- `msr TEECR32_EL1,x0'
>  {standard input}:480: Error: unknown or missing system register name at =
operand 1 -- `msr TEEHBR32_EL1,x0'
>  {standard input}:488: Error: unknown or missing system register name at =
operand 2 -- `mrs x0,TEECR32_EL1'
>  {standard input}:494: Error: unknown or missing system register name at =
operand 2 -- `mrs x0,TEEHBR32_EL1'
>  make[5]: *** [Rules.mk:249: arch/arm/domain.o] Error 1
>=20
> This turns out to be an intentional change in binutils.  ThumbEE was drop=
ped
> ahead of ARM v8 (i.e. AArch64).
>=20
> Xen supports ARM v7+virt extensions so in principle we could #ifdef
> CONFIG_ARM_32 to keep it working.  However, there was apparently no use o=
f
> ThumbEE outside of demo code, so simply drop it.
>=20
> On ThumbEE capable hardware, unconditionally trap ThumbEE instructions, a=
nd
> drop the context switching logic for TEE{CR,HBR}32.
>=20
> Reported-by: Hans van Kranenburg <hans@knorrie.org>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Looks good to me:

Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>

Cheers
Bertrand



From xen-devel-bounces@lists.xenproject.org Thu Dec 04 10:45:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 10:45:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177526.1501782 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR6pU-0006fX-8N; Thu, 04 Dec 2025 10:44:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177526.1501782; Thu, 04 Dec 2025 10:44:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR6pU-0006fQ-4n; Thu, 04 Dec 2025 10:44:56 +0000
Received: by outflank-mailman (input) for mailman id 1177526;
 Thu, 04 Dec 2025 10:44:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xrib=6K=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vR6pT-0006fK-3r
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 10:44:55 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 43255239-d0fe-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 11:44:52 +0100 (CET)
Received: from MN2PR19CA0038.namprd19.prod.outlook.com (2603:10b6:208:19b::15)
 by IA1PR12MB7615.namprd12.prod.outlook.com (2603:10b6:208:428::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Thu, 4 Dec
 2025 10:44:44 +0000
Received: from BL02EPF0001A105.namprd05.prod.outlook.com
 (2603:10b6:208:19b:cafe::e8) by MN2PR19CA0038.outlook.office365.com
 (2603:10b6:208:19b::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Thu,
 4 Dec 2025 10:44:44 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0001A105.mail.protection.outlook.com (10.167.241.137) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Thu, 4 Dec 2025 10:44:43 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 4 Dec
 2025 04:44:43 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 4 Dec
 2025 02:44:43 -0800
Received: from [10.252.147.171] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 4 Dec 2025 02:44:40 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 43255239-d0fe-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dUNzdIcrBWBZb06QVp3CzjOkLxvD9Z2qKS9hNZE6EqxMVSWrdIbES1o4YVj5+WOj/KNryogDxXx9XZ4uuGb9JpLv69YyFA4E489aV/Q2+3VvmeI7T+OFYck9W37eTMC3yaVJVwMPsvnpzINVA2HWB0YvDR4rG7jpYxqtOilYXO0/ecscP5mq39/AfOfuYviBYWUTZauZhkH/Gz3Q+x/7qKqm3tTCzf3lrb8jbicWUWuZQUOBmxygJivNw9rF1o714WWpp91XZuFxfeoon6s/BXLtX4ZDLTCE9/7YtU08oq7a17PxtPAznz5CPn62oNtDa/bQxF/F6Jw2KxlgH+ZfMw==
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=uAmSWHtRSeRRoWGuiFgmMtNkI/N0W1RABCIEAbTWxec=;
 b=Gl0vpTh597METBS0826u64rpbnMLFaWtQxZ0D4GRoZM/VZkfEBc2WyGDNzLsAo5CC2IQgmTctpO/pZ9HMyY6Ovc6o/HGqYOmF1rDKjA3pByl3mhP/CnTSATEEdO32hggOX8uqLF5MY3bJRyf688yxsT1XvpHm988ABEaWYazG4epahKmqZMvO1ow6EyVKEvPlfeMeqs+1e+hZkmpqAzQOm2FjkhNVzZQajco5lgaQ+3NF75xFZkrgjaX12vyVUnPBGSxTTdH3x8epVcXHaNsvbrYP2Pz2tZTZ96cZC3n451+/HUrA4Nbq9SF3u5HFgp2/w+p5J6wGJdHzNHtUUb2jw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uAmSWHtRSeRRoWGuiFgmMtNkI/N0W1RABCIEAbTWxec=;
 b=M3tsCywiCmyb92MZGHFBZNfr+iWyVgYf/ZKArffwTv2NX6WwJ1M+oC5FGyvzkcFYVvCeoITdTb6NoUJoauGt6rwVcWx578zbwZljkNNfqIxFo+NzRZSEs3+PdyoayP90X4MrPMA5cbfNsClZo+DrTMOu9Af/XYE/yqyQJMLZxFY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <30094c9c-3222-4347-9c83-059aa43f385d@amd.com>
Date: Thu, 4 Dec 2025 11:44:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/6] arm/mpu: Implement copy_from_paddr for MPU systems
To: Harry Ramsey <harry.ramsey@arm.com>, <xen-devel@lists.xenproject.org>
CC: <Luca.Fancellu@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Hari Limaye
	<hari.limaye@arm.com>
References: <20251128095859.11264-1-harry.ramsey@arm.com>
 <20251128095859.11264-2-harry.ramsey@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20251128095859.11264-2-harry.ramsey@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A105:EE_|IA1PR12MB7615:EE_
X-MS-Office365-Filtering-Correlation-Id: 8e69d79d-a5ad-42da-984e-08de332222e0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Wm0rSnpsWFR6a2pObCtJZzl4cVdESjkyQXBZMkZidWlYQXJJdFNiNHIzNW40?=
 =?utf-8?B?dkRNMkFtT21tUjQ5dWMwazBCNVRIUmZ3NFJ6VnpqNlhBT2tIMERmSTVxQ3JB?=
 =?utf-8?B?QXhoM04waXkvc3ByVGlHNmg1Q0k3dDdLNnhwSXZ4SHdMMEpPZ3V2QXlCZm5I?=
 =?utf-8?B?SlZiaGxLUGZMT3pDcEhUSDVRQ0ZzQlJPTEkra0x2RnNtR05yemtSUHdGVXFw?=
 =?utf-8?B?bXlVMGZOcmVFbGY0dTYvMUVpcDlMcmQzUzRFK04ramRZdDdBalV4VjBad3Uw?=
 =?utf-8?B?TldzWGl0eDNONUNKSStxQjhqU1loWTNaNjJDM0lVc01oWFBROEwxa0p2eGs4?=
 =?utf-8?B?Znk2cTU5eW5jV3g1MWNVZFJXZ2NhVEQ1YTFlaGlPRHd5Q2xqS0crRzVncFh3?=
 =?utf-8?B?OFlBU00zazBKNEdtbUJGZFM4NEpoRGtPS0o1ZEE5dFNlbEdOM041bW5XT0dr?=
 =?utf-8?B?Wk11QU1SbElaWE5pYVBGMlIwRlRGR3pQZ20xclFDb2RLQXFsRVJ3M2ZBWDkv?=
 =?utf-8?B?ZUhzWEthT3NJK1Y5ejFJMDhhYXlUejBLdHV4VzV5RDJXRVNPanpsamFENkNo?=
 =?utf-8?B?NnBKNXgzNHN1RGEyZUhZSDdNeU82YmFUQ0F1N0h5blAveWpSWVFYb2M4bElK?=
 =?utf-8?B?QXUxa3JuaFlPNmwwSzZxWEhidGdmamdidXZwV1VwVjJZWkpXelVDRVBJaGsr?=
 =?utf-8?B?aWxpczBWOXZBMkVDSWxVZjFlOHA4cXlQNWY5SDJpRXZEN3B0STFOWFNGL0FE?=
 =?utf-8?B?V3kxbUNCUzJzcEdLYmFkQ2tkNktuZlpna2psY2I3Nms1Lys0WU5yRTBkMUhq?=
 =?utf-8?B?OUVVWFhRMllRVnV3azI5Vnhob1pnTW9MRm85K0Yyb2hvc0pnZUtVc3BjbGRS?=
 =?utf-8?B?Y09ySVVTOG5BMFNkbnQ0VitBMzhpNWs2dmpROStobUM0Si9sL3JHanc0bFpx?=
 =?utf-8?B?TFBOTHpjd01pd09DbVFnbHNnNCsvWHltMVlhem9lMjNRcm5CN3NtRDJ1R0Rm?=
 =?utf-8?B?QXIzTFZUUG5aTHdDSzB3d2NDTEwvczM4QXdGQ3NPTjRhSFFVb05IOEdIemJM?=
 =?utf-8?B?N0NTZGJKak9ON05kR1hsVjJlb0lxMmY1a2JodXdpYXBuam9VNURnN3k5SmF4?=
 =?utf-8?B?MzVkdUpZd1JiNHcvNHpXWmhCS283MGNZUEpLMmF2T3pNS2FQYjJRN21ncENZ?=
 =?utf-8?B?SjJCMXFSR0xZZFhKenNXeDJtSWFuNExtUVhEM3c4MEFINmJ4RUFCWGVIOUxB?=
 =?utf-8?B?RGJOY21zOFpvMEZNRTA3emRwckFISHBJbzlKR3BKUkp0UGRlMEpibnlTZ2Z2?=
 =?utf-8?B?dEJPWktTZ0hNZFhlU0hzM1FWaWp4QmdrWFVUU2QwejZWNFI4SXg2M3R1OXpj?=
 =?utf-8?B?aFQvcnliVExUUUJUbCsrdEsyRm5mTFFoQmZPYTRiQnh5RGhlTm5XOFlCYXcv?=
 =?utf-8?B?VytNOW1jdUN6QTdZUkNGQWs5czFTa1cxSjlBRTdNcU0rWXVOTGRGemM5NGpL?=
 =?utf-8?B?bSsyZTY2TzNuWlRWanRsVFdPODlZdHRYZE8rNHBiZGpaWXlybE8rcDJhckty?=
 =?utf-8?B?ck1WZjBSODdLY2E0YWZKa2dTK01LTThCNVRBblFzbkFDYWNpVnJqRVhLaEdq?=
 =?utf-8?B?b3hmNGhvRVQ0bmx2NzRtR0pnZUR2SkF1aXBZOGpOWHN2cVRXemlBbXBmZTZY?=
 =?utf-8?B?YURtemZ5K0ZiU0g3V1VvQ1FvYkxFWXR4R0xteExxRkxnQlVEMXZqUEVhVThR?=
 =?utf-8?B?WS9nczQvV3k4RDFFYTdnZ2d2TUpVZnllNmtTaWZFci9ublM2YThRUHYrMkJ0?=
 =?utf-8?B?a0M0UHRKeHNoOU5ZU1BFZkZZR2N0WUs1OVE1b2VoQzM0Ullnako1aHcwOUdB?=
 =?utf-8?B?czlxVmYyRHhLTGh4SU52MmdWUEFLcC9QcjFuK0ZLb1FXTWhiK2tESGxkeUIx?=
 =?utf-8?B?T2FmOXpWWFhra3YxUlRDTnlmZTZjdmIzNkppbGtDK0pTUUFIbzR4eW9HU0dW?=
 =?utf-8?B?TEVzWGJ4MEJpL2JKOHJTMHQ0Z3ZCeDJNdE1hSnFWeFZHVWd6QW5ESGRLZTU1?=
 =?utf-8?B?aEhCc0RRVjZLZUlrSkVhbUxFaFRBVVhiSi93WDlhZWptZElDbmQ2OWNrMlla?=
 =?utf-8?Q?0HNU=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2025 10:44:43.9789
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8e69d79d-a5ad-42da-984e-08de332222e0
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A105.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7615



On 28/11/2025 10:58, Harry Ramsey wrote:
> From: Luca Fancellu <luca.fancellu@arm.com>
> 
> Implement the function copy_from_paddr variant for MPU systems, using
> the map_pages_to_xen/destroy_xen_mappings to temporarily map the memory
> range to be copied.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Hari Limaye <hari.limaye@arm.com>
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Dec 04 11:00:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 11:00:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177537.1501791 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR74K-00011u-F9; Thu, 04 Dec 2025 11:00:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177537.1501791; Thu, 04 Dec 2025 11:00:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR74K-00011n-CH; Thu, 04 Dec 2025 11:00:16 +0000
Received: by outflank-mailman (input) for mailman id 1177537;
 Thu, 04 Dec 2025 11:00:15 +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
 <SRS0=GYI0=6K=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vR74I-00011h-Te
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 11:00:14 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 688e7977-d100-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 12:00:13 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DB8PR03MB6153.eurprd03.prod.outlook.com (2603:10a6:10:142::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Thu, 4 Dec
 2025 11:00:09 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9366.012; Thu, 4 Dec 2025
 11:00:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 688e7977-d100-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xTUIPvP/4MRD/tU0Zx0cf7OWJ6qdVHbo4ukg+H1C978R5YGrsufMe17yv2oZqUJHiOcm5SAVztJ7OYaX8R5bdj4//yRwAUsiqMSawP7PJ6pkTpIz9ovdKSdPYzp3XOhxJdlr0U90zIjmFo7+pRrK0D1cUbYYBcd4hONeVF4ewLvpV08LQXoRmjLrxyRU4AK59IutcsW9Qyl89kcWqvoZcX7FQY8liNym15w4sqpubXXrEvG4KJhTaosMn0M++yGCjwgku4XoVWxLai8HSjoQFX/+qy93SUVvywZT9GqOkvse1fMbIRXV37fHJyOzEElJaGeUkAbqfJQJfV/4UPY0qw==
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=rgtDeA3zaJ+xMRiXlr+vBIfPXVeV264YSu8ULpZ6lpY=;
 b=SOJUcIvr5MutHpHygcLFamuFVKA6ue03PbKJvuzCjG8FbEVanjkuPFonD76zaFGOT4FIDhbPDrxio+EevID3bU+TBaG+oPMKyMhdQq7AN8C7idf2B3RtbfBwtQFbu24GrKoxS2nGEsZci7NyFze3QSiDtyQKixd1zDw4jedn/2lCiqxdTRjiwPorYQsWKeQ1cuaQdr7HDc6pf04XVaAzSuhpksNooUPAiEeFGeWotMOk8WpGiDt0s/zJu8A+fwtb/Ep7SUOnV9bRRz5HTuVdRn2peoT8pbq2MbhLfNplkj+JcypCz9sCf4vFEG5jcy8L9J7caXd7ha08CQq569Yp4Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rgtDeA3zaJ+xMRiXlr+vBIfPXVeV264YSu8ULpZ6lpY=;
 b=T46KDXPeNKY+JDqtTXlDAoZydnkCc7wgZMeMzwTvNVewa2HB2nA+hrP26hsdlweDqW9ceAEfA3To/Pxmm5VWoF3qOWbslrgc+Jix1X8FPXr5xxaMACwzZH0WckXTC/fYdPVJPOABkcg710lezPKgCK8nFsEbVcIUbCEsDRMRVzaTBa1WWXjKFYVPIao0EkqEFNtEUZy0zOBLabvLum0wtrhI2Gak6XBELWTu0HwUGd8XWN2071pSL174+/oTBYrqkjOOklOFpwoFfGnk6EftgHFrzOVLgsmcqpZ/GDW0FnFZWPt7dbvfGEFg13HEvwTsrXSHrE/L4lxWyY8c3UEjxQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <7a920fca-8945-41de-ac3d-864ff03d571d@epam.com>
Date: Thu, 4 Dec 2025 13:00:07 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] coverage: add extended coverage capabilities
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>
References: <20251203222436.660044-1-grygorii_strashko@epam.com>
 <d477a21c-b621-46bb-94ce-4775b2b6a90e@citrix.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <d477a21c-b621-46bb-94ce-4775b2b6a90e@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA0P291CA0015.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1::20) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|DB8PR03MB6153:EE_
X-MS-Office365-Filtering-Correlation-Id: f6f58ec8-ebbf-4a54-0003-08de33244a9c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NXFrVGdzRmlyQnBaM0xSM0hXdkdUeHNHRDNucFVLbkFkbUhDQ0FnOEhmN0hu?=
 =?utf-8?B?WDRkb3JyZmI4b0FZSUxPamp1eE1rT0JieUdObm0rbnlsVkRBeWZ3Tjd4Vi9l?=
 =?utf-8?B?VE5wMi94eUhxRWszQVlrWW1Sa2hDdktRbjNlMWRqU01VZmZOaE1GOUpjc08w?=
 =?utf-8?B?RjJ3Y2FQbktRekdERzRJYWhXbm1hS2FMMnl6YVhRQjdCVDBrRVdzc215S01U?=
 =?utf-8?B?ZmdLSmNFdms3VjJENS83TCtDQWZFZHVSWnlPcFc5VHlheGs0WllYWXhhSkNa?=
 =?utf-8?B?aFZ5U2RmOHJSemxCblYwbFI2REJWNkluSWVlT0NVZUV4dUJzS3B6UkVySHhC?=
 =?utf-8?B?b1ZzRnM0Zit6MktPNGlWamVBcnplTlRQZDNHcVFzcUIwOTQwT1phSmwvYlRr?=
 =?utf-8?B?U3dEeDFGcnFhRXppdGNzUlp2T1IzYUFJTi94U2h1UkgzaEx2Tmlld1YrdndY?=
 =?utf-8?B?NTFyaWFOakZMZGx4blVzQUdvcFpha09zNnRyaXJ5SDdwMVBBM1RNdDMxYWdO?=
 =?utf-8?B?QVNPem9GeGVWSFE1K0xQbTBpUnBnMEd0dnlKdlZ3S2Z6OGxFSXJVOHVEU2VR?=
 =?utf-8?B?aXh0QmlWZzd1OXBvRytZWnVWNWpPd3duNVJRaFZraW1rTmlDbW9ZbklpdTE4?=
 =?utf-8?B?QU85L3hwS2pVRzRMN3VDWElHUHVlQ1pNS2FqcHdnMFB6ejliajlEYnBWTzUv?=
 =?utf-8?B?WDN5OWpVZ3JsSGtRa0dqRWozb3FIQVJYOWdSWW1rTHB0L2RkbTQ4dFJHUVh2?=
 =?utf-8?B?dEdFakl5MnBNbmNSdmdUaVg2ZEtudWVGRkRJYmQ3SExhRE1KT3NOWVNmYTJZ?=
 =?utf-8?B?NUJxNkdub3F6NFN3UjNnTEtkVHM5RnJRdXJTVWhRK3VHWFNBSjVTYmFrbU4r?=
 =?utf-8?B?QVp5YlFwSzNaUVdPZVp2MjNtcVloelM5dllYL1M1eXVOQWVoZU1rWjNRaUUw?=
 =?utf-8?B?bEd3MmJoTDhPVmZESU5Gelh1TERsLytqYUUrU0dtbHc2TXRQQUFFOEd6Ull2?=
 =?utf-8?B?QWlUd1FIdlZNa0FLUTFMWlpBMklGalJtZ2Z6bFhVSWtPSS9wbnQwc3RWNXUy?=
 =?utf-8?B?M2NNaTY5Tkpmb0doaVBYV3BLbWo1dHJqWCtnN0ozY0Q4a3gvUmwycVNLSFpp?=
 =?utf-8?B?bFZyUEhjci9QNkp6UE11aHkyNys4Z1RvTXJaZWZ4Nm84bDMyTFZReDBkUnl4?=
 =?utf-8?B?K05MdW5RQk5NZ3JFSkNsUzN3ZCtGVGNXbEtwNlNhYVJiN0hGZi84UHpKd2FK?=
 =?utf-8?B?U210K3dNY2EwbmJta2FpZmtRd0d1U29HZzlNVTVwYml5VGwwNnNUM2JBKy94?=
 =?utf-8?B?a3A3STM2WjhjSHVscjl2TWtYTTN1SS9TM3hNaFJ5bU9JYXlrRFBlLytCeVVp?=
 =?utf-8?B?akJxekdGL2tmbklMSkZXb1YxSllLL2MvRmlIZG5rTjN0TmZFQmNNNENPSGp4?=
 =?utf-8?B?eDdOeWtiSWkycC82ZDh6YlZBRmUyWGxKYXViYWJOOFNnd25oQkZrd3FNdm1T?=
 =?utf-8?B?V3NoU2JTZXNMZnNFM3gxNG1RbEtodXcxbzYydWVPM2xGNFZaaU80SWlVaGRN?=
 =?utf-8?B?c3hUaWVremtaeklXREVWK1VQaytZQmF3SUQrTlFUZUp2bjQwVkxKZzVRM2tU?=
 =?utf-8?B?TGZqOHJFTTdXK1FENnRCbFNLR1cxWjl3cTBCMkluOFRkWk5jQWptSU1wTi8x?=
 =?utf-8?B?VExtelVISmZTaWVHcEd6NW1KVVhvamR4ODZPMmlSc1ZpS1NTVy9vbWlmV2Yv?=
 =?utf-8?B?bUVTZ2FaT1orbm5ya0ZvUFg2UW9aL1F0SWRpZnIwNmx3L0RIeUtFdnVLeWoy?=
 =?utf-8?B?TEFJU0NDUUY2dkZVT0FPeUZNUVZhd21FbkpHNTNxR1N6dnk3MktFZmdXWVQz?=
 =?utf-8?B?Ylh5bnRLWWlXdG5ianNCUTZNNGpzanhpblI2YjBNNGtsTXkvR3FiTGExamdS?=
 =?utf-8?Q?+XVFRwgaIPK/BM6+0H1Xy+8YiEPtUkw4?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RUVhUEdmY1dkUTNtakpZZThaTkZGWkJyUzk2ZERENlc0cWdmZFY0MGRZRUJ6?=
 =?utf-8?B?R2krQUdZYkpxQkdUaFcwTW9LUzNjZk9iUDNtMnM5VThuTVZaQUh2d2h2dnM2?=
 =?utf-8?B?TXpuNmQ4c1d3WEVxRm0wNGhudkJ0d3RBay9yQm5RSmRmdm91ZlZiMkF6Znd1?=
 =?utf-8?B?VGNnZmQvazhGdFQ0aVlmT0xlRXJIWS9ncTBHcFVuTGFkS1BSdVl4eWdlejNo?=
 =?utf-8?B?TDhFZWlZdi9QUVRNck44aTF0MUxhU0VDSG9LUlFkZjlJS3R4Uk9YdEwvOXQ2?=
 =?utf-8?B?YU9McjRLK0tnajlqekpVOE5XY2I1U3JwSkFpbmxUdHlWbmVGYmNtRzFQY3ho?=
 =?utf-8?B?K05iVWVEWGdyM2czSmRKZHlyU29pb0VCN2FHVC8yRWhXN2Fzc25aYlJWblBq?=
 =?utf-8?B?VG9aTXNZbG5YdkhvV2JuYkZaMllUWEFqWndiaUVrOVVablNEWTZtL0FseE53?=
 =?utf-8?B?T0xlb2o4TXFDVThoZnQyUDZWZUdxQUMrSUlhOXg5UU9XZ2dvTmkyY3pyaWZO?=
 =?utf-8?B?SFJNZEMxUW5kN3ZXNi9lQ0tKaGlydVZDYzRDWnhtNkxDUkEzVXVwaHVtV0Mx?=
 =?utf-8?B?d3JCMnNkMTV6OWQyUDh1VkZjZndMREh2UDhQTk9ld3UzZDRKUEF5YVVja0wv?=
 =?utf-8?B?VVhzTzRXUTc0YUdaYnp6TnNqUTUrYkFwaUFRZHdLSnZNUVB6NjhFTDNxR25l?=
 =?utf-8?B?L0NwV0NOOFo4SllCdktRMEEyanlBRXgrOUhwSmFIdGxPVXp6OTM3Z2wzaGJC?=
 =?utf-8?B?V1pPNGFrdW9iSWZKQUthbGNRQVl5bzZORzlTQ1l4REtCcnVPNVFWeGpwNkp6?=
 =?utf-8?B?cVRIbUpsUkluOTB1SzRtbnJnYXNyYmtxWnVhcXZLeGZLTGtnZmtRcUVzMUNJ?=
 =?utf-8?B?QWVYbGRsSzBneGM5MWQ0S0pyRWRTUmRFMVcxT0tMK1pFOGl2cUgzelNZdFFU?=
 =?utf-8?B?MFFZRWhZOFNnaDA0aDhJdFg0ZUMzbm5WSFl3aUx6eTRYK0s5K0pTdzM1d0dj?=
 =?utf-8?B?M2xUaEpMVUc1R0E3Q0NNODlBYmZ4NEJhU1VscGFRNjhTdWRyMmtBaTJxWlhL?=
 =?utf-8?B?dzk2VFNSMmhWOEl2SWdORWRvdkNEZ2tUSDM4UXNKd2gyVlMvOGMvTjBEb3lk?=
 =?utf-8?B?OElqSW10alVwbWpUcCttR3lNNkZTNzhRNm5sNVVJcExyU1dBUS9DbStyV2hB?=
 =?utf-8?B?TTNYeXRxNWpNTzg5cTRKWUxLd20zdEgvczlCZklPYWR0NEp4dkVBVm1BZW55?=
 =?utf-8?B?QVFYKy9uNVB3cVZoeWpsWktrQm9HTlRCbXJSbU1aWTRUQk5VNDVRSFFWdldi?=
 =?utf-8?B?NFYza2haczAyYlhXL0Y5aEJzQ1ZSTnhmWENYYndSZ20wYUg0Sk1mTGw5c2JX?=
 =?utf-8?B?VnJlblBReE1TUHdXLzRNdDYwdzdCanF6Vm02Tm5DMWZ3U3lGMm5sWVZ4RVli?=
 =?utf-8?B?ck0yTUErcWJLVmM4d2p0M3l0d2hQbVVMVGNwZFYyL2NaVUNOcHNKRXhDbHBO?=
 =?utf-8?B?YWFPLzVNNnYvVEkvVk5wZk1Lb0J0UVhFWEczQ01TQnErZU1Md1ZmUlhuRjF5?=
 =?utf-8?B?emJFTjYvYkxMRDUyY0h4TjNOMisxS0t3Y0hXV3Q5UjlCNXNyYUdSYmhWZ1lq?=
 =?utf-8?B?UFNRdDg5VGdiTDB1bnhaUG5jVnoxZ0VXQjFjditUSmZuV0pLeWpBTE42YTMx?=
 =?utf-8?B?YkYzeDNUbStrRE9aczVNSVNPaEFlMjUvZDlvMzFCeDEvNUlja2kvYis0NSs5?=
 =?utf-8?B?aWVWZXJoOUllMHZTVHVkYmx4ZnJDWUFpM3lLNitMNTFRam1lTWhaVS80dk15?=
 =?utf-8?B?VmlCMFd3RnMyQm15NGVlWGhFamRTQ1Z5c3Fhb0pDd2xiY2l3eGdDL3Z1dnF0?=
 =?utf-8?B?b0RxZ01DUGdjRkJSZ0N6ZnJGdzdUem5lWm4vZlh3VnlreC9xRTlvUzZBVjN4?=
 =?utf-8?B?WFUzeTI1R04weFFIZE9Xdk4rN3RBSXBBcVp1ZUloTmFxdWpnNlV2dHFsZDJY?=
 =?utf-8?B?V2ZWRVcrWUlDYnlYVjFmclVSZ2FUYWk0M1hwamZ5aGtuMFhQVGJwNENPTkNw?=
 =?utf-8?B?UGYzbVpuaFhwMmY3dmJOTHVsR3dyMzgreG1aK2NpNnJSMWJaSkpjUU5UMnNS?=
 =?utf-8?B?ZXNoVWRxS05OanBFdHpUc0JnZlVReDdUMjVnQUhueVc2bERhWjMwalVEMXV2?=
 =?utf-8?B?V1E9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f6f58ec8-ebbf-4a54-0003-08de33244a9c
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2025 11:00:09.8118
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: U5RJK3iapr0+31MwBcdVqi5SN+rCltwtIldcAZt5Lx0eJdyQyTMhothmbRqw4hsbowkGtokjS0oX4aqU5xRTAfmmt2NUCbLwK7iBt5S54IM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR03MB6153

Hi Andrew,

On 04.12.25 12:02, Andrew Cooper wrote:
> On 03/12/2025 10:24 pm, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> Added CONFIG_COVERAGE_EXTENDED to enable coverage for .init and lib code.
>> When enabled - Xen .init data will not be freed.
>>
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> ---
>>   xen/Kconfig.debug          | 10 ++++++++++
>>   xen/Rules.mk               | 13 +++++++++++++
>>   xen/arch/arm/setup.c       |  2 ++
>>   xen/arch/x86/setup.c       |  4 ++++
>>   xen/common/libelf/Makefile |  4 +++-
>>   xen/common/libfdt/Makefile |  4 +++-
>>   6 files changed, 35 insertions(+), 2 deletions(-)
>>
>> diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
>> index d900d926c555..3e04e1a3992b 100644
>> --- a/xen/Kconfig.debug
>> +++ b/xen/Kconfig.debug
>> @@ -44,6 +44,16 @@ config COVERAGE
>>   
>>   	  If unsure, say N here.
>>   
>> +config COVERAGE_EXTENDED
>> +    bool "Extended Code coverage support"
>> +    depends on COVERAGE
>> +    default y
>> +    help
>> +      Enable Extended code coverage support which include .init and libs code.
>> +      The .init sections are not freed in this case.
>> +
>> +      If unsure, say N here.
> 
> IMO this is unhelpful.  Noone wants to opt for the model we've got right
> now.
> 
> Instead, I think we want:
> 
> config RELAX_INIT_CHECK
>      bool
> 
> and have CONFIG_COVERAGE select it.  There's no need for any user
> visible option here.
> 

So It will be always enabled if CONFIG_COVERAGE=y, Right?



-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Dec 04 11:04:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 11:04:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177548.1501802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR78O-0001f9-V9; Thu, 04 Dec 2025 11:04:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177548.1501802; Thu, 04 Dec 2025 11:04:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR78O-0001f2-Rp; Thu, 04 Dec 2025 11:04:28 +0000
Received: by outflank-mailman (input) for mailman id 1177548;
 Thu, 04 Dec 2025 11:04:27 +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
 <SRS0=4Aad=6K=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vR78N-0001ew-Bw
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 11:04:27 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fe4b0129-d100-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 12:04:25 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS7PR03MB8035.namprd03.prod.outlook.com (2603:10b6:8:251::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Thu, 4 Dec
 2025 11:04:22 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%5]) with mapi id 15.20.9388.003; Thu, 4 Dec 2025
 11:04:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fe4b0129-d100-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PPxDfVnmnDc7apefS2SiALy6Kod52qSvVOFQr9gfkc5MW6ZLDViE8z81sdpgoMLtg0bwhOoz2SeqW2PE68JgRAdPoem/TO0iWUcjaqav6jSWpxnZPpSabRkDrh+mLpWOfORCS8R1ypat39hiaTge5AoHYwQggGU82z2tHAgOKnwktb4UuniK7lMIMJoD4H4mNSYITxeEIEQuEnHuRh1OpNiFZ0ba3tlpRjJiMkBUA7e7lm+kG+5uH/LauTfUTgONZ0cauQrNUNJQmDEBCbIxhmwovx7wNNTQfIHFR9XUpPtsIixctojr+F9+doG34k9WyaKrgArt4SWbpaCqQ9XqXQ==
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=u0FAfFcfBdNIzlPoaVvY/jhhnCGlO+Zj8XqHcuF2AbY=;
 b=nq8RNg6UpRh42a5EsGshsYF8qkB0D4UKkP1HGjTkhAS0ZP/cfmaH4TBdFy6mZi7+XfBadFXVS0K306vU9ETrAZxvoMTDn6xaM1fZxOBatcTy92NiQEdnzVy+2QsrmUyPS2t/IKim3GBF99quVEMmxRt8mLHuCWiwE8WMZvWn34AevwhhMKtjbhGyJHiCBKVBAJli8485hOiITptRvn4dEOl49IpfxexFe8gOueeAC+RUnAmVB6+Ynxr3iJuqM/2Wti6VlR5d1AouqIeMYC6jsf8AYspCMF3XMKEJAX7b9sCNnAx/pcuTBQMcy3fFkaK46rHSNHlK/7QaIx8XPBZ7Bg==
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=u0FAfFcfBdNIzlPoaVvY/jhhnCGlO+Zj8XqHcuF2AbY=;
 b=CQOH0edsq+eYM+/evJ3pcxADS36cYpvAWO8UXIWNHxFY7gUlihAiBWE+k3eWjEwbqAxZ0sW53mGipymLQrqRIqUDVlkNsJZ7cVbqLM2ABUtfaT/H3CBDbRAgVnQVPWFnSMrCURimyH00LYH3mHmRgp6fysO9bhISyBTLmG0rTiU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 4 Dec 2025 12:04:17 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: xen-devel@lists.xenproject.org, Hongyan Xia <hongyxia@amazon.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <jgrall@amazon.com>,
	Elias El Yandouzi <eliasely@amazon.com>
Subject: Re: [PATCH v5 11/15] x86/setup: Do not create valid mappings when
 directmap=no
Message-ID: <aTFqsYBsI5WheTX4@Mac.lan>
References: <20250108151822.16030-1-alejandro.vallejo@cloud.com>
 <20250108151822.16030-12-alejandro.vallejo@cloud.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20250108151822.16030-12-alejandro.vallejo@cloud.com>
X-ClientProxiedBy: PA7P264CA0190.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:376::20) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS7PR03MB8035:EE_
X-MS-Office365-Filtering-Correlation-Id: 385a976f-6b4f-4778-d8a4-08de3324e090
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dFlRdHNyNENJazhNbitZbVRBVXZFWDlMaWpaSU5JUmE5Z1FnM21JZ3k4WHph?=
 =?utf-8?B?LzBhWU03czVjbGpQdUxNQitrdm5rOTdNNVpwRmNxY2dpTHlmZTdZdVc3QzdE?=
 =?utf-8?B?cFp1cllXRlh2d2o3N3pEM25QUDZYbERlTzJrWlNiMk5DUEx5QjRldFJuSGNX?=
 =?utf-8?B?MHRxdk11eENTZWpicHpvay84RnVqN214YU5MUHBkYW5Kc3g3aTA3WFlhU2x5?=
 =?utf-8?B?UCs5dWtpY01nbHhZRzFIL2JHdjlFOTNCemdYRHdGS0NDaEpjaE9ma3ZNWmdK?=
 =?utf-8?B?VjU5V0JkNmpaSHB4WXhpVDBGQWlRZXJUb2x4T1VicjI2R2ZXMTRIbnliQ0hC?=
 =?utf-8?B?c0JSbTQvbXFlSUdHU3M1aUdYTXFUWGM4WjN0SVVNWUxUQ1drdU9hL1ZtcmIx?=
 =?utf-8?B?QkVpbzJkV21FaDkrN2grbTY4L0twZTBoYWY2Z3BzeWlTTndCRGx6WlF3c2Nk?=
 =?utf-8?B?TUNieEEwa25hVDBGWTBJRWJJelNLMHBJTytXSWpXTkw1K1ZYN09FVGVnT1BI?=
 =?utf-8?B?YXBWNk1tVityNkJaYjdQajhlWCtRckQwbjVKb1NXdnVHKzlxQlgvWlFNRm5N?=
 =?utf-8?B?bXBDeUZMak5ZTVZuQlAyQ3NIVUJ1ellKQ0JXVGV2aEFWSUY5d1VlV1ZyNEVJ?=
 =?utf-8?B?WGNzQTF3TStpcGFiY3RVU1QvUkhBaXp1Skc4QU9PQ3Nob2Y5VXRmZ0lSdzBY?=
 =?utf-8?B?UlI0ZmxmZmFLVnhMa0ZFVVlVTUptVTRkbVlFU3JwNldyWEdGbzZxdGlESHU2?=
 =?utf-8?B?Z1g0VThudVprMjJZVkUzMTdvb2lCcTE2Wm9wMUU5cHFNUmJlT1pld1lpRCtu?=
 =?utf-8?B?ZUZLemJla3pDNWo4WEdSSGFFVkh4L0x1YTFWK0RWRTVaWlQ1T0dUeFZtTlli?=
 =?utf-8?B?MWxsbC83Q3N5K242ZlJWb2lMWjRHN01kZ3pqNE03ZXNmRHRNMnhKNkhVUDVi?=
 =?utf-8?B?dzVwV1lsYTdSQjVVZmYxcHVzYmxUSkYxZWV6aktOVi90RjJRdXNBYlpRN296?=
 =?utf-8?B?Wkgyb0JjU0ZvSE41dExvMTY5ZG5yZmdibnZvKzl1M1NBWk5ONmpPcHh5eEJT?=
 =?utf-8?B?SHBQdWJOdUk3bTIzekp6ckRQUDNMYlZWTVJWU1RFZXJFcG1TL3BxaUcxQmFj?=
 =?utf-8?B?S3hVOHZ1ZGpaUlVIM0Y4Ty9hc1RlSVpGbFg4SlhTYU5kZnlnWGMvYm5JSGdl?=
 =?utf-8?B?SlRjc2hZaUVleVJWSHg2RUpMRzZxT00zcGtjcEJaeDR0V284SzhJYmdGdm84?=
 =?utf-8?B?UWcwb2UyNGV6d0tTeG5OeGU3bXIrZER6STdnVzRnR2hCcWVyTit5VTNYQVlJ?=
 =?utf-8?B?clYrVFZGWkRuTG9iTVNqZDRMR2wwL0hUS3VnaUlVYXBJZnJRMmpQdnZldkpv?=
 =?utf-8?B?ZEU1N1BBTjFkUGhQV1hYVWNpR0ViaktVYVByWXN2ZktYSkV3NUQ1N21SeEtT?=
 =?utf-8?B?aHZFeXJvSkRhZ3dVamNkTlg0UDIvZVBsL3BrRC9TNDAvMmt5Rm5ZenN3ODZ5?=
 =?utf-8?B?RC8vRWRtb3hWYkhUV1k1NUZDMVhxZUF2bkdHYUpaZWRLVzZYd0VwTmo3dUhl?=
 =?utf-8?B?WnZIWmZpUDA0M05XeHNDZFZmT1pEcEdSY3dxSWhlZExJcklMT3IrWTduQ3l3?=
 =?utf-8?B?Q05oaC9nVlVYZjV6enlKNU8zMytwMW5yeWIzRmFMRXIrNTdXb1dJaXNHWUZY?=
 =?utf-8?B?OWx1MTlGb3Q4WnpnV2ljV3ZBZ0ppUlh6VjJrZ25lek42ZFkvZ012VnA2a0kx?=
 =?utf-8?B?OGVPTW1aZUZyS21pQllkejZxZmxKSGhubGFWcktmRDJ0Yk9weUx2Z05CVlVw?=
 =?utf-8?B?Y3hjaFp0bHgxY0dINnpHd1JFM3VkaTVmRmlrRzFZdDFTWWpGQWsyREJVSzVX?=
 =?utf-8?B?RWZaaDdsekVXQW1wVi8yVS9qeTJZMUl3cUtmblJsYlVMTG02dFNsaHh5VlFi?=
 =?utf-8?Q?lbsfruYZ9WvqQmhqVPVrMz+AW6A3eX9f?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NjhDZFYvejJNdEJiYW1ib0xRWnZ6WmQwZEgySVg1R0xUd3F3dVh2T0hNMmJD?=
 =?utf-8?B?clh2dFMwRHpaU2VmMllIWVBIOXRvVWZlZFJia21rUzNFMTkrbmV6aWNYamts?=
 =?utf-8?B?Q0JMUjNrMUZVbzREYWp5NXR1WUlrS25VRnFOY0lIVitBZ0xzOFVSd0pydDJT?=
 =?utf-8?B?Vmc4cWIzbUN6Y2s4cENHdUJadElwcStYL3JidHpQWCt2MXlVMjYzV1FYRzJI?=
 =?utf-8?B?ZmJ0S1BXa0ovM2pxSncxVzFJTUZhaXUvUVlLcVFGeUd0Z25pTTh0Skk2RUNk?=
 =?utf-8?B?RkM1R29YZ3g3cFdoT2cyUHlvZDhDalNsM0FSczNobXUyOFNCdXBUUjdBMFYz?=
 =?utf-8?B?bjhqNXdyRnpJZ0g0YVpjUy9URG9RNWFJOGxPRUtwWitMakd3bHZvcnl0SVY4?=
 =?utf-8?B?WG40dkplM285VEFVU1JGUWQvZlpKUm1WelZWS2tBQjZ6bC9LY1h1NmdFeDN6?=
 =?utf-8?B?dk9JaUthRTYzOFRiTWhmWG5XUXFyaDVueGtEak53R2UzbG5nVkd6dEtWZWtJ?=
 =?utf-8?B?dGJmQ29SdTZPNDhaZTRpUWJNRFljc3JEVy9uNzc1bTlxUUxpM1VIeHFxYkJ6?=
 =?utf-8?B?Tks0MmNzazRzLzhnb3ZpbTFKckpPRWZJaTh5MCszNkpJekJvYXlySEZyM2U5?=
 =?utf-8?B?ZzJKd3FmcjBId2dZM1ZVUENLRUp2YWsxQ3RUOENJWmFJci9TdDFMKzF4cEpT?=
 =?utf-8?B?Rm5ueXRrMndOeFA3WlkwQnJ4bkRtWDFWMjNLa1ZWQllRb2xWaW1kTExwT3JF?=
 =?utf-8?B?RzFJd09zRk5iVHlFOU9wU2tYcDNZMUFtSXA0SWVNUFV6dW5yVTErZGxjU2NI?=
 =?utf-8?B?M2dpSXZOMGwwUXhUNkQ1aFVLQS9XWDhPVTNoQVJiSU9MT2NmdlUxd1lZaDZV?=
 =?utf-8?B?SXlwS0JxSTF0V1J6d0hPcHBjakViZFNicjh1QlJRNlpnWGNpZW1nMk9vb1N2?=
 =?utf-8?B?aVhDUjdKRzM5aU96MW9RdkorWkpYd25mek9xUnVUSGMxT1pSb3BRY0QzdXZY?=
 =?utf-8?B?Z2hEQ1pMMks5VmptR1FLUW5nRHE0NFJ6K25LZFBDeGl3WnY2Snp2Rk9DSDFP?=
 =?utf-8?B?K3ZPUVdDZjFVS1FxVnI4eklUL0h0NDZNNERyR1dVek5NVU1XWW92UFhrbGht?=
 =?utf-8?B?WC90cVI4RWhiZlpzN2F3NGVZaldUMktEc2dFS05IMndiQ0FrY2JicUR6MGll?=
 =?utf-8?B?OXNtUlJwMjdDNHRWcmU0WnhGWHNNUzZzZVZtVG1Gb3Zobnh0VngxUkhremtD?=
 =?utf-8?B?dFFhUDQyT2hHZWJLQUpVZ29obElSNGE1cFgzbGtFRDF1Y0NpdTVyRVFLcVQz?=
 =?utf-8?B?UG1WL2R4UmZjbXpsWEE4cncwYkNCQk1Odi94OHZtcGN1Wi9BOXJFUEhBcWk3?=
 =?utf-8?B?c3hGazVhZzh0WjAvUzBTQjhFRjE1UUZ6Q2tVOUtldmVaY3JtaEpEUjZ3RXBy?=
 =?utf-8?B?dkhJU3NnTXQzc0RGZlErN0o1TFFkSkFlM2dFdTJaMndOcTdVR29MVkt1WkRD?=
 =?utf-8?B?YUJxeDNUelU4TUI5am01SGRwenh4QzZrMjFobjhIMlFwUk12OUV0dXlzOHB6?=
 =?utf-8?B?TXo5eEp0UkJOV2h5M3I3YjhseXVZR1V4TkJxK2R0eWk5R0ZaNGpLcnErQ2pN?=
 =?utf-8?B?WlQweWQvYVBpeUlaRFpGait4dGU1QXorYnRDWU9QaytNVS9PeDhxcm5qaEhQ?=
 =?utf-8?B?aXhtQndPSDEwK2pUdng1WmxhZUIyN3VBQUFpeEs2OXFuWlZTRnJQOVN0S0s2?=
 =?utf-8?B?ckFzb1pJV3FKUTMrTC9vRGMyeDB0dkl1TS85WUpFOUdjdGxQbFRrVlJESGh4?=
 =?utf-8?B?eVpnSkltYkxaN1JZMkxjK3cvQzBpSjFnRWpKbDd3UFEvM2VTVXcyUElMbUo3?=
 =?utf-8?B?SnZKMTZIWUNVWk1XcTNQK0M1WjlhOXFNTGJBWUxURHBDNkUyYmpEZ3l3T2tw?=
 =?utf-8?B?WXRFRmpWcmNsdk5XR2ZSM3A2VG5ZU2k0RFhmTVdGVGtiRzZQZ1RDZ0VTeXhm?=
 =?utf-8?B?NHFUYnBYR3htWmtxaUZPRWo5L080WjZ1YUxiZ2g4N1lkTEExVFFqbThTQjFp?=
 =?utf-8?B?OWQ1bnljN0M3VUtjMWRuME4vRlpkTVRBV3p1cys4L1lpUGZuWTB3QkNzUENv?=
 =?utf-8?Q?R3xNN2qurF9Vhc3113Vpka9FS?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 385a976f-6b4f-4778-d8a4-08de3324e090
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2025 11:04:21.4841
 (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: LQSNjS6P8N6PnUThNNwN/dEy4gjgxKL9SLfyd3vyPCBNfVY0DW9f33z4QHgo4miJ1IZ2JCGJ3MDpZ8RUZAhyeg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB8035

On Wed, Jan 08, 2025 at 03:18:18PM +0000, Alejandro Vallejo wrote:
> From: Hongyan Xia <hongyxia@amazon.com>
> 
> Create empty mappings in the second e820 pass. Also, destroy existing
> direct map mappings created in the first pass.
> 
> To make xenheap pages visible in guests, it is necessary to create empty
> L3 tables in the direct map even when directmap=no, since guest cr3s
> copy idle domain's L4 entries, which means they will share mappings in
> the direct map if we pre-populate idle domain's L4 entries and L3
> tables. A helper is introduced for this.
> 
> Also, after the direct map is actually gone, we need to stop updating
> the direct map in update_xen_mappings().
> 
> Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
> Signed-off-by: Julien Grall <jgrall@amazon.com>
> Signed-off-by: Elias El Yandouzi <eliasely@amazon.com>
> Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> ---
> v4->v5:
>   * No changes.
> ---
>  xen/arch/x86/setup.c | 73 +++++++++++++++++++++++++++++++++++++++-----
>  1 file changed, 66 insertions(+), 7 deletions(-)
> 
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index 609ec4cf07f2..23b77f13bc10 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1060,6 +1060,56 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>      return d;
>  }
>  
> +/*
> + * This either populates a valid direct map, or allocates empty L3 tables and
> + * creates the L4 entries for virtual address between [start, end) in the
> + * direct map depending on has_directmap();
> + *
> + * When directmap=no, we still need to populate empty L3 tables in the
> + * direct map region. The reason is that on-demand xenheap mappings are
> + * created in the idle domain's page table but must be seen by
> + * everyone. Since all domains share the direct map L4 entries, they
> + * will share xenheap mappings if we pre-populate the L4 entries and L3
> + * tables in the direct map region for all RAM. We also rely on the fact
> + * that L3 tables are never freed.
> + */
> +static void __init populate_directmap(paddr_t pstart, paddr_t pend,
> +                                      unsigned int flags)
> +{
> +    unsigned long vstart = (unsigned long)__va(pstart);
> +    unsigned long vend = (unsigned long)__va(pend);
> +
> +    if ( pstart >= pend )
> +        return;
> +
> +    BUG_ON(vstart < DIRECTMAP_VIRT_START);
> +    BUG_ON(vend > DIRECTMAP_VIRT_END);
> +
> +    if ( has_directmap() )
> +        /* Populate valid direct map. */
> +        BUG_ON(map_pages_to_xen(vstart, maddr_to_mfn(pstart),
> +                                PFN_DOWN(pend - pstart), flags));
> +    else
> +    {
> +        /* Create empty L3 tables. */
> +        unsigned long vaddr = vstart & ~((1UL << L4_PAGETABLE_SHIFT) - 1);
> +
> +        for ( unsigned long idx = l4_table_offset(vaddr);
> +              idx <= l4_table_offset(vend); idx++ )
> +        {
> +            l4_pgentry_t *pl4e = &idle_pg_table[l4_table_offset(idx)];

As we are attempting to integrate this series with the per-CPU
mappings work, there's an issue here.  l4_table_offset() call is
duplicated, as idx is already the L4 table index:

        for ( unsigned long idx = l4_table_offset(vaddr);
              idx <= l4_table_offset(vend); idx++ )
        {
            l4_pgentry_t *pl4e = &idle_pg_table[idx];

This probably went unnoticed in small systems that can fit all the
directmap in a single L4 entry, but does explode on bigger ones.

Leaving a note here in case anyone else picks this up before a new
version is sent.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 11:39:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 11:39:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177566.1501816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR7gG-0005os-IG; Thu, 04 Dec 2025 11:39:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177566.1501816; Thu, 04 Dec 2025 11:39:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR7gG-0005ol-FW; Thu, 04 Dec 2025 11:39:28 +0000
Received: by outflank-mailman (input) for mailman id 1177566;
 Thu, 04 Dec 2025 11:39:26 +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 <SRS0=8NnK=6K=kernel.org=david@srs-se1.protection.inumbo.net>)
 id 1vR7gE-0005od-IT
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 11:39:26 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e19b5688-d105-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 12:39:24 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 0DC21601E2;
 Thu,  4 Dec 2025 11:39:23 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D03C3C4CEFB;
 Thu,  4 Dec 2025 11:39:12 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e19b5688-d105-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1764848362;
	bh=oGOR/Gy9sovZXJOpLcgTuOfyjEMxsxmxhHmHgTDnlvg=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=PE+WiSnZpBNNRcaVS0QWTpayXH+dWoN5nt+357dXYUJWSjuOlaAsOBoe3SqzwB59R
	 0BhfuC55fmyIKS+5sWgvrif65X9dIQNyx1j8zScdnb4JsSuXTbZHZKOdhJztBH13oI
	 Z2xVQUclq5bzMcDG9oXYqty7pxfA/Wou/aR2Tjfhg2wQpAVF58f5Wxsu7+lh42EsgU
	 tzePMKUtQaqGs3/m7uKwUZJa+NFZNeb3W7vSvEYI4cegv0lxJrfu/RurxuRx1OGmTe
	 IzJrQ0kiAZGVJ74Dcu7D6yrF3jlh37vFw4mnVpHVXtFq7j5uuCInmCGOIVhoeMwI7Z
	 muM8WetLK5bJw==
Message-ID: <b341e7fa-4382-48b5-896a-1a0d347b66ca@kernel.org>
Date: Thu, 4 Dec 2025 12:39:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 09/12] arm64: mm: replace TIF_LAZY_MMU with
 in_lazy_mmu_mode()
To: Anshuman Khandual <anshuman.khandual@arm.com>,
 Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-10-kevin.brodsky@arm.com>
 <89ecddb7-83ee-427b-823b-984204939ecf@arm.com>
From: "David Hildenbrand (Red Hat)" <david@kernel.org>
Content-Language: en-US
In-Reply-To: <89ecddb7-83ee-427b-823b-984204939ecf@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 12/4/25 07:52, Anshuman Khandual wrote:
> On 24/11/25 6:52 PM, Kevin Brodsky wrote:
>> The generic lazy_mmu layer now tracks whether a task is in lazy MMU
>> mode. As a result we no longer need a TIF flag for that purpose -
>> let's use the new in_lazy_mmu_mode() helper instead.
>>
>> The explicit check for in_interrupt() is no longer necessary either
>> as in_lazy_mmu_mode() always returns false in interrupt context.
>>
>> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
>> ---
>>   arch/arm64/include/asm/pgtable.h     | 19 +++----------------
>>   arch/arm64/include/asm/thread_info.h |  3 +--
>>   2 files changed, 4 insertions(+), 18 deletions(-)
>>
>> diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
>> index a7d99dee3dc4..dd7ed653a20d 100644
>> --- a/arch/arm64/include/asm/pgtable.h
>> +++ b/arch/arm64/include/asm/pgtable.h
>> @@ -62,28 +62,16 @@ static inline void emit_pte_barriers(void)
>>   
>>   static inline void queue_pte_barriers(void)
>>   {
>> -	unsigned long flags;
>> -
>> -	if (in_interrupt()) {
>> -		emit_pte_barriers();
>> -		return;
>> -	}
>> -
>> -	flags = read_thread_flags();
>> -
>> -	if (flags & BIT(TIF_LAZY_MMU)) {
>> +	if (in_lazy_mmu_mode()) {
>>   		/* Avoid the atomic op if already set. */
>> -		if (!(flags & BIT(TIF_LAZY_MMU_PENDING)))
>> +		if (!test_thread_flag(TIF_LAZY_MMU_PENDING))
> 
> A small nit - will it be better not to use test_thread_flag() here and just
> keep checking flags like earlier to avoid non-related changes. Although not
> a problem TBH.

I'd assume the existing code wanted to avoid fetching the flags two 
times? So switching to test_thread_flag() should be fine now.

-- 
Cheers

David


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 11:52:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 11:52:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177581.1501825 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR7tB-000091-Lc; Thu, 04 Dec 2025 11:52:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177581.1501825; Thu, 04 Dec 2025 11:52:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR7tB-00008u-Ix; Thu, 04 Dec 2025 11:52:49 +0000
Received: by outflank-mailman (input) for mailman id 1177581;
 Thu, 04 Dec 2025 11:52:49 +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 <SRS0=8NnK=6K=kernel.org=david@srs-se1.protection.inumbo.net>)
 id 1vR7tB-00008o-4Q
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 11:52:49 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c0087bba-d107-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 12:52:47 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id BE65D404ED;
 Thu,  4 Dec 2025 11:52:45 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 68460C4CEFB;
 Thu,  4 Dec 2025 11:52:35 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0087bba-d107-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1764849165;
	bh=u1Zp6G/Tnzzf/H5X3ENLn84JA+wr9i7r3UFkx+PY1cA=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=ISfT7eeAMaUkykWFftAF34p60f1XrKRSCDcOgF5EQ7sjgQQQ6kR+ZfcxZf3nREGvz
	 3ImEd584csKzW2sprI2y59/eBKWA2YlWw7s0K9vR4XEpOPMmlPP8wvttqFfXSE4zN6
	 oekU1nlMo+H/Bg6n4zYp/bTOGvrxv/gOpiDiNlxCA9Y4OE+4DDcmSt+S8/kIsT/ev5
	 Uux8ESGp7F4HLNoZUmXHGJYu5mcFtULBpaUzDu9+oyUtKeFcenBNNa96Vy0OfGm27t
	 Z0EcKxK9WF0aNa8nPuC5BwJT+8bBhjdQ74Oz3kptWtnS35Y+COG+101Ok84TWX356P
	 FasrAKF5f+8MA==
Message-ID: <93d04ef8-0364-4013-8839-ba599d930cb2@kernel.org>
Date: Thu, 4 Dec 2025 12:52:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 08/12] mm: enable lazy_mmu sections to nest
To: Anshuman Khandual <anshuman.khandual@arm.com>,
 Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-9-kevin.brodsky@arm.com>
 <2dfd54d7-fe2a-4921-85ff-a581392a777a@arm.com>
From: "David Hildenbrand (Red Hat)" <david@kernel.org>
Content-Language: en-US
In-Reply-To: <2dfd54d7-fe2a-4921-85ff-a581392a777a@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Some comments from my side:


>>   static inline void arch_enter_lazy_mmu_mode(void)
>>   {
>> -	/*
>> -	 * lazy_mmu_mode is not supposed to permit nesting. But in practice this
>> -	 * does happen with CONFIG_DEBUG_PAGEALLOC, where a page allocation
>> -	 * inside a lazy_mmu_mode section (such as zap_pte_range()) will change
>> -	 * permissions on the linear map with apply_to_page_range(), which
>> -	 * re-enters lazy_mmu_mode. So we tolerate nesting in our
>> -	 * implementation. The first call to arch_leave_lazy_mmu_mode() will
>> -	 * flush and clear the flag such that the remainder of the work in the
>> -	 * outer nest behaves as if outside of lazy mmu mode. This is safe and
>> -	 * keeps tracking simple.
>> -	 */
>> -
>>   	set_thread_flag(TIF_LAZY_MMU);>  }
> 
> Should not platform specific changes be deferred to subsequent patches until
> nesting is completely enabled in generic first ? Although no problem as such
> but would be bit cleaner.

This could indeed be done in a separate patch. But I also don't see a 
problem with updating the doc in this patch.

> 
>>   
>> diff --git a/include/linux/mm_types_task.h b/include/linux/mm_types_task.h
>> index a82aa80c0ba4..11bf319d78ec 100644
>> --- a/include/linux/mm_types_task.h
>> +++ b/include/linux/mm_types_task.h
>> @@ -88,4 +88,9 @@ struct tlbflush_unmap_batch {
>>   #endif
>>   };
>>   
>> +struct lazy_mmu_state {
>> +	u8 enable_count;
>> +	u8 pause_count;
>> +};
>> +
> 
> Should not this be wrapped with CONFIG_ARCH_HAS_LAZY_MMU_MODE as the task_struct
> element 'lazy_mmu_state' is only available with the feature.

No strong opinion; the compiler will ignore it either way. And less 
ifdef is good, right? :)

... and there is nothing magical in there that would result in other 
dependencies.

> Besides, is a depth
> of 256 really expected here ? 4 bits for each element would not be sufficient for
> a depth of 16 ?


We could indeed use something like

struct lazy_mmu_state {
	u8 enable_count : 4;
	u8 pause_count : 4;
};

but then, the individual operations on enable_count/pause_count need 
more instructions.

Further, as discussed, this 1 additional byte barely matters given the 
existing size of the task struct.

No strong opinion.

> 
>>    */
>>   #ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>> +/**
>> + * lazy_mmu_mode_enable() - Enable the lazy MMU mode.
>> + *
>> + * Enters a new lazy MMU mode section; if the mode was not already enabled,
>> + * enables it and calls arch_enter_lazy_mmu_mode().
>> + *
>> + * Must be paired with a call to lazy_mmu_mode_disable().
>> + *
>> + * Has no effect if called:
>> + * - While paused - see lazy_mmu_mode_pause()
>> + * - In interrupt context
>> + */
>>   static inline void lazy_mmu_mode_enable(void)
>>   {
>> -	if (in_interrupt())
>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>> +
>> +	if (in_interrupt() || state->pause_count > 0)
>>   		return;
>>   
>> -	arch_enter_lazy_mmu_mode();
>> +	VM_WARN_ON_ONCE(state->enable_count == U8_MAX);
>> +
>> +	if (state->enable_count++ == 0)
>> +		arch_enter_lazy_mmu_mode();
> 
> When lazy_mmu_mode_enable() gets called for the first time with state->enable_count as 0,
> then arch_enter_lazy_mmu_mode() will not get called ? Bit confused.


state->enable_count++ returns the old value (0). Are you thinking of
++state->enable_count?

But maybe I misudnerstood your concern.

[...]

>> +/**
>> + * lazy_mmu_mode_pause() - Resume the lazy MMU mode.
>> + *
>> + * Resumes the lazy MMU mode; if it was active at the point where the matching
>> + * call to lazy_mmu_mode_pause() was made, re-enables it and calls
>> + * arch_enter_lazy_mmu_mode().
>> + *
>> + * Must match a call to lazy_mmu_mode_pause().
>> + *
>> + * Has no effect if called:
>> + * - While paused (inside another pause()/resume() pair)
>> + * - In interrupt context
>> + */
>>   static inline void lazy_mmu_mode_resume(void)
>>   {
>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>> +
>>   	if (in_interrupt())
>>   		return;
>>   
>> -	arch_enter_lazy_mmu_mode();
>> +	VM_WARN_ON_ONCE(state->pause_count == 0);
>> +
>> +	if (--state->pause_count == 0 && state->enable_count > 0)
>> +		arch_enter_lazy_mmu_mode();
>>   }
> 
> Should not state->pause/enable_count tests and increment/decrement be handled
> inside include/linux/sched via helpers like in_lazy_mmu_mode() ? This is will
> ensure cleaner abstraction with respect to task_struct.

I don't think this is required given that this code here implements
CONFIG_ARCH_HAS_LAZY_MMU_MODE support.

-- 
Cheers

David


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 11:53:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 11:53:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177590.1501835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR7tu-0000d1-Ul; Thu, 04 Dec 2025 11:53:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177590.1501835; Thu, 04 Dec 2025 11:53:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR7tu-0000cu-S3; Thu, 04 Dec 2025 11:53:34 +0000
Received: by outflank-mailman (input) for mailman id 1177590;
 Thu, 04 Dec 2025 11:53:33 +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 <SRS0=8NnK=6K=kernel.org=david@srs-se1.protection.inumbo.net>)
 id 1vR7tt-0000cV-Ol
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 11:53:33 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id db18c376-d107-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 12:53:32 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 35ECD601E6;
 Thu,  4 Dec 2025 11:53:31 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8423DC4CEFB;
 Thu,  4 Dec 2025 11:53:20 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: db18c376-d107-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1764849210;
	bh=Zpl414Y6vefFz+0mGA9CipSOvbTehPYA0WM0ZAZ5yEc=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=l8F43iGu2V8NDUl3DIh/2+X2bfiJU3z4ZM3VULx8KpRVQtoH+xW7CH2tkww5ZTCxo
	 Z732odFWqfzHNQy5SzNM5XixZWclVhNfUhvGgJiGbPutM3AwRHmsLfNCAboCSPDTP/
	 mQ1qAy91zph5RvCXiIten7mneAop/GvZWqVrT+sRJH1n488UuXQMywvv0E8xZPYpO8
	 hem4mPeZ8WDhirZ3INCR8Hs8TJNiMUf1+2/EkXzuyFkWiHk2/yA/ki9bTau+qinvtl
	 uLvGed0JMtDUZ3H/ydu3YrDfOdvy/uR+aG5ySHHt6+QmCrIk7eopnc2uqCD/LCtR4b
	 NGvDZU/gQZlqA==
Message-ID: <0f08e893-6097-4ab1-8231-ac3304c51ee9@kernel.org>
Date: Thu, 4 Dec 2025 12:53:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 08/12] mm: enable lazy_mmu sections to nest
To: Anshuman Khandual <anshuman.khandual@arm.com>,
 Kevin Brodsky <kevin.brodsky@arm.com>,
 Alexander Gordeev <agordeev@linux.ibm.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-9-kevin.brodsky@arm.com>
 <23dcf752-0b75-45a7-84f8-25bddf97af08-agordeev@linux.ibm.com>
 <703cbee6-a813-4970-9232-34ee91ed8961@arm.com>
 <2c2b3382-7bdb-41a9-b48e-4fa9a44312ba@arm.com>
From: "David Hildenbrand (Red Hat)" <david@kernel.org>
Content-Language: en-US
In-Reply-To: <2c2b3382-7bdb-41a9-b48e-4fa9a44312ba@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 12/4/25 06:25, Anshuman Khandual wrote:
> 
> 
> On 03/12/25 1:50 PM, Kevin Brodsky wrote:
>> On 28/11/2025 14:55, Alexander Gordeev wrote:
>>>> + * in_lazy_mmu_mode() can be used to check whether the lazy MMU mode is
>>>> + * currently enabled.
>>> The in_lazy_mmu_mode() name looks ambiguous to me. When the lazy MMU mode
>>> is paused are we still in lazy MMU mode? The __task_lazy_mmu_mode_active()
>>> implementation suggests we are not, while one could still assume we are,
>>> just paused.
>>>
>>> Should in_lazy_mmu_mode() be named e.g. as in_active_lazy_mmu_mode() such
>>> a confusion would not occur in the first place.
>>
>> I see your point, how about is_lazy_mmu_mode_active()?
> 
> Agreed - is_lazy_mmu_mode_active() seems better.

+1, I was scratching my head over this in previous revisions as well.

-- 
Cheers

David


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 11:56:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 11:56:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177603.1501847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR7wr-0001EE-B0; Thu, 04 Dec 2025 11:56:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177603.1501847; Thu, 04 Dec 2025 11:56:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR7wr-0001E7-6p; Thu, 04 Dec 2025 11:56:37 +0000
Received: by outflank-mailman (input) for mailman id 1177603;
 Thu, 04 Dec 2025 11:56:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TdJQ=6K=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vR7wp-0001E1-Lg
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 11:56:35 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 41990ea1-d108-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 12:56:25 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS7PR03MB5622.namprd03.prod.outlook.com (2603:10b6:5:2ca::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Thu, 4 Dec
 2025 11:56:21 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.003; Thu, 4 Dec 2025
 11:56:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 41990ea1-d108-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VzsL0l81LTU8ddtEs/gy24G/+W0ckwVbgjKmIJUN0xOukNJhDcz+jsXcncDlknjMk/jJC3R/FEeA7jx4F2yhpsvD3UeBF2EvpsQtTvL549VhCZMIGFq6xLq0yjiAhg+gGfgZf3RqkbyBXdMGSuV0i9DPbcUxftiHeA5gDogUwW/nsMSXJPtgel/NUyeWQEVmGJFnr6ck3Air1f8EYEfoA3HLLDuM/kQ3BIwK4ui9VH4nbHCdM1Kd+CheLnK82D+SByb5iL3/zhsK5n7BXYSiD4/qsjoR0xmV/p03amMcsXNPohezXGQ70IxxOc/VJN1hIMS+A2zLFFozvbSQCK7pGg==
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=979AaQTcNswXGon7Uw2M8iFwHq2O8Juo8snw4GX3V/E=;
 b=GRt3dfeValXOaGcPa1RyJBxZJhBMW3bP4+eQZQq/K9jsMFLLCGC0z9QnbtifEY+IuWhvJWjxpfjAHUB411p1UCjZ1LaAkHf7xkIWq/kXQX8oI32phGHBgCUReeDIranIiavXA7U1mcB23g57W8VDXuGFIAWWgdXcqzQAWvS9JW0S2S3UVnOME9k2xaqldr+xRcKUnyhfaM0bpT49AVTG2fLoqSOb34WWyBWlUeUEhm+jmu1PagaNsF1mEAPpVtGr3DiAhqOY/IftrqHJ6ZwCER+2hY3UaMVhauvWwOOuYaWR98LprXnvKuQcyMnGngrmhpra25PU5m3e3x0e9fXSDQ==
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=979AaQTcNswXGon7Uw2M8iFwHq2O8Juo8snw4GX3V/E=;
 b=H6UslSVByB8DHFJIY8hObBCAUMUYa9nBVBd/PthOT3I4ly+eW7BKY+oR0HqDGdEhT1AZeGQ0fKE7Ww0amVVXLqI7pHObfSNLWzq7nZ9cebh6184RyFtP3oyJcLhxAz6rNgAcH9XMi892j8TiAbO9g7KU+hR+sEqnEGkqaZUWmN4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e47d6ce7-272a-4b47-a9f5-ec61998cb1d4@citrix.com>
Date: Thu, 4 Dec 2025 11:56:16 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>
Subject: Re: [XEN][PATCH] coverage: add extended coverage capabilities
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251203222436.660044-1-grygorii_strashko@epam.com>
 <d477a21c-b621-46bb-94ce-4775b2b6a90e@citrix.com>
 <7a920fca-8945-41de-ac3d-864ff03d571d@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <7a920fca-8945-41de-ac3d-864ff03d571d@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0092.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2bc::13) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS7PR03MB5622:EE_
X-MS-Office365-Filtering-Correlation-Id: 9f7ca5a8-8b13-45db-11fa-08de332c23f2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|1800799024|376014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?czVzdE5wZFFhY25MYzFRajlZZFhEOUlPMGhHWC9PbnF3QUphZ1BsWEMwUC9Z?=
 =?utf-8?B?anNFamN0bFUrSXdtTExQVGcva0ZscW1HeVI1YlN0TG1XU0RuaE9BTkEwWk1o?=
 =?utf-8?B?TlJxUWpIUmsxOWZJSjZVcDMzaDJnR3ZFdDUxcWhvZlZCNmtBZ3UybndOc3Y3?=
 =?utf-8?B?Ym1xQ0VEbG1BeVRGbDdWem5kT1NpZjBja2NkTjJZbWZ1UERhQmlyOVdIbzlH?=
 =?utf-8?B?QUhqQkNTQ2E5UEFycEJlVlpoOUVLeDFYWmpFM0Vnb0FnMzVocEZjMW9ZZkpr?=
 =?utf-8?B?YXNmWG5OOHV1Zm5Bc0F1YVdZcmEzaDlGTXZnM24ybVVvempPdGtEYjRFRnlY?=
 =?utf-8?B?MW5HWE5LS2dRMjdkUk9rbENzNG5TMFZxN2VqNFNxV1JmOEZDeEFseCtHNEVq?=
 =?utf-8?B?VktMYjEwdHRKaGlaVzdsbDNiRmdiSjFOWTYwMm5MUmpvZG5CbGhPVVhpNmF4?=
 =?utf-8?B?S2xQRDBTVkJnM2pDdmpOYVk4bGRRc295dXI4T3JlUjFmWk0xZCtCam5GanBa?=
 =?utf-8?B?a1E3QmZxQXdvUG81Vk5ZQ2k0MHpWUjA0eW9sSlhBNVF5WVlCdWV4U1B3aGhW?=
 =?utf-8?B?YnJGdHYycmdKWU95L3p3OFIxYXpnNk12dWNVVDh1dmtINGRhbEtzK09UaTc3?=
 =?utf-8?B?Nmd3cCtyZURMYVh5NWw2UVhuYlV2a01WcnVjZk5FSG9sdEVKaWxVNUdxdVlj?=
 =?utf-8?B?TEMwQitqTCtPQkdyYUpGRUR6M3V6b285NlJZdVpqdlhTcmIxMGpiTnloRjU4?=
 =?utf-8?B?ckJDVWxlU1N6clhNVzFsaTY2MVpmOUxkam5YVFNld3V1Q05EZTdKRTdncEVq?=
 =?utf-8?B?REh2eVR6OXMvMnBOQkVnMUU1TTJkUmNIbmhGQzhHOEVPYmdQeTlsSDdJWGR6?=
 =?utf-8?B?YkVmaDVhdzVCZ3NLeVFUSS9qMTJDTGxQNUxEdVVKZFcvWS9heUhRa3RSd0Y1?=
 =?utf-8?B?VE1MaVZVbGZrVlNSWm9oNVNEOXJhUHV0VERINXVPOTgzT0FnVGIrcGloVzh2?=
 =?utf-8?B?Y1lPSE5rZG1RTjJLdmF1YXpNLzM2bDNqdjdCc1c1R2oxZFdzY2dxSnp6M2Nz?=
 =?utf-8?B?RHliTUF4N0dvaDNhVXZJWnQ4MW9CYlhwaHZNWGdoY2p3bHd6N1Z5Q0Vnai85?=
 =?utf-8?B?ZFBVMTQ5MFR2cE1NN0JZL0RPTnljSzNYbHdMNkpjNkViendKL3c1dU5SN3ZS?=
 =?utf-8?B?TlhROTJQNTk2a2NHVWQybVBOenBWOVhQSXJlS3JGVHM0L0VqRzFqWk9RVUxs?=
 =?utf-8?B?OHVzTmVZMXVwQ00rRFNKbU9PTTQyajdUUFcxOVJoZTZUbU1RUUo4K2lhOUk5?=
 =?utf-8?B?QUROOUx1eFpiRk9QUUR2YitwdnkyMGk5ZXhadjR5VVcrNkNXQ1BRMlpxTEF3?=
 =?utf-8?B?UFhvcHAxdGc4WGpnS0FCQ05ZNUU3Tm81Nyt5cVhTa2hkeFN0SGkwcjNLQy9X?=
 =?utf-8?B?V2p1WWFQRjlJemx0YzdDbHIvWFBzT1FJQkVYMUNHL1NkajB2bE53dzREY05L?=
 =?utf-8?B?YkRLY0thVEQra0cvZFRtNU5vRkg3WGVDVzBEc2ZuK1YycytQT3ovVUkwWnYv?=
 =?utf-8?B?RXVkL0RWTW5kSmZlTGFDTHNLbnZVNUhJeU15V0hPZG81Znl4dURNNXBLZUg2?=
 =?utf-8?B?OUxnclpqUW1WNm1kSXJXUmZJUXhySWZBQjBhTTFqck8zSmh1Q1dHUFFkM1Fr?=
 =?utf-8?B?bkJISWxxSzJrRmV3ZVYrbzRMT1M3blhSVDBqeFVMbHh4MTloZEZpZVl1ekFK?=
 =?utf-8?B?SjJacWpXeUdmbVBCLzQvaHBONEdTNkROS2FocUdBeFF5MEZUcTNIK0hpdDFT?=
 =?utf-8?B?UUNGUVJkdCtkbiswMGhTTk51TDUzanhJUXdBZ0IxOXQzTW8xNzE0Uy9hOVE1?=
 =?utf-8?B?djRnOVdTM0NGb09Fd3RTQ1JHdU5VL1BiMjFTKzhaT1lUU3A1RE9Ta1ZSaU1T?=
 =?utf-8?Q?gB5AJzCKXKqDop/wjJ89B810fWYbqRq+?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RFpueXp5aDU3ZzN2T3kySEg2MVFhdkdQTnRROUgxVkRiaGQ0MktSMHYyRitS?=
 =?utf-8?B?NEg2TEVxdUl3UWhhb1VJYjJTY2F0NDhKeXdiV0t2Q0Yzd21vSEdMaHliYWRq?=
 =?utf-8?B?TGF6d3JqQ0tQcnkzcUxGbFhWdlZsWlhNYWJXczVPNjZpSkNra3U1WGtZeTl2?=
 =?utf-8?B?OE5NcjZqSHcrRmV5SVE0WWdLWGd5UGVDY21lTzM4Kzg1UVk2WkthRThmLzhR?=
 =?utf-8?B?d2h3bWdKenJXV2ZremR6RzB0TG1BcEw5YzN3eUJZVWhKTmM0Smo0WGxMcVJt?=
 =?utf-8?B?UWFJa3RBeWg3M0g1Q0o2ckdZcU5HeE1leWZHWFJ0MGd3VmRxNDFDK1p4WGFP?=
 =?utf-8?B?eWJBMURIai90cjBudkpCSjZqb2cvUWtZZmJkUU10MVBkeEs3WUM1VGRsS1NQ?=
 =?utf-8?B?RExrM1lHWnkyWGNpRC9yeldDVTJLNS9QMC9RYk5uR2o2L1EvSHk4S0t1MW0r?=
 =?utf-8?B?cElvU1dtcCtvS1FrT29MOEtYVjZEczRoZlFZZHd3TXFrME1odEtNRFdnRzZi?=
 =?utf-8?B?eGp5LzBvVzMrekhCTW9Ydm5Ublo3OEdmdEJNNDNJRys2Wmp4SWxNN0I0WCtN?=
 =?utf-8?B?ZDJFRzVKSEY2Y09qTFgyQmtyYWxaYytjS0JFVk9iWklkUG9Menh2d0kzcmcz?=
 =?utf-8?B?ZXU2RUdWUXNta21Pd1RjZVgwK2QrMFc2cU9tNkxtaVdSUTFZK2xJbzYzS3Bv?=
 =?utf-8?B?U2FtZWVPUFJST0pQVzFrbE1MRm01TCszRm9YL2JYSDJMRUh4ZlpsNnBidFFj?=
 =?utf-8?B?ak1FWmtkZng4a3BIaDA2MGdBOG1uS3IwbFR1QmVwK2tNeVJHTEFGV0I1WWpF?=
 =?utf-8?B?NUZiM3p4MWQzcjZ0OVBWcXB2cE8wTVFFaWN0bEZXWklmd0RXTERPR3FKQjlQ?=
 =?utf-8?B?cDNOUEFCS21rSDlDL1FQM0VUbFVJcEFIYUlYSmhpTUEwUEEwZksyVHAxYWhX?=
 =?utf-8?B?Rm1Ub0M5NXlnS0Njbm1qR3FrTG5uZlhpRVMrTmpOMWRwMjBaa2RteDlmZGZZ?=
 =?utf-8?B?RlJnc3ZHZkhmSGNnOURYRFplTEVmV0pLVTJkOWU2YlhpWjVzNzF4Ui9JVUdk?=
 =?utf-8?B?L2FldEY5VzhUSUEwT2tJT244ZTRLQVJ0bDBOZnVPUSs5WktzbFg1SFJQbHZz?=
 =?utf-8?B?SXp0WWV1N3Jpazcyek92N01QNk9KeTlUZlErbm14M2llMi8xQWNJZTRDc3ho?=
 =?utf-8?B?V3I3clVuUDNKZlJWd3ptZWVwOUFteWFVYVE0M1BaeEZHbFlXWnlHTWlxU0dM?=
 =?utf-8?B?NGYweWsxL1hMVGUyMnRCWUp4c1BrYjVUWWoxUmswU3lmSFYyRWtpdlFWMzJC?=
 =?utf-8?B?c3J5eVRqeVYxVndtejBDdURlVDB3RDYwU2NFN3BwSjZTbENqcDFlNmxNSmhv?=
 =?utf-8?B?L0dXVXc3VGMweFgvZCs5QkxGNGVVTWViZUNZVnR3VW10R1pKVHZnM0o4Z2tL?=
 =?utf-8?B?Vk1HSE1RRVRkWDZObVplSDBtM1VvaDJyTnVWMEdjV1hQQmo1RkR6Z2ZNUkQy?=
 =?utf-8?B?NUhTdGJjc2RwT25oa3YzMEFRRUJ6OS9vYmJubFdqN04xb25VMHdEWE9nWnBX?=
 =?utf-8?B?bmk1bWY2RUE5d2hmV0hiTFJUeWFwbkdMaTFNdkRJYm0rVjRDQVN5b3dwMzdo?=
 =?utf-8?B?b2g4SytXTXVFTU9hVVZva2R1QVd4MXp1TWtrK2lzMU9CTDREN0lMZUVWcW5k?=
 =?utf-8?B?VXJMV1RFWkQ4Y21YemlPa0hUZHZ1RWMxejlTd2dvQVYyTHVLckpjU0FqQ1lv?=
 =?utf-8?B?dGw3T3pEQWRpZzZPZFQwVEUvTE9pRFp2WU5yZzYyMjZTMXRLNjJ3VkJYd0dq?=
 =?utf-8?B?aUhvR29zT0lwS3lNNlNBWUVZSlVJZ0o4Ri9qMStYdndQdUtlQmlZdEtTNEpj?=
 =?utf-8?B?RHNSNXpCcE54WUQ5YS9wUCtUR0YrSGp3Yk80UUpqMEhQZjFqSmtOUko3UGww?=
 =?utf-8?B?RE93SWVPcUFpdGZyNFVyZExuQ0RXNEllRjYwVTczdWprcUJ4T3Y3ZE5iYUcr?=
 =?utf-8?B?NjhmcXVDNHM3TlMxRzkxZCtFbFcwM0Jla2R5V3lncFcyY1QweThqeWNyc0ZR?=
 =?utf-8?B?YityWGVIZ0NVT1BVQUR2NnJJZ1p6bElDTXNKdmpoa010K0tlZnFzWE1mRkFR?=
 =?utf-8?B?OWFnRWF3VHFQc3MvZUllWGdGR0pwb0pGOWhYTk41STBFMlF1NG1sVDN4UmhE?=
 =?utf-8?B?dUE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9f7ca5a8-8b13-45db-11fa-08de332c23f2
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2025 11:56:20.9492
 (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: 7EKk6pKwfte46lPPQHllzX5h5TdpK2pB49im3ybOJHdN8k1pDbPOzpcFLiG7MEq3CWjamBCSRWY6Ji/kus6tiuxFCQuOTSkymcnwF4K7RKA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5622

On 04/12/2025 11:00 am, Grygorii Strashko wrote:
> Hi Andrew,
>
> On 04.12.25 12:02, Andrew Cooper wrote:
>> On 03/12/2025 10:24 pm, Grygorii Strashko wrote:
>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>
>>> Added CONFIG_COVERAGE_EXTENDED to enable coverage for .init and lib
>>> code.
>>> When enabled - Xen .init data will not be freed.
>>>
>>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>> ---
>>>   xen/Kconfig.debug          | 10 ++++++++++
>>>   xen/Rules.mk               | 13 +++++++++++++
>>>   xen/arch/arm/setup.c       |  2 ++
>>>   xen/arch/x86/setup.c       |  4 ++++
>>>   xen/common/libelf/Makefile |  4 +++-
>>>   xen/common/libfdt/Makefile |  4 +++-
>>>   6 files changed, 35 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
>>> index d900d926c555..3e04e1a3992b 100644
>>> --- a/xen/Kconfig.debug
>>> +++ b/xen/Kconfig.debug
>>> @@ -44,6 +44,16 @@ config COVERAGE
>>>           If unsure, say N here.
>>>   +config COVERAGE_EXTENDED
>>> +    bool "Extended Code coverage support"
>>> +    depends on COVERAGE
>>> +    default y
>>> +    help
>>> +      Enable Extended code coverage support which include .init and
>>> libs code.
>>> +      The .init sections are not freed in this case.
>>> +
>>> +      If unsure, say N here.
>>
>> IMO this is unhelpful.  Noone wants to opt for the model we've got right
>> now.
>>
>> Instead, I think we want:
>>
>> config RELAX_INIT_CHECK
>>      bool
>>
>> and have CONFIG_COVERAGE select it.  There's no need for any user
>> visible option here.
>>
>
> So It will be always enabled if CONFIG_COVERAGE=y, Right?

Correct.

Now I come to think of it, IIRC UBSAN is also excluded on init objects
for related reasons.  (At a later point), we can see about giving it a
similar treatment.

~Andrew



From xen-devel-bounces@lists.xenproject.org Thu Dec 04 12:37:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 12:37:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177627.1501857 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR8aK-00078F-Aj; Thu, 04 Dec 2025 12:37:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177627.1501857; Thu, 04 Dec 2025 12:37:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR8aK-000784-5R; Thu, 04 Dec 2025 12:37:24 +0000
Received: by outflank-mailman (input) for mailman id 1177627;
 Thu, 04 Dec 2025 12:37:23 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1vR8aI-00077r-Vh
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 12:37:22 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1vR8aH-006XHd-1l;
 Thu, 04 Dec 2025 12:37:21 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1vR8aG-003ewc-21;
 Thu, 04 Dec 2025 12:37:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:Message-ID:Date:
	Subject:Cc:To:From; bh=2vApY+RD+NuJHsPjs7FLKy7wqMIlgdSLXq4TF/0qpy0=; b=HB91ev
	XCWukAHU1sdloQzaAupbvZw/9gkfblHLFkJwd6yNGLY7H8VSpaLz8KVZeBr7KY763qGdWpj1jgeKn
	ZuZy4d0OMARkRY/tshQSDmeES5oG8FEYSkrdvSVrClHd8NYPMPUw9zRvd1Ohr2h+ugtEouXfazIER
	4XHzBA6XvwM=;
From: dmukhin@xen.org
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	jbeulich@suse.com,
	julien@xen.org,
	michal.orzel@amd.com,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	dmukhin@ford.com
Subject: [PATCH v1 0/2] tools/tests: test harness fragment
Date: Thu,  4 Dec 2025 04:37:10 -0800
Message-ID: <20251204123712.721443-1-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This is a follow-on mini-series based on the original feedback in [1].

Patch 1 addresses the remaining feedback from [1].
Patch 2 adds a new fragment for auto-generating test harness dependencies.

[1] https://lore.kernel.org/xen-devel/aLmZLm2_G48yfPWR@l14/
[2] CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2195624771

Denis Mukhin (2):
  tests: fixup domid test harness dependencies
  tests: introduce Tests.mk fragment

 tools/Tests.mk             | 34 ++++++++++++++++++++++++++++++++++
 tools/tests/domid/Makefile | 28 +---------------------------
 2 files changed, 35 insertions(+), 27 deletions(-)
 create mode 100644 tools/Tests.mk

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 04 12:37:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 12:37:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177628.1501859 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR8aK-0007Af-FE; Thu, 04 Dec 2025 12:37:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177628.1501859; Thu, 04 Dec 2025 12:37:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR8aK-000796-Bv; Thu, 04 Dec 2025 12:37:24 +0000
Received: by outflank-mailman (input) for mailman id 1177628;
 Thu, 04 Dec 2025 12:37:23 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1vR8aJ-00077w-3X
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 12:37:23 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1vR8aI-006XHh-1b;
 Thu, 04 Dec 2025 12:37:22 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1vR8aH-003f3a-2M;
 Thu, 04 Dec 2025 12:37:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=ylriBSJTPr4LVY5YvsyHXSHnemIkW1zWJXnMiOjYfUQ=; b=U/+nOv9PsNsfnOwVXKTSHmWMNG
	sz90gpT14WBrobV+UoXbyPj/FavxqfkOdVr8n/peFmmrY1HvldA2614+hD3JIWqY28PM9ba6bETYm
	h9sdOhvEWJqmieKyqljQ2zxOJR9hMwU6wYi/55Iy99KfPncX352+wh08MQdHufFL2cbg=;
From: dmukhin@xen.org
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	jbeulich@suse.com,
	julien@xen.org,
	michal.orzel@amd.com,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	dmukhin@ford.com
Subject: [PATCH v1 1/2] tests: fixup domid test harness dependencies
Date: Thu,  4 Dec 2025 04:37:11 -0800
Message-ID: <20251204123712.721443-2-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20251204123712.721443-1-dmukhin@ford.com>
References: <20251204123712.721443-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

There can be multiple test harnesses per one test target. Fix that by
iterating over all prerequisites in emit-harness-nested-rule().

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 tools/tests/domid/Makefile | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/tools/tests/domid/Makefile b/tools/tests/domid/Makefile
index 753129029ed9..1a2129d20655 100644
--- a/tools/tests/domid/Makefile
+++ b/tools/tests/domid/Makefile
@@ -14,16 +14,18 @@ $(shell sed -n \
     's/^[ \t]*# *include[ \t]*[<"]\([^">]*\)[">].*/\1/p' $(1) 2>/dev/null)
 endef
 
-# NB: $1 cannot be a list
+# $1 target
+# $2 list of test harnesses
 define emit-harness-nested-rule
-$(1): $(CURDIR)/harness.h
-	mkdir -p $$(@D);
-	ln -sf $$< $$@;
+$(1): $(2)
+	mkdir -p $$(@D); \
+	for i in $$<; do ln -sf $$$$i $$@; done
 
 endef
 
 define emit-harness-rules
-$(foreach x,$(2),$(call emit-harness-nested-rule,$(CURDIR)/generated/$(x)))
+$(foreach x,$(2),$(call \
+    emit-harness-nested-rule,$(CURDIR)/generated/$(x),$(CURDIR)/harness.h))
 $(1:.c=.o): $(addprefix $(CURDIR)/generated/,$(2))
 endef
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 04 12:37:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 12:37:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177629.1501876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR8aL-0007Yz-LO; Thu, 04 Dec 2025 12:37:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177629.1501876; Thu, 04 Dec 2025 12:37:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR8aL-0007Ys-Ir; Thu, 04 Dec 2025 12:37:25 +0000
Received: by outflank-mailman (input) for mailman id 1177629;
 Thu, 04 Dec 2025 12:37:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1vR8aK-000783-4c
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 12:37:24 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1vR8aJ-006XHq-1j;
 Thu, 04 Dec 2025 12:37:23 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1vR8aI-003f92-2k;
 Thu, 04 Dec 2025 12:37:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=s/LQz+Ny8Hleos9w4vzzFVh/9qQd0WL7V/RtNKKknKA=; b=fPEBJ0apMHurlkOfAHd/kxfgTN
	KAPqU7njjzofZ3m9pO7ZJ8t1IlGIa1cBba/vXz65VOUQQ0J4U2s/AqqCnnaIdisji7FrQ3b4WhDWk
	cxJakLlETBlTv2dfG2mZ6m1dIKbzGk5eLDP3CDXNOCDgWarqgoseV6v6xcaYFpt+T43I=;
From: dmukhin@xen.org
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	jbeulich@suse.com,
	julien@xen.org,
	michal.orzel@amd.com,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	dmukhin@ford.com
Subject: [PATCH v1 2/2] tests: introduce Tests.mk fragment
Date: Thu,  4 Dec 2025 04:37:12 -0800
Message-ID: <20251204123712.721443-3-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20251204123712.721443-1-dmukhin@ford.com>
References: <20251204123712.721443-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Add new make fragment for unit tests with auto-generated test harness
dependencies.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 tools/Tests.mk             | 34 ++++++++++++++++++++++++++++++++++
 tools/tests/domid/Makefile | 30 +-----------------------------
 2 files changed, 35 insertions(+), 29 deletions(-)
 create mode 100644 tools/Tests.mk

diff --git a/tools/Tests.mk b/tools/Tests.mk
new file mode 100644
index 000000000000..fe941209db0f
--- /dev/null
+++ b/tools/Tests.mk
@@ -0,0 +1,34 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Unit test fragment.
+#
+# Copyright 2025 Ford Motor Company
+
+define list-c-headers
+$(shell sed -n \
+    's/^[ \t]*# *include[ \t]*[<"]\([^">]*\)[">].*/\1/p' $(1) 2>/dev/null)
+endef
+
+# $1 target
+# $2 list of test harnesses
+define emit-harness-nested-rule
+$(1): $(2)
+	mkdir -p $$(@D); \
+	for i in $$<; do ln -sf $$$$i $$@; done
+
+endef
+
+define emit-harness-rules
+$(foreach x,$(2),$(call \
+    emit-harness-nested-rule,$(CURDIR)/generated/$(x),$(CURDIR)/harness.h))
+$(1:.c=.o): $(addprefix $(CURDIR)/generated/,$(2))
+endef
+
+define emit-harness-deps
+$(if $(strip $(2)),$(call emit-harness-rules,$1,$2),)
+endef
+
+define vpath-with-harness-deps
+vpath $(1) $(2)
+$(call emit-harness-deps,$(1),$(call list-c-headers,$(2)$(1)))
+endef
diff --git a/tools/tests/domid/Makefile b/tools/tests/domid/Makefile
index 1a2129d20655..51a465ce6318 100644
--- a/tools/tests/domid/Makefile
+++ b/tools/tests/domid/Makefile
@@ -6,38 +6,10 @@
 
 XEN_ROOT=$(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
+include $(XEN_ROOT)/tools/Tests.mk
 
 TESTS := test-domid
 
-define list-c-headers
-$(shell sed -n \
-    's/^[ \t]*# *include[ \t]*[<"]\([^">]*\)[">].*/\1/p' $(1) 2>/dev/null)
-endef
-
-# $1 target
-# $2 list of test harnesses
-define emit-harness-nested-rule
-$(1): $(2)
-	mkdir -p $$(@D); \
-	for i in $$<; do ln -sf $$$$i $$@; done
-
-endef
-
-define emit-harness-rules
-$(foreach x,$(2),$(call \
-    emit-harness-nested-rule,$(CURDIR)/generated/$(x),$(CURDIR)/harness.h))
-$(1:.c=.o): $(addprefix $(CURDIR)/generated/,$(2))
-endef
-
-define emit-harness-deps
-$(if $(strip $(2)),$(call emit-harness-rules,$1,$2),)
-endef
-
-define vpath-with-harness-deps
-vpath $(1) $(2)
-$(call emit-harness-deps,$(1),$(call list-c-headers,$(2)$(1)))
-endef
-
 .PHONY: all
 all: $(TESTS)
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 04 13:38:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 13:38:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177667.1501886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR9Wo-0007Ul-Nc; Thu, 04 Dec 2025 13:37:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177667.1501886; Thu, 04 Dec 2025 13:37:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vR9Wo-0007Ue-KU; Thu, 04 Dec 2025 13:37:50 +0000
Received: by outflank-mailman (input) for mailman id 1177667;
 Thu, 04 Dec 2025 13:37:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EMpe=6K=epam.com=Oleksandr_Tyshchenko@srs-se1.protection.inumbo.net>)
 id 1vR9Wn-0007UW-AG
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 13:37:49 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6b076a7e-d116-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 14:37:46 +0100 (CET)
Received: from AM4PR03MB11152.eurprd03.prod.outlook.com
 (2603:10a6:20b:6cc::22) by AS8PR03MB9142.eurprd03.prod.outlook.com
 (2603:10a6:20b:5b3::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Thu, 4 Dec
 2025 13:37:43 +0000
Received: from AM4PR03MB11152.eurprd03.prod.outlook.com
 ([fe80::ef31:b87:b7b4:ddbb]) by AM4PR03MB11152.eurprd03.prod.outlook.com
 ([fe80::ef31:b87:b7b4:ddbb%4]) with mapi id 15.20.9388.003; Thu, 4 Dec 2025
 13:37:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6b076a7e-d116-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=h2L7HwsUJ60cSBKcm72bm3zB5ZrOKfZmfa4USEW1HMdVPXApmezgdINuXlK2qmSmh9MdeWYJL0ooBeUYRlKc/tBYWCiSLQlijz6ELpnN212TLW3tp6wGGWJk78a11/QusLfNmRXUBIu/Z8HYp7uVUZUhQzVBCcUIzH775/Wf4fbHXy/YAw/6lbk7ZBCL2o5s/JNyR43ID30H+GS4GwHh5O09GvJRiKamtpOXnFF3DX52Azxl9FcF+DUniOkLusDkhqrJima0NeOhFryRBkAdCkaWS9p//jARFzVDKoKnyhnNlM7irO3F/tUQA+2uTWFDpxmwb/UExG3NESBaN4TISw==
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=i3Cpl2Njm+16AbmkUzbGKa8erpfHguylhpV/OHVyB98=;
 b=wNvaESbYGbNp30UyV3l/UiRjPwVtqIj1fMIqpuAi6fRn6WJCx+aJSyZRNbFQmexQEGlhV5baArUL9AeGzXnmILiYkodWCLuHWuiRuYy8RGjoJOGCwNo+n89iYQR3D2tvlD9DHOfM4qM8UIQ9SKQRTp+S3Cichdr6677Iho7RKQlleXyA5KO5oOAe5rXYleSlqpS3+IhFNhjnC5Rc2synl6+BzXtXCWeVjjEx4MIze2+2bjf8cvG6jJWYqNqBfAAWmnlMU3tG33aq3OCGgE5kvi+FRkjz1ebwIzxFKWAR5N19aPK2xI7m5rEq9CpDmhNpmjZvITZGyCC79PAI3RqSUQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=i3Cpl2Njm+16AbmkUzbGKa8erpfHguylhpV/OHVyB98=;
 b=QEsv0YeH8V5n0Y3hSJCyrGJ7ndk9igxIuY3E/Oueo3xd3HNJQVt+S7dp0PwrnNEjrYfCvkyHvfWy4OHEpUF4FuerrDcenrjrf00MCLIPL0VfsppyBbkvXrvQo60z6czBE3B7y+YJKM+ynGNRn4XCtn+2wn9I9AZiokq7SR12TMHpwIL6Lt+mM9opTQySAlLxRWzVK23fXXLHEjr6BLYvVHmMFdAtXJ82NNqUSKMov/+2BpSBruuiBrMN6oxQR7z2MXRrORbj86qnxBkDNryIAShKUkjm4rEQJIAQC4Wjs209Q4HifVMLzulmxq/p2YJkhcSd/61+vdEMI2LbCwRxEg==
From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
To: Luca Fancellu <Luca.Fancellu@arm.com>
CC: Julien Grall <julien@xen.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH V2] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
Thread-Topic: [PATCH V2] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
Thread-Index: AQHcZIbKZWHMCLfhnk2g+3dibmJCCbUQaX2AgAAU4YCAAKzmgIAAUfkA
Date: Thu, 4 Dec 2025 13:37:42 +0000
Message-ID: <fc04150e-7f5e-480f-a31b-0eeaee1247b6@epam.com>
References: <20251203185817.3722903-1-oleksandr_tyshchenko@epam.com>
 <6e83d3bc-c49c-49f4-9dbd-e994e53a62a7@xen.org>
 <44f6cb05-33c3-4937-b508-7616c36d0e4d@epam.com>
 <9FB64A3E-D05F-49B0-B979-25894D25BBD9@arm.com>
In-Reply-To: <9FB64A3E-D05F-49B0-B979-25894D25BBD9@arm.com>
Accept-Language: en-US, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM4PR03MB11152:EE_|AS8PR03MB9142:EE_
x-ms-office365-filtering-correlation-id: 5dd71ddb-006d-4168-b491-08de333a4d35
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|1800799024|376014|366016|7053199007|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?aUVwTGJYVG5HZmV3NmhJVUZHelpxYlhXSXZPZ1hyUTYwbnl3b0ZSN3lUWFdi?=
 =?utf-8?B?K3NMSmlHL3VwY2owUnJsK29Fai9HSnZwZXNBeHZndUsrM1ZxVWhQQWR1ejZl?=
 =?utf-8?B?dEMrMk5hSVJiaExrMitQbDI4d3dWaGVrckxYdHhUK1ZYK3NyQW1WQ0ZrTnoz?=
 =?utf-8?B?RHRKdE1nRTl2WEhMMXU3UXZXTUovS2hVMVlaeWVsc2ZQbWczSWg4cWNXKzAz?=
 =?utf-8?B?a21HY0FRZ3JvZjA1emM1bmF2KzZnVndKVDFub2ZSSy85c0ZuSHpWNmVvOHNm?=
 =?utf-8?B?dEdzWUNEZFp3L2QyclNLU2lpTy9jZEE2MlRHQ3J4OU1tZ3dHUjVXYW9reFpH?=
 =?utf-8?B?WThhN3hPa29kK296a21sWk1KZ2RlaXk4N1NHU29sWWJYZDhjdVRnZlNFVGJJ?=
 =?utf-8?B?TGVmVG1BRU5IY1VMWngyNnBEbW10TFVDZ2ZuWVVLbWx5ZWpuUXlxKzg5dlJn?=
 =?utf-8?B?VUpFT2VCS3VPRmhEbDRhRm00c1BlSURwU2hGZG41MDEwNUZFVkFHRE1VQTFD?=
 =?utf-8?B?U3Z6NFhZd2hBNDBrSDNNbGZJN1FDMkpQOTZpQWJVc3R2NWQxdDA2dWhKV21D?=
 =?utf-8?B?Mjg0MXNDWm9qTEVGS0o1Zm5CS3ZZYy9obmZOQUNMalFrOENhMk42bXIrdUlN?=
 =?utf-8?B?ZWI4MGlLZ2ZwaWtjRERDQXR2MnlKWmt0ZnFvR2dBWnU4R1NER0c3UmJTUjRx?=
 =?utf-8?B?S1c2TVFRZjR1S3NHZTdsVjRPMmVYd2pjZDVadnNYLzlMVmx0dFp4V0VNSzlI?=
 =?utf-8?B?ZytWRVF2THJtTmVNTWtHRkRpV0JaTzJ5TFJKSC9ydEJkTHVZNkc5WkROQ2Y5?=
 =?utf-8?B?V2VuWCtqSk5aZkRNdzJtdkpGam53R1Z4a0RCUGQvRFJJZFMwMWV3ZUtBYjJ1?=
 =?utf-8?B?eXNWZ0pKUDVadDhJOWs3aG9aUUtFSEFZblFaei9qcnhUSGZpRm4rb2h0eFY4?=
 =?utf-8?B?ak1vbVpRTE1GSG1nTEl4TmZKZGF6b21NL3JNZFovUHJvUlEzcmNVL2gxc3Nt?=
 =?utf-8?B?R2hERHlFaDh0QnE4aTUvbnNxNHVueE55cDdwMlYrSVNJditrYkpwVGVEdCsz?=
 =?utf-8?B?dHRWM2puQ2hud3pMdkQ4K3p0VVZsSkxVa2JuaE05YTkzempEQXdXdjQzMVdJ?=
 =?utf-8?B?WCtSVHZZeXMvellTMi9ZOVpCVmNScmdRa1J0R1d0MmxqYkhzMjJQcFZtdTZt?=
 =?utf-8?B?bFBUNEVSdjkrVEIzSlZOY1I2WlRXdW1PUStldUhBMHdPTW1wcXdXRCtZTUV0?=
 =?utf-8?B?NWJLV2M0Q1lreHIveGZyalV3SDQ3Z1I0cmZzWFlpQkE2RmMvYXVINXpTL2NI?=
 =?utf-8?B?VFhyZlEyUSttYUJ0UTB5SDZCNy93WDlUalE2NEFhb3dHUUdyTWU5TVpVRWZ2?=
 =?utf-8?B?SXNIbzZycm1vQWFJUnI1ajZwVUsxcG5FZjduR3BaK3IyNFNRSU5oWGlzcTVw?=
 =?utf-8?B?T1Z3K0dnVURWUS85RUkxckFud21jUlZlZWxtVGxBMjNOanNSa3ZxYjNLRGV3?=
 =?utf-8?B?Y0ZrT2lvTGY0UGVVS1lTZkpTdjN3WGlLdGtvY0toSkErKzdvZW9vSnVsQTFo?=
 =?utf-8?B?bTJJcGNjZDlrR0RtSkRiUWRxaW5lR3dHejlCSTZsV3MwTktVYVpUZkFybHV3?=
 =?utf-8?B?NGc4YWVFZXFMYlpQYXZqRUhuVGRYMzYvRE0xYkowdTJLS0xjT3VKcGhlbklo?=
 =?utf-8?B?SW1obHFzVTVPVUt3QlVtY0tYeTYycGtwbEkvTkJVSkZtdk9KK3ppdHptOHZC?=
 =?utf-8?B?RHExYUZIazQrYkFMbTBvU1h2UlNUY0I5a3lIcGE3YkFTYjM2Q3FkaFRSTDg1?=
 =?utf-8?B?bU1UL1FHMmZiSmgvaHlHVENuaEg0eS9oclZPcnBHSXhHL3Vxb1VWbSt3Q0p2?=
 =?utf-8?B?dzFmQmV5cjcveVlSRUJrU0VYcjZEY2JCRzNETkFLTFBrdEZFTjJxalJpb2Zw?=
 =?utf-8?B?dHdaK0trTE1OVnFhVWtWWnlHZ2djKzBmUGQrSkRtQXVsdTRaZDRJR1dQOFBh?=
 =?utf-8?B?OGhoNzVWNit1S28vU0JMU3Z6c0JZV3ZJMnN4S2huNEYveGN6Z2xjNk1YNVd5?=
 =?utf-8?Q?HpcSq9?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM4PR03MB11152.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(1800799024)(376014)(366016)(7053199007)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?TUllWERJVll2dDh5UE55YUhSYm9TZS9tRkh3NWF5YVdHR1dUV1FNR0wwZUdo?=
 =?utf-8?B?NjdNVndXNEU3YzBIdmdqYUl2S1FnamRzNlR0Z09VK2ZGRytZeGxVNU5vUWZu?=
 =?utf-8?B?TVdYcEt4TlI2TjJWVE02MHc4NU5yanBnSG1SREQxMDlyLzVYcVdORi9LWExP?=
 =?utf-8?B?NW8vS0xzaGFYNlZIcnlEZ2RaWVVVNHhmYWIyaFBmTlh4N3gyMHBtMkFMZTE4?=
 =?utf-8?B?MklsWWFhYndXdjNPb2pyYmFhWlRSRGJLRWUzUHEzRVNSYW1SUGZMeU0vYnpF?=
 =?utf-8?B?VlF1SWpmUmxQMjh4Z0ZEZGFTWlZTZlk5SUNDZ2ZtRkVBRGtyQktaUmxjNkhC?=
 =?utf-8?B?ZmhWOWVzZjlSRlc4Nmp2akRmYlhaajl0U2JYWTRnbUpFSGNCNUs1dGNsN2Ew?=
 =?utf-8?B?YjV6TTU1b0FaaklhRHNtZUVRUytVTjVQWVZlZWVlbFM3RHNYREZjOFB1aUhk?=
 =?utf-8?B?YVErR1l5YTh0RGJxZFd5Y3B1VGUydkRKTnhxSm9MYk5ydFYrdWw0ZG9mWHkx?=
 =?utf-8?B?a2VPL0orbkRNL29EallMTUptZ0ZqSHB0SGZxbVJ4Nm1vVEZyU1QvbTdoSzAy?=
 =?utf-8?B?cGwxRytpa1JmUVpTTzBWcmdCOGpZbXF2SHg3YVJ1N1ZQR05VTUxmTHoxbGFI?=
 =?utf-8?B?OTVJNW5tYjNLa2RQNGxhRzNtSXB1NmVwRWRRVElLTWtzRks0SHBCLys0eEZV?=
 =?utf-8?B?QjhoYUIxNlY5Z2RzRERlVTNVQ05tTzh5UDl0dXQrZ1pZbVp2T2lSektGaGZY?=
 =?utf-8?B?K3UveVNFOUhSWWJHOS81ZjBhKzB3V05idXNCZkVubmkzL1p6VDAzV2RxWHd0?=
 =?utf-8?B?cVhqT2ZaRVZXaTBITGlLdFZMNU5WNkE2eXhkYlBKSlNNL1ZsanROSS9Pc0VZ?=
 =?utf-8?B?Y3F6a1MyZ2pKZ3N6eDl6TU53QkZ2SGNGR1ZJUHVnSExRTmpoa3dOSUV1eXcy?=
 =?utf-8?B?NThxaytIMFNZYXR2K010KzhRYWl2RkJQMmtsTjM4NWpjQ05pU1hGa0pVUnNy?=
 =?utf-8?B?K0NSNFdGSDdtb2V0Q1MwU3VvT1VoWEVKbWx4dzZxbWxPM1QxKzRSb3hGZkM3?=
 =?utf-8?B?bW5idlF2Sm83K2ttRS9HeWpQQysvMzlUR2VQOS9YODI1dHpIUEFjSHBGNGxn?=
 =?utf-8?B?SnVGREFnWE5uRlNxYTZtRkxCVmc1TmpLTit5dmdieFEya2dQbjNwY25xNEho?=
 =?utf-8?B?U0pYRHhKYy9pRUM4OUErYkhqbVFVRi9HdUtTUGNPMXIvdEt5SnFsVGY0RDQ5?=
 =?utf-8?B?NWNVaDNFbGptdmlKNVdrVjFwcVNVTTd1Q0xlMStmZnpiV2xKMkhDWXBLc2ow?=
 =?utf-8?B?b2diY1p4V2dHNDFyUk00enU3SlBHeUNSMmY0Z3NkZWVWNy82VmhUcTRCQTFa?=
 =?utf-8?B?Mk1kZUNMZlZwTWlLb2JHZGNPTDZUYm81bENyNnAxbTJqZDVLU3o4RzVMbWJB?=
 =?utf-8?B?elFaZG9MNHh3TXB3OXZQaVUrcnNDNXh3c3FWaE1RZnFZYU91V2cvUFN6U2tD?=
 =?utf-8?B?MEZReWNzSVRmUlY1SjF0Q2tvQ0NtQUxsRWJUNHJJQys4c1BXR3Aya2g1U0RO?=
 =?utf-8?B?clZ0SlBMUUx6YVcwWUlWUEo0YjhMQitlVGlSbTdrclBKZStUTW5GYXZkeTlW?=
 =?utf-8?B?Z0FZLy9HUmQ4eTJFMXc1MkFld1g5SjdncVR4eDgwVmNmdjkrRTVoY3V6MlVK?=
 =?utf-8?B?OWM1M2hoMHJ5dVFqRXJXK0pCOTZIb3hNei8zVVEwL1VyZjlobDFTU0hsNmpo?=
 =?utf-8?B?R2ZkdE9zMTcyamoveG9NNFBiMFpzMWFmTXFTV0RQSWh4VnNFeVpEY1VNNUhu?=
 =?utf-8?B?aUhEVUdvS3V3UHBQWFZqZ3d0b3c2YXhyKzFvRVBGaEZLL3FDRlJiUWZJWE9m?=
 =?utf-8?B?RWlOWXB6OThtbHk2QmpLTXcyeTNRako1T2VsVmE3R2lFbGhXOTBrWThLWjhz?=
 =?utf-8?B?ZGZFUDRXZHNNM05QTmdmRUlPNkRFUWFZRlBaSU92azRmYXYxYVNKcnlkblhs?=
 =?utf-8?B?YVdxUGtoRVBtSW9ZcjB1MmJ1UXZTcHBabWxYN2hsaTlXeGNQOGhnUDUxYUt5?=
 =?utf-8?B?Q3JPWnZGbFlrOG1OcVVVc2RZSDJ5b1dHZ3lLV25GKzF5S0EzaGJUOHdDZUJo?=
 =?utf-8?B?ZGFIZ0pHMEQvVEdnOVlzRURtNG1SeUdmQ2ZuZ3RlWkVUK3hpSzFZVUV5a1dG?=
 =?utf-8?Q?is7pbudLlB1iH5VNDny/oZY=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <81F0A43BD13FD54286BF298F3185778A@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM4PR03MB11152.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5dd71ddb-006d-4168-b491-08de333a4d35
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Dec 2025 13:37:42.9052
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: hlCgGZPAuSQ7dwulTiz/BAazHTs5p2IsZ9KDvyy7FjOa7OES4tacNBr0y5zo+hlkLucB9o0pRwRKPLGILsGowecZ4m6feSL3YUKYplIdWGA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9142

DQoNCk9uIDA0LjEyLjI1IDEwOjQ0LCBMdWNhIEZhbmNlbGx1IHdyb3RlOg0KPiBbWW91IGRvbid0
IG9mdGVuIGdldCBlbWFpbCBmcm9tIGx1Y2EuZmFuY2VsbHVAYXJtLmNvbS4gTGVhcm4gd2h5IHRo
aXMgaXMgaW1wb3J0YW50IGF0IGh0dHBzOi8vYWthLm1zL0xlYXJuQWJvdXRTZW5kZXJJZGVudGlm
aWNhdGlvbiBdDQo+IA0KPiBIaSBPbGVrc2FuZHIsDQoNCkhlbGxvIEx1Y2ENCg0KPiANCj4+DQo+
Pj4NCj4+Pj4gICAgICovDQo+Pj4+IC0jZGVmaW5lIERPTVVfRFRCX1NJWkUgNDA5Ng0KPj4+PiAr
I2RlZmluZSBET01VX0RUQl9TSVpFICgyMDQ4ICsgKE1BWF9WSVJUX0NQVVMgKiAxMjgpKQ0KPj4+
DQo+Pj4gT24gQXJtMzIsIE1BWF9WSVJUX0NQVVMgaXMgOC4gVGhpcyBtZWFucyB0aGUgbmV3IERP
TVVfRFRCX1NJWkUgaXMgZ29pbmcNCj4+PiB0byBiZSBzbWFsbGVyIHRoYW4gNDA5Ni4gV2h5IGlz
IGl0IG9rPw0KPj4NCj4+IFlvdSBhcmUgY29ycmVjdCB0byBxdWVzdGlvbiB0aGUgaW1wYWN0IG9u
IEFybTMyLCB3aGVyZSBNQVhfVklSVF9DUFVTIGlzDQo+PiBzbWFsbGVyLCBsZWFkaW5nIHRvIGEg
Y2FsY3VsYXRlZCBidWZmZXIgc2l6ZSBvZiAzMDcyIGJ5dGVzLCB3aGljaCBpcw0KPj4gbGVzcyB0
aGFuIHRoZSBvcmlnaW5hbCA0MDk2IGJ5dGVzLg0KPj4NCj4+IFVuZm9ydHVuYXRlbHksIEkgaGF2
ZSBubyBwb3NzaWJpbGl0eSB0byB0ZXN0IG9uIEFybTMyLiBCdXQsIEkgZG8gbm90IHNlZQ0KPj4g
bXVjaCBkaWZmZXJlbmNlIGJldHdlZW4gQXJtNjQgYW5kIEFybTMyIGluIHRoZSBjb250ZXh0IG9m
IERvbVUgZGV2aWNlDQo+PiB0cmVlIGdlbmVyYXRpb24gYnkgbG9va2luZyBpbnRvIHRoZSBjb2Rl
Lg0KPiANCj4gTGV0IG1lIGtub3cgd2hhdCBraW5kIG9mIHRlc3QgeW91IG5lZWQsIHdlIGhhdmUg
c29tZSBhcm0zMiBzZXR1cCBoZXJlIChub3QgSFcsIHZpcnR1YWwgcGxhdGZvcm1zKS4NCg0KDQpU
aGFuayB5b3UgdmVyeSBtdWNoIGZvciBvZmZlcmluZyB0byB0ZXN0IHRoaXMgb24gQXJtMzIgcGxh
dGZvcm1zLg0KDQpUaGUgcHJpbWFyeSBnb2FsIG9mIHRoZSB0ZXN0IGlzIHRvIGNvbmZpcm0gdGhh
dCB0aGUgbmV3LCBjYWxjdWxhdGVkIERUQiANCmJ1ZmZlciBzaXplIG9mIDMwNzIgYnl0ZXMgaXMg
c3VmZmljaWVudCBmb3IgYSB3b3JzdC1jYXNlIEFybTMyIGRvbTBsZXNzIA0KZ3Vlc3QuIFRoZSBl
eHBlY3RlZCByZXN1bHQgaXMgdGhhdCBYZW4gYm9vdHMgc3VjY2Vzc2Z1bGx5LCBhbmQgdGhlIA0K
cmVndWxhciBkb20wbGVzcyBndWVzdCBpcyBjcmVhdGVkIHdpdGhvdXQgYW55IHBhbmljcy4NCg0K
VGhlIGlkZWFsIHRlc3QgY29uZmlndXJhdGlvbiB3b3VsZCBiZSBhIGRvbTBsZXNzIGd1ZXN0IHdp
dGggdGhlIA0KZm9sbG93aW5nIGNvbmZpZ3VyYXRpb246DQotIFRoZSB2Q1BVIGNvdW50IHNldCB0
byB0aGUgbWF4aW11bSBmb3IgQXJtMzIsIHdoaWNoIGlzIDgsIHRoZSB2Q1BVIA0Kbm9kZXMgc2hv
dWxkIGlkZWFsbHkgY29udGFpbiAiY2xvY2stZnJlcXVlbmN5IiBwcm9wZXJ0eS4NCi0gQW55IG90
aGVyIGZlYXR1cmVzIHRoYXQgYWRkIG5vZGVzIHRvIHRoZSBndWVzdCBkZXZpY2UgdHJlZSBlbmFi
bGVkIA0KKGUuZy4sIGh5cGVydmlzb3IsIHJlc2VydmVkLW1lbW9yeSwgcGwwMTEgbm9kZXMgYXJl
IHByZXNlbnQsIGV0YyksIHRvIA0KY3JlYXRlIHRoZSBsYXJnZXN0IHBvc3NpYmxlICJiYXNlIiBG
RFQgc2l6ZS4NCg0KVGhlIHRlc3Qgd291bGQgaW52b2x2ZSBhcHBseWluZyB0aGUgY3VycmVudCBw
YXRjaCwgYW5kIHRoZSBkaWZmIGJlbG93Og0KDQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9kZXZp
Y2UtdHJlZS9kb20wbGVzcy1idWlsZC5jIA0KYi94ZW4vY29tbW9uL2RldmljZS10cmVlL2RvbTBs
ZXNzLWJ1aWxkLmMNCmluZGV4IDM4YTU4MzA4MTMuLmU5NWY0MmQxZTEgMTAwNjQ0DQotLS0gYS94
ZW4vY29tbW9uL2RldmljZS10cmVlL2RvbTBsZXNzLWJ1aWxkLmMNCisrKyBiL3hlbi9jb21tb24v
ZGV2aWNlLXRyZWUvZG9tMGxlc3MtYnVpbGQuYw0KQEAgLTU3Nyw2ICs1NzcsOSBAQCBzdGF0aWMg
aW50IF9faW5pdCBwcmVwYXJlX2R0Yl9kb21VKHN0cnVjdCBkb21haW4gKmQsIA0Kc3RydWN0IGtl
cm5lbF9pbmZvICpraW5mbykNCiAgICAgIGlmICggcmV0IDwgMCApDQogICAgICAgICAgZ290byBl
cnI7DQoNCisgICAgcHJpbnRrKCJGaW5hbCBjb21wYWN0ZWQgRkRUIHNpemUgaXM6ICVkIGJ5dGVz
XG4iLCANCmZkdF90b3RhbHNpemUoa2luZm8tPmZkdCkpOw0KKyAgICBwcmludGsoIlByZWRlZmlu
ZWQgRkRUIHNpemUgaXM6ICVkIGJ5dGVzXG4iLCBET01VX0RUQl9TSVpFKTsNCisNCiAgICAgIHJl
dHVybiAwOw0KDQogICAgZXJyOg0KDQoNClBsZWFzZSBsZXQgbWUga25vdyB3aGF0IHlvdSBnZXQu
IFRoYW5rcyBhZ2Fpbi4NCg0KDQo+IA0KPiBDaGVlcnMsDQo+IEx1Y2ENCj4gDQo=


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 14:21:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 14:21:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177698.1501895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRADK-00056B-Uk; Thu, 04 Dec 2025 14:21:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177698.1501895; Thu, 04 Dec 2025 14:21:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRADK-000564-S8; Thu, 04 Dec 2025 14:21:46 +0000
Received: by outflank-mailman (input) for mailman id 1177698;
 Thu, 04 Dec 2025 14:21:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vRADJ-00055w-9g
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 14:21:45 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vRADH-006ZQY-2i;
 Thu, 04 Dec 2025 14:21:43 +0000
Received: from [15.248.2.26] (helo=[10.24.67.138])
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vRADH-00CKUR-0C;
 Thu, 04 Dec 2025 14:21:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=mV+Fp6dxMdUUH2m1Gd/PAw9haVuZEOoC3Wlzn2wttgE=; b=pz5RkF6Bcbq23VcGNzPTXnzUSY
	0Syva5wIZyTNJjL0d9Sk4yiXc2u67aruWKY8S65fPWTA1eZ1LbrJiudkqu7etcKbH6o1jY7oebXrU
	rHgfJ8CR8GeZz1euEbd/bLUlxOfmqpj7ObLuMv5//7XhXHB+tmNNYdtg5KrfUHq+kNTA=;
Message-ID: <42990627-9764-4a86-924b-3723cc493da9@xen.org>
Date: Thu, 4 Dec 2025 14:21:41 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH V2] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
To: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <20251203185817.3722903-1-oleksandr_tyshchenko@epam.com>
 <6e83d3bc-c49c-49f4-9dbd-e994e53a62a7@xen.org>
 <44f6cb05-33c3-4937-b508-7616c36d0e4d@epam.com>
Content-Language: en-US
From: Julien Grall <julien@xen.org>
In-Reply-To: <44f6cb05-33c3-4937-b508-7616c36d0e4d@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 03/12/2025 22:25, Oleksandr Tyshchenko wrote:
> 
> 
> On 03.12.25 23:10, Julien Grall wrote:
>> Hi,
> 
> Hello Julien
> 
>>
>> On 03/12/2025 18:58, Oleksandr Tyshchenko wrote:
>>> Creating a dom0less guest with a high vCPU count (e.g., >32) fails
>>> because the fixed 4KiB device tree buffer (DOMU_DTB_SIZE) overflows
>>> during creation.
>>>
>>> The FDT nodes for each vCPU are the primary consumer of space,
>>> and the previous fixed-size buffer was insufficient.
>>>
>>> This patch replaces the fixed size with a formula that calculates
>>> the required buffer size based on a fixed baseline plus a scalable
>>> portion for each potential vCPU up to the MAX_VIRT_CPUS limit.
>>>
>>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>> ---
>>> V1: https://eur01.safelinks.protection.outlook.com/?
>>> url=https%3A%2F%2Fpatchew.org%2FXen%2F20251202193246.3357821-1-
>>> oleksandr._5Ftyshchenko%40epam.com%2F&data=05%7C02%7COleksandr_Tyshchenko%40epam.com%7C57bf7711ac4747de3d2f08de32b069ce%7Cb41b72d04e9f4c268a69f949f367c91d%7C1%7C0%7C639003930443970639%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=u6pp39%2FVto2vU7Hp5aXl46VF4zDvD8C79Xp09bbowS4%3D&reserved=0
>>>
>>>     V2:
>>>      - update commit subj/desc
>>>      - use a formula that accounts MAX_VIRT_CPUS
>>>      - add BUILD_BUG_ON
>>> ---
>>> ---
>>>    xen/common/device-tree/dom0less-build.c | 16 +++++++++++++---
>>>    1 file changed, 13 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/
>>> device-tree/dom0less-build.c
>>> index 3f5b987ed8..38a5830813 100644
>>> --- a/xen/common/device-tree/dom0less-build.c
>>> +++ b/xen/common/device-tree/dom0less-build.c
>>> @@ -461,15 +461,25 @@ static int __init
>>> domain_handle_dtb_boot_module(struct domain *d,
>>>    /*
>>>     * The max size for DT is 2MB. However, the generated DT is small
>>> (not including
>>> - * domU passthrough DT nodes whose size we account separately), 4KB
>>> are enough
>>> - * for now, but we might have to increase it in the future.
>>> + * domU passthrough DT nodes whose size we account separately). The
>>> size is
>>> + * calculated from a fixed baseline plus a scalable portion for each
>>> potential
>>> + * vCPU node up to the system limit (MAX_VIRT_CPUS), as the vCPU
>>> nodes are
>>> + * the primary consumer of space.
>>> + *
>>> + * The baseline of 2KiB is a safe buffer for all non-vCPU FDT content.
>>
>> What if the use decides to pass a DTB fragment? How do we know this will
>> fit in the 2KiB?
> 
> If a partial device tree is provided then it will be accounted
> separately. There is a code, non-visible is the context, so I think, we
> are good here.

Ah yes! I missed that code. Sorry for the noise.

> 
> 
>>
>>> + * Empirical testing with the maximum number of other device tree
>>> nodes shows
>>> + * a final compacted base size of ~1.5KiB. The 128 bytes per vCPU is
>>> derived
>>> + * from a worst-case analysis of the FDT construction-time size for a
>>> single
>>> + * vCPU node.
>>
>> For in-code documentation, this is ok to just provide some numbers. But
>> this needs a bit more details in the commit message with the exact tests
>> you did. This would be helpful if we ever need to change the size (for
>> instance we could have extra emulated devices or we need another
>> property per CPU).
> 
> ok, I will add my testing details into the commit description.
> 
>>
>>>     */
>>> -#define DOMU_DTB_SIZE 4096
>>> +#define DOMU_DTB_SIZE (2048 + (MAX_VIRT_CPUS * 128))
>>
>> On Arm32, MAX_VIRT_CPUS is 8. This means the new DOMU_DTB_SIZE is going
>> to be smaller than 4096. Why is it ok?
> 
> You are correct to question the impact on Arm32, where MAX_VIRT_CPUS is
> smaller, leading to a calculated buffer size of 3072 bytes, which is
> less than the original 4096 bytes.
> 
> Unfortunately, I have no possibility to test on Arm32. But, I do not see
> much difference between Arm64 and Arm32 in the context of DomU device
> tree generation by looking into the code.
> 
> I simulated this exact environment on my Arm64 setup to validate that
> the new size remains sufficient. To do this, I temporarily switched
> MAX_VIRT_CPUS to 8 and ran tests with 1 and 8 vCPUs.

Thanks for doing that! I also see Luca is going to help. If he also 
confirms the size is good then can you mention the change for Arm 32-bit?

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Dec 04 15:38:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 15:38:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177896.1501907 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRBPA-0005LF-9Q; Thu, 04 Dec 2025 15:38:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177896.1501907; Thu, 04 Dec 2025 15:38:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRBPA-0005L8-5E; Thu, 04 Dec 2025 15:38:04 +0000
Received: by outflank-mailman (input) for mailman id 1177896;
 Thu, 04 Dec 2025 15:38:02 +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 <SRS0=jX19=6K=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vRBP8-0005Kd-Gb
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 15:38:02 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 375ca3b7-d127-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 16:38:01 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4777771ed1aso8992265e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 04 Dec 2025 07:38:01 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4793091c740sm36413385e9.3.2025.12.04.07.38.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 04 Dec 2025 07:38:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 375ca3b7-d127-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764862681; x=1765467481; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=7ksWhcaJPwl/TvVHUuTh6bAAkegjIrAhx+pmJ3q3FCQ=;
        b=A0YqoONs0pPV9biLWuFY0sq4vOTxb2NGM7VfAt8Fllz3nsRy5flSR4PmkejKco6X2L
         DpgGcSTYmlTb7VGyV7noiOfdr7I4RL4o4dNCJuV4KvndeVPQ5NiV/EUxGV7sBrvTKvw/
         1QnfACzTd9mrr9aHue80J4YM/raSledpBEo3RdMxGY4K/bw+05gPtcEzon7mgCpt8Dl1
         fa6eiCrLbbe8KBugz6UJjLUlRv8QKdZlLIVPNj0PRY/PBpbV02z4cZsDFI2mwi9mWlvU
         TIorJbzn5o05HBIU0GJE+T21LgImGIhzhk6bpEvNZWMkVtLdDv46+o0AlmxJ0yrO1tdz
         i3Vw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764862681; x=1765467481;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=7ksWhcaJPwl/TvVHUuTh6bAAkegjIrAhx+pmJ3q3FCQ=;
        b=kw9+N7dzePeoF2wXF8ZJIIHQWBRUp0f3RyyBr7dvv7SgEUSiSow6/6GxqUpiiNF85o
         JV0LQ3PUOOBYecwGg3H+eRHytJASFTMtN0yT47ITeDmy9OsHBifYNRVfUeUvQPYzu+Ms
         bB67q7ukIB+1PBdmOG9qFk9z+XHvn72JR9auvQA+RD+JfUtbaybBZJey8iMKLKYUa+2g
         Mi7/TAZO8CxBUzfPQzFrmNT4n9bFdgd8S/1uYDbaIOFML6t+AP25Q360WSV4yd9RKy2Z
         kwAV0+WyTYPA60sPhpO+xnmmexNxMf9NlNh9rwG7Ffy6ZGjVEjJ313aQREKZ9QjLUqEv
         Objw==
X-Gm-Message-State: AOJu0YwyZ+qAjjFOGpwBeSUh+lUT0+irkQtNwrnQXzjs8OKp8wdlCB1/
	Yh5IB11Zd8M57pvr3nbdVOENPQjxyQuSdYGJvo9/ie4LTAYJLYd/HQENAWj01pryxw==
X-Gm-Gg: ASbGncuPT8VasBFpQSIxM0ifgObfT3NnjBn+3ljprAzwBVZ3B0J5bS2KwWGpRUbHR6V
	g6FuuqdxVrtO4E8S1u0B7clM1Oamwq+9Aja1V50eO95FvMSM2UdfKchSXRU0o8sIUWPn2h8ECea
	toY5huN+jLyNDvBO89IOQOvuaRORsDaJpzCl4cRonhMJwZTll+Svl9rdNvD5hjesPnF1fAnFMg8
	zyEs6Xkj8I6rt/mu6vI4/ZRIs+cHdvuUjn+9IaJ0DpyPhLrBaR2dZiRc+pjYPKNknyzeDwQdqmi
	xGpxkbObrURZZFxfa+Aw6z2YDG7Bfiy5r10s/r0F1lEeB8deZl0vl1zB64nQN8zkfToiYJBssCx
	EEOKzDx78I+BAfJ9rZEBCW5ZA1t+MMGdh0dXzxUEzrB9aijKGmzZ4jIqF2MaO4O0YCgzahuicjK
	jiGcFwCHXpIxtjHDah97bLrzcnxn2XbMCWxDM9M64IloKGeFfx6LCbVHGKHCD7wFOk2CTuPkktV
	fE=
X-Google-Smtp-Source: AGHT+IGLEbmtCAeAIL9z+i9sV25ZxF9ixMG/HPD8RI8KCwrOXrPt/DCoDoxUJfSmznC2yJz5wOn8Uw==
X-Received: by 2002:a05:600c:630e:b0:477:a02d:397a with SMTP id 5b1f17b1804b1-4792aee6dd4mr66265945e9.2.1764862680570;
        Thu, 04 Dec 2025 07:38:00 -0800 (PST)
Message-ID: <85b426ae-ad85-4bf3-b2b8-39e1c1ccdd5e@suse.com>
Date: Thu, 4 Dec 2025 16:37:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: Xen 4.19.4 released
To: xen-announce@lists.xenproject.org
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

All,

we're pleased to announce the release of another bug fixing Xen version.

Xen 4.19.4 is available from its git repository
http://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=refs/heads/stable-4.19
(tag RELEASE-4.19.4) or from the XenProject download page
https://xenproject.org/resources/downloads/ (after entering 4.19 in the search
box there).

We recommend all users of the 4.19 stable series to update to this latest
point release.

Regards, Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 15:42:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 15:42:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177931.1501928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRBTq-0007ed-3E; Thu, 04 Dec 2025 15:42:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177931.1501928; Thu, 04 Dec 2025 15:42:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRBTq-0007eW-0M; Thu, 04 Dec 2025 15:42:54 +0000
Received: by outflank-mailman (input) for mailman id 1177931;
 Thu, 04 Dec 2025 15:42:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=myi3=6K=yandex-team.ru=vsementsov@srs-se1.protection.inumbo.net>)
 id 1vRBTo-0007cq-BW
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 15:42:53 +0000
Received: from forwardcorp1b.mail.yandex.net (forwardcorp1b.mail.yandex.net
 [178.154.239.136]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e31c4450-d127-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 16:42:49 +0100 (CET)
Received: from mail-nwsmtp-smtp-corp-main-34.sas.yp-c.yandex.net
 (mail-nwsmtp-smtp-corp-main-34.sas.yp-c.yandex.net
 [IPv6:2a02:6b8:c24:fa2:0:640:41ee:0])
 by forwardcorp1b.mail.yandex.net (Yandex) with ESMTPS id A88EC808EF;
 Thu, 04 Dec 2025 18:42:47 +0300 (MSK)
Received: from vsementsov-lin.. (unknown [2a02:6bf:8080:83c::1:2e])
 by mail-nwsmtp-smtp-corp-main-34.sas.yp-c.yandex.net (smtpcorp/Yandex) with
 ESMTPSA id agnhnW0F9Gk0-wEtPrrgZ; Thu, 04 Dec 2025 18:42:47 +0300
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e31c4450-d127-11f0-980a-7dc792cee155
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru;
	s=default; t=1764862967;
	bh=LUCSxr52Pv2huLa0fLn9hz38EO3fAzK11cfvmV1Zx1o=;
	h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From;
	b=AFkc0JgxxZckYW90nKZz08Sle+cta5AXcoXHfOAWQhV0HZ68K+ZNdc9KSGkLWH7gT
	 37HMMYa/7cE8fi4SH1aWfd8sKrdL5g6xHCmlCFcEkVSjh8wBnbDfvONAmC3jn/kNZq
	 zQYugDtgd79rWKG7U35DS/fCYJ3RnwV8AaB7wGig=
Authentication-Results: mail-nwsmtp-smtp-corp-main-34.sas.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru
From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
To: marcandre.lureau@redhat.com
Cc: pbonzini@redhat.com,
	qemu-devel@nongnu.org,
	vsementsov@yandex-team.ru,
	d-tatianin@yandex-team.ru,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	Paul Durrant <paul@xen.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	xen-devel@lists.xenproject.org (open list:X86 Xen CPUs)
Subject: [PATCH v2 08/10] chardev: introduce .chr_get_pty_name() handler
Date: Thu,  4 Dec 2025 18:42:32 +0300
Message-ID: <20251204154235.149575-9-vsementsov@yandex-team.ru>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20251204154235.149575-1-vsementsov@yandex-team.ru>
References: <20251204154235.149575-1-vsementsov@yandex-team.ru>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Currently we do two wrong things:

1. Abuse s->filename to get pty_name from it

2. Violate layering with help of CHARDEV_IS_PTY()

Let's get rid of both, and introduce correct way to get pty name in
generic code, if available.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
---
 chardev/char-pty.c     |  7 +++++++
 chardev/char.c         | 19 +++++++++++++------
 hw/char/xen_console.c  |  7 ++++---
 include/chardev/char.h |  7 +++++--
 4 files changed, 29 insertions(+), 11 deletions(-)

diff --git a/chardev/char-pty.c b/chardev/char-pty.c
index a582aa7bc7..047aade09e 100644
--- a/chardev/char-pty.c
+++ b/chardev/char-pty.c
@@ -387,6 +387,12 @@ static void pty_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
     pty->path = g_strdup(path);
 }
 
+static char *pty_chr_get_pty_name(Chardev *chr)
+{
+    PtyChardev *s = PTY_CHARDEV(chr);
+    return g_strdup(s->pty_name);
+}
+
 static void char_pty_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
@@ -396,6 +402,7 @@ static void char_pty_class_init(ObjectClass *oc, const void *data)
     cc->chr_write = pty_chr_write;
     cc->chr_update_read_handler = pty_chr_update_read_handler;
     cc->chr_add_watch = pty_chr_add_watch;
+    cc->chr_get_pty_name = pty_chr_get_pty_name;
 }
 
 static const TypeInfo char_pty_type_info = {
diff --git a/chardev/char.c b/chardev/char.c
index 44bfed3627..0dc792b88f 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -1090,9 +1090,7 @@ ChardevReturn *qmp_chardev_add(const char *id, ChardevBackend *backend,
     }
 
     ret = g_new0(ChardevReturn, 1);
-    if (CHARDEV_IS_PTY(chr)) {
-        ret->pty = g_strdup(chr->filename + 4);
-    }
+    ret->pty = qemu_chr_get_pty_name(chr);
 
     return ret;
 
@@ -1101,6 +1099,17 @@ err:
     return NULL;
 }
 
+char *qemu_chr_get_pty_name(Chardev *chr)
+{
+    ChardevClass *cc = CHARDEV_GET_CLASS(chr);
+
+    if (cc->chr_get_pty_name) {
+        return cc->chr_get_pty_name(chr);
+    }
+
+    return NULL;
+}
+
 ChardevReturn *qmp_chardev_change(const char *id, ChardevBackend *backend,
                                   Error **errp)
 {
@@ -1192,9 +1201,7 @@ ChardevReturn *qmp_chardev_change(const char *id, ChardevBackend *backend,
     object_unref(OBJECT(chr_new));
 
     ret = g_new0(ChardevReturn, 1);
-    if (CHARDEV_IS_PTY(chr_new)) {
-        ret->pty = g_strdup(chr_new->filename + 4);
-    }
+    ret->pty = qemu_chr_get_pty_name(chr_new);
 
     return ret;
 }
diff --git a/hw/char/xen_console.c b/hw/char/xen_console.c
index a639fb0b11..7502de46e4 100644
--- a/hw/char/xen_console.c
+++ b/hw/char/xen_console.c
@@ -418,6 +418,7 @@ static void xen_console_realize(XenDevice *xendev, Error **errp)
     XenConsole *con = XEN_CONSOLE_DEVICE(xendev);
     Chardev *cs = qemu_chr_fe_get_driver(&con->chr);
     unsigned int u;
+    g_autofree char *pty_name = NULL;
 
     if (!cs) {
         error_setg(errp, "no backing character device");
@@ -450,9 +451,9 @@ static void xen_console_realize(XenDevice *xendev, Error **errp)
 
     trace_xen_console_realize(con->dev, object_get_typename(OBJECT(cs)));
 
-    if (CHARDEV_IS_PTY(cs)) {
-        /* Strip the leading 'pty:' */
-        xen_device_frontend_printf(xendev, "tty", "%s", cs->filename + 4);
+    pty_name = qemu_chr_get_pty_name(cs);
+    if (pty_name) {
+        xen_device_frontend_printf(xendev, "tty", "%s", pty_name);
     }
 
     /* No normal PV driver initialization for the primary console under Xen */
diff --git a/include/chardev/char.h b/include/chardev/char.h
index 23a227dca9..d36e50b99e 100644
--- a/include/chardev/char.h
+++ b/include/chardev/char.h
@@ -247,8 +247,6 @@ OBJECT_DECLARE_TYPE(Chardev, ChardevClass, CHARDEV)
 
 #define CHARDEV_IS_RINGBUF(chr) \
     object_dynamic_cast(OBJECT(chr), TYPE_CHARDEV_RINGBUF)
-#define CHARDEV_IS_PTY(chr) \
-    object_dynamic_cast(OBJECT(chr), TYPE_CHARDEV_PTY)
 
 struct ChardevClass {
     ObjectClass parent_class;
@@ -306,6 +304,9 @@ struct ChardevClass {
 
     /* handle various events */
     void (*chr_be_event)(Chardev *s, QEMUChrEvent event);
+
+    /* return PTY name if available */
+    char *(*chr_get_pty_name)(Chardev *s);
 };
 
 Chardev *qemu_chardev_new(const char *id, const char *typename,
@@ -320,4 +321,6 @@ GSource *qemu_chr_timeout_add_ms(Chardev *chr, guint ms,
 void suspend_mux_open(void);
 void resume_mux_open(void);
 
+char *qemu_chr_get_pty_name(Chardev *chr);
+
 #endif
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 04 15:58:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 15:58:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177951.1501948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRBia-0001PO-MB; Thu, 04 Dec 2025 15:58:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177951.1501948; Thu, 04 Dec 2025 15:58:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRBia-0001PH-JG; Thu, 04 Dec 2025 15:58:08 +0000
Received: by outflank-mailman (input) for mailman id 1177951;
 Thu, 04 Dec 2025 15:58:07 +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
 <SRS0=feRK=6K=gmail.com=haseebashraf091@srs-se1.protection.inumbo.net>)
 id 1vRBiZ-0001Oh-2S
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 15:58:07 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 052baeb2-d12a-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 16:58:05 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-42e2e628f8aso540282f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 04 Dec 2025 07:58:05 -0800 (PST)
Received: from PKL-HASEEBA-LT.. ([39.37.252.158])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d222506sm4506613f8f.28.2025.12.04.07.58.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Dec 2025 07:58:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 052baeb2-d12a-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764863885; x=1765468685; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=w+2dUVKX6UmYMbNOIqJEEZtLFN5pzKK4HEh6eS2p2xY=;
        b=gt1oxO5ytuyDj5xBPWPlF1QSMaaun/fnOLIz1aSVwHcxYyEjG0g4Eqf1dLLzumLliL
         CWgqahKJuwqRfZ5SAgF6A5/rn/hUlmRwveNeAyv4HBejFjnUh/53QZlXIa7BhA5B1/yW
         BGuEkCbxf0NfM6dIioRuiC0iHxZ70RoLYktn4xWYdwedP6+s3rrqrTWbI4ygUrnXwj+4
         7A3f4paKYazwbrmilHHUyi+d2C4IYknJBy4yaTNVBgkquGVlqo/4qCSk1pJHCEjMOMwO
         KE8+LvvATimFfgFqvpToxvLKEKisgb6uTQDbyKSV9MBh73N8AABr3X4QQuovpSddB7YE
         bx4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764863885; x=1765468685;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=w+2dUVKX6UmYMbNOIqJEEZtLFN5pzKK4HEh6eS2p2xY=;
        b=SWAPlhSri93ve2Qe8mkkft11DBhBX5GBEH3cktTbc96ut99ZhipIqa5fjuQimKlnMC
         hrzK55pQzSkB+KgvB0UV3lRHn3B9+YNjskitsOeTkeI2UZD79ieozdWAD9AfW/g3j4r4
         vMEAtij9qMVRHpDfG+XGvonrAg9F/R6WFr0bicT6wBVd3679I149BOAw+Bc9c6uRj7jo
         M22sMvjrqmRcJSJTGCOit/6FFI+DDzASUEJEDl4ZkAoopeM+YPEBG7zpHTiyYoCX4uaP
         FhOPrADuN32I/BoYaqjuuzy71G12BCVGZYXCfanAz5cVht5P6yLtIQQtJ4jjda6OGJQe
         NHCg==
X-Gm-Message-State: AOJu0YycjUxp7JuVCN7JfPeikwK/SGjlxlKDtoEJsKfnuRGoAeQIJn+O
	95Q1Yij45Xxy88u8J2YxIZ+9fq5zujYu/II/XeQdnCjitNd23MOHH21CM/j65QPK
X-Gm-Gg: ASbGncvhtlUctJrTsoCOd2ie5FmklxJSzFZ0gEDnhwYGwi2gqxgooAug2KdPN58vSlF
	9ZlsFINFcouRAdZT/o9w9Csn3bnNhTkUCOX/xv73AeDQdDU/LggUZyLm+1SK+N6rOcCmQPEdb4W
	R4reRhmYSLuEJg26AibDw56wh8b6Hx4k76CEdQNmhTAQf9Wr6c1GOGXDr5l7sFP2jh6Jl5FywsF
	k3fWJDfk00imgkFg+FYc/3rvR4MFamHalYeXB6fblBpAP9BdzKXhh62ppneEbKBIvuJUTEjPo1x
	oaX2FXTYumVs7J++0EXpua7b3g/whvL3Qy8D+sQG28DGiRqr+aeI4KRBbXCJET6jPkgYyuSfTEc
	VT9iYpb2taLJM3M4Xmraik/uVP0vkVbPFVMPW/YIAtEumGqbSraRELsHztKjFXQo1vfKIEqpKw8
	NZVt/duQVVhXxJsk+sksNngqV0S5qomiQHPyhoBiaPlBDi3NSIiAc=
X-Google-Smtp-Source: AGHT+IEPQakLBv3nmBxyIY4SCGpMNj6qb++cVvmxtJYNNQQuBZnbWhJrzO7zwb9AAOLOs9H2Xd7NpA==
X-Received: by 2002:a05:6000:290c:b0:42b:3592:1b92 with SMTP id ffacd0b85a97d-42f7985ffeemr4011053f8f.47.1764863884543;
        Thu, 04 Dec 2025 07:58:04 -0800 (PST)
From: Haseeb Ashraf <haseebashraf091@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Haseeb Ashraf <haseeb.ashraf@siemens.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Mohamed Mediouni <mohamed@unpredictable.fr>
Subject: [XEN PATCH v2 2/3] xen/arm: optimize stage-1,2 combined TLBI in presence of FEAT_nTLBPA
Date: Thu,  4 Dec 2025 20:57:42 +0500
Message-ID: <c94db0e0468637a37a00157c6c338e19c98316ef.1764863575.git.haseebashraf091@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <ce2e7c32f06ba8a48a2074fa8cadd9c122b6490f.1764863575.git.haseebashraf091@gmail.com>
References: <ce2e7c32f06ba8a48a2074fa8cadd9c122b6490f.1764863575.git.haseebashraf091@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Haseeb Ashraf <haseeb.ashraf@siemens.com>

FEAT_nTLBPA (quoting definition) introduces a mechanism to identify
if the intermediate caching of translation table walks does not
include non-coherent caches of previous valid translation table
entries since the last completed TLBI applicable to the PE.

As there won't be any non-coherent caches since the last completed
TLBI, stage-1 TLBI won't be required while performing stage-2 TLBI.

This feature is optionally available in both arm32 and arm64.

Suggested-by: Mohamed Mediouni <mohamed@unpredictable.fr>
Signed-off-by: Haseeb Ashraf <haseeb.ashraf@siemens.com>
---
 xen/arch/arm/cpufeature.c                 | 19 ++++++++++
 xen/arch/arm/include/asm/arm32/flushtlb.h | 18 +++++-----
 xen/arch/arm/include/asm/arm64/flushtlb.h | 42 ++++++++++++++++++++---
 xen/arch/arm/include/asm/cpufeature.h     | 24 +++++++++++--
 xen/arch/arm/include/asm/processor.h      |  7 ++++
 5 files changed, 95 insertions(+), 15 deletions(-)

diff --git a/xen/arch/arm/cpufeature.c b/xen/arch/arm/cpufeature.c
index 1a80738571..9fa1c45869 100644
--- a/xen/arch/arm/cpufeature.c
+++ b/xen/arch/arm/cpufeature.c
@@ -17,7 +17,19 @@ DECLARE_BITMAP(cpu_hwcaps, ARM_NCAPS);
 
 struct cpuinfo_arm __read_mostly domain_cpuinfo;
 
+#ifdef CONFIG_ARM_32
+static bool has_ntlbpa(const struct arm_cpu_capabilities *entry)
+{
+    return system_cpuinfo.mm32.ntlbpa == MM32_NTLBPA_SUPPORT_IMP;
+}
+#endif
+
 #ifdef CONFIG_ARM_64
+static bool has_ntlbpa(const struct arm_cpu_capabilities *entry)
+{
+    return system_cpuinfo.mm64.ntlbpa == MM64_NTLBPA_SUPPORT_IMP;
+}
+
 static bool has_sb_instruction(const struct arm_cpu_capabilities *entry)
 {
     return system_cpuinfo.isa64.sb;
@@ -25,6 +37,13 @@ static bool has_sb_instruction(const struct arm_cpu_capabilities *entry)
 #endif
 
 static const struct arm_cpu_capabilities arm_features[] = {
+#if defined(CONFIG_ARM_32) || defined(CONFIG_ARM_64)
+    {
+        .desc = "Intermediate caching of translation table walks (nTLBPA)",
+        .capability = ARM_HAS_NTLBPA,
+        .matches = has_ntlbpa,
+    },
+#endif
 #ifdef CONFIG_ARM_64
     {
         .desc = "Speculation barrier instruction (SB)",
diff --git a/xen/arch/arm/include/asm/arm32/flushtlb.h b/xen/arch/arm/include/asm/arm32/flushtlb.h
index 70a8b1dad6..db15f29216 100644
--- a/xen/arch/arm/include/asm/arm32/flushtlb.h
+++ b/xen/arch/arm/include/asm/arm32/flushtlb.h
@@ -58,11 +58,12 @@ static inline void flush_guest_tlb_s1_local(void)
      * See ARMv8 (DDI 0487A.e): G4-4126 Table G4-24.
      *
      * The following macros should be used where intention is to
-     * clear only stage-1 TLBs. This would be helpful in future in
-     * identifying which stage-1 TLB flushes can be skipped such as
-     * in present of FEAT_nTLBPA.
+     * clear only stage-1 TLBs. This would be helpful in identifying
+     * which stage-1 TLB flushes can be skipped in present of
+     * FEAT_nTLBPA.
      */
-    return flush_guest_tlb_local();
+    if ( !cpus_have_const_cap(ARM_HAS_NTLBPA) )
+        flush_guest_tlb_local();
 }
 
 /*
@@ -78,11 +79,12 @@ static inline void flush_guest_tlb_s1(void)
      * See ARMv8 (DDI 0487A.e): G4-4126 Table G4-24.
      *
      * The following macros should be used where intention is to
-     * clear only stage-1 TLBs. This would be helpful in future in
-     * identifying which stage-1 TLB flushes can be skipped such as
-     * in present of FEAT_nTLBPA.
+     * clear only stage-1 TLBs. This would be helpful in identifying
+     * which stage-1 TLB flushes can be skipped in present of
+     * FEAT_nTLBPA.
      */
-    return flush_guest_tlb();
+    if ( !cpus_have_const_cap(ARM_HAS_NTLBPA) )
+        flush_guest_tlb();
 }
 
 /* Flush TLB of local processor for address va. */
diff --git a/xen/arch/arm/include/asm/arm64/flushtlb.h b/xen/arch/arm/include/asm/arm64/flushtlb.h
index fff76375a3..a2f1af833e 100644
--- a/xen/arch/arm/include/asm/arm64/flushtlb.h
+++ b/xen/arch/arm/include/asm/arm64/flushtlb.h
@@ -47,6 +47,24 @@ static inline void name(void)                    \
         : : : "memory");                         \
 }
 
+#define TLB_HELPER_NTLBPA(name, tlbop, sh)           \
+static inline void name(void)                        \
+{                                                    \
+    if ( !cpus_have_const_cap(ARM_HAS_NTLBPA) )      \
+        asm_inline volatile (                        \
+            "dsb  "  # sh  "st;"                     \
+            "tlbi "  # tlbop  ";"                    \
+            ALTERNATIVE(                             \
+                "nop; nop;",                         \
+                "dsb  ish;"                          \
+                "tlbi "  # tlbop  ";",               \
+                ARM64_WORKAROUND_REPEAT_TLBI,        \
+                CONFIG_ARM64_WORKAROUND_REPEAT_TLBI) \
+            "dsb  "  # sh  ";"                       \
+            "isb;"                                   \
+            : : : "memory");                         \
+}
+
 /*
  * FLush TLB by IPA. This will likely be used in a loop, so the caller
  * is responsible to use the appropriate memory barriers before/after
@@ -96,10 +114,10 @@ TLB_HELPER(flush_guest_tlb_local, vmalls12e1, nsh)
 TLB_HELPER(flush_guest_tlb, vmalls12e1is, ish)
 
 /* Flush local TLBs, current VMID, stage-1 only */
-TLB_HELPER(flush_guest_tlb_s1_local, vmalle1, nsh)
+TLB_HELPER_NTLBPA(flush_guest_tlb_s1_local, vmalle1, nsh)
 
 /* Flush innershareable TLBs, current VMID, stage-1 only */
-TLB_HELPER(flush_guest_tlb_s1, vmalle1is, ish)
+TLB_HELPER_NTLBPA(flush_guest_tlb_s1, vmalle1is, ish)
 
 /* Flush local TLBs, current VMID, stage-2 for ipa address */
 TLB_HELPER_IPA(__flush_guest_tlb_one_s2_local, ipas2e1)
@@ -153,7 +171,15 @@ static inline void flush_guest_tlb_range_ipa_local(paddr_t ipa,
         __flush_guest_tlb_one_s2_local(ipa);
         ipa += PAGE_SIZE;
     }
-    /* Final dsb() and isb() are done in following invocation */
+
+    if ( cpus_have_const_cap(ARM_HAS_NTLBPA) )
+    {
+        dsb(nsh);
+        isb();
+        return;
+    }
+
+    /* Otherwise final dsb() and isb() are done in following invocation */
     flush_guest_tlb_s1_local();
 }
 
@@ -185,7 +211,15 @@ static inline void flush_guest_tlb_range_ipa(paddr_t ipa,
         __flush_guest_tlb_one_s2(ipa);
         ipa += PAGE_SIZE;
     }
-    /* Final dsb() and isb() are done in following invocation */
+
+    if ( cpus_have_const_cap(ARM_HAS_NTLBPA) )
+    {
+        dsb(ish);
+        isb();
+        return;
+    }
+
+    /* Otherwise final dsb() and isb() are done in following invocation */
     flush_guest_tlb_s1();
 }
 
diff --git a/xen/arch/arm/include/asm/cpufeature.h b/xen/arch/arm/include/asm/cpufeature.h
index b6df188011..af4e9bdf06 100644
--- a/xen/arch/arm/include/asm/cpufeature.h
+++ b/xen/arch/arm/include/asm/cpufeature.h
@@ -76,8 +76,9 @@
 #define ARM_WORKAROUND_BHB_SMCC_3 15
 #define ARM_HAS_SB 16
 #define ARM64_WORKAROUND_1508412 17
+#define ARM_HAS_NTLBPA 18
 
-#define ARM_NCAPS           18
+#define ARM_NCAPS           19
 
 #ifndef __ASSEMBLY__
 
@@ -269,7 +270,8 @@ struct cpuinfo_arm {
             unsigned long ets:4;
             unsigned long __res1:4;
             unsigned long afp:4;
-            unsigned long __res2:12;
+            unsigned long ntlbpa:4;
+            unsigned long __res2:8;
             unsigned long ecbhb:4;
 
             /* MMFR2 */
@@ -430,8 +432,24 @@ struct cpuinfo_arm {
         register_t bits[1];
     } aux32;
 
-    struct {
+    union {
         register_t bits[6];
+        struct {
+            /* MMFR0 */
+            unsigned long __res0:32;
+            /* MMFR1 */
+            unsigned long __res1:32;
+            /* MMFR2 */
+            unsigned long __res2:32;
+            /* MMFR3 */
+            unsigned long __res3:32;
+            /* MMFR4 */
+            unsigned long __res4:32;
+            /* MMFR5 */
+            unsigned long __res5_0:4;
+            unsigned long ntlbpa:4;
+            unsigned long __res5_1:24;
+        };
     } mm32;
 
     struct {
diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
index 92c8bc1a31..01f3cb16a0 100644
--- a/xen/arch/arm/include/asm/processor.h
+++ b/xen/arch/arm/include/asm/processor.h
@@ -458,9 +458,16 @@
 /* FSR long format */
 #define FSRL_STATUS_DEBUG       (_AC(0x22,UL)<<0)
 
+#ifdef CONFIG_ARM_32
+#define MM32_NTLBPA_SUPPORT_NI      0x0
+#define MM32_NTLBPA_SUPPORT_IMP     0x1
+#endif
+
 #ifdef CONFIG_ARM_64
 #define MM64_VMID_8_BITS_SUPPORT    0x0
 #define MM64_VMID_16_BITS_SUPPORT   0x2
+#define MM64_NTLBPA_SUPPORT_NI      0x0
+#define MM64_NTLBPA_SUPPORT_IMP     0x1
 #endif
 
 #ifndef __ASSEMBLY__
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 04 15:58:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 15:58:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177950.1501937 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRBiP-00018f-9y; Thu, 04 Dec 2025 15:57:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177950.1501937; Thu, 04 Dec 2025 15:57:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRBiP-00018Y-7U; Thu, 04 Dec 2025 15:57:57 +0000
Received: by outflank-mailman (input) for mailman id 1177950;
 Thu, 04 Dec 2025 15:57:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=feRK=6K=gmail.com=haseebashraf091@srs-se1.protection.inumbo.net>)
 id 1vRBiN-00018S-FA
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 15:57:55 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fd953e51-d129-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 16:57:52 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4779a637712so8277445e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 04 Dec 2025 07:57:52 -0800 (PST)
Received: from PKL-HASEEBA-LT.. ([39.37.252.158])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d222506sm4506613f8f.28.2025.12.04.07.57.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Dec 2025 07:57:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fd953e51-d129-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764863872; x=1765468672; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=/L1DB7/W0yDOwHyCh6YYkIOBuN5JYLSIfe7krOMb+SM=;
        b=m+KWt3Ff/SjkmxpS0wRo4YHVP47D3zAjkQ6kiBZdznQibBa/N4RNmmlx8E25fkWv/A
         eSbNMIiFJohykP5Tznj6GTVRG7fbw51asw8N5jQTeawk7wxw/qiwuRbVGO2oKTz9JDBJ
         /iCqEMfYYjvA5TL11Lalr1H8pvmzFZ1Js0jvwexDq1GtGw6xAqaFHrOvz33DkMVXwLwV
         YuPZIyi19HiOGfcbb3aq8DROxBTlG9u3QLsqsGlh+/aBOPZORG/EYIrlNJ2M5jOdrmkN
         vQLlvdIQJ/06ym6FfKp2MMlPr32RTqTt171Lfof8ALyrf8fikdSGZ08SpnGrYbfLGuD2
         vbkw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764863872; x=1765468672;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/L1DB7/W0yDOwHyCh6YYkIOBuN5JYLSIfe7krOMb+SM=;
        b=WjSR7367Q2PlnDscMaHJ6EVZAl9BaR2yXGZraLARdBEGfdRiZStZwHtU7bYxTDBjBB
         VjpSjyiaxtUoW3T1r5IKj5coA43kThA5Gr0S6ccYTsHIasZ77Ov/mE9jdV14lFwnU0iq
         xDEc+aYwjUBXBJ/WGGh5qwBrodP9azrYyl/lNaVV42y+KdMeRrvqN6vazaZyaghryVPY
         BsN4poBxaduJhnDp/ZoSI8UqAa8RB2+fpbJy6/L+r8NwbQLsm2fOr+0/YAbNeFXJFQtP
         ks13wGXyP7wdcXP7lqhs/uqrWCdJPyvwvzKZUnMxEjdaj/V1YLsniMv6JOcPtiGwFf2z
         cIIA==
X-Gm-Message-State: AOJu0YyV+22JNgDWBshBsRBFm9vQS/9NpLCPjqIHr/fmY9dymHAvyx4J
	S2Y4kAv1POoOwE0TR8bCLN7WuHFK/v5279eCbcdsEm0SNoaPTvgNw0VYss6iBcht
X-Gm-Gg: ASbGncstmV/Ycl5W8Kv0R3oKe/afjbX4ohQkg/fIHpL2wywu/szjaOB4mDpe2iqgJpS
	JaxOsUkmU1O4eplz/m45L0hQe346ma01+sWrFXARyWR3QHZ9DIAAIQniXNsKjzDgH5m1rMJjqN0
	ktDJrUGMaVVBr1+0yYQnQf/S+MbbcEp8moshFnnrJR2TNCpMOlCEnstxSvEuxt6EMashClPjUdO
	9JsYqcDkHI/q4u4i4VBsJHP+/RG4hccGms64zdfXhAVBXdl9NmsNYhmakcFJ0c3EH92x+euUekJ
	RpYdznQxB2k9U4/+F+GXU+4r1AzPc3aZY3npnDm57ddOunlWp3gmsMBDFC+MXM2gzZloPCbUUX2
	PgllJ05bpSLUTdut29U5EJcWflUW0+oE3ioMCPUut3YZZF2zzA2/5cjzDWwL1uVgdBvxQAUB/wv
	PBNoy7666ubBUGSKlrLW1aArcS3BQhdxZm2pBvdxXL6PDHJaC4s3M=
X-Google-Smtp-Source: AGHT+IFRqxbHnqApQRDfsx3MFNbHC2mq4vzBMv0JMS4GaYnbUbWUsiM0iWESB9JJZpn+54opCCvMOA==
X-Received: by 2002:a05:600c:19ca:b0:477:94e3:8a96 with SMTP id 5b1f17b1804b1-4792af30f85mr68246925e9.20.1764863871638;
        Thu, 04 Dec 2025 07:57:51 -0800 (PST)
From: Haseeb Ashraf <haseebashraf091@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Haseeb Ashraf <haseeb.ashraf@siemens.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [XEN PATCH v2 1/3] xen/arm/p2m: perform IPA-based TLBI when IPA is known
Date: Thu,  4 Dec 2025 20:57:41 +0500
Message-ID: <ce2e7c32f06ba8a48a2074fa8cadd9c122b6490f.1764863575.git.haseebashraf091@gmail.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Haseeb Ashraf <haseeb.ashraf@siemens.com>

This commit addresses a major issue for running Xen on KVM i.e.
costly emulation of VMALLS12E1IS which becomes worse when this TLBI
is invoked too many times. There are mainly two places where this is
problematic:
(a) When vCPUs switch on a pCPU or pCPUs
(b) When domu mapped pages onto dom0, are to be unmapped, then each
    page being removed by XENMEM_remove_from_physmap has its TLBs
    invalidated by VMALLS12E1IS.

The first one is addressed by relaxing VMALLS12E1 -> VMALLE1 as the
stage-2 is common between all the vCPUs of a VM. Since each CPU has
its own private TLBs, so flush between vCPU of the same domains is
still required to avoid translations from vCPUx to "leak" to the
vCPUy which can be achieved by using VMALLE1.

The second one is addressed by using IPA-based TLBI (IPAS2E1) in
combination with VMALLE1 whenever the IPA range is known instead of
using VMALLS12E1. There is an upper cap placed on number of IPA-based
TLBI. This factor for execution time of VMALLS12E1 vs IPAS2E1 is
found to be 70K on Graviton4. So, ~65K * 4KB = 256M is set as the
threshold.

For arm32, TLBIALL instruction can invalidate both stage-1 and
stage-2 entries, so using IPA-based TLBI would be redundant as
TLBIALL is required in any case to invalidate corresponding cached
entries from stage-1.

Suggested-by: Julien Grall <julien@xen.org>
Signed-off-by: Haseeb Ashraf <haseeb.ashraf@siemens.com>

Changes in v2:
- Split up the commit in 3 commits. First commit implements the
  basline implementation without any addition of new CPU
  capabilities. Implemented new CPU caps in separate features to
  emphasize how each of it optimizes the TLB invalidation.
- Moved ARM32 and ARM64 specific implementations of TLBIs to
  architecture specific flushtlb.h.
- Added references of ARM ARM in code comments.
- Evaluated and added a threshold to select between IPA-based TLB
  invalidation vs fallback to full stage TLB invalidation above
  the threshold.
- Introduced ARM_HAS_NTLBPA CPU capability which leverages
  FEAT_nTLBPA for arm32 as well as arm64.
- Introduced ARM_HAS_TLB_IPA CPU capability for IPA-based TLBI
  for arm32.
---
 xen/arch/arm/include/asm/arm32/flushtlb.h | 69 ++++++++++++++++
 xen/arch/arm/include/asm/arm64/flushtlb.h | 99 +++++++++++++++++++++++
 xen/arch/arm/include/asm/mmu/p2m.h        |  2 +
 xen/arch/arm/mmu/p2m.c                    | 94 ++++++++++++++-------
 4 files changed, 237 insertions(+), 27 deletions(-)

diff --git a/xen/arch/arm/include/asm/arm32/flushtlb.h b/xen/arch/arm/include/asm/arm32/flushtlb.h
index 61c25a3189..70a8b1dad6 100644
--- a/xen/arch/arm/include/asm/arm32/flushtlb.h
+++ b/xen/arch/arm/include/asm/arm32/flushtlb.h
@@ -45,6 +45,46 @@ TLB_HELPER(flush_xen_tlb_local, TLBIALLH, nsh)
 
 #undef TLB_HELPER
 
+/*
+ * Flush TLB of local processor. Use when flush for only stage-1 is
+ * intended.
+ */
+static inline void flush_guest_tlb_s1_local(void)
+{
+    /*
+     * Same instruction can invalidate both stage-1 and stage-2 TLBs
+     * depending upon the execution context.
+     *
+     * See ARMv8 (DDI 0487A.e): G4-4126 Table G4-24.
+     *
+     * The following macros should be used where intention is to
+     * clear only stage-1 TLBs. This would be helpful in future in
+     * identifying which stage-1 TLB flushes can be skipped such as
+     * in present of FEAT_nTLBPA.
+     */
+    return flush_guest_tlb_local();
+}
+
+/*
+ * Flush TLB of inner-shareable processor domain. Use when flush for
+ * only stage-1 is intended.
+ */
+static inline void flush_guest_tlb_s1(void)
+{
+    /*
+     * Same instruction can invalidate both stage-1 and stage-2 TLBs
+     * depending upon the execution context.
+     *
+     * See ARMv8 (DDI 0487A.e): G4-4126 Table G4-24.
+     *
+     * The following macros should be used where intention is to
+     * clear only stage-1 TLBs. This would be helpful in future in
+     * identifying which stage-1 TLB flushes can be skipped such as
+     * in present of FEAT_nTLBPA.
+     */
+    return flush_guest_tlb();
+}
+
 /* Flush TLB of local processor for address va. */
 static inline void __flush_xen_tlb_one_local(vaddr_t va)
 {
@@ -57,6 +97,35 @@ static inline void __flush_xen_tlb_one(vaddr_t va)
     asm volatile(STORE_CP32(0, TLBIMVAHIS) : : "r" (va) : "memory");
 }
 
+/*
+ * Flush a range of IPA's mappings from the TLB of the local processor.
+ */
+static inline void flush_guest_tlb_range_ipa_local(paddr_t ipa,
+                                                   unsigned long size)
+{
+    /*
+     * Following can invalidate both stage-1 and stage-2 TLBs depending upon
+     * the execution mode.
+     * see ARMv8 (DDI 0487A.e): G4-4126 Table G4-24
+     */
+    flush_guest_tlb_local();
+}
+
+/*
+ * Flush a range of IPA's mappings from the TLB of all processors in the
+ * inner-shareable domain.
+ */
+static inline void flush_guest_tlb_range_ipa(paddr_t ipa,
+                                             unsigned long size)
+{
+    /*
+     * Following can invalidate both stage-1 and stage-2 TLBs depending upon
+     * the execution mode.
+     * see ARMv8 (DDI 0487A.e): G4-4126 Table G4-24
+     */
+    flush_guest_tlb();
+}
+
 #endif /* __ASM_ARM_ARM32_FLUSHTLB_H__ */
 /*
  * Local variables:
diff --git a/xen/arch/arm/include/asm/arm64/flushtlb.h b/xen/arch/arm/include/asm/arm64/flushtlb.h
index 3b99c11b50..fff76375a3 100644
--- a/xen/arch/arm/include/asm/arm64/flushtlb.h
+++ b/xen/arch/arm/include/asm/arm64/flushtlb.h
@@ -1,6 +1,8 @@
 #ifndef __ASM_ARM_ARM64_FLUSHTLB_H__
 #define __ASM_ARM_ARM64_FLUSHTLB_H__
 
+#include <xen/sizes.h> /* For SZ_* macros. */
+
 /*
  * Every invalidation operation use the following patterns:
  *
@@ -45,6 +47,27 @@ static inline void name(void)                    \
         : : : "memory");                         \
 }
 
+/*
+ * FLush TLB by IPA. This will likely be used in a loop, so the caller
+ * is responsible to use the appropriate memory barriers before/after
+ * the sequence.
+ *
+ * See above about the ARM64_WORKAROUND_REPEAT_TLBI sequence.
+ */
+#define TLB_HELPER_IPA(name, tlbop)              \
+static inline void name(paddr_t ipa)             \
+{                                                \
+    asm volatile(                                \
+        "tlbi "  # tlbop  ", %0;"                \
+        ALTERNATIVE(                             \
+            "nop; nop;",                         \
+            "dsb  ish;"                          \
+            "tlbi "  # tlbop  ", %0;",           \
+            ARM64_WORKAROUND_REPEAT_TLBI,        \
+            CONFIG_ARM64_WORKAROUND_REPEAT_TLBI) \
+        : : "r" (ipa >> PAGE_SHIFT) : "memory"); \
+}
+
 /*
  * FLush TLB by VA. This will likely be used in a loop, so the caller
  * is responsible to use the appropriate memory barriers before/after
@@ -72,6 +95,18 @@ TLB_HELPER(flush_guest_tlb_local, vmalls12e1, nsh)
 /* Flush innershareable TLBs, current VMID only */
 TLB_HELPER(flush_guest_tlb, vmalls12e1is, ish)
 
+/* Flush local TLBs, current VMID, stage-1 only */
+TLB_HELPER(flush_guest_tlb_s1_local, vmalle1, nsh)
+
+/* Flush innershareable TLBs, current VMID, stage-1 only */
+TLB_HELPER(flush_guest_tlb_s1, vmalle1is, ish)
+
+/* Flush local TLBs, current VMID, stage-2 for ipa address */
+TLB_HELPER_IPA(__flush_guest_tlb_one_s2_local, ipas2e1)
+
+/* Flush innershareable TLBs, current VMID, stage-2 for ipa address */
+TLB_HELPER_IPA(__flush_guest_tlb_one_s2, ipas2e1is)
+
 /* Flush local TLBs, all VMIDs, non-hypervisor mode */
 TLB_HELPER(flush_all_guests_tlb_local, alle1, nsh)
 
@@ -88,8 +123,72 @@ TLB_HELPER_VA(__flush_xen_tlb_one_local, vae2)
 TLB_HELPER_VA(__flush_xen_tlb_one, vae2is)
 
 #undef TLB_HELPER
+#undef TLB_HELPER_IPA
 #undef TLB_HELPER_VA
 
+/*
+ * Flush a range of IPA's mappings from the TLB of the local processor.
+ */
+static inline void flush_guest_tlb_range_ipa_local(paddr_t ipa,
+                                                   unsigned long size)
+{
+    paddr_t end;
+
+    /*
+     * If IPA range is too big (empirically found to be 256M), then fallback to
+     * full TLB flush
+     */
+    if ( size > SZ_256M )
+        return flush_guest_tlb_local();
+
+    end = ipa + size;
+
+    /*
+     * See ARM ARM DDI 0487A.e D4.7.2 (Invalidation of TLB entries from stage 2
+     * translations) for details.
+     */
+    dsb(nshst); /* Ensure prior page-tables updates have completed */
+    while ( ipa < end )
+    {
+        __flush_guest_tlb_one_s2_local(ipa);
+        ipa += PAGE_SIZE;
+    }
+    /* Final dsb() and isb() are done in following invocation */
+    flush_guest_tlb_s1_local();
+}
+
+/*
+ * Flush a range of IPA's mappings from the TLB of all processors in the
+ * inner-shareable domain.
+ */
+static inline void flush_guest_tlb_range_ipa(paddr_t ipa,
+                                             unsigned long size)
+{
+    paddr_t end;
+
+    /*
+     * If IPA range is too big (empirically found to be 256M), then fallback to
+     * full TLB flush
+     */
+    if ( size > SZ_256M )
+        return flush_guest_tlb();
+
+    end = ipa + size;
+
+    /*
+     * See ARM ARM DDI 0487A.e D4.7.2 (Invalidation of TLB entries from stage 2
+     * translations) for details.
+     */
+    dsb(ishst); /* Ensure prior page-tables updates have completed */
+    while ( ipa < end )
+    {
+        __flush_guest_tlb_one_s2(ipa);
+        ipa += PAGE_SIZE;
+    }
+    /* Final dsb() and isb() are done in following invocation */
+    flush_guest_tlb_s1();
+}
+
 #endif /* __ASM_ARM_ARM64_FLUSHTLB_H__ */
 /*
  * Local variables:
diff --git a/xen/arch/arm/include/asm/mmu/p2m.h b/xen/arch/arm/include/asm/mmu/p2m.h
index 58496c0b09..8a16722b82 100644
--- a/xen/arch/arm/include/asm/mmu/p2m.h
+++ b/xen/arch/arm/include/asm/mmu/p2m.h
@@ -10,6 +10,8 @@ extern unsigned int p2m_root_level;
 
 struct p2m_domain;
 void p2m_force_tlb_flush_sync(struct p2m_domain *p2m);
+void p2m_force_tlb_flush_range_sync(struct p2m_domain *p2m, uint64_t start_ipa,
+                                    uint64_t page_count);
 void p2m_tlb_flush_sync(struct p2m_domain *p2m);
 
 void p2m_clear_root_pages(struct p2m_domain *p2m);
diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
index 51abf3504f..e72b06b732 100644
--- a/xen/arch/arm/mmu/p2m.c
+++ b/xen/arch/arm/mmu/p2m.c
@@ -235,33 +235,26 @@ void p2m_restore_state(struct vcpu *n)
      * when running multiple vCPU of the same domain on a single pCPU.
      */
     if ( *last_vcpu_ran != INVALID_VCPU_ID && *last_vcpu_ran != n->vcpu_id )
-        flush_guest_tlb_local();
+        flush_guest_tlb_s1_local();
 
     *last_vcpu_ran = n->vcpu_id;
 }
 
 /*
- * Force a synchronous P2M TLB flush.
+ * Loads VTTBR from given P2M.
  *
- * Must be called with the p2m lock held.
+ * This returns switched out VTTBR.
  */
-void p2m_force_tlb_flush_sync(struct p2m_domain *p2m)
+static uint64_t p2m_load_vttbr(struct p2m_domain *p2m, unsigned long *flags)
 {
-    unsigned long flags = 0;
     uint64_t ovttbr;
 
-    ASSERT(p2m_is_write_locked(p2m));
-
-    /*
-     * ARM only provides an instruction to flush TLBs for the current
-     * VMID. So switch to the VTTBR of a given P2M if different.
-     */
     ovttbr = READ_SYSREG64(VTTBR_EL2);
     if ( ovttbr != p2m->vttbr )
     {
         uint64_t vttbr;
 
-        local_irq_save(flags);
+        local_irq_save(*flags);
 
         /*
          * ARM64_WORKAROUND_AT_SPECULATE: We need to stop AT to allocate
@@ -276,12 +269,18 @@ void p2m_force_tlb_flush_sync(struct p2m_domain *p2m)
 
         WRITE_SYSREG64(vttbr, VTTBR_EL2);
 
-        /* Ensure VTTBR_EL2 is synchronized before flushing the TLBs */
+        /* Ensure VTTBR_EL2 is in place before continuing. */
         isb();
     }
 
-    flush_guest_tlb();
+    return ovttbr;
+}
 
+/*
+ * Restores VTTBR which was switched out as a result of p2m_load_vttbr().
+ */
+static void p2m_restore_vttbr(uint64_t ovttbr, unsigned long flags)
+{
     if ( ovttbr != READ_SYSREG64(VTTBR_EL2) )
     {
         WRITE_SYSREG64(ovttbr, VTTBR_EL2);
@@ -289,10 +288,58 @@ void p2m_force_tlb_flush_sync(struct p2m_domain *p2m)
         isb();
         local_irq_restore(flags);
     }
+}
+
+/*
+ * Force a synchronous P2M TLB flush.
+ *
+ * Must be called with the p2m lock held.
+ */
+void p2m_force_tlb_flush_sync(struct p2m_domain *p2m)
+{
+    unsigned long flags = 0;
+    uint64_t ovttbr;
+
+    ASSERT(p2m_is_write_locked(p2m));
+
+    /*
+     * ARM only provides an instruction to flush TLBs for the current
+     * VMID. So switch to the VTTBR of a given P2M if different.
+     */
+    ovttbr = p2m_load_vttbr(p2m, &flags);
+
+    flush_guest_tlb();
+
+    p2m_restore_vttbr(ovttbr, flags);
 
     p2m->need_flush = false;
 }
 
+/*
+ * Force a synchronous P2M TLB flush on a range of addresses.
+ *
+ * Must be called with the p2m lock held.
+ */
+void p2m_force_tlb_flush_range_sync(struct p2m_domain *p2m, uint64_t start_ipa,
+                                    uint64_t page_count)
+{
+    unsigned long flags = 0;
+    uint64_t ovttbr;
+
+    ASSERT(p2m_is_write_locked(p2m));
+
+    /*
+     * ARM only provides an instruction to flush TLBs for the current
+     * VMID. So switch to the VTTBR of a given P2M if different.
+     */
+    ovttbr = p2m_load_vttbr(p2m, &flags);
+
+    /* Invalidate TLB entries by IPA range */
+    flush_guest_tlb_range_ipa(start_ipa, PAGE_SIZE * page_count);
+
+    p2m_restore_vttbr(ovttbr, flags);
+}
+
 void p2m_tlb_flush_sync(struct p2m_domain *p2m)
 {
     if ( p2m->need_flush )
@@ -1034,7 +1081,8 @@ static int __p2m_set_entry(struct p2m_domain *p2m,
          * For more details see (D4.7.1 in ARM DDI 0487A.j).
          */
         p2m_remove_pte(entry, p2m->clean_pte);
-        p2m_force_tlb_flush_sync(p2m);
+        p2m_force_tlb_flush_range_sync(p2m, gfn_x(sgfn) << PAGE_SHIFT,
+                                       1UL << page_order);
 
         p2m_write_pte(entry, split_pte, p2m->clean_pte);
 
@@ -1090,8 +1138,8 @@ static int __p2m_set_entry(struct p2m_domain *p2m,
         p2m_remove_pte(entry, p2m->clean_pte);
 
     if ( removing_mapping )
-        /* Flush can be deferred if the entry is removed */
-        p2m->need_flush |= !!lpae_is_valid(orig_pte);
+        p2m_force_tlb_flush_range_sync(p2m, gfn_x(sgfn) << PAGE_SHIFT,
+                                       1UL << page_order);
     else
     {
         lpae_t pte = mfn_to_p2m_entry(smfn, t, a);
@@ -1102,18 +1150,10 @@ static int __p2m_set_entry(struct p2m_domain *p2m,
         /*
          * It is necessary to flush the TLB before writing the new entry
          * to keep coherency when the previous entry was valid.
-         *
-         * Although, it could be defered when only the permissions are
-         * changed (e.g in case of memaccess).
          */
         if ( lpae_is_valid(orig_pte) )
-        {
-            if ( likely(!p2m->mem_access_enabled) ||
-                 P2M_CLEAR_PERM(pte) != P2M_CLEAR_PERM(orig_pte) )
-                p2m_force_tlb_flush_sync(p2m);
-            else
-                p2m->need_flush = true;
-        }
+            p2m_force_tlb_flush_range_sync(p2m, gfn_x(sgfn) << PAGE_SHIFT,
+                                           1UL << page_order);
         else if ( !p2m_is_valid(orig_pte) ) /* new mapping */
             p2m->stats.mappings[level]++;
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 04 15:58:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 15:58:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177953.1501958 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRBih-0001ib-Ua; Thu, 04 Dec 2025 15:58:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177953.1501958; Thu, 04 Dec 2025 15:58:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRBih-0001iU-RT; Thu, 04 Dec 2025 15:58:15 +0000
Received: by outflank-mailman (input) for mailman id 1177953;
 Thu, 04 Dec 2025 15:58:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=feRK=6K=gmail.com=haseebashraf091@srs-se1.protection.inumbo.net>)
 id 1vRBif-00018S-Ml
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 15:58:13 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 08e4dde7-d12a-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 16:58:11 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4775ae5684fso6030765e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 04 Dec 2025 07:58:11 -0800 (PST)
Received: from PKL-HASEEBA-LT.. ([39.37.252.158])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d222506sm4506613f8f.28.2025.12.04.07.58.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Dec 2025 07:58:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 08e4dde7-d12a-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764863891; x=1765468691; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HexRP3kCPBPdVMxiYVlpGD6XbwosWnacNZ/AQKuaGBw=;
        b=Ya0G0y4V/g8bADOgtKyi/cqOSrwH7gnqRpVO3IomM866xFuyHpNHfUzh3GoNN1k1G2
         LJuw2HFMC/vzf3D4eEkA1S54JXVgPGILXtjtURQliz6p32wvXrQ8Y1xeyPuEfCqLDzjg
         Bp+MBa9hN5gfIFOv2SwEuNJZO/EB0DRvB4HP2xP0Vbq3f2lxEa8AFtnzKQ3FQKl5kYCS
         IpMXu8uUdCWZ3F132t0WDW73xRBSKJ7ctfkKJRV7Dg3UNyKAj6dDLpHkgQ3rbWgig+Pv
         YvDY6PU2ALts1JppnzPb/42gHBc6OKbXQqNNsexM84JLrPH9zjPYlplL/m9z9u5tDxMH
         hDug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764863891; x=1765468691;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=HexRP3kCPBPdVMxiYVlpGD6XbwosWnacNZ/AQKuaGBw=;
        b=l7T3dLJkw1F0gtaRRjyZnqWMzioKSI9dfeMibzOAqExMdbZ2HymtczT44k5Cyg7Q82
         hbkcr317rMbiWdMZtdd9S6ja0lPG36JTMzMTRMEWpo0hpBHJMa4zP26/w2K7puHJxoNA
         MT5BzH4HijTOwMjtretH9ga6rJdSsk3v6J6w4WZy4KKoR/l0ZjOo2k5VpuE8Wel7vNQQ
         0rl5Z6ovnmPBBRrTqggrFZtgYgfndszybd6C+sWsakKRutd3XzekF+AXnkB3INQRCjWm
         5iBlMFq4rBNEtt3j95nu1Urk7vGauCbaPNAQ4AM9R1PBgNXh0pZejz5Tzqhp9O8kxDyb
         lbag==
X-Gm-Message-State: AOJu0Yw9Q+IUJMkiJXvJm7/vB2ZEQGx7kdyGwTLR1TpANemDQ8bBYofL
	d7l5yShDpmuryjNTmt0+HHRgU3S4DQdAZfQo5pUkc27yEAtlELJ/4efuM+M2/AY9
X-Gm-Gg: ASbGncvY1HrsrLl67JRnizCQv/Y+oOklP37C4SVjfaWGpO2xuvCostvSiR7ieMTZ9Y7
	v6wR+8R6hbrRU5gvDsk/YusXG7w2ngimZ0k2BGVtfseIAJi09qx4D29fOvZr2XeKUNZDhxVJJdX
	LvSZC24koqzOOs1iA535l1gmEt7jln/G0kyGzJj6PQMqP2+0Z023Ug23anHYxQgBmsM7IKi07zz
	zHXL+K3YghEvPRRoWNzyl1C+o03iSxWoumVT9o4Fg1OE8dcue3TZFxm0JDbtntTaT0cLyXN6g3O
	PhmC5k9ne5oqtVPgoXluDHb0KbPq+P62cP1FIcZvrpJtU5H4UiH+4PCoAhEm5MUgyla53HV5NiE
	SJnBDykxj6IPuwT9IznZ+fBuIo2A/vF5feerhRFTxFWy84L5OyRVPSx19JGNYW8t5IFknp3ZJzR
	n9vD4pw+swTPnICQ81sFvp8mgQrqHyOPjC766kEUGai/3maNrXQuI=
X-Google-Smtp-Source: AGHT+IH2c9OxsyAwaaPGllssIxRhN3CFVv7oAV/hp/C5ztaJSwkIJPlNqULY/P/ejTISuaUgGPUWPQ==
X-Received: by 2002:a05:600c:4755:b0:477:63a4:88fe with SMTP id 5b1f17b1804b1-4792aed9b2emr68785085e9.2.1764863890563;
        Thu, 04 Dec 2025 07:58:10 -0800 (PST)
From: Haseeb Ashraf <haseebashraf091@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Haseeb Ashraf <haseeb.ashraf@siemens.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [XEN PATCH v2 3/3] xen/arm32: add CPU capability for IPA-based TLBI
Date: Thu,  4 Dec 2025 20:57:43 +0500
Message-ID: <c06892e2b356b3186f790d96889b4ca9ba2498e0.1764863575.git.haseebashraf091@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <ce2e7c32f06ba8a48a2074fa8cadd9c122b6490f.1764863575.git.haseebashraf091@gmail.com>
References: <ce2e7c32f06ba8a48a2074fa8cadd9c122b6490f.1764863575.git.haseebashraf091@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Haseeb Ashraf <haseeb.ashraf@siemens.com>

This feature is available since armv8 and can be used to perform
IPA-based TLBI for arm32. XENMEM_remove_from_physmap performs this
invalidation in each hypercall so this code path will be optimized,
instead of performing a TLBIALL each time in presence of nTLBPA.

Suggested-by: Julien Grall <julien@xen.org>
Signed-off-by: Haseeb Ashraf <haseeb.ashraf@siemens.com>
---
 xen/arch/arm/cpufeature.c                 | 12 ++++
 xen/arch/arm/include/asm/arm32/flushtlb.h | 76 +++++++++++++++++++++++
 xen/arch/arm/include/asm/cpregs.h         |  4 ++
 xen/arch/arm/include/asm/cpufeature.h     |  7 ++-
 xen/arch/arm/include/asm/processor.h      |  8 +++
 5 files changed, 105 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/cpufeature.c b/xen/arch/arm/cpufeature.c
index 9fa1c45869..d18c6449c6 100644
--- a/xen/arch/arm/cpufeature.c
+++ b/xen/arch/arm/cpufeature.c
@@ -18,6 +18,11 @@ DECLARE_BITMAP(cpu_hwcaps, ARM_NCAPS);
 struct cpuinfo_arm __read_mostly domain_cpuinfo;
 
 #ifdef CONFIG_ARM_32
+static bool has_tlb_ipa_instruction(const struct arm_cpu_capabilities *entry)
+{
+    return system_cpuinfo.mm32.unitlb == MM32_UNITLB_BY_IPA;
+}
+
 static bool has_ntlbpa(const struct arm_cpu_capabilities *entry)
 {
     return system_cpuinfo.mm32.ntlbpa == MM32_NTLBPA_SUPPORT_IMP;
@@ -37,6 +42,13 @@ static bool has_sb_instruction(const struct arm_cpu_capabilities *entry)
 #endif
 
 static const struct arm_cpu_capabilities arm_features[] = {
+#ifdef CONFIG_ARM_32
+    {
+        .desc = "IPA-based TLB Invalidation",
+        .capability = ARM32_HAS_TLB_IPA,
+        .matches = has_tlb_ipa_instruction,
+    },
+#endif
 #if defined(CONFIG_ARM_32) || defined(CONFIG_ARM_64)
     {
         .desc = "Intermediate caching of translation table walks (nTLBPA)",
diff --git a/xen/arch/arm/include/asm/arm32/flushtlb.h b/xen/arch/arm/include/asm/arm32/flushtlb.h
index db15f29216..0fd45aaaed 100644
--- a/xen/arch/arm/include/asm/arm32/flushtlb.h
+++ b/xen/arch/arm/include/asm/arm32/flushtlb.h
@@ -1,6 +1,8 @@
 #ifndef __ASM_ARM_ARM32_FLUSHTLB_H__
 #define __ASM_ARM_ARM32_FLUSHTLB_H__
 
+#include <xen/sizes.h> /* For SZ_* macros. */
+
 /*
  * Every invalidation operation use the following patterns:
  *
@@ -99,12 +101,56 @@ static inline void __flush_xen_tlb_one(vaddr_t va)
     asm volatile(STORE_CP32(0, TLBIMVAHIS) : : "r" (va) : "memory");
 }
 
+/* Flush TLB of local processor for address ipa. */
+static inline void __flush_guest_tlb_one_s2_local(paddr_t ipa)
+{
+    asm volatile(STORE_CP32(0, TLBIIPAS2)
+                 : : "r" (ipa >> PAGE_SHIFT) : "memory");
+}
+
+/* Flush TLB of all processors in the inner-shareable domain for address ipa. */
+static inline void __flush_guest_tlb_one_s2(paddr_t ipa)
+{
+    asm volatile(STORE_CP32(0, TLBIIPAS2IS)
+                 : : "r" (ipa >> PAGE_SHIFT) : "memory");
+}
+
 /*
  * Flush a range of IPA's mappings from the TLB of the local processor.
  */
 static inline void flush_guest_tlb_range_ipa_local(paddr_t ipa,
                                                    unsigned long size)
 {
+    if ( cpus_have_const_cap(ARM_HAS_NTLBPA) &&
+         cpus_have_const_cap(ARM32_HAS_TLB_IPA) )
+    {
+        paddr_t end;
+
+        /*
+         * If IPA range is too big (empirically found to be 256M), then fallback
+         * to full TLB flush
+         */
+        if ( size > SZ_256M )
+            goto default_tlbi;
+
+        end = ipa + size;
+
+        /*
+         * See ARM ARM DDI 0487A.e D4.7.2 (Invalidation of TLB entries from
+         * stage 2 translations) for details.
+         */
+        dsb(nshst); /* Ensure prior page-tables updates have completed */
+        while ( ipa < end )
+        {
+            __flush_guest_tlb_one_s2_local(ipa);
+            ipa += PAGE_SIZE;
+        }
+        dsb(nsh);
+        isb();
+        return;
+    }
+
+default_tlbi:
     /*
      * Following can invalidate both stage-1 and stage-2 TLBs depending upon
      * the execution mode.
@@ -120,6 +166,36 @@ static inline void flush_guest_tlb_range_ipa_local(paddr_t ipa,
 static inline void flush_guest_tlb_range_ipa(paddr_t ipa,
                                              unsigned long size)
 {
+    if ( cpus_have_const_cap(ARM_HAS_NTLBPA) &&
+         cpus_have_const_cap(ARM32_HAS_TLB_IPA) )
+    {
+        paddr_t end;
+
+        /*
+         * If IPA range is too big (empirically found to be 256M), then fallback
+         * to full TLB flush
+         */
+        if ( size > SZ_256M )
+            goto default_tlbi;
+
+        end = ipa + size;
+
+        /*
+         * See ARM ARM DDI 0487A.e D4.7.2 (Invalidation of TLB entries from
+         * stage 2 translations) for details.
+         */
+        dsb(ishst); /* Ensure prior page-tables updates have completed */
+        while ( ipa < end )
+        {
+            __flush_guest_tlb_one_s2(ipa);
+            ipa += PAGE_SIZE;
+        }
+        dsb(ish);
+        isb();
+        return;
+    }
+
+default_tlbi:
     /*
      * Following can invalidate both stage-1 and stage-2 TLBs depending upon
      * the execution mode.
diff --git a/xen/arch/arm/include/asm/cpregs.h b/xen/arch/arm/include/asm/cpregs.h
index a7503a190f..46415b05d3 100644
--- a/xen/arch/arm/include/asm/cpregs.h
+++ b/xen/arch/arm/include/asm/cpregs.h
@@ -229,6 +229,10 @@
 #define TLBIALLH        p15,4,c8,c7,0   /* Invalidate Entire Hyp. Unified TLB */
 #define TLBIMVAH        p15,4,c8,c7,1   /* Invalidate Unified Hyp. TLB by MVA */
 #define TLBIALLNSNH     p15,4,c8,c7,4   /* Invalidate Entire Non-Secure Non-Hyp. Unified TLB */
+#define TLBIIPAS2IS     p15,4,c8,c0,1   /* Invalidate unified TLB entry for stage 2 by IPA inner shareable */
+#define TLBIIPAS2LIS    p15,4,c8,c0,5   /* Invalidate unified TLB entry for stage 2 last level by IPA inner shareable */
+#define TLBIIPAS2       p15,4,c8,c4,1   /* Invalidate unified TLB entry for stage 2 by IPA */
+#define TLBIIPAS2L      p15,4,c8,c4,5   /* Invalidate unified TLB entry for stage 2 last level by IPA */
 
 /* CP15 CR9: Performance monitors */
 #define PMCR            p15,0,c9,c12,0  /* Perf. Mon. Control Register */
diff --git a/xen/arch/arm/include/asm/cpufeature.h b/xen/arch/arm/include/asm/cpufeature.h
index af4e9bdf06..8f6b889850 100644
--- a/xen/arch/arm/include/asm/cpufeature.h
+++ b/xen/arch/arm/include/asm/cpufeature.h
@@ -77,8 +77,9 @@
 #define ARM_HAS_SB 16
 #define ARM64_WORKAROUND_1508412 17
 #define ARM_HAS_NTLBPA 18
+#define ARM32_HAS_TLB_IPA 19
 
-#define ARM_NCAPS           19
+#define ARM_NCAPS           20
 
 #ifndef __ASSEMBLY__
 
@@ -440,7 +441,9 @@ struct cpuinfo_arm {
             /* MMFR1 */
             unsigned long __res1:32;
             /* MMFR2 */
-            unsigned long __res2:32;
+            unsigned long __res2_0:16;
+            unsigned long unitlb:4;
+            unsigned long __res2_1:12;
             /* MMFR3 */
             unsigned long __res3:32;
             /* MMFR4 */
diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
index 01f3cb16a0..5a414e80df 100644
--- a/xen/arch/arm/include/asm/processor.h
+++ b/xen/arch/arm/include/asm/processor.h
@@ -459,6 +459,14 @@
 #define FSRL_STATUS_DEBUG       (_AC(0x22,UL)<<0)
 
 #ifdef CONFIG_ARM_32
+#define MM32_UNITLB_NI              0x0
+#define MM32_UNITLB_BY_VA           0x1
+#define MM32_UNITLB_BY_MATCH_ASID   0x2
+#define MM32_UNITLB_BY_ALL_ASID     0x3
+#define MM32_UNITLB_OTHER_TLBS      0x4
+#define MM32_UNITLB_BROADCAST       0x5
+#define MM32_UNITLB_BY_IPA          0x6
+
 #define MM32_NTLBPA_SUPPORT_NI      0x0
 #define MM32_NTLBPA_SUPPORT_IMP     0x1
 #endif
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 04 16:38:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 16:38:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177995.1501989 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCLT-0000KI-FX; Thu, 04 Dec 2025 16:38:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177995.1501989; Thu, 04 Dec 2025 16:38:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCLT-0000KB-BM; Thu, 04 Dec 2025 16:38:19 +0000
Received: by outflank-mailman (input) for mailman id 1177995;
 Thu, 04 Dec 2025 16:38:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ymfd=6K=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRCLS-0008JO-4x
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 16:38:18 +0000
Received: from fout-a7-smtp.messagingengine.com
 (fout-a7-smtp.messagingengine.com [103.168.172.150])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9f082f5a-d12f-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 17:38:11 +0100 (CET)
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfout.phl.internal (Postfix) with ESMTP id 6E85BEC0596;
 Thu,  4 Dec 2025 11:38:10 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Thu, 04 Dec 2025 11:38:10 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 4 Dec 2025 11:38:09 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9f082f5a-d12f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:message-id:mime-version:reply-to:subject:subject:to:to; s=fm1;
	 t=1764866290; x=1764952690; bh=vNp5Slv4FBi3vNewmWgzl8z3qukP2vu+
	6zfhsBz2ftg=; b=L14fOoqHt3Oy/uqzqnSXaUpFB7OWAeaREYGuCsqoq4hslEqP
	+Bcak1ba1orzzMuGFZtS6ZtRzh9s0kWuJfUjAL671QxnQGtE0x8aNk2pHHNBBy2b
	l+w1Ay8a6fv6LwY8rUbVeWh+RDxihIgiL/scWL4dBbPrm543vmlJp9cnciY8JRC9
	LxVpJESAD+sqNGYtBCQZ6EamwDm316VS5s0nyrT49EZw0edQdh1iSE3dk3IFXqM0
	FWLOztq85TKGqGSlb1tzUpw5gHFBYXWMfzydLPsawejNmYGc5a+2AJowYIknJt1i
	YFKpH6UYPegJQCuHUXpdqUYzm02OAm50BooqxA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:message-id:mime-version:reply-to:subject
	:subject:to:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm1; t=1764866290; x=1764952690; bh=vNp5Slv4FBi3vNewmWgzl8z3qukP
	2vu+6zfhsBz2ftg=; b=nq7mL9Yd3xCWH54dPglIJGCeONNmtja1Vxs9Fgpw7zSu
	cx+bhZgG4KkXBtzMb80lyrDB2HOMYSN6mVQEklZC59MkTBhezmvgALdejGXRwiSg
	eyOH/nXw3sCYxuKd9CsQaeNpW7qKmdYeS9eZnAClq/ciK5PJvb4kyX7dFv4kstrR
	DKw4vxmrxcu6+nvU7VuPCPAyPxlxxWcGlMmLttpq3SJqWTaSZtl9NViNuE2J2wLY
	Icm8NSqxOMw/f9QlRV5HMFHYLnalNeWNMR5PV6h880xbBOzVZzsVPpxHe40l4V/x
	04jkHD3XXOWMLZOZQua/ZpvIarrmVrlgiipp6QIVWw==
X-ME-Sender: <xms:8rgxaWw1nGflznmY58IC2BP4I3tIR7ZI7uyaZJLiqZDXv2UUudHREg>
    <xme:8rgxaZKtPniz_XWYo8I1HQF2HYPh6elHki5VNI4CuqdE0vJhJA0Xi7P9TxWpnkRhd
    pghaheQf1OHY9gDOy0aw2KhmGB9ZKF1zVpGkZQKWMA3sTgCAg>
X-ME-Received: <xmr:8rgxaQqmS8TibddZ1KFC1-U-PQDVtGYZmHeP35nX-3R30OFVXJJuoWFwM3cZ2UiyT2_LNyDptBbGqdXfrtMfKh9VLGtIhwtDkkraxAXRQJM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeitdejucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucforghr
    tgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhishhisg
    hlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeejueefhfelieek
    geeftdfgieeugefhudetjeethfefveehffejhfeigefgjeekleenucffohhmrghinhepgh
    hithhlrggsrdgtohhmnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghi
    lhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtg
    homhdpnhgspghrtghpthhtohephedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohep
    gigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpth
    htoheprghnughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthho
    pehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrghdprhgtphhtthhopehrohhgvg
    hrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhopehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:8rgxaYLYO85JAoDpCOEq5yaQJp9A_AlP41CjDjLg3QI1cmPIr-q5Gg>
    <xmx:8rgxaVS47RxuJCpS1FqRunzZdfZHfUJrojjZ8qw2EiKdb75nAPYcxA>
    <xmx:8rgxaXtNP65V9T_PKTkmOzh0RYdfUsw9_SYQaWKE7weIhWMQ2LHnkA>
    <xmx:8rgxaWbHLX5I2-YrOZ3K9E-L1itPdzowFykXf-ozaKO9cNp-PceIaQ>
    <xmx:8rgxaTYxq0vXgU2QKWqyhW5KNn9qy9XoPQdmcIe2nMltNpU5CNPSX8GH>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 00/12] Changes for several CI improvements
Date: Thu,  4 Dec 2025 17:37:21 +0100
Message-ID: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

- Alpine update
- Debian trixie
- Linux stubdom
- test arbitrary linux branch

Technically, the last patch isn't strictly required, but it eases debugging.

Green pipeline: https://gitlab.com/xen-project/people/marmarek/test-artifacts/-/pipelines/2196630637

Marek Marczykowski-Górecki (12):
  Add Alpine 3.22 containers
  Switch Linux builds to use Alpine 3.22 container
  Add debian rootfs artifact
  Add linux-6.12.60-x86_64
  Enable CONFIG_USB_RTL8152 in kernel for hw12 runner
  Include git in the ARM64 build container too
  Support building arbitrary Linux branch/tag/commit
  Save Linux config to artifacts too
  Add linux-stubdom dependencies
  Prepare grub for booting x86_64 HVM domU from a disk
  Prepare grub for booting x86_64 HVM domU from a cdrom
  Setup ssh access to test systems

 .gitlab-ci.yml                             | 53 ++++++++++++-
 containerize                               |  4 +-
 images/alpine/3.18-arm64-build.dockerfile  |  1 +-
 images/alpine/3.22-arm64-base.dockerfile   |  6 +-
 images/alpine/3.22-arm64-build.dockerfile  | 31 ++++++++-
 images/alpine/3.22-x86_64-base.dockerfile  |  6 +-
 images/alpine/3.22-x86_64-build.dockerfile | 43 ++++++++++-
 images/debian/13-x86_64-base.dockerfile    |  4 +-
 scripts/alpine-rootfs.sh                   | 22 +++++-
 scripts/build-linux.sh                     | 21 +++--
 scripts/debian-rootfs.sh                   | 95 +++++++++++++++++++++++-
 11 files changed, 279 insertions(+), 7 deletions(-)
 create mode 100644 images/alpine/3.22-arm64-base.dockerfile
 create mode 100644 images/alpine/3.22-arm64-build.dockerfile
 create mode 100644 images/alpine/3.22-x86_64-base.dockerfile
 create mode 100644 images/alpine/3.22-x86_64-build.dockerfile
 create mode 100644 images/debian/13-x86_64-base.dockerfile
 create mode 100755 scripts/debian-rootfs.sh

base-commit: 76894a5929bc604fb5bdb4aff2f94a6a9df68cdb
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 16:38:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 16:38:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178000.1502037 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCLZ-0001Yl-TM; Thu, 04 Dec 2025 16:38:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178000.1502037; Thu, 04 Dec 2025 16:38:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCLZ-0001Ya-PW; Thu, 04 Dec 2025 16:38:25 +0000
Received: by outflank-mailman (input) for mailman id 1178000;
 Thu, 04 Dec 2025 16:38:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ymfd=6K=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRCLY-0008JO-Cd
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 16:38:24 +0000
Received: from fhigh-a8-smtp.messagingengine.com
 (fhigh-a8-smtp.messagingengine.com [103.168.172.159])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a5b1822d-d12f-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 17:38:22 +0100 (CET)
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 060031400207;
 Thu,  4 Dec 2025 11:38:22 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Thu, 04 Dec 2025 11:38:22 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 4 Dec 2025 11:38:20 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a5b1822d-d12f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1764866302; x=1764952702; bh=mD2dRjf3Wv
	rGjyNzsPSZzat166qty54LXGSNonTfYHo=; b=cXX2kQMQrTMkwJtsrYDjSDdpdi
	epd3fB2xwL57nUyWjYPMpgTus6XbbpRA7C6WaTqFYdg0f0MgxAFzJyhEqniNSkEf
	E0JTF9+rSYzwQ54T418ZPRCDf31E3RKON6R/5hHMHKxpBX3Bfz6d+SBexx6yIir+
	ugXEvy9C6WchJuGHRyyMfecOrw407996oCNNc9ybP9fgtkqg0W0nxiCmz51hBlvH
	++kkdn01qgDUNV9r6GnBqpiTYWnDYdIDyx9HGOw1348nJou6LPY9Cay5etUjdEXh
	PQX1kO+LQb8ypCl+Ff4RlvDRido/aTjm6E9FrPo77ikmJVXe8MwhicFKQbhQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1764866302; x=
	1764952702; bh=mD2dRjf3WvrGjyNzsPSZzat166qty54LXGSNonTfYHo=; b=T
	Uxvfpm9Ktg6IoWuTvtMVPqEyT2pugBAd00BM9e8DGVed42tazD+8b9PB5aCdO/jF
	HskcdjxirdECulPnqzXPu3bsR93lh84bjYx3ZhDxNNE6oiwfXFgnJqIDYwaM2UdV
	wrXRhdydkr5BKJABdQHq8TozIuqpbXtJCkhr7cNXTAAAe7tO9eyheQZ29xCSGYAo
	035cWoIGDqxW5RYIt972FE5jeXYsA8FSf1+N4EwcCSBYWOG5NWlilthAEtUMHsI5
	fjp2kp1jNcwsGkMg9O0Qt0LoSdT2gLjqu4n7+XyNC8c3W0/FUE+UE+v+IseLe8Hx
	IKudroyZmPh3lu2pit9EA==
X-ME-Sender: <xms:_bgxaU4WkaORa_eBjK5GGffIuF6UCHtlqAw64zl6aOWSAPPHeFzA0Q>
    <xme:_bgxacx55U1wu2EV9ZW9HO9aui6Wz8i7TxA57_ApWSLy1enJ2xbIltsvFU7a0-zsq
    87_fuz-W7jczNfmeYLpip9ROfa7j-szmsyIw4TaM2tqRWUZFQ>
X-ME-Received: <xmr:_bgxaby2RCkQSAyVvOoNI1b-5rKF8f9wTszVzf4_4UWshVhhxHSf_fMlI4Lj6cDh3dzt4zJBOHhRv85QEYZJADni8-PHefbgwzVh3fMjkh0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeitdejucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfe
    estghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhn
    vghlrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpd
    hrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdr
    tghomh
X-ME-Proxy: <xmx:_bgxaUzgX1Fmxg_aIQzI9umbrWjcZbJjNSWelJ3O-h_uKDFzeFbjfg>
    <xmx:_bgxaVaFfKxD0fHUItlc5U6p3RKElMJkmMFXstaIALwvz3qippWpIA>
    <xmx:_bgxaVVjFNQnwSMQ6oCE8yol75Cf2YSkgu27n3l0BR0iTwkpkehv9Q>
    <xmx:_bgxaTjxgTwH_zJddJAI85keDyxMVyCfBC45m9Gncp7H1p1WM5OqlA>
    <xmx:_rgxaYAZMWegMMt6QH2NhsjPNEX9t_ooXpVGw8BSaCa6ieEyIOuCmd5C>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 09/12] Add linux-stubdom dependencies
Date: Thu,  4 Dec 2025 17:37:30 +0100
Message-ID: <0bca999f88773b6b4ea2edabbdb5d1bfd4f1996a.1764866136.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 scripts/alpine-rootfs.sh | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
index c9c0d43..e06e72b 100755
--- a/scripts/alpine-rootfs.sh
+++ b/scripts/alpine-rootfs.sh
@@ -39,6 +39,10 @@ case $UNAME in
 
             # QEMU
             libelf
+
+            # Stubdomain
+            grub-bios
+            libseccomp
             )
         if ! grep -q VERSION_ID=3.18 /etc/os-release; then
             # QEMU
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 16:38:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 16:38:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177999.1502028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCLX-0001HC-LA; Thu, 04 Dec 2025 16:38:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177999.1502028; Thu, 04 Dec 2025 16:38:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCLX-0001H5-Hl; Thu, 04 Dec 2025 16:38:23 +0000
Received: by outflank-mailman (input) for mailman id 1177999;
 Thu, 04 Dec 2025 16:38:22 +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
 <SRS0=Ymfd=6K=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRCLW-0008JN-2Z
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 16:38:22 +0000
Received: from fhigh-a8-smtp.messagingengine.com
 (fhigh-a8-smtp.messagingengine.com [103.168.172.159])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a4edb181-d12f-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 17:38:21 +0100 (CET)
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfhigh.phl.internal (Postfix) with ESMTP id BDB80140021A;
 Thu,  4 Dec 2025 11:38:20 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Thu, 04 Dec 2025 11:38:20 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 4 Dec 2025 11:38:19 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a4edb181-d12f-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1764866300; x=1764952700; bh=Ir52XP2MKM
	HnfS8eoCOGHQAwNpqRJiIg6tJc3k38V5c=; b=P2n/pRnwoMBNJrzxuf6nC8Os1V
	JI/76k6g0gW1T0xULptAu3lINUOjj1PjboBwVKexCxiX8hZLh4pJAy4REGTCKesq
	tpywe8/OamJsnLFhtmd7ywVI5GnePq/dwhiuVhZd8+xS0/ub4yJ9fSkWjquOGp+Q
	LUR8o+4kuWYT75Sh4e/TkIXXzJXMZA0gCHIolzd1rOYmuABwhpxj7YvvWJSwmFqP
	4XPHpPBUJIiN0C3sBtNavFa0uuDbKasZZanixYoo10Inv8EfSzvBLPKjjba2MhDn
	NoRwsEWVcTF8dA1bIT21gx52XlUDSFdLEcgFWJu9QPSzMDunyLBH22R50pWw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1764866300; x=
	1764952700; bh=Ir52XP2MKMHnfS8eoCOGHQAwNpqRJiIg6tJc3k38V5c=; b=j
	4CGptC3nUTpWTK6UH94WzU+8JLpz8/yJ8NL9q5S9QMvC9t6Y0rQBC1TxmKUBommk
	BhSgeWZCgc4MBsQUoy6BUt7vWUB606fqaCOjXPl3uDOBEGmVNjf5hIO8pFBKs9a3
	pS2WqbaAVz4ZLLKoRi4sU9Ll3GaTYIvUHGEaBNNA1nqBYIixxdpNP9Yih3RU9mwD
	BlPQ6CwKXMbrSTuJf24vEAfqwtHKavWgQGwvt6yxzXy8RpRkwxFsSQNuFRrMnVks
	fx/Mvnzdqk2YlM82qCUbRCFflZ59kgpB+022qVnmegnpI2qZlPkSlTVDtAAAXbui
	IVB/3wBaSLQTA2X3Pus8g==
X-ME-Sender: <xms:_LgxaTp9C6svt_9uPA9_Q36vJgzj9TaOeW6CHC64rDk1McpWN2Poow>
    <xme:_LgxaUhUC__TXinhlwgXxSG49rySMcNQldNH-yqvq5cyfbnOcxWQRH0GxDkXDdkhq
    wXmKpUFfAwfSVPApy4QfWXwMTkwy4tPGFs3GuLDHZz_7Zp-E3k>
X-ME-Received: <xmr:_LgxaYgl_oo6gU2VzR1FafN_hLpA31a1IcsgJPydCtWcJm4IjLdXSNt27-PWiJ2Vt32pvGzyHeJ_qKEuLPcfv1tsHiz_7Dwy2PVlaHhAKao>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeitdejucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfe
    estghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhn
    vghlrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpd
    hrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdr
    tghomh
X-ME-Proxy: <xmx:_LgxaShV75IcBaQAPAAL02BanDR4475zoFXNcin5h4Kxw5dN6uXK-A>
    <xmx:_LgxaQLvXvzQYverxjR6pMRKn1uxTpsPMovJTBB95RVSDrGC637vpw>
    <xmx:_LgxaZHp-9QeWEOHZKS3OFTJrYHNT5M0Bu7PMoZDACkdD_1eOMbd0w>
    <xmx:_LgxacQAAGnShAqKwpcmWt9cGiM2ELsZxKR79IT70A3adN99ytnW1g>
    <xmx:_LgxaVy5dLQMzCgzXA2f52Z9RvHzj_ILs5LudbsZktV3tlUnKifySUpe>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 08/12] Save Linux config to artifacts too
Date: Thu,  4 Dec 2025 17:37:29 +0100
Message-ID: <7c4a97691fb1c2fb88e169205ee768773bbf0603.1764866136.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 scripts/build-linux.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
index 1fc96d1..80cc8a5 100755
--- a/scripts/build-linux.sh
+++ b/scripts/build-linux.sh
@@ -50,6 +50,8 @@ esac
 
 make olddefconfig
 
+cp .config "${COPYDIR}/linux.config"
+
 case $UNAME in
     x86_64)
         make -j$(nproc) bzImage
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 16:38:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 16:38:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177996.1501998 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCLU-0000YJ-Le; Thu, 04 Dec 2025 16:38:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177996.1501998; Thu, 04 Dec 2025 16:38:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCLU-0000YC-HZ; Thu, 04 Dec 2025 16:38:20 +0000
Received: by outflank-mailman (input) for mailman id 1177996;
 Thu, 04 Dec 2025 16:38:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ymfd=6K=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRCLT-0008JO-3W
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 16:38:19 +0000
Received: from fout-a7-smtp.messagingengine.com
 (fout-a7-smtp.messagingengine.com [103.168.172.150])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a2881e1a-d12f-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 17:38:17 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfout.phl.internal (Postfix) with ESMTP id B04D9EC0596;
 Thu,  4 Dec 2025 11:38:16 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-06.internal (MEProxy); Thu, 04 Dec 2025 11:38:16 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 4 Dec 2025 11:38:15 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a2881e1a-d12f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1764866296; x=1764952696; bh=rd3USSJTOQ
	GgPaA3MkEgLhgVn41dCK5xgFAB+vXgTXw=; b=Peq+bqWHCMq9aG2AqoOL+6F5C2
	TLQ46F/Fs6n0BbvGyBeC4myPHQ7SaYTPvzUtZ/y/yv/Pq9Y2WCf07hC+g+5+s4P0
	SBzXhjIGOJXh7v23R0s+JuSOe8yYrsFD7dSDIsV/ygdsihGUCCeuPFmCDs4nv8+K
	3T36bJjWFjXK8sj+BYqlZ3mcKEvKMjr63k5esjKEV5N1oq/8ez/22RSgJMN3WXoh
	3WpYLBWhQ0nkgsJ/+JVRUBr9gBC7YiA5gVLoKINHUDQTP42lneFidE2o56x9zXhq
	k1nGIqicoq5vug7xkG1MCPuGyoGTRQOtMg0DYiEY2Yt+w/PdiT0loYMRaiXg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1764866296; x=
	1764952696; bh=rd3USSJTOQGgPaA3MkEgLhgVn41dCK5xgFAB+vXgTXw=; b=p
	Dbvirod2TR1EamXiyegaUDs/ngXrpL9N7gcQpsiXaoUdU9QcaXshzj4sBXJURGpt
	+EIJtOjUas7neXuKywQCmqpRoxUSTmq7TtlncH8prN0lxa4xY/xVb1O+S3zt12/J
	9dJ+wtjVeUuAtmvcCLBi05Nf3VP8gRG+JUG9ewpGYT0YvXETD89RCsGDZrtZSfIW
	occr+2rDZP0XagwKhlM+ygww8kRmxQlCEyu5JTM/fHuSnZ4FbknmLIh2ONp4XZVI
	I1KvrjhuMPwFb5no198WMavQhSdIMng3wNdYXjfO4+G7uNLqZKL7xVNMRt+twn7/
	rWJN4fT9EWPUfGgkT/KiA==
X-ME-Sender: <xms:-Lgxadsg447WqXleSLdf1K9M2UspYnC7tWIOK8QEjuTmlIjoKL_7WQ>
    <xme:-LgxadWlSjVOjsEeG0cETxaBY076Db-KdltEPe2V6fQUZkWOwJShg724Ey4cnSOTz
    bei29vH3pMBHzDtWfrkGbo07LtLzOKcuAZCoSR8K9vMPeNhWM0>
X-ME-Received: <xmr:-LgxaZGMNPtB5irG84hBp25L1MEm-071Tpc1DRnkwGTVUnKbdBdoJchSTH3J1GS1PICU7BK3iAJ88zQrSOsQKac4vfR1dtibGm-W5RzpYfo>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeitdekucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeffiedtgeev
    ffetledvgefhhfevgffhfeekleehueejjeegvddvgfffjeeutddvleenucffohhmrghinh
    epkhgvrhhnvghlrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehm
    rghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsg
    drtghomhdpnhgspghrtghpthhtohephedpmhhouggvpehsmhhtphhouhhtpdhrtghpthht
    ohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtg
    hpthhtoheprghnughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphht
    thhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrghdprhgtphhtthhopehroh
    hgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhopehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:-Lgxaf1J9wRtfN4xfooq0S8GC-eh1DVMJODDXY31CHsNb328VKyhYQ>
    <xmx:-LgxabOLFRoE-gBAm-7-HYdiZXewH4wPewmbLxojrSDK9QK7vNloaA>
    <xmx:-Lgxae6mr32e6uzVmdSiPLBv0ZvpwH07w-35LAzydF7RZqADKxZ-hA>
    <xmx:-LgxaV0vZfFl0BJGRd37g4mm38OTGLMJJTKiKd9bjphxdoYLDAS1Yw>
    <xmx:-LgxaXEqOoCKJ71-vq6qze310K3U9s0fOOsow2b_XS3aN0iztMRbfTfo>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 05/12] Enable CONFIG_USB_RTL8152 in kernel for hw12 runner
Date: Thu,  4 Dec 2025 17:37:26 +0100
Message-ID: <9489737256953defce752f60d5d9bc413e75a35a.1764866136.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It uses this USB network interface.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
This was posted before at https://lore.kernel.org/xen-devel/20250411203336.585215-1-marmarek@invisiblethingslab.com/
---
 scripts/build-linux.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
index 441b872..cf0e744 100755
--- a/scripts/build-linux.sh
+++ b/scripts/build-linux.sh
@@ -32,6 +32,7 @@ case $UNAME in
             | grep 'XEN' \
             | grep '=m' \
             | sed 's/=m/=y/g' >> .config
+        ./scripts/config --enable USB_RTL8152
         ;;
 
     aarch64)
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 16:38:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 16:38:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177997.1502003 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCLV-0000bU-10; Thu, 04 Dec 2025 16:38:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177997.1502003; Thu, 04 Dec 2025 16:38:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCLU-0000aR-Pp; Thu, 04 Dec 2025 16:38:20 +0000
Received: by outflank-mailman (input) for mailman id 1177997;
 Thu, 04 Dec 2025 16:38:19 +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
 <SRS0=Ymfd=6K=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRCLT-0008JN-FA
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 16:38:19 +0000
Received: from fout-a7-smtp.messagingengine.com
 (fout-a7-smtp.messagingengine.com [103.168.172.150])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a358add0-d12f-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 17:38:18 +0100 (CET)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfout.phl.internal (Postfix) with ESMTP id 1DFD5EC0578;
 Thu,  4 Dec 2025 11:38:18 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Thu, 04 Dec 2025 11:38:18 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 4 Dec 2025 11:38:16 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a358add0-d12f-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1764866298; x=1764952698; bh=QG8dKhrWvv
	GTlwDVn3FIfWbEGXxs8coS0YgMvQyIRtw=; b=QnqebouNQsF+eBQ9qmTSvfflfV
	f19pac/1P6/PMQD4qdCwgRQ3Xf1K7SVEN2dSjEvyJ8aX/VkCG4zUYgzc0zCWpm9c
	5Es12d2OwZhu2ySYC6j5YEbBkL7iBJKrZainSUE9laqwifbJS5af5eqMPP0u3XGZ
	qYZY8UXJNV/PpPXzBqn/aCKHgD0A9FgawkooI8EaLgcueq7FlMaXWXnmkcwZbS2Z
	o+3YdOq8NYqfrP4imhcPgGxcHaSXbvOzyMydf0BPmlJlyfe+OEXKGevOV5ZPnyDi
	BX6SM+GkKYZATx3jTSmBl3CQXLl//zzoxtrCa+FdjD8EEBKj/HAGK0lP5HVA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1764866298; x=
	1764952698; bh=QG8dKhrWvvGTlwDVn3FIfWbEGXxs8coS0YgMvQyIRtw=; b=c
	d572b9UrXG3DM9tUE4/WE1PAbPeYMV848wOLTpY8cQS4qLuSRgSvw/veCtq6wo3Q
	sPGmnMD4MRCQYaUkf2H8XXvMC4XiXqwkrayFDX4ti5sTzJX6Cxq52TG+I5M9Cl39
	uo+qlK99cwnld7wEBGVJyzoQNfBGCDbvIqyIiuBof+Q9aRJDMF2U0wccnq8effNF
	nSskJV5bAudLg4MOVxwJlnz6y6suiYvMSw+WOrqY9IFdcG8T8NnUYM2PxaH30sFe
	69yyHAkjbETSz18NkqBAj9BX2slyVGRFYd9rSevnl3Ctxm9iqapaWWqZx0L0n0QH
	A7+C/qmYsjqKnBkfJO6GQ==
X-ME-Sender: <xms:-bgxaa3QBgjAclbLXOCG5MdzN_Bhng2OYnpmoLjbV2mDrNLeDTmGcw>
    <xme:-bgxaT8uCwu6jIrydFYTFKuufTl5qyiZ12Lk3FuMHiGRO6wc8kiLOZydgaziSnWRc
    hHdtYeKiyA4JW4lUFZjCoeXqs9e6mUrCrmV6JFTAYO5k6RU>
X-ME-Received: <xmr:-bgxabPddaZUuDHdI_IVF3Vr4H4UGJEI3mKCyS1cdF_SlOIuPOUi5JggkkeOECYp87bYxZcDkpRWFzR5rhas5Ta8rtItMAn8gX9dPIQMtLg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeitdejucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfe
    estghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhn
    vghlrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpd
    hrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdr
    tghomh
X-ME-Proxy: <xmx:-bgxaXdhA-boaLs8UNK7Phpl_0fQHt4mENsy8ZVK8BH-QcatylKMBg>
    <xmx:-rgxaaUmyzn8H4VVkNTLLtshnSTCCRvorUOpph3s63VRwISmqIkVqw>
    <xmx:-rgxafgLUNqmg_5uS3iwtROTkQ4OyRQflV510iSGvqOTI0zL5k41cA>
    <xmx:-rgxaZ8wr02PAvJX-yU0Yd16qcEeuPH7PdbL6rGrUDjeNO0P3r5UCg>
    <xmx:-rgxaWuexigqmxRMWI2AXdYOT5xeSiP8lMoYKjZL_BNghd0GoTh21hdY>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 06/12] Include git in the ARM64 build container too
Date: Thu,  4 Dec 2025 17:37:27 +0100
Message-ID: <c404521c3598d4872a0a02155833f7f64cebcdab.1764866136.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It will be used for fetching some Linux versions.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 images/alpine/3.18-arm64-build.dockerfile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/images/alpine/3.18-arm64-build.dockerfile b/images/alpine/3.18-arm64-build.dockerfile
index 25a8dbd..38464c9 100644
--- a/images/alpine/3.18-arm64-build.dockerfile
+++ b/images/alpine/3.18-arm64-build.dockerfile
@@ -14,6 +14,7 @@ RUN <<EOF
       DEPS=(# Base environment
             build-base
             curl
+            git
 
             # Linux build deps
             bison
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 16:38:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 16:38:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177994.1501972 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCLS-0008Mf-3y; Thu, 04 Dec 2025 16:38:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177994.1501972; Thu, 04 Dec 2025 16:38:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCLS-0008Ln-0l; Thu, 04 Dec 2025 16:38:18 +0000
Received: by outflank-mailman (input) for mailman id 1177994;
 Thu, 04 Dec 2025 16:38:16 +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
 <SRS0=Ymfd=6K=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRCLQ-0008JN-Sa
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 16:38:16 +0000
Received: from fhigh-a8-smtp.messagingengine.com
 (fhigh-a8-smtp.messagingengine.com [103.168.172.159])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a1c382a0-d12f-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 17:38:16 +0100 (CET)
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 71F93140001A;
 Thu,  4 Dec 2025 11:38:15 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-02.internal (MEProxy); Thu, 04 Dec 2025 11:38:15 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 4 Dec 2025 11:38:14 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a1c382a0-d12f-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1764866295; x=1764952695; bh=XvuFgKhf40
	HhvxhwKBZXVvY0it85GQmHd9i61fS3MnE=; b=ORj22vjgLrSvP9/aHHbcP+QZro
	fKruauT7qd/anptAF4sZ9VdbZRH3YspqPsKFfQoJcF/vlDuh8GFdeWgyQWGDV6nS
	BYRVKv8KWYFKZCaKvHSNcrbXHNBMk44RS194Zml8DmDsv4w/djG0imPfCin0xOgg
	z7u756s5dU8HhMqb7fUd1AIsg1XGPTU+ZQIMc0ieLhxHEovOvJ8Mpiq+KH7JSJ3T
	rz9uVLuu7xf7jYmxILXmGiEyjfsZLCBKOmZhJMq+W+Q6KlGbCMxEDH28TV1R5cvS
	aoOCalCFjK04BHKZXFiiFfIno3Ut38r+O1bpm7ZGDz+Uv4A8U5Lqqu5F3u8g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1764866295; x=
	1764952695; bh=XvuFgKhf40HhvxhwKBZXVvY0it85GQmHd9i61fS3MnE=; b=G
	mQYWZCZP+xZuv6G4gLaGUC1Q9dV1kSRcC9VELnHVAtjONbwRz4A9IAAIbHzpLbz5
	6BBKukpWbILdkXllszNOp0W/8C+SGeNmS/ldud8qk2PUdxp9eRokMEAmwJTM5LHJ
	u/rEjovqCooRb5flJEFyFjK2J49IyjCIrG1ryZTfqT6bfZNEZbvJm/ePlGNGLFew
	HQ9HXjgOc+ZRGnBlwZHi6s30aigMejCytUipy6zXgawpQRCXPYXols5fRQPl+FCA
	ZCuitKovwLuRuhsIw1dy49+2pIc3btgxyrlDfZhAFNxj2OTop0qoA+t2iM3HkAhQ
	cLe14fWA8p8ihnrh2Cfqg==
X-ME-Sender: <xms:97gxadDgOtu7AUsk6kimTn7KfWphxB9K1SqDvYp8sjr2QwRlf2u2ag>
    <xme:97gxaSZ_-fixe56a-4CoD3IFlyjet6IqV_uIpaSzoF2XqjbrI5uWSDrLEF9BheGRw
    4A6V2BREUCitBEYiYF-m-KBOmEtzt8r9-S90JYTh9G2GEetpw>
X-ME-Received: <xmr:97gxaQ7akfg4UIKjHmkSjX6P3rFNjrBdLQUhy0h4o45nzzdhx0_QIiW5-P13lSphqXqs7AHheMkfGxTEgooM9bXlJbeZw7SszmdJMi-CMG8>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeitdejucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfe
    estghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhn
    vghlrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpd
    hrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdr
    tghomh
X-ME-Proxy: <xmx:97gxaTaWi47OvJCxeuK3Ema0cvREC7U-yucVMHE6N-TnOd78XWX5Bw>
    <xmx:97gxafg1QZ3Bp-C8aK_3Iff-i9hqw1yaAp-WqCCTdWTcYBJDPMsHUA>
    <xmx:97gxaU8k3V_oBLve04LcpUZzF4PkSEPWl22umEpFJDAeCWmswl7h3w>
    <xmx:97gxaaq31NA_bzWneI5SOAXnZjuDtrzxru4S2u627w0OGz8-TQBbhw>
    <xmx:97gxaeqXuW-NrbHk9d4mXWJhi3dJIXLV4iGXmhxIYEd8ZQVWbOxptxnt>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 04/12] Add linux-6.12.60-x86_64
Date: Thu,  4 Dec 2025 17:37:25 +0100
Message-ID: <378aa7d93dc81118044c8d376f7500c656a2afe9.1764866136.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This is necessary for new Zen4 runner.
Do not include Argo module in this build, as it isn't compatible with
6.12 yet.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 .gitlab-ci.yml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b230405..184d0b3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -85,6 +85,12 @@ linux-6.6.56-x86_64:
     ARGO_SHA: "cf73819cacc945baca1a7421e5836d1bd481739b"
     ARGOEXEC_SHA: "d900429f6640acc6f68a3d3a4c945d7da60625d8"
 
+linux-6.12.60-x86_64:
+  extends: .x86_64-artifacts
+  script: ./scripts/build-linux.sh
+  variables:
+    LINUX_VERSION: 6.12.60
+
 microcode-x86:
   extends: .x86_64-artifacts
   script: ./scripts/x86-microcode.sh
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 16:38:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 16:38:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177998.1502018 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCLW-0000zF-7p; Thu, 04 Dec 2025 16:38:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177998.1502018; Thu, 04 Dec 2025 16:38:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCLW-0000yi-2c; Thu, 04 Dec 2025 16:38:22 +0000
Received: by outflank-mailman (input) for mailman id 1177998;
 Thu, 04 Dec 2025 16:38:21 +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
 <SRS0=Ymfd=6K=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRCLU-0008JN-SB
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 16:38:20 +0000
Received: from fout-a7-smtp.messagingengine.com
 (fout-a7-smtp.messagingengine.com [103.168.172.150])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a42ff20b-d12f-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 17:38:20 +0100 (CET)
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfout.phl.internal (Postfix) with ESMTP id 82718EC0596;
 Thu,  4 Dec 2025 11:38:19 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-05.internal (MEProxy); Thu, 04 Dec 2025 11:38:19 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 4 Dec 2025 11:38:18 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a42ff20b-d12f-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1764866299; x=1764952699; bh=STz7Uc+5rO
	kfydw1yY0lDeLylqgkRWZrUjzisf9UYM0=; b=CXJEw+J1QuNZREB/dDg/V/V4MQ
	3kWUsT+7UOn2itF8EThtu/mTLqm7JdvvYlcPkZHahNrVvLVEhwUf+xpqibqbbDDV
	wlOfF1Ux0aNBE+0BMx2OQW9W+B6sPGJTG7KOnO4AF+RP9uIDtyk3URoHLLDgqLjj
	mC+4GVv4LIxkzXMl1/P7M+qQ3qL+5KetYVFl46pkPDyQ/HakiXjY9ZL8j92iguxb
	DlLrpJr47ZIcH4YzCHQu+JQARWQYjOrepMVEyGu896tiqwosUMLunuEM5/Mxom6c
	ztbvXldNuhsVtzM3WNtyPxiTyaoelW3wTnIsE6d7dc/7xZC0E8HVW9fUxruA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1764866299; x=
	1764952699; bh=STz7Uc+5rOkfydw1yY0lDeLylqgkRWZrUjzisf9UYM0=; b=k
	KKpm+YpU/cLwPC5HbCx2umAPsEWLlg/rtmHRNnweGkLxktmv/R6QGbzElkFPUjC1
	k8TpaQ3U6pSDH+8yfTm16EX1Apm1sMPwel2gnBJGrQA1+tqny26oj9JI59WeFh2F
	CQTyUvAsfrjSxpWgGyPAAo/4PCajniM5n99oI1kktgbK+oMDIpNAk+pjeYO4TtNj
	jridYarcPghrWVeEzDqHGuaYqTN5GBoAVilK14xgyv+291iReuea/qpf18MdpWbD
	m59lLdtJ8TOEA2pMH6ctTmuhbbCJfAF8KemD21hsHh/YuiTqESSE4jsYxlIx85Z/
	DPexEtZcRO/mu/IQrGqrw==
X-ME-Sender: <xms:-7gxaX4Hnp3lzJOgLzt_hrxkpM8ltO5R-7WcWEsP58LIR3cNUgr_iw>
    <xme:-7gxaTxLWV5xTg8HcoPKcfHO-_c57TO27sOQ0UXwdYbSP9pJMiMcJe0EuKbkYZKzA
    EpK4AFIHF1wm6LfoeUVaR1qm9PgoKM7uJCbZUznN3tRHrlek7o>
X-ME-Received: <xmr:-7gxaWyD_2ucn8UYyO0ZxbW3w_AfpRIrUHno2-zpoLXTJMmJgzPBlFA8NDZtT857nLA1ywXh0xmWnTe1RTd6X95kM83r1cYE6cym1khdwJc>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeitdekucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefglefggfeu
    ffegjeduheeigeetueegfeekjeetgffhvdeiffeiieejgfduieekgeenucffohhmrghinh
    epghhithhlrggsrdgtohhmpdhkvghrnhgvlhdrohhrghenucevlhhushhtvghrufhiiigv
    pedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisg
    hlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhm
    thhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhroh
    hjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhr
    ihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorh
    hgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpdhrtghpthht
    ohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
X-ME-Proxy: <xmx:-7gxaTwnD-HfJ1yjRox4r80HElwGNlOImHPFMvG2Aoer9nrW8aYwYw>
    <xmx:-7gxaYZZGdnCe_M2yjECiKzGn_7oyXvSpi68twHh9vaM5VBen3X58w>
    <xmx:-7gxacXbvfUPkVel0ffcs9lCixyvrdzPLvHosMGxe0w0xtLjnH9dKA>
    <xmx:-7gxaejYHvtcodSWdC34Aff-tMS4f8Whn4EPCX-UFLnimi8epx_BOw>
    <xmx:-7gxaXBsNDPTrCJNN_yg8vUnDSTc9Ll1j1F9f65X1RDuYQUzbmA40t7y>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 07/12] Support building arbitrary Linux branch/tag/commit
Date: Thu,  4 Dec 2025 17:37:28 +0100
Message-ID: <c7579b953d400d368f171e4dd56e1b7f879e386f.1764866136.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

If LINUX_URL is set, fetch LINUX_VERSION from there. Go with "git
init" + "git fetch" instead of "git clone" to support any of
branch/tag/commit.

This also defines optional linux-git-* jobs which will build the thing
if LINUX_GIT_VERSION and LINUX_GIT_URL variables are provided for the
pipeline.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
The script variable and job variable need to have different names, so a
pipeline variable won't override it for all jobs. While LINUX_VERSION /
LINUX_GIT_VERSION is IMO okay, I'm not very happy about LINUX_URL /
LINUX_GIT_URL. Any better ideas?
---
 .gitlab-ci.yml         | 22 ++++++++++++++++++++++
 scripts/build-linux.sh | 18 +++++++++++++-----
 2 files changed, 35 insertions(+), 5 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 184d0b3..8d1deee 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,5 +1,9 @@
 variables:
   REGISTRY: registry.gitlab.com/xen-project/hardware/test-artifacts
+  LINUX_GIT_VERSION:
+    description: "branch/tag/commit for the linux-git jobs"
+  LINUX_GIT_URL:
+    description: "git url for the linux-git jobs"
 
 stages:
   - build
@@ -53,6 +57,15 @@ linux-6.6.86-arm64:
   variables:
     LINUX_VERSION: 6.6.86
 
+linux-git-arm64:
+  extends: .arm64-artifacts
+  script: ./scripts/build-linux.sh
+  variables:
+    LINUX_VERSION: $LINUX_GIT_VERSION
+    LINUX_URL: $LINUX_GIT_URL
+  rules:
+  - if: $LINUX_GIT_VERSION && $LINUX_GIT_URL
+
 #
 # x86_64 artifacts
 #
@@ -91,6 +104,15 @@ linux-6.12.60-x86_64:
   variables:
     LINUX_VERSION: 6.12.60
 
+linux-git-x86_64:
+  extends: .x86_64-artifacts
+  script: ./scripts/build-linux.sh
+  variables:
+    LINUX_VERSION: $LINUX_GIT_VERSION
+    LINUX_URL: $LINUX_GIT_URL
+  rules:
+  - if: $LINUX_GIT_VERSION && $LINUX_GIT_URL
+
 microcode-x86:
   extends: .x86_64-artifacts
   script: ./scripts/x86-microcode.sh
diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
index cf0e744..1fc96d1 100755
--- a/scripts/build-linux.sh
+++ b/scripts/build-linux.sh
@@ -12,11 +12,19 @@ COPYDIR="${WORKDIR}/binaries"
 UNAME=$(uname -m)
 
 # Build Linux
-MAJOR=${LINUX_VERSION%%.*}
-curl -fsSLO \
-    https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz
-tar xf linux-"${LINUX_VERSION}".tar.xz
-cd linux-"${LINUX_VERSION}"
+if [[ -n "${LINUX_URL}" ]]; then
+    mkdir linux
+    cd linux
+    git init
+    git fetch --depth=1 "${LINUX_URL}" "${LINUX_VERSION}"
+    git checkout FETCH_HEAD
+else
+    MAJOR=${LINUX_VERSION%%.*}
+    curl -fsSLO \
+        https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz
+    tar xf linux-"${LINUX_VERSION}".tar.xz
+    cd linux-"${LINUX_VERSION}"
+fi
 
 make defconfig
 ./scripts/config --enable BRIDGE
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 16:38:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 16:38:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1177993.1501969 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCLR-0008Jg-Ub; Thu, 04 Dec 2025 16:38:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1177993.1501969; Thu, 04 Dec 2025 16:38:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCLR-0008JZ-Qa; Thu, 04 Dec 2025 16:38:17 +0000
Received: by outflank-mailman (input) for mailman id 1177993;
 Thu, 04 Dec 2025 16:38:16 +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
 <SRS0=Ymfd=6K=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRCLQ-0008JN-85
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 16:38:16 +0000
Received: from fout-a7-smtp.messagingengine.com
 (fout-a7-smtp.messagingengine.com [103.168.172.150])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a055efb2-d12f-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 17:38:14 +0100 (CET)
Received: from phl-compute-07.internal (phl-compute-07.internal [10.202.2.47])
 by mailfout.phl.internal (Postfix) with ESMTP id 06A6AEC05A9;
 Thu,  4 Dec 2025 11:38:13 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-07.internal (MEProxy); Thu, 04 Dec 2025 11:38:13 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 4 Dec 2025 11:38:11 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a055efb2-d12f-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1764866293; x=1764952693; bh=3br/kbpoG4
	8NZlT+9b0/J8VIYGJaNyaNEShdOIiOHwE=; b=phlQITGyBDJExVO7A2tqUIxjRz
	xwdPxP1IEZfB/c2U9igbkK6TefOC6YM6LLvCS8Nmzv7bTZ1JlwimxcaXk4SuTz3A
	dQ0Dd+uc5jtcsKfPPaO66Ft8kIQnqUySeZ2I/vVGeIFZxogHGtl/RYoW9AjHYe8d
	lYPuoYNbbzTE7O1ESC6T29TIMSwv5dg/8FUe9wg7CzIAOGnmCG5ByvgWQcWzo2za
	w+9T4vHZyndHMJkNieMkSeNcd0Kk2+SXkrVDk+uT9ToWAss5fm/oI8mxrZjmXp7S
	ZayAtoG6QbuC5XRtb7X1EVJK7OtXN4MUHmQUoyf20t2XAsKr7knFijF1ATSA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1764866293; x=
	1764952693; bh=3br/kbpoG48NZlT+9b0/J8VIYGJaNyaNEShdOIiOHwE=; b=G
	BRIEJvKSQYY14dA9CRSvn/Bfh8vuIShBWtUEsgg8LiPYgtrhgZnkboaxg0wDwOHB
	zlOJLGjTBYgFOQR7ALElrHrKCTBxvv3xq2gKZhI5PIpV7pnNbsUt8Fwh6REaQjOM
	L5J25UKWSw7xN0kJxBCaDm++ItJia5q6QaA7eASBK3xSDCwlYU1wwUBYyuAspNGD
	ev8hpJ6DtFCGRxIRlZYcpNaKHDvVBx5EJpARICuLNoA4MrB6akrGYtLliXsJceKt
	kAZqeDeE3PypGYnM7jT2mP8Bjnht1CNjyIrOQX1rfFQZa2DMLiMm0TCqSiGzuAgc
	c35DZnhTNS7raG6kS/6kA==
X-ME-Sender: <xms:9LgxaSQchLHaizYFFjPTJiLCqEQCBfnHixGMqoxMIDoISQOPeLfVnw>
    <xme:9Lgxaeo55Yq-2rjztYrgLLd025e5BMfxSXDbuhjzC9ToKLxoGfLNqMhIiFOa0f3ZY
    MF-O56apsKZkoFkIU04rIwSt0m6CHzriXlGtUaj2DCkJBC_0A>
X-ME-Received: <xmr:9LgxaYJ3bAgeiv-YQaObGZ7NGkw6XuQu_SfSlQ9i8StD8P-PkS_IyqP2PXbwQZF3jQ-vFPnKVlrFcQT3k4IxIyN2jcSGLVi0s0z8Kngmkns>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeitdekucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfe
    estghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhn
    vghlrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpd
    hrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdr
    tghomh
X-ME-Proxy: <xmx:9LgxaZrYBndtOCWUhDV5S_tsnEdayxKa98xN4eTUi7mMjzZJb4m-ng>
    <xmx:9LgxaYxSkkO8FruHKnufLr5s4a58vlj7RabyKmeqGBq8FUTpTFZFIA>
    <xmx:9LgxaVNHg8CXn4i_vDc8R00zYn_HfKzM7qtpGXQjZWPxEatGPY2-kg>
    <xmx:9LgxaV44t_rsdtWy3q2C6PvJJ8zMinPNNwb_luKW_oh1qqd3SuiUQg>
    <xmx:9bgxaQK7AAD_tr1Ciihe9PTKRd8qRGZGCh2blMoV_wXpPJasi7gNlLFK>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 02/12] Switch Linux builds to use Alpine 3.22 container
Date: Thu,  4 Dec 2025 17:37:23 +0100
Message-ID: <b1d58190ac7e2b65f80542685191944b83338960.1764866136.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Slowly phase out 3.18 one.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 .gitlab-ci.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 17d25ce..36622c7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -21,14 +21,14 @@ stages:
   tags:
     - arm64
   variables:
-    CONTAINER: alpine:3.18-arm64-build
+    CONTAINER: alpine:3.22-arm64-build
 
 .x86_64-artifacts:
   extends: .artifacts
   tags:
     - x86_64
   variables:
-    CONTAINER: alpine:3.18-x86_64-build
+    CONTAINER: alpine:3.22-x86_64-build
 
 #
 # ARM64 artifacts
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 16:41:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 16:41:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178060.1502047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCOW-000522-BL; Thu, 04 Dec 2025 16:41:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178060.1502047; Thu, 04 Dec 2025 16:41:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCOW-00051v-8e; Thu, 04 Dec 2025 16:41:28 +0000
Received: by outflank-mailman (input) for mailman id 1178060;
 Thu, 04 Dec 2025 16:41:27 +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
 <SRS0=Ymfd=6K=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRCME-0008JN-Rs
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 16:39:06 +0000
Received: from fout-a7-smtp.messagingengine.com
 (fout-a7-smtp.messagingengine.com [103.168.172.150])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bf585d79-d12f-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 17:39:06 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfout.phl.internal (Postfix) with ESMTP id 18268EC05AC;
 Thu,  4 Dec 2025 11:39:05 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-06.internal (MEProxy); Thu, 04 Dec 2025 11:39:05 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 4 Dec 2025 11:39:03 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf585d79-d12f-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1764866345; x=1764952745; bh=qnUsTu3pHs
	WjMA2b8itd8vu/CqR/sF09Bd01iLpmL1A=; b=SCu9/zDrkZq+w/T77ibnn+U0YS
	MO/PM0LgaDliI+QhLbr9pPpx671FGK3OWy0hqUe3KQ8cStfZP3GCsjPefTQibpmF
	V0uqZHJbj5MmKb1KKhsLzQUexrh+xbrbjnwNQARmvXrED/qamv6JIe4jUJy0iIYJ
	0PgUXpmboKe0aduae4PZ0KtqHTHpt7xXb4UKiWA0kyRCcWAI2e6+6rORD8/JZyIi
	ksovuStzdSe/eDC9hRVHxf/IBxuTTN0XxhNcsazSEA9D475LR/Hwi6PT+m8q0BuL
	N6vEf34XBwwn0Cg9R5n9l1WLR81RcE0qj2IK/jPzOeRr/jrwhpTc+v/jJflA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1764866345; x=
	1764952745; bh=qnUsTu3pHsWjMA2b8itd8vu/CqR/sF09Bd01iLpmL1A=; b=A
	iJI//aeX7dPwK9xG/Nf/2/o+2InsoOV4x2gqOwkEOSleNgw5weDboA0mVUPRg78P
	NSQiIUDUO5a87efu1BXdplPcEglMCKS+7QEby8hjnRTZ/Ylr7v5b/xMcdRKyJEMJ
	ovNVeDUfGtXY1IhW8UNC58O2W7ggc+fMMSFa9lJlYEHqNBzbOsph3dCVtsuMDOtz
	xoBPQoCaX8FcIVvtLIEDkZ++DkNdtYR0hOnRU7Ar1aPSXbzTN/9mMe7QjUqEZ+E5
	Y/NikYKrytyeJxD8GVOmHaxitvrqHYQikHCZ/dBUYml5n5ieJf9V6MdXY/YlCkmz
	dUi7EZAEAWtys15uWT+WQ==
X-ME-Sender: <xms:KLkxaYZ7l8FlPPhmjmf6pqlLYcARn1HJJdSHGiPdo4TMsAUSNbgiLQ>
    <xme:KLkxaaTiLrX9wg2yB2APscIGQQKNR5MLgHlG9ckPMa0Qw0r9PaH0NgAeFjl7oJ7r6
    R_yM1LQ3pQahz7jNaUB51B4awtS3HrWHL5PhKeism7_0rJ3HA>
X-ME-Received: <xmr:KLkxabRq2A5DL_S7S6Hge4T7Bq_pzX6G1HbJVIP34wjO7R20WFnrFuM3ySZ_wh_cPzSTlBsH87NRSbSrLJaORtoJSiNUta-eqWGMeWRVdfU>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeitdekucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedunecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfe
    estghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhn
    vghlrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpd
    hrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdr
    tghomh
X-ME-Proxy: <xmx:KLkxaeRQlL3EvFSYxzte5trWTFfDl6xd8ecPlw81ETODF8KATutAtg>
    <xmx:KLkxaQ4GGXgjEa-_HpkaL_wMTrw5C13p1D6Ox3XtFNIYb2O-F5qxJA>
    <xmx:KLkxaa2B_FpCqtQ7cbU9qI_2v-bBEIjaPgeNMttkEvfS9VppvlzJIA>
    <xmx:KLkxabDsuYHUfTiwZkr4IO7jbdaobYtpfj3Ohbj_t3tmeQVDGGypig>
    <xmx:KbkxaRg4h3cMK4f3bPYF28TafRQZ2du5UVcqdMCSMjQjK3Q-dYc413fI>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 12/12] Setup ssh access to test systems
Date: Thu,  4 Dec 2025 17:38:49 +0100
Message-ID: <ce8df51117f8f3696059e83444be57bb20aba80e.1764866136.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

For this add also bridge package, so xenbr0 can be configured with
/etc/network/interfaces.
This allows extracting more logs out of the test system.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Changes in v2:
- do not allow passwordless login
---
 scripts/alpine-rootfs.sh | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
index 5945657..82cc416 100755
--- a/scripts/alpine-rootfs.sh
+++ b/scripts/alpine-rootfs.sh
@@ -10,6 +10,8 @@ apk --no-cache upgrade
 
 PKGS=(
     # System
+    bridge
+    dropbear
     libgcc
     openrc
     udev
@@ -70,6 +72,7 @@ rc-update add loopback sysinit
 rc-update add bootmisc boot
 rc-update add devfs sysinit
 rc-update add dmesg sysinit
+rc-update add dropbear boot
 rc-update add hostname boot
 rc-update add hwclock boot
 rc-update add hwdrivers sysinit
@@ -82,6 +85,7 @@ echo "ttyS0" >> /etc/securetty
 echo "hvc0" >> /etc/securetty
 echo "ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100" >> /etc/inittab
 echo "hvc0::respawn:/sbin/getty -L hvc0 115200 vt100" >> /etc/inittab
+echo "DROPBEAR_OPTS=\"-R\"" >> /etc/conf.d/dropbear
 echo "rc_verbose=yes" >> /etc/rc.conf
 echo > /etc/modules
 passwd -d "root" root
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 16:41:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 16:41:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178076.1502057 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCOc-0005YS-IU; Thu, 04 Dec 2025 16:41:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178076.1502057; Thu, 04 Dec 2025 16:41:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCOc-0005YL-Fk; Thu, 04 Dec 2025 16:41:34 +0000
Received: by outflank-mailman (input) for mailman id 1178076;
 Thu, 04 Dec 2025 16:41:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ymfd=6K=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRCME-0008JO-5X
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 16:39:06 +0000
Received: from fout-a7-smtp.messagingengine.com
 (fout-a7-smtp.messagingengine.com [103.168.172.150])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id be937b87-d12f-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 17:39:04 +0100 (CET)
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfout.phl.internal (Postfix) with ESMTP id C6570EC05A9;
 Thu,  4 Dec 2025 11:39:03 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-03.internal (MEProxy); Thu, 04 Dec 2025 11:39:03 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 4 Dec 2025 11:39:02 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: be937b87-d12f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1764866343; x=1764952743; bh=fc2RrMT47D
	rD+n9gHG+/vQrT+WQOaN5fCNWOga27JQE=; b=WjoXnxtySQNrjxxt05oW14enUK
	c7kEm5UjJ8nHodDEovt2whqLdtEX8BvwAWbYi55wqSCCbzsVj1Y635BUmhVLb7AU
	V8oJ8tgu5Z9qwAmJo0OMnBK54f7QTNlBmNWsKvdDlr93/TmmWTrJO7pliDIL2S0+
	gJ/OqWfVeDQhIcld90gfVt0ZoK2zpBYMT6pOyVfX1luX5OgtTuybyZ5ueIX1C0NO
	c5Ptox4h4Ajp0pBilxJhQElS6UMGwvvkJ0u/IwvzC8d8OcQR6Xm5itXCPFLI/Xyq
	gCYSCxn5y7bo3IoQfKpobsHV3XZcSqMf8dSkSFkwHGZ8uk9MRx3s1zZU2+8Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1764866343; x=
	1764952743; bh=fc2RrMT47DrD+n9gHG+/vQrT+WQOaN5fCNWOga27JQE=; b=w
	ThBCJWkVjzt3dS5Oh7+/cXeiXrJWqfVKfCd7aOKdGhO0UKsHe3yxkAZ6R+CxECcY
	bIztHtADFAeISDfcKNnjf4jJGVr3j+J26tg7wTEs7j+Mks95jGEdMvk143Sd94BD
	jU3rF3fioZUdaZw+EvLJx2t0adtjYHAC5/clXw5P7gWW1fwmTa3vhICcvFQn4KFs
	1GnZpICDkxFVqjw5YTTU06V7x5KqHZLt1njCWnhOWNbvWcHmH6FhSV4BE6cjuBy9
	L7WGKP/PatmNqOKcNGQLBJJSBplRKTR18lRjULpyV/rVgUbyh43aSY2FzY+xkBiP
	TCO4ZYJ+SqyCdTA6BxgMw==
X-ME-Sender: <xms:J7kxaUZ08zTN14xgpX4JFavd3L6Qzk-aV4qRgqlaf21Wn4qeQ9tBOg>
    <xme:J7kxaWRM1EU3WKE5YDSoZmudRnOFSBUR8WcnAlSrKwvu2LTq_Z0mRJVOfwtxP0Tnk
    hldKPfQKZrrNhjWAsFtWu82jxgqIajVoMJT5GmLd38hmkb9>
X-ME-Received: <xmr:J7kxaXTxSD_Z9UZBOsKSEPkcilg3hW2HPNORXA2M7ZVG0oHDO6esXVoYxOT0riSlYhmK7g12ciN5rHKjJFzXGy-Onfv9mGvgLM2s7-ofr_Y>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeitdejucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfe
    estghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhn
    vghlrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpd
    hrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdr
    tghomh
X-ME-Proxy: <xmx:J7kxaaQwji8GfRpCs3VL-A1VAwjZiuW3DOHM1oY_wacmkoAbXvC0QA>
    <xmx:J7kxac7Kg0P6_ES9pr9oTA8VnIc7WiNvFAym2FBg3JoMYVUm1P-lHg>
    <xmx:J7kxaW3HNsX4Kl8BUJPi1-DJFcRtEHpqbu-dPBwkOwU26wg4cPwjIg>
    <xmx:J7kxaXAfNOSzZoVvZ1OelhuCDrlhoUu4HHorTGpBuarazrjLmHqqLQ>
    <xmx:J7kxacRZ4Okt76Y_J0Mh8czgzey3i3QfFIDO7O15mg1SAlhY8RprVr0s>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 11/12] Prepare grub for booting x86_64 HVM domU from a cdrom
Date: Thu,  4 Dec 2025 17:38:48 +0100
Message-ID: <194d96e98604de85e75428ad5b0fc91a13bf1bb2.1764866136.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The stubdomain test will use it.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 scripts/alpine-rootfs.sh | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
index 7d0e70d..5945657 100755
--- a/scripts/alpine-rootfs.sh
+++ b/scripts/alpine-rootfs.sh
@@ -99,6 +99,9 @@ if [ "$UNAME" = "x86_64" ]; then
     grub-mkimage -o ${COPYDIR}/grub-core.img \
         -O i386-pc -p '(hd0,msdos1)/boot/grub2' \
         boot part_msdos ext2 linux biosdisk configfile normal
+    grub-mkimage -o ${COPYDIR}/grub-core-eltorito.img \
+        -O i386-pc-eltorito -p '(cd)/boot/grub2' \
+        boot part_msdos ext2 linux biosdisk configfile normal iso9660
 fi
 
 # Print the contents for the build log
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 16:46:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 16:46:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178108.1502068 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCTH-0006b0-3w; Thu, 04 Dec 2025 16:46:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178108.1502068; Thu, 04 Dec 2025 16:46:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCTH-0006at-0s; Thu, 04 Dec 2025 16:46:23 +0000
Received: by outflank-mailman (input) for mailman id 1178108;
 Thu, 04 Dec 2025 16:46:22 +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
 <SRS0=Ymfd=6K=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRCMB-0008JN-PU
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 16:39:03 +0000
Received: from fout-a7-smtp.messagingengine.com
 (fout-a7-smtp.messagingengine.com [103.168.172.150])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bdc8de33-d12f-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 17:39:03 +0100 (CET)
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfout.phl.internal (Postfix) with ESMTP id 6AA8FEC05A6;
 Thu,  4 Dec 2025 11:39:02 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-05.internal (MEProxy); Thu, 04 Dec 2025 11:39:02 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 4 Dec 2025 11:39:01 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bdc8de33-d12f-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1764866342; x=1764952742; bh=dT2lw6HtLt
	QeJ5MhpVe/EmYio6/lL6n79y37dwNMdvs=; b=KfcvIhV6mZhCaPu2rkjY/rtaTd
	suRWdYlw970D8DTz7LH+3j+WrLZCEXehNg+h5Q2XV3pfmyskZF0CLoZAcZ7rThxi
	IARYKCaxi6AZhYyKTDUdCs3tmDri1OwfBEAUzmzKghAlWDHc/XaTCLQ6Ur6W8DPG
	TYSNut4xVJRkyCLiQfSC0u9YLQRF4KbZ6obyMv4584+FxTLZwqxgV4gsEpAd3m8s
	QOMiof2/y9Svj1WeDmofr+i4tFhNqWOLrL2adKqCtKUAIXtxYdUuV9r5dzthvsj4
	aoe8BwpNR3WV+2X19IAlQGEpAOmlYSlSMh3VACQxWr5Z02gWYAcw6418Mf+g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1764866342; x=
	1764952742; bh=dT2lw6HtLtQeJ5MhpVe/EmYio6/lL6n79y37dwNMdvs=; b=Q
	BKX6UUJ0fqLEg6GvbrAAHIiQgylJf2sqYyddmaw49hMU49HoRx9HiOGIeTvsLhnU
	710FWJjwarUjRGAPkznaoe/m0WgN0LufAmJYmtfIdpgTN4l7Uff8QHno1WwwUzkg
	M67WIw/UIjJJxuaTdFDM7wZyObtQED4trH7iRvtSnq+A7PwkTzDntSw60peY6Hsw
	jv3NFBRaI0Ms5NelTwW233QPY3HssicmnFGQufjrNFZhRWRGjL1V3RVVuTShJi7y
	vbDTkRQphNRtufbe41radWPS8zDnW65m9zuF64u56wrCCXZrRMCeXv5Zlyp2cD9I
	1dTtGilKN/Ouj1mpsYzHA==
X-ME-Sender: <xms:JrkxaVUAS-J83IeKilKODFjnExYXpFeSjX0joZHm5ElJemUpDMTMiw>
    <xme:JrkxacdoxNtFcUL6GUNoahyAfJdLXDi0qTQNVGg2HHaqSYQJY999Bh5P75AEQkkiq
    c_pG-sN6DzZJWq0YVpATQTTyAiPoSpMF3j7isZrGb-Rbz-knA>
X-ME-Received: <xmr:JrkxaZv5SdX8WggcH-QGWnbwCBQ0MM48xSAbff6J42Y3czgTiedL5RjutZu-f3mtju4mXethKKQr9McbVaJ3MLzHnxQri8rWJkSCH690YSs>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeitdekucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfe
    estghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhn
    vghlrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpd
    hrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdr
    tghomh
X-ME-Proxy: <xmx:JrkxaT-zRVFotQYQTDbC3KDTHZ5sxm9YKxOV-0sY3dM7G-QfPSmBaw>
    <xmx:Jrkxac2o4U7DJ8LGHbCJu0pOZ6XqkipTUFVgTT1bEBUqTOQQ-hdrZQ>
    <xmx:JrkxaQBntbrQKq7cX9uusm26khn8P7n1ZZ3xIfqHRC6WRoC_UbA12Q>
    <xmx:JrkxaQcjAMSVZhtGsd4cFVI8T02EbCAJNho0fR_XlS6sHueSwuLeig>
    <xmx:JrkxaTP6rWD7uKfM8iCBKf7U1N4IhwMomq87s9fN41NSqhmXf1xSNvpk>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 10/12] Prepare grub for booting x86_64 HVM domU from a disk
Date: Thu,  4 Dec 2025 17:38:47 +0100
Message-ID: <18bbbbcc6cc0642c02b90a43d8a318a6f6193079.1764866136.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The stubdomain test will use it

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 scripts/alpine-rootfs.sh | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
index e06e72b..7d0e70d 100755
--- a/scripts/alpine-rootfs.sh
+++ b/scripts/alpine-rootfs.sh
@@ -94,5 +94,12 @@ cd /
     echo -ne "dev\0proc\0run\0sys\0"
 } | cpio -0 -R 0:0 -H newc -o | gzip > "${COPYDIR}/rootfs.cpio.gz"
 
+if [ "$UNAME" = "x86_64" ]; then
+    # Prepare boot sector for HVM disk
+    grub-mkimage -o ${COPYDIR}/grub-core.img \
+        -O i386-pc -p '(hd0,msdos1)/boot/grub2' \
+        boot part_msdos ext2 linux biosdisk configfile normal
+fi
+
 # Print the contents for the build log
 zcat "${COPYDIR}/rootfs.cpio.gz" | cpio -tv
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 16:54:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 16:54:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178128.1502098 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCbC-0000f2-Dk; Thu, 04 Dec 2025 16:54:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178128.1502098; Thu, 04 Dec 2025 16:54:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCbC-0000et-A1; Thu, 04 Dec 2025 16:54:34 +0000
Received: by outflank-mailman (input) for mailman id 1178128;
 Thu, 04 Dec 2025 16:54:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ymfd=6K=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRCbA-0000ds-UB
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 16:54:32 +0000
Received: from fhigh-a1-smtp.messagingengine.com
 (fhigh-a1-smtp.messagingengine.com [103.168.172.152])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e6bf26fe-d131-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 17:54:31 +0100 (CET)
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 3121E1400237;
 Thu,  4 Dec 2025 11:54:30 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-05.internal (MEProxy); Thu, 04 Dec 2025 11:54:30 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 4 Dec 2025 11:54:28 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e6bf26fe-d131-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1764867270; x=1764953670; bh=D8R0Uma4yL
	RqgeVrb1I3uRMBKie8Z6RMuPmi55KhBLU=; b=d4JurwJJKDLgKSGpBG1HPGVbl5
	Ojs5qnNAmP6VZ4OMgCPBpeV64sXtiRXG3+a1f+fep/lownvIfiTZxEgvcu2Otrow
	1tDOfeFGNyCoMnItjCNvpavckdAfbVoO6bETr0lMALF8fdn5hyYb4wcPSv54bB16
	T/agxDE0k/ngQ9aBuJpmupbOnM8o4tAeddj5mJLRI+i65/slDrvQagrXOGkzFkN9
	48qNSWQuW9F/usTc+0cTZu8jhXlS22N6/3pizfFCHTp51EeH7tByl5yYEBy+1nFJ
	9huZ/LKPPAhpquSQ93DoppYdToYz/8s/0ob0fHV1uVCsWY1YzeVlFi6rfiEQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1764867270; x=
	1764953670; bh=D8R0Uma4yLRqgeVrb1I3uRMBKie8Z6RMuPmi55KhBLU=; b=I
	oDNNMSO/QDVC/U2yKtYUyAdu7UiFRgMq/sdHdJO0iKAqbMclWjE2TBPejYOZGpUQ
	X0et2gYYWCj1kZtaK2VlwxRLEy75e4J+KD/DKtxcvuajzqJ3kNDAnypPzZ6AfSV7
	PXf2BYl8Falpur4N/1U1Ai2bCRu3TOEImT4vAiFO40sr/o+EWrvVHLK/78HTTLA+
	6nJGKjnI8994SC9n4/PdujNuIJSKwtSIXa/MZ+vGCzmRWj1uBEXyFBn3Hm8vF5qH
	LLnzWWF+2Qi6OostPf2NPzvHIcn6/+Af3LXttQC5VeVYJWJYMqDJHZ5H4h43YZh+
	z5mXQaiR2m7A14prpm/bw==
X-ME-Sender: <xms:xrwxaTeZmVbewnDpmOc_WzZ_UIqypQdRvsJes-GHMe2TxOzMYqBeNQ>
    <xme:xrwxaQNn8DIIwMGzpwIqlxpTxTc6L6WS1X7DEZQW7tdr_tcHzBG1-DcIN1PMZJguP
    ny8vlRBQ4AmYQ4SiOkKkATymdutBxzHS0UIZBpjdSjBlPLIYQ>
X-ME-Received: <xmr:xrwxaRiclqtrzgehHcJw1-i_KhK067lzBdFr0q9MnPWxNn_2ZiQ_JNPmIFwLIWv0TbYnNPlPpexIgxH5JB_daL_w88vwtwl4oggr_WaW3pM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeiudduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghr
    ughovgdrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdroh
    hrgh
X-ME-Proxy: <xmx:xrwxaT0Unu6zVJOSGSNfTCBJqickQ2FGluhLVG7P6KzDEs_7BGWnTg>
    <xmx:xrwxabih-trcZmtCZlBawt5n1zrOMpZqq4tw6-27p8I9P6vEe2ODdA>
    <xmx:xrwxaTd5OF5WwjV0cB1C9m7OjiNO3ZvST3-mGf9tqiXTn3O5zL6D5w>
    <xmx:xrwxaekZktOdqWBjZCopZoEv6gHG5wiC6lRtoGapbdmLFWM8ekrwsw>
    <xmx:xrwxaZ8fqB66MSoiSpPeZVN_lN1-9QsZ52TMvv3RV6cXgtIXoH7czHRX>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 3/4] CI: Add configure --enable-systemd for full build
Date: Thu,  4 Dec 2025 17:53:50 +0100
Message-ID: <ed2e7eda64da87351d6fd8590eee698598ef8e88.1764867217.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <cover.1e7327573686b6fc1e161127e268e4042556d16e.1764867217.git-series.marmarek@invisiblethingslab.com>
References: <cover.1e7327573686b6fc1e161127e268e4042556d16e.1764867217.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This doesn't exclude sysvinit scripts, but allows testing systemd too.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
--
Changes in v3:
- switch to trixie

New in v2.

Requires containers rebuild
---
 automation/build/debian/13-x86_64.dockerfile | 1 +
 automation/scripts/build                     | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/automation/build/debian/13-x86_64.dockerfile b/automation/build/debian/13-x86_64.dockerfile
index 6382bafbd5bd..9387da453fea 100644
--- a/automation/build/debian/13-x86_64.dockerfile
+++ b/automation/build/debian/13-x86_64.dockerfile
@@ -26,6 +26,7 @@ RUN <<EOF
         cpio
         git-core
         pkg-config
+        systemd-dev
         wget
         # libxenguest dombuilder
         libbz2-dev
diff --git a/automation/scripts/build b/automation/scripts/build
index 7a81d229decd..e77529cfc8ec 100755
--- a/automation/scripts/build
+++ b/automation/scripts/build
@@ -71,6 +71,9 @@ else
     # Full build.  Figure out our ./configure options
     cfgargs=("--prefix=/usr")
     cfgargs+=("--enable-docs")
+    if pkg-config systemd; then
+        cfgargs+=("--enable-systemd")
+    fi
 
     # booleans for which compiler is in use
     cc_is_gcc="$($cc --version | grep -q gcc && echo "y" || :)"
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 16:54:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 16:54:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178126.1502079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCb8-0000CB-15; Thu, 04 Dec 2025 16:54:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178126.1502079; Thu, 04 Dec 2025 16:54:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCb7-0000C4-ST; Thu, 04 Dec 2025 16:54:29 +0000
Received: by outflank-mailman (input) for mailman id 1178126;
 Thu, 04 Dec 2025 16:54:28 +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
 <SRS0=Ymfd=6K=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRCb6-0000By-6g
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 16:54:28 +0000
Received: from fhigh-a1-smtp.messagingengine.com
 (fhigh-a1-smtp.messagingengine.com [103.168.172.152])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e3d5a3b7-d131-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 17:54:26 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 04EAE1400233;
 Thu,  4 Dec 2025 11:54:25 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-06.internal (MEProxy); Thu, 04 Dec 2025 11:54:25 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 4 Dec 2025 11:54:23 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e3d5a3b7-d131-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:message-id:mime-version:reply-to:subject:subject:to:to; s=fm1;
	 t=1764867265; x=1764953665; bh=sxPFZ6c/Af/XGGn8DPMHc7H1iTXIaOB8
	tkvgGdgytYg=; b=GusMDLmvQH7dN6+dj5NW24zeKr2UweeBAzzXDnywhMO5FlQd
	9lhaLc2UamytaCr0gAuR9C2az10KIuYzTN7fIpKozJ29pxk9Pf7uhh159MzHaUXd
	3DFa6z7yuh8nmqDl8azTPcEtu8bOmpBIa0GkeZVimwGX85P3SDkL04MIQWbFfjD8
	3385jgt66u7C5duWfIinqMdl7ZGjTd93L4YKu6QGmydwjqHWm+yGFg/+c75X08ax
	AtRWWacZ3cLhKyehGquOj1WPx1AsW68447hDNFXtw+2OwqkQUJFTGS8n/847YiWt
	sXkoGlQif7nZBawt1/zZPTnrJEKaBeIpuc/27g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:message-id:mime-version:reply-to:subject
	:subject:to:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm1; t=1764867265; x=1764953665; bh=sxPFZ6c/Af/XGGn8DPMHc7H1iTXI
	aOB8tkvgGdgytYg=; b=ozjaC5Va8tloA9NuQQjHlzCGvYFSSjzes3kOZZjDtk7j
	zhx4lQ5sRrCEJdHT84inF8t8+m/1yIBr4sWB2YU65eOjLxEj58eT5as+/gtURp+J
	Tj0wyRf9cPqte703uljJENdCObYBZWnCtSCtOLUqIRMP8aafvrpj28RTtbPZbxCm
	quWCmn4qVaB/k0PBLMjx1LenO3AtkSSco74Zl5knELbGD8XndYQ3/l8GsN0APrOB
	p5z1Bp6DOFHX6xNy6E6FGXlQPYQFFe/AWQboWW5XR4r+EQknV96ngs6XnTVKd4+g
	W9D9L06GB4UxT+mxDq+SqbUsTEUuWyyxw90AiKGtzQ==
X-ME-Sender: <xms:wLwxaQI4_cwK7xYTiizJGSqoV1ORaqcnTu8Xok5_TbEu55GzFcwMWA>
    <xme:wLwxaWJEjv5YJv8g5oMt7hcxXs9nWbuIP1Ip-eUV6ifjkQFszaEK50em3Q4uetjdL
    HRkVdC4A_lZe5M38ZGsqQwAvS0Erbt2GMoKXECBHnHx0y77UA>
X-ME-Received: <xmr:wLwxaeUfpG6QdeiemtzKz0mbX7k4sqkGWGs9KCo_dF8o-ODLvlkOmQhnKCFBP26tHQVSFIM9XIPXn28RemxYRR48CirtPEGk49UiuaroyY0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeiudduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucenucfjughrpefhvfevufffkffogggtgfesthekredtredtje
    enucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceo
    mhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecugg
    ftrfgrthhtvghrnhepjeeufefhleeikeegfedtgfeiueeghfduteejtefhfeevheffjefh
    ieeggfejkeelnecuffhomhgrihhnpehgihhtlhgrsgdrtghomhenucevlhhushhtvghruf
    hiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhi
    shhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopedvpdhmohguvg
    epshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghn
    phhrohhjvggtthdrohhrghdprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhishhisg
    hlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:wLwxaYibf7Uo6pkqHwfhTb8XLh0BhN_9196jmLN8PBKN3rwLq9sYkw>
    <xmx:wLwxaZ_mNyic3HaEKgONppd2FfGFbOm_LKZM9dDrbrQhjv1rHQ6JVg>
    <xmx:wLwxaSD3K3N5vlVmwTK4zxgLJW0-HDRCY8v790ALGAWeqHvfAvnSIg>
    <xmx:wLwxaWKr0_Y1dY5HYgGfrdw1DIL2E8vmsdJ2UNSqvLOIGhmmVO1czg>
    <xmx:wbwxaUncmGaCBRn8pVaq7RsCUkStM0vX71RXiNaNGd4J3F8Wv1HZ2bTA>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v3 0/4] Add driver domains test
Date: Thu,  4 Dec 2025 17:53:47 +0100
Message-ID: <cover.1e7327573686b6fc1e161127e268e4042556d16e.1764867217.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This is intended to detect issues like recent xl devd crash in domU.

Pipeline:
https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/2196576805

I did checked that indeed it fails with the fix reverted - that's why the
Debian patch - Alpine version did not detected that regression.

Requires debian in test-artifacts repo - patch series sent separately.

Marek Marczykowski-Górecki (4):
  automation: switch to alpine:3.22
  CI: Add driver domains tests
  CI: Add configure --enable-systemd for full build
  CI: Run driver domains test on Debian too

 automation/build/alpine/3.18-arm64v8.dockerfile |  51 +------
 automation/build/alpine/3.18.dockerfile         |  52 +------
 automation/build/alpine/3.22-arm64v8.dockerfile |  51 ++++++-
 automation/build/alpine/3.22.dockerfile         |  52 ++++++-
 automation/build/debian/13-x86_64.dockerfile    |   4 +-
 automation/gitlab-ci/build.yaml                 |  44 ++---
 automation/gitlab-ci/test.yaml                  | 125 ++++++++------
 automation/scripts/build                        |   3 +-
 automation/scripts/containerize                 |   4 +-
 automation/scripts/qemu-driverdomains-x86_64.sh | 152 +++++++++++++++++-
 10 files changed, 362 insertions(+), 176 deletions(-)
 delete mode 100644 automation/build/alpine/3.18-arm64v8.dockerfile
 delete mode 100644 automation/build/alpine/3.18.dockerfile
 create mode 100644 automation/build/alpine/3.22-arm64v8.dockerfile
 create mode 100644 automation/build/alpine/3.22.dockerfile
 create mode 100755 automation/scripts/qemu-driverdomains-x86_64.sh

base-commit: 62bd4c2a8ee809c181d47098583270dc9db9300e
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 16:54:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 16:54:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178127.1502088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCb9-0000QD-6J; Thu, 04 Dec 2025 16:54:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178127.1502088; Thu, 04 Dec 2025 16:54:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCb9-0000Q6-35; Thu, 04 Dec 2025 16:54:31 +0000
Received: by outflank-mailman (input) for mailman id 1178127;
 Thu, 04 Dec 2025 16:54:30 +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
 <SRS0=Ymfd=6K=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRCb7-0000By-Vu
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 16:54:29 +0000
Received: from fhigh-a1-smtp.messagingengine.com
 (fhigh-a1-smtp.messagingengine.com [103.168.172.152])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e5a54370-d131-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 17:54:29 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 575D81400230;
 Thu,  4 Dec 2025 11:54:28 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-06.internal (MEProxy); Thu, 04 Dec 2025 11:54:28 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 4 Dec 2025 11:54:26 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e5a54370-d131-11f0-9d1a-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1764867268; x=1764953668; bh=/bW7oZn7wY
	ZvxeYpFbyx0iWQejJzqha55x3nUBK4tG4=; b=uZZEVKwuFI3TSK9RLFAshT2JAo
	eG+UkzrtnuG0TH3Unur/Isfg9r0jtqVvDqs/tYqV2ukabqE5avk614DC00nnSmQq
	ucIjAkNrxjhbguzsoGx+AhYXLMtJUt/iY6AXeXmk6OYaM21/GlcAUoSttKadmtCa
	wd5o27A5/6fakS1R1Rpuob9AkkRPRn3GXdB8pGX5q3U21kpT+7F9pBmBziLyGr83
	9/paWQllBeY3uR2qzqFzDBWzaIDbSiVhI8J6qT43OlR5CZPeHdNu2SbTl5UDteUA
	U1hIzkkZ2g9rCQNlypp1CGQXbdTJ1Np4d0dKcqo7NnqUrBZew/FVoCAEf5ew==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1764867268; x=
	1764953668; bh=/bW7oZn7wYZvxeYpFbyx0iWQejJzqha55x3nUBK4tG4=; b=M
	HAdr6jkV/nnSF1USkyv14gG+mseph6bXtP+s/gd0uZeOQ7iUTqcycS35crcF07Zf
	NW6j9mLjh/rg9uyzrmAfoZOK451AWjVXnAMm2h9TKq/Nxk1NbXEykLTSDAXO1KP2
	Qyum5iXAtgnMTXlbWUscIG/xg59DcAYFfnjx3j/zkM0YSbgOlzR/yLQL0luZFLbk
	rO8bRVsYpkymZhjYn2pZLwTcAsrAjhMXIk/tBxe5AuUXafQ+FV4Z6ZMruJLt7Mn9
	61G8eBdCNyWaim3NV6dOf6JgW+gQobY9/CKauGK+taV/QCfsUYHoe0toXTR/JmO3
	g7yIpUssBJyiL/TX+l8bw==
X-ME-Sender: <xms:xLwxaTZE21SZF30xkwFlpF_lssGbOeAQLaazopyYn9kXVPNB8V75yg>
    <xme:xLwxaZZPmznIP76-k022jLI4bpuXsr69DGFb4wEDd6JmsF2vxMYwVxuQo4vgX1bsZ
    7xxzITatczpv0qdp3wHalVkrKazrxdlDfKLSDErFsGxG1deOA>
X-ME-Received: <xmr:xLwxaa-00_DIYzXZs9gLF_kGDuL3zEHmbH5wqfiLBj-qSTlFiCyh4NkyWZ5NIPCZDL6JuWQdI9dnn3MJcr1nDPDfQmK5ixWTvryahy8ozfw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeiudduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghr
    ughovgdrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdroh
    hrgh
X-ME-Proxy: <xmx:xLwxaYg27epQsN1JzKniWr8InhmLaeUtFjxz1IaYJTH9czsq2zH2OA>
    <xmx:xLwxaaednwg_6HVncKo_VplDST0rd9PejCcsEEfNr3gq2Y6-UColcA>
    <xmx:xLwxafp3JIptrg0SRLJ0kSipFCNS3qlBcOjhfngb9fV2clQ6lMQ45g>
    <xmx:xLwxafDEtIOU2UsBpMnQOBWgTTWCY-NS7A0Upv_ZoeFQxMC63fI4Hw>
    <xmx:xLwxaX4CL_QMTRVmWjvbXlovE8FGTwjHul8yiieUoLfQnVFNL_JW6F8i>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 2/4] CI: Add driver domains tests
Date: Thu,  4 Dec 2025 17:53:49 +0100
Message-ID: <58d2b15392340f82c914c7544af0f0f00ce53e47.1764867217.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <cover.1e7327573686b6fc1e161127e268e4042556d16e.1764867217.git-series.marmarek@invisiblethingslab.com>
References: <cover.1e7327573686b6fc1e161127e268e4042556d16e.1764867217.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Setup a simple two domU system. One with network backend, running
xendriverdomain service, and one with frontend, trying to ping the
backend.

Contrary to other similar tests, use disk image instead of initrd, to
allow bigger rootfs without adding more RAM (for both dom0 and domU).
But keep using pxelinux as a bootloader as it's easier to setup than
installing grub on the disk. Theoretically, it could be started via direct
kernel boot in QEMU, but pxelinux is slightly closer to real-world
deployment.

Use fakeroot to preserve file owners/permissions. This is especially
important for suid binaries like /bin/mount - without fakeroot, they
will end up as suid into non-root user.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Changes in v3:
- add fakeroot
- run ldconfig at the disk image creation time, to avoid running it at
  dom0/domU boot time (which is much slower)
Changes in v2:
- use heredoc
- limit ping loop iterations
- use full "backend" / "frontend" in disk image names
- print domU consoles directly to /dev/console, to avoid systemd-added
  messages prefix
- terminate test on failure, don't wait for timeout
---
 automation/build/debian/13-x86_64.dockerfile    |   2 +-
 automation/gitlab-ci/test.yaml                  |   8 +-
 automation/scripts/qemu-driverdomains-x86_64.sh | 138 +++++++++++++++++-
 3 files changed, 148 insertions(+)
 create mode 100755 automation/scripts/qemu-driverdomains-x86_64.sh

diff --git a/automation/build/debian/13-x86_64.dockerfile b/automation/build/debian/13-x86_64.dockerfile
index 2c6c9d4a5098..6382bafbd5bd 100644
--- a/automation/build/debian/13-x86_64.dockerfile
+++ b/automation/build/debian/13-x86_64.dockerfile
@@ -55,7 +55,9 @@ RUN <<EOF
 
         # for test phase, qemu-* jobs
         busybox-static
+        e2fsprogs
         expect
+        fakeroot
         ovmf
         qemu-system-x86
 
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 0c4f535cd112..52ffb271951a 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -656,6 +656,14 @@ qemu-alpine-x86_64-gcc:
     - *x86-64-test-needs
     - alpine-3.22-gcc
 
+qemu-alpine-driverdomains-x86_64-gcc:
+  extends: .qemu-x86-64
+  script:
+    - ./automation/scripts/qemu-driverdomains-x86_64.sh 2>&1 | tee ${LOGFILE}
+  needs:
+    - *x86-64-test-needs
+    - alpine-3.22-gcc
+
 qemu-smoke-x86-64-gcc:
   extends: .qemu-smoke-x86-64
   script:
diff --git a/automation/scripts/qemu-driverdomains-x86_64.sh b/automation/scripts/qemu-driverdomains-x86_64.sh
new file mode 100755
index 000000000000..c0241da54168
--- /dev/null
+++ b/automation/scripts/qemu-driverdomains-x86_64.sh
@@ -0,0 +1,138 @@
+#!/bin/bash
+
+set -ex -o pipefail
+
+dom0_rootfs_extra_comp=()
+dom0_rootfs_extra_uncomp=()
+
+cd binaries
+
+# DomU rootfs
+
+mkdir -p rootfs
+cd rootfs
+mkdir -p etc/local.d
+passed="ping test passed"
+failed="TEST FAILED"
+cat > etc/local.d/xen.start << EOF
+#!/bin/bash
+
+set -x
+
+if grep -q test=backend /proc/cmdline; then
+    brctl addbr xenbr0
+    ip link set xenbr0 up
+    ip addr add 192.168.0.1/24 dev xenbr0
+    bash /etc/init.d/xendriverdomain start
+    # log backend-related logs to the console
+    tail -F /var/log/xen/xldevd.log /var/log/xen/xen-hotplug.log >>/dev/console 2>/dev/null &
+else
+    ip link set eth0 up
+    ip addr add 192.168.0.2/24 dev eth0
+    timeout=6 # 6*10s
+    until ping -c 10 192.168.0.1; do
+        sleep 1
+        if [ \$timeout -le 0 ]; then
+            echo "${failed}"
+            exit 1
+        fi
+        ((timeout--))
+    done
+    echo "${passed}"
+fi
+EOF
+chmod +x etc/local.d/xen.start
+fakeroot sh -c "
+    zcat ../rootfs.cpio.gz | cpio -imd
+    zcat ../xen-tools.cpio.gz | cpio -imd
+    ldconfig -r .
+    touch etc/.updated
+    mkfs.ext4 -d . ../domU-rootfs.img 1024M
+"
+cd ..
+rm -rf rootfs
+
+# Dom0 rootfs
+mkdir -p rootfs
+cd rootfs
+fakeroot -s ../fakeroot-save sh -c "
+    zcat ../rootfs.cpio.gz | cpio -imd
+    zcat ../xen-tools.cpio.gz | cpio -imd
+    ldconfig -r .
+    touch etc/.updated
+"
+mkdir -p root etc/local.d
+cat > root/backend.cfg << EOF
+name="backend"
+memory=512
+vcpus=1
+kernel="/root/bzImage"
+extra="console=hvc0 root=/dev/xvda net.ifnames=0 test=backend"
+disk=[ '/root/domU-rootfs-backend.img,raw,xvda,rw' ]
+EOF
+cat > root/frontend.cfg << EOF
+name="frontend"
+memory=512
+vcpus=1
+kernel="/root/bzImage"
+extra="console=hvc0 root=/dev/xvda net.ifnames=0 test=frontend"
+disk=[ '/root/domU-rootfs-frontend.img,raw,xvda,rw' ]
+vif=[ 'bridge=xenbr0,backend=backend' ]
+EOF
+
+cat > etc/local.d/xen.start << EOF
+#!/bin/bash
+
+set -x
+
+bash /etc/init.d/xencommons start
+
+xl list
+
+tail -F /var/log/xen/console/guest-backend.log 2>/dev/null | sed -e "s/^/(backend) /" >>/dev/console &
+tail -F /var/log/xen/console/guest-frontend.log 2>/dev/null | sed -e "s/^/(frontend) /" >>/dev/console &
+xl -vvv create /root/backend.cfg
+xl -vvv create /root/frontend.cfg
+EOF
+chmod +x etc/local.d/xen.start
+
+cp ../domU-rootfs.img ./root/domU-rootfs-backend.img
+cp ../domU-rootfs.img ./root/domU-rootfs-frontend.img
+cp ../bzImage ./root/
+mkdir -p etc/default
+echo 'XENCONSOLED_TRACE=all' >> etc/default/xencommons
+mkdir -p var/log/xen/console
+fakeroot -i ../fakeroot-save mkfs.ext4 -d . ../dom0-rootfs.img 2048M
+cd ..
+rm -rf rootfs
+
+cd ..
+
+cat >> binaries/pxelinux.0 << EOF
+#!ipxe
+
+kernel xen console=com1 console_timestamps=boot
+module bzImage console=hvc0 root=/dev/sda net.ifnames=0
+boot
+EOF
+
+# Run the test
+rm -f smoke.serial
+export TEST_CMD="qemu-system-x86_64 \
+    -cpu qemu64,+svm \
+    -m 2G -smp 2 \
+    -monitor none -serial stdio \
+    -nographic \
+    -device virtio-net-pci,netdev=n0 \
+    -netdev user,id=n0,tftp=binaries,bootfile=/pxelinux.0 \
+    -drive file=binaries/dom0-rootfs.img,format=raw"
+
+export TEST_LOG="smoke.serial"
+export BOOT_MSG="Latest ChangeSet: "
+export LOG_MSG="Domain-0"
+# exit early on test failure too, check if it was success below
+export PASSED="$passed|$failed"
+
+./automation/scripts/console.exp | sed 's/\r\+$//'
+
+grep "$passed" smoke.serial
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 16:54:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 16:54:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178129.1502107 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCbD-0000u8-KG; Thu, 04 Dec 2025 16:54:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178129.1502107; Thu, 04 Dec 2025 16:54:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRCbD-0000u1-HC; Thu, 04 Dec 2025 16:54:35 +0000
Received: by outflank-mailman (input) for mailman id 1178129;
 Thu, 04 Dec 2025 16:54:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ymfd=6K=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRCbC-0000ds-LG
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 16:54:34 +0000
Received: from fhigh-a1-smtp.messagingengine.com
 (fhigh-a1-smtp.messagingengine.com [103.168.172.152])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e7e16bf8-d131-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 17:54:32 +0100 (CET)
Received: from phl-compute-10.internal (phl-compute-10.internal [10.202.2.50])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 1863E140022D;
 Thu,  4 Dec 2025 11:54:32 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-10.internal (MEProxy); Thu, 04 Dec 2025 11:54:32 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 4 Dec 2025 11:54:30 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e7e16bf8-d131-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1764867272; x=1764953672; bh=J72eRzq98N
	ECh/4fpjgE0AyqaKIdPFIrY0AwJqY41fY=; b=apgmgbkFnGcB+2QP46jILWcERL
	AFMOcSPgHItCiDlCJAEk/Bdaq1hc4DmdHWr8IFb0yOxKYW4h3NeF7KciGWIif3x4
	WVh60I1Gn3V7yok6cJNcAKb9BsknJqk9dUPaLMMt8inHUnPE/cWxGU+C5NjoFMfz
	JYBmrBboewme5wfq3QTB9iCQ2D+sFrsCNm+YvWn/07ftGa1yD8ZmcEtEF+APLhVb
	yMMC8P8AqJ3TpVY+bbAkpR5okUAOLFqLMxB5nbdNbZxTA+w57cp9Zrj9ap7kY+JR
	i1c3d+WQ4NZqRIbRCyMBcPHp16v9EUNNPiYvni2ncSYJn0v559r8O3b8Bf3A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1764867272; x=
	1764953672; bh=J72eRzq98NECh/4fpjgE0AyqaKIdPFIrY0AwJqY41fY=; b=d
	e2cZ0LaxLwe8JbrVebXFi4TRc2V0SUaUMyByKInw8NiH+2nnhGdptrpPFgnU8bfh
	3Iu254OagYyQWCi3PFZuz5h7cDd93/MujMJkXrB2r/rBtGcWzVMTHDanfqLPc+U/
	D4/1BYkQaLdLBdIaWLccS7X1jG9pBfXyQwILE2tkPhqolyUByuAul6vT8FZoH3/8
	4NCwsaJ67CAqQ6Z9JtA4POn+KctmEyDTzLdGkZWvhYdyARbdOM/2JBBXnAHapTKI
	LARbVTYs9/dLAvIPhL0WUvKa782t6j374aL4stwSeM4k59RX3aW7WyOLdkrFusQH
	PMdCqx/LPZ5QtWf+lkzRQ==
X-ME-Sender: <xms:x7wxaU7hM6K0LkgxNUKx6UR1CZQldDtmkl2F7pcHFnzANfpds1kkXw>
    <xme:x7wxac7CmWcL9jTc04OEd38L2JEWGNCCzuFPod-sKGV9U81VCEvtIZnTsQPfaNvDg
    373J5ZdNu6T5_8OS9aZbPvVeh_j61X-PICREsu56d3gPsC-Jfo>
X-ME-Received: <xmr:x7wxaYcTT-n3DC6ySs246AD9M8JZeLLT5k46D55HYYU0LiW9fneOwgYzI-TKSiH89SGcKeGzF7b-h1vxIlGi0EB7U3WWXahsTeSkjQGXs24>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeiudduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghr
    ughovgdrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdroh
    hrgh
X-ME-Proxy: <xmx:x7wxaYCoyk1Li_T0xNbDxsFLCNE-vJX7BZh3pwr1GmI1A5b0pbdGAQ>
    <xmx:x7wxaT_07TU6HosYlYF_qcku0EwvjW6QsxCJJk0jiwJDHiPYIeIV3g>
    <xmx:x7wxabLma9qkgtN7L5Jj-IUC1cQ3kXDQmg-Ary4qMbN7-lBX19F7jQ>
    <xmx:x7wxaUg5OIF0zaMFg6_eDEnqiT7cbwPBCyxrFJzwEHIFD96daITI9A>
    <xmx:yLwxaZYC5-R5aFVjAHMvhIriP4j-JXQ1AsbKeOrbZZG1ocyy9XEBXPD_>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 4/4] CI: Run driver domains test on Debian too
Date: Thu,  4 Dec 2025 17:53:51 +0100
Message-ID: <03a3f35f32af69e1f37cdb40d8e667b393a90075.1764867217.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <cover.1e7327573686b6fc1e161127e268e4042556d16e.1764867217.git-series.marmarek@invisiblethingslab.com>
References: <cover.1e7327573686b6fc1e161127e268e4042556d16e.1764867217.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The recent failure affected only glibc-based systems, so do the test on
Debian too.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Changes in v3:
- update to trixie
Changes in v2:
- use systemd in Debian
---
 automation/build/debian/13-x86_64.dockerfile    |  1 +-
 automation/gitlab-ci/test.yaml                  | 19 ++++++++++++++++++-
 automation/scripts/qemu-driverdomains-x86_64.sh | 18 +++++++++++++++--
 3 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/automation/build/debian/13-x86_64.dockerfile b/automation/build/debian/13-x86_64.dockerfile
index 9387da453fea..d0b7b8fe69d1 100644
--- a/automation/build/debian/13-x86_64.dockerfile
+++ b/automation/build/debian/13-x86_64.dockerfile
@@ -61,6 +61,7 @@ RUN <<EOF
         fakeroot
         ovmf
         qemu-system-x86
+        systemctl
 
         # for build-each-commit-gcc
         ccache
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 52ffb271951a..292e5ddb8de5 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -30,6 +30,17 @@
     job: microcode-x86
     ref: master
 
+.debian-x86-64-test-needs: &debian-x86-64-test-needs
+  - project: xen-project/hardware/test-artifacts
+    job: linux-6.6.56-x86_64
+    ref: master
+  - project: xen-project/hardware/test-artifacts
+    job: debian-13-x86_64-rootfs
+    ref: master
+  - project: xen-project/hardware/test-artifacts
+    job: microcode-x86
+    ref: master
+
 .qemu-arm64:
   extends: .test-jobs-common
   variables:
@@ -664,6 +675,14 @@ qemu-alpine-driverdomains-x86_64-gcc:
     - *x86-64-test-needs
     - alpine-3.22-gcc
 
+qemu-debian-13-driverdomains-x86_64-gcc:
+  extends: .qemu-x86-64
+  script:
+    - ./automation/scripts/qemu-driverdomains-x86_64.sh 2>&1 | tee ${LOGFILE}
+  needs:
+    - *debian-x86-64-test-needs
+    - debian-13-x86_64-gcc-debug
+
 qemu-smoke-x86-64-gcc:
   extends: .qemu-smoke-x86-64
   script:
diff --git a/automation/scripts/qemu-driverdomains-x86_64.sh b/automation/scripts/qemu-driverdomains-x86_64.sh
index c0241da54168..6a69282470ca 100755
--- a/automation/scripts/qemu-driverdomains-x86_64.sh
+++ b/automation/scripts/qemu-driverdomains-x86_64.sh
@@ -23,7 +23,11 @@ if grep -q test=backend /proc/cmdline; then
     brctl addbr xenbr0
     ip link set xenbr0 up
     ip addr add 192.168.0.1/24 dev xenbr0
-    bash /etc/init.d/xendriverdomain start
+    if [ -d /run/systemd ]; then
+        systemctl start xendriverdomain
+    else
+        bash /etc/init.d/xendriverdomain start
+    fi
     # log backend-related logs to the console
     tail -F /var/log/xen/xldevd.log /var/log/xen/xen-hotplug.log >>/dev/console 2>/dev/null &
 else
@@ -85,7 +89,11 @@ cat > etc/local.d/xen.start << EOF
 
 set -x
 
-bash /etc/init.d/xencommons start
+if [ -d /run/systemd ]; then
+    systemctl start xen-init-dom0.service
+else
+    bash /etc/init.d/xencommons start
+fi
 
 xl list
 
@@ -102,6 +110,12 @@ cp ../bzImage ./root/
 mkdir -p etc/default
 echo 'XENCONSOLED_TRACE=all' >> etc/default/xencommons
 mkdir -p var/log/xen/console
+if [ -e etc/systemd/system.conf ]; then
+    systemctl --root=. enable \
+        xenstored.service \
+        xenconsoled.service \
+        xen-init-dom0.service
+fi
 fakeroot -i ../fakeroot-save mkfs.ext4 -d . ../dom0-rootfs.img 2048M
 cd ..
 rm -rf rootfs
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 17:51:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 17:51:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178186.1502118 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRDUB-0002pA-MO; Thu, 04 Dec 2025 17:51:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178186.1502118; Thu, 04 Dec 2025 17:51:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRDUB-0002p3-Iq; Thu, 04 Dec 2025 17:51:23 +0000
Received: by outflank-mailman (input) for mailman id 1178186;
 Thu, 04 Dec 2025 17:51:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EMpe=6K=epam.com=Oleksandr_Tyshchenko@srs-se1.protection.inumbo.net>)
 id 1vRDU9-0002ox-JG
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 17:51:21 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cf81afd7-d139-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 18:51:07 +0100 (CET)
Received: from AM4PR03MB11152.eurprd03.prod.outlook.com
 (2603:10a6:20b:6cc::22) by AM9PR03MB7709.eurprd03.prod.outlook.com
 (2603:10a6:20b:41e::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Thu, 4 Dec
 2025 17:51:05 +0000
Received: from AM4PR03MB11152.eurprd03.prod.outlook.com
 ([fe80::ef31:b87:b7b4:ddbb]) by AM4PR03MB11152.eurprd03.prod.outlook.com
 ([fe80::ef31:b87:b7b4:ddbb%4]) with mapi id 15.20.9388.003; Thu, 4 Dec 2025
 17:51:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cf81afd7-d139-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OZW9RwTlkk+FazRYRYGw8Ceh24TpGa4Xx82W6H4QdiAdyyXYsMBlNJWy3V09sMIJJW1Ui1SYyTqAehcQw+mDx9sQ/VXT+oQ5XlRKSYNU95GAYBbC5uEL4b/P7tet22qnPS+ZyS/Q7gE9JxxzRBVrlKFspnvoMXcut0aANtSJWfl36ImuQx9gPCD5XtJa10V+BkRyf7pRLr+y5ELjXWJshlrZSI0FZe4DrUabl2wmHogcRzOk+0eJOHvoSj3vMEsEtc0jPmmudqY4sFW694E9s5cJIVOX5lyyhTFyiablTWm4az6hbZBWAhBTM5+6n7t/+FAhIPQp3IslyI7053UmZQ==
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=DPbDwkDubmu2voFO8+QmP1lfF+b74FypW+28E0qWUjA=;
 b=He+eH497bnT0d7me+zBSfouxNYytZSeBljV+K2xaxsNyjy3ME8cXKbsFzxez7EB9yYoZGmFNrCihxc1NoMF4Ra+Vp8nELzFbkR99kec26tGxiaSCRpOW2Jd6UjCtk4OEb8zJf8hqxvTFKK/aWiRi4xGdIFXh7fs/zuNiqbu1Je5sE2rFirFWb4VtrQQ61DdTdOeD9mjoXMRY4SOtkwuDts+TAPgMqhSDcRLIGHk2pM93AYJd+QAV3PlTr4M2QrrSwrvuBmi5U0vNh1qnYwN3/RjB/LqFitnj00lBfh2X+7uFSvVf4S/86ERm29943irbXWGuHBmYzXToOWS3Th9nkg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DPbDwkDubmu2voFO8+QmP1lfF+b74FypW+28E0qWUjA=;
 b=icPJUkpKfdX7FfVAS78T/UDP2RrGkyZz0zGYOmxNDLHJKdqyAd9Y0jkpV8Ba0NfTolgqMTfuHaA+lBRBqLPaPA8GlYxHcHpWXgXkC4Vm2arQ9sqqRl7YELBPSwOj/bhHpl6AwZkapVPEEK+z0Om0LBM5PZZyc+kZ2KR1YRySNx+y8mVdlIgy+uE/8KojbYYoZQMHuJ2Z0eBno/wruqeo0LMlUjbsQDbwedtKx1rNCF2q7T1oStlgD05+keWYyJQO+CJ9xOZV3yRo7bKKaBII2I0w1WgSb6xQaJMsl7bVW+7xJIX3j3eja5LwWT1HElcikV1WJhH9cjXndDfNBW/Emg==
From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
To: Julien Grall <julien@xen.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH V2] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
Thread-Topic: [PATCH V2] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
Thread-Index: AQHcZIbKZWHMCLfhnk2g+3dibmJCCbUQaX2AgAAU4YCAAQsygIAAOnwA
Date: Thu, 4 Dec 2025 17:51:04 +0000
Message-ID: <a5665ba4-165a-4a07-96a1-8dbb7125a52e@epam.com>
References: <20251203185817.3722903-1-oleksandr_tyshchenko@epam.com>
 <6e83d3bc-c49c-49f4-9dbd-e994e53a62a7@xen.org>
 <44f6cb05-33c3-4937-b508-7616c36d0e4d@epam.com>
 <42990627-9764-4a86-924b-3723cc493da9@xen.org>
In-Reply-To: <42990627-9764-4a86-924b-3723cc493da9@xen.org>
Accept-Language: en-US, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM4PR03MB11152:EE_|AM9PR03MB7709:EE_
x-ms-office365-filtering-correlation-id: 34f8b831-84e9-4214-8bb7-08de335db209
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|366016|42112799006|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?VmZlYWw5RWY1WjkzbW83ZjJmamJzMTA5UDZKUkM0OW1UZjF5K2pMVm1wM0cr?=
 =?utf-8?B?bXVUQnFNaW9NdnF4OE0zditXTmJYM3BhNDdnVTlrNXYwZXFlOTU1NFBlZTZs?=
 =?utf-8?B?YUJDZGNRSEQyWlBIeVg2c1FYdmVybU5WTG9sbUs0c0kxZmtnTDRUaGFuUGN6?=
 =?utf-8?B?eVM1dFhBc1BoQTA2U3o5T0JTTTVoNzIzeTI1RkFnNy9abW1scGJzM2dDaTFh?=
 =?utf-8?B?TXB5SDd5U2tYc3R1UjZrVCs5eTZBWWJRdUVPQVdOeXJZQittKzdrQ0VYWjlP?=
 =?utf-8?B?OHBlY2FpcUNLRkRjOUlQeFVkTWx6QjNjZ3V2OUdRU0FqNWMrU0pzUmVXV3Vz?=
 =?utf-8?B?UEJUZnJOcmZqbTNxVEVQSko5Zm5kMUloKytmdDhRZ0Q2UGhkU2FrLzNRRWpX?=
 =?utf-8?B?Vi9jcjRNS29vVC9sUzlYV1hWVVY3S1V1blBLOXIwSmU3a1JDTGI4ZUxUN1pn?=
 =?utf-8?B?OFZ6Vm9TM2xLZFhGNGVEWEhvdmVCZkRTZUlab0xhcFlyMHpxckJNeEEzZjQx?=
 =?utf-8?B?d0dsNlRKdERhU2E0MkNCeUxwN1JsSFB6TmY5cDRPWVhWQWNtYjBFeHpBZVVh?=
 =?utf-8?B?Z01WNnRyajlHRVlETUFEUURLVVlXcWpUTjYyUG5nbUJPcnZFdWpWbGs0Q1c1?=
 =?utf-8?B?djkzRkFKc2lYTzJUWFVlcmhad0dmOGhyQ25aUFFNc3BXSUIwYklUTzVPNUFX?=
 =?utf-8?B?YXFUamRGT3RuRW9ZT1VlTFoyRHV4dFBPQkFEQURFT3hnTWlpVm1GcHRUQ1hh?=
 =?utf-8?B?blF3OGpDR2Jwa3plZllIMmt4STB1R1luQnRQdnJBNCtncnl5VlQ5WEFJN3E0?=
 =?utf-8?B?Y3JXT2dWeDIyTkZQK09pNmsxUkMxRFNvQkxvYVMwdVlVc1RYZmVod3c3TGtE?=
 =?utf-8?B?UHFaTm9jd1JIYVlVcjlRZmJkZGQyKy9Kd1BjSkgyNHJScmNVN0lpT1FUVWtS?=
 =?utf-8?B?U0FKVVZqMlJBakFXM3FQb3dydmJBN04vS0FvdGJPS0NmaW5icjFQMFZXU0hX?=
 =?utf-8?B?aWhaR25EdXY5cXlaMVVzRXVESE9KZUo1VU1SM20zOFhUT24reTF4SEtSTXNI?=
 =?utf-8?B?cGg4dndVcUFuWUhnQlptWWlvOHhnM3pjUXJCV2FlU0dYcUE2bDRvbTZEZ05N?=
 =?utf-8?B?OHQwSTlJSkhsbWpHblVUZkE0bGZ0cHFuZUtLYnZaK0xzTFVkMGsvdFQ5M1M3?=
 =?utf-8?B?M1ZwNXQwaWI0MGEyVWFBdE1Oa1BlRWMyTUwydkx4bDBmajlIcDlQczg0U0tx?=
 =?utf-8?B?cXNTa0x4cnhnWTliMmRIc2pjZllCNTRRcEVCL0JSbTcvNm5aQ3picFoxTWxi?=
 =?utf-8?B?RndvSVdDeFlMbDB1UVZPeGtQVC9VOWQxVHpIdHdNN2UyZk8rV1dUUC96MzhO?=
 =?utf-8?B?SG11YVBPYkt4WGFuNXAzNlJ6TmJic1dyY0VSVjMwZmhUaVpWRlltbG40bnVz?=
 =?utf-8?B?dGdXYkpxZVRVbWY0cW9wU0hCTjJ1ZmUyS3cxK0x1MUhWcVVObXp4VUYvMnpj?=
 =?utf-8?B?dzlSNmg3TTZwblphaE5CQ1o3NG5CbHE4b3l1NFJtaE1uRnVmekVDZFZUWFFp?=
 =?utf-8?B?MGhBbDJqRnlWSnp1Q2xVTjRNRjduYkVCdFB4RWNMd3pwS3RlSlJlVHlMM01L?=
 =?utf-8?B?bExqZTZiTEE1ZG1VTG5wM3JWNzJCRGNibWc0RlNheWFMbGh0UmZBTnJPMXhB?=
 =?utf-8?B?MFVHdnpRdzZvT3BmRWlneGRxc1NyUE5SU2lBMTdtYU1kcmNCVFZlRHl5Q2dB?=
 =?utf-8?B?RFdUbVlBMHpsUTBZTlFPWTVqUFZ0UGsvbmk5bEY3OUVSMTFERjhkTjdQOEkx?=
 =?utf-8?B?UVh2b1J2RzE1ZTdLUDdnTG8rZHBHTzBMWjJoM0duUDRyYTVCaS9PWHhJYnpM?=
 =?utf-8?B?cE0yMlo0eEt0WmNycmovbm9tcVliTm4xcU13d1hMUHAwZUVzODlUSTM3ODhB?=
 =?utf-8?B?ZGV3VWMvSGFJQ1NUUDlWTUFYVVlZbHkrVCtUMEZMdGh4VWMvKzlWWUVyUnVL?=
 =?utf-8?B?V3ZsWktOaXlRPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM4PR03MB11152.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(42112799006)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Ujhsd1VyTG10Q2FkSi9leDdxbnRuL2hZaXNMdUErbjB3eVhtVXp0NlF1aEJP?=
 =?utf-8?B?MnRCeEREbk1NM0FobHBRcnhQNmhhZmZ2R1MxVVJWNUkxL3l5bTVjL2ZLZHp6?=
 =?utf-8?B?bUNYYUhGbnVlS3o0K2Q2b0xrUDFjRnJreVp3TCsxNytPMEYvMHhLL1JZSVNR?=
 =?utf-8?B?c0J6ZnN2K3dpWnVPMzZldjQ0b1kwWmRYWVRZbmVOL2RRWWdFelk4V0ZheVVn?=
 =?utf-8?B?Um9VeG9xL3FKNE5OcWR1OXM1ZWZyNDJjUEFjZFFMSlIzbE9va0Fab1FsTE83?=
 =?utf-8?B?ZytMUzUzQmg0bk1BN3ZhTDZZQmhNS3NYVlVmWUtSNHFQTW1lVTNMNm9PUVZS?=
 =?utf-8?B?aUNHWXY4c3dxdFIzMnhJOTVVQ3RtR2gydnNGZGxQelovTnE5dis2M2Q0bG1X?=
 =?utf-8?B?VjZhZTg2RDg0QlVTV1VWOVB3VWZUVjF1QUhtRlV2OXlIcFJQeTRhVFdmazJK?=
 =?utf-8?B?aGI5TEZCVlJIMit6eGlCNFRuS0VvRDRuaWZsTTlWeTltWUdoUU1rTWwrYVhQ?=
 =?utf-8?B?cnNPeU0vdUZKcFFUeVF1NDNzSlM4UkxtTldVM3RIZWRwNnJVZG50NzRxSkFD?=
 =?utf-8?B?eEpZZFhYOHFuQ1hQTytpVlVtbnhKUzUwWFBZK3Y3YkhSQ0JrVFZVdnVtWlg0?=
 =?utf-8?B?RDZEQWZKWjdnVkRqU0ZUL1lMVmdwRTlKODR3TVV4RW15SysvTk5TZmtuK1JP?=
 =?utf-8?B?cUdqZ24rYVM3c0xjNzRJT0doRkwvQ09MTFM1aXVOdEx6ck94b2ZDWmEzQlRm?=
 =?utf-8?B?VHlrOUVUZEZudTEwQ21QQkdUOFk3RjR6RitCYjNzV25CakxLZFZGSXZkQnhF?=
 =?utf-8?B?QStPejdHVjVBaWszTXZyamlicHh0dURTUnRPQUpIRHphVmhEV0dralFscUc4?=
 =?utf-8?B?R0VtTkZpaUJrUldYNHdITEVPbGZCVGtYREdiTVBETEVCdi9ZTTExR1BuWkhD?=
 =?utf-8?B?bmhJd1pYVUMxMUpYSzUveTczMFNQNnFBbEw4eldBb0FZOW5CU3h1OWRVT3BV?=
 =?utf-8?B?eXJhQnUzZjBIekpvbjJYcU9ENzdmNDd6cXk1RDRGUHNrQ1pNZS93Lzl6Z1da?=
 =?utf-8?B?TG1mc3VxSU55enVPTnBIN2xqdmlVaFRSTUxxUkJLNU8rZW5hTituUW9TbHAx?=
 =?utf-8?B?RitnZkVQbExJdlJGdUl3dnZyWE9LMkpQTXV6c0t3NGRHOEdtOGE2Vi9CQmRa?=
 =?utf-8?B?bldxM0tSTnd3a0FyYU1RT1hwSDNYUUhuUGRNMWNqSkpmZWJHNXdKOG1HclNv?=
 =?utf-8?B?WXJPTnI4bHc0Y3RsUWIvalBtSEY0VkNnaTlzK2N4SFVqemZCUkVjQll5SFBl?=
 =?utf-8?B?QW9Vdjl6WUJvZkFIWHErcXFkcm83UksydGovenh5WDFwMURnUS9EQ01tNWxk?=
 =?utf-8?B?ZEFZV0ltSGtxaCt3UnZEMFFsSnFNODEyZklUYVRZTndxVjhFUXM1ekxZQUYw?=
 =?utf-8?B?QUVpTWVUUWVtbk5YSlZaQ24zNjRaZXBRTys3cFdpd2FXazMyU05YOEpjNGhH?=
 =?utf-8?B?Z0FXRVNBb2JYT3ZSQTNOK3dWZG9OcEVJZ3N3RVhZVlNNcmZERlZyMnBrZUxG?=
 =?utf-8?B?VytYWHJPeWlraVBvMDBjTHZvVndUK1ZRMDgwdjIzdGtWdVVJZWd5blcyRm5W?=
 =?utf-8?B?LzkzREhFQjlkdjVvZ2Y1K0J2cnVZZU1vUEQxUnB5aGROSXkvdUJRVW5hcUVV?=
 =?utf-8?B?OWxrYkFhb2RkMGxFZjdwZVBlT05TYTc0SWNyakxPUmMyQnJ2NFpNaDM0Um5v?=
 =?utf-8?B?SmswMzhZdEVMU1NPTWJqR0dmQXZ3Z0Izd0FpTHRJN1BjcDRDaU9FRkdwU3hx?=
 =?utf-8?B?SzcxR3YyeEtSV1JrdDN0cGRSY0JEMEtyT2ZTcFRNcDJLemw0OU9rOVZMVlR1?=
 =?utf-8?B?YXR4S3RObnMvRWFReW1hWFdTTTk5cEJyUVBmaHlDSzZUanF4YmhEdFg2dGIr?=
 =?utf-8?B?b0F4K3R5enBFd2lCZGNCSHhlMjVTYk5KMlBldVJwL2UvTVZLeU9yTVd0aXI5?=
 =?utf-8?B?QnVtV1NjOFVIeE1hS0s3Y0kvQ1hwcE5ibzRCV01qSU5Mc0QzbC9DSVdNZWR2?=
 =?utf-8?B?Z3o5WGIvL0lVOUFyV2x3V0o1T0QyUkhHT2pDTVZUZ01mbXBVUFlZVmdxYWgw?=
 =?utf-8?B?dkUxQzBQZ2h4aUhCTzdMcXM1RXZITlFTY0h0cGVrZ1lBWnNTeWV5dkpkbzMw?=
 =?utf-8?Q?d1quLarRLqHg6bnh6mBDUS0=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <558991E1E3C60E469F6AE9D588D0EDD7@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM4PR03MB11152.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 34f8b831-84e9-4214-8bb7-08de335db209
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Dec 2025 17:51:04.4804
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: WKgLwCYImFd31T6WEWPqDSxJMyezoi5C/2cAr5pHe3S1GiBEI0F/DUZVZlKoaSKkPtpWyKKiKkZN5iHswHzcyLlXVSflClYAoSvAITyWYws=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7709

DQoNCk9uIDA0LjEyLjI1IDE2OjIxLCBKdWxpZW4gR3JhbGwgd3JvdGU6DQoNCkhlbGxvIEp1bGll
bg0KDQo+IA0KPiANCj4gT24gMDMvMTIvMjAyNSAyMjoyNSwgT2xla3NhbmRyIFR5c2hjaGVua28g
d3JvdGU6DQo+Pg0KPj4NCj4+IE9uIDAzLjEyLjI1IDIzOjEwLCBKdWxpZW4gR3JhbGwgd3JvdGU6
DQo+Pj4gSGksDQo+Pg0KPj4gSGVsbG8gSnVsaWVuDQo+Pg0KPj4+DQo+Pj4gT24gMDMvMTIvMjAy
NSAxODo1OCwgT2xla3NhbmRyIFR5c2hjaGVua28gd3JvdGU6DQo+Pj4+IENyZWF0aW5nIGEgZG9t
MGxlc3MgZ3Vlc3Qgd2l0aCBhIGhpZ2ggdkNQVSBjb3VudCAoZS5nLiwgPjMyKSBmYWlscw0KPj4+
PiBiZWNhdXNlIHRoZSBmaXhlZCA0S2lCIGRldmljZSB0cmVlIGJ1ZmZlciAoRE9NVV9EVEJfU0la
RSkgb3ZlcmZsb3dzDQo+Pj4+IGR1cmluZyBjcmVhdGlvbi4NCj4+Pj4NCj4+Pj4gVGhlIEZEVCBu
b2RlcyBmb3IgZWFjaCB2Q1BVIGFyZSB0aGUgcHJpbWFyeSBjb25zdW1lciBvZiBzcGFjZSwNCj4+
Pj4gYW5kIHRoZSBwcmV2aW91cyBmaXhlZC1zaXplIGJ1ZmZlciB3YXMgaW5zdWZmaWNpZW50Lg0K
Pj4+Pg0KPj4+PiBUaGlzIHBhdGNoIHJlcGxhY2VzIHRoZSBmaXhlZCBzaXplIHdpdGggYSBmb3Jt
dWxhIHRoYXQgY2FsY3VsYXRlcw0KPj4+PiB0aGUgcmVxdWlyZWQgYnVmZmVyIHNpemUgYmFzZWQg
b24gYSBmaXhlZCBiYXNlbGluZSBwbHVzIGEgc2NhbGFibGUNCj4+Pj4gcG9ydGlvbiBmb3IgZWFj
aCBwb3RlbnRpYWwgdkNQVSB1cCB0byB0aGUgTUFYX1ZJUlRfQ1BVUyBsaW1pdC4NCj4+Pj4NCj4+
Pj4gU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5kcl90eXNoY2hl
bmtvQGVwYW0uY29tPg0KPj4+PiAtLS0NCj4+Pj4gVjE6IGh0dHBzOi8vZXVyMDEuc2FmZWxpbmtz
LnByb3RlY3Rpb24ub3V0bG9vay5jb20vPw0KPj4+PiB1cmw9aHR0cHMlM0ElMkYlMkZwYXRjaGV3
Lm9yZyUyRlhlbiUyRjIwMjUxMjAyMTkzMjQ2LjMzNTc4MjEtMS0NCj4+Pj4gb2xla3NhbmRyLl81
RnR5c2hjaGVua28lNDBlcGFtLmNvbSUyRiZkYXRhPTA1JTdDMDIlN0NPbGVrc2FuZHJfVHlzaGNo
ZW5rbyU0MGVwYW0uY29tJTdDNTdiZjc3MTFhYzQ3NDdkZTNkMmYwOGRlMzJiMDY5Y2UlN0NiNDFi
NzJkMDRlOWY0YzI2OGE2OWY5NDlmMzY3YzkxZCU3QzElN0MwJTdDNjM5MDAzOTMwNDQzOTcwNjM5
JTdDVW5rbm93biU3Q1RXRnBiR1pzYjNkOGV5SkZiWEIwZVUxaGNHa2lPblJ5ZFdVc0lsWWlPaUl3
TGpBdU1EQXdNQ0lzSWxBaU9pSlhhVzR6TWlJc0lrRk9Jam9pVFdGcGJDSXNJbGRVSWpveWZRJTNE
JTNEJTdDMCU3QyU3QyU3QyZzZGF0YT11NnBwMzklMkZWdG8ydlU3SHA1YVhsNDZWRjR6RHZEOEM3
OVhwMDliYm93UzQlM0QmcmVzZXJ2ZWQ9MA0KPj4+Pg0KPj4+PiDCoMKgwqAgVjI6DQo+Pj4+IMKg
wqDCoMKgIC0gdXBkYXRlIGNvbW1pdCBzdWJqL2Rlc2MNCj4+Pj4gwqDCoMKgwqAgLSB1c2UgYSBm
b3JtdWxhIHRoYXQgYWNjb3VudHMgTUFYX1ZJUlRfQ1BVUw0KPj4+PiDCoMKgwqDCoCAtIGFkZCBC
VUlMRF9CVUdfT04NCj4+Pj4gLS0tDQo+Pj4+IC0tLQ0KPj4+PiDCoMKgIHhlbi9jb21tb24vZGV2
aWNlLXRyZWUvZG9tMGxlc3MtYnVpbGQuYyB8IDE2ICsrKysrKysrKysrKystLS0NCj4+Pj4gwqDC
oCAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCj4+Pj4N
Cj4+Pj4gZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZGV2aWNlLXRyZWUvZG9tMGxlc3MtYnVpbGQu
YyBiL3hlbi9jb21tb24vDQo+Pj4+IGRldmljZS10cmVlL2RvbTBsZXNzLWJ1aWxkLmMNCj4+Pj4g
aW5kZXggM2Y1Yjk4N2VkOC4uMzhhNTgzMDgxMyAxMDA2NDQNCj4+Pj4gLS0tIGEveGVuL2NvbW1v
bi9kZXZpY2UtdHJlZS9kb20wbGVzcy1idWlsZC5jDQo+Pj4+ICsrKyBiL3hlbi9jb21tb24vZGV2
aWNlLXRyZWUvZG9tMGxlc3MtYnVpbGQuYw0KPj4+PiBAQCAtNDYxLDE1ICs0NjEsMjUgQEAgc3Rh
dGljIGludCBfX2luaXQNCj4+Pj4gZG9tYWluX2hhbmRsZV9kdGJfYm9vdF9tb2R1bGUoc3RydWN0
IGRvbWFpbiAqZCwNCj4+Pj4gwqDCoCAvKg0KPj4+PiDCoMKgwqAgKiBUaGUgbWF4IHNpemUgZm9y
IERUIGlzIDJNQi4gSG93ZXZlciwgdGhlIGdlbmVyYXRlZCBEVCBpcyBzbWFsbA0KPj4+PiAobm90
IGluY2x1ZGluZw0KPj4+PiAtICogZG9tVSBwYXNzdGhyb3VnaCBEVCBub2RlcyB3aG9zZSBzaXpl
IHdlIGFjY291bnQgc2VwYXJhdGVseSksIDRLQg0KPj4+PiBhcmUgZW5vdWdoDQo+Pj4+IC0gKiBm
b3Igbm93LCBidXQgd2UgbWlnaHQgaGF2ZSB0byBpbmNyZWFzZSBpdCBpbiB0aGUgZnV0dXJlLg0K
Pj4+PiArICogZG9tVSBwYXNzdGhyb3VnaCBEVCBub2RlcyB3aG9zZSBzaXplIHdlIGFjY291bnQg
c2VwYXJhdGVseSkuIFRoZQ0KPj4+PiBzaXplIGlzDQo+Pj4+ICsgKiBjYWxjdWxhdGVkIGZyb20g
YSBmaXhlZCBiYXNlbGluZSBwbHVzIGEgc2NhbGFibGUgcG9ydGlvbiBmb3IgZWFjaA0KPj4+PiBw
b3RlbnRpYWwNCj4+Pj4gKyAqIHZDUFUgbm9kZSB1cCB0byB0aGUgc3lzdGVtIGxpbWl0IChNQVhf
VklSVF9DUFVTKSwgYXMgdGhlIHZDUFUNCj4+Pj4gbm9kZXMgYXJlDQo+Pj4+ICsgKiB0aGUgcHJp
bWFyeSBjb25zdW1lciBvZiBzcGFjZS4NCj4+Pj4gKyAqDQo+Pj4+ICsgKiBUaGUgYmFzZWxpbmUg
b2YgMktpQiBpcyBhIHNhZmUgYnVmZmVyIGZvciBhbGwgbm9uLXZDUFUgRkRUIGNvbnRlbnQuDQo+
Pj4NCj4+PiBXaGF0IGlmIHRoZSB1c2UgZGVjaWRlcyB0byBwYXNzIGEgRFRCIGZyYWdtZW50PyBI
b3cgZG8gd2Uga25vdyB0aGlzIHdpbGwNCj4+PiBmaXQgaW4gdGhlIDJLaUI/DQo+Pg0KPj4gSWYg
YSBwYXJ0aWFsIGRldmljZSB0cmVlIGlzIHByb3ZpZGVkIHRoZW4gaXQgd2lsbCBiZSBhY2NvdW50
ZWQNCj4+IHNlcGFyYXRlbHkuIFRoZXJlIGlzIGEgY29kZSwgbm9uLXZpc2libGUgaXMgdGhlIGNv
bnRleHQsIHNvIEkgdGhpbmssIHdlDQo+PiBhcmUgZ29vZCBoZXJlLg0KPiANCj4gQWggeWVzISBJ
IG1pc3NlZCB0aGF0IGNvZGUuIFNvcnJ5IGZvciB0aGUgbm9pc2UuDQo+IA0KPj4NCj4+DQo+Pj4N
Cj4+Pj4gKyAqIEVtcGlyaWNhbCB0ZXN0aW5nIHdpdGggdGhlIG1heGltdW0gbnVtYmVyIG9mIG90
aGVyIGRldmljZSB0cmVlDQo+Pj4+IG5vZGVzIHNob3dzDQo+Pj4+ICsgKiBhIGZpbmFsIGNvbXBh
Y3RlZCBiYXNlIHNpemUgb2YgfjEuNUtpQi4gVGhlIDEyOCBieXRlcyBwZXIgdkNQVSBpcw0KPj4+
PiBkZXJpdmVkDQo+Pj4+ICsgKiBmcm9tIGEgd29yc3QtY2FzZSBhbmFseXNpcyBvZiB0aGUgRkRU
IGNvbnN0cnVjdGlvbi10aW1lIHNpemUgZm9yIGENCj4+Pj4gc2luZ2xlDQo+Pj4+ICsgKiB2Q1BV
IG5vZGUuDQo+Pj4NCj4+PiBGb3IgaW4tY29kZSBkb2N1bWVudGF0aW9uLCB0aGlzIGlzIG9rIHRv
IGp1c3QgcHJvdmlkZSBzb21lIG51bWJlcnMuIEJ1dA0KPj4+IHRoaXMgbmVlZHMgYSBiaXQgbW9y
ZSBkZXRhaWxzIGluIHRoZSBjb21taXQgbWVzc2FnZSB3aXRoIHRoZSBleGFjdCB0ZXN0cw0KPj4+
IHlvdSBkaWQuIFRoaXMgd291bGQgYmUgaGVscGZ1bCBpZiB3ZSBldmVyIG5lZWQgdG8gY2hhbmdl
IHRoZSBzaXplIChmb3INCj4+PiBpbnN0YW5jZSB3ZSBjb3VsZCBoYXZlIGV4dHJhIGVtdWxhdGVk
IGRldmljZXMgb3Igd2UgbmVlZCBhbm90aGVyDQo+Pj4gcHJvcGVydHkgcGVyIENQVSkuDQo+Pg0K
Pj4gb2ssIEkgd2lsbCBhZGQgbXkgdGVzdGluZyBkZXRhaWxzIGludG8gdGhlIGNvbW1pdCBkZXNj
cmlwdGlvbi4NCj4+DQo+Pj4NCj4+Pj4gwqDCoMKgICovDQo+Pj4+IC0jZGVmaW5lIERPTVVfRFRC
X1NJWkUgNDA5Ng0KPj4+PiArI2RlZmluZSBET01VX0RUQl9TSVpFICgyMDQ4ICsgKE1BWF9WSVJU
X0NQVVMgKiAxMjgpKQ0KPj4+DQo+Pj4gT24gQXJtMzIsIE1BWF9WSVJUX0NQVVMgaXMgOC4gVGhp
cyBtZWFucyB0aGUgbmV3IERPTVVfRFRCX1NJWkUgaXMgZ29pbmcNCj4+PiB0byBiZSBzbWFsbGVy
IHRoYW4gNDA5Ni4gV2h5IGlzIGl0IG9rPw0KPj4NCj4+IFlvdSBhcmUgY29ycmVjdCB0byBxdWVz
dGlvbiB0aGUgaW1wYWN0IG9uIEFybTMyLCB3aGVyZSBNQVhfVklSVF9DUFVTIGlzDQo+PiBzbWFs
bGVyLCBsZWFkaW5nIHRvIGEgY2FsY3VsYXRlZCBidWZmZXIgc2l6ZSBvZiAzMDcyIGJ5dGVzLCB3
aGljaCBpcw0KPj4gbGVzcyB0aGFuIHRoZSBvcmlnaW5hbCA0MDk2IGJ5dGVzLg0KPj4NCj4+IFVu
Zm9ydHVuYXRlbHksIEkgaGF2ZSBubyBwb3NzaWJpbGl0eSB0byB0ZXN0IG9uIEFybTMyLiBCdXQs
IEkgZG8gbm90IHNlZQ0KPj4gbXVjaCBkaWZmZXJlbmNlIGJldHdlZW4gQXJtNjQgYW5kIEFybTMy
IGluIHRoZSBjb250ZXh0IG9mIERvbVUgZGV2aWNlDQo+PiB0cmVlIGdlbmVyYXRpb24gYnkgbG9v
a2luZyBpbnRvIHRoZSBjb2RlLg0KPj4NCj4+IEkgc2ltdWxhdGVkIHRoaXMgZXhhY3QgZW52aXJv
bm1lbnQgb24gbXkgQXJtNjQgc2V0dXAgdG8gdmFsaWRhdGUgdGhhdA0KPj4gdGhlIG5ldyBzaXpl
IHJlbWFpbnMgc3VmZmljaWVudC4gVG8gZG8gdGhpcywgSSB0ZW1wb3JhcmlseSBzd2l0Y2hlZA0K
Pj4gTUFYX1ZJUlRfQ1BVUyB0byA4IGFuZCByYW4gdGVzdHMgd2l0aCAxIGFuZCA4IHZDUFVzLg0K
PiANCj4gVGhhbmtzIGZvciBkb2luZyB0aGF0ISBJIGFsc28gc2VlIEx1Y2EgaXMgZ29pbmcgdG8g
aGVscC4gSWYgaGUgYWxzbyANCj4gY29uZmlybXMgdGhlIHNpemUgaXMgZ29vZCB0aGVuIGNhbiB5
b3UgbWVudGlvbiB0aGUgY2hhbmdlIGZvciBBcm0gMzItYml0Pw0KDQoNClllcywgc3VyZQ0KDQo+
IA0KPiBDaGVlcnMsDQo+IA0K


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 18:40:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 18:40:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178197.1502128 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vREFB-0008QL-5M; Thu, 04 Dec 2025 18:39:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178197.1502128; Thu, 04 Dec 2025 18:39:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vREFB-0008QE-24; Thu, 04 Dec 2025 18:39:57 +0000
Received: by outflank-mailman (input) for mailman id 1178197;
 Thu, 04 Dec 2025 18:39:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GYI0=6K=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vREF9-0008Q8-2B
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 18:39:55 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9f1565e9-d140-11f0-980a-7dc792cee155;
 Thu, 04 Dec 2025 19:39:52 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by AS2PR03MB8794.eurprd03.prod.outlook.com (2603:10a6:20b:551::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Thu, 4 Dec
 2025 18:39:49 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9366.012; Thu, 4 Dec 2025
 18:39:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9f1565e9-d140-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AGSauk4CSgRHgzlo7LaFt/QfIGPRohQ5e3seguG/ACfTQjoLfiEEXxldQKliiqQB/MmyTmB0aMIaGHWCTE9hfqkIgNz8SJz82kamGgZ7WYKgHEum1Mnjwk0SllHUQ5qYEmGIOsW24SqAbMg9KTdKf4KyNxMsQbHDQXVyHZFlNvxydBjYexGJivl0HOYEGAOg92EBGNAvZcRpfIIlIq5PX0sLJR/cbQurW0c3iTt/U0WGifs9AXfRysazd1gZnPOO4tmfr08YZFunssbHXE2bAaXTPjzSbnornyPXkXM5v6ePT4NmU2eCpckiEu5Wv94I8JOCAZwiFwZusOICQ12fkA==
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=RDMfcvz8fLnte1WsCYChgp9m2SH7DImUd7y12a5Nx1I=;
 b=q4LCGCUirxEY6HOc+2umSk6560WC0FkdwoxFltmpaoibEsKrIrX9PvvgyAgG1zr2EXQXl6C7DdA6QYmawPIhWwAU9/CHwH4XiUSodGZeVkmow4oZwSsjZolEUNhtIkOASi1ZAuTlu5497/x+kTUP/khTV+Qo54wVOd1iscbmOfUrOTC3191pG4tCsD06w1xusdyv40vtrEnwxMYAYNw8hmkFNOtKyfhnzcy0gDio5BX9t4L6sHT6XiRvKSDMRnH4xNTOhRDBfLCXcmNHCveLKzvWgb0lqM6jnbo7Bu3mHZBWOGGJYRHRgmyb3eIiGY+j6XFjEEh6WS93vQ5GlJPSIw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RDMfcvz8fLnte1WsCYChgp9m2SH7DImUd7y12a5Nx1I=;
 b=n21s7yjYayCSaIGWR9toWRbvQuV7a2NCcgix9nxIg4LYyJBuLuPAXI80VGE7piiYR5Emh50RNIoFgSLkFGz+Rv5bixTUHfvMDMKK6g6e3jJ0kUT6ISto8HjwAL85ZboTIkLjyqPPd0G89WXZ1GXCN4UV1FYWq8lSuo+Amgz6nRvamZy6EOOJ9lUMREu/7HlVLDSowJl+Su4jeQj1bL1MdAZOKoSftYjkgqKGYFw6fJwYEoKx/b3SuV8nXLrqV80Rm26P0P5aASA+SItP+IxZxLnAb/Kqpaz5PQJgIkqjOULngOLW9Vc2rtdrjUDLucusqHRD2OUtGtkyFEC7+dQ4+w==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <878080cf-933f-4e33-b059-ca6088fc3110@epam.com>
Date: Thu, 4 Dec 2025 20:39:48 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2 3/4] x86: hvm: factor out COMPAT code under ifdefs
To: Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
References: <20251119192916.1009549-1-grygorii_strashko@epam.com>
 <20251119192916.1009549-4-grygorii_strashko@epam.com>
 <88f06355-b49d-4ac1-a7e2-5665d4901618@amd.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <88f06355-b49d-4ac1-a7e2-5665d4901618@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA1P291CA0001.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::12) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|AS2PR03MB8794:EE_
X-MS-Office365-Filtering-Correlation-Id: 6b076912-37c3-4f3d-3ceb-08de33648174
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|7416014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Skh5ZlEyTGgxTlJOZDYwMjZPN2IvbWRHS3FibVZpTlBkSC8vRXR5ZHBxTG9p?=
 =?utf-8?B?a05wNUUwOUdrMkNTZVhnT3h1TG95ekluVndGc1V4ekYyOS9wSDhjclNXcEZ2?=
 =?utf-8?B?K0EyWnY3bmlpOWkreGNsTlY0Z25oeXJoaytlTWhYU09tM3hLMDErbnp6Q1RC?=
 =?utf-8?B?UVVqR3gzbEdpQ24vS1REQ25pbVZQK1JWUjR6ZmxFL0luTGtSZzRhMDJBdE50?=
 =?utf-8?B?MytkS0tidW52aU9RQVNnY1FwcGZ2WWxwOHRqR0xXV2JjR1V3MWs2WDBLWUgy?=
 =?utf-8?B?ZFRXR09vUjh6THByaDN4dTFZVjV5Ykx4bWRPZnAxRDJyTlBqR0dXV2ZwbE9E?=
 =?utf-8?B?TFdjOFJFY2s3Sm55VHlwaTBHQU9ld1JYd1dOK2FLSk1KQ05QSHhUSG4xajNO?=
 =?utf-8?B?ZndTOXFyQ1dWbTJPVjZXemxXRWV6bHZSaVhhWHVBMUs2dmFHVElYM0RISDRh?=
 =?utf-8?B?NTE4MzNYTnZUdEZMN1c4SjFpbVJ0N0JhTkdkUXc5VVMxbkJwd1ZoQkFPT05n?=
 =?utf-8?B?YnJuclhTRk15WjJGL2VPa3MybXFnR1F5MW15TUNORURQUnpaQXJMQVVjbWgw?=
 =?utf-8?B?cFJVVG1hL0JXeFlzc3pnTmpqMzdUKzNHdjRJTCtCK2VQeGh6Mjk3TTd0U2pU?=
 =?utf-8?B?REtOYUtZQlpsOEhlRFpKUHNEZlhCMkpYckVJaitRV1Q1RFZQSDR0WDlMZVBj?=
 =?utf-8?B?UEpWYmszeTZJeTExbVVLLzhReWhHM3VxUXUyb2hRd1ljb3BxWHhZOU1LNGZI?=
 =?utf-8?B?cEt6djludVBhTjdhWm9OSFIwTnVIRGlpNmFSckQzY3poT0c5SjJZRDlObzR5?=
 =?utf-8?B?U3FjdE5TTGk1WktyTTBMbzErb0dkWm9lZ1RPMG1hYy9ZcFc3aVA3dVFzRkxk?=
 =?utf-8?B?MVozTjdPbFVDckliNHdmMVVlekk4Qjh6aHlPQUhIbWs0ZldXRk9rK2VydWdk?=
 =?utf-8?B?QWUzUUh6T1dSODZaS1BpaWRJZEkrWHgxRlo2UUlaaW5HdmlSNzlCc2VXcENk?=
 =?utf-8?B?TjkyNFczcENNQ3ZhTG90NTd5YTRKY2tpTzZrcFNhbXdWVFNSM2dxOS9nOWpM?=
 =?utf-8?B?MC9NbFR0RFc2ZXpITmZ3SUZpUVpjL21ocjVpdUI1VG9UOHVFQ2FIcFZkTy9W?=
 =?utf-8?B?RjRnRlJjMjhUcUg3cjNnQXd1cXJ4ZlVBcW80emdUR3k0elhtcVFMQ1Uyd1l2?=
 =?utf-8?B?VUxWcGNQN0VRWEhMcVJ1ZktsaXEyT055TVR4WGM4S3hDaDdqUS9qcW14L1d5?=
 =?utf-8?B?ODlJblc2UnhqUnBuMGxIM3NPWnJmL0VaNWZ1cDhadkV6S0hkdXNmQkhYN003?=
 =?utf-8?B?K1FpU1FrcittVVB1VzZhVGpBMTFMM3F2NGZWb096TUd2cE8raExnZldzcHFr?=
 =?utf-8?B?SFE0M3I2TlU1R1prZER5M1U3RHRQNG10VXpkRU5CMWgrSm16Y1lXRzdLaGVB?=
 =?utf-8?B?UEdGSGF4MTd4YWQ0KzdFZGx5VFdudU9Ja3l2Q3VUa2I1YmROVHo1ODh4WGhl?=
 =?utf-8?B?c0poRC8xbnh3VFVCYWxTVzVtbHdTUE11R3hKN2l6dWxKNG1uV1VrU2pXdW1j?=
 =?utf-8?B?ZG44SEpTbThWUkpXcWN1dTQ5MlJEaHFCcVA2bjhWNW5SVnlIQkNUT29MdHpG?=
 =?utf-8?B?QnV6SGJnZmw4K21UR0NRQ1dTRU5SK25KQ0tKV01ieDljaFlkRG1Pc0ZIUDlo?=
 =?utf-8?B?bjFZOHZyQ24vdFJsREFNaGg5aEFSN2lERUdhd3VydlF1NXBYc0NqS01nc1Jk?=
 =?utf-8?B?R3YrYXBFb25GSnFjVGVFU01NRWk4SjZWVTF2dG4vaWVkSkxlWEpMMU5qMHlO?=
 =?utf-8?B?REpVYkVkaDdScWtlM1Ztc1ZGQVBkWHl5OFkxTlJDTEdTc1RJc3hsU1NBcnQ3?=
 =?utf-8?B?Z01XWGp1OFdHU3lESEhTU0F4NTFKejdia1BQaW83YzVFc0g4M1FKTHl6dW1o?=
 =?utf-8?Q?SlN2j4cpmSEdrTZRTHizBtIQfIfG5Skq?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QjhsdGpJZitnSDVMTTZuelV6dGtUOVdPRFM1NVE4UU53aWNhOS9aWnVYNnB6?=
 =?utf-8?B?NmxYK0s1c1JGSVg3OUtUczE1cUJsck1uaXJub0wyeHFxSjBWNGVScEovaHc2?=
 =?utf-8?B?dnMrZ3k3bE5kcGpxMENyY3dZbEFDVDJtcjR3blFZWk9kcEhzVkd3UENsVkp4?=
 =?utf-8?B?dmpWMG1sWldCWDNsWWtDdTV0dHdWZ09PTitwYlJOa09DSllObDkrcnhaNzBa?=
 =?utf-8?B?Zmc4L2pYRFJCWGhGSFdFc2xzU2tvYkNncVM0UXZKczBLQ0ZUYVhheHZZQ2xx?=
 =?utf-8?B?VDdlSE1QTU8vaGdiZTROU0h3ZlNpYzRKQmhYTXIrMVlRVGhHVmlLMWp4dEdC?=
 =?utf-8?B?bzRBQmFFWGQ3L2FyS3p6SUoxRnhMQi80QU5sZENFMmdmSmp6QlUvOURIZ3JH?=
 =?utf-8?B?dFpQdlNzYzlIeWdHM25uZkVka1k3RjNZTmdSNGVoeUlrVU84ckpyMXlvenBs?=
 =?utf-8?B?Z0Q3MTdRTEg4MmFqUnBaTU51enZGYi9Ka0prZG5KOEpiVXNWRElhbzZoWDFR?=
 =?utf-8?B?UlBkczNlRURiVEs5MDM5U016Q3g2bmpPWjB1MDlsYVd4NXdMWk9JbWNtN1M0?=
 =?utf-8?B?R0N1Um5idkZ5REovNHdUMm9UWEFYMFhUdldyeVRIZDNraThTbUVRaVEzZHcz?=
 =?utf-8?B?Wk1HUzdCeHBHVXIwQXhrT3hEYTdXaEYycXlOdjI5eWV2SmhyUHNUTFU0Mng2?=
 =?utf-8?B?U2lJTXA1elNkREZrOVdvL0wxTC9RNTRXVTdIWWJKYWtidUdVNk9Rdnh2VE9l?=
 =?utf-8?B?WVZHcUdHcUJRRzdGUmpNaWdiYktIVTkyTUlmRmFoR2x5RTd2ZnFDRlNaMWJ3?=
 =?utf-8?B?d3plOFVQZjkvdVQrVG1lSzN5OG5lWVBhQmZiQjJCVVN1elhNMHdYdm5MT3BP?=
 =?utf-8?B?UDNibUdEd3N3WGg2Um5yaXo1a08xUDFOZ0JGd1FILy8wTDRyK01jMU9NMUxL?=
 =?utf-8?B?UjJwSzJaYTdRaFJjSS9jcjBPUVAxWFVud0FwUDBIMnJXUFp2NjAzZE5uc0xI?=
 =?utf-8?B?RFprNmlwcklyNDlXdXVRREFEaFU2ejY4U0dETVoreCtsU1kwaFJ3MHBwVDJn?=
 =?utf-8?B?eDhod01EQm55NnF6SXdTTkRBRU9CeTlZL0kveEUyZG1TQjJDZXB6RlVaVTBK?=
 =?utf-8?B?b001NVVPUmhvSTh3bWcyRHMrMVNRc2dZd1BZdnh1VTk4NEdMeE9YZ2EyalpX?=
 =?utf-8?B?akVuQTAzUWgwUjNsTmdZSFkwZGRjNXp0QUcvejdCdHJkaGI4ZkZXejVGd2ls?=
 =?utf-8?B?Z3BTeEpaNGIyZ091MkFMcHhxVUdrU3doa0g0SDluRnpabXQ4R0t1RkpwQWlD?=
 =?utf-8?B?RGdUQTQ5ejUvUXJxVGdYTHkyT1V4OGZwc05UT0tZZ0hqWklhVDRBOWFwRHRn?=
 =?utf-8?B?a05nVDlHdG8rRVVLQmhjYUpNdjl2SXNXNmNzV0VoZE5kd3ptVTBINW9hRkJt?=
 =?utf-8?B?NTh0MDM5RE9iRGJqSVovenh4bFRRTzdUNCtGcVJtb0d5Wk1ZNktMakdkaWRj?=
 =?utf-8?B?WVdhR0VDN1Y1SEhKRU8yazc1REg4V0p5aStXNThZeVExMklKNENwRVZ3WENS?=
 =?utf-8?B?Z3NOMTVueENuUzV0bDR2NTM5b0c0QWhyK0NiMkkvQmtJamE1cnBHbS8yYW9E?=
 =?utf-8?B?MGVjZktGTWRjWDd4N0xwemNraHlBSXV5clJzWXJoVCtWY0VyNkduWW1ncmI4?=
 =?utf-8?B?SzRGMjNXQmhoZEpkRWZ3Y1YzcWpDU2tEc2IycDdtdGF4UVpsZlhTZjFxaEZT?=
 =?utf-8?B?V2FDU1ViQ0Z5aGhGTHlEM05yc3ZLb1dsOGFLblBhZ2hxRHIxSFRiZ0J6TDN3?=
 =?utf-8?B?dVJydmdzNTFFekZnaFhldTZOa3BVWnAva1p5UHp1bWZGL0MraDZFM3BCR3pz?=
 =?utf-8?B?RDB6WjAzVlovOUM2ZWNGdGhXRmxUQ2pJOEdlTjF0eWFucmV0YlkxYy9wQmdF?=
 =?utf-8?B?dk05cnZialg1amlKYVRKckJjMWZrSmIza1Bsdll1cUk0cDhxWVhxVEFENlhs?=
 =?utf-8?B?NDYyeW5zeTJQZ1pkQ054V1Y0TEc5am1oTHJPRlV2L1hsV1ZxM2p3MTlTMW1t?=
 =?utf-8?B?TVlNdDFqUnB5R0VGOGpuTWNyN2hQdkllTFNlNUs5SDVldlZEZUMvWnowU0du?=
 =?utf-8?B?K1g2bnp6eENZWis3MHZkUHRGL2t6RlVmUTlzemllajNDYmxVdUcwOGczSjV4?=
 =?utf-8?B?MVE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6b076912-37c3-4f3d-3ceb-08de33648174
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2025 18:39:49.6242
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qTzzQuyUL7RLdSDukPX8zrfFFnQQVWIi8zaM0CR8JTA2RdTDUmukQF5vO2aECioc3OgBagqanX0y4XiF8BOoBUw8XjyQ14LvXqr/WVg1axs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB8794



On 02.12.25 21:26, Jason Andryuk wrote:
> On 2025-11-19 14:30, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> Factor out COMPAT HVM code under ifdefs in preparation for making HVM
>> COMPAT code optional.
>>
>> - hypercall-defs.c updated to always provide compat declaration for:
>> physdev_op, grant_table_op, grant_table_op. This reduces number of COMPAT
>> ifdefs in HVM code and lets compiler DCE do the job.
>>
>> - Only 64-bit shinfo is supported with COMPAT=n, so struct
>> arch_domain->has_32bit_shinfo field is moved under COMPAT ifdef and
>> has_32bit_shinfo() is updated to account for COMPAT=n.
>>
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> 
>> diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
>> index 5df8c7825333..0005f4450931 100644
>> --- a/xen/arch/x86/include/asm/domain.h
>> +++ b/xen/arch/x86/include/asm/domain.h
>> @@ -12,8 +12,11 @@
>>   #include <public/vcpu.h>
>>   #include <public/hvm/hvm_info_table.h>
>> -#define has_32bit_shinfo(d)    ((d)->arch.has_32bit_shinfo)
>> -
>> +#ifdef CONFIG_COMPAT
>> +#define has_32bit_shinfo(d) ((d)->arch.has_32bit_shinfo)
>> +#else
>> +#define has_32bit_shinfo(d) ((void)(d), false)
> 
> (void)(d) is to avoid an any potential unreferenced 'd' messages?

It's a generic request to have macro arguments evaluated consistently.

> 
> Just using false builds for me, but your way is a little more robust.
> 
>> +#endif
>>   /*
>>    * Set to true if either the global vector-type callback or per-vCPU
>>    * LAPIC vectors are used. Assume all vCPUs will use
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
> 
> Regards,
> Jason

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Dec 04 18:47:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 18:47:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178218.1502138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vREMn-0001io-0g; Thu, 04 Dec 2025 18:47:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178218.1502138; Thu, 04 Dec 2025 18:47:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vREMm-0001ih-Th; Thu, 04 Dec 2025 18:47:48 +0000
Received: by outflank-mailman (input) for mailman id 1178218;
 Thu, 04 Dec 2025 18:47:47 +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
 <SRS0=GYI0=6K=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vREMl-0001ib-MR
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 18:47:47 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b96bfa54-d141-11f0-9d1a-b5c5bf9af7f9;
 Thu, 04 Dec 2025 19:47:46 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by AS2PR03MB8794.eurprd03.prod.outlook.com (2603:10a6:20b:551::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Thu, 4 Dec
 2025 18:47:44 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9366.012; Thu, 4 Dec 2025
 18:47:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b96bfa54-d141-11f0-9d1a-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lKPLNGMgsxNDzQZt084Q0XxY1RdRtQrozD2RaAsYn8bvY20U6BGYl1SnPaQmnd/XHc/viDceQza7nhzf4fO53byxJd7Bqk+Fze7Taw3O566+dxznY6ub7PmwRUTl74kJ9vMxf+38YyZWaJ/0IDBq1uG5BZFcHNce18d0u4p4ICDr3t5iOv+ml31NeOrLzINX6QQIfPin8w9lqtyj9oiAAPrRcQ1OPqB1I0JfZjXBzJPYYg5V6YmLAhqhF8qQ5zqbOcjoECS8uhxobk5Fr+wOgoc7aB0WVSFQ08LR2Db68guYHWdx+ftH1pM3hFwShlQbd3rN3Tn+4SCJ+vKzvi6KAw==
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=SCIMsY63nvESKdY6wv1L3mIbm910UVVFoS4YF/TvM9g=;
 b=Khe7AunL6Fh7MwgkTopUtg8J9WwwdURC9dVvoHrKvvdVX+VU9ekBTSSCYamRNTYvib79bh0gTHF55OggdchTMfwHeS2hB5CXi6HD9xkFlCJLPQeH68pOxZNI1I+yT2qBapSEZtJHwzE6hpBAf3tcBF4un13Yeje0zijeOJAXLiFbxqD1Ga24tnRbXeRothjGTJyhpSybWy3Ns0p4rAWXMJwRfg2xHsrtXaQLEICJvBu0ba7H75uihcpT9bFM9t1wKseVq+eDAyLVsQyEZgVbLJGQf+/tOzBYCxD25hCj+JiD6MFWIM9xfNZ5aUoemAUjmE9Sa+YR8sxNPORfznND3g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SCIMsY63nvESKdY6wv1L3mIbm910UVVFoS4YF/TvM9g=;
 b=KXIbYGXrZyyjS87lIhRIIsHh/G2iVaJKeuFjWhNvmUAF+EmWQ9HHMlZidWPDL9ZhJ0VoZUx2qeJ9qNyz/Fcq6BLSc9zezRSi99GeHtIwIzrEZyBwN3dkcLsZ4r+dGuRu8RxMSCk6DQEFK+u5jOVlpL/NrNtHsfedPva75YIV/Mn0Ra7s+8QWNl8cGBQDZR8a0TXQgKcr2Hd/7lsgyYm4AucJ7DBrjPQVbyn6+GROxOryYO6l7uAFXcc5rBje+ChpAKMg8zQgPWkE8r5aVWsJol1Bydysdt/xMEId/DXECBky/P8QwEUJqhEmT+TKHmxnw/I2c6wWulVE0rF+Gd8K2w==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <389a5a3f-59c4-4292-847b-6c73fb9cd345@epam.com>
Date: Thu, 4 Dec 2025 20:47:42 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2 3/4] x86: hvm: factor out COMPAT code under ifdefs
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 Juergen Gross <jgross@suse.com>
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <20251119192916.1009549-1-grygorii_strashko@epam.com>
 <20251119192916.1009549-4-grygorii_strashko@epam.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20251119192916.1009549-4-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA1P291CA0018.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::25) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|AS2PR03MB8794:EE_
X-MS-Office365-Filtering-Correlation-Id: 79102882-d839-4cf7-889d-08de33659c42
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UTBaWGRRemVHbm10NWEwcnkrNG1scTdHODZGbWtqTmlzRHhxZ1ZBT2FzVWdD?=
 =?utf-8?B?YnhyeHlXSHBJc0NQZ1cxZUNqRGZrWjE3NHluOHJMRXFzR01FMEZ0VjkzeG1T?=
 =?utf-8?B?ZmZPczIzYks3YkFDT3hlZmtjY0p5eHlxOEtDcFVJNnFadjNvQ09EMVNYMmc1?=
 =?utf-8?B?YnFKNlA1OTNkN0RmSm4zdzMwSTNiaE43dElHVmJGNDFsRFNucVpKMXB0RHFQ?=
 =?utf-8?B?ZG1vU3Z5dzByY3ZFWXNPV1lEZEhuaWZJZzVGYzVXUHkyempQdmJFZEkwdVVv?=
 =?utf-8?B?TDhubUhoMWJReUI5WWpDSGw4dVk1dVFncHdXaGU0UEhBWGZJQjBSbGRjWEpn?=
 =?utf-8?B?VUo3b0tkMWE3bmNJRXZIUndkTXR4bjJTR05MSHVxSFNRYjRqMm12Rmh2dnk5?=
 =?utf-8?B?TFBIMzhzN1NGbXhpdjdQUVEzZnlLZW4rY0hLMSswbE9Iek1xNVBmdWt1ZG1O?=
 =?utf-8?B?b3RManpQL2Vqc1NVekZzRU1mR05ERndXRk5pcDd4a0dFQ29tVFA5enFsa0xG?=
 =?utf-8?B?RGVaOFJ6cXdTakE3K2taT2ZOcTJTWTIzTFpNa3FXc1FTTlBORTNCV1k5dXp2?=
 =?utf-8?B?WkRnZUxua1JYS3B1M3RWZzJCaW1OT21WcjRlVU9panh4YjNIaVJLNXFweVRt?=
 =?utf-8?B?QUFaYmZwaGRPVmx4aW52c1lMN215U3VBN0E2b3JZMEc2V2M2cWRTMXdta2hC?=
 =?utf-8?B?L1pnZDhLWVdQWHBrZFFBNnRNaEZISGZidEo4dmt4NUxkaXJ5U1NTMUVEWm5u?=
 =?utf-8?B?aVRJYzFWWWlzOFdvY3J2dVN1b21MZGl3VjI0Q0h4QW9TMGlKWFNYbjF1S0px?=
 =?utf-8?B?UUtGU0MrcWdBL0VmcHZnS2pFK2tmanNJN0k1TzlQbWRQWVJOdXZNN0JNL3F3?=
 =?utf-8?B?MFBncGJVOGlKSTVzSHhMbXFUOXlaQWhZamh0Njg0dVFZNk5yekl1TWczQlIr?=
 =?utf-8?B?L2FseEVUOFYxd2JValRYODRkM2FiM2RVM2MwUTRTZkFpdDRlUFJ5bWM2Tldh?=
 =?utf-8?B?dWtmR09SNHhkSUNxNGZUNWFhTUFXRDFCcnFueVBvc1dVbk9yZWdQYzA0a3hk?=
 =?utf-8?B?Zkl5Tjh5QWpxN0F2NUFCRDhmLzhtZkVhaXJNbjhWaVlxUUc2Rm9tV1ZXQ2FG?=
 =?utf-8?B?V2lST29RUEV1L2R5OFMxZE9sRjAwRmlvbk0zQURpMTAzZjc4SVpHOE9qT0Jx?=
 =?utf-8?B?RXlDclIvbFl6ZTlyeFlDZTU1L3ZsbDFIeHRFSTVaU1h1dE1sV20yYnpoWTdP?=
 =?utf-8?B?QWQ0QmhOOGJOdnJjOVNUYnJtRVI3Y0s4MEthR2FlN1YydkhhRDlTWGdpUVRj?=
 =?utf-8?B?THd4TkNHM1RibDRKNnlFaXVyck5MbkhoNUhidWJZV2FqdThJS3hnbndvSzBy?=
 =?utf-8?B?M0V2TG93alYrYnhPT1dBQkQzWjRnZFhrb1U5QzdyWThqb2VuTlVDMHZNb0NJ?=
 =?utf-8?B?T3JOYWRWQXUxY1IweTBmcGY4Z2xrQWFHVG41Vm1CcEV1NVpPMWMraGxqdjRs?=
 =?utf-8?B?MHpDanlGL1VtRHFQU25ybXpEWW0raEFNYW5MalFyeVhiajVxeXRrSThiazd5?=
 =?utf-8?B?V243d3pQaU43bHBmY0RuU1FKd1NaNEU5RUVzaEtqeW43TWZCWkMzT2I4NlNH?=
 =?utf-8?B?aExjMkxqWFJ0RnlxNzd3N3hOeTNWNnRkMkQrZWo3dG90RitveEpzakFYRGFh?=
 =?utf-8?B?Ykl4ajFxdXlnSTJsUjlMRGN4MEFBWllxZXBDVGxFQjNJcFVNZS92R2xmSEFU?=
 =?utf-8?B?NC9ZdFFrS1R3clg3djMvWlBJeXFyVGpGMDBGSG5Pci8zSjBwczRmSTZ3REZD?=
 =?utf-8?B?dldQOTVBTVA5NHZkM08rMEFpYStOM0lFMy8xNFdNUEI1U3RmNUJkTnZlcEkw?=
 =?utf-8?B?OXlTcW9JNERHUmNtZDM3MlRCTURqdGpROHF6dlg5ZU8wRGRVREkrTjZNNjlE?=
 =?utf-8?Q?zRFbgEtUjvofOKstRjvy+2Jv1BtGlWXV?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Z0pWN0Z1N3dET1BlYldkMXV5N0h2ZG5OMVMvR2FFb0pxZU9EREo5VHNxQ3ZV?=
 =?utf-8?B?M0NJNk9FaEZxTHlHVGcwLzVPQlY3dTZBQUN6cUtUVHNPQnhGdG8wcXp5SlNJ?=
 =?utf-8?B?OUdoTklpWi9FK0tVNElmRnVMUGFSbFRweE81WE1CMnBTcnB3WUdBNUdlSkFt?=
 =?utf-8?B?MkYrNVM2ZVUxYTlaS25IcjZzQ1hacXZLQ3VBWVFiQ1ZYVlR6WmdXRHYrU1M1?=
 =?utf-8?B?elVWNmpnTjhiS0hMRmpERXB3WFRYZEhLTHBCL0JISTBmcTRyUEd0dDdSa3I1?=
 =?utf-8?B?bmVqV1pwa0NreHh5ZHM2K3JnYlc4RkRCNWJHZUdJeVI4M3k3QncxUytlUDNH?=
 =?utf-8?B?d1hWcnJObHA3QjVUNGtRYUlpNFliRi9JMlM0WDB3S3pkSCt0alFLcmV6V1lD?=
 =?utf-8?B?azRBa1pmZDZ4eXlSc1NIS3VBODYwTXhLcCtFTVJyakRvTXNwc2tKWmd4YUl2?=
 =?utf-8?B?UmdoeW5aU1cwT1kvaDJlMmdibDhrNENyejNIaytqU2VSa2xlVmMrMFE0a0x1?=
 =?utf-8?B?aTIxTUw5R3NiMnAzeWtZcDFZQTdFOU9Yd0tUVmJDeUEyQU9xN0duK3hYMFo1?=
 =?utf-8?B?QmRCc2p2dy9FOU9QNFN4cS8vaGlhZHZaYStWV0JqYThrRXpUU3lNSTdFbjRZ?=
 =?utf-8?B?NFV2bkRvNDgrSnZMZlY3YWgrYzJyZ1N1RzlvNDRXd2tGcCtucmRwVTl0U3E5?=
 =?utf-8?B?L21vQVd0UTlFT2Q2ZW5DT0pXVTNWam9VdTRyc1FwcERkcWJmaTd4L3BZTit1?=
 =?utf-8?B?b2RtODV2Tk9BNzlqQzRmNkw2aHJ3eU5VNVY2Q2FHY2tWVHViUG5rNDdTZFBU?=
 =?utf-8?B?aXkyRUNJVmIzMHBSUC90ZC9qU2pDYVRCWStVb20xQitiK2pJTE5KbklaRzlJ?=
 =?utf-8?B?aC9QZ0VEbERPRHgwUzRsdFdXSWhPYjBTU0FRU282Zk1jYnFOWVdQNi95dU5h?=
 =?utf-8?B?cW91RWhNNzRxRWxOd1dUcjk5K2wySFpGRHlBdk56UFdkQVhTQUo4cWF2KzFS?=
 =?utf-8?B?blp3UzNpQ054ZVdsNDJKdStYbW9CUTU1TjVxN0loSDY1UjZuTmt1WExRK01v?=
 =?utf-8?B?eHhMUEN4MGZGamtQN2dxSDRUSkxHUHZmTTAxaHFSL2NKMGtiME9Jd2htSGtt?=
 =?utf-8?B?ckp5WUdtR29MOGpjUVFEamZ3cE5yU0dZMUxaYjdyU25ka0c3VXRqK2tIbDkz?=
 =?utf-8?B?aE9uUFZBZHQ2cmJyZ3RYcFpNSXJYU1dSRHJ1UnZJeUtkNDZBQ1k4Y3N2cERx?=
 =?utf-8?B?YnduRmpDaW5nL2JBUmlSNjFMTzZWVWY5MG8zUGxzSko0bFFsbzh5cVB6bEQ4?=
 =?utf-8?B?UjRpSGlvU0phUUsvOVcxbzlBV0tkOEcrY0tjbTdPWk4xUk9sTkFKMDVpMVlV?=
 =?utf-8?B?Mk16dHFGa0h5Zkltd0tGclMxQVkvQjNHSGc1Q1JHcC9BWk8rV3BBQ3R5bEdH?=
 =?utf-8?B?TzBKTUFsYzl3Q2kwSXVMa2NCU3pPZnFMRDNLdTVORDk2aWZGRDZVNzA2a09E?=
 =?utf-8?B?aTUxN2dyYU5yeGx5S1NsT2V2Y0xzVjM0TU04THlYSjlnamVxb21sbmE1cW9H?=
 =?utf-8?B?MFJXMkw2bXNqTDVOeW5EdjVHLy91VGFWRlZzYVcwdS9LVE5GMmdaTkR3NVM2?=
 =?utf-8?B?ckRiSkJBK0kxTWJqRTVORG9oTHVCbWRaWllLa29oMDZkYm1rb1lnYWtQUWVv?=
 =?utf-8?B?Wm1Ua1JZWWM1YnQ0SkNtMDJrSXE2RHhuL3pnNWVRUVl4bXB5NER0NXlzeGRx?=
 =?utf-8?B?Y055Q1JGWGZ1N1AvUjI0WFh1SzN3T0VBUGdMOFJWbGloM1NJYjkwVGVVczBC?=
 =?utf-8?B?QmVZYzJOVzJFS2Q1RFFtT242VjdGb0dzcWJ3cVdIMWJBMlVCcElDNTRmNnZu?=
 =?utf-8?B?Y2dtYmIvM0ljTy84Q1N3WlBEbzdnSW1meVRnbXhmZ3JPVmx5dXhxSUtrZm0z?=
 =?utf-8?B?WjFka1R4OUFjMksxd2xXTDNBRnl0YmVrci9PZjc2dzgzM3RGa1pEUXBzMUFk?=
 =?utf-8?B?V2dLR0dXZEYrUjAyd1NJaTZwQ0RZclR4NnBOTWxuZ0pMM21KdVp5Qk1hbjl0?=
 =?utf-8?B?bWVVVkxFdjNQNHBzanM1NDk4NmFVZU14Qy8yMTJ2N1RDZWljbnhVTFg1cnRu?=
 =?utf-8?B?V3pOeUFZckpkZ3JaTUtEWk9IU0ZxdHVjeVdxTkpVeUJib3lnUXBkcml2bnNz?=
 =?utf-8?B?T1E9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 79102882-d839-4cf7-889d-08de33659c42
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2025 18:47:44.0758
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Hy3NBebsnXH8JdX1Sk5a2aFOljVRcW/JcNpMW4aQ7qWym817iXY1RaTPUYf1j/c28v4OisHPZWzTRaUaZuB0Vp0I37UOq0xRqW4hhqa0aW4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB8794

Hi Jürgen,

Would it be possible for you to take a look at hypercall-defs.c changes?

On 19.11.25 21:30, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Factor out COMPAT HVM code under ifdefs in preparation for making HVM
> COMPAT code optional.
> 
> - hypercall-defs.c updated to always provide compat declaration for:
> physdev_op, grant_table_op, grant_table_op. This reduces number of COMPAT
> ifdefs in HVM code and lets compiler DCE do the job.
> 
> - Only 64-bit shinfo is supported with COMPAT=n, so struct
> arch_domain->has_32bit_shinfo field is moved under COMPAT ifdef and
> has_32bit_shinfo() is updated to account for COMPAT=n.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
> changes in v2:
> - update hypercall-defs.c to always provide compat declaration for:
>    physdev_op, grant_table_op, grant_table_op
> - move struct arch_domain->has_32bit_shinfo is moved under COMPAT ifdef
> - return hvm_hypercall()
> - use ASSERT_UNREACHABLE() in hvm_do_multicall_call()
> - constify has_32bit_shinfo() for COMPAT=n
> 
>   xen/arch/x86/hvm/hvm.c            | 16 ++++++++++++++++
>   xen/arch/x86/hvm/hypercall.c      | 13 +++++++++++++
>   xen/arch/x86/include/asm/domain.h |  9 +++++++--
>   xen/include/hypercall-defs.c      |  9 +++++++--
>   4 files changed, 43 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> index 0fd3f95b6e0e..19524cb7a914 100644
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -69,7 +69,9 @@
>   #include <public/version.h>
>   #include <public/vm_event.h>
>   
> +#ifdef CONFIG_COMPAT
>   #include <compat/hvm/hvm_op.h>
> +#endif
>   
>   bool __read_mostly hvm_enabled;
>   
> @@ -1255,6 +1257,7 @@ static int cf_check hvm_save_cpu_xsave_states(
>       return 0;
>   }
>   
> +#ifdef CONFIG_COMPAT
>   /*
>    * Structure layout conformity checks, documenting correctness of the cast in
>    * the invocation of validate_xstate() below.
> @@ -1267,6 +1270,7 @@ CHECK_FIELD_(struct, xsave_hdr, xcomp_bv);
>   CHECK_FIELD_(struct, xsave_hdr, reserved);
>   #undef compat_xsave_hdr
>   #undef xen_xsave_hdr
> +#endif /* CONFIG_COMPAT */
>   
>   static int cf_check hvm_load_cpu_xsave_states(
>       struct domain *d, hvm_domain_context_t *h)
> @@ -3991,8 +3995,14 @@ static void hvm_latch_shinfo_size(struct domain *d)
>        */
>       if ( current->domain == d )
>       {
> +#ifdef CONFIG_COMPAT
> +        /*
> +         * Only 64-bit shinfo is supported when COMPAT 32-bit hypercalls
> +         * interface is disabled
> +         */
>           d->arch.has_32bit_shinfo =
>               hvm_guest_x86_mode(current) != X86_MODE_64BIT;
> +#endif
>   
>           /*
>            * Make sure that the timebase in the shared info structure is correct.
> @@ -4965,6 +4975,7 @@ static int do_altp2m_op(
>   #endif /* CONFIG_ALTP2M */
>   }
>   
> +#ifdef CONFIG_COMPAT
>   DEFINE_XEN_GUEST_HANDLE(compat_hvm_altp2m_op_t);
>   
>   /*
> @@ -4992,10 +5003,12 @@ DEFINE_XEN_GUEST_HANDLE(compat_hvm_altp2m_op_t);
>   
>   CHECK_hvm_altp2m_op;
>   CHECK_hvm_altp2m_set_mem_access_multi;
> +#endif /* CONFIG_COMPAT */
>   
>   static int compat_altp2m_op(
>       XEN_GUEST_HANDLE_PARAM(void) arg)
>   {
> +#ifdef CONFIG_COMPAT
>       int rc = 0;
>       struct compat_hvm_altp2m_op a;
>       union
> @@ -5063,6 +5076,9 @@ static int compat_altp2m_op(
>       }
>   
>       return rc;
> +#else
> +    return -EOPNOTSUPP;
> +#endif /* CONFIG_COMPAT */
>   }
>   
>   static int hvmop_get_mem_type(
> diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
> index 52cae1d15312..1ee0193b69af 100644
> --- a/xen/arch/x86/hvm/hypercall.c
> +++ b/xen/arch/x86/hvm/hypercall.c
> @@ -170,6 +170,7 @@ int hvm_hypercall(struct cpu_user_regs *regs)
>           HVM_DBG_LOG(DBG_LEVEL_HCALL, "hcall%lu(%x, %x, %x, %x, %x)", eax,
>                       regs->ebx, regs->ecx, regs->edx, regs->esi, regs->edi);
>   
> +#ifdef CONFIG_COMPAT
>           curr->hcall_compat = true;
>           call_handlers_hvm32(eax, regs->eax, regs->ebx, regs->ecx, regs->edx,
>                               regs->esi, regs->edi);
> @@ -177,6 +178,9 @@ int hvm_hypercall(struct cpu_user_regs *regs)
>   
>           if ( !curr->hcall_preempted && regs->eax != -ENOSYS )
>               clobber_regs(regs, eax, hvm, 32);
> +#else
> +        regs->eax = -ENOSYS;
> +#endif
>       }
>   
>       hvmemul_cache_restore(curr, token);
> @@ -207,10 +211,19 @@ enum mc_disposition hvm_do_multicall_call(struct mc_state *state)
>       }
>       else
>       {
> +#ifdef CONFIG_COMPAT
>           struct compat_multicall_entry *call = &state->compat_call;
>   
>           call_handlers_hvm32(call->op, call->result, call->args[0], call->args[1],
>                               call->args[2], call->args[3], call->args[4]);
> +#else
> +        /*
> +         * code should never reach here in case !CONFIG_COMPAT as any
> +         * 32-bit hypercall should bail out earlier from hvm_hypercall()
> +         * with -EOPNOTSUPP
> +         */
> +        ASSERT_UNREACHABLE();
> +#endif
>       }
>   
>       return !hvm_get_cpl(curr) ? mc_continue : mc_preempt;
> diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
> index 5df8c7825333..0005f4450931 100644
> --- a/xen/arch/x86/include/asm/domain.h
> +++ b/xen/arch/x86/include/asm/domain.h
> @@ -12,8 +12,11 @@
>   #include <public/vcpu.h>
>   #include <public/hvm/hvm_info_table.h>
>   
> -#define has_32bit_shinfo(d)    ((d)->arch.has_32bit_shinfo)
> -
> +#ifdef CONFIG_COMPAT
> +#define has_32bit_shinfo(d) ((d)->arch.has_32bit_shinfo)
> +#else
> +#define has_32bit_shinfo(d) ((void)(d), false)
> +#endif
>   /*
>    * Set to true if either the global vector-type callback or per-vCPU
>    * LAPIC vectors are used. Assume all vCPUs will use
> @@ -365,8 +368,10 @@ struct arch_domain
>       /* NB. protected by d->event_lock and by irq_desc[irq].lock */
>       struct radix_tree_root irq_pirq;
>   
> +#ifdef CONFIG_COMPAT
>       /* Is shared-info page in 32-bit format? */
>       bool has_32bit_shinfo;
> +#endif
>   
>       /* Is PHYSDEVOP_eoi to automatically unmask the event channel? */
>       bool auto_unmask;
> diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
> index cef08eeec1b8..08c01153ac56 100644
> --- a/xen/include/hypercall-defs.c
> +++ b/xen/include/hypercall-defs.c
> @@ -80,6 +80,8 @@ rettype: compat int
>   #define PREFIX_compat
>   #endif
>   
> +#define PREFIX_compat_always compat
> +
>   #ifdef CONFIG_ARM
>   #define PREFIX_dep dep
>   #define PREFIX_do_arm do_arm
> @@ -104,10 +106,10 @@ defhandle: trap_info_compat_t
>   defhandle: physdev_op_compat_t
>   #endif
>   
> -prefix: do PREFIX_hvm PREFIX_compat PREFIX_do_arm
> +prefix: do PREFIX_hvm PREFIX_compat_always PREFIX_do_arm
>   physdev_op(int cmd, void *arg)
>   
> -prefix: do PREFIX_hvm PREFIX_compat
> +prefix: do PREFIX_hvm PREFIX_compat_always
>   #if defined(CONFIG_GRANT_TABLE) || defined(CONFIG_PV_SHIM)
>   grant_table_op(unsigned int cmd, void *uop, unsigned int count)
>   #endif
> @@ -156,6 +158,9 @@ platform_op(compat_platform_op_t *u_xenpf_op)
>   #ifdef CONFIG_KEXEC
>   kexec_op(unsigned int op, void *uarg)
>   #endif
> +#else /* CONFIG_COMPAT */
> +prefix: PREFIX_compat_always
> +memory_op(unsigned int cmd, void *arg)
>   #endif /* CONFIG_COMPAT */
>   
>   #if defined(CONFIG_PV) || defined(CONFIG_ARM)

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Dec 04 21:50:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 21:50:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178270.1502148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRHDS-0006gU-40; Thu, 04 Dec 2025 21:50:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178270.1502148; Thu, 04 Dec 2025 21:50:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRHDS-0006gN-02; Thu, 04 Dec 2025 21:50:22 +0000
Received: by outflank-mailman (input) for mailman id 1178270;
 Thu, 04 Dec 2025 21:50:20 +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
 <SRS0=TdJQ=6K=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vRHDQ-0006gH-At
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 21:50:20 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3944d1d9-d15b-11f0-9d1b-b5c5bf9af7f9;
 Thu, 04 Dec 2025 22:50:18 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SN7PR03MB7129.namprd03.prod.outlook.com (2603:10b6:806:32f::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.11; Thu, 4 Dec
 2025 21:50:13 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.003; Thu, 4 Dec 2025
 21:50:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3944d1d9-d15b-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tcS4sJM8PQvOCNHLdGTDz20aeL+sL0O++IpyIP4gors0z+5cpth6p5rAE2uO1pASEOPGD0zrfzVwOmkkrBQlE02gmnzFN81zEzwMPjttWxD11DJ+R/7IqbhVYm6uAh7eeOMtg6K7SwzhVCLWGNZOAX7dcM8EwjlGgfMv2UCue3RH5G/3B99v2eKOmHknIE58ms+GeMQzFB2SCulXCwDswZ1MXwQAadlQNEZj7pM7xZW5xl+k9jXAg2grTGuLAAmzUcN6mr/oyGJU+o26CaIQxv70PJvm+jUWNXPZnO+itr1LtmhtQ8UZM011+mVY5LHfOXfqyg/1E1yGyWPk3Y2sVg==
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=grffYMiw22/ufFyHSrwP2l6iXT0HdIxPDTD0RQT/ZKU=;
 b=a/e0gMQ/c1AStgi4LSzfHPcscDSaopthWKYw5NtpImigmKE1xmnUIUCB050vYaFygaCSu5MykkJ1M20yrze5Is/GoZW3g051HsijGrVGtDwjv6ZyOye6tommiECdZ0kGRdiKztGt+NaPU5P65KDkAchVoZ1nJ70/P7FtgA4XIQ2z2YB7WfTt2H2QuJoLDTzkfthSQna/5KovtkLwPYyakJgAF2KXNRJGC3AFkWzv1AZWhr2Ui/9WM5VJGSFG+U7TXovYcbdX4TO08DP256kbb1NGeG8N4uVLqRV5TB5vx8B5jkmEVEK/ugo9gC2CemYhgHcgJxDJnt3k+/XreEYw1A==
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=grffYMiw22/ufFyHSrwP2l6iXT0HdIxPDTD0RQT/ZKU=;
 b=eYv5a6KazfqlKtJWfJtgQtOZ7T2uURCaP0YwkiHohPxQTOyZmqr6f6fE2/4dIvOxe+GesF5LyGU5xGMbdaD+qCw9nklgl1s2pE0xB20sZO3cAc/8j2Bq2WoOYJDfmS+XYiqB/wk/m1KRuB+Wrgx+306nGAJ/dWvj8iuH/r/HU1s=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <a9dffe3c-2610-4507-a793-10f9d5796137@citrix.com>
Date: Thu, 4 Dec 2025 21:50:10 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com
Subject: Re: [PATCH v3 1/4] automation: switch to alpine:3.22
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <cover.1e7327573686b6fc1e161127e268e4042556d16e.1764867217.git-series.marmarek@invisiblethingslab.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <cover.1e7327573686b6fc1e161127e268e4042556d16e.1764867217.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO6P123CA0007.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:338::9) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SN7PR03MB7129:EE_
X-MS-Office365-Filtering-Correlation-Id: 791c21c4-4169-4761-1e91-08de337f1a93
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TnRGeWZVWHpiR0xvZ2tYeGtxOXZ4dXMwL1p3ajZrSUpkRTYzdXBkQnlraEVo?=
 =?utf-8?B?bVJsYjRLTGpKM1NxTk03N3FlL3NGa3V4eVdvMmIxYlFkaGx6NGs3ZUZFOVhh?=
 =?utf-8?B?aUxIaksxdzByT3lKanYxQ1p5Z0l6NjNvdGlha0txT2FYUFJLWEhndUpqNVcz?=
 =?utf-8?B?eG5zU2QzN2JZbVI4NzZFVnltZklvSGwzaFUyNGp5T28vZXJEMG95REhEbUx6?=
 =?utf-8?B?ekNLMUdwZStKTmlDSURTbWROZjdhUm9zQlBEYzFRc2d4WHBQZ1M4MzNSYmla?=
 =?utf-8?B?NTdjaEViNG9xV3BZUzllTTlWYzRGK1VWSEpVTzVXQVBlOGtqd3hqOUs1TWZa?=
 =?utf-8?B?aHU3a2l5RFlWRW5wRmZKZzJ6a0tDaVFET2JFck92S0JsTGppQy9DQkZ4Tkw3?=
 =?utf-8?B?OEw5OU9FZ1JlMzZIOTBxOTFjMC8vS2VrUWJCOWtDQnV4K0IySVNZRVBaYlVr?=
 =?utf-8?B?T044TTJUSHNSaDB6Z2ZIYVVUKzE3b05KSVNJWEtwNWZVaWI3NEFtR2I4c29u?=
 =?utf-8?B?aTltb1ZYdG5pamFkYlZaM01Nc25WRnVKaUxFRmc5TnIxUGlxck51c2RHYWRU?=
 =?utf-8?B?RWNEdHBJSjFDSWFjT1JBVXY5YjdPWlpBSUFJcThEdTgyaWlVVVJJS1VPQWxv?=
 =?utf-8?B?MThwNGpoMGEvL0J0UFJ0RG1nbmk4UnR1akpVRVkzUjM2dHhJL2lOYXNpUjhi?=
 =?utf-8?B?KzZ4UDhyeXcwcEJORHpTV1VpbjB4eFkycjlYZ0NzWEdiUHZTT0ZxdmR3YllX?=
 =?utf-8?B?emsxWmxUOEpLbHkzSGxkQ1NFTlJSUGdGRUpIREM2bHNrSW9TT2E3S29KMm1F?=
 =?utf-8?B?M09UN0VjQVVvVS9iMUc3RHVhTVoyd3k3eVVrb1V4V1NCZ2JsNjM4TmJCNm13?=
 =?utf-8?B?RU1hK3dZU0pJck5TVE1UM1VmMHAvYVQrZEdUQWRRSDVDNGVjRHVVSmdjM3pr?=
 =?utf-8?B?elRVVU56QTFwWEZsWFlEcWFYNzZTbnQ0bFRKd0xqSmFrMWViMDVZNFM4NEMy?=
 =?utf-8?B?Tlp1K251eUhGVVZYWHZUdzdSTnNjdFFvdFhXTEJKK0NpUFBuUW85a2I0Vm8y?=
 =?utf-8?B?cm53L3NjakwycjNVNnp4L2UzNisxUmJyZDVhSm9OYkJZeEJ2VlU3eVJxc2Vn?=
 =?utf-8?B?MWYxZ3M3Lzhxc0ZpNEFmWVVqQTVIY0JGN0d4VVFDUXlRZGpBSG53Zmwya0dm?=
 =?utf-8?B?TEtyVUVtNytnZXlDdVI5ZU43Uld4emRDSkR6Nm9sZnJoOTdRaERzREtDK0hy?=
 =?utf-8?B?bDBuZnlvd3RYOGZYTVRpUFJtV3E5N290V25EaSt4aStZblN4VmFLWW0xaXBO?=
 =?utf-8?B?Z3JudGFaT3FNa3VZdTJROWQ5bG4rVjNGemF6bUV2dm1TVTFYZlBBZUVEMFJ6?=
 =?utf-8?B?T2Y2OFcrMVpMdzRTNitTRThNcjFuQlU4WU0zYUlFWFB4UGx0cnNobTlIeGtt?=
 =?utf-8?B?bkY2UmR4aU1CTUNvSkVFWUcwNzNFSytjUzlYTnIyM3FLSGNFMytzNmVWRVBP?=
 =?utf-8?B?U0g2TTFabm9YM2tEcGpUSTJ0SElCeHREL050UER6ekZZTTdHdGdZcElYSTBm?=
 =?utf-8?B?WVZpL1cvTWpTRjJ4THBMZkU5alFhTDBudFpVSmt2NGJMcVhCZVVUK0JYYWFm?=
 =?utf-8?B?YndrUlNxS00zVE4xWEJXS242dUQ5bmhBMTkySVlhVVluWmJMSisxc29oN1BZ?=
 =?utf-8?B?emtBblpuUVRMSHBSWitzTFFDaVNsWEJROTM0V1BDSEFSVDkyR0pIVnljbVNB?=
 =?utf-8?B?emRhRW11cGVEVXI4UW0zYUtzd0JIYVY1elJIdFpBZkdoMEZ2b08ydnpZdlN2?=
 =?utf-8?B?SmJlc0ljaGVJeC9PY3pCdG1ub0g3eitnYW9xUWhxMEhxTnZTdXJOUHdXWnpJ?=
 =?utf-8?B?bGhSSjNIVGpXR05uSHFQMlBRbEV4MmdEbVJYSUZoa1c2MEF0emk5TXQ0Z1dI?=
 =?utf-8?Q?eUMHPm1AA2d8MWw5xnnce1FY3OasMAnC?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?M0lOMDF5bHlGY2E2MlE1cnFKTmxCcVRFT010eEJrUXhzSkRLZ09NS09IRFdB?=
 =?utf-8?B?RWV6THRQeDA3RWpKbnd4U3owTUs2T2pBQzBUcUNxKzJ1b2RubytFL2JWYjBF?=
 =?utf-8?B?MkVqVy9TQWRZVTZHYW9uWGRXVDBmbEwycXcvVm1jaFFMODBXeG9WTC9Zd1lR?=
 =?utf-8?B?cnRUM2VGWThQNU80NTFzTEhiSzMreUxTeEp3RzZYWkZKWCs5aG5FY2IrZFJl?=
 =?utf-8?B?bjQ5OGFURU96SzdXTkZCcFR6QTArNGRNL1RBZXdRNmF1V2l1dWlOVHAwZnV3?=
 =?utf-8?B?SFV3L3ZoZCtZa3JFR3NSRmJsaVF5aUxzZk9MV29VWmhLRXpsWFF2K3pQV2t4?=
 =?utf-8?B?a00wWnVUc1NvMlV4OUJjUG8xdEppNG5BalcyRGFyVFQ0TVFqeDdtdzllUlJu?=
 =?utf-8?B?NjFVZ2hIOHB0eUJuSFdoTHUyWWI4a2VzL1lNYnYrT2VXbDAzY1hIOUVFYkJq?=
 =?utf-8?B?cndIb3hHMU45VjhzU2NjMmEzNXdSeUY1amNUTkhxVTFwTVV4TjRUMXlqaEFu?=
 =?utf-8?B?SjBQYmQrNWJKT2NVbk5oTFpRRkZSYjFPVHptS1h1bEoySGt5QzlBRzI5dGtk?=
 =?utf-8?B?eWlrdVdqTXUrUzZWZlEwYnJwSUVFZVJtd29mU1ozRTM1R0h0T2dKMkNFRnN4?=
 =?utf-8?B?ZEhzQUM3MHZ4UnhhY2FKdXNKVkVSb0F1SmdhT0lHM09KYVlOUXFjWWVwQ1pC?=
 =?utf-8?B?Y0pQMnRDM0h4amo5K2M3alpkOTduZjRZZVBidk1HOWdhTkREeG5Qby9Veml0?=
 =?utf-8?B?R3hZN3RLNCtjZS96R2VzTFFSbTNvY3FPQUNiaUFLRE9Ga2dXck1iUE9rRytD?=
 =?utf-8?B?YkRDVktMY293VGpwS2ZOMUdLMndTaXhmUHhtaGxZOW5FMFBiSXRaeVQwMHRP?=
 =?utf-8?B?UUJtWUVCTE1UeVdxZjFhNGdmSnQraG5NLy9reUVFN0xoeGtxdWt2aXd0TmNv?=
 =?utf-8?B?SStqNDZST3B3RTBQeDNHUzBzbzdmNmpvdzIvSmZyalF6MHBhS2MxcGRuL3JW?=
 =?utf-8?B?TVBZM1BjQlhsd2x2VWR3eDJ6eFBFTFNkODgrbXcrTlFHR2tDOGhHeXFhM3Nv?=
 =?utf-8?B?VVYvMU1nMndvUG5OQ2Y3L0w5OEppYlE1ekxyeEtCMkZhUDJJTzRQY202RDVv?=
 =?utf-8?B?YjAyYm9SclMzT1ZoeGwreEt1QUlDbTRMYWpPNW9ra09oUy9keE9hSXRqb1dS?=
 =?utf-8?B?V0w4bm5wTm16eFRienhSVHBQU2ZjQnJiczdHbStzZ0k5NU83YjNweVlkSjdm?=
 =?utf-8?B?ZTVWb2lXQUVXbE83cXBiOENMdkRIRStock90cStnTU8vSHRkL0p0enFlQWdj?=
 =?utf-8?B?VHZGbkhlamFFOWRuVWdYSFIwOWVuaHpDZStyelRDdWp6UDFGcEkrWm9zWVdh?=
 =?utf-8?B?TzlEakQ5WmRuUnVsanh5QkFnOFcxZ2YzMXNCcjFOMlRkbTk2d1ozekZFUTFx?=
 =?utf-8?B?VDhNdThGdjJCNHhCSkN1M2NNeXVkNjMrK0w4TEhzTGEwUXBoNTFNWkx2UWR1?=
 =?utf-8?B?WWpMblBJU3VKN3dQTkNXdzhxTjdqcGhmbFMyWjltRjk2NGFiRUxzVk5WaEND?=
 =?utf-8?B?dlIwK043S1NrTngvN2VqRHdIeVNyclhUU0FibTY5cEpqQXNGM3E0emdBV3N0?=
 =?utf-8?B?S3F0WGZuZWNvSWVHVDF5UTdNWmxlYWNnUE11WVl5L1owMFVwRFhEZUhxSlpM?=
 =?utf-8?B?Ymx0ZXlHZWxMN1hrRC9FUzkzWmNvVnc5dWsvcWZIOXYxbGhzTzZhdE1ZYXpU?=
 =?utf-8?B?ZUY5ZXc4UW8xV0NZd1dMeWdaanJ3OGE4aDk5bUI1Nkd1N0luSzIySCs0cHlD?=
 =?utf-8?B?eXFDRHRmUlBMU1E5VlU0eEhZRmVCOHFSKy9SRlM3NWU5bFFmWXFWSTBSbTkw?=
 =?utf-8?B?WXRSdnBzV0ZpeE1LelRRdWtVQ203MEgxeXM5amJkcUFnVnFJenV1QTV5YXFV?=
 =?utf-8?B?V3VDRExiSTg1K2JvSXRJYW41SnYrTUZQMnphTXhTT21nU0I3cEIvZENaUXlY?=
 =?utf-8?B?dWU3enJMVlovQ2xDdzhRbDd2R0JjSUcvNlBjTUt4SFRRWDB3aHJldklVNUtU?=
 =?utf-8?B?Z1hJVnFISnNjZUs0VEtJQUp4MVdIVHZSQ2NQeHNKTjVUYUFwWGdwNzQvcVZL?=
 =?utf-8?B?RmxIMFVFRVJiRGJqSHhhMjk4TEJiNGFhTzN5WUxDc0REMVByN1BaTTAwSmhK?=
 =?utf-8?B?amc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 791c21c4-4169-4761-1e91-08de337f1a93
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2025 21:50:13.4462
 (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: Hqu5IVwsFgt4pq3ELNamt+tUruASvKyld5Ch0rJchVpUctuTiV16DBdzmefYW1qggYAOs+C3h54SzIcCh07xTm9H11l+erAmBSZ84g5uMKY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR03MB7129

On 04/12/2025 4:53 pm, Marek Marczykowski-Górecki wrote:
> Marek Marczykowski-Górecki (4):
>   automation: switch to alpine:3.22

I don't have a copy of 1/4 to reply to, so here will here will have to do.

One minor point to start with, your hunk to containerize[sic] still
references 3.19, not 3.22.

The more major point.  Bumping to new Alpine containers is the point we
need to make it rootless without breaking the older stable branches.

i.e. we need a brand new rootfull qubes-alpine container (or somesuch,
along the lines of xenial-xilinx.dockerfile), that the test job can
switch to.

Then, as part of this patch, we rework the new 3.22 containers to be
clean (heredocs, rootless, drop unnecessary dependencies).

I'm sure I've got a cleaned up copy the alpine containers somewhere, but
it will need finding and dusting off and testing again.  I'm happy for
it to be merged into this patch if you want.

Ordering wise, this depends on getting the 3.22 rootfs artefacts first,
it seems.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 21:54:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 21:54:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178285.1502157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRHHl-0007Kx-NA; Thu, 04 Dec 2025 21:54:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178285.1502157; Thu, 04 Dec 2025 21:54:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRHHl-0007Kq-Jr; Thu, 04 Dec 2025 21:54:49 +0000
Received: by outflank-mailman (input) for mailman id 1178285;
 Thu, 04 Dec 2025 21:54:48 +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
 <SRS0=TdJQ=6K=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vRHHj-0007Ke-Ut
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 21:54:47 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d9044c69-d15b-11f0-9d1b-b5c5bf9af7f9;
 Thu, 04 Dec 2025 22:54:47 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SN7PR03MB7129.namprd03.prod.outlook.com (2603:10b6:806:32f::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.11; Thu, 4 Dec
 2025 21:54:44 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.003; Thu, 4 Dec 2025
 21:54:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d9044c69-d15b-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wmqRzuViz6cqlMsQOfYpkthaNtPoEZ+kJ4jriXCxEQhsLmHrvEQHJ1c+34gDJshCoHmgn7nbBOAky9smPcOVrDaPiDNGYgOmIzdcCOPDCSgyhMF4iRr1yRhSYt5UIkqpmxCt2fX7wMgbGTzwG5DY0OUs9DjkhfhaSlCiDy+Ppf7nsCzlBwT03cMwbBV1PLh6+uSczxfgztZF/JswioZi5Bt/k7fzmkWOGHGcdop5LxTMtEeK9Yl1UXZbYqpFKRibG9rts0rTlXf/uYlcTmNbIYa9bv1WgIwmoB1/r1DiszOSUsT0cSAxHIWtpPEYkEVMEVzNkiBc6BeIDdYCQO/n3g==
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=ph8kVgQlggGqAwLK034umbgOLoBGvg/LjuMxWOhhe3c=;
 b=WU4ZDbM5ql/yrXEJLbRnVj6QzyvCGy2DLrMyp6/8iv1thN9Tkd2GCKQigxYVoL/dHp+8/HSFJYSFQn1LCY+gAh2T2PCnOyI579OjQKjZqi/T6YN0t86+5/p6cKa6YOz5C5cISZNt6w1AA6B79fsomjDBheBPH8kzM3brlL58auvD0vENU/58ViiweinRUtG6MA2HKdzAaiJc0EaVba9zjTBHXpdFmRgiANo4hL0rvLAZPkdEjnVuHrnrVT4+ds9gYN1OrWyQdxMx9Wz62jngpo+/I3i1GSXWMa66ZgXQsD403oPDROEzjysuT6JYG6twAX9uCGdhCjUgiqHxevtcyw==
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=ph8kVgQlggGqAwLK034umbgOLoBGvg/LjuMxWOhhe3c=;
 b=BKbHgCS+uBq5PVHutkVCJ8d9PCNGBbWcVcKtQI26OZRyIIxU7x/eYYxVOMf8NriwczwjSK30J+HKl2BDVj8uz9EBmv/3rHNhhHPUyiWAP7zjmla+KSQ3QfFQv1z6uGRBHze23X0dStRCWmtBxzYLy8YSbsVppHuWCdEUR+oCDnM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <c9512f4f-7c68-4504-8492-237447586cc3@citrix.com>
Date: Thu, 4 Dec 2025 21:54:41 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v3 3/4] CI: Add configure --enable-systemd for full build
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <cover.1e7327573686b6fc1e161127e268e4042556d16e.1764867217.git-series.marmarek@invisiblethingslab.com>
 <ed2e7eda64da87351d6fd8590eee698598ef8e88.1764867217.git-series.marmarek@invisiblethingslab.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <ed2e7eda64da87351d6fd8590eee698598ef8e88.1764867217.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0641.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:296::7) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SN7PR03MB7129:EE_
X-MS-Office365-Filtering-Correlation-Id: a3dd047c-ee8b-4763-df35-08de337fbc02
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YWFNUjJJQzJ6NEU1VDBseTEwSFRsMVdCZFBiaDF4TTRJSGJJVEM4ZlRFWWVa?=
 =?utf-8?B?aGJOVjB0UmxtZkliL3BSbnlqcWVCUjVTNkJ4bmV1T0VtUmdGSGpiSzU0TDJU?=
 =?utf-8?B?VVJmREVxSWtGRE9CcG02cEp6YlJHQjF1Vjl5MjcvZXV4bDEvdzNZclVtUjNP?=
 =?utf-8?B?NlVYWHdKbTFQZmc2RzBYZ2hXWVY0d2k4Qjg4bWtFQWlPRlZvQXZHK2MrQ05B?=
 =?utf-8?B?SVA2TDAxOTI2QlU0OXdUUHZiMFBTQ3gzb3hydmxXVm82NlJvOXlZT0hZRzJq?=
 =?utf-8?B?b1ovdjgvcG1aQWRlM25WK0ZTR3lKd1Z2Y29SVDNNakRFcUhjMEloNVQ3cmpj?=
 =?utf-8?B?dUhlWFg4OGZac1k3SGQvVE1aUGEwVTErTzN3WmtweVYvY3NKTUZ0dUxGWURj?=
 =?utf-8?B?cXFlekZldDNLWUhmdUxJUzl5Ky9ZUkhlR1JMN3h2M3FCOTV5bWZyMGJGaFZ0?=
 =?utf-8?B?VXNxd3F1cithdFBudXhLY1pFdkkyRFF5SmIyZ242YlN6Nyt1elhKcFoyV1pi?=
 =?utf-8?B?amhrdkdkcGpEYmxMR0xNS0twUUZXQStGd0QxcDRzZmpnSTJ0NWJ1dmlMZlly?=
 =?utf-8?B?MXhuT1lwTHp2cjgzclg1UmNsSDdjWVU4Q3pnWnhheHFsOGxrbXlKR0RuN25I?=
 =?utf-8?B?a0pRTWpCbWpMN2V5cWptMHhjWlhvVGpMMUw5THdYQVh2dENlZTBTYVk3ZXJk?=
 =?utf-8?B?b0pTMDFjNVYyakhxZEliVG9mOHBTcC9yckU0c1I1c0c3LzFGOVlHenYraFRK?=
 =?utf-8?B?UzVadklKU2cxM05Fbm1pMkVMdytodDR6TlVzUEVlUDV0Si83ejU5MG9kS1oz?=
 =?utf-8?B?dTZuYXg4U3lPMzdxd0Y2TXRHa3pGNnlaYk96K2RVNnJZc0hSRnNwWE0xamhp?=
 =?utf-8?B?TmhEakFKTmI5ZkdkS04wTXZPVlFxQk04TTEyT2JJM09IOXgvYjlLaGw0ZW1q?=
 =?utf-8?B?d25LanAySnIxcDFYbXNnS1pSQVl2c3dmbWFPNnZ6b21BaFJLeURoM2JaYkZV?=
 =?utf-8?B?T2NBWHJsNFhLUzBoU3pTZjRJTmE2VkdZSmlmVDdReTdacG5zYzd6RVZHM2R2?=
 =?utf-8?B?R1pEKzQ2bENPdFZEOGhtMUcvcVVSbzhyVkNZYStaL2N5dGorbFBEbmZwUGFo?=
 =?utf-8?B?QkRSS2twT2xMTGVoVG1acjloWFpUbUdoT0ZwaEk5cC8rb1JzcitKYlp3ejQ3?=
 =?utf-8?B?Smc0UldMT0pGeEM2TGhuZVcrVXJNSHRKNlU0K3Fzek5vUHRrVDFJdjZOaGk5?=
 =?utf-8?B?OGcwQmQvZ0lHYmtRSzdvNllVSzk0eU95djJFT3pVUkpzUzczS0RCZDBFTW91?=
 =?utf-8?B?dFBLN2RhU090eVNMVHFjbzhUSmUxZ3VXUnVPSEJycjduRFhRQ2pFOUh5YUNy?=
 =?utf-8?B?ZFpqcWxsUmZQdU01ZVVMMlVIbnpkZVgzRFNQZnVCV0xHSWNSSHozTFdVbzJ0?=
 =?utf-8?B?V1k0QXl1bXFwdHZSZ1ZaYk92b1YyMHQrUFBNc1VGdDNNek5QT2xoZVZHMmhn?=
 =?utf-8?B?Wlhjb1pwcUFEYm9EdnFiVkp3UHplMk5vOXhMb0FkZGpPTDg1cjhhVUFWQ0ls?=
 =?utf-8?B?SGNybjJubWZIWDZmZkV4OWFlaTBJZkN6c01CNzlrcmIweTlUUVJxZkduVDdZ?=
 =?utf-8?B?TklQUktycmZ1eU0zNk5QUDJVaWRhTDFoeVpTdU1JZmRWUjhDVnFhUG16WG1q?=
 =?utf-8?B?SGI1QlhaajlFRkYzc1ZoMUxoc3gvT2d2b0RYdXp3SXg2Unlnb0pUS3d2alRZ?=
 =?utf-8?B?S28xUVluTk9rdzk5bm50MUFSS3FiVXZGZEtrdGZzNjVseE9EY3hsMk5aSHFk?=
 =?utf-8?B?RGNYN1lsZGdVNnh4STNSaGs0cGw3MlNjQkZyWXFjNzFOYmNmZEQwNVNzUWxy?=
 =?utf-8?B?WllhTGtEMWhUaktvYXR6K3ZqQWtkWFRjWTRRWnUvd3VKeEhHUjZhblgzYUp0?=
 =?utf-8?Q?gYZhCS1oYa99FRDhd9Qa4RL7VPsgYBdg?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eFBYVjF5RVZnYjhaY2N3b3JuY2xvSXhZTXZ6amhqUkJmZ3RiZkN4SG80czMw?=
 =?utf-8?B?a3BJYjhKK2ZGZHBSYWl4NVorL2xxbWJrSWxmb3EvdTMzT2ZIY2NoT0VrZU1p?=
 =?utf-8?B?TUtIaTJGNFVYRWJqZks2NzBKa3k3Y2tCclFVT0NPa0hhMnQ0SmEwTTc3WmM4?=
 =?utf-8?B?RndQcGZlQ3Z3MDZMU0hacHZ5S3lZVm1FMnY2eFpCdDIzWk1uWWhCU2UwN3ht?=
 =?utf-8?B?ZmFDeHVBZldZYzdUa2RwRDM2NUJiTWpPMll0cEQxVjRDdkF1aTEzWmNpb1RU?=
 =?utf-8?B?UHBGcEpHK1l6YXJ3bHVsN3IxdmtDUHVUK0pOZFRINzQ1aWxUM0RtRjJZR3VI?=
 =?utf-8?B?WkowRjB1ZUtFbTFkZTV3aTVRY0NieEV6aVdlU2trMVpXR0xidjU5THR5eHpZ?=
 =?utf-8?B?YXc4ckFsUEtwclplLy93TWltWWhKWmFlL2k1K29UVXhWem9xbndHeU95bEx5?=
 =?utf-8?B?ZXBpSzdUVzQ0Sm5yekc4aGFWVENIU3RpQmRVSHZWSWJFM2hLdVRpTW94NmNy?=
 =?utf-8?B?S3p6b045c2pYL1RSYTZUaFQrV0hpcmhhcTNqVW1zVHB3UWRmWnNINFIrVkU3?=
 =?utf-8?B?dVpsdURxY3NFZi85dEVpQllacEtxM1d3STJXZml3UHNsbmlVZDlXckpUUWls?=
 =?utf-8?B?UDQyS3M0eHNMUVczdWhkTUZTb3VNcTdKMlVidWlyTkZyN0NrNVoyZFgzQjhV?=
 =?utf-8?B?SzF0MkNKTDhRcmtkdDFmcHlwRWg3bDMyUUJleGpINkh6c1F2TjIvcmFSRlFN?=
 =?utf-8?B?SDdUdXlJaEtDa1JRa1haZlpMYzl4RlR2RHBYaHpaNWVSSFl2QTVrcHdsYUlV?=
 =?utf-8?B?ejAwZmNBSE5nQzhRYWRIdHM2Rjh4cmVMRWRoeldGTjFWdFlHUGY0MnNQdnVo?=
 =?utf-8?B?QU9DS2gzYUhROTE3Z1FMWFNnU3lZejllQVhFNVRKRGw4MzVWNzBPc3QzS2wz?=
 =?utf-8?B?NFFsQ3ZiODhNRWQxMFk2TFd6cS9PK01iV1VjWmNuQ0RFSHUwK25KbFBCS1Jn?=
 =?utf-8?B?SHEyVTRPL25HZE9LODAwTExndGZBV3dPUEFwWlRPZHAxR05UUHpUejJsUFJ4?=
 =?utf-8?B?dUs0VTFXR0lMeGNSdFFSWmRneVpORmFhcEhqQVNCOW9Fa0c4RnFldE4yZ3hu?=
 =?utf-8?B?N0xXLzdPQnhrUjJJT1lzU0R6VnM4YzRGanhIUkI1US8veDlOOXQ0SkhPemsy?=
 =?utf-8?B?WE1wMHlRYjJVTWNMazU3MjY5UjVXWkdUTWdpYnhkRm5vTGtPdm1wRzB1NW5i?=
 =?utf-8?B?amtOQWtwemRyZ2FMK0lkWTltRk5ReC9mTmNNd3ErZElkZ1ZKN09Zb1VtNzZO?=
 =?utf-8?B?YTVmU3RUVE5hVC84VCtYczhFc1gvYUpLSzRvL3FGWlg1cERGdUNHSnd1WFdx?=
 =?utf-8?B?bXdrUmFLbzYwTER6S25raUY0YkxqQkRHdVNMR3pINXpLVTRHRzVzc3U5NzZk?=
 =?utf-8?B?Mm8xV3FsZHhnSU5QOHo0MUM4QkhYSHhxeWZ2ZEJyZUtRNGU5MGdjR3cvVVUr?=
 =?utf-8?B?WEVMNWVKL2JaSU9LYjlYbUZTWVFNaSswWExzNFdXUXpxODlwUkwzZGRSMUpS?=
 =?utf-8?B?N0VyM1VsZ0hkVVgrenZ4RkY2MlU5WW52QVlUUVZPRFE3ZXk0Mml5MnpGN2R0?=
 =?utf-8?B?cmIwVFJjbGdKMVpDbjMvSDFjeWhRZjRmYzhBeE5hTStXZ1JNNis2M0F5Y0lB?=
 =?utf-8?B?MHFBZVdKcGNLSDFVQ1JBUnRSbGV3MnAwbXVkd1JUNnNjaFBpNmlBbTRBQ3N3?=
 =?utf-8?B?M0FNa3ZWV1plS1MxSDBtMVJ3TDRRdlhoN1h5cXJDS2NkVjRib2Z3N3ZXR1M5?=
 =?utf-8?B?TVV3Zkp3ZkhnLzkzN1pDVURvTjhLZzIzRkV2NFdOSFQ2YUo5ektuWHJ6SnRr?=
 =?utf-8?B?QzRxK2VJbVZtc2FxQnpBMGg5d0xrUjZOeGszWFJaOW1WNzI3RElxQWZYd0ht?=
 =?utf-8?B?c0kvT3IrUGRzTUtyR3hFN3Z2R05kcUFoUUNWd2ppWlZuaTdac2ZYRjRFNy9Z?=
 =?utf-8?B?VFRWL1hTTmdvcDJ6UU1JN0JOSDJuVTZSVC9oQ0czbVVlSnRpUXd1c2FRZVFY?=
 =?utf-8?B?SEhHR1VOYWszSkdtSUgrZ2p3Tm5PR01wNThwbzUxZVRSUnJUV2ZMV2gvajVV?=
 =?utf-8?B?OXlSK25GcVpVVHFWRlV4MlE5STVGc1FSVTl0RUpDSVRVa3IveUZtRmtwZTlV?=
 =?utf-8?B?NGc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a3dd047c-ee8b-4763-df35-08de337fbc02
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2025 21:54:44.2070
 (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: 7M/lK6Rwt8lVm7QZvausDTVPyN3akIAuwDNgJlDlm3jfkyt/lJVySpvhL8kE4vmA1YH0Z4B7xK3P6Hbflwy7OCAAJiw/lG8edLmoR+XD59Y=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR03MB7129

On 04/12/2025 4:53 pm, Marek Marczykowski-Górecki wrote:
> This doesn't exclude sysvinit scripts, but allows testing systemd too.
>
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Oh - I had a task to make this happen by default, which also missed
4.21.  It's bad that configure does the wrong thing by default for systemd.

> --
> Changes in v3:
> - switch to trixie
>
> New in v2.
>
> Requires containers rebuild
> ---
>  automation/build/debian/13-x86_64.dockerfile | 1 +
>  automation/scripts/build                     | 3 +++
>  2 files changed, 4 insertions(+)
>
> diff --git a/automation/build/debian/13-x86_64.dockerfile b/automation/build/debian/13-x86_64.dockerfile
> index 6382bafbd5bd..9387da453fea 100644
> --- a/automation/build/debian/13-x86_64.dockerfile
> +++ b/automation/build/debian/13-x86_64.dockerfile
> @@ -26,6 +26,7 @@ RUN <<EOF
>          cpio
>          git-core
>          pkg-config
> +        systemd-dev

Why is this needed?  Or rather, does this patch predate my breaking of
the dependency on system-dev?

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 22:16:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 22:16:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178296.1502167 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRHcd-0001p0-An; Thu, 04 Dec 2025 22:16:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178296.1502167; Thu, 04 Dec 2025 22:16:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRHcd-0001ot-8D; Thu, 04 Dec 2025 22:16:23 +0000
Received: by outflank-mailman (input) for mailman id 1178296;
 Thu, 04 Dec 2025 22:16:22 +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
 <SRS0=GYI0=6K=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vRHcc-0001on-Dw
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 22:16:22 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d5640e5e-d15e-11f0-9d1b-b5c5bf9af7f9;
 Thu, 04 Dec 2025 23:16:08 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DB3PR0302MB9260.eurprd03.prod.outlook.com (2603:10a6:10:434::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Thu, 4 Dec
 2025 22:16:06 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9366.012; Thu, 4 Dec 2025
 22:16:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d5640e5e-d15e-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ub4MBmxF/b8/IGCerG0rFXrWl4bR+EkYOLJ/gQvbVNKmkrZzLMwXWunluTlSfHWSYr/iSZN6MrTIHSzHb372l96IN/uSkdu51WAEYmhWDLXVLqUUnOiBhjjFb5kiZspu3UVTl93qChJJnyixrJq3u/d1plEli8T56cbl5nvcR17JzNvq6AkhB89+uxQc/MNF07VCJw5SJUebTloaluWUH1MqcG2RDBvrF2XlQP5T17sM1kaYSDfsh2BbzI0Tca2NHSA1kLfth5uTNl9U8WnO6bC7QtLncMsnaJePXNyYiNNF/MFY7qy7LvH9HF18EpPF7vO1B9b9dHQfhGi/56nq4Q==
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=XEpOz7Z8v/q7AWokUrghZoT+a2Ymm8BMWlMf6wU5JF0=;
 b=KnzUGMX83kOaQ5zDWx7K5+LRHCbqJINIixJtImpNQQRqepYvqlByEgQ74VvIAKZ2t47NI5S8hY6SUM5SdalIlmLXsjbXqZ5lms58JSk2L0cjtANI9EAdonPlDgv5b4BfuRTW9aemxjdXoPFr5odzLA30o+xcpL16KF/Jkdg+QnH0/4BUOVRL5Hp3HV+h2RaHmI2VMZCZavJFhNsEI3EpdNyghaYJXcRd+SUfCiiQCraciYZe3Ab4X95rj9Y1jdpqLskPHrigdJiuF2KgnAUPRN2CRGiWyoR7W1ikov4Lzl7A7Alsf5X20TBNCFAVnxFGJ8wEgCM/jHqpChLG+BEJJw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XEpOz7Z8v/q7AWokUrghZoT+a2Ymm8BMWlMf6wU5JF0=;
 b=nU96XCtQRVfLclvu62NxpO5vJ/ie6AqLnSy37PURCwfH/iDTDeEL2FA9S0D0ioltTIPjzFM2/E3QDLrNjqAVNnllxx2J5PqsJyp2fSIyuM9T8FHhBRYWaSx998RoMVqTJg8AQOKxzeYmO5lbuxB5D+lGRrjNeqTyN2IfndylSB3BbhkQ5bu/zp7V2X7prhxqCkLGwCnNZZ8+yOHEyailh1mh4WSk9Nj5wMoIRqT1SoNL0e4qHW+wXSOIQX7EOVmz0Qt77rU0WCy8p+99S/4wXAvv3VTnBld6Thzu3OZyCZFG1GPFdRkd2Kd2GGhdwI6lYXzHusdGmSPJs3efm2z1VQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <33a4d97c-8ad6-47c7-b42e-a5eaca7296d7@epam.com>
Date: Fri, 5 Dec 2025 00:15:55 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] coverage: add extended coverage capabilities
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>
References: <20251203222436.660044-1-grygorii_strashko@epam.com>
 <d477a21c-b621-46bb-94ce-4775b2b6a90e@citrix.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <d477a21c-b621-46bb-94ce-4775b2b6a90e@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA1P291CA0002.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::26) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|DB3PR0302MB9260:EE_
X-MS-Office365-Filtering-Correlation-Id: a9c21350-3e01-4cb3-4bf2-08de3382b734
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Qytwb3dSbVdrQUFrZWNQNWY2b0tJaUlER3dnUlF3Sk9vOXZuVjMwM2NiYjZo?=
 =?utf-8?B?SXBNOVo0VUNLcFR2V0x0aE9EWFZsZGs4QzlqN3VqS1RYRnZLQkhBV3ljaVN6?=
 =?utf-8?B?ZkswaURmRGh6Q2R5SE5ic1BseDRueDNnbG9xTGJxbm9PMHo5bXV5ZFBmRzdF?=
 =?utf-8?B?cHJ6SFM1Y01ORnhrN3pNczVjRHlJMURtWUpjY0pZTTVyWkg1Z2QzTWJuaGZN?=
 =?utf-8?B?RFhtcDlGaktHSVN0U0I3WFMva2dMZUFYdUFtb3RtN0x5bU8rOHNoZnVCR0dM?=
 =?utf-8?B?NldiQmRLMzlBam0wWXY5V21XUmxuRHlESDZkdkhDcDNBR2FsUmRNb1B4RkpY?=
 =?utf-8?B?aHdmc0x3aUhCcHdDZERpWE1VU3hwUEhJcmpBdlV4bDJ0OW9jYkdiN3VkQ3hV?=
 =?utf-8?B?THlkYnZrTXF5ZFBQT3dyMlVBN0NYOUF6a1hidEIya2JMN1BhRUlhVTZqaG0x?=
 =?utf-8?B?dTZlUWJ5VFJacThla2xtWkJBUExlNGxMUVl0UTkzUzdkTDl4cnZQSHlwdjZk?=
 =?utf-8?B?V2ZZVEVYNkVXUUhIVjBpd0lIYk1hTU5wZEo2MzN3cVo0MXJYK09BTU1VTS9F?=
 =?utf-8?B?Wk5UTWtocWVna2J3MmUxcDQvRWJEdm03bWl2NTV1ZzJpRkJWb2pwcThvZ2hQ?=
 =?utf-8?B?K2dIeWxMVHByT2dyaEQyWUMydHVjeklJdHNsWi95Z3NUWUFwNTZEWDErdEF6?=
 =?utf-8?B?MmIvWm15OVBwNVcrNVBqV1huS0xFUEhMNnpEMnJWY2RhOE5iR3A0M3VlVFNh?=
 =?utf-8?B?VE9DTWFmZXVJcFAvMnZRWVFJN1Vma0xHMitoWW9mR3BMMElaQ2ZUVWhTQUlJ?=
 =?utf-8?B?Wk9VcWtudVJQVk1xSEt4cmpPQyttRStkRitOUWxoVWhoT1hxR1JPcThlWjMz?=
 =?utf-8?B?R2xCNzVmdDRHTTZGcmpPNnJSMHF6UTRmeHg2LzhBOXNodG1iQ2pqK05XOHZn?=
 =?utf-8?B?MUxhU3M3WUNNTjFvQWdCWk9CM1BBamZxV29QR2RGSlAvcVh4ZkxpQUlmd2dN?=
 =?utf-8?B?ejZTS3F4UXZtUXJabzVBc3didUNNTnhQVlZnWEc2MWlTUHJobGVWVXJpWFA1?=
 =?utf-8?B?L2h2Tlh6REJVbzhBaExCQTFYcUFVY2ZGbFdqWFZ2cXRBa0REQUNzeWpvQlU1?=
 =?utf-8?B?dVZEM2s2N21Rb29RQkh0UTJ6UnZZUk11eDVxWE42SUxDWm9aSFpaWkRjd3dp?=
 =?utf-8?B?b3pmQ0lJYTZ5bFR4WXJnZmVTUVI4WHFwdjNoTFp2MVRqNnBsaFl3eHV5WDVx?=
 =?utf-8?B?M1dLbVcxV3RrRE9qdlhlQnJzbkRmbHdiUzAvSmZ5bUdvRUQxdU1XUTMzeUVP?=
 =?utf-8?B?VGhtRHB0eDJIdGF2b0NCL1ROTGpJbmRSTjRhbWprYzlZK0Z6cDRZM2ZJcjQ2?=
 =?utf-8?B?WXpyZk1WeWZmZ2lyM1JyVGFVMlp5eXpvSEJFeHRFajVoamg1STF3K1U0d2Fk?=
 =?utf-8?B?VDNXVERuWVBaSllxdDVMVHBuaHBwNFZpUHFhaG02VFZORkZFVVBrNG1WVVpn?=
 =?utf-8?B?Qk9NUXVhNmxFZlRSNFppa3Y3WVFZTlFWL0szWHlyeHNya3AvNVZFVi8rVmJL?=
 =?utf-8?B?RDlGS3pXTWtWakN3bEREbWI1QXI4bHFtQjZnSktxbWhqb2VNWW8wOVhCVnNw?=
 =?utf-8?B?RGdwb2tvaVQ3TElMSXNoRnNqMnJlM080Tko1OWZjeHpQcnZJZVNWcWVnNFpt?=
 =?utf-8?B?MWpqejhvbkMxWTMyODhxQWRROGVrSkJ1WnpLWU1wZlNmckZaZ090SFhrbFEz?=
 =?utf-8?B?SnF2OGpDMkVhL0hGZnM4SnF2b1o2RU54a0E1b2IyaHpIVmtENFI0QlQyaTZQ?=
 =?utf-8?B?VmRMeXYyY2N3QTBXdkp0OHpiaUw1bHJXaTZIalBSa0dzSzJLdGRBQ1lZVGgr?=
 =?utf-8?B?MmgvUk5RYnR3TEordEZvL1JrMzBER1ZUbkM2ZlY4NjdQRVZYbTBBRHZPUmV4?=
 =?utf-8?Q?CmKe6TBCyFMYJbd98ImfIdoBjZgfOqyC?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TTE3ZDlIZHBQQ1h1L3FseFZnTzNvcWVHWU9Yc0dRRElSY1NxZ0szQUozVVZv?=
 =?utf-8?B?WUY2UXlvTFdEWlVjU1paZUpCR3d4N0wybVZBUXpyUWpYbXZVZysrQ2V0Q3la?=
 =?utf-8?B?enlTaml3TldGbjRRQ1k2c0VhSHhNc0RKWkZQZTQ2ell4MEJCbVhOMXFIck1E?=
 =?utf-8?B?VHFKZmRESzVONHhKRmxtQURoOWJkamhJVU8vTEozVjhYcmRXM2YvK0hPWCsz?=
 =?utf-8?B?Rzg0RUFBK1c2MTg4eWMvT1IxVnIxOVRKZ0d3R1FBZmR1NFUvUURaUGJ6Zkdt?=
 =?utf-8?B?SFRpSkRuN3c4WCtxYnNpQ3VtckczaElEUnQ2UXlDK0NxODhWUkdqTjhtNkFk?=
 =?utf-8?B?Y050ZitpdWxKNGd0SDk1SUlqOTQrU0JvaFZiUGVZUWJpTkVqR1VIdzlHNFo0?=
 =?utf-8?B?ZTZvc2hwUmkzRzBmeFJMbUt5eXJFc0x0cDZNZTVRbnV3MmMyRU5XcXZWdzAy?=
 =?utf-8?B?Q0pSNldRcldad0tNYmdhSUtyQWtVOGR5QStQRXowT0FKWEU3bDlHWkdIRDBP?=
 =?utf-8?B?TGtUZythWlR0Q1JRRVlSQ1pVL1BQMGVSeVI3TDJwUU95ZlNUM1JBeUxlWnZR?=
 =?utf-8?B?eTZpVWo5NUJhV0QzZ09jeERwUlRYdHlVMEIyUHdqTE9PVktZWkJxd0s1TXd0?=
 =?utf-8?B?dW9JeDY5c0E4aTljdzkwSDAwRDBYcDR0c3FkOS9qV0o0VkZINzVDb29taHRh?=
 =?utf-8?B?L0lVOG9BbGJXUEdYbDFRd2grNUlGUnlPTG4vQWlHZVBJejI2cktBY2UvQmY4?=
 =?utf-8?B?WUdGeGdVL0N1UHRuY25iNFpMZWhkOEtyVkw1NHN0dDRPR0pqNVB2ellDN2pT?=
 =?utf-8?B?SWI5TlBJV1o3NFNhVXVlaHZFeHNkb0NaTWNHMjdxbnYvSkxUK3ZKa1V2RHVK?=
 =?utf-8?B?ci9WM0JGUDBtdDZnWlI4TmRLMGNFOXVuRUY0anRGMEJ5WThOUEpYVGVDWUh1?=
 =?utf-8?B?ejNCS3NJYkt3aWlybVlRdVNSQThlRGNIcDgrZURCclNKMHlxNkZQREREZ1dO?=
 =?utf-8?B?RGROY3FOUUgxSjUzRDV0bjcwa1d0WVdlZFpTM3lGVXY4cHh4aEx0VDlzRGpi?=
 =?utf-8?B?WDJvam5Ua0hmZGJsMEp2WCtkc0ltbzgySzl5YVZpci9HeHlIVWlDcmtBU1pl?=
 =?utf-8?B?YXA5TndqWG9VNlV0ZHI1WFlhd25zQkxBMjUyWkE5K1JaN01VdE9tb3RIbGdx?=
 =?utf-8?B?TTJXNThwNThoTjU1SUhGQ1JkblZTa0xzeEpTYmcxVEp4WWlyQUVkTDNPemJp?=
 =?utf-8?B?Z0NyZ2JKaXM3dEJSdnlxbmZvTlduS3RDWVJzNVRNOGZDdytmeVJoOVhVb1JD?=
 =?utf-8?B?UkJnSlpDQ2NWbU1tdHNuR0IxSlliRE0vK1hwMU5vVlRWNGV0NFBEeG03RSth?=
 =?utf-8?B?RERGQ2xXN0VzZVlzMnZHNEhPWjAvMGZocUtUdGg4QkhIQ3JKZ1pUb3NxVW11?=
 =?utf-8?B?ZVY2dWhKSEgzZXMvdjM3TmRWbnFLTHpnb2tBSW5kQlh1cjc1TXhHbVIwOWlo?=
 =?utf-8?B?K0YzTWVDZDJ2YlBKakpaRlFSWkNwTjJGUWhtdy9KRGxHWHJjSm56ellBOEgy?=
 =?utf-8?B?MmE0OHNpUnFkK3FoWVZ2Y2UyT3ZUNTNXaStydzZocEZxbFA0MkpHTXJrQ3VN?=
 =?utf-8?B?OHlibndab1RHS051d0R5c01DeDNSa0NKUFZYcXJRSGltSVB6MXhQN05qY0Vz?=
 =?utf-8?B?dEVvQjl0aUlWYzBZSW5BQXVlaE4yOGxSaE4vVGxyY3JBYmtpcnZWeHc5dTIy?=
 =?utf-8?B?OGY2ZTNaN2Q0TzZQTTk5cDR2aHBVNUhJKzhaRDFaVjBVV1ErYWVGekV6RmJi?=
 =?utf-8?B?anptelRBQTZZQ0IxbU5FeWlwZlFUeDdtTHZhTnBqOUNSU21QRVpyU2hvSmt2?=
 =?utf-8?B?cUVCU3V5cVlTckU4NHE0OE5xNnhNTlJYRW9GYlZjVlNOM3BzMER5VXpoWkU2?=
 =?utf-8?B?U0FtbzJ5alFrYUhhVXRIMnhrZDZERy9TdDRmTGNza2FMcERLcGh6OGkxVWlJ?=
 =?utf-8?B?VGM3YzAwendXYU9HY2JwMnhuNzNxVnY5MncwcHlGS0FnZkhoUlBQUVl0aTds?=
 =?utf-8?B?czNUTXBvUkNXMkNHei9IUDI3TDFkMXBCc2ZKaXdSNlJyVzFSbWtmeml3cTRa?=
 =?utf-8?B?NndCSmpXS1BINVVKeFVVUlNjVDBvbWwweHpTQ0F1ZXExQU01K09zcEViTFdy?=
 =?utf-8?B?N3c9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a9c21350-3e01-4cb3-4bf2-08de3382b734
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2025 22:16:05.3474
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: rYvULseugfjvVVVvrGGgkbLwCreaczOZwCei8+3qe/a/2TLTI70uFRmZML5hT3TOKtkNBFCFPRdfzWKVDeIMVHKXdyCsR52YxqeKcms4mbY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0302MB9260



On 04.12.25 12:02, Andrew Cooper wrote:
> On 03/12/2025 10:24 pm, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> Added CONFIG_COVERAGE_EXTENDED to enable coverage for .init and lib code.
>> When enabled - Xen .init data will not be freed.
>>
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> ---
>>   xen/Kconfig.debug          | 10 ++++++++++
>>   xen/Rules.mk               | 13 +++++++++++++
>>   xen/arch/arm/setup.c       |  2 ++
>>   xen/arch/x86/setup.c       |  4 ++++
>>   xen/common/libelf/Makefile |  4 +++-
>>   xen/common/libfdt/Makefile |  4 +++-
>>   6 files changed, 35 insertions(+), 2 deletions(-)
>>
>> diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
>> index d900d926c555..3e04e1a3992b 100644
>> --- a/xen/Kconfig.debug
>> +++ b/xen/Kconfig.debug
>> @@ -44,6 +44,16 @@ config COVERAGE
>>   
>>   	  If unsure, say N here.
>>   
>> +config COVERAGE_EXTENDED
>> +    bool "Extended Code coverage support"
>> +    depends on COVERAGE
>> +    default y
>> +    help
>> +      Enable Extended code coverage support which include .init and libs code.
>> +      The .init sections are not freed in this case.
>> +
>> +      If unsure, say N here.
> 
> IMO this is unhelpful.  Noone wants to opt for the model we've got right
> now.
> 
> Instead, I think we want:
> 
> config RELAX_INIT_CHECK
>      bool
> 
> and have CONFIG_COVERAGE select it.  There's no need for any user
> visible option here.
> 
> 
>> +
>>   config CONDITION_COVERAGE
>>   	bool "Condition coverage support"
>>   	depends on COVERAGE && CC_HAS_MCDC
>> diff --git a/xen/Rules.mk b/xen/Rules.mk
>> index 2b28d1ac3c18..6d66a2332fb0 100644
>> --- a/xen/Rules.mk
>> +++ b/xen/Rules.mk
>> @@ -260,6 +267,7 @@ $(obj)/%.o: $(src)/%.S FORCE
>>   
>>   
>>   quiet_cmd_obj_init_o = INIT_O  $@
>> +ifneq ($(CONFIG_COVERAGE_EXTENDED),y)
>>   define cmd_obj_init_o
>>       $(OBJDUMP) -h $< | while read idx name sz rest; do \
>>           case "$$name" in \
>> @@ -272,6 +280,11 @@ define cmd_obj_init_o
>>       done || exit $$?; \
>>       $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=.init.$(s)) $< $@
>>   endef
>> +else
>> +define cmd_obj_init_o
>> +    $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=.init.$(s)) $< $@
>> +endef
>> +endif
> 
> This wants to be something more like:
> 
> @@ -261,6 +268,7 @@ $(obj)/%.o: $(src)/%.S FORCE
>   
>   quiet_cmd_obj_init_o = INIT_O  $@
>   define cmd_obj_init_o
> +ifneq ($(CONFIG_RELAX_INIT_CHECK),y)
>       $(OBJDUMP) -h $< | while read idx name sz rest; do \
>           case "$$name" in \
>           .*.local) ;; \
> @@ -269,7 +277,8 @@ define cmd_obj_init_o
>               echo "Error: size of $<:$$name is 0x$$sz" >&2; \
>               exit $$(expr $$idx + 1);; \
>           esac; \
> -    done || exit $$?; \
> +    done || exit $$?
> +endif
>       $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=.init.$(s)) $< $@
>   endef
> 

above diff is not working and generates build failure :(

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Dec 04 23:11:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 23:11:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178317.1502177 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRITo-0000kT-6c; Thu, 04 Dec 2025 23:11:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178317.1502177; Thu, 04 Dec 2025 23:11:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRITo-0000kM-3v; Thu, 04 Dec 2025 23:11:20 +0000
Received: by outflank-mailman (input) for mailman id 1178317;
 Thu, 04 Dec 2025 23:11:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ymfd=6K=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRITm-0000kD-MH
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 23:11:18 +0000
Received: from fhigh-b3-smtp.messagingengine.com
 (fhigh-b3-smtp.messagingengine.com [202.12.124.154])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 816c3da8-d166-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 00:11:04 +0100 (CET)
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 33C287A026D;
 Thu,  4 Dec 2025 18:11:03 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-05.internal (MEProxy); Thu, 04 Dec 2025 18:11:03 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 4 Dec 2025 18:11:01 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 816c3da8-d166-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1764889863;
	 x=1764976263; bh=P3K/8U5266TVkSvtw0vZMmaBluiNEwVZYdSIQ+weyu4=; b=
	ShYkVB+oMcxO/c1MlhjgaUilKNp5iDa/jvm0H0of6z4btqCknGFI5A1O5A1HgFO4
	1f1g1bqdx6DKSGP53Ugrnun8n3ab7efBRSnsrxlndRTOF6u7HdKun9nGgfuIfiXi
	iPs88r75NoxKicqampwPdZIlcthZLoNpLNGjzP4OqA1rL/2yIXUASYK607SY8z71
	xEDx5y3Ubfuu6lyPqtX3SEL+oXCu/ARR5Z+EyhPqo2SWihGWESra4yoYztfPoXdo
	fU6NlbCBJh9sptAjS7rCC9yletrg5FnR2VfceSmj1LOXmlx5cqVMcYskJB5XI2us
	p1chbrKUaKuatOXrbgXOTw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
	1764889863; x=1764976263; bh=P3K/8U5266TVkSvtw0vZMmaBluiNEwVZYdS
	IQ+weyu4=; b=Fcl5HpdGOs6Dn/p51UqdKrBAgvw537Mp4MJ/Bo+R/XmaQGHlrgP
	jvkmD2cRGVGEtGazCSF6itgY5IjsheM6ZVFXWJfF3RECKcTQrVpiqbdnNHz5DW9Q
	aCdobqFWKJV5Ek+46FTAsk8TSWT4toolWZMCgqVmSXQeN0DlxbPw05davZDVkUel
	cfU0ktoXeoWVwbLA886XmyrHnHaVOzDBsUnUBeXUswNywnn/EPupbiruYdeRHnIh
	UMj/v806/dxz5Bpm8m/L8CoJbx+FXonP/Ado75eaR01iNJmkLD2yctxWF1/JPZDx
	w0cciysK2ClUp+4ZYCOtIvCx0qP23sIhflQ==
X-ME-Sender: <xms:BhUyad8pFEbBHIy2ERRjZXuXxYCIOybJEZSeF2Zo_c4LXKZzWcvXHg>
    <xme:BhUyaYvu9lJ84ZOuE2Eakt8KbY2gjqCm0xX0cpEHwuKd4BeD50bpZrR3HfSES1W7F
    Em6R7RF2igORkGrjYzjGbSWYRRq101uywDEcj-BsinNsuhUIw>
X-ME-Received: <xmr:BhUyaQCBgg28omUgjQAmMfZ161vB_KHswf-doYb7A0jfawltgsmDhvfYKXsVEDO-YmkiHnmH001D-E59MFKbhWSSx_aujSz81cM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeikeeiucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    epfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcuofgr
    rhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvihhsih
    gslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepveeujeetgeel
    leetudeuvefhtefgffejvedtvdfgieevheetheelgeeuledvjeevnecuffhomhgrihhnpe
    hgihhtlhgrsgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr
    ihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrd
    gtohhmpdhnsggprhgtphhtthhopeegpdhmohguvgepshhmthhpohhuthdprhgtphhtthho
    pegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohepgi
    gvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthht
    oheptggrrhguohgvsegtrghrughovgdrtghomhdprhgtphhtthhopehsshhtrggsvghllh
    hinhhisehkvghrnhgvlhdrohhrgh
X-ME-Proxy: <xmx:BhUyaQX7lsV6dasmeHJ2WG34CJBXaGFvqfASMuZzu_Fw1LtWHXN73g>
    <xmx:BhUyaeCUrDLltinpp11jgYkqnBzveQa6WlQU_sNpo44ENAXQ6YgYnA>
    <xmx:BhUyaT_xUm7biFjH7JTaF2l-74PelJ49NZotlciKcBPWyzEjlGmGZw>
    <xmx:BhUyaVFlDg5GVvqrcYXbLpP4CjNedd2wZsjfT2cb36ONHn1d3vnF6Q>
    <xmx:BxUyaTjn8FK1rZMZMfkvdMAh_Lc9U5vgWPgcjBYjvOZNuiMfjgoVUNmQ>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 5 Dec 2025 00:11:00 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v3 3/4] CI: Add configure --enable-systemd for full build
Message-ID: <aTIVBFMAaVj3Kh4G@mail-itl>
References: <cover.1e7327573686b6fc1e161127e268e4042556d16e.1764867217.git-series.marmarek@invisiblethingslab.com>
 <ed2e7eda64da87351d6fd8590eee698598ef8e88.1764867217.git-series.marmarek@invisiblethingslab.com>
 <c9512f4f-7c68-4504-8492-237447586cc3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="5Mr9fUc86hZrINtM"
Content-Disposition: inline
In-Reply-To: <c9512f4f-7c68-4504-8492-237447586cc3@citrix.com>


--5Mr9fUc86hZrINtM
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 5 Dec 2025 00:11:00 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v3 3/4] CI: Add configure --enable-systemd for full build

On Thu, Dec 04, 2025 at 09:54:41PM +0000, Andrew Cooper wrote:
> On 04/12/2025 4:53 pm, Marek Marczykowski-G=C3=B3recki wrote:
> > @@ -26,6 +26,7 @@ RUN <<EOF
> >          cpio
> >          git-core
> >          pkg-config
> > +        systemd-dev
>=20
> Why is this needed?=C2=A0 Or rather, does this patch predate my breaking =
of
> the dependency on system-dev?

It's still needed, without it the build fails:
https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10959608099

Likely related to e54a6cd6a1f3802274cd3a58b07df5f012342192

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--5Mr9fUc86hZrINtM
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkyFQQACgkQ24/THMrX
1yw9FQf+KfLWn0LDlpbVGNCo30IUqHkr38giLW1xXqwp++5emZsqQVkyZv8vjUch
00fs2rpg2V1Q0g9FyBV1wwnaWIZCfJ4ueD1OCUZdbhOeHVFVZiEVLXd9kVFVhwDT
3nxtNRwO/VqF+uaD+FDdBIHrUVZiSWUA2W2FaVfXEGaW3+HyJ6pq6pQknOH5MK4E
UNF7RfD8t2mVUAJOXAU/J/KeImmKTy+SlwDSJEeWvTRpw0gmvSKjMf33PutctqCy
52171XKVmtNv/a9mMoNCyBIz14HYUXCZG05eklxQIp8vmoB0t5sgtmvj6FhTEnzw
68ZmvGRYeHoSD31lWRe9e9LlFral/Q==
=cXfZ
-----END PGP SIGNATURE-----

--5Mr9fUc86hZrINtM--


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 23:17:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 23:17:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178332.1502187 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRIZU-0001Pw-WA; Thu, 04 Dec 2025 23:17:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178332.1502187; Thu, 04 Dec 2025 23:17:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRIZU-0001Pp-TF; Thu, 04 Dec 2025 23:17:12 +0000
Received: by outflank-mailman (input) for mailman id 1178332;
 Thu, 04 Dec 2025 23:17:11 +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
 <SRS0=TdJQ=6K=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vRIZT-0001Pj-6g
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 23:17:11 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5b2c881d-d167-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 00:17:09 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH7PR03MB6917.namprd03.prod.outlook.com (2603:10b6:510:12c::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.11; Thu, 4 Dec
 2025 23:17:06 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.003; Thu, 4 Dec 2025
 23:17:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5b2c881d-d167-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=y/gsbXxpHFx+7lGaWpz2BTzZxXK7Z8b89I4L4wcGQ65juQ+AtihkBXo2uFh/DhgknTO5lh2LrruFu89XwK5sHISKHVmH0NgURMPXFXSvhDHLsPvJIlhVIgKJPV3A0m0KU2DUg9Y6NHDG3qaL/hjeNBddYmlW1G0Ycj33ghfILLY5JcSxWWSoX6c+kyrqtA7B/n21G1cCRmMPJNRGvtR1p2IcsTMRxEfdsmenN3RJ4nHjnDAMb+IHr50KxrYnfFPGKW1hnIbwZ3zQbT0+9VCKuBrfePVBdeqtCGpaolAIwBx3IZa6sGr3i8Hz49NbQfo4Vbufu5QdM3sidIBrRRRoiA==
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=8wncNBDQqHGIQ3mhKNWqEXQKbaCDeXmTRDypQ7/Bfvw=;
 b=rMoaiJDgfViMhKVqNp7AnFqQY/OCv3s623Si9FxNPA4fTVfudHUNRqPEfejd6fuxWtmgxGedsnwWtR17w7woCwchD3SrRDAxRnIN3r0cqu4qRKnxo7JP+PUYZ0LKNBLB5iauQLAjLdGIOX779C4Nbrijyt1EwHhT948+2VqwdsjLB2Xf4GfY7PTrrmOfuBqcZoNfZA0E50atVFI96ZwbvLyrFn/C2j6xn/qGbV+xce6EIjUpDf7G8CuGQqdKbjvFToYUR+3MvqQvMcu1lwH7lFWWW3XOj3sP+u0OwABrdNaKskfNrEg63Z2fXy6Lz3+uzHb/msTDtylmmQ7nDNZJxQ==
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=8wncNBDQqHGIQ3mhKNWqEXQKbaCDeXmTRDypQ7/Bfvw=;
 b=pvZeApv7Uj6qLkKgwkh6avd6jNBnqdr8KYq7fvYhZZknVITh9F9UDiwBYT/jqgABfnEDAieQl37jGihDeW1Wfut0h4ECRgpdEd1DLHA+GCitur7hMHU64sPX/Q3CxKIsunOsI6ECZT8bpJ0o/v8Rn/9MolviFdeYMRlRTA2bZ/s=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <72bab1bc-6549-4f5a-b521-a4b3c66f7030@citrix.com>
Date: Thu, 4 Dec 2025 23:17:03 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, xen-devel@lists.xenproject.org,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v3 3/4] CI: Add configure --enable-systemd for full build
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
References: <cover.1e7327573686b6fc1e161127e268e4042556d16e.1764867217.git-series.marmarek@invisiblethingslab.com>
 <ed2e7eda64da87351d6fd8590eee698598ef8e88.1764867217.git-series.marmarek@invisiblethingslab.com>
 <c9512f4f-7c68-4504-8492-237447586cc3@citrix.com> <aTIVBFMAaVj3Kh4G@mail-itl>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <aTIVBFMAaVj3Kh4G@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0459.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a2::15) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH7PR03MB6917:EE_
X-MS-Office365-Filtering-Correlation-Id: 8172d9b4-f7ef-4ae0-1f0f-08de338b3daa
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SXZXb0Uwa05nMVJqQzZIOTFnSTZWQmpvUW5DMnk2elR4STRhSGQ4M0lPdWdX?=
 =?utf-8?B?MU1rZzRhSmdzOG5vS1kvN2ZGbkNxTHBxOW8xb1UzRDZTUUhHTnA4cmg4WWZS?=
 =?utf-8?B?YW5PdTZObUNKVUVTOEdUWnlQRVRuNEoybEVGeFdXS3RINzhmam12aG9iS2dJ?=
 =?utf-8?B?K1ZjRUtsam1sNHdQN1Z0SW9xcXQyanN0eUQ5WEtsME1rMU9UOERMUC8rSkt1?=
 =?utf-8?B?T1dpK0trNmRKTm1xbWRNRWs5WE53MytqSkxiaDdtNzl3WlVFTlNtNnBIZFZM?=
 =?utf-8?B?MEhTUWNodWt1b0lDTnE0cTdMZ3BQQjk4NUoya3FhUTd0Vi9aVWVQWnQrVVRG?=
 =?utf-8?B?NVJSM2RpaElkcGkvVzNwOTZoUWhPQWlybjkwWWdVbWZqT2tUWktnLzhFMUQ5?=
 =?utf-8?B?TU5TVnZSdHFrd2lsK3plaUVCVUpYNlBxUzJTeG9ZbmUxZDV6L2FTUTYxYy9u?=
 =?utf-8?B?a0NvaGtvR3VFRDdpV0hPb0owbWYzRWdmUE12OUtHNzQzWmF3Zm1jaXRNaVNV?=
 =?utf-8?B?MnJadDBtT0ZDTGN5dE0vMTZSMEM5YnAxVkl6WkVheVhUZGZGQjVadHBpVnRC?=
 =?utf-8?B?UkZ5dVUyWWxOeHBiWG9JektXNlVjY0FHclI2Uy9oUk1kc1F4amc5VE5wODdq?=
 =?utf-8?B?bDNiakYrdXlYRGVMWGgvV0hRTjE1S201VW5XaTRDQXgwVGpSZCtmcVdEV1Fm?=
 =?utf-8?B?RnptSDlNZk8wZlIyNStVbmVaVHNQckZubmZhYlFPakV5R0NzellSdlJiVk0y?=
 =?utf-8?B?eXM3a2ZUdzdWWkV0RW9OVjF2cWFxem53Rm5vbVBEM08xeC9MOStwQTJ1YnBi?=
 =?utf-8?B?aDhZTThBd1Z2RlRlQ1Z0aVNSblVkaUc2NWtKc3pGeWk5VU9EOXJ0em5hNm5t?=
 =?utf-8?B?NXhoWFA3M2hhaGRRSm9SbThJWjlhaGx0bDlwTTZsK0txRW0ycGZSb0pNMEZV?=
 =?utf-8?B?TXo0OWJReDBUejlJdGVQbHhKWHRVaVVnZElMMUhtb3IwbHRpV0hxcStoWGFK?=
 =?utf-8?B?VjhLeHNPN2kzOVhRbm9rK1lmYUk0WDNCU1MwanRhL0c4RWg3L2dGRjZBUlNo?=
 =?utf-8?B?ME9PTnBwSTRadmhNZWNWSkZESEhadThNVEs2SlBGWXBLalYwMWo3NlRSWGlw?=
 =?utf-8?B?U2V1ZFp6NkhCMU1sUlRid2JHajZmK3lpUTVLRDgvanc5SGMzcWp3Y0NkcWZp?=
 =?utf-8?B?K0lxem5ILzRneEx5MzIxUTgvbGxYVHhFa0pLY3R6WnRPUjdVZDdKbXl5Q2pl?=
 =?utf-8?B?NWwxVlJqYXBaS1dJRFMvclZidmFsNWIzWC9wNEdtUUROZyt3MXhBaTh2SzZ6?=
 =?utf-8?B?eWdBWVF6RSs0TXlRTExBSXlkc3hrWWxTWHhOS1NVWGhuOEVQN3hBUGZCZXc3?=
 =?utf-8?B?MFZlUmlhTlZKZFo2QldoaXNVem5hVWdVVkpaeWZRYmV1S1BHY1BYSEhvUG1E?=
 =?utf-8?B?Z1BQWExkdEVqcDJYZ1dwYXdmMjBQeFFkc001SGJsMG5kK0M2RCs1a1JnZFdT?=
 =?utf-8?B?TXI5VzcxczgzNmF4TzNOelVtZUJkRWpLV2FDSjZOcEwyN012KzM2aUFxTTdx?=
 =?utf-8?B?Z0l3eGR6d3owNzh2eVJibEd4V3AvdFVJZFVRVVRFLzB0RS9UaDRHcDJvNjVn?=
 =?utf-8?B?V3pmRTJPQS83ZkZ0cktlNmoxd3BhaVIweUhwc0x1bStMNUxmaUxNQSsrd2xt?=
 =?utf-8?B?clBwSVlSQjhVRlRsdS9hbFJ1N0J1SXFjMmNvbnQzZ3pDNzErdVFjYVhrTVpD?=
 =?utf-8?B?STgxQVZrbXUvSjI1TGVGbmIvVk5yNlo2dHNKWS9IWEZoMEVXRjdvQTJLVjk4?=
 =?utf-8?B?dWU1MmFpOXNWdmY4aWF4Y2ZIaWx0Qk00K2xKZ1p0bCtLU3BWTlhLVStheFZN?=
 =?utf-8?B?Zk5TeWYxMXlacmZvdVFDWHl0d2tROElicFNxWWZaK09qSE81ZmVxTEhNVHdD?=
 =?utf-8?B?RFdsaGRNZjFaSThlRUEvQzgxMDhSTTd6QVg4YnBFNjRPcUIzVDVMZlhvT1Rr?=
 =?utf-8?B?dEloZC9QV1F3PT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YVpLYXJuMks5Zml3cnl2WUN4ZTdDN1lRMkdVRWVvOHQrb2ExenNZS1JlVzVp?=
 =?utf-8?B?R29zWlB0NXU0Ulp5ZUZSNjg1ZXI3bEFPQURSeFNQa1R6cTd3ejNyMnRxWVhG?=
 =?utf-8?B?ZEVpZU5FRjFhRXZRYmNVUFduVEVYZU51NUlERFZiZ01JK0VjUXhhRFdaZWZj?=
 =?utf-8?B?NUhhaDF6bC8zUURCV0VMTW5OSk81WDg5VHFlRkc2K0s4M1lKVmZDa2tldnFq?=
 =?utf-8?B?eVdSdlVLWmc1VWZiZnUwMitHU3lSdWVLQVE3V0VxOUo2Y3h0QitGNXRLbko3?=
 =?utf-8?B?NEE0TWpzYW5vTktXdFcxYXRBaXVQall0WGxmaENUOEJ4Mm40ZlVZSll5LzRO?=
 =?utf-8?B?UUx2cFREYXN3QVhQeWUzVlcxN2cyOS9GWVUvWWFrK1E1UVQzdXR2VXc5R1ZW?=
 =?utf-8?B?Ym5GdWRPMDBVbmdlMXVoUnB0bzZndWZqVm9sKzkvVjlZQUhMT3pEUDBlTGUw?=
 =?utf-8?B?K00xTjFlWTJoRnpiQ3RsSkVSdDMzQjRjc3RCYWl2cGpuWWJFRnhvSE1Nditq?=
 =?utf-8?B?UkEwSVFLZGFJSXc2c2dKejFXbGFQaWtPUkc5Ly9ZSnZ6bDJVS0NxeXpEY2I1?=
 =?utf-8?B?bjNLbnNwd081UHhvRExBUHhrU0tya2wvYlBOYy9jUlBSYzNFTWRTK3dSVU94?=
 =?utf-8?B?ZEtCUlhkUldodlRyR2NTc2p3Y2J0NHR3V0lDaWZsZENrV2pVTHV6R2c1dnRJ?=
 =?utf-8?B?ZTNTTTlCdGFhS3hSNGhSZTZsaWZuNzVWVlMyR1J4cnBTbi9TT2cycnJPdmpU?=
 =?utf-8?B?K25BNmQ3WUI3L2tiTWVwWWY2bEdrbFdUb3NFd2JOUmN1dVVrNGozM1dmUEhT?=
 =?utf-8?B?Y3hEeXljQjJVUEplYnRMOWduM1dqakl0eDV6YnJUeDg1Y0Zrc2g2eFFGb3ZK?=
 =?utf-8?B?TzRuWDFRU2tOMGtuS3ZrdVJxQ3ZsQmt2c25yOXgxZTVEMGsxcDVyRFJsQ3Rn?=
 =?utf-8?B?N3RjdTUzcG1nOEx3ZWZyQjg0TFpLVkpJZ2tZbHZDYmxSVHdSN1ZRYUE2Y1ZZ?=
 =?utf-8?B?S3ZrRzJSbGh0K0tQeHZsZ2FXTUEzVGNHUzBydDFWbXY0eE1nd2dkZ1BmMDl4?=
 =?utf-8?B?V1AzZ1BFUHdRaWFmVEpBTWp4MlFwVHM4b0JmNDUvM3Q1bWN0eUliWHljZ3l4?=
 =?utf-8?B?WWtsbllad25xYXVqUGF5WHZTYnBJK2xveFIyZjZucFA5NEkzdEs2VkJpSXdu?=
 =?utf-8?B?WGJhQUdGU3FSY0ZMaCtnNmhPb3FNRmlndmFSNUNpcllWUVo5U1g1bFYxS0da?=
 =?utf-8?B?NXRwMzM1cjF0YitFMUFGR1A3MFJ0OURjS0d0UFNiT0tlaDg0dnlPVnB2Slds?=
 =?utf-8?B?Tk53SUZ6VWI1TEMvaHNQWXpQaXpsRXo4TEpJaDZlSVRkbUwvTG41bHF1VFRs?=
 =?utf-8?B?OUJMSkliTVFnSEtDbHZLQktMdmpKazcvcEFxVkc1ZzkwdXBTUlY4bVk4a2h6?=
 =?utf-8?B?WjM1Q2FLTkNzS2l5a0RnUmtGUWdKcXA4VURacUVjTnY1RytseS9DcVFqSkQ4?=
 =?utf-8?B?K3dwWHZEcW96NS80MWQ4R0VmbEhHRnVhbVRMTUdTamxxMytVc1hNTDdTbXlh?=
 =?utf-8?B?K1BrNEIwMjNaM2dZZXZkZWZ5VGUwVUUzRTBaTUJMQWlVTDR4d3loOVNCblZv?=
 =?utf-8?B?dHZhanNEOSsrd3FwTzlwZlljU1NDYTZKRnBCT3dMckRicFY0SWVWQnNRMG9w?=
 =?utf-8?B?clBGeFYyS3k4WXFkZjBONFMzOUdnRlFscDZjdXpSVUpmVjdKaXhRRnE3YzVq?=
 =?utf-8?B?ZGwrelpsUkFUWFBFdmZtZE1vRlRybDdTak50NTRIc2ZLWGhvY25SK3RMdE02?=
 =?utf-8?B?WUxHMmxObi9tTlYxOCt6YTBXbU9aTUJ4c2FBMS9VL01rTmlZUFZsSHFKY0tk?=
 =?utf-8?B?MmNTWll3R1BpSXBaQ0pBWW51ODh3SDAzSkllWkFHSHl4S1BVakJNbmlzQlFQ?=
 =?utf-8?B?VGsyZWxJZnAxU05GS3RZd2QwQzRSem9aTVB5a0xLWkVZQTFXSU1GSWFsWXdK?=
 =?utf-8?B?cWtlRjVwelNjZTI3QUxsc0hBSE9DVzVMWUl1aThWZlNRSklsYm4yNXZqODFW?=
 =?utf-8?B?WElyUXdEMy8zRHZqSVJFdFczcTNNU3l2V1ZvZWRGaXZqWEhYc2x3ZzJoamQv?=
 =?utf-8?B?ei9ZYS85aHU1YWNOYi95MUU2VWpkbzNsaGczajM2eTNNNnh4ckhXRWV5UDFN?=
 =?utf-8?B?YlE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8172d9b4-f7ef-4ae0-1f0f-08de338b3daa
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2025 23:17:06.2870
 (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: nYQ+fRTgwtNx5vcNxcOA2/iOmikeDi+VwHI+2sv+1lDFEps4OQHbectqL+2wDbuxqW+hQ0s1O93aTUQMCFJx4Qmfonx3r0DlBAnjEBDFP0I=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB6917

On 04/12/2025 11:11 pm, Marek Marczykowski-Górecki wrote:
> On Thu, Dec 04, 2025 at 09:54:41PM +0000, Andrew Cooper wrote:
>> On 04/12/2025 4:53 pm, Marek Marczykowski-Górecki wrote:
>>> @@ -26,6 +26,7 @@ RUN <<EOF
>>>          cpio
>>>          git-core
>>>          pkg-config
>>> +        systemd-dev
>> Why is this needed?  Or rather, does this patch predate my breaking of
>> the dependency on system-dev?
> It's still needed, without it the build fails:
> https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10959608099
>
> Likely related to e54a6cd6a1f3802274cd3a58b07df5f012342192

Urgh.  Yeah, that breaks the build if systemd isn't installed.

We also need a build container that does not have systemd anywhere in
it, to block stuff like that getting in in the first place.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 23:19:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 23:19:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178342.1502197 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRIbF-0001vs-9w; Thu, 04 Dec 2025 23:19:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178342.1502197; Thu, 04 Dec 2025 23:19:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRIbF-0001vl-7I; Thu, 04 Dec 2025 23:19:01 +0000
Received: by outflank-mailman (input) for mailman id 1178342;
 Thu, 04 Dec 2025 23:18:59 +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
 <SRS0=Ymfd=6K=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRIbD-0001vc-TY
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 23:18:59 +0000
Received: from fout-b3-smtp.messagingengine.com
 (fout-b3-smtp.messagingengine.com [202.12.124.146])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9b2428fa-d167-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 00:18:57 +0100 (CET)
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfout.stl.internal (Postfix) with ESMTP id 678581D00149;
 Thu,  4 Dec 2025 18:18:56 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Thu, 04 Dec 2025 18:18:56 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 4 Dec 2025 18:18:55 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9b2428fa-d167-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1764890336;
	 x=1764976736; bh=GYffu1xeR4qwUEuF0h8Andg+n988GbrHNxRs4r5qDuA=; b=
	W8Ka5K2cnYuHA2ARFpNEyZjRS6ufe/8avh9mFmHu6Sn1uN2f1VyLOQB2Qw2kOiaF
	MJ1CZ8OG4sFFUL4dxOXEYJx6XKeH35deDpOTanl9VTogzE4Z+TM2uUILTsd3I5vt
	BUphD22qmsfw4wtDHXBS2YGe4Ind1rNUxqH2m6goiXYASEpEaEON4W8qxgJLDIDR
	EDhiIqn2U9sQxDRyHxM2f0Q/JgUACsfzv9BPw6tIsKLYKp9Es9BiVJ+dbET8iBXx
	H4yP5QPnMf3fnlpzmLGGICZM+QS2Dgf1z4T4rmAM9/iRf7LVWFzEau5RHYl0AHx7
	E//3j300Thad3bcRtbiu5A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
	1764890336; x=1764976736; bh=GYffu1xeR4qwUEuF0h8Andg+n988GbrHNxR
	s4r5qDuA=; b=EXzWkaZhM0x3eHo/MSyIwd/zvFl6jMREb98zKt0icoKHxM3HRiH
	X8P+O1a7BF/ZYf6Abk3OhUzd42gzNBsqmY9nfaBfWPfv6bUyzIUXYWm4o2Sv6EUa
	nlxnaNbhUmzaGFd3tkzpp3mZlTqrjgjjJ52iY7EMXnzi2K9v8IpGO67CL276ykGh
	ivFB8ki/6w+inDwEBJS16wr3E5q1W62HCopkvlW9L4CdIz9iyd/444iFrxnSn4lW
	+2KF9tCCEpnEaNDpKFhZDXqbLilmdJMUIQfqQO8JCGotllY8ASXS+KlPghqvRVhy
	7dHEGBAPlz6+B4f/kU4GOpA6VgyYBK0B6zA==
X-ME-Sender: <xms:4BYyaXR2nSYkMrxhUchKMHuOKteAHMxD2H-OpCck8d7aBgtpIc1Myw>
    <xme:4BYyafxnlhcL6ZAAcufyUackJgpcjIfDLqJFrSmnxFPzCdmwYvpbZUntlNl19QJIq
    1AzFrbpckQpNzX7mIgsUXZHM37lz7crvg2q4ELdnPr2-sQ>
X-ME-Received: <xmr:4BYyaR28sP6HYrihAvztpgoVFoTohRJnPb3a6ejm227OjJckCKt13ypLUh4rGvof6JMdv_nEep4bUrPsicieUs0jifgKmk7HPQk>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeikeejucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    epfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcuofgr
    rhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvihhsih
    gslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepveeujeetgeel
    leetudeuvefhtefgffejvedtvdfgieevheetheelgeeuledvjeevnecuffhomhgrihhnpe
    hgihhtlhgrsgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr
    ihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrd
    gtohhmpdhnsggprhgtphhtthhopeegpdhmohguvgepshhmthhpohhuthdprhgtphhtthho
    pegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohepgi
    gvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthht
    oheptggrrhguohgvsegtrghrughovgdrtghomhdprhgtphhtthhopehsshhtrggsvghllh
    hinhhisehkvghrnhgvlhdrohhrgh
X-ME-Proxy: <xmx:4BYyaV40HqQkzXbXeyxDfglSrROCv1p3UKVVAsGdvW-Gu6jIyFYWZQ>
    <xmx:4BYyacX10Xvfnpx-yonaBEGxLI5zr0iT76698gamIpqThNQeP30cgQ>
    <xmx:4BYyacDwZhELIhNRO9dhujsC-8DjVe5ouHWXrrWnYYzFcqCWJuFQIg>
    <xmx:4BYyaT4VDN7-q6eYI1-2RTmKh4Co1-I3KKLdMaDTVPwRSW8nSbJoGQ>
    <xmx:4BYyaZVI0O4H-upq1hyfkkckx11wkIn-m9qRkXur8Qv1c0zLNlqzIvFb>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 5 Dec 2025 00:18:53 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v3 3/4] CI: Add configure --enable-systemd for full build
Message-ID: <aTIW3V5kR_6Llf7w@mail-itl>
References: <cover.1e7327573686b6fc1e161127e268e4042556d16e.1764867217.git-series.marmarek@invisiblethingslab.com>
 <ed2e7eda64da87351d6fd8590eee698598ef8e88.1764867217.git-series.marmarek@invisiblethingslab.com>
 <c9512f4f-7c68-4504-8492-237447586cc3@citrix.com>
 <aTIVBFMAaVj3Kh4G@mail-itl>
 <72bab1bc-6549-4f5a-b521-a4b3c66f7030@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="4teK5MldL2ssURxk"
Content-Disposition: inline
In-Reply-To: <72bab1bc-6549-4f5a-b521-a4b3c66f7030@citrix.com>


--4teK5MldL2ssURxk
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 5 Dec 2025 00:18:53 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v3 3/4] CI: Add configure --enable-systemd for full build

On Thu, Dec 04, 2025 at 11:17:03PM +0000, Andrew Cooper wrote:
> On 04/12/2025 11:11 pm, Marek Marczykowski-G=C3=B3recki wrote:
> > On Thu, Dec 04, 2025 at 09:54:41PM +0000, Andrew Cooper wrote:
> >> On 04/12/2025 4:53 pm, Marek Marczykowski-G=C3=B3recki wrote:
> >>> @@ -26,6 +26,7 @@ RUN <<EOF
> >>>          cpio
> >>>          git-core
> >>>          pkg-config
> >>> +        systemd-dev
> >> Why is this needed?=C2=A0 Or rather, does this patch predate my breaki=
ng of
> >> the dependency on system-dev?
> > It's still needed, without it the build fails:
> > https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10959608099
> >
> > Likely related to e54a6cd6a1f3802274cd3a58b07df5f012342192
>=20
> Urgh.=C2=A0 Yeah, that breaks the build if systemd isn't installed.

Technically, it breaks "just" --enable-systemd build.

> We also need a build container that does not have systemd anywhere in
> it, to block stuff like that getting in in the first place.

That is Alpine container.

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--4teK5MldL2ssURxk
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkyFt0ACgkQ24/THMrX
1yweyAf9GsHFMXXfnhaNQInHMKk1wrbghPoxMU4iHXtyv4OcuPLYUh+eRbbd3hw7
Ei6xMcgGex7wZJ7qyBDCPmeliB3AcjccjF1CBcPgij2W2lTyywxOspz83aocJSrD
K0f0AFFLRYR5mJAuienm6E+4Dnfezi+wVkAo4mBcBGQZBhXAKIi3ZnQ6dsUFf33E
YS9+EY7+u0IH1DVFE+BFoZ1/Rmu7RlNfon7V5x37W898cyn2iG40PoQS9bF80n9c
UQq1bQ8S7lpLKdieYSnqNlgT1rbvKPTAn1AXE/qkv7acmO1/8vtYeqPJA1Yd9hl0
zMyDan/ELZPHToD+XjWOyxG4ChOCtA==
=a/Dk
-----END PGP SIGNATURE-----

--4teK5MldL2ssURxk--


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 23:32:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 23:32:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178356.1502216 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRIo9-0004xX-G9; Thu, 04 Dec 2025 23:32:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178356.1502216; Thu, 04 Dec 2025 23:32:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRIo9-0004xQ-Cf; Thu, 04 Dec 2025 23:32:21 +0000
Received: by outflank-mailman (input) for mailman id 1178356;
 Thu, 04 Dec 2025 23:32:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GYI0=6K=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vRIo8-0004xK-Gc
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 23:32:20 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 78c80ba2-d169-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 00:32:18 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by GVXPR03MB8307.eurprd03.prod.outlook.com (2603:10a6:150:6f::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.11; Thu, 4 Dec
 2025 23:32:12 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9366.012; Thu, 4 Dec 2025
 23:32:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 78c80ba2-d169-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PhOsl1krlkS1p6dpVDkX78Zfk4WcyugGgW+4VK6ogOFaXGJzgYClZrZrKF1BxRfKjOi1L1lInbF/u85jwZhdmFnRsg34XzCo7Fuy+1GczD6N1fjEDw9Kal35o+PoCXij6uB6u4Giw6bgYTbLardnoLo7X5vZ+PXgXhUq3JbMrGOE5+mqWrSabUFR0aywDxlELqvetcy0x6QaxgQAo7MVFNgAsjuuCoVojbV3pufUInf5uRh/VhzTXY1MW0AucDwEzN0On/5hgf+X1Gk0lRk2JAvVRmGtWN9CbhI9ZeTIct5QIKrdgXVCJEpaBq/vDlhpIeCDQYMnaFXXKDUOjbcnSg==
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=mMRJAKsb9K9uB+kPMBEqMhvInS5859NUvvO6Dcxef/k=;
 b=qGePmDnNrT1aYih0otTRaIyGpIFppMdOX3a4U+VwehINOWU4akkflMjKGqvdh87QtIq4DCOjeH7XS5YTUSUChfW5nyntUy5sP9igCHF6jXJnB7g09HZmb64x8jExSbtOpxSx/mNB6u8JaJxULQx9CRgvljDklo0j5IZpY+2FN5bY/IbdD9A9Cwxi0nKM8nrv/ZCzJXUwUiKlzCka0q9EQT+VPhCqoQYn0w+6tPzEm7aRvybooicKzArl0Xqi7S/yBx4EJ4f5luAfJd4YXZxyi+/ZLHluzhvylmJRhxQcTovEPONlQqYw55AzkIATPdouC4zAJapp1mXCaqECq4awwQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mMRJAKsb9K9uB+kPMBEqMhvInS5859NUvvO6Dcxef/k=;
 b=tM4bP/lQVV/f67yC4fWuzKJrwWVbkGkKrQxs+UIfGWm3f6vSEuc/akCN6Qh9hUXIDjHwDS97H2ss2t5pWJ1JYwpWQdw53Lc3orhL1cqCgbnHnVKfAzdejOYv9cKB0M3lkD9Qso4oqqL0/vWeUD9y91bhPJZjuDAD5MTGaODTfBIxxt0fM+at/mrxeiENMKuBEutxLE68IaaleGjXkT1xGs4CnFPk0fs/zrsjaz12FWz9nZsZFs3iURis58BM4TP4JFTN/UFIpf7CEM/wF8eps8aT95uJ98B0lquPHd/PJVLH/ufukrzBXp6vMqtwtfTu74uOC5g38Exml1BH0UHPqw==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Jason
 Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>
Subject: [XEN][PATCH] console/consoleio: account for xen serial input focus
 during write
Thread-Topic: [XEN][PATCH] console/consoleio: account for xen serial input
 focus during write
Thread-Index: AQHcZXY3Nl349El2IUi++g6UhbChUA==
Date: Thu, 4 Dec 2025 23:32:12 +0000
Message-ID: <20251204233211.980862-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM0PR03MB4594:EE_|GVXPR03MB8307:EE_
x-ms-office365-filtering-correlation-id: 988e0cac-bef3-4c5d-9a5b-08de338d59cb
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?VB2b3AV8p4+MEvr2doehmMb1Cadbg7nIsHHeAVc5RsSgSKhNVZnyCVP6bn?=
 =?iso-8859-1?Q?F4djMHMvrCnJHjVgV42UIzbhFDI0OOmiZthvkVTqxhzw+6mFV2xPqc/ekV?=
 =?iso-8859-1?Q?MIugoEKTMVRhxqtpVz/V2lHr+vcIYAY/TvBXrEqJC0kWy/fxP5NU51WdCB?=
 =?iso-8859-1?Q?oToUnpCXgUoBbFuYytO+Y4dlSJ9UHMg1TBm0/T9z6g+SUUCe5QJLkB6kSm?=
 =?iso-8859-1?Q?JsvMAdLzVzpwk6no4aH9gtE8e93YatsDH0iH5Qq7xOVy4rYL3jMtsMYfWv?=
 =?iso-8859-1?Q?/gQHbAISeeKKfEt1CyPoKASv4HvhffaETts663x2jK3wg5X+AjCR/HtrIB?=
 =?iso-8859-1?Q?2r6M8h6ijbU12YAygoFybVOSZbd3uZM9BbSG0XiguMqvHv93bHsd4NmvQ5?=
 =?iso-8859-1?Q?KWdanfn4YeJjGOIWJ0HduUMCdVv4g6VVL7IVvc1yCDa5/wMLfQG/YgvLjs?=
 =?iso-8859-1?Q?3LVyyKbmI/tJ7D+KOxQvX/ALwHZpi4OWcUZYdk1x4D7Za/nxX5iOLG5MMy?=
 =?iso-8859-1?Q?8yAvTvdTDFs/2y0KbYuR55wUZjD1bUnJSYqAlhM/BsHJ57Hvo3XFdS8bqq?=
 =?iso-8859-1?Q?r+30momJqhqK75MinqvxyPjHdkDesZo/yEiGn1Wp07RHNDdXWfQxPiICu0?=
 =?iso-8859-1?Q?l+n7Ck3ji7BawMlRUrLKiKsPZOOE8IiSyKsvkdtVQZYQ1O+lHesUgOUj7a?=
 =?iso-8859-1?Q?j7XyiI0InZ4LIxDBrBKCzfgRESqa0AT95z8xxVFIuyL5O2+JiFxjaMw9x3?=
 =?iso-8859-1?Q?GI/uCVzVloh8UgDmq+ZKHyw8zYO8P3rjxu9wZbUbJPhm7SKPJdXRNADuR4?=
 =?iso-8859-1?Q?VnaVv/bKL5FphP6sbwIOsjz+p4FAV2oqKqdtSxR7vCTVuLjSlUGoAzoSEK?=
 =?iso-8859-1?Q?Q9eAdQT10238OaUKX5eEFOs22Q0bMzbQmHEqADhiCN20Nm39EoeYDjvjaA?=
 =?iso-8859-1?Q?KxdHqNjEzcF1uYT0mOtHARdZic3UCVpSWnvL4mj1fZLOHGbRSQiKaDNM36?=
 =?iso-8859-1?Q?I2Bxe31q/IbwgwPfcSUcupTJdgdGoudBXSEbzCaCfgN8uJtLNRBULxQWAB?=
 =?iso-8859-1?Q?nwIVVBKPFPQAtYOddxHKMGkdpGceta45TwxXLjkDHir4KQHHjKkMJOuY9+?=
 =?iso-8859-1?Q?fvU/FoHr34xaKLiS10f+AHUu66W5cogDArp14ZVXKzKOMNeA3VOj6cd6zB?=
 =?iso-8859-1?Q?bnH4J6JIKCs7O+SSyj32oQOMjR5RHQ9+tYaktzPCEQRqvt4eAuI7f4WJx6?=
 =?iso-8859-1?Q?hOGGJMeLe0TvaUFZ4VqPcAAC7iqAhbmW65hOJbNj9PLyGu1/jP4B/g9Nz2?=
 =?iso-8859-1?Q?gHX6sCjw/LCdFrgVU9D9J6ulZfnPz8CxEA5EsEYXFsO6N3zSWT2Fs9m+xR?=
 =?iso-8859-1?Q?lHKHQgvYs9tJwEBegAC7b16zHxV4OeOhJ1jNUmmrOu4NUxn4vg7ImhaGtl?=
 =?iso-8859-1?Q?oaN6dRtvj6cM/tXoCXyUnmZHxGexH4tTeRSn+mrLqZuG99PKjoEBIz7/P9?=
 =?iso-8859-1?Q?2iBDHrGK0t4zT+cMSdGtEbr4UJ8b3UxtEoplI+i1cd1s0SRHL34vBZukxr?=
 =?iso-8859-1?Q?5Ic4/xJpmXmgPPtqdhWNaX9sqrMs?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?WIH8l+ugyRO+ySJuxLIplOriwkme5d9f7R6zCFaRTthfDI4CKTdZzpPLIk?=
 =?iso-8859-1?Q?Zv5kfK8INVhfLwM+x8g+ieB4ouyP18hJpwsBeh58jPk408P0Tj6mpCC23F?=
 =?iso-8859-1?Q?H8NimBWiYHb1E6gEi564ihqk4LR1Htq0RNl3j4XG8Uag02l8JlFgQXB7nr?=
 =?iso-8859-1?Q?aOrDS+7DtupgkpOsDLSV86dyCjCYSMl2V5idDmBrRTfXFeHgOSITpq+s4Y?=
 =?iso-8859-1?Q?bULmrJ4RxRv0eEcC+NOsCt7g53RSLPw8sUHmgLKri8SldpAwtxHNMB76nA?=
 =?iso-8859-1?Q?sdZA4Kwf/IH3O65ak12o3/pIpi9jBSChqUMYagkW182LfrAV85hQj591uQ?=
 =?iso-8859-1?Q?fvghd0QZIuHUJrFuiLIsc89RV3VO0jUULL3CCdwufVKX0XwopUCulqbV2b?=
 =?iso-8859-1?Q?XTMKkvdv582qC0nKbaeTT5bX8ptlbj5ZxdzAo2qkTP/scF9cEYMUx5R18P?=
 =?iso-8859-1?Q?jQmCtWdAV5d0YkF3jvuhtbvnyrCMQ73ch3Mor0smWqZhBr0naJ9QghSYGp?=
 =?iso-8859-1?Q?ii4loWNrCS0pnvlHFdsENrsPDvO/t/b79mvYw1vP1a7wey+cWBNSwIlEhX?=
 =?iso-8859-1?Q?vtvnZYkhjUBWDwkykNs66V76BfcKK0TzDsBvTd+60aiOAVUognkSYsCFqX?=
 =?iso-8859-1?Q?uSyYW6fjPwpO5WogNkYvLG+PhM5TyyTa8fb5QMZig/zja2pw/bCm0dwUKi?=
 =?iso-8859-1?Q?OzK1GZupu+OD49+2O9/8waoNwn745izY7jfkHUEi/oRUTxol3+pp4WkUpH?=
 =?iso-8859-1?Q?SBsy4CCP2OdCFah6gGRQAPBUlZLi54INgCAiF2pcD7brebATutj2pFlR3r?=
 =?iso-8859-1?Q?Hwm2oW//bS67cZQI6aOx/C8LaChj76ZSkt1m1gcJ9J/T9R8hpiKPnw5xwL?=
 =?iso-8859-1?Q?HTtczgyI9mUaq1c6kxXeINzVrFebKj7QS/l3I/Z0RGBMR/i6RfG/uqhQj4?=
 =?iso-8859-1?Q?iAHs2o0Tf6TbMNu6K4D1BiarF7jhll/vGOrCeo0lxqKuJLMthzpIXoKgFN?=
 =?iso-8859-1?Q?EHU6V1hjyVHvQOiwF+vvg3mURurAzpmPpHrQ/AV7doaBQFJAlnHBaZQFZE?=
 =?iso-8859-1?Q?O9TMI5VVoAcEVpbn0G+yD8I0EiJz9kal1UgKb4OxvTpLaEOQHYVDTDeoUA?=
 =?iso-8859-1?Q?0QXZUApzblDiILKD2lt2Bn+BMrjN5Mr4oMkCwAInwdo5UGpHpbW8vtviTW?=
 =?iso-8859-1?Q?VT8zsiJbKpmkKjks0UP/KOosL82iOPXHkT7NgnNwaz7GZ67vHVX4cUYLBQ?=
 =?iso-8859-1?Q?oPxhC42H7jthqIOq/6CZ0bKPkr3nybJyxxhJJgEI1h/nS4ZkL7NyVc/V/C?=
 =?iso-8859-1?Q?kRwSkUDQkYKX3oBv2tP9YDe56JhPyUtbPFe5jp07cjjZeWystAEXUse9RD?=
 =?iso-8859-1?Q?eGrzP7pqt6gzqNnq9LkConjWOoMrg/ZYuzgBsgqHWUNb3+ALTiVCGWUEcb?=
 =?iso-8859-1?Q?vTz/Rx1kwo3dzN/xK6VyFGpWXDEtEjx/r2ZyQe29LamOShkzI1gflH+5I/?=
 =?iso-8859-1?Q?5fdITEOM+0t/ZFqUcvHpXu8/U3nC/nbsdW+ytDfrS63iF8P5NqlATh8bcp?=
 =?iso-8859-1?Q?GMyZ9D8BZKDDA9vesn1AFgO84Hmf3zIPTRT87jtfAO6yNiHWjikS3pzZqU?=
 =?iso-8859-1?Q?YYQ4HaR39vH4P4kMwnXnbyWU220rQQZwbgDd/xcEkki7PyZ3+PSDufdg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 988e0cac-bef3-4c5d-9a5b-08de338d59cb
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Dec 2025 23:32:12.2729
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: aeLVdAbcYA2gqrE96lN1ukZ+iV9hV1XcLbyMnAuw+HQ0MYPKONzRTC/JE8F4/kSvCwWJnqwv3hGr2JaC+gWiKSmHpzSSLrfDdcDG0cwlFjo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB8307

From: Grygorii Strashko <grygorii_strashko@epam.com>

When 2 or more domains are created and:
- one is hwdom with "hvc0" (console_io) console
- other DomUs with vpl011 or "hvc0" (console_io) console
console output from hwdom may mix with output from other domains.

Example:
[    2.288816] Key type id_legacy registered
[    2.291894] n(XEN) DOM1: [    1.016950] DMA: preallocated 128 KiB GFP_KE=
RNEL|GFP_DMA32 pool for atomic allocations
fs4filelayout_init: NFSv4 File Layout Driver Registering...
(XEN) DOM1: [    1.018846] audit: initializing netlink subsys (disabled)

This happens because for hwdom the console output is produced by domain and
handled by Xen as stream of chars, which can be interrupted when hwdom is
scheduled out and so, cause console output mix.
The Xen consoleio code trying to mimic serial HW behavior for hwdom
unconditionally by sending available data to serial HW on arrival.
Xen consoleio code does not account for Xen console input focus, comparing
to emulated serial hw, like vpl011, which does the same for domain with
active Xen console input focus only.

Switching console input focus to Xen improves situation, but not enough.

This patch changes consoleio code to account for domain with active Xen
console input focus - console output will be sent directly to serial HW
only if domain has active Xen console input focus. For other domains -
console output will be buffered and sync on per-line basis.

Example output:
(d2) [    4.263417] Key type id_legacy registered
(XEN) DOM1: [    4.658080] Advanced Linux Sound Architecture Driver Initial=
ized.
(d2) [    4.277824] nfs4filelayout_init: NFSv4 File Layout Driver Registeri=
ng...

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
This causes random multi-domain tests failures due to inter-domain console
mixing which breaks console parsing checks.

 xen/drivers/char/console.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index a99605103552..391cefc1a7c6 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -733,6 +733,8 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(=
char) buffer,
=20
     while ( count > 0 )
     {
+        struct domain *input;
+
         if ( kcount && hypercall_preempt_check() )
             return hypercall_create_continuation(
                 __HYPERVISOR_console_io, "iih",
@@ -742,7 +744,9 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(=
char) buffer,
         if ( copy_from_guest(kbuf, buffer, kcount) )
             return -EFAULT;
=20
-        if ( is_hardware_domain(cd) )
+        input =3D console_get_domain();
+
+        if ( cd =3D=3D input )
         {
             /* Use direct console output as it could be interactive */
             nrspin_lock_irq(&console_lock);
@@ -783,6 +787,8 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(=
char) buffer,
             spin_unlock(&cons->lock);
         }
=20
+        console_put_domain(input);
+
         guest_handle_add_offset(buffer, kcount);
         count -=3D kcount;
     }
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 04 23:48:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Dec 2025 23:48:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178376.1502226 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRJ3x-0006vs-TV; Thu, 04 Dec 2025 23:48:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178376.1502226; Thu, 04 Dec 2025 23:48:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRJ3x-0006vl-QB; Thu, 04 Dec 2025 23:48:41 +0000
Received: by outflank-mailman (input) for mailman id 1178376;
 Thu, 04 Dec 2025 23:48:40 +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
 <SRS0=TdJQ=6K=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vRJ3w-0006vP-Df
 for xen-devel@lists.xenproject.org; Thu, 04 Dec 2025 23:48:40 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c0e9f845-d16b-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 00:48:38 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA0PR03MB5529.namprd03.prod.outlook.com (2603:10b6:806:bc::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Thu, 4 Dec
 2025 23:48:35 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.003; Thu, 4 Dec 2025
 23:48:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0e9f845-d16b-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=p+Ce2NZAvEKkRPWJs4zBW1g+aqYlbI5DddTmiw4nANGmxP2znFrKdGzTOwxDRy03maoSOzjByBVbNbQsJer8TKGpTdMkjWSlLZBPOF9uEjIaQw3i/AOYTspI40m6yDaJq7RrwGTSBGuHZeVe51ClKM7h3xYaAhix3kmk+/4KzUbVFMWdKYNNrmCRZUKP8tdEpfykhIH1fi13XVQnHdpSMqH8mlP99GRPMjMdP6NwvfirL/vmAJBmJOleVJ4381hXSLfX1vBkJ9DuyykYLhgcKaa3la8RCFSkom+DJoOyZD4ReIHn2BjSz2BvMy6ReWLeksgv9/8b/aLNxluL5PwtlQ==
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=NEz/rO5SbWdWA7ZpOBLbxJfwGpdS6WrRuOMy3J8/frU=;
 b=M3U71V1HM/NH+EUrG3wU3lHvC9AjyW//4xIZ7LEuTvoBG53OKSBlDsCSwgwP3WGmYmmh6hlzGYjtJBB8bwCnqlDy1aHPrORaMyyj8r/YTg8z7AWtTnG9som7dn73VZPehG8MD8C6lq2IhlNEgHA0rz9wxdsrd9VOsxU1GGmIZl7/iaDdDsNenmM+ZinbS2qD/nBkdOw1qnbCsY+QRd3nw+taH23/xiGvAwTsq0HX48c02tFsKqf+SSMDvU0NmHnu39U0GvEifREklxpyStJM8GmciNlQ+Tsm6b0DQpbDe7CTljWhmSj7CRtFHA1dI0gBQd7mHV8IjC4qr0HFUkFA+Q==
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=NEz/rO5SbWdWA7ZpOBLbxJfwGpdS6WrRuOMy3J8/frU=;
 b=bPuedWS1CuGtDZn79iPUDkvLkDf16fU0ImFLqv/a8M2RuJe5HwG6oGr0zDTPGlLZ4pREKs9dqdAKW8gwAfBr6OWtxIupr8H/XLVL+5UK0Sm1wL6ZQILlxrb69g9Z2a7zlqka89UY+dAWnJmh3EE7PtqW0KOdwsVLeGCjtcsnU2k=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <62173b6a-faef-4919-89ec-5075e4ed3fb9@citrix.com>
Date: Thu, 4 Dec 2025 23:48:32 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Mykola Kvach <mykola_kvach@epam.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [REGRESSION] Re: [PATCH v2] systemd: Add hooks to stop/start
 xen-watchdog on suspend/resume
To: Mykola Kvach <xakep.amatop@gmail.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <b44966513abc729f44795c0d5012e1c5fd106477.1752783296.git.mykola_kvach@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <b44966513abc729f44795c0d5012e1c5fd106477.1752783296.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0034.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ae::8) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA0PR03MB5529:EE_
X-MS-Office365-Filtering-Correlation-Id: fd70f36a-cd8c-426f-e3aa-08de338fa3b7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VDVpcUxuVXRJN3lESW5QcTdSOXJRaWh2QjhySFpuK1FFeUJPamdaOEpmSldk?=
 =?utf-8?B?VHJOV0tscTV1VkFtYTdCcTRvM1hyZk1EYVRXMStiajJ3Y0dlcklLSFJVRk1G?=
 =?utf-8?B?c3JBaE5NcEhnaUJoc3BueTJHeEJDOG8yWXIwM0R6OTZkRlVCK1k1QlVBU0Jw?=
 =?utf-8?B?eEY5TXhHak9PNFFrV2hWVE1hY2V1RVR2M3hWSG02MUMvbWpZQXhQUEc1bTVn?=
 =?utf-8?B?TjgxcU5PWThOUVI2QW9lalc2YmhEL0NjT2h5b1paR1pwcjZ5Ull5Z1JBeUdN?=
 =?utf-8?B?N2p4dTZHWk1sdFdVM0I3ek1IZVhzN2tva05OMkYrd1liRDNJaXJmei9nMmpE?=
 =?utf-8?B?QngwNlUwVzJweTZLRTVSQi9qaWg2am45RzNYUndQTVYvRDI1ek1aMFNSNXFx?=
 =?utf-8?B?eWFqRWFpWGNVQ1d3NHU1ZHZ3VTVuUjV3bEJrQXZUT2k1S0xPRW9PamErbFFQ?=
 =?utf-8?B?MlA5WVR2NkJRanFZcUFyY3hUaFYxSGEyNzFwVFpnV0kxNnordWJEeHFmZG1Q?=
 =?utf-8?B?QlNyT3lQYUJibng2ZHBkMm1ycml0b1FIT3U2bElCbXFBMkpPczlibEpwbEk0?=
 =?utf-8?B?VUVHQVFSdWlsV3VPL1JLN0w4R0tySW1aTDdjRC8veE95cG1GdlAzZklXalJZ?=
 =?utf-8?B?SzF6d2kxcFpFVUYrQWZFbzdvNy9lNG1pTC9NaDhsTC9INVpYc2NHQytlUkV5?=
 =?utf-8?B?aWVQdGdoQ1k1Z0xTOTZhWlV0aUprU0FodmdsWFIvYmIreFFLWWI1OEliNFIx?=
 =?utf-8?B?UjdKNnU3SG5Vc29xdEpNRTZodlJnMlZCOXh6dHlxc1dwOXhjTHBkYUNYZWRt?=
 =?utf-8?B?a1lFc1lteERJOCtwc3AyYjlSMGRuUGdDakF4citzQW1tdkM5d1BDRmhZb3kx?=
 =?utf-8?B?Vng1S0ZpaW54MXQ5VlNjSnp4L1UrY3Q5M2dYR0NTNkRCVStBUSs5YXNnNGt3?=
 =?utf-8?B?UzVaaEE5Ync4bjJqVzJDbTh5L0lWVnhpajk3RmloZHlkZ2xYa1daWnlFdDlk?=
 =?utf-8?B?Y0FNYzg5bVM4VEg3UWVZV1dmYXNOU1ovZHE2VlhVOVJKYy90b1BvdHdUbU90?=
 =?utf-8?B?UjBqTlZjcnVjSHJFQXhZQ3pvUDVQTHE5eDlyZHhyKzUyM0xPZ1BkOTFxdGhD?=
 =?utf-8?B?aVdBS0tOUkNwY3QyQk1hbVorSFc4WTlkbHV4MFZWUk0vWnhteG5aUGgrMlZ4?=
 =?utf-8?B?WVFtSmQ4SlFybzVmUWM4Q2hFN250dTFWUHh1a1I5MDRUMkNHOFhnTWVPWVpG?=
 =?utf-8?B?L0lrMDJyM0lRZkFTc3IydlJUWkF4dGIzYnNwNGhBbTlhMkxsRzlPWE94TDhj?=
 =?utf-8?B?dkszWXZOT2dYRW8rQ2t2aHowWThnM1BtakFWVUo3WDRkamR4RGh5aTczaUF2?=
 =?utf-8?B?dHZ6Nlh0dm5zV0ZBd0p2a2d2c09CbGw5V0pTKzNrQ0hXY01ndnR1cThQN2lu?=
 =?utf-8?B?eGpwUnpkbnBlT1VXWDdjWWVHRWxMSGtoVStEdkxYZmo3Y3NiZkJ0cVBqZHM4?=
 =?utf-8?B?TDBYU3FEcWtNNjB6cCtoc05uazU5SlhQaXRnbElVa3FDMnFlNllla1RZU2tj?=
 =?utf-8?B?ZkhUMm1yZm90Y1ZMYlBDR2FOOUVWTlBZNFRDR25pUyt2U3dQMXc2b1hhZUdV?=
 =?utf-8?B?WTJIWVh3OElDSWFMUEdyM1R1clE3N21tdjFIQXZ2WHE5R1grRVVtdVF6d2JC?=
 =?utf-8?B?UU9sbWZuWE80OWdSOE1YOWkrSlRsNldxbzgrOW9Yc2RTd2hSV0JvR3k4cE9J?=
 =?utf-8?B?cHFOQmZPdVlmN2Q1Q3FFZlpCUnc4ekJIZXY0V3JpU2xNY2E1SU4yU0FSbmYy?=
 =?utf-8?B?elFCNVo5aTFaU3NOSFNLQlQwaGRnSHY0R25LSVJvc1A1YzVCbDE4Mmh3QUYr?=
 =?utf-8?B?SHB2L2xaNnE3TmY0NHRRU1NYK2pYZFF6QTY5M2c2bGxNT0ZBSitieWQzR0FG?=
 =?utf-8?Q?HI7logly2hP3mCUb6gO3iyV/VbEzr0cm?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TWlxZm5UblVHV3JPS1lheWw5YVVoOG1sWm5YS0ZtRlB5N29VeTFzSXgrSldz?=
 =?utf-8?B?MTlvbHRzTW0vNVlYaWNrWEZiUloxVjlnekE0SnRlSUlVTm1XV2I5Y1BQU1hS?=
 =?utf-8?B?NktrV1FvNjhaOTJ3b0llbjYybjYrZDB1bmc5TTRVS2h6SWFaRGFrM3FncENm?=
 =?utf-8?B?VUJ5L1I5d2w5bG5ONXowMGpvZWthMU1BZ2lnM0dMckY2YitQZk5VNTZvanBh?=
 =?utf-8?B?c0lNcWtLdFdybHZDbFpvamNITFpLRGFGM0hJVUN3N29wYlh0MlNpeDROOGZV?=
 =?utf-8?B?Wk1zMHF0d09SVjJucGg3L1pzUy9XQzdQQWx3VTJCSXRXa2k3Q3FPdEVNVGpL?=
 =?utf-8?B?dFVnZDJMRGdLcnBadk1ralpHMndoL1V0ZEVhaEoyMS8xc0VwbHV3MGdvUkV1?=
 =?utf-8?B?UUlicWR1OGZEZDJ2WG1waU1URmVWUWJNVFBwaUVmeXZIOVZ1RjhTOHRjTnQ0?=
 =?utf-8?B?QzJOenVrZmZMcklnaDE5SkFCMmJNdU9DQ1dhQXVQL25wdkZ3Y2ZBYWdqblpO?=
 =?utf-8?B?azhuRHgvRTMxaHVkYVJCUGNrNG9EVVU4eE03SEJpRlgwN1RBTmR6UlNKUCtF?=
 =?utf-8?B?S0l4blE0YUtXd09RRjhMY3RRU3ROTlJSa3JQK1p3TWs3bE1DUWdvaktPS3Ry?=
 =?utf-8?B?dmNURk5UT3BVUlh3SVVMcEZCcmJlQnY4M1pxOVV4OGZESlBkVnRUdTNnYnVr?=
 =?utf-8?B?OEdmcCtrMWswbjVTMGV2WTZSMlNmOVRNUjBpeC9GR3JXZkFJS05ncGJJR2ZQ?=
 =?utf-8?B?ZG1ETHY0Wmw1VGpXNXJMUkhhRmNlM2NORm1TQ21XVTlBNkFNT3ovZUNzR0tC?=
 =?utf-8?B?dUljOUt6MWZmdGdZTmFlaVJDYjB3UDQrb0J4RGk1dmtuaFlUZEQ5UDlyQS9G?=
 =?utf-8?B?VmszWFlyZEZycytBeU42ajlhQ0lvUUR4YmFZbUJiRXpoV0IxTU1uSUV1V3A2?=
 =?utf-8?B?d3hlNjc0dG5hd1I4aDR1YlJWamJOZXlhSWJsSm9sbXAyVEJncElic1pucHBO?=
 =?utf-8?B?TFd2SHk4OUpuc0MvVGtVUmd1RTZDb05wNnkxTkhKOFNXZWM2U0pGMVh6Mk9D?=
 =?utf-8?B?RUcvdXJHNmppMGh2dWF3dnV1MmJDRWN5U1FTQUZRQlVncXRBdkJ2TlJIbmc0?=
 =?utf-8?B?MUR6VmJ6dXVTNnpBd0w2cEpiYkF4Tk82MGdKbzRMYlVjYTlMRmxTWXpxSFF0?=
 =?utf-8?B?WGtjNnRtb1VJZURvUVFzdlNHdlh2RVZSRFVEWU1VRWtHdllXZ2x0SkU3eTFZ?=
 =?utf-8?B?TzZweUNFNlRNRExpdFFUQ1ZYSzhZMlNUcVhOYzZMUnlhVGhwdVFnZFVvL21s?=
 =?utf-8?B?dE1QS1dBSXdxS2Jhck5TQ0lFd2p4ZzNHTGg3Qkd2ZEptNnpNU05QdjFINlF4?=
 =?utf-8?B?U2c0RTlaUWl0Q2JmQkVFRVZGbExXbU1tWng4R29pWHhjNzNzV3dBRG9wYXhM?=
 =?utf-8?B?M05PU24xVzJyaCtXVTFlY1FQSk5FZnVsODVCcEU4bGJjTTZ0bkllYlB1ODJw?=
 =?utf-8?B?SFRDTlFJSXFCRlJkS1lKL3ZzMUxTdFNtY04vMlRPN0E5RTVkR2UvcmFpbXRs?=
 =?utf-8?B?V0pkNmJuV1Vib3lWNktrNEVqVTNRMGE3RXo5QWdSbXpENHh0dGJUN2JTVjFT?=
 =?utf-8?B?UXFVZytFSGZiSWl0TTBpb3FOdGdwTXV4Q0hwbUU0eXVHYXNBbjlpaFJaRkxz?=
 =?utf-8?B?MGgxL2F5eHpuWUdRSkQyTEdDUHRTNExzZ0N4TFRQcWxXZFA2OE9ZZEd0bmlw?=
 =?utf-8?B?MFY1OFpRQnZFUW9CME53MmVFOWRhM2R6OElkRkh5d2tHdGRIYXdNL3JTL1la?=
 =?utf-8?B?SnA3S0UrUHh0Y1NUVGxXVHFGRFVJbW15VE8vTHJlRVdkWE9IWjB1RjFPZk5S?=
 =?utf-8?B?SDgzclVyQjNJemRJdFNJVVE0bGsvUVZlYmxncjFmbFJibDIzdmV3bTdNTWpL?=
 =?utf-8?B?d3VKWU9lRWJPWE5hQll5YVRhckRSSDdLTG96RFJ1cGswRno2WFJic2I5d0tV?=
 =?utf-8?B?TU9PVkhlZDVtZkk2WG8xRHA4cTNETkZ0VE5oMGlVVFpHR3JxZEY4bVFraGVQ?=
 =?utf-8?B?TitFSlNPTmQwcU1QVHpyRHlpSWxDSE8xMTNnbEtTL3BtWDkyVzRXWTVpMWpN?=
 =?utf-8?B?VXZOUmdiK0ltRFhlM0p2SXpXU0wydldubTF2d1VyKzZjOUwrd09tak9NVEFo?=
 =?utf-8?B?L3c9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fd70f36a-cd8c-426f-e3aa-08de338fa3b7
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2025 23:48:35.3967
 (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: VNavTOkYzTC4QiOtH3ZHef2oNzy+dzO6sBPTlC+dqa1zo0Wnxz7XtIrsgZW0SV1JxKh/6MP3V/A6foZmakPVfSPFyYWagqGqYJduJq024aI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR03MB5529

On 17/07/2025 9:16 pm, Mykola Kvach wrote:
> diff --git a/m4/systemd.m4 b/m4/systemd.m4
> index ab12ea313d..ee684d3391 100644
> --- a/m4/systemd.m4
> +++ b/m4/systemd.m4
> @@ -28,6 +28,12 @@ AC_DEFUN([AX_SYSTEMD_OPTIONS], [
>  		[set directory for systemd modules load files [PREFIX/lib/modules-load.d/]]),
>  		[SYSTEMD_MODULES_LOAD="$withval"], [SYSTEMD_MODULES_LOAD=""])
>  	AC_SUBST(SYSTEMD_MODULES_LOAD)
> +
> +	AC_ARG_WITH(systemd-sleep,
> +		AS_HELP_STRING([--with-systemd-sleep=DIR],
> +		[set directory for systemd sleep script files [PREFIX/lib/systemd/system-sleep/]]),
> +		[SYSTEMD_SLEEP_DIR="$withval"], [SYSTEMD_SLEEP_DIR=""])
> +	AC_SUBST(SYSTEMD_SLEEP_DIR)
>  ])
>  
>  AC_DEFUN([AX_ENABLE_SYSTEMD_OPTS], [
> @@ -69,6 +75,14 @@ AC_DEFUN([AX_CHECK_SYSTEMD_LIBS], [
>  	AS_IF([test "x$SYSTEMD_MODULES_LOAD" = x], [
>  	    AC_MSG_ERROR([SYSTEMD_MODULES_LOAD is unset])
>  	], [])
> +
> +	AS_IF([test "x$SYSTEMD_SLEEP_DIR" = x], [
> +	    SYSTEMD_SLEEP_DIR="\$(prefix)/lib/systemd/system-sleep/"
> +	], [])
> +
> +	AS_IF([test "x$SYSTEMD_SLEEP_DIR" = x], [
> +	    AC_MSG_ERROR([SYSTEMD_SLEEP_DIR is unset])
> +	], [])
>  ])

Marek reports that this breaks the build.

https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10959608099

Specifically, for a build using --enable-systemd (to get the
initscripts) but without systemd-dev(el) installed.

A while back we went to a lot of effort to stop depending on
systemd-dev(el).  For the sake of one path, we don't want to bring that
dependency back.

Can we see about breaking this dependency again please?

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 03:29:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 03:29:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178429.1502244 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRMV6-00079M-Rs; Fri, 05 Dec 2025 03:28:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178429.1502244; Fri, 05 Dec 2025 03:28:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRMV6-00079F-Op; Fri, 05 Dec 2025 03:28:56 +0000
Received: by outflank-mailman (input) for mailman id 1178429;
 Fri, 05 Dec 2025 03:28:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kgFP=6L=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vRMV5-000799-AM
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 03:28:55 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 849e004e-d18a-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 04:28:52 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 BY5PR12MB4100.namprd12.prod.outlook.com (2603:10b6:a03:200::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Fri, 5 Dec
 2025 03:28:47 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2%2]) with mapi id 15.20.9366.012; Fri, 5 Dec 2025
 03:28:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 849e004e-d18a-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yN18kjsptYLDCpLbKmOYa/6z90NZCeJ6amSqfz/sJdAjZBS5F7WQC6ZR3FAUyqjb0pwkuwBzGSYkAIjXCbbnUOMk6jEziQD2mm042o9kuW49jxw17rBdrLhcuNXJoLDEE5gr7Lv+9MJ5/7bP4XCpfla5uChoE8fj5EZJO8dhSp8mbAT7fGKshg5GSnoAbmjHqSHPgGqTAe9BCSoxn7Nm8GzjyJx0Ho+jAMkMsEyCGyjXEN0ACgRrRcBNwh1vMAPiHC58sRTm3/uW4A1e4oDYOnxPCEc45a6JHZBoQQd3MZYJzLN5QtoCPjSQowYw1Tx92lvL0MRz+Ogi6ypO1qfA+g==
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=SzHSDnqBA5f5qQl6YX3o5GWe8g11pWZatzOFeuY0zYc=;
 b=N40Y+4otSYV7l78vPRnXxNuUGxkmyUg66tgdx2QvsPCi/+MLNUHvG1YP5x0aGO4w4P05cjNIMrlRDbzqYOlOvXQf/TIU0yUPaztavauD6NYvO+64ZwUIbA0fQMLne+CMkJgI0v1TYof/UJNNuZFUo/tMxqFAFm4xdqwajtfOlEj6VlxSLu44iEYTLL63GsOrLqbBHyfGQPqp5doehIs9nMpjZcy3mq3xQUCGpu7RdDvNAdeZj3mbimsoXBvc0mxFHkiPLG0KCrQZEgEK/vENbIvvcgMIRkAGQvjBPTmviIGRpvnjAzUE9stXTyRVmeyaHbTHQwIidCBTLSPnwYYUHg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SzHSDnqBA5f5qQl6YX3o5GWe8g11pWZatzOFeuY0zYc=;
 b=XOGNnnKpr+FZb8MwzYB2hgVJ+uTVBN4VZdWmKC4HkT5meClCr7jdWsumLZ3VbhSCopkAfrJE4ZuzsRw3O/Vg6E/PHahkbGokStw8EHfd35bVrRJ2v6YG0wlLaL29Nz4aaP3sq7ciwdWvAlPwUjbKWHilb1sJGdmAn0VFWrtnrEk=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "grygorii_strashko@epam.com"
	<grygorii_strashko@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>, "Orzel, Michal"
	<Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v4 20/24] xen/x86: wrap x86-specific domctl-op with
 CONFIG_MGMT_HYPERCALLS
Thread-Topic: [PATCH v4 20/24] xen/x86: wrap x86-specific domctl-op with
 CONFIG_MGMT_HYPERCALLS
Thread-Index: AQHcWtXmS51F6WJwgE2h9vzl8XgXOrUDpDaAgA1N7rCAAFxegIABIoIw
Date: Fri, 5 Dec 2025 03:28:47 +0000
Message-ID:
 <DM4PR12MB8451F190E0AA787B9DAA7A6AE1A7A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-21-Penny.Zheng@amd.com>
 <de34ea34-1558-46b3-b5a6-79edd60ad45f@suse.com>
 <DM4PR12MB84519D61527BF82117F65CAEE1A6A@DM4PR12MB8451.namprd12.prod.outlook.com>
 <57dea7ef-9bbe-44f8-a0dc-c933a6235c05@suse.com>
In-Reply-To: <57dea7ef-9bbe-44f8-a0dc-c933a6235c05@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-12-05T03:28:38.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|BY5PR12MB4100:EE_
x-ms-office365-filtering-correlation-id: 76f8d65f-21d6-4f27-d66d-08de33ae6687
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?K3hNK2U3UERkalFLMVRNQWtxM0FMWnNxV3lTTVMxNGtCZ3I5Vy9WTWVUNXgx?=
 =?utf-8?B?bUhhNmZwQXFldzliMGZSb013bHU3ODZTQlpDYkNZdjQvVlRUSHA3a0tYbVRS?=
 =?utf-8?B?TjAwRmExeEcxTUVCeXJ0RUtWTzFFUXhTZUxtbkxySktERTdydXFrMWhsQUx1?=
 =?utf-8?B?dXJ5SHExbTErMTJZS1JxMSs1TWJvTXV1UEcwOWk5cXNLZFR1YmtPM2lrZVlh?=
 =?utf-8?B?eTJ5UzJid2phYUExT1pvSlpQV2lmVHh3NWpsaWUwUlhGTUJyMGlJVzh6UERh?=
 =?utf-8?B?aThiUk01NERxK2tvUi9vQWEwWFROQ0xHUUNFbHlndkhkdXhTNHhyZURiQ0d6?=
 =?utf-8?B?MWM2L0piWG1hMHdiNXV2K1UvUGljc3c0MVpNTTVHZUZnWk9TVm9ONTcyU25E?=
 =?utf-8?B?RDdhRWtUSHRucmpWWm55N0hrOG16V2svTXU2NDRvcW5MMTlJVWkwNi9JczNp?=
 =?utf-8?B?d2NJY1Q2SWk3K3B5ZUc3VkJLMWlBZDBWTVhzbkhwVXl5bWZRL2FDR2lNRjMw?=
 =?utf-8?B?QmpCME05M3RVZlhtY1ZIMGFXVHl3OXFuL0ZVemVmTG9XUHRPRGVlMlpvaXp5?=
 =?utf-8?B?WWdMRkRJRFE5VWRLMjhQRFVidmFEZW1QYzhLOVEyTkhGR1BRdU9lYnFXZEpy?=
 =?utf-8?B?WVVCMjJZaTE4WTU2UkdwM0xyc1NLUFFHUWtpRlB4QWo5anpPV0NlU29icnRT?=
 =?utf-8?B?VWhKUlV5VmZKRXh2WmlNemJRQ2c0RDdySVYyblk1VnpwVUVJU2JOTTl1bXli?=
 =?utf-8?B?YW85OG9xMUNWbEd1cko5YTFDZnErMDVnOXRpWHY4cHRkZ0RlV09YYkpTSlNX?=
 =?utf-8?B?ZmdIRDEzR0d5SVloTHRNZEI5aGNldGdOQVJiSWRSZmhUS3RmekNPdDNTc1J2?=
 =?utf-8?B?RlllSHJzSWlndnl2WmtnR0ZDZlFIUDZmSC81bTJNVWNOUWVGM0pBcHB5WFI5?=
 =?utf-8?B?aVVCbjRGcGFHMk4zMlhyU3JqaVJPdkZFT2RBcUljSWpnbGNTancxRzBHU1Rv?=
 =?utf-8?B?UHRxVFdpVG54NE44YXc5OC9wSHYzWjh6aG9qSGtGMFdQZFpvcjlSNmExTy94?=
 =?utf-8?B?UUUyV3IreFd1Sm9razNzQk13Q2krWlV2VzE2aTJMcDdJYmpTbW0xRVg1bUxK?=
 =?utf-8?B?K3M5Wnhvem5VNWtmTW9RUUh2Skh0SG5iQjhkbHZUcnovZ01LOE1ZYk1tby9l?=
 =?utf-8?B?VlFHWnlabEZmRXQyRXBIbU5FZTNpcHl2c2VNcmVwczdvQmd6eXI3SzV5T2xw?=
 =?utf-8?B?NEs3amR4T05Cdm9qZjM2RUJHZDNjSEVRMjRNWFQ4WlRobWhndkVRWGdVSFJP?=
 =?utf-8?B?Qmd1bDl1S3FMZTNhd1d6NVgrendyZG9MMmRBQUZMeVZPWDZmc0Y5eHF0MVB4?=
 =?utf-8?B?STZ2UFhQcWhiNVY3bm9GbExmL3QvaG9GVCtxWVlyMm13QU5scTRBUzllSnNO?=
 =?utf-8?B?Tmh5MGdPYXBOZ2h1N3FZaGJKTlVaZGlqbDhDSVV4QW9YTnNoMmthK0lWREZx?=
 =?utf-8?B?djRtOVlycmNPUi9iak9QcUJYdXBPbk4ydjlVeHNhWlpkZHJhdnlQUWtud2hx?=
 =?utf-8?B?c1pJb005RmwvcWxsYzFPR0JyUEpTWGFJL0hiYXhUbThwaU9XRHdYdHhGaEl2?=
 =?utf-8?B?RGhBempWUnhPYWUxNXdzNGxvTjNOQ2ZETUFLSytUZ0wwRTZMRytDSU94TmFE?=
 =?utf-8?B?bGlURk1mWE01ZTUwODJQeitaMmY1LzhONzdwczNtV21FU3BhMlN5VUlzL2JN?=
 =?utf-8?B?aDhqQUZicnc4U2xLT09XM1lIUzhGSjQvbTJlVERGSGk3dEt5WmRXd3BHOXAx?=
 =?utf-8?B?QURHRHVXTG1iOHBDUytiYTZNNUFtZWo4N0svZjlMYWRsak1RMjBZNVJ3ZTU0?=
 =?utf-8?B?RXJUTmNBY0JrNGxYYVhwdUE0Ky9UQ0M4alhrbytVMjRNaXZqbUU3alF2OGpX?=
 =?utf-8?B?WDlCS0MySFZvb25yZzBnMTdUUG9hWkpoNTM4dW56QlRYdlZXT1JuNElsNUQ2?=
 =?utf-8?B?eWY5bEt0N0kwS3JQaWNwQTFtVEJRWTBHWWljSjFQOUZLdHNqUkNrbHNpbkMv?=
 =?utf-8?Q?+Ct8qp?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?N25TS1hSV05aSmxvZGdYK3I1SGIySCtXWkU3b0E0bDdsb2x3ZGpIdVZTejFB?=
 =?utf-8?B?U0tTOGlRSDFyT1kxVU1lS05nU2RUdXhudGtNYmhWdmxJMWJrbTBEeDZ6VjJ0?=
 =?utf-8?B?TTd3Q1RJNGZMRGVTb1ErSFN5MWdWNHdWOUt5N1htYy8ySWhXTDg2SFBCTnY2?=
 =?utf-8?B?QW5BcFZablZWa3RqSzE4Yzk1alQrWXdsVmZqQ05oQWQyR1JpL3Z6S290c3FS?=
 =?utf-8?B?eUxBSS9KTFB5S1E0Z1Y3RDBrSDVKR2ZvTEhqNGVZOVl5TlRqeHE1dUtGR09I?=
 =?utf-8?B?RHZzVFA3anNxWEVPdVhuMEpnZ1Bpby9TQUpSalZmZkE2NCtmSnU4RFNodllr?=
 =?utf-8?B?elNQemx4Yjd6SjFUdno0bk1FUlNpbklaWHVuQUZiS0hIUnJocE1YMHlRRlhi?=
 =?utf-8?B?T094ZExTY1J5d1JNOWsyU2hHVHlWbEVCNjQrVjNnaEwrSm9KNmxQL0RoalNv?=
 =?utf-8?B?c1FwUU5PWHVjVlVmSTQwMUR5N2xXckxrbUtFcDVJRnliU1F2cU1ZWUZsbmFL?=
 =?utf-8?B?Y1FzQy94cVNHRTFUSTg3eXFWSDcwcC9pM043clh2TU9aZ1FiQTBhRit0aFpC?=
 =?utf-8?B?eXpTNk5YSHpXOGZjOTVVY0ZwZm94VDZZcUhqUnNTY3J0aUEveGlNckFVNlJn?=
 =?utf-8?B?K1RJbDB2TDNYR0hTTmwxTEQ2NUVtanZ6aUpkM05HT2FqNjZsUytzeWJxWTc2?=
 =?utf-8?B?U2srUjJvemhyczZqVk1BcDJVVzVHaU1iMllLQ1hNM1BmM1RPQ0grdThTYmsv?=
 =?utf-8?B?VUYrZ2pDQWVQd0VtdXlUNXRJQVEyZTVFOTVhUFpoMy9lRTZSRGVCZHE1MU5h?=
 =?utf-8?B?OTFKeWMwcExlRFdZTGt4bi9VQUNHSE1jeXVmK3dEWmhSL3FYdmJIdXR2ZzZT?=
 =?utf-8?B?cjJrZkd1UzBkQ3RhUWttTmtvdGwrYzZWZ1lBS1RKVW1sUWdEOHZwbXZsK1pB?=
 =?utf-8?B?NEdrdTY0MkI5YUFtclBpSXZhSDdXOE84ZENybmVVUkNHbWUxcUFnSis5a1E1?=
 =?utf-8?B?MTc3ZGZlTnFWU3QvMlI2UHJEOFMySFMzTE05RzJnSlI4akYxc2h5ejBtV3Np?=
 =?utf-8?B?L0tCRVpsWU1Pd2JPdk1QNkZtdDlDNXRzV3M1V0VGNmt0VVRHY1pYQXNKNkJ5?=
 =?utf-8?B?YjBudFhOeG1lZmdWYnJyV2M0T09VcDAxRUEvSDVZNkVFMWF5aFI3dngyQXIr?=
 =?utf-8?B?YjNybmRxR1BweW5sWWRaTnMvU2lEeXgwNUxSWW5aRmVwWFEwZXcrY2hmc053?=
 =?utf-8?B?a25WNFVHZHhrd1prTnp0aldQa2h1WnAyYzdPdlBrVWprY3k2MitHa2QwSloy?=
 =?utf-8?B?SnYvNlZ5WjdocEs3c01xZU1tL1grb01XRmxaTTVWTmdmdWVCelBxVXA4T29W?=
 =?utf-8?B?N0NIZi94U3ArM25KOSttYnJteEd2QmdvOEthWDF1VU5WTGoxbEZsUjFJR25G?=
 =?utf-8?B?aWZMRDlCU0RYeDJpakNySUQ2OHl6RGJkWFl5Smltd3B1SzJ1V0pZNUorbisv?=
 =?utf-8?B?Mys4RUg3R2s3SXArNGE5WGx4aHVDM0lpWXJyK0ptTk14b3h4T01WS3cwdkQ1?=
 =?utf-8?B?MDcrajhlRWwzU0NxaXF0aTVmaGNYb1hxVG0zZmV1OC9hdmNEUTcyUUtaQ2N6?=
 =?utf-8?B?NFpabE56c2k1dGJxSGNUaXRBVEFIdFc3bmswcHJFaHI1T2xMdC8yS2Z4L25I?=
 =?utf-8?B?Q1pTbzhvcU5ValRVaXpteW9FZ3hHN3BwS2VnL1lnZFVUL0poUU1LRzZrODBJ?=
 =?utf-8?B?TnBYMS94b1FleUFENVVoZDRPdGZIUEptMVhwRUlGeUlRc2UvdXpQUkw4V3Rq?=
 =?utf-8?B?RzFGUUZWSGlTV1VuOG11MVJReFVDcTY5anB1c1htWDUwYVM5SndIKzFHZkp1?=
 =?utf-8?B?T0FtWUI4aUZVdUREcGlvWDIzc1oyeGRqdTJCQkhHeUZSdlpKT3QyMkZpaUtO?=
 =?utf-8?B?QlNMcGxYN1o0Ui9qT3BJeUM0bjJ4UlBGS2RVT2Q2K01KZTVteGlpOWhaL2M4?=
 =?utf-8?B?Y3dwcGpYWDJrbzNSQkYvTXhOa2ZrNXlHQTdyVDR4RTJEck43ZUxvcUxzQzY4?=
 =?utf-8?B?dFZaOE83UG9hRDlRVTUzenpVZ2pyTjZFdDVyM0h0TmNKU3hkZDA0TVgxSk55?=
 =?utf-8?Q?OD9A=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 76f8d65f-21d6-4f27-d66d-08de33ae6687
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2025 03:28:47.0622
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: PpEnslyxtaY1vAYETFycJIK2UjA/vp3xwSezH5rPHY2iTf5zM76FHQ07mG1RKmQoQc5yIp/V3NQzNWLpy7+RkQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4100

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBEZWNlbWJlciA0LCAy
MDI1IDU6NDEgUE0NCj4gVG86IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT4NCj4g
Q2M6IEh1YW5nLCBSYXkgPFJheS5IdWFuZ0BhbWQuY29tPjsgZ3J5Z29yaWlfc3RyYXNoa29AZXBh
bS5jb207IEFuZHJldw0KPiBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+OyBBbnRo
b255IFBFUkFSRA0KPiA8YW50aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD47IE9yemVsLCBNaWNoYWwg
PE1pY2hhbC5PcnplbEBhbWQuY29tPjsgSnVsaWVuDQo+IEdyYWxsIDxqdWxpZW5AeGVuLm9yZz47
IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPjsgU3RlZmFubw0KPiBTdGFi
ZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPjsgRGFuaWVsIFAuIFNtaXRoDQo+IDxkcHNt
aXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPjsgeGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn
DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjQgMjAvMjRdIHhlbi94ODY6IHdyYXAgeDg2LXNwZWNp
ZmljIGRvbWN0bC1vcCB3aXRoDQo+IENPTkZJR19NR01UX0hZUEVSQ0FMTFMNCj4NCj4gT24gMDQu
MTIuMjAyNSAwNToyMywgUGVubnksIFpoZW5nIHdyb3RlOg0KPiA+IFtQdWJsaWNdDQo+ID4NCj4g
Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogSmFuIEJldWxpY2ggPGpi
ZXVsaWNoQHN1c2UuY29tPg0KPiA+PiBTZW50OiBXZWRuZXNkYXksIE5vdmVtYmVyIDI2LCAyMDI1
IDE6MDAgQU0NCj4gPj4gVG86IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT4NCj4g
Pj4gQ2M6IEh1YW5nLCBSYXkgPFJheS5IdWFuZ0BhbWQuY29tPjsgZ3J5Z29yaWlfc3RyYXNoa29A
ZXBhbS5jb207DQo+ID4+IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+
OyBBbnRob255IFBFUkFSRA0KPiA+PiA8YW50aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD47IE9yemVs
LCBNaWNoYWwgPE1pY2hhbC5PcnplbEBhbWQuY29tPjsNCj4gPj4gSnVsaWVuIEdyYWxsIDxqdWxp
ZW5AeGVuLm9yZz47IFJvZ2VyIFBhdSBNb25uw6kNCj4gPj4gPHJvZ2VyLnBhdUBjaXRyaXguY29t
PjsgU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPjsNCj4gPj4gRGFu
aWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPjsNCj4gPj4geGVuLWRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjQgMjAv
MjRdIHhlbi94ODY6IHdyYXAgeDg2LXNwZWNpZmljIGRvbWN0bC1vcA0KPiA+PiB3aXRoIENPTkZJ
R19NR01UX0hZUEVSQ0FMTFMNCj4gPj4NCj4gPj4gT24gMjEuMTEuMjAyNSAxMTo1NywgUGVubnkg
Wmhlbmcgd3JvdGU6DQo+ID4+PiAtLS0gYS94ZW4vYXJjaC94ODYvS2NvbmZpZw0KPiA+Pj4gKysr
IGIveGVuL2FyY2gveDg2L0tjb25maWcNCj4gPj4+IEBAIC0yOSw3ICsyOSw3IEBAIGNvbmZpZyBY
ODYNCj4gPj4+ICAgICBzZWxlY3QgSEFTX1BDSV9NU0kNCj4gPj4+ICAgICBzZWxlY3QgSEFTX1BJ
UlENCj4gPj4+ICAgICBzZWxlY3QgSEFTX1NDSEVEX0dSQU5VTEFSSVRZDQo+ID4+PiAtICAgaW1w
bHkgSEFTX1NPRlRfUkVTRVQNCj4gPj4+ICsgICBzZWxlY3QgSEFTX1NPRlRfUkVTRVQgaWYgTUdN
VF9IWVBFUkNBTExTDQo+ID4+DQo+ID4+IFdoeSB3b3VsZCB5b3UgdW5kbyBhbiAiaW1wbHkiLCB3
aGVuIHJlYWxseSB3ZSBzaG91bGQgdXNlIGl0IG1vcmU/IE9uZQ0KPiA+PiBvZiBpdHMgcHVycG9z
ZXMgaXMgc28gdGhhdCB5b3UgY2FuIGFkZCAiZGVwZW5kcyBvbiBNR01UX0hZUEVSQ0FMTFMiDQo+
ID4+IHRoZXJlLCBhbmQgaXQgdGhlbiB3b24ndCBiZSBhdXRvLWVuYWJsZWQgaWYgdGhhdCBkZXBl
bmRlbmN5IGlzbid0IGZ1bGZpbGxlZC4NCj4gPj4NCj4gPj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9wYWdpbmcuaA0KPiA+Pj4gKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L3BhZ2luZy5oDQo+ID4+PiBAQCAtNTUsNyArNTUsNyBAQA0KPiA+Pj4gICNkZWZpbmUgUEdfdHJh
bnNsYXRlICAgMA0KPiA+Pj4gICNkZWZpbmUgUEdfZXh0ZXJuYWwgICAgMA0KPiA+Pj4gICNlbmRp
Zg0KPiA+Pj4gLSNpZiBkZWZpbmVkKENPTkZJR19QQUdJTkcpICYmICFkZWZpbmVkKENPTkZJR19Q
Vl9TSElNX0VYQ0xVU0lWRSkNCj4gPj4+ICsjaWYgZGVmaW5lZChDT05GSUdfUEFHSU5HKQ0KPiAm
JiAhZGVmaW5lZChDT05GSUdfUFZfU0hJTV9FWENMVVNJVkUpDQo+ID4+ICYmDQo+ID4+PiArZGVm
aW5lZChDT05GSUdfTUdNVF9IWVBFUkNBTExTKQ0KPiA+Pg0KPiA+PiBUaGlzIGxpbmUgaXMgdG9v
IGxvbmcgbm93Lg0KPiA+DQo+ID4gSG1tLCBob3cgYWJvdXQgSSBpbnRyb2R1Y2UgYSBuZXcgS2Nv
bmZpZywgc29tZXRoaW5nIGxpa2U6DQo+ID4gYGBgDQo+ID4gZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L3g4Ni9LY29uZmlnIGIveGVuL2FyY2gveDg2L0tjb25maWcgaW5kZXgNCj4gPiBjODA4Yzk4OWZj
Li5lYzhmNTFiMGIxIDEwMDY0NA0KPiA+IC0tLSBhL3hlbi9hcmNoL3g4Ni9LY29uZmlnDQo+ID4g
KysrIGIveGVuL2FyY2gveDg2L0tjb25maWcNCj4gPiBAQCAtMTY2LDYgKzE2Niw5IEBAIGNvbmZp
ZyBTSEFET1dfUEFHSU5HICBjb25maWcgUEFHSU5HDQo+ID4gICAgICAgICBkZWZfYm9vbCBIVk0g
fHwgU0hBRE9XX1BBR0lORw0KPiA+DQo+ID4gK2NvbmZpZyBQQUdJTkdfTE9HX0RJUlRZDQo+ID4g
KyAgICAgICBkZWZfYm9vbCBQQUdJTkcNCj4gPiArDQo+ID4gIGNvbmZpZyBCSUdNRU0NCj4gPiAg
ICAgICAgIGJvb2wgImJpZyBtZW1vcnkgc3VwcG9ydCINCj4gPiAgICAgICAgIGRlZmF1bHQgbg0K
PiA+IGBgYA0KPiA+IFRoZW4sIGxhdGVyIGZ1dHVyZSBkZXBlbmRlbmN5IGNvdWxkIGJlIGFkZGVk
IHRvIFBBR0lOR19MT0dfRElSVFkNCj4NCj4gSSBmZWFyIEkgZG9uJ3Qgc2VlIGhvdyBoYXZpbmcg
YW4gb3B0aW9uIG1lcmVseSBhbGlhc2luZyBhbm90aGVyIG9wdGlvbiB3b3VsZCBoZWxwIHRoZQ0K
PiBsaW5lIGxlbmd0aCBpc3N1ZS4gSSBtYXkgc2ltcGx5IGJlIG1pc3Npbmcgc29tZSBjb250ZXh0
IC4uLg0KDQpMYXRlciB3aGVuIE1HTVRfSFlQRVJDQ0FMTFMga2lja3MgaW4sIHdlIGNvdWxkIGhh
dmUgdG8gYXZvaWQgb3ZlcmxvbmcgI2lmZGVmOg0KYGBgDQojaWYgZGVmaW5lZChDT05GSUdfUEFH
SU5HX0xPR19ESVJUWSkgJiYgIWRlZmluZWQoQ09ORklHX1BWX1NISU1fRVhDTFVTSVZFKQ0KI2Rl
ZmluZSBQR19sb2dfZGlydHkgICAoWEVOX0RPTUNUTF9TSEFET1dfRU5BQkxFX0xPR19ESVJUWSA8
PCBQR19tb2RlX3NoaWZ0KQ0KLi4uDQpgYGANClRoZSBhZGRpdGlvbiBvZiBNR01UX0hZUEVSQ0NB
TExTIGRlcGVuZGVuY3kgY291bGQgYmUgYWRkZWQgdG8gUEFHSU5HX0xPR19ESVJUWSBrY29uZmln
DQpgYGANCmNvbmZpZyBQQUdJTkdfTE9HX0RJUlRZDQogICAgICAgIGRlZl9ib29sIFBBR0lORyAm
JiBNR01UX0hZUEVSQ0FMTFMNCmBgYA0KDQo+DQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 07:31:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 07:31:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178470.1502253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRQHH-0002H6-VQ; Fri, 05 Dec 2025 07:30:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178470.1502253; Fri, 05 Dec 2025 07:30:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRQHH-0002Gz-SG; Fri, 05 Dec 2025 07:30:55 +0000
Received: by outflank-mailman (input) for mailman id 1178470;
 Fri, 05 Dec 2025 07:30:54 +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 <SRS0=7OvG=6L=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vRQHG-0002Gt-3Z
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 07:30:54 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 530b6334-d1ac-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 08:30:52 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-42e2d44c727so909999f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 04 Dec 2025 23:30:50 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbe9032sm6668271f8f.1.2025.12.04.23.30.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 04 Dec 2025 23:30:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 530b6334-d1ac-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764919850; x=1765524650; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0aigU3TqwxY2ENx3SoF9XNLy+q8KNYgu9SQUaMh9GAA=;
        b=PBxjsdEx2dY1SBxDhKm5kK1lF4oL5F8iwbaXohN0cFFPLL/vehFr7LiTEnXKpmCmj0
         8SRXtBwIdmJEi4OyudSRF5xxfchrQZu7fRFn1HV6n7/bUQsstqrjlYlun9qxMOcifK1Q
         /sGDk4vUibwqyyyd8r3DJYgKz7L124ghLp1b1ZjfJLGH4s/Z1LFRmKRy6DCgjrs9tPbB
         6sVpCE94wBh45zkLwBwUHV4ZwdVjGicpILOIWjkC/pfYRNKc1tsT0IY7CYP+72OLflmR
         1DiyFXEHkfaU1AeZ42HZEVfpfe83oMRQ8KlSrp+kzTzyqyVUJbpFF0bAeH1GlNtO2y0W
         NJvw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764919850; x=1765524650;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0aigU3TqwxY2ENx3SoF9XNLy+q8KNYgu9SQUaMh9GAA=;
        b=P0phE3PRBpZPFfv0JUEuaVmx4oKBgk5uACNF/KxuimR96HJ+XXIslYJzS0VPJJdfkK
         2tCb1dULjtP4xNQVSiVihO0XSX/fp0D6nqUUz2NNxR1MqQRMsPv734py4cx16UwczGln
         4N7HSS0b/0BNf9yH/j+MQ0KGxaJObPxCKQasspa7yiLcKgitewNBDOVPaWtvweUPwpsI
         B2O1MxlNIdgCOJQnfs7PohCmXDIuGgGv1a7n8hpt+f5zes/mjFxEsHMMW9oI3dUv0spa
         Q4NiEfaLVaH+jmbHZWzn77n7W7vOjuT9kgZdyEaMs5DbbvdPQtKn+5F7yaiqXcMvHMI8
         Zwgw==
X-Forwarded-Encrypted: i=1; AJvYcCVFeK6IJ72BfXnLKoq5Illlz9HtBZnU6ZAA/7FBYXCer0OBWxz9dU4c8XYRxaJ+/tfALgQjpePLP/Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx1a/SU52gasoRcq23FamEblTlmHa/FKpmK29DV+oNmsqaH1l+0
	TUFardJtVNgHKOyegtBDkpYmoZ7+sINnaSm5vrTq5cHOrpH3wR0iA7MmSCZxGvy7ww==
X-Gm-Gg: ASbGncu4H6D1B6zphUl/MBam0rtCAcTEaxx2zHJzfaFM6ZK3XZg1871UU3oww+/yDvm
	h2NhpOPSlRVDs7HJC7wCrVm5AuKtZYaY8PToHwPYBHl3W8UwJHmeA2m5lkzIPc0l6pJ25IEOuUY
	PP7qdpUCQlG4QPyvrSkdTuro878+vOov0HKZr1V+RtxxfHvv1kzWnhiYeP3BsVHd+qlQMitlD4C
	6JhnlqXoSMIim2lRKpdZyZIqHWx0WbkPloqs7VgAPXyPMftng6m5Mz2b+5bCzCrqTpRhrf+Q35N
	vm25N3S4ZJROCB4wE1j9jvAvTC6UWIBcg17IXrCiWmUXC1srzOpZ/Nk+P8pplwrwoyQThiceSMt
	QNnGPX+VBRNS5KZ/o4f7r82T58oE2MR7chLJQQBTQz/5fB0w3toJKjeq0kSjLHPbVG1HW7OVk5t
	28CZ5qVC/1BiK3y/bN3KH0QTrZ5jbPqgZGTELJsBCImkvbSXJ5CV9RikFQLGYCR0+01STaRsM6h
	34=
X-Google-Smtp-Source: AGHT+IF22ETfsmxT7FAk8vaaWMlO7/GQrU57gDwBDSGmpXXYk+B+q1Tm8vq175YiwYYvnpSis75Y/w==
X-Received: by 2002:a05:6000:1449:b0:429:d170:b3d1 with SMTP id ffacd0b85a97d-42f7320bea0mr8994503f8f.59.1764919850116;
        Thu, 04 Dec 2025 23:30:50 -0800 (PST)
Message-ID: <93895869-2584-4054-b651-7d77e72cb20c@suse.com>
Date: Fri, 5 Dec 2025 08:30:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 20/24] xen/x86: wrap x86-specific domctl-op with
 CONFIG_MGMT_HYPERCALLS
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 "grygorii_strashko@epam.com" <grygorii_strashko@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-21-Penny.Zheng@amd.com>
 <de34ea34-1558-46b3-b5a6-79edd60ad45f@suse.com>
 <DM4PR12MB84519D61527BF82117F65CAEE1A6A@DM4PR12MB8451.namprd12.prod.outlook.com>
 <57dea7ef-9bbe-44f8-a0dc-c933a6235c05@suse.com>
 <DM4PR12MB8451F190E0AA787B9DAA7A6AE1A7A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <DM4PR12MB8451F190E0AA787B9DAA7A6AE1A7A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2025 04:28, Penny, Zheng wrote:
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Thursday, December 4, 2025 5:41 PM
>>
>> On 04.12.2025 05:23, Penny, Zheng wrote:
>>>
>>>> -----Original Message-----
>>>> From: Jan Beulich <jbeulich@suse.com>
>>>> Sent: Wednesday, November 26, 2025 1:00 AM
>>>>
>>>> On 21.11.2025 11:57, Penny Zheng wrote:
>>>>> --- a/xen/arch/x86/Kconfig
>>>>> +++ b/xen/arch/x86/Kconfig
>>>>> @@ -29,7 +29,7 @@ config X86
>>>>>     select HAS_PCI_MSI
>>>>>     select HAS_PIRQ
>>>>>     select HAS_SCHED_GRANULARITY
>>>>> -   imply HAS_SOFT_RESET
>>>>> +   select HAS_SOFT_RESET if MGMT_HYPERCALLS
>>>>
>>>> Why would you undo an "imply", when really we should use it more? One
>>>> of its purposes is so that you can add "depends on MGMT_HYPERCALLS"
>>>> there, and it then won't be auto-enabled if that dependency isn't fulfilled.
>>>>
>>>>> --- a/xen/arch/x86/include/asm/paging.h
>>>>> +++ b/xen/arch/x86/include/asm/paging.h
>>>>> @@ -55,7 +55,7 @@
>>>>>  #define PG_translate   0
>>>>>  #define PG_external    0
>>>>>  #endif
>>>>> -#if defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
>>>>> +#if defined(CONFIG_PAGING)
>> && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
>>>> &&
>>>>> +defined(CONFIG_MGMT_HYPERCALLS)
>>>>
>>>> This line is too long now.
>>>
>>> Hmm, how about I introduce a new Kconfig, something like:
>>> ```
>>> diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig index
>>> c808c989fc..ec8f51b0b1 100644
>>> --- a/xen/arch/x86/Kconfig
>>> +++ b/xen/arch/x86/Kconfig
>>> @@ -166,6 +166,9 @@ config SHADOW_PAGING  config PAGING
>>>         def_bool HVM || SHADOW_PAGING
>>>
>>> +config PAGING_LOG_DIRTY
>>> +       def_bool PAGING
>>> +
>>>  config BIGMEM
>>>         bool "big memory support"
>>>         default n
>>> ```
>>> Then, later future dependency could be added to PAGING_LOG_DIRTY
>>
>> I fear I don't see how having an option merely aliasing another option would help the
>> line length issue. I may simply be missing some context ...
> 
> Later when MGMT_HYPERCCALLS kicks in, we could have to avoid overlong #ifdef:
> ```
> #if defined(CONFIG_PAGING_LOG_DIRTY) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)

Yet this is a bogus construct to have. It really means PAGING_LOG_DIRTY would
better depend on !PV_SHIM_EXCLUSIVE, except that this is precisely the
pattern we want to get rid of. At which point imo the usefulness of
PAGING_LOG_DIRTY would be somewhat limited.

Jan

> #define PG_log_dirty   (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)
> ...
> ```
> The addition of MGMT_HYPERCCALLS dependency could be added to PAGING_LOG_DIRTY kconfig
> ```
> config PAGING_LOG_DIRTY
>         def_bool PAGING && MGMT_HYPERCALLS
> ```
> 
>>
>> Jan



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 07:34:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 07:34:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178484.1502263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRQKZ-0002t5-FO; Fri, 05 Dec 2025 07:34:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178484.1502263; Fri, 05 Dec 2025 07:34:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRQKZ-0002sy-CU; Fri, 05 Dec 2025 07:34:19 +0000
Received: by outflank-mailman (input) for mailman id 1178484;
 Fri, 05 Dec 2025 07:34:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=7OvG=6L=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vRQKX-0002sq-CX
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 07:34:17 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id caf8d720-d1ac-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 08:34:12 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-477770019e4so17544775e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 04 Dec 2025 23:34:12 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d331a4fsm7393490f8f.33.2025.12.04.23.34.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 04 Dec 2025 23:34:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: caf8d720-d1ac-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764920051; x=1765524851; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pWanF+EN/1auBBnIdoqlxxRWzT2nFfkzpJk80udA3BQ=;
        b=c7e+hfiz7zjh+o5QZyWa+njMwYiowqd+T5y7z3tFE3FoZ8rtHqoAglNPBA/H00XUtL
         HRvZb7OTpKhs8MrjZGPZrIluBsau9hXurYLIgLCj1YBP889FKFpOLBPINtex8YpUg65z
         0NDbm1NXq+ZY2wHf3tgVBLhgEdS1j/DkKzMa3PmjuMvHGh1vr+t5RNoS2NAhv12fRYx5
         vNERrLheP9Li268LqXmT1mhnZMuLeUMAtrT+FOoW3/W0g2n0MwMQjkCb7yhREZ+x4I3I
         p9I4W6QUTG0QvYp4uSOvg945zwPf9ekpVjZcGzNJP4I/VStLnVfjg+76METv7ryM+jUU
         teAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764920051; x=1765524851;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pWanF+EN/1auBBnIdoqlxxRWzT2nFfkzpJk80udA3BQ=;
        b=Xgv9PwjbOSN9KmAP9+josuE4cFG3YcUoH/UYjh1wOKVacQ9tQeOR9m5UxhN/ONmFyl
         IAuK3pCXE/FkwbLYY4n9+ViPt7tRDtSqJXuu/uXSeTZsBI7h84MuVXnzgVDgm9ffJfyK
         h7EJt9NdI8/jeazBlmgILiLKSBJgKHQhiJZFqJu4ApYBQykuey3CWIbRLr7KLAcdytI/
         TrM9bB3PlZIU6HLtkf+87zUDsKFrmtgXb8Xbhue6G4YyyZqdweYZLpzSBOiF4Yv32Hx8
         FSXXZoym4nhR+LpLvUCePfOCQFrvOKqL/qsZVVYHHceItId4lw1CjZuQPsvx4hi5RrtW
         lYRA==
X-Forwarded-Encrypted: i=1; AJvYcCUeL92DpOh68GRlWANyMCjsWoMJqc9B9InlvjJ6Y1j9YfbpSPL43tFH9EGbAuhbVXMqUm2ju4yQEDI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwZW3Oh8c8GiRYnKZ1ynfZSn2IITURD+slqsp1V238X0hkJWkjc
	PIIcaFzrz8SRZ01rniSIyFOYw/xmhgs8hl0dfkex64MqHwvewjWAj4QAGHJPKmQgvQ==
X-Gm-Gg: ASbGncsMKKP1/nU9tJ60oEH3cIPqAIL23XXWgeoVJdlo09Bhbcoawl6m4gyue1mDOKl
	vHysWd1bwr2/EbPZ3yrIbFf6lrxFTTsjvXM/GH+4ohsm9+LciHU6IIFxJQgYpSA5AcIUdbAsqjr
	xq3oz+svpDburvvRTVoFci+rpVyOAnyon8ew6rlOlKJ/V2Npe8vaC8NtIib13X3qbIpLMRbY1E2
	tD/S4q6DJKjONqtb6HLAvkSjdBWOvaauwSSEvb7dQU1SHz1i7aDf7On61zjHGSRJ1/O4r3WuNaa
	mp2HTAzPO5eMzONljXazz5iemt3Ctfy9w+bjc+FSevyJpiaSwZaQ9XEGksSojkB7oklyKpZ6TWs
	dpnlWMW5bBdqrePLAC+RhhedbOKfNk6V9OUPV/2l7t0xF4bNLQM++vieOfQgFhVF1ZyYy+PuK85
	p8q3Xg+flDCbAlk0qB78FpENv9BLMSyofF16CyPF+VoT7DuYowJW8/P7RMsqWhA6jkWpK6Q7sGL
	7A=
X-Google-Smtp-Source: AGHT+IGjfZSpRxmy0d8Kz13TgIn/Y0jGJ8FtmF2Qwl0k1+fDeFjBQ81DemIWKqae+VW3O+peyKr7qg==
X-Received: by 2002:a05:600c:4711:b0:476:84e9:b571 with SMTP id 5b1f17b1804b1-4792f25f316mr56061445e9.14.1764920051342;
        Thu, 04 Dec 2025 23:34:11 -0800 (PST)
Message-ID: <16830f7a-1bc9-472a-adfc-1d959b6fa58e@suse.com>
Date: Fri, 5 Dec 2025 08:34:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 00/12] Changes for several CI improvements
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.12.2025 17:37, Marek Marczykowski-Górecki wrote:
> - Alpine update
> - Debian trixie
> - Linux stubdom
> - test arbitrary linux branch
> 
> Technically, the last patch isn't strictly required, but it eases debugging.
> 
> Green pipeline: https://gitlab.com/xen-project/people/marmarek/test-artifacts/-/pipelines/2196630637
> 
> Marek Marczykowski-Górecki (12):
>   Add Alpine 3.22 containers
>   Switch Linux builds to use Alpine 3.22 container
>   Add debian rootfs artifact
>   Add linux-6.12.60-x86_64
>   Enable CONFIG_USB_RTL8152 in kernel for hw12 runner
>   Include git in the ARM64 build container too
>   Support building arbitrary Linux branch/tag/commit
>   Save Linux config to artifacts too
>   Add linux-stubdom dependencies
>   Prepare grub for booting x86_64 HVM domU from a disk
>   Prepare grub for booting x86_64 HVM domU from a cdrom
>   Setup ssh access to test systems

Like for the other series, where one patch is missing, I'd like to mention
that here patches 01 and 03 didn't make it.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 07:39:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 07:39:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178495.1502273 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRQPN-0003V1-0f; Fri, 05 Dec 2025 07:39:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178495.1502273; Fri, 05 Dec 2025 07:39:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRQPM-0003Uu-UC; Fri, 05 Dec 2025 07:39:16 +0000
Received: by outflank-mailman (input) for mailman id 1178495;
 Fri, 05 Dec 2025 07:39:15 +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 <SRS0=7OvG=6L=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vRQPL-0003Uo-Pz
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 07:39:15 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f57bf3b-d1ad-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 08:39:14 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-477770019e4so17583275e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 04 Dec 2025 23:39:14 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4793092ba4fsm71518595e9.4.2025.12.04.23.39.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 04 Dec 2025 23:39:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7f57bf3b-d1ad-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764920354; x=1765525154; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sWlmOGqUhu/GMWR46r3v6KrEuCIoV85Kwm4HmboGMbY=;
        b=UY0tkGf3dMWG4vV6Qzpy0Km71d0Fxn3blqClP5NTD9X4/ctDRxMZZ7QF/G+T15y9OF
         P9T9GWP404AQD1IRg75K0FED38e34PLA7JJGAOpOVGpoMqxvvGCQlD3RneYKFLRpbtnV
         uNzS+3Fq00Hzymin633tKRk1NzPmEQO7WxEis/ewKSX9cpl3JhN272H7bxhLsoR/tYI4
         6c6/R7VLkS9CiOricKkP0ME2aN9eNqvcKkW1Dnvof34dauXuT1JobZkLLYnXqvwYynHt
         If4Rybr2Lr3ZISAFOm5xnObHyuOnpsQkNUpDXEHnu/aNAp2ScrEo9FBB5Q55fwVId/lr
         QFcw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764920354; x=1765525154;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sWlmOGqUhu/GMWR46r3v6KrEuCIoV85Kwm4HmboGMbY=;
        b=lclb7UwRftxRAOVBTMjr/tM0Gi2otoATJ6sfBnR4OGy6FErlYgn3jrloUTEq4oZbcc
         38NbOQa6VfFeVIRXq4tvNAyVesCGrFVFva/aNU4KxKt7i35AAazDzAxXmFvl6yAW60Sn
         v3PpwllegztywrmGgIJernkOFB6ZyhpNHUGaELP6l53RcwfW1Pfr+JpUILkMBEJ5xBbS
         YwO35Bd+VytcGCaERmoBl4y2b0pWiiMOwEwm1D44ExMj3Lj7xx2geLVfbTkdGJ0sVUpR
         exV4S0gb/ikjaVWRpPE70T6clMcjES4gV+ed1bdAP82bOSBXZFfbsrXqD+PdFk58pUHD
         F0KA==
X-Forwarded-Encrypted: i=1; AJvYcCUmOvMUJu0avU2WlpQi3wc4ragNLoUoE9NtyNcWiDTeeG/+5UobgbuZmkvVEcVer0NZ4gCnvsHjYfg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwO6HxMa6iLrGwsJgKZS5XaMvu4jvn0m9UeQ0IBpsJFw0T99L+r
	0goXelXuPUjr2CG3nmjD56qVTeRXsS4TtoAqR5lgWAvplMz5V2JMFUURQmuI+pBZZw==
X-Gm-Gg: ASbGnctpJ8Aq4cJ/9KK+XYaZvOE7MgSswjdKZ4bGO9X7LSfrXxE/fXE3m4WH1DY+LYn
	zxG3iEf5Egq6n2p8me7MWbhLVkh60mifwh3RI8SWcqcGuHVzQomXNJYdZA45FkcAZbYFHufJ+Yk
	4NtSRiZdlSwSH3FhfhO7fRZcD9pyzTYfOi1MtYNWxH2DQqeZfd1zfZc2ddjFVdgGHSxBDc+dcl5
	7Y2zQi1WQ1P9NBCluAMWlimxdPbWJvt0PI6HMHNmF0QnRA/I2QtJdQVzSbd5oOcdrp0YGTd6ckn
	6Y7OuAOynXQj1hIBnMpS8VXpLX6ZcLd/J1f4xydMrHZxrAGtI08Lslh/0h8K7PlFKjM40oKXua2
	OV9b+iA7Lh+Qb6uKzUjrUdZj31W3UlbKTm/IxwPRrhxIuBK3Xl1Hq8hJ8go4+uBFnHOJIB/nCam
	2WXcYtFmEUJbOgs1CBAGovVONAKqLZFRxb/KgSHTd9/B6XejWJM4Vq+TIpGWH4+2aCCcywejGUq
	Lo=
X-Google-Smtp-Source: AGHT+IEJCWFDYO2jP3IdQ2g4AzpVfERkV33Rd37kyAbl/2Xq/5g2rH0IovLv0yNdYDSFJxtXvmJQZQ==
X-Received: by 2002:a05:600c:450d:b0:477:76bf:e1fb with SMTP id 5b1f17b1804b1-4792f28b9a0mr67155945e9.16.1764920353844;
        Thu, 04 Dec 2025 23:39:13 -0800 (PST)
Message-ID: <6e189be1-a7c6-44bc-91a8-84dec7ed47e4@suse.com>
Date: Fri, 5 Dec 2025 08:39:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] console/consoleio: account for xen serial input
 focus during write
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Jason Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251204233211.980862-1-grygorii_strashko@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251204233211.980862-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2025 00:32, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> When 2 or more domains are created and:
> - one is hwdom with "hvc0" (console_io) console
> - other DomUs with vpl011 or "hvc0" (console_io) console
> console output from hwdom may mix with output from other domains.
> 
> Example:
> [    2.288816] Key type id_legacy registered
> [    2.291894] n(XEN) DOM1: [    1.016950] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
> fs4filelayout_init: NFSv4 File Layout Driver Registering...
> (XEN) DOM1: [    1.018846] audit: initializing netlink subsys (disabled)
> 
> This happens because for hwdom the console output is produced by domain and
> handled by Xen as stream of chars, which can be interrupted when hwdom is
> scheduled out and so, cause console output mix.
> The Xen consoleio code trying to mimic serial HW behavior for hwdom
> unconditionally by sending available data to serial HW on arrival.
> Xen consoleio code does not account for Xen console input focus, comparing
> to emulated serial hw, like vpl011, which does the same for domain with
> active Xen console input focus only.
> 
> Switching console input focus to Xen improves situation, but not enough.
> 
> This patch changes consoleio code to account for domain with active Xen
> console input focus - console output will be sent directly to serial HW
> only if domain has active Xen console input focus. For other domains -
> console output will be buffered and sync on per-line basis.
> 
> Example output:
> (d2) [    4.263417] Key type id_legacy registered
> (XEN) DOM1: [    4.658080] Advanced Linux Sound Architecture Driver Initialized.
> (d2) [    4.277824] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
> This causes random multi-domain tests failures due to inter-domain console
> mixing which breaks console parsing checks.

This remark reads as if "here's a patch, but it breaks things". Instead of
merely "This", did you maybe mean "The original behavior" or some such?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 07:48:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 07:48:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178505.1502283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRQYI-0005E2-RX; Fri, 05 Dec 2025 07:48:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178505.1502283; Fri, 05 Dec 2025 07:48:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRQYI-0005Dv-Ox; Fri, 05 Dec 2025 07:48:30 +0000
Received: by outflank-mailman (input) for mailman id 1178505;
 Fri, 05 Dec 2025 07:48:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=7OvG=6L=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vRQYH-0005Dp-P3
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 07:48:29 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c7f8742a-d1ae-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 08:48:26 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-47789cd2083so11346015e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 04 Dec 2025 23:48:25 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4793092ba4fsm71926195e9.4.2025.12.04.23.48.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 04 Dec 2025 23:48:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c7f8742a-d1ae-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764920905; x=1765525705; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7rdVt5JwVmldy3kt+MVUYmdY9scOHHe/WODn3QAmmHk=;
        b=VVDT/VcuTMxwfGWHFpj/7ZKztQKkbxwqRQFy0HFbFMnWMbVA+SnSbzYKeTzUUHD12u
         6NSC7H9nWSCCMecBwu1e1jvikmGdUoJVeuzBsHEQpRXcVbnKrwnjILNZW2utmg0KHqoS
         PYSUiNKWeJu9G6aEOwaLkewxzfWX5vx0A/ETYBb+8gdgftuHIHcGAWb5KtUMQifWwftl
         zCah29c30+mV2aoUcpVU0LNJ0b3iTQeZir5gQra/ARQsKUlRctRjcW4ZjrpBW1lVHEea
         NRI9pAFW0XKh6fddPot3ylUsxk6ed360cLBw0k6wEJYKVI6MdHkUBcPFkk0MsB+uy9Tk
         zI4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764920905; x=1765525705;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7rdVt5JwVmldy3kt+MVUYmdY9scOHHe/WODn3QAmmHk=;
        b=oNpI6QD3X7iOSNdaNX4KeIAdngHjuawLi8GA6VMBnXMx9IqjmdL13txcaDFe3tXB0l
         J4ne35Tkg+NrqpRbVxsOxUlkWKkphJ3KqEdLr4E3fHMngvjJv091K1F0DfoNlHVG229Q
         yoryugQupcBacbPiXCVn0BhHYiIr+6a6EMptVEidYAY6VuMzYFdsy/g6uB64tttQhBUn
         NigSaczCoON3D3/HHU7ifOO7i2KxHbCkNO31cHe3u5d0DJ5x5w1VPhk61HVGTOHM6Tpu
         g+tnJPN2b3FbT4KXjZpDWJSLVFbgeMngWKKdvVCloytnF66h03K5BQOOKcA/LlEU2Vok
         3rVQ==
X-Forwarded-Encrypted: i=1; AJvYcCV5lorHb200/2FBWjshHYuCiIqrBlnml7tuqt/mWJganhKxqBPWr0AK2362BZZFZEqzFJrf8vR0E/0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzpS+buFKLa23XHOY7mGsuHCqXZe/XOPsGrioac9bv9hWfxPCGn
	WGZakOKRkOTx2bNfMukwmGBHWhN49zwQmEm8nleq2k+Qv2+hVt7rmPcC+Ac1vc+eZw==
X-Gm-Gg: ASbGncvqTVtoU6Tw5twyKXogSVdiwMPLeGSAta1CUUWA5CS3oE9cD+DBWaVniHifnn5
	3Q06/Qjef6Oxm3fGqgiTHyy+lolvmN+SDOEAnzdZX6uWDtqjx8zliaqiZyDhy5L2NLeats7hX7f
	1SG+AFW9UtiW0OcD4lGeIFwwDWR9tYOsq00g/MgPgEk2ORbxtS56BDdoYaF3OvuBq1VgY0Yc4RM
	gAam73cbjFAZQ62rZ8GkbkDcgR5Pd6hmJuPTu/UX8uo9T/tCQlfcfN7ji8hJRa6jwmWLH45iElY
	rDw1GVvdhUm+JpeG+MKJusNMj67R60GDbJj/hKMm6HrU7IzRK0mUaZcxNaGo2cd4mXpPHfcQ3tz
	HqO4TMZpinH0A0p1Ev2RHzO8srDfZ08sPY72hhAI9bLW/Vh1VktIxJ79rzKiL9vkwdaIf2oFMyj
	2NIok1g1AbheLBq1W7fcFYicCb4/e8KeBIDMiW4MYdXYIAmow2fBgKPPQ8gOm1O5FZCrvr7aE8g
	9s=
X-Google-Smtp-Source: AGHT+IEFImYhT7yG5RIOln7xiZs3YEQSU9XttqB/4QMST7UScS3Y+PnoKTT+Hgy9o/uWdBYOwgitJg==
X-Received: by 2002:a05:600c:198d:b0:46e:4a13:e6c6 with SMTP id 5b1f17b1804b1-4792af1b339mr107300595e9.19.1764920905367;
        Thu, 04 Dec 2025 23:48:25 -0800 (PST)
Message-ID: <c21ddcb3-ba38-4dbb-9860-731eb43c38f3@suse.com>
Date: Fri, 5 Dec 2025 08:48:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/treewide: Use __ASSEMBLER__ instead of __ASSEMBLY__
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251203133258.1624223-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251203133258.1624223-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.12.2025 14:32, Andrew Cooper wrote:
> __ASSEMBLER__ is how GCC and Clang spell this, removing the need to set it up
> manually in AFLAGS.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

While I fear this might end up biting us significantly on certain backports,
still:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 07:58:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 07:58:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178517.1502294 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRQhV-0006yN-Mp; Fri, 05 Dec 2025 07:58:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178517.1502294; Fri, 05 Dec 2025 07:58:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRQhV-0006yG-Js; Fri, 05 Dec 2025 07:58:01 +0000
Received: by outflank-mailman (input) for mailman id 1178517;
 Fri, 05 Dec 2025 07:58:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d4nT=6L=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vRQhT-0006y4-Bo
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 07:58:00 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 191ef57d-d1b0-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 08:57:51 +0100 (CET)
Received: from AS9PR05CA0270.eurprd05.prod.outlook.com (2603:10a6:20b:493::34)
 by DU5PR08MB10633.eurprd08.prod.outlook.com (2603:10a6:10:51b::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.12; Fri, 5 Dec
 2025 07:57:44 +0000
Received: from AMS0EPF00000197.eurprd05.prod.outlook.com
 (2603:10a6:20b:493:cafe::5f) by AS9PR05CA0270.outlook.office365.com
 (2603:10a6:20b:493::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.10 via Frontend Transport; Fri,
 5 Dec 2025 07:57:26 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF00000197.mail.protection.outlook.com (10.167.16.219) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Fri, 5 Dec 2025 07:57:44 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AS8PR08MB6503.eurprd08.prod.outlook.com (2603:10a6:20b:33b::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Fri, 5 Dec
 2025 07:55:26 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d%4]) with mapi id 15.20.9388.011; Fri, 5 Dec 2025
 07:55:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 191ef57d-d1b0-11f0-980a-7dc792cee155
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=ZW1LsGG2bJHDwXB4OIUTrXrRyyJ1DrjcUPBdBoh2tYl3iJL2Oay67PJ7uoRdMFxZT/06COPSeyLeib5qJBCIAGuRLUES6fWWQmNpQAMAXO2gmtrhGt6/k8iAIneNWwbGKvZIFENeSP7TS2hx9PCBWUs2QSvUP7eKWF3nlLguPzajtCax3ITc4qyO4T1h/e7L+AinDIBACJUSLYwvP6aR/60890GDpbKXT4mzD8DKnCo1E4NgkyK4Km99JeqW4HQkhQbPn5GL6LXLeeIJyfYbOyvW6TZs55s2i9DGzMz5Uu5NRQzD/19j/jlS5sAuSI1bVfhh5InGxk5P0Dqsd2QkRg==
ARC-Message-Signature: i=2; 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=M9eGPqbvM6kjMr0aJApU7VKkp120D9qlf2381EReoqs=;
 b=w+wvs2XeqwCznIxRkpRAnJDg4PiV63yRvLpT40mg+Xx0zTAugEk+Nh4IogkRsstbYQgU2q/uxh+MhDBbVKLcdM2r63mWQtoXuN1zu8myVqpp6eAktT5GwxdIH3UHvBo1qp+C771xdblTsf+B5vGKIBV0VN1sMYpF553exvfje1jjmXN7/Pl6fz3RrC2K+hrXM6Nsg6bZgouFEahPuJnhuFFG43xenaLxsptQkJ9Z3Ps95w3gfLzDGEg+04v0ODTzHeppQqIKGUFCcx3rJ7gEPHy9ra7+IAeCmwzEAEeddY0jXNrN/QxgA49aAoqpWVDJFXOb7hLY6TurM6wn1HSamA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=M9eGPqbvM6kjMr0aJApU7VKkp120D9qlf2381EReoqs=;
 b=etqsSoZprx+OiOlV2IEzs8mEobz/jiR68RHzLvGaUgl8/Bt7WQN4ExEISMw1cqVVG9hXbnpJdNDbh+bQJgYzTnjmhQfqrPg7GfISOc1fQ0RxwkD6lC1WWmlUZ+1bfyNSvx6f3FKGiyhJ7wX1V3bK0POldAUJV14+hPr2uX1eQQw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PZIQoVP9uDk1Fmctv+oHqu69ghHdv/aZ+u2KAiHHXykJj4DgO+NykeCjHGEYQ+NmyIPlaeeDQ1dwmrh5vuHvaPmhVTaiYoZXPiTXTPxGHtb3wYXprV4gBz3myXoKlFkYMF84vXQVUY5p0yyCIFh2OzaYrlrGhNs3vB3YJ1uw1eySgHidruAYcexV0aJ2N+e7YZDq04mLZycBSZyq8Zlp3/pYJy5QyMH1xEsEKucbQDhWM27WHEeEls2N5rMbJSmeLIteqk7mnETej1h9zmSjpAAapOY8uQbg89sloI/X5/FOrb0b2t+6X3maMgiteuuxNTo0z9szXkX9lYQsLxlq7A==
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=M9eGPqbvM6kjMr0aJApU7VKkp120D9qlf2381EReoqs=;
 b=Xn2QTgVGWzTzcEbum0h2McIMFTRQmKdOiiO8ceQao74bgetNUtSGGG57M5kQu2SxxxIw1iWFE6XOCWOwCjDDWsnE4atUi9qLclSglMhzaVXnW+wmE/KpCo1PH7a32nbtC5e5r4GO+Zgn7mJYVKKi/w4WrM4fSu7GvUVmJ9DvqFEXmOQ6pttCNYEe4NXilQMSDD5EohaiauYrHwxllAmnAxnhHsHSznBHdyxVv03WUXQlTrTQRt6zWsLSSDKKxe9sMLsjRtdlDoEJNSULcKCfgV71/b+JjrhmClb18+L7JCZth2llPVTWvTJ7ur4bEvXhaOfSbk3N7yr2CxUWcQ139A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=M9eGPqbvM6kjMr0aJApU7VKkp120D9qlf2381EReoqs=;
 b=etqsSoZprx+OiOlV2IEzs8mEobz/jiR68RHzLvGaUgl8/Bt7WQN4ExEISMw1cqVVG9hXbnpJdNDbh+bQJgYzTnjmhQfqrPg7GfISOc1fQ0RxwkD6lC1WWmlUZ+1bfyNSvx6f3FKGiyhJ7wX1V3bK0POldAUJV14+hPr2uX1eQQw=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Timothy Pearson <tpearson@raptorengineering.com>
Subject: Re: [PATCH] xen/treewide: Use __ASSEMBLER__ instead of __ASSEMBLY__
Thread-Topic: [PATCH] xen/treewide: Use __ASSEMBLER__ instead of __ASSEMBLY__
Thread-Index: AQHcZFla4l/+j6Gic0quqlRXnKnvHLUSsEiA
Date: Fri, 5 Dec 2025 07:55:26 +0000
Message-ID: <E2465858-96A5-4964-B7B7-94D2532740DC@arm.com>
References: <20251203133258.1624223-1-andrew.cooper3@citrix.com>
In-Reply-To: <20251203133258.1624223-1-andrew.cooper3@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.200.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AS8PR08MB6503:EE_|AMS0EPF00000197:EE_|DU5PR08MB10633:EE_
X-MS-Office365-Filtering-Correlation-Id: 100d419c-ef77-4bbe-58c2-08de33d3f920
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|7416014|376014|366016|10070799003|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?ckwxUmF0REREK2dEakJWZnllenZKbmQ4Qm93d2tCNndyMHNyMlR0ZlJiVXp2?=
 =?utf-8?B?Wlc0aml2d0kyT24ySGRjeldBSEw5amJRdjYvYXJlc3ExZTZ0ejJmRWhxVVhk?=
 =?utf-8?B?RHJmUCtFS0lVc1ZPRy9DMlJpMmxIRk8xbDN0Y3hRajRwdUl6eC9sbFhYTzVE?=
 =?utf-8?B?TzlvWHhGSUNOcThxRys1a2NJbFIwRWdYWGNZRlAvZDZhSGxmWHNuR1VJSXl1?=
 =?utf-8?B?QzdYYllJaEkyK1FwWFd4MTlUWmZQTmRDeTNzeEhjTGRnOFA0M0FkV2N5WThM?=
 =?utf-8?B?OGhwL25SOHhNZUJqc1NaUnp5VmZXc3dPa0ozNHp0Z2U1R293aG9nSnZSWXox?=
 =?utf-8?B?aFI1TWxabXFTKzRZTkpOcjF1Y1VBM3kvbmgxQVVIY1BIYS8rTWQ1QU14OW9w?=
 =?utf-8?B?aERLU3JYcE5oakRmN29Zb0dRWU1qSGVHYUU4L1lLRVZORWRacExBVFAzZVlZ?=
 =?utf-8?B?Rmx0KzJqaEt6elhJZVVDYSszcEhQR2puRXpzNDFyWU9XNHdQRmpSOTVVYXh0?=
 =?utf-8?B?MGMvTjJYSEZjOUxHVWhkQVFCTjA4dU56QUxvaFg4NkM3QllsQ1pscXNGclcr?=
 =?utf-8?B?KzVJOHA4aER4UmRPZ3AySlBvNnBRR0JhS3IvMHNtVko1RENmc1JTRUZOZkM5?=
 =?utf-8?B?aUZPbjdzRXc0WXJqL091aHFSNmVXVU16R0VaZWx1RS9OVU83VWtkTFRxRFRJ?=
 =?utf-8?B?MjdpYjdzQnBNb0JNTHFaYURrb0hwTllyQkRNam5USHNPTVhCeTZ1QkU0MDJV?=
 =?utf-8?B?UXFzUE1yMXJVdGhIS3VBdTBuQy9kaUdJKzRjZjQwbFRFL3lqdHdKakkyNVRQ?=
 =?utf-8?B?UXN6SE9OQ3plejB5dm5GR0h6VlBlamk3WEhIQm1BdU5rV3I5bDJaWW9KRzB0?=
 =?utf-8?B?b3J3c2pvVzRseGtFOVRQbGFNOS8rNkJUTnV2U25SRUNKQTFLOGJMZ0l3YlVa?=
 =?utf-8?B?QUZIRXRnZUpUUXplUGVIZTEzdzBIcUJqcUdpWkJUYU9FaTFzTlpJUDYreUZU?=
 =?utf-8?B?Nk40b3VYa0lwMmN2ZGo5SWRtTWNYTVFKVnhSYmd2UG1wQlVEODRyOTN5M0xO?=
 =?utf-8?B?SHAyc0JhVW4zM1FPR2lleEJJbVRHWUVrdXV3NkRLazRpS1NUMFRjTlVyb3V6?=
 =?utf-8?B?ZllQMlZUNG01YVBtOVk0RXBnWUtzYUY0dEhWZFFjSE9EcEthK3h3VTA2MlJ3?=
 =?utf-8?B?czY1d3l6MFFSTWxZRG1PSVIrQ0RaUFpIc1FIL25GQzFLdFFyZ2hROHVRNVVk?=
 =?utf-8?B?ei9JYnBMOFE2a1pPMG56OFhxbHZJK2l2a251a253d05IVFVxeHV0cEo2MTZk?=
 =?utf-8?B?dDhkV25hNU9oKzBzMHhlaE9BNlNTODdDT1RUTUpDYTBVK2t5eW8yWTdWRHZG?=
 =?utf-8?B?R3N1bVNHamVrb1NtWUlzN0NGUU5tZGhaMHFCMVB0SDdLR3RhZzdaTG9TZFZH?=
 =?utf-8?B?Zy9jZmxKdjBHY25iWDBRbXhGZzBGMjlRbGZnRWNNOUZIdUo1bWpMNWZVY0xH?=
 =?utf-8?B?cEs4T083VFVNaDFMVHltb0loTXdhUjZGcXNyaWR3Q1grT1JrSW1ZR0FYR1BK?=
 =?utf-8?B?U0xyUzJzd2lxRmRFRnU2NEljUW9COXhZdlpvOStvZjRqK1dKaU0vWmdGNFVr?=
 =?utf-8?B?OWp0Rmx3NmRLSndVcFp4R205cE9ML1pKZXJqeXlDcXdsamw1WTJCOEJUVUtV?=
 =?utf-8?B?UkJaQlJocXJ0NG5XdnJNb1o3YWh4Y2hwdnNkb01rc2hUZkZKOW5rcjV0SW4x?=
 =?utf-8?B?ZHhQb1FHZWhvVGNkM3hwam1lNW5oNzVXZUZmT1BmSk9xVHdKNHNLUldlcGRT?=
 =?utf-8?B?RDFiSXBSWTNvY1pFb24xaGcwSnVrZE5KdHF4WDJjWTZteHdvbU0vRVlhYjdD?=
 =?utf-8?B?aTFoR1RjL3JWS3Iwamw0dkVuWDRTOTRrWVZncjg4UHRMenlyWXh6TDJZOGZN?=
 =?utf-8?B?K0NTa3BmNjQxZmx6SWRwaGwwNERjTUthNkU5YmR4ZUdNWWFYdkphOWFwamls?=
 =?utf-8?B?UGQ0RllXZXUydlErUEMxNUZSMGlJL0xObjkvTkNiYW9Qc0p5N3h3Q29mVzBw?=
 =?utf-8?Q?egjs0v?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(10070799003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <08A03AB0EE7F9646B580DE755702FAE3@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6503
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF00000197.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	943a1cd2-6b05-4f8c-d39a-08de33d3a6ef
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|7416014|14060799003|35042699022|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eUgybFk5RGFXN2hJVTlUTmcyeElyQlhablBSVEhpd0lWeEQ1VEFncUZVVUFv?=
 =?utf-8?B?YzNUWEFkSkdyKzFSVm92c1BwMnQyRHlLanNkT1dwVWw1VVl6allEcWtxTHZV?=
 =?utf-8?B?aDg3Wnl6U0ZENWRGdFNicGlVTDJPQ3o2bGpFQ242ZFNXMUpZUnk0cmxFazZC?=
 =?utf-8?B?bE5aR0gyNVdOblU1dGJ2R3Bsb2ZpeVhUZjVubUpwTGdIQWkrdFNFbktzM29p?=
 =?utf-8?B?MHpGSjkyNmVPcEZScTY4cG94a3IxTkdtUEQ3UUh1QzdISTVVa09RNk9VWUZE?=
 =?utf-8?B?UW4xSjNNTnc4Y2ZqckZOSEVGaG9GMVlsU2NIcTMzZFczbzJNN1YrbStoR0Iy?=
 =?utf-8?B?blR4QkxCN1UxdnpESGEvbXU5OXhoTmszRDBjSXcyUTB4eWNZaUtVa3RmN2VO?=
 =?utf-8?B?THE2cEFOMkY0eTRNWUlVRnRmQkVxalQ1K3RsRUltVXFTcHlyVHhjQzduMFBB?=
 =?utf-8?B?TWhvdm93OXlNSjFWY1M4Q2FWR29sQUF1NUpSK2RxWDRzZjF3Y3BLMXVKZWVl?=
 =?utf-8?B?QlIwZ2tMMDNQdDJycnJ3ZDdTcjhzQkdTM0pXVUhmbDlzNjF0SWYxbkY3QU1q?=
 =?utf-8?B?ak9NNWtEQ2dTNjFCSE5UeXdmU3MxTXIzcVcya1pITmtxaUJFYmZnNnpyenN2?=
 =?utf-8?B?c1BJWXI3elJoR2RvNmR3OFdETThha1ZYQ1BzZkN0eXc1TUxmMlVqOHJWTXBs?=
 =?utf-8?B?bHUyYjhoVUNPTkgyR1c2S3hWQ01nNFBWcWp2NGVUUnlOQ0Y4K3o3MitiQ1FU?=
 =?utf-8?B?UXkvaUhtUzdJSlgzSk1kTjBkb3JLQkNLVTlyR3RQUCtBUms2OEdOMEllZ0Jq?=
 =?utf-8?B?VGNTTzNNbWZLVVk4QXNhVHZMMExxbytrYngzaXdqbXF1WWlsTVdFSjBreTlQ?=
 =?utf-8?B?YWRpVkVDV0o1WVVXQjZjMHN2RGxLOWhhNTFrbGlaVDM0MTgzTWt0RXVWckJF?=
 =?utf-8?B?bm5Fc3lwc2JLUS9uTERXc0ljMHQxNGJWLzZQeExVdzlnbDlPR1RuVTJQT2NF?=
 =?utf-8?B?UUR1WW5wNGZjRVkzNHFrRUd6aXZPSTR2U2dxWkI2L3dVeXQ3RTAyYmdiV04z?=
 =?utf-8?B?UURmMEl0WGVZTWtaNDVwdXZTWFBSNjV6M1BFQitOQ0dyeUw1N2FhRlFYbyt3?=
 =?utf-8?B?ZFhuSllQc2MwMGdmMFhsbHAwRGdyWkVqa2s5bUQ0RHYzRUs3MkoyWnkwZUlI?=
 =?utf-8?B?ODFyTE95bWFpL2Q3NkkzU3QzMkxrL0JSekpTSzhLWTZ5RjdGbkVSV24wdE15?=
 =?utf-8?B?U1Nubm9ya0ZhRWVwV3pIck1DNHBBSi9jUXkzazlDQm9jOU5NZEdjTFk1R0xJ?=
 =?utf-8?B?ZUFjV09RdDdlcG1qOSs5cGhGaEg0ZEpFNGtUS0s4N01WQk9QZ1VDeG1hK3Ro?=
 =?utf-8?B?aldUSjBJMkwrcGZFVlNNMHBPMGFjMnd3VSt2WUpRYWlrTXd5RTBVblVmbDhx?=
 =?utf-8?B?aEJCNjM2Mzc1TVBzWE96QnlMRnlyN1YydjBubHYrTnhpTjBxckxremRXcHBE?=
 =?utf-8?B?M3hVZkl2dXpsODZNVExxZmRVZnMycFlZQzRyYjI0TmlCeEFlSVZGaXZvMCtV?=
 =?utf-8?B?dVpoQldVS21BQzFnc2RsbURzb0FJSjNwS1kyL0ZQamVZbkVSbmN3a0RTVFpG?=
 =?utf-8?B?QmNyczdjVll5NVpVY0UxMHhvWDg4b1gvRkdXZTZHNVl6bU9JMDJkMGNQQUNu?=
 =?utf-8?B?TjNiWE13UUtZQWRJTzN1aHhyMEk1NHg3UjlvR2t2UjcybWpZUENBV0M4eHdz?=
 =?utf-8?B?OG1NSE0yc2E4cnptTHhZdFExRzlBV201WG0rYTV2QXFZOTc3T2YzaC8ycXFV?=
 =?utf-8?B?emFaRS9GK0xGd0RqM25nTzV6dmh5WnlOWDZMOTkvaXdocVZObXUveS9WeGlE?=
 =?utf-8?B?VjdiaFcyVHJjMmVXWTF5ZVJ6ZElhd3pOdlo2ZFpueE41cEg0TXorSjVrUlZF?=
 =?utf-8?B?eGU4K3J4bWtYNUVJc0c3UXUvMkMza21qWlNsQmZ6N01YaFJiMm1SREEvdmZV?=
 =?utf-8?B?NXBaRFJvRTlWVkFiQlZXckZCK0ExWXAwaGNTem10YTI4ZnpDaUxvdXJxeU5q?=
 =?utf-8?B?dG4rUjgycDZ0aXFRMk9QUHIvdTBRRkpVN29SL0tjUk0xVFA5YmVZZzNFYlVU?=
 =?utf-8?Q?7Z9A=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(7416014)(14060799003)(35042699022)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 07:57:44.2918
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 100d419c-ef77-4bbe-58c2-08de33d3f920
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF00000197.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR08MB10633

SGkgQW5kcmV3LA0KDQo+IE9uIDMgRGVjIDIwMjUsIGF0IDE0OjMyLCBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPiB3cm90ZToNCj4gDQo+IF9fQVNTRU1CTEVSX18gaXMg
aG93IEdDQyBhbmQgQ2xhbmcgc3BlbGwgdGhpcywgcmVtb3ZpbmcgdGhlIG5lZWQgdG8gc2V0IGl0
IHVwDQo+IG1hbnVhbGx5IGluIEFGTEFHUy4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEFuZHJldyBD
b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+DQoNCkFja2VkLWJ5OiBCZXJ0cmFuZCBN
YXJxdWlzIDxiZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+DQoNCkNoZWVycw0KQmVydHJhbmQNCg0K
PiAtLS0NCj4gQ0M6IEFudGhvbnkgUEVSQVJEIDxhbnRob255LnBlcmFyZEB2YXRlcy50ZWNoPg0K
PiBDQzogTWljaGFsIE9yemVsIDxtaWNoYWwub3J6ZWxAYW1kLmNvbT4NCj4gQ0M6IEphbiBCZXVs
aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCj4gQ0M6IEp1bGllbiBHcmFsbCA8anVsaWVuQHhlbi5v
cmc+DQo+IENDOiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4NCj4gQ0M6
IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4NCj4gQ0M6IFZvbG9k
eW15ciBCYWJjaHVrIDxWb2xvZHlteXJfQmFiY2h1a0BlcGFtLmNvbT4NCj4gQ0M6IEJlcnRyYW5k
IE1hcnF1aXMgPGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT4NCj4gQ0M6IE9sZWtzaWkgS3Vyb2No
a28gPG9sZWtzaWkua3Vyb2Noa29AZ21haWwuY29tPg0KPiBDQzogVGltb3RoeSBQZWFyc29uIDx0
cGVhcnNvbkByYXB0b3JlbmdpbmVlcmluZy5jb20+DQo+IA0KPiBHZW5lcmF0ZWQgd2l0aCBzZWQu
ICBMaW51eCBoYXMgZG9uZSB0aGUgc2FtZSBjaGFuZ2UgdG9vLg0KPiANCj4gSSBkZWJhdGVkIHNw
bGl0dGluZyB0aGlzIHBhdGNoLCBidXQgaXQncyBzaW1wbGUgZW5vdWdoIElNTy4NCj4gLS0tDQo+
IHhlbi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyIC0tDQo+IHhl
bi9hcmNoL2FybS9hcm0zMi9saWIvYXNzZW1ibGVyLmggICAgICAgICB8ICAyICstDQo+IHhlbi9h
cmNoL2FybS9hcm02NC9saWIvYXNzZW1ibGVyLmggICAgICAgICB8ICAyICstDQo+IHhlbi9hcmNo
L2FybS9pbmNsdWRlL2FzbS9hbHRlcm5hdGl2ZS5oICAgICB8ICA0ICsrLS0NCj4geGVuL2FyY2gv
YXJtL2luY2x1ZGUvYXNtL2FybTMyL21wdS5oICAgICAgIHwgIDQgKystLQ0KPiB4ZW4vYXJjaC9h
cm0vaW5jbHVkZS9hc20vYXJtMzIvcGFnZS5oICAgICAgfCAgNCArKy0tDQo+IHhlbi9hcmNoL2Fy
bS9pbmNsdWRlL2FzbS9hcm0zMi9wcm9jZXNzb3IuaCB8ICAyICstDQo+IHhlbi9hcmNoL2FybS9p
bmNsdWRlL2FzbS9hcm0zMi9zeXNyZWdzLmggICB8ICA2ICsrKy0tLQ0KPiB4ZW4vYXJjaC9hcm0v
aW5jbHVkZS9hc20vYXJtNjQvZWZpYmluZC5oICAgfCAgMiArLQ0KPiB4ZW4vYXJjaC9hcm0vaW5j
bHVkZS9hc20vYXJtNjQvbXB1LmggICAgICAgfCAgNCArKy0tDQo+IHhlbi9hcmNoL2FybS9pbmNs
dWRlL2FzbS9hcm02NC9wYWdlLmggICAgICB8ICA0ICsrLS0NCj4geGVuL2FyY2gvYXJtL2luY2x1
ZGUvYXNtL2FybTY0L3Byb2Nlc3Nvci5oIHwgIDQgKystLQ0KPiB4ZW4vYXJjaC9hcm0vaW5jbHVk
ZS9hc20vYXJtNjQvc3lzcmVncy5oICAgfCAgNiArKystLS0NCj4geGVuL2FyY2gvYXJtL2luY2x1
ZGUvYXNtL2NvbmZpZy5oICAgICAgICAgIHwgIDQgKystLQ0KPiB4ZW4vYXJjaC9hcm0vaW5jbHVk
ZS9hc20vY3B1ZmVhdHVyZS5oICAgICAgfCAgNCArKy0tDQo+IHhlbi9hcmNoL2FybS9pbmNsdWRl
L2FzbS9jdXJyZW50LmggICAgICAgICB8ICAyICstDQo+IHhlbi9hcmNoL2FybS9pbmNsdWRlL2Fz
bS9maXhtYXAuaCAgICAgICAgICB8ICA0ICsrLS0NCj4geGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNt
L2dpYy5oICAgICAgICAgICAgIHwgIDQgKystLQ0KPiB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20v
aW5zbi5oICAgICAgICAgICAgfCAgNCArKy0tDQo+IHhlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9s
cGFlLmggICAgICAgICAgICB8ICA0ICsrLS0NCj4geGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21h
Y3Jvcy5oICAgICAgICAgIHwgIDIgKy0NCj4geGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21wdS5o
ICAgICAgICAgICAgIHwgIDQgKystLQ0KPiB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vcGFnZS5o
ICAgICAgICAgICAgfCAgNCArKy0tDQo+IHhlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wbDAxMS11
YXJ0LmggICAgICB8ICA0ICsrLS0NCj4geGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3Byb2Nlc3Nv
ci5oICAgICAgIHwgIDggKysrKy0tLS0NCj4geGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3JlZ3Mu
aCAgICAgICAgICAgIHwgIDIgKy0NCj4geGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3NtY2NjLmgg
ICAgICAgICAgIHwgIDQgKystLQ0KPiB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vc21wLmggICAg
ICAgICAgICAgfCAgMiArLQ0KPiB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vc3lzcmVncy5oICAg
ICAgICAgfCAgNCArKy0tDQo+IHhlbi9hcmNoL3BwYy9pbmNsdWRlL2FzbS9jdXJyZW50LmggICAg
ICAgICB8ICA0ICsrLS0NCj4geGVuL2FyY2gvcHBjL2luY2x1ZGUvYXNtL29wYWwtYXBpLmggICAg
ICAgIHwgIDQgKystLQ0KPiB4ZW4vYXJjaC9wcGMvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmggICAg
ICAgfCAgNCArKy0tDQo+IHhlbi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2FzbS5oICAgICAgICAg
ICB8ICA2ICsrKy0tLQ0KPiB4ZW4vYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9idWcuaCAgICAgICAg
ICAgfCAgNCArKy0tDQo+IHhlbi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2NvbmZpZy5oICAgICAg
ICB8ICA0ICsrLS0NCj4geGVuL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oICAg
IHwgIDQgKystLQ0KPiB4ZW4vYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9jc3IuaCAgICAgICAgICAg
fCAgNCArKy0tDQo+IHhlbi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2N1cnJlbnQuaCAgICAgICB8
ICA0ICsrLS0NCj4geGVuL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZml4bWFwLmggICAgICAgIHwg
IDQgKystLQ0KPiB4ZW4vYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wYWdlLmggICAgICAgICAgfCAg
NCArKy0tDQo+IHhlbi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oICAgICB8ICA0
ICsrLS0NCj4geGVuL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcmVncy5oICAgICAgICAgIHwgIDQg
KystLQ0KPiB4ZW4vYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9zeXN0ZW0uaCAgICAgICAgfCAgNCAr
Ky0tDQo+IHhlbi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3RyYXBzLmggICAgICAgICB8ICA0ICsr
LS0NCj4geGVuL2FyY2gveDg2L2Jvb3QvdmlkZW8uaCAgICAgICAgICAgICAgICAgIHwgIDQgKyst
LQ0KPiB4ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vYWx0ZXJuYXRpdmUtYXNtLmggfCAgNCArKy0t
DQo+IHhlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hbHRlcm5hdGl2ZS5oICAgICB8ICA0ICsrLS0N
Cj4geGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FzbV9kZWZucy5oICAgICAgIHwgMTIgKysrKysr
LS0tLS0tDQo+IHhlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9idWcuaCAgICAgICAgICAgICB8ICA2
ICsrKy0tLQ0KPiB4ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY2FjaGUuaCAgICAgICAgICAgfCAg
MiArLQ0KPiB4ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY29uZmlnLmggICAgICAgICAgfCAgNiAr
KystLS0NCj4geGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaCAgICAgIHwgIDYg
KysrLS0tDQo+IHhlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlc2V0LmggICB8ICA2
ICsrKy0tLQ0KPiB4ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vZGVzYy5oICAgICAgICAgICAgfCAg
OCArKysrLS0tLQ0KPiB4ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vZWRkLmggICAgICAgICAgICAg
fCAgNCArKy0tDQo+IHhlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCAgICAgICAgICB8
ICA0ICsrLS0NCj4geGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2xkdC5oICAgICAgICAgICAgIHwg
IDQgKystLQ0KPiB4ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vbWFjaGluZV9rZXhlYy5oICAgfCAg
MiArLQ0KPiB4ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vbm9wcy5oICAgICAgICAgICAgfCAgMiAr
LQ0KPiB4ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFnZS5oICAgICAgICAgICAgfCAyMCArKysr
KysrKysrLS0tLS0tLS0tLQ0KPiB4ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgg
ICAgICAgfCAgNiArKystLS0NCj4geGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NtcC5oICAgICAg
ICAgICAgIHwgIDYgKysrLS0tDQo+IHhlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGVjX2N0cmwu
aCAgICAgICB8ICA0ICsrLS0NCj4geGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NwZWNfY3RybF9h
c20uaCAgIHwgIDQgKystLQ0KPiB4ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vdHJhbXBvbGluZS5o
ICAgICAgfCAgNCArKy0tDQo+IHhlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfNjQvcGFnZS5o
ICAgICB8ICA2ICsrKy0tLQ0KPiB4ZW4vY29tbW9uL2VmaS9ib290LmMgICAgICAgICAgICAgICAg
ICAgICAgfCAgNiArKystLS0NCj4geGVuL2luY2x1ZGUvZWZpL3BlLmggICAgICAgICAgICAgICAg
ICAgICAgIHwgIDQgKystLQ0KPiB4ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1hcm0uaCAgICAgICAg
ICAgICAgfCAgNCArKy0tDQo+IHhlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXBwYy5oICAgICAgICAg
ICAgICB8ICA0ICsrLS0NCj4geGVuL2luY2x1ZGUvcHVibGljL2FyY2gtcmlzY3YuaCAgICAgICAg
ICAgIHwgIDIgKy0NCj4geGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L3hlbi1tY2EuaCAgICAg
IHwgIDQgKystLQ0KPiB4ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYveGVuLXg4Nl8zMi5oICAg
fCAgNCArKy0tDQo+IHhlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni94ZW4teDg2XzY0LmggICB8
ICA0ICsrLS0NCj4geGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L3hlbi5oICAgICAgICAgIHwg
IDggKysrKy0tLS0NCj4geGVuL2luY2x1ZGUvcHVibGljL2Vycm5vLmggICAgICAgICAgICAgICAg
IHwgIDYgKysrLS0tDQo+IHhlbi9pbmNsdWRlL3B1YmxpYy90bWVtLmggICAgICAgICAgICAgICAg
ICB8ICAyICstDQo+IHhlbi9pbmNsdWRlL3B1YmxpYy94ZW4uaCAgICAgICAgICAgICAgICAgICB8
IDEwICsrKysrLS0tLS0NCj4geGVuL2luY2x1ZGUveGVuL2FjcGkuaCAgICAgICAgICAgICAgICAg
ICAgIHwgIDQgKystLQ0KPiB4ZW4vaW5jbHVkZS94ZW4vYml0bWFwLmggICAgICAgICAgICAgICAg
ICAgfCAgNCArKy0tDQo+IHhlbi9pbmNsdWRlL3hlbi9idWcuaCAgICAgICAgICAgICAgICAgICAg
ICB8ICA0ICsrLS0NCj4geGVuL2luY2x1ZGUveGVuL2NvbmZpZy5oICAgICAgICAgICAgICAgICAg
IHwgIDIgKy0NCj4geGVuL2luY2x1ZGUveGVuL2NvbnN0LmggICAgICAgICAgICAgICAgICAgIHwg
IDIgKy0NCj4geGVuL2luY2x1ZGUveGVuL2Vyci5oICAgICAgICAgICAgICAgICAgICAgIHwgIDQg
KystLQ0KPiB4ZW4vaW5jbHVkZS94ZW4vZXJybm8uaCAgICAgICAgICAgICAgICAgICAgfCAgNiAr
KystLS0NCj4geGVuL2luY2x1ZGUveGVuL2luaXQuaCAgICAgICAgICAgICAgICAgICAgIHwgIDQg
KystLQ0KPiB4ZW4vaW5jbHVkZS94ZW4va2ltYWdlLmggICAgICAgICAgICAgICAgICAgfCAgNCAr
Ky0tDQo+IHhlbi9pbmNsdWRlL3hlbi9saWIuaCAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsr
LS0NCj4geGVuL2luY2x1ZGUveGVuL2xpYmZkdC9mZHQuaCAgICAgICAgICAgICAgIHwgIDIgKy0N
Cj4geGVuL2luY2x1ZGUveGVuL2xpbmthZ2UuaCAgICAgICAgICAgICAgICAgIHwgIDQgKystLQ0K
PiB4ZW4vaW5jbHVkZS94ZW4vbWFjcm9zLmggICAgICAgICAgICAgICAgICAgfCAgNCArKy0tDQo+
IHhlbi9pbmNsdWRlL3hlbi9tdWx0aWJvb3QuaCAgICAgICAgICAgICAgICB8ICA0ICsrLS0NCj4g
eGVuL2luY2x1ZGUveGVuL211bHRpYm9vdDIuaCAgICAgICAgICAgICAgIHwgIDQgKystLQ0KPiB4
ZW4vaW5jbHVkZS94ZW4vcGVyY3B1LmggICAgICAgICAgICAgICAgICAgfCAgNCArKy0tDQo+IHhl
bi9pbmNsdWRlL3hlbi9wbWFwLmggICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0NCj4geGVu
L2luY2x1ZGUveGVuL3NvZnRpcnEuaCAgICAgICAgICAgICAgICAgIHwgIDQgKystLQ0KPiA5NiBm
aWxlcyBjaGFuZ2VkLCAyMDggaW5zZXJ0aW9ucygrKSwgMjEwIGRlbGV0aW9ucygtKQ0KPiANCj4g
ZGlmZiAtLWdpdCBhL3hlbi9NYWtlZmlsZSBiL3hlbi9NYWtlZmlsZQ0KPiBpbmRleCBmYzkyNDQ0
MjBlN2QuLmU2Y2YyODc0MjUxYyAxMDA2NDQNCj4gLS0tIGEveGVuL01ha2VmaWxlDQo+ICsrKyBi
L3hlbi9NYWtlZmlsZQ0KPiBAQCAtNDEyLDggKzQxMiw2IEBAIGlmbmVxICgkKENPTkZJR19DQ19J
U19DTEFORykseSkNCj4gQ0ZMQUdTICs9IC1XYSwtLXN0cmlwLWxvY2FsLWFic29sdXRlDQo+IGVu
ZGlmDQo+IA0KPiAtQUZMQUdTICs9IC1EX19BU1NFTUJMWV9fDQo+IC0NCj4gJChjYWxsIGNjLW9w
dGlvbi1hZGQsQUZMQUdTLENDLC1XYSQkKGNvbW1hKS0tbm9leGVjc3RhY2spDQo+IA0KPiBMREZM
QUdTLSQoY2FsbCBsZC1vcHRpb24sLS13YXJuLXJ3eC1zZWdtZW50cykgKz0gLS1uby13YXJuLXJ3
eC1zZWdtZW50cw0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2FybTMyL2xpYi9hc3NlbWJs
ZXIuaCBiL3hlbi9hcmNoL2FybS9hcm0zMi9saWIvYXNzZW1ibGVyLmgNCj4gaW5kZXggNmRlMjYz
OGEzNmQ1Li43NWQ5N2FiMGNjNWYgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL2FybS9hcm0zMi9s
aWIvYXNzZW1ibGVyLmgNCj4gKysrIGIveGVuL2FyY2gvYXJtL2FybTMyL2xpYi9hc3NlbWJsZXIu
aA0KPiBAQCAtMTcsNyArMTcsNyBAQA0KPiAjaWZuZGVmIF9fQVNNX0FTU0VNQkxFUl9IX18NCj4g
I2RlZmluZSBfX0FTTV9BU1NFTUJMRVJfSF9fDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18N
Cj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiAjZXJyb3IgIk9ubHkgaW5jbHVkZSB0aGlzIGZy
b20gYXNzZW1ibHkgY29kZSINCj4gI2VuZGlmDQo+IA0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gv
YXJtL2FybTY0L2xpYi9hc3NlbWJsZXIuaCBiL3hlbi9hcmNoL2FybS9hcm02NC9saWIvYXNzZW1i
bGVyLmgNCj4gaW5kZXggM2Y5YzBkY2Y1ZDMyLi4wZmFjN2QxYzZlMzAgMTAwNjQ0DQo+IC0tLSBh
L3hlbi9hcmNoL2FybS9hcm02NC9saWIvYXNzZW1ibGVyLmgNCj4gKysrIGIveGVuL2FyY2gvYXJt
L2FybTY0L2xpYi9hc3NlbWJsZXIuaA0KPiBAQCAtMSw3ICsxLDcgQEANCj4gI2lmbmRlZiBfX0FT
TV9BU1NFTUJMRVJfSF9fDQo+ICNkZWZpbmUgX19BU01fQVNTRU1CTEVSX0hfXw0KPiANCj4gLSNp
Zm5kZWYgX19BU1NFTUJMWV9fDQo+ICsjaWZuZGVmIF9fQVNTRU1CTEVSX18NCj4gI2Vycm9yICJP
bmx5IGluY2x1ZGUgdGhpcyBmcm9tIGFzc2VtYmx5IGNvZGUiDQo+ICNlbmRpZg0KPiANCj4gZGlm
ZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hbHRlcm5hdGl2ZS5oIGIveGVuL2Fy
Y2gvYXJtL2luY2x1ZGUvYXNtL2FsdGVybmF0aXZlLmgNCj4gaW5kZXggMTU2M2YwM2EwZjVhLi5j
NzUxZTExZmM1NmIgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hbHRl
cm5hdGl2ZS5oDQo+ICsrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hbHRlcm5hdGl2ZS5o
DQo+IEBAIC02LDcgKzYsNyBAQA0KPiANCj4gI2RlZmluZSBBUk1fQ0JfUEFUQ0ggQVJNX05DQVBT
DQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0K
PiANCj4gI2luY2x1ZGUgPHhlbi90eXBlcy5oPg0KPiAjaW5jbHVkZSA8eGVuL3N0cmluZ2lmeS5o
Pg0KPiBAQCAtMjA2LDcgKzIwNiw3IEBAIGFsdGVybmF0aXZlX2VuZGlmDQo+ICNkZWZpbmUgX0FM
VEVSTkFUSVZFX0NGRyhpbnNuMSwgaW5zbjIsIGNhcCwgY2ZnLCAuLi4pIFwNCj4gYWx0ZXJuYXRp
dmVfaW5zbiBpbnNuMSwgaW5zbjIsIGNhcCwgSVNfRU5BQkxFRChjZmcpDQo+IA0KPiAtI2VuZGlm
ICAvKiAgX19BU1NFTUJMWV9fICAqLw0KPiArI2VuZGlmICAvKiAgX19BU1NFTUJMRVJfXyAgKi8N
Cj4gDQo+IC8qDQo+ICAqIFVzYWdlOiBhc21faW5saW5lIChBTFRFUk5BVElWRShvbGRpbnN0ciwg
bmV3aW5zdHIsIGZlYXR1cmUpKTsNCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRl
L2FzbS9hcm0zMi9tcHUuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hcm0zMi9tcHUuaA0K
PiBpbmRleCAxMzcwMjJkOTIyNjQuLjJjZjBmOGNiYWNhZSAxMDA2NDQNCj4gLS0tIGEveGVuL2Fy
Y2gvYXJtL2luY2x1ZGUvYXNtL2FybTMyL21wdS5oDQo+ICsrKyBiL3hlbi9hcmNoL2FybS9pbmNs
dWRlL2FzbS9hcm0zMi9tcHUuaA0KPiBAQCAtMyw3ICszLDcgQEANCj4gI2lmbmRlZiBBUk1fQVJN
MzJfTVBVX0gNCj4gI2RlZmluZSBBUk1fQVJNMzJfTVBVX0gNCj4gDQo+IC0jaWZuZGVmIF9fQVNT
RU1CTFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxFUl9fDQo+IA0KPiAvKg0KPiAgKiBVbmxpa2Ug
YXJtNjQsIHRoZXJlIGFyZSBubyByZXNlcnZlZCAwIGJpdHMgYmV5b25kIGJhc2UgYW5kIGxpbWl0
IGJpdGZpZWxkIGluDQo+IEBAIC00Myw3ICs0Myw3IEBAIHR5cGVkZWYgc3RydWN0IHsNCj4gICAg
IHVpbnQ4X3QgcGFkWzddOyAgICAgLyogUGFkIHN0cnVjdHVyZSB0byAxNiBCeXRlcyAqLw0KPiB9
IHByX3Q7DQo+IA0KPiAtI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLw0KPiArI2VuZGlmIC8qIF9f
QVNTRU1CTEVSX18gKi8NCj4gDQo+ICNlbmRpZiAvKiBBUk1fQVJNMzJfTVBVX0ggKi8NCj4gDQo+
IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtMzIvcGFnZS5oIGIveGVu
L2FyY2gvYXJtL2luY2x1ZGUvYXNtL2FybTMyL3BhZ2UuaA0KPiBpbmRleCA2ZDFmZjA2MzZjZTMu
LmQzZTg2Y2I2MWU3YyAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2Fy
bTMyL3BhZ2UuaA0KPiArKysgYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtMzIvcGFnZS5o
DQo+IEBAIC0xLDcgKzEsNyBAQA0KPiAjaWZuZGVmIF9fQVJNX0FSTTMyX1BBR0VfSF9fDQo+ICNk
ZWZpbmUgX19BUk1fQVJNMzJfUEFHRV9IX18NCj4gDQo+IC0jaWZuZGVmIF9fQVNTRU1CTFlfXw0K
PiArI2lmbmRlZiBfX0FTU0VNQkxFUl9fDQo+IA0KPiAvKiBJbmxpbmUgQVNNIHRvIGludmFsaWRh
dGUgZGNhY2hlIG9uIHJlZ2lzdGVyIFIgKG1heSBiZSBhbiBpbmxpbmUgYXNtIG9wZXJhbmQpICov
DQo+ICNkZWZpbmUgX19pbnZhbGlkYXRlX2RjYWNoZV9vbmUoUikgU1RPUkVfQ1AzMihSLCBEQ0lN
VkFDKQ0KPiBAQCAtODcsNyArODcsNyBAQCBzdGF0aWMgaW5saW5lIHVpbnQ2NF90IGd2YV90b19p
cGFfcGFyKHZhZGRyX3QgdmEsIHVuc2lnbmVkIGludCBmbGFncykNCj4gDQo+ICNkZWZpbmUgY2xl
YXJfcGFnZShwYWdlKSBtZW1zZXQoKHZvaWQgKikocGFnZSksIDAsIFBBR0VfU0laRSkNCj4gDQo+
IC0jZW5kaWYgLyogX19BU1NFTUJMWV9fICovDQo+ICsjZW5kaWYgLyogX19BU1NFTUJMRVJfXyAq
Lw0KPiANCj4gI2VuZGlmIC8qIF9fQVJNX0FSTTMyX1BBR0VfSF9fICovDQo+IA0KPiBkaWZmIC0t
Z2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2FybTMyL3Byb2Nlc3Nvci5oIGIveGVuL2Fy
Y2gvYXJtL2luY2x1ZGUvYXNtL2FybTMyL3Byb2Nlc3Nvci5oDQo+IGluZGV4IDRlNjc5ZjMyNzNh
Yi4uMjU0YmM0ODY3YzY0IDEwMDY0NA0KPiAtLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20v
YXJtMzIvcHJvY2Vzc29yLmgNCj4gKysrIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2FybTMy
L3Byb2Nlc3Nvci5oDQo+IEBAIC0zLDcgKzMsNyBAQA0KPiANCj4gI2RlZmluZSBBQ1RMUl9DQVhY
X1NNUCAgICAgICgxPDw2KQ0KPiANCj4gLSNpZm5kZWYgX19BU1NFTUJMWV9fDQo+ICsjaWZuZGVm
IF9fQVNTRU1CTEVSX18NCj4gLyogT24gc3RhY2sgVkNQVSBzdGF0ZSAqLw0KPiBzdHJ1Y3QgY3B1
X3VzZXJfcmVncw0KPiB7DQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20v
YXJtMzIvc3lzcmVncy5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2FybTMyL3N5c3JlZ3Mu
aA0KPiBpbmRleCBlZjFhODcwZmQ2MWUuLjMzYWMwYzRmZGI5YyAxMDA2NDQNCj4gLS0tIGEveGVu
L2FyY2gvYXJtL2luY2x1ZGUvYXNtL2FybTMyL3N5c3JlZ3MuaA0KPiArKysgYi94ZW4vYXJjaC9h
cm0vaW5jbHVkZS9hc20vYXJtMzIvc3lzcmVncy5oDQo+IEBAIC0yNSwxMSArMjUsMTEgQEANCj4g
I2RlZmluZSBSRUdJT05fREFUQV9QUkJBUiAgICAgICAweDE5ICAgIC8qIFNIPTExIEFQPTAwIFhO
PTEgKi8NCj4gI2RlZmluZSBSRUdJT05fREVWSUNFX1BSQkFSICAgICAweDExICAgIC8qIFNIPTEw
IEFQPTAwIFhOPTEgKi8NCj4gDQo+IC0jaWZkZWYgX19BU1NFTUJMWV9fDQo+ICsjaWZkZWYgX19B
U1NFTUJMRVJfXw0KPiANCj4gI2RlZmluZSBXUklURV9TWVNSRUdfQVNNKHYsIG5hbWUpIG1jciBD
UDMyKHYsIG5hbWUpDQo+IA0KPiAtI2Vsc2UgLyogX19BU1NFTUJMWV9fICovDQo+ICsjZWxzZSAv
KiBfX0FTU0VNQkxFUl9fICovDQo+IA0KPiAvKiBDIHdyYXBwZXJzICovDQo+ICNkZWZpbmUgUkVB
RF9DUDMyKG5hbWUuLi4pICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+
IEBAIC05Myw3ICs5Myw3IEBADQo+IC8qIE1WRlIyIGlzIG5vdCBkZWZpbmVkIG9uIEFSTXY3ICov
DQo+ICNkZWZpbmUgTVZGUjJfTUFZQkVfVU5ERUZJTkVEDQo+IA0KPiAtI2VuZGlmIC8qICFfX0FT
U0VNQkxZX18gKi8NCj4gKyNlbmRpZiAvKiAhX19BU1NFTUJMRVJfXyAqLw0KPiANCj4gI2VuZGlm
IC8qIF9fQVNNX0FSTV9BUk0zMl9TWVNSRUdTX0ggKi8NCj4gLyoNCj4gZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hcm02NC9lZmliaW5kLmggYi94ZW4vYXJjaC9hcm0vaW5j
bHVkZS9hc20vYXJtNjQvZWZpYmluZC5oDQo+IGluZGV4IGExMzIzZDQ1MmUyZS4uN2FiMDBlNGY1
NWE0IDEwMDY0NA0KPiAtLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtNjQvZWZpYmlu
ZC5oDQo+ICsrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hcm02NC9lZmliaW5kLmgNCj4g
QEAgLTMxLDcgKzMxLDcgQEAgUmV2aXNpb24gSGlzdG9yeQ0KPiANCj4gI2RlZmluZSBFRklfU1RV
Ql9FUlJPUiAgICAgIE1BWF9BRERSRVNTDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4g
KyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiAvLw0KPiAvLyBCYXNpYyBpbnQgdHlwZXMgb2YgdmFy
aW91cyB3aWR0aHMNCj4gLy8NCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2Fz
bS9hcm02NC9tcHUuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hcm02NC9tcHUuaA0KPiBp
bmRleCAxN2Y2MmNjYWY2Y2EuLjRmNjk0MTkwYThhMyAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gv
YXJtL2luY2x1ZGUvYXNtL2FybTY0L21wdS5oDQo+ICsrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRl
L2FzbS9hcm02NC9tcHUuaA0KPiBAQCAtMyw3ICszLDcgQEANCj4gI2lmbmRlZiBBUk1fQVJNNjRf
TVBVX0gNCj4gI2RlZmluZSBBUk1fQVJNNjRfTVBVX0gNCj4gDQo+IC0jaWZuZGVmIF9fQVNTRU1C
TFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxFUl9fDQo+IA0KPiAjZGVmaW5lIE1QVV9SRUdJT05f
UkVTMCAgICAgICAgKDB4RkZGRlVMTCA8PCA0OCkNCj4gDQo+IEBAIC00Miw3ICs0Miw3IEBAIHR5
cGVkZWYgc3RydWN0IHsNCj4gICAgIHVpbnQ4X3QgcGFkWzE1XTsgICAgLyogUGFkIHN0cnVjdHVy
ZSB0byAzMiBCeXRlcyAqLw0KPiB9IHByX3Q7DQo+IA0KPiAtI2VuZGlmIC8qIF9fQVNTRU1CTFlf
XyAqLw0KPiArI2VuZGlmIC8qIF9fQVNTRU1CTEVSX18gKi8NCj4gDQo+ICNlbmRpZiAvKiBBUk1f
QVJNNjRfTVBVX0ggKi8NCj4gDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9h
c20vYXJtNjQvcGFnZS5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2FybTY0L3BhZ2UuaA0K
PiBpbmRleCBlOTQ0OTg1ZWUwOWQuLmYzYmEzMDczMGI0YSAxMDA2NDQNCj4gLS0tIGEveGVuL2Fy
Y2gvYXJtL2luY2x1ZGUvYXNtL2FybTY0L3BhZ2UuaA0KPiArKysgYi94ZW4vYXJjaC9hcm0vaW5j
bHVkZS9hc20vYXJtNjQvcGFnZS5oDQo+IEBAIC0xLDcgKzEsNyBAQA0KPiAjaWZuZGVmIF9fQVJN
X0FSTTY0X1BBR0VfSF9fDQo+ICNkZWZpbmUgX19BUk1fQVJNNjRfUEFHRV9IX18NCj4gDQo+IC0j
aWZuZGVmIF9fQVNTRU1CTFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxFUl9fDQo+IA0KPiAjaW5j
bHVkZSA8YXNtL2FsdGVybmF0aXZlLmg+DQo+IA0KPiBAQCAtNzcsNyArNzcsNyBAQCBzdGF0aWMg
aW5saW5lIHVpbnQ2NF90IGd2YV90b19pcGFfcGFyKHZhZGRyX3QgdmEsIHVuc2lnbmVkIGludCBm
bGFncykNCj4gDQo+IGV4dGVybiB2b2lkIGNsZWFyX3BhZ2Uodm9pZCAqdG8pOw0KPiANCj4gLSNl
bmRpZiAvKiBfX0FTU0VNQkxZX18gKi8NCj4gKyNlbmRpZiAvKiBfX0FTU0VNQkxFUl9fICovDQo+
IA0KPiAjZW5kaWYgLyogX19BUk1fQVJNNjRfUEFHRV9IX18gKi8NCj4gDQo+IGRpZmYgLS1naXQg
YS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtNjQvcHJvY2Vzc29yLmggYi94ZW4vYXJjaC9h
cm0vaW5jbHVkZS9hc20vYXJtNjQvcHJvY2Vzc29yLmgNCj4gaW5kZXggYzc0OWY4MGFkOTFiLi4w
NTEzMDE1YmJiODMgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hcm02
NC9wcm9jZXNzb3IuaA0KPiArKysgYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtNjQvcHJv
Y2Vzc29yLmgNCj4gQEAgLTEsNyArMSw3IEBADQo+ICNpZm5kZWYgX19BU01fQVJNX0FSTTY0X1BS
T0NFU1NPUl9IDQo+ICNkZWZpbmUgX19BU01fQVJNX0FSTTY0X1BST0NFU1NPUl9IDQo+IA0KPiAt
I2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiANCj4gLyog
QW5vbnltb3VzIHVuaW9uIGluY2x1ZGVzIGJvdGggMzItIGFuZCA2NC1iaXQgbmFtZXMgKGUuZy4s
IHIwL3gwKS4gKi8NCj4gDQo+IEBAIC04Niw3ICs4Niw3IEBAIHN0cnVjdCBjcHVfdXNlcl9yZWdz
DQo+IA0KPiAjdW5kZWYgX19ERUNMX1JFRw0KPiANCj4gLSNlbmRpZiAvKiBfX0FTU0VNQkxZX18g
Ki8NCj4gKyNlbmRpZiAvKiBfX0FTU0VNQkxFUl9fICovDQo+IA0KPiAjZW5kaWYgLyogX19BU01f
QVJNX0FSTTY0X1BST0NFU1NPUl9IICovDQo+IC8qDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9h
cm0vaW5jbHVkZS9hc20vYXJtNjQvc3lzcmVncy5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNt
L2FybTY0L3N5c3JlZ3MuaA0KPiBpbmRleCA3NDQwZDQ5NWU0ZmIuLjdkZmQyMDQxNGQ3ZCAxMDA2
NDQNCj4gLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2FybTY0L3N5c3JlZ3MuaA0KPiAr
KysgYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtNjQvc3lzcmVncy5oDQo+IEBAIC00Njcs
MTEgKzQ2NywxMSBAQA0KPiAjZGVmaW5lIFJFR0lPTl9EQVRBX1BSQkFSICAgICAgIDB4MzIgICAg
LyogU0g9MTEgQVA9MDAgWE49MTAgKi8NCj4gI2RlZmluZSBSRUdJT05fREVWSUNFX1BSQkFSICAg
ICAweDIyICAgIC8qIFNIPTEwIEFQPTAwIFhOPTEwICovDQo+IA0KPiAtI2lmZGVmIF9fQVNTRU1C
TFlfXw0KPiArI2lmZGVmIF9fQVNTRU1CTEVSX18NCj4gDQo+ICNkZWZpbmUgV1JJVEVfU1lTUkVH
X0FTTSh2LCBuYW1lKSAibXNyICIgX19zdHJpbmdpZnkobmFtZSwpICN2DQo+IA0KPiAtI2Vsc2Ug
LyogX19BU1NFTUJMWV9fICovDQo+ICsjZWxzZSAvKiBfX0FTU0VNQkxFUl9fICovDQo+IA0KPiAv
KiBBY2Nlc3MgdG8gc3lzdGVtIHJlZ2lzdGVycyAqLw0KPiANCj4gQEAgLTQ5Miw3ICs0OTIsNyBA
QA0KPiAjZGVmaW5lIFdSSVRFX1NZU1JFR19MUih2LCBpbmRleCkgIFdSSVRFX1NZU1JFRyh2LCBJ
Q0hfTFJfUkVHKGluZGV4KSkNCj4gI2RlZmluZSBSRUFEX1NZU1JFR19MUihpbmRleCkgICAgICBS
RUFEX1NZU1JFRyhJQ0hfTFJfUkVHKGluZGV4KSkNCj4gDQo+IC0jZW5kaWYgLyogIV9fQVNTRU1C
TFlfXyAqLw0KPiArI2VuZGlmIC8qICFfX0FTU0VNQkxFUl9fICovDQo+IA0KPiAjZW5kaWYgLyog
X0FTTV9BUk1fQVJNNjRfU1lTUkVHU19IICovDQo+IA0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gv
YXJtL2luY2x1ZGUvYXNtL2NvbmZpZy5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2NvbmZp
Zy5oDQo+IGluZGV4IGYxODgyNWJjMmQ1MC4uYTA3N2VjNDliNzdlIDEwMDY0NA0KPiAtLS0gYS94
ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vY29uZmlnLmgNCj4gKysrIGIveGVuL2FyY2gvYXJtL2lu
Y2x1ZGUvYXNtL2NvbmZpZy5oDQo+IEBAIC00NCw3ICs0NCw3IEBADQo+ICNkZWZpbmUgQ09ORklH
X0FFQUJJDQo+IA0KPiAvKiBMaW5rYWdlIGZvciBBUk0gKi8NCj4gLSNpZmRlZiBfX0FTU0VNQkxZ
X18NCj4gKyNpZmRlZiBfX0FTU0VNQkxFUl9fDQo+ICNkZWZpbmUgR0xPQkFMKG5hbWUpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICAuZ2xvYmwgbmFtZTsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KPiAgIG5hbWU6DQo+IEBAIC02OSw3ICs2OSw3IEBADQo+ICNk
ZWZpbmUgd2F0Y2hkb2dfZGlzYWJsZSgpICgodm9pZCkwKQ0KPiAjZGVmaW5lIHdhdGNoZG9nX2Vu
YWJsZSgpICAoKHZvaWQpMCkNCj4gDQo+IC0jaWYgZGVmaW5lZChfX0FTU0VNQkxZX18pICYmICFk
ZWZpbmVkKExJTktFUl9TQ1JJUFQpDQo+ICsjaWYgZGVmaW5lZChfX0FTU0VNQkxFUl9fKSAmJiAh
ZGVmaW5lZChMSU5LRVJfU0NSSVBUKQ0KPiAjaW5jbHVkZSA8YXNtL2FzbV9kZWZucy5oPg0KPiAj
aW5jbHVkZSA8YXNtL21hY3Jvcy5oPg0KPiAjZW5kaWYNCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L2FybS9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlLmggYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20v
Y3B1ZmVhdHVyZS5oDQo+IGluZGV4IGI2ZGYxODgwMTE2Ni4uMTMzNTNjOGUxYWQxIDEwMDY0NA0K
PiAtLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oDQo+ICsrKyBiL3hl
bi9hcmNoL2FybS9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlLmgNCj4gQEAgLTc5LDcgKzc5LDcgQEAN
Cj4gDQo+ICNkZWZpbmUgQVJNX05DQVBTICAgICAgICAgICAxOA0KPiANCj4gLSNpZm5kZWYgX19B
U1NFTUJMWV9fDQo+ICsjaWZuZGVmIF9fQVNTRU1CTEVSX18NCj4gDQo+ICNpbmNsdWRlIDx4ZW4v
dHlwZXMuaD4NCj4gI2luY2x1ZGUgPHhlbi9saWIuaD4NCj4gQEAgLTQ2MSw3ICs0NjEsNyBAQCBl
eHRlcm4gc3RydWN0IGNwdWluZm9fYXJtIGNwdV9kYXRhW107DQo+IA0KPiBleHRlcm4gc3RydWN0
IGNwdWluZm9fYXJtIGRvbWFpbl9jcHVpbmZvOw0KPiANCj4gLSNlbmRpZiAvKiBfX0FTU0VNQkxZ
X18gKi8NCj4gKyNlbmRpZiAvKiBfX0FTU0VNQkxFUl9fICovDQo+IA0KPiAjZW5kaWYNCj4gLyoN
Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9jdXJyZW50LmggYi94ZW4v
YXJjaC9hcm0vaW5jbHVkZS9hc20vY3VycmVudC5oDQo+IGluZGV4IDBiZTdhZDZlZjk1Ni4uODI1
NDM2M2ZkYTY3IDEwMDY0NA0KPiAtLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vY3VycmVu
dC5oDQo+ICsrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9jdXJyZW50LmgNCj4gQEAgLTEx
LDcgKzExLDcgQEANCj4gI2RlZmluZSBDUFVJTkZPX1dPUktBUk9VTkRfMl9GTEFHX1NISUZUICAg
MA0KPiAjZGVmaW5lIENQVUlORk9fV09SS0FST1VORF8yX0ZMQUcgKF9BQygxLCBVKSA8PCBDUFVJ
TkZPX1dPUktBUk9VTkRfMl9GTEFHX1NISUZUKQ0KPiANCj4gLSNpZm5kZWYgX19BU1NFTUJMWV9f
DQo+ICsjaWZuZGVmIF9fQVNTRU1CTEVSX18NCj4gDQo+IHN0cnVjdCB2Y3B1Ow0KPiANCj4gZGlm
ZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9maXhtYXAuaCBiL3hlbi9hcmNoL2Fy
bS9pbmNsdWRlL2FzbS9maXhtYXAuaA0KPiBpbmRleCAwY2I1ZDU0ZDFjNzQuLjg0ZDU1ZTRjMjg4
NSAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2ZpeG1hcC5oDQo+ICsr
KyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9maXhtYXAuaA0KPiBAQCAtMjAsNyArMjAsNyBA
QA0KPiAjZGVmaW5lIEZJWEFERFJfU1RBUlQgRklYTUFQX0FERFIoMCkNCj4gI2RlZmluZSBGSVhB
RERSX1RPUCBGSVhNQVBfQUREUihGSVhfTEFTVCArIDEpDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VN
QkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiANCj4gLyoNCj4gICogRGlyZWN0IGFj
Y2VzcyB0byB4ZW5fZml4bWFwW10gc2hvdWxkIG9ubHkgaGFwcGVuIHdoZW4ge3NldCwNCj4gQEAg
LTQzLDYgKzQzLDYgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgdmlydF90b19maXgodmFk
ZHJfdCB2YWRkcikNCj4gICAgIHJldHVybiAoKHZhZGRyIC0gRklYQUREUl9TVEFSVCkgPj4gUEFH
RV9TSElGVCk7DQo+IH0NCj4gDQo+IC0jZW5kaWYgLyogX19BU1NFTUJMWV9fICovDQo+ICsjZW5k
aWYgLyogX19BU1NFTUJMRVJfXyAqLw0KPiANCj4gI2VuZGlmIC8qIF9fQVNNX0ZJWE1BUF9IICov
DQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZ2ljLmggYi94ZW4vYXJj
aC9hcm0vaW5jbHVkZS9hc20vZ2ljLmgNCj4gaW5kZXggMzk0N2M4NjM0ZDIyLi44ZTcxM2FhNDc3
M2EgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9naWMuaA0KPiArKysg
Yi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZ2ljLmgNCj4gQEAgLTE1OCw3ICsxNTgsNyBAQA0K
PiAjZGVmaW5lIEdJQ0hfTFJfUEVORElORyAgICAgICAgIDENCj4gI2RlZmluZSBHSUNIX0xSX0FD
VElWRSAgICAgICAgICAyDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYg
X19BU1NFTUJMRVJfXw0KPiAjaW5jbHVkZSA8eGVuL2RldmljZV90cmVlLmg+DQo+ICNpbmNsdWRl
IDx4ZW4vaXJxLmg+DQo+IA0KPiBAQCAtNDc5LDcgKzQ3OSw3IEBAIHVuc2lnbmVkIGxvbmcgZ2lj
X2dldF9od2RvbV9tYWR0X3NpemUoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCk7DQo+IGludCBnaWNf
bWFwX2h3ZG9tX2V4dHJhX21hcHBpbmdzKHN0cnVjdCBkb21haW4gKmQpOw0KPiBpbnQgZ2ljX2lv
bWVtX2RlbnlfYWNjZXNzKHN0cnVjdCBkb21haW4gKmQpOw0KPiANCj4gLSNlbmRpZiAvKiBfX0FT
U0VNQkxZX18gKi8NCj4gKyNlbmRpZiAvKiBfX0FTU0VNQkxFUl9fICovDQo+ICNlbmRpZg0KPiAN
Cj4gLyoNCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9pbnNuLmggYi94
ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vaW5zbi5oDQo+IGluZGV4IDI3MjcxZTk1ZjllMi4uZGIz
MmJhYmQyM2Y2IDEwMDY0NA0KPiAtLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vaW5zbi5o
DQo+ICsrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9pbnNuLmgNCj4gQEAgLTEsNyArMSw3
IEBADQo+ICNpZm5kZWYgX19BUkNIX0FSTV9JTlNODQo+ICNkZWZpbmUgX19BUkNIX0FSTV9JTlNO
DQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0K
PiANCj4gI2luY2x1ZGUgPHhlbi90eXBlcy5oPg0KPiANCj4gQEAgLTEzLDcgKzEzLDcgQEANCj4g
IyBlcnJvciAidW5rbm93biBBUk0gdmFyaWFudCINCj4gI2VuZGlmDQo+IA0KPiAtI2VuZGlmIC8q
IF9fQVNTRU1CTFlfXyAqLw0KPiArI2VuZGlmIC8qIF9fQVNTRU1CTEVSX18gKi8NCj4gDQo+IC8q
IE9uIEFSTTMyLDY0IGluc3RydWN0aW9ucyBhcmUgYWx3YXlzIDQgYnl0ZXMgbG9uZy4gKi8NCj4g
I2RlZmluZSBBUkNIX1BBVENIX0lOU05fU0laRSA0DQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9h
cm0vaW5jbHVkZS9hc20vbHBhZS5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2xwYWUuaA0K
PiBpbmRleCA0YTE2NzljYjMzMzQuLjhlMDYyYzllMzdmNSAxMDA2NDQNCj4gLS0tIGEveGVuL2Fy
Y2gvYXJtL2luY2x1ZGUvYXNtL2xwYWUuaA0KPiArKysgYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9h
c20vbHBhZS5oDQo+IEBAIC0xLDcgKzEsNyBAQA0KPiAjaWZuZGVmIF9fQVJNX0xQQUVfSF9fDQo+
ICNkZWZpbmUgX19BUk1fTFBBRV9IX18NCj4gDQo+IC0jaWZuZGVmIF9fQVNTRU1CTFlfXw0KPiAr
I2lmbmRlZiBfX0FTU0VNQkxFUl9fDQo+IA0KPiAjaW5jbHVkZSA8eGVuL3BhZ2UtZGVmcy5oPg0K
PiAjaW5jbHVkZSA8eGVuL21tLWZyYW1lLmg+DQo+IEBAIC0xNzYsNyArMTc2LDcgQEAgc3RhdGlj
IGlubGluZSBib29sIGxwYWVfaXNfc3VwZXJwYWdlKGxwYWVfdCBwdGUsIHVuc2lnbmVkIGludCBs
ZXZlbCkNCj4gICovDQo+IGxwYWVfdCBtZm5fdG9feGVuX2VudHJ5KG1mbl90IG1mbiwgdW5zaWdu
ZWQgaW50IGF0dHIpOw0KPiANCj4gLSNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8NCj4gKyNlbmRp
ZiAvKiBfX0FTU0VNQkxFUl9fICovDQo+IA0KPiAvKg0KPiAgKiBBQXJjaDY0IHN1cHBvcnRzIHBh
Z2VzIHdpdGggZGlmZmVyZW50IHNpemVzICg0SywgMTZLLCBhbmQgNjRLKS4NCj4gZGlmZiAtLWdp
dCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tYWNyb3MuaCBiL3hlbi9hcmNoL2FybS9pbmNs
dWRlL2FzbS9tYWNyb3MuaA0KPiBpbmRleCBkYzc5MTI0NWRmNzYuLjllODc5MzEwN2UxYiAxMDA2
NDQNCj4gLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21hY3Jvcy5oDQo+ICsrKyBiL3hl
bi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tYWNyb3MuaA0KPiBAQCAtMSw3ICsxLDcgQEANCj4gI2lm
bmRlZiBfX0FTTV9NQUNST1NfSA0KPiAjZGVmaW5lIF9fQVNNX01BQ1JPU19IDQo+IA0KPiAtI2lm
bmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiAjIGVycm9yICJU
aGlzIGZpbGUgc2hvdWxkIG9ubHkgYmUgaW5jbHVkZWQgaW4gYXNzZW1ibHkgZmlsZSINCj4gI2Vu
ZGlmDQo+IA0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21wdS5oIGIv
eGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21wdS5oDQo+IGluZGV4IDUwNTNlZGFmNjNkNi4uNzJm
YTViMDBiODYxIDEwMDY0NA0KPiAtLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vbXB1LmgN
Cj4gKysrIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21wdS5oDQo+IEBAIC0yNSw3ICsyNSw3
IEBADQo+IA0KPiAjZGVmaW5lIFBSRU5SX01BU0sgIEdFTk1BU0soMzEsIDApDQo+IA0KPiAtI2lm
bmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiANCj4gLyoNCj4g
ICogU2V0IGJhc2UgYWRkcmVzcyBvZiBNUFUgcHJvdGVjdGlvbiByZWdpb24uDQo+IEBAIC04Nyw3
ICs4Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCByZWdpb25faXNfdmFsaWQoY29uc3QgcHJfdCAq
cHIpDQo+ICAgICByZXR1cm4gcHItPnBybGFyLnJlZy5lbjsNCj4gfQ0KPiANCj4gLSNlbmRpZiAv
KiBfX0FTU0VNQkxZX18gKi8NCj4gKyNlbmRpZiAvKiBfX0FTU0VNQkxFUl9fICovDQo+IA0KPiAj
ZW5kaWYgLyogX19BUk1fTVBVX0hfXyAqLw0KPiANCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2Fy
bS9pbmNsdWRlL2FzbS9wYWdlLmggYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vcGFnZS5oDQo+
IGluZGV4IDAzYmRmNTJjZTAyMy4uOTAxMDBhOTZkZmRhIDEwMDY0NA0KPiAtLS0gYS94ZW4vYXJj
aC9hcm0vaW5jbHVkZS9hc20vcGFnZS5oDQo+ICsrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2Fz
bS9wYWdlLmgNCj4gQEAgLTEyMSw3ICsxMjEsNyBAQA0KPiAjZGVmaW5lIEdWMk1fV1JJVEUgKDF1
PDwwKQ0KPiAjZGVmaW5lIEdWMk1fRVhFQyAgKDF1PDwxKQ0KPiANCj4gLSNpZm5kZWYgX19BU1NF
TUJMWV9fDQo+ICsjaWZuZGVmIF9fQVNTRU1CTEVSX18NCj4gDQo+ICNpbmNsdWRlIDx4ZW4vZXJy
bm8uaD4NCj4gI2luY2x1ZGUgPHhlbi90eXBlcy5oPg0KPiBAQCAtMzIwLDcgKzMyMCw3IEBAIHN0
YXRpYyBpbmxpbmUgaW50IGd2YV90b19pcGEodmFkZHJfdCB2YSwgcGFkZHJfdCAqcGFkZHIsIHVu
c2lnbmVkIGludCBmbGFncykNCj4gLyogQml0cyBpbiB0aGUgUEFSIHJldHVybmVkIGJ5IHZhX3Rv
X3BhciAqLw0KPiAjZGVmaW5lIFBBUl9GQVVMVCAweDENCj4gDQo+IC0jZW5kaWYgLyogX19BU1NF
TUJMWV9fICovDQo+ICsjZW5kaWYgLyogX19BU1NFTUJMRVJfXyAqLw0KPiANCj4gI2VuZGlmIC8q
IF9fQVJNX1BBR0VfSF9fICovDQo+IA0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1
ZGUvYXNtL3BsMDExLXVhcnQuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wbDAxMS11YXJ0
LmgNCj4gaW5kZXggMjdjOWJmYTQ0NGNiLi5hOTkxYjI3NGNkNGIgMTAwNjQ0DQo+IC0tLSBhL3hl
bi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wbDAxMS11YXJ0LmgNCj4gKysrIGIveGVuL2FyY2gvYXJt
L2luY2x1ZGUvYXNtL3BsMDExLXVhcnQuaA0KPiBAQCAtMjEsNyArMjEsNyBAQA0KPiAjaWZuZGVm
IF9fQVNNX0FSTV9QTDAxMV9IDQo+ICNkZWZpbmUgX19BU01fQVJNX1BMMDExX0gNCj4gDQo+IC0j
aWZkZWYgX19BU1NFTUJMWV9fDQo+ICsjaWZkZWYgX19BU1NFTUJMRVJfXw0KPiANCj4gLyoNCj4g
ICogUEwwMTEgcmVnaXN0ZXJzIGFyZSA4LzE2LWJpdCB3aWRlLiBIb3dldmVyLCB0aGVyZSBhcmUg
aW1wbGVtZW50YXRpb25zIHRoYXQNCj4gQEAgLTM4LDcgKzM4LDcgQEANCj4gI2RlZmluZSBQTDAx
MV9MRFJIIGxkcmgNCj4gI2VuZGlmDQo+IA0KPiAtI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLw0K
PiArI2VuZGlmIC8qIF9fQVNTRU1CTEVSX18gKi8NCj4gDQo+IC8qIFBMMDExIHJlZ2lzdGVyIGFk
ZHJlc3NlcyAqLw0KPiAjZGVmaW5lIERSICAgICAoMHgwMCkNCj4gZGlmZiAtLWdpdCBhL3hlbi9h
cmNoL2FybS9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2Fz
bS9wcm9jZXNzb3IuaA0KPiBpbmRleCA5MmM4YmMxYTMxMjUuLmVkNTY3NDYzNjgxNiAxMDA2NDQN
Cj4gLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oDQo+ICsrKyBiL3hl
bi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaA0KPiBAQCAtMSw3ICsxLDcgQEANCj4g
I2lmbmRlZiBfX0FTTV9BUk1fUFJPQ0VTU09SX0gNCj4gI2RlZmluZSBfX0FTTV9BUk1fUFJPQ0VT
U09SX0gNCj4gDQo+IC0jaWZuZGVmIF9fQVNTRU1CTFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxF
Ul9fDQo+ICNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4NCj4gI2VuZGlmDQo+ICNpbmNsdWRlIDxwdWJs
aWMvYXJjaC1hcm0uaD4NCj4gQEAgLTQ2Myw3ICs0NjMsNyBAQA0KPiAjZGVmaW5lIE1NNjRfVk1J
RF8xNl9CSVRTX1NVUFBPUlQgICAweDINCj4gI2VuZGlmDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VN
QkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiANCj4gZXh0ZXJuIHJlZ2lzdGVyX3Qg
X19jcHVfbG9naWNhbF9tYXBbXTsNCj4gI2RlZmluZSBjcHVfbG9naWNhbF9tYXAoY3B1KSBfX2Nw
dV9sb2dpY2FsX21hcFtjcHVdDQo+IEBAIC01NzAsNyArNTcwLDcgQEAgZXh0ZXJuIHJlZ2lzdGVy
X3QgX19jcHVfbG9naWNhbF9tYXBbXTsNCj4gIyBlcnJvciAidW5rbm93biBBUk0gdmFyaWFudCIN
Cj4gI2VuZGlmDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NF
TUJMRVJfXw0KPiB2b2lkIG5vcmV0dXJuIHBhbmljX1BBUih1aW50NjRfdCBwYXIpOw0KPiANCj4g
LyogRGVidWdnaW5nIGZ1bmN0aW9ucyBhcmUgZGVjbGFyZWQgd2l0aCBleHRlcm5hbCBsaW5rYWdl
IHRvIGFpZCBkZXZlbG9wbWVudC4gKi8NCj4gQEAgLTYzMSw3ICs2MzEsNyBAQCByZWdpc3Rlcl90
IGdldF9kZWZhdWx0X2NwdHJfZmxhZ3Modm9pZCk7DQo+ICAgICAgICAgV1JJVEVfU1lTUkVHKCh2
KS0+YXJjaC5oY3JfZWwyLCBIQ1JfRUwyKTsgICBcDQo+ICAgICB9IHdoaWxlICgwKQ0KPiANCj4g
LSNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8NCj4gKyNlbmRpZiAvKiBfX0FTU0VNQkxFUl9fICov
DQo+ICNlbmRpZiAvKiBfX0FTTV9BUk1fUFJPQ0VTU09SX0ggKi8NCj4gLyoNCj4gICogTG9jYWwg
dmFyaWFibGVzOg0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3JlZ3Mu
aCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9yZWdzLmgNCj4gaW5kZXggMGQ5ZjIzOWE3Nzgy
Li40OTBkYjkwNTZkMTIgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9y
ZWdzLmgNCj4gKysrIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3JlZ3MuaA0KPiBAQCAtMyw3
ICszLDcgQEANCj4gDQo+ICNkZWZpbmUgUFNSX01PREVfTUFTSyAweDFmDQo+IA0KPiAtI2lmbmRl
ZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiANCj4gI2luY2x1ZGUg
PHhlbi9idWcuaD4NCj4gI2luY2x1ZGUgPHhlbi90eXBlcy5oPg0KPiBkaWZmIC0tZ2l0IGEveGVu
L2FyY2gvYXJtL2luY2x1ZGUvYXNtL3NtY2NjLmggYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20v
c21jY2MuaA0KPiBpbmRleCBhMjg5YzQ4YjdmZmQuLjQ0MWIzYWI2NWRlZSAxMDA2NDQNCj4gLS0t
IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3NtY2NjLmgNCj4gKysrIGIveGVuL2FyY2gvYXJt
L2luY2x1ZGUvYXNtL3NtY2NjLmgNCj4gQEAgLTU0LDcgKzU0LDcgQEANCj4gDQo+ICNkZWZpbmUg
QVJNX1NNQ0NDX0ZVTkNfTUFTSyAgICAgICAgICAgICBfQUMoMHhGRkZGLFUpDQo+IA0KPiAtI2lm
bmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiANCj4gZXh0ZXJu
IHVpbnQzMl90IHNtY2NjX3ZlcjsNCj4gDQo+IEBAIC0zMDcsNyArMzA3LDcgQEAgdm9pZCBhcm1f
c21jY2NfMV8yX3NtYyhjb25zdCBzdHJ1Y3QgYXJtX3NtY2NjXzFfMl9yZWdzICphcmdzLA0KPiAg
ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBhcm1fc21jY2NfMV8yX3JlZ3MgKnJlcyk7DQo+
ICNlbmRpZiAvKiBDT05GSUdfQVJNXzY0ICovDQo+IA0KPiAtI2VuZGlmIC8qIF9fQVNTRU1CTFlf
XyAqLw0KPiArI2VuZGlmIC8qIF9fQVNTRU1CTEVSX18gKi8NCj4gDQo+IC8qDQo+ICAqIENvbnN0
cnVjdCBmdW5jdGlvbiBpZGVudGlmaWVyIGZyb20gY2FsbCB0eXBlIChmYXN0IG9yIHN0YW5kYXJk
KSwNCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9zbXAuaCBiL3hlbi9h
cmNoL2FybS9pbmNsdWRlL2FzbS9zbXAuaA0KPiBpbmRleCBmNWM4MjllMjI5NmUuLjE2YWUwODQ0
ZTdiOSAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3NtcC5oDQo+ICsr
KyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9zbXAuaA0KPiBAQCAtMSw3ICsxLDcgQEANCj4g
I2lmbmRlZiBfX0FTTV9TTVBfSA0KPiAjZGVmaW5lIF9fQVNNX1NNUF9IDQo+IA0KPiAtI2lmbmRl
ZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiAjaW5jbHVkZSA8eGVu
L3BlcmNwdS5oPg0KPiAjaW5jbHVkZSA8eGVuL2NwdW1hc2suaD4NCj4gI2luY2x1ZGUgPGFzbS9j
dXJyZW50Lmg+DQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vc3lzcmVn
cy5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3N5c3JlZ3MuaA0KPiBpbmRleCA1YzJkMzYy
YmUzZDguLmY2YWY5ODdlZjVlOSAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUv
YXNtL3N5c3JlZ3MuaA0KPiArKysgYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vc3lzcmVncy5o
DQo+IEBAIC05LDcgKzksNyBAQA0KPiAjIGVycm9yICJ1bmtub3duIEFSTSB2YXJpYW50Ig0KPiAj
ZW5kaWYNCj4gDQo+IC0jaWZuZGVmIF9fQVNTRU1CTFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxF
Ul9fDQo+IA0KPiAjaW5jbHVkZSA8YXNtL2FsdGVybmF0aXZlLmg+DQo+IA0KPiBAQCAtMzMsNyAr
MzMsNyBAQCBzdGF0aWMgaW5saW5lIHJlZ2lzdGVyX3QgcmVhZF9zeXNyZWdfcGFyKHZvaWQpDQo+
ICAgICByZXR1cm4gcGFyX2VsMTsNCj4gfQ0KPiANCj4gLSNlbmRpZiAvKiAgIV9fQVNTRU1CTFlf
XyAgKi8NCj4gKyNlbmRpZiAvKiAgIV9fQVNTRU1CTEVSX18gICovDQo+IA0KPiAjZW5kaWYgLyog
X19BU01fQVJNX1NZU1JFR1NfSCAqLw0KPiAvKg0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvcHBj
L2luY2x1ZGUvYXNtL2N1cnJlbnQuaCBiL3hlbi9hcmNoL3BwYy9pbmNsdWRlL2FzbS9jdXJyZW50
LmgNCj4gaW5kZXggZTMyOWE1NDhlNjFlLi5jZDdhZjNlMGM1NmEgMTAwNjQ0DQo+IC0tLSBhL3hl
bi9hcmNoL3BwYy9pbmNsdWRlL2FzbS9jdXJyZW50LmgNCj4gKysrIGIveGVuL2FyY2gvcHBjL2lu
Y2x1ZGUvYXNtL2N1cnJlbnQuaA0KPiBAQCAtNiw3ICs2LDcgQEANCj4gDQo+ICNpbmNsdWRlIDxh
c20vcHJvY2Vzc29yLmg+DQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYg
X19BU1NFTUJMRVJfXw0KPiANCj4gc3RydWN0IHZjcHU7DQo+IA0KPiBAQCAtNDQsNiArNDQsNiBA
QCBzdGF0aWMgaW5saW5lIHN0cnVjdCBjcHVfaW5mbyAqZ2V0X2NwdV9pbmZvKHZvaWQpDQo+IA0K
PiAjZGVmaW5lIGdldF9wZXJfY3B1X29mZnNldCgpICAgIHNtcF9wcm9jZXNzb3JfaWQoKSAvKiBU
T0RPOiBGaXggdGhpcyAqLw0KPiANCj4gLSNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8NCj4gKyNl
bmRpZiAvKiBfX0FTU0VNQkxFUl9fICovDQo+IA0KPiAjZW5kaWYgLyogX19BU01fUFBDX0NVUlJF
TlRfSF9fICovDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9wcGMvaW5jbHVkZS9hc20vb3BhbC1h
cGkuaCBiL3hlbi9hcmNoL3BwYy9pbmNsdWRlL2FzbS9vcGFsLWFwaS5oDQo+IGluZGV4IDg3OTAy
NDZmNDhjZS4uYTgzMTg0YTVjMmU2IDEwMDY0NA0KPiAtLS0gYS94ZW4vYXJjaC9wcGMvaW5jbHVk
ZS9hc20vb3BhbC1hcGkuaA0KPiArKysgYi94ZW4vYXJjaC9wcGMvaW5jbHVkZS9hc20vb3BhbC1h
cGkuaA0KPiBAQCAtMjQ2LDcgKzI0Niw3IEBADQo+ICNkZWZpbmUgT1BBTF9DT05GSUdfSURMRV9V
TkRPIDANCj4gI2RlZmluZSBPUEFMX0NPTkZJR19JRExFX0FQUExZIDENCj4gDQo+IC0jaWZuZGVm
IF9fQVNTRU1CTFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxFUl9fDQo+IA0KPiAjaW5jbHVkZSA8
eGVuL3R5cGVzLmg+DQo+IA0KPiBAQCAtMTE4NSw2ICsxMTg1LDYgQEAgc3RydWN0IG9wYWxfbXBp
cGxfZmFkdW1wIHsNCj4gc3RydWN0IG9wYWxfbXBpcGxfcmVnaW9uIHJlZ2lvbltdOw0KPiB9IF9f
cGFja2VkOw0KPiANCj4gLSNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8NCj4gKyNlbmRpZiAvKiBf
X0FTU0VNQkxFUl9fICovDQo+IA0KPiAjZW5kaWYgLyogX19PUEFMX0FQSV9IICovDQo+IGRpZmYg
LS1naXQgYS94ZW4vYXJjaC9wcGMvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmggYi94ZW4vYXJjaC9w
cGMvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgNCj4gaW5kZXggNTAxNjFjYzMyZDUwLi4yNDIzNDZj
YWI5NTcgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL3BwYy9pbmNsdWRlL2FzbS9wcm9jZXNzb3Iu
aA0KPiArKysgYi94ZW4vYXJjaC9wcGMvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgNCj4gQEAgLTEz
NCw3ICsxMzQsNyBAQA0KPiAvKiBCYXNlIGFkZHJlc3Mgb2YgaW50ZXJydXB0IHZlY3RvciB0YWJs
ZSB3aGVuIExQQ1JbQUlMXT0zICovDQo+ICNkZWZpbmUgQUlMX1ZFQ1RPUl9CQVNFIF9BQygweGMw
MDAwMDAwMDAwMDQwMDAsIFVMKQ0KPiANCj4gLSNpZm5kZWYgX19BU1NFTUJMWV9fDQo+ICsjaWZu
ZGVmIF9fQVNTRU1CTEVSX18NCj4gDQo+ICNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4NCj4gDQo+IEBA
IC0yMjEsNiArMjIxLDYgQEAgc3RhdGljIGlubGluZSB2b2lkIG5vcmV0dXJuIGRpZSh2b2lkKQ0K
PiANCj4gI2RlZmluZSBkdW1wX2V4ZWN1dGlvbl9zdGF0ZSgpIHJ1bl9pbl9leGNlcHRpb25faGFu
ZGxlcihzaG93X2V4ZWN1dGlvbl9zdGF0ZSkNCj4gDQo+IC0jZW5kaWYgLyogX19BU1NFTUJMWV9f
ICovDQo+ICsjZW5kaWYgLyogX19BU1NFTUJMRVJfXyAqLw0KPiANCj4gI2VuZGlmIC8qIF9BU01f
UFBDX1BST0NFU1NPUl9IICovDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9yaXNjdi9pbmNsdWRl
L2FzbS9hc20uaCBiL3hlbi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2FzbS5oDQo+IGluZGV4IDhi
MDQwM2UyZTQ3MS4uZTE0N2I2ZjA1Mzg4IDEwMDY0NA0KPiAtLS0gYS94ZW4vYXJjaC9yaXNjdi9p
bmNsdWRlL2FzbS9hc20uaA0KPiArKysgYi94ZW4vYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9hc20u
aA0KPiBAQCAtNiw3ICs2LDcgQEANCj4gI2lmbmRlZiBBU01fX1JJU0NWX19BU01fSA0KPiAjZGVm
aW5lIEFTTV9fUklTQ1ZfX0FTTV9IDQo+IA0KPiAtI2lmZGVmIF9fQVNTRU1CTFlfXw0KPiArI2lm
ZGVmIF9fQVNTRU1CTEVSX18NCj4gI2luY2x1ZGUgPHhlbi9saW5rYWdlLmg+DQo+ICNkZWZpbmUg
X19BU01fU1RSKHgpIHgNCj4gI2Vsc2UNCj4gQEAgLTI1LDEzICsyNSwxMyBAQA0KPiAjZGVmaW5l
IFJFR19TIF9fUkVHX1NFTChzZCwgc3cpDQo+IA0KPiAjaWYgX19TSVpFT0ZfUE9JTlRFUl9fID09
IDgNCj4gLSNpZmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZmRlZiBfX0FTU0VNQkxFUl9fDQo+ICNk
ZWZpbmUgUklTQ1ZfUFRSIC5kd29yZA0KPiAjZWxzZQ0KPiAjZGVmaW5lIFJJU0NWX1BUUiAiLmR3
b3JkIg0KPiAjZW5kaWYNCj4gI2VsaWYgX19TSVpFT0ZfUE9JTlRFUl9fID09IDQNCj4gLSNpZmRl
ZiBfX0FTU0VNQkxZX18NCj4gKyNpZmRlZiBfX0FTU0VNQkxFUl9fDQo+ICNkZWZpbmUgUklTQ1Zf
UFRSIC53b3JkDQo+ICNlbHNlDQo+ICNkZWZpbmUgUklTQ1ZfUFRSICIud29yZCINCj4gZGlmZiAt
LWdpdCBhL3hlbi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2J1Zy5oIGIveGVuL2FyY2gvcmlzY3Yv
aW5jbHVkZS9hc20vYnVnLmgNCj4gaW5kZXggYzM5NWI4MDljNjBkLi42ZWM4YWRjNTI4YTkgMTAw
NjQ0DQo+IC0tLSBhL3hlbi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2J1Zy5oDQo+ICsrKyBiL3hl
bi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2J1Zy5oDQo+IEBAIC03LDcgKzcsNyBAQA0KPiAjaWZu
ZGVmIEFTTV9fUklTQ1ZfX0JVR19IDQo+ICNkZWZpbmUgQVNNX19SSVNDVl9fQlVHX0gNCj4gDQo+
IC0jaWZuZGVmIF9fQVNTRU1CTFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxFUl9fDQo+IA0KPiAj
ZGVmaW5lIEJVR19JTlNUUiAidW5pbXAiDQo+IA0KPiBAQCAtMzAsNiArMzAsNiBAQA0KPiAjZGVm
aW5lIEdFVF9JTlNOX0xFTkdUSChpbnNuKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQo+ICAgICAoKChpbnNuKSAmIElOU05fTEVOR1RIX01BU0spID09IElOU05fTEVOR1RIXzMyID8g
NCA6IDIpIFwNCj4gDQo+IC0jZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLw0KPiArI2VuZGlmIC8q
ICFfX0FTU0VNQkxFUl9fICovDQo+IA0KPiAjZW5kaWYgLyogQVNNX19SSVNDVl9fQlVHX0ggKi8N
Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2NvbmZpZy5oIGIveGVu
L2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vY29uZmlnLmgNCj4gaW5kZXggZTE1MGYyOGY1MzZkLi4x
ZTA4ZDNiZjc4YmUgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2Nv
bmZpZy5oDQo+ICsrKyBiL3hlbi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2NvbmZpZy5oDQo+IEBA
IC0xMzcsNyArMTM3LDcgQEANCj4gI2RlZmluZSBJTlZBTElEX1ZDUFVfSUQgTUFYX1ZJUlRfQ1BV
Uw0KPiANCj4gLyogTGlua2FnZSBmb3IgUklTQ1YgKi8NCj4gLSNpZmRlZiBfX0FTU0VNQkxZX18N
Cj4gKyNpZmRlZiBfX0FTU0VNQkxFUl9fDQo+ICNkZWZpbmUgQ09ERV9GSUxMIC8qIGVtcHR5ICov
DQo+ICNlbmRpZg0KPiANCj4gQEAgLTE0Nyw3ICsxNDcsNyBAQA0KPiANCj4gI2RlZmluZSBJREVO
VF9BUkVBX1NJWkUgNjQNCj4gDQo+IC0jaWZuZGVmIF9fQVNTRU1CTFlfXw0KPiArI2lmbmRlZiBf
X0FTU0VNQkxFUl9fDQo+IGV4dGVybiB1bnNpZ25lZCBsb25nIHBoeXNfb2Zmc2V0OyAvKiA9IGxv
YWRfc3RhcnQgLSBYRU5fVklSVF9TVEFSVCAqLw0KPiAjZW5kaWYNCj4gDQo+IGRpZmYgLS1naXQg
YS94ZW4vYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlLmggYi94ZW4vYXJjaC9yaXNj
di9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlLmgNCj4gaW5kZXggNzY4Yjg0Yjc2OWJlLi5kNDJkN2Iy
OTRlZjEgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2NwdWZlYXR1
cmUuaA0KPiArKysgYi94ZW4vYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlLmgNCj4g
QEAgLTIsNyArMiw3IEBADQo+ICNpZm5kZWYgQVNNX19SSVNDVl9fQ1BVRkVBVFVSRV9IDQo+ICNk
ZWZpbmUgQVNNX19SSVNDVl9fQ1BVRkVBVFVSRV9IDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZ
X18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiANCj4gI2luY2x1ZGUgPHhlbi9zdGRib29s
Lmg+DQo+IA0KPiBAQCAtNDYsNyArNDYsNyBAQCB2b2lkIHJpc2N2X2ZpbGxfaHdjYXAodm9pZCk7
DQo+IGJvb2wgcmlzY3ZfaXNhX2V4dGVuc2lvbl9hdmFpbGFibGUoY29uc3QgdW5zaWduZWQgbG9u
ZyAqaXNhX2JpdG1hcCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVt
IHJpc2N2X2lzYV9leHRfaWQgaWQpOw0KPiANCj4gLSNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8N
Cj4gKyNlbmRpZiAvKiBfX0FTU0VNQkxFUl9fICovDQo+IA0KPiAjZW5kaWYgLyogQVNNX19SSVND
Vl9fQ1BVRkVBVFVSRV9IICovDQo+IA0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvcmlzY3YvaW5j
bHVkZS9hc20vY3NyLmggYi94ZW4vYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9jc3IuaA0KPiBpbmRl
eCA3NzVmMWYxNzBmMzcuLjAxODc2ZjgyODk4MSAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gvcmlz
Y3YvaW5jbHVkZS9hc20vY3NyLmgNCj4gKysrIGIveGVuL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20v
Y3NyLmgNCj4gQEAgLTEwLDcgKzEwLDcgQEANCj4gI2luY2x1ZGUgPHhlbi9jb25zdC5oPg0KPiAj
aW5jbHVkZSA8YXNtL3Jpc2N2X2VuY29kaW5nLmg+DQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZ
X18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiANCj4gI2RlZmluZSBjc3JfcmVhZChjc3Ip
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKHsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
Cj4gQEAgLTc4LDYgKzc4LDYgQEANCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAibWVt
b3J5IiApOyAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gfSkNCj4gDQo+IC0jZW5kaWYgLyog
X19BU1NFTUJMWV9fICovDQo+ICsjZW5kaWYgLyogX19BU1NFTUJMRVJfXyAqLw0KPiANCj4gI2Vu
ZGlmIC8qIEFTTV9fUklTQ1ZfX0NTUl9IICovDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9yaXNj
di9pbmNsdWRlL2FzbS9jdXJyZW50LmggYi94ZW4vYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9jdXJy
ZW50LmgNCj4gaW5kZXggMTQ4NWJjZWVhNDE0Li4wYzNlYTcwYzJlYzggMTAwNjQ0DQo+IC0tLSBh
L3hlbi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2N1cnJlbnQuaA0KPiArKysgYi94ZW4vYXJjaC9y
aXNjdi9pbmNsdWRlL2FzbS9jdXJyZW50LmgNCj4gQEAgLTksNyArOSw3IEBADQo+IA0KPiAjaW5j
bHVkZSA8YXNtL3Byb2Nlc3Nvci5oPg0KPiANCj4gLSNpZm5kZWYgX19BU1NFTUJMWV9fDQo+ICsj
aWZuZGVmIF9fQVNTRU1CTEVSX18NCj4gDQo+IHJlZ2lzdGVyIHN0cnVjdCBwY3B1X2luZm8gKnRw
IGFzbSAoICJ0cCIgKTsNCj4gDQo+IEBAIC01Miw2ICs1Miw2IEBAIERFQ0xBUkVfUEVSX0NQVShz
dHJ1Y3QgdmNwdSAqLCBjdXJyX3ZjcHUpOw0KPiANCj4gI2RlZmluZSBnZXRfcGVyX2NwdV9vZmZz
ZXQoKSBfX3Blcl9jcHVfb2Zmc2V0W3NtcF9wcm9jZXNzb3JfaWQoKV0NCj4gDQo+IC0jZW5kaWYg
LyogX19BU1NFTUJMWV9fICovDQo+ICsjZW5kaWYgLyogX19BU1NFTUJMRVJfXyAqLw0KPiANCj4g
I2VuZGlmIC8qIEFTTV9fUklTQ1ZfX0NVUlJFTlRfSCAqLw0KPiBkaWZmIC0tZ2l0IGEveGVuL2Fy
Y2gvcmlzY3YvaW5jbHVkZS9hc20vZml4bWFwLmggYi94ZW4vYXJjaC9yaXNjdi9pbmNsdWRlL2Fz
bS9maXhtYXAuaA0KPiBpbmRleCA1OTkwYzk2NGFhMmYuLjA4NWQxMzVjMTVkNCAxMDA2NDQNCj4g
LS0tIGEveGVuL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZml4bWFwLmgNCj4gKysrIGIveGVuL2Fy
Y2gvcmlzY3YvaW5jbHVkZS9hc20vZml4bWFwLmgNCj4gQEAgLTIzLDcgKzIzLDcgQEANCj4gI2Rl
ZmluZSBGSVhBRERSX1NUQVJUIEZJWE1BUF9BRERSKDApDQo+ICNkZWZpbmUgRklYQUREUl9UT1Ag
RklYTUFQX0FERFIoRklYX0xBU1QgKyAxKQ0KPiANCj4gLSNpZm5kZWYgX19BU1NFTUJMWV9fDQo+
ICsjaWZuZGVmIF9fQVNTRU1CTEVSX18NCj4gDQo+IC8qDQo+ICAqIERpcmVjdCBhY2Nlc3MgdG8g
eGVuX2ZpeG1hcFtdIHNob3VsZCBvbmx5IGhhcHBlbiB3aGVuIHtzZXQsDQo+IEBAIC00Niw2ICs0
Niw2IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IHZpcnRfdG9fZml4KHZhZGRyX3QgdmFk
ZHIpDQo+ICAgICByZXR1cm4gKCh2YWRkciAtIEZJWEFERFJfU1RBUlQpID4+IFBBR0VfU0hJRlQp
Ow0KPiB9DQo+IA0KPiAtI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLw0KPiArI2VuZGlmIC8qIF9f
QVNTRU1CTEVSX18gKi8NCj4gDQo+ICNlbmRpZiAvKiBBU01fX1JJU0NWX19GSVhNQVBfSCAqLw0K
PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGFnZS5oIGIveGVuL2Fy
Y2gvcmlzY3YvaW5jbHVkZS9hc20vcGFnZS5oDQo+IGluZGV4IGRkY2M0ZGEwYTNkNS4uN2ZkZTk5
ZjkxNjE3IDEwMDY0NA0KPiAtLS0gYS94ZW4vYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wYWdlLmgN
Cj4gKysrIGIveGVuL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGFnZS5oDQo+IEBAIC0zLDcgKzMs
NyBAQA0KPiAjaWZuZGVmIEFTTV9fUklTQ1ZfX1BBR0VfSA0KPiAjZGVmaW5lIEFTTV9fUklTQ1Zf
X1BBR0VfSA0KPiANCj4gLSNpZm5kZWYgX19BU1NFTUJMWV9fDQo+ICsjaWZuZGVmIF9fQVNTRU1C
TEVSX18NCj4gDQo+ICNpbmNsdWRlIDx4ZW4vYnVnLmg+DQo+ICNpbmNsdWRlIDx4ZW4vY29uc3Qu
aD4NCj4gQEAgLTIxMyw2ICsyMTMsNiBAQCBzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZV9mcm9tX21m
bihtZm5fdCBtZm4sIHB0ZV9hdHRyX3QgZmxhZ3MpDQo+IA0KPiBwdGVfdCBwdF93YWxrKHZhZGRy
X3QgdmEsIHVuc2lnbmVkIGludCAqcHRlX2xldmVsKTsNCj4gDQo+IC0jZW5kaWYgLyogX19BU1NF
TUJMWV9fICovDQo+ICsjZW5kaWYgLyogX19BU1NFTUJMRVJfXyAqLw0KPiANCj4gI2VuZGlmIC8q
IEFTTV9fUklTQ1ZfX1BBR0VfSCAqLw0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvcmlzY3YvaW5j
bHVkZS9hc20vcHJvY2Vzc29yLmggYi94ZW4vYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wcm9jZXNz
b3IuaA0KPiBpbmRleCAzOTY5NmZiNThkYzYuLjI1MDIwNDU2NDJkOCAxMDA2NDQNCj4gLS0tIGEv
eGVuL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgNCj4gKysrIGIveGVuL2FyY2gv
cmlzY3YvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgNCj4gQEAgLTEwLDcgKzEwLDcgQEANCj4gI2lm
bmRlZiBBU01fX1JJU0NWX19QUk9DRVNTT1JfSA0KPiAjZGVmaW5lIEFTTV9fUklTQ1ZfX1BST0NF
U1NPUl9IDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJM
RVJfXw0KPiANCj4gLyogT24gc3RhY2sgVkNQVSBzdGF0ZSAqLw0KPiBzdHJ1Y3QgY3B1X3VzZXJf
cmVncw0KPiBAQCAtOTMsNyArOTMsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2ZlbmNlX3ZtYSh2
b2lkKQ0KPiANCj4gI2RlZmluZSBkdW1wX2V4ZWN1dGlvbl9zdGF0ZSgpIHJ1bl9pbl9leGNlcHRp
b25faGFuZGxlcihzaG93X2V4ZWN1dGlvbl9zdGF0ZSkNCj4gDQo+IC0jZW5kaWYgLyogX19BU1NF
TUJMWV9fICovDQo+ICsjZW5kaWYgLyogX19BU1NFTUJMRVJfXyAqLw0KPiANCj4gI2VuZGlmIC8q
IEFTTV9fUklTQ1ZfX1BST0NFU1NPUl9IICovDQo+IA0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gv
cmlzY3YvaW5jbHVkZS9hc20vcmVncy5oIGIveGVuL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcmVn
cy5oDQo+IGluZGV4IDIxOGI5NDU1YmQ1Zi4uNTMxOTU4ZjNkNzQ4IDEwMDY0NA0KPiAtLS0gYS94
ZW4vYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9yZWdzLmgNCj4gKysrIGIveGVuL2FyY2gvcmlzY3Yv
aW5jbHVkZS9hc20vcmVncy5oDQo+IEBAIC0yLDcgKzIsNyBAQA0KPiAjaWZuZGVmIEFTTV9fUklT
Q1ZfX1JFR1NfSA0KPiAjZGVmaW5lIEFTTV9fUklTQ1ZfX1JFR1NfSA0KPiANCj4gLSNpZm5kZWYg
X19BU1NFTUJMWV9fDQo+ICsjaWZuZGVmIF9fQVNTRU1CTEVSX18NCj4gDQo+ICNpbmNsdWRlIDx4
ZW4vYnVnLmg+DQo+IA0KPiBAQCAtMTUsNyArMTUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZ3Vl
c3RfbW9kZShjb25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcikNCj4gICAgIEJVR19PTigidW5p
bXBsZW1lbnRlZCIpOw0KPiB9DQo+IA0KPiAtI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLw0KPiAr
I2VuZGlmIC8qIF9fQVNTRU1CTEVSX18gKi8NCj4gDQo+ICNlbmRpZiAvKiBBU01fX1JJU0NWX19S
RUdTX0ggKi8NCj4gDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9z
eXN0ZW0uaCBiL3hlbi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3N5c3RlbS5oDQo+IGluZGV4IDdi
NzhkMTFlMDRkZC4uZjMzYWY2NGZkMmVjIDEwMDY0NA0KPiAtLS0gYS94ZW4vYXJjaC9yaXNjdi9p
bmNsdWRlL2FzbS9zeXN0ZW0uaA0KPiArKysgYi94ZW4vYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9z
eXN0ZW0uaA0KPiBAQCAtNyw3ICs3LDcgQEANCj4gDQo+ICNpbmNsdWRlIDxhc20vY3NyLmg+DQo+
IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiAN
Cj4gI2RlZmluZSBSSVNDVl9GRU5DRShwLCBzKSBcDQo+ICAgICBfX2FzbV9fIF9fdm9sYXRpbGVf
XyAoICJmZW5jZSAiICNwICIsIiAjcyA6IDogOiAibWVtb3J5IiApDQo+IEBAIC03Niw3ICs3Niw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBsb2NhbF9pcnFfaXNfZW5hYmxlZCh2b2lkKQ0KPiANCj4g
I2RlZmluZSBhcmNoX2ZldGNoX2FuZF9hZGQoeCwgdikgX19zeW5jX2ZldGNoX2FuZF9hZGQoeCwg
dikNCj4gDQo+IC0jZW5kaWYgLyogX19BU1NFTUJMWV9fICovDQo+ICsjZW5kaWYgLyogX19BU1NF
TUJMRVJfXyAqLw0KPiANCj4gI2VuZGlmIC8qIEFTTV9fUklTQ1ZfX1NZU1RFTV9IICovDQo+IA0K
PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vdHJhcHMuaCBiL3hlbi9h
cmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3RyYXBzLmgNCj4gaW5kZXggNzJiOGY2YzQ3NWNjLi4yMWZh
M2MzMjU5YjMgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3RyYXBz
LmgNCj4gKysrIGIveGVuL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vdHJhcHMuaA0KPiBAQCAtNSwx
MiArNSwxMiBAQA0KPiANCj4gI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4NCj4gDQo+IC0jaWZu
ZGVmIF9fQVNTRU1CTFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxFUl9fDQo+IA0KPiB2b2lkIGRv
X3RyYXAoc3RydWN0IGNwdV91c2VyX3JlZ3MgKmNwdV9yZWdzKTsNCj4gdm9pZCBoYW5kbGVfdHJh
cCh2b2lkKTsNCj4gdm9pZCB0cmFwX2luaXQodm9pZCk7DQo+IA0KPiAtI2VuZGlmIC8qIF9fQVNT
RU1CTFlfXyAqLw0KPiArI2VuZGlmIC8qIF9fQVNTRU1CTEVSX18gKi8NCj4gDQo+ICNlbmRpZiAv
KiBBU01fX1JJU0NWX19UUkFQU19IICovDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvYm9v
dC92aWRlby5oIGIveGVuL2FyY2gveDg2L2Jvb3QvdmlkZW8uaA0KPiBpbmRleCAxMjAzNTE1Zjll
NWIuLjdjMjg0ODc5MTc5OSAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gveDg2L2Jvb3QvdmlkZW8u
aA0KPiArKysgYi94ZW4vYXJjaC94ODYvYm9vdC92aWRlby5oDQo+IEBAIC0yOCw3ICsyOCw3IEBA
DQo+IC8qIFRoZSAicmVjYWxjdWxhdGUgdGltaW5ncyIgZmxhZyAqLw0KPiAjZGVmaW5lIFZJREVP
X1JFQ0FMQyAgICAgICAgMHg4MDAwDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNp
Zm5kZWYgX19BU1NFTUJMRVJfXw0KPiBzdHJ1Y3QgYm9vdF92aWRlb19pbmZvIHsNCj4gICAgIHVp
bnQ4X3QgIG9yaWdfeDsgICAgICAgICAgICAgLyogMHgwMCAqLw0KPiAgICAgdWludDhfdCAgb3Jp
Z195OyAgICAgICAgICAgICAvKiAweDAxICovDQo+IEBAIC02OSw2ICs2OSw2IEBAIHN0cnVjdCBi
b290X3ZpZGVvX2luZm8gew0KPiB9Ow0KPiANCj4gZXh0ZXJuIHN0cnVjdCBib290X3ZpZGVvX2lu
Zm8gYm9vdF92aWRfaW5mbzsNCj4gLSNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8NCj4gKyNlbmRp
ZiAvKiBfX0FTU0VNQkxFUl9fICovDQo+IA0KPiAjZW5kaWYgLyogX19CT09UX1ZJREVPX0hfXyAq
Lw0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FsdGVybmF0aXZlLWFz
bS5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FsdGVybmF0aXZlLWFzbS5oDQo+IGluZGV4
IDNlYjBmNGU4YTAyYS4uZDVjN2YxODE2MGQ5IDEwMDY0NA0KPiAtLS0gYS94ZW4vYXJjaC94ODYv
aW5jbHVkZS9hc20vYWx0ZXJuYXRpdmUtYXNtLmgNCj4gKysrIGIveGVuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL2FsdGVybmF0aXZlLWFzbS5oDQo+IEBAIC0zLDcgKzMsNyBAQA0KPiANCj4gI2luY2x1
ZGUgPGFzbS9ub3BzLmg+DQo+IA0KPiAtI2lmZGVmIF9fQVNTRU1CTFlfXw0KPiArI2lmZGVmIF9f
QVNTRU1CTEVSX18NCj4gDQo+IC8qDQo+ICAqIElzc3VlIG9uZSBzdHJ1Y3QgYWx0X2luc3RyIGRl
c2NyaXB0b3IgZW50cnkgKG5lZWQgdG8gcHV0IGl0IGludG8NCj4gQEAgLTEyMCw3ICsxMjAsNyBA
QA0KPiAjdW5kZWYgZGVjbF9vcmlnDQo+ICN1bmRlZiBhc190cnVlDQo+IA0KPiAtI2VuZGlmIC8q
IF9fQVNTRU1CTFlfXyAqLw0KPiArI2VuZGlmIC8qIF9fQVNTRU1CTEVSX18gKi8NCj4gI2VuZGlm
IC8qIF9BU01fWDg2X0FMVEVSTkFUSVZFX0FTTV9IXyAqLw0KPiANCj4gLyoNCj4gZGlmZiAtLWdp
dCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hbHRlcm5hdGl2ZS5oIGIveGVuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL2FsdGVybmF0aXZlLmgNCj4gaW5kZXggMDQ4MmJiZjdjYmYxLi4xODEwOWUz
ZGM1OTQgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hbHRlcm5hdGl2
ZS5oDQo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hbHRlcm5hdGl2ZS5oDQo+IEBA
IC04LDcgKzgsNyBAQA0KPiAjZGVmaW5lIEFMVF9GTEFHX05PVCAoMSA8PCAxNSkNCj4gI2RlZmlu
ZSBBTFRfTk9UKHgpIChBTFRfRkxBR19OT1QgfCAoeCkpDQo+IA0KPiAtI2lmZGVmIF9fQVNTRU1C
TFlfXw0KPiArI2lmZGVmIF9fQVNTRU1CTEVSX18NCj4gI2luY2x1ZGUgPGFzbS9hbHRlcm5hdGl2
ZS1hc20uaD4NCj4gI2Vsc2UNCj4gDQo+IEBAIC0xNzUsNiArMTc1LDYgQEAgZXh0ZXJuIHZvaWQg
YWx0ZXJuYXRpdmVfaW5zdHJ1Y3Rpb25zKHZvaWQpOw0KPiAvKiBVc2UgdGhpcyBtYWNybyhzKSBp
ZiB5b3UgbmVlZCBtb3JlIHRoYW4gb25lIG91dHB1dCBwYXJhbWV0ZXIuICovDQo+ICNkZWZpbmUg
QVNNX09VVFBVVDIoYS4uLikgYQ0KPiANCj4gLSNlbmRpZiAvKiAgIV9fQVNTRU1CTFlfXyAgKi8N
Cj4gKyNlbmRpZiAvKiAgIV9fQVNTRU1CTEVSX18gICovDQo+IA0KPiAjZW5kaWYgLyogX19YODZf
QUxURVJOQVRJVkVfSF9fICovDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9h
c20vYXNtX2RlZm5zLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXNtX2RlZm5zLmgNCj4g
aW5kZXggNzJhMDA4MmQzMTlkLi45Yjc1YzljYWUzZDQgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9hc21fZGVmbnMuaA0KPiArKysgYi94ZW4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vYXNtX2RlZm5zLmgNCj4gQEAgLTEyLDcgKzEyLDcgQEANCj4gI2luY2x1ZGUgPGFzbS9j
cHVmZWF0dXJlLmg+DQo+ICNpbmNsdWRlIDxhc20vYWx0ZXJuYXRpdmUuaD4NCj4gDQo+IC0jaWZk
ZWYgX19BU1NFTUJMWV9fDQo+ICsjaWZkZWYgX19BU1NFTUJMRVJfXw0KPiAjaW5jbHVkZSA8eGVu
L2xpbmthZ2UuaD4NCj4gI2luY2x1ZGUgPGFzbS9hc20tZGVmbnMuaD4NCj4gI2lmbmRlZiBDT05G
SUdfSU5ESVJFQ1RfVEhVTksNCj4gQEAgLTI0LDcgKzI0LDcgQEAgYXNtICggIlx0LmVxdSBDT05G
SUdfSU5ESVJFQ1RfVEhVTkssICINCj4gICAgICAgX19zdHJpbmdpZnkoSVNfRU5BQkxFRChDT05G
SUdfSU5ESVJFQ1RfVEhVTkspKSApOw0KPiAjZW5kaWYNCj4gDQo+IC0jaWZuZGVmIF9fQVNTRU1C
TFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxFUl9fDQo+IA0KPiAvKg0KPiAgKiBUaGlzIG91dHB1
dCBjb25zdHJhaW50IHNob3VsZCBiZSB1c2VkIGZvciBhbnkgaW5saW5lIGFzbSB3aGljaCBoYXMg
YSAiY2FsbCINCj4gQEAgLTU3LDE0ICs1NywxNCBAQCByZWdpc3RlciB1bnNpZ25lZCBsb25nIGN1
cnJlbnRfc3RhY2tfcG9pbnRlciBhc20oInJzcCIpOw0KPiAjZGVmaW5lIEFTU0VSVF9JTlRFUlJV
UFRTX0RJU0FCTEVEIFwNCj4gICAgIEFTU0VSVF9JTlRFUlJVUFRfU1RBVFVTKHosICJJTlRFUlJV
UFRTIERJU0FCTEVEIikNCj4gDQo+IC0jaWZkZWYgX19BU1NFTUJMWV9fDQo+ICsjaWZkZWYgX19B
U1NFTUJMRVJfXw0KPiAjIGRlZmluZSBfQVNNX0VYKHApIHAtLg0KPiAjZWxzZQ0KPiAjIGRlZmlu
ZSBfQVNNX0VYKHApICNwICItLiINCj4gI2VuZGlmDQo+IA0KPiAvKiBFeGNlcHRpb24gdGFibGUg
ZW50cnkgKi8NCj4gLSNpZmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZmRlZiBfX0FTU0VNQkxFUl9f
DQo+ICMgZGVmaW5lIF9BU01fX0VYVEFCTEUoc2Z4LCBmcm9tLCB0bykgICAgICAgICAgICAgXA0K
PiAgICAgLnNlY3Rpb24gLmV4X3RhYmxlIyNzZngsICJhIiA7ICAgICAgICAgICAgICAgIFwNCj4g
ICAgIC5iYWxpZ24gNCA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+IEBA
IC04MSw3ICs4MSw3IEBAIHJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgY3VycmVudF9zdGFja19wb2lu
dGVyIGFzbSgicnNwIik7DQo+ICNkZWZpbmUgX0FTTV9FWFRBQkxFKGZyb20sIHRvKSAgICAgX0FT
TV9fRVhUQUJMRSgsIGZyb20sIHRvKQ0KPiAjZGVmaW5lIF9BU01fUFJFX0VYVEFCTEUoZnJvbSwg
dG8pIF9BU01fX0VYVEFCTEUoLnByZSwgZnJvbSwgdG8pDQo+IA0KPiAtI2lmZGVmIF9fQVNTRU1C
TFlfXw0KPiArI2lmZGVmIF9fQVNTRU1CTEVSX18NCj4gDQo+IC5tYWNybyBCVUlMRF9CVUdfT04g
Y29uZHN0ciwgY29uZDp2YXJhcmcNCj4gICAgICAgICAuaWYgXGNvbmQNCj4gQEAgLTIyMSw3ICsy
MjEsNyBAQCBzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHN0YWModm9pZCkNCj4gfQ0KPiAjZW5k
aWYNCj4gDQo+IC0jaWZkZWYgX19BU1NFTUJMWV9fDQo+ICsjaWZkZWYgX19BU1NFTUJMRVJfXw0K
PiAubWFjcm8gU0FWRV9BTEwgY29tcGF0PTANCj4gICAgICAgICBhZGRxICAkLShVUkVHU19lcnJv
cl9jb2RlLVVSRUdTX3IxNSksICVyc3ANCj4gICAgICAgICBjbGQNCj4gZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9idWcuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9i
dWcuaA0KPiBpbmRleCBlNzQ4YjZjMmYyNjkuLjNhNGY0MWUzODAzMiAxMDA2NDQNCj4gLS0tIGEv
eGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2J1Zy5oDQo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9idWcuaA0KPiBAQCAtMTksMTIgKzE5LDEyIEBADQo+ICAqICAuLi4NCj4gICovDQo+
IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiAN
Cj4gI2RlZmluZSBCVUdfSU5TVFIgICAgICAgInVkMiINCj4gI2RlZmluZSBCVUdfQVNNX0NPTlNU
ICAgImMiDQo+IA0KPiAtI2Vsc2UgIC8qICFfX0FTU0VNQkxZX18gKi8NCj4gKyNlbHNlICAvKiAh
X19BU1NFTUJMRVJfXyAqLw0KPiANCj4gLyoNCj4gICogQ29uc3RydWN0IGEgYnVnZnJhbWUsIHN1
aXRhYmxlIGZvciB1c2luZyBpbiBhc3NlbWJseSBjb2RlLiAgU2hvdWxkIGFsd2F5cw0KPiBAQCAt
NjYsNiArNjYsNiBAQA0KPiAjZGVmaW5lIEFTU0VSVF9GQUlMRUQobXNnKSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAgICAgIEJVR19GUkFNRSBCVUdGUkFNRV9hc3Nl
cnQsIF9fTElORV9fLCBfX0ZJTEVfXywgMSwgbXNnDQo+IA0KPiAtI2VuZGlmIC8qICFfX0FTU0VN
QkxZX18gKi8NCj4gKyNlbmRpZiAvKiAhX19BU1NFTUJMRVJfXyAqLw0KPiANCj4gI2VuZGlmIC8q
IF9fWDg2X0JVR19IX18gKi8NCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9jYWNoZS5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NhY2hlLmgNCj4gaW5kZXggZjE1
ZDEwZGM3ZjJkLi5lMTdhMTBiNDllZTUgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9jYWNoZS5oDQo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jYWNoZS5o
DQo+IEBAIC05LDcgKzksNyBAQA0KPiAjZGVmaW5lIEwxX0NBQ0hFX1NISUZUIChDT05GSUdfWDg2
X0wxX0NBQ0hFX1NISUZUKQ0KPiAjZGVmaW5lIEwxX0NBQ0hFX0JZVEVTICgxIDw8IEwxX0NBQ0hF
X1NISUZUKQ0KPiANCj4gLSNpZm5kZWYgX19BU1NFTUJMWV9fDQo+ICsjaWZuZGVmIF9fQVNTRU1C
TEVSX18NCj4gDQo+IHZvaWQgY2FjaGVfZmx1c2goY29uc3Qgdm9pZCAqYWRkciwgdW5zaWduZWQg
aW50IHNpemUpOw0KPiB2b2lkIGNhY2hlX3dyaXRlYmFjayhjb25zdCB2b2lkICphZGRyLCB1bnNp
Z25lZCBpbnQgc2l6ZSk7DQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20v
Y29uZmlnLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY29uZmlnLmgNCj4gaW5kZXggMzU1
M2JmODlkYzk3Li4xNTYzNjk2OTU0NDIgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9jb25maWcuaA0KPiArKysgYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY29uZmln
LmgNCj4gQEAgLTMyLDcgKzMyLDcgQEANCj4gI2RlZmluZSBPUFRfQ09OU09MRV9TVFIgInZnYSIN
Cj4gDQo+IC8qIExpbmthZ2UgZm9yIHg4NiAqLw0KPiAtI2lmZGVmIF9fQVNTRU1CTFlfXw0KPiAr
I2lmZGVmIF9fQVNTRU1CTEVSX18NCj4gI2RlZmluZSBDT0RFX0ZJTEwgMHg5MA0KPiAjZW5kaWYN
Cj4gDQo+IEBAIC0xOTUsNyArMTk1LDcgQEANCj4gI2VuZGlmDQo+ICNkZWZpbmUgRElSRUNUTUFQ
X1ZJUlRfRU5EICAgICAgKERJUkVDVE1BUF9WSVJUX1NUQVJUICsgRElSRUNUTUFQX1NJWkUpDQo+
IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiAN
Cj4gI2lmZGVmIENPTkZJR19QVjMyDQo+IA0KPiBAQCAtMjM3LDcgKzIzNyw3IEBADQo+ICNkZWZp
bmUgX19PUyAgICAgICAgICAicSIgIC8qIE9wZXJhdGlvbiBTdWZmaXggKi8NCj4gI2RlZmluZSBf
X09QICAgICAgICAgICJyIiAgLyogT3BlcmFuZCBQcmVmaXggKi8NCj4gDQo+IC0jaWZuZGVmIF9f
QVNTRU1CTFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxFUl9fDQo+IGV4dGVybiB1bnNpZ25lZCBs
b25nIHhlbl9waHlzX3N0YXJ0Ow0KPiAjZW5kaWYNCj4gDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJj
aC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L2NwdWZlYXR1cmUuaA0KPiBpbmRleCAwYjc2NGI5ZmI5N2IuLjI4YzQwODVjYzc4NiAxMDA2NDQN
Cj4gLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaA0KPiArKysgYi94
ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oDQo+IEBAIC0xMCw3ICsxMCw3IEBA
DQo+ICNpbmNsdWRlIDx4ZW4vY29uc3QuaD4NCj4gI2luY2x1ZGUgPHhlbi9tYWNyb3MuaD4NCj4g
DQo+IC0jaWZuZGVmIF9fQVNTRU1CTFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxFUl9fDQo+ICNp
bmNsdWRlIDxhc20vY3B1aWQuaD4NCj4gI2Vsc2UNCj4gI2luY2x1ZGUgPGFzbS9jcHVmZWF0dXJl
c2V0Lmg+DQo+IEBAIC0zOCw3ICszOCw3IEBADQo+ICNkZWZpbmUgVkZNX0ZBTUlMWSh2Zm0pIE1B
U0tfRVhUUih2Zm0sIFZGTV9GQU1JTFlfTUFTSykNCj4gI2RlZmluZSBWRk1fVkVORE9SKHZmbSkg
TUFTS19FWFRSKHZmbSwgVkZNX1ZFTkRPUl9NQVNLKQ0KPiANCj4gLSNpZm5kZWYgX19BU1NFTUJM
WV9fDQo+ICsjaWZuZGVmIF9fQVNTRU1CTEVSX18NCj4gDQo+IHN0cnVjdCBjcHVpbmZvX3g4NiB7
DQo+ICAgICAvKiBUT0RPOiBQaGFzZSBvdXQgdGhlIHg4NiBwcmVmaXhlZCBuYW1lcy4gKi8NCj4g
QEAgLTM0OSw3ICszNDksNyBAQCBzdHJ1Y3QgY3B1aWQ0X2luZm8gew0KPiB9Ow0KPiANCj4gaW50
IGNwdWlkNF9jYWNoZV9sb29rdXAoaW50IGluZGV4LCBzdHJ1Y3QgY3B1aWQ0X2luZm8gKnRoaXNf
bGVhZik7DQo+IC0jZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLw0KPiArI2VuZGlmIC8qICFfX0FT
U0VNQkxFUl9fICovDQo+IA0KPiAjZW5kaWYgLyogX19BU01fSTM4Nl9DUFVGRUFUVVJFX0ggKi8N
Cj4gDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZXNl
dC5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmVzZXQuaA0KPiBpbmRleCBh
OWM1MWJjNTE0YTguLmUxMmI1NGFiMjIyMyAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL2NwdWZlYXR1cmVzZXQuaA0KPiArKysgYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9h
c20vY3B1ZmVhdHVyZXNldC5oDQo+IEBAIC0xLDcgKzEsNyBAQA0KPiAjaWZuZGVmIF9fWEVOX1g4
Nl9DUFVGRUFUVVJFU0VUX0hfXw0KPiAjZGVmaW5lIF9fWEVOX1g4Nl9DUFVGRUFUVVJFU0VUX0hf
Xw0KPiANCj4gLSNpZm5kZWYgX19BU1NFTUJMWV9fDQo+ICsjaWZuZGVmIF9fQVNTRU1CTEVSX18N
Cj4gDQo+ICNpbmNsdWRlIDx4ZW4vc3RyaW5naWZ5Lmg+DQo+IA0KPiBAQCAtMTcsMTMgKzE3LDEz
IEBAIGVudW0gew0KPiAjaW5jbHVkZSA8cHVibGljL2FyY2gteDg2L2NwdWZlYXR1cmVzZXQuaD4N
Cj4gI2luY2x1ZGUgPGFzbS9jcHVmZWF0dXJlcy5oPg0KPiANCj4gLSNlbHNlIC8qICFfX0FTU0VN
QkxZX18gKi8NCj4gKyNlbHNlIC8qICFfX0FTU0VNQkxFUl9fICovDQo+IA0KPiAjZGVmaW5lIFhF
Tl9DUFVGRUFUVVJFKG5hbWUsIHZhbHVlKSAuZXF1IFg4Nl9GRUFUVVJFXyMjbmFtZSwgdmFsdWUN
Cj4gI2luY2x1ZGUgPHB1YmxpYy9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0Lmg+DQo+ICNpbmNsdWRl
IDxhc20vY3B1ZmVhdHVyZXMuaD4NCj4gDQo+IC0jZW5kaWYgLyogX19BU1NFTUJMWV9fICovDQo+
ICsjZW5kaWYgLyogX19BU1NFTUJMRVJfXyAqLw0KPiANCj4gI3VuZGVmIFhFTl9DUFVGRUFUVVJF
DQo+IA0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2Rlc2MuaCBiL3hl
bi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9kZXNjLmgNCj4gaW5kZXggODVmYWU2YjJmOWFlLi5kY2Jk
YWMzZmY3ZDQgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9kZXNjLmgN
Cj4gKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2Rlc2MuaA0KPiBAQCAtNDIsNyArNDIs
NyBAQA0KPiAjZGVmaW5lIExEVF9TRUxFQ1RPUiAgICAgKExEVF9FTlRSWSA8PCAzKQ0KPiAjZGVm
aW5lIFBFUl9DUFVfU0VMRUNUT1IgKFBFUl9DUFVfR0RUX0VOVFJZIDw8IDMpDQo+IA0KPiAtI2lm
bmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiANCj4gI2RlZmlu
ZSBHVUVTVF9LRVJORUxfUlBMKGQpIChpc19wdl8zMmJpdF9kb21haW4oZCkgPyAxIDogMykNCj4g
DQo+IEBAIC03Niw3ICs3Niw3IEBADQo+ICAgICAgICAgICAgICAgICBGTEFUX0NPTVBBVF9LRVJO
RUxfQ1MpKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICAgICAoKHNlbCkg
JiA0KSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTERUIHNlZz8gKi8NCj4gDQo+
IC0jZW5kaWYgLyogX19BU1NFTUJMWV9fICovDQo+ICsjZW5kaWYgLyogX19BU1NFTUJMRVJfXyAq
Lw0KPiANCj4gLyogVGhlc2UgYXJlIGJpdG1hc2tzIGZvciB0aGUgaGlnaCAzMiBiaXRzIG9mIGEg
ZGVzY3JpcHRvciB0YWJsZSBlbnRyeS4gKi8NCj4gI2RlZmluZSBfU0VHTUVOVF9UWVBFICAgICgx
NTw8IDgpDQo+IEBAIC05Miw3ICs5Miw3IEBADQo+ICNkZWZpbmUgX1NFR01FTlRfREIgICAgICAo
IDE8PDIyKSAvKiAxNi0gb3IgMzItYml0IHNlZ21lbnQgKi8NCj4gI2RlZmluZSBfU0VHTUVOVF9H
ICAgICAgICggMTw8MjMpIC8qIEdyYW51bGFyaXR5ICovDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VN
QkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiANCj4gLyogU3lzdGVtIERlc2NyaXB0
b3IgdHlwZXMgZm9yIEdEVCBhbmQgSURUIGVudHJpZXMuICovDQo+ICNkZWZpbmUgU1lTX0RFU0Nf
dHNzMTZfYXZhaWwgIDENCj4gQEAgLTE2Miw2ICsxNjIsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQg
bHRyKHVuc2lnbmVkIGludCBzZWwpDQo+ICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoICJsdHIg
JXcwIiA6OiAicm0iIChzZWwpIDogIm1lbW9yeSIgKTsNCj4gfQ0KPiANCj4gLSNlbmRpZiAvKiAh
X19BU1NFTUJMWV9fICovDQo+ICsjZW5kaWYgLyogIV9fQVNTRU1CTEVSX18gKi8NCj4gDQo+ICNl
bmRpZiAvKiBfX0FSQ0hfREVTQ19IICovDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5j
bHVkZS9hc20vZWRkLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vZWRkLmgNCj4gaW5kZXgg
YWZhYTIzNzMyYTM4Li5lYmQ0NjE3MWMxOTUgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9lZGQuaA0KPiArKysgYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vZWRkLmgN
Cj4gQEAgLTIzLDcgKzIzLDcgQEANCj4gI2lmbmRlZiBfX1hFTl9FRERfSF9fDQo+ICNkZWZpbmUg
X19YRU5fRUREX0hfXw0KPiANCj4gLSNpZm5kZWYgX19BU1NFTUJMWV9fDQo+ICsjaWZuZGVmIF9f
QVNTRU1CTEVSX18NCj4gDQo+IHN0cnVjdCBfX3BhY2tlZCBlZGRfaW5mbyB7DQo+ICAgICAvKiBJ
bnQxMywgRm40ODogQ2hlY2sgRXh0ZW5zaW9ucyBQcmVzZW50LiAqLw0KPiBAQCAtMTQ5LDcgKzE0
OSw3IEBAIGV4dGVybiB1OCBib290X21icl9zaWduYXR1cmVfbnI7DQo+IGV4dGVybiBzdHJ1Y3Qg
ZWRkX2luZm8gYm9vdF9lZGRfaW5mb1tdOw0KPiBleHRlcm4gdTggYm9vdF9lZGRfaW5mb19ucjsN
Cj4gDQo+IC0jZW5kaWYgLyogX19BU1NFTUJMWV9fICovDQo+ICsjZW5kaWYgLyogX19BU1NFTUJM
RVJfXyAqLw0KPiANCj4gLyogTWF4aW11bSBudW1iZXIgb2YgRUREIGluZm9ybWF0aW9uIHN0cnVj
dHVyZXMgYXQgYm9vdF9lZGRfaW5mby4gKi8NCj4gI2RlZmluZSBFRERfSU5GT19NQVggICAgICAg
ICAgICA2DQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vZml4bWFwLmgg
Yi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vZml4bWFwLmgNCj4gaW5kZXggNTE2ZWMzZmE2Yzk1
Li41YjllMWEyNDAxNTMgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9m
aXhtYXAuaA0KPiArKysgYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vZml4bWFwLmgNCj4gQEAg
LTE3LDcgKzE3LDcgQEANCj4gI2RlZmluZSBGSVhBRERSX1RPUCAoVk1BUF9WSVJUX0VORCAtIFBB
R0VfU0laRSkNCj4gI2RlZmluZSBGSVhBRERSX1hfVE9QIChYRU5fVklSVF9FTkQgLSBQQUdFX1NJ
WkUpDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJf
Xw0KPiANCj4gI2luY2x1ZGUgPHhlbi9hY3BpLmg+DQo+ICNpbmNsdWRlIDx4ZW4vcGZuLmg+DQo+
IEBAIC0xMTgsNiArMTE4LDYgQEAgZXh0ZXJuIHZvaWQgX19zZXRfZml4bWFwX3goDQo+ICNkZWZp
bmUgX19maXhfeF90b192aXJ0KHgpIChGSVhBRERSX1hfVE9QIC0gKCh4KSA8PCBQQUdFX1NISUZU
KSkNCj4gI2RlZmluZSBmaXhfeF90b192aXJ0KHgpICAgKCh2b2lkICopX19maXhfeF90b192aXJ0
KHgpKQ0KPiANCj4gLSNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8NCj4gKyNlbmRpZiAvKiBfX0FT
U0VNQkxFUl9fICovDQo+IA0KPiAjZW5kaWYNCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9sZHQuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9sZHQuaA0KPiBpbmRl
eCA1OGUzZTA0MmZjZjkuLmYwOGUwMjMwOTA2YSAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL2xkdC5oDQo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9sZHQu
aA0KPiBAQCAtMiw3ICsyLDcgQEANCj4gI2lmbmRlZiBfX0FSQ0hfTERUX0gNCj4gI2RlZmluZSBf
X0FSQ0hfTERUX0gNCj4gDQo+IC0jaWZuZGVmIF9fQVNTRU1CTFlfXw0KPiArI2lmbmRlZiBfX0FT
U0VNQkxFUl9fDQo+IA0KPiBzdGF0aWMgaW5saW5lIHZvaWQgbG9hZF9MRFQoc3RydWN0IHZjcHUg
KnYpDQo+IHsNCj4gQEAgLTIwLDcgKzIwLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGxvYWRfTERU
KHN0cnVjdCB2Y3B1ICp2KQ0KPiAgICAgfQ0KPiB9DQo+IA0KPiAtI2VuZGlmIC8qICFfX0FTU0VN
QkxZX18gKi8NCj4gKyNlbmRpZiAvKiAhX19BU1NFTUJMRVJfXyAqLw0KPiANCj4gI2VuZGlmDQo+
IA0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21hY2hpbmVfa2V4ZWMu
aCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tYWNoaW5lX2tleGVjLmgNCj4gaW5kZXggZDQ4
ODA4MThjMWQ5Li4zZTE4OWFjZjI0NjQgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9tYWNoaW5lX2tleGVjLmgNCj4gKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L21hY2hpbmVfa2V4ZWMuaA0KPiBAQCAtMyw3ICszLDcgQEANCj4gDQo+ICNkZWZpbmUgS0VYRUNf
UkVMT0NfRkxBR19DT01QQVQgMHgxIC8qIDMyLWJpdCBpbWFnZSAqLw0KPiANCj4gLSNpZm5kZWYg
X19BU1NFTUJMWV9fDQo+ICsjaWZuZGVmIF9fQVNTRU1CTEVSX18NCj4gDQo+IGV4dGVybiB2b2lk
IGtleGVjX3JlbG9jKHVuc2lnbmVkIGxvbmcgcmVsb2NfY29kZSwgdW5zaWduZWQgbG9uZyByZWxv
Y19wdCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBpbmRfbWFkZHIs
IHVuc2lnbmVkIGxvbmcgZW50cnlfbWFkZHIsDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv
aW5jbHVkZS9hc20vbm9wcy5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL25vcHMuaA0KPiBp
bmRleCAyNzI0YTk4NjJlNmIuLjMyYTA1Yzg4MTMzZiAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL25vcHMuaA0KPiArKysgYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20v
bm9wcy5oDQo+IEBAIC00Nyw3ICs0Nyw3IEBADQo+ICNkZWZpbmUgUDZfTk9QOCAweDBmLDB4MWYs
MHg4NCwweDAwLDAsMCwwLDANCj4gI2RlZmluZSBQNl9OT1A5IDB4NjYsMHgwZiwweDFmLDB4ODQs
MHgwMCwwLDAsMCwwDQo+IA0KPiAtI2lmZGVmIF9fQVNTRU1CTFlfXw0KPiArI2lmZGVmIF9fQVNT
RU1CTEVSX18NCj4gI2RlZmluZSBfQVNNX01LX05PUCh4KSAuYnl0ZSB4DQo+ICNlbHNlDQo+ICNk
ZWZpbmUgX0FTTV9NS19OT1AoeCkgIi5ieXRlICIgX19zdHJpbmdpZnkoeCkgIlxuIg0KPiBkaWZm
IC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2UuaCBiL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9wYWdlLmgNCj4gaW5kZXggNjVhMDFmMjQwMjEzLi4yM2UwNmQzOWFkODQgMTAw
NjQ0DQo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYWdlLmgNCj4gKysrIGIveGVu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2UuaA0KPiBAQCAtOCw3ICs4LDcgQEANCj4gI2RlZmlu
ZSBQQUdFX09SREVSXzJNICAgICAgIDkNCj4gI2RlZmluZSBQQUdFX09SREVSXzFHICAgICAgIDE4
DQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0K
PiAjIGluY2x1ZGUgPHhlbi90eXBlcy5oPg0KPiAjIGluY2x1ZGUgPHhlbi9saWIuaD4NCj4gI2Vu
ZGlmDQo+IEBAIC0xMDcsNyArMTA3LDcgQEANCj4gI2RlZmluZSBsNGVfZnJvbV9tZm4obSwgZikg
bDRlX2Zyb21fcGZuKG1mbl94KG0pLCBmKQ0KPiANCj4gLyogQ29uc3RydWN0IGEgcHRlIGZyb20g
YSBwaHlzaWNhbCBhZGRyZXNzIGFuZCBhY2Nlc3MgZmxhZ3MuICovDQo+IC0jaWZuZGVmIF9fQVNT
RU1CTFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxFUl9fDQo+IHN0YXRpYyBpbmxpbmUgbDFfcGdl
bnRyeV90IGwxZV9mcm9tX3BhZGRyKHBhZGRyX3QgcGEsIHVuc2lnbmVkIGludCBmbGFncykNCj4g
ew0KPiAgICAgQVNTRVJUKChwYSAmIH4oUEFERFJfTUFTSyAmIFBBR0VfTUFTSykpID09IDApOw0K
PiBAQCAtMTI4LDcgKzEyOCw3IEBAIHN0YXRpYyBpbmxpbmUgbDRfcGdlbnRyeV90IGw0ZV9mcm9t
X3BhZGRyKHBhZGRyX3QgcGEsIHVuc2lnbmVkIGludCBmbGFncykNCj4gICAgIEFTU0VSVCgocGEg
JiB+KFBBRERSX01BU0sgJiBQQUdFX01BU0spKSA9PSAwKTsNCj4gICAgIHJldHVybiAobDRfcGdl
bnRyeV90KSB7IHBhIHwgcHV0X3B0ZV9mbGFncyhmbGFncykgfTsNCj4gfQ0KPiAtI2VuZGlmIC8q
ICFfX0FTU0VNQkxZX18gKi8NCj4gKyNlbmRpZiAvKiAhX19BU1NFTUJMRVJfXyAqLw0KPiANCj4g
LyogQ29uc3RydWN0IGEgcHRlIGZyb20gaXRzIGRpcmVjdCBpbnRlZ2VyIHJlcHJlc2VudGF0aW9u
LiAqLw0KPiAjZGVmaW5lIGwxZV9mcm9tX2ludHB0ZShpbnRwdGUpICAgICgobDFfcGdlbnRyeV90
KSB7IChpbnRwdGVfdCkoaW50cHRlKSB9KQ0KPiBAQCAtMjA0LDcgKzIwNCw3IEBAIHN0YXRpYyBp
bmxpbmUgbDRfcGdlbnRyeV90IGw0ZV9mcm9tX3BhZGRyKHBhZGRyX3QgcGEsIHVuc2lnbmVkIGlu
dCBmbGFncykNCj4gI2RlZmluZSBwZ2VudHJ5X3B0cl90b19zbG90KF9wKSAgICBcDQo+ICAgICAo
KCh1bnNpZ25lZCBsb25nKShfcCkgJiB+UEFHRV9NQVNLKSAvIHNpemVvZigqKF9wKSkpDQo+IA0K
PiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiANCj4g
LyogUGFnZS10YWJsZSB0eXBlLiAqLw0KPiB0eXBlZGVmIHN0cnVjdCB7IHU2NCBwZm47IH0gcGFn
ZXRhYmxlX3Q7DQo+IEBAIC0yNzAsNyArMjcwLDcgQEAgdm9pZCBzY3J1Yl9wYWdlX2NvbGQodm9p
ZCAqcHRyKTsNCj4gI2RlZmluZSB2bWFwX3RvX21mbih2YSkgICAgIHhlbl9tYXBfdG9fbWZuKCh1
bnNpZ25lZCBsb25nKSh2YSkpDQo+ICNkZWZpbmUgdm1hcF90b19wYWdlKHZhKSAgICBtZm5fdG9f
cGFnZSh2bWFwX3RvX21mbih2YSkpDQo+IA0KPiAtI2VuZGlmIC8qICFkZWZpbmVkKF9fQVNTRU1C
TFlfXykgKi8NCj4gKyNlbmRpZiAvKiAhZGVmaW5lZChfX0FTU0VNQkxFUl9fKSAqLw0KPiANCj4g
LyogV2hlcmUgdG8gZmluZCBlYWNoIGxldmVsIG9mIHRoZSBsaW5lYXIgbWFwcGluZyAqLw0KPiAj
ZGVmaW5lIF9fbGluZWFyX2wxX3RhYmxlICgobDFfcGdlbnRyeV90ICopKExJTkVBUl9QVF9WSVJU
X1NUQVJUKSkNCj4gQEAgLTI4Miw3ICsyODIsNyBAQCB2b2lkIHNjcnViX3BhZ2VfY29sZCh2b2lk
ICpwdHIpOw0KPiAgKChsNF9wZ2VudHJ5X3QgKikoX19saW5lYXJfbDNfdGFibGUgKyBsM19saW5l
YXJfb2Zmc2V0KExJTkVBUl9QVF9WSVJUX1NUQVJUKSkpDQo+IA0KPiANCj4gLSNpZm5kZWYgX19B
U1NFTUJMWV9fDQo+ICsjaWZuZGVmIF9fQVNTRU1CTEVSX18NCj4gZXh0ZXJuIHJvb3RfcGdlbnRy
eV90IGlkbGVfcGdfdGFibGVbUk9PVF9QQUdFVEFCTEVfRU5UUklFU107DQo+IGV4dGVybiBsMl9w
Z2VudHJ5X3QgICpjb21wYXRfaWRsZV9wZ190YWJsZV9sMjsNCj4gZXh0ZXJuIHVuc2lnbmVkIGlu
dCAgIG0ycF9jb21wYXRfdnN0YXJ0Ow0KPiBAQCAtMjkzLDcgKzI5Myw3IEBAIGV4dGVybiBsMl9w
Z2VudHJ5X3QgbDJfZGlyZWN0bWFwWzQqTDJfUEFHRVRBQkxFX0VOVFJJRVNdOw0KPiBleHRlcm4g
bDFfcGdlbnRyeV90IGwxX2ZpeG1hcFtMMV9QQUdFVEFCTEVfRU5UUklFU107DQo+IHZvaWQgcGFn
aW5nX2luaXQodm9pZCk7DQo+IHZvaWQgZWZpX3VwZGF0ZV9sNF9wZ3RhYmxlKHVuc2lnbmVkIGlu
dCBsNGlkeCwgbDRfcGdlbnRyeV90IGw0ZSk7DQo+IC0jZW5kaWYgLyogIWRlZmluZWQoX19BU1NF
TUJMWV9fKSAqLw0KPiArI2VuZGlmIC8qICFkZWZpbmVkKF9fQVNTRU1CTEVSX18pICovDQo+IA0K
PiAjZGVmaW5lIF9QQUdFX05PTkUgICAgIF9BQygweDAwMCxVKQ0KPiAjZGVmaW5lIF9QQUdFX1BS
RVNFTlQgIF9BQygweDAwMSxVKQ0KPiBAQCAtMzEzLDcgKzMxMyw3IEBAIHZvaWQgZWZpX3VwZGF0
ZV9sNF9wZ3RhYmxlKHVuc2lnbmVkIGludCBsNGlkeCwgbDRfcGdlbnRyeV90IGw0ZSk7DQo+ICNk
ZWZpbmUgX1BBR0VfUFNFX1BBVCAgX0FDKDB4MTAwMCxVKQ0KPiAjZGVmaW5lIF9QQUdFX0FWQUlM
X0hJR0ggKF9BQygweDdmZiwgVSkgPDwgMTIpDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18N
Cj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiAvKiBEZXBlbmRlbmN5IG9uIE5YIGJlaW5nIGF2
YWlsYWJsZSBjYW4ndCBiZSBleHByZXNzZWQuICovDQo+ICNkZWZpbmUgX1BBR0VfTlggICAgICAg
KGNwdV9oYXNfbnggPyBfUEFHRV9OWF9CSVQgOiAwKQ0KPiAjZW5kaWYNCj4gQEAgLTM1NCw3ICsz
NTQsNyBAQCB2b2lkIGVmaV91cGRhdGVfbDRfcGd0YWJsZSh1bnNpZ25lZCBpbnQgbDRpZHgsIGw0
X3BnZW50cnlfdCBsNGUpOw0KPiANCj4gI2RlZmluZSBNQVBfU01BTExfUEFHRVMgX1BBR0VfQVZB
SUwwIC8qIGRvbid0IHVzZSBzdXBlcnBhZ2VzIG1hcHBpbmdzICovDQo+IA0KPiAtI2lmbmRlZiBf
X0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiANCj4gLyogQ29udmVydCBi
ZXR3ZWVuIFBBVC9QQ0QvUFdUIGVtYmVkZGVkIGluIFBURSBmbGFncyBhbmQgMy1iaXQgY2FjaGVh
dHRyLiAqLw0KPiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBwdGVfZmxhZ3NfdG9fY2FjaGVh
dHRyKHVuc2lnbmVkIGludCBmbGFncykNCj4gQEAgLTM5MSw3ICszOTEsNyBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgaW52YWxpZGF0ZV9pY2FjaGUodm9pZCkNCj4gICovDQo+IH0NCj4gDQo+IC0jZW5k
aWYgLyogIV9fQVNTRU1CTFlfXyAqLw0KPiArI2VuZGlmIC8qICFfX0FTU0VNQkxFUl9fICovDQo+
IA0KPiAjZW5kaWYgLyogX19YODZfUEFHRV9IX18gKi8NCj4gDQo+IGRpZmYgLS1naXQgYS94ZW4v
YXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9h
c20vcHJvY2Vzc29yLmgNCj4gaW5kZXggMmUwODdjNjI1NzcwLi5jZjYxNGJkOGM2NzggMTAwNjQ0
DQo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaA0KPiArKysgYi94
ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgNCj4gQEAgLTQsNyArNCw3IEBADQo+
ICNpZm5kZWYgX19BU01fWDg2X1BST0NFU1NPUl9IDQo+ICNkZWZpbmUgX19BU01fWDg2X1BST0NF
U1NPUl9IDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJM
RVJfXw0KPiAjaW5jbHVkZSA8eGVuL3R5cGVzLmg+DQo+ICNpbmNsdWRlIDx4ZW4vc21wLmg+DQo+
ICNpbmNsdWRlIDx4ZW4vcGVyY3B1Lmg+DQo+IEBAIC03NSw3ICs3NSw3IEBADQo+ICAgICAgICAg
ICAgICAgICAgICAgIChfQUMoWDg2X01UX1VDLCAgVUxMKSA8PCAweDMwKSB8IFwNCj4gICAgICAg
ICAgICAgICAgICAgICAgKF9BQyhYODZfTVRfVUMsICBVTEwpIDw8IDB4MzgpKQ0KPiANCj4gLSNp
Zm5kZWYgX19BU1NFTUJMWV9fDQo+ICsjaWZuZGVmIF9fQVNTRU1CTEVSX18NCj4gDQo+IHN0cnVj
dCBkb21haW47DQo+IHN0cnVjdCB2Y3B1Ow0KPiBAQCAtNDM1LDcgKzQzNSw3IEBAIGVudW0gYXBf
Ym9vdF9tZXRob2Qgew0KPiB9Ow0KPiBleHRlcm4gZW51bSBhcF9ib290X21ldGhvZCBhcF9ib290
X21ldGhvZDsNCj4gDQo+IC0jZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLw0KPiArI2VuZGlmIC8q
ICFfX0FTU0VNQkxFUl9fICovDQo+IA0KPiAjZW5kaWYgLyogX19BU01fWDg2X1BST0NFU1NPUl9I
ICovDQo+IA0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NtcC5oIGIv
eGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NtcC5oDQo+IGluZGV4IDYwZWI0YWMyNTRiYi4uM2Yx
NmU2MjY5NjE1IDEwMDY0NA0KPiAtLS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vc21wLmgN
Cj4gKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NtcC5oDQo+IEBAIC00LDcgKzQsNyBA
QA0KPiAvKg0KPiAgKiBXZSBuZWVkIHRoZSBBUElDIGRlZmluaXRpb25zIGF1dG9tYXRpY2FsbHkg
YXMgcGFydCBvZiAnc21wLmgnDQo+ICAqLw0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNp
Zm5kZWYgX19BU1NFTUJMRVJfXw0KPiAjaW5jbHVkZSA8eGVuL2JpdG9wcy5oPg0KPiAjaW5jbHVk
ZSA8eGVuL2tlcm5lbC5oPg0KPiAjaW5jbHVkZSA8eGVuL2NwdW1hc2suaD4NCj4gQEAgLTE0LDcg
KzE0LDcgQEANCj4gDQo+ICNkZWZpbmUgQkFEX0FQSUNJRCAgICgtMVUpDQo+ICNkZWZpbmUgSU5W
QUxJRF9DVUlEICh+MFUpICAgLyogQU1EIENvbXB1dGUgVW5pdCBJRCAqLw0KPiAtI2lmbmRlZiBf
X0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiANCj4gLyoNCj4gICogUHJp
dmF0ZSByb3V0aW5lcy9kYXRhDQo+IEBAIC04MCw2ICs4MCw2IEBAIGV4dGVybiBib29sIHVuYWNj
b3VudGVkX2NwdXM7DQo+IA0KPiB2b2lkICpjcHVfYWxsb2Nfc3RhY2sodW5zaWduZWQgaW50IGNw
dSk7DQo+IA0KPiAtI2VuZGlmIC8qICFfX0FTU0VNQkxZX18gKi8NCj4gKyNlbmRpZiAvKiAhX19B
U1NFTUJMRVJfXyAqLw0KPiANCj4gI2VuZGlmDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv
aW5jbHVkZS9hc20vc3BlY19jdHJsLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vc3BlY19j
dHJsLmgNCj4gaW5kZXggM2Q5MjkyOGY5NDM5Li41MDVlM2FiODYzZjAgMTAwNjQ0DQo+IC0tLSBh
L3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGVjX2N0cmwuaA0KPiArKysgYi94ZW4vYXJjaC94
ODYvaW5jbHVkZS9hc20vc3BlY19jdHJsLmgNCj4gQEAgLTQ1LDcgKzQ1LDcgQEANCj4gICovDQo+
ICNkZWZpbmUgU0NGX0RPTV9NQVNLIChTQ0ZfdmVydyB8IFNDRl9lbnRyeV9pYnBiIHwgU0NGX2Vu
dHJ5X2JoYikNCj4gDQo+IC0jaWZuZGVmIF9fQVNTRU1CTFlfXw0KPiArI2lmbmRlZiBfX0FTU0VN
QkxFUl9fDQo+IA0KPiAjaW5jbHVkZSA8YXNtL2FsdGVybmF0aXZlLmg+DQo+ICNpbmNsdWRlIDxh
c20vY3VycmVudC5oPg0KPiBAQCAtMjAxLDcgKzIwMSw3IEBAIHN0YXRpYyBhbHdheXNfaW5saW5l
IHZvaWQgc3BlY19jdHJsX2V4aXRfaWRsZShzdHJ1Y3QgY3B1X2luZm8gKmluZm8pDQo+ICAgICAg
Ki8NCj4gfQ0KPiANCj4gLSNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8NCj4gKyNlbmRpZiAvKiBf
X0FTU0VNQkxFUl9fICovDQo+ICNlbmRpZiAvKiAhX19YODZfU1BFQ19DVFJMX0hfXyAqLw0KPiAN
Cj4gLyoNCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGVjX2N0cmxf
YXNtLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vc3BlY19jdHJsX2FzbS5oDQo+IGluZGV4
IDcyOWE4MzA0MTFlYi4uYWJiNjRhZDJiN2Y5IDEwMDY0NA0KPiAtLS0gYS94ZW4vYXJjaC94ODYv
aW5jbHVkZS9hc20vc3BlY19jdHJsX2FzbS5oDQo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9zcGVjX2N0cmxfYXNtLmgNCj4gQEAgLTgsNyArOCw3IEBADQo+ICNpZm5kZWYgX19YODZf
U1BFQ19DVFJMX0FTTV9IX18NCj4gI2RlZmluZSBfX1g4Nl9TUEVDX0NUUkxfQVNNX0hfXw0KPiAN
Cj4gLSNpZmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZmRlZiBfX0FTU0VNQkxFUl9fDQo+ICNpbmNs
dWRlIDxhc20vbXNyLWluZGV4Lmg+DQo+ICNpbmNsdWRlIDxhc20vc3BlY19jdHJsLmg+DQo+IA0K
PiBAQCAtNTAwLDcgKzUwMCw3IEBADQo+IC5MXEBfc2tpcF9pc3RfZXhpdDoNCj4gLmVuZG0NCj4g
DQo+IC0jZW5kaWYgLyogX19BU1NFTUJMWV9fICovDQo+ICsjZW5kaWYgLyogX19BU1NFTUJMRVJf
XyAqLw0KPiAjZW5kaWYgLyogIV9fWDg2X1NQRUNfQ1RSTF9BU01fSF9fICovDQo+IA0KPiAvKg0K
PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RyYW1wb2xpbmUuaCBiL3hl
bi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90cmFtcG9saW5lLmgNCj4gaW5kZXggZGM1MzZlZmUxZjNk
Li5kZWVkMjY3OWQ5ZDUgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90
cmFtcG9saW5lLmgNCj4gKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RyYW1wb2xpbmUu
aA0KPiBAQCAtOTYsNyArOTYsNyBAQA0KPiAjZGVmaW5lIFRSQU1QT0xJTkVfSEVBUF9FTkQgICAg
IChUUkFNUE9MSU5FX1NJWkUgLSBQQUdFX1NJWkUpDQo+ICNkZWZpbmUgTUJJX1NQQUNFX01JTiAg
ICAgICAgICAgKDIgKiBQQUdFX1NJWkUpDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4g
KyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiANCj4gI2luY2x1ZGUgPHhlbi9jb21waWxlci5oPg0K
PiAjaW5jbHVkZSA8eGVuL3R5cGVzLmg+DQo+IEBAIC0xNjgsNSArMTY4LDUgQEAgZXh0ZXJuIHVp
bnQ4X3Qga2JkX3NoaWZ0X2ZsYWdzOw0KPiBleHRlcm4gdWludDE2X3QgYm9vdF9lZGlkX2NhcHM7
DQo+IGV4dGVybiB1aW50OF90IGJvb3RfZWRpZF9pbmZvWzEyOF07DQo+IA0KPiAtI2VuZGlmIC8q
ICFfX0FTU0VNQkxZX18gKi8NCj4gKyNlbmRpZiAvKiAhX19BU1NFTUJMRVJfXyAqLw0KPiAjZW5k
aWYgLyogWDg2X0FTTV9UUkFNUE9MSU5FX0ggKi8NCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS94ODZfNjQvcGFnZS5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3g4
Nl82NC9wYWdlLmgNCj4gaW5kZXggMjAxYjc5Zjk5ZTU3Li5jODBiNGIwMWFkMjYgMTAwNjQ0DQo+
IC0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfNjQvcGFnZS5oDQo+ICsrKyBiL3hl
bi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfNjQvcGFnZS5oDQo+IEBAIC05LDcgKzksNyBAQA0K
PiANCj4gI2RlZmluZSBpc19jYW5vbmljYWxfYWRkcmVzcyh4KSAoKChsb25nKSh4KSA+PiA0Nykg
PT0gKChsb25nKSh4KSA+PiA2MykpDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNp
Zm5kZWYgX19BU1NFTUJMRVJfXw0KPiANCj4gc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGNh
bm9uaWNhbGlzZV9hZGRyKHVuc2lnbmVkIGxvbmcgYWRkcikNCj4gew0KPiBAQCAtNjgsNyArNjgs
NyBAQCB0eXBlZGVmIHN0cnVjdCB7IGludHB0ZV90IGwzOyB9IGwzX3BnZW50cnlfdDsNCj4gdHlw
ZWRlZiBzdHJ1Y3QgeyBpbnRwdGVfdCBsNDsgfSBsNF9wZ2VudHJ5X3Q7DQo+IHR5cGVkZWYgbDRf
cGdlbnRyeV90IHJvb3RfcGdlbnRyeV90Ow0KPiANCj4gLSNlbmRpZiAvKiAhX19BU1NFTUJMWV9f
ICovDQo+ICsjZW5kaWYgLyogIV9fQVNTRU1CTEVSX18gKi8NCj4gDQo+IC8qIEdpdmVuIGEgdmly
dHVhbCBhZGRyZXNzLCBnZXQgYW4gZW50cnkgb2Zmc2V0IGludG8gYSBsaW5lYXIgcGFnZSB0YWJs
ZS4gKi8NCj4gI2RlZmluZSBsMV9saW5lYXJfb2Zmc2V0KF9hKSAoKChfYSkgJiBWQUREUl9NQVNL
KSA+PiBMMV9QQUdFVEFCTEVfU0hJRlQpDQo+IEBAIC0xMDAsNyArMTAwLDcgQEAgdHlwZWRlZiBs
NF9wZ2VudHJ5X3Qgcm9vdF9wZ2VudHJ5X3Q7DQo+ICAqLw0KPiANCj4gLyogRXh0cmFjdCBmbGFn
cyBpbnRvIDI0LWJpdCBpbnRlZ2VyLCBvciB0dXJuIDI0LWJpdCBmbGFncyBpbnRvIGEgcHRlIG1h
c2suICovDQo+IC0jaWZuZGVmIF9fQVNTRU1CTFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxFUl9f
DQo+IHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGdldF9wdGVfZmxhZ3MoaW50cHRlX3QgeCkN
Cj4gew0KPiAgICAgcmV0dXJuICgoeCA+PiA0MCkgJiB+MHhmZmYpIHwgKHggJiAweGZmZik7DQo+
IGRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2VmaS9ib290LmMgYi94ZW4vY29tbW9uL2VmaS9ib290
LmMNCj4gaW5kZXggZDdmNGQwY2IyMjAwLi44YWRiYTdiZDRkYTggMTAwNjQ0DQo+IC0tLSBhL3hl
bi9jb21tb24vZWZpL2Jvb3QuYw0KPiArKysgYi94ZW4vY29tbW9uL2VmaS9ib290LmMNCj4gQEAg
LTI1LDExICsyNSwxMSBAQA0KPiAvKg0KPiAgKiBLZWVwIHRoaXMgYXJjaC1zcGVjaWZpYyBtb2Rp
ZmllZCBpbmNsdWRlIGluIHRoZSBjb21tb24gZmlsZSwgYXMgbW92aW5nDQo+ICAqIGl0IHRvIHRo
ZSBhcmNoIHNwZWNpZmljIGluY2x1ZGUgZmlsZSB3b3VsZCBvYnNjdXJlIHRoYXQgc3BlY2lhbCBj
YXJlIGlzDQo+IC0gKiB0YWtlbiB0byBpbmNsdWRlIGl0IHdpdGggX19BU1NFTUJMWV9fIGRlZmlu
ZWQuDQo+ICsgKiB0YWtlbiB0byBpbmNsdWRlIGl0IHdpdGggX19BU1NFTUJMRVJfXyBkZWZpbmVk
Lg0KPiAgKi8NCj4gLSNkZWZpbmUgX19BU1NFTUJMWV9fIC8qIGF2b2lkIHB1bGxpbmcgaW4gQUNQ
SSBzdHVmZiAoY29uZmxpY3RzIHdpdGggRUZJKSAqLw0KPiArI2RlZmluZSBfX0FTU0VNQkxFUl9f
IC8qIGF2b2lkIHB1bGxpbmcgaW4gQUNQSSBzdHVmZiAoY29uZmxpY3RzIHdpdGggRUZJKSAqLw0K
PiAjaW5jbHVkZSA8YXNtL2ZpeG1hcC5oPg0KPiAtI3VuZGVmIF9fQVNTRU1CTFlfXw0KPiArI3Vu
ZGVmIF9fQVNTRU1CTEVSX18NCj4gI2VuZGlmDQo+IA0KPiAjZGVmaW5lIEVGSV9SRVZJU0lPTiht
YWpvciwgbWlub3IpICgoKG1ham9yKSA8PCAxNikgfCAobWlub3IpKQ0KPiBkaWZmIC0tZ2l0IGEv
eGVuL2luY2x1ZGUvZWZpL3BlLmggYi94ZW4vaW5jbHVkZS9lZmkvcGUuaA0KPiBpbmRleCA2NGUw
NDdlODhiNGQuLjZiMzQ1OGU4ODhiNyAxMDA2NDQNCj4gLS0tIGEveGVuL2luY2x1ZGUvZWZpL3Bl
LmgNCj4gKysrIGIveGVuL2luY2x1ZGUvZWZpL3BlLmgNCj4gQEAgLTEzNiw3ICsxMzYsNyBAQA0K
PiAjZGVmaW5lIElNQUdFX0RFQlVHX1RZUEVfQ09ERVZJRVcgICAgICAgICAgICAgIDINCj4gI2Rl
ZmluZSBJTUFHRV9ERUJVR19UWVBFX0VYX0RMTENIQVJBQ1RFUklTVElDUyAyMA0KPiANCj4gLSNp
Zm5kZWYgX19BU1NFTUJMWV9fDQo+ICsjaWZuZGVmIF9fQVNTRU1CTEVSX18NCj4gDQo+IHN0cnVj
dCBtel9oZHIgew0KPiAgICAgdWludDE2X3QgbWFnaWM7ICAgICAgICAgICAgICAvKiBNWl9NQUdJ
QyAqLw0KPiBAQCAtMjg2LDYgKzI4Niw2IEBAIHN0cnVjdCBzZWN0aW9uX2hlYWRlciB7DQo+ICAg
ICB1aW50MzJfdCBmbGFnczsNCj4gfTsNCj4gDQo+IC0jZW5kaWYgLyogX19BU1NFTUJMWV9fICov
DQo+ICsjZW5kaWYgLyogX19BU1NFTUJMRVJfXyAqLw0KPiANCj4gI2VuZGlmIC8qIEVGSV9fUEVf
SCAqLw0KPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gtYXJtLmggYi94ZW4v
aW5jbHVkZS9wdWJsaWMvYXJjaC1hcm0uaA0KPiBpbmRleCBiMzEzMjRmOGQ0MDkuLmNkNTYzY2Y3
MDY4NCAxMDA2NDQNCj4gLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gtYXJtLmgNCj4gKysr
IGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gtYXJtLmgNCj4gQEAgLTE4NCw3ICsxODQsNyBAQA0K
PiAjZGVmaW5lIHVpbnQ2NF9hbGlnbmVkX3QgdWludDY0X3QgX19hdHRyaWJ1dGVfXygoX19hbGln
bmVkX18oOCkpKQ0KPiAjZW5kaWYNCj4gDQo+IC0jaWZuZGVmIF9fQVNTRU1CTFlfXw0KPiArI2lm
bmRlZiBfX0FTU0VNQkxFUl9fDQo+ICNkZWZpbmUgX19fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo
bmFtZSwgdHlwZSkgICAgICAgICAgICAgICAgICBcDQo+ICAgICB0eXBlZGVmIHVuaW9uIHsgdHlw
ZSAqcDsgdW5zaWduZWQgbG9uZyBxOyB9ICAgICAgICAgICAgICAgICBcDQo+ICAgICAgICAgX19n
dWVzdF9oYW5kbGVfICMjIG5hbWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+
IEBAIC01NDIsNyArNTQyLDcgQEAgdHlwZWRlZiB1aW50NjRfdCB4ZW5fY2FsbGJhY2tfdDsNCj4g
DQo+ICNlbmRpZg0KPiANCj4gLSNpZm5kZWYgX19BU1NFTUJMWV9fDQo+ICsjaWZuZGVmIF9fQVNT
RU1CTEVSX18NCj4gLyogU3R1YiBkZWZpbml0aW9uIG9mIFBNVSBzdHJ1Y3R1cmUgKi8NCj4gdHlw
ZWRlZiBzdHJ1Y3QgeGVuX3BtdV9hcmNoIHsgdWludDhfdCBkdW1teTsgfSB4ZW5fcG11X2FyY2hf
dDsNCj4gI2VuZGlmDQo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1wcGMu
aCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXBwYy5oDQo+IGluZGV4IDI2NGUyMGI4OWVhNC4u
YjVlMWE5NDBhNTc1IDEwMDY0NA0KPiAtLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1wcGMu
aA0KPiArKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1wcGMuaA0KPiBAQCAtMTYsNyArMTYs
NyBAQA0KPiAjZGVmaW5lIHVpbnQ2NF9hbGlnbmVkX3QgdWludDY0X3QgX19hdHRyaWJ1dGVfXygo
X19hbGlnbmVkX18oOCkpKQ0KPiAjZW5kaWYNCj4gDQo+IC0jaWZuZGVmIF9fQVNTRU1CTFlfXw0K
PiArI2lmbmRlZiBfX0FTU0VNQkxFUl9fDQo+ICNkZWZpbmUgX19fREVGSU5FX1hFTl9HVUVTVF9I
QU5ETEUobmFtZSwgdHlwZSkgICAgICAgICAgICAgICAgICBcDQo+ICAgICB0eXBlZGVmIHVuaW9u
IHsgdHlwZSAqcDsgdW5zaWduZWQgbG9uZyBxOyB9ICAgICAgICAgICAgICAgICBcDQo+ICAgICAg
ICAgX19ndWVzdF9oYW5kbGVfICMjIG5hbWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQo+IEBAIC0xMDIsNiArMTAyLDYgQEAgc3RydWN0IHhlbl9hcmNoX2RvbWFpbmNvbmZpZyB7
DQo+IA0KPiB0eXBlZGVmIHN0cnVjdCB4ZW5fcG11X2FyY2ggeyB1aW50OF90IGR1bW15OyB9IHhl
bl9wbXVfYXJjaF90Ow0KPiANCj4gLSNlbmRpZiAvKiAhX19BU1NFTUJMWV9fICovDQo+ICsjZW5k
aWYgLyogIV9fQVNTRU1CTEVSX18gKi8NCj4gDQo+ICNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfQVJD
SF9QUENfSF9fICovDQo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1yaXNj
di5oIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gtcmlzY3YuaA0KPiBpbmRleCAxNjgyNjNiOTIw
NzQuLjM2MGQ4ZTY4NzFiYSAxMDA2NDQNCj4gLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gt
cmlzY3YuaA0KPiArKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1yaXNjdi5oDQo+IEBAIC0x
Miw3ICsxMiw3IEBADQo+ICNkZWZpbmUgdWludDY0X2FsaWduZWRfdCB1aW50NjRfdCBfX2F0dHJp
YnV0ZV9fKChfX2FsaWduZWRfXyg4KSkpDQo+ICNlbmRpZg0KPiANCj4gLSNpZm5kZWYgX19BU1NF
TUJMWV9fDQo+ICsjaWZuZGVmIF9fQVNTRU1CTEVSX18NCj4gI2RlZmluZSBfX19ERUZJTkVfWEVO
X0dVRVNUX0hBTkRMRShuYW1lLCB0eXBlKSAgICAgICAgICAgICAgICAgIFwNCj4gICAgIHR5cGVk
ZWYgdW5pb24geyB0eXBlICpwOyB1bnNpZ25lZCBsb25nIHE7IH0gICAgICAgICAgICAgICAgIFwN
Cj4gICAgICAgICBfX2d1ZXN0X2hhbmRsZV8gIyMgbmFtZTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni94
ZW4tbWNhLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYveGVuLW1jYS5oDQo+IGluZGV4
IGJiMWIxMmYxNGZhZS4uMzBkMThiNmFkNzY3IDEwMDY0NA0KPiAtLS0gYS94ZW4vaW5jbHVkZS9w
dWJsaWMvYXJjaC14ODYveGVuLW1jYS5oDQo+ICsrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNo
LXg4Ni94ZW4tbWNhLmgNCj4gQEAgLTc0LDcgKzc0LDcgQEANCj4gLyogQXBwbGljYWJsZSB0byBh
bGwgbWNfdmNwdWlkIGZpZWxkcyBiZWxvdy4gKi8NCj4gI2RlZmluZSBYRU5fTUNfVkNQVUlEX0lO
VkFMSUQgMHhmZmZmDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19B
U1NFTUJMRVJfXw0KPiANCj4gI2RlZmluZSBWSVJRX01DQSBWSVJRX0FSQ0hfMCAvKiBHLiAoRE9N
MCkgTWFjaGluZSBDaGVjayBBcmNoaXRlY3R1cmUgKi8NCj4gDQo+IEBAIC00MzMsNiArNDMzLDYg
QEAgc3RydWN0IHhlbl9tYyB7DQo+IHR5cGVkZWYgc3RydWN0IHhlbl9tYyB4ZW5fbWNfdDsNCj4g
REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX21jX3QpOw0KPiANCj4gLSNlbmRpZiAvKiBfX0FT
U0VNQkxZX18gKi8NCj4gKyNlbmRpZiAvKiBfX0FTU0VNQkxFUl9fICovDQo+IA0KPiAjZW5kaWYg
LyogX19YRU5fUFVCTElDX0FSQ0hfWDg2X01DQV9IX18gKi8NCj4gZGlmZiAtLWdpdCBhL3hlbi9p
bmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni94ZW4teDg2XzMyLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMv
YXJjaC14ODYveGVuLXg4Nl8zMi5oDQo+IGluZGV4IDI1Y2M0NDcyODgzOC4uNmE1ZWRkZjBjM2I0
IDEwMDY0NA0KPiAtLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYveGVuLXg4Nl8zMi5o
DQo+ICsrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni94ZW4teDg2XzMyLmgNCj4gQEAg
LTkwLDcgKzkwLDcgQEANCj4gI2RlZmluZSBYRU5fR1VFU1RfSEFORExFXzY0KG5hbWUpIF9fWEVO
X0dVRVNUX0hBTkRMRV82NChuYW1lKQ0KPiAjZW5kaWYNCj4gDQo+IC0jaWZuZGVmIF9fQVNTRU1C
TFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxFUl9fDQo+IA0KPiAjaWYgZGVmaW5lZChYRU5fR0VO
RVJBVElOR19DT01QQVRfSEVBREVSUykNCj4gLyogbm90aGluZyAqLw0KPiBAQCAtMTcxLDcgKzE3
MSw3IEBAIHN0cnVjdCB4ZW5fY2FsbGJhY2sgew0KPiB9Ow0KPiB0eXBlZGVmIHN0cnVjdCB4ZW5f
Y2FsbGJhY2sgeGVuX2NhbGxiYWNrX3Q7DQo+IA0KPiAtI2VuZGlmIC8qICFfX0FTU0VNQkxZX18g
Ki8NCj4gKyNlbmRpZiAvKiAhX19BU1NFTUJMRVJfXyAqLw0KPiANCj4gI2VuZGlmIC8qIF9fWEVO
X1BVQkxJQ19BUkNIX1g4Nl9YRU5fWDg2XzMyX0hfXyAqLw0KPiANCj4gZGlmZiAtLWdpdCBhL3hl
bi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni94ZW4teDg2XzY0LmggYi94ZW4vaW5jbHVkZS9wdWJs
aWMvYXJjaC14ODYveGVuLXg4Nl82NC5oDQo+IGluZGV4IGVhNmI1NmFhM2JkOC4uNzVmMTIxYmUw
ZTE0IDEwMDY0NA0KPiAtLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYveGVuLXg4Nl82
NC5oDQo+ICsrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni94ZW4teDg2XzY0LmgNCj4g
QEAgLTEwNSw3ICsxMDUsNyBAQA0KPiAjZGVmaW5lIFZHQ0ZfaW5fc3lzY2FsbCAgKDE8PF9WR0NG
X2luX3N5c2NhbGwpDQo+ICNkZWZpbmUgVkdDRl9JTl9TWVNDQUxMICBWR0NGX2luX3N5c2NhbGwN
Cj4gDQo+IC0jaWZuZGVmIF9fQVNTRU1CTFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxFUl9fDQo+
IA0KPiBzdHJ1Y3QgaXJldF9jb250ZXh0IHsNCj4gICAgIC8qIFRvcCBvZiBzdGFjayAoJXJzcCBh
dCBwb2ludCBvZiBoeXBlcmNhbGwpLiAqLw0KPiBAQCAtMjE4LDcgKzIxOCw3IEBAIHR5cGVkZWYg
c3RydWN0IGFyY2hfdmNwdV9pbmZvIGFyY2hfdmNwdV9pbmZvX3Q7DQo+IA0KPiB0eXBlZGVmIHVu
c2lnbmVkIGxvbmcgeGVuX2NhbGxiYWNrX3Q7DQo+IA0KPiAtI2VuZGlmIC8qICFfX0FTU0VNQkxZ
X18gKi8NCj4gKyNlbmRpZiAvKiAhX19BU1NFTUJMRVJfXyAqLw0KPiANCj4gI2VuZGlmIC8qIF9f
WEVOX1BVQkxJQ19BUkNIX1g4Nl9YRU5fWDg2XzY0X0hfXyAqLw0KPiANCj4gZGlmZiAtLWdpdCBh
L3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni94ZW4uaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9h
cmNoLXg4Ni94ZW4uaA0KPiBpbmRleCBiOTlhNjkxNzA2ZjguLmE3YmYwNDZlZTAwNiAxMDA2NDQN
Cj4gLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L3hlbi5oDQo+ICsrKyBiL3hlbi9p
bmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni94ZW4uaA0KPiBAQCAtNTMsNyArNTMsNyBAQCBfX0RlRmlO
ZV9fIF9fREVDTF9SRUdfTE8xNihuYW1lKSBlICMjIG5hbWUNCj4gI2luY2x1ZGUgInhlbi14ODZf
NjQuaCINCj4gI2VuZGlmDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYg
X19BU1NFTUJMRVJfXw0KPiB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgeGVuX3Bmbl90Ow0KPiAjZGVm
aW5lIFBSSV94ZW5fcGZuICJseCINCj4gI2RlZmluZSBQUkl1X3hlbl9wZm4gImx1Ig0KPiBAQCAt
OTcsNyArOTcsNyBAQCB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgeGVuX3Bmbl90Ow0KPiAvKiBNYXhp
bXVtIG51bWJlciBvZiB2aXJ0dWFsIENQVXMgaW4gbGVnYWN5IG11bHRpLXByb2Nlc3NvciBndWVz
dHMuICovDQo+ICNkZWZpbmUgWEVOX0xFR0FDWV9NQVhfVkNQVVMgMzINCj4gDQo+IC0jaWZuZGVm
IF9fQVNTRU1CTFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxFUl9fDQo+IA0KPiB0eXBlZGVmIHVu
c2lnbmVkIGxvbmcgeGVuX3Vsb25nX3Q7DQo+ICNkZWZpbmUgUFJJX3hlbl91bG9uZyAibHgiDQo+
IEBAIC0zMzUsNyArMzM1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeGVuX21zcl9lbnRyeSB7DQo+IH0g
eGVuX21zcl9lbnRyeV90Ow0KPiBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fbXNyX2VudHJ5
X3QpOw0KPiANCj4gLSNlbmRpZiAvKiAhX19BU1NFTUJMWV9fICovDQo+ICsjZW5kaWYgLyogIV9f
QVNTRU1CTEVSX18gKi8NCj4gDQo+IC8qDQo+ICAqIGAgZW51bSBuZWdfZXJybm92YWwNCj4gQEAg
LTM1OSw3ICszNTksNyBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fbXNyX2VudHJ5X3Qp
Ow0KPiAgKiBQcmVmaXggZm9yY2VzIGVtdWxhdGlvbiBvZiBzb21lIG5vbi10cmFwcGluZyBpbnN0
cnVjdGlvbnMuDQo+ICAqIEN1cnJlbnRseSBvbmx5IENQVUlELg0KPiAgKi8NCj4gLSNpZmRlZiBf
X0FTU0VNQkxZX18NCj4gKyNpZmRlZiBfX0FTU0VNQkxFUl9fDQo+ICNkZWZpbmUgWEVOX0VNVUxB
VEVfUFJFRklYIC5ieXRlIDB4MGYsMHgwYiwweDc4LDB4NjUsMHg2ZSA7DQo+ICNkZWZpbmUgWEVO
X0NQVUlEICAgICAgICAgIFhFTl9FTVVMQVRFX1BSRUZJWCBjcHVpZA0KPiAjZWxzZQ0KPiBkaWZm
IC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2Vycm5vLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMv
ZXJybm8uaA0KPiBpbmRleCBiOWZjNjc2MmZiYjYuLjY1NDNkMGYzNTMwYSAxMDA2NDQNCj4gLS0t
IGEveGVuL2luY2x1ZGUvcHVibGljL2Vycm5vLmgNCj4gKysrIGIveGVuL2luY2x1ZGUvcHVibGlj
L2Vycm5vLmgNCj4gQEAgLTMwLDcgKzMwLDcgQEANCj4gDQo+ICNkZWZpbmUgWEVOX0VSUk5PX0RF
RkFVTFRfSU5DTFVERQ0KPiANCj4gLSNpZm5kZWYgX19BU1NFTUJMWV9fDQo+ICsjaWZuZGVmIF9f
QVNTRU1CTEVSX18NCj4gDQo+ICNkZWZpbmUgWEVOX0VSUk5PKG5hbWUsIHZhbHVlKSBYRU5fIyNu
YW1lID0gKHZhbHVlKSwNCj4gZW51bSB4ZW5fZXJybm8gew0KPiBAQCAtMzksNyArMzksNyBAQCBl
bnVtIHhlbl9lcnJubyB7DQo+IA0KPiAjZGVmaW5lIFhFTl9FUlJOTyhuYW1lLCB2YWx1ZSkgLmVx
dSBYRU5fIyNuYW1lLCB2YWx1ZQ0KPiANCj4gLSNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8NCj4g
KyNlbmRpZiAvKiBfX0FTU0VNQkxFUl9fICovDQo+IA0KPiAjZW5kaWYgLyogX19YRU5fUFVCTElD
X0VSUk5PX0hfXyAqLw0KPiAjZW5kaWYgLyogIVhFTl9FUlJOTyAqLw0KPiBAQCAtMTIzLDcgKzEy
Myw3IEBAIFhFTl9FUlJOTyhFQ09OTlJFRlVTRUQsIDExMSkgLyogQ29ubmVjdGlvbiByZWZ1c2Vk
ICovDQo+IC8qIENsZWFuIHVwIGZyb20gYSBkZWZhdWx0IGluY2x1ZGUuICBDbG9zZSB0aGUgZW51
bSAoZm9yIEMpLiAqLw0KPiAjaWZkZWYgWEVOX0VSUk5PX0RFRkFVTFRfSU5DTFVERQ0KPiAjdW5k
ZWYgWEVOX0VSUk5PX0RFRkFVTFRfSU5DTFVERQ0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4g
KyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiB9Ow0KPiAjZW5kaWYNCj4gDQo+IGRpZmYgLS1naXQg
YS94ZW4vaW5jbHVkZS9wdWJsaWMvdG1lbS5oIGIveGVuL2luY2x1ZGUvcHVibGljL3RtZW0uaA0K
PiBpbmRleCBkYTY4ZGU3NmZlNWYuLjhjOTFhN2JiOTQ0ZiAxMDA2NDQNCj4gLS0tIGEveGVuL2lu
Y2x1ZGUvcHVibGljL3RtZW0uaA0KPiArKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvdG1lbS5oDQo+
IEBAIC01OCw3ICs1OCw3IEBAIHN0cnVjdCB4ZW5fdG1lbV9vaWQgew0KPiB0eXBlZGVmIHN0cnVj
dCB4ZW5fdG1lbV9vaWQgeGVuX3RtZW1fb2lkX3Q7DQo+IERFRklORV9YRU5fR1VFU1RfSEFORExF
KHhlbl90bWVtX29pZF90KTsNCj4gDQo+IC0jaWZuZGVmIF9fQVNTRU1CTFlfXw0KPiArI2lmbmRl
ZiBfX0FTU0VNQkxFUl9fDQo+ICNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDA0
MDQwMA0KPiB0eXBlZGVmIHhlbl9wZm5fdCB0bWVtX2NsaV9tZm5fdDsNCj4gI2VuZGlmDQo+IGRp
ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMv
eGVuLmgNCj4gaW5kZXggODJiOWMwNWE3NmI3Li43ZjE1MjA0YzM4ODUgMTAwNjQ0DQo+IC0tLSBh
L3hlbi9pbmNsdWRlL3B1YmxpYy94ZW4uaA0KPiArKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMveGVu
LmgNCj4gQEAgLTI0LDcgKzI0LDcgQEANCj4gI2Vycm9yICJVbnN1cHBvcnRlZCBhcmNoaXRlY3R1
cmUiDQo+ICNlbmRpZg0KPiANCj4gLSNpZm5kZWYgX19BU1NFTUJMWV9fDQo+ICsjaWZuZGVmIF9f
QVNTRU1CTEVSX18NCj4gLyogR3Vlc3QgaGFuZGxlcyBmb3IgcHJpbWl0aXZlIEMgdHlwZXMuICov
DQo+IERFRklORV9YRU5fR1VFU1RfSEFORExFKGNoYXIpOw0KPiBfX0RFRklORV9YRU5fR1VFU1Rf
SEFORExFKHVjaGFyLCB1bnNpZ25lZCBjaGFyKTsNCj4gQEAgLTQzNyw3ICs0MzcsNyBAQCBERUZJ
TkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fdWxvbmdfdCk7DQo+ICNkZWZpbmUgTU1VRVhUX1VOTUFS
S19TVVBFUiAgICAgMjANCj4gLyogYCB9ICovDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18N
Cj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiBzdHJ1Y3QgbW11ZXh0X29wIHsNCj4gICAgIHVu
c2lnbmVkIGludCBjbWQ7IC8qID0+IGVudW0gbW11ZXh0X2NtZCAqLw0KPiAgICAgdW5pb24gew0K
PiBAQCAtNjE0LDcgKzYxNCw3IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKG1tdWV4dF9vcF90
KTsNCj4gLyogTWFzayBmb3IgdmFsaWQgZG9tYWluIGlkIHZhbHVlcyAqLw0KPiAjZGVmaW5lIERP
TUlEX01BU0sgICAgICAgICAgIHhlbl9ta191aW50KDB4N0ZGRikNCj4gDQo+IC0jaWZuZGVmIF9f
QVNTRU1CTFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxFUl9fDQo+IA0KPiB0eXBlZGVmIHVpbnQx
Nl90IGRvbWlkX3Q7DQo+IA0KPiBAQCAtMTAxMSw3ICsxMDExLDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg
ew0KPiAgICAgWEVOX0RFRklORV9VVUlEXyhhLCBiLCBjLCBkLCBlMSwgZTIsIGUzLCBlNCwgZTUs
IGU2KQ0KPiAjZW5kaWYgLyogX19TVERDX1ZFUlNJT05fXyAvIF9fR05VQ19fICovDQo+IA0KPiAt
I2VuZGlmIC8qICFfX0FTU0VNQkxZX18gKi8NCj4gKyNlbmRpZiAvKiAhX19BU1NFTUJMRVJfXyAq
Lw0KPiANCj4gLyogRGVmYXVsdCBkZWZpbml0aW9ucyBmb3IgbWFjcm9zIHVzZWQgYnkgZG9tY3Rs
L3N5c2N0bC4gKi8NCj4gI2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09M
U19fKQ0KPiBAQCAtMTAyNiw3ICsxMDI2LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiAjZGVmaW5l
IFhFTl9HVUVTVF9IQU5ETEVfNjQobmFtZSkgWEVOX0dVRVNUX0hBTkRMRShuYW1lKQ0KPiAjZW5k
aWYNCj4gDQo+IC0jaWZuZGVmIF9fQVNTRU1CTFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxFUl9f
DQo+IHN0cnVjdCB4ZW5jdGxfYml0bWFwIHsNCj4gICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWlu
dDgpIGJpdG1hcDsNCj4gICAgIHVpbnQzMl90IG5yX2JpdHM7DQo+IGRpZmYgLS1naXQgYS94ZW4v
aW5jbHVkZS94ZW4vYWNwaS5oIGIveGVuL2luY2x1ZGUveGVuL2FjcGkuaA0KPiBpbmRleCA1N2U3
MTBhMTZkOTAuLjkwNjM1YmEwZjMyMiAxMDA2NDQNCj4gLS0tIGEveGVuL2luY2x1ZGUveGVuL2Fj
cGkuaA0KPiArKysgYi94ZW4vaW5jbHVkZS94ZW4vYWNwaS5oDQo+IEBAIC0zNSw3ICszNSw3IEBA
DQo+ICAqLw0KPiAjZGVmaW5lIE5VTV9GSVhNQVBfQUNQSV9QQUdFUyAgNjQNCj4gDQo+IC0jaWZu
ZGVmIF9fQVNTRU1CTFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxFUl9fDQo+IA0KPiAjaW5jbHVk
ZSA8eGVuL2Vycm5vLmg+DQo+ICNpbmNsdWRlIDx4ZW4vbGlzdC5oPg0KPiBAQCAtMjAyLDYgKzIw
Miw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhY3BpX2RtYXJfemFwKHZvaWQpIHt9DQo+IHN0YXRp
YyBpbmxpbmUgdm9pZCBhY3BpX2RtYXJfcmVpbnN0YXRlKHZvaWQpIHt9DQo+ICNlbmRpZg0KPiAN
Cj4gLSNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8NCj4gKyNlbmRpZiAvKiBfX0FTU0VNQkxFUl9f
ICovDQo+IA0KPiAjZW5kaWYgLypfTElOVVhfQUNQSV9IKi8NCj4gZGlmZiAtLWdpdCBhL3hlbi9p
bmNsdWRlL3hlbi9iaXRtYXAuaCBiL3hlbi9pbmNsdWRlL3hlbi9iaXRtYXAuaA0KPiBpbmRleCBi
NWU5Y2RkM2RiODYuLmM2OTM5OGExMjc5NiAxMDA2NDQNCj4gLS0tIGEveGVuL2luY2x1ZGUveGVu
L2JpdG1hcC5oDQo+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9iaXRtYXAuaA0KPiBAQCAtMSw3ICsx
LDcgQEANCj4gI2lmbmRlZiBfX1hFTl9CSVRNQVBfSA0KPiAjZGVmaW5lIF9fWEVOX0JJVE1BUF9I
DQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0K
PiANCj4gI2luY2x1ZGUgPHhlbi9saWIuaD4NCj4gI2luY2x1ZGUgPHhlbi90eXBlcy5oPg0KPiBA
QCAtMjkwLDYgKzI5MCw2IEBAIGludCB4ZW5jdGxfYml0bWFwX3RvX2JpdG1hcCh1bnNpZ25lZCBs
b25nICpiaXRtYXAsDQo+IGludCBiaXRtYXBfdG9feGVuY3RsX2JpdG1hcChzdHJ1Y3QgeGVuY3Rs
X2JpdG1hcCAqeGVuY3RsX2JpdG1hcCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcCwgdW5zaWduZWQgaW50IG5iaXRzKTsNCj4gDQo+IC0j
ZW5kaWYgLyogX19BU1NFTUJMWV9fICovDQo+ICsjZW5kaWYgLyogX19BU1NFTUJMRVJfXyAqLw0K
PiANCj4gI2VuZGlmIC8qIF9fWEVOX0JJVE1BUF9IICovDQo+IGRpZmYgLS1naXQgYS94ZW4vaW5j
bHVkZS94ZW4vYnVnLmggYi94ZW4vaW5jbHVkZS94ZW4vYnVnLmgNCj4gaW5kZXggMGNhYmRiYTM3
OTkyLi4wNDRjMDU5ZDY5MzYgMTAwNjQ0DQo+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9idWcuaA0K
PiArKysgYi94ZW4vaW5jbHVkZS94ZW4vYnVnLmgNCj4gQEAgLTE0LDcgKzE0LDcgQEANCj4gDQo+
ICNpbmNsdWRlIDxhc20vYnVnLmg+DQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNp
Zm5kZWYgX19BU1NFTUJMRVJfXw0KPiANCj4gI2luY2x1ZGUgPHhlbi9jb21waWxlci5oPg0KPiAj
aW5jbHVkZSA8eGVuL21hY3Jvcy5oPg0KPiBAQCAtMTU2LDcgKzE1Niw3IEBAIGludCBkb19idWdf
ZnJhbWUoY29uc3Qgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgcGMp
Ow0KPiANCj4gI2VuZGlmIC8qIENPTkZJR19HRU5FUklDX0JVR19GUkFNRSAqLw0KPiANCj4gLSNl
bmRpZiAvKiAhX19BU1NFTUJMWV9fICovDQo+ICsjZW5kaWYgLyogIV9fQVNTRU1CTEVSX18gKi8N
Cj4gDQo+ICNlbmRpZiAvKiBfX1hFTl9CVUdfSF9fICovDQo+IC8qDQo+IGRpZmYgLS1naXQgYS94
ZW4vaW5jbHVkZS94ZW4vY29uZmlnLmggYi94ZW4vaW5jbHVkZS94ZW4vY29uZmlnLmgNCj4gaW5k
ZXggMWQ3MTk1MDY2YzA4Li4zM2U2YWFmYTQwN2IgMTAwNjQ0DQo+IC0tLSBhL3hlbi9pbmNsdWRl
L3hlbi9jb25maWcuaA0KPiArKysgYi94ZW4vaW5jbHVkZS94ZW4vY29uZmlnLmgNCj4gQEAgLTEz
LDcgKzEzLDcgQEANCj4gDQo+ICNpbmNsdWRlIDx4ZW4va2NvbmZpZy5oPg0KPiANCj4gLSNpZm5k
ZWYgX19BU1NFTUJMWV9fDQo+ICsjaWZuZGVmIF9fQVNTRU1CTEVSX18NCj4gI2luY2x1ZGUgPHhl
bi9jb21waWxlci5oPg0KPiANCj4gI2lmIGRlZmluZWQoQ09ORklHX0VORk9SQ0VfVU5JUVVFX1NZ
TUJPTFMpIHx8IGRlZmluZWQoX19jbGFuZ19fKQ0KPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv
eGVuL2NvbnN0LmggYi94ZW4vaW5jbHVkZS94ZW4vY29uc3QuaA0KPiBpbmRleCBiYWYyOGVmMTQ0
ODcuLmFmMjI4ODc0MDI1YSAxMDA2NDQNCj4gLS0tIGEveGVuL2luY2x1ZGUveGVuL2NvbnN0LmgN
Cj4gKysrIGIveGVuL2luY2x1ZGUveGVuL2NvbnN0LmgNCj4gQEAgLTEyLDcgKzEyLDcgQEANCj4g
ICogbGVhdmUgaXQgdW5jaGFuZ2VkIGluIGFzbS4NCj4gICovDQo+IA0KPiAtI2lmZGVmIF9fQVNT
RU1CTFlfXw0KPiArI2lmZGVmIF9fQVNTRU1CTEVSX18NCj4gI2RlZmluZSBfQUMoWCxZKSBYDQo+
ICNkZWZpbmUgX0FUKFQsWCkgWA0KPiAjZWxzZQ0KPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv
eGVuL2Vyci5oIGIveGVuL2luY2x1ZGUveGVuL2Vyci5oDQo+IGluZGV4IGE1OTcxZTI5MGMxNi4u
NDQ2NTQ2OGNkZWRmIDEwMDY0NA0KPiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vZXJyLmgNCj4gKysr
IGIveGVuL2luY2x1ZGUveGVuL2Vyci5oDQo+IEBAIC0xLDcgKzEsNyBAQA0KPiAjaWZuZGVmIFhF
Tl9FUlJfSA0KPiAjZGVmaW5lIFhFTl9FUlJfSA0KPiANCj4gLSNpZm5kZWYgX19BU1NFTUJMWV9f
DQo+ICsjaWZuZGVmIF9fQVNTRU1CTEVSX18NCj4gDQo+ICNpbmNsdWRlIDx4ZW4vY29tcGlsZXIu
aD4NCj4gI2luY2x1ZGUgPHhlbi9lcnJuby5oPg0KPiBAQCAtNDMsNiArNDMsNiBAQCBzdGF0aWMg
aW5saW5lIGludCBfX211c3RfY2hlY2sgUFRSX1JFVChjb25zdCB2b2lkICpwdHIpDQo+IHJldHVy
biBJU19FUlIocHRyKSA/IFBUUl9FUlIocHRyKSA6IDA7DQo+IH0NCj4gDQo+IC0jZW5kaWYgLyog
X19BU1NFTUJMWV9fICovDQo+ICsjZW5kaWYgLyogX19BU1NFTUJMRVJfXyAqLw0KPiANCj4gI2Vu
ZGlmIC8qIFhFTl9FUlJfSCAqLw0KPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2Vycm5v
LmggYi94ZW4vaW5jbHVkZS94ZW4vZXJybm8uaA0KPiBpbmRleCA1MDY2NzQ3MDFmYWUuLmRiOWVm
N2YzZTEwMyAxMDA2NDQNCj4gLS0tIGEveGVuL2luY2x1ZGUveGVuL2Vycm5vLmgNCj4gKysrIGIv
eGVuL2luY2x1ZGUveGVuL2Vycm5vLmgNCj4gQEAgLTEsMTggKzEsMTggQEANCj4gI2lmbmRlZiBf
X1hFTl9FUlJOT19IX18NCj4gI2RlZmluZSBfX1hFTl9FUlJOT19IX18NCj4gDQo+IC0jaWZuZGVm
IF9fQVNTRU1CTFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxFUl9fDQo+IA0KPiAjZGVmaW5lIFhF
Tl9FUlJOTyhuYW1lLCB2YWx1ZSkgbmFtZSA9ICh2YWx1ZSksDQo+IGVudW0gew0KPiAjaW5jbHVk
ZSA8cHVibGljL2Vycm5vLmg+DQo+IH07DQo+IA0KPiAtI2Vsc2UgLyogIV9fQVNTRU1CTFlfXyAq
Lw0KPiArI2Vsc2UgLyogIV9fQVNTRU1CTEVSX18gKi8NCj4gDQo+ICNkZWZpbmUgWEVOX0VSUk5P
KG5hbWUsIHZhbHVlKSAuZXF1IG5hbWUsIHZhbHVlDQo+ICNpbmNsdWRlIDxwdWJsaWMvZXJybm8u
aD4NCj4gDQo+IC0jZW5kaWYgLyogX19BU1NFTUJMWV9fICovDQo+ICsjZW5kaWYgLyogX19BU1NF
TUJMRVJfXyAqLw0KPiANCj4gI2VuZGlmIC8qICBfX1hFTl9FUlJOT19IX18gKi8NCj4gZGlmZiAt
LWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9pbml0LmggYi94ZW4vaW5jbHVkZS94ZW4vaW5pdC5oDQo+
IGluZGV4IGFiZjI3NWYwZWI3Mi4uMGM5MjE2NzJjMTk2IDEwMDY0NA0KPiAtLS0gYS94ZW4vaW5j
bHVkZS94ZW4vaW5pdC5oDQo+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9pbml0LmgNCj4gQEAgLTU0
LDcgKzU0LDcgQEANCj4gICogQWxzbyBub3RlLCB0aGF0IHRoaXMgZGF0YSBjYW5ub3QgYmUgImNv
bnN0Ii4NCj4gICovDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19B
U1NFTUJMRVJfXw0KPiANCj4gLyoNCj4gICogVXNlZCBmb3IgaW5pdGlhbGl6YXRpb24gY2FsbHMu
Lg0KPiBAQCAtNzIsNyArNzIsNyBAQCB0eXBlZGVmIHZvaWQgKCpleGl0Y2FsbF90KSh2b2lkKTsN
Cj4gdm9pZCBkb19wcmVzbXBfaW5pdGNhbGxzKHZvaWQpOw0KPiB2b2lkIGRvX2luaXRjYWxscyh2
b2lkKTsNCj4gDQo+IC0jZW5kaWYgLyogX19BU1NFTUJMWV9fICovDQo+ICsjZW5kaWYgLyogX19B
U1NFTUJMRVJfXyAqLw0KPiANCj4gI2lmZGVmIENPTkZJR19MQVRFX0hXRE9NDQo+ICNkZWZpbmUg
X19od2RvbV9pbml0DQo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4va2ltYWdlLmggYi94
ZW4vaW5jbHVkZS94ZW4va2ltYWdlLmgNCj4gaW5kZXggMzQ4ZjA3ZjVjODgxLi5mY2NiYTFkODhk
NWMgMTAwNjQ0DQo+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9raW1hZ2UuaA0KPiArKysgYi94ZW4v
aW5jbHVkZS94ZW4va2ltYWdlLmgNCj4gQEAgLTcsNyArNyw3IEBADQo+ICNkZWZpbmUgSU5EX1NP
VVJDRSAgICAgICAweDgNCj4gI2RlZmluZSBJTkRfWkVSTyAgICAgICAgMHgxMA0KPiANCj4gLSNp
Zm5kZWYgX19BU1NFTUJMWV9fDQo+ICsjaWZuZGVmIF9fQVNTRU1CTEVSX18NCj4gDQo+ICNpbmNs
dWRlIDx4ZW4vbGlzdC5oPg0KPiAjaW5jbHVkZSA8eGVuL21tLmg+DQo+IEBAIC01Myw3ICs1Myw3
IEBAIHVuc2lnbmVkIGxvbmcga2ltYWdlX2VudHJ5X2luZChraW1hZ2VfZW50cnlfdCAqZW50cnks
IGJvb2wgY29tcGF0KTsNCj4gaW50IGtpbWFnZV9idWlsZF9pbmQoc3RydWN0IGtleGVjX2ltYWdl
ICppbWFnZSwgbWZuX3QgaW5kX21mbiwNCj4gICAgICAgICAgICAgICAgICAgICAgYm9vbCBjb21w
YXQpOw0KPiANCj4gLSNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8NCj4gKyNlbmRpZiAvKiBfX0FT
U0VNQkxFUl9fICovDQo+IA0KPiAjZW5kaWYgLyogX19YRU5fS0lNQUdFX0hfXyAqLw0KPiANCj4g
ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9saWIuaCBiL3hlbi9pbmNsdWRlL3hlbi9saWIu
aA0KPiBpbmRleCBjNGFjNDgyMzkyMGYuLjU1OWU4NzYzNmMwMiAxMDA2NDQNCj4gLS0tIGEveGVu
L2luY2x1ZGUveGVuL2xpYi5oDQo+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9saWIuaA0KPiBAQCAt
Myw3ICszLDcgQEANCj4gDQo+ICNpbmNsdWRlIDx4ZW4vbWFjcm9zLmg+DQo+IA0KPiAtI2lmbmRl
ZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiANCj4gI2luY2x1ZGUg
PHhlbi9pbnR0eXBlcy5oPg0KPiAjaW5jbHVkZSA8eGVuL3N0ZGFyZy5oPg0KPiBAQCAtMTY1LDYg
KzE2NSw2IEBAIHZvaWQgY2ZfY2hlY2sgZHVtcF9leGVjc3RhdGUoY29uc3Qgc3RydWN0IGNwdV91
c2VyX3JlZ3MgKnJlZ3MpOw0KPiANCj4gdm9pZCBpbml0X2NvbnN0cnVjdG9ycyh2b2lkKTsNCj4g
DQo+IC0jZW5kaWYgLyogX19BU1NFTUJMWV9fICovDQo+ICsjZW5kaWYgLyogX19BU1NFTUJMRVJf
XyAqLw0KPiANCj4gI2VuZGlmIC8qIF9fTElCX0hfXyAqLw0KPiBkaWZmIC0tZ2l0IGEveGVuL2lu
Y2x1ZGUveGVuL2xpYmZkdC9mZHQuaCBiL3hlbi9pbmNsdWRlL3hlbi9saWJmZHQvZmR0LmgNCj4g
aW5kZXggZjJlNjg4MDdmMjc3Li41N2ZlNTY2MzA2ZDAgMTAwNjQ0DQo+IC0tLSBhL3hlbi9pbmNs
dWRlL3hlbi9saWJmZHQvZmR0LmgNCj4gKysrIGIveGVuL2luY2x1ZGUveGVuL2xpYmZkdC9mZHQu
aA0KPiBAQCAtNyw3ICs3LDcgQEANCj4gICogQ29weXJpZ2h0IDIwMTIgS2ltIFBoaWxsaXBzLCBG
cmVlc2NhbGUgU2VtaWNvbmR1Y3Rvci4NCj4gICovDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZ
X18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiANCj4gc3RydWN0IGZkdF9oZWFkZXIgew0K
PiBmZHQzMl90IG1hZ2ljOyAvKiBtYWdpYyB3b3JkIEZEVF9NQUdJQyAqLw0KPiBkaWZmIC0tZ2l0
IGEveGVuL2luY2x1ZGUveGVuL2xpbmthZ2UuaCBiL3hlbi9pbmNsdWRlL3hlbi9saW5rYWdlLmgN
Cj4gaW5kZXggM2Q0MDFiODhjMWFkLi40NDQ2ZWVlNWE4ZGIgMTAwNjQ0DQo+IC0tLSBhL3hlbi9p
bmNsdWRlL3hlbi9saW5rYWdlLmgNCj4gKysrIGIveGVuL2luY2x1ZGUveGVuL2xpbmthZ2UuaA0K
PiBAQCAtMSw3ICsxLDcgQEANCj4gI2lmbmRlZiBfX0xJTktBR0VfSF9fDQo+ICNkZWZpbmUgX19M
SU5LQUdFX0hfXw0KPiANCj4gLSNpZmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZmRlZiBfX0FTU0VN
QkxFUl9fDQo+IA0KPiAjaW5jbHVkZSA8eGVuL21hY3Jvcy5oPg0KPiANCj4gQEAgLTYyLDYgKzYy
LDYgQEANCj4gDQo+ICNkZWZpbmUgQVNNX0lOVChsYWJlbCwgdmFsKSAgICBEQVRBKGxhYmVsLCA0
KSAubG9uZyAodmFsKTsgRU5EKGxhYmVsKQ0KPiANCj4gLSNlbmRpZiAvKiAgX19BU1NFTUJMWV9f
ICovDQo+ICsjZW5kaWYgLyogIF9fQVNTRU1CTEVSX18gKi8NCj4gDQo+ICNlbmRpZiAvKiBfX0xJ
TktBR0VfSF9fICovDQo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbWFjcm9zLmggYi94
ZW4vaW5jbHVkZS94ZW4vbWFjcm9zLmgNCj4gaW5kZXggNmI0YThkYzhiNzY2Li42ZThhYzhiNDUy
OTAgMTAwNjQ0DQo+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9tYWNyb3MuaA0KPiArKysgYi94ZW4v
aW5jbHVkZS94ZW4vbWFjcm9zLmgNCj4gQEAgLTM4LDcgKzM4LDcgQEANCj4gI2RlZmluZSBfX1NU
UiguLi4pICNfX1ZBX0FSR1NfXw0KPiAjZGVmaW5lIFNUUiguLi4pIF9fU1RSKF9fVkFfQVJHU19f
KQ0KPiANCj4gLSNpZm5kZWYgX19BU1NFTUJMWV9fDQo+ICsjaWZuZGVmIF9fQVNTRU1CTEVSX18N
Cj4gDQo+IC8qIEZvcmNlIGEgY29tcGlsYXRpb24gZXJyb3IgaWYgY29uZGl0aW9uIGlzIHRydWUg
Ki8NCj4gI2RlZmluZSBCVUlMRF9CVUdfT04oY29uZCkgKHsgX1N0YXRpY19hc3NlcnQoIShjb25k
KSwgIiEoIiAjY29uZCAiKSIpOyB9KQ0KPiBAQCAtMTQwLDcgKzE0MCw3IEBADQo+ICNkZWZpbmUg
TUlOKHgsIHkpICgoeCkgPCAoeSkgPyAoeCkgOiAoeSkpDQo+ICNkZWZpbmUgTUFYKHgsIHkpICgo
eCkgPiAoeSkgPyAoeCkgOiAoeSkpDQo+IA0KPiAtI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLw0K
PiArI2VuZGlmIC8qIF9fQVNTRU1CTEVSX18gKi8NCj4gDQo+ICNlbmRpZiAvKiBfX01BQ1JPU19I
X18gKi8NCj4gDQo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbXVsdGlib290LmggYi94
ZW4vaW5jbHVkZS94ZW4vbXVsdGlib290LmgNCj4gaW5kZXggNmQ3ZjJiNzY3MTYxLi40YWNiNjE0
NjY5YzMgMTAwNjQ0DQo+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9tdWx0aWJvb3QuaA0KPiArKysg
Yi94ZW4vaW5jbHVkZS94ZW4vbXVsdGlib290LmgNCj4gQEAgLTQzLDcgKzQzLDcgQEANCj4gI2Rl
ZmluZSBNQklfTE9BREVSTkFNRSAoX0FDKDEsdSkgPDwgOSkNCj4gI2RlZmluZSBNQklfQVBNICAg
ICAgICAoX0FDKDEsdSkgPDwgMTApDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNp
Zm5kZWYgX19BU1NFTUJMRVJfXw0KPiANCj4gI2luY2x1ZGUgPHhlbi9zdGRpbnQuaD4NCj4gDQo+
IEBAIC0xMzAsNiArMTMwLDYgQEAgc3RydWN0IG1lbW9yeV9tYXAgew0KPiB0eXBlZGVmIHN0cnVj
dCBtZW1vcnlfbWFwIG1lbW9yeV9tYXBfdDsNCj4gDQo+IA0KPiAtI2VuZGlmIC8qIF9fQVNTRU1C
TFlfXyAqLw0KPiArI2VuZGlmIC8qIF9fQVNTRU1CTEVSX18gKi8NCj4gDQo+ICNlbmRpZiAvKiBf
X01VTFRJQk9PVF9IX18gKi8NCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9tdWx0aWJv
b3QyLmggYi94ZW4vaW5jbHVkZS94ZW4vbXVsdGlib290Mi5oDQo+IGluZGV4IDUzNGIyNjQ0NGNj
My4uN2M5MTgwOTI5ZTY4IDEwMDY0NA0KPiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vbXVsdGlib290
Mi5oDQo+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9tdWx0aWJvb3QyLmgNCj4gQEAgLTExMyw3ICsx
MTMsNyBAQA0KPiAjZGVmaW5lIE1VTFRJQk9PVDJfRlJBTUVCVUZGRVJfVFlQRV9SR0IgICAgICAg
ICAgICAgICAgIDENCj4gI2RlZmluZSBNVUxUSUJPT1QyX0ZSQU1FQlVGRkVSX1RZUEVfRUdBX1RF
WFQgICAgICAgICAgICAyDQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYg
X19BU1NFTUJMRVJfXw0KPiANCj4gI2luY2x1ZGUgPHhlbi9zdGRpbnQuaD4NCj4gDQo+IEBAIC0y
MzMsNiArMjMzLDYgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiAgICAgdWludDMyX3QgbW9kX2VuZDsN
Cj4gICAgIGNoYXIgY21kbGluZVtdOw0KPiB9IG11bHRpYm9vdDJfdGFnX21vZHVsZV90Ow0KPiAt
I2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLw0KPiArI2VuZGlmIC8qIF9fQVNTRU1CTEVSX18gKi8N
Cj4gDQo+ICNlbmRpZiAvKiBfX01VTFRJQk9PVDJfSF9fICovDQo+IGRpZmYgLS1naXQgYS94ZW4v
aW5jbHVkZS94ZW4vcGVyY3B1LmggYi94ZW4vaW5jbHVkZS94ZW4vcGVyY3B1LmgNCj4gaW5kZXgg
ZTdmNTg1YzdlZDY5Li5mY2YyMDk1YmQ1NDMgMTAwNjQ0DQo+IC0tLSBhL3hlbi9pbmNsdWRlL3hl
bi9wZXJjcHUuaA0KPiArKysgYi94ZW4vaW5jbHVkZS94ZW4vcGVyY3B1LmgNCj4gQEAgLTI5LDcg
KzI5LDcgQEANCj4gDQo+ICNpbmNsdWRlIDxhc20vcGVyY3B1Lmg+DQo+IA0KPiAtI2lmbmRlZiBf
X0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJfXw0KPiANCj4gI2luY2x1ZGUgPHhl
bi90eXBlcy5oPg0KPiAjaW5jbHVkZSA8YXNtL2N1cnJlbnQuaD4NCj4gQEAgLTU3LDcgKzU3LDcg
QEAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19wZXJfY3B1X29mZnNldFtdOw0KPiANCj4gdm9pZCBw
ZXJjcHVfaW5pdF9hcmVhcyh2b2lkKTsNCj4gDQo+IC0jZW5kaWYgLyogX19BU1NFTUJMWV9fICov
DQo+ICsjZW5kaWYgLyogX19BU1NFTUJMRVJfXyAqLw0KPiANCj4gLyogTGludXggY29tcGF0aWJp
bGl0eS4gKi8NCj4gI2RlZmluZSBnZXRfY3B1X3Zhcih2YXIpIHRoaXNfY3B1KHZhcikNCj4gZGlm
ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9wbWFwLmggYi94ZW4vaW5jbHVkZS94ZW4vcG1hcC5o
DQo+IGluZGV4IDkzZTYxYjEwODcwZS4uYjIyM2ZhOTE5NjkwIDEwMDY0NA0KPiAtLS0gYS94ZW4v
aW5jbHVkZS94ZW4vcG1hcC5oDQo+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9wbWFwLmgNCj4gQEAg
LTQsMTMgKzQsMTMgQEANCj4gLyogTGFyZ2UgZW5vdWdoIGZvciBtYXBwaW5nIDUgbGV2ZWxzIG9m
IHBhZ2UgdGFibGVzIHdpdGggc29tZSBoZWFkcm9vbSAqLw0KPiAjZGVmaW5lIE5VTV9GSVhfUE1B
UCA4DQo+IA0KPiAtI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4gKyNpZm5kZWYgX19BU1NFTUJMRVJf
Xw0KPiANCj4gI2luY2x1ZGUgPHhlbi9tbS1mcmFtZS5oPg0KPiANCj4gdm9pZCAqcG1hcF9tYXAo
bWZuX3QgbWZuKTsNCj4gdm9pZCBwbWFwX3VubWFwKGNvbnN0IHZvaWQgKnApOw0KPiANCj4gLSNl
bmRpZiAvKiBfX0FTU0VNQkxZX18gKi8NCj4gKyNlbmRpZiAvKiBfX0FTU0VNQkxFUl9fICovDQo+
IA0KPiAjZW5kaWYgLyogX19YRU5fUE1BUF9IX18gKi8NCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNs
dWRlL3hlbi9zb2Z0aXJxLmggYi94ZW4vaW5jbHVkZS94ZW4vc29mdGlycS5oDQo+IGluZGV4IDQ4
ZjE3ZTQ5ZWZhMS4uNDlkYTY5NzRmZWIxIDEwMDY0NA0KPiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4v
c29mdGlycS5oDQo+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9zb2Z0aXJxLmgNCj4gQEAgLTEsNyAr
MSw3IEBADQo+ICNpZm5kZWYgWEVOX1NPRlRJUlFfSA0KPiAjZGVmaW5lIFhFTl9TT0ZUSVJRX0gN
Cj4gDQo+IC0jaWZuZGVmIF9fQVNTRU1CTFlfXw0KPiArI2lmbmRlZiBfX0FTU0VNQkxFUl9fDQo+
IA0KPiAvKiBMb3ctbGF0ZW5jeSBzb2Z0aXJxcyBjb21lIGZpcnN0IGluIHRoZSBmb2xsb3dpbmcg
bGlzdC4gKi8NCj4gZW51bSB7DQo+IEBAIC01OCw2ICs1OCw2IEBAIHZvaWQgY3B1X3JhaXNlX3Nv
ZnRpcnFfYmF0Y2hfZmluaXNoKHZvaWQpOw0KPiAgKi8NCj4gdm9pZCBwcm9jZXNzX3BlbmRpbmdf
c29mdGlycXModm9pZCk7DQo+IA0KPiAtI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLw0KPiArI2Vu
ZGlmIC8qIF9fQVNTRU1CTEVSX18gKi8NCj4gDQo+ICNlbmRpZiAvKiBYRU5fU09GVElSUV9IICov
DQo+IA0KPiBiYXNlLWNvbW1pdDogNjJiZDRjMmE4ZWU4MDljMTgxZDQ3MDk4NTgzMjcwZGM5ZGI5
MzAwZQ0KPiAtLSANCj4gMi4zOS41DQo+IA0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 08:04:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 08:04:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178534.1502303 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRQnU-0000sf-Kk; Fri, 05 Dec 2025 08:04:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178534.1502303; Fri, 05 Dec 2025 08:04:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRQnU-0000sY-I9; Fri, 05 Dec 2025 08:04:12 +0000
Received: by outflank-mailman (input) for mailman id 1178534;
 Fri, 05 Dec 2025 08:04:12 +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
 <SRS0=XFGw=6L=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vRQnU-0000sS-3h
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 08:04:12 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fb0bafcb-d1b0-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 09:04:10 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by PR3PR03MB6572.eurprd03.prod.outlook.com (2603:10a6:102:76::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Fri, 5 Dec
 2025 08:04:07 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9366.012; Fri, 5 Dec 2025
 08:04:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb0bafcb-d1b0-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pfbN/jLcT4sDh8vVC6de2D3RTcL1TCN1McSfg46AAk/wVth6iMv0FlyM5WpoIfg430RpST5saXgGCalcEJkyg2ZsUDOyVsJqCwb70RTPgS5+9eSpHRIGiF9j+zAr+YMm4rQWx91EQJNAqLwbRokTJ6twqcW0BC+e0Qt3BGsSQd3IyqjpQVKMOdjg/bybRUVzH/EENjvP9wjbEMVXasiIAn7/O7/r1FQqUUu6t2DRlDw1AxUcGgmB5CU9NlGjNa7416uxtXKEAmJfXSJaQScpeLQpYJgSd4FCNhZB635lf74n/MI5taaZI1IfCRDQfgLUz37B7tReRLEBwRXKUQcvPQ==
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=F3BsiN4L6fNRoWyz+H/uQp4LH3rqAy8hTd6o00L3zMc=;
 b=MEJitEL+od8gGEUhbl/KUigjy6sYhKdv1eczqk66DBDyLYdiAI1dt1D03AGKkUAQaQII64aWcQ4H2wLruMwM03Tuh0ksv/3eQqCsmChkiyoNW1FcWqPpXf8jHd8P+aD7BJCAAQQK6pVNlDpKPwRsYMBLnbWYMlP4Vaa6LvZsY+iFdfoqchp/R2Mhmfzu95Xo1iQk7wfKYdt0GJZcEUh0XUuL9MEMk6MQW2LkdMuxIcKz1ElCYKKi5gCwcT7CdyD9c3DMgoAUdBbwvDVLuJ/RdEbgBq9A/MXMH85zhcO8qu+tlFjCfIP/ISYfmjS80l68RATj8DQmUwGlXPKUtH/LEg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=F3BsiN4L6fNRoWyz+H/uQp4LH3rqAy8hTd6o00L3zMc=;
 b=gwiOlar6X0jauIlJ0oqam0Rnj0Tm+E6PmcybPYVUaLhBBwqKiG1iMli605fVFoLOhSGqFqaQJGbITmxKtj4aOfc5DHd87gJhMM+aX5awBqBAyD804IJo7lBN6Efm+JLnd2f9cPuJNI0drIUDfa5luRDaYY0czEc6Ml7QzaduScHXGDgHTSYxROu9pcFShjToWUTBfCftZaWFRgvJ5i5FtbiCGzSp/XEvYpRFGK34/MEuTSX3VDHylEyWWuD+g5+rGpFM23r+vpxQxm8L8XMJOALL5s5eS+AoTNSjq9GCA7j2I6aG6RoMA7EAtLS/XATn+RtuXYqICeudDN7yDBVbyQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <6bdff7ac-28bd-4e1d-9a05-2284f675c22a@epam.com>
Date: Fri, 5 Dec 2025 10:04:05 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] console/consoleio: account for xen serial input
 focus during write
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Jason Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251204233211.980862-1-grygorii_strashko@epam.com>
 <6e189be1-a7c6-44bc-91a8-84dec7ed47e4@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <6e189be1-a7c6-44bc-91a8-84dec7ed47e4@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0009.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::6) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|PR3PR03MB6572:EE_
X-MS-Office365-Filtering-Correlation-Id: 7a845ead-d215-4433-ca65-08de33d4dd50
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YldaZzZHL1JlT1dUK2FYdVBHdnF4V090ZUZwMUsxbTN6d2RaVS84SGgxVXpF?=
 =?utf-8?B?OTFnT0wxeFB3Ym1OVE00WmdZNjEyZXFTVUFWWklIMEpWZkYvemE1WS9FeW9n?=
 =?utf-8?B?MUJsNDY2SkZYaEpEc0xLaG5zSTQ5dGpTVzJwWVRCZ1I4V1BqZDhicjJpblVz?=
 =?utf-8?B?T0lPUjVDcGpUMWQ4VEV4SnhQTzdtNmVjREVNbTc4NTNQT0xrS2EvaGlCZ0tI?=
 =?utf-8?B?OTBYam1UdlQyc1BJU24ra3RKY0FBM3FHQURLbzJ1U0s4MWFjNVl1QVZsRVow?=
 =?utf-8?B?bk5ZZjBxcEJyNGk1SGY4Wkd1amNaNy95YmJPVkN2M09pNWlOZGRYeTdzYVY2?=
 =?utf-8?B?THBLR1RkcFJyMGVNM3E2MWlYQ0FLSGZoVmNYeXFId2kzdjZsT2tJTGhvYVBp?=
 =?utf-8?B?UEtBcTVlN3M3a2ptK3VCUVpKTElqTTREYm96L1k1WkNFK21ieFNyZGFoSjVr?=
 =?utf-8?B?OTFoLzg0OTFOZlFaUXZpTlFqVmRiVjF4bWcvN1RHUC9HbE4rclNYb3VXMTdk?=
 =?utf-8?B?SXZxbUZ6bVZDS2tkemU4emlsa3hYZUcyb1FxMm5JV2lQODMyMGFaSE55Qnkv?=
 =?utf-8?B?TVFtUXQrb284ZzBCa21hSlZ1TTQvQ1RiUGVmSWY2Z1NWSDdTYkQ3S3BiNkYx?=
 =?utf-8?B?a1hMcFR3aTIvaFk0TWlkRkZnOHMwOVNHWlpYOXREZHJOalBKRzNDYWZxNlFz?=
 =?utf-8?B?VnVIMFNIdGJvOUNqZ1dRc0lPRkREOWoyUG4xZ2N4OFdsTlczY0NXcGxYMW0z?=
 =?utf-8?B?Y0d2dWVmMmV3alNzQ3R1eXdpcGtBTTJWVyt2eVRkTWQybTdsR3NWM0d5RGt0?=
 =?utf-8?B?TWZiWk5HNzAyVzBaSUpIRGdSblRzYW1laWE3VHBWeDd6K3ZpaDR2LzlKei9U?=
 =?utf-8?B?V3Q1MU96a0d5N0s2Y2NQckhZYk1na2ZWbm91TEo2WUdNbnpUZUFRTnVSNzZF?=
 =?utf-8?B?MVNtYnd3ZGxBeU9sUzhoZVV5ODhES2cvcEdHT0JmVmtpZmZJdU1JTWFCSHU5?=
 =?utf-8?B?R0JFMXR1NlJpWkFkOFB2Y2g4RDlxdkk0SHhEblNvb2d4cUc5T2loNVJEbjZP?=
 =?utf-8?B?UHBzbUROWlhYaHp6THBDMU5JWEFIQ0VwelJiUnhRMGgySTY1YXUrT0dTS1hS?=
 =?utf-8?B?YjZsMEFsV1lVdVlNL1dncVNBTmkxTUZBTXBFejNZRUdBQmV4ajUvRDdONmJQ?=
 =?utf-8?B?WFhTNlF4NEhKYVV1R2JtWmhycWdiaFFzNFgxUGtHK3k0ZTYwRHFDd2JqRktS?=
 =?utf-8?B?YUFJbGQ5ZnpicXYvTm01dldIeWdGWXZ4RExMMkoyVk9sOUZyeDZMNjkvTmZr?=
 =?utf-8?B?WDFqLytwUGdXeWJWMWpvb0sreEVtUUtPeTN0clBlV3RnK0I2QXZ1azlaczJN?=
 =?utf-8?B?WjRsb2NENG5DaE5MY2R2cmlGNk5ldDN2V0llbk9MQU5PVFZkeW41eHRzSDA2?=
 =?utf-8?B?eWZjOU1MZENmODZ4SHFTZmhET1ZSU3l4UWdJMGlkMElpWm9pR1ZZZFNQelNC?=
 =?utf-8?B?b1FMOVRIdkIwYUNIQ281RG1OTENrOUphRlpVNS9NSGlMMW45TnZPeFdUKzdv?=
 =?utf-8?B?end1Q2VMKzE0dXVaUlpqMVp1UHpEZGxwZkRocG9YbXlteHdVbm10MTZjMEhD?=
 =?utf-8?B?TStucTdZM2pFaTkrekRBLzVRK3hndUJ3MUZ3dXNLS2hJakxGY2ZJenhyVzY3?=
 =?utf-8?B?UkF5N3ZCdWFCdGNEa3hxdDRFdGNFdi9ZR1E2OENzaDNSWkFYY3dHcExZVllG?=
 =?utf-8?B?b3RiVzA5dWFtdEpPenBRQitON0UyWDNsMzRmeTBHSGpTYXNtWTRMRnZEQ2Jq?=
 =?utf-8?B?ek4ySFpLcG9uZ3BDMWQ5KytXZ1BwVXBRUWJ4VDF0SHhQcWxtMUdxQ0hqNXhs?=
 =?utf-8?B?WDJrTGJSOUtSemxhVERyZEhzWXZQTGVtL3JEa3o3SUV5RkJUOFA0K1pzaHVN?=
 =?utf-8?Q?HZX6GMVuY7+uFpTy6/WYAFP1gUGns6tM?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?d1R6ZlFsNXE0dE5BaVozMFZ3MTFtMEtPWGlGMFA4dWdaYVpucjFtYUZwZm9o?=
 =?utf-8?B?RG9ZVjhiaEM0dUxFMytPbVptTkR6a216TnJoYnBiUFRGYjJCRmdCNG45VFZy?=
 =?utf-8?B?U21IMjJNQnJqUGkrMTd5bWptN2lkUWh0N2pwLzlQam1oSmozM01lMlJvcFpU?=
 =?utf-8?B?WHZXZ3JwZzJFNnpjbnUyR2UyanNlcytNOE5qUHdISXJtU1liaVlRTk5IRHNx?=
 =?utf-8?B?VkZ3bVBxU1pBM09Td3dPK2VBejZWMlAwY2RJZFRhKzBNeXdtK1FXbzdyeUI2?=
 =?utf-8?B?T1lGYTVRNnR0SnhHdXBaeE5FZ1RiZXprS2ZLSDdUdkF1aGRDalNSZFp0bzhp?=
 =?utf-8?B?UWJqczkzeGxCSW1QUnFQbU9ucmJYMjB2Z28xTENOVXE5bEMxa2taTnJqcXg0?=
 =?utf-8?B?QnVRbWpuekVTaEtrZFZYNnRmY2Jvamd6UmdML051WjgyMUV5b2VKcEFjVGRp?=
 =?utf-8?B?MWp3eEd2ZEt5aEFEUzFQMWpTd1RwMEVxeFRxME1LSDFOSnoyNkk4U0Jtc1oy?=
 =?utf-8?B?QmVBNFU3Sjg2SnRlUVo0d2Q0bmF2Z0tKVUJtY1RtdlBnbE9xT3ZOV3N3Vkd5?=
 =?utf-8?B?b3Z0SjExWE5PQlp1ZENmdEVKenVoWFR0KzlQYlJTMHd5K1pPOXNxZVZ0UFYy?=
 =?utf-8?B?bmEyNVN6dmJGYTBsaml0OFZTZk5CeW95UklmampVdnpvN3RJV01YektYY2tD?=
 =?utf-8?B?N01KUWMvUnpGS1g5SHpUbTZXWldESW5kVmw1Z3pTcVdIczgydnhEZCs0VXRB?=
 =?utf-8?B?OXR4cHhLWmFiTEl6VHMwOGQ2andpNFJBSHZXK1lKSFZWSFlmY3hMWktPdldF?=
 =?utf-8?B?SGdnL1ZCV3hiQnZaM01VTENxbjBkN3h0dG5xYmtWYlEwVG8zcDgweGgzNmZZ?=
 =?utf-8?B?SiszTVc3YnBjT2l6N3YxRXN6RDEyU0Rrb2I0b2VwUVBZdGlUUkJSTTFvMENX?=
 =?utf-8?B?L1QzelFDbDNxd3dzYWFjcERkU1BUeDlWVEZaWGplcVFYQUxhbktPdmJDZndL?=
 =?utf-8?B?M2xDQVdIM0tkNy9sZWRjOHh4eWRSQ3o0RFhxbC91VnZHS0VJYnlSSTdINUlL?=
 =?utf-8?B?dVFkWTBMdk1UdGF0MHVRWWdYc3pUUFZ4SDNQNG52dmlMYUZ3bXZTamg5NkdK?=
 =?utf-8?B?aHBsSmpxVy83WXBGNXpDcDIwakp2MUhHa1BsUnN5dWZCdVE4bm0xRC82ZnNW?=
 =?utf-8?B?UHRacmxaeHNmcGptWDdGd3N2UzZVOS8weTNmYmlNSmhncGJBN004NmxyVmhU?=
 =?utf-8?B?enFDakxwNEx4ems5SG10c2pRcXhzUW5ONnNlK0ZDSEdaV0g3eUxkNCs5UWJD?=
 =?utf-8?B?dTZ3NGlicjUvS1dKbmc1eExwNFBGSU5BUnc1aUJsdHlkRDZTbDdCQS9nYVcw?=
 =?utf-8?B?d1BOVnZhLzNXV3NJU0d5RnYvNEpBNEVucUs4Qlp2a09DM3dpMTU4R2FmcHIr?=
 =?utf-8?B?RzNhelNlSXN3NmlYT0VTQk9veGUzNVF5SUw5Z0ttRXl0WWtWZDllZSsxZWNp?=
 =?utf-8?B?ZUdJeFlzQXlrKzhZbFlCK2EvaENhMkhFSHVQWktTZHBlMEJEUDNBS0JMbEdK?=
 =?utf-8?B?Z1FYSDJGSHhmbjV4TXFKV2pRMUZxbCtaRldrbHNqbkc2YnhJY0xvWS9hdFVQ?=
 =?utf-8?B?T0FCczBnVmxZY3YyeFIzVm9vRzl2RXZTZkE4ckt6b2pPMXpGNkpnQ1gvZ2xO?=
 =?utf-8?B?Y2JadUZHUUJCMlNBMEEyUHNRMFpIWDkwQjY4bU5EUzZjcFJRNGJHK3V5QU02?=
 =?utf-8?B?dmlKUEUwZExHNG11MGtCRmY2OEY2MlhRNXM3cnZaN2VVYUY4SGs2NW9qVXFT?=
 =?utf-8?B?U3NVeUM3QkE5a1R2Um5CVjBJWTNsa2xPcm5XWlFFTzRFRFRWY0ZZKy9Qck0r?=
 =?utf-8?B?QTNmOVJuNXBMKzl3RElob0MvbkxOR1JrZDI4RDVFT1NCQVB3WGpySGZDU1M5?=
 =?utf-8?B?Q2pKY1pCVnpPVEtVRm12RVpjb2lIaVZQMEVUSFpZMzdUOTRUQVBpQVd3TlBU?=
 =?utf-8?B?cmFieTYvbE1CM3FaWW9hS0phcjdlZlNuQ3VKdEVLb3NrbEE4MnU1NWhHOUtk?=
 =?utf-8?B?MThLUGVsQWVLZXJidDM0VVg1Sy9Sd1JuVDFNRVdHRjhRcVNUVFpmRG5heDVl?=
 =?utf-8?B?RGRId2gyZVdFeExzZGpvMlFDcVllcDcwOUlWMGU5bjBCTjk4aitmZlNNaHEv?=
 =?utf-8?B?RHc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7a845ead-d215-4433-ca65-08de33d4dd50
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 08:04:07.3428
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wDkAP6fupqyhkjuPSm7aPYNNC6sg4S99ay6lDdgZH1uUKTUrIr2WbOnQsGaHeuKOaXodgnXgAbeTB2HYV91K30bW+yGuV6MBRiYTzw5JB/o=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR03MB6572



On 05.12.25 09:39, Jan Beulich wrote:
> On 05.12.2025 00:32, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> When 2 or more domains are created and:
>> - one is hwdom with "hvc0" (console_io) console
>> - other DomUs with vpl011 or "hvc0" (console_io) console
>> console output from hwdom may mix with output from other domains.
>>
>> Example:
>> [    2.288816] Key type id_legacy registered
>> [    2.291894] n(XEN) DOM1: [    1.016950] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
>> fs4filelayout_init: NFSv4 File Layout Driver Registering...
>> (XEN) DOM1: [    1.018846] audit: initializing netlink subsys (disabled)
>>
>> This happens because for hwdom the console output is produced by domain and
>> handled by Xen as stream of chars, which can be interrupted when hwdom is
>> scheduled out and so, cause console output mix.
>> The Xen consoleio code trying to mimic serial HW behavior for hwdom
>> unconditionally by sending available data to serial HW on arrival.
>> Xen consoleio code does not account for Xen console input focus, comparing
>> to emulated serial hw, like vpl011, which does the same for domain with
>> active Xen console input focus only.
>>
>> Switching console input focus to Xen improves situation, but not enough.
>>
>> This patch changes consoleio code to account for domain with active Xen
>> console input focus - console output will be sent directly to serial HW
>> only if domain has active Xen console input focus. For other domains -
>> console output will be buffered and sync on per-line basis.
>>
>> Example output:
>> (d2) [    4.263417] Key type id_legacy registered
>> (XEN) DOM1: [    4.658080] Advanced Linux Sound Architecture Driver Initialized.
>> (d2) [    4.277824] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
>>
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> ---
>> This causes random multi-domain tests failures due to inter-domain console
>> mixing which breaks console parsing checks.
> 
> This remark reads as if "here's a patch, but it breaks things". Instead of
> merely "This", did you maybe mean "The original behavior" or some such?

Right.

"
The original behavior causes random multi-domain tests failures due to inter-domain console
mixing which breaks console parsing checks.
"

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 09:32:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 09:32:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178559.1502314 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRSAu-0003jq-RV; Fri, 05 Dec 2025 09:32:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178559.1502314; Fri, 05 Dec 2025 09:32:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRSAu-0003jj-O1; Fri, 05 Dec 2025 09:32:28 +0000
Received: by outflank-mailman (input) for mailman id 1178559;
 Fri, 05 Dec 2025 09:32:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jrem=6L=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vRSAt-0003jc-6F
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 09:32:27 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4c003dbb-d1bd-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 10:32:21 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by BY1PR03MB7849.namprd03.prod.outlook.com (2603:10b6:a03:5b4::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Fri, 5 Dec
 2025 09:32:18 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9388.003; Fri, 5 Dec 2025
 09:32:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c003dbb-d1bd-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=meBn9RT2/+V76vF8s4ASXRvYyjqqRbx4qa8Nc1P8l9xO9C1U1fR/Lj9kWQqkk2rQRzxLf0nfmRB3zZlKeYnRdwsjUVV/vYdFi+GIJc0k8MKsPS5CJcswib+SmRgCXyVltL5CWE9MbmSNbwgV9aospyNzmsXG4t5sshUo5MINzE6YSEFDImrPmTPrw+YDtSJLUsfst+nTsT4lUDlXvqVXlPzXz9jFWe8V8InDpYUfHmx89zgXU1a/1BPyzkgPYfvAxxZ5wQjBuH/D1jgrHcjTEOK2Q6ctx1dJMZ23HVYQIC5G6Fjc+cqeOuBXfxFwZXavpUeHwtp6z+RdSJ0cePm8FQ==
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=KAe3cOIb2k2ogki3qI/S/r4WjMX1NpVeAP258/DgzPo=;
 b=GsCEBQIaGGll/9eL/7KO4j3fW/TmLtjHf0ACkKRg0DrXNfZOcDo99R/PYfiXojZ85stCo+hKg26uHTECg0PF49OK3tT5Fom8KaoLyrTsDqPQflS0i+upW4PazioXo7On7HhSiwa+vos0rv8HucLeWB8UFiDCWNa/Vq+/jqYA7mx60sIthvtyiZJ+knJuSij8CXkHFFqve7QpyN6cxDJCKbSqalOOE0C6vo8OOBZvV3CyCE1ECNxTXdDmHP2BSEoLe6fB9X9WcxBZnBbo8cRD59K88wg0KuJGAN1cteTbDjLuvgRYPQFkIXkZEv51Y7EDw7H4hOadC+utQuvrg+aMpw==
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=KAe3cOIb2k2ogki3qI/S/r4WjMX1NpVeAP258/DgzPo=;
 b=ZY/xcjUHqAyVMbfmlMvr9fRUZibX16tQWzVzmLsxkY7f5aQlmGcuLZEziL56DI4dAUpdHKdyxutImmgWG3lP1a2Ywz4tO/fDUKZD9v5jAh/YQtdVKNiZ7FNruP6qHfzg0XI/P570ohWBS0o3f1N+N6J4ejWhEsvkAbTiBPgLyyQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH] x86/hvm: be more strict with XENMAPSPACE_gmfn source types
Date: Fri,  5 Dec 2025 10:31:51 +0100
Message-ID: <20251205093151.56207-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PA7P264CA0331.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:39a::15) To BY1PR03MB7875.namprd03.prod.outlook.com
 (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|BY1PR03MB7849:EE_
X-MS-Office365-Filtering-Correlation-Id: 32a87fe0-8e8c-4bb7-9ae7-08de33e12ec5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?LytvK053cmZHbktYMlVRRlhpUnhqU3ZwVk9yTVhlK3oyQjRxaGczY0FUc0s3?=
 =?utf-8?B?dmpQNEhYbG5vNDZCdG9XVFdqS3o4TkFyY2xsTi9aU1FBVHpUOVRhTFArYUh4?=
 =?utf-8?B?bndEV1k5SUdlcnhuQzNFQWZRbkRsOHlCSGZTR3RLNEFNaGtBaEhQT3VnUEdz?=
 =?utf-8?B?UnNTVkNGbXcwTWdpUko3MDQwM0dQNHNVd0RiMms5Wm44YnpXZTV1Rm0xalVu?=
 =?utf-8?B?ckxVckJZQVdCclI5bkdkNFVabExuVmtuSk9lTDJHT2lLaVY3RUV0Mjd4UGVJ?=
 =?utf-8?B?OURHVUJ6NzFCQ3pmdUdUS08raFJ1SkYzNmpnblNMc3U5T1BuWWF2OE9kR1R0?=
 =?utf-8?B?ckMvb2IrVjBJSkFyZmJCOEVZQzVuSTFpZWtVcDRodDZNaHQrR0lkRGswa2hh?=
 =?utf-8?B?VFcrcHljSXhMR08vdjVnbGFFVUdLaTlkbFNJaEZaSUM3djNZQ1d4UXNYNjk1?=
 =?utf-8?B?YTY5cmFhTmFZUWc0VjE1VWE5VE1jUkVMU3krSUcvRHFsSnBWMFBKQkFDKzVK?=
 =?utf-8?B?SGRvcVdzRTNmcWR1SHVQSEp1V0R2bVVHd2NBSUtkeks5ZGpTMmVMN2lqOWlo?=
 =?utf-8?B?VDQrSGE1SmNGcWFCa3E2OXhRV3RYSXRHTTBHYWhiVWdQQTdqMUZQRjI4Vldu?=
 =?utf-8?B?Tk8vTjJRbmwzSU95ODhJVmhSY3JXekZIdmFwL2RBR3ZrMlFGb3crdWFPalFm?=
 =?utf-8?B?eEg0K3NBZWl4UElESUMzOHltYjUzY2JkdDYwMEZFcnFHVmRML0FXNEpRWFV0?=
 =?utf-8?B?NU1HM3FGUDlnK0l5ZHlpalpIZ0pvTG1MdHZEV3BLMkkvRXFIZ1VoYVpTTkJN?=
 =?utf-8?B?dEUzV3ZLdDdXVGNoWWl6ditSZVJRSWJ2MFRSUERYVHFjU1NCK0U0UGJiSUhQ?=
 =?utf-8?B?QXdPN1IvYlJFZnN0L1FhOThsaC9JbnV1dEJKNlpIVG5OZDVRZVJCNTJSVng5?=
 =?utf-8?B?YUpBcVZEZlFQeU0rOHpLcktaNUgvZm04SmJBbC9ITHJ3d3docVRhaXNOTVM5?=
 =?utf-8?B?bXRxNjkyMFBscjJYNm1RczRKN1B0RHZiVVVMcVEvVHRvdnFxMzhvdW11b2V4?=
 =?utf-8?B?OEppVE1WdjhNZitNYVVXVzhreW9vRUo3QXJ4cFp3Y29kaXNlK3kreUl6M3Rj?=
 =?utf-8?B?UHRldWR1Y2t2aE1MbktRK3kvMDlST0w2enpkeTdOcTdBQmNTbklxQW5OSEFB?=
 =?utf-8?B?d1BaTUJEdXkyV1JSeGdzN2FScENrWGd5azdQWmIvSnNhN2xoWlJDR3JDQmJ5?=
 =?utf-8?B?ZjdrNFY1WWF0ZWRuNmpMblA1QlB5QitoWkpTSUUybDY1WExOdEVKS2hocGw1?=
 =?utf-8?B?M1ZIb3Y2dm1FRm5zdTBldVd4QnRLM21hcXNFcUlsb0hvLzhEK3VscGpENXNa?=
 =?utf-8?B?VjIrVTljclcrakFUdFhEWVNid3VRenBORlFzbkExR1dkR1Bnbk4wK3dHa3Nl?=
 =?utf-8?B?d2xDdUJWeUNOdktHQkViVnlDcnNCUmM4MnU5SWhLUWNVNjVueUV0UkwrVHpH?=
 =?utf-8?B?Z2U2N05ZQkd0Y3ppZjdXYmRabVBuMkw2UnlVTklIaVQwK1d5bk5RQk5JUXBC?=
 =?utf-8?B?ZzZRUy8ydjJLL1M2TjBCWTNQdzUzTFozU3RWSys5MjZnNHpIcXkxanJPNUVm?=
 =?utf-8?B?MGNlL1lNMVJmRmZCVVAxS2VqZFhwdEdEVnNtUk43TG9WYVpxTk1WQmZTOE8x?=
 =?utf-8?B?Y2FLTDdJYld6L01wdTdBWm03bGxlOXpFRXdrWHdVdzA4VGNxZkVsVWV5U1Ix?=
 =?utf-8?B?T3grc1NpSFFHdFk3cnJqQVcydk9IYjd5NjFlMWlQMHNLYm55QmxzcjdnV1d6?=
 =?utf-8?B?THN6alNVMHhDK1I0TnBxSVR2OTkvNXpMUnBySm1CTWp5TDdKU3pVWlEzV0JP?=
 =?utf-8?B?c3hwUjNZWUhsNnJGWDZ5bHVwNEJCaEFSUXJkNGlmeWRrbnJsZkJUVERPcUNs?=
 =?utf-8?Q?purxiK+6NOJMwwZqdUO19Oi50/G5Sm7y?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7875.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZmUwMTRRRW52QkFoeG84RkQ5by9XejhUWnFBVk5rM1N5ZXRKY09LWTdJT0Vu?=
 =?utf-8?B?NUFLUU9IRkNvWktZdmxSWnU1clVJUnhqOWJRaVp1MWVkaUl0VnZaeHF3TkRV?=
 =?utf-8?B?OFNlbDhWTmRUaHZoVmFjN0crQmdXYnJTZ0ZobFJMZnIxc2FDbytxZTdlU2Vz?=
 =?utf-8?B?NFJMR3pqbml6YS95QjNadGRPS0FFWTZwaTZINzh3YzRDaUkwcHF6b215U2dy?=
 =?utf-8?B?V3o1QjVRZEIrR1NKTWd1Q0xCMC9pSy9VeUlDZ0JwRGIzWjRuQndTMm5JRDRS?=
 =?utf-8?B?RG5id0VxaitCNlZOc0hGQzdkS1V6NVhENVU5SnMwcGkxR09uQnhaMlZDZ2xW?=
 =?utf-8?B?QlpDNVVNcmZua3Z3cHFpdEFXYWFkNTFPZk5qcERrV09MeCtQR0R0VzBSZnlR?=
 =?utf-8?B?WDY0ZXp4aE5Xbm02ZEEwUzJGWHJXOXBHcU1va09HZWN6Y2xjMncwcjFkV0Fz?=
 =?utf-8?B?S2JKSE84czMzZVlCclFLaDMyaHNkSEh1OE1iV3daaGRQbHJCWU45Y2EwZjZD?=
 =?utf-8?B?dklzYW9pL2pickxmcGpxZ1BoUGtIY1Y2cmEzNXZObVEwK3hYajZGUS80U2E0?=
 =?utf-8?B?RWo1ME1vY0R2dzJPMDFrZ2k4OHozeU5wZytxV2xkVkI5a3lOWmpHY001SUpr?=
 =?utf-8?B?Y3J4dDFwYkVSZFBPS1ByS1lPaHBVNXgrOG9XUVNuNkg1NDNxV0x2b1h3R1pR?=
 =?utf-8?B?NXlTUUdQOWVNWWRRbVdxR2MxNitpSlJNb1ZXaXgxV29jL0pKbGRoWXNuQVlS?=
 =?utf-8?B?dGh2MjE5L0tOUmtNWm9JdFRpWUpiNGRpTldXMzB0eXA4b2E2ZEhXcDk0clNO?=
 =?utf-8?B?MGF4MGVRaTA3UWlkWisxeGw3MVR4aFk4RG83eHlNbENrbTNDT0NiZWhHQlkv?=
 =?utf-8?B?Y2p4SDZLVkl1WmZoelIxSVNMa3gyWC9pSDZSekFiNCtNRVhDZ3FRK3QzVHdm?=
 =?utf-8?B?Rm5vYkxqRkxpemFDdG1WdWgycFBicndYQWtZQnhDdEFFMm1hSy9YYWo2R0lJ?=
 =?utf-8?B?SkVINml4Y2FYSGFSOTFxMEpXS2FXVnBscWl1alZwU3BvMTdKVUsrL0pOTEpB?=
 =?utf-8?B?UlMxZGxoU0VyZkNwZ3dsT3NpOEM5WkNGMTlFektBeFdvdWZYK3pZUFk4YlZV?=
 =?utf-8?B?aDdOVTJnWlE1UUJoNU00c2pnWGxWT05TL3I3SnVtVG5ac0xEa1p2QkhZRXVG?=
 =?utf-8?B?WTdxTUZVbUg5MmNyZlN2UDVydnRlQ1M3bi9GeTF4aVFZQTNEQ2FHT0JFYU9q?=
 =?utf-8?B?dis0MSsyMndobTlzWGhBbjdYbmp2UmR0OFNlWUpaSGdKUHVweTN1Ym83WXF2?=
 =?utf-8?B?eWZQK0VYRDAwa1BYbFZ0d0hBZWRpOU02Nk5mSTNpQlYvYTVBWjBqMWtnbVVQ?=
 =?utf-8?B?d0ptbFNQVER6ODdKdlpiczZBRm5LVzJTTWowQUVDS2pzU0lCYjlkSjdSbEF1?=
 =?utf-8?B?TEpBRWlqU2kwUWx2NnVtNVI1VE5TMWd2TlczOCtSNEgzMkQrRjFOVHJuMkk3?=
 =?utf-8?B?TStndFJhbzhvbytBNDZWVHI5SGNnaXJBVWM2SERwTzJqNGs0NkQvSjU1RWZC?=
 =?utf-8?B?czBzbmlsNUViRHFYbmJKM3JUWVpvVXRoWTFweGdzSFVDcis3R2UzekFZRVhN?=
 =?utf-8?B?UmJRMTNKWEgyWkFkajczMjB4V1hQSDBqNlBkRE95ZHhoMHNqdldJSnI1ekRj?=
 =?utf-8?B?QmxaQXUvSnpub0tBVnUveFBBK0IwNjlXSm5EaldjZGVnNWtBUTg3WGNaMnhB?=
 =?utf-8?B?T0JyaGFVdTJiMDJ1S2g4bnJvTHl1c1JSS0RjN0NKY1RKWmpsU0FqY0tRWWRt?=
 =?utf-8?B?UTFuei9zSi9ZRkEyNVRRWHBzUVFHSFErZkxmVUtQLzUzMkU1akJpdW5rL3Q2?=
 =?utf-8?B?R2xxQTFSbWpuK2xua1p3YTlKVVgwV0N2SnZQWHVDanlZS0VVckhlQ0pHM0ov?=
 =?utf-8?B?TXlLSnJWdUR4czRDcnd2N1lNeStHVnVEUDF6TnBtdnplYW5UV3NSb1FaMzNq?=
 =?utf-8?B?SGhwSHhPVEg0QWtIWjlwMktRQjlCbmNKQVlndlRoYitQbVJESmN5OU91WTlp?=
 =?utf-8?B?M2lQN28xUzdBVmVqa2pMaEZYaFV4VVAxZ1hiM0ZyMXQ0VTViR1NROS9CVGk3?=
 =?utf-8?Q?9aC7d+Ju4EKWY8JSsMcB6dBeW?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 32a87fe0-8e8c-4bb7-9ae7-08de33e12ec5
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 09:32:18.0905
 (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: iIxyphNgVvRdjjJpq3e0ZLRgYXTyDzfaD2tGhyUcZwCHn0FQrCJ8JajWiJylTfGuB4ouQ6V+HhtFdTsHJs47cw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB7849

XENMAPSPACE_gmfn{_range} allows moving gfn around the guest p2m: the mfn
behind the source gfn is zapped from the origin and mapped at the
requested destination gfn.  The destination p2m entries are always created
with type p2m_ram_rw.

With the current checking done in xenmem_add_to_physmap_one() it's possible
to use XENMAPSPACE_gmfn{_range} to change the type of a p2m entry.  The
source gfn is only checked to be not shared, and that the underlying page
is owned by the domain.

Make the source checks more strict, by checking that the source gfn is of
type p2m_ram_rw.  That prevents the operation from inadvertently changing
the type as part of the move.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
The change was discussed internally by the security team and deemed not a
security issue.
---
 xen/arch/x86/mm/p2m.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c
index e2a00a0efd0c..452b2f8f0f10 100644
--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
@@ -2007,11 +2007,15 @@ int xenmem_add_to_physmap_one(
     {
         gmfn = idx;
         mfn = get_gfn_unshare(d, gmfn, &p2mt);
-        /* If the page is still shared, exit early */
-        if ( p2m_is_shared(p2mt) )
+        /*
+         * The entry at the destination gfn will be created as type p2m_ram_rw.
+         * Only allow moving source gfns with p2m_ram_rw type to avoid
+         * unexpected p2m type changes as a result of the operation.
+         */
+        if ( p2mt != p2m_ram_rw )
         {
             put_gfn(d, gmfn);
-            return -ENOMEM;
+            return -EACCES;
         }
         page = get_page_from_mfn(mfn, d);
         if ( unlikely(!page) )
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 09:51:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 09:51:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178574.1502324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRSTJ-0006WP-BT; Fri, 05 Dec 2025 09:51:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178574.1502324; Fri, 05 Dec 2025 09:51:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRSTJ-0006WI-7r; Fri, 05 Dec 2025 09:51:29 +0000
Received: by outflank-mailman (input) for mailman id 1178574;
 Fri, 05 Dec 2025 09:51:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZEed=6L=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRSTI-0006Uz-5K
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 09:51:28 +0000
Received: from fout-b2-smtp.messagingengine.com
 (fout-b2-smtp.messagingengine.com [202.12.124.145])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f37dae9c-d1bf-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 10:51:21 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfout.stl.internal (Postfix) with ESMTP id BDCA41D00165;
 Fri,  5 Dec 2025 04:51:19 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-06.internal (MEProxy); Fri, 05 Dec 2025 04:51:19 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 5 Dec 2025 04:51:18 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f37dae9c-d1bf-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1764928279;
	 x=1765014679; bh=Q2RQwVyBrJPbkDGVao8N5yspjwHZGjVgo0c3wXL0Zq8=; b=
	g8mDXwT9uFM875UgI88ESs/XVWay+2Zj5nH+wRtJLAsDWp9u55rr14lKJxey6k3U
	mIq/SpJa1zxV4nbmJUeAP+920kOR/CFSZdCNckaZkB8JZ3vlLShOmg/rUOkPgdDa
	qqxMbRsim7HcLDfVWsakCQf3dIza52dXR7XYyBfDVnY2+mlx7sw8fIcYwhbCHG+a
	8NAZIRxKTw1uYT64PNT7B1wmV+jKpkgT16n88KmsF7QRUzdmIAV6+TSlYTNc4SKP
	L0aHkvxN6sB8lgUzVWpTpv78OBPuAELws9sndiKkqwH/XhyS+8/7fsw/otlHXbyX
	GUX4vABlD6mIiTLNMgirEQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
	1764928279; x=1765014679; bh=Q2RQwVyBrJPbkDGVao8N5yspjwHZGjVgo0c
	3wXL0Zq8=; b=LjNdiLp2Y+VB59wUY4djK1rmyXmoTU3ebUXtYSQee+1lZPauNqy
	RB3icRehXdNODgaYb29Kkeqcd2lb+3zKLlmsRstNmgksO7dXUPoCNt/oxwLZIapf
	PbtQ3AKy2ffoewkOVcyT67ZCmiYggIWn+MRwFGtVYtbBSg1Oq7IgZLGBpmU1eJ4Q
	lim7Aa1XOgtuYrAmlPRvlzpf3DmmJNYbBu5xqpK8ePszMXO2FttKUC3AN4GRazZo
	e772uZJbxViyt8XGPM0EFH62BRdBe9mIyGhNBQul13wdUtx9qBrYYL1dMHtDpD7h
	ms16SU6bwNefm/+7DHvmygBa3fmXvw7Ojgg==
X-ME-Sender: <xms:F6syaZj_kBshY9uQzp1TZtLRn6E86ZGzU_p46NgHR3_GgrCL_Od3Ew>
    <xme:F6syaU5KrI3ULT4WjussnGP-CTt5PMbdfFQkcZPhTtD98Zr5rQUIGx0OJrcRdFBAW
    YSEYuhVMm2i3w2BdytP8K7qoN7U9i-cq7PeNwkgjGJ85Hyu>
X-ME-Received: <xmr:F6syaRZKGOS59Pj2olNGVtSTBVe9Gr-OBhyB6B8tmp9P_wzy6ui0Vi6PO7H-veaNPJ1MET4vfTbeqa8voeqj8HETXLMBHEqENwA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdektdeiucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    epfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcuofgr
    rhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvihhsih
    gslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepveeujeetgeel
    leetudeuvefhtefgffejvedtvdfgieevheetheelgeeuledvjeevnecuffhomhgrihhnpe
    hgihhtlhgrsgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr
    ihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrd
    gtohhmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphhtthho
    pehjsggvuhhlihgthhesshhushgvrdgtohhmpdhrtghpthhtoheprghnughrvgifrdgtoh
    hophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhi
    sehkvghrnhgvlhdrohhrghdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigi
    drtghomhdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhj
    vggtthdrohhrgh
X-ME-Proxy: <xmx:F6syaZ550Na3iPH8juIfzbEsoo6B_NMr8RRs8I---TkY0wUrCbdyMg>
    <xmx:F6syaUB5xRpZksb-6PrTOcg_ATkxO2iLrWs9WqwzWYjmsy7sBod08A>
    <xmx:F6syafd5ABy9KVeS9pP1mbZDnBfE72rjoAvTSKJQFjd8yGugJ9AKtw>
    <xmx:F6syaTIgtVGmICAoYBeNRCjaoB8oSuD7PYrQlePWhy_U3o4bOpJA_A>
    <xmx:F6syaVpZF0usdcIDd969IZqYXgEd53VVb2wJujBSnJ9hHN8k_rDJgRg5>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 5 Dec 2025 10:51:07 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 00/12] Changes for several CI improvements
Message-ID: <aTKrCwCNwtT9ysIz@mail-itl>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
 <16830f7a-1bc9-472a-adfc-1d959b6fa58e@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="ri+GoeUlSDMGECYy"
Content-Disposition: inline
In-Reply-To: <16830f7a-1bc9-472a-adfc-1d959b6fa58e@suse.com>


--ri+GoeUlSDMGECYy
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 5 Dec 2025 10:51:07 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 00/12] Changes for several CI improvements

On Fri, Dec 05, 2025 at 08:34:10AM +0100, Jan Beulich wrote:
> On 04.12.2025 17:37, Marek Marczykowski-G=C3=B3recki wrote:
> > - Alpine update
> > - Debian trixie
> > - Linux stubdom
> > - test arbitrary linux branch
> >=20
> > Technically, the last patch isn't strictly required, but it eases debug=
ging.
> >=20
> > Green pipeline: https://gitlab.com/xen-project/people/marmarek/test-art=
ifacts/-/pipelines/2196630637
> >=20
> > Marek Marczykowski-G=C3=B3recki (12):
> >   Add Alpine 3.22 containers
> >   Switch Linux builds to use Alpine 3.22 container
> >   Add debian rootfs artifact
> >   Add linux-6.12.60-x86_64
> >   Enable CONFIG_USB_RTL8152 in kernel for hw12 runner
> >   Include git in the ARM64 build container too
> >   Support building arbitrary Linux branch/tag/commit
> >   Save Linux config to artifacts too
> >   Add linux-stubdom dependencies
> >   Prepare grub for booting x86_64 HVM domU from a disk
> >   Prepare grub for booting x86_64 HVM domU from a cdrom
> >   Setup ssh access to test systems
>=20
> Like for the other series, where one patch is missing, I'd like to mention
> that here patches 01 and 03 didn't make it.

Yes...
I don't know what to do about it... xen-devel list reject emails with
dockerfile changes as "spam". People CCed directly got it. Should I
include more people in dockerfile patches, just in case?

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--ri+GoeUlSDMGECYy
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkyqwsACgkQ24/THMrX
1yzAzAgAgleBENfOGeduTjvDFY+aWuStHI00yi518MJ7uOfmpYvMKuu3O6uk/b7F
4/56Evt3HJ+yjA31ijhjMep3nYK00Qv86XDa2sIYff1EC1HRjzCViuW59LVCYYJi
IfsH1dzfn1GcMs+t1F++ZRDvcIZ/jwr7O6PkwGlTLcREVnnNIscet7+lNoRspl6G
m0BDsepBf6wG0EMyGMYGoIK4CIqQXV3LLcuMUJIRGEg0GImLdRZO5xMdYxQDcCaH
qlpq/hpsJtOuwo3PGuxna8K5ZA/x3UXCFgzEGCWvtg07YjVG/iTCvOewetrXGybE
NcnOnbU6RMxCIPaAHNoPoczILTYXMA==
=pXmm
-----END PGP SIGNATURE-----

--ri+GoeUlSDMGECYy--


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 09:59:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 09:59:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178588.1502334 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRSaf-0007E3-8D; Fri, 05 Dec 2025 09:59:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178588.1502334; Fri, 05 Dec 2025 09:59:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRSaf-0007Dw-5H; Fri, 05 Dec 2025 09:59:05 +0000
Received: by outflank-mailman (input) for mailman id 1178588;
 Fri, 05 Dec 2025 09:59:03 +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 <SRS0=7OvG=6L=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vRSad-0007Dq-GV
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 09:59:03 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 06aa2667-d1c1-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 10:59:02 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-42e2e77f519so1399061f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 05 Dec 2025 01:59:02 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbe8fdcsm8007451f8f.6.2025.12.05.01.59.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 05 Dec 2025 01:59:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 06aa2667-d1c1-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764928741; x=1765533541; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fSwK9fCUE0C96+EBr8cE2uq9R2lO759fF4j2IVlT98I=;
        b=BWaeo8KiTtHa9+6r8jceV6hDY2M1XZI2SmQ5sO2qgtdzUIvHqlQStyfSsihUn6lXnI
         yM5hzLVrEBwY4Is+N/aO9JLa0uQfca9wQWkA1aK7QtQaQ71xGP8ayttUjOv6mHBio30d
         d8yYikMhiO6ymhf8ijBzEl6WBG2ac+FcpRlR7s0kbP3TmRfKaaz0XOMdX00a2CxQL5Y2
         MEe/O17UbuPYC32Ry2qajQYfBBO7bTW9v1b5HfyPR4ETHGy/fhjC3TRrE1+EJv0fg3de
         Ewj14YWMFePemUdkvbMu/MBotHlgouakEqDYYH8HW5fDy5linOBQzwdX70fIVb+MW2X+
         bqVQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764928741; x=1765533541;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fSwK9fCUE0C96+EBr8cE2uq9R2lO759fF4j2IVlT98I=;
        b=A073ThN/jUTobNP4uT1QNo8QsJFLc6jPxRyWARW8gBvvy6ml18JV4f13qMsJ8UdGEL
         I813pKMY0ffcdYajQl3fJJuJAiTSO2yRKN5hDDfJa5wuhQ5swc+3I3Gl7mNcwQaXhroT
         yvo2d8VobNDOU6eCxml8pjH3b27gc62pwfP9NeUHHaAV7xNWRmCUGj1U5ofgnnKKBsDV
         062CqnFriJ6PNJ8JCbUkKdwmfushJcvNrYonpLF7lJZhMnCjw8bVkJs9MmTlJRf5fjQW
         gprTrCpxWF40ExOew/jKkSl52y+Y/kCzxXe3ofxghoOTCduqbuRBDRZOK97B7bDJsgOg
         Yw3Q==
X-Forwarded-Encrypted: i=1; AJvYcCXsd1CDn1lMTYkpyHw54XJtakJEhQq3Mwxn8l0E1Q4dlhyDmMDEZgra/ev1zNVdZ2QbYwtkyAIK1Ac=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxjoEhK3U5yCuWki2u10Dy7MaHhurqTx6ZkMNRlWv8+oFH/FbJf
	Llf0+3A7/AZQ80J/H0GDYNCRdO7MoxCJACKyUSGBxpv3+PxyCuzoXsLtSBEIobQosA==
X-Gm-Gg: ASbGncveNvSvVqIQD16NC+A3T8TjZRq5z9ZCYnlT4fNR38yF5yEBUyY8z0hTH8/du28
	M+KFJxyzkEZaotvxVWYKX6SsNYdh24MLIXL3NqH9idP/gNzXDILiGwihdIUAfU57ClnKzhkSQr5
	lY5Y5cc2ywtoPDi0O7geioB4/z/8k32H3G0lRibZPYXNQP0xdsnqBdc9ubJZfBb/LCaaDrtCZ0F
	bSG53u9RNaWc6z2mA7dezunOOeVzQzzBNW4lYyPQtCpSSfG5jfZt0mFYUq9sNwF3yddY0hKRSfi
	97PlSUyUEv50WQgmtWXd75tXNhO8hxZYYJzzH/vpVPA5zvkkL9BHhlaisct0m7Tp+E312x2bkL5
	CdymYV9VNhEzxeZA/EnpYIshCwiQUlGSqMgqVpS7P3m8P2dkkK+zUWsIJoR1Ym2VgyL9Hy2sg7K
	OdNMg9BsFGnGhECcvT46Z8MS8nUoNBJnlFTt5vTDHMgqh3b7avQxujTAcwKQl/g33tLjjz3Jpim
	qSd/ttH6qZ0Ig==
X-Google-Smtp-Source: AGHT+IFchfcOzbIbyrjaHWggo7M+gSnOYWQUUFdQju3w0UjEl7zS1/8iodAsVFIF4jYKizIPy6jnaQ==
X-Received: by 2002:a5d:5f84:0:b0:3e7:45c7:828e with SMTP id ffacd0b85a97d-42f798482c0mr6723782f8f.33.1764928741423;
        Fri, 05 Dec 2025 01:59:01 -0800 (PST)
Message-ID: <54cad03d-5530-4d6a-b3c3-956906daac1c@suse.com>
Date: Fri, 5 Dec 2025 10:59:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 00/12] Changes for several CI improvements
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
 <16830f7a-1bc9-472a-adfc-1d959b6fa58e@suse.com> <aTKrCwCNwtT9ysIz@mail-itl>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aTKrCwCNwtT9ysIz@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2025 10:51, Marek Marczykowski-Górecki wrote:
> On Fri, Dec 05, 2025 at 08:34:10AM +0100, Jan Beulich wrote:
>> On 04.12.2025 17:37, Marek Marczykowski-Górecki wrote:
>>> - Alpine update
>>> - Debian trixie
>>> - Linux stubdom
>>> - test arbitrary linux branch
>>>
>>> Technically, the last patch isn't strictly required, but it eases debugging.
>>>
>>> Green pipeline: https://gitlab.com/xen-project/people/marmarek/test-artifacts/-/pipelines/2196630637
>>>
>>> Marek Marczykowski-Górecki (12):
>>>   Add Alpine 3.22 containers
>>>   Switch Linux builds to use Alpine 3.22 container
>>>   Add debian rootfs artifact
>>>   Add linux-6.12.60-x86_64
>>>   Enable CONFIG_USB_RTL8152 in kernel for hw12 runner
>>>   Include git in the ARM64 build container too
>>>   Support building arbitrary Linux branch/tag/commit
>>>   Save Linux config to artifacts too
>>>   Add linux-stubdom dependencies
>>>   Prepare grub for booting x86_64 HVM domU from a disk
>>>   Prepare grub for booting x86_64 HVM domU from a cdrom
>>>   Setup ssh access to test systems
>>
>> Like for the other series, where one patch is missing, I'd like to mention
>> that here patches 01 and 03 didn't make it.
> 
> Yes...
> I don't know what to do about it... xen-devel list reject emails with
> dockerfile changes as "spam". People CCed directly got it. Should I
> include more people in dockerfile patches, just in case?

Personally I'd say no, but maybe others differ. Imo this needs solving some
other way, as legitimate content really shouldn't be blocked from hitting the
list.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 10:04:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 10:04:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178598.1502344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRSg9-0000Vh-RM; Fri, 05 Dec 2025 10:04:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178598.1502344; Fri, 05 Dec 2025 10:04:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRSg9-0000Va-Nr; Fri, 05 Dec 2025 10:04:45 +0000
Received: by outflank-mailman (input) for mailman id 1178598;
 Fri, 05 Dec 2025 10:04:44 +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 <SRS0=7OvG=6L=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vRSg8-0000VU-D6
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 10:04:44 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d1d87144-d1c1-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 11:04:43 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-42e29739ff1so831518f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 05 Dec 2025 02:04:42 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbe8a7bsm7860382f8f.4.2025.12.05.02.04.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 05 Dec 2025 02:04:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d1d87144-d1c1-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764929082; x=1765533882; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iBQnP8xcieGIPUKoxaA09ieaCWnBABipBnTgPxfgydI=;
        b=T4X7npmdCTKZBdR9tAzxPg7en6KeLRpy85/OlB2xRJh66j0lgg1YXLoUWmj6nta8MG
         4LkdIT+k/wVuQxpV7YIVhqGEdFTX3Qoz7nN8AIH7SxqvF/tz6KClIXf2RhDj6wQBbx9s
         nY7wwUPW8KDY4jTL2Z2qVAs1aKh9i642/zZzPXgHxJMiG+r/MQC+fvfbG7lT1icdtcHX
         dFZs/P2kpMYoixCyRRZifYhs4+ivn6knbskOuT3sj/ehcnxOt30IULRpUEWlhpdss1ko
         5Rnark3whmasF5A6cB9Xg1rzzENTJnBr5dVBsca8UFom7VHQQOnImoL8LBfIWpzjv77F
         FXWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764929082; x=1765533882;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iBQnP8xcieGIPUKoxaA09ieaCWnBABipBnTgPxfgydI=;
        b=gilPMP6UuoEvK7ePz5HlaudXi5+X0fTpO5UgO1dUBh6tkc49nF6FehT/Ix55Qffwnu
         AE9yXp9nnLJcGaVlzdQ9z8FFXXtBF8Ck3etaDEuPlu/GiFcllhn3kgk7Jmy1M5goRdp5
         fGVCKocyNnivfygYuqjuYFcfIkjLcjU0CefUBx3enj9DzavzjlP4l2Dd/p1rTCAXyus7
         bG/GZh0pyZEsfoVm6b8u+yvYAjejRCbVn0GwC0UQAI/lem0Umo687MP3XKG2OngeGIso
         roi1nUXrz9oHSzd2qwNBUy165vFzVDvTQevOiOejNB4ieWuTRcXPszW34BaihHeZAS85
         EWJg==
X-Forwarded-Encrypted: i=1; AJvYcCUoBiO3rEAOegqZIuMU2rVh14bErLnTXQCm2BLN3cGhqzLc2iQpgFzhh6h/DCjIIYSZiqEcvBJqNLM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyXI2n6FyJVePu23gWkNJlW3DLva10cmFOslkwlzg3RO7IhgMSH
	OPiCfyX+JRCQ97pIkD0YAgqVuuaKQVxl1kftIQThUI1wR9RWkXtJ4khYmnur1HOhQg==
X-Gm-Gg: ASbGncuuvFi853rMPLIAFGkeuMpsXcvHycvW5xmCk3xFbjPQ18XHDinKQnhIBFkfnyn
	kke+TLHMOpClvOu6RserPrGZzeCtFDuckZDRZfo6sJ9rc6V7LefEgTMJ2R8yaams227oo41LskN
	+FpTMRofYU5dAI8ykgD+OKVAP1Znhq5WTemnkJ9A83G24qJN1xRYGFuJo9SNvg0jJp8xiRTlHIB
	Lr1Nkzc1QDF8dddP23Aub/ReRt4XOF6jZZ/I7TvnbToQJYEcXlwG2lxZHWzXuMO1Pf10i+aHVbw
	NlWPx6VOI5B8M6A3e8Mqfp/sXxdQJap+V1io0oLji3frrkpHf7Nu0fdmVhL2ulj0CgxnkLYo9Au
	cFP4dsmEMpEFS22bSUXeXLDy7X2AjVOe2iyTn5AplHHAwbg4efDieOqmTej3zs17DCFoGFkEAy6
	fiTVxtiBxRrnD8YeuPyKG7TKDwlaf0DzQmIKppTVRN3jyZiHPlhX2bYv8G3nKuQ6tnBYEbHwGFN
	p4=
X-Google-Smtp-Source: AGHT+IEynt2Q+8Q4NPCAEhNauQSBxVPjAMuxsa1WL3rR851PPwmPjYsnBZnIFFPr44zlDgm/pDnUbg==
X-Received: by 2002:a05:6000:4009:b0:428:3d14:7378 with SMTP id ffacd0b85a97d-42f7887dd3bmr8029877f8f.24.1764929082349;
        Fri, 05 Dec 2025 02:04:42 -0800 (PST)
Message-ID: <6922a720-cf38-4904-91d7-5bf2ee6abdee@suse.com>
Date: Fri, 5 Dec 2025 11:04:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hvm: be more strict with XENMAPSPACE_gmfn source
 types
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251205093151.56207-1-roger.pau@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251205093151.56207-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2025 10:31, Roger Pau Monne wrote:
> --- a/xen/arch/x86/mm/p2m.c
> +++ b/xen/arch/x86/mm/p2m.c
> @@ -2007,11 +2007,15 @@ int xenmem_add_to_physmap_one(
>      {
>          gmfn = idx;
>          mfn = get_gfn_unshare(d, gmfn, &p2mt);
> -        /* If the page is still shared, exit early */
> -        if ( p2m_is_shared(p2mt) )
> +        /*
> +         * The entry at the destination gfn will be created as type p2m_ram_rw.
> +         * Only allow moving source gfns with p2m_ram_rw type to avoid
> +         * unexpected p2m type changes as a result of the operation.
> +         */
> +        if ( p2mt != p2m_ram_rw )

As asked before - what about p2m_log_dirty? Imo that needs permitting here
as well. Making it become p2m_ram_rw is "natural", as long as the (new) GFN
is suitably marked dirty (which p2m_add_page() looks to be doing).

>          {
>              put_gfn(d, gmfn);
> -            return -ENOMEM;
> +            return -EACCES;

Since we tried to unshare, imo ENOMEM should continue to be returned for
p2m_is_shared().

With both changes:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 10:11:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 10:11:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178609.1502353 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRSma-00025n-G7; Fri, 05 Dec 2025 10:11:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178609.1502353; Fri, 05 Dec 2025 10:11:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRSma-00025g-Da; Fri, 05 Dec 2025 10:11:24 +0000
Received: by outflank-mailman (input) for mailman id 1178609;
 Fri, 05 Dec 2025 10:11:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jrem=6L=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vRSmZ-00025Y-Ih
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 10:11:23 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bd6239d1-d1c2-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 11:11:18 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by SA6PR03MB7615.namprd03.prod.outlook.com (2603:10b6:806:43d::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Fri, 5 Dec
 2025 10:11:14 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9388.003; Fri, 5 Dec 2025
 10:11:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bd6239d1-d1c2-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AgbdRS9ToWCSluHTY7lMM5gbJu0FvwZfkmst/WHCRtObLonwhDblK/wp/L+1bAsw4zqjrSIiiVaWfRd9Zq9hIwaKh2RDnbkOzlsBl3dPr5BYKV5CYlenbC2qPsqo+xXbsJT9AbeAXk4O5104ymdJSu24V6y/csxbIdg+HLrkrLYAAuB6HZdYKXjRqcLD3YBTlW9N9iM5qS23n8cjWyTO9eOG2ygaT1sTG8exKDd+SC9Dgk6L6lrtdCYqwvOEzFctnatKeSMODlywzHaRQ7eSdhwgSZZdYQawKnEf1XaC7lq2nuluYksJExbuaZcwlB+yuAAJSeLyKz6FxObEgPAzgQ==
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=TFp2gWvhz88ECDiE3DmTP3jvDKyxuydcZtQ3k3DOMGI=;
 b=rRUwYcdCQaL/lb8HDtoe/oqyqNkzpV1PGCIPaSCTypDn7sD5YugB772hsqSF4fhXc6LjBd2DQrCELA0mur+sK8ZiOVL3WfGJtNBm/sb0xttcuTXF5pbxERfH7zwMYcK+5+F6afQx2YN2eEj4U9pHea00TRPZj4EhDf74FrfVssV0C9wRDcsGg9lJn/IUhoLRCrTFpPsyh0/O30Qv8Xy11nMYTrse7MnCVdwXT2IKg/2ZO5qZ8bBaO+DGeiyfWCfFibSKu9uUmJlVJe+muSG+V2/2oARstqUCPJfcJB23aQLTgEzecoqjwJblVNPx92Vxz3UJVSEMap5IbAj34oksZw==
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=TFp2gWvhz88ECDiE3DmTP3jvDKyxuydcZtQ3k3DOMGI=;
 b=hu9/Vo02vIkZ2299LfSu6kSmi0Hq0My5U795UqWz/FiGjpM5Pgv9fVmhkYlt7iGB9LDySijmcwFrp+vrtwtNfcRpP3RoDLaG5wPg+3BoGk5yeM56CPrkhNOJ6pQGQYyp6u1utlU6DbEpH48NBGhXAbwmblbVxe1RiYgc2L04yUI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 5 Dec 2025 11:11:10 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] x86/hvm: be more strict with XENMAPSPACE_gmfn source
 types
Message-ID: <aTKvvsJLb30C3t7c@Mac.lan>
References: <20251205093151.56207-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20251205093151.56207-1-roger.pau@citrix.com>
X-ClientProxiedBy: BL1PR13CA0411.namprd13.prod.outlook.com
 (2603:10b6:208:2c2::26) To BY1PR03MB7875.namprd03.prod.outlook.com
 (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|SA6PR03MB7615:EE_
X-MS-Office365-Filtering-Correlation-Id: 6cb42f1c-b7b7-442e-4a8b-08de33e69eb5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bGJFNlR0M0h0VFRBSVZIc3FIbzgrOTgwZ0hCZmlBZkNOSGdvWXZSQ1BwdEto?=
 =?utf-8?B?UlNtZnFjRFgvMVlRL1F6VWxyNENRVlloNUNMZFdRNWlGNUMzeXAyZm5xeFFj?=
 =?utf-8?B?SURPOENwZnpQSnFKR0Eydjd1aCsrWTJKSzlud2N5UWlzSTdzcUZCTWNtV1pn?=
 =?utf-8?B?VFppVktsaEczR0tLRlRsd3BBUUZTZTJJWGZUL1k3Q2lQclVSeUZ2TFVaNjY2?=
 =?utf-8?B?NmRTVXhudWU3akZYcXhzb1Z0UjNWangwUVRvUjkxeGV2bTR0Q0tmNTBMVklF?=
 =?utf-8?B?S2RCM08zdFA1NG84ZHRnV2pZV3p0K2lNNlM4dVZ4Znp2S1YxUGs5enRFTEpu?=
 =?utf-8?B?NVlUY0VYQlNSa1JyajFNWTJaWSs2Y2hxaGhhSGxaR25GWnhpUVAxc09jVGd5?=
 =?utf-8?B?WWljMTBvRnNnQ3BmVlU1VitDUGRJOEY3YXB0Sm12UzlEUUViNGUvWVZiUitS?=
 =?utf-8?B?R2E1VFl3SGFmempEVDI1OXNZMnI3MjduUm5Uc015Y0c5NkRVamdOclZPcFZO?=
 =?utf-8?B?MHNBbk0weEFVUlBPbGI3ekJSczBBNlNTcHFRVk5qc3pPMmF5SDdjWCtybndu?=
 =?utf-8?B?NnhEN0RGMmh5SEdTcnczZGZWVVJBMklnMDRaT2J4cWtTT2JZb2VlY0tsM3g4?=
 =?utf-8?B?MW9ZaFNHZ0VzSGdFSFp2VlljM1JhWGRwYVM0SmtKR1dSZTNPY3pFYXhZeWpK?=
 =?utf-8?B?eFdJM1VaZlpVKzIvb1JxU3hBUndIaW1oZHlVbE1NNENhcnBWckkrUXJYWmVk?=
 =?utf-8?B?NnVXb0JTNzhnd2hjMHIrT1BCUC9NWnpDM1EyU3lzTi8xSS9vUldBT0JSaVk0?=
 =?utf-8?B?cllyVXlYTENhV2grZnczbEp2UnpDRkM3UUdYaEtlWUtkaHJHQnNMWVlrL0Zw?=
 =?utf-8?B?NE4yV1hsWEFKMnBsVkxERTNoSUo0QkhidGlRSUZPdGxIU21pd0VZTzFtR0pz?=
 =?utf-8?B?WndHbnlDTkNEQkh4MEgzd1J0aUcvRUwyUkNtbWlwa241T0NKZm5Zb2JpZ3Nq?=
 =?utf-8?B?bVBWS0hLMXVxTC85S1p0STExLy9aK3NTQkdjbFhmbkQ1V0hlZkJXRDQzQlBL?=
 =?utf-8?B?a1doL21hNDhCcHMzSXVZZmNSUjI0eXlLK05LMDFnU0UxRXJadFlmMjBydUJ4?=
 =?utf-8?B?M013Q1ZLOUkxc2xMNVVaTDNSSC9QY3ppUTNzdUV2clhKTnVWendsQlZjMnl1?=
 =?utf-8?B?M1UvV2xpWE5MOVlWSTRvTjg3L21RTHJSK0ovdXViRFV0SGx1UTVVaDNQOXdl?=
 =?utf-8?B?YWNCbDlETmxnZ1g5d0lNMERJdGxVVW1WN2FuamJXSFpqZXBNYzQyMk1aM2NW?=
 =?utf-8?B?M0w0VGtrUkFnUVBsaDFhcHJyb3l1SEplc3diRkNhM0FiUTcxeStqd1ppZDNT?=
 =?utf-8?B?WHJNL29FQzlXNnA4eWUrSmx0anFYYzRYRWhEdGpvUGx2bk00djlFbUFpWFVq?=
 =?utf-8?B?UUZHUWZiR09nVFg3NU1Yd2VSazdrTFZvdFljNlVNcWlSVVdaMndKNXArbEZV?=
 =?utf-8?B?N1JydlFBZENPLzZKY044ek5qVmJlQVVhQUhJNlhFV1BXR3gzbDNuSlhXREh4?=
 =?utf-8?B?ZEZtMEJuWUJ3MnM3N3pBVXRqeXVPRHBtNzE0cks5T2NoZlNxQzdheGVrSTUx?=
 =?utf-8?B?a0hVV01FUysrQ0s5ZmZVaDJ5V3dXWmg0REVVVHU3eXp5NjVGeUlPRFFCRURD?=
 =?utf-8?B?dXY5N3hocVBkK01mY3pxSC9LYmIwWCs0S2E0Z3IzdktWcjg4czFDeGdCTStI?=
 =?utf-8?B?TlB1WldZMHhweVI0NFhBYVZ1YVpHWkRic21aTlJHK1JxUWlyTkZma1hoNkNh?=
 =?utf-8?B?eWJXQy9aa3Q2ZU12TE5XWmo5V3A2K2tJK3o4RHd5OTg2aUdPVzdFNS9FUncv?=
 =?utf-8?B?QllSdmF2eU9wb3NFRFMxZFBFblVwMkJSZ0ltYk5Ha1RxeVlnNnJ4d0hsY2Mr?=
 =?utf-8?Q?AfWM1h7nrPWXM20eTF1kd5VukO5i57Xn?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7875.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eUM5RW5qK2lxZHRrWUx1dEthdkRISEp6ZWNnTlA1ZzREWEFyS2Fadm5wUHJy?=
 =?utf-8?B?N0VBYk1jUVBQYjJNQmlMemp0QWdSTU5HZzl6Vmh3VGhlVXk5L1liYU9EQ2po?=
 =?utf-8?B?TDNMU05LVFFIaVY5aG92TW1KZkdTN0JaNVJtQ3hTbjZSejd0Y0dDb3oyd2dN?=
 =?utf-8?B?SGdPdTl6NjI2SngxUnNlUmRRd3c4WjRMR05FTy93MjBtSG10Z1RxdGNScERO?=
 =?utf-8?B?NmtHU011NG1PdzJ4Wkt3bm4zN2tyYXJiT1o3SDdWRlFZMkR4WlpVNUVpSWs1?=
 =?utf-8?B?VG4xQW53cGRCbW1TTzJoYVhVSllFaVU1ZWhkQ0R1ZDFBOWlIUm5Va0h1Tmx2?=
 =?utf-8?B?ZXc2TGhDZTlkQy80QjFSWVo0NXRHdFUvSjNxOW1Pd0dmQmF2Z1VmZzBjMXUw?=
 =?utf-8?B?Y1ViVEtXbzludVRFSUxZSjRGUnRnSGlyZXNqL05kdEQvR2paVFBmQ2FZR1pG?=
 =?utf-8?B?Zmk3a1dkdXh2dVJoMFd4WEZZMSt6ZW5vY1lCbHJkMzBpSnlCVGxXNFdZK25J?=
 =?utf-8?B?RkgrRXJkLzdUZWU3aVI1cERuakxHUVVRRHFlY0ZHa25HUVF5Q1VJK0pYeDQx?=
 =?utf-8?B?djlFNFRwV1l4VGplMjRXQ1plVXhKbGFwU2krZmJYNjFvR1BVWEpxT28yMXpD?=
 =?utf-8?B?c29CMDZEZXJlZUEyQldoOGI5WVpjZUhzbjRNQ1FWQTY2WHVKSk1YOEI5SWdB?=
 =?utf-8?B?ZE9PRUU4bEc0MWs1eFErUVJROXI0T3FSUndCN1RyVnIxbi9kNDJXQVhieWtl?=
 =?utf-8?B?OFlGNW5xNytwYU1YY2JCU3NoTHpzZ2JOZkFlTTVxaFljZGVtWkpSNmpIN3Bz?=
 =?utf-8?B?SC9UQXVBcXVrV29LTGJBcGxPaWZCREpiVjFOcmlINWorclVZRklpSGV1Njhp?=
 =?utf-8?B?OUhySXJPZmVHN2poK0JKcW5XMHVFY3E2c1dUaTg5dGRRZVRldWU4NjNUUkxR?=
 =?utf-8?B?REJOUlJYQU1veEhnQUFDenJ0R3lWQldCRlJZd01pWGI5UXFQT0czN3R3L0Rj?=
 =?utf-8?B?ZnZ2cTB0VDVjcEhlMkpjYkxaZ24rSGtwbXNLRWYwWkowT1ZkUUFZMlRiYVJU?=
 =?utf-8?B?cEE0ZnE2QWtnZE54cmxNekxIclhzT1MyajJZalJOUVJLUENmTUh6YmZLYm14?=
 =?utf-8?B?RTAvWDVLMTZDU3VZdW9zdlVkZnB0YWdBTXEycXlzTjBJeG4xWHh2eGRKN2lw?=
 =?utf-8?B?bGhEYnRVV0FDSHdsV0hWbmErUzJtZ0hlOHBPamJILzZkc25pY2ZDazNRcVVv?=
 =?utf-8?B?TlZLSHprbm1zUjlsMXNwSmw2M1J3MmFHUTlhN3JMWHhsY1ZFc3g3TUs2Mnpw?=
 =?utf-8?B?K1ZTWnVFMnhNMHdWM2dqWU10dTJ0dVo4b3ZVUEFoUUpGYjlVSlNFcU50Ym1H?=
 =?utf-8?B?aUZnc2hUd0pFczU5aU9PRmFMV3FGUGpjakc5aWFoY2FTT2NkdEJ5L3NSZlFj?=
 =?utf-8?B?ZGtVYTJFYjc3T0NwRStsb3o0SlNjTkNxVURySis4Mk4ya1NabldKQjVDZkd5?=
 =?utf-8?B?Vm5kZWh0QldFZFVjaXh6Vk5rRDcyN3BicnFoVVRQQlVOOVNDeFlvaHdwdERI?=
 =?utf-8?B?Zmw1Si9zQ3Rva1A4cGdKV2Z0NURSNjhBdzBSUDNFcThzbXRYMUJjR0F3R0Zn?=
 =?utf-8?B?YmxSalVQQ0s3OWE1c2RpY3VCT3lNdEZSQkUxVnp2bTg1aTdTMi9JVk90OXdk?=
 =?utf-8?B?MnM5MGhmeWE2dTd3cXBESStGMzdEOGRQY2NucUxIaTA0cGZZTG9JbFl2S3ps?=
 =?utf-8?B?WHZ0VXZuRlJHVUtRTXpXNjhOWkhjWWtYb1M0ZEcvTEtPRzYvSkQ5T1RKeWFH?=
 =?utf-8?B?NVFvNGtOa3NISlNnZjNDME12bTgzNTg3V3B0OFF4K2MrNFBHdWxNRUUrbWtM?=
 =?utf-8?B?d2hLTTJnaWxXQmcyN09xR1RPNGMyQUtJNWpWenRsZVd5NnhRUW5Ta1ZMTllU?=
 =?utf-8?B?c2ZBeFAxcnlUK20zWHZ3ZjlKd09tNklwQ042VytKRTZWMlhpR1ExcThPVklE?=
 =?utf-8?B?NWx5V011K3VoYk5UcDB2b3BUdFNKaXZlNWlVYWFiaHFoZzdYTjB3K3h5NVVh?=
 =?utf-8?B?Wkh4U09Qblc5a2E1NkVNSGI0VENld1ZlM2pRc3RYSTJYNFRWOE5PT3ltV2ov?=
 =?utf-8?Q?tykzRVhb4e7HMUwdw2IvIMj9P?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6cb42f1c-b7b7-442e-4a8b-08de33e69eb5
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 10:11:13.3295
 (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: JmgSx5p51bPdsOxqeuCUtIaNq8N0mFndB5FWC4dz1qkfUL6cfx0FOIPGjLKsCERjM9EwD9tW8oduB72e4B/NaA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR03MB7615

On Fri, Dec 05, 2025 at 10:31:51AM +0100, Roger Pau Monne wrote:
> XENMAPSPACE_gmfn{_range} allows moving gfn around the guest p2m: the mfn
> behind the source gfn is zapped from the origin and mapped at the
> requested destination gfn.  The destination p2m entries are always created
> with type p2m_ram_rw.
> 
> With the current checking done in xenmem_add_to_physmap_one() it's possible
> to use XENMAPSPACE_gmfn{_range} to change the type of a p2m entry.  The
> source gfn is only checked to be not shared, and that the underlying page
> is owned by the domain.
> 
> Make the source checks more strict, by checking that the source gfn is of
> type p2m_ram_rw.  That prevents the operation from inadvertently changing
> the type as part of the move.

This is missing:

Fixes: 3e50af3d8776 ('New XENMAPSPACE_gmfn parameter for XENMEM_add_to_physmap.')

The hypercall was missing any p2m type checks since introduction.
It's possible the get_page() seemed enough, but it was dangerous to
not account for new incompatible p2m types being added down the road.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 10:37:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 10:37:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178623.1502363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTBV-0005K9-79; Fri, 05 Dec 2025 10:37:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178623.1502363; Fri, 05 Dec 2025 10:37:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTBV-0005K2-4i; Fri, 05 Dec 2025 10:37:09 +0000
Received: by outflank-mailman (input) for mailman id 1178623;
 Fri, 05 Dec 2025 10:37:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d4nT=6L=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vRTBT-0005Ju-Py
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 10:37:07 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 54a61748-d1c6-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 11:37:00 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 732C4339;
 Fri,  5 Dec 2025 02:36:52 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.45.211])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BCE863F86F;
 Fri,  5 Dec 2025 02:36:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54a61748-d1c6-11f0-980a-7dc792cee155
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v1 00/12] xen/arm: ffa: FF-A v1.2 support
Date: Fri,  5 Dec 2025 11:36:33 +0100
Message-ID: <cover.1764930353.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This series updates Xen’s FF-A mediator on Arm to implement the FF-A
v1.2 interface while keeping existing v1.0/v1.1 guests working.

Patches 1–7 rework the low-level plumbing:

  1) add the FF-A v1.2 function IDs and probe the new ABIs
  2) track per-VM FFA_VERSION state and enforce negotiation
  3) Fix is_64bit initialisation
  4) harden RX/TX mapping and validation
  5) rework SPMC RX/TX buffer management so access is serialized and
     RX buffers are always released back to the SPMC
  6) rework VM RX/TX buffer to have generic acquire/release function
     equivalent to SPMC access functions
  7) switch the mediator to spec-compliant signed 32-bit status codes

Patches 8–11 update the data structures and direct-call paths:

  8) add ffa_uuid helpers and rework partition-info handling
  9) add FFA_RUN support
  10) add the v1.1/v1.2 SEND2 header layout
  11) add MSG_SEND_DIRECT_REQ2/RESP2 support and marshal the extended
     register set for v1.2 guests

Patch 12 tightens the dispatcher and advertises FF-A v1.2:

  - reject SMCCC64 calls from AArch32 guests
  - expose RX/TX capacity fields
  - bump Xen's FF-A version to 1.2 once the implementation is complete

v1.0/v1.1 guests continue to use the v1.1 ABI without behaviour changes,
while v1.2 guests can negotiate the wider ABI and use RUN, SEND2, and
DIRECT_REQ2/RESP2 with the extended register set.

This serie was validated through gitlab-ci here:
https://gitlab.com/xen-project/people/bmarquis/xen-ffa-research/-/tree/ffa-v1.2/v1
Build pipeline for the serie:
https://gitlab.com/xen-project/people/bmarquis/xen-ffa-research/-/pipelines/2197856905

Changes since v0:
- Rework version negotiation to prevent concurrency issues
- Introduce patch 3 to fix an init bug
- Introduce patch 5 to make VM RX/TX buffer acquire/release working in
  the same way as SPMC RX/TX buffers
- minor fixes described in each patch changelog

Bertrand Marquis (12):
  xen/arm: ffa: add FF-A v1.2 function IDs
  xen/arm: ffa: per-VM FFA_VERSION negotiation state
  xen/arm: ffa: Fix is_64bit init
  xen/arm: ffa: harden RX/TX mapping
  xen/arm: ffa: rework SPMC RX/TX buffer management
  xen/arm: ffa: rework VM RX/TX buffer management
  xen/arm: ffa: use signed 32-bit status codes
  xen/arm: ffa: add UUID helpers for partition info
  xen/arm: ffa: Add FFA_RUN support
  xen/arm: ffa: add v1.2 SEND2 header layout
  xen/arm: ffa: add MSG_SEND_DIRECT_REQ2 support
  xen/arm: ffa: advertise FF-A v1.2

 xen/arch/arm/include/asm/tee/ffa.h |   3 +-
 xen/arch/arm/tee/ffa.c             | 202 ++++++++++++++++------
 xen/arch/arm/tee/ffa_msg.c         | 232 +++++++++++++++++++------
 xen/arch/arm/tee/ffa_notif.c       |  14 +-
 xen/arch/arm/tee/ffa_partinfo.c    | 263 +++++++++++++++++------------
 xen/arch/arm/tee/ffa_private.h     | 153 +++++++++++------
 xen/arch/arm/tee/ffa_rxtx.c        | 241 +++++++++++++++++++++-----
 xen/arch/arm/tee/ffa_shm.c         |  52 +++---
 8 files changed, 830 insertions(+), 330 deletions(-)

-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 10:37:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 10:37:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178632.1502374 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTC2-0005n7-Ll; Fri, 05 Dec 2025 10:37:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178632.1502374; Fri, 05 Dec 2025 10:37:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTC2-0005n0-I5; Fri, 05 Dec 2025 10:37:42 +0000
Received: by outflank-mailman (input) for mailman id 1178632;
 Fri, 05 Dec 2025 10:37: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
 <SRS0=d4nT=6L=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vRTC1-0005j7-8r
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 10:37:41 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 6c23669e-d1c6-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 11:37:40 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id EDBC8339;
 Fri,  5 Dec 2025 02:37:31 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.45.211])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3EB5A3F86F;
 Fri,  5 Dec 2025 02:37:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6c23669e-d1c6-11f0-9d1b-b5c5bf9af7f9
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v1 01/12] xen/arm: ffa: add FF-A v1.2 function IDs
Date: Fri,  5 Dec 2025 11:36:34 +0100
Message-ID: <6832face6780228ac2704da70d5ddbd7f00dd385.1764930353.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764930353.git.bertrand.marquis@arm.com>
References: <cover.1764930353.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Bring the FF-A headers up to the v1.2 baseline and fix the function-number
range used for ABI discovery:

- update FFA_FNUM_MAX_VALUE so the FF-A function-number window covers the
  full v1.2 range, and derive the ABI bitmap bounds from
  FFA_FNUM_MIN_VALUE/FFA_FNUM_MAX_VALUE instead of hard-coding
  FFA_ERROR/FFA_MSG_SEND2
- define the new v1.2 function IDs; CONSOLE_LOG_32/64 and
  PARTITION_INFO_GET_REGS are added for ABI discovery even though they are
  not implemented yet
- extend the firmware ABI table to probe RUN and
  MSG_SEND_DIRECT_REQ2/RESP2
- while there, fix an off-by-one in ffa_fw_supports_fid(): the computed bit
  index must be strictly smaller than FFA_ABI_BITMAP_SIZE, so use >= in the
  bounds check
- Also fix comment as call IDs reserved for FF-A are from 0x60 to 0xEF

Keep FFA_MY_VERSION at 1.1 for now; we only advertise v1.2 once the
implementation is fully compliant.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v1:
- Add CONSOLE_LOG_64 and rename CONSOLE_LOG to CONSOLE_LOG_32
- Set MAX value to 0x8E which is the highest abi value available in 1.2
- Mention in ffa_private.h comment that SMCCC is actually reserving 0x60
  to 0xEF included for FF-A (and fix previous FF which was wrong).
---
 xen/arch/arm/include/asm/tee/ffa.h |  3 ++-
 xen/arch/arm/tee/ffa.c             |  4 ++++
 xen/arch/arm/tee/ffa_private.h     | 21 +++++++++++++--------
 3 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/xen/arch/arm/include/asm/tee/ffa.h b/xen/arch/arm/include/asm/tee/ffa.h
index 24cd4d99c8f9..7acb541d1ff0 100644
--- a/xen/arch/arm/include/asm/tee/ffa.h
+++ b/xen/arch/arm/include/asm/tee/ffa.h
@@ -15,8 +15,9 @@
 #include <asm/smccc.h>
 #include <asm/types.h>
 
+/* FF-A Function ID range (AArch32 function number field) as of FF-A v1.2 */
 #define FFA_FNUM_MIN_VALUE              _AC(0x60,U)
-#define FFA_FNUM_MAX_VALUE              _AC(0x86,U)
+#define FFA_FNUM_MAX_VALUE              _AC(0x8E,U)
 
 static inline bool is_ffa_fid(uint32_t fid)
 {
diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 1d0239cf6950..2b4e24750d52 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -11,6 +11,8 @@
  *               https://developer.arm.com/documentation/den0077/a
  * FF-A-1.1-REL0: FF-A specification version 1.1 available at
  *                https://developer.arm.com/documentation/den0077/e
+ * FF-A-1.2-REL0: FF-A specification version 1.2 available at
+ *                https://developer.arm.com/documentation/den0077/j
  * TEEC-1.0C: TEE Client API Specification version 1.0c available at
  *            https://globalplatform.org/specs-library/tee-client-api-specification/
  *
@@ -102,6 +104,8 @@ static const struct ffa_fw_abi ffa_fw_abi_needed[] = {
     FW_ABI(FFA_MSG_SEND_DIRECT_REQ_32),
     FW_ABI(FFA_MSG_SEND_DIRECT_REQ_64),
     FW_ABI(FFA_MSG_SEND2),
+    FW_ABI(FFA_MSG_SEND_DIRECT_REQ2),
+    FW_ABI(FFA_RUN),
 };
 
 /*
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 6dbdb200d840..8d01da0009d3 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -15,6 +15,7 @@
 #include <xen/spinlock.h>
 #include <xen/time.h>
 #include <xen/types.h>
+#include <asm/tee/ffa.h>
 
 /* Error codes */
 #define FFA_RET_OK                      0
@@ -42,6 +43,7 @@
 
 #define FFA_VERSION_1_0         MAKE_FFA_VERSION(1, 0)
 #define FFA_VERSION_1_1         MAKE_FFA_VERSION(1, 1)
+#define FFA_VERSION_1_2         MAKE_FFA_VERSION(1, 2)
 /* The minimal FF-A version of the SPMC that can be supported */
 #define FFA_MIN_SPMC_VERSION    FFA_VERSION_1_1
 
@@ -270,21 +272,24 @@
 #define FFA_RX_ACQUIRE                  0x84000084U
 #define FFA_SPM_ID_GET                  0x84000085U
 #define FFA_MSG_SEND2                   0x84000086U
+#define FFA_CONSOLE_LOG_32              0x8400008AU
+#define FFA_CONSOLE_LOG_64              0xC400008AU
+#define FFA_PARTITION_INFO_GET_REGS     0x8400008BU
+#define FFA_MSG_SEND_DIRECT_REQ2        0xC400008DU
+#define FFA_MSG_SEND_DIRECT_RESP2       0xC400008EU
 
 /**
  * Encoding of features supported or not by the fw in a bitmap:
- * - Function IDs are going from 0x60 to 0xFF
+ * - Function IDs are going from 0x60 to 0xEF in SMCCC standard
  * - A function can be supported in 32 and/or 64bit
  * The bitmap has one bit for each function in 32 and 64 bit.
  */
 #define FFA_ABI_ID(id)        ((id) & ARM_SMCCC_FUNC_MASK)
 #define FFA_ABI_CONV(id)      (((id) >> ARM_SMCCC_CONV_SHIFT) & BIT(0,U))
 
-#define FFA_ABI_MIN           FFA_ABI_ID(FFA_ERROR)
-#define FFA_ABI_MAX           FFA_ABI_ID(FFA_MSG_SEND2)
-
-#define FFA_ABI_BITMAP_SIZE   (2 * (FFA_ABI_MAX - FFA_ABI_MIN + 1))
-#define FFA_ABI_BITNUM(id)    ((FFA_ABI_ID(id) - FFA_ABI_MIN) << 1 | \
+#define FFA_ABI_BITMAP_SIZE   (2 * (FFA_FNUM_MAX_VALUE - FFA_FNUM_MIN_VALUE \
+                               + 1))
+#define FFA_ABI_BITNUM(id)    ((FFA_ABI_ID(id) - FFA_FNUM_MIN_VALUE) << 1 | \
                                FFA_ABI_CONV(id))
 
 /* Constituent memory region descriptor */
@@ -549,9 +554,9 @@ static inline int32_t ffa_hyp_rx_release(void)
 
 static inline bool ffa_fw_supports_fid(uint32_t fid)
 {
-    BUILD_BUG_ON(FFA_ABI_MIN > FFA_ABI_MAX);
+    BUILD_BUG_ON(FFA_FNUM_MIN_VALUE > FFA_FNUM_MAX_VALUE);
 
-    if ( FFA_ABI_BITNUM(fid) > FFA_ABI_BITMAP_SIZE)
+    if ( FFA_ABI_BITNUM(fid) >= FFA_ABI_BITMAP_SIZE)
         return false;
     return test_bit(FFA_ABI_BITNUM(fid), ffa_fw_abi_supported);
 }
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 10:37:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 10:37:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178633.1502384 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTC3-00063F-Rs; Fri, 05 Dec 2025 10:37:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178633.1502384; Fri, 05 Dec 2025 10:37:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTC3-000638-Ot; Fri, 05 Dec 2025 10:37:43 +0000
Received: by outflank-mailman (input) for mailman id 1178633;
 Fri, 05 Dec 2025 10:37:42 +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
 <SRS0=d4nT=6L=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vRTC2-0005j7-95
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 10:37:42 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 6d02f811-d1c6-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 11:37:41 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 5262A1063;
 Fri,  5 Dec 2025 02:37:33 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.45.211])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 92EAB3F86F;
 Fri,  5 Dec 2025 02:37:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6d02f811-d1c6-11f0-9d1b-b5c5bf9af7f9
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v1 02/12] xen/arm: ffa: per-VM FFA_VERSION negotiation state
Date: Fri,  5 Dec 2025 11:36:35 +0100
Message-ID: <d66e0935ad46953aa12a0830fc8a0a4947933fe3.1764930353.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764930353.git.bertrand.marquis@arm.com>
References: <cover.1764930353.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Track FF-A version negotiation per VM and enforce that no FF-A ABI
(other than FFA_VERSION) is processed before a guest has selected a
version.

Each ffa_ctx gains a dedicated guest_vers_lock, a negotiated version
(guest_vers) and a guest_vers_tmp:
- guest_vers is the version negotiated or 0 if no version has been
  negotiated. This must be used with ACCESS_ONCE when reading it without
  the spinlock taken.
- guest_vers_tmp stores the version currently requested by a VM.

The version requested is the one actually negotiated once a call
different from FFA_VERSION is done to allow several attempts and as
requested by FF-A specification.
We always return our implementation version FFA_MY_VERSION, even if the
version requested was different, as requested by FF-A specification.

Any call other than FFA_VERSION is rejected until a version has been
requested.

Update all places in the code where guest_vers is used to use
ACCESS_ONCE.

This prevents partially initialised contexts from using the mediator
and complies with the FF-A 1.2 FFA_VERSION semantics.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v1:
- remove the guest_vers_negotiated and use guest_vers = 0 as condition
  for a version being negotiated instead
- introduce guest_vers_tmp to store a requested version until it is
  becoming the one negotiated.
- remove not needed if negotiated condition.
- use ACCESS_ONCE when reading guest_vers and use guest_vers == 0 as
  condition for a version being negotiated.
- Update FF-A version handling comment in ffa_private.h
---
 xen/arch/arm/tee/ffa.c          | 101 +++++++++++++++++++++++++-------
 xen/arch/arm/tee/ffa_msg.c      |   2 +-
 xen/arch/arm/tee/ffa_partinfo.c |   4 +-
 xen/arch/arm/tee/ffa_private.h  |  26 ++++++--
 xen/arch/arm/tee/ffa_shm.c      |   3 +-
 5 files changed, 105 insertions(+), 31 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 2b4e24750d52..aadd6c21e7f2 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -158,31 +158,38 @@ static bool ffa_abi_supported(uint32_t id)
     return !ffa_simple_call(FFA_FEATURES, id, 0, 0, 0);
 }
 
-static void handle_version(struct cpu_user_regs *regs)
+static bool ffa_negotiate_version(struct cpu_user_regs *regs)
 {
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
-    uint32_t vers = get_user_reg(regs, 1);
-    uint32_t old_vers;
+    uint32_t fid = get_user_reg(regs, 0);
+    uint32_t in_vers = get_user_reg(regs, 1);
+    uint32_t out_vers = FFA_MY_VERSION;
 
-    /*
-     * Guest will use the version it requested if it is our major and minor
-     * lower or equals to ours. If the minor is greater, our version will be
-     * used.
-     * In any case return our version to the caller.
-     */
-    if ( FFA_VERSION_MAJOR(vers) == FFA_MY_VERSION_MAJOR )
+    spin_lock(&ctx->guest_vers_lock);
+
+    /* If negotiation already published, continue without handling. */
+    if ( ACCESS_ONCE(ctx->guest_vers) )
+        goto out_continue;
+
+    if ( fid != FFA_VERSION )
     {
-        spin_lock(&ctx->lock);
-        old_vers = ctx->guest_vers;
+        if ( !ctx->guest_vers_tmp )
+        {
+            out_vers = 0;
+            goto out_handled;
+        }
 
-        if ( FFA_VERSION_MINOR(vers) > FFA_MY_VERSION_MINOR )
-            ctx->guest_vers = FFA_MY_VERSION;
-        else
-            ctx->guest_vers = vers;
-        spin_unlock(&ctx->lock);
+        /*
+         * A successful FFA_VERSION call does not freeze negotiation. Guests
+         * are allowed to issue multiple FFA_VERSION attempts (e.g. probing
+         * several minor versions). Negotiation becomes final only when a
+         * non-VERSION ABI is invoked, as required by the FF-A specification.
+         * Finalize negotiation: publish guest_vers once, then never change.
+         */
+        ACCESS_ONCE(ctx->guest_vers) = ctx->guest_vers_tmp;
 
-        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !old_vers )
+        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
         {
             /* One more VM with FF-A support available */
             inc_ffa_vm_count();
@@ -190,8 +197,48 @@ static void handle_version(struct cpu_user_regs *regs)
             list_add_tail(&ctx->ctx_list, &ffa_ctx_head);
             write_unlock(&ffa_ctx_list_rwlock);
         }
+
+        goto out_continue;
     }
-    ffa_set_regs(regs, FFA_MY_VERSION, 0, 0, 0, 0, 0, 0, 0);
+
+    /*
+     * guest_vers_tmp stores the version selected by the guest (lower minor may
+     * require reduced data structures). However, the value returned to the
+     * guest via FFA_VERSION is always FFA_MY_VERSION, the implementation
+     * version, as required by FF-A. The two values intentionally differ.
+     */
+
+    /*
+     * Return our highest implementation version on request different than our
+     * major and mark negotiated version as our implementation version.
+     */
+    if ( FFA_VERSION_MAJOR(in_vers) != FFA_MY_VERSION_MAJOR )
+    {
+        ctx->guest_vers_tmp = FFA_MY_VERSION;
+        goto out_handled;
+    }
+
+    /*
+     * Use our minor version if a greater minor was requested or the requested
+     * minor if it is lower than ours was requested.
+     */
+    if ( FFA_VERSION_MINOR(in_vers) > FFA_MY_VERSION_MINOR )
+        ctx->guest_vers_tmp = FFA_MY_VERSION;
+    else
+        ctx->guest_vers_tmp = in_vers;
+
+out_handled:
+    spin_unlock(&ctx->guest_vers_lock);
+    if ( out_vers )
+        ffa_set_regs(regs, out_vers, 0, 0, 0, 0, 0, 0, 0);
+    else
+        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+    return true;
+
+out_continue:
+    spin_unlock(&ctx->guest_vers_lock);
+
+    return false;
 }
 
 static void handle_features(struct cpu_user_regs *regs)
@@ -274,10 +321,17 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     if ( !ctx )
         return false;
 
+    /* A version must be negotiated first */
+    if ( !ACCESS_ONCE(ctx->guest_vers) )
+    {
+        if ( ffa_negotiate_version(regs) )
+            return true;
+    }
+
     switch ( fid )
     {
     case FFA_VERSION:
-        handle_version(regs);
+        ffa_set_regs(regs, FFA_MY_VERSION, 0, 0, 0, 0, 0, 0, 0);
         return true;
     case FFA_ID_GET:
         ffa_set_regs_success(regs, ffa_get_vm_id(d), 0);
@@ -371,6 +425,11 @@ static int ffa_domain_init(struct domain *d)
     d->arch.tee = ctx;
     ctx->teardown_d = d;
     INIT_LIST_HEAD(&ctx->shm_list);
+    spin_lock_init(&ctx->lock);
+    spin_lock_init(&ctx->guest_vers_lock);
+    ctx->guest_vers = 0;
+    ctx->guest_vers_tmp = 0;
+    INIT_LIST_HEAD(&ctx->ctx_list);
 
     ctx->ffa_id = ffa_get_vm_id(d);
     ctx->num_vcpus = d->max_vcpus;
@@ -452,7 +511,7 @@ static int ffa_domain_teardown(struct domain *d)
     if ( !ctx )
         return 0;
 
-    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && ctx->guest_vers )
+    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && ACCESS_ONCE(ctx->guest_vers) )
     {
         dec_ffa_vm_count();
         write_lock(&ffa_ctx_list_rwlock);
diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index c20c5bec0f76..2c2ebc9c5cd6 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -113,7 +113,7 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
     }
 
     dst_ctx = dst_d->arch.tee;
-    if ( !dst_ctx->guest_vers )
+    if ( !ACCESS_ONCE(dst_ctx->guest_vers) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
         goto out_unlock;
diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index fa56b1587e3b..ec5a53ed1cab 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -238,7 +238,7 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
      * use the v1.0 structure size in the destination buffer.
      * Otherwise use the size of the highest version we support, here 1.1.
      */
-    if ( ctx->guest_vers == FFA_VERSION_1_0 )
+    if ( ACCESS_ONCE(ctx->guest_vers) == FFA_VERSION_1_0 )
         dst_size = sizeof(struct ffa_partition_info_1_0);
     else
         dst_size = sizeof(struct ffa_partition_info_1_1);
@@ -250,7 +250,7 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
          * FF-A v1.0 has w5 MBZ while v1.1 allows
          * FFA_PARTITION_INFO_GET_COUNT_FLAG to be non-zero.
          */
-        if ( ctx->guest_vers == FFA_VERSION_1_0 ||
+        if ( ACCESS_ONCE(ctx->guest_vers) == FFA_VERSION_1_0 ||
                 flags != FFA_PARTITION_INFO_GET_COUNT_FLAG )
         {
             ret = FFA_RET_INVALID_PARAMETERS;
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 8d01da0009d3..4e4ac7fd7bc4 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -355,12 +355,6 @@ struct ffa_ctx {
      * Global data accessed with lock locked.
      */
     spinlock_t lock;
-    /*
-     * FF-A version negotiated by the guest, only modifications to
-     * this field are done with the lock held as this is expected to
-     * be done once at init by a guest.
-     */
-    uint32_t guest_vers;
     /* Number of 4kB pages in each of rx/rx_pg and tx/tx_pg */
     unsigned int page_count;
     /* Number of allocated shared memory object */
@@ -368,6 +362,26 @@ struct ffa_ctx {
     /* Used shared memory objects, struct ffa_shm_mem */
     struct list_head shm_list;
 
+    /*
+     * FF-A version handling
+     * guest_vers is the single published negotiated version. It is 0 until
+     * negotiation completes, after which it is set once and never changes.
+     * Negotiation uses guest_vers_tmp under guest_vers_lock; when a
+     * non-VERSION ABI is invoked, Xen finalizes negotiation by publishing
+     * guest_vers using ACCESS_ONCE() store.
+     * Readers use ACCESS_ONCE(guest_vers) != 0 to detect availability and
+     * can consume guest_vers without barriers because it never changes once
+     * published.
+     */
+    spinlock_t guest_vers_lock;
+    /*
+     * Published negotiated version. Zero means "not negotiated yet".
+     * Once non-zero, it never changes.
+     */
+    uint32_t guest_vers;
+    /* Temporary version used during negotiation under guest_vers_lock */
+    uint32_t guest_vers_tmp;
+
     /*
      * Rx buffer, accessed with rx_lock locked.
      * rx_is_free is used to serialize access.
diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index d628c1b70609..dad3da192247 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -495,7 +495,8 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     if ( frag_len > ctx->page_count * FFA_PAGE_SIZE )
         goto out_unlock;
 
-    ret = read_mem_transaction(ctx->guest_vers, ctx->tx, frag_len, &trans);
+    ret = read_mem_transaction(ACCESS_ONCE(ctx->guest_vers), ctx->tx,
+                               frag_len, &trans);
     if ( ret )
         goto out_unlock;
 
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 10:37:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 10:37:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178635.1502394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTC6-0006IR-2M; Fri, 05 Dec 2025 10:37:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178635.1502394; Fri, 05 Dec 2025 10:37:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTC5-0006IG-V2; Fri, 05 Dec 2025 10:37:45 +0000
Received: by outflank-mailman (input) for mailman id 1178635;
 Fri, 05 Dec 2025 10:37:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d4nT=6L=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vRTC4-0005Ju-A6
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 10:37:44 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 6dc0335a-d1c6-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 11:37:42 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 9F95F1575;
 Fri,  5 Dec 2025 02:37:34 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.45.211])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E79ED3F86F;
 Fri,  5 Dec 2025 02:37:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6dc0335a-d1c6-11f0-980a-7dc792cee155
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v1 03/12] xen/arm: ffa: Fix is_64bit init
Date: Fri,  5 Dec 2025 11:36:36 +0100
Message-ID: <697ab9880767b75c9964ae900a43fd4e065fc502.1764930353.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764930353.git.bertrand.marquis@arm.com>
References: <cover.1764930353.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

is_64bit_domain(d) is not set during domain_init as the domain field is
only set when loading the domain image which is done after executing
domain_init.

Fix the implementation to set is_64bit when version gets negotiated.
is_64bit is only used during partition_info_get once a domain is added
in the list of domains having ffa support. It must only be accessed when
the rwlock is taken (which is the case).

is_64bit must not be used without the rwlock taken and other places in
the code needing to test 64bit support of the current domain will have
to use calls to is_64bit_domain instead of the field from now on.

Fixes: 09a201605f99 ("xen/arm: ffa: Introduce VM to VM support")
Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v1:
- patch introduced
---
 xen/arch/arm/tee/ffa.c         | 9 ++++++++-
 xen/arch/arm/tee/ffa_private.h | 5 +++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index aadd6c21e7f2..0f6f837378cc 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -180,6 +180,14 @@ static bool ffa_negotiate_version(struct cpu_user_regs *regs)
             goto out_handled;
         }
 
+        /*
+         * We cannot set is_64bit during domain init because the field is not
+         * yet initialized.
+         * This field is only used during partinfo_get with the rwlock taken
+         * so there is no ordering issue with guest_vers.
+         */
+        ctx->is_64bit = is_64bit_domain(d);
+
         /*
          * A successful FFA_VERSION call does not freeze negotiation. Guests
          * are allowed to issue multiple FFA_VERSION attempts (e.g. probing
@@ -433,7 +441,6 @@ static int ffa_domain_init(struct domain *d)
 
     ctx->ffa_id = ffa_get_vm_id(d);
     ctx->num_vcpus = d->max_vcpus;
-    ctx->is_64bit = is_64bit_domain(d);
 
     /*
      * ffa_domain_teardown() will be called if ffa_domain_init() returns an
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 4e4ac7fd7bc4..2daa4589a930 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -344,6 +344,11 @@ struct ffa_ctx {
     /* FF-A Endpoint ID */
     uint16_t ffa_id;
     uint16_t num_vcpus;
+    /*
+     * Must only be accessed with the ffa_ctx_list_rwlock taken as it set
+     * when guest_vers is set and other accesses could see a partially set
+     * value.
+     */
     bool is_64bit;
 
     /*
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 10:37:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 10:37:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178636.1502397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTC6-0006KW-C7; Fri, 05 Dec 2025 10:37:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178636.1502397; Fri, 05 Dec 2025 10:37:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTC6-0006K4-5v; Fri, 05 Dec 2025 10:37:46 +0000
Received: by outflank-mailman (input) for mailman id 1178636;
 Fri, 05 Dec 2025 10:37:44 +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
 <SRS0=d4nT=6L=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vRTC4-0005j7-Jd
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 10:37:44 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 6e8a52dc-d1c6-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 11:37:44 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 0336C339;
 Fri,  5 Dec 2025 02:37:36 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.45.211])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 449773F86F;
 Fri,  5 Dec 2025 02:37:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6e8a52dc-d1c6-11f0-9d1b-b5c5bf9af7f9
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v1 04/12] xen/arm: ffa: harden RX/TX mapping
Date: Fri,  5 Dec 2025 11:36:37 +0100
Message-ID: <93c6c48283da84976a40aae1395db5a8d47f0b97.1764930353.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764930353.git.bertrand.marquis@arm.com>
References: <cover.1764930353.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Harden the RX/TX mapping paths and keep signed FF-A return codes
end-to-end.

Reject zero-length mappings and insist on page-aligned RX/TX buffer
addresses before touching the P2M. The unmap plumbing is switched to
use the same signed helpers so dispatcher error handling is consistent
across map and unmap operations.

This avoids partially mapped or silently truncated buffers and makes the
mediator behaviour match the FF-A error model more closely.

Prevent concurrent usage of rx or tx buffer during map or unmap by
holding the rx_lock and tx_lock.

While there also introduce a domain_rxtx_init to properly initialize the
rxtx buffers spinlocks.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v1:
- take the rx_lock and tx_lock during rxtx_map and rxtx_unmap to prevent
  concurrent calls using the rx or tx buffer during mapping.
- properly clean rx/tx buffer related context entries during domain_init
---
 xen/arch/arm/tee/ffa.c         |  4 ++
 xen/arch/arm/tee/ffa_private.h |  5 ++-
 xen/arch/arm/tee/ffa_rxtx.c    | 68 +++++++++++++++++++++++++++-------
 3 files changed, 62 insertions(+), 15 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 0f6f837378cc..497ada8264e0 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -451,6 +451,10 @@ static int ffa_domain_init(struct domain *d)
     if ( ret )
         return ret;
 
+    ret = ffa_rxtx_domain_init(d);
+    if ( ret )
+        return ret;
+
     return ffa_notif_domain_init(d);
 }
 
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 2daa4589a930..d6400efd50bb 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -438,10 +438,11 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs);
 
 bool ffa_rxtx_init(void);
 void ffa_rxtx_destroy(void);
+int32_t ffa_rxtx_domain_init(struct domain *d);
 void ffa_rxtx_domain_destroy(struct domain *d);
-uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
+int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
 			     register_t rx_addr, uint32_t page_count);
-uint32_t ffa_handle_rxtx_unmap(void);
+int32_t ffa_handle_rxtx_unmap(void);
 int32_t ffa_rx_acquire(struct domain *d);
 int32_t ffa_rx_release(struct domain *d);
 
diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
index a40e5b32e3a5..5776693bb3f0 100644
--- a/xen/arch/arm/tee/ffa_rxtx.c
+++ b/xen/arch/arm/tee/ffa_rxtx.c
@@ -41,10 +41,10 @@ static int32_t ffa_rxtx_unmap(uint16_t id)
     return ffa_simple_call(FFA_RXTX_UNMAP, ((uint64_t)id) << 16, 0, 0, 0);
 }
 
-uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
+int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
 			     register_t rx_addr, uint32_t page_count)
 {
-    uint32_t ret = FFA_RET_INVALID_PARAMETERS;
+    int32_t ret = FFA_RET_INVALID_PARAMETERS;
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
     struct page_info *tx_pg;
@@ -66,20 +66,30 @@ uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
         rx_addr &= UINT32_MAX;
     }
 
-    if ( page_count > FFA_MAX_RXTX_PAGE_COUNT )
+    if ( page_count > FFA_MAX_RXTX_PAGE_COUNT || !page_count )
     {
         printk(XENLOG_ERR "ffa: RXTX_MAP: error: %u pages requested (limit %u)\n",
                page_count, FFA_MAX_RXTX_PAGE_COUNT);
         return FFA_RET_INVALID_PARAMETERS;
     }
 
+    if ( !IS_ALIGNED(tx_addr, FFA_PAGE_SIZE) ||
+         !IS_ALIGNED(rx_addr, FFA_PAGE_SIZE) )
+        return FFA_RET_INVALID_PARAMETERS;
+
+    spin_lock(&ctx->rx_lock);
+    spin_lock(&ctx->tx_lock);
+
     /* Already mapped */
     if ( ctx->rx )
-        return FFA_RET_DENIED;
+    {
+        ret = FFA_RET_DENIED;
+        goto err_unlock_rxtx;
+    }
 
     tx_pg = get_page_from_gfn(d, gfn_x(gaddr_to_gfn(tx_addr)), &t, P2M_ALLOC);
     if ( !tx_pg )
-        return FFA_RET_INVALID_PARAMETERS;
+        goto err_unlock_rxtx;
 
     /* Only normal RW RAM for now */
     if ( t != p2m_ram_rw )
@@ -167,6 +177,10 @@ uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
     ctx->tx_pg = tx_pg;
     ctx->page_count = page_count;
     ctx->rx_is_free = true;
+
+    spin_unlock(&ctx->tx_lock);
+    spin_unlock(&ctx->rx_lock);
+
     return FFA_RET_OK;
 
 err_unmap_rx:
@@ -177,24 +191,32 @@ err_put_rx_pg:
     put_page(rx_pg);
 err_put_tx_pg:
     put_page(tx_pg);
+err_unlock_rxtx:
+    spin_unlock(&ctx->tx_lock);
+    spin_unlock(&ctx->rx_lock);
 
     return ret;
 }
 
-static uint32_t  rxtx_unmap(struct domain *d)
+static int32_t rxtx_unmap(struct domain *d)
 {
     struct ffa_ctx *ctx = d->arch.tee;
+    int32_t ret = FFA_RET_OK;
+
+    spin_lock(&ctx->rx_lock);
+    spin_lock(&ctx->tx_lock);
 
     if ( !ctx->page_count )
-        return FFA_RET_INVALID_PARAMETERS;
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto err_unlock_rxtx;
+    }
 
     if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
     {
-        uint32_t ret;
-
         ret = ffa_rxtx_unmap(ffa_get_vm_id(d));
         if ( ret != FFA_RET_OK )
-            return ret;
+            goto err_unlock_rxtx;
     }
 
     unmap_domain_page_global(ctx->rx);
@@ -208,10 +230,14 @@ static uint32_t  rxtx_unmap(struct domain *d)
     ctx->page_count = 0;
     ctx->rx_is_free = false;
 
-    return FFA_RET_OK;
+err_unlock_rxtx:
+    spin_unlock(&ctx->tx_lock);
+    spin_unlock(&ctx->rx_lock);
+
+    return ret;
 }
 
-uint32_t ffa_handle_rxtx_unmap(void)
+int32_t ffa_handle_rxtx_unmap(void)
 {
     return rxtx_unmap(current->domain);
 }
@@ -272,6 +298,22 @@ out:
     return ret;
 }
 
+int32_t ffa_rxtx_domain_init(struct domain *d)
+{
+    struct ffa_ctx *ctx = d->arch.tee;
+
+    spin_lock_init(&ctx->rx_lock);
+    spin_lock_init(&ctx->tx_lock);
+    ctx->rx = NULL;
+    ctx->tx = NULL;
+    ctx->rx_pg = NULL;
+    ctx->tx_pg = NULL;
+    ctx->page_count = 0;
+    ctx->rx_is_free = false;
+
+    return 0;
+}
+
 void ffa_rxtx_domain_destroy(struct domain *d)
 {
     rxtx_unmap(d);
@@ -298,7 +340,7 @@ void ffa_rxtx_destroy(void)
 
 bool ffa_rxtx_init(void)
 {
-    int e;
+    int32_t e;
 
     /* Firmware not there or not supporting */
     if ( !ffa_fw_supports_fid(FFA_RXTX_MAP_64) )
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 10:37:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 10:37:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178639.1502414 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTC8-0006ny-NS; Fri, 05 Dec 2025 10:37:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178639.1502414; Fri, 05 Dec 2025 10:37:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTC8-0006nl-Jy; Fri, 05 Dec 2025 10:37:48 +0000
Received: by outflank-mailman (input) for mailman id 1178639;
 Fri, 05 Dec 2025 10:37:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d4nT=6L=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vRTC7-0005Ju-KJ
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 10:37:47 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 6f62ceb9-d1c6-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 11:37:45 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 5B0FE1575;
 Fri,  5 Dec 2025 02:37:37 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.45.211])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 9BA273F86F;
 Fri,  5 Dec 2025 02:37:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6f62ceb9-d1c6-11f0-980a-7dc792cee155
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v1 05/12] xen/arm: ffa: rework SPMC RX/TX buffer management
Date: Fri,  5 Dec 2025 11:36:38 +0100
Message-ID: <491f62ede43a7a135327fa68afe9a648fde1dcba.1764930353.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764930353.git.bertrand.marquis@arm.com>
References: <cover.1764930353.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Rework how Xen accesses the RX/TX buffers shared with the SPMC so that
ownership and locking are handled centrally.

Move the SPMC RX/TX buffer bases into ffa_rxtx.c as ffa_spmc_rx/ffa_spmc_tx,
protect them with dedicated ffa_spmc_{rx,tx}_lock spinlocks and expose
ffa_rxtx_spmc_{rx,tx}_{acquire,release}() helpers instead of the global
ffa_rx/ffa_tx pointers and ffa_{rx,tx}_buffer_lock.

The RX helpers now always issue FFA_RX_RELEASE when we are done
consuming data from the SPMC, so partition-info enumeration and shared
memory paths release the RX buffer on all exit paths. The RX/TX mapping
code is updated to use the descriptor offsets (rx_region_offs and
tx_region_offs) rather than hard-coded structure layout, and to use the
TX acquire/release helpers instead of touching the TX buffer directly.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v1:
- modify share_shm function to use a goto and have one place to release
  the spmc tx buffer instead of doing it directly in the if error
  condition.
- fix rx_acquire and tx_acquire to not release the spinlock as this is
  expected to be done only in release to ensure no parallel usage.
---
 xen/arch/arm/tee/ffa.c          |  22 +-----
 xen/arch/arm/tee/ffa_partinfo.c |  40 +++++-----
 xen/arch/arm/tee/ffa_private.h  |  18 ++---
 xen/arch/arm/tee/ffa_rxtx.c     | 130 +++++++++++++++++++++++++-------
 xen/arch/arm/tee/ffa_shm.c      |  29 ++++---
 5 files changed, 153 insertions(+), 86 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 497ada8264e0..43af49d1c011 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -48,8 +48,8 @@
  *     notification for secure partitions
  *   - doesn't support notifications for Xen itself
  *
- * There are some large locked sections with ffa_tx_buffer_lock and
- * ffa_rx_buffer_lock. Especially the ffa_tx_buffer_lock spinlock used
+ * There are some large locked sections with ffa_spmc_tx_lock and
+ * ffa_spmc_rx_lock. Especially the ffa_spmc_tx_lock spinlock used
  * around share_shm() is a very large locked section which can let one VM
  * affect another VM.
  */
@@ -108,20 +108,6 @@ static const struct ffa_fw_abi ffa_fw_abi_needed[] = {
     FW_ABI(FFA_RUN),
 };
 
-/*
- * Our rx/tx buffers shared with the SPMC. FFA_RXTX_PAGE_COUNT is the
- * number of pages used in each of these buffers.
- *
- * The RX buffer is protected from concurrent usage with ffa_rx_buffer_lock.
- * Note that the SPMC is also tracking the ownership of our RX buffer so
- * for calls which uses our RX buffer to deliver a result we must call
- * ffa_rx_release() to let the SPMC know that we're done with the buffer.
- */
-void *ffa_rx __read_mostly;
-void *ffa_tx __read_mostly;
-DEFINE_SPINLOCK(ffa_rx_buffer_lock);
-DEFINE_SPINLOCK(ffa_tx_buffer_lock);
-
 LIST_HEAD(ffa_ctx_head);
 /* RW Lock to protect addition/removal and reading in ffa_ctx_head */
 DEFINE_RWLOCK(ffa_ctx_list_rwlock);
@@ -617,7 +603,7 @@ static bool ffa_probe_fw(void)
                    ffa_fw_abi_needed[i].name);
     }
 
-    if ( !ffa_rxtx_init() )
+    if ( !ffa_rxtx_spmc_init() )
     {
         printk(XENLOG_ERR "ffa: Error during RXTX buffer init\n");
         goto err_no_fw;
@@ -631,7 +617,7 @@ static bool ffa_probe_fw(void)
     return true;
 
 err_rxtx_destroy:
-    ffa_rxtx_destroy();
+    ffa_rxtx_spmc_destroy();
 err_no_fw:
     ffa_fw_version = 0;
     bitmap_zero(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index ec5a53ed1cab..145b869957b0 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -77,28 +77,24 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
 {
     int32_t ret;
     uint32_t src_size, real_sp_count;
-    void *src_buf = ffa_rx;
+    void *src_buf;
     uint32_t count = 0;
 
-    /* Do we have a RX buffer with the SPMC */
-    if ( !ffa_rx )
-        return FFA_RET_DENIED;
-
     /* We need to use the RX buffer to receive the list */
-    spin_lock(&ffa_rx_buffer_lock);
+    src_buf = ffa_rxtx_spmc_rx_acquire();
+    if ( !src_buf )
+        return FFA_RET_DENIED;
 
     ret = ffa_partition_info_get(uuid, 0, &real_sp_count, &src_size);
     if ( ret )
         goto out;
 
-    /* We now own the RX buffer */
-
     /* Validate the src_size we got */
     if ( src_size < sizeof(struct ffa_partition_info_1_0) ||
          src_size >= FFA_PAGE_SIZE )
     {
         ret = FFA_RET_NOT_SUPPORTED;
-        goto out_release;
+        goto out;
     }
 
     /*
@@ -114,7 +110,7 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
     if ( real_sp_count > (FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE) / src_size )
     {
         ret = FFA_RET_NOT_SUPPORTED;
-        goto out_release;
+        goto out;
     }
 
     for ( uint32_t sp_num = 0; sp_num < real_sp_count; sp_num++ )
@@ -127,7 +123,7 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
             if ( dst_buf > (end_buf - dst_size) )
             {
                 ret = FFA_RET_NO_MEMORY;
-                goto out_release;
+                goto out;
             }
 
             memcpy(dst_buf, src_buf, MIN(src_size, dst_size));
@@ -143,10 +139,8 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
 
     *sp_count = count;
 
-out_release:
-    ffa_hyp_rx_release();
 out:
-    spin_unlock(&ffa_rx_buffer_lock);
+    ffa_rxtx_spmc_rx_release();
     return ret;
 }
 
@@ -378,7 +372,7 @@ static void uninit_subscribers(void)
         XFREE(subscr_vm_destroyed);
 }
 
-static bool init_subscribers(uint16_t count, uint32_t fpi_size)
+static bool init_subscribers(void *buf, uint16_t count, uint32_t fpi_size)
 {
     uint16_t n;
     uint16_t c_pos;
@@ -395,7 +389,7 @@ static bool init_subscribers(uint16_t count, uint32_t fpi_size)
     subscr_vm_destroyed_count = 0;
     for ( n = 0; n < count; n++ )
     {
-        fpi = ffa_rx + n * fpi_size;
+        fpi = buf + n * fpi_size;
 
         /*
          * We need to have secure partitions using bit 15 set convention for
@@ -433,7 +427,7 @@ static bool init_subscribers(uint16_t count, uint32_t fpi_size)
 
     for ( c_pos = 0, d_pos = 0, n = 0; n < count; n++ )
     {
-        fpi = ffa_rx + n * fpi_size;
+        fpi = buf + n * fpi_size;
 
         if ( FFA_ID_IS_SECURE(fpi->id) )
         {
@@ -455,10 +449,14 @@ bool ffa_partinfo_init(void)
     uint32_t fpi_size;
     uint32_t count;
     int e;
+    void *spmc_rx;
 
     if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) ||
-         !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32) ||
-         !ffa_rx || !ffa_tx )
+         !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32))
+        return false;
+
+    spmc_rx = ffa_rxtx_spmc_rx_acquire();
+    if (!spmc_rx)
         return false;
 
     e = ffa_partition_info_get(NULL, 0, &count, &fpi_size);
@@ -475,10 +473,10 @@ bool ffa_partinfo_init(void)
         goto out;
     }
 
-    ret = init_subscribers(count, fpi_size);
+    ret = init_subscribers(spmc_rx, count, fpi_size);
 
 out:
-    ffa_hyp_rx_release();
+    ffa_rxtx_spmc_rx_release();
     return ret;
 }
 
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index d6400efd50bb..8797a62abd01 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -415,10 +415,6 @@ struct ffa_ctx {
     unsigned long *vm_destroy_bitmap;
 };
 
-extern void *ffa_rx;
-extern void *ffa_tx;
-extern spinlock_t ffa_rx_buffer_lock;
-extern spinlock_t ffa_tx_buffer_lock;
 extern DECLARE_BITMAP(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
 
 extern struct list_head ffa_ctx_head;
@@ -436,8 +432,13 @@ int ffa_partinfo_domain_init(struct domain *d);
 bool ffa_partinfo_domain_destroy(struct domain *d);
 void ffa_handle_partition_info_get(struct cpu_user_regs *regs);
 
-bool ffa_rxtx_init(void);
-void ffa_rxtx_destroy(void);
+bool ffa_rxtx_spmc_init(void);
+void ffa_rxtx_spmc_destroy(void);
+void *ffa_rxtx_spmc_rx_acquire(void);
+void ffa_rxtx_spmc_rx_release(void);
+void *ffa_rxtx_spmc_tx_acquire(void);
+void ffa_rxtx_spmc_tx_release(void);
+
 int32_t ffa_rxtx_domain_init(struct domain *d);
 void ffa_rxtx_domain_destroy(struct domain *d);
 int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
@@ -567,11 +568,6 @@ static inline int32_t ffa_simple_call(uint32_t fid, register_t a1,
     return ffa_get_ret_code(&resp);
 }
 
-static inline int32_t ffa_hyp_rx_release(void)
-{
-    return ffa_simple_call(FFA_RX_RELEASE, 0, 0, 0, 0);
-}
-
 static inline bool ffa_fw_supports_fid(uint32_t fid)
 {
     BUILD_BUG_ON(FFA_FNUM_MIN_VALUE > FFA_FNUM_MAX_VALUE);
diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
index 5776693bb3f0..e325eae07bda 100644
--- a/xen/arch/arm/tee/ffa_rxtx.c
+++ b/xen/arch/arm/tee/ffa_rxtx.c
@@ -30,6 +30,20 @@ struct ffa_endpoint_rxtx_descriptor_1_1 {
     uint32_t tx_region_offs;
 };
 
+/*
+ * Our rx/tx buffers shared with the SPMC. FFA_RXTX_PAGE_COUNT is the
+ * number of pages used in each of these buffers.
+ * Each buffer has its own lock to protect from concurrent usage.
+ *
+ * Note that the SPMC is also tracking the ownership of our RX buffer so
+ * for calls which uses our RX buffer to deliver a result we must do an
+ * FFA_RX_RELEASE to let the SPMC know that we're done with the buffer.
+ */
+static void *ffa_spmc_rx __read_mostly;
+static void *ffa_spmc_tx __read_mostly;
+static DEFINE_SPINLOCK(ffa_spmc_rx_lock);
+static DEFINE_SPINLOCK(ffa_spmc_tx_lock);
+
 static int32_t ffa_rxtx_map(paddr_t tx_addr, paddr_t rx_addr,
                             uint32_t page_count)
 {
@@ -126,8 +140,9 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
                      sizeof(struct ffa_address_range) * 2 >
                      FFA_MAX_RXTX_PAGE_COUNT * FFA_PAGE_SIZE);
 
-        spin_lock(&ffa_tx_buffer_lock);
-        rxtx_desc = ffa_tx;
+        rxtx_desc = ffa_rxtx_spmc_tx_acquire();
+        if ( !rxtx_desc )
+            goto err_unmap_rx;
 
         /*
          * We have only one page for each so we pack everything:
@@ -144,7 +159,7 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
                                              address_range_array[1]);
 
         /* rx buffer */
-        mem_reg = ffa_tx + sizeof(*rxtx_desc);
+        mem_reg = (void *)rxtx_desc + rxtx_desc->rx_region_offs;
         mem_reg->total_page_count = 1;
         mem_reg->address_range_count = 1;
         mem_reg->reserved = 0;
@@ -154,7 +169,7 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
         mem_reg->address_range_array[0].reserved = 0;
 
         /* tx buffer */
-        mem_reg = ffa_tx + rxtx_desc->tx_region_offs;
+        mem_reg = (void *)rxtx_desc + rxtx_desc->tx_region_offs;
         mem_reg->total_page_count = 1;
         mem_reg->address_range_count = 1;
         mem_reg->reserved = 0;
@@ -165,7 +180,7 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
 
         ret = ffa_rxtx_map(0, 0, 0);
 
-        spin_unlock(&ffa_tx_buffer_lock);
+        ffa_rxtx_spmc_tx_release();
 
         if ( ret != FFA_RET_OK )
             goto err_unmap_rx;
@@ -319,49 +334,112 @@ void ffa_rxtx_domain_destroy(struct domain *d)
     rxtx_unmap(d);
 }
 
-void ffa_rxtx_destroy(void)
+void *ffa_rxtx_spmc_rx_acquire(void)
+{
+    ASSERT(!spin_is_locked(&ffa_spmc_rx_lock));
+
+    spin_lock(&ffa_spmc_rx_lock);
+
+    if ( ffa_spmc_rx )
+        return ffa_spmc_rx;
+
+    return NULL;
+}
+
+void ffa_rxtx_spmc_rx_release(void)
+{
+    int32_t ret;
+
+    ASSERT(spin_is_locked(&ffa_spmc_rx_lock));
+
+    /* Inform the SPMC that we are done with our RX buffer */
+    ret = ffa_simple_call(FFA_RX_RELEASE, 0, 0, 0, 0);
+    if ( ret != FFA_RET_OK )
+        printk(XENLOG_DEBUG "Error releasing SPMC RX buffer: %d\n", ret);
+
+    spin_unlock(&ffa_spmc_rx_lock);
+}
+
+void *ffa_rxtx_spmc_tx_acquire(void)
 {
-    bool need_unmap = ffa_tx && ffa_rx;
+    ASSERT(!spin_is_locked(&ffa_spmc_tx_lock));
 
-    if ( ffa_tx )
+    spin_lock(&ffa_spmc_tx_lock);
+
+    if ( ffa_spmc_tx )
+        return ffa_spmc_tx;
+
+    return NULL;
+}
+
+void ffa_rxtx_spmc_tx_release(void)
+{
+    ASSERT(spin_is_locked(&ffa_spmc_tx_lock));
+
+    spin_unlock(&ffa_spmc_tx_lock);
+}
+
+void ffa_rxtx_spmc_destroy(void)
+{
+    bool need_unmap;
+
+    spin_lock(&ffa_spmc_rx_lock);
+    spin_lock(&ffa_spmc_tx_lock);
+    need_unmap = ffa_spmc_tx && ffa_spmc_rx;
+
+    if ( ffa_spmc_tx )
     {
-        free_xenheap_pages(ffa_tx, 0);
-        ffa_tx = NULL;
+        free_xenheap_pages(ffa_spmc_tx, 0);
+        ffa_spmc_tx = NULL;
     }
-    if ( ffa_rx )
+    if ( ffa_spmc_rx )
     {
-        free_xenheap_pages(ffa_rx, 0);
-        ffa_rx = NULL;
+        free_xenheap_pages(ffa_spmc_rx, 0);
+        ffa_spmc_rx = NULL;
     }
 
     if ( need_unmap )
         ffa_rxtx_unmap(0);
+
+    spin_unlock(&ffa_spmc_tx_lock);
+    spin_unlock(&ffa_spmc_rx_lock);
 }
 
-bool ffa_rxtx_init(void)
+bool ffa_rxtx_spmc_init(void)
 {
     int32_t e;
+    bool ret = false;
 
     /* Firmware not there or not supporting */
     if ( !ffa_fw_supports_fid(FFA_RXTX_MAP_64) )
         return false;
 
-    ffa_rx = alloc_xenheap_pages(get_order_from_pages(FFA_RXTX_PAGE_COUNT), 0);
-    if ( !ffa_rx )
-        return false;
+    spin_lock(&ffa_spmc_rx_lock);
+    spin_lock(&ffa_spmc_tx_lock);
+
+    ffa_spmc_rx = alloc_xenheap_pages(
+                            get_order_from_pages(FFA_RXTX_PAGE_COUNT), 0);
+    if ( !ffa_spmc_rx )
+        goto exit;
 
-    ffa_tx = alloc_xenheap_pages(get_order_from_pages(FFA_RXTX_PAGE_COUNT), 0);
-    if ( !ffa_tx )
-        goto err;
+    ffa_spmc_tx = alloc_xenheap_pages(
+                            get_order_from_pages(FFA_RXTX_PAGE_COUNT), 0);
+    if ( !ffa_spmc_tx )
+        goto exit;
 
-    e = ffa_rxtx_map(__pa(ffa_tx), __pa(ffa_rx), FFA_RXTX_PAGE_COUNT);
+    e = ffa_rxtx_map(__pa(ffa_spmc_tx), __pa(ffa_spmc_rx),
+                     FFA_RXTX_PAGE_COUNT);
     if ( e )
-        goto err;
+        goto exit;
 
-    return true;
+    ret = true;
 
-err:
-    ffa_rxtx_destroy();
+exit:
+    spin_unlock(&ffa_spmc_tx_lock);
+    spin_unlock(&ffa_spmc_rx_lock);
 
-    return false;
+    if ( !ret )
+        ffa_rxtx_spmc_destroy();
+
+    return ret;
 }
diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index dad3da192247..e275d3769d9b 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -286,9 +286,8 @@ static void init_range(struct ffa_address_range *addr_range,
 }
 
 /*
- * This function uses the ffa_tx buffer to transmit the memory transaction
- * descriptor. The function depends ffa_tx_buffer_lock to be used to guard
- * the buffer from concurrent use.
+ * This function uses the ffa_spmc tx buffer to transmit the memory transaction
+ * descriptor.
  */
 static int share_shm(struct ffa_shm_mem *shm)
 {
@@ -298,17 +297,22 @@ static int share_shm(struct ffa_shm_mem *shm)
     struct ffa_address_range *addr_range;
     struct ffa_mem_region *region_descr;
     const unsigned int region_count = 1;
-    void *buf = ffa_tx;
     uint32_t frag_len;
     uint32_t tot_len;
     paddr_t last_pa;
     unsigned int n;
     paddr_t pa;
+    int32_t ret;
+    void *buf;
 
-    ASSERT(spin_is_locked(&ffa_tx_buffer_lock));
     ASSERT(shm->page_count);
 
+    buf = ffa_rxtx_spmc_tx_acquire();
+    if ( !buf )
+        return FFA_RET_NOT_SUPPORTED;
+
     descr = buf;
+
     memset(descr, 0, sizeof(*descr));
     descr->sender_id = shm->sender_id;
     descr->handle = shm->handle;
@@ -340,7 +344,10 @@ static int share_shm(struct ffa_shm_mem *shm)
     tot_len = ADDR_RANGE_OFFSET(descr->mem_access_count, region_count,
                                 region_descr->address_range_count);
     if ( tot_len > max_frag_len )
-        return FFA_RET_NOT_SUPPORTED;
+    {
+        ret = FFA_RET_NOT_SUPPORTED;
+        goto out;
+    }
 
     addr_range = region_descr->address_range_array;
     frag_len = ADDR_RANGE_OFFSET(descr->mem_access_count, region_count, 1);
@@ -360,7 +367,12 @@ static int share_shm(struct ffa_shm_mem *shm)
         init_range(addr_range, pa);
     }
 
-    return ffa_mem_share(tot_len, frag_len, 0, 0, &shm->handle);
+    ret = ffa_mem_share(tot_len, frag_len, 0, 0, &shm->handle);
+
+out:
+    ffa_rxtx_spmc_tx_release();
+
+    return ret;
 }
 
 static int read_mem_transaction(uint32_t ffa_vers, const void *buf, size_t blen,
@@ -579,10 +591,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     if ( ret )
         goto out;
 
-    /* Note that share_shm() uses our tx buffer */
-    spin_lock(&ffa_tx_buffer_lock);
     ret = share_shm(shm);
-    spin_unlock(&ffa_tx_buffer_lock);
     if ( ret )
         goto out;
 
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 10:37:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 10:37:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178640.1502421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTC9-0006s9-6E; Fri, 05 Dec 2025 10:37:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178640.1502421; Fri, 05 Dec 2025 10:37:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTC8-0006qu-Tf; Fri, 05 Dec 2025 10:37:48 +0000
Received: by outflank-mailman (input) for mailman id 1178640;
 Fri, 05 Dec 2025 10:37:47 +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
 <SRS0=d4nT=6L=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vRTC7-0005j7-Qa
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 10:37:47 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 7027a3d5-d1c6-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 11:37:46 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A65B5339;
 Fri,  5 Dec 2025 02:37:38 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.45.211])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id F09853F86F;
 Fri,  5 Dec 2025 02:37:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7027a3d5-d1c6-11f0-9d1b-b5c5bf9af7f9
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v1 06/12] xen/arm: ffa: rework VM RX/TX buffer management
Date: Fri,  5 Dec 2025 11:36:39 +0100
Message-ID: <17755cde0354ba0a70996b3a0e9eae23c2342b72.1764930353.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764930353.git.bertrand.marquis@arm.com>
References: <cover.1764930353.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Rework access to VM RX/TX buffer to use acquire/release functions
equivalent to the ones used for the SPMC RX/TX buffers and remove all
direct access to ctx->tx or ctx->rx by giving back the buffer pointer
and size back in acquire.

This design ensures that rx or page_count is not accessed without the
lock held and limit direct usage of the context rx/tx buffer info to
ffa_rxtx.c

Modify msg, partinfo and shm code to use the new RX/TX buffer
acquire/release functions and remove all direct accesses to rx/tx and
page_count so that any access is done only with the lock taken.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v1:
- patch introduced
---
 xen/arch/arm/tee/ffa.c          |  2 +-
 xen/arch/arm/tee/ffa_msg.c      | 32 ++++++++++++------------
 xen/arch/arm/tee/ffa_partinfo.c |  8 +++---
 xen/arch/arm/tee/ffa_private.h  |  6 +++--
 xen/arch/arm/tee/ffa_rxtx.c     | 43 ++++++++++++++++++++++++++++-----
 xen/arch/arm/tee/ffa_shm.c      | 18 +++++++-------
 6 files changed, 72 insertions(+), 37 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 43af49d1c011..69a5e1e876ce 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -345,7 +345,7 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
         ffa_handle_partition_info_get(regs);
         return true;
     case FFA_RX_RELEASE:
-        e = ffa_rx_release(d);
+        e = ffa_rx_release(ctx);
         break;
     case FFA_MSG_SEND_DIRECT_REQ_32:
     case FFA_MSG_SEND_DIRECT_REQ_64:
diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index 2c2ebc9c5cd6..d60eed6d8811 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -94,6 +94,8 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
     struct domain *dst_d;
     struct ffa_ctx *dst_ctx;
     struct ffa_part_msg_rxtx *dst_msg;
+    void *rx_buf;
+    size_t rx_size;
     int err;
     int32_t ret;
 
@@ -120,20 +122,19 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
     }
 
     /* This also checks that destination has set a Rx buffer */
-    ret = ffa_rx_acquire(dst_d);
+    ret = ffa_rx_acquire(dst_ctx , &rx_buf, &rx_size);
     if ( ret )
         goto out_unlock;
 
     /* we need to have enough space in the destination buffer */
-    if ( (dst_ctx->page_count * FFA_PAGE_SIZE -
-          sizeof(struct ffa_part_msg_rxtx)) < src_msg->msg_size )
+    if ( (rx_size - sizeof(struct ffa_part_msg_rxtx)) < src_msg->msg_size )
     {
         ret = FFA_RET_NO_MEMORY;
-        ffa_rx_release(dst_d);
+        ffa_rx_release(dst_ctx);
         goto out_unlock;
     }
 
-    dst_msg = dst_ctx->rx;
+    dst_msg = rx_buf;
 
     /* prepare destination header */
     dst_msg->flags = 0;
@@ -142,7 +143,7 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
     dst_msg->send_recv_id = src_msg->send_recv_id;
     dst_msg->msg_size = src_msg->msg_size;
 
-    memcpy(dst_ctx->rx + sizeof(struct ffa_part_msg_rxtx),
+    memcpy(rx_buf + sizeof(struct ffa_part_msg_rxtx),
            src_buf + src_msg->msg_offset, src_msg->msg_size);
 
     /* receiver rx buffer will be released by the receiver*/
@@ -159,17 +160,20 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
 {
     struct domain *src_d = current->domain;
     struct ffa_ctx *src_ctx = src_d->arch.tee;
+    const void *tx_buf;
+    size_t tx_size;
     struct ffa_part_msg_rxtx src_msg;
     uint16_t dst_id, src_id;
     int32_t ret;
 
     BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx) >= FFA_PAGE_SIZE);
 
-    if ( !spin_trylock(&src_ctx->tx_lock) )
-        return FFA_RET_BUSY;
+    ret = ffa_tx_acquire(src_ctx, &tx_buf, &tx_size);
+    if ( ret != FFA_RET_OK )
+        return ret;
 
     /* create a copy of the message header */
-    memcpy(&src_msg, src_ctx->tx, sizeof(src_msg));
+    memcpy(&src_msg, tx_buf, sizeof(src_msg));
 
     src_id = src_msg.send_recv_id >> 16;
     dst_id = src_msg.send_recv_id & GENMASK(15,0);
@@ -182,10 +186,8 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
 
     /* check source message fits in buffer */
     if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx) ||
-            src_msg.msg_size == 0 ||
-            src_msg.msg_offset > src_ctx->page_count * FFA_PAGE_SIZE ||
-            src_msg.msg_size > (src_ctx->page_count * FFA_PAGE_SIZE -
-                                src_msg.msg_offset) )
+            src_msg.msg_size == 0 || src_msg.msg_offset > tx_size ||
+            src_msg.msg_size > (tx_size - src_msg.msg_offset) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
         goto out;
@@ -206,12 +208,12 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
     else if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
     {
         /* Message for a VM */
-        ret = ffa_msg_send2_vm(dst_id, src_ctx->tx, &src_msg);
+        ret = ffa_msg_send2_vm(dst_id, tx_buf, &src_msg);
     }
     else
         ret = FFA_RET_INVALID_PARAMETERS;
 
 out:
-    spin_unlock(&src_ctx->tx_lock);
+    ffa_tx_release(src_ctx);
     return ret;
 }
diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index 145b869957b0..16c905cb12b8 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -224,6 +224,7 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
         get_user_reg(regs, 4),
     };
     uint32_t dst_size = 0;
+    size_t buf_size;
     void *dst_buf, *end_buf;
     uint32_t ffa_vm_count = 0, ffa_sp_count = 0;
 
@@ -268,12 +269,11 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
     }
 
     /* Get the RX buffer to write the list of partitions */
-    ret = ffa_rx_acquire(d);
+    ret = ffa_rx_acquire(ctx, &dst_buf, &buf_size);
     if ( ret != FFA_RET_OK )
         goto out;
 
-    dst_buf = ctx->rx;
-    end_buf = ctx->rx + ctx->page_count * FFA_PAGE_SIZE;
+    end_buf = dst_buf + buf_size;
 
     /* An entry should be smaller than a page */
     BUILD_BUG_ON(sizeof(struct ffa_partition_info_1_1) > FFA_PAGE_SIZE);
@@ -304,7 +304,7 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
 
 out_rx_release:
     if ( ret )
-        ffa_rx_release(d);
+        ffa_rx_release(ctx);
 out:
     if ( ret )
         ffa_set_regs_error(regs, ret);
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 8797a62abd01..0d1bab6cc700 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -444,8 +444,10 @@ void ffa_rxtx_domain_destroy(struct domain *d);
 int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
 			     register_t rx_addr, uint32_t page_count);
 int32_t ffa_handle_rxtx_unmap(void);
-int32_t ffa_rx_acquire(struct domain *d);
-int32_t ffa_rx_release(struct domain *d);
+int32_t ffa_rx_acquire(struct ffa_ctx *ctx, void **buf, size_t *buf_size);
+int32_t ffa_rx_release(struct ffa_ctx *ctx);
+int32_t ffa_tx_acquire(struct ffa_ctx *ctx, const void **buf, size_t *buf_size);
+int32_t ffa_tx_release(struct ffa_ctx *ctx);
 
 void ffa_notif_init(void);
 void ffa_notif_init_interrupt(void);
diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
index e325eae07bda..f79f2cf406aa 100644
--- a/xen/arch/arm/tee/ffa_rxtx.c
+++ b/xen/arch/arm/tee/ffa_rxtx.c
@@ -257,10 +257,9 @@ int32_t ffa_handle_rxtx_unmap(void)
     return rxtx_unmap(current->domain);
 }
 
-int32_t ffa_rx_acquire(struct domain *d)
+int32_t ffa_rx_acquire(struct ffa_ctx *ctx, void **buf, size_t *buf_size)
 {
     int32_t ret = FFA_RET_OK;
-    struct ffa_ctx *ctx = d->arch.tee;
 
     spin_lock(&ctx->rx_lock);
 
@@ -278,21 +277,22 @@ int32_t ffa_rx_acquire(struct domain *d)
 
     if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
     {
-        ret = ffa_simple_call(FFA_RX_ACQUIRE, ffa_get_vm_id(d), 0, 0, 0);
+        ret = ffa_simple_call(FFA_RX_ACQUIRE, ctx->ffa_id, 0, 0, 0);
         if ( ret != FFA_RET_OK )
             goto out;
     }
     ctx->rx_is_free = false;
+    *buf = ctx->rx;
+    *buf_size = ctx->page_count * FFA_PAGE_SIZE;
 out:
     spin_unlock(&ctx->rx_lock);
 
     return ret;
 }
 
-int32_t ffa_rx_release(struct domain *d)
+int32_t ffa_rx_release(struct ffa_ctx *ctx)
 {
     int32_t ret = FFA_RET_DENIED;
-    struct ffa_ctx *ctx = d->arch.tee;
 
     spin_lock(&ctx->rx_lock);
 
@@ -301,7 +301,7 @@ int32_t ffa_rx_release(struct domain *d)
 
     if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
     {
-        ret = ffa_simple_call(FFA_RX_RELEASE, ffa_get_vm_id(d), 0, 0, 0);
+        ret = ffa_simple_call(FFA_RX_RELEASE, ctx->ffa_id, 0, 0, 0);
         if ( ret != FFA_RET_OK )
             goto out;
     }
@@ -313,6 +313,37 @@ out:
     return ret;
 }
 
+int32_t ffa_tx_acquire(struct ffa_ctx *ctx, const void **buf, size_t *buf_size)
+{
+    int32_t ret = FFA_RET_DENIED;
+
+    if ( !spin_trylock(&ctx->tx_lock) )
+        return FFA_RET_BUSY;
+
+    if ( !ctx->page_count )
+        goto err_unlock;
+
+    if ( !ctx->tx )
+        goto err_unlock;
+
+    *buf = ctx->tx;
+    *buf_size = ctx->page_count * FFA_PAGE_SIZE;
+    return FFA_RET_OK;
+
+err_unlock:
+    spin_unlock(&ctx->tx_lock);
+
+    return ret;
+}
+
+int32_t ffa_tx_release(struct ffa_ctx *ctx)
+{
+    ASSERT(spin_is_locked(&ctx->tx_lock));
+
+    spin_unlock(&ctx->tx_lock);
+    return FFA_RET_OK;
+}
+
 int32_t ffa_rxtx_domain_init(struct domain *d)
 {
     struct ffa_ctx *ctx = d->arch.tee;
diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index e275d3769d9b..b862578c553c 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -460,6 +460,8 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     struct ffa_mem_transaction_int trans;
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
+    const void *tx_buf;
+    size_t tx_size;
     struct ffa_shm_mem *shm = NULL;
     register_t handle_hi = 0;
     register_t handle_lo = 0;
@@ -498,16 +500,14 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
         goto out_set_ret;
     }
 
-    if ( !spin_trylock(&ctx->tx_lock) )
-    {
-        ret = FFA_RET_BUSY;
+    ret = ffa_tx_acquire(ctx, &tx_buf, &tx_size);
+    if ( ret != FFA_RET_OK )
         goto out_set_ret;
-    }
 
-    if ( frag_len > ctx->page_count * FFA_PAGE_SIZE )
+    if ( frag_len > tx_size )
         goto out_unlock;
 
-    ret = read_mem_transaction(ACCESS_ONCE(ctx->guest_vers), ctx->tx,
+    ret = read_mem_transaction(ACCESS_ONCE(ctx->guest_vers), tx_buf,
                                frag_len, &trans);
     if ( ret )
         goto out_unlock;
@@ -535,7 +535,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     if ( trans.mem_access_offs + trans.mem_access_size > frag_len )
         goto out_unlock;
 
-    mem_access = ctx->tx + trans.mem_access_offs;
+    mem_access = tx_buf + trans.mem_access_offs;
 
     dst_id = ACCESS_ONCE(mem_access->access_perm.endpoint_id);
     if ( !FFA_ID_IS_SECURE(dst_id) )
@@ -558,7 +558,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
         goto out_unlock;
     }
 
-    region_descr = ctx->tx + region_offs;
+    region_descr = tx_buf + region_offs;
     range_count = ACCESS_ONCE(region_descr->address_range_count);
     page_count = ACCESS_ONCE(region_descr->total_page_count);
 
@@ -605,7 +605,7 @@ out:
     if ( ret )
         free_ffa_shm_mem(d, shm);
 out_unlock:
-    spin_unlock(&ctx->tx_lock);
+    ffa_tx_release(ctx);
 
 out_set_ret:
     if ( ret == 0)
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 10:37:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 10:37:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178641.1502434 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTCB-0007Lc-IW; Fri, 05 Dec 2025 10:37:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178641.1502434; Fri, 05 Dec 2025 10:37:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTCB-0007LC-Dl; Fri, 05 Dec 2025 10:37:51 +0000
Received: by outflank-mailman (input) for mailman id 1178641;
 Fri, 05 Dec 2025 10:37:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d4nT=6L=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vRTC9-0005Ju-Tk
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 10:37:49 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 70e7667f-d1c6-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 11:37:47 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id F234F1063;
 Fri,  5 Dec 2025 02:37:39 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.45.211])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 484DF3F86F;
 Fri,  5 Dec 2025 02:37:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70e7667f-d1c6-11f0-980a-7dc792cee155
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v1 07/12] xen/arm: ffa: use signed 32-bit status codes
Date: Fri,  5 Dec 2025 11:36:40 +0100
Message-ID: <5f4cf1aefa11c0883a312384854a8c43b096d3e8.1764930353.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764930353.git.bertrand.marquis@arm.com>
References: <cover.1764930353.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The FF-A spec defines return status values as signed 32-bit integers.
Align the Xen mediator with this requirement by:

- switching the FF-A helpers (ffa_handle_mem_reclaim(), partition info
  init, notification ops, dispatcher glue, etc.) to int32_t return types
  so callers cannot silently truncate negative values
- masking SMCCC responses/exits in ffa_get_version(),
  ffa_get_ret_code() and ffa_set_regs_error() to 32 bits before storing
  them in guest registers
- updating notifier, shared-memory reclaim, partition-info and
  dispatcher call sites to use the new prototypes so the entire FF-A
  path propagates spec-compliant 32-bit signed error codes

While there, tidy up the FF-A notification helpers by using GENMASK(15, 0)
for endpoint extraction and fix the secure-endpoint check in
ffa_handle_notification_set() to apply the mask to the endpoint ID before
calling FFA_ID_IS_SECURE(), instead of testing the wrong halfword of
src_dst.

Fixes: 911b305e7bdab ("xen/arm: ffa: Enable VM to VM without firmware")
Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
---
Changes in v1:
- add Jens R-b
---
 xen/arch/arm/tee/ffa.c          | 12 +++++++-----
 xen/arch/arm/tee/ffa_notif.c    | 14 +++++++-------
 xen/arch/arm/tee/ffa_partinfo.c |  4 ++--
 xen/arch/arm/tee/ffa_private.h  | 21 +++++++++++----------
 xen/arch/arm/tee/ffa_shm.c      |  4 ++--
 5 files changed, 29 insertions(+), 26 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 69a5e1e876ce..2c09d10ae6a1 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -129,12 +129,14 @@ static bool ffa_get_version(uint32_t *vers)
         .a1 = FFA_MY_VERSION,
     };
     struct arm_smccc_1_2_regs resp;
+    int32_t ret;
 
     arm_smccc_1_2_smc(&arg, &resp);
-    if ( resp.a0 == FFA_RET_NOT_SUPPORTED )
+    ret = resp.a0 & GENMASK_ULL(31, 0);
+    if ( ret == FFA_RET_NOT_SUPPORTED )
         return false;
 
-    *vers = resp.a0;
+    *vers = resp.a0 & GENMASK_ULL(31, 0);
 
     return true;
 }
@@ -310,7 +312,7 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     uint32_t fid = get_user_reg(regs, 0);
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
-    int e;
+    int32_t e;
 
     if ( !ctx )
         return false;
@@ -382,8 +384,8 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
 
     default:
         gprintk(XENLOG_ERR, "ffa: unhandled fid 0x%x\n", fid);
-        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
-        return true;
+        e = FFA_RET_NOT_SUPPORTED;
+        break;
     }
 
     if ( e )
diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
index 86bef6b3b2ab..37b05747cd21 100644
--- a/xen/arch/arm/tee/ffa_notif.c
+++ b/xen/arch/arm/tee/ffa_notif.c
@@ -19,7 +19,7 @@
 static bool __ro_after_init fw_notif_enabled;
 static unsigned int __ro_after_init notif_sri_irq;
 
-int ffa_handle_notification_bind(struct cpu_user_regs *regs)
+int32_t ffa_handle_notification_bind(struct cpu_user_regs *regs)
 {
     struct domain *d = current->domain;
     uint32_t src_dst = get_user_reg(regs, 1);
@@ -27,7 +27,7 @@ int ffa_handle_notification_bind(struct cpu_user_regs *regs)
     uint32_t bitmap_lo = get_user_reg(regs, 3);
     uint32_t bitmap_hi = get_user_reg(regs, 4);
 
-    if ( (src_dst & 0xFFFFU) != ffa_get_vm_id(d) )
+    if ( (src_dst & GENMASK(15, 0)) != ffa_get_vm_id(d) )
         return FFA_RET_INVALID_PARAMETERS;
 
     if ( flags )    /* Only global notifications are supported */
@@ -40,14 +40,14 @@ int ffa_handle_notification_bind(struct cpu_user_regs *regs)
     return FFA_RET_NOT_SUPPORTED;
 }
 
-int ffa_handle_notification_unbind(struct cpu_user_regs *regs)
+int32_t ffa_handle_notification_unbind(struct cpu_user_regs *regs)
 {
     struct domain *d = current->domain;
     uint32_t src_dst = get_user_reg(regs, 1);
     uint32_t bitmap_lo = get_user_reg(regs, 3);
     uint32_t bitmap_hi = get_user_reg(regs, 4);
 
-    if ( (src_dst & 0xFFFFU) != ffa_get_vm_id(d) )
+    if ( (src_dst & GENMASK(15, 0)) != ffa_get_vm_id(d) )
         return FFA_RET_INVALID_PARAMETERS;
 
     if ( FFA_ID_IS_SECURE(src_dst >> 16) && fw_notif_enabled )
@@ -106,7 +106,7 @@ void ffa_handle_notification_get(struct cpu_user_regs *regs)
         return;
     }
 
-    if ( (recv & 0xFFFFU) != ffa_get_vm_id(d) )
+    if ( (recv & GENMASK(15, 0)) != ffa_get_vm_id(d) )
     {
         ffa_set_regs_error(regs, FFA_RET_INVALID_PARAMETERS);
         return;
@@ -162,7 +162,7 @@ void ffa_handle_notification_get(struct cpu_user_regs *regs)
     ffa_set_regs(regs, FFA_SUCCESS_32, 0, w2, w3, w4, w5, w6, w7);
 }
 
-int ffa_handle_notification_set(struct cpu_user_regs *regs)
+int32_t ffa_handle_notification_set(struct cpu_user_regs *regs)
 {
     struct domain *d = current->domain;
     uint32_t src_dst = get_user_reg(regs, 1);
@@ -173,7 +173,7 @@ int ffa_handle_notification_set(struct cpu_user_regs *regs)
     if ( (src_dst >> 16) != ffa_get_vm_id(d) )
         return FFA_RET_INVALID_PARAMETERS;
 
-    if ( FFA_ID_IS_SECURE(src_dst >> 16) && fw_notif_enabled )
+    if ( FFA_ID_IS_SECURE(src_dst & GENMASK(15, 0)) && fw_notif_enabled )
         return ffa_simple_call(FFA_NOTIFICATION_SET, src_dst, flags, bitmap_lo,
                                bitmap_hi);
 
diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index 16c905cb12b8..c9faf5415853 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -448,7 +448,7 @@ bool ffa_partinfo_init(void)
     bool ret = false;
     uint32_t fpi_size;
     uint32_t count;
-    int e;
+    int32_t e;
     void *spmc_rx;
 
     if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) ||
@@ -515,7 +515,7 @@ static void vm_destroy_bitmap_init(struct ffa_ctx *ctx,
     }
 }
 
-int ffa_partinfo_domain_init(struct domain *d)
+int32_t ffa_partinfo_domain_init(struct domain *d)
 {
     unsigned int count = BITS_TO_LONGS(subscr_vm_destroyed_count);
     struct ffa_ctx *ctx = d->arch.tee;
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 0d1bab6cc700..a18e56b05bbb 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -31,9 +31,9 @@
 
 /* FFA_VERSION helpers */
 #define FFA_VERSION_MAJOR_SHIFT         16U
-#define FFA_VERSION_MAJOR_MASK          0x7FFFU
+#define FFA_VERSION_MAJOR_MASK          GENMASK(14, 0)
 #define FFA_VERSION_MINOR_SHIFT         0U
-#define FFA_VERSION_MINOR_MASK          0xFFFFU
+#define FFA_VERSION_MINOR_MASK          GENMASK(15, 0)
 #define MAKE_FFA_VERSION(major, minor)  \
         ((((major) & FFA_VERSION_MAJOR_MASK) << FFA_VERSION_MAJOR_SHIFT) | \
          ((minor) & FFA_VERSION_MINOR_MASK))
@@ -425,10 +425,10 @@ extern atomic_t ffa_vm_count;
 
 bool ffa_shm_domain_destroy(struct domain *d);
 void ffa_handle_mem_share(struct cpu_user_regs *regs);
-int ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags);
+int32_t ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags);
 
 bool ffa_partinfo_init(void);
-int ffa_partinfo_domain_init(struct domain *d);
+int32_t ffa_partinfo_domain_init(struct domain *d);
 bool ffa_partinfo_domain_destroy(struct domain *d);
 void ffa_handle_partition_info_get(struct cpu_user_regs *regs);
 
@@ -454,11 +454,11 @@ void ffa_notif_init_interrupt(void);
 int ffa_notif_domain_init(struct domain *d);
 void ffa_notif_domain_destroy(struct domain *d);
 
-int ffa_handle_notification_bind(struct cpu_user_regs *regs);
-int ffa_handle_notification_unbind(struct cpu_user_regs *regs);
+int32_t ffa_handle_notification_bind(struct cpu_user_regs *regs);
+int32_t ffa_handle_notification_unbind(struct cpu_user_regs *regs);
 void ffa_handle_notification_info_get(struct cpu_user_regs *regs);
 void ffa_handle_notification_get(struct cpu_user_regs *regs);
-int ffa_handle_notification_set(struct cpu_user_regs *regs);
+int32_t ffa_handle_notification_set(struct cpu_user_regs *regs);
 
 #ifdef CONFIG_FFA_VM_TO_VM
 void ffa_raise_rx_buffer_full(struct domain *d);
@@ -524,9 +524,10 @@ static inline void ffa_set_regs(struct cpu_user_regs *regs, register_t v0,
 }
 
 static inline void ffa_set_regs_error(struct cpu_user_regs *regs,
-                                      uint32_t error_code)
+                                      int32_t error_code)
 {
-    ffa_set_regs(regs, FFA_ERROR, 0, error_code, 0, 0, 0, 0, 0);
+    ffa_set_regs(regs, FFA_ERROR, 0, error_code & GENMASK_ULL(31, 0), 0, 0, 0,
+                 0, 0);
 }
 
 static inline void ffa_set_regs_success(struct cpu_user_regs *regs,
@@ -541,7 +542,7 @@ static inline int32_t ffa_get_ret_code(const struct arm_smccc_1_2_regs *resp)
     {
     case FFA_ERROR:
         if ( resp->a2 )
-            return resp->a2;
+            return resp->a2 & GENMASK_ULL(31, 0);
         else
             return FFA_RET_NOT_SUPPORTED;
     case FFA_SUCCESS_32:
diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index b862578c553c..8282bacf85d3 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -626,14 +626,14 @@ static struct ffa_shm_mem *find_shm_mem(struct ffa_ctx *ctx, uint64_t handle)
     return NULL;
 }
 
-int ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags)
+int32_t ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags)
 {
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
     struct ffa_shm_mem *shm;
     register_t handle_hi;
     register_t handle_lo;
-    int ret;
+    int32_t ret;
 
     if ( !ffa_fw_supports_fid(FFA_MEM_RECLAIM) )
         return FFA_RET_NOT_SUPPORTED;
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 10:37:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 10:37:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178642.1502440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTCC-0007Pt-0r; Fri, 05 Dec 2025 10:37:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178642.1502440; Fri, 05 Dec 2025 10:37:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTCB-0007PY-PD; Fri, 05 Dec 2025 10:37:51 +0000
Received: by outflank-mailman (input) for mailman id 1178642;
 Fri, 05 Dec 2025 10:37:50 +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
 <SRS0=d4nT=6L=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vRTC9-0005j7-R8
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 10:37:49 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 71b53fc3-d1c6-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 11:37:49 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 56F8C339;
 Fri,  5 Dec 2025 02:37:41 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.45.211])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 957C33F86F;
 Fri,  5 Dec 2025 02:37:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 71b53fc3-d1c6-11f0-9d1b-b5c5bf9af7f9
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v1 08/12] xen/arm: ffa: add UUID helpers for partition info
Date: Fri,  5 Dec 2025 11:36:41 +0100
Message-ID: <480cc4c4c0a46fc7a812de5c7aa6365af220e9f2.1764930353.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764930353.git.bertrand.marquis@arm.com>
References: <cover.1764930353.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce struct ffa_uuid together with nil/equality/set helpers, and
use it end-to-end in the partition-info plumbing.

The SP and VM enumeration paths now build UUIDs from the guest
registers, call a new ffa_copy_info() helper and ensure non-nil UUID
queries only return matching SP entries, relying on firmware UUID
filtering. VM entries are skipped because we do not track per-VM UUIDs.

Count requests and subscriber initialisation are updated accordingly so
firmware is always called with an explicit UUID. This keeps count and
listing requests aligned with the FF-A v1.1 rules while preserving the
Linux compatibility workaround for v1.2 requesters.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v1:
- Use GENMASK in ffa_partition_info_get instead of explicit values.
- Use ACCESS_ONCE to read guest_vers
- use is_64bit_domain to get current domain 32/64 bit support
---
 xen/arch/arm/tee/ffa_partinfo.c | 209 ++++++++++++++++++++------------
 xen/arch/arm/tee/ffa_private.h  |  21 ++++
 2 files changed, 154 insertions(+), 76 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index c9faf5415853..bf906ed0c88f 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -33,7 +33,7 @@ static uint16_t subscr_vm_created_count __read_mostly;
 static uint16_t *subscr_vm_destroyed __read_mostly;
 static uint16_t subscr_vm_destroyed_count __read_mostly;
 
-static int32_t ffa_partition_info_get(uint32_t *uuid, uint32_t flags,
+static int32_t ffa_partition_info_get(struct ffa_uuid uuid, uint32_t flags,
                                       uint32_t *count, uint32_t *fpi_size)
 {
     struct arm_smccc_1_2_regs arg = {
@@ -41,15 +41,12 @@ static int32_t ffa_partition_info_get(uint32_t *uuid, uint32_t flags,
         .a5 = flags,
     };
     struct arm_smccc_1_2_regs resp;
-    uint32_t ret;
+    int32_t ret;
 
-    if ( uuid )
-    {
-        arg.a1 = uuid[0];
-        arg.a2 = uuid[1];
-        arg.a3 = uuid[2];
-        arg.a4 = uuid[3];
-    }
+    arg.a1 = uuid.val[0] & GENMASK(31, 0);
+    arg.a2 = (uuid.val[0] >> 32) & GENMASK(31, 0);
+    arg.a3 = uuid.val[1] & GENMASK(31, 0);
+    arg.a4 = (uuid.val[1] >> 32) & GENMASK(31, 0);
 
     arm_smccc_1_2_smc(&arg, &resp);
 
@@ -63,7 +60,26 @@ static int32_t ffa_partition_info_get(uint32_t *uuid, uint32_t flags,
     return ret;
 }
 
-static int32_t ffa_get_sp_count(uint32_t *uuid, uint32_t *sp_count)
+static int32_t ffa_copy_info(void **dst, void *dst_end, const void *src,
+                             uint32_t dst_size, uint32_t src_size)
+{
+    uint8_t *pos = *dst;
+    uint8_t *end = dst_end;
+
+    if ( pos > end - dst_size )
+        return FFA_RET_NO_MEMORY;
+
+    memcpy(pos, src, MIN(dst_size, src_size));
+
+    if ( dst_size > src_size )
+        memset(pos + src_size, 0, dst_size - src_size);
+
+    *dst = pos + dst_size;
+
+    return FFA_RET_OK;
+}
+
+static int32_t ffa_get_sp_count(struct ffa_uuid uuid, uint32_t *sp_count)
 {
     uint32_t src_size;
 
@@ -71,8 +87,8 @@ static int32_t ffa_get_sp_count(uint32_t *uuid, uint32_t *sp_count)
                                   sp_count, &src_size);
 }
 
-static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
-                                   void *dst_buf, void *end_buf,
+static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_count,
+                                   void **dst_buf, void *end_buf,
                                    uint32_t dst_size)
 {
     int32_t ret;
@@ -120,17 +136,18 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
         /* filter out SP not following bit 15 convention if any */
         if ( FFA_ID_IS_SECURE(fpi->id) )
         {
-            if ( dst_buf > (end_buf - dst_size) )
-            {
-                ret = FFA_RET_NO_MEMORY;
-                goto out;
-            }
+            /*
+             * If VM is 1.0 but firmware is 1.1 we could have several entries
+             * with the same ID but different UUIDs. In this case the VM will
+             * get a list with several time the same ID.
+             * This is a non-compliance to the specification but 1.0 VMs should
+             * handle that on their own to simplify Xen implementation.
+             */
 
-            memcpy(dst_buf, src_buf, MIN(src_size, dst_size));
-            if ( dst_size > src_size )
-                memset(dst_buf + src_size, 0, dst_size - src_size);
+            ret = ffa_copy_info(dst_buf, end_buf, src_buf, dst_size, src_size);
+            if ( ret )
+                goto out;
 
-            dst_buf += dst_size;
             count++;
         }
 
@@ -144,69 +161,90 @@ out:
     return ret;
 }
 
-static int32_t ffa_get_vm_partinfo(uint32_t *vm_count, void *dst_buf,
-                                   void *end_buf, uint32_t dst_size)
+static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t *vm_count,
+                                   void **dst_buf, void *end_buf,
+                                   uint32_t dst_size)
 {
-    struct ffa_ctx *curr_ctx = current->domain->arch.tee;
+    struct domain *d = current->domain;
+    struct ffa_ctx *curr_ctx = d->arch.tee;
     struct ffa_ctx *dest_ctx;
     uint32_t count = 0;
     int32_t ret = FFA_RET_OK;
+    /*
+     * We do not have UUID info for VMs so use the 1.0 structure so that we set
+     * UUIDs to zero using memset
+     */
+    struct ffa_partition_info_1_0 info;
 
     /*
-     * There could potentially be a lot of VMs in the system and we could
-     * hold the CPU for long here.
-     * Right now there is no solution in FF-A specification to split
-     * the work in this case.
-     * TODO: Check how we could delay the work or have preemption checks.
+     * We do not have protocol UUIDs for VMs so if a request has non Nil UUID
+     * we must return an empty list.
      */
-    read_lock(&ffa_ctx_list_rwlock);
-    list_for_each_entry(dest_ctx, &ffa_ctx_head, ctx_list)
+    if ( !ffa_uuid_is_nil(uuid) )
+    {
+        *vm_count = 0;
+        return FFA_RET_OK;
+    }
+
+    /*
+     * Workaround for Linux FF-A Driver not accepting to have its own
+     * entry in the list before FF-A v1.2 was supported.
+     * This workaround is generally acceptable for other implementations
+     * as the specification was not completely clear on wether or not
+     * the requester endpoint information should be included or not
+     */
+    if ( ACCESS_ONCE(curr_ctx->guest_vers) >= FFA_VERSION_1_2 )
+    {
+        /* Add caller VM information */
+        info.id = curr_ctx->ffa_id;
+        info.execution_context = curr_ctx->num_vcpus;
+        info.partition_properties = FFA_PART_VM_PROP;
+        if ( is_64bit_domain(d) )
+            info.partition_properties |= FFA_PART_PROP_AARCH64_STATE;
+
+        ret = ffa_copy_info(dst_buf, end_buf, &info, dst_size, sizeof(info));
+        if ( ret )
+            return ret;
+
+        count++;
+    }
+
+    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
     {
         /*
-         * Do not include an entry for the caller VM as the spec is not
-         * clearly mandating it and it is not supported by Linux.
+         * There could potentially be a lot of VMs in the system and we could
+         * hold the CPU for long here.
+         * Right now there is no solution in FF-A specification to split
+         * the work in this case.
+         * TODO: Check how we could delay the work or have preemption checks.
          */
-        if ( dest_ctx != curr_ctx )
+        read_lock(&ffa_ctx_list_rwlock);
+        list_for_each_entry(dest_ctx, &ffa_ctx_head, ctx_list)
         {
-            /*
-             * We do not have UUID info for VMs so use
-             * the 1.0 structure so that we set UUIDs to
-             * zero using memset
-             */
-            struct ffa_partition_info_1_0 info;
+            /* Ignore the caller entry as it was already added */
+            if ( dest_ctx == curr_ctx )
+                continue;
 
-            if  ( dst_buf > (end_buf - dst_size) )
-            {
-                ret = FFA_RET_NO_MEMORY;
-                goto out;
-            }
-
-            /*
-             * Context might has been removed since we go it or being removed
-             * right now so we might return information for a VM not existing
-             * anymore. This is acceptable as we return a view of the system
-             * which could change at any time.
-             */
             info.id = dest_ctx->ffa_id;
             info.execution_context = dest_ctx->num_vcpus;
             info.partition_properties = FFA_PART_VM_PROP;
             if ( dest_ctx->is_64bit )
                 info.partition_properties |= FFA_PART_PROP_AARCH64_STATE;
 
-            memcpy(dst_buf, &info, MIN(sizeof(info), dst_size));
-
-            if ( dst_size > sizeof(info) )
-                memset(dst_buf + sizeof(info), 0,
-                       dst_size - sizeof(info));
+            ret = ffa_copy_info(dst_buf, end_buf, &info, dst_size,
+                                sizeof(info));
+            if ( ret )
+            {
+                read_unlock(&ffa_ctx_list_rwlock);
+                return ret;
+            }
 
-            dst_buf += dst_size;
             count++;
         }
+        read_unlock(&ffa_ctx_list_rwlock);
     }
-    *vm_count = count;
 
-out:
-    read_unlock(&ffa_ctx_list_rwlock);
+    *vm_count = count;
 
     return ret;
 }
@@ -217,17 +255,18 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
     uint32_t flags = get_user_reg(regs, 5);
-    uint32_t uuid[4] = {
-        get_user_reg(regs, 1),
-        get_user_reg(regs, 2),
-        get_user_reg(regs, 3),
-        get_user_reg(regs, 4),
-    };
+    struct ffa_uuid uuid;
     uint32_t dst_size = 0;
     size_t buf_size;
     void *dst_buf, *end_buf;
     uint32_t ffa_vm_count = 0, ffa_sp_count = 0;
 
+    ffa_uuid_set(&uuid,
+             get_user_reg(regs, 1),
+             get_user_reg(regs, 2),
+             get_user_reg(regs, 3),
+             get_user_reg(regs, 4));
+
     /*
      * If the guest is v1.0, he does not get back the entry size so we must
      * use the v1.0 structure size in the destination buffer.
@@ -260,10 +299,23 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
         }
 
         /*
-         * Do not count the caller VM as the spec is not clearly mandating it
-         * and it is not supported by Linux.
+         * We do not have protocol UUIDs for VMs so if a request has non Nil
+         * UUID we must return a vm_count of 0
          */
-        ffa_vm_count = get_ffa_vm_count() - 1;
+        if ( ffa_uuid_is_nil(uuid) )
+        {
+            ffa_vm_count = get_ffa_vm_count();
+
+            /*
+             * Workaround for Linux FF-A Driver not accepting to have its own
+             * entry in the list before FF-A v1.2 was supported.
+             * This workaround is generally acceptable for other implementations
+             * as the specification was not completely clear on wether or not
+             * the requester endpoint information should be included or not
+             */
+            if ( ACCESS_ONCE(ctx->guest_vers) < FFA_VERSION_1_2 )
+                ffa_vm_count -= 1;
+        }
 
         goto out;
     }
@@ -290,17 +342,15 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
 
     if ( ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
     {
-        ret = ffa_get_sp_partinfo(uuid, &ffa_sp_count, dst_buf, end_buf,
+        ret = ffa_get_sp_partinfo(uuid, &ffa_sp_count, &dst_buf, end_buf,
                                   dst_size);
 
         if ( ret )
             goto out_rx_release;
-
-        dst_buf += ffa_sp_count * dst_size;
     }
 
-    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
-        ret = ffa_get_vm_partinfo(&ffa_vm_count, dst_buf, end_buf, dst_size);
+    ret = ffa_get_vm_partinfo(uuid, &ffa_vm_count, &dst_buf, end_buf,
+                              dst_size);
 
 out_rx_release:
     if ( ret )
@@ -309,7 +359,13 @@ out:
     if ( ret )
         ffa_set_regs_error(regs, ret);
     else
+    {
+        /* Size should be 0 on count request and was not supported in 1.0 */
+        if ( flags || ACCESS_ONCE(ctx->guest_vers) == FFA_VERSION_1_0 )
+            dst_size = 0;
+
         ffa_set_regs_success(regs, ffa_sp_count + ffa_vm_count, dst_size);
+    }
 }
 
 static int32_t ffa_direct_req_send_vm(uint16_t sp_id, uint16_t vm_id,
@@ -450,6 +506,7 @@ bool ffa_partinfo_init(void)
     uint32_t count;
     int32_t e;
     void *spmc_rx;
+    struct ffa_uuid nil_uuid = { .val = { 0ULL, 0ULL } };
 
     if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) ||
          !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32))
@@ -459,7 +516,7 @@ bool ffa_partinfo_init(void)
     if (!spmc_rx)
         return false;
 
-    e = ffa_partition_info_get(NULL, 0, &count, &fpi_size);
+    e = ffa_partition_info_get(nil_uuid, 0, &count, &fpi_size);
     if ( e )
     {
         printk(XENLOG_ERR "ffa: Failed to get list of SPs: %d\n", e);
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index a18e56b05bbb..d883114948b1 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -307,6 +307,10 @@ struct ffa_mem_region {
     struct ffa_address_range address_range_array[];
 };
 
+struct ffa_uuid {
+    uint64_t val[2];
+};
+
 struct ffa_ctx_notif {
     /*
      * True if domain is reported by FFA_NOTIFICATION_INFO_GET to have
@@ -580,4 +584,21 @@ static inline bool ffa_fw_supports_fid(uint32_t fid)
     return test_bit(FFA_ABI_BITNUM(fid), ffa_fw_abi_supported);
 }
 
+static inline bool ffa_uuid_is_nil(struct ffa_uuid id)
+{
+    return id.val[0] == 0 && id.val[1] == 0;
+}
+
+static inline bool ffa_uuid_equal(struct ffa_uuid id1, struct ffa_uuid id2)
+{
+    return id1.val[0] == id2.val[0] && id1.val[1] == id2.val[1];
+}
+
+static inline void ffa_uuid_set(struct ffa_uuid *id, uint32_t val0,
+                                uint32_t val1, uint32_t val2, uint32_t val3)
+{
+    id->val[0] = ((uint64_t)val1 << 32U) | val0;
+    id->val[1] = ((uint64_t)val3 << 32U) | val2;
+}
+
 #endif /*__FFA_PRIVATE_H__*/
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 10:37:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 10:37:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178644.1502452 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTCD-0007mm-B3; Fri, 05 Dec 2025 10:37:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178644.1502452; Fri, 05 Dec 2025 10:37:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTCD-0007ko-3f; Fri, 05 Dec 2025 10:37:53 +0000
Received: by outflank-mailman (input) for mailman id 1178644;
 Fri, 05 Dec 2025 10:37:51 +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
 <SRS0=d4nT=6L=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vRTCB-0005j7-5K
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 10:37:51 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 727d3404-d1c6-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 11:37:50 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A1C251575;
 Fri,  5 Dec 2025 02:37:42 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.45.211])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id ED5BD3F86F;
 Fri,  5 Dec 2025 02:37:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 727d3404-d1c6-11f0-9d1b-b5c5bf9af7f9
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v1 09/12] xen/arm: ffa: Add FFA_RUN support
Date: Fri,  5 Dec 2025 11:36:42 +0100
Message-ID: <9e205ba6bdd6d053dfbf8cf7892d347512acdb2e.1764930353.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764930353.git.bertrand.marquis@arm.com>
References: <cover.1764930353.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add FFA_RUN support and remove mention that YIELD and INTERRUPT are not
supported in the comment as we will now return them.

Make FFA_FEATURE answer supported for RUN, YIELD and INTERRUPT.

Share the SMCCC plumbing used by SEND_DIRECT and RUN via a common
ffa_finish_direct_req_run() helper so canonical success and error cases
are handled in one place.

The dispatcher now routes FFA_RUN through ffa_handle_run(), and direct
requests bail out early if a guest targets itself or a non-secure
endpoint. This simplifies the direct path while adding support for
INTERRUPT or YIELD answers from secure world.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v1:
- Rework commit message to clearly mention that we add FFA_RUN support
- Remove mentions of FFA_MSG_YIELD/INTERRUPT/RUN not being supported
- Report YIELD, INTERRUPT an RUN as supported in ffa_features handling
---
 xen/arch/arm/tee/ffa.c         |   9 ++-
 xen/arch/arm/tee/ffa_msg.c     | 111 ++++++++++++++++++++++++---------
 xen/arch/arm/tee/ffa_private.h |   1 +
 3 files changed, 87 insertions(+), 34 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 2c09d10ae6a1..0f07efe5a7b3 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -24,9 +24,6 @@
  * o FFA_MEM_DONATE_* and FFA_MEM_LEND_* - Used when tranferring ownership
  *   or access of a memory region
  * o FFA_MSG_SEND2 and FFA_MSG_WAIT - Used for indirect messaging
- * o FFA_MSG_YIELD
- * o FFA_INTERRUPT - Used to report preemption
- * o FFA_RUN
  *
  * Limitations in the implemented FF-A interfaces:
  * o FFA_RXTX_MAP_*:
@@ -266,6 +263,9 @@ static void handle_features(struct cpu_user_regs *regs)
     case FFA_MSG_SEND_DIRECT_REQ_32:
     case FFA_MSG_SEND_DIRECT_REQ_64:
     case FFA_MSG_SEND2:
+    case FFA_RUN:
+    case FFA_INTERRUPT:
+    case FFA_MSG_YIELD:
         ffa_set_regs_success(regs, 0, 0);
         break;
     case FFA_MEM_SHARE_64:
@@ -353,6 +353,9 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     case FFA_MSG_SEND_DIRECT_REQ_64:
         ffa_handle_msg_send_direct_req(regs, fid);
         return true;
+    case FFA_RUN:
+        ffa_handle_run(regs, fid);
+        return true;
     case FFA_MSG_SEND2:
         e = ffa_handle_msg_send2(regs);
         break;
diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index d60eed6d8811..5a4cb1bb8295 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -21,42 +21,74 @@ struct ffa_part_msg_rxtx {
     uint32_t msg_size;
 };
 
-void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
+static void ffa_finish_direct_req_run(struct cpu_user_regs *regs,
+                                      struct arm_smccc_1_2_regs *req)
 {
-    struct arm_smccc_1_2_regs arg = { .a0 = fid, };
     struct arm_smccc_1_2_regs resp = { };
-    struct domain *d = current->domain;
-    uint32_t src_dst;
     uint64_t mask;
 
-    if ( smccc_is_conv_64(fid) )
+    arm_smccc_1_2_smc(req, &resp);
+
+    switch ( resp.a0 )
+    {
+    case FFA_ERROR:
+    case FFA_SUCCESS_32:
+    case FFA_SUCCESS_64:
+    case FFA_MSG_SEND_DIRECT_RESP_32:
+    case FFA_MSG_SEND_DIRECT_RESP_64:
+    case FFA_MSG_YIELD:
+    case FFA_INTERRUPT:
+        break;
+    default:
+        /* Bad fid, report back to the caller. */
+        ffa_set_regs_error(regs, FFA_RET_ABORTED);
+        return;
+    }
+
+    if ( smccc_is_conv_64(resp.a0) )
         mask = GENMASK_ULL(63, 0);
     else
         mask = GENMASK_ULL(31, 0);
 
+    ffa_set_regs(regs, resp.a0, resp.a1 & mask, resp.a2 & mask, resp.a3 & mask,
+                 resp.a4 & mask, resp.a5 & mask, resp.a6 & mask,
+                 resp.a7 & mask);
+}
+
+void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
+{
+    struct arm_smccc_1_2_regs arg = { .a0 = fid, };
+    struct domain *d = current->domain;
+    uint32_t src_dst;
+    uint64_t mask;
+    int32_t ret;
+
     if ( !ffa_fw_supports_fid(fid) )
     {
-        resp.a0 = FFA_ERROR;
-        resp.a2 = FFA_RET_NOT_SUPPORTED;
+        ret = FFA_RET_NOT_SUPPORTED;
         goto out;
     }
 
     src_dst = get_user_reg(regs, 1);
-    if ( (src_dst >> 16) != ffa_get_vm_id(d) )
+    if ( (src_dst >> 16) != ffa_get_vm_id(d) ||
+         (src_dst & GENMASK(15,0)) == ffa_get_vm_id(d) )
     {
-        resp.a0 = FFA_ERROR;
-        resp.a2 = FFA_RET_INVALID_PARAMETERS;
+        ret = FFA_RET_INVALID_PARAMETERS;
         goto out;
     }
 
     /* we do not support direct messages to VMs */
     if ( !FFA_ID_IS_SECURE(src_dst & GENMASK(15,0)) )
     {
-        resp.a0 = FFA_ERROR;
-        resp.a2 = FFA_RET_NOT_SUPPORTED;
+        ret = FFA_RET_NOT_SUPPORTED;
         goto out;
     }
 
+    if ( smccc_is_conv_64(fid) )
+        mask = GENMASK_ULL(63, 0);
+    else
+        mask = GENMASK_ULL(31, 0);
+
     arg.a1 = src_dst;
     arg.a2 = get_user_reg(regs, 2) & mask;
     arg.a3 = get_user_reg(regs, 3) & mask;
@@ -65,27 +97,11 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
     arg.a6 = get_user_reg(regs, 6) & mask;
     arg.a7 = get_user_reg(regs, 7) & mask;
 
-    arm_smccc_1_2_smc(&arg, &resp);
-    switch ( resp.a0 )
-    {
-    case FFA_ERROR:
-    case FFA_SUCCESS_32:
-    case FFA_SUCCESS_64:
-    case FFA_MSG_SEND_DIRECT_RESP_32:
-    case FFA_MSG_SEND_DIRECT_RESP_64:
-        break;
-    default:
-        /* Bad fid, report back to the caller. */
-        memset(&resp, 0, sizeof(resp));
-        resp.a0 = FFA_ERROR;
-        resp.a1 = src_dst;
-        resp.a2 = FFA_RET_ABORTED;
-    }
+    ffa_finish_direct_req_run(regs, &arg);
+    return;
 
 out:
-    ffa_set_regs(regs, resp.a0, resp.a1 & mask, resp.a2 & mask, resp.a3 & mask,
-                 resp.a4 & mask, resp.a5 & mask, resp.a6 & mask,
-                 resp.a7 & mask);
+    ffa_set_regs_error(regs, ret);
 }
 
 static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
@@ -217,3 +233,36 @@ out:
     ffa_tx_release(src_ctx);
     return ret;
 }
+
+void ffa_handle_run(struct cpu_user_regs *regs, uint32_t fid)
+{
+    struct arm_smccc_1_2_regs arg = { .a0 = fid, };
+    uint32_t dst = get_user_reg(regs, 1);
+    int32_t ret;
+
+    if ( !ffa_fw_supports_fid(fid) )
+    {
+        ret = FFA_RET_NOT_SUPPORTED;
+        goto out;
+    }
+
+    /*
+     * We do not support FFA_RUN to VMs.
+     * Destination endpoint ID is in bits [31:16], bits[15:0] contain the
+     * vCPU ID.
+     */
+    if ( !FFA_ID_IS_SECURE(dst >> 16) )
+    {
+        ret = FFA_RET_NOT_SUPPORTED;
+        goto out;
+    }
+
+    arg.a1 = dst;
+
+    ffa_finish_direct_req_run(regs, &arg);
+
+    return;
+
+out:
+    ffa_set_regs_error(regs, ret);
+}
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index d883114948b1..030e6724743c 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -474,6 +474,7 @@ static inline void ffa_raise_rx_buffer_full(struct domain *d)
 
 void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid);
 int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs);
+void ffa_handle_run(struct cpu_user_regs *regs, uint32_t fid);
 
 #ifdef CONFIG_FFA_VM_TO_VM
 static inline uint16_t get_ffa_vm_count(void)
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 10:37:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 10:37:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178646.1502464 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTCF-0008Bc-2H; Fri, 05 Dec 2025 10:37:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178646.1502464; Fri, 05 Dec 2025 10:37:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTCE-0008Au-SS; Fri, 05 Dec 2025 10:37:54 +0000
Received: by outflank-mailman (input) for mailman id 1178646;
 Fri, 05 Dec 2025 10:37:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d4nT=6L=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vRTCD-0005Ju-T7
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 10:37:53 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 734c913f-d1c6-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 11:37:51 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id EBF9F1063;
 Fri,  5 Dec 2025 02:37:43 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.45.211])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 463BF3F86F;
 Fri,  5 Dec 2025 02:37:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 734c913f-d1c6-11f0-980a-7dc792cee155
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v1 10/12] xen/arm: ffa: add v1.2 SEND2 header layout
Date: Fri,  5 Dec 2025 11:36:43 +0100
Message-ID: <cbf340d18fe0f2733d81455bb43e63775e29a055.1764930353.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764930353.git.bertrand.marquis@arm.com>
References: <cover.1764930353.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Teach the SEND2 path about the distinct FF-A v1.1 and v1.2 RX/TX header
layouts so we can propagate the 128-bit UUIDs introduced in v1.2.

VM-to-VM SEND2 calls now build the larger v1.2 header, zeroing the UUID
fields for v1.1 senders, and the dispatcher validates messages using
the v1.1 header layout to keep legacy guests working.

While there, make the code more robust by checking that the send is not
trying to send a message to himself.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v1:
- Mention self send check in commit message
- check header size depending on sender FF-A version and make sure 1.2
  has enough space for 1.2 header
- Simplify the code by setting uuid field of the header to Nil-UUID when
  testing the caller version and remove the need to pass the context to
  the send2_vm function
- Use ACCESS_ONCE when reading sender ffa version
---
 xen/arch/arm/tee/ffa_msg.c | 58 ++++++++++++++++++++++++++++++--------
 1 file changed, 47 insertions(+), 11 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index 5a4cb1bb8295..c3552a3ae36d 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -13,7 +13,7 @@
 #include "ffa_private.h"
 
 /* Encoding of partition message in RX/TX buffer */
-struct ffa_part_msg_rxtx {
+struct ffa_part_msg_rxtx_1_1 {
     uint32_t flags;
     uint32_t reserved;
     uint32_t msg_offset;
@@ -21,6 +21,16 @@ struct ffa_part_msg_rxtx {
     uint32_t msg_size;
 };
 
+struct ffa_part_msg_rxtx_1_2 {
+    uint32_t flags;
+    uint32_t reserved;
+    uint32_t msg_offset;
+    uint32_t send_recv_id;
+    uint32_t msg_size;
+    uint32_t reserved2;
+    uint64_t uuid[2];
+};
+
 static void ffa_finish_direct_req_run(struct cpu_user_regs *regs,
                                       struct arm_smccc_1_2_regs *req)
 {
@@ -105,11 +115,11 @@ out:
 }
 
 static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
-                                struct ffa_part_msg_rxtx *src_msg)
+                                struct ffa_part_msg_rxtx_1_2 *src_msg)
 {
     struct domain *dst_d;
     struct ffa_ctx *dst_ctx;
-    struct ffa_part_msg_rxtx *dst_msg;
+    struct ffa_part_msg_rxtx_1_2 *dst_msg;
     void *rx_buf;
     size_t rx_size;
     int err;
@@ -143,7 +153,7 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
         goto out_unlock;
 
     /* we need to have enough space in the destination buffer */
-    if ( (rx_size - sizeof(struct ffa_part_msg_rxtx)) < src_msg->msg_size )
+    if ( (rx_size - sizeof(struct ffa_part_msg_rxtx_1_2)) < src_msg->msg_size )
     {
         ret = FFA_RET_NO_MEMORY;
         ffa_rx_release(dst_ctx);
@@ -155,11 +165,14 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
     /* prepare destination header */
     dst_msg->flags = 0;
     dst_msg->reserved = 0;
-    dst_msg->msg_offset = sizeof(struct ffa_part_msg_rxtx);
+    dst_msg->msg_offset = sizeof(struct ffa_part_msg_rxtx_1_2);
     dst_msg->send_recv_id = src_msg->send_recv_id;
     dst_msg->msg_size = src_msg->msg_size;
+    dst_msg->reserved2 = 0;
+    dst_msg->uuid[0] = src_msg->uuid[0];
+    dst_msg->uuid[1] = src_msg->uuid[1];
 
-    memcpy(rx_buf + sizeof(struct ffa_part_msg_rxtx),
+    memcpy(rx_buf + sizeof(struct ffa_part_msg_rxtx_1_2),
            src_buf + src_msg->msg_offset, src_msg->msg_size);
 
     /* receiver rx buffer will be released by the receiver*/
@@ -178,11 +191,17 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
     struct ffa_ctx *src_ctx = src_d->arch.tee;
     const void *tx_buf;
     size_t tx_size;
-    struct ffa_part_msg_rxtx src_msg;
+    /*
+     * src_msg is interpreted as v1.2 header, but:
+     * - for v1.1 guests, uuid[] is ignored and may contain payload bytes
+     * - for v1.2 guests, uuid[] carries the FF-A v1.2 UUID fields
+     */
+    struct ffa_part_msg_rxtx_1_2 src_msg;
     uint16_t dst_id, src_id;
     int32_t ret;
 
-    BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx) >= FFA_PAGE_SIZE);
+    BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx_1_1) >= FFA_PAGE_SIZE);
+    BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx_1_2) >= FFA_PAGE_SIZE);
 
     ret = ffa_tx_acquire(src_ctx, &tx_buf, &tx_size);
     if ( ret != FFA_RET_OK )
@@ -194,15 +213,32 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
     src_id = src_msg.send_recv_id >> 16;
     dst_id = src_msg.send_recv_id & GENMASK(15,0);
 
-    if ( src_id != ffa_get_vm_id(src_d) )
+    if ( src_id != ffa_get_vm_id(src_d) ||
+         dst_id == ffa_get_vm_id(src_d) )
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out;
+    }
+
+    if ( ACCESS_ONCE(src_ctx->guest_vers) < FFA_VERSION_1_2 )
+    {
+        if (src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx_1_1))
+        {
+            ret = FFA_RET_INVALID_PARAMETERS;
+            goto out;
+        }
+        /* Set uuid to Nil UUID for v1.1 guests */
+        src_msg.uuid[0] = 0;
+        src_msg.uuid[1] = 0;
+    }
+    else if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx_1_2) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
         goto out;
     }
 
     /* check source message fits in buffer */
-    if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx) ||
-            src_msg.msg_size == 0 || src_msg.msg_offset > tx_size ||
+    if ( src_msg.msg_size == 0 || src_msg.msg_offset > tx_size ||
             src_msg.msg_size > (tx_size - src_msg.msg_offset) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 10:41:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 10:41:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178738.1502474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTFs-0003lc-Ec; Fri, 05 Dec 2025 10:41:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178738.1502474; Fri, 05 Dec 2025 10:41:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTFs-0003lV-Aa; Fri, 05 Dec 2025 10:41:40 +0000
Received: by outflank-mailman (input) for mailman id 1178738;
 Fri, 05 Dec 2025 10:41:38 +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
 <SRS0=d4nT=6L=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vRTCF-0005j7-1U
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 10:37:55 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 74d3ab7c-d1c6-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 11:37:54 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 8AEF6339;
 Fri,  5 Dec 2025 02:37:46 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.45.211])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D91F33F86F;
 Fri,  5 Dec 2025 02:37:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 74d3ab7c-d1c6-11f0-9d1b-b5c5bf9af7f9
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v1 12/12] xen/arm: ffa: advertise FF-A v1.2
Date: Fri,  5 Dec 2025 11:36:45 +0100
Message-ID: <8412f616340976de6aa5f7da585cdc3dfd919732.1764930353.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764930353.git.bertrand.marquis@arm.com>
References: <cover.1764930353.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Expose the RX/TX MAP capacity field only once a guest has
negotiated FF-A v1.2.

While there, drop the stale <asm/tee/ffa.h> include.

To comply with the wider v1.2 register ABI, zero registers x8–x17 when
responding to a v1.2 VM. The dispatcher also rejects SMCCC64 calls from
AArch32 guests.

Finally, bump Xen's FF-A version to 1.2.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v1:
- Remove advertising of YIELD/INTERRUPT/RUN which has now moved to patch
  adding FFA_RUN support and adapt commit message
- Use ACCESS_ONCE to read guest_vers
- Use is_64bit_domain instead of ctx->is_64bit
---
 xen/arch/arm/tee/ffa.c         | 19 +++++++++++++++++--
 xen/arch/arm/tee/ffa_private.h | 29 ++++++++++++++++++++---------
 2 files changed, 37 insertions(+), 11 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 2c6443a7f6a4..ed18e76080d0 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -65,7 +65,6 @@
 #include <asm/event.h>
 #include <asm/regs.h>
 #include <asm/smccc.h>
-#include <asm/tee/ffa.h>
 #include <asm/tee/tee.h>
 
 #include "ffa_private.h"
@@ -296,7 +295,16 @@ static void handle_features(struct cpu_user_regs *regs)
          * differs from FFA_PAGE_SIZE (SZ_4K).
          */
         BUILD_BUG_ON(PAGE_SIZE != FFA_PAGE_SIZE);
-        ffa_set_regs_success(regs, 0, 0);
+
+        /*
+         * From FFA v1.2, we can give the maximum number of pages we support
+         * for the RX/TX buffers.
+         */
+        if ( ACCESS_ONCE(ctx->guest_vers) < FFA_VERSION_1_2 )
+            ffa_set_regs_success(regs, 0, 0);
+        else
+            ffa_set_regs_success(regs, FFA_MAX_RXTX_PAGE_COUNT << 16, 0);
+
         break;
     case FFA_FEATURE_NOTIF_PEND_INTR:
         ffa_set_regs_success(regs, GUEST_FFA_NOTIF_PEND_INTR_ID, 0);
@@ -329,6 +337,13 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     if ( !ctx )
         return false;
 
+    if ( !is_64bit_domain(d) && smccc_is_conv_64(fid) )
+    {
+        /* 32bit guests should only use 32bit convention calls */
+        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+        return true;
+    }
+
     /* A version must be negotiated first */
     if ( !ACCESS_ONCE(ctx->guest_vers) )
     {
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 030e6724743c..1b5aebd6ef6b 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -53,7 +53,7 @@
  * that particular guest or SP.
  */
 #define FFA_MY_VERSION_MAJOR    1U
-#define FFA_MY_VERSION_MINOR    1U
+#define FFA_MY_VERSION_MINOR    2U
 #define FFA_MY_VERSION          MAKE_FFA_VERSION(FFA_MY_VERSION_MAJOR, \
                                                  FFA_MY_VERSION_MINOR)
 
@@ -518,14 +518,25 @@ static inline void ffa_set_regs(struct cpu_user_regs *regs, register_t v0,
                                 register_t v4, register_t v5, register_t v6,
                                 register_t v7)
 {
-        set_user_reg(regs, 0, v0);
-        set_user_reg(regs, 1, v1);
-        set_user_reg(regs, 2, v2);
-        set_user_reg(regs, 3, v3);
-        set_user_reg(regs, 4, v4);
-        set_user_reg(regs, 5, v5);
-        set_user_reg(regs, 6, v6);
-        set_user_reg(regs, 7, v7);
+    struct domain *d = current->domain;
+    struct ffa_ctx *ctx = d->arch.tee;
+    int i;
+
+    set_user_reg(regs, 0, v0);
+    set_user_reg(regs, 1, v1);
+    set_user_reg(regs, 2, v2);
+    set_user_reg(regs, 3, v3);
+    set_user_reg(regs, 4, v4);
+    set_user_reg(regs, 5, v5);
+    set_user_reg(regs, 6, v6);
+    set_user_reg(regs, 7, v7);
+
+    if ( ctx && ACCESS_ONCE(ctx->guest_vers) >= FFA_VERSION_1_2 &&
+         is_64bit_domain(d) )
+    {
+        for (i = 8; i <= 17; i++)
+            set_user_reg(regs, i, 0);
+    }
 }
 
 static inline void ffa_set_regs_error(struct cpu_user_regs *regs,
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 10:41:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 10:41:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178748.1502483 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTFt-0003zn-JR; Fri, 05 Dec 2025 10:41:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178748.1502483; Fri, 05 Dec 2025 10:41:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTFt-0003zg-Gt; Fri, 05 Dec 2025 10:41:41 +0000
Received: by outflank-mailman (input) for mailman id 1178748;
 Fri, 05 Dec 2025 10:41:40 +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
 <SRS0=d4nT=6L=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vRTCD-0005j7-Tn
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 10:37:53 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 7417b842-d1c6-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 11:37:53 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 438AD1575;
 Fri,  5 Dec 2025 02:37:45 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.45.211])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 902FC3F86F;
 Fri,  5 Dec 2025 02:37:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7417b842-d1c6-11f0-9d1b-b5c5bf9af7f9
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v1 11/12] xen/arm: ffa: add MSG_SEND_DIRECT_REQ2 support
Date: Fri,  5 Dec 2025 11:36:44 +0100
Message-ID: <55a3df6c73581e7e77a76230cd445ccb16608269.1764930353.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764930353.git.bertrand.marquis@arm.com>
References: <cover.1764930353.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Extend the direct-request path so FF-A v1.2 guests can issue
FFA_MSG_SEND_DIRECT_REQ2 and receive the matching RESP2.

The handler now marshals registers x8–x17, and
ffa_finish_direct_req_run() copies back the 17-register response used by
FFA_MSG_SEND_DIRECT_RESP2. The new opcode is exposed via FFA_FEATURES
and gated on guests that negotiated v1.2.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v1:
- use ACCESS_ONCE to read guest_vers
---
 xen/arch/arm/tee/ffa.c     | 20 +++++++++++++++++++
 xen/arch/arm/tee/ffa_msg.c | 39 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 0f07efe5a7b3..2c6443a7f6a4 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -237,6 +237,8 @@ out_continue:
 static void handle_features(struct cpu_user_regs *regs)
 {
     uint32_t a1 = get_user_reg(regs, 1);
+    struct domain *d = current->domain;
+    struct ffa_ctx *ctx = d->arch.tee;
     unsigned int n;
 
     for ( n = 2; n <= 7; n++ )
@@ -268,6 +270,16 @@ static void handle_features(struct cpu_user_regs *regs)
     case FFA_MSG_YIELD:
         ffa_set_regs_success(regs, 0, 0);
         break;
+    case FFA_MSG_SEND_DIRECT_REQ2:
+        if ( ACCESS_ONCE(ctx->guest_vers) >= FFA_VERSION_1_2 )
+        {
+            ffa_set_regs_success(regs, 0, 0);
+        }
+        else
+        {
+            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+        }
+        break;
     case FFA_MEM_SHARE_64:
     case FFA_MEM_SHARE_32:
         /*
@@ -353,6 +365,14 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     case FFA_MSG_SEND_DIRECT_REQ_64:
         ffa_handle_msg_send_direct_req(regs, fid);
         return true;
+    case FFA_MSG_SEND_DIRECT_REQ2:
+        if ( ACCESS_ONCE(ctx->guest_vers) >= FFA_VERSION_1_2 )
+        {
+            ffa_handle_msg_send_direct_req(regs, fid);
+            return true;
+        }
+        e = FFA_RET_NOT_SUPPORTED;
+        break;
     case FFA_RUN:
         ffa_handle_run(regs, fid);
         return true;
diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index c3552a3ae36d..4e26596461a9 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -49,6 +49,30 @@ static void ffa_finish_direct_req_run(struct cpu_user_regs *regs,
     case FFA_MSG_YIELD:
     case FFA_INTERRUPT:
         break;
+    case FFA_MSG_SEND_DIRECT_RESP2:
+        /*
+         * REQ2 / RESP2 use a 17-register payload (x1–x17). Copy all of them
+         * back to the guest context.
+         */
+        set_user_reg(regs, 0, resp.a0);
+        set_user_reg(regs, 1, resp.a1);
+        set_user_reg(regs, 2, resp.a2);
+        set_user_reg(regs, 3, resp.a3);
+        set_user_reg(regs, 4, resp.a4);
+        set_user_reg(regs, 5, resp.a5);
+        set_user_reg(regs, 6, resp.a6);
+        set_user_reg(regs, 7, resp.a7);
+        set_user_reg(regs, 8, resp.a8);
+        set_user_reg(regs, 9, resp.a9);
+        set_user_reg(regs, 10, resp.a10);
+        set_user_reg(regs, 11, resp.a11);
+        set_user_reg(regs, 12, resp.a12);
+        set_user_reg(regs, 13, resp.a13);
+        set_user_reg(regs, 14, resp.a14);
+        set_user_reg(regs, 15, resp.a15);
+        set_user_reg(regs, 16, resp.a16);
+        set_user_reg(regs, 17, resp.a17);
+        return;
     default:
         /* Bad fid, report back to the caller. */
         ffa_set_regs_error(regs, FFA_RET_ABORTED);
@@ -107,6 +131,21 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
     arg.a6 = get_user_reg(regs, 6) & mask;
     arg.a7 = get_user_reg(regs, 7) & mask;
 
+    if ( fid == FFA_MSG_SEND_DIRECT_REQ2 )
+    {
+        /* 17 registers are used for REQ2 */
+        arg.a8 = get_user_reg(regs, 8);
+        arg.a9 = get_user_reg(regs, 9);
+        arg.a10 = get_user_reg(regs, 10);
+        arg.a11 = get_user_reg(regs, 11);
+        arg.a12 = get_user_reg(regs, 12);
+        arg.a13 = get_user_reg(regs, 13);
+        arg.a14 = get_user_reg(regs, 14);
+        arg.a15 = get_user_reg(regs, 15);
+        arg.a16 = get_user_reg(regs, 16);
+        arg.a17 = get_user_reg(regs, 17);
+    }
+
     ffa_finish_direct_req_run(regs, &arg);
     return;
 
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 10:44:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 10:44:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178776.1502493 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTIz-0004rh-1O; Fri, 05 Dec 2025 10:44:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178776.1502493; Fri, 05 Dec 2025 10:44:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRTIy-0004ra-V0; Fri, 05 Dec 2025 10:44:52 +0000
Received: by outflank-mailman (input) for mailman id 1178776;
 Fri, 05 Dec 2025 10:44:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5iRA=6L=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vRTIx-0004rU-6P
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 10:44:51 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6be7ffe6-d1c7-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 11:44:48 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 8BAA9336E6;
 Fri,  5 Dec 2025 10:44:45 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 4D7523EA63;
 Fri,  5 Dec 2025 10:44:45 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id TnJeEZ23MmmVNwAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 05 Dec 2025 10:44:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6be7ffe6-d1c7-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764931486; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=Xwswb1XkY/Rqc3qfBD/nbIFZPYqLcXTHXfPjaUMTZ/A=;
	b=ud0OmcddstZE3s7du7a9mh5+uKxQBUx+JRb4Qa52uF9ex4fY4sTyRLkCaK39gIuXTzOhGW
	w1Ou/9YK+JvUOGgFcEt0OhJOwb8Wpb16QuJI13csaLiB/xusrKv3F3mxW23mPKqHRH8VA4
	WvZUB5j+PhndAR4K8Y+UlGrg1nMgcwY=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=ZWci4EFC
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764931485; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=Xwswb1XkY/Rqc3qfBD/nbIFZPYqLcXTHXfPjaUMTZ/A=;
	b=ZWci4EFCMnXkXcH7se46Myw+uz3oZcGVaMhYn6ivTPDhe4nB2c4xBuNXqOK+ORvZwQ9S7D
	ex/O7DBnpasp4nDJPJTFnv+xRWKJbf90HeX+fRUiXrvOygWVLX2eXNXCrP0GcUeNNi5nDO
	i8UyHOaCmw9z3WQAptvnOG6H2aOCwlQ=
Message-ID: <6b3544b2-dc62-4577-81f1-8069669d5b3a@suse.com>
Date: Fri, 5 Dec 2025 11:44:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 00/12] Changes for several CI improvements
To: Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
 <16830f7a-1bc9-472a-adfc-1d959b6fa58e@suse.com> <aTKrCwCNwtT9ysIz@mail-itl>
 <54cad03d-5530-4d6a-b3c3-956906daac1c@suse.com>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <54cad03d-5530-4d6a-b3c3-956906daac1c@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------GKHYNN3tRrOJEZeFDqxZ5LAV"
X-Spamd-Result: default: False [-6.41 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	SIGNED_PGP(-2.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MIME_BASE64_TEXT(0.10)[];
	MX_GOOD(-0.01)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	TO_DN_SOME(0.00)[];
	ARC_NA(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	FROM_HAS_DN(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	RCPT_COUNT_FIVE(0.00)[6];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	HAS_ATTACHMENT(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns,suse.com:dkim,suse.com:mid,gitlab.com:url]
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spam-Level: 
X-Rspamd-Queue-Id: 8BAA9336E6
X-Spam-Flag: NO
X-Spam-Score: -6.41

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------GKHYNN3tRrOJEZeFDqxZ5LAV
Content-Type: multipart/mixed; boundary="------------3ppZT0uFoK5HOtCOwBYMK2RE";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
Message-ID: <6b3544b2-dc62-4577-81f1-8069669d5b3a@suse.com>
Subject: Re: [PATCH v2 00/12] Changes for several CI improvements
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
 <16830f7a-1bc9-472a-adfc-1d959b6fa58e@suse.com> <aTKrCwCNwtT9ysIz@mail-itl>
 <54cad03d-5530-4d6a-b3c3-956906daac1c@suse.com>
In-Reply-To: <54cad03d-5530-4d6a-b3c3-956906daac1c@suse.com>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------3ppZT0uFoK5HOtCOwBYMK2RE
Content-Type: multipart/mixed; boundary="------------BXke29YBNnHh0RuEFJ0TWbkr"

--------------BXke29YBNnHh0RuEFJ0TWbkr
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMDUuMTIuMjUgMTA6NTksIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwNS4xMi4yMDI1
IDEwOjUxLCBNYXJlayBNYXJjenlrb3dza2ktR8OzcmVja2kgd3JvdGU6DQo+PiBPbiBGcmks
IERlYyAwNSwgMjAyNSBhdCAwODozNDoxMEFNICswMTAwLCBKYW4gQmV1bGljaCB3cm90ZToN
Cj4+PiBPbiAwNC4xMi4yMDI1IDE3OjM3LCBNYXJlayBNYXJjenlrb3dza2ktR8OzcmVja2kg
d3JvdGU6DQo+Pj4+IC0gQWxwaW5lIHVwZGF0ZQ0KPj4+PiAtIERlYmlhbiB0cml4aWUNCj4+
Pj4gLSBMaW51eCBzdHViZG9tDQo+Pj4+IC0gdGVzdCBhcmJpdHJhcnkgbGludXggYnJhbmNo
DQo+Pj4+DQo+Pj4+IFRlY2huaWNhbGx5LCB0aGUgbGFzdCBwYXRjaCBpc24ndCBzdHJpY3Rs
eSByZXF1aXJlZCwgYnV0IGl0IGVhc2VzIGRlYnVnZ2luZy4NCj4+Pj4NCj4+Pj4gR3JlZW4g
cGlwZWxpbmU6IGh0dHBzOi8vZ2l0bGFiLmNvbS94ZW4tcHJvamVjdC9wZW9wbGUvbWFybWFy
ZWsvdGVzdC1hcnRpZmFjdHMvLS9waXBlbGluZXMvMjE5NjYzMDYzNw0KPj4+Pg0KPj4+PiBN
YXJlayBNYXJjenlrb3dza2ktR8OzcmVja2kgKDEyKToNCj4+Pj4gICAgQWRkIEFscGluZSAz
LjIyIGNvbnRhaW5lcnMNCj4+Pj4gICAgU3dpdGNoIExpbnV4IGJ1aWxkcyB0byB1c2UgQWxw
aW5lIDMuMjIgY29udGFpbmVyDQo+Pj4+ICAgIEFkZCBkZWJpYW4gcm9vdGZzIGFydGlmYWN0
DQo+Pj4+ICAgIEFkZCBsaW51eC02LjEyLjYwLXg4Nl82NA0KPj4+PiAgICBFbmFibGUgQ09O
RklHX1VTQl9SVEw4MTUyIGluIGtlcm5lbCBmb3IgaHcxMiBydW5uZXINCj4+Pj4gICAgSW5j
bHVkZSBnaXQgaW4gdGhlIEFSTTY0IGJ1aWxkIGNvbnRhaW5lciB0b28NCj4+Pj4gICAgU3Vw
cG9ydCBidWlsZGluZyBhcmJpdHJhcnkgTGludXggYnJhbmNoL3RhZy9jb21taXQNCj4+Pj4g
ICAgU2F2ZSBMaW51eCBjb25maWcgdG8gYXJ0aWZhY3RzIHRvbw0KPj4+PiAgICBBZGQgbGlu
dXgtc3R1YmRvbSBkZXBlbmRlbmNpZXMNCj4+Pj4gICAgUHJlcGFyZSBncnViIGZvciBib290
aW5nIHg4Nl82NCBIVk0gZG9tVSBmcm9tIGEgZGlzaw0KPj4+PiAgICBQcmVwYXJlIGdydWIg
Zm9yIGJvb3RpbmcgeDg2XzY0IEhWTSBkb21VIGZyb20gYSBjZHJvbQ0KPj4+PiAgICBTZXR1
cCBzc2ggYWNjZXNzIHRvIHRlc3Qgc3lzdGVtcw0KPj4+DQo+Pj4gTGlrZSBmb3IgdGhlIG90
aGVyIHNlcmllcywgd2hlcmUgb25lIHBhdGNoIGlzIG1pc3NpbmcsIEknZCBsaWtlIHRvIG1l
bnRpb24NCj4+PiB0aGF0IGhlcmUgcGF0Y2hlcyAwMSBhbmQgMDMgZGlkbid0IG1ha2UgaXQu
DQo+Pg0KPj4gWWVzLi4uDQo+PiBJIGRvbid0IGtub3cgd2hhdCB0byBkbyBhYm91dCBpdC4u
LiB4ZW4tZGV2ZWwgbGlzdCByZWplY3QgZW1haWxzIHdpdGgNCj4+IGRvY2tlcmZpbGUgY2hh
bmdlcyBhcyAic3BhbSIuIFBlb3BsZSBDQ2VkIGRpcmVjdGx5IGdvdCBpdC4gU2hvdWxkIEkN
Cj4+IGluY2x1ZGUgbW9yZSBwZW9wbGUgaW4gZG9ja2VyZmlsZSBwYXRjaGVzLCBqdXN0IGlu
IGNhc2U/DQo+IA0KPiBQZXJzb25hbGx5IEknZCBzYXkgbm8sIGJ1dCBtYXliZSBvdGhlcnMg
ZGlmZmVyLiBJbW8gdGhpcyBuZWVkcyBzb2x2aW5nIHNvbWUNCj4gb3RoZXIgd2F5LCBhcyBs
ZWdpdGltYXRlIGNvbnRlbnQgcmVhbGx5IHNob3VsZG4ndCBiZSBibG9ja2VkIGZyb20gaGl0
dGluZyB0aGUNCj4gbGlzdC4NCg0KSSBhZ3JlZS4gV2h5IGlzIHRoZXJlIGEgc3BhbSBmaWx0
ZXIgYXQgYWxsPyB4ZW4tZGV2ZWwgaXMgbW9kZXJhdGVkIGZvcg0Kbm9uLXN1YnNjcmliZXJz
LCBzbyB0aGVyZSBzaG91bGRuJ3QgYmUgdGhhdCBtdWNoIHNwYW0gd2hpY2ggbWFrZXMgaXQg
dG8NCnRoZSBsaXN0LiBBbmQgaW4gY2FzZSB0aGVyZSBpcywgd2Ugc2hvdWxkIGFkZCB0aGUg
c2VuZGVyIHRvIHRoZSBtYWlsbWFuDQpmaWx0ZXIuDQoNCg0KSnVlcmdlbg0KDQo=
--------------BXke29YBNnHh0RuEFJ0TWbkr
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------BXke29YBNnHh0RuEFJ0TWbkr--

--------------3ppZT0uFoK5HOtCOwBYMK2RE--

--------------GKHYNN3tRrOJEZeFDqxZ5LAV
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmkyt5wFAwAAAAAACgkQsN6d1ii/Ey8p
agf+ORKCS1kkG2FhpQvLOzUG+dwpVX+8n372h7Nyk8d/X0lOiTHjsg0M//AluxdTeXBHJ1Em13Cx
RVjJiMGIP/L6lx0UdZW0kSVw2LDLjgRuxHNpE5B41CBtU05NnG7voZaRQYTEoocBgohW5DFUV5Mi
4ij6W3aHRzKwZ3laQaB0xeBvBVvmIozSRufxX6IAH1lwkn2LH/h0MvCc9cpk1BbtjcWb/m5+HQ2C
Ny4MRDtYufElw/FUT9dVhX2M9VAUU8bA2cidMajzvxvD0Bm6s7jAbgwvF2wC6HhPEybwwgy0uORX
uLYDWy7vUGF1txpDXPhwqTVFl0xGjERcUptqVXxBCw==
=G06x
-----END PGP SIGNATURE-----

--------------GKHYNN3tRrOJEZeFDqxZ5LAV--


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 11:51:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 11:51:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178804.1502514 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRULQ-0005FX-20; Fri, 05 Dec 2025 11:51:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178804.1502514; Fri, 05 Dec 2025 11:51:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRULP-0005FO-Vd; Fri, 05 Dec 2025 11:51:27 +0000
Received: by outflank-mailman (input) for mailman id 1178804;
 Fri, 05 Dec 2025 11:51:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=itKe=6L=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vRULO-00050w-CV
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 11:51:26 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b975dace-d1d0-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 12:51:24 +0100 (CET)
Received: from BL1PR13CA0273.namprd13.prod.outlook.com (2603:10b6:208:2bc::8)
 by DM6PR12MB4403.namprd12.prod.outlook.com (2603:10b6:5:2ab::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.12; Fri, 5 Dec
 2025 11:51:16 +0000
Received: from BL6PEPF0001AB58.namprd02.prod.outlook.com
 (2603:10b6:208:2bc:cafe::c8) by BL1PR13CA0273.outlook.office365.com
 (2603:10b6:208:2bc::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.9 via Frontend Transport; Fri, 5
 Dec 2025 11:51:16 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL6PEPF0001AB58.mail.protection.outlook.com (10.167.241.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Fri, 5 Dec 2025 11:51:16 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 5 Dec
 2025 05:51:14 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 5 Dec
 2025 03:51:14 -0800
Received: from XIR-MICHALO-L1.xilinx.com (10.180.168.240) by
 satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17
 via Frontend Transport; Fri, 5 Dec 2025 03:51:13 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b975dace-d1d0-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Z1t3Geh+L839kzqRFSUyrIqHedE4opebru/U9YvUzVqB/ioTAWGotq4R2cIMncet/hn9Db44BgBtCmM30AeC6+zHwx7Pi+9RlE5Lawp9vVjXN8wnC3YNjVOgOMcc6aV5RnjIWAKrzlD+ZtgLGV++FwjlHI2QpM3+MiRM1I69fhdROPPwFyTbAk4oB0DGJY0U5RwWTZL4yLAYvQT6gmuX67B5p9kV2ETrJSEQlviEeyKOJDdzLUqflqHXcYq+NjpBSxgZiOcytn9APUczvO5UQEJe89jY3tZOePDnUkm92sHwx/c3vnMfbyjKdtk4Lxx70zOoizVc7G6CdnxC2JCc+Q==
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=o778LlsegqXMw2XoBLskVR8L7ohCMBxfZZWEkxNmn0g=;
 b=YSN8mV/ZS4VwjjCSOhN99zka9hY8CiiVW/Fu2QtnM/qMvpPOP0y7kHB8tQwgdJBc1Qwtago2f/t7taJ7qfWhk6gB5N7Rx9P2e1O4loSQiDm0pt/qS2eMi+rmZd+1719afqkBRo0+ipRF7wVN51qSZvOzAwawc3vV3/QeH4qX1TktGC/mnPJ2agw+ucjjlKudao76AkAyccubI6dbao+oGf+m70RrHr1ct5Z32vFEyF60d39Y0t+DgtWdHc0qkrqlmbv9pAB9LqiilHq+f24IAsPoDjFVfecyMoWQNwPXHcqiEfT7OuZbVtq82var3k95AMFQe02VeLHd25UKP7Vo+g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=o778LlsegqXMw2XoBLskVR8L7ohCMBxfZZWEkxNmn0g=;
 b=kyyb+AC9dhNCC6B9PSIxcsBRoB3dTdJ5ZBDl0pKCDclFksFGZ1t+w3XGAmDaMDqn7T0S0Lilp9rhyp+Dv0l0WViVXbv/S/UHb2+rZi1uFqPDma6VCyoctORB0gdUjoDHn+x9RMm6oK+sfOzoZSEk4GpzzQ6t197LHNlzTChtKX4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Michal Orzel <michal.orzel@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Michal Orzel <michal.orzel@amd.com>, Juergen Gross <jgross@suse.com>
Subject: [PATCH 3/3] xen/hypfs: Enclose HYPFS_DIR_INIT var parameter in parentheses
Date: Fri, 5 Dec 2025 12:50:00 +0100
Message-ID: <20251205115000.49568-4-michal.orzel@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251205115000.49568-1-michal.orzel@amd.com>
References: <20251205115000.49568-1-michal.orzel@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB58:EE_|DM6PR12MB4403:EE_
X-MS-Office365-Filtering-Correlation-Id: 4ee1c61c-01c2-4725-eb58-08de33f498e5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?jxZvCm6X/0aalSzLW5p9thEIX2SpgPhyyiO5xBpLNMfnywhdRFbn0TCHj2v1?=
 =?us-ascii?Q?wdZhRRp+8etIJB4df8xqtcbTechJUv6IunxsBLI86j/wppNA+dYUnIghwHsa?=
 =?us-ascii?Q?dImnq00XZSaBsNc3WOWSU7N/BzZ0HuIG/WJ49+8luCCbyoSBuEyb/gK6SdPI?=
 =?us-ascii?Q?SRAcsiqlCzL3i5Qd0a6I2/psAd2CYassu2HJWY58HlIfUlrcBHuDC7+UCn63?=
 =?us-ascii?Q?Ii3prNwx4nNWgr5qakAP8MzFcen6W9jUPdk7VxE9+utpWMtJrbmtjj8dCjUS?=
 =?us-ascii?Q?L0x3WfwOnpXPoSTKCgx1v02N2F3fdSsfCZJwI6jZaHG3fnq66PVRn1UnI3hn?=
 =?us-ascii?Q?CF5iH/igzGrymBN3pcSZoI7iXkSHwQIV6I+ONFMFINdRm6DeWtdmrp8Xc+qU?=
 =?us-ascii?Q?Dg4raao+/wluI++73AWggMZPezM89L/0C7uqWDmWNjuiu4jEeR+eUtMIMib9?=
 =?us-ascii?Q?Dx9KbDNNCvCBKcQ0o0TGv9MTYBo7jIUmEeSFZqcqnCGED7BaLosF0CSkKsna?=
 =?us-ascii?Q?fhbbRW4rjoP6WPFqSjU0J0mvKREpXou5nP7Cl66sBDzxnIYY1Jf8Cpr6ekmf?=
 =?us-ascii?Q?bDA4ShY0TjVpoGd27b6OCgUg4ipyyHUaxmWWA2HMWO/H8i7vjUvhiqfWCBos?=
 =?us-ascii?Q?9vK3/rv6kDBeeY/PTbJlC7nqwYnB+gipuPu0KSXhK+WPc1WtgZKbGdj2lLvo?=
 =?us-ascii?Q?G8EU3iVNafzN39vHMqnpuF/pjWqNCAiAfp399npMEslr4DyShu6W62qvkSvT?=
 =?us-ascii?Q?4p5B5188g2jXQHqbsLbZYx6gNGckqRsalWTnm20yuphMXywaireTd22/Gcou?=
 =?us-ascii?Q?8P7KN8CpCHS7lLUcWs728APdzV9n8rr8psgKVXErPKutVwvglcHb8rSszouD?=
 =?us-ascii?Q?Rtav8wPcjUV7woHqffgS7Y0yhZ3nx0fGgOdEh+BgqMvF7NKSdfJhAKQeKW+4?=
 =?us-ascii?Q?qAinak1Mw+xlxy8RTsBWkKv0v0237EDBgnAoWrfBhk5B7LEJr44JJVLgIXZ4?=
 =?us-ascii?Q?zW+tmF04SdqnDeHZXODuIkYM7wP4PsOqalWk862qU8NmLPTzTWYPAxm+jivM?=
 =?us-ascii?Q?pUAenYIypLWs9jXU/3L0GqDqEe7pDazm/FxvpYKgsT1sHzU6zo9VgS48uPs8?=
 =?us-ascii?Q?DTuYrTsCcvpfcRie0ghNJXvClBri4Lrvk2KQPPq/mmGbOZvcj8bQPmZFVTq4?=
 =?us-ascii?Q?U8zEAuQN4snqmwcPoH8YgSGeDE5rWBScw3gauexXTcsbP3SlbeWNdP12Xn/C?=
 =?us-ascii?Q?tHHbzvRbLNGdATmMs1icXj/V+qI723EIqRrDlYQVRyzfG7I2l4KGkH5ocY3T?=
 =?us-ascii?Q?dznTBgZP+WK73Y2QKiO5Oe8Reuokeb+Do7MTDMyrGTlAcGQcsSc9L1yNu+Xo?=
 =?us-ascii?Q?/VyVa87lXgLUmjUOwhatDVN9GxRjK4tR++5xrqYuzDNk44zkPwTDrWPYrxp8?=
 =?us-ascii?Q?zYblbiW655JdlMzIqhebsHPMZzdp4m1sfhxh5wHz/BlzgOvZLTSxHzvacmoY?=
 =?us-ascii?Q?2+5mHKdCI8Y02KVNOWvIvaVWlMYoCiF63o5ngQYjYCbgcmEs0YNAq3MRKxvy?=
 =?us-ascii?Q?S9wChlKBVvkFrjlZDho=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 11:51:16.2984
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4ee1c61c-01c2-4725-eb58-08de33f498e5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB58.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4403

The var parameter is later on expanded and referenced by LIST_HEAD_INIT
and shall be enclosed in parentheses. This resolves MISRA C R20.7
violation.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
 xen/include/xen/hypfs.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/include/xen/hypfs.h b/xen/include/xen/hypfs.h
index d8fcac23b46b..fef667298b21 100644
--- a/xen/include/xen/hypfs.h
+++ b/xen/include/xen/hypfs.h
@@ -95,9 +95,9 @@ struct hypfs_dyndir_id {
         .e.name = (nam),                          \
         .e.size = 0,                              \
         .e.max_size = 0,                          \
-        .e.list = LIST_HEAD_INIT(var.e.list),     \
+        .e.list = LIST_HEAD_INIT((var).e.list),   \
         .e.funcs = (fn),                          \
-        .dirlist = LIST_HEAD_INIT(var.dirlist),   \
+        .dirlist = LIST_HEAD_INIT((var).dirlist), \
     }
 
 #define HYPFS_DIR_INIT(var, nam)                  \
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 11:51:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 11:51:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178803.1502504 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRULK-00051B-RH; Fri, 05 Dec 2025 11:51:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178803.1502504; Fri, 05 Dec 2025 11:51:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRULK-000514-Oh; Fri, 05 Dec 2025 11:51:22 +0000
Received: by outflank-mailman (input) for mailman id 1178803;
 Fri, 05 Dec 2025 11:51:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=itKe=6L=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vRULJ-00050w-NF
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 11:51:21 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b44ea6c3-d1d0-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 12:51:16 +0100 (CET)
Received: from SN7PR04CA0153.namprd04.prod.outlook.com (2603:10b6:806:125::8)
 by IA1PR12MB6044.namprd12.prod.outlook.com (2603:10b6:208:3d4::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Fri, 5 Dec
 2025 11:51:11 +0000
Received: from SA2PEPF000015CD.namprd03.prod.outlook.com
 (2603:10b6:806:125:cafe::2d) by SN7PR04CA0153.outlook.office365.com
 (2603:10b6:806:125::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.11 via Frontend Transport; Fri,
 5 Dec 2025 11:51:09 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SA2PEPF000015CD.mail.protection.outlook.com (10.167.241.203) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Fri, 5 Dec 2025 11:51:10 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Fri, 5 Dec
 2025 05:51:10 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 5 Dec
 2025 05:51:09 -0600
Received: from XIR-MICHALO-L1.xilinx.com (10.180.168.240) by
 satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17
 via Frontend Transport; Fri, 5 Dec 2025 03:51:07 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b44ea6c3-d1d0-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PzU5DeyjDu+9Zo/OvSuxnmuhBeJkt5z9qPjUAgGvGXUycxBdh0okGWkZo6cGts/nwMn/FlkXsDbg5GA6pVQfCo/5B3Oaahgz2enM7AlyJJFpIa3fM9NHptBkIzAToUYF6WKKRvxuMgUHfO05PDI3EQ14PoH3TPQMvsnXhWNhObndIj5t7rZ29do393rWJC1/7xpFdLt4LMvnEdpMEEbkvp/21xMyqZuvfLOlZLIolhKZJe6zgOWYBjiBwMpO2BV71HQlfYKSGnzWW7idpStMc3G95172Ypju+tTfScOW25l6ZgMXIPq3yzkXMTWC9Mzte4mwYUuESk5h/KdZ4u36IQ==
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=FK2bZMBQlhCWiZa9gKDZ4owkYdKRJrCn+oEKrBYzqsM=;
 b=ty9yWkXqqUf8Sg5sEhB4XoxBkhPE82ZFdiCXuRY3Jl34qGXwrTb48fAlhqJMZ3cvMV5fGK6+ByC0frdKJJLhvnwse+SHRFnYt7jbwnT8VpPy44ZoH/opmRYiOIvKETglV8yhKk4Qlvdf4Z2tqefoWV1MYuh9xBIcXYOAh43TMmHhD/dhc/q6sXPWJxwsSYcHnzg9R6mILZwypFhKfy5BmDFEB6HtvnS94KUIPIgjxHGSBYGPBoztGzRYwzB0z1AqNm0MF+Mmfn1YybLf9G22cRv7TZqTjXigPFPjSxLmW8N3gd6pnqfmVYFKpFoWnOvVRj6oOHIHV0WWQsFTKCU5fg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=FK2bZMBQlhCWiZa9gKDZ4owkYdKRJrCn+oEKrBYzqsM=;
 b=YVOwqrBT0sQYk5//EHfqwxqaWqO6cdhO76BLuJ3Vru/ZSmR9JnBK1ko5+YOArEIsqtjRsb4GsvrvMDKUHusbE4nFQPUM0SIS99tkEES+4cpHmFtfJczzsmDlmwAHq4fcXcBjE/8Xskb4n64d1EYbgS1y+4i/5wp4H8SizYiE42E=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Michal Orzel <michal.orzel@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Michal Orzel <michal.orzel@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: [PATCH 1/3] public/trace: Add U suffix to TRC_PV_HYPERCALL_V2_ARG_MASK
Date: Fri, 5 Dec 2025 12:49:58 +0100
Message-ID: <20251205115000.49568-2-michal.orzel@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251205115000.49568-1-michal.orzel@amd.com>
References: <20251205115000.49568-1-michal.orzel@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015CD:EE_|IA1PR12MB6044:EE_
X-MS-Office365-Filtering-Correlation-Id: cfa0c3a9-7115-4699-a6e0-08de33f4959a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?ffggycQr1NdJHUwQZm5E/R+j4lk5HmQjB6cjqt1XG43l8GUU5cdDNpqxiGXY?=
 =?us-ascii?Q?/hcBSNtUxu/2IS5rdbN3qoPLtlrhOxHD/031u/HmwWgN8QMsZxQ5ZcChi1w7?=
 =?us-ascii?Q?LlAOkLFTEggTLxPKlFqpA47L/V/YekqesPCVMWdeMgrB0HtR3pqdSPzWhCtR?=
 =?us-ascii?Q?T54w2se4FxigsIV2huNZXAucryGSKnmQQGQ6h3YomXHDxNurYt4QkxFPsnYF?=
 =?us-ascii?Q?SXAlAw6DeCtsCQGYP/zJKvW8WaItHQsJr3O8cvR/mXw6axgOAeA7leD3/q2h?=
 =?us-ascii?Q?ziKamGUhw/Pihe78JB3JCMakiIMNIYNSp3xZQ0vtXEAdriayHpEmNiW0bVbs?=
 =?us-ascii?Q?gVizvYlfw9XCwof954pA8uicVljSQnfkUnwJazuPqGDz/3QQ66pfZyIw3pMx?=
 =?us-ascii?Q?cbGoGxsR/xIh/RSwVNI0CeHNuLQ/Rxo9WMuEbxe2SkaPV8z0zJvUDgS9v3Y5?=
 =?us-ascii?Q?y3W1TNxt7hL0XcCy+GzTZu0Hoxh2Wo6+S1/FOo2WSlZq8cRMCTwqJ04Ea0+d?=
 =?us-ascii?Q?eeDQUmBiBhzDusjP2aWXZwNKD+vqRg/LGjDw66Tl47E/zV4kx5F0QBvmhfRR?=
 =?us-ascii?Q?unppJJljOm1UuyZS067GaJlQ7/l+7y/MPaIR8rBP5WtpMmF0jQn7ClqpkfFa?=
 =?us-ascii?Q?lTmkmGSqebynXMPpyKix45Umfoh6YPzm7ohIbwtReB86KkYkzZvJF7ulpokQ?=
 =?us-ascii?Q?a+FMIrkuhoFZo5RXugFEFhkF7GTu5PmxCZHOStvexQee8Tn2sfk1IvkSR/14?=
 =?us-ascii?Q?OVVcRHgzaGMY7UBCyHRIim21n0fr9gJk6YpFzB21zsLFxtvNm1Yu7sBDTwYC?=
 =?us-ascii?Q?mP+MnD6MXMYqOnEMIvEQZdbJ5G36sIoqeaC1qkRvwvXXY2Q1dkcYWFHyER1H?=
 =?us-ascii?Q?kZglLZI/QwpUM57N8cyD8hsftOrW5bmuJLh47bIP7/mHmDulB7aVoJV90ajX?=
 =?us-ascii?Q?51ttEeZPe9GGtvfNwVxJGs83ecXVdFRvUjF0sgrJr5dvtMPwe2tVlqYoJ4uN?=
 =?us-ascii?Q?bj2gdStBBQ6Xfou2NghfP3zSXBh5uWNvAI48IZdx97E2MOVFtWBNUM5mE5fU?=
 =?us-ascii?Q?ABTW1bLzPMy+jZ/D8rjRkq7UX2vKfbfHWAOnyMJeuzsDz+bU269bRnwEmy/z?=
 =?us-ascii?Q?xjeUjsnh/7QtCw8wOFuyIsUuGrAxTWf8LT7ybjmKeJCm0ZnzwRSAG+c5KN85?=
 =?us-ascii?Q?16eOiKiK/CpMOYghFzeT/VLW08JO74SI2nUPzX8qa4738isAr/4AvXx0U9kW?=
 =?us-ascii?Q?7yAADcRecU4YMX7U+A//Ajii7qBo7nXYvvMOETNnAt3WH97UVQtABrhypUg9?=
 =?us-ascii?Q?3Ncc91thUpgxIfShj2aqBSHdmT1qxWUTMcD2XL0n89Ux2AvBboRhXR0tcHEM?=
 =?us-ascii?Q?uExRXN24QmxkFihGpbofWrrnx+ZAaXIgqg4ugJsNQUvd2TdWzB2b77PbxuVa?=
 =?us-ascii?Q?u5JM7DXJQMbQQ2e4VdfYAnwoPdoreysgo7AZHLjgvU/fHqzmlQAneKOOUVZh?=
 =?us-ascii?Q?Omdgtzr17QHd7KnaBSEYAMoqahaj/4PVHOuhM8DTSBFoEm+2+F5tvHA16Pf4?=
 =?us-ascii?Q?J4KofX7TS0t7huDRlUU=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 11:51:10.7551
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cfa0c3a9-7115-4699-a6e0-08de33f4959a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015CD.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6044

TRC_PV_HYPERCALL_V2_ARG_MASK represents unsigned type, so according to
MISRA C R7.2. U suffix should be applied. Fix the violation.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
 xen/include/public/trace.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/include/public/trace.h b/xen/include/public/trace.h
index 141efa0ea7b9..a7d7fb8c507f 100644
--- a/xen/include/public/trace.h
+++ b/xen/include/public/trace.h
@@ -157,7 +157,7 @@
  */
 #define TRC_PV_HYPERCALL_V2_ARG_32(i) (0x1 << (20 + 2*(i)))
 #define TRC_PV_HYPERCALL_V2_ARG_64(i) (0x2 << (20 + 2*(i)))
-#define TRC_PV_HYPERCALL_V2_ARG_MASK  (0xfff00000)
+#define TRC_PV_HYPERCALL_V2_ARG_MASK  (0xfff00000U)
 
 #define TRC_SHADOW_NOT_SHADOW                 (TRC_SHADOW +  1)
 #define TRC_SHADOW_FAST_PROPAGATE             (TRC_SHADOW +  2)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 11:51:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 11:51:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178805.1502524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRULR-0005TV-8b; Fri, 05 Dec 2025 11:51:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178805.1502524; Fri, 05 Dec 2025 11:51:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRULR-0005TO-5X; Fri, 05 Dec 2025 11:51:29 +0000
Received: by outflank-mailman (input) for mailman id 1178805;
 Fri, 05 Dec 2025 11:51:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=itKe=6L=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vRULP-00050w-Ca
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 11:51:27 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b2cf3960-d1d0-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 12:51:14 +0100 (CET)
Received: from BLAPR05CA0019.namprd05.prod.outlook.com (2603:10b6:208:36e::24)
 by PH7PR12MB5782.namprd12.prod.outlook.com (2603:10b6:510:1d1::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.11; Fri, 5 Dec
 2025 11:51:09 +0000
Received: from BL6PEPF0001AB52.namprd02.prod.outlook.com
 (2603:10b6:208:36e:cafe::c0) by BLAPR05CA0019.outlook.office365.com
 (2603:10b6:208:36e::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.4 via Frontend Transport; Fri, 5
 Dec 2025 11:51:04 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL6PEPF0001AB52.mail.protection.outlook.com (10.167.241.4) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Fri, 5 Dec 2025 11:51:07 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 5 Dec
 2025 05:51:06 -0600
Received: from XIR-MICHALO-L1.xilinx.com (10.180.168.240) by
 satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17
 via Frontend Transport; Fri, 5 Dec 2025 03:51:04 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b2cf3960-d1d0-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PovNNL7ENOxNMhLshTQp1mBZ49yD3LTR1PV4Wfs64ddfwuYneUwOFX2HQd9uCUzAw/83vle8eGiYdC6tL9IE3geKKDJe9Unyg4AGOYVh7kBPAOYwx26miYmMdcvGzuBawg0aBNDSuZWVpCKOfO1+qtbvC2AoxURHailhoVKFgitUXUIo6pXBSyA/5PWGiOu1QRws7zEhSl12vYhXkclQhPICkURNURRLlUAh5nBCVTDXWJbmWPqkQGFbi1TGWt27Y6kIV2xguH968NMr8FMzKI3/HQb7BQwum4qk24GcNG5PZwx3ayai1ayJkTuQ2AO0dC87Qtzc3ursislm5y3yMg==
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=SrWcFpcOodMhnL9R9IbJ7Knxkk4oOZA6UEWGOpHo8O4=;
 b=jzyoOmtDs78fAsPc2ikF26q0Vmk0UPMO1UMF6tVJ3NTL8nNoMMsmZA2AoetvWhaPv3k4dG+DyGHB9lOkKdp2vuijGL3OS7sHAmP5QgE1i5o7hYcPbhvRH+mLrTdWM9yIlFiLnsBlLg0sM8g4OwdWLsX7uDxqNL8lEO7domOn+6v6AmG4yicUYzFHNGqbyHgr9z44Sy6Sjl6cT+UQ1yUPc2m9HtjfPP+BxzFVBlbQz0tY2o841ZXEjSQVtcVlrBuJoXU4B5PAo/9B1+y1a5JOKPwJBb2AK3GHxfDFufH2HhTEegFOCfh9wniGb8iusm5PAB6e896o5SsQlo8Po5fFJQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SrWcFpcOodMhnL9R9IbJ7Knxkk4oOZA6UEWGOpHo8O4=;
 b=a/nz8FTzXSdJa6EDjngkKnPcKShJJ9AqLigkIGnNYMq1o++xx9L4uXsHEtSHUJgNJLbzvba++jYEB1J4CRoi+2TTGjBrU6Zeb1NXYu8uojwnDUkjHJEIcRy8t4fj1ci+mW8KBeRrUKUMA/sy6B75/NDmLvirhsSTQHG71gy+VVM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Michal Orzel <michal.orzel@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Michal Orzel <michal.orzel@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Juergen Gross <jgross@suse.com>
Subject: [PATCH 0/3] Fix MISRA regressions for new ARM64 configurations
Date: Fri, 5 Dec 2025 12:49:57 +0100
Message-ID: <20251205115000.49568-1-michal.orzel@amd.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB52:EE_|PH7PR12MB5782:EE_
X-MS-Office365-Filtering-Correlation-Id: 6075b5d8-8d00-46e8-7acb-08de33f49396
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?RvSMrzx/Kvq4Kt0ybD2pD3r/o0kwQON+Dn5Tc6ETcWtc2BrEIiWEuVDa5EHU?=
 =?us-ascii?Q?vMsb9pizQRBlpqa7JxfF/1vMg6EgROXZmHC9SGf/Co/NVnG1VELDGoJtM61A?=
 =?us-ascii?Q?v/Fh6FQrsoqNqjHLldLCURmIJW6aRJmBBpGouzfk+5CfRchpVBIXk4WwhKZH?=
 =?us-ascii?Q?qajcrqtKVXixt5YrYyBJq+N9NNaEaKiv0Vo/51euyRt6y1gkbsrrt1DgBxKq?=
 =?us-ascii?Q?jK1kFtEepSzYbMTmjCeQTk0PXVbMEQTZ1RpY9TgxjPLlzbYN6pG+ApC92TvJ?=
 =?us-ascii?Q?v2qwNr6Zprs/fPSLCuznxbb88hNjy8q/5XgN36R9RnHGquveiEJ+2kOz7ySG?=
 =?us-ascii?Q?tDa2jXO00iYkcBppBLxcl9shp1PzTpJxhy+lAam633MdKQ3vuynFsPTnlKVn?=
 =?us-ascii?Q?LVJTP+/XE5nhtsGpw+3mius/qi1Zj9d0uRHMGdOmYoPi0orsYYGhhQwEzx8I?=
 =?us-ascii?Q?vnYc0VOFWIkGZxyi8tPULRjmT/yN0Q2JiJV5RSRb9lyhgqhlnHRZf3A8KhZW?=
 =?us-ascii?Q?LerIvdxUaX76oNkmddDvk2Sz6tiK685CUu6ThKjPzc7yop1dU92qqyaR0iS4?=
 =?us-ascii?Q?meyj8MvszaAlBLp/gnLygMDtIFDoT/cTmTtb4KbpsFJIVzpYuTmZ7v9K1wcl?=
 =?us-ascii?Q?IszW1BJi0lY0CAng8lVep5Bgtiws9XWiCVtWoztvfKODYsC5IZEj0drNVXfH?=
 =?us-ascii?Q?/LiFX6SqA8xW/QIBKrvBtNOt7oRGr1MtgYxgK1VlJfbeZ6VnVMFJ1QTHaeJZ?=
 =?us-ascii?Q?H2wSzRUaEmvGGVTnt/ZR5KzkTomE0rNm307RpbfQEZ4WIhGIsGxdA41iJYs5?=
 =?us-ascii?Q?uZ7BpG6gBsrICgskKAJWvMQzqYrdyeAqw6l3IBeKoeaMA5F5fLjG7E28UPVq?=
 =?us-ascii?Q?tviLwG6n4laIC0K2hFV1XSf9/bmOWw1NNQ4tprgaffx/kPppkDK6kLD7sjCV?=
 =?us-ascii?Q?TGlgcGqY7AfgYi7VO+QAZl3m6zAmxEyjcFiZYl88sOKFZumkZQ0wDPXYQ5s3?=
 =?us-ascii?Q?DBwWoIT/1BGQO8sR4E56FJMtVWVVdFSsTj7ccvC9aLFOsrjJLrgMDfo1Ktwj?=
 =?us-ascii?Q?DXB7ZkRuZntCFj1uWrXKRW0i8r0Oij8Y1V69Rtt/TaUercFnpDVs2YCsrrla?=
 =?us-ascii?Q?wR4CdpyIB+c1GAgNSUzJRcZml8ez2rNp73er2+iJcGHYogxeb2RzhCfDOPCo?=
 =?us-ascii?Q?kZuXaGhmdIAP0j1t0UkvrqICRc2sOf7YqvwmAxenaPc/HoexRpfMYeRYWdiS?=
 =?us-ascii?Q?y0W1ooS7aYWdxlSOyC/YrC6EIH/XeGFvjx/YUhUw1mfYRyI1CrdOLa1ryfX9?=
 =?us-ascii?Q?4RzsSKdMWlkD8im04fI3IVCovA+Tu8aHcxBBLiUYElDNp83/t+xG4LZ6hoOV?=
 =?us-ascii?Q?QBCq0F+yC/B0fDGdbWokJgKDUGM6uiivq4/qZn6XpGAPWxSE7WUa1jv6EO1F?=
 =?us-ascii?Q?bDotNbb4UZki95c8avfE1TZC/XZCXzij/EnV+rUchBCnDfbXlr4AcLHDnWxS?=
 =?us-ascii?Q?vEn+8PMFC6ChrLjLOH6BHaS2kVRqGmDuN4PROUw4k5mAzMAQLckTVeUj10rx?=
 =?us-ascii?Q?/u+OqhwnkpUcRMDBStA=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 11:51:07.3974
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6075b5d8-8d00-46e8-7acb-08de33f49396
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB52.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5782

After addition of new eclair scans for other configurations like defconfig,
some regressions for clean rules were reported. This series focuses on report
generated for ARM64 and gets rid of all the regressions.

Diff:
eclair-ARM64{-testing}: was 22 regressions, now 0
eclair-x86_64{-testing}: was 359 regressions, now 337

https://gitlab.com/xen-project/people/morzel/xen/-/pipelines/2197932219

Michal Orzel (3):
  public/trace: Add U suffix to TRC_PV_HYPERCALL_V2_ARG_MASK
  common/kernel: Rename hypfs "params" variable
  xen/hypfs: Enclose HYPFS_DIR_INIT var parameter in parentheses

 xen/common/kernel.c        | 6 +++---
 xen/include/public/trace.h | 2 +-
 xen/include/xen/hypfs.h    | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 11:52:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 11:52:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178819.1502533 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRUMB-0006Ln-GD; Fri, 05 Dec 2025 11:52:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178819.1502533; Fri, 05 Dec 2025 11:52:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRUMB-0006Lg-DO; Fri, 05 Dec 2025 11:52:15 +0000
Received: by outflank-mailman (input) for mailman id 1178819;
 Fri, 05 Dec 2025 11:52:14 +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
 <SRS0=itKe=6L=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vRUMA-0006LL-4Z
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 11:52:14 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b5f60e5d-d1d0-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 12:51:18 +0100 (CET)
Received: from BLAPR03CA0104.namprd03.prod.outlook.com (2603:10b6:208:32a::19)
 by DM6PR12MB4483.namprd12.prod.outlook.com (2603:10b6:5:2a2::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.12; Fri, 5 Dec
 2025 11:51:13 +0000
Received: from BL6PEPF0001AB56.namprd02.prod.outlook.com
 (2603:10b6:208:32a:cafe::fd) by BLAPR03CA0104.outlook.office365.com
 (2603:10b6:208:32a::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.9 via Frontend Transport; Fri, 5
 Dec 2025 11:51:05 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL6PEPF0001AB56.mail.protection.outlook.com (10.167.241.8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.7 via Frontend Transport; Fri, 5 Dec 2025 11:51:13 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Fri, 5 Dec
 2025 05:51:12 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 5 Dec
 2025 05:51:12 -0600
Received: from XIR-MICHALO-L1.xilinx.com (10.180.168.240) by
 satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17
 via Frontend Transport; Fri, 5 Dec 2025 03:51:10 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b5f60e5d-d1d0-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ed+qIam6lljdNBRmvG5eerl9zW4e/0DMrSKzgG/JS/oQp+fUZ8kaK9y58gSu2414cf8JqjMqt6kuVqXZqCYL7k23Nw4kSf7IaOOdjPpZGkAOCkqOl9X2ySdG1axNXunkifGO6QTsxbu9wZd9KB3xG6+RQNmxzYKiBybJXBAkLGjURhq/aCZpbXhCN+gPM3096z3hQ/Ojsux1UkWC8bEwOBbLhgJ+rVsj3KJ6vLFkPzHCFKygfLnT6+cQgAf6cKBSMwlVS+B9+OSwyQaA11V1oxtHLKB0qX3OdFWHID66fVC+XggfUPw7fzszVnH6D491GWv1fEPAjfOPZxUbJXCixA==
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=QfmrvD0GvxlxUpk2W8eXR5CB2EZhdEir/U1Wc2sOxq8=;
 b=hIY46zXAKjKmjFIelqOG68SB4Wg/lWY7+KAkjfy7YHOz+LwMbfxrykWVajytzr1CmDff7jPUDoyhFii2CmZWybJn19ZrWUWQ+Mjv26a7uaqK3L8oPlAD/pC97nxaDwrn+ec9rLikLwnAmGDh6KxksCIyq/rELemXQEYvFpvvw/M2ORabAI0R1nv7Vzcz0SPZm+zcuceb56vop20EMDL2Uco8qhJfGhJfZJP5d9dgfFzf0YO2BvtkdQ5rhpkKZXpkbP8AGXQrgE2HqRgT2JQiH/zI7ttwhGXh1NW28ie0rfpguh9YduwXYrj3S7EkR2JkaFE73XEMNA6nDkhdPqDC6Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QfmrvD0GvxlxUpk2W8eXR5CB2EZhdEir/U1Wc2sOxq8=;
 b=AHYcmXoc4Ygc44odBvlHLclXKdTGea6WhJAPgxV09X3miZWk6foEAwIZl9RjJN6wdHykNf0TGRNbk4tjEaS4MQ5nvBDsdE4zZdcqgzaQ6Ou4zVFZBKXtwO/M/W9nmsopMx77l7QoDitZZWCBJjfss3C9J3U3LjsvDeNa+qOWM/o=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Michal Orzel <michal.orzel@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Michal Orzel <michal.orzel@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: [PATCH 2/3] common/kernel: Rename hypfs "params" variable
Date: Fri, 5 Dec 2025 12:49:59 +0100
Message-ID: <20251205115000.49568-3-michal.orzel@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251205115000.49568-1-michal.orzel@amd.com>
References: <20251205115000.49568-1-michal.orzel@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB56:EE_|DM6PR12MB4483:EE_
X-MS-Office365-Filtering-Correlation-Id: 58a62e3a-a8d2-4db0-0e50-08de33f496f3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?DOi7ti8oM7GQ2bMzLulxhpwHGGsSHgjhR4e89yTAtmCc/5DOTxRTx4/u0F3H?=
 =?us-ascii?Q?sR9sKePeEkmTdsZaUEwIsg3Gw51LJ6oVvdgSQbHzlRN2DP7C3d1wMHbbEwzi?=
 =?us-ascii?Q?W2Dk/J3qVTRsUmRCAm2hpcWMgPscf8Bfm5j3KmUXty1dyo49vPv6fHZ/T9ba?=
 =?us-ascii?Q?E99ApbBFILdJsK3rS1hhMQuLo3UIxVzQFZLGN1lxSTQKg9HW+K8PFJC48t8A?=
 =?us-ascii?Q?H0LPJvNOnDClCfZLowh25kSheizEBh0JIHBWm7m0Ewu32mKD2R3c8hig+FJN?=
 =?us-ascii?Q?+vam91AYNM1gCkALdejqo2L7gtTWJajA+AEN+3e9yGfIzFtYZJdt2YfpP4XH?=
 =?us-ascii?Q?2H09Sv2ISj3QgsEPPwUY/j6gvaKdvwmnw6Xi9tFKwsNdtvk903wbtyZOxwWf?=
 =?us-ascii?Q?Oxfml7vG1QYVJSsbep3LJ4knyg13hDp6V5g4O0F2LaziqS1ELZ3ZY0/sZ/CD?=
 =?us-ascii?Q?qeV4JjlEDhnxsIUUaYbUCHTEJZNL9Uone5bSHKI4XEaTBV7C0chBKvCpitjN?=
 =?us-ascii?Q?XUDf1+7Mt8fxrKGY7lMTjU2bi9lfYRLG4MEMh+H3fvOwt7r+nlY9+D43OEeY?=
 =?us-ascii?Q?JA0dG0Dnyj7aNE0zojqt/1hUmT/QpR8mnlphFWlkXOPZYXvVLWbFNpSsLexS?=
 =?us-ascii?Q?W3XIPCXHanvbF1cSOLCin2pdIBOsfErUDD9MFAO5s3EAXLLxIqKiLmDmOcAg?=
 =?us-ascii?Q?FPv0l8Uja33pYQTJxC+8NhItdYbMVaMd13u3QDlrZ4woKuOQpOk/u1H3CHgz?=
 =?us-ascii?Q?VAJNqPSzfP/unujwIw6MXI/H0Mmi39kh+nVxb0WyN7N8JMihrefOxQWcDrF9?=
 =?us-ascii?Q?DApfM+YnEhSxJmiW22aAuh3hCTBjooFkxW4Ua4A85QXDP1MQTJoh+SD/EjXR?=
 =?us-ascii?Q?u1dOFgxQj8c/gSocr72T0vG16Q5NIHFtHGY1crZ0euXgjVIv7eW9EIatWnlv?=
 =?us-ascii?Q?CnMssQkySQbWnJWzA8cJLuX7FC+V0QmW8h0GwCPL+HhuTpkBGzluLTpCNWxb?=
 =?us-ascii?Q?JoFrleaEWC4jElj6ttUcoygD6exHCukgH4xuIWzB9aHsaSYP5p7otcxRFMrW?=
 =?us-ascii?Q?ZjwGWHcpb+ZcljXg0OqupmnY3reLjnv2Jaf9dSllZGjO7bfemq0r3FlrFBSu?=
 =?us-ascii?Q?PlK6WVDVhuxxqgnAeaNWbq1X0nSZp1BO+AyPJRowh7xBfuk1quPicjjwbOx3?=
 =?us-ascii?Q?8K7XpvYarzuV2+R17l4qkQ746bJEJU04cjXeSyGmmJbVrScneqMeaTQIvw9s?=
 =?us-ascii?Q?TBzAMOtfYcCV5qErbplaYUspyHbm4ksfAGRskmSg/b1+cHIUnuG4OAcDIQ9x?=
 =?us-ascii?Q?IVpeLSudZ0mYc3t7s/daGNhzuXojXkxMv2tB/Y/OWS8iAif3LgfoTYiHwP5T?=
 =?us-ascii?Q?X3TduluokrOCDI8Gt8N/Vu0fW5dyQJ6rx/cK4f3NIHpzuRWRYCB9gb4ah0/P?=
 =?us-ascii?Q?qHB2BjEoJZshJkAqBRetQZKxvre/zBZUHj9akOiYypuxDfKQr4hYhAMhKA3D?=
 =?us-ascii?Q?SftxTF0ZvENonjbPgtP0qd1vDS3wq/EAX/Sg7ouT88FxHORLGQwg9i+m6SE1?=
 =?us-ascii?Q?dmkAkd6ymT4f5jnMd34=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 11:51:13.0299
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 58a62e3a-a8d2-4db0-0e50-08de33f496f3
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB56.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4483

Inside do_xen_version, there are two other places using local variables
named "params". Rename hypfs dir "params" to "params_dir". This resolves
MISRA C R5.3 violation.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
 xen/common/kernel.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/common/kernel.c b/xen/common/kernel.c
index e6979352e100..fb45f8139995 100644
--- a/xen/common/kernel.c
+++ b/xen/common/kernel.c
@@ -483,13 +483,13 @@ static int __init cf_check buildinfo_init(void)
 }
 __initcall(buildinfo_init);
 
-static HYPFS_DIR_INIT(params, "params");
+static HYPFS_DIR_INIT(params_dir, "params");
 
 static int __init cf_check param_init(void)
 {
     struct param_hypfs *param;
 
-    hypfs_add_dir(&hypfs_root, &params, true);
+    hypfs_add_dir(&hypfs_root, &params_dir, true);
 
     for ( param = __paramhypfs_start; param < __paramhypfs_end; param++ )
     {
@@ -497,7 +497,7 @@ static int __init cf_check param_init(void)
             param->init_leaf(param);
         else if ( param->hypfs.e.type == XEN_HYPFS_TYPE_STRING )
             param->hypfs.e.size = strlen(param->hypfs.u.content) + 1;
-        hypfs_add_leaf(&params, &param->hypfs, true);
+        hypfs_add_leaf(&params_dir, &param->hypfs, true);
     }
 
     return 0;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 12:01:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 12:01:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178856.1502544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRUV7-0008Ix-KO; Fri, 05 Dec 2025 12:01:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178856.1502544; Fri, 05 Dec 2025 12:01:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRUV7-0008Iq-Gk; Fri, 05 Dec 2025 12:01:29 +0000
Received: by outflank-mailman (input) for mailman id 1178856;
 Fri, 05 Dec 2025 12:01:28 +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
 <SRS0=K96r=6L=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vRUV6-0008Hq-HL
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 12:01:28 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 20467779-d1d2-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 13:01:27 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS7PR03MB8339.namprd03.prod.outlook.com (2603:10b6:8:265::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.12; Fri, 5 Dec
 2025 12:01:24 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.009; Fri, 5 Dec 2025
 12:01:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 20467779-d1d2-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=b+YZYRKga3acZjkDDtNm20tivEzL97PvKbTpPnWvRZB3SB2oVa50XN1OqsZJFoQFJDd0odzXJkVEQSp6biU/uk4fc0ja/ZqatxvDbOK21xkjQnljTVLn3Vtub+u7ve16JFd4882Vhlgs5wv9JQTeUomrvOlF83vVMVij4feqMmTTcs4379w2+U4RkCnDdEDDp8PLMd4DzVeB+EZKSjvbwl/NScjhNEQ107B9l33Mv/nUtLwc0PNF8FQoAFRZDR4dnfhqijF+n+NqPozkfuEG5ak/2N++wZR4JwzpKmShjXIMcw2HNW8RKgFnaX4ga4wjzb/tsiNGBcaKpHKdOtiP9w==
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=QgFsAg5CEWOchthZ5JlpnG2LZCvuPq/+aHO1OFxkClE=;
 b=lHqZXzqgG+C5XlKlRL2kgYo54l6HVE3HMW+Z+4TrJsitzmap3Vjze+7FwYBVkNPeLzWjw8aKPAbwdwVObQ5GBR5XsY2n5k0tBmbQI340n81hF0l8eczvqtP85IsMANDVfl0i4AlXZc9TIGYKzCnMFZKO4jZWUpAZVhTxg/IInIdAG0HXcAFg7bKfq0f3PejWKVAu0YDtkhHjKo1Jzq20Ma/xvB0c36/SkmXIIQeNDdbUAb6XnptbJw8u9X2fkY/+GLJc6DFFmFDDgD57XjaklOTbuUjPAz+DkbauDfRbhivndOfJwXrdEzudKKBUj9z+anYA0TmEQikc1EywEiVc6w==
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=QgFsAg5CEWOchthZ5JlpnG2LZCvuPq/+aHO1OFxkClE=;
 b=UwBmn4b5aQPVr5nNslrd0dm0Dp5RbTKnMjHXeaYPrIRBgbw02m2E1fL+vm401qnoyDUSrOrI0vw7UQucD+QD1y4WgG8MlYFoFCQAnC4/kL4p4vD6oegabSKhi+GtLsE12/nMHSPJHTfYeZRYOGANTTQxqcx/qCMk9aVXu1Cpzzo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e2ce221b-f852-4f9a-8a82-322e6f2af522@citrix.com>
Date: Fri, 5 Dec 2025 12:01:21 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [PATCH v9 09/10] x86: use / "support" UDB
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
 <78b7c8a0-16ae-49c3-8c7b-5b10f5b0d688@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <78b7c8a0-16ae-49c3-8c7b-5b10f5b0d688@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0212.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:33a::12) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS7PR03MB8339:EE_
X-MS-Office365-Filtering-Correlation-Id: 9e9cd902-bb1c-4bf9-fcb3-08de33f602dd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OElvZXJYd0JLclRPQ1d5aE45Wmx3SjF5cnhXVHlBaHFBVEtESFRYUUZJQ3dG?=
 =?utf-8?B?bTdTNU05QmFjOHlqcE1oT1NZVkFURmVRR0x3NWlCNU9nMW1HN1BxMUVzdmNN?=
 =?utf-8?B?M0V6R25TQkNERnJqUXozeWNuTW9YM0NxUmsrTUVhNU55WlhFVEFHSkZweWJX?=
 =?utf-8?B?M3E5Q2pFM09Dd3RHU2NPT3ovaC83VjZDbTYycGNRMUFnd1RmSURxblRLc0Zp?=
 =?utf-8?B?eW1INHNOWG90TCs2clViTVluVVVnTVpQSmw0WnI4Sm55eGNUYlk2VXg2OFNF?=
 =?utf-8?B?Z21xNW5vVUlyTWlxRGpqU2ZaMEVlMnk2Vnlqem5nRzcySGZYQXJOV2g2QnBl?=
 =?utf-8?B?bGNjRXI1d3FiS1YxQkIwRGpkUytMNWlYbjRwSFR2d1lDWHB2dTcycjdhVzNZ?=
 =?utf-8?B?RzluMTVFcnAzeFpCNUJnb0pzRGJSTHFOSFk0YXFhcWd4T2xOaG9oc1FJWmxR?=
 =?utf-8?B?WnhrdXFseTlDWHVqU3V5QXcrTnhmRmt3RFZ5OTFyaGFqdGtKSGZFVm9sR1BR?=
 =?utf-8?B?aUd2UDRnUklkZ0tUcjFrdkJrdmJZdGIwekZiS1dnL0RweEpSSEdUdktQMFZl?=
 =?utf-8?B?UjM5RUJoMHZQZHJkejd5YWVRWGxGUkcvMDM4MFJRRENlZmJta1dUM0t2VGx1?=
 =?utf-8?B?d3BlNmxOUWZ3eGlKaEozaEs1Y1ZCdFhKMWViVVdjSUhiV3FydlVrK1pxbXlL?=
 =?utf-8?B?WGxmWEQyZDUzZXVKWHF0aTJwUWlEdzBlWUxSUkt6MXltNUo1TzBrRzBPeXJh?=
 =?utf-8?B?eFJROUk2THJRRDNKejJtd3hOUmtKcFZRZmk2aUJpQTdhaTBFSXNFbTdlejNn?=
 =?utf-8?B?cmFveS9iMzk3dWcyY1p4TDBweFNWREpQakZiQXZTcGFpU29mNjc2ck5pVkhH?=
 =?utf-8?B?UlFjdDh6K2RrZ1NFYnNtRko1blNJMXk0d0xHWDY5amp2dzJLMDAzNGI5bC9q?=
 =?utf-8?B?YndGK3c4M0N6WWt5YUlxMGNsRExFN0xIejB4YVJSN1hqM2dtcnBRd2V2b0dt?=
 =?utf-8?B?b09sejVrdHM0eWtMVUVUOG5GcDkwbmdNK2Nxc1VLSXRQYlBOb0RzSGtyNkVX?=
 =?utf-8?B?SUpON05ScHJaMmZVWTQrR2dzejBSMlFVSWJ4OVR5TXJmUHBaZWd5MVg2aEls?=
 =?utf-8?B?Lyt3MGFadFp1a2JpZE8wNlY0U3lmaE5kMHluL3F6cWc5SXg0YXNOZTZKMENI?=
 =?utf-8?B?b3U5MCtONlN6bmJkWnBlV3V3UzhwT01iNVFBVitOMTQwdFhic0gvcW9rK1BT?=
 =?utf-8?B?VFlISUxlMU5jNGI3WDRIMGFabmNWRDFwOUFaSVAxQUkyQWZreDFEZ0l0aGha?=
 =?utf-8?B?Y3NmaE02aGtSV2tJKytMUUpWakQyV05JaEo0UzJVbnRmRmR4NWdGU2psbzZZ?=
 =?utf-8?B?Q3VBOHpLc3h0Y201M0FHeXoxK3BteEVsNm41VitUVVM4SkhGQkZpL0FHN21S?=
 =?utf-8?B?UlJmYzZ2dVhmZVNJZmxINHlxMzhoU1FKeURwa1FMQUZISlp3QWoraTlVcnBw?=
 =?utf-8?B?ejFveUI0MitzSHErVnZiZzE5MjdKcTVnUUFJekI3aU0wZzJEMmpJcHpDSFhh?=
 =?utf-8?B?OFVtdis3ck5PWVp1S2xSTFJqVmk3dCtmaWJudENaQVVoOEo4ZzdoQlJaY1kx?=
 =?utf-8?B?NkxmSEttc3FUK29ibkVYSExvZjdUZm1tcUt3UVVxS3JhSDNiMFlwWU83TC9l?=
 =?utf-8?B?OElZSVRXL3VTVzZsbjBXTlQ1eTMydmx2OU1qR2VXc2ZXUWxaT21UMHZKWVZt?=
 =?utf-8?B?RGxrZlhGRVlEVDQwbWw5YWhUNDV4WDFJY2E4S2ViU1hULzRmQmtGaWM0a3BS?=
 =?utf-8?B?V1RBVHJVak1iZkd5Y01vZmtjRis0bm9yZ0p2OXg0ZmVGN2U3REVtVGJyK1d6?=
 =?utf-8?B?UFFyY2FmKzVrUWdvdVpzRFVWSW9hMnF1Qi9UYko3bnNBaDZ4ZW5rNUpFemFl?=
 =?utf-8?Q?6tkB1fyfzUXGMe1Kei5H1MDpsVBCZNqI?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?b1d0a3c4Wmc2VjhEaS9KK3dqako1ZW5VTnJPSE9KTFZ1bzBtVHhkMkRId3hv?=
 =?utf-8?B?MGpVREZMc1JMWk0xRkh4eVFtTnc2Z0llQ0JLTmVkUmlUWjRVNzhqNzh3V0Nw?=
 =?utf-8?B?eXVHK2JhQ0FHK0tyMXpsMzJkUXhmT2hvVi9uOGVHTHVvZmF1Y0JCSHR5ZFl1?=
 =?utf-8?B?SEpuQmErbzdER0FjbGU2Kzl5Zmg2SE5HT3puTTgrU2hxK1VVU0UrWE8zdkpq?=
 =?utf-8?B?V3Z6aFZXbmRDaS9NSE93cEY5NCtsY3FDdkoreTc1Mm1IMHkyNUhDQ0gzazhX?=
 =?utf-8?B?Sk92YUFyYTZISkM3R0pGTjBCL1JYQ1N6UHMvcW85TDV0SStWc2FBTkw2ZGFR?=
 =?utf-8?B?MTFFdDRJVWx6cDVPRGhGWUxQTGFUUmd6WlJjaTdyOHRZZlprbmw1Z3ZLL3ZZ?=
 =?utf-8?B?RmtERmpsZUQ0UktscW82N2VncnJRbFZoeXFoRmxsSk5xRC9JWDBZcG5XU3pt?=
 =?utf-8?B?L245Tkw4TEdhMUlzQ1RRNStJMjB3MzB4aUZZUDFWaVVscUZJZ3l2UmNGS3po?=
 =?utf-8?B?L21VZm1wZHVhd0ZHWmJoRGdoRTJCWG1RSDEyZ1BhWHQ2NUtWeHRKTlNDWnhl?=
 =?utf-8?B?bVcrSHZXWXhXbUhZb3Bla1dtbWNrSllRTm5mOVgvOHJYbHB4WlBpWXRubUd2?=
 =?utf-8?B?eXJUdmkwUWorRWhHU1k0Szg1V2MyaXlPK0NnNEcxUjBieGphYnk4SFpHY0JC?=
 =?utf-8?B?SjdLK3E0STYvUjJnS2w0c2c0UzB3L2FyZGdweFA5SXJXMnlGcW5IZG9KbTZv?=
 =?utf-8?B?NEEyM1lzRmwzS05vNTQxMmZRbGR0NkNYcEp3MjNzSW9GSFJOdWxrVE05WFN4?=
 =?utf-8?B?SjZtWjE0RUw3L0xVeXNPYXdBdkE3ZEtSeVRQQW5oeDdZR2FJUjk5UEVsZHBF?=
 =?utf-8?B?NG5tcVZrNCt5Q0RldFplRGZCV05nd3RBZ0twVlppVkJpeGRmWmxTdnBQS3R4?=
 =?utf-8?B?bGo3OFI3QVN4SllpdHcyZWFqSmJEYllBQml2RUxmdVNkWnJ2b0ZoTmJpUVBP?=
 =?utf-8?B?aGFGWnJXblAzWm1lSjFHVy9pS3hwMUdZUTRQN3pzditjS3FZMW1pbThQYkZB?=
 =?utf-8?B?bGI3WU8vS25zemZ2V250MEJrVlR1azdTY1lROElrMUlvWEdlOFcwNEdPblRL?=
 =?utf-8?B?R1hxMjI5eDk4NUVkdDJxRFhybFpzMUUwSzFGU28zZlRuZ1FNWW1rbjhoQ1gv?=
 =?utf-8?B?cTNHMndBdmRSYjRjT2tsVmtPZDB3dW1IVEdWU21FdU4zYmp4ZGV5UzI4ajVZ?=
 =?utf-8?B?UW5zS1JIUzQwZVI0YWFnUUQ3TnpFSzB3MU1EaXR1b09TL1UraDErelVPZWxC?=
 =?utf-8?B?VjhCcjZXSzZYS3ZQbFBiL3B6NStnNys0NFQwZEw2VlUvMGM4TDNzRFRDMmc0?=
 =?utf-8?B?ak91T3ZTWTVONWpKdmdGbjZUeEVGdnRJaDVyNWNqSW1kdlFaSk41T21rSVln?=
 =?utf-8?B?MHR6RTNuR3NNYnJqN2dyRk40QnlvMjU1T3hTRGJmMUtUSnlKZXJFVVFWNTc3?=
 =?utf-8?B?b20waFl2ZlFGV0U4eGhOSWRqRjhZMjBKUVh2anBxTFM3dyt6YWlpM3R0OFBa?=
 =?utf-8?B?UmlSeVNONHhsZVFHSTNwOXZkdmxNbXVpM283NUcwNzlYOTRyOVREV2lYQThD?=
 =?utf-8?B?d2d5MjJ1V2lIZG9sWDFsZGQ3OUtWV1JLMnVkcXNPM1dYVm1iV0xId1hpTDVI?=
 =?utf-8?B?S2d1bG5jSUhiYUNPSjZwMnQrc2VzdEd1WnZ0K1JMQ0JCNzJXSFZRR29CYzFo?=
 =?utf-8?B?TlorY3VkS1RaeHdjd3hOUThybjV5Z3Nud0Y2aWVhd0xLVE04eThZa1J1ZmZB?=
 =?utf-8?B?Z0syY3M4NHk1RHdZUjM1NlNlRUtvK0hNOXpmbWRKYnkvUXBFNWQ2YS9ZZWJx?=
 =?utf-8?B?Vm42ZWNuRWxMVXJmT2k0SVZIdXhWUFlYNDRDQ3p2Nzg2bGkvbnExZ1FhU01X?=
 =?utf-8?B?SWhVc0UzaXd1bHlpSXhseWJlUXFabnFNRXVIU010SjgxbWZkNTVySTRFUk8z?=
 =?utf-8?B?UEFWL3NsdmJ4Ynptc1RRZ3R3SWxJYnp2c1pqa1dCbm50THV5eVJ3SlJtekg2?=
 =?utf-8?B?VnRiNmx6VkhMdm1mWFZPY2dqUTNzNTNVb1dhN3VjaXpvM2hDZkR4ZTllcDl5?=
 =?utf-8?B?d3p1YVhaMmNyZEVvZXlSeGVERFhhcC8zcloxa2RzUVJJRDFva1YrUlp5K3VQ?=
 =?utf-8?B?SWc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9e9cd902-bb1c-4bf9-fcb3-08de33f602dd
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 12:01:24.0243
 (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: ijPx1T0J6s4YxXaIWAAkzaBf5ARsshlo73lx094av6yzLZxW/13Dg2zcH2opaeKh3tN2PP75m26ijCR/BEah3n2eDUHgQ1hzAd4kV+FbatU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB8339

On 24/11/2025 3:01 pm, Jan Beulich wrote:
> With opcode D6h now firmly reserved as another #UD-raising one in 64-bit
> mode, use that instead of the two-byte UD2 for bug frame marking.
>
> While there also make the respective adjustment to the emulator.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Should we also switch {svm,vmx}_init_hypercall_page()?

The hypercall pages are 32/64-agnostic right now, and used by 32bit
guests.  UDB isn't safe to use in those cases.

> Furthermore x86_64/kexec_reloc.S also has two uses. Question is whether
> "tailcall" is being open-coded there, or whether that's deliberately not
> using the macro we have.

The code in kexec_reloc.S long predates the tailcall macro.  Also I now
regret calling it tailcall; terminalcall might be more accurate but it's
overly long.

Very counter-intuitively, Linux has plain KEXEC which is phrase as
"call", and KEXEC_JUMP which the ability for the invoked kernel to return.

For the regular cases, Linux invokes the new kernel by spilling a
register to the stack, and RET-ing to it.  For KEXEC_JUMP, it does call
the target kernel, after some games to set up a stack in the target image.

Either way, we can convert these two to plain JMPs.  One of the ud2's in
particular cannot be converted to UDB because of being in 32bit code.

I can do a patch if you'd like?

>
> One of the table entries in stub_selftest() uses UD1, yet not in quite
> an appropriate way: The 0x90 following it (presumably meant to be a NOP)
> really is a ModR/M byte, requiring a displacement to follow. Wouldn't we
> better adjust that (e.g. using 0xcc instead)?

Oh lovely...  That was my mistake in 2eb1132f7963, where I was
converting what looked to be a double ret.

Can't we use 0x00 so it doesn't look like an int3 either, and update the
comment to make it explicit that there's a ModRM byte?

> ---
> v9: New.
>
> --- a/xen/arch/x86/include/asm/bug.h
> +++ b/xen/arch/x86/include/asm/bug.h
> @@ -21,7 +21,7 @@
>  
>  #ifndef __ASSEMBLY__
>  
> -#define BUG_INSTR       "ud2"
> +#define BUG_INSTR       ".byte 0xd6" /* UDB */
>  #define BUG_ASM_CONST   "c"
>  
>  #else  /* !__ASSEMBLY__ */
> @@ -37,7 +37,7 @@
>          .error "Invalid BUGFRAME index"
>      .endif
>  
> -    .L\@ud: ud2a
> +    .L\@ud: .byte 0xd6 /* UDB */

add/remove: 0/0 grow/shrink: 1/520 up/down: 284/-1024 (-740)
Function                                     old     new   delta
x86_emulate                               144961  145245    +284
zap_low_mappings                              82      81      -1
xstate_set_init                              298     297      -1
...
paging_mark_dirty                            280     261     -19
csched_schedule                             3711    3691     -20
vmx_create_vmcs                             3740    3663     -77


I think this says quite a lot about how bad the vmread/write helpers
really are.

> --- a/xen/arch/x86/x86_emulate/decode.c
> +++ b/xen/arch/x86/x86_emulate/decode.c
> @@ -651,7 +651,7 @@ decode_onebyte(struct x86_emulate_state
>      case 0xce: /* into */
>      case 0xd4: /* aam */
>      case 0xd5: /* aad */
> -    case 0xd6: /* salc */
> +        /* 0xd6 (salc) omitted here, for #UD to be raised in 64-bit mode. */
>          s->not_64bit = true;
>          break;

Why does the not_64bit logic not suffice?  #UD is exactly what we do:

    generate_exception_if(state->not_64bit && mode_64bit(), X86_EXC_UD);


~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 12:07:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 12:07:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178877.1502553 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRUaO-0000l0-5i; Fri, 05 Dec 2025 12:06:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178877.1502553; Fri, 05 Dec 2025 12:06:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRUaO-0000kt-35; Fri, 05 Dec 2025 12:06:56 +0000
Received: by outflank-mailman (input) for mailman id 1178877;
 Fri, 05 Dec 2025 12:06:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=K96r=6L=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vRUaM-0000kn-L5
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 12:06:54 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id df39b9dc-d1d2-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 13:06:47 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MW4PR03MB6991.namprd03.prod.outlook.com (2603:10b6:303:1ba::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Fri, 5 Dec
 2025 12:06:32 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.009; Fri, 5 Dec 2025
 12:06:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: df39b9dc-d1d2-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CuO1VEC+w/zwlukU76wICEkkvEjZZ0oC36hDrAA9vJ8t5uXIh79H/8QmLT3LRToqrv3637F7LtHfx2Ljc80HtYIvoUTVVk8QGyORb67bmYQGME9Q79uPCooMEPRBaDRxPtjLMle1Zak3wBuDyIQys7GbcHmm8cgTQiohZLfN0h0x6uw6Mmec9A3jg4/E9H/wYeMcTInW+IDkn1Casue33kV6QZgOPfNxSdt8yYrx08Wbri+K/HSpt04N+jBBb/Lji6jm/cquvYBqLl5ek7de+9y3STBnLLBss6YmK1gWFMRZS+NEoUNdXEKI+DttRuAD8m7G7tOZXsPgyEkPZGrLlg==
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=CVBI/kQmLsGOHt+//8JzIikHLFqytSb6UmPY9cwUaes=;
 b=mR94UfwG2udsQRoAvpwjFpdGQNt8SYpivr7/L5lbA1LMj5qnynVQltCLLcHMYL8wgm5h/r027ZXl960xjn44vcGMM04fMP+TyjH9e2387TFd0TYbOvNDyP+ZSK2ghzyTQD+DMZzxJGSoIRHZ7G2eubfVzuI/95hrirO7mnOP/4zgcRdQ55Sg00w/8r7md2SJlwzL4pf9rODxv1ZERinN6T5EKpLSrRjooHBTcEq6Z1Pd41IeIi9NHJJW/8xN/dw1WGMC0Zd9slbG63Fp/i1gxuI2wCAw3Dkc1/dp149HnCV3EtinQ83OxcLI6CfOiARGDbUQOJiDP28Qj/ffpCkKiA==
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=CVBI/kQmLsGOHt+//8JzIikHLFqytSb6UmPY9cwUaes=;
 b=ASWU6jB6VD9PoWCtHUHCybkJ+Vag/eT8Yseg5Qa4T0plKBTc+2QxPR/9B3HVo5bLbddbGJBoKr4txYsq485XyjQFAlWXW0nX9GS3HnBWkgH2k/HjJORwcoqsSAuZYUT6DU1lcbITpik8btUTUrqPVCV1uKtSrIlfym+USyp7PeE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <737e9b03-fbad-47ce-be30-d229bbf0a948@citrix.com>
Date: Fri, 5 Dec 2025 12:06:28 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Anthony PERARD <anthony.perard@vates.tech>,
 Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 1/3] public/trace: Add U suffix to
 TRC_PV_HYPERCALL_V2_ARG_MASK
To: Michal Orzel <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
References: <20251205115000.49568-1-michal.orzel@amd.com>
 <20251205115000.49568-2-michal.orzel@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251205115000.49568-2-michal.orzel@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0439.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a9::12) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|MW4PR03MB6991:EE_
X-MS-Office365-Filtering-Correlation-Id: f3bb3c0d-f34b-4fa8-4d7d-08de33f6ba83
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SXpuRnJEQUorUDBFVVcvcVdjaDdoUkdaUEJvZWxiVlRzdjh6bkpML09lZGZm?=
 =?utf-8?B?aVRNTlc3c01XZ0JsTnpVYUpqaFUwVllWaXZ1aGkxN3MvekRldmRLTnp1ajVy?=
 =?utf-8?B?YnNtUU1TQTFSa1lKQTVxV3U3Zm0zNSs1cEVJalV3SkxRWTdlV01xRWZVeE15?=
 =?utf-8?B?OUhZWGoxbVRrdWFjRDVQVm1GRDZOMy81TzBMcnUvRVV6NFBzQldKeDM4TUhW?=
 =?utf-8?B?U1VmaUliLzFLaXNrRmMwNE9LT1RKZnZmRlh4YlI4NlJzQVowZ0xIVkxjQjJv?=
 =?utf-8?B?ZFNGVFJ6cml5bTRsN1B2M0VZL3JPKzBTT0xnYzI5YTA0cEdlaWhyRC9ZdzRk?=
 =?utf-8?B?K3dsWVZRUm9UUnhPZmpZV3AvSTJZcDVPcksrOHFWbU41MFRLZGt0bGJLeVR3?=
 =?utf-8?B?Mm9XL0ZjZkZpeWY1T1dUY0xKU29Vd29mUW5pMEdOTExOZmptMlYyNnh0c3Js?=
 =?utf-8?B?ZXdvU0dXdjdHWEp2bVBKejhYeTFZRGJ1SERxdkJJWXdQMUFlbVJNY2h2b0g2?=
 =?utf-8?B?dXFCdTFDaCtWeExYZ1haMXFhd0c4MDVyb25UN3M5eWtHZ1RUZUFjdjJJTEpN?=
 =?utf-8?B?WmFXRXZ3RzJEcFhGTVhUYVh3akhGREpsUENPZEpWYVV3bkRRY0wxTE10QWRp?=
 =?utf-8?B?WWJFOEpPZWltOEdMU2NUVGdJd2dFVEFsV2lsd3NBOWxBRVZEL1BvQ2ZKMkl2?=
 =?utf-8?B?VFA2R2xzenFXdkpyS204cmM4cmRNN1J1UmdJeHJGajE5V1Y0VFlmUmxRdlB5?=
 =?utf-8?B?djRlUU4wNllxT0d5bEh4NjB3ZnluNitrdUZ1NXAyQ1dKNzQ5ZFhScnJUMDFI?=
 =?utf-8?B?MVRubEhENzhVOUNDSG9BWEJkaVZsRXVMbXVuVURLT2l4dk1icTN6QjZacTli?=
 =?utf-8?B?RWJ1TG9TNllOempjM1NyOVgyZU5FdVNKUWNLQmQ1UTVoVmVYT3J3TDBPb3U3?=
 =?utf-8?B?SzBDbzZVNnlERFFXbnBOQnpTN1p1TVJuNUZ0cllZR200bGR5T2pkQ1VjZkV5?=
 =?utf-8?B?SFEwU2tVVkc4cVp1ZmdVQ2FZNTdhWnVkMEdST1NhN2ZQRGNoRS93T1BXVTdE?=
 =?utf-8?B?cXV0alRNVWg1cFVaOGdMaHpaSGRVN3BmVkF2QXR4U0xqUzlkeEE5TlJWRjVz?=
 =?utf-8?B?SlNwUzFJOWV0c1RHV2thTkcyQWV5M1BiaGNXSzBHTk1rN0N1T3VQVEU0NHlx?=
 =?utf-8?B?d1pFOXg0ZmFWcmNWc0hBMExoWndQSzQ3QUxxS1ZYeE1vSm80NXhkNVcvY0pw?=
 =?utf-8?B?bjY5N0x6VHEwVGVyMnhIVWtDaktMYTdnZlUzdGY3QjUyU2t4QjhPN21tSFdO?=
 =?utf-8?B?MmtmL1RaMHdwZXYxYkNSb3M0MTg4TU42RFpKT1BpOEl5T1RBNXErUm84ZTNS?=
 =?utf-8?B?MVNDeWFoSWVGSDQ1WVpWdjdwTklnenhIaWd6RTJxclUvVUl2akk1NGNYdk85?=
 =?utf-8?B?WE5tSTV2N1lscFpFVFJFemcrd0N0TEhDUmpWek8wMDhFaG1rcFdkR1l5cUZ4?=
 =?utf-8?B?Yy84eHNRdTdoYllMRVZ0aXJJWEx0VjJwYXJsMzlWcXBYTGdyUnlLK2tuaG9B?=
 =?utf-8?B?aVNVdDdjdFV6azJwb0NQTWdQb3JwVnNvTjhOeHRFZDRoaGtuMU5PK29Sa00w?=
 =?utf-8?B?TFVEbkl6dXBvMXlNSU55QzZTdy92K0FUL3hpazBvSXM4RUVFTnQxbTduQWhB?=
 =?utf-8?B?WHhsU3oxd05UbjNVZUViM2JqaEJiKzBuK1d4REpQczVXRjlJUk96TFNZVnlw?=
 =?utf-8?B?OE5IajlpZEZZRVpYMXU0aFd5R3VOOGVBOUJGZUU5VFJNanB3andNd3owY3Bi?=
 =?utf-8?B?NzNpNjkyaUhDZkhNWWF2OUdQUVpUaUtOanpYZ3g1TGx0Tm90YVgvU3k0dHI1?=
 =?utf-8?B?cXJybzBLazRzaGhUV1FVV05jZFI2c0M1MktoVDVubit4WElHSmM5TXJBUHZ1?=
 =?utf-8?Q?OtsmqzJsYXl2tLv3F+JT7R75XOruPs6T?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VEJNVk0zUklrV0w2Zjc3UHRjUXBVME9TOW9oZmZRTitiWmhUSlFjZzY5NzVK?=
 =?utf-8?B?WmRDdFdPQnpxNStyc25COG1QRVgrdXhrMnVIOGVJaGtSMk9uS2kwcDZXK1Bu?=
 =?utf-8?B?K3NyUU5wTVZHM0poNngrcE83UllsZUIxWC80U1pwb0tWRHhYU2hsU1M4NW9s?=
 =?utf-8?B?cDh1OWd4M203bmtZYjk4Q0hncFRFTnVqWVZIVWhuYmhwNmgxRTZ5S3gwUGpO?=
 =?utf-8?B?VWZJU25yNCt1VkE5V0VjYVZuby9CdlNqK1krWkUyZjJjRmJYalpSMnp6Si9T?=
 =?utf-8?B?d0J1azJPRVhjUTNJa2hNczlSSU01WUVuaEI1UHJxQ1FIUlhFUWpBbDlKQXoy?=
 =?utf-8?B?QUZvTlZqcHBJM0lYc3AzWi9rZnhwck10KzJKYUJmbGRpVUhkREh3TFAyQXlw?=
 =?utf-8?B?dGtKUDRFV283YWJYdmpMSXB2Q2xBSXFlZDlra1RxakhPZVMySm9TQlc1V3lM?=
 =?utf-8?B?OFVPbndBaHNqb0F5bm51VXZYYlFCRVdSVnczSXpBbDdPVFJaeTczc3pLelZq?=
 =?utf-8?B?MjU1SVBhRS96alFvN2tUMVhPaXhGa3FYREgxdUpRNDJ4S2M5R2dabVZ2RWNO?=
 =?utf-8?B?WFNTSmhGYUZxakEzK3gvaHJoTks5TFFka3JxS1NzWmRQZlZkZE92bTQwaitN?=
 =?utf-8?B?U1NSQnp3WnJzViszU0szRlVTeGRhS2M5ZGVYVUxaNUhnZFZHeURJZTFOS3hP?=
 =?utf-8?B?SndSeUE0dFhZS2pJQnU3ZEJHbTJIUExrUDUrdW9IR05CQVVsSFRBZlo4cjgz?=
 =?utf-8?B?T2FKbGt1SDk1c0xZRzFvWjlvSkNrVVRjUDJhSXFGSm9DMDh2VExFOVo4SkhY?=
 =?utf-8?B?dlRTUUhoZnM0a2xpQ2FBNGtucER3aGZUczVwcWtSZTdlaElMbUM0NG9IVm44?=
 =?utf-8?B?ZVNxdHZjZjh4QzdWaE9CN3l2WjIycWJNNG1IbjJMQVA4NHJpaEZrLzJtRXIw?=
 =?utf-8?B?SkpzZ2IwNW9QSEc1UTc0WXVYZy95d3ZCU2JNbVVJZGh3VFJyNnQwYkp3RmRm?=
 =?utf-8?B?L2hHSjRnWDM2RkN1VGZ5cUNPZ05ZaDVFdkZsb2M2WnNicmtsRW9ZUEZOaFcy?=
 =?utf-8?B?Y2dwRndrM0tkblp0R3RLSW9Pb1EzZVU3dnErVWJSTmhJbmx0cXlCbVI0cWhX?=
 =?utf-8?B?aEhrUWphTnFDNGluOFMvSFV1SkZuNkttU2xzTEM5UEJtWEVLRW5ucFROZGNq?=
 =?utf-8?B?a2VKcDUvejdTOHhNdi9EK3M0SWVZbHErM3MyT1N0dG9lbnRLZ0JMOXlsTnBy?=
 =?utf-8?B?T0l1NDJDcEIvcWFDdTdwNnhnbW5wYTF4dVhRQ2w4SGJiOHVtWWJCMHJmZjRn?=
 =?utf-8?B?MGRzdjRVako2MFlmdGFpZUx5UUY1TFV5QXpWd0JDcmRiN0k5M0pFbnZpdFJK?=
 =?utf-8?B?S0NEQTZ3dS9aWmpseTNiaWliQy94QWFQajArQklSQVpHbkMrUGhOU3Mvc3dS?=
 =?utf-8?B?bnVndEMzclh5ZjltQU40UXh0ZmVYNlJmVDNJOStKY21kNDFhRGFJZWMvZmMy?=
 =?utf-8?B?MC9XTEgwazBZaEVpSWVOYjhXZ1NlOFV6YWwwcktRdy80bTllMnU0Y3lrS0NK?=
 =?utf-8?B?VTQyQzNFMVJ5L2xGWDZFSkNLSFE1ZFZaNGdoNS81UzhHOTlFZFQ1cHY4U2J5?=
 =?utf-8?B?TUJlamQ5T0VEcGVwa1dWb3ZISlpvcnluZ1UzcnlJeGp6NnB4aUJPOUJvbkxU?=
 =?utf-8?B?MitFenJzcy9LNUcyK0ZmamliMHJiUjdnTHllRnIwVlpKcjE0SWhHLzd3NllW?=
 =?utf-8?B?NFFxUDZXclVKaXBncko2TFp5bTB1M1ZuMWV5SEZPM1hsWnh0UzBVQytWWkxh?=
 =?utf-8?B?azlFNk5xejh3L2FEMGlYb1ZJc1Z4MXlLUUlZV3JLdXNPbmxvaktaQVhVVjZr?=
 =?utf-8?B?RjVtd0hrUDdpMCtZb0c4SnVRcDI2bWc2WERrRVJOVDIweFdjWWliUTc2OElJ?=
 =?utf-8?B?MTg0aWd2eEpPd3YxUFlsWnhOQUNMcS8xN0xhbE1QMnpJSHV2a1R3UjRLUEhm?=
 =?utf-8?B?bEZTbmtVMlpXTEQ5eTJpRjhJUUtpWVhyTGwvaTBhdElrU25aTTEzN0JSN0F0?=
 =?utf-8?B?WTAyMkN1SjdOUXFZNkloVXdlVWt3cTJLQUk1Wjhhd3BNOGNxNWxzcXJnWHdV?=
 =?utf-8?B?ckQyRisyWW1IenN3TG1YNEk5WDlXc2psT1FEelFta250Q0h0NTJpKzMvaWZr?=
 =?utf-8?B?ZEE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f3bb3c0d-f34b-4fa8-4d7d-08de33f6ba83
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 12:06:32.1521
 (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: SyD8xWqWrmv2rSw3BM2DwPNZ5xzldayjxBmIXsZBDTpualK02K3SiCYHNDh/JtKB1/Souh6v57lr8C1GCF6SS+9WeOZxQ/Obt6p3AtNP2Eo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6991

On 05/12/2025 11:49 am, Michal Orzel wrote:
> TRC_PV_HYPERCALL_V2_ARG_MASK represents unsigned type, so according to
> MISRA C R7.2. U suffix should be applied. Fix the violation.
>
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> ---
>  xen/include/public/trace.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/xen/include/public/trace.h b/xen/include/public/trace.h
> index 141efa0ea7b9..a7d7fb8c507f 100644
> --- a/xen/include/public/trace.h
> +++ b/xen/include/public/trace.h
> @@ -157,7 +157,7 @@
>   */
>  #define TRC_PV_HYPERCALL_V2_ARG_32(i) (0x1 << (20 + 2*(i)))
>  #define TRC_PV_HYPERCALL_V2_ARG_64(i) (0x2 << (20 + 2*(i)))
> -#define TRC_PV_HYPERCALL_V2_ARG_MASK  (0xfff00000)
> +#define TRC_PV_HYPERCALL_V2_ARG_MASK  (0xfff00000U)
>  
>  #define TRC_SHADOW_NOT_SHADOW                 (TRC_SHADOW +  1)
>  #define TRC_SHADOW_FAST_PROPAGATE             (TRC_SHADOW +  2)

Hmm.  Ideally we should use _AC() (or whatever monstrosity we call it in
the public headers), but this header contains C structs unguarded by
__ASSEMBL{ER,Y}__ so we don't need to be so careful.

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> but if you're
changing it, you can drop the brackets too.


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 12:12:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 12:12:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178889.1502564 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRUfL-0002Pl-OA; Fri, 05 Dec 2025 12:12:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178889.1502564; Fri, 05 Dec 2025 12:12:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRUfL-0002Pe-Kp; Fri, 05 Dec 2025 12:12:03 +0000
Received: by outflank-mailman (input) for mailman id 1178889;
 Fri, 05 Dec 2025 12:12:01 +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 <SRS0=5iRA=6L=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vRUfJ-0002PY-S5
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 12:12:01 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9a3894f0-d1d3-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 13:12:00 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4779cc419b2so23162965e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 05 Dec 2025 04:12:00 -0800 (PST)
Received: from ?IPV6:2003:e5:8721:bb00:9139:4e25:a543:997?
 (p200300e58721bb0091394e25a5430997.dip0.t-ipconnect.de.
 [2003:e5:8721:bb00:9139:4e25:a543:997])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4792afd3b31sm82489555e9.0.2025.12.05.04.11.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 05 Dec 2025 04:11:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a3894f0-d1d3-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764936720; x=1765541520; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=l466TeRE3JDujUVCUiJTo233ZhMxU+QEINR4U1qwOwU=;
        b=QPKs9e5zjVlIhm4yaQHKru0QEotN3QnX1qrTa6+s+v4DK53FK8shhdVu8SzovlLokY
         0y8C1oqXQkHHTlsghT6Fd8Uv61YvD6fYJ93RhpFQXZLYOLDNXLv0L554dmdBR8R+WmlF
         9bjJwfmI/QyVxinvWG8TP9neLLIcVg5XNdSG9w+XnaKMQxYyQv9z3yy8c30xcFPLwdsk
         DLkd3jCZgYDOpmYjyAGBxNbSMthOmEXdWsf/xuhe3LXTqZq1h+hhXtdVKsVx1l605lzt
         5mlh+e03ook8zD3KK85utrraKRgGUtpozW7ssq4Vjfe5hcJg6bcQtS/ZiFbfIhg7VdAZ
         OAHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764936720; x=1765541520;
        h=in-reply-to:autocrypt:from:content-language:references:to:subject
         :user-agent:mime-version:date:message-id:x-gm-gg:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=l466TeRE3JDujUVCUiJTo233ZhMxU+QEINR4U1qwOwU=;
        b=rJ4XAaVG7geNz7Zceb2X4wk2LO/5n8b3uM2udaApzJqnoq2fBJRVLdOdL7dLV3D6TP
         FfAC/gAxW0s6mjxkG2QYoC+6akvpRjC40LisklZMpBYdt4oTmu0LRdR4TfNePguYd27d
         m2hQP4n0pMx31HtG3iKreCy5F/1wXhNmtLVL/GOUzTwpVRExMRiTazTxmjBQrmaf99oJ
         czHhwO1FriV0aNMDKBpMP4Z+vaL0k0uVHdU5uCmwbbDvlg8uM1M54qw4rOF3IOcCOzjX
         5mrWlYznZo3jOENTpByivyCUixQyCn9J87VuO13K3UeXUkLqeN8OFYXdHHdCjCE+dakX
         VjVg==
X-Forwarded-Encrypted: i=1; AJvYcCWup4LZUdQlW7JrH3cY+SBLC9hwqzmJsqfL2uA11TWneJ1fw+zKBmJW6VE9OFjvhICm0TuWThq+AbY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YykkV8EpEVyhQuWFZKwyUOwZNh3ZykNJCmoaf46q3DrS8JUWKW8
	hKQjQifdRrOPSXhJuLfvGbOyCqw8yswqy90vmGvmgGPE8UHWOK1HC3s91F+Gc5uJmN0=
X-Gm-Gg: ASbGncukMUoZ9lUuKzqaBQIrmM+CtXT3nhCL4OSRq43dk/IXaYpAAxqJOqfXdjrSFOX
	IdnD7MJJYeqGc2D8bSJIP75Z3h20BgrJgRyPHfHNzzKyFkNVps+EEY38awfdUx4T/uPaIJlOkdS
	oehHm9hQnjoryPJSbKrbaXgpo6AWeMbC0xTSpptCkrEIU+EMm2sahny/HD4KbBLsNbs07T93glu
	cmuUR9ut2dm8/nDKiJOYP1wOjri6aI+aY42UV30/PyIGewndlgm13sZohTihiPAQ6B+KC6w4rTu
	ifCeTB9boAwJDeOABxTocIpFWLJ0eOzXLMEwyJFjQis/EevDgZIAbLEwG5ACN5WMntIdpse2m73
	Nrt4+lelA16sLGIZt8Mss1J7chYxK3y4x+xyxIDRtHwqNlGWXe4xaJd1epb3ddrI32GSWLwSP+b
	7vhTJ3UbSBy0jCpg277Y6aonsyUi7o2XnQVxMKCixfdSAnfotmCC6UbippbSXXxiIU8DheOYcTt
	YiMIQto4GwMcr9lK7lL6i5LGndz9fiiaut7I3+V5A7P0i0=
X-Google-Smtp-Source: AGHT+IErXnWBV5r/bFog1snaLf1gmdNCwTK5LcBHzQYz7SnvUX7U+xF3zvcJLW47pt9Jl75nClYioQ==
X-Received: by 2002:a05:600c:4693:b0:477:8a2a:1244 with SMTP id 5b1f17b1804b1-4792aee38c7mr95341615e9.11.1764936720159;
        Fri, 05 Dec 2025 04:12:00 -0800 (PST)
Message-ID: <4172f899-cd7a-4181-8da4-34bcd982437a@suse.com>
Date: Fri, 5 Dec 2025 13:11:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] xen/hypfs: Enclose HYPFS_DIR_INIT var parameter in
 parentheses
To: Michal Orzel <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
References: <20251205115000.49568-1-michal.orzel@amd.com>
 <20251205115000.49568-4-michal.orzel@amd.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20251205115000.49568-4-michal.orzel@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------35Bv0t5zgSZgrkJ0kFmaxn52"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------35Bv0t5zgSZgrkJ0kFmaxn52
Content-Type: multipart/mixed; boundary="------------TtWWuSmaPmga00UJ3eWlvO5H";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Michal Orzel <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
Message-ID: <4172f899-cd7a-4181-8da4-34bcd982437a@suse.com>
Subject: Re: [PATCH 3/3] xen/hypfs: Enclose HYPFS_DIR_INIT var parameter in
 parentheses
References: <20251205115000.49568-1-michal.orzel@amd.com>
 <20251205115000.49568-4-michal.orzel@amd.com>
In-Reply-To: <20251205115000.49568-4-michal.orzel@amd.com>

--------------TtWWuSmaPmga00UJ3eWlvO5H
Content-Type: multipart/mixed; boundary="------------iBlelGyqAynXCU03sd3POwmE"

--------------iBlelGyqAynXCU03sd3POwmE
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMDUuMTIuMjUgMTI6NTAsIE1pY2hhbCBPcnplbCB3cm90ZToNCj4gVGhlIHZhciBwYXJh
bWV0ZXIgaXMgbGF0ZXIgb24gZXhwYW5kZWQgYW5kIHJlZmVyZW5jZWQgYnkgTElTVF9IRUFE
X0lOSVQNCj4gYW5kIHNoYWxsIGJlIGVuY2xvc2VkIGluIHBhcmVudGhlc2VzLiBUaGlzIHJl
c29sdmVzIE1JU1JBIEMgUjIwLjcNCj4gdmlvbGF0aW9uLg0KPiANCj4gU2lnbmVkLW9mZi1i
eTogTWljaGFsIE9yemVsIDxtaWNoYWwub3J6ZWxAYW1kLmNvbT4NCg0KUmV2aWV3ZWQtYnk6
IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCg0KDQpKdWVyZ2VuDQo=
--------------iBlelGyqAynXCU03sd3POwmE
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------iBlelGyqAynXCU03sd3POwmE--

--------------TtWWuSmaPmga00UJ3eWlvO5H--

--------------35Bv0t5zgSZgrkJ0kFmaxn52
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmkyzA8FAwAAAAAACgkQsN6d1ii/Ey9W
Igf+PebJhst5ELox4l7yw8Iviw9qDTvVOstS7QONB36MBte2da9MWqAcEUKc4NYtCyvgtj+dMTEm
iCX1G/ID+sJC2cix6I8nWLLU+hWOYhq1Rvvckr4uf1BfS1IvxQ6hzbjqsd//O4GUG5UBnZuD4aJy
g8kVMCUtrqWpGQykuO6EU9y6BGL6/H6hyGe98GkLxQ2oljN7IDNAxGJcRY0YC9uv9VH35XJxC1pQ
7vg9B6RB37wEjrRUy23HbDLv1MJm3pV0ehzfv13FJlpk7E6liYG5njMqacr0Wg0NrVYb38LICj0N
d7fu0g9DrNbvmV6InLpqofM7MNeu2YdKkKPv8thTGw==
=rPUH
-----END PGP SIGNATURE-----

--------------35Bv0t5zgSZgrkJ0kFmaxn52--


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 12:32:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 12:32:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178913.1502574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRUzA-0005cO-Hc; Fri, 05 Dec 2025 12:32:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178913.1502574; Fri, 05 Dec 2025 12:32:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRUzA-0005cH-Dv; Fri, 05 Dec 2025 12:32:32 +0000
Received: by outflank-mailman (input) for mailman id 1178913;
 Fri, 05 Dec 2025 12:32:31 +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
 <SRS0=K96r=6L=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vRUz9-0005c9-Bf
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 12:32:31 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 76a293bc-d1d6-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 13:32:30 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SN7PR03MB7155.namprd03.prod.outlook.com (2603:10b6:806:359::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.11; Fri, 5 Dec
 2025 12:32:26 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.009; Fri, 5 Dec 2025
 12:32:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 76a293bc-d1d6-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vAALFsQUM/NV4zx/uG7x4316jKjDREdfRwgB29/nQAm0tMSypX8fVROZ/Skhdn/P1FZEYk/AE1mLYDE0DdxCYt0PKtoDH2ELYRJvS+W9WKYpwSpO4TVJ6AoEHs28LYFKtIvxLr8eIIKJ/htKYvYy16DTUhqu5ZUwLsUwENC+etWGGfB39nrsbFLcR+/0tjOzYI1AN9/9LFLYwOypIUwBgeqz/954Lx7POJN/Lfr1nHdzIdl28Xbq03A2YKYwUmbklxKbk9Kgg3r+PtDgr6DmLj8/EbmiSDws6wlkLByFgd0XMduVkCXxy5bxGJhzsFsHz5PhJeXX63WPQ4DibwGKaQ==
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=SMm/uiaRpu+EkVOfalfXdzrQv9AD35uy8OzroZIKQZc=;
 b=xjYcBLRA8af+6ZYcDXLOnTHj209hheqYGcSxR4GRcxeCrNuUxBwbv8TTDIG9L4rqLrNHXNtGKjnIVS7yzHa4lJ/Ipr0Y+dl3jpFNQ3x0Jl9Fc57wQHtLELPxnNVTxzFd6rTw+7KDFdqzQ6gBbkX341BEa7dRHkyAvVmLUdAl4cspnHxeo4gxC6PPPFa+LHwpnntKvEJ9kGNlZe3a6jxqs/xlFFjRS73k5xpkLzDB6wt/6z09kBi76o7Hc6Rt3xmHfSsJtjMG4Vb0iAvdHvA5moCg00+MzzRhxp9C7Ua8HKI/ymZtTJo+lXP/BWfIhwTm20Mo5h9O6qjmwQCWdCUW8g==
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=SMm/uiaRpu+EkVOfalfXdzrQv9AD35uy8OzroZIKQZc=;
 b=dfu89FmeOiI1oNdA6Y6jAzZgI7QxEtsNM22MJ4/p1GdcpwFKmB8jvINKKewqaOK7YQhIuJJnS4Ef+UbyRmrvfc59+YSg1twNX8SyS6NrrxdHH/pNkDV8HZgwuUwHpKbXquNqfu31c98f8OtgJ1bGwgsxtJJ4T1Q5ZyEZ0U8si0s=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <24d39f26-3860-4a4f-8e28-ac3a195e5872@citrix.com>
Date: Fri, 5 Dec 2025 12:32:07 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Anthony PERARD <anthony.perard@vates.tech>,
 Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 2/3] common/kernel: Rename hypfs "params" variable
To: Michal Orzel <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
References: <20251205115000.49568-1-michal.orzel@amd.com>
 <20251205115000.49568-3-michal.orzel@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251205115000.49568-3-michal.orzel@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0283.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:195::18) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SN7PR03MB7155:EE_
X-MS-Office365-Filtering-Correlation-Id: 609818c9-60a6-47bf-89ce-08de33fa5065
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WnErWGNsYkdzNzY5bFVDQ1BxaWg1cmZkR0NySzdLa0ZobkxsRHVoUmwxVmU5?=
 =?utf-8?B?N3FsalQ2SUZVSllRc2NhOXdXUks2RDE3QlZiR2llWS91RXNpdmFEb1Ezc29k?=
 =?utf-8?B?VlMzYWZjUDIrUnFNeDJUWUZZekxNeWdTakdIM3psbmUxWFl6Y243NkNOYWVm?=
 =?utf-8?B?NW5Ld3JxVUlndVZIbUV6RWFWZzNaUUNYMUtlbm9vRGhGSmhNVXJ5bFowRjVB?=
 =?utf-8?B?K3JEbGg1dzl4UGdCelhpbVRqY0NUK1RoUnhWSnEzcnNvS1N2M2VDYnhyd0VO?=
 =?utf-8?B?MGFQSFFVWlU3cmlaUUFpVExKL3FINzBYbHlkOWhmb3J5TVc0WUxxYkZoTDli?=
 =?utf-8?B?d3I2RUFlWWZvZ1JDVTF1aEcwS3IrK2h6SDI5WUZCWmV3UGpRSFBDZCtjQkVY?=
 =?utf-8?B?K1k0bTVCN0ZiU0l1UTJHcWlhZS91Y2R4RVcxMEdpUk1ydUJaTjBNb1hlNVBa?=
 =?utf-8?B?eXRQNzNURkJjdm9wRzUveWpxR3hVa3oyaW5CNDhCUUtYVHoxcldXcUxDZFVK?=
 =?utf-8?B?RisrVnRUK3d0Z25pVVVwWCtRRDU4cmZPUDRXSGxpWjFrM2F0b2ZNZmNGSmc0?=
 =?utf-8?B?TVJkUCtEaEVRMHJrY2N5ejZTZmtCZ05ydjJwdXRuYTJUOG05QnhRc3poSlFw?=
 =?utf-8?B?aVEzRkl5U2x4UUJqbHM0aFJBdjI0R3Ard1lUYU4zUnhOZW05Tk5QTnRsZlhY?=
 =?utf-8?B?TzB4dU1BSUlwMFovc3N6eWN3bG02M29pbE1wQjNMUVR2V1lHOHl0ZEFIYXNz?=
 =?utf-8?B?UFowZktSeWJBVGJ5RGlqc2hEc2NmNlZNTGE2Nmk1eUwrVUJxWTNieTUyUXJN?=
 =?utf-8?B?b2phMVIvLzB2Z2VRSlN3U1Q0ekNuYnVldzdNOUxQQ3dGOVJmMVBlUXVnSW5I?=
 =?utf-8?B?ZDVjT2ZadU12cm4rVlNhT3RkMnR4Wk9SeGNlblZWTUQxWWsxQkRmdnZKZTQx?=
 =?utf-8?B?K09CRk5DRFdxVXgwTndET0VHVFh1a1lpZmNVNVdHQUxLUlVVdFBtc2FsYUhF?=
 =?utf-8?B?cndKMXJQUEsrNDFBaXUza05XcGdpN1VGbldURUNpaW1pQy9PL0prOXlLM3cy?=
 =?utf-8?B?OFlJUjhuNmFiWlhOR1Y3a29XUHpNdWJLUlFRd25tM1BVa2psSDBOU3F4Tnh0?=
 =?utf-8?B?bCtzVDZZYXc0WWFYeTQ2VWhMU0NiNERXVEtHaENJSEVQQjhyR1RpSDlsakdL?=
 =?utf-8?B?ZGhNekNmZ3lETUdHcFRkd3VNK0ZHMjRzM2hVRGFVZ0ZKc0F3Zk9zT1pxeWND?=
 =?utf-8?B?T2k2ZXhTL2NTRmJhWEUxRUsxbk85ek0ycDhUVGhXUWpGWXoxcFZicVJHd2VC?=
 =?utf-8?B?T0RqR2VKVkZyS1RkaGxjVzdkRHZzUGx0Y3F4cGkxR2MrNno3OXNyWnNDL3Vr?=
 =?utf-8?B?NnVzVlMrMmlhbWZ3RVl6RGVMZDBrNHI4b3FaQmhVVkZ5M2lrcWFGM0l5WnU4?=
 =?utf-8?B?VlZaUnR0eEtYaFdrNmlCTVVHNnNTZnBLcVQrdG5ITTgzU29SeHlUb1hIN1cy?=
 =?utf-8?B?QThsaWN5b0hmalIxczBZVXpXUlNpekJZbSt6d080TVM3L2FDclNsSVZmWEw3?=
 =?utf-8?B?ckUxT3huNVI4ZUh6dGZLaGVscDVmOWZHRGN2UE8yUjYyZjRvbU05K3dnUjI4?=
 =?utf-8?B?RzBibnM2KzV1bEZaekgySE5iOWQyYzRneWpmWGdvUjlkUWNKMHFJc0p3WUQ3?=
 =?utf-8?B?MmNMM2oybGhFTnlWSVpwM0pzU3lNY2V5bkhobk4wY05qMWtUUUtTZkdlNWJt?=
 =?utf-8?B?MHFXUnR6dzdEZGxHb1Nyb0FQcW5lbTU0Z3FObkR1Mzl1aWxrYlRuREp6NDlT?=
 =?utf-8?B?aTlVT2FWcDBGOHZZQ2FacDNFWHovTlJFVmRIMmcyUDNpUTlDZEdpbWM5Zk5q?=
 =?utf-8?B?QnFxRkRMb1hRTGdyRVpoNkN6K3JCcURIOGlqWmtxWERqM1Z6TVNFYlY2ZUIv?=
 =?utf-8?Q?PJmqB6jJtg3LCFPe4VIVu0dJxJvPpmyU?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZlErTlEwSXZqZjlOTmJIaDMzM2YvNzlyS2lXalhQRFQ1Yis5MXY4bXRGNTdX?=
 =?utf-8?B?eWZHN0k3bW9tYUdOamxPTEpiQjc1SVhDTVhnTFV2Nm0rV0srbTdaeGlWMTRW?=
 =?utf-8?B?ZXIvNW1JY2hOOGE0RGtncGxOYXJvckpPUmZaMjJqV3hJU21ySnQvQzZmcXdn?=
 =?utf-8?B?V1J5cTg3OFRNRGF4YlRZZlU5NkJFVXhSQk9zK1RzbWpVcnptSHUvckYrUHQw?=
 =?utf-8?B?WTB0eVJ6L3dSbHZPcVdseE1jYm1HOWwwOEU2Z2dMY3plSWRsN1I0U0VmdzZ3?=
 =?utf-8?B?V3E1cGd4YktLMzY5bS8zeGorOVJQbXl0ZWttK3BnNHE2bmp3L1Z1RllDS2dP?=
 =?utf-8?B?YklXdVBiMHNSVytXemMwYitGdHJvZGRpbHVDVkZaSzkwQWYvdmQ2ZkY0U3dS?=
 =?utf-8?B?U0VaMGxwRnJFUDFaVjZpL1ZQQXozelVLRk40ang3emtKakphdnJoQ0lTQVRa?=
 =?utf-8?B?WGRtaHpzdHFYaVNCUnUraXp3M1E3YXR4YWs1VEtrcElrd0hmbXd5Vko3bDg4?=
 =?utf-8?B?ckYrZVZkSlpaTHRSeFY4MTNGUXlTRFlWMlBpWCtRM2hXZ3pZb2xNa1dnMFhv?=
 =?utf-8?B?VmZtVUxHdmR5Q0RPMTdnU2oveGt1UzlpUjFOWWtLZ0FSTnBlNjNKL1VrdDRD?=
 =?utf-8?B?bHZGajh1dStid0FueHduM1NjMEhQb3ZsWHhkWWZwZHlTL0Nyd1RzTjhqSWNI?=
 =?utf-8?B?cGFSc1Y4RThQcXQ3MUlUMjFFZm5qY0o3b2p3Q0NoZEhTVlpycXIvYW1vdFE3?=
 =?utf-8?B?NE92UXl6MTU3NEJqSTFHUXRRWUFFV2Rycm1la3MzK2diOFd0K1RmWThhaFRX?=
 =?utf-8?B?cFZvTUJiVHJUbkdEUHpTc21ZTThiemowKys5ZkZkbHF4NVhYR2tnK25hRmF0?=
 =?utf-8?B?RHhwa0habS84eEVjV2FjeGRHRVRFZU8rdEorb2QrYldZLzlONysydGpBOEpD?=
 =?utf-8?B?anZjUFozbEh0WnptQ2lUQWRuNS9xMktHM1gzWDRIRG5md0RZa0plbVNKekFz?=
 =?utf-8?B?NHdvVCs0Nk5NN2pvaVNNNDNDREg1ZlorSXRydzlXdTZWb09XTmxNSFNGaitM?=
 =?utf-8?B?NTgvanNHM3Y1OXNzSXFiN2pOeWgxZ0pHL1NHZEU1bERkOStFVnJ6c2oyWDF4?=
 =?utf-8?B?SWwwbFBKUk4zM0pBc1lsSWRYNUU4ZWo2ZHdIbGp0V0JkWjZBNHZtZGVwcHk0?=
 =?utf-8?B?K0RxSS9lUE02bzd0K1hxM3lOSzlGYytBZHQ5WjNOclZGTUVSa0UzbUtTV0lt?=
 =?utf-8?B?MTU3QTlvWjNMMStYUlcyNXFFU0Z6RW1CbVo2cWlQcmVwNUY5ZkxYTys3cUdm?=
 =?utf-8?B?TFdjanFGemJJSitzRHRZbllmWWJWM3RGM0hRUkNCek9iUjlDTld2cE1iZEIy?=
 =?utf-8?B?dWREZ2FFdTlWaDB4eExwRGsxMncvaFlUdG5jdUdBYTQrZFZhakVMaXNYY0VK?=
 =?utf-8?B?c3hyY2hWVlhsL3JNSWkvYVJjZFlZZHFtelZsRkY4NDRnNC9vN0FHNnE2aW1D?=
 =?utf-8?B?QzQ1M1QyL1RLSFl0MC9QZC9jYVpOUXBWNXUxYzZweEUybi9zZGdWQVJMUDlR?=
 =?utf-8?B?NFY5Y2xhK2JYTG5zWFNzcE9KSGZ4V0NGTUdkVHU1TGJMbERKTnhpTWhIOVoy?=
 =?utf-8?B?OWdIa2x2QkQzdTEwYnRnY2lIY2xsci9LQ1pIOHlpTGJFTjlvdUhnUkVubUJM?=
 =?utf-8?B?YlJQVUFrTWNPdGh1QW81QTZ1R1R0dEpleWFXVHlKbzVaUGZSWHZxeWlSSnk5?=
 =?utf-8?B?UmxLUGJEVGxWalFQVlgvdkpEbDBNOFZZSThuMzNWaG1NeU50Q2loMkc5Um9x?=
 =?utf-8?B?R2dhSlNxeHhhNjhpakxoUmVTRUlKK2tJOWRJTGNNeUwzZWs2blNBdXQxdXpQ?=
 =?utf-8?B?UUVZVDZMNTNldCtwczFZWTBmZmZHalVsc0pTZVUxck9lZU1kSzUrb2k4Sndu?=
 =?utf-8?B?Yzc1TFdaTGlhMmRxcGV2N1hwaktpanlvQkE0M1ZOcjJkbk0rNzVhZEo1ZHFr?=
 =?utf-8?B?Qm1DSmNXUGlFdWNHd0JiSm1iNTZHT29ndVgySUwxTWhlM2JmNFJYZytqN1p2?=
 =?utf-8?B?bDNhb1NicmtpamZuZFptM0FNT1E4WTM0THBobHdOWkwzU2NrR2E0Z3JxYlVt?=
 =?utf-8?B?V3pMOFFuanJlZG1JNFBSeFZBbWJPRzc1OHU3dXhKc2E5NmlMdC9NV3hsV05R?=
 =?utf-8?B?ZVE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 609818c9-60a6-47bf-89ce-08de33fa5065
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 12:32:26.5652
 (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: PB+uV75SWdZcPQ5AgNVZj0OcjyRAq2E+BS0u40mUIQlHZCnAMr1TblfTXvHIL67tLuwuU72CwWuhVRrKBkvpUTOw3+OmwzwFom188nwWD6I=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR03MB7155

On 05/12/2025 11:49 am, Michal Orzel wrote:
> Inside do_xen_version, there are two other places using local variables
> named "params". Rename hypfs dir "params" to "params_dir". This resolves
> MISRA C R5.3 violation.
>
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>

Equally, the two things called params could be shorted to p, but
"params" is a common general name so this approach is probably better.

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 12:33:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 12:33:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178922.1502583 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRV0J-00068M-Pu; Fri, 05 Dec 2025 12:33:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178922.1502583; Fri, 05 Dec 2025 12:33:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRV0J-00068F-NI; Fri, 05 Dec 2025 12:33:43 +0000
Received: by outflank-mailman (input) for mailman id 1178922;
 Fri, 05 Dec 2025 12:33:42 +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
 <SRS0=K96r=6L=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vRV0I-000687-Ti
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 12:33:42 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a0411cd7-d1d6-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 13:33:40 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SN7PR03MB7155.namprd03.prod.outlook.com (2603:10b6:806:359::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.11; Fri, 5 Dec
 2025 12:33:37 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.009; Fri, 5 Dec 2025
 12:33:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a0411cd7-d1d6-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=N1gdWVkr7y03L5m0zbdAEIvwSmR8uM0tl0V3RGJ5h3pZrtMAk5mCIfMXbgxqyntckySboZO4nHgQAKFUBHTuN8zbi5DJfGcM05OW0Zk1heBTNY0WY4Hk+WsR7vh+vKmlwuQofkU//s2amlRucj33C+SZfrVJM3SgUyDAuq52KzgKo6/QHXKUFX36PZ+IFJ5ouW7T/T2lohxFNptFBfwsunXOIUOtxDlF53HspEhcGFr/wZi/3GgQnDo+QdqCiOfGIA6h4jajO64k64YluutjwkOnCgqNXOGFQv3DBtkYrbTrQ2wXa66TNcE32BVf1OKrE9Yg1394LKm/lFnYly1OBQ==
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=A3SIHF7hkLn08NTe2Npjo74PY4waU3gsUQ9r2fAufkI=;
 b=iagZakRl6FqZoJSESW7kW/mmsDppwh0H6xJOkG9ki6lcF2YuRPVoNipwWh7PqA3yW0TI0kJ48VxrC33qvzFlpa5If3hYDQuvHtksftSYD7ZZ69YPiZwn3Du71F0zpH2B9yf+w9UDpWZTwVg/OqZ3JVwJ03t3t3l37rc3ETU/ktpj5ukSPf6UVZl9NYwIFIE4nFj76ca0jqaiEDZMe8Z70x9dt48MLjoEefwuFd16DuQK6M0x6Kil/eT4SUBRMB72250RTg95L9TocTMOLidATkXNEUw6RLoNh3rlv3pftjuZt8LfyPl+LfR8IFxNOoG0qc4i/pM2F6EYgU+pepsalA==
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=A3SIHF7hkLn08NTe2Npjo74PY4waU3gsUQ9r2fAufkI=;
 b=KYkq+bO5DYuMwqh/UwKtjr23boe85cabT0mHDw5xRNINsfQ38ufpFpiCTJR0/uUxXZMwaf00r+VfTlB44qhd1HM7x54w/Egp0/4IbwmU+Bsu20mIOxcgbAyEyJflePVzQc/5WJGqpgwSq/ArQgpqCIGkGSJ1Iihxnxwascyw1Yo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <50ff35c6-5da2-4c6f-94b2-025440ee618f@citrix.com>
Date: Fri, 5 Dec 2025 12:33:32 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [PATCH v9 10/10] x86emul: support AVX512-BMM
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
 <732d56d9-d200-410e-8b52-48c5e25bcf5c@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <732d56d9-d200-410e-8b52-48c5e25bcf5c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0273.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:195::8) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SN7PR03MB7155:EE_
X-MS-Office365-Filtering-Correlation-Id: f18b5471-bef8-42a3-77ef-08de33fa8220
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZG5ickFmc3pNNHRCUVFGTG11eE1rMklHZS9VUVd0dnVRdy9WamprdWVZcVZJ?=
 =?utf-8?B?dzlPdEllbUpBdGhoMEx1MEZsSjJUMFRqUzFwUzJKU0l2Y0RNNVRyaWdhaWpH?=
 =?utf-8?B?dnRhYkZIWEFuRFFyd2MvQjFFVnJCOVhhTE1IYjBWTzRBbHN0VnRaOXZ2R3hR?=
 =?utf-8?B?a1Q0ZTRESURlYzZReU15eE9qRDVSUXlRMnAyWEVFRVNhbTAxMUJVSm9zRVlG?=
 =?utf-8?B?NFEyRi8rVy9WT3JNZXh6bExxdFM5TEM0M3ZwMS9lTnRpVHBSUkdQVFBsM0dY?=
 =?utf-8?B?UFU1N0I2ejkzODJJVnpJcG5SSS9ZU1NmQlR5S0J0VFdVN01vK3BOeFIyR2Vn?=
 =?utf-8?B?VmEyc3hZTmNzb2VlOUpEMWQ4dXhrT0VsS1BRcXVkTGh2YWJudDA2ejlFRmVV?=
 =?utf-8?B?bWI0MHJqVlliT2h4b1hwTmt4YkVuR2wxUTBZeS8vZFdsVUltOVdqMkRKMG9x?=
 =?utf-8?B?VXdHMUR3bGVZaFBBSlpHWnJDeVBqdU8wa0ZKSjREenVON0l3bGx6OUdsRTVH?=
 =?utf-8?B?bG85Y2dETnV1YnNOSnk5dzJISThiY3czM0R3Nmh1WERVUWJFbndQYUYvNU9v?=
 =?utf-8?B?ZEorZENUS1FKTXFKMVkvWGhTUXNEWXBZMjVSZStabEI2Z1lCYkFBcW1SdHFu?=
 =?utf-8?B?c1ZKZ09RenN4SjVLRUgwQXAzVFkzcUhBc2syQ3o4bHV1VjkwTTM3T1BzTi9j?=
 =?utf-8?B?aXBiOGY0ZldnRDRwT1NYWWxPRVIyaWUyTm12NHlnZVVBOEpxMFBQV05UMFdE?=
 =?utf-8?B?OG5YaGJrRTIxZjZmWnZlZzZkQ1BUbURxaDR4T3JtTzFGZnZaUHgva1pkTTA0?=
 =?utf-8?B?ZXo4WiswZkJFaG41My9oZEhYZlVRR2I5WCt2UU5BYlRiL0RaeERiak4yUUpJ?=
 =?utf-8?B?aGlvdC9xNW9yVUE2VDF4dVJCYWtjV05jbzVxaXZkZFBiMGFtQ21XSERIekhx?=
 =?utf-8?B?aW52NjRCSmFORWN4VkFCMThtcDBtdjdOWDBqRFlCcG40cHRqcUgwSEJUS0Y4?=
 =?utf-8?B?aEEvRmFtTEF3Q2s0VEhiVXJNUnRrUTlyT0VGVllWdzRMRnhwRHllYUtDV2pk?=
 =?utf-8?B?djU4ZHk1YStNbS9qV21vRkRlK3IyMW1weTBtdVFVSDFtSVJPY3JLYUdDbHRY?=
 =?utf-8?B?bWhsTUFBa004KzhZQVpBcDRESDJJeG9lZldObVg2V0E5bHNNNVFDV2pxUkQr?=
 =?utf-8?B?Y2RwY21XS2Y0elRuUkliVldSbFpUTkRubnVjYWhtRnBwUzdNbGJ4SVI1Vnoy?=
 =?utf-8?B?NGFMQmxOdzZ5bkhrT0RrWWcxNmtmcUpRUzdSUE5QbTgySHNLRDEybjJrSm1j?=
 =?utf-8?B?SG95ZWtLNWMxTTkxMU5WbHIzVkRxSi9vYzZadnNoaDROMmhQNGlhTWZTMnJy?=
 =?utf-8?B?YjQ1UGszU1RiNVA4Zi8ySTRVM3lxb2NpL0tlaUg4bTE4eVAvN092WW9hNXNT?=
 =?utf-8?B?emN5ZzVVNkRsUzVSK1pRUVA1SkpYRVRweXFzeW9vUWx5dkZDOFB6bUlJQjha?=
 =?utf-8?B?VkNNUUlGUk1DTUticU1GRHFCa0U1QnRUb1dJM1pMd096bkQ0NXZDOG85cWhE?=
 =?utf-8?B?dlQraXNyaTMyNnZJczVPWXBLZzc3VEI4Qyt5b3RwZlVaQnlwWTJtSFp2aXdu?=
 =?utf-8?B?YzZuSmRiVWVzRnNHMUl1YnpBV3hlekppMCtPTTlZc09pUEdUa0huV3R1QSs3?=
 =?utf-8?B?WE1LNlZ3RUkrdklWY3VRUEtNeHZPL1N3MlFaTnFUUG8wTGUrSzFwRitRMi9V?=
 =?utf-8?B?dFZZTnhmR0tuemg3YU5CSHFmRmQvSURHN1p1ajBnMUwrS0NETjl6aWE3UzZi?=
 =?utf-8?B?K05nRUx5b3d2OUljLzdWSzBickd2Z3RDdXFqQ1JPaHl5NFZJSDNUdlNiTklL?=
 =?utf-8?B?UnFUdDFncmNRekhseTdyNm9PRnBzRzFKTnd3OFJNeWhRVjNLRjIyRW4zTEFI?=
 =?utf-8?Q?qwqiF24Qa9FcK0L0xVmRUfYjAKUS9ytD?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZkZqQU5KTWppUFliVytveW1mWkdHMWhUZzJWZVFyOHBSRXg5ZmRiYVV6L0tv?=
 =?utf-8?B?T1hFT3ZZK0dUOUcvZCtaSzM5akM1azl5ODdUdC83VlN0TmJuNVJJcTdHeURZ?=
 =?utf-8?B?NDFubTE2NDFldnhOSlBGNGR6Ny9uUDFab1RKaHRId243ZWZHRzV5VjRneUJ4?=
 =?utf-8?B?YlpwblpXSUlFUHVoNlhiQzhGWlBkTzhZSkRNZE5rbkhKZ29rVFprZjhTWjlM?=
 =?utf-8?B?QXh5VmpqKytrOHczWlZjckRuQXpqR0M1N1JRUmpwZ0ZNUm44MkU3L2VMejdj?=
 =?utf-8?B?ajZ2Z3pIMEZGNlQ1R1E3c2UzSGpYWmJzUXgxMjg3ckF3dHkvM0kxZmlkemY2?=
 =?utf-8?B?bURkaVdZZGlPblgzRStvT3o1K1VRWE9CNHRPWU9UaEhZSUNlT1VjSUdBelMv?=
 =?utf-8?B?Sm56OVpxU0dzS1JJMHQweXJqelAyMXpHbU5qZE5SSDVhWHJreCtpUmNRZStS?=
 =?utf-8?B?cUdXVjRuMDAvVVYwenZYdG5sdURzYVRjWnhvclpiMEpuWGNidi8rMURnblUw?=
 =?utf-8?B?cDNIeFZheWMwWTRMbW9KbHMyVUh5eUtFUjEvaGtRYjFmbFh5L3RHdTY4OGRk?=
 =?utf-8?B?WjVLcFlDQ2tBYm9BSkdjUC94UG5pUTJyaFlNMW41amJMNitJT0s3VUJ4b3M1?=
 =?utf-8?B?anFiS1Z2WlAxendrdk0yWXZ5MnVxUGFoUlZqUld3Uk9FNXZLRjZLVFlpMHUz?=
 =?utf-8?B?Y2VzSzh2SWxsMzRNQ3YvV1Z1TDRITlBkb295MW96QjBlaTc5TXpGNmkwM1BO?=
 =?utf-8?B?WmY3cXJEMjluWENNa1MwRkRZYUdtTGNGbW4xaG9hZWhXZUF0RU5FcUhkVzJk?=
 =?utf-8?B?dTZ4UU5SVG1JNVNpVjhraFpQa0tnNUYyZDMwWGdvaFBMcFhyRThKWWNxUmxX?=
 =?utf-8?B?eGsyN1c5NHZsbS9yN1FmcS9ZQ1I5S05SOGpkdFptWDlVL2dIUVE5bW90empC?=
 =?utf-8?B?UGxhYmJla1laVTF3MFIzTVVkZjIvMzFydjN2STcvMkxabnV3YmtqSUFJYlRC?=
 =?utf-8?B?azVzb1dVdDVrcmxOWk1qdFVWb21EbTR4dFBOWFo2eUpRT290VnkvY0dUcUhH?=
 =?utf-8?B?UlZpSVhNR3VlUkRzejFTSk8wNlBZRFdoTzBWMy9rRHVib2tRMTZ5RUVFM0Yz?=
 =?utf-8?B?b1h1K3ppdHl5a1V0d2JnMXgrQjFOUCswOE9VRTdnRkFvQXJHdFlYYW1VamZ2?=
 =?utf-8?B?ZXVNa0RtNW53VzBkVFV2KzNpUk9lZFBKODhCczFuZEUvNjVSdkhxWDFDeVpB?=
 =?utf-8?B?RHBLRTl1cG9NcHYxL29ISGNUZlBjcklxQWhsYU9CQUEwMzZ5cmwvdkN2bWdW?=
 =?utf-8?B?VlFIMHdwNHBTbDJ0NTZMRURjRXlrcmkwOHRIM2oyTHMwZGNwSnBBa1F5aW9u?=
 =?utf-8?B?QnJpZXd1eDN0MU1GdkZHcjd2cGJ1dFRzMXVRN0lYV3RIR2lzVGp4Ym9rMlNj?=
 =?utf-8?B?cVBXU1NzUW0yUGFYU1pnb01KV0k3V1dFL1lTZ1RmYTZSNFlSMG0ySjdmRjFW?=
 =?utf-8?B?ZTFnZ1F1MXMvVlBwclFMRlQyamJBTjVYZy81RlNwQmludzBuZThTa0g1aDlI?=
 =?utf-8?B?MHc5OWpWRHlNTUViekhUWXFYSGxsVWtmR2ZYNkswZXlLK1NRcWthdGs0d1Uv?=
 =?utf-8?B?ZVliVHJuWU51aHVKc1djRGJEWTd4cDZERzV4UUJicnB1Q3RESGR1Tjd5bkJw?=
 =?utf-8?B?bG05eGpnZFR1WCtHcGVmMU1DL1B4U0VOWE1CUk0wUngzbkpGUDJrRmlsOUVK?=
 =?utf-8?B?V1E5R3B1Y3duSW1JSzNTQUF0ZVV2SVVGKzdLMWdBVis0OExyQ2hNSzJ4ajkv?=
 =?utf-8?B?UDNNQWdhUG5UdCt5bEZLVEVlQURKaTArbUxHVUhvMnFxUVcrYnY3T2JNRVky?=
 =?utf-8?B?UmJ2NFFQR0NBTllWY05mMHAxSDRUaW9vTjgxYVBvcmRUWXdCeks2SW51MWZY?=
 =?utf-8?B?cExBQVAxRklZelVQMlExSkdDR0dzY3EvMkhuOHRFMzBkRHhBNDJVV01hVEd4?=
 =?utf-8?B?U3RRdVdpeWc3MGNmNXcvOEtIbVVlRWlvQ0dmMVpDRFVoWWZxTEMrU2hYWkFh?=
 =?utf-8?B?TWx3TWhFM1JZY3hkd0RML0FVT2J2ZFcrUm9QL2tzVmZDWVlyUkxhTkhuaUp0?=
 =?utf-8?B?NHNZcEI2djJxU0xobGlyWmdxMjV6T1Rlc2gzbUlJR3FiaUZMUFh1UFFZczk1?=
 =?utf-8?B?RGc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f18b5471-bef8-42a3-77ef-08de33fa8220
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 12:33:37.0809
 (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: Tte1ydCGJgnU9HaQe3jJIUIuvfejfTmRQmEEPcjPKTKZYrvN+m+W54tfyDC4zwBXNCauqn+2siM+podjdYO1thubKvxaUZQ0+rwR7Y8Ep/o=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR03MB7155

On 24/11/2025 3:02 pm, Jan Beulich wrote:
> EVEX.W meaning is unusual for VBMAC{,X}OR16x16x16, but that needs taking
> care of only in the test harness.
>
> Like already proposed in "x86emul: support AVX10.1", use just
> vcpu_must_have(), not host_and_vcpu_must_have().
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> The Disp8Shift settings are guesswork; the binutils submission bogusly(?)
> suggests no scaling at all.
>
> No idea how to test this without having access to capable hardware. AMD,
> to my knowledge, offers no equivalent to Intel's SDE.

I'm not aware of anything equivalent for AMD.

IIRC, the binutils thread says Zen6 for these instructions?  I'm still
trying to get access myself.  No ETA yet.

Very tentatively Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Given that .W is wonky for these instructions, I wouldn't quite so
easily rule out other wonkyness.

Would the test harness pick that up?  Not AFAICT.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 12:40:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 12:40:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178933.1502593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRV6o-0007ib-Dn; Fri, 05 Dec 2025 12:40:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178933.1502593; Fri, 05 Dec 2025 12:40:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRV6o-0007iU-BD; Fri, 05 Dec 2025 12:40:26 +0000
Received: by outflank-mailman (input) for mailman id 1178933;
 Fri, 05 Dec 2025 12:40:25 +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
 <SRS0=K96r=6L=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vRV6n-0007iN-I9
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 12:40:25 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 90fab611-d1d7-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 13:40:24 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BN9PR03MB6091.namprd03.prod.outlook.com (2603:10b6:408:11c::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.12; Fri, 5 Dec
 2025 12:40:21 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.009; Fri, 5 Dec 2025
 12:40:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 90fab611-d1d7-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XhlRR/Uro2aJyH+mJnZi6wf0H7PEeep6RvL+ql5Tq//DoVyz8REM3IpDD4gmMQSEBnEYp2sMl+38elZwVqdq7JrIb1elyJxo7aehRHCRywLw2ZIdJ5/sMhAXnhbUVWyEemYA4asqbAkn2TmjHl9FfFKs0pvmlST6uTpqA/RtSFPNeCorNjh/PFPXt1porlTvIhDS48UbIWXd2qplozyB6VQiFGcdrCrrqvhuCkGj1t6F1qdkxP0PqKZoiChx53BJNStT7EKq9TXdllI4wB5P1OlNmPzu0gT+3d/TpUumFdlthM0PYlKjfzX9gnfYadaUHyLfR3i3dMHiImpXzUvWGA==
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=LD2jy8ayiJN1jBV+QtytvCPGAIM5I536Ev/ERLvCJeo=;
 b=YcfAQ5zs//UQZI9cH2/oLUgPUztH4yz0aB/RyFNZVevQ8PaarXm75rJtHZv99EcINMI0gNbdOWVRU2KhM5SNIlw0MoCXXDUqL8RAM57nr5R4PIqom91PwZ1n2lE76mQEpgrajbU7sKpALxMNymDM3oDi4E+hM86Tay9nTCNKT048fePWsFpM3L0pqVbsDzZzik8mMYE2WB+pjO3rYpjlbAsCSZ3LdVCeqkBp7ORDayCxNiTMuCEkbKKPeflUH9q2He1sS5scoIdEgPYx5GTpSDvw3Ah05lWbsowoan0yfjbHdObtdNOIBiu/T1m14erawslsM32XMk0qFS6JDy4+dQ==
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=LD2jy8ayiJN1jBV+QtytvCPGAIM5I536Ev/ERLvCJeo=;
 b=UI/8f1GU7pdYS0NpWiEL1fOuJTwGK+LUIYUVCLrHHcqUwhC7F/HkOnfppGVuZLTTiYohVlyORqgo7WFVcUfsuXwXrCtVSYKJfl4EKl2hkflgsDHp+UZvEjLYTriJ3+Ey9pt6frMjM42hGqNvEKkJ8vMPkgl0mukziv8bYVEN8so=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <846afe9d-458f-4ec8-a58e-faf0617707df@citrix.com>
Date: Fri, 5 Dec 2025 12:40:16 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [PATCH v9 09/10] x86: use / "support" UDB
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
 <78b7c8a0-16ae-49c3-8c7b-5b10f5b0d688@suse.com>
 <e2ce221b-f852-4f9a-8a82-322e6f2af522@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <e2ce221b-f852-4f9a-8a82-322e6f2af522@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO6P123CA0010.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:338::14) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BN9PR03MB6091:EE_
X-MS-Office365-Filtering-Correlation-Id: 62ab4a61-39c5-426a-5a9f-08de33fb7399
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?V3pvZmpyRm83R2hNQmFzUzcrOGZDYkxiNkhlYk41ME8vVXRvK2prbk16bVIz?=
 =?utf-8?B?aTNpTk9ha2NWUFNONmY0SWlMSlNaZklXeHBjZkk2a3pVdHNzZ05KN3N2Qlls?=
 =?utf-8?B?dm1ZelVZNGNUM29uWUREK1ZodC9SWU1PSThnMG1paVhLQS9iekwxSTcyNHpv?=
 =?utf-8?B?ZVNISXJlN2tycEFGdUczQmhtZk1LU2IzWTZqejB3ZHZUZ0k4VmYwZE12ckVP?=
 =?utf-8?B?MFJIN3cyblRucjVZRkJMNzI3WXgrenB3YlpXcXNxTTV1R1NBd3ZmRVhXSVlm?=
 =?utf-8?B?ODNVWVNPWjVCM1dpdGRmRmtsVndibHZ6QmZFdVZvYVhYelRIQnlleTl4aVhu?=
 =?utf-8?B?MzFEWFExT3l3N3BxdVBHY3dvTDNORW5sL1NSeTk1Q3pkbmpXb2Y1RGxnMllB?=
 =?utf-8?B?SjVzQ0R3L05GZFEwQ1FYSUFtamk5UXYvY1A2cVNqK1ZVRHJJbFR3Ymt2Zlh1?=
 =?utf-8?B?ZVlhRTFOazZnOVFJWll5bDhZd1Z4SkM2ckt3QWpjdTYxNVV1S1JOKzJOZExQ?=
 =?utf-8?B?NTFsU3kxWkRtRmMvTUFCV2wvNGhLU24yODhFRkFpZVUzY3BjZnY4ZzVjYU9v?=
 =?utf-8?B?bFJCRTVXdk1EZnUwVllZbTdlN1dFMXhJcDlaRGpQU0tkYmpJWVlmMWFSNHFm?=
 =?utf-8?B?U0pZTTRnN0VTdUk1VlNzSFRLS05xMXQ0M2huV2FsWVFsMTYycGtocnJjc3V3?=
 =?utf-8?B?ZVZuQWEyUTdFbFZDU1BwTW5tNzIxQWV2OStXNXZBb2xjcWNJLytOazlWY1I3?=
 =?utf-8?B?cE5lOThIazRjcU93aXJlN2k1SnFPQjNNUmw5TGpieVJwYzFlV2JUUThqcVRN?=
 =?utf-8?B?WmhrbEFJQ0w1WjgvK3BhMXVoR0hvMUxHOWlDcWxGejNQVEIyTG5FeEoxbXV4?=
 =?utf-8?B?b241dUsra21KRi9qZUpPYTI5cE9wVHBhM01OeVZHZ3dJYUwyUGlNNmZMVjRo?=
 =?utf-8?B?WnhhZlFNeENVU0l3eXhpU1NQZml2YmFVK3ZwR2s5UlFBVFBOK0FwQm9GK2Q1?=
 =?utf-8?B?TXAyREs4eUFWM2NiUGREb0tSdUQ0MU04eE42T2x6emtxWTAzTjNjaWlNdnpo?=
 =?utf-8?B?ZWtuWDhETWFEcUs4VzF3cUNrTVZsT3o0WG5VOCtLZTRLUnhLM0pYZGRJQ1pa?=
 =?utf-8?B?V1doUFNpcUFKckp0SVhORG9RZDRDUU9WWWdvZ1g2OTBkMXpNTmJqNGc0SURp?=
 =?utf-8?B?ZWN1UVE3Ri9uV1NlMzl1QVE0NE80VHFpQTZqVml3RWV5WGh5MlBZaWZIakFM?=
 =?utf-8?B?S1A5cE56STJNa01UUGtSSDFRR1RKYjNoTlpkVkdvaVBKQXMvVkNoQ0RjZUtF?=
 =?utf-8?B?MGxVTlJmcVRUV3JubFNHOXZFNkhodUY3TVd1OVdHL2ZheklBYWEzOHlkU3R0?=
 =?utf-8?B?eGdhbUJHNExUalNFTFJ0TEREMGlXa0NKZlVJNlBWY3FmSGNnRldCdThJMFgw?=
 =?utf-8?B?QVdGMXg0MEFHNE9wTkNyK1h2UldFbDhRSmw4THNONHA5VU5NTnl6c3FaamZD?=
 =?utf-8?B?Q0ZkRjFBVHpqNVlKc0pNZlJnUEtFNk9UTUl2d3gvS2FvdjhHNXR2a0VMbzlL?=
 =?utf-8?B?dkhCSWdXL0p5d0FCUC9sZ3VVREw3aEVlWUFUUmNrMVd0Zjk5dU5VWXhhQ28z?=
 =?utf-8?B?QklFNXNJVlkrYnRwK215UlpKa0NPMnorSU5OL3diaHo4U1R6dEQ3WENyOHls?=
 =?utf-8?B?dXBHUEJzand2VlBhYitGL3ROdzlyLzJFNVNEaHB4cHQzRFAxTU1ENjBtYjJa?=
 =?utf-8?B?UlJmNmttVEo0ZmV4TUh4QnBPa3JPUXhTWWZIUnhDSitwOWlMd2lleVhqK2VU?=
 =?utf-8?B?Q0N2WWYzUFNUdlJlc1dyaDI3YklWNUZwVnQ1NzRYUFp0REFhbDRlNjhlK2xs?=
 =?utf-8?B?Q011ZWIrOUhEa0FUMm5qOFZjTi9STGlMakIxU1dDajRkeUV4QThtVGtNVUZR?=
 =?utf-8?Q?mRVMvJWcCoWM3UerYAEZrp6Lxj4ll7ci?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MDdDbEVBYThwNjNzeVRGTnh6RytjVW9LeTRKbzR5emgxODg1NjQ1L0hVY09x?=
 =?utf-8?B?Mno1eGYvYUhxYnErTmdBdDJ0OHYzcWl3V0tFWW9iaHY1R3VYOEV2OU1yVXpm?=
 =?utf-8?B?NVRKU3VWbGZ1bEtEbUIzak5oN3hBL0MwdTZkb01QU2tLd0gzRWxCOFRMbXh4?=
 =?utf-8?B?c2g0dFNQZmlsUExTSVdPd0RnMlZtdy9sMEROOXk1dU54M1dYL1hhT09aZi9s?=
 =?utf-8?B?eEgvVng3cFZ6N2NmS3JUSm5yaGdXWS9RWWlydzArWm84dE1IRWRTVWJQVXgw?=
 =?utf-8?B?WlBoRDFLM1BTYjZwbHZiM3NtT2wwR0NjQXEwNG1UdnF6L3lXb3REc05EczhP?=
 =?utf-8?B?U0dreVlMOFdYUjVHdzVHTHRwZnlybHhXVGlZZ0YreXhRUCtKRjhialpjeUor?=
 =?utf-8?B?d2VIN3F1UHhrN0lIa1pJMDhvcHFqREt6TVJQdjZkWTdOTXJUZlpSUHk1REdo?=
 =?utf-8?B?NFQ2U2IrSEJrWTFUbmFSVmNDQ1BNQk0rYXNUMjBTOGUrdlB6bkxqb3Y5SGha?=
 =?utf-8?B?cmhzS3lZYXQvNGNjUkRibVdiZmRLWGVVamx6Zktha1d5TTM1YU5Lbmlodk4x?=
 =?utf-8?B?Zng1eWphblUxd1RieUR6NllIOVVOTGlmNWoyeDkzNW9CRDdLUGZ0bG9qell0?=
 =?utf-8?B?Mm1PWDhnc283S3N5c2JweU5lWGpHQThPMTdJd2tGenlIQ2phS29QVzdOWW0z?=
 =?utf-8?B?MDJZdm55dEJzellrNE52Unc0V2hLWVAwQWtFSFA1cFlXOE9DMk5XeTY5NXAr?=
 =?utf-8?B?VHMxOXo2Q3dzNitlTVA4VGdrNTFBQkZZQ3VKTndhWGdEOEtrRVlDMzhoaGFq?=
 =?utf-8?B?cUgyMlllQiszRG5Wc29Rd0piUFdDSGF6aWtoNDhIb29ZM1NFc3FJZm4wN09h?=
 =?utf-8?B?WjBrQnB6ellKa2RoSGUwM1dQQUp4Q2tPeHVWemt1dFo1VjRyeFJKbStpc3ZN?=
 =?utf-8?B?a0w1ZFQ0MTg0L1UrQXFvK2xocHFNYWZ5RTlaV3pNM21Ta2QvWkdoV3JzMkhN?=
 =?utf-8?B?RlJZNzBIeDB3ZEVlSkJnZG9uM0VwdHBaL3huNk1HaTNNYUtjSy9UOGQzR2tL?=
 =?utf-8?B?K1YxU1VENnM4RnNTK3hkeVh1UUMwTXZrcFdxM3BvVG9TazlRSEF5alVqVzNI?=
 =?utf-8?B?WGlYNmUyQlVCaWVwNXJUY0dHWlYwY1R3RmRaS0tBWXhxeFlaSldqY3lVUGNO?=
 =?utf-8?B?MnF1VEZvZTk0cUFUU1IwblBKSzhlNHRtZTR4TDF4cUd6aWoxN0swd25KcFVV?=
 =?utf-8?B?c0UvRzNRVWhxZFpvQmFoaWZLaWN2dnhXQ0NjWlBJMHorY21GZUl2QzJ0M1Yv?=
 =?utf-8?B?TXZyVUV4aThSYWxsajIyelZsbHp3Znc2aVBqL3AwS0tNU01oWXdkU2tWOVhz?=
 =?utf-8?B?b3UrQ0dvcmRaWWVJZ0l1T2xENnh0bHk5RzdVeEpjUDRVeGpPMVZyOStZekdF?=
 =?utf-8?B?Mzk2QmgyWkZkNTkyVWRESGtQKzRDYlFqVXBTMHltL29tUWZxS1RKbUtwNnNw?=
 =?utf-8?B?RlYxalV1MDdOY2d3b0N2YXBQUWw0enBHZENHNEJFVFc5bHRWa3BocnRTaUZ1?=
 =?utf-8?B?KzB6b3UvUW5mVzl3Vi90VXNLYW9TUklqWGc5R0xkdDd6UmR0VHRJUk9jVHVP?=
 =?utf-8?B?aEZITzhRdEM1NUR3V1MrWmFIT0NyNUI0NGNCeTR3cVllUkdmMEpOWm1HYVha?=
 =?utf-8?B?L1Vyc3dXdENER1BaMDZsSWFGbVlPQUpvN2xKWGw3YW5OSEZaODFmMHpZN0w4?=
 =?utf-8?B?RDY5ZndjYlZMMzJDZ2JvUk03czR2SXZvV0g3dDVMcHRPTXRna2Q1MVA4eHdK?=
 =?utf-8?B?YXV2SXJ6WlkxT0lOYzdvS2hkSWFtL3BLbVhNQnJ5bGEybHRvbm1uUlpyZjho?=
 =?utf-8?B?OUNPdzVBU0NINW5peGV4UzdpaWVOYmxKVlozNDZDZVZLaFdabjRjNHVHa2Mz?=
 =?utf-8?B?a2RGRTM5K3NDK1VMVGdndWQwSlpOMXdwcnYwRGd4TFNMQS85Skp4ZjEyaVNM?=
 =?utf-8?B?RVVrbCtmMTdNaTNmQSt3NWcva0JFTW4rL2Z6RjV1RGc5b0lmUEF4bDBscGtG?=
 =?utf-8?B?LzN6VGErTWQ2blpDY1p0d1lEMlR1b2I1bjZMbElmYUVYMjhwUG0yd1RuY1JD?=
 =?utf-8?B?ekFGVFVYWEJWYUVZTHdGZllBK0s4ZzEwQ015MytRb04rZTF6b3dlbFpFMGpo?=
 =?utf-8?B?Q0E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 62ab4a61-39c5-426a-5a9f-08de33fb7399
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 12:40:20.4638
 (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: HtGYEaI2Nsy9mQATigoBuUZDAeE/GDKyY9lU+7wcS2IOwh2rVyUaTuFksoEhG07xRh7y+c6KKMZe1xHOcX8Rz2gwAozUKUBnPKvLgoqRN3Q=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR03MB6091

On 05/12/2025 12:01 pm, Andrew Cooper wrote:
> On 24/11/2025 3:01 pm, Jan Beulich wrote:
>> --- a/xen/arch/x86/include/asm/bug.h
>> +++ b/xen/arch/x86/include/asm/bug.h
>> @@ -21,7 +21,7 @@
>>  
>>  #ifndef __ASSEMBLY__
>>  
>> -#define BUG_INSTR       "ud2"
>> +#define BUG_INSTR       ".byte 0xd6" /* UDB */
>>  #define BUG_ASM_CONST   "c"
>>  
>>  #else  /* !__ASSEMBLY__ */
>> @@ -37,7 +37,7 @@
>>          .error "Invalid BUGFRAME index"
>>      .endif
>>  
>> -    .L\@ud: ud2a
>> +    .L\@ud: .byte 0xd6 /* UDB */

P.S. Presumably binutils is going to learn a udb mnemonic at some
point?  Can we include a version number in the comment?

I'm trying to organise such comments everywhere so it's less effort to
figure out when we can drop it in the future.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 12:41:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 12:41:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178945.1502603 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRV7t-0008KS-PC; Fri, 05 Dec 2025 12:41:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178945.1502603; Fri, 05 Dec 2025 12:41:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRV7t-0008KL-MK; Fri, 05 Dec 2025 12:41:33 +0000
Received: by outflank-mailman (input) for mailman id 1178945;
 Fri, 05 Dec 2025 12:41:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mBPq=6L=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vRV7s-0008B4-6j
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 12:41:32 +0000
Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com
 [2a00:1450:4864:20::22b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b73ff35d-d1d7-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 13:41:27 +0100 (CET)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-37e6dd536b0so17801541fa.2
 for <xen-devel@lists.xenproject.org>; Fri, 05 Dec 2025 04:41:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b73ff35d-d1d7-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764938487; x=1765543287; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eg3mUdjubCD9KqI/PnMq8qlB/qnh2Kq0Xx8tYirFTQc=;
        b=O8/Ny6BpjlKU5MprIv12P7PDEfkftp8V9xA9cYjz9040NlekidkpPWL9ZsPksoWBJN
         Mibe4igrpihSFH6ND0BltmgDT1RgNBzeDZXur/dzD86SdT8tv7fB1DC/X668BHbQynyP
         ZrHdwRsqJKVgPRmoHLOeCjM+6vzDpOzklsoxA4yQFXaelxKj5G7a+BFPZQvXryvAD/eZ
         T8y22Y9VgXg/gptDMFEqXaMOyWsuZQ6P+Pn9FUbNhqGSw/Rnqh74D9/6/wv33QX9/Y2k
         aHZnOCD7TS1wqyZCmkCdQv5uEIQnDbttnFv26F4VP3+1T0KAP2NVOYkQmLcGrdg0rS/z
         5O0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764938487; x=1765543287;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=eg3mUdjubCD9KqI/PnMq8qlB/qnh2Kq0Xx8tYirFTQc=;
        b=qGo9PVcKxsqZG/5iPIP6qLZXNERa72eZs9hMt0c8W3YLFJfTMgzOWR+Go79V8M2OTY
         4woNvKy8SSfkgiAnLjThUG/KtB+gUS/lR+HksoazuxyJSyfdwCms3uodFwNDCPqSNJT5
         ZlP4gZoYvwLys8LZLhtAoKViquGfAdnLVa6irsA1UVz5b0G2PcjJMqZ9zhXaFN10tDlI
         3UKmPz8OvrwkVAVBtPgXvC6pJd1jZwDcnjkn9N1mmqI0y9WjVA9JO/PaKzQ6nipJ33zk
         vZo4IVRF7CXEktEvvnOxY+xA1ave9nrquzz3VNsNtild4dp9OULLHdy2YrUBorWpeKky
         F6nw==
X-Gm-Message-State: AOJu0Yzp3iv8xteuHQUW/wmyroUA09Ewy6A0BObJB+V4IxCvIt5367IQ
	VPisC4h6vIsFODUpVcOlJoui7QTKuzM+Anq8lNTcxPHdNleaBx0Pyqx1XbO+8oiQ3f8rpD3R35D
	EqQPegr7YrO051lLc3mfBzUwTxN9ST/k=
X-Gm-Gg: ASbGncsPN0QU5/yDfqN0Ek8LRSXAmM1fyiuq3kmJv1bgfFAzxOmIEYtFz1Kh15rIrLX
	Nm0kOijs2NtKwX8dvmvT5cqZfPXGuG1rayI0vt4YHcs+PLmLAH0TSIdoJUrgIi2fCXDt1u+gEwQ
	CHorKGaN4LL69pP1OybcSNIf+C4GWQvgH3zGH5blfpPcG8m/hd2wNnpNpj9MYVRIMv3wkDeb6jc
	i85kDcTfDy8BgohJOf2U3lh0Ohw28t5Q5ecwWP1yASEThj08+3YlLFEB2YHPnSM9gBemc9TBkLP
	Jj0J
X-Google-Smtp-Source: AGHT+IHUAObCWiDmke//O6BC1ClLln7Ip/v+v4AjSOGnwPRSDJSLyEfKlH+GPWBOp+vnZgC6VZI5tvBQEh2kP/PaB+k=
X-Received: by 2002:a05:651c:409b:b0:37b:8f05:13bf with SMTP id
 38308e7fff4ca-37e639572ffmr20248741fa.43.1764938486268; Fri, 05 Dec 2025
 04:41:26 -0800 (PST)
MIME-Version: 1.0
References: <b44966513abc729f44795c0d5012e1c5fd106477.1752783296.git.mykola_kvach@epam.com>
 <62173b6a-faef-4919-89ec-5075e4ed3fb9@citrix.com>
In-Reply-To: <62173b6a-faef-4919-89ec-5075e4ed3fb9@citrix.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 5 Dec 2025 14:41:15 +0200
X-Gm-Features: AWmQ_bk-bQi3SItKspwLQEyx3kMbe9qFuKsJVmYXqFJIdK4z2snT6b8TcMp3WPU
Message-ID: <CAGeoDV-PLdhK2JX-c7kVX-Z=OE_uA3HgxDmxOOxbcGpnyRr4KA@mail.gmail.com>
Subject: Re: [REGRESSION] Re: [PATCH v2] systemd: Add hooks to stop/start
 xen-watchdog on suspend/resume
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Andrew,

On Fri, Dec 5, 2025 at 1:48=E2=80=AFAM Andrew Cooper <andrew.cooper3@citrix=
.com> wrote:
>
> On 17/07/2025 9:16 pm, Mykola Kvach wrote:
> > diff --git a/m4/systemd.m4 b/m4/systemd.m4
> > index ab12ea313d..ee684d3391 100644
> > --- a/m4/systemd.m4
> > +++ b/m4/systemd.m4
> > @@ -28,6 +28,12 @@ AC_DEFUN([AX_SYSTEMD_OPTIONS], [
> >               [set directory for systemd modules load files [PREFIX/lib=
/modules-load.d/]]),
> >               [SYSTEMD_MODULES_LOAD=3D"$withval"], [SYSTEMD_MODULES_LOA=
D=3D""])
> >       AC_SUBST(SYSTEMD_MODULES_LOAD)
> > +
> > +     AC_ARG_WITH(systemd-sleep,
> > +             AS_HELP_STRING([--with-systemd-sleep=3DDIR],
> > +             [set directory for systemd sleep script files [PREFIX/lib=
/systemd/system-sleep/]]),
> > +             [SYSTEMD_SLEEP_DIR=3D"$withval"], [SYSTEMD_SLEEP_DIR=3D""=
])
> > +     AC_SUBST(SYSTEMD_SLEEP_DIR)
> >  ])
> >
> >  AC_DEFUN([AX_ENABLE_SYSTEMD_OPTS], [
> > @@ -69,6 +75,14 @@ AC_DEFUN([AX_CHECK_SYSTEMD_LIBS], [
> >       AS_IF([test "x$SYSTEMD_MODULES_LOAD" =3D x], [
> >           AC_MSG_ERROR([SYSTEMD_MODULES_LOAD is unset])
> >       ], [])
> > +
> > +     AS_IF([test "x$SYSTEMD_SLEEP_DIR" =3D x], [
> > +         SYSTEMD_SLEEP_DIR=3D"\$(prefix)/lib/systemd/system-sleep/"
> > +     ], [])
> > +
> > +     AS_IF([test "x$SYSTEMD_SLEEP_DIR" =3D x], [
> > +         AC_MSG_ERROR([SYSTEMD_SLEEP_DIR is unset])
> > +     ], [])
> >  ])
>
> Marek reports that this breaks the build.
>
> https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10959608099
>
> Specifically, for a build using --enable-systemd (to get the
> initscripts) but without systemd-dev(el) installed.
>
> A while back we went to a lot of effort to stop depending on
> systemd-dev(el).  For the sake of one path, we don't want to bring that
> dependency back.
>
> Can we see about breaking this dependency again please?

Thanks for the report.

The regression came from switching to PKG_CHECK_VAR. We should revert to
the original fallback so we don=E2=80=99t depend on systemd-devel:

    AS_IF([test "x$SYSTEMD_SLEEP_DIR" =3D x], [
        SYSTEMD_SLEEP_DIR=3D"\$(prefix)/lib/systemd/system-sleep/"
    ], [])

I=E2=80=99ll send a patch today to restore this.

>
> ~Andrew

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 12:47:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 12:47:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178957.1502614 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVDY-0000du-B5; Fri, 05 Dec 2025 12:47:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178957.1502614; Fri, 05 Dec 2025 12:47:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVDY-0000dn-84; Fri, 05 Dec 2025 12:47:24 +0000
Received: by outflank-mailman (input) for mailman id 1178957;
 Fri, 05 Dec 2025 12:47:22 +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 <SRS0=7OvG=6L=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vRVDW-0000dh-Ci
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 12:47:22 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8a002826-d1d8-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 13:47:20 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-429ce7e79f8so1364981f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 05 Dec 2025 04:47:20 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d331aeasm8468537f8f.37.2025.12.05.04.47.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 05 Dec 2025 04:47:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a002826-d1d8-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764938840; x=1765543640; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hdJ4TLbnb/qqWqVEKQ6FdlJ3YFJ+xSGg9eF5zyF6zmE=;
        b=VjNpg72XdqaIExzD8EDI0kE1v0P2NoNgb1i2FXmnwd9pxIdwtKI5nVLQI3zNu3G9Xc
         MhFIVL1Ij6bzsxo6qhEkfrLsXDsyUC5E/vMYQhjwYk2WAp2Xnc277GFJ2SiJvM5zhKHd
         4EWk7VzVuF52DTT/uc+ozYkY9yj5x5vetNZw6j3bOebj04XE92aYRH5zpJklhLSZmOrz
         j3DrRWGqCYnzGYaIzNaBMTm/ATu6RQcjeec5fgxKMOTnftGN/WyDuV5Xo22D6mjv3ZpA
         rpVkx0K+w7gPBUIYpcH17z4AlE1aIGdYiDkvxxYi2sJ3ptt06gTZgdkVI+bagS5TKOK5
         0KWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764938840; x=1765543640;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hdJ4TLbnb/qqWqVEKQ6FdlJ3YFJ+xSGg9eF5zyF6zmE=;
        b=TVcu4BRo+1AL5U9tUyZdxPcwrX1+WhlElWIBMrM0sc3ZQDkZKv2BZOywxs1EaEEXF2
         MPHdKZPpApctGPr8/qd30XX29sc7uW80vArqpCjr/v03pVSVeDX5bsDTxToUy8W8UCgi
         A9rpx40DCctSH875jnp6qH9qoiIbOHvTBwsFSUeBCB55Dmg/rDhTODJ2JXp13Bdu5tk4
         hcVZY5mSH7e6g33gfADvI+LmCRMBwTZ+H/R/nW/xbcticdIE7/GF4Yo8AkFl1O2pA79U
         Ein9KBoCAP84ju83jcZ1oCrxVIwj5+RL0PUfFUoue1z1EgUge7lyh2o86gI//UAvTkOR
         Fmpg==
X-Forwarded-Encrypted: i=1; AJvYcCW5ZEMkwlF3ZtBAG5dXtomBbS3Zq6jmTR/LpcRsq27fzbOgkbKQdly5qNb7UK8irQI/PstUSl6IVX8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxCMOnyQKhdHhKgukVsXjciimbqXMxKcwrnXmSm6GdWY44h18NY
	5luWbnjSlxnEh7AtvLckMtam3B6lvrExw4wp+wPKwwwsvzmGYjl6CVb9nhKugZQUFQ==
X-Gm-Gg: ASbGncuU8fH6ALYU5wF80/ir7pdjzIX/QzTQOLznM5MM7u9XmIodIHVcrmXGkC+WmdG
	lqk8Wa2qlzKMXarNxL8KMyT0gUI9JYuYcVA5vtlkr5w47nevsiVTzMLPRMhg8jMpOgT30rO2GvD
	tN0qPe50b6ZzBxJsZjOyaETD47w52kNYIxW0aKjEFfpOHfN+CAIrrIH806BGGe5keyTpHK4wKbI
	vFfjvzawiaYUoMP624ssIcSaFoxpfnfIu6RgfSRWC8uYVBFsMqfQMXKvFuOz/faBEP/wnzt4wZq
	3rJHceqmPgV/feErMQQgT7sXrL0TDsjEuCusqXjn0atJWoEFsm7gSIL1vZiSRibbAPNpKZRYivr
	igkvo2w98N4sCs9/cdJRXilO7dEHGPxsOuztVnMUV/Bjp8BvhEIksxdzoythmwANEwTx1BErf4R
	1/2fGxAKEBJu6/+sJmxPBh6Yajvo81pHfyAlNnd823tk2c34uQ/ePCeO2khP1xSpRIegxVHarJ7
	U8=
X-Google-Smtp-Source: AGHT+IE9N1tpme/tHnO1Lian/+cwIebfBjf6pqzaDOljLBViaKM3z4rj6YEtTXFtIumLEavUxGuw+w==
X-Received: by 2002:a05:6000:310f:b0:42b:32f5:ad18 with SMTP id ffacd0b85a97d-42f7951496amr6857186f8f.9.1764938840103;
        Fri, 05 Dec 2025 04:47:20 -0800 (PST)
Message-ID: <0c481383-1ac8-4a31-8685-def51cdc9005@suse.com>
Date: Fri, 5 Dec 2025 13:47:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 10/10] x86emul: support AVX512-BMM
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
 <732d56d9-d200-410e-8b52-48c5e25bcf5c@suse.com>
 <50ff35c6-5da2-4c6f-94b2-025440ee618f@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <50ff35c6-5da2-4c6f-94b2-025440ee618f@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2025 13:33, Andrew Cooper wrote:
> On 24/11/2025 3:02 pm, Jan Beulich wrote:
>> EVEX.W meaning is unusual for VBMAC{,X}OR16x16x16, but that needs taking
>> care of only in the test harness.
>>
>> Like already proposed in "x86emul: support AVX10.1", use just
>> vcpu_must_have(), not host_and_vcpu_must_have().
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> The Disp8Shift settings are guesswork; the binutils submission bogusly(?)
>> suggests no scaling at all.

I realize I should have dropped this remark: It was applicable only to
early versions of that change.

>> No idea how to test this without having access to capable hardware. AMD,
>> to my knowledge, offers no equivalent to Intel's SDE.
> 
> I'm not aware of anything equivalent for AMD.
> 
> IIRC, the binutils thread says Zen6 for these instructions?  I'm still
> trying to get access myself.  No ETA yet.

Yes, that's what they add for Zen6. I committed that patch just earlier
today.

> Very tentatively Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Thanks. I'll put this into the patch as-is; it's unclear to me though
whether I could legitimately commit the patch with this. (It really
doesn't depend on earlier patches in the series, after all.)

> Given that .W is wonky for these instructions, I wouldn't quite so
> easily rule out other wonkyness.

It's AMD's way of giving .W dual purpose; really triple now.

> Would the test harness pick that up?  Not AFAICT.

Not without adding something to it, which I think makes sense only when
one can test it. (Which is where Intel's SDE helps quite a bit.)

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 12:47:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 12:47:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178958.1502624 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVDg-0000tR-Hq; Fri, 05 Dec 2025 12:47:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178958.1502624; Fri, 05 Dec 2025 12:47:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVDg-0000tH-FC; Fri, 05 Dec 2025 12:47:32 +0000
Received: by outflank-mailman (input) for mailman id 1178958;
 Fri, 05 Dec 2025 12:47:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uphM=6L=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vRVDe-0000sR-Cr
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 12:47:30 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 8bd5c7c0-d1d8-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 13:47:24 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id DD460339;
 Fri,  5 Dec 2025 04:47:15 -0800 (PST)
Received: from [10.44.160.68] (e126510-lin.lund.arm.com [10.44.160.68])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A5F6D3F86F;
 Fri,  5 Dec 2025 04:47:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8bd5c7c0-d1d8-11f0-980a-7dc792cee155
Message-ID: <573881f1-60f7-4eb3-a484-1df4858aa1b4@arm.com>
Date: Fri, 5 Dec 2025 13:47:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 06/12] mm: introduce generic lazy_mmu helpers
To: Anshuman Khandual <anshuman.khandual@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-7-kevin.brodsky@arm.com>
 <e43c147f-bff8-462a-88dc-4345500f4ed7@arm.com>
From: Kevin Brodsky <kevin.brodsky@arm.com>
Content-Language: en-GB
In-Reply-To: <e43c147f-bff8-462a-88dc-4345500f4ed7@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04/12/2025 05:17, Anshuman Khandual wrote:
> On 24/11/25 6:52 PM, Kevin Brodsky wrote:
>> The implementation of the lazy MMU mode is currently entirely
>> arch-specific; core code directly calls arch helpers:
>> arch_{enter,leave}_lazy_mmu_mode().
>>
>> We are about to introduce support for nested lazy MMU sections.
>> As things stand we'd have to duplicate that logic in every arch
>> implementing lazy_mmu - adding to a fair amount of logic
>> already duplicated across lazy_mmu implementations.
>>
>> This patch therefore introduces a new generic layer that calls the
>> existing arch_* helpers. Two pair of calls are introduced:
>>
>> * lazy_mmu_mode_enable() ... lazy_mmu_mode_disable()
>>     This is the standard case where the mode is enabled for a given
>>     block of code by surrounding it with enable() and disable()
>>     calls.
>>
>> * lazy_mmu_mode_pause() ... lazy_mmu_mode_resume()
>>     This is for situations where the mode is temporarily disabled
>>     by first calling pause() and then resume() (e.g. to prevent any
>>     batching from occurring in a critical section).
>>
>> The documentation in <linux/pgtable.h> will be updated in a
>> subsequent patch.
>>> No functional change should be introduced at this stage.
>> The implementation of enable()/resume() and disable()/pause() is
>> currently identical, but nesting support will change that.
>>
>> Most of the call sites have been updated using the following
>> Coccinelle script:
>>
>> @@
>> @@
>> {
>> ...
>> - arch_enter_lazy_mmu_mode();
>> + lazy_mmu_mode_enable();
>> ...
>> - arch_leave_lazy_mmu_mode();
>> + lazy_mmu_mode_disable();
>> ...
>> }
>>
>> @@
>> @@
>> {
>> ...
>> - arch_leave_lazy_mmu_mode();
>> + lazy_mmu_mode_pause();
>> ...
>> - arch_enter_lazy_mmu_mode();
>> + lazy_mmu_mode_resume();
>> ...
>> }
> At this point arch_enter/leave_lazy_mmu_mode() helpers are still
> present on a given platform but now being called from new generic
> helpers lazy_mmu_mode_enable/disable(). Well except x86, there is
> direct call sites for those old helpers.

Indeed, see notes below regarding x86. The direct calls to arch_flush()
are specific to x86 and there shouldn't be a need for a generic abstraction.

- Kevin

> arch/arm64/include/asm/pgtable.h:static inline void arch_enter_lazy_mmu_mode(void)
> arch/arm64/include/asm/pgtable.h:static inline void arch_leave_lazy_mmu_mode(void)
>
> arch/arm64/mm/mmu.c:    lazy_mmu_mode_enable();
> arch/arm64/mm/pageattr.c:       lazy_mmu_mode_enable();
>
> arch/arm64/mm/mmu.c:    lazy_mmu_mode_disable();
> arch/arm64/mm/pageattr.c:       lazy_mmu_mode_disable();
>
>> A couple of notes regarding x86:
>>
>> * Xen is currently the only case where explicit handling is required
>>   for lazy MMU when context-switching. This is purely an
>>   implementation detail and using the generic lazy_mmu_mode_*
>>   functions would cause trouble when nesting support is introduced,
>>   because the generic functions must be called from the current task.
>>   For that reason we still use arch_leave() and arch_enter() there.
>>
>> * x86 calls arch_flush_lazy_mmu_mode() unconditionally in a few
>>   places, but only defines it if PARAVIRT_XXL is selected, and we
>>   are removing the fallback in <linux/pgtable.h>. Add a new fallback
>>   definition to <asm/pgtable.h> to keep things building.
>>
>> [...]


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 12:50:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 12:50:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178982.1502634 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVGv-0002fB-WC; Fri, 05 Dec 2025 12:50:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178982.1502634; Fri, 05 Dec 2025 12:50:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVGv-0002f4-T8; Fri, 05 Dec 2025 12:50:53 +0000
Received: by outflank-mailman (input) for mailman id 1178982;
 Fri, 05 Dec 2025 12:50:52 +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
 <SRS0=uphM=6L=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vRVGu-0002eZ-IP
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 12:50:52 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 073e8880-d1d9-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 13:50:51 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 02DB31063;
 Fri,  5 Dec 2025 04:50:43 -0800 (PST)
Received: from [10.44.160.68] (e126510-lin.lund.arm.com [10.44.160.68])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 02CD63F86F;
 Fri,  5 Dec 2025 04:50:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 073e8880-d1d9-11f0-9d1b-b5c5bf9af7f9
Message-ID: <093f814e-ce49-43c9-951b-b0d0ef583cea@arm.com>
Date: Fri, 5 Dec 2025 13:50:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 08/12] mm: enable lazy_mmu sections to nest
To: "David Hildenbrand (Red Hat)" <david@kernel.org>,
 Anshuman Khandual <anshuman.khandual@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-9-kevin.brodsky@arm.com>
 <2dfd54d7-fe2a-4921-85ff-a581392a777a@arm.com>
 <93d04ef8-0364-4013-8839-ba599d930cb2@kernel.org>
From: Kevin Brodsky <kevin.brodsky@arm.com>
Content-Language: en-GB
In-Reply-To: <93d04ef8-0364-4013-8839-ba599d930cb2@kernel.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04/12/2025 12:52, David Hildenbrand (Red Hat) wrote:
> Some comments from my side:
>
>
>>>   static inline void arch_enter_lazy_mmu_mode(void)
>>>   {
>>> -    /*
>>> -     * lazy_mmu_mode is not supposed to permit nesting. But in
>>> practice this
>>> -     * does happen with CONFIG_DEBUG_PAGEALLOC, where a page
>>> allocation
>>> -     * inside a lazy_mmu_mode section (such as zap_pte_range())
>>> will change
>>> -     * permissions on the linear map with apply_to_page_range(), which
>>> -     * re-enters lazy_mmu_mode. So we tolerate nesting in our
>>> -     * implementation. The first call to arch_leave_lazy_mmu_mode()
>>> will
>>> -     * flush and clear the flag such that the remainder of the work
>>> in the
>>> -     * outer nest behaves as if outside of lazy mmu mode. This is
>>> safe and
>>> -     * keeps tracking simple.
>>> -     */
>>> -
>>>       set_thread_flag(TIF_LAZY_MMU);>  }
>>
>> Should not platform specific changes be deferred to subsequent
>> patches until
>> nesting is completely enabled in generic first ? Although no problem
>> as such
>> but would be bit cleaner.
>
> This could indeed be done in a separate patch. But I also don't see a
> problem with updating the doc in this patch.

I think it is consistent to remove that comment in this patch, since
nesting is fully supported from this patch onwards. Subsequent patches
are cleanups/optimisations that aren't functionally required.

Patch 7 takes the same approach: add handling in the generic layer,
remove anything now superfluous from arm64.

>
>>
>>>   diff --git a/include/linux/mm_types_task.h
>>> b/include/linux/mm_types_task.h
>>> index a82aa80c0ba4..11bf319d78ec 100644
>>> --- a/include/linux/mm_types_task.h
>>> +++ b/include/linux/mm_types_task.h
>>> @@ -88,4 +88,9 @@ struct tlbflush_unmap_batch {
>>>   #endif
>>>   };
>>>   +struct lazy_mmu_state {
>>> +    u8 enable_count;
>>> +    u8 pause_count;
>>> +};
>>> +
>>
>> Should not this be wrapped with CONFIG_ARCH_HAS_LAZY_MMU_MODE as the
>> task_struct
>> element 'lazy_mmu_state' is only available with the feature.
>
> No strong opinion; the compiler will ignore it either way. And less
> ifdef is good, right? :)
>
> ... and there is nothing magical in there that would result in other
> dependencies. 

Agreed, #ifdef'ing types should only be done if necessary.

>
>> Besides, is a depth
>> of 256 really expected here ? 4 bits for each element would not be
>> sufficient for
>> a depth of 16 ?
>
>
> We could indeed use something like
>
> struct lazy_mmu_state {
>     u8 enable_count : 4;
>     u8 pause_count : 4;
> };
>
> but then, the individual operations on enable_count/pause_count need
> more instructions.

Indeed.

>
> Further, as discussed, this 1 additional byte barely matters given the
> existing size of the task struct.

In fact it would almost certainly make no difference (depending on
randomized_struct) since almost all members in task_struct have an
alignment of at least 2.

>
> [...]
>
>>> +/**
>>> + * lazy_mmu_mode_pause() - Resume the lazy MMU mode.
>>> + *
>>> + * Resumes the lazy MMU mode; if it was active at the point where
>>> the matching
>>> + * call to lazy_mmu_mode_pause() was made, re-enables it and calls
>>> + * arch_enter_lazy_mmu_mode().
>>> + *
>>> + * Must match a call to lazy_mmu_mode_pause().
>>> + *
>>> + * Has no effect if called:
>>> + * - While paused (inside another pause()/resume() pair)
>>> + * - In interrupt context
>>> + */
>>>   static inline void lazy_mmu_mode_resume(void)
>>>   {
>>> +    struct lazy_mmu_state *state = &current->lazy_mmu_state;
>>> +
>>>       if (in_interrupt())
>>>           return;
>>>   -    arch_enter_lazy_mmu_mode();
>>> +    VM_WARN_ON_ONCE(state->pause_count == 0);
>>> +
>>> +    if (--state->pause_count == 0 && state->enable_count > 0)
>>> +        arch_enter_lazy_mmu_mode();
>>>   }
>>
>> Should not state->pause/enable_count tests and increment/decrement be
>> handled
>> inside include/linux/sched via helpers like in_lazy_mmu_mode() ? This
>> is will
>> ensure cleaner abstraction with respect to task_struct.
>
> I don't think this is required given that this code here implements
> CONFIG_ARCH_HAS_LAZY_MMU_MODE support.

Agreed, in fact I'd rather not expose helpers that should only be used
in the lazy_mmu implementation itself.

- Kevin


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 12:56:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 12:56:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1178994.1502644 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVMH-0003Vc-Iw; Fri, 05 Dec 2025 12:56:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1178994.1502644; Fri, 05 Dec 2025 12:56:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVMH-0003VV-G9; Fri, 05 Dec 2025 12:56:25 +0000
Received: by outflank-mailman (input) for mailman id 1178994;
 Fri, 05 Dec 2025 12:56:24 +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
 <SRS0=uphM=6L=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vRVMG-0003VP-Ay
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 12:56:24 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id cd14bb28-d1d9-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 13:56:23 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D48521575;
 Fri,  5 Dec 2025 04:56:14 -0800 (PST)
Received: from [10.44.160.68] (e126510-lin.lund.arm.com [10.44.160.68])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 903273F59E;
 Fri,  5 Dec 2025 04:56:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd14bb28-d1d9-11f0-9d1b-b5c5bf9af7f9
Message-ID: <89e76670-4a7b-46b6-ba55-d225dbb68cbd@arm.com>
Date: Fri, 5 Dec 2025 13:56:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 08/12] mm: enable lazy_mmu sections to nest
To: Anshuman Khandual <anshuman.khandual@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-9-kevin.brodsky@arm.com>
 <2dfd54d7-fe2a-4921-85ff-a581392a777a@arm.com>
From: Kevin Brodsky <kevin.brodsky@arm.com>
Content-Language: en-GB
In-Reply-To: <2dfd54d7-fe2a-4921-85ff-a581392a777a@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04/12/2025 07:23, Anshuman Khandual wrote:
>> [...]
>>
>> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
>> index 8ff6fdb4b13d..24fdb6f5c2e1 100644
>> --- a/include/linux/pgtable.h
>> +++ b/include/linux/pgtable.h
>> @@ -230,39 +230,140 @@ static inline int pmd_dirty(pmd_t pmd)
>>   * (In practice, for user PTE updates, the appropriate page table lock(s) are
>>   * held, but for kernel PTE updates, no lock is held). The mode is disabled in
>>   * interrupt context and calls to the lazy_mmu API have no effect.
>> - * Nesting is not permitted.
>> + *
>> + * The lazy MMU mode is enabled for a given block of code using:
>> + *
>> + *   lazy_mmu_mode_enable();
>> + *   <code>
>> + *   lazy_mmu_mode_disable();
>> + *
>> + * Nesting is permitted: <code> may itself use an enable()/disable() pair.
>> + * A nested call to enable() has no functional effect; however disable() causes
>> + * any batched architectural state to be flushed regardless of nesting. After a
> Just wondering if there is a method for these generic helpers to ensure that platform
> really does the required flushing on _disable() or the expected platform semantics is
> only described via this comment alone ?

>From the generic layer's perspective, flushing means calling
arch_flush_lazy_mmu_mode(). Like the other arch_*_lazy_mmu_mode helpers,
the actual semantics is unspecified - an arch could choose not to do
anything on flush if that's not required for page table changes to be
visible. There is actually an example of this in the kpkeys page table
hardening series [1] (this isn't doing any batching so there is nothing
to flush either).

[1]
https://lore.kernel.org/linux-hardening/20250815085512.2182322-19-kevin.brodsky@arm.com/

>> + * call to disable(), the caller can therefore rely on all previous page table
>> + * modifications to have taken effect, but the lazy MMU mode may still be
>> + * enabled.
>> + *
>> + * In certain cases, it may be desirable to temporarily pause the lazy MMU mode.
>> + * This can be done using:
>> + *
>> + *   lazy_mmu_mode_pause();
>> + *   <code>
>> + *   lazy_mmu_mode_resume();
>> + *
>> + * pause() ensures that the mode is exited regardless of the nesting level;
>> + * resume() re-enters the mode at the same nesting level. Any call to the
>> + * lazy_mmu_mode_* API between those two calls has no effect. In particular,
>> + * this means that pause()/resume() pairs may nest.
>> + *
>> + * in_lazy_mmu_mode() can be used to check whether the lazy MMU mode is
>> + * currently enabled.
> Just wondering - could a corresponding test be included probably via KUNIT_TEST
> to ensure the above described semantics are being followed.

Checking that is_lazy_mmu_mode_active() returns the right value at
different call depths should be doable, yes. I suppose that could live
in some file under mm/tests/ (doesn't exist yet but that's the preferred
approach for KUnit tests).

- Kevin


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 13:00:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 13:00:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179013.1502654 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVQc-00057k-50; Fri, 05 Dec 2025 13:00:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179013.1502654; Fri, 05 Dec 2025 13:00:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVQc-00057d-2E; Fri, 05 Dec 2025 13:00:54 +0000
Received: by outflank-mailman (input) for mailman id 1179013;
 Fri, 05 Dec 2025 13:00:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uphM=6L=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vRVQb-00057X-7I
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 13:00:53 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 6cb12821-d1da-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 14:00:50 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A482F19F6;
 Fri,  5 Dec 2025 05:00:42 -0800 (PST)
Received: from [10.44.160.68] (e126510-lin.lund.arm.com [10.44.160.68])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 164973F59E;
 Fri,  5 Dec 2025 05:00:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6cb12821-d1da-11f0-980a-7dc792cee155
Message-ID: <f07f5f70-eb4c-4e45-b7d6-96c8455255d2@arm.com>
Date: Fri, 5 Dec 2025 14:00:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 00/12] Nesting support for lazy MMU mode
To: Venkat <venkat88@linux.ibm.com>
Cc: linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org>,
 Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org,
 linuxppc-dev <linuxppc-dev@lists.ozlabs.org>, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <94889730-1AEF-458F-B623-04092C0D6819@linux.ibm.com>
From: Kevin Brodsky <kevin.brodsky@arm.com>
Content-Language: en-GB
In-Reply-To: <94889730-1AEF-458F-B623-04092C0D6819@linux.ibm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03/12/2025 17:08, Venkat wrote:
> [...]
> Tested this patch series by applying on top of mm-unstable, on both HASH and RADIX MMU, and all tests are passed on both MMU’s.
>
> Ran: cache_shape, copyloops, mm from linux source, selftests/powerpc/ and ran memory-hotplug from selftests/. Also ran below tests from avocado misc-test repo.
>
> Link to repo: https://github.com/avocado-framework-tests/avocado-misc-tests
>
> avocado-misc-tests/memory/stutter.py
> avocado-misc-tests/memory/eatmemory.py
> avocado-misc-tests/memory/hugepage_sanity.py
> avocado-misc-tests/memory/fork_mem.py
> avocado-misc-tests/memory/memory_api.py
> avocado-misc-tests/memory/mprotect.py
> avocado-misc-tests/memory/vatest.py avocado-misc-tests/memory/vatest.py.data/vatest.yaml
> avocado-misc-tests/memory/transparent_hugepages.py
> avocado-misc-tests/memory/transparent_hugepages_swapping.py
> avocado-misc-tests/memory/transparent_hugepages_defrag.py
> avocado-misc-tests/memory/ksm_poison.py
>
> If its good enough, please add below tag for PowerPC changes.
>
> Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com>

Many thanks for the testing! Will add your tag to patch 1, 3 and 10.

- Kevin


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 13:09:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 13:09:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179027.1502664 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVZI-0005tf-Ug; Fri, 05 Dec 2025 13:09:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179027.1502664; Fri, 05 Dec 2025 13:09:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVZI-0005tY-SA; Fri, 05 Dec 2025 13:09:52 +0000
Received: by outflank-mailman (input) for mailman id 1179027;
 Fri, 05 Dec 2025 13:09:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=7OvG=6L=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vRVZH-0005tS-Ab
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 13:09:51 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ad5a5fda-d1db-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 14:09:48 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4779a4fc95aso22543905e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 05 Dec 2025 05:09:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479311ece7asm82718475e9.12.2025.12.05.05.09.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 05 Dec 2025 05:09:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ad5a5fda-d1db-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764940188; x=1765544988; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cwSxZZQMARADIba/pcHLxEOjdWj43pLKjK2pWUdIk7o=;
        b=V9kYcMTfbNAfEkS8gLMKJUh/UbwXajLanZRt+ENY/Q0+u6XcEsBY4zlB/lZ4O7Py8F
         wow8w+ZM6Wmu7V4T2bp79qr4RWiA5Lz+Q3MEk/Ab7g0P1lUaRPhI5HPfHvoH7Adu6c9M
         bKdwCPhhOAu4YJPZmvZ77pr7eNChc/ir3Sqi8NNiRl09GswXWbG3LUx/ZyG3h6knaAzc
         D9R7kN0aPfU40vTel0QZ8FP6WE1b7lWFVdRrbxC12PEfTgvjroC6499ovYXrro0CufsI
         fvWLgc5EYTqXE8R6kGJYSoKZVayX/MAqIL4aE0GwEC3a9X6Ipps8h/DQq/8WfOSnnKne
         YjdA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764940188; x=1765544988;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cwSxZZQMARADIba/pcHLxEOjdWj43pLKjK2pWUdIk7o=;
        b=mcLBg0Hq2cBfdpZNApAp//OR2y8A/E/I0hC/I5AAShQHudvEYRJPIfJmN+SHnwlgsn
         /ZeB6UxUgMONBJ2oGO3mJ2ARTtdfbxOQHJObPv+Ey3D5sEp5/Ozt2NOa0VlkHN8R6se9
         fhfeE8WP2ydQFF/df0GAuSblKmjzGGqEzplw5HmVEOCGLNXkSneWsaqpu5KxUf44MUY0
         MPJ4sFACDyvUmdcfj0igOHhIQQI2NXGDfrDg1ryFFOIfp9VSMdqRDdTnOHTjkUBw199/
         faluuXXVmFKquOaj0lVXUFFRttU2FSNz3TWwkdMpQWzUUs6a1f1ZfdTxIhhRa5PnvnnG
         MjxA==
X-Forwarded-Encrypted: i=1; AJvYcCX7hmyRuT934xBaSyiklK12cE8unP//5cA9k+WWmx22D5Lifg6e/vRefpDaXympHLeSOm+BglQs/Kk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxdnbEEDLgSSX0PFsE6vFVs0+PpnRfzPVVzkfmnU8HwdvRJgfo5
	WR2TSoNlVcKTTKvPmWQhH/soMnQBy0sB88oLYKeP7xp5IJ8Y0ZQDYPLtsu4lUYHBsg==
X-Gm-Gg: ASbGncs4IV7hiFBmuNXxGjvUbucJT9DUwKTCKMTCMhDzQehlcUSpTJ1A8MuTFB95KNm
	OJ30ZMGHCn6UxbyXXEpA50+SpuDUrToeJ8RZUVepA/kD58JDX0xWtNkBFDhd/iuCI9TDvibqeRA
	icMCB+TvgXH8C25P+qY/+DEGIRtKep24WuJk5pbmtd7QRsSBkvtP6IMjy/gVG7Eg0YnCobTM45w
	vVPBMB4gDAAW+A7LbuwzHBksPWvAIgeAwhG0UpXUK949FKS0sUjXV64bdznEEYVgcEIyUciOPDh
	Q/1k4/9Gcnkvy0klC6UmnDa0C9/Rib1Q1IBLYAuYilRVkR3qI2tOj/ekfWfTDxuhRUNXM7AcxL1
	ZDWqTFn0LoXaXfdHq8wOoHVjlVGxyDg+gQAi4wvzvTG95XlOzZk+IZTAyjwe/TF2vbbtFeViQXh
	VDzzlxZw5HYWgbwas87Hz7j/GsnfYpDOBwaU2ONBbWSO6T+hJKSpcRyNym43KLoVnkkNBs4rLM8
	5s=
X-Google-Smtp-Source: AGHT+IFxoCg8mQ5/cu1x7842j/TYEseAhXT7t7BYLnbetCOmjoDiTG8ErntaDFj0Ki31jsGUlGdxyA==
X-Received: by 2002:a05:600c:a11b:b0:477:a71c:d200 with SMTP id 5b1f17b1804b1-4792eb5e5b9mr62319185e9.11.1764940188019;
        Fri, 05 Dec 2025 05:09:48 -0800 (PST)
Message-ID: <258c07b3-3413-4d3a-9729-b01365e88b83@suse.com>
Date: Fri, 5 Dec 2025 14:09:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 09/10] x86: use / "support" UDB
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
 <78b7c8a0-16ae-49c3-8c7b-5b10f5b0d688@suse.com>
 <e2ce221b-f852-4f9a-8a82-322e6f2af522@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e2ce221b-f852-4f9a-8a82-322e6f2af522@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2025 13:01, Andrew Cooper wrote:
> On 24/11/2025 3:01 pm, Jan Beulich wrote:
>> With opcode D6h now firmly reserved as another #UD-raising one in 64-bit
>> mode, use that instead of the two-byte UD2 for bug frame marking.
>>
>> While there also make the respective adjustment to the emulator.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Should we also switch {svm,vmx}_init_hypercall_page()?
> 
> The hypercall pages are 32/64-agnostic right now, and used by 32bit
> guests.  UDB isn't safe to use in those cases.
> 
>> Furthermore x86_64/kexec_reloc.S also has two uses. Question is whether
>> "tailcall" is being open-coded there, or whether that's deliberately not
>> using the macro we have.
> 
> The code in kexec_reloc.S long predates the tailcall macro.  Also I now
> regret calling it tailcall; terminalcall might be more accurate but it's
> overly long.
> 
> Very counter-intuitively, Linux has plain KEXEC which is phrase as
> "call", and KEXEC_JUMP which the ability for the invoked kernel to return.
> 
> For the regular cases, Linux invokes the new kernel by spilling a
> register to the stack, and RET-ing to it.  For KEXEC_JUMP, it does call
> the target kernel, after some games to set up a stack in the target image.
> 
> Either way, we can convert these two to plain JMPs.  One of the ud2's in
> particular cannot be converted to UDB because of being in 32bit code.

Oh, right.

> I can do a patch if you'd like?

I could as well. However, isn't BUG wrong (or at the very least misleading)
to use in either case? The code there isn't executed in place, but at
wherever the page is copied. Hence the address association in the resulting
bug frame is useless.

>> One of the table entries in stub_selftest() uses UD1, yet not in quite
>> an appropriate way: The 0x90 following it (presumably meant to be a NOP)
>> really is a ModR/M byte, requiring a displacement to follow. Wouldn't we
>> better adjust that (e.g. using 0xcc instead)?
> 
> Oh lovely...  That was my mistake in 2eb1132f7963, where I was
> converting what looked to be a double ret.
> 
> Can't we use 0x00 so it doesn't look like an int3 either, and update the
> comment to make it explicit that there's a ModRM byte?

As the situation isn't entirely tidy for whether UD1 takes a ModR/M byte,
at the very least I'd want to use something that's a single-byte opcode.
There aren't that many candidates in the 00-3F opcode range. The PUSH/POP
sreg insns I would want to avoid. The (no-op) segment overrides would
associate with whatever follows. Which would leave only the 4 opcodes
which are invalid in 64-bit mode.

If CC isn't desirable from your perspective, could we perhaps pick another
single-byte opcode from the C0-FF range?

>> --- a/xen/arch/x86/x86_emulate/decode.c
>> +++ b/xen/arch/x86/x86_emulate/decode.c
>> @@ -651,7 +651,7 @@ decode_onebyte(struct x86_emulate_state
>>      case 0xce: /* into */
>>      case 0xd4: /* aam */
>>      case 0xd5: /* aad */
>> -    case 0xd6: /* salc */
>> +        /* 0xd6 (salc) omitted here, for #UD to be raised in 64-bit mode. */
>>          s->not_64bit = true;
>>          break;
> 
> Why does the not_64bit logic not suffice?  #UD is exactly what we do:
> 
>     generate_exception_if(state->not_64bit && mode_64bit(), X86_EXC_UD);

Hmm, right, we could get away with just a comment adjustment here.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 13:14:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 13:14:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179037.1502674 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVdL-0007e5-EK; Fri, 05 Dec 2025 13:14:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179037.1502674; Fri, 05 Dec 2025 13:14:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVdL-0007dy-Bh; Fri, 05 Dec 2025 13:14:03 +0000
Received: by outflank-mailman (input) for mailman id 1179037;
 Fri, 05 Dec 2025 13:14:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=7OvG=6L=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vRVdJ-0007ds-NO
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 13:14:01 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 42d1aad8-d1dc-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 14:13:59 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-47790b080e4so13389605e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 05 Dec 2025 05:13:59 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbfeb38sm8606982f8f.12.2025.12.05.05.13.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 05 Dec 2025 05:13:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 42d1aad8-d1dc-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764940439; x=1765545239; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vGyEvfooEaGE6DNyarHbZZNIZo14J8itnREU99NTLvI=;
        b=FhxkINPcyVVmjgfK02cU8C6d00xAp4fNCggYMbGZal42f0yUUPCkdHN7CiK7qmLDH5
         oUNMhJVZHQr6T+BqOPxOOfXy1nGc2IWHdJOj83njaPCz0hpTWSVUaKkWiJ2+Z622yga8
         dlVxFKujDpW8XerhTj+4ctL+1NNHfOLoPEs6aQaAlWLHMN+o11G8BpDt5UTMtlTOwemJ
         eqtRvdql5oO5YWrgFuZFlyEem5spgBVk81amP3ZU1LWDtx/lzt2X4++a8hCp9ubZN411
         8VCvT+cRrLlaug7FAH51rYSCjIagSPeeu5YGWiE6wDrDl9fq7PXspsVBgPkBX+B7H0T+
         u+8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764940439; x=1765545239;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vGyEvfooEaGE6DNyarHbZZNIZo14J8itnREU99NTLvI=;
        b=rdFcCUpeiDri5BN4owdNQS3xSJYuk+6v+lOshfmVc+7sfQPiqK10WhL22v1gmmsVvf
         KBYYqBlZXUsE3HYIFNKwyo3e5BW/c+ZnmdYq1JfkRqIoP6wUz3StV0k8LX2oNeAKwQXY
         jipnEs6UyQv8T5dtmPlcaRHGD/8dzu99XNm63lzX+9DaPCLSLOmBSYmilUjm7dj+0TSL
         aRR+psXat0y48utl7cUjKZZkmXw7q1AFCcKxi/KlAemJFK/KAx2Yr6w+a2ToFtiytZqF
         hDlLvuvXLL0ameszEqLJjUzVBgTRNjlqO3bRHuOQpl+hsaD/bVJeUrmLXcBjAOmU/Tss
         nA9w==
X-Forwarded-Encrypted: i=1; AJvYcCULb7vemde6SXMp8BRwlF4VHqshaM3Mgl3Cra78ZzrIt9J1kb5ceZUINt2XLxDAOVbJglskwr5FL84=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwkiZ8jj4DtqcZc/zDZB0jkzXKhz2Yhat1aP93M6pPwDsB0srLV
	B/4lIkv4YShX9tgRflBUDv8R2SEzCpsntMzH9ti/30OWdBZVpTJD9Q3NCBVV5YSeuQ==
X-Gm-Gg: ASbGncvIbdpd6N/QBD4DsQ4AqdBnbixgyAFOabISw7+oRlUXtQ/S4ZZNZ2h9lL81nD8
	680EHrCn3FBrDYFfgOUs1z6W8tIQ5wKm/18KMeiNUqmwszkV6x8f7aWgdZKKQY5C9CKPX0Wi8pI
	SoIL5kZMeXAvy+m5ay87o1EkcqlBzyIFer9Xz+5QDwNb90efxhs4PIEP/AGqAL6uLnEbulgWpH2
	WfgWBRuU6rftStdlzdx8r6428zxqCg2gaJt/L7CHEjUFkUuULXd+rpto1rPm2wHXLGo5StAoqXv
	lQnZAWiFpDGvnWO65QhEt505kvVkSRXm3d2CVU9+Op2wjAimSjZi30bhH/yRFAwwpnOH++27Y1z
	sO/p7hV2HeeuUMjw+/JWSOlYj7KKHACZ4al3IBjaDDoD1ZsTHHc3mpjBmMQWukruRazQ1MnrUel
	XMtLGqgswB9Svi/lKVmRqev7J5zwqk4B/0NFVVw+LaZyOiFVaB4hvp2mJaeoYHN8SH3n/BdoBiY
	EQ=
X-Google-Smtp-Source: AGHT+IGV9HQIBY1Op+2U3yMF+eyzqavSke5jWSBpqeZAZJt8Cqgw1pAFx+FrqmYR8//yNA1nb/gk7Q==
X-Received: by 2002:a05:6000:4282:b0:42b:31da:18b1 with SMTP id ffacd0b85a97d-42f731d0f7bmr10240502f8f.56.1764940438714;
        Fri, 05 Dec 2025 05:13:58 -0800 (PST)
Message-ID: <e9d37bd4-7e31-402b-a874-0e9ad10b2a1e@suse.com>
Date: Fri, 5 Dec 2025 14:13:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 09/10] x86: use / "support" UDB
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
 <78b7c8a0-16ae-49c3-8c7b-5b10f5b0d688@suse.com>
 <e2ce221b-f852-4f9a-8a82-322e6f2af522@citrix.com>
 <846afe9d-458f-4ec8-a58e-faf0617707df@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <846afe9d-458f-4ec8-a58e-faf0617707df@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2025 13:40, Andrew Cooper wrote:
> On 05/12/2025 12:01 pm, Andrew Cooper wrote:
>> On 24/11/2025 3:01 pm, Jan Beulich wrote:
>>> --- a/xen/arch/x86/include/asm/bug.h
>>> +++ b/xen/arch/x86/include/asm/bug.h
>>> @@ -21,7 +21,7 @@
>>>  
>>>  #ifndef __ASSEMBLY__
>>>  
>>> -#define BUG_INSTR       "ud2"
>>> +#define BUG_INSTR       ".byte 0xd6" /* UDB */
>>>  #define BUG_ASM_CONST   "c"
>>>  
>>>  #else  /* !__ASSEMBLY__ */
>>> @@ -37,7 +37,7 @@
>>>          .error "Invalid BUGFRAME index"
>>>      .endif
>>>  
>>> -    .L\@ud: ud2a
>>> +    .L\@ud: .byte 0xd6 /* UDB */
> 
> P.S. Presumably binutils is going to learn a udb mnemonic at some
> point?  Can we include a version number in the comment?

I has already learned it, so it'll be available from 2.46 onwards. I've
added a comment, but aiui we'd then need to also cover Clang's integrated
assembler (if and when that gains support). In the meantime I've made both
comments say "UDB, requiring gas 2.46".

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 13:15:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 13:15:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179048.1502684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVf8-0008Bx-Pw; Fri, 05 Dec 2025 13:15:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179048.1502684; Fri, 05 Dec 2025 13:15:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVf8-0008Bq-Ms; Fri, 05 Dec 2025 13:15:54 +0000
Received: by outflank-mailman (input) for mailman id 1179048;
 Fri, 05 Dec 2025 13:15:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mBPq=6L=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vRVf8-0008Bk-8J
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 13:15:54 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 86004280-d1dc-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 14:15:52 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b736ffc531fso348600666b.1
 for <xen-devel@lists.xenproject.org>; Fri, 05 Dec 2025 05:15:52 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-252-83.as6723.net. [185.5.252.83])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b79f449c375sm382752866b.24.2025.12.05.05.15.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 05 Dec 2025 05:15:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 86004280-d1dc-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764940551; x=1765545351; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=+37JBfB5+wQxvtxVtuUdkwH2Nl76SjI3TMQGP6fdEhw=;
        b=hm0yTq62G9cvhmEBaRpbWeC8J0E2vCjdFlTn0B58OQ9K9NdHsO/OXY1RFsRFGDHeGU
         GzTnp/vsSDuW1A/H7VjBPVdWNLWIIIHoBjC1N16Y8183iYOUbFSWpsupjH5I8qkcV/O+
         /xXa+zGluZmJ8jrT3Z11ZR3tXEPiGLqsFL3EnYyPxzNbOjrdkibrBBub8UBBn16sw3t6
         MEQsqbZ5zGxGgD0uV8UNw3+xfVgjWMM1QdGyHXvVGR/qwXsXS0xgSz/04xxaPJzmZC9O
         IXGl1yQJ7PtLaRDz8Kr9ffrpig4zAqO1EgaxiSUpmsJNgKwmSU1FyF79E56Bcb84YiwI
         oh/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764940551; x=1765545351;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+37JBfB5+wQxvtxVtuUdkwH2Nl76SjI3TMQGP6fdEhw=;
        b=p9Pru/tud9YrMtEDAQYQ6xRZKtaPUXCxQgav5bB5Ce9ATdDusNWv8mlQWdJu9ddZTH
         13u8wHBuXhRq0R8IxKUw/7BlupxjEy3XyruRpLPLzPLT7wWPXK4B9sZvqXwZE+HP8+z1
         wKx8IwHZ2iQ2hao4jaxfLjm2bL3GrAFij3JiVjDrCAcXiYg2jodQ+x9+NxfccXMH/IFA
         9rm2eFu/qkdG3etOGJRxueHbVEHLQXzrhfqYD4WWh17SAlGe0zJqkfNsQQo8/LV6vnu/
         ha+0Vzt2RvpsOC4l7aiKq6PljNgC27sd0+lAXJWdvcTssP3+c3m8S8L2dWk3ncUGOh3J
         y89g==
X-Gm-Message-State: AOJu0Yx5g7sCGdPBHsh35AABholK6VxjAa7JOIzOprntQAO8kQUIp7XC
	hpmtbHUIp5N5ce5Qpj8HWRIb+bJgDnuwkNcMtk1DyujnW2ca8XLXNgzVy3shQA==
X-Gm-Gg: ASbGnct/OI6O45KEdTkPWoqNA4LjYYiNmuBnGPAiPlD+L8Xzg5JkZ7lR8leXl00kzjb
	JrE70NPp9rEmG/nYcIHeiwcvF9vZmgzfxCNPSzItUZRhdDEX4ayalArdnPixjDAMO9+ZFNO4hDP
	WStzY7uwbLeVNcStngqQmj5HilF5wFQs4O2jFDJKQUKXceQZmmFdRLs/hONrTT5nFYXAwBb1cbe
	dLx6gN9VK7wCRUKJk7B7bI39Lc9npa1bsfvLztQm684GOgvbl1jlmJSF68kUzd5mUqo2vnFmL67
	tcxP4A2OSTiv7IGJDVHzXb34U29d4BC/I8V3BglDBJOKHyKt3QWIBM/+aBbCb6Yc9VLWoTEd3Xz
	ghRP4aCH3gCyq2nzWYs+BCCF/X4FU46MTiaBq4Z+ttTzIpocbr1bK6Ehh2PSY/L41gk6sUzSenc
	9+HoYdzTFFswKwoc5/+lYIsPh2hrewLyhNaXhn4ImhrJk=
X-Google-Smtp-Source: AGHT+IGk27sIY3D5JG/RQZdI+Cdpm9L97RAPIOfdyIrDJiaFo117rQYO/GlI8vKTivzIxrEeUjYC/g==
X-Received: by 2002:a17:907:3c8e:b0:b76:84d1:5dc9 with SMTP id a640c23a62f3a-b79dc732920mr1072932566b.45.1764940551068;
        Fri, 05 Dec 2025 05:15:51 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH] systemd: default system-sleep dir without pkg-config
Date: Fri,  5 Dec 2025 15:13:32 +0200
Message-ID: <f03c8a2fe81527841966ed6c8ed603d1d90ee5c4.1764940296.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Using PKG_CHECK_VAR() to obtain SYSTEMD_SLEEP_DIR reintroduced a build-time
dependency on systemd-devel. This breaks --enable-systemd builds that only
need the initscripts.

Use the same defaulting scheme as other systemd paths: if SYSTEMD_SLEEP_DIR
isn't provided, set it to "$(prefix)/lib/systemd/system-sleep/".

Fixes: e54a6cd6a1f3 ("systemd: Add hooks to stop/start xen-watchdog on suspend/resume")
Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Build in which the regression was detected:
https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10959608099
---
 m4/systemd.m4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/m4/systemd.m4 b/m4/systemd.m4
index c47a25ef93..ee684d3391 100644
--- a/m4/systemd.m4
+++ b/m4/systemd.m4
@@ -77,7 +77,7 @@ AC_DEFUN([AX_CHECK_SYSTEMD_LIBS], [
 	], [])
 
 	AS_IF([test "x$SYSTEMD_SLEEP_DIR" = x], [
-	    PKG_CHECK_VAR([SYSTEMD_SLEEP_DIR], [systemd], [systemdsleepdir])
+	    SYSTEMD_SLEEP_DIR="\$(prefix)/lib/systemd/system-sleep/"
 	], [])
 
 	AS_IF([test "x$SYSTEMD_SLEEP_DIR" = x], [
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 13:15:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 13:15:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179049.1502694 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVfC-0008QQ-WB; Fri, 05 Dec 2025 13:15:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179049.1502694; Fri, 05 Dec 2025 13:15:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVfC-0008QJ-TN; Fri, 05 Dec 2025 13:15:58 +0000
Received: by outflank-mailman (input) for mailman id 1179049;
 Fri, 05 Dec 2025 13:15:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=7OvG=6L=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vRVfB-0008Bk-HU
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 13:15:57 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 882507d2-d1dc-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 14:15:55 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4779a4fc95aso22590615e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 05 Dec 2025 05:15:55 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4792b02e84dsm59391795e9.4.2025.12.05.05.15.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 05 Dec 2025 05:15:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 882507d2-d1dc-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764940555; x=1765545355; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TmVkS0mBsvMoV+aSqeWYw2jZmkWE2k0wgkDJpOUd1ug=;
        b=PnDCmXCNUaiHoeHjQGJ/0qyzwBilLIxsT+tLo19IlpgbW7PSZje47A3yTyli98DEQg
         wrHSwrpPg2OUoCX8dlK1Oofm90xLHZGaGbU3f/01bZECQ6hoUbppOVpQPq3/UTwbr/qf
         /Y4jDQHRddbTf/Nx575wjsbnPsQ2Hg9JhPHjKpvQwHa3ZaSfT1iArR6KZLTRB6DSjFrN
         YTAW4upuQDlio+xnZonO6xHUuQkgoxgYsMOhBWdrnEausiNWVJRDz/XSj3SqMbEvS96f
         jhSwfUNL5UcmfgdoyTsgYUsiTmWwIE7Eid595i4QJlH0Abd6DYltQRAj8JhCnzjuiczh
         ACdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764940555; x=1765545355;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TmVkS0mBsvMoV+aSqeWYw2jZmkWE2k0wgkDJpOUd1ug=;
        b=jkeUWjr01O7Aq3XcjIF5ypISCQOrrNiDqhL/Z8hKCW3z7ra2iUNaAGtMAN/LGaYpal
         2wtm+17qh4RRaGkxkbrEv7F0ZyvAcz+OH7IJHmjDqfjXAMKs8F5+CfS1tegI2HVr3PML
         lZKsSmBFcbEN7a8HTUkZ0sr3QTQJXgGMjikUQ8QkbgkfKcnDsCEkCEGriGx9kY3G7TIw
         Q2Db8zOllU3f/mdK8xJen355WaXxaKIRMOGB38KxPBEDIEClNGp1+xHpKqmMdoCwVk3a
         BKqTac6pYJyrhqjjE9J1gHfY0mMhOgNc02zk8iAfdllzc1GTtGGhq3N+A7qisB9V9Mn7
         D7dg==
X-Forwarded-Encrypted: i=1; AJvYcCVISBgQAL8QdFXvsWu2FNHHs0gjiKBzlzXzqabcE1bnBV09GdDbZ6lEj31NWR+IGaETQ71kAjBCNkE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz6mxl/u9lO24QEUKgrKy6EctANQrf6Ceiqr/cGrS1x71E9WfCK
	0aluZZwQAJIo34pxDq/6L/7pIkLn42mpWAiqmgZxx1M4JGgZly65YDa7Dr/x1b2zkTzu0OqInvL
	SwSI=
X-Gm-Gg: ASbGncvS1iAEiRJ1ujIy0rfTedF/fLkbThJD+5ApYDik2xV2fMAKkR0cNuwss4UJfs4
	9UL34nG3zdXNpjlf6a9uzOlfi1QTUcNya1xMVihIy82mxTXCgMgzAndw+Uf+Cp7X+BnV5mEtRWi
	pS6e8XxNhsBKjl7ki5vYADRCho0HUax35uSK8DbqheuI+Lx007Ns0yhcGhftujz0ypAhyASFBrk
	tM3Dh+ec50tJ1m7euBgIPZnIJdgRbbJzDPiqk5QBtwvahAVPqLsfTGGEX+ngf+SivlxTNAJc5pL
	t0pl2LeaKdcyoKVVov0dUAXaQZ1X5tbfap6wC4fTOCQK4uAq3sbuJN9x35jBOXP6wASFAnDkU83
	2QAy5yUvxf2g3HUdlGX2bcuM9TdAqDvAWq6FfRddP4m53PJIyl85lk/IXbijKUYgQ1LPirJhgSR
	6HLhBi8hVyK5g72gYgH9NxcH+90creLM9buTCJLWMm1I1eTjoKi7m8PyXLaBbMHkrYue9PojBxy
	oM=
X-Google-Smtp-Source: AGHT+IFkz9z/QNRcOwQnUtlRIid1DqPyfMp6rfrSx+5mJRSEw7auXLA3sq5WuOYZIy3Oovyu3Y9Psg==
X-Received: by 2002:a05:600c:45c6:b0:479:13e9:3d64 with SMTP id 5b1f17b1804b1-4792eb4caf3mr89945195e9.15.1764940555023;
        Fri, 05 Dec 2025 05:15:55 -0800 (PST)
Message-ID: <c4346077-d110-48ef-acf6-343cf9ce87aa@suse.com>
Date: Fri, 5 Dec 2025 14:15:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 09/10] x86: use / "support" UDB
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
 <78b7c8a0-16ae-49c3-8c7b-5b10f5b0d688@suse.com>
 <e2ce221b-f852-4f9a-8a82-322e6f2af522@citrix.com>
 <846afe9d-458f-4ec8-a58e-faf0617707df@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <846afe9d-458f-4ec8-a58e-faf0617707df@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2025 13:40, Andrew Cooper wrote:
> On 05/12/2025 12:01 pm, Andrew Cooper wrote:
>> On 24/11/2025 3:01 pm, Jan Beulich wrote:
>>> --- a/xen/arch/x86/include/asm/bug.h
>>> +++ b/xen/arch/x86/include/asm/bug.h
>>> @@ -21,7 +21,7 @@
>>>  
>>>  #ifndef __ASSEMBLY__
>>>  
>>> -#define BUG_INSTR       "ud2"
>>> +#define BUG_INSTR       ".byte 0xd6" /* UDB */
>>>  #define BUG_ASM_CONST   "c"
>>>  
>>>  #else  /* !__ASSEMBLY__ */
>>> @@ -37,7 +37,7 @@
>>>          .error "Invalid BUGFRAME index"
>>>      .endif
>>>  
>>> -    .L\@ud: ud2a
>>> +    .L\@ud: .byte 0xd6 /* UDB */
> 
> P.S. Presumably binutils is going to learn a udb mnemonic at some
> point?  Can we include a version number in the comment?
> 
> I'm trying to organise such comments everywhere so it's less effort to
> figure out when we can drop it in the future.

For them to be useful, wouldn't we need to settle on some canonical form
first? Else how would one locate them (other than by coming across them
by chance)?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 13:16:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 13:16:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179059.1502704 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVfa-0000cS-Al; Fri, 05 Dec 2025 13:16:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179059.1502704; Fri, 05 Dec 2025 13:16:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVfa-0000cJ-7z; Fri, 05 Dec 2025 13:16:22 +0000
Received: by outflank-mailman (input) for mailman id 1179059;
 Fri, 05 Dec 2025 13:16:20 +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
 <SRS0=K96r=6L=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vRVfY-0000Ji-Jl
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 13:16:20 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9613956f-d1dc-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 14:16:20 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH2PR03MB5349.namprd03.prod.outlook.com (2603:10b6:610:97::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Fri, 5 Dec
 2025 13:16:16 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.009; Fri, 5 Dec 2025
 13:16:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9613956f-d1dc-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BimaHZLkNhrdN5DHt6aSyKWdgCl/1Fszp1d6G+k4Lvz4kivqqqKynoLOu8LUO29jdRWhxpD14DpkNQJ6LGlwtQkuWrs50lC/0pPhwHncwKmGu4Mg8Fu5ZTZvizkWpy4A+jxELJOpN3hUerraTCqRASkCF+GTwp244+PNb6vhzZGC7iIxlmaT2uBeWscCi2uDUvll7yRwRAebIG6QuazaWdOzAD5+NhrLevYGncAGouo2s08gVgqH3jSIQA4TLpvKQOcWOZ2zWfwBp92G1Mh7sQlliFJQ1jS7NNbbJ/j6y09Zcbu3sDEcmzx7wcoQPn4ZMkRrwmNlAnKCM/82+gt1nw==
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=jOykeCTpePIvtWiD1Dvq2KGyJsfAGfQ7e/xguK3wZJ8=;
 b=vL/1lWInFKh8h5ju1CPuSfOTzLK9S0N+qSw6+EemOvo6qr+JYGKHVc2TJcvUv+rVBx4lyC/vGSkL1WzJ/LYRGjYIGOa5tWi72MoaWew312nv1P33JleH4ppQl25EI6sNkuj01JLqzbfo0qngmz7M4InEVJTYZ+/vgaNnupq4Qew5UXro2B8164QPgV33/bwKIlV4AxnV7h58QTQ78Qk2TvCJeuxQX79kFP93DxphXEJlUMewQjStvZes0wB/euNgYyvVGtbC86HUFUv5zo/xUUUdO6Ol522uv5+e0bfR+2h6Qo9+/esjkur/ex2w/thh8/NW0N+A+PG0MN6S9NRHhw==
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=jOykeCTpePIvtWiD1Dvq2KGyJsfAGfQ7e/xguK3wZJ8=;
 b=Z66CKmv70aWP610AV+iOz5SfbTBjEfqG9vX1UUFHJEY2I4mV4kp5PoZhp5h7Ydh2RnqBuISvyA0Njdv2sHW4X9dkXyVCrgkf2edDjR17WSLWjR+0yh35TA4sRKcoY6csHiIobXPrbwQPEvwIERxa6W+aYTElsXsMX7Q/PqKyNVc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <1099fd00-1b9f-45f1-ad99-747db2f854e1@citrix.com>
Date: Fri, 5 Dec 2025 13:15:49 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v9 09/10] x86: use / "support" UDB
To: Jan Beulich <jbeulich@suse.com>
References: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
 <78b7c8a0-16ae-49c3-8c7b-5b10f5b0d688@suse.com>
 <e2ce221b-f852-4f9a-8a82-322e6f2af522@citrix.com>
 <846afe9d-458f-4ec8-a58e-faf0617707df@citrix.com>
 <e9d37bd4-7e31-402b-a874-0e9ad10b2a1e@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <e9d37bd4-7e31-402b-a874-0e9ad10b2a1e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0174.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18a::17) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH2PR03MB5349:EE_
X-MS-Office365-Filtering-Correlation-Id: 3e8fa0ad-8de0-426e-d279-08de34006d78
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VTV6cjhkMkYyeXZrWVltNU8rNTNZMk5MUy9iRUQ5MmFjanBNRjJDdC9UbDc2?=
 =?utf-8?B?Yzg3L01OQjZkOHpXMWlwSG41ZFhsT1lRSXduenAyU1Qrb1gzdHFmeU02STYw?=
 =?utf-8?B?bTNvVnBVakJwOWwxNGFRcnNFaTloTEw3ZldZZDh4Y1gzd1dURmNXTm10TUlJ?=
 =?utf-8?B?ZGtnNHlnOVMrR2xOTXg0OS9mYXg1SHVXVnUxUkphK3JxUmVOSjVodXVMSlFa?=
 =?utf-8?B?c0tQOENnWjJUL3RqRThsV2ZsREFnN0lZbURNZll4Snh2bDdIdVVmL1ovKzBP?=
 =?utf-8?B?TDdheW5hdVNxQm83dzZWRkttREhpUTM2QU1JZEVzcGQ4VzQ4QVFvTUd3MTRW?=
 =?utf-8?B?NTNMN2xoWGZhUU4raVBJa3V3bUlzbk13Yk1jNW9ySk1yMklRckZYaHpaVitW?=
 =?utf-8?B?M1d6ZDVKaU1Vb1dWK0VkWVhtWmtLdytyQklMdXg3cWU4SEZMWk1pcUkyY2pR?=
 =?utf-8?B?eFlEaDVib3J3SHhZaUJWeWVSNFZzbWJFc09XY2FIbGRpYnZsV2FTK2VJUmVN?=
 =?utf-8?B?RHRRV0hUVWNwTUp4NDAzZTBzcjNOR1lJaWJ2OWtocStZUHJoUFpFMlU5eDlP?=
 =?utf-8?B?MlhzOTE5dVlxMDI4TG1HMEQ3eXhYMXh2QWhwVU5jdjF4STJJcDVRVFh2aHFU?=
 =?utf-8?B?b1FLK1Y5SEk1ZzhwWENMTmwwaUVNZktMTXJjM3lrN3RLbm9rR3Y2bDRtblFy?=
 =?utf-8?B?cExyYWNmRUliMzVJWGZaRXZSSzQzSmc1aGs5RXJhT3VFN2M1QmhmbmV3UHFs?=
 =?utf-8?B?K2h4a1E5WFFJSDI0R01yRFBTRlk0QUE3akZzZ09iZ2xOaEFpQnlKSndSb05S?=
 =?utf-8?B?NUkzOXQ2WWtkbGlrZ1RWcVdWTjREQWI4TjJJc3VIdFB5eW9BMm8yZU5WbHYx?=
 =?utf-8?B?cGhiWEdFU0krdWd0QkJJcnVxMk5sc2ZwQVRkd2h3dnUzREt6OGJrWlIxTm9y?=
 =?utf-8?B?dk1TanRiRThvVGhxLzFmREhnckJzd3ZtY0RMSmtTTEJCWlJrZnJ3WGw2d3la?=
 =?utf-8?B?U05qeG82Tkh2TlR2MG1LQUVXd3JSUTlQeml3Qk9yYkxrK1hrYi9tRkN5ODVa?=
 =?utf-8?B?V3l3MEw5ZU9zbHFnQmViTHg3VUt6U0F6cCtvcE5nb2FETXR6V3lzWElUbExn?=
 =?utf-8?B?M1hCVWNRU1lnanNtQy81OUZScTdHaTUrL3BUcW56TGhiSzJBYjRnQzlWaDdD?=
 =?utf-8?B?RE5CaHZDczFHSFVVMEFTbHhUZEFpUE1ZYnpBRlZXaXJ5Lzg3Q1pLM3dFOFQy?=
 =?utf-8?B?bjRwb3JTeE5zZEJzU1JjMnY5VU5nZFN6N3JYM2c2cDlJRnhad3drbVV6SzVT?=
 =?utf-8?B?MlpYQSs1d3NpUW81ZlNGclZaQVZHbmNTdE5RVEZ6ZEdQbVN3ME90N051MXE3?=
 =?utf-8?B?Wi92ODVaQkhsb2JjOWpHbW1JclVpdXNzNEJoVmdVdEozR2w5QzJoVWNwWkZm?=
 =?utf-8?B?MzY3U0VYeUJsMjluOFl5RjRTVy9DTjNESk9BZjREMkFZc3EwaytXVGhGeGFN?=
 =?utf-8?B?c2QwdHVEc0UxbUllbExNZTh1alhkZVQ0ZGlzWHdEVlBuNWlQMU1SUlc2RWdZ?=
 =?utf-8?B?N1VJdS9kM1A3Nmd1ZFBPWlYzWFM5TFJrQXk2N1ZFYngxTDlqRE5CUkNiazI3?=
 =?utf-8?B?Rk83SldrQmRIcWh0bXN1dVVlSkRBa0NnM21PcnpaOVZKcWthb1dtc29PT1hN?=
 =?utf-8?B?cTgvV09NOXlOaDVKVzltVkpKMGhhZG94NWV5RElBUlBjWDVDcWJHNFVFOGxr?=
 =?utf-8?B?UmI4YU9ZdDRYQTJsVUxUYmF1aXZOeGFUL0pMY3A4VlpoS0VFdm9UOS9vVjg3?=
 =?utf-8?B?YndJS2IvQ0dpSWVYbHhQUHFwVlhqS0srbU55Mm5ZQlNnYXdjZy9EUWdQMFdI?=
 =?utf-8?B?Q2RoeVd4Wndxa3VzL3RneTdOOGp5eDdlaWhBbjZJeXF1M1J4UU5FS3R1T2RC?=
 =?utf-8?Q?7WlHwSIDFetQ09IebreJcrfp4Eshwj/0?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U2dzbVhtZmhVSVRvN1pYWlYyZGxYcFl3V044WHpiL2NwZm1abmE3YVIvTU95?=
 =?utf-8?B?U1JHK1J0Z3JNMDRSeDl1WERCcUUrc2ZEa1BzVGlHUGhIcXlEa2IydlFaRlR2?=
 =?utf-8?B?a0tIZXNrMlBVVjFUQllwM1lleGNyWU1kUHNrK0U2UTRDSDZQSmNCOTlETTVz?=
 =?utf-8?B?T2QxVjJDZTd0NXoyZ3hkTTJqSVZDelc2TURmSW82cERwd25yQXhqN1pONThh?=
 =?utf-8?B?angwa05rOUFTNlhINUVrY3U2ZUJ2SHVLQTlxU1NYay80Q045dDlaZll4MXNG?=
 =?utf-8?B?MmViSVVrdzJYL29PVmgyN3doNWhwUFhzUDVmYm9LdVI1K3VLdGRpb1l5TndR?=
 =?utf-8?B?KzZFNGY4S0hvWkV4T0N5WFR2R0hxazEyb1pzMUNaS3JzYkh0UytwUmFCZW95?=
 =?utf-8?B?L3oyNVI2SktQNmtwTnFkblVwZ2pUZXdFMktwV1VPQkVkV2dDODJKU0IxcjBi?=
 =?utf-8?B?ZFo2MnlEaThDZmVNZ0tkeXFCOStFbHlmbzAyOE5Qa1cveXhXdGh2WEhTTllT?=
 =?utf-8?B?b2xidEJKL2pDd3E2Q2taTDJ3WnFac3piNUdWVU8wSDJ3c1U0ZjRQUWxNc0Ey?=
 =?utf-8?B?Nko5K2VOVHJVZXJwVTJ6Qys5S1VEK2FtSFl3RHdvT3BscXdMb1ZVQVBKQXdy?=
 =?utf-8?B?TkVzWTlBK25MTlpyRWhXUjcrL1h3bVFlUElBdHQ0K01pMzVIdVJuRzlvZC9n?=
 =?utf-8?B?bWc3dENNRTZsTjJ5N0tuRUovcGVVTTJESzluUGVvZlFKemRMYzlNTU94QW8z?=
 =?utf-8?B?dW95NmFHVWNvWHVrMldrY2tZUjNRRHF4V2ROOFdmMklnL1pPY0tPaXJNZEov?=
 =?utf-8?B?Rm1panBIaGVwdzlTWmVCbzZmYWlOVVoxdnJjK3JhZHdNRXZEL0FXV1RKd2FO?=
 =?utf-8?B?TVViUHlUZ0ttRzljZTJSNXBFTlh2RzN0UzZNa2hwZEJvdDFKTG9pOVpOVVA1?=
 =?utf-8?B?RnFpeWhZaGE1M0JrcXlBbVQ4aXN1a2pGN2xiVFltMFU5VWY0YUpWcDBhQlRw?=
 =?utf-8?B?clNLT3EzZ2UyTnZlYnFPVndTZC8yRUdmL1BTMjlNNGhFeDQ1TDhVRW40QmhQ?=
 =?utf-8?B?RzQ3OTBKTUpCSUlPWWdVQkkzZ2J3QWtib2ZVQUQvTFpBdkkxSUw2bG1WNkcy?=
 =?utf-8?B?OEJnZmk0NjE1RytzRXM1QXpUNGxTQjFBYytQSVh0MXRZUDBXaTkrSmJHTnk2?=
 =?utf-8?B?U1FlejFQdmNYYm1NempjdDl3Z3ZzYXNGZFBPSzFoSWttVzVmQXVpYWVTMTlS?=
 =?utf-8?B?eE5pajlDN3d0M1c2K2JOaitXRFViTGdJZ1lLanhVLzBUSWNiQWo5cm5FOHhX?=
 =?utf-8?B?TTJuNVRUcDg0Ync5eGF2bUpGb09mcERRV0o5bEN3Y0UydnlvdVB2QXZvekp4?=
 =?utf-8?B?RDBZRnczSStvMTNicFl3Y1J3a1ZPS3FVQ3ZsdmZ2bU0yeGpqb3RKS1BnRHIx?=
 =?utf-8?B?SytDY1ZWbVo5OURwNkY4VTJwZlRHd3ZaOXdHZ01xYytGSGxpTm1paXF3MVQ5?=
 =?utf-8?B?eEM3M1hwRjRFSUMzQUYwdWx2aXhIeGdPOHh0cDFuV2cvYllMTmR0T3RVZlBK?=
 =?utf-8?B?M1ZrcHN2dDlnVDc3MzVSaHF6dTJEUGN0WmVCSWt4amQvSzAyVDVIR096ajZF?=
 =?utf-8?B?UUpXMmtlU0ZlVjd5aVhFbEkrUVRoMUNLeFdpajRncVloK1RVemhNQUc0a1Q3?=
 =?utf-8?B?eFNvd3g3MGJ3MmdjRFBLVkJlYVk2dkhWSUV4d1ZFSTFyVHFhUGhrNWhkMWV5?=
 =?utf-8?B?U2lFMCtPL2ZPdDhUVUJ5Tzd0M041WjZNZnA0elVSMUZlYi9CU1pUK1o3aFVR?=
 =?utf-8?B?TEdkd29UcXlrVmZwR1QyRHE2c29PM0JPbUZYaDh2bktDb3UxcGRIVjRoZDRX?=
 =?utf-8?B?Y2lPTkxpZmFkZ2NKRzNHRitoNUsvY1RDK0FWWjlTN0dNSi9DQVBQWUxySzZY?=
 =?utf-8?B?aTNhQW5Vak1vdXdJK2ZLT0xOd3MweGlYczh6OHFwUk1CcHJCSTk1SGdBTHVp?=
 =?utf-8?B?YUhiNk5RTjJGSzJvdm1YU1VidGk4Vk9VS2xuYXIydmMraW5xVnIyUjJ1ZEVY?=
 =?utf-8?B?cVZQaDdDczNLd2Q0M2JiUkFoNUprL1ZEYkFjaWJQWWJONFNwOHhlOUQxSDQw?=
 =?utf-8?B?akNBRGJTOFdYQ0V6MHpkNHRxc2N6YmxVcEhBeG5hMDMvRmxTd3pRL2ZUd2hp?=
 =?utf-8?B?R1E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e8fa0ad-8de0-426e-d279-08de34006d78
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 13:16:13.8093
 (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: CAg1FSbZa7BWKbxwCVxB3hERpbJFZJ9YJE8APNyAm4nxUEbsYhK+fnh31nd6mtR/is4aL4yRe0jrFfLpE/AuFFCi52wJsw+l91Fs7VbymHQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5349

On 05/12/2025 1:13 pm, Jan Beulich wrote:
> On 05.12.2025 13:40, Andrew Cooper wrote:
>> On 05/12/2025 12:01 pm, Andrew Cooper wrote:
>>> On 24/11/2025 3:01 pm, Jan Beulich wrote:
>>>> --- a/xen/arch/x86/include/asm/bug.h
>>>> +++ b/xen/arch/x86/include/asm/bug.h
>>>> @@ -21,7 +21,7 @@
>>>>  
>>>>  #ifndef __ASSEMBLY__
>>>>  
>>>> -#define BUG_INSTR       "ud2"
>>>> +#define BUG_INSTR       ".byte 0xd6" /* UDB */
>>>>  #define BUG_ASM_CONST   "c"
>>>>  
>>>>  #else  /* !__ASSEMBLY__ */
>>>> @@ -37,7 +37,7 @@
>>>>          .error "Invalid BUGFRAME index"
>>>>      .endif
>>>>  
>>>> -    .L\@ud: ud2a
>>>> +    .L\@ud: .byte 0xd6 /* UDB */
>> P.S. Presumably binutils is going to learn a udb mnemonic at some
>> point?  Can we include a version number in the comment?
> I has already learned it, so it'll be available from 2.46 onwards. I've
> added a comment, but aiui we'd then need to also cover Clang's integrated
> assembler (if and when that gains support). In the meantime I've made both
> comments say "UDB, requiring gas 2.46".

Thanks.  Clang Trunk doesn't currently know it.

https://godbolt.org/z/ccrhzq95h

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 13:19:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 13:19:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179085.1502713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRViE-0001OJ-M0; Fri, 05 Dec 2025 13:19:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179085.1502713; Fri, 05 Dec 2025 13:19:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRViE-0001OC-JK; Fri, 05 Dec 2025 13:19:06 +0000
Received: by outflank-mailman (input) for mailman id 1179085;
 Fri, 05 Dec 2025 13:19:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mBPq=6L=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vRViD-0001O6-A6
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 13:19:05 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f7ff6564-d1dc-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 14:19:03 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-5943d20f352so2355200e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 05 Dec 2025 05:19:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f7ff6564-d1dc-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764940743; x=1765545543; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IAyu9hSJosXxaGg/yB5sp13CcyBRDHcHeqtMwroQXfs=;
        b=W+ZrNfsTUCo3u2mGj2R9LmnpL79fyIPuLU8/RJiIhFkFYYAEuJODu00AEKkVZz8ej+
         uLL2nkKFCqJ5ocVe9uIt8A5hLNJ5b/j198tR/ZxieuzHHUmECllOmxkoHJPCH/YvigJW
         ur3z0H0deq21iY+vN0OUiSDQP6Sb6YDOPIVXgJ//SqgFfcEInIYktWc5+2Knu3CGvEX5
         S0dTwp7bCjk/qD8SrbbS9aqOVbrtbkoXmoEI0f06wFr203ieFEjXwvR/px6Jwk8jcdqN
         bhPl/bakEajEOR2A8YxNekxZ5TOutvQ+Bv4SX6uLDcuh6xiWq0/rb0q9EnQbbxmO+z25
         Dy3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764940743; x=1765545543;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=IAyu9hSJosXxaGg/yB5sp13CcyBRDHcHeqtMwroQXfs=;
        b=Cq2h20FXKCt2AnL62P7wLLMDIrLwRHv/Klt511y5hmtdRIYM3eD1ewBDkCLtkPzKHv
         H7q98cEjbmqMl7JVQ4V9ppNWXJfehxF+KZkWj4iUYmLuQA6myNPEWsL+txKy8K+PtVHO
         sRKx8/JM5gQfUmOiwPL82BUVxPL7sHAhIgUWbKJnpgC9j7j4J7gueOW9utd/lXNBjy2h
         CepeUYwCMqk7PnYBtO9w4Km1gmN0sDHnivWhCftPIm3NWqBOffYpFRzYxNGbcsIJwZE4
         865N2ohbfFEXvBfeasrHfV38jYWlxLpJbjaykzwzb/ZIf/CYPXfC0x2BJuDcHcny+i0j
         rE+w==
X-Gm-Message-State: AOJu0YzNtpTeTdh2djz3pHYKoCGl26HoXk/64rclPxV2bq8X20fbkxTN
	PztaOjotafTafQ24Io+v4AZ4ZE3PObnyKP+efsI9NKT2ohG+lPN/UWNlA+LrkSuHAB2us5FiZTG
	mwhpM824xLcII2PQiJ6kTtec6DhYK684=
X-Gm-Gg: ASbGncuhdK7dfhDEEjDVQiktssYSvO05nbDPMpjsZzeK7uUjiUAti8l04u+dlCpWbzC
	2WZGScDmebzQtYUZxEnUoGFaGDM+gxNaLo3DBMg/ksGols5MNe7lg26edrcUrtFxpy4JAjpj0Dm
	5vvl6AkBXQO6yBK8LVSpWNXQDA6sAXXSqydgfYFI5ju/vm1ovha8TDtPcpV0grf2K/06kS18jM1
	RXRO2iK4340fu9XxH6FPFbyvZCE+vwQeO5sg210/eAiV54ybsR+5N5BYLTtasgLs9kC4Q==
X-Google-Smtp-Source: AGHT+IHhVbCzmWCGGUGvzeqKfrW80FrPXU1V0+tYemR0Kd31v6/E6vX59CGPdjWnXpVw76cGfhTlUGO6gMJBDBxvWGo=
X-Received: by 2002:a05:6512:b1b:b0:594:2e9b:f28f with SMTP id
 2adb3069b0e04-597d3efe1a6mr3422636e87.7.1764940742357; Fri, 05 Dec 2025
 05:19:02 -0800 (PST)
MIME-Version: 1.0
References: <b44966513abc729f44795c0d5012e1c5fd106477.1752783296.git.mykola_kvach@epam.com>
 <62173b6a-faef-4919-89ec-5075e4ed3fb9@citrix.com>
In-Reply-To: <62173b6a-faef-4919-89ec-5075e4ed3fb9@citrix.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 5 Dec 2025 15:18:51 +0200
X-Gm-Features: AWmQ_bnv8tXKGPsd7ZTG3GRCInO4wYyruEwR-WkuNfezwfoxUpay8ZsUBawtVs8
Message-ID: <CAGeoDV-tJOjReWqQhKPj-KfDfjzW6jq_LKcwG1XQ5VSuAFe9Ng@mail.gmail.com>
Subject: Re: [REGRESSION] Re: [PATCH v2] systemd: Add hooks to stop/start
 xen-watchdog on suspend/resume
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Dec 5, 2025 at 1:48=E2=80=AFAM Andrew Cooper <andrew.cooper3@citrix=
.com> wrote:
>
> On 17/07/2025 9:16 pm, Mykola Kvach wrote:
> > diff --git a/m4/systemd.m4 b/m4/systemd.m4
> > index ab12ea313d..ee684d3391 100644
> > --- a/m4/systemd.m4
> > +++ b/m4/systemd.m4
> > @@ -28,6 +28,12 @@ AC_DEFUN([AX_SYSTEMD_OPTIONS], [
> >               [set directory for systemd modules load files [PREFIX/lib=
/modules-load.d/]]),
> >               [SYSTEMD_MODULES_LOAD=3D"$withval"], [SYSTEMD_MODULES_LOA=
D=3D""])
> >       AC_SUBST(SYSTEMD_MODULES_LOAD)
> > +
> > +     AC_ARG_WITH(systemd-sleep,
> > +             AS_HELP_STRING([--with-systemd-sleep=3DDIR],
> > +             [set directory for systemd sleep script files [PREFIX/lib=
/systemd/system-sleep/]]),
> > +             [SYSTEMD_SLEEP_DIR=3D"$withval"], [SYSTEMD_SLEEP_DIR=3D""=
])
> > +     AC_SUBST(SYSTEMD_SLEEP_DIR)
> >  ])
> >
> >  AC_DEFUN([AX_ENABLE_SYSTEMD_OPTS], [
> > @@ -69,6 +75,14 @@ AC_DEFUN([AX_CHECK_SYSTEMD_LIBS], [
> >       AS_IF([test "x$SYSTEMD_MODULES_LOAD" =3D x], [
> >           AC_MSG_ERROR([SYSTEMD_MODULES_LOAD is unset])
> >       ], [])
> > +
> > +     AS_IF([test "x$SYSTEMD_SLEEP_DIR" =3D x], [
> > +         SYSTEMD_SLEEP_DIR=3D"\$(prefix)/lib/systemd/system-sleep/"
> > +     ], [])
> > +
> > +     AS_IF([test "x$SYSTEMD_SLEEP_DIR" =3D x], [
> > +         AC_MSG_ERROR([SYSTEMD_SLEEP_DIR is unset])
> > +     ], [])
> >  ])
>
> Marek reports that this breaks the build.
>
> https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10959608099
>
> Specifically, for a build using --enable-systemd (to get the
> initscripts) but without systemd-dev(el) installed.
>
> A while back we went to a lot of effort to stop depending on
> systemd-dev(el).  For the sake of one path, we don't want to bring that
> dependency back.
>
> Can we see about breaking this dependency again please?

Patch with the fix:

https://patchew.org/Xen/f03c8a2fe81527841966ed6c8ed603d1d90ee5c4.1764940296=
.git.mykola._5Fkvach@epam.com/

>
> ~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 13:35:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 13:35:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179099.1502723 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVyF-0004d5-0V; Fri, 05 Dec 2025 13:35:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179099.1502723; Fri, 05 Dec 2025 13:35:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRVyE-0004cy-Tq; Fri, 05 Dec 2025 13:35:38 +0000
Received: by outflank-mailman (input) for mailman id 1179099;
 Fri, 05 Dec 2025 13:35:37 +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
 <SRS0=K96r=6L=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vRVyD-0004cs-2X
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 13:35:37 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 45ce3100-d1df-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 14:35:34 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB6872.namprd03.prod.outlook.com (2603:10b6:510:169::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.12; Fri, 5 Dec
 2025 13:35:29 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.009; Fri, 5 Dec 2025
 13:35:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 45ce3100-d1df-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KN+aOQmP93umK3y03EgD75o8zD/zga/nEE/ThQJSo+1rpwjrezgDQwWB2LRQp7xMkT4lHnfwMZGkAKjOoOf5ZWNiDGUQdreCYYiLvVM+3qMXw0csfhvfmEAEKH9oBXXtIJdV03C43L7mnZs2lsPCfyWkuHLE8HWM5gUAPpgSAU2BTLfImnTGFHaS3UZtEfqamW2r/m6DohInV6cQPmBDc3EPJmPERfnMNvLI2Y+tN4EeG6AO40YcBcr/+6zrrb3RzQpMT7rckvvQj61CUiY0E7qoCEZSabZreMNjzK+lC148eWG6v7ZhxF1fc163G2oyO+HYLsVj7ItxYxpUb9qvKA==
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=O3dnK4SontG63cblmXZYr/N+3el9CMuZhe7a2JZBNJU=;
 b=IIqafiuGh1Gj4tS8HXyNEvr8mb4qZnAgyzJM2WssicNaJfqxEpA6G526Bx8EYbs6JsIeKIPwXGHZQeyw7obvt80pKx8IQsEr3TrdnYJkF+mIjN2UizTs8/vPScOC2EtKifw1knRuvEEHJJWe90CcnAAdChHKEGkLxuHLfnHMxpQ3ZC5Uf8d0KSDFvPEx+1EZtsKdU7z/AC7IaLhGqb81YUcpqrJRrvKvj4mU1zbQwRiP6fPvQ6U4FPzt8FQBReVDkwyeioRwtmEFDlwRWdmaH/F/g7V2qUhcXRJd9OVYA+051KqVHh+JUc1ZpHMusgTyT9gDusdwSToJwZFdQlsnIA==
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=O3dnK4SontG63cblmXZYr/N+3el9CMuZhe7a2JZBNJU=;
 b=flW7/JJa6tYm49NjJRjsNioNBjW9x3i2O3blDoKVFiiIrvv38bCcM1B6IozjFYKBYzbnVEs03R32dqH819Dik8x8nJ90ErAetQgSiNgDVcUB/Rq4nv0GNp8nSLprvou7Dxg6moFNch7CFOeFXK3pzAULT9DXqJGBBAdS4APU5a0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <da9beb79-7d57-4364-a58c-856843b4bb1b@citrix.com>
Date: Fri, 5 Dec 2025 13:35:25 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [PATCH v9 09/10] x86: use / "support" UDB
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
 <78b7c8a0-16ae-49c3-8c7b-5b10f5b0d688@suse.com>
 <e2ce221b-f852-4f9a-8a82-322e6f2af522@citrix.com>
 <846afe9d-458f-4ec8-a58e-faf0617707df@citrix.com>
 <c4346077-d110-48ef-acf6-343cf9ce87aa@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <c4346077-d110-48ef-acf6-343cf9ce87aa@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0296.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a5::20) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH0PR03MB6872:EE_
X-MS-Office365-Filtering-Correlation-Id: 68a0589e-e77e-4466-93f8-08de340327c5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZXRabkRQT2tGTGVCdTJtbWtFZ2hHRGNIcUVld3pOYnZWZzlCM29NbjNZVVph?=
 =?utf-8?B?YStESmtXQWVlS2FtNm04bVRiejJWSXBnTVp6TmJWN3F5NjhyUGZ5Unl3RmZx?=
 =?utf-8?B?NUMvSmdYQTBiZ2p1ZEdHZmt3YmNYUzhmcFZYdm5Ia0haRlFRczQvcGErOS9w?=
 =?utf-8?B?ZURRQjNXS0pJRWRnWERBVzBRTlVaRWZiZXc0U3greWtKMUM0T1gweW5TQW5w?=
 =?utf-8?B?MVRKTW5Ib25iTkUwNlB4TnJvekZvUms3SnNoaWpEeDVRZ0dGdS9GUWd4UW5j?=
 =?utf-8?B?TWI1U2FZc1dLQ0ZLVG4wcHhsUEhub2RGR2oxZzZXN0NEWVRMdnRNd0s0emxI?=
 =?utf-8?B?WmZYMnREUjJUOEJPNzB2bCtrMGJVUlhyRmVyUDBpdjBzWGhZSVFtVDVZTjlX?=
 =?utf-8?B?Z0ZNNzdSRDJBSno2NjkweWRqblMrK3BIbk41SlFnM2FHYjBtSkE4REplQmc1?=
 =?utf-8?B?QkFGWTN5S0cwbzBsOG1NeitZbjIrdEVUVjBaS0d1T0VjT1VJVm42U0IyQlE1?=
 =?utf-8?B?ckxPWTFmWkR0MEdmaUdwTHFHcjVyaU44SnJLNkRDZUVSRjZEczE4d3hHSmdC?=
 =?utf-8?B?YTBZV1NpMmJBZGJRWE12V3NMb0Z5UWpCOFhudmZkeFZpbnhaUTNQRks2YzVr?=
 =?utf-8?B?RlpWVEV6K00yaVdjQlo0RG9tbnBnWTViWHVpcFNvS3lJanYxVE9DLzZDSFds?=
 =?utf-8?B?elJyR0txRGtmaVkyUDJUeEh5eEsrc1dpOGtOYUhSaDB0WDNjVDhCcTFEYm81?=
 =?utf-8?B?NHVpYndUc21McExjdVc1R0Z2OERJTDhpSXAyOTNoS0syZ00zZmV2WVVqWGVI?=
 =?utf-8?B?Ynl3V2ZqYWwrY1RsUWx6K3VjalV6dVVmQjl1eE9BVWlOSUxDeXJDK1hSWVlO?=
 =?utf-8?B?VjNDaGxWaGs4OVpZSE1PdXNtOFhVQzdZdEZ3WTd5U2NyekdnZGtiVWd4Lzdh?=
 =?utf-8?B?c20wSnpRRnpTMkYzbEt1czd1NlM0L3JBdXFqdmd4aGlVVlEweTYrNXpldFZs?=
 =?utf-8?B?TEoyL0kzTlljNUFHU0hxcnpqYyt4bTFSb0duVENKZFRGQmpxbHBxKytIcXFM?=
 =?utf-8?B?WnkxOGNxa1FrQklMYitmUGllZnpzOUNQd0pkS0U4VmtEamZ3ejVwdmVpUCtm?=
 =?utf-8?B?SVhlUnlBeTJSWjY1RStOcThZM3p1dU9yU3RWdy9ZbXZ1OElqMko1eS9BU0FE?=
 =?utf-8?B?ZWtZQnAySUNuRHd3UjlqS2p6Z3VLdUQ3TEc5V1ByTHFVUWVFR2I0Y2hZMnVB?=
 =?utf-8?B?RnRUdFBBV2tPRFQxZ212MDhQQ3dwUXNOaEoyMFNaU0locEpLT3FJVkplc0Z0?=
 =?utf-8?B?ZG4rRU1ZVXh3UlVUNEN5RTVUalpnbVVWK2EweUxEQ1R1UDhOaExaTWkxQW05?=
 =?utf-8?B?VmUvcVl3RVpqN0RqenBLS1BPdFRlZEIrM0t4a2hGZ1k4NU11bXhuRDRiYy90?=
 =?utf-8?B?MlNlZWJqV2VaUnp2dGw0NmZUYXk4YmZDTDVBMEs1dEd5MDVyNTlOVTFuYWlJ?=
 =?utf-8?B?RVNRRjAxbTBma05TeEszUHZqUW1PcHM5SjlwcjJzekwzU3lWZGJtL0pqSXND?=
 =?utf-8?B?cUZRdldCSGRLNXYxVm0rYTFyTFlYRzhWb0g2UGVQK2dPa3BWTEg3cVN4amtO?=
 =?utf-8?B?MlorOWl2RkllQXJyWWRvWkpuNzhzUTlFd0hnbG9WV2Uwd1lvdUpvQWlVWHdj?=
 =?utf-8?B?UWpFTmNVd294UENoRTRSNE9PVGFvTllZVUM0MDV0U2pJeGtaVkk2U0c1TDNu?=
 =?utf-8?B?bEYyQ1ZkL1pRcjhSSjFHeWdoYVZUNlNoNHBqUlFRRlpxdVZTajRsVUEvTjcr?=
 =?utf-8?B?WnliTGVKYlhJTWxZUEVQdWx6SjZtOVU3STBudVNQN2N4Yk9lM2F1UUV2RUts?=
 =?utf-8?B?T2NGVFlsa0wvS0thb3k0eUdRYUJnWm1UbTFYVVdmMnVXU3pjSng5QWxGZ25K?=
 =?utf-8?Q?hP3UlN/qQg4VUwKSMVJ54Se3+I83/bYc?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?akRNZHhxcnArNXpjc2VVbFc4RHRUQksvOUxxSlplVGVUL1FYVDIrYVM2OG5i?=
 =?utf-8?B?VzZHQytsS0xTU1kvbHBCOWVNQnhSYjlPTlh1V3Q5MExoNFFoZERpTlk0enFi?=
 =?utf-8?B?OE9tb2ZydzZNMzF3TnUyYnVZR3FBKzVZODVzS0FPQlovTVUrUlBDTGVrMGhz?=
 =?utf-8?B?cjZkcmdjV3IrbDBsVWJwb1FDTHZBR1V2QkVtRjd5Q3Nxa0xpTk04M3hGUlhM?=
 =?utf-8?B?MkFBM3ZUejJ0c3NLdTlnMEw2NS9DUnBLYkxjT2tiNmdoQUlLckxQWkVDTDB2?=
 =?utf-8?B?ZDVhUU80cVg1SEM0UnVCNE9nRVhNbDJxUFBxVGg3RkVYZTF6NGJtMURCc3Aw?=
 =?utf-8?B?VFhLbE5qSm0rSXhSaVorZi9ZRHl3YUgxc2dwMGhFRUhwbVNONUlxeEJNdHJ3?=
 =?utf-8?B?ak13OW1Ea2FEMVFZYkNDNmF3dno0NjdqVVMrT1hWT3ovdEMydlJ5RFVZdVRV?=
 =?utf-8?B?V2xNNk05aTNsWlIvQld3QmIvdy9kY21Jc3BwK1hrZ1lhWDJUTEdQdmMrdTRB?=
 =?utf-8?B?citneHpoZy9IbElsdVhOWmoydVdEZkZjYlYxQkZodUErK3NOelRuVEduUHJ6?=
 =?utf-8?B?TWw1U1dQQ0tlR3B0UWRSbGZQQmdISXM1aFVNZ09UZHYxZjNIcjZKdHNEL1By?=
 =?utf-8?B?T2NhMktuKytLaHd2RXdRT29ZQ0pCaVM4K0d0elpIRkRMR2JyeVFMUEhmWE1O?=
 =?utf-8?B?RWNIUCtUVmR2YjNZMURPREU0aUVyYW4yY2hCeWlwZlRBOWoxMDk3b2lMbjkx?=
 =?utf-8?B?d1NmaXIzTU9IeXRoZXdLTVkrcG02VzNNWXdYV3ZSK0lrdWdoWDB1TCtQOXlp?=
 =?utf-8?B?TVNJR1hUYmVNY1V6S20vdmRFMnBQcnJqdzVpamM0MXNMMW9PdGhpS21SMVhD?=
 =?utf-8?B?cHhmWVh1MDhZbEtvM2d3b0ZHQm00eXU2dFA5bjRDa0ZNMHBIKzNCdnp5K1d0?=
 =?utf-8?B?ak5hWE9IMTQyYmlKTUQ5UW4xYXFYQVhwS1VqcmQ1ZEFrRFBUa3BlZ2tKOGMz?=
 =?utf-8?B?UUZSVU9JdndrL2J0YTl0RWZGWDRoL0JyamRVNjJTM1lpNHJlbWN4aWZKZWtE?=
 =?utf-8?B?ckVmcVdjdGJEV1JKRkwwNHptaXN0UjcvVTJFVi9VUDBKUkJUbGNpMWRzUFlu?=
 =?utf-8?B?bGl5OWlzOTc1aGVqOWpXd3cxTUQ3M1dBTjdvc2M5VlRlazJEOTJrYVQzaHQ2?=
 =?utf-8?B?T05DN2p0RlQwN3BuN09XeTVaa1lxM3JMS1Bxcnl1ZERhVjQvSU5kNndqaVdS?=
 =?utf-8?B?VXlQSWlMNkVlU0ZMUVhOb09TTkFoN0pmVlJ2SU9PRnpFcUhGZzBkT1dzektk?=
 =?utf-8?B?amRod0hTLzNhYU1Ebml3OTREU2thQk4xMXBGWXpVT2VqUGRmZytIS0hJbnpw?=
 =?utf-8?B?TFN0am93YjBMS2dNMnArSW9sS3E2cUQza1ZCM0xCZ2NVMmhoc2VZclo0Q25Y?=
 =?utf-8?B?K1c4N0dRWFlndStaMlVQRjFtMVM2ZXNBT3NuTTdoTmZENi9FTm1sQlErcGdv?=
 =?utf-8?B?a2RKVVlUWkJNZGh1TnQ2aElwc0NiczhEMlRtYkdFNUkwVzJPWGxLUVRHS2pI?=
 =?utf-8?B?cDk3MzR0NnVRVks1cG5ZSm1jUCtZc05YU2NGMytSajlYQmZrMU1xc1l2alJy?=
 =?utf-8?B?RVBjZnhiZmdoN0x0WnVTSTFkL2d4LzhLT0lHdllVQ3BVOVVHYnYxeEs3elo1?=
 =?utf-8?B?bmdTZ0NwZVNwYnRjMFpub1R4RXB3K0tVR1BuUFczM1IvRXhoaTY4MnhzeFFl?=
 =?utf-8?B?bkFxbUpZVlgrN3ZmZ0JmTXFBWmdQdi8wQVJIbTZVYThyODBiOC9kSVhpa2Nl?=
 =?utf-8?B?OFZTNGZocmNnTVhPWDNFNUFqOVI0MWlIemZCVVNkdktqWC8xeHhOb1JKMTZR?=
 =?utf-8?B?ekp1RTJpbG41Ti82T3FBdlpOY0JMWkRkNUZ1UmdOVFk2WW11NkRWbStBd1Jk?=
 =?utf-8?B?T09Ma2dRTXMxRDlBaHNWaDBLeUtZbDhraFFRNDRHNEtxNm1TOUFUZzhCWE5r?=
 =?utf-8?B?ZW5KS1JnZUs1eWhsSDhoRVhkSCtBaXk1R1N5bDNuVWVNaVpNbnJVbnc3aW9m?=
 =?utf-8?B?UHhCcitOSmltS2s5bzhxaXNXV2VzOEVlM21kVDNIczNDUndkanhZQ3RGWnEx?=
 =?utf-8?B?U3VER0w5RzdjN0NKdWlYeFU0Z3dyQk9WUTM1TVhacmFYbGlvZVlNeEtVMk9R?=
 =?utf-8?B?aUE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 68a0589e-e77e-4466-93f8-08de340327c5
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 13:35:29.1430
 (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: SWxDmcFVexVSTvzbBlDX2JjzUGhauYlhMwDt3Ppj+9KKcazs2b9G4XmDBXN230qFd2dI5QkyKb7WO2oEC8vB1N+nFd8OjUo1BgSsVW9vt70=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6872

On 05/12/2025 1:15 pm, Jan Beulich wrote:
> On 05.12.2025 13:40, Andrew Cooper wrote:
>> On 05/12/2025 12:01 pm, Andrew Cooper wrote:
>>> On 24/11/2025 3:01 pm, Jan Beulich wrote:
>>>> --- a/xen/arch/x86/include/asm/bug.h
>>>> +++ b/xen/arch/x86/include/asm/bug.h
>>>> @@ -21,7 +21,7 @@
>>>>  
>>>>  #ifndef __ASSEMBLY__
>>>>  
>>>> -#define BUG_INSTR       "ud2"
>>>> +#define BUG_INSTR       ".byte 0xd6" /* UDB */
>>>>  #define BUG_ASM_CONST   "c"
>>>>  
>>>>  #else  /* !__ASSEMBLY__ */
>>>> @@ -37,7 +37,7 @@
>>>>          .error "Invalid BUGFRAME index"
>>>>      .endif
>>>>  
>>>> -    .L\@ud: ud2a
>>>> +    .L\@ud: .byte 0xd6 /* UDB */
>> P.S. Presumably binutils is going to learn a udb mnemonic at some
>> point?  Can we include a version number in the comment?
>>
>> I'm trying to organise such comments everywhere so it's less effort to
>> figure out when we can drop it in the future.
> For them to be useful, wouldn't we need to settle on some canonical form
> first? Else how would one locate them (other than by coming across them
> by chance)?

I don't think a canonical form to use.  Some of the (in progress)
examples I've got are:

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 16368a498bb7..870823f7991d 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -14,10 +14,14 @@ CFLAGS-$(CONFIG_CC_IS_GCC) += -malign-data=abi
 $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
 $(call cc-option-add,CFLAGS,CC,-Wnested-externs)
 $(call as-option-add,CFLAGS,CC,".equ \"x\"$(comma)1",-DHAVE_AS_QUOTED_SYM)
+
+# Binutils >= (<=2.34), Clang >= 7
 $(call as-option-add,CFLAGS,CC,"movdiri %rax$(comma)(%rax)",-DHAVE_AS_MOVDIR)
+
+# Binutils >= (<=2.34), Clang >= 9
 $(call as-option-add,CFLAGS,CC,"enqcmd (%rax)$(comma)%rax",-DHAVE_AS_ENQCMD)
 
-# Check to see whether the assembler supports the .nop directive.
+# Binutils >= (<=2.34)
 $(call as-option-add,CFLAGS,CC,\
     ".L1: .L2: .nops (.L2 - .L1)$(comma)9",-DHAVE_AS_NOPS_DIRECTIVE)
 
diff --git a/xen/arch/x86/include/asm/asm-defns.h b/xen/arch/x86/include/asm/asm-defns.h
index 239dc3af096c..b1d5539bdc7c 100644
--- a/xen/arch/x86/include/asm/asm-defns.h
+++ b/xen/arch/x86/include/asm/asm-defns.h
@@ -27,6 +27,8 @@
  *
  * With no compiler support, this degrades into a plain indirect call/jmp.
  * With compiler support, dispatch to the correct __x86_indirect_thunk_*
+ *
+ * TODO: Use %V constraint modifier (GCC >= 8).
  */
     .if CONFIG_INDIRECT_THUNK == 1

 
The examples using .byte are easy to find.  It's rather less easy doing
the archaeology on binutils, as gotbolt does not have every release
(unless GCC and Clang), and the release notes are not as great as they
could be for some instruction groups.

Our Kconfig annotations are better (insofar that most are annotated),
but even there there's quite a mix.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 13:53:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 13:53:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179118.1502734 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRWFL-0007Z3-Gh; Fri, 05 Dec 2025 13:53:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179118.1502734; Fri, 05 Dec 2025 13:53:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRWFL-0007Yw-Ds; Fri, 05 Dec 2025 13:53:19 +0000
Received: by outflank-mailman (input) for mailman id 1179118;
 Fri, 05 Dec 2025 13:53:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jrem=6L=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vRWFK-0007Yq-Op
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 13:53:18 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bd3a4cfc-d1e1-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 14:53:13 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by SA0PR03MB5627.namprd03.prod.outlook.com (2603:10b6:806:b2::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Fri, 5 Dec
 2025 13:53:10 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9388.003; Fri, 5 Dec 2025
 13:53:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bd3a4cfc-d1e1-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=I4uXBhNP6UpN59iH3MTvQppI0+1iQ2urPHw9pmL1xgI8hWOT+2G0k0BYFtumzhF91kNOsO5y/fuY+8LMyXUdfNNwZqeD/CEntKSUoVFjQr7y/LFS61LDYftBTh8SNkJNOJw2ppHxPwXQiTsfH3ZWUrrJcGNBEikG7pNozbJOMt+4gTli9a+mXJ5msvanyjD9yCL67kOr3eO/bbHjLDOx1ShaynTddJUafQF4mcmN5e4e9bPyyFBhxogqy65IxcgcZpeuHVwpUVGrKVkrqQABSGEOLKxVZhe6oKvJ5IuX5irLNVBsoz8xdFGbPeVV/IZGO5XmfFxRS/ABRLS3ot2rTQ==
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=oXfCLneTDE/wGmjOVHRM+sWugPFQ+/KQZJeE3ZuLfwI=;
 b=C/PZ5A/gpG3lBfxgk9dVfpMIFdBrId0Q7CUTpBffSxlQ3/I8dySGZBS+gBle/TtGfL7rQc6JXMzOmZDu3VuUeFDJlguQhEjtLfKEBCf/MmXhUC2E3wz6UtpSGhqL4Q0pikrr3nYeHw/2ImI1IFjZ4F2wCfRxiqCwCSROvO7gaxIv2w+4gjNDZ1qgCwDhRxEIeJlto5tyFW6iXKiX3cgBqut8NDk8gqwmxUar8ZNNtcVIL6ayOKI6lUIhNdGKwvJsEB/Yt7xXO0Bd5yUtQoXi1BPUlVsssDCz799u/qdSbXCo75OKt7Y60h6us+aA3FOcX6u9hieogF5JCD9z+LA8yA==
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=oXfCLneTDE/wGmjOVHRM+sWugPFQ+/KQZJeE3ZuLfwI=;
 b=eghA5vRQW9KrH3zbyqRNNadhkEl4iBZy/kzF4nUJVqgitHz8yT6cR/nnWBM4DPv3WWRou/h+NZ7X+kL7qRoJdS3/frazHPkaWoB7Lpu4eWEr3fUAPvyfAwm/xpPtu+JpHU2wZCQKtgiOXu+NayWy2ZzUw8Hqj3gf3VprCTLMfGo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 5 Dec 2025 14:53:05 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	Juergen Gross <jgross@suse.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Anthony Perard <anthony.perard@citrix.com>
Subject: Re: [PATCH v3 7/8] x86/mm: update log-dirty bitmap when manipulating
 P2M
Message-ID: <aTLjwbcm4fjwNJfb@Mac.lan>
References: <a0f019c5-4089-e19c-6041-044d6e93d80b@suse.com>
 <d47d01dd-0289-370d-7b5e-bd80f9e0a911@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <d47d01dd-0289-370d-7b5e-bd80f9e0a911@suse.com>
X-ClientProxiedBy: PR1P264CA0177.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:344::7) To BY1PR03MB7875.namprd03.prod.outlook.com
 (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|SA0PR03MB5627:EE_
X-MS-Office365-Filtering-Correlation-Id: 678f3b1d-a653-40c4-7964-08de34059ffa
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YzVzOEhOeWpWQ3Q1MkFiaFFEdUo3UTFzOGUydC9sb2M5cFVBR1M4N1hnRlhE?=
 =?utf-8?B?M2xRSVdENXRXbGdyQk9FUVFqTSszTitSTjFoRjZVY0x3WHk5YXQ0dFFxZzFa?=
 =?utf-8?B?SWFadmNLYjVtRWRWaDR1bkdic2xQWHhnbjhyUHV1MHRORU92bERhSTRuWHNU?=
 =?utf-8?B?czlWWHkvL1NPRFZNSk9EZ1pTeHZnay9YSk4zMnhST2lIMmZBWlNhS2JWdis2?=
 =?utf-8?B?RHQvcjU3K2hVNSt3bVVDUzczM0MvNTVMdHJnek1TVm1Kb3JKdUZ1ZUFwdjBs?=
 =?utf-8?B?cmJIdDBPQ0h0WVRuY0tQZXFYaW93bXBGdWV2bzJLWXhuVlhxaTQ2eVdyWW9y?=
 =?utf-8?B?Sm8veW0waFZLWE9ZZmZxR3ZiMmxUeHJYdk41bzA4MnN1dmRDWE9Wa2ljNVdo?=
 =?utf-8?B?RjFPZWV4NU8wc2U4SEdnZkoydTBrTEcvWGZEYzBLaktkb0dSbFQ5djB1M2RL?=
 =?utf-8?B?M0NMMkFLSjZydCtnak05Q1NTMkVGblpuYWsxanJ2YThHNnRSaFM5R1plbW1q?=
 =?utf-8?B?ZkwrMlFyaFd4cmNYOTMvS3hVTGdmdC9QbHBVU0J6ODFQZmFLRWNRYjBMazYr?=
 =?utf-8?B?TmllamZuSGQ4c0VaakZHNzBIc3FzTWxiNHMvSndLdTNsNkd2cmp3RnlhZDRO?=
 =?utf-8?B?bFNQa0lucENZMXpsa2xVQ0lzVXN0VzFKY0lIbkllV05KV3l1RVJMT09saHhV?=
 =?utf-8?B?eGF1cWNLcDRKN2FpaE1LZlZxODd0UU1QaFEvK3NHT3hhQzdIam8wQ1ZjYXdr?=
 =?utf-8?B?VEMrY0ozZE56MU02VFp1TlUvWENUSkp6WjRTcjNWQWpySk9ER2xoaWdlT0Zo?=
 =?utf-8?B?OHZ5Titwc3VmK2s5TkpJa3JKVTZRZE1sdWNBcHA4bzNhKzBhc24vWWIzZ0Qx?=
 =?utf-8?B?c3lxeThDYVljWG5vTWdMSlR5aE5obmh5ZmIyWEYvN0tKMkxrNkYzaVVWaGFW?=
 =?utf-8?B?TXJCRU1sQW5yTnB3cW9VaEtUQldFZ2FlemFKK2pJM1pJMDNVU1IvMzJaQTVk?=
 =?utf-8?B?Z1hOdlZnSUNBVXZqL2EwMmc0SnJlME1mODFrNkpqMHNoanR2Y1A5OWpxdTZk?=
 =?utf-8?B?elpiRzVKc3VFWjdLYTUwSjExOE1rck93TFI5WjB5eWdQT1lmUWJ2VnNQcDJV?=
 =?utf-8?B?eDFHNFdLRVZDTVJTbHRPRW42ZDhzL250NWRZcE5vL0dyTGhJZUZRakY0SjdF?=
 =?utf-8?B?RFdqWmdsNmdVbExPNnhUd3RhRDRqbGZXaGdsZ2RuNzMvUGY0cVk2SGw3QUV3?=
 =?utf-8?B?c1k2Rit1ZE0zQytyOUpCVkxQWi90SC9sQWtwa1ArN3NKaWQ3QUFLUWNkUjdF?=
 =?utf-8?B?Wmh5Yk83VEgrL0phSkNNSklHZW1DNkFLQ3BPOUd3MmYrQUZZZ1pab080YXFs?=
 =?utf-8?B?eTd6eUlvcUVNZXowVzVrbEx4bVFaaE4yYlNRd0V2QWFQS0NSWkVLbDJNRU1T?=
 =?utf-8?B?TVdvMHV2ajF6WW1WcjA0QVF5VWlaRHppTmlydjIrKzNWZmhQN3pMNERSSlNt?=
 =?utf-8?B?c0F0N3hhMWNBbDVPRHNpdFlhcW8vcmgxTEs4b0xZM2Y2bGxvZTlNVzNJVEVN?=
 =?utf-8?B?d09JeDZydTBZYWVGMGtpQWhrWlM5MVppcHNvNDNST2FiYjUzc0lNcUEzbFVZ?=
 =?utf-8?B?UUUzN29hVG5QdEZObmNDY1h1SGgxS1FpT01pYWdsZ2JadnNvZHJDMWlYa1R1?=
 =?utf-8?B?VTVHejJhc2FaZzlLNlRTYi8rNWdNTHZ3ano5ZWV0dnBDMEFJSUhuVXJvRWUx?=
 =?utf-8?B?Y3MzNngxVEpTSTg3OHV4ZE1LTU0xMEdTeTRoTGY3S0VyVnVJa1pXNGt2S2JG?=
 =?utf-8?B?S210QTJPbkx2TDJ4ZHhNZGF5OXdoRUJXTkxqdWY2SjI5M2hFbDRUa2t2UUkx?=
 =?utf-8?B?QnorZlRkM3hlN0VxVTkvL1UxTEZpVWRyOW1jQlhmQUR1WU9JVFRxOXpWZWpF?=
 =?utf-8?Q?hlIxalDD1AyHAAMbC0j+gq42B+nKg//1?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7875.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QnlsYk1MMUZBQTZhdnVYaWhZOW42QXh6dU1FR29jUjdZRFpTQk1mTy96VGM4?=
 =?utf-8?B?WWxOWkJLYU9IVVpsZldVY0EzV21ERVcvdjVxZ2xrdy9iZ3pETHFjL0hYYzhx?=
 =?utf-8?B?MVVyeHpjY05KbWNwdEUrVXF1L1BVK0dEMmU0a1ZOUVpSK0Evb0dDWUV3eGlz?=
 =?utf-8?B?eCtwR2E1T0lrYWIwblJkVU5MbEFwQzZpK2NocUpiQ0h4Y3FhK1F3d3BGVVBM?=
 =?utf-8?B?YXdqU0NIV3lmNVIzK1pZWGp1SW84VTlEZkZUWjJwV1hVRUQ5WHFKTkNGNUxY?=
 =?utf-8?B?K1AwVzdvTXB0ZnBIUG1RczFQRGFUbkVrdHdzSGFzL3didWt3ZXNtN3U1UjBX?=
 =?utf-8?B?dDdVakgyZFUzUTlMZE5UaWFuU0JkKzVtOVhGTTFoa2JGd0puVTFVZ0xXSkhK?=
 =?utf-8?B?U2ZxSC9vamZDQnpON3FrUXo4MDhkVUVrWGQ5d1F6dXhrVHZjWXVucTkyYjBG?=
 =?utf-8?B?N0oxY2x2RGVXOGQyaTV1b2I2R2VnWGYvRnFBUXpROStIL0hNM3VyZTNxWXZG?=
 =?utf-8?B?KzlFRG1zdkNJMlc0OXlpR1dObm50NEEyaTlLM0lUcU00bExteEo1c2EycExo?=
 =?utf-8?B?VmtKRW95d3RqY0ZHUEJSY3ZtaGhYc3hHQWRDc2hoRDBkeVFZQlM4Ym45bkRO?=
 =?utf-8?B?aklUS1JIWFkydzR6TE1IcTNjaEdnSTFwSjJtcUJWNEZ1QjF5dHNpbGhKeTlj?=
 =?utf-8?B?cGlmQmJ5QlN6VHkxdDN6dVRsbkZDQXc2Qzlod2FWSmdvZHhUblRWWjQ2SGlN?=
 =?utf-8?B?VmQzMDJwaS90UjRocjJMb1FTU3JwVnRhSzdiMXpjZkE5ZzY4dTNjTXhlRVlQ?=
 =?utf-8?B?WWZLc3VOb0IvaDRPdzhFcURVRlNpQnAybHBiYndYRUZENGpiM1FRVEdJREh1?=
 =?utf-8?B?amZ2TkZmb3ZBOHV0NktoUnptcHZkWkgzU3c3eUFQbHpQZzJ2WGxpNWJ6YTRF?=
 =?utf-8?B?MFRhc3BmN2VUaDZiclpsdkwvbGVRZndQUDJuOGI0MlkrcjVIVVRQZjI1M2lO?=
 =?utf-8?B?Q1V0ZVk1clc1SWZHQWVrR1d2VjBLRDBoSkJMWGwySWxHaXVyNmtWUnhqQS9T?=
 =?utf-8?B?YUJGREo3ajNoU0svZDhjM3RXcDFOeEtaWTZreDJsV0RGMEhiRlhrSHJQVHdO?=
 =?utf-8?B?cHQ0YWtzYjUzS2d5K3g1RDNjN1lpc1cwM2htZXQzSWdVVVo5WWpQUjY3WnNk?=
 =?utf-8?B?cDdFaFYrQVJ4NW42d3h1Z2V2clRFTWdUQjl2M0ZmMDFZQXhhK3FFNkpmK0JD?=
 =?utf-8?B?UUU4RzMrZVFSOVpzTGJ0VnRuVVZZYTNFMFlhbURwY3NMelBUSVdYMUk4WjEy?=
 =?utf-8?B?YXVsR2t2OGdUaStKTGhvQ2thY1l4WHo1ZVhQUFhLbUFEUGRFSUxERGN3OTlQ?=
 =?utf-8?B?b3I4SkpzR1d4M1ZKcEc2d1JreUNnMDlPeC9SVUF5bFhBTTk3NFpWVGNGSGxX?=
 =?utf-8?B?bTNKZUY0ZEllVzRvck9DajhzSGxxek1TRzVER2w2SFU4Y1ZDUHBHLzlyQVFw?=
 =?utf-8?B?SXVIZVVZOUk5bmswa1k1NVg0QmplaEtONkNhdDV6R1hWeTZnbTVRWHMxSDZW?=
 =?utf-8?B?NTVCRkI0MFJTenlPRG0zZkR0NG91bXVPSCtHSHJYek16TUVHRzN4RHJGWU1J?=
 =?utf-8?B?cEdjbGxzVDh5UlBLWDdtVlZOR3o0Z1FCQ2RueEJQUzZoR0d3SXR5eDdkdTl5?=
 =?utf-8?B?U1Fyb0lMbzlreVIzUFZOUUt1ZjIvTjZja0JIZDY1alFod1c4REJiV1gxVWZ4?=
 =?utf-8?B?ZE5SSThCbkFQVE5SeUJXQ1ZwdXBweVpNUkN5T3FLR0ZseHk2d3pTSFlvMUsx?=
 =?utf-8?B?NTJzQ0RyQ0lNWHF0Ym5XNUNOay9WeEJjWmRvcXNtYlBYaVdsNm5GN0VRWmo3?=
 =?utf-8?B?dWw3QUNSZE5jMUIvaFNxUG5XUzV4Y1hFTUw2Wm1BYXQySkVIc2RNZFhlSVJF?=
 =?utf-8?B?RWRXcFAwSVJPbUhuT040QzF4RE1EOXVPOG1LZktyMkEwVnM3dVJTcWFOMEcx?=
 =?utf-8?B?Unl4WnZJeTlUZU1zYjhUSGtmaFNiVEJIa3dsZHpManVLZW44eXlhRkRsUVp1?=
 =?utf-8?B?VTEydStzZytpQ05PejF2UHJxU3kwZGZ4MGdwem1hU2l5NVVRVlF4cVg3Ym5N?=
 =?utf-8?Q?jpUd41rQVD8MHAVpDgxAc4URl?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 678f3b1d-a653-40c4-7964-08de34059ffa
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 13:53:09.8311
 (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: PAtMCteJfifMmVpGgOxjBsp5mg+pyAqtVrtIdMUinrTcOU10UqjE9Ga2GIFJaSghAlpgYl14SqwW7GvNV6WZgg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR03MB5627

On Tue, Apr 26, 2022 at 12:26:10PM +0200, Jan Beulich wrote:
> Just like for PV guests MMU_MACHPHYS_UPDATE implies marking of the
> respective page as dirty, additions to a HVM guest's P2M should do so.
> 
> For HVM the opposite is also true: Pages being removed from the P2M are
> no longer dirty at their prior GFN; there's no point in telling the tool
> stack to try and copy that page, when this will fail anyway (until
> perhaps a new page gets placed there). Introduce paging_mark_pfn_clean()
> (intentionally without a paging_mark_clean() counterpart) to handle
> this. Note that while there is an earlier call to set_gpfn_from_mfn() in
> guest_physmap_add_entry(), but there's little reason to mark the page
> clean there when later in the function it'll be marked dirty. This is
> even more so given that at this point it's only the M2P that gets
> updated, with the P2M still left unchanged.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> p2m_add_page()'s error handling looks bogus in this regard anyway: If an
> error occurs before an MFN actually is assciated with the new GFN, the
> M2P entry ought to be restored imo. But of course a guest is still hosed
> if the operation succeeds partially.
> 
> Note that I've not even checked mem-paging and mem-sharing code for
> whether they may need similar adjustment. At least the latters is, aiui,
> incompatible with log-dirty mode anyway.
> ---
> v3: Re-base.
> 
> --- a/xen/arch/x86/mm/p2m.c
> +++ b/xen/arch/x86/mm/p2m.c
> @@ -549,7 +549,10 @@ p2m_remove_entry(struct p2m_domain *p2m,
>          {
>              p2m->get_entry(p2m, gfn_add(gfn, i), &t, &a, 0, NULL, NULL);
>              if ( !p2m_is_special(t) && !p2m_is_shared(t) )
> +            {
>                  set_gpfn_from_mfn(mfn_x(mfn) + i, INVALID_M2P_ENTRY);
> +                paging_mark_pfn_clean(p2m->domain, _pfn(gfn_x(gfn) + i));
> +            }
>          }
>      }
>  
> @@ -737,8 +740,11 @@ p2m_add_page(struct domain *d, gfn_t gfn
>          if ( !p2m_is_grant(t) )
>          {
>              for ( i = 0; i < (1UL << page_order); i++ )
> +            {
>                  set_gpfn_from_mfn(mfn_x(mfn_add(mfn, i)),
>                                    gfn_x(gfn_add(gfn, i)));
> +                paging_mark_pfn_dirty(d, _pfn(gfn_x(gfn) + i));

Have you considered placing the respective
paging_mark_pfn_{clean,dirty}() calls in p2m_entry_modify()?

There's a lot of repetition here with regard to handling the side
effects of p2m changes that are forced into the callers, that could
likely be contained inside of p2m_entry_modify() at first sight.

> --- a/xen/arch/x86/include/asm/paging.h
> +++ b/xen/arch/x86/include/asm/paging.h
> @@ -165,8 +165,9 @@ void paging_log_dirty_init(struct domain
>  
>  /* mark a page as dirty */
>  void paging_mark_dirty(struct domain *d, mfn_t gmfn);
> -/* mark a page as dirty with taking guest pfn as parameter */
> +/* mark a page as dirty/clean with taking guest pfn as parameter */

I think it would be clearer to use gfn here rather than "guest pfn",
and the function parameter should be "gfn_t gfn".

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 13:57:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 13:57:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179128.1502744 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRWJQ-0008Dp-1B; Fri, 05 Dec 2025 13:57:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179128.1502744; Fri, 05 Dec 2025 13:57:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRWJP-0008Di-UG; Fri, 05 Dec 2025 13:57:31 +0000
Received: by outflank-mailman (input) for mailman id 1179128;
 Fri, 05 Dec 2025 13:57:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZEed=6L=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRWJP-0008Da-5p
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 13:57:31 +0000
Received: from fout-b4-smtp.messagingengine.com
 (fout-b4-smtp.messagingengine.com [202.12.124.147])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 532cabdf-d1e2-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 14:57:24 +0100 (CET)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfout.stl.internal (Postfix) with ESMTP id 3E2DB1D00192;
 Fri,  5 Dec 2025 08:57:23 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-04.internal (MEProxy); Fri, 05 Dec 2025 08:57:23 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 5 Dec 2025 08:57:22 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 532cabdf-d1e2-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1764943043;
	 x=1765029443; bh=QX/gPZm+x1mcyArJqj0mE5WToJQ/FY7tVZSoiGMcEAc=; b=
	bdOWTmFoV3YYswtCp/B5stofi9im0WquEkkns0ym17HHtD3s+cXCE5KnSVpXHXrs
	4ccKfbbjmSyEVUc5Ypqb+eLr5bXkm8MzrNLtRjsCoWAj90O8hYMVeXa+DwxKF91a
	tp5sfqWoOSe68Y2FPnrwxdsvmVLY7i6QGx6TPgTDaSs0Cx6VrCme/4IdrBRphUGk
	0UXPHMKIWBJ6loUg4M6TEY9W3W50NfxpTR+I7Rcjf+KhDySDy03HgD5KQtHrIqup
	/bqbjo5UvMCTk7JSSgjYZc4dUAGrcrUUUXO4gbHxzAj3St0SSFN46IgsQEAAB68P
	IiowoPbSKY9LZpJfh9Xy4Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
	1764943043; x=1765029443; bh=QX/gPZm+x1mcyArJqj0mE5WToJQ/FY7tVZS
	oiGMcEAc=; b=GS6lUveM1htf1mnLWak6ID4Uh7oyH2T65UpqiCkphI9iszci/et
	7NHjsh8OHfcqaseth5sLgTLfkKnBKA+ZpHvJMF8pgPALgJ+Me17Etum4jti8WVE2
	jjGmtPkoO54y5oZD7MePf6GK9kkR6urPU5U0dhuU25JIJDA7TO1vggLrJBezFQfj
	1QkSnJm6o5L4gkQbs4qrA4fx1XMWJRi+ZudkhjRrKvGsx7W6rY/g3A25WorcivO2
	YcF+uoUvcjJNXIGAPtqQExI01psSTRSs2to9pkps8qecSm0QqRAYGWAObUQCACEy
	9cKxPDQ2c8fgK+uHB8dwMWWNvjxZgWFQwCg==
X-ME-Sender: <xms:wuQyaf3SXYLFCTZ_vpXlIwB4BUn40cNN29wirS5YPpZhlGqbc9Z_Pg>
    <xme:wuQyaVHk7BdF8EJiGKKbuwwbJHGUseXMifOcBA0pFF4TtqSmQnR-MfzeJk1hdhKxC
    _0LoSEvOqgOCQOIp0Vx71QEGyMYtSIIRXC7CfRD2v7yLZea9g>
X-ME-Received: <xmr:wuQyaU4KlCvpI-8YPxbPBqjhTS1-55RyELW5MfTye2OESQk9aX2yoIb4s-M_Xl3kdJse8FYE2rbRYfQBestdKRt9luBdmD4Fa2A>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdekheehucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    epfffhvfevuffkfhggtggujgesghdtroertddtjeenucfhrhhomhepofgrrhgvkhcuofgr
    rhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvihhsih
    gslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepkedvgfdtkeff
    ueehheekgfeuudegvdejueehteejgeefffehkeejhfejveeugffhnecuffhomhgrihhnpe
    hgihhtlhgrsgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr
    ihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrd
    gtohhmpdhnsggprhgtphhtthhopeegpdhmohguvgepshhmthhpohhuthdprhgtphhtthho
    peigrghkvghprdgrmhgrthhophesghhmrghilhdrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehm
    hihkohhlrggpkhhvrggthhesvghprghmrdgtohhmpdhrtghpthhtoheprghnthhhohhnhi
    drphgvrhgrrhgusehvrghtvghsrdhtvggthh
X-ME-Proxy: <xmx:wuQyaTuFUowVwzquDnH5s8F22m0B6WvNHVcg0xMK9-uavw92yjttJQ>
    <xmx:wuQyad7xeozjNesL44PaYXPSaDYKXZivbvV5GlELnaHUPY7PScyFuw>
    <xmx:wuQyaWW95BDCdPpqfex9LejM-8Q7z4mQ73_l-fDwIFWCkexZsQX4Rw>
    <xmx:wuQyaX91lGq_t9je51Ojjs6ewNRX2NS-ZLUTY5leH4JDCIwdvaXrEw>
    <xmx:w-QyaY5rLX_r0MIUoUsFO0U2dXm9RU4K_5DLQumKNNzPheAnd39Ddlql>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 5 Dec 2025 14:57:20 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH] systemd: default system-sleep dir without pkg-config
Message-ID: <aTLkwMpxchYSMnyT@mail-itl>
References: <f03c8a2fe81527841966ed6c8ed603d1d90ee5c4.1764940296.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="DCwzspm2pCAnNB/v"
Content-Disposition: inline
In-Reply-To: <f03c8a2fe81527841966ed6c8ed603d1d90ee5c4.1764940296.git.mykola_kvach@epam.com>


--DCwzspm2pCAnNB/v
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 5 Dec 2025 14:57:20 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH] systemd: default system-sleep dir without pkg-config

On Fri, Dec 05, 2025 at 03:13:32PM +0200, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
>=20
> Using PKG_CHECK_VAR() to obtain SYSTEMD_SLEEP_DIR reintroduced a build-ti=
me
> dependency on systemd-devel. This breaks --enable-systemd builds that only
> need the initscripts.
>=20
> Use the same defaulting scheme as other systemd paths: if SYSTEMD_SLEEP_D=
IR
> isn't provided, set it to "$(prefix)/lib/systemd/system-sleep/".
>=20
> Fixes: e54a6cd6a1f3 ("systemd: Add hooks to stop/start xen-watchdog on su=
spend/resume")
> Reported-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab=
=2Ecom>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> Build in which the regression was detected:
> https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10959608099

Requires re-running autoconf, otherwise still fails:

https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/12336879267

With autoconf:
https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/2198372475

It's better now, so:
Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>

But unconditional --enable-systemd uncovered other issues (not related
to the configure change).


> ---
>  m4/systemd.m4 | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>=20
> diff --git a/m4/systemd.m4 b/m4/systemd.m4
> index c47a25ef93..ee684d3391 100644
> --- a/m4/systemd.m4
> +++ b/m4/systemd.m4
> @@ -77,7 +77,7 @@ AC_DEFUN([AX_CHECK_SYSTEMD_LIBS], [
>  	], [])
> =20
>  	AS_IF([test "x$SYSTEMD_SLEEP_DIR" =3D x], [
> -	    PKG_CHECK_VAR([SYSTEMD_SLEEP_DIR], [systemd], [systemdsleepdir])
> +	    SYSTEMD_SLEEP_DIR=3D"\$(prefix)/lib/systemd/system-sleep/"
>  	], [])
> =20
>  	AS_IF([test "x$SYSTEMD_SLEEP_DIR" =3D x], [
> --=20
> 2.43.0
>=20

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--DCwzspm2pCAnNB/v
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmky5MAACgkQ24/THMrX
1yyGzwf/aYXyZrZRqFquh701nuF0r74G734PeOFwZx3KgjcmZM3LPQwnP6JQjzoe
gF4Q0SrGZxQreROJ6iLJc+V5+upCHVenr9TEwgftfKuzQzcU1V9jbyh5xvZz2lXn
JZltDzmHiHJczpOzlele6rzujs5mmI7Nqe8SNfBFKOgxtYP98//hb8MCnMiBi9mt
EOOdNpEwYyBLqhTCg+q43q5YFZ1TYAZqYAlGyeoLFAErwz2Q5DVm58BG3WJQaYso
4yVv6j//gqvYuU1nLo0vmucbHl0E5FJZFu7sWeXeHkOEpIoihKskku/zF4XkRvTf
hrEHVa2msqq5z/6Qs+8idBGoyCVK7w==
=Zr3v
-----END PGP SIGNATURE-----

--DCwzspm2pCAnNB/v--


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 14:54:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 14:54:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179144.1502753 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRXCs-0007P0-UF; Fri, 05 Dec 2025 14:54:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179144.1502753; Fri, 05 Dec 2025 14:54:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRXCs-0007Ot-RS; Fri, 05 Dec 2025 14:54:50 +0000
Received: by outflank-mailman (input) for mailman id 1179144;
 Fri, 05 Dec 2025 14:54:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mBPq=6L=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vRXCr-0007On-BR
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 14:54:49 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 577248cb-d1ea-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 15:54:47 +0100 (CET)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-37cef3ccb82so16592901fa.2
 for <xen-devel@lists.xenproject.org>; Fri, 05 Dec 2025 06:54:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 577248cb-d1ea-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764946486; x=1765551286; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Oj4yj7tzriBUrwcVuJwE3ZbW75nE9yFe4/d5bikw/ZA=;
        b=TW/VL3MvBopPsj4s8U/3y+Cz4miFs5PMqTfY/u2XdfMt5hMP1IDuA/54YwwMYh2ZXw
         P3ZblYh/DzEOwpaIEF8jiM5kYc+/zDN2/5rAB2EDYH575H2BPeWrBcIAma8qX+03nAI3
         8pTMcI5cXBJ7a8Ssz+O1u6EvfxAwXnNvB59RvuycGg1wiTDfF/6ihoo0EKIs4biLTRt2
         C594zS3QXOa+cVmkC3+2mHmGPsdhWptkeo63NVzBP6a8tXV6LRdLZlbNErVvCDAIb7Dy
         Bp1Bnta5xYr/elEpctCJHCgdm+7zO4wMlLu6IL/qVR1G/5N4U25AtfplhHZrBHM9BycK
         em3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764946486; x=1765551286;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Oj4yj7tzriBUrwcVuJwE3ZbW75nE9yFe4/d5bikw/ZA=;
        b=ruOp5bFAPOXhJmGzuRCYJ5m5MehdVwYe0TH2D6JHeoVjRkvBdkU8Pw6N5gUms5uSFB
         TKRtUzsxWb6USX2kRoGqksjaYT82oYb7v64s5+6wpuqIiEPhPIxww8RxmEtNKycpdAs/
         06OELBJBhbrCiHmfekI4ZgQ9KU98aLhSzMqlS+k9iDDCKhaAbh8H44A42ciXz/X5Px9M
         CmTcELn863kp/KYeIPkSyR2lkgTlgBwC84MbCfdLKq2QVZqryEj+55yR+vy9qjw/xKDO
         xen+sr5cMyqXhsQJTBufLi7Rl8HUdrO20hsxEyFPTXa+OulP+PXi73ykbg17B8Vn3jgP
         0bdA==
X-Gm-Message-State: AOJu0YwnuQ8eUOKLHmCHaQ7vEQcAssYXnoS5PurrVIxkegmzrMFg0gh0
	ED7Zq96r8qWwhbFZnDd0HGrIAB6Ajf/EOfvC3wVCtPwkNwT6P1rFaNWH/jS8AJFKfoTBH7tsHPy
	sfaDPASLxPVZM6OCDF5aoss9EQdltThSfPAsqmas=
X-Gm-Gg: ASbGncveU76oAi7fsHCMmObn7GeidbdZRQjMybfdI8kVvshGXwMWge4E18TPGd80YZd
	N581ATyLQ8EXzY6haTWCHvYvT5mtU9oIxehhfFY6DwyozzrMAxTHdN9k7RX6496oNr0i2iZbJZh
	HYpErAe5FhrrIJeFdCSskRG/q99m5jVYTrGzgeIYlHevzo1TaTYYIdqtXlYZoam7SN8N0KTyQn6
	Ao+wasDFwYGJvOt1y+CzzCYkjtJjosWfuMmwnS/c1LBKBdbV6zPsDdaMJCGzAODTOQmuA==
X-Google-Smtp-Source: AGHT+IGYpWu2YnCUjq9mZPvUGM3BJqta79D4A+EtxPKC2EtnHsX5amvlYYueo5FT28n7eLro74HLf/fRwznd/TCH29k=
X-Received: by 2002:a05:651c:31cc:b0:37a:2bcc:279e with SMTP id
 38308e7fff4ca-37e6390d9e0mr33909161fa.23.1764946485997; Fri, 05 Dec 2025
 06:54:45 -0800 (PST)
MIME-Version: 1.0
References: <f03c8a2fe81527841966ed6c8ed603d1d90ee5c4.1764940296.git.mykola_kvach@epam.com>
 <aTLkwMpxchYSMnyT@mail-itl>
In-Reply-To: <aTLkwMpxchYSMnyT@mail-itl>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 5 Dec 2025 16:54:34 +0200
X-Gm-Features: AWmQ_bkHSzdiMUlqQlwEnJS7sM9Q03vRQqLU45e1Tofy0b3srgREUhqzN99iwjI
Message-ID: <CAGeoDV8FnNxoqr18W82DhE=fLWJSQr68xr_vPew_z=hyt2BbeA@mail.gmail.com>
Subject: Re: [PATCH] systemd: default system-sleep dir without pkg-config
To: =?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Anthony PERARD <anthony.perard@vates.tech>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi,

On Fri, Dec 5, 2025 at 3:57=E2=80=AFPM Marek Marczykowski-G=C3=B3recki
<marmarek@invisiblethingslab.com> wrote:
>
> On Fri, Dec 05, 2025 at 03:13:32PM +0200, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > Using PKG_CHECK_VAR() to obtain SYSTEMD_SLEEP_DIR reintroduced a build-=
time
> > dependency on systemd-devel. This breaks --enable-systemd builds that o=
nly
> > need the initscripts.
> >
> > Use the same defaulting scheme as other systemd paths: if SYSTEMD_SLEEP=
_DIR
> > isn't provided, set it to "$(prefix)/lib/systemd/system-sleep/".
> >
> > Fixes: e54a6cd6a1f3 ("systemd: Add hooks to stop/start xen-watchdog on =
suspend/resume")
> > Reported-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingsl=
ab.com>
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > Build in which the regression was detected:
> > https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10959608099
>
> Requires re-running autoconf, otherwise still fails:

Thanks for the note. I had assumed the Autoconf-generated files were refres=
hed
during release or at merge time, since this updates generated artifacts. If=
 the
expectation is that contributors regenerate and include them with the patch=
,
I will add the updated Autoconf outputs in the next revision of this series=
.

>
> https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/12336879267
>
> With autoconf:
> https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/2198372475
>
> It's better now, so:
> Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab=
.com>

Thanks, for the review and for testing both with and without Autoconf
regeneration.

>
> But unconditional --enable-systemd uncovered other issues (not related
> to the configure change).
>
>
> > ---
> >  m4/systemd.m4 | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/m4/systemd.m4 b/m4/systemd.m4
> > index c47a25ef93..ee684d3391 100644
> > --- a/m4/systemd.m4
> > +++ b/m4/systemd.m4
> > @@ -77,7 +77,7 @@ AC_DEFUN([AX_CHECK_SYSTEMD_LIBS], [
> >       ], [])
> >
> >       AS_IF([test "x$SYSTEMD_SLEEP_DIR" =3D x], [
> > -         PKG_CHECK_VAR([SYSTEMD_SLEEP_DIR], [systemd], [systemdsleepdi=
r])
> > +         SYSTEMD_SLEEP_DIR=3D"\$(prefix)/lib/systemd/system-sleep/"
> >       ], [])
> >
> >       AS_IF([test "x$SYSTEMD_SLEEP_DIR" =3D x], [
> > --
> > 2.43.0
> >
>
> --
> Best Regards,
> Marek Marczykowski-G=C3=B3recki
> Invisible Things Lab

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 14:58:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 14:58:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179154.1502764 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRXFl-0007yY-BZ; Fri, 05 Dec 2025 14:57:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179154.1502764; Fri, 05 Dec 2025 14:57:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRXFl-0007yR-8V; Fri, 05 Dec 2025 14:57:49 +0000
Received: by outflank-mailman (input) for mailman id 1179154;
 Fri, 05 Dec 2025 14:57:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=K96r=6L=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vRXFj-0007yL-FL
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 14:57:47 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id beab4d33-d1ea-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 15:57:41 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM6PR03MB5289.namprd03.prod.outlook.com (2603:10b6:5:24c::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Fri, 5 Dec
 2025 14:57:36 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.009; Fri, 5 Dec 2025
 14:57:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: beab4d33-d1ea-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AsC+XRiuIfMMCgjuxChLn+clIb7Zle4ec0rdDmrp3Rn2MGokGZRoBY+paXDlKB88q7EzZE+Igq4RW0J5B2lz6QevNT+Rp1m5hhLDQwKI3YvoOi1e+DhI2u+E10tk2eCUz2e/OS+t0VbmyGE0hwBO7NszJd+UzxxVklJN+1bOJT9fAZBTVp/kbXuUj3jKBYsA8t34sURwAk/5prENsOPcqpagoX9WWl6BYs4iXl17+a/Zh++Gxwcz3T3J9qtu9v2PT9bghwEAkMV6uyf9rQfkmZD/S2XoC+8fZVwpN5HfrnmbRVp8pVNnzHo7PFfEK5xi1WCTWUytzVm8Z9yeqsEmlQ==
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=u4x+ICUOAWqcOZ5W88jw/FCe99ylcnb1IoDnnnTeZFg=;
 b=OHyM7uFLuZdJ7LCN3v5I6j0BiywCyD4VDgrGrICKcKvmtvR7BuJxkTtA9LaEbtbP6+ZG1KPh1+kE/L3evVgqm6Xho5oNvBmJ+b69VHp0lhBHEQzd5gITArYgbwO75Gp2UA2y0IeZShwTUCzbdZynIiG5dfhjnRyfYIA+b8yXtpaMnCHtyGpzYGzm+ZPmjaoiilI+09N9Y6lzHh/XaZqzmAlqHQuhlmnsz5G544SkW7FMvOwnv3xJpSPOtAuRpTwY88/cFHCRyJduK4Sp891kvSXk01Egc5GelumSD3tednCaI8vvGGQAF4Sv9e1pYGMwyrla7AuvKngzf6QgEvz4iA==
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=u4x+ICUOAWqcOZ5W88jw/FCe99ylcnb1IoDnnnTeZFg=;
 b=YM6/HkcVjK9hOM1+WwlsfFt3GZUvTQP2k+zVN4fCaY79rc29WFRMuzl30Ibh0AkoXk2Vh0/8y1UJCKOwIlPeXSLHrewjoOKV5CNAIEJq+77pwIGJbkI74X50DJSOnkrZ4Z+qJcS/p+80JlchvC77AukfO7zxX6T+lubr1mlhu8k=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <95799f50-12ec-48de-9847-cf46835f1a98@citrix.com>
Date: Fri, 5 Dec 2025 14:57:32 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, xen-devel@lists.xenproject.org,
 Mykola Kvach <mykola_kvach@epam.com>,
 Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH] systemd: default system-sleep dir without pkg-config
To: Mykola Kvach <xakep.amatop@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <f03c8a2fe81527841966ed6c8ed603d1d90ee5c4.1764940296.git.mykola_kvach@epam.com>
 <aTLkwMpxchYSMnyT@mail-itl>
 <CAGeoDV8FnNxoqr18W82DhE=fLWJSQr68xr_vPew_z=hyt2BbeA@mail.gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <CAGeoDV8FnNxoqr18W82DhE=fLWJSQr68xr_vPew_z=hyt2BbeA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0105.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:191::20) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DM6PR03MB5289:EE_
X-MS-Office365-Filtering-Correlation-Id: 14ce9cf0-a3f0-4b85-9ee2-08de340ea074
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WXRVUGRPdE15b0pIMzhCSmpHZXRCT2pGd1FaU0JDYmt4a2dLOHFZblNSNnNU?=
 =?utf-8?B?dk9zQ2hwdTRZOGFwUVMzWmpZT2d2QldKaTUyanhJYTZxYlNFZmpKdWE3Rm5v?=
 =?utf-8?B?alc2QkNsZ0p6Vm9Ia3N3RU1KVkk3NHh3SUxiVEY5QnNGMWxjMTArN3lwbFVo?=
 =?utf-8?B?Q2dIeXpCQS9VdXk5MU5KWWNXbUVhT2t5VVlRclc1UE44WmdmSVQ0OG1ZaXN4?=
 =?utf-8?B?OVUrOGIxVlNRc01IaVdKUUM2MkdIbFI5SmFOTjhGdGlJTjg5cjZ4UkxwdFJQ?=
 =?utf-8?B?a1BiOERUQjNrUEdMT2h4TUpia3M2bnBDZ24wMFZCcDg4azBhSkowVkkzSnpn?=
 =?utf-8?B?RGhkM0NRQVVrOThtdzdEVmt1L0E5WGZocUdBcmxmQ2QyY1o1T3BOSE96Ujds?=
 =?utf-8?B?T2tiWUZpZytVL0hvQklOVTRqcytOcFFPOTZldWdHM0YwQmJCMjVkTXZud0hH?=
 =?utf-8?B?T3V4aExESDR3Vm9PSkgyYUtzeW5GbFgzQk1FZ29yak9YV3ZTUnJYTnkwaDlT?=
 =?utf-8?B?Ky9pVDJ2MFdJOVZVelNOeDkxbTBOcEJhaldHaVQwSTlEUlpucUx1SWZZSkVO?=
 =?utf-8?B?WWVaMGdOQXJXSmhwV0RvMHlaUlUzdUo4RHlPWC80V3AxZm41V1RqWEZ2WGN5?=
 =?utf-8?B?OFAxT3RlaG1XUWVZTDV2TWxua0lhNmVicGNRVytaWWVGYWZoTXYzMnNXaUxi?=
 =?utf-8?B?TDI2eFZLaVhIUTYrTmlLN0hrRS9XdzNGYm5aZlZOOUYrdVNWRnYrTUY5SzJj?=
 =?utf-8?B?YVo5ak44Qmdzb3QxNnNCQ1FuZmlKbk5sZGJHZUxzQmJpeUdCNVpqZXFWL2Qz?=
 =?utf-8?B?UVl6dU1ZY1RPWENXNU00bGh0WmNpdm0xYnVYUVMvMk1vanpvZ0FOekl3SldO?=
 =?utf-8?B?b3FWQUhTdG5lZmsvUERQdVN6V1hSU3NXMlpibkwxMzJ2YXgrSkJMN1ljYTJV?=
 =?utf-8?B?SzhJM1lxeUtwTEhKa1JYcy9aNXhxODRlMnRwbnBaUzBBak9SMXEwWm81VkE4?=
 =?utf-8?B?T0pRNUFRdUp5WnpnNko3TllqNTVGaXRjWjZVYmZQK2F3cFNPM3ROT210N1Fl?=
 =?utf-8?B?MUdGaDdSeWNJQkxDR3pWclhHRmRGd1Nxa3dLbVJTK2QxQ1BCaHpMelExQkxS?=
 =?utf-8?B?Zm9xU0p2YmJ4cHFjZCtza3BsMHVOcnpVYzFDbXNER3Irem1zMUNNMVY4KzFW?=
 =?utf-8?B?Nmt6Z2tIUG1GUGdzeUxPalpLZTZvSjh1Lzh6Vkx6MVhPNzR5Z0dpRXhkcU1j?=
 =?utf-8?B?SkIzODh2dis1amJMbGcyT3FWMm1xVWVxczhlUXpSbStxc1EyV0JhNmtLYXRw?=
 =?utf-8?B?Y3o1S091ekc4eTFnNHM3b1lMcDZycjd1SUJHMEI1RmZGTkJNakl1Z05EUEFp?=
 =?utf-8?B?ODE1U2ZxRmQ5WHVqRXluU3NyUUpDRjBYc0hMUzFnQ0dQcDdaZEFKSVJvWTFF?=
 =?utf-8?B?ZTFCRW42K3pzM3hrL21URTZvZnpuVWFaUWtZNXBBRzRUeE45NGhZYlQ4dDR3?=
 =?utf-8?B?OXc4UzE2YnZvNkVTUHYxcFE5M2Y2Q1hZSmdjdGV1VDhRS1BMTmhDNkhkZ3U3?=
 =?utf-8?B?KzMxSExpckJRVit2WGNNTVJzdzdGWFd3dS94YlVLZEQ4Zk52bE9NOURNbGUx?=
 =?utf-8?B?OUU0ZkZ0Qmc3ZjNpMVJ3T2gvVEY3czNYZXBFT3Y1VDFIK0hnR0xPd29SQTU4?=
 =?utf-8?B?UjBvMnFtcmZ6SzJFSWNIMVp4cnh4WVhtL1pRSnJkUzRPb1l2aXVYYmRoZ0Y3?=
 =?utf-8?B?cTFPR3d3N3hGb0NIY2lFSGZGdWtFZW9kcUVOcUU0MFBIblViQnJFY3dzS29K?=
 =?utf-8?B?bnFsSjEreHh1ZytON1VlSHVaaUwrN0lVUWtGWGpTSnRpOHBacTZVbXJibVZJ?=
 =?utf-8?B?WmFRMW1xSGlZWDJZNDBncy80NmJwdlNPRlJ4ME1VbXgwNTVUdzJRZUdqcDJH?=
 =?utf-8?B?SmExNDMwaStCWHE3RWVEWjFuRVIrZCt4WWhydlR3TXZtM2pSN1k4NG5qMFY3?=
 =?utf-8?B?czJqT1ZSaEJBPT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZlZTYkY5QWVtM2IzbzhBdDZsUWF5NkcrSFNFaStxdEtrWC9oMlpHdzBoTm54?=
 =?utf-8?B?SDBqSEZTOGYrblVLNEVTV09IQkU0VFpVcEJPZ2M2SXRGUWovL1NCZXZ1YVhF?=
 =?utf-8?B?andSN0haTW52WkU4OHFTb3RWOU81dklsQTh2SnRTTSsxUDRMTXVlRS9mdTRW?=
 =?utf-8?B?YkoybUFsa0xYUkN0azQxUkVudjhkMFhLbkdiUlV1d2dKUTlTRW52dmdGWDhx?=
 =?utf-8?B?c01tc2lrbjRqcVhjTFczNExHMDcreDFCZHg1Z3JyUUlvMi9zcWRjT0MzdVBC?=
 =?utf-8?B?RGNoQWJkRVNlUExZWjNuNUNCS2NXS2hERDNMdmJwbDA3UTBsd1pOaW80Myt3?=
 =?utf-8?B?VjhRY0V1VFpKVnJPcTJPZDNYT1R4YUhUdlBOTll0dmdmNWRQdDFiQjUzUkM1?=
 =?utf-8?B?bzNJbVBnN1NiVUhqUENMaHVNdFlkVWl3Vk5hN2JHTFYxWVJoM3QwTlo1U3hj?=
 =?utf-8?B?eGUrajhZNU16NEpPWTJzaTJxVjdjaU13ejAxTUV3WVhZNjdhZGZnVzg5VHFK?=
 =?utf-8?B?emh1YlY5Z0p6QnVzSmNKa1RsLzNEWnI5VjladnFsUE0xQThBSWNBSnBReTl0?=
 =?utf-8?B?bjJWRzBTZ2xBQWFFSXpJTGNtbzBtek1sYXhDQXVZUDhid2FEWUs4RjBoZWln?=
 =?utf-8?B?MXIrTCs1Q0ZJTlZIbTVZbzlSOGxOQ0hvWHJvRHFTU3BqOUZjaUY2emkrNy9m?=
 =?utf-8?B?T1ppZTlTZTQxVlVVTjVidUI5ZFFnNjlweXJzeUgzU1ZvL2I2VWdnNytoOGEw?=
 =?utf-8?B?cElNVHUwNmdNWWVpTHdNdmNFalBKR25EV0ttRFlUWHpIa0xpZGlZaDNwUVBS?=
 =?utf-8?B?WnBaRDFuMFBSUngvSVBiUzFhVU1TN1VrbjVoalJqcnFycEpQWTZUVCtOdHZt?=
 =?utf-8?B?Mjl5dXFTMGUrTnVlNmRJaWZIRWR4RmdiKzAwT3EydXI4Z0R0TUFtOGJBTWVw?=
 =?utf-8?B?SUJWRGtISHVZaEVPS1dRLzJiRUtXdk1DbHNhOTgyYjZBNTd0NWF1RCtmdU81?=
 =?utf-8?B?cjNTMXFPVjhlaUVDVk4vblhWSEJ0T3hVcHNmUEFlOVJKZmJTT1hvWThUa2M2?=
 =?utf-8?B?ZXFjNWZweEZ6dXJXQkc3NXdxZ2NxTDUva2h0bE8wUERyQ2pzUExROXZpRER1?=
 =?utf-8?B?UyszVTdacGFxYlJFOTZTRERVMytZL1hDL2V1aUIwMzBwbjZuUzlLRGF0VE8x?=
 =?utf-8?B?QXk2QnFTemtudnVPQzJoaWVnRVNDY2dmZGR4U2Z4cWNnV1BzWk1SaUFaZVRq?=
 =?utf-8?B?YlpWaHc1a3NOMTRnZlkvS0daeUhnaGpVbVZjNWh4ZUtPSEJzbE45UTdUdncx?=
 =?utf-8?B?VFNRWVpLUmZNR1pVamtyS1VBYWFlMVF5UGR0em13VE1LdHpGdW95bmlBZ1ZG?=
 =?utf-8?B?cE1TMEhyaFFoT2dsZkZGVml5em1hS2dBd3RoN3ZKdjNESUsrdmdVWXRjRk9a?=
 =?utf-8?B?dTk3QWNodVhHRVFaNDNXUk5XWWJSek5iVnBDanJ6V3d5Z1FRaS9CRVc4bCtI?=
 =?utf-8?B?akpmM2NYeEcwSmZjRXdSdjd1U1FJbDI1WFRiejZaTXE5QmRBUXhRQ1BBaExn?=
 =?utf-8?B?L1JOWkIvWWUwa2NmUkVzcEZ3KzZMWW1hdzVVRmEvL0diQlczTTc0ZVc4L1V1?=
 =?utf-8?B?c3d2N2dkUkpQVHFPZldVZzBOb0lVK0dTZ2ZTcmc0eENvQzVDZThrdDJQaDFF?=
 =?utf-8?B?M0ZTdEFidG5XdU9vNmRPTm8zaGU3ZTlmMWdJOGlPY0N4ZXdjdmZBZ2ZzZ3Nl?=
 =?utf-8?B?U04zbW93WUdBSTMyRytJTmJ5dUJzWjlva1diZ2V0S1RhSlNVakZrNmpqVGZI?=
 =?utf-8?B?L3VlQ09TbDRIaE9VRWJVMTBYTUVObGgrZS9SYk1UZWk0bEZyK3BKYmlTNXI2?=
 =?utf-8?B?Qk1qWVlmaHlqSmFMZ2pGb2VhMHVOWkszR0dkUitDeHNhUGU4ZGlHY0phKzl1?=
 =?utf-8?B?WHljYm1zTGtONGl2L2p6OVA0eDliWjNBM3lpS1J3U3hGVnRKblJoQzVwVVZh?=
 =?utf-8?B?cU5lQzRDemcvbU5QTDBQNXBPbDJQYzBGaW1wMFVFVUkyeEtZekxINGludDJC?=
 =?utf-8?B?OFVkN1Z2OVlqaW5xdkwyRHkxRHpMM0lpU0QreUV1cjBlbXdRWFhUV1JJNnJm?=
 =?utf-8?B?cFRod3FRdjdHSnVvcU8zeU5VSW1odHBNZnFQTXVVdTVkNUp5TFl3dzAxZ1JQ?=
 =?utf-8?B?M3c9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 14ce9cf0-a3f0-4b85-9ee2-08de340ea074
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 14:57:36.1067
 (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: bHsvkwlVjikqDWefEmRwmWyftvJajdDFpuhsf/jMIDM0pkbvP6peEpT0IXLt2ykvyiQheZYQ6fMw6ONbwS0E0zX25v0l5KNJKgXfseFYKF4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5289

On 05/12/2025 2:54 pm, Mykola Kvach wrote:
> Hi,
>
> On Fri, Dec 5, 2025 at 3:57 PM Marek Marczykowski-Górecki
> <marmarek@invisiblethingslab.com> wrote:
>> On Fri, Dec 05, 2025 at 03:13:32PM +0200, Mykola Kvach wrote:
>>> From: Mykola Kvach <mykola_kvach@epam.com>
>>>
>>> Using PKG_CHECK_VAR() to obtain SYSTEMD_SLEEP_DIR reintroduced a build-time
>>> dependency on systemd-devel. This breaks --enable-systemd builds that only
>>> need the initscripts.
>>>
>>> Use the same defaulting scheme as other systemd paths: if SYSTEMD_SLEEP_DIR
>>> isn't provided, set it to "$(prefix)/lib/systemd/system-sleep/".
>>>
>>> Fixes: e54a6cd6a1f3 ("systemd: Add hooks to stop/start xen-watchdog on suspend/resume")
>>> Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
>>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>>> ---
>>> Build in which the regression was detected:
>>> https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10959608099
>> Requires re-running autoconf, otherwise still fails:
> Thanks for the note. I had assumed the Autoconf-generated files were refreshed
> during release or at merge time, since this updates generated artifacts. If the
> expectation is that contributors regenerate and include them with the patch,
> I will add the updated Autoconf outputs in the next revision of this series.

We regenerate on commit, but that still needs a reminder to remember to
do so.

>
>> https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/12336879267
>>
>> With autoconf:
>> https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/2198372475
>>
>> It's better now, so:
>> Reviewed-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Thanks for the quick turnaround.  I'll queue this shortly.


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 15:05:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 15:05:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179169.1502774 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRXNA-0001JI-7I; Fri, 05 Dec 2025 15:05:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179169.1502774; Fri, 05 Dec 2025 15:05:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRXNA-0001JB-41; Fri, 05 Dec 2025 15:05:28 +0000
Received: by outflank-mailman (input) for mailman id 1179169;
 Fri, 05 Dec 2025 15:05:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=K96r=6L=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vRXN8-0001J5-Bv
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 15:05:26 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d2839be1-d1eb-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 16:05:23 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS0PR03MB7677.namprd03.prod.outlook.com (2603:10b6:8:1f8::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.12; Fri, 5 Dec
 2025 15:05:19 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.009; Fri, 5 Dec 2025
 15:05:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d2839be1-d1eb-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=If7S0Kson7x33p/70fTIHs45SDHBBovz7Fwf+peFsmeJer0IP914KlOr0Xy/rOiinsyBeB09TgoGu84H78oFVmriv4++AedLW5vnTSRXhu6seDoPppON2LXdST+rZHhMw49T/a4NWGMaklid2raYLXEv81dkI5S3om/W8vESCe/JpI5lpG+16E2IuqQidtuzK1lL2VmanqNp2cPk4NmmL7a9+9dMq8nBP1D2YzMW8ohZnX6oE+M9/VooPlbH0AjOYK7ezbeGMuqZU0bV1C/NETJ094x+EcRioKYA6aGWaizDSby3jL+/L89Njl4MXkHnWTjf0P4+CMgldhjwc1sv/g==
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=yGAjyj6tt0na3EhHIgXsFnrJrm/rdwBQBTX7GA5403M=;
 b=lj6b4ckPVjdydUFyyZ8Ta1N6+rdKJNKdhrvMEC7d2cvsdX//d5ukijHei3Q9Jz3SCI2wCEHIyUieUoFAadBIPQCX/8RDsw+L9LYm7WDILzFx8MCaeP7cAI/P0l3ovxknzE5BmrUzawOBC7JCL6JEJeHB3/N/Y/SOfhtYVnAm8BoXlmBTbfCAnSOFmSuesjYJ8AQQbQSg/KUB/sZR49867CrY/ey3LpDdRgW5tflPDniuejJ3hoZM2AUlY2MhPH/89O4pEELnzbyuD0VzDh9SxEjfHIgYvs6iCKEtj6Oz8QWBZ8fDbbod2yuOf53xtdfvwygg5SxDD1kVOigJtQwn+g==
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=yGAjyj6tt0na3EhHIgXsFnrJrm/rdwBQBTX7GA5403M=;
 b=pgNMqRuIEGf9fP6WffUN54u9GWBWVIq8gPed4yS6nVIvFMd8FoToj/zKMqJfc1yTzjN+gt4ZHthh5gYwRWtgJI6Jgcz+JkmWzvIalWUn9R+khYcWQpvuhFcW4ezH5Ss1krsLRo82L5MZvcRo7/FEjOz5oGeQi5wcX5KnvCajo90=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <71a560d9-c96a-4cf1-a616-c4366c1bb9c2@citrix.com>
Date: Fri, 5 Dec 2025 15:05:15 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Mykola Kvach <mykola_kvach@epam.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH] systemd: default system-sleep dir without pkg-config
To: Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org
References: <f03c8a2fe81527841966ed6c8ed603d1d90ee5c4.1764940296.git.mykola_kvach@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <f03c8a2fe81527841966ed6c8ed603d1d90ee5c4.1764940296.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0453.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:e::33) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS0PR03MB7677:EE_
X-MS-Office365-Filtering-Correlation-Id: 3546c3fd-7019-4673-446e-08de340fb429
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MklZRWpTSlByaER3OG1uRmNqK08zdmR5UnlHQ0dIY1ljL2tONGVwaHQvYWV5?=
 =?utf-8?B?dFN2TVVza29DdjVwTSs5Ny9sdDE1NGhsRFZvRXpDY1ZSZ0dCOUE3bkdGeTZi?=
 =?utf-8?B?L0VGMHBLZVFRZDZFbGpRMWExL2lVeW4vZ255RTVKeUhLbkZTWitudWRLUnUw?=
 =?utf-8?B?eExZQjlpcVcxaFBuWVRKVGJqTjd6Zm9UMVRUajc3b0RnbU44ejIxSkVzRzBp?=
 =?utf-8?B?YVB1dmVMa21yaFlQMEs2ZWFhT3gvdkxuTGpoR25OWjRMeGJ0bjlCQnVVb1FM?=
 =?utf-8?B?aFI3NmVUV1JtQmVNeWE4d29WQURnb2lhN1dpajhTb21Pb0F0ZHJGMVRCRG1u?=
 =?utf-8?B?eWRHeDF2WUNERFY5V1ZGdlJ1MS9BY0ErSnpHV1RvSE9iWUxwSExGak9mZlRJ?=
 =?utf-8?B?aDlCWlhseGlMRUkwK0l4N01sam9RRWhmUHRjbTh1WEhqdDBrQ3FscVlsZm4w?=
 =?utf-8?B?blVtcXFWcVVkY1JQRjBrOVRvdHRxYUNjM0QvYm1id0VvQ1UySm9RQWJGOFpD?=
 =?utf-8?B?WnI2WjU2M0tCNUVVaFRCVkp6dGFta1VUeTgwaWVqTXk5MXpaYkFjVUpuRUs4?=
 =?utf-8?B?RGRvYlQwTU95OG01SU9KZ3ArSFB4NjEvV2N3ZUp0aFRXdHRIaU1kZml5VHBy?=
 =?utf-8?B?WmZVeUNDUFN1dXRLY29rWGkreW4yNzhtSHcrMWh5ZFBmVzJmSHZINlhSeWNu?=
 =?utf-8?B?UEw4N1FZRDljby9GMWpqcFhBUWRFdkNLb3FLSHNQNE5XNWtaUzk1bG4xbTM3?=
 =?utf-8?B?RHNVbko3WXRTWFJQalljdHZzN2xWWlhpUXhPREdiNmViaTZicWxUVEhnSk1V?=
 =?utf-8?B?Y25WTzVXVWZLZzlvQnozbzRodERxWUlwSm04Ujg1a0JzR1VLc21waEsyTlZQ?=
 =?utf-8?B?YjVsMHZjb2I4YlRBdDZIcVJXK0ExN2JLb3ZJSWk5Z2F5Zm5kQUJUWTlVWSsv?=
 =?utf-8?B?ZkVWMFpPMG5EMWZweXJwQXAzbWQwbXREbjErU3JxVW85dlIwanJqaEZkZTJ6?=
 =?utf-8?B?ZzJyeVo3a0dTelNsN0paemkyRWJSbE01WSt4aHB6dVMrWHFFSVE4U3JFckZU?=
 =?utf-8?B?Mm1FYzZSZk9EYU5LU09mRElmNzJQVGNLTk9YVkZLUmF1SU40NjEyMlNFWFN3?=
 =?utf-8?B?Z1U3NkQzOXRoWHFMTmpHK0p5VXM0dUxhL3lEVFFFdzdHS0MzT2xTOVgwNTZT?=
 =?utf-8?B?ZTI1My9rRWJDT2hYMlFycTUyYmJHSWtPS3ZZajlMQU5EbWRQRlZYWG9kUFB2?=
 =?utf-8?B?TFk0ZE9BVEVENUIyV2pCZDVlOVRiSlFTUXl4ZXp2eDlETnp4YVpmQmhZYktn?=
 =?utf-8?B?cU15VVNxaHJJMnU3U1ZEdkxjQ2p3bzJDWVJqeGptbG1rV3JmVWZmOUpkY1hy?=
 =?utf-8?B?SDFPcEZCV1ZhSmtCclV5SGtyM0U2U29GTjhoM3dxVkQ2cDJiUmpRWU0yU29U?=
 =?utf-8?B?dVg2azcrVDBKMEEzZzNYQUE3ei9rNXRmc1dvaHJpUmlrMDYwaDU0RWdrR2Rx?=
 =?utf-8?B?UHh6MG1WR3ErbWtZZGlsTkJaSHpZdENtM2l2WEU4eTlMMjd2SFhpLzV4V1JP?=
 =?utf-8?B?YmJMckc5MG1wdHc3cWFiUkFGYTJiQzVHVlovZkFGUnArbHpJS3N6WUdtcWRE?=
 =?utf-8?B?cWxzS21wL241Tnk5Zi83dzNWa3RPN1VRQ3dON2dOUlcydHI2UDJXN295NUtM?=
 =?utf-8?B?YzhjNkRCd1dvZVdaelNnZXNnTUtZVEhTNTQydjhqaVA1UGlncDVKa01mZWF6?=
 =?utf-8?B?U1plSWxObkpxTVhialExa1JxaDQ2MFpjay8va1ZQbllkbE4wRGpJUG9LdDdl?=
 =?utf-8?B?ZmoyMmdnc2hSZkZEZUZOS2YyUUQyb3VLWWttSXdmT3N6UHlYK1lRRThWdTI2?=
 =?utf-8?B?M21YQzNoN0RjUHp1ZkNYK1hPZHBHbG85cjNZTU12eHc0Y2xmeWlUaENSTHhR?=
 =?utf-8?B?cnBZV0xjN2FRdUUrNktWVmZVSjlKMjRpYlR0ZnZacjRuOE1rK2E4dFArTGxN?=
 =?utf-8?B?ci9XaVliQlJBPT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RFZRWFZIY0VPWkhDWDM3d2QzN3BKcXh3d3VGR0dJTFRJbmRucE16VnlGUWVo?=
 =?utf-8?B?ZzZTS1BBd0xEWEVFQkRkQS9yakpuaHA0NDVReUVtZWNjY1k4ODBtVStUWUl2?=
 =?utf-8?B?OXZrajlBc1hZdUx0R2pWcFlWeHNuWFQ3RXczMjJTbFQrVVBVNjBTMXlSSko0?=
 =?utf-8?B?YjlCZkxHb05rSDhPdm1JcGhaU3ZOSVhibExLN000UmVkbEcxNCtNM2JKYXF0?=
 =?utf-8?B?cmdBWDhpWXc2Z2NxQkRPb3JBaDRlemY3VzdlUDJqMnF0ZjVDTkF5QmxEZDd6?=
 =?utf-8?B?aXBuWlNEcTRtcTlVU3BUVHozWGtLc1ZROHhvbFdjdW9peEozSXp4QWVEMzVz?=
 =?utf-8?B?WUdnV1lTZDJwc0FDUGNMYk1YazhQRUorWmJjRlUvNFZITEp0UEJxTnRuaXRl?=
 =?utf-8?B?ZmFLTHdRWlJRWDJEZHBRckkzRndIcHUva054WnlaVEpQOUhKYzROT3k5VWpx?=
 =?utf-8?B?MXJ4dURRQXJ1OUdtcTFTUVpXNnIrTms3VzlQcW0xTlU4c0ZWcnJmQTJvQTFE?=
 =?utf-8?B?R3VLWmJwM0hIOVFpdUREMjc1SEZhVEVmMEJzM2Y1WW9sakxpRG9BQ29EbDAx?=
 =?utf-8?B?UlpHT3FPdjQrVFdGUWlLcVcvejF1SUlLSW5kL2U5VWRlc1NxelRaWUJreUxK?=
 =?utf-8?B?VVlHa0xHT25NWEJUZllQMzhlblNtSGdnZVZGSmVuTEV6MjJzZ0NZaURuSHNl?=
 =?utf-8?B?QUppcHBqMkcrV3JiTDRMSkhBZXJrdHladkxBSkxvWXl3T3Jycmp6VHV6aW5G?=
 =?utf-8?B?VUNLdXVwL2VkS1hHUTF3RXk5NmRWNDF4S09UK3EvMUh2NjFPT2xJWnV1M1Fm?=
 =?utf-8?B?NW85UWpwcktneFpPTzNLUUhWd0lrT1ZwdDRVK2lPSVBYcCtua3NWd1k1NVE0?=
 =?utf-8?B?N1ZJN3JlRmwvaDhkVGxkZ2QwbTVxTUVQMTVhSnpMRVpyY0VVVXlRTUN5S1pC?=
 =?utf-8?B?VGhHc3JxdWdNQkhrVTMwRzh3RStGeGxNZ0Z2RUtHV2o3N2NQc2M3a2h6K3pv?=
 =?utf-8?B?cEZCWW96Tm9URXh0MWRDK085RzlmVnVZYmlwV0V6YjhjYkpxM3VZYUx5QTkr?=
 =?utf-8?B?NW9WRGRXeE1LamliSS9mUjdIa1ZTdGtDUmh6QTBsLzBkSUJUb2EzWjNXY3hx?=
 =?utf-8?B?RGNwUVpZTFZxdUdmN3AwTGFWdDlaQk1rZFRpdlVuY2FxS2ZoUVM2dFVscHN2?=
 =?utf-8?B?NGcxZWx6ZkozdWdCMnAyZmRSU1pGWmxLTGJmZ1lqdE5mdjJqNmdQeEZra0E2?=
 =?utf-8?B?OXRncTFUVEY3UzRzUGFaWWhaejEwVnM3UVNaOE5oVGcyMitUbFVIQ0hhK3lo?=
 =?utf-8?B?bXJiRnh6bUlNR1pxdVBkTHp1SmplbENrY3dkM01TaUN4c2RleFhHSXA1b0dr?=
 =?utf-8?B?K0xOMWQ2SDJmK0FMejlUK1p2MkZtWmxXOHMxNUFrbTIrdVVXMCs5S0JTZzNV?=
 =?utf-8?B?VmFGWFgrZ2RMdkQ1enl1T3RZOTAyYUZWU0V5SjQ4ZkJLREljQzZMYXdHejFn?=
 =?utf-8?B?MFZkNmRydGUzZVgzMmlMQzk3c25qTzVQcEMveGIyajNvdFdoT1Z5MmFQN1hv?=
 =?utf-8?B?TENQZGx4Z3FZQ1V4aFBNYlhXTG03YUlSSmY3ZHRodVkvaTlwcU1JYlhQZEg2?=
 =?utf-8?B?aWdzMExST1M4WUdiVzJhaWI3eUdaZzdnbDg2MG1Od0NSUXRLdlBMYnVOR1JS?=
 =?utf-8?B?RjB1aGJhZjhCdkF2aGl6c0w0WXdTU2VOQmZVbkc3cnpjdWRtSENMSk5jZnYr?=
 =?utf-8?B?V2RiRVI4WGsvZVhsZENvM1dNb0s2NkJPVS8rZkZOYWx3cmhsYm1wb3MzcnhL?=
 =?utf-8?B?bHZraXZGMXg5bUdBZnZ6Z2xaaWgrcWV4ZklmNjlWT1pBeVNFVEpZaERqT0FD?=
 =?utf-8?B?V2o5QXFxaG1aVEZTYjdidWF1OENySmVBQk96TStscGRwd2hpRllobzRGc2U1?=
 =?utf-8?B?YVNwMGlOTkZXY2UwZXE5VEFnV3FoL1M3NWFIc1QvTEZHaXZYeTBwNmVLMFdV?=
 =?utf-8?B?SUUwWlZsWjdta0R0WHlzM1Y3dk5vWmxvcWw4eXZCNnpRaUMrRE5ObURyQk0x?=
 =?utf-8?B?QnVtSkVOR0ZYWnRyQ015SjNoYmU5SWg1RHNXRHVtZlNWMkZKZEo3NDMxcmkw?=
 =?utf-8?B?TjRZcXY0djhtZFFZQmdESlZpTzlQU3RKSzFmKyt0SWtpVG02NTBWbS9FY0Fx?=
 =?utf-8?B?bnc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3546c3fd-7019-4673-446e-08de340fb429
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 15:05:19.0068
 (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: DPn/0peEGQN1naYqFjqYqhPERsz+K24fzx15yhgGeo+xjO17YVB1NkBwimkXEXxz3QacIGxPhpI2KqLjxz3Z7ZR/BBF3B3UjnYTWWXaIqMA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB7677

On 05/12/2025 1:13 pm, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
>
> Using PKG_CHECK_VAR() to obtain SYSTEMD_SLEEP_DIR reintroduced a build-time
> dependency on systemd-devel. This breaks --enable-systemd builds that only
> need the initscripts.
>
> Use the same defaulting scheme as other systemd paths: if SYSTEMD_SLEEP_DIR
> isn't provided, set it to "$(prefix)/lib/systemd/system-sleep/".
>
> Fixes: e54a6cd6a1f3 ("systemd: Add hooks to stop/start xen-watchdog on suspend/resume")
> Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> Build in which the regression was detected:
> https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10959608099
> ---
>  m4/systemd.m4 | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/m4/systemd.m4 b/m4/systemd.m4
> index c47a25ef93..ee684d3391 100644
> --- a/m4/systemd.m4
> +++ b/m4/systemd.m4
> @@ -77,7 +77,7 @@ AC_DEFUN([AX_CHECK_SYSTEMD_LIBS], [
>  	], [])
>  
>  	AS_IF([test "x$SYSTEMD_SLEEP_DIR" = x], [
> -	    PKG_CHECK_VAR([SYSTEMD_SLEEP_DIR], [systemd], [systemdsleepdir])
> +	    SYSTEMD_SLEEP_DIR="\$(prefix)/lib/systemd/system-sleep/"
>  	], [])
>  
>  	AS_IF([test "x$SYSTEMD_SLEEP_DIR" = x], [

Actually on second thoughts...  The build failure was hitting this
second check, not the PKG_CHECK_VAR() itself.

If systemd-devel is installed, we should use what it provides.  So,
can't we just do this:

diff --git a/m4/systemd.m4 b/m4/systemd.m4
index c47a25ef9393..5fb5a7089ee3 100644
--- a/m4/systemd.m4
+++ b/m4/systemd.m4
@@ -81,7 +81,7 @@ AC_DEFUN([AX_CHECK_SYSTEMD_LIBS], [
        ], [])
 
        AS_IF([test "x$SYSTEMD_SLEEP_DIR" = x], [
-           AC_MSG_ERROR([SYSTEMD_SLEEP_DIR is unset])
+           SYSTEMD_SLEEP_DIR="\$(prefix)/lib/systemd/system-sleep/"
        ], [])
 ])

 
?

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 15:06:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 15:06:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179175.1502783 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRXOV-0001nZ-GJ; Fri, 05 Dec 2025 15:06:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179175.1502783; Fri, 05 Dec 2025 15:06:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRXOV-0001nS-DE; Fri, 05 Dec 2025 15:06:51 +0000
Received: by outflank-mailman (input) for mailman id 1179175;
 Fri, 05 Dec 2025 15:06:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=K96r=6L=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vRXOT-0001mR-Et
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 15:06:49 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0483e7d8-d1ec-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 16:06:47 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS0PR03MB7677.namprd03.prod.outlook.com (2603:10b6:8:1f8::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.12; Fri, 5 Dec
 2025 15:06:44 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.009; Fri, 5 Dec 2025
 15:06:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0483e7d8-d1ec-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VN07CB3C3lBHZ3A1klJm3L44SM4KZngYr7q56exX8ok5zYQoDTDl8tZWBd22BQXlhJGAr44QNEzhWLaY/DkZHvp8ARQEyiIJO09HMeWbMtf42dVa17cw8UUn4nonm8BCaJOY30MokHbbO2xiaalPw7MSr+8zCvQkbiO4Fwa9atIfK0EBtwMeNR79A7pf3t16y4AOTEII1cUkgfAyPIJMIeVJdvPhldWKge56qEWS/gBuT7+iXC+wuiQ9Zh9fajKu/EkbP7gU/u3YHUbMk7KSYjwv5fXCfiJvKHjU1odp4qP1czZmFbXxh42zjzo4U3hed3RNzCdEMeSCajcIwIM4kQ==
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=YAB2aPIjatkG6/LqpOkMLplp4a/GArTk1EgUwIgx5qE=;
 b=mJP00HMCWZxgFYMdwOVj5MNeI3Oei+vkt6kTTwaLiqauZ2p68EYYipkPpLJX1arnUeOwBzhnmmqCOdbChsMW1R7HBReCfxb2JsKeVaEgA5+euOdIQ/dFZXjqMeufiRPfibwmwzQVEiOkjSsA608mGBTUSJOruiiA/ZHJdn1FsbmKAyX1dThx68ELh2EKkxmVqIgf62mCLnGzYz0PFRg7SvClpIGdxq/9OHFkS1TJdkZVtk9jf5ygEeS2ixX1gEfsbxVr94iA54TL+U9zJtkoiimMHDrHwy33QYRka10sjOJFg8BJ806OGXlzbGmJQhS+us9ST0CerSxmzF8A6tFUJw==
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=YAB2aPIjatkG6/LqpOkMLplp4a/GArTk1EgUwIgx5qE=;
 b=RJyiKGr+EPA1GADs4bWut47kY5gaa2msFVUXdGin40wGjOzumZUte7oVnbl2EWYlcHeVs4GPmt041sYCOX5lbsu2EtLoJ3rQZcxt/8SkJERCTOApRYxsT8IbP4ykAnSaEJOZuCSGEIfwnpR8ffpmRB2SVEqlDLiPpmXOu3zIWVk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <6f189d1f-a6e6-48a2-875c-2df317b59b4d@citrix.com>
Date: Fri, 5 Dec 2025 15:06:40 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] xen/treewide: Use __ASSEMBLER__ instead of __ASSEMBLY__
To: Jan Beulich <jbeulich@suse.com>
References: <20251203133258.1624223-1-andrew.cooper3@citrix.com>
 <c21ddcb3-ba38-4dbb-9860-731eb43c38f3@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <c21ddcb3-ba38-4dbb-9860-731eb43c38f3@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0454.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:e::34) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS0PR03MB7677:EE_
X-MS-Office365-Filtering-Correlation-Id: 18e1a399-7461-4a46-e77f-08de340fe716
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|7416014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MjJaRXhTbzhlVjJPWWk4RnYrSUluakl2WUZPRkgySzlsYm56eUhpMC9sUkFL?=
 =?utf-8?B?ckxuRXdjR0g4anI0SzQwNWsrNDRjU2dqaVBvS3JzYUI0ZkpsMkZ3MU9qVzZE?=
 =?utf-8?B?NENnbHZoYUtRMUhIMExUS29LYXhzOGxKZElZTndsQkdaVmFzUE5YVndJeG83?=
 =?utf-8?B?UEl6L1cvY1dBTENBY1QxZlF6ckl5THcvbUFpVHBhVDl6TjZmTkRzNTl2YjZ0?=
 =?utf-8?B?VzhjUjBYeXZWb2xYQ2VCT013U3hadHFnd0cvVjhnN2E1MzlXMHFlOElvWnpV?=
 =?utf-8?B?YmplQUpDdWJFcW81YVZ0Z2Jqb2UxcWpiM1lxUlVQanVqL0hpZVFvSkorbitG?=
 =?utf-8?B?RWZBKzdad08zNUZvYitFN0lnVVlycVdNeU5XYURhNjViakRjYzgyNmxMSmdJ?=
 =?utf-8?B?cWMwZnRteWpKS0ROVTkwK0lZN3cxWElXaCt0WTM1YnBMeTRnS0F4K0ZUSFlx?=
 =?utf-8?B?S3dFY0xRVFhTamFiWFM0b2t2cGVHb0lZenZSZHZkU2c0NCs5bDN3RDVoTXZj?=
 =?utf-8?B?STUxZ3BMN241clVEVTY1TmpnSGhib3MveTNEdzNtRXZIaUtQV0Z0cHVodlJF?=
 =?utf-8?B?R1lZa0ZyL3plbkF1QjVPUU40WUdZWEd0UVdNYWNWRXdxYU1oTmV5eklNenhs?=
 =?utf-8?B?NWpKU093NVdBR1hUc3lnRUNRMnJ3WGg2cWFQeWFTdm9LZndJMWw0S2Q2N1JD?=
 =?utf-8?B?NDlTcm43Y0V4aXYrRlltUWxXT1E4NDVoaWMyUWZyUmtzTDhMZXpTRmRSdWNU?=
 =?utf-8?B?TnVHTjZmVlZ2Y25XUDgyR1FRODZLSnFQTjAyMUx2QlRQbGQrTm5DdysyYjBF?=
 =?utf-8?B?RTZZc3oyb0p6T2QrUUFvcFNrZ094NGhFUm9wc3U5MklrNmdhbFRFM2YyRmJK?=
 =?utf-8?B?bWtLckhlbG5OMzF5S0VCMWJjZGpGQ0JsdndCZmZuT0tGaXpBVlgzdHU1RzVr?=
 =?utf-8?B?RGwyZklUam9EeGIzT0FqdU5mc3pDam5XbXV2Rm5MR0pDbGlocnpBcGkxM3p4?=
 =?utf-8?B?OWpvRlV4bDZ2eCt6T2tkbnNxR3ZQbUw2L3h6REpaSXdiTitkNTJTb3JQVTky?=
 =?utf-8?B?cjlmUkhCRlRyRkZNSlI4NlZUY3ZYMnZJN09XOEN5SjZlUkVQT29PZnlLYVVD?=
 =?utf-8?B?TXhiZ0Njd25WdXZBd1VNbHJiSWxFYUgvVllmYzgrd1hjWE1WYUIxRnNEaGVv?=
 =?utf-8?B?WEovcjhkTUdrbGhqK2pBYUx2bno2UHM5ZEkrUmgxOEVMZ2lOclhLWnk4Slp0?=
 =?utf-8?B?M1Z0aTBGeUE1N01kSkFIV211KzdHVytaMU56OHkweVVRaTBYUDZUbTFySFQ5?=
 =?utf-8?B?OHlMMXhDSWl1ZGNPWXNpbCtrZEJnSEVJL1VxMEE3K1lMQndkeW5WRVpuN3ly?=
 =?utf-8?B?QWNpUlZHbU44aHhWYVJRNnFaVFYrRnlRQmdybE52UWJnUlRVVDlzMnNibi9G?=
 =?utf-8?B?enIwVGJEbE9BRWx6K2NnR3VUVkFMVEtQKzc0anV2QmIzSVdIdzhaMG5Kbndt?=
 =?utf-8?B?YXY2OG53VGpiYzJNNUNEemJNRDlzS3lHMlZQbm5LN3VaMndpQ29ueTJhZHI3?=
 =?utf-8?B?dHVpaktjeWZvbm1FSUNsbFFSLy93eTlkdDFibGFsT0lQSkVaQlJybUxGNTZw?=
 =?utf-8?B?U2Y3NHptTWhRSGx6TEluK3o1amovRTNyY2JjRGQ0THVYYU9RTXI1L2Y0S3pW?=
 =?utf-8?B?WlphRXRUK01mYnJlckNzd0pLQmRyd21McmxCUVlMWEIveElkQlRjQyt1Z1Zo?=
 =?utf-8?B?UytxM3RkYlJxTTF4R2VUa1NmKzdrYmtnOHNMV2oyL1g3RVdSbG5kUTNUWXBY?=
 =?utf-8?B?YUFuWTZmcjlhL09oNk4yc2JDdHhQcnAwdklOUkpjQTVNWGEyU0dRWVM1ZW5m?=
 =?utf-8?B?emt0YThDbnB2RzhFc29qYzZSTXFCWUZmOEdSSTFBN1RUS1Z5cXlFQ3l4bitR?=
 =?utf-8?Q?GhrgRkUizgRqlHH9GAoapkpwmIx2cwR1?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eGlyTHRFZ3FXK2dJMGtKa21QQU0yR0l5ODBGa0ltT01vNEVLWmc0S1pjVWw5?=
 =?utf-8?B?KytxcWV1QUpmOUtsVm9RUzY1bTdPTDFTQmtoNnRkTmdIczBDd1RtMkU1elQy?=
 =?utf-8?B?eUxzbkwyb1J0YnlFd2l3NmhMNjZyRmE4MDlCcjlSdlVnbXRhRnQzVnFrV0pD?=
 =?utf-8?B?WUV2WkJrUEFNa3VpTEFETnpSTXhFdHZGUTFlU2VRZG04NzVyVnI3clJrSWRz?=
 =?utf-8?B?c2t1V3dQYVdHcytiY3l5bzRIODludm5WTE1Mblh5bll4dmk3djFLd3NmZkZW?=
 =?utf-8?B?R2gxWldVTGJ0cmVIc1ZldXlPV0VEM3FhdW9weFdSSFR2Zlc1VUh5WkNxMWd3?=
 =?utf-8?B?YkR0bms4ckFpTG9jNmVVOXIzLzlDanFFbVpXSXZxdWR4OEkxSDljTzFkUjJw?=
 =?utf-8?B?QWpaUmY3UTRZQUpINngzdGxXUHBOYjA4U1pHUUFOZUJRZ2FWTVo0WHJSTlNa?=
 =?utf-8?B?MFBZOS9VZk11OVRRL3VPS0hCU3Y1V09hMXB5aGZ4TG5sSW94OEtZSmttaWVK?=
 =?utf-8?B?WjhmQVhxU0VNYzAzQlpnamozVHgyRzB5bCsyTEVKMGhqZC9TanIzdEQwYkxP?=
 =?utf-8?B?TmFRcVlxMHp4clRXZ3pjWFRCT1VncUp2M2gvUXFXbGYvNEdXR1c0bzFOZEVD?=
 =?utf-8?B?ZkdPZWVIMHdodmd6U3dXcXQ3RGc1WHJTUHI3M2JuRjJlMmJvR28vTzNTeXBk?=
 =?utf-8?B?am05SExLdElEUFlhS2ZTSHI1dENQUGFod0J0am50SGY2b0FIbXI1N2JqSENV?=
 =?utf-8?B?VUhCb3luVVgyQ2I0VUxxVmFCblNJbTdDUHlvRUV3VnU3dXNBNDJTUEVtbm1i?=
 =?utf-8?B?M1RJZ01FNVBJQm9WczJvcFFkV3VlQXgvNlBOOFIvZ3VSS2dlNWZWVXd0OHBI?=
 =?utf-8?B?eFVtZ2VvNmhKajBuU0dsay83NlFpTEdaUXNxUjlyZ1VTcHRRTDQ1RlA5YlBr?=
 =?utf-8?B?NHBBd0o3bG9ERmNET2VCcm00Z29kTUkzZ3BxcjgxcHdIUGRvSW5nSjlpMDZD?=
 =?utf-8?B?SkhaaXVXMjNmV1k1YVlxUlVLZ3pRdVlaaFl5QTdSaVU1Y1NXbzlkK3AvQXNq?=
 =?utf-8?B?NDlpdU5RQ1N3Mlg1Q0d1elF6R0p2Q1Yvc0xqK2Rxd0wxS0JEWE9OSi9rN1RH?=
 =?utf-8?B?WjJuNzJIcXFyNUsvc1pQV2hkK2R3eDdWbEtvQnBWellpUnR0SVhjUmo3RWZW?=
 =?utf-8?B?ZUdpU1liSjh0NkZ0STJ0K0w0WXJSZmp5VklXMFNaMzF3Q0RaNjAvRFhlRkV2?=
 =?utf-8?B?cERJT005VERkOVFqZExtaXFXc29iVjN6dk5wTW5uL0NFeGVyVitTbnZFMFdJ?=
 =?utf-8?B?dGhJKzZCSXZTYW1nQ1pHMm0yblNrNWVtbTJweEJyOUVTdVVJK3ExM2htMlN5?=
 =?utf-8?B?QlIxMkNHejVFTkJxd2JRYzVvK1hLWElUcWNUdnVPWC8wRHk3cVJodFRacE9Q?=
 =?utf-8?B?OGpiMEtLZGt6MG43QkpGT1l2T3Mzd1UyZ3lveVFIS0VONmxFUm52VHNibmR5?=
 =?utf-8?B?NzlxQ29CYWkySmlXNDRpK1ZqZ3EwQ1FyMUh2YzduWFJ3MEsxcEJ1MGZCYVpG?=
 =?utf-8?B?bzBuS0o3a3RteVkxL1FrYVl2ejRyV2FyaXorR0ExZkJLL3FTTE5hQ2FXTkdQ?=
 =?utf-8?B?czhnWkZPNlcyRnhQVy9oZmxrUXNVdzdPK3RRcTB4QWllNnhLUm5wOGFaOXBT?=
 =?utf-8?B?aGhBMW93SlpDM0h6UFlvUm5vZ3VrZGdrMkR2MmRQQmdFdGU2WlhXTzdKM0Fv?=
 =?utf-8?B?clpyUHdTZ3J2anljVnZHeVhpOXphdTBmc016Z2JWQnFVVTlLOGNnVUtFSW5D?=
 =?utf-8?B?amJJQy80dVNKRVFGZld4OGlzV25mbjRoMUdQMGhJbkZVczVnd1JiMy9JK0NM?=
 =?utf-8?B?OGR4TTNPenFXOThXQVA4Qm1EYzJGbmRyL1R1aEFXczVTTzA1NTJkVkh5Ry9B?=
 =?utf-8?B?aW84cFhjYWcwMG1waWthMDBnTEhjVDBoNHk1UFdwRnR6eVh4VDJjMnZuRWYz?=
 =?utf-8?B?WE1UQytsb3MwWFhhc3c5Umk3QzQzUFBpTjIvZitIcUNPZ2FBa2kwNkRCZ2ZC?=
 =?utf-8?B?NEZaY3JvREsvOFhoK2tsdEVxYllwaVYydHpJQllOZTg5SlhQdDBhNUl0d25s?=
 =?utf-8?B?cnFLRXJPcDJ5cW9TTGNDbXNkTUtZMGNyWlk0b2g3TU9uZjlzVzhRVFN4bCtw?=
 =?utf-8?B?SFE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 18e1a399-7461-4a46-e77f-08de340fe716
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 15:06:44.3657
 (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: cr0qiwmRgqxBI5lMz+DZG8Rgd6GN7k+wbdye2lGPLfvEEtIxQy4+c1rElrlURTHgUT3LNWOIR558Jji84wxBxxMD/3NNLzaIZqx9lG5ZY54=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB7677

On 05/12/2025 7:48 am, Jan Beulich wrote:
> On 03.12.2025 14:32, Andrew Cooper wrote:
>> __ASSEMBLER__ is how GCC and Clang spell this, removing the need to set it up
>> manually in AFLAGS.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> While I fear this might end up biting us significantly on certain backports,
> still:
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks.  What problem do you see with backporting?

#ifdef __ASSEMBLER__ will work perfectly well in older trees which also
still have __ASSEMBLY__

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 15:24:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 15:24:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179198.1502793 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRXff-0004o5-Qf; Fri, 05 Dec 2025 15:24:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179198.1502793; Fri, 05 Dec 2025 15:24:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRXff-0004ny-Nk; Fri, 05 Dec 2025 15:24:35 +0000
Received: by outflank-mailman (input) for mailman id 1179198;
 Fri, 05 Dec 2025 15:24:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=o2Fi=6L=redhat.com=mlureau@srs-se1.protection.inumbo.net>)
 id 1vRXfe-0004ns-MF
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 15:24:34 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7e1aaff9-d1ee-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 16:24:30 +0100 (CET)
Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com
 [209.85.216.71]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-448-6nWtLqdBNQG02kb9Oay5dg-1; Fri, 05 Dec 2025 10:24:26 -0500
Received: by mail-pj1-f71.google.com with SMTP id
 98e67ed59e1d1-343daf0f488so2516407a91.1
 for <xen-devel@lists.xenproject.org>; Fri, 05 Dec 2025 07:24:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7e1aaff9-d1ee-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1764948269;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=wGQ3gSFXtAe+arpdzWG/ZFCjDKYAro2OI+h8YKyav2g=;
	b=RjAdkMD0D38Q8ah3MZC7ICHR0o84nF0NXnJywnoEboD5RLAxlJATNN8mZBp5a4kI/2aPYo
	lUYl189aIbeZsvpn6M7wrYqu+SfT9szGoBwg1ZydDlTR7gvKwc124CNGertowtROXHguF9
	jzFaDKzR9zrXktDZTWT2MmwTrA7KURs=
X-MC-Unique: 6nWtLqdBNQG02kb9Oay5dg-1
X-Mimecast-MFC-AGG-ID: 6nWtLqdBNQG02kb9Oay5dg_1764948266
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764948265; x=1765553065;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wGQ3gSFXtAe+arpdzWG/ZFCjDKYAro2OI+h8YKyav2g=;
        b=JkPRR/YNdaQ8QUo1FGIg/+W9syzxB4wZv4X5YJF2N1XmkFfT9kTeCJeIU96wv7XQOW
         7X+y6JadT7hXen3S3Y011Xt1AkBtzJsej7t7JjEZyS9hGNvR7TR20FqCw6kveqYFw2nd
         ocQurZxtcDNvNpgqfEgCBZW90ag3rS+PeouY2/+7A7dIr0I6TQAznfZZxQfCkvbA3PTl
         Llp3rgFZeMCN3bGhnbI0p/53UgKierZtFZPBOCVKgLvrqdmG4Xz8Ef25IL0U5MV10zSF
         +8w1X0Db1+EA/jRzbvoxl5VjPGaKMiaoA4KBi7oy1aumno4GWBhR5SbVYlAoHzlTNwQ7
         Cvnw==
X-Forwarded-Encrypted: i=1; AJvYcCXExbkkXTbeNGZ4nCfiwE0nz+CL/tGfuGUsW+b5H81ATuGnwmmgYOmCQfB6CgmL3gI7vgN86Vdl360=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw97rpk/EdUESBiej68ZRq9POZ/rskD+6dq7EEpJs/tg1hBVob1
	1Q34k+WICscW8EC+SLq2g5Vw8H8avBmxM4R3sUTV/B+kIIEpIEi5PO8VtXOGaUzHBm64RE79jKM
	CYXR9kVRHdmp0zzPuNUNiugl0s+8SXw9KD9eGqHBFcwoE7nwXyX7702iw3i0dQb8u4NFrLRJLer
	rykA0g2tgyLIA7sWoIxA90msNTJuKnbywr6N500xAPJwEuGGCFvEE2y4gx
X-Gm-Gg: ASbGncu48Mjt+99cxCmxeu0WbjDFvGugBz8H8gsumLT6Gt1iBWxmF51KZNzpXnpbW5U
	fKrUPHJkKf9j7EOEZ56Zoc0++V7zOwYMSiHSQ+GUytKK2ltorY46h45UILPNUoxBkGN+jue1BG3
	9XrZGQk+RY0KxijxhMN8aTbY1pZT/J5r5ZhOqKcMPfVb+DH6uDCDSOH7PLkmQFOFodNV1SVlktW
	+lTywHmLfW60D2S3+xMbztaaA==
X-Received: by 2002:a17:90b:17ca:b0:341:124f:474f with SMTP id 98e67ed59e1d1-34947f2b8a9mr6126523a91.32.1764948265414;
        Fri, 05 Dec 2025 07:24:25 -0800 (PST)
X-Google-Smtp-Source: AGHT+IGRpg9e4hXez788TlRNE+96c2PecEZD4WmvaZztPCsU5od5++DBjY2+FjMhNqnJS1fhvh2lWcCIglVAtlI6HSE=
X-Received: by 2002:a17:90b:17ca:b0:341:124f:474f with SMTP id
 98e67ed59e1d1-34947f2b8a9mr6126494a91.32.1764948264985; Fri, 05 Dec 2025
 07:24:24 -0800 (PST)
MIME-Version: 1.0
References: <20251204154235.149575-1-vsementsov@yandex-team.ru> <20251204154235.149575-9-vsementsov@yandex-team.ru>
In-Reply-To: <20251204154235.149575-9-vsementsov@yandex-team.ru>
From: =?UTF-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= <marcandre.lureau@redhat.com>
Date: Fri, 5 Dec 2025 19:24:13 +0400
X-Gm-Features: AWmQ_bnQfU7U8hjEbnC-2KmRzhX5UT8eWgvGZ0S0lfZmcWYtA3w-z4ubcFRlUIw
Message-ID: <CAMxuvawnLfV480yuELn2hvGcq8g3gwo2o_v5VNjdYG0Vpxd1_Q@mail.gmail.com>
Subject: Re: [PATCH v2 08/10] chardev: introduce .chr_get_pty_name() handler
To: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Cc: pbonzini@redhat.com, qemu-devel@nongnu.org, d-tatianin@yandex-team.ru, 
	Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, 
	Paul Durrant <paul@xen.org>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, 
	"open list:X86 Xen CPUs" <xen-devel@lists.xenproject.org>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: qMYLvdYIXUco1t_b7LuT_Suo__6VWrlB0y48JZYE-x8_1764948266
X-Mimecast-Originator: redhat.com
Content-Type: multipart/alternative; boundary="00000000000061bcef0645360a46"

--00000000000061bcef0645360a46
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi

On Thu, Dec 4, 2025 at 7:42=E2=80=AFPM Vladimir Sementsov-Ogievskiy <
vsementsov@yandex-team.ru> wrote:

> Currently we do two wrong things:
>
> 1. Abuse s->filename to get pty_name from it
>
> 2. Violate layering with help of CHARDEV_IS_PTY()
>
> Let's get rid of both, and introduce correct way to get pty name in
> generic code, if available.
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
>

Reviewed-by: Marc-Andr=C3=A9 Lureau <marcandre.lureau@redhat.com>


> ---
>  chardev/char-pty.c     |  7 +++++++
>  chardev/char.c         | 19 +++++++++++++------
>  hw/char/xen_console.c  |  7 ++++---
>  include/chardev/char.h |  7 +++++--
>  4 files changed, 29 insertions(+), 11 deletions(-)
>
> diff --git a/chardev/char-pty.c b/chardev/char-pty.c
> index a582aa7bc7..047aade09e 100644
> --- a/chardev/char-pty.c
> +++ b/chardev/char-pty.c
> @@ -387,6 +387,12 @@ static void pty_chr_parse(QemuOpts *opts,
> ChardevBackend *backend, Error **errp)
>      pty->path =3D g_strdup(path);
>  }
>
> +static char *pty_chr_get_pty_name(Chardev *chr)
> +{
> +    PtyChardev *s =3D PTY_CHARDEV(chr);
> +    return g_strdup(s->pty_name);
> +}
> +
>  static void char_pty_class_init(ObjectClass *oc, const void *data)
>  {
>      ChardevClass *cc =3D CHARDEV_CLASS(oc);
> @@ -396,6 +402,7 @@ static void char_pty_class_init(ObjectClass *oc, cons=
t
> void *data)
>      cc->chr_write =3D pty_chr_write;
>      cc->chr_update_read_handler =3D pty_chr_update_read_handler;
>      cc->chr_add_watch =3D pty_chr_add_watch;
> +    cc->chr_get_pty_name =3D pty_chr_get_pty_name;
>  }
>
>  static const TypeInfo char_pty_type_info =3D {
> diff --git a/chardev/char.c b/chardev/char.c
> index 44bfed3627..0dc792b88f 100644
> --- a/chardev/char.c
> +++ b/chardev/char.c
> @@ -1090,9 +1090,7 @@ ChardevReturn *qmp_chardev_add(const char *id,
> ChardevBackend *backend,
>      }
>
>      ret =3D g_new0(ChardevReturn, 1);
> -    if (CHARDEV_IS_PTY(chr)) {
> -        ret->pty =3D g_strdup(chr->filename + 4);
> -    }
> +    ret->pty =3D qemu_chr_get_pty_name(chr);
>
>      return ret;
>
> @@ -1101,6 +1099,17 @@ err:
>      return NULL;
>  }
>
> +char *qemu_chr_get_pty_name(Chardev *chr)
> +{
> +    ChardevClass *cc =3D CHARDEV_GET_CLASS(chr);
> +
> +    if (cc->chr_get_pty_name) {
> +        return cc->chr_get_pty_name(chr);
> +    }
> +
> +    return NULL;
> +}
> +
>  ChardevReturn *qmp_chardev_change(const char *id, ChardevBackend *backen=
d,
>                                    Error **errp)
>  {
> @@ -1192,9 +1201,7 @@ ChardevReturn *qmp_chardev_change(const char *id,
> ChardevBackend *backend,
>      object_unref(OBJECT(chr_new));
>
>      ret =3D g_new0(ChardevReturn, 1);
> -    if (CHARDEV_IS_PTY(chr_new)) {
> -        ret->pty =3D g_strdup(chr_new->filename + 4);
> -    }
> +    ret->pty =3D qemu_chr_get_pty_name(chr_new);
>
>      return ret;
>  }
> diff --git a/hw/char/xen_console.c b/hw/char/xen_console.c
> index a639fb0b11..7502de46e4 100644
> --- a/hw/char/xen_console.c
> +++ b/hw/char/xen_console.c
> @@ -418,6 +418,7 @@ static void xen_console_realize(XenDevice *xendev,
> Error **errp)
>      XenConsole *con =3D XEN_CONSOLE_DEVICE(xendev);
>      Chardev *cs =3D qemu_chr_fe_get_driver(&con->chr);
>      unsigned int u;
> +    g_autofree char *pty_name =3D NULL;
>
>      if (!cs) {
>          error_setg(errp, "no backing character device");
> @@ -450,9 +451,9 @@ static void xen_console_realize(XenDevice *xendev,
> Error **errp)
>
>      trace_xen_console_realize(con->dev, object_get_typename(OBJECT(cs)))=
;
>
> -    if (CHARDEV_IS_PTY(cs)) {
> -        /* Strip the leading 'pty:' */
> -        xen_device_frontend_printf(xendev, "tty", "%s", cs->filename + 4=
);
> +    pty_name =3D qemu_chr_get_pty_name(cs);
> +    if (pty_name) {
> +        xen_device_frontend_printf(xendev, "tty", "%s", pty_name);
>      }
>
>      /* No normal PV driver initialization for the primary console under
> Xen */
> diff --git a/include/chardev/char.h b/include/chardev/char.h
> index 23a227dca9..d36e50b99e 100644
> --- a/include/chardev/char.h
> +++ b/include/chardev/char.h
> @@ -247,8 +247,6 @@ OBJECT_DECLARE_TYPE(Chardev, ChardevClass, CHARDEV)
>
>  #define CHARDEV_IS_RINGBUF(chr) \
>      object_dynamic_cast(OBJECT(chr), TYPE_CHARDEV_RINGBUF)
> -#define CHARDEV_IS_PTY(chr) \
> -    object_dynamic_cast(OBJECT(chr), TYPE_CHARDEV_PTY)
>
>  struct ChardevClass {
>      ObjectClass parent_class;
> @@ -306,6 +304,9 @@ struct ChardevClass {
>
>      /* handle various events */
>      void (*chr_be_event)(Chardev *s, QEMUChrEvent event);
> +
> +    /* return PTY name if available */
> +    char *(*chr_get_pty_name)(Chardev *s);
>  };
>
>  Chardev *qemu_chardev_new(const char *id, const char *typename,
> @@ -320,4 +321,6 @@ GSource *qemu_chr_timeout_add_ms(Chardev *chr, guint
> ms,
>  void suspend_mux_open(void);
>  void resume_mux_open(void);
>
> +char *qemu_chr_get_pty_name(Chardev *chr);
> +
>  #endif
> --
> 2.48.1
>
>

--00000000000061bcef0645360a46
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr">Hi</div><br><div class=3D"gmail_quote gma=
il_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, Dec 4, 20=
25 at 7:42=E2=80=AFPM Vladimir Sementsov-Ogievskiy &lt;<a href=3D"mailto:vs=
ementsov@yandex-team.ru">vsementsov@yandex-team.ru</a>&gt; wrote:<br></div>=
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left:1px solid rgb(204,204,204);padding-left:1ex">Currently we do two wrong=
 things:<br>
<br>
1. Abuse s-&gt;filename to get pty_name from it<br>
<br>
2. Violate layering with help of CHARDEV_IS_PTY()<br>
<br>
Let&#39;s get rid of both, and introduce correct way to get pty name in<br>
generic code, if available.<br>
<br>
Signed-off-by: Vladimir Sementsov-Ogievskiy &lt;<a href=3D"mailto:vsementso=
v@yandex-team.ru" target=3D"_blank">vsementsov@yandex-team.ru</a>&gt;<br></=
blockquote><div><br></div><div>Reviewed-by: Marc-Andr=C3=A9 Lureau &lt;<a h=
ref=3D"mailto:marcandre.lureau@redhat.com">marcandre.lureau@redhat.com</a>&=
gt;</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin=
:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"=
>
---<br>
=C2=A0chardev/char-pty.c=C2=A0 =C2=A0 =C2=A0|=C2=A0 7 +++++++<br>
=C2=A0chardev/char.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| 19 +++++++++++++---=
---<br>
=C2=A0hw/char/xen_console.c=C2=A0 |=C2=A0 7 ++++---<br>
=C2=A0include/chardev/char.h |=C2=A0 7 +++++--<br>
=C2=A04 files changed, 29 insertions(+), 11 deletions(-)<br>
<br>
diff --git a/chardev/char-pty.c b/chardev/char-pty.c<br>
index a582aa7bc7..047aade09e 100644<br>
--- a/chardev/char-pty.c<br>
+++ b/chardev/char-pty.c<br>
@@ -387,6 +387,12 @@ static void pty_chr_parse(QemuOpts *opts, ChardevBacke=
nd *backend, Error **errp)<br>
=C2=A0 =C2=A0 =C2=A0pty-&gt;path =3D g_strdup(path);<br>
=C2=A0}<br>
<br>
+static char *pty_chr_get_pty_name(Chardev *chr)<br>
+{<br>
+=C2=A0 =C2=A0 PtyChardev *s =3D PTY_CHARDEV(chr);<br>
+=C2=A0 =C2=A0 return g_strdup(s-&gt;pty_name);<br>
+}<br>
+<br>
=C2=A0static void char_pty_class_init(ObjectClass *oc, const void *data)<br=
>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0ChardevClass *cc =3D CHARDEV_CLASS(oc);<br>
@@ -396,6 +402,7 @@ static void char_pty_class_init(ObjectClass *oc, const =
void *data)<br>
=C2=A0 =C2=A0 =C2=A0cc-&gt;chr_write =3D pty_chr_write;<br>
=C2=A0 =C2=A0 =C2=A0cc-&gt;chr_update_read_handler =3D pty_chr_update_read_=
handler;<br>
=C2=A0 =C2=A0 =C2=A0cc-&gt;chr_add_watch =3D pty_chr_add_watch;<br>
+=C2=A0 =C2=A0 cc-&gt;chr_get_pty_name =3D pty_chr_get_pty_name;<br>
=C2=A0}<br>
<br>
=C2=A0static const TypeInfo char_pty_type_info =3D {<br>
diff --git a/chardev/char.c b/chardev/char.c<br>
index 44bfed3627..0dc792b88f 100644<br>
--- a/chardev/char.c<br>
+++ b/chardev/char.c<br>
@@ -1090,9 +1090,7 @@ ChardevReturn *qmp_chardev_add(const char *id, Charde=
vBackend *backend,<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0ret =3D g_new0(ChardevReturn, 1);<br>
-=C2=A0 =C2=A0 if (CHARDEV_IS_PTY(chr)) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 ret-&gt;pty =3D g_strdup(chr-&gt;filename + 4)=
;<br>
-=C2=A0 =C2=A0 }<br>
+=C2=A0 =C2=A0 ret-&gt;pty =3D qemu_chr_get_pty_name(chr);<br>
<br>
=C2=A0 =C2=A0 =C2=A0return ret;<br>
<br>
@@ -1101,6 +1099,17 @@ err:<br>
=C2=A0 =C2=A0 =C2=A0return NULL;<br>
=C2=A0}<br>
<br>
+char *qemu_chr_get_pty_name(Chardev *chr)<br>
+{<br>
+=C2=A0 =C2=A0 ChardevClass *cc =3D CHARDEV_GET_CLASS(chr);<br>
+<br>
+=C2=A0 =C2=A0 if (cc-&gt;chr_get_pty_name) {<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 return cc-&gt;chr_get_pty_name(chr);<br>
+=C2=A0 =C2=A0 }<br>
+<br>
+=C2=A0 =C2=A0 return NULL;<br>
+}<br>
+<br>
=C2=A0ChardevReturn *qmp_chardev_change(const char *id, ChardevBackend *bac=
kend,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Error **errp)<br>
=C2=A0{<br>
@@ -1192,9 +1201,7 @@ ChardevReturn *qmp_chardev_change(const char *id, Cha=
rdevBackend *backend,<br>
=C2=A0 =C2=A0 =C2=A0object_unref(OBJECT(chr_new));<br>
<br>
=C2=A0 =C2=A0 =C2=A0ret =3D g_new0(ChardevReturn, 1);<br>
-=C2=A0 =C2=A0 if (CHARDEV_IS_PTY(chr_new)) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 ret-&gt;pty =3D g_strdup(chr_new-&gt;filename =
+ 4);<br>
-=C2=A0 =C2=A0 }<br>
+=C2=A0 =C2=A0 ret-&gt;pty =3D qemu_chr_get_pty_name(chr_new);<br>
<br>
=C2=A0 =C2=A0 =C2=A0return ret;<br>
=C2=A0}<br>
diff --git a/hw/char/xen_console.c b/hw/char/xen_console.c<br>
index a639fb0b11..7502de46e4 100644<br>
--- a/hw/char/xen_console.c<br>
+++ b/hw/char/xen_console.c<br>
@@ -418,6 +418,7 @@ static void xen_console_realize(XenDevice *xendev, Erro=
r **errp)<br>
=C2=A0 =C2=A0 =C2=A0XenConsole *con =3D XEN_CONSOLE_DEVICE(xendev);<br>
=C2=A0 =C2=A0 =C2=A0Chardev *cs =3D qemu_chr_fe_get_driver(&amp;con-&gt;chr=
);<br>
=C2=A0 =C2=A0 =C2=A0unsigned int u;<br>
+=C2=A0 =C2=A0 g_autofree char *pty_name =3D NULL;<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (!cs) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0error_setg(errp, &quot;no backing charact=
er device&quot;);<br>
@@ -450,9 +451,9 @@ static void xen_console_realize(XenDevice *xendev, Erro=
r **errp)<br>
<br>
=C2=A0 =C2=A0 =C2=A0trace_xen_console_realize(con-&gt;dev, object_get_typen=
ame(OBJECT(cs)));<br>
<br>
-=C2=A0 =C2=A0 if (CHARDEV_IS_PTY(cs)) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 /* Strip the leading &#39;pty:&#39; */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 xen_device_frontend_printf(xendev, &quot;tty&q=
uot;, &quot;%s&quot;, cs-&gt;filename + 4);<br>
+=C2=A0 =C2=A0 pty_name =3D qemu_chr_get_pty_name(cs);<br>
+=C2=A0 =C2=A0 if (pty_name) {<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 xen_device_frontend_printf(xendev, &quot;tty&q=
uot;, &quot;%s&quot;, pty_name);<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* No normal PV driver initialization for the primary c=
onsole under Xen */<br>
diff --git a/include/chardev/char.h b/include/chardev/char.h<br>
index 23a227dca9..d36e50b99e 100644<br>
--- a/include/chardev/char.h<br>
+++ b/include/chardev/char.h<br>
@@ -247,8 +247,6 @@ OBJECT_DECLARE_TYPE(Chardev, ChardevClass, CHARDEV)<br>
<br>
=C2=A0#define CHARDEV_IS_RINGBUF(chr) \<br>
=C2=A0 =C2=A0 =C2=A0object_dynamic_cast(OBJECT(chr), TYPE_CHARDEV_RINGBUF)<=
br>
-#define CHARDEV_IS_PTY(chr) \<br>
-=C2=A0 =C2=A0 object_dynamic_cast(OBJECT(chr), TYPE_CHARDEV_PTY)<br>
<br>
=C2=A0struct ChardevClass {<br>
=C2=A0 =C2=A0 =C2=A0ObjectClass parent_class;<br>
@@ -306,6 +304,9 @@ struct ChardevClass {<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* handle various events */<br>
=C2=A0 =C2=A0 =C2=A0void (*chr_be_event)(Chardev *s, QEMUChrEvent event);<b=
r>
+<br>
+=C2=A0 =C2=A0 /* return PTY name if available */<br>
+=C2=A0 =C2=A0 char *(*chr_get_pty_name)(Chardev *s);<br>
=C2=A0};<br>
<br>
=C2=A0Chardev *qemu_chardev_new(const char *id, const char *typename,<br>
@@ -320,4 +321,6 @@ GSource *qemu_chr_timeout_add_ms(Chardev *chr, guint ms=
,<br>
=C2=A0void suspend_mux_open(void);<br>
=C2=A0void resume_mux_open(void);<br>
<br>
+char *qemu_chr_get_pty_name(Chardev *chr);<br>
+<br>
=C2=A0#endif<br>
-- <br>
2.48.1<br>
<br>
</blockquote></div></div>

--00000000000061bcef0645360a46--



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 15:27:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 15:27:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179212.1502804 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRXic-0005Qe-CQ; Fri, 05 Dec 2025 15:27:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179212.1502804; Fri, 05 Dec 2025 15:27:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRXic-0005QX-8U; Fri, 05 Dec 2025 15:27:38 +0000
Received: by outflank-mailman (input) for mailman id 1179212;
 Fri, 05 Dec 2025 15:27:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mBPq=6L=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vRXia-0005QR-Sm
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 15:27:36 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ec531519-d1ee-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 16:27:34 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-5942bac322dso2327584e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 05 Dec 2025 07:27:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ec531519-d1ee-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764948454; x=1765553254; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Zg9Q8IvwftI+PWZC2jqqD2Ko0yXbyXiADG9swW+S17U=;
        b=Ds1T3BYwTxxAxb+1K6VXnQYMjIFUR70zefW9DwSIGWevdu7grcORqEZsbFdiS5h968
         jLozb/iJVjq68HOtH3bBlQ37ao/PXT7fFzAzgVHObucAYYF380bSniye7y/GnUBSnESs
         n4g46I2EEI+x3gHQ8PZ+eQgEo26BczmKFCrZVvwWzm25tf70hL3FloCl2ev5UGbljkrv
         zbuBSPAUsTGjq3uJESUwuRrUwLtN+rSQxFqnNlx041vRzYSbTg0/8VA8G6qw3oj9AZTB
         4VTjXbDqpfw/4yNeN4j0YxG4El5UwiB0MRVuGDpeRTwt9XIIYKUyoYousVPeZ33Yvl0H
         eHQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764948454; x=1765553254;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Zg9Q8IvwftI+PWZC2jqqD2Ko0yXbyXiADG9swW+S17U=;
        b=dq/CybXqW+nL9VohXU+NraeipX89RenzWxPlLZAbd6c/r8+DqxwHW0Ck5by/AJSXbN
         g1wWOynP3qCh3nxMOAJjerk4mYWtJDHqFKBGphpiKh3eb424nJFnT2UslWXlLRNTdNuH
         PQ1qWlmz8f1QzTS6dcSsfVtIG4Ex0QWVuelrrwVYtnvQd2kx5OvC9ws7Uvn/9976gAPr
         xv6egIgeO5449I628reLn0SLpXm70hCw1RTHbqcZfR2jOPL/jSOV/jf9iXILnm3qeMVJ
         n7U2vrquLNclAn7DtKc5tG1qD+f4Mqwp58RHesigbm2YpK+pcLpnrwOHUzs3WeywN8F8
         Gxdg==
X-Gm-Message-State: AOJu0YzCNn04cS8fHIlNyyIAYYiOzC0rTRxj1cWenp8jqKZ8ini8Yl0g
	yM5yt2BMa7CMjgkjtTsQZODa2Zst9J1uCxu5EUPFPWO0i57y7fIRo+drtkTBdP2yGA535ZD2rdd
	xYPEWUbowl26dDpdSmxoC/vzCeUZwEQfS/sxsiBM=
X-Gm-Gg: ASbGncupTScN2UKb4ojBsiPfuiD3y/4B6RXqL5WeJwpVnNPKY6p4ZlIy0gwHmsjDnNt
	8THFilFm3x+Ud58ezv4R4SRM+at+goBESR425vSaVTLEoJpcFkPJxJdeIIjuuta1Amo7xk/dkXE
	F1ewaQ6iaXFHDUJaNazxi68owPe3gQXf+7Okvmf7MnGQKJ8pSLIhoyjczNSGKVTzgMB77igANNm
	CuyXG7EEiUI43NShlqX15e1jWgKb6lwoa7jAg7yt++MH36ZohV2p3P5cNwZZ7e2/1dBCQ==
X-Google-Smtp-Source: AGHT+IHkIECWn+H0grUO1vOoGeUpaD5oKYBrl6iQZyWMR1d6EgFq7FIFlz7GFCsYsYOurFAgt6tzvh1UGHLZot22zR0=
X-Received: by 2002:a05:6512:3d94:b0:594:5545:b743 with SMTP id
 2adb3069b0e04-597d3fa063dmr3962355e87.27.1764948453801; Fri, 05 Dec 2025
 07:27:33 -0800 (PST)
MIME-Version: 1.0
References: <f03c8a2fe81527841966ed6c8ed603d1d90ee5c4.1764940296.git.mykola_kvach@epam.com>
 <71a560d9-c96a-4cf1-a616-c4366c1bb9c2@citrix.com>
In-Reply-To: <71a560d9-c96a-4cf1-a616-c4366c1bb9c2@citrix.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 5 Dec 2025 17:27:18 +0200
X-Gm-Features: AWmQ_bka10MqrXcSY_UQ1m0u4zx6vUYs9_uBGaH_3P5aIRRWc-t_CWrGd78MNMg
Message-ID: <CAGeoDV9-rYn2eNXygGsDNeRgFvt4oV42ygzC2bCgc6OAk6mq-A@mail.gmail.com>
Subject: Re: [PATCH] systemd: default system-sleep dir without pkg-config
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Andrew,

On Fri, Dec 5, 2025 at 5:05=E2=80=AFPM Andrew Cooper <andrew.cooper3@citrix=
.com> wrote:
>
> On 05/12/2025 1:13 pm, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > Using PKG_CHECK_VAR() to obtain SYSTEMD_SLEEP_DIR reintroduced a build-=
time
> > dependency on systemd-devel. This breaks --enable-systemd builds that o=
nly
> > need the initscripts.
> >
> > Use the same defaulting scheme as other systemd paths: if SYSTEMD_SLEEP=
_DIR
> > isn't provided, set it to "$(prefix)/lib/systemd/system-sleep/".
> >
> > Fixes: e54a6cd6a1f3 ("systemd: Add hooks to stop/start xen-watchdog on =
suspend/resume")
> > Reported-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingsl=
ab.com>
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > Build in which the regression was detected:
> > https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10959608099
> > ---
> >  m4/systemd.m4 | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/m4/systemd.m4 b/m4/systemd.m4
> > index c47a25ef93..ee684d3391 100644
> > --- a/m4/systemd.m4
> > +++ b/m4/systemd.m4
> > @@ -77,7 +77,7 @@ AC_DEFUN([AX_CHECK_SYSTEMD_LIBS], [
> >       ], [])
> >
> >       AS_IF([test "x$SYSTEMD_SLEEP_DIR" =3D x], [
> > -         PKG_CHECK_VAR([SYSTEMD_SLEEP_DIR], [systemd], [systemdsleepdi=
r])
> > +         SYSTEMD_SLEEP_DIR=3D"\$(prefix)/lib/systemd/system-sleep/"
> >       ], [])
> >
> >       AS_IF([test "x$SYSTEMD_SLEEP_DIR" =3D x], [
>
> Actually on second thoughts...  The build failure was hitting this
> second check, not the PKG_CHECK_VAR() itself.
>
> If systemd-devel is installed, we should use what it provides.  So,
> can't we just do this:
>
> diff --git a/m4/systemd.m4 b/m4/systemd.m4
> index c47a25ef9393..5fb5a7089ee3 100644
> --- a/m4/systemd.m4
> +++ b/m4/systemd.m4
> @@ -81,7 +81,7 @@ AC_DEFUN([AX_CHECK_SYSTEMD_LIBS], [
>         ], [])
>
>         AS_IF([test "x$SYSTEMD_SLEEP_DIR" =3D x], [
> -           AC_MSG_ERROR([SYSTEMD_SLEEP_DIR is unset])
> +           SYSTEMD_SLEEP_DIR=3D"\$(prefix)/lib/systemd/system-sleep/"
>         ], [])
>  ])
>
>
> ?

Agreed. Using the systemd-provided value when available and falling
back to the default otherwise makes sense. I=E2=80=99ve sent v2 of this ser=
ies
with your proposed change.

>
> ~Andrew


Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 15:29:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 15:29:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179222.1502814 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRXk7-0005w7-LT; Fri, 05 Dec 2025 15:29:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179222.1502814; Fri, 05 Dec 2025 15:29:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRXk7-0005w0-IK; Fri, 05 Dec 2025 15:29:11 +0000
Received: by outflank-mailman (input) for mailman id 1179222;
 Fri, 05 Dec 2025 15:29:10 +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
 <SRS0=niBk=6L=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vRXk6-0005vu-2V
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 15:29:10 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 247c9927-d1ef-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 16:29:09 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-42e2e671521so1472463f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 05 Dec 2025 07:29:09 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbe8fe8sm9342914f8f.2.2025.12.05.07.29.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 05 Dec 2025 07:29:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 247c9927-d1ef-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764948548; x=1765553348; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=m5poUjleRs6edLNo2yJ5LkEsXL+q9XYEcbgn9x0APa4=;
        b=HGn4gYrMB2L696G96GnoENeykE6UTirGbBULFxbqhODUmGXUnLU/9LIH0cMaEZM/j+
         F3lJvEdrkBpsUarlH0krJuHxzb5kkrViZXshXDRjJtxQsCeQYhgQB49SD/Egke//1UTQ
         5TX02q5oAptsbVahxNuGKKPrY07zr4yJFj848=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764948548; x=1765553348;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=m5poUjleRs6edLNo2yJ5LkEsXL+q9XYEcbgn9x0APa4=;
        b=O4KhQxiV6dWtPfo637H/QrqT0AWj13Ffzj6zFWoi9jXVv0Lf0Agy0LqEw24ZyccpOp
         8ZB+dCUzeqxQR2QxTLFMzT4S/YDn2uN23lSpgMSJ2vKmz0ll0izRU+IPnT/QaStTVao7
         Vjr468wra7cLsI0ERZrQfR9CFxxO6V+DjUQhTESSjeV13HxCGAsgAKkTzSzFuvOPgZvf
         6uGlcxYPjMtQlZv9ag3kvoHA5F1IQtltTc3yo4h1YCf7EkkyuJqxEPfI9y0zrYOPLHC5
         3FMAy8toYEEwNHXNfKWR/zcbJuBJUnmW/IVn8XAu3nv9eHa3x2UfIwLtaeWtD9mFze2O
         FUzQ==
X-Gm-Message-State: AOJu0YwKupeOarViQS9wndVOM6y68wThEMAmo3h+JPJSVPt2Q+8Fk0/C
	pf2CATalIaEC0gygfWWalgsMgxTZovi9274ZgqjZfzrisM7WzV75hTi6eG1Cn59D7DxPQ/mCUKR
	OIpbF
X-Gm-Gg: ASbGncsPaIO+hJVvP9XVOIlDv/ouh+BpgsfagLXNSrlZfBDv1ocRDcHRLhwWrj2ix8I
	9VIi0fatR3JZ0cxyuIznqNe4Q3wPk9MQ9JTGhjK6z1xVTKhR/jeybXi/kPBNBFG9B7Vi+mE66Ye
	TxEtgfciVe/Rmv+jcrt2fQKwTFmsNIs8+D6jPsJCIbmvgJbtHczuoeVS+pOhGNj2MMxHUSqR1sQ
	ga/PNLU6FHcYzLhZeMH/dGK4SBP/5hbqOhnUwOHZ9S6cj16YGemufyH2/ZazKPcSgs5LeaYMS3+
	gKJlnKujOXe7pACI9umB5hatdasrUH9YBm0+2tG9+ua0JsTjNNmvq9pDsP7lQkHexZsKO8uHOXB
	BaSSxWV6PIULnq/M0+h9sK3PUo65cWerplGLzXzonXlZZ/unvK5PhOPUxDSQe61BIxKgGT284+5
	9Fz5BmYHNOtix9cMg2A43ARnOj3r+GvDHqOHX1mVoXGlrs9UCI8u+gwIunPLB4Nw==
X-Google-Smtp-Source: AGHT+IGYFNqWp4fbqvpwcHZhcQDgXuY9CfBm1OcejdEUr5UNIL0G6rMdJEJ5fHqBS33TMnS88OFcZQ==
X-Received: by 2002:a05:6000:2912:b0:429:ccd7:9d94 with SMTP id ffacd0b85a97d-42f79862526mr7481872f8f.51.1764948547820;
        Fri, 05 Dec 2025 07:29:07 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] x86/kexec: Replace CALL+UD2 pattern with JMP
Date: Fri,  5 Dec 2025 15:29:05 +0000
Message-Id: <20251205152905.1925700-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Linux jumps to the target image rather than calling it.  Switch to using JMP,
and drop the trailing UD2s.

Linux does have a mode, named CONFIG_KEXEC_JUMP, where the target image can be
returned from, but that involves extra metadata and setting up a stack within
the target image which Xen doesn't support at the moment.

No functional change.

Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/x86_64/kexec_reloc.S | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/x86_64/kexec_reloc.S b/xen/arch/x86/x86_64/kexec_reloc.S
index 50ba454abd48..b52d31a654e0 100644
--- a/xen/arch/x86/x86_64/kexec_reloc.S
+++ b/xen/arch/x86/x86_64/kexec_reloc.S
@@ -75,10 +75,8 @@ FUNC(kexec_reloc, PAGE_SIZE)
         testq   $KEXEC_RELOC_FLAG_COMPAT, %r8
         jnz     .L_call_32_bit
 
-.L_call_64_bit:
-        /* Call the image entry point.  This should never return. */
-        callq   *%rbp
-        ud2
+        /* Jump to the image entry point */
+        jmp     *%rbp
 
 .L_call_32_bit:
         /* Setup IDT. */
@@ -170,9 +168,8 @@ FUNC_LOCAL(compatibility_mode)
         xorl    %eax, %eax
         movl    %eax, %cr4
 
-        /* Call the image entry point.  This should never return. */
-        call    *%ebp
-        ud2
+        /* Jump to the image entry point. */
+        jmp     *%ebp
 END(compatibility_mode)
 
         /* Separate code and data into into different cache lines */

base-commit: 351d41e8aecc3f7566a0baa7b4066d06dedd7113
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 16:09:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 16:09:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179250.1502823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRYN5-0003Yv-Gy; Fri, 05 Dec 2025 16:09:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179250.1502823; Fri, 05 Dec 2025 16:09:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRYN5-0003Yo-Dp; Fri, 05 Dec 2025 16:09:27 +0000
Received: by outflank-mailman (input) for mailman id 1179250;
 Fri, 05 Dec 2025 16:09:26 +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
 <SRS0=mBPq=6L=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vRYN4-0003Yi-1P
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 16:09:26 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c471271c-d1f4-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 17:09:24 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-b72bf7e703fso374252466b.2
 for <xen-devel@lists.xenproject.org>; Fri, 05 Dec 2025 08:09:24 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-252-83.as6723.net. [185.5.252.83])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b79f44597e6sm402147866b.12.2025.12.05.08.09.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 05 Dec 2025 08:09:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c471271c-d1f4-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764950964; x=1765555764; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=n5y5EpV8247Sc4CQoDyJ/08kMzJSZMGppYTZMleuDQA=;
        b=fzxk3Y7JFx5hwNkQIBnBIBTLAn3ECCELiqD4kOgZ/znTwLPPFic3xgJigAd+FZespM
         hrLiUiyUxHpFxR6xIqAK5cu5igXxSE26yN+ZR+2gBwpKuSPQQ5XVRMoE1h2XIrERdS3S
         qy6cYqC9VooQcdYrhrBgFHkR3pPo5yz+xqNsOtrQTl4KH+fwSd7hUXCtb/wJGSA3pvQ5
         SAvUc6l1w4V8ihquYXHqb1Aogw2QNnA0YWl5iR5u10WNsnUvXvFlKsUi/vWJbc2D339R
         1QT8BK7PxQMCQhC0DdwlHMWbbPdZtbhISznWSgel8qoPQlh8EvptGp3S9LNnjtI5IBNr
         zejQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764950964; x=1765555764;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=n5y5EpV8247Sc4CQoDyJ/08kMzJSZMGppYTZMleuDQA=;
        b=fniQpKjxqfqJP0l02yu+r438LV/EO7MU8lKv1OuZk0Y592nQN5zPQUNe5VTSghSDEF
         wbGAFr3uJGL/+phdaaJKRWzC4MuJ5JZZ5t8sRrPcaRsAPS16ROvM1pbIjMizn6qPkYj5
         Ubagux2Hfy3a+eMjVmGYABWOr6fhsgYqGx7eZd55QLjY2VkvrDbjQOAGlORQBEWdtyYM
         GrMi+tuzjBCikG52KM52Zu+yKQK/jfOP7LIfF4u6O4zk78geQHErwZyblrOd0hXwT+IG
         CK0XuUMKsdqjgvzWhLFJaDO+TMRYJaPa1xrDLa4WSIts98EisdsXEEuI73R6CV4kLltS
         oNcw==
X-Gm-Message-State: AOJu0YyFyGydIFGSJOnpYDK26r+UluNLXxJ6+A8HArfd3hBS78SzomzL
	BdZCDOD4sbf5SHhB+qpghFvm+bWQ4fDbcmhCPyachpd8o/aw6eA0slYNn7pUJA==
X-Gm-Gg: ASbGncv0ocRaaCgTF0O3zy/gPmybzwOmz/JsxlsgYEh63fp8cM5g3WpSRWOzdmLLNr8
	F9e6/F++bnPX8m1loqWhBs/Z1DNkwgnb4hZ1vlD/ogNXrvo3oTQLc5G9Crls62ZlU/N6gazZQG+
	dZHH7tOb4OaefIgaqBWAIaAUBEbQFQC3ZFwkAhrn5RRi9Civ69Pjd/WUJOeCz6pK7YMYw8AFb2G
	c7G5mGHy0Iw8dGwvcIocaznD0OOp16s1VjKINAhL8Mwe6RQjkYC692eHaIPxS+ejP3wsrmF9tKb
	VIejSgrI2ycLyNLKlo56VhzcdFweX3tO/yXhgVT30JHvtZvqyIdmgBy3JFb1zUHBaE/s0vZkUvQ
	U7oi4w9C2RkE07bx70DtoQSF3W3jyJ+EB6o2AfjFkjy97WtUy2QngcP4yBGVJXByYYLzBQkhUD7
	+TDEsFLeGsc6BCZFVC4Ha+60jLxVY55FqH4Xlq1oS2hcA=
X-Google-Smtp-Source: AGHT+IG7h4TlXXkxHQq/K+IrmRaNM5DGJroFC9Uij/MqQfR3j4Z4wQulyJEBouo8wzbUw/GmiFfmbg==
X-Received: by 2002:a17:906:eec4:b0:b72:eaba:aac2 with SMTP id a640c23a62f3a-b79dbea99aamr1132963066b.26.1764950963598;
        Fri, 05 Dec 2025 08:09:23 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v2] systemd: fall back to default system-sleep dir without systemd-devel
Date: Fri,  5 Dec 2025 18:07:15 +0200
Message-ID: <aa1ed166473c7eeb442ebf3961c4e7513fd0ff82.1764950250.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Keep the pkg-config lookup for SYSTEMD_SLEEP_DIR, but fall back to
"$(prefix)/lib/systemd/system-sleep/" if the variable remains unset.
This avoids reintroducing a build-time dependency on systemd-devel while
still honoring the path provided by pkg-config when present.

Fixes: e54a6cd6a1f3 ("systemd: Add hooks to stop/start xen-watchdog on suspend/resume")
Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Build in which the regression was detected:
https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10959608099
---
 m4/systemd.m4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/m4/systemd.m4 b/m4/systemd.m4
index c47a25ef93..5fb5a7089e 100644
--- a/m4/systemd.m4
+++ b/m4/systemd.m4
@@ -81,7 +81,7 @@ AC_DEFUN([AX_CHECK_SYSTEMD_LIBS], [
 	], [])
 
 	AS_IF([test "x$SYSTEMD_SLEEP_DIR" = x], [
-	    AC_MSG_ERROR([SYSTEMD_SLEEP_DIR is unset])
+	    SYSTEMD_SLEEP_DIR="\$(prefix)/lib/systemd/system-sleep/"
 	], [])
 ])
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 16:09:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 16:09:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179253.1502834 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRYNU-0003u8-Pm; Fri, 05 Dec 2025 16:09:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179253.1502834; Fri, 05 Dec 2025 16:09:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRYNU-0003u1-Mf; Fri, 05 Dec 2025 16:09:52 +0000
Received: by outflank-mailman (input) for mailman id 1179253;
 Fri, 05 Dec 2025 16:09:51 +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
 <SRS0=u3Xi=6L=citrix.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1vRYNT-0003Yi-7v
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 16:09:51 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d335d145-d1f4-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 17:09:50 +0100 (CET)
Received: from LV9PR03MB8368.namprd03.prod.outlook.com (2603:10b6:408:364::10)
 by DS7PR03MB8267.namprd03.prod.outlook.com (2603:10b6:8:269::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.12; Fri, 5 Dec
 2025 16:09:47 +0000
Received: from LV9PR03MB8368.namprd03.prod.outlook.com
 ([fe80::d8cc:b839:3d79:59d3]) by LV9PR03MB8368.namprd03.prod.outlook.com
 ([fe80::d8cc:b839:3d79:59d3%3]) with mapi id 15.20.9366.012; Fri, 5 Dec 2025
 16:09:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d335d145-d1f4-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VkLZA6N1nvbup+Fk6cqMWepStCUaBsRjeaJmTKjeoP6Ab1e9YWsCTJK+G8S4UF/RNWfloWTBFJMgPQjM8OfDuhkEWXrMepih6KQp4qjWziJxy3vCfhiFxiYY0tQ9Itbe3gAcSe0CG7RpLSYamRgUtGLL1RHao+VZmM99EyUrImPYgCwV0fGZbiUaVTWpLyGgrRDS7qkEkNDizUMJQF5xnzaf8dPQfrMzMflXJlTxKY33BmetQccGKH8kuan63OlXuxxgbtKP0JJKIEqkYnCERsI4/jfHyrZjdx3hQPXgzSRD5CBEmHz5ZohgBjn+CDHTqqULqVuS5fKKWcAxAMiPFA==
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=Vtj4u6Sb0FKSJakR21FFtoFVdRNuXPAtZwmS6dhYuwQ=;
 b=iMcDgBEG2IulswbpW52tIGyHTR5CHjrkDRTXSRCddrjZklioQh+5+poc26clCh3L1jA6PbY2mhplyh4sgJPLA83fwReTB0uUECi/J2izAFFXKsE5cjStQbpbiBRYJuvHQZKvJKko7JLK3JiAupjfZ7qiyNq+RMg6ohTZfezJsJ3MY1fM9hrHpeCzQMq8jzFWF53JcNfpslhWwkS85L/FVWolueutrWT915JdHw/rlTLN3HohVLPiFrJTlkUwUngGr870boJ1uWEuNNhNijztoFdmYoeKl/FwMyJBGWvcCaHqLTtbu4xqIy0qqPKr6bXBwXuLauY04lEGOw9QP5ZbVg==
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=Vtj4u6Sb0FKSJakR21FFtoFVdRNuXPAtZwmS6dhYuwQ=;
 b=KjpXOuU7pqMN/JNTfogrN3172zjbd0dAyRlI/ecO9m8Gpis+EwlZtV4CXj83g3hisJw4YtgKjBuTiSBugM/t9Zk2tSe2O9U5Ss3cazD5aN+L1ETu1yfLV2L3HwxASUjwf6ivLC9A86QPFMd6ba0DkWJNMCYoZuJGZmHu6ajHT+Y=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Frediano Ziglio <frediano.ziglio@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Frediano Ziglio <freddy77@gmail.com>,
	Demi Marie Obenour <demiobenour@gmail.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v9 0/2] xen: Strip xen.efi by default
Date: Fri,  5 Dec 2025 16:09:38 +0000
Message-ID: <20251205160942.46694-1-frediano.ziglio@citrix.com>
X-Mailer: git-send-email 2.51.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LNXP265CA0026.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:5c::14) To LV9PR03MB8368.namprd03.prod.outlook.com
 (2603:10b6:408:364::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: LV9PR03MB8368:EE_|DS7PR03MB8267:EE_
X-MS-Office365-Filtering-Correlation-Id: 2c0909ba-7fcf-4614-c1b6-08de3418b651
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?hn5YtaeLhxNMIvnISfO1GgkYTa3qLkpH/X4v7bk5aXRcwpL5CNZpJYiRQuhj?=
 =?us-ascii?Q?pVvc/7jkFlTzwXe5pr10Vb8kYn/VEvahkoJ9GIh7MJLp0R+P4hE+rIx6j2lM?=
 =?us-ascii?Q?yHrMLkbIQ4SZ4Ei1ejidFieCF5Q2zlXlxy+wQMIzDbwwR5oZdP+36ASZulfF?=
 =?us-ascii?Q?OjP9yySTHYSCh56aOL1rJtgJVjRUEd/yBHM0/BzXNteuclTuoAMpJ5PAz9vH?=
 =?us-ascii?Q?E22TkGvpytC+mSBLqfZMkaDKsNvrImlGKi0DgAdlthfGJQ0p1LLJH0FJT234?=
 =?us-ascii?Q?uSQd2sQHHGoIlYubjSn/8IrHJEEkKp4Npe7KCakoAKdjoghQk08NJLf58Ypu?=
 =?us-ascii?Q?OOnXD4eWJV5gXUAenyYT/mm3r3RiluBNDDjpxK15uTioOTzsLOJuj5acJdsZ?=
 =?us-ascii?Q?Y/xWIOTFqj4Ex+vBGSVSzyw0F5VkSQsrT9kUmWjDMaIstq21s8tPioyieKY+?=
 =?us-ascii?Q?lFgcHLsTEhEK6FvrjWyJaMUpBjAnK5q/9VpyNStuuBu58l+GnyHDRJw4dZa6?=
 =?us-ascii?Q?HwPVbY88mh3GkgWgguymfNIWzumt96AyggeL8zxb+uQvG8etqY8G7CeIL/iy?=
 =?us-ascii?Q?AAJa2xjTbGMCM+nDsNiGQedKNAiiroM+rA4+DvbvvsynhJckEk4WHS0VAfCq?=
 =?us-ascii?Q?fn1htcvGYG7ZtlZhe7B3xFjPBJVQrIdRpu6PiEL6DrbHjjqkr91EfpLxq+7f?=
 =?us-ascii?Q?O1M43SeZXQdEbxoQZR08zkJe3LpY0l/gmv9QXn0lKe9UgWlUcnDvSDMDSz/G?=
 =?us-ascii?Q?1RN4XT3vKELDlORmeB4CuYFYIrH8AvBreStRWdMDvjYFXg8mwVLlSkYXFQ7/?=
 =?us-ascii?Q?oUXv7Cju0TuCg21zwbBGz50jpTcSgmP/sMxEP1MaZadO+NyH6kiQXsKZr3FL?=
 =?us-ascii?Q?D++L6XncyGBMReth62ISPuz8YCb82mzhi2sUl36tT9UDnOKXk9zAqFWGhb7N?=
 =?us-ascii?Q?+/BXPlkpxJ4gG/CTlMOVmk0IAXdsC2GJCWNM7FQyQ1EPrFzGE0tixpAlmapE?=
 =?us-ascii?Q?rVFQoXoY/+/C6etU0tcrKEgt0eJtPr6gS9tHco0J7PUto4brx7VzzOxuer3W?=
 =?us-ascii?Q?uIyJvtE0d0samB7zjLDCQ+3yG6Rxe/qTprzbivQ2AJPRhN2Srh9yzkdWPVNX?=
 =?us-ascii?Q?glJcePmIozSc+Y5+u/ZhHK8l8khDef6m/NKZtBPQ+G5eGmHXPw7LBTeVTLTf?=
 =?us-ascii?Q?Xu2BFPobB/Y9auLfxSaxaTfwumg7bQI9+gBdWOapbjp7OOLZd2bGpInQUxh2?=
 =?us-ascii?Q?9Lz+rzfLJsOVnmOFCj9l803nihjBmohmbt4BgAu3N05MbGc2LX1jrKAGZVn0?=
 =?us-ascii?Q?6S43r+0Mtsdcldjh5+Yj4YMD59CJa/Mo9N/NN+KuttzfGzp5jJFzVxVaEovs?=
 =?us-ascii?Q?wOOMjm8AKgcw4/c9rp7pPrUi6fFPU2fPxvxLf/UH2aC/8C+T/5wmYdnnQhIh?=
 =?us-ascii?Q?YzxQS84G2F/EAUHwGQcARs/n1D98hCFa?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV9PR03MB8368.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?u3Iiv2cfg0DBWIkiPr37fBcXV01ksofOKJlgmlwyClwrth9wIwjyxk3O2V9s?=
 =?us-ascii?Q?1EM5Kch8tLMmnTFEgkhixzjLHoi6f5S0Fu58PPOvF3l3lfZgkE7IECAmrR4S?=
 =?us-ascii?Q?QHAAj/lNVdiK5w1zQdM265PUP/j/9SICEY7PEz3bz7NQljnJoxydymR8uZFM?=
 =?us-ascii?Q?QmNJI1dgVd0QwenLKoLzojSd/+EetOZIf3zXO5sWpGIMBKMkHzfVH4YPTfFX?=
 =?us-ascii?Q?jqn+ldeZVP2jrQOFZUWIRXmBrpbdrhxmftRDemH/j/dO3dblHJ/cYLwbT4ui?=
 =?us-ascii?Q?6SWeE7j0HOJT/y6gCAqNmO/E7zDA+6PXqz4CGbXQPZim8MmBO2p/IEEfliX6?=
 =?us-ascii?Q?OQlc1uiEwVZXz7tbEPb5Xl+y7ARjNzIpN2a4Vuz3GmPOlK6cMA10mwE6z26n?=
 =?us-ascii?Q?UKuXneqHaY4PYrmnUvLW27r6iTLpFX8RSKLXBYEe37bGVxkE4Qw4uvPjyw80?=
 =?us-ascii?Q?fE08TxAj+yS62xRornIc5JR6dfwnPNRgt2G8l7jArt6yUDU5vuhgEcOYmUxP?=
 =?us-ascii?Q?SeIMfE/y9cNkmH+tWjLw5qBtJzUIdtpU6hawQNhpUN/BD/nOkvEnLntid0lg?=
 =?us-ascii?Q?M0iejvFH/NKib4X/kjHddsakF6xt6AZCtT8CeVgqfTuy7QupLR+x9rjSuSjp?=
 =?us-ascii?Q?FhFgfwQSE6NBnOzoSbWtq/3IpLP2bhv1P/zf4CQ1cemFqHa3O1UwbFMJ85DJ?=
 =?us-ascii?Q?af09lEj3+OL63miarFs+3kE2/xtd6yotQwCf1ij1oNrH7BerNNxlpu1iGmhS?=
 =?us-ascii?Q?5BTGJ1rxX5ehknG/Ths3d3X6hlPrM+YxqpJVNU692+LRGnGvNJNvY2gPW39k?=
 =?us-ascii?Q?Rwn66bzUXoxIfftqmfAAM9ZcYc8IRpVqG2U1t0mv2JTuPaTktlkv94j3Tx7K?=
 =?us-ascii?Q?HWZxjJ7UqqgB1CaqwIVy3X6fJzXdiKKRIeKcVE053PPjMsfng3+Ux2bf40Vq?=
 =?us-ascii?Q?pDQTc0HiL+HietLQfvC4RFn5mfrnhyM06BxyT88f0exJt7SnHHoNTYqQvsQu?=
 =?us-ascii?Q?ZMt5UPbVcd/0ZWxqEjgGfy48KPkzRjwNSpLfEmMaBXgdgVXoN3TnjGyzikso?=
 =?us-ascii?Q?qGlykCwra671J/tG5E/9QOdSt2ZZF5V0/bQ6hMnNb9ja+jYTn/rN+lU9VKE5?=
 =?us-ascii?Q?Q+HTat20/9sqW6rwrMiP5Ao8WGr1zLmlzF+bnmUG1rFooTXztlGQq5WH8VqB?=
 =?us-ascii?Q?vkPSUzJ7va3PJE6FVpNRqB9HD1uHVZU+aNci/rgyKcFC5HBLfFLwlT4MWtOs?=
 =?us-ascii?Q?uiLeKpMth74rXoPPzt392zLfcU6yGwXl+vt/sBE3IhQ93ggE6ApKyWx0Yuxg?=
 =?us-ascii?Q?TB7XY2oKDe+jIsgUERHmnRZEJxRjETeoJbzXuiY9O9n37krrmozYTr1K0Qmk?=
 =?us-ascii?Q?NOvzT7ZVgVl+g1f1XCKnCQn8ozMZ8jPUjscasIJDzshoOH2Zh4glkKuApw1r?=
 =?us-ascii?Q?nM6JBRlNv66Hdjg7kfpm1s8BuFOS1qNBy7gs4LHSsVmQi8V/X1RM1c1mt7Qz?=
 =?us-ascii?Q?+u4Hz91gXxBZH7VsAJSIPviuweEhJTCDTR+Jc+VIi/0tnL4yjb0VC+GJlXxc?=
 =?us-ascii?Q?hUGQJ5jPcJLjlTxZtaM7V2y6uLTjUyhERDnEOxrp5tyu44sBo6gvQ9Gqj1/q?=
 =?us-ascii?Q?gg=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2c0909ba-7fcf-4614-c1b6-08de3418b651
X-MS-Exchange-CrossTenant-AuthSource: LV9PR03MB8368.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 16:09:47.6641
 (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: 9U/HezxF5xQ7+lSbDVjtbxjMb4pSbC3LH9WxBdXXKkhqhtmS0+4s33Er25J/IF7sybBqQi/6x4Qvn1TfUr1qmW3N6okEbbeQNTMwB3rK4z0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB8267

From: Frediano Ziglio <frediano.ziglio@cloud.com>

The main purpose of this series is to strip xen.efi file.

First patch disable the build of the file on systems having broken toolstack.
Second patch strip the wanted file.

Frediano Ziglio (2):
  Do not attempt to workaround older binutils
  xen: Strip xen.efi by default

 .gitignore            |  1 +
 CHANGELOG.md          |  3 +++
 docs/misc/efi.pandoc  |  8 +-------
 xen/Kconfig.debug     |  9 ++-------
 xen/Makefile          | 25 +++----------------------
 xen/arch/x86/Makefile | 12 +++++++++---
 xen/arch/x86/arch.mk  |  7 -------
 7 files changed, 19 insertions(+), 46 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 16:10:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 16:10:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179257.1502844 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRYNd-0004Ce-1i; Fri, 05 Dec 2025 16:10:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179257.1502844; Fri, 05 Dec 2025 16:10:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRYNc-0004CV-Tm; Fri, 05 Dec 2025 16:10:00 +0000
Received: by outflank-mailman (input) for mailman id 1179257;
 Fri, 05 Dec 2025 16:09:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=u3Xi=6L=citrix.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1vRYNa-0003s6-ND
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 16:09:58 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d6cc8b35-d1f4-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 17:09:56 +0100 (CET)
Received: from LV9PR03MB8368.namprd03.prod.outlook.com (2603:10b6:408:364::10)
 by SJ2PR03MB7403.namprd03.prod.outlook.com (2603:10b6:a03:55a::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Fri, 5 Dec
 2025 16:09:51 +0000
Received: from LV9PR03MB8368.namprd03.prod.outlook.com
 ([fe80::d8cc:b839:3d79:59d3]) by LV9PR03MB8368.namprd03.prod.outlook.com
 ([fe80::d8cc:b839:3d79:59d3%3]) with mapi id 15.20.9366.012; Fri, 5 Dec 2025
 16:09:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d6cc8b35-d1f4-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=x2AqWTzJRyGbn1bK11oGa2GKqzD8GZqqH65UNkIGsI8EbGPrH8Ye1dE/P6kVfcrd4I7zAmy1eUyPcZs6Uk9FFT6wW7CUe3rtyDCw0ePx6dBv9ct2Rvk44EKDPkwS3UFEtO1kIcLJsKghqpbjCtJZIjEn/J0EHa9NE7CBPHv3JKu6aMIzGzcP/L+stfHAIjMpEvNQlBoLXXgy4QBzhpzytdpdaTEu+hg6s8Ii9RdjVunfYw82xNIjshUqUZc7zvqeY680BIwXuxIhvVdjr5r9y7v7ONzrCoN9l70db81xIq9spdQdrc8Dk6IviSm6nFhtCqDZ8M4sEwjgc6/jnypnPQ==
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=kGlOaf4HgTML+Lqr4YUlvbgye1+iOSwZa3NuOxItXFw=;
 b=o5CMHw9ekp+lPZRPSwSdxQadAm8CM5M8EekShshwV+c/CVtAV9vZE6VBhdPUvhNZZoCvP60C/F1YArx8PvJb52D24KS9AiULXXQf+eGFq/SOnXoHanl1Y5obe7RNq/jvrZ3R84juttji+s01Tn+dxvTI6eFr/2s5dmMDEv5lEYhyqNFunWRnAyP8c3ru6VUCbySOyKK4N/i0u4H6G2mwrq7TXWG1xaz0Fr+BBwvhzuV/+f9TWZoPMRyHxVvbhC7qUqkqupq1+0W4leOimW1lC5yzmzdll4mt0x5IFgMcpJjUWPtspqggZmMRb7LMEimmHb2kIVn5xg/4RPcLF6nFrw==
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=kGlOaf4HgTML+Lqr4YUlvbgye1+iOSwZa3NuOxItXFw=;
 b=JZZ9w0ThkctN+vl3Cw4acBSzEZXRVeDt40P9jaxy1Ozv7sRD9Kyl1KHFOLtvnbGRqjIqpWZgwMI3xswKa2Lownenr6X+Ok03l275slnbNJUyRlvob2TkanRIkEm7tRaApFWHSZN9C0ZQT8gpRabuyv4zf6bhjSgboqRQ8qjZa8o=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Frediano Ziglio <frediano.ziglio@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Frediano Ziglio <freddy77@gmail.com>,
	Demi Marie Obenour <demiobenour@gmail.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v9 1/2] Do not attempt to workaround older binutils
Date: Fri,  5 Dec 2025 16:09:39 +0000
Message-ID: <20251205160942.46694-2-frediano.ziglio@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20251205160942.46694-1-frediano.ziglio@citrix.com>
References: <20251205160942.46694-1-frediano.ziglio@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LNXP265CA0037.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:5c::25) To LV9PR03MB8368.namprd03.prod.outlook.com
 (2603:10b6:408:364::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: LV9PR03MB8368:EE_|SJ2PR03MB7403:EE_
X-MS-Office365-Filtering-Correlation-Id: 55191a88-700d-4520-42c3-08de3418b83e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?MpEkseHOlHvX5+lnqdsvtjJRP93LnPK+upmtLXO2Qe+Xjv9Gx6W3tP3mm/Bi?=
 =?us-ascii?Q?NO5oM9oH7W+OjP1AUefgY1XV27tfsQdymlwk1VZW82OXwcu8QJkuQ37JvR4+?=
 =?us-ascii?Q?Z4AA+WQtVQc3ZmccsPNJ+mZ9Cio+QjTaojH24gMiB4bwnGsJZLs73sPGMXlW?=
 =?us-ascii?Q?Fp5J008p37x1yS1waz7U5insJa+ZwM0+/bdfU65BcY8y4vKB+QS2sefAt5H4?=
 =?us-ascii?Q?wuFMjprYBKNVt/U0MrUHRYs/4LaxlLIUowbZSXV1cZCmKDwMJr2uOC+oRTBp?=
 =?us-ascii?Q?Jo6yB57z6JrsyZwhy7MmXL3G5oEbJgLNuEjZMCJlQq3W3uaBZXX8XllJxJXP?=
 =?us-ascii?Q?jIr3kfB9RI5ErZcvbUfqK0oO5XZOc8txJayV/oSateG2C4wckjNQmYPbysEv?=
 =?us-ascii?Q?/ifmEv37a/Q336LZ0HAso1DdJ7QBJfXGp23T3F8q1ZgIfpsMCTqGK7Eq5zwW?=
 =?us-ascii?Q?CpQWCj5cfcHMuEhPbK4oeuFaVKD5y1QgLcJTvchPEVRMEnnVxqnrLTZWLpJH?=
 =?us-ascii?Q?NE8LKpZl0BNJo5L1ZgJauZTBS5CyG5g1ymo49surAL6Jk+7ddk1Ue7txlveD?=
 =?us-ascii?Q?9EhwEgDUWap1W4F6S8M4VHQAd9JjXHeqRgB6AcKAOv78nzm1tZNcf7+QGAPv?=
 =?us-ascii?Q?eakDUH0JeU9XA6b6tYdAwleQNdyuSrTD0EkTcEyxgxUhjTs78Op6UJAoBH82?=
 =?us-ascii?Q?8eSkLMoCTFyMRrF0Ofy62DGtWQRhFeVT9QNXFe16eKHbw5anNE1XvVnEs+fo?=
 =?us-ascii?Q?xBPyG1IlFsSHg409ncyJPYr+MH/LeWbuZjVCIwfX9mZAOxzY7SdwrW0cUlbK?=
 =?us-ascii?Q?8iRbPyRd4D5ImTD5zYTDbqOUGVdQpWc/5G5an/06fmDGoAbuTGn6+7GZpXRt?=
 =?us-ascii?Q?NTTITG7vPNLGmm0s7bW6zu9O/uVd+8MWGAm7kxkjnKD6n23OAKfyds61dORP?=
 =?us-ascii?Q?xNnpRoGREQUOJeE99jJPY+NPsYdIroAJ5hO3tnn/e7yyPIz8mYUsLClbYtYY?=
 =?us-ascii?Q?G23uFfpf5Frcoi+i5K0XCwfiZm1zxruq8cPeciyDxt0I0yxP3OFaZsP8BX9U?=
 =?us-ascii?Q?v1WnLuFreYBDbOK8BwLL8w0epNOn5G7RmCCrP/YrTWGUImzTiS8WK0PqqqpM?=
 =?us-ascii?Q?AxGawIsq+yCtGBX1enS2RipCoepTGndBK1tZB4WsosZRy+8E3g44VfzGBK3/?=
 =?us-ascii?Q?YBiemY4s5k1bT6hsUufpgOfcnH6tWAl19KTUQ7BvhW7O+Z24XoFQ/mgH2dF8?=
 =?us-ascii?Q?yULDUy3R3+7lXjcqJaM4anUNIva37orNtD/N+kP4IT1GFqLoY0/XYQIYDvnX?=
 =?us-ascii?Q?9hzzdZnGQ8ox4kICRkr2tmVlHst2yIVCUNibYYjtq2S/OiD3FHuM4gSPgrNL?=
 =?us-ascii?Q?VsaOC8WVpl2hoeid0ALk9V514JzseiWaq5Vup7q1S3kR2mWMooHHWQXoCKIf?=
 =?us-ascii?Q?qoxAhNt4UMQK6bhjMAiijVHmySD8lAwM?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV9PR03MB8368.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?mOxaQt4cXfjlwFtIb3xGhD7ZBNvuhm59xnM7nJcWMRyzsP42PpUsRwaxRQCC?=
 =?us-ascii?Q?FV9daYJkvk5zADoR0h7cwxiZhLN0D9+KwjajuOD+uRZiyx9OK3nblt3dgjym?=
 =?us-ascii?Q?sfpLixsE6mZSRMaKocCFf9jhvKlkFOAVwBv+dYs2aJY0fHew3yQ3FKmAfQiT?=
 =?us-ascii?Q?EXAnDXS9mldJ3GCCwyt4ItA2fUawRdjopZeY6hoPRpSN6lbZsUg56XjD154Z?=
 =?us-ascii?Q?4tQX68o62oU8D1k93wbBGjnntpQJC+75mf8WZMvJXo2MX+NnX+pl+FIjbM/C?=
 =?us-ascii?Q?PuoAlCUzuR3Xiu2yKyRPX2khuc6pfkbZNQErw7raJRpGdgTGM4FVicDlNvdN?=
 =?us-ascii?Q?KTCaI1fGZNYXj1xK4WgpMNl4x0/iOza7+jT/er6Rz1zFQzVMcSsIV0nsnOoD?=
 =?us-ascii?Q?xMKFmEZvpUpzmo5ECot3ZwkWepOtzbT1KiEireevwlmokwIXlVkq3coin1Dc?=
 =?us-ascii?Q?kAPdp+y8wFofjWVb1/XopGLZ/uSvzQY51IyDyFS3RJ3Dv4+Jw74Vfg7vRkji?=
 =?us-ascii?Q?PvGUbX+eDBLm/dGFsP8pESxx3dZG7wHgAUdP9UmYyO++tRuyCRJkVlssdKHA?=
 =?us-ascii?Q?2Yt0cNuWnmm6hxUzaMubdj0YWEwzyGsqH1IBifl8+TJj1UzkeuEzxK677+6H?=
 =?us-ascii?Q?g6MHF7j+ykms5cSlWVLlGd0045q99yk63AQ7Bi9CzxSWqMTSdHeSIwPbUd9u?=
 =?us-ascii?Q?zQ0Vfj3tlPDs43iJ588Q8K7z5s6DYgqpamUZevUzBw+TjApUHyhN6OScHdGH?=
 =?us-ascii?Q?+Sme1yFH9jy9rDf7l6ZPvgRTHN2PYUo5o/Ga1ulWD0fPLTklqZhT2WaSi1/D?=
 =?us-ascii?Q?rm9jJjL+6iuun1Qk2+2LESfsqHUGheKyCM+v+lL1q4KRP0z7p8Q/3EhlpNph?=
 =?us-ascii?Q?eZ3QVV6SpzeTvL2okj9DFKQLguUxfYjbMzbWZuO3JyBvNCOaTBOpiiuD/pS5?=
 =?us-ascii?Q?ru5SwBF36YWrWsVzAHzEdOEpgyhtHT4Q7JbfR1mTPblmtD4nrCxzdovRWIui?=
 =?us-ascii?Q?qwh0kCDWI+Qa/g1HE35J7r47cY8ZsDET4A5nDUkt5EiMaqSeaSoDAvcZKqJU?=
 =?us-ascii?Q?Wof5w3pDR+8N/0h7DDEklgyNFOF5KuPJSO78DvdtgXAyb4CB7YVxe1QTCWQH?=
 =?us-ascii?Q?Tep4j5PcbyJxSx1m6gFklogV2gWjTH8fEy1kxEoSOwhVVGvOez2MyLu+mgpP?=
 =?us-ascii?Q?ps5vCjE9G/rlKGIrA+LGjhRWf4B39flYACVuyK7wwMwJdWQgMWokU74VpgBv?=
 =?us-ascii?Q?aLvbPfBwStAcUYKFB7WuljHHicc5luMuFBJueaxw7K3NHjpqWnuKDuvC9BvS?=
 =?us-ascii?Q?fyuKAb+lgiPCRf6zk7YusLJKZSFBucR5B82xJ5zQptce0CxRDMpyN4V3eF3+?=
 =?us-ascii?Q?JRAskCyCluA6QgnfvGrmzi66gcA0n23i8CtN7FrwWmWqdchTohUOOQmw2TKp?=
 =?us-ascii?Q?ugBCe72Icfh4/v/PvrahuMVLtF+XiKKKfY19eR38fHwlUEY7V/8mtyt6DJ6b?=
 =?us-ascii?Q?UK1c68UzF2khBAhBMd/w8T+RniEx5C6hl524nUDHIvL93RdBlyl1CVNffMRi?=
 =?us-ascii?Q?I9CWELeFC/af5HTo38dvoy1FnV8Pen999P1Bc9MwvWLWwqR0bwQECoGyxgyL?=
 =?us-ascii?Q?OQ=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 55191a88-700d-4520-42c3-08de3418b83e
X-MS-Exchange-CrossTenant-AuthSource: LV9PR03MB8368.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 16:09:50.9476
 (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: 781Q4ULz0kV4QWKgxpKuOX0qFFL5j5mddXJkqVV8t7xBkJ88Mldj6rSaaZen0hr94j8KYOIIyFt8ScbbxKml0pfLDNd0jUpC08ofOmMtGs4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7403

From: Frediano Ziglio <frediano.ziglio@cloud.com>

Older binutils versions do not handle correctly PE files.
It looks like they could work if they don't produce debug information
but they mess the PE file in other way like putting invalid
flags in sections.
Also different tools will complain about the format (like
objdump and strip).

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/arch.mk | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 16368a498b..10eb8e4292 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -88,13 +88,6 @@ EFI_LDFLAGS := $(patsubst -m%,-mi386pep,$(LDFLAGS)) --subsystem=10 --enable-long
 LD_PE_check_cmd = $(call ld-option,$(EFI_LDFLAGS) --image-base=0x100000000 -o $(efi-check).efi $(efi-check).o)
 XEN_BUILD_PE := $(LD_PE_check_cmd)
 
-# If the above failed, it may be merely because of the linker not dealing well
-# with debug info. Try again with stripping it.
-ifeq ($(CONFIG_DEBUG_INFO)-$(XEN_BUILD_PE),y-n)
-EFI_LDFLAGS += --strip-debug
-XEN_BUILD_PE := $(LD_PE_check_cmd)
-endif
-
 ifeq ($(XEN_BUILD_PE),y)
 
 # Check if the linker produces fixups in PE by default
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 16:10:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 16:10:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179258.1502849 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRYNd-0004Fj-Bk; Fri, 05 Dec 2025 16:10:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179258.1502849; Fri, 05 Dec 2025 16:10:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRYNd-0004ES-5s; Fri, 05 Dec 2025 16:10:01 +0000
Received: by outflank-mailman (input) for mailman id 1179258;
 Fri, 05 Dec 2025 16:09:58 +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
 <SRS0=u3Xi=6L=citrix.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1vRYNa-0003Yi-Nh
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 16:09:58 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d7bda416-d1f4-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 17:09:58 +0100 (CET)
Received: from LV9PR03MB8368.namprd03.prod.outlook.com (2603:10b6:408:364::10)
 by DS1PR03MB7941.namprd03.prod.outlook.com (2603:10b6:8:21c::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.11; Fri, 5 Dec
 2025 16:09:54 +0000
Received: from LV9PR03MB8368.namprd03.prod.outlook.com
 ([fe80::d8cc:b839:3d79:59d3]) by LV9PR03MB8368.namprd03.prod.outlook.com
 ([fe80::d8cc:b839:3d79:59d3%3]) with mapi id 15.20.9366.012; Fri, 5 Dec 2025
 16:09:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d7bda416-d1f4-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MZ02MXwNnW4zYydpvhRtrsIaNvNMCvrCBIL+8dcMNyR3sGkznsbPm0nwZyzAkDOT7wpZjkrQy7REEhZdC/7Dooj7U9Qg88H56ZzetzlhwYTTJykW8NDR6tf/s8IzllD7E/8r0jP5rqGQTxogtuoxEK3dREwAx1u23g0XMgtTQ65eyW4AbBOVMSPbhc4sg/Bx/ZPAEc/SyYai3CVjP16576qebRM2mshp4lBxVicGLxpfZpSiKfe3vpMt+D3zCMepGNXiCWpcR84uRXIvsoJxRft3a5W28MQ2398H86uEvF+yegicCr1E880s3nH1b/qQMRNL7RBHSQivzueKkMPV5Q==
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=j+l/LKg3YfOQU+0AyKjgO2lBUesaworZ7t9S44g86cY=;
 b=gHuoRbFDTzmK6XIsWj+Ql6TUj6J6t3NBaUQzrn5Fxdk/V7Z78cMUSyS6XQmojNmXUR6Vqt/AiXXfsgrJDb+/BvjGL0T6TLo+JdACoPxnMxCUaI2aPYJzOUL/pw/5wetkB6QPPoQLhlqCujC4qOmJ3i7j8Y7UJ37N5ukHB8NY6EEf8lfsJu8/JOsI8C+fdbTPT2L5+EHXIO0MsyA+KO1qlyrwnZDCjGe7jcTxQugnVo9BAU9eb4nbG3b9QOiZEp3L06HVdmT9yFKKtsMABMuJ/VF3NfMnsa3JDdhmvaMv/SUOczV1BubtzRTEdUSMLuiFtS2OJOwC04QdPIKJHcEULw==
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=j+l/LKg3YfOQU+0AyKjgO2lBUesaworZ7t9S44g86cY=;
 b=SWOhFq6nxRvQXmU+0JEX0THIgRBOl7jgVfck+gqEyLVNlxWsQssEaCchgkez496c3GzlCQbtBaYvQnQ4NXTYflwtK8/QXWrwXjla9SfsnzBUlUzZeNgz/qFOwnzd5DaANcBtFQfkfgvs0+YKVWMbUWpkmWA9mGgG6snT7AP+BbY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Frediano Ziglio <frediano.ziglio@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Frediano Ziglio <freddy77@gmail.com>,
	Demi Marie Obenour <demiobenour@gmail.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v9 2/2] xen: Strip xen.efi by default
Date: Fri,  5 Dec 2025 16:09:40 +0000
Message-ID: <20251205160942.46694-3-frediano.ziglio@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20251205160942.46694-1-frediano.ziglio@citrix.com>
References: <20251205160942.46694-1-frediano.ziglio@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0199.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a5::6) To LV9PR03MB8368.namprd03.prod.outlook.com
 (2603:10b6:408:364::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: LV9PR03MB8368:EE_|DS1PR03MB7941:EE_
X-MS-Office365-Filtering-Correlation-Id: 630795c7-ddc9-43a3-71b3-08de3418ba1a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?VUv5E0s4JaBSKP4cLbkXJfgUG2tQdkMtw7QdK6uMQ7t/HAA649NpQoojX6fn?=
 =?us-ascii?Q?lUpBj5E9CAlA6jAIE0nAUZ+nh84K1EwwKZ2KrPc4ltWobKoPeLw3O3hANLks?=
 =?us-ascii?Q?a0MMN1qCbI0QCSmzAem+alJRzYb1mareZzffWpSMBxeXEYfUhLmfdYfVzI0U?=
 =?us-ascii?Q?yfHzXSIMqelP9+NygjEShgJXlUSMzIcq2rHZofBaGiSSA1qpldtttlTHohXZ?=
 =?us-ascii?Q?EJtxZg21lCgTlipTgtmLXnauZ7WvnrjUy2J7sAZdrrMxbP0ws0BeVud2GSNM?=
 =?us-ascii?Q?jvHTLEFuGwvODn/sG52snZiFQG9NJuCprqn1nGCgRlBtfouEOkRxxL/uAWjA?=
 =?us-ascii?Q?n2OdPmGdh7brcdDM12JRp7CXahuXvou1Zf82Z6SvYzh+Cl7vN7+3W4vbi4g/?=
 =?us-ascii?Q?urBoY8KJOcC58gzQD5jtRR0ciM6aU3SNgppWUS4VV8K0kUsPrAeeU6Jj301J?=
 =?us-ascii?Q?E/gkVzXJr+eh4Y4B9q0LjSO//lndJ1OJIz4T0m0SALECpuHZdlQHe7jHn7dD?=
 =?us-ascii?Q?UIlNpejorohHN5iPh4AEESqx64DHYpmcUvr+3g7Nhlf++DEaR+vCNrLpOBfd?=
 =?us-ascii?Q?qFFSvvcSAoJXLzZpLX0WhZCDFymcCb9iAwV1+NHre/jY97gA/MHeGEv1sF4a?=
 =?us-ascii?Q?kz0Mn9vEQxRfS+//yv1Bz70L7FXV+PvmZHPo8sOcDEvPhMvBgM57h3IR5nek?=
 =?us-ascii?Q?5D8oX4FQZTw6Ej17scD4rK8hbTScxMhx/GIzrNPcZh4IJ0toZgVP+SjOUMl7?=
 =?us-ascii?Q?zaEQzguCnL86N9ba7l5DIkjD4V7o78e5LRTqSCWU1GN+m6lEcI9jA7+EU1lj?=
 =?us-ascii?Q?1qU0r6F7wk4rS7O5cSp34WF6/ZZznMHX6BRG9pI5UUfGg1Nb/9fwWr7HL5+R?=
 =?us-ascii?Q?rXbKED9XsT9LO1r/EaeqA9UhbPv19w1afw0wFNfOPLmGWub3PaHiceX/FPpZ?=
 =?us-ascii?Q?54+t6GdKnBP8+N4ryK1m5SRchzMRluyYPs1ifM6HGYpyqsOeIlmy5KcfDikr?=
 =?us-ascii?Q?J9uuMQXtPgDTdHZk2tnSDMhYoKLOlAh7TTvP2q2FWqOodoC7v+ZK/PANiSB5?=
 =?us-ascii?Q?8H1i2arpMbjl/rXVNpeVXWZrrU/wWmEeNBncccmU3JRClQI51+80ffEhmf85?=
 =?us-ascii?Q?/Vlzr9Yyx3sj6ImlU5gvcjLVrkhXzKpK9Xn67cpvtZKKHfKmHH3AxTOCTmHO?=
 =?us-ascii?Q?VrZvbZUr3C4s29nTdo8rwVSddnvMpf+DCATmzfB3A3GlIu57iHMN4oSc+vYX?=
 =?us-ascii?Q?2qp7tc6dOS2tSf4q7SWJoR6sVX/ISeuXnudX1NImHNKMVDJqE1QQUyxfIFMt?=
 =?us-ascii?Q?/JPXMryhbTa9OusGs5CcUK3BaCaRMH9zlhEce+DJanNuhZH3LA0u7jGW8fjn?=
 =?us-ascii?Q?1p5HkBiVKdZFNxG2RNE1wM+DyY2TEYYCXShZrCxQAtD0gKwQzQ1Nn0uJCmGD?=
 =?us-ascii?Q?kYfQUkIPCAv7RMYEQYR2KnYXRGDtP+lR?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV9PR03MB8368.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?O4IcYVNrFybGQHy1+Ss0B/4ZBe1+FUFEIf7ucOijXFFfzbO63iTcfvMJtqN+?=
 =?us-ascii?Q?8Ao5Kwz41h1jT2WgmNIwpim0/X429wBCtUmQtqGD+sypZKGeMQq+aefe0lU4?=
 =?us-ascii?Q?9OLigh3fApZxgYnLj4J7sSAF0i6+HjjKDJ39/l5bkHU3PcqyYtGr3Vm0k2Lg?=
 =?us-ascii?Q?CsBfplWWRESVB2NSllibAXtTCsx44pcsm6eFP42pPdAeYspTUyFvsntv3Htt?=
 =?us-ascii?Q?zVtpJD6nKPBFtIghzrnHZ+Qo4pXjwj/E+GmqBhOyiJy/D7GvrjxQRz3BpoBu?=
 =?us-ascii?Q?NmIyfhfT54ZIPxlaxFTNRnvDokxrzrt9jdm4o2Lr/Psii3lpBo+qYwZb69+r?=
 =?us-ascii?Q?nQ87Ma8t8nNs/LRtP2CaI/y8c3l+BTSJRNtKOq8UR127CLmPjsbfdoC+0xaH?=
 =?us-ascii?Q?6QxOvg8rseEOn5IL8bL38gg0URr7A2XsWkDuyDyRUtAQX9POrU+0UQtfY9DX?=
 =?us-ascii?Q?aYXo5fG3tyHzkLw5WTog/bo0zg+yKBoMYReSZ639ezFr9JSoWUG4bSkIRXa6?=
 =?us-ascii?Q?k41VsxsrTpAf4NMjrn4NQj22Lm9mjmz4GodL/PxRUUYXbyo4Jt3og+w8QrAT?=
 =?us-ascii?Q?VEcIS5Nsn80bku9tU7/pbzMn/EYx+/2Yh4RbYhY5x8enIh5RW85Rbr4Zj+j1?=
 =?us-ascii?Q?YTm+kNjPvvjsNrhUJPsg9boCQ7iLTzXhfyeNRDfLDucccoop9GEUibSo7BeI?=
 =?us-ascii?Q?DiQlGLXuhWpM4aH0ynvrnf95jsNUELAEADZfTCkLmVnekzN4mrC8JiZWLFyE?=
 =?us-ascii?Q?U+m5eY+SoCaACao7m3lvgqVVHy2tHJFhFC6XZUi/xwqfvLTyiZkJy3sAyyQU?=
 =?us-ascii?Q?Iew+pQT4JY04ky/Hrh+fSnYvcchtws9wQTVkhdJ2GrkpHE875uOELZgrfZ/v?=
 =?us-ascii?Q?G1RpADBPLxilta/vYGtbhv2NBdYalGsIhulEdDBvcNFUsEXSI4n3wF+Rm/J6?=
 =?us-ascii?Q?fNQbdNdW2AO+eSMigsOoWsWOAQgBB4/Rr+8XY0it/gzyXE2RdXhB9JzAwu0N?=
 =?us-ascii?Q?SnSPWnXhLirw25hWrLaQht6vLTmDJdERYRKx+3j1Atk1CzdOSKcANptfmZzL?=
 =?us-ascii?Q?Vq1Gun2c2+xvj7OFZQv1kMlUf2UKhXorSMZbOLZoU0H+4aaEplvg+TWulYpv?=
 =?us-ascii?Q?KyV5t9KmnEZl9RcLmcrOIgo8IVGXOP97zcxKMrSs2U6hP9vrM5WJ/pouEjF3?=
 =?us-ascii?Q?6MKVxjySLSHNE9bqAZIli+kCE7j+/A6xu4SzXMxIReM33i6dxGw6+bvnU79+?=
 =?us-ascii?Q?DRLJJUkoI9G8P/4H4HbdQg35Eev4AIG1wqOxF7LwYgQZsf1/Ynub9O4irdx8?=
 =?us-ascii?Q?SYhdON5H8J8QHqmPm7ljB5QhKOwowszCxRQk09SEI1akOKAiEtf5DciaJkO0?=
 =?us-ascii?Q?RPweTa87W+bmSm/MAGT/gHBpsx+L1G72tbeq3GLjDQQU4kqt2kT3UMWgUqZu?=
 =?us-ascii?Q?sAgb43hGnAWMi+6giA2lfH9F4harvFN/FlLfzcxpOiYeE9YsYE1NFz2/vq23?=
 =?us-ascii?Q?usGAf6CGejHeEu3TeVcYJFZEdRp2waT2CrMCKglTwCPeTnX+rkGzjB79q4VN?=
 =?us-ascii?Q?V5ZKEORdREMETv7wihFre4tYao92DVRsdXop2komoS/KoX/z7qa9//jprzL1?=
 =?us-ascii?Q?7w=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 630795c7-ddc9-43a3-71b3-08de3418ba1a
X-MS-Exchange-CrossTenant-AuthSource: LV9PR03MB8368.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 16:09:53.9972
 (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: fesUoVmjNBTyx/Uwl/Bp8vRE/4u0ElWhg7z0eafoGG9QYqEuDMXWBbd4++6x6JqQ3mLV2St/PVovTpeGj0j/jVFnmCsZPj+oUiAJZB/9qHE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS1PR03MB7941

From: Frediano Ziglio <frediano.ziglio@cloud.com>

For xen.gz file we strip all symbols and have an additional
xen-syms.efi file version with all symbols.
Make xen.efi more coherent stripping all symbols too.
xen-syms.efi can be used for debugging.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
Changes since v1:
- avoid leaving target if some command fails.

Changes since v2:
- do not convert type but retain PE format;
- use xen-syms.efi for new file name, more consistent with ELF.

Changes since v3:
- update documentation;
- do not remove xen.efi.elf;
- check endbr instruction before generating final target.

Changes since v4:
- simplify condition check;
- avoid reuse of $@.tmp file.

Changes since v5:
- avoid creation of temporary file.

Changes since v6:
- install xen-syms.efi;
- always strip xen.efi;
- restore EFI_LDFLAGS check during rule execution;
- update CHANGELOG.md;
- added xen-syms.efi to .gitignore.

Changes since v7:
- move and improve CHANGELOG.md changes.

Changes since v8:
- rebase on master;
- clean xen-syms.efi file.
---
 .gitignore            |  1 +
 CHANGELOG.md          |  3 +++
 docs/misc/efi.pandoc  |  8 +-------
 xen/Kconfig.debug     |  9 ++-------
 xen/Makefile          | 25 +++----------------------
 xen/arch/x86/Makefile | 12 +++++++++---
 6 files changed, 19 insertions(+), 39 deletions(-)

diff --git a/.gitignore b/.gitignore
index 57d54f676f..f282192b3e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -223,6 +223,7 @@ tools/flask/policy/xenpolicy-*
 xen/xen
 xen/suppression-list.txt
 xen/xen-syms
+xen/xen-syms.efi
 xen/xen-syms.map
 xen/xen.*
 
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3aaf598623..f26ec5b538 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -38,6 +38,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
      BAR for HVM guests, to improve performance of guests using it to map the
      grant table or foreign memory.
    - Allow configuring the number of altp2m tables per domain via vm.cfg.
+   - The install-time environment variable INSTALL_EFI_STRIP no longer exists.
+     xen.efi is always stripped, while the symbols remain available in
+     xen-syms.efi.
 
 ### Added
  - Introduce new PDX compression algorithm to cope with Intel Sierra Forest and
diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
index 11c1ac3346..c66b18a66b 100644
--- a/docs/misc/efi.pandoc
+++ b/docs/misc/efi.pandoc
@@ -20,13 +20,7 @@ Xen to load the configuration file even if multiboot modules are found.
 Once built, `make install-xen` will place the resulting binary directly into
 the EFI boot partition, provided `EFI_VENDOR` is set in the environment (and
 `EFI_MOUNTPOINT` is overridden as needed, should the default of `/boot/efi` not
-match your system). When built with debug info, the binary can be quite large.
-Setting `INSTALL_EFI_STRIP=1` in the environment will cause it to be stripped
-of debug info in the process of installing. `INSTALL_EFI_STRIP` can also be set
-to any combination of options suitable to pass to `strip`, in case the default
-ones don't do. The xen.efi binary will also be installed in `/usr/lib64/efi/`,
-unless `EFI_DIR` is set in the environment to override this default. This
-binary will not be stripped in the process.
+match your system).
 
 The binary itself will require a configuration file (names with the `.efi`
 extension of the binary's name replaced by `.cfg`, and - until an existing
diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index d900d926c5..1a8e0c6ec3 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -147,12 +147,7 @@ config DEBUG_INFO
 	  Say Y here if you want to build Xen with debug information. This
 	  information is needed e.g. for doing crash dump analysis of the
 	  hypervisor via the "crash" tool.
-	  Saying Y will increase the size of the xen-syms and xen.efi
-	  binaries. In case the space on the EFI boot partition is rather
-	  limited, you may want to install a stripped variant of xen.efi in
-	  the EFI boot partition (look for "INSTALL_EFI_STRIP" in
-	  docs/misc/efi.pandoc for more information - when not using
-	  "make install-xen" for installing xen.efi, stripping needs to be
-	  done outside the Xen build environment).
+	  Saying Y will increase the size of the xen-syms, xen-syms.efi and
+	  xen.efi.elf binaries.
 
 endmenu
diff --git a/xen/Makefile b/xen/Makefile
index fc9244420e..5ed029fed1 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -493,22 +493,6 @@ endif
 .PHONY: _build
 _build: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 
-# Strip
-#
-# INSTALL_EFI_STRIP, if defined, will cause xen.efi to be stripped before it
-# is installed. If INSTALL_EFI_STRIP is '1', then the default option(s) below
-# will be used. Otherwise, INSTALL_EFI_STRIP value will be used as the
-# option(s) to the strip command.
-ifdef INSTALL_EFI_STRIP
-
-ifeq ($(INSTALL_EFI_STRIP),1)
-efi-strip-opt := --strip-debug --keep-file-symbols
-else
-efi-strip-opt := $(INSTALL_EFI_STRIP)
-endif
-
-endif
-
 .PHONY: _install
 _install: D=$(DESTDIR)
 _install: T=$(notdir $(TARGET))
@@ -526,18 +510,15 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 	if [ -r $(TARGET).efi -a -n '$(EFI_DIR)' ]; then \
 		[ -d $(D)$(EFI_DIR) ] || $(INSTALL_DIR) $(D)$(EFI_DIR); \
 		$(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_DIR)/$(T)-$(XEN_FULLVERSION).efi; \
-		for x in map elf; do \
-			if [ -e $(TARGET).efi.$$x ]; then \
-				$(INSTALL_DATA) $(TARGET).efi.$$x $(D)$(DEBUG_DIR)/$(T)-$(XEN_FULLVERSION).efi.$$x; \
+		for x in .efi.map .efi.elf -syms.efi; do \
+			if [ -e $(TARGET)$$x ]; then \
+				$(INSTALL_DATA) $(TARGET)$$x $(D)$(DEBUG_DIR)/$(T)-$(XEN_FULLVERSION)$$x; \
 			fi; \
 		done; \
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION).efi; \
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi; \
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T).efi; \
 		if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; then \
-			$(if $(efi-strip-opt), \
-			     $(STRIP) $(efi-strip-opt) -p -o $(TARGET).efi.stripped $(TARGET).efi && \
-			     $(INSTALL_DATA) $(TARGET).efi.stripped $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi ||) \
 			$(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \
 		elif [ "$(D)" = "$(patsubst $(shell cd $(XEN_ROOT) && pwd)/%,%,$(D))" ]; then \
 			echo 'EFI installation only partially done (EFI_VENDOR not set)' >&2; \
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 300cc67407..ee787068f8 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -232,12 +232,17 @@ endif
 	$(MAKE) $(build)=$(@D) .$(@F).2r.o .$(@F).2s.o
 	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
 	      $(dot-target).2r.o $(dot-target).2s.o $(orphan-handling-y) \
-	      $(note_file_option) -o $@
-	$(NM) -pa --format=sysv $@ \
+	      $(note_file_option) -o $(TARGET)-syms.efi
+	$(NM) -pa --format=sysv $(TARGET)-syms.efi \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map
 ifeq ($(CONFIG_DEBUG_INFO),y)
-	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
+	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) \
+		-O elf64-x86-64 $(TARGET)-syms.efi $@.elf
+endif
+	$(STRIP) $(TARGET)-syms.efi -o $@
+ifneq ($(CONFIG_DEBUG_INFO),y)
+	rm -f $(TARGET)-syms.efi
 endif
 	rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
 ifeq ($(CONFIG_XEN_IBT),y)
@@ -281,6 +286,7 @@ $(obj)/xen.lds $(obj)/efi.lds: $(src)/xen.lds.S FORCE
 clean-files := \
     include/asm/asm-macros.* \
     $(objtree)/.xen-syms.[0-9]* \
+    $(objtree)/xen-syms.efi \
     $(objtree)/.xen.elf32 \
     $(objtree)/.xen.efi.[0-9]* \
     efi/*.efi
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 16:11:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 16:11:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179286.1502864 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRYP2-0006aJ-Q1; Fri, 05 Dec 2025 16:11:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179286.1502864; Fri, 05 Dec 2025 16:11:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRYP2-0006aC-N4; Fri, 05 Dec 2025 16:11:28 +0000
Received: by outflank-mailman (input) for mailman id 1179286;
 Fri, 05 Dec 2025 16:11:27 +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
 <SRS0=K96r=6L=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vRYOH-0003Yi-Ku
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 16:10:41 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f16018f9-d1f4-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 17:10:41 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB6951.namprd03.prod.outlook.com (2603:10b6:a03:419::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.11; Fri, 5 Dec
 2025 16:10:29 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.009; Fri, 5 Dec 2025
 16:10:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f16018f9-d1f4-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=s4nod6UUkZTJER/Aw4q17+539IZXijHf9s48oincNM0gOeS0dBPZzlH7YSHYdr8vw05ztxa+p0eiZrrQUW+7RAf7P9/4NzEryvu+ju65W6lMbivUddsQaF+x6gHZQ9mMtszJQF8hTYJNO8z05D59NT043jEu/QC4WPOupJ2Jzrlj+kxX2j2F4DiS+BkOAkBsd6UZxlPbJctaqaRTFXzEJa2rS0zQ0fH4FuiPi/9XvX+iAQwUlqOrj/5657TRY9WBjXqK6OUJQY3oKU65MNLOmmgwqrMb7tBUkmx5yKM5M7wyNaK+Y3I8DFpHGsP7X9CqSg/RWJlxYHgOxfrq5KCPRQ==
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=I0wbZsFKjcJkry2PhJeuKoLloFPfk1DqvBuHkAecmGc=;
 b=U/85Yq2TlwUvdmfqRZ/xj5pQi5JXFQQsaA8o3PNwI5s+hsljcUIRY/d2/PLl1W/WvqZAaW7a9EvXMDrBeiIjnvcGdW+n663yklRT7O4FTVEsB66PkQPTX7bl2TIWvylQ6hN2aejOEU7Q9bd/O3sVsV4X9Il0PoUJtm67I1mwJq+fQGpfhSTUu5TWTmBtEoizouV2BLTX6p/DxcIGqpkUxzuwS3KrloKKX2qlYAwQ5+93rZokREVmJl+uM6ZyJ9b3pIxubumDmjzQnBkiTlZWv3WCoIXld2q06Ic3hUFty9xnkJcZnbuGnl29K2iAoEsbMrQr9NtMgGxIlglF2+2+vQ==
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=I0wbZsFKjcJkry2PhJeuKoLloFPfk1DqvBuHkAecmGc=;
 b=xSVu2Pbp8aBocGH4v8RBiNTUqyMxAasTrDeTH7xPd+gyHYxb672rN7LBYRPqgFJUmQ90HI09XvF+Z1sBYJgS0u2t5gEQyNYI/2iw7DLJk+xDHx8KawZcsc6PHnWPUUnMb9cmgfvXLAEfz+nFbJdiLqXLGH8holEDKSeVYLNaFsY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <3ac29da6-4833-42ec-a70e-7a23a7ff54b2@citrix.com>
Date: Fri, 5 Dec 2025 16:10:26 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Mykola Kvach <mykola_kvach@epam.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH v2] systemd: fall back to default system-sleep dir without
 systemd-devel
To: Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org
References: <aa1ed166473c7eeb442ebf3961c4e7513fd0ff82.1764950250.git.mykola_kvach@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <aa1ed166473c7eeb442ebf3961c4e7513fd0ff82.1764950250.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0074.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2bd::13) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SJ0PR03MB6951:EE_
X-MS-Office365-Filtering-Correlation-Id: 765bdb68-c002-462c-42c9-08de3418cf2d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cWJnWEJwL1RXc2FsRjdSUTE2bkppakxkdExKamFrb2YrbU9LMjF3VGJ6b3VG?=
 =?utf-8?B?WU1ZL1VFelRDV1JIRExSN0c3eFJlRHppK3FzTHdUY3I3bE14bGQxZ1d3ZUJV?=
 =?utf-8?B?VHpJbUtQYWpJdUx2WmJHalhqbkp3R0luN2I5UG5tZG9CRmgzYXVTOHp2aUd1?=
 =?utf-8?B?SExXTVd0bWVKeUluMFNkZE85b2lkdjEvQ0VQdVJnOUxSU0liTmUxWWQzZjRZ?=
 =?utf-8?B?YTAyVk1hbW1pVVhCaEx1Z0t1MWJwejhWKzVqZzdxOXdiM0x6RGswZkx4dVJN?=
 =?utf-8?B?WVdwYVlOdlZ3d1RDMTROZzcyc01YaVRNSGx1TVV4SkN5SWxFSG1uNWMxUGRa?=
 =?utf-8?B?cFRCRVE0a1FRYndkMnIzYk90Mk90a2N6R1QvYVFzaWQyc29jdzJWRDJZZ2Rh?=
 =?utf-8?B?STVYVks3VlRFY3crd2YxUTFkMmwrbGJZQ3ZnZ0xRVEJCWkxJajVvdTEwYnF0?=
 =?utf-8?B?ZlRUOE93cm5pOThidVA0djVOcFdwOEtXSG5ZK1EvMkF2anFQenYzOHBMUEZm?=
 =?utf-8?B?eUdXdFd6UUxiVlZEdTNxb214L2plNFRtaitWU21obm5wYkFCUXZ5aDh2M0pG?=
 =?utf-8?B?MmtWQ3FnUlkzODg4R3dmZ3pySlBHRHowbVBqN3M0ZXBub01XbTAvbUFxRDNZ?=
 =?utf-8?B?MkFFaGRybTdLdllod3V2TkU4WUUxelJpcE1xMlRDSUJSYlJ5USs3MkorWmtN?=
 =?utf-8?B?UWNYVmEweFNKSCtGcW9TN3FlaTJWQWJvL3N0SVdZYUJUMzZjMUloWnJtaUpM?=
 =?utf-8?B?dEZwb3NQS29rNmU3aVUvck50eVozZGNRL0ZvWm0xaVVoVGVpR1czLzZNS0d4?=
 =?utf-8?B?cWNwaGFPaWJ6SGtwNjFxL2dyN3RDOWxFTUVTd211YnUzcTJNRmx1cDl2cmNJ?=
 =?utf-8?B?ZmRuK2s3cmNrTDc4L0hDOC9WM3A5cU9jYnYvTEhjY29oTEhHRkJXK2J4WURF?=
 =?utf-8?B?UEd0VEJmc2R3SnBWTzIraDFsVDEyVWpCWlVKZ2ZpZTJTYkpjTUJXdGFqTXF5?=
 =?utf-8?B?UjFTUDFIZjhpTFBTN1Z1aWJtYmU3TkFjS3BnWXhEL3JxYzVWOEY1SjdNVWYz?=
 =?utf-8?B?Q2RBV210aXlsd3JOQkc5YkJqT2FDZ2VVWmJHcVBoOGhGVmt5L21JRkUvaDhw?=
 =?utf-8?B?bjV1djJBQzdNMzY1RE90Q1ZyeE1zQjFjT0Q0M2MxRDZXN3VOVURYV0pKSkFI?=
 =?utf-8?B?blJtViszblJMYzNjdlRZRS94dkkrZFNqSmkzaExHYm5BMW1GQmQyLzZKS010?=
 =?utf-8?B?K3BMRE5NaEw1VE85b2dQNWVLQ2ROUUM2MTJab0wwd3Qwa2NuNFNheWNZdkNO?=
 =?utf-8?B?YTZLaTVxQ1F4bXZMdVcyT2pzSnlld241QjJQL0R0NW4xNHRGaEovYm42Zklq?=
 =?utf-8?B?T3lXcjlHMUxmM0JpSkx5dkNSeFBTMDY1V3Nsb0ZRRU9aSWJDeHB3RlhzeURm?=
 =?utf-8?B?TlZMNXp4aVBaaVY5Q3JCUXBscmVPbXNDdXpCZTlnakx0UnhDbGZwRmE1akx0?=
 =?utf-8?B?T3Z0UnVBQWUwbW4zQ0RUbEgyMFJZUWh5MDc4enlTWVg5QVNuZHZXUkwvNjA1?=
 =?utf-8?B?ejNTak9jVlJUejYvaXRYNlZOb2RDOHNiR0hJK2dHd1VPSEk2VnNrTnZJbG9t?=
 =?utf-8?B?cGZoNFRJcm5TbCttYlhOOWR3b3gyeU4ydnFqOUI0Q2xWTEw1NEhUZWVSTDNm?=
 =?utf-8?B?cWNLYnoxc2J1dGpIY1lIbGw1czlHRW43dk1ETzdHOGE4RVh0WW5OVjc1Ykcx?=
 =?utf-8?B?TVVYV2x6OFgxOUY3ZThHTDUyL1NqRGkwQ2U1NDF0ZlBFa1pQcXk2K2crdU5D?=
 =?utf-8?B?YlByTXVDb0JtdEo4eTFpRFcyeTA2OXg5aEhUTXNMZENYTEpGRE1Ra1IwUUN0?=
 =?utf-8?B?SmRGZis3amhnS3lvYWFOcHBFVEE0TFNsRU01K1FsSVowSWdtcVl2ZndlbC9y?=
 =?utf-8?Q?0x412ehuXoXiDhp+K/MOeOSpreZD5UKP?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dThPNUlLT3JtU3d1RGhuSmwvMVlKcGNSVDl3QnhiTkhIM2RRS1M2ekFkeGl3?=
 =?utf-8?B?YTBZSFJMcE40TVlkM0tPUmxVeXA2NXFPN0o2T1ZlTVFZQTh1YUNQZ3orWDJu?=
 =?utf-8?B?blZhaC9wSmJaZmd0ajBuTVRnbGNRU0VTN0lxb1hidlYwMjRmTXRsUmxsTmxi?=
 =?utf-8?B?TnhISDE3elAyWXJibThGTDV1Y25nUEMvblk5S2JCNFB6RTdQWEJNamZPYzkz?=
 =?utf-8?B?eTVadHBHdXZkQ1dLdUJKTStCSDNCTDcyTGhNY2JZRnkrbFU3bzlmZnNDdzh0?=
 =?utf-8?B?ZTVscm1hU3dleDFHMjIxTkVFaHcrMGJGdmJ3VnMxUGROMnB6STlrSXdtQUJo?=
 =?utf-8?B?ZEhJdHYyZzlpMVdMRGhwRnFsS244TDkyNzB0azAyTlRndUFRcDFmNnBESE1t?=
 =?utf-8?B?cTd4dGlFQWp2YldNeXNDVnl2Y2w1NVVmbi9naXhYMEpDdkVuSEVLaE5hWFVF?=
 =?utf-8?B?aXFGdXNFcTA5L2M1RFJyVEZTR0ZPbWhnYnVYS0xYVUUzOXJ2U0FVQkdURmR0?=
 =?utf-8?B?TFoyOEVaM3pUVmlXM2JIbkhhRWI2L0txbVdZL2ZDL1Job3Z5UE91OGZyUGZ6?=
 =?utf-8?B?UEtFTjl1bWt2dmVWQTJSaFYxV3Z0TXk2NzFwZjVyTmRuSVBkNVNSSmdDV0tt?=
 =?utf-8?B?cVNncjBNWmFLT2pYZE02eEY0blRDdHM1eGI1QjdYQTgyS1htZEE4N1pTZUtz?=
 =?utf-8?B?TzBTR1pFaUxjUE9HVUhZNWU2Z1FkQlN3UVpiRjYybFdSeU4wcmtIVUJ2Mi9K?=
 =?utf-8?B?OXJwRGFUMVhDWlpnM2Z1eW80ZGUxc0l1U0dHS1plRGNzWS9aRjRIY2ErNmJ3?=
 =?utf-8?B?TlJnV2lzbnF2cjZmdmM2YUFONXRFWDlkbkFIa1c5QjJxY3l0TkdQM2RUejJs?=
 =?utf-8?B?TVBYNk5EendPay84bDlZMkZkdEtQcUhXMVR6RmZ5NXg2cFBjU1orYXJkN1Zx?=
 =?utf-8?B?K3dqWngxMXZrY1NteHFGTU40WDBneE9FN0UrblAva0YrdVVUOFpiMGhnOTM5?=
 =?utf-8?B?WWdmbTFKZWRZYmNaSjR1VkllOFVwSndxUXFFVVJMVS8weFhDZFRZTmlPR3RY?=
 =?utf-8?B?N2kzSmgrYmpwMC9YZVhnbCttTEZwRXNLMC9oSi9KVFByeFFLZCtQTnJPT3h1?=
 =?utf-8?B?QXp6SkNjR2Ztd1o1WXh3TFp0SDhKYXZwNUtFVUV6UEtCZnp2eS96N1ZPeTdy?=
 =?utf-8?B?THhCWmZNd2NzRC9pa1VMajlFai8yLy9oM3Brc2gyUzBxUVRWTjBjb1NsVG1B?=
 =?utf-8?B?dG5TM0JRUWxPdVVvWmpTN045dElISlVDRURzaGJxb1loTEdEQ2JQOVhLcDRN?=
 =?utf-8?B?MHJ3M25pZE03TE9xankyd3RwUHo3cXRXQzB3WnRIc2VoeVpNcmJNYitQWTRz?=
 =?utf-8?B?T253YTFEc1FlODBDT0pTekVjVG90UjRzbzFXaUxycnlZT001eVRyWERMOFY3?=
 =?utf-8?B?OGpBVjZGMDJ3U2czV1FuNnhBM05lZktzbkJESzNicHV1Q25IYzlxWWpFNUpM?=
 =?utf-8?B?cGNvY3JYYjE5RFIrT09SSW5EcnF1dEVNVy96dzRVd3hDYU1CSDVCS0R6aTZl?=
 =?utf-8?B?bFNZdUhkcFFwTGF1dkg4aHM2S1l6cXJzMnJqbC96c3F2czhHNzFEZWg2ZXVH?=
 =?utf-8?B?aTZuaEwyeUNuZ0F3VWRYbjhoSUErZXNvM3V6RlY5am4yMjdFUWlaMjhHRVhQ?=
 =?utf-8?B?emxwVmQ1bUdXUFNtbDFiU2xFQkJIeC9OU014bmNmckRWWnBkYUZiS2YraFNG?=
 =?utf-8?B?Y1BmZU5QNDV3TzkyVlhLM1ZlalhXUGVIMFBiRzJLQ2ptUXczNHk2SmU3V2Vr?=
 =?utf-8?B?RFJxRTlVZFRzNkkzOG9GRHd4YlRCdDJuZXpCNnhEeUl1dUZDQXAyZGlHdTVw?=
 =?utf-8?B?bXg0UVY4WFcrV3pRdUtjd0xWR2VXS0Z3dTZ5L09pbGJRMERnNVUrbUw4K09K?=
 =?utf-8?B?bzk3SEg5bHkxd0ZzdVdJOHBIRURYRUdzb2JMaHE2WXIwMytKQVBxTkJld0E4?=
 =?utf-8?B?N2xHbFV1QVlqZ09FSVBZVjNLVW1MSUMySjMzVGd1S0owVDFNeUQ3YjJaMW9t?=
 =?utf-8?B?Rmt3NnNMWU1uL01BNkc5WjlleHIyMTRpeGI1elg1VDhJZi91OWhabG9LNlQw?=
 =?utf-8?B?SEhKaDU3a011LzFOcWJ3Y2tsOWxtczJxNnFIT3JjU1VaYkdRNGVjaVhIL2J2?=
 =?utf-8?B?a2c9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 765bdb68-c002-462c-42c9-08de3418cf2d
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 16:10:29.4387
 (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: zwVDnsbsdscBjI3s8s6DbtAIcmjCOwhj3HDTC4piADyZmg7DlSHCC4qeNvXhLcSGuOp+Aepv4GnmY7Zw6mGHPpI7N2CLp2g9f5MOZy8s1Pw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6951

On 05/12/2025 4:07 pm, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
>
> Keep the pkg-config lookup for SYSTEMD_SLEEP_DIR, but fall back to
> "$(prefix)/lib/systemd/system-sleep/" if the variable remains unset.
> This avoids reintroducing a build-time dependency on systemd-devel while
> still honoring the path provided by pkg-config when present.
>
> Fixes: e54a6cd6a1f3 ("systemd: Add hooks to stop/start xen-watchdog on suspend/resume")
> Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> Build in which the regression was detected:
> https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10959608099
> ---
>  m4/systemd.m4 | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/m4/systemd.m4 b/m4/systemd.m4
> index c47a25ef93..5fb5a7089e 100644
> --- a/m4/systemd.m4
> +++ b/m4/systemd.m4
> @@ -81,7 +81,7 @@ AC_DEFUN([AX_CHECK_SYSTEMD_LIBS], [
>  	], [])
>  
>  	AS_IF([test "x$SYSTEMD_SLEEP_DIR" = x], [
> -	    AC_MSG_ERROR([SYSTEMD_SLEEP_DIR is unset])
> +	    SYSTEMD_SLEEP_DIR="\$(prefix)/lib/systemd/system-sleep/"
>  	], [])
>  ])
>  

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Thanks.


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 16:17:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 16:17:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179305.1502873 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRYUK-0007Nk-Cf; Fri, 05 Dec 2025 16:16:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179305.1502873; Fri, 05 Dec 2025 16:16:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRYUK-0007Nc-9Y; Fri, 05 Dec 2025 16:16:56 +0000
Received: by outflank-mailman (input) for mailman id 1179305;
 Fri, 05 Dec 2025 16:16:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mBPq=6L=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vRYUJ-0007NS-4V
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 16:16:55 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cf7c004d-d1f5-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 17:16:52 +0100 (CET)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-37ce27af365so20134571fa.0
 for <xen-devel@lists.xenproject.org>; Fri, 05 Dec 2025 08:16:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cf7c004d-d1f5-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764951412; x=1765556212; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MRZGhjTlJYM8509l49dKV7EDaTkiZ7SIwBZWIFOR2Zg=;
        b=SEhQhwvamxNrscWIIwwTjxE3ZB/RCDooleJfT2SvVm5jUBuUpDlPIihnTBBT7J01Or
         ErV3XUX8nNHJC7FQsHAOOfe4iYc9KmY6XXFrdNZwmlhy2weQRP1TTkgUyGrxAdpZpjb0
         8oOYlC5LsIvTM190oWkfA6RPqWxRTzS/EyMhcMs4+M4tdfo+O7PBsiB9x5AN4DkdcUuj
         UHi2olGGZlfLDJiBIQLCGA89vtFLHhAagZ9Lu/d+W4fYyb8aDJEKivI4aid7zpQfNSEY
         r75+t23Uk7TvQBckzTdNwOJWapSgwYUYVHUYLq07g/DmOpuytXfKlZUzCWayYEJpmxFc
         SPQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764951412; x=1765556212;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=MRZGhjTlJYM8509l49dKV7EDaTkiZ7SIwBZWIFOR2Zg=;
        b=HGzSjX70u1F2/CsaftTLv0z23h06Xn6jNjk1HWBYCvXdTmydShFUM7Ocg4/8g0Z9Yk
         D9/7PWG+C1gqrqDHXY9TkZxfC6lb7rSSmeL2tbZiFi/+8tbUjLxcP1HlWLK7A6xLUKA1
         iJNzvVTIHpvJat2hylqse7/IevFZjG69Z2DVv3KGvQN24fKMVLjEuY43XETHmiligEuL
         hgCj0eACn7Tg0CeU36HLSmnezSHY5PEh8+I/qaRwNB5LMoicl/8LN5XmR2Wglg/OqPh2
         FoEH0FBc4aZ1/8knkfCWhiAYM0cQyfhUqq8fyKE5ZIAOxABEC6u1kKbVjeYfY8KVdJOx
         ZwkQ==
X-Forwarded-Encrypted: i=1; AJvYcCUovH9AsbIRJSp8lmaml/kAWx+VtDVE01xPAYmx5w+CHR15wMnNHIPA9DgDVfyoeJHX5RWrk2kn9rE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxtqIq6MCtYD5E2rl7P1gVtmwBprliLFHD0PchcOExbVudw1UCR
	usQV/vZIpYtR17KzWu+JaxLAvxBlkR+sHe5PS6R3b9G+SUHg+u5cUIVsR81X9RBY442Ya8e0RuP
	U1omFgxdWqN9RnjG00IH/dFdhX/iKiak=
X-Gm-Gg: ASbGnctSqPGWLk++OOF7CK3hD/POnJrJU5nPMakUSqvqV7kjn97AGHgTDuE+CsZO2nq
	LORkMHQNvAoncLipw2D5VcowcXUUQz8S7JwyEU9y7wgFvk2hyGQBrDxOYXGzPmVS03/EPvS+4GV
	8MuF0T3e3CEkW7YRGb3fQtvg6kP1bm5bWM4tedx6AWuOqYn1jOxi3p5qtP/x6eaVqWo8wd/UgXi
	eGrqQ7DD7kjmlif514vjCy56u7iGouNClrPNpsTwjV7XE3xkLHWpogcBTS5jyXlXs+hyg==
X-Google-Smtp-Source: AGHT+IG69HWvrsu5KbvrMQYRGqN1TmXTsQTUmdsw42PQ7830rWUAMDzA+KtCI5ZXO6pPBXZZKuwS47pNARoYihy9CJc=
X-Received: by 2002:a2e:a9a1:0:b0:37b:a737:d42a with SMTP id
 38308e7fff4ca-37e637402a7mr30961021fa.5.1764951411980; Fri, 05 Dec 2025
 08:16:51 -0800 (PST)
MIME-Version: 1.0
References: <f03c8a2fe81527841966ed6c8ed603d1d90ee5c4.1764940296.git.mykola_kvach@epam.com>
 <aTLkwMpxchYSMnyT@mail-itl> <CAGeoDV8FnNxoqr18W82DhE=fLWJSQr68xr_vPew_z=hyt2BbeA@mail.gmail.com>
 <95799f50-12ec-48de-9847-cf46835f1a98@citrix.com>
In-Reply-To: <95799f50-12ec-48de-9847-cf46835f1a98@citrix.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 5 Dec 2025 18:16:40 +0200
X-Gm-Features: AWmQ_bk9xn5iaMpvyriE_gkMjRhkgLIeh495HvxnMhzVxLUu57FjrBqgtjHWWQE
Message-ID: <CAGeoDV89J4DztxfwXJO2n6KuVAXtJ47axJ7WvnDHkcVTUvkRKg@mail.gmail.com>
Subject: Re: [PATCH] systemd: default system-sleep dir without pkg-config
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Anthony PERARD <anthony.perard@vates.tech>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi,
Thanks for the review.

On Fri, Dec 5, 2025 at 4:57=E2=80=AFPM Andrew Cooper <andrew.cooper3@citrix=
.com> wrote:
>
> On 05/12/2025 2:54 pm, Mykola Kvach wrote:
> > Hi,
> >
> > On Fri, Dec 5, 2025 at 3:57=E2=80=AFPM Marek Marczykowski-G=C3=B3recki
> > <marmarek@invisiblethingslab.com> wrote:
> >> On Fri, Dec 05, 2025 at 03:13:32PM +0200, Mykola Kvach wrote:
> >>> From: Mykola Kvach <mykola_kvach@epam.com>
> >>>
> >>> Using PKG_CHECK_VAR() to obtain SYSTEMD_SLEEP_DIR reintroduced a buil=
d-time
> >>> dependency on systemd-devel. This breaks --enable-systemd builds that=
 only
> >>> need the initscripts.
> >>>
> >>> Use the same defaulting scheme as other systemd paths: if SYSTEMD_SLE=
EP_DIR
> >>> isn't provided, set it to "$(prefix)/lib/systemd/system-sleep/".
> >>>
> >>> Fixes: e54a6cd6a1f3 ("systemd: Add hooks to stop/start xen-watchdog o=
n suspend/resume")
> >>> Reported-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblething=
slab.com>
> >>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> >>> ---
> >>> Build in which the regression was detected:
> >>> https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10959608099
> >> Requires re-running autoconf, otherwise still fails:
> > Thanks for the note. I had assumed the Autoconf-generated files were re=
freshed
> > during release or at merge time, since this updates generated artifacts=
. If the
> > expectation is that contributors regenerate and include them with the p=
atch,
> > I will add the updated Autoconf outputs in the next revision of this se=
ries.
>
> We regenerate on commit, but that still needs a reminder to remember to
> do so.

Got it, thanks for the clarification.

>
> >
> >> https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/12336879267
> >>
> >> With autoconf:
> >> https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/2198372=
475
> >>
> >> It's better now, so:
> >> Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethings=
lab.com>
>
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
>
> Thanks for the quick turnaround.  I'll queue this shortly.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 17:45:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 17:45:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179351.1502884 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRZrU-0001kd-HN; Fri, 05 Dec 2025 17:44:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179351.1502884; Fri, 05 Dec 2025 17:44:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRZrU-0001kW-Da; Fri, 05 Dec 2025 17:44:56 +0000
Received: by outflank-mailman (input) for mailman id 1179351;
 Fri, 05 Dec 2025 17:44:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=K96r=6L=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vRZrT-0001kQ-PX
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 17:44:55 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 19093e65-d202-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 18:44:50 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA3PR03MB7513.namprd03.prod.outlook.com (2603:10b6:806:39a::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.11; Fri, 5 Dec
 2025 17:44:46 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.009; Fri, 5 Dec 2025
 17:44:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 19093e65-d202-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ahfgWCuuvcGjic9Oqznl6ym9gQCLkItxFsMFR9pSPwxjNaDICaaOvxe3cxwhyagkp1yptg1ibu6dxxPx/mknGgHmveVGuqLSecEG9Zht2B9iTkddJ8Ys/7Z6L9xCQED1yaVKnpTwzKb+lMGcSqUM6293TBmSHnVEuPM1GPR8rjYPk+5lXOJczDsEpL11PhG1rinKVbMrm7fJsKEMpRDqDe7YOqJr7DCf+tgtMih8qHjM9Mjl2G4nQdnff6FmRmASlWV4yu2m4ZRICQof86l7DFV9LnE9gzTPUXdpa8Bd3DTTHiW6cngbMcV/hZqW+Be3LE3VPwQIAeywhmxx6GIXpQ==
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=bHnyBkRa5Ya2hGFkympgSn7RaXo9YdtHW0E2IgG5Ek0=;
 b=VxERUHCIuw8c04JPoE312FxU5P8zSTo++GeYE3r6FSihhbVP9YjffsP7RwsMxcJptKXICW05Qe57hgN/7jc7+rWxgLeX6jCvpgjHjjJB7w+TqaOsKGonh80JFn1waxnEHnChUfnPLGv7spRxPbAa4Ga7vw4o6+j91xf8CdwB7v6GNrkbOAYUONQSns6ueH7Y4ktW52g5P860HhM7q7aMPc9JqVxKwWNrbfoII2WXM14LeToGOZ8+t6HAQhMvyS/cON7zcgpdGyvXGiRMhrM3AuQLbr1k6+kTZkUhEKs5LQbcGbGA8m7nYGi8aAr5ipwdIumT4kXP4epNgudtaYpd/Q==
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=bHnyBkRa5Ya2hGFkympgSn7RaXo9YdtHW0E2IgG5Ek0=;
 b=nYIOECWP0OihttQrFjb1JrIsDLDx4vP85BSAPpIpuRcsg5WdzUz3qfyH+gpZ+59VBmc/S9D1hTnDpHuj8yv3DNOVwzDsz5ZGCwuVG3uugPz/KBt9BlX//baGMak9gW1bM/CnzblgOof2b/oYlgBbdmsvg7FhltkJVzIPY8TPlZI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <ac0a0539-572a-44a3-a2ee-b56a77e69794@citrix.com>
Date: Fri, 5 Dec 2025 17:44:42 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Frediano Ziglio <frediano.ziglio@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Frediano Ziglio <freddy77@gmail.com>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v9 1/2] Do not attempt to workaround older binutils
To: Frediano Ziglio <frediano.ziglio@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20251205160942.46694-1-frediano.ziglio@citrix.com>
 <20251205160942.46694-2-frediano.ziglio@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251205160942.46694-2-frediano.ziglio@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0326.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18c::7) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA3PR03MB7513:EE_
X-MS-Office365-Filtering-Correlation-Id: cf4194e3-226d-47f1-b94b-08de3425fac0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?K1FUQ3ZrbmpCYjdRTVFoaWJUdXFPaVNtZzQ4OEc5a3E1QVJ3aFlHN3AyaStU?=
 =?utf-8?B?SmlNdFU5YXNMYmY0bE1LTy9FYU5RdWhWbjV5R2lMeHZJYVhrbzNrN0ZrYm00?=
 =?utf-8?B?TjNZOEhsdjh5NlBNY3RHNGViYllpZWhCSjFBWFlzcGZTTUlhZEdCYjI2dGVK?=
 =?utf-8?B?dUVlQ2sxYVk4RUcyMUxxano3MTdseUtMMUNZd3FHK3Q0T1ppSGE0ZXYwMTJl?=
 =?utf-8?B?MTFYY0dxMHR2U1NEd05CNG51QTZLTmJkTDhFZ0pOcGpMUXRWaFhQMXQxV01B?=
 =?utf-8?B?Wnhqc0xRd3FTU2dvaFFWT1MvYnBKVnNSSmVsYW1HM1FqeWpyT0hHQjVCcDYv?=
 =?utf-8?B?M3h5OWtQVy9xeW9Yb0Fnc2xqUXA3c1pOWDB0ZGJZRE93VGNLbkI3YWVhR3l4?=
 =?utf-8?B?bjBVQnRzM0RETis2ZlVKMDZQS0NIbVR1SEdBWE1HZGd6NHlXUk45dXNOeWZM?=
 =?utf-8?B?Q3h3WHVqVVNZeEI1RDFoMEpnSXYwWFR6azNFS01McGJVYmtadElXVm80cjJ1?=
 =?utf-8?B?Z0MrVzYyTVVSTWlOMmRiWVJGbFhJS1pCMUVUbWpXQkxRMUUwcDh2eXBzejMz?=
 =?utf-8?B?NENqZ1JvbEdPT2s4TlcycVI4V0wvMjQ2SmZsQnRUdTllVHBtbWwwYm5Bcmln?=
 =?utf-8?B?NS9Uc2FsbGliZlEwNy82T3BxSHlwVVNXdXY5U0VGS1l4RzV4WU1yeUVTQ2Nn?=
 =?utf-8?B?Y0dzaXExclRaRXI1WFN3M3ZtWUluZTVWWTJvSVlONVVqTnB4WnFuSnJkeUZx?=
 =?utf-8?B?RmM0cWNRRmtMS1FESHgyYXloZHY1RkpnWE9kUk9TNzVjcFI0VTVsVm9kS3ps?=
 =?utf-8?B?L2VVMXBzbWYwRENHNHBUV081RVV2Q1l4NHVjTHoxNmV1VXFVOHVkL0xJNnZ5?=
 =?utf-8?B?NUxzQ0laeDZSSG05bFp2SUxoR2lKMS9oWVBYUzh0WE8xQUwycFBVamZyQldO?=
 =?utf-8?B?TU5aWlp0NDh1SGpaK1VRbUpQekxrTUhwc3MvaGdHNDVFVmtFOU52QU5rZm1p?=
 =?utf-8?B?Uk1QTDZQU0huMkFmcExIMGlBMjZSek1nZUx4NytLNjVMU0hqZ3ZrbWF2UElx?=
 =?utf-8?B?Rm1zUmN3OEgrUVFZV0J5eHBuNGpDRHJjZ1R0cE9ESk84ekhzVXhid29ZQ0Y0?=
 =?utf-8?B?VloyWkRiZ3c5VlZOR2dzZ3BSK2FrOEE3SEVKcnBIYzFqNSs4aHM2K1U2NlNh?=
 =?utf-8?B?TjdEQlBET3orR0hLRWErMzRBM0JqQ2RadDNEOCsza2xkR2hrTkRlU01zZE5j?=
 =?utf-8?B?UUYwWjAwbjloRE9Md0tyR0dobGlCYXI4VE00L2NpMmQveHlVM3JOM1oyL1hW?=
 =?utf-8?B?M29Od29aSGhOa1RyZzJDYTVzZ21qSHdCblpoYTV3bnJOZi9Tci92QUR2bDBN?=
 =?utf-8?B?WmhabW02Wlpjc3NNdThobEpZbXRlQ1BHVzB6SEhiM3VxZmRORFUvVSs1MW44?=
 =?utf-8?B?Vm13S0RPbjlxZmowczk1VnlNS25OZnFRRy9xeGM1aHZmQkNGUjZoMmRYc2pD?=
 =?utf-8?B?djkwZ0tMYllDaTAzSmNqeWQzQjFrNTl0T2JFblNZbHIxK2R1b2NKZTZXT0dE?=
 =?utf-8?B?T1cxY1FOL1BsdEZhNll4a2d3NXVzaHpqbk5aSDlYMVFxcUVTdGszTkhQRE5j?=
 =?utf-8?B?K0p4azh3d2prNURBa21lbDEvaWhkT0xaVEdDanYvL2R6UWgxKzdQNnp1Q3d2?=
 =?utf-8?B?cnhuK3hlcURiNTFWZzVTRzdkNkw0WHNPOGt5M3hHUVpEU1g5THNnb1VrRW1P?=
 =?utf-8?B?VGJmbnhLV044a1ZDcWlWbG40TUxzdGxFREdhTmJRdUZYTVg5UldEUmpYVEJl?=
 =?utf-8?B?OEU2WDNhZHdYMnRqZXdFcERocDR3V0tSNmQ1NmtQVUl6bEZQOUErRkNqVmZS?=
 =?utf-8?B?RXlQSCtVZGllenIzNldDU1hYSVloN3UvY3VTR3Rnd2hnYlloazhTa1FvbWNt?=
 =?utf-8?Q?p8iXPPDZX34yvaO/SxbwdXu29GJS3He5?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?c1lOaC9aUmJHMTBTTE9CdmdKZEhGbWpjTWlheEJJUCs1aG5WWHN2T2NOUzNI?=
 =?utf-8?B?SGN4azA3aUluV3g3YVNMT2Y3blZjamkrQnFYVWdkT1BrdTBtc1Z3M1NaV2tE?=
 =?utf-8?B?MEdmTWdPRFdwRFRBU1g1SnlDazNiSFZ6cWwrTW5RTGFCSmNydEZKdVJyTzUr?=
 =?utf-8?B?VGtEZitoajN2NWN0MnJJeHpNLzVrMmxGWnZTVEE5dGlKUEFGVENrQXZNdEdC?=
 =?utf-8?B?ejJQbWpSNDJ4NTBOMGFyN21VU0UvbDkzRGtvMnl3RzFuTzlJdXNUZ2RuMVJl?=
 =?utf-8?B?ZnY1SUVZQWhWQktyRWd4WGkzNzh5eVFyQ3k2YWFySW9TdnFuZWZOTTByaDN6?=
 =?utf-8?B?S0JGN2ZzSjJic3FoU3ZXM0FnNWNFY3JFU2ROSnMrNDFiK3pXRXE3di9rWUQ5?=
 =?utf-8?B?RzdIS3dTR3hKOHg3ZjdRdlh4VEtnNXRDKzBubFJIbURwRWg5ZW5Hc1ZNcTFi?=
 =?utf-8?B?Z25xVU5pa3VCd3NaaFI1dVJoSXV0cjJleGFYcTc4ZXZlcHZpMHkwUFdzRjlP?=
 =?utf-8?B?R2hCeGttSmlTc3dSTU1GM294bnBRNC9jQlFKa2NhNUVBV1ByaVFjcWxKcWFG?=
 =?utf-8?B?OUVKbitaMlBWQ1Y3VE1MU05YejZWZUJ3QnZMUEVCdGxaTjQ4bUJWblRrTURB?=
 =?utf-8?B?L3hNNk0xMXNla3VGK0p4ZHR0UDZkQmhZanV4bEE2WU5yMjRxRWI0TDJEK1lI?=
 =?utf-8?B?YnpFckdjRXZMMEdqLzFpUmx5ckZVTittZ2tycHA5aThqQUVVMlhST004cVpa?=
 =?utf-8?B?VGlPTUdsWUVRTjhWWWFjZktncG9WYkFkR3BtRVJkcmhBYVlOMU5idkdFcUM2?=
 =?utf-8?B?ODV0K1hGcGUwYmNkK0E1T2tySG5UYW5lTURIYlUxdnJNZEtoRVNKN3RhVWVj?=
 =?utf-8?B?cURkWGVaNGdudGh5U1RDZ2RuYndlOWtqQUxnQ3JHYmxmZmo0YTNQTStqb0xM?=
 =?utf-8?B?ZEJZVXU0TmV4a3Q0c0wxMkxXbkpNcWxTaGpYT3FiTFZpK2FLZE4ydWk1RHZO?=
 =?utf-8?B?bFNlNTVsbzFBSVFCYi82UmIxdnlDUTZDZDM1T2IrNWZ5alArajV3Situdzk1?=
 =?utf-8?B?dUhwYng3NGdyVGJ3OCtCa09nTTU1Qldmc0U4bTJLZmhXRysyaTRud0ZWOGVO?=
 =?utf-8?B?Qld4VVZtaEZrVjZncjA5SXdFWUFtSmtrcEc3L2oyakh5eHVYeTB6NnFkQnda?=
 =?utf-8?B?TzVJSFBHUlM1WTJ5VGxHeXFvdC9lcDlTcDhZa0FyTHQyWEVRZU5xd25BaFQx?=
 =?utf-8?B?d1hmTmE1Ly81dDViQWkyak1jSFUxckZRMUFTQ3hKSU41RXFkR0hadUgxRnVr?=
 =?utf-8?B?dU9HSk1RU1RiUHB4MkhEQW5sTTdESDVxa0xGcGlIa3p1bHNhWmM3bExydmtE?=
 =?utf-8?B?bFhrNWozcHRPZWdCclVyU2hGQ1V1U3lvNDBHMXpXWGo1VlloY1U4WTdmZWtq?=
 =?utf-8?B?cngyWnRPT0puQXlDcG4wYW5wMnREbEdkRkp0TEpNdUlZWjBORTRZbTN0ajQr?=
 =?utf-8?B?VTJBcTB2VVkwVVIxVTVLeittSUJOQ3doL3hnSk5QY0JRZFVWNndOK2lOak1z?=
 =?utf-8?B?c3hzWVZXTVRrMmdMUDNSeDU1K28xU05uTkxlb2hxUXAzNjVxNHE4OXR5WmNa?=
 =?utf-8?B?VmhkMXRSa05IR3A0LzFEdEE0ZkE4N0dHUzlVZkowZ0dndXk4SG9OUk11c0tm?=
 =?utf-8?B?UEgxbWZXbGR6ZzZrU2x0aHRpRlFkaDJTM2c4RFBqT0s2bDNxbjYrWmFwQU1u?=
 =?utf-8?B?YUxZMmFWU3JjY3Z3Qm9ZVytjMTVkQ1BTSngyNkxMVk5CeW1vMnRFeElsenF3?=
 =?utf-8?B?dFh3amNMV0NiRHpQV2ZCY0hxUThEWDVoTzhDU0J5V0Z0U2h6dEdjTC81UlVO?=
 =?utf-8?B?L1JURnhDOXl2d1pXM3B1cHdDTFdwOThCOEhzQ0tIbmtmL3NyMkltdzMwTjdY?=
 =?utf-8?B?a3ZUMnJVdzJqVVo5VGNzdHZxYWR0T0xhdWNvREs1MW5tL21NU2QzM1VUSWJs?=
 =?utf-8?B?bVBIb3ZtM1VQNUhtY3BJazh2NS9qZUhYeXhYcnIrU3owc1lRNlcwcUdkY1Fs?=
 =?utf-8?B?dG9ZNk5YUGlnSWx0Vnlma2pyTFJWeEF6aTJ4NzBoS0IyREdXcnJSZmw5Rllz?=
 =?utf-8?B?VnlMSmhkSXZqZGhwSFhNOGhMVlJlWm9WWk4wR2JmVTl2dTZ4SnZqaG1Id2I2?=
 =?utf-8?B?OHc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cf4194e3-226d-47f1-b94b-08de3425fac0
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 17:44:46.0104
 (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: lOErTFlJWhwxejZT5TmPZKPt7Thnz5hHBcMFXpN48+cHhntXz0PK+8RJU+yEKdHODI9EfrifwIwXYI+8AabqhD81y5KutB+l2O8fB9Wk9WI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR03MB7513

On 05/12/2025 4:09 pm, Frediano Ziglio wrote:
> From: Frediano Ziglio <frediano.ziglio@cloud.com>
>
> Older binutils versions do not handle correctly PE files.
> It looks like they could work if they don't produce debug information
> but they mess the PE file in other way like putting invalid
> flags in sections.
> Also different tools will complain about the format (like
> objdump and strip).
>
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> ---
>  xen/arch/x86/arch.mk | 7 -------
>  1 file changed, 7 deletions(-)
>
> diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
> index 16368a498b..10eb8e4292 100644
> --- a/xen/arch/x86/arch.mk
> +++ b/xen/arch/x86/arch.mk
> @@ -88,13 +88,6 @@ EFI_LDFLAGS := $(patsubst -m%,-mi386pep,$(LDFLAGS)) --subsystem=10 --enable-long
>  LD_PE_check_cmd = $(call ld-option,$(EFI_LDFLAGS) --image-base=0x100000000 -o $(efi-check).efi $(efi-check).o)
>  XEN_BUILD_PE := $(LD_PE_check_cmd)
>  
> -# If the above failed, it may be merely because of the linker not dealing well
> -# with debug info. Try again with stripping it.
> -ifeq ($(CONFIG_DEBUG_INFO)-$(XEN_BUILD_PE),y-n)
> -EFI_LDFLAGS += --strip-debug
> -XEN_BUILD_PE := $(LD_PE_check_cmd)
> -endif
> -
>  ifeq ($(XEN_BUILD_PE),y)
>  
>  # Check if the linker produces fixups in PE by default

Given the practical breakage, it's clear that noone's using xen.efi
generated from toolchains these old.

So, while it's not completely ideal to be "dropping" xen.efi on such
systems, it firmly seems like the right thing to do overall.

EFI support is still available on such systems via xen.gz + MB2.

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>





From xen-devel-bounces@lists.xenproject.org Fri Dec 05 17:50:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 17:50:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179363.1502895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRZx1-0003K2-4j; Fri, 05 Dec 2025 17:50:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179363.1502895; Fri, 05 Dec 2025 17:50:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRZx1-0003Jv-0c; Fri, 05 Dec 2025 17:50:39 +0000
Received: by outflank-mailman (input) for mailman id 1179363;
 Fri, 05 Dec 2025 17:50:38 +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
 <SRS0=K96r=6L=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vRZx0-0003Jp-C3
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 17:50:38 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e74a7ab4-d202-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 18:50:37 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by IA3PR03MB7690.namprd03.prod.outlook.com (2603:10b6:208:50d::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.12; Fri, 5 Dec
 2025 17:50:33 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.009; Fri, 5 Dec 2025
 17:50:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e74a7ab4-d202-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=K4X5uya2XtbROaQoB6kAjsCAV3AObB2uiuPr4Ag5DVWrELtlM6hglM3/4Dsi3+m1sYGYZQSiE0fnzY3yIRU2JJOLryFGOn5F92yHHTsEbuWDT0k9lqallgXh8+35hLwyjMqp4HjfZFtuFbxD0a4U3RMZ7leIDTX6xvWRuir8dXG5yrJ7K4miQRad9dZEwL3dzSyTR5+at0CY2qQXWNduFcUWtFIhz1tM+wtvleNVhVki14lCNsUqj/cFE6ZnzQZd0ofT+62cv0qwcHHva1Rjs/oYdtWgRKObb6WkpFjNHApiqEFiM47RAYSX+gar+gwuiwbnXveodgpnL/FJlXd+3A==
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=DysLUJs5zDHvBbYGxogiknpvqHBS4m/tiJb+mQaTGFM=;
 b=X//xbp+xQg1Z+RygukALd5DOAlBgnanL3PQ7l6VYZpm/oWvIniIZim9jfbkH95KdXLsLim0zoFJHWGppPrUN/FO7jVh9VDQjG77Hab3lu4jxUVVj6RQQZueteIX6MvYDL05hKFMl1zm0IcRH9/mdih8WyYgKllNz2sCKSVHk0abvmal975KJ+oP8hVIMZO/4bpITonDpdai+sXDyMkwdn6aOO1DqeWneuLKDtMYyyUYxxnT3ylApRcOS9VBZKS7YR9kf4PO9eMSE3sf3HSKHwDReebIWvZI3EugL2TnJ+7g8SDmkyd8kF4P2ENSsGPmy70e9ho+eYySiYE0E2BE0Mg==
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=DysLUJs5zDHvBbYGxogiknpvqHBS4m/tiJb+mQaTGFM=;
 b=qmMOWYybLE+jEIvhX/sM999JTKsrWqpt06efh8cz0m4mHp+y5sskFRQn3p8LF2QL82GppQLwpsdyQQ7K2dAwKKcxb3LpM/vbcVd6shuG30bAKfFswkmT2kdW/6TOqZ3ROmIJQfPJe2hlBnld1ddK7S80xXPFPP2M6phiEtoixhU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <2dba3524-3386-4dd9-ae4e-fac0fad46623@citrix.com>
Date: Fri, 5 Dec 2025 17:50:29 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Frediano Ziglio <frediano.ziglio@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Frediano Ziglio <freddy77@gmail.com>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v9 2/2] xen: Strip xen.efi by default
To: Frediano Ziglio <frediano.ziglio@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20251205160942.46694-1-frediano.ziglio@citrix.com>
 <20251205160942.46694-3-frediano.ziglio@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251205160942.46694-3-frediano.ziglio@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P302CA0012.GBRP302.PROD.OUTLOOK.COM
 (2603:10a6:600:2c2::19) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|IA3PR03MB7690:EE_
X-MS-Office365-Filtering-Correlation-Id: 9ba2ab3a-5151-442a-b856-08de3426c9e5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YUNRY0VuQ2RJdHA1NG9sZzlUTktxYkRCUkY5V2svaFVKOFR2MHpxSDNNUFQ3?=
 =?utf-8?B?elZhakJNV1E1aUJGVzQ2TW1Cd3dMY3d0ZnpuOExxNjIxU1NNT3VTYnViTUg1?=
 =?utf-8?B?d0tjM01ncDZuWWtOcm5kVHpZRkw3WmNaYTdzQ0xBdDFHNEMwTFBhdXpRTk1n?=
 =?utf-8?B?MVhPTUNlRUw4ZVo4Nkp3K0RabjJsbUt3cnRyUnFuUmhPNWUzVmZhZlZuTmx3?=
 =?utf-8?B?THJpYTV4R1l0SHhCUDdjYW1TWGhnT0EzS2tMTzh1cmYzc3RSaEVnTG4wQ21Y?=
 =?utf-8?B?bGI4Z3VKaFFBVEJxQmppYy9nMjBMbHVzUjU1eWdHSWNiVjl2NFBGblMzaktO?=
 =?utf-8?B?UjVzTzR1WkJkZFFHR29YMnd3Snh0VXo0ODZqU2ZVb2d0MCtKZjZqYWlUa284?=
 =?utf-8?B?YWpFTEhPWTJDZi9sbDNBT0JMVFh1Ky8wVGYwZzlNeEVuSkVpOFc2WDhCc3dv?=
 =?utf-8?B?S0VZeHUzc0FyRHM0djljemVuS01FUjZGeHl0ckc0SE9uWEpVdkVvUVIvczdl?=
 =?utf-8?B?eE05eFdmVzBzbUFhbFNvUkFHd1p1T3BzaWJMNklWekluNjZ4ZHdQbWxJOEpY?=
 =?utf-8?B?RHZHNDJUNlBYTTFMT0xoeXFJcUxTenE0N1N0WDhIWmVmdGxyWXl1R0dmZ0I1?=
 =?utf-8?B?akRobGM2clh2bDk0ZURTNWxLRTJDMGl5Z3VCV21sZDNLaTRjZ3dQcitoSDd2?=
 =?utf-8?B?M0xBR1lOS0lRaTZhTFFyb0tSZTlmaUlDbTR2ZlVsV2k2emE5UjRhVHJhMjAv?=
 =?utf-8?B?bkV2NE11bjdZcDFTVXN2RXZlNzU4Y2F1c2dIc29idGJ0SC9Fc25kTk5zcXgy?=
 =?utf-8?B?eUdhMERUaURKUUpVMFVweEg5eUd3YVh4eGMzWHg0b1JVbytiLzNYaG8vN2U2?=
 =?utf-8?B?ZWsvb1ozeUZZemZ3anNqYzBDbXRGdTZ2bGxPTTBuVXo2TTZ5eWlCbVc5ajdj?=
 =?utf-8?B?OFFqazVremNZa1hHcGdYek80VFp4OEd1cUI0Q01SUWVqY25WeW41bUZLd0J6?=
 =?utf-8?B?R1hiMUFGTlVBdFNaYzdoUmw3QWZGQVpoSHhDR2E4T3I2T3FFNjRmUUxaWjNs?=
 =?utf-8?B?T0lINTErd2w3Um93ZzlrOUtQei9GUXU1MDZ6UER5dURsSmk5K0NqZ3hHZ2E2?=
 =?utf-8?B?Z1BycWpSbXZBV3ZqUTVjbTg4ZGpGdm1RRWhud2g3RTFtdjAvcWdzQld2Sm9r?=
 =?utf-8?B?Vm1xWmNySW9oOXBsQ2RoZ3MxQVYzaWxaTjFoYWZxUUhqSXI3RTVmV21OWllm?=
 =?utf-8?B?WUViMVUwN1Y5WVU5S3Bld1JLTGo3L1ljYU9PdW96U2ZqRjZybWtRZTdkR1Ri?=
 =?utf-8?B?NlVya0RPQWQ1UG0rZXAyaVp4WTdNZXRwVjlGam5NdXUyLzJXMkZxRncxd3Fn?=
 =?utf-8?B?aHBPa2ZwSjhrNnZiSzd5RHUxRTFwK0NRM1RYQkJHMHFzNDhES2NVMmdNQjZw?=
 =?utf-8?B?ek1kQUYyRmk0eG1lSmowZ2VtTTQySW12Z0hmdVBiZzdxMTRnYm1RVXN6Q0hn?=
 =?utf-8?B?Q2pQaXVEcGFOTHVSeVdYVDBUaFlOaEhac3lFaVhlTUx3bk9vSDhBZkRrUnR6?=
 =?utf-8?B?S2MvMldDQy8ySGswOHRQZkxSSVlvbjR3VytvTEtERTYyVjJmYW1TMDB1d3h2?=
 =?utf-8?B?RmFvODRlZjZyYWNGamxRNk03YTFjcFlFYzdoNGRDV0V1UVVzc0FYaktUdm9r?=
 =?utf-8?B?ZUpCK3Z2OEJQUVloZG4zR1JUZmZqZ05kWjRQeWU5Q1JXYUVmLy9MREI4eTk3?=
 =?utf-8?B?dlVVMG9CdXk2V1J0Rm9DenFUMHdZV09wVVJ3Nk9ET2lrQ2lNSzFwRXNNR0xW?=
 =?utf-8?B?SXkvV1Jzc3dMUUpLQ25YWXVQa2xUT2dLTURzWmlxSlBJYVpXQmZBaUQ5aVRn?=
 =?utf-8?B?RUd0bUN2cFRsQkZaTDRvdlBFaWpBOUtNSElPQjNOVCtLQ1kyTURLaHRSejN1?=
 =?utf-8?Q?8ZBBTdmgBgkLjEm5gSt4dYtTlAR3TB4S?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cUJjdHNnUVBhZWVuSUhJNzVsYlJTOEJuYm90c3hJNHBXUFJYUmVaTTYrejFi?=
 =?utf-8?B?U3NXS3UrUjhCaDQyWVJwNDMzOEFUUzVyWHNaZFczS04vZ2dwRGwxcDdicDJk?=
 =?utf-8?B?THRTTlY5S0w2dHorL3hTZHBkRmNZclU0UGRxUUU5RHBoSlhZb3czZlJKUTNz?=
 =?utf-8?B?emV5UDJVaElsNHFGOXA3d2lBWXhzVXl0akUxazFCUHNQenR4UVAvTXVrQUFI?=
 =?utf-8?B?Rm9nOWVMMFUxTlM2cGlsRXhiWW4wcTFZeldIQ0diSDUyR2NyN1B0REtvYzNy?=
 =?utf-8?B?aDRtQitISHBtd3F3ejkvQ2xKL3h3K000eVV2L0MyK0NDb1h5MFVmTVpJQ0V3?=
 =?utf-8?B?UDZ2WFVPNUZLSkhIaW5nZVlqMkxqcmNlYnd0T3BNUDE0VFZKaHRBY0VKSitG?=
 =?utf-8?B?d1dxbmpxNmlQSVVpQkovd1dPbGsvSTJ4ZlNEUEVRYWtjOEZtYTcxT0wwbmwz?=
 =?utf-8?B?NTczVHd2cHhUNnhjVUlaWnVwYmlqcXNRV3FreDFtaDB1WjJVd2FMS0MraEcr?=
 =?utf-8?B?Ukh6dmNRVEZMVVRJUWFidXFVeWNkMkE1UGE3ZmFvSklkekFrb0tPQWgxaVJp?=
 =?utf-8?B?ZnNtbVpFd0JKczJ3MWZ3ZWw0dHQ3djY4WDNNb3BtR0FVU25uQVYyN1gwQWJn?=
 =?utf-8?B?WTZHenMwOUhjWTRuWDNvUWdrS2hEUCszMkJ5bnJoemc0U3pveWhnZ3o4WFBN?=
 =?utf-8?B?cUhGNm9UcU1wWFM4MTRNQ2s5SjcvY043eE44Z211aHBBNmtPUHF1UEhPbUR3?=
 =?utf-8?B?cWdlM01Zak9WN0NZZTBGdWdRbnh5N3lZbEdFN2NFS2xPQXdXUjh1a1k0Ym5o?=
 =?utf-8?B?VEJkMUIyK2ROTytkRG9rdVBqSHNpcjlQYkpVTjYyL211SEg1TFNTYVc3WWQ4?=
 =?utf-8?B?M3NEd3ZEeTlUbjlxZnhDOFVPK3QrUjBQZGlFaVNXYnRFTzFudlJjcjdiQjVZ?=
 =?utf-8?B?YUpMb09rL0Z2RWlRaXRFRS9tWnpxQ3ZUWmZLdFlOOTZZYmJYS1Y4eHBDdTF0?=
 =?utf-8?B?UFhhN1IwN1RxTVF2c3I1TDUrSWxmbkFQYWFzaG9jbWxtaTBzb0NxUjVHV3FT?=
 =?utf-8?B?NUQyNENFYmJ1eklscVlYL3dQdnh4Z3F5UW5lR2lvRzVwRmUrNFZoM0hMeDEy?=
 =?utf-8?B?SDBOY01QT2N5Nk1TYk9kRkNBTHR2R1pxV3JNNGdTNElVbDR0eitQc1c2Vkdu?=
 =?utf-8?B?YS9QUnE0dmY1TEVWb2VHaEdJeUNmZ3FNUFlCemhML2dTTjNsa3loN0xhakRW?=
 =?utf-8?B?emJUbEw1ZlA3RzJGRDNxdXJZeVR6dDVvVEVLendoY0FEMUhlVXd5NE1aSGx0?=
 =?utf-8?B?OVZtWTNDb1ZOekJON2dlZ3FmNUhlbDY0Q2tCVzU5c2tFbjNzakFjdDdlVUY0?=
 =?utf-8?B?RmRSZ0JOaU9Yd1JVOUQ0bTlVUFlWVS94R1dxZUZzbm5sYkI2cjI5M3hqZzBH?=
 =?utf-8?B?VjR1Y1Y5SE5kWk9kNm1rSW9yc085Uk5uenRRWGRoQVNKRkJFNFpGTGRYQTVa?=
 =?utf-8?B?N0pWUW5ZODZBamRHMFg0TGhybzJDekIyd0p0UGR1aUU3WitzWjdubnJpNUZw?=
 =?utf-8?B?bk1YQ3dsWHBUYWJQYVFHVzRUb1A5ZmJ4VjdERVRpQ1ZXRlJTaENwd0FoSHBQ?=
 =?utf-8?B?RS9YQ3NzdFY4bFRwSkdDa3Q2ZnVkTjBjOXNQYlJLcUdVMit1MlpqbUxneU8z?=
 =?utf-8?B?OTlsR214RG5LcDZPcnFwZUQ4MS9RTDNtdHpwVkpvZ2ZJb3ZVVXBxdFkySzdY?=
 =?utf-8?B?c0pnc2JEaHZ2SHlXc3V5QmFQWmpJQllFWTJzTXEwL2tOeW1lMmJSQUR2Y2k4?=
 =?utf-8?B?QWdJWkxhajdwS3RiWU5RcnN1YXVTSkowVUtpdHUydDNJdEhSbkkxZUVCWWU1?=
 =?utf-8?B?d0VjMDh3YWtkU0srSWRzUzdrWWM2bGRmS0V4djA0eDViaDRtTFlOOGQrdTNM?=
 =?utf-8?B?MGVxZlZ1WkhwYWpsQytRWWtLdFJMSk93RDhyTkVFOUIvNE9wWHdYVEJnV2Nt?=
 =?utf-8?B?ZnBUeEt1b2VNcTBQb09laTJSOC9vdzczeHE2ekU2RkY1bGN2TE9XV3h3QkxP?=
 =?utf-8?B?M2ZFK2ltZUJhYnFETHFFdmhwbXEvQy91YVZiUmRmSno3cFpKUnlzeVh3OVRK?=
 =?utf-8?B?QUhXNlVybCtORmhiNDU4L0phcDR1SlpFZUphamcxV2NrazJSNWV5V09zTy9y?=
 =?utf-8?B?bGc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9ba2ab3a-5151-442a-b856-08de3426c9e5
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 17:50:33.5308
 (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: EvcPPisXq0y5LZTnsi3tpApF2YqmR9oS9/g+xJ1IdAcX3ul+o5FOlDycdCBo1vJ3m3WgasDrmmNXwh3j+I532HJ8vQO6s2292MX0oCW3pGU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR03MB7690

On 05/12/2025 4:09 pm, Frediano Ziglio wrote:
> From: Frediano Ziglio <frediano.ziglio@cloud.com>
>
> For xen.gz file we strip all symbols and have an additional
> xen-syms.efi file version with all symbols.
> Make xen.efi more coherent stripping all symbols too.
> xen-syms.efi can be used for debugging.
>
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 19:34:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 19:34:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179395.1502905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRbZU-0006oA-9m; Fri, 05 Dec 2025 19:34:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179395.1502905; Fri, 05 Dec 2025 19:34:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRbZU-0006o3-5h; Fri, 05 Dec 2025 19:34:28 +0000
Received: by outflank-mailman (input) for mailman id 1179395;
 Fri, 05 Dec 2025 19:34:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XFGw=6L=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vRbZS-0006nx-4n
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 19:34:26 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 624a967e-d211-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 20:34:15 +0100 (CET)
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com (2603:10a6:20b:6::31)
 by PAWPR03MB9129.eurprd03.prod.outlook.com (2603:10a6:102:33d::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Fri, 5 Dec
 2025 19:34:13 +0000
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4]) by AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4%4]) with mapi id 15.20.9388.003; Fri, 5 Dec 2025
 19:34:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 624a967e-d211-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xOtkQyO4NRJNzbuCk66/h5jI7/1x8lGGbsizGV1NG0aFAiJBC4bbDo1eiqPyegFLTi61TmjE/E1pJSJHSKZl8lFnsyGgOS1W+yioLBjyHMwMsTHy2G4q9rVfsHlq34aXlZANcVeL4IcDkjNruFdmOVhinCC3eQYpmzhlPElfPmB7DAMBbvKpW8icDPDAiBhpuRt2TCVljdpypuu4Wx1zS4iwffrm7CspVw6YtLPcxlme+bq/fqO2s3dNzXTwcbmpQ82gsQg/+9ICmFHEDKuNv7n5cG6wxdBIdZq+bsIY5JyuFbIaWzfFwiPLoEhBz/URG/XaC0XpLQce7JpDCdY3Ng==
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=zdQgXa4klk+QWtP66Tp5e3WuEgtjSXvGsni9dLvLTn4=;
 b=hKuNk3q7ANL3XjdOeeQEUjOoCAV3Dtm/ueWEZ9qDcgSETuPwMOmQzh0Nk2Db9YSXqSYAb0xyM9h24phuMZwx260AA4CWfdCnPuYWOFDRRBydYbfQJyANpKFWdTxgMlu2ATUJ/n2fqsQ1h7A8HWGdeaMnIdrP3vwrLu0FS8mSDOduWu6jXtvIlSbFVbIhNlZQQ7j7fhWdJRIBzfYDe62qqH1MrkQdzsT7pByJLemZGokpvgJYQziy3vvZExtuIzPzbi6LLCUSEZbrZwlYADUtQbN0Qbvvs5TKxl5VJSBp+lmSWRsVIGkx7BF0uKNT/2f85OhmL0nJVhPMKyT+Ea65ew==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zdQgXa4klk+QWtP66Tp5e3WuEgtjSXvGsni9dLvLTn4=;
 b=EhHjFiuIrR4bOfXT82nGKtsvxOJlPy3HcXWe7scNjwqTmG2y1YRhbIBiBBpvjUWHDb6qyLiF69cjGJpRM/K2fpWx3smpQfOoWUcTknpHru+LDlKcM1EfFNMohv6KKvz0GD7tryHi6W29qltojaruFuJOnKNhW/uM7moWquD5aFMh6iIwwW/BZ1SV01+WqNBaEdFqhLw+CkTfe0laFAuIoRsMG5XWWRwaF0tm2/xXiouNYzBo4Mm7/Bqh23VR9DyrOObMAjoBRKXbK7+ySdK+OWG3Vj1qsjp1Bnf6lBZP/Xgowaf6vaHFL2JL2+lYxkj5Z6IKvt84r87xTeJvrq0a8g==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Jason Andryuk <jason.andryuk@amd.com>, Victor
 Lira <victorm.lira@amd.com>
Subject: [XEN][PATCH v2] coverage: extend coverage on .init and lib code
Thread-Topic: [XEN][PATCH v2] coverage: extend coverage on .init and lib code
Thread-Index: AQHcZh4iEvp6gRy5ukqEPh3CRoOuVg==
Date: Fri, 5 Dec 2025 19:34:12 +0000
Message-ID: <20251205193411.1368659-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM6PR03MB4600:EE_|PAWPR03MB9129:EE_
x-ms-office365-filtering-correlation-id: 230ae922-35c1-4708-2e33-08de34354505
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|366016|7416014|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?0lmASX1FubfLo/eWex9qlD/SHPyJOhH6ykHJ9K/0y4TcsNy9U1SuXopiXx?=
 =?iso-8859-1?Q?dwY9QPO/yB0+hNdgW0l+qo3sOyuieQzZ6ISFmbhjRaD9O3hHz3zMqZh7tx?=
 =?iso-8859-1?Q?L+TR9TU3giKyycmGL7R+mkm3AKYyLDnCndceO8ss4F1+T8u40cXOJF6BFl?=
 =?iso-8859-1?Q?UV4ik26ne0hmbIL2iYmA83bMgSDxDB69uGVEcNScyVsy/vQpNFCPNjFRld?=
 =?iso-8859-1?Q?lb+700ipEKzhGQGDH4EClaBjX6tlrMPnkxSIjyZqZVXN1s9v0gpo99X91d?=
 =?iso-8859-1?Q?VtbX+8jEknIlEZEoE0xDoB7Co2QG6L4o8NWBSN2xUD/twIq6BbIJFaz/VF?=
 =?iso-8859-1?Q?WwT9ECwi3zyEwgNJrNFFLzf2xWjtYpE8cVMbW9C4ZkP3GbeTSxAWNmOr7h?=
 =?iso-8859-1?Q?w5OkpfCWUfwLIBT7nUYC7KVQ/w9u7hCwNBo/HwQ1exzsgJhEB3RfM3tPqN?=
 =?iso-8859-1?Q?Z95TYk6z3EBSpROPux+rq8yRfQmV3OuupAu8hhdWoFwTTzyrthlOK5R/Yg?=
 =?iso-8859-1?Q?BZFl+24mr21c6YKJWCPvxFKdhnexu9HDcuhe9aJMxpW85OAWAKWWo4Dgwn?=
 =?iso-8859-1?Q?1LTckW6844KbcWpyqyEgU0MVhjG+DmFiK6Tur/XCMK/BvIw3t3rwxM7VGm?=
 =?iso-8859-1?Q?St9WBo3jAOLszxSzbe5nspD4pnPSMEZaEBo+kRad/lZ8Pz1SzwtPftLgZQ?=
 =?iso-8859-1?Q?KRFwx3MHSgLjzu1EkFOMVtxmova8vjygRVBEHbp+G1+BtQSfYYFsCIcL7g?=
 =?iso-8859-1?Q?cxLnAKTR8ZylDq+vCDGB05t+3rDDTzU6/u9k+2d12jfxFapex2WNyv4Eqi?=
 =?iso-8859-1?Q?LhlYM+JN/RC7vS7h8vKcTthg28L2/bo+YyuM9mRb/QxEbqDEbPSC55Sdlo?=
 =?iso-8859-1?Q?77Wf5fXxIaZHNBd0GFvI9nXk5D4RfWmrYaD1UTYw8QnoOB4WbxqGH0po7/?=
 =?iso-8859-1?Q?C9UIoy0VjzaqVrVaE1o4Tg+xI1ivc10NCeOzrN8jby1oao9zr6seLVMtfY?=
 =?iso-8859-1?Q?+BPZttHAeBLRX98UFMvG5SKQ6Bqhy0kIzm4N1Tb7DmTyi1xq0UbltGi8ML?=
 =?iso-8859-1?Q?GlWa7E+Xv8PsuIsigHM/mRaKNZIcvLp8OVI+eeJtPq6iiyXAqyQdUnvwUI?=
 =?iso-8859-1?Q?eqSqxJaRpuAN7xtbgYOk94/v/7GQuiGeHzWrI5T49+U7E9xSd8EFhpCF4D?=
 =?iso-8859-1?Q?dba5WjFZ+plo3ySEOVtpOIFWt23uJAuyakNfWbT9e1POEe7k3T+2xu06CN?=
 =?iso-8859-1?Q?2zR93zoaNSVJz6F7EIAnqBy+9QazRoSduJ7h4h0BTR/Lns7acFZd9x7BtI?=
 =?iso-8859-1?Q?UDTRhDYAJiKIe3djtyRJ2o+uxbflxxFG2QZ9GHYjufcx46lzp4GxuS4Bbr?=
 =?iso-8859-1?Q?cX7DaBUSeHXOTam0G3/JhSW6Exvg1ptcgErmHy2+OkiGetvEA8NnHMBjRu?=
 =?iso-8859-1?Q?w1B9Cu/qkHYLgmAV353bBa6RfQIDi9Nvk+lRZ6n+GbvaqBYbJJeRnXvlgR?=
 =?iso-8859-1?Q?DODqJ1HpY0bKW6wHxmfePpYb8tGf6KEnxp8V5RmS61lcf1ooJAQN3k8JyQ?=
 =?iso-8859-1?Q?NjEXFzTcBE3Vgcx8suLKus8I0Pfd?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR03MB4600.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7416014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?nBBewJFZhmyNIgpiXlTVxh4imLbg1Uloe6pM6p+B2faCzc1fuaP9COJ+xF?=
 =?iso-8859-1?Q?E92kjEUfbK0DPZcXcdYN3TR7/bJy2GYwV+LKIo19yk9CvzDUIDQQTevlpz?=
 =?iso-8859-1?Q?xf/69KEHXmop2Kj9xXjM+DBaJFTZ/x5Bb8giZJ6HIxFrfzDiJoNDEBgwuu?=
 =?iso-8859-1?Q?GuLL3jhE5ibHx/ymwoZG163poF2k3G+hFE0C/En1mztsf/PxGS63TgOiiW?=
 =?iso-8859-1?Q?yScCH0Sc5B1KJsOEA9p6mkwxDLKbYzww3xPhztss6bk0OGttp1WECQjFbc?=
 =?iso-8859-1?Q?qX6V/sk/IMZC3BDWMRmKiYCC9TR8sUBchcEkwqJoQUUdF0Uu2hImuuMmYu?=
 =?iso-8859-1?Q?wUIkEQDbiVFytqdS2Pw36k+9duQowhI8XQRk5WHUK/2khdX9Oixa3bca3s?=
 =?iso-8859-1?Q?LEHeG8NtdBwIB7TsWzdAxxFCZvw5mzhNaslf+9OfgHs/mMkdhmfUPkyzP+?=
 =?iso-8859-1?Q?52tKlH+StttW7ZnS3G+0kHoPxSTwQIvhVgAHY3ImSTDwXRkIPTkSdSYnsb?=
 =?iso-8859-1?Q?xUXSXLB3lJMqpWGDfiBH6UwZJVIvkMAZCPS4XN4U6cQ3bKoHlhDfHF0TUJ?=
 =?iso-8859-1?Q?E7wLNrxn5QCgD3StONIlMi3A9TPIgLDORgq+KaVCuBpUsdSWZSt18BKgez?=
 =?iso-8859-1?Q?CcA8G1x4Bo+pKI6mSGlA7J0i0QgCuMD/Gca1+YWTbES134ryicJvTNbiWF?=
 =?iso-8859-1?Q?qp9aPPoik9pUAjh+GIM0zj4AA4Ly8QlH6vJcfDPWR/8qgsU0Mz+CnK8Sno?=
 =?iso-8859-1?Q?8WWjkck0QTSIfo+gxrHxPgOQkev2w9BcVMORyWVtMxrs5tb+Gxb3hoK7WS?=
 =?iso-8859-1?Q?1IC7IBwBr6HvVpKW4Bh98SM6nY4ZI0Jn5St3+sxmcnm78BSznRzzT3b8rd?=
 =?iso-8859-1?Q?lRY00DghASUZnTfFZNtWxp5pNGUL4fZx7EFn8HdYLKLv7/DTBrRwHSYGcj?=
 =?iso-8859-1?Q?BtSVjIQjhdFZnnwT/fhUHoLTKWUgZeHqiXoo1jZu/LawMXkUmn2dET08FX?=
 =?iso-8859-1?Q?Lh1GHYcj8z8X2FG28W5br0Qsy18VFg20ZWV+YFbp0kfZK2Gpf5zxOMETxy?=
 =?iso-8859-1?Q?mVIWMPrkOhA5aPBSUr8qY2Km3gZJ17+2yS0ZSoc33VRNaqtheCPbhx6fgO?=
 =?iso-8859-1?Q?M9IAbCa9qKExkxwL1vEulIad+ygDoH7MXK3LkoVxd9+6sIJE+J+oFaD0y2?=
 =?iso-8859-1?Q?6uiEwPzJLXpDvEJTnnWoWAr7Za5kBoKpmCDbLSlgfZkC6SwoOOpWrgt2hf?=
 =?iso-8859-1?Q?btr7SGB5G7srRMjsCK52JQ3BSgzjj+meSMol/15No54r+HlSq6w1wU1RMR?=
 =?iso-8859-1?Q?EDhI6EOLR6mzrlIvDD5nw/3f0uFaD54hxp3zXMoGqEoJ4+yHokfQBKy5bj?=
 =?iso-8859-1?Q?Ox/rdgf/gtlNckIbyH3LoDgZ+qdM/n6zkO9j0us5GXAxHcSpuyIHt0SVO3?=
 =?iso-8859-1?Q?+L9wa9wlOCXv15YblR3ro5AUpslbNwocZOYIOM9Wg+1MK+1vnRZOYpfoiw?=
 =?iso-8859-1?Q?xhn4X+FzBcG19ObYs5hbWrhgQ1kEp45DTr/cyOwxv0EuZINhnGt/dzMqgr?=
 =?iso-8859-1?Q?OCIVPODAubOiob0GPqR1ZHj7f4zS7KeCAVO51ktE+dOP8D39yc9B62z3gp?=
 =?iso-8859-1?Q?QhqDI1OPo0Md1pqi/IIcFn4B0g+oECFnEzgpAN4lf6HfDJ3nCYXKbHXw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM6PR03MB4600.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 230ae922-35c1-4708-2e33-08de34354505
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2025 19:34:12.8535
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 20wm1K1OADc2+XdE+QbN2TqW6EhBypShZ40xa4uxGr5vlTwpl9Ugrdzsbj3smp+yf+w5Q7XchJRE0NBuZoRKiIXkUVUAI4W7r0DSDeGMB6k=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9129

From: Grygorii Strashko <grygorii_strashko@epam.com>

Extend coverage support on .init and lib code.
Add two hidden Kconfig options:
- RELAX_INIT_CHECK "Relax strict check for .init sections only in %.init.o
files"
- DO_NOT_FREE_INIT_MEMORY "Prevent freeing of .init sections at the end of
Xen boot."

Both selected selected when COVERAGE=3Dy, as getting coverage report for
".init" code is required:
- to bypass strict check for .init sections only in %.init.o files;
- the .init code stay in memory after Xen boot.

RELAX_INIT_CHECK/DO_NOT_FREE_INIT_MEMORY could be used by other debug
features in the future.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
changes in v2:
 - add RELAX_INIT_CHECK and DO_NOT_FREE_INIT_MEMORY, those are two differen=
t things,
   both potentially reusable
 - enable coverage for libfdt/libelf always
 - enable colverage for .init always
=20
v1: https://patchwork.kernel.org/project/xen-devel/patch/20251203222436.660=
044-1-grygorii_strashko@epam.com/

 xen/Kconfig.debug          | 12 ++++++++++++
 xen/Rules.mk               | 10 ++++++++--
 xen/arch/arm/setup.c       |  2 ++
 xen/arch/x86/setup.c       |  4 ++++
 xen/common/libelf/Makefile |  1 -
 xen/common/libfdt/Makefile |  1 -
 6 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index d900d926c555..8fc201d12c2c 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -39,11 +39,23 @@ config COVERAGE
 	bool "Code coverage support"
 	depends on SYSCTL && !LIVEPATCH
 	select SUPPRESS_DUPLICATE_SYMBOL_WARNINGS if !ENFORCE_UNIQUE_SYMBOLS
+	select RELAX_INIT_CHECK
+	select DO_NOT_FREE_INIT_MEMORY
 	help
 	  Enable code coverage support.
=20
 	  If unsure, say N here.
=20
+config RELAX_INIT_CHECK
+    bool
+    help
+      Relax strict check for .init sections only in %.init.o files.
+
+config DO_NOT_FREE_INIT_MEMORY
+    bool
+    help
+      Prevent freeing of .init sections at the end of Xen boot.
+
 config CONDITION_COVERAGE
 	bool "Condition coverage support"
 	depends on COVERAGE && CC_HAS_MCDC
diff --git a/xen/Rules.mk b/xen/Rules.mk
index 24f447b95734..c884a4199dc2 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -145,10 +145,10 @@ endif
 $(call cc-option-add,cov-cflags-$(CONFIG_COVERAGE),CC,-fprofile-update=3Da=
tomic)
=20
 # Reset cov-cflags-y in cases where an objects has another one as prerequi=
site
-$(nocov-y) $(filter %.init.o, $(obj-y) $(obj-bin-y) $(extra-y)): \
+$(nocov-y) $(extra-y): \
     cov-cflags-y :=3D
=20
-$(non-init-objects): _c_flags +=3D $(cov-cflags-y)
+$(obj-y) $(obj-bin-y) $(extra-y) $(lib-y): _c_flags +=3D $(cov-cflags-y)
=20
 ifeq ($(CONFIG_UBSAN),y)
 # Any -fno-sanitize=3D options need to come after any -fsanitize=3D option=
s
@@ -259,6 +259,7 @@ $(obj)/%.o: $(src)/%.S FORCE
=20
=20
 quiet_cmd_obj_init_o =3D INIT_O  $@
+ifneq ($(CONFIG_RELAX_INIT_CHECK),y)
 define cmd_obj_init_o
     $(OBJDUMP) -h $< | while read idx name sz rest; do \
         case "$$name" in \
@@ -271,6 +272,11 @@ define cmd_obj_init_o
     done || exit $$?; \
     $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=
=3D.init.$(s)) $< $@
 endef
+else
+define cmd_obj_init_o
+    $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=
=3D.init.$(s)) $< $@
+endef
+endif
=20
 $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): $(obj)/%.init.o: $(ob=
j)/%.o FORCE
 	$(call if_changed,obj_init_o)
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 22e929aac778..2a0b322445cd 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -69,10 +69,12 @@ static __used void noreturn init_done(void)
 {
     int rc;
=20
+#ifndef CONFIG_DO_NOT_FREE_INIT_MEMORY
     /* Must be done past setting system_state. */
     unregister_init_virtual_region();
=20
     free_init_memory();
+#endif
=20
     /*
      * We have finished booting. Mark the section .data.ro_after_init
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 7bbba76a92f8..280085c206a7 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -815,6 +815,7 @@ static void noreturn init_done(void)
     for ( unsigned int i =3D 0; i < bi->nr_domains; i++ )
         domain_unpause_by_systemcontroller(bi->domains[i].d);
=20
+#ifndef CONFIG_DO_NOT_FREE_INIT_MEMORY
     /* MUST be done prior to removing .init data. */
     unregister_init_virtual_region();
=20
@@ -837,6 +838,9 @@ static void noreturn init_done(void)
     destroy_xen_mappings(start, end);
     init_xenheap_pages(__pa(start), __pa(end));
     printk("Freed %lukB init memory\n", (end - start) >> 10);
+#else
+    (void) end, (void) start, (void)va;
+#endif
=20
     /* Mark .rodata/ro_after_init as RO.  Maybe reform the superpage. */
     modify_xen_mappings((unsigned long)&__2M_rodata_start,
diff --git a/xen/common/libelf/Makefile b/xen/common/libelf/Makefile
index 917d12b006f7..60b3ae40728f 100644
--- a/xen/common/libelf/Makefile
+++ b/xen/common/libelf/Makefile
@@ -1,5 +1,4 @@
 obj-bin-y :=3D libelf.o
-nocov-y +=3D libelf.o
 libelf-objs :=3D libelf-tools.o libelf-loader.o libelf-dominfo.o
=20
 SECTIONS :=3D text data $(SPECIAL_DATA_SECTIONS)
diff --git a/xen/common/libfdt/Makefile b/xen/common/libfdt/Makefile
index 6ce679f98f47..ae0f69c01373 100644
--- a/xen/common/libfdt/Makefile
+++ b/xen/common/libfdt/Makefile
@@ -5,7 +5,6 @@ SECTIONS :=3D text data $(SPECIAL_DATA_SECTIONS)
 # For CONFIG_OVERLAY_DTB, libfdt functionalities will be needed during run=
time.
 ifneq ($(CONFIG_OVERLAY_DTB),y)
 OBJCOPYFLAGS :=3D $(foreach s,$(SECTIONS),--rename-section .$(s)=3D.init.$=
(s))
-nocov-y +=3D libfdt.o
 endif
=20
 obj-y +=3D libfdt.o
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 20:00:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 20:00:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179414.1502913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRbyZ-0002Mi-8P; Fri, 05 Dec 2025 20:00:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179414.1502913; Fri, 05 Dec 2025 20:00:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRbyZ-0002Mb-5L; Fri, 05 Dec 2025 20:00:23 +0000
Received: by outflank-mailman (input) for mailman id 1179414;
 Fri, 05 Dec 2025 20:00:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=K96r=6L=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vRbyX-0002MV-Bl
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 20:00:21 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 03ba8575-d215-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 21:00:16 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA1PR03MB6671.namprd03.prod.outlook.com (2603:10b6:806:1c2::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Fri, 5 Dec
 2025 20:00:07 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.009; Fri, 5 Dec 2025
 20:00:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 03ba8575-d215-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OckyM6NU7ulgo+FzRNjT3odf7Qx2nMwadqcLGIj6PJ6YvVS5YgtnPAVinN2eL7wrg632LZPdJuTe1PVMUZyysx2m2Szz68RiGVrEPxNjdZLtZgoFcRpNGPajyxnPjCWP4E2jJ7zlKff1johxIupJYDIzu3IIZBcgpN3euzwJzwucloXpoXQC8ka/CN5texmNf4F05UpmFg80hK/emTL/lffLYfbJV3db/h/9NWelMQadLLHbF+Q/fhS+GCyEgAGa8VNOlUr6b1Hn9/o/raMc5PEeQn/49NBC4XnL4HFXtQ4g6dwjFZnF2V8NPKWHH106njZkCI/fb+B77NsPen1WMg==
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=IUYuEN88FCYSZ/MvD+Y54anxQGLQlHo4zz9YoEwoXXQ=;
 b=JmbAqqyePg0Kp7om4qsLKiAY3hEjw7p2IcM676Z17/ITrRbT2VDmFbyQVdLg58KhzWdWIBbdZ9hatwry6CpiXct9ML3ZROsrj5vwjZJbWtBRqUojhw/0bYfJZUGias812bggCnbVU8pHXp8tDwdEF8pW7c+QHlVTMtd7WOs6MacPUbLE2hoY370lw3lm4H9g1R8NeScqfCL048xlka8wEm36frjL+bESi0AsJvDB1cJAv3oYKbDYqGcQWyFv1e/EIEYAAC3iVr2LCoy41IgZDRz+kNqFF8yH/mjByudpKiaVU1lGkqAgJPL+4YYy/iB6epRPuw5PjPpxZMs50sO2sQ==
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=IUYuEN88FCYSZ/MvD+Y54anxQGLQlHo4zz9YoEwoXXQ=;
 b=j70TRVFRY0gKyzOF4iI5G1pOm1ox53olhfZAZp2m2s+cAIV7ljwS5Vv/LnusIcSySvC6GbQKZ1uFnOks8gKtJdlS3GqYGNjFHYYkkM7mXTI4487250HWz2PDrxjT0RqGV1KjJ8P0UhJ3zPuHiVXpo06518g6IbrKZSpMARoQoWU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d9a632d1-8587-45bb-bc13-8dab8d346cb2@citrix.com>
Date: Fri, 5 Dec 2025 20:00:03 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>
Subject: Re: [XEN][PATCH v2] coverage: extend coverage on .init and lib code
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251205193411.1368659-1-grygorii_strashko@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251205193411.1368659-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P123CA0027.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600::15)
 To CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA1PR03MB6671:EE_
X-MS-Office365-Filtering-Correlation-Id: f5aa73a6-b698-419f-33d0-08de3438e35e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|1800799024|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UldRVDhKTEZLbFFyVWQ3UTNlM0l0NVU1cU9GN0hodUY3S0djWlJpam9JbXVp?=
 =?utf-8?B?eXBkbmhNUlpZaGNWb2VjMFZGeVdUSm9qSFBUdjNweWV0VS9Ua1lGWXRYOVJE?=
 =?utf-8?B?UlN5UlRZbWJaRkxkb1lLaUxndXp2QWJBY3hsdU5kK2l6ZFdhc3NDSExTMm4v?=
 =?utf-8?B?ZEtSb0U2Zk44cUZiYmxEQXg2N0NCUkRxVzdtaXhhWXZaTy9wLzZFSDFneFdQ?=
 =?utf-8?B?b1ZmQy9GS3ZZTkhERE1ReHlYaUtNUnkveHV4ZjNoQ0kzVHJOQU12ZElBRVdT?=
 =?utf-8?B?eDk4RDhMVCtzblh2eWdnV2RhMzJQY1pxWG9iOTRxZjkxQ3F2dVI4bUx6N01T?=
 =?utf-8?B?RkdYV3A3RlFkbFVuUFJ4ckxIcm4za2Z1aTk1d253UTlBNDlxY0lpTG9jQm1O?=
 =?utf-8?B?TXBOQkcyQlhLVENtZWFFR2R2dngybTJOZ2RQQUJLYnU3U3g2T2RkcnAxS0xW?=
 =?utf-8?B?WWRBSG9BcHdicWs2Tjh0OUJ5NytPZWc0R05MWU1OK3dLbjNsbUx1TXFBNzlS?=
 =?utf-8?B?bWFZWDRpbWJYRUtaaG9Sa3l1Ry9VQW5NTFpvNktRUjMrOFBOUEdhREdwaFFR?=
 =?utf-8?B?NjQzVk9USStlNGJCc1cwZHlRZUEvdit0UDdkK1JFSFQxOXhKcTNRa1lORE1s?=
 =?utf-8?B?Tm9ySnlKSXJwUU9SR1JQOHZMaEFSOEk4c3BrOVRsd2FkV2JWbXZzb1VRZXlP?=
 =?utf-8?B?TDE5VlRtckNYKzk3RGNKSHR5Ynl1VVpWRWpUaGlWeWZKNFo1eEEzYXJVMWlY?=
 =?utf-8?B?cGFvaDk1TC9vUXhjb3phVnJEMTdEcC9nNmQxaWlQQ2ZhT3lxZ3RTKzdvekpq?=
 =?utf-8?B?b2pFR3NRbUlqRk5la1NjZ1pRd0cwam1jMDJJMi9jOWc1UUpsNSsyTmtUejY0?=
 =?utf-8?B?NG01a1NTVFNvOENSdnJERyt0MU9UdCtoWk1LSTRwOTc0Y2ZhV29FZ1dJaE1y?=
 =?utf-8?B?M2ROVDB6UWFBbmt6eDNJREFQRG50WEs1bm42WDNoZkFSTUVrdThqK3ZYbjJY?=
 =?utf-8?B?ZWhTQnJXVTFkUjBPUHRoSnd4bTNKUUN6Mi94K01rK3lCdlFlYk9KbUR0VGhh?=
 =?utf-8?B?bkorL3lrNlhxZmJCdHk2RGR4RkR1OVF3Qko3dWtYczVadzFkb1BkTVlUWXlO?=
 =?utf-8?B?cHhjbWhMM3ZuUWxTSmdFWlE2S3AzZG4ycHoxZmVXZ1RVS1A4R2cxWlNhVnUx?=
 =?utf-8?B?ZDhBei9lYkR5VFUzTktMbFYrQjZ0WmUzUVprLytlUG0yNVZQV3RXa2tqMUdp?=
 =?utf-8?B?VjZIY0VPeVowbTBpUmliMllDZ2xHWlVHZWdhbGJBbjB3SWN5WEpMSllyQWdj?=
 =?utf-8?B?ZFM4L2thWW9KTkR6WDFiem5FQU4zZysxZ0dMeVdVb3NmNFNsUWlTQUlpTkRS?=
 =?utf-8?B?RkVEUHNNYW03Q0JPNzZYS1Z0U1dGeEZHVE1qZW14VEJaWHNGdUI2S3gwWTlT?=
 =?utf-8?B?NllkNzAyVU5rTWR1TGdHTmxJMmtNQmxrdTU5U1JyMG1UWjNNYU84a0ZxQmZU?=
 =?utf-8?B?RytqNE42SEt5dS9yY05SMmtpemRoS0FpSUtMbGcrUm0vVkQrb2JsaGNQUFBw?=
 =?utf-8?B?UHF0VG43cmFscVp1TlBKZ0pYeDRHK0dTSEhIeUxvazlZZnZOSy82YUhmdmQx?=
 =?utf-8?B?K1J4QmdQcTBXWmRmTWFHZ0RTdGRiM29lOU9TRVVuWWlWbnhvSEEzMmN1TWhT?=
 =?utf-8?B?T1lSWTRROW15UkJzYVA0Um5HRkhqOU43TGtiYWZSLzM3elY4bWdJeXJoN0Nr?=
 =?utf-8?B?QldwSnJYLzJVR1hBaWJsOHBLVEJmajd5d2N3SXhNZ0xXYzcxaVZ6ZnhxOGkz?=
 =?utf-8?B?ZDdBS1lHbCtRN1FHckx0T2Jxdy94S3VXUlMyZWx4UG1IZHp5MSttN2hEb1dp?=
 =?utf-8?B?VTg2Vy9lV0NaRjBVcW13d3dVTWFEU2c2ZkFpOVRCdmhGb0ljUFpvam9wWXQz?=
 =?utf-8?Q?8GuwH/fffOsDU1pclVyUv2g3k5mOaYf6?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SWI1TFZXVGFWOFdFOFZRc2F2dFVEZ2h1eGdOQU8vNlhiMFFGWnR1WGVlRlE3?=
 =?utf-8?B?enlBakgrc3FEK1ZGTUJaSEdtVTlFMzlUM1B0NTQ1ZllySlRHQjNVQldDcjds?=
 =?utf-8?B?V212TnJQT3VnSGw1bUNiVVV3MFJtajFVYzRsT1Y3bWJ3bm5HSm9xSDVSSXNG?=
 =?utf-8?B?eTUxNlhjRlRpckJLTmJPMzNIWDVJeW5xTnFYcmdoYUdmTXpUY0VQK042OEtJ?=
 =?utf-8?B?OXhNTlF0Tk45YkdLRXJxRXBkVy9lN1llU1J6SUl0NXVRemFzSDlSOVZGclhV?=
 =?utf-8?B?TjJrWmMzcTFZTG93RVJwWDZISkErU3h2ZHpxU3RZQTV5UDEyWUxyTU1OU3BY?=
 =?utf-8?B?WGdnaHBwOURYRWJ6QjBrb1RjMS9TemxkbXZMVHRKaXdPRDJOYlVyNmtzNUhE?=
 =?utf-8?B?UWk5ajNkcXVmbkxjQTV0VzdiSXNKb3lXbExWcnJlaTRrMTBTTEo0Vm50OW50?=
 =?utf-8?B?aUhrRVcrNmpEYWl1bWd2dFRiYzhVbi9Fa0ovaDYrMDBZNDJOem82Ly9MZ0Q1?=
 =?utf-8?B?eWVYU29VS29FRVM2V1ErV1BWZFV3SE56S015TGF4c0NPTmdUcnZRL3c2MnNp?=
 =?utf-8?B?UnBrajI5S000ZFVHMmVhZFBlUk9sRGZGZU56WGloU0l3SS9OQ2pKbnNlOElX?=
 =?utf-8?B?cXNiU3pKSEtjcWs0Q3ZLbTVHdE56REcwRmpuOEJrQ3N1cW5SaDduK1dOdXJF?=
 =?utf-8?B?aHpyR3RrdjNSeGNESnNNblB6YjBtNFBtN1MvK0VYL2t1alFSMUhOdzlGK1dD?=
 =?utf-8?B?dTdGd3BnNVc5LzJzTC84N0dJRWFGVW1Uc1lVbm5tZ0hscDk0bkZDWHVGaCtU?=
 =?utf-8?B?MmZLYVJlY01BVlZSUURZd0ZxNkVjUHV1ekJqMXJIS1hJUkN4akJSaG82WGtN?=
 =?utf-8?B?QnhuWUh3YThaQUYycmNzek8wZCtyUFAzQnZCeDlFdjg3emh1eE1oSWtaR1dV?=
 =?utf-8?B?SGN4WjJCU2k2NnpncHVMekp6YWdkYksyaktjYWV4cnZCWWExT0JYaDhZeDFV?=
 =?utf-8?B?THZFRGRiTnZUN2krcEtwMXh3T2FzaUJYTTc2dCtsd2pLMmhZRm5IaSsraVpV?=
 =?utf-8?B?endTOFEvaG1HZHJwc0ovaXU2S3VJdVRtMEhNaDJkWlEwNThacW1oRloyajYv?=
 =?utf-8?B?M1dva3VzZWlKaE1WdG5seFpsb0R2aU5Kemp1V0V5T2dsQkltN25oRkd1d25o?=
 =?utf-8?B?VkJRM0N5SkROL1BldlYxM2d0V2RSMjl0M09FY1BiVXFUNytXZVJINkFUODVW?=
 =?utf-8?B?YVl0VUlJZTAwbGxqb09LazUreE5DWFFHOFl1MzZqUklKS01SVnZxcUkwQ3F3?=
 =?utf-8?B?emU0cWFheFFqYmdaR1Awc3lNZHYwS2trNm1aTjJMdWhMKzdyUmpDdVdlalhH?=
 =?utf-8?B?VVVBZmJHUXFtb1ZPUittSDJYUGN4SHNiTi9PVVpKZVhxdk1JVkFWb21WTU1a?=
 =?utf-8?B?eTBqcDRzUnJ3eEt3MWZBOHhtajhNZEd6Y1d3OGJNdXBBWHl5Y0pnNTlZNmhY?=
 =?utf-8?B?cjZXSTBGTzJrNWlxTTRmMmZDNExlSVFKTlFic3pQdFJqTVk0ekRicEgyYUVo?=
 =?utf-8?B?bER0SUtrK3gyL01yUnVpa3hBWWNVU2JpNVd5Qi96dUNXVzF4dWxwQndWUEMz?=
 =?utf-8?B?YzlaMUx5YVNyajM3R3JQVHE5Ti9Yd2hBcW8rSUk3SDNYRFFoMW8zZW5KZ0g2?=
 =?utf-8?B?cXNub3E3RWhSTW0rd3FKeWdYN0svdjljU1g4NXJqOFdFY011ZFUvY3VBdXJP?=
 =?utf-8?B?SmpsVUE4QnJaQW5sZXBKbCtuRTZqOUZRcE1jNWcwQXpmOWovZy9Pdlh4bUhm?=
 =?utf-8?B?eEpHeU56dVJLVThhblFicTZOOG1LaVptZEJKN1VxZXZjQ0hoWWNsU3g2dzZG?=
 =?utf-8?B?ZjNmVlBmdHZrREJ0TDdVQ1oxME9JeHJHcFNJRStueG9XZ2pYVFJvQzA3YXFX?=
 =?utf-8?B?b2FZbDZLNHpuTHUrQkVscnQvRytFWXdPY0p0Mmg1aEtCTXNBMDJ5QzFtU1Bl?=
 =?utf-8?B?ZlhRWGtVVFRyaE45TmFIUURrckNYdXJRcTFxRk85TmwvSE05d1hFdjdublVC?=
 =?utf-8?B?bCt4cytvdUdFOW90MHl4VFVmSkhGbVpqbDdxNkYwb1cwSkxWd1g2OXJwMzFu?=
 =?utf-8?B?QWpaVzVHT2JRaXk0UENNWitLT25qL2x2ck5TQnhvdkRTTlcvMWZKMzB1Tnc1?=
 =?utf-8?B?d2c9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f5aa73a6-b698-419f-33d0-08de3438e35e
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 20:00:07.2136
 (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: 7NBlG5hqKmk9E/lJNpD4DwHmZxNnNAj6/7qnk3/7c692l1mn767L52RjqsPGFyYalxQR/2rBpEuxKLzoGSV776WbFUKrk97/gcGB2UyjFMY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6671

On 05/12/2025 7:34 pm, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
>
> Extend coverage support on .init and lib code.
> Add two hidden Kconfig options:
> - RELAX_INIT_CHECK "Relax strict check for .init sections only in %.init.o
> files"
> - DO_NOT_FREE_INIT_MEMORY "Prevent freeing of .init sections at the end of
> Xen boot."
>
> Both selected selected when COVERAGE=y, as getting coverage report for
> ".init" code is required:
> - to bypass strict check for .init sections only in %.init.o files;
> - the .init code stay in memory after Xen boot.
>
> RELAX_INIT_CHECK/DO_NOT_FREE_INIT_MEMORY could be used by other debug
> features in the future.
>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
> changes in v2:
>  - add RELAX_INIT_CHECK and DO_NOT_FREE_INIT_MEMORY, those are two different things,
>    both potentially reusable
>  - enable coverage for libfdt/libelf always
>  - enable colverage for .init always

This is a lot nicer (i.e. more simple).

But, I still don't know why we need to avoid freeing init memory to make
this work.  What explodes if we dont?

> diff --git a/xen/Rules.mk b/xen/Rules.mk
> index 24f447b95734..c884a4199dc2 100644
> --- a/xen/Rules.mk
> +++ b/xen/Rules.mk
> @@ -145,10 +145,10 @@ endif
>  $(call cc-option-add,cov-cflags-$(CONFIG_COVERAGE),CC,-fprofile-update=atomic)
>  
>  # Reset cov-cflags-y in cases where an objects has another one as prerequisite
> -$(nocov-y) $(filter %.init.o, $(obj-y) $(obj-bin-y) $(extra-y)): \
> +$(nocov-y) $(extra-y): \
>      cov-cflags-y :=

This could become a single line now.

> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> index 22e929aac778..2a0b322445cd 100644
> --- a/xen/arch/arm/setup.c
> +++ b/xen/arch/arm/setup.c
> @@ -69,10 +69,12 @@ static __used void noreturn init_done(void)
>  {
>      int rc;
>  
> +#ifndef CONFIG_DO_NOT_FREE_INIT_MEMORY
>      /* Must be done past setting system_state. */
>      unregister_init_virtual_region();
>  
>      free_init_memory();
> +#endif
>  
>      /*
>       * We have finished booting. Mark the section .data.ro_after_init
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index 7bbba76a92f8..280085c206a7 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -815,6 +815,7 @@ static void noreturn init_done(void)
>      for ( unsigned int i = 0; i < bi->nr_domains; i++ )
>          domain_unpause_by_systemcontroller(bi->domains[i].d);
>  
> +#ifndef CONFIG_DO_NOT_FREE_INIT_MEMORY
>      /* MUST be done prior to removing .init data. */
>      unregister_init_virtual_region();
>  
> @@ -837,6 +838,9 @@ static void noreturn init_done(void)
>      destroy_xen_mappings(start, end);
>      init_xenheap_pages(__pa(start), __pa(end));
>      printk("Freed %lukB init memory\n", (end - start) >> 10);
> +#else
> +    (void) end, (void) start, (void)va;
> +#endif

For both of these, the preferred way would be to use if (
IS_ENABLED(CONFIG_DO_NOT_FREE_INIT_MEMORY) ), which removes the need for
the else clause in x86.

Also, you make free_init_memory() un-called on ARM with this change. 
Depending on how the freeing-init question lands, you either want some
extra ifdefary, or the --gc-sections option that we discussed before.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 20:36:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 20:36:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179431.1502925 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRcXh-0006OZ-Q4; Fri, 05 Dec 2025 20:36:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179431.1502925; Fri, 05 Dec 2025 20:36:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRcXh-0006OS-Ly; Fri, 05 Dec 2025 20:36:41 +0000
Received: by outflank-mailman (input) for mailman id 1179431;
 Fri, 05 Dec 2025 20:36:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rowU=6L=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1vRcXg-0006OM-Ls
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 20:36:40 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 171d36f2-d21a-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 21:36:35 +0100 (CET)
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com (2603:10a6:20b:509::16)
 by AM7PR03MB6182.eurprd03.prod.outlook.com (2603:10a6:20b:140::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.12; Fri, 5 Dec
 2025 20:36:31 +0000
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb]) by AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb%5]) with mapi id 15.20.9388.011; Fri, 5 Dec 2025
 20:36:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 171d36f2-d21a-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CdIyAYJ292A9DvCHtLkfRCP9fjUu8lKLZYPRkk32B7NvYx7mz0dLVNw21ddyjMNxB5pqQ1csUTqCY0zeQWhV/WrvLWMsjnC3Fk8OwSZcxyFCwGcz9kN9PrIwQMWdeYUqYAYtVwufNNk4xMPPrz/HyVMV95RD/+7dv2sWHnyTr6X7H8g5Xi4ARbKiRGz/Bjfyf1JKjd6fAlCajgAn1jsVgwww1XbTPAx/WP4UfcrRhmbBffOwOK9Ltxrxpm9OI3jeUoWEwnU/nvYsxg+jFE1haTFYLKjdpnV/VAzzkkIFAPfhmOODfowNFfakl65IbKI62q28yO6sI1VuH5+DCSC+Rw==
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=RA5BhbhYY4M/JOIT3p9VQwyw3l0aCB7jasnjvH8F6Xk=;
 b=LRa+oGqKLHoYboaVVyyWNhExx7jVozv51IdmOR7UVwplOOGuU79WLJF9yph7IwnrAbfQItdS1JO5O4B6mOQY9wpI6uTeROr5dJTM+MCrkEUV/gCY8B3ObZSrBvx9mBkUyahQKl23rrxiWQw5vqoh6pl98bZ+xdyV7ixbjvxbvyEeMRoSoiG/i3ZJ9ff5UgUznj8FSRBASjd6/E3V9TteX3iEn9kVOdVfngjmmjWCMpwm+hkbSa1UX8JTL8hfPq3nrM7AupqRMCtUu3yUCKVPWyeFWuq2UfgmyYW2Y44ctfJ6bu+uc5z2nLR6CunPBi5TDSld4gKXUY5Hq8fowNVdxA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RA5BhbhYY4M/JOIT3p9VQwyw3l0aCB7jasnjvH8F6Xk=;
 b=ILfDqAgtG+K8A9r362laSsee9vFvaYGAJ9o63+V01yRWFgcAnC1U58KSwblTLBK81BtwJeUjzuySZMADzM1nqv8tRDmb1mGPYpas5kFI1DDG3jN1c0il3T7ipYVksLJ7PpYDtUi2781xBRXGsMyJ+PA9o4t9bybgk0ITV80zOG3ABR9FVSP7/fSfrL0axlKu4zq4GdJxFdM6FLYXUd3oox5SL0Rrul76Sq7T2a4/TinBQX3hBHQujtzRWMIW/n69SpW518xpD76LJ86wwG07aZXNZXh+LsQ/yqa13OPW1NeMJodY8umn2kNj5QkFeVRFP4lRjm9nIrWn30w7XXc7ZQ==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Milan Djokic <milan_djokic@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH 0/4] Align handling of domctl/sysctl unsupported commands 
Thread-Topic: [PATCH 0/4] Align handling of domctl/sysctl unsupported commands 
Thread-Index: AQHcZibWGCY4W4S370OKBLIMh6NLpw==
Date: Fri, 5 Dec 2025 20:36:31 +0000
Message-ID: <cover.1764961645.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS8PR03MB8322:EE_|AM7PR03MB6182:EE_
x-ms-office365-filtering-correlation-id: 76d6af85-2610-4c89-6c92-08de343df991
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|7416014|376014|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?ILC+NtPJOBzaz/0FdAwIILRzZaqYRlEHJ9pMmHLAafBudUkHbVyNWyJs5+?=
 =?iso-8859-1?Q?v9pkaTID6kn5qSgacgXmAk8dwHatqVLQEFdrPkyLjK+zxYK50BEc/yu/2J?=
 =?iso-8859-1?Q?oKggvKnVGVweTKdV/bdhoJskKVlm4YFc1NTKge9TpRZUKmc9arMpgoMCgm?=
 =?iso-8859-1?Q?M1mcaOuQNaca5bIcLuXFRzCyILTl8u2C7/Bwav8JrJVEQ24jAcDgwe9+dx?=
 =?iso-8859-1?Q?cskR9WKERJs4bJ3Tmor+OdVodkjyOj0rMc1NLkhN48B4lq5g1hLRsmZx29?=
 =?iso-8859-1?Q?ysyXmynD8bu5gIwOABohfySDFureeAQps23QaJ4HdmO0i0ifS60a6cJGIl?=
 =?iso-8859-1?Q?LHgCSqE9SZYk/yKwCOcx4CEleAaB81lHnfdseLh12A5NYA3thAuP193Sm2?=
 =?iso-8859-1?Q?TELhdBPS2b7ubgDIKlwbZHLiPBPqdRBtabcFw63n2jVFLKvuE3kL0dJvWz?=
 =?iso-8859-1?Q?XiogKOjj49Eo8BSamT46qaZDaqXmd/kUfFGuoH0B1GbCd+Asj4L+imBwZ1?=
 =?iso-8859-1?Q?o9aFjQHu8VnDAB9KcoDKdbHlTeOZRX1y8XWKeZe2bjm9IZPZKXS5G1K5pR?=
 =?iso-8859-1?Q?bJdxcWMSyxNAtJgty2OXeDGy+chA03mVMfe14vYUto5bG6cKQkidLFLqTV?=
 =?iso-8859-1?Q?dLFOgrY0C3Coko1hwjF3id62FoeaIuJ+vuTJABf5dPubkKtkNmcXdbYhlG?=
 =?iso-8859-1?Q?oBZXSYYzBc248jGV3oG9lJQ+AgSmHTGx4w4EfkYLNEtD5wLJYsUkfBtHvV?=
 =?iso-8859-1?Q?M1aTL1b16B9M+E3DURUhKl0P5Or/Jn3m6sUCoVIV2bzo8rYzs7r7w30wIl?=
 =?iso-8859-1?Q?SIhOG+8MulAZSE9eHELN1j67y5gYOTvL/NSv8v9Ikpof0raJNrDkk7/u48?=
 =?iso-8859-1?Q?Bzb0BPEkgPTHuqvhAYslK6wjturQJ/rgqJVvxrnZVnGj+jBYUz26Lenvsh?=
 =?iso-8859-1?Q?jjJvzDiV0Qh56nRJlDDi5Z5uEp7ogpKO/Mnr8hZlH5QhwJwsCGwyEvF3an?=
 =?iso-8859-1?Q?NfmeMOKF9iHB4XDCekKKtELVglxU9SOJF72yPDWyYUCpj3TkF4JpgyF+Go?=
 =?iso-8859-1?Q?fKeAT6NjRvao5tRDudteJVrlXntZ0Y9VEFl1aBZuRmGt6MCt9815pcUDS4?=
 =?iso-8859-1?Q?q4ksiKiD5if/ngoPZq1nxiiHM9tEdkh6I2NteOqo4/wt2am3CZkZKdtAue?=
 =?iso-8859-1?Q?b25Zc2Bvo3J4nE36O1b2/Ieo2lz7cGgwmipwlPM/+Brecm6deJkfvHugGT?=
 =?iso-8859-1?Q?JDH8WEsSpX7GyVMIoAwb8jLUPjjUpCmHw/wNYjnwZs0/enNvQgYf0LR/QQ?=
 =?iso-8859-1?Q?+L34R+8NOcUr9h24OI34VnCJ9/2k+Au79IMBCWxM5scvodV2yYOYJAOcr8?=
 =?iso-8859-1?Q?YlBUl8llsFLQJxRsJ1CQ/XhAVY1H7uMpoLFBKXmqg1bAWpNnwjBW+2fuIn?=
 =?iso-8859-1?Q?VcspEpW274v52+28SaiwCovMyK1gfTCbUF814xhjfAy3Fi6ZKU4Ha4uDXr?=
 =?iso-8859-1?Q?v6WPSHhAPP4kQI0k5hP4CFhtwsus5DWbSdRrJ5b3YL7jIVH4ehruRcNjUR?=
 =?iso-8859-1?Q?XQ0NLs4laVTW0lOp+q/mmqaY81VT?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB8322.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?ZTML2IXd5CL8lyFybzG+0lL5NAVZwGPLQ+guf/hQFxQSwVe7husN78Suid?=
 =?iso-8859-1?Q?qtH9sfSbvGX6ot/2AdJByha7PxxSpIwaAVJwHQ9aIyksOHVrbz0qQDo3TT?=
 =?iso-8859-1?Q?8soJjQ4JaPsqZ1Z7bhjmal4CLVpVRLq7QIyKboFWtMLckpX0adYZg/sTwK?=
 =?iso-8859-1?Q?ULlCdEqPK8a8e0I8cJnYT8xtE0p6lfwSYJt/jizD3IYhw+QPK6Iu6IrpCC?=
 =?iso-8859-1?Q?OxvdwrzoOjC4RAW5sM0xJZUTYL/lBleQ5AplGhwqj2R8/4EH+T5D62y4uH?=
 =?iso-8859-1?Q?FiFTx6Mwn8yaB3XCjQlGRto1tNWyHTYV8EfJJ9G3XJSfV8jNFsh7vIZ2hl?=
 =?iso-8859-1?Q?HOF9K1fsbOoCysceHSFvRW57kcu0nsXwFzgCMfaccibcPuzNhDnZHmwGKO?=
 =?iso-8859-1?Q?7/BtIEoVPqQuebQtebXOd0CA2WtPtC1sxQ/wFYta0i1rNNT4/bmazDQY/a?=
 =?iso-8859-1?Q?Q3mNKg399HRpXyU9JMHuJ9r0YxDRaGSgCsguDbLzfu/f30zjvun0QeVdb7?=
 =?iso-8859-1?Q?csQoI5qFdKXanqMPZ4dy1GJQ75B6GrYwj8ftSf4UXjB8WlqOpOWqK22APS?=
 =?iso-8859-1?Q?PfKnPSupppcObFguPKIlwOQjErVOWIWrW/00IQfeGCX0viJN8K3XEYFP1F?=
 =?iso-8859-1?Q?jxJqu8AiSimQKLX8Fm3yhJKHu5tx7oYEppRtZ3DeIhb9UAGX+XGHWShs4n?=
 =?iso-8859-1?Q?tSnL7Es+UF429aNM0u+L3lSAklT3dbi3IVv0q46iva2J0WaH/gDZOhlQxj?=
 =?iso-8859-1?Q?uONmjNI/uZzJ9pjyjZPIzFHo2WwX8MdivfH5B0CLqu+wjhbWhqnIiw/lEG?=
 =?iso-8859-1?Q?qMfTK6ex8Oj+jwkR94SZeU/kl+/BIWULmcM5YV6slK1FnnkqaLdfYX7oDN?=
 =?iso-8859-1?Q?tLeFGigHpC48KQRlWzWCELaao2+ndO+uIxcW3hIQN4riPsXpEBcnFkKrAr?=
 =?iso-8859-1?Q?PJvgQIaoi4XiZaYRery6DrD3X/8ySUZ3dbNWvbFc/WynxlyYfWiiogho6A?=
 =?iso-8859-1?Q?m8ygBKOMI8MN0F4uyJba8JAyPr3UzhpEgL9F3i3wKGtW2+2nL33UodvoLt?=
 =?iso-8859-1?Q?/JUqEQ4JCkqgc/WVikkg0DQzQP37npMyEe1f4S8KZpFO9wUAMQH+CJRLeb?=
 =?iso-8859-1?Q?Ie8hd6jIMcrK6Fk4F6OMQagPI+EoKrY6y+EaE8qjqFjHp2p5N8Qjke9Gpx?=
 =?iso-8859-1?Q?K57WjLErDRjCZ16Q463poMLlPvLxmEETNbnFy9rFIycIKHKr1THy83r65O?=
 =?iso-8859-1?Q?7svcZHzoxMJeQwCRaVhkOUQEDUiFEXfB/0dCvSPFdqiQ2meKByHC/DDSck?=
 =?iso-8859-1?Q?HgGAz7uM5cDLdtQcSaz/j2hTwu/W/XFYhLkY4cilq02+RNCBhwGk2gkwpx?=
 =?iso-8859-1?Q?bHdn2BAK3HS+CmbJkORSR31JhvUdlu3JOcel/f/f6FDemE35Uno4tvI902?=
 =?iso-8859-1?Q?4qyRSQ+d/LcFvGnSle7dUGeLlN94kkRko0K4sxrtYlC1Uya8eoGgvJQYRZ?=
 =?iso-8859-1?Q?qCLJRChlLi3YkjoBcom7TfoiU+vIbVPl5DmBD95WZg39eLXPP4cwMWyIRY?=
 =?iso-8859-1?Q?quO/noKK7ncIEzdL5f1r+qUjp4g5w+kNBr+THf0k8fpFq3JQZY90Wp0Fuu?=
 =?iso-8859-1?Q?2YO7yxQhZUqHpU3660CXuv2bLMGQC0ilAG?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB8322.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 76d6af85-2610-4c89-6c92-08de343df991
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2025 20:36:31.7425
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: OEYdPtwhiHBxfe2Hpkyd6rpKHEipEdPtzr7daCZuxCxeHDxumWM3jz19u8oPjSgAottWsr4mAwss45/dOnFjqg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR03MB6182

This patch series provides minor updates to the domctl and sysctl handling
of unsupported commands. Currently the behavior diverges: some commands
return -EOPNOTSUPP, while others fall back to the generic -ENOSYS. =20
This series aligns the behavior so that unsupported commands consistently
return the appropriate error code, allowing the control domain to correctly
identify unsupported operations.

Where possible, IS_ENABLED() is used to detect disabled commands at compile
time, enabling dead code elimination.  For commands where stubs are
provided, the stub functions are updated to return the correct error code.

The only exception is XEN_DOMCTL_irq_permission, which cannot use
IS_ENABLED() due to PIRQ-specific structures being unavailable when PIRQ
support is off.  In this case, classic #ifdef blocks remain in
place.

There may be future updates in this regard. This initial series is intended=
 to=20
get maintainers' feedback on the approach taken.

Milan Djokic (4):
  arm/domain: Update SBSA_VUART_CONSOLE config option handling
  domctl: Provide appropriate error code when PIRQs are not supported
  domctl: Provide appropriate error code when VM events are not
    supported
  sysctl: align handling of unsupported commands

 xen/arch/arm/dom0less-build.c     |  4 ++++
 xen/arch/arm/domctl.c             |  3 +++
 xen/arch/arm/include/asm/vpl011.h |  2 +-
 xen/common/domctl.c               | 25 ++++++++++++++---------
 xen/common/sysctl.c               | 34 ++++++++++++++++++-------------
 xen/include/xen/livepatch.h       |  2 +-
 xen/include/xen/perfc.h           |  4 +++-
 xen/include/xen/spinlock.h        |  6 +++---
 xen/include/xen/trace.h           |  2 +-
 xen/include/xsm/dummy.h           |  4 ++--
 xen/include/xsm/xsm.h             |  6 ++++--
 xen/xsm/dummy.c                   |  2 ++
 xen/xsm/flask/hooks.c             |  5 ++++-
 13 files changed, 63 insertions(+), 36 deletions(-)

--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 20:36:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 20:36:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179432.1502934 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRcXm-0006cP-Vn; Fri, 05 Dec 2025 20:36:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179432.1502934; Fri, 05 Dec 2025 20:36:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRcXm-0006cF-St; Fri, 05 Dec 2025 20:36:46 +0000
Received: by outflank-mailman (input) for mailman id 1179432;
 Fri, 05 Dec 2025 20:36:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rowU=6L=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1vRcXm-0006OM-5O
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 20:36:46 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1ce83b1a-d21a-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 21:36:44 +0100 (CET)
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com (2603:10a6:20b:509::16)
 by AM7PR03MB6182.eurprd03.prod.outlook.com (2603:10a6:20b:140::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.12; Fri, 5 Dec
 2025 20:36:42 +0000
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb]) by AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb%5]) with mapi id 15.20.9388.011; Fri, 5 Dec 2025
 20:36:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1ce83b1a-d21a-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CKm3mAZ7hEXoJ5rHtfeeOU728sqESQjmyFUgxNxkDYnGE60w6EUeoLP/fPtYzZc1dkdtQuVRkrjvHS92m5mVvvq0mSMTOyoqgTCtXqh4Bbg+Bwau68JVE44OSov3VPtXr75JDp/pcF7TOdKKOOQ/JHPCsmDXKDzxNlEfQyyDjztpM/AiETK/XzzIUsqYk44GqCUBEKVpwP8wClhFATbDx5i+EKYxqr2sNhriEOUUdnBs2ze+cOVHh4+MhJMpwP4jTHXIgZVGGRU7/dSgr3vlcPKbqr6hQ5Xnutb+6HbwSZC+lG153HPBb5k4t3HuslVnF1SBGZr0lNbMmyIeFHIENQ==
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=H9U3lVm3LdZ4OeMGAuKbjx6qHerHHmDtfUlIblUbFDM=;
 b=mURkJR74nTDr7U6KjLSby/vonmgjo6LuM7lBnKrwN92e5ZH9S/nsAnKOzKav8WrCLypjaAWSszwMww8/9RFO0QbIdIL5GnO2NlSVL8q1p09WYBRA0sCMqlPO2AFCcuMCzdUa2OviPB5/c4nX4t+3V+i/HIujRyzCqHla6HuJMGAEThTqs37N6QcFr0DiPA/4Ah+L/CgZpXDhha455ZPbqkaE9KrgQU5pgyyKtEQvJyJQ3EwzKv42jZa9Ww6MBCul1oVNm1PKVlvCy4UHdgAqqw+CzK8sqS72XHyh9OSwjlIkMnpRxCp0WPVuc+7RcZHzmzbyYMRP2O9l2HFaLgZAXQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=H9U3lVm3LdZ4OeMGAuKbjx6qHerHHmDtfUlIblUbFDM=;
 b=XdvMka9bHeZ5hjsPAFtORMxwqBzqzPYWSIp4V4+VFpB40B3z/NCqh4+m1uSsM210yItJlEP7EVXiGpp72wcl8nvrzja2xovaXuWrvFou6AOf8/sSPrF+QDgweUlEfTkS4BxmScdHdAIga+TEdxwxhEzdEfAnIQ2P14+lOMo8XuYUquldIzwY6XJXkO5IK5+1kHklJBdvbh3LVoqy1XEuW3WoXmr1/B7UGBOrNWNWHEQ3hnIl/sCacmQ+fbZfPLQ/7wt6q4Vu4hqUN5ItfKSDjH4WSN+oSOYugnbIrMWFAB2qAV3NQ0CC5m41qm/e/BnxObAUt/NjzcgIBRSsWJpH8w==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Milan Djokic <milan_djokic@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH 1/4] arm/domain: Update SBSA_VUART_CONSOLE config option
 handling
Thread-Topic: [PATCH 1/4] arm/domain: Update SBSA_VUART_CONSOLE config option
 handling
Thread-Index: AQHcZibd6UEW2KUo/EaT5vMEhVUoyA==
Date: Fri, 5 Dec 2025 20:36:42 +0000
Message-ID:
 <723a873c8c35f54d1cb29866c9b68211f6a977e7.1764961645.git.milan_djokic@epam.com>
References: <cover.1764961645.git.milan_djokic@epam.com>
In-Reply-To: <cover.1764961645.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS8PR03MB8322:EE_|AM7PR03MB6182:EE_
x-ms-office365-filtering-correlation-id: 4e2ecab3-75b3-4ab2-7e01-08de343e0019
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?gv4pGKpN4egyPMYK1hWWLDzFFnJGAGPulxz2o20FkBS92g+gOR++Pih7Sa?=
 =?iso-8859-1?Q?hT+Acp45+WI3iX5a+eprB2wkoPAGafRCM8KfhfebgRfWwoQLDxXZorqMIf?=
 =?iso-8859-1?Q?Puigx8J0eymrw6gxdHZwSrc2CWtDzRzBryuY3CoDzGvuZ6DcY2swbgsfmF?=
 =?iso-8859-1?Q?XDpDgM4GSdAgp0tRegsPqmuQYE8V3VIezW4U7nEs4zMeSZnuMpQX8vAYHR?=
 =?iso-8859-1?Q?csqQvqfLME37ECKCA4adF2ZuyRFNDGRC3866Hmo/4HsU+v9J3OxPRu3WCF?=
 =?iso-8859-1?Q?07fHXZDCbsCeoPWZNv9lf+95Cq6TVGSAqG6FifF3NL32xj72eHk44LWHOd?=
 =?iso-8859-1?Q?SjcC6qRGitjLhLPTGaJGZTbed0SLz1BIZV8bYsSn3/Xft+PembLk3aXzF3?=
 =?iso-8859-1?Q?4jH+BI5/95mi6eHQZwQZm2bE8MGk3A8mkiPR9U8zDnwtivkm1ZT6yTu5te?=
 =?iso-8859-1?Q?S85GZHQazUGUY/qEek9Nry4bnwn0dYKeXsetOB/JKPTA4McE6aHNtH/SnH?=
 =?iso-8859-1?Q?pKNDRuAnVrufJP0RZJNayIVSKLPLpubvj+f+Lz5Wk+3ltSijY5CdsvX2dr?=
 =?iso-8859-1?Q?wfTNWP/B2uLupD/sWgvvbhWWY217FytKu4zysPZaGDt383fsvW5DH4fdFM?=
 =?iso-8859-1?Q?36TflFVGa8Pd2Y4RLHiPdm9ZBfnrnqwWyYRvEFoCW/F5Xo/0Z+eVUEq/Va?=
 =?iso-8859-1?Q?PJmdGeqnihpAT4ZFAJfCGl3GV9zmp6OcCHvTzN1HOBu8uktn5CrIODntZ/?=
 =?iso-8859-1?Q?OWsd3uUxZxaggmOfn0Oe65nT5S5y3ppxogWvjyf+SF5FYPPD7cWQyn2rAJ?=
 =?iso-8859-1?Q?RsouzuW7UtJ/XSjUqZ0l3zr3oSVc2ZpZLf4jfvUYM+AW9JhLnAt0Jvah8T?=
 =?iso-8859-1?Q?UNxmmdfs0ZXVZHfeq7pFbB7yBd3AbdIOmL0fe3h92XyIlW1P6PftcNzHAL?=
 =?iso-8859-1?Q?GTFF9CPU2FFB1X0vHvzK9Zu0sHK6uffU6OiZFF2wPyQXA6YyLDpzIZZQpp?=
 =?iso-8859-1?Q?tSIRiij8N1T1XG3xWwIvFxIIwIF9u0+xxNCYG2IvUCXIpvXVnhufDKlGKr?=
 =?iso-8859-1?Q?CB/IvL2LxHxQ5pdy0b0HmAeE2F6XQHY/f8dLqQMSDAJW0MRi23vKiGQw79?=
 =?iso-8859-1?Q?GtmWRhIqEZUfw+JJ7hwt7S3NOyaUoAg1PlRswgfmG20Uhu4IeAWyNcXzjl?=
 =?iso-8859-1?Q?ZSe1PuFpUbdm8NfG5C+2V6h85LlUCuHZP21IExZUbje1IGrHTu3b3ceVl+?=
 =?iso-8859-1?Q?NCxXScjarWitGT0vVZ641BD1vwAZf9Df+Ch1ubwu/4ZajEp/cDtGsuCK/3?=
 =?iso-8859-1?Q?9JndkRwoi8WjNmew7s9B/8gm8fz9T7EkQ/CgD1PR4zBTFcs0L5qVT23hSc?=
 =?iso-8859-1?Q?StiW0Um54+D4j449OcSCkn1NXm9yMwI8NHNhzky038T19mXfQrSrRI6zzE?=
 =?iso-8859-1?Q?pLMyJEUiT6Doh/gl2bzqlJeb73eLKhVlVRutClXGkjrJKx2QoJAMryZaS7?=
 =?iso-8859-1?Q?0NdFChFwUl1i4LEDatuYCsHGRrkaCcROpEDDA4utdGuaf/8xBOAAf2G4IX?=
 =?iso-8859-1?Q?loNSmLj6sLN3KPy4agOqiurWeBjB?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB8322.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?1gPaSQixAO2uYEK74Bee5w99oOmAj+3zLUruhmu2v0wmcPBe+6KUlYeu/Y?=
 =?iso-8859-1?Q?Mkl7SEt2UeyvSKhrMHqESljk4paSaOt2NqzFPO0o2wYsTWTMOdyXIEl/Q7?=
 =?iso-8859-1?Q?2iVmYGFvw9yRbK1PX5LHLW/5SXYlZkPMqjhVRJydMemUiXtHp5ezLG+b3O?=
 =?iso-8859-1?Q?siXRXsPaCz9K++jSTi0qDj1vyzwOfvwITUZPrAcnYGW5lockgvqI5wXpx3?=
 =?iso-8859-1?Q?pAyYhhXXp4A7Obm6JT4tNv1fwX+SeQN3gHBQTqW08Y7dP1WhOVL/vcAGdc?=
 =?iso-8859-1?Q?AjUFMuYDrhVlcVtmNvH4A3t0zOpNvHpMf3kraiTkkRXTJ5t75hJFnw/wOA?=
 =?iso-8859-1?Q?YiRkxFR9xsefyMqmw9sfNUNfvAz4NyobVRe/I9AT66OHsAlvv/l5wx0qVc?=
 =?iso-8859-1?Q?gV9HtrDeBXoKdPwbol1fjMRuDOXBTFyfDIVHFYg/Uf2EevNCRB1jfhVkYr?=
 =?iso-8859-1?Q?ZGViUJRTGPaln+zz6rVD4vyM2jFJVQ2PS8VehX1HuvNq9U/LIRvWU9JV/O?=
 =?iso-8859-1?Q?KVMV4M4BeCVHzz2u/qAlA7C4DMtscEUMs9x0B1VL/fh+LVMaAD4iZEpDhM?=
 =?iso-8859-1?Q?HUjHiMmHw5WA4kaS5ayX7/7n5Oul74j/VDfDNb1Vitms54TZcAm1Le1Osg?=
 =?iso-8859-1?Q?WmdKcdF+vfxt6qQLp7mGZXQxroWgXZx5XH/A3gZYEwUHS8CJCPCNDe0c6Z?=
 =?iso-8859-1?Q?PjVFVjEF/rYJskxI8Jwqr9OlQuat9SyVG7MUypTygSi+slTfF0j0JC76JN?=
 =?iso-8859-1?Q?Iortoj2+e9EQP0zLVEo1Mv9wTaGv87F+ugnAQH9a6SRuNRNK0J2LmHBZPQ?=
 =?iso-8859-1?Q?ODUUItUmSCSC6svFzVjD61Hf+T4NzTRuZJrMfo8vNyfOBsk0YbUCe4dYnP?=
 =?iso-8859-1?Q?jplpoPMsAMhvdNBeeDCRaq1kVf1rTkkMiszl4h/z1ThcSlDybfASmJuGfD?=
 =?iso-8859-1?Q?LWfwUt8AKDotFDRCYRdM/rZ8hfBusox/fWePt5FW+FCmML4IC//FNm7ARh?=
 =?iso-8859-1?Q?47BHDgAsdDxB7pjjkLcI+KK3e0Kbi/qRsq4BnJKOfGnwDmgf4IdXPZwGk2?=
 =?iso-8859-1?Q?pG6OF7qF1V5S8yzkLLrYOsyfrL3Uz3w+gU/NQ5C35DNrPuz3frVBFSIoi5?=
 =?iso-8859-1?Q?CRSRYD069/kOeqe1aIBBPA1YL0qWUoLduV43inmRtsJSGSL7BnFB1yr9e9?=
 =?iso-8859-1?Q?DAcSCyci0AvOvfoMLBVFuWmRTR/BT9snvujrUJtu6ItZ8RRgk/56chvBfz?=
 =?iso-8859-1?Q?n/sJJOxBjIZ4trrz43pBXNhDPxgz3HadXD7RMs4QSmM26ulzrHMuUNtXPP?=
 =?iso-8859-1?Q?TVTERzFhstpO9dqf/bVDckv/LhbVEgbcTF+GSEEZiLHUywSL71KXjaPn6C?=
 =?iso-8859-1?Q?m426az03pH0rHTFWQS3FAwkGqLshBacKES9O54bev356xy8B4lOWJ+4VcE?=
 =?iso-8859-1?Q?blov8i5NoOAMvkw3Jb2Obc5bCWH/l+wd02k2nMUx3D0gVtAxJJolYFGE8G?=
 =?iso-8859-1?Q?j1EFNAGjurBkS6ziunR6TceY9o1yXXN7aRv47mahDnzN3vKOf1OG4EcpWs?=
 =?iso-8859-1?Q?WypTXNVSfNpkh3R6oxvJ4aIIGXW0Wd6KNYCvqM13KpzXptMcrMZ/2DV5mr?=
 =?iso-8859-1?Q?YT31qavdMB8z9Ok6W07o9+3SaWxAz4xWVi?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB8322.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4e2ecab3-75b3-4ab2-7e01-08de343e0019
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2025 20:36:42.7319
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: pkx259Dvr9Xjp6DCQLc72BZ/6HbbZxSZ4nhU9JY4aKiVJBjwAo4BN9QvAfGZnDzjBMXBYwL156AgVt3KnhUiHw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR03MB6182

Update XEN_DOMCTL_vuart_op command handling to return -EOPNOTSUPP when
vpl011 is disabled, informing the control domain that this feature
is unavailable.
Added dom0less config sanity check for vpl011 property

Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/arch/arm/dom0less-build.c     | 4 ++++
 xen/arch/arm/domctl.c             | 3 +++
 xen/arch/arm/include/asm/vpl011.h | 2 +-
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 4181c10538..57980d2abe 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -322,6 +322,10 @@ int __init arch_parse_dom0less_node(struct dt_device_n=
ode *node,
     if ( domu_dt_sci_parse(node, d_cfg) )
         panic("Error getting SCI configuration\n");
=20
+    if ( dt_property_read_bool(node, "vpl011") &&
+         !IS_ENABLED(CONFIG_SBSA_VUART_CONSOLE) )
+        panic("'vpl011' property found, but CONFIG_SBSA_VUART_CONSOLE not =
selected\n");
+
     if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
     {
         int vpl011_virq =3D GUEST_VPL011_SPI;
diff --git a/xen/arch/arm/domctl.c b/xen/arch/arm/domctl.c
index ad914c915f..250e20a9fb 100644
--- a/xen/arch/arm/domctl.c
+++ b/xen/arch/arm/domctl.c
@@ -156,6 +156,9 @@ long arch_do_domctl(struct xen_domctl *domctl, struct d=
omain *d,
         unsigned int i;
         struct xen_domctl_vuart_op *vuart_op =3D &domctl->u.vuart_op;
=20
+        if ( !IS_ENABLED(CONFIG_SBSA_VUART_CONSOLE) )
+            return -EOPNOTSUPP;
+
         /* check that structure padding must be 0. */
         for ( i =3D 0; i < sizeof(vuart_op->pad); i++ )
             if ( vuart_op->pad[i] )
diff --git a/xen/arch/arm/include/asm/vpl011.h b/xen/arch/arm/include/asm/v=
pl011.h
index cc83868281..b8f4d85651 100644
--- a/xen/arch/arm/include/asm/vpl011.h
+++ b/xen/arch/arm/include/asm/vpl011.h
@@ -74,7 +74,7 @@ int vpl011_rx_char_xen(struct domain *d, char c);
 static inline int domain_vpl011_init(struct domain *d,
                                      struct vpl011_init_info *info)
 {
-    return -ENOSYS;
+    return -EOPNOTSUPP;
 }
=20
 static inline void domain_vpl011_deinit(struct domain *d) { }
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 20:36:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 20:36:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179434.1502943 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRcXt-0006u4-AO; Fri, 05 Dec 2025 20:36:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179434.1502943; Fri, 05 Dec 2025 20:36:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRcXt-0006tw-7T; Fri, 05 Dec 2025 20:36:53 +0000
Received: by outflank-mailman (input) for mailman id 1179434;
 Fri, 05 Dec 2025 20:36:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rowU=6L=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1vRcXr-0006OM-FJ
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 20:36:51 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1fe9e26e-d21a-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 21:36:49 +0100 (CET)
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com (2603:10a6:20b:509::16)
 by AM7PR03MB6182.eurprd03.prod.outlook.com (2603:10a6:20b:140::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.12; Fri, 5 Dec
 2025 20:36:48 +0000
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb]) by AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb%5]) with mapi id 15.20.9388.011; Fri, 5 Dec 2025
 20:36:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1fe9e26e-d21a-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GCrHIOy3HrLam35iH975ZHj+8/ZCuNbaUj8XMlwE4C5U/2ZQAv4GkLx63ZEvkAriM0rDqavaK/cuVLO3aUdqbltMAaE7a0/XgIlzwb6wgAtF4DRyO4XqfytzeGpo5M0I/e/Vto3dkk2UJM8XatMiWbCKLWXzoJly6Hno45XGLwr6SkqMZ28vVMLVqIpROL94j5hu0EjPU1eCAoDWr1bKhAgqglXVoQSuZHsbfcvIJMXDp3M8XiTMRL1STH/cwdjIJOpXkcWyDaxuepBL9cdh4v5vLLbiO3fU7W1SO2Bvpi7KEHdUr58y/tYLu/bw/PxMljDCJHByeCRM4hgZxeUHnA==
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=lB6qJppX2KWYBujGwJWemEjd9Q9RzSskT3pkFV3zoUc=;
 b=ZYOsj/o++7WIe+A1ctbfuq3nV7z0J+EutwFjnUUmcJ3NMCqVuUMxaHaPSSejYl/Vrm3g4m7MPZLNLfoojKZusND7hcQc/86fw/v4ERA+JGKOsU2poiT+GueuqHL/ihoSyTN8AthThJ1DZyqfEvVjEld2zX3ohj/88BoBUAHMKCFEwpl30o4pRgAcHN+NYe3GZUQzy/1DBt1zIAKeQdmbQFmXpZr2IJ1blLCShSyDzxCc5u3wYB8Crp6hqndLJaZ31H1Kx5bseGZh2GBPWAauRQLgqnOmm3eXt0X4sa6FQvMbid+EtBezIGBRRd55Hb0emGmxWdl6sNcHrQ18GJIhVQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lB6qJppX2KWYBujGwJWemEjd9Q9RzSskT3pkFV3zoUc=;
 b=MvBohx52GHY0ppaLrtAaaDJAmRE0QaL3Vqzvko7Z0mA/0SMDOzlOgQylY674yHqDkrUwbnGP3OzGMcxuCKB4KvhzucaQSm6B2zIwPqDeZ4ZIs61ecMT1FpBYzk/jasZ7VPWmAs1K/VJzTnPhlwSXwADOOis1WbNaHPclDPb9moBAQ3rkk6rcJNJpxWZPkCQpYRueeFO6BiyNiKP+cgtf/dR1Z3LV/Q2ZFNVhXN+MCvt9VMVP+Ccxchni4494gvwgMuP3lG+ieCsOiYFzp+WLtwZeLKFNmLgdPrr0wkojAD9VPvqZi6wuzTDO29kvfoR4sHKybCRpJ031jRXaq/HJ8A==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Milan Djokic <milan_djokic@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, "Daniel
 P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH 2/4] domctl: Provide appropriate error code when PIRQs are not
 supported
Thread-Topic: [PATCH 2/4] domctl: Provide appropriate error code when PIRQs
 are not supported
Thread-Index: AQHcZibgOinge/Jy20Oi61t8GSsw2g==
Date: Fri, 5 Dec 2025 20:36:48 +0000
Message-ID:
 <b38b7b65630d1f167d1589d21556be1493c180be.1764961645.git.milan_djokic@epam.com>
References: <cover.1764961645.git.milan_djokic@epam.com>
In-Reply-To: <cover.1764961645.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS8PR03MB8322:EE_|AM7PR03MB6182:EE_
x-ms-office365-filtering-correlation-id: 9a3cd245-d047-4b65-55f3-08de343e037a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?e54tHWWdAstptkeL1fqcI/c469cVsFbbty25udQGYgl+/G2BJjjDGutycu?=
 =?iso-8859-1?Q?ACdsp7Uf9jZpctpdnN/LcanyVrNIfvw9NHFeHTOGwLHTRzm0U09AlK3pmr?=
 =?iso-8859-1?Q?B8jruEKG+YJLYcEHQ9xy6I5WL39ifcTZH7S2SS6F75dhw9okhH32hGvlLw?=
 =?iso-8859-1?Q?hWBMOG5Tg5oDonqemdTAFVQoZHxbEtE0+gM1sdF/JJnSZe80tJuvPQpSp/?=
 =?iso-8859-1?Q?OImIULDoZ9DvCdSHF40Ol65xg/cjFoaUEW8ZFk5WAMghzH/ZNphWv4GVHq?=
 =?iso-8859-1?Q?XRgK+f8cd7ddllPP14W4MrdO/83E+IGETw3DonIleZW45hh+BfSvOAUj8v?=
 =?iso-8859-1?Q?02SRt0yBEK0pTYh/0d4rOTiAqFUv+AZUSxzUdkZUNUhJi9yiCPIm9Kl8Eb?=
 =?iso-8859-1?Q?rK5LcvKSbhzwBVENG7CBGQUp2JjZyYpjyXM80PrQVkc1oOlCnCxLj4TdZf?=
 =?iso-8859-1?Q?0HszhKuAhmEqOVkf+KULMozbRoXXLQzWziYHigo8VkWsmN8pPk41arifr+?=
 =?iso-8859-1?Q?gc67E19ynBwfOwuxHrfdZN0ymeMhO6HHRI2iJ+tkrrVqJmcxqhqU58o+VQ?=
 =?iso-8859-1?Q?jPO7FBU8SoEw1l5Dckn0a8KsdT094lzxtVhPVYL04Q0BJWKE/6Hg1MSzDj?=
 =?iso-8859-1?Q?Fsz0DW3tAnHiuArPa2V15aiNzD1YL6jgkLLLpYpixzxhcoFrMqzSNturyA?=
 =?iso-8859-1?Q?Lk9IVX9BjDjGws7SnZ58B7xgc5G0AxXZh9Ui5CL+w3+ZXDG73wgjnQMQW2?=
 =?iso-8859-1?Q?m1/sigXieD/rOdvix/Q54GYhgPgy6ye1N2RmuHJPjhq8eLo3QXJEBaUkks?=
 =?iso-8859-1?Q?zWZwCso93QVjHEYT0jZgLEqYStuBpj3I/TTXVnxfL2veQqW4Oj6+BR4joS?=
 =?iso-8859-1?Q?OQq1fDrpvFvp5G882VnDiO9BZI0GRPnX8pOlrlVKA89TkNax1IItlCb7dF?=
 =?iso-8859-1?Q?221cA4rOe4Wi1JJlvcUmGag9W8Ni7L+Prkhc2uL3nOumNvUAJZ3T4Pn3Kl?=
 =?iso-8859-1?Q?+yVgV1qZV7OZDp9+O0/pIN6B/L7RdcwVGcpNcM+94GAe2KuzJOS1be6Sur?=
 =?iso-8859-1?Q?UzNGRJS2LJXe0Ds3pCpkzGT3H8226YUg1a3ZKgNMzT9KvaFdno2X/QSMNK?=
 =?iso-8859-1?Q?RS4QXJ0CTemuEH8WI/Bc6xKof27XpX5vtZqK2yq1W9ZwJJa/7H1ylek0rI?=
 =?iso-8859-1?Q?bpAQ6ekl+9So+gISrEywK2lNd2+BKvSWxS38aTuSgI1aVoltoLAzSisTYC?=
 =?iso-8859-1?Q?GNkPgynHssGxfYqdJL79bEIDDRZx76MVZoKjqVTkySfI+AfEh0VPXGkmdt?=
 =?iso-8859-1?Q?VSYUi/aDCjn4Vx/IGQ+4YO/dQfhSRT8+2DEbJN3i811W9ybFR2Z984ZqTn?=
 =?iso-8859-1?Q?ugbJoXf22K+Oh733/lq/slaBmZiE7oQdtnOwohfqSQI0Y4M3gIWvgQzStX?=
 =?iso-8859-1?Q?axiitJmgIbnUUXywErIhmJrzVNRPU9Pd7RCBvPB/MoMjSQdgwft7G48COG?=
 =?iso-8859-1?Q?gU19yxlSVqBf6E/isQBSf4ItnblVojMw+bVvGduFS2tsYQU50IOds1wLrn?=
 =?iso-8859-1?Q?1Zwq0HjQM0nbRFw5sFNr7fihz/vI?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB8322.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?ozjSlGNEutnzFN71IRtxqAOJ9xjrgX9d+SQjMkWb4ls5X/1uOk/5n6ipTZ?=
 =?iso-8859-1?Q?mlbQi5zWzX7dStrdXFYxSLYP/lcl3452OOWWQIJ+pcsjUqPhxRTYSO7SlE?=
 =?iso-8859-1?Q?hWwMifzig2F89uFZzSXmtp9U4PwOe2FC+MBN1b8fHUSWla8wrBzPWsM1Z4?=
 =?iso-8859-1?Q?s+9fnXNXasB8yIj+aAGo6WAA3N1LcZapwhSQrQsJZL/+unPM8h5jF6uk2U?=
 =?iso-8859-1?Q?a9ccNEmB3SzWQ0b14GCX4uc0fn6h8sDsdYx4czOXHKLr4iJnKnChOXtOgE?=
 =?iso-8859-1?Q?FQEAC7YDVDHOSnmDb3oKneR91x+DxoUxFH9OQ0T/va3xgRZZlnvrdqjUcF?=
 =?iso-8859-1?Q?W3NPZz4i3dJMtxSg+Qw1O9sZ4rbPZTQl/kSk+unapc2QmRkkcZVgR5cHcL?=
 =?iso-8859-1?Q?DC+d1a8XXevV/5hmL9ILHJx4KFFHzyCBb1MaKyeyREsvrmzrcYxc+8mJP6?=
 =?iso-8859-1?Q?oqRMosw/D3OTLKkbfw3J2euUwqg53/tCGpDlecJ9ZCxrR1bf0ehyTa9jVm?=
 =?iso-8859-1?Q?ujiuhrI9K5LK+AHJpzegxVKUEWmDuBJJW4P/WqAMEbOlcxMIHbAsfuW6RV?=
 =?iso-8859-1?Q?SO7fOCn0dRD5HGd+7bmVsz6c5wIYb7VHeAgAVGwyeXI9Aw3HttPQk9FkjZ?=
 =?iso-8859-1?Q?mingRtgNEqUxbkICnvuR5g2k/XHSUFOvZHdJLOuIyDiaNS2VdfFBXRwbN4?=
 =?iso-8859-1?Q?sx+kKSz+rBU9yHyI6NtkQHmzedMG/dcuRrbrds6Xqai0oxANpsqIyt/EZG?=
 =?iso-8859-1?Q?/Iv46EOjGoElei9CJhZjOtrzrwKaHjqy8NUnAUoXA4RxQfkPsS6P4UId69?=
 =?iso-8859-1?Q?U+Ib9EoweBSZJRhwMGteINoTSY3GBeIucAHIK9GNv3uNHaBRgyU7wiEbyA?=
 =?iso-8859-1?Q?NCzNByLRj8Xqfo/duSiQgiIY0LgJEvuMtddFr61ab4YtT6UU73l4CtzkXB?=
 =?iso-8859-1?Q?2rTWchcmzVvNvMLyQ3DJw7jJfQtA6CTFm6aYIh6+lZFOidtZjObyieMo9h?=
 =?iso-8859-1?Q?UVWvKm96IH7NWn69qXiL2H2qeqG+WhQ63fenRJc0Zisi0QSP6W8mbKzBjT?=
 =?iso-8859-1?Q?ExrX3f1IIGTyiSx16X1os/2/mes24Du42G3f4ftjH4uYMgxoUjRyuvgeFA?=
 =?iso-8859-1?Q?qcDo6F6bXZHi9y82Ge46ROAZK2XtiQYpcpdST33VouRhop0bSU3fgYtLRC?=
 =?iso-8859-1?Q?MXYnKL+4Aq6Eh0/XBPRHf/Av7SRenF6qbpJkkxsE2jeA4a7OItvqclkQ51?=
 =?iso-8859-1?Q?geZZvoIGp471Ny7s0N8jzYWEsPAVgk8F8fYJvl0YAbsOSvlsLCr3V7ptAx?=
 =?iso-8859-1?Q?yRgIMcOB0hsNm4OI7hJwRwfTbNAdl8dakTw902Er7z1NAbxj0K0hAijC4F?=
 =?iso-8859-1?Q?iSHQ/Omz46MK8IU0Qu234J7xUAuht7+DEmKzdoUodkzG0E59biflNAnH73?=
 =?iso-8859-1?Q?6MUqnqxb3Ns8eCb28riCZSN68PTELYjadTXJ39XUl5Qs8tLPle3lw8oTo7?=
 =?iso-8859-1?Q?zzdjv5dnMsYrapRLTyHnVa89kvOh2CwuYBjJtGhVFj9AUMGMpggyzaDENP?=
 =?iso-8859-1?Q?qRr/OIVu77mKXITmZ8hNqhtNNSWYrH04i4o7ktNzHSmTl9Zva0iU2ojPnb?=
 =?iso-8859-1?Q?XWNShz/EaXMt9+C+h3ZwKFNVatyg5/FRnR?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB8322.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9a3cd245-d047-4b65-55f3-08de343e037a
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2025 20:36:48.3861
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: COriHAsR/iYO4KXNu385DGOj612BajCkUISveMJ63pxLCf0cXG1dGg9/jqCgvdbUkij686M3B+Uy0vUW97V9wA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR03MB6182

When PIRQs are not supported (e.g. for arm), XEN_DOMCTL_irq_permission
command is not handled.
This results with default (-ENOSYS) error code returned to control domain.
Update command handling to return -EOPNOTSUPP if control domain
invokes it by mistake when PIRQs are not supported.
Also exclude xsm_irq_permission hooks from compilation when
PIRQs are not supported.

Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/common/domctl.c     | 6 ++++--
 xen/include/xsm/dummy.h | 4 ++--
 xen/include/xsm/xsm.h   | 6 ++++--
 xen/xsm/dummy.c         | 2 ++
 xen/xsm/flask/hooks.c   | 5 ++++-
 5 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 29a7726d32..159864bc99 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -638,9 +638,9 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_d=
omctl)
         }
         break;
=20
-#ifdef CONFIG_HAS_PIRQ
     case XEN_DOMCTL_irq_permission:
     {
+#ifdef CONFIG_HAS_PIRQ
         unsigned int pirq =3D op->u.irq_permission.pirq, irq;
         int allow =3D op->u.irq_permission.allow_access;
=20
@@ -656,9 +656,11 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_=
domctl)
             ret =3D irq_permit_access(d, irq);
         else
             ret =3D irq_deny_access(d, irq);
+#else
+        ret =3D -EOPNOTSUPP;
+#endif
         break;
     }
-#endif
=20
     case XEN_DOMCTL_iomem_permission:
     {
diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index e801dbcdba..6f6de161f9 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -555,14 +555,14 @@ static XSM_INLINE int cf_check xsm_unmap_domain_irq(
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
-
+#ifdef CONFIG_HAS_PIRQ
 static XSM_INLINE int cf_check xsm_irq_permission(
     XSM_DEFAULT_ARG struct domain *d, int pirq, uint8_t allow)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
-
+#endif
 static XSM_INLINE int cf_check xsm_iomem_permission(
     XSM_DEFAULT_ARG struct domain *d, uint64_t s, uint64_t e, uint8_t allo=
w)
 {
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 2d831d7745..b85cf9933a 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -113,7 +113,9 @@ struct xsm_ops {
     int (*unmap_domain_irq)(struct domain *d, int irq, const void *data);
     int (*bind_pt_irq)(struct domain *d, struct xen_domctl_bind_pt_irq *bi=
nd);
     int (*unbind_pt_irq)(struct domain *d, struct xen_domctl_bind_pt_irq *=
bind);
+#ifdef CONFIG_HAS_PIRQ
     int (*irq_permission)(struct domain *d, int pirq, uint8_t allow);
+#endif
     int (*iomem_permission)(struct domain *d, uint64_t s, uint64_t e,
                             uint8_t allow);
     int (*iomem_mapping)(struct domain *d, uint64_t s, uint64_t e,
@@ -504,13 +506,13 @@ static inline int xsm_unbind_pt_irq(
 {
     return alternative_call(xsm_ops.unbind_pt_irq, d, bind);
 }
-
+#ifdef CONFIG_HAS_PIRQ
 static inline int xsm_irq_permission(
     xsm_default_t def, struct domain *d, int pirq, uint8_t allow)
 {
     return alternative_call(xsm_ops.irq_permission, d, pirq, allow);
 }
-
+#endif
 static inline int xsm_iomem_permission(
     xsm_default_t def, struct domain *d, uint64_t s, uint64_t e, uint8_t a=
llow)
 {
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 96dc82ac2e..28ef4a0beb 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -73,7 +73,9 @@ static const struct xsm_ops __initconst_cf_clobber dummy_=
ops =3D {
     .unmap_domain_irq              =3D xsm_unmap_domain_irq,
     .bind_pt_irq                   =3D xsm_bind_pt_irq,
     .unbind_pt_irq                 =3D xsm_unbind_pt_irq,
+#ifdef CONFIG_HAS_PIRQ
     .irq_permission                =3D xsm_irq_permission,
+#endif
     .iomem_permission              =3D xsm_iomem_permission,
     .iomem_mapping                 =3D xsm_iomem_mapping,
     .pci_config_permission         =3D xsm_pci_config_permission,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 9f3915617c..63e4b4c353 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1110,13 +1110,14 @@ static int cf_check flask_unbind_pt_irq(
 {
     return current_has_perm(d, SECCLASS_RESOURCE, RESOURCE__REMOVE);
 }
-
+#ifdef CONFIG_HAS_PIRQ
 static int cf_check flask_irq_permission(
     struct domain *d, int pirq, uint8_t access)
 {
     /* the PIRQ number is not useful; real IRQ is checked during mapping *=
/
     return current_has_perm(d, SECCLASS_RESOURCE, resource_to_perm(access)=
);
 }
+#endif
=20
 struct iomem_has_perm_data {
     uint32_t ssid;
@@ -1943,7 +1944,9 @@ static const struct xsm_ops __initconst_cf_clobber fl=
ask_ops =3D {
     .unmap_domain_irq =3D flask_unmap_domain_irq,
     .bind_pt_irq =3D flask_bind_pt_irq,
     .unbind_pt_irq =3D flask_unbind_pt_irq,
+#ifdef CONFIG_HAS_PIRQ
     .irq_permission =3D flask_irq_permission,
+#endif
     .iomem_permission =3D flask_iomem_permission,
     .iomem_mapping =3D flask_iomem_mapping,
     .pci_config_permission =3D flask_pci_config_permission,
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 20:36:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 20:36:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179435.1502953 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRcXw-0007BU-Hk; Fri, 05 Dec 2025 20:36:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179435.1502953; Fri, 05 Dec 2025 20:36:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRcXw-0007BN-Em; Fri, 05 Dec 2025 20:36:56 +0000
Received: by outflank-mailman (input) for mailman id 1179435;
 Fri, 05 Dec 2025 20:36:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rowU=6L=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1vRcXv-0006OM-F9
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 20:36:55 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 223da751-d21a-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 21:36:53 +0100 (CET)
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com (2603:10a6:20b:509::16)
 by AM7PR03MB6182.eurprd03.prod.outlook.com (2603:10a6:20b:140::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.12; Fri, 5 Dec
 2025 20:36:50 +0000
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb]) by AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb%5]) with mapi id 15.20.9388.011; Fri, 5 Dec 2025
 20:36:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 223da751-d21a-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xHxFJcxGFBQDpY+56liR25hKkQ1H5lmAfXFWiFL5i2dEgYvcalX4EOXWHi1mzqDouhEmFFjbVmz7ov5xkP5hNYcR8cdvL0VPUSplSRjJxksBdGe53eTedLsUcWeNiZhOrOxzutcebt1PrsMcYwnsgw3f97Z+/CRHgWtB8atQFCxk8ZjzKZ2zZGQJgz91P9pDGBPMbQsCeZ0k9f3FOY0PoNS+zcDl9pWnQh8hxY5+6SD9ql1Z9+EwvMfSY/gzrmG55VL/tiUqncHMpE1sLYUEhFkGVW4qbZ5Y4hUrAVXb5uZtD9HUsFbo2YU73u2D1zXhwr0egEM7a8YZee+7oY0Klg==
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=5yMP3Tz77lZyIHFAGIFCclXZDcQr3lxGx6rzXnYKPZs=;
 b=BpHfM9XR/egSMquInMoIYCYtdN5m0kabhrqnT/xIy4qkh23E176gJKuiHu1XqZ0qglhZkpTAue8wK5XUpbNMQeGw+QKg1JevWi0QSGAzVuC+DS3bHjNayBbYujLFtcuepCDwacF9N+yuUA24ZtuFspr9fws+MgLdmhBqDPX6a5bP1td0PCC2UHvPbAdavem3mxunWd1mjt55QBhJhwZNk+DvaPYKUe3mnBrxFvkdSZoY+/F419apbLP//JlRRPfMTnz6hedP+mhW5AwZNPXqYvnidNRfvcRO5XTsEYg61i9BsmS5xPQ5Mx5+FloMDpBKIFJtbiwMMXbgZpTNZyqn/Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5yMP3Tz77lZyIHFAGIFCclXZDcQr3lxGx6rzXnYKPZs=;
 b=ilYlRFuY68ScLeK7H5FbP7kqK3k8vN1iLq1Szq1QLU47fNo7lwZOID2SjuNJ1zwpRlm0yqXuTgX5oY5ahMpWszN3QKjRrHlqRMZDwXFZKEg4Cg18PAaeMSWa9PpJ1JRhMK4XOm2/tYc56v48ZGhx3cme3wPfpaM3kgJ2hlcGIn6MUiwf2S75Nz3OSEQi17t0uIpW4EL4607a8iUB6lwfgXWi0Q0ZvoxUIK+wLnPd2aZaHDKDWuM5sgU1CK1PVrnjgikxESWvBoLU7N7YtuZRH1xf+ayuE7kDlTjBBEPUVZDD+O7Bkkxjbcv3OGI1BVHi588YJsq1XFouXuPHE6n1Ag==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Milan Djokic <milan_djokic@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 3/4] domctl: Provide appropriate error code when VM events are
 not supported
Thread-Topic: [PATCH 3/4] domctl: Provide appropriate error code when VM
 events are not supported
Thread-Index: AQHcZibiNA76ACBTxUmW3HNmbMMsdQ==
Date: Fri, 5 Dec 2025 20:36:50 +0000
Message-ID:
 <99f899addf349543eaaaa328596dd9bf90004214.1764961645.git.milan_djokic@epam.com>
References: <cover.1764961645.git.milan_djokic@epam.com>
In-Reply-To: <cover.1764961645.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS8PR03MB8322:EE_|AM7PR03MB6182:EE_
x-ms-office365-filtering-correlation-id: 24a9efc3-a44e-4c1f-4707-08de343e04ee
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?FH5gIeSy/grFVN04JXmlVztRKAdcAMyAlXk3veU25J8WjKeL6bOUKd0uFQ?=
 =?iso-8859-1?Q?GrcgB0aY0TIpUS0PpqhE+n4Icytatf6nYXHzl+GfZgdXfIKnSkUs4Zq3CH?=
 =?iso-8859-1?Q?H02822biv3QM1ORxPK4K0QH8k3UXS5ivMQG/8GzgY4c4qat3+G12CTq1fA?=
 =?iso-8859-1?Q?YereJNuok/FnXl/X3ICbOQ3wPd+0928EROlXKp7J03iunW1UNZ17Nu5z57?=
 =?iso-8859-1?Q?MsKt/C+nT7wbncro41jjK4sQCOlkBzLTuYayBe9bVaF2S1pDayVRiDj+Wv?=
 =?iso-8859-1?Q?KAy691U3l446DJw7HqYVjeXPJ75c4ihKK9lb0w3INbVq40vIyxIJiwSawm?=
 =?iso-8859-1?Q?Hus4Dv+eA6RFpccBdNp/dmY0W+vNPVGKcvnvQDfbPyk4pytJ942R3eWeyv?=
 =?iso-8859-1?Q?yJHLZuCur1jbdOctgo3lAyBW7M13OhS1hBvvsFLoKEFqdGclCtCV8Vyqdq?=
 =?iso-8859-1?Q?XBL0Kais5swIAg8q4gQv/9+PtnqQjk4GcRUeWPuMmdCorb5a8sFJAFcHlZ?=
 =?iso-8859-1?Q?o46Qi6fzpMz/oxHvSoBtO2G87d4Q8NitBI5i4sXC22+GKPNsZU8u6dSbNX?=
 =?iso-8859-1?Q?Snv7aQdEfrnJqMynmKCYVEKdEe8Va7EHv56Y7IAv4lXRVwdlFnFF/aMzTz?=
 =?iso-8859-1?Q?5f+Jt1/VT+l3+AA/w+ohLciDDdHCdqb4LpiChcY8T5q8QOA/5+o1VXfnY7?=
 =?iso-8859-1?Q?XDi2Bggjtd4X1xjqAr4smOEoxKVDDn4QdQhwNSIY2FBU0mTAqjp0atf8p8?=
 =?iso-8859-1?Q?sdFFk79u+rKNI/QoUYmdnwH18OfSRvt13JRCfqoEz73V5ZDEO897sFDP2N?=
 =?iso-8859-1?Q?2k2Ez/IiGp5RriVyuX31Huyn7e82uWUgMbc90O/+ZBG3WDWXXT9LX74JxZ?=
 =?iso-8859-1?Q?EKmg4hh+G2E8zFzAymrw3h7+gBASt6sVBptzzviNPD3gsiQHen+PfVnF8C?=
 =?iso-8859-1?Q?CC6v+orudLVPXL8/YvgN7fEk/EX7tpuKnhJUnvcQ0rnQl6V+AHeO5E0P6N?=
 =?iso-8859-1?Q?Z+22izkAl/V5UXL1D3aeVF6HA/uMImj5X/js3/BEooHDGGToglNv0/0IVN?=
 =?iso-8859-1?Q?kck+5jt602W7dtxCcByCsUh1pSXAK+T0ukL/GAunJ7/HjFHa5o8Lm9Mmkw?=
 =?iso-8859-1?Q?Jc2A3+hRGzsPr359Qern4BMWZ3o1Fb73OFAXCyj0iF491KOmjOqnoi82PE?=
 =?iso-8859-1?Q?Z9brB0mvIsG9ibWLIQlU3v4IgpNGvhj1UNpEeFyLjjlzlHbvzS1Aif0SZG?=
 =?iso-8859-1?Q?FEq5g1HD1gu7jFiQN8Cm95DWpt05v4/FddeEVFv9mUIAUidXRHhkRU6OTQ?=
 =?iso-8859-1?Q?X4y6NVKGJgry1IUyhpAJ8sfGu6IygvsBYTptLpqXVDbkN7R+xnUBrHUdSb?=
 =?iso-8859-1?Q?Ea14OKj0XeN90UXcwwHca4m8X4IuP8ILcejYGs56Zu8yQQQRhbDkK9ykD3?=
 =?iso-8859-1?Q?8EbCcDtgGRehfcJeIb0pKo9pZCy0qTgDlE4+sQ1hnLHjedZleXVTre5Iw9?=
 =?iso-8859-1?Q?mR2oTTvRH5GOzy8+PlSehHyg+CYk9C7cgrdu4H+jUh1Q7NYPOogWZuILj+?=
 =?iso-8859-1?Q?Fiye8MymoO+J0Zq2Pi2McfMOsZHX?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB8322.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?EXvRR67QPWQqoa2ViEwh2cysSbD2J4oPpnMWyrQZTfPXkqQj8vy8doXlsd?=
 =?iso-8859-1?Q?gKYrDhUiglNOL6wPtaBYw1ESg5De6o4jEwR+3asyhkTqswQuSNwOG1+CR+?=
 =?iso-8859-1?Q?PgGMYNUmMrnzXsu3K90vkJ27oiDlrabZHDAvZ+CzeomSMLmrvdfjJxEio+?=
 =?iso-8859-1?Q?8sW8XF1NoKzn7FzfXF2UKMYbxmkA6ZqLAfYW8dS4YnQxTK7dtZMrieOM+N?=
 =?iso-8859-1?Q?CQ08ZkCJdckbi0iBTeI60PRcR+3yHR1bmNC3yPJ//HOZNPIsZb1zFSSEbJ?=
 =?iso-8859-1?Q?1eWLM59v0AsX9GWaBZvLsVzhalZOEIJ1P+e5UaBio+lHlbsxvCqxWhfbJv?=
 =?iso-8859-1?Q?49MyXvuugjtVkHrpp9Tj486ZY3EvDFqL4kEbdly08A32tpibbQG5d0Abm3?=
 =?iso-8859-1?Q?tN1XTCBKy3F0RIW2NjY98950Ps6NJfVfFY3zqPpZXsSeeJd1q6C8XqLrpK?=
 =?iso-8859-1?Q?nn8ZcLnCPVZ4mLJRMazfyXmswideqAIJWsEcgqWS4UgUKz2kZp0XfElP2T?=
 =?iso-8859-1?Q?b4eeqq9T+9T2htR1AqlMcRNC/3qxz00n/4xf6i4WzkpmEHJDKhop8bBThd?=
 =?iso-8859-1?Q?IIIi56JkLYipfYLHmPMLuVQRyup8lB/TX4vGOU0tz1imI5OjqThdo4iZE0?=
 =?iso-8859-1?Q?NdTT1EnjHz+mxTUZswophFv/V6y3HPwc4SNYTd3xyRDNPfUWB+IdSylv6B?=
 =?iso-8859-1?Q?hj5RLNiOrnNCyqVpsVtpb7iT7qvtD1X4CAzBVM3VMbjYB7e5vCivvEI3CK?=
 =?iso-8859-1?Q?9dXcqVpKCj+b2N8Ni3IkvcpoNXoDPJdd+lb0Lb5+pSH8bzvh2o5iWpZNMM?=
 =?iso-8859-1?Q?KuGTTVVEm0chYsEMmzopBvrAze7354mMlKAtGdd/7ShImqmCOOTN7laNqt?=
 =?iso-8859-1?Q?A/YPk2qdQsPQ6WV1I5jlNNKyQ1EO0mNkL+X19rsh7nML3laKzrixN8imHs?=
 =?iso-8859-1?Q?/Xzrngs1GiXSW4aFACJwsPsP6LBr7rN0YfNh958ANsyVbDcxplqbH0L1tK?=
 =?iso-8859-1?Q?ZOtODBnZPkDj0nJ3jVWPzlyi2dz1xxtjgoRI8bcJROoj+9h0nom8ycZY2a?=
 =?iso-8859-1?Q?B/SmoR80E1RQdcuT0ffksHxqR3YSM0/oD1z9LIFXqrT5YrC9sft7bKjCBS?=
 =?iso-8859-1?Q?yJh6WIM5ZV0Z0enIuZlibBZ4fboVHxQ3/nmELmf0T93I3h3cBuSWZm77yX?=
 =?iso-8859-1?Q?WDP4PkJb8iHs1BLWIB9gxKfte4I+2ZFbAYHRiyIuebpjVDXODsgNg/R29r?=
 =?iso-8859-1?Q?7l9ACuoYoHB1OXSV5jfF13Hoo3vnP2D/8yZIOE41PMlMDdNAVAQetx45x3?=
 =?iso-8859-1?Q?Z6gNiktYvpqfchj85DzVLOVBBLt/fgoE49WnBqbLtNrcHStbPX26T3DiEL?=
 =?iso-8859-1?Q?lVpU6jFIJa6sKJbSKwD4u67oJs5T6U55AO1SavfKS5DwHzeD1ryC24Laqh?=
 =?iso-8859-1?Q?VSYvjmyHPORQxd8C8KItNTc8Iz9sCEtDgyEpu6QGlrGY31stzY0scZHTj3?=
 =?iso-8859-1?Q?fB61w+kD6Sa4pTSm7ZajOCvK2QYswbfnohtJVrmy42gEC435Pop6TPDAF+?=
 =?iso-8859-1?Q?HaegH2qsCsH/i6b+y8Ousa4Kne9XfAwINIeTNAdNjtlSvZ4Vva1im4OUI7?=
 =?iso-8859-1?Q?s9C6NbfmoMiWV8w6Orfm9jMn58+nASJZBQ?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB8322.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 24a9efc3-a44e-4c1f-4707-08de343e04ee
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2025 20:36:50.8123
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 0WYdXBzYZn+3udlZrwvzXZJwNO5OQiJm2lp7fcwaMQufIcuonQF+9QE/fN+LktHsWmHEYV1g2Pw0pr6jiqtE/A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR03MB6182

Return -EOPNOTSUPP when XEN_DOMCTL_set_access_required command is invoked
while VM events and monitoring support is disabled.

Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/common/domctl.c | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 159864bc99..5284524b42 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -787,19 +787,22 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u=
_domctl)
             copyback =3D true;
         break;
=20
-#ifdef CONFIG_VM_EVENT
     case XEN_DOMCTL_set_access_required:
-        if ( unlikely(current->domain =3D=3D d) ) /* no domain_pause() */
-            ret =3D -EPERM;
+        if ( !IS_ENABLED(CONFIG_VM_EVENT) )
+            ret =3D -EOPNOTSUPP;
         else
         {
-            domain_pause(d);
-            arch_p2m_set_access_required(d,
-                op->u.access_required.access_required);
-            domain_unpause(d);
+            if ( unlikely(current->domain =3D=3D d) ) /* no domain_pause()=
 */
+                ret =3D -EPERM;
+            else
+            {
+                domain_pause(d);
+                arch_p2m_set_access_required(d,
+                    op->u.access_required.access_required);
+                domain_unpause(d);
+            }
         }
         break;
-#endif
=20
     case XEN_DOMCTL_set_virq_handler:
         ret =3D set_global_virq_handler(d, op->u.set_virq_handler.virq);
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 20:36:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 20:36:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179436.1502963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRcXy-0007Rv-S8; Fri, 05 Dec 2025 20:36:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179436.1502963; Fri, 05 Dec 2025 20:36:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRcXy-0007Rj-OG; Fri, 05 Dec 2025 20:36:58 +0000
Received: by outflank-mailman (input) for mailman id 1179436;
 Fri, 05 Dec 2025 20:36:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rowU=6L=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1vRcXx-0006OM-0T
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 20:36:57 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 23689d4c-d21a-11f0-980a-7dc792cee155;
 Fri, 05 Dec 2025 21:36:55 +0100 (CET)
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com (2603:10a6:20b:509::16)
 by AM7PR03MB6182.eurprd03.prod.outlook.com (2603:10a6:20b:140::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.12; Fri, 5 Dec
 2025 20:36:53 +0000
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb]) by AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb%5]) with mapi id 15.20.9388.011; Fri, 5 Dec 2025
 20:36:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 23689d4c-d21a-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=a5bqKK0zmCGQWij/mtSg4UqVPs89U+UqKnV/wM1Ve0TmJ0Z/AEaN4OOuSv76Xp++3pW7hdqhcBvYV+9W8Kar4tRvYFuZw6OjFtV4eVSyS+gUWfbCswkzJPGv7n91BVth1HSKKKs6thGMTFacBUM/Mcb1QnBdyyTwGlZeAjeUsQXtBcr/KH5WPuFWY7wNjkWFG6pVE4m9jsMkowzQbFU2x9HINZG/KgI5nB3sjelKxDU9UWqk0YAzVsFaL4brjQsn5kHQ7YyXGLfBCuc4Er8fDVSTwcSuvGsRdu3+8q3wzEKrbrovV1AJJtSkUR4MGpYscKP1cv5utJPsabkHQzKq/Q==
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=S3hht+B/Z3BXKM33lvD97f0jezcDIH+75DFkaQV/1GI=;
 b=JJ/0mAiU0nQr5cKil2pQQv/nuT5V2nN2P94cGR4BCKELf2Of4tSGACAe7++tlMS++ohxmRzNiKp7E+X63EHDuk3+Xl6wjKopceCzEDB73YZPQ/ieXjYqRfCfmD/aEscmCS4/CwNAF88zFEqn3gR36T1aSuofCYAhX/eUic+a/SJqTJEF2aiQDwl3kLPbKNIOWTGkNW6v0Uyj1ypXqRWi+MMNDzDYEsPiVcMW/z7XN6S0r1bFZnRINjE6BQV/JwD5D2OhwEa2T5uhp1fX4GQO/kpNHsUt7o6HOOYRScJGZBvNUH/RI3koXJ+5544/qUFlZr2EVhbPEnAHAAVOQnPvPw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=S3hht+B/Z3BXKM33lvD97f0jezcDIH+75DFkaQV/1GI=;
 b=IJbTpA46w+dzRoftvYZ9BUWz+SSGpId9e6oVJxes9Vhl+7tR/xg7vi5NN3PI086LLAmoEV1kpbGisTyW5At6imcMUywywd7f2U11PSnjymYgiM5S+1WILe2ohUUH0nNB1iHjHoqt0nDdSUxEExCJ6fEQ4eKNb8myZBdO8//v8ACuug+33isnlMYJWHGSA7x6cicCGBJQD/iMU5GLhw7GX1TJQVyNBs+fOXu1CfmkWJu9D/EAMUwMxVRfzHcvmF3wsm/i5bHK0uX+rNiu8QvXed8LfJPoJIeVRSzESPIJxAHAj5URE0AFflNAQn6IvM6e0aFTFq4XRQo10s91Wy/LNA==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Milan Djokic <milan_djokic@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Ross
 Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH 4/4] sysctl: align handling of unsupported commands
Thread-Topic: [PATCH 4/4] sysctl: align handling of unsupported commands
Thread-Index: AQHcZibkme3OGvWxDky6ckEgDIZ95g==
Date: Fri, 5 Dec 2025 20:36:53 +0000
Message-ID:
 <6c7cc11e3569f69b185d32809d63b8cdca67aa25.1764961645.git.milan_djokic@epam.com>
References: <cover.1764961645.git.milan_djokic@epam.com>
In-Reply-To: <cover.1764961645.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS8PR03MB8322:EE_|AM7PR03MB6182:EE_
x-ms-office365-filtering-correlation-id: ae5f47c4-96ba-4233-5a04-08de343e0688
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?b87e5TVUdR21dga6uFPvdOOyklBWDB/h9DMsTPrIxCJFHeD7378yZ53Knr?=
 =?iso-8859-1?Q?SSjyjeiOIlVTvNQrmJMpQeIy1zBa6JxihfWcagiiTnKPn7CTSy95X9V08Z?=
 =?iso-8859-1?Q?jMIt5NssL3Gq2/NWK/4L7cpGpXO/juS0zkRLlVBQeKjoU4Z3g5W0md6sLt?=
 =?iso-8859-1?Q?nwV8cruInIp/9Mss4XusgabxZcr6YWCNkzZG8aCRaL860nd7QwJ9qzZMdh?=
 =?iso-8859-1?Q?MgCqyXJhnMO4YpnyE8AxJ9M0qHYBDD/2CuiMAawUdgk0RwNHcy+8NgK2hf?=
 =?iso-8859-1?Q?mfmXZHb0enY2OIIUn779teMkYDeukettVKs+IPdMusoymJslF9xAH00N8N?=
 =?iso-8859-1?Q?55J27h+G+pcBaB4MPY+zk6yb5TQ1gdxTX8fiP4NmXNg2gbJADkMnRY05+E?=
 =?iso-8859-1?Q?Qj4ELxceQsdcY2lA6eu5g/3kbeJfzyDLVu91UjRNzJYKSAV3r7IFvekTbs?=
 =?iso-8859-1?Q?3TX9dgWfl/dI7g+8i9/i/2Lgyq+iGEuDHHcHUxyeKxNy1UJMLHm5HAWw/n?=
 =?iso-8859-1?Q?t1QREM94uNoAHSqUZqKl4rxSU0pahgJkq0rIj91LcItHcxN6nCeQ+9PzKW?=
 =?iso-8859-1?Q?4Iq50BaNZ+PTOEbHLlWFRRVDMfy5kWJ4vywL4oYQdrljtX8WyJnKbHixqT?=
 =?iso-8859-1?Q?1g0eJo+IwSflKisk/bKGDC48V1/iedKKObWiFZ7KfGclW+8qZcvu+AbSV4?=
 =?iso-8859-1?Q?4p4KCXoMyw7d8XcQ679VZZRe0dgHpD5FzXWdkrG430/yMsl9PK9HTT/bvo?=
 =?iso-8859-1?Q?lvXpfuB4TXK8sbI1tZE86AiLp/PgnCLW2Cl8xouQ7C1QaeNdxstMELkcsP?=
 =?iso-8859-1?Q?oZxwlpP1eMoyxXnC6R8YX7jDv+zqjbbF02IZ2QG5fNMWrwSLzBLWhAcA5r?=
 =?iso-8859-1?Q?x3WtUhuHSh1XNZOAuSIDZ5FSVT8TGfxjEdEGSbtV4lCJb/izv4ac2Kwtql?=
 =?iso-8859-1?Q?aOc/YOarg3HziR3gdiSYTVxHRUQKfNkWCcm0Ui/5Ub/DId1HX8NCg9UIaF?=
 =?iso-8859-1?Q?0TGB3EmGBFJ5UfUar0oUgFE//edbpyBW2lrV21dFOTJ7urBA/3pVDTqT0z?=
 =?iso-8859-1?Q?cqy9K43QLKDlz0nQPJ/AVgNnymFQHoPY2Yw1nBRFzJ4LBLd46bJGwgmco/?=
 =?iso-8859-1?Q?DSgHs/irQe8wx5YpYjhNrWGA82/X47paLwaD3xbUQGQI79f7fDa0Inpyrc?=
 =?iso-8859-1?Q?GIYoo2lpndIT/KxTSrLXTbcqXSKX5Jio/YQyRS475dTVisKz6SrKpjzi1E?=
 =?iso-8859-1?Q?bK9cND3FZAwHhIobDh+iYq+tLj6czpbzNZ2L5P0a51VzIqpb59fVJ7gpsh?=
 =?iso-8859-1?Q?hZCUQ+rZmAdcwhtOjBrISG/u81H1S/CdrngzQehqsgvGF3ygn1fvLtnVZq?=
 =?iso-8859-1?Q?GcYX1p5MlWBUWkbRM+HlY2ymQ02QyHmTL8Wya5I6Xad7eeUSVFRuszVXYE?=
 =?iso-8859-1?Q?Ul3J/aApleAOMdpRvF7i4mJgaDCd7DKk7ooqxBHqGB/RlgWzTt9J48HQMo?=
 =?iso-8859-1?Q?xqrJLIRqzxBm7faB+EMMgfXPURmo1BmGzHmCARjNjop7rBHGxpYd2wrpf3?=
 =?iso-8859-1?Q?WBnj8CaPxOuSAvYUCVOYG9mIg66S?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB8322.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?GO1N3MwwGLX4fqYJLJSGeZm1GZ0lb5maYrkaNW/4Ssl7YCsdRdzsTpia75?=
 =?iso-8859-1?Q?6cJIff/CAaH6OCRoQnIk54IA5+c7hn9DO8fomAthwaQ6U/w6JDYf2qUUW+?=
 =?iso-8859-1?Q?18QIaL0YIreGZxl3oZg+ktxenf0VHvwpyfYYsDWv13U+FRqTI6Hr6JK+zN?=
 =?iso-8859-1?Q?ZKJrbNKiKZs1z0ifutZxiYai7ZsO3Zz4XONtM8yEvdS8eOjOsMdFBbz01+?=
 =?iso-8859-1?Q?DuKLLge7SEIuP/csmgB0PzQuaKU9X9SbD/oY1RXaAvHH4/udSIvU9u5i0n?=
 =?iso-8859-1?Q?y58GZBv9BXcNLtB99zLLKYauIAWzfRsb4tY6cYhfD902PkBIR+d7A+TJ3o?=
 =?iso-8859-1?Q?eXiw7O6plTqHcpjFzqgwLpNjxNQOD9x7yMP6ItvrdiF8Rodfp+MfXLzL73?=
 =?iso-8859-1?Q?zLonMT6CtgQm95C31UXSoN3jsNjcfcIwxY4jo6F6ICI62+XOcUHdA07UbE?=
 =?iso-8859-1?Q?CyaD0EqAMwBgtdsBOcbq+cECDvVWhSRHNdc+Z8QHY1LNeLX5YN5EzJ0MKy?=
 =?iso-8859-1?Q?Jw46JhiHMGpsLxt501UYqBZ0Rwr+anBkPaw4V48oe81apUXJRz8ZJ0PjUP?=
 =?iso-8859-1?Q?ZpDvwL6XYwc6EWn4KZ7qBBw+U/Ox7VaRRLtN80xIREtMtoKZkKmVuwjH0b?=
 =?iso-8859-1?Q?lKBjYPD8AwHHUtzT8z8q2gC4S3xhf/FunOXGnCTU+N04QIUDlGH9c/RlyL?=
 =?iso-8859-1?Q?+ZBL4Xu1gPedvP+9x/9/bejgZtHkN5ITAhKNlR8W0I3PAyMAm375oKAgE/?=
 =?iso-8859-1?Q?AKQ5MJcCJz3MkeF1l+MwnBzr3Kvv2oTZB2cQugiCzNsVOqPx9Ql3rIIkdL?=
 =?iso-8859-1?Q?op8gVWwHFqbXNABVXkLXv7+YZUnMqx0dVYf2v96d+i85Wv6H2cODpp9pcC?=
 =?iso-8859-1?Q?JfFefGaCXo6RJqVLLRtmLlQBpYZlL68pZgSG0/wX6CUn1ibH5EilCTqB1l?=
 =?iso-8859-1?Q?l4qFvKVxH/jdoiJ6bHcpC940y9JrKIbgk4z8ZfDBIy1y1MyfptUZXMOcdG?=
 =?iso-8859-1?Q?fVOkbtgrNqEujHc9zEYH7iluFYtbkvl3uV0HleNRkamzxtAa15y8ykIcN6?=
 =?iso-8859-1?Q?58CuvcOXf1S5o8Rc6YYE2LDtUY6CmUtf74i/2JOLXuOSy/sz4H4r49DMUY?=
 =?iso-8859-1?Q?0MA94nTyuNatbH3iR7oClzSU7MNHlx0vqyPaWFZ6TxuvPSROPPbUb5QFDU?=
 =?iso-8859-1?Q?KFtLJIL87j1aljQIRPh34hNQHa/+FrRrUmtdsEPq3A7rVlULrrS27I3o0w?=
 =?iso-8859-1?Q?QyOdLPI/TONNjksDTEXFS7TX+obOiv2Gt0DYl2KGIfnm8p246yIcoCmF1a?=
 =?iso-8859-1?Q?3klCthwlx3vGI6PNzMmg+uZUNsMT5uNBjvXxlm3gwvW4bfUjzB/f1p7lhZ?=
 =?iso-8859-1?Q?VjopXJJFBK0dDcdqb1BbVvoUTiW2jpMtfnqLp29Z+Q5uxWRg9g5ESt/Snr?=
 =?iso-8859-1?Q?D2ofXDDP0GClOxp2K34Yg/v4/yNwa+1ZznvcYluc5OvpP9zcVftdohapPS?=
 =?iso-8859-1?Q?KjQ+iT9jgauotQoHGtrBf/NK0Hz4F4ewT0ln479fQZbIw6bbk74XtCkIhP?=
 =?iso-8859-1?Q?/0Qbwr6mUe52boAcg/n68MJSHfV/6cHGBI6IUfduwgN4JFWUvLHXrRBzc8?=
 =?iso-8859-1?Q?TD0HZekuhSz8dBYynf6yBfUH2fT+SBGIwW?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB8322.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ae5f47c4-96ba-4233-5a04-08de343e0688
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2025 20:36:53.5131
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: MgrgwS6FBdzIJyP+ZVh5v14mgwDypBHvyG+9J49KmGk0yvcv3LPwvyt4lr+B35+PS4Bdc43UFSK+kzOmmzQgQg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR03MB6182

Handling of unsupported sysctl commands currently diverges: some commands
return -EOPNOTSUPP, while others fall back to generic -ENOSYS.

Unify the behavior so that unsupported commands consistently return the
appropriate error code, allowing the control domain to correctly identify
unsupported operations.

Using IS_ENABLED() macro to identify disabled commands, allowing
dead code to be removed at compile time.

Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/common/sysctl.c         | 34 ++++++++++++++++++++--------------
 xen/include/xen/livepatch.h |  2 +-
 xen/include/xen/perfc.h     |  4 +++-
 xen/include/xen/spinlock.h  |  6 +++---
 xen/include/xen/trace.h     |  2 +-
 5 files changed, 28 insertions(+), 20 deletions(-)

diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index 5207664252..1c4e0b60d8 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -113,17 +113,20 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u=
_sysctl)
     }
     break;
=20
-#ifdef CONFIG_PERF_COUNTERS
     case XEN_SYSCTL_perfc_op:
-        ret =3D perfc_control(&op->u.perfc_op);
+        if ( !IS_ENABLED(CONFIG_PERF_COUNTERS) )
+            ret =3D -EOPNOTSUPP;
+        else
+            ret =3D perfc_control(&op->u.perfc_op);
         break;
-#endif
=20
-#ifdef CONFIG_DEBUG_LOCK_PROFILE
     case XEN_SYSCTL_lockprof_op:
-        ret =3D spinlock_profile_control(&op->u.lockprof_op);
+        if ( !IS_ENABLED(CONFIG_DEBUG_LOCK_PROFILE) )
+            ret =3D -EOPNOTSUPP;
+        else
+            ret =3D spinlock_profile_control(&op->u.lockprof_op);
         break;
-#endif
+
     case XEN_SYSCTL_debug_keys:
     {
         char c;
@@ -170,19 +173,22 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u=
_sysctl)
         op->u.availheap.avail_bytes <<=3D PAGE_SHIFT;
         break;
=20
-#ifdef CONFIG_PM_STATS
     case XEN_SYSCTL_get_pmstat:
-        ret =3D do_get_pm_info(&op->u.get_pmstat);
+        if ( !IS_ENABLED(CONFIG_PM_STATS) )
+            ret =3D -EOPNOTSUPP;
+        else
+            ret =3D do_get_pm_info(&op->u.get_pmstat);
         break;
-#endif
=20
-#ifdef CONFIG_PM_OP
     case XEN_SYSCTL_pm_op:
-        ret =3D do_pm_op(&op->u.pm_op);
-        if ( ret =3D=3D -EAGAIN )
-            copyback =3D 1;
+        if ( !IS_ENABLED(CONFIG_PM_OP) )
+            ret =3D -EOPNOTSUPP;
+        else {
+            ret =3D do_pm_op(&op->u.pm_op);
+            if ( ret =3D=3D -EAGAIN )
+                copyback =3D 1;
+        }
         break;
-#endif
=20
     case XEN_SYSCTL_page_offline_op:
     {
diff --git a/xen/include/xen/livepatch.h b/xen/include/xen/livepatch.h
index d074a5bebe..1601b860d8 100644
--- a/xen/include/xen/livepatch.h
+++ b/xen/include/xen/livepatch.h
@@ -157,7 +157,7 @@ void revert_payload_tail(struct payload *data);
=20
 static inline int livepatch_op(struct xen_sysctl_livepatch_op *op)
 {
-    return -ENOSYS;
+    return -EOPNOTSUPP;
 }
=20
 static inline void check_for_livepatch_work(void) {}
diff --git a/xen/include/xen/perfc.h b/xen/include/xen/perfc.h
index bf0eb032f7..a44c2f74a1 100644
--- a/xen/include/xen/perfc.h
+++ b/xen/include/xen/perfc.h
@@ -92,7 +92,6 @@ DECLARE_PER_CPU(perfc_t[NUM_PERFCOUNTERS], perfcounters);
 #endif
=20
 struct xen_sysctl_perfc_op;
-int perfc_control(struct xen_sysctl_perfc_op *pc);
=20
 extern void cf_check perfc_printall(unsigned char key);
 extern void cf_check perfc_reset(unsigned char key);
@@ -114,4 +113,7 @@ extern void cf_check perfc_reset(unsigned char key);
=20
 #endif /* CONFIG_PERF_COUNTERS */
=20
+struct xen_sysctl_perfc_op;
+extern int perfc_control(struct xen_sysctl_perfc_op *pc);
+
 #endif /* __XEN_PERFC_H__ */
diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
index ca9d8c7ec0..10ee81b7db 100644
--- a/xen/include/xen/spinlock.h
+++ b/xen/include/xen/spinlock.h
@@ -7,6 +7,7 @@
=20
 #include <asm/system.h>
 #include <asm/spinlock.h>
+#include <public/sysctl.h>
=20
 #define SPINLOCK_CPU_BITS  16
=20
@@ -40,8 +41,6 @@ union lock_debug { };
=20
 #ifdef CONFIG_DEBUG_LOCK_PROFILE
=20
-#include <public/sysctl.h>
-
 /*
     lock profiling on:
=20
@@ -164,7 +163,6 @@ void _lock_profile_deregister_struct(int32_t type,
 #define lock_profile_deregister_struct(type, ptr)                         =
    \
     _lock_profile_deregister_struct(type, &((ptr)->profile_head))
=20
-extern int spinlock_profile_control(struct xen_sysctl_lockprof_op *pc);
 extern void cf_check spinlock_profile_printall(unsigned char key);
 extern void cf_check spinlock_profile_reset(unsigned char key);
=20
@@ -360,4 +358,6 @@ static always_inline void nrspin_lock_irq(rspinlock_t *=
l)
 #define nrspin_unlock_irqrestore(l, f) _nrspin_unlock_irqrestore(l, f)
 #define nrspin_unlock_irq(l)           _nrspin_unlock_irq(l)
=20
+extern int spinlock_profile_control(struct xen_sysctl_lockprof_op *pc);
+
 #endif /* __SPINLOCK_H__ */
diff --git a/xen/include/xen/trace.h b/xen/include/xen/trace.h
index 30ebdcc47f..fff3a4f451 100644
--- a/xen/include/xen/trace.h
+++ b/xen/include/xen/trace.h
@@ -48,7 +48,7 @@ void __trace_hypercall(uint32_t event, unsigned long op,
=20
 static inline int tb_control(struct xen_sysctl_tbuf_op *tbc)
 {
-    return -ENOSYS;
+    return -EOPNOTSUPP;
 }
=20
 static inline int trace_will_trace_event(uint32_t event)
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 22:00:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 22:00:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179518.1502998 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRdqc-0003b1-0g; Fri, 05 Dec 2025 22:00:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179518.1502998; Fri, 05 Dec 2025 22:00:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRdqb-0003aa-TG; Fri, 05 Dec 2025 22:00:17 +0000
Received: by outflank-mailman (input) for mailman id 1179518;
 Fri, 05 Dec 2025 22:00:17 +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
 <SRS0=niBk=6L=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vRdqb-0003aH-0O
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 22:00:17 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c7af2b1c-d225-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 23:00:15 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-42e2cf93f7dso1860711f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 05 Dec 2025 14:00:15 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbe9032sm10102264f8f.1.2025.12.05.14.00.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 05 Dec 2025 14:00:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c7af2b1c-d225-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764972014; x=1765576814; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=A7cWpm7fhqdpySlH/flHfO3tTWq/vZMmRpwJy2cV4P0=;
        b=pXwfzwwaTPSE/tiVUOPM40T6kNXHF87grwYmTq3+6wNrsXFgIzNGRthzvjK+7SJH2u
         kmSvJjb4TJS6fHjlg51o3n/GuvXiZACIDmYEuv4gNqUfcfMqjQKFYOxq3azBMc9llFxm
         5Dv0uscdXtxIcnG6tejZGhxoyVF2dRmemSMGM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764972014; x=1765576814;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=A7cWpm7fhqdpySlH/flHfO3tTWq/vZMmRpwJy2cV4P0=;
        b=PWw6RMeFPcn9MI3OdxCnSVPPUCr9/Zl9VbQRtLnosV+l4IgT+/eX/FxXCr3Lf4e8uq
         JAbcs7yFYGYRb/K2TnlXF1pWGoe/+Jur0AP+YtA2R2lUwZtgmNh7KMBqCCojnZ2Gey28
         MWmP0LUi1eqFCmaE21JhXRCEax1ubzaWuN2HD0od/y/+usKCQBYuqf5gZc73V4sYF+O7
         PK9pLEQlCKqxaEYg4nVw+Zywea1fQ7EMasesOCKGiuk1yLlJQIRk94r02DRfmc/QuYRV
         zKn6XToxP7mU68GaPYjNjD7g44IPaxnY+2GTnzazdGvqOmUglTmtbQR5PYRFszXcenCS
         +vQA==
X-Gm-Message-State: AOJu0Yx1DWCVDVm6N3nWI+w/qHuWA93POPwfsgpk4DAeG0DrQijLtlT0
	COQDh9OV4KwthbsfDgEXTAMs9t0BzUmxBtW6kprVdYcIUXTjAVCi1dnQfwJqBA4CfGySlch1jcL
	1nSgm
X-Gm-Gg: ASbGnctGu1tn44H6NQ2jpG08YuolBuxFWYbT+JXsPtd78U3I/jOwIDDAeLGFrPzwe6u
	rldlOeiwWeAndzu7FFaJp8goT0bmpbi2puTNA+bi1/tdzhf0p2glUkj7cQI5ISqlLU0Afl1b6np
	lliQHGgdXeicIRIMvmnNeyNi+6NcpHkQEPp78niAiFIVriMjZZfPowEQtpjJODTRAUyv9NHeqjB
	AA3zTjfHx3ej+D5qE4ktLWK2OXd3luZQPHZ6iuoeUkNWdqZZKImpW/cm8dJk57UKpGxZCl2daMl
	8XmLaW5nyvr+plNzlMdkuMIpobdXML4ofI6UwCS/+1lyNX3MSfoey/EaZsifCmM+YKIV3kZd9OS
	zY14kjEEV6DHLcYg7MzL2AIwftfLvOSPoxZyVJpVpC3FsenPcBZWlqyToL8SmE9ovTLmvc9Xdxx
	cGoS9nvVd8tGmTy399N4P758IxKaw5tXw4L1SXruWvZd8YkaEpdjk9GCZK96wDjw==
X-Google-Smtp-Source: AGHT+IHQNHpnsdaEA5dWLYqOlNK2kRWho8cCHBKJnXIjkw/8ef+PTslNx4oZZyH2S8nn2MkOipESLQ==
X-Received: by 2002:a05:6000:4282:b0:42b:2ee0:569f with SMTP id ffacd0b85a97d-42f89f47f19mr589127f8f.33.1764972014526;
        Fri, 05 Dec 2025 14:00:14 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] tools/sd-notify.h: Include string.h too
Date: Fri,  5 Dec 2025 22:00:12 +0000
Message-Id: <20251205220012.1976435-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Alpine Linux, when using --enable-systemd to get the init files, fails with:

  tools/include/xen-sd-notify.h:69:3: error: call to undeclared library
  function 'memcpy' with type 'void *(void *, const void *, unsigned long)';
  ISO C99 and later do not support implicit function declarations
  [-Wimplicit-function-declaration]
     69 |   memcpy(socket_addr.sun.sun_path, socket_path, path_length);
        |   ^

This will be down to using musl rather than glibc.  Include the appropriate
header.

Fixes: 78510f3a1522 ("tools: Import stand-alone sd_notify() implementation from systemd")
Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Example failure:
  https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/12336994239
---
 tools/include/xen-sd-notify.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/include/xen-sd-notify.h b/tools/include/xen-sd-notify.h
index 28c9b20f152d..20441d0ec9b8 100644
--- a/tools/include/xen-sd-notify.h
+++ b/tools/include/xen-sd-notify.h
@@ -20,6 +20,7 @@
 #include <errno.h>
 #include <stddef.h>
 #include <stdlib.h>
+#include <string.h>
 #include <sys/socket.h>
 #include <sys/un.h>
 #include <unistd.h>

base-commit: d430c0a66e102fb12baeec6a178c20da7864d5b5
prerequisite-patch-id: 3db642dd7c06f6988283444c764cd646982775bb
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 22:28:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 22:28:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179537.1503008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vReHq-0006c7-UC; Fri, 05 Dec 2025 22:28:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179537.1503008; Fri, 05 Dec 2025 22:28:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vReHq-0006c0-RL; Fri, 05 Dec 2025 22:28:26 +0000
Received: by outflank-mailman (input) for mailman id 1179537;
 Fri, 05 Dec 2025 22:28:25 +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
 <SRS0=fOju=6L=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vReHp-0006bu-Hw
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 22:28:25 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b47817b7-d229-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 23:28:22 +0100 (CET)
Received: from SN7PR04CA0117.namprd04.prod.outlook.com (2603:10b6:806:122::32)
 by PH0PR12MB7485.namprd12.prod.outlook.com (2603:10b6:510:1e9::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Fri, 5 Dec
 2025 22:28:16 +0000
Received: from SN1PEPF0002636E.namprd02.prod.outlook.com
 (2603:10b6:806:122:cafe::6d) by SN7PR04CA0117.outlook.office365.com
 (2603:10b6:806:122::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.11 via Frontend Transport; Fri,
 5 Dec 2025 22:28:06 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF0002636E.mail.protection.outlook.com (10.167.241.139) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 5 Dec 2025 22:28:15 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 5 Dec
 2025 16:28:15 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 5 Dec
 2025 14:28:15 -0800
Received: from fedora.mshome.net (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 5 Dec 2025 14:28:14 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b47817b7-d229-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wo4YN5QgygiDIYhrWCgJ5NtHrhZjvJB2yV2ErkPCTmZKxxdzgx0TKAAGifDo2eH/kmZTCmtii/mz5+vhPK+hSqnWoyuRSdyHgZhUDmuvFI2B2nt2aZTiVpK+waJD9lk17/E1HDX5fGF6j0arVmpZSmdGCKIg+6/deN0QlPWiR02Yo/FXqiiCrg/6MlpXQHDBNEl8b7orbVzb32epw3KeFSWTuTidcV/3wJd4yDgeGQIlmeZkhHeDH+nZn6IhbAQwylgusjxZbDuDZ/sKwV2lwDnLpLOpcsnElQX+JeabTTGjrad7zHvFQoV69jQqwR2q1nBynj8phBc4N8x2sWm9Bw==
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=CniC5TJ4opgtxBQMODUCLUTmWodkiItGI6vS5QnA70g=;
 b=hkv5p/SVX4w7J+PZpIyfi+O4j19flkddcjxpK4KgwMnvTYH4yI+2ySvsRansR1p/ha0chWgTCgh8Xks6OfaqYLhL2MHsZCQ9lsVyuyXxxj3TzJA6UJDgJXth8QXFsavpC/PVftogRoDcLL+BZyVh/GdSq3WeS0vtIYoi2Y8NMWhRtFyRdTRfjsHeKE49UatIQsKvTpDn2YdPtUhQqYha4tWIeqSUaW9eIzKYCXeyOGfKpx6q6MBi18KhvMtksetFvTv94AWDQFEN2FMvDZiOyldN9jj02nm2LU2fK/86BuvYbVdwP+5Fira0VzBzOCRkqlw6rwbbsazKGauWO8wOZA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CniC5TJ4opgtxBQMODUCLUTmWodkiItGI6vS5QnA70g=;
 b=FXmkLO5gk1gyorBfRvxb0TIjFLB2GM2TKMmjOEcZSUtyhjjMZBJcy9f24/mmMkYFzcIW3H/9GxhGmVO1Fn+lDFSHbbZxBubJAAEk9MQCBYO16nCK3O+fzHVIf7tE8EzRwZYnrFvATUzrNM55JZmnLxUkJ4qqIREhaztQch+t/w0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Grygorii Strashko <grygorii_strashko@epam.com>
Subject: [PATCH] RFC: xen/x86: Enable --gc-sections
Date: Fri, 5 Dec 2025 17:28:12 -0500
Message-ID: <20251205222813.277164-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.51.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF0002636E:EE_|PH0PR12MB7485:EE_
X-MS-Office365-Filtering-Correlation-Id: 1b0ba73b-4351-428d-dd48-08de344d959b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?oXNql7SkiFqYeLO9th62qQ6Z/XMaqGcRCqH5PxNCA+YoIuz43cn7LzQA3qpN?=
 =?us-ascii?Q?hCajnHct27Ju8901RiekPVPEnjC/rMaBMgkm10tsLnKyUJ9Bu5/DqVhZw0Qu?=
 =?us-ascii?Q?D02i6cOqEBRinkf9lUj3HIyHL+3izMqUBAokeVxr4FL2U+t9HYmG9RT7ZcFF?=
 =?us-ascii?Q?lmBiAw4EK+0+u9TcAHNISN3DCZzeSlY/vFgx+G9sozACV0/gR8YM99SSmjB2?=
 =?us-ascii?Q?oe93RAV6yNwbSKEmULlLnrKxiXuZFAQxLBZwWd/ECwwoi+lhXp9aG/72s+W0?=
 =?us-ascii?Q?Iv+penmoAF691BG3HMhCHLFQQ+g5EC2zw0EAohDAnDCx5Wf4jW6PYr4D6OAL?=
 =?us-ascii?Q?RIFSLS58hnNwn/w4xgMWwAEcuEHF7q3xClyCZPWN3IGKc01+y43bTb5UDoky?=
 =?us-ascii?Q?c01qzzcHWOfmRV0HCDIkTSBn6anLjDFWZ32SOZfNoQqxw7cjGvhDs/RzYUR0?=
 =?us-ascii?Q?foPpE2W7pxlEWHhz/ZlSfgbYQ+ohxEja9LJRE63IRyLUBepNZ5PQ8LRrSkuk?=
 =?us-ascii?Q?QrbKFzoiBSUd6EqgO/WXbSJVVIkaKPyiHG1asFjTFiIZsEusc6XhUuO50gya?=
 =?us-ascii?Q?bZfjW1u6IWM2IsjiP+aJqkrPiD+7DwoFyDzpq4vXZ5cqwFXZ7VVnoQTQ6Myb?=
 =?us-ascii?Q?xHugOyUWD2pJYFsemiBjJdunBN7Ah+5+/KEWFFW0l0MaQAYkCGPpt/4dMWYF?=
 =?us-ascii?Q?jnDKAWvP1LQt8ivWZmAwBozeGNV/D7jyAo/dsOZ6csxOSdPuyKPvK1eLYuVq?=
 =?us-ascii?Q?+oepzvE4mQF4uTRXZURbRtv+553dMBGd3y5O+6BKNB1K+x+gCiiW9kmiRLcd?=
 =?us-ascii?Q?/QbBTKW94vgsimyV9tm/eP6RvbUIt2l1lGXuS2phJbaXWfQzdS7vBmI4kQNZ?=
 =?us-ascii?Q?kGIKPbGAgB0DwAa7rRRUDV3c3NwH7nBhROQmaUCH42VrbmYKUpGUebMSOf3N?=
 =?us-ascii?Q?glMNgXXjfGYv7rzxy9Y9Z/faNik01RUvZNQHj6XAfNKIZo044VOrNoP94TLs?=
 =?us-ascii?Q?BaXuI/+zZCRSRHKWWBs9yX64NK+f51XhqbPUbqUyPfyuEWfLzYyZg07nZnVs?=
 =?us-ascii?Q?EXiuhwRzkJZlxx9m92Wov4Kvf4gUFLcu+JXOio7iYGPgqStgpFKIyC3BggVJ?=
 =?us-ascii?Q?2ILPrhXl+WB05be4L7Adx4EQdWrBcKe5JJm+MiyBL9fFJ2e898fR2nvro6Fk?=
 =?us-ascii?Q?m4N/txKAsPDTz2xAFzmKjh5Q0L3ohduAcfS9hMeaZ00AWOJk3sf4lWGr5Xmb?=
 =?us-ascii?Q?0qCflIa7VUoIkGTvuaowp0uT/AFT9NKFEG2XVsb1SWXZ2uMxx5f2i5w8t7Ni?=
 =?us-ascii?Q?p8cQrqQSf+/3Nc9yAQFDIM4BFJSJdhP7EaNKHOAtuU4FTHR9Hd1y6+HIqvFM?=
 =?us-ascii?Q?tTS4cqDgPP4AfJeQZqmfRp3975NpgzQbfMaLcPY8FVsE/GEbwa5OCya84IDy?=
 =?us-ascii?Q?rMoJuU8DUCZV4WrsIyxWFHXf02M7EI2b6/4GrtHefK8P5HdnD4bITapeRe8z?=
 =?us-ascii?Q?jiSqygrehZvNJKRGGDvNgrTwpQ3bfJjXqokbXJI4V7qdxfPFOPEzYGwuhuf6?=
 =?us-ascii?Q?dat/CtdFdOYrf4xkFds=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 22:28:15.9608
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1b0ba73b-4351-428d-dd48-08de344d959b
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF0002636E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7485

When linking to create xen-syms, add --gc-sections to garbage collect
unused stuff.  Relies on CONFIG_CC_SPLIT_SECTIONS

We need to add KEEP() to the linker script in assorted places to retain
appropriate data - especially the arrays created therein.

Something is off though.  In a test where memory_add() is unreachable,
it is still included.  I'm not sure, but I am wondering if it's the
alternatives somehow keeping a reference to it.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
With --print-gc-sections on defconfig:
ld: removing unused section '.text.__bitmap_full' in file 'prelink.o'
ld: removing unused section '.text.__bitmap_xor' in file 'prelink.o'
ld: removing unused section '.text.__bitmap_set' in file 'prelink.o'
ld: removing unused section '.text.__bitmap_clear' in file 'prelink.o'
ld: removing unused section '.text.bitmap_find_free_region' in file 'prelink.o'
ld: removing unused section '.text.bitmap_release_region' in file 'prelink.o'
ld: removing unused section '.text.domain_has_ioreq_server' in file 'prelink.o'
ld: removing unused section '.text.compat_kexec_op' in file 'prelink.o'
ld: removing unused section '.text.in_atomic' in file 'prelink.o'
ld: removing unused section '.text.radix_tree_next_hole' in file 'prelink.o'
ld: removing unused section '.text.radix_tree_prev_hole' in file 'prelink.o'
ld: removing unused section '.text.radix_tree_gang_lookup_slot' in file 'prelink.o'
ld: removing unused section '.text._nrspin_trylock' in file 'prelink.o'
ld: removing unused section '.text.xen_compile_host' in file 'prelink.o'
ld: removing unused section '.text.vscnprintf' in file 'prelink.o'
ld: removing unused section '.text.wake_up_one' in file 'prelink.o'
ld: removing unused section '.text.xmem_pool_get_used_size' in file 'prelink.o'
ld: removing unused section '.text.xmem_pool_get_total_size' in file 'prelink.o'
ld: removing unused section '.text.xmem_pool_maxalloc' in file 'prelink.o'
ld: removing unused section '.text.xlat_start_info' in file 'prelink.o'
ld: removing unused section '.text.elf_sym_by_name' in file 'prelink.o'
ld: removing unused section '.text.elf_sym_by_index' in file 'prelink.o'
ld: removing unused section '.text.elf_get_ptr' in file 'prelink.o'
ld: removing unused section '.text.elf_lookup_addr' in file 'prelink.o'
ld: removing unused section '.text.serial_vuart_info' in file 'prelink.o'
ld: removing unused section '.text.pci_find_next_cap' in file 'prelink.o'
ld: removing unused section '.text.free_hvm_irq_dpci' in file 'prelink.o'
ld: removing unused section '.text.mce_barrier_init' in file 'prelink.o'
ld: removing unused section '.text.mce_barrier_dec' in file 'prelink.o'
ld: removing unused section '.text.mce_barrier' in file 'prelink.o'
ld: removing unused section '.text.apei_read_mce' in file 'prelink.o'
ld: removing unused section '.text.apei_check_mce' in file 'prelink.o'
ld: removing unused section '.text.apei_clear_mce' in file 'prelink.o'
ld: removing unused section '.text.efi_halt_system' in file 'prelink.o'
ld: removing unused section '.text.get_vvmcs_virtual_safe' in file 'prelink.o'
ld: removing unused section '.text.get_vvmcs_real_safe' in file 'prelink.o'
ld: removing unused section '.text.set_vvmcs_real' in file 'prelink.o'
ld: removing unused section '.text.set_vvmcs_virtual_safe' in file 'prelink.o'
ld: removing unused section '.text.set_vvmcs_real_safe' in file 'prelink.o'
ld: removing unused section '.text.domain_set_alloc_bitsize' in file 'prelink.o'
ld: removing unused section '.text.watchdog_enabled' in file 'prelink.o'
ld: removing unused section '.text.unset_nmi_callback' in file 'prelink.o'
ld: removing unused section '.text.sha2_256_init' in file 'prelink.o'
ld: removing unused section '.text.xxh64_copy_state' in file 'prelink.o'
ld: removing unused section '.text.xxh64' in file 'prelink.o'
ld: removing unused section '.discard' in file 'prelink.o'
ld: removing unused section '.rodata.xen_compile_host.str1.1' in file 'prelink.o'
ld: removing unused section '.rodata.elf_lookup_addr.str1.1' in file 'prelink.o'
ld: removing unused section '.rodata.apei_read_mce.str1.8' in file 'prelink.o'
ld: removing unused section '.rodata.efi_halt_system.str1.8' in file 'prelink.o'
ld: removing unused section '.rodata.play_dead.str1.1' in file 'prelink.o'
ld: removing unused section '.data.rel.ro.local.fetch_type_names' in file 'prelink.o'
---
 xen/arch/x86/Makefile     |  3 +++
 xen/arch/x86/xen.lds.S    | 38 +++++++++++++++++++-------------------
 xen/include/xen/xen.lds.h | 18 +++++++++---------
 3 files changed, 31 insertions(+), 28 deletions(-)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 300cc67407..934c79411a 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -137,18 +137,21 @@ $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
 	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0.S
 	$(MAKE) $(build)=$(@D) $(dot-target).0.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
+	      --gc-sections \
 	      $(dot-target).0.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).1.S
 	$(MAKE) $(build)=$(@D) $(dot-target).1.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
+	      --gc-sections \
 	    $(dot-target).1.o -o $(dot-target).1
 	$(NM) -pa --format=sysv $(dot-target).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort $(syms-warn-dup-y) \
 		> $(dot-target).2.S
 	$(MAKE) $(build)=$(@D) $(dot-target).2.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
+	      --gc-sections \
 	    $(orphan-handling-y) $(dot-target).2.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 527872a6db..e3ad58f688 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -76,7 +76,7 @@ SECTIONS
   _start = .;
   DECL_SECTION(.text) {
         _stext = .;            /* Text and read-only data */
-       *(.text.header)
+       KEEP(*(.text.header))
 
        . = ALIGN(PAGE_SIZE);
        _stextentry = .;
@@ -98,7 +98,7 @@ SECTIONS
 #endif
        *(.text.__x86_indirect_thunk_*)
 
-       *(.fixup)
+       KEEP(*(.fixup))
        *(.gnu.warning)
        _etext = .;             /* End of text section */
   } PHDR(text) = 0x9090
@@ -116,12 +116,12 @@ SECTIONS
        . = ALIGN(8);
        /* Exception table */
        __start___ex_table = .;
-       *(.ex_table)
+       KEEP(*(.ex_table))
        __stop___ex_table = .;
 
        /* Pre-exception table */
        __start___pre_ex_table = .;
-       *(.ex_table.pre)
+       KEEP(*(.ex_table.pre))
        __stop___pre_ex_table = .;
 
        . = ALIGN(PAGE_SIZE);
@@ -212,7 +212,7 @@ SECTIONS
         * as binary blobs. The .altinstructions has enough data to get
         * the address and the length of them to patch the kernel safely.
         */
-       *(.altinstr_replacement)
+       KEEP(*(.altinstr_replacement))
 
 #ifdef EFI /* EFI wants to merge all of .init.*  ELF doesn't. */
        . = ALIGN(SMP_CACHE_BYTES);
@@ -225,8 +225,8 @@ SECTIONS
 
        . = ALIGN(POINTER_ALIGN);
        __initdata_cf_clobber_start = .;
-       *(.init.data.cf_clobber)
-       *(.init.rodata.cf_clobber)
+       KEEP(*(.init.data.cf_clobber))
+       KEEP(*(.init.rodata.cf_clobber))
        __initdata_cf_clobber_end = .;
 
        *(.init.rodata)
@@ -234,13 +234,13 @@ SECTIONS
 
        . = ALIGN(POINTER_ALIGN);
        __setup_start = .;
-       *(.init.setup)
+       KEEP(*(.init.setup))
        __setup_end = .;
 
        __initcall_start = .;
-       *(.initcallpresmp.init)
+       KEEP(*(.initcallpresmp.init))
        __presmp_initcall_end = .;
-       *(.initcall1.init)
+       KEEP(*(.initcall1.init))
        __initcall_end = .;
 
        *(.init.data)
@@ -248,10 +248,10 @@ SECTIONS
        *(.init.data.rel.*)
        . = ALIGN(4);
        __trampoline_rel_start = .;
-       *(.trampoline_rel)
+       KEEP(*(.trampoline_rel))
        __trampoline_rel_stop = .;
        __trampoline_seg_start = .;
-       *(.trampoline_seg)
+       KEEP(*(.trampoline_seg))
        __trampoline_seg_stop = .;
        /*
         * struct alt_inst entries. From the header (alternative.h):
@@ -260,21 +260,21 @@ SECTIONS
         */
        . = ALIGN(8);
         __alt_instructions = .;
-        *(.altinstructions)
+        KEEP(*(.altinstructions))
         __alt_instructions_end = .;
         . = ALIGN(4);
         __alt_call_sites_start = .;
-        *(.alt_call_sites)
+        KEEP(*(.alt_call_sites))
         __alt_call_sites_end = .;
 
        LOCK_PROFILE_DATA
 
        . = ALIGN(8);
        __ctors_start = .;
-       *(SORT_BY_INIT_PRIORITY(.init_array.*))
-       *(SORT_BY_INIT_PRIORITY(.ctors.*))
-       *(.init_array)
-       *(.ctors)
+       KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*)))
+       KEEP(*(SORT_BY_INIT_PRIORITY(.ctors.*)))
+       KEEP(*(.init_array))
+       KEEP(*(.ctors))
        __ctors_end = .;
   } PHDR(text)
 
@@ -316,7 +316,7 @@ SECTIONS
        *(.data.read_mostly)
        . = ALIGN(8);
        __start_schedulers_array = .;
-       *(.data.schedulers)
+       KEEP(*(.data.schedulers))
        __end_schedulers_array = .;
 
        HYPFS_PARAM
diff --git a/xen/include/xen/xen.lds.h b/xen/include/xen/xen.lds.h
index f54fb2d152..9a1eb23c73 100644
--- a/xen/include/xen/xen.lds.h
+++ b/xen/include/xen/xen.lds.h
@@ -144,32 +144,32 @@
   . = ALIGN(POINTER_ALIGN);  \
   DECL_SECTION(.adev.info) { \
       _asdevice = .;         \
-      *(.adev.info)          \
+      KEEP(*(.adev.info))    \
       _aedevice = .;         \
   } :text
 
 #define BUGFRAMES                               \
     __start_bug_frames_0 = .;                   \
-    *(.bug_frames.0)                            \
+    KEEP(*(.bug_frames.0))                      \
     __stop_bug_frames_0 = .;                    \
                                                 \
     __start_bug_frames_1 = .;                   \
-    *(.bug_frames.1)                            \
+    KEEP(*(.bug_frames.1))                      \
     __stop_bug_frames_1 = .;                    \
                                                 \
     __start_bug_frames_2 = .;                   \
-    *(.bug_frames.2)                            \
+    KEEP(*(.bug_frames.2))                      \
     __stop_bug_frames_2 = .;                    \
                                                 \
     __start_bug_frames_3 = .;                   \
-    *(.bug_frames.3)                            \
+    KEEP(*(.bug_frames.3))                      \
     __stop_bug_frames_3 = .;
 
 #define DT_DEV_INFO         \
   . = ALIGN(POINTER_ALIGN); \
   DECL_SECTION(.dev.info) { \
        _sdevice = .;        \
-       *(.dev.info)         \
+       KEEP(*(.dev.info))   \
        _edevice = .;        \
   } :text
 
@@ -177,7 +177,7 @@
 #define HYPFS_PARAM              \
        . = ALIGN(POINTER_ALIGN); \
        __paramhypfs_start = .;   \
-       *(.data.paramhypfs)       \
+       KEEP(*(.data.paramhypfs)) \
        __paramhypfs_end = .;
 #else
 #define HYPFS_PARAM
@@ -187,7 +187,7 @@
 #define LOCK_PROFILE_DATA        \
        . = ALIGN(POINTER_ALIGN); \
        __lock_profile_start = .; \
-       *(.lockprofile.data)      \
+       KEEP(*(.lockprofile.data))\
        __lock_profile_end = .;
 #else
 #define LOCK_PROFILE_DATA
@@ -207,7 +207,7 @@
 #define VPCI_ARRAY               \
        . = ALIGN(POINTER_ALIGN); \
        __start_vpci_array = .;   \
-       *(.data.rel.ro.vpci)      \
+       KEEP(*(.data.rel.ro.vpci))\
        __end_vpci_array = .;
 #else
 #define VPCI_ARRAY
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 05 22:41:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 22:41:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179553.1503017 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vReU0-0000vI-V8; Fri, 05 Dec 2025 22:41:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179553.1503017; Fri, 05 Dec 2025 22:41:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vReU0-0000vB-SL; Fri, 05 Dec 2025 22:41:00 +0000
Received: by outflank-mailman (input) for mailman id 1179553;
 Fri, 05 Dec 2025 22:40:59 +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
 <SRS0=K96r=6L=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vReTy-0000v3-Vf
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 22:40:59 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7735e541-d22b-11f0-9d1b-b5c5bf9af7f9;
 Fri, 05 Dec 2025 23:40:57 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV9PR03MB8389.namprd03.prod.outlook.com (2603:10b6:408:367::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Fri, 5 Dec
 2025 22:40:55 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.009; Fri, 5 Dec 2025
 22:40:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7735e541-d22b-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SSSoAUMdOk23kGc0zGGyLv+B2OyncO0hJ9XzxO8SW1JQKO7Zm4qJZV2QRqGxilrMUVZquhx6FkG8C8QBcieJDvi89vUOhNbxMOSZk+FXmCOB/AVHru1zQace49lBofYaaAXvSyaRSzpHzCdHXdh36TR/BHrEWyUUQcP1yKOffrsUxmuvRMvt4ps5AyV7MSXRo9pB6Iz23XOZ7jmYH1NEeaBj7HDQgNBEM31yOxvHkEuYVSMLqsuTE7VrCCNuSHylCXYzTej/Fn7FYM1f0o5yHvRUuY1Mn44Sv21T3Dqw2VWgJ9DNBHQegHMr8Egumn4l0me3q8UsSTtd6rcDLj6u2g==
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=TZ6uq6GbfqE6EGq8dAff81b0Aa9e/5u9BEovV8qNXcI=;
 b=uphkXNiP90QFUOFYV8HzkMilB6pjcaaQ3kk2Kl7A++WHcnA254Vt1dio/2YMaSwGTWwDpG7M591eXXUlDj5Iil5tko7xVte4fQWgAipb1MU7oq0hIAZeU4zDkCayZU3kKGAP5GzYJ4vaocOcCCrqciNvlLG2372zmQd7mlFREnHdfeN/7l4luM+zDzvpH4CSZoR/z/2SjPEQroYRhy4nVF9VN6esLNHIuw2P88XYLnN2W6f5xzBrgBqGuwe/fpbnMK3uDY5piiiHYTdPjIcYzWYv8bsTHsZrwWMP56GupLgdcLnQnUDx/uL25MlBASechsmNCKDWIlnlrrYTzizCdQ==
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=TZ6uq6GbfqE6EGq8dAff81b0Aa9e/5u9BEovV8qNXcI=;
 b=fWx2wsyRFBgXtYoS1PjP17wbRTKUL52S1eWWk3rNRMUdnJyfaKZxmnedYCfJAXU17sbgjgZqE+K66rgnBQ4tcpzRwyQi4QwkVQ/cGtjFWqo+PtTKfErtork0fNKSyIW8C9NGiEVVyP9pvT1iLyyDLc2ZilBKOBYlsEwGzgM/uCc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <8dce8443-5a97-42c4-b867-27b83415b3d1@citrix.com>
Date: Fri, 5 Dec 2025 22:40:51 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [PATCH] RFC: xen/x86: Enable --gc-sections
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20251205222813.277164-1-jason.andryuk@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251205222813.277164-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO0P265CA0015.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:355::6) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|LV9PR03MB8389:EE_
X-MS-Office365-Filtering-Correlation-Id: 75bd134c-36fc-467e-03e1-08de344f59f8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?d1NDL0QxSVo4ZjErWFJyNmQ0UEJlK2o0QU1rTTAzd2ExS0RrLy9mRXlUNStY?=
 =?utf-8?B?d05ZZk9VZ29wNUFoUStMN3lYZkRud1pSWUQyV3NpSmlaWmltanlRVldJam1z?=
 =?utf-8?B?V3UrUG1tVERpbzdnNG9TVStSRm50UW9yTGVNdllqSDVGQ1d1ajhHd3ZJZStu?=
 =?utf-8?B?ZWJsTUdieURzWEdwRFBxT1c4NTBKM2FhWnZyZ1d3OFdQT1hlemgyR24yWXha?=
 =?utf-8?B?K1JsWDVZdjVoYS9nK3ZlL2Q0S08yeWVBRW1uSWpFSVprQjJFeWtLOG0zUDhs?=
 =?utf-8?B?MEZKL3pXTVZmVnlBVkZXVGIwZkJHZHI3c3lwbWhWSnBKZWVtUzFVREV4WnFF?=
 =?utf-8?B?eks1N2JZN244WUtST21pSWlocDRibUJsUURVckt0cUFxWWR2OFo2SHNZbDA1?=
 =?utf-8?B?cnBnWjlyaXJ6UktXc1VqRmF2b1VJVGIzeTdoMmxCNzYvdU9iZ292eW1NZUpw?=
 =?utf-8?B?dXRzcW5wUkxyTGd3L3cvS2FOU3lqZHJrMDFTNXJTWXZTNVQ5NjNISEE3K0pY?=
 =?utf-8?B?MVlSTEEza01WTjV1YlA3QkprUElkWkZDemdQYUVlcmprWTZHdDNkWkIxRGQ5?=
 =?utf-8?B?VnYyRml2RC9hTE1ndTJTSzBGQVNvcnJwNitUNG1qOGoyQ2twaENzVDYwWWNN?=
 =?utf-8?B?VFlwWXppMUdQWlM1ZXNlTmhFd2NIbkR5cnBNK1pyQmhCbXBuVGJBWHF1dm0w?=
 =?utf-8?B?Tkw2bkZrL0RROGN6Ry9SSHNtbldPR3luYXpkUlNEU0FtbS9IZ0ZsR1Q4aDAx?=
 =?utf-8?B?dnlmTlgvTWtwUUswNnpjeExUWHJ4akp1MzVMME9lMUh5ZXRzcEtuZnlMb001?=
 =?utf-8?B?WG1JQkpWNVF4YXltOU45OEw5ZVZlS00xTFNYdXlnWU5LVks2c3hFaDQxRTVQ?=
 =?utf-8?B?emx0R2RLSXoxZ1pRaFVmd2JNbXJWTUFtcWpYMjVNZXQrNUIvNjF6VHlXaTY5?=
 =?utf-8?B?S3RaRlpuU2NRSjk5a1hUMlo2VDJMSk9acWh5YkdPLy9xY1krVXlXMzk1dmIv?=
 =?utf-8?B?WjlZOFR3MUJyTFkzVHZQNlRMcGxTVHhBK1M2a292dDlEc3pUcTUxRW1oUXZy?=
 =?utf-8?B?TTFvZmpMZ2lVM3p5TDdsbWlUWjZSd0x1ODhmY2F1OVRHMFNNNmMzckVRVjJZ?=
 =?utf-8?B?eFlJOWV5YVhzYU0zblp0aDNGaGZxVVFkR3Jpek9CNUIzWmZZbDFGRGJwMFVw?=
 =?utf-8?B?dDFma0tqZWNhOTFpTkhKaTZkcjZmY3E4SHlJSkllL29OcFpXVURSZjNvYnpw?=
 =?utf-8?B?T2ZER1pZQnBydDhJL0dyQnc5MTlYN0FHSUlndkVlRUpsN0hjRXJwdzc5OEZP?=
 =?utf-8?B?TllJeGsrUDJjMWgrVlZJV3VyY0x1UXdRK0xQbUczRjkwRGY5dGZ4QUJoL295?=
 =?utf-8?B?RHZabWVCaS9qL1dSaVFoVWxNQkJ5OHExbVowVUhSWHNrcGN2eHpKeXpmV0dl?=
 =?utf-8?B?MStvU0J5eWJlK21mOGllM0xOZGRvMUM2V1dXMWtlNlBkWUhFRC92M0ZnckUv?=
 =?utf-8?B?R0hiN3BlZzZUNGZoYVBRZko5MzNXZjFnV0N3ckNGNjVlOGduY2xwWU1HV3Y5?=
 =?utf-8?B?dGRsektZQkhYZFVnY2lQTFFjRnNHUkc3R3N6WTRIamxzeG5XWnNTV1k0RHlB?=
 =?utf-8?B?OVEwSFZ1OEVOb0c0NWpNUXBuMVFyZFp1Zmh4MkZUazFPY2pWNEZ1Ym9YYTJ1?=
 =?utf-8?B?VG5TQXNEOTgrRWF0T0dqNzFDd0xPT2Y5dE94M29vSVhHWi9WaHE3MFZoNGQ3?=
 =?utf-8?B?Rm5RYlN1ckdBMWwzN3NpWU53RDNoSk9qa01vK2g5NVRoc1BjY2lHK0l0ZTBj?=
 =?utf-8?B?d1UvNDNwRFYzUXBSdEE3RkUyNlgwcHlpaWpicy95OEpQQUFCcW1XVVBDUHpP?=
 =?utf-8?B?Q1lLeHhmVks2ZEpGcDAwaGRUeVhac3BRdTZJRlBpREJudzRRelEwb1pJWEJK?=
 =?utf-8?Q?rryO9EfV9Cqx5SsEfSZtjje6fJjfSPs7?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SkNiZGhuWEV5RXpYZHozMlpJczRYMVZGd3V3N0NiaWUxUWtqaGJyM2REMlZ1?=
 =?utf-8?B?dkVYdXpzYVVSRkJEZGVvTmxVQlRzYmRsQWlDeWZFWVhnQnZvNUZtS3dqM2Fh?=
 =?utf-8?B?Q1phRUNIalI3MVlFZ2h4N1ZpaTU1dXBsZkd1ZmcvUHpvY2k4WnpldStvaTc1?=
 =?utf-8?B?azVKWTF1bkJxMXprM1lwNGwycVQ0VVA0RkE2NWxRQ0Z1VHNHdEJJV1lUQlNK?=
 =?utf-8?B?dWV6OGpNWlFnUGQ0N044SUNncExaKytBMlQyV2hPY0YxR0tNWnFmb1haL1ds?=
 =?utf-8?B?V0JlcWRrMzIwZkIrS3hWRWd4b1hEOHZSUHlWMVF6b2N1bXpEdnhBcUx5bXU0?=
 =?utf-8?B?WERrMDVOUXlWYkRiTzliRTI0eFZGVm03NWlReTFXVEdzSldKeGJSdmdFZnlw?=
 =?utf-8?B?OUp5N0pWYU1FREhvamh2NzFvOEhXZ2xNLytxdFJLQmROT0FVdWtTcjgwRDBR?=
 =?utf-8?B?L0o4R0NKVkJBS3BSNVVwNTljUWlkS0c0ejl0OVBwMlU3bEF4ZnZpaGFiQldp?=
 =?utf-8?B?T0RYTVRrQXZtQzJmV3ZTS2dTdzhmbC9oRDgrYWhhdFJ6c1RZSmpFalBYejdG?=
 =?utf-8?B?alZOZWoxUEwvdFM2YnZpaENuZndMemZKeVJPWjZJM0NHeU16dk1VWTdndm1n?=
 =?utf-8?B?ZWg3bUtXWHV5SXdoVDJQOUIxSW5EcFlHNGU2K2t2Wld1cElseTVmcnZreTdk?=
 =?utf-8?B?MkFSOStBbTVERU1vQXFZRlB0dmV4QzNTRlJMT3d1d3pCSHlWMEZFWTkyV29z?=
 =?utf-8?B?Q1RBM1BOY2k5Um5wTndCV09RWElBWmZiMG10bHBsK25NU2xtLzM5TWRLZGI1?=
 =?utf-8?B?YzRnWGxuUDI3aUxRRFcyaHNCN2NYcnZuSUVqTVVQK0tRVEFzRktXOW1sMERN?=
 =?utf-8?B?Q2Q3TkZGdmFoK3hoMnpia1N4VEFiNVI3R3RGdCtUclUzdXdYUFNDWWs5d2dq?=
 =?utf-8?B?aXdZZUhNWW9HVDRtT0Q5N3lGeGJ4a0E0bmtwVjFTcS9pYXRNMXlaNHVMYTMz?=
 =?utf-8?B?UmVtcS9vV1J4RXducjFwV2gwZ21DYmdOeHBtOVd0SzZDaFd2U2QxZzlGZ1Iw?=
 =?utf-8?B?eDkxMlo5dUliQlQ5Tkx1alJEWGwyd0prTklLMkFoeFRWMVlnMjd4UXA1Rktz?=
 =?utf-8?B?RWc3Tk9pb2MrRVUwWi9VdkVPZG5hM2M4VThCdHBzK3F0ZFhacFhwMlhTQmpx?=
 =?utf-8?B?V1RrRktPUG5CTWNuRTlPNERVOUZjSThOeGhzZzcwdkY0OWVlNDdENXQ0VHBU?=
 =?utf-8?B?b2VTZnBXL0dLZStrcEs2NUk2UGVjdGk5OTlpdFRrUTFIOWZTdXZkYjhudGUy?=
 =?utf-8?B?QmhsNFRIeUZZdFltcjk0K1EwL0lCSGlCV2R4R0NhSTcrd1FrS2o1YWYwaGlj?=
 =?utf-8?B?cDJ5Tm8xcHZSa0VWeUo1bDI0RjgwcXpYUktaYTdyMkEvU0F5bENESGJIZ2dZ?=
 =?utf-8?B?aGZjWTlDZ0R6VGJtYUtpRzA5anVlNldlS0RackJ1aDVycjVJUkcreU1kY0k1?=
 =?utf-8?B?T1V6U05XRmRVdWxQREhUMGVTUE5TQ0tRNnp5ZUdXSk9EVWxJaWMzcXBoVTB4?=
 =?utf-8?B?WXlsRWhnM1pzcDB2SGM5blZiNW5TL1QvV3lnN01DbmVrK3Q0QXo3UUt3bmov?=
 =?utf-8?B?Q3RLWmtBL1h6L05xTnhrUXhReHQ1Vkx0S2tPMGw2MTdBVk9ib08yWjVlWmxr?=
 =?utf-8?B?WHByTklHbmhjb3J6Z056R2pTWkZxdkpLRmFNc1lrUFVuRzNWZCt3Uks3eG54?=
 =?utf-8?B?aFJReXFEdmUzSlZnNU1KR3pweDhWU0JaMmlkSlY1b05kZUxSVm9IdTdqZWJ6?=
 =?utf-8?B?MGwwaTVYaU5STElMSm90U00rMW9VVHdDQlQ3VGZPTkZ3UTZTd0NBRitzRUFt?=
 =?utf-8?B?MVhibGgvMjJFdVFaaEx5RXdjWVl3UWNXV2JkczJmVW5lZmxmWkR6RnNqRXBv?=
 =?utf-8?B?dWRGdjhhNXJKY1dQVkI3czZSRElkWFlvbmt0OWhMRVIwQUVPOEFhUjgwWmFK?=
 =?utf-8?B?RzIzcjd5cDNrZHJnSzhMNGRvUzJsY2xPRGx6anE3aDI1d2ptaTVGMEtFUmNx?=
 =?utf-8?B?ejZySUJxYnJsN2hsdHBOTnQxNFFUYVBvU0oxMU05YXM4eUVJSUh1VmxkUHlN?=
 =?utf-8?B?UFA2VHBWSjlsektqazFLYTVuT2l0RlNseXVFdEMwb0h6cWlKTHBzOXZ2NkFS?=
 =?utf-8?B?WUE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 75bd134c-36fc-467e-03e1-08de344f59f8
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 22:40:55.0403
 (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: W3L73KHyGaLp/tkWbcnnQjDUYZ2tNfs72RFeYmyzDZRPIfuTxWee0zxb59xsBwNbhI8LmG+o0Boqf5nb/Ef1Q/4kwcImfInSAaUlIK7J6Jc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV9PR03MB8389

On 05/12/2025 10:28 pm, Jason Andryuk wrote:
> When linking to create xen-syms, add --gc-sections to garbage collect
> unused stuff.  Relies on CONFIG_CC_SPLIT_SECTIONS
>
> We need to add KEEP() to the linker script in assorted places to retain
> appropriate data - especially the arrays created therein.
>
> Something is off though.  In a test where memory_add() is unreachable,
> it is still included.  I'm not sure, but I am wondering if it's the
> alternatives somehow keeping a reference to it.

Yes, .altinstructions contains relocations against the origin patch
site, which will cause it to appear to be referenced. The same will be
happening with a bunch of other sections.

Hmm.  We are surely not the first people to encounter this.

> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> ---
> With --print-gc-sections on defconfig:
> ld: removing unused section '.text.__bitmap_full' in file 'prelink.o'
> ld: removing unused section '.text.__bitmap_xor' in file 'prelink.o'
> ld: removing unused section '.text.__bitmap_set' in file 'prelink.o'
> ld: removing unused section '.text.__bitmap_clear' in file 'prelink.o'
> ld: removing unused section '.text.bitmap_find_free_region' in file 'prelink.o'
> ld: removing unused section '.text.bitmap_release_region' in file 'prelink.o'
> ld: removing unused section '.text.domain_has_ioreq_server' in file 'prelink.o'
> ld: removing unused section '.text.compat_kexec_op' in file 'prelink.o'
> ld: removing unused section '.text.in_atomic' in file 'prelink.o'
> ld: removing unused section '.text.radix_tree_next_hole' in file 'prelink.o'
> ld: removing unused section '.text.radix_tree_prev_hole' in file 'prelink.o'
> ld: removing unused section '.text.radix_tree_gang_lookup_slot' in file 'prelink.o'
> ld: removing unused section '.text._nrspin_trylock' in file 'prelink.o'
> ld: removing unused section '.text.xen_compile_host' in file 'prelink.o'
> ld: removing unused section '.text.vscnprintf' in file 'prelink.o'
> ld: removing unused section '.text.wake_up_one' in file 'prelink.o'
> ld: removing unused section '.text.xmem_pool_get_used_size' in file 'prelink.o'
> ld: removing unused section '.text.xmem_pool_get_total_size' in file 'prelink.o'
> ld: removing unused section '.text.xmem_pool_maxalloc' in file 'prelink.o'
> ld: removing unused section '.text.xlat_start_info' in file 'prelink.o'
> ld: removing unused section '.text.elf_sym_by_name' in file 'prelink.o'
> ld: removing unused section '.text.elf_sym_by_index' in file 'prelink.o'
> ld: removing unused section '.text.elf_get_ptr' in file 'prelink.o'
> ld: removing unused section '.text.elf_lookup_addr' in file 'prelink.o'
> ld: removing unused section '.text.serial_vuart_info' in file 'prelink.o'
> ld: removing unused section '.text.pci_find_next_cap' in file 'prelink.o'
> ld: removing unused section '.text.free_hvm_irq_dpci' in file 'prelink.o'
> ld: removing unused section '.text.mce_barrier_init' in file 'prelink.o'
> ld: removing unused section '.text.mce_barrier_dec' in file 'prelink.o'
> ld: removing unused section '.text.mce_barrier' in file 'prelink.o'
> ld: removing unused section '.text.apei_read_mce' in file 'prelink.o'
> ld: removing unused section '.text.apei_check_mce' in file 'prelink.o'
> ld: removing unused section '.text.apei_clear_mce' in file 'prelink.o'
> ld: removing unused section '.text.efi_halt_system' in file 'prelink.o'
> ld: removing unused section '.text.get_vvmcs_virtual_safe' in file 'prelink.o'
> ld: removing unused section '.text.get_vvmcs_real_safe' in file 'prelink.o'
> ld: removing unused section '.text.set_vvmcs_real' in file 'prelink.o'
> ld: removing unused section '.text.set_vvmcs_virtual_safe' in file 'prelink.o'
> ld: removing unused section '.text.set_vvmcs_real_safe' in file 'prelink.o'
> ld: removing unused section '.text.domain_set_alloc_bitsize' in file 'prelink.o'
> ld: removing unused section '.text.watchdog_enabled' in file 'prelink.o'
> ld: removing unused section '.text.unset_nmi_callback' in file 'prelink.o'
> ld: removing unused section '.text.sha2_256_init' in file 'prelink.o'
> ld: removing unused section '.text.xxh64_copy_state' in file 'prelink.o'
> ld: removing unused section '.text.xxh64' in file 'prelink.o'
> ld: removing unused section '.discard' in file 'prelink.o'
> ld: removing unused section '.rodata.xen_compile_host.str1.1' in file 'prelink.o'
> ld: removing unused section '.rodata.elf_lookup_addr.str1.1' in file 'prelink.o'
> ld: removing unused section '.rodata.apei_read_mce.str1.8' in file 'prelink.o'
> ld: removing unused section '.rodata.efi_halt_system.str1.8' in file 'prelink.o'
> ld: removing unused section '.rodata.play_dead.str1.1' in file 'prelink.o'
> ld: removing unused section '.data.rel.ro.local.fetch_type_names' in file 'prelink.o'

This is for your safety stripped-down build, I'm guessing?

It's certainly a good start.

> diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
> index 527872a6db..e3ad58f688 100644
> --- a/xen/arch/x86/xen.lds.S
> +++ b/xen/arch/x86/xen.lds.S
> @@ -98,7 +98,7 @@ SECTIONS
>  #endif
>         *(.text.__x86_indirect_thunk_*)
>  
> -       *(.fixup)
> +       KEEP(*(.fixup))

Why do we need to KEEP() this?  The references here are the other way
around to most examples.

Although I note that removing .fixup is on the cleanup list, and would
this problem too.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 23:08:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 23:08:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179573.1503028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRetz-0004BC-2z; Fri, 05 Dec 2025 23:07:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179573.1503028; Fri, 05 Dec 2025 23:07:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRetz-0004B5-03; Fri, 05 Dec 2025 23:07:51 +0000
Received: by outflank-mailman (input) for mailman id 1179573;
 Fri, 05 Dec 2025 23:07:50 +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
 <SRS0=fOju=6L=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vRety-0004Az-Fa
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 23:07:50 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 36e75bf2-d22f-11f0-9d1b-b5c5bf9af7f9;
 Sat, 06 Dec 2025 00:07:48 +0100 (CET)
Received: from PH7P220CA0048.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:32b::19)
 by IA1PR12MB7637.namprd12.prod.outlook.com (2603:10b6:208:427::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.12; Fri, 5 Dec
 2025 23:07:43 +0000
Received: from CY4PEPF0000E9D0.namprd03.prod.outlook.com
 (2603:10b6:510:32b:cafe::9d) by PH7P220CA0048.outlook.office365.com
 (2603:10b6:510:32b::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.12 via Frontend Transport; Fri,
 5 Dec 2025 23:07:40 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000E9D0.mail.protection.outlook.com (10.167.241.135) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Fri, 5 Dec 2025 23:07:43 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Fri, 5 Dec
 2025 17:07:42 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 5 Dec
 2025 17:07:42 -0600
Received: from [172.25.33.6] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 5 Dec 2025 15:07:40 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 36e75bf2-d22f-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=o1kNtrE9Ry1MufJMCOieMbjTgqAQ7cmTQdOgOvXcvW7R47YQCZF5jVfg9akX+iv5yxFsze1PZtVXzkAP982JSktl5z7CmBT789BiLEEazdyJyomvlitx5k39rzqKrnUaMeriu/2kQhBlAHkAdI4+SNGOZrAhKhvj8u6BLRYB1RzKlqiiNzxCOvySZUaXM+26GtcMppKNHAxlFtckuCIYia//GB7+o0VbdqRyHSehsEQVBX8na+FwCbw/VXjRzoY5kMfjg5OlvQV+upXkYgx5Wkq5MA/KxBXcSpnGAwVrJ4ay+/Wx4g0rBLwH+sPUJDZ1FOgWjzNOeU+2Su9TB3pSFg==
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=Y6ebwCXfNCS8VnV0ChFq0YkAFKWUMyn5VuP4hjbvdS0=;
 b=auiE+CNSzDc6tgHjqZy2+fOKrSVZvLRsaw1NHAxSCsmUugTPOkTSzzGgu3TQ+H3CqWHnOPs+1cmUrFNhZlfpkEciy/dmn+Mi5NPHsaZnSa07O2qgheTfetys7hB7ZHK4Fy1Y7+IZwGBxXYp79KlKH1Qx7KN3e6CKeR9ZqxrcgWAqbyfXKVAB93oFI4Fuf1H9i5G89QELIVBvE4wDhSyMGhrZ+sW/dm7Vi32w6gOIKflmukmLkxxAGeKjKE6DhDeXgzTe6upAS1U88YrOOj7OznK1X2adSM19CgQUpfP+VzUyA6LcaghjupYjwhVMufiuJkQPHS56rVz6Vllscjwj3Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Y6ebwCXfNCS8VnV0ChFq0YkAFKWUMyn5VuP4hjbvdS0=;
 b=jmf5XKzCX5LZ+PhxWK5lcg7UIh5Sn9bZcleGwPyeSJ5VOHQWHr5/+5TvRZOGxP/7F79bfJYPsaACb53i5a9bgGgWa49EuxzYsSgrQZyWedyCGvFFg0xCZa9ZqOPK0N/+zrLn5ZdZGDXgV/BHujpdtAT0AtPSja2A5Iqw7cMNouE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <4202e2be-1428-4a3e-b0e5-2a65fa7383fb@amd.com>
Date: Fri, 5 Dec 2025 18:07:35 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] RFC: xen/x86: Enable --gc-sections
To: Andrew Cooper <andrew.cooper3@citrix.com>,
	<xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Grygorii Strashko
	<grygorii_strashko@epam.com>
References: <20251205222813.277164-1-jason.andryuk@amd.com>
 <8dce8443-5a97-42c4-b867-27b83415b3d1@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <8dce8443-5a97-42c4-b867-27b83415b3d1@citrix.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB04.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D0:EE_|IA1PR12MB7637:EE_
X-MS-Office365-Filtering-Correlation-Id: 4359e4b8-5a34-4902-8660-08de3453187c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UHR2NzlBTlBOc2tpVUtObU1OeWJOMHpENnR1RWpLN1JNdFFjcHlUVTI3Y29O?=
 =?utf-8?B?NHhzY2wzR1hmNVo2TWtVVGdMdkVoWVF3YVpWY2x1N0VudHJWbWdUdWxIVC9y?=
 =?utf-8?B?NFhBZDhrYThDNytvMDgxUHpsQU9MKy9JeGFVeGtueGRSS3AxTVY0ZEdqV2Ra?=
 =?utf-8?B?THZmWDJEcjhwZG5xb3lBaTM5US8xdXRtMndoaXk1RjFQc1lrWXZ5YWJ4Y3Bo?=
 =?utf-8?B?K3lNTlB1UjQxYWpkU1NwOE9kRTVVbzVPV01HdVVQZTJkV1BqZTBwTzd1QmZH?=
 =?utf-8?B?clRGMXhZUjNlVXBDalllaUExWVJjSkdUc3BsV1ZBQzUzdTB4cHFLWWNzWUNj?=
 =?utf-8?B?REpHNTViUXZOdE56S0JxQmhWZndNSk5VQjlBNVl0UXFSNENTVU13UExxalB0?=
 =?utf-8?B?ZlZLSXNCUlVFQTdQcXY2T0xsa1pBYnQ5RER6aUJBZHlVTFlIYUJYRTh1cVQy?=
 =?utf-8?B?a0VwTVZOL0w4VUJwV29hVVZkUG5zMW9JNklhNkVPVkxERlVQcWtRcXZqaTFr?=
 =?utf-8?B?MnAvMHhyaXlRbktUNFZNbHB3ZlJFb3laSEU4d3RIRWNRYlIzTE14S09zMGZz?=
 =?utf-8?B?Y0hvS0ZBWHNkQ3dWY3VFaHVCTWF2NmVGZmNrZ21sZnJnQkdGZDE1dncvdVB0?=
 =?utf-8?B?WlhiZXUzZXBFRVBWbzJsdmVRTGtjbVR0NVlxNEg3KzhlTE5lWk9PL3R5cXV0?=
 =?utf-8?B?bjhnV0hFY1N0cmVXeGRUZHJEenk5SUJkeWs0QjFNVmNkUFYwTXlvQUhvUTR4?=
 =?utf-8?B?V3VId3k2eEswenJYY2Z1eGw4dGcraFpZUW1sL0cyUXByeEp1SnhFdktyUFQr?=
 =?utf-8?B?Mys1RUR3elo3ckljeFQzTmUzOVhZS0d1ZG1TeTR2U3ZOcGZqRlBic0RWRll1?=
 =?utf-8?B?OHFnUG5YMmM0cU9rWWtTTkZRb3lPVTNVY2VIOUI1R0JDRlFzWlIvQWl6U1NO?=
 =?utf-8?B?QjJXc3E0RU84VXJhVWpNQXpmcjIrWnJuaGpyNmdIQk1HQng2YnVPeGZVL3c5?=
 =?utf-8?B?bmVxdnhBajd5T0NWcW9wZUNPVVUzV1JTM2xWT1Z4elRvSTBxZ3Nsd1oxVFJE?=
 =?utf-8?B?SnkrWXZ2ZlR0RUZETHRJT2MvQ2VqZVlEWG0rT213bUp5TGtIMTlwMVhBU1ps?=
 =?utf-8?B?Z0gvNXhEb0l1ZDRUaElKdzlpZkRndmVlTUlPYnlNRUZmMzk1bkYwV3l2Szgv?=
 =?utf-8?B?S3p1R29JV3ZPanBQaWllK2dDRVJsL3BjVjhDb0JBVHZwV2I4UTlTQ0dFZVVL?=
 =?utf-8?B?ZGQxeGhPWWI2ODhlTXpsSzdzUmJRbjI2Q2lsT1huajlaMmdES05sT21IY1hM?=
 =?utf-8?B?S1ZhSXpMaUdBelA0c1NOWUtYVXpYNmRtUDlLRDRPQmVpSHJubGdoYXVEVHdr?=
 =?utf-8?B?QmVNZllmYXlvN0xmRkZ6d3ZqNWJIRkJjRXBZL0lQQTVpeUhlb0QvYno4Z0hH?=
 =?utf-8?B?aHEzdjFYZm0rTTN5eHJXV0FIZUV2OXhBbVlmTUU0Rm83RFBXRnVDWm1GZUNl?=
 =?utf-8?B?alhpWlY4by9WMENWV0VDa1VxTTIrU1JjeWlNTTZ3Z2JibzVnUk1qZVlKbFNV?=
 =?utf-8?B?K21nN3lBaVc5U25ST1Nza0Q2dU9DZlpCSDB4bm9UT09aRGhRRCtUT2NpRE9i?=
 =?utf-8?B?MmhmaU8ranZUWXJrZHB2TVFWejgxRDgyMmtGQWtkRzJxWTNhWThHVFpuWkhZ?=
 =?utf-8?B?NHVYMkhGT2FlcTZFa0U4cXh6TWc1OFpxVGZmUnliTkFOcTVsWFlzZ2EzcEpG?=
 =?utf-8?B?M0pEaEZpZnlWK2dNbERtMytKVXJWK3dhOWFlNGFVMTRNdjJXeVFxNmczaHBX?=
 =?utf-8?B?cEp1cnBUTXNlM25hTVBGNkE5cXpkM2NuM3BFdytxT0xYME5EMitWb1VSZmQr?=
 =?utf-8?B?a2gwTEpHckt0V0c4MUtiemd5V08vd1dWR1EyR09FTzRib3dtcWRwbE0rTHBy?=
 =?utf-8?B?OVdXR3E2c3JGYitMSjFKVEMyVXJrVWxtQ3E2ZjZYSkYyNW5MRlpkMUZ1aDha?=
 =?utf-8?B?R1pEVkJ0ZWJwZGRTeWtkWks2cFVtTks0T1liQkdhWURzL1h1M0VBUk5ITEJD?=
 =?utf-8?B?U0FFL3ViSFJmcmxhN2J0TFR3VDNtWEhJRitJdHJXZ2dkM3huNiszTFBxOUVP?=
 =?utf-8?Q?mc7E=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 23:07:43.0071
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4359e4b8-5a34-4902-8660-08de3453187c
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9D0.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7637

On 2025-12-05 17:40, Andrew Cooper wrote:
> On 05/12/2025 10:28 pm, Jason Andryuk wrote:
>> When linking to create xen-syms, add --gc-sections to garbage collect
>> unused stuff.  Relies on CONFIG_CC_SPLIT_SECTIONS
>>
>> We need to add KEEP() to the linker script in assorted places to retain
>> appropriate data - especially the arrays created therein.
>>
>> Something is off though.  In a test where memory_add() is unreachable,
>> it is still included.  I'm not sure, but I am wondering if it's the
>> alternatives somehow keeping a reference to it.
> 
> Yes, .altinstructions contains relocations against the origin patch
> site, which will cause it to appear to be referenced. The same will be
> happening with a bunch of other sections.
> 
> Hmm.  We are surely not the first people to encounter this.

I didn't find any magic in Linux, but I didn't look too hard.

>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> ---
>> With --print-gc-sections on defconfig:
>> ld: removing unused section '.text.__bitmap_full' in file 'prelink.o'
>> ld: removing unused section '.text.__bitmap_xor' in file 'prelink.o'
>> ld: removing unused section '.text.__bitmap_set' in file 'prelink.o'
>> ld: removing unused section '.text.__bitmap_clear' in file 'prelink.o'
>> ld: removing unused section '.text.bitmap_find_free_region' in file 'prelink.o'
>> ld: removing unused section '.text.bitmap_release_region' in file 'prelink.o'
>> ld: removing unused section '.text.domain_has_ioreq_server' in file 'prelink.o'
>> ld: removing unused section '.text.compat_kexec_op' in file 'prelink.o'
>> ld: removing unused section '.text.in_atomic' in file 'prelink.o'
>> ld: removing unused section '.text.radix_tree_next_hole' in file 'prelink.o'
>> ld: removing unused section '.text.radix_tree_prev_hole' in file 'prelink.o'
>> ld: removing unused section '.text.radix_tree_gang_lookup_slot' in file 'prelink.o'
>> ld: removing unused section '.text._nrspin_trylock' in file 'prelink.o'
>> ld: removing unused section '.text.xen_compile_host' in file 'prelink.o'
>> ld: removing unused section '.text.vscnprintf' in file 'prelink.o'
>> ld: removing unused section '.text.wake_up_one' in file 'prelink.o'
>> ld: removing unused section '.text.xmem_pool_get_used_size' in file 'prelink.o'
>> ld: removing unused section '.text.xmem_pool_get_total_size' in file 'prelink.o'
>> ld: removing unused section '.text.xmem_pool_maxalloc' in file 'prelink.o'
>> ld: removing unused section '.text.xlat_start_info' in file 'prelink.o'
>> ld: removing unused section '.text.elf_sym_by_name' in file 'prelink.o'
>> ld: removing unused section '.text.elf_sym_by_index' in file 'prelink.o'
>> ld: removing unused section '.text.elf_get_ptr' in file 'prelink.o'
>> ld: removing unused section '.text.elf_lookup_addr' in file 'prelink.o'
>> ld: removing unused section '.text.serial_vuart_info' in file 'prelink.o'
>> ld: removing unused section '.text.pci_find_next_cap' in file 'prelink.o'
>> ld: removing unused section '.text.free_hvm_irq_dpci' in file 'prelink.o'
>> ld: removing unused section '.text.mce_barrier_init' in file 'prelink.o'
>> ld: removing unused section '.text.mce_barrier_dec' in file 'prelink.o'
>> ld: removing unused section '.text.mce_barrier' in file 'prelink.o'
>> ld: removing unused section '.text.apei_read_mce' in file 'prelink.o'
>> ld: removing unused section '.text.apei_check_mce' in file 'prelink.o'
>> ld: removing unused section '.text.apei_clear_mce' in file 'prelink.o'
>> ld: removing unused section '.text.efi_halt_system' in file 'prelink.o'
>> ld: removing unused section '.text.get_vvmcs_virtual_safe' in file 'prelink.o'
>> ld: removing unused section '.text.get_vvmcs_real_safe' in file 'prelink.o'
>> ld: removing unused section '.text.set_vvmcs_real' in file 'prelink.o'
>> ld: removing unused section '.text.set_vvmcs_virtual_safe' in file 'prelink.o'
>> ld: removing unused section '.text.set_vvmcs_real_safe' in file 'prelink.o'
>> ld: removing unused section '.text.domain_set_alloc_bitsize' in file 'prelink.o'
>> ld: removing unused section '.text.watchdog_enabled' in file 'prelink.o'
>> ld: removing unused section '.text.unset_nmi_callback' in file 'prelink.o'
>> ld: removing unused section '.text.sha2_256_init' in file 'prelink.o'
>> ld: removing unused section '.text.xxh64_copy_state' in file 'prelink.o'
>> ld: removing unused section '.text.xxh64' in file 'prelink.o'
>> ld: removing unused section '.discard' in file 'prelink.o'
>> ld: removing unused section '.rodata.xen_compile_host.str1.1' in file 'prelink.o'
>> ld: removing unused section '.rodata.elf_lookup_addr.str1.1' in file 'prelink.o'
>> ld: removing unused section '.rodata.apei_read_mce.str1.8' in file 'prelink.o'
>> ld: removing unused section '.rodata.efi_halt_system.str1.8' in file 'prelink.o'
>> ld: removing unused section '.rodata.play_dead.str1.1' in file 'prelink.o'
>> ld: removing unused section '.data.rel.ro.local.fetch_type_names' in file 'prelink.o'
> 
> This is for your safety stripped-down build, I'm guessing?

This is actually Xen staging.

> It's certainly a good start.
> 
>> diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
>> index 527872a6db..e3ad58f688 100644
>> --- a/xen/arch/x86/xen.lds.S
>> +++ b/xen/arch/x86/xen.lds.S
>> @@ -98,7 +98,7 @@ SECTIONS
>>   #endif
>>          *(.text.__x86_indirect_thunk_*)
>>   
>> -       *(.fixup)
>> +       KEEP(*(.fixup))
> 
> Why do we need to KEEP() this?  The references here are the other way
> around to most examples.

I thought I saw it dropped when trying to get this working, but it does 
seem to work by removing the KEEP().

Thanks for taking a look.

This implicitly relies on LIVEPATCH to select CC_SPLIT_SECTIONS.  To be 
standalone, X86 can just select CC_SPLIT_SECTIONS unless we want to make 
it optional.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Fri Dec 05 23:33:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Dec 2025 23:33:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179598.1503037 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRfIL-0008Dy-VZ; Fri, 05 Dec 2025 23:33:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179598.1503037; Fri, 05 Dec 2025 23:33:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRfIL-0008Dr-T3; Fri, 05 Dec 2025 23:33:01 +0000
Received: by outflank-mailman (input) for mailman id 1179598;
 Fri, 05 Dec 2025 23:33:00 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vRfIK-0008Dk-PB
 for xen-devel@lists.xenproject.org; Fri, 05 Dec 2025 23:33:00 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vRfIK-008Sel-0C;
 Fri, 05 Dec 2025 23:33:00 +0000
Received: from [2a02:8012:3a1:0:854f:f005:1bb3:e60a]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vRfIJ-000Lcp-1C;
 Fri, 05 Dec 2025 23:32:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=MhBWJ6axQuAjxK8+i48n1aoxKfH3LZm7+vNo05onsS8=; b=cnfB/1hjEWsZP0f9KGnuvWnJvH
	MF0llqCYyN9KUR3rwWqR8Pdee4m3rBKVtuiGThwBNCEYVapj1yjCfbuEc5XgpURJlaZZfRI3H/STB
	MjItCcud1oYuNk3Qq6DHnXw/Kd3bMQQrh/HrXGkixZYKfYZed1+SKfHmgfwNfozj/JhM=;
Message-ID: <a726e56e-b864-4ec1-81f4-da552fe71470@xen.org>
Date: Fri, 5 Dec 2025 23:32:57 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 1/3] xen/arm/p2m: perform IPA-based TLBI when IPA
 is known
Content-Language: en-GB
To: Haseeb Ashraf <haseebashraf091@gmail.com>, xen-devel@lists.xenproject.org
Cc: Haseeb Ashraf <haseeb.ashraf@siemens.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Luca Fancellu <Luca.Fancellu@arm.com>
References: <ce2e7c32f06ba8a48a2074fa8cadd9c122b6490f.1764863575.git.haseebashraf091@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <ce2e7c32f06ba8a48a2074fa8cadd9c122b6490f.1764863575.git.haseebashraf091@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Haseef,

Let me start with some process. In general, we expect multi-patch series 
to have a cover letter.

On 04/12/2025 15:57, Haseeb Ashraf wrote:
> From: Haseeb Ashraf <haseeb.ashraf@siemens.com>
> 
> This commit addresses a major issue for running Xen on KVM i.e.
> costly emulation of VMALLS12E1IS which becomes worse when this TLBI
> is invoked too many times. There are mainly two places where this is
> problematic:
> (a) When vCPUs switch on a pCPU or pCPUs
> (b) When domu mapped pages onto dom0, are to be unmapped, then each
>      page being removed by XENMEM_remove_from_physmap has its TLBs
>      invalidated by VMALLS12E1IS.
> 
> The first one is addressed by relaxing VMALLS12E1 -> VMALLE1 as the
> stage-2 is common between all the vCPUs of a VM. Since each CPU has
> its own private TLBs, so flush between vCPU of the same domains is
> still required to avoid translations from vCPUx to "leak" to the
> vCPUy which can be achieved by using VMALLE1.
> 
> The second one is addressed by using IPA-based TLBI (IPAS2E1) in
> combination with VMALLE1 whenever the IPA range is known instead of
> using VMALLS12E1. There is an upper cap placed on number of IPA-based
> TLBI. This factor for execution time of VMALLS12E1 vs IPAS2E1 is
> found to be 70K on Graviton4.

Is this running Xen on baremetal or in nested virt?

> So, ~65K * 4KB = 256M is set as the

Given that 4KB implies 4096 bytes. Did you intend to say 64K?

> threshold.
> 
> For arm32, TLBIALL instruction can invalidate both stage-1 and
> stage-2 entries, so using IPA-based TLBI would be redundant as
> TLBIALL is required in any case to invalidate corresponding cached
> entries from stage-1.
> 
> Suggested-by: Julien Grall <julien@xen.org>
> Signed-off-by: Haseeb Ashraf <haseeb.ashraf@siemens.com>
> 
> Changes in v2:
> - Split up the commit in 3 commits. First commit implements the
>    basline implementation without any addition of new CPU
>    capabilities. Implemented new CPU caps in separate features to
>    emphasize how each of it optimizes the TLB invalidation.

This kind of changelog would belong to the cover letter. And each patch 
would contain specific changelog. For instance...

[...]

> - Evaluated and added a threshold to select between IPA-based TLB
>    invalidation vs fallback to full stage TLB invalidation above
>    the threshold.
> - Introduced ARM_HAS_NTLBPA CPU capability which leverages
>    FEAT_nTLBPA for arm32 as well as arm64.
> - Introduced ARM_HAS_TLB_IPA CPU capability for IPA-based TLBI
>    for arm32.

... none of these are related to this patch and it is quite confusing.

> ---
>   xen/arch/arm/include/asm/arm32/flushtlb.h | 69 ++++++++++++++++
>   xen/arch/arm/include/asm/arm64/flushtlb.h | 99 +++++++++++++++++++++++
>   xen/arch/arm/include/asm/mmu/p2m.h        |  2 +
>   xen/arch/arm/mmu/p2m.c                    | 94 ++++++++++++++-------
>   4 files changed, 237 insertions(+), 27 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/arm32/flushtlb.h b/xen/arch/arm/include/asm/arm32/flushtlb.h
> index 61c25a3189..70a8b1dad6 100644
> --- a/xen/arch/arm/include/asm/arm32/flushtlb.h
> +++ b/xen/arch/arm/include/asm/arm32/flushtlb.h
> @@ -45,6 +45,46 @@ TLB_HELPER(flush_xen_tlb_local, TLBIALLH, nsh)
>   
>   #undef TLB_HELPER
>   
> +/*
> + * Flush TLB of local processor. Use when flush for only stage-1 is
> + * intended.
> + */
> +static inline void flush_guest_tlb_s1_local(void)
> +{
> +    /*
> +     * Same instruction can invalidate both stage-1 and stage-2 TLBs
> +     * depending upon the execution context.
> +     *
> +     * See ARMv8 (DDI 0487A.e): G4-4126 Table G4-24.

This version of the specification is 10 years old. Any reason to use 
something that old?

> +     *
> +     * The following macros should be used where intention is to
> +     * clear only stage-1 TLBs. This would be helpful in future in
> +     * identifying which stage-1 TLB flushes can be skipped such as
> +     * in present of FEAT_nTLBPA.
> +     */

I am sorry but I don't get this comment. There is no macro involved 
(flush_guest_tlb_local() is an inline function). Is this meant to be a 
big comment outside of the function?

> +    return flush_guest_tlb_local();
> +}
> +
> +/*
> + * Flush TLB of inner-shareable processor domain. Use when flush for
> + * only stage-1 is intended.
> + */
> +static inline void flush_guest_tlb_s1(void)
> +{
> +    /*
> +     * Same instruction can invalidate both stage-1 and stage-2 TLBs
> +     * depending upon the execution context.
> +     *
> +     * See ARMv8 (DDI 0487A.e): G4-4126 Table G4-24.
> +     *
> +     * The following macros should be used where intention is to
> +     * clear only stage-1 TLBs. This would be helpful in future in
> +     * identifying which stage-1 TLB flushes can be skipped such as
> +     * in present of FEAT_nTLBPA.
> +     */
> +    return flush_guest_tlb();
> +}
> +
>   /* Flush TLB of local processor for address va. */
>   static inline void __flush_xen_tlb_one_local(vaddr_t va)
>   {
> @@ -57,6 +97,35 @@ static inline void __flush_xen_tlb_one(vaddr_t va)
>       asm volatile(STORE_CP32(0, TLBIMVAHIS) : : "r" (va) : "memory");
>   }
>   
> +/*
> + * Flush a range of IPA's mappings from the TLB of the local processor.
> + */
> +static inline void flush_guest_tlb_range_ipa_local(paddr_t ipa,
> +                                                   unsigned long size)

I can't seem to find any use of flush_guest_tlb_range_ipa_local() in 
this series. Can we avoid introducing it? (I also have the suspicion 
this would violate the MISRA rules about dead code).

> +{
> +    /*
> +     * Following can invalidate both stage-1 and stage-2 TLBs depending upon
> +     * the execution mode.
> +     * see ARMv8 (DDI 0487A.e): G4-4126 Table G4-24
> +     */
> +    flush_guest_tlb_local();
> +}
> +
> +/*
> + * Flush a range of IPA's mappings from the TLB of all processors in the
> + * inner-shareable domain.
> + */
> +static inline void flush_guest_tlb_range_ipa(paddr_t ipa,
> +                                             unsigned long size)
> +{
> +    /*
> +     * Following can invalidate both stage-1 and stage-2 TLBs depending upon
> +     * the execution mode.
> +     * see ARMv8 (DDI 0487A.e): G4-4126 Table G4-24
> +     */
> +    flush_guest_tlb();
> +}
> +
>   #endif /* __ASM_ARM_ARM32_FLUSHTLB_H__ */
>   /*
>    * Local variables:
> diff --git a/xen/arch/arm/include/asm/arm64/flushtlb.h b/xen/arch/arm/include/asm/arm64/flushtlb.h
> index 3b99c11b50..fff76375a3 100644
> --- a/xen/arch/arm/include/asm/arm64/flushtlb.h
> +++ b/xen/arch/arm/include/asm/arm64/flushtlb.h
> @@ -1,6 +1,8 @@
>   #ifndef __ASM_ARM_ARM64_FLUSHTLB_H__
>   #define __ASM_ARM_ARM64_FLUSHTLB_H__
>   
> +#include <xen/sizes.h> /* For SZ_* macros. */
> +
>   /*
>    * Every invalidation operation use the following patterns:
>    *
> @@ -45,6 +47,27 @@ static inline void name(void)                    \
>           : : : "memory");                         \
>   }
>   
> +/*
> + * FLush TLB by IPA. This will likely be used in a loop, so the caller
> + * is responsible to use the appropriate memory barriers before/after
> + * the sequence.
> + *
> + * See above about the ARM64_WORKAROUND_REPEAT_TLBI sequence.
> + */
> +#define TLB_HELPER_IPA(name, tlbop)              \
> +static inline void name(paddr_t ipa)             \
> +{                                                \
> +    asm volatile(                                \
> +        "tlbi "  # tlbop  ", %0;"                \
> +        ALTERNATIVE(                             \
> +            "nop; nop;",                         \
> +            "dsb  ish;"                          \
> +            "tlbi "  # tlbop  ", %0;",           \
> +            ARM64_WORKAROUND_REPEAT_TLBI,        \
> +            CONFIG_ARM64_WORKAROUND_REPEAT_TLBI) \

Sorry I didn't get a chance to answer to your reply on my comment here. 
If you read the errata for Cortex-A76:

"
Note: For code sequences which have multiple TLB invalidate instructions 
followed by a single DSB, only
the last TLB invalidate and DSB need to be repeated a second time.
"

So I still think this approach is still too expensive. To give some 
context, above you said we would send up to 64K TLB IPA operation before 
deciding to switch to a single flush all. In the context of this errata, 
we would end up to send 64K extra TLBs when only one is necessary.

> +        : : "r" (ipa >> PAGE_SHIFT) : "memory"); \
> +}
> +
>   /*
>    * FLush TLB by VA. This will likely be used in a loop, so the caller
>    * is responsible to use the appropriate memory barriers before/after
> @@ -72,6 +95,18 @@ TLB_HELPER(flush_guest_tlb_local, vmalls12e1, nsh)
>   /* Flush innershareable TLBs, current VMID only */
>   TLB_HELPER(flush_guest_tlb, vmalls12e1is, ish)
>   
> +/* Flush local TLBs, current VMID, stage-1 only */
> +TLB_HELPER(flush_guest_tlb_s1_local, vmalle1, nsh)
> +
> +/* Flush innershareable TLBs, current VMID, stage-1 only */
> +TLB_HELPER(flush_guest_tlb_s1, vmalle1is, ish)
> +
> +/* Flush local TLBs, current VMID, stage-2 for ipa address */
> +TLB_HELPER_IPA(__flush_guest_tlb_one_s2_local, ipas2e1)
> +
> +/* Flush innershareable TLBs, current VMID, stage-2 for ipa address */
> +TLB_HELPER_IPA(__flush_guest_tlb_one_s2, ipas2e1is)
> +
>   /* Flush local TLBs, all VMIDs, non-hypervisor mode */
>   TLB_HELPER(flush_all_guests_tlb_local, alle1, nsh)
>   
> @@ -88,8 +123,72 @@ TLB_HELPER_VA(__flush_xen_tlb_one_local, vae2)
>   TLB_HELPER_VA(__flush_xen_tlb_one, vae2is)
>   
>   #undef TLB_HELPER
> +#undef TLB_HELPER_IPA
>   #undef TLB_HELPER_VA
>   
> +/*
> + * Flush a range of IPA's mappings from the TLB of the local processor.
> + */
> +static inline void flush_guest_tlb_range_ipa_local(paddr_t ipa,
> +                                                   unsigned long size)
> +{
> +    paddr_t end;
> +
> +    /*
> +     * If IPA range is too big (empirically found to be 256M), then fallback to
> +     * full TLB flush
> +     */

Bertrand, Michal, Stefano, Luca, can you check this limit would be ok 
for your setup?

> +    if ( size > SZ_256M )
> +        return flush_guest_tlb_local();
> +
> +    end = ipa + size;
> +
> +    /*
> +     * See ARM ARM DDI 0487A.e D4.7.2 (Invalidation of TLB entries from stage 2
> +     * translations) for details.
> +     */
> +    dsb(nshst); /* Ensure prior page-tables updates have completed */
> +    while ( ipa < end )
> +    {
> +        __flush_guest_tlb_one_s2_local(ipa);
> +        ipa += PAGE_SIZE;
> +    }
> +    /* Final dsb() and isb() are done in following invocation */
> +    flush_guest_tlb_s1_local();
> +}
> +
> +/*
> + * Flush a range of IPA's mappings from the TLB of all processors in the
> + * inner-shareable domain.
> + */
> +static inline void flush_guest_tlb_range_ipa(paddr_t ipa,
> +                                             unsigned long size)
> +{
> +    paddr_t end;
> +
> +    /*
> +     * If IPA range is too big (empirically found to be 256M), then fallback to
> +     * full TLB flush
> +     */
> +    if ( size > SZ_256M )
> +        return flush_guest_tlb();
> +
> +    end = ipa + size;
> +
> +    /*
> +     * See ARM ARM DDI 0487A.e D4.7.2 (Invalidation of TLB entries from stage 2
> +     * translations) for details.
> +     */
> +    dsb(ishst); /* Ensure prior page-tables updates have completed */
> +    while ( ipa < end )
> +    {
> +        __flush_guest_tlb_one_s2(ipa);
> +        ipa += PAGE_SIZE;
> +    }
> +    /* Final dsb() and isb() are done in following invocation */
> +    flush_guest_tlb_s1();
> +}
> +
>   #endif /* __ASM_ARM_ARM64_FLUSHTLB_H__ */
>   /*
>    * Local variables:
> diff --git a/xen/arch/arm/include/asm/mmu/p2m.h b/xen/arch/arm/include/asm/mmu/p2m.h
> index 58496c0b09..8a16722b82 100644
> --- a/xen/arch/arm/include/asm/mmu/p2m.h
> +++ b/xen/arch/arm/include/asm/mmu/p2m.h
> @@ -10,6 +10,8 @@ extern unsigned int p2m_root_level;
>   
>   struct p2m_domain;
>   void p2m_force_tlb_flush_sync(struct p2m_domain *p2m);
> +void p2m_force_tlb_flush_range_sync(struct p2m_domain *p2m, uint64_t start_ipa,
> +                                    uint64_t page_count);
>   void p2m_tlb_flush_sync(struct p2m_domain *p2m);
>   
>   void p2m_clear_root_pages(struct p2m_domain *p2m);
> diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
> index 51abf3504f..e72b06b732 100644
> --- a/xen/arch/arm/mmu/p2m.c
> +++ b/xen/arch/arm/mmu/p2m.c
> @@ -235,33 +235,26 @@ void p2m_restore_state(struct vcpu *n)
>        * when running multiple vCPU of the same domain on a single pCPU.
>        */
>       if ( *last_vcpu_ran != INVALID_VCPU_ID && *last_vcpu_ran != n->vcpu_id )
> -        flush_guest_tlb_local();
> +        flush_guest_tlb_s1_local();
>   
>       *last_vcpu_ran = n->vcpu_id;
>   }
>   
>   /*
> - * Force a synchronous P2M TLB flush.
> + * Loads VTTBR from given P2M.
>    *
> - * Must be called with the p2m lock held.

Don't we still want to call p2m_load_vttbr() with the lock taken? If 
so.. this should be kept as well as ...

> + * This returns switched out VTTBR.
 >    */> -void p2m_force_tlb_flush_sync(struct p2m_domain *p2m)
> +static uint64_t p2m_load_vttbr(struct p2m_domain *p2m, unsigned long *flags)
>   {
> -    unsigned long flags = 0;
>       uint64_t ovttbr;
>   
> -    ASSERT(p2m_is_write_locked(p2m));

... this assert.

> -
> -    /*
> -     * ARM only provides an instruction to flush TLBs for the current
> -     * VMID. So switch to the VTTBR of a given P2M if different.
> -     */
>       ovttbr = READ_SYSREG64(VTTBR_EL2);
>       if ( ovttbr != p2m->vttbr )
>       {
>           uint64_t vttbr;
>   
> -        local_irq_save(flags);
> +        local_irq_save(*flags);
>   
>           /*
>            * ARM64_WORKAROUND_AT_SPECULATE: We need to stop AT to allocate
> @@ -276,12 +269,18 @@ void p2m_force_tlb_flush_sync(struct p2m_domain *p2m)
>   
>           WRITE_SYSREG64(vttbr, VTTBR_EL2);
>   
> -        /* Ensure VTTBR_EL2 is synchronized before flushing the TLBs */
> +        /* Ensure VTTBR_EL2 is in place before continuing. */

I think the existing code is better. "in place" is vague and could only. 
mean the value should be loaded in VTTBR_EL2.

The rest of the patch looks good to me.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sat Dec 06 00:03:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Dec 2025 00:03:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179621.1503072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRfm3-0004km-U3; Sat, 06 Dec 2025 00:03:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179621.1503072; Sat, 06 Dec 2025 00:03:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRfm3-0004kf-RO; Sat, 06 Dec 2025 00:03:43 +0000
Received: by outflank-mailman (input) for mailman id 1179621;
 Sat, 06 Dec 2025 00:03:43 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vRfm3-0004kZ-D9
 for xen-devel@lists.xenproject.org; Sat, 06 Dec 2025 00:03:43 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vRfm2-008Tuh-1g;
 Sat, 06 Dec 2025 00:03:42 +0000
Received: from [2a02:8012:3a1:0:854f:f005:1bb3:e60a]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vRfm1-0034f6-2j;
 Sat, 06 Dec 2025 00:03:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=JFqPOuRkfIdsKdnzGs6Jef0+U3BgrQIy5TzvYJQg+5M=; b=I5ueRRoQvWhZG7icLdboT5gXbj
	rXwcGa1r9TFud9d3X0wchsL0u+j8cqCzri7G9DT3e053154X8DOdBMzGR76fVT2svBilJwSFZu4gH
	dEzTCcd8/lCBxP6tU2CJjDzaBxDoeSjpWc2Bu463psJibHtTShCOSKIsz3uu/2UeDwfc=;
Message-ID: <e91789c6-37c3-406b-aab8-40b87a12425b@xen.org>
Date: Sat, 6 Dec 2025 00:03:37 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 3/3] xen/arm32: add CPU capability for IPA-based
 TLBI
Content-Language: en-GB
To: Haseeb Ashraf <haseebashraf091@gmail.com>, xen-devel@lists.xenproject.org
Cc: Haseeb Ashraf <haseeb.ashraf@siemens.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <ce2e7c32f06ba8a48a2074fa8cadd9c122b6490f.1764863575.git.haseebashraf091@gmail.com>
 <c06892e2b356b3186f790d96889b4ca9ba2498e0.1764863575.git.haseebashraf091@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <c06892e2b356b3186f790d96889b4ca9ba2498e0.1764863575.git.haseebashraf091@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Haseeb,

On 04/12/2025 15:57, Haseeb Ashraf wrote:
> From: Haseeb Ashraf <haseeb.ashraf@siemens.com>
> 
> This feature is available since armv8 and can be used to perform
> IPA-based TLBI for arm32. XENMEM_remove_from_physmap performs this
> invalidation in each hypercall so this code path will be optimized,
> instead of performing a TLBIALL each time in presence of nTLBPA.
> 
> Suggested-by: Julien Grall <julien@xen.org>
> Signed-off-by: Haseeb Ashraf <haseeb.ashraf@siemens.com>
> ---
>   xen/arch/arm/cpufeature.c                 | 12 ++++
>   xen/arch/arm/include/asm/arm32/flushtlb.h | 76 +++++++++++++++++++++++
>   xen/arch/arm/include/asm/cpregs.h         |  4 ++
>   xen/arch/arm/include/asm/cpufeature.h     |  7 ++-
>   xen/arch/arm/include/asm/processor.h      |  8 +++
>   5 files changed, 105 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/cpufeature.c b/xen/arch/arm/cpufeature.c
> index 9fa1c45869..d18c6449c6 100644
> --- a/xen/arch/arm/cpufeature.c
> +++ b/xen/arch/arm/cpufeature.c
> @@ -18,6 +18,11 @@ DECLARE_BITMAP(cpu_hwcaps, ARM_NCAPS);
>   struct cpuinfo_arm __read_mostly domain_cpuinfo;
>   
>   #ifdef CONFIG_ARM_32
> +static bool has_tlb_ipa_instruction(const struct arm_cpu_capabilities *entry)
> +{
> +    return system_cpuinfo.mm32.unitlb == MM32_UNITLB_BY_IPA;
> +}
> +
>   static bool has_ntlbpa(const struct arm_cpu_capabilities *entry)
>   {
>       return system_cpuinfo.mm32.ntlbpa == MM32_NTLBPA_SUPPORT_IMP;
> @@ -37,6 +42,13 @@ static bool has_sb_instruction(const struct arm_cpu_capabilities *entry)
>   #endif
>   
>   static const struct arm_cpu_capabilities arm_features[] = {
> +#ifdef CONFIG_ARM_32
> +    {
> +        .desc = "IPA-based TLB Invalidation",
> +        .capability = ARM32_HAS_TLB_IPA,
> +        .matches = has_tlb_ipa_instruction,
> +    },
> +#endif
>   #if defined(CONFIG_ARM_32) || defined(CONFIG_ARM_64)
>       {
>           .desc = "Intermediate caching of translation table walks (nTLBPA)",
> diff --git a/xen/arch/arm/include/asm/arm32/flushtlb.h b/xen/arch/arm/include/asm/arm32/flushtlb.h
> index db15f29216..0fd45aaaed 100644
> --- a/xen/arch/arm/include/asm/arm32/flushtlb.h
> +++ b/xen/arch/arm/include/asm/arm32/flushtlb.h
> @@ -1,6 +1,8 @@
>   #ifndef __ASM_ARM_ARM32_FLUSHTLB_H__
>   #define __ASM_ARM_ARM32_FLUSHTLB_H__
>   
> +#include <xen/sizes.h> /* For SZ_* macros. */
> +
>   /*
>    * Every invalidation operation use the following patterns:
>    *
> @@ -99,12 +101,56 @@ static inline void __flush_xen_tlb_one(vaddr_t va)
>       asm volatile(STORE_CP32(0, TLBIMVAHIS) : : "r" (va) : "memory");
>   }
>   
> +/* Flush TLB of local processor for address ipa. */
> +static inline void __flush_guest_tlb_one_s2_local(paddr_t ipa)
> +{
> +    asm volatile(STORE_CP32(0, TLBIIPAS2)
> +                 : : "r" (ipa >> PAGE_SHIFT) : "memory");
> +}
> +
> +/* Flush TLB of all processors in the inner-shareable domain for address ipa. */
> +static inline void __flush_guest_tlb_one_s2(paddr_t ipa)
> +{
> +    asm volatile(STORE_CP32(0, TLBIIPAS2IS)
> +                 : : "r" (ipa >> PAGE_SHIFT) : "memory");
> +}
> +
>   /*
>    * Flush a range of IPA's mappings from the TLB of the local processor.
>    */
>   static inline void flush_guest_tlb_range_ipa_local(paddr_t ipa,
>                                                      unsigned long size)
>   {
> +    if ( cpus_have_const_cap(ARM_HAS_NTLBPA) &&
> +         cpus_have_const_cap(ARM32_HAS_TLB_IPA) )

I think this deserve a comment in the code explaining the logic for the 
decision. AFAIU, we require both capabilities because we would need to 
invalidate the S1 separately otherwise and on Arm32, there is not TLB 
instruction to just flush the S1. So it is pointless to flush by IPA.

> +    {
> +        paddr_t end;
> +
> +        /*
> +         * If IPA range is too big (empirically found to be 256M), then fallback
> +         * to full TLB flush
> +         */
> +        if ( size > SZ_256M )

I think we are hardcoding SZ_256M too many times for the same reason. It 
would be better if patch #1 introduces a define so we can explain in a 
single place the choice of the value. It would also be easier to update 
in the future.

 > +            goto default_tlbi;

Rather than having a goto, can't we just add this check in the 'if' 
above. So the function is turned to "if ... else".

> +
> +        end = ipa + size;
> +
> +        /*
> +         * See ARM ARM DDI 0487A.e D4.7.2 (Invalidation of TLB entries from
> +         * stage 2 translations) for details.
> +         */
> +        dsb(nshst); /* Ensure prior page-tables updates have completed */
> +        while ( ipa < end )
> +        {
> +            __flush_guest_tlb_one_s2_local(ipa);
> +            ipa += PAGE_SIZE;
> +        }
> +        dsb(nsh);
> +        isb();
> +        return;
> +    }
> +
> +default_tlbi:
>       /*
>        * Following can invalidate both stage-1 and stage-2 TLBs depending upon
>        * the execution mode.
> @@ -120,6 +166,36 @@ static inline void flush_guest_tlb_range_ipa_local(paddr_t ipa,
>   static inline void flush_guest_tlb_range_ipa(paddr_t ipa,
>                                                unsigned long size)
>   {
> +    if ( cpus_have_const_cap(ARM_HAS_NTLBPA) &&
> +         cpus_have_const_cap(ARM32_HAS_TLB_IPA) )
> +    {
> +        paddr_t end;
> +
> +        /*
> +         * If IPA range is too big (empirically found to be 256M), then fallback
> +         * to full TLB flush
> +         */
> +        if ( size > SZ_256M )
> +            goto default_tlbi;
 > +> +        end = ipa + size;
> +
> +        /*
> +         * See ARM ARM DDI 0487A.e D4.7.2 (Invalidation of TLB entries from
> +         * stage 2 translations) for details.
> +         */
> +        dsb(ishst); /* Ensure prior page-tables updates have completed */
> +        while ( ipa < end )
> +        {
> +            __flush_guest_tlb_one_s2(ipa);
> +            ipa += PAGE_SIZE;
> +        }
> +        dsb(ish);
> +        isb();
> +        return;
> +    }
> +
> +default_tlbi:
>       /*
>        * Following can invalidate both stage-1 and stage-2 TLBs depending upon
>        * the execution mode.
> diff --git a/xen/arch/arm/include/asm/cpregs.h b/xen/arch/arm/include/asm/cpregs.h
> index a7503a190f..46415b05d3 100644
> --- a/xen/arch/arm/include/asm/cpregs.h
> +++ b/xen/arch/arm/include/asm/cpregs.h
> @@ -229,6 +229,10 @@
>   #define TLBIALLH        p15,4,c8,c7,0   /* Invalidate Entire Hyp. Unified TLB */
>   #define TLBIMVAH        p15,4,c8,c7,1   /* Invalidate Unified Hyp. TLB by MVA */
>   #define TLBIALLNSNH     p15,4,c8,c7,4   /* Invalidate Entire Non-Secure Non-Hyp. Unified TLB */
> +#define TLBIIPAS2IS     p15,4,c8,c0,1   /* Invalidate unified TLB entry for stage 2 by IPA inner shareable */
> +#define TLBIIPAS2LIS    p15,4,c8,c0,5   /* Invalidate unified TLB entry for stage 2 last level by IPA inner shareable */
> +#define TLBIIPAS2       p15,4,c8,c4,1   /* Invalidate unified TLB entry for stage 2 by IPA */
> +#define TLBIIPAS2L      p15,4,c8,c4,5   /* Invalidate unified TLB entry for stage 2 last level by IPA */

The cpregs are meant to be define in a specific order:

  * Order registers by Coprocessor-> CRn-> Opcode 1-> CRm-> Opcode 2

But if I am not mistaken, this would need to be moved a big higher in 
the list.

>   
>   /* CP15 CR9: Performance monitors */
>   #define PMCR            p15,0,c9,c12,0  /* Perf. Mon. Control Register */
> diff --git a/xen/arch/arm/include/asm/cpufeature.h b/xen/arch/arm/include/asm/cpufeature.h
> index af4e9bdf06..8f6b889850 100644
> --- a/xen/arch/arm/include/asm/cpufeature.h
> +++ b/xen/arch/arm/include/asm/cpufeature.h
> @@ -77,8 +77,9 @@
>   #define ARM_HAS_SB 16
>   #define ARM64_WORKAROUND_1508412 17
>   #define ARM_HAS_NTLBPA 18
> +#define ARM32_HAS_TLB_IPA 19
>   
> -#define ARM_NCAPS           19
> +#define ARM_NCAPS           20
>   
>   #ifndef __ASSEMBLY__
>   
> @@ -440,7 +441,9 @@ struct cpuinfo_arm {
>               /* MMFR1 */
>               unsigned long __res1:32;
>               /* MMFR2 */
> -            unsigned long __res2:32;
> +            unsigned long __res2_0:16;
> +            unsigned long unitlb:4;
> +            unsigned long __res2_1:12;

There is only __res3 below. So let's rename it to __res4 and use __res3 
here.

>               /* MMFR3 */
>               unsigned long __res3:32;
>               /* MMFR4 */
> diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
> index 01f3cb16a0..5a414e80df 100644
> --- a/xen/arch/arm/include/asm/processor.h
> +++ b/xen/arch/arm/include/asm/processor.h
> @@ -459,6 +459,14 @@
>   #define FSRL_STATUS_DEBUG       (_AC(0x22,UL)<<0)
>   
>   #ifdef CONFIG_ARM_32
> +#define MM32_UNITLB_NI              0x0
> +#define MM32_UNITLB_BY_VA           0x1
> +#define MM32_UNITLB_BY_MATCH_ASID   0x2
> +#define MM32_UNITLB_BY_ALL_ASID     0x3
> +#define MM32_UNITLB_OTHER_TLBS      0x4

This name and ...

 > +#define MM32_UNITLB_BROADCAST       0x5


... this name are a bit confusing. For OTHER_TLBS, we still define some 
after. For BROADCAST, even before there was broadcast TLBs supported.

For simplicity, I would suggest just to define 0x6. We are not expected 
to use any other values. In fact for hypervisor mode, the minimum would 
be 0x4.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sat Dec 06 02:41:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Dec 2025 02:41:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179668.1503121 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRiE1-0006FA-TJ; Sat, 06 Dec 2025 02:40:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179668.1503121; Sat, 06 Dec 2025 02:40:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRiE1-0006F3-Qj; Sat, 06 Dec 2025 02:40:45 +0000
Received: by outflank-mailman (input) for mailman id 1179668;
 Sat, 06 Dec 2025 02:40:44 +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
 <SRS0=JSAj=6M=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRiE0-0006Ev-A1
 for xen-devel@lists.xenproject.org; Sat, 06 Dec 2025 02:40:44 +0000
Received: from fhigh-b4-smtp.messagingengine.com
 (fhigh-b4-smtp.messagingengine.com [202.12.124.155])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f34ed597-d24c-11f0-9d1b-b5c5bf9af7f9;
 Sat, 06 Dec 2025 03:40:40 +0100 (CET)
Received: from phl-compute-12.internal (phl-compute-12.internal [10.202.2.52])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 5CEE57A006A;
 Fri,  5 Dec 2025 21:40:38 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Fri, 05 Dec 2025 21:40:38 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 5 Dec 2025 21:40:36 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f34ed597-d24c-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1764988838;
	 x=1765075238; bh=zLpqZ0HkeT+emqS1VzvqlD3yS2YBk+DQOqM3XvSI6C8=; b=
	J+6THWQ6Ui1Q9yX2L2gdIP/ENqYPjKggSiKnFvldSh0cvCv2Bva51CON09a3HfKD
	YFV/IP+ka+RppxMyAfUNePTs3rjVzq3FJhUCxDc8Kqi6KD2cCVmj9Dd7eMSdHTes
	9Dc41Jrg4d618QZRIH7JejnIkrZza0YsXDWglMn55jpN5LGXNmbI0O3DRQ28+6uS
	+n8XZ/UHxApHXH2I2Q8p9yGWoaC+Va/wUxgOpAAVAChd4/zJHYKZuEd2VTgIfAaW
	3TXWV5ZPTL802OEE1MNxwxwdRcvWjurCscOx4iUB/v39q+wX64SlOsAFjsjBt3hT
	Qr5zyR2YONa4OkX3NRJXNw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
	1764988838; x=1765075238; bh=zLpqZ0HkeT+emqS1VzvqlD3yS2YBk+DQOqM
	3XvSI6C8=; b=dynM7ConqOzgpMrBxl5AsEhIjDgVGyEeDafO1ABY34KjVERgFw5
	1dHKBnpleppPgc7XJAUNK8ogzS2VmSKTFumAZUr4uuOSB3kNRhCjaGaeHLp/Rxz7
	+KXq/YQvA4T9rvKjoNO6GtNtx2lOpnSOyvH3KgyVt7EPfV/yyGzvyazVjs1rxq64
	ZWAcoEGin5xXLY1H+wqaS1msOJuZfgsJ8X+Vhq0ixW2IGT150HPNxXc9PlR8pGuL
	4AT8RU4z/1M736HrwuxZtpyozV+7fcSLuf/OBcSYqrZSXegI2cu783rUkSUxDVcz
	rERBxL6oCNdm87a8ROx4ES4pYCDQR+GcblA==
X-ME-Sender: <xms:pZczaRgayIm_iIMcYLX86TnWCeI5KEGvSVav7oKhJYOFduZdD43UPQ>
    <xme:pZczaVGnLd76gUjfIPZIklkTKhweydCO46O6D3-NA2oZqH7zxJjhHEIUglsXGps61
    thjEzLzzanjCcqllfp2WeMIzDWL490tx9WKsCng1bFkRATWnw>
X-ME-Received: <xmr:pZczaXTB-62ItmyAlyFbIryvaVyTaxtgRGagtkbPnFswxYuVM8F6qwZEr0KyknMuLx3hn2JJ4qyILvR5P66orJcPm95ggUDwp_Q>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdelkedtucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    epfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcuofgr
    rhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvihhsih
    gslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepveeujeetgeel
    leetudeuvefhtefgffejvedtvdfgieevheetheelgeeuledvjeevnecuffhomhgrihhnpe
    hgihhtlhgrsgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr
    ihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrd
    gtohhmpdhnsggprhgtphhtthhopeekpdhmohguvgepshhmthhpohhuthdprhgtphhtthho
    pegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohepgi
    gvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthht
    oheprghnthhhohhnhidrphgvrhgrrhgusehvrghtvghsrdhtvggthhdprhgtphhtthhope
    hmihgthhgrlhdrohhriigvlhesrghmugdrtghomhdprhgtphhtthhopehjsggvuhhlihgt
    hhesshhushgvrdgtohhmpdhrtghpthhtohepjhhulhhivghnseigvghnrdhorhhgpdhrtg
    hpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpdhrtghpthhtohepshhs
    thgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:pZczaSy02Ke84yNoou6KcIIAilbYHPZwf41ZDracH_ts6i4rxG5GbQ>
    <xmx:pZczaTfN8pFAk5q12IFlVSL5eVF3qreBN6josPcXwPR7aB1DxovNqA>
    <xmx:pZczaVPILApHaufVCfBASABX13Bj0IOhQnM3VguUAT74-PwS1D22Sg>
    <xmx:pZczaestU7p6IH4eF746PAWyUm1_1GpWW-OQMD58j94FfzK0lUy5uA>
    <xmx:ppczaVsw8Z-YvFid7dVEmg7A7468TmKtluV0QjgToNxORgvKtIx3RmuE>
Feedback-ID: i1568416f:Fastmail
Date: Sat, 6 Dec 2025 03:40:34 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] tools/sd-notify.h: Include string.h too
Message-ID: <aTOXogSld6LTStIn@mail-itl>
References: <20251205220012.1976435-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="n1xnV+VkO4X9AxJo"
Content-Disposition: inline
In-Reply-To: <20251205220012.1976435-1-andrew.cooper3@citrix.com>


--n1xnV+VkO4X9AxJo
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sat, 6 Dec 2025 03:40:34 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] tools/sd-notify.h: Include string.h too

On Fri, Dec 05, 2025 at 10:00:12PM +0000, Andrew Cooper wrote:
> Alpine Linux, when using --enable-systemd to get the init files, fails wi=
th:
>=20
>   tools/include/xen-sd-notify.h:69:3: error: call to undeclared library
>   function 'memcpy' with type 'void *(void *, const void *, unsigned long=
)';
>   ISO C99 and later do not support implicit function declarations
>   [-Wimplicit-function-declaration]
>      69 |   memcpy(socket_addr.sun.sun_path, socket_path, path_length);
>         |   ^
>=20
> This will be down to using musl rather than glibc.  Include the appropria=
te
> header.
>=20
> Fixes: 78510f3a1522 ("tools: Import stand-alone sd_notify() implementatio=
n from systemd")
> Reported-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab=
=2Ecom>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>

And also, this works:
https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/2199305972

> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Jan Beulich <jbeulich@suse.com>
> CC: Julien Grall <julien@xen.org>
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>
>=20
> Example failure:
>   https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/12336994239
> ---
>  tools/include/xen-sd-notify.h | 1 +
>  1 file changed, 1 insertion(+)
>=20
> diff --git a/tools/include/xen-sd-notify.h b/tools/include/xen-sd-notify.h
> index 28c9b20f152d..20441d0ec9b8 100644
> --- a/tools/include/xen-sd-notify.h
> +++ b/tools/include/xen-sd-notify.h
> @@ -20,6 +20,7 @@
>  #include <errno.h>
>  #include <stddef.h>
>  #include <stdlib.h>
> +#include <string.h>
>  #include <sys/socket.h>
>  #include <sys/un.h>
>  #include <unistd.h>
>=20
> base-commit: d430c0a66e102fb12baeec6a178c20da7864d5b5
> prerequisite-patch-id: 3db642dd7c06f6988283444c764cd646982775bb
> --=20
> 2.39.5
>=20

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--n1xnV+VkO4X9AxJo
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkzl6IACgkQ24/THMrX
1yza+wf7B32wUhwLnUjKSCUfcbopgFFxd0JqvqB2B1SIMpqQZnkEIMxMglIX+0Ul
cqG6he6zO9/49gqjBbdUFvVZDIjcPzrX/EF2EXXxMmpKgboxo7F10MqDypIyGzbu
pa5e3PkYhbTKHGq6KXCvQFgpaQcUudVEp9fHWXquzip8rhoYLA0gq/eCQvzOSDno
dh7V5I0WP2PkL/DXfFz6HDWN8//7PozUcOAtWjsQrENmXi5bLk+UdJhZvrE4BFJu
/5NsXxdOC0sNc/WzgXb9d/8InlS4o9Xkzpw9RJxFbp4GhEWlYyQgXOVmUXMgQLi4
Z9tSwIr6phPRigqf7AnqwAqv0Igb6w==
=peoO
-----END PGP SIGNATURE-----

--n1xnV+VkO4X9AxJo--


From xen-devel-bounces@lists.xenproject.org Sat Dec 06 02:49:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Dec 2025 02:49:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179690.1503172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRiMZ-0007MM-5q; Sat, 06 Dec 2025 02:49:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179690.1503172; Sat, 06 Dec 2025 02:49:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRiMZ-0007MF-36; Sat, 06 Dec 2025 02:49:35 +0000
Received: by outflank-mailman (input) for mailman id 1179690;
 Sat, 06 Dec 2025 02:49:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JSAj=6M=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRiMY-0007M8-0j
 for xen-devel@lists.xenproject.org; Sat, 06 Dec 2025 02:49:34 +0000
Received: from fout-b4-smtp.messagingengine.com
 (fout-b4-smtp.messagingengine.com [202.12.124.147])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2e1ffc97-d24e-11f0-980a-7dc792cee155;
 Sat, 06 Dec 2025 03:49:28 +0100 (CET)
Received: from phl-compute-12.internal (phl-compute-12.internal [10.202.2.52])
 by mailfout.stl.internal (Postfix) with ESMTP id C2FBD1D00199;
 Fri,  5 Dec 2025 21:49:26 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Fri, 05 Dec 2025 21:49:26 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 5 Dec 2025 21:49:25 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2e1ffc97-d24e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:message-id:mime-version:reply-to:subject:subject:to:to; s=fm1;
	 t=1764989366; x=1765075766; bh=/dlkRFv0tNgM4I9AXI5GHWsgGvCsnxyM
	uoj/1XwRQWA=; b=P0aw5fLFjV8+jtNFgi7QXYdFpJpKC9Qb1bnS99wLJuuFHox/
	IvWZcBDMhq6gK9GPg+5qzHIZCt0+7F4uBfWZfZG5MWgfsV3BOH0lGi4yhTn31uD8
	uDKn0OYTYBHAuMTWsE8VORfFLkQ2Kmv8Y4Uh4PElA8ejRsdTe6YjDsfYh9L003sT
	KT/6lXdBmd8MFfARXJi+z4rIszbxGj1PBZAy+i59XQ5neZNT+TTPYI1qNMXZlsol
	APzzO9sM5irHMw1aooITbgUVHAVMZ17VEraBcil9aVeURZo8/QhPTS5rEwvoLFvK
	tgpCsYbm13Eka76hbfSTtNq5RXr7qnumKMsglQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:message-id:mime-version:reply-to:subject
	:subject:to:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm1; t=1764989366; x=1765075766; bh=/dlkRFv0tNgM4I9AXI5GHWsgGvCs
	nxyMuoj/1XwRQWA=; b=hK2v09CMAnygYs1xKKz2mb86XbzbULoHJHflbExeV5H/
	g2RatednDmXNENYpLbebkqVZI3kbVH0pUM2K/NRbS5y/rnNAZM/j0GPUbqPdbqo7
	GHJHjNYu5nxkhCdyIQgcIhztZ6ciH2fVMFrrKQ3s7oshB78YlveKUviXC/NsZazx
	DFNKbegDo6+MqGa6OvPtior0Nuj1x5d4YRsp4uwwXPhhDd+L2gaVN6OuUC8vfSNf
	pWpU2q/wFv7hx+1lyns4Fdq1rb59qQbvpNTcsFe45mSVVudTQ8yhHXgln0fdcRXs
	akcZ9TtovZHGJPimcCOcYPGS1FWsiVGAfaExtZFdqA==
X-ME-Sender: <xms:tpkzaUJGtMWGbueuyYUnu4tCTV0Etx-3Fo784aguGMJMfzfOVxK0oQ>
    <xme:tpkzabkti9eNO55XZGxK9S82KHkM4Y_Qv_dWkD6l2UHSgH2NVlsLvdcVb_yTnZ8SS
    6eu5Qasf-mzuiTFJu0dLjKf7oo3uEKNejnHvuAuJ_a0KpQt8A>
X-ME-Received: <xmr:tpkzaSG2YJp0JW9qF17vmcjFCxnK2s95dCSou909JGQSc6svXVIRGQvn489YvNth2V1Aa39Odhb259e_x2AsbfeHPNIQNr0hk2k2GIzrwEM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdelkeduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucforghr
    tgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhishhisg
    hlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeejueefhfelieek
    geeftdfgieeugefhudetjeethfefveehffejhfeigefgjeekleenucffohhmrghinhepgh
    hithhlrggsrdgtohhmnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghi
    lhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtg
    homhdpnhgspghrtghpthhtohepfedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohep
    gigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpth
    htoheprghnughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthho
    pehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:tpkzabG1BQwc-0S9n6dBjf9aguvyA-BupxVFO09TNjra1_mcAX3tNg>
    <xmx:tpkzafPdOKce6qaBFUrad_dgJ99BGcozkO2CqgS6iY6z9CF6ie9lAQ>
    <xmx:tpkzaaFTNKuD3MxCdmQMFVwKn5Tp3yumZuJXNnkqQ_87uoI13sFzyA>
    <xmx:tpkzaWNLqQzPQfPx2K6Q61tEBHnNT_Hq7WS5aYKsDDzmECUre9wHWw>
    <xmx:tpkzabbhkWIdzKLDjoFks7oBYRssqu95eCldn94Z0yNxS2Rb8CRO0mPO>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v4 0/6] Add driver domains test
Date: Sat,  6 Dec 2025 03:48:02 +0100
Message-ID: <cover.b56a66dfe4d98db2f1cc8b1fe0c2091d02cebe38.1764989098.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This is intended to detect issues like recent xl devd crash in domU.

Pipeline (on top of Andrew's sd-notify.h fixup):
https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/2199305972

I did checked that indeed it fails with the fix reverted - that's why the
Debian patch - Alpine version did not detected that regression.

Requires Alpine 3.22 and Debian in test-artifacts repo - patch series sent
separately.
---
Cc: Andrew Cooper <andrew.cooper3@citrix.com>

Marek Marczykowski-Górecki (6):
  automation: switch to alpine:3.22
  CI: extract qubes test container
  CI: cleanup alpine containers
  CI: Add driver domains tests
  CI: Add configure --enable-systemd for full build
  CI: Run driver domains test on Debian too

 automation/build/alpine/3.18-arm64v8.dockerfile       |  51 +----
 automation/build/alpine/3.18.dockerfile               |  52 +----
 automation/build/alpine/3.22-arm64v8-qubes.dockerfile |  18 +-
 automation/build/alpine/3.22-arm64v8.dockerfile       |  46 +++-
 automation/build/alpine/3.22.dockerfile               |  59 ++++-
 automation/build/debian/13-x86_64.dockerfile          |   3 +-
 automation/gitlab-ci/build.yaml                       |  44 +--
 automation/gitlab-ci/test.yaml                        | 125 +++++----
 automation/scripts/build                              |   1 +-
 automation/scripts/containerize                       |   4 +-
 automation/scripts/qemu-driverdomains-x86_64.sh       | 152 +++++++++++-
 11 files changed, 379 insertions(+), 176 deletions(-)
 delete mode 100644 automation/build/alpine/3.18-arm64v8.dockerfile
 delete mode 100644 automation/build/alpine/3.18.dockerfile
 create mode 100644 automation/build/alpine/3.22-arm64v8-qubes.dockerfile
 create mode 100644 automation/build/alpine/3.22-arm64v8.dockerfile
 create mode 100644 automation/build/alpine/3.22.dockerfile
 create mode 100755 automation/scripts/qemu-driverdomains-x86_64.sh

base-commit: 28d1d1c3f5aa6563ecf07136ba064be0261565c1
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Sat Dec 06 02:49:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Dec 2025 02:49:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179692.1503186 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRiMb-0007ck-N3; Sat, 06 Dec 2025 02:49:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179692.1503186; Sat, 06 Dec 2025 02:49:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRiMb-0007bh-IY; Sat, 06 Dec 2025 02:49:37 +0000
Received: by outflank-mailman (input) for mailman id 1179692;
 Sat, 06 Dec 2025 02:49:36 +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
 <SRS0=JSAj=6M=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRiMa-0007Zh-TQ
 for xen-devel@lists.xenproject.org; Sat, 06 Dec 2025 02:49:36 +0000
Received: from fhigh-b4-smtp.messagingengine.com
 (fhigh-b4-smtp.messagingengine.com [202.12.124.155])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 32e9d38f-d24e-11f0-9d1b-b5c5bf9af7f9;
 Sat, 06 Dec 2025 03:49:36 +0100 (CET)
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfhigh.stl.internal (Postfix) with ESMTP id CD6137A0161;
 Fri,  5 Dec 2025 21:49:34 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-02.internal (MEProxy); Fri, 05 Dec 2025 21:49:34 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 5 Dec 2025 21:49:33 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 32e9d38f-d24e-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1764989374; x=1765075774; bh=vJBT5K2eNg
	qcFcTpoaQhIeuJpfsyH1nWf1doE6FT5lA=; b=nmi30XLaefncKSHceVI9gFDtmQ
	v6PkhmeWH9pZPJXbaiUlouHvhfQz04Ozm2tTLuDb3kSTEWr0DBMPFagFrsJ39TDz
	/fZHNb/VgFtjUJQbbHbPqxuzwshPNyLfD2vue11dUShztjf7uVy+ISquIyxIrN9h
	G7TOOjOcTWAGUrbIotlOg+UmZ8wuQQ2eRyt6ZsYEbU95Qslebu2UMD7t6pdCZ245
	1MtN019zlEa4SN/d4Uv8ozME+OVRh9t7UKr8s4Wc7vCnVaPUy75M4gTKTTIo7PjF
	9yZ/pen3OSy1OXWp8dQRZEWcN4uqIab5y8jpJkYS482DfzUeXOj3p3YHViVg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1764989374; x=
	1765075774; bh=vJBT5K2eNgqcFcTpoaQhIeuJpfsyH1nWf1doE6FT5lA=; b=r
	V0zr1NzO5ylRM4loYcOGqSNzVCaX6ICAag5GUdrVyJ/fa+y3PFl+7JzHabHii4vd
	4Y+JgS+M7MVhP6vLJSFvBLKtaTJAnnPcYeJ6Q2yK72WJZ9dfiDazJzH2Knl+rhJX
	JxnObXCi6S1iYolyaq8Vk0UqkLoIr2f2ISq+DytWx0ENehZ1BaUg5EIWZavaHjYv
	2pywj8yGaxOk2TiSpQM2yCwugTLX1xOBFLFZyfQMSt7vzs31fHopO1DyduAReoUf
	QJiTDk875A/QBP9iVx8GIHppcMUbq6NcT5IgGLirr+VNrhYH+304p85cbCfWclgZ
	BQM+XDt5h5HCXaY22TP2Q==
X-ME-Sender: <xms:vpkzaS7A3hNmYg409D4lMbMe504J9zNej7lhKi9PbIlEhM1AuctkRQ>
    <xme:vpkzaSwOFsCE7Zxb1xhvC-zHPa2_ylzGpLVPOfq0CrcvyeATEdjwxoJiux-IUlKER
    _huvBNj9Ky81jkpACmWX3r7lt96upY9QRo3ZygtJ97qBwmkEj8>
X-ME-Received: <xmr:vpkzaZwjwnUskxHqPLCi8hxe9dXyMa3dMz34niicjFeglSCru8gRUDNY1mvRyGOCLjlh4Yfu2wvH8PYwDNSm3DUl580C9QEObv5gfrb7mgY>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdelkeduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfe
    estghithhrihigrdgtohhmpdhrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgs
    lhgvthhhihhnghhslhgrsgdrtghomhdprhgtphhtthhopegtrghrughovgestggrrhguoh
    gvrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:vpkzaax7GDHBBqd_Z4pW1yjBokUlNzJ01Tdq-n6GDGBnmeLa1xlgkQ>
    <xmx:vpkzaTbtLkYcgzEO8jrlpBve268S1wWgrBajaQRQRX5wHMWmSXrekw>
    <xmx:vpkzabXd3ZA8qtJDRJJiXTLdlVPvxffCQb3Yif1QzmyLDwYmxMPl9A>
    <xmx:vpkzaRhMvbIBFmRQHh583LFGSAPRB4b6QtzVu6ED4w89bwCwrMD8rQ>
    <xmx:vpkzaeCsGXLGy6fyjGM77y71qsRK2m63aj6oa5bomQtJJTQIiVdcZkOD>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 5/6] CI: Add configure --enable-systemd for full build
Date: Sat,  6 Dec 2025 03:48:07 +0100
Message-ID: <1363a4377800fb2cbe8dbbbbc2b08d2af968a47e.1764989098.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <cover.b56a66dfe4d98db2f1cc8b1fe0c2091d02cebe38.1764989098.git-series.marmarek@invisiblethingslab.com>
References: <cover.b56a66dfe4d98db2f1cc8b1fe0c2091d02cebe38.1764989098.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This doesn't exclude sysvinit scripts, but allows testing systemd too.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
--
Changes in v4:
- drop systemd-dev, add --enable-systemd always
Changes in v3:
- switch to trixie

New in v2.
---
 automation/scripts/build | 1 +
 1 file changed, 1 insertion(+)

diff --git a/automation/scripts/build b/automation/scripts/build
index 7a81d229decd..9485f37c7020 100755
--- a/automation/scripts/build
+++ b/automation/scripts/build
@@ -71,6 +71,7 @@ else
     # Full build.  Figure out our ./configure options
     cfgargs=("--prefix=/usr")
     cfgargs+=("--enable-docs")
+    cfgargs+=("--enable-systemd")
 
     # booleans for which compiler is in use
     cc_is_gcc="$($cc --version | grep -q gcc && echo "y" || :)"
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Sat Dec 06 02:49:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Dec 2025 02:49:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179691.1503182 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRiMb-0007aJ-ER; Sat, 06 Dec 2025 02:49:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179691.1503182; Sat, 06 Dec 2025 02:49:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRiMb-0007aC-B1; Sat, 06 Dec 2025 02:49:37 +0000
Received: by outflank-mailman (input) for mailman id 1179691;
 Sat, 06 Dec 2025 02:49:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JSAj=6M=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRiMa-0007M8-MM
 for xen-devel@lists.xenproject.org; Sat, 06 Dec 2025 02:49:36 +0000
Received: from fhigh-b4-smtp.messagingengine.com
 (fhigh-b4-smtp.messagingengine.com [202.12.124.155])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 31ed41f5-d24e-11f0-980a-7dc792cee155;
 Sat, 06 Dec 2025 03:49:34 +0100 (CET)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 41D1B7A0149;
 Fri,  5 Dec 2025 21:49:33 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Fri, 05 Dec 2025 21:49:33 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 5 Dec 2025 21:49:32 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 31ed41f5-d24e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1764989373; x=1765075773; bh=kOc5r6GnVP
	FBVwv2phdHKekXLtzAx8B+0AyzS/nrGAY=; b=u8InFHFzrd4zdgoBP+NmUi3M+m
	OS1JJugg9kqmxAaJQWQv9tb6g++wBy5c6UzZaRXvA1cRmv++tBVL98W7zjJBalVj
	HEj6uWtAP6Abb919Hi4TAWVRZs7arJUm/EYmCMJMqqUlqRIcN49RxEVVGyoym3zF
	ijFv6SH3MGiKkrNy3gK0GajA+157jd5gwFZt92gqa6ur3aYVeGVLKxK445TNzWCE
	zAouhSXQSslo8ZbCKLzYQGKPPsLZDaGK1sKSQAe7U6dVI8zOhy3VeKVZx5cz+UHE
	NnEB/4dsaCYJE+K74Y3uz9XLMiQH6jHPHO/CR1tHwa0v9C42bAl+w6qUWe7g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1764989373; x=
	1765075773; bh=kOc5r6GnVPFBVwv2phdHKekXLtzAx8B+0AyzS/nrGAY=; b=c
	/9AWcNpBQWc3GjjV053LbMYZben++ojpKRen+DhZosgNQ79L2C91J7oSg80uBnWi
	yuwkUiV306DAfW/iU9bXcaVEFOqowPMbH1qDzI20mD2AJgKRHi+xBdZhx2DzAYEM
	A/2Flzx1Y4PjabqpsrLEwtjMSChHgGytWj6tsYBHRPR8PEylpFQTs0NWLG1h8CzR
	fe2ts+sHczNjzZ33kuNrxQ8YJGdhC9TO+fgf3G7JywHllI3ijBymKI/UyC0odN0N
	Sj/cPylRyxApTmdLYlqYzqnUK5qWnItADyBjSmCsHeUCmbOBdUCy06RjA/BgnLxt
	NQr/IUC1/ywcNq62wt61Q==
X-ME-Sender: <xms:vZkzaampUksWULTy3zfn4aXxQ-XUbrFNXfHZVGs4OZbA-igbgoO7dw>
    <xme:vZkzaYv5mGfQXBA_ZK2THGbqV3-oUlB2WS-eTG1FYcjz7HCGu4J9yRgt6ynz3qfwt
    JHavYAQFvqmzr_jXdm_IwtQiVv_Mi9H8Bs6Ujqf2vDeF6rxCpc>
X-ME-Received: <xmr:vZkzaQ-1i8VFZvHGr9b8f2roDJVhj3KTLpJhTJTkKRqYN71BR4zUAsa69JQtPOw7zIfsrD5MTU-cedIQCMi_e0BxGM8yTRIlWMEqcGngRv8>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdelkeduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfe
    estghithhrihigrdgtohhmpdhrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgs
    lhgvthhhihhnghhslhgrsgdrtghomhdprhgtphhtthhopegtrghrughovgestggrrhguoh
    gvrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:vZkzaaO7nBIpJqSAPuApASM6YPJcl6iBfkspa5W_ehj0lYrbKM2tTw>
    <xmx:vZkzaWETqkbG9LtZLqV4rQqrLY82crAkzcL6dA8Cqko2qgogNhE9dw>
    <xmx:vZkzaQTAO-Pf_rOHBM5USHOZpdSHt3eQfahY7WCB3ek1HOjs7k-ptg>
    <xmx:vZkzabuh3UCs0SfjFIZSjb02Zf6IOOUepbiZ8rfujzbwsJLnXEbDMQ>
    <xmx:vZkzaZfnGQMdlD1DNXBsd6AUSR9IB_bl_m2fsBOH5rbICX-pvqNdwgZ9>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 4/6] CI: Add driver domains tests
Date: Sat,  6 Dec 2025 03:48:06 +0100
Message-ID: <cf2a2544fe27fedca5129b61912c064f4be08236.1764989098.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <cover.b56a66dfe4d98db2f1cc8b1fe0c2091d02cebe38.1764989098.git-series.marmarek@invisiblethingslab.com>
References: <cover.b56a66dfe4d98db2f1cc8b1fe0c2091d02cebe38.1764989098.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Setup a simple two domU system. One with network backend, running
xendriverdomain service, and one with frontend, trying to ping the
backend.

Contrary to other similar tests, use disk image instead of initrd, to
allow bigger rootfs without adding more RAM (for both dom0 and domU).
But keep using pxelinux as a bootloader as it's easier to setup than
installing grub on the disk. Theoretically, it could be started via direct
kernel boot in QEMU, but pxelinux is slightly closer to real-world
deployment.

Use fakeroot to preserve file owners/permissions. This is especially
important for suid binaries like /bin/mount - without fakeroot, they
will end up as suid into non-root user.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Changes in v3:
- add fakeroot
- run ldconfig at the disk image creation time, to avoid running it at
  dom0/domU boot time (which is much slower)
Changes in v2:
- use heredoc
- limit ping loop iterations
- use full "backend" / "frontend" in disk image names
- print domU consoles directly to /dev/console, to avoid systemd-added
  messages prefix
- terminate test on failure, don't wait for timeout
---
 automation/build/debian/13-x86_64.dockerfile    |   2 +-
 automation/gitlab-ci/test.yaml                  |   8 +-
 automation/scripts/qemu-driverdomains-x86_64.sh | 138 +++++++++++++++++-
 3 files changed, 148 insertions(+)
 create mode 100755 automation/scripts/qemu-driverdomains-x86_64.sh

diff --git a/automation/build/debian/13-x86_64.dockerfile b/automation/build/debian/13-x86_64.dockerfile
index 2c6c9d4a5098..6382bafbd5bd 100644
--- a/automation/build/debian/13-x86_64.dockerfile
+++ b/automation/build/debian/13-x86_64.dockerfile
@@ -55,7 +55,9 @@ RUN <<EOF
 
         # for test phase, qemu-* jobs
         busybox-static
+        e2fsprogs
         expect
+        fakeroot
         ovmf
         qemu-system-x86
 
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 7b36f1e126ca..abc5339a74ab 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -656,6 +656,14 @@ qemu-alpine-x86_64-gcc:
     - *x86-64-test-needs
     - alpine-3.22-gcc
 
+qemu-alpine-driverdomains-x86_64-gcc:
+  extends: .qemu-x86-64
+  script:
+    - ./automation/scripts/qemu-driverdomains-x86_64.sh 2>&1 | tee ${LOGFILE}
+  needs:
+    - *x86-64-test-needs
+    - alpine-3.22-gcc
+
 qemu-smoke-x86-64-gcc:
   extends: .qemu-smoke-x86-64
   script:
diff --git a/automation/scripts/qemu-driverdomains-x86_64.sh b/automation/scripts/qemu-driverdomains-x86_64.sh
new file mode 100755
index 000000000000..c0241da54168
--- /dev/null
+++ b/automation/scripts/qemu-driverdomains-x86_64.sh
@@ -0,0 +1,138 @@
+#!/bin/bash
+
+set -ex -o pipefail
+
+dom0_rootfs_extra_comp=()
+dom0_rootfs_extra_uncomp=()
+
+cd binaries
+
+# DomU rootfs
+
+mkdir -p rootfs
+cd rootfs
+mkdir -p etc/local.d
+passed="ping test passed"
+failed="TEST FAILED"
+cat > etc/local.d/xen.start << EOF
+#!/bin/bash
+
+set -x
+
+if grep -q test=backend /proc/cmdline; then
+    brctl addbr xenbr0
+    ip link set xenbr0 up
+    ip addr add 192.168.0.1/24 dev xenbr0
+    bash /etc/init.d/xendriverdomain start
+    # log backend-related logs to the console
+    tail -F /var/log/xen/xldevd.log /var/log/xen/xen-hotplug.log >>/dev/console 2>/dev/null &
+else
+    ip link set eth0 up
+    ip addr add 192.168.0.2/24 dev eth0
+    timeout=6 # 6*10s
+    until ping -c 10 192.168.0.1; do
+        sleep 1
+        if [ \$timeout -le 0 ]; then
+            echo "${failed}"
+            exit 1
+        fi
+        ((timeout--))
+    done
+    echo "${passed}"
+fi
+EOF
+chmod +x etc/local.d/xen.start
+fakeroot sh -c "
+    zcat ../rootfs.cpio.gz | cpio -imd
+    zcat ../xen-tools.cpio.gz | cpio -imd
+    ldconfig -r .
+    touch etc/.updated
+    mkfs.ext4 -d . ../domU-rootfs.img 1024M
+"
+cd ..
+rm -rf rootfs
+
+# Dom0 rootfs
+mkdir -p rootfs
+cd rootfs
+fakeroot -s ../fakeroot-save sh -c "
+    zcat ../rootfs.cpio.gz | cpio -imd
+    zcat ../xen-tools.cpio.gz | cpio -imd
+    ldconfig -r .
+    touch etc/.updated
+"
+mkdir -p root etc/local.d
+cat > root/backend.cfg << EOF
+name="backend"
+memory=512
+vcpus=1
+kernel="/root/bzImage"
+extra="console=hvc0 root=/dev/xvda net.ifnames=0 test=backend"
+disk=[ '/root/domU-rootfs-backend.img,raw,xvda,rw' ]
+EOF
+cat > root/frontend.cfg << EOF
+name="frontend"
+memory=512
+vcpus=1
+kernel="/root/bzImage"
+extra="console=hvc0 root=/dev/xvda net.ifnames=0 test=frontend"
+disk=[ '/root/domU-rootfs-frontend.img,raw,xvda,rw' ]
+vif=[ 'bridge=xenbr0,backend=backend' ]
+EOF
+
+cat > etc/local.d/xen.start << EOF
+#!/bin/bash
+
+set -x
+
+bash /etc/init.d/xencommons start
+
+xl list
+
+tail -F /var/log/xen/console/guest-backend.log 2>/dev/null | sed -e "s/^/(backend) /" >>/dev/console &
+tail -F /var/log/xen/console/guest-frontend.log 2>/dev/null | sed -e "s/^/(frontend) /" >>/dev/console &
+xl -vvv create /root/backend.cfg
+xl -vvv create /root/frontend.cfg
+EOF
+chmod +x etc/local.d/xen.start
+
+cp ../domU-rootfs.img ./root/domU-rootfs-backend.img
+cp ../domU-rootfs.img ./root/domU-rootfs-frontend.img
+cp ../bzImage ./root/
+mkdir -p etc/default
+echo 'XENCONSOLED_TRACE=all' >> etc/default/xencommons
+mkdir -p var/log/xen/console
+fakeroot -i ../fakeroot-save mkfs.ext4 -d . ../dom0-rootfs.img 2048M
+cd ..
+rm -rf rootfs
+
+cd ..
+
+cat >> binaries/pxelinux.0 << EOF
+#!ipxe
+
+kernel xen console=com1 console_timestamps=boot
+module bzImage console=hvc0 root=/dev/sda net.ifnames=0
+boot
+EOF
+
+# Run the test
+rm -f smoke.serial
+export TEST_CMD="qemu-system-x86_64 \
+    -cpu qemu64,+svm \
+    -m 2G -smp 2 \
+    -monitor none -serial stdio \
+    -nographic \
+    -device virtio-net-pci,netdev=n0 \
+    -netdev user,id=n0,tftp=binaries,bootfile=/pxelinux.0 \
+    -drive file=binaries/dom0-rootfs.img,format=raw"
+
+export TEST_LOG="smoke.serial"
+export BOOT_MSG="Latest ChangeSet: "
+export LOG_MSG="Domain-0"
+# exit early on test failure too, check if it was success below
+export PASSED="$passed|$failed"
+
+./automation/scripts/console.exp | sed 's/\r\+$//'
+
+grep "$passed" smoke.serial
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Sat Dec 06 02:49:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Dec 2025 02:49:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179693.1503202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRiMe-000849-4J; Sat, 06 Dec 2025 02:49:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179693.1503202; Sat, 06 Dec 2025 02:49:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRiMe-000840-1Q; Sat, 06 Dec 2025 02:49:40 +0000
Received: by outflank-mailman (input) for mailman id 1179693;
 Sat, 06 Dec 2025 02:49:38 +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
 <SRS0=JSAj=6M=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRiMc-0007Zh-Ee
 for xen-devel@lists.xenproject.org; Sat, 06 Dec 2025 02:49:38 +0000
Received: from fout-b4-smtp.messagingengine.com
 (fout-b4-smtp.messagingengine.com [202.12.124.147])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 33d127e2-d24e-11f0-9d1b-b5c5bf9af7f9;
 Sat, 06 Dec 2025 03:49:37 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfout.stl.internal (Postfix) with ESMTP id 57F0E1D0019A;
 Fri,  5 Dec 2025 21:49:36 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-06.internal (MEProxy); Fri, 05 Dec 2025 21:49:36 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 5 Dec 2025 21:49:35 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 33d127e2-d24e-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1764989376; x=1765075776; bh=prW7XMiOMK
	ifMEePOcA3es+i0QHEsIa+PvP5prM8XC0=; b=UZ5i8v0/a1EbjX+UR/fP2Sd+it
	k1JqrNyO7va/F+uN9xDuEiGntALyeYLzfBVx+UKVbBO1GjqxFtGJ93BvqOUFn5/7
	gJEsv2cDrG5KGztAZSnoQzMfV9g1JVWv9oRSLgCSELqIzr7XiOe57rk46qVyrVoY
	h1JQ9f2eLhonBOLSiamePZGLXjxzDfT8Xi25FyNey4ZdB2NVeZr0dRBoXTQOkpwU
	jKqe6iD9+RRFqjTrNIml5/zp+r5BCUKZiHdHYih/EB1uiCsLoPeTTwsIqO6zeXnn
	qKiGKB/y9pRziD/baCM61gzejBcSJLcJtFlccMlcXFaN4UCWi71BmMHobGYQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1764989376; x=
	1765075776; bh=prW7XMiOMKifMEePOcA3es+i0QHEsIa+PvP5prM8XC0=; b=G
	9z1pc3skBYmsSTamg/Sfoi1TnVPCngqeRSYkvsWAs1Y1brlhR2VFSr4ug2t0yyBf
	Ya6pbQ0U4Qey33I50Zs58N9MWBXJ4tGAaUOkQgNUmuVSN1XPcvTmCRziFmsIWrN2
	yWICA33lSGM9mXrZQ8zCltifANJL1SVk6RnOIfvVUpBrz+TI3JZ/+4VyfPECCvsR
	oYkL5ULW+xjILXmIaToSMv+anbz48ctsRiBbJLIQiWVGZhMoHaU6aKYj1amMPo6d
	2bOjLXf3XVcv0b2ZkhebmjPiBWNZ4HPDiS0GjMAwq2qSsDilli24Z7IO2kHwTwHe
	Mc3g63xV8MDs5kd2kb82w==
X-ME-Sender: <xms:wJkzactuUSRQqwbS68p-bBWwpoA0zGz_HH_WKW5ybmZNGwkhLFioJw>
    <xme:wJkzaQV1h-gNs9SApC_EnhE9EYuVu1MQE-I1E-7ElTiby5NbbTfrHdnMp2jRYrrlx
    NTu7aN8hrrYtbQh6dWUjmqwEQB2i6RcEHH-MvgezNW_jQ6v0Q>
X-ME-Received: <xmr:wJkzaQHkfY7fODtRVt1nTo-qIowRrIhu3VNr1voEm44hozg40VV3sqvkaeUiRYkBGDf02zrhVfD9HORJRH9EtwXY5fkPgUpdN_UdgHc9N5A>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdelkeduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedunecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfe
    estghithhrihigrdgtohhmpdhrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgs
    lhgvthhhihhnghhslhgrsgdrtghomhdprhgtphhtthhopegtrghrughovgestggrrhguoh
    gvrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:wJkzaa0kAFsVd8H7GxddUrbRLe_nCausvfkfJqCYmY8ro8zA9pB5Sg>
    <xmx:wJkzaaPIlOpFBPHfsS-OGCdovH3TAUHd1Zs1Unb8PMjjYSbQK2pBkg>
    <xmx:wJkzaR453OEsj9jIRsEbE7YJj0apGXh4JWDe7U2ofMEfOkFAG-Bf_w>
    <xmx:wJkzac2N9gcI8cYznPI1Z18Y7tXOR14dyC4rYzNDLkl6_r165vuv6Q>
    <xmx:wJkzadkT9IODVGz7iSdC5bxBgu0HCwZEb6-WECs6yaJjzBDoZqWhvSLy>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 6/6] CI: Run driver domains test on Debian too
Date: Sat,  6 Dec 2025 03:48:08 +0100
Message-ID: <7fdf483cb41ba04ec3949fba31991ffec2c5b712.1764989098.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <cover.b56a66dfe4d98db2f1cc8b1fe0c2091d02cebe38.1764989098.git-series.marmarek@invisiblethingslab.com>
References: <cover.b56a66dfe4d98db2f1cc8b1fe0c2091d02cebe38.1764989098.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The recent failure affected only glibc-based systems, so do the test on
Debian too.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Changes in v3:
- update to trixie
Changes in v2:
- use systemd in Debian
---
 automation/build/debian/13-x86_64.dockerfile    |  1 +-
 automation/gitlab-ci/test.yaml                  | 19 ++++++++++++++++++-
 automation/scripts/qemu-driverdomains-x86_64.sh | 18 +++++++++++++++--
 3 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/automation/build/debian/13-x86_64.dockerfile b/automation/build/debian/13-x86_64.dockerfile
index 6382bafbd5bd..3f84ba4a8823 100644
--- a/automation/build/debian/13-x86_64.dockerfile
+++ b/automation/build/debian/13-x86_64.dockerfile
@@ -60,6 +60,7 @@ RUN <<EOF
         fakeroot
         ovmf
         qemu-system-x86
+        systemctl
 
         # for build-each-commit-gcc
         ccache
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index abc5339a74ab..ffb2880f5af3 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -30,6 +30,17 @@
     job: microcode-x86
     ref: master
 
+.debian-x86-64-test-needs: &debian-x86-64-test-needs
+  - project: xen-project/hardware/test-artifacts
+    job: linux-6.6.56-x86_64
+    ref: master
+  - project: xen-project/hardware/test-artifacts
+    job: debian-13-x86_64-rootfs
+    ref: master
+  - project: xen-project/hardware/test-artifacts
+    job: microcode-x86
+    ref: master
+
 .qemu-arm64:
   extends: .test-jobs-common
   variables:
@@ -664,6 +675,14 @@ qemu-alpine-driverdomains-x86_64-gcc:
     - *x86-64-test-needs
     - alpine-3.22-gcc
 
+qemu-debian-13-driverdomains-x86_64-gcc:
+  extends: .qemu-x86-64
+  script:
+    - ./automation/scripts/qemu-driverdomains-x86_64.sh 2>&1 | tee ${LOGFILE}
+  needs:
+    - *debian-x86-64-test-needs
+    - debian-13-x86_64-gcc-debug
+
 qemu-smoke-x86-64-gcc:
   extends: .qemu-smoke-x86-64
   script:
diff --git a/automation/scripts/qemu-driverdomains-x86_64.sh b/automation/scripts/qemu-driverdomains-x86_64.sh
index c0241da54168..6a69282470ca 100755
--- a/automation/scripts/qemu-driverdomains-x86_64.sh
+++ b/automation/scripts/qemu-driverdomains-x86_64.sh
@@ -23,7 +23,11 @@ if grep -q test=backend /proc/cmdline; then
     brctl addbr xenbr0
     ip link set xenbr0 up
     ip addr add 192.168.0.1/24 dev xenbr0
-    bash /etc/init.d/xendriverdomain start
+    if [ -d /run/systemd ]; then
+        systemctl start xendriverdomain
+    else
+        bash /etc/init.d/xendriverdomain start
+    fi
     # log backend-related logs to the console
     tail -F /var/log/xen/xldevd.log /var/log/xen/xen-hotplug.log >>/dev/console 2>/dev/null &
 else
@@ -85,7 +89,11 @@ cat > etc/local.d/xen.start << EOF
 
 set -x
 
-bash /etc/init.d/xencommons start
+if [ -d /run/systemd ]; then
+    systemctl start xen-init-dom0.service
+else
+    bash /etc/init.d/xencommons start
+fi
 
 xl list
 
@@ -102,6 +110,12 @@ cp ../bzImage ./root/
 mkdir -p etc/default
 echo 'XENCONSOLED_TRACE=all' >> etc/default/xencommons
 mkdir -p var/log/xen/console
+if [ -e etc/systemd/system.conf ]; then
+    systemctl --root=. enable \
+        xenstored.service \
+        xenconsoled.service \
+        xen-init-dom0.service
+fi
 fakeroot -i ../fakeroot-save mkfs.ext4 -d . ../dom0-rootfs.img 2048M
 cd ..
 rm -rf rootfs
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Sat Dec 06 02:53:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Dec 2025 02:53:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179740.1503212 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRiQW-0002HW-KG; Sat, 06 Dec 2025 02:53:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179740.1503212; Sat, 06 Dec 2025 02:53:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRiQW-0002HP-Hc; Sat, 06 Dec 2025 02:53:40 +0000
Received: by outflank-mailman (input) for mailman id 1179740;
 Sat, 06 Dec 2025 02:53:39 +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
 <SRS0=JSAj=6M=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vRiQV-0002HG-1t
 for xen-devel@lists.xenproject.org; Sat, 06 Dec 2025 02:53:39 +0000
Received: from fout-b5-smtp.messagingengine.com
 (fout-b5-smtp.messagingengine.com [202.12.124.148])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c2bb12de-d24e-11f0-9d1b-b5c5bf9af7f9;
 Sat, 06 Dec 2025 03:53:37 +0100 (CET)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfout.stl.internal (Postfix) with ESMTP id 322451D00168;
 Fri,  5 Dec 2025 21:53:36 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-04.internal (MEProxy); Fri, 05 Dec 2025 21:53:36 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 5 Dec 2025 21:53:35 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c2bb12de-d24e-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1764989616;
	 x=1765076016; bh=RMi7y1zcbHW7OqXqPJMGTQn2lAIlhaylknS1oFmO/Qs=; b=
	AHdWJDjmUAZufkiH166OWa5rysyDaiCLzHdstxkDQeLdnAKPrd9RK4T3y5gNXfS1
	V3xqRhorPC1SysiPm4JInurPnrHqwKV0tkH5bNphJILda+gVIpfnEeGxyO0nkMqx
	JJsxvnWLpdoXFC1ErxScWtxkfRqPIaFSxhwJbtCqbt3alOv/FpbiiymmqdjDl1MF
	v+v8gCbsHLtEDI4nJ5pQfnTkmhJ6UXhAh3Gyn95KAWOsb0M45JrFUuwTHWmopI2t
	DscBMpP0hgdn9NSBJIfc9knA11R0yqXOh/gYcM4W/5JlUh0EUFjnrSJBas86tRfX
	LTWnfCnIJz9AxH+qd8yRjg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
	1764989616; x=1765076016; bh=RMi7y1zcbHW7OqXqPJMGTQn2lAIlhaylknS
	1oFmO/Qs=; b=MO/kK4r0a1TqKlv5f3oBEo8a4QQRtMBQAMsFVKgYrJuhc7HqKfX
	2s0rXM9PvrF+jW8APDnBJxVMkt8BwrYBA6gqwffA6eZKUlVYvPws0uc3eEjaUPFs
	Yv8KtZDDTPrZYqwJ5e1LE2QVujBpQ2EliGa1YGAA4DbqMQc2mRySnnETqrnJS2Hf
	/ll0KOih3CDkaOLiap5uJB7bU1vzqJ+FMBILbIuRgjt5XoP6fOLY48bGUQs+Tc8G
	sGrVv8V7W+q02VSZ5jLeUiQ50t+gbbTfI+tdoi0aJsdX9Gaow68TYyIpKfiy3hag
	h7KRg1yq5l+0fuRgwOCjZT5Js9tAWN5eKrw==
X-ME-Sender: <xms:r5ozaTXKP4rhxfNTZQSH3MAuUwF2V9xpOfiQZdRWVcG-MbgdCwdXRw>
    <xme:r5ozaRlWRGSduQPObYeNb4VewJOoYxzzvRSiZlF9HRArBef_djGBulcGsP-OI9Qcr
    xEkXZglxHJbvRNQd1VYOaeObM81JN1uAd8ns4d2tjkXac1QWAs>
X-ME-Received: <xmr:r5ozadAUyFcKA1q2Dv5BDWTsF8seA8Dpw8VfCNfoPzS2CU0VfHhYFArWjKsv05Bz9VS-1peqCl_tebfNFuSIz7kmOqYomZpt8d8>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdelkeduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    epfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcuofgr
    rhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvihhsih
    gslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepveeujeetgeel
    leetudeuvefhtefgffejvedtvdfgieevheetheelgeeuledvjeevnecuffhomhgrihhnpe
    hgihhtlhgrsgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr
    ihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrd
    gtohhmpdhnsggprhgtphhtthhopedvpdhmohguvgepshhmthhpohhuthdprhgtphhtthho
    peigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtph
    htthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:r5ozaZcFftoG8mKqF96QsH-SQhUeOj5NQnNCUOMhSbiJLl_NrqYLVQ>
    <xmx:r5ozaQKJqEO8wVkMOhI1RFkOobANJrkEsRbrlfuVpqbQRR8zhjSTuQ>
    <xmx:r5ozaUcNSuEfqn_G3WaTrmrMdle801yhVkqO_iI-d95uc4gu3i5R7A>
    <xmx:r5ozaf0jfh-KU4tFe513-86NksLVGUdX9rvioMqpG5hiqNqmnrsm_A>
    <xmx:sJozaR3bMT1BTSvTh4mZ6t1MiDFmEVKnWwSYc74CV01E-ytUh7dHIjrD>
Feedback-ID: i1568416f:Fastmail
Date: Sat, 6 Dec 2025 03:53:33 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v4 0/6] Add driver domains test
Message-ID: <aTOarS1mY55VlTUI@mail-itl>
References: <cover.b56a66dfe4d98db2f1cc8b1fe0c2091d02cebe38.1764989098.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="LWZIQnqaqaVQr4T6"
Content-Disposition: inline
In-Reply-To: <cover.b56a66dfe4d98db2f1cc8b1fe0c2091d02cebe38.1764989098.git-series.marmarek@invisiblethingslab.com>


--LWZIQnqaqaVQr4T6
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sat, 6 Dec 2025 03:53:33 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v4 0/6] Add driver domains test

On Sat, Dec 06, 2025 at 03:48:02AM +0100, Marek Marczykowski-G=C3=B3recki w=
rote:
> This is intended to detect issues like recent xl devd crash in domU.
>=20
> Pipeline (on top of Andrew's sd-notify.h fixup):
> https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/2199305972
>=20
> I did checked that indeed it fails with the fix reverted - that's why the
> Debian patch - Alpine version did not detected that regression.
>=20
> Requires Alpine 3.22 and Debian in test-artifacts repo - patch series sent
> separately.
> ---
> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
>=20
> Marek Marczykowski-G=C3=B3recki (6):
>   automation: switch to alpine:3.22
>   CI: extract qubes test container
>   CI: cleanup alpine containers

As "expected", patches 1-3 didn't made it into ML...=20
The pipeline linked above has them.

>   CI: Add driver domains tests
>   CI: Add configure --enable-systemd for full build
>   CI: Run driver domains test on Debian too
>=20
>  automation/build/alpine/3.18-arm64v8.dockerfile       |  51 +----
>  automation/build/alpine/3.18.dockerfile               |  52 +----
>  automation/build/alpine/3.22-arm64v8-qubes.dockerfile |  18 +-
>  automation/build/alpine/3.22-arm64v8.dockerfile       |  46 +++-
>  automation/build/alpine/3.22.dockerfile               |  59 ++++-
>  automation/build/debian/13-x86_64.dockerfile          |   3 +-
>  automation/gitlab-ci/build.yaml                       |  44 +--
>  automation/gitlab-ci/test.yaml                        | 125 +++++----
>  automation/scripts/build                              |   1 +-
>  automation/scripts/containerize                       |   4 +-
>  automation/scripts/qemu-driverdomains-x86_64.sh       | 152 +++++++++++-
>  11 files changed, 379 insertions(+), 176 deletions(-)
>  delete mode 100644 automation/build/alpine/3.18-arm64v8.dockerfile
>  delete mode 100644 automation/build/alpine/3.18.dockerfile
>  create mode 100644 automation/build/alpine/3.22-arm64v8-qubes.dockerfile
>  create mode 100644 automation/build/alpine/3.22-arm64v8.dockerfile
>  create mode 100644 automation/build/alpine/3.22.dockerfile
>  create mode 100755 automation/scripts/qemu-driverdomains-x86_64.sh
>=20
> base-commit: 28d1d1c3f5aa6563ecf07136ba064be0261565c1
> --=20
> git-series 0.9.1

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--LWZIQnqaqaVQr4T6
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkzmq0ACgkQ24/THMrX
1yyWoAf8DGX8exOXATGIp0Ang7Nj3KqI5rGlUhS1b7QLNDXaENddJyRjBXp6TO6X
zb84vXE2kuo3A2bVUsQkPEnQUssXSTTDNzCsfnb6x4q+MQetj63GBcbjsa5hQdgN
sFlPNRbsEe77BPFK0viJ4RGhxb3pD6rvTx7e6Kdi17e8xOJ2YtxF4Dp+k6Wap2ga
e68jclLdspttVE2YHGcXjQpDvvLRKLx8zMIc30VoktJBBbFAy54h8LuLtoG42SYa
ZauyxpRa7yViuby73qgoUQzOng5HfoxxhbrGqvVIlQhN53e0pLlybpvC5YIebcEF
XAGdHASAU1gI8A1AJbxFx2/4vVpk2Q==
=X+3u
-----END PGP SIGNATURE-----

--LWZIQnqaqaVQr4T6--


From xen-devel-bounces@lists.xenproject.org Sat Dec 06 06:31:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Dec 2025 06:31:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179785.1503221 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRlpN-0003VM-9S; Sat, 06 Dec 2025 06:31:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179785.1503221; Sat, 06 Dec 2025 06:31:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRlpN-0003VF-6g; Sat, 06 Dec 2025 06:31:33 +0000
Received: by outflank-mailman (input) for mailman id 1179785;
 Sat, 06 Dec 2025 06:31:32 +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 <SRS0=DYx7=6M=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vRlpM-0003V9-FN
 for xen-devel@lists.xenproject.org; Sat, 06 Dec 2025 06:31:32 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de
 [2a07:de40:b251:101:10:150:64:1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 336ce4a8-d26d-11f0-9d1b-b5c5bf9af7f9;
 Sat, 06 Dec 2025 07:31:30 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 8A8DA3372A;
 Sat,  6 Dec 2025 06:31:28 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 523B23EA63;
 Sat,  6 Dec 2025 06:31:28 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 8E5EEsDNM2myDAAAD6G6ig
 (envelope-from <jgross@suse.com>); Sat, 06 Dec 2025 06:31:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 336ce4a8-d26d-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1765002689; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=XBAJip0FsmIylKFdfJB0aH3CCt63ifrbVW2j78uVbz8=;
	b=UaxdNpIcIL5AITLM5Iv7eK1ARIEOPXU4KGgx3hWEMfJdxJRs80YcYtOlBstJJ3/z/tImTN
	nnKcoJX22/ETPkFhGu1b7Qt3158sVESJ19j21gTub6u9otZkBTiQEfYTwMrvCkRDye+Vl0
	jSRg+mbNsGzcmqM0FoZuT/ndmmPdpRg=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1765002688; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=XBAJip0FsmIylKFdfJB0aH3CCt63ifrbVW2j78uVbz8=;
	b=ghFURnxlBuBmMYQaeQc2vBLd4o3vAhmPIJSnDT5k5SWLSfQMVnFt5rlXPjQDOJtVeOky1c
	gXYDkX6Oi3uMIEYFH/7gggH7sMrb79+cH1OFlHqTxtAKxqydi3FhjB6adMT8DUW9Dp7fo5
	lkcf5F7wtlmkwssIMdna1suHHcox6oU=
From: Juergen Gross <jgross@suse.com>
To: torvalds@linux-foundation.org
Cc: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	sstabellini@kernel.org
Subject: [GIT PULL] xen: branch for v6.19-rc1
Date: Sat,  6 Dec 2025 07:31:27 +0100
Message-ID: <20251206063127.23986-1-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-2.80 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-0.986];
	MIME_GOOD(-0.10)[text/plain];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	ARC_NA(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_HAS_DN(0.00)[];
	MIME_TRACE(0.00)[0:+];
	FROM_EQ_ENVFROM(0.00)[];
	TO_DN_NONE(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,imap1.dmz-prg2.suse.org:helo]
X-Spam-Level: 
X-Spam-Flag: NO
X-Spam-Score: -2.80

Linus,

Please git pull the following tag:

 git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.19-rc1-tag

xen: branch for v6.19-rc1

This round it contains only 3 small cleanup patches.

Thanks.

Juergen

 drivers/xen/grant-table.c      |  2 +-
 drivers/xen/xenbus/xenbus_xs.c | 16 +++++-----------
 include/xen/xenbus.h           |  2 +-
 3 files changed, 7 insertions(+), 13 deletions(-)

David Laight (1):
      drivers/xen: use min() instead of min_t()

Thorsten Blum (2):
      drivers/xen/xenbus: Simplify return statement in join()
      drivers/xen/xenbus: Replace deprecated strcpy in xenbus_transaction_end


From xen-devel-bounces@lists.xenproject.org Sat Dec 06 09:11:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Dec 2025 09:11:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179814.1503231 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRoJg-0005oJ-B3; Sat, 06 Dec 2025 09:11:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179814.1503231; Sat, 06 Dec 2025 09:11:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRoJg-0005oC-8F; Sat, 06 Dec 2025 09:11:00 +0000
Received: by outflank-mailman (input) for mailman id 1179814;
 Sat, 06 Dec 2025 09:10:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CKXd=6M=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vRoJf-0005o6-2S
 for xen-devel@lists.xenproject.org; Sat, 06 Dec 2025 09:10:59 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 775a8054-d283-11f0-980a-7dc792cee155;
 Sat, 06 Dec 2025 10:10:53 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by PA6PR03MB10548.eurprd03.prod.outlook.com (2603:10a6:102:3d9::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.12; Sat, 6 Dec
 2025 09:10:50 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9388.011; Sat, 6 Dec 2025
 09:10:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 775a8054-d283-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TAIni1LTumLD49AhvXH+8ERxngRs9KbljAzRNz2pkdQoDTN3XtQL3u8Z9u+tcHI0ztmRyceNT+Urp2oEvZHOVZmn/eRK7Y2B9l8u15UVKKAVNFKS+n74eaahNhlEJG6AsWqDQzUnzkf7R1IeNLawO1Is36tYSiwVWSLc6Bp/H5LepsdFy21M7YeJ4eLFucxEEV9ZrM3GDACPBf2vM0ntw6zgWZol8S93Y+4URTUSHhc2gnfYAlQ1NT//FT44dbudLxkghNw6EXREv+a+yZJSiTfAbbB3n2Dcvq3qG1PxU2YPZ4T5Em/YSDj9okbWA+8q76X+SOCnp3gVnt8lneDfjA==
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=DqgLXmt3DXUKtquYLWrQjRySLllKUGthEDIRqk2xpnM=;
 b=NFIccQZ+1qC+zZk3mMykHEA/B75EOYedlsD5r55QsH0NyMaqdi9Ytby8tSScAKalyPHwnV7Vf3iRCyQ8O11jxIPTvJiRTzeqvvMC3qWQOc8cGiTzkcUz8EUrjFw9OV6CVeLAzw3TYKDJ5BTNOqtY8+yFDLPmnkUlPcu/LeVjZ0WTExQHCRLpHv9REasD6rOtFP+Lj9eZzflbjtUGrzfZRgbjR3b0zrh7V1FtS9XTOsTqDNreR2mIMp3IfqoQosjgMeguRDBpdJPL+UxOqre3dQFRly7w36M4ThmMXNjCne8hl9jKXEhbR6kN3aV118dWLQjeG9MviICvs3ld5IlFOA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DqgLXmt3DXUKtquYLWrQjRySLllKUGthEDIRqk2xpnM=;
 b=hrZxavWlPCxx/YDZwXS31BXR3iRha0X7Yi5XPzBExQpTWTCtbJ63wvyN44KOYmbkRT+qppkXEN88VoHT1nl2cokMWWJJrg9so9N5VU8leimdu01E5BgdlYVmbGcNzu2Ty+6OV3YTb5BEscryw7sRgyRd6uGfVdhMGdnJlW2vcpvwjMydldT9Gx73zE4WW7ktndCs5lZKiXbzLdAizk/JIpwduINUY9qqVIyOa4CYgNxCbiB9Z9VA3lxFnbrY7+WpQnaTBRM+8mnv47MthdTcejUJtwCbSxDbTdhDkDOFj51/DCHsvQSUHXY2eh7eRsZ+vR2PBcroZundXRGvUvHiew==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <4fc76270-98e6-46c4-a6a4-d73772e079c9@epam.com>
Date: Sat, 6 Dec 2025 11:10:48 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2] coverage: extend coverage on .init and lib code
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>
References: <20251205193411.1368659-1-grygorii_strashko@epam.com>
 <d9a632d1-8587-45bb-bc13-8dab8d346cb2@citrix.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <d9a632d1-8587-45bb-bc13-8dab8d346cb2@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0042.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::14) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|PA6PR03MB10548:EE_
X-MS-Office365-Filtering-Correlation-Id: 35b80ef2-d12f-4026-f49b-08de34a759b6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WkVySHROa3RoRkJtQm53NzVvM01qQWZTMFRKTkdBeGQwM25JZks2cWFlQmFk?=
 =?utf-8?B?M0tCbFFoQzRBNThvY3A3d0duNzAxMmtVSTE0SWs2Z1k5VUFhaCtQNVl3dTNq?=
 =?utf-8?B?WWFla2FDYm4yMXRWaGI2OEhIN2ppdnY5Q2hlM21PNDk3ZklPalpIUFZwaEZX?=
 =?utf-8?B?WHNobXNjYjBQekNQMzJhZU14YmMzWXo0NlVNanFpdm9KMTkvOUFBUW5UOXJh?=
 =?utf-8?B?enRHREdWNHc0VXJoUXY2WWVGVTBhS3ZTVE5wZmpDNVJHanRrZkNCSkV6dS9a?=
 =?utf-8?B?ajhrZTRlQVVQTG9OeDFZL2t6eFVCczBwSDVqZlVJY0RXWjVFUlcrM1RvRWFB?=
 =?utf-8?B?S1IzOGV4ZiswQ1RhNUlMTDdUZDlERit6VEJ2bjk1OFA0TGdPM05zcWNMU1Vo?=
 =?utf-8?B?cENGWXd5ZVQ1eWFCVXZiQzk1aS94UThRZStNdjlaQXg3SDZCckJTdXpmcmNa?=
 =?utf-8?B?a09wY1RRQkxaYm13a3V0RFloQkhVbWZoYU42Q2F1MFQ5ck83enJNa1lRSHhs?=
 =?utf-8?B?OWdLbzY0b09wWUFaZ1FOVWZHWUhoZ0NTVDE0UTJUcXU0TVhTNlNqZFk4N01V?=
 =?utf-8?B?K2hKYkRjYjlrNU5WWU9QT3FkbDd1RTZTbUY5KzNvQ0l5K3g1UEZHMTdTK1NX?=
 =?utf-8?B?YjVLekozcVQ0eWx3L2ZMQkhyVFBIYWJrTHkvbHNPQnNlekxGNW90Z21za0ZF?=
 =?utf-8?B?Vjk2dWtUL0pud2x3RWxPY1JoL21vY2k2WklXeWRhMWxmNWJWV05RRWZiUHA3?=
 =?utf-8?B?cWdrU1cxOG1hS282M3hBeG94b0VCaklYNDExSXBLNkZzMjNHZUdnREpkL1Jn?=
 =?utf-8?B?eEtreWNyaHBvNkRKeWJtSWFISVB4TW1xdVoxRmh5QzlwK0ZnTzRSY29GSjZq?=
 =?utf-8?B?Q0tobHRxUkdjYU9zQTlzZ1l6NWdmdVF3Vm1uV1pHdTJwUmdkZXlLU1Q3V2N4?=
 =?utf-8?B?Z25EbElKZ3lsRXJaa2EzYTR4bFZDbytRdkMzbzhXZUd1MTZHcHZhQ0UzVVBO?=
 =?utf-8?B?ZnJSazJFZEZScWxiNnRZcG5mVDJRU09ScWxYdGVDUDZ1TEJrQ1pzQXVnWjRp?=
 =?utf-8?B?dTdxUnl0S2hjVHRKWktpbllsa2dac2xmbXZQMkdZYUE1TXQ3ZytqSkprRk4v?=
 =?utf-8?B?dGdhTUtoMWdUN256U2ZodWRaOEhTRCtZOGdvMVFPVjVVbGsreVk1VU93RDdm?=
 =?utf-8?B?aTFaQkorRjUrR01wRGNBd3RXWlY3QVRTcERvMmRZUFpOSlNKZ3BTN3FaanBC?=
 =?utf-8?B?ZFM0K096Q0hvb25seVI0eDZETTNEVm0zNHZTYktoYjZhSTdBQ29jbzErR1hq?=
 =?utf-8?B?NzVsR3VHdTVpdGNaZVMxZlkzTndPYUpFUVYxZFlIeVI4a1J5UGt1VHJmRERs?=
 =?utf-8?B?UzY4QmpIZElCdWY4TnFSbnlYUHhqTnB1dFZxM1lLSTYvYzZDNGI4UWsrMFY0?=
 =?utf-8?B?cHpUc0o3NzdlZzExcU5ISzRkOGV0cWFKM3dpaDU1c1dDUWxlcHA2NjVQUTNC?=
 =?utf-8?B?aFJYbzNvcjdYR0ltbDhhckc5ekViTXlLdTRhaW9DYjZzdTFUVFRsd0ZEZTF0?=
 =?utf-8?B?aVJaRUE4bHZBd3Y1VVE2Z0Z1bklGRVp2b3EvblVNeU5SQU11VGQxMGp2VE94?=
 =?utf-8?B?V3JJSDR5UjJnYU93eWJaYnkxNkdZMmI5ZFg3STVGczJBTXBkZnA4eEJvVWZq?=
 =?utf-8?B?dmlvSUF4Y1lXZ0N5dDNxZUhiYUtHQ0F3cUJzWUNRK2UvdEVXbkhLd3UvZE9Q?=
 =?utf-8?B?bmpyalJFM2lYVmg4YXZtZFRGbkpEeHBWTnJVZmVqV1ByRmRiT2ZMbmxDNWd2?=
 =?utf-8?B?YjdpZ0ZEeVhMZDd4bDhMK2dyaFI1blAyTVQ3Z3dIS1pIN2taS3JtRFJjVFMy?=
 =?utf-8?B?RitZTlpIT21HaHJtazVSemxtMWI4ZnlGbGQ0Um9qVnJmTDEweE5CbC9VdXcz?=
 =?utf-8?Q?+g9j4qvBk3nwh6WG/5xxZErGGIgfHQLj?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UVFjZjJBTmZNWHA3MGhPZUxTMkM5VEtSRktvbnFxektIOElCTHZFNGcvaldF?=
 =?utf-8?B?OG1OU3VEZnZqcHdqeElzd2hzamNvZkl4aGFGSkRadzBNYjl4REIzUGhRVGZF?=
 =?utf-8?B?T1l0ZC9PenBKc3JHOXd6SkVHL1piVmlsRWZzYzhLNllQNjNyZU10bmgrTDNi?=
 =?utf-8?B?a3lTREdaMGlIaTE4RGRzaEtCYnNDc0JzSFBjREpES3UzR1MwT0dSbGVWaHJr?=
 =?utf-8?B?K0JhZTVPbDBoRldvazZoV2ZnelBOZkx2T2xyekpCT2RHZjRJbldhZ3VrL1ZH?=
 =?utf-8?B?QjZ0TjNoV0VGeHJMMkNHOWQvNG9Wbmc2WHlYdWJBbzdNeW4zNElKYjBRMkIz?=
 =?utf-8?B?Q1d6cHVSb2NiK2RDTUVuVWF0aklPTFJIZ2t0RXF0SnRFZ3JtSlFhTFdJOXB1?=
 =?utf-8?B?dmljak1SRUM4Z3Nid0hHaVdXeGcxaDM1T0lJR2J4RkovWG1rMFhkVEwyUnNJ?=
 =?utf-8?B?WXpQZWF3NU1HbXZCVmdXdkJhdUIyZE9rNEpYQ04xYU1kN1IvRStxMFRUWUhF?=
 =?utf-8?B?YVZCRzU5ZU9vZTV5SkpMdVdYZ2l6QlJMOGpkZGRlcnRUc0cyUW1nL3laa3pm?=
 =?utf-8?B?Nm1IOVMwbkxCOEtGSmVOb0VUVXBYZ3RlajN0UDRROUx6d1lldE5VeGJ4S3NL?=
 =?utf-8?B?MWZCOXhIL1hqbHhsbjlVcG5hUnFaNFJVQ3pJYTRhb0tkODNZWStlUWFscXY0?=
 =?utf-8?B?ekRza3dYc3o3UklEbTU2Tk9OTXJNQkt1S2NxbG5JUVlDbXdnVEpKc3dOSFNO?=
 =?utf-8?B?ZTJlaVYwZVpHOHVYZzNUQmFsWjh6VlgwVE84aFpzbENsYVNiWFN5QzJSQUVL?=
 =?utf-8?B?MXAzT01vdm5Vd3RrQkZicUNBa1JNczVLUmV2RG5QNjlaN21ZOUZJZVQ2ajdG?=
 =?utf-8?B?MUxpQ2NsMU9SOUJRZk5jNFQrUDROaWhCZElMYXY2SmhmWUxkcGJYSHp4SVlx?=
 =?utf-8?B?Q0xJcUd2U0pPUE0rREFDSkhsSlB4WENObkFKV2VtMExNbDJUKzZrWWtTeXc1?=
 =?utf-8?B?dDVWeWdpeWhqYUVTcTZEK1p1MEtMdVI2YjdRMllxZ0VnVjhvajhES1pac2ox?=
 =?utf-8?B?RDgwN0NWVnhucXQzTnljSnlFcTNCcGhKN2k2b1Z5Tit2cG0rYTBrNEZqaGNy?=
 =?utf-8?B?ZkE1SkpjWFZUWmRiNGVFZllkaVhwbWFuRXpzaVM3cmlhMTNPOWJGMlg5dWpF?=
 =?utf-8?B?eFVZaG5RR3NjN0UxdWxROXR5LzBjektYMTA5UmNCODdjZmF3TlpXZFBVd3JK?=
 =?utf-8?B?OWtmUE13RFcwWktYK20rNjVITU5NYnB6QTlJaFRZRk9laUZtd2JyNDczdUkz?=
 =?utf-8?B?cnFRZWc0VDF6RVo5Sm8xZ21GVVlreHU2RXAyTW9KdnRkeGRWMVVsZUhkZTQ2?=
 =?utf-8?B?MS9vS0o2SCtUV0x2eHkxa0NORFFZZWpsQXcxcXNOcTBCM3pjRjQxaCtQR0lW?=
 =?utf-8?B?aTBVQlFaV042a3UrZS9CV1N2NnNnc3NYYXl5Z0tDOU5UT1dGOWNlN09weDFK?=
 =?utf-8?B?eE91KzJLeE40bWxneVZlUUl3alRNMEtyYzlDandNSHdsZmNnWmxMdkdZSm9C?=
 =?utf-8?B?TFlieWErZGhVYUduWi80U0RvRzRoT2d4Rm1PUWFkUDRHQlRnYzJQOEhaVUF4?=
 =?utf-8?B?SC9vU3hYc0xXTU9Mc0dSVlhzSmIwN3REaWtmYzd3akhVVHROR3V2K2c3SW4x?=
 =?utf-8?B?dERNTUVxYXd0cjZWNEdmL3p4MnNPRkhhNTFlR3ZZcmU3ZDUrRUxqOXRIOXY3?=
 =?utf-8?B?N2VXbVJQVDd5YXdvcW9Wa1gvS3dTVFoycExOazh2Y29NOXdET3B1QUVuNWJ5?=
 =?utf-8?B?VnNvaGFMcE90YXg1YmxQNlNYRjd6OXRKekZieDFqZzA1QndUMFUxMldWQ20v?=
 =?utf-8?B?TlZKVDRXd21nZ0JNZVdyRHA4a08vZEFBNS8wQjRmRzBrd0o3cVg2R1o4M3d5?=
 =?utf-8?B?a1NGRVFwdjhZR2R0Y0hHKzJUcW1VT2ZkUDduQ2g1cE9pTHpud1NqNEs4ZEVX?=
 =?utf-8?B?NlcyZHhoZHByMkZvWVBkUlF6T25LNmxBMnBDVUN1bENtNHU0RTNiRkp6REVa?=
 =?utf-8?B?T094Z0JvNDdTajJZS1NGVzIwbEluTThzTWJYNGFGQW92VmovcGw5c2d4ZW8y?=
 =?utf-8?B?ekh5WjNRMU84eDFCL1pDb1JweEVWbmswcGk5ellRNFFUbEh2WFRaTHpzbmhL?=
 =?utf-8?B?QXc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 35b80ef2-d12f-4026-f49b-08de34a759b6
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2025 09:10:50.4813
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ED6jQ58QqRgBxqzGSpHZ6DGxd9ZLMzMT1gIq/ghu4pOdXHmwSuSWBbjzRLQTjT6mSjB68yDH7P+3EdtWFyO/ZY2ZnwlzqaPAu0JTdRhPMD8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR03MB10548



On 05.12.25 22:00, Andrew Cooper wrote:
> On 05/12/2025 7:34 pm, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> Extend coverage support on .init and lib code.
>> Add two hidden Kconfig options:
>> - RELAX_INIT_CHECK "Relax strict check for .init sections only in %.init.o
>> files"
>> - DO_NOT_FREE_INIT_MEMORY "Prevent freeing of .init sections at the end of
>> Xen boot."
>>
>> Both selected selected when COVERAGE=y, as getting coverage report for
>> ".init" code is required:
>> - to bypass strict check for .init sections only in %.init.o files;
>> - the .init code stay in memory after Xen boot.
>>
>> RELAX_INIT_CHECK/DO_NOT_FREE_INIT_MEMORY could be used by other debug
>> features in the future.
>>
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> ---
>> changes in v2:
>>   - add RELAX_INIT_CHECK and DO_NOT_FREE_INIT_MEMORY, those are two different things,
>>     both potentially reusable
>>   - enable coverage for libfdt/libelf always
>>   - enable colverage for .init always
> 
> This is a lot nicer (i.e. more simple).
> 
> But, I still don't know why we need to avoid freeing init memory to make
> this work.  What explodes if we dont?
> 

It will just crash when coverage data is collected.

First I made changes in make file to get .init covered
then I hit a crash
then I checked %.init.o
conclusion was obvious.

For example:
objdump -x bzimage.init.o | grep gcov

0000000000000010 l     O .bss	0000000000000028 __gcov0.bzimage_check
0000000000000040 l     O .bss	0000000000000040 __gcov0.bzimage_headroom
0000000000000000 l     O .bss	0000000000000008 __gcov0.output_length
0000000000000080 l     O .bss	0000000000000060 __gcov0.bzimage_parse
0000000000000098 l     O .init.data.rel.local	0000000000000028 __gcov_.bzimage_parse
0000000000000070 l     O .init.data.rel.local	0000000000000028 __gcov_.bzimage_headroom
0000000000000048 l     O .init.data.rel.local	0000000000000028 __gcov_.bzimage_check
0000000000000020 l     O .init.data.rel.local	0000000000000028 __gcov_.output_length
0000000000000000         *UND*	0000000000000000 __gcov_init
0000000000000000         *UND*	0000000000000000 __gcov_exit
0000000000000000         *UND*	0000000000000000 __gcov_merge_add
0000000000000008 R_X86_64_PLT32    __gcov_init-0x0000000000000004
0000000000000012 R_X86_64_PLT32    __gcov_exit-0x0000000000000004
0000000000000020 R_X86_64_64       __gcov_merge_add


-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Sat Dec 06 14:16:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Dec 2025 14:16:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179856.1503241 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRt4v-0006PO-Ir; Sat, 06 Dec 2025 14:16:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179856.1503241; Sat, 06 Dec 2025 14:16:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRt4v-0006PH-Fs; Sat, 06 Dec 2025 14:16:05 +0000
Received: by outflank-mailman (input) for mailman id 1179856;
 Sat, 06 Dec 2025 14:16:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/WZp=6M=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vRt4t-0006PB-UM
 for xen-devel@lists.xenproject.org; Sat, 06 Dec 2025 14:16:04 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1479125d-d2ae-11f0-980a-7dc792cee155;
 Sat, 06 Dec 2025 15:15:57 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY5PR03MB5000.namprd03.prod.outlook.com (2603:10b6:a03:1ee::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.13; Sat, 6 Dec
 2025 14:15:52 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.012; Sat, 6 Dec 2025
 14:15:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1479125d-d2ae-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BXjBvQZsjvJzaE5c4VmY0wnTMCDLW2TL9flhRkG6bHnH1QZ0xQJzOO6JCEvApJmTQWtCfUHgbx1GXowbJR+6o9wzhPd+f8EElM8Gbr/VvZiFKt/7wzwkAKhgm8oRBJ2m6mwTTKchRPXwazD8UzDqhqfQ3nwlbztpyhm7Zoio6iu7OujVdyQaglT2i5eir/MBz+m+UKo49ui2RiVHmXEmxIgEzzSXJl39o0OtjSL3Lj3bSN75YxgDhtrtdQ1Z143DgM+lh9Qiv1/j1Zr0YlUKrSLFEdw8+zsM+pm0ars3dt+aLn/A9BJHHA02i8wl5St5VB3TVu59cpc+uzlY1AkdEg==
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=6ivIEuREOIO0mD7wrOvOTjjNYENWVLuORsUJDgoePr0=;
 b=R9UMjY8/Q2SFLA7PTo2A6yEaLuR2wO0AelqjaAxuDdD9Jbpo6YmBNCS+7e6f8hQlmoBAhLMu2lVsDtaJvLmBgMhEJv+vJrU1YiS2+4LeEzgBQCdvhNH+f+mEl13eWexcSV0V/Wf+Krxze1sLbLNOheqJPCQ7OwQ2/bUDJeUuN1r6uvS12XQV3FbiX1vBWz1OGBpdcAZhlgPbXOJ/p41mVR0OslOMd28KA+We8Z8y2Ha1SI+Omb5q9dvMo+UbFnOl8nKIfQPHdXlBfG9o0Ug/BnDUhpma5r2dU/J/Weq/wjDl3UXyR7eMXC3DmRQZpofFmww/AgqDjrshQ4l/Ta8m5g==
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=6ivIEuREOIO0mD7wrOvOTjjNYENWVLuORsUJDgoePr0=;
 b=cjkqtWuTMGPGWvxdjze6oQKhCBrlIP86pHqSuvPOzFVpnpAAJBh+82wwgDHjCDXeXhbwFoxRktlWH+OXmilUUb1+5DnE4jd65xmZD33of0vT3L5/DbifxYVEWrmYKkorV33DzGTLhS0S9JK6hqLWfqYyODYb5twHdMei2qTwp9I=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <483d50d9-a076-4698-bd14-28afabd5d369@citrix.com>
Date: Sat, 6 Dec 2025 14:15:48 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>
Subject: Re: [XEN][PATCH v2] coverage: extend coverage on .init and lib code
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251205193411.1368659-1-grygorii_strashko@epam.com>
 <d9a632d1-8587-45bb-bc13-8dab8d346cb2@citrix.com>
 <4fc76270-98e6-46c4-a6a4-d73772e079c9@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <4fc76270-98e6-46c4-a6a4-d73772e079c9@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0031.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ae::7) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BY5PR03MB5000:EE_
X-MS-Office365-Filtering-Correlation-Id: 8c1d9ab3-880e-4b3b-ef49-08de34d1f66c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|1800799024|366016|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WHBqRS9aYlBmWi9TbXhyd3A5akwzWkcxM2EvdjVTRUljQ3ltd0FmdVlMT1RL?=
 =?utf-8?B?L1FTeUdGZnJFVHlqYjdpUTZnNEJ3d0RjZU1aaExOYkFZRmZubnVCMnEwK0VT?=
 =?utf-8?B?d3BrQ0hjY3hrd0kyNkhwcnk4WlJjWk1wdk5QMlFvNzFwWnFENUxWT0R0N2Nx?=
 =?utf-8?B?aXFGeDNWN2tZdDBveFB3NS9jQkRhTDc0Q0RaUWtNMjVYK2V5WjcxSGhLM0xz?=
 =?utf-8?B?Y2lYUDBRRzQ4d3UwVE42bk5kVUxSS1lBRDMxTmZCUzIxR3hTZ3hodHVRb0do?=
 =?utf-8?B?ZUhOcHVUWEk0aXJmNUcyNVhOL285SWplM0phMlFTNFZRa053KzJYMzhaWG9x?=
 =?utf-8?B?UmR2ajBkQlBqNTVuR1R1eHNrY2JnYXljMytacGZraldJTGJXQjJ1MERscEpa?=
 =?utf-8?B?U3hGankvakRISE9CaGxpeXdVTXYvMVFvTWZNK0F0b2l0VldEa0ZDc29jc3cx?=
 =?utf-8?B?NlhGamIrOWx4OXlFQ096WUhIcnN3T1MrK1VieHB3aE9ZMnpDbFBjc0pyZDN5?=
 =?utf-8?B?OVM1Nno2eUcrMnRRMGpMeDJ4bEVIYkVhdGZEeDcvcDNMSVdHWHEvcHFpb3d6?=
 =?utf-8?B?eW9melBHOTltR3hhdk5QL2V5M1RqTkdoMTdBNFlOZi9mUzA2c3pTdUZTa0V4?=
 =?utf-8?B?M09yMy9MR0JOVDNPbTVvZHNRWXJHQ3R4RWpXMjNWVTZLQkRQVlFiU3ZtVkpV?=
 =?utf-8?B?cGt3dmdPOGN1aHo0MWR0S0s0U2haZEVidktZSXhOMXBFaCtzZi91VEdTc2tp?=
 =?utf-8?B?TmRUaTA5YXpUNzVXZVFHVHBCenNkMWZiYWZjT1k1R0Z4UVZxMEJOWUQvSGZu?=
 =?utf-8?B?STlMYXFPbEhXZWF4VXVsNUNoQlVGajZMQUlxRWovMXZUVUpqQWVrS29WTC94?=
 =?utf-8?B?Y3VjdFJBQmpodXh3ZmZ5ZnQ2U3ZGM1ZDMC9Sa0kzeW5yUlBId3lORkk2Y3By?=
 =?utf-8?B?T3BmTmJKK1hQclRBMmVTYUVnZlg1d0pEUVQvbTlweXlLckxZUUVIdkZjVTBM?=
 =?utf-8?B?c1VkVFQzT3FXODJ5UFp5MWR2OFNUMHAzUUgzdTNVZHlIZ0hTanFiWVhyemcw?=
 =?utf-8?B?ak5VU3FHZEF0NlRxQnpNSjI3UVpQYWlzUUVxaVRVVitIREhOTGs1dlZkcDll?=
 =?utf-8?B?SzJNWWlRNUVuYUlTUHFoTWZIaERrMGFHeWZNbXBXZnVMdEd2Q204Zi9la3JM?=
 =?utf-8?B?K3prRkQrSmVsS2ZENlJ1eExnMi8yM0xqZ3FhdTkwLys4aW9YNllHYW9aTFE5?=
 =?utf-8?B?eEFpOC9zSVppUVhZcXVqMEZwd2FIcHBQbi9xUWRncXBVSEUyblRXdWlXc1pS?=
 =?utf-8?B?RGJhdHNBeWg4VTdyU3dSMXV5KzJLOEpjcldRTzhBMzNQZitlQllpdXFSd1FH?=
 =?utf-8?B?NWFzWEQ1VHVNNUR5VVUxNjZ2WGVSN0dVRVJFNVErZ3V1WHZ5Q05ubHkzRzR3?=
 =?utf-8?B?MzIybkgzdG5KYndiVVMyazRrcStyMUp3Q2p3OHVyUzdMWHhwdlp1Yi9nRGxU?=
 =?utf-8?B?VTBNSlhTYTIxN3llT0YyckhEWFVDOVNnTGtubmRydFdvNmpUZEpnMlNIUUg0?=
 =?utf-8?B?eG9rbzFtVTcrNkdVNEh4azdGanhVMXExNWdyM0E3Y01xWkhBUG9FTE9xSVJu?=
 =?utf-8?B?Qm5CVkJmc3BDUFdzeStEZjlzM2kyUHlwTHJCb1daQlZFSGRGdlhsNEF3ZUNG?=
 =?utf-8?B?TVhab2xycHVyaFJTbnphem9Nc3RiZjJxTTlwczJnK2tIMXF1N25pNmNoSno4?=
 =?utf-8?B?YnZYQ2pTTVVidXJnRjJlNWh1Y0lDdkllSHdoZDlvc25HMTFNd0F1ZUFXblZs?=
 =?utf-8?B?Zi9pOXVPUllIL3FUOXRDNEh6Y3BqRHI4TmF4ZE9TbWloanJ4VFBudC9Ja0Zw?=
 =?utf-8?B?VnhaR0dWck1OYnpobUNZZjJqR1Fhck95ZFduTEd3TnZsZzdLa1pRRUNJN3JX?=
 =?utf-8?Q?1OiE+IWwQPo3L/hERo+loOTn2urYQM+p?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?b0pQeCtPNzVZeEs0Y0dpcG1HNzJWb2l1dFFNcDc1RVV4R0Z2aWFGdERIcDY4?=
 =?utf-8?B?WEQ3ZHZtcnNvZTBvQ0lUSTNVMGVtUjY5eExlSVhMSWlqMXBtWDNiNXJPSUYr?=
 =?utf-8?B?eko3US92cG9URlpEQkRrM0haUHRKTnRDTGRRSE96YVQvYTVKQlZvdTVLSkhS?=
 =?utf-8?B?MDJFVmI2aldIOGxES0ozWGgrWktIelQxVUpNVndJN1JCWUhPLzEzT0FtcUhh?=
 =?utf-8?B?RVRpdHhNZHBNb1k1MDRPVmpsU3NENDVQVTQrcXNhcTdVRldIRG1JMTNnRnJW?=
 =?utf-8?B?ZG5JaEJKaHV4cEhqWWw1WjBzL3lNS2VOVXhqVjkvVzRnNGs5enhjN1h6U3g0?=
 =?utf-8?B?eVYzRUdRK0Nza3FRY21WRCtMZEJYSWlxdllZV0ZMMVFleGFOZWNaTUFER0pG?=
 =?utf-8?B?SGo4RUNkVzA2N0pXRWJ5OVF6K1BLN2xDakhwcDljK3RuY0N2NWFWOG8weDAv?=
 =?utf-8?B?NktUcW9VbjNBUjhQVU95cFgyNVhaSGtOSzFOV044YTVlT2pJK1IxTUNZUklV?=
 =?utf-8?B?WG8zaTZCaldNWXZpb2E3Y3FEWnQzMkVwVVl2SytNRm1mYkJOTVY2NDZlMkEr?=
 =?utf-8?B?M0htb2w4dVAyMUNMbVA2MWo5eFg0UnZ6TzcxajQ4VG1SSGRpcEU3VmpQSmRE?=
 =?utf-8?B?aW1PT1ZBTFp5QnlEalNVc2tvSVlsTjRiaEthUVprczFiSTd6TzFYRHd0bVh5?=
 =?utf-8?B?TUYxeVpPN0c0ZlFLQUFlOFA0Q1RSNmpiMjZvUStwN0lqTzNjYTVsOWVCNHhC?=
 =?utf-8?B?NFVubFprdW4wYW1GV2NXS0MyK0QzWWI1ckw4TkhmMTgvU0NWenlyVDZDdUh5?=
 =?utf-8?B?WXp0MmRPaW8xTWorTldsZXJTdE5jSmdxOE9sa0Z2dFlRaGcxa1F2NUo0dXJX?=
 =?utf-8?B?NXNpdlNPeGxNS2lwZnlNS3lKL1lYWUszeFJxMkVoQVBtaTFmWno1WHNqbnQ0?=
 =?utf-8?B?K3Q4VFZVQVFuZFllWVpuRWtXU0dBc3N0TUI5SXFIWUl4QXVZeTh1Z0ViZ3dM?=
 =?utf-8?B?aGI3d250Sm5kQXJzVnM4bGJRSU9Na0pBZWlXS3VQdndyZzFQZ2NwYkxxU0NJ?=
 =?utf-8?B?azI3ald0aHJ0QUg3NGI0N0VVdk5UbnhlQmxnUHZIVmpxaWRmVHAvNzArOU5G?=
 =?utf-8?B?UHZXdVYwUkU5M0RlQmtDZVJZdWo2MmtLcjJ5NXZHRGRSbWgxUlN1QUlTa1g2?=
 =?utf-8?B?a1RzbUNCT0RqZ1FhSkJ3aktVQ3J2VHJYRTFzVTdGTytqTGhzbGV3Q0JYa2dH?=
 =?utf-8?B?akhoS21lYndlZVIzZjRxS2pBOStGUXlhSktsZ0k0V2tnT0tLbEhsV2ZFZ1ZM?=
 =?utf-8?B?cDZpVHQ3SzI2UlB3ek4yNE1FaXZORzA5RVhDZHUxWFZvZFkvUjBRcWdjaVNz?=
 =?utf-8?B?bk53WEpnMnBhYXBjSFUvQzVFb25GS2Z3NWdwWFgxeDJ6bWFuVkNVT2NnYXh3?=
 =?utf-8?B?V0FvYW56bVlCYSt1c3hqUU1tckNUYXI0SzBMVEZYUnhSbHRqNG51TnovZk5r?=
 =?utf-8?B?VzR1cTVZTU51Uml6Y1Q4Smg2RXlWeUh0WERkaTNHd01xQjBWZEFTRGgxTlIx?=
 =?utf-8?B?dGlYbGhsbXhTYzZoNTZsQW1RclFLcUJzOTBqZk93b3MxeXc5SnRrUE1teFl0?=
 =?utf-8?B?ZFlNb0JOMnVRNVFLQWIwMVZyZFd2bWsrUXNnMlZnVFkzYUxodzcxOWF5ZEtn?=
 =?utf-8?B?dlJyMjZaNzBPbER2RTRnKzkyL3hobjFsWHRvLzM5Q2JZUjFmSTV4QmVrSnBn?=
 =?utf-8?B?ZXg4RVRSajcyU1RZSDczZFRhY2h0UnpFNlhLWE5NMmZzZlRkYUZVbHE0b0Ir?=
 =?utf-8?B?YzkycEtkZkxkcE1jVnZJWVlIOE9qcGhFVXVQYjY5RjN1MTNTcHFXTjRwU0w0?=
 =?utf-8?B?NDVVV1pTMVJKWXRPT2xtdGdrb3VyOVN4UjNnVEZSeC9RVG9ZTEJubXNJUVBo?=
 =?utf-8?B?bEUwWW1GZHhTVXltKzhzTUdGRUVPQWw5SWhKMnJTTlhQR2lUQzFpZlF5NUsx?=
 =?utf-8?B?SnNGZFE5V3hudlZGMnpFK3FzcDdDZ2hwa2FyM093TFZSdEp5QStJbHlrZThH?=
 =?utf-8?B?b0lpZnpwZW0wQlFMa0x3dFNmUlFXNkU5MWorMEJXTithcFo3RlY1TDhJQlB3?=
 =?utf-8?B?aW9wYVk3dWtwYXFDN0pma1ArcmFwTjZkc1Uvb1dJOUpzcEdQcjc5NVkvZ0Yy?=
 =?utf-8?B?K0E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8c1d9ab3-880e-4b3b-ef49-08de34d1f66c
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2025 14:15:52.4080
 (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: 0qf4GBeFFwtlplSIVt1BPnj4pmZ/90ghtKHuXW6pt/n7+fE/LV5nS8sbMtyaMTunFQ4MUaAsYcdL1074kjE3KAmBCrG36+qBVD/1KHugFnc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5000

On 06/12/2025 9:10 am, Grygorii Strashko wrote:
>
>
> On 05.12.25 22:00, Andrew Cooper wrote:
>> On 05/12/2025 7:34 pm, Grygorii Strashko wrote:
>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>
>>> Extend coverage support on .init and lib code.
>>> Add two hidden Kconfig options:
>>> - RELAX_INIT_CHECK "Relax strict check for .init sections only in
>>> %.init.o
>>> files"
>>> - DO_NOT_FREE_INIT_MEMORY "Prevent freeing of .init sections at the
>>> end of
>>> Xen boot."
>>>
>>> Both selected selected when COVERAGE=y, as getting coverage report for
>>> ".init" code is required:
>>> - to bypass strict check for .init sections only in %.init.o files;
>>> - the .init code stay in memory after Xen boot.
>>>
>>> RELAX_INIT_CHECK/DO_NOT_FREE_INIT_MEMORY could be used by other debug
>>> features in the future.
>>>
>>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>> ---
>>> changes in v2:
>>>   - add RELAX_INIT_CHECK and DO_NOT_FREE_INIT_MEMORY, those are two
>>> different things,
>>>     both potentially reusable
>>>   - enable coverage for libfdt/libelf always
>>>   - enable colverage for .init always
>>
>> This is a lot nicer (i.e. more simple).
>>
>> But, I still don't know why we need to avoid freeing init memory to make
>> this work.  What explodes if we dont?
>>
>
> It will just crash when coverage data is collected.
>
> First I made changes in make file to get .init covered
> then I hit a crash
> then I checked %.init.o
> conclusion was obvious.
>
> For example:
> objdump -x bzimage.init.o | grep gcov
>
> 0000000000000010 l     O .bss    0000000000000028 __gcov0.bzimage_check
> 0000000000000040 l     O .bss    0000000000000040
> __gcov0.bzimage_headroom
> 0000000000000000 l     O .bss    0000000000000008 __gcov0.output_length
> 0000000000000080 l     O .bss    0000000000000060 __gcov0.bzimage_parse
> 0000000000000098 l     O .init.data.rel.local    0000000000000028
> __gcov_.bzimage_parse
> 0000000000000070 l     O .init.data.rel.local    0000000000000028
> __gcov_.bzimage_headroom
> 0000000000000048 l     O .init.data.rel.local    0000000000000028
> __gcov_.bzimage_check
> 0000000000000020 l     O .init.data.rel.local    0000000000000028
> __gcov_.output_length
> 0000000000000000         *UND*    0000000000000000 __gcov_init
> 0000000000000000         *UND*    0000000000000000 __gcov_exit
> 0000000000000000         *UND*    0000000000000000 __gcov_merge_add
> 0000000000000008 R_X86_64_PLT32    __gcov_init-0x0000000000000004
> 0000000000000012 R_X86_64_PLT32    __gcov_exit-0x0000000000000004
> 0000000000000020 R_X86_64_64       __gcov_merge_add
>

Aah, we should exclude the OJBCOPY too.  That's what's moving
.data.rel.local amongst other sections we target with attributes directly.

~Andrew


From xen-devel-bounces@lists.xenproject.org Sat Dec 06 14:21:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Dec 2025 14:21:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179867.1503252 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRtAU-0007yF-5Y; Sat, 06 Dec 2025 14:21:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179867.1503252; Sat, 06 Dec 2025 14:21:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRtAU-0007y8-2R; Sat, 06 Dec 2025 14:21:50 +0000
Received: by outflank-mailman (input) for mailman id 1179867;
 Sat, 06 Dec 2025 14:21:48 +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
 <SRS0=/WZp=6M=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vRtAS-0007y2-A1
 for xen-devel@lists.xenproject.org; Sat, 06 Dec 2025 14:21:48 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e4f70cc9-d2ae-11f0-9d1b-b5c5bf9af7f9;
 Sat, 06 Dec 2025 15:21:47 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CO1PR03MB5714.namprd03.prod.outlook.com (2603:10b6:303:98::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.13; Sat, 6 Dec
 2025 14:21:42 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.012; Sat, 6 Dec 2025
 14:21:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e4f70cc9-d2ae-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NE1Coh0NcybyPyhPPm+8KfChtP1Mgk4KKz1I2VKwO9rX9hqK/QGaca1zxRSdOAWjFeSMSw82ZmoP1vDCqJ+qp75jvQ0CEisA77kSEI2uYKBnHiCw8m4ql/kN/cJMZyCNcKmjCq3x1xQe+zyf+Yw9KoWsvi9gumP57Sh33zodXTZaJnmUCc5kJIDFapgNyNIkaPcbVU9uZvbTWpAjY0shIB5raVvXFY0HDor+2VhpahqdKxLAbXuyAUeeFKtkEAwMHYLy/wBnv5R32/eB8NgnQdcBncrMc64As/goONBBNMrrf8L4QcSLiBKKMVKUnNF7m15A+0YOr4k63JohNc40Dw==
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=aZGVFGrWWegqp3s/TG4ovmtopViFN6UspfIzqxc4R/0=;
 b=b0/DYVSPCepxBDDYuhU6s5B/+8biZds21etCPMErelc7ySxk/aowf93VHB4ENi1fJxsz0OfmGHyvUwAKj9727oNFWIGcoWOdiU6lw7unX7AJxHM4n1w55Ce9jloa7Faq+ghAVvfBf3hgw+lA8aY8ogrLEifZ6dQJihgjN4j0B6PVeE9L9KXmQpBjrUA7T9eV17FpzDyt8ICw92MtYTxfA6kd6NfGmumZfJKpOeE3c4UUIH/mjFtMsxQwma0Lu/7ZBFOQTG8Q5hHI5nMakL4bDFbDHrkzXDxOb/umyw4EQVaQmcpofEr8O4B4JKDH8SQ8qOa7oPjFfDYjKhbN9+Shog==
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=aZGVFGrWWegqp3s/TG4ovmtopViFN6UspfIzqxc4R/0=;
 b=fsaxeKOP0gM3J8aX7tnOamoEr9eIj1LML23XeLWTKl3wOwADieITK3a+4VNxTsVdiMrjU0LIwdeWGGAuVunYSymUZFHEf5OWeirrHFMOna16uLcqm00Cwm7rMwa7qpHCXgX6uouAC2yTj5uypQJXc7OUTmLvkJ0Zn2h1c64NSzg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <f6cccd82-3112-4696-850a-119843fca5ec@citrix.com>
Date: Sat, 6 Dec 2025 14:21:37 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>
Subject: Re: [XEN][PATCH v2] coverage: extend coverage on .init and lib code
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251205193411.1368659-1-grygorii_strashko@epam.com>
 <d9a632d1-8587-45bb-bc13-8dab8d346cb2@citrix.com>
 <4fc76270-98e6-46c4-a6a4-d73772e079c9@epam.com>
 <483d50d9-a076-4698-bd14-28afabd5d369@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <483d50d9-a076-4698-bd14-28afabd5d369@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P123CA0108.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:139::23) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CO1PR03MB5714:EE_
X-MS-Office365-Filtering-Correlation-Id: 9c3d972c-974c-426c-8af6-08de34d2c6c6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|7416014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NnFsVTdmSXFld3M0dmZsbTNSR0NaMHY2T3QzN2R1WURRS0NNR1ZLNkZuRDY0?=
 =?utf-8?B?THJnRlk3WTB6eEE5S29VbUtZc0pHZEhOTkJpTndGRUs1YSs1S1FQYXVSbXgv?=
 =?utf-8?B?SWNCWVFGQUhlak5FTDlYY2wvNGtuNkRJaWZoRG5FOGkrcmdFWnQwYkJ5RXZi?=
 =?utf-8?B?WEVFYUJHSWIvMTB5WmhiSHhueEw4RHI3aXlDOXFkK1dHMkp3NnZMUFA1Q0tQ?=
 =?utf-8?B?RklMTmZUbVlwUGpha21nbElQMGtDcHNadFdzU3hUalpDZ2xoUW9yaDZZTEVK?=
 =?utf-8?B?Y0ZDU2tVVXBjbUU1SmVsSmI4R1huYkorYmdxS1R4NUhrWkQ2QWtpVlRsRUY4?=
 =?utf-8?B?aFhWc2wrZU0zdjlXdzl6R3Z4ZzYzc2QwNXJRbFB6cjhhT1docENTbWlFRHE3?=
 =?utf-8?B?R3RHWnh3c3RTb29jbHFyM3ZxODE1ZUtsN1N1RWNGUHJXbzBJT0FJL1RlYkE0?=
 =?utf-8?B?eHJMUEVML21pb1J5WlpuVTI1R1E3cHI0SklsTTdiY0ZZSUh4ckpWa3VYYjZH?=
 =?utf-8?B?TTY0YXNjbGh5VnJvVjYwdG9CZFJvOUxsYmVKd3dENXp6TVZzYTAwRlZMVyt0?=
 =?utf-8?B?bVIyektQbXg3MlJHQUlPbllYMTFPN3c4Z3JQOEtRVTFuK3hOTUZVTENOcmho?=
 =?utf-8?B?OWo2ZERCa0d4OEppWk1LdncybFowbnVERnhvQUE0aWtmcXBGa0g1d1N1eUJI?=
 =?utf-8?B?em5GUmFVTStHTkJ2TkZQOUVMNzRaeTdmZWllMEZCaUdaT1FTeC9CTndaZVRG?=
 =?utf-8?B?ZllHWmE1K05Tdy93ZTZGa043OFlCOHIrMjE0aElIdzhhN0N2SzZZTmlVcjBV?=
 =?utf-8?B?MzNubzdlUkJoZUtKUDVMNTd0Q25nOCtJd0FxbEFpT1hDZnl5TERqb0kybjZy?=
 =?utf-8?B?N21OQ3lha3ZjSTVUU0Z2L0tyUEJMbXFtMHhmdWZvZ01FQitRNHJSYVNHakNk?=
 =?utf-8?B?UEhTWXhpQkZ5UTh4bFFvMk02eFVoMEg1M3lSd0R1MEFEbkcvOVduSEhrSkZB?=
 =?utf-8?B?clpUQWRlaTdteVJrKytpTzZ6SVVVKzVXMW9YNmpkbWc4c0FmUElyMWoyL1dK?=
 =?utf-8?B?bTdJbm5JWkNHajZMeEV4SnRLc3o3Y2ZsRko2M3hyLzZsR21JSXpIZHRHejhT?=
 =?utf-8?B?d3AwQVdkU25HMlp2SHJpQjk0TXR6NVV3VU5VMjVodFFVTUVzaXUzcHZ0WmxJ?=
 =?utf-8?B?dG14Y04vakxNdVRXSmlDZHhZdDN0ZVpseEJLY0NrOVdLYSthS1JVeXFYV0Nv?=
 =?utf-8?B?RFNRWEtmSFNXZG5wRUhyOWhCNGpTekFhbk5raE9CN1dEVjg1d0lNYkx4OWx5?=
 =?utf-8?B?cFdTTEU0SzdkUzJqTGMyUCtMMFVMRWZ6bGViMVkrRGtNb3JINzF4NnJMTUth?=
 =?utf-8?B?eE9uTFVGUjJhU3IvRjVIYUh1YTFUN2VabEd5UWp0aS9TWXIvQWc1eGFEdm5u?=
 =?utf-8?B?Rm16R2srakFOdHRJL2k0K25uS3J6RENjT0tRYU1hMFEwQlVrM1BpU3lCQ3o2?=
 =?utf-8?B?eEdxYU53TEdoWmk4VHJhM05sNFY5WkZGc2xVcklNTThyYm9uaVEzQnFZcXJa?=
 =?utf-8?B?RllTYWhpWnNiZFJWVlJpV0prbkJqdDNQYVIxb0ZINi92QXExa2NLZnRiRjFH?=
 =?utf-8?B?T05GM1VoNTdLTFhXa1JibFc4dlVSQzI1VjVacjdFWHN4eG03dEZWdEZFQ3pn?=
 =?utf-8?B?S2dUQVlJdGs2TUt5SDVTNWY3TE5rZXVodXpJUlJQNjNIUS9QNjAzSFM2Wkpa?=
 =?utf-8?B?TUFGemoyQktXa1VmQ1JqNThmUS9UN05Ua1NMeTdnM0hGMkpCR2hFaGU2ZWhk?=
 =?utf-8?B?REkybHhlZndRcmNLOG1xOTVRUUlRRjBQd3Fxd2RQV3dXSUwyM2k4ZUlDY08z?=
 =?utf-8?B?Yks3b2hsZXlaNWlUT2JtMGVzVEdvQTBsd2cyTU1xN1l2Z3pGTzlvTFY5YXFY?=
 =?utf-8?Q?x8Tal0suemhq/ZBf0TvR+5WUx5eSu+0d?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?L0pucGVjT0VhWEtVclA5bzY3TnNnT0ZHOGpUdWFqUFYwNDVpejBDQkRVMGRv?=
 =?utf-8?B?ejRjRmJPRzFzSWMzclB2Z0MxejB0eTkzaEwzRHZZdWZySm4xa25Ja3BmQ3ha?=
 =?utf-8?B?ME5QQUhES3BhRVRkZlMxeDhEL2VQRnRCUGMvYlFPWS9wYkcxeC9QaHNsR2hu?=
 =?utf-8?B?elFmd0Q1TlhWb0NVRUxkd2pqQkRFN1IzQUFXbFdsRFNEMXNMMFRaUUJRMGo5?=
 =?utf-8?B?S0VyY29TeGIwaWoyQkYyNTFDTlZyMXNUSlhGdFBwZmp5bGdiT0FPQ3AwTlpa?=
 =?utf-8?B?MW5qc2t5OGRkYWFhcmRPeWpsWjFHdGVDNmttMEJ3bHp1RUs3UVFLZmN4Qm9L?=
 =?utf-8?B?WU5YQ0N6bjV3bk9qWUxZNVlsTExrb1Z6aXBwSWU4OG5GVkpaZGpVNm9yWk9i?=
 =?utf-8?B?YitwUGF6NGozRUxXMlRTVEJpS2RDdzhoc2s5L1dVT1Y3MXdFbjY2eTdFMEhp?=
 =?utf-8?B?eWhNTElJWjlWR1NDZzNaYkZvRFN6cjYrOVpDbjZwQTk4T0xPeWZYK1psU2hW?=
 =?utf-8?B?eW5mNW55WWRkNkZmOFFvdW95TEJaa3dvZ2VRdDNvaTJSWnlmaEIxejRnM0lT?=
 =?utf-8?B?R3JSZlkzODZiM2gxY1k0Z3JiNC92YlZTNURiV3B0bFRCVm51bjJhWExXOEY0?=
 =?utf-8?B?WmFnMml1WldCenJEbUh1TkdjU0N3c0hvaTNRRlRrSkV5NDNmbmdIWGFiVEJ1?=
 =?utf-8?B?QlhpQ3VJVHgxeUJnZFI5WDY2dDBnUTFDWm5xYTF6RTJqKzJXSjVic2NmNkN4?=
 =?utf-8?B?S1pXL0JXNTlvdU5sZU1oNXdOUmQrQnF1NWd0TTdxR0w0UlBFcUJaaTVFd3Np?=
 =?utf-8?B?WE0wOXBhMFFXKzVMZlNMM3U2b2lzQk10TENwNU5kTDRQQ1FkSUp2LytTN2ZD?=
 =?utf-8?B?RThKbk9ic3N1eVJzRVBsQVlCZ1IzSHpUaElWazNsVkVqaEZIMDNUaTN2M3V6?=
 =?utf-8?B?Z3NUaFF1V0IzMEdaMDdKdHFSeWlIYkNKOVJJNkJkbFAxMmNkQlIwZGNyaVNv?=
 =?utf-8?B?UjF4ZkZtZjNYKzl2ZzdBU0phemJqcnNCdVhrak0rRGFFaU5OckZtb2J2T2hV?=
 =?utf-8?B?eGRnc1pVRnFrRDM4YjlHbTZ0QVJ2Y0s5TlFnNUlZVE5IanBHUi9MTThiclc2?=
 =?utf-8?B?MnpuTUJqVDFMZlZqVEdZa3ZkWmRrSisrUkZUWUVyM01JclBDaGVFbjhGYzRD?=
 =?utf-8?B?bnEwM01TKytUTDJ6V1hVc1F1dXI1RnJ1Q2szSzZXZUtUMTNKTzNQOHNVQnY3?=
 =?utf-8?B?YWtPR3hHd2xrOXhEK0JaZVNjVnVlc0JsVE85R3AwelE0Q252aUxZVEUwR0Fj?=
 =?utf-8?B?YW00cjBOVk9CU25GQXovN0FIQjlVd1pqQW1wdHpOSjg2WlNxcFN4anFKc1Fw?=
 =?utf-8?B?TXJSb2NvQnZINjcvcExlc29oL1BZVlRSUDNDUEtFR0FDUVJoWHE3dmtYdURp?=
 =?utf-8?B?YmpxcWF6MjFtcUFtejRIVi9lSzVFYS9zeDFmUEpaWklrRlZyNytjS3lXSTFp?=
 =?utf-8?B?K1ZCZXl4MkJmMDl5aG1MdHdESEN2QVFTT1YzZ1VDc1puZmE0WTBjSHBCelJ0?=
 =?utf-8?B?bHRrRXpmZjlQd1h6NmFzQzBQVFd2bzJQWklwbnFlTWgrRy9idTZ5SWdyRWtY?=
 =?utf-8?B?V2ptOUNNdytEcXUrd3JabWttekJMWVArNHNQaXFjam5taHM4QTJaQlVTWnpm?=
 =?utf-8?B?REkrRUNoVWpSWEE0U1ZvL0NNR2ZmMzJlSzF4RlBsdzV2aG5zS0dIWHFNUGVv?=
 =?utf-8?B?SDhUQk9MTEhBZmptY2RXWUtyK2hucGpnaG5vVzJpUXhra3U4dEdRdlU3VldB?=
 =?utf-8?B?b0JZZFZnUUR4QWtHUjVHRGpMVHhNZ3hickErZ0I0aUdPRlNHUm9HR1pTeHNN?=
 =?utf-8?B?TGdvQk1XT3ArU1NxZlpJYjdGNEVSOVhPQ2JTSzVSYk5kSzV6UUhKTUpIY0Ez?=
 =?utf-8?B?ZWlRMmV0VU01SjBiZmZ5WU9BZXVpSEs4c3hJVjQwZGVOR1lqOHZpVzkxajIv?=
 =?utf-8?B?UHMwc2FUaExVdlpZMW0xZ3R2Z3ZmaVdOV1J2UGpUbHlVTDVMMG1Rd2RHNG5W?=
 =?utf-8?B?YmFWdnFsa0IzNWE2cG9CdEFWbVIrVk5FOEVaWkt5Tkk2RUU0eTF1aFZBbWk5?=
 =?utf-8?B?RXNFR3c4UFdYNDRDS0xROWxrS29JR3FqMTJhMDRyblZqU24wM3BXWDY0TDlH?=
 =?utf-8?B?NVE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9c3d972c-974c-426c-8af6-08de34d2c6c6
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2025 14:21:41.8920
 (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: 0G/k4UICYx4qRArbdQv4r65fQkN8uWvw95mCnCmJeejLJjuP1jxpIacad3byoUnY22/zA0Fs3wEP8Ew6RceRDIChAarOXgToPUgO3+bXbeM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB5714

On 06/12/2025 2:15 pm, Andrew Cooper wrote:
> On 06/12/2025 9:10 am, Grygorii Strashko wrote:
>>
>> On 05.12.25 22:00, Andrew Cooper wrote:
>>> On 05/12/2025 7:34 pm, Grygorii Strashko wrote:
>>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>
>>>> Extend coverage support on .init and lib code.
>>>> Add two hidden Kconfig options:
>>>> - RELAX_INIT_CHECK "Relax strict check for .init sections only in
>>>> %.init.o
>>>> files"
>>>> - DO_NOT_FREE_INIT_MEMORY "Prevent freeing of .init sections at the
>>>> end of
>>>> Xen boot."
>>>>
>>>> Both selected selected when COVERAGE=y, as getting coverage report for
>>>> ".init" code is required:
>>>> - to bypass strict check for .init sections only in %.init.o files;
>>>> - the .init code stay in memory after Xen boot.
>>>>
>>>> RELAX_INIT_CHECK/DO_NOT_FREE_INIT_MEMORY could be used by other debug
>>>> features in the future.
>>>>
>>>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>>> ---
>>>> changes in v2:
>>>>   - add RELAX_INIT_CHECK and DO_NOT_FREE_INIT_MEMORY, those are two
>>>> different things,
>>>>     both potentially reusable
>>>>   - enable coverage for libfdt/libelf always
>>>>   - enable colverage for .init always
>>> This is a lot nicer (i.e. more simple).
>>>
>>> But, I still don't know why we need to avoid freeing init memory to make
>>> this work.  What explodes if we dont?
>>>
>> It will just crash when coverage data is collected.
>>
>> First I made changes in make file to get .init covered
>> then I hit a crash
>> then I checked %.init.o
>> conclusion was obvious.
>>
>> For example:
>> objdump -x bzimage.init.o | grep gcov
>>
>> 0000000000000010 l     O .bss    0000000000000028 __gcov0.bzimage_check
>> 0000000000000040 l     O .bss    0000000000000040
>> __gcov0.bzimage_headroom
>> 0000000000000000 l     O .bss    0000000000000008 __gcov0.output_length
>> 0000000000000080 l     O .bss    0000000000000060 __gcov0.bzimage_parse
>> 0000000000000098 l     O .init.data.rel.local    0000000000000028
>> __gcov_.bzimage_parse
>> 0000000000000070 l     O .init.data.rel.local    0000000000000028
>> __gcov_.bzimage_headroom
>> 0000000000000048 l     O .init.data.rel.local    0000000000000028
>> __gcov_.bzimage_check
>> 0000000000000020 l     O .init.data.rel.local    0000000000000028
>> __gcov_.output_length
>> 0000000000000000         *UND*    0000000000000000 __gcov_init
>> 0000000000000000         *UND*    0000000000000000 __gcov_exit
>> 0000000000000000         *UND*    0000000000000000 __gcov_merge_add
>> 0000000000000008 R_X86_64_PLT32    __gcov_init-0x0000000000000004
>> 0000000000000012 R_X86_64_PLT32    __gcov_exit-0x0000000000000004
>> 0000000000000020 R_X86_64_64       __gcov_merge_add
>>
> Aah, we should exclude the OJBCOPY too.  That's what's moving
> .data.rel.local amongst other sections we target with attributes directly.

we can't target.

~Andrew


From xen-devel-bounces@lists.xenproject.org Sat Dec 06 19:07:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Dec 2025 19:07:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179902.1503261 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRxcS-0006YI-Cj; Sat, 06 Dec 2025 19:07:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179902.1503261; Sat, 06 Dec 2025 19:07:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vRxcS-0006YB-9v; Sat, 06 Dec 2025 19:07:00 +0000
Received: by outflank-mailman (input) for mailman id 1179902;
 Sat, 06 Dec 2025 19:06:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gxC2=6M=kernel.org=pr-tracker-bot@srs-se1.protection.inumbo.net>)
 id 1vRxcQ-0006Y5-UJ
 for xen-devel@lists.xenproject.org; Sat, 06 Dec 2025 19:06:58 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b8f682eb-d2d6-11f0-980a-7dc792cee155;
 Sat, 06 Dec 2025 20:06:53 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id E8B9A434D8;
 Sat,  6 Dec 2025 19:06:50 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C6FBEC4CEF5;
 Sat,  6 Dec 2025 19:06:50 +0000 (UTC)
Received: from [10.30.226.235] (localhost [IPv6:::1])
 by aws-us-west-2-korg-oddjob-rhel9-1.codeaurora.org (Postfix) with ESMTP id
 F2B8E3808200; Sat,  6 Dec 2025 19:03:48 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b8f682eb-d2d6-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765048010;
	bh=Zlb7L39Nyrwq40eDa6+kJpyRAo24XlBTs+l7xdBF/YE=;
	h=Subject:From:In-Reply-To:References:Date:To:Cc:From;
	b=FrFShPAiCR/tCauSuvPb3P8r95J923MeE1p5LKcWfW8KFtRXAAXeBysK3Grzled+p
	 a7VQ/Y6v40azviOjQKdTuSqNY48dzJM/MRghd+mYG3Sj+/7uqunToxwTN+CLXDTf6M
	 goC6cWAKEQr/8UH6dv3+GaoqvXyZaNd0niJo7W/S0BnHBHglebwUAvL1OvrlM3ZiDM
	 6W08ACOFuzOhgZvN9krup8C3XWicvZBQWaVSBNbZ3iL/uKJjcWnHu+9el9yZ8ZN8i5
	 TRZdnqZArSeKPId7Uz7ivyXGfq/Rel01MTZtDTxj5BsSYX1p7JcIrAEh8vnReVwhaG
	 wnGc9zoQFT7ug==
Subject: Re: [GIT PULL] xen: branch for v6.19-rc1
From: pr-tracker-bot@kernel.org
In-Reply-To: <20251206063127.23986-1-jgross@suse.com>
References: <20251206063127.23986-1-jgross@suse.com>
X-PR-Tracked-List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
X-PR-Tracked-Message-Id: <20251206063127.23986-1-jgross@suse.com>
X-PR-Tracked-Remote: git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.19-rc1-tag
X-PR-Tracked-Commit-Id: 150215b89bcf708356abcb7d3cafdd1e6068598b
X-PR-Merge-Tree: torvalds/linux.git
X-PR-Merge-Refname: refs/heads/master
X-PR-Merge-Commit-Id: 1a68aefc710a9f5486c90c87f0424d4912429adb
Message-Id: <176504782764.2170003.8056430227605057132.pr-tracker-bot@kernel.org>
Date: Sat, 06 Dec 2025 19:03:47 +0000
To: Juergen Gross <jgross@suse.com>
Cc: torvalds@linux-foundation.org, linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, sstabellini@kernel.org

The pull request you sent on Sat,  6 Dec 2025 07:31:27 +0100:

> git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.19-rc1-tag

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/1a68aefc710a9f5486c90c87f0424d4912429adb

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html


From xen-devel-bounces@lists.xenproject.org Sun Dec 07 14:53:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Dec 2025 14:53:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1179993.1503273 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSG83-00061X-AS; Sun, 07 Dec 2025 14:52:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1179993.1503273; Sun, 07 Dec 2025 14:52:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSG83-00061M-5c; Sun, 07 Dec 2025 14:52:51 +0000
Received: by outflank-mailman (input) for mailman id 1179993;
 Sun, 07 Dec 2025 14:52:50 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1vSG82-00061G-0z
 for xen-devel@lists.xenproject.org; Sun, 07 Dec 2025 14:52:50 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vSG81-00BfAV-1E;
 Sun, 07 Dec 2025 14:52:49 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14..)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vSG80-00G3Ob-1H;
 Sun, 07 Dec 2025 14:52:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	Message-ID:Date:Subject:Cc:To:From;
	bh=ThX5TW+CBlEWXMjsmrCQp5zwBhHOA8v5j1XL6AMBcfQ=; b=evG4W/NMor/4Uok696PEBh750S
	c9EvgFFhHKvxjU7xKR3sJn3dRk5KbprAeeYwArlBI4KnAN7yW419wrJHTxWXYF+HoyAQTOQp4H6aS
	gxyBIiNGkGTAV1FssgZq5jzKkMzp/lh70xGj9qP2X7q6TInn1URQh8n7tBn1Y53a/9r0=;
From: Anthony PERARD <anthony@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH] CI: Fix container build jobs
Date: Sun,  7 Dec 2025 15:52:16 +0100
Message-ID: <20251207145216.35234-1-anthony@xenproject.org>
X-Mailer: git-send-email 2.47.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Anthony PERARD <anthony.perard@vates.tech>

`docker:stable` tag hasn't been updated in 5 years, and has been
deprecated, according to https://hub.docker.com/_/docker, while
`docker:dind` (image use for the service) is using a recent version of
docker.

Now, `docker info` fails with:
    Error response from daemon: client version 1.40 is too old. ...

Switch to a newer tag, and just the "cli" version which contains only
the docker client. With that, both `:dind` and `:cli` should keep
using the same version of version. (`:cli` seems to be the base image
used to build `:dind`.)

Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---

Notes:
    pipeline:
        https://gitlab.com/xen-project/people/anthonyper/xen/-/pipelines/2200667790
    which actually pushed the updated containers, despite the name of the
    top commit.

 automation/gitlab-ci/containers.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/automation/gitlab-ci/containers.yaml b/automation/gitlab-ci/containers.yaml
index 25e8bdc34b..8b702a1d82 100644
--- a/automation/gitlab-ci/containers.yaml
+++ b/automation/gitlab-ci/containers.yaml
@@ -1,6 +1,6 @@
 .container-build-tmpl:
   stage: containers
-  image: docker:stable
+  image: docker:cli
   tags:
     - container-builder
   rules:
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Sun Dec 07 15:57:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Dec 2025 15:57:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180008.1503281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSH8C-0004hZ-PN; Sun, 07 Dec 2025 15:57:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180008.1503281; Sun, 07 Dec 2025 15:57:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSH8C-0004hS-MU; Sun, 07 Dec 2025 15:57:04 +0000
Received: by outflank-mailman (input) for mailman id 1180008;
 Sun, 07 Dec 2025 15:57:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=INev=6N=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vSH8B-0004hM-Rn
 for xen-devel@lists.xenproject.org; Sun, 07 Dec 2025 15:57:03 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5ac308ff-d385-11f0-980a-7dc792cee155;
 Sun, 07 Dec 2025 16:56:56 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM4PR03MB6935.namprd03.prod.outlook.com (2603:10b6:8:47::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.10; Sun, 7 Dec
 2025 15:56:52 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Sun, 7 Dec 2025
 15:56:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ac308ff-d385-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rGQTD02SrSugjsTJTCdSrAPE1LGlRWuUrUGI0zKhi3BKGYUPiDe4nsxjYkOvVOXko1nwlEi2cDzK9CS+PYqc7J9MoOsSzt9Ucq6GDuB0mTnM3PoEP0UR1hdaKHarsAevMwroZbi+2rpRCXFW64FmA+Ud3uxSsWBcDI17KVWv5dWCAhFkHbHcAUmVpAyukDcqW3ixrwPqJnGJSi4dUzN5mB6crOxLKOmJ13Ue84vemvtZKkaCzbSK3O3q8ZlSAsiGlr3Z5ebUJVU5AlNDiGV3FyiFjgI8QRF+FDkoMH4DF6dpVVF0iZH/iheAS46NfEIXSHccA7IuxXhuEpKiOjvbsA==
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=qY+Ky9HHN+uebW55Pczfm4Q/xq5MIHEUHCfIOJfn15c=;
 b=Kzvl409VUtTQ47ZDhRL1RwEYm9RnrhksuppU61cQqDh/SPKfjNwiM/IxjYE8M+JI6ipIhhRkZ5DEeQkZyOuO288t9BJW+T4yBemGUDqv8ae0kGSWo6ie5mE28NZyoUZsoyV5sfeLMFj0r6y8kjXg+3hKv52PwRHPpI8SBVpiA1nzhBImgqB4QysJTrNenR28vnd4JoQCVP0tNL3ai5I2O5c9pprKwKjT2fMc1Op9gyAB8mIrjswCui9XAQgY+wKEuBYH5DTPJo40rVzXR8O4AzVFrh5Af8IbERJnSnlPhVSos/ivzbxj0iPhuda6Kmw+5yl1Mg/cs2DxwSuVCJwaUw==
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=qY+Ky9HHN+uebW55Pczfm4Q/xq5MIHEUHCfIOJfn15c=;
 b=wAG7pPyyLtX7ha1lz4eARCI5WbusVtxFL/S8wiJ7RlcvDkWu22Uad8Qr+B9ctML8o3K1KMvBWl8carR/cmxm3gXLMbNwpE43Woa6aAp1nSgQMWAiCZrV967OamZQcWGmOA979grEEGpOgYS66yRJSwKXsNvim/cdiYr2m924288=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <444d7cfd-0f2b-4fe2-b5d5-12a82754233a@citrix.com>
Date: Sun, 7 Dec 2025 15:56:49 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Anthony PERARD <anthony.perard@vates.tech>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH] CI: Fix container build jobs
To: Anthony PERARD <anthony@xenproject.org>, xen-devel@lists.xenproject.org
References: <20251207145216.35234-1-anthony@xenproject.org>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251207145216.35234-1-anthony@xenproject.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0458.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1aa::13) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DM4PR03MB6935:EE_
X-MS-Office365-Filtering-Correlation-Id: 437145a9-8607-47c3-6b68-08de35a93d18
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VTRISG1uYjQ3WkpoSWQyYXl6U050a1laZzg5b0M0SW5BK2ZSUlFQNjIrWmxP?=
 =?utf-8?B?NkFQWTRnVGRmZ2hDTklNTDd2UlhMcUlTUnBvZUd3MDlVeGdLUmc2WlFGSXpq?=
 =?utf-8?B?TFZyWk96WFRhTzdRNVMweitXNW5IenlGc243d3pYbVREZUdkQjljTHhWbTc5?=
 =?utf-8?B?UE9GWEpsK2ZrSnp4WWx0QzRxYk41RWVTVWRZZXdoQkJCalJCYTdRNisyeXp4?=
 =?utf-8?B?SnQ3dC9MdHU3QTAxTGxRNFFiOGhEdFAxZW1leVBtRTdFbFJqczRoMURMb0dJ?=
 =?utf-8?B?Q1dUSWZlSVZka09Eck9ONnV1TVlpOEVBZW02WFY2eFB4Mzc3aU9pT0ZSeG9N?=
 =?utf-8?B?eC9aVDBGdXBLZ0NHZE4rRDVFZlpkMDlaRHdBTHg3bmN2NmZ4azNZUWJSRERL?=
 =?utf-8?B?L2tZUHh1Z01pTlRtbFArdVNxUlNEWEQrNklYWUxQY21KcFlYZ28rUU1EamFq?=
 =?utf-8?B?cjZjWlN4WFdaVzN3WGJjREhwNGJjdUZMbGVZN093dW02c09pemIrSXZMRFRB?=
 =?utf-8?B?VitjMm01OU9EaktFTCs4VHI5SGlQSllEZU53S3pmaHp3UTFqMGRHam8xVVBC?=
 =?utf-8?B?ZitJYUNWNXEyNTJ4VDJ0WUdENXplWTQvV1pOVkIySFBDYmhOZ2FWRmRmOXp5?=
 =?utf-8?B?RVB5QW0yRXVVTnRMZFdTdmZlbnUzVmRyQlFzY0RUK2NVNkxkQXAva1FKZWEr?=
 =?utf-8?B?RDAzWHRyT01VWURDWlZ4a1F1S1dtdGNUajlpaGlld1FLMERXODFJcTI3dEtQ?=
 =?utf-8?B?bjZneXFlUU9FWnZVVmZkdlhRZ1VWbGpWaE1kN0ljeE10cDdwV090cGNScXFG?=
 =?utf-8?B?VU54QTYyVlRQeTdoSzhKS0k4SlZoSjEzMnBJWlcwUXdCNXcyTzBTTlN6TFhx?=
 =?utf-8?B?eUFBRzJjeE9rRmh2bmVHSVFqekwvM25Uakg4OVZsU014TGd6M0EydTZ6akZL?=
 =?utf-8?B?UCtMd3V4M3N5OFdTMmRzaDhDMGhFUGt3YnhUOUdqUU8vMWlsbG9CaTRlZmFn?=
 =?utf-8?B?a095TmNobFkwc0pjM21jdE1mSEVzeDJtSGo4Yng3VXBaaTloNlBJb2RZcWxm?=
 =?utf-8?B?enB0WVpEVnpDNlpvRVIwN3ZsOGRFNXE2RjYvcVFZVFZXTU9QZEJ2M2xoMHV3?=
 =?utf-8?B?L1RqMXRoVHhOMGhwaVRCZDZFdkM2blIzWXMrb0NuNU56Ykl1WDZSSGozelEz?=
 =?utf-8?B?TW1zRWFuZ1dHQWNvdkZRVXVWSzVqeTN1WnBVUWhSbXpBaXJNbnYrUk5zYjFX?=
 =?utf-8?B?TWQ5bGFJMk9tcDBSTlVMSGFCeTFtVU1lM2REWm5CK1J0UXBwK2xZYjMzTGFn?=
 =?utf-8?B?NytpUGdXcWNCeVYrclpVMUtjUDV0OEl0UkFyMWtnNkRybmVxanVrdjlmRnJS?=
 =?utf-8?B?bVI3WUNEeVBRSWxXdGErMEdRL1I0U2hHZ2Z0emJNUFhyYU55OUluUy80bk41?=
 =?utf-8?B?c1ZiVGRuMkYvV2laVjhCbjNNc1pFb2o2UWhpbTJuSGlnZXJNWTdRMjFCTTg5?=
 =?utf-8?B?OTc4Q3I3T3RvWS9mdDFTVjBwQ0ZleVFSY1RKVkt1ODFrM1daT1ArdFFTb0Rz?=
 =?utf-8?B?cTBza0wwb0RvcXpWallvdEFCUXdmY2xPUlhpNWV3VWFwa2lwRm1Wb2JwbVZh?=
 =?utf-8?B?cm1WUzh5YTNlcVM5WVhIY3p3cUM4bFlKNlpzTk9iTVlJcEhwMTVZZnk4NlVC?=
 =?utf-8?B?ajhSK2JTOXVTRVVyZXpERlQ5ZCtJRGJCVmRXWU9HU05aMHdrdnJveklzekg5?=
 =?utf-8?B?T3ZDWEViWTBTVTlrdWFoeGFoc1BJdmJmUkMxeFpaS2NnME9FN1BadXZxeVJS?=
 =?utf-8?B?VnhCcy9JeFZ1N1A4cmFWRDJSZFlhbVZYeE1oMWtkVjNuMEFZcVlodVc1SS96?=
 =?utf-8?B?KzVMemo1R1BGLytoVXVZN2ZFYVJRcDQvMzR4L0YrM2dTTTJLckdhVWpXZnJj?=
 =?utf-8?Q?Wh8h8Y50QjrqKKJL946lyaHwRFDZah6g?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aGhoZWxEdkNOZnkxYjN6a0hnaElTcFhFTWY2Qm1uVXlhVXJEWmRuMW5IbmRU?=
 =?utf-8?B?dWczNGNFRkhkNXhYdnVUUFcyUnJFZDlGNWlXM0FuWWwwbWkwdlU3MW5BWUtJ?=
 =?utf-8?B?N0ZHYjRTT2xocTlpWHVtWU9RQ2xXUlV2dlBrUkNXVkJObU9IM21ZeFhSVCtx?=
 =?utf-8?B?L1pKbUs3RHdsOHNDcWhQdGdrSEd3VDFPK3p1cGNzUm1aczdzdVdRRUJ2S3pT?=
 =?utf-8?B?TUxubFJ0VnRwNGw5eGROZXpCNU1nU09qdklTMUVtSVBtTE1MMXk2RHF4bzk3?=
 =?utf-8?B?OUIwalUyaGZuQXYxM3VXZk5kT0EyU2RUMVZ5VXltNk5TWUpWR1M4UE1pUWxP?=
 =?utf-8?B?Z2VpMFFBaUwrSm5KSHRuSTdHWVdZYTNrTW1kTThLQUg0Y3ZzM0tEbTlncEVF?=
 =?utf-8?B?SzdxN3djNGlINmJUZFU5WVhzMGswVGpSZnh3Y1g4OTlPVmoycldwOGRGSUtD?=
 =?utf-8?B?WUlHMktnVnhiaENSaEdjRW9oZk1LekxOdjNOOUVHQlBMc0t0b0E0cTVLZnZ1?=
 =?utf-8?B?RGpXMHovNXhtN2pEQTJHV1RJcnJ1bFdLaXlmREx5MFVhSHFycTduZEZXUmN2?=
 =?utf-8?B?ZUNFbUxjZzRnc2tDVnlaaysxWlZqQVoySktPbTFmUWpWbzFiNHpHekpzd2JX?=
 =?utf-8?B?ZUM0NjNrM050WnFnNFZ6b0hQRUZFWW90M0VxS0hrbnZkem0vQnhpdDQ1L0w0?=
 =?utf-8?B?dHpCUE9Qcms3MWRCMGxGbXdMZmwrcnp5K2QvVXB2cGJZdWtDcFJpdEpodFJE?=
 =?utf-8?B?ZGdndEZUSHEvMHhVb284YUNKOXhGY1Q5NGJzcllGT1dvOCtxeS9XZnhDaEts?=
 =?utf-8?B?bjdHRHdwUm90NU9nN2h2NlJoUEVyblI3emxuTVdwSjVXVWhONUVzRGpRajFv?=
 =?utf-8?B?b1V6VEJUOW12NXhMSU5ZcDkxNFhCZ3JtSEhtc1gzbGw5K0daK2xiTmd6NEhD?=
 =?utf-8?B?ZUN1a1o0eWNyQm85TDI2U09CQWoxcEFPOE1ZU25sT211bDZ5djZwakNuRE9P?=
 =?utf-8?B?M2t4cGtyT29nWkMyUG9IWTFlOVBTQmJEbHRTVGs3N1VvczBrcXlEeEpxQUV5?=
 =?utf-8?B?azEwMHNhbEFFdkJ5YUJnQ3RyOFN1VCtXVGNxbFVuTDdGRWFpZ25SOFp0MVRP?=
 =?utf-8?B?Nk5VbWJpQWdGam5aQ0VyYUR4cWRubjhuYWFGSmFyNHRWQTVLVnRMU3EvT3Ax?=
 =?utf-8?B?ekJWaWt0dkdqK1pUSzljVVgwVFMrVm5QaFhiMzVhV3RjcVZQZmx4RG9qcGZl?=
 =?utf-8?B?ZEJ6bWxYTVFYcFI4R0dxV2RhYUtEQTlMN1hERjk3NkRZVG5HOXBrRkJQT2Vi?=
 =?utf-8?B?bEpJekVuaVQ5Uzhhck9rR2d6WEpjTUd6NEhRTlZ0MU5Nb0xDYUh5T29vRTJp?=
 =?utf-8?B?STd3cTdlR3YzVjVGWVVtZXA1blBxV1huUm9WWklaL2E2SEQrQkowWWcraHFs?=
 =?utf-8?B?RkYwTi9NeHpienlzbmJXV2ljMW5HRDdLSmVUdzVnWXp5NTdsWUcxdmlaam52?=
 =?utf-8?B?YkVkUmhZNU1OTW5qNmxEV1Q4SWkwMXpoQUd6dVdOVjFoQzNLMUZ5R3h4WGtt?=
 =?utf-8?B?MEZSNHhWSlF4WitZTExsTDlhd2RHVVYzemNzRHdJRFlIVXFRUHNyQ1FFK21m?=
 =?utf-8?B?SlpJMFl5UGhXWEJhUVc3dDl1bzB5OWMxNzdSdVZ6d0NhcTFYNG1tWmtxNWNv?=
 =?utf-8?B?UUpIOE9MUXFIWlJleVkrMU5waHI4Kytnc3d6bkFpdDM2dGllTHdQUm95ck1O?=
 =?utf-8?B?ek1rYlVKR04xZW5VT0l4dnR4TWNhdWVhNGNqSUtGYXlRdkxnVVVqbE0xZEwy?=
 =?utf-8?B?SHUzcDZ0ZTZ1dnczNUFzaVN2TWhNc09LTTFvNXYxcno3NFQ3TzNwQzVualN2?=
 =?utf-8?B?Q3J5bjhEOS8zSkpSY2ZsZitPbU9LbVE5SFNXOExvQWR3clFOYlcyTEd3ZExX?=
 =?utf-8?B?aDZvVDg0UnNjOGFxcmJ5K3AxY1daTEhiVitVZS8rT05kWGZ4L3RiRnl5T1JG?=
 =?utf-8?B?ejcwUmxZU3Mva2FQZndMdVZLNGt3ZGdhaElnOFJ2UkFKZDB0QlQ5WjRqTHF1?=
 =?utf-8?B?UjhldU9MS0RjaTRRTDNFVVRlNDA4aEU3MmlROUhZeGJNMmVnLy9NU0lzN2pw?=
 =?utf-8?B?dmhNUmh6ZmZOaUNleHFXQ01xb1dHN200RTdUeG4zZU5TZFB5UzlJV0psdWZ5?=
 =?utf-8?B?VkE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 437145a9-8607-47c3-6b68-08de35a93d18
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Dec 2025 15:56:52.5857
 (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: 5fGePxfydvcuTr84SsXqD9Fc0UzkxfI/wUckEudVp0WpHZE+zT9zdYov1plmM0cfBNxGUsnOjXGX4owUJuV9e7qb/7pmJboQapfaayubdog=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6935

On 07/12/2025 2:52 pm, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
>
> `docker:stable` tag hasn't been updated in 5 years, and has been
> deprecated, according to https://hub.docker.com/_/docker, while
> `docker:dind` (image use for the service) is using a recent version of
> docker.
>
> Now, `docker info` fails with:
>     Error response from daemon: client version 1.40 is too old. ...
>
> Switch to a newer tag, and just the "cli" version which contains only
> the docker client. With that, both `:dind` and `:cli` should keep
> using the same version of version. (`:cli` seems to be the base image
> used to build `:dind`.)
>
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 07:20:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 07:20:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180044.1503293 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSVXv-0001w5-8O; Mon, 08 Dec 2025 07:20:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180044.1503293; Mon, 08 Dec 2025 07:20:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSVXv-0001vy-4A; Mon, 08 Dec 2025 07:20:35 +0000
Received: by outflank-mailman (input) for mailman id 1180044;
 Mon, 08 Dec 2025 07:20:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSVXt-0001vZ-0r
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 07:20:33 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5c79fb70-d406-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 08:20:23 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4779d47be12so37456665e9.2
 for <xen-devel@lists.xenproject.org>; Sun, 07 Dec 2025 23:20:23 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbfee66sm23863237f8f.11.2025.12.07.23.20.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 07 Dec 2025 23:20:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c79fb70-d406-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765178423; x=1765783223; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lYLgX4/oQ5Pzvq0EuENgse0eK/iRRIrgPfkQu9yEcXA=;
        b=WKxVVOJd4eLEMhyUWyUUsl4A6t1CSpu1JAzFbsR/3uoZnq2INMRcNJwoUvM0c8UszF
         LblUtHcbQofiSpNTUEvCMaNUnhxMGugSXPLziJfb46Ng6GUDEOAXJUDUMyQNZCVMDCbO
         aWcOPWZ8HwDCjXuesGbnxb8ISThgCYLPtT5bnxdEeiFo6kbDw+ddruRV6WIgAS+wmMAY
         Pr2Eyc3Z8FiCRQSd214kf3td/5BWJLdyGtJpiSTk+9kwbA7BxyLbIa50gHUCoxPUmFA2
         HZC13k1UnyjkcT3MpFABU2y163btr6RQpCYoQXL22OQ5vulvMFQoDIAuaZF8hHovzH/E
         bErg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765178423; x=1765783223;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lYLgX4/oQ5Pzvq0EuENgse0eK/iRRIrgPfkQu9yEcXA=;
        b=wBnHbJrEUPY6qBGxmyNTUkif+hghnGsdmxnwkemHH5dCD7BcTZY7u/0miVZj6RlJnv
         tufKCVW+wFU/K9jqjOe42x2/vGZxoC/l42WjYOrhNk1JIaq9J/ZNg4zkZRdfTIiBxF3O
         z5XRuspu/RfLk7SCCdnU5raschht0u2xs8KsrEnoq0nXiL+CXB8SXMKTqNPzuGAsZ5Xm
         7JmkOZ5v1sf2b1Y+cvALAhMHeM0j5QBjNSqCkvCWCmtVkOIucP9yExufGuGP4/LQLG4u
         vRrytuVLQCRxcNXTUjZ+VSOzZTQsOC+9lslytubzgHNDVv2EQJ0BPY2x+GsfoEE8fLRz
         VE6Q==
X-Forwarded-Encrypted: i=1; AJvYcCX6+SoRl5AMy4V2j6RmqKP1Z1FhBsj3onfaDOnaBgoE9qNLbXsUoR4pj+J7sgYJt0Xsm9EQ8RQeonQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyBySa9bhxmlBitO35uwwq6ygbiPkZ5uTu1U/T+Q3lo9YbOeVSs
	7tdflORf+AjyrEv4lQMCcamJwAlGauhURC5C3nk7ZOOMKmrIGyJV2I8MCuU4rP2Zog==
X-Gm-Gg: ASbGnctp5+YbAhnPRKpUu1SlvD2Pa6z0hMF/rMniksWU1xdrcJtE3fMyGva0U+oKNMA
	QcKWCk3+vJb+rh+V0hcKaKTUcaShElSG2bwWCBtl3rVPhXIsyE/UwQ8uqgWTtHkLNFqIpDB1azC
	/Buyr9wzQFL542gfqFiHKfapd2Ye33hIVUwngxSfmXtQzpLi5gP/tTnGY4l1FqcWS43f5N+xqOs
	wFRjKtlR1f5y++VqSgONNs2cfIhEuAdsOniM9MnII4oMMipRHCMae9h7N4LmZmdmR92kUeX2HDe
	z22ECrv0unVaSn8i0XzG0on3T1HeRF4Do/X+NZp3SGn/ROyX7kJUEpvI6BUOIq0DlkC/nfH6WPM
	Rg63PNfXZJeEDlysQy7ePF98Y2lG7STxH/3gxt8nrlAu8KEaeNS/AgqBStqz0TjfVzEWBVSg8NK
	fw45JzwsI/wuXQvToXxMNQIr6vdyryDXKAQgBOGydDt85KQZS45qRuF3YlxF0UD8uAMAu8GllAA
	0A=
X-Google-Smtp-Source: AGHT+IEGbt1S/X4j34a1xAdY9OhdTc0Kct9Ps7akQkaK0bWgKwlja6IBG1gdr0SzuX5eK6272S/GzA==
X-Received: by 2002:a05:6000:290f:b0:427:914:7468 with SMTP id ffacd0b85a97d-42f89f0d854mr7208628f8f.15.1765178422931;
        Sun, 07 Dec 2025 23:20:22 -0800 (PST)
Message-ID: <0f77c451-bd2b-48e4-bf32-6d2635151ebc@suse.com>
Date: Mon, 8 Dec 2025 08:20:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/treewide: Use __ASSEMBLER__ instead of __ASSEMBLY__
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251203133258.1624223-1-andrew.cooper3@citrix.com>
 <c21ddcb3-ba38-4dbb-9860-731eb43c38f3@suse.com>
 <6f189d1f-a6e6-48a2-875c-2df317b59b4d@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <6f189d1f-a6e6-48a2-875c-2df317b59b4d@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2025 16:06, Andrew Cooper wrote:
> On 05/12/2025 7:48 am, Jan Beulich wrote:
>> On 03.12.2025 14:32, Andrew Cooper wrote:
>>> __ASSEMBLER__ is how GCC and Clang spell this, removing the need to set it up
>>> manually in AFLAGS.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> While I fear this might end up biting us significantly on certain backports,
>> still:
>> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> Thanks.  What problem do you see with backporting?
> 
> #ifdef __ASSEMBLER__ will work perfectly well in older trees which also
> still have __ASSEMBLY__

Oh, I see - __ASSEMBLER__ has been supported even by pretty old gcc.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 08:18:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 08:18:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180058.1503302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWRZ-00007i-Bx; Mon, 08 Dec 2025 08:18:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180058.1503302; Mon, 08 Dec 2025 08:18:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWRZ-00007b-9I; Mon, 08 Dec 2025 08:18:05 +0000
Received: by outflank-mailman (input) for mailman id 1180058;
 Mon, 08 Dec 2025 08:18:04 +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 <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSWRY-00007V-GE
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 08:18:04 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6a4776b5-d40e-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 09:18:03 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4775ae5684fso20823395e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 00:18:02 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d331e62sm24538905f8f.35.2025.12.08.00.18.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 00:18:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a4776b5-d40e-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765181882; x=1765786682; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uaelIxKgZbg/vTI+hjRH0f2tHh1thJuCEDAmmPig8u4=;
        b=G7ij4SUIh9uK1ERiWP4qCgZ67tnkZ8KgPZ1VU7v+54EKjoYX5XKRbDTwDc/E8b2srZ
         uNZQJHc6CtpdlCm+d1sYuZNJjqlQhHkL6XihEJO+ec86hhILnnLfDaeiyHUzbfKLXNsB
         TbXaUYmGDxoD2PZVPtnw+tm7n/RZDxaKruMGYe1mKoQdy1nr7pDisq/3umAnWPtuSWeZ
         wtGRRHbyjHIqRiK2ihDJ1E96WVDZL8ZIuJIaRCMOR/iqc8tYa8b7RtfTTyKzPmkuVf3q
         Us4enO0lJ7DanC0QSEkR7INbdZyUD9OQpvyscHMCnRlrOqEaDHCAbAs5m5HJt04X2jxA
         Ce1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765181882; x=1765786682;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uaelIxKgZbg/vTI+hjRH0f2tHh1thJuCEDAmmPig8u4=;
        b=vt5gMw+dQmeLUIwFvbjfD+0CBNu0ZhSn//lj25bchGI+WY5bmmCMXF0lWzv3fQiYQl
         IgEvIjuS5E+MJHNy9pnToFsAs3fTSU41iuX1w7CT7kGrdvl5G2qddHi7A/bws8LQ4ZfA
         6XvZ7XIpUnywZEoXz3mHkozblJ0EYF1v4Lac/OU5rD3el7ay8j/ZtuDztFjYmQGIYK7t
         vSX6elHXnx0HA71Hq+rpgyfQ5e9ZUMANMA6PpK1zD+b9a/9EE/VtiCZarRa8xMr2jbD2
         G39NGtCOLEMYvCOZbIt3Y6BVYR6tRni+Ek5a4QdZJ/Yy9LhQG/ApXQdWjb/fEzPsLyF7
         WW3g==
X-Forwarded-Encrypted: i=1; AJvYcCXAJzWsLqkJKYrZAjsu1Qz4j7Q49DKT4r/FOxld5J91sakshfQbRIIaTdTXh1ftw8iSajFpcuY2XXo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxmH548BeFHr4lAsXMhZJL+nmJ1LuWBH8/t2a37tjwPOsMD/SL1
	EEONYfeB3A69Z394pG/zFCVn/y6RZCgxRwPFdfXvV8hShbuEzSRabz+3RM6pJXczz6+227+4PUF
	P788=
X-Gm-Gg: ASbGncsyCinz/kltc3+YbjchNYYnhKKZ35FlHdROctbEFPrmJwOSsAR/ncWHwFm1LD+
	eKYPtbrDdpd2ZCAaAzYmTR4RlnqRuMf67Rl0SapjUohMyqcWa0SsokjcEt0eLzLREGYv3EaoKI6
	aOd8yNr8LaYHSe2/UOkUr669nGsGiDWB2ddJbuLRC01BU5+5K7Qk/hRqOK7lCHh3hNf9jkasKR/
	LC9qcv+4BjxiYYXzSZuknYQtD9bKGgvu+27TNQf+YpmbVKFoUiFdXqXQM/IEuhFNtwidwOn+Phr
	fJ0nyyEqO5h1BnRczLFnL7Bl7PAk5nerIz9FCvB5U7QzY+bTeQwPRFT2dwiSgAUPwFAr0vxE8DR
	3b0ugyePa5pK6GiK7C066pUv4fh1sf2xpHAdRJHpA8zhHEJD34b9WyF8EQTooOr9dK/eO5F5h7p
	j8JeDZejQ11PnTMP4T5xYSIpj7pPHKfh+vxZvlA2XrMyuSoIwYjEtqZAEfLGKxrv6FIxdVAY5jK
	tQ7kEgQj7A9Bg==
X-Google-Smtp-Source: AGHT+IG4fHwbqdIaDwDKIiaV1wPZHApgf8r0cpC323o9sdviAUfa2+BWbM4tFLrcQtOXuQtoUly9gQ==
X-Received: by 2002:a05:600c:5489:b0:477:2f7c:314f with SMTP id 5b1f17b1804b1-47939dfb990mr74560975e9.10.1765181882121;
        Mon, 08 Dec 2025 00:18:02 -0800 (PST)
Message-ID: <530ca67a-926c-4b38-93af-230f302bd6a7@suse.com>
Date: Mon, 8 Dec 2025 09:18:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/kexec: Replace CALL+UD2 pattern with JMP
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251205152905.1925700-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251205152905.1925700-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2025 16:29, Andrew Cooper wrote:
> Linux jumps to the target image rather than calling it.  Switch to using JMP,
> and drop the trailing UD2s.
> 
> Linux does have a mode, named CONFIG_KEXEC_JUMP, where the target image can be
> returned from, but that involves extra metadata and setting up a stack within
> the target image which Xen doesn't support at the moment.
> 
> No functional change.
> 
> Reported-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>

I wonder though why CALL was used in the first place. Usually this would be
to e.g. have the callee have a call frame in order to e.g. unwind. For kexec
that may not be overly relevant though.

Jan

> --- a/xen/arch/x86/x86_64/kexec_reloc.S
> +++ b/xen/arch/x86/x86_64/kexec_reloc.S
> @@ -75,10 +75,8 @@ FUNC(kexec_reloc, PAGE_SIZE)
>          testq   $KEXEC_RELOC_FLAG_COMPAT, %r8
>          jnz     .L_call_32_bit
>  
> -.L_call_64_bit:
> -        /* Call the image entry point.  This should never return. */
> -        callq   *%rbp
> -        ud2
> +        /* Jump to the image entry point */
> +        jmp     *%rbp
>  
>  .L_call_32_bit:
>          /* Setup IDT. */
> @@ -170,9 +168,8 @@ FUNC_LOCAL(compatibility_mode)
>          xorl    %eax, %eax
>          movl    %eax, %cr4
>  
> -        /* Call the image entry point.  This should never return. */
> -        call    *%ebp
> -        ud2
> +        /* Jump to the image entry point. */
> +        jmp     *%ebp
>  END(compatibility_mode)
>  
>          /* Separate code and data into into different cache lines */
> 
> base-commit: 351d41e8aecc3f7566a0baa7b4066d06dedd7113



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 08:18:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 08:18:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180064.1503312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWS8-0000dE-Qg; Mon, 08 Dec 2025 08:18:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180064.1503312; Mon, 08 Dec 2025 08:18:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWS8-0000d7-Mb; Mon, 08 Dec 2025 08:18:40 +0000
Received: by outflank-mailman (input) for mailman id 1180064;
 Mon, 08 Dec 2025 08:18:39 +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
 <SRS0=kmTq=6O=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1vSWS7-00007V-Fj
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 08:18:39 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f51d94a-d40e-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 09:18:38 +0100 (CET)
Received: from SJ0PR05CA0023.namprd05.prod.outlook.com (2603:10b6:a03:33b::28)
 by CY1PR12MB9627.namprd12.prod.outlook.com (2603:10b6:930:104::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.10; Mon, 8 Dec
 2025 08:18:33 +0000
Received: from SJ5PEPF00000203.namprd05.prod.outlook.com
 (2603:10b6:a03:33b:cafe::a7) by SJ0PR05CA0023.outlook.office365.com
 (2603:10b6:a03:33b::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.6 via Frontend Transport; Mon, 8
 Dec 2025 08:18:33 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ5PEPF00000203.mail.protection.outlook.com (10.167.244.36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Mon, 8 Dec 2025 08:18:33 +0000
Received: from cjq-desktop.amd.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 8 Dec
 2025 02:18:30 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7f51d94a-d40e-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pPzqwb0MQgftHQ5ILhVOkl2abESmoF5IHGG7ohk6KTq3iIPiegxz5GTHQiKaLHGTCrU77MoJpHysr7gkfSk/I0wSQzBWogavA7P6Rsb4pJFnJFq6lQHWYkBCKH8KDClhZHXxA52dJaHrDu0gQhow6d+q7mbcT6IDAckohujo3eEHpWZyzeey7PFaanMOL8mIHBum7z1dKKsAa/bEwanNmv3wkUjjBeFHLe1B8Vd7KSjfFdfFjAcKBmxW24SukWa+D2+sHhWw7lFs1APfojH1qzk7IUD2OhusrTJj4Q0Q4G7k6qyG0Gw0H65CWnDGepqN50g5iaNrJtpjYVa9leHuYQ==
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=if4zckH1ms1SlGimH4Cf44Gw9F5Qws+I7sFOZ7Lwb8c=;
 b=ax0zY2oU6QRfdXtBCACFzUco/r8gMP2qKeJxjSpIwpLu7p/ObVh8ufvnGqwl1okHspI/btLA/VvztCdkUCVvxCSfuC2OEcwQ0RTgqLihy6ENg7mNLL50Xkr6m0WWdz7gXByDidmcP0xJolFENrRYDfMsJLyKctnN8ZuqZU7/v3I5VkXatFzyAMktzlWSxNaUBjt4ZR6z5Toah/PV8/txWX89p0ofRDbncj2iyX9ZqiTyApknBYfxQPqmpQ2q0EQL6vEmnkOFlJUthAU3A75x+VaYmpe6co1LyE6LcOhfyvW6zvktLNqcY/smB07I7/V5UA4AbLInID3FqbQk827YEA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=if4zckH1ms1SlGimH4Cf44Gw9F5Qws+I7sFOZ7Lwb8c=;
 b=UsYmmn5mCOqTy7LwZnlSSnPbon0Tw+dtDDO8fg+U6vJY/UsPmFlh5qJ31OzlWRLZYDl5fkVHr8pkyxdxwztepUxg5s4gVVNbDY1TOrCY+GrWHPLZaoBy0Eyb1NzWOuWuDmDMNkqxaIzKRRGo+wMO42Xnq5hdnwVEZxCa9Xg+Mk0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Jiqian Chen <Jiqian.Chen@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [RESEND PATCH v12 0/3] Support hiding capability when its initialization fails
Date: Mon, 8 Dec 2025 16:18:12 +0800
Message-ID: <20251208081815.3105930-1-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF00000203:EE_|CY1PR12MB9627:EE_
X-MS-Office365-Filtering-Correlation-Id: 76dc6d0d-e2bc-4713-28d7-08de363260df
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?T2hhcEZDa1AycGUyMUZKVnVlenJHZWh1eUNuamNuR0o0TkxEMW5XN0FKTlFy?=
 =?utf-8?B?SGhCYzRNZm5BNVp2SXhaUGxySUdQdlBqSURwdnJQbUltVnpxMGNldkJTbFM5?=
 =?utf-8?B?SDhDNkg2bDVGYnBDTlZxc1N0ZUl5VFBBcGZpa090QWlKS1lNOHVUYVVwOXBu?=
 =?utf-8?B?K1JVYmhFdjVPQXY2Qjg3Q2dSL0Y1VG0zaVF0L2FaNEVHRnVuUENzVEhMTDVj?=
 =?utf-8?B?WmU0eTM4S29vM01sY1BNRllhbXY1VVN0Y0RjM2I2Q1BTS3krY2xQMzBmU1B3?=
 =?utf-8?B?elZqS3RyQXhHTU5vR2UvZzcveTFEcUF4SVo3YXNDUzJyL21uMVNQUWFmN0Y0?=
 =?utf-8?B?UWx4dEgwQklPYTYzMFErRDlFMHptWjFCMXJTNkIzNWFyTThDbmpEU2VnTDVD?=
 =?utf-8?B?TnBreE5YUThJdTBmdlkrOWhYQk9qUUNuTExDYVA3RWRTVXBVa1doemFQZGpQ?=
 =?utf-8?B?Z1BBamlYUGdjWE13eEo3UDlJdUt6eUFLMWFiN041SFZXL3dueVZYQnVlcmhS?=
 =?utf-8?B?YzVzcVVNVjg5MlE2WDIxeGJXUERhcVNsMVhMZTMyRWwvN0s2eHRhQVptMHVG?=
 =?utf-8?B?M0hEdHB1bWR3T2lOdmJ5c0luMGV2NGw0b21aRU5CeDFKWmQvS0l2STdXeUUy?=
 =?utf-8?B?b0dMVTZLTHhwUURlbU5DSTJiOGhPQXZNcTNhbFR3bDJkS3llT29COXhlVmdJ?=
 =?utf-8?B?dFlualVwcUxSNTFYSG11OVFzSE5CTFBpL0V3cUlhZWxDdnJSWU9zdFNINHR1?=
 =?utf-8?B?RzNCNk1pQkM2aktlT0t4V3kxZzczMWltZXg2S0kzSmYxOE9vVFl1YXdpbDk1?=
 =?utf-8?B?K0NTVFFPNjRzdHdoSFdtWHNIazR0NzkxOHdvcU5LTHdGa0gwOFl0SGdkVWNh?=
 =?utf-8?B?eU93RUdsdy9JSXRkZXFoa0tsY1RXRzgwcFNvSjRYTjlCYVEvZkZFVDlwZkhD?=
 =?utf-8?B?a0VFZUhMOEVMejdZdy92WWJTdlh3cVQxclgyK2VwRW05YXJTTktuOWp0d3da?=
 =?utf-8?B?ZFBvbk9IeFV4K3J6a3JhTGhaYis2WmJUWjNxci95MGhjOGVPdjdsSWwwc3Fl?=
 =?utf-8?B?RTFRWHF5d3RYUXFoNlpWWjREOXJKOTRkd0NNTENwY09sc25ObzFsYlRpdjVT?=
 =?utf-8?B?SWlENDgzc094cmIrYmlxTTNvcTFPem1MR1FsYjhWZXc1V3B5TExGUHdOTjNC?=
 =?utf-8?B?alhUTEF3U1Exb0J5WTR6SC83d0x6SWdpRFc1YVEwbHo2dm44eFJiN3J0cHIv?=
 =?utf-8?B?ZERBNDRRMzErbnpBUlYwb3pjcHhXVnhzaDhkSGRDeXRUaUkzTzY1MW4weHp6?=
 =?utf-8?B?RndmYVJFT0prT3llMStqTGR0Zm5JaE1MbUQ4dlViWXhKenRyYVc1eXc2WnMr?=
 =?utf-8?B?eGVLajFyZjN0UEZ0MDViMTc5UVFQRENSd3hNeTFXM0pQQ3FMeXZHU3lFRUI0?=
 =?utf-8?B?SllaamRhdWgzRFJjbDRUWXhYS1Q5Z3lOMWdObWhkRFJIeWpSRkZyMzEwbE56?=
 =?utf-8?B?QnJWRU5wZk1RejA4UVUveXhGZlI1dXVQM2ZmakliNFRWUXJwdk5PdnpoZHh6?=
 =?utf-8?B?WnN1eWFiTHUvaW1wNzZuZkZpRFladGFYaGg4eU5rc0FtTFNHQlhubEJRN2k2?=
 =?utf-8?B?U1NQU1BEelJsTGtaeFFRTFFpU1gyRjdPZmlLSVA1Ky91eit3TDZmL3F1bDBW?=
 =?utf-8?B?dG16VFBqdFFXeWFMWFhpZ0x6dnQ1VXk0YmUwZWFpUTdQK05mUFZEMmNYZUs5?=
 =?utf-8?B?V1lpZzBrb3VqNE53cDVQc3l2S1RSdSs5VWxwVGxQQkJJQkdKa0VDdFlkYkF6?=
 =?utf-8?B?NkFSUHJhalFyZklENWpRUUlXanZBSVVlaWhCa0dHamF4VlVldFc2QUV6YmEy?=
 =?utf-8?B?clJJOEs3Tldoa2M2OEUwQmQ3ekNRcmMvczhHRk01V3JHS0Q3RWUvTWRUQ1pr?=
 =?utf-8?B?cG5oS01JdHVIdmtDQ1EzUHJ5OHIxbFRtdmdsRG16ZjM4RkNNdVMwN0pkVnJj?=
 =?utf-8?B?Qi9XZnFWbXFFTU9jL3FZcXpvamZ3U0NTWmxMUnc1amlGa1JvTFFRMlZUN0NY?=
 =?utf-8?B?NHB6UlcxcEdGOS91NnBsOTYvb25iWXc2NDhLZVE5K1RDNjdaRVFueVc0OFhE?=
 =?utf-8?Q?bnaU=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 08:18:33.3352
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 76dc6d0d-e2bc-4713-28d7-08de363260df
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF00000203.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB9627

Hi,

Re-send to review since last send didn't get response and passed months.

This series is to
emulate extended capability list for dom0;
hide legacy and extended capability when its initialization fails;
above two parts had been merged.
remove all related registers and other resources when initializing capability fails, including patch Rebar #1, MSI #2, MSIX #3.

Best regards,
Jiqian Chen.
---
cc: "Roger Pau Monné" <roger.pau@citrix.com>
---
Jiqian Chen (3):
  vpci/rebar: Implement cleanup function for Rebar
  vpci/msi: Implement cleanup function for MSI
  vpci/msix: Implement cleanup function for MSI-X

 xen/drivers/vpci/msi.c   | 55 ++++++++++++++++++++++++++++++++++++++-
 xen/drivers/vpci/msix.c  | 44 ++++++++++++++++++++++++++++++-
 xen/drivers/vpci/rebar.c | 56 +++++++++++++++++++++++++++++++++-------
 xen/drivers/vpci/vpci.c  |  9 -------
 4 files changed, 144 insertions(+), 20 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 08:18:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 08:18:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180067.1503321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWS9-0000r1-W9; Mon, 08 Dec 2025 08:18:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180067.1503321; Mon, 08 Dec 2025 08:18:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWS9-0000qu-TJ; Mon, 08 Dec 2025 08:18:41 +0000
Received: by outflank-mailman (input) for mailman id 1180067;
 Mon, 08 Dec 2025 08:18:40 +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
 <SRS0=kmTq=6O=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1vSWS8-00007V-Fm
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 08:18:40 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f52e246-d40e-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 09:18:39 +0100 (CET)
Received: from SJ0PR05CA0014.namprd05.prod.outlook.com (2603:10b6:a03:33b::19)
 by MN6PR12MB8590.namprd12.prod.outlook.com (2603:10b6:208:47c::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 08:18:34 +0000
Received: from SJ5PEPF00000203.namprd05.prod.outlook.com
 (2603:10b6:a03:33b:cafe::e0) by SJ0PR05CA0014.outlook.office365.com
 (2603:10b6:a03:33b::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.4 via Frontend Transport; Mon, 8
 Dec 2025 08:18:35 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ5PEPF00000203.mail.protection.outlook.com (10.167.244.36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Mon, 8 Dec 2025 08:18:34 +0000
Received: from cjq-desktop.amd.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 8 Dec
 2025 02:18:32 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7f52e246-d40e-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=guABQYla3dpkZenPpouvIloHtfr5T/Y6Ji2LAXklLQUMkvQ5ngQlqGWTUwv2FNtjdb1SgD+AQHJaq6uU5sm9BEPcG9hxsk+7i44IlPnnuzLsuhT2HO+IWINFNitjuGs+mlOxY2Tw76XRRVhjo6rZbRcXW89XX2qoEVw/9IyRIuG33kTOePix3oRfRv5w8zoQ2izFaMXON6Tim2a1x2T9unCgfwAnqjYdsVMmWTysf8X9o/40lZzxLaYfsvh4khgK0orMSpy35HVOtRVVgWN67ndUGCsoXdfHAr8+Fag/W48nJxGIWSjpVOjtbMn8P9j/YGK14UuRDfqr7aNYyw12GQ==
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=X5J/NLvKolJZFPlK79TAQNzjvzt+n/GIS/2Ciwiyc0w=;
 b=rHD4zri2iw27+Mji6EGaiOnDeSRDqpP4vbhrea27tBeVtqzN1HKpVPCk3iZvoWKemVWKUBWZZ4gh9q2Sz6aLm8l4VO7k9Whc5mJ3Sy09nvcBQBReZDG63FDsXl29HNHnPvsYb1MbZ8CUQJnueplor531itorE8b6oWmP7s5SKpB2W02idvHOWUpOO2BmpyHmA3/z7x1stdo4/X9P+L72aDCcd1F8ywvQDuLngGxSIhCi64u/Ng74iv2E4rERV3sxSuHYt7RgYSxsz+2elRC4JiLEF3Ip/oMVKXqkBzI95ZLwfg82XvKVV3INXJJFOPS9g+Z/DEXNdT7pi+VB9CW56g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=X5J/NLvKolJZFPlK79TAQNzjvzt+n/GIS/2Ciwiyc0w=;
 b=PeDV9HwGd8z8rUzFz/tHrzuQBv5jJbDwO+e1dVXSE83eywhxR8xwVczecVc7ikSpTfjac+ivBpVHd+ZnXGVf2RozwCvs5nfQqoLHewktIr6rYEvG7AGV2PRu2uZqBU/y++y/Wh+wK6hLseVxz5yusXte5noYmce3BZNDW38doGc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Jiqian Chen <Jiqian.Chen@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [RESEND PATCH v12 1/3] vpci/rebar: Implement cleanup function for Rebar
Date: Mon, 8 Dec 2025 16:18:13 +0800
Message-ID: <20251208081815.3105930-2-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251208081815.3105930-1-Jiqian.Chen@amd.com>
References: <20251208081815.3105930-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF00000203:EE_|MN6PR12MB8590:EE_
X-MS-Office365-Filtering-Correlation-Id: 2f116729-7ad9-4dc5-d976-08de36326160
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Z2I4TWgxWlEvME5BenAyQ0RGMEROL1NBOG1ZNjZIK0w4LzJqUzVCL3QwQ1k2?=
 =?utf-8?B?M05nZ2lxakM5bXZjRGZmM1NiT0k2SlA0aDVFWk91aGhBeDhFeXAyNklCSDhX?=
 =?utf-8?B?ZGRQbjBMcmc0b2xuOXpGRkpINnhObTRGZitvM3ppelJkaTZHbEhZZTluYlZQ?=
 =?utf-8?B?amU3cE5aVXZGOXA1YXRQU0xYYVR4V0Jnakx6d0FzWHZkRndReTFqWlJrR3JQ?=
 =?utf-8?B?UXlwWFZaOUJIMXZxVlB5dkFLSk5Xcm5xMDNDalRsd01YVWl2RVB2bXdzYXIv?=
 =?utf-8?B?Y1dzODZ2aEJFc29sMVpibkI5a2ZqdE12TUx6Q1NrdWY0U0NMSi96VmNBVnFG?=
 =?utf-8?B?RzF3aUVkaitFSmIwOGR0NkRycXhxM1Y1TlozRFpIaitWbFlKMVBvTjNKZW91?=
 =?utf-8?B?bEEwTyt4cDEyR1JUazJhOEcwcmd1YWF4c3hGSTNHeWJjZ0dteWhVcGdqRHR2?=
 =?utf-8?B?cW1HdHFKTkcxQ01VYldmZnhNYlNWUXVVWTY4cFdXQjUrRUJCeU1NRHZMSFhy?=
 =?utf-8?B?S2k0UjA1V21jK2wvejF6KzJNU3pQa1VXVGVuNG9pQTZOSHYyMXpCNHNXeTVy?=
 =?utf-8?B?czFTTElXN3EwU1lhSzdqSUsxY0dSdUFYQ2xFRk9nY0ZOK2FHOVcwaStxVnND?=
 =?utf-8?B?OUZ2Tzk4ZHV2bFdZaXkyRnowMGVDcjd6Sit6amVqelk4cURNVVovM0ZZbnhX?=
 =?utf-8?B?ZHZJei9hanJkMU42RWpvcWt0R21QQklIWFZKOXJwbWVnVnpIVDNCQ1FJeXVL?=
 =?utf-8?B?Z1RnMGxtaWcxYUJkUUNFYnFaYWJNRlRKOVV6T3dEU3k2ek9RTzZHSWFoWWEw?=
 =?utf-8?B?YllpOFE2aDJrTEdSWXFNNEtPd2ZmOXhaNkRnTElhbXFFNHhRSjY2Y3N6T2t5?=
 =?utf-8?B?Rk9nZFh2YkhreXJtYXBHWmt5YTUxS2w1d3VGWnMyYjBCTXBkWUxxTEZlNUxt?=
 =?utf-8?B?TkptZCtIVnhtK3hSV2ZxS3c0REtzeVJ5dzF3eG5RRWZ6NGdVajdycEE0bW5Z?=
 =?utf-8?B?dHFpaXlKNGVPZEtVWi9NZzlqT1preUFKQWkyd29maWRxdHVjL2hBVjErNWhL?=
 =?utf-8?B?c01HUUw0dU1reVN6R2JBNzZEUWp4VmFRNVNVL2VSS3pnNG5ma044eUp4c2Ra?=
 =?utf-8?B?QzIyeFBEZm1ia3lFd0VWbVlCK3g3NDFzdXFNOU1nTTJ4TXcrM0xFNk4xVDJX?=
 =?utf-8?B?WVRhS09BZXIwVW9IbUp1Q3p6LzRoTVZOaTFwZkJCeloveFVVMVE5N1NVK093?=
 =?utf-8?B?M2JGUlY1UUd2RUJTQXFGbnBqM3dmei9NV1ZTMGg3T1Y3cjV0d0RpOU10Z2wx?=
 =?utf-8?B?Q2lvTXpCN1hsWGlyYXhxSXBBR1k0R0dYUjFIZC9pMzZKZnJKSTNEWVhwNGIv?=
 =?utf-8?B?Um9PL3JzMWd4MWJrRGprOFFVNHdodXdSV2lqSml3NFpsejkrYTIwNmpkRHEw?=
 =?utf-8?B?TVBQdkJ3N05pdHZkZzRTQ0JJZldXdTBaekpuQkpreGg0MnY3MmFhS2JvSWRz?=
 =?utf-8?B?WkM1QktPYm9Sa1k0TDNhRUx6cGNma3RlRXF1bnFHTjJmT1NTcDRnSDRiL0ts?=
 =?utf-8?B?L3NMQ1o4czlUV2pRRjhtbXRtekMrdFBkbkVSTGNrcWt4REtyNXFPaGRzVHlT?=
 =?utf-8?B?eml6R1NyZGw0ZnF1ZCtPSHh2bktRZGZzMHZuL2JhbVhuVmtkL2F1Qm10T2ZK?=
 =?utf-8?B?UlFsYXBpTCtqZjBxbDkzSlVNUG5GWjNvY201L2FWejJBZUhSdmhnZ1dLbWp1?=
 =?utf-8?B?NFdTRWdVN0k2RERkVStCeGQ3ZngzQ1ZzejlERVVqbFlrUERlR0F3bmt6WVhC?=
 =?utf-8?B?YWpSb2EzbzRvU2gzREI3b1A3SFZHZE12eFEyR2RjZ1llVVQ5MHk1RFF2ZWZN?=
 =?utf-8?B?SFN0SjA1emVnZVpMYm91dldKd1lQRUFOWS9FN2gyOVk4MDM4MGF3Q2psdUZw?=
 =?utf-8?B?dFVVN2FCSll0ekJtcXpzTk9RbnQrU3hEWUZpcHlBMVp2c01PRDVQM2JqQUdP?=
 =?utf-8?B?UytSUC9jUFNuVURhVS8vaG83TmhnVVN1OHFUcmpQUDQvdWpFdFpRSHNxcldS?=
 =?utf-8?B?c2M2SEhVNC9Vc1JCTm1Yb1YvSDJzWmJ6U0UvWW9lZ1k0UGZqQ1NTRWloSUth?=
 =?utf-8?Q?fEhM=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 08:18:34.1858
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2f116729-7ad9-4dc5-d976-08de36326160
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF00000203.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN6PR12MB8590

When Rebar initialization fails, vPCI hides the capability, but
removing handlers and datas won't be performed until the device is
deassigned. So, implement Rebar cleanup hook that will be called to
cleanup Rebar related handlers and free it's associated data when
initialization fails.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau Monné" <roger.pau@citrix.com>
---
v11->v12 changes:
* In cleanup_rebar(), move the check "if ( !hide )" above the vpci_remove_registers().
* In init_rebar(), change return rc to continue when "if ( index >= PCI_HEADER_NORMAL_NR_BARS )" and
  "if ( bar->type != VPCI_BAR_MEM64_LO && bar->type != VPCI_BAR_MEM32 )"
* Remove "!rebar_offset" check in cleanup_rebar() since all currenty caller already do that.

v10->v11 changes:
* Add ASSERT_UNREACHABLE() when vpci_remove_registers() fails
* When hide == true, add handlers to let Rebar ctrl be RO.
* Remove Roger's Reviewed-by since patch change.

v9->v10 changes:
v8->v9 changes:
No.

v7->v8 changes:
* Add Roger's Reviewed-by.

v6->v7 changes:
* Change the pointer parameter of cleanup_rebar() to be const.
* Print error when vpci_remove_registers() fail in cleanup_rebar().

v5->v6 changes:
No.

v4->v5 changes:
* Change definition "static void cleanup_rebar" to "static int cf_check cleanup_rebar"
  since cleanup hook is changed to be int.

v3->v4 changes:
* Change function name from fini_rebar() to cleanup_rebar().
* Change the error number to be E2BIG and ENXIO in init_rebar().

v2->v3 changes:
* Use fini_rebar() to remove all register instead of in the failure path of init_rebar();

v1->v2 changes:
* Called vpci_remove_registers() to remove all possible registered registers instead of
  using a array to record all registered register.

Best regards,
Jiqian Chen.

rebar
---
 xen/drivers/vpci/rebar.c | 56 +++++++++++++++++++++++++++++++++-------
 1 file changed, 47 insertions(+), 9 deletions(-)

diff --git a/xen/drivers/vpci/rebar.c b/xen/drivers/vpci/rebar.c
index 3c18792d9bcd..209091c00987 100644
--- a/xen/drivers/vpci/rebar.c
+++ b/xen/drivers/vpci/rebar.c
@@ -49,6 +49,51 @@ static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
     bar->guest_addr = bar->addr;
 }
 
+static int cf_check cleanup_rebar(const struct pci_dev *pdev, bool hide)
+{
+    int rc;
+    uint32_t ctrl;
+    unsigned int nbars;
+    unsigned int rebar_offset = pci_find_ext_capability(pdev->sbdf,
+                                                        PCI_EXT_CAP_ID_REBAR);
+
+    if ( !hide )
+        return 0;
+
+    ctrl = pci_conf_read32(pdev->sbdf, rebar_offset + PCI_REBAR_CTRL(0));
+    nbars = MASK_EXTR(ctrl, PCI_REBAR_CTRL_NBAR_MASK);
+
+    rc = vpci_remove_registers(pdev->vpci, rebar_offset + PCI_REBAR_CAP(0),
+                               PCI_REBAR_CTRL(nbars - 1));
+    if ( rc )
+    {
+        printk(XENLOG_ERR "%pd %pp: fail to remove Rebar handlers rc=%d\n",
+               pdev->domain, &pdev->sbdf, rc);
+        ASSERT_UNREACHABLE();
+        return rc;
+    }
+
+    /*
+     * The driver may not traverse the capability list and think device
+     * supports Rebar by default. So here let the control register of Rebar
+     * be Read-Only is to ensure Rebar disabled.
+     */
+    for ( unsigned int i = 0; i < nbars; i++ )
+    {
+        rc = vpci_add_register(pdev->vpci, vpci_hw_read32, NULL,
+                               rebar_offset + PCI_REBAR_CTRL(i), 4, NULL);
+        if ( rc )
+        {
+            printk(XENLOG_ERR
+                   "%pd %pp: fail to add Rebar ctrl handler rc=%d\n",
+                   pdev->domain, &pdev->sbdf, rc);
+            return rc;
+        }
+    }
+
+    return 0;
+}
+
 static int cf_check init_rebar(struct pci_dev *pdev)
 {
     uint32_t ctrl;
@@ -97,14 +142,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
         {
             printk(XENLOG_ERR "%pd %pp: BAR%u fail to add reg of REBAR_CTRL rc=%d\n",
                    pdev->domain, &pdev->sbdf, index, rc);
-            /*
-             * Ideally we would hide the ReBar capability on error, but code
-             * for doing so still needs to be written. Use continue instead
-             * to keep any already setup register hooks, as returning an
-             * error will cause the hardware domain to get unmediated access
-             * to all device registers.
-             */
-            continue;
+            return rc;
         }
 
         bar->resizable_sizes =
@@ -118,7 +156,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
 
     return 0;
 }
-REGISTER_VPCI_EXTCAP(REBAR, init_rebar, NULL);
+REGISTER_VPCI_EXTCAP(REBAR, init_rebar, cleanup_rebar);
 
 /*
  * Local variables:
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 08:18:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 08:18:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180068.1503332 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWSD-000173-7Q; Mon, 08 Dec 2025 08:18:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180068.1503332; Mon, 08 Dec 2025 08:18:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWSD-00016q-3L; Mon, 08 Dec 2025 08:18:45 +0000
Received: by outflank-mailman (input) for mailman id 1180068;
 Mon, 08 Dec 2025 08:18:43 +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
 <SRS0=kmTq=6O=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1vSWSB-00007V-83
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 08:18:43 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 81408cb2-d40e-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 09:18:42 +0100 (CET)
Received: from SJ0PR03CA0281.namprd03.prod.outlook.com (2603:10b6:a03:39e::16)
 by MN0PR12MB5859.namprd12.prod.outlook.com (2603:10b6:208:37a::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 08:18:37 +0000
Received: from SJ5PEPF00000207.namprd05.prod.outlook.com
 (2603:10b6:a03:39e:cafe::fc) by SJ0PR03CA0281.outlook.office365.com
 (2603:10b6:a03:39e::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Mon,
 8 Dec 2025 08:18:27 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ5PEPF00000207.mail.protection.outlook.com (10.167.244.40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Mon, 8 Dec 2025 08:18:37 +0000
Received: from cjq-desktop.amd.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 8 Dec
 2025 02:18:35 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 81408cb2-d40e-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=M08mj3gZ8GhKu7Mwu3cnKSPoGq9x9v7h60j3kdq6iQ5rY+zFguMD1CR1bSJ1u1vncKRB/JxRuojdaAwAdRp0jLhIBg5lxRZ7qLej3qA9a9WO/M6D9OnvgMOyGT7vP1sBRS6Hp/bu1fxd4kmNm9vgcty1DB9G9U5KefaX+k9/dZCUJ5f833E36s8rgFrjLbAFSVXS4vQkwGhFx+szhbK+c2KJFNlPbohrJApGdJFNtIuj1vkLbpzJOh+bWrP/5Jnrnaj38UW4rW9WI1URzTu2cX3TGP8uzSz+k3MaG3FGpVh1fKBBJVbtbmO8ntC04FjWT4FRGQpPy1WwrNg75zUKYA==
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=h15ZFZ9qJGUjaSdA+3pihgCPa4cgLgZUbxspOGcJr54=;
 b=RU7dGixIcSI+f08hY0JIJO0eoJpMu2YKdxi/tH8ifWnCleFKC2o6SLoxhqBbu+ubrndAIaX1GAydSUKprHUEgeV/iF2cKD09xu/FsRvqLODgHdj2WnSHVVhR6OT1/UYe7zHdhX4TqqPo8K6e8mWNwsu7apjkIdy7veYL0QJmoq5UQDZ6CJktqA8rIdGHsEXmlj6z/YcZJWy6psC2InsAnh5MNkwyUTSjp1RAabN4QiHy3lShtWYP2+4BUTbmJ+rG/fGi5BrsaMrhZPBXWzK2Hkco1/7Rc4yotyE0APgEI9YHgH7Ej78SM5PdsZbTmJXwA5wLC6t8NROSeuua/1dssA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=h15ZFZ9qJGUjaSdA+3pihgCPa4cgLgZUbxspOGcJr54=;
 b=aLLq9rzGaoEUDg0x80rg0boMYixfWL6KPWiSS+UzgbdayL3toJ/qE8ZRp+tpKpWVkJk3wuiaMhLtmdZcep8Uy0tqcMTZBpD83TrDb/9u58DdQQqHpBRlMSyOcdM63r0/ubWeen0bKmdEcQR5audAl2i+uK34yEul4tqaiPB4tfc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Jiqian Chen <Jiqian.Chen@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [RESEND PATCH v12 3/3] vpci/msix: Implement cleanup function for MSI-X
Date: Mon, 8 Dec 2025 16:18:15 +0800
Message-ID: <20251208081815.3105930-4-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251208081815.3105930-1-Jiqian.Chen@amd.com>
References: <20251208081815.3105930-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF00000207:EE_|MN0PR12MB5859:EE_
X-MS-Office365-Filtering-Correlation-Id: d98a2231-5ec8-49fa-86e3-08de36326320
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eGtSQjVaOG9jTU9xQkhZeHBiaWl2Rit1NHV0RDljSldjZTduTmhDNWpLSTFG?=
 =?utf-8?B?Zmd4QWd4RjRITjBPY2JNRUlIcVFZanZEZUp2Uk9tWHpQcmd4SXpFdG4yUzgx?=
 =?utf-8?B?UU5FbDV4ZENOMkk5RXI1MXc4d29jQ2VWcXQvTU1udGFwN3ZjeWF3RjE4QnNm?=
 =?utf-8?B?dnY2T2dmY2lPWW1MWGFkSzBka05kd0hxSW9xb08wUlRZSm9OdUNha1J5eExs?=
 =?utf-8?B?UHZlaDIzN20vdThBSnNCa2ExV282bzd0SDJlWHJiN1pLeTdldmNnUzVjVkd1?=
 =?utf-8?B?QTFtbGFPQXB3akJhK0EzeWJJVExoM1FTSzNpVXVsL1ZJL0RPQjlLVG9tbFg0?=
 =?utf-8?B?Z0lUczJsampsNWVZZDRiYVAwZmZGdURycnhkQmFHWEs0NHhtK2xYa0VnTnla?=
 =?utf-8?B?NjBpaFViQnNEUldxWXdBcjBIUkZ3Wk1xRUxNd2NrRnVTeWFTMG5TWjlLQUdG?=
 =?utf-8?B?b2JIM09ZNXF5M3JIYlFWdmJpdnRJa1N2bEw1V3R2aUNiZFB5Ny8xR0pMaEtR?=
 =?utf-8?B?ekxQQlZXVFF3VzRWZVhDdHlmL0NiMU5nTWdiK2NabG1TR0NrcVc1ajNkYVN0?=
 =?utf-8?B?NGx6N29qMjh4YTZiNDk2UjQ3ODdVZlJsbSsvY1RJTStCMTlPUDR3L1owVWpl?=
 =?utf-8?B?TEM0RVVoczdLMktJenFKV0F2YnNGZzN6VlVTUGlrbnhlazZLWUxzZ0ZpeGdE?=
 =?utf-8?B?Ylh0aXA5WUxLWkZybFhUMkI4N3psdldsOEJ4K2tJQTVtMmR6a2JlSXVZSlN2?=
 =?utf-8?B?dnJPaGJoTEk1VzlhY2Z6WHFsVWlYZUxubVpyQkdmMSt3Q1JaNGJWT05NZlpQ?=
 =?utf-8?B?NkJsemtueHN6VmtWZUhDRkxPQWh1c2Y4aVkyY2FkTTV2VGdzOGtZbUpIRDFw?=
 =?utf-8?B?QkZtWDV2a01lVEZxMExlRmRPRUI2WVJ3VU1YK0FmMjREekkrbzNrWk5ST1Vm?=
 =?utf-8?B?N3p6Ym9hSzRLazVLa0I3eTRoODlFY2ZGN0RPV3VVa04rUW13QTJycVFDdzh3?=
 =?utf-8?B?aVplSUxxc05jWEV0dGZMWmVoLzFHSWtJcUtrL3pZWU5xYzVBWnpWRk1MVFgr?=
 =?utf-8?B?VXIremQzbHNxZTNmc3ZPZUlac3VNLzUwQkdLSU9WdkNuUitHaHdwcjhxc25M?=
 =?utf-8?B?RDBqbE9vcWVwOU9GMWU0b2k0QWkzRXZlOS9TSTJvTm55RmowTEpqd3VMemFx?=
 =?utf-8?B?MFBabCtrbFNUbVdNRjB6WGVwZ3dIbUd4cHY4MWhwT09wUDJCZzdUVXNFUHd5?=
 =?utf-8?B?N21MTVpZdWRuajc5UVJ3emdReWhUaVloNHozMXBpWkdxMHkzdUNjcTRnZTZv?=
 =?utf-8?B?d1NsSGE4ZEJUbHJNNklSeFBQYUk4TytobU5KTk9mN2NrVzgzNHZhdURvUlJN?=
 =?utf-8?B?eEZlR1NZd1pQNTlGMFJ0UDgwK29MTkQ3M0R2OHpYZlJ6WnRlRmprZ3dHdEFO?=
 =?utf-8?B?ZG41TlpyUk9CaEFPbmtVK0d5bGZKOU8yT1NaQ3VEWXBuQXIwOVV3MExRTS95?=
 =?utf-8?B?WDMxSkhnZVRvZFh3a0lhQmN4Mm1HVmljMkg2dnQvbzNHUkYyK256eHRveldP?=
 =?utf-8?B?cFVXeGVBdjNNT2puV1BFcnlHb3JHQ05nQVIrRWxQSlRwQzdIcENDeXhaRmpx?=
 =?utf-8?B?UzlJVVNaT3F5K1FaSDZaMCt4bVFrMlQyWHhqOEtMY3VDVnphdkFKYzdnUnkx?=
 =?utf-8?B?LzVoZEpTRm1NN0ZLVENFQVYxOGpsZWtEMGdWblFSdTd3V0c3bkFsL3hPUytQ?=
 =?utf-8?B?aDNQVjJuQytVMSs1RC9yMlBsNGN3UU5jYldnRlNSdW1ocW1nT29KeWo1MHBP?=
 =?utf-8?B?SmRxQmFSK1piOWF1Mi9UR0dsUUJkSDNsL3hPazkzTUlTblZtVkRzNVVWQ04z?=
 =?utf-8?B?ajhORWNyT2VMc0loZHVoZnd3WjRsVWJncUJGK29RcHp0aEN5cVNRaVBUVTUx?=
 =?utf-8?B?Yi91dFo0NVFNMEVtSHRLYXFwWWFrU2dXeFNCSXhNRHZodDRWd1NRU3BKbG9m?=
 =?utf-8?B?TXNRWkVEUGhsdGU3YWw1Ty9qQkhvQzB5ay8zWDZwbHFFQXllYXNyLy9GTFBp?=
 =?utf-8?B?Y3dWdTY5WERReUhwTENTZnhnRngxa1JJSGZCVzg5UmlBMVJxamZJZ3Bld1Ev?=
 =?utf-8?Q?AaXQ=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 08:18:37.1193
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d98a2231-5ec8-49fa-86e3-08de36326320
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF00000207.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5859

When MSI-X initialization fails, vPCI hides the capability, but
removing handlers and datas won't be performed until the device is
deassigned. So, implement MSI-X cleanup hook that will be called
to cleanup MSI-X related handlers and free it's associated data when
initialization fails.

Since cleanup function of MSI-X is implemented, delete the open-code
in vpci_deassign_device().

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau Monné" <roger.pau@citrix.com>
---
v11->v12 changes:
* In cleanup_msix(), move check "if ( !hide )" above vpci_remove_registers().
* Remove the check "!pdev->msix_pos" since current callers already do that.

v10->v11 changes:
* Move calling all cleanup hook in vpci_deassign_device() out of this patch.
* Add hide parameter to cleanup_msix().
* Check hide, if it is false, return directly instead of letting ctrl RO.

v9->v10 changes:
* Call all cleanup hook in vpci_deassign_device() instead of cleanup_msix().

v8->v9 changes:
* Modify commit message.
* Call cleanup_msix() in vpci_deassign_device() to remove the open-code to cleanup msix datas.
* In cleanup_msix(), move "list_del(&vpci->msix->next);" above for loop of iounmap msix tables.

v7->v8 changes:
* Given the code in vpci_remove_registers() an error in the removal of
  registers would likely imply memory corruption, at which point it's
  best to fully disable the device. So, Rollback the last two modifications of v7.

v6->v7 changes:
* Change the pointer parameter of cleanup_msix() to be const.
* When vpci_remove_registers() in cleanup_msix() fails, not to return
  directly, instead try to free msix and re-add ctrl handler.
* Pass pdev->vpci into vpci_add_register() instead of pdev->vpci->msix in
  init_msix() since we need that every handler realize that msix is NULL
  when msix is freed but handlers are still in there.

v5->v6 changes:
* Change the logic to add dummy handler when !vpci->msix in cleanup_msix().

v4->v5 changes:
* Change definition "static void cleanup_msix" to "static int cf_check cleanup_msix"
  since cleanup hook is changed to be int.
* Add a read-only register for MSIX Control Register in the end of cleanup_msix().

v3->v4 changes:
* Change function name from fini_msix() to cleanup_msix().
* Change to use XFREE to free vpci->msix.
* In cleanup function, change the sequence of check and remove action according to
  init_msix().

v2->v3 changes:
* Remove unnecessary clean operations in fini_msix().

v1->v2 changes:
new patch.

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/msix.c | 44 ++++++++++++++++++++++++++++++++++++++++-
 xen/drivers/vpci/vpci.c |  8 --------
 2 files changed, 43 insertions(+), 9 deletions(-)

diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index 032e471bb1c0..8dcf2cf9d598 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -656,6 +656,48 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
     return 0;
 }
 
+static int cf_check cleanup_msix(const struct pci_dev *pdev, bool hide)
+{
+    int rc;
+    struct vpci *vpci = pdev->vpci;
+    const unsigned int msix_pos = pdev->msix_pos;
+
+    if ( vpci->msix )
+    {
+        list_del(&vpci->msix->next);
+        for ( unsigned int i = 0; i < ARRAY_SIZE(vpci->msix->table); i++ )
+            if ( vpci->msix->table[i] )
+                iounmap(vpci->msix->table[i]);
+
+        XFREE(vpci->msix);
+    }
+
+    if ( !hide )
+        return 0;
+
+    rc = vpci_remove_registers(vpci, msix_control_reg(msix_pos), 2);
+    if ( rc )
+    {
+        printk(XENLOG_ERR "%pd %pp: fail to remove MSIX handlers rc=%d\n",
+               pdev->domain, &pdev->sbdf, rc);
+        ASSERT_UNREACHABLE();
+        return rc;
+    }
+
+    /*
+     * The driver may not traverse the capability list and think device
+     * supports MSIX by default. So here let the control register of MSIX
+     * be Read-Only is to ensure MSIX disabled.
+     */
+    rc = vpci_add_register(vpci, vpci_hw_read16, NULL,
+                           msix_control_reg(msix_pos), 2, NULL);
+    if ( rc )
+        printk(XENLOG_ERR "%pd %pp: fail to add MSIX ctrl handler rc=%d\n",
+               pdev->domain, &pdev->sbdf, rc);
+
+    return rc;
+}
+
 static int cf_check init_msix(struct pci_dev *pdev)
 {
     struct domain *d = pdev->domain;
@@ -751,7 +793,7 @@ static int cf_check init_msix(struct pci_dev *pdev)
      */
     return vpci_make_msix_hole(pdev);
 }
-REGISTER_VPCI_CAP(MSIX, init_msix, NULL);
+REGISTER_VPCI_CAP(MSIX, init_msix, cleanup_msix);
 
 /*
  * Local variables:
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 7aaf015f63d4..3c9bebcbe977 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -356,18 +356,10 @@ void vpci_deassign_device(struct pci_dev *pdev)
         xfree(r);
     }
     spin_unlock(&pdev->vpci->lock);
-    if ( pdev->vpci->msix )
-    {
-        list_del(&pdev->vpci->msix->next);
-        for ( i = 0; i < ARRAY_SIZE(pdev->vpci->msix->table); i++ )
-            if ( pdev->vpci->msix->table[i] )
-                iounmap(pdev->vpci->msix->table[i]);
-    }
 
     for ( i = 0; i < ARRAY_SIZE(pdev->vpci->header.bars); i++ )
         rangeset_destroy(pdev->vpci->header.bars[i].mem);
 
-    xfree(pdev->vpci->msix);
     xfree(pdev->vpci);
     pdev->vpci = NULL;
 }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 08:18:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 08:18:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180070.1503342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWSF-0001Ok-Hw; Mon, 08 Dec 2025 08:18:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180070.1503342; Mon, 08 Dec 2025 08:18:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWSF-0001Ob-Er; Mon, 08 Dec 2025 08:18:47 +0000
Received: by outflank-mailman (input) for mailman id 1180070;
 Mon, 08 Dec 2025 08:18:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kmTq=6O=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1vSWSE-0000Wp-91
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 08:18:46 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8088bf75-d40e-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 09:18:41 +0100 (CET)
Received: from SJ0PR03CA0287.namprd03.prod.outlook.com (2603:10b6:a03:39e::22)
 by SA1PR12MB7271.namprd12.prod.outlook.com (2603:10b6:806:2b8::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 08:18:36 +0000
Received: from SJ5PEPF00000207.namprd05.prod.outlook.com
 (2603:10b6:a03:39e:cafe::41) by SJ0PR03CA0287.outlook.office365.com
 (2603:10b6:a03:39e::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Mon,
 8 Dec 2025 08:18:12 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ5PEPF00000207.mail.protection.outlook.com (10.167.244.40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Mon, 8 Dec 2025 08:18:35 +0000
Received: from cjq-desktop.amd.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 8 Dec
 2025 02:18:33 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8088bf75-d40e-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=onhbc/9ZMy9G8b2roTJzyW6XGaBijJqosAmJHeU+ZX4rJEdlbz+8grGRf3F4T5PFd5XF0xoqBYIqTEJtT04UM58ObqrkZYZChEAdst2ilbtyylMYKkH/DMtLuEXCjanlLQq1sQU5/62eJK7fSkv4GafhP4M8uwBdM/4S/A+tdZ4EwTq059dskBdf3aXktGHVDuoQYU8pPIjJ1/+gct/DBIJh9anPcxQFVWHun+fDM761buKYAGkSnYWcpqL2Pc3ff2NTRb+kHb70EzGAk/oZv07XQaOljKRcNpEwgQWqnNLgEi+JraNH5FMDJXMjfOlKfG1GE6DeMTPLkBJh1RQ2pA==
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=e4ll3zGyqnoS22DY6zoekAmF0Bra4jeTbZ+pxTmziEM=;
 b=hTSAlCdjj2II9t6F0V6C86Cr0BZRoKQl2wX/WEby19O0Ezoxr8NLI8waqgeR6c16pz4lIUWgCClW9m5So6ntq350lBsIUiYBBrvGNLIGHaAUSS3R28y5gFrMivShaT9thikPLjHay8MxGwqbvVFAQfJ5Zo475k7nk/sU3tf/A2kgZ9dVV5MySOI3ZwJnyDRjscaPMFClgRQTVGGWOwZ32h39VTeQRVtS5WYAuo5PGA+rk/0Eb6o8AzRPc/woHIlSBzVXTAR+5vDKR1E0wv7nrYabvo+Zt+8YUF+LJrm4e9vZV6W0q4c2vPIRkSSkTtZ7bEwR9hqnF8nYtEtuIVyJ0w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=e4ll3zGyqnoS22DY6zoekAmF0Bra4jeTbZ+pxTmziEM=;
 b=NQyL1hXyQ5BfBQKHUsshrH7vDIcnfdlpi45Ah0YXRMp/JnXBvpQohjaCvtn9uwI84dlYShDQ4s/ukpj9jWkha0gZSnwvXiv8rMDd29txIpGLtgkFLvFHpldOm8QOjqWfcaRLa3lMewlJnb7mf9FtgFsNc+VWtCweN8WqIHPh2V4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Jiqian Chen <Jiqian.Chen@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [RESEND PATCH v12 2/3] vpci/msi: Implement cleanup function for MSI
Date: Mon, 8 Dec 2025 16:18:14 +0800
Message-ID: <20251208081815.3105930-3-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251208081815.3105930-1-Jiqian.Chen@amd.com>
References: <20251208081815.3105930-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF00000207:EE_|SA1PR12MB7271:EE_
X-MS-Office365-Filtering-Correlation-Id: d1a833f3-aa14-44a7-3af2-08de36326259
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RUVHZlFaQitIY0IwSlNtR0YzSllJbmgzR0J4RlpSQWk5ckV4WkN1U3BCSkU3?=
 =?utf-8?B?dno1ODhJNTMvcTR1ZzBrWDVUcms5bjIzSWtMOHU1WGJuYmRpZ1VtQkx6NG0y?=
 =?utf-8?B?ZFhqZWt6YStIdkM4eDgreTFwVng3YkFkUmZoai94Wkp3U2draGRvU2pySVZi?=
 =?utf-8?B?Y3M3Z3NXYzhOTnIyNjU3eFdQeTZ3c296WTNwa2dSckUyWG51WXREcmg3Y1FZ?=
 =?utf-8?B?ZTEya2ZRZkdqNlFMbjdCekowMlFMVmFQRVg0YUp1NzBqbDcxQ3E4VENYU1Zk?=
 =?utf-8?B?NVZEK0dqYVIvMDZqZFFreFVIS2xmSDI4RXNYQVpnbFUxWXY1Zjd5RGQ3ak00?=
 =?utf-8?B?M0JGYm0wWnhYWUR2U3FWUVd0S1NBOTI0SDlqQjVLR1B5WVhBMlFRZnU4NHcz?=
 =?utf-8?B?cCtUY1VBT3J3cUNIbnI3czhzYWFxbHJzVkpEZllod2hoaFNldDFjNFlGRWJW?=
 =?utf-8?B?M1ZjNEhKdnRDUWNzUkJBRG5tdFJCRWJqWXpWMkEyYzlqeHZFeVkrSGZHeFNy?=
 =?utf-8?B?SjR4cUhhb0toRHJibzcya3RPSFMyRm11WUpYemdMR2dneFJLaDdnYzNzSVpJ?=
 =?utf-8?B?MEV1SHJWOW4xM05jTkpUVzNBN3VwdkhsSEhCdVNLZTJBQmVvc3dPb3lpN1Bo?=
 =?utf-8?B?L1NXalluNk95cU80VTdxb3p2dis4dUJqajM1YmZ4T3M4MW9RL1JXcVZoRFlU?=
 =?utf-8?B?V1hXSFJGWUJDTC9NSVgzVFRvYTEzbmJPZDNUQzBoQ2IxVXNyUWhBQ3FDbHkv?=
 =?utf-8?B?dlRBWGhQWmJDZHpISmhDNllnVldwRnlad1ZNYmlxelZLMUwzSUdmUHNzSk1Q?=
 =?utf-8?B?T2o1NWNobEZNSnNnOFdkRDdDd2dTYmkrenRxQ0dCSVFMd0JJSGJMZ0dQNkpR?=
 =?utf-8?B?Z2VEQzdaRlc1Z29qZXZFR1hQUVI3ZUNmTExPZzlKMGsrSDM2a3V5b3k3SFVz?=
 =?utf-8?B?OXRzMkRCLy9jTk0wM2pzaUlrUVlGSmttajM2YVZCYTBES1JaTWZMQlVTY29m?=
 =?utf-8?B?K2FUUGVnKzVVaTMzM2NZNVlUWjFRb01SR2VHS1ZJb0VKTlNra3lyVmFIbjY0?=
 =?utf-8?B?SkMvN3Q0V256MDNqRFd2dEZubzhWWnVUN2pYdTByL2prOWREajE0czJUUUk3?=
 =?utf-8?B?a05wOVlRQTduRWtwcnFlK2lQVlJoeDRxNURjYzE0bWN3YXVOZTM1Q0gzWG1O?=
 =?utf-8?B?YWV0RGwyYndkbDZYSUFkM3NSTklkS0laalphNE85SnpNQzZjSjhiaFhIdU9w?=
 =?utf-8?B?ckZBaFF1RWExUDRMMWloU1J1T1RCVHpmcFFsaVRBZGRFWVlTOGJIK1Q2WUNT?=
 =?utf-8?B?STI5dFNuSkVaRUJGY0hKblRPekkzM3d1eThwWHVROFBmTDdvcVJZQSt1K0Uy?=
 =?utf-8?B?QnV2YkFyNDJKUDRoQmRzbnpTTXpuVDFHbU9OdUxrYThPQUM5Q215VTlIcHlW?=
 =?utf-8?B?akJsK3htTStwdlJaYXlQNG5EcnN5R1B3MHVUR1dxZStvcjVubkVwTDFaQ3R6?=
 =?utf-8?B?TlY2cTFvckFFY1dydVhPSDFTckh3bVIyQkJ6TmVWZk5TUkxYYnhraXJraThH?=
 =?utf-8?B?M3BZN0g4MElGUGRSNzJJSG5VM1Z6dDVEYkRxRmJSZGF2VUtqaGFtdmVFanJE?=
 =?utf-8?B?QjNiOXVkWGhwRUxjV3owN29LOFV0RGNCVDQ3Zk0wTFlTN2tXNWpoK1kvYk1V?=
 =?utf-8?B?VHE5cmJqbDA1WnFjYXkzYVozU01mZXd2OEJsend4NGZGVUhlNElRVENCcWxi?=
 =?utf-8?B?aU1rNE1lVkk0dFIrWmZVS2I4Q2xsVVVWVzF2SUZxWTUyd3kyVjJUaHZqcE1l?=
 =?utf-8?B?WXlneFNJWEZNYk9zeEFLYXdLOWNBa1VTTFZEcFpmWVFGalBZYSt3WkJScWJI?=
 =?utf-8?B?bzZJaUI4WldTb2FZMHF5WFp1eWpacGMrc2xib09wUDV6MHgvREUzTFEvK0Jl?=
 =?utf-8?B?Um9rVjcxTDNSZFFUSEtvT2ZYb3EwN1VaVCtoaytXZDhMRFlVUjhROVBjVHgx?=
 =?utf-8?B?ZGNOajhqcWIvejIybGczRzhnNnl5cTIrd0FzVU5zZmVnTjRLcGRRN3ZDK081?=
 =?utf-8?B?cWJsVS9jaUFreVFNLzNiU0FzZWdpampzYWtCd29qRWN3RExJTHR2WllaQUZS?=
 =?utf-8?Q?mMjA=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 08:18:35.8127
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d1a833f3-aa14-44a7-3af2-08de36326259
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF00000207.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7271

When MSI initialization fails, vPCI hides the capability, but
removing handlers and datas won't be performed until the device is
deassigned. So, implement MSI cleanup hook that will be called to
cleanup MSI related handlers and free it's associated data when
initialization fails.

Since cleanup function of MSI is implemented, delete the open-code
in vpci_deassign_device().

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau Monné" <roger.pau@citrix.com>
---
v11->v12 changes:
* In cleanup_msi(), move "if ( !hide )" above vpci_remove_registers()
  since deassign device will do removing registers itself.
* Read address64 and mask info from hardware since they are not reliable
  when init_msi fails.

v10->v11 changes:
* Add hide paratemer to cleanup_msi().
* Check hide, if false return directly instead of letting ctrl RO.
* Delete xfree(pdev->vpci->msi); in vpci_deassign_device().
* Remove Roger's Reviewed-by since patch change.

v9->v10 changes:
No.

v8->v9 changes:
* Add Roger's Reviewed-by.

v7->v8 changes:
* Add a comment to describe why "-2" in cleanup_msi().
* Given the code in vpci_remove_registers() an error in the removal of
  registers would likely imply memory corruption, at which point it's
  best to fully disable the device. So, Rollback the last two modifications of v7.

v6->v7 changes:
* Change the pointer parameter of cleanup_msi() to be const.
* When vpci_remove_registers() in cleanup_msi() fails, not to return
  directly, instead try to free msi and re-add ctrl handler.
* Pass pdev->vpci into vpci_add_register() instead of pdev->vpci->msi in
  init_msi() since we need that every handler realize that msi is NULL
  when msi is free but handlers are still in there.

v5->v6 changes:
No.

v4->v5 changes:
* Change definition "static void cleanup_msi" to "static int cf_check cleanup_msi"
  since cleanup hook is changed to be int.
* Add a read-only register for MSI Control Register in the end of cleanup_msi.

v3->v4 changes:
* Change function name from fini_msi() to cleanup_msi().
* Remove unnecessary comment.
* Change to use XFREE to free vpci->msi.

v2->v3 changes:
* Remove all fail path, and use fini_msi() hook instead.
* Change the method to calculating the size of msi registers.

v1->v2 changes:
* Added a new function fini_msi to free all MSI resources instead of using an array
  to record registered registers.

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/msi.c  | 55 ++++++++++++++++++++++++++++++++++++++++-
 xen/drivers/vpci/vpci.c |  1 -
 2 files changed, 54 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
index c3eba4e14870..181ec902dffb 100644
--- a/xen/drivers/vpci/msi.c
+++ b/xen/drivers/vpci/msi.c
@@ -193,6 +193,59 @@ static void cf_check mask_write(
     msi->mask = val;
 }
 
+static int cf_check cleanup_msi(const struct pci_dev *pdev, bool hide)
+{
+    int rc;
+    unsigned int end;
+    struct vpci *vpci = pdev->vpci;
+    const unsigned int msi_pos = pdev->msi_pos;
+    const unsigned int ctrl = msi_control_reg(msi_pos);
+
+    if ( !hide )
+    {
+        XFREE(vpci->msi);
+        return 0;
+    }
+
+    if ( vpci->msi )
+    {
+        uint16_t control = pci_conf_read16(pdev->sbdf, ctrl);
+        bool address64 = is_64bit_address(control);
+
+        if ( is_mask_bit_support(control) )
+            end = msi_pending_bits_reg(msi_pos, address64);
+        else
+            /*
+            * "-2" here is to cut the reserved 2 bytes of Message Data when
+            * there is no masking support.
+            */
+            end = msi_mask_bits_reg(msi_pos, address64) - 2;
+
+        rc = vpci_remove_registers(vpci, ctrl, end - ctrl);
+        if ( rc )
+        {
+            printk(XENLOG_ERR "%pd %pp: fail to remove MSI handlers rc=%d\n",
+                pdev->domain, &pdev->sbdf, rc);
+            ASSERT_UNREACHABLE();
+            return rc;
+        }
+
+        XFREE(vpci->msi);
+    }
+
+    /*
+     * The driver may not traverse the capability list and think device
+     * supports MSI by default. So here let the control register of MSI
+     * be Read-Only is to ensure MSI disabled.
+     */
+    rc = vpci_add_register(vpci, vpci_hw_read16, NULL, ctrl, 2, NULL);
+    if ( rc )
+        printk(XENLOG_ERR "%pd %pp: fail to add MSI ctrl handler rc=%d\n",
+               pdev->domain, &pdev->sbdf, rc);
+
+    return rc;
+}
+
 static int cf_check init_msi(struct pci_dev *pdev)
 {
     unsigned int pos = pdev->msi_pos;
@@ -270,7 +323,7 @@ static int cf_check init_msi(struct pci_dev *pdev)
 
     return 0;
 }
-REGISTER_VPCI_CAP(MSI, init_msi, NULL);
+REGISTER_VPCI_CAP(MSI, init_msi, cleanup_msi);
 
 void vpci_dump_msi(void)
 {
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 07c7071d0a17..7aaf015f63d4 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -368,7 +368,6 @@ void vpci_deassign_device(struct pci_dev *pdev)
         rangeset_destroy(pdev->vpci->header.bars[i].mem);
 
     xfree(pdev->vpci->msix);
-    xfree(pdev->vpci->msi);
     xfree(pdev->vpci);
     pdev->vpci = NULL;
 }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 08:22:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 08:22:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180115.1503351 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWVY-0003x4-2G; Mon, 08 Dec 2025 08:22:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180115.1503351; Mon, 08 Dec 2025 08:22:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWVX-0003wx-Vx; Mon, 08 Dec 2025 08:22:11 +0000
Received: by outflank-mailman (input) for mailman id 1180115;
 Mon, 08 Dec 2025 08:22:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSWVW-0003wr-NB
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 08:22:10 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fc32cec6-d40e-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 09:22:07 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-47795f6f5c0so26452025e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 00:22:07 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d353f75sm24496046f8f.42.2025.12.08.00.22.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 00:22:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fc32cec6-d40e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765182127; x=1765786927; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9yK201ByNyyOdetdJF9IJ8QIIYYBRxZ8znqnN0c3/C4=;
        b=JjyIHjwS9lI8NDC4wJ/368+uzcXy5c4jevDhxsWAaxDf8FHggBS4YIMWdfyfYNtN2A
         cmqCf0LC64HII8Zu9Fz+b/5ZnpsFB7uQ5iYEjwwnWfdQI33jlbC9gUNyyGpaSNTbxUzr
         ZbVRTX+RD7PgQpyFki0LtvHN9FCEIjewDYj+4+zfmdMAKVPI3NTvE2HSDehczGezxLNb
         oglf6PIQV0wmMZRP5zyK+bH5AHQD00dDfxj5qt4l1/999M9xjUQeBvZujVjbry/ic8Pl
         8AFsK+CQIsLDja0M2C8zEmw1iWJn/wjxqwwWNEoD83eiXY1JD+ECNZpyDInun88/JDSn
         2tWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765182127; x=1765786927;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9yK201ByNyyOdetdJF9IJ8QIIYYBRxZ8znqnN0c3/C4=;
        b=rcmSh3FkEIoOvN9dFtnLkj2uR0c78nBXaz4t2ORYQZhDmZNRatmMscz9FNDkE8Y0YC
         ZeIT39OoLGaYrIXNcOpm1gbHum0s6ONN/yK4epK4g+sSTMjjlavcoGfFl/lte3qNxJsE
         6dC8slQAutr7laulAlAjxMk0xmzOWTCRdk6GmxILJ7Zc3++LKx/MCaV0kUyPbNrbX1kU
         1HNMgQq7xS44P85fxZP52oDP4TQ0+/DFISbewU2WCjLblaye4QRKTYwXt1lIji/Alu+9
         IukXCsc0kDIlrdPmdSKteIoR5uywSFQdu4tDItz751+h7dk+ZcbzGpFizlvY+hkSuBuF
         CcDQ==
X-Forwarded-Encrypted: i=1; AJvYcCWyxSTzmnFJ5OCL0oa+oiUn8w1SyKx0Q0UDP2dDz83dXhEgCznAIWDw2Ii3ap2wiQrZAdn4mKr6bQk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw3cG3Rv+jTIsJtHiCbOXOxSpTWEysuL1W2CTcJA8SFmo+ivsMO
	FPheqvkQkXlEBAEwX6RwT2XDKxPZk5Ve2ciF+smbeNZAxKFLmbjRg5fovJKWti1u0w==
X-Gm-Gg: ASbGncum/qeHMtxTu7WoEpzQNIz1C7B4QmmDhmCR28peOd64xHVlxnNmMdmAb7uJAha
	21dwEZP2mApCMUpcHBRH0gpto6BD8PHL4ieRWhiwaVAF3CMRyZtKvabHHwYvn/g+bfmAlkiplZU
	vgBxuE5MQLfGPP6DXO9LQUB/HE8GUq5A+sXddVr5gfvqJOTsOUeWcBNaRi9Kc1YDK/8oVnCesIg
	zoiCZaCgUjmh/4KYIQjW5S+1UaDSptkHHlNxAkX68t3w74ca35z/HTuk+zDUlxVIunpyM+rVxqV
	4uZLhXZwhVEYBj0ojrbAgtT937t/VgTOJSlVtMJizoqhWOTyaY/cw6Fwpnh80/wIMOcvokQvMKh
	boq/Y6+MkmJW9Rhmjw97jSqf5BlgaTsUN56b9LGvCOFP16LAYdnH5MPjOH+tNJ5SlLYab1+dOQh
	OR1a4bMemLtN6SKcGCc5hPDINjtdvrf9D/DcJAPaSfCAAI+uHAByHQ5IQcWXOx+hWjU2fGvaGTP
	hA=
X-Google-Smtp-Source: AGHT+IEC58WWkPpLAzvlNO120X7t3ZlXfbBwN6uepFUUIxLnGmRN8nORovA3SWXd/Q2KWgQWF3aJ+A==
X-Received: by 2002:a05:600c:524f:b0:46e:506b:20c5 with SMTP id 5b1f17b1804b1-47939e282efmr73345165e9.26.1765182126891;
        Mon, 08 Dec 2025 00:22:06 -0800 (PST)
Message-ID: <c18468ec-fd9b-4d28-a210-68962b1d81c7@suse.com>
Date: Mon, 8 Dec 2025 09:22:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 1/2] Do not attempt to workaround older binutils
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Frediano Ziglio <freddy77@gmail.com>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org, Frediano Ziglio <frediano.ziglio@citrix.com>
References: <20251205160942.46694-1-frediano.ziglio@citrix.com>
 <20251205160942.46694-2-frediano.ziglio@citrix.com>
 <ac0a0539-572a-44a3-a2ee-b56a77e69794@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ac0a0539-572a-44a3-a2ee-b56a77e69794@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2025 18:44, Andrew Cooper wrote:
> On 05/12/2025 4:09 pm, Frediano Ziglio wrote:
>> From: Frediano Ziglio <frediano.ziglio@cloud.com>
>>
>> Older binutils versions do not handle correctly PE files.
>> It looks like they could work if they don't produce debug information
>> but they mess the PE file in other way like putting invalid
>> flags in sections.
>> Also different tools will complain about the format (like
>> objdump and strip).
>>
>> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
>> ---
>>  xen/arch/x86/arch.mk | 7 -------
>>  1 file changed, 7 deletions(-)
>>
>> diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
>> index 16368a498b..10eb8e4292 100644
>> --- a/xen/arch/x86/arch.mk
>> +++ b/xen/arch/x86/arch.mk
>> @@ -88,13 +88,6 @@ EFI_LDFLAGS := $(patsubst -m%,-mi386pep,$(LDFLAGS)) --subsystem=10 --enable-long
>>  LD_PE_check_cmd = $(call ld-option,$(EFI_LDFLAGS) --image-base=0x100000000 -o $(efi-check).efi $(efi-check).o)
>>  XEN_BUILD_PE := $(LD_PE_check_cmd)
>>  
>> -# If the above failed, it may be merely because of the linker not dealing well
>> -# with debug info. Try again with stripping it.
>> -ifeq ($(CONFIG_DEBUG_INFO)-$(XEN_BUILD_PE),y-n)
>> -EFI_LDFLAGS += --strip-debug
>> -XEN_BUILD_PE := $(LD_PE_check_cmd)
>> -endif
>> -
>>  ifeq ($(XEN_BUILD_PE),y)
>>  
>>  # Check if the linker produces fixups in PE by default
> 
> Given the practical breakage, it's clear that noone's using xen.efi
> generated from toolchains these old.

Where are you taking this conclusion from? The description saying "putting
invalid flags in sections" is pretty vague, and doesn't clarify whether the
result is actually unusable. I've been using xen.efi from various pretty
old tool chains without any issue. I may not have done so recently, but if
there was breakage there this would be a regression on our part then.

Jan

> So, while it's not completely ideal to be "dropping" xen.efi on such
> systems, it firmly seems like the right thing to do overall.
> 
> EFI support is still available on such systems via xen.gz + MB2.
> 
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> 
> 



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 08:24:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 08:24:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180124.1503362 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWXN-0004TM-Ee; Mon, 08 Dec 2025 08:24:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180124.1503362; Mon, 08 Dec 2025 08:24:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWXN-0004TF-BN; Mon, 08 Dec 2025 08:24:05 +0000
Received: by outflank-mailman (input) for mailman id 1180124;
 Mon, 08 Dec 2025 08:24:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSWXL-0004T7-Tw
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 08:24:03 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4057c628-d40f-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 09:24:01 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-477b1cc8fb4so28769455e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 00:24:01 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4792b0d5e55sm171221965e9.2.2025.12.08.00.24.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 00:24:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4057c628-d40f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765182241; x=1765787041; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9cVz364wwFzNDFd+ij7Q5G47UpEExoPMk5rG6P3aVhk=;
        b=alBzD1WZ818PvWS1ebW6dIZ46t8RV9fYDOlGW6EWaf6hLXJKXjtK85b1EC0MYLTgYx
         c9AwvzPb1yXQfD2v0Q+CvVfckrODXA/rWg9+6eix0kCDh8ruz67JvWyLNBs8pCxrYwn7
         T5B1E8yYxwwT3IeLvLX2Z5S4LUJ6vhdW8rRcVYk4D5iOB03xm47CzcGEtKXqvmj5TrhJ
         6mqV1MJq1KJJBme1ue/0UbXP0w1H7Os1K+DAgggDXD5vtyTTwiSDlgaBkGSNLLjBCLTp
         tOBKH+uNRg12HF72yw620oSLMFbXoedDwWQkz7RQFdRGiELL8AHlCIiyoE7e2kRFwk6w
         SkJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765182241; x=1765787041;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9cVz364wwFzNDFd+ij7Q5G47UpEExoPMk5rG6P3aVhk=;
        b=V9l7/lPX+OZ4IKfCcsP+TcKtljcYslbwll+d/UEFVZvXMmlI5HMLZUcMvYPsElDOzU
         b4/x9wJMuXIRcH0yjfiAaZCG6fWvIfhXeIaA7yi+o5ogd/N/xpQdYDoTrR0Q9r672zaS
         nuUmvDPE9PDaKSv8MyoJpD88pslStSIKpftaErlNKCRj9WtPOrSwtZ+0W2YKOrmyM3Yr
         AIl6fwZAV4WIS8iWgDYa4Z0n+AatRKtyf3WeXkQ+oEMoBuv3BUjzB9vLWNvAk8tVtlyX
         SacrPRHvvTsnqzCUZyJvNwlfuf6bZtKYwYrykh5ap5pxU4LJsNbLFqBiojxxeCE04XL+
         m+9A==
X-Forwarded-Encrypted: i=1; AJvYcCX2BW8nvxwEKj+BxhG7ZptzU2GSd0NeJMuIwr8SOutnvfO0DSJhMNyzscoXrpOeHd49YhvzynjR7uc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyyrd1C/Al6j1oQeQHscNoMfrKYxB1Qs5w/snF2MG8fbakrOV/F
	PwcfYOdo5SCWVAukY8ughuFicAGGbVemQ8pUEuMqhNK15gY4EOFDgoDPKyo9zkZOeg==
X-Gm-Gg: ASbGncuV1AC4bqoEfl8mWVnjCATnkDoRA71pLLwOXjzrcirZFfNQfuxaQQTYxQONitO
	n183PfobySZw6M5ITMR2bAKcSRJqEmOqGNA4pyrYvbLYrNUilq2UP7SPTK0Q8xEFWzKcpD7x6xP
	oMeMko4tAWKhl7jIGVD2uM72Y23QILY5WsPZIrrpflSPNcOcbLjRbOOoIQ+oypa+3KUpxtBzXB6
	hVGdbI6Gx3AdFQNN85Sv7YA6EdAXRQpiGhz/httoiDcKURPjnWrMSfw7K6zJhAWLLR7eYBAO4vy
	uzdVAzPo/lTFlkEzga3iyh9yqB8hx2d1H0brhTspfHRO9keR818q5a8jNYx/BSrR/Xxq+nM/2j1
	9suLsdsD0v53hJOj9RDxxlwZGsZRosGCADAMfAdGP8zAqNlDMUxckRE1z81QPqvk1R/BQEqKlt1
	aUAj9LlY3r95MjwvOMrEPzlfZh2YN6W+FTmc86CNtQDpREbeG6+koH6vSkf78vB1LcawKbQr4Hc
	mo=
X-Google-Smtp-Source: AGHT+IGD4mvri4xzbPSYVpIjuYDmkxRxbuiFMDlKOJGJBk7iAg9Q2KErteqGRxQ4azy2pNmTxnKfwg==
X-Received: by 2002:a05:600c:3b83:b0:477:7479:f081 with SMTP id 5b1f17b1804b1-47a6e4c0fb2mr65850795e9.12.1765182241297;
        Mon, 08 Dec 2025 00:24:01 -0800 (PST)
Message-ID: <3d8f0224-de48-40cc-8341-1cc4aab1b9a4@suse.com>
Date: Mon, 8 Dec 2025 09:24:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 1/2] Do not attempt to workaround older binutils
To: Frediano Ziglio <frediano.ziglio@citrix.com>
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Frediano Ziglio <freddy77@gmail.com>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <20251205160942.46694-1-frediano.ziglio@citrix.com>
 <20251205160942.46694-2-frediano.ziglio@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251205160942.46694-2-frediano.ziglio@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2025 17:09, Frediano Ziglio wrote:
> From: Frediano Ziglio <frediano.ziglio@cloud.com>
> 
> Older binutils versions do not handle correctly PE files.
> It looks like they could work if they don't produce debug information
> but they mess the PE file in other way like putting invalid
> flags in sections.
> Also different tools will complain about the format (like
> objdump and strip).

As already alluded to in the reply to Andrew - the above doesn't make
clear whether these binaries were in fact broken badly enough to be unusable.
As indicated there, my experience was that they were nevertheless usable. In
which case I don't think we should take such a measure.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 08:25:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 08:25:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180137.1503372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWZ3-00054r-T9; Mon, 08 Dec 2025 08:25:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180137.1503372; Mon, 08 Dec 2025 08:25:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWZ3-00054k-QO; Mon, 08 Dec 2025 08:25:49 +0000
Received: by outflank-mailman (input) for mailman id 1180137;
 Mon, 08 Dec 2025 08:25:49 +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 <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSWZ3-00053h-AM
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 08:25:49 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7fd5de5a-d40f-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 09:25:48 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-42b47f662a0so2571901f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 00:25:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbe8fdcsm24588603f8f.6.2025.12.08.00.25.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 00:25:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7fd5de5a-d40f-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765182348; x=1765787148; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2liWEgwaFy40M3UoN6VqRV3SWRFz6UKB88Oxkv2TA0w=;
        b=PGhSuQA17SwpV7JMdiB7n7CKDIH00DgEqeGCadit24AZYTmwwUOs3IT+KMeKym06c4
         DCTfKl+ll+C3g09HZdx+7PfUxDdAZILBTWBeL3f1tmOHQLysPt3tlKtgkV1PVrQR6Vxa
         CS5xihbMJ8o0EZzNmaWNCHbss5MbfQ5IjnOiKpaEmiH4l58WeXZ6C8n2u1V1URVq9gyV
         v0tqwHUK5GnH9toBpAZXNrnBSAaH+NlVbP90xbhA8Zfe1ogDqPi0kIChKgkAe4Eu1xEo
         DTuqt3gIARaYaEZIKHe9dsUMvKOMsj/Gd1DAqYiwkQV3F5BgRaUF+KxkDGTjKroYKTMU
         zyxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765182348; x=1765787148;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2liWEgwaFy40M3UoN6VqRV3SWRFz6UKB88Oxkv2TA0w=;
        b=Jj62wGgy4StvlKt3EyoIb4lEWKSy5/sGSWVEtbN31EZH2gIdq0J+giz48Mv4ZLVBLT
         nN9W6sDqKoDNE0LBDmI12Ot/rtgGk3RwRWkGsbWcOysB/NU6ej1v5fL/VlOaEO9kxftt
         FU26QrG3uEbu/UeNvXVrCcyXPhidnJPR2hLJz/7+Y5NLxXZG8wB94d5Qu0XnaCX1kt9p
         QYjBg/8CbH0jLb0/aBxZFaSQX2K9YNxYw3u3Y98ExnzVJv+SLbXGAz+DpzW0IxUSz/Yq
         ZXPbm+8U37vD4zNm94KDfBr6BeYkuh+O9Htu5gdx7UHwR8pbpD+UIVHC/lXix4DiavKX
         v28Q==
X-Forwarded-Encrypted: i=1; AJvYcCVSAgjRQNv/eWoZ0QBbjyzXxEgzbrAEqWmgqaMTyaqkUlzn7Pt8rJpFOP95G9iC/ZQd2ZVb0rkSZoY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzg7Hb7ImAdyq+DG/nlzj2FJnlN1vJJLU2s53ZARf2TZbSt2UFZ
	LXgnCC2TSiG7L2YTUq1BkzpBK1s5RyDDyTUCstE3xnYG5j4iCGI7bUHERJwlud6lPw==
X-Gm-Gg: ASbGncukVUGAhk3TMWCiKQ+cyQnWzejlmMCeAhW2igXrlBi19THfSM48CLhNVM6R3/v
	l1lKCekeQC3aKOeS7jMorrbbrv4TUyOFJYZhvunlum+joggR0jKqDAaID5pPK1K06NbUxIlfg2I
	ohzadrCNo2G9n6ORD/3lWxYXN754YGGonGADkIy77ldvV10SrBh1Kh51phivcqyKWRM/1UfKOol
	jOdjfU9kjh/+B0iW2/dg17hLH/hmAacRxtfpbCJUJDqjXBVpli7N95ZOMDufAjj+ntTy6wr0wwX
	KpQGFqLG9B/0Dv+Qxp9PaYV3g9ceKnRAz3OssGLDpHAqpypN/fWJWLQzoCIzOmFjbZWJeVouQ/v
	xt2U1UAV0omSp1F8wT8DvjZg4rC2GnZLRcc/sZzkifckAApzLTqZbo9e/KDiFtfwJBNjZVueyBA
	hlBmV425oEUzpZynJecrwnEGfo2D2TzqGyzrZj7njK7TOZq+RpEGaVaHwp4D5u6c95bhNy9DllN
	vo=
X-Google-Smtp-Source: AGHT+IFHgQwWbNupnQHA0eskobloI6jLVuTEA9TQCzvQBkn1DYmEYMuUVPbcVIU8ZBl3nAhntDEUuw==
X-Received: by 2002:a05:6000:2404:b0:425:86da:325f with SMTP id ffacd0b85a97d-42f89ef1876mr7219678f8f.27.1765182347784;
        Mon, 08 Dec 2025 00:25:47 -0800 (PST)
Message-ID: <4fb15575-cbfc-4842-b48b-4113fe658137@suse.com>
Date: Mon, 8 Dec 2025 09:25:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 2/2] xen: Strip xen.efi by default
To: Frediano Ziglio <frediano.ziglio@citrix.com>
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Frediano Ziglio <freddy77@gmail.com>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <20251205160942.46694-1-frediano.ziglio@citrix.com>
 <20251205160942.46694-3-frediano.ziglio@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251205160942.46694-3-frediano.ziglio@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2025 17:09, Frediano Ziglio wrote:
> From: Frediano Ziglio <frediano.ziglio@cloud.com>
> 
> For xen.gz file we strip all symbols and have an additional
> xen-syms.efi file version with all symbols.
> Make xen.efi more coherent stripping all symbols too.
> xen-syms.efi can be used for debugging.
> 
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> ---
> Changes since v1:
> - avoid leaving target if some command fails.
> 
> Changes since v2:
> - do not convert type but retain PE format;
> - use xen-syms.efi for new file name, more consistent with ELF.
> 
> Changes since v3:
> - update documentation;
> - do not remove xen.efi.elf;
> - check endbr instruction before generating final target.
> 
> Changes since v4:
> - simplify condition check;
> - avoid reuse of $@.tmp file.
> 
> Changes since v5:
> - avoid creation of temporary file.
> 
> Changes since v6:
> - install xen-syms.efi;
> - always strip xen.efi;
> - restore EFI_LDFLAGS check during rule execution;
> - update CHANGELOG.md;
> - added xen-syms.efi to .gitignore.
> 
> Changes since v7:
> - move and improve CHANGELOG.md changes.
> 
> Changes since v8:
> - rebase on master;
> - clean xen-syms.efi file.

I.e. not addressing my prior, more fundamental comments.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 08:35:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 08:35:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180147.1503383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWiA-00072v-Ol; Mon, 08 Dec 2025 08:35:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180147.1503383; Mon, 08 Dec 2025 08:35:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWiA-00072o-L1; Mon, 08 Dec 2025 08:35:14 +0000
Received: by outflank-mailman (input) for mailman id 1180147;
 Mon, 08 Dec 2025 08:35:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSWiA-00072c-2B
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 08:35:14 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cff62d71-d410-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 09:35:12 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-47775fb6cb4so34523975e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 00:35:12 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbfee71sm24438972f8f.15.2025.12.08.00.35.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 00:35:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cff62d71-d410-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765182912; x=1765787712; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3HpQPNbqszi3NMfjMYiRKpGVgHT9Cl9IqmomIJKoc9E=;
        b=QNqkQOtlbTsax+/bROpiJyBpNBj4Z/QCqJkTtLzSMpp9ZADU0fe0wkm+9S8plHAHNB
         Ju5N4rlEL6nOMbEx2RLDWm40BJiLOj+lcPlwk2Psc+QpH0jKqckKokpj0/+dcUvEajE/
         O1NCeJ2WtJ4Bpo0LBqJA7hOvh67Fnk/5QYJ/pqo/D+T+3imDskxnX2ohdAB3aiD8p4eE
         IIHV7vLUSP7YRU0T4aBccFDMtsxccDOcN0Zm2MPRJnf9IpdqNA7SjYUfLfrKyIsm53Td
         rEtEdmFUOghrhxbDAB9hASxfkPKPOqnUEyHcDQTsff0yzw0ilDnkyPfjFC7/Z70ezVT0
         NW1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765182912; x=1765787712;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3HpQPNbqszi3NMfjMYiRKpGVgHT9Cl9IqmomIJKoc9E=;
        b=LmsC8KT4T8n2gvpVgdbQ2nRhKRUcq73bI9/b8gaFjzhKocLJC0VSl108DPdoMolUHe
         eOY6H+rNH/a+kiB+RUe1+CEWkkCZxb92knWgGJ0C3FAn5smmBMfpLNMkTsauZ+QL6qBu
         KIzwX82PVSI8etTwMudsG3sX282t9b0P8si06i13KvrjwuYDeRTQ4TvOOviLAkKqG9SM
         +TBaH8GWtHV9kP+9N2QtDQGTy/OaRIAL+VLl+BPs35OnhvktprZl90NI48BU8VGHcDHC
         7IkF+ysG++Rr6W/Kmg91WlQ40jkoYsQaxX8sgimf6fyE5UT116IKbR1GtUPaIMsH1haB
         0BFQ==
X-Forwarded-Encrypted: i=1; AJvYcCXl9Sfz5Mh+8npEAXW5dD88AE4w4B2V4+ZqMoYELljyM7Hlirs5djAuhyjUs+gkYrhCdAsjLHD7kcc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzxEohiwmyuHz2DzcnmZULtI7PICNc/PPKnNeWR1CIgDhotbbRP
	ZxCKOHsftoLH5zRVvXadlUTcQaGlE3alkxrMeQtHIbmGr8DP3WLHngxXRi+Cr+FSeQ==
X-Gm-Gg: ASbGncsbnqjznzRKkZL3vtGuhXi47AYoN1rnxjr9IKCvqRj37Xqcxv4W6yLWRpOyBeO
	huNkb80VooDzLghxTMCDDuzJ7AhqiAUO4PeoLGyfuArCp8ZKRW/aeVW2gMpckGccWvo+CbKc81y
	XH3f5KgFM37XBzQ/7nXAYUkHvNQ+fJzGRw6APZfRQ9oUFmz+NaHPOxlNFKRX/Kycsw8rD7q5GfR
	oymnzuGomKZ1NNOyPKBkBA2S812BlO9dtvSZ/WB9bT9vFTd1glvvC8FpKl+xuzXZh+vzToG1+yw
	iLJOBqxLNqU3ouwGKcykmqSnGDl/7JlT4EYTnYieY2He2QTT44/a7NlcjYVDymslfU+dStS3eiB
	2SlMQX//prelAZfWH1/oy+4JDlSeRkdfT1qkSPiE/1dWkUJLajyM1Ujuubjfklc7NzPps1nDEq7
	t8tf9LGq+p5kqx6IpzHQ0j5dVv+LZfvWFxiyrixZz6CD5F9M+xTxGMRWpSi8rv+Z0Ii1q8wfj+9
	6w=
X-Google-Smtp-Source: AGHT+IF1KnzP5hv59bEGBfcW2SLBgBDAUTPAzrmLeJLVMz/Jv2S+h8RWMKliSLm83qLgLffduzk5zg==
X-Received: by 2002:a05:6000:608:b0:42b:4219:269 with SMTP id ffacd0b85a97d-42f89f48476mr8045946f8f.41.1765182911711;
        Mon, 08 Dec 2025 00:35:11 -0800 (PST)
Message-ID: <bd53bc18-f2b5-4857-b06c-2674c799ff0f@suse.com>
Date: Mon, 8 Dec 2025 09:35:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2] coverage: extend coverage on .init and lib code
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251205193411.1368659-1-grygorii_strashko@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251205193411.1368659-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2025 20:34, Grygorii Strashko wrote:
> --- a/xen/Kconfig.debug
> +++ b/xen/Kconfig.debug
> @@ -39,11 +39,23 @@ config COVERAGE
>  	bool "Code coverage support"
>  	depends on SYSCTL && !LIVEPATCH
>  	select SUPPRESS_DUPLICATE_SYMBOL_WARNINGS if !ENFORCE_UNIQUE_SYMBOLS
> +	select RELAX_INIT_CHECK
> +	select DO_NOT_FREE_INIT_MEMORY
>  	help
>  	  Enable code coverage support.
>  
>  	  If unsure, say N here.
>  
> +config RELAX_INIT_CHECK
> +    bool
> +    help
> +      Relax strict check for .init sections only in %.init.o files.
> +
> +config DO_NOT_FREE_INIT_MEMORY
> +    bool
> +    help
> +      Prevent freeing of .init sections at the end of Xen boot.
> +
>  config CONDITION_COVERAGE
>  	bool "Condition coverage support"
>  	depends on COVERAGE && CC_HAS_MCDC

Please obey to the somewhat special indentation rules for Kconfig files.

> @@ -259,6 +259,7 @@ $(obj)/%.o: $(src)/%.S FORCE
>  
>  
>  quiet_cmd_obj_init_o = INIT_O  $@
> +ifneq ($(CONFIG_RELAX_INIT_CHECK),y)
>  define cmd_obj_init_o
>      $(OBJDUMP) -h $< | while read idx name sz rest; do \
>          case "$$name" in \
> @@ -271,6 +272,11 @@ define cmd_obj_init_o
>      done || exit $$?; \
>      $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=.init.$(s)) $< $@
>  endef
> +else
> +define cmd_obj_init_o
> +    $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=.init.$(s)) $< $@
> +endef
> +endif

If the objcopy indeed needs suppressing altogether (as Andrew suggests), the
unwanted redundancy here would go away anyway. Otherwise my (recurring)
request to avoid such duplication.

> --- a/xen/common/libfdt/Makefile
> +++ b/xen/common/libfdt/Makefile
> @@ -5,7 +5,6 @@ SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
>  # For CONFIG_OVERLAY_DTB, libfdt functionalities will be needed during runtime.
>  ifneq ($(CONFIG_OVERLAY_DTB),y)
>  OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section .$(s)=.init.$(s))
> -nocov-y += libfdt.o
>  endif
>  
>  obj-y += libfdt.o

Is this sufficient? Don't you first need to replace the custom objcopy use?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 08:37:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 08:37:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180157.1503391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWjx-0007Za-1h; Mon, 08 Dec 2025 08:37:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180157.1503391; Mon, 08 Dec 2025 08:37:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWjw-0007ZT-V3; Mon, 08 Dec 2025 08:37:04 +0000
Received: by outflank-mailman (input) for mailman id 1180157;
 Mon, 08 Dec 2025 08:37:04 +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 <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSWjw-0007ZL-6l
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 08:37:04 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 11c4a2d7-d411-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 09:37:02 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-42b38693c4dso1907576f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 00:37:02 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbfee66sm24215019f8f.11.2025.12.08.00.37.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 00:37:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11c4a2d7-d411-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765183022; x=1765787822; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1dFM/rd/iM9NqVQpFftZFyYPXDptPEQILXn6lxOzrug=;
        b=HKrxIWZ6sphAM9bnGqtQ/3p2bojh/kBZ7dRw1p9wIO1gStBIWJ3VA08HPh44sQmIKw
         UKiifwaMYfjyi126i/Yn0HekSqMbHyBF+ZtPvrR1srSkFiYXArlq3kiXBQtg0DmIQVl7
         NM0iISWo0NAglJggOr/fpjkvhhmXK2k9Q3+Tfx6IvM7EkyrQRuHFhawFK19esWyhkLu7
         Rufcnicsp+/zeUD0SV1a3X0+XWwxtijIfwGdjXkxCpfkuW6S/cAo2Vn/5OZhwI0QRwiS
         grxZUOlxZLE3Q99WLcz4xll9g1xTK0H4YGjZe5z9ZaW7fqOyIq8ddV4SK2lP1nN+1NBB
         /3KQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765183022; x=1765787822;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1dFM/rd/iM9NqVQpFftZFyYPXDptPEQILXn6lxOzrug=;
        b=BBZPgwNKoETvaJhn67YKBHhaCgkFBtgQEuiWFfl/WR5Pkctc9BCGecvyiYWvbalL71
         AOZsfGYV/IxseC9oQz8rL4CimwRlPZDsYUNdXXMotcoeHa1nvErUTTqUiWnkTUQEeWxk
         HKDH1gFsGyr3rE1uFUw6CPly3U5N834nuSLGGLkxhrnBAK93ySytbW8ec2g+In3SXHtF
         j6SQl42q6/Mt1dmJWc97PbhBr8QGi3o7UYKoiXuNl+6CXH/R0sxtvIhWLBeIwo0VbM8a
         ev3CPxi6/s4OnaVsRzwOVHvGJsgei/kKmTBoRbkJfdhThCJFnBXfQSkGEVSnpEhKjYDx
         g1Zw==
X-Forwarded-Encrypted: i=1; AJvYcCVu75HHhBlqDCMSGBeuzgBUaDrD8CGvIcSW4CQ+rBhYMhRaRGJArC3V8vYnS5YLXwxsIpV+arnOhoY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxVoCaoVjEzoPt3s1DaXthmSfyi9NZ4RNBdV6A8/7qk3s7XcExF
	4tC8wY3nNxWz4Kii2nMGMqaXuwJIJWsDq7s3Dt9E5r+r/axBL87eVYTqxMJ6xj3SNA==
X-Gm-Gg: ASbGncsfLfAOrcKi3eqQvfopGaiU2WhoNyGHlr+mhtotuzU0e7wAdVZtWn/+Lth0GOB
	nU5NVrs0KPBhIPN2EsgELC8U/1kjN3M6ndRnX5GyktXvjkqmyvr/ym+FR2IhnCa3XDAZmwYFmdr
	hBsv69igojAfbrKRiQUTNJSFg72MLK00x/0h0Q+QSvqzXxoEJj3EvL/J/wbnsEuMkisEDsP3XuH
	cOryZe40nqjR8WoNcn27LuneY0PuKSQf8LJrfw3RFFGVchn84OM6X/TzRaIzH3lvq7RlPsZkiyj
	yb9GKv1uGlj4egD7Kj/GAGafXzC3x80kfhQ6ExkAhzxB4WUPVna1wFCw33oTyJOeOb2r/kUZHFf
	x9Ebl/bLidfv/U32T0ew+zaTC5EwOjossnX24gIagWlLm1EIvqFZrf7Hmqe4zRecAQiszq3xZ2G
	iUfV3jn1Ky3CZOnEr0x0aKZFwldU4Ax/6/xJ5ZcBTJSCJPMviS1pTl2ZOuTyQoMWruKhnEGKmj7
	Q8=
X-Google-Smtp-Source: AGHT+IFl+D5evpBkc7jZ21P/MQTRyyN4dFhgSSdsTNfYGfQW1lmBu/wmgFIsfL2s5cDeyDUDGOf0LQ==
X-Received: by 2002:a05:6000:4028:b0:42b:4177:7136 with SMTP id ffacd0b85a97d-42f89f63449mr7475622f8f.32.1765183022143;
        Mon, 08 Dec 2025 00:37:02 -0800 (PST)
Message-ID: <6e09b3db-6e9a-4fca-808a-01e3db5ccd83@suse.com>
Date: Mon, 8 Dec 2025 09:37:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2] coverage: extend coverage on .init and lib code
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251205193411.1368659-1-grygorii_strashko@epam.com>
 <d9a632d1-8587-45bb-bc13-8dab8d346cb2@citrix.com>
 <4fc76270-98e6-46c4-a6a4-d73772e079c9@epam.com>
 <483d50d9-a076-4698-bd14-28afabd5d369@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <483d50d9-a076-4698-bd14-28afabd5d369@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.12.2025 15:15, Andrew Cooper wrote:
> On 06/12/2025 9:10 am, Grygorii Strashko wrote:
>>
>>
>> On 05.12.25 22:00, Andrew Cooper wrote:
>>> On 05/12/2025 7:34 pm, Grygorii Strashko wrote:
>>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>
>>>> Extend coverage support on .init and lib code.
>>>> Add two hidden Kconfig options:
>>>> - RELAX_INIT_CHECK "Relax strict check for .init sections only in
>>>> %.init.o
>>>> files"
>>>> - DO_NOT_FREE_INIT_MEMORY "Prevent freeing of .init sections at the
>>>> end of
>>>> Xen boot."
>>>>
>>>> Both selected selected when COVERAGE=y, as getting coverage report for
>>>> ".init" code is required:
>>>> - to bypass strict check for .init sections only in %.init.o files;
>>>> - the .init code stay in memory after Xen boot.
>>>>
>>>> RELAX_INIT_CHECK/DO_NOT_FREE_INIT_MEMORY could be used by other debug
>>>> features in the future.
>>>>
>>>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>>> ---
>>>> changes in v2:
>>>>   - add RELAX_INIT_CHECK and DO_NOT_FREE_INIT_MEMORY, those are two
>>>> different things,
>>>>     both potentially reusable
>>>>   - enable coverage for libfdt/libelf always
>>>>   - enable colverage for .init always
>>>
>>> This is a lot nicer (i.e. more simple).
>>>
>>> But, I still don't know why we need to avoid freeing init memory to make
>>> this work.  What explodes if we dont?
>>>
>>
>> It will just crash when coverage data is collected.
>>
>> First I made changes in make file to get .init covered
>> then I hit a crash
>> then I checked %.init.o
>> conclusion was obvious.

Maybe in that context. In the patch submission this isn't obvious at all, I
would say. Please add some explanation in such a case.

>> For example:
>> objdump -x bzimage.init.o | grep gcov
>>
>> 0000000000000010 l     O .bss    0000000000000028 __gcov0.bzimage_check
>> 0000000000000040 l     O .bss    0000000000000040
>> __gcov0.bzimage_headroom
>> 0000000000000000 l     O .bss    0000000000000008 __gcov0.output_length
>> 0000000000000080 l     O .bss    0000000000000060 __gcov0.bzimage_parse
>> 0000000000000098 l     O .init.data.rel.local    0000000000000028
>> __gcov_.bzimage_parse
>> 0000000000000070 l     O .init.data.rel.local    0000000000000028
>> __gcov_.bzimage_headroom
>> 0000000000000048 l     O .init.data.rel.local    0000000000000028
>> __gcov_.bzimage_check
>> 0000000000000020 l     O .init.data.rel.local    0000000000000028
>> __gcov_.output_length
>> 0000000000000000         *UND*    0000000000000000 __gcov_init
>> 0000000000000000         *UND*    0000000000000000 __gcov_exit
>> 0000000000000000         *UND*    0000000000000000 __gcov_merge_add
>> 0000000000000008 R_X86_64_PLT32    __gcov_init-0x0000000000000004
>> 0000000000000012 R_X86_64_PLT32    __gcov_exit-0x0000000000000004
>> 0000000000000020 R_X86_64_64       __gcov_merge_add
> 
> Aah, we should exclude the OJBCOPY too.  That's what's moving
> .data.rel.local amongst other sections we target with attributes directly.

Yet then do we still need to suppress the freeing of .init.*?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 08:45:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 08:45:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180171.1503402 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWs3-00010n-Qs; Mon, 08 Dec 2025 08:45:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180171.1503402; Mon, 08 Dec 2025 08:45:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWs3-00010g-NW; Mon, 08 Dec 2025 08:45:27 +0000
Received: by outflank-mailman (input) for mailman id 1180171;
 Mon, 08 Dec 2025 08:45:26 +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
 <SRS0=RGh+=6O=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vSWs2-00010a-34
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 08:45:26 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3cfdaa85-d412-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 09:45:24 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-64951939e1eso270564a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 00:45:24 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-647b412146bsm10377115a12.23.2025.12.08.00.45.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 00:45:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3cfdaa85-d412-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765183524; x=1765788324; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=jo3QdWDfJ+ZnAkWGcPZCfKMq8dksu0UuN4R3qny3vzM=;
        b=mk8GgvmNgbxVCHB3YJQLeXXe0krBFMUDGQgZCzZ/EYoNi8MrPCk4LrUgzZjFfqWpRp
         Acjp98CaDtvEDLUu6McTv33OJ6E2Td9pB+sZMW5KX+Y7p8djOGtu0Koitx+FG+cOVzpi
         iJBoE+oa9XZmoBWq8aYmDoO+cv/VgwNVS8jqxzdMcZ0IXkMEdTj5QsPx3D/zGVOmhSqV
         TTuunSWxhpUdOp+yOmrf5dpWU8YFdmIl9nLf8DiF85Ic7DojvIbrPSdxJMugcxGgbyGQ
         Zs5AkYdM+v8L5lD6yYyaBShFfKRhuivCTUO7aMrTB8wYj+QddTWd0ds7ing62PGw3dCj
         KvhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765183524; x=1765788324;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=jo3QdWDfJ+ZnAkWGcPZCfKMq8dksu0UuN4R3qny3vzM=;
        b=bF1PTE2ffzsCwEoa2pnHwZj/uoMHkuCrYOH/UXoBkH/YSr+CQOLIW7TqQOchUVz+7A
         mv74rVXfXqd73yUefUYBFJDAugcJEQfUfOgOPA4Zfpm/aNEozpOH1sm3DDOB06HtIn4e
         o16cly2jkiIKRG0m8RH4yAJ4ACY/Pp7pxTy1NSrP69rK5iWY1evRUlLFp5JtSQf0tRyj
         BdyJyKQ7EuSrrt6MUGYVlCUEvfHBiCjZu81fhleBSWebi7A9qNCWteIP2RVRBnC0HzE/
         nW+x/Q5SFnAH+K4DcPpzilGgFNSTyiH5ednJbb6pWrZDjN0VOSNGZZMjBFI1/4g4UmC7
         kM4w==
X-Forwarded-Encrypted: i=1; AJvYcCW0atOutreSLk1I4yqNiVJwfCiEQjfpOvZ2WpK/3HW0AQKWlV/TKG6YDTvS3Ty0DwjMwO6Ayn1zrUs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxze2ocOzsmrw72M9rSxOiIZB41OoPoIDB7Tz7RpSDEmuamGtI0
	+n6b2JzIu13aUV3oZ3Sd4sPtqm2sWT3nzFsdFuTijDY9WLVVIgzQTOnP
X-Gm-Gg: ASbGnct4LdRQ9pvv1DE59mucwZWSFwnhxMolmPfuoem+vD8fEyiKdlFl3VcdIBNCrZi
	XAT1ThzuqSlPHc9PXLDiEfFhYoXQAgJ4UmXN2dDj4kgrJ2QS+DHDKQVLSPljQDBhJjjWCopNZKn
	XsJbZsrGVG53ta/v2rrOT9t3We51az1FY/V9z/giL3Ba73+E1O3wHKktYAhZ43+nFiVklXz4MQd
	8Dh5mx2iHIO07EIXaimWzCbDDnc0JCSuC+I3mmIt1OTIyIEPugczyMQp/gpcDCL7zuYiGQ3tAoh
	g0gNy2aNEaDPUJNngX4rc5c6Q0CSddQDQu7aoYN8Fab5Mw8HRSbJRmUUQSnzgPKloW62H+haqRR
	JxyEGE+eu1mmk0xuw4e+l5h12n9U5UxmiydKsYDm9+fxAPDGwEDlTjh0pJsEAuTtnp1kEHfZbBz
	LIiFYHPyBIMB05fWBHpGPg9rfYwEtV/r7LSafcvbhI4abz3De5uWN7pzkQkfBv
X-Google-Smtp-Source: AGHT+IEUvDGQiVzHoDwPOxeRgMR7SroOBWgZGekwM2EQH7F+EcZLAGQKrq8DvUwPKrEUMjGUl+/Eew==
X-Received: by 2002:a05:6402:3485:b0:63b:ef0e:dfa7 with SMTP id 4fb4d7f45d1cf-64919c043dbmr5418782a12.6.1765183523813;
        Mon, 08 Dec 2025 00:45:23 -0800 (PST)
Message-ID: <4c818b01-bf97-4cae-882b-88f653f8a36d@gmail.com>
Date: Mon, 8 Dec 2025 09:45:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/3] arm/ppc/riscv: drop unused
 domain_set_alloc_bitsize() macro
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Jan Beulich <jbeulich@suse.com>
References: <20251128152218.3886583-1-grygorii_strashko@epam.com>
 <20251128152218.3886583-2-grygorii_strashko@epam.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20251128152218.3886583-2-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 11/28/25 4:22 PM, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
>
> The domain_set_alloc_bitsize() is x86 PV32 specific and not used by other
> arch or common code, so remove it.
>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> ---
> v3: no changes, added tag
>
>   xen/arch/arm/include/asm/mm.h   | 1 -
>   xen/arch/ppc/include/asm/mm.h   | 1 -
>   xen/arch/riscv/include/asm/mm.h | 1 -
>   3 files changed, 3 deletions(-)
>
> diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
> index f702f4a0d676..4c6cc64aa7ba 100644
> --- a/xen/arch/arm/include/asm/mm.h
> +++ b/xen/arch/arm/include/asm/mm.h
> @@ -313,7 +313,6 @@ struct page_info *get_page_from_gva(struct vcpu *v, vaddr_t va,
>   /* Arch-specific portion of memory_op hypercall. */
>   long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
>   
> -#define domain_set_alloc_bitsize(d) ((void)0)
>   #define domain_clamp_alloc_bitsize(d, b) (b)
>   
>   unsigned long domain_get_maximum_gpfn(struct domain *d);
> diff --git a/xen/arch/ppc/include/asm/mm.h b/xen/arch/ppc/include/asm/mm.h
> index a33eeec43bd6..e478291fdf55 100644
> --- a/xen/arch/ppc/include/asm/mm.h
> +++ b/xen/arch/ppc/include/asm/mm.h
> @@ -96,7 +96,6 @@ static inline struct page_info *virt_to_page(const void *v)
>   /* TODO: implement */
>   #define mfn_valid(mfn) ({ (void) (mfn); 0; })
>   
> -#define domain_set_alloc_bitsize(d) ((void)(d))
>   #define domain_clamp_alloc_bitsize(d, b) (b)
>   
>   #define PFN_ORDER(pfn_) ((pfn_)->v.free.order)
> diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
> index 9283616c0224..11e9f26bf0a5 100644
> --- a/xen/arch/riscv/include/asm/mm.h
> +++ b/xen/arch/riscv/include/asm/mm.h
> @@ -292,7 +292,6 @@ static inline bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
>   /* TODO: implement */
>   #define mfn_valid(mfn) ({ (void)(mfn); 0; })
>   
> -#define domain_set_alloc_bitsize(d) ((void)(d))
>   #define domain_clamp_alloc_bitsize(d, b) ((void)(d), (b))
>   
>   #define PFN_ORDER(pg) ((pg)->v.free.order)

LGTM:
  Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 08:46:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 08:46:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180180.1503412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWsj-0001XO-7Q; Mon, 08 Dec 2025 08:46:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180180.1503412; Mon, 08 Dec 2025 08:46:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWsj-0001XH-3K; Mon, 08 Dec 2025 08:46:09 +0000
Received: by outflank-mailman (input) for mailman id 1180180;
 Mon, 08 Dec 2025 08:46:07 +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 <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSWsh-0001X0-Qy
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 08:46:07 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 55d6c323-d412-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 09:46:06 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-42b3b0d76fcso2401626f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 00:46:06 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d222478sm23889544f8f.20.2025.12.08.00.46.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 00:46:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 55d6c323-d412-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765183566; x=1765788366; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BBORCVuX61x4kUoHG5ybt/Om9wvCAguzN7uvrLPATAU=;
        b=g0ij6wdfGAVKFisrSLMwWxlhFGBXkwKGmNBIgRs6bLh6idtTl/VKzbrb6OIRnz3TY6
         XzGBsLWFlsTIP9cluF9h330Pkh1OPMc3VsyOnE/KR6RwCL8AC525awZGCq+RZw09i7YK
         yirC2dAFf3ZwdCbiOvshr0b7jD4QJTKBl36dC38Mrp7YOyA7W5WLkieVjNgy7cgSmRGP
         S1QxxPCKbILXomQq6NZsHIaI/TkSwRBUBU63EVHC2UGK5fIj1kIwnK2cVxphNBk70LNO
         oEuCvyrMN4g+Npdfz7GvcPSFntql/hQAU0cbFqvA9w1UgJjxy2vJbUV7v8lftFavoRD1
         Kang==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765183566; x=1765788366;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BBORCVuX61x4kUoHG5ybt/Om9wvCAguzN7uvrLPATAU=;
        b=odX6S7N3YA2kiN1PDH8dzN+yWpAsgMorJQHxkaGc8BT4ITfvU55wZVbHNBGddQluuM
         sFIUzeH1oubpPcUYVRJnOYsUhbkOvyJ+48d60QI0pUc4wdohSfTQDP66po6PZh7EUZZ3
         RUbv2yvrECpnoxoA7QL61zkJtjrFkDDb81nFiHiQsQpop9EIz+dW4fJrKacSqZX8rGD/
         8cYIJFYvnwLZJuweW0bJ3C2GJRfpE0aVdYmVLmtB2f4I+tMv9lCHun2KYg8iMHYePGjN
         Ub1shnUzY+YPo5hRjTMcbPm3qa3fH+C6A+HlVjnilxKVwnV/DKOg1thnfxSPKk6ibYCS
         oykA==
X-Forwarded-Encrypted: i=1; AJvYcCXgjMTY3milGN8JVNmkX+qINygf7Q03KQrWVL41g+nVzHTW9kuOqgOqXeDK/VIbb9KzFzL1QwYLQgc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxgsQmSCJ4dWxABe7SyTer/lqfwCiq9sCaenLqdk9IRtUMzxrI8
	+6+4P+/66YrhTK5lLc3HdD1KP8Sbgyem5rmXhSgzI7CUBx1JonLp+05NIKjris98Ww==
X-Gm-Gg: ASbGncvXraLvfGLw19LNCqclQzWFz49uJYh9GfctrYBN1fz5i+U+9ASoOOeTlu3upcM
	Rtvxv9wE/j36yclPfFQPPf3hUiDMviVXs2rSc7eo799YZW1vUtxfoeKxENqWmVzeFcPlgUOUQIT
	sEm1uX4RQ4jnZrGWnwrtU9kaVtN0PMD/OTeE+EkNsLKmS0d/Fz+KRvVBT96nTWOlWTcfao5nyyp
	Og9WOfxCWoqf/iJr5UnbF+SN498bowkmw2+FrxaYuNbOJA+2y05OV9E5wnYuN3Rb9G+pnDBd8SE
	IxLRoC2KmH8jTjeW5fz0XX7UVAQ8y0+W3nJV9Nr5j9SKdqk6ZrPbCqZTXqgPYsvE8HyhT5LYE9N
	5TDJPxB1wW0yEGclHBZzSIuHb84CUNufDjC+fRpuUfYS4wvQAvifL7MNLKsdtg8cKVODsiGTYAS
	AnlqUahLR9EsqXmyVxIU9zDyw1ZvvrL2wi9CFzQsZO5tgn0/zqPxvkz1gUxDLDSa88ENyZ6yGZ6
	8o=
X-Google-Smtp-Source: AGHT+IEKFsGz0JAPGWv3tnmkvB5iec54susEzp8F3EqRjjmL7aMM6SWfMDdQ9UHR6MCPMcRDUOzx6Q==
X-Received: by 2002:a05:6000:25c8:b0:429:d350:802d with SMTP id ffacd0b85a97d-42f89f7f65dmr7033849f8f.45.1765183565769;
        Mon, 08 Dec 2025 00:46:05 -0800 (PST)
Message-ID: <32f54604-706b-4377-b59a-b287ef1afb3a@suse.com>
Date: Mon, 8 Dec 2025 09:46:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] RFC: xen/x86: Enable --gc-sections
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20251205222813.277164-1-jason.andryuk@amd.com>
 <8dce8443-5a97-42c4-b867-27b83415b3d1@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <8dce8443-5a97-42c4-b867-27b83415b3d1@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2025 23:40, Andrew Cooper wrote:
> On 05/12/2025 10:28 pm, Jason Andryuk wrote:
>> When linking to create xen-syms, add --gc-sections to garbage collect
>> unused stuff.  Relies on CONFIG_CC_SPLIT_SECTIONS
>>
>> We need to add KEEP() to the linker script in assorted places to retain
>> appropriate data - especially the arrays created therein.
>>
>> Something is off though.  In a test where memory_add() is unreachable,
>> it is still included.  I'm not sure, but I am wondering if it's the
>> alternatives somehow keeping a reference to it.
> 
> Yes, .altinstructions contains relocations against the origin patch
> site, which will cause it to appear to be referenced. The same will be
> happening with a bunch of other sections.

We will need to derive helper section names from base section ones. See
e.g. HAVE_AS_SECTNAME_SUBST as introduced by "common: honor
CONFIG_CC_SPLIT_SECTIONS also for assembly functions", controlling the
use of the --sectname-subst asssembler option, to in turn be able to use
%S in section names (available from gas 2.26 onwards).

I'd like to point out though that for the purpose of "x86/alternatives:
allow replacement code snippets to be merged" we may want to avoid
extending this to .altinstr_replacement.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 08:50:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 08:50:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180194.1503422 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWwV-0002dN-MS; Mon, 08 Dec 2025 08:50:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180194.1503422; Mon, 08 Dec 2025 08:50:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSWwV-0002cq-IJ; Mon, 08 Dec 2025 08:50:03 +0000
Received: by outflank-mailman (input) for mailman id 1180194;
 Mon, 08 Dec 2025 08:50:03 +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
 <SRS0=RGh+=6O=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vSWwV-0002UY-9b
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 08:50:03 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e22f0ad9-d412-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 09:50:02 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-b7277324204so724938466b.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 00:50:01 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-647b2ec319csm10558210a12.3.2025.12.08.00.49.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 00:50:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e22f0ad9-d412-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765183801; x=1765788601; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=PfV4JDQgRi+PrR/x1et4RbYjWBQ+L+bm7WIdnbZnoGk=;
        b=FCikUu6H7K0/pCBL9SfwR6RykC3zXEvSUky46t9uXwrn1ARQkkOG2DelWH9nccK0h9
         NfHnf61bc4/xV/njc8dVRD9RX//ChVtG53SF5Z/oc+USLjZgSUI0rgR27JhBVdXphY32
         phxYYGS/3j5pyzZVFTUrRxqBhd6uKs6innpeBxsa8pPgOeJApljvTjHvwt/9xRvLXi+W
         E+jkOEzy4yJhXu3DCmV8dnG0tB9a//ttaFvwrDkIMuvt3kHg6bhbmSF7I1TGVHkOZ49y
         Yh+UvwarzmiPjOEM7O0aX6A8PZ8mz4ibkzUsBMDxo+m5SS8qT5eM3TKnbhqxxisamJ6x
         zS9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765183801; x=1765788601;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=PfV4JDQgRi+PrR/x1et4RbYjWBQ+L+bm7WIdnbZnoGk=;
        b=wlcVxK7zqiyX2VMPgEkgjBT8QhZF1rvnvik4LIoMZROSnBhKQbTdk6jVcpvw7DtoC9
         EiKsf16LCp/nryPIWI148OSavASTyljeXw1i1Q9rCGXokIJFMnkDyn/0SRbNKiRY1EW1
         4mnHdHyMrYFm7rC4THoPGgdv5+4aIxtxnm7+Px89h5eHVACNWH6ydVHSgQd69HAquZ/5
         gEdxRM0ofFoUM8q9Xe6BXneZP5TluCkgRfBBvTr/daKhX1whjbegPnPUJcpiTnbI6R0s
         lruCoI3SOyFo/RDzcaOwF/G+HY0gOPl8WjWk+w54+aZ3z+1gQU8Hh2SrZo2fPykxq5Qw
         y/oA==
X-Forwarded-Encrypted: i=1; AJvYcCW28+ky87xr6aGE0gOBDsSWpH48rzQFgPasxR+EpBI1m6WWYeuLPS/vh6MjEIYXVRBCS2AMhAcQ/HE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzv5FWqSDwyA/WcYBW0djjzIpvYOb2KJAbZ6WgnExuby3rCjy0C
	j8z5zxSaa4vuZlFvcLygtHa+aplMMHrFGkLhgVbbIk6+D1eNtBW5hMN77eauevnd
X-Gm-Gg: ASbGncupSAIK4MZ0/UIecy8G0BRU99zY4L8Lf0Bsf7aGndI+31tbVy8Iqu63OK6pF8g
	MSYuEtJlKgkxb4yP+VBKAaIfBdkzChnWBh1E44Xb2WrbQkdu2UrQRlUcpcEBCReCAItgbE0iKSu
	yozV5138fMl1xQWN45KnmBQ6sgYjLVbzaHzQl5MV3esXkwrwDCibAnQa7CS8hbykIc/D+3rFsU0
	yYsB3RVHr1hYyMr/FxKDBZg9qYEIciqe/AbK0jTtryoLZHohfAWSiquY3ANJTlg9htPQRgpTYA4
	XtTA2st8sDo63WfpFnPJGwFN6hmhhSwWJCwLs3+bryha/MhF9RBlFqS5nudzRJmFBpcbhflhQMq
	ZosIA96bvp8fM0o3Rqr2N7R1uSMmF1uCZgvPRus3df3YyCq8F5bTHZY3kBWZEoEdh2CXAmAJ8mT
	iQCfikOHrC+hHsSi21JyVR19QL9p/i27dZqLrk5yguOvCIwOt+CVQcZXp2w7mt
X-Google-Smtp-Source: AGHT+IFJk7EWQFaE9kwr3zU0XKerfv3lE4YseN94fK2q5KPi739KzAMAWqmx1R7MhCVpDTBFeV94zw==
X-Received: by 2002:a17:907:3ccc:b0:b7a:1bdd:3311 with SMTP id a640c23a62f3a-b7a24758811mr743688066b.62.1765183800945;
        Mon, 08 Dec 2025 00:50:00 -0800 (PST)
Message-ID: <8b321818-5ca9-4de1-8621-c74a6a88e0fe@gmail.com>
Date: Mon, 8 Dec 2025 09:49:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/3] xen/mm: add generic domain_clamp_alloc_bitsize()
 macro
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>
References: <20251128152218.3886583-1-grygorii_strashko@epam.com>
 <20251128152218.3886583-3-grygorii_strashko@epam.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20251128152218.3886583-3-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 11/28/25 4:22 PM, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
>
> Add generic domain_clamp_alloc_bitsize() macro and clean up arch specific
> defines.
>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> ---
> v3: no changes, added tag
>
>   xen/arch/arm/include/asm/mm.h   | 2 --
>   xen/arch/ppc/include/asm/mm.h   | 2 --
>   xen/arch/riscv/include/asm/mm.h | 2 --
>   xen/arch/x86/include/asm/mm.h   | 1 +
>   xen/include/xen/mm.h            | 4 ++++
>   5 files changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
> index 4c6cc64aa7ba..ec2d2dc5372a 100644
> --- a/xen/arch/arm/include/asm/mm.h
> +++ b/xen/arch/arm/include/asm/mm.h
> @@ -313,8 +313,6 @@ struct page_info *get_page_from_gva(struct vcpu *v, vaddr_t va,
>   /* Arch-specific portion of memory_op hypercall. */
>   long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
>   
> -#define domain_clamp_alloc_bitsize(d, b) (b)
> -
>   unsigned long domain_get_maximum_gpfn(struct domain *d);
>   
>   /* Release all __init and __initdata ranges to be reused */
> diff --git a/xen/arch/ppc/include/asm/mm.h b/xen/arch/ppc/include/asm/mm.h
> index e478291fdf55..91c405876bd0 100644
> --- a/xen/arch/ppc/include/asm/mm.h
> +++ b/xen/arch/ppc/include/asm/mm.h
> @@ -96,8 +96,6 @@ static inline struct page_info *virt_to_page(const void *v)
>   /* TODO: implement */
>   #define mfn_valid(mfn) ({ (void) (mfn); 0; })
>   
> -#define domain_clamp_alloc_bitsize(d, b) (b)
> -
>   #define PFN_ORDER(pfn_) ((pfn_)->v.free.order)
>   
>   struct page_info
> diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
> index 11e9f26bf0a5..e5ea91fa4d0c 100644
> --- a/xen/arch/riscv/include/asm/mm.h
> +++ b/xen/arch/riscv/include/asm/mm.h
> @@ -292,8 +292,6 @@ static inline bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
>   /* TODO: implement */
>   #define mfn_valid(mfn) ({ (void)(mfn); 0; })
>   
> -#define domain_clamp_alloc_bitsize(d, b) ((void)(d), (b))
> -
>   #define PFN_ORDER(pg) ((pg)->v.free.order)
>   
>   extern unsigned char cpu0_boot_stack[];
> diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
> index 08153e6d6fa2..17ca6666a34e 100644
> --- a/xen/arch/x86/include/asm/mm.h
> +++ b/xen/arch/x86/include/asm/mm.h
> @@ -621,6 +621,7 @@ extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int pxm);
>   
>   void domain_set_alloc_bitsize(struct domain *d);
>   unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bits);
> +#define domain_clamp_alloc_bitsize(d, bits) domain_clamp_alloc_bitsize(d, bits)
>   
>   unsigned long domain_get_maximum_gpfn(struct domain *d);
>   
> diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
> index b968f47b87e0..426362adb2f4 100644
> --- a/xen/include/xen/mm.h
> +++ b/xen/include/xen/mm.h
> @@ -641,4 +641,8 @@ static inline void put_page_alloc_ref(struct page_info *page)
>       }
>   }
>   
> +#ifndef domain_clamp_alloc_bitsize
> +#define domain_clamp_alloc_bitsize(d, bits) ((void)(d), (bits))
> +#endif
> +
>   #endif /* __XEN_MM_H__ */

LGTM:
  Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 08:54:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 08:54:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180211.1503431 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSX0r-0003xb-4X; Mon, 08 Dec 2025 08:54:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180211.1503431; Mon, 08 Dec 2025 08:54:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSX0r-0003xU-1t; Mon, 08 Dec 2025 08:54:33 +0000
Received: by outflank-mailman (input) for mailman id 1180211;
 Mon, 08 Dec 2025 08:54:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RGh+=6O=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vSX0q-0003xO-1P
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 08:54:32 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8145cd14-d413-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 09:54:28 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-b736d883ac4so729545266b.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 00:54:28 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b79f44994basm1053610966b.20.2025.12.08.00.54.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 00:54:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8145cd14-d413-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765184068; x=1765788868; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=3NuzSyqNZavSMPV/plSYyaAMOxJ2WfnfhplUWybWvYg=;
        b=ME/dcC3DSK5/THE+Yt/l3JqCBSLtVYkuUV3H968m1caOSJtUA626e4Lp0hJzjGihlA
         oktMrNPK4TxEzcUzuz0OgzqXSygGEJm3i7N/AO8hwgU1ElRYjqaZeLXLDw2REiO4pn3J
         e0a7g45EHATGdctCv7W9fZ0owALTDHyPugbiAuuTZGX9L+FmIUM7GWCDbsp4HsysjuQc
         8ODQcqcyEKOb/zLmlZJsXpcWLZtQpMo0hnssFCCRD0dDvLaEAs7DLGnkbTznurUfHoM8
         5wUf7EDG0AzfV+NFxgGzPSyWdOMc747MryOeDqNCCBbdC1zMBkA01ahzXMwM+Dn0MYug
         OzRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765184068; x=1765788868;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=3NuzSyqNZavSMPV/plSYyaAMOxJ2WfnfhplUWybWvYg=;
        b=Tn4hcJhE9SidObxXh+EqqFN8rQSLNjykkTb/3/f7GpPxGZMPVDCNFUPA3s8LEpYJOQ
         G3BTJ2X8uykI8Byk32loGlNxacguecpO9Up0kKtNXQEkCntXnYwZyzEGZ6skjRDkb61L
         Eg64f4KSJr3eqK7GS4Pwbg4ONTRw5PyTtf4IZGTmlDUE37kcd1ey4vDQ0ShBPS3Iy24u
         zOk7ICjvjMHmrvkZSB82L0shVtUQdjrLZxLGCgg82XREiLFM4F0yh43IzriTRm2b6Rao
         kUcTtxtycMJ+CKYf7Uvk2npSFDd0vIfvL2cj6E9REmH6BPCLpCValQUOG1JTMB27oJQM
         /94g==
X-Forwarded-Encrypted: i=1; AJvYcCWuYwQlNNTcsf1bGSYU11Std6eD1Y8ARNC50YwfJR2qB80Gy23JV5LKmedTNvvQGoiksCRNkWRAT2E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzqFEgDf4VDp82CljDRMIjkDWC9/5IlEXQ7uRSpZkTTf1He4oXg
	D+NtvzyERcn6uom9cZcp0+x45vsi+hHMG0LptE0oeOwd3iKDXaNjwT7m
X-Gm-Gg: ASbGncsAxJSCwod9ZpyEYlnXc8yQ2G0f1reQn5YJ5ij+skYDFau2c5GOloA3vhRCAW2
	H4ZLlSB//SI1DVyQypr1p9OjTd0fDRUq+2EOXvIYxxyX3y9y8qJI+fUTzaWnFSMtytIsHCKELBp
	lwoMjCm9wm5zitnxr3+ZVwj5vSZU2JubNdB/D3UUJvbecQY3OQpEb2MX86EiiQrpF0O1q9hMVQS
	jwihfMetBmk0S/fgbUPU/5CoJBNEOqDL+k6yBmjXnUbC2TCTIlUYfoFLnVY8zlCrob2aSMbNBbx
	4PdifYueJrQ+7RJRG7GhFsBuLLB5ug1ENqf/EHsZYHkidlfzHqjNDCyztM+Ly3VmugVqjeI7Q5d
	cvyii2PCKnZAz8cvp52HDHq6wZAJMgeh/hKhpfCBgLtjmEIxcOvMGe8z2/oKghypfxvxUsNpvQb
	tG9Tt6VY1+PXQ8HDj7v1ouwNuFbj8cm0+94uCE5LCGTKJ8Go8m+xSwWdpm8F/Y7vdUB88H3No=
X-Google-Smtp-Source: AGHT+IGHn8jSUYXPodRv59NfSNHBCK+I6GhxP9aoejhfM9uj4Iddp61hGVA2vum5eYA89fJ3z+pNFw==
X-Received: by 2002:a17:907:7f04:b0:b76:339b:d681 with SMTP id a640c23a62f3a-b7a23ced91bmr720333666b.0.1765184068214;
        Mon, 08 Dec 2025 00:54:28 -0800 (PST)
Message-ID: <c9b49e12-f482-4a93-beb1-8c33fa1f00dc@gmail.com>
Date: Mon, 8 Dec 2025 09:54:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 2/2] xen: Strip xen.efi by default
To: Frediano Ziglio <frediano.ziglio@citrix.com>,
 xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Frediano Ziglio <freddy77@gmail.com>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <20251205160942.46694-1-frediano.ziglio@citrix.com>
 <20251205160942.46694-3-frediano.ziglio@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20251205160942.46694-3-frediano.ziglio@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 12/5/25 5:09 PM, Frediano Ziglio wrote:
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index 3aaf598623..f26ec5b538 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -38,6 +38,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>        BAR for HVM guests, to improve performance of guests using it to map the
>        grant table or foreign memory.
>      - Allow configuring the number of altp2m tables per domain via vm.cfg.
> +   - The install-time environment variable INSTALL_EFI_STRIP no longer exists.
> +     xen.efi is always stripped, while the symbols remain available in
> +     xen-syms.efi.

It seems like it should be moved to the 4.22 section. After doing that:
  Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 08:56:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 08:56:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180218.1503441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSX2n-0004Ul-GO; Mon, 08 Dec 2025 08:56:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180218.1503441; Mon, 08 Dec 2025 08:56:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSX2n-0004Ue-Dn; Mon, 08 Dec 2025 08:56:33 +0000
Received: by outflank-mailman (input) for mailman id 1180218;
 Mon, 08 Dec 2025 08:56:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSX2m-0004UY-Ma
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 08:56:32 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c96449a1-d413-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 09:56:29 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-42b38de7940so2130030f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 00:56:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d222484sm24653242f8f.24.2025.12.08.00.56.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 00:56:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c96449a1-d413-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765184189; x=1765788989; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=F4k9GUhihgLRaSoIOZd9ZqRELSB3jUjtNblECQYml48=;
        b=FL/ksLg7I28GV35jWLXG45ZU+VLjzd+cOabw7rTDPhUzcq0NHuh8giLeEgViOKVUXi
         WxUrqqW/G3lWWReORjhqoyE9W24ycSTbH5Fekp593F9ik+RboHb6k1BrbtGBGnW1rENf
         k6kijB1BHB7N+hIoyjIzDTSnuO7nFwFRzKwmmkRskzTEPCl0axHaInqULhK9kQhWP7+h
         njQQmJ/3IWnRGo2i93FmwdAMzGkKUBVph0bXzATgZS0rlAXt54rvhXhByg0HZu1lM058
         YDB85uTKNgIAUHExfwCpWiUhCnqSa4UfnmdnSXSzWsfETeGnGOboAWPbA81oQGZ2y06c
         wezQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765184189; x=1765788989;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=F4k9GUhihgLRaSoIOZd9ZqRELSB3jUjtNblECQYml48=;
        b=PEBUvnXKUlNo5sUyR2+VOWk4lEfEL44kVg08CIpLn4qo8Zbe/xowgjnmStx5W1q8zk
         x6ybK7iRmvVqedA8tRGXG/Jmi3cYVi7HmQWdZM483JiKw8lAcxgJdgWNm6hehnYgoUjy
         nm9nvEhkxYb8IY27Dhp/Dqt3/tfaoTi/A/kq6cI419b+BfctGJZZMWmWReMpqbqisBVV
         NtBHm3Px4N1mfM6TLFswnb4whcy+s03uKsKcfeX+wREReKTGf+8P0C4Rf9+Cw9WBfRa2
         S95RzVDvjZdviEXqrkuEIyfq3VjZOcQHTryZZozYqwqUMiLaefaW/ybF0cwkLvreJ/Ba
         tDog==
X-Forwarded-Encrypted: i=1; AJvYcCWlPOkbEDhqyJws0ApAC6bCFLxPH3+511qtH9jHXB5l9wmuS0y29Mz3zl0/TwhYc8yo/gzZRIwMcXY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwAqrnJb0oAcw5ek0biYzF48J6yIHG31peEtt/+kav4KJkwVTj3
	xetIzE4i2eEzOwXkAOOC3iMhgF5HSnEDiQrCVjaTci2vXAXEoHtsuYCf4OIOGSVltA==
X-Gm-Gg: ASbGncvOlmByY0Wkaj/qqX1GhN4ea2tkawMJA7pV8cgANACnz1X5PtuBuFJef40V0Cg
	VuDyCpdeLlVvcz6mIAS5p+Gbz1Kl+5QWfajuDqi7MfCu7QsOo93gSDI3w6EwC4lROiohY4zmo0n
	ZxLVtX6p5MzV9N2vJNry8DzVKNDpnQMFISWzZeLSQOFq291UBScw3ley2aPq9pijxzJ9cqkik9S
	3QtaaZ+YwuNWF+gWZLFKnpa1xbwOI8mcWFGoQsKh01Whp8tVAXm35AQgayS8k2bmu+Pd1qHQFIJ
	DcA33BZRdjq/3PQbxUx0L8sg/3953Rr4vbVTQSNObPPsNAZRemqR0c8DDk6ce+oOfKAaJsQ6CY4
	Il6c8HPH2WzL9gTFHTGJPl/ykmJW4y4cJEkV1VM4nQCKNQ7xl8t+Kcg2QBW3uPK2SbCdDADej6t
	kSO/rQ04hfxFBjGVFyYeWpWcQklJJFWsAZxm4sxh37SAoo2t7FXhl0ugTV7xB0eI8cwKB/56W9T
	hv4IG+vTdqRfw==
X-Google-Smtp-Source: AGHT+IFG8f/coAjyNnTHlV5L+8VhKc/j8l9da18qTcBcGdMEbFlekgdu2FSV+7uj5pbYtE5fMBnbsw==
X-Received: by 2002:a05:6000:40cb:b0:427:8c85:a4ac with SMTP id ffacd0b85a97d-42f89f54bdbmr7120626f8f.47.1765184189204;
        Mon, 08 Dec 2025 00:56:29 -0800 (PST)
Message-ID: <6c10dbc4-3247-4a0d-9953-858d09df08a9@suse.com>
Date: Mon, 8 Dec 2025 09:56:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] RFC: xen/x86: Enable --gc-sections
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20251205222813.277164-1-jason.andryuk@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251205222813.277164-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2025 23:28, Jason Andryuk wrote:
> When linking to create xen-syms, add --gc-sections to garbage collect
> unused stuff.

What about xen.efi?

>  Relies on CONFIG_CC_SPLIT_SECTIONS

Yet still ...

> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -137,18 +137,21 @@ $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
>  	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0.S
>  	$(MAKE) $(build)=$(@D) $(dot-target).0.o
>  	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
> +	      --gc-sections \

... you pass the option unconditionally. Which may be fine from a functional
perspective (little if anything will be saved), but besides being a little
inconsistent with the description I also wonder whether the option won't have
unwanted side effects (longer linking time, bigger working set).

>  	      $(dot-target).0.o -o $(dot-target).0
>  	$(NM) -pa --format=sysv $(dot-target).0 \
>  		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>  		> $(dot-target).1.S
>  	$(MAKE) $(build)=$(@D) $(dot-target).1.o
>  	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
> +	      --gc-sections \
>  	    $(dot-target).1.o -o $(dot-target).1
>  	$(NM) -pa --format=sysv $(dot-target).1 \
>  		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort $(syms-warn-dup-y) \
>  		> $(dot-target).2.S
>  	$(MAKE) $(build)=$(@D) $(dot-target).2.o
>  	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
> +	      --gc-sections \
>  	    $(orphan-handling-y) $(dot-target).2.o -o $@
>  	$(NM) -pa --format=sysv $@ \

Rather than having to alter three locations (plus another three for xen.efi,
plus another three for every other architecture that would want to follow
suit), should we perhaps introduce $(XEN_FINAL_LDFLAGS) or some such? That
could then have --gc-sections conditionally upon CONFIG_CC_SPLIT_SECTIONS.

I further wonder whether the use of the option wouldn't want gating by its
own Kconfig control (dependent upon CC_SPLIT_SECTIONS). If nothing else than
to have an easy workaround if either we had a usage bug (e.g. a missing
KEEP() somewhere in a linker script) or there was a related bug in the
linker that we end up being affected by.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 09:05:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 09:05:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180236.1503452 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSXBA-0006Vi-Dk; Mon, 08 Dec 2025 09:05:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180236.1503452; Mon, 08 Dec 2025 09:05:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSXBA-0006Vb-9x; Mon, 08 Dec 2025 09:05:12 +0000
Received: by outflank-mailman (input) for mailman id 1180236;
 Mon, 08 Dec 2025 09:05:10 +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 <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSXB8-0006VP-P5
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 09:05:10 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ff61dcfb-d414-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 10:05:09 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4779a637712so31140135e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 01:05:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4793092c32asm225987085e9.6.2025.12.08.01.05.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 01:05:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff61dcfb-d414-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765184709; x=1765789509; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uALucioVe2pYF4HUEnoEJKNTIWQ/OMYVWzf5bmpYIn0=;
        b=TOhMnmAI8NetqVsapnjQkvRwr1bFssBR7pe2xjE3eCdGot+mVnz+PMn4FAKSaxq2tN
         Nm4s6gymG8YO/OA+sjzoLLJ19CfXMCtRS22f/sg3bS4BFNhakTrFV3fEAGjUtBqTd1r3
         c9lF8pM865aPW42qucotCGHs8hglE06EnJSlzKjFiAiX6UjUfkrRFD011WHwgdu/Aeqb
         JEIWG4U5ovcReLDFvfmJiKoQ0dtDtVKFpfTxClXkevDPTMnCajLCXqqXMfwyrIOjVz/6
         iS0xitpvMaAGGdtyfyekOxYzm1DhBQaOaDtN2YvaGu6XNiSaka3JagT2M14NbPtonD5p
         X7Vg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765184709; x=1765789509;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uALucioVe2pYF4HUEnoEJKNTIWQ/OMYVWzf5bmpYIn0=;
        b=G197+lHYi4WIVwNVfWcNOKmvH+6f1bkeztnggIb+pAl5WLlGNQbdMHAu+6kqeCwjPA
         Uwm9gWJ+GU+ZBe8HQiK3I0TMtGJvAI4MEAZmYH+iVG4m3LYbC2UVqh5FA2EXRP85jyZA
         K/9qLfgA4bpHA4sH69h5dB+sGvOXjF7weGwyYm7ZqOi8g2HvHMHCrkgCr0EElCa/S9uC
         DUfKkm6v3gWPSc5Ce8hhA5g1Y4Dbkvxc/PfStr3DlSW5rsR8g2Vh/ZoT3zz9vNBVOdSB
         JeN4Y1/1dpQf1erkBPphNQP7WgWM2abzjjDu6mW28vv0MeRqz4Yczw5At/gsyEmd5kEG
         agiw==
X-Forwarded-Encrypted: i=1; AJvYcCX6VbWwfHgDu9PxtsNKqmXNcALuOMxqMyAjVTgtwxhiwd7SOd4fRf7fyTM01pRaN3K7uQlHIIn0YEA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx6BbEg1tkNkaOZQ7r2F2T/qiXUBvKZo3vYxLl7qZauWLvAAoOQ
	Ko8Ix3CK01GoPKjbQB+aP0p0923CnUOugqEgGWxTvY8L9CIIPSq4djsqTSUd3n0TSg==
X-Gm-Gg: ASbGncu1ELyWj+xpvQH/fkEvhzCsjtXH6IQJDii1f/3W5Ufzz9zm+2Rw7W2bw0SPDPb
	lV2rBSw6Cv4yri4qDpwOkR0DiIAsh453LKGCQWzzVpdMUD+UPKnSCVuNp2jXateFjJq0Y84qoXr
	vO+UGwRxQFb9oB14hJZbaVh8vPE3QVDxtr38rUQ3huyXlnMImuiBX9rAAGmnyLpJt/PnbsMvpdw
	7qnvG8Uaiv8ClIKn7atS/DMYkI+TgiU1OZSpaLdEF78TYIgSk7rhhQPgVOay5RZnhurkw6d7sZU
	ofkQ3Jgmhb6MAlc9bTEoRxM2egMTrmZjirY1fAvrcN3BdcnxWNfnmzNACEGW9qtjXXJ4Fsk8gFm
	ej8thaf8CUNRcN31S6u1iqHcHn9V7wot2/lxPGH9XtVLg0Gyb6TbLDnnITBXyphpS4XmVujPohF
	yOrhm6ksFz88yphELBunEslyE1nwSNsljQAkBnfTEvFfofV6CA3QNvgJouJEAhi8z06ruZPPDNP
	Uk=
X-Google-Smtp-Source: AGHT+IGFTu6CUh2piz511A90vVDTdIxlOm/BS10JgH1LM7pt5oo+/u9mTWdCvyrkKzS3FVwToqV05g==
X-Received: by 2002:a05:600c:c4ac:b0:471:9da:5252 with SMTP id 5b1f17b1804b1-47939e3992cmr63056115e9.29.1765184709272;
        Mon, 08 Dec 2025 01:05:09 -0800 (PST)
Message-ID: <373f19eb-39fc-4a76-95fe-4acb95ba71d8@suse.com>
Date: Mon, 8 Dec 2025 10:05:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] x86/svm: Make vmcb_struct private to svm/
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251128201937.1294742-1-andrew.cooper3@citrix.com>
 <20251128201937.1294742-2-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251128201937.1294742-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28.11.2025 21:19, Andrew Cooper wrote:
> The rest of Xen has no buisness knowing this structure, and it is currently
> included via xen/sched.h into most code.  Create a new private svm/vmcb.h.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> ---
>  xen/arch/x86/hvm/svm/asid.c             |   1 +
>  xen/arch/x86/hvm/svm/emulate.c          |   1 +
>  xen/arch/x86/hvm/svm/intr.c             |   1 +
>  xen/arch/x86/hvm/svm/nestedsvm.c        |   1 +
>  xen/arch/x86/hvm/svm/svm.c              |   1 +
>  xen/arch/x86/hvm/svm/svmdebug.c         |   2 +
>  xen/arch/x86/hvm/svm/vmcb.c             |   2 +
>  xen/arch/x86/hvm/svm/vmcb.h             | 617 ++++++++++++++++++++++++
>  xen/arch/x86/include/asm/hvm/svm/vmcb.h | 606 -----------------------
>  9 files changed, 626 insertions(+), 606 deletions(-)
>  create mode 100644 xen/arch/x86/hvm/svm/vmcb.h

I was actually hoping for the file to be moved. I notice that a few things are
left in the original file, and I wonder if they couldn't be moved elsewhere up
front. Yet I wouldn't insist; we can certainly do it this way round, accepting
that the file name then is pretty much wrong considering what remains there.

> --- a/xen/arch/x86/hvm/svm/asid.c
> +++ b/xen/arch/x86/hvm/svm/asid.c
> @@ -9,6 +9,7 @@
>  #include <asm/hvm/svm/svm.h>
>  
>  #include "svm.h"
> +#include "vmcb.h"

Instead of repeating this in every .c file, couldn't svm.h include the new file?
Or are you foreseeing some of the .c files requiring svm.h to (later) not need
this include anymore?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 09:07:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 09:07:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180244.1503462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSXCs-000721-Mx; Mon, 08 Dec 2025 09:06:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180244.1503462; Mon, 08 Dec 2025 09:06:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSXCs-00071u-K7; Mon, 08 Dec 2025 09:06:58 +0000
Received: by outflank-mailman (input) for mailman id 1180244;
 Mon, 08 Dec 2025 09:06:57 +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 <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSXCq-00071m-WA
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 09:06:56 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3e49f862-d415-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 10:06:55 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-42b3c5defb2so2329268f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 01:06:55 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbfee71sm24606278f8f.15.2025.12.08.01.06.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 01:06:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3e49f862-d415-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765184815; x=1765789615; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AgCyVeDsYLXk4iinPjr41y8XrZc9h0G9eV2Fq1IlV+g=;
        b=DjamhtURBovNp+Kym46G5VGKZZGYE4h8UJXThyKnHiDr8OBAqB1G1HyRgngaDoe2KZ
         Pxmf/0BvP4SrMpRDpunHfEwdNFJoOP5/DslLhE/jkkX66ZwgpUH9C0ZDJP2x5uN0Gd8m
         +TCQMdkEisSCsosnF54RMaVu1SchTg+i2O7xCemvtrlhfpysJ9Wj435XBq7OXoGg2I7x
         T8NEG14xU712bjSOjYonDRwD1G2R+TtZBA4xTtiYfQUCerAfdqmNFnAGVXEmxuAQPzjt
         nLL+b0CfBd+JW1ET8oWIk9AFaBVqbkLyhHva/YDoKb2cDoIE9cbx1DYuNBuVO4Qk0ylJ
         H2wA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765184815; x=1765789615;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AgCyVeDsYLXk4iinPjr41y8XrZc9h0G9eV2Fq1IlV+g=;
        b=XLHT58/la6I9Oorgeq2j2zjrZoIcXSpZoWJVDRy8m1camcxuDi76PlABCgjcl1tqpT
         r9W4O26/3ekxPrQBFUq/2yCG5oKt+C6+CBIBYolkjKIzs+qdmIB/fEnWh6E/4m5yggIn
         ASg34KbCQ9sjHb2UY1oIZyKPKmg/XFJw/vYw6GnFlateMWQn3K/R7yqm5ksrnF34YplD
         ERupxdnYke3DXoBHj+RUu0A1RSI6Ydxnhj9myVin1XHAUp0FM+FJhgHgK64HYTcF17TZ
         WkQsr3ANtgObXS4bXjf2bSaaCMHbuWoChuY2RfrzG2l7UAP8gYK13pukFbqUBxRF76t9
         y+8w==
X-Forwarded-Encrypted: i=1; AJvYcCXhYJfzKMthsWINlictO/yaVmXADdL3GO0+4EDURvaGJk2QRhb70rK+1WHcEVmnf7C/Kc6Avnqnzo8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywkqd07s82fdzCMi15aLvBha5uIFtyJjoNLrI50MfRxSBr5fCAl
	+tjbMFuZuSVt4VS86OnfXTCNK2HZAJ7AkF2B4iydBOsj4nBEIRWkGEgdPEKp8hW3MA==
X-Gm-Gg: ASbGnctcNjvz70pAlZVQRPtGAENVUHM2PnuBx2TKQ2qcsPSNfFSe/Q2/ZQLxP+a8X+o
	OFruQ7p4D7sBQjmX7vrm2JTa/QlU+A0xtMubkCFA4gJXNxdfj6u+N7M5Sq4QcyGxi2VjVTr+Cwl
	e/JCzqdgjixKErKlIA15MimFmxksAfAF7FvSbbfGbGcSFLQPZtrrXyMd3+MltpK3yvGTvTWnNY0
	vkCwXuXNphKQY8XULAElHxV+PwEt6jGoN1/djEstoneM6EDXKGqQ2kVOJHNqPrQbDK0WEvkrFWU
	xfEViCdh+uul0JGZ2faAhb2QDuQQCBti5cERJaPkxQ62W0W5wApbctx+WxLtI1AhYfN7q6EYRSM
	vulhmz+geRRCN/yv/nU2uRiCJ0cWkUgYDjtHrGllMqFFR3UPvOZPd6QBcWWmzO5BtXEZ8qf9Uw7
	W4jbNNk9swT2ksIS5lXKa8pH/E31NjyaDVgguuTjr1bu/H4lhFsAzdeLX06T+p3Lu6c/hau8mZT
	EE=
X-Google-Smtp-Source: AGHT+IEi1vaCr0tG5V82L6Gv2Hcz1zpg65XKevi7Z9D+0r1dUSY9mJ08CfBhlv9HgN1MJRIJZ1ulzg==
X-Received: by 2002:a05:6000:613:b0:42b:3ed2:c08a with SMTP id ffacd0b85a97d-42f89f0afa1mr6990591f8f.13.1765184814865;
        Mon, 08 Dec 2025 01:06:54 -0800 (PST)
Message-ID: <d74a4d73-31e7-4a75-b96d-6eee6c65ee0c@suse.com>
Date: Mon, 8 Dec 2025 10:06:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] x86/svm: Drop svmdebug.c
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251128201937.1294742-1-andrew.cooper3@citrix.com>
 <20251128201937.1294742-3-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251128201937.1294742-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.11.2025 21:19, Andrew Cooper wrote:
> Everything here is really VMCB functionality, so merge it into vmcb.c.  Move
> the declarations from the global svmdebug.h to the logical vmcb.h.

Nit: s/logical/local/ ?

> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 09:10:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 09:10:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180255.1503472 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSXG7-00005o-3z; Mon, 08 Dec 2025 09:10:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180255.1503472; Mon, 08 Dec 2025 09:10:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSXG7-00005a-10; Mon, 08 Dec 2025 09:10:19 +0000
Received: by outflank-mailman (input) for mailman id 1180255;
 Mon, 08 Dec 2025 09:10:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSXG5-0008Vc-OU
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 09:10:17 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b588ab73-d415-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 10:10:15 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-429ce7e79f8so2664032f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 01:10:15 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d331e29sm24834189f8f.32.2025.12.08.01.10.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 01:10:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b588ab73-d415-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765185015; x=1765789815; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LTdNAJgKr2UFkzmJvH1/thYKNgic9UAy3c4K8AA3GOE=;
        b=dIhTcw5WfmNkCJi8qhlTO6lMQk2AhhrPT7rf60yIs+Dm1t15VIfffEWlJvilEC6+ND
         6yTGjwBK2y48W7pS9n+ScFlr77TyJSF8E9Fycxg1plnoR3qZ9yql2mQXzTijTRyRCYvA
         JRhr0uKFDDUoPBGsfnBor5aF2Pe49KMlNQ76ptAMK8VMITneqz+/8C057g2H4ulVJ8nW
         FY9eHO8s7IkOwAk6kdUSqXE0IprnfE+bwe5Ipn9JRq9TZsCiLbhPRY+j1rdOlsL5y3w6
         1cfeAe/edZLmUmcPq9XPO0CWmPLc2zV+IAyVBMiT+1XWSsZwSc9/jv2h8jNuluqc7kx9
         JsnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765185015; x=1765789815;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LTdNAJgKr2UFkzmJvH1/thYKNgic9UAy3c4K8AA3GOE=;
        b=JD3xeB8ThqSlKPseLffDK5pqRskNt0qRxjM+oouZToeETiUenMfojgSnGGFK1H5svn
         NE3Ci2ziet+gYOo3VfqCeBwt+btT2IUhM9tYts/uLWzauZv7bqaQVe3eX68wkHlMzrSe
         tbHlJ7wFPsSwDOjMe/3/GS1gd8drGTspGedaVO5R3ceyeUzSOAGhoRDfcV66vdAe3QKs
         fSSyMLWT06gD894U1awmp6KyNlKfQAG3hJq+GR0te3C0jiQHFCtlB47qYXG3sAUsukPM
         P7Ri1/PrxNBdnel//CTcpM/nOA677xuzKw8wwCKKOWmsR9qJh2i/KjW8LuBAObl3rhTN
         F24g==
X-Forwarded-Encrypted: i=1; AJvYcCWGfwPruG5TFeD4n1aU+YFLaiXEPPp2f1NL2n0qhrXM9lzF/lv7V7UY3kDfVsMu7Nb02tW8iC8CGiQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxRr7nx6Jsn7rTHChXvC92KAz3mNmZuqLRyvasnufI/7Loktakv
	3Y94D7To11PnMRZmwNb8pfBFChcLA4Q07VWiPQbwtShmt3M6vEmaCDTRgNSuL8uXpA==
X-Gm-Gg: ASbGncsmlaM+vnUIpbLkRCi69I0Xv94BurK8RXYhNn8ZJIFfO60sGNyqsglpFxeHw5F
	PxyG4p9GgyKZNRbDDmHRLsQg3UpJdBtdmLinauSGRWAGS5VNb8ZOwyMMYYQ7db3vDl8GlDafYJA
	t74J5IjlIAY6YVbvU/dnbaIFIWtt8Wr0RTxdgfP6PXOMBxCixlfXuc+c0FVACRvh/fUAtRxHK5+
	PRdLm+CBgV5ul4CIL8vxYXGP5JeBXlyvdYnZqEfRYhux2ApS4PGmSLZs4UJBxpgbVCqAjFBcBph
	/CjrH27iU/nnu/9frz8hr8DgAKztxUdhKOQoMpAgELL4A/lPZfFlCnFG67YwQbWjcuSSYlIeQF4
	LaIdzpjpoeOwithhqfa/QLcLUfr9CVOYyOOaCT2Q8ZLel2YJ0PWdvCfOZAGGjrI2Fy4MWGPfHpo
	sxHxJFGFUT5AzlRANMJhitojRIaz2AtuhhjdFRypgmcfE3aELvJE+cfPzLy2kVHijPsVHXcyNRG
	Gc=
X-Google-Smtp-Source: AGHT+IEUwq3/+SDYCt8CFVGOCyoMwJod7uNKGIU/PnMwv6Iay4Vm9NylEpWbrI2asJw4JbkcyJ652w==
X-Received: by 2002:a05:6000:144a:b0:42b:38b1:e32e with SMTP id ffacd0b85a97d-42f89f50d87mr7359937f8f.46.1765185014935;
        Mon, 08 Dec 2025 01:10:14 -0800 (PST)
Message-ID: <3caf4cc4-1c01-40f2-865a-5be98d609866@suse.com>
Date: Mon, 8 Dec 2025 10:10:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] x86/svm: Drop svmdebug.h
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251128201937.1294742-1-andrew.cooper3@citrix.com>
 <20251128201937.1294742-4-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251128201937.1294742-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.11.2025 21:19, Andrew Cooper wrote:
> svmdebug.h now only contains the declaration for svm_sync_vmcb(), despite the
> function being implemented in svm.c.  Move the declaration into svm.h

Maybe again add "private" or "local", seeing that we have two svm.h?

> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 09:17:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 09:17:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180268.1503481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSXMg-00018I-P9; Mon, 08 Dec 2025 09:17:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180268.1503481; Mon, 08 Dec 2025 09:17:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSXMg-00018B-MN; Mon, 08 Dec 2025 09:17:06 +0000
Received: by outflank-mailman (input) for mailman id 1180268;
 Mon, 08 Dec 2025 09:17:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSXMf-000185-GP
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 09:17:05 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a8a96d93-d416-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 10:17:03 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-42e2e167067so1813532f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 01:17:03 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbfeb38sm24160106f8f.12.2025.12.08.01.17.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 01:17:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8a96d93-d416-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765185423; x=1765790223; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TFPOJzpt+3xOHs+Vf1YpOTXAtessmORrgUmgZl54Mss=;
        b=fm+x9h6EOWJ5Hr5x3pb8WHGj75uhRG8eG8gnwXGiS9wO/JhK0RKS31SuYuR+MlHxTi
         a0wAYaYJXVYA2pcgeZVyyKykO/erUrCLJcyFalJG7MQs44umT27evqH81QkI19ryDQYe
         mqEyM+dT9IZ+RYwruNprPQ+k5iePCH2wp0YoWsKXZT3eIuQyTeRCpK69d+X0uOT43VjS
         Xn9Qej8l5bauFyi4mimWH84BXuRyPRjgMXoux8V1vv2vQSoenLLq2dS2qs9PxyYBdMex
         DUD5/yuJUbXZMLNP/8KSjv18/Gp9cZ2rB1HQWVsq2aXtpWLuyN2PDhKdZDvabevSg1vF
         HShw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765185423; x=1765790223;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TFPOJzpt+3xOHs+Vf1YpOTXAtessmORrgUmgZl54Mss=;
        b=L82V6si/bkwIU1sieANv2YNBAHBc5LHDajpClxPqkL0w1bR7zx0ydnmuUqeUkwejeb
         RPKt1rT4k24CoRO14UM5+vo09mmuApd1sSA5oCi7/TEhfwZw5ftX3AzQni+/pizT0VAf
         dnfhpgwDZzsG1iq4YAd6qPrSCE4eFYmPXhghAT7HaXS5k2O5GLp+n/MOQuMLQN4jvfZq
         +zdS/j0Uqu3HGrPZ2Dmy4cXCi2TXhJeFQVRky/4uLtNaAW8LVFj88t9b6UMEkO+4QLYm
         ihFf7lLSUsdGGmA3G+eRho+/1xBajQdkY03esuNadDBQUPKLjYIlKRdpNRLAjTyPuaFm
         cKDg==
X-Forwarded-Encrypted: i=1; AJvYcCWYmOivgwZGqmo9z8gWuzZSCnTzjHHqOJL0lqtgZQghbBn7ywbPz6dnr1PEhep4RlXvJKG9/vdzy1s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyFnKelo3M+jn1OHEQBeR5Bj1gtwG4cJxWN3uJSJEZ9TS0pGToT
	gOH+pdG+73YYuGjM9HLOVzmV+UfePcV9u9KYthDRbsJlygZl9qCPUkWF7Kt3mzPYNw==
X-Gm-Gg: ASbGncuaJ+bxHx1EzAex3S/lGInLfJRVVe5B/gfgLBqaWlhgz8hoR9nGieOTqbjYb79
	jM3oQ2wXdHtdrwh3UbUQYPjzNQuKTP+DOc2zwb2/E7CAaAwEsvm0mLgupk1B09H16/noW1wa5T9
	KRhqYnvD0lcxOt+25hnZiL0iH8MUaDRcFLRcRoG6bxqOjmVc2WpbA51kub6o5cHVnM2/jAsrAMa
	b7jWGQp540v3IfWdBwXQ2MyE0gPFtm5NliQ+OKJrVFFacaPZC9mCJkOn59SJgOf7SC4kXdjEl0u
	/3qzkOhT/5IGXaD/iS4Fch0uMMLyGhU7JyyBWEJs9NrShVGnYwVdNgl9YyEIJRwevbRH8T0xIzs
	FLQHne6yy4USj4bCm3qm4E4ZF+RUUv5bObnBGA8oTLUCb/58y0/TrvKVv/lIy51Nz9d+t3VkfbU
	R+4Q41gdGBorc65FsSBiQmxwzxhw1wltUYJCr/p4PyNh8ASlq8SKIVO+Lq9WTpFKiTnYKA0p+2V
	qU=
X-Google-Smtp-Source: AGHT+IG1C0kb/+DTvo4veVGF4wISU74hwEOB85t41tCQqiqMFq4nd5P2XJZfCyBflsYvVjba1tvuhw==
X-Received: by 2002:a05:6000:2003:b0:42b:3e60:189d with SMTP id ffacd0b85a97d-42f89f0e212mr6973458f8f.24.1765185422670;
        Mon, 08 Dec 2025 01:17:02 -0800 (PST)
Message-ID: <55f40e49-027b-4162-94f0-54573fb1abc0@suse.com>
Date: Mon, 8 Dec 2025 10:17:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] x86/amd: Fold another DE_CFG edit into
 amd_init_de_cfg()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251202105710.1472927-1-andrew.cooper3@citrix.com>
 <20251202105710.1472927-2-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251202105710.1472927-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.12.2025 11:57, Andrew Cooper wrote:
> Fam12h processors aren't SMT-capable so there are no race condition worries
> with this path.  Nevertheless, group it together with the other DE_CFG
> modifications.

With this, ...

> Fixes: d0c75dc4c028 ("x86/amd: Fix race editing DE_CFG")

... isn't this more like Amends:? Aiui this wouldn't need backporting.

> --- a/xen/arch/x86/cpu/amd.c
> +++ b/xen/arch/x86/cpu/amd.c
> @@ -920,6 +920,13 @@ void amd_init_de_cfg(const struct cpuinfo_x86 *c)
>      if ( zenbleed_use_chickenbit() )
>          new |= (1 << 9);
>  
> +    /*
> +     * Erratum #665, doc 44739.  Integer divide instructions may cause
> +     * unpredictable behaviour.
> +     */
> +    if ( c->family == 0x12 )
> +        new |= 1U << 31;
> +
>      /* Avoid reading DE_CFG if we don't intend to change anything. */
>      if ( !new )
>          return;
> @@ -1201,15 +1208,6 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
>  					    smp_processor_id());
>  			wrmsrl(MSR_AMD64_LS_CFG, value | (1 << 15));
>  		}
> -	} else if (c->x86 == 0x12) {
> -		rdmsrl(MSR_AMD64_DE_CFG, value);
> -		if (!(value & (1U << 31))) {
> -			if (c == &boot_cpu_data || opt_cpu_info)
> -				printk_once(XENLOG_WARNING
> -					    "CPU%u: Applying workaround for erratum 665\n",
> -					    smp_processor_id());
> -			wrmsrl(MSR_AMD64_DE_CFG, value | (1U << 31));
> -		}
>  	}

Are you deliberately getting rid of the log message?

And I assume it is deliberate that the adjustment no longer is done when we're
running virtualized ourselves?

Both imo want making explicit in the description.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 09:23:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 09:23:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180286.1503491 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSXSv-00032x-JH; Mon, 08 Dec 2025 09:23:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180286.1503491; Mon, 08 Dec 2025 09:23:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSXSv-00032q-GX; Mon, 08 Dec 2025 09:23:33 +0000
Received: by outflank-mailman (input) for mailman id 1180286;
 Mon, 08 Dec 2025 09:23:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HI0z=6O=siemens.com=haseeb.ashraf@srs-se1.protection.inumbo.net>)
 id 1vSXSs-00032j-Sf
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 09:23:31 +0000
Received: from TYPPR03CU001.outbound.protection.outlook.com
 (mail-japaneastazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c405::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8a199ef5-d417-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 10:23:23 +0100 (CET)
Received: from KL1PR0601MB4588.apcprd06.prod.outlook.com
 (2603:1096:820:87::11) by SEZPR06MB6059.apcprd06.prod.outlook.com
 (2603:1096:101:e1::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.12; Mon, 8 Dec
 2025 09:23:16 +0000
Received: from KL1PR0601MB4588.apcprd06.prod.outlook.com
 ([fe80::3f19:282d:5fe2:f523]) by KL1PR0601MB4588.apcprd06.prod.outlook.com
 ([fe80::3f19:282d:5fe2:f523%3]) with mapi id 15.20.9388.013; Mon, 8 Dec 2025
 09:23:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a199ef5-d417-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YAdP8wbeOfuDoeQwZFwPRMZP0/QGt79vEP357o2M0U+44jeYngBMTXzzE6QymhKEq+fGut92wGUp9//aUYWUGEp9nmGVa2l9Jw5kXeii6NRRlaJmqm1fecFVg8rPUmvCVRY1u5vn7OEptEjsoeZ46GWAbSp4yfQxeWdzxU5ZiZVD4peqddkP2mugL2hSNO7BXU7TXs7SoyHyli8IQXefM5snW97ifnKgWBIAhJSWyAw7k/6KFpxKftqS3wqscJ/QonRGTg+zZnw3OSmdqE5WCAaN1/Jj65oUELj0jpg8fdrTc49dM+BtAtZoS1vVy/16S2M3zriGW+l/EBD2IMQoXg==
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=HadczEWJpfFoe19TlJGE2Uym7zOSW2JrIy1GBp2VcUE=;
 b=UhXVCmq0aCVjDuQ7HZd9oeq3Y+fRf/4Z7zZ9hCm4TvVMnGmgj5Ht8212l4Bc42Akz1YYOJBWEnUWu54/sF8IyIWrIbkKxp9DXPuLU415GssA42h7P/yEuBAV0jVtGRjsiNWSmoycvHAcGiUe5BqH/3869zahEFPNcvMx2mYnqCm1OclOhLDqVaKCroUz88KcsZuc4cajzzfD2x3Q41eQ7zT+/tMhgMzuZtgQKuj5DRmPmwzwWGApeGTYp50yLqaYXeBt3+kgGio0P2d/ocNDbCYFD0tWSE1JfEn27NjZWrr7jivWbBhRZ9D9c81keQUYgIG+dTfNJ5on+LHZgjB5AA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com;
 dkim=pass header.d=siemens.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siemens.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HadczEWJpfFoe19TlJGE2Uym7zOSW2JrIy1GBp2VcUE=;
 b=ughd7idMQq+sowIsdRHAMu8+Cg92atJl1EDytXS1kZKuJI0ZyYThM++q6owqQvzbb2lLAXF5Vo76rysYm6KuzcByc3B74FeVNUB5EIf3X7hvsJ9M9j4A8fSWEWyzdoDbnMYQ6h18vnSQnd2pN205Wy0JCIPGIQ7QZBVaPwA6rjBCt2y0z4c5Jlq1XK4GkRGL+7xNF0S3C5eW1Af+YlxyykR6a8i4s9HIY9kwbGtWe+iEx0S1yT0OeUNVNjdOtP/oFF9o3447AXHhyrgQyxnwwi52FjVFKKcNe3fojNExoTuqS06UUNjdx21vQVPNZ+3fOo9/BQSP6VjBl+eu1rRMrw==
From: "haseeb.ashraf@siemens.com" <haseeb.ashraf@siemens.com>
To: Julien Grall <julien@xen.org>, Haseeb Ashraf <haseebashraf091@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Luca Fancellu <Luca.Fancellu@arm.com>
Subject: Re: [XEN PATCH v2 1/3] xen/arm/p2m: perform IPA-based TLBI when IPA
 is known
Thread-Topic: [XEN PATCH v2 1/3] xen/arm/p2m: perform IPA-based TLBI when IPA
 is known
Thread-Index: AQHcZTbEL+J8Hf9qH060epeFxunK57UTtIuAgAPHJUM=
Date: Mon, 8 Dec 2025 09:23:16 +0000
Message-ID:
 <KL1PR0601MB4588F25641F3FB9AA5C355B3E6A2A@KL1PR0601MB4588.apcprd06.prod.outlook.com>
References:
 <ce2e7c32f06ba8a48a2074fa8cadd9c122b6490f.1764863575.git.haseebashraf091@gmail.com>
 <a726e56e-b864-4ec1-81f4-da552fe71470@xen.org>
In-Reply-To: <a726e56e-b864-4ec1-81f4-da552fe71470@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_Enabled=True;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_SiteId=38ae3bcd-9579-4fd4-adda-b42e1495d55a;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_SetDate=2025-12-08T09:23:16.055Z;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_Name=C1
 -
 Restricted;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_ContentBits=1;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_Method=Standard;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=siemens.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: KL1PR0601MB4588:EE_|SEZPR06MB6059:EE_
x-ms-office365-filtering-correlation-id: 613a075c-1297-4567-854d-08de363b6b7a
x-ms-exchange-atpmessageproperties: SA
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|39142699007|31052699007|376014|1800799024|38070700021|8096899003;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?UqcQa59d7/nfeiQUXmx/nuHN406IC7UQ61WkWRImLB/wU37I7cJ8E/yAv5?=
 =?iso-8859-1?Q?JlS/2XjFWNeaaPIQl//sHcihw3Z7QPoKXn98OAFqpV7TwJFaHwOrPr9S/x?=
 =?iso-8859-1?Q?HONuRWzX90CAS3oXg/c0XeqYzRBLdtmnl0/qe/pg6vPmS7+UJ8iUp8I6HF?=
 =?iso-8859-1?Q?WA9QiXiMNQeC0RFK3PhxO5aFkgN9b0umr7ZlOYwXFWjbKHQrvv/6umqAGU?=
 =?iso-8859-1?Q?xuNQWc5N5/GIp7cfdZB8FR1419g40liXsSqRzNW6OK6RUwqd5aZoT6PYCr?=
 =?iso-8859-1?Q?57TWu96byyV/MywT3sF9qPY63Cl8nfoXOD7wV0ZB/NVWeuFtoLjuTfS3yN?=
 =?iso-8859-1?Q?UIReQ4mYZ4AWfOpNAPgjx8FxgnK71o5ffWzUKCw1I5qzVLALpV7Z9z/Qa4?=
 =?iso-8859-1?Q?GbjvJ4RqqjVHyMlBBvDraSLqxF3qIEFanH2PhQ55NqlLAb4pAprp7SY7JE?=
 =?iso-8859-1?Q?p/9CyLl/KL12qQ512W0z2gh/d9Y7XAwfbvPOEqxneAoQi4JEq4Te0dNqEh?=
 =?iso-8859-1?Q?Vm899momaWO7RnSDvxL1kTg7Hv52Wfip0gp5PjEtMCfTwliq8zuidi5dz/?=
 =?iso-8859-1?Q?v+EBXxzexbyIV0GcGKpDs7LJc4ni+f5pxhpFM08fKYdVZ6SmijqKLohvYI?=
 =?iso-8859-1?Q?uNgNuPReNyPnO2+EaDY3SDXSYRcpfVB3RpTxINibkSKeHrIy4LdjQSuK+W?=
 =?iso-8859-1?Q?JBqmcG/AAd3UK+w9xmKiGGdgZpW+b5eMcw1BRlyPgSf/tVYvk2P+Cd0xyj?=
 =?iso-8859-1?Q?x591U7+RZ3ozmT/RDiuA24JnkDnqSbPoDah5QekJ30Qc8DuIbEGG8TNRo5?=
 =?iso-8859-1?Q?M3LGWom53U+gbFMoQbcosDcj9NiRlba9Fk06QuLKVI34mP2/o7kvTTeHZU?=
 =?iso-8859-1?Q?7KNTrul7PwgwFef6hj4T5QcC2HLo/VRTj/hnF+gHYKzRkoUYPq033mYN48?=
 =?iso-8859-1?Q?3GEFYBaiZL7bff8cALY4ruzOu0lvyjDwEv8D2GiDX+jnD4E5azSPTNa0iO?=
 =?iso-8859-1?Q?gzIlsMH/XDNoeSVAOTwKZ/Ae91vrpnZY/T22T1Vf1dHjyZ5pD5qQwexBfY?=
 =?iso-8859-1?Q?X9RObCl9DavHroV6hT9KzxiLpeZC7lU/W5BZLYb7Hl7Xqgr4MMQcjhQ5pN?=
 =?iso-8859-1?Q?k1UVhcLAh9AiZbKZXdnhCNhz5VYOwoZ9lMFrf72b09bVvIfRIKYA0bJA2s?=
 =?iso-8859-1?Q?LgduegWqzAhNzCkpRwI47rEOGpq76k16cY5ek0auEQX7/NmdkzAaRPwmhn?=
 =?iso-8859-1?Q?KJWP+VuE9zdRjqN+sf1cV031+3g/4d71bS8qUid9BSWRE0MRuJ6WvSzNiv?=
 =?iso-8859-1?Q?uuMERUhDSW30rdepcs7gQ8lUg9hld0HoY1YWONiTWGI2dYu6Sv/WIF/cDz?=
 =?iso-8859-1?Q?5xzUAUvGy4jwz3HDIgVXa8u34J+Rtm/13HQs/LtckKqa599PupKYmTZQMW?=
 =?iso-8859-1?Q?QCX6sxP0o1eRs2lH/EguLAWIGJwgGymYMtZuza3rOpjPHvzx/F1WloTwkW?=
 =?iso-8859-1?Q?A25yfkfyMxB+1DSXA2ZNdM8iggLGOlb8jpcx1uNz+tkZUsofIjvcUTNbDk?=
 =?iso-8859-1?Q?RQCZwd2IRbocfo9P2Ta8ih6TJ8n9?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:KL1PR0601MB4588.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(39142699007)(31052699007)(376014)(1800799024)(38070700021)(8096899003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?tqYWG8VUoAt4XRAjNeDvjh6G6ggFA6SGpsPhm2kdtr/zvW6iZ5jSTcFmX0?=
 =?iso-8859-1?Q?u6Bh9KG5HOiRgIGYcxd4SsQtptjN/npRYBMkLTonYB1YwIb9fCBq9O2QL6?=
 =?iso-8859-1?Q?URQuoXvH/6HuGJON6tk85fadNZoDASIKiiJtbAVQC91thnAqoIl0ZXJDVu?=
 =?iso-8859-1?Q?yAZOA5Zd1d41ijWeBYyb55Y397HAbrT2YZ693n32Q6MPhbTNmyFk0bC0wp?=
 =?iso-8859-1?Q?HAEfrzr0i6kqfSgQcOp0L2XqjO0Url85a6vbGd79ZQAVqT+RltjLBEIi12?=
 =?iso-8859-1?Q?O234rSLZjOO6NXqv8fPwbemC61tpl6r8W6RRzYz8mPaQrTok7XAO9ow1kE?=
 =?iso-8859-1?Q?gV/Jj0g6ipDERBgr1OUYFTDZw9i9SoTWV+gKP0EZwVLWKGGIYrPAs0zYgH?=
 =?iso-8859-1?Q?+1hJEbhVIoxFbMQhYM91kiKmtK8vUrlWiZ/tn/QEczjunh3HuIpXAOQXAI?=
 =?iso-8859-1?Q?l1XyvDdqePlTOfw6bI+GisqgENkf3u4tffAabNlu6D4ycBGehlujfLU3Ka?=
 =?iso-8859-1?Q?iI6iJQoBpcsqtm/PFKzRrFd8oB2J/5yXUs8VDzkvvZO5+bgRqdW1i0Jl7a?=
 =?iso-8859-1?Q?wMX+H1Fd/U7qrooVasir93Onn+3GJ7VDUeZYyl6wFOdhUc5/UvBjpCKqgI?=
 =?iso-8859-1?Q?iukmDUSgVuWWOynJEJjJjXyhJ7HXP94Deq/nWfqHjSPHnuzg/K5p3WY/p6?=
 =?iso-8859-1?Q?v8blIlBQ6Fkq2Ir57WNoSMKKh+vhsSBAD0D+iODcch4un3sycfI1wFMqEj?=
 =?iso-8859-1?Q?kz4rzipMXTDYyRoL6pHu4LvWRtnhf9hg7JFugMPVi4FiDPJhgqv7fkaDl8?=
 =?iso-8859-1?Q?injp6oWTMuznGckJnhzeqCn5GqGI2Xze9P2CCX0WI+FehATvnU6vBEwScJ?=
 =?iso-8859-1?Q?BmavxteP9IF98mmqVj16Sm/PviIozDe//dnm2OLMoyM/euXS1K8OzJV7O7?=
 =?iso-8859-1?Q?Vo6s4dIJQ9mxtgS6+H33hO9Nb0nwtWTCkH/b9uee+uK2DceFfiBadBj52l?=
 =?iso-8859-1?Q?Nf+GYBCM96s2FIh/hEwmqg1agTtNIC1+AE8c7ZknnrqOWlgzCk9stoVt8M?=
 =?iso-8859-1?Q?jUoZSICP1+LdmIYp0b1ELX1YRLQf3thdmROrRW1Ka+t2C7zXRW1akxM2gO?=
 =?iso-8859-1?Q?sNyDQ0Elzdlc7svyVJB+iKjxgPkt8LhIfn48KBWNoSM9d7i/VPALVcJlzZ?=
 =?iso-8859-1?Q?yEHXpKylU+i4c53FAbgm6BbXWJpfQwjXkzPdFDbtbk06WyeyJgtqZS1OZ+?=
 =?iso-8859-1?Q?buMlYipBXBUoztR6joeoLPrOESs9G5dGFhZAWwRkegZOBV6xoXd0LNnkuk?=
 =?iso-8859-1?Q?IBcTxfBbyawT2JTFCCcfKsIlo3AIfR+pK7vGAlr4LIuoueiNDPexlERCvn?=
 =?iso-8859-1?Q?yNZQgk2Ag5wNYizRK3QuIrUCCJdRLdav2T2gzug0/GWLIE732OREX3knbN?=
 =?iso-8859-1?Q?u0Tjk1HkFqSLBfDsO1ULOtc1YbXpVfC0IcV0Ll2qAXKS0cIRijibrX10mB?=
 =?iso-8859-1?Q?d2jDFfo89am8oLWqGv/aOzGgtYhd+9+C0K/5VmLQ01oRLs0LV9PMfgTmZW?=
 =?iso-8859-1?Q?n92ur6NBjDuoune2V4Igi106q2f93+3Y+fCpWhj9aDCrFc7CqMkIpqu6EP?=
 =?iso-8859-1?Q?wxlAOG7t083d7JfhwzBQVjEKMdJWaW6a83?=
Content-Type: multipart/alternative;
	boundary="_000_KL1PR0601MB4588F25641F3FB9AA5C355B3E6A2AKL1PR0601MB4588_"
MIME-Version: 1.0
X-OriginatorOrg: siemens.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: KL1PR0601MB4588.apcprd06.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 613a075c-1297-4567-854d-08de363b6b7a
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Dec 2025 09:23:16.6877
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: AVwpbUEEODQLllaHAL+rS3Dcr7byO+Ny/bM/SWIz5OiHOIZeCSEwfvf2YhDhqjablV2R8n1Otifw30/9RNxOlgWeIqUhkMfpYcM/U/mJftE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB6059

--_000_KL1PR0601MB4588F25641F3FB9AA5C355B3E6A2AKL1PR0601MB4588_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi Julien,

> Let me start with some process. In general, we expect multi-patch series
> to have a cover letter.

Sorry, my bad. I'll keep in mind while submitting v3.

> > The second one is addressed by using IPA-based TLBI (IPAS2E1) in
> > combination with VMALLE1 whenever the IPA range is known instead of
> > using VMALLS12E1. There is an upper cap placed on number of IPA-based
> > TLBI. This factor for execution time of VMALLS12E1 vs IPAS2E1 is
> > found to be 70K on Graviton4.
>
> Is this running Xen on baremetal or in nested virt?

Yes, this is with Xen running in nested virtualization. I'll add this infor=
mation in the commit message.

> > +    /*
> > +     * If IPA range is too big (empirically found to be 256M), then fa=
llback to
> > +     * full TLB flush
> > +     */
>
> Bertrand, Michal, Stefano, Luca, can you check this limit would be ok
> for your setup?

Yes, please, if anyone of you can evaluate it in baremetal setup, then it w=
ould be great. Also, I have currently used the same limit in Arm32 which ne=
eds to be evaluated and it is not possible in my current nested virtualizat=
ion setup.

I'll update my patches as per the feedback comments and send out v3 soon.

Regards,
Haseeb

--_000_KL1PR0601MB4588F25641F3FB9AA5C355B3E6A2AKL1PR0601MB4588_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Hi Julien,</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
&gt; Let me start with some process. In general, we expect multi-patch seri=
es<br>
&gt; to have a cover letter.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Sorry, my bad. I'll keep in mind while submitting v3.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
&gt; &gt; The second one is addressed by using IPA-based TLBI (IPAS2E1) in<=
br>
&gt; &gt; combination with VMALLE1 whenever the IPA range is known instead =
of<br>
&gt; &gt; using VMALLS12E1. There is an upper cap placed on number of IPA-b=
ased<br>
&gt; &gt; TLBI. This factor for execution time of VMALLS12E1 vs IPAS2E1 is<=
br>
&gt; &gt; found to be 70K on Graviton4.<br>
&gt;&nbsp;<br>
&gt; Is this running Xen on baremetal or in nested virt?</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Yes, this is with Xen running in nested virtualization. I'll add this infor=
mation in the commit message.&nbsp;</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
&gt; &gt; +&nbsp;&nbsp;&nbsp; /*<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp; * If IPA range is too big (empirically =
found to be 256M), then fallback to<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp; * full TLB flush<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp; */<br>
&gt;&nbsp;<br>
&gt; Bertrand, Michal, Stefano, Luca, can you check this limit would be ok<=
br>
&gt; for your setup?</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Yes, please, if anyone of you can evaluate it in baremetal setup, then it w=
ould be great. Also, I have currently used the same limit in Arm32 which ne=
eds to be evaluated and it is not possible in my current nested virtualizat=
ion setup.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
I'll update my patches as per the feedback comments and send out v3 soon.</=
div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Regards,</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Haseeb</div>
</body>
</html>

--_000_KL1PR0601MB4588F25641F3FB9AA5C355B3E6A2AKL1PR0601MB4588_--


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 09:25:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 09:25:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180297.1503502 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSXUz-0003ak-Vp; Mon, 08 Dec 2025 09:25:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180297.1503502; Mon, 08 Dec 2025 09:25:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSXUz-0003ad-S3; Mon, 08 Dec 2025 09:25:41 +0000
Received: by outflank-mailman (input) for mailman id 1180297;
 Mon, 08 Dec 2025 09:25:40 +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 <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSXUy-0003ZA-NP
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 09:25:40 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dc783f8a-d417-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 10:25:39 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-42b3c965cc4so1930010f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 01:25:39 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbe9070sm24301825f8f.7.2025.12.08.01.25.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 01:25:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dc783f8a-d417-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765185939; x=1765790739; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=aP1D+R/GRdoPWvf3Nq8tvD8qDup3udkssVSCwcGTRIs=;
        b=LWu5rHrxkXYDiPWzeNVAJcG6klaLmA4R8JzGdNd27PW5Uw04yhOuygD5IDVBGQa0i2
         BR4ag4uosq5E5vepa8HrfEf7aVJ9jGWkw8Kmlwqtp+Hg+MkemMFpfT2RMIM48XsNzcph
         VGjqhJO5f9qXu7krl1kkxTTRHbG+rIqQ42NArjb7yTUQLSTAhIB86IYdJ9yWK1Ars1/e
         uIeST2WXBjtMjvkgv9rR915y9JsAP3YRv4EqyJL9hhDupXztOkSCYs5ZOhxPgMRObBEb
         sZWX3vM3dAF6A0YTF+Vfxv5R/z34mIDMWEVty2nk4EyFAqib99FEXFlTeugkl6iCo6JR
         HdjA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765185939; x=1765790739;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aP1D+R/GRdoPWvf3Nq8tvD8qDup3udkssVSCwcGTRIs=;
        b=dNbvVdf/c74IX1sC6oEGsLIAmUHLBZzoLt+jf0ma/qnMNGP1pMITV3+HA1hJBn/W8r
         Y1K+tZJemdrvqKKjsfo74TLtVTpoReg8fLWgcuay+LnHiThwKz0zR0I2W6gpG5e98FhF
         AiMTXwXgZ0f+EBTuaSJSDfJWscNNc2a6YYzCgI6EWAv0e4m5o10QUpd7/nmZbh7mt+OX
         bJTUGUO9Oh/NGGm9zFNbpNT+FeGVQkxNjudfAxYfcYroiT/muqImfTMpFp3TgA9CuMPq
         Ck2T2HN6DWEa7sGwKVSAJOI8krjjNZBRp7YKI8Ek23Y2D2iyUfTcGxUnfT4KSZHkxgVK
         OFWg==
X-Forwarded-Encrypted: i=1; AJvYcCU9IQD9U8LFdKxWVuvmmvMCou0H+DrHWQVumz6dtQsZAtTi84mDqN+qcsnLNiM1dy6yZVpt8whX5a8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy5VUyOtc8ECUu0fdU4nfu4TXp8RW5J7A5gpDgnD3ID0MoObKBG
	BezjbZQJuBkn+tDSCoPTWQNlb8AMRuYiAmplh8pcPRREdhIkOj1huRcxn74QH2dy9g==
X-Gm-Gg: ASbGncvsgyiRcioJb+oUI5a/T+FDNg4L82pBRzjqzRgoLSbRYJuSxuO1vhRwz/fYw+u
	ZHbrcaXYqan+KjUcghMq8Sm1hBmKQokyG31YHz2iQekL/XBKXNGAp86h09FY9FSeAOfSCMhautX
	BXcHgZ5f0U+S1cbDlWXm97RVBtL8QRFUD7mVN0KQzlSOwwT5kQ3peQcq5LVD18LkIem6qrG2qlc
	rk0sBy7/2pPVH+VmDpjxoU3T3y+3pffgonyDNyaawGo0GCsYHnKQ1ZrinVZ0Rlu1WNX9ddo5aQV
	Y7A0eAz8tskiyz+bqSWryB4vX78Mv+uG0GU3T3LrNU3y7/3gLFEfnCPuenfaslaZyXvcrA4uy9B
	g3bBeZyE7LO+h39zr9wV9wng3OxVJCP42mg1P36gZa8LjrkcZk6iyIkUaawnkcD/kudmdSVe6zL
	E1Gu0X3eaefWRFCcP618CoIZBRAh2xyOk62hOaagpnidk6/+6X3vRYq8luzDyF6IknMV02ddwUl
	xw=
X-Google-Smtp-Source: AGHT+IGY2emwMtsTJ+eGGw0i2uzNKsfTyWKXjL7M59/vxPyPEilj/aEsG6E/a7LpFYhR/moRDM7cFQ==
X-Received: by 2002:a05:6000:40de:b0:42e:d669:9e84 with SMTP id ffacd0b85a97d-42f89ef1a08mr8732003f8f.29.1765185939191;
        Mon, 08 Dec 2025 01:25:39 -0800 (PST)
Message-ID: <7d019929-24df-4523-9817-6c17017c2320@suse.com>
Date: Mon, 8 Dec 2025 10:25:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] x86/amd: Exclude K8 RevD and earlier from levelling
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251202105710.1472927-1-andrew.cooper3@citrix.com>
 <20251202105710.1472927-3-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251202105710.1472927-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.12.2025 11:57, Andrew Cooper wrote:
> Between RevD and RevE silicon, the feature MSRs moved location.  This property
> is highlighted by the suggested workaround for Erratum #110 which gives the
> two different MSRs for the extended feature leaf.
> 
> The other feature MSRs are not given and while they're easy enough to figure
> out I don't have any K8's to test the result with.

I can see where you're coming from, but shouldn't we then first document those
extremely old models as unsupported in SUPPORT.md?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 09:41:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 09:41:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180310.1503512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSXjo-0001ZK-VV; Mon, 08 Dec 2025 09:41:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180310.1503512; Mon, 08 Dec 2025 09:41:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSXjo-0001ZB-QH; Mon, 08 Dec 2025 09:41:00 +0000
Received: by outflank-mailman (input) for mailman id 1180310;
 Mon, 08 Dec 2025 09:40:59 +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
 <SRS0=RPXi=6O=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vSXjn-0001Z5-I6
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 09:40:59 +0000
Received: from mail-oi1-x22a.google.com (mail-oi1-x22a.google.com
 [2607:f8b0:4864:20::22a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id faf3c0fd-d419-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 10:40:50 +0100 (CET)
Received: by mail-oi1-x22a.google.com with SMTP id
 5614622812f47-45358572a11so2430022b6e.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 01:40:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: faf3c0fd-d419-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1765186849; x=1765791649; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EIFD83Wxz40U48Ctw0c9Ht8sg1gr5GRjFCzPgyPZPJo=;
        b=bkB1Fa45dGcHWKgd9tecq9+CY2Ze4Q0N7bbBWBHnF1xKkQsb8iPioqfn7gJcpxlulV
         wQLVbambqFzhmBvl7MIvOpwtgsWHswMQcyqP+L76RsgnvaTGJp3dAnWi1tAmtrMkXf3Z
         ytS8v7CDi9Ml7xBNFFS3xA1nGKN5bd7ct/jdryD2vr5rGC/4hL4Fg8g0aCr4HaLiShvo
         06CoRsgyflh42S64LvCP2/Y8Z1kOia+Pf1x5YPubtvOsqMZEOPjnzykiPERLOLej8L+8
         IELzHDILu4Qcp3VDiuqODYYK3AEe6Maygbpd/OVbTqkK/J1uaNlrzUEmLB0b7WENxd4o
         NAWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765186849; x=1765791649;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=EIFD83Wxz40U48Ctw0c9Ht8sg1gr5GRjFCzPgyPZPJo=;
        b=ENgNYg25pmc/87txcemofnjX6WBEGbalpwYVe/XZ6EiGxvvS/qbxoChhgSvZ+GGiIP
         vSxd16QnGW7sHvDQAqBpMcFi2veH5pKleF41wQSlhOnFpw1PGOMm3ioef02gF7I5MEC+
         cTB1Et4KJ0Ijg06L/iyEjjuTxNj5q+/oiRZJVCmiFO4tuY7fw0KQ9D79Vw91LRBplGY+
         xqYtKQKvL3t6BzEqk1dTpAUoVo5VxyqsEhX3Eq4B4+bFtn2+q9bEesfmFUvhH6U7J0Lm
         FS73aUrKTp48B4nkCLeO7eAWvdDq8IkCuqXu9QMgw+D5AzLo98qbXFxF6kXyh5vIHem6
         Y4Xw==
X-Gm-Message-State: AOJu0YxUZi4n9V3l4MBdpH3lOhKkVv2Z1KHd4p0MLrV3wYuKYc5FmM7J
	saHu/BWmzb8A88TDcxPcu+ZsaUZZeqrbK0od0TnKpGpGeGyM2jRrSP41DsvKZIPd68qYd23RrAp
	Hy9maTw+5/PodqjDsAePV1xX4N2oifZ8G5Y0aEUHeJg==
X-Gm-Gg: ASbGncsrnjvDU2Sq7qNe2lzJgH5hV44C36Ia5Vl3Vn36G/Q8CNMSAVLiNL/SeORYZYn
	MtKd2KB6ZjOy4ufY87LAurciBXfEc9EQ2bUKWL8MwRNMq0Sh8A0axUaKn4yWre8nsszjb83K9zj
	X6l0X8/RvKIckh4QxM36tQVOhqNC2H0hrPZrOnufPmILTlCeWLdj2GEredmhI6e1fBgyT+xcXpS
	alDdqOFXtcHzJuS45+8FT6KRamOCLPHU1vnus8WpoQRtVW5hzsNtxTaeeR2vYONVsUAiFS7wWyF
	O+V4xFWH/R9Iz96UtnGLzaefOg==
X-Google-Smtp-Source: AGHT+IEKT+4egPm5WvU+agT/vWIne15K7uj4Zo04IdXSSGMNn7bhT+RAwPtWsuOYagkFaU+ofk+vVGTbGQDj2wBQx6g=
X-Received: by 2002:a05:6808:6ec6:b0:450:4628:e3ce with SMTP id
 5614622812f47-4539df5ff2fmr2689925b6e.15.1765186849132; Mon, 08 Dec 2025
 01:40:49 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764930353.git.bertrand.marquis@arm.com> <6832face6780228ac2704da70d5ddbd7f00dd385.1764930353.git.bertrand.marquis@arm.com>
In-Reply-To: <6832face6780228ac2704da70d5ddbd7f00dd385.1764930353.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Mon, 8 Dec 2025 10:40:37 +0100
X-Gm-Features: AQt7F2oIssacjv1vBGPB0rVqwvkLpr6MbrJeb2oZWb_4ypnAU6SFG7xYQeHp23Q
Message-ID: <CAHUa44GCWkH_9Wz7KZas28n1VXCK=-RtH6b1mVNfm=BoLP_buA@mail.gmail.com>
Subject: Re: [PATCH v1 01/12] xen/arm: ffa: add FF-A v1.2 function IDs
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Fri, Dec 5, 2025 at 11:37=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Bring the FF-A headers up to the v1.2 baseline and fix the function-numbe=
r
> range used for ABI discovery:
>
> - update FFA_FNUM_MAX_VALUE so the FF-A function-number window covers the
>   full v1.2 range, and derive the ABI bitmap bounds from
>   FFA_FNUM_MIN_VALUE/FFA_FNUM_MAX_VALUE instead of hard-coding
>   FFA_ERROR/FFA_MSG_SEND2
> - define the new v1.2 function IDs; CONSOLE_LOG_32/64 and
>   PARTITION_INFO_GET_REGS are added for ABI discovery even though they ar=
e
>   not implemented yet
> - extend the firmware ABI table to probe RUN and
>   MSG_SEND_DIRECT_REQ2/RESP2
> - while there, fix an off-by-one in ffa_fw_supports_fid(): the computed b=
it
>   index must be strictly smaller than FFA_ABI_BITMAP_SIZE, so use >=3D in=
 the
>   bounds check
> - Also fix comment as call IDs reserved for FF-A are from 0x60 to 0xEF
>
> Keep FFA_MY_VERSION at 1.1 for now; we only advertise v1.2 once the
> implementation is fully compliant.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes in v1:
> - Add CONSOLE_LOG_64 and rename CONSOLE_LOG to CONSOLE_LOG_32
> - Set MAX value to 0x8E which is the highest abi value available in 1.2
> - Mention in ffa_private.h comment that SMCCC is actually reserving 0x60
>   to 0xEF included for FF-A (and fix previous FF which was wrong).
> ---
>  xen/arch/arm/include/asm/tee/ffa.h |  3 ++-
>  xen/arch/arm/tee/ffa.c             |  4 ++++
>  xen/arch/arm/tee/ffa_private.h     | 21 +++++++++++++--------
>  3 files changed, 19 insertions(+), 9 deletions(-)

Looks good:
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 09:41:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 09:41:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180317.1503523 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSXkZ-00020c-6Q; Mon, 08 Dec 2025 09:41:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180317.1503523; Mon, 08 Dec 2025 09:41:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSXkZ-00020V-20; Mon, 08 Dec 2025 09:41:47 +0000
Received: by outflank-mailman (input) for mailman id 1180317;
 Mon, 08 Dec 2025 09:41:46 +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 <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSXkY-00020J-Eq
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 09:41:46 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1bbfbda0-d41a-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 10:41:45 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4779cc419b2so47960095e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 01:41:45 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4792b17588asm120282145e9.17.2025.12.08.01.41.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 01:41:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1bbfbda0-d41a-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765186904; x=1765791704; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0SX9mpPZWe8AaMpbX2GxKQl/7tGq4Y0sUgtNWy/3EII=;
        b=UAd+mTTU3J6MMQpj9PFZyBNE97gqq3lhH64yRHe2Bytiy+du21pmL4Az+ixUlyXvgb
         PnorWOJ13YoRSfXo1oosxsvecOu+vygWYSkLM9SHyOqNjTo2TKYTSztOxSQGkeLpZM78
         Zh4k3+DCfiYSl73CgObDlqgnyD3BcqQPmCPat9r0zX/yAMIOG6hpa6Mk16Blf9vPjG/0
         H0yWY1lMmWqY02TkeINYOhWNWeilu/6CCJCKQSBssrZm+T7jnSLIKKHpHeMMztjGHCjb
         8EzQ9NfJHgUQuJBuUkw2xGqruXxF5QayfH0d+BhWZNRno8kCh/QvS3FdQZ3Genn/w6Uh
         aRpg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765186904; x=1765791704;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0SX9mpPZWe8AaMpbX2GxKQl/7tGq4Y0sUgtNWy/3EII=;
        b=aLynYzYtb/0uE72k//pWMdQmo6joloGbTtD0smlZt3lSi7Ufp9EvLbEeiwvShVBl5r
         IOf6sVpkaZI0BY4FJDufrAGebIbLKgpOgXDg9aXirj5LF4zYCRMd7mAA117zdPfewR5e
         KIBTL1YaI8385GJmHdIy49/cqj+THrVu9dfrmTS9hhycGiMgC8VYYCOfkj25tBMaKLMl
         fHri9ahdAy/14J5nx4/0UgQvzBeMkyBbDspJiOWYO2eGsxgaGtWE7wb5LAhTVcRwK3rm
         utCBazPUThEITJpZVA97W1pCsi5BIeOMLNUeN17KCNThzdDoJuD2jOmbyaQ29djHvBXW
         s22w==
X-Forwarded-Encrypted: i=1; AJvYcCXdgHOiMZaDXZvWwkfjyAca1KROZBmSikw+6GaCFLjix+8hazaYV8hk2COdvPPC/L278s5LQusbK5M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyhtdKWf58OCU+se7OQ72TDuxOv1nyFmg7rfabbdZJuTqpVZxQM
	MyB3DoX7IQCZPG0pOavtSlrqePWYfKnrpnvZZve0L01ivn9geB+22gJP9B+wANk6Rw==
X-Gm-Gg: ASbGncsHBOW/9bsNG9h2lJRf+zK9sWpOZpIaxdp85uyrhe/Y3e43+y+ZEmYFtFOqAFw
	MsN8O4yEdUTttnuSMC3GaFQyiCQyz0JyoHpWLwqJnS8RtL/7dLNNu3RMR1g8JUiVgozFs506WmL
	DYuycsJ3ryQ/9MSz12S9gUMnEGJsEu2Q+XuBr0jOoLqq6R8aePvrcBF8vNlOZ4dKXpkWHM/0RRh
	hd6My0/Kj2LZBYGb4RooOsn8TqAnJZ5lfVhiqU9sA435FJn7xgGYAGQlKdRkVxsPU88d3w21bDa
	/79H1xGdvST9cnFCniCob4hvXcJQcDIhEhKkoPy20N+dDB9ImbtzZCiAbyahV+mVCLlsgWpM2tX
	iV5ndDJPHxfnBYmG7LFkjSKSkSzeaEb4f7C3ry7I0TOypVJmAFQGga+63oqrK7mUDdXckg6VwEC
	1PKdCoOYIRnLHkEH4G7AWdWYPL5rbyDufth73E7jMm5eUaq0Hj7GobFwEqFlG3mwkDC1PU+XIyb
	YQ=
X-Google-Smtp-Source: AGHT+IGKour3tMG0hWNJfutLx/0mGbj6qno9ubsLiSKUVp/HIYJ49R2tGmj4EBe4Dao6hAb/fTVgCQ==
X-Received: by 2002:a05:600c:4f15:b0:477:214f:bd95 with SMTP id 5b1f17b1804b1-47939e3a6dcmr71089135e9.23.1765186904321;
        Mon, 08 Dec 2025 01:41:44 -0800 (PST)
Message-ID: <b5e45ef8-40ac-4a7e-b268-2573855a6265@suse.com>
Date: Mon, 8 Dec 2025 10:41:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] x86/amd: Delay amd_init_levelling() until after fixes
 to the CPUID MSRs
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251202105710.1472927-1-andrew.cooper3@citrix.com>
 <20251202105710.1472927-4-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251202105710.1472927-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.12.2025 11:57, Andrew Cooper wrote:
> There's no need for amd_init_levelling() to be specifically early.  In fact,
> it must be after init_amd() edits the feature MSRs, e.g. enabling TOPOEXT on
> Fam15h, or we revert the change on the next context switch.

However, ...

> @@ -1270,10 +1262,14 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
>  	check_syscfg_dram_mod_en();
>  
>  	amd_log_freq(c);
> +
> +	if (c == &boot_cpu_data)
> +		amd_init_levelling(); /* After CPUID MSR adjustments. */
> +
> +	ctxt_switch_levelling(NULL);
>  }

... this new placement conflicts with the two RDSEED patches which have been
pending for a while / too long. Even moving up wouldn't help, as the TOPOEXT
re-enabling is after the switch() that the RDSEED changes are being fit into.
Surely I could re-base accordingly, but it kind of feels that the older
changes should go in first, with whatever adjustments necessary done either
here, or (in a preparatory and agreed upon manner) right there, or entirely
independently.

Looks like it would be possible to move the TOPOEXT re-enabling ahead of that
very switch(), for the code above then to be inserted between that and said
switch().

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 09:54:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 09:54:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180335.1503531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSXwU-000410-A8; Mon, 08 Dec 2025 09:54:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180335.1503531; Mon, 08 Dec 2025 09:54:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSXwU-00040t-6b; Mon, 08 Dec 2025 09:54:06 +0000
Received: by outflank-mailman (input) for mailman id 1180335;
 Mon, 08 Dec 2025 09:54:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TwXn=6O=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vSXwS-00040n-R6
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 09:54:05 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d0a2991a-d41b-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 10:53:58 +0100 (CET)
Received: from CYZPR02CA0007.namprd02.prod.outlook.com (2603:10b6:930:a1::24)
 by SN7PR12MB8002.namprd12.prod.outlook.com (2603:10b6:806:34b::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Mon, 8 Dec
 2025 09:53:53 +0000
Received: from CY4PEPF0000EE37.namprd05.prod.outlook.com
 (2603:10b6:930:a1:cafe::c6) by CYZPR02CA0007.outlook.office365.com
 (2603:10b6:930:a1::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Mon,
 8 Dec 2025 09:53:44 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000EE37.mail.protection.outlook.com (10.167.242.43) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Mon, 8 Dec 2025 09:53:53 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 8 Dec
 2025 03:53:52 -0600
Received: from [10.252.147.171] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 8 Dec 2025 01:53:51 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d0a2991a-d41b-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WgVYs79N73VVxczyWayq0wY2wfPU3ap2vNN/xrr2CF9fUbBOGt+PJ1gU6hxjbav7qnp9uUjwdYRYZKOCg4W4hEvnJTPhVAiqfIWY9akVc0sxlHeZJqJBXGRPBMhZf2QtgVHO20MwRAuaCzbneyiTlqkkba2Br+M0PzkvTzI5Ra7eRVNS80X69oWd1nv2SPoqBbzbbATcnSMtt0dvUg7Z2UIEl3mJunvZ1lakX134wqYQHDt0gCoKCwNYA6ejsj2epcaoFUzetZCu8GZmSmCWagaQGV6mfg5/PiNuuTuBJeaAJkUXb0CdUkKle1izk15gQO2b0kmzZk0/W4W/RhJBrQ==
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=nqAGyUqismXMR9zFHdltjS6gLfxdmQoggg+u9lhVEoc=;
 b=JUUpIT9WhUBusKmM+gzpzH/tsXzyTLYQgISfP6CkZ/ohntMPDsnv8LMVNNST4SI9QuerP/BGTy+Y+lC3LCWMMMPrLryFef7XYR9izAfyZx8R+POkMbGVZLq2ezu/BqDQ10ZcN9uO7E46RNMo1oz8h1ZA1jTtM2X77jBfHf8rYjEsjq2y06/nWWC79H1whkoIRxIXA0EtbzRWuqliZIV9WwybJWdFuyw1mpp26C2+NR3+TrhYHsqSjwMU6EU7LWGPrQ4KnYEcL69OUFYQgKi8xfe9L6j8O2GPVgR3YSNm4n/6bPvqXiipUfy8CE15kjxFJJ5oVafbPy4JkXDrv+5GRQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nqAGyUqismXMR9zFHdltjS6gLfxdmQoggg+u9lhVEoc=;
 b=EMsJZtHS8lV0uZm7KwAqSeOCQYD8n9WvIpB8bV+wkOWQ85BxzuMQm72lapPUHXdLEpHNuIlFQLTq3VlS3d16hnNp6tnI7cUj9p74Tiyjkq/X1q/GEjJUX6qTZPyw+bUDmcXhHeRn7qLdM6DQrCYvPQ7LT1iGCNxmUCnFhzfSzeQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <3c0a4987-81ef-4cf1-a1ad-bd8872a0dd67@amd.com>
Date: Mon, 8 Dec 2025 10:53:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/6] arm/mpu: Implement vmap functions for MPU
To: Harry Ramsey <harry.ramsey@arm.com>, <xen-devel@lists.xenproject.org>
CC: <Luca.Fancellu@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20251128095859.11264-1-harry.ramsey@arm.com>
 <20251128095859.11264-3-harry.ramsey@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20251128095859.11264-3-harry.ramsey@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE37:EE_|SN7PR12MB8002:EE_
X-MS-Office365-Filtering-Correlation-Id: 4e57eced-eb57-42f8-a975-08de363fb207
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NDJGWlk5TXpqMWJVT0hEQkVjL20wL0JJa0M2MEJmeXdsbDF5QUdoenVzUTg1?=
 =?utf-8?B?RFBpR0ZDN3lvclNmQzBhSHlVekhLM1FzRDZCMHRZdmM0VEF0UjAvOEdYd3Zq?=
 =?utf-8?B?enQxbHJHWUh2TU1NS2Z1Q3Zja1BkWHE1amg5Q0RkNFVubC9sOGNYMHVLTzVm?=
 =?utf-8?B?YmxrVVRkZzdNQ2FBbGlGN1VmT3BpT3ArMGZVSGVyV3dPdExyM2hFbHhoMSts?=
 =?utf-8?B?dVg2TWUrc2J3Uk9vd2RTc0s2ZHdSM08zM0ZMT0lmUThJblk2Q1FMM2kxc2dn?=
 =?utf-8?B?L0FqZjVDUFcvOGN0NFoxOVRMYW9OTVZiSmF4OVY0NndhNmRlSGY0M0tRVjJG?=
 =?utf-8?B?YnlQZFRPTG5iWEhoR1VvZENuNUxtSDlPdVFSRHJHRHV2V2VPcFI0Wnh0Vys4?=
 =?utf-8?B?SlNmajIzak5CbmJIeXVxZ0tYSnV0UDJNS04zeW95S3BoV3F5QVF4bFQvdjBx?=
 =?utf-8?B?R2puRlQ1VFc4djE1TGluSy9TQWIzTWptbjIxM0N6NG1RRi9WSTdSUE13WGxa?=
 =?utf-8?B?QzVqd3FaWHZsQXUwR1hieFpsUDgzWDk4OElremFFUW1aRXRVSXk1WkszbkJF?=
 =?utf-8?B?YmlxdlJ0dnliRTI4T2wxdXcraTRUMHpjc3dpcGpjeERmTVBJSGpwVTF5Q2ht?=
 =?utf-8?B?UW52UVBaK2dVS0QrQnRsczBLbHpIV1BKZy9ZY1ZtSUhSWCsyQmxycHFuZEZM?=
 =?utf-8?B?MEJWK2FpRURXdmc5R0Zab0Q5cEZVQXZXUFVBWnZIdCtFNHc1cEFNcjM4Uk5S?=
 =?utf-8?B?L0JjdjVpU2JpWjRia2I2L085bDdieEFQc0xtbS9leFBRbEZHckdlRU5KcWI1?=
 =?utf-8?B?eWJFWTJxc0dOYlBLWXZsNVpGN1hXeTUrY0RJVzBhKysraWhkY1hvUkVUQXQx?=
 =?utf-8?B?MHlLUXM0WVI1Q3ZTM29NNnJ5K3ZGc09lOVNDa2pTUjIyYnNvZWtXZE9KOVpa?=
 =?utf-8?B?ZkxBdlVzem9tQmJPQitrcUQvS05NUlpLeWl2ODNvSk1RRVduQWl0cnlrYnhJ?=
 =?utf-8?B?eXVGcHFud01GZ05USWtsSlE0VnVpUDdtTHoxUDEzODk3NzZkZTJGSXQzSlQ5?=
 =?utf-8?B?emVtQVBWc3N4WWQ0eTczR1ZwRTk3Y2VTMXNuU21kd0hZb0xQNFBpVTRER0Fh?=
 =?utf-8?B?TEtWKytxSzJOWjBXam9wS1lqTUtXb0dDV05tMWpFK1Y3TUhMWEErODFGZVNP?=
 =?utf-8?B?UjF5UnZzK01SY0FLOEtnckJDalJoWU91MmplZllGU2h5blRyV3F4azd4eTJu?=
 =?utf-8?B?amlIZ29iUmFxclo2eWtuT09yNCtEMGVGSUQvVWppZmpLRXhNUVZQeW55WVlR?=
 =?utf-8?B?dTJpdnZuWTA5SEVZU3ZtS2w5ejc1Z0gxQWNDNUx1cmtkOGt6VE15TURZbldu?=
 =?utf-8?B?Ujd0SVFYSS9mZnl5WkVJL25OYXZ2NXRFdWYxemFJZUw2Sko5ckZHOGlPUDQ4?=
 =?utf-8?B?NlkwUU1QOHJpT3ZTVWVzWmN3SHQ0cTRPb3ZJRUczK0g2aitTMy9MRDBOS1N1?=
 =?utf-8?B?bjBqUi9xUkx6RnlZOStqTm43cDdFWlgzUnhHQTR1Ulp1MVdMMlMybUVRa2xC?=
 =?utf-8?B?RExXM1BDQUtHRHUwNnluWkphWHRpZmZ1RWV0bC92YWNZdGk2TkM5eXJ5eGJr?=
 =?utf-8?B?SmpzNk4wU2d2dklOR20xd2xjckJIWGpDQXROMlJyVWl0cUZHcmlWbG1iTzVF?=
 =?utf-8?B?SmRVMlZ4T0VnRDJ5M2NmUjYzM29CK2pLYkY3QWMvUW5nRnZjQTEvSVZrRjNK?=
 =?utf-8?B?Q1pQcERwKzh0eVF4STU5NUlZdnV3UFdOMUM0S0lvWVlWNWpIV1pVVlB2Y29w?=
 =?utf-8?B?UmhpSENjRDRYY05YaEtXcVNYWWhnSGsxZXIxM1NheU1EazJiOFIwR0ZGeDZo?=
 =?utf-8?B?YVpHUjNBVWxQbE5jTEw2QzhXZWlER1ZrbDJXckJsWXJYOEhQdkRDWmdaRlkr?=
 =?utf-8?B?U3hZZ1Ryd21Pc0Z5aHAyVE1CdlA3OXpmaGR1bXJKQUlESEd3TnJFc01LWXc5?=
 =?utf-8?B?amJnT3pTZDY3b29SLzE4NmJCK2p0Yk4vVlZIUDZzeGlXdVFvTXVYVk5PYVVP?=
 =?utf-8?B?TTBldzJ2aDcwWFlpdVpEYWxmRnJ4dEtuamxnTFpwTUp4dkVmaUViYk16R0Ra?=
 =?utf-8?Q?+gbU=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 09:53:53.0008
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4e57eced-eb57-42f8-a975-08de363fb207
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EE37.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB8002



On 28/11/2025 10:58, Harry Ramsey wrote:
> From: Luca Fancellu <luca.fancellu@arm.com>
> 
> HAS_VMAP is not enabled on MPU systems, but the vmap functions are used
Just as a reminder, we don't intend to support VMAP on MPU? Asking because it
would otherwise be a duplicate effort to implement only these two helpers.

> in places across common code. In order to keep the existing code and
> maintain correct functionality, implement the `vmap_contig` and `vunmap`
> functions for MPU systems.
> 
> Introduce a helper function `destroy_entire_xen_mapping` to aid with
> unmapping an entire region when only the start address is known.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
> ---
>  xen/arch/arm/include/asm/mpu/mm.h | 11 +++++
>  xen/arch/arm/mpu/mm.c             | 67 +++++++++++++++++++++++++------
>  xen/arch/arm/mpu/vmap.c           | 14 +++++--
>  3 files changed, 77 insertions(+), 15 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
> index e1ded6521d..83ee0e59ca 100644
> --- a/xen/arch/arm/include/asm/mpu/mm.h
> +++ b/xen/arch/arm/include/asm/mpu/mm.h
> @@ -111,6 +111,17 @@ pr_t pr_of_addr(paddr_t base, paddr_t limit, unsigned int flags);
>  int mpumap_contains_region(pr_t *table, uint8_t nr_regions, paddr_t base,
>                             paddr_t limit, uint8_t *index);
>  
> +
> +/*
> + * Destroys and frees (if reference count is 0) an entire xen mapping on MPU
> + * systems where only the start address is known.
> + *
> + * @param s     Start address of memory region to be destroyed.
> + *
> + * @return:     0 on success, negative on error.
> + */
> +int destroy_entire_xen_mapping(paddr_t s);
NIT: I read it as all the mappings which is a bit misleading :)
Maybe something like: destroy_mapping_containing or alike?

> +
>  #endif /* __ARM_MPU_MM_H__ */
>  
>  /*
> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
> index 687dec3bc6..29d8e7ff11 100644
> --- a/xen/arch/arm/mpu/mm.c
> +++ b/xen/arch/arm/mpu/mm.c
> @@ -290,6 +290,35 @@ static void disable_mpu_region_from_index(uint8_t index)
>          write_protection_region(&xen_mpumap[index], index);
>  }
>  
> +/*
> + * Free a xen_mpumap entry given the index. A mpu region is actually disabled
> + * when the refcount is 0 and the region type is MPUMAP_REGION_FOUND.
> + *
> + * @param idx                   Index of the mpumap entry.
> + * @param region_found_type     Either MPUMAP_REGION_FOUND or MPUMAP_REGION_INCLUSIVE.
Both of these are unsigned, so why the parameter is int?

> + * @return                      0 on success, otherwise negative on error.
> + */
> +static int xen_mpumap_free_entry(uint8_t idx, int region_found_type)
> +{
> +    ASSERT(spin_is_locked(&xen_mpumap_lock));
> +    ASSERT(idx != INVALID_REGION_IDX);
> +
> +    if ( xen_mpumap[idx].refcount == 0 )
> +    {
> +        if ( MPUMAP_REGION_FOUND == region_found_type )
> +            disable_mpu_region_from_index(idx);
> +        else
> +        {
> +            printk(XENLOG_ERR "Cannot remove a partial region\n");
> +            return -EINVAL;
> +        }
> +    }
> +    else
> +        xen_mpumap[idx].refcount -= 1;
You could avoid nesting if/else by doing:
    if ( xen_mpumap[idx].refcount )
    {
        xen_mpumap[idx].refcount -= 1;
        return 0;
    }

    if ( MPUMAP_REGION_FOUND == region_found_type )
        disable_mpu_region_from_index(idx);
    else
    {
        printk(XENLOG_ERR "Cannot remove a partial region\n");
        return -EINVAL;
    }

> +
> +    return 0;
> +}
> +
>  /*
>   * Update the entry in the MPU memory region mapping table (xen_mpumap) for the
>   * given memory range and flags, creating one if none exists.
> @@ -357,18 +386,7 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
>              return -EINVAL;
>          }
>  
> -        if ( xen_mpumap[idx].refcount == 0 )
> -        {
> -            if ( MPUMAP_REGION_FOUND == rc )
> -                disable_mpu_region_from_index(idx);
> -            else
> -            {
> -                printk("Cannot remove a partial region\n");
> -                return -EINVAL;
> -            }
> -        }
> -        else
> -            xen_mpumap[idx].refcount -= 1;
> +        return xen_mpumap_free_entry(idx, rc);
>      }
>  
>      return 0;
> @@ -418,6 +436,31 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
>      return xen_mpumap_update(s, e, 0);
>  }
>  
> +int destroy_entire_xen_mapping(paddr_t s)
> +{
> +    int rc;
> +    uint8_t idx;
> +
> +    ASSERT(IS_ALIGNED(s, PAGE_SIZE));
> +
> +    spin_lock(&xen_mpumap_lock);
> +
> +    rc = mpumap_contains_region(xen_mpumap, max_mpu_regions, s, s + PAGE_SIZE,
> +                                &idx);
So here you are searching for a region that includes at least s + PAGE_SIZE.

> +    if ( rc == MPUMAP_REGION_NOTFOUND )
> +    {
> +        printk(XENLOG_ERR "Cannot remove entry that does not exist");
> +        rc = -EINVAL;
Here you assing rc but ...

> +    }
> +
> +    /* As we are unmapping entire region use MPUMAP_REGION_FOUND instead */
> +    rc = xen_mpumap_free_entry(idx, MPUMAP_REGION_FOUND);
here you would redefine it.

> +
> +    spin_unlock(&xen_mpumap_lock);
> +
> +    return rc;
> +}
> +
>  int map_pages_to_xen(unsigned long virt, mfn_t mfn, unsigned long nr_mfns,
>                       unsigned int flags)
>  {
> diff --git a/xen/arch/arm/mpu/vmap.c b/xen/arch/arm/mpu/vmap.c
> index f977b79cd4..d3037ae98a 100644
> --- a/xen/arch/arm/mpu/vmap.c
> +++ b/xen/arch/arm/mpu/vmap.c
> @@ -1,19 +1,27 @@
>  /* SPDX-License-Identifier: GPL-2.0-only */
>  
>  #include <xen/bug.h>
> +#include <xen/mm.h>
>  #include <xen/mm-frame.h>
>  #include <xen/types.h>
>  #include <xen/vmap.h>
>  
>  void *vmap_contig(mfn_t mfn, unsigned int nr)
>  {
> -    BUG_ON("unimplemented");
> -    return NULL;
> +    paddr_t base = mfn_to_maddr(mfn);
> +
> +    if ( map_pages_to_xen(base, mfn, nr, PAGE_HYPERVISOR ) )
> +        return NULL;
> +
> +    return maddr_to_virt(base);
>  }
>  
>  void vunmap(const void *va)
>  {
> -    BUG_ON("unimplemented");
> +    paddr_t base = virt_to_maddr(va);
> +
> +    if ( destroy_entire_xen_mapping(base) )
> +        panic("Failed to vunmap region\n");
Looking at common vunmap() we ignore the return code from
destroy_xen_mappings(). Is it ok to diverge?

~Michal

>  }
>  
>  /*



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 10:21:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 10:21:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180346.1503542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSYMs-0008JS-Ar; Mon, 08 Dec 2025 10:21:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180346.1503542; Mon, 08 Dec 2025 10:21:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSYMs-0008JL-7F; Mon, 08 Dec 2025 10:21:22 +0000
Received: by outflank-mailman (input) for mailman id 1180346;
 Mon, 08 Dec 2025 10:21:20 +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
 <SRS0=ZPsC=6O=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1vSYMp-0008JF-V1
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 10:21:20 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a15d59b3-d41f-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 11:21:16 +0100 (CET)
Received: from AM8P190CA0028.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:219::33)
 by FRZPR08MB11022.eurprd08.prod.outlook.com (2603:10a6:d10:13d::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 10:21:13 +0000
Received: from AM4PEPF00025F9C.EURPRD83.prod.outlook.com
 (2603:10a6:20b:219:cafe::e0) by AM8P190CA0028.outlook.office365.com
 (2603:10a6:20b:219::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Mon,
 8 Dec 2025 10:21:07 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM4PEPF00025F9C.mail.protection.outlook.com (10.167.16.11) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.0
 via Frontend Transport; Mon, 8 Dec 2025 10:21:13 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by PA6PR08MB10419.eurprd08.prod.outlook.com (2603:10a6:102:3c8::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 10:20:09 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc%5]) with mapi id 15.20.9388.013; Mon, 8 Dec 2025
 10:20:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a15d59b3-d41f-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=YdCAIJ+rhzeiYnMFlYlycv+uPBppJOSOaokYtu2qoJw1MsRF1zL8n6ZEjoJupvwhyBYJ+wUPU9o7NDA8h5cJKDtxdXIZKb5RzoePmWiFPuks+kViR30ND+WV/mMcZQ2iiUKLQBspix7Y6yIip5uVkWcFqs8mrgrfXx5sfBwItFPiMSMIy+pAjXHZE0oQI+HUgdVICVS0VBGxHg9iZ5Fh4TC+d6A9hkICKcGOiGMr2Jwylh9cjCVksyVTtqWa/Wi+KK7Eq36m/sYshd0UEUiScRQ3hMLlmk9qHTeIcYL1tOIY//aNmdqrdm5MZXtW2DEqobl04rnMtgpl0aT4Zb5RAg==
ARC-Message-Signature: i=2; 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=MHefE14gMgmCvOQ4jeTpNoUNB7fqYP9fPVqof3NvQl0=;
 b=gvHxTZZKj7X8Un+S1kQQxlveTWIV8K8lIvpDLjHdjEFyY7o/GZZ1N/OjusBZrGnelCEwrW+89N6h+yFByKRINJwy4NA7x/xhJ6nDo6yHP1EQY25ysqD3ngQjKdcB24NC309EUXVTo6DAFM+SDJk0K2lSK+rwM6XkzA/onz3xVA4v7lBDxCOifoDd8gP3pMBY2ESpkfe0TkX+/hv+eB+SuZ586Etv9e0vmYm8Dxcpf0AzJXNjyk2bMyp1hfy9ZxGStXvgrbUyTNvv97YAk+1Ijrv36tZV7HGS4sBg8rafQOfJ60RPXnCTBSzyfcLfIg7q4J17PCXqg3S2nsQa5TlvaQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MHefE14gMgmCvOQ4jeTpNoUNB7fqYP9fPVqof3NvQl0=;
 b=lcsRe9nzx3vuQ9x/9l6gvr2VddDqgH2AvSx74L/cSKbsOxDOaQvwV9QM4Gbwf+rFMRDTg01ZNHHvnQJehPP1EJb+RiIyYxhRmM0R7kD8yMwottfWmDKy4LIXYUh9TKU+9xsAMRBHpEF6j1LJsSJkC+5l8YZNW1xBcI1HZMh+idE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Y47I8Shsb/IPgGNjfz5vfEEt/q+TRsquDVysZYO0mdStWRyxbWQn3b1V80gZwE2bX6UrpdAhkuF89ADhmljAdaubQ4ZMNgxdbb5/dJfV9EegFOMunJERFfwwXcYSnF/OKvoBYAuoNksM7+htmQGabb0JZ/D0r+KPBiP8dR2CZG3AWpxMhzs4QnTyY0ogaDyiSnfqk7DNeNe11UJBUNf1JO9MMlUFDQkc4lZM5q1aG8O5VlvsPwIsDEWi3ktRLGLzjztbeWVWQ8eT7LYulcJKpt587OJzjWD19arS9+b4tuZKgm9i3TeOTMEbJTlPbrRfR3MfVoN72MzdzunhWqA4JA==
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=MHefE14gMgmCvOQ4jeTpNoUNB7fqYP9fPVqof3NvQl0=;
 b=IO6XWvpm2uD27xKmVpssbNtH5LxB3CjfCxFQWwILt8tChNwzjwBXkOrTwgQTfSvK2/D/sya3banYKQErfkWIEbReJW44S3p6UC8qoYxjgtlxkAyJDSYyX+93ft/dKUX6OD7vS2Qo0ltfvHXBVPz6Xb+1KGxwGNqQUyQbcPBhYXh21JW1zlwG+uTGvqOYF7cI56ro8V1KvrG57UHeoYILXUguPQfWSV3ZE70c0xvXC++VJYAsk7NFpcfY3Vrn/7pMoz/lZRn9U94KW5kqQdQDs+6I6Qkyuq9lSvAX5kHde3nI5n9DlhSYtoIrJ+tl6qBfstY3NJjgULNUjqTKmW/fUQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MHefE14gMgmCvOQ4jeTpNoUNB7fqYP9fPVqof3NvQl0=;
 b=lcsRe9nzx3vuQ9x/9l6gvr2VddDqgH2AvSx74L/cSKbsOxDOaQvwV9QM4Gbwf+rFMRDTg01ZNHHvnQJehPP1EJb+RiIyYxhRmM0R7kD8yMwottfWmDKy4LIXYUh9TKU+9xsAMRBHpEF6j1LJsSJkC+5l8YZNW1xBcI1HZMh+idE=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Orzel, Michal" <Michal.Orzel@amd.com>
CC: Harry Ramsey <Harry.Ramsey@arm.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH 2/6] arm/mpu: Implement vmap functions for MPU
Thread-Topic: [PATCH 2/6] arm/mpu: Implement vmap functions for MPU
Thread-Index: AQHcaCiVsmELIMmqw0CIjLYoH4Hmo7UXiACA
Date: Mon, 8 Dec 2025 10:20:09 +0000
Message-ID: <04784EBA-BB67-495B-894E-A20A10569D8F@arm.com>
References: <20251128095859.11264-1-harry.ramsey@arm.com>
 <20251128095859.11264-3-harry.ramsey@arm.com>
 <3c0a4987-81ef-4cf1-a1ad-bd8872a0dd67@amd.com>
In-Reply-To: <3c0a4987-81ef-4cf1-a1ad-bd8872a0dd67@amd.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|PA6PR08MB10419:EE_|AM4PEPF00025F9C:EE_|FRZPR08MB11022:EE_
X-MS-Office365-Filtering-Correlation-Id: 0b8a5b04-9853-49fc-7805-08de364383a1
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?eHFUYWFEajdJQUdFT0NKbkVEanRJSGs1b2pSaDhzT1J5cnIxQlZSZU1KeVZW?=
 =?utf-8?B?aG5Rd1d4ajFlKytvdXhnRWwzcVN1NDhkb3BhaTRrN1dGbHVOV2tTdzYzODFr?=
 =?utf-8?B?Vy8xZWdxNk9KTTN2MWRjWnJZN2RRN2VwenQvK0FlK2h2VWJkMDFvZktRR3NE?=
 =?utf-8?B?enpjcmRqQ3pRcWpqdERoQ01kb01IQXVRUS9PZUtRUzVRQlpmSHFma3RldElu?=
 =?utf-8?B?eFJmTklyL3EvWUREdUFQSGJsUGJJdGl4RDJkRnBEU2wwV1dxQW9PeElMcU9i?=
 =?utf-8?B?QWdkMHY4NmxSeEZTeldRMWorTHU3c25uZFh0L0UvM0dSaVBLYXZUWnpJYWF3?=
 =?utf-8?B?VnJsTFlzdTdzR0VGRyt3MHppR3lLbVE1ZHpKZXhSVVhyRk56ZERHVXVNallH?=
 =?utf-8?B?ZnhVNysybWdVcHZQd3RsVk5NMGc5S0ZGQ0pIZERMSnpHT1A2K2FyRHNkek9U?=
 =?utf-8?B?ME02clFHZ2hkVWx6UVZtNW5WMmhaSWs4d3d6SU80SElXajZ5MVR4c2t5bklF?=
 =?utf-8?B?UVRPQVE5U0MrVFVlcHJ3Y2pvS3RXay8rVXNad0piS2ZuRG42SjlidHJaSzV3?=
 =?utf-8?B?cnRxSkNWaC9tbWZQQXg4cU95WjZVZkxVSlJsZXNreG9Zb2lUcTdtZGh4YXRy?=
 =?utf-8?B?dEEyOWpwNXQ2YWgzUDZEMG03d3BoWWMrTjY5TWlXY01uNXN2TWxQVitma2lm?=
 =?utf-8?B?Y0Z3Z2xtamtBdUhYNUVXTlJISVhyMTBKZ3FhT2tMTmR4M2Jqc1RPdVR5MEZn?=
 =?utf-8?B?Yi92dDVjRHh4eHZOcGJJRS9JaVBFbU5JV1AzUzhaQ3hjMjNMYUZ3RHlJUkhx?=
 =?utf-8?B?MUhOZlFsQlI0aFk2TU12cGh1em8rRHI2SVpDRTMxK05BbmExajJPcXQxMFFF?=
 =?utf-8?B?eHN1MG5vaVpFamNpamdNTTNhV3BZeW1haW1tak53YmIrcEpSYVhkb2JHTHp4?=
 =?utf-8?B?aDYyVTVlellxbEdwMG5EYkZoREU3WU5xc05tL085VGpCdG95dVk4YnZMUXdh?=
 =?utf-8?B?MWJXQzRnVFI0bnJYWktyVllGWUVSNmFwMXJ3bVZCRWQrS0tSU0dKSDM1VS8z?=
 =?utf-8?B?S1ZRSGFiMTBwdlQwTmw5bzRzdzd1bDNPQVJSZVQzbXpUb000Z29xbzVBUWxu?=
 =?utf-8?B?ZG1ya1E5am93QTl6VWRMczZ2ditWWGpXZ3UzOE8vSTl0Y1QwL1BwWFpvR1hS?=
 =?utf-8?B?RW5xeEU4K0wvNFV4dTlBOWZ3ZU5TQ0FGWkJYenUwajE2dlBtSnVSSkRXUFZH?=
 =?utf-8?B?UmZveGdqSlJDWk53cFZ2ZU1EUDM3bDJxRmN0eFJOa2Z6L0FwOHNobHJxaUpQ?=
 =?utf-8?B?SEtBRVBxOUtPdGFqR2FOaUNkVWtya0RqWVc3M2loYmhwa3pOaHJSbXNra09a?=
 =?utf-8?B?YTE5NnlEZWRsdkd0U2NPeWt4bTluVG9PRnFKSWNyVG0reUhBeUExSUZ5Ui9G?=
 =?utf-8?B?OGlUeFptMlo2Q3VscndnZzRqTVROSXZNZ3I3STVuSnNudW1HcFFXUlRzTHBX?=
 =?utf-8?B?Mll6MzZmNlphMWtqeXFndTl4cXQ3S3Q4ZUFFK01yQUxheEtkSkhpUUg3WUJR?=
 =?utf-8?B?cUFmbjdlL1BIOEFNQjZxK3lkbGx5SmUzUUZqaU5TWFhwRmEzS2J1azRuMEV0?=
 =?utf-8?B?SzV0Wkh6cW9BTS9KdmswaTNKMTBUUFhWM3ZmS1JaeUsrWWU4N1NyTFBXdTlw?=
 =?utf-8?B?TmNkREtHZ2FqZXd2ZEF3cDVCVnRTRzJBcURuNDkwR3BzRXM2cW0vcTd0TzJW?=
 =?utf-8?B?TlhNeXA2a25XVTlaSnBTTXlnMkVDSEVwbXM1TWRhQWZieTVqZ3NrblJ3ZXRt?=
 =?utf-8?B?TU5xYUFSNUI1RnBjVmhuUVpJSHdYUVA1NnluNVMvVFV1bExPRDA0dmF1Z1FD?=
 =?utf-8?B?ejdVdVpudmF3eWdyQThFMjd0ZU8ycFg1MlRoRW5YOU9NZ014R2o5UVUxVCtL?=
 =?utf-8?B?VVN2TU5zd3pScUlSb3o0T05MMUZ1aGt1b3p0VWgzVW11TzN1WWc0dWM0SnRw?=
 =?utf-8?B?T0ZWYmQ3dVlyR2I5TkVtWW1CN2JCTnhNT3NUUVZ2c1poSHBjKzFzdncydGtl?=
 =?utf-8?Q?fGyIbA?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <88B6CCB1E266B84F8ED3F8F93A5D5AD8@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR08MB10419
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00025F9C.EURPRD83.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	e1aea263-daff-4260-9bf9-08de36435d96
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|14060799003|36860700013|1800799024|82310400026|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OTRYTnJVNFhMRi8rY0JZbkJPdmUwWGFyNTFzMjAvY3Q4eXFCS1VWUm9zejFY?=
 =?utf-8?B?SFM2eSt1VVpiSkpuUlIzTTVpNGxVNFArblBzWVlUa2hXQTlpRDYya1ZaNmt2?=
 =?utf-8?B?YnoyMmlaSmRzQmhuZHh6Mk9heFdNY0RGZlFxcjBzNmhyL1JGQTI0L1FycHF4?=
 =?utf-8?B?SjM1d0t6NVlnQnUxcGVIT3ZNR0x2WnNLSVRFVXRJSk5PVnErdmUrWXAvbi90?=
 =?utf-8?B?VXhRbGFSTVlPc0xCbjRpQzN6WnBGSzNCWEN5cUJVSGZ3Tjd3TlBZS2NEa2NM?=
 =?utf-8?B?RGFYMDVKNVlyM0NhL0dNTWxaY1N1dDljV0wwejlRUXJIaHRLTEszOWR4WkJr?=
 =?utf-8?B?Tjc0QWFFUXFuK09HVTUxT3I4OWlYYitBTUdZU1F2Z2Q0b21CWXVWdXZ1UWxT?=
 =?utf-8?B?N1phMDRLUU91SDJIbzhQSFM2TlVEYW1mYXZ0WEZxVDM0bUdWMEdUVW1LUi9t?=
 =?utf-8?B?bjFYS1hGMFBaT0FyNzJCeU1acStvQUYzQ204VHNWRDVRUE5qZEtuYkpVQkkv?=
 =?utf-8?B?MXJVNEYzRDY2aUU5VTcwdVZrUFIwa2lrekMzSkd6T0hsd1pqanZFVVJEUDlS?=
 =?utf-8?B?ZXpEdElGaENsN1crUG91enZpd0dJR1JTaUNod09qaUhUTUpaWXZZS0t5aDhK?=
 =?utf-8?B?MzFrZk1XR3hUanVMNjlJK2pIMmF3T0hlUVFoVEJtaXFyYVdON3BtVUcyQThh?=
 =?utf-8?B?dVJ1QW80Vkc0bXhzZGdJblJmbWFoNHUzSFQ3RmxYbFVhN2h3SWRLMk5JVVg1?=
 =?utf-8?B?WDl4UzRpV0duYkZ2WWMzWnZVRmxEdzJBMXpOeTJVVjVPNTB1eEFYdldqcVJF?=
 =?utf-8?B?cHJmUjJvb0RlRFpNUjRid3VaNVdHeEF5aDVGTm9MWGg3UTRVUm5FL0l2a05l?=
 =?utf-8?B?b1hRNktHYWVjY0RMalhQbGlIYVRlUTZucnRuQ1FZWHY1MElvWDIzaVhnbGpT?=
 =?utf-8?B?MjV0amFXKzlvSDhRVkUvazcycFpaQzBOdGkvNTVyaTcycmNsRHIrNStXZ2ZF?=
 =?utf-8?B?UWxNTmIxdzlFR3dIUEl0NHhJeE1uU2FnLytjUHMyYmxUaEo3cFY0bEpTdlU3?=
 =?utf-8?B?aUs3VkZyU0FUSEpOV1lpZFlyMEFOWDcrdDllOVNRRG1OWWd0TCtkcHJCQ0pt?=
 =?utf-8?B?cEpiNTRrK0poUlBYaENRcC9FVWVUNHo5Y0Qzd1RFWDJyY1hUdFBtdnBraU4y?=
 =?utf-8?B?T3BnTldQNUk2NkNxYmZ4czk0NGRUdWpCSEpLbXpKeGpqWG0zMUUwR1ppTE8x?=
 =?utf-8?B?WVZmNDBFN3h4REk0eUNQZ3dyYVMxZGtQaHpLTE1XYUVDQnBmQ01SbG1OK1JI?=
 =?utf-8?B?UENPWXJhNmJxY3lTSUloa3NvcDI4ZGhDNHpEaWZvQy9rZm1wcnpoM0M0SEVQ?=
 =?utf-8?B?cnY2aFNBZ2tia2EyY0dHbGZGdGNueXFab3dtTzV4eVkxVGxFYUdpSkU1NmZj?=
 =?utf-8?B?RG5PbFc4RlExb2tyWitkYndKOFFhUkhEekc4c2djcG4rYmtDR0RRRnJia3dY?=
 =?utf-8?B?VmV0ZnV1SkhZSEZlR2xIRzI2R0tPWVREdlhvR1dTYjloNUpDRnV1amszcXFv?=
 =?utf-8?B?d2FDRmlzWVMvcE9jM1dWakZROGNFblF2SFF2d3lhVGdvZnBlcG5HRnVQMCtY?=
 =?utf-8?B?YXZSS0I5YlZvcmhqY09HK1dPdEpIQjVwVEtNMjJ2Z3Z0ZXVXWGtjeitiNHJr?=
 =?utf-8?B?aW90RVZ5SEZtTWtrQ3MrZmtKS2ZUSTlyVHc3T2dLWmQzSVY0R1pKMVZ4VjQ0?=
 =?utf-8?B?WHgzdzZ2eiszbFgzT1ZSaDh4Y1pUajkvSVJNQlFpNEllUnVyZk1xMEI3blZ6?=
 =?utf-8?B?NVpvaFlyOHJZQjFYcnVnZ3Zjcmg5cWY0cEVTMGcraWxKL1FXRnVsYlo4bFUv?=
 =?utf-8?B?RUEwYm9XMW53QlBPYnlpNzhnK0hYQlJtV0EvdTBvbXBPN3ZJT21uMnRpUlZy?=
 =?utf-8?B?UVpJWlBYR3B2R2haSm1MejMxWXdPc1V3RmdZWEdHN21jQ0lKVWJZZGlnc0Vk?=
 =?utf-8?B?UWp2Uzk0L0tOclV1WVVkZ0JTQmdOb1J4WFgwOEFGTjcvWWVmVDl5ZzFRc2Fa?=
 =?utf-8?B?RmkxSnpaWlIxcTVoM1ZzY0VwUzZGU3ZObHZqeXJqaW9VWWR4MWhtemc2eldw?=
 =?utf-8?Q?qKrk=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(14060799003)(36860700013)(1800799024)(82310400026)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 10:21:13.1429
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0b8a5b04-9853-49fc-7805-08de364383a1
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00025F9C.EURPRD83.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: FRZPR08MB11022

SGkgTWljaGFsLA0KDQp0aGFua3MgZm9yIHlvdXIgcmV2aWV3LCBJ4oCZbGwgYW5zd2VyIG9ubHkg
ZmV3IG9mIHlvdXIgcG9pbnRzIGFuZCBJ4oCZbGwgbGV0IEhhcnJ5IHRha2UgdGhlIHJlc3QuDQoN
Cj4gT24gOCBEZWMgMjAyNSwgYXQgMDk6NTMsIE9yemVsLCBNaWNoYWwgPE1pY2hhbC5PcnplbEBh
bWQuY29tPiB3cm90ZToNCj4gDQo+IA0KPiANCj4gT24gMjgvMTEvMjAyNSAxMDo1OCwgSGFycnkg
UmFtc2V5IHdyb3RlOg0KPj4gRnJvbTogTHVjYSBGYW5jZWxsdSA8bHVjYS5mYW5jZWxsdUBhcm0u
Y29tPg0KPj4gDQo+PiBIQVNfVk1BUCBpcyBub3QgZW5hYmxlZCBvbiBNUFUgc3lzdGVtcywgYnV0
IHRoZSB2bWFwIGZ1bmN0aW9ucyBhcmUgdXNlZA0KPiBKdXN0IGFzIGEgcmVtaW5kZXIsIHdlIGRv
bid0IGludGVuZCB0byBzdXBwb3J0IFZNQVAgb24gTVBVPyBBc2tpbmcgYmVjYXVzZSBpdA0KPiB3
b3VsZCBvdGhlcndpc2UgYmUgYSBkdXBsaWNhdGUgZWZmb3J0IHRvIGltcGxlbWVudCBvbmx5IHRo
ZXNlIHR3byBoZWxwZXJzLg0KDQpZZXMgd2UgYXJlIG5vdCBnb2luZyB0byBzdXBwb3J0IFZNQVAg
b24gTVBVLCBoZXJlIHdlIHdhbnQgb25seSB0byBwcm92aWRlIHRoZQ0KaW1wbGVtZW50YXRpb24g
b2YgdGhlc2UgdHdvIGhlbHBlciBzbyB0aGF0IHdlIGRvbuKAmXQgdG91Y2ggdGhlIGNvbW1vbiBj
b2RlIHVzaW5nIHRoZXNlLg0KQXJlIHlvdSBzdWdnZXN0aW5nIHNvbWUgcmV3b3JkaW5nIG9yIHdh
cyBpdCBvbmx5IGEgY3VyaW9zaXR5IG9uIHlvdXIgc2lkZT8NCg0KPj4gDQo+PiArLyoNCj4+ICsg
KiBGcmVlIGEgeGVuX21wdW1hcCBlbnRyeSBnaXZlbiB0aGUgaW5kZXguIEEgbXB1IHJlZ2lvbiBp
cyBhY3R1YWxseSBkaXNhYmxlZA0KPj4gKyAqIHdoZW4gdGhlIHJlZmNvdW50IGlzIDAgYW5kIHRo
ZSByZWdpb24gdHlwZSBpcyBNUFVNQVBfUkVHSU9OX0ZPVU5ELg0KPj4gKyAqDQo+PiArICogQHBh
cmFtIGlkeCAgICAgICAgICAgICAgICAgICBJbmRleCBvZiB0aGUgbXB1bWFwIGVudHJ5Lg0KPj4g
KyAqIEBwYXJhbSByZWdpb25fZm91bmRfdHlwZSAgICAgRWl0aGVyIE1QVU1BUF9SRUdJT05fRk9V
TkQgb3IgTVBVTUFQX1JFR0lPTl9JTkNMVVNJVkUuDQo+IEJvdGggb2YgdGhlc2UgYXJlIHVuc2ln
bmVkLCBzbyB3aHkgdGhlIHBhcmFtZXRlciBpcyBpbnQ/DQoNClVobSwgZ29vZCBjYXRjaCwgSSB0
aGluayB0aGlzIGlzIGEgZG9jdW1lbnRhdGlvbiBpc3N1ZSBiZWNhdXNlIGl0IG1pZ2h0IGJlIGFs
c28gTVBVTUFQX1JFR0lPTl9PVkVSTEFQIHdoaWNoIGlzDQotMSwgd2Ugc2hvdWxkIG5vdCBtYW5k
YXRlIHdoaWNoIHZhbHVlIG1pZ2h0IGJlIGhlcmUsIHdlIHNob3VsZCBvbmx5IHNheSBNUFVNQVBf
UkVHSU9OXyogdmFsdWVzLg0KDQoNCj4+IA0KPj4gDQo+PiB2b2lkIHZ1bm1hcChjb25zdCB2b2lk
ICp2YSkNCj4+IHsNCj4+IC0gICAgQlVHX09OKCJ1bmltcGxlbWVudGVkIik7DQo+PiArICAgIHBh
ZGRyX3QgYmFzZSA9IHZpcnRfdG9fbWFkZHIodmEpOw0KPj4gKw0KPj4gKyAgICBpZiAoIGRlc3Ry
b3lfZW50aXJlX3hlbl9tYXBwaW5nKGJhc2UpICkNCj4+ICsgICAgICAgIHBhbmljKCJGYWlsZWQg
dG8gdnVubWFwIHJlZ2lvblxuIik7DQo+IExvb2tpbmcgYXQgY29tbW9uIHZ1bm1hcCgpIHdlIGln
bm9yZSB0aGUgcmV0dXJuIGNvZGUgZnJvbQ0KPiBkZXN0cm95X3hlbl9tYXBwaW5ncygpLiBJcyBp
dCBvayB0byBkaXZlcmdlPw0KDQpJbiBvdXIgdGVzdHMgaXTigJlzIG9rLCBJIGFza2VkIEhhcnJ5
IHRvIGhhdmUgdGhpcyBzbyB0aGF0IHdlIGNhbiBjYXRjaCBhbnkgdnVubWFwIHRoYXQgaXMgbm90
IGJhbGFuY2VkDQp3aXRoIGEgcHJpb3IgbWFwcGluZy4gVG8gYmUgZmFpciBJ4oCZbSBub3QgcmVh
bGx5IHN1cmUgd2h5IGluIHRoZSB2bWFwLmMgaW1wbGVtZW50YXRpb24gd2UgYXJlIG5vdA0KcmVh
ZGluZyB0aGUgZXJyb3IgY29kZXMgZnJvbSBkZXN0cm95X3hlbl9tYXBwaW5ncy4NCg0KQ2hlZXJz
LA0KTHVjYQ0KDQo=


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 10:48:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 10:48:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180364.1503553 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSYmh-00033T-DL; Mon, 08 Dec 2025 10:48:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180364.1503553; Mon, 08 Dec 2025 10:48:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSYmh-00033M-9R; Mon, 08 Dec 2025 10:48:03 +0000
Received: by outflank-mailman (input) for mailman id 1180364;
 Mon, 08 Dec 2025 10:48:02 +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 <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSYmg-00033G-3M
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 10:48:02 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5d6c337e-d423-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 11:48:00 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4775e891b5eso21081365e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 02:48:00 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479311ed466sm231377715e9.13.2025.12.08.02.47.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 02:47:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5d6c337e-d423-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765190880; x=1765795680; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zS8/YRHbnpFNSbETJAVu5IY7UtYdPcfV1xAQYKoim54=;
        b=O6iNC1tYe349IxGHBd+FOtsYPmTmEHWw18u6YoE/dNll3g4xfOCYhbYN8bstXv4IbU
         yPNiR54A4qapGJ6qnkMCPPgQ7yKfcRBzHK38QIF8fZByO3z6/CoHoLK4SjAuQTKSf/po
         I2Fz2sBDMgcbYAgcRdvgBPyQaV0m3R9NJMPs4CBo32p4XjalF8fdouknn9k3iB+2SHmM
         b4uG/aGWSXfCJIRukfwNVqPiGxwNIptDyv0tpEEjnBIQcEXPLiM8IS07f/UQ6Fq8ZHQJ
         oY8ggh0PeXaA1koTzyFW46y15j4djxLx5KMcCaxGtwS/ZATe5bHsHuDyXQGLJG9MiSA5
         DV5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765190880; x=1765795680;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zS8/YRHbnpFNSbETJAVu5IY7UtYdPcfV1xAQYKoim54=;
        b=Q8j67WxAfICTW5lZjaShMocbkDvKDOPPN+0r+u2dCdWaQ8N+CUl+SgMApm7v2LAEi5
         ADiB8C+L+oCCMrecDrtCIx1+9yr0jn2hc6wBPex7Iyv79pAhr10GvdCdN7uq7i0Nn9CL
         9lUBg5IllNqHYwWWL4z13Thz8Wq1smEBxDF5bIniKInGkuqSS/OdCsOL/mHlhP6IJN9N
         bkyFErX2nt/VxS1Lgzvpuqlxrh3nQZ6/Xpth2+rdhGG5SgFkgC19M1jWPF33v5PxF3Vc
         DEt02HAJI7qjHv7rhcs0eNGm012as7Z5qITWSbuRdm7mj/gxe0t8v8bT/h2gwsCMeMCA
         IU7A==
X-Gm-Message-State: AOJu0YwUVbodIFNy4847O9fI75yKuYj58xscqn2+elTS/2d3UOozDIfi
	rEBgGgfboHWWgjOsfVUQzikcOsnWfQak4uAAr2Jqm5iiOwkG3lXJHaSnOa/zUbNI+g==
X-Gm-Gg: ASbGncsFeBOzJ07WP/oJJVtpQTtvxfjPePixUYgPPrKYf1InENV69Z3ogr2XXOJ8j1B
	VAzfY5MxpfOe9z5N1O5Y+561c4PZm+sHc/4s5kKMy/2ANCRvTrFtTmrjKgVc/LqOQn4aW1EmCYx
	fg15uNsqfnj8FXXnzjF4A1sD5uIwJNasvibnyB734C5auwUcvq4pMfKDFh2KBjuQuvnc1vPc/Wr
	/PxiImJ4FqQcHtM/I4HA+ILSYeIAs9BIUjXS6sDTK0Xk46rmiMC0CuQf4Cw1flS8UblxNpdAeo5
	3zVQNmUOZfTSXe+iIp8B+Li6ECjK01s+1NuSPL0AV3YTdIAon0wrzzc27txKzsD08xznzcXc74G
	mDWWT8nQaCDs+dxZpHNxC+1Fm3lx+WNwRUWK55Kg7QggnFt75r+p0aVz1pju92QmCaDMcdQZruy
	o9WeOi0iyjGILWE1oqw8Q3F2R6pa8yDqhF+VPU9y5184KcmHOg87kSYntGLLROycTUh+s0xKodt
	FxxOMsa7bwNNw==
X-Google-Smtp-Source: AGHT+IEHmqMm/7HyPW8ibwhUnCKiWkBVqlxjz1fG2qGrnrVqTYXS5ZW4OJLs5+8o48XHxygWpGshqg==
X-Received: by 2002:a05:600c:45c9:b0:477:952d:fc00 with SMTP id 5b1f17b1804b1-47939dfa78dmr72741135e9.12.1765190880005;
        Mon, 08 Dec 2025 02:48:00 -0800 (PST)
Message-ID: <b03a8039-e4b3-42ff-9781-031bf68ccb72@suse.com>
Date: Mon, 8 Dec 2025 11:48:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 7/8] x86/mm: update log-dirty bitmap when manipulating
 P2M
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Juergen Gross <jgross@suse.com>, Anthony PERARD <anthony.perard@vates.tech>
References: <a0f019c5-4089-e19c-6041-044d6e93d80b@suse.com>
 <d47d01dd-0289-370d-7b5e-bd80f9e0a911@suse.com> <aTLjwbcm4fjwNJfb@Mac.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aTLjwbcm4fjwNJfb@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2025 14:53, Roger Pau Monné wrote:
> On Tue, Apr 26, 2022 at 12:26:10PM +0200, Jan Beulich wrote:
>> --- a/xen/arch/x86/mm/p2m.c
>> +++ b/xen/arch/x86/mm/p2m.c
>> @@ -549,7 +549,10 @@ p2m_remove_entry(struct p2m_domain *p2m,
>>          {
>>              p2m->get_entry(p2m, gfn_add(gfn, i), &t, &a, 0, NULL, NULL);
>>              if ( !p2m_is_special(t) && !p2m_is_shared(t) )
>> +            {
>>                  set_gpfn_from_mfn(mfn_x(mfn) + i, INVALID_M2P_ENTRY);
>> +                paging_mark_pfn_clean(p2m->domain, _pfn(gfn_x(gfn) + i));
>> +            }
>>          }
>>      }
>>  
>> @@ -737,8 +740,11 @@ p2m_add_page(struct domain *d, gfn_t gfn
>>          if ( !p2m_is_grant(t) )
>>          {
>>              for ( i = 0; i < (1UL << page_order); i++ )
>> +            {
>>                  set_gpfn_from_mfn(mfn_x(mfn_add(mfn, i)),
>>                                    gfn_x(gfn_add(gfn, i)));
>> +                paging_mark_pfn_dirty(d, _pfn(gfn_x(gfn) + i));
> 
> Have you considered placing the respective
> paging_mark_pfn_{clean,dirty}() calls in p2m_entry_modify()?

I didn't, but since you ask - I also don't think that's layering-wise
an appropriate place for them to live. Whether a page has to be
considered dirty needs determining elsewhere. No matter that ...

> There's a lot of repetition here with regard to handling the side
> effects of p2m changes that are forced into the callers, that could
> likely be contained inside of p2m_entry_modify() at first sight.

... this way there is some redundancy.

Furthermore p2m_entry_modify() also isn't really suitable: We don't
know the GFN there.

>> --- a/xen/arch/x86/include/asm/paging.h
>> +++ b/xen/arch/x86/include/asm/paging.h
>> @@ -165,8 +165,9 @@ void paging_log_dirty_init(struct domain
>>  
>>  /* mark a page as dirty */
>>  void paging_mark_dirty(struct domain *d, mfn_t gmfn);
>> -/* mark a page as dirty with taking guest pfn as parameter */
>> +/* mark a page as dirty/clean with taking guest pfn as parameter */
> 
> I think it would be clearer to use gfn here rather than "guest pfn",
> and the function parameter should be "gfn_t gfn".

For HVM I'd agree, but please see the one use for PV guests. As per
xen/mm.h gfn == mfn for them, i.e. we particularly mean PFN there.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 11:01:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 11:01:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180375.1503562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSYzb-0005le-F6; Mon, 08 Dec 2025 11:01:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180375.1503562; Mon, 08 Dec 2025 11:01:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSYzb-0005lX-Ca; Mon, 08 Dec 2025 11:01:23 +0000
Received: by outflank-mailman (input) for mailman id 1180375;
 Mon, 08 Dec 2025 11:01:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xtdp=6O=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1vSYza-0005lL-Gu
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 11:01:22 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 3564c82a-d425-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 12:01:13 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A23CE1691;
 Mon,  8 Dec 2025 03:01:04 -0800 (PST)
Received: from [10.57.8.179] (unknown [10.57.8.179])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D66BC3F762;
 Mon,  8 Dec 2025 03:01:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3564c82a-d425-11f0-980a-7dc792cee155
Message-ID: <9cdaa019-f21a-41e3-bf25-0a0e36c499f2@arm.com>
Date: Mon, 8 Dec 2025 11:01:09 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/6] arm/mpu: Implement vmap functions for MPU
Content-Language: en-GB
To: "Orzel, Michal" <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
Cc: Luca.Fancellu@arm.com, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20251128095859.11264-1-harry.ramsey@arm.com>
 <20251128095859.11264-3-harry.ramsey@arm.com>
 <3c0a4987-81ef-4cf1-a1ad-bd8872a0dd67@amd.com>
From: Harry Ramsey <harry.ramsey@arm.com>
In-Reply-To: <3c0a4987-81ef-4cf1-a1ad-bd8872a0dd67@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 08/12/2025 09:53, Orzel, Michal wrote:
>
> On 28/11/2025 10:58, Harry Ramsey wrote:
>> From: Luca Fancellu <luca.fancellu@arm.com>
>>
>> HAS_VMAP is not enabled on MPU systems, but the vmap functions are used
> Just as a reminder, we don't intend to support VMAP on MPU? Asking because it
> would otherwise be a duplicate effort to implement only these two helpers.
>
>> in places across common code. In order to keep the existing code and
>> maintain correct functionality, implement the `vmap_contig` and `vunmap`
>> functions for MPU systems.
>>
>> Introduce a helper function `destroy_entire_xen_mapping` to aid with
>> unmapping an entire region when only the start address is known.
>>
>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
>> ---
>>   xen/arch/arm/include/asm/mpu/mm.h | 11 +++++
>>   xen/arch/arm/mpu/mm.c             | 67 +++++++++++++++++++++++++------
>>   xen/arch/arm/mpu/vmap.c           | 14 +++++--
>>   3 files changed, 77 insertions(+), 15 deletions(-)
>>
>> diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
>> index e1ded6521d..83ee0e59ca 100644
>> --- a/xen/arch/arm/include/asm/mpu/mm.h
>> +++ b/xen/arch/arm/include/asm/mpu/mm.h
>> @@ -111,6 +111,17 @@ pr_t pr_of_addr(paddr_t base, paddr_t limit, unsigned int flags);
>>   int mpumap_contains_region(pr_t *table, uint8_t nr_regions, paddr_t base,
>>                              paddr_t limit, uint8_t *index);
>>   
>> +
>> +/*
>> + * Destroys and frees (if reference count is 0) an entire xen mapping on MPU
>> + * systems where only the start address is known.
>> + *
>> + * @param s     Start address of memory region to be destroyed.
>> + *
>> + * @return:     0 on success, negative on error.
>> + */
>> +int destroy_entire_xen_mapping(paddr_t s);
> NIT: I read it as all the mappings which is a bit misleading :)
> Maybe something like: destroy_mapping_containing or alike?
>
>> +
>>   #endif /* __ARM_MPU_MM_H__ */
>>   
>>   /*
>> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
>> index 687dec3bc6..29d8e7ff11 100644
>> --- a/xen/arch/arm/mpu/mm.c
>> +++ b/xen/arch/arm/mpu/mm.c
>> @@ -290,6 +290,35 @@ static void disable_mpu_region_from_index(uint8_t index)
>>           write_protection_region(&xen_mpumap[index], index);
>>   }
>>   
>> +/*
>> + * Free a xen_mpumap entry given the index. A mpu region is actually disabled
>> + * when the refcount is 0 and the region type is MPUMAP_REGION_FOUND.
>> + *
>> + * @param idx                   Index of the mpumap entry.
>> + * @param region_found_type     Either MPUMAP_REGION_FOUND or MPUMAP_REGION_INCLUSIVE.
> Both of these are unsigned, so why the parameter is int?
>
>> + * @return                      0 on success, otherwise negative on error.
>> + */
>> +static int xen_mpumap_free_entry(uint8_t idx, int region_found_type)
>> +{
>> +    ASSERT(spin_is_locked(&xen_mpumap_lock));
>> +    ASSERT(idx != INVALID_REGION_IDX);
>> +
>> +    if ( xen_mpumap[idx].refcount == 0 )
>> +    {
>> +        if ( MPUMAP_REGION_FOUND == region_found_type )
>> +            disable_mpu_region_from_index(idx);
>> +        else
>> +        {
>> +            printk(XENLOG_ERR "Cannot remove a partial region\n");
>> +            return -EINVAL;
>> +        }
>> +    }
>> +    else
>> +        xen_mpumap[idx].refcount -= 1;
> You could avoid nesting if/else by doing:
>      if ( xen_mpumap[idx].refcount )
>      {
>          xen_mpumap[idx].refcount -= 1;
>          return 0;
>      }
>
>      if ( MPUMAP_REGION_FOUND == region_found_type )
>          disable_mpu_region_from_index(idx);
>      else
>      {
>          printk(XENLOG_ERR "Cannot remove a partial region\n");
>          return -EINVAL;
>      }
>
>> +
>> +    return 0;
>> +}
>> +
>>   /*
>>    * Update the entry in the MPU memory region mapping table (xen_mpumap) for the
>>    * given memory range and flags, creating one if none exists.
>> @@ -357,18 +386,7 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
>>               return -EINVAL;
>>           }
>>   
>> -        if ( xen_mpumap[idx].refcount == 0 )
>> -        {
>> -            if ( MPUMAP_REGION_FOUND == rc )
>> -                disable_mpu_region_from_index(idx);
>> -            else
>> -            {
>> -                printk("Cannot remove a partial region\n");
>> -                return -EINVAL;
>> -            }
>> -        }
>> -        else
>> -            xen_mpumap[idx].refcount -= 1;
>> +        return xen_mpumap_free_entry(idx, rc);
>>       }
>>   
>>       return 0;
>> @@ -418,6 +436,31 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
>>       return xen_mpumap_update(s, e, 0);
>>   }
>>   
>> +int destroy_entire_xen_mapping(paddr_t s)
>> +{
>> +    int rc;
>> +    uint8_t idx;
>> +
>> +    ASSERT(IS_ALIGNED(s, PAGE_SIZE));
>> +
>> +    spin_lock(&xen_mpumap_lock);
>> +
>> +    rc = mpumap_contains_region(xen_mpumap, max_mpu_regions, s, s + PAGE_SIZE,
>> +                                &idx);
> So here you are searching for a region that includes at least s + PAGE_SIZE.
>
>> +    if ( rc == MPUMAP_REGION_NOTFOUND )
>> +    {
>> +        printk(XENLOG_ERR "Cannot remove entry that does not exist");
>> +        rc = -EINVAL;
> Here you assing rc but ...
>
>> +    }
>> +
>> +    /* As we are unmapping entire region use MPUMAP_REGION_FOUND instead */
>> +    rc = xen_mpumap_free_entry(idx, MPUMAP_REGION_FOUND);
> here you would redefine it.


Sorry, this is a mistake and we should just return early as the mapping 
doesn't exist and therefore will have no references to be decremented.

>> +
>> +    spin_unlock(&xen_mpumap_lock);
>> +
>> +    return rc;
>> +}
>> +
>>   int map_pages_to_xen(unsigned long virt, mfn_t mfn, unsigned long nr_mfns,
>>                        unsigned int flags)
>>   {
>> diff --git a/xen/arch/arm/mpu/vmap.c b/xen/arch/arm/mpu/vmap.c
>> index f977b79cd4..d3037ae98a 100644
>> --- a/xen/arch/arm/mpu/vmap.c
>> +++ b/xen/arch/arm/mpu/vmap.c
>> @@ -1,19 +1,27 @@
>>   /* SPDX-License-Identifier: GPL-2.0-only */
>>   
>>   #include <xen/bug.h>
>> +#include <xen/mm.h>
>>   #include <xen/mm-frame.h>
>>   #include <xen/types.h>
>>   #include <xen/vmap.h>
>>   
>>   void *vmap_contig(mfn_t mfn, unsigned int nr)
>>   {
>> -    BUG_ON("unimplemented");
>> -    return NULL;
>> +    paddr_t base = mfn_to_maddr(mfn);
>> +
>> +    if ( map_pages_to_xen(base, mfn, nr, PAGE_HYPERVISOR ) )
>> +        return NULL;
>> +
>> +    return maddr_to_virt(base);
>>   }
>>   
>>   void vunmap(const void *va)
>>   {
>> -    BUG_ON("unimplemented");
>> +    paddr_t base = virt_to_maddr(va);
>> +
>> +    if ( destroy_entire_xen_mapping(base) )
>> +        panic("Failed to vunmap region\n");
> Looking at common vunmap() we ignore the return code from
> destroy_xen_mappings(). Is it ok to diverge?
>
> ~Michal
>
>>   }
>>   
>>   /*


I will address the code style comments in the next version of these patches.

Thanks,

Harry Ramsey



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 11:10:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 11:10:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180384.1503572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSZ8D-0007Ro-8V; Mon, 08 Dec 2025 11:10:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180384.1503572; Mon, 08 Dec 2025 11:10:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSZ8D-0007Rh-5I; Mon, 08 Dec 2025 11:10:17 +0000
Received: by outflank-mailman (input) for mailman id 1180384;
 Mon, 08 Dec 2025 11:10:16 +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
 <SRS0=TwXn=6O=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vSZ8B-0007Rb-VN
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 11:10:16 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7745acc4-d426-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 12:10:13 +0100 (CET)
Received: from SJ0PR05CA0092.namprd05.prod.outlook.com (2603:10b6:a03:334::7)
 by BL1PR12MB5970.namprd12.prod.outlook.com (2603:10b6:208:399::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 11:10:08 +0000
Received: from SJ1PEPF00002327.namprd03.prod.outlook.com
 (2603:10b6:a03:334:cafe::4) by SJ0PR05CA0092.outlook.office365.com
 (2603:10b6:a03:334::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.6 via Frontend Transport; Mon, 8
 Dec 2025 11:10:08 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ1PEPF00002327.mail.protection.outlook.com (10.167.242.90) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Mon, 8 Dec 2025 11:10:07 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 8 Dec
 2025 05:10:07 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 8 Dec
 2025 03:10:07 -0800
Received: from [10.252.147.171] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 8 Dec 2025 03:10:06 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7745acc4-d426-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=V+Waz8yIBh4giaDMIbob1Ch55OOSPpk2KM6YOCIlV/FvTEt60bVErPAP1DZo0uOLAypWKXGHE7Y19lQfpo+tN38edm0xHm2B2PLPNyd0o3vAAAX+pVCSkUZRVwjXxbRGN5biaOKgth/5AQmQPPkaQargZ1WKdHP4VzrQgDFdbhpOVx7xAWpkN/qP6lL/YI3t4UhAwplI86fMVyg3xdBE5OYw456ITHiZok3b2y56K6/NzLekBr5zmnYMTzw/ZtD9k7sDTLOnaXe8I21t/EUGNsi4rwx4TLrx427qTvYHjH9X6vwnVhTIY3nb2ZqINjDUtkbgciTzYhRiCts6XZhl5w==
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=P3IXhYZrqjgWlFE/m8Jp9W2Vh/NZkuZOInmNfg0aCoU=;
 b=Xv/LBUIjCgTtYAgsCBTUMW0iqaUweFukv6Mp2jmpirQVfr/8DE7OG+3QHUpAWtWIuUWGqRkZ0Ktt0KNQHXHAuBLfDiFY1wLLZ5CzGoKkNXUOcIx3LYDg/MwdW/SULsaXHGu78H4LqHBetn8ckT1tisd28+ia1QbMkwT3IvJOFYdn8Ib8+XLxcQ0ROeXvP+dfv+TpKgdFRo1In+01809HiTk0KwvBfcFgr+QSDsEGauStjMLz+Aegrwj4Iz/G5Nx1nQLwnrbk61J0yVrpmZIBAguOzWstE1Xcd8SCOvw7PTEmnCzLFtkDLcwOwWFT4jxOvgaOSUct/KS2DuA/Gn6NOA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=P3IXhYZrqjgWlFE/m8Jp9W2Vh/NZkuZOInmNfg0aCoU=;
 b=0lMnMUBsTslXcooO221BmOlc9lZ888eevx9CJ63Cro77luznx35DQboLujRy14214GH7w5/HO1vASHp3PxGsOr/t4V9be+6Sb4dYbtRlAKNEBELC2hrmGtpDivCV19cT4TRAJ87kL5cNLFuU00oKPWMOsxNVH5vY7LW/MMlssxg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <3f021486-8750-4f56-8dba-db771f98fe5d@amd.com>
Date: Mon, 8 Dec 2025 12:10:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/6] arm/mpu: Implement vmap functions for MPU
To: Luca Fancellu <Luca.Fancellu@arm.com>
CC: Harry Ramsey <Harry.Ramsey@arm.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20251128095859.11264-1-harry.ramsey@arm.com>
 <20251128095859.11264-3-harry.ramsey@arm.com>
 <3c0a4987-81ef-4cf1-a1ad-bd8872a0dd67@amd.com>
 <04784EBA-BB67-495B-894E-A20A10569D8F@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <04784EBA-BB67-495B-894E-A20A10569D8F@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002327:EE_|BL1PR12MB5970:EE_
X-MS-Office365-Filtering-Correlation-Id: 0f6d8d05-0070-408e-e901-08de364a58f0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?STVHSithTG5vL3pwTHlVZmpKNERSYndtSmNMSm9UVmcxa0lmRW10Q3BSRG5U?=
 =?utf-8?B?K2RMUGU1dkNoRnVTenlmd3psNldMUWtRWGZ4WUZ6WVkyelQxTW1IWFcraDg0?=
 =?utf-8?B?ZlJSaFFXUktBcUlPS2NGc1lTV3RCeTg2R1dORHM2VHJxd3QwaXYvYnJWWDhi?=
 =?utf-8?B?b01YK2h5SzlGTjRWSlBySktqK2g0b0lGcVYvR3F2TXdXdUdFMVVqbmRPMWtQ?=
 =?utf-8?B?enlYbklqRVI1b0lxdjFDQWsra3RORGZUWU9QTVRGanhtcU5kZnZlOUxIVmVv?=
 =?utf-8?B?OVhtMXovTXZwd0RMSHFHeGJJaDk3cnZ0SUtLMllJNUNMVy8yRG5TVDFjSm5F?=
 =?utf-8?B?Nm5zcXBRbTUzbXE0Q2dGK2N4ZUducEZnSGlPU011NVFYMmd0dlZkVXhYOVFR?=
 =?utf-8?B?bXRFdGd6MWxKb2tlVUJiMXNGODhuSTJSM3ZlRkxScmRNUFRIczdtczJjV3JM?=
 =?utf-8?B?MDd1WitkckFybFIwMG1yR20yY1RjMjJyZFB3SnllOUhCUXI3Q3NQVlh3YzNX?=
 =?utf-8?B?OFFNZnlqQjlKQkxVNWdKYzE0K3RZZnZiRFdlOTJESURpMUZVMDdJajZ6cE0z?=
 =?utf-8?B?MnczQWxEVmpTeXFiUlAzeEM2cURZR29TdTkrcDRFR3pQYlRkbXZMRENMY3lp?=
 =?utf-8?B?bU5JTDZMRlNyczlTZU9IcmlWWDZBZWRpaGY3bTkxb3FHdXpvNFdZaG5IR25G?=
 =?utf-8?B?ZDFHcUxPWFZod3VXbldNQ0o4WGFzSDZ5KzAwSytNSVhKWHZEanYvTXY1d0xv?=
 =?utf-8?B?TFgyeDM2dTBuTHhETkRJTy9LRCtzT01aVG1KeitUamY4Q2psb1ZsODAvbjV1?=
 =?utf-8?B?UzMzdnhhM052bFk1UTdyRElhczVrRW5FSkxGWUVpT0Q0eDNYRzBUeHhkR2VZ?=
 =?utf-8?B?eUQ5VXJIK0szbEluUTNOUUNtSGNuWnBUYWM1ZVFLQWxRY1lKaXoveVFwdUhu?=
 =?utf-8?B?YmFqME1VUnlScnBxM1NPa3ltOUx2bU1KclNmZGdMb3FzVTN1UjhRWjY2LzhF?=
 =?utf-8?B?N2FRR1A2ckdwaFR5N2VOYTBwQ1Byd1R0NmNRNTFZNUFGVVg1d09pMmg4bnhh?=
 =?utf-8?B?UnJXL0pHMEZjUmM2U3FHR0k1MlZKWjJNemlWMFZKdHBjU1JEejl2WEI3QXdW?=
 =?utf-8?B?SjZ0dS9yRjJaME5xbTBPYnFYTTJ2VnJEK2Y4Z2ppRmVPb1BhanJESk9tV05W?=
 =?utf-8?B?Q2pYNm4wb0wyRlVnTXhtN21GRWd1SS9EUmw3eFhaTmxxRGxKbk5rdGZoNzRM?=
 =?utf-8?B?TFBrbENqSGN1SGhRdmFZOUhTTkFWWjNjT29iTjE0L0hPK3MrV3kzc0R0VnJn?=
 =?utf-8?B?KzZhcEc5VlhtTlVWdUhqdDFCRElRdTZCSW42N3FXSG53QjVNc1pyQStSVzRm?=
 =?utf-8?B?TWdrUUJmaCtTYTcrTnNmbGpGY2xXL0o0S0xUYUdhVk9yTmpKMGw4K1ZUVmwz?=
 =?utf-8?B?bDdJTUlCdllKSHJHaFQ5cGVxOWdYVVFIR1lxc25ObW1SYWVLT0taREIwZzZS?=
 =?utf-8?B?bkpMVSt6ZGxIU1Q5L0YwR0d3MUpPR3RsL1pTeC8rU3NkcU85SnJMSnFEdmFh?=
 =?utf-8?B?Tk9tbHVXb2hkMXFEd2F6S0piRGVleFByMmhZRlg4WFBKL0F6N1hrckY4YUpa?=
 =?utf-8?B?MDBhZG9nQkFDYUtHdVFYTGVwdXNpOGNlakpRL2RBM0pLYTdHZnhyWFU4ZC9L?=
 =?utf-8?B?NmMzQnJGcE9seUtoOW9uTmFtYU10RmJGbENDdy9mNlRlVWErMUVvRVloYVpH?=
 =?utf-8?B?Tm9vZ002QzBhNnB4VUZqRUlMdzlYV0RaMkNrWnN6K2V6VVdoaUxERUlNZnJP?=
 =?utf-8?B?Y1liM1pMUmtxNy9uR1JNUG9RNjZqZUpSUy9zUlA1V3pyR0MzUDNSamNOMFFF?=
 =?utf-8?B?TGJEUWt2WW83cHByNjZOdDRnZmFORCtHdWE3OWxyVVU5M0psRFlhZG1WdGRM?=
 =?utf-8?B?b3A1anRJa0IvQ3FycG1qQUtFd1ZkQjhxU1h2NnJVVWp2NCtZTG9ITTNSeit3?=
 =?utf-8?B?b29DWkdUSUdkSU1mSDNNZmZmQWhTUU1CbVB0QlhTdVhHV1J3NWZjSTJlU2hS?=
 =?utf-8?B?MGZBNHdmRDBhQnhyT1pCMzlVOUdEYmV0WTBHbUhoTzB2dWx2Q0lRbnZkREp4?=
 =?utf-8?Q?oqRI=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 11:10:07.9764
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f6d8d05-0070-408e-e901-08de364a58f0
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002327.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5970



On 08/12/2025 11:20, Luca Fancellu wrote:
> Hi Michal,
> 
> thanks for your review, I’ll answer only few of your points and I’ll let Harry take the rest.
> 
>> On 8 Dec 2025, at 09:53, Orzel, Michal <Michal.Orzel@amd.com> wrote:
>>
>>
>>
>> On 28/11/2025 10:58, Harry Ramsey wrote:
>>> From: Luca Fancellu <luca.fancellu@arm.com>
>>>
>>> HAS_VMAP is not enabled on MPU systems, but the vmap functions are used
>> Just as a reminder, we don't intend to support VMAP on MPU? Asking because it
>> would otherwise be a duplicate effort to implement only these two helpers.
> 
> Yes we are not going to support VMAP on MPU, here we want only to provide the
> implementation of these two helper so that we don’t touch the common code using these.
> Are you suggesting some rewording or was it only a curiosity on your side?
It was a question to check whether we are aligned.

> 
>>>
>>> +/*
>>> + * Free a xen_mpumap entry given the index. A mpu region is actually disabled
>>> + * when the refcount is 0 and the region type is MPUMAP_REGION_FOUND.
>>> + *
>>> + * @param idx                   Index of the mpumap entry.
>>> + * @param region_found_type     Either MPUMAP_REGION_FOUND or MPUMAP_REGION_INCLUSIVE.
>> Both of these are unsigned, so why the parameter is int?
> 
> Uhm, good catch, I think this is a documentation issue because it might be also MPUMAP_REGION_OVERLAP which is
> -1, we should not mandate which value might be here, we should only say MPUMAP_REGION_* values.
> 
> 
>>>
>>>
>>> void vunmap(const void *va)
>>> {
>>> -    BUG_ON("unimplemented");
>>> +    paddr_t base = virt_to_maddr(va);
>>> +
>>> +    if ( destroy_entire_xen_mapping(base) )
>>> +        panic("Failed to vunmap region\n");
>> Looking at common vunmap() we ignore the return code from
>> destroy_xen_mappings(). Is it ok to diverge?
> 
> In our tests it’s ok, I asked Harry to have this so that we can catch any vunmap that is not balanced
> with a prior mapping. To be fair I’m not really sure why in the vmap.c implementation we are not
> reading the error codes from destroy_xen_mappings.
I'm ok with that. I don't know why we don't check the rc there. If you look at
x86 destroy_xen_mappings calls, none seem to be checked against rc. It can be
that it's impossible scenario there.

~Michal

> 
> Cheers,
> Luca
> 



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 12:03:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 12:03:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180399.1503582 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSZxZ-0005PY-8J; Mon, 08 Dec 2025 12:03:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180399.1503582; Mon, 08 Dec 2025 12:03:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSZxZ-0005PR-5H; Mon, 08 Dec 2025 12:03:21 +0000
Received: by outflank-mailman (input) for mailman id 1180399;
 Mon, 08 Dec 2025 12:03:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSZxY-0005PH-4s
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 12:03:20 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e147e3aa-d42d-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 13:03:16 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-42e2e445dbbso2027758f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 04:03:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbfee66sm25162486f8f.11.2025.12.08.04.03.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 04:03:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e147e3aa-d42d-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765195396; x=1765800196; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=cCn67rOq2p4N0VNzfut6dBvhV6iWLAk0xFW3EA43SVw=;
        b=MhjLPKJGtrVLNXH8XORHAvxKSz5xmxvp0RZDacNStEjbeiHgBRdmQkH+goYXA2Ao/W
         MaBAVbQ4+WPNc8kTf4Yivh9CLil2u95Jaco8gGTrCteou/ftN3CsT/D3N1I/ocPaEvFV
         qAW+cDlb+mY+Y/b/YBAhSD2uRkQQ7yVBXufyp5J8PhkoFFW0pD5NyOJU8UnJwqZ/j2Ba
         7X3zmlWPppeav9UmDrEmJ6U0EUFrzYEDe14F5H3wXYshL1TS+tD5c2v+eoWCl+sMIeDL
         JefIhz6sJzklDcJFJzjjci1IwaXaY7qYbb9l+oipaJZT73D662izWBvGn6kxoTIRX9IG
         O+uA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765195396; x=1765800196;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=cCn67rOq2p4N0VNzfut6dBvhV6iWLAk0xFW3EA43SVw=;
        b=FDQQ4vK2gYzq95mWdpxeBpUFfVJg/DmQyZJYIHISwJmotrhEYHq15ZTsThZJgaigIE
         o9GcxcE2WpibwNj0DJ74QoZjLhyiwm7Vc2LyZ1o1+0dQPd2mdpQnk3y5+Bp3L4N+0hQa
         M1yIaZ59dXN2Su1J9NaTHg6nRFz6+DZWJmuh39Q894BsVv8Ak6du7IegLOy/HGPI/kWs
         Ke/hYneeE9q0JZWV6nQ6umZSwJ7cMleIK3y7E++C2IXvDrjWXELW7MWNUC0tB7bR5pcU
         SpUmLXLgiAzKOqPTlZ2oy1cx/LVHV5TlgFIH7SX397PjXok7wKqOrkK2ef4I9Z/tHvqm
         2/6w==
X-Gm-Message-State: AOJu0YxTG6NMJshpzWEVgjV91V5wpE0hK28p0hEwzCTurUCgDW+NLv3w
	9LOJpLY/nDXbxQBe2H9SeGee4GxvbYdtlwUiW9r2fujuFNo7ExF9ZvZUeMLLYfBpc3E2wqFlGkO
	sSlo=
X-Gm-Gg: ASbGncuLKkz23oVznDknqpM/Lj1DEi19iK7b2pRx4IPDYBZujY8RlxUx9mF/sQC8LnY
	Ufs0Z5kEL9XbhOKf+xRl0lP49dc0O+qGtR8cITfIXR2Byc/LPri3YjUNDpdtFCfLJjz+6bfU0Z/
	YlcgUpIXxkYvXXtee1cv8IncEgwcl3qxLpx2cLtwBUQ0UVbAoxc7R9c0WSPcw/2xA+NYFDfJ4Jk
	pu2dlb+CmoGeAPszB1oPjQFHlPGnxFYT8Wh0Gw7d6ctpRyNO5fUz5CWOkmCC150oLEiLcqkmN6U
	f3tysu3Y0soUYBrJfAggpQggOYFD9B4NFsnYS5zJ9YZ1WelGt0Ig487COPTbFf/7a42ZpEzdjQe
	nK270g0Y1HVCvy8qZpAJY3V6iGiVRRWvxGrjJpGKeKMf7/QygmDiwYyw4KtTQ5h2K1fsJsCtPEQ
	cxD4Im4nwF/OZ0XNKZWXK7MIMLw2V3ykMtv9CUdyCouB5PXq2XTZzOWQaZrqU9JddQKhr5GiY2k
	oUCCWXN9poFKA==
X-Google-Smtp-Source: AGHT+IHaXm1ovxrhDlQGD0iYKLY0e3cc5XAOJFS395V/UdGspUsn7wbrxdfFIcS/laMuyt6XHI3BmA==
X-Received: by 2002:a05:6000:250a:b0:42b:3ad7:fdb3 with SMTP id ffacd0b85a97d-42f89f0f37amr8175723f8f.4.1765195396219;
        Mon, 08 Dec 2025 04:03:16 -0800 (PST)
Message-ID: <f46f89f6-242b-4433-958e-36088e567ccd@suse.com>
Date: Mon, 8 Dec 2025 13:03:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2 0/3] arch-specific libraries
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

1: x86: move arch_generic_hweightl() to arch-specific library
2: x86: move / split usercopy.c to / into arch-specific library
3: Arm: actually put library code in a library

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 12:04:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 12:04:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180409.1503591 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSZyZ-0005sh-GA; Mon, 08 Dec 2025 12:04:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180409.1503591; Mon, 08 Dec 2025 12:04:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSZyZ-0005sa-Da; Mon, 08 Dec 2025 12:04:23 +0000
Received: by outflank-mailman (input) for mailman id 1180409;
 Mon, 08 Dec 2025 12:04:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSZyY-0005PH-Bz
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 12:04:22 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 07532c04-d42e-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 13:04:20 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-42b3669ca3dso2011411f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 04:04:20 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d222484sm25577077f8f.24.2025.12.08.04.04.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 04:04:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 07532c04-d42e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765195460; x=1765800260; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ozbJcX6blb5zPRdnoCEqsT7ddEPI/UlCYaZ1hWM577k=;
        b=LmJZUiSzR/b1e4jhiElpGQ7H2Diwm/49PmSBvlFTOLXY3s/6HMrFde1dVmUQlb3Nj3
         LiVYUz0VZIW5uOi4F/SuTpJPt+aN9dviZnc9LbF1fRBbHjQywFP3N5n+LuEF1Y2Ne/y1
         0VYP9VE4ncEZB+GkqKYcDC85KhhU2L04yb5vgIZK4j8f5UR18r87MJfWWnR5YswE3to/
         ZSkm6Vv381PUGp4yovHoMiSIgNfdSqtpAloAfLBzqGPT51/HVLEgqvQAxONy/nTO2P+Y
         WWOziC679PFlsLIkWpQ1kknoJpJX0FjQrOXduP/zEHO74EN1E/4T8j2JsrRktE0l6b16
         QZvw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765195460; x=1765800260;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ozbJcX6blb5zPRdnoCEqsT7ddEPI/UlCYaZ1hWM577k=;
        b=SIMF5Ng7umkAs9Js2NWoeZTE0t3Ve/AvlRj0gTkfmtnD3FlF9mZeWeXoWyOVft5HSS
         Wy41Afne35t9aXR+WspOtIeDYydwe9rqueNREVbfXcgPqmeAMFgzFtNmGmPWQR+ZlIOL
         p6IL8o45CzcPeqbiemAJginI0wxEMhQrlcJc9jFIzbKPxVYzl/SGddqwCfBrsCsxFNQu
         h85alvg17PDfltKyk3Xxq1GCZttfZuunffOU8WGA8cfE9r9iAz4D2ZDEfvlmCBQaIDHq
         5kiQlGKX+j08RSt14jFfD8QciTlU4MTN2BCAPZ3FN/DzTMIMkTe+yJbobCp/tx0j6mD5
         8AbA==
X-Gm-Message-State: AOJu0YwnPtHUWAJZTexkzgbAC/y8A5jx3l509NcLOckE79BFG7I9DARv
	nM2lvHaJ3D8fQU50CQX6Uj2XRUjjEt83QnD+9ZsJoTqybY5YBs/TE3zyAFMUnHbqgWbbVzKWQuE
	jvJU=
X-Gm-Gg: ASbGncvLrV+/t45ClvjhTaEwjPiafOxvojEdAflMUSzWnKF+5Q2inBbP+AY7M7m0PEk
	N1JFph1v/ea6dFMy6C3HOgnATD4iHjRFbUmXAvgfkcYHFq5H8W9GLVn1b0fIf0gM2iid4nvKHEb
	nwfMqj7S04VtjMuHxJIzuSYzhNxI9aGRTb50C1eSgdf9GUddgA+4nNlC3Uh/J+VIsqWRthNb/8D
	SYOr1O+kEQItV6otl2MIM7kYAYKe94V/9RVwBzqFlFNlL5D84BNJBnbK2aTDvhz7uzRa/soXhIg
	lKanoDLphlIRjp8qB5pTUStbLfd5l2bcdsLg502F53P3ldUtDF5RMP0jI4rFQgFVsp4dlkhwlfW
	xStAtrZ4hrGoe10sAGeBmiC7zVoeDw5BQDPYqSKxYqzdcvVTUEkW12v5qgfyq/QAdajZB5KYrxg
	uuR7wB+ocYRuH48+M5Xae2N/GHrpqCEOMHln1cr8SgzcFg6LlbJOXML1Qok3gJ7NeVXkHO4fR92
	70=
X-Google-Smtp-Source: AGHT+IHZZ1S+NISr7aL1jI7+Op8eSyENtWjN7MGGSrDSfZAVLBj9q1qzZUFE9IDsxVzRfxK8DHZMlA==
X-Received: by 2002:a5d:5f91:0:b0:42b:411b:e476 with SMTP id ffacd0b85a97d-42f89f0f213mr6764179f8f.9.1765195460027;
        Mon, 08 Dec 2025 04:04:20 -0800 (PST)
Message-ID: <45eb7fb7-a899-4d64-a031-f6188146e238@suse.com>
Date: Mon, 8 Dec 2025 13:04:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 1/3] x86: move arch_generic_hweightl() to arch-specific
 library
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <f46f89f6-242b-4433-958e-36088e567ccd@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f46f89f6-242b-4433-958e-36088e567ccd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Introduce arch/x86/lib/, and make it the home for the somewhat misplaced
x86-specific file that lived in the arch-independent lib/.

Introduce ARCH_LIBS-y as a make variable, to arrange for arch-specific
libraries to (generally) come ahead of generic one(s) when linking. Should
any library be intended to come after the generic one(s), it can be
appended to $(ALL_LIBS-y).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: Arrange to link arch-specific lib ahead of generic one.
---
 xen/Makefile                                                  | 4 +++-
 xen/arch/x86/Makefile                                         | 1 +
 xen/arch/x86/arch.mk                                          | 2 ++
 xen/arch/x86/lib/Makefile                                     | 1 +
 .../x86/lib/generic-hweightl.c}                               | 0
 xen/lib/Makefile                                              | 1 -
 6 files changed, 7 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/x86/lib/Makefile
 rename xen/{lib/x86-generic-hweightl.c => arch/x86/lib/generic-hweightl.c} (100%)

diff --git a/xen/Makefile b/xen/Makefile
index e6cf2874251c..13e336ba5484 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -461,6 +461,7 @@ ALL_OBJS-y                += xsm/built_in.o
 ALL_OBJS-y                += arch/$(SRCARCH)/built_in.o
 ALL_OBJS-$(CONFIG_CRYPTO) += crypto/built_in.o
 
+ARCH_LIBS-y               :=
 ALL_LIBS-y                := lib/lib.a
 
 all-symbols-y :=
@@ -620,7 +621,8 @@ $(TARGET): outputmakefile asm-generic FORCE
 	$(Q)$(MAKE) $(build)=arch/$(SRCARCH) include
 	$(Q)$(MAKE) $(build)=. arch/$(SRCARCH)/include/asm/asm-offsets.h
 	$(Q)$(MAKE) $(build)=. MKRELOC=$(MKRELOC) 'ALL_OBJS=$(ALL_OBJS-y)' \
-	            'ALL_LIBS=$(ALL_LIBS-y)' 'all_symbols=$(all-symbols-y)' $@
+	            'ALL_LIBS=$(ARCH_LIBS-y) $(ALL_LIBS-y)' \
+	            'all_symbols=$(all-symbols-y)' $@
 
 SUBDIRS = xsm arch common crypto drivers lib test
 define all_sources
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 300cc67407e9..61e2293a467e 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -5,6 +5,7 @@ obj-y += efi/
 obj-y += genapic/
 obj-$(CONFIG_GUEST) += guest/
 obj-$(CONFIG_HVM) += hvm/
+obj-y += lib/
 obj-y += mm/
 obj-$(CONFIG_XENOPROF) += oprofile/
 obj-$(CONFIG_PV) += pv/
diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 16368a498bb7..0203138a819a 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -3,6 +3,8 @@
 
 export XEN_IMG_OFFSET := 0x200000
 
+ARCH_LIBS-y += arch/x86/lib/lib.a
+
 CFLAGS += -DXEN_IMG_OFFSET=$(XEN_IMG_OFFSET)
 
 # Prevent floating-point variables from creeping into Xen.
diff --git a/xen/arch/x86/lib/Makefile b/xen/arch/x86/lib/Makefile
new file mode 100644
index 000000000000..ddf7e19bdc1d
--- /dev/null
+++ b/xen/arch/x86/lib/Makefile
@@ -0,0 +1 @@
+lib-y += generic-hweightl.o
diff --git a/xen/lib/x86-generic-hweightl.c b/xen/arch/x86/lib/generic-hweightl.c
similarity index 100%
rename from xen/lib/x86-generic-hweightl.c
rename to xen/arch/x86/lib/generic-hweightl.c
diff --git a/xen/lib/Makefile b/xen/lib/Makefile
index 954d9216a39c..efca830d924c 100644
--- a/xen/lib/Makefile
+++ b/xen/lib/Makefile
@@ -39,7 +39,6 @@ lib-y += strtol.o
 lib-y += strtoll.o
 lib-y += strtoul.o
 lib-y += strtoull.o
-lib-$(CONFIG_X86) += x86-generic-hweightl.o
 lib-$(CONFIG_X86) += xxhash32.o
 lib-$(CONFIG_X86) += xxhash64.o
 



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 12:05:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 12:05:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180419.1503603 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSZzU-0006PL-Rj; Mon, 08 Dec 2025 12:05:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180419.1503603; Mon, 08 Dec 2025 12:05:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSZzU-0006PE-Mb; Mon, 08 Dec 2025 12:05:20 +0000
Received: by outflank-mailman (input) for mailman id 1180419;
 Mon, 08 Dec 2025 12:05:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSZzT-0005PH-So
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 12:05:19 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 299aa921-d42e-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 13:05:18 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-477b91680f8so48805355e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 04:05:18 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479311e7142sm240639485e9.11.2025.12.08.04.05.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 04:05:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 299aa921-d42e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765195517; x=1765800317; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xrAup4vUp6nYzKqWbBt/etineahYQEJgciYvLWhouQc=;
        b=QmR0N6gdsluqQgcZ+eci4mcnxPLf0FHbJ4PevIYXKG6XiMRhanbpcuAV/+WduQNeoc
         JN/6f6gOyUeEMDWpNlYBW2istw/nfaJqZ40XnqG+wuw1uo+XCNf7CTTYt05c+7hpKn/Q
         8ulUEc4lbqnMaG0RPbJRQnQUhomF6zB8AsSiqmFb3ZTSgIOR/Nwm2YAp0KJdgY7S6h3m
         zpNMyN0poKRfAbba2wtU4urdliGTCD16J3kZEK3JppBFrnY0x+zuBHNQXuUOVISmXX7W
         q8K5GJa43E3s+zgH9vYUktwL22sEXLI5NIId1rxa5j6Jwk0OWpC45snNjgck5g49819h
         xikg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765195517; x=1765800317;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xrAup4vUp6nYzKqWbBt/etineahYQEJgciYvLWhouQc=;
        b=I22UwCaiC2FwVeOzA7zWm1ezYbQq9tUCLi+QNzvRcuXpt6aT6cGWAOSfQ/X72/sAeQ
         Rm8vZDGVeCTHFIvt/9FzQmVx3zOcryk+pwKQZ2aikbfX2BrU8rpbCjOfr55THo6cmd4U
         O9Ja94+8Z8YcFS9xH7Lj4GGmjvgK4zaoTLZKHDUsUJKqkwIDutlrmy4pgcKWby8829KK
         y1z+Gl/ykl88fGWGWiULuOh0DoBGAdLaUDxi4XCV7Q55filWlcu01q2jDwt2eaLdalx+
         9nYD/crUeDU5HPcOgZ3407ZiKNC1nwRgO72IlQFq8zYG2DuZaA2aEFaK+ZMQHwig8wUa
         1ldg==
X-Gm-Message-State: AOJu0YwWvQZQi17f5cnsCoQT9s2NmY+E5oG1A01ceFtN4hbmrvI9xMH9
	+8NgmsvqLAXg+wz9IPFNeOkDi5QT6Mb6JQ1sY4qXcf2cKmtqeREu1NmhWqTblJrNj5zP5jufFtM
	M4Ig=
X-Gm-Gg: ASbGncvnDXdCDvXqXtiFNZRK1Ve7H9OzuriNRyPtBxHLVRMLgh6WyZQAnZd6dzixMLL
	Eofqio8c81kvTZeNRHbrnMOk/qF1+HTwzAEHyxvWpXfw063TGmmo1p+ylnWPPz8UMxlGyUKAcW5
	xE4E/UdLqpjq7zSWWOiDxHhuE0C96AzgsogwgJklt13Mqhu9hQQ0noUvDMYlOBoqtCZbrefvukM
	gZcaugFiD685CsirakCz1YdRYrxlzt6Fv3LcK7snSC7uJz1pg/K8AO5Ef5gtJmGiowRUqEyoLyG
	FU2kswjSS+wAB4Tqtmt48G0X3t6tWt6gnzFHigLZ0PPnq2JM44N4MLyEKrLLpkr3X3hqRHkNEHO
	xESf50xfbqORo5MASzAGynJVYss3aSCeoZW8rDnRjyJRggYM8TIwVWeUIIvwo+719KB/XcpQ/uZ
	pSTsnKWov1aQmvNqzC9LxfhMvVWRxGdmb3h4WvtuR2+XjBE7uOoOkq5FqYvvJJVN+jfM3I7Rb/X
	MA=
X-Google-Smtp-Source: AGHT+IFXQ8V1P767Zzi9RxllZsdVsMTJ1OkPjjft1oy2VQPfMvCtYHgsH6p1XyiyuqoeD7CpTDdKTw==
X-Received: by 2002:a05:600c:354a:b0:477:9b4a:a82 with SMTP id 5b1f17b1804b1-47939e49390mr90143445e9.35.1765195517511;
        Mon, 08 Dec 2025 04:05:17 -0800 (PST)
Message-ID: <12852eae-849b-4576-a8e1-85edf401b455@suse.com>
Date: Mon, 8 Dec 2025 13:05:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 2/3] x86: move / split usercopy.c to / into arch-specific
 library
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <f46f89f6-242b-4433-958e-36088e567ccd@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f46f89f6-242b-4433-958e-36088e567ccd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The file wasn't correctly named for our purposes anyway. Split it into its
"guest" and "unsafe" parts, thus allowing the latter to not be linked in
at all (for presently having no caller). The building of the "guest" part
can then (later) become conditional upon PV=y.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/Makefile                         |  4 ----
 xen/arch/x86/lib/Makefile                     |  2 ++
 xen/arch/x86/{usercopy.c => lib/copy-guest.c} | 12 +---------
 xen/arch/x86/lib/copy-unsafe.c                | 22 +++++++++++++++++++
 4 files changed, 25 insertions(+), 15 deletions(-)
 rename xen/arch/x86/{usercopy.c => lib/copy-guest.c} (94%)
 create mode 100644 xen/arch/x86/lib/copy-unsafe.c

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 61e2293a467e..dfb258d7ac1c 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -72,7 +72,6 @@ obj-y += time.o
 obj-y += traps-setup.o
 obj-y += traps.o
 obj-$(CONFIG_INTEL) += tsx.o
-obj-y += usercopy.o
 obj-y += x86_emulate.o
 obj-$(CONFIG_TBOOT) += tboot.o
 obj-y += hpet.o
@@ -93,9 +92,6 @@ hostprogs-y += efi/mkreloc
 
 $(obj)/efi/mkreloc: HOSTCFLAGS += -I$(srctree)/include
 
-# Allows usercopy.c to include itself
-$(obj)/usercopy.o: CFLAGS-y += -iquote .
-
 ifneq ($(CONFIG_HVM),y)
 $(obj)/x86_emulate.o: CFLAGS-y += -Wno-unused-label
 endif
diff --git a/xen/arch/x86/lib/Makefile b/xen/arch/x86/lib/Makefile
index ddf7e19bdc1d..8fe2dfd88553 100644
--- a/xen/arch/x86/lib/Makefile
+++ b/xen/arch/x86/lib/Makefile
@@ -1 +1,3 @@
+lib-y += copy-guest.o
+lib-y += copy-unsafe.o
 lib-y += generic-hweightl.o
diff --git a/xen/arch/x86/usercopy.c b/xen/arch/x86/lib/copy-guest.c
similarity index 94%
rename from xen/arch/x86/usercopy.c
rename to xen/arch/x86/lib/copy-guest.c
index a24b52cc66c1..25eeb35427e2 100644
--- a/xen/arch/x86/usercopy.c
+++ b/xen/arch/x86/lib/copy-guest.c
@@ -1,4 +1,4 @@
-/* 
+/*
  * User address space access functions.
  *
  * Copyright 1997 Andi Kleen <ak@muc.de>
@@ -6,8 +6,6 @@
  * Copyright 2002 Andi Kleen <ak@suse.de>
  */
 
-#include <xen/lib.h>
-#include <xen/sched.h>
 #include <asm/uaccess.h>
 
 #ifndef GUARD
@@ -139,14 +137,6 @@ unsigned int copy_from_guest_pv(void *to, const void __user *from,
     return n;
 }
 
-# undef GUARD
-# define GUARD UA_DROP
-# define copy_to_guest_ll copy_to_unsafe_ll
-# define copy_from_guest_ll copy_from_unsafe_ll
-# undef __user
-# define __user
-# include __FILE__
-
 #endif /* GUARD(1) */
 
 /*
diff --git a/xen/arch/x86/lib/copy-unsafe.c b/xen/arch/x86/lib/copy-unsafe.c
new file mode 100644
index 000000000000..a51500370fb1
--- /dev/null
+++ b/xen/arch/x86/lib/copy-unsafe.c
@@ -0,0 +1,22 @@
+/*
+ * "Unsafe" access functions.
+ */
+
+#include <asm/uaccess.h>
+
+#define GUARD UA_DROP
+#define copy_to_guest_ll copy_to_unsafe_ll
+#define copy_from_guest_ll copy_from_unsafe_ll
+#undef __user
+#define __user
+#include "copy-guest.c"
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 12:07:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 12:07:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180431.1503612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSa1Q-0007AC-4R; Mon, 08 Dec 2025 12:07:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180431.1503612; Mon, 08 Dec 2025 12:07:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSa1Q-0007A5-1G; Mon, 08 Dec 2025 12:07:20 +0000
Received: by outflank-mailman (input) for mailman id 1180431;
 Mon, 08 Dec 2025 12:07:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSa0H-0005PH-EQ
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 12:06:09 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 472744f4-d42e-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 13:06:07 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-42e2d52c24dso2317559f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 04:06:07 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d222478sm24800082f8f.20.2025.12.08.04.06.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 04:06:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 472744f4-d42e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765195567; x=1765800367; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HzX+wdHildeYBD0jUaBNnwRIzpTXlHrCCezhauXt/3E=;
        b=BvdfeexB+O+yYWnCd8d6KViNVWWmBFsLeC/hUaojMqYqKqVydZJtKBnBShCVUVsmCC
         oKzVRA5kXbGU2nR1orNhI4JKxD8ZBe1ftXQgl1el4s6AIFHAd4q0ZSvM50K7Dti9OCSr
         RLuN/4Gr33fp+T3sgIX5x78VAIgI+0VKm8jVRXatkdEvytceH01DwsJ5HMEMxpgWgIRI
         GU7I8pPl0HRAV2KbB0Ccz3gez61irD4eT65xQzbUw6jIsRRWV0+gXuFiWJzLZvllfr5t
         0ovlqc/6ewnrJsgRDKPBURjgdq7A9VokNEAerMsFmKieuOwxtosQcnryM9roxLARHkSd
         migA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765195567; x=1765800367;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HzX+wdHildeYBD0jUaBNnwRIzpTXlHrCCezhauXt/3E=;
        b=BNo4HkbtTswiS1I7sOON8tlMQbt15KedRuO/323r+Fym1zJY/dP4MbxRUfX7V/9qHq
         EUorI6rqxxZxsKCjMelKCPvzrIwreyC9tVgA606tQcLa9tUUCi9eUr0PJ6xPMNKtjvmY
         L1Gzi2kOHzxDOBkp0003Ugwmks8yGlfx6fd0hPSr7L18IMJLG+dAodF0082pcv/9UqeI
         k7Q/fnW+FT2AGCqcAAqxlw6mMMy5WFqKdCV494LVhe3NTZk8e2buuqj4eEznhLZ8HtsF
         FhFAxKclBaQmyik2LEbytrTEt58czbIAqcFiCvI4Y+vlmRJ31mtw0gfNpkpOxESdVGfN
         cS3g==
X-Gm-Message-State: AOJu0YxQRaSxPUD1747pI/0CPDTurHKRbvSkQQjbP2ZerlwV1siFFkN7
	GUoNK/KzjLM6bGYTYJYj+v0jgxX+1yacdjSWhyOzhYM5jXZubuLWKbOPGZuOnaNqIcN/oRI8oam
	DPPY=
X-Gm-Gg: ASbGncsOV+iy9945jYU5ieMwCbT0nsHGCaSW7SxQVkl4daSY4l4rUKicCufdzVxu4Aj
	xL+xwmhfUb/wYsGekkTTlYLWd/ax0z0o1HdhbhDizZm43FVHSwqA7P1iSC/aI1ufXj9zMrTt5j+
	rldhyhjxrJqwrxx/U1Dr3zknJ7CiewTyGJxH5XwllVD+//IlEiz1IQ2tD4hcJgbuad2+M78ua4F
	tPs4qOhkSrmNRjWKhU0gAxuI6fN6XCdlBMiWwDWVaF0B904Sx1VJ4ZP+ExdmEIbnCh68Y9H9e9F
	gke9zEIHnpucRXn9c8inY81ZQC3D38GZZXPzb4X/HCM7n9DTT8ws0Z+qNQvQL1PXlY2ExH3zsSE
	yYN1uEYWG11F6dWe05w56u1PS/6iki1vZ1a28XyebnZQR8i3l1+NSWBCuSmry/bSAgm7AtUhssd
	moBQqEfJuYS4zMx3Y8lHg88qtSpY/Q/WJ/IPLE7L3Y4q9JvCEedZr4/Vih0lexyJsOjwPjUeNUb
	L8=
X-Google-Smtp-Source: AGHT+IGxVdVSryLepq5rPrR81ICPa90f5SY7Mzj70ewXoB3SAwVTEjeVcsPJQtGOV5z8zGfWNUTXBA==
X-Received: by 2002:a05:6000:2c04:b0:42b:2fc8:170 with SMTP id ffacd0b85a97d-42f89f09ce8mr8385124f8f.12.1765195567041;
        Mon, 08 Dec 2025 04:06:07 -0800 (PST)
Message-ID: <fc35728f-0fcd-4e29-bbc5-9410323a7a64@suse.com>
Date: Mon, 8 Dec 2025 13:06:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 3/3] Arm: actually put library code in a library
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <f46f89f6-242b-4433-958e-36088e567ccd@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f46f89f6-242b-4433-958e-36088e567ccd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Now that the build system supports it, build the $(ARCH)/lib/ directories
actually into libraries, thus permitting unreferenced objects to be
omitted.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: New.
---
 xen/arch/arm/arch.mk            |  2 ++
 xen/arch/arm/arm32/lib/Makefile | 10 +++++-----
 xen/arch/arm/arm64/lib/Makefile |  8 ++++----
 3 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
index 9c4bedfb3bd4..dea8dbd18a44 100644
--- a/xen/arch/arm/arch.mk
+++ b/xen/arch/arm/arch.mk
@@ -1,6 +1,8 @@
 ########################################
 # arm-specific definitions
 
+ARCH_LIBS-y += arch/arm/$(ARCH)/lib/lib.a
+
 $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
 $(call cc-option-add,CFLAGS,CC,-Wnested-externs)
 
diff --git a/xen/arch/arm/arm32/lib/Makefile b/xen/arch/arm/arm32/lib/Makefile
index 18326b284e3b..f5ff7f92d195 100644
--- a/xen/arch/arm/arm32/lib/Makefile
+++ b/xen/arch/arm/arm32/lib/Makefile
@@ -1,5 +1,5 @@
-obj-y += memcpy.o memmove.o memset.o memchr.o
-obj-y += findbit.o
-obj-y += bitops.o
-obj-y += strchr.o strrchr.o
-obj-y += lib1funcs.o lshrdi3.o div64.o
+lib-y += memcpy.o memmove.o memset.o memchr.o
+lib-y += findbit.o
+lib-y += bitops.o
+lib-y += strchr.o strrchr.o
+lib-y += lib1funcs.o lshrdi3.o div64.o
diff --git a/xen/arch/arm/arm64/lib/Makefile b/xen/arch/arm/arm64/lib/Makefile
index 66cfac435ab4..d6b231dc6193 100644
--- a/xen/arch/arm/arm64/lib/Makefile
+++ b/xen/arch/arm/arm64/lib/Makefile
@@ -1,4 +1,4 @@
-obj-y += memcpy.o memcmp.o memmove.o memset.o memchr.o
-obj-y += clear_page.o
-obj-y += bitops.o
-obj-y += strchr.o strcmp.o strlen.o strncmp.o strnlen.o strrchr.o
+lib-y += memcpy.o memcmp.o memmove.o memset.o memchr.o
+lib-y += clear_page.o
+lib-y += bitops.o
+lib-y += strchr.o strcmp.o strlen.o strncmp.o strnlen.o strrchr.o



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 12:21:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 12:21:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180449.1503623 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSaF4-0001gf-D8; Mon, 08 Dec 2025 12:21:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180449.1503623; Mon, 08 Dec 2025 12:21:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSaF4-0001gY-99; Mon, 08 Dec 2025 12:21:26 +0000
Received: by outflank-mailman (input) for mailman id 1180449;
 Mon, 08 Dec 2025 12:21:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vSaF2-0001gS-CF
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 12:21:24 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vSaF1-0003gl-2H;
 Mon, 08 Dec 2025 12:21:23 +0000
Received: from [2a02:8012:3a1:0:55c6:6c20:a76e:cc19]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vSaF1-00CPEw-2O;
 Mon, 08 Dec 2025 12:21:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=3Ts7Xk4596r9vk2SKc/86F7VHuAy7TLROXJPeFuJs2k=; b=ieaVUfejUJzUJB+7Cpa2JAA8dV
	2Rq2cs1wANM6uEPw2e87wg2cfPCjE2W+khAjxFp0A82cL5iDmUoRZvJSMUgN4Su92LrDSPLMlQHAN
	QNOoaQyOZpw/cXIFZPqOfD1WNZTWKA+KcDKkjE0qh0B2QOuwDdC6FJaQt4XlOoJfZ1tY=;
Message-ID: <118ce994-9815-4182-94f0-992444b9a95b@xen.org>
Date: Mon, 8 Dec 2025 12:21:21 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/8] symbols/arm: re-number intermediate files
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
 <a7fd7847-a34f-4436-95a3-627d01a64e43@suse.com>
Content-Language: en-US
From: Julien Grall <julien@xen.org>
In-Reply-To: <a7fd7847-a34f-4436-95a3-627d01a64e43@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 26/11/2025 13:41, Jan Beulich wrote:
> In preparation to do away with symbols-dummy, re-number the assembly and
> object files used, for the numbers to match the next passes real output.
> This is to make 0 available to use for what now is handled by
> symbols-dummy.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 12:44:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 12:44:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180461.1503631 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSabG-0004nH-1u; Mon, 08 Dec 2025 12:44:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180461.1503631; Mon, 08 Dec 2025 12:44:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSabF-0004nA-VN; Mon, 08 Dec 2025 12:44:21 +0000
Received: by outflank-mailman (input) for mailman id 1180461;
 Mon, 08 Dec 2025 12:44:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSabE-0004n4-O1
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 12:44:20 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9c343710-d433-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 13:44:18 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4775ae5684fso22378665e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 04:44:18 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479311ece7asm237911495e9.12.2025.12.08.04.44.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 04:44:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9c343710-d433-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765197857; x=1765802657; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7wUHFrBu0Pftp6NamaEvwDoEZatGA9mmCuoZN2UQEH4=;
        b=eKJEH0JSOds/GycPi7Zfi1gxWypHZ8mnOz4DuojTdet2O764yuDvz4ydOqq0jtrR9y
         OiKOF40du5vRkdfn0//zRTEkSTnEacjiqvYgNdll9LKr77ly4l6QzN+cq2BfOPN2aT+M
         6M37flxAXL0HDYFlTTAsXc3F36ucuzrrczDz/0YB1yrGh1mMhIhczHf23mqTjFGhXiNg
         cfbnxFFaRnTkYzCyvad2I5cLvk7XcyLIDL9HN8ow6nHKfAhqH30DIYBSFprglbe4OUA9
         9FHk16Thp7AeIdyHFASaHffIGaOvgP/LM4ppougr+f6Uv0xM46jvlpG1adhcSTzhR/ns
         AqvA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765197857; x=1765802657;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7wUHFrBu0Pftp6NamaEvwDoEZatGA9mmCuoZN2UQEH4=;
        b=TRnX8tfCrfoPbkekEUe/wUzFjhIHSrgMDOoxzygfES0zNx8fjlXggNli8NnCIcSdsP
         al7a9qVRXtRWrToCc4JoqiW5MRSgSvlFUCkAPrl/aUNJHjD9R54hNFm0wfu0CN5r8E5r
         4hM3FqaxB+cGb8Vm54gnmfVyso1s8wnAxti+lt0tbz54SojbmP88lHi8OWG583sWOB3j
         LB/TEtC/tQ0Gyn2LiWzgFD/LwO2t+ZA8IZ54kPwUIF6sloL1atXpb2jpPE5Bq9Zi7zFz
         LLdeiILGfNx5JabqStxcwTO3HYyE8jiASkf66NmdmV8ZsMqeC3dE464MQvpMR7ReF/3S
         B2bw==
X-Forwarded-Encrypted: i=1; AJvYcCVo5+vaT75rfMmIEoXJINqWx1QKyc8pW96zVjioSTbUVkfwEc0OhknlwVUQEEQtUbGasxNXzoy06gA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzWBYWjmjL6flaraQRsIb4i2QNWJhOvCCthU9O/PcyR13vMaANq
	iixq7w8Qbk0JKDMXp2xl2grwW0p5v5FP5fr3OzyG4IrZZP383kVVMfMGb+r08fkD6Q==
X-Gm-Gg: ASbGnctFufAr1uzvQfal5sHG6vgJyyPUy5HmALGB4ZZztueFwpId7zds4l3DU8+XgOY
	Z2rppJvU9sWq42zJGRJusHT5d0jXZl1KuIIYeIOocxsN4pCp3gMEJkJB0n6roG7sg0XXkNUtgh4
	Ret0OcRyMpvuNMV/hATsLYFJDmDUrphGOtplfABPS9HsoozmXAL3+OidxBoTHjbGdvHwNFkabu+
	XndG6sU0w3nxeC4lu+rw1zr/KK9lEcMXK76FowZiBQQkrQ18XGTv3Oln3ocKyD2t8G1htNp/lmu
	69AIm18FE1u/YiP89iMV/KzOY0Fyqdm78svjNORvU3PiA3bzlh+jKizw9zuS62GnoM4Z+YWNbvv
	oNCYqF8qp5X6QombBIKTNFIPnUxnI+X4P02XPwmBbgYgVAe9quoYTMlTQXymIE2ewdA6+Cjv9cX
	LtIYcEoeomjjTJw7zmf68p08+3AslwBVEjTkamXX9ek44D2DKcNmzFu7sOHEkDtyrZJ+2x+6l2B
	8mAv5QLg5NX6Q==
X-Google-Smtp-Source: AGHT+IGPlV07i8Kfqbg0zJSt94gTHEGX0dyQQN4q01jW+F/bK0g5JU+YB77pXyXFYEhO0d+6b7VDYQ==
X-Received: by 2002:a05:600c:3115:b0:477:63db:c718 with SMTP id 5b1f17b1804b1-47939e2797cmr89596135e9.16.1765197857281;
        Mon, 08 Dec 2025 04:44:17 -0800 (PST)
Message-ID: <c9ee4fc8-44c6-43e8-88eb-9041c51aed16@suse.com>
Date: Mon, 8 Dec 2025 13:44:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/3] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251128152218.3886583-1-grygorii_strashko@epam.com>
 <20251128152218.3886583-4-grygorii_strashko@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251128152218.3886583-4-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.11.2025 16:22, Grygorii Strashko wrote:
> --- a/xen/arch/x86/include/asm/mm.h
> +++ b/xen/arch/x86/include/asm/mm.h
> @@ -619,9 +619,12 @@ void __iomem *ioremap_wc(paddr_t pa, size_t len);
>  
>  extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int pxm);
>  
> -void domain_set_alloc_bitsize(struct domain *d);
> -unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bits);
> -#define domain_clamp_alloc_bitsize(d, bits) domain_clamp_alloc_bitsize(d, bits)
> +#ifdef CONFIG_PV32
> +#define domain_clamp_alloc_bitsize(d, bits)                                    \
> +    (((d) && (d)->arch.pv.physaddr_bitsize)                                    \
> +         ? min_t(uint32_t, (d)->arch.pv.physaddr_bitsize, (bits))              \
> +         : (bits))

I'm not quite sure if converting to a macro was a good idea. But now that it's
done this way, so be it. Just that a couple of issues may want / need sorting:
- d is now evaluated up to 3 times,
- indentation is wrong,
- the use of uint32_t is against ./CODING_STYLE (I dislike the use of min_t()
  anyway, but what do you do when a macro was asked for; of course we could
  [easily] arrange for BITS_PER_LONG to be of type "unsigned int"),
- the use of "bits" in min_t() doesn't really need parentheses.

> --- a/xen/arch/x86/pv/domain.c
> +++ b/xen/arch/x86/pv/domain.c
> @@ -254,7 +254,11 @@ int switch_compat(struct domain *d)
>              goto undo_and_fail;
>      }
>  
> -    domain_set_alloc_bitsize(d);
> +    if ( MACH2PHYS_COMPAT_NR_ENTRIES(d) < max_page )

You mention the change in condition in the revlog (but not in the description),
and I'm having trouble to follow why ...

> --- a/xen/arch/x86/x86_64/mm.c
> +++ b/xen/arch/x86/x86_64/mm.c
> @@ -1119,26 +1119,6 @@ unmap:
>      return ret;
>  }
>  
> -void domain_set_alloc_bitsize(struct domain *d)
> -{
> -    if ( !is_pv_32bit_domain(d) ||
> -         (MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page) ||
> -         d->arch.physaddr_bitsize > 0 )

... this 3rd part is going away.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 12:52:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 12:52:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180473.1503641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSajU-0006Us-Qo; Mon, 08 Dec 2025 12:52:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180473.1503641; Mon, 08 Dec 2025 12:52:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSajU-0006Ul-OE; Mon, 08 Dec 2025 12:52:52 +0000
Received: by outflank-mailman (input) for mailman id 1180473;
 Mon, 08 Dec 2025 12:52:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSajU-0006Uf-0H
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 12:52:52 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cd57b157-d434-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 13:52:49 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-47118259fd8so35741095e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 04:52:49 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7ca4f219sm24132051f8f.0.2025.12.08.04.52.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 04:52:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd57b157-d434-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765198369; x=1765803169; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oSfNQs/aaSi3hksy2OevppyStjwcZ9spCScFVOT4tUQ=;
        b=RRTNABqIu3iaqsQp5QT/0PLAyp7Fw4fjmU+3Q0O1er0tgvrtzNmN/PnTmce0cWUCy8
         457sgG5WMAs0gNHd+gvc8EMCoNMpmI1ODc8D/mwB1UeSyNIDvD/cAI0Z6T19XJ2I+fJ5
         0e/JwGMg7uRLp6nrt62Bs9O5BZ7ZjyvtE5j699qRZfivii76cxz9zMOLkcH88okDBSwI
         s4l+sSpd0jyFRcUFatiwYjCjMKaiNg/UDTWj45ZgOaorpbyjhzJvB3BGMYElRHo+Bn6Y
         LM/a0Cms3KZxE9T6XqOenXx43xs5tMgN4ToAzOdW9K1DQboXFDCMkuQzTJ/vbONzriyF
         msMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765198369; x=1765803169;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oSfNQs/aaSi3hksy2OevppyStjwcZ9spCScFVOT4tUQ=;
        b=IcXq5AvtogDrTPmcNJNKm1Hb5PzEU0I9NOwSAEg8/CciKkZ8cOFv+oou6tAHqYjl9E
         //75xsLLj7bhdxJf5/MyOyiQR18mcxIeP9pwhjrY637+7VwenImk99xAFfOsJcnzHOV1
         vomuzz6zQT6MRFS1hwbBCokpapAxSaV6uS7o7dOLobP9JTMmtaVHPSUooXIPJfLmPcEF
         bS92LNfddUCqP5mpaurEPDW5W+WwcCT6GL9n21LYig5PBz7dktfDbA8HybvlJxNwNZTp
         UySbt0Pw5Eqk7xZLze77MXAAO1fiatCF1KZoPuDj65Qfrhi2WwRI7hYV4+Wv9Gu7He5W
         8VXA==
X-Forwarded-Encrypted: i=1; AJvYcCUT4uZq8WQMYiMGF7vNtyRr526OwXOelb8MIHblN6MBAx1h5Sryo6kZhCdLruutnXgl4eK3w2F096E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwdzzTIL4PCrgqF9ITkBqhuKVRaByPu3s0viwbU1S9BWWTS3pp5
	SzlzpfX94scNpY3AXuGwFXrkDGQ1DHjJSkvC0khFA/kWi0+qtEk4+0O5HnJKJqJwPw==
X-Gm-Gg: ASbGncummDfPCSMqibDT0WRJYGVjzuG2T6XSimiMBugANLmj2ixEzj8uy/BFyNCi6hq
	+ab0+4WqIj37gD1H+us2VqMHb15+7zR/fw2o4c+coBxJxWturBHlEtcN4u/omj+cCKCoCBADyT3
	wQ53wLiJ/fqUUu7zR9ezbsCIJmBaZlHErwdXQuEO96Yn4qaFr9GTXCHs53aboWTkI+Dnr82AEQB
	+hSkuFskBUwg2ocjnLWTa6jk5KiTO5HJm4x+h1nTEHf5tsGqSdU0qQdxGtmBmSnutzpRnlTBcvG
	NJVGoQcX8O6X8NWmmNJ8zyRnv7KI68hr3D9ry4J0w+L7UxIh9ECFbgg9eCGa6sS8OYpsqfCnYY5
	GvcvQDQKmwI/fEU7Vh+sS1B4pokQW9YmupP8FDZBQ2PdxXw9lF5dlWx6y7mb6vU1KTteXNGtRsI
	ZxNSh4s4ZIVngCVm0MF1RXAj/U1+syw2H/gskX2+Y0jNWNnx/nr18t5MpkCdgYl9oldVe56XPQL
	P0=
X-Google-Smtp-Source: AGHT+IFVlJp+L80mm2IFLL+d9DUEpMcZKNfIpuBYDDLe0E5w+g28TEwCC05Ty+TpBFNOYkBnGacCEA==
X-Received: by 2002:a05:600c:5489:b0:477:7925:f7fb with SMTP id 5b1f17b1804b1-47939dfcc18mr90740845e9.10.1765198369244;
        Mon, 08 Dec 2025 04:52:49 -0800 (PST)
Message-ID: <796783b3-0727-4375-bec1-0e6a18a2a582@suse.com>
Date: Mon, 8 Dec 2025 13:52:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/2] tests: fixup domid test harness dependencies
To: dmukhin@xen.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com, xen-devel@lists.xenproject.org
References: <20251204123712.721443-1-dmukhin@ford.com>
 <20251204123712.721443-2-dmukhin@ford.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251204123712.721443-2-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.12.2025 13:37, dmukhin@xen.org wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> There can be multiple test harnesses per one test target. Fix that by
> iterating over all prerequisites in emit-harness-nested-rule().

This reads as if previously there was no iterating, and you add some.
What you do it further parameterize the existing macro. That anomaly
actually looks to reflect itself ...

> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
>  tools/tests/domid/Makefile | 12 +++++++-----
>  1 file changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/tools/tests/domid/Makefile b/tools/tests/domid/Makefile
> index 753129029ed9..1a2129d20655 100644
> --- a/tools/tests/domid/Makefile
> +++ b/tools/tests/domid/Makefile
> @@ -14,16 +14,18 @@ $(shell sed -n \
>      's/^[ \t]*# *include[ \t]*[<"]\([^">]*\)[">].*/\1/p' $(1) 2>/dev/null)
>  endef
>  
> -# NB: $1 cannot be a list
> +# $1 target
> +# $2 list of test harnesses

... in this comment. According to ...

>  define emit-harness-nested-rule
> -$(1): $(CURDIR)/harness.h
> -	mkdir -p $$(@D);
> -	ln -sf $$< $$@;
> +$(1): $(2)

... the use of the parameter, this is the list of dependencies.

And then, how does this make any difference at all when ...

> +	mkdir -p $$(@D); \
> +	for i in $$<; do ln -sf $$$$i $$@; done
>  
>  endef
>  
>  define emit-harness-rules
> -$(foreach x,$(2),$(call emit-harness-nested-rule,$(CURDIR)/generated/$(x)))
> +$(foreach x,$(2),$(call \
> +    emit-harness-nested-rule,$(CURDIR)/generated/$(x),$(CURDIR)/harness.h))

... you still hardcode the exact same file here?

As an aside, imo this would better be wrapped as

$(foreach x,$(2),$(call emit-harness-nested-rule, \
                        $(CURDIR)/generated/$(x),$(CURDIR)/harness.h))

or even

$(foreach x,$(2),$(call emit-harness-nested-rule, \
                        $(CURDIR)/generated/$(x), \
                        $(CURDIR)/harness.h))

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 13:01:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 13:01:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180484.1503653 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSarp-0008U4-Kv; Mon, 08 Dec 2025 13:01:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180484.1503653; Mon, 08 Dec 2025 13:01:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSarp-0008Tx-Gr; Mon, 08 Dec 2025 13:01:29 +0000
Received: by outflank-mailman (input) for mailman id 1180484;
 Mon, 08 Dec 2025 13:01:28 +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 <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSaro-0008Tr-JU
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 13:01:28 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 01bea7ab-d436-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 14:01:27 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-42b47f662a0so2733190f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 05:01:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d22249esm25460056f8f.25.2025.12.08.05.01.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 05:01:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 01bea7ab-d436-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765198886; x=1765803686; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WXy6jB9yw+ZVDKGg8hvPvpGfExTmpiiO7+onUVRR1es=;
        b=CGhmFJ2D+Chl5ZGaOkZpcATZSOGKm6gK0Rvmx51dVyjbdEvxKWJ0ORJhHCCIaq1Bkq
         EogC7g+zdj+Vk1kXHvPxioOCSXUocXphdzCjwiyyuVUP9IxOLYFCJ4FCMXDz5ahV5BRG
         UMiw47pRM2DPRj9+gaUO7ks/5SOrvx0BRMMgaBUtaKvq5bOcAS92kmYZCqQu0G51qlXN
         ZeCg9UKi0tLvRPA5wWTcFftCjyKh8bhXs/dZdFdCFcFOadRmsxN4DD/LBIvptBtFEiTc
         eN1cnHilmYhz0kh2uJ7aa6GOpbHtGl1wTR8kwC5j0GAs/qBvK8GQLvCUuKI39g+3kks1
         nFXQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765198886; x=1765803686;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WXy6jB9yw+ZVDKGg8hvPvpGfExTmpiiO7+onUVRR1es=;
        b=Z9N7Fsh3z/ztvup+zbTfhXDqFQnVK32dBZTsMIcnWAZRE2ah2+THYKEV0Je4GPnEMg
         Xw8paAXxzwQnUA/alRRuZAVJ5e6rCUJk1ZQDwXwPL0viKW7JlYY3u5IlJbC8p1v/9dOM
         T8Tc+uwrSfsJMfDzrBFjYMuDovZ2UWKQP9uN0yYGhZ/1Fodu9y1PPONHdOy63eD6iws+
         MUWpIjsGkf/S5XRyQ4C96fQGn2IoeeIDoqex0xNix3wVMkk3zQ72ekIIp7YO32Wt0DCI
         XDuQBrTSfqvvyAAHMMxVdkdzAx77BmOmHXwkrFCX42I6e74fH+L1ihB/RhEWJ9GIquJ1
         ha9g==
X-Forwarded-Encrypted: i=1; AJvYcCVbH+ttsDIZqLGKtfopbeMkRncmavk0LJ+bMvvwNUJT6uz6OMNjfBMj81jxAP/doPzwOxAi3RyrAmk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx+hRa85D8n1J9vBz1NqNcO+uxixNrX1H5hVVEhwc5R/0TYxBE5
	HvGJqdELVmOdR6vwEwLTwhK+XVTpVyudwNCHshpreg9sPb8TfUmbvWdoCtXJ3k5x8g==
X-Gm-Gg: ASbGnctQRfmvHkVxilGATjdneAvtShh9B2lppM2tK1Re207dF04ds/W+mIvR3xrsAPu
	sB800I4sPqf7gC4j83ip201pl+wZcHZTyxl00RWpLdQNAkMyel6JvXd6PhkMjNc6LaM9WY3aP/N
	1bjJsAd2Cg28BnEaeGfj2aakHchzyHOj5HLmjVx51JTtouUUnfcpP3x8ASYVpIBtiGYG1Ai4dt5
	5TTsb3IO6IAMxo7qzoY5lvbvOzZFCKqE8gNpSzTnhisvYkt3jzyKKjgJMeBWd6DoAxjp33b+MEq
	FROtTy6AMvexEv+FmYvOpiEZcq2/daLed+Dgh4ruVkyIaoWrh6Yr2EjYVAQK8Rk8+vPyqGeAuHI
	T5V5mO5SXO6eb0mYwBqy3WWEmv3M+hUwgwTREAIaqYC95mvyqs77Fm8/YUh62QXFQbyo0JAjRUw
	sg3ir3lqeWbc88V9ctlrkmCfZtp5WC3iESDL/700Ak9oSBhW0zqitFgrJKTFoNjogU+TZQ2umIJ
	d5GtV7UhJ1yrA==
X-Google-Smtp-Source: AGHT+IEYVlXRgTNW/aZRF8MyAzZsLqRqo2xGsD6IbRuJjxUf65oqQe9WdTxQKIWiAylfZlXk84ahYg==
X-Received: by 2002:a5d:5d01:0:b0:427:374:d91e with SMTP id ffacd0b85a97d-42f89ec5df5mr10446779f8f.11.1765198886471;
        Mon, 08 Dec 2025 05:01:26 -0800 (PST)
Message-ID: <744ccf37-db6d-4fa7-95ba-36c1d54f493f@suse.com>
Date: Mon, 8 Dec 2025 14:01:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/2] tests: introduce Tests.mk fragment
To: dmukhin@xen.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com, xen-devel@lists.xenproject.org
References: <20251204123712.721443-1-dmukhin@ford.com>
 <20251204123712.721443-3-dmukhin@ford.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251204123712.721443-3-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.12.2025 13:37, dmukhin@xen.org wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Add new make fragment for unit tests with auto-generated test harness
> dependencies.

Why is this (going to be) useful? And what exactly does "auto-generated"
refer to here? Not ...

> --- /dev/null
> +++ b/tools/Tests.mk
> @@ -0,0 +1,34 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +#
> +# Unit test fragment.
> +#
> +# Copyright 2025 Ford Motor Company
> +
> +define list-c-headers
> +$(shell sed -n \
> +    's/^[ \t]*# *include[ \t]*[<"]\([^">]*\)[">].*/\1/p' $(1) 2>/dev/null)
> +endef

... the use of this construct, I suppose? When we talk of auto-generated dependencies,
we normally mean what the compiler can be told to produce via -MMD. If you want such,
why would you introduce (and now generalize) a fragile, custom alternative? (Fragile
because afaict transitively included headers wouldn't be accounted for.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 13:08:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 13:08:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180494.1503661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSayN-0000qs-8Y; Mon, 08 Dec 2025 13:08:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180494.1503661; Mon, 08 Dec 2025 13:08:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSayN-0000ql-5t; Mon, 08 Dec 2025 13:08:15 +0000
Received: by outflank-mailman (input) for mailman id 1180494;
 Mon, 08 Dec 2025 13:08:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSayL-0000qf-Ch
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 13:08:13 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f18787ad-d436-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 14:08:09 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-47775fb6c56so38873615e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 05:08:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbe9070sm25306888f8f.7.2025.12.08.05.08.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 05:08:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f18787ad-d436-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765199289; x=1765804089; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ydTbUhj9gkEBHkiKtyeBSFh+I4XkETXZh+UYOKye5iE=;
        b=Dme8Rw5w0qA0rmO9NZUFH8qbib8tku5f01Bld+aahlskQF9jqSqQIxXymWLf93MPuz
         lNmEveqlR9bvbk3X4n4EQE8467wDUPwu38mZSnDVFkw+vF6CCzWqRhNlV+0y2JKHAQKb
         pDD8Rtd+fj5d/WEZf+2sgKXtDoC6SNiiJIblSRZxXQp3xt3VACtxB/EQCumznhhWS56z
         mr9eI0p0rSvZ36jAVs1WdUS4VOspftUZMX0wZtfBeCwWvws/rqNpV9KGU2giMBtAA63Z
         ASCrhfuXZUHnXCWduhkRQunBRz+xID2gHa6iYqb42ubstUs2oqk6tCRAmjDjoavsPzA/
         etUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765199289; x=1765804089;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ydTbUhj9gkEBHkiKtyeBSFh+I4XkETXZh+UYOKye5iE=;
        b=QjEyA3xmWhwXdxO8lclioskKBM0UTmIoIy1X4c3lam8Gk3wLpUf9HFVWO3v55gpadM
         M7oAgNZfBBQzkDwgCGMvU5vuJ58SnfnxzIZGdZNIkGW9e5lkKtt6A0V34Je9teeSf0h3
         8m6FMm7N3LSwr+8Oa5GXEy+b2UBdtWtjYXIOkxrd9LwK0DsMgcIPONBbQfgnBfSCnAeb
         5qCh5Z3KX0IDsRXWh741S/6jupqgy9Oejf3nGUO2q3vQIb/pN7jnTvzriviPW1ciDnrn
         x2b83AU+KbPC6uBteyXxs+7kUhMuiG45vycFBFYAhrOcaLoeBDPAATc66QNVdFQyenEP
         rWOg==
X-Forwarded-Encrypted: i=1; AJvYcCXmpF/P+ARNBjNwsRWn6xvgQY8ie+LCiOVwzF6gAICGErI+3wHG7/95nalAQyFhK0o4IaUOja88rKI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxOJDDcVVcvuYApE34giN0cYoIgnQ+6/VZauik0bymwsghniLgQ
	j47h7fMuoyYAjXmiDr1cDaLayDhUGTmvV+Qm2p6zTw65WB4Rd6yjBdgH8YrDBYX65Q==
X-Gm-Gg: ASbGncuJi9ZBGHT4VBmR6lYklDiFGLq6cSO5LTZEZ9NyUb0p0/aFvgyqH7VRIJibLUh
	dLjPXwTmRR67/AY5yFuoKred+e7KO7ph2cXIuOe15qdg0bvts8tYA1QxCvdfQbGsWEbNtf2ZFvA
	gq+NTkkr5+mcIuWFTtxUnaKZ+QnVJ+FFDh2O1Ye8I9086EytYTpGQ4Pfe1ARYxYpgkjiI0KAPoP
	84uc8mXVlATX0wbZhmAGhLjJk9BXSGTAHWXvxRFYeq/AOEW2lNVAeF8ZBMOdi1sZZxS3UyERr6s
	SpH1ttGi7ECs5L9UP1245b4JpcG9l8UvW6xBq108OQymjoxfQHkDXy+lYPlbbwxbqF4MHBPeRv1
	LSfRmQX7xT54Zh3Cafj2/BKGBYdbJwpTtyVpVDgIWTCt6sUc24urYqyFMyV3XcxnUbTCwh49/Zy
	xMYMJtdNMAaZQRSLHGC+wKaaBdN3LckVaRMNdQkoDpM+JrT3GQiSIsRb6dtqPFsPGOajg57xDbp
	ww=
X-Google-Smtp-Source: AGHT+IGZlPR69YC3bh4TgFI65UCH3+sXhZCgSxnp6S5oLdxmBpkVVuzBw+BgogFOK3zx6JTY+kCADw==
X-Received: by 2002:a05:6000:2007:b0:429:bca4:6b44 with SMTP id ffacd0b85a97d-42f89f094a4mr8281979f8f.13.1765199288903;
        Mon, 08 Dec 2025 05:08:08 -0800 (PST)
Message-ID: <88ab7d88-9b25-418c-bc5a-fc080c5e78ff@suse.com>
Date: Mon, 8 Dec 2025 14:08:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] domctl: Provide appropriate error code when PIRQs are
 not supported
To: Milan Djokic <milan_djokic@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1764961645.git.milan_djokic@epam.com>
 <b38b7b65630d1f167d1589d21556be1493c180be.1764961645.git.milan_djokic@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b38b7b65630d1f167d1589d21556be1493c180be.1764961645.git.milan_djokic@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2025 21:36, Milan Djokic wrote:
> When PIRQs are not supported (e.g. for arm), XEN_DOMCTL_irq_permission
> command is not handled.
> This results with default (-ENOSYS) error code returned to control domain.
> Update command handling to return -EOPNOTSUPP if control domain
> invokes it by mistake when PIRQs are not supported.

Did you consider simply replacing the bogus ENOSYS by EOPNOTSUPP? (Assuming
the difference in error code really makes a difference to callers.)

> --- a/xen/include/xsm/dummy.h
> +++ b/xen/include/xsm/dummy.h
> @@ -555,14 +555,14 @@ static XSM_INLINE int cf_check xsm_unmap_domain_irq(
>      XSM_ASSERT_ACTION(XSM_HOOK);
>      return xsm_default_action(action, current->domain, d);
>  }
> -
> +#ifdef CONFIG_HAS_PIRQ
>  static XSM_INLINE int cf_check xsm_irq_permission(
>      XSM_DEFAULT_ARG struct domain *d, int pirq, uint8_t allow)
>  {
>      XSM_ASSERT_ACTION(XSM_HOOK);
>      return xsm_default_action(action, current->domain, d);
>  }
> -
> +#endif
>  static XSM_INLINE int cf_check xsm_iomem_permission(
>      XSM_DEFAULT_ARG struct domain *d, uint64_t s, uint64_t e, uint8_t allow)
>  {

Why would you zap blank lines like this (also elsewhere)?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 13:25:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 13:25:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180508.1503673 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbEd-0003i1-L2; Mon, 08 Dec 2025 13:25:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180508.1503673; Mon, 08 Dec 2025 13:25:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbEd-0003hu-Gb; Mon, 08 Dec 2025 13:25:03 +0000
Received: by outflank-mailman (input) for mailman id 1180508;
 Mon, 08 Dec 2025 13:25:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSbEb-0003ho-UA
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 13:25:01 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4b94770f-d439-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 14:24:59 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-477a1c28778so57866405e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 05:24:59 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d331af5sm24798500f8f.31.2025.12.08.05.24.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 05:24:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4b94770f-d439-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765200299; x=1765805099; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=APQT1Py7p0vjZGxyv/qYvaEOc+4TM+qBsT5qNROkohU=;
        b=Kno1bazg8PfVbCuxhsS7948I2FWs/uLyFYLl+G0NqlcINpOJ03p4L37HHHXX5OHZy2
         w31l+L32fnmJpYPj/ABblNx3YitI2evp3FusDpV0eJOBgUCMa2wuu5DVk3YSAQQp/bT5
         x+SLt1PmURHPcTmajm52Mi0hNPCgB91G2VGZsXaHU/B5h42j+aP8oQLQAb39AjKBWXXS
         SgEdBpvNkI25SGEwx81CLlPwugN8AQdOtyP0GxkqG4CJchV6cMSYlj+/QJHTajxdDxQk
         gvJq9VAEZa6QlzpACf1SQ/0d0nxezeYZZF/1cF3dyTbziVTUNJ/Vc58n3wskzSdzIZeY
         XIrw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765200299; x=1765805099;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=APQT1Py7p0vjZGxyv/qYvaEOc+4TM+qBsT5qNROkohU=;
        b=n/hPEx9XPDjDqLwsqgm/oygW5rHNH9ZsN1ykH0G1eFKtam7/TJ7n5Z8rjIzjoj6ZUB
         IAgCJUMcwj+wdeUOUwFTt15TsbsZKevvzNU126MMbeVEqAo6HsNJMqB78c8x29WIm6Iw
         UFjFewIYApXJbgs4ov9zuaGaWrWGrCnzRp7jBbdEg1YlpFY4ob6xiolsWSda/D0oEH5v
         1up1sSFDHR0rzluLzbo4jTW2Jj1RChofQzfwwleUqMiz3Xu/7nQcFay2TLSf5XR5NR8H
         4c13dEDEnbNsFyoK6hNowS9LmLz0TpDjxuA+++mjRu6U6NBsa7GJYeXwCVz9FJeeSf3i
         tFlA==
X-Forwarded-Encrypted: i=1; AJvYcCUfn7o+DlSb+Lv1/m9d6X1pIPVUv/xISHVBNS5wfNsUmsS3TwR6rhiDJTxdtaJiEXY6UrqULNZEaAc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwYsfUeXzLSxu5rqmyyQxoolu5vFNdpsStLkixoHSOZR4O0Mvlv
	OylnZGK8mULcyYVHezWYT40O9AAOUZhOhmTFut+jhgovafSMGx7pzqqRTGO4tiFUSg==
X-Gm-Gg: ASbGnctLeyCJ5hbWkqEcTyIGrNY6q93xjlJJUqxCYgpEZt0CTeeZSE1LEuu5Ix/t5eb
	+hzMZs8l3JonkjjU8AYI6PcfL4m/MRC9bHYw/J7VMc1Og+8Tyo8XQ320W4thczoU5AOyPs8rEPQ
	MGwJ/DTvItuiPkR0J387vWTF7sN7eUDIL9Mmo4rGA78UwyqawnCROyUkLyHsGAkZFpQc/sSmQ0S
	J+KYIvsr8s5GumCmpK3HXRXViYLI3o9kGULxMo/MNlSUMkithXHHsTPygxXMpgYhyYFU7Hgerap
	GUS/vXKZ9LZQ9hKm7DzsOu2oZmI6iLecifE72jUZVlsDS1duQiEDFgLtyfHoHEIHy/jcwNjT1EL
	AInChno0dIZrWTP2+dTNsv3OpMWzY04S14gzZiGDG24L1f1ikktzf8cPeEOhYAQAY4PMPFhAsGL
	boB70fvF90jmnlk39XSLb9EIloJllNRjfSbSzuGk6m5qCWFjzvm3TRh702nUc9f1OxlInpmfMl+
	Zk=
X-Google-Smtp-Source: AGHT+IFfuNw4k15QBhkSzuo+njk+LVgK4lLVMopIsFIoQd0MtS36pbrbhfy5pmWu7wSLHAzXwAz7SA==
X-Received: by 2002:a05:6000:2287:b0:42b:32f5:ad18 with SMTP id ffacd0b85a97d-42f89f0944cmr7219199f8f.9.1765200298332;
        Mon, 08 Dec 2025 05:24:58 -0800 (PST)
Message-ID: <b492bd01-c32d-4cc7-bb6c-4f3555735be5@suse.com>
Date: Mon, 8 Dec 2025 14:24:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/4] domctl: Provide appropriate error code when VM events
 are not supported
To: Milan Djokic <milan_djokic@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1764961645.git.milan_djokic@epam.com>
 <99f899addf349543eaaaa328596dd9bf90004214.1764961645.git.milan_djokic@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <99f899addf349543eaaaa328596dd9bf90004214.1764961645.git.milan_djokic@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2025 21:36, Milan Djokic wrote:
> Return -EOPNOTSUPP when XEN_DOMCTL_set_access_required command is invoked
> while VM events and monitoring support is disabled.

This is more bounded than the pretty wide subject. Taking the subject and
considering there are other VM_EVENT related domctl-s, is this one really
the only one in need of adjustment?

> --- a/xen/common/domctl.c
> +++ b/xen/common/domctl.c
> @@ -787,19 +787,22 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>              copyback = true;
>          break;
>  
> -#ifdef CONFIG_VM_EVENT
>      case XEN_DOMCTL_set_access_required:
> -        if ( unlikely(current->domain == d) ) /* no domain_pause() */
> -            ret = -EPERM;
> +        if ( !IS_ENABLED(CONFIG_VM_EVENT) )
> +            ret = -EOPNOTSUPP;
>          else

If you convert this to

        else if ( unlikely(current->domain == d) ) /* no domain_pause() */

then ...

>          {
> -            domain_pause(d);
> -            arch_p2m_set_access_required(d,
> -                op->u.access_required.access_required);
> -            domain_unpause(d);
> +            if ( unlikely(current->domain == d) ) /* no domain_pause() */
> +                ret = -EPERM;
> +            else
> +            {
> +                domain_pause(d);
> +                arch_p2m_set_access_required(d,
> +                    op->u.access_required.access_required);
> +                domain_unpause(d);
> +            }

... the need for re-indenting disappears, and we get away with less churn.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 13:31:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 13:31:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180518.1503682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbLB-0005RT-96; Mon, 08 Dec 2025 13:31:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180518.1503682; Mon, 08 Dec 2025 13:31:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbLB-0005RM-5u; Mon, 08 Dec 2025 13:31:49 +0000
Received: by outflank-mailman (input) for mailman id 1180518;
 Mon, 08 Dec 2025 13:31:47 +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
 <SRS0=lLQx=6O=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vSbL9-0005RC-CP
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 13:31:47 +0000
Received: from mail-yw1-x112e.google.com (mail-yw1-x112e.google.com
 [2607:f8b0:4864:20::112e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d8bbac6-d43a-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 14:31:46 +0100 (CET)
Received: by mail-yw1-x112e.google.com with SMTP id
 00721157ae682-78c38149f9fso12832687b3.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 05:31:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d8bbac6-d43a-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765200705; x=1765805505; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=gGgLLe5lt4hBAmy3jwNka+0wQ5GxAwPFs4py0qVZpMg=;
        b=M6QyHsoeE9b7gxW2ddqIfgVvv0YQ2O83fdR3UIVsHGCidOG/W0mklfjO/12XeqbGet
         dmarUll+q5t0RC+elHMGyi2GN/7DdKWYplbV/+w/w+l5Z67E+SpToBK/FDcZ3v6XGTBC
         r3QAF9hP6bK++G6YtKWnQNSa6W03hYhm02I2JGwWJAOFhVRPA0Em8j4hkFQ09Bprx3cM
         GgfjuG/6a76cVVR96UiyhbQlt8TZXJwijH/lGUmKm7I4bl3b4h81KlJLVgdyNrmyKmDE
         /DaB0SwLl2OmK4fxSA4dfkTBYkOGBqKgxd7Fo9M/e4NqmN8xh7w0NB5OtV8gNVo+chZw
         nrQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765200705; x=1765805505;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gGgLLe5lt4hBAmy3jwNka+0wQ5GxAwPFs4py0qVZpMg=;
        b=f/BiWIBG0OZtHkiz7hbqA1Wk6tVRM2gEv6Bm2nhDLO/trb8sp7dsEwU4l7vN0h2iw4
         GpdsGo7i4wOguYzeiImEtiNv5ktNZGwF4ef+5n/LPYhhn/nYZc95UMkxfaAVqU9vwtRV
         nRsVnRQNVdwmRCMbGSMcCD0rbzV9xU9YaOeOTISWgugrGDmDWrWeK7PytFd48LQAfJiB
         ln6ks7TPZl6FwyolBUVAAgJFvxictOO1p98mdYvb7tQxExQdEIcYuQCuJUNCjqUOCKOu
         j+7AvpGWdKXNgBVpX/nJSlsCxClv32Bw+GTmnKXeP2miR5n4cIll1erV2cC37aRKKyXK
         czYQ==
X-Forwarded-Encrypted: i=1; AJvYcCU3cg8Ehbc5hGyoL8anvKllswI45z/MAwP0Hs9302YxGR2zWjlJRceIsYbZo/42BmW7rOUueS2/wNI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwSAlwYgRgepbTM0zSofaSNxzMHDOOiIP6qTslwtCbVMLn3kdZC
	Ld4OcqdFbBvw/6OKLNW+Tz5Unbf6KMRnQeZYqya7KjHXso7Zwx+n5T1BbVZmcs6I728ohxeuo9z
	0gR2vQTYoJhiS01O1nIb1MgeGPe+hn5Y=
X-Gm-Gg: ASbGncsOADsC+MoyalP32K6BnO+B/uKELBYyO3SXPyjvq54vuO2vuTH/oy+iPgq0gEH
	OfzBLXsl6KdB4GhRD4GWN/1GKjSDIIBqOmXg9bNPY1R7UysV0tr5YuhL5Z7y7BALxMCtb7PuriN
	G23zEoJv1ElNjyni/eYqPnpd+vo/LrquyFdep5MVUWYhb+SjuMlN23WhPly56P4CdgPRSt9jc/F
	osgcJIWIIdRAJQbYVntRmjdIqQWkBUH2Pw5GM0IYxv4vsXxNy9Bt3hT15aeG7PLvzBVJ8Y=
X-Google-Smtp-Source: AGHT+IG8MVJ1/ETWvvmGQIvQKxMlYN1N4v/NKxnRJ3TPRrUU0VDQFxo3H33LrFUon8fubhxSZZlewmLZns+uIrgnVkk=
X-Received: by 2002:a05:690c:3688:b0:787:e9bc:f9e2 with SMTP id
 00721157ae682-78c33b9282bmr77230427b3.29.1765200704845; Mon, 08 Dec 2025
 05:31:44 -0800 (PST)
MIME-Version: 1.0
References: <20251205160942.46694-1-frediano.ziglio@citrix.com>
 <20251205160942.46694-3-frediano.ziglio@citrix.com> <4fb15575-cbfc-4842-b48b-4113fe658137@suse.com>
In-Reply-To: <4fb15575-cbfc-4842-b48b-4113fe658137@suse.com>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Mon, 8 Dec 2025 13:31:33 +0000
X-Gm-Features: AQt7F2qvU8f2Xsc5iKzO6nJUwRrFQwq68rjVqi6CvvFk6l7VCbLBIAoccYrLeWk
Message-ID: <CAHt6W4e=7nCH=owhGEAjh+tjTo3j0KptW-y9WuDRYTDWsNyWEw@mail.gmail.com>
Subject: Re: [PATCH v9 2/2] xen: Strip xen.efi by default
To: Jan Beulich <jbeulich@suse.com>
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>, Frediano Ziglio <frediano.ziglio@cloud.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Demi Marie Obenour <demiobenour@gmail.com>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	Stewart Hildebrand <stewart.hildebrand@amd.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Mon, 8 Dec 2025 at 08:25, Jan Beulich <jbeulich@suse.com> wrote:
>
> On 05.12.2025 17:09, Frediano Ziglio wrote:
> > From: Frediano Ziglio <frediano.ziglio@cloud.com>
> >
> > For xen.gz file we strip all symbols and have an additional
> > xen-syms.efi file version with all symbols.
> > Make xen.efi more coherent stripping all symbols too.
> > xen-syms.efi can be used for debugging.
> >
> > Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> > ---
> > Changes since v1:
> > - avoid leaving target if some command fails.
> >
> > Changes since v2:
> > - do not convert type but retain PE format;
> > - use xen-syms.efi for new file name, more consistent with ELF.
> >
> > Changes since v3:
> > - update documentation;
> > - do not remove xen.efi.elf;
> > - check endbr instruction before generating final target.
> >
> > Changes since v4:
> > - simplify condition check;
> > - avoid reuse of $@.tmp file.
> >
> > Changes since v5:
> > - avoid creation of temporary file.
> >
> > Changes since v6:
> > - install xen-syms.efi;
> > - always strip xen.efi;
> > - restore EFI_LDFLAGS check during rule execution;
> > - update CHANGELOG.md;
> > - added xen-syms.efi to .gitignore.
> >
> > Changes since v7:
> > - move and improve CHANGELOG.md changes.
> >
> > Changes since v8:
> > - rebase on master;
> > - clean xen-syms.efi file.
>
> I.e. not addressing my prior, more fundamental comments.
>
> Jan

Hi,
  In version 8 you commented that code should not double linking, and
the current version does not double link.
In version 7 you commented that changelog is in the wrong section,
which was addressed.
In version 5 you commented the changelog entry was missing, which was addressed.

What are you referring to?

Regards,
   Frediano


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 13:32:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 13:32:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180522.1503692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbLd-0005pk-Gm; Mon, 08 Dec 2025 13:32:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180522.1503692; Mon, 08 Dec 2025 13:32:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbLd-0005pb-E1; Mon, 08 Dec 2025 13:32:17 +0000
Received: by outflank-mailman (input) for mailman id 1180522;
 Mon, 08 Dec 2025 13:32:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSbLc-0005iU-T7
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 13:32:16 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4ef5bbe7-d43a-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 14:32:15 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4777771ed1aso36816525e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 05:32:15 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479310ca502sm251176985e9.7.2025.12.08.05.32.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 05:32:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4ef5bbe7-d43a-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765200734; x=1765805534; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sjjzRqp8kNsrKWcYj+HM6mx3RmDo4z8EJs0JNu+iAvk=;
        b=VvRqlA9gDHwMv3cXl/rcNTjIr4qW0SPoBVcKQpbQL4x9QtTGrIoFqoL9dCmM5Q9P+T
         7MG2Iyz2IFfke6Xqt31g7IkdASielgmfAcofkW2swZtANPXgpfbXg0s2rHAI4inGUxTX
         wM6ncm+RahW3S77rXXV+Nul65f17KScuYuvN36b3BRQWQWJKGIrUSiwzWMLOK6/Th/wP
         raqaxeLEbwQiOWXT9QJoLw/TDIbM8aYbDmNUuvvEN6PZuTI8x+g86x2ItnNocvu/uvOV
         b+fAgJnxv44qA5oKtbu+4ZNAXVjx/g7hbUqEU0tcOxlSdsVaw0H4SQlTIPgotPw0UGgq
         qtRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765200734; x=1765805534;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sjjzRqp8kNsrKWcYj+HM6mx3RmDo4z8EJs0JNu+iAvk=;
        b=CrQO7U9mAnHDhrGSh3LI49H5YBHcmw8x8LhbL9C3GtweQFykSjzFUSVH80eBz9+iEp
         Q6+wGcRhwYh6GhWZUZeUlL8qV/EaX9f/HtixY4y4yb6lIwJzZrOsb79z/pepCv3+Zb4F
         st3y+PTE3vv5XoUrEvDEktl+h5SWlKLGz/k/1Rh9/9qeb7FcchjzwixqnJm2EqH1nEr4
         V5Wh3OKkAC1UNag8SZi+X2wJ2Oi+LhetCty4gSvv9RhlI9leE7g4PtV5038geBA73izL
         UkDnphojM87DnP/CoVvC4HlQ2f3NGk99wQWU1nmz8c9XzRKh2489+cmfFCxxis4qYd1L
         oB3Q==
X-Forwarded-Encrypted: i=1; AJvYcCXUDff0eEbA3o2vzn3MyFOXGSM9ux8mkviZsDcvrRzeKwCrdQvR4/AO5hKVIJYoXUHwvp+LJncXw18=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy6wtM0z/2DB8iksmWbYl2deBfTF4U1DvhxaiOp254lo7S+aE5N
	AefDTPUl5Q5ztSZd0ZppJcA6JpYDA7CJH1lefHuH8tXqkbb7CzARDYWZcfkrOkr8OQ==
X-Gm-Gg: ASbGncsWRssrafPnaMsyqYQ5MqKkkGJiWHXmsmvEGrTcdb0++dPkwz5Lz386L9xDYaK
	hGcz06pNcVNbJcXArxi0H4uChDYQ1HsxIIhpe5p5U3z0kdv8cRBGoT/Oj4CN9wiPS+DN8Aqe7ru
	WAGgY0lvz02C0kDzGxv8c8ksL9NGeUpNawCRKbHBUlda8pa8qaAYQI77qNbqEbx34356TL2G51N
	IedNohE/Gzk04IAL8PPDi6vm4ir2ZsBMrZklH2W9IrB/U9Y1WIaSPcXpcdJ/QVMJozocFOtrG6Y
	E66zGSWhMzRHzVyEEK9Hwe9i+xwThAcxBa2uYqrUeNi3/BneUlIjicNUIcrQm/T++5tbdoy8JS0
	9ztt3LJnvL2xmDQ/wfXllYw4yyPQeKvoPAgOj6Hon0riLIJ6ukYNVG6Q/5ZzIXMMSz11q39czrJ
	PtVrIxlRIvKiFtto2a3wGzfog+X2WKrTvbXW9NaLu3BZI1vMT5QwElpmSHHG6wcRl1S+k+sdi1C
	Rs=
X-Google-Smtp-Source: AGHT+IGExjfEGhKzbzueB8+lWb3X3whSty/YvulORbnmgUwmjMOK0/fBiyVSb5VeEASD4m4jhuswyg==
X-Received: by 2002:a05:600c:4fd6:b0:479:3876:22a8 with SMTP id 5b1f17b1804b1-47939e1deacmr85222595e9.16.1765200734077;
        Mon, 08 Dec 2025 05:32:14 -0800 (PST)
Message-ID: <ac0b7706-ceb4-49c0-9147-250055b4cf6a@suse.com>
Date: Mon, 8 Dec 2025 14:32:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] sysctl: align handling of unsupported commands
To: Milan Djokic <milan_djokic@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1764961645.git.milan_djokic@epam.com>
 <6c7cc11e3569f69b185d32809d63b8cdca67aa25.1764961645.git.milan_djokic@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <6c7cc11e3569f69b185d32809d63b8cdca67aa25.1764961645.git.milan_djokic@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2025 21:36, Milan Djokic wrote:
> Handling of unsupported sysctl commands currently diverges: some commands
> return -EOPNOTSUPP, while others fall back to generic -ENOSYS.
> 
> Unify the behavior so that unsupported commands consistently return the
> appropriate error code, allowing the control domain to correctly identify
> unsupported operations.
> 
> Using IS_ENABLED() macro to identify disabled commands, allowing
> dead code to be removed at compile time.
> 
> Signed-off-by: Milan Djokic <milan_djokic@epam.com>

Overall quite okay imo, yet there are a number of small issues.

> @@ -170,19 +173,22 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
>          op->u.availheap.avail_bytes <<= PAGE_SHIFT;
>          break;
>  
> -#ifdef CONFIG_PM_STATS
>      case XEN_SYSCTL_get_pmstat:
> -        ret = do_get_pm_info(&op->u.get_pmstat);
> +        if ( !IS_ENABLED(CONFIG_PM_STATS) )
> +            ret = -EOPNOTSUPP;
> +        else
> +            ret = do_get_pm_info(&op->u.get_pmstat);
>          break;
> -#endif
>  
> -#ifdef CONFIG_PM_OP
>      case XEN_SYSCTL_pm_op:
> -        ret = do_pm_op(&op->u.pm_op);
> -        if ( ret == -EAGAIN )
> -            copyback = 1;
> +        if ( !IS_ENABLED(CONFIG_PM_OP) )
> +            ret = -EOPNOTSUPP;
> +        else {

Misplaced figure brace.

> --- a/xen/include/xen/perfc.h
> +++ b/xen/include/xen/perfc.h
> @@ -92,7 +92,6 @@ DECLARE_PER_CPU(perfc_t[NUM_PERFCOUNTERS], perfcounters);
>  #endif
>  
>  struct xen_sysctl_perfc_op;
> -int perfc_control(struct xen_sysctl_perfc_op *pc);
>  
>  extern void cf_check perfc_printall(unsigned char key);
>  extern void cf_check perfc_reset(unsigned char key);
> @@ -114,4 +113,7 @@ extern void cf_check perfc_reset(unsigned char key);
>  
>  #endif /* CONFIG_PERF_COUNTERS */
>  
> +struct xen_sysctl_perfc_op;
> +extern int perfc_control(struct xen_sysctl_perfc_op *pc);

Why would you move the function decl, but duplicate the struct forward decl?

> --- a/xen/include/xen/spinlock.h
> +++ b/xen/include/xen/spinlock.h
> @@ -7,6 +7,7 @@
>  
>  #include <asm/system.h>
>  #include <asm/spinlock.h>
> +#include <public/sysctl.h>

Why would this be needed? It means effectively the whole codebase gains a
dependency on this header even when DEBUG_LOCK_PROFILE=n. Yes, you may
need ...

> @@ -40,8 +41,6 @@ union lock_debug { };
>  
>  #ifdef CONFIG_DEBUG_LOCK_PROFILE
>  
> -#include <public/sysctl.h>
> -
>  /*
>      lock profiling on:
>  
> @@ -164,7 +163,6 @@ void _lock_profile_deregister_struct(int32_t type,
>  #define lock_profile_deregister_struct(type, ptr)                             \
>      _lock_profile_deregister_struct(type, &((ptr)->profile_head))
>  
> -extern int spinlock_profile_control(struct xen_sysctl_lockprof_op *pc);
>  extern void cf_check spinlock_profile_printall(unsigned char key);
>  extern void cf_check spinlock_profile_reset(unsigned char key);
>  
> @@ -360,4 +358,6 @@ static always_inline void nrspin_lock_irq(rspinlock_t *l)
>  #define nrspin_unlock_irqrestore(l, f) _nrspin_unlock_irqrestore(l, f)
>  #define nrspin_unlock_irq(l)           _nrspin_unlock_irq(l)
>  
> +extern int spinlock_profile_control(struct xen_sysctl_lockprof_op *pc);
> +
>  #endif /* __SPINLOCK_H__ */

... a forward decl of struct xen_sysctl_lockprof_op; I don't see what's
wrong with doing just that.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 13:32:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 13:32:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180533.1503701 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbMC-0006MK-P3; Mon, 08 Dec 2025 13:32:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180533.1503701; Mon, 08 Dec 2025 13:32:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbMC-0006MD-MC; Mon, 08 Dec 2025 13:32:52 +0000
Received: by outflank-mailman (input) for mailman id 1180533;
 Mon, 08 Dec 2025 13:32:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lLQx=6O=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vSbMB-0005iU-KB
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 13:32:51 +0000
Received: from mail-yx1-xb12b.google.com (mail-yx1-xb12b.google.com
 [2607:f8b0:4864:20::b12b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 63923ab7-d43a-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 14:32:50 +0100 (CET)
Received: by mail-yx1-xb12b.google.com with SMTP id
 956f58d0204a3-641e4744e59so4237735d50.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 05:32:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 63923ab7-d43a-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765200769; x=1765805569; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=Bs5jS1SXs7VRHG7zUnau2PbwSwbc30wTyLYdoftGvzc=;
        b=SZLPfEUCK/GGATN2QHF/88fw/c9d7//iJAI0Ke58Is3a3ReJJgG41Jri2wtbJALPB8
         gsEz3Hg28tie09JyISHVYP9hLaj7Hh5EY5D6TMsR+fQoNHfGM5Zmt/0tWbXjKMQeJ8/3
         5DF5v+oDwNvCHVh5JFotGJKuJKFWaptTJw86ujAaSFuIGyDJMr/C8JOfjTWeFEiLvBZv
         XL9QyRS65aSoLgqhedw9CfPdkRYfuda6WE+s4NTZ2MLMvBlTG8oU7aontId7OEfqXlft
         kNwP/QDiI2ZkduFsXrefovdr6WY8Qoe/jyM7UDP3zxNCxtYhqJC9UUDQWXf2FuFM0AjU
         MZng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765200769; x=1765805569;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Bs5jS1SXs7VRHG7zUnau2PbwSwbc30wTyLYdoftGvzc=;
        b=a5XoehU5+Odwrakgqs8NzSitmSmPtdE9J1Nr/HhwmI2zK6l+nI2D93+7VB/QVQgxdp
         1ljIbu6It80IuFmgirISsDXjw11w+WrazW7wgrH7Qrm4ja9OwzykB5wlMKal8ZjMIp9y
         rTUd1OuFnT47MhBPxnAFuvNtDQP2vHOhDdUZX/WlO/o4GWJV3zsyHwpePhsKdbudvCTK
         1Nd9HPPyIZg/eW2uZBhQZGGBONk2jfXqD5WPHjo9QEqnhsLTRLnb3EWMSh/k8FJnJSgx
         bJKdjQX8We87dzxH8NLxIFC1cz3xHlRJE3Tk0JwjnnFLbAVsUB5Ihl7kxyiosrY778Bu
         Wamg==
X-Forwarded-Encrypted: i=1; AJvYcCU7IIBdZ17VnZ9f0cEbWjLP/V2aUpYIh8soKNLUces8v9o5Q65jdT1OfYYIEZjJX3qrZhJmIq/VnDY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyCnor98ILLZ0CBmq+H12ItO9tFj9invS7JKEIN6YwKjbl+q572
	cMiRA6dXbisyT0nKNkMtxMm0BlJYLMSJunMuZyICIbeK26FNjKGHpKahX3z351COcB5vupcsqD+
	rR4xJgzSjMTFfa+ok7WSpWWqB9Lk1Ios=
X-Gm-Gg: ASbGnctaz0MdrBGnhB4eDMPbvBSuTlanU8NVzqwIPG1mEmCKZJEUmrWo6KToOHvZfcv
	HgGGIrt5uKFmIYROXQUm+cTUN9jef6XGPwr+P71n3axtQUab872AoStqletNQDmQlyiyDL4hVPd
	hE9PJ20qjpRps5X84X/sveNi77cwRHZ8Qz+vjWOhyIkKdaPRmHJXP1+RK7on+yverDouh1FVvJc
	eS5+inuKwow3QnGhjyC/BBvmgkYyXpkOoIr7GBEqoXYgkPUUNrAsjIWpw59XiaqW9l0mGQ=
X-Google-Smtp-Source: AGHT+IEe0GpAAzIygQP0/bcVw0qXw0KKuiRZzxozS1nfBxWEjutLds5ZpHcPSx9aLMdWW0x6HUwXvskCnFTv6U/MSdc=
X-Received: by 2002:a53:c045:0:10b0:63f:beb2:951b with SMTP id
 956f58d0204a3-6444e7a784amr5058197d50.42.1765200768679; Mon, 08 Dec 2025
 05:32:48 -0800 (PST)
MIME-Version: 1.0
References: <20251205160942.46694-1-frediano.ziglio@citrix.com>
 <20251205160942.46694-2-frediano.ziglio@citrix.com> <3d8f0224-de48-40cc-8341-1cc4aab1b9a4@suse.com>
In-Reply-To: <3d8f0224-de48-40cc-8341-1cc4aab1b9a4@suse.com>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Mon, 8 Dec 2025 13:32:37 +0000
X-Gm-Features: AQt7F2oIB2Xir0g4sGSuVj89j8R4nh51RaWeYpHvZZUsWVy8YT58CcUp0ay3td4
Message-ID: <CAHt6W4egs5JbrcDyFZ8bpbJy=mfeY4nGoru=aOtigfCoSBEooQ@mail.gmail.com>
Subject: Re: [PATCH v9 1/2] Do not attempt to workaround older binutils
To: Jan Beulich <jbeulich@suse.com>
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>, Frediano Ziglio <frediano.ziglio@cloud.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Demi Marie Obenour <demiobenour@gmail.com>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	Stewart Hildebrand <stewart.hildebrand@amd.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Mon, 8 Dec 2025 at 08:24, Jan Beulich <jbeulich@suse.com> wrote:
>
> On 05.12.2025 17:09, Frediano Ziglio wrote:
> > From: Frediano Ziglio <frediano.ziglio@cloud.com>
> >
> > Older binutils versions do not handle correctly PE files.
> > It looks like they could work if they don't produce debug information
> > but they mess the PE file in other way like putting invalid
> > flags in sections.
> > Also different tools will complain about the format (like
> > objdump and strip).
>
> As already alluded to in the reply to Andrew - the above doesn't make
> clear whether these binaries were in fact broken badly enough to be unusable.
> As indicated there, my experience was that they were nevertheless usable. In
> which case I don't think we should take such a measure.
>
> Jan

Hi,
  adding some more comments.

Frediano


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 13:35:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 13:35:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180547.1503712 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbOW-0006zx-8Q; Mon, 08 Dec 2025 13:35:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180547.1503712; Mon, 08 Dec 2025 13:35:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbOW-0006zq-5d; Mon, 08 Dec 2025 13:35:16 +0000
Received: by outflank-mailman (input) for mailman id 1180547;
 Mon, 08 Dec 2025 13:35:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSbOU-0006za-Md
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 13:35:14 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b8e44b07-d43a-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 14:35:12 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4779aa4f928so45867495e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 05:35:12 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479310a6db3sm257438085e9.1.2025.12.08.05.35.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 05:35:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b8e44b07-d43a-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765200912; x=1765805712; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Z/XutU6eGL3fU/XVIZpnl+cDCs39PO028KPT25z5CEk=;
        b=OsCjoKQX1JbPn1O0ZHbnEJ2mXC9pBqBYRwc6mlqTsoboPY55+rgsIu/NaThv/DLPWf
         uMOjyPSHKh4nHae3Xt1EpWeAYXIAkMYQ1jHm4q/WXZF/xOB/62x/3CXMD0GoujTUnH9p
         D4uD2SxFzIkXvNl6pYdBu8/56HELoGn0/RKj3jD8CjFcos9l0+cUvR7JngUVM3jAjsVM
         8NE/yMxkiMI2Rbrc5LfH1FIslIFnrtsDtthScthIbCqSMHbyvNyxWlf62Z3tNsrq6qIe
         S7ZFEZHoAvUNcqozP+YOe5h13GnZEXJ4mjZ2ioRo3ykXV4UIwD0qBUjtG7ntbN0HHeoq
         Y9tg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765200912; x=1765805712;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Z/XutU6eGL3fU/XVIZpnl+cDCs39PO028KPT25z5CEk=;
        b=sh3QXwLOBzCufBJlaEyrpwSKDyABms8kr34d5/EyYY87aHrW3pt3gGh61BtF9vhM93
         XVQE/jYi9ni/b5pr8rPhe/MQ3mBrvtUzfV3ox/PWgQe7xfAZyMLlms6Z8NKDaMydfkCW
         R+FvFwfu6vtj2aiu2B5yI1T03+nFdVYZRlW3t9XIbF7IT228kgpUUdexBL1AgB0XjjPm
         ouWP/+Y2kljwZw2jokxDPoCFvZMkVNNuA9gUL9ZQxs12MyLPf3Hz7fYeZmxbLmhwGKrd
         RJUqI3CxHhtmed08ujR2dOfpxmGpgWHf7b1Fj0s+ekcRWEhXV5U+6IyA1Xn/IO0yimwM
         Mm0g==
X-Forwarded-Encrypted: i=1; AJvYcCVw9jl+qaYGjLOy5ZXenHpwbPxrk0imsQw9w8GzCqKO2Uf2ek7uavxfy0HtijEZDX4eDetcxzyW8PA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxQZ96S4hShl+VDrca7nikYQXl4UtxCChj1kEXPjN/fxVgLHonB
	A7hLRslPNczrZt0VTKa3gsf5ZudXSggJyKFmABlC/wh16okxg2UY4vwgDBxXzB/n1w==
X-Gm-Gg: ASbGncvrbmDCFFj7ddJ1EgNv7RVqaaa4gegIBfG4n/XyJ5zYh2PLQryxZGdm1nZ4lbP
	Ge60fnmbB7kQw4ThzomhPIBeJU8N1CXy4cmmJyDVBSmZJRplg761Jg3bbx708Rb8V33KJIFAY+y
	ykLZfHr9332h9Ea5VhY/yNnud37a+QbuPLnxUDO9FgJD1K3DWh3UKE3P4Qt21nrdfovTFlSwcY3
	s+zHl+2OCRd1sBuH7BLjqDi3gOdMz9zm+R9pHE7imG+PbtpiCdLinZF5JfQ/7lAaEVEUdHoX3QL
	7k8f/YNtdjo3vI1MxtEf/g9yRYA9cZBk0K3M/DKAcD+5QBYlRs0cUFJCZC6Usw3/twNklRA0+DH
	IVcnlAqPL8KHDr7O6ljJafl0qXiFaRN3MNqfVbJ+iuxl+dhTg8QVU3WjvsORFChHXdzFnQeIvEM
	cx1o7Y6VSOlybPJ10IfNGZ0fFKS0ZsPc202zzCZYDAAXiz+PfwBdxjiwTvNfIX+81b05vigZq8f
	aM=
X-Google-Smtp-Source: AGHT+IH7mwJTnrOJKwCnl7b6+HZWFH9HLJ1p0ageBtKU68zt+aGj2Id3AOOz0paXkexZYrsuH8m9mQ==
X-Received: by 2002:a05:600c:6d0:b0:471:13dd:bae7 with SMTP id 5b1f17b1804b1-47939e4910emr52834215e9.30.1765200911913;
        Mon, 08 Dec 2025 05:35:11 -0800 (PST)
Message-ID: <79b05298-1042-4cc7-b5bf-5c3698c4da9e@suse.com>
Date: Mon, 8 Dec 2025 14:35:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/4] Align handling of domctl/sysctl unsupported commands
To: Milan Djokic <milan_djokic@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1764961645.git.milan_djokic@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <cover.1764961645.git.milan_djokic@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2025 21:36, Milan Djokic wrote:
> This patch series provides minor updates to the domctl and sysctl handling
> of unsupported commands. Currently the behavior diverges: some commands
> return -EOPNOTSUPP, while others fall back to the generic -ENOSYS.  
> This series aligns the behavior so that unsupported commands consistently
> return the appropriate error code, allowing the control domain to correctly
> identify unsupported operations.

What, even after having looked at all the patches (and their descriptions),
still isn't clear to me is why the distinction ENOSYS vs EOPNOTSUPP would
matter. Tool stacks still need to be prepared to get back ENOSYS, at the
very least as long as they mean to run on older hypervisors as well. And
with Penny's work to allow excluding domctl/sysctl altogether, I expect
ENOSYS would then also be what results if that option is made use of.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 13:38:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 13:38:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180562.1503722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbRY-0007uP-KM; Mon, 08 Dec 2025 13:38:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180562.1503722; Mon, 08 Dec 2025 13:38:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbRY-0007uI-HR; Mon, 08 Dec 2025 13:38:24 +0000
Received: by outflank-mailman (input) for mailman id 1180562;
 Mon, 08 Dec 2025 13:38:23 +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 <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSbRX-0007t3-Ef
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 13:38:23 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2a09a0f7-d43b-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 14:38:22 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4777771ed1aso36874245e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 05:38:22 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a2e8fc130sm53476355e9.20.2025.12.08.05.38.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 05:38:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2a09a0f7-d43b-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765201102; x=1765805902; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=23k958jc9ZmNK3dWsyoxG4gDAttOYQvSF84lxr0SY/E=;
        b=ZJbzuKFWCsDHwu6D0cnEzA5GExUdoLkpHMTevAd3XG3UJ0Ej1+KnyG1zk1fDiDl8mb
         BzAFwCOVMIqqaYyixpJZ/X+fk4Dji90bG+XK5i4Rt0i3RdmBMr8QhB2CRi7YDGAfNHiK
         hPRNlJxpyHC9YOPpuwmlskCV99eCGxPPwlqzc8q/MCYtaSndAfa+UkQQ/7H6nvM9DzGm
         nV7w3YDxZ2qe+JI7I2vOGb+wCw/0/DIvRkJW/1L1Qwsg6xmtF2XQgUj2wOH7I+uYHsPs
         wqLzO/XLnsoDasIgXYbLkesijAxmo8Hv22QN/i2ohJtNGczGqNqi9vjK9gL3CHroPzEI
         gawg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765201102; x=1765805902;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=23k958jc9ZmNK3dWsyoxG4gDAttOYQvSF84lxr0SY/E=;
        b=DVwo+SWIkg4Q1AXj7w1MaQFUQGSDX3Icz8zYyuwPlIO5+wVkjWyPfBdTOeaS9NIVZP
         IvRXHabCE/k7twWUABVCKKZU4U9uw+HdERFcMgtkuB6NWCbZAwgKFK0qtwdDFFlymsyc
         aEEfgBW6PUGNZe4xhxwOx5KBvuxaHKf2f7mPo0pheDS+CPsIviNDaSlKMuzDVDqfoCf9
         KY9BIzTTAjyRSu0LhjcEh5nPwqs+gFwf4O4iYORl6HoG+jr8hpaBFU/B1RwtyJEB1LLf
         Od0RIZ9wS5gVHnZNLokKQTZLAV1gAAnOOWOglnvqAPCp7EbP7vmATYJScbykaldOnT45
         3uKw==
X-Forwarded-Encrypted: i=1; AJvYcCVflIc25spNdvTF0BB8BiC5XPTbK/m+Gsw63VOZTp+bDZMrqYQRgAJ7ariDotdu9QNLbdUUpti4mhs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz5Eh3tq7XLrPOJ9ehLFyVGvwPabe6Ip3sTMYQfP+t3al8+YhRM
	e1jVz/0af8ijCtx+6Faq3vteaGibBokHeqP+TvhN1DLHD4YLoyjS83HFrtZs9dK/Tg==
X-Gm-Gg: ASbGncuN9z+1owWPG0gJ/9UOEHYq6PclDKqr09vLzC92HD3Dv2wb2/NCotgWzOzmrAj
	WNZoAx3JNR/j6f4hLQ7xpqsUzFbH/NpQJaRA71zNnswsLEBtu+AvtLrHBWcuBtzJT9FpLkY2Mms
	XGsLRxgXQxFp03ZpDIW2QgEYIjVYEffrXbDGwWMJo6WnAeXkF6jG260qeNvPVxODwT/X57CA5QF
	NRT0bfxG5V7WY17X7Ro9ZztkGpIJacq7vXFkWGaWHaav8bxjugCDjUukW9y0uc80qVuU4ShxXTV
	l0+2iY0D7o6R8tiJO2mfjEk/SX2O27a1Hh1mO+CA5tY5vhbsbv8VUYZDXQ4M7XFUzKDkXxspVyK
	iXtcnOZEH3rEZNQWpWmHnH/NYDU/Qd7ee82sus3xQdgjuPjt8fd9kRkInwmSSXvmxji9ck6w9We
	e4ZJ6w+qaCooiDbNfPjmqGdyDpgJfAhULacIluf9YzG6ln39WacIrrma4E16pDNOC5DBU4ywNv5
	xg=
X-Google-Smtp-Source: AGHT+IGCtP0ycMr/p4pndlsoKZ4RDH5vgRzYyppqaIvZALWFc/aN3QIFecS1oXnXE1L20wGSs3RG5A==
X-Received: by 2002:a05:600c:3b13:b0:477:9c73:2680 with SMTP id 5b1f17b1804b1-47939e275dcmr76833185e9.23.1765201101591;
        Mon, 08 Dec 2025 05:38:21 -0800 (PST)
Message-ID: <15416ebe-9bff-4930-bb23-166070fa8598@suse.com>
Date: Mon, 8 Dec 2025 14:38:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 2/2] xen: Strip xen.efi by default
To: Frediano Ziglio <freddy77@gmail.com>
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <20251205160942.46694-1-frediano.ziglio@citrix.com>
 <20251205160942.46694-3-frediano.ziglio@citrix.com>
 <4fb15575-cbfc-4842-b48b-4113fe658137@suse.com>
 <CAHt6W4e=7nCH=owhGEAjh+tjTo3j0KptW-y9WuDRYTDWsNyWEw@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAHt6W4e=7nCH=owhGEAjh+tjTo3j0KptW-y9WuDRYTDWsNyWEw@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.12.2025 14:31, Frediano Ziglio wrote:
> On Mon, 8 Dec 2025 at 08:25, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 05.12.2025 17:09, Frediano Ziglio wrote:
>>> From: Frediano Ziglio <frediano.ziglio@cloud.com>
>>>
>>> For xen.gz file we strip all symbols and have an additional
>>> xen-syms.efi file version with all symbols.
>>> Make xen.efi more coherent stripping all symbols too.
>>> xen-syms.efi can be used for debugging.
>>>
>>> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
>>> ---
>>> Changes since v1:
>>> - avoid leaving target if some command fails.
>>>
>>> Changes since v2:
>>> - do not convert type but retain PE format;
>>> - use xen-syms.efi for new file name, more consistent with ELF.
>>>
>>> Changes since v3:
>>> - update documentation;
>>> - do not remove xen.efi.elf;
>>> - check endbr instruction before generating final target.
>>>
>>> Changes since v4:
>>> - simplify condition check;
>>> - avoid reuse of $@.tmp file.
>>>
>>> Changes since v5:
>>> - avoid creation of temporary file.
>>>
>>> Changes since v6:
>>> - install xen-syms.efi;
>>> - always strip xen.efi;
>>> - restore EFI_LDFLAGS check during rule execution;
>>> - update CHANGELOG.md;
>>> - added xen-syms.efi to .gitignore.
>>>
>>> Changes since v7:
>>> - move and improve CHANGELOG.md changes.
>>>
>>> Changes since v8:
>>> - rebase on master;
>>> - clean xen-syms.efi file.
>>
>> I.e. not addressing my prior, more fundamental comments.
> 
>   In version 8 you commented that code should not double linking, and
> the current version does not double link.

That was the reply directly to you. There was also a reply to Marek's comments,
as to extending the probing of the toolchain that we do to figure out how well
the PE/COFF linking actually works.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 13:39:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 13:39:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180569.1503732 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbT1-0008S1-Ve; Mon, 08 Dec 2025 13:39:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180569.1503732; Mon, 08 Dec 2025 13:39:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbT1-0008Ru-SP; Mon, 08 Dec 2025 13:39:55 +0000
Received: by outflank-mailman (input) for mailman id 1180569;
 Mon, 08 Dec 2025 13:39:53 +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
 <SRS0=9FtP=6O=citrix.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1vSbSz-0008Rh-Ml
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 13:39:53 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5f715a72-d43b-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 14:39:52 +0100 (CET)
Received: from LV9PR03MB8368.namprd03.prod.outlook.com (2603:10b6:408:364::10)
 by CH2PR03MB5208.namprd03.prod.outlook.com (2603:10b6:610:9f::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 13:39:50 +0000
Received: from LV9PR03MB8368.namprd03.prod.outlook.com
 ([fe80::d8cc:b839:3d79:59d3]) by LV9PR03MB8368.namprd03.prod.outlook.com
 ([fe80::d8cc:b839:3d79:59d3%3]) with mapi id 15.20.9388.013; Mon, 8 Dec 2025
 13:39:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5f715a72-d43b-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bF3Ffuf/HwxaktSG62fk2SPTJ3vnFCzxmeAkYnD4tmBScocMSQeaK958iCHYuSf/snaScZJyW2BjOGr2y/3qZe7zx0evyaLj0Y9KpphSZCw1X935cpF4zQwLw6RxMCNKePCTQSrFCa7n+sQFgm1z4zhpeTZf22BtQIlewPXZo4VrjR4IxWXMMVWQnPb2l+MsawJWPDtI3dggFecsN7TQT3yuqAUVBekLYGaznU/3nCXbxV9dOb/88kdEDAZ7Giqy3Ou7oSZ1Hsam3O8f4SpzGztYK/IahhVXPU1bfpANegss3W6NDKuRiriYizIKZhljr7uUmiYeB2rrnGsZPfnJvg==
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=6oTnBdf2t1yXKdkM0fMb/nXv2hiefRQDdpwrpdKISA8=;
 b=R3KOIdIgzsMWfD3hk9MgwSBuxoCqjrqCndUJHE/aRe1DzO/Oxmj4fVtcpr/H374bHLZYcD+QMb86hLTUTTk0lX48z0U9rdJQFgdj8B0gORuCeP7e3TsVhv0B10xmgUzHRwhU5XZcOT67e0x0SNDykAbSTXRfHoj+5a8ZWZn1ti9DNgh98KsIpvG2Ur4/OLrs3s1TX35EldHTssIPX/zywdsbe7NYAQBH3Uc/MoOGTBBna3d3+mDiaG25W2bSABBJyD7C9ud8ulFl8gf/fG1eTMZ9EiN69Wuh9pnIHRdL4a1C3aUuHKQmEd59FBTNVZNENpDljJFuoGrkmRqXRx7Gog==
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=6oTnBdf2t1yXKdkM0fMb/nXv2hiefRQDdpwrpdKISA8=;
 b=wtyKsla8yLtT0mp8PfdiGb0gEIdBCFbx6Z4cxiZ+ynWMjkPg+A3VW4/1XtbdsVzYksZmMDN/zyIG7qxeI4orxftRYQUUFZN8MMpVS52YgxDikYoZBFYbzKsZhiHQKPk7MdPnc5vCjTIBlNUO2NNA6w4KnfkzP+6tjgObc59T46s=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Frediano Ziglio <frediano.ziglio@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Frediano Ziglio <freddy77@gmail.com>,
	Demi Marie Obenour <demiobenour@gmail.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v10 0/2] xen: Strip xen.efi by default
Date: Mon,  8 Dec 2025 13:39:41 +0000
Message-ID: <20251208133945.61375-1-frediano.ziglio@citrix.com>
X-Mailer: git-send-email 2.51.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0245.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a7::16) To LV9PR03MB8368.namprd03.prod.outlook.com
 (2603:10b6:408:364::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: LV9PR03MB8368:EE_|CH2PR03MB5208:EE_
X-MS-Office365-Filtering-Correlation-Id: edd4ead8-e9e9-4a3c-58fc-08de365f4282
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?+buwL2Zabm3Bnw03eu41yoo0q/tAlGdcwOvdMcATlBNu2DMrkcbrBv0ZWYS/?=
 =?us-ascii?Q?aqUJD1f83pX9dzcMbJAX3UAbl5yMv6NNvFZxbRUpXmfMafF2/WRTW9bzcpnC?=
 =?us-ascii?Q?V7ACj9+r4qGgM1xdA34IE44fmZBJyvNnufwS3U5oltvxdrJsPtgTiruAhDFm?=
 =?us-ascii?Q?PoOqpyyeDTkBmnJQWp6CRucjH2V7jYQHD248+IIOFZQu0US+876b7KUGWRc2?=
 =?us-ascii?Q?1dMNHs0fMtWdV1UEevd6RgYT2E5qJtYV+EFt40CDfFhS2VA9TJnGeW1cBnBT?=
 =?us-ascii?Q?PQu4OHck6m7TH27cL4C3shhbCDo1Gh4Yd847pFZemrKDG3MgbJfyqvaWAZUS?=
 =?us-ascii?Q?LTT03eD2qWyiHaIdLeJxEaAp2As/rGDKyQ3LngfGcuvW2uH2dHx4QbP5N0QX?=
 =?us-ascii?Q?JbQzJ3BR818+NIIGms7n1wFmeirJouK7kpL79YFCiFHbATwK7h2eDCr2JYEf?=
 =?us-ascii?Q?IsrzRzly3R4Vk/SpX9ZmSB8XFwWrWcMCiYioM8W+QJWcInSCfGP/QjoeB3NR?=
 =?us-ascii?Q?9HMJSijJ6477JHsP+z4qXKDpMTNWED+tJhq9bBgqgLdLhNgvWYse3QVn0lou?=
 =?us-ascii?Q?MuwFlzHiwBBEXcE/HB6tlpsNUAQsnMXKv3rtaIjGjAGYrSMYiS4GEEnabQOk?=
 =?us-ascii?Q?ZJEXoMgkeE/5Al4qniXBsHgBS2hYFXjLw0oYDLFyr983s21dbHdVz3wco+8u?=
 =?us-ascii?Q?8rhdHyqUI7PjpAqv2rwliDiuB/CujoLAa4ZPK3UsOCFXN7W9RJsUWie+w+33?=
 =?us-ascii?Q?6Bw/6XRwVeOIMIg7gU/pnxw/SmV/6ObK453iit+JYYHAkRh3bjzrtgh7naCv?=
 =?us-ascii?Q?ct1JcEtLKLRmIx/UFsm8DbdcrjrHgmBRMzT+nrIXRahmYPJDkRW2Ae0lgVoz?=
 =?us-ascii?Q?/LBxV8r1BTWvUYbRltpRLlI3E+O2snLVMpQuccVsq497AgsGr+QGu7+cJK9v?=
 =?us-ascii?Q?cQmtkmoQ27ApbMBIVzV/g/xvm+ItvFsQVS+n1n/7d37lcLgwi1H1zAjS6pwt?=
 =?us-ascii?Q?UUYnECBZWz9N/DAGwBaF3B85Aksek1AYnwql61L5JUDGCLuAHWEtWywhol67?=
 =?us-ascii?Q?O5DKXT/T23rLpnM2zVs9tsE0Rwln7qteOcEeTUvFcOha7b6S84dkl6x0htiY?=
 =?us-ascii?Q?ldK9qduwlSZnEnj2ADfp81/a32MLVqcKuGFjV8ec6T66QITOXyBoqXBPaf9S?=
 =?us-ascii?Q?N4GltI05jrEeGicpfPPu23iPlbOnZPFmVgAN15Qbrec51VGHubtwn6G1PHqb?=
 =?us-ascii?Q?F7mdci0/DQYpxq2AOG4kULE+Xm51GOlxvOyyimxG9E+sNMfSrSYxuzls7MR0?=
 =?us-ascii?Q?d8vVHWf7qjvT+le8vCCXecseoxDAYrZlgorWIygcSHxjTRVWQc4UzzNLbvl+?=
 =?us-ascii?Q?feSv4Ply8aAH+C4fqa/nKhWJHbeAeQQlZkNax69ky63T+JuOV6gnRzEcbHYC?=
 =?us-ascii?Q?y4QtEuol1pa2dELPrmOi/WIpqI0OyRiF?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV9PR03MB8368.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Gs8vplnRL1Bb3CxJi34+zPEOcluYdotB9ENWU8VMmrIJ6H+oHFsZAUgOuCQL?=
 =?us-ascii?Q?2B2DnaxHIlNsievzcCB5AzSX/l1s57+98kljEyBOdjxvOwAonhPbDh8L19St?=
 =?us-ascii?Q?Rf5E4lhWC9pGmmiD6tQJUdrc88+C0RTHXhY3hmp0squu9OvEJI/Qq15i/MM3?=
 =?us-ascii?Q?JTFPzz89JerSfNuFG26m1W+h1HHtog+K2vNG9H22OkFiz1HYGCpdfq0lL83Q?=
 =?us-ascii?Q?TsaEh4/iyuccoUj2qS8jFVXfixTwGu2qLPxlpg4630ky2wjZh2+X5eraOpCF?=
 =?us-ascii?Q?pLdpyRCJC2F+/1XpmgV+6bV8waNmezE+gtKHtLUY/RMXzfDBKZ71TDrgCk4E?=
 =?us-ascii?Q?ZHhr4HVHRyx9p7dqiHLW+axHiL2XhrVPThiD9W2bM8nRdQlPiAX+qZnjsshp?=
 =?us-ascii?Q?n5/sqvodt5TD6HuIY9m7ZA1iNh9NhQdZwg9vTJ4UNBQEF6AsFgqmJMKc8Kv2?=
 =?us-ascii?Q?s9cNi3zN7Lrm5xZTtKlnNZ7OytjZgQi1LCwYdLuxiQCh0EwP3sRPz1C7nXxz?=
 =?us-ascii?Q?PyluvVYVukVEbg1agmXZ0/Cb+PfiGWMkGTR3KZSs1VHsKsYAIgC0OrDZDKru?=
 =?us-ascii?Q?aVAES1I7oo3PNE51GCQXzvwCsbMKmmJWQZwir4QNuyjI24Y9e5TgMs60HrW+?=
 =?us-ascii?Q?jJSbzJuf5s6/ptgvkQsQdClV8awUxQUiHDvw6IRuS8M5H1pgq6h/rVJuENRP?=
 =?us-ascii?Q?zA6jFXZtUthjCVVFb3Ak4/PzxMR0Esk+dJkg1pJSzxEhPAjycOi3loNG95WW?=
 =?us-ascii?Q?efp8HlH3yayfygm2gtOJ3ZFtEQt2QgcJFjYHaWm+KmSN6x0xFb07kBBSwOn+?=
 =?us-ascii?Q?VHEbDaHQv3CevIwS1jkJy4fXiXVwzQt0xGWHMiWv/v4ILIurGFVt0+jdArCC?=
 =?us-ascii?Q?vFfdrOVbgRr7IoigTVfM0eWcT5LT17ZKfHC044N49wZ36LK9jl+sxmkYTMAy?=
 =?us-ascii?Q?SCIac1mrI32wpOlUbubh7x7yms0JfEsdIX0tPnNAg82sqfnPfW0kabHzbRxy?=
 =?us-ascii?Q?6SsPGY7VH8TTR4ROMv5aOVWcuV/dGiGIp6KUzVlyVkL2oNqKuW4EXgO4fGkd?=
 =?us-ascii?Q?zYSgb+N7IXkzXGJDCDzWhQg7Q8eLPDKaCZRZNWP0vSIn39iw3vozPpAx51KI?=
 =?us-ascii?Q?w9G1ldO8Nhp3481pWo2yCFcXxooEKmG8wuD8y4v7srjaiBhrzXlyCHQXXIIL?=
 =?us-ascii?Q?mNPD4IQ/0lGk07KtTQGAHrEYwdefUNbutQ8MMrw29GQ59rKAr+GjpV+3dVE+?=
 =?us-ascii?Q?nFijR1noMLDi3PXu1H8JZqm0enmI4xjdJg+oo9cb6Pq99Z9Z+MLVnD/1voaM?=
 =?us-ascii?Q?XT8TUCNc0fKXrT3Xhwb/9Fltd7aruHEjpsnT5ABiJxrKp5thhgJl7XaKQ5os?=
 =?us-ascii?Q?/S8nM+Ae4p4dSIr+K1UINCXRfgRQJYadzHoY/kY4CHI3cCkTomYt/3BUHtW0?=
 =?us-ascii?Q?tOd7IeMpuAJk/q9WldV6+f+mxN3JcGA5uj9fOEw/AACQLU8c6bKuvYrPOk0P?=
 =?us-ascii?Q?pT5XrkY/UNV8l6lMS76BEfQUtAEcKTapYJo2xgolXASiUXzz1xM7ZcT27JAG?=
 =?us-ascii?Q?K38jw8tto/9L93MJsh3NnO/UzFm7ZDC9jatc7MjMYLZLI3to5FPq7Wz9WZ0s?=
 =?us-ascii?Q?Lg=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: edd4ead8-e9e9-4a3c-58fc-08de365f4282
X-MS-Exchange-CrossTenant-AuthSource: LV9PR03MB8368.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 13:39:50.0233
 (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: go8n6Nnfs9RikIn8dacFl3IsqO9/35CL/3mrDNzjJqA+U0Tq2b4oqRj5sKlV1r0yQlOA57NLm+tGUUjQPkwCjxu9FQwnL0sZmQwd/wm8MuE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5208

From: Frediano Ziglio <frediano.ziglio@cloud.com>

The main purpose of this series is to strip xen.efi file.

First patch disable the build of the file on systems having broken toolstack.
Second patch strip the wanted file.

See changes on specific patches.

Frediano Ziglio (2):
  Do not attempt to workaround older binutils
  xen: Strip xen.efi by default

 .gitignore            |  1 +
 CHANGELOG.md          |  4 ++++
 docs/misc/efi.pandoc  |  8 +-------
 xen/Kconfig.debug     |  9 ++-------
 xen/Makefile          | 25 +++----------------------
 xen/arch/x86/Makefile | 12 +++++++++---
 xen/arch/x86/arch.mk  |  7 -------
 7 files changed, 20 insertions(+), 46 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 13:39:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 13:39:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180570.1503742 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbT4-0000FR-86; Mon, 08 Dec 2025 13:39:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180570.1503742; Mon, 08 Dec 2025 13:39:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbT4-0000FK-3o; Mon, 08 Dec 2025 13:39:58 +0000
Received: by outflank-mailman (input) for mailman id 1180570;
 Mon, 08 Dec 2025 13:39:57 +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
 <SRS0=9FtP=6O=citrix.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1vSbT3-0008Rh-Ey
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 13:39:57 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 61bbd835-d43b-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 14:39:56 +0100 (CET)
Received: from LV9PR03MB8368.namprd03.prod.outlook.com (2603:10b6:408:364::10)
 by CH1PR03MB8167.namprd03.prod.outlook.com (2603:10b6:610:2b0::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 13:39:52 +0000
Received: from LV9PR03MB8368.namprd03.prod.outlook.com
 ([fe80::d8cc:b839:3d79:59d3]) by LV9PR03MB8368.namprd03.prod.outlook.com
 ([fe80::d8cc:b839:3d79:59d3%3]) with mapi id 15.20.9388.013; Mon, 8 Dec 2025
 13:39:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61bbd835-d43b-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dornyFdXjOYGhhjI4NvVTIBemT3VWirMl+S8HYbnJpcEXVlSpc3Pctpg1Nn6I58xxl4Pf5CVruzZuJzPJX+o3r3VYVyKclMi5XMnrh5VbruJkcQT58B1BKSgD5xd7UILBMNgV+gsuKl62M3UuotwVv8Gl6s3N8ViKUHGT/GZGKoaBHL3tcJzyKpnvG1EKAlSZTp0YX+haBzwZR9nPV4n81brHeFAvjD60NbRPRLEt1I2JqciNgpd1ket4YijyeEPI1YWG1cFBl3SzpoBFuskywncdMbuAfhZT9SHjcRTnNPR0RMOCKHe4zJTFyRuzQNzYGAKj/zkrebKulVebByhiQ==
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=au0EvkHErkBhFyp+np2g5Y4yKiCVAKiLNFKJGeXlVe8=;
 b=WmInhflzYmBaB/mDlpYd5UY76ceF/FFgcrCIh7DzzJmDim3ZKNEFZ8R6Y9icAM9b6JIWf9l7XAQL1IzbIrIvAyBUQ4rO3RJSeRxU7V4HpCEoCE61I+TuD+XI7tyU0Ua5CI1a83b8EIKcHlPj09aea1wTnVTlZVW9SoP48Xl/QkApxyWAHL2wn8krdAG6vw7sOOc2/aiBQkJpujyLfDtlwjZ4Pqg5krJBBs5pPDPIwLsHS4esPnEbB5jc85GpKHsfFEtWEcUa9PyMHn3R09D0QgAuY/F7eJWYSW48VznKo4QXeO2ka+lURRu1NnjiGR+wGmzpFI0IXjhY1dsPGoZh4A==
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=au0EvkHErkBhFyp+np2g5Y4yKiCVAKiLNFKJGeXlVe8=;
 b=oGAEriD56k+xmbdPw7D4cOpsXq/232Rt9okC3yY/2Cp9R0ey0JxgIzMVkXuK4jjcpdpzcym+Z5pdBm6DO4UD7bF83kKjfGcc8mtNeK9xOu0yYuuwgrgpB8nlaLtX95smJqt/HY6o02EU9PTBcJrF4eACpJwZr9UwKg6R7zSet+g=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Frediano Ziglio <frediano.ziglio@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Frediano Ziglio <freddy77@gmail.com>,
	Demi Marie Obenour <demiobenour@gmail.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v10 1/2] Do not attempt to workaround older binutils
Date: Mon,  8 Dec 2025 13:39:42 +0000
Message-ID: <20251208133945.61375-2-frediano.ziglio@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20251208133945.61375-1-frediano.ziglio@citrix.com>
References: <20251208133945.61375-1-frediano.ziglio@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0240.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a7::11) To LV9PR03MB8368.namprd03.prod.outlook.com
 (2603:10b6:408:364::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: LV9PR03MB8368:EE_|CH1PR03MB8167:EE_
X-MS-Office365-Filtering-Correlation-Id: 13b4b36f-d86a-418a-bc35-08de365f4424
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?9Ldjiw7DO3vNZN2IhPxpz4BrawpcP+H2mVQrSqIA8yEhCBykW2IteSLUABST?=
 =?us-ascii?Q?lRKlUmIdhOFHSCeK9zStK21KTyMWE5GMRulmx2EMKBgHbOOaQP3wfiIOCMKB?=
 =?us-ascii?Q?/PoGPnS7sqkkSaXcFO3hkhXZzK4SYOFmsUYzyRMoq8ImEsZCd9tt/FCAts9E?=
 =?us-ascii?Q?+sORa18xtH32w27KYnn3CuoW9n4GVnkM+pcsN66tV7mOt8vdD7BjcZEE/Fnb?=
 =?us-ascii?Q?OKnjbsrQOBhL4mmPNyPhXmMjshtHgwUmJO5RSp8WgE3faBcKnCMcatU6TpYt?=
 =?us-ascii?Q?KMn7ohasXHfeKRUyWC1AX7sR3mMwlDf5zdHxuj3wYsXUUgo4p6V02vf+eKJz?=
 =?us-ascii?Q?WfZOUuYhFxDEYLixyJXYhGBLfXgoTi6GpnLTGRegdMClFM8pVDmEiH9L2dAb?=
 =?us-ascii?Q?yN+3XoNXrTPbAjgX4vgNCOQoNF++STcaleWDGJckBkIgBKkyvykvglVjIxh+?=
 =?us-ascii?Q?K6i7iG8pw6269ODSQxrG284s6J9t0rNdmJThiiLYBmTIdT8TndnYVHDkzk5m?=
 =?us-ascii?Q?Ofh3/00VkLg1ygbYwxBEkLCnXUyyekU4/hd3RP1go1NUXoA37qrj3sGv6LK+?=
 =?us-ascii?Q?mFRYIk0RA4ssPw2YyH6peKJeJYq6hhVI33Raz8JZWet50XS0uXum7Z8rWgON?=
 =?us-ascii?Q?ebP1ynzGaWOd/JmC7XBFd3hb2tDM/C8OK8VlzfcqWj3VKyIM5SkblxkelJWl?=
 =?us-ascii?Q?eVH74peOBBwDiZ1iAblRw+zkb7ms5jfXhNf2a0/tKFyYoYMHVfG9tZEHjaQT?=
 =?us-ascii?Q?atJxl2XHZU/eyxAZsDgxuQyHeNbctKp3bPsjb0U4RPYk/+hJD/LcFlUyX7/8?=
 =?us-ascii?Q?mYOYF58SsV6JUvAwUFa4Zb7Os7F+iqdv5gLSbvR9edGJjfnLsDXgeMgQbK7r?=
 =?us-ascii?Q?uMURGni2U+vvKqJUiLgFJY5DSH4Q1SEB5v7i/vzPMKiPly4FG8rOltiYqumf?=
 =?us-ascii?Q?/2HYaOyMXE3wL8KZS+1z7yL+A/i7U/xdlYOGZlU/JEyUQ4G/i+7BtfQ6ptNi?=
 =?us-ascii?Q?o+wl6ZnvIHDA3ZL437H3Osdhvd2Md5GDnSxxNnfAX7z3gnqcnGeBh9j+/995?=
 =?us-ascii?Q?4YdyovgO++2XYwExBaNDPD2vuDlzQbDqNlNdcPYiNcoQ3Hct1KNRNukDpZ7m?=
 =?us-ascii?Q?nxU98lFLfmnise/0nqh+A1QKuvxlOn6hG+fZMrKkZSNIwqJq+wQNaFWbOznz?=
 =?us-ascii?Q?dieOfhVsnrPnHDVDlqAru3s83PKvaRIHjKF6zXaJse8vG3GP4no/S+fJ4jKb?=
 =?us-ascii?Q?GImFiUL37lsrzrSKP73ZSvI3ujGdJ6TwJFnJMplnoqZb+Bg7V3INB2KbdY7J?=
 =?us-ascii?Q?7Cpw7BWaDuLKWahfErZJOZewpRlrmQXrxhb8WsAPgv0viB75gGrChL8svbbH?=
 =?us-ascii?Q?unoIJXv53kXzd6ZJyx+86S8o3c2m3mUDHZDeWnuMN9Qv2WNK96KX57Z7Y3gp?=
 =?us-ascii?Q?85Ab9DLHubr17iWHrZgFGpkk3jD2l5ow?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV9PR03MB8368.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?fO0ewK2ZhoqirFArUA/3ZEdx3uifn93cfvXNZZyWDCpVEfM4O7i1mRsQ05/V?=
 =?us-ascii?Q?MeUG95ZcXBiH3Pkn8tn4iESRDNpaUz3qfF61IgbUaLtEf8JxqX6dj3gbEJVD?=
 =?us-ascii?Q?wE0V90jG8M24Nlc2tZvKypUbgOdJpODybt9lu8t692IXHRHK2OxX5c7ySxiR?=
 =?us-ascii?Q?FxhSgGHiLk9ZXtVn1C381d4lDqrkJKsj23gBI8j/3m7dFg+q0RwxIzF9zkSL?=
 =?us-ascii?Q?YdnEdOuON42DfUCI7JQ+F6qD1zSA6G7kFCrl6WgdaBGjI2peqQayeYl+ftb6?=
 =?us-ascii?Q?txt1Fi4Wo5Vn9pGeR1Gk1iAF4ri6XRzlsj1cx/HgKyIRJ4aFI1+GOOHCB1RZ?=
 =?us-ascii?Q?BbL89bUuLFHYg4hpDQGsePTOGm3mG2PQVDlJ9Sb4yrMXwr/w/5y4FS32mjG6?=
 =?us-ascii?Q?0H5Ze2JLCG60M/WWjV8dv4NTpdlorDXqfY1rC+M0v9Syh8uPLTAcWCqxpYMj?=
 =?us-ascii?Q?Vfa1GbzmcAZWDoiK02d+0QLAcvtfggQPhPfOc6bNQuVnb/UgjWEZ7ZUnE14F?=
 =?us-ascii?Q?CNwhkoAhI7bDtYydkjpslLjJ2MTyjZpriV1iZnwLIgFvKCDPutfTtIBeB7KK?=
 =?us-ascii?Q?EEnxLIOEb9cvzpvi4YAOafGedJ8bME9ZF8vVYsxGqLq9XT83UVilgnRaR2tT?=
 =?us-ascii?Q?Wq9l2cnNGSFS1ZADo8IKvcb/uNpT79FS29mdAGoVw7NTZ3afehH+2xXO1tKt?=
 =?us-ascii?Q?pj9AgsWd3yCwuqhMx7+hHt5aooklSfD8WWyLHKnw31gLwGFW7MwsU3UCCyks?=
 =?us-ascii?Q?81RdPyG8oqcv9hXWHPpSXmxAG0tdqj948FtslQELDWQwKwZAZBNiLv3my2cg?=
 =?us-ascii?Q?HKJat26mi+j7Av1OJQFA2zqPFVnbr3MqFTPo9GJX80Z7PoC6xpmW11Y2Vbof?=
 =?us-ascii?Q?tHYRs6qD5MmiCUEs66vpiU1Z+yzxOmTTW9Jlk6tQP0Vb2JrTYfwjzDVBU89q?=
 =?us-ascii?Q?4VaXm0Vy1Buju0WOD/DS/CgQSTedT6uhLS6x7q485Scr7Mtc/F2WUs038bLE?=
 =?us-ascii?Q?tm9M7B8dAUTsFXKlmmd2+7S2wgZBu91152GUDPj6S8BDuYvaHyfAIx50+X31?=
 =?us-ascii?Q?iXUX5qkIjGhrmzaJEDgZ7CNJb1apN4aZL2a16HKmnd43lxpLjyiO3pQrWvNc?=
 =?us-ascii?Q?aCUjT7rXOXNDfmJFLJ9INmhUNpTQzTqL1RsAjf87E1t1jtsl2VgHYsnL7jCQ?=
 =?us-ascii?Q?pEBM3oBIVKiC8jYPXkTzAln2XxBmD9Wi4DbS2EzFAsxidtBEOqsThrLGHxJV?=
 =?us-ascii?Q?WDEiI7ttQzysD0oN+ajvvM4/YnxFZ/kft7V6Lvab5xYYVCdvLr2uHCWsHdN7?=
 =?us-ascii?Q?vZJkDKvrjLPekWLPetvTOZ7/MyDj7iQuJq87LxIP1DBSv5+BfKgSLFka2Wy+?=
 =?us-ascii?Q?EUsWZEPqx2HxVVmodPpHQlSw3qFFh4kT+l9saUiIHKvWO3vhJDGVOtVTVzim?=
 =?us-ascii?Q?2bv3/xznDUdOvFIrNSKrZ2B32Y/0wLRBlCxGnO3RfNKzhBUxx+5sLdn4R8kV?=
 =?us-ascii?Q?F622T0SywKE9MeaiJ0kDOHRSVcvB6AT1PQt9bHRR9br94Ko4Y8pVLYp1e9I/?=
 =?us-ascii?Q?MokKzaiXXIAw3l/XHihWzhVl72+ayR5OP1+qKqgBPwPmS6ORdCEkh2FpbNh8?=
 =?us-ascii?Q?kw=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 13b4b36f-d86a-418a-bc35-08de365f4424
X-MS-Exchange-CrossTenant-AuthSource: LV9PR03MB8368.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 13:39:52.7977
 (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: 0kc/NoZ4sgXujANvk1pL9aBbwMVfBC54Ek1SOCKoU2/pbqiw8bCXFGkfodRtoH5jLXgnv2gy5/iUtQLfB2YlAHcN21NbpgKUFkqFryOaQ8o=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PR03MB8167

From: Frediano Ziglio <frediano.ziglio@cloud.com>

Older binutils versions do not handle correctly PE files.
It looks like they could work if they don't produce debug information
but they mess the PE file in other way like putting invalid
flags in sections.
For instance they set IMAGE_SCN_LNK_NRELOC_OVFL flag which should be
set only if the number of relocations are more than 64K and not on
executable (while xen.efi is an executable).
Although some UEFI implementation do not check for these minor flags
we should not allow building not working artifacts.
Also different tools will complain about the format (like
objdump and strip).

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Changes since v9:
- explain one of the broken flags.
---
 xen/arch/x86/arch.mk | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 16368a498b..10eb8e4292 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -88,13 +88,6 @@ EFI_LDFLAGS := $(patsubst -m%,-mi386pep,$(LDFLAGS)) --subsystem=10 --enable-long
 LD_PE_check_cmd = $(call ld-option,$(EFI_LDFLAGS) --image-base=0x100000000 -o $(efi-check).efi $(efi-check).o)
 XEN_BUILD_PE := $(LD_PE_check_cmd)
 
-# If the above failed, it may be merely because of the linker not dealing well
-# with debug info. Try again with stripping it.
-ifeq ($(CONFIG_DEBUG_INFO)-$(XEN_BUILD_PE),y-n)
-EFI_LDFLAGS += --strip-debug
-XEN_BUILD_PE := $(LD_PE_check_cmd)
-endif
-
 ifeq ($(XEN_BUILD_PE),y)
 
 # Check if the linker produces fixups in PE by default
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 13:40:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 13:40:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180571.1503752 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbT6-0000Vd-Kt; Mon, 08 Dec 2025 13:40:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180571.1503752; Mon, 08 Dec 2025 13:40:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbT6-0000VP-HO; Mon, 08 Dec 2025 13:40:00 +0000
Received: by outflank-mailman (input) for mailman id 1180571;
 Mon, 08 Dec 2025 13:39:58 +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
 <SRS0=9FtP=6O=citrix.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1vSbT4-0008Rh-O4
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 13:39:58 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 62b415d1-d43b-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 14:39:58 +0100 (CET)
Received: from LV9PR03MB8368.namprd03.prod.outlook.com (2603:10b6:408:364::10)
 by MN2PR03MB5008.namprd03.prod.outlook.com (2603:10b6:208:1ac::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 13:39:56 +0000
Received: from LV9PR03MB8368.namprd03.prod.outlook.com
 ([fe80::d8cc:b839:3d79:59d3]) by LV9PR03MB8368.namprd03.prod.outlook.com
 ([fe80::d8cc:b839:3d79:59d3%3]) with mapi id 15.20.9388.013; Mon, 8 Dec 2025
 13:39:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 62b415d1-d43b-11f0-9d1b-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=I3ge4m+Lns3VQ4MDrxBIc0vYajZOKTjkoqEm33IF6eBD0wzTxAZoJKSqGghNKhUyQGlp/xjHeRKFolCoRl2xzb7Lo2kyts/56owpKcy4vfKabS+vxNZ25UiyX4+3P4I/Dtn8/sHUOaLtbaxbuD/nLTNegw+ga8idYQqvs7R0CC8Mm5qjfjQo1t4ITedPpy4KswMEuNcE71qHOmY5w3X0C/XvaFVcBXNdE4aF1OTx1KU+bwhE4Y2RFQHzcl8Nx09GuPLlJfJFGtMWAmbvH1tx9HQ5EI2zn/U5uJUYgvQyUDVZ+Rp3YqMtXIS0MDuBn9En5l7qRrL30DV30x9tNx1yfg==
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=Hwt0ODOK0ft0XIgWnKDYFNLWivP2iS3A8knl7sO9MQw=;
 b=JdrEQlbawObQ9wOJ73ju/zFF6vj9zOjQiMtGPjKV9Xm7dUDDG49LJ1p3xfw4BBb6/leZ/RNki2TRNGZ8QUtJuJV2IoWH3K2vjAv2zAK8jcAokcgxVhPcDrtGGrtCo8C+AXX30QicGDWj+3xNMPE1mldITZKLaQQgzAweVAsk6WuD02VIdgK6NSTQH5OJzk9VRQ7s3U6m/lOhsqUxQUdsWiAWlphvrZC52Q4oETPMwq0Q9ij5LmofMyXIM07sSLBCyvH7Lhr/2u5XIJtAGaJX0+LQ9NE9iTrgeAKG+wiA6WvE5QmpTmcAS2RvOqffhe1vpCtVyHVbzTP9lvKCAWAwLQ==
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=Hwt0ODOK0ft0XIgWnKDYFNLWivP2iS3A8knl7sO9MQw=;
 b=qdCLENhbmFZsiR/lKwO0PGqQFRO2NxsVOuJYt5XMOvYZOeARPRcVwHmKndU5Xe8N9Dh2Y4iTSR1Lb3ZhwBDcFt9tlsIVqrDenKomnfC16PU7Jjn/4bfLaY0sGho7OlocUBx/YgXeZLO1V6WzReooijT8jZrlir11CKbrsag1JCs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Frediano Ziglio <frediano.ziglio@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Frediano Ziglio <freddy77@gmail.com>,
	Demi Marie Obenour <demiobenour@gmail.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v10 2/2] xen: Strip xen.efi by default
Date: Mon,  8 Dec 2025 13:39:43 +0000
Message-ID: <20251208133945.61375-3-frediano.ziglio@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20251208133945.61375-1-frediano.ziglio@citrix.com>
References: <20251208133945.61375-1-frediano.ziglio@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P265CA0164.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:312::13) To LV9PR03MB8368.namprd03.prod.outlook.com
 (2603:10b6:408:364::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: LV9PR03MB8368:EE_|MN2PR03MB5008:EE_
X-MS-Office365-Filtering-Correlation-Id: 49a36237-4e96-4758-9df3-08de365f4619
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?iVUouOUB64wSpSEsxZayN9BPrnL9P8w6AQaVv/iLqdTA63PHe77MeAugk9xI?=
 =?us-ascii?Q?ztKIyyU0k7M2SVJk8E/78O+7w5O9FqFpJcAMFhp5SRUE519lZaXURryOeuOD?=
 =?us-ascii?Q?xtCWCjF9r2lupttle4+LGcKRuvQp+r0TfQ54hndKyatFG+wbzbzlj7vuucHo?=
 =?us-ascii?Q?clTsrBeLiN/VcHKUzReU4MaNPsOuxRVWNFvxSWAOBfbmmpvRWdlSJnRppTa+?=
 =?us-ascii?Q?nmBSuqXrNtyWnJmOoc5M+Qyx286pP/YYP9/DLAXJB0BV2Q9bE+EyMmgjoTVZ?=
 =?us-ascii?Q?wX4NhTooIVG6iB2scokxEeXZWJyypuGH2jw+pBHu+LK/rw0xjVLknSuMn8eJ?=
 =?us-ascii?Q?GA3V+Uh/gAFhUQezJVgP31AXiuWhboGw5IHdbdIOIpsdwVLNnvkMxQMkDP9B?=
 =?us-ascii?Q?vKpY9ecz6c0vG/drneMx2mX7xyb4uyDw7Z6YS1x7YR38bZSs2VPwJFBupeNJ?=
 =?us-ascii?Q?P8A3KR8UCcFLabIoNKWHCygfhO6wpPtB48FGfmU+d63ffipaaoe7QExIdekU?=
 =?us-ascii?Q?LJqrGDxe9v+W/9mJB78Kk/YgsjqximyCgrxSlJGvuJ/Sk58NVlnkN1Wfzvuc?=
 =?us-ascii?Q?8V+F5zw2XzRTt76w5b+zRkllqoMqyGEX4a/s05IuyNnp5l9cr29QCzYW451C?=
 =?us-ascii?Q?lnnFGbuuoT2iEJPXYDfW7VTKpqBPMkq3FEihQXfadeCFEmHGCADVGxKH5s6W?=
 =?us-ascii?Q?TY1W9ZjBGqBE99khJHTADeMMARMCTujc95eQ3QRL9O6WYyxqnJToU+cwP5bh?=
 =?us-ascii?Q?CLawZN+AFoOmIpc4SeE7XPQEFwj4wKw8o5WFAgPn6br2Yqe6O5sY1OikOBvw?=
 =?us-ascii?Q?wuitECUJTIvUrRmUdLx4dkYoxgSTMIqXyOVy5IWDS3fsYm/iq5bKzCIvLPwC?=
 =?us-ascii?Q?VtEW0R/Q94K/RpD95RrKQOhbrUCFzchc6YvJGQrVuu7+ahhqpiakaC07JPDW?=
 =?us-ascii?Q?J3lMYVMMBPyuZtnOrw98suDGHaa31SuTDE1Yo9tPKt7zCGe0KCROkV1jVEny?=
 =?us-ascii?Q?uA9UIn0DtE5gPK/oo7xDUFd496r9m4716BM0xdJQt7ppGGsZKvXpTJfM/vQR?=
 =?us-ascii?Q?NMYJjQlIT1Z+YqaXFvpQ7KrBFbIeZWq7ItXt1KxqB3LNePdJR0X5FLYV6+Uc?=
 =?us-ascii?Q?7+CckR4afhDQIRz6xC/L1GoTI6Yu8wELIZE8Euecoiiu8Ukkb6kXTGG0xzwF?=
 =?us-ascii?Q?+pXqxkqqTI0QeoHi/+UNJVHMWdp9yEisX5UoYm2YYNPkS5ANHtAk1EqPueu4?=
 =?us-ascii?Q?whu//ewkdRiTG4xoJBc7Kv3c8e2fvfgemOLI9zRUHlNNMXVjGqMIewNIUCIB?=
 =?us-ascii?Q?yPOo9RP86uW5MMeHCQtA05ADso1yQEYhvUJ6uYB2mECeX+Clq5xfUI6mMEKV?=
 =?us-ascii?Q?A8GfPetY4x+R6edqhpWDFUFtqxFFeHZ7px3EW22XhqiLXPKy4A=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV9PR03MB8368.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?MthyO5P9ir06sShUU2PcNL9qVj4ztlTk9oDUyUz3p6fTq+32FBItftGh0BR1?=
 =?us-ascii?Q?koj9LLYhox5z/yRojJ6DjPe46LkR5zpeuazQ7QAzVeH429HDZT9poJQZyZAq?=
 =?us-ascii?Q?Jo0dDBMYeoMzlC+6OVmIDBDQis6HpNtp5eOcSma8m6Ml50DDhgZj1LZD4Cep?=
 =?us-ascii?Q?+mclrUs0IR2eXV2ek4y/cyzo2PQJt8G16UnFn6PiXmt0vWzfUc5e+T77lLBR?=
 =?us-ascii?Q?O/m/QYnrLH7u2Z1QXDOsxaaZMiCd2JfD6Z+5rtFgO1xDKV4hLl1biFP2BQ4F?=
 =?us-ascii?Q?w6pseQ8gFew9+m0hjeesHlsWfjF6q8KMC4Mp3W0hskifFE11kX852NnNn4kS?=
 =?us-ascii?Q?x3OqaBYLxDWRBLXDgX6pz+wRbOo2Y3A/6/mUAyLmtMbkCVewVkPwqfFhO5Tc?=
 =?us-ascii?Q?FFwj2ZcJAOONmYEpg5esmhn8Xc+NzVh7IMJfkbX/cQyOI7E2wHuNJ17ed00K?=
 =?us-ascii?Q?s3resDe9w3XxMj4IyhsjbakV4i5tl1bOI1U0gE7RegTniMtsFfNsQlpFGXyz?=
 =?us-ascii?Q?5tYR39VTb/WhYYDYYxNeWH+ku3IKwSxjjEDDqj/oObjbwno7wa7j0i/nSneL?=
 =?us-ascii?Q?gL+jjkivZAHCG9pjYMg/jDSnzvHFbjcgb8sr9sa4uoYDuSXM/Y+xQ9cjQ3zo?=
 =?us-ascii?Q?5UzDAvFCEqnvEXnBm5VGiNwaXslvpApsqo4p2KN2coF940zZNwdEg4QShASA?=
 =?us-ascii?Q?zbaxYNMDjtwY2nFI6Kk4jTpQ+v2mQk2H1axL0jki8CyHwXxPCtjFjzjF8Nv6?=
 =?us-ascii?Q?SzaNXGpBHwHJXtmUpDq0LJ9JAcZ5mCaEqSNXsJmsGfIgXD6VL/Q8gonJluEc?=
 =?us-ascii?Q?Jvq6gvthkfjz+hXBj9LaPpa2kb4v9IfRxs9SnAelG7QaPL9VaYiCfQfFRrdZ?=
 =?us-ascii?Q?QUGWztoUwcaR3goavo/cxWs9TzZSViynip3xtTAxPLTP8V8M0UhIcY5x+zbj?=
 =?us-ascii?Q?U9hG2bbjuaJiCOK3TVJBxR5VD46h8NA/C/s+3K7ne+ujvfXt4FCngna2K+AK?=
 =?us-ascii?Q?ISIuNf062c8orby1Tz0LjGEaqRaVsQAfzqB7gbdvr4Z6+3JuZ9GpuTFkMxf7?=
 =?us-ascii?Q?dVH0iPxfSirG/4e8aaHbywnxbf/stcpgeAMvfmmKKEw7eNo9f0jyeDV23O1Q?=
 =?us-ascii?Q?ey5hotVcK3nDfZLGRNllk1JiSQZxzlNBLzcwbidJi1cvXDaTnsJgVnP2UKVW?=
 =?us-ascii?Q?H7Yp6REMRdfAVRfLUVlCeV7dNZ1E29eBe2RqlCRrbHmt1gHy7YlL2r1SpY23?=
 =?us-ascii?Q?jNqqXqqPWiPVx2FE2C8y8Wd+g93pNC2AQwB/KhyIbS9aTaRT5/fUAs3CfMU1?=
 =?us-ascii?Q?SqwhJjoqi2i8S+UnIXhT2jySZx/8tqJ60suILkQffCMVQ40Wn4FtqTpKb+Nj?=
 =?us-ascii?Q?TGOvi6HtDP/vJzhP3tjKd50ugG6dIwIWTDV+/Gl/kw6i7m6cJuNu7iKGlxMr?=
 =?us-ascii?Q?laISMqcz3TRVN/ckya+Ifbo9rd1X1tuw3Y7bNDoRFdIXEElZBpFwINPnUfDT?=
 =?us-ascii?Q?R2n+Br7JHt/QJbCN0nuujA5SvQLTXdtDxG9lCg2Hr7O4ksbeRZziH+FPA8QD?=
 =?us-ascii?Q?0BDW/QK70htnvumZP1IPsQaxbB3LYpVa5/eWgaeIUuBL8pPG7qyVqHLrTswp?=
 =?us-ascii?Q?Lg=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 49a36237-4e96-4758-9df3-08de365f4619
X-MS-Exchange-CrossTenant-AuthSource: LV9PR03MB8368.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 13:39:55.9739
 (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: YNJwHRWVmu+eux/qz1Xnk4ebtAdSqeHh1sWDSNeZ+i7o2WU0PfEQasz9ZdeMeHT7LjhB5UELWDecnvGALcpQ+UlaFr+DxRXFDClSR1aHaRs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5008

From: Frediano Ziglio <frediano.ziglio@cloud.com>

For xen.gz file we strip all symbols and have an additional
xen-syms.efi file version with all symbols.
Make xen.efi more coherent stripping all symbols too.
xen-syms.efi can be used for debugging.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes since v1:
- avoid leaving target if some command fails.

Changes since v2:
- do not convert type but retain PE format;
- use xen-syms.efi for new file name, more consistent with ELF.

Changes since v3:
- update documentation;
- do not remove xen.efi.elf;
- check endbr instruction before generating final target.

Changes since v4:
- simplify condition check;
- avoid reuse of $@.tmp file.

Changes since v5:
- avoid creation of temporary file.

Changes since v6:
- install xen-syms.efi;
- always strip xen.efi;
- restore EFI_LDFLAGS check during rule execution;
- update CHANGELOG.md;
- added xen-syms.efi to .gitignore.

Changes since v7:
- move and improve CHANGELOG.md changes.

Changes since v8:
- rebase on master;
- clean xen-syms.efi file.

Changes since v9:
- Move changelog change to 4.22.
---
 .gitignore            |  1 +
 CHANGELOG.md          |  4 ++++
 docs/misc/efi.pandoc  |  8 +-------
 xen/Kconfig.debug     |  9 ++-------
 xen/Makefile          | 25 +++----------------------
 xen/arch/x86/Makefile | 12 +++++++++---
 6 files changed, 20 insertions(+), 39 deletions(-)

diff --git a/.gitignore b/.gitignore
index 57d54f676f..f282192b3e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -223,6 +223,7 @@ tools/flask/policy/xenpolicy-*
 xen/xen
 xen/suppression-list.txt
 xen/xen-syms
+xen/xen-syms.efi
 xen/xen-syms.map
 xen/xen.*
 
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3aaf598623..d15988fe1f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 ## [4.22.0 UNRELEASED](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=staging) - TBD
 
 ### Changed
+ - On x86:
+   - The install-time environment variable INSTALL_EFI_STRIP no longer exists.
+     xen.efi is always stripped, while the symbols remain available in
+     xen-syms.efi.
 
 ### Added
 
diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
index 11c1ac3346..c66b18a66b 100644
--- a/docs/misc/efi.pandoc
+++ b/docs/misc/efi.pandoc
@@ -20,13 +20,7 @@ Xen to load the configuration file even if multiboot modules are found.
 Once built, `make install-xen` will place the resulting binary directly into
 the EFI boot partition, provided `EFI_VENDOR` is set in the environment (and
 `EFI_MOUNTPOINT` is overridden as needed, should the default of `/boot/efi` not
-match your system). When built with debug info, the binary can be quite large.
-Setting `INSTALL_EFI_STRIP=1` in the environment will cause it to be stripped
-of debug info in the process of installing. `INSTALL_EFI_STRIP` can also be set
-to any combination of options suitable to pass to `strip`, in case the default
-ones don't do. The xen.efi binary will also be installed in `/usr/lib64/efi/`,
-unless `EFI_DIR` is set in the environment to override this default. This
-binary will not be stripped in the process.
+match your system).
 
 The binary itself will require a configuration file (names with the `.efi`
 extension of the binary's name replaced by `.cfg`, and - until an existing
diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index d900d926c5..1a8e0c6ec3 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -147,12 +147,7 @@ config DEBUG_INFO
 	  Say Y here if you want to build Xen with debug information. This
 	  information is needed e.g. for doing crash dump analysis of the
 	  hypervisor via the "crash" tool.
-	  Saying Y will increase the size of the xen-syms and xen.efi
-	  binaries. In case the space on the EFI boot partition is rather
-	  limited, you may want to install a stripped variant of xen.efi in
-	  the EFI boot partition (look for "INSTALL_EFI_STRIP" in
-	  docs/misc/efi.pandoc for more information - when not using
-	  "make install-xen" for installing xen.efi, stripping needs to be
-	  done outside the Xen build environment).
+	  Saying Y will increase the size of the xen-syms, xen-syms.efi and
+	  xen.efi.elf binaries.
 
 endmenu
diff --git a/xen/Makefile b/xen/Makefile
index e6cf287425..c2f1f84aae 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -491,22 +491,6 @@ endif
 .PHONY: _build
 _build: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 
-# Strip
-#
-# INSTALL_EFI_STRIP, if defined, will cause xen.efi to be stripped before it
-# is installed. If INSTALL_EFI_STRIP is '1', then the default option(s) below
-# will be used. Otherwise, INSTALL_EFI_STRIP value will be used as the
-# option(s) to the strip command.
-ifdef INSTALL_EFI_STRIP
-
-ifeq ($(INSTALL_EFI_STRIP),1)
-efi-strip-opt := --strip-debug --keep-file-symbols
-else
-efi-strip-opt := $(INSTALL_EFI_STRIP)
-endif
-
-endif
-
 .PHONY: _install
 _install: D=$(DESTDIR)
 _install: T=$(notdir $(TARGET))
@@ -524,18 +508,15 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 	if [ -r $(TARGET).efi -a -n '$(EFI_DIR)' ]; then \
 		[ -d $(D)$(EFI_DIR) ] || $(INSTALL_DIR) $(D)$(EFI_DIR); \
 		$(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_DIR)/$(T)-$(XEN_FULLVERSION).efi; \
-		for x in map elf; do \
-			if [ -e $(TARGET).efi.$$x ]; then \
-				$(INSTALL_DATA) $(TARGET).efi.$$x $(D)$(DEBUG_DIR)/$(T)-$(XEN_FULLVERSION).efi.$$x; \
+		for x in .efi.map .efi.elf -syms.efi; do \
+			if [ -e $(TARGET)$$x ]; then \
+				$(INSTALL_DATA) $(TARGET)$$x $(D)$(DEBUG_DIR)/$(T)-$(XEN_FULLVERSION)$$x; \
 			fi; \
 		done; \
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION).efi; \
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi; \
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T).efi; \
 		if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; then \
-			$(if $(efi-strip-opt), \
-			     $(STRIP) $(efi-strip-opt) -p -o $(TARGET).efi.stripped $(TARGET).efi && \
-			     $(INSTALL_DATA) $(TARGET).efi.stripped $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi ||) \
 			$(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \
 		elif [ "$(D)" = "$(patsubst $(shell cd $(XEN_ROOT) && pwd)/%,%,$(D))" ]; then \
 			echo 'EFI installation only partially done (EFI_VENDOR not set)' >&2; \
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 300cc67407..ee787068f8 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -232,12 +232,17 @@ endif
 	$(MAKE) $(build)=$(@D) .$(@F).2r.o .$(@F).2s.o
 	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
 	      $(dot-target).2r.o $(dot-target).2s.o $(orphan-handling-y) \
-	      $(note_file_option) -o $@
-	$(NM) -pa --format=sysv $@ \
+	      $(note_file_option) -o $(TARGET)-syms.efi
+	$(NM) -pa --format=sysv $(TARGET)-syms.efi \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map
 ifeq ($(CONFIG_DEBUG_INFO),y)
-	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
+	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) \
+		-O elf64-x86-64 $(TARGET)-syms.efi $@.elf
+endif
+	$(STRIP) $(TARGET)-syms.efi -o $@
+ifneq ($(CONFIG_DEBUG_INFO),y)
+	rm -f $(TARGET)-syms.efi
 endif
 	rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
 ifeq ($(CONFIG_XEN_IBT),y)
@@ -281,6 +286,7 @@ $(obj)/xen.lds $(obj)/efi.lds: $(src)/xen.lds.S FORCE
 clean-files := \
     include/asm/asm-macros.* \
     $(objtree)/.xen-syms.[0-9]* \
+    $(objtree)/xen-syms.efi \
     $(objtree)/.xen.elf32 \
     $(objtree)/.xen.efi.[0-9]* \
     efi/*.efi
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 13:48:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 13:48:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180605.1503761 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbbb-00030C-Fz; Mon, 08 Dec 2025 13:48:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180605.1503761; Mon, 08 Dec 2025 13:48:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbbb-000305-Cv; Mon, 08 Dec 2025 13:48:47 +0000
Received: by outflank-mailman (input) for mailman id 1180605;
 Mon, 08 Dec 2025 13:48:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lLQx=6O=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vSbbZ-0002zz-Kp
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 13:48:45 +0000
Received: from mail-yw1-x1136.google.com (mail-yw1-x1136.google.com
 [2607:f8b0:4864:20::1136])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9be8e685-d43c-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 14:48:43 +0100 (CET)
Received: by mail-yw1-x1136.google.com with SMTP id
 00721157ae682-78c4d112cd8so8909307b3.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 05:48:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9be8e685-d43c-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765201722; x=1765806522; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=Y4IRqgUE0hYGjyq/BNmNALrWR/diAhfUkpgLiI2YmPA=;
        b=hBv7GHXZ+582TH3OPBdrpboJbArJtxsorSWRj9E+LYaD+MgStSa8BBl1GQbQKHYZO4
         aylDpykDiTnsHs8j+FTiDCqEt153wLXF2eqhIpOeAvNFl+8nCp09DBWCJStl2JCWNxty
         HYUXmfvTZqt5ZYRmuBEBzOgqb6/Dvdyz+vYfKcXRF2XRoNL6e6iCH2SSAEA3b8zrprOO
         eyQH8PMCvEv/mFzq/+fGyCc4ZACcsGpRncoYD2OJ9XTiVvJldEoijTt8JR/BeOg9p8Ix
         jEdhHeAN7wL/ZwB3RmBmcoGCkxkxlSzrQAQhVG8+Ae6m3wf9z+YHqrOiaVCHljussKWW
         siqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765201722; x=1765806522;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Y4IRqgUE0hYGjyq/BNmNALrWR/diAhfUkpgLiI2YmPA=;
        b=lVcK/zUtVQ50RpSZpibIVxfC1iNyV78b24cOKbXubUKq+EJ0goK4aAn8qeNVVboZIQ
         eYLEEF9zBhLtfizPgbid7dHhO/JojG0Lrkjz0ORW5XtzGbAu/kUFaJ/S53iDOkpwdTUC
         jbvJoLDB0VwvNdgooYjaWzlLta4BH8xiaV2TEOZghldv4/1IUiuWerI+6Ns1HU89vii/
         HUarzWNchMiF+zLzpr60NXHeE+qf+6TwxzQcS2cGPc8EzMqptpHV5jvfNihWt76tS+Dg
         dGkKELQ2Vmf0oLtAd9ZJpCWYpML5d5RXG9ebQ6wzvqdJeqHqbTS2AoKpO3RTyf5+YiEr
         YafA==
X-Forwarded-Encrypted: i=1; AJvYcCX4wgDtUyRetoEb12oB39L+dtlCk26Ygqk+acgoSukdVJpNLXgg1NSUjlbYA1xMYijLz61e50JRKYI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwMXflB27rehOoZsFfqOeGuxeVbcg9Dd9EbUYCwnKsbsdvNxtza
	YG1M1a1kBbn5IDvcesOadbdt0U6nIRNrnJN6VaL/66yQpCtES7f7XLbgNTbPRWLrtUUOUkJIsyH
	lK16qo5E4hAzBK5PAueDMwLquiehFQ1o=
X-Gm-Gg: ASbGncuhZxlK53MkIz/d4oek32/s4t4RvnjJlUlITNJVmAburLAvQ/hRseyq5Npu4U1
	WfG99gaUCtvufew7+j6frwdEp5xBTkk1ul9pXLcZ8WV1fC4HFneOkOvVEuRSy4fSijUano5c+yl
	ZdOpdHR07joJdCEPqgXM0Q4nzKFDW3DutdKKVdSohJ7CBnl3fJKhETX4d60zxUeN6EzAMgsPDMv
	uZKnE2dl8zZ4PBDnkLDWCBOontAZCvzddzKck0WKEzk4aqqVuvZQQrgD7fdbhJytHM50XpkGnGk
	FeFxYw==
X-Google-Smtp-Source: AGHT+IFybKBPyX7SKsuLKXq5LIs8/ub0af9rwdGywJorXNc9R8YTPPP/WcbxQlsMntaUP/jD9ApDcQvwgnJNkUJS2Lg=
X-Received: by 2002:a05:690c:338c:b0:78a:77ca:b2b7 with SMTP id
 00721157ae682-78c33b5062dmr134836027b3.18.1765201722166; Mon, 08 Dec 2025
 05:48:42 -0800 (PST)
MIME-Version: 1.0
References: <20251205160942.46694-1-frediano.ziglio@citrix.com>
 <20251205160942.46694-3-frediano.ziglio@citrix.com> <4fb15575-cbfc-4842-b48b-4113fe658137@suse.com>
 <CAHt6W4e=7nCH=owhGEAjh+tjTo3j0KptW-y9WuDRYTDWsNyWEw@mail.gmail.com> <15416ebe-9bff-4930-bb23-166070fa8598@suse.com>
In-Reply-To: <15416ebe-9bff-4930-bb23-166070fa8598@suse.com>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Mon, 8 Dec 2025 13:48:30 +0000
X-Gm-Features: AQt7F2rAny4hjBUzb8zEppnqAy3KHYWfu1x1LcgdhYkR1Xe_ALgvYPw5-yA6tiY
Message-ID: <CAHt6W4efr3V_hXKZkH6asjz2wiJfKK0XkRU+JLEW+aE5QgMXew@mail.gmail.com>
Subject: Re: [PATCH v9 2/2] xen: Strip xen.efi by default
To: Jan Beulich <jbeulich@suse.com>
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>, Frediano Ziglio <frediano.ziglio@cloud.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Demi Marie Obenour <demiobenour@gmail.com>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	Stewart Hildebrand <stewart.hildebrand@amd.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Mon, 8 Dec 2025 at 13:38, Jan Beulich <jbeulich@suse.com> wrote:
>
> On 08.12.2025 14:31, Frediano Ziglio wrote:
> > On Mon, 8 Dec 2025 at 08:25, Jan Beulich <jbeulich@suse.com> wrote:
> >>
> >> On 05.12.2025 17:09, Frediano Ziglio wrote:
> >>> From: Frediano Ziglio <frediano.ziglio@cloud.com>
> >>>
> >>> For xen.gz file we strip all symbols and have an additional
> >>> xen-syms.efi file version with all symbols.
> >>> Make xen.efi more coherent stripping all symbols too.
> >>> xen-syms.efi can be used for debugging.
> >>>
> >>> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> >>> ---
> >>> Changes since v1:
> >>> - avoid leaving target if some command fails.
> >>>
> >>> Changes since v2:
> >>> - do not convert type but retain PE format;
> >>> - use xen-syms.efi for new file name, more consistent with ELF.
> >>>
> >>> Changes since v3:
> >>> - update documentation;
> >>> - do not remove xen.efi.elf;
> >>> - check endbr instruction before generating final target.
> >>>
> >>> Changes since v4:
> >>> - simplify condition check;
> >>> - avoid reuse of $@.tmp file.
> >>>
> >>> Changes since v5:
> >>> - avoid creation of temporary file.
> >>>
> >>> Changes since v6:
> >>> - install xen-syms.efi;
> >>> - always strip xen.efi;
> >>> - restore EFI_LDFLAGS check during rule execution;
> >>> - update CHANGELOG.md;
> >>> - added xen-syms.efi to .gitignore.
> >>>
> >>> Changes since v7:
> >>> - move and improve CHANGELOG.md changes.
> >>>
> >>> Changes since v8:
> >>> - rebase on master;
> >>> - clean xen-syms.efi file.
> >>
> >> I.e. not addressing my prior, more fundamental comments.
> >
> >   In version 8 you commented that code should not double linking, and
> > the current version does not double link.
>
> That was the reply directly to you. There was also a reply to Marek's comments,
> as to extending the probing of the toolchain that we do to figure out how well
> the PE/COFF linking actually works.
>
> Jan

Surely it would be good to have, but it looks out of scope here, we
already agreed that the current build produces artifacts with issues
and we already agree that this change should be integrated to solve
such issues.

On checking linking one simple thing would be to check that objdump
has no complaints (like a line like "objdump -x xen.efi > /dev/null"
in the Makefile).
I have a patch that does not tweak and checks on the xen.efi file and
there was a similar code posted a while ago but that's surely out of
scope.

Frediano


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 13:52:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 13:52:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180620.1503773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbfH-0004VV-WF; Mon, 08 Dec 2025 13:52:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180620.1503773; Mon, 08 Dec 2025 13:52:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbfH-0004VO-RI; Mon, 08 Dec 2025 13:52:35 +0000
Received: by outflank-mailman (input) for mailman id 1180620;
 Mon, 08 Dec 2025 13:52:34 +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 <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSbfG-0004VI-2E
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 13:52:34 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 24e8d5b3-d43d-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 14:52:32 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso42448435e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 05:52:32 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbe9065sm25699159f8f.8.2025.12.08.05.52.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 05:52:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 24e8d5b3-d43d-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765201952; x=1765806752; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5OGmuY/s70Mm4N3lbFLxhswtbQorlbGFNiJTXxcG4js=;
        b=PpJjy5NmesKnsrRmgZFWXJ3zBr4HCYAchBU5w65yi+bwpDBCsWrpa0bR0VWzgp2DFG
         oLK5rcMtBa0nnZMkR+5shy8jc5mbh9EjGwIypFfC26BWzG/MrXPZn3a2UkAbcatKJiUf
         tFCrvYbSR4SPQow4+TxBS+QDAk1TIB997MH1mbq5NqR+RsbRitErFnhBVthJzqqf91En
         kYhS0XMTjJ5QY+GJuKlslFs76Re4ji5QkvEFUckh2dEtupymMHaXJKWU+jkG8Eq/Xu+M
         tx5P8IPqNSCeL0lfgMvnBYST22syKcmFFv6GXQDzDae+D8J3QrDMVK0gnJQ047kQzs4O
         RR+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765201952; x=1765806752;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5OGmuY/s70Mm4N3lbFLxhswtbQorlbGFNiJTXxcG4js=;
        b=dliY4nEq8HdxYVWe0TkQIqjJDW/nnnAq8xOibS0bBxZKPIadncv6exu0eFGPpf7Dmp
         84WsG9l16buB1IVkKtooTKFRM57GHBozYor3RINr88Lbl4on0Ky60WKAVfNh57wMS9ii
         qSZazwxI7H0jhW5+8AmuEaeKpcj/depyboUkFnK7K/vyHgYpVv6cnVe3eDOl58q9Sjsr
         iX0nHGKoRAF+bZr5QVmcjSuq3OthPU7SE/FwSoVCs8KCSKC7sgfowJTPL5b4Kwr13Xwq
         QM9C6iFWZKDVKiwPI8xzm2GCQh0DtbAANj9yuQ7IUii6zb2hyxDE5kq8A2rPCSLHtOAX
         afEg==
X-Forwarded-Encrypted: i=1; AJvYcCUFZ6cpzIgirX1ZbJ6RzVF2PG6LM13EjTX+7ctmUs2FTByGBinsdU4W1XW01TWI+zugLMXSsreZc/A=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz8mNNvJ8WwZ9VVKO15FsEqeHTNmA4jldf7pvsDOWtop2EwMX4y
	s7S04CfJNpXcz2n8Y2Jcbsqryvz7elJtr4yeeYja3r57qXmc19Jdc6FTe1iI8OANTg==
X-Gm-Gg: ASbGncv2pprXvDr9Olr7Ch+vUoU3M9jF7FyW6YPn9icNUwxm4fBUIjbpLT1wjvbo6fr
	ckwbrSsoxKpRKn/PtXdz07L9Gjwv9yGRsAia2GH0Y0HPK43QiS69hxn5zuPxX2qoRWOiD3gSlSi
	2NvHg7USS1VYmP2S1U0nEl+C4XQOgJsDONdVX2+463kC2e1g2A4knhc2L1/kI0lbFy7DXzbdhZQ
	VCYU8g49TwsmJ7PdBIG4feVV9C7nr+6qyRhqb1DXvv+6nRfNvCzIwOWeYHLk0W/No0qXjEdWGRF
	QqAvXiHfWZ/faFmSPzypOxCVosRGptDUtw2OzmfCuMysuf6z2Q/Lzm9CPvJlUYfVMj1y2OehAWP
	WC7IzEZSVQoagiKhA8agnioZA+2NyXFn4Exm7v++p3ebTxToigG4YkJ9ge4O1Q+fZ1yuJjxVl3W
	++sgxFsKpuNXkBaOjvYR+8ezeZEcx+LCWarbXM4iSOaIRU3ykGi9WTcYJ28ZDRFr25Hkl4mogtK
	6w=
X-Google-Smtp-Source: AGHT+IFbTVflKuHtWSIcvPacuZ5q/7XObo00Ic1zRCZBP1rsS/Xerx7ph6ge7jlg0wYmbxpgV+wg1w==
X-Received: by 2002:a05:600c:8718:b0:477:a289:d854 with SMTP id 5b1f17b1804b1-47939df9a42mr83850305e9.5.1765201952097;
        Mon, 08 Dec 2025 05:52:32 -0800 (PST)
Message-ID: <4881f062-66d0-40ea-9da3-86451de1d780@suse.com>
Date: Mon, 8 Dec 2025 14:52:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/page_alloc: Much more concise
 domain_adjust_tot_pages()
To: Bernhard Kaindl <bernhard.kaindl@citrix.com>
Cc: Bernhard Kaindl <bernhard.kaindl@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <a5adbc25d18c34eb6d46120989d379862cd721bd.1764669686.git.bernhard.kaindl@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <a5adbc25d18c34eb6d46120989d379862cd721bd.1764669686.git.bernhard.kaindl@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02.12.2025 11:02, Bernhard Kaindl wrote:
> Non-functional change to make consuming claims more concise:

"Much more concise" in the title suggests a significant (i.e. functional)
change, contrary to what is being said here.

> When we limit the consumption of claims to the remaining claims
> of the domain, we can make the code more concise by limiting the
> adjustment to it instead of carrying a special case for it.

This wording in turn suggests a functional change when, afaict, there is
none.

> Signed-off-by: Bernhard Kaindl <bernhard.kaindl@cloud.com>
> Co-authored-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> ---
> Changes
> - Use min_t(unsigned long, a, b) as the tool of the trade (Roger Pau Monné)
> - Reviewed by Andrew Cooper and Roger Pau Monné(Excluding comments, commit message)
> - Regression-tested and included as part of te NUMA work for XenServer 9
> - Improved comments and the commit message (non-functional change, comment cleanup)

If there was a previous version, why does this submission not have a
version number > 1? Having looked back - what was wrong with the
original title?

> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -510,8 +510,11 @@ static unsigned long avail_heap_pages(
>      return free_pages;
>  }
>  
> +/* Adjust the tot_pages and remaining outstanding claims of the domain. */

Nit: Why once a field name and once a verbal description?

>  unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
>  {
> +    unsigned long adjustment;
> +
>      ASSERT(rspin_is_locked(&d->page_alloc_lock));
>      d->tot_pages += pages;
>  
> @@ -519,23 +522,19 @@ unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
>       * can test d->outstanding_pages race-free because it can only change
>       * if d->page_alloc_lock and heap_lock are both held, see also
>       * domain_set_outstanding_pages below
> +     *
> +     * skip claims adjustment when the domain has no outstanding claims
> +     * or we unassigned pages from it.

Nit: Comment style.

>       */
>      if ( !d->outstanding_pages || pages <= 0 )
>          goto out;
>  
>      spin_lock(&heap_lock);
>      BUG_ON(outstanding_claims < d->outstanding_pages);
> -    if ( d->outstanding_pages < pages )
> -    {
> -        /* `pages` exceeds the domain's outstanding count. Zero it out. */
> -        outstanding_claims -= d->outstanding_pages;
> -        d->outstanding_pages = 0;
> -    }
> -    else
> -    {
> -        outstanding_claims -= pages;
> -        d->outstanding_pages -= pages;
> -    }
> +    /* consume claims until the domain's outstanding_claims are exhausted */

Again: Comment style.

> +    adjustment = min_t(unsigned long, d->outstanding_pages, pages);

I may have expressed before that any use of min_t() is worrying to a certain
degree, due to the involved casting. The use here may well be appropriate,
but I'd expect a word to be said towards this in the description then. After
all alternatives exist (and I even pointed out one during v3 review) ...

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 13:55:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 13:55:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180635.1503782 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbi3-00055m-E7; Mon, 08 Dec 2025 13:55:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180635.1503782; Mon, 08 Dec 2025 13:55:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbi3-00055f-Ah; Mon, 08 Dec 2025 13:55:27 +0000
Received: by outflank-mailman (input) for mailman id 1180635;
 Mon, 08 Dec 2025 13:55:26 +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
 <SRS0=22jW=6O=gmail.com=haseebashraf091@srs-se1.protection.inumbo.net>)
 id 1vSbi2-00055Z-Ov
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 13:55:26 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8bf4eb0c-d43d-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 14:55:25 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-47775fb6cb4so37623535e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 05:55:25 -0800 (PST)
Received: from PKL-HASEEBA-LT.. ([39.36.89.17])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4792afe32cbsm144746585e9.0.2025.12.08.05.55.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Dec 2025 05:55:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8bf4eb0c-d43d-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765202125; x=1765806925; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=9yfRH+v8o1fMcD7nIgwoL2ojGo+xNx8nkGSixxBQ19g=;
        b=FJRVw3KkLFgO1ed+CEuE/qIbvuHaRhazEoUMdeiw+IdmkXev3MevQjcZ9KFFrXpOvP
         Nie5Q8pALAjozkMOfDCNUJIi5XyRXVCGSboU5O4nqa0JXrjnUUGDyWu69e4bSpTSn30F
         ep/0Cdide4ef1FyKKhRl/KDsBeiy+P6YF8Pqokg/LekwXxEG7ti56nU8qemk5iNaF8bE
         a8igvbwSAm7YG9sHLiUy3BdrJDoGUiemp3jsHcV2ynLDi2I7MRCo5oKUXoCUygU1OC4Z
         kgyba7W5yrO4gB+lc73LWkGDFZjoTvfIReyOkwTEfl2oQRpkQchgtLEJa/5wAFWoMQZh
         JYWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765202125; x=1765806925;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9yfRH+v8o1fMcD7nIgwoL2ojGo+xNx8nkGSixxBQ19g=;
        b=i72WtMtHyE4hrw6Y89KA0NVHN7SjIgA3ra0mG1F159OYy4UibSWGXpkMz9GpC6/fkY
         CpuaqXax6i7JayoAChtDADIYQECxZqeRvtSxuVEOifskWiOiGTa8i7ML4wJ1/gPJ+tt9
         6+g5SS+V8ki+x+kfUfjTuob08p5sZR9zKQz9xhAYiUd3Pcmkf70PKRLRoa5Dt56PIt5d
         3LkAXcX91N2NKz62kzcI26txwZ1E6OGysTultBbXZDBozBI2nyi96uGPKfz9WX4QAS3D
         CEgFjOjvtVkq1NVxCkSE+DxygQtuVbYfqf2Ux/t6UMer7bDldnh36blcsAy3mHbcFvbQ
         ucQA==
X-Gm-Message-State: AOJu0YyjaYyxE2cdZw5ahtZuuMPX2nHpYTCdzaH0CpA5lZtopTmzRAhj
	HhOv4FnUZWHZLaTT8PQJM56ZMAXnAvvKMW7bpe+hBXCmHEdzUXCwo4h/2YD32Qwj
X-Gm-Gg: ASbGnctpyBseiYSRbGyvLDPk2Myy/O6aZQzotHEMHTDlojizD30+FeQoiPPFmcjbp1F
	enDaJGk5m4g4DktJWCQUSbxPDpuMbvhAfewderTtZw1T72hkPXRuu5tTSQZ4xCr5xaf/MMPvR10
	jnVY1tLBFmqwb2qhEeZR8F9mkwnlih4WCZuVT27W9M17GkWab4NkqDb4A+z/CGWrPw7JMn1kpfc
	n3zKRD30mJKm8HKA4wSFTA6PW3g287Ny+L2VRJ+8Tg22a6H+ysUJX9O9MfwOzi6r9JI+3zEkINW
	HioV+tlqHqGGbkeiFRGE8C2X+uy7gWQGlcu3vEw685EbYs/GAYot/MISjQRtp9DEMU1eubewYrW
	mxFkaozfYbXRwZA6ortz6ISEne67JeuDkEd+/enAvYp4HZ10Pb/5O3ZWWuuOZ2n6v3s/zv5pcRE
	UhUtM4NbUitzQWRfsbEaJKVKNbBWAFqiIMbc9EhQSoBoXUgQSs
X-Google-Smtp-Source: AGHT+IH7Tge21zbaw0o2DhiaC8f2/UyN/tyetWM5dBlNd3ZGUZd1a8k5he9cbrlcYGg45ED3UmsD/A==
X-Received: by 2002:a05:600c:6748:b0:471:9da:5232 with SMTP id 5b1f17b1804b1-47939dfdc35mr81228885e9.15.1765202124462;
        Mon, 08 Dec 2025 05:55:24 -0800 (PST)
From: Haseeb Ashraf <haseebashraf091@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Haseeb Ashraf <haseeb.ashraf@siemens.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Dan Driscoll <dan.driscoll@siemens.com>,
	Noor Ahsan Khawaja <noor.ahsan@siemens.com>,
	Fahad Arslan <fahad.arslan@siemens.com>,
	Andrew Bachtel <andrew.bachtel@siemens.com>
Subject: [PATCH 0/3] xen/arm{32,64}: perform IPA-based TLBI when IPA is
Date: Mon,  8 Dec 2025 18:55:13 +0500
Message-ID: <cover.1765197209.git.haseeb.ashraf@siemens.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Haseeb Ashraf <haseeb.ashraf@siemens.com>

This patch series addresses a major issue for running Xen on KVM i.e.
costly emulation of VMALLS12E1IS which becomes worse when this TLBI
is invoked too many times. There are mainly two places where this is
problematic:
(a) When vCPUs switch on a pCPU or pCPUs
(b) When domu mapped pages onto dom0, are to be unmapped, then each
    page being removed by XENMEM_remove_from_physmap has its TLBs
    invalidated by the TLBI variant that flushes the whole range.

This patch series prefers usage of IPA-based TLBIs wherever possible
instead of complete flushing of TLBs every time.

It consists of three patches where the first one address the issue
being discussed for Arm64. Second patch further optimizes the
combined stage-1,2 TLB flushes by leveraging FEAT_nTLBPA. Third patch
introduces IPA-based TLBI for Arm32 in presence of FEAT_nTLBPA.

Haseeb Ashraf (3):
  xen/arm/p2m: perform IPA-based TLBI when IPA is known
  xen/arm: optimize stage-1,2 combined TLBI in presence of FEAT_nTLBPA
  xen/arm32: add CPU capability for IPA-based TLBI

Changes in v3:
- Mainly the handling of repeat TLBI workaround with IPA-based TLBI,
  so that the extra TLBI and DSB are repeated only for the final TLBI
  and DSB of the whole sequence.
- Updated code comments as per feedback. Further details are
  available in each commit's changelog.
- Minor updates to code as per feedback. Further details are
  available in each commit's changelog.

Changes in v2:
- Split up the commit in 3 commits. First commit implements the
  baseline implementation without any addition of new CPU
  capabilities. Implemented new CPU caps in separate features to
  emphasize how each of it optimizes the TLB invalidation.
- Moved ARM32 and ARM64 specific implementations of TLBIs to
  architecture specific flushtlb.h.
- Added references of ARM ARM in code comments.
- Evaluated and added a threshold to select between IPA-based TLB
  invalidation vs fallback to full stage TLB invalidation above
  the threshold.
- Introduced ARM_HAS_NTLBPA CPU capability which leverages
  FEAT_nTLBPA for arm32 as well as arm64.
- Introduced ARM_HAS_TLB_IPA CPU capability for IPA-based TLBI
  for arm32.

Haseeb Ashraf (3):
  xen/arm/p2m: perform IPA-based TLBI when IPA is known
  xen/arm: optimize stage-1,2 combined TLBI in presence of FEAT_nTLBPA
  xen/arm32: add CPU capability for IPA-based TLBI

 xen/arch/arm/cpufeature.c                 | 31 ++++++++
 xen/arch/arm/include/asm/arm32/flushtlb.h | 87 +++++++++++++++++++++
 xen/arch/arm/include/asm/arm64/flushtlb.h | 77 +++++++++++++++++++
 xen/arch/arm/include/asm/cpregs.h         |  4 +
 xen/arch/arm/include/asm/cpufeature.h     | 27 ++++++-
 xen/arch/arm/include/asm/mmu/p2m.h        |  2 +
 xen/arch/arm/include/asm/processor.h      | 10 +++
 xen/arch/arm/mmu/p2m.c                    | 92 +++++++++++++++++------
 8 files changed, 302 insertions(+), 28 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 13:55:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 13:55:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180637.1503793 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbiC-0005Lv-LQ; Mon, 08 Dec 2025 13:55:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180637.1503793; Mon, 08 Dec 2025 13:55:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbiC-0005Lm-HP; Mon, 08 Dec 2025 13:55:36 +0000
Received: by outflank-mailman (input) for mailman id 1180637;
 Mon, 08 Dec 2025 13:55:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=22jW=6O=gmail.com=haseebashraf091@srs-se1.protection.inumbo.net>)
 id 1vSbiB-0005KM-Ni
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 13:55:35 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 90c39b8c-d43d-11f0-980a-7dc792cee155;
 Mon, 08 Dec 2025 14:55:33 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4779cc419b2so51066095e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 05:55:33 -0800 (PST)
Received: from PKL-HASEEBA-LT.. ([39.36.89.17])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4792afe32cbsm144746585e9.0.2025.12.08.05.55.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Dec 2025 05:55:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 90c39b8c-d43d-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765202133; x=1765806933; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uPY8I9p89Z49IT6xTWbbfssEr8lHB6MKrNil8DAb3PU=;
        b=B+6daUTjitQs6mQRROeawnJnY1RYRuoUWmakmIj/zPd7TD0zGHoBWwvKqwcJdM3GKq
         eNu9JegtYlP9BeHXMuKp1kd+0NM1c7huvh9/aGj3cs+fxOXtrq4sDvnS/TwpO+43MF6V
         6P14krpEu6iGJhE2gtn/4gdZOF25wmdK847voLKx+yF1xOtwv96lk/+i152tB9kr5uGZ
         RkoUwm8132DcsA+45BXAJBEwGXFgkUw2DfRVu0VcbFClELIYG2tNIuX/dYX9CQHTD28H
         91v6+Ku5N1OKE3TgLxauxDzqBvycKIE9L0MTvGHCFonVA4U3J4rho1nwtq7A490yWJwS
         svDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765202133; x=1765806933;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=uPY8I9p89Z49IT6xTWbbfssEr8lHB6MKrNil8DAb3PU=;
        b=Dnp3a0thcmnT6v0ykTj56QfozdxVJC9H31tKTe7zOJsbzBmsvvtmtX2XHN8Ztl3ijQ
         Ekc+qPPwHdwUMDpu7YCpk9wRJXlMwWEF+kLEhhAA0Hf5DfMyjgDJj4+MunGowz0Die2q
         J49w6PGLhtK0BwjqEOEQKIN2i2cGQrfO8SBXEBZVpW5CwDVeOcJ5sLuyEIpiJ8/aMu3K
         40xHFadJ23ZaPzWgM8En0qtIIw9si47sA+KNvsoottHygdLHiBvSoAB3QLLzr5upwes4
         iO+vfZSpqQnVuhskaJ2KZHlZMgckDjBJiHPZWYk8ekfAPU75sM96sPUKeJlqCKF+tR4B
         v7CQ==
X-Gm-Message-State: AOJu0YwGmzjwudb9FfBK77ob2undNoCCeCHKFINJqhQt4DbMNxKf0ZIK
	v3dI9AWR9x4+CeTSrGKIvw7jNxYNdF6IJJLWcli7IATKJtPEgdwQ+UNZmKIaQ9bb
X-Gm-Gg: ASbGnctUcsn8z0LqUoUg5v32v+P6VTDsEQLkxX3E9YfjZ8TEDpwqvXTAvEFzasWA8b8
	Q8oAzlkq23X4i2+vKw9w3epTq/DRrxXi4IbChTButN6Keh0S0SNd7WP4CKJmLd7aI6gWHg+FsBL
	FDou9VJWvWDvLdktl+TFXSuBwSJFa2nfEd+reCmHKAMKIaWaUxfA6N9uzj9Rb4pmqGgLLw45nBQ
	u6vX2zWGy7zz7Ah5Ttegigbfte0JzpzX0zcBGWOXm6DuOEC50GYJdeNDoYOJtFBwPsVDR/w64Sh
	zCypyWwV7PnttAlEGvksst5/E2pyI9QPeuHfv0o0wMC4RdW8wAFmZxsSQlX4LjHuddQAM73+myM
	mRh6JE4MP066BW3d7QfbC6BgP+VrwwnmhFxhTHy0/MhEOTTYXF1gaKWUxUNTZQUSjaOumL6yYHI
	rOQj1wJIQDpLZLQnLRugwJQ+TDeMet1CAieXvt617yjf2FIWB1
X-Google-Smtp-Source: AGHT+IFROT6R+E7EsRYwySNUKn1MFwIMxmn+zDuNcR6BsCHwzxL82BBKdgXgO2S5B43m42Q+sdWJqA==
X-Received: by 2002:a05:600c:1ca4:b0:477:a978:3a7b with SMTP id 5b1f17b1804b1-47939e27832mr96055955e9.22.1765202132629;
        Mon, 08 Dec 2025 05:55:32 -0800 (PST)
From: Haseeb Ashraf <haseebashraf091@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Haseeb Ashraf <haseeb.ashraf@siemens.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Dan Driscoll <dan.driscoll@siemens.com>,
	Noor Ahsan Khawaja <noor.ahsan@siemens.com>,
	Fahad Arslan <fahad.arslan@siemens.com>,
	Andrew Bachtel <andrew.bachtel@siemens.com>
Subject: [PATCH 1/3] xen/arm/p2m: perform IPA-based TLBI when IPA is known
Date: Mon,  8 Dec 2025 18:55:14 +0500
Message-ID: <f68ced43267116e3b9beaf9cf4eb201228fdadd1.1765197209.git.haseeb.ashraf@siemens.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1765197209.git.haseeb.ashraf@siemens.com>
References: <cover.1765197209.git.haseeb.ashraf@siemens.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Haseeb Ashraf <haseeb.ashraf@siemens.com>

This commit addresses a major issue for running Xen on KVM i.e.
costly emulation of VMALLS12E1IS which becomes worse when this TLBI
is invoked too many times. There are mainly two places where this is
problematic:
(a) When vCPUs switch on a pCPU or pCPUs
(b) When domu mapped pages onto dom0, are to be unmapped, then each
    page being removed by XENMEM_remove_from_physmap has its TLBs
    invalidated by VMALLS12E1IS.

The first one is addressed by relaxing VMALLS12E1 -> VMALLE1 as the
stage-2 is common between all the vCPUs of a VM. Since each CPU has
its own private TLBs, so flush between vCPU of the same domains is
still required to avoid translations from vCPUx to "leak" to the
vCPUy which can be achieved by using VMALLE1.

The second one is addressed by using IPA-based TLBI (IPAS2E1) in
combination with VMALLE1 whenever the IPA range is known instead of
using VMALLS12E1. There is an upper cap placed on number of IPA-based
TLBI. This factor for execution time of VMALLS12E1 vs IPAS2E1 is
found to be 70K on Graviton4 in Xen on KVM virtualization. So,
64K * 4KB = 256MB is set as the threshold.

For arm32, TLBIALL instruction can invalidate both stage-1 and
stage-2 entries, so using IPA-based TLBI would be redundant as
TLBIALL is required in any case to invalidate corresponding cached
entries from stage-1.

Suggested-by: Julien Grall <julien@xen.org>
Signed-off-by: Haseeb Ashraf <haseeb.ashraf@siemens.com>

Changes in v3:
- Updated IPA-based TLBI sequence to apply ARM64 repeat TLBI
  workaround to only final TLBI and DSB of the sequence.
- Removed TLB_HELPER_IPA and instead directly used the TLBI
  instruction where needed as that was the only instance where it is
  being used.
- Removed flush_guest_tlb_range_ipa_local() as it was not being used.
- Updated comments as per feedback in v2 about holding lock before
  p2m_load_vttbr.
- Updated references of ARM ARM to use newer version DDI 0487L.b
  instead of older version DDI 0487A.e.

Changes in v2:
- This commit implements the basline implementation to address the
  problem at hand. Removed the FEAT_nTLBPA implementation from this
  commit which will be implemented in following commit using CPU
  capability.
- Moved ARM32 and ARM64 specific implementations of TLBIs to
  architecture specific flushtlb.h.
- Added references of ARM ARM in code comments.
- Evaluated and added a threshold to select between IPA-based TLB
  invalidation vs fallback to full stage TLB invalidation above
  the threshold.
---
 xen/arch/arm/include/asm/arm32/flushtlb.h | 53 +++++++++++++
 xen/arch/arm/include/asm/arm64/flushtlb.h | 46 ++++++++++++
 xen/arch/arm/include/asm/mmu/p2m.h        |  2 +
 xen/arch/arm/mmu/p2m.c                    | 92 +++++++++++++++++------
 4 files changed, 168 insertions(+), 25 deletions(-)

diff --git a/xen/arch/arm/include/asm/arm32/flushtlb.h b/xen/arch/arm/include/asm/arm32/flushtlb.h
index 61c25a3189..3c0c2123d4 100644
--- a/xen/arch/arm/include/asm/arm32/flushtlb.h
+++ b/xen/arch/arm/include/asm/arm32/flushtlb.h
@@ -45,6 +45,43 @@ TLB_HELPER(flush_xen_tlb_local, TLBIALLH, nsh)
 
 #undef TLB_HELPER
 
+/*
+ * Flush TLB of local processor. Use when flush for only stage-1 is intended.
+ *
+ * The following function should be used where intention is to clear only
+ * stage-1 TLBs. This would be helpful in future in identifying which stage-1
+ * TLB flushes can be skipped such as in present of FEAT_nTLBPA.
+ */
+static inline void flush_guest_tlb_s1_local(void)
+{
+    /*
+     * Same instruction can invalidate both stage-1 and stage-2 TLBs depending
+     * upon the execution context.
+     *
+     * See ARMv8 (DDI 0487L.b): G5-11698 Table G5-23.
+     */
+    return flush_guest_tlb_local();
+}
+
+/*
+ * Flush TLB of inner-shareable processor domain. Use when flush for only
+ * stage-1 is intended.
+ *
+ * The following function should be used where intention is to clear only
+ * stage-1 TLBs. This would be helpful in future in identifying which stage-1
+ * TLB flushes can be skipped such as in present of FEAT_nTLBPA.
+ */
+static inline void flush_guest_tlb_s1(void)
+{
+    /*
+     * Same instruction can invalidate both stage-1 and stage-2 TLBs depending
+     * upon the execution context.
+     *
+     * See ARMv8 (DDI 0487L.b): G5-11698 Table G5-23.
+     */
+    return flush_guest_tlb();
+}
+
 /* Flush TLB of local processor for address va. */
 static inline void __flush_xen_tlb_one_local(vaddr_t va)
 {
@@ -57,6 +94,22 @@ static inline void __flush_xen_tlb_one(vaddr_t va)
     asm volatile(STORE_CP32(0, TLBIMVAHIS) : : "r" (va) : "memory");
 }
 
+/*
+ * Flush a range of IPA's mappings from the TLB of all processors in the
+ * inner-shareable domain.
+ */
+static inline void flush_guest_tlb_range_ipa(paddr_t ipa,
+                                             unsigned long size)
+{
+    /*
+     * Following can invalidate both stage-1 and stage-2 TLBs depending upon
+     * the execution mode.
+     *
+     * See ARMv8 (DDI 0487L.b): G5-11698 Table G5-23.
+     */
+    flush_guest_tlb();
+}
+
 #endif /* __ASM_ARM_ARM32_FLUSHTLB_H__ */
 /*
  * Local variables:
diff --git a/xen/arch/arm/include/asm/arm64/flushtlb.h b/xen/arch/arm/include/asm/arm64/flushtlb.h
index 3b99c11b50..67ae616993 100644
--- a/xen/arch/arm/include/asm/arm64/flushtlb.h
+++ b/xen/arch/arm/include/asm/arm64/flushtlb.h
@@ -1,6 +1,8 @@
 #ifndef __ASM_ARM_ARM64_FLUSHTLB_H__
 #define __ASM_ARM_ARM64_FLUSHTLB_H__
 
+#include <xen/sizes.h> /* For SZ_* macros. */
+
 /*
  * Every invalidation operation use the following patterns:
  *
@@ -72,6 +74,12 @@ TLB_HELPER(flush_guest_tlb_local, vmalls12e1, nsh)
 /* Flush innershareable TLBs, current VMID only */
 TLB_HELPER(flush_guest_tlb, vmalls12e1is, ish)
 
+/* Flush local TLBs, current VMID, stage-1 only */
+TLB_HELPER(flush_guest_tlb_s1_local, vmalle1, nsh)
+
+/* Flush innershareable TLBs, current VMID, stage-1 only */
+TLB_HELPER(flush_guest_tlb_s1, vmalle1is, ish)
+
 /* Flush local TLBs, all VMIDs, non-hypervisor mode */
 TLB_HELPER(flush_all_guests_tlb_local, alle1, nsh)
 
@@ -90,6 +98,44 @@ TLB_HELPER_VA(__flush_xen_tlb_one, vae2is)
 #undef TLB_HELPER
 #undef TLB_HELPER_VA
 
+/*
+ * Flush a range of IPA's mappings from the TLB of all processors in the
+ * inner-shareable domain.
+ */
+static inline void flush_guest_tlb_range_ipa(paddr_t ipa, unsigned long size)
+{
+    paddr_t end;
+
+    /*
+     * If IPA range is too big (empirically found to be 256M), then fallback to
+     * full TLB flush.
+     */
+    if ( size > SZ_256M )
+        return flush_guest_tlb();
+
+    end = ipa + size;
+
+    /*
+     * See ARM ARM DDI 0487L.b D8.17.6.1 (Invalidating TLB entries from stage 2
+     * translations) for details of TLBI sequence.
+     */
+    dsb(ishst); /* Ensure prior page-tables updates have completed */
+    while ( ipa < end )
+    {
+        /* Flush stage-2 TLBs for ipa address */
+        asm_inline volatile (
+            "tlbi ipas2e1is, %0;" : : "r" (ipa >> PAGE_SHIFT) : "memory" );
+        ipa += PAGE_SIZE;
+    }
+    /*
+     * As ARM64_WORKAROUND_REPEAT_TLBI is required to be applied to last TLBI
+     * of the sequence, it is only needed to be handled in the following
+     * invocation. Final dsb() and isb() are also applied in the following
+     * invocation.
+     */
+    flush_guest_tlb_s1();
+}
+
 #endif /* __ASM_ARM_ARM64_FLUSHTLB_H__ */
 /*
  * Local variables:
diff --git a/xen/arch/arm/include/asm/mmu/p2m.h b/xen/arch/arm/include/asm/mmu/p2m.h
index 58496c0b09..8a16722b82 100644
--- a/xen/arch/arm/include/asm/mmu/p2m.h
+++ b/xen/arch/arm/include/asm/mmu/p2m.h
@@ -10,6 +10,8 @@ extern unsigned int p2m_root_level;
 
 struct p2m_domain;
 void p2m_force_tlb_flush_sync(struct p2m_domain *p2m);
+void p2m_force_tlb_flush_range_sync(struct p2m_domain *p2m, uint64_t start_ipa,
+                                    uint64_t page_count);
 void p2m_tlb_flush_sync(struct p2m_domain *p2m);
 
 void p2m_clear_root_pages(struct p2m_domain *p2m);
diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
index 51abf3504f..eec59056fa 100644
--- a/xen/arch/arm/mmu/p2m.c
+++ b/xen/arch/arm/mmu/p2m.c
@@ -235,33 +235,28 @@ void p2m_restore_state(struct vcpu *n)
      * when running multiple vCPU of the same domain on a single pCPU.
      */
     if ( *last_vcpu_ran != INVALID_VCPU_ID && *last_vcpu_ran != n->vcpu_id )
-        flush_guest_tlb_local();
+        flush_guest_tlb_s1_local();
 
     *last_vcpu_ran = n->vcpu_id;
 }
 
 /*
- * Force a synchronous P2M TLB flush.
+ * Loads VTTBR from given P2M.
  *
  * Must be called with the p2m lock held.
+ *
+ * This returns switched out VTTBR.
  */
-void p2m_force_tlb_flush_sync(struct p2m_domain *p2m)
+static uint64_t p2m_load_vttbr(struct p2m_domain *p2m, unsigned long *flags)
 {
-    unsigned long flags = 0;
     uint64_t ovttbr;
 
-    ASSERT(p2m_is_write_locked(p2m));
-
-    /*
-     * ARM only provides an instruction to flush TLBs for the current
-     * VMID. So switch to the VTTBR of a given P2M if different.
-     */
     ovttbr = READ_SYSREG64(VTTBR_EL2);
     if ( ovttbr != p2m->vttbr )
     {
         uint64_t vttbr;
 
-        local_irq_save(flags);
+        local_irq_save(*flags);
 
         /*
          * ARM64_WORKAROUND_AT_SPECULATE: We need to stop AT to allocate
@@ -280,8 +275,14 @@ void p2m_force_tlb_flush_sync(struct p2m_domain *p2m)
         isb();
     }
 
-    flush_guest_tlb();
+    return ovttbr;
+}
 
+/*
+ * Restores VTTBR which was switched out as a result of p2m_load_vttbr().
+ */
+static void p2m_restore_vttbr(uint64_t ovttbr, unsigned long flags)
+{
     if ( ovttbr != READ_SYSREG64(VTTBR_EL2) )
     {
         WRITE_SYSREG64(ovttbr, VTTBR_EL2);
@@ -289,10 +290,58 @@ void p2m_force_tlb_flush_sync(struct p2m_domain *p2m)
         isb();
         local_irq_restore(flags);
     }
+}
+
+/*
+ * Force a synchronous P2M TLB flush.
+ *
+ * Must be called with the p2m lock held.
+ */
+void p2m_force_tlb_flush_sync(struct p2m_domain *p2m)
+{
+    unsigned long flags = 0;
+    uint64_t ovttbr;
+
+    ASSERT(p2m_is_write_locked(p2m));
+
+    /*
+     * ARM only provides an instruction to flush TLBs for the current
+     * VMID. So switch to the VTTBR of a given P2M if different.
+     */
+    ovttbr = p2m_load_vttbr(p2m, &flags);
+
+    flush_guest_tlb();
+
+    p2m_restore_vttbr(ovttbr, flags);
 
     p2m->need_flush = false;
 }
 
+/*
+ * Force a synchronous P2M TLB flush on a range of addresses.
+ *
+ * Must be called with the p2m lock held.
+ */
+void p2m_force_tlb_flush_range_sync(struct p2m_domain *p2m, uint64_t start_ipa,
+                                    uint64_t page_count)
+{
+    unsigned long flags = 0;
+    uint64_t ovttbr;
+
+    ASSERT(p2m_is_write_locked(p2m));
+
+    /*
+     * ARM only provides an instruction to flush TLBs for the current
+     * VMID. So switch to the VTTBR of a given P2M if different.
+     */
+    ovttbr = p2m_load_vttbr(p2m, &flags);
+
+    /* Invalidate TLB entries by IPA range */
+    flush_guest_tlb_range_ipa(start_ipa, PAGE_SIZE * page_count);
+
+    p2m_restore_vttbr(ovttbr, flags);
+}
+
 void p2m_tlb_flush_sync(struct p2m_domain *p2m)
 {
     if ( p2m->need_flush )
@@ -1034,7 +1083,8 @@ static int __p2m_set_entry(struct p2m_domain *p2m,
          * For more details see (D4.7.1 in ARM DDI 0487A.j).
          */
         p2m_remove_pte(entry, p2m->clean_pte);
-        p2m_force_tlb_flush_sync(p2m);
+        p2m_force_tlb_flush_range_sync(p2m, gfn_x(sgfn) << PAGE_SHIFT,
+                                       1UL << page_order);
 
         p2m_write_pte(entry, split_pte, p2m->clean_pte);
 
@@ -1090,8 +1140,8 @@ static int __p2m_set_entry(struct p2m_domain *p2m,
         p2m_remove_pte(entry, p2m->clean_pte);
 
     if ( removing_mapping )
-        /* Flush can be deferred if the entry is removed */
-        p2m->need_flush |= !!lpae_is_valid(orig_pte);
+        p2m_force_tlb_flush_range_sync(p2m, gfn_x(sgfn) << PAGE_SHIFT,
+                                       1UL << page_order);
     else
     {
         lpae_t pte = mfn_to_p2m_entry(smfn, t, a);
@@ -1102,18 +1152,10 @@ static int __p2m_set_entry(struct p2m_domain *p2m,
         /*
          * It is necessary to flush the TLB before writing the new entry
          * to keep coherency when the previous entry was valid.
-         *
-         * Although, it could be defered when only the permissions are
-         * changed (e.g in case of memaccess).
          */
         if ( lpae_is_valid(orig_pte) )
-        {
-            if ( likely(!p2m->mem_access_enabled) ||
-                 P2M_CLEAR_PERM(pte) != P2M_CLEAR_PERM(orig_pte) )
-                p2m_force_tlb_flush_sync(p2m);
-            else
-                p2m->need_flush = true;
-        }
+            p2m_force_tlb_flush_range_sync(p2m, gfn_x(sgfn) << PAGE_SHIFT,
+                                           1UL << page_order);
         else if ( !p2m_is_valid(orig_pte) ) /* new mapping */
             p2m->stats.mappings[level]++;
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 13:55:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 13:55:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180638.1503801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbiJ-0005eF-S1; Mon, 08 Dec 2025 13:55:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180638.1503801; Mon, 08 Dec 2025 13:55:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbiJ-0005e6-Om; Mon, 08 Dec 2025 13:55:43 +0000
Received: by outflank-mailman (input) for mailman id 1180638;
 Mon, 08 Dec 2025 13:55:43 +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
 <SRS0=22jW=6O=gmail.com=haseebashraf091@srs-se1.protection.inumbo.net>)
 id 1vSbiI-00055Z-Sj
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 13:55:43 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 95264e19-d43d-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 14:55:41 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso42487505e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 05:55:41 -0800 (PST)
Received: from PKL-HASEEBA-LT.. ([39.36.89.17])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4792afe32cbsm144746585e9.0.2025.12.08.05.55.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Dec 2025 05:55:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 95264e19-d43d-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765202140; x=1765806940; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=89jrADcfTNLToqirJ07l6LVFLAbwHAWxMw55ZpCsj8k=;
        b=R7kOkrVKTZWHzlEqEkbplbZIhCsrLOv68BdOznIcfKCdt9TRx/5bRu4dYzwWINSQ9i
         Ukdonohwb8edMkgezbTC2RUrhlpDDTgsDE33y0C0yALQWTw8fAS9mYg2VAG81FTf084A
         DW52rixlqDid93HYVonlHknB8BbKldaTcAbo4S/YT16uYAsgK/phqKown7HKzxMOcQJV
         pPFNKLbjpLjYSDdxJnOgSwtNtrXMh0GNzb9SQarCZnA7/DrLAd8NOFzQD16tmF47Zj6X
         nLe4lAwaXBOmenbpBWU+cjD4hpYdQntEpWuMy1AhwaQRuhxVBKVDtxj1HybuHd6N0y7C
         8a0Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765202140; x=1765806940;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=89jrADcfTNLToqirJ07l6LVFLAbwHAWxMw55ZpCsj8k=;
        b=jgX/oMZyYVE1gJZyj6U9HNq29vIWy9e4veAp0V+X7KVcgQMh5oHV7FCtuWJ/AhrIFy
         hpwdcYYHh2r1Ljc97vphEvkf9b0IxudR3yEeGKQ9oZ3lnYUytQRdpioEYT6MYEzK5pc0
         AHJbdauLUaSgzWWw1evoiaer3cQEwdgnOfmYFt+CdVpCraSlm7b8WzWjE7V2YCAeXk6l
         yWrNvcyqpjl08VN2TwOhaq6ULTmA0s0tnZo4VUX15+bE1sk8OvbzmY8aLtlt1UZG9JKe
         hgT52nrs9xixsOaiChOVRksIlSxHygBr0ufcD42/0sCdaAGRm+z8sOrPGrxw9k8EnTIh
         c2mg==
X-Gm-Message-State: AOJu0YzSKyjmsWky77lJti6UFgMi3vS+H3RwHy4/bBBPei616Qi5RWnE
	IyAaIDoFt2+t3Ogi2vm9wSjIUmr1bBLnqJxEH+TVIS9Z1QNcoWGr+iw6Qka5/E7i
X-Gm-Gg: ASbGnct4hRzhgim/epibP3p7OQ+/mrP6xV6HBVQlEyFJR1TC7kw8aUbdjNbLTFWsB9L
	eIMnU1ZrhlESPE/GW9Cx15l703/XbH3BCbiCZkWHyf3wWuGqxIIhyB2UkTPZUFolehvfNyzCWsU
	WZwHHxu+6CfvgvRUBVA6mROh6UmeYlNK4rQ7szfLcV3NcKLHojUQaXyAwA5NU4EpG45b/DLT3OH
	qZGB5nibi5J5WG55MOqrOtqW5I7ZcTMPlAA0yF97kdZI5qBmzmi6V+pIEbtuKnG4FcjaCpQ0Jw0
	6ZXpU5VcfQyjACTbiAWd/oSHgzgb2WN+tQffEvcDnqtWYYx04KpdQzc8+irx088ToF0QzyB6RDU
	094OZHfCOWhemnTczmxDXq1mBkTQqEOoPIVyDlpK6Muyg2A5dtgs5eY5uxiNTALwnrU8ZpdiYqd
	Bk1KA4zqZkADV/Ocg8X2DsgLxTCj+7tQb5EQt0arfc+uNFg9nm
X-Google-Smtp-Source: AGHT+IGpJ9lI7qlZKtyZlSbU9CKaEyhK+/QVNIKFw96TPH9dDQojcnNuoPmt6VzvmTXcTyZ7xin53w==
X-Received: by 2002:a05:600c:3513:b0:475:d9de:952e with SMTP id 5b1f17b1804b1-47939deff25mr89472025e9.1.1765202139699;
        Mon, 08 Dec 2025 05:55:39 -0800 (PST)
From: Haseeb Ashraf <haseebashraf091@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Haseeb Ashraf <haseeb.ashraf@siemens.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Dan Driscoll <dan.driscoll@siemens.com>,
	Noor Ahsan Khawaja <noor.ahsan@siemens.com>,
	Fahad Arslan <fahad.arslan@siemens.com>,
	Andrew Bachtel <andrew.bachtel@siemens.com>,
	Mohamed Mediouni <mohamed@unpredictable.fr>
Subject: [PATCH 2/3] xen/arm: optimize stage-1,2 combined TLBI in presence of FEAT_nTLBPA
Date: Mon,  8 Dec 2025 18:55:15 +0500
Message-ID: <025aae317ebfbb234554be7621fd38fcad08a0c7.1765197209.git.haseeb.ashraf@siemens.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1765197209.git.haseeb.ashraf@siemens.com>
References: <cover.1765197209.git.haseeb.ashraf@siemens.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Haseeb Ashraf <haseeb.ashraf@siemens.com>

FEAT_nTLBPA (quoting definition) introduces a mechanism to identify
if the intermediate caching of translation table walks does not
include non-coherent caches of previous valid translation table
entries since the last completed TLBI applicable to the PE.

As there won't be any non-coherent caches since the last completed
TLBI, stage-1 TLBI won't be required while performing stage-2 TLBI.

This feature is optionally available in both arm32 and arm64.

Suggested-by: Mohamed Mediouni <mohamed@unpredictable.fr>
Signed-off-by: Haseeb Ashraf <haseeb.ashraf@siemens.com>

Changes in v3:
- This commit has no functional change in v3, only rebasing changes
  due to updates in commit-1.

Changes in v2:
- This commit is implemented in v2 and is splitted from commit-1 in
  v1. This is implemented by using CPU capability.
---
 xen/arch/arm/cpufeature.c                 | 19 ++++++
 xen/arch/arm/include/asm/arm32/flushtlb.h | 14 +++--
 xen/arch/arm/include/asm/arm64/flushtlb.h | 77 ++++++++++++++++-------
 xen/arch/arm/include/asm/cpufeature.h     | 24 ++++++-
 xen/arch/arm/include/asm/processor.h      |  7 +++
 5 files changed, 109 insertions(+), 32 deletions(-)

diff --git a/xen/arch/arm/cpufeature.c b/xen/arch/arm/cpufeature.c
index 1a80738571..9fa1c45869 100644
--- a/xen/arch/arm/cpufeature.c
+++ b/xen/arch/arm/cpufeature.c
@@ -17,7 +17,19 @@ DECLARE_BITMAP(cpu_hwcaps, ARM_NCAPS);
 
 struct cpuinfo_arm __read_mostly domain_cpuinfo;
 
+#ifdef CONFIG_ARM_32
+static bool has_ntlbpa(const struct arm_cpu_capabilities *entry)
+{
+    return system_cpuinfo.mm32.ntlbpa == MM32_NTLBPA_SUPPORT_IMP;
+}
+#endif
+
 #ifdef CONFIG_ARM_64
+static bool has_ntlbpa(const struct arm_cpu_capabilities *entry)
+{
+    return system_cpuinfo.mm64.ntlbpa == MM64_NTLBPA_SUPPORT_IMP;
+}
+
 static bool has_sb_instruction(const struct arm_cpu_capabilities *entry)
 {
     return system_cpuinfo.isa64.sb;
@@ -25,6 +37,13 @@ static bool has_sb_instruction(const struct arm_cpu_capabilities *entry)
 #endif
 
 static const struct arm_cpu_capabilities arm_features[] = {
+#if defined(CONFIG_ARM_32) || defined(CONFIG_ARM_64)
+    {
+        .desc = "Intermediate caching of translation table walks (nTLBPA)",
+        .capability = ARM_HAS_NTLBPA,
+        .matches = has_ntlbpa,
+    },
+#endif
 #ifdef CONFIG_ARM_64
     {
         .desc = "Speculation barrier instruction (SB)",
diff --git a/xen/arch/arm/include/asm/arm32/flushtlb.h b/xen/arch/arm/include/asm/arm32/flushtlb.h
index 3c0c2123d4..7cff042508 100644
--- a/xen/arch/arm/include/asm/arm32/flushtlb.h
+++ b/xen/arch/arm/include/asm/arm32/flushtlb.h
@@ -49,8 +49,8 @@ TLB_HELPER(flush_xen_tlb_local, TLBIALLH, nsh)
  * Flush TLB of local processor. Use when flush for only stage-1 is intended.
  *
  * The following function should be used where intention is to clear only
- * stage-1 TLBs. This would be helpful in future in identifying which stage-1
- * TLB flushes can be skipped such as in present of FEAT_nTLBPA.
+ * stage-1 TLBs. This would be helpful in identifying which stage-1 TLB flushes
+ * can be skipped such as in present of FEAT_nTLBPA.
  */
 static inline void flush_guest_tlb_s1_local(void)
 {
@@ -60,7 +60,8 @@ static inline void flush_guest_tlb_s1_local(void)
      *
      * See ARMv8 (DDI 0487L.b): G5-11698 Table G5-23.
      */
-    return flush_guest_tlb_local();
+    if ( !cpus_have_const_cap(ARM_HAS_NTLBPA) )
+        flush_guest_tlb_local();
 }
 
 /*
@@ -68,8 +69,8 @@ static inline void flush_guest_tlb_s1_local(void)
  * stage-1 is intended.
  *
  * The following function should be used where intention is to clear only
- * stage-1 TLBs. This would be helpful in future in identifying which stage-1
- * TLB flushes can be skipped such as in present of FEAT_nTLBPA.
+ * stage-1 TLBs. This would be helpful in identifying which stage-1 TLB flushes
+ * can be skipped such as in present of FEAT_nTLBPA.
  */
 static inline void flush_guest_tlb_s1(void)
 {
@@ -79,7 +80,8 @@ static inline void flush_guest_tlb_s1(void)
      *
      * See ARMv8 (DDI 0487L.b): G5-11698 Table G5-23.
      */
-    return flush_guest_tlb();
+    if ( !cpus_have_const_cap(ARM_HAS_NTLBPA) )
+        flush_guest_tlb();
 }
 
 /* Flush TLB of local processor for address va. */
diff --git a/xen/arch/arm/include/asm/arm64/flushtlb.h b/xen/arch/arm/include/asm/arm64/flushtlb.h
index 67ae616993..0f0d5050e5 100644
--- a/xen/arch/arm/include/asm/arm64/flushtlb.h
+++ b/xen/arch/arm/include/asm/arm64/flushtlb.h
@@ -47,6 +47,24 @@ static inline void name(void)                    \
         : : : "memory");                         \
 }
 
+#define TLB_HELPER_NTLBPA(name, tlbop, sh)           \
+static inline void name(void)                        \
+{                                                    \
+    if ( !cpus_have_const_cap(ARM_HAS_NTLBPA) )      \
+        asm_inline volatile (                        \
+            "dsb  "  # sh  "st;"                     \
+            "tlbi "  # tlbop  ";"                    \
+            ALTERNATIVE(                             \
+                "nop; nop;",                         \
+                "dsb  ish;"                          \
+                "tlbi "  # tlbop  ";",               \
+                ARM64_WORKAROUND_REPEAT_TLBI,        \
+                CONFIG_ARM64_WORKAROUND_REPEAT_TLBI) \
+            "dsb  "  # sh  ";"                       \
+            "isb;"                                   \
+            : : : "memory");                         \
+}
+
 /*
  * FLush TLB by VA. This will likely be used in a loop, so the caller
  * is responsible to use the appropriate memory barriers before/after
@@ -75,10 +93,10 @@ TLB_HELPER(flush_guest_tlb_local, vmalls12e1, nsh)
 TLB_HELPER(flush_guest_tlb, vmalls12e1is, ish)
 
 /* Flush local TLBs, current VMID, stage-1 only */
-TLB_HELPER(flush_guest_tlb_s1_local, vmalle1, nsh)
+TLB_HELPER_NTLBPA(flush_guest_tlb_s1_local, vmalle1, nsh)
 
 /* Flush innershareable TLBs, current VMID, stage-1 only */
-TLB_HELPER(flush_guest_tlb_s1, vmalle1is, ish)
+TLB_HELPER_NTLBPA(flush_guest_tlb_s1, vmalle1is, ish)
 
 /* Flush local TLBs, all VMIDs, non-hypervisor mode */
 TLB_HELPER(flush_all_guests_tlb_local, alle1, nsh)
@@ -104,8 +122,6 @@ TLB_HELPER_VA(__flush_xen_tlb_one, vae2is)
  */
 static inline void flush_guest_tlb_range_ipa(paddr_t ipa, unsigned long size)
 {
-    paddr_t end;
-
     /*
      * If IPA range is too big (empirically found to be 256M), then fallback to
      * full TLB flush.
@@ -113,27 +129,42 @@ static inline void flush_guest_tlb_range_ipa(paddr_t ipa, unsigned long size)
     if ( size > SZ_256M )
         return flush_guest_tlb();
 
-    end = ipa + size;
-
-    /*
-     * See ARM ARM DDI 0487L.b D8.17.6.1 (Invalidating TLB entries from stage 2
-     * translations) for details of TLBI sequence.
-     */
-    dsb(ishst); /* Ensure prior page-tables updates have completed */
-    while ( ipa < end )
+    else if ( size > 0 )
     {
-        /* Flush stage-2 TLBs for ipa address */
-        asm_inline volatile (
-            "tlbi ipas2e1is, %0;" : : "r" (ipa >> PAGE_SHIFT) : "memory" );
-        ipa += PAGE_SIZE;
+        paddr_t end = ipa + size;
+
+        /*
+         * See ARM ARM DDI 0487L.b D8.17.6.1 (Invalidating TLB entries from
+         * stage 2 translations) for details on TLBI sequence.
+         */
+        dsb(ishst); /* Ensure prior page-tables updates have completed */
+        while ( ipa < end )
+        {
+            /* Flush stage-2 TLBs for ipa address */
+            asm_inline volatile (
+                "tlbi ipas2e1is, %0;" : : "r" (ipa >> PAGE_SHIFT) : "memory" );
+            ipa += PAGE_SIZE;
+        }
+        if ( cpus_have_const_cap(ARM_HAS_NTLBPA) )
+            asm_inline volatile (
+                ALTERNATIVE(
+                    "nop; nop;",
+                    "dsb  ish;"
+                    "tlbi ipas2e1is, %0;",
+                    ARM64_WORKAROUND_REPEAT_TLBI,
+                    CONFIG_ARM64_WORKAROUND_REPEAT_TLBI)
+                "dsb  ish;"
+                "isb;"
+                : : "r" ((ipa - PAGE_SIZE) >> PAGE_SHIFT) : "memory" );
+        else
+            /*
+             * As ARM64_WORKAROUND_REPEAT_TLBI is required to be applied to
+             * last TLBI of the sequence, it is only needed to be handled in
+             * the following invocation. Final dsb() and isb() are also applied
+             * in the following invocation.
+             */
+            flush_guest_tlb_s1();
     }
-    /*
-     * As ARM64_WORKAROUND_REPEAT_TLBI is required to be applied to last TLBI
-     * of the sequence, it is only needed to be handled in the following
-     * invocation. Final dsb() and isb() are also applied in the following
-     * invocation.
-     */
-    flush_guest_tlb_s1();
 }
 
 #endif /* __ASM_ARM_ARM64_FLUSHTLB_H__ */
diff --git a/xen/arch/arm/include/asm/cpufeature.h b/xen/arch/arm/include/asm/cpufeature.h
index 13353c8e1a..9f796ed4c1 100644
--- a/xen/arch/arm/include/asm/cpufeature.h
+++ b/xen/arch/arm/include/asm/cpufeature.h
@@ -76,8 +76,9 @@
 #define ARM_WORKAROUND_BHB_SMCC_3 15
 #define ARM_HAS_SB 16
 #define ARM64_WORKAROUND_1508412 17
+#define ARM_HAS_NTLBPA 18
 
-#define ARM_NCAPS           18
+#define ARM_NCAPS           19
 
 #ifndef __ASSEMBLER__
 
@@ -269,7 +270,8 @@ struct cpuinfo_arm {
             unsigned long ets:4;
             unsigned long __res1:4;
             unsigned long afp:4;
-            unsigned long __res2:12;
+            unsigned long ntlbpa:4;
+            unsigned long __res2:8;
             unsigned long ecbhb:4;
 
             /* MMFR2 */
@@ -430,8 +432,24 @@ struct cpuinfo_arm {
         register_t bits[1];
     } aux32;
 
-    struct {
+    union {
         register_t bits[6];
+        struct {
+            /* MMFR0 */
+            unsigned long __res0:32;
+            /* MMFR1 */
+            unsigned long __res1:32;
+            /* MMFR2 */
+            unsigned long __res2:32;
+            /* MMFR3 */
+            unsigned long __res3:32;
+            /* MMFR4 */
+            unsigned long __res4:32;
+            /* MMFR5 */
+            unsigned long __res5:4;
+            unsigned long ntlbpa:4;
+            unsigned long __res6:24;
+        };
     } mm32;
 
     struct {
diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
index 1a48c9ff3b..85f3b643a0 100644
--- a/xen/arch/arm/include/asm/processor.h
+++ b/xen/arch/arm/include/asm/processor.h
@@ -459,9 +459,16 @@
 /* FSR long format */
 #define FSRL_STATUS_DEBUG       (_AC(0x22,UL)<<0)
 
+#ifdef CONFIG_ARM_32
+#define MM32_NTLBPA_SUPPORT_NI      0x0
+#define MM32_NTLBPA_SUPPORT_IMP     0x1
+#endif
+
 #ifdef CONFIG_ARM_64
 #define MM64_VMID_8_BITS_SUPPORT    0x0
 #define MM64_VMID_16_BITS_SUPPORT   0x2
+#define MM64_NTLBPA_SUPPORT_NI      0x0
+#define MM64_NTLBPA_SUPPORT_IMP     0x1
 #endif
 
 #ifndef __ASSEMBLER__
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 13:55:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 13:55:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180641.1503813 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbiO-0005xr-8z; Mon, 08 Dec 2025 13:55:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180641.1503813; Mon, 08 Dec 2025 13:55:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSbiO-0005xi-3d; Mon, 08 Dec 2025 13:55:48 +0000
Received: by outflank-mailman (input) for mailman id 1180641;
 Mon, 08 Dec 2025 13:55:46 +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
 <SRS0=22jW=6O=gmail.com=haseebashraf091@srs-se1.protection.inumbo.net>)
 id 1vSbiM-00055Z-SP
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 13:55:46 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 98332bf2-d43d-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 14:55:46 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4775e891b5eso22220355e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 05:55:46 -0800 (PST)
Received: from PKL-HASEEBA-LT.. ([39.36.89.17])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4792afe32cbsm144746585e9.0.2025.12.08.05.55.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Dec 2025 05:55:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 98332bf2-d43d-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765202145; x=1765806945; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MPopwKkyNB/YxawSKEN75nDXwr6v2rb4f3Mwy9XTqs4=;
        b=LaWRiAWH3U9p2RIolrxorVorRddIpUL9KEB4qmQO3ep2pEvJKXhfLOSTmTHsqABJs9
         WgiRp31Po7IXsXe/f6DWKKYIrN1Ki1vwc0+lq2tGfQGcub6iU7ep3WWj+mlytms/2M54
         0HSpMEhGCwPVGqf688jmiEHCmMoZGHVNyb+5h9Iav3Bdu+Pcjzti1AaAusFiy8wgr6+Z
         zBKlqwtQ+pBTndaaMkwYlSZMk6YnSQa0Ql3r4L2XX6s0NAJoXO9CebaomAZoSWpINS0/
         KYTiIFbv2SCjnRl/3RcARj5LoaFfuzwyRL0J1nmJLdFwfWL1eW5MqPyDk3KBS5zeodl4
         MZtg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765202145; x=1765806945;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=MPopwKkyNB/YxawSKEN75nDXwr6v2rb4f3Mwy9XTqs4=;
        b=M6L7RUGwLfWWH54Z83MIpHf1LqljWqp6syF/plFznR8fcyHWXxoq7FGkYB/RfWXBHk
         vkL29rO1ZyNNbZU6VQgD4OnLC/fvU4sn0Q1PwESGx2oL79itHpwI3AHhVO4gEJPrWpta
         X3Tw70DJXDqEYlHFeeOMnyDxCX8rJ4uDi8yGsiIpLQb/2lsetrbzEwtvLspBZprPd7Io
         uquk28i/5C7XHtL4gtbZtk1NliJPxNA9wgOzVcBzCM+AktnpYVrqF33l8zNHk3NZu/OV
         5KXD7KYkeU5a80VOSAxA2I8D2yiw1KIN+TI1EslUBgsl6NDjnLbDPj0Em11UknGWgr3E
         qFEQ==
X-Gm-Message-State: AOJu0YyZJTCjhnaDEjFWyBHKlVCRlWvSfPDRmg1D0ioNP/E+ozotSmUa
	wcbForT1pHwk0qKfuBVCfCH7jHXsldhFVNNMEsCYorWCvQWD+tBKq27lTWGZ+LiN
X-Gm-Gg: ASbGncsAfp2XKwc0auVl9Pxaeo4v6VMQwD1VcAxi1nWYxTcY5zJtbc/huJemPVaLyJX
	HKc1c81Vi9baV3D39TiN+eoXFEMB79lh+anYFz0IGkq00YUCdlDZpVIUVNq49SJZkrrWVK03Y9m
	evTu4hkPaWWO6JSIqtZXW/EVWhzaOEi4ndvsx+oHMMzmoAZcDt+NDJPopR3UPnbLquXn50AcfSa
	tMF8igiw7nhCKEhQ2Ogmkmg/u1S24giVE/NE4RL4e9H+BVCB2sLAiMaupDm0Q8/44tAnor1QQZd
	/VKo8M7lgEQj2YbMm/3jmstQqzhlmcWTpasmsINxgln2D+d3voyhqx/uGMKWWZtoMJEgsmpqF5S
	QoLHpkehchB4oWHtnjl8KBxZWkTRcqjwAk4LIvj166alwYkazRiT59iNyiBGwX5D3GXs76g1BAb
	lfl2W4rKR5sPb5du3gKL/V+w6wNZM1MJ1ML2IF4CVM+Gs0Php3
X-Google-Smtp-Source: AGHT+IFKsQ6KVKizbOCvWoWILsKDhV/jKkHa/MC30/90rsJ7rWCeFy9yjpUbWDLrWUqCwyT+/BK/SQ==
X-Received: by 2002:a05:600c:a43:b0:47a:75b6:32c with SMTP id 5b1f17b1804b1-47a7b17cfdfmr4106165e9.2.1765202145199;
        Mon, 08 Dec 2025 05:55:45 -0800 (PST)
From: Haseeb Ashraf <haseebashraf091@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Haseeb Ashraf <haseeb.ashraf@siemens.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Dan Driscoll <dan.driscoll@siemens.com>,
	Noor Ahsan Khawaja <noor.ahsan@siemens.com>,
	Fahad Arslan <fahad.arslan@siemens.com>,
	Andrew Bachtel <andrew.bachtel@siemens.com>
Subject: [PATCH 3/3] xen/arm32: add CPU capability for IPA-based TLBI
Date: Mon,  8 Dec 2025 18:55:16 +0500
Message-ID: <68ad0721305814f6d7081223df4039b71627ae1f.1765197209.git.haseeb.ashraf@siemens.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1765197209.git.haseeb.ashraf@siemens.com>
References: <cover.1765197209.git.haseeb.ashraf@siemens.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Haseeb Ashraf <haseeb.ashraf@siemens.com>

This feature is available since armv8 and can be used to perform
IPA-based TLBI for arm32. XENMEM_remove_from_physmap performs this
invalidation in each hypercall so this code path will be optimized,
instead of performing a TLBIALL each time in presence of nTLBPA.

Suggested-by: Julien Grall <julien@xen.org>
Signed-off-by: Haseeb Ashraf <haseeb.ashraf@siemens.com>

Changes in v3:
- There are no functional changes in this version. There are minor
  code updates and comment updates as per the feedback on v2.
- The cpregs are defined in order as per Coprocessor-> CRn-> Opcode 1
  -> CRm-> Opcode 2.
- Added comment to explain why IPA-based TLBI is added only in
  presence of FEAT_nTLBPA.
- Replaced `goto default_tlbi` with if...else.
- Removed extra definitions of MM32_UNITLB_* macros which were not
  being used.

Changes in v2:
- This commit is implemented in v2 as per the feedback to implement
  IPA-based TLBI for Arm32 in addition to Arm64.
---
 xen/arch/arm/cpufeature.c                 | 12 +++++++
 xen/arch/arm/include/asm/arm32/flushtlb.h | 42 ++++++++++++++++++++---
 xen/arch/arm/include/asm/cpregs.h         |  4 +++
 xen/arch/arm/include/asm/cpufeature.h     | 15 ++++----
 xen/arch/arm/include/asm/processor.h      |  3 ++
 5 files changed, 65 insertions(+), 11 deletions(-)

diff --git a/xen/arch/arm/cpufeature.c b/xen/arch/arm/cpufeature.c
index 9fa1c45869..d18c6449c6 100644
--- a/xen/arch/arm/cpufeature.c
+++ b/xen/arch/arm/cpufeature.c
@@ -18,6 +18,11 @@ DECLARE_BITMAP(cpu_hwcaps, ARM_NCAPS);
 struct cpuinfo_arm __read_mostly domain_cpuinfo;
 
 #ifdef CONFIG_ARM_32
+static bool has_tlb_ipa_instruction(const struct arm_cpu_capabilities *entry)
+{
+    return system_cpuinfo.mm32.unitlb == MM32_UNITLB_BY_IPA;
+}
+
 static bool has_ntlbpa(const struct arm_cpu_capabilities *entry)
 {
     return system_cpuinfo.mm32.ntlbpa == MM32_NTLBPA_SUPPORT_IMP;
@@ -37,6 +42,13 @@ static bool has_sb_instruction(const struct arm_cpu_capabilities *entry)
 #endif
 
 static const struct arm_cpu_capabilities arm_features[] = {
+#ifdef CONFIG_ARM_32
+    {
+        .desc = "IPA-based TLB Invalidation",
+        .capability = ARM32_HAS_TLB_IPA,
+        .matches = has_tlb_ipa_instruction,
+    },
+#endif
 #if defined(CONFIG_ARM_32) || defined(CONFIG_ARM_64)
     {
         .desc = "Intermediate caching of translation table walks (nTLBPA)",
diff --git a/xen/arch/arm/include/asm/arm32/flushtlb.h b/xen/arch/arm/include/asm/arm32/flushtlb.h
index 7cff042508..3e6f86f6d2 100644
--- a/xen/arch/arm/include/asm/arm32/flushtlb.h
+++ b/xen/arch/arm/include/asm/arm32/flushtlb.h
@@ -1,6 +1,8 @@
 #ifndef __ASM_ARM_ARM32_FLUSHTLB_H__
 #define __ASM_ARM_ARM32_FLUSHTLB_H__
 
+#include <xen/sizes.h> /* For SZ_* macros. */
+
 /*
  * Every invalidation operation use the following patterns:
  *
@@ -104,12 +106,42 @@ static inline void flush_guest_tlb_range_ipa(paddr_t ipa,
                                              unsigned long size)
 {
     /*
-     * Following can invalidate both stage-1 and stage-2 TLBs depending upon
-     * the execution mode.
-     *
-     * See ARMv8 (DDI 0487L.b): G5-11698 Table G5-23.
+     * IPA-based TLBI is used only in presence of nTLBPA, otherwise, stage-1
+     * invalidation would still be required and there is no separate TLBI for
+     * stage-1 on Arm32. So in absence of nTLBPA, it is pointless to flush by
+     * IPA.
      */
-    flush_guest_tlb();
+    if ( cpus_have_const_cap(ARM_HAS_NTLBPA) &&
+         cpus_have_const_cap(ARM32_HAS_TLB_IPA) )
+    {
+        /*
+         * If IPA range is too big (empirically found to be 256M), then
+         * fallback to full TLB flush
+         */
+        if ( size > SZ_256M )
+            /*
+             * Following can invalidate both stage-1 and stage-2 TLBs depending
+             * upon the execution mode.
+             *
+             * See ARMv8 (DDI 0487L.b): G5-11698 Table G5-23.
+             */
+            flush_guest_tlb();
+        else
+        {
+            paddr_t end = ipa + size;
+
+            dsb(ishst); /* Ensure prior page-tables updates have completed */
+            while ( ipa < end )
+            {
+                /* Flush stage-2 TLBs for ipa address. */
+                asm volatile(STORE_CP32(0, TLBIIPAS2IS)
+                             : : "r" (ipa >> PAGE_SHIFT) : "memory");
+                ipa += PAGE_SIZE;
+            }
+            dsb(ish);
+            isb();
+        }
+    }
 }
 
 #endif /* __ASM_ARM_ARM32_FLUSHTLB_H__ */
diff --git a/xen/arch/arm/include/asm/cpregs.h b/xen/arch/arm/include/asm/cpregs.h
index a7503a190f..51f091dace 100644
--- a/xen/arch/arm/include/asm/cpregs.h
+++ b/xen/arch/arm/include/asm/cpregs.h
@@ -223,9 +223,13 @@
 #define TLBIMVA         p15,0,c8,c7,1   /* invalidate unified TLB entry by MVA */
 #define TLBIASID        p15,0,c8,c7,2   /* invalid unified TLB by ASID match */
 #define TLBIMVAA        p15,0,c8,c7,3   /* invalidate unified TLB entries by MVA all ASID */
+#define TLBIIPAS2IS     p15,4,c8,c0,1   /* Invalidate unified TLB entry for stage 2 by IPA inner shareable */
+#define TLBIIPAS2LIS    p15,4,c8,c0,5   /* Invalidate unified TLB entry for stage 2 last level by IPA inner shareable */
 #define TLBIALLHIS      p15,4,c8,c3,0   /* Invalidate Entire Hyp. Unified TLB inner shareable */
 #define TLBIMVAHIS      p15,4,c8,c3,1   /* Invalidate Unified Hyp. TLB by MVA inner shareable */
 #define TLBIALLNSNHIS   p15,4,c8,c3,4   /* Invalidate Entire Non-Secure Non-Hyp. Unified TLB inner shareable */
+#define TLBIIPAS2       p15,4,c8,c4,1   /* Invalidate unified TLB entry for stage 2 by IPA */
+#define TLBIIPAS2L      p15,4,c8,c4,5   /* Invalidate unified TLB entry for stage 2 last level by IPA */
 #define TLBIALLH        p15,4,c8,c7,0   /* Invalidate Entire Hyp. Unified TLB */
 #define TLBIMVAH        p15,4,c8,c7,1   /* Invalidate Unified Hyp. TLB by MVA */
 #define TLBIALLNSNH     p15,4,c8,c7,4   /* Invalidate Entire Non-Secure Non-Hyp. Unified TLB */
diff --git a/xen/arch/arm/include/asm/cpufeature.h b/xen/arch/arm/include/asm/cpufeature.h
index 9f796ed4c1..07f1d770b3 100644
--- a/xen/arch/arm/include/asm/cpufeature.h
+++ b/xen/arch/arm/include/asm/cpufeature.h
@@ -77,8 +77,9 @@
 #define ARM_HAS_SB 16
 #define ARM64_WORKAROUND_1508412 17
 #define ARM_HAS_NTLBPA 18
+#define ARM32_HAS_TLB_IPA 19
 
-#define ARM_NCAPS           19
+#define ARM_NCAPS           20
 
 #ifndef __ASSEMBLER__
 
@@ -440,15 +441,17 @@ struct cpuinfo_arm {
             /* MMFR1 */
             unsigned long __res1:32;
             /* MMFR2 */
-            unsigned long __res2:32;
+            unsigned long __res2:16;
+            unsigned long unitlb:4;
+            unsigned long __res3:12;
             /* MMFR3 */
-            unsigned long __res3:32;
-            /* MMFR4 */
             unsigned long __res4:32;
+            /* MMFR4 */
+            unsigned long __res5:32;
             /* MMFR5 */
-            unsigned long __res5:4;
+            unsigned long __res6:4;
             unsigned long ntlbpa:4;
-            unsigned long __res6:24;
+            unsigned long __res7:24;
         };
     } mm32;
 
diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
index 85f3b643a0..eda39566e1 100644
--- a/xen/arch/arm/include/asm/processor.h
+++ b/xen/arch/arm/include/asm/processor.h
@@ -460,6 +460,9 @@
 #define FSRL_STATUS_DEBUG       (_AC(0x22,UL)<<0)
 
 #ifdef CONFIG_ARM_32
+#define MM32_UNITLB_NI              0x0
+#define MM32_UNITLB_BY_IPA          0x6
+
 #define MM32_NTLBPA_SUPPORT_NI      0x0
 #define MM32_NTLBPA_SUPPORT_IMP     0x1
 #endif
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 13:58:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 13:58:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180682.1503821 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSblI-0007kl-LA; Mon, 08 Dec 2025 13:58:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180682.1503821; Mon, 08 Dec 2025 13:58:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSblI-0007ke-Hw; Mon, 08 Dec 2025 13:58:48 +0000
Received: by outflank-mailman (input) for mailman id 1180682;
 Mon, 08 Dec 2025 13:58:47 +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 <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSbj3-00055Z-Kw
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 13:56:29 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b11265df-d43d-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 14:56:27 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-42e2e445dbbso2091462f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 05:56:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d2226e7sm26734980f8f.27.2025.12.08.05.56.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 05:56:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b11265df-d43d-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765202187; x=1765806987; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=k/Mwj4VDCQF1kv1iPIWkt2u1vsM6KWzStKn9r48K/nk=;
        b=Xm6IYm9QQZGf1Fqv0ghLWuNJtZz0BoTN37L6y31Y8YYbdUj6ovveIy4uGugkybCssS
         Ku9MDBffP8pOUGvl+Au6GAXfU0AZaXqA6pvFPK76vJgZDu1leysSgAxB1LLC9whUgpw+
         BW3JsLvcIkOL/iaDYucUDbpF894FAaf9dtjEiVlhs9Z4jyITG3cJQ1zNPt3UyLnhEs0V
         Rb4RjpJdunZha2YB7g+22dW+Qsfc7Ir7otdWmYVorEGVfBTtLQuWjfw2e2FW/TPuEyIM
         x8fG/j+8ENABP4LTAm3ffXDMHOnCkk/bB5t6B9gWSJzdOWPqQPuhMWmglwfTPmwjmWxx
         K9yw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765202187; x=1765806987;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=k/Mwj4VDCQF1kv1iPIWkt2u1vsM6KWzStKn9r48K/nk=;
        b=izXxs9FdlyDSx2v3+ppNmc8x/k5p2SeIWouexYEUw9kCsJks8ZIcpnXRrU4Nr55nbb
         6FgSvtILsg/BJMkJtQsG9Tsg4Mu+VEzi3wm/R8/0C59/4xuuaoK1pZ+pPwY54KVpqccB
         AFzw7Bst2xWD9W8FAgo9A8MdUAuo0xMhrWwFVuupD3JUgCDBIIraZ8tClVVTNqAVo5SO
         BC00TsCZVnv6TkZmtLq9qlHg/CUir2QnYV3ZnwFm5TC9wG9THHCRKpG6eet0WAx5C7m6
         q3uKgJiJBnux1jQZNlrheepuaiIa7Ysd36upIY7cj+p259KVrpP3kvtPyI5Y+C0u+PSA
         ZMjA==
X-Forwarded-Encrypted: i=1; AJvYcCXc7DvwiZ+j4V5A/lBxXgcXJKita7kJlIXzkFYVUanqb58oc9AKZvr3dG788tUE212u6oQb7itwcHU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyUlyaBAF1aXI89GLYUjnSxJ/TpJzzPbrDrQgnLxdJ37Tx66Ruh
	Q0Qwl8MSK82aFC8YrbDWvUFVnmqBmMClhUti+kBEQGJNyFzup6z+kKACo1bI0uh9mA==
X-Gm-Gg: ASbGncvFCZkt+8dFW4P7nhVlrqOx21ElL2QQiVsLXY5eHLcBwhAWiN6oq2H8WUlaDgS
	zyPfFahX6xKtzP9QoAVooX19yCCamCW0QscJaLo1miCPCM6UJN13SmesaAv7pH8sBIjSY3cq+n2
	fwQBs2ir4zod4sMcf4GpaBt9fj9f5LGpbETyad1oZ5xyONuKps/oI31b++ANSlhdk3vgpx0Ffyx
	qo0Atzs9FaUItYGg6EwGZUyZxs+4v4mbCn8ucXkCsILXX74W5yaDlDrgXwIP82l4IVOSzP8PDID
	I1CRZrjc/0ZrmpdQXaoWIw3wGc4oPzjvYQ49O3wo3d2974RGmthaA4zk/is0YiMslPV/b7JQ2Ee
	0M5bqrn2esllqttYFUktJ7J4a7Uy4EyN6lfKiMcRaT5cimYoZnkjIGYPEbrsaewYP0j5AsQWPXI
	EibNx8TlGBVBjKp9Ju8UTOc6yxzIoN0saNvv2AZyIo7YbNlT2X8J/c5WbsksulEi2NwJsmUKxUi
	gfyLUBRf/5tNg==
X-Google-Smtp-Source: AGHT+IG/Hmsmox7FWhsIrOVeaINQYewYNUrSEiuE2UMmB6AoOdefsVznMW5LQyC8kh8IfVXY5I1Y4g==
X-Received: by 2002:a5d:588c:0:b0:42b:3b8a:3090 with SMTP id ffacd0b85a97d-42f89f12857mr8332324f8f.23.1765202187263;
        Mon, 08 Dec 2025 05:56:27 -0800 (PST)
Message-ID: <f1964926-9b83-46df-838d-def42b0d7a53@suse.com>
Date: Mon, 8 Dec 2025 14:56:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 1/2] Do not attempt to workaround older binutils
To: Frediano Ziglio <frediano.ziglio@citrix.com>
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Frediano Ziglio <freddy77@gmail.com>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <20251208133945.61375-1-frediano.ziglio@citrix.com>
 <20251208133945.61375-2-frediano.ziglio@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251208133945.61375-2-frediano.ziglio@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.12.2025 14:39, Frediano Ziglio wrote:
> From: Frediano Ziglio <frediano.ziglio@cloud.com>
> 
> Older binutils versions do not handle correctly PE files.
> It looks like they could work if they don't produce debug information
> but they mess the PE file in other way like putting invalid
> flags in sections.
> For instance they set IMAGE_SCN_LNK_NRELOC_OVFL flag which should be
> set only if the number of relocations are more than 64K and not on
> executable (while xen.efi is an executable).
> Although some UEFI implementation do not check for these minor flags
> we should not allow building not working artifacts.

The sentence is self-contradictory imo: When "some UEFI implementation
do not check", what "not working artifacts" are you talking about?

> Also different tools will complain about the format (like
> objdump and strip).
> 
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

As said in reply to v9 - I don't think we should be taking this step
unless we can prove the generated binaries to be entirely unusable.
Which, again as said, contradicts my personal experience.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 13:59:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 13:59:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180688.1503832 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSblh-00089E-Sl; Mon, 08 Dec 2025 13:59:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180688.1503832; Mon, 08 Dec 2025 13:59:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSblh-000897-Pg; Mon, 08 Dec 2025 13:59:13 +0000
Received: by outflank-mailman (input) for mailman id 1180688;
 Mon, 08 Dec 2025 13:59:12 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vSblg-00088x-NB
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 13:59:12 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vSblf-0005fq-2x;
 Mon, 08 Dec 2025 13:59:12 +0000
Received: from [2a02:8012:3a1:0:55c6:6c20:a76e:cc19]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vSblg-005Qx2-02;
 Mon, 08 Dec 2025 13:59:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=q/gSLT5W0HlftcxYBIBbJXKMODHmxNE5EDQl/nus84U=; b=NJDKoXM/J8l6hlbivxITLle4UH
	W6UqNerhPTIYVpD5pQMs7WFsh6tjEFOotTSvf7VzE4GR6kB0QsbB9krgtXAd8ikzcW9nUDGNtZID0
	l14/gQ4VSbvOgRRYSbSw1ji/7I1BEsAYsZ/vMIOVW/d9cz55ykCooCryXOXE2lbHdhtM=;
Message-ID: <f7ea4b88-6f15-4608-9918-227bf9c82e3b@xen.org>
Date: Mon, 8 Dec 2025 13:59:10 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/8] symbols/arm: don't use symbols-dummy
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
 <f89a3d20-8194-4dc2-a38b-8788c070cd90@suse.com>
Content-Language: en-US
From: Julien Grall <julien@xen.org>
In-Reply-To: <f89a3d20-8194-4dc2-a38b-8788c070cd90@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 26/11/2025 13:42, Jan Beulich wrote:
> In particular when linking with lld, which converts hidden symbols to
> local ones, the ELF symbol table can change in unhelpful ways between the
> first two linking passes, resulting in the .rodata contributions to change
> between the 2nd and 3rd pass. That, however, renders our embedded symbol
> table pretty much unusable; the recently introduced self-test may then
> also fail. (Another difference between compiling a C file and assembling
> the generated ones is that - with -fdata-sections in use - the .rodata
> contributions move between passes 1 and 2, when we'd prefer them not to.)
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 14:21:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 14:21:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180710.1503841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSc6v-0004Vb-Gs; Mon, 08 Dec 2025 14:21:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180710.1503841; Mon, 08 Dec 2025 14:21:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSc6v-0004VU-EK; Mon, 08 Dec 2025 14:21:09 +0000
Received: by outflank-mailman (input) for mailman id 1180710;
 Mon, 08 Dec 2025 14:21:08 +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
 <SRS0=lLQx=6O=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vSc6u-0004VK-GA
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 14:21:08 +0000
Received: from mail-yx1-xb12d.google.com (mail-yx1-xb12d.google.com
 [2607:f8b0:4864:20::b12d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 227d0596-d441-11f0-9d1b-b5c5bf9af7f9;
 Mon, 08 Dec 2025 15:21:07 +0100 (CET)
Received: by mail-yx1-xb12d.google.com with SMTP id
 956f58d0204a3-640d4f2f13dso4418502d50.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 06:21:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 227d0596-d441-11f0-9d1b-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765203666; x=1765808466; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=Qe7gq2VKIcn5EN08gX/Zk6wHxhqOFMTU4yLkvGJknAE=;
        b=Tn9tR9ccXNKUirkGelndyMysly7RGnA5oTal3sTVSKeh1wO/PyaZIMuZypVz1qOGxu
         QGsYOb3A4t2UwGEvn8VN1cIMxXK1drHdsfxofGuaG57JeEibrGviOB/FiJ6SEa3kq/31
         i/i1n3Aj80D7aXOPRrtERl5HuazCHaMgxpHZDe33iJfVP3EFi9TvcmszWY04rUi/jQJT
         QErWewvw1Cr0KzYX6cPTrh6+72xc27oyB5xaINoao6OLgdl249DQVQPRGHqY9wmao3aE
         Qqj3ebrOU1v2KCFZK261IiAyTepVZ9mhYqnI9STx+w+y2HqBG7L86T6k9LvfpbdkXuU4
         ueFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765203666; x=1765808466;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Qe7gq2VKIcn5EN08gX/Zk6wHxhqOFMTU4yLkvGJknAE=;
        b=o3KMF8GFUcLOdSq8vzuQkX4ZYge5NhP5G29VyCut/HYJml8tGuhRHE9NRUNEr9Weye
         tfcZfwzGUqB19bWKYSleowt6qZLkB1uRJb0XorORMa64EyU/wZFpWFXP/1VzI2Xv+mHb
         q74YucCJySqVCqorEV1ap98hxNahWPjOEYKBXHp8K8jhz7oT6MLt3XpBe1dXV3btTjhv
         3Jf1ALYbLiHbo72LNwuIwBp13Xc/Gc+bMSrit86p+3oqNytlCId8vGKdsq6/7D8+xEJB
         zPzA7BgW8L+Z5pr8DABTLRYo7ElYKZFjgnmh4Hb5AE7A2yr1pxnNiEL4rwwfDf21C25Z
         GbMQ==
X-Forwarded-Encrypted: i=1; AJvYcCUz30FhwSggeCapiUrg5qYe/s+bz4Y9JpuQzZLw1f55BT/esp/fGt9/Lhiwu532GSj717yyLMfeFdY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxb6N0bI2DT/gLi9ZV04soKtTY2i5AnHYIU1vKvoYDtyZZhbNIf
	pstiB+WUOrHDrx97uEtTX3F9avjp+PgqHMO7ogxWPlM0nNlEj/Nk+PKDnHhUGFfgB4GqGCYscNV
	EllyPldJQU0CbE3cl6Q/Qvs/0wngCFl0=
X-Gm-Gg: ASbGncssdEkBWnvIXgFi388ES6LQmQn3XECfztp/guMvuLS1LVhFdKJq2r2xYEMoBoX
	gq0wsdOhahjr22AyCK1iKcc1jY7gy5aw+WlhIkOgjY50DdA73VqQdvvAXjSiB9qBnRKR05+m5WN
	dLbPHEK1avflTniiD5M0B96xFYFN5kln1Z80Fwsjj3I61D1ZenEZC8yNOCEcLUe2HIYJUhZ/FOA
	Grs4mNGv4XoRh7ZuJTrkysLmnDPSaxgRx/vs/zAkVhj9/w0PrnBFsZmKJlCdFpAphiuHVfms88U
	o41Iuw==
X-Google-Smtp-Source: AGHT+IE3MCZiH+pYIT5GmlJhdgfgiKGEQRDUJ/i2BY8SCpGosFVv7CF215o4ct0UcZWDP+Y8B/Bvonwdy2vNT0AZT64=
X-Received: by 2002:a05:690e:4259:b0:641:f5bc:69a0 with SMTP id
 956f58d0204a3-6444e7dda7dmr5092115d50.78.1765203665972; Mon, 08 Dec 2025
 06:21:05 -0800 (PST)
MIME-Version: 1.0
References: <20251208133945.61375-1-frediano.ziglio@citrix.com>
 <20251208133945.61375-2-frediano.ziglio@citrix.com> <f1964926-9b83-46df-838d-def42b0d7a53@suse.com>
In-Reply-To: <f1964926-9b83-46df-838d-def42b0d7a53@suse.com>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Mon, 8 Dec 2025 14:20:54 +0000
X-Gm-Features: AQt7F2pNx3JyI_po5YTv0bDIHgPKmeQaW6w3ZXtPxiCeE7hG80QhguPBqfWc5MM
Message-ID: <CAHt6W4czO9kYXuzbT-bmyuooeY__RhhU-gb4Rj4Wmgm5uPpjnw@mail.gmail.com>
Subject: Re: [PATCH v10 1/2] Do not attempt to workaround older binutils
To: Jan Beulich <jbeulich@suse.com>
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>, Frediano Ziglio <frediano.ziglio@cloud.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Demi Marie Obenour <demiobenour@gmail.com>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	Stewart Hildebrand <stewart.hildebrand@amd.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Mon, 8 Dec 2025 at 13:56, Jan Beulich <jbeulich@suse.com> wrote:
>
> On 08.12.2025 14:39, Frediano Ziglio wrote:
> > From: Frediano Ziglio <frediano.ziglio@cloud.com>
> >
> > Older binutils versions do not handle correctly PE files.
> > It looks like they could work if they don't produce debug information
> > but they mess the PE file in other way like putting invalid
> > flags in sections.
> > For instance they set IMAGE_SCN_LNK_NRELOC_OVFL flag which should be
> > set only if the number of relocations are more than 64K and not on
> > executable (while xen.efi is an executable).
> > Although some UEFI implementation do not check for these minor flags
> > we should not allow building not working artifacts.
>
> The sentence is self-contradictory imo: When "some UEFI implementation
> do not check", what "not working artifacts" are you talking about?
>

I cannot see the contradiction, some work, some not.

> > Also different tools will complain about the format (like
> > objdump and strip).
> >
> > Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> > Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
>
> As said in reply to v9 - I don't think we should be taking this step
> unless we can prove the generated binaries to be entirely unusable.

I prefer if the build produces 100% working instead of a russian roulette.

> Which, again as said, contradicts my personal experience.
>

I never said they never work. But implementations keep progressing and
there will be more of them improving their checks. For instance
currently implementations with enhanced memory protection will cause
early crashes.

> Jan

Frediano


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 14:25:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 14:25:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180723.1503852 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vScBO-000598-5h; Mon, 08 Dec 2025 14:25:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180723.1503852; Mon, 08 Dec 2025 14:25:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vScBO-000591-21; Mon, 08 Dec 2025 14:25:46 +0000
Received: by outflank-mailman (input) for mailman id 1180723;
 Mon, 08 Dec 2025 14:25:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vScBM-00058v-LT
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 14:25:44 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c6ac556e-d441-11f0-9cce-f158ae23cfc8;
 Mon, 08 Dec 2025 15:25:42 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-42b32ff5d10so3534655f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 06:25:42 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbe8a7bsm26010698f8f.4.2025.12.08.06.25.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 06:25:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c6ac556e-d441-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765203941; x=1765808741; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lfVKsbp0wK2PJxxs3skaIh9UqgiIuP9AliwNsROAmH8=;
        b=HJ6sFtBwkwa35jCZjJr69j6Jsc5Lp2MtIE7FQ0gx6Fi8wgjKGXv0uiL+MdLoKpFdx8
         AowlyCNt0+l20kWbE5SBr9idH/sadbfwp+Qkeey0B6crLTEj7qefK0QQsDsOKoAXkUPv
         9ICFR+poh/YY/gl+K0QrjsEpgJDSjhv5C4NLW66SCn8InWFxAlTbal+3fJBRNo2Sba3u
         fsW9SaRAkA8Sx8jiKJaeHbrOYXRebyFCzBba5Dzt+vUr3p7Y0NeBAlQ8YiO424LQ25TE
         V3XNK+CmDZ6FkMXsxFMTrAvqk/Ox/Gu0I0gq0IGkokm+fSgXtgu7kmwW2LkSGkn1Wsds
         ijiA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765203941; x=1765808741;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lfVKsbp0wK2PJxxs3skaIh9UqgiIuP9AliwNsROAmH8=;
        b=wmzWRACyXY2aNUuy2YMRXePrE7h05FsIImFnqdZk+9BYsn4tto5kWTtZA1GsIgtP3E
         484KnJBFhG56MF6ScGEHJWjGOXRg7d/JYzapaiElioezFmN5kEKXI8aNIJOdGgUO2hfS
         bO24MSJ7+sqPbVTM4A0v4taddwyB2w1egvsN/8vtujPPWCF/m3QBWqtrj/r0U3a8AJh7
         6c/ycEz5bMNIIC2UWzRhhH+3lhU2oQ8PMbzWnHy/Sif4GRCYvrZpxLr7AZa8/SLqSmw9
         khN197Bt1EPfrkY9FbOyBh2W+ZA6bhaocCH8stsjmxlOaD9B55z+e21NN6luMJPFYTjL
         vk5Q==
X-Forwarded-Encrypted: i=1; AJvYcCXaaoGlknySiXRZqUvCF9kWhVZoXp/e+L8vvEv8zQ60/RqdjFyEQJRP/VK288s6Y+yvY1WNkwDrPVM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy6kZ0eOc8NJGQSBcwYAVewKyLYWgqpWrj6QU9f2Ra6vWx7W+BQ
	PYKdVhvHbuxDCtfquNU8zqMVFvrLkGOYrCWYGb5Y74uPdctHWqMhumPS6uPIv1xJYw==
X-Gm-Gg: ASbGncvfwmZHTGtq2TQsrVcigUp++sSV32DkzFvrcs4MVvDVVJrJ4aXnIUamEoCBpL9
	STagwe8m+QKC6VixKWRiUdq2xS0n+k0UTcCl8uG/grRrDnDPjJ9RIz2e0P26iaHsvGWHj8oXQk4
	t05RZ/QJROYqsxjNEzKCRhHBeavllWhjeVQmUeWCWKlFBZY1hmdutKGAhqmcOxTx0KNP4Y1xnQ+
	sdJeHpdwU6B9pV8X7VrIwr3VRB5EzZExPpx03EanRl5SrSEL2m1YAulV38dVtbIGg/cvXCus0xn
	pyZw44SFrzvyySJoUt4Nq4M3dmZl/rQG6VhSFWR1YaSj3kly8MN/+xGorGlfo3ESVh2P1EcaMaG
	jvscZlWPYFmtQQYlIPnkZ86N3adNiko1f4BKYw4mpLLmjYSHtiyRTQ7P6SXyddMJ4RVncUm3aN7
	bOj580q23RWSPR3T888ppFHvVqhhAOG8jPsphXuKdsotOCGRWc+Yjxe9fQwNbVbYinnMVRbRYPc
	eo=
X-Google-Smtp-Source: AGHT+IHp4+cvwzEkLLOPf+wXXHEaeKUL6oPdZsPAZCLt/VXqQwtFJd3F0LSuLUMZIntN5ERT4S+iag==
X-Received: by 2002:a5d:5d01:0:b0:3ea:6680:8fb9 with SMTP id ffacd0b85a97d-42f89eafa46mr9696387f8f.3.1765203941385;
        Mon, 08 Dec 2025 06:25:41 -0800 (PST)
Message-ID: <df316e2f-9eb0-4bb8-96cd-e5e0c42d123e@suse.com>
Date: Mon, 8 Dec 2025 15:25:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/3] xen/riscv: introduce vSBI extension framework
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1764582112.git.oleksii.kurochko@gmail.com>
 <3b67330dc4c1aa053eb15261a559e7b4eac3f493.1764582112.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <3b67330dc4c1aa053eb15261a559e7b4eac3f493.1764582112.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.12.2025 11:24, Oleksii Kurochko wrote:
> This commit introduces support for handling virtual SBI extensions in Xen.
> 
> The changes include:
> - Added new vsbi.c and vsbi.h files to implement virtual SBI extension
>   handling.
> - Modified traps.c to handle CAUSE_VIRTUAL_SUPERVISOR_ECALL by calling
>   vsbi_handle_ecall() when the trap originates from VS-mode.
> - Updated xen.lds.S to include a new .vsbi.exts section for virtual SBI
>   extension data.
> - Updated Makefile to include the new vsbi/ directory in the build.
> - Add hstatus register to struct cpu_user_regs as it is needed for
>   a check that CAUSE_VIRTUAL_SUPERVISOR_ECALL happens from VS-mode.

I can spot the check, yes, but without the field ever being set how is one
to determine whether that check actually makes sense?

> The implementation allows for registration and handling of SBI
> extensions via a new vsbi_ext structure and ".vsbi.exts" section,
> enabling extensible virtual SBI support for RISC-V guests.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
>  xen/arch/riscv/Makefile                |  1 +
>  xen/arch/riscv/include/asm/processor.h |  1 +
>  xen/arch/riscv/include/asm/vsbi.h      | 31 +++++++++++++++++
>  xen/arch/riscv/traps.c                 |  8 +++++
>  xen/arch/riscv/vsbi/Makefile           |  1 +
>  xen/arch/riscv/vsbi/vsbi.c             | 46 ++++++++++++++++++++++++++

A file named identical to the directory it lives in raises the question of
why there is such a new sub-directory. Are you expecting moree files to
appear there? How's vsbi.c then be "special" compared to the others? Do
you perhaps mean someling like "core.c" or "common.c" here?

> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/vsbi.h
> @@ -0,0 +1,31 @@
> +/* SPDX-License-Identifier:  GPL-2.0-only */
> +
> +#ifndef ASM_RISCV_VSBI_H
> +#define ASM_RISCV_VSBI_H
> +
> +struct regs;

DYM struct cpu_user_regs?

> +struct vcpu;
> +
> +struct vsbi_ext {
> +    const char *name;
> +    unsigned long eid_start;
> +    unsigned long eid_end;
> +    int (*handle)(struct vcpu *vcpu, unsigned long eid,
> +                  unsigned long fid, struct cpu_user_regs *regs);

Nit: Maybe better "handler", as this isn't really a handle?

> +};
> +
> +#define VSBI_EXT_START(ext, extid_start, extid_end, extid_handle)   \

The extid_ prefixes aren't adding much value here, are they?

> +static const struct vsbi_ext vsbi_ext_##ext __used                  \
> +__section(".vsbi.exts") = {                                         \
> +    .name = #ext,                                                   \
> +    .eid_start = extid_start,                                       \
> +    .eid_end = extid_end,                                           \
> +    .handle = extid_handle,
> +
> +#define VSBI_EXT_END                                                \
> +};

There's no use here, and peeking ahead at the other two patches shows
no use where this odd split of the macros would be necessary. What is
this about?

> --- a/xen/arch/riscv/traps.c
> +++ b/xen/arch/riscv/traps.c
> @@ -15,6 +15,7 @@
>  #include <asm/processor.h>
>  #include <asm/riscv_encoding.h>
>  #include <asm/traps.h>
> +#include <asm/vsbi.h>
>  
>  /*
>   * Initialize the trap handling.
> @@ -114,6 +115,13 @@ void do_trap(struct cpu_user_regs *cpu_regs)
>  
>      switch ( cause )
>      {
> +    case CAUSE_VIRTUAL_SUPERVISOR_ECALL:
> +        if ( !(cpu_regs->hstatus & HSTATUS_SPV) )
> +            panic("CAUSE_VIRTUAL_SUPERVISOR_ECALL came not from VS-mode\n");

This might more naturally want to be BUG_ON()? Assuming of course the value
in question is exclusively under hypervisor control. Otherwise panic() would
also be wrong to use here.

> --- /dev/null
> +++ b/xen/arch/riscv/vsbi/vsbi.c
> @@ -0,0 +1,46 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/sched.h>
> +
> +#include <asm/processor.h>
> +#include <asm/sbi.h>
> +#include <asm/vsbi.h>
> +
> +extern const struct vsbi_ext _svsbi_exts[], _evsbi_exts[];
> +
> +const struct vsbi_ext *vsbi_find_extension(unsigned long ext_id)

static?

Also, again - is the ext_ prefix adding any value here?

> +{
> +    const struct vsbi_ext *vsbi_ext;
> +
> +    for ( vsbi_ext = _svsbi_exts; vsbi_ext != _evsbi_exts; vsbi_ext++ )
> +        if ( ext_id >= vsbi_ext->eid_start &&
> +             ext_id <= vsbi_ext->eid_end )
> +            return vsbi_ext;

What if multiple entries have overlapping EID ranges?

Also at the macro definition site please clarify (by way of a comment)
that these ramnges are inclusive (especially at the upper end).

> +void vsbi_handle_ecall(struct vcpu *vcpu, struct cpu_user_regs *regs)
> +{
> +    const unsigned long eid = regs->a7;
> +    const unsigned long fid = regs->a6;
> +    const struct vsbi_ext *ext = vsbi_find_extension(eid);
> +    int ret;
> +
> +    if ( ext && ext->handle )
> +        ret = ext->handle(vcpu, eid, fid, regs);

Is a registration record NULL handler pointer actually legitimate / useful?
(If there was range overlap checking I could see a reason to permit such.)

> +    else
> +    {
> +        printk("Unsupported Guest SBI EID #%#lx, FID #%lu\n", eid, regs->a1);

Are the #-es ahead of the %-s adding value here? Is printing an ID as
decimal going to be useful, when the value is pretty much arbitrary?

> +        ret = SBI_ERR_NOT_SUPPORTED;
> +    }
> +
> +    /*
> +     * The ecall instruction is not part of the RISC-V C extension (compressed
> +     * instructions), so it is always 4 bytes long. Therefore, it is safe to
> +     * use a fixed length of 4 bytes instead of reading guest memory to
> +     * determine the instruction length.
> +     */

And ECALL is also the sole possible cause of CAUSE_VIRTUAL_SUPERVISOR_ECALL?

> --- a/xen/arch/riscv/xen.lds.S
> +++ b/xen/arch/riscv/xen.lds.S
> @@ -91,6 +91,13 @@ SECTIONS
>  
>      DT_DEV_INFO                       /* Devicetree based device info */
>  
> +    . = ALIGN(POINTER_ALIGN);
> +    DECL_SECTION(.vsbi.exts) {
> +        _svsbi_exts = .;
> +        *(.vsbi.exts)
> +        _evsbi_exts = .;
> +    } :text

Isn't this read-only data? In which case it wants to move up ahead of _erodata?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 14:34:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 14:34:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180732.1503861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vScJX-00073O-TP; Mon, 08 Dec 2025 14:34:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180732.1503861; Mon, 08 Dec 2025 14:34:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vScJX-00073H-Qn; Mon, 08 Dec 2025 14:34:11 +0000
Received: by outflank-mailman (input) for mailman id 1180732;
 Mon, 08 Dec 2025 14:34:10 +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
 <SRS0=TwXn=6O=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vScJV-00073B-Qr
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 14:34:10 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f2d2c211-d442-11f0-b15b-2bf370ae4941;
 Mon, 08 Dec 2025 15:34:07 +0100 (CET)
Received: from BN1PR13CA0018.namprd13.prod.outlook.com (2603:10b6:408:e2::23)
 by CH3PR12MB7499.namprd12.prod.outlook.com (2603:10b6:610:142::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 14:34:01 +0000
Received: from BN1PEPF00004682.namprd03.prod.outlook.com
 (2603:10b6:408:e2:cafe::82) by BN1PR13CA0018.outlook.office365.com
 (2603:10b6:408:e2::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.6 via Frontend Transport; Mon, 8
 Dec 2025 14:34:01 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN1PEPF00004682.mail.protection.outlook.com (10.167.243.88) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Mon, 8 Dec 2025 14:34:01 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 8 Dec
 2025 08:34:01 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 8 Dec 2025 06:33:59 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f2d2c211-d442-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dnA+9yi1XGZqdaTvue0S/uxKI/OLojCl3YL5eqwcw8dGTFHv4AK+flSHxrOVyeBDyual5rNszPmjzhNxyadzamITi72UAGuw4v8zpNU0evo40ymGWl4FWap6DfLBmrPxQqONJxo9CLrRF3GmxgulyxAIz3k+Psj1OA5ddlMFuMMuRqcO2cag7Xtp5djD2WBo/RkcQEXypTZG0lg/ElfMt50O8f9Gp26/L0HCeq2xGRX844IdlwJAOW7et2Yb/TP6KNwUiqUh9vScFxmJwYXK+enOoyoTUsxSyoEc0NzuPdzog7wT/RtzW0oOJPEiwDu3FX19QO9f6qDGhaxwN5B2uQ==
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=sDnVjRbgSYqxpkoxSP68C4S9GvBlqNNyIj1+ypoGNoo=;
 b=PfcnJdidg0GGfErkDc4tBW9+B3Bkd905sQUJFA3veLlInVwuiK/pl+6ZGP/Ytbo/P/7vohsQsyNCGWb/CmUWxf+aHQrwZ/t6U7u6GhYFpdJZvxjGmhuzaPyJYzmMxSlo03a30XQgXQDRRZuy4TX4CuUrBd2NHeWWMLmBwrmIBwt61wNrpc2SfNymRnrSEkvUBRxZqxkwA26lz0jNVqh4wQi9aERANP/FZTrKDE6QV9VU+13SmmBaguhV+fwf2kGvFjVWZbdceSWW+BVbQryXGr207Mv6Z/lzbRW4DurclE6hg9GK9cz8BBMgJLaDL+2RfCQpvNDWosnGgnW9a/j2Ow==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sDnVjRbgSYqxpkoxSP68C4S9GvBlqNNyIj1+ypoGNoo=;
 b=b1h9M1ULBV3wBpdsw9IXbelp1ejWSl6rVFLRNOfhd7IezOB3c3PGfMpSGu2fgoyalaHaxS/Sn3Mij7iMhP3SU0rivFOU+5Zc3HYTjk7a1wmTvEyVlaYNTVk8Q86SAQDGSBOQuVk/m2lOgVOUOrwgUigM7JnCMOiDTbOtxMIf98s=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <ebdd9260-0f66-4bb2-9c11-8b328c5ea799@amd.com>
Date: Mon, 8 Dec 2025 15:33:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/3] arm/ppc/riscv: drop unused
 domain_set_alloc_bitsize() macro
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, Connor
 Davis <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Jan Beulich <jbeulich@suse.com>
References: <20251128152218.3886583-1-grygorii_strashko@epam.com>
 <20251128152218.3886583-2-grygorii_strashko@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20251128152218.3886583-2-grygorii_strashko@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004682:EE_|CH3PR12MB7499:EE_
X-MS-Office365-Filtering-Correlation-Id: 1094a903-dd48-4cdf-f85c-08de3666d486
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|7416014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?aGlLaE4vcjlKS1VjN2pUemVKcEl0SEc3bm9GWGNyalliNlozQjRNK29RUGNt?=
 =?utf-8?B?dE41UXZ3QWxzQjNGbHZlOWEzc0FkRllab0dZVC9iQU1XUVA4dEwvbkJHTTND?=
 =?utf-8?B?Y0tOQTRSa0xrMUlqRE16d3BTR2luaWdQSHdJbkJKOTBicktIWFVoMFR6K3Yv?=
 =?utf-8?B?T0dHeGxCWGdZK0NMTFZRTnd4VlBkdWY3M2Y1QWVRUUMwSTJrUTdlbG93MGY4?=
 =?utf-8?B?UGtlbXZrVG9STGJVSlo3T2EzdXljU1J4NXc0Y2JKaW1kclZUM3U0V0JVWThS?=
 =?utf-8?B?RjlYZ3VJM3NxTXV3Mm9qSnNUbUg5amhma3NCZnFGMlhMbC9sVk5WWjRoZ1dH?=
 =?utf-8?B?eWNCRFJ5ZzZLdkNJOVV4ZmpuMFhUa3FnNjNXNTZVQlB1YjZxbDQ0d2p1YS9n?=
 =?utf-8?B?U21jdG5vT2dIOGxVNEMxTGxsdUJzeDJqYTlMSUlXQi9SUnYvM05sQkpwUnlG?=
 =?utf-8?B?L3AybUVLTGZ5aUVhZmJLZVRkV3pjWk9Ua1RhZ1RTdDd4TVZnM2c4ejRZcDM5?=
 =?utf-8?B?eTdVZlFVbUJhdVBVaVB4TE53R0szeXhkd21NalE1VEJ0cmVwY3BiSCtQRWxa?=
 =?utf-8?B?K2xZdUM2RHN6Zmw3R1ZOWlhHWHNMOU05TkkrdlpIRlhhRUY2M1ZMQk1rbTBk?=
 =?utf-8?B?dmFoL3BnSlhJdHYwM2FqMjd0SlFyOWVoZWNhNHVidzZUa01rc3FDdW5RalRZ?=
 =?utf-8?B?dVpRM3lZRnAwUDQ0QUVmSWhBREdXWTRtMVZ1REpld1hxTExSNmsrVE5EQTc5?=
 =?utf-8?B?dFZCaTk1UnNFeXdSWnBTdWE3T1dndnQzcndraTIwWk5Ic2t1QTNmVFd3TjdF?=
 =?utf-8?B?TWM2R01Wb2E2ZGFtdGZYQ0hhUlM1cmFpd3FmSGxsTkFVaDNYZDQxd1Jkc1Fl?=
 =?utf-8?B?WFdBN3VTanQyZ2FPRkkxVHd5K0syeW9rNldJenNOUDNuUFFXM2k2UXFaMVpx?=
 =?utf-8?B?Uk9xYkt4YmVOaE91TEhYWVZFZnkvMER0VHFjUng4emR0a2syTmRZQTUxdVZo?=
 =?utf-8?B?bFUwN3NXMXdkcmNJOW9vQ1FLSWlyQ1QveUlaK0FwbFlWTkF4a1Z3YnJyVlFs?=
 =?utf-8?B?WmpCNW14M1VwMEhQMnJiemxEdWFIM21wSDg4a1I4K3ErcWp0VS9ESElPK0w1?=
 =?utf-8?B?NmNBcEQwUWVZSGlKZjd6WGxOWGwvZEdtTkJ5c0pVZk1FOEc0bzROSzkveVUr?=
 =?utf-8?B?UWlac1FrcDdZc1c5eVBrNHU3TnNMTkRPWE5GeG1HRG9VSEJiYWp1VkxBcCtL?=
 =?utf-8?B?bTUrZVZ1U2tQN1piSEovVWwxQTM2LzlNS0Z6UlhwQlhGMG9OVm1XeXNtUjgz?=
 =?utf-8?B?cGFJUVNyYjU2bE82V25iY2dQTzRLYkFvVVlGTzFuU0xYVFFjUUJiQ2lubnVl?=
 =?utf-8?B?OWFWZm90OWY4a29OZkxIMVZIQUtZeHJCQ2FhWU5vemRDSWlyS21BaGxiRDZH?=
 =?utf-8?B?Q3NRdzR2dnR6K1JVV0hKQkFSMVFkTDJJSmhHR0RzYVpFUjJsN0p2djRNb3Jh?=
 =?utf-8?B?aDdYbUpNWEpOZ2JvTy9lVzhFY2kvaFphL1MzS2JIZS95MVdmSlVFRENNUURW?=
 =?utf-8?B?ZklNem9hN0Y4S0wwTWxidFdIa3l0dlliRFJHNm0xQWhHT0Rvd3p4ek8vZWNs?=
 =?utf-8?B?OWx2aXJyZVdFU05vRFI2WXRhSFBoTnBQNnc5eGtRT1BNNFE4dDNDUnluUE1L?=
 =?utf-8?B?TlhpUEtidHk3N2ZScGNuejlJbEUzY3RaQmlNMkJNTng3cGxSdndTa2VnOGlP?=
 =?utf-8?B?SUR5SHk5MVlobHBCQkpnQUo0dkRMM0plaHR5eldWdkcyU2FQeExsS0RwcURO?=
 =?utf-8?B?WXBDbGxZUFBJdkxwS0QvcXVzMXpFODZlcEZJaUMvYUtJNFk5VnNRbTdQeSsv?=
 =?utf-8?B?MEIvSkhmZ01maGNhUnRTT0VtckFzb1ZzMXd4K3hFV21CVXBMNU9tRzBGUFNl?=
 =?utf-8?B?Nmg5eHB3WUorQk9LaHNLTmJQRC93SVI2WFUzWE5hSm1xN3gzamk2d0IxU0tn?=
 =?utf-8?B?eG1Td2dsSWNiYVBnb1RMTGxHR2xRYnNmeGYzdDdFY3hXd0UvMi9ZM296a2pW?=
 =?utf-8?B?eDBJOTVBemlaZm1aNnVpck1SWVl3bjNYc2doRitiVWZTTHZEUW1obkRFNnFP?=
 =?utf-8?Q?ye4k=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014)(7416014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 14:34:01.2943
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1094a903-dd48-4cdf-f85c-08de3666d486
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004682.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7499



On 28/11/2025 16:22, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> The domain_set_alloc_bitsize() is x86 PV32 specific and not used by other
> arch or common code, so remove it.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 14:34:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 14:34:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180734.1503872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vScJo-0007LS-4C; Mon, 08 Dec 2025 14:34:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180734.1503872; Mon, 08 Dec 2025 14:34:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vScJo-0007LL-1R; Mon, 08 Dec 2025 14:34:28 +0000
Received: by outflank-mailman (input) for mailman id 1180734;
 Mon, 08 Dec 2025 14:34:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TwXn=6O=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vScJm-0007Ix-FI
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 14:34:26 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fda48f04-d442-11f0-9cce-f158ae23cfc8;
 Mon, 08 Dec 2025 15:34:24 +0100 (CET)
Received: from BN1PR13CA0028.namprd13.prod.outlook.com (2603:10b6:408:e2::33)
 by DS0PR12MB8197.namprd12.prod.outlook.com (2603:10b6:8:f1::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 14:34:18 +0000
Received: from BN1PEPF00004682.namprd03.prod.outlook.com
 (2603:10b6:408:e2:cafe::3f) by BN1PR13CA0028.outlook.office365.com
 (2603:10b6:408:e2::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.6 via Frontend Transport; Mon, 8
 Dec 2025 14:34:18 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN1PEPF00004682.mail.protection.outlook.com (10.167.243.88) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Mon, 8 Dec 2025 14:34:18 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 8 Dec
 2025 08:34:16 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 8 Dec 2025 06:34:14 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fda48f04-d442-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OLQPelKSpmY/LX9B6i8c8besO2waD2Af3wteHR/NF5EzNqEnNVVffhmhRcmhjpObGf/nrGtvYmh/ztzzkPDl+/seS+rbDyHb2/zYWbYlQV/xIq2UWr/tqf30gR6gYGtkVw0yjlx6oj4b5X06weL47iiHBmhUbTrge2wYCHnQiY4/oRvrZagt6p0VgiIrzsHyT96PXxCd5N7scAUQW85VEIPL8/eicws+EmplgjyRf9G3k9x/Lbrjh5OD5paGViycBjc+u2NlTL29+D9k0tDYIGsQIg/a1IC9OdRy54sHgVl6BV5h8cYkQLF+ompdsQgyBlwJOqJFtRk+yRY+Lc55FQ==
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=JwFwfBE7NcfWWpNKeYKhxzeFcj4uwOTpn62uFucJW9A=;
 b=hfA9+9436b0Qo2LcTlvu8zhX+T7w3KikJiX96guCSFGDmzaFfyvdYgC0aynFHdrBtTMd220i2b5dhDQ6BeRUvQqaV0XWFMBwj3S3WUZbAepOHEpX/exGQ8oL5hWWb14TCCfKVQzPfDSjvSxGqesB9n/0uV21B5zyUBGc1sI2DRv4cxuU6jJi3fhRJYEttog52ruv+1wUciGXkzjH3miJBR3SAWrfUhwQFhGBoB6Yo50xOSUAGJ4wt/UJAoZm0rhsC2Q40rO18qXynCsqd7BdP3vnvpFWfU/iXbujZFNQBF/BbQ1uohV3c55XDnw/iM66bAoAsUBZVdrnbah6/ATtTw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JwFwfBE7NcfWWpNKeYKhxzeFcj4uwOTpn62uFucJW9A=;
 b=n5KmiAXdPMHADp0T70BddVPbcTGkxbHLuyftOqNG0FIF2pPcjQ39VX5/YLcs68P22lkXzz78AJKt2PsZysu85KDLJk6F88pv9i/q6w9Q6FN8xigFSC++WCFH4T31+kbe4jAou6C3PXvRCnEJnntnqUKy/mlp+HYUOfvNTfkkRIU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <993b079a-c8f6-4e39-81e3-7430ba2f774b@amd.com>
Date: Mon, 8 Dec 2025 15:34:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/3] xen/mm: add generic domain_clamp_alloc_bitsize()
 macro
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Oleksii
 Kurochko <oleksii.kurochko@gmail.com>
References: <20251128152218.3886583-1-grygorii_strashko@epam.com>
 <20251128152218.3886583-3-grygorii_strashko@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20251128152218.3886583-3-grygorii_strashko@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004682:EE_|DS0PR12MB8197:EE_
X-MS-Office365-Filtering-Correlation-Id: 4af56a5a-ce33-405a-23ae-08de3666de7d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|7416014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MkVhSHpiVGI1WDdJenhSbE1tVnpDWENIS3BRUExQTFR5YjVDMXNGRXl1Q0lv?=
 =?utf-8?B?elkzMzNSSG9qaURtcjVqM2ozblFwTWNlTGJtMTkzVGdQUEd0d3pnbit5UFpY?=
 =?utf-8?B?OGlCSFhjTkEydjh3azJEazEvYVY5bU9pT3RoNWd3bDE1cSsvUFQxUDNNRDRy?=
 =?utf-8?B?ZE9xWHJuZ1RSNjFYbENqR0NuQ21lSFRCaFp5eUVNNFlYVm1ZOWxTdkNmeTFp?=
 =?utf-8?B?QllHbkc0NS95ZU54VGlYZFVTNCsrQUMweG9KN2xrYkRrbndsUGxjMUhDM1RZ?=
 =?utf-8?B?RUpNKzBKTkRBaXBaWXBEY2ZRTWx2cGthdXlVdk5VME0zUVkvaW5NdXNmVmI5?=
 =?utf-8?B?YnRQUjZ6TGNEeFI4S3pDYVJIa1d4Wm9mZHdaUnhsSUJ4RzAvY05zZFMyZ3ho?=
 =?utf-8?B?cnpGNHpLVGV5MXFwWk1uUWk4MUhCb1lNQ3VOaExDWENnR0krdktyVExiRUsv?=
 =?utf-8?B?aHZaeVlpMzMvQVZtMG9EaGVLOU9WdWNsS0tDWUsxQzBxTFVwWUwvWkRESkdh?=
 =?utf-8?B?VDkvZVluNnRZSkJtakQzRWJUcXlUVnc1RjFUS1kvUzRLYStQREhwVXRCN1dj?=
 =?utf-8?B?TG9WR3dTR1Y0OTdHL3htYWNpSlBadHptaldnbml5TTUwMVFSUHZ1bGUvQmNK?=
 =?utf-8?B?bnY2UGMyai9TcFhDYjM2b2hZc29GQVJkWnBkZ0FpRmYrTVZHaWl0UFZrRlox?=
 =?utf-8?B?ZFJzN01XZGhJREhYbTlFNnlYM1o2ekhvQXpDdnBobjIrVHB1YUU3dkJnVEk3?=
 =?utf-8?B?R0Y1WWtNbFdPVnh6clNsVWJSamJ4M1dCNFdyaTdpK0lUU0pBbVdJZUphayti?=
 =?utf-8?B?Tm1ycjdRdyt4dGdZVnczUnBMZno1VXlhZWZmUGMycDJYcU4wcWdaRmFVMkdn?=
 =?utf-8?B?NEladktsQlg2cU5qTVc3QjhEUXV2MTVWWjIwY1gxcitUeVRFR3lEWStNQTdG?=
 =?utf-8?B?UENwbG5GUlZOUGxwTVZqOHQxVVFORWIzUWN2MDJTanliL2JmYzU1ZEhiVHBt?=
 =?utf-8?B?UEdxSTNtSUNWL3JjTWlCdHpLQ2hkSy8yNjJKSUxtUHRmNkN6dHJ4Nlk4S1Zh?=
 =?utf-8?B?bXRzZTQyZEZHYVFnWHZsUUJSNEovYjhDcXJKVVVyZW5DaytQWVIxNzJCN2l4?=
 =?utf-8?B?TFhqSitPUjVMQVZKMGVBK1k3dWRXcXJsQnNGN2xRek1tSGh1bHRHR2g5SXZT?=
 =?utf-8?B?NW1kbnZZOVlPMWZBVGp4NlZPNnZYOXlZNWxrMTROVi8xODZHc05MN24zRkhx?=
 =?utf-8?B?TDRMN3FMaEZwaFFpckdUS1Q5UG9VMmgwdEIrZmZWTVUwVzJWNVZLdU95aE04?=
 =?utf-8?B?aFdBMURpeWdGN0lFeUxEbm9KZGpPUGFVak8ydlRYczkySXpPZVJadzB3Qjdu?=
 =?utf-8?B?N05NQjNXdlJybzYrM0VvQ3RhVFJCYVM5QmlNWE5RMjZEN2RBZlVBUFBNTVRi?=
 =?utf-8?B?bGhLZ0VwSGNqOWpRT3QxeHN0UE4yeEh0Qm1aRDdVMmRRZmpXU2hRMWNHN0l4?=
 =?utf-8?B?eHRBY1cydHNvNkR1cHpIM2sxUW9UUkg0eFZtYldsRDVmWEh4cXpsSjZHQlBh?=
 =?utf-8?B?ZmIrVUR0VFVGNVZvK3ZKVDdDVi9IUTFGUXhkQlN6dEVBVjlSaW9QS093ZVQw?=
 =?utf-8?B?cWlpNi9pS0pRU3FqaVJuQjB3SWVUNDRReThnRXl3VGU5WmVQekRGNHdTK3Y1?=
 =?utf-8?B?ZGR5L3d5ajNrdEp1NnNyUnh0MGJYcGhmaDF6YUVBcEtyTi9pSGhITHhiVWRu?=
 =?utf-8?B?TFo0RytUTFAxNzhPKzNnRmR4U2FBamVXVkFaMkNVZCtTZGMxUDQ5NHV4RlVk?=
 =?utf-8?B?bFUzbmJjZGcrUVFwYmVxYkVROThpUTY3WGFubU9XQTRTS1BPNDZrNjk2Zm10?=
 =?utf-8?B?RWNFODBzWjhpdzk2WFVMazV1YksvVE5IdUpVaUd1eVdRYXU2NGQzUjQwbGZM?=
 =?utf-8?B?OTZhVFBsei94MW9GR0lhK3d4c3F5d05heUlHTlU3OWlXeHFVRVJDckFTaDBo?=
 =?utf-8?B?WThMM1ZDb2psWkRCU0FjSGJGc3VMU3BUQ0pCSUNoT1g3dXppaDdXOTlzUWtL?=
 =?utf-8?B?OURxVUlCSUtqVkF1ZXlWZ0hyRXhndktOdnF0UXJSQjlQdnFjZUVLRUd6Y2hj?=
 =?utf-8?Q?MOzc=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(7416014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 14:34:18.0116
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4af56a5a-ce33-405a-23ae-08de3666de7d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004682.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8197



On 28/11/2025 16:22, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Add generic domain_clamp_alloc_bitsize() macro and clean up arch specific
> defines.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 14:43:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 14:43:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180761.1503881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vScSo-00016A-4K; Mon, 08 Dec 2025 14:43:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180761.1503881; Mon, 08 Dec 2025 14:43:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vScSo-000163-1c; Mon, 08 Dec 2025 14:43:46 +0000
Received: by outflank-mailman (input) for mailman id 1180761;
 Mon, 08 Dec 2025 14:43:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TwXn=6O=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vScSn-00015x-0P
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 14:43:45 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4a23f42d-d444-11f0-9cce-f158ae23cfc8;
 Mon, 08 Dec 2025 15:43:42 +0100 (CET)
Received: from BYAPR11CA0107.namprd11.prod.outlook.com (2603:10b6:a03:f4::48)
 by DS2PR12MB9751.namprd12.prod.outlook.com (2603:10b6:8:2ad::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 14:43:38 +0000
Received: from SJ5PEPF000001D6.namprd05.prod.outlook.com
 (2603:10b6:a03:f4:cafe::42) by BYAPR11CA0107.outlook.office365.com
 (2603:10b6:a03:f4::48) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Mon,
 8 Dec 2025 14:43:31 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ5PEPF000001D6.mail.protection.outlook.com (10.167.242.58) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Mon, 8 Dec 2025 14:43:37 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 8 Dec
 2025 08:43:37 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 8 Dec 2025 06:43:36 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4a23f42d-d444-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PaAZQDD3QLaHhAZkvw7hunR620ZlkArPTxbdvAqEL2Z8q3T54x6O18Qx9T3xH5/XJA5u4kw6H2F48IUBJBVZC0L0BbK0Ud9cBoLxYdCMdUiXRb6NxCs0uftSGMhSX5MdN49dQR0aCj5flZ34jl6StD2ltxCegJMzHRr7Z6hleOV+2UVOPACpigcjweuhgsDMoEAc4bBS7Fn37PYB8KgXBGEsgRfpNmL6KTHjEW6wlmdPueqSsiGeNRS3MGeWrUp1S6I249ovpak6c/2rnRqwV289oiE7LiTIGrhSUBXWrWPJPYIzDP2fDU+oyOhphCqkUpIju0u+ce/2q6oUspfDCQ==
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=WdUpVf7xVXw9ntmZ67/ntwdN6yyfnm2EeHfw0BXRy1o=;
 b=H6NQ16chIfTSqooK58dpjzGrbdtHok9dqOKNfKjxsXWrCgNWub//DLNNKcB8hVQuGlyXGnl6Q9Fd6nAPrEm9dufNOvRFLmkkyIE1H5PSvA0BswvetLFBBHTvYGLSbmE13RpIwyBjRUOVckkhM0fB9ZPIdcU5ogoyfNgwzdLZDxKBpbiyiuC0L0MX3+yLxZlm071ZExPa5A/hK7PLiMPZTvZCunWYzOsIMCmYjo0cWtl7DP6GooV2UmHCWJmWG+tQPjPimcMfvLjuqpltdxCBlVXm0HsXMoKJC80ACWr6HXfINDQ8LkjsD4uHun34atMmM+P+bi0e34oKndsB2vXRRg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WdUpVf7xVXw9ntmZ67/ntwdN6yyfnm2EeHfw0BXRy1o=;
 b=ge0xa1A90qmKH0T9Ffp/xVVLfCp1/6L7ACAxdT3rzrUzx9Z6szpl6owYxQfHtUBVSeoO7PSYmNv6JMtlYdzxebzileDqF70HBIt35qCtTohwydsx+phGOm4vpFNKmzu+C9gqpSdh2MnElVfyaq3UuX5INw6MQiMviUmAn6DyVdo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <221cee55-e7ff-4f17-ac22-16ccd40566b6@amd.com>
Date: Mon, 8 Dec 2025 15:43:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/4] arm/domain: Update SBSA_VUART_CONSOLE config option
 handling
To: Milan Djokic <milan_djokic@epam.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1764961645.git.milan_djokic@epam.com>
 <723a873c8c35f54d1cb29866c9b68211f6a977e7.1764961645.git.milan_djokic@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <723a873c8c35f54d1cb29866c9b68211f6a977e7.1764961645.git.milan_djokic@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D6:EE_|DS2PR12MB9751:EE_
X-MS-Office365-Filtering-Correlation-Id: 0fda3031-6c5f-43df-aae6-08de36682c34
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MGVYS1FJMnlkd2NBUEVqckZOREZCYTJNUEFYK2RuUThYaDdBUTFCanVFeU91?=
 =?utf-8?B?N1ZlL201cUUvK21FUk15VGNSNnN6ZUtwbHN6SFd6MDZ6Wmp0WktubnJYai84?=
 =?utf-8?B?OThRZ1RYeXdwWXh5SkRXVWkwQ2lpYm0yNlA0UEhhUnlmZTBIVUhJYVNBQjhs?=
 =?utf-8?B?Q1R0alYrZ1hRZlRyTkxRdSsxVHIxOEJqREZRVk5qbnpyRVlPTnhla0tKd2pB?=
 =?utf-8?B?RmxRZnBzQUhMQXVERW1WanNwMnh5c0EzRTFQL2xsQkVtaUtMYWwzcXJ5bExO?=
 =?utf-8?B?QVFTQllKd3k4Y0Q5QXpSQ3NTYktSQVE4TUhlcUJDYmZ2UUxIbXNhSWkrY2Ey?=
 =?utf-8?B?NGlxZkt3L1VyYkdGS2syM3RlekxSYm10aHFMTDZlaXd2MExjTXg2VnFnRHZa?=
 =?utf-8?B?cWViY1JLVWRKTlBsalpPSnpWaFd1MTAvQXF4M3hhemdIMXpBdzF3NWM5MHNF?=
 =?utf-8?B?ZVVHMUFkQk5nRUhVam9sTVVZUXR3UURTMGhmM2tIZ3pWQk1mWjVUbXVwUld6?=
 =?utf-8?B?bkJYQVd6QVJBRm9LREFSdVBmVHBreDNxMUE4dTIwVDJOWGpXR0lxb0dyYkZY?=
 =?utf-8?B?blMzTTBNTW5vRWt1TlhjazZHcHRReWtFQm90S1NleUJPVFlid3l5bnFIRjFP?=
 =?utf-8?B?aVBWRDk2NmhBUG1rNTZtdzR1ajVHQjFBdnMyOURZMGFZWU5QVTdWak5UOGIz?=
 =?utf-8?B?bzhnMXNqd0NvOWpTSHF2SkxQV1RDNXI1YkkzbWppUE8zc01LOFVCcUd3RFZU?=
 =?utf-8?B?U1o2NmlWUXAzZ0lCM3E0b3F0UHNOVXBDWmN6ZzJYTXU3QStBTXhIRVl4d0xP?=
 =?utf-8?B?TzdZc3NWMnUvS0pMdGM5VlJrUFpCaE83bk5nYTF6cFA2SDhudERWY0U0eTBC?=
 =?utf-8?B?YzMyTHRSbHBlVnQyWHVSZWVTd2J4UHZtVm9Tb1IxOEpvNjJiUGtiTHg2dUdM?=
 =?utf-8?B?S0hJZS9maFE3WUQyVXZDbmFwMjZLNnZUeWVTRk5QbDh0RTRnTmhrd05FZU1S?=
 =?utf-8?B?OUtodHFRVVM5aURmMEo4S3JZZ0hSUFVydTBXelVoaGJjWFUrRDVzcXlVQVla?=
 =?utf-8?B?L2hyQUsxa2loRCtzNzlGWWxiWnhHdXh3cGFGSUNnTkdPS1ZWMXA1MGhkbEZp?=
 =?utf-8?B?T1Q0ZFhwdnd3M3IvUjhyWkM2Qm5zYm1MZ3Mxc2ljQXYwUDBaQ2xReUlIRVpL?=
 =?utf-8?B?NVQxVjNqeTBsZHk2Uy9hM2xqVmN3M094WmJkMW56aVZCWlhOaVF4a2x6UXBh?=
 =?utf-8?B?dGttdVJabmllbkRQaXFTUmRtZVVOc1l6UkVEektEZEp1eU02NGlqVmtSSFlq?=
 =?utf-8?B?dFIvL1NvTEZYRU9lcExMdjlnbXF0RDJnMjdWaHZPWWVxVmVya3lJTHFGRFU5?=
 =?utf-8?B?SmdsMGM4NWlDc1VYczFnZE1HcEdIcTNBZ1I0YmhYcHJNMkdUejMrMy9oQjlO?=
 =?utf-8?B?UWIrbGZSMmwrYWhncUNocm5DWkFzRk5CMmJKS3FNdENlQnlLNFQ4NStqNHYr?=
 =?utf-8?B?a3lSTHVLVE10TWpFTm5aYVo1T1lFdTd6d2FsYTBYcXZSOGYyb0Z3YldVL25i?=
 =?utf-8?B?dFMxYmFqd1lMKzVSTVRLcXMrN2tmMFNMbE9iS00zaGQrQzR2OVllMXRiQUNS?=
 =?utf-8?B?UnQvM2dmM1ZJSEp4YkVmRlh3b3ZGTC93WGE3UG1GeXdjNEVTdmNzR2V4czFT?=
 =?utf-8?B?WU5HSGUxQ1dnOG9QNFljcWczSFN2aTJ6V1Q3SEgzejJMdVBlOCswQUM5T0JT?=
 =?utf-8?B?bjF5V2l5NkVoeHJaKys3NFp2M2NENUc4R1ZVek1xTVFES3JBWmhQL2ZPMlpQ?=
 =?utf-8?B?bmdCWGtyeUZPMlJUVWUwbHV4OE1ZUTNCZmppQXU2cm1TdWd1OUtZcHRVbm1u?=
 =?utf-8?B?UWlRdjBreDRRMVJqNGJnVm9lU2dmemF6WlVGaDRJMjhxR0xHNkkvOFhrOUpq?=
 =?utf-8?B?VkIybUkxZlU3aFFySm02ZzRyc0lvMkphbHV5bWFuaGgybTNRbWtUeUVQKzBt?=
 =?utf-8?B?NTQraVN2Ym0xUGZvQksyb2tjKzdnRVl1M0tQQXdVdTBuNG9pckZCTStvWTQr?=
 =?utf-8?B?S253YzUwUms1elREQzIrRnY3b0RGZDNIQnhGTHlGbE5OQTZMbXN4WDlaWjhl?=
 =?utf-8?Q?Oijk=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 14:43:37.8240
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0fda3031-6c5f-43df-aae6-08de36682c34
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001D6.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR12MB9751



On 05/12/2025 21:36, Milan Djokic wrote:
> Update XEN_DOMCTL_vuart_op command handling to return -EOPNOTSUPP when
> vpl011 is disabled, informing the control domain that this feature
> is unavailable.
> Added dom0less config sanity check for vpl011 property
> 
> Signed-off-by: Milan Djokic <milan_djokic@epam.com>
> ---
>  xen/arch/arm/dom0less-build.c     | 4 ++++
>  xen/arch/arm/domctl.c             | 3 +++
>  xen/arch/arm/include/asm/vpl011.h | 2 +-
>  3 files changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index 4181c10538..57980d2abe 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -322,6 +322,10 @@ int __init arch_parse_dom0less_node(struct dt_device_node *node,
>      if ( domu_dt_sci_parse(node, d_cfg) )
>          panic("Error getting SCI configuration\n");
>  
> +    if ( dt_property_read_bool(node, "vpl011") &&
> +         !IS_ENABLED(CONFIG_SBSA_VUART_CONSOLE) )
> +        panic("'vpl011' property found, but CONFIG_SBSA_VUART_CONSOLE not selected\n");
I don't think there is a need for another dt property reading. In init_vuart()
we read this property and if present we call domain_vpl011_init. This function
returns (thanks to your change) -EOPNOTSUPP, so we already cover both cases. No
need for an explicit panic.

> +
>      if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
>      {
>          int vpl011_virq = GUEST_VPL011_SPI;
> diff --git a/xen/arch/arm/domctl.c b/xen/arch/arm/domctl.c
> index ad914c915f..250e20a9fb 100644
> --- a/xen/arch/arm/domctl.c
> +++ b/xen/arch/arm/domctl.c
> @@ -156,6 +156,9 @@ long arch_do_domctl(struct xen_domctl *domctl, struct domain *d,
>          unsigned int i;
>          struct xen_domctl_vuart_op *vuart_op = &domctl->u.vuart_op;
>  
> +        if ( !IS_ENABLED(CONFIG_SBSA_VUART_CONSOLE) )
> +            return -EOPNOTSUPP;
Why is this needed? Later on in this path we will call domain_vpl011_init that
will return exactly the same if CONFIG_SBSA_VUART_CONSOLE is not enabled.

> +
>          /* check that structure padding must be 0. */
>          for ( i = 0; i < sizeof(vuart_op->pad); i++ )
>              if ( vuart_op->pad[i] )
> diff --git a/xen/arch/arm/include/asm/vpl011.h b/xen/arch/arm/include/asm/vpl011.h
> index cc83868281..b8f4d85651 100644
> --- a/xen/arch/arm/include/asm/vpl011.h
> +++ b/xen/arch/arm/include/asm/vpl011.h
> @@ -74,7 +74,7 @@ int vpl011_rx_char_xen(struct domain *d, char c);
>  static inline int domain_vpl011_init(struct domain *d,
>                                       struct vpl011_init_info *info)
>  {
> -    return -ENOSYS;
> +    return -EOPNOTSUPP;
This change is ok.

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 14:48:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 14:48:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180770.1503891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vScXi-0001w0-M2; Mon, 08 Dec 2025 14:48:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180770.1503891; Mon, 08 Dec 2025 14:48:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vScXi-0001vt-JY; Mon, 08 Dec 2025 14:48:50 +0000
Received: by outflank-mailman (input) for mailman id 1180770;
 Mon, 08 Dec 2025 14:48:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vScXh-0001vn-SK
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 14:48:49 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 008aad14-d445-11f0-9cce-f158ae23cfc8;
 Mon, 08 Dec 2025 15:48:47 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-42e2ce8681eso3138962f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 06:48:47 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d330b20sm25263332f8f.29.2025.12.08.06.48.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 06:48:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 008aad14-d445-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765205327; x=1765810127; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mFjzTHBxypVrkHsOgihfvwb2D5pbS39Nt/3LDYa2oR4=;
        b=JjLcg6S6QE4wz8Jd5RWqDFxgEj/GdyK+ioOPAWFDINJFXHV8UW6Kd2Si5p77HRcJ/N
         CfInzXugqfVF99Ho3IrCJ9/eJXkv+bHsxT4fuF/QZTFEvjk853+xDBw+Ec3u/HSjquiV
         yVsjWT8HP+Mg1ut0ftGdsC5XrPKaMnOiM/IzPw4Ldob5WriH65BnNlLZxDMr6GO+EOb4
         tUqwRawElY79wEyOgiePRmOZHRMxndwyGB0YJt8GGsHbA29P98vvE45OPvgLSQdjMaik
         wGIz6SfiWKwIOMOvaioTqJepVPsD2yYQzvhR2q91/sBrZ1p2x5LmTD2wLlL3JkpzbElm
         zMKA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765205327; x=1765810127;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mFjzTHBxypVrkHsOgihfvwb2D5pbS39Nt/3LDYa2oR4=;
        b=kl/ME4pdUcI5EVYr+HhTPa+tenWlBM6E+gAfYmn9xFjePXdQoXYEkIoJcM2Tf6i+8c
         ChiGxDixAF0FSKPcelPNAwRVbR27FIbjyTACygkab2igcIA/MHSEu76UUP/I//x1mNzz
         e2CtD+lWbEjjGxP0NrsWN5QpzMqATIdNuh1danhg7t9RceioUG8ffcUnCf0oNT9NR/+J
         D1LB/TgMhxhJr9FXCDOOzboQOqFo0b4b68OSeVbxo1UZXkX5ty9oDONhCt3UErozycia
         yhr23TabhZ+G980j0odtL3+zcUOUR5+5vzLEgQuzxn8u2g7xOS62BpJSTyGMoaP2gK0n
         1P8Q==
X-Forwarded-Encrypted: i=1; AJvYcCUcG3jHsfx9OeatM6i7DOWA9eDDz7fBdUSRPs5DVlkmJ/CXgpkEnbKF0tPhRiiAW4wh6vaCOCWfbx0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw110kZLe1AFhqSQt7G2mjHm7zTazC84nuZI7F+TfZAP6u81fMT
	yqP85RNkEcalGVhjRGoVT0N6ihO7dNzjxBeXbUII/i1CWYIsyOP3L3bFIqc7M4jHLg==
X-Gm-Gg: ASbGncso0KX1+UdAfO9lXMup/jUArWm99lzYg7ze+fEVHv4osWmwur+zw8Qo7MALj0t
	+0e39R6bIa/7hhTa10CkHYGSjiCeH9BXQprpBHYFioZ3TVzgyqE73DRxMXSzg/dzCdKUfXFiO83
	4TC4ZOGtU1vPEc1hmBEP7o3zm/z/K9HHGbs9YFduM6Fm2jg3w3Uk52srQ9s7M5esSwfHEwE67Dp
	peoyGjZnCRaizLHX0kLWXBD+BpvQlUbe+nZX3hi5bgrAjtGhNJRo3xooxsHy78PUuz29jXYYZLU
	Ich0C7nUhzLDKT8UPshMcTsD2bBKxD6msZZdBOitpwySmmSY6I9TYLJqjtpa1klf4ijqkT1uZyw
	SMoxjLtTaenSL9xUit8QIOoWSVNSFciPQBpP7RzRRDoBPpl940seozdt034Sp8Ok7xknmZfdFQ0
	BLBidbPA4cGMk0gvZmtd5OlB6fv1UWV/bYn7ZhGuVSWpIMy5ZlORe9TXb9xbMJfrg1HXPBLiW2J
	Qw=
X-Google-Smtp-Source: AGHT+IHzouZfbIRXXU56JnFmgerl3eOubtLqkA5R8FsxQ/Z1PM7HWmp5ncEMmns3cnnkafKklHUoCA==
X-Received: by 2002:a05:6000:1863:b0:42b:323b:f138 with SMTP id ffacd0b85a97d-42f89f483famr9456736f8f.41.1765205327059;
        Mon, 08 Dec 2025 06:48:47 -0800 (PST)
Message-ID: <ae96860a-02b2-4ae1-ae98-eba0b749ff90@suse.com>
Date: Mon, 8 Dec 2025 15:48:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 7/8] symbols: drop symbols-dummy.c
From: Jan Beulich <jbeulich@suse.com>
To: Luca Fancellu <luca.fancellu@arm.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
 <639fb816-c2f6-45d6-9081-238a6b3c5c08@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <639fb816-c2f6-45d6-9081-238a6b3c5c08@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 14:47, Jan Beulich wrote:
> No architecture using it anymore, we can as well get rid of it.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Should we also drop common/symbols.h again then, by moving its contents
> back into common/symbols.c?
> 
> --- a/xen/common/Makefile
> +++ b/xen/common/Makefile
> @@ -74,8 +74,6 @@ ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
>  obj-y += domctl.o
>  endif
>  
> -extra-y := symbols-dummy.o
> -
>  obj-$(CONFIG_COVERAGE) += coverage/
>  obj-y += sched/
>  obj-$(CONFIG_UBSAN) += ubsan/
> --- a/xen/common/symbols-dummy.c
> +++ /dev/null
> @@ -1,24 +0,0 @@
> -/*
> - * symbols-dummy.c: dummy symbol-table definitions for the inital partial
> - *                  link of the hypervisor image.
> - */
> -
> -#include "symbols.h"
> -
> -#ifdef SYMBOLS_ORIGIN
> -const unsigned int symbols_offsets[1];
> -#else
> -const unsigned long symbols_addresses[1];
> -#endif
> -const unsigned int symbols_num_addrs;
> -const unsigned char symbols_names[1];
> -
> -#ifdef CONFIG_FAST_SYMBOL_LOOKUP
> -const unsigned int symbols_num_names;
> -const struct symbol_offset symbols_sorted_offsets[1];
> -#endif
> -
> -const uint8_t symbols_token_table[1];
> -const uint16_t symbols_token_index[1];
> -
> -const unsigned int symbols_markers[1];
> 

Now this is (to me at least) absurd: I'm removing a file, just to find the pipeline
fails because cppcheck doesn't like docs/misra/exclude-list.json containing a
reference to a non-existing file.

I'll amend the commit with

--- a/docs/misra/exclude-list.json
+++ b/docs/misra/exclude-list.json
@@ -170,10 +170,6 @@
             "comment": "Imported from Linux, ignore for now"
         },
         {
-            "rel_path": "common/symbols-dummy.c",
-            "comment": "The resulting code is not included in the final Xen binary, ignore for now"
-        },
-        {
             "rel_path": "crypto/*",
             "comment": "Origin is external and documented in crypto/README.source"
         },

but I think such tidying should be optional.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 14:53:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 14:53:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180781.1503902 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vScc3-0003T3-5B; Mon, 08 Dec 2025 14:53:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180781.1503902; Mon, 08 Dec 2025 14:53:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vScc3-0003Sw-2X; Mon, 08 Dec 2025 14:53:19 +0000
Received: by outflank-mailman (input) for mailman id 1180781;
 Mon, 08 Dec 2025 14:53:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZPsC=6O=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1vScc1-0003SV-2H
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 14:53:17 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9fba4fb4-d445-11f0-9cce-f158ae23cfc8;
 Mon, 08 Dec 2025 15:53:14 +0100 (CET)
Received: from AS4P191CA0045.EURP191.PROD.OUTLOOK.COM (2603:10a6:20b:657::28)
 by VI1PR08MB5485.eurprd08.prod.outlook.com (2603:10a6:803:138::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 14:53:04 +0000
Received: from AMS0EPF000001AD.eurprd05.prod.outlook.com
 (2603:10a6:20b:657:cafe::a6) by AS4P191CA0045.outlook.office365.com
 (2603:10a6:20b:657::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Mon,
 8 Dec 2025 14:52:58 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001AD.mail.protection.outlook.com (10.167.16.153) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Mon, 8 Dec 2025 14:53:03 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by DU0PR08MB8496.eurprd08.prod.outlook.com (2603:10a6:10:403::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 14:51:58 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc%5]) with mapi id 15.20.9388.013; Mon, 8 Dec 2025
 14:51:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9fba4fb4-d445-11f0-9cce-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=AdBi7To3PBWzx5LraHpM887QoFM47+RnjUQmxMqjQybObkB33YfScIaKGJW/xLKNaj/I59BlQ6BcWzDINawQolzF3j0b3t9aizI01FJznkKs1ppPwVRi3QA2jVRJGeLsHEAIpDCTxHU6Gvzq5WBxRXQzM0fdtyuoPsHkgYPnGyYiq9JajS2mlo6qbMPmkJzCR7ThPnNjdO4GK7Z7KJR9liQwKB2zY/yeAJ9iH0jNq7KHzwvHFRrW61fx8nxjyUDPL1h1awviUWV0hR5kKdFo/46vl8Ukso0OGSJYemYwfvJfL3wT9Yx3y6NzMb50w69NLaOSWixBTWeeemAICI50jA==
ARC-Message-Signature: i=2; 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=o3BSPOOP7AZnjusguqzx0kCWp/NJwjqsq682neBhWls=;
 b=PvtUUK+mCKgeRTLUvt63DWl6dxMvE/fJ3PMbX8lwm4m4eMFUO9FVhHz1tPnPn0OCfXpeHf2p/wEWKAkL0KDo31CGkKFSE8k8XS5skfG/t3IOGwuEGoq4rmwlUum9k2A3G7wOdMgQYFc/lVBU3paP7AhknbE1VVp5f9FN9OJLa8lRvpye8lwpZZ58D8DLz8Z6nRolQq90QtxdG7upX6FPbJi5q7YVbiWEyyukioOnAqKuYuKFIETgOKBzqJ8LfmWerSrNCjuzsyIV9Xxm7pdRsfTE2et4c7XX6OGExnRaBR4u1YMXIzfapDnpP3LNC8JGMK5sQF1CUE9VvBFgqjvv5Q==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=suse.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=o3BSPOOP7AZnjusguqzx0kCWp/NJwjqsq682neBhWls=;
 b=ajhGyHMGK/WHYRUnvcMuMQtCS4BysnY5T4Pm4d2Y3tK4KJLR9FVKuFHe3hZilSisv7KzGE5ac7fJSFAuEoW63NCDD4QIF9noqDrRA7eNuh9+tgzeKjWPJuMiPEKsErhFWyk8scG+VlU+vC8DfrVBNE6a05EJfwcTFOxHJn0S9aU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oGbvWCgcSqYw5EYOxqSdGAzyQAYcVYOGMituV9AvJ979yRKd8UQKx3qcwC9qLj3dxIXnE9HanJNj8/umXohvIAWXC1lHoz6EhAnktqOf3k5BNMkcI18NVWCuP3J4LjfDXDAtjdrAVpBBGCdsLRSZcHc4nPHeWduYxKI4FBgvArWVjOjyH/j/uBvuMFpm4jaulQC9Xr9Ezj+V39gwQOeacMIeW5Lw1QUCh28SlDBjdqlC0lo54G5izoRzvyyEL63ZTjJWfYzRZTEZs2FV1Zchx775DNxEaMS5nTODN7eaSIe9xg+nUJ+yK43FvtdqkG4c1D3unJKxAPgf90WGs1azrw==
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=o3BSPOOP7AZnjusguqzx0kCWp/NJwjqsq682neBhWls=;
 b=vzwbglC3fTxQ1Pi1ONMqD2KmmOuvP7pwkPt7tCCMzE6cZQieDyoVx3fAKyGMfALMMvM4yPcIV86p1yBgG28tsikHzUHz1u/l7225AqpRllSmt+ugo9OFnrkLzfm8MWAKydzzN/fn+cshQA6UtRDSMV8k84oWzlvl3UCxe8s1J4CoBGHnGp3HPDb3h85f406wfMQgJUEtYXCqVIoYtX6AWVweRnZqx6hdW8G/oZ3OOv7FK2UWWz6tMNRGHK3A93U54MYt3NyGxeS3uON/Qs8aTkZPDMxGeN7NLOT8cco/3xtatm3VvfBMURmrNQezeD2GLfCbRCV9NuMGgsXDqTQPow==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=o3BSPOOP7AZnjusguqzx0kCWp/NJwjqsq682neBhWls=;
 b=ajhGyHMGK/WHYRUnvcMuMQtCS4BysnY5T4Pm4d2Y3tK4KJLR9FVKuFHe3hZilSisv7KzGE5ac7fJSFAuEoW63NCDD4QIF9noqDrRA7eNuh9+tgzeKjWPJuMiPEKsErhFWyk8scG+VlU+vC8DfrVBNE6a05EJfwcTFOxHJn0S9aU=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 7/8] symbols: drop symbols-dummy.c
Thread-Topic: [PATCH 7/8] symbols: drop symbols-dummy.c
Thread-Index: AQHcaFHEZgCWYRtzmkm7gvYg23aA3rUX05+A
Date: Mon, 8 Dec 2025 14:51:58 +0000
Message-ID: <47070C53-9EAE-48F8-BACE-B554BAF2DFA2@arm.com>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
 <639fb816-c2f6-45d6-9081-238a6b3c5c08@suse.com>
 <ae96860a-02b2-4ae1-ae98-eba0b749ff90@suse.com>
In-Reply-To: <ae96860a-02b2-4ae1-ae98-eba0b749ff90@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|DU0PR08MB8496:EE_|AMS0EPF000001AD:EE_|VI1PR08MB5485:EE_
X-MS-Office365-Filtering-Correlation-Id: dd398730-b985-461f-d365-08de36697d7c
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?iso-8859-1?Q?a5TXirfLhliCK+eaSZVDA57ECnBFfvciCIam7a/mBm5PCNvXi+FKbUrIxo?=
 =?iso-8859-1?Q?YMEmDbNSS3xGYUJkYMnFs3TxNsUO+MEUuPybGAd3Erb1fW5cjeNyFKJ1ai?=
 =?iso-8859-1?Q?RE1cC2Gn8fWFbrDLnr6c9XXIqWKvLLnu2obIdo9b8yueoBHOHZ99FBYUth?=
 =?iso-8859-1?Q?IOVmvr8smaeAbpgCvEEXeHnwxTt1GGbphCx7Y/8yI48qO/GGJgK4sPuK7L?=
 =?iso-8859-1?Q?135fNR0fY+Kx/k7vsXZZxtaG9jl4awlE7xbCKMggyLBLL4HrX6S5kdWSGd?=
 =?iso-8859-1?Q?XTfZREcACvaVjq3UbqALvH+B/WNkJM4ZizQ7+L2obnmfKTpK/fffBYNaBF?=
 =?iso-8859-1?Q?eDuMVnn3k/rDJ1/PP3h3pVEjgsrjPhyFhaYeOSPcvMHKnA8ECgMOoWnZ3N?=
 =?iso-8859-1?Q?LhCWj+nZZ0e+W+JTnhVI2sTbjRUljbYSBuzG/t+sZh16uqrl+FMnMnFApf?=
 =?iso-8859-1?Q?fgPxbwcJlFehSD8NMEZYliYtQzEcYOXE8eyRL27+j7mAp/fYvlIxcppZ+W?=
 =?iso-8859-1?Q?H/2vQ0Cvez1BzDy+zAenW7anukyNeIdfCFyqCeJRkqKwwy0TKkQf1I5YEI?=
 =?iso-8859-1?Q?1fSYBvT8I6nxrYG7n07IOKVLcOybHlQTVmW6Uw2HhQd8dYYnc+Wf7kHwqn?=
 =?iso-8859-1?Q?eqFmfJe6wES8Y3UZAgbGmkznKIM7jRUzGFGrpWZTXMFD7ezcEt5S4Xe68z?=
 =?iso-8859-1?Q?P5QhcJRbUorE6Oz52uaqrX+wfAmjf2lLOiB3fvE8hvQgOyicW40Ek9RI7j?=
 =?iso-8859-1?Q?4GcjqCUKzTTfqFcDmfqElJTvJ0rULZNAioDyhQeGwMBn9RZUcBDUilwtpd?=
 =?iso-8859-1?Q?jREA+/fW7SlNC883Yo2EUtg6jIyre0hpy8XvM3SAECEYBFqw9zqzKml88w?=
 =?iso-8859-1?Q?7n+uLGffRbTdrJMVGx00YWKBD1D5l9E/GwtzNx/u7ApGmIynRauvSyO1Jg?=
 =?iso-8859-1?Q?QPCq4nnuaZASK0kom/MhXbmWu/Wk9791ki6Z6Qv+9ghuApUNXNeWiB8Z8/?=
 =?iso-8859-1?Q?82H/QpNkmyn5vee2BhELtplL759SG5sOHL6xemUKMfqLxF6tBOL5PYzjqF?=
 =?iso-8859-1?Q?c9PyegVuCvUwyeanHcX5Bw0DgIlb52CysyE2w1zyxltQfpF12tPfFunAsK?=
 =?iso-8859-1?Q?Xdoeu9eZoKK3VAFg1KqX1MeVf+unb27q62hF1GzIZ7f1WMMKUPmy6MwHy1?=
 =?iso-8859-1?Q?15GdY8h7G2Q47aszk9TuuMtIGekeaWFbqKVxho5GRroUkj0GWFNhy/ELbx?=
 =?iso-8859-1?Q?S9O3DNZBNuGk85tf0N/dnTweTZa9mL/QKHkwAhSPjbNMm7IbrCuAfkEZoV?=
 =?iso-8859-1?Q?aL76Y2FEsCFy/fkafo65oIG53tTL+9MeMPuti9wKQMro7R2/dk4lEhGHWY?=
 =?iso-8859-1?Q?qCVKsrGGZ1BknlZiMRKszDvCgps7ve19WcQu4KiRq8lnS3+srS/jAwv7pn?=
 =?iso-8859-1?Q?FXTERp8fOB77/WPcof3b1tOu+lXwv4O1VGrAbqffqlXsJ99jI/f6AcNQJj?=
 =?iso-8859-1?Q?ojF/wd6SOgZzYp8dXCU6AL2Dyj9ZTc85NCfv//1gWTaS+rx+a/d7igjia9?=
 =?iso-8859-1?Q?hJhO+arYfxA75iXBoFTY2pctNmGQ?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <F4EF2C883D4C1E43AA2140D77D7D1410@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8496
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001AD.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	f42fc58f-6fe1-4936-f6ce-08de36695661
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|35042699022|36860700013|1800799024|82310400026|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?3eUOqHS6u3zXvMMrSpL83owummlt8eJIc4PHSxE/slsHlgnDTSdmhUQ7wa?=
 =?iso-8859-1?Q?quo6bwYK/KObhC8g3du8djll0AcQ3GhFuiTg5Lhv++QOvNmgcBJOruIKaS?=
 =?iso-8859-1?Q?EQupajmqNCXG9BjyAVOuMUX4T6I+DuZIH/Zs1SZ5twMuKKW1FzaAisJnl+?=
 =?iso-8859-1?Q?6EMs+jfBh+1f799AUPdkSbbb+JKg1UiwyVMDjwO260rPaePlLG/DRVksNE?=
 =?iso-8859-1?Q?yKiVfjsIQKylQ1oPYni4Wm4S0mEXHgl3DN2lCozqW+8gPqJdP6wYbtOn79?=
 =?iso-8859-1?Q?CmGHXMBqoJEf97s7dJgHIrLMBUF/YQEiUn2ECfiHm8/kD1Va2vH0IQ4sRD?=
 =?iso-8859-1?Q?azfMqy0Ig5teY30wiQ+wMIZPzAQwB9/u5fb/lmYm16z67kNS5fIqLaqmEf?=
 =?iso-8859-1?Q?QMabvz7XiEPamyPlh6UNkc1NfBfFbTWlMg9nyMr596CpQTQ6/n9xhD+p14?=
 =?iso-8859-1?Q?KqZUqYqTGiNgpT/gKUDK1GcjWUIQLlvJIGUZFgLrIY6R5ULJRS59h9KPjy?=
 =?iso-8859-1?Q?MzrsA1j58UydHw5gqKcB44afjb4uCkBIgDLNy3n9yGFmNobJkix2620r3E?=
 =?iso-8859-1?Q?l3JHL5Bxr8U9ybrtaKKpVsoirE0uKXX+g7m7qFNuPCxr4k2R5PtJgKCgFN?=
 =?iso-8859-1?Q?Mx6zzBFubwXkA+UCgZK/CEJv6cE54PXO6Fr1cGIPorYLUKDVPggoWKXhtB?=
 =?iso-8859-1?Q?5QaZP3atJO0lTxRl58sKaNCKbcJjO9Ks89ag7nwM4Mp0F2WIshdBRYa44M?=
 =?iso-8859-1?Q?ZkeilVazUZZsvcm6Bo7d88E0zhPccxfijbNGSJZz0rY8sYRcRgCrNyjtOB?=
 =?iso-8859-1?Q?dm9YU6ozR0t0//Lt5ecIj8sKdhoMeU+rOeJFh/dC21qPBtZxowkWxezdBX?=
 =?iso-8859-1?Q?8o0ljSi3WuBE+0Cf6M65Cz1XYIpHdeZd4QCZ/5kkuMH6SsZiKZbOECEW8E?=
 =?iso-8859-1?Q?XKoH89rluXKjSO6ToteQnLneiVkbTvPXMjVxLApar2yJO5rBr40dzw5uaI?=
 =?iso-8859-1?Q?g5UO+5f7OsoNfARCmX2PbRm2PxtoJItca88a+zCNpF+DuYl0alKIDZu9N4?=
 =?iso-8859-1?Q?JxZjP+FKntPT1z4/Ow9reD6Nme+bGRzq//8FzC6Y5hyK2NtxZiKrpIUWI8?=
 =?iso-8859-1?Q?4h/9URIrpMfX4stzE+WbSfomZQhZI7auBT/Bfn1rx4Q8oO4PB+yFkjwS3D?=
 =?iso-8859-1?Q?0aUwEywbKZkvHF0P0CeCqYHCr7w5nnOGJOtMDzIGVnKJV1WD6RkdaVwen8?=
 =?iso-8859-1?Q?DEGzLJzXvDS3OqPJdwfh7XWhPCxySFWYD3MvjtahHWG3yEJyEnTzIv0nEb?=
 =?iso-8859-1?Q?L6G5H7m0BPkSfn5jrG5RwwmUFihaiCL5PLDkc3QEW1KQP2Y0FjgZWrW05f?=
 =?iso-8859-1?Q?oxaK8J4zvsoUyCRRq+WqJIs3K7ELi3qQtitmEyx4DjamT5Pk/j8pJxbLIw?=
 =?iso-8859-1?Q?jsDyTRC9fxeK72rYNMOqpVAJoTEklxbvaXjFPucjUsAevBUjJ1UUE5f3wX?=
 =?iso-8859-1?Q?yVqmOHPJ17rqDhqBwzp+N3G5OgOM9sPg9+qHiPE/RZe2rgPgx14wYpAwd0?=
 =?iso-8859-1?Q?o2wIXIHlOxM6Bsby7TspdB/O8mn8ZwujD0CMyta/j2aAU0IC6r2B8/dFgv?=
 =?iso-8859-1?Q?9hCjz7YAj9rfw=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(35042699022)(36860700013)(1800799024)(82310400026)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 14:53:03.6998
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dd398730-b985-461f-d365-08de36697d7c
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF000001AD.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB5485

Hi Jan,

> On 8 Dec 2025, at 14:48, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 26.11.2025 14:47, Jan Beulich wrote:
>> No architecture using it anymore, we can as well get rid of it.
>>=20
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Should we also drop common/symbols.h again then, by moving its contents
>> back into common/symbols.c?
>>=20
>> --- a/xen/common/Makefile
>> +++ b/xen/common/Makefile
>> @@ -74,8 +74,6 @@ ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
>> obj-y +=3D domctl.o
>> endif
>>=20
>> -extra-y :=3D symbols-dummy.o
>> -
>> obj-$(CONFIG_COVERAGE) +=3D coverage/
>> obj-y +=3D sched/
>> obj-$(CONFIG_UBSAN) +=3D ubsan/
>> --- a/xen/common/symbols-dummy.c
>> +++ /dev/null
>> @@ -1,24 +0,0 @@
>> -/*
>> - * symbols-dummy.c: dummy symbol-table definitions for the inital parti=
al
>> - *                  link of the hypervisor image.
>> - */
>> -
>> -#include "symbols.h"
>> -
>> -#ifdef SYMBOLS_ORIGIN
>> -const unsigned int symbols_offsets[1];
>> -#else
>> -const unsigned long symbols_addresses[1];
>> -#endif
>> -const unsigned int symbols_num_addrs;
>> -const unsigned char symbols_names[1];
>> -
>> -#ifdef CONFIG_FAST_SYMBOL_LOOKUP
>> -const unsigned int symbols_num_names;
>> -const struct symbol_offset symbols_sorted_offsets[1];
>> -#endif
>> -
>> -const uint8_t symbols_token_table[1];
>> -const uint16_t symbols_token_index[1];
>> -
>> -const unsigned int symbols_markers[1];
>>=20
>=20
> Now this is (to me at least) absurd: I'm removing a file, just to find th=
e pipeline
> fails because cppcheck doesn't like docs/misra/exclude-list.json containi=
ng a
> reference to a non-existing file.
>=20
> I'll amend the commit with
>=20
> --- a/docs/misra/exclude-list.json
> +++ b/docs/misra/exclude-list.json
> @@ -170,10 +170,6 @@
>             "comment": "Imported from Linux, ignore for now"
>         },
>         {
> -            "rel_path": "common/symbols-dummy.c",
> -            "comment": "The resulting code is not included in the final =
Xen binary, ignore for now"
> -        },
> -        {
>             "rel_path": "crypto/*",
>             "comment": "Origin is external and documented in crypto/READM=
E.source"
>         },
>=20
> but I think such tidying should be optional.
>=20
> Jan

Can you share the error?=20

Cheers,
Luca=


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 14:57:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 14:57:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180794.1503913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vScgB-0004EW-TE; Mon, 08 Dec 2025 14:57:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180794.1503913; Mon, 08 Dec 2025 14:57:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vScgB-0004EP-O1; Mon, 08 Dec 2025 14:57:35 +0000
Received: by outflank-mailman (input) for mailman id 1180794;
 Mon, 08 Dec 2025 14:57:33 +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 <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vScg9-0004ED-Rn
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 14:57:33 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 39746f25-d446-11f0-b15b-2bf370ae4941;
 Mon, 08 Dec 2025 15:57:32 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-477619f8ae5so35880545e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 06:57:32 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d2226c5sm26406434f8f.23.2025.12.08.06.57.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 06:57:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 39746f25-d446-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765205852; x=1765810652; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bz/WMXUC4IcSRraXhVTFDQQTGMT6gXw7EEupWue5usg=;
        b=T6isvvGF+XOQD+xMCNM0+HEGeFh31ldJyBBKiJ6xA/7jqY04tIgDN0m3K+lLBFzB7H
         TyE8qqiqNNwdUIFWLA0F2RG5csXQyWUFPJvhXX3mLTmQt6tZxviLmGnmnCOdOWD/g8sH
         acis057VSoIt1biLToVs0fXU51dEdqd1+k3GnYfNXNclC9o4Va0n/tT/UDgeeru4cP5G
         qVFq1of2Fm2wDp+Up2eqKVu7f2bTXunZpHW16jJGfqh04zU3NmZb94ygyoKo5ERqdiEP
         fnIjJp6qYrUraLpo1Fiuxdq9hP5uERoZryYj33h2muWV+yvBd4PoetkjfF9keEZ3/ik9
         Fuwg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765205852; x=1765810652;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bz/WMXUC4IcSRraXhVTFDQQTGMT6gXw7EEupWue5usg=;
        b=NIEZee6hSa1f1XCABgp5BBshv7u/FTR1UKU8w+/SXqB89YGaJ/2dP+gwgnshISFKF8
         TzS6LP5n8wqo6+QKMjYNTfYuSYh13HlrjWXdCABG++M0i/OdRdVpyjR7m/+cgHlYe1ff
         SNs0L4YFu7hhj1O+S5/HkrhDQeJR9YLrl5DIAfjTs6UAyan4ELKpL3xjilXR/caVMoiW
         z21AGB+/6F64h/j+putljaFzbhk6BTBqmtNT2vj7omIbqowveHx4EruP4g8yCImnG+3G
         jzYYtJAglLGcfWtLZib7/cSegaVVPaq4amBxIRI1sSkzDISwzf5jX9rwzc/EzqgzNzYh
         exUg==
X-Forwarded-Encrypted: i=1; AJvYcCUKLzd0lo6AqTuUlzEcMyWBZxBKleN6eZpx1gvjJUnbB4+5uhzpxtmvvvbR42/0S+dZi2BbR6rp1o8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwNbIqVNQgNGjnLYXVMSRI5IOnI7EqX3d2/UtMoUNUvd10rruRn
	Iz41MfLVzwNM05+52ubYbrVZpUIfQOZU/zNav15poEcBvP62AfJC3ocdfJCXJJuhSQ==
X-Gm-Gg: ASbGncvcdmWMBOY+KFBJa6lWMAlWkFyhMXWsNTTLbV9+lKSWie25QwyvYU36XA0YCDy
	Rcqb+Ap4Elt6A8a2+QqtJHobo1KzD0AsV6KPx+nDC8Wv6y42B3V/ZcVvfNe+/USgsxji7NNV5WH
	Tpgt8l87CXNmS9iXVVyBSpsoXhlgVwRCbDg71ctKWQVVmEr7IFkFYU134z6TCO9lE7XV/B3YHDe
	h8IukW0U+WbSKNPd0ZHI2MJZyJ6zlDIEUWujWVtAxUIcXi2OEhAx3f5ij2OSFqMFGy9EtTshRmT
	QkIUDtJunDvcWeG5NqjMWfnDF8soflboeouP2ch9f8MKOSDQrDCVBiHmbXDlogP4c6ZfzX3e3+g
	hjJkqi5DfLCatUCGLT5hEKXCpPaJlfmhhIVOhnfgnBmLEnyi0sEumIWMB2asQk43inViniJIHD5
	wTMlIjAr3g+0e1HeoxE29aF8XxxMosVk77tUJs0cEL3I0nWeAfrmv69K/wkvDwZxfimN1Ehp5ux
	Bw=
X-Google-Smtp-Source: AGHT+IHgFO+3jgtLukrZFolABk7LE5UhVJEUqoYZc2eisz4HNmRuKzvpP2+gfqQ/obFbuGBIckE26g==
X-Received: by 2002:a05:600c:474d:b0:477:7bd2:693f with SMTP id 5b1f17b1804b1-47939dec8e1mr66916705e9.6.1765205852000;
        Mon, 08 Dec 2025 06:57:32 -0800 (PST)
Message-ID: <265bbc9b-d9e6-4e1c-b59d-cf77fb4d6786@suse.com>
Date: Mon, 8 Dec 2025 15:57:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 7/8] symbols: drop symbols-dummy.c
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
 <639fb816-c2f6-45d6-9081-238a6b3c5c08@suse.com>
 <ae96860a-02b2-4ae1-ae98-eba0b749ff90@suse.com>
 <47070C53-9EAE-48F8-BACE-B554BAF2DFA2@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <47070C53-9EAE-48F8-BACE-B554BAF2DFA2@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.12.2025 15:51, Luca Fancellu wrote:
> Hi Jan,
> 
>> On 8 Dec 2025, at 14:48, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 26.11.2025 14:47, Jan Beulich wrote:
>>> No architecture using it anymore, we can as well get rid of it.
>>>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>> ---
>>> Should we also drop common/symbols.h again then, by moving its contents
>>> back into common/symbols.c?
>>>
>>> --- a/xen/common/Makefile
>>> +++ b/xen/common/Makefile
>>> @@ -74,8 +74,6 @@ ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
>>> obj-y += domctl.o
>>> endif
>>>
>>> -extra-y := symbols-dummy.o
>>> -
>>> obj-$(CONFIG_COVERAGE) += coverage/
>>> obj-y += sched/
>>> obj-$(CONFIG_UBSAN) += ubsan/
>>> --- a/xen/common/symbols-dummy.c
>>> +++ /dev/null
>>> @@ -1,24 +0,0 @@
>>> -/*
>>> - * symbols-dummy.c: dummy symbol-table definitions for the inital partial
>>> - *                  link of the hypervisor image.
>>> - */
>>> -
>>> -#include "symbols.h"
>>> -
>>> -#ifdef SYMBOLS_ORIGIN
>>> -const unsigned int symbols_offsets[1];
>>> -#else
>>> -const unsigned long symbols_addresses[1];
>>> -#endif
>>> -const unsigned int symbols_num_addrs;
>>> -const unsigned char symbols_names[1];
>>> -
>>> -#ifdef CONFIG_FAST_SYMBOL_LOOKUP
>>> -const unsigned int symbols_num_names;
>>> -const struct symbol_offset symbols_sorted_offsets[1];
>>> -#endif
>>> -
>>> -const uint8_t symbols_token_table[1];
>>> -const uint16_t symbols_token_index[1];
>>> -
>>> -const unsigned int symbols_markers[1];
>>>
>>
>> Now this is (to me at least) absurd: I'm removing a file, just to find the pipeline
>> fails because cppcheck doesn't like docs/misra/exclude-list.json containing a
>> reference to a non-existing file.
>>
>> I'll amend the commit with
>>
>> --- a/docs/misra/exclude-list.json
>> +++ b/docs/misra/exclude-list.json
>> @@ -170,10 +170,6 @@
>>             "comment": "Imported from Linux, ignore for now"
>>         },
>>         {
>> -            "rel_path": "common/symbols-dummy.c",
>> -            "comment": "The resulting code is not included in the final Xen binary, ignore for now"
>> -        },
>> -        {
>>             "rel_path": "crypto/*",
>>             "comment": "Origin is external and documented in crypto/README.source"
>>         },
>>
>> but I think such tidying should be optional.
> 
> Can you share the error? 

+ xen/scripts/xen-analysis.py --run-cppcheck --cppcheck-misra -- -j16
ERROR: Issue with reading file /builds/xen-project/hardware/xen-staging/docs/misra/exclude-list.json: Malformed path: common/symbols-dummy.c refers to /builds/xen-project/hardware/xen-staging/xen/common/symbols-dummy.c that does not exists

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 14:58:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 14:58:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180805.1503922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSchS-0004p6-3T; Mon, 08 Dec 2025 14:58:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180805.1503922; Mon, 08 Dec 2025 14:58:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSchS-0004oz-0x; Mon, 08 Dec 2025 14:58:54 +0000
Received: by outflank-mailman (input) for mailman id 1180805;
 Mon, 08 Dec 2025 14:58:53 +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
 <SRS0=vD9b=6O=bounce.vates.tech=bounce-md_30504962.6936e7aa.v1-cb0d43ced0d84d198b2792fdcffce040@srs-se1.protection.inumbo.net>)
 id 1vSchR-0004ot-Gx
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 14:58:53 +0000
Received: from mail132-20.atl131.mandrillapp.com
 (mail132-20.atl131.mandrillapp.com [198.2.132.20])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 684e06a6-d446-11f0-b15b-2bf370ae4941;
 Mon, 08 Dec 2025 15:58:51 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-20.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4dQ4qt1JX9zFCWZfq
 for <xen-devel@lists.xenproject.org>; Mon,  8 Dec 2025 14:58:50 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 cb0d43ced0d84d198b2792fdcffce040; Mon, 08 Dec 2025 14:58:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 684e06a6-d446-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1765205930; x=1765475930;
	bh=N6ImtC6HQ94S7JRDNj4U9crgTjkhJCQeX0/zZwXKPgs=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=TErzBhetmplvdFjOAa8RBngfF9gGaWBITUJBh+yf9hnIQb/mzvvVAz9XP0wSozHMR
	 ZrfJXzFEHA6drcInYDvM9xN/oNp3qpEp2POFiMTtJUfcTl9Nu1I1nJs5PiP7MBsAVE
	 aPnCUz8UvJ8gA0Vz3t5PHbEI8YpPpcA8D8TQVywRaH1xu96D2CqWscgvYeFIAuZfng
	 4lvbQUlU0D0y5ob4ShAmPQkgOUFVbdsiCarM/Uh63++ayADnDVRHivpn4546Ps2/yN
	 VGUUhTVChfcJX2gbDQL26XYB9eoLgcOnAPUaugko6Hz7fE51I6k2xSOwba7Sd5t8zs
	 Yuav92ou37y0Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1765205930; x=1765466430; i=teddy.astie@vates.tech;
	bh=N6ImtC6HQ94S7JRDNj4U9crgTjkhJCQeX0/zZwXKPgs=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=kAaJH5y3KtSF132Fjdyu41FX6KAtP/gVQiBdtO28K99YdMiNIWKveOJxkgSwOfv6j
	 QcZE8QbwLP64JtKjolwtGHMB2IG54MqqMsyR1ocIRAp/9lmGZiJfJxEV+wetJIPYIn
	 a2IJsU8ZvkqzQWXtIUd6fPK5an7z8HeXnIsfMEYpGMf0MzPjq0yCjq6OxYwCp0Ii6V
	 xDdjxs72Vlu49h4b03CP7csSK839/QA5XKMdoqeK2Xa0MVScOWxWrNQU/J/6ZhHd0S
	 qOHl+NNd3fTs5gO2XsV0eWg88tit6+qXmEP88lS5apFPQU1J6jfEWRbBCAlY87kk+5
	 gutwHeVIdLq4g==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH]=20x86/svm:=20Use=20host=5Fcpu=5Fpolicy=20instead=20of=20open-coding=20cpuid?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1765205928753
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Jason Andryuk" <jason.andryuk@amd.com>
Message-Id: <200f5b367f3a375382324f778c730bc63124d47d.1765204254.git.teddy.astie@vates.tech>
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.cb0d43ced0d84d198b2792fdcffce040?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251208:md
Date: Mon, 08 Dec 2025 14:58:50 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

host_cpu_policy already fetched the SVM CPUIDs, use it instead of open-coding cpuid.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
It very likely doesn't work right now, as host_cpu_policy is not evaluated at this point
(start_svm is unfortunately called before calculate_host_policy). So this is mostly a intent
rather than something ready.

There are also some other things I would like to improve on this, but not sure on the approach.

It would be nice to move svm_feature_flags to host_cpu_policy, alike other
bitmap-like leafs we have in cpu_policy. IOW move most of arch/x86/include/asm/hvm/svm/svm.h
to cpu_policy infrastructure, which could also serve later for properly managing nested SVM
features of a guest.

And also move most policy calculation to it (feature dependencies check, erratas, ...).
For instance check for AMD_ERRATUM_170 in cpu policy code, and mask cpu_has_svm_flushbyasid
if CPU is affected, trying to declutter SVM logic from some errata checks.

 xen/arch/x86/hvm/svm/asid.c          | 3 ++-
 xen/arch/x86/hvm/svm/svm.c           | 4 ++--
 xen/include/xen/lib/x86/cpu-policy.h | 5 ++++-
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/asid.c b/xen/arch/x86/hvm/svm/asid.c
index 03f98b7a8b..0af5874b76 100644
--- a/xen/arch/x86/hvm/svm/asid.c
+++ b/xen/arch/x86/hvm/svm/asid.c
@@ -5,6 +5,7 @@
  */
 
 #include <asm/amd.h>
+#include <asm/cpu-policy.h>
 #include <asm/hvm/nestedhvm.h>
 #include <asm/hvm/svm/svm.h>
 
@@ -16,7 +17,7 @@ void svm_asid_init(const struct cpuinfo_x86 *c)
 
     /* Check for erratum #170, and leave ASIDs disabled if it's present. */
     if ( !cpu_has_amd_erratum(c, AMD_ERRATUM_170) )
-        nasids = cpuid_ebx(0x8000000aU);
+        nasids = host_cpu_policy.extd.nasid;
 
     hvm_asid_init(nasids);
 }
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 2d7c598ffe..e3f503c328 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -15,6 +15,7 @@
 
 #include <asm/amd.h>
 #include <asm/apic.h>
+#include <asm/cpu-policy.h>
 #include <asm/cpufeature.h>
 #include <asm/current.h>
 #include <asm/debugreg.h>
@@ -2494,8 +2495,7 @@ const struct hvm_function_table * __init start_svm(void)
 
     setup_vmcb_dump();
 
-    if ( boot_cpu_data.extended_cpuid_level >= 0x8000000aU )
-        svm_feature_flags = cpuid_edx(0x8000000aU);
+    svm_feature_flags = host_cpu_policy.extd.svm_feature_flags;
 
     printk("SVM: Supported advanced features:\n");
 
diff --git a/xen/include/xen/lib/x86/cpu-policy.h b/xen/include/xen/lib/x86/cpu-policy.h
index f94f23e159..1e639ae713 100644
--- a/xen/include/xen/lib/x86/cpu-policy.h
+++ b/xen/include/xen/lib/x86/cpu-policy.h
@@ -270,7 +270,10 @@ struct cpu_policy
             uint32_t /* d */:32;
 
             uint64_t :64, :64; /* Leaf 0x80000009. */
-            uint64_t :64, :64; /* Leaf 0x8000000a - SVM rev and features. */
+
+            /* Leaf 0x8000000a - SVM rev and features. */
+            uint32_t :32, nasid:32, :32, svm_feature_flags:32;
+
             uint64_t :64, :64; /* Leaf 0x8000000b. */
             uint64_t :64, :64; /* Leaf 0x8000000c. */
             uint64_t :64, :64; /* Leaf 0x8000000d. */
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 15:05:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 15:05:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180818.1503931 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vScnU-0006PV-Nv; Mon, 08 Dec 2025 15:05:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180818.1503931; Mon, 08 Dec 2025 15:05:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vScnU-0006PO-L7; Mon, 08 Dec 2025 15:05:08 +0000
Received: by outflank-mailman (input) for mailman id 1180818;
 Mon, 08 Dec 2025 15:05:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vScnT-0006PI-QP
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 15:05:07 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 476eda01-d447-11f0-9cce-f158ae23cfc8;
 Mon, 08 Dec 2025 16:05:05 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-477a219db05so31803245e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 07:05:05 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479311fbaf4sm238459595e9.15.2025.12.08.07.05.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 07:05:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 476eda01-d447-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765206305; x=1765811105; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qbvy8vPiPeBLmPIIJL9b1OwoeLYk8AFuNuzUbTevJis=;
        b=NRVmHqGlSFPjdycqrlbhRVB5Qt6VdpPa3p0gqXS4nQGnO7BWInAR3IoE/Lq74tK6Fc
         Ouiex2JvXVE4gOKc8k6mKU92q6DRUSnBmvbFa2hYrpoNGuZNb/dw1+ZrWTy4h/ybo06x
         qivUlwVliAuWCNhWttDMkLu5Q0Fz0SbxOLZVfVZouEuDS/aYBUdN2UsosDHr55Mr1xyR
         pk3nhkhWPns0LyJdDqkKlEZE8Eq6OaseMjEwlqY8VJO2UWvBGH10lUO7zhNJMgNO09T9
         kZawSAlfDvBk/dg0IYmDGrfFkOJe/AaC0npqTBldB/VqokexBEIwG2QRzVuNzPQotecR
         y0Bw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765206305; x=1765811105;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qbvy8vPiPeBLmPIIJL9b1OwoeLYk8AFuNuzUbTevJis=;
        b=MIrmB4uf8Y+xmBwVVlaAFOoDLRPue6vk3TitQBExzNn2yvldNz+91O+qnAbWuogSOO
         Fa3zpw966QuaAnG1X46RTQn0Gmrv7OIKapx6Ysx9PMj4WxIWVy9JG5VsNDw3HiVIfH94
         xqDRsWrYOGvv4F+87opNx9mU68SKJrYAs0xxz8G8RetVC+58rBv3YpmvwCgJ560TuL1j
         CBqWiNoOrFs5LpsNelbW41dY1hDH8xKmyDr/SQUHOhIIguthYt7dwgglIyyVSD37WRHg
         /fWWpjUN0Fqk+yedluNVCELz0Dg9GwVgLS1YeMQbVuuClD392PCXjMJV9mik4SgVftf6
         ekrQ==
X-Forwarded-Encrypted: i=1; AJvYcCWAzy96lp0vOtqCx2TlqM6irgWAJ+kdyM+MWLR+5u00IBk7qEQWOVElihyvZDUL7hhbuUSwGfX2PFs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz9zd7b9o6poi+iTcU3AbN8bz39VRrJcHBPtdZw8DWG6l14y3pT
	YNRAXXrLKIfLR32VX85myaKkXfEBrNyPXOi9965eifBqPGu5dMMrDeHbwg7ffTC4Sw==
X-Gm-Gg: ASbGnctNSCzPcWDSx7b3UrNJPXLjJNO78KnGboEvFNAyen10y9MKgzvZTT6x5Dr0dut
	u6RB1X7y7xhCp9sq0WHkwpCjjZXtF439Oy6H46vLHnIt962wBneXY3NKlRYx60IDdjznjOyjz+2
	xVUYHDThp9jodjTM9tGyLfjXRrT0m6qBz64gPCHGgmiMnc8rYqfZo5x7onzAC+wIXChEiCPk64l
	sZ372eN3lGYmvM5QYRWaNnrrb/deLII0q/Wtf40vUOV9DT3FQhdU9ESljbxdw7oLVuffDTlvyAI
	qm+7lpERCXEiTDKW3XEP0f2WerMQUA9ZuPC0hYqaUfw7MLMPYAGOMSueGfdVHRBKiCiUza1Jbu0
	zn1JBnVPvng3cpuKjAWfnD3c77mTeYNcajeAenxMw1Ukqp7L1yMD29Oa6UG/1hsg5GpyajFRbsz
	vE45WJnb9DVeCRIF/byrDJ1Ci5xqHM3iPOX7dRnE9jmsES0Khd8X2PMvAUKi0/FkDUBuhmPtTUN
	2Q=
X-Google-Smtp-Source: AGHT+IF1EdYfXz2+VVZTWqGkJvfeYoxCmbR8+RkXcao7Zy+o/JbtfDBdQeGYae2CkT1ZlEN0T4EIcg==
X-Received: by 2002:a05:600c:c3cb:20b0:47a:7aa0:175a with SMTP id 5b1f17b1804b1-47a7aa0175emr10536955e9.26.1765206304984;
        Mon, 08 Dec 2025 07:05:04 -0800 (PST)
Message-ID: <c3d2a4c4-f591-4bff-b978-18b8c09cf512@suse.com>
Date: Mon, 8 Dec 2025 16:05:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/riscv: add RISC-V legacy SBI extension support
 for guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1764582112.git.oleksii.kurochko@gmail.com>
 <f4e4dc9beef4618ffaabe1c6caec3e10cf78fd5d.1764582112.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f4e4dc9beef4618ffaabe1c6caec3e10cf78fd5d.1764582112.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.12.2025 11:24, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/sbi.h
> +++ b/xen/arch/riscv/include/asm/sbi.h
> @@ -14,8 +14,15 @@
>  
>  #include <xen/cpumask.h>
>  
> -#define SBI_EXT_0_1_CONSOLE_PUTCHAR		0x1
> -#define SBI_EXT_0_1_SHUTDOWN			0x8
> +#define SBI_EXT_0_1_SET_TIMER           0x0
> +#define SBI_EXT_0_1_CONSOLE_PUTCHAR     0x1

Why the padding adjustment when ...

> +#define SBI_EXT_0_1_CONSOLE_GETCHAR     0x2
> +#define SBI_EXT_0_1_CLEAR_IPI           0x3
> +#define SBI_EXT_0_1_SEND_IPI            0x4
> +#define SBI_EXT_0_1_REMOTE_FENCE_I      0x5
> +#define SBI_EXT_0_1_REMOTE_SFENCE_VMA   0x6
> +#define SBI_EXT_0_1_REMOTE_SFENCE_VMA_ASID  0x7

... you immediately have one that doesn't fit?

> --- a/xen/arch/riscv/vsbi/Makefile
> +++ b/xen/arch/riscv/vsbi/Makefile
> @@ -1 +1,2 @@
>  obj-y += vsbi.o
> +obj-y += vsbi-legacy-extension.o

No vsbi- prefixes please underneath vsbi/.

> --- /dev/null
> +++ b/xen/arch/riscv/vsbi/vsbi-legacy-extension.c
> @@ -0,0 +1,37 @@
> +
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/lib.h>
> +#include <xen/sched.h>
> +
> +#include <asm/processor.h>
> +#include <asm/vsbi.h>
> +
> +static int vsbi_legacy_ecall_handler(struct vcpu *vcpu, unsigned long eid,
> +                                     unsigned long fid,
> +                                     struct cpu_user_regs *regs)
> +{
> +    int ret = 0;
> +
> +    switch ( eid )
> +    {
> +    case SBI_EXT_0_1_CONSOLE_PUTCHAR:
> +        printk("%c", (char)regs->a0);

This is guest output, so shouldn't use plain printk().

> +        break;
> +
> +    case SBI_EXT_0_1_CONSOLE_GETCHAR:
> +        regs->a0 = SBI_ERR_NOT_SUPPORTED;

This will be overwritten with the return value you pass to the caller (i.e. 0),
by that caller (i.e. vsbi_handle_ecall()).

> +        break;
> +
> +    default:
> +        panic("%s: Unsupported ecall: FID: #%lx, EID: #%lx\n",
> +              __func__, fid, eid);

Please don't. domain_crash() may be okay to use here, but crashing the hypervisor
because of unexpected guest input isn't okay.

> +		break;

Bad indentation.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 15:15:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 15:15:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180830.1503942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vScxP-0008Lv-J2; Mon, 08 Dec 2025 15:15:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180830.1503942; Mon, 08 Dec 2025 15:15:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vScxP-0008Lo-GV; Mon, 08 Dec 2025 15:15:23 +0000
Received: by outflank-mailman (input) for mailman id 1180830;
 Mon, 08 Dec 2025 15:15:22 +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 <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vScxO-0008Li-4u
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 15:15:22 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b5948ee9-d448-11f0-b15b-2bf370ae4941;
 Mon, 08 Dec 2025 16:15:19 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4779adb38d3so42808015e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 07:15:20 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479308cd87csm263041325e9.0.2025.12.08.07.15.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 07:15:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b5948ee9-d448-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765206919; x=1765811719; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=33jigMewdRtBcQZeZHJNcyU8HJff9PGm416rZH/o8JI=;
        b=bG6MdZ0yQN+GF5C4eZR/9tayeOoHX7ypMc/C2Aoccfdt/9YggwqAjxUWThXHgYZmC5
         mW1OkDEmI5qhI4vneZ6Smg9mQBW8zG7P4wxeR+Nzbt2TOLsaiI0ejwuv/gUAxGKTXuzZ
         p80kwt1SBf5uUC6NMYSTFZc1F7HCi4ZY2bwaoFURpS7EEsEwJWbWt4mD1nEO23kCqqPZ
         oxTeUpzqLIl+M5/Wyc/EAc3tLhep0DnbREAqFrsLruCAlpn5P1/TDZ15VvYzcKlMqxnB
         m67kqYV6p1lwCA8LxIRfvz4vWitHiNqKSSGudebkbcJ+L9pbbrmoWkcLpqzSZsIBwctV
         vxlw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765206919; x=1765811719;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=33jigMewdRtBcQZeZHJNcyU8HJff9PGm416rZH/o8JI=;
        b=Poz0AHk3yeaD55IdLU/L0bboUGpliPFycMXqZru5TJ7IvL2YtDuLLW5xPertMfdgKO
         dLJ/FGB8h5hx7wI9zgNeU9KxUOr4KzdKHzawe8Sz+juof+uYr3eKTUt3JD0YwYcwqx6I
         OzuHhjZgCGwOzI0yE3FSLylSUIf3c+6/n2cbaZIgbGY8AeXRpDoD4kGSIVR+5+GwTiKI
         1YDYI7QcJDJzEUqB9yflsSTxEKY60nfgr490lMr5Fuqe25vNlwPRxq1L/fZBqrFnH7g3
         MvEi9n/cg8UGZHZ2N+DN4qpyNuG6mZDMk3yvbVctjcwgUx+UmrtDT5jtLJk2laSvgsOq
         oDUg==
X-Forwarded-Encrypted: i=1; AJvYcCV0S+4letZ5jT+q+MriEZzrUQ0k7Wt+q4OyjQM2u/OoN11iAIZ2+5tOAEtcUp8lIHLducTxziMkwc8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxRTfs4fM/ujRSPmqGh17dWLu2A2NxM+NequYDbzOjAqcikwpKX
	GzyXY3NvaXBFqlpYH+IzmNDp0Qp6kBqZ5LM1nAZs03vSgP2lSdWoqdgpsg7K7Nz64g==
X-Gm-Gg: ASbGnctSIOq94cg75qCd/Vy14Ae1+G1pCmAkLqug0/kmX8t9rp2TqA4CGuk75cvGf6U
	grV/2X20xM9dSSYi2DDfrewmpnO7ve45O1xp+G8VvcKapKfFEOrxsnqgMIL/ZQb276S2pxzZJD1
	cZ3TJLMSoyt8XgMGg3vsEB7RGl7u3+O/Lj60Xv45EsHKMZt8mbv+k499w8ipsLfAPajnNAbfGAJ
	tbFvS+T5cp/7ZA/n/CpVKNPlEfkJ5LnIHuYwQ43svLOoz/REb4QAKpNEwoNe19jr2FpCRgejMGd
	1qzvbKqPwnhENLlFqoK2eV2mQkDQc01OueoBfZKueL7KQ8sHsq0ToAoXfME7P7YRnWYsr3jAfO1
	/cxmWBEJMKyzdXiPOUNWX/fetIWkK4wBZvhXBvW8m4Jc6kP8xDEL/f3do597IAXxouWBkG6JtAU
	WtOmcWbQtgtXlBp88jk/K+/WTbv32EgmAZYGs5rXQVkYeoUHYc05qrm6fImog4YB/K90YRjCSOi
	Hs=
X-Google-Smtp-Source: AGHT+IGnbrvO1gdgVELhw0Db7yiVvlMBWyj5KdVfXzIlqCnwoQCaJY2cMNoiAYod2Vx/Wy/hdYbiWA==
X-Received: by 2002:a05:600c:524a:b0:477:b734:8c22 with SMTP id 5b1f17b1804b1-47939dfb06cmr74621985e9.8.1765206919504;
        Mon, 08 Dec 2025 07:15:19 -0800 (PST)
Message-ID: <275721bc-07c2-4f69-93c2-e6d3022fee4f@suse.com>
Date: Mon, 8 Dec 2025 16:15:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/3] xen/riscv: add RISC-V virtual SBI base extension
 support for guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1764582112.git.oleksii.kurochko@gmail.com>
 <d17dcac47752681eed6703360389dd542433ab3e.1764582112.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d17dcac47752681eed6703360389dd542433ab3e.1764582112.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.12.2025 11:24, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/arch/riscv/vsbi/vsbi-base-extension.c
> @@ -0,0 +1,52 @@
> +
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/lib.h>
> +#include <xen/sched.h>
> +
> +#include <asm/processor.h>
> +#include <asm/sbi.h>
> +#include <asm/vsbi.h>
> +
> +extern unsigned long __ro_after_init sbi_spec_version;
> +extern long __ro_after_init sbi_fw_id;
> +extern long __ro_after_init sbi_fw_version;
> +
> +static int vsbi_base_ecall_handler(struct vcpu *vcpu, unsigned long eid,
> +                                   unsigned long fid,
> +                                   struct cpu_user_regs *regs)
> +{
> +    int ret = 0;
> +    struct sbiret sbi_ret;
> +
> +    switch ( fid ) {
> +    case SBI_EXT_BASE_GET_SPEC_VERSION:
> +        regs->a1 = sbi_spec_version;

Wouldn't this need to be the minimum of what firmware supports and what Xen
supports / knows about? (Assuming backward compatibility among the spec
versions of course.)

> +        break;
> +    case SBI_EXT_BASE_GET_IMP_ID:
> +        regs->a1 = sbi_fw_id;
> +        break;
> +    case SBI_EXT_BASE_GET_IMP_VERSION:
> +        regs->a1 = sbi_fw_version;

Same concern here, but see also below.

> +        break;
> +    case SBI_EXT_BASE_GET_MVENDORID:
> +    case SBI_EXT_BASE_GET_MARCHID:
> +    case SBI_EXT_BASE_GET_MIMPID:
> +        sbi_ret = sbi_ecall(SBI_EXT_BASE, fid, 0, 0, 0, 0, 0, 0);

This may be okay to do for the hardware domain, but hardly for DomU-s.

Same concern for SBI_EXT_BASE_GET_IMP_ID.

> +        ret = sbi_ret.error;
> +        regs->a1 = sbi_ret.value;
> +        break;
> +    case SBI_EXT_BASE_PROBE_EXT:
> +        regs->a1 = vsbi_find_extension(regs->a0) ? 1 : 0;

At least for hwdom doesn't this also need combining virtual and
underlying physical lookup, if for some extensions you may pass the
requests down to the physical one (as done above)?

> +        break;
> +    default:
> +        panic("%s: Unsupported ecall: FID: #%lx, EID: #%lx\n",
> +              __func__, fid, eid);

Again - inappropriate for anything controlled by guests.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 15:19:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 15:19:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180843.1503952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSd17-0000mT-3z; Mon, 08 Dec 2025 15:19:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180843.1503952; Mon, 08 Dec 2025 15:19:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSd17-0000mM-1H; Mon, 08 Dec 2025 15:19:13 +0000
Received: by outflank-mailman (input) for mailman id 1180843;
 Mon, 08 Dec 2025 15:19:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSd16-0000mE-0c
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 15:19:12 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3e8bcbdf-d449-11f0-9cce-f158ae23cfc8;
 Mon, 08 Dec 2025 16:19:09 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4779ce2a624so58703425e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 07:19:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479310b8e70sm250146325e9.5.2025.12.08.07.19.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 07:19:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3e8bcbdf-d449-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765207149; x=1765811949; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oqjc25lmzwJXbi+0B52kYvNqRwfKzeAlxRIwcAAlDFI=;
        b=HEw83Y9qtgI6henYvcuUW63rwS5IbrJ4MbOOlEv2r6oWAKLC/euGU41FuAYUmvJX5f
         M9vGkNUraRgdb+gjKCXdlG8kurtoAIOMbMzPtf0PN9WsUIz6GasnsXvHgyGlHHmtM0DO
         PAf+4UP7gdtmBo9FAOYFXMl5mkvP49SDHz3HlA0GAOJeqn+M+yLIcxuGzZXdXz8lQe1p
         2xil3RBBiEqV37uDZ16DGGJ4hI9IPTD1DhnQA1Wo4TEOGi1XZGPO1/ojkVm9fI4GdNfT
         aIJ38gFFFQMha3dy3zaP4gDZWbmVI9Gzpi5Wfe9KKLF/VRYtGg64kxhnsp+DOiD1hTL5
         MO0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765207149; x=1765811949;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oqjc25lmzwJXbi+0B52kYvNqRwfKzeAlxRIwcAAlDFI=;
        b=o5oRdX0GRnhzLb3dE6lbdK3Y3VlsnJJgIIa3fYn4+lVqTDGkl/gaMNNDdBqGmghJFk
         mZNiVy4dALhbi52jVp7lUcg1hQOJk9jxyQM9k4mm8optwJJ5c7zcx8kxiyuGA7suSSy1
         e0Gc0HgSZNaSpeKIFHzX3sQ8/cJdioTpSaVR5Fc7MvVdMRcOoWSBev3ORDX0/0z+Qz6M
         J1Y4WbDhJAtTXeuhu7Uo+8iTg1fZRPRm+OM79dcw4L47oNSOGUF+T0GAUaKxuCCxliUD
         MdfqfJgNPlFTsQTi3Y98ImFg1NC1lrHSzc98bZXsjjhA9Razf/fcQWIsQLbgVewTGhws
         lQ2Q==
X-Forwarded-Encrypted: i=1; AJvYcCW0lycCImxFSbunpqpytBO6dp7PUy4spxO5n+m4k4fsRG404UpOj4SUq+IneXXpVFKkzAorx7OUbhs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yygn0m6Ap79oINsuq/bIC1SfSHTizcss43iZx/fXzJs8wfUAMcm
	Lt9YS5sGB7v+f45qEP7OLBdqF51RmITmkgm4fp9e85Cg7auq+fS69VVverQrPI/f5g==
X-Gm-Gg: ASbGncsXyHO4KwAbw3ZKyN+58Ez7KSo0f9G3OwP5S8KvQo7nwb/q0KSorTmY2IZZK8y
	3BDxGDaNEBfjmWKJvh8DLnwkbPY5YSgciwUeXXuywEGWaRP9EPfw3muDE0mcXw4hPYbwu2EsaN8
	vPN0ZpO8QMYkx20Sb5/5b5dYdZRRkPDPPDH21Q7s4UhSf3Bq8BrtAxuzxcULgkDL8PbdKnS2Tjz
	EFdjfvQ2992vUQZ621QGRhxLsNaGeAKrYy97nLET7AJ0J8ywFu8x+QEE8w7R54AOwUXsHm+Dzeg
	arSCEn1h+N5tENljJ4Rpe9kyM+FvMxfgZPkct8Fw/vFE9hdtt7SSb//U33zZOB5Pt49fwBCLQH8
	gu/dQQG1/0wyndNqvAzN7pur5KcsdJE1cqL6DuKYYcc3zM33EqLzwSmdzlEP4+nkOSPomUJC1KJ
	A0Yo2KMxwo1JCPhYYZaVCR41sLDRJS1pT3gC+GlRyJjFV7nqBSVA2hwJCErQiQDzqmZM9uEHonr
	BQ=
X-Google-Smtp-Source: AGHT+IGTskQ/B7PoIdaipYl6QrK1fZeTpnKq0qyym0GU1/DhOjCFDXpCmkahadHsUsBoNnd4yCgOeQ==
X-Received: by 2002:a05:600c:8108:b0:477:a977:b8c2 with SMTP id 5b1f17b1804b1-47939dfdc1fmr72398925e9.13.1765207148908;
        Mon, 08 Dec 2025 07:19:08 -0800 (PST)
Message-ID: <88f0f740-34e4-45b3-8a12-a6c5463e52be@suse.com>
Date: Mon, 8 Dec 2025 16:19:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] x86/svm: Use host_cpu_policy instead of open-coding
 cpuid
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <200f5b367f3a375382324f778c730bc63124d47d.1765204254.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <200f5b367f3a375382324f778c730bc63124d47d.1765204254.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.12.2025 15:58, Teddy Astie wrote:
> host_cpu_policy already fetched the SVM CPUIDs, use it instead of open-coding cpuid.
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
> It very likely doesn't work right now, as host_cpu_policy is not evaluated at this point
> (start_svm is unfortunately called before calculate_host_policy). So this is mostly a intent
> rather than something ready.
> 
> There are also some other things I would like to improve on this, but not sure on the approach.
> 
> It would be nice to move svm_feature_flags to host_cpu_policy, alike other
> bitmap-like leafs we have in cpu_policy. IOW move most of arch/x86/include/asm/hvm/svm/svm.h
> to cpu_policy infrastructure, which could also serve later for properly managing nested SVM
> features of a guest.

See https://lists.xen.org/archives/html/xen-devel/2024-06/msg01546.html

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 15:21:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 15:21:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180854.1503962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSd2t-0002Go-Er; Mon, 08 Dec 2025 15:21:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180854.1503962; Mon, 08 Dec 2025 15:21:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSd2t-0002Gh-Bg; Mon, 08 Dec 2025 15:21:03 +0000
Received: by outflank-mailman (input) for mailman id 1180854;
 Mon, 08 Dec 2025 15:21:01 +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
 <SRS0=ZPsC=6O=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1vSd2r-0002Gb-La
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 15:21:01 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7fe0072d-d449-11f0-b15b-2bf370ae4941;
 Mon, 08 Dec 2025 16:20:59 +0100 (CET)
Received: from DUZPR01CA0049.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:469::9) by AS8PR08MB6007.eurprd08.prod.outlook.com
 (2603:10a6:20b:29e::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 15:20:55 +0000
Received: from DU6PEPF0000B622.eurprd02.prod.outlook.com
 (2603:10a6:10:469:cafe::6d) by DUZPR01CA0049.outlook.office365.com
 (2603:10a6:10:469::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Mon,
 8 Dec 2025 15:21:08 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU6PEPF0000B622.mail.protection.outlook.com (10.167.8.139) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Mon, 8 Dec 2025 15:20:55 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by AS8PR08MB6119.eurprd08.prod.outlook.com (2603:10a6:20b:290::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 15:19:53 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc%5]) with mapi id 15.20.9388.013; Mon, 8 Dec 2025
 15:19:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7fe0072d-d449-11f0-b15b-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=cWlRSUB3N9d5LZThH7ze9GM7oBx8OrlPlfP3NPnPdNFbFy5R5TkBOuiRCDkneaY7peNpTrGQ/cLPXucfnGkqE7S4o42S9geykBN9X8x2D9Fvun4sgjsvrh20nd/FwXA3eRV5lU+JZhlEy8ZR6DcumiW5IlGQpHK/bL93Fvh3zeA+rYLURajSxwZYQuVPmDAMAV4Rcr1ZGJKM8iEg0TFNY1kcPE09zgDtCTcqcPhi87NBPWuu0pI18GMYnRrdxxGbxOXg9VVQM4LqD9DL9KmFSBr8luejSZMdeuDdEopbDvagAC96p8MRLLas4Ahj3Fl93Y04aJFq4znGgt05q/onaA==
ARC-Message-Signature: i=2; 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=uZglb5GKpkqPRjhl3e5G+9xIPgNinmbvgen4Y5C6SjU=;
 b=smeNDDsK4zWTy9ctOa/SUKQS2rEVma1s5DDy9ZDzC9dGimpXUQP7ulwxcd/p11vhSbVTVWblIOe1ZPLzvSJjWM8xxXelnuG7YO85MENv2hXs6BouyLuPMnoyn/d1o757U9TU49G3Pe7oQpbUaUula8WxUAIOXLROkWKNWTeDneApprurZp8wy6+jEDt8USqPTX0aJfSjtMO5g6ogVsxpZFxQDLFj1fg1cEG8uW7sW4/PRkED0tiRuIDkwbsQVKfrS1CILP+Nod7As2seQujzeCH5oLxlV+bt036ZxrgQh46JkAv3bBsThL6LMdRaUll8SU692+RrMeBagKPt4KpDEQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=suse.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uZglb5GKpkqPRjhl3e5G+9xIPgNinmbvgen4Y5C6SjU=;
 b=GqlP/Wd4cQ/lqQFjvgQZKDNg5UhIop1wj62VY2u7xyNTIB9V/s54FC4xeZdW5I6U0y0Qwpgr9cT239rgXoQftxirgtIqsKmKeOk1zFV/2WQB4XKvJYZNmlRC5a7v/UgfdZvhpSAGsRfJirDnaAzZZli+caJYtjm5OdLkxT/Gz3M=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZPYiAEJBIMjYyMYAzoLXAPMGQU+BqO5VcLscRuaUyUDQGHl5jkHVW7hN8K5OgFQfyYb5mGByO/TE/0I9bELpRQXinwdNVwSBRW4eLajmnmj98RjJR6XdzoP08thHHNbLBbuogDBRNrj3aNTvKL540Mi2os6SUx0rNW3b6tFvvmmbQvxkww7mN6FsSCC6pRd8Rosm7okYPOrg84ZiFD+ccWeWVjyeBa90+1xXD7hLfDdLx716RU8hHM/O8JwagpWJiXWnMHxuDSasjc02Qx8q7ZiV4qf2OBwK2bwOlN1VGEY7/u05eAS5bRq5oSiVbCNvl3stfeuKeSgUjpLPpMe5IQ==
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=uZglb5GKpkqPRjhl3e5G+9xIPgNinmbvgen4Y5C6SjU=;
 b=xC1l41p00Y94BSloLG8NDIcSlges9KhxFQ9YKx7vler/Uh7Rsp9YCbHzlHwP3UTv6kLcMR6KY5FipHVcCvCnErmBDWvmX9XEJ8YhGAJPS1HAK51YQ5XKTpDsnHYPEx9t8/n5NdFet+oIjrv31zE7AKvgElkynEHgZJH7NJ7WtUiczSBrK7kjslCNOBtT8RRlwUY0fwtlW6jsrEk1a44EsyDLEUkkwpIoRLptYct+QCHPVi4B5V6URhfZl4bxwH8Rkug5kPSm4UuWn7Px8jbZy1bRFQrDGLhkUeqk0tavrUA/lmMXyirznGNpnKjhE6p8aLgMDHB7J1MpLc6AEoqnsw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uZglb5GKpkqPRjhl3e5G+9xIPgNinmbvgen4Y5C6SjU=;
 b=GqlP/Wd4cQ/lqQFjvgQZKDNg5UhIop1wj62VY2u7xyNTIB9V/s54FC4xeZdW5I6U0y0Qwpgr9cT239rgXoQftxirgtIqsKmKeOk1zFV/2WQB4XKvJYZNmlRC5a7v/UgfdZvhpSAGsRfJirDnaAzZZli+caJYtjm5OdLkxT/Gz3M=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 7/8] symbols: drop symbols-dummy.c
Thread-Topic: [PATCH 7/8] symbols: drop symbols-dummy.c
Thread-Index: AQHcaFHEZgCWYRtzmkm7gvYg23aA3rUX05+AgAABswCAAAYbgA==
Date: Mon, 8 Dec 2025 15:19:53 +0000
Message-ID: <ADB858CD-D8B3-474A-8E1C-1FDB415D51D2@arm.com>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
 <639fb816-c2f6-45d6-9081-238a6b3c5c08@suse.com>
 <ae96860a-02b2-4ae1-ae98-eba0b749ff90@suse.com>
 <47070C53-9EAE-48F8-BACE-B554BAF2DFA2@arm.com>
 <265bbc9b-d9e6-4e1c-b59d-cf77fb4d6786@suse.com>
In-Reply-To: <265bbc9b-d9e6-4e1c-b59d-cf77fb4d6786@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|AS8PR08MB6119:EE_|DU6PEPF0000B622:EE_|AS8PR08MB6007:EE_
X-MS-Office365-Filtering-Correlation-Id: fdbb5109-312d-43ce-accf-08de366d61b5
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|366016|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?iso-8859-1?Q?2/zzyoqyyhl8UINf3ZKRK0Xl6L4hGgLQmqphjMwsCDVJm2wyF8M5zsRWZE?=
 =?iso-8859-1?Q?+ZiMBJ7EXX7f19iA5Ks07+LSagcRYvQW5oKV5UvidLRdBxqo5HO7L/gEnd?=
 =?iso-8859-1?Q?oLWfjkqNKbFqJBJEr7cJ0tsjKaKmb3FWE4gX3NA95arF1h5r1cgq9fHJCf?=
 =?iso-8859-1?Q?OyMPsEsheBfiKL2zJJ4fWiCznNWAHWAuZOvIW3sSxPDukGaFe9VH794tbW?=
 =?iso-8859-1?Q?A2q2qqbx+Cd6McE0DKF+AlI3EEgeRVqjnL9kV7RUZ0eMVulYWgVel41fru?=
 =?iso-8859-1?Q?WClAjKTkOa2EBhEl/MZJrvlJWp1PFhkmwdsrLm8mctCTVrV/Cc2ulb1Le3?=
 =?iso-8859-1?Q?faUNpE8fSbzvdiFPDbLza0VZNy0iBUrPWg/0/YKbOel+s//A7u5ATKWY7T?=
 =?iso-8859-1?Q?SODh6388LFrlRTJeSsoeS+f+nEofkaX9RbyewtTNMYgNW6oV7JIm3zQ1XO?=
 =?iso-8859-1?Q?BtRB8ScuPBmpJfqD50CpjLteggjEuYLtM78zeGZOF3D3aTzi5kDKXv/uF8?=
 =?iso-8859-1?Q?TGcSSl7b+/PjvcnESLodQrOKZK0qAlktFS2ptdLURs8bNE/lqtF/5QqkAI?=
 =?iso-8859-1?Q?0D7JJLkuOMhweWCdhpN12HEhEuAlBBiDzc4/mB+D0iAq82+nAwU7FGBs36?=
 =?iso-8859-1?Q?mIvx1l/w7Sc1Tz6/lRaB1rFL9u8C1nSEUX2/6dnDJHkhR6zg377BP4Vjzn?=
 =?iso-8859-1?Q?f7tMyh03mFGWB9KEg4xqKTWyYWvyLB8xqZuMuYEqZep/F/nt7Cln8uTz5I?=
 =?iso-8859-1?Q?K0BELaUObIk8cpO31m5rkBevzPXFGom2KK1NdBrTIOLfogSgL0T5/CEsUO?=
 =?iso-8859-1?Q?eL9Pa+5OoUT9VkLQAkxLXKAj9ISVSEROS2Wl/5qhnfvi1LpNK2OCZPH4eR?=
 =?iso-8859-1?Q?szqkFyfIWJt308EhZRyvUMVXLDxsXnZ94Cm4BePx497JrzKqMkqkLeaYQP?=
 =?iso-8859-1?Q?4sxuAWAvI5LxE+IsP/zg+W3ohkEXjVyCHqKRWpJVK3wpsengQkOICpHQDh?=
 =?iso-8859-1?Q?lUcCtu/roKUVal1s/Z7zcfxpaU77rNnydUe6yVGv/VRVqaUOml+M16TkNl?=
 =?iso-8859-1?Q?qoBNMqMV8dYaaxuCcp8ZqijjrOSAu9x+JuLvWO1QaieIKt9eGMqfqGEVUO?=
 =?iso-8859-1?Q?JN+2Ak8K7woC7WWBqRw40JstTC9r3DRtUqsVFe8WROaQIw44rVRLV9rHFY?=
 =?iso-8859-1?Q?XCap/k1fEisdtY3/3GxP9BP9kMRBF4LJCSglHFLuEmMoRo0AdsEXPetOgw?=
 =?iso-8859-1?Q?C6cVOaY44GxhqrcQXPD9tzttrxnCLgcO9Ikr2FHqzojcV9z9dPTgOP67I6?=
 =?iso-8859-1?Q?KThlF3EroBVE1uKXyJ5e6tgOpqHJGu28EUJC6V3KxTQowiHx1V3s9qsGkB?=
 =?iso-8859-1?Q?U1UrxwvvAz2F0bmPyoCxu3amyBUYPSEkglM0eCjM4TchoalhIXeagh5tat?=
 =?iso-8859-1?Q?ggGEU6Rncyg4xonOKjfMD1arDXZD2KPn59qzQ0eKushIa/jqbtEncanbKH?=
 =?iso-8859-1?Q?fw3LYBIVrDKSpntnlGjkNHNcUQUe2xDt6n6JmQRi9IR9uuf5RVFaIwEzHs?=
 =?iso-8859-1?Q?pAk0kBbhh/3b5tB3rhk3JmETWj4O?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <503E3020AFD3DB4384350FB637C20362@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6119
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF0000B622.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	9f12e817-a9da-469d-c1a4-08de366d3cd0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|14060799003|82310400026|36860700013|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?+IAaF9VKXCURqMPLrVnUhDqPLKJRnNVlOG5Jl5FVIrjwRBTB/sQ/apeAlb?=
 =?iso-8859-1?Q?Bq1h5cmOop1ANtc5RwYkqYd/mZcuudoWWvuUEsEiVRM7YreH2/C//SvYrK?=
 =?iso-8859-1?Q?21zXwt1lCJYMlTqCMu8XauUYl68qT62xDOW9cCIPboQ+OljgJBFxzIpin6?=
 =?iso-8859-1?Q?TqaijvVCSmyuX55FGDgs/haGcJtCrcTyp7j8SV0fX5FeKpfqdgPsB206rK?=
 =?iso-8859-1?Q?E0PVDWPnTLDu2q3XF2b6vTlhX4lHgFrLZiRU/6WyFdeSXzD5lpf+Pit0OP?=
 =?iso-8859-1?Q?Dgd0CDyMq048U3XZjq22aVo5wuPXJLbkTmaSQvVMN4/Dh8EqJKwR2l6PDI?=
 =?iso-8859-1?Q?qPSc8BrkmJmQ2asI2i9UYLRGn+Nfm8vZlTfZgrLjPm8sS+aXr6JKHUsuGA?=
 =?iso-8859-1?Q?PjmCaLu4DuQQ0LBs849OFViuGTvpWLzn6Nhwjol4gvlyqJYDIs21FEAKH+?=
 =?iso-8859-1?Q?zBi0NEJcMK06S+zqPKii72tLBjzwBNbfaQp3pkzZYd7cGJpljXL1xiaxgv?=
 =?iso-8859-1?Q?dDBAiqzJ1kBR7s33SL4Y17ZA6l7+WkMcCPfr5FpezrhLKLFPjS7H04nJPn?=
 =?iso-8859-1?Q?GVPcSP/O6q9Y1tOwC7zYowYut4LzG3VvfQscvCz7GTNALJoUx33f5iYfGt?=
 =?iso-8859-1?Q?++n74CoTRLrvVvXro4OBKL66LVaGUC4QEfNVidZVUyN+NWxvdLweOIyhUC?=
 =?iso-8859-1?Q?0Fj7aJbk9Ys3JBzcKYMxwadkLcek4sb7ueUBBtf0yfBDixs2r6P9yBQwwi?=
 =?iso-8859-1?Q?ByzLOCuaGl0usEz53vOIoEqE2IMkQiVoCG/EOBF4qQs3RJHPaJNm8NFheE?=
 =?iso-8859-1?Q?wTuWjOyM08UNKreLfQpIKRd7VDxv5ibLMEKYinluRiEAaTgOZkc6sjWQ1p?=
 =?iso-8859-1?Q?RAF1noFr3ZPzKJOY7g4piWASFD4U+r/yZ7I54dqNnHQt8lgfxxuiZHQP+O?=
 =?iso-8859-1?Q?G0/rFhc39nu599nTZ9q9jSMOx3/QtkSWmMfoTCOre2oNpk6/3/++4fmHw9?=
 =?iso-8859-1?Q?V6aH0X5EG8hHqSValf7rReTOqRYrX+iL/splIwTDb1LlFt4mYMJfncSG9a?=
 =?iso-8859-1?Q?RpGPaB+q/3tSbrQeWxJc2L578VMLF/2eP5lafRVkVwTWVxpugxLXb0Jzw+?=
 =?iso-8859-1?Q?Iz+FSIKq0dRmUEa9IKks6p4NnITuluQbO1B5cIs0Va+eJ1B6QHNWhaIrF+?=
 =?iso-8859-1?Q?Tj1LRY6GnWjPP3S7XM6/nOhudKDdvJNraExyrpzIQq6u7+48/U+RwtIheX?=
 =?iso-8859-1?Q?LMlvuYMD9Sl8CYiZ5vtvn8i2+d1k1mb+TROpvM8xAMPQK3FtnAwijS05VC?=
 =?iso-8859-1?Q?+86jZE9Ba6rdUBk2vH6XWxx0Ad3+GYOZ6qTEnIZN4xqAF6pMymlDYN2DmL?=
 =?iso-8859-1?Q?uiFi62SMDdc9wDn9PdIByZGV/aPllny2FH2kLpycVscBnUj/QtkinK8zst?=
 =?iso-8859-1?Q?RhOZQOrPeowJa2N9WyjtOkcLe6lmPc99D/yGKJkd5fDGC23nT+rssxxbbn?=
 =?iso-8859-1?Q?MzitVTQQliB3Nr1NoinrGVJfdboI2kCr0kRcjhmeug2JpNzWr0n6xfOays?=
 =?iso-8859-1?Q?J1Pk68o5F7f6/xCvcX+wuk30IaSx0bfTzgnol2Qn4pYGptEFxWxtS67qcR?=
 =?iso-8859-1?Q?VP7wk+6BZF2ts=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(14060799003)(82310400026)(36860700013)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 15:20:55.0750
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fdbb5109-312d-43ce-accf-08de366d61b5
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU6PEPF0000B622.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6007

Hi Jan,

>>>>=20
>>>=20
>>> Now this is (to me at least) absurd: I'm removing a file, just to find =
the pipeline
>>> fails because cppcheck doesn't like docs/misra/exclude-list.json contai=
ning a
>>> reference to a non-existing file.
>>>=20
>>> I'll amend the commit with
>>>=20
>>> --- a/docs/misra/exclude-list.json
>>> +++ b/docs/misra/exclude-list.json
>>> @@ -170,10 +170,6 @@
>>>            "comment": "Imported from Linux, ignore for now"
>>>        },
>>>        {
>>> -            "rel_path": "common/symbols-dummy.c",
>>> -            "comment": "The resulting code is not included in the fina=
l Xen binary, ignore for now"
>>> -        },
>>> -        {
>>>            "rel_path": "crypto/*",
>>>            "comment": "Origin is external and documented in crypto/READ=
ME.source"
>>>        },
>>>=20
>>> but I think such tidying should be optional.
>>=20
>> Can you share the error?
>=20
> + xen/scripts/xen-analysis.py --run-cppcheck --cppcheck-misra -- -j16
> ERROR: Issue with reading file /builds/xen-project/hardware/xen-staging/d=
ocs/misra/exclude-list.json: Malformed path: common/symbols-dummy.c refers =
to /builds/xen-project/hardware/xen-staging/xen/common/symbols-dummy.c that=
 does not exists
>=20

Oh ok I see, seems to me a good feedback from the tool to keep everything c=
onsistent.

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 15:27:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 15:27:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180866.1503972 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSd9J-00031r-41; Mon, 08 Dec 2025 15:27:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180866.1503972; Mon, 08 Dec 2025 15:27:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSd9J-00031k-1H; Mon, 08 Dec 2025 15:27:41 +0000
Received: by outflank-mailman (input) for mailman id 1180866;
 Mon, 08 Dec 2025 15:27:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSd9G-00030R-Vb
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 15:27:38 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6c70eb7b-d44a-11f0-9cce-f158ae23cfc8;
 Mon, 08 Dec 2025 16:27:36 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-42e33956e76so2094566f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 07:27:36 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d331aeasm26029604f8f.37.2025.12.08.07.27.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 07:27:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6c70eb7b-d44a-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765207655; x=1765812455; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=X21/XsyGOixSLXeIFRS7tmetW67PlpexqjAb0yia/28=;
        b=dPSjixzDUDoFNcPnNvgFbTNjG3MUSCM0ETsI7uQupd/Rx2cwI//kL7GQ/7ThoYCIEx
         QspeFiocWSTD1KgO2zYjGzouf4dPOauCMIwHCbTClsF0RB2lz4y5WAuEO+six1s1SGic
         NYVMZ8UTDguGJrD9TUujIZR3ukXeToJIPyEADUjqhPrmGMckP347BjN6KYDXzCvOQwe1
         PC8ZJNY3tZHoXMqXBNNetOf4+Ue5UkBuPsN+1jGF0mAHRwqbMYv0jTAlll6b2U3giQPg
         5b2o7vH9HcYTIchdFzf3jnHDVM7opgXMXAjhtF4Jq31tZSlyrKCdKg3yPqqCq+3SnIoD
         Ecbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765207655; x=1765812455;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=X21/XsyGOixSLXeIFRS7tmetW67PlpexqjAb0yia/28=;
        b=JdsXRJkM5qW/SMbMEfNjr+P84oeNVWxau30+JGNaggcdYSMGaYqIbiin+0+kLE9bfR
         C92fResrOkgu69Ntj0JbbC0TV/cFvP+opKtSdF4ODdrQeRtd9WwXuP6wwxMp7A46Vci4
         xLvQe7iKrTk6W7NcPYD58EFFGGqsz4c2MmhWRtQyMs0k5/oqkmN0OThcCISrpYn5VCM1
         pTU4R8FmPehDTEJ0H6RSj9fj6m78pykCiYD/aY+4xP88ZC6jLBCNL/B7YbH808lV3fIx
         ZPObigOYgBC75j+x8NvBgV+QiQ7HDPoEMBdMIS+4jW1zogCjf8SDw2X6PEkbSGB0zOs6
         P+7w==
X-Forwarded-Encrypted: i=1; AJvYcCWc5EPhxIVjZtAPTCHIeKHE+rEJNAvusjbDzH9Ozc0gVZK8Fhr9+8v9xUZJ4NAevB5gQyT/dFdV5us=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxffz0ZEyGjuyYZZGrXLyHQ/kjh6nKPw5GcUH16BXGe7mgIFsjR
	zvn2RcmH6PH/4JtHAqHl3bUyDZpG2oPUyQ+610GgZBb5i9vUmZlDgNLS9bDvbjTA8A==
X-Gm-Gg: ASbGncuh/XrOsroS7lBikkCcMhfv3SfU69Y6CYqws7qGF6eLfL4BrybftDrFynatfSI
	mi9L0Fzn4QpMtiHyyXZ3fR8YTwKfO1sGh6JTATgmuLb9NgmFaQP55Gu2stVRulWXJxNnwzpAyhn
	gZGqGfoIvWV0Yt/max3aiGIJH6oBeHB3ah7PNmUd4tQeIe1ZGIO8VqOEaOfMgaogmvVufl9z4Jj
	Fmsoo+AP7twLsA+lmMqNksOdMjbY3IH7CL8MJPBMlgLytOSucgb3adxpcA5uwVAeLjUE+w8FnNk
	D/VgCxvUe7vYeux687rwuTOZ0Ka3TzeKY4u4ju+pE9Yh1GCDKh84GX0gwxWWpC58PQ5GIbnGc5q
	9Q6meRSGFoVv8Kcyl0oZmb1VLF/KEa4mnoydY1GLnM2CiYUZOEgrpLapjxlWy29hrv/A7AQyNNv
	9K+Q5zd0EPep9S1qXo71ycTnalD3dMH0CZj1FYcR0iYNE5TQGH7Vl/EcgBzCHJgu0lG63bj2wFM
	gXLTuYdOgzMzw==
X-Google-Smtp-Source: AGHT+IGLZliiqhzXMGk3WimZGjk7T5GDPTYLNjrAnxc3a7YY6GkeSsHOdg6I4t7KmoGnFlk45CpQOw==
X-Received: by 2002:a05:6000:2905:b0:42b:5521:31c6 with SMTP id ffacd0b85a97d-42f89f63592mr9003462f8f.54.1765207655536;
        Mon, 08 Dec 2025 07:27:35 -0800 (PST)
Message-ID: <90711e71-d9e1-486f-bf66-74cc0866e913@suse.com>
Date: Mon, 8 Dec 2025 16:27:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 7/8] symbols: drop symbols-dummy.c
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
 <639fb816-c2f6-45d6-9081-238a6b3c5c08@suse.com>
 <ae96860a-02b2-4ae1-ae98-eba0b749ff90@suse.com>
 <47070C53-9EAE-48F8-BACE-B554BAF2DFA2@arm.com>
 <265bbc9b-d9e6-4e1c-b59d-cf77fb4d6786@suse.com>
 <ADB858CD-D8B3-474A-8E1C-1FDB415D51D2@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ADB858CD-D8B3-474A-8E1C-1FDB415D51D2@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.12.2025 16:19, Luca Fancellu wrote:
>>>> Now this is (to me at least) absurd: I'm removing a file, just to find the pipeline
>>>> fails because cppcheck doesn't like docs/misra/exclude-list.json containing a
>>>> reference to a non-existing file.
>>>>
>>>> I'll amend the commit with
>>>>
>>>> --- a/docs/misra/exclude-list.json
>>>> +++ b/docs/misra/exclude-list.json
>>>> @@ -170,10 +170,6 @@
>>>>            "comment": "Imported from Linux, ignore for now"
>>>>        },
>>>>        {
>>>> -            "rel_path": "common/symbols-dummy.c",
>>>> -            "comment": "The resulting code is not included in the final Xen binary, ignore for now"
>>>> -        },
>>>> -        {
>>>>            "rel_path": "crypto/*",
>>>>            "comment": "Origin is external and documented in crypto/README.source"
>>>>        },
>>>>
>>>> but I think such tidying should be optional.
>>>
>>> Can you share the error?
>>
>> + xen/scripts/xen-analysis.py --run-cppcheck --cppcheck-misra -- -j16
>> ERROR: Issue with reading file /builds/xen-project/hardware/xen-staging/docs/misra/exclude-list.json: Malformed path: common/symbols-dummy.c refers to /builds/xen-project/hardware/xen-staging/xen/common/symbols-dummy.c that does not exists
> 
> Oh ok I see, seems to me a good feedback from the tool to keep everything consistent.

Well. If I remove a file from the xen/ subtree, then seeing empty grep output on that
subtree should allow me to be sufficiently sure that no problematic (as in: breaking
the build) references have survived.

Plus while I agree that consistency is desirable to have here, is a stale file ref
really a reason to cause a build to fail? Wouldn't a warning suffice?

How many tools' behaviors can we (as developers, reviewers, and committers) keep in
mind when putting together otherwise simple changes?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 15:35:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 15:35:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180880.1503981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSdGv-0004om-VL; Mon, 08 Dec 2025 15:35:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180880.1503981; Mon, 08 Dec 2025 15:35:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSdGv-0004of-Sn; Mon, 08 Dec 2025 15:35:33 +0000
Received: by outflank-mailman (input) for mailman id 1180880;
 Mon, 08 Dec 2025 15:35:32 +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
 <SRS0=jGNe=6O=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vSdGu-0004oZ-P2
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 15:35:32 +0000
Received: from fout-a2-smtp.messagingengine.com
 (fout-a2-smtp.messagingengine.com [103.168.172.145])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 86a31ad9-d44b-11f0-b15b-2bf370ae4941;
 Mon, 08 Dec 2025 16:35:30 +0100 (CET)
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfout.phl.internal (Postfix) with ESMTP id E6A7BEC059A;
 Mon,  8 Dec 2025 10:35:28 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-03.internal (MEProxy); Mon, 08 Dec 2025 10:35:28 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 8 Dec 2025 10:35:27 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 86a31ad9-d44b-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:message-id:mime-version:reply-to:subject:subject:to:to; s=fm1;
	 t=1765208128; x=1765294528; bh=0HG/zquzlucXaxIuwMGaUa1JkVM3dE4t
	+EHv5mS50Tc=; b=rFQoPIm4PnULH6BFT4aUGqUslVTASK9BdoLmYpdTAe1DSLuw
	j5RKfoDW2ELnePmmiLrDtcHJ7+R6Z+fQwT+OTDt8ywgcWWAozUKb3FBx9rG1089p
	BEWIBZ/RIl3xOs9+lxsPbTE4xC9O//hJu40VaXbCbj80Z0z92FMbwcWmm41uvY6w
	yfQgx4nc9OwbgjGNPekILoVvJYwDYVgLOpPzHl0Y35lBd/pKwlcbW7sqN3N72Cs9
	yaw/3m7chTDvOW1vv7Q9sUZ5uX7anQvjfxxbjGKFbjRWndyZk62I6fix98NWLB2R
	+IDnk4sbVz9+R06KUH3Aukk0Ynhp7J7bknnwOw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:message-id:mime-version:reply-to:subject
	:subject:to:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm1; t=1765208128; x=1765294528; bh=0HG/zquzlucXaxIuwMGaUa1JkVM3
	dE4t+EHv5mS50Tc=; b=iaVjUauCSU+pQQebWxypWbiVyzb2v3LIwMyLtZefAOfP
	WnppC2Oc81b13QhUjAWaTy1tKG7OqyQSy2/xpqtH47HCyUKtxqWNj6ha++8lzLqI
	3AkKHNHNhYiG5tdlilo6dryGIjtlmLWkjHeuYwpykt90Y0kaaxsdo+END2RAH4X/
	bZTV9qZ3C5QAu4nPvHtsw/O6vXRePjRRlXs7Ml0uXY2dS3DyNlCipfrtzLsockPe
	S6wvWNjriZnuO6UBFJSNAdQNcJXUdlKOm2NWTniO/Gca5+5m2+6Uzgbbx3WwO8Q5
	W862jLkONM6VGUeblDvWsdJAN777S3+LCaui3WNoOg==
X-ME-Sender: <xms:QPA2adbfajNtn3dOzbwahcdkPVUJjG6usU_LEuXfJIb-dgJNWYJv1g>
    <xme:QPA2abZSEjqNePsFxouB-5cfgn6yoZA4tRYErE08Hs2qvgiUMSpU79HzBjdBoDg5E
    PX-nMxgCL6pKNxqgcICzw0e9wxvjbkQZ4lt3Ng5UX7caXkm>
X-ME-Received: <xmr:QPA2aU_JzrEWe4T7kn5H17hekBZ8KhbTK4nm5MMgRCRBwxpHYnkrvJFudq3kjcHEcg2ItLhIPs1upo8MNov2ccmVCw912ZnKXd3k4WaodgU>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddujedthecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpefhvfevufffkffogggtgfesthekredtredtjeenucfhrhhomhepofgrrhgvkhcuofgr
    rhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvihhsih
    gslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepleekhfduleet
    leelleetteevfeefteffkeetteejheelgfegkeelgeehhfdthedvnecuvehluhhsthgvrh
    fuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhv
    ihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepgedpmhhoug
    gvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigv
    nhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsih
    gslhgvthhhihhnghhslhgrsgdrtghomhdprhgtphhtthhopegtrghrughovgestggrrhgu
    ohgvrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorh
    hg
X-ME-Proxy: <xmx:QPA2aai-3G3IbWHfiFiqxBkYRAn1F6L9o27jgKcDDnn0b-7OBjxI5A>
    <xmx:QPA2aUdTaTqxin3viYOAKAytNpwsdJZwdV4g4Jv19JSOqMRsWsbEsQ>
    <xmx:QPA2aRqNtCV7vM4lOm2K6iRgjfj0RqVVo_rTh-go61eDV34nE6US3Q>
    <xmx:QPA2aZCDiGxspAQxhVa59xwvfqqw2JPelYZiYcpluU1nn5KADCwb5g>
    <xmx:QPA2aR4SAxbUoRbh5dx0UMm7UCm_NYpfnq2EmeUCuseswI3k7kbIWSOW>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] CI: switch KBL console into polling mode
Date: Mon,  8 Dec 2025 16:35:13 +0100
Message-ID: <20251208153519.1198226-1-marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In an attempt to debug/workaround occasional console freeze, switch it
to polling mode. If that helps, it will narrow down the search.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 automation/gitlab-ci/test.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 9eb102a885e5..31616c5710a0 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -187,7 +187,7 @@
   variables:
     PCIDEV: "00:1f.6"
     PCIDEV_INTR: "MSI"
-    CONSOLE_OPTS: "console=com1 com1=115200,8n1,pci,msi"
+    CONSOLE_OPTS: "console=com1 com1=115200,8n1,pci,0"
     SUT_ADDR: test-3.testnet
   tags:
     - qubes-hw3
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 15:55:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 15:55:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180893.1503993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSdaM-000854-IS; Mon, 08 Dec 2025 15:55:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180893.1503993; Mon, 08 Dec 2025 15:55:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSdaM-00084x-EZ; Mon, 08 Dec 2025 15:55:38 +0000
Received: by outflank-mailman (input) for mailman id 1180893;
 Mon, 08 Dec 2025 15:55:37 +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 <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSdaL-00084r-01
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 15:55:37 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 558dc6de-d44e-11f0-b15b-2bf370ae4941;
 Mon, 08 Dec 2025 16:55:35 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-47790b080e4so28066535e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 07:55:35 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479310ca502sm257272645e9.7.2025.12.08.07.55.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 07:55:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 558dc6de-d44e-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765209335; x=1765814135; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UARdBC53eU6s31PDlnbM9DZxzQi1gP/r1hVAu4vCCyc=;
        b=WrtBr/Y3kyh0EVqvNSkyg9b8QiPadc/emL4KA3TS37gn6+1nnRpZgvGxYiNZchPU3X
         iyEH06BuuEbHXNV1t4s9FSNv1JeCWxSBlsMy6sEyhswRD2IcnyxtUzwb/V/3fRZMoKLY
         G6POGVc7kVeRf1Uzw8iB3qSBlgvn9bNsefg4pLzjD4wkQAzMmj+vx06NCi4/AQXGVjiY
         7VY3HZqNKl88LTtfu8c9XPXxzTP7BIfRk7QJnTeYQoHeQrOlpBO/nEveif/VkWhs1jKK
         FrcBALPmkcP/bBfLapJPmS2XE9Uf55w2JP9fE/CWBhMlOob4MvApWZknTBMHwEF/o1b/
         318Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765209335; x=1765814135;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UARdBC53eU6s31PDlnbM9DZxzQi1gP/r1hVAu4vCCyc=;
        b=Mxt5jp/rWs/BnLamdjhsEVOo3iwiUwGh8sODv4xwWYUrXBbkzLtt/Tr1HganPB5oxl
         fRbFteCyIzq2IdZRzW17qVq+1XeGygOOp86zR+z7gOemQbe/msVWXL0aIKB3huA5waVp
         0Tq7R7MkPiznAQfzFmgd1pXwUy3A8Fz+isjhkyvo9dT5CqOM5MKJXezlHlE7Gl4Evh/2
         LxdcjR110yn8sE06HVkc2aXuCWXpOJfJDrlFvHWj2qrwXh8yzPR5vyqOizRce94IdWK0
         gYV5+hgxFzU6/BR1ND6Bq3TVSuS5uLK0yUiosGnMp3GpRb+5E6oqPErs8ocQ+pSNqebp
         fy7w==
X-Forwarded-Encrypted: i=1; AJvYcCUHiq5e4HzqFeW1+JtdrV6FsSp2ZANpaqgbfNJOKpNvGl3Xq0S0sva07fekeMaKCmeLv2Q/A+mjrdE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzItoydH7oxjrWFA1wYDhNu7zdDD+evG6ZJo+aOHp2J7i47bVbP
	C6v4/3KFGWtD7ZiMXL0uycwtkhCNMVE07DyFKDkkbAn5jGbuxkyP7EsY03FYa2APjg==
X-Gm-Gg: ASbGncuSTpuq/nXHRJxObK5kKvDyAcCD3zd2qGeWMb0LjCVK1U16gPv3H/rmjR9Ptsn
	Wxqjidf+aJj1481bOlcmSdWfYzUkMiDnsIJud4h97sUaK/dwGe04MIP3hAe3Znvb02UAahksw7d
	88irG60c1Ijdr1zxXTDBTHd5wGOVTebE1nh/+kFLYN0iy4hvpFZ9gdVQUsN1FsDmmuoj0i7zHGH
	BVxuCrUIpyg1OmqG8HcpV9MeQ/slYW5CISI7v1WKqjos5WcMJM2R0i3BgmcJmddrlrTcT/gsVeH
	z0yXEkMHB/8U30k0swuyUNlISTaQBLHngdfZYZC9jfg/9e2E7H+01lnYNKusWxEbHiI2pWpQ8KN
	jGYmwsOctLV+d3RjsFO/Rw6WsBgJNObwwKmLqkRaVJbcbJAoQ9oGALAHExBvNgscJc2zJATZz+H
	FgMk1AHX74tG8zLW1M6+Iqs/9n+WlAtGKFEcEC0cU/Qgn7HMVNq1SPaG+PQkWe+z+W9dvAyIqT5
	yU=
X-Google-Smtp-Source: AGHT+IE7PuA/6K+t18dGZWHZZj7w9v0OxJkeMD4XTtK/Y2MgziwGN04dYyZ4FvaZ84XIpy1AH1WwMQ==
X-Received: by 2002:a05:600c:a087:b0:477:7925:f7f3 with SMTP id 5b1f17b1804b1-47939df563amr104769865e9.14.1765209335154;
        Mon, 08 Dec 2025 07:55:35 -0800 (PST)
Message-ID: <5610abdb-2390-4621-9345-33a0fef09837@suse.com>
Date: Mon, 8 Dec 2025 16:55:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CI: switch KBL console into polling mode
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251208153519.1198226-1-marmarek@invisiblethingslab.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251208153519.1198226-1-marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.12.2025 16:35, Marek Marczykowski-Górecki wrote:
> In an attempt to debug/workaround occasional console freeze, switch it
> to polling mode. If that helps, it will narrow down the search.

Just to mention: On at least one of my boxes I see such a loss-of-console
issue too, when using MSI. As it's entirely random (and can recover itself
after a while), it so far has escaped debugging attempts.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 16:01:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 16:01:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180902.1504002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSdg9-0001rI-4O; Mon, 08 Dec 2025 16:01:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180902.1504002; Mon, 08 Dec 2025 16:01:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSdg9-0001rB-1I; Mon, 08 Dec 2025 16:01:37 +0000
Received: by outflank-mailman (input) for mailman id 1180902;
 Mon, 08 Dec 2025 16:01:35 +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 <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSdg7-0001r5-7u
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 16:01:35 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2b2124c8-d44f-11f0-b15b-2bf370ae4941;
 Mon, 08 Dec 2025 17:01:34 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-477619f8ae5so36519025e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 08:01:34 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d331e29sm26839643f8f.32.2025.12.08.08.01.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 08:01:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b2124c8-d44f-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765209693; x=1765814493; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=z7GTQAwapMSaxAONp3YIcP9bF4EEZMXJqnu/kjsztk8=;
        b=K/prrGRid3v5sYAVGmIX05VJu9fAcTw9FyJ4fU9aRjCzPxO9t6uP8sFOOC5v5TPQoj
         9nSOB3g9CQQ9M99YEjvUr/hgfAtAxt/+tg5BqZrhelVz0UM/BcHI9jPacQ2q2sD2eQBi
         Fe9Lxx82JR5srq/AG2mMIdHLVTDkQp19RRAQWwc/w6mkz+sWQsle8kQm7+jho0I78Ndq
         b89gLYJv2LFEc6OQpG1FV7q2wSNaRuNQT3yDI/GE1b5aQgwvK1FMpwD4XtFkPzqAZ45w
         qaWAFYFcqXAWTYJDVejf2YvX4LxuvUZDE41eYz5rPM8t+NX25W1TSwpTi/Vntt1MTu+t
         zVFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765209693; x=1765814493;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=z7GTQAwapMSaxAONp3YIcP9bF4EEZMXJqnu/kjsztk8=;
        b=MbE5tsyFSAcX5BszwpOacgNbeLg43EtCq4A76xzJav0YmuvHown6pu5rQboLUhplCK
         Vdx6e3kgQYkzj4d//alnGv3vlbecC58r15xP9cacfOe77aDnKs7JA95XwagZQvcnNcQ+
         gM9pJrLmaSOkF6avjIN/l/zKyVw7lSNnr79AbRORZRXbXHQovup7cQ9UZCjStiNqaMOW
         z+Pn3SbpDpO30iNzoUs6c0RXbwRXSWmrS6awQlY/H5pDrKlDaqFUir+NraQxUFrl4aHQ
         c3arMbeKQLAvexgTot4C/SI31itSmC88m+teBYnYb4CgbA5xp0Etu1GUVjjIjArg3jeS
         EFVA==
X-Forwarded-Encrypted: i=1; AJvYcCWGeuv7q3tG3gDsN+5SfCawLHstn77vZmqhcmq/tiO3IgmXHwkJkLYMrT0MQ7iuP2kiIRg9TI24m/s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwCXxgvJN4+zLgnsR8VGUDSUfpiW4sC7ftXJzsvis3aqnHIOzSJ
	rdn4o8S2qiYdSIhgLqmeSK9FAGjlR8LGuWzEEc+RqTxKNirxdxbtAdadGBnFqSLn1g==
X-Gm-Gg: ASbGncsAo9siXYbIymntiAFJt2WfcNj2Rg22UJG7F/OC2OzqkXzTfDSlVuvt+eKgsfb
	VLtidIA3REdho9UGCIYZblP4Law7veTsAaEKqqgR60QYpzmtZsyXx8FnnxnWzXQa4GBmad8fwtZ
	VHBu09doIVVAp+onPtTk77WYWFxvfWldKb+WhigfBLwqKjJd8ryBDiJlAFk/P9qgMq0Da5s0Rge
	3POVfc+bHllfkMkTNPfOfSqgw0OAuPH1MLEfq8OwYVLE0VnN9hkyO7vBu/X9PgXVNUkJiyoXzyb
	093hq/KEWdQfmj9h/hSTlxM0GRdi/ypzDZRsapYvZ+W+HIDDgW6Xttsa0JLdj9xzC+miNQyaEgo
	WlupzSPgfZUNr/t4Bk6i6rb+2KpE1DLTs4xnzXzgIUFzlyNbd76TLUFCNj4qPXFpBX1L1jRpOEw
	jmSG1WNsR3U0tmCYKYnifQ6vI5Mz4ARMsUYW+cHlxy2goocf4I3c4iLyd/TAQwklpGtFNnodJ5Q
	Zc=
X-Google-Smtp-Source: AGHT+IH3wCDksPt98Boo/rI4VxwbF3djk7cMi2HcAJf9aSX5uD7ZuwuWH1qp1iUFaUT2k4F8aQhUfg==
X-Received: by 2002:a05:600c:3114:b0:477:a977:b8c5 with SMTP id 5b1f17b1804b1-47939e3a61cmr78412815e9.31.1765209693383;
        Mon, 08 Dec 2025 08:01:33 -0800 (PST)
Message-ID: <b2806144-f694-4220-9605-36ccf75f9313@suse.com>
Date: Mon, 8 Dec 2025 17:01:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 09/11] x86: Migrate spec_ctrl vendor checks to
 x86_vendor_is()
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-10-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251126164419.174487-10-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 17:44, Alejandro Vallejo wrote:
> This is the file with the most dramatic effect in terms of DCE, so
> single it out here.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>

If we accept the basic concept, changes like this are of course okay. Just one
remark:

> --- a/xen/arch/x86/spec_ctrl.c
> +++ b/xen/arch/x86/spec_ctrl.c
> @@ -388,7 +388,7 @@ int8_t __ro_after_init opt_xpti_domu = -1;
>  
>  static __init void xpti_init_default(void)
>  {
> -    if ( (boot_cpu_data.vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) ||
> +    if ( (x86_vendor_is(boot_cpu_data.vendor, X86_VENDOR_AMD | X86_VENDOR_HYGON)) ||

Here and elsewhere please keep line length within 80 chars.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 16:04:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 16:04:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180914.1504012 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSdjA-0002Pf-EU; Mon, 08 Dec 2025 16:04:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180914.1504012; Mon, 08 Dec 2025 16:04:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSdjA-0002PY-Be; Mon, 08 Dec 2025 16:04:44 +0000
Received: by outflank-mailman (input) for mailman id 1180914;
 Mon, 08 Dec 2025 16:04:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSdj8-0002PN-P5
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 16:04:42 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9a5b4893-d44f-11f0-9cce-f158ae23cfc8;
 Mon, 08 Dec 2025 17:04:40 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-47775fb6cb4so39190805e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 08:04:40 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479311e7142sm250627015e9.11.2025.12.08.08.04.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 08:04:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a5b4893-d44f-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765209880; x=1765814680; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PD2q+aIGMbRjnQLajzi1FIIMn+lQW9NrQYTkDN5YL/Y=;
        b=a1foIE7pQOB93tfCT0b4ay0YhvdrEFWdusvPiM7bZP2/LDQhEiDQaxs4JoV7zipecv
         DcP0qmk/CMpHtOPh6F8ObUxo+EydZhrAS3REyt43FOjy5Qf40KsIrpwLkFmtxKHwmoCg
         fsrZTvZlP6CHnBMrzAmRuPoH7xXxm9l5JzHG1iKyKD+uCKmsBHF1u4vqpFnWSk4bphBB
         0i+OUY8o0FtoqeshWaB2dp7E8MeL2NsqnKT3VAzpo9BNk0TZDNDtvrjExOl47UEKbkjQ
         HKfUgtn7FuUZmOv+h4khY8HsbYgaDSoy7eFoae11wUDUjxDcostc6iApkedVdCx6VCHR
         fyOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765209880; x=1765814680;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PD2q+aIGMbRjnQLajzi1FIIMn+lQW9NrQYTkDN5YL/Y=;
        b=Qbuz9VGE/UgFi71MxKSfeyFXndi8s2YIQnxlkfYQjxyyUyoWEws9Jlb4xFHAyF4HUD
         CEdY6bUPoq+OE5hpBf8+LfzwWI2wrimFpcpL0MQN05fFM0Ah9an3h8zFuPNQJabiDJWt
         OOgCH9Yp7K6yeOowVVk6ReaYVAPYNy/6JAaQR502CHo79WL7JkqyHKHJwUTDB3ykaida
         m67pvyieN9WVyl2uaDkYdxR10EZt3t0hzhLMUkJ9nVQzWUqNjG1AAp3skmmpa52RJhCL
         wjr521pdCT2jL4YPgieHUPnEeQUgTRuHs+baU3WJv7p2d3S12L6brTcbcWLtuPGD2IJS
         Qt2g==
X-Forwarded-Encrypted: i=1; AJvYcCWVChsWJ7e8TcbF0dtiVSv4wVrPQji6xI+z9mBU3yH8FleN0i37BISLbJk1gXk23T+g2JfJop9W03o=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyo7KYiw+Zul+DDvMaZUgrWasWgb97c6nP6Ns6CGz/8DtwUE+CX
	ESpzHb07CalfFBueV7q1ol9wJ+rOtnabVw+esd509ZrkoPLdB/ippQE6N1ZPME4gJg==
X-Gm-Gg: ASbGnctuDnu8D4erCjSy05/8XZCeus+gcRd2ZOVYmxEFRMgiZTk/XEdZCNbJf+a2NrU
	ejDn5+iPtITM1JM9NwKt4mhbpVem31eGrOcJtyZ6gWERejbtYuzbts+oIvuGdoyULw60uMsJ92K
	7s+6m+eoiCrhg5gLiCvlgcvIbOOVJZqjOGxpLHDSlFmxsxxyQ9wkcX5DXvTO9V1wOFVZOHzqeBa
	jAS9VLIxP3CXQe5ZnT08bvkDSfB6QMl0fp7FSx5+Y+sVD7JPggzK0fLbKCEZXz1yg9qOqjojVVQ
	mECIDbDJSawG09H/9pn/Z00Ixh0Epyu8T11Cn4Yibmoj3WYhm2VlF2bktOthoq+kxyqzjgSbqGm
	O2s4xvu80fUs7WdKz1C3iTrHvoaOIcxhS9qdNJDkb65KtFbJpt2a6ARu1TSS4wyiWX1PdZXj25j
	Sylzs/fl2/+2XyuB8joSDMMranjyS0uSXMHmkS4gUupRq+U43Ls/qb1yDULw1kwEEoeZ9t6Y4u/
	MQ=
X-Google-Smtp-Source: AGHT+IF0WxToV3EqatS1zdXokSESR3o2AaEskF1WbnWBLXzuntvlzY3zGse0pl0ex2tz9X4zTmG25w==
X-Received: by 2002:a05:600c:1991:b0:477:8b77:155f with SMTP id 5b1f17b1804b1-47939df427cmr78644145e9.8.1765209880158;
        Mon, 08 Dec 2025 08:04:40 -0800 (PST)
Message-ID: <73146271-c849-4d16-8eb8-80e7d59f42f2@suse.com>
Date: Mon, 8 Dec 2025 17:04:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 09/11] x86: Migrate spec_ctrl vendor checks to
 x86_vendor_is()
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-10-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251126164419.174487-10-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 17:44, Alejandro Vallejo wrote:
> @@ -938,7 +938,7 @@ static bool __init retpoline_calculations(void)
>   */
>  static bool __init rsb_is_full_width(void)
>  {
> -    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
> +    if ( !x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) ||

One other aspect: If already you touch lines still using the old (being
phased out) field names, please rename at the same time. This may then
also help with line length in some cases.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 16:13:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 16:13:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180927.1504023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSdrh-0004Dp-6E; Mon, 08 Dec 2025 16:13:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180927.1504023; Mon, 08 Dec 2025 16:13:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSdrh-0004Di-2H; Mon, 08 Dec 2025 16:13:33 +0000
Received: by outflank-mailman (input) for mailman id 1180927;
 Mon, 08 Dec 2025 16:13:31 +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 <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSdrf-0004Dc-6x
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 16:13:31 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d5c6ba46-d450-11f0-b15b-2bf370ae4941;
 Mon, 08 Dec 2025 17:13:30 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-477770019e4so49656755e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 08:13:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47930920b6dsm269434355e9.1.2025.12.08.08.13.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 08:13:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d5c6ba46-d450-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765210409; x=1765815209; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gh3qUL4MQb25aPiqKltO/J2z0usckCTLzhS1znvJPMI=;
        b=b7b600OC5Q22dlWkoq/mg69hXVAPxKi8mBnmmLknJAVuFZ7oQpauXCrScpS86sDj76
         BF5gUe9ccWeyGq8KyxfCS3YjfM5lLJEuCvfR08jBiGgNzLG1PGd8ZM90oxUy+15KQWG4
         xbxFzpwlYrH5HGqk0PEuSOZER+rI1oF6ZBVFCsN3xxFP4q+3G9k+ZdqDIOMTwPSMvUth
         g2mmyQSlB7vpeSy2d5TRziYq0UN8HSRgghaL4bZ0tTZO8NS3j8pePAN5eRAWiYedYqZh
         ejvJ9m9JALRseiYel5AyMoRI1RWdnxxftSJgvFsDh2uWh468OqARb30Sv1tlU5onX1BR
         H1LQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765210409; x=1765815209;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gh3qUL4MQb25aPiqKltO/J2z0usckCTLzhS1znvJPMI=;
        b=sUZjewsk2Lpttt5LpAjXXO48YKCr1xBJ0C3kg8027riZtogm3opasgdI6GguUw9OZm
         +Q9i/WYMH0kXWnundbTt/zdXiDyE4bxNvsi2k0lERjkpZB6PvKRe7+8v+vwJ1kyqEp5s
         vCjxlg+lTSVIbxW5Q6LVLBdnMyjF0nzQdUGm7+1KYK1IY+Oxe/giZUmAnTLmjmIAjRhQ
         rpf6EPiNTvYLuvaf4fg8y3/WSKW3WS4tIlNnevucGuYh9MXLcyd0b5gwc7WlIew8Mc6g
         ZnlcACSPDR20fBpOe1p2AjoJrhr+zoihG2oDwkQ6tjoM8r6Rb0gKMBd1C9hBngud8lZk
         abxQ==
X-Forwarded-Encrypted: i=1; AJvYcCUfp9CSkkAQuW5rd1JgiAmShzGLNmQXp4ualJoDZMVjHLxcq+uLphaTmXbPIdcqJVDa2Db5MRKxjMA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzQh3JghQ7Kn278GTkzZtUuSYsoJx7NWtoLFFQWFgfShSwhra4E
	eFb9pwWJ3+xaLTPrtXJf5PX9DJzVluBJ9355lWnd0Mkk3IiWBq+7OSx3xo0LwirvjQ==
X-Gm-Gg: ASbGncuDtGwoLsPd/DA0TPUZBuWYIvVDqurNLkXfYSTaDGB4zTmzRoFKIladsYSDs8k
	ap1/iKtjvJljmHia1D2IGX2z7Usu3snLhkTg94oyXmdtQfB7SlYs7yI7sI0TTkze8X8vauWGHXN
	HClzKb6GDbyoM1IITBV6/hnxuaJ4qzPyWYB86k7fj7Rm593Nsh7SwKhfy4UFgA4J6v2pTrEyWvL
	B84eD1UOQocNENaqih3K+lVfeXM9YKPLtZIi8rD3gweszSa98W3thxQ5f7CkUmizrbUn+aM2Cfc
	6tj7T7FVfpLVReoGzOppH6LCVzhtZNDccguelZzVTFHuwbKUz1x6sYlOBUm8EKHwvW7WcjNKN+y
	qsUUfFylldffYU11zqDC1qGT3l6nK2m2K55YSp6/CTk79cniaxTmDFPdZ5u/+iL0mqHPzxPP1jK
	PO0aBGwzZvazu7UcopopHMMYPo8dG2cz8chwfDQUo7NCjeafAXyGsLYelWV8D5qWfOoZmo7rQsv
	t8=
X-Google-Smtp-Source: AGHT+IGIUIaZqlmHz3Ob8nEv/tYCWZzNzlCm9smYHG4to6GtklGeYl92TYjgsnWPqi0Slu10t+os4w==
X-Received: by 2002:a05:600c:8b65:b0:479:398d:4bbf with SMTP id 5b1f17b1804b1-47939e03c36mr81507865e9.13.1765210409230;
        Mon, 08 Dec 2025 08:13:29 -0800 (PST)
Message-ID: <92dbeef4-6c86-42a7-b92b-21d91c987850@suse.com>
Date: Mon, 8 Dec 2025 17:13:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 01/19] xen/riscv: avoid redundant HGATP*_MODE_SHIFT and
 HGATP*_VMID_SHIFT
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <f2f2e4ad98ca11763a4b754b80ea79121468ee36.1763986955.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f2f2e4ad98ca11763a4b754b80ea79121468ee36.1763986955.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2025 13:33, Oleksii Kurochko wrote:
> It is sufficient to use HGATP*_MODE_MASK and HGATP*_VMID_MASK without
> the corresponding *_SHIFT definitions.
> 
> Rename HGATP{32,64}_PPN to HGATP{32,64}_PPN_MASK to more accurately
> describe their purpose. The top-level HGATP_PPN and related aliases are
> updated accordingly.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 16:22:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 16:22:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180940.1504032 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSe0U-000667-3q; Mon, 08 Dec 2025 16:22:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180940.1504032; Mon, 08 Dec 2025 16:22:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSe0U-000660-0B; Mon, 08 Dec 2025 16:22:38 +0000
Received: by outflank-mailman (input) for mailman id 1180940;
 Mon, 08 Dec 2025 16:22:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSe0T-00065u-FB
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 16:22:37 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1a4294c4-d452-11f0-9cce-f158ae23cfc8;
 Mon, 08 Dec 2025 17:22:34 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-477b5e0323bso29493095e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 08:22:34 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479311e712fsm255673825e9.9.2025.12.08.08.22.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 08:22:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1a4294c4-d452-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765210954; x=1765815754; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Mk8PxYWGsC5xpEbfFbAkZZOsjHO6VGK2YuOX+AiKTtg=;
        b=bG2C+6UYPkpSJvO4Wa/QT3Hr3NTQd7F+pjoNM2m0zQQb1hhNIfmdM1EgEhiLH/vznk
         nD3xWXMq/RN8dfqroX+tb+5AT6Myw1lNPJt6sKo1mlotmbXmovBOhU/P3u95O8wQhFvJ
         RoSccDR9e1nsv6+tAvetsM1LObvbX+F4EnWczlRKoKaytWK0TygJtCyR0mU1fsra95sn
         vK2fXCl6dKeFx3CoEYSD22KBYKRIPdlCh7sVOUuJLXYyWg8amD8KPnGJD/IjGldXe/tC
         IGjaOiaf9Nfy6zmuT+8ikdckqqzRzWu/O5zD9tx+E3RKF1denuGYXRvnq7cUFXSparJ+
         GV2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765210954; x=1765815754;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Mk8PxYWGsC5xpEbfFbAkZZOsjHO6VGK2YuOX+AiKTtg=;
        b=MBRVdrqjuNUdhPIvIc3MvrMAoGSaIMpMlnflymyN2fUpGaAdpZ0Y67VGLWzSVaWEdD
         lY/GcFLkCv2N67yZqD8EtE+VUSteC8cEIZzRSd8gL860qgSlTl6vqJbaweXQcpBy+pyY
         2DANv5B/FAp73ktR4ubUpoX1Hn5R9gJFj8mjL64GgvcrA18daz6lItHUSZzsu7ftBN29
         kdyMrWT1uhgOfIqs8l3QX2dHjpwa/9V1Cfn6BxGWnQXIZ1PhWCicffc4Kp1uz16MqItV
         ErBoL1dPGYZ49QX02EspppNHCLBxBbfMb2FfnIjmHHo9hzWlzCB2RLsx/ugyjliLlcRj
         0rPQ==
X-Forwarded-Encrypted: i=1; AJvYcCUGJiUQEByFhHPTQiKDx+tTnqfS/0PRpPaIEZs1XyJ3NMCVLpv00il7AlxNhRNuS6ktPHHzoMR3+Vk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyk3bhAHqYCdI+8VH29q9On7APwOVz9V9+R60/CGlvSDKUJaCpm
	b7arMx4vr8UaiYUmJ5isa56/2DEhAxqHPpu9dxh0H2gy7R571asm/RKRdbsuAOqmeQ==
X-Gm-Gg: ASbGncvcf+Dmg63bwnexrJNjML0J1AjOczRB35cbJpXIpjmyr6U5ZTxvAt5aksGTWQU
	MkWlgzLgs8jRMzccvp8uFzFAdXagD5wsWEgv+hSLRRBGHTkOQduA3r0Khp5dN8ZGsw5imQ8MU/x
	5UFL8X0pOB2x2IBoVgOTTN8+zPiOvg/VeW08JeBv4lik47I4TRwFFN3wIZJlXZoW7JHGxtDRwHz
	Sv8W2TGgpkwhBOmvBgjfKXtx4MFz5bboh3ckpwtjV6fQKPRyFs1QgZYLm1SzVHLHXWZJWvKOvFr
	l8O0XD8s2xMbhyOmmXLz9oUua9yS+jzMQ3Bmq7lTHnSesIwym9wqnHH4VDZaQ5RpaiJRiQwA4BD
	0kWE1xOA1MkU+6FXovNc5pxmwD00+OseEBWqHFh7QfMW05blc8bljlWQbYwfnP47gkwkW0IvkHz
	jDyuFXoNqtfId9HLWVZa17CmR+Z7X0/D5ijxKChaEzFSdWVsyY1ttRt2TztRSlDzpB3B3ih3wQU
	6k=
X-Google-Smtp-Source: AGHT+IGRkuWmQJ+83eh3oHAt1OCZfRX2hCw5BwjLsm57j4aXVvZtO+DhQ+gKch0ANCx3ZcQ4sLfwcA==
X-Received: by 2002:a05:600c:78a:b0:477:75b4:d2d1 with SMTP id 5b1f17b1804b1-4792eb73092mr113938295e9.15.1765210953608;
        Mon, 08 Dec 2025 08:22:33 -0800 (PST)
Message-ID: <67c222b8-fafe-4af4-be5e-2eb4638af4cf@suse.com>
Date: Mon, 8 Dec 2025 17:22:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 02/19] xen/riscv: detect and initialize G-stage mode
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <0e32a6bd86828952d7494b8d49b48d512f53cada.1763986955.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <0e32a6bd86828952d7494b8d49b48d512f53cada.1763986955.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2025 13:33, Oleksii Kurochko wrote:
> +static void __init gstage_mode_detect(void)
> +{
> +    static const struct gstage_mode_desc modes[] __initconst = {
> +        /*
> +         * Based on the RISC-V spec:
> +         *   Bare mode is always supported, regardless of SXLEN.
> +         *   When SXLEN=32, the only other valid setting for MODE is Sv32.
> +         *   When SXLEN=64, three paged virtual-memory schemes are defined:
> +         *   Sv39, Sv48, and Sv57.
> +         */
> +#ifdef CONFIG_RISCV_32
> +        { HGATP_MODE_SV32X4, 2, "Sv32x4" }
> +#else
> +        { HGATP_MODE_SV39X4, 3, "Sv39x4" },
> +        { HGATP_MODE_SV48X4, 4, "Sv48x4" },
> +        { HGATP_MODE_SV57X4, 5, "Sv57x4" },
> +#endif
> +    };
> +
> +    unsigned int mode_idx;

Can't this move ...

> +    for ( mode_idx = ARRAY_SIZE(modes); mode_idx-- > 0; )

... into here? You don't use the variable outside of the loop.

> +    {
> +        unsigned long mode = modes[mode_idx].mode;
> +
> +        csr_write(CSR_HGATP, MASK_INSR(mode, HGATP_MODE_MASK));
> +
> +        if ( MASK_EXTR(csr_read(CSR_HGATP), HGATP_MODE_MASK) == mode )
> +        {
> +            max_gstage_mode.mode = modes[mode_idx].mode;
> +            max_gstage_mode.paging_levels = modes[mode_idx].paging_levels;
> +            safe_strcpy(max_gstage_mode.name, modes[mode_idx].name);

This looks as if you were overwriting .rodata here (the string literal
"Bare"). You aren't, but why can't the whole copying be a single struct
assignment?

Preferably with the adjustments:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 16:28:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 16:28:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180950.1504042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSe5e-0006q1-L1; Mon, 08 Dec 2025 16:27:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180950.1504042; Mon, 08 Dec 2025 16:27:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSe5e-0006pu-IM; Mon, 08 Dec 2025 16:27:58 +0000
Received: by outflank-mailman (input) for mailman id 1180950;
 Mon, 08 Dec 2025 16:27:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TwXn=6O=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vSe5d-0006pm-4U
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 16:27:57 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d8868558-d452-11f0-9cce-f158ae23cfc8;
 Mon, 08 Dec 2025 17:27:54 +0100 (CET)
Received: from BYAPR06CA0068.namprd06.prod.outlook.com (2603:10b6:a03:14b::45)
 by MW4PR12MB7357.namprd12.prod.outlook.com (2603:10b6:303:219::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 16:27:47 +0000
Received: from SJ1PEPF00002312.namprd03.prod.outlook.com
 (2603:10b6:a03:14b:cafe::f6) by BYAPR06CA0068.outlook.office365.com
 (2603:10b6:a03:14b::45) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Mon,
 8 Dec 2025 16:27:47 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF00002312.mail.protection.outlook.com (10.167.242.166) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Mon, 8 Dec 2025 16:27:47 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 8 Dec
 2025 10:27:46 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 8 Dec
 2025 08:27:46 -0800
Received: from [10.71.194.215] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 8 Dec 2025 08:27:44 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d8868558-d452-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nmm0AlIgqyFaQ7KHeVtJSn3JlXTWL8o2nDfpYHOtU3LlpNbf34JF4eLJfREitNvbk8yELtZJkzYCrYGRyhmt8cWNucwo+O8zr/1qbDlhqFk/i4tJe7CwWcHcWLlVoGSKXxlI1SCbr04biFTi18wCSJ9ZWc+P7O4pNqN2nTsEW7sxBygpoVfhLMTXBplXsh7qclRs3z4Vgy55wUJsOtNBX25mw7s+w0nfHDalP/7ciVnyGC9IAzOte6B4yE7SWsvYomJEWe5ZtSVE0o8n3V6Fha7TVw4KoPAFYShADSOCIgCB3Z4aglYeEfO2eupE6WsdXhG/e1uIxIA771R7J0v4lQ==
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=BcPPs+PzMW7ROKTHDkQvLOrng84m5xKFNI7a1AFCPl8=;
 b=XpJLTdT+4VVzTPttxhHRunK39NcBAvGUd6dksmQLMhL58ezuIIXDGq1nY6ZG3lwq6Dv/nG1axc5YzHLUSBipsNA1Js/eThzCdtjoIgv5jgPGBs4D563S/UQ1HCtCwGnBB1/gROJqig/5gHR80XNZgtkbxiMWN0v6/ySBY35E4vVTPD/s9y6SI0iJUUPsy4Fw0+ZxvLsPt13KUgNqFSigz/bt2i4cmixCyM+Bnad7VmoWlVi/0/jR3W5w0L/Dq/JJ6phYIAcOnpmEztcs592WDpgy8S2b5TD1A7uxQAK/1J6Jfkb4QkVAyufSUki61zmoHA1c7VN6fX/ub3LnZFIiGQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BcPPs+PzMW7ROKTHDkQvLOrng84m5xKFNI7a1AFCPl8=;
 b=We5uPmig7+ANGH6xtn41m9QjiQ0OiFglLan1kedaQ1oLT18g/7c7WHLCYGVGoPGVJMNuDbuzc1MyWF2bbRksPhMkX0SeHeAA05pzncxD3Oaja/i5VvfVj+sEjeuBxDrz6yQBN3SLXcNr2UIahsUcYOEQ9qsFCSvr1xQgJqgxI+Y=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <47752be3-e6b8-4d48-99a2-e13a31fc3c12@amd.com>
Date: Mon, 8 Dec 2025 17:27:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen: move vcpu_kick() declaration to common header
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Timothy Pearson <tpearson@raptorengineering.com>
References: <260f0884737c0d99afc392cf5b0eeb1ba7557437.1764586422.git.oleksii.kurochko@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <260f0884737c0d99afc392cf5b0eeb1ba7557437.1764586422.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002312:EE_|MW4PR12MB7357:EE_
X-MS-Office365-Filtering-Correlation-Id: 4472cf9a-89bd-4c07-b152-08de3676b92c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|36860700013|1800799024|376014|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?N3JnRjFNbGtmd3pyZzh2MVFRTGxVcldmK29NWlZ1c2Z1UVZEZ200eXpFSEp6?=
 =?utf-8?B?VGRFSFkzdHNpQkJ5OEVqYytkdjZ4VzNJTEV3Qlo2d3E5UTRsWGttR00yN2xs?=
 =?utf-8?B?RmRQRmd6Q2JYY3Z5Zk9OUjJZbUMzZzcvZm05RWNFMHV5NFdmeFRsYkhKSDdn?=
 =?utf-8?B?SmJaSDZWM0czMjRldXkrRmplSUtzaDM5WTgwYjFwb3k1c2tSczdrMTRRUEhz?=
 =?utf-8?B?QUlvQ0s4Zkh6Uy9rSEdMYTdsbDkyQ1JFcFY2cFpBZlY0VXpleDFjTXQvL2kr?=
 =?utf-8?B?bmtyWE1BS0dJT1R1dmFiN3NTZlkxeUo0bzBTVFhHNlhiUVF3OS9HbmMrZlRE?=
 =?utf-8?B?a0hVK1Znemh4eURxT3hEanZuQWxYckQ5U3l3d280T2R4WTdIdDBQSjM2VXNM?=
 =?utf-8?B?VS9vbXR1QjJqRWJMTG1pSloranUvYmNlM3Z4VFZPZVZkRk9OaUFWS0d0V1ZU?=
 =?utf-8?B?b3FmcjNNRkNDRnV1RmpZcGVDcW5vTzVxZ0tJenpwRHdJSGZiUUJsYlRYdTRH?=
 =?utf-8?B?VnJ0UHdwWVJObkF6eHJDeitoZjRCVXk5S05LVkhURWlhVEVPOWZFSUhJZWF4?=
 =?utf-8?B?RkRWdlJObk14dzlLOUJCTUlqK1lJaGp4dUZRRjJ6am9iNENhdkFiRlFNZGQv?=
 =?utf-8?B?Q3k2VXMxQUdFbXh4cXBGNCtnTjQ5S3gzand5VnJKeUVOcDVFaWtYenFSU1Jv?=
 =?utf-8?B?RFNIQ1RnS250MkZiK28wYWY0eDNDNys4WkFvUUhKcW4yTU9wTUExc2NxTnRv?=
 =?utf-8?B?cTJKUWdudDBLTkhPbkljSEdWTDZQZU1zMDJVOUVGS2gvVGFFSWtqOXNtQWRa?=
 =?utf-8?B?YXZmNmZ2cVorY29CNFpDM3kyOFhOWldSSUZ3aG1JR0p1RGRVVXBGL09iL0ow?=
 =?utf-8?B?WDNqdTJuOEVQV29BVUFTV0l2THM2ZUFMV2ltcWlJczlXeFVYRTM4V2V6VDZi?=
 =?utf-8?B?RTZmaVIxQmx0aUpUb244QmsvTW1oZHJERmdyaDU3Q2Y2aUtEYXBUWk1aLzgw?=
 =?utf-8?B?dVcwcm1pa094MUxDRlBUcG9JTXAzK3g0Q1ppejV3aGlHeitGREdSYzJZU2NC?=
 =?utf-8?B?TThkU2dlajNacHdPN201eFFGVlNIVmZwMUZnbjZCeUd0Ti9WYVM2RGhsY1pC?=
 =?utf-8?B?S0Y0RlBMdXdJTFl1WEpTK05ZdGRCWU1JaUxYQ3Z1NDl0cnBzTXpyUUNNU3JK?=
 =?utf-8?B?STRaY0hSRUljdUNhT05ueTh0cGpsaUlNc1BNc3pFMGZ4S0htcEw0VHpsa2lZ?=
 =?utf-8?B?UXFoRXF5eVJYSEpuSXhjNnhDOWZwaGhXWHRvQ2swYUIzNWJQdTg2QUVYeCsz?=
 =?utf-8?B?aTdkbEhld21IUEJjc0dQalpHdTZ2WUMxcjc4Q3ROOHhHUy9CRE1KQjkvQ3J0?=
 =?utf-8?B?V0dKaUVWR0ZHck82NDZDYjRtM1EwNDJHSmFvRGw3WmtVZ2hrVE41bHZoODFJ?=
 =?utf-8?B?bEJxRlZXV3VSS3ZDcGhYZS83VGlkM3ptL0ZmVC8zbmo5a0VIdENaZGJTaG9v?=
 =?utf-8?B?MUJuRlNSdTNEVGZHZ2tjbm0zQ1JLNzh5aEdSNkxCTGFzeGJIaE5IU1RmY2Rj?=
 =?utf-8?B?Y1FPNGlVcFRvUzhSaU9zeVY1eS9FYnp5YW1CK2ZRU2xWY2xNSVdmNktjWFov?=
 =?utf-8?B?QTZ5ZHFydmJOVDkraDFETHcrTnZQN241cDRKcmZETldHbldLbUx3SXBCcUtQ?=
 =?utf-8?B?YS9Wc0ZPWVFXRXZ1Q3Q5M0w3SHVRaktMVW1nMmVzR25MNUd5Y240YXVTekdI?=
 =?utf-8?B?YUM1V0FNWHR6ZHkvS0lxblRQKzY5WlFUck5OQnZzR3E1Qk1XbG9LaHc1NSta?=
 =?utf-8?B?WTI2MGdkclhWbjhaYW1yWm1MWXd5N2xQNDhDTExNazhSMFQrY3NKckg4bXJZ?=
 =?utf-8?B?a1A3R0E1ckdCV2VRNk80TExpaEdvMnRIL0kxWEx4dkJJWWhYYjJ1eWhGcTdt?=
 =?utf-8?B?Mk4zM2pYK3A2RlVxc2RabG8wN0FUd1BueS9wZVIvMEV4Z1hXWENDYTAyaFhH?=
 =?utf-8?B?MkpGVFU3akhHVnRNV2pLa2FKSzJLL1N4V2M2VWtud3h0SFNVUGcrazUvbVVl?=
 =?utf-8?B?VWZPTWN4NkdJRlJMYnhSTTJ5eDA5TjhxK3ozYzdrcEpBc3BpNnE5MC9FYjE1?=
 =?utf-8?Q?OC0c=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(36860700013)(1800799024)(376014)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 16:27:47.2608
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4472cf9a-89bd-4c07-b152-08de3676b92c
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002312.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7357



On 02/12/2025 10:27, Oleksii Kurochko wrote:
> The vcpu_kick() declaration is duplicated across multiple
> architecture-specific event.h headers (ARM, x86, PPC).
> 
> Remove the redundant declarations and move vcpu_kick() into
> the common xen/include/xen/sched.h header.
> 
> Drop the definition of vcpu_kick() from ppc/include/asm/event.h,
> as it is already provided in ppc/stubs.c.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 16:29:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 16:29:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180958.1504052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSe76-0007KU-Uv; Mon, 08 Dec 2025 16:29:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180958.1504052; Mon, 08 Dec 2025 16:29:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSe76-0007KN-S5; Mon, 08 Dec 2025 16:29:28 +0000
Received: by outflank-mailman (input) for mailman id 1180958;
 Mon, 08 Dec 2025 16:29:27 +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
 <SRS0=TwXn=6O=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vSe75-0007KF-EL
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 16:29:27 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0f62561c-d453-11f0-b15b-2bf370ae4941;
 Mon, 08 Dec 2025 17:29:25 +0100 (CET)
Received: from BY1P220CA0025.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:5c3::12)
 by BY5PR12MB4099.namprd12.prod.outlook.com (2603:10b6:a03:20f::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 16:29:21 +0000
Received: from SJ1PEPF00002316.namprd03.prod.outlook.com
 (2603:10b6:a03:5c3:cafe::c) by BY1P220CA0025.outlook.office365.com
 (2603:10b6:a03:5c3::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Mon,
 8 Dec 2025 16:29:20 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF00002316.mail.protection.outlook.com (10.167.242.170) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Mon, 8 Dec 2025 16:29:20 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 8 Dec
 2025 10:29:20 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 8 Dec 2025 08:29:17 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0f62561c-d453-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yjclh8VP4+uYDPC/6rkIyY0z+dDjfZAmziBW/ednjWVwh3koXbam/8OtAXfimdIu4P5Yjz8Z2QkpI/t0ErZIaiqZc0s77Hd72UTtS5P5tWBAsWve6N4HBbGyea5xtbJnftaks7kdYU23lK4kTlWWbtVT/9tbT+v0wQ573xlNf+xyGgNqxraH8QlEp1z9frjNYRd9I5Xgf2MqZeg+BGl/PfG1/k2PygT4+kvHBc247jLgdyIVMJmvtBuk8akOySvMN6aWEhOuDMkBlTGuk37k16WcZOtJ8dAxJc7Hcn0XGnl3y60mdoFglS3JPW2urjEoTBvR3uAE1a+w9ZFhPx9Z9g==
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=1ez4eHZ3lhJQS4MeN+gO2lFxSdkxYehtXSkZmCMncJM=;
 b=ewLQhbdEzt/JV1q/0RPhMld6x1lTwVqM1BV5sM/bNxjx5dxoT3sqruQ/+optgaFW34Rr4hv5gdLxPr+PJxjvDXnMfyT72ygLdtYnHSJHFMP+QHFJLyzd6sYufgqLaS+nfjHRPh29YjIlWP29e3J/A/dEkAmfhRG6TQH3Qog/ftLjSE3N+CJF2t8fgmc26U6JnegKbjI/ssVo3cLHSE9svXgm+IohATlxAuQWUks07+YUPueunKcfyhpyKOVjB+4/mY2/+4tt4y7tHqv1TcQ8hpo5D0C4QZpl1RqMRkgomDv44p/VIBQ7UzHK/GUC5ESsiUY291JYq04zSoR+dDmxHw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1ez4eHZ3lhJQS4MeN+gO2lFxSdkxYehtXSkZmCMncJM=;
 b=fU8EALd4dDzQkQ2lDol2oA+8daXztcIqFXwxyCHoiCQUboB++ZynVZM4qY/9N4SekQ+pI+gm7zAvwtIU/Csqxabi9Z2wRLC6ome9VpxWifLpBiYO1dpiIkkIdJ93u7HZiKJZE/ocT4iksn40Q3FgPjbjfUe97Eim6r4nkacwKm4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <010a775a-995f-4612-830c-b51d50230aff@amd.com>
Date: Mon, 8 Dec 2025 17:29:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/domain: introduce generic functions for domain
 struct allocation and freeing
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: Roger Pau Monne <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, Connor
 Davis <connojdavis@gmail.com>
References: <be5ac1646fca57c2cc5838d367955bf849c4858c.1764584967.git.oleksii.kurochko@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <be5ac1646fca57c2cc5838d367955bf849c4858c.1764584967.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002316:EE_|BY5PR12MB4099:EE_
X-MS-Office365-Filtering-Correlation-Id: 1c8ebef7-4e54-40c8-d82f-08de3676f0e8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|7416014|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?T0F0YWhRL29uajBzSllwSmw5Uzk5MHE5VXZ3ai8zbm8yVlJWdm5nUjBCdGlt?=
 =?utf-8?B?OUV2ZXlrM3dVbWxJbzFGWXlJdmZEL1hXOXN4NDBaUlZkVUkvUnc0NTg0YVZB?=
 =?utf-8?B?Wmp2T1ZVVittYTZpc04wRWQvNjVLZlZUWlpTcFlHOEw5L0JHUEYvRHJPdCta?=
 =?utf-8?B?RUpkTThaNnRjNFBEVDBZWVU5S1pJaDdLbE82bUFtOXR5VzZVNVJpVTBQOWJO?=
 =?utf-8?B?dWErQnBIVkVUUXVGUHNldm4rdnpIemlqQlg4dS9PSzFZR2svUnJuNHlFaWJY?=
 =?utf-8?B?N1VDdjd4dkIwWFFVV1dLS1FJQVhvNFFtQWQvNTRaWEROZmRwSnRqbjZMSWJw?=
 =?utf-8?B?Y2cxeWppTDBZRzFoRjRHZytnbXEvOENadmR6R3JkaWd5QWFycjlBd0N2MnJH?=
 =?utf-8?B?UTQvRUwveDFMdzlMdE9kKzNXM0ZNaExRRlF4RWkxSGYydWRISmxxVFk5bm1z?=
 =?utf-8?B?cnNxOXZvYlVqQUlLWVdIVG1wL3dZYXp6OGRoeXl6Wk5WKzRiMDVKRTNtL3N4?=
 =?utf-8?B?Y285OGlEckxiRE5ZMnQwQnlPZDk4d3dHcnMrZE8zazFIalQ1QlczMHRidm0w?=
 =?utf-8?B?Z3RzUEpWa1BUM1dXalRrLzlKU0JITG1GblRkZVVoMVY3UVhvVENLcjlMcGs0?=
 =?utf-8?B?NTBxRFM1aWpDVkExYlNNbzVqcUI1SGpUN3BqMzE3QUFFalR3VXlnQ0pUc1dK?=
 =?utf-8?B?ZGJEQng2bGtRakNoZzQycUNvUUxkaEpJOHpOWWFYSUtwTFJzWU1LTDJwK2kr?=
 =?utf-8?B?UU03ajBjdUV2T1VDYkZBVjlmQkFkNFBZNzJ3QmNFZzhncW9jWFhCb0JTbEY0?=
 =?utf-8?B?SEY1bzY3STgydGFnS3UxenNkNGdhOXNGZGFNN3EwT2x3d0ZXa0lnM0tvWDBZ?=
 =?utf-8?B?UUdjTFZrdnR3VUxsaTlaSFlPdnRFODJtbUl2Ry8wUk1nZU8zekozOW9DWnhl?=
 =?utf-8?B?dXkzdk96TTlwSUVPUkJNTFR0Q2FwM1ZPSFBlaDRCVDBvd3JMczBteWdQaXpr?=
 =?utf-8?B?MzZuTGVXN1VueFJzd016aU1ac3NiZkpoTHpYNzZBQ1dTa1AyV1NXSldkL2Nl?=
 =?utf-8?B?Y3piV1J0UEJYdWVMMHJNc2hXd0FqY1hnQzVETDNjcDJ3Q2h6THIxMjNXdDQx?=
 =?utf-8?B?NjJUS3dKRVBKNEJaZDR5VW54OHZ0cnc4YTIrTlBReFlsemF0cUY0SXc5NWtz?=
 =?utf-8?B?SDJ4bm9sTkdZMitURnZOdTh4aEJpc24yV2kxVnFTaWcxZnVGL0hrK3lBQWJL?=
 =?utf-8?B?RjVPOTNXeTdUYXpSNEV6UTdqTWw2aVNTR3REZFRDZzMxYkN6Tkt6dEp1bk1s?=
 =?utf-8?B?R3IzaWhNQVpyU1FqQkx4MmVnOFpkUHdpS0xaTDg3RFlIS1BoSGluamVvUmxG?=
 =?utf-8?B?L1VxMEJMM0JSMHp4ZEVySmxRK3N4YS8rcU5XN21YV1dHTlpOQ2szcjVPM2tB?=
 =?utf-8?B?TEVhcVU4OUVIYnhuQ1BJdFcvdG1JRElpb2NXbTBXTXpJTEZaaGRPakN5R3I0?=
 =?utf-8?B?VG1QdVIvOVhDQWdRWFh6QjFCWkxDUWkwMm9DN3ArTWlBT3I3WTBrRTIwZWd5?=
 =?utf-8?B?d1hWVWxqenV0R2g3Qkc3b3FqZU85RlBpaDJPNVhnVENmelNJRjdkUXNjRXVY?=
 =?utf-8?B?Q3VvbnhrVVJtSU9tZUF2ejhnQktjSjZST3Eyajh4SmVGcWpISGdvbW9mcm9X?=
 =?utf-8?B?ZzdOWEI2dXdrQm1KT2RtZjA2RGtpcE1SaWlVdVFaL003YzhLT2RLY2RCM2xx?=
 =?utf-8?B?dzhwWHUxZlhYTEFNK1dDVFhFWmhGMjVldmxQT0ZGcmRkR1dGbCs0VTM5cUFW?=
 =?utf-8?B?TXBTM0dUaXhtbnVoVHdQdG4vRXhIWHViallwODVHV09SODdkVXJwVjJoT0E4?=
 =?utf-8?B?SkduSmJOb01ZRjVSTW9WZjN6NDdPMyt0c01heGZCajRGQjIrMkE3eDVYNFNm?=
 =?utf-8?B?QVJvMUVKajAxNXZNNDNEa0Vud3B3aEJBTFdET1d4RUV4TWYzOXpQM21VamNZ?=
 =?utf-8?B?eWVqclduUzlRYXpVOEx2NHdvOHNEYlgweUpDTzlHY0JmT2hFNUZYeXFhdFJa?=
 =?utf-8?B?bWxvRnpERy8rbC9OMitFbExCalB1VDM4SjNSdjNIOEQrbGJSbTFuZTZKUDZz?=
 =?utf-8?Q?gyIw=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(7416014)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 16:29:20.7777
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1c8ebef7-4e54-40c8-d82f-08de3676f0e8
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002316.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4099



On 02/12/2025 10:27, Oleksii Kurochko wrote:
> From: Roger Pau Monne <roger.pau@citrix.com>
> 
> Move x86's free_domain_struct() to common code since it is shared between
> architectures.
> 
> Move the x86 version of alloc_domain_struct() to common code as most of the
> logic is architecture-independent. To handle the remaining architectural
> differences, introduce arch_domain_struct_memflags() for x86-specific
> allocation requirements.
> 
> No functional change.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> [Introduce an arch-specific function instead of using a weak function]
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 16:31:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 16:31:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180969.1504062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSe9B-0000Nc-AM; Mon, 08 Dec 2025 16:31:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180969.1504062; Mon, 08 Dec 2025 16:31:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSe9B-0000NV-6z; Mon, 08 Dec 2025 16:31:37 +0000
Received: by outflank-mailman (input) for mailman id 1180969;
 Mon, 08 Dec 2025 16:31:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSe9A-0000NP-3D
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 16:31:36 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5bed1b04-d453-11f0-9cce-f158ae23cfc8;
 Mon, 08 Dec 2025 17:31:34 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4775ae77516so55933595e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 08:31:34 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479311fbaf4sm241710885e9.15.2025.12.08.08.31.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 08:31:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5bed1b04-d453-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765211493; x=1765816293; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=L3kHDBIUo9jqwK9bi59VkEi/ub252Z5T8ntSaXM2/KA=;
        b=ViEZuwSElGW3E4CRG2Us6MypNB0VNOyS4ZPGQ/WOV+5YImx0e2mXDdeMtoEWUQhuBZ
         jA3XVAZwULf3NjAsYot37pL08C0If8TOxuas6fgXELtuAtOCXrT7CY8qBU6oAhNdOEAr
         M3gLs+vqUqmfaOQ41X2JX4hIOkz4+lha+JsXGwGP67QSf4i4cYIHtjJp1jQDmKyI9jpB
         KjWgaMqtxHF9AKRbFHH7cXfuafDAzfVlvhVoF7Yv9GdyPLXostE5KmsC5CNBPQLJwREI
         5Up4muf4Hnxv1YbrSIUbHvPEiQ6ZHa42gSQDlNrTIMilQKP6V+qyoc4B6sWTCNcSqthc
         TmyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765211493; x=1765816293;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=L3kHDBIUo9jqwK9bi59VkEi/ub252Z5T8ntSaXM2/KA=;
        b=r/y0aVTTGFXbDXBwqToU97RfSIBWwTA1WkBN7fuvCUL54UsNKDVjZc/RF1eaCYfGXK
         15UvZqSq6+FOIspEqnnTPbbL73Vqv3HXoC788ob3SgppvKUxljLT9dMQR5DdpaVyZ2v0
         yOEQoq+1mbjmUytw9TWThsdYM9++YDr42BF5ggRlsV79rYg12S/Ifa2qLA0J6Wiu9ZMc
         3tes1pzsQzzqueDQym8f/IrwlLUA2GaGHcfWcgSUtsHVdgJe7yJ64DXyzoLhO6pVBtFl
         2g5CdjzrGJDFbpFh4lDSRmJp5Fa1I+GTPs04k46Dlw2hudEnoHRXF+RdAUv9YFdtIIqS
         CANg==
X-Forwarded-Encrypted: i=1; AJvYcCXxFXBKUwSNvgrKxECZwMJsx07QtrthHYeUe7fdbvQX08Nkt8Ze7utF49OMHpBUlcRWhtAUz+9w524=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzX9vKGsPf1nwkZBaWo90pwOqkd3UFSQep0KeVRFDpmCTirCRrk
	9Bg/eRjVARLP8hYGC4w3yolfe9rawKcYJqp0H+Ha+uE6KtKtL2agYkI78nZks0rOtg==
X-Gm-Gg: ASbGnctFtKeUQYV5BsyDV0WZorzrgUNWIYC01vX+vltkZ30YrP9hjhG1BSPB2z5Q2pw
	gaPVOMY7MWBNi1gcxi/RWOxNlx64nBro22nHKqsXX+DnF8AExDTjjZvFh9Cw3z15xFMX+Ek2bO3
	2tS6EPAPu74XuuT3Ja8uK+cG41v1nuLYAVIULzKJDE5yfD43KNY0Jc3ll8AldIilJ2+YI0pa2VC
	51EceF0FsSQZiAFyDZ8Tf51k3p8dvnaJvYUAWv7HUkQXExRx9aU0Ie2NypXxBcKrFQtvpRr2vvk
	RlxKkE/6gkXHa5FX6Pa7ZrOWqPNfmVYkzH2OlA8eNtEiv7cdaWxl5N1KvZjoIMGq0QzP0rxzXEl
	2Rd4vA6q8sTMEzMxP55AcoiZ67UfHGXmMryhsGmbAGS0t67idA0xc4w9RNTSO2/0R2TdHuEqaGZ
	nLRNK/0CHiqYaOKqMVA2Qd5DY4bNOWgIdE4YMvqjDjDQnJDiAMjjAkZREynvzlv/ZsV5RKro/HS
	jk=
X-Google-Smtp-Source: AGHT+IGaM7RzTIbtD/ohzbE3XlqX156N01oajmn7R3jU8zE7rkOVQQC6TmDv9JYFxPYkoxiifUC+Ug==
X-Received: by 2002:a05:600c:154d:b0:477:7b72:bf9a with SMTP id 5b1f17b1804b1-47939e38729mr81014105e9.28.1765211493293;
        Mon, 08 Dec 2025 08:31:33 -0800 (PST)
Message-ID: <dc12d791-c76e-499c-9731-0163c95203da@suse.com>
Date: Mon, 8 Dec 2025 17:31:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 03/19] xen/riscv: introduce VMID allocation and
 manegement
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <7805662d530eca29c5b0d0afa05a3cd0aac963bb.1763986955.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <7805662d530eca29c5b0d0afa05a3cd0aac963bb.1763986955.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2025 13:33, Oleksii Kurochko wrote:
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -3096,3 +3096,12 @@ the hypervisor was compiled with `CONFIG_XSM` enabled.
>  * `silo`: this will deny any unmediated communication channels between
>    unprivileged VMs.  To choose this, the separated option in kconfig must also
>    be enabled.
> +
> +### vmid (RISC-V)
> +> `= <boolean>`
> +
> +> Default: `true`
> +
> +Permit Xen to use Virtual Machine Identifiers. This is an optimisation which
> +tags the TLB entries with an ID per vcpu. This allows for guest TLB flushes
> +to be performed without the overhead of a complete TLB flush.

Please obey to the alphabetic sorting within this file.

> --- /dev/null
> +++ b/xen/arch/riscv/vmid.c
> @@ -0,0 +1,170 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/domain.h>
> +#include <xen/init.h>
> +#include <xen/sections.h>
> +#include <xen/lib.h>
> +#include <xen/param.h>
> +#include <xen/percpu.h>
> +
> +#include <asm/atomic.h>
> +#include <asm/csr.h>
> +#include <asm/flushtlb.h>
> +#include <asm/p2m.h>
> +
> +/* Xen command-line option to enable VMIDs */
> +static bool __ro_after_init opt_vmid = true;
> +boolean_param("vmid", opt_vmid);
> +
> +/*
> + * VMIDs partition the physical TLB. In the current implementation VMIDs are
> + * introduced to reduce the number of TLB flushes. Each time a guest-physical
> + * address space changes, instead of flushing the TLB, a new VMID is
> + * assigned. This reduces the number of TLB flushes to at most 1/#VMIDs.
> + * The biggest advantage is that hot parts of the hypervisor's code and data
> + * retain in the TLB.
> + *
> + * Sketch of the Implementation:
> + *
> + * VMIDs are a hart-local resource.  As preemption of VMIDs is not possible,
> + * VMIDs are assigned in a round-robin scheme. To minimize the overhead of
> + * VMID invalidation, at the time of a TLB flush, VMIDs are tagged with a
> + * 64-bit generation. Only on a generation overflow the code needs to
> + * invalidate all VMID information stored at the VCPUs with are run on the
> + * specific physical processor. When this overflow appears VMID usage is
> + * disabled to retain correctness.
> + */
> +
> +/* Per-Hart VMID management. */
> +struct vmid_data {
> +   uint64_t generation;
> +   uint16_t next_vmid;
> +   uint16_t max_vmid;
> +   bool used;
> +};
> +
> +static DEFINE_PER_CPU(struct vmid_data, vmid_data);
> +
> +static unsigned int vmidlen_detect(void)
> +{
> +    unsigned int vmid_bits;
> +    unsigned char gstage_mode = get_max_supported_mode();
> +
> +    /*
> +     * According to the RISC-V Privileged Architecture Spec:
> +     *   When MODE=Bare, guest physical addresses are equal to supervisor
> +     *   physical addresses, and there is no further memory protection
> +     *   for a guest virtual machine beyond the physical memory protection
> +     *   scheme described in Section "Physical Memory Protection".
> +     *   In this case, the remaining fields in hgatp must be set to zeros.
> +     * Thereby it is necessary to set gstage_mode not equal to Bare.
> +     */
> +    ASSERT(gstage_mode != HGATP_MODE_OFF);
> +    csr_write(CSR_HGATP,
> +              MASK_INSR(gstage_mode, HGATP_MODE_MASK) | HGATP_VMID_MASK);
> +    vmid_bits = MASK_EXTR(csr_read(CSR_HGATP), HGATP_VMID_MASK);
> +    vmid_bits = flsl(vmid_bits);
> +    csr_write(CSR_HGATP, _AC(0, UL));
> +
> +    /* local_hfence_gvma_all() will be called at the end of pre_gstage_init. */
> +
> +    return vmid_bits;
> +}
> +
> +void vmid_init(void)

With the presently sole caller being __init, this (and likely the helper above)
could be __init. Iirc you intend to also call this as secondary harts come up,
so this may be okay. But then it wants justifing in the description.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 16:39:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 16:39:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180986.1504072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSeGf-0001DB-5y; Mon, 08 Dec 2025 16:39:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180986.1504072; Mon, 08 Dec 2025 16:39:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSeGf-0001D4-2Y; Mon, 08 Dec 2025 16:39:21 +0000
Received: by outflank-mailman (input) for mailman id 1180986;
 Mon, 08 Dec 2025 16:39:19 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1vSeGd-0001Cy-2Q
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 16:39:19 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vSeGc-0009Mz-0X;
 Mon, 08 Dec 2025 16:39:18 +0000
Received: from [2a01:cb15:80df:da00:7079:39df:8b4d:ea79] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vSeGc-005cys-0N;
 Mon, 08 Dec 2025 16:39:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=erDQNhPQnli6NK7O5q8fXQsL8fB1DgElrBNi8bTXA6A=; b=epuqHEc88oc3O0cgCQe8DpvDDd
	hs17FhTrovAXyisKXymYVe2icH9Ex1Jx8XPRdqiLG8YMfz38btKLrbFzckRtnuZU1zyrft6OZZrel
	carb5TknSjXUG9W5FSJplKqbCr0wm1gqkbKtoDaHuGvgSJQEFLUdDdjc8tFwegexAqRM=;
Date: Mon, 8 Dec 2025 17:39:15 +0100
From: Anthony PERARD <anthony@xenproject.org>
To: dmukhin@xen.org
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
	michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
	dmukhin@ford.com
Subject: Re: [PATCH v1 1/2] tests: fixup domid test harness dependencies
Message-ID: <aTb_M48P_nBh73Sc@l14>
References: <20251204123712.721443-1-dmukhin@ford.com>
 <20251204123712.721443-2-dmukhin@ford.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20251204123712.721443-2-dmukhin@ford.com>

On Thu, Dec 04, 2025 at 04:37:11AM -0800, dmukhin@xen.org wrote:
> diff --git a/tools/tests/domid/Makefile b/tools/tests/domid/Makefile
> index 753129029ed9..1a2129d20655 100644
> --- a/tools/tests/domid/Makefile
> +++ b/tools/tests/domid/Makefile
> @@ -14,16 +14,18 @@ $(shell sed -n \
>      's/^[ \t]*# *include[ \t]*[<"]\([^">]*\)[">].*/\1/p' $(1) 2>/dev/null)
>  endef
>  
> -# NB: $1 cannot be a list
> +# $1 target
> +# $2 list of test harnesses
>  define emit-harness-nested-rule
> -$(1): $(CURDIR)/harness.h
> -	mkdir -p $$(@D);
> -	ln -sf $$< $$@;
> +$(1): $(2)
> +	mkdir -p $$(@D); \
> +	for i in $$<; do ln -sf $$$$i $$@; done

This doesn't work.

First, on the first line, the introduction of the backslash mean that
error from `mkdir` are ignored, Make will execute both line in the same
shell instead of 2 separate shell. You would need to add `set -e` if
executing all lines of the recipe in the same shell is useful.

Second, $< only refer to the first prerequisite. So only a single
symlink is created, even if $(2) list multiple files.

Third, if we fix to loop through all the dependencies, the loop will
still only create a single symlink, the last iteration will overwrite
the previous one.

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 16:40:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 16:40:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1180993.1504082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSeHq-0002dg-EV; Mon, 08 Dec 2025 16:40:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1180993.1504082; Mon, 08 Dec 2025 16:40:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSeHq-0002dZ-Bo; Mon, 08 Dec 2025 16:40:34 +0000
Received: by outflank-mailman (input) for mailman id 1180993;
 Mon, 08 Dec 2025 16:40:33 +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 <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSeHp-0002dT-NA
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 16:40:33 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9ceb2964-d454-11f0-b15b-2bf370ae4941;
 Mon, 08 Dec 2025 17:40:32 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-477aa218f20so30228035e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 08:40:32 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479311e712fsm256653615e9.9.2025.12.08.08.40.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 08:40:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9ceb2964-d454-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765212032; x=1765816832; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rTtWllHYA62w7VlcuiZIpXkl1SBHzN8+ONW4oNpSPVM=;
        b=Ls38D8ylzUE7ynU5MfehfQLfjQIFCGpRbt8wGWewR1h64BJ244RmvquFwLaa8G+QE3
         d+LXwA8Dxo2yLzOGlxbTLuhbLYSICtOShxPmJoCQLALzx+UvgXxjnm01vkvww4A05/Ul
         xCfacYY3WRTbgpn7IubNx4Njl5uqZTSQaRg1890YkaX7huHmrYkCuug0rr2vrJ8HTjij
         MTm9vRvSw+yomccbpHz/K3cFczu+w6yMQW7Xn3jh85qvWuOivJ9RKGi8Sm1Hz1Iu6RDQ
         8i7bBMDyJy6UnqEMnaa8Qvze/0bv92gVA4hHiHAFPNj6wMD36OpckNFGv/1KeYhJdGos
         YFxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765212032; x=1765816832;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rTtWllHYA62w7VlcuiZIpXkl1SBHzN8+ONW4oNpSPVM=;
        b=Hklb+FcEO8dEllEw+51KwYizKiMPSqBHncm95c9X6PwSBlQQTi4l2N1WvxhC0npxnL
         gB22hmBVgltjiXysRfrUxZdLb28BREofCpe+yseF/1bt9Vs/6Zb2ccL3zDaLz9jWfk9v
         qlK4wnGE6XmRC3J90nRebGd0+LbfcJW+9RLCZEXRmZ+WxQYy+D9LgflB+9ARYSpVblQz
         8BH1bwEy1i5hFe7XY3e8kBx2I869LMfJ269c7AI2QoHDi9NDJowD0SCTDZIeRjAA70xw
         zBS/8y49TOBljBR3MIsLsAoYTp1Gs7nuNnCRkaQB+WLeJeEi5T0YkWYUbKXEbYGnA5Q+
         QyGg==
X-Forwarded-Encrypted: i=1; AJvYcCUyMQUAUkxo3hg7tWDZQ1OMAPSdStiXE9h8f/6bgTW/JGciA46MCyjyW40b9TzHixX/B/4vO9loMpU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy5CYoceQNa9jK9NLXslXsiiakwCNjpw6OHlRAAGaKpwQewlGxa
	TEN3BoH0B6G22C5GKCYMdZbpcVEiic2P99KQOlOkUgSXPRfTbddcUnbc/3q2YCJe3A==
X-Gm-Gg: ASbGncuF3tUdhiocmqTWxAtesiHiHfh7VX1QMziMqbDayfr2sTso/d4HuI+Es2wlbvL
	NLfgtUpQ9va+9y2tytQs0fQuJ0tB1c3iiOpiwh6YI4WlsnCWeLlyHYZW0b1fOB5HlvqGkIa94KZ
	5BSySBfOTt2d/rA48S9CvPf68kqkKGB5JIwUdcKgGuwWs82efNbvITUGPCRSmps3eiTnbS9Mskr
	pyabLbhK9kU11S848BZW1dWL2R3UPFncISMT1Jybp3zMYNSCXvD45cKdBrh5Ojduct4LsAGO1y/
	MsAq/6OMQN4I3OzufW3wROfPsbC0F1UpGtYU3rvf2RgfKOtlaKHyT0b3Ai8CM3fu37oOI3hV3tP
	RiAXKB3RBYxsgJLfQGlxZT8s0snocaseF1A2hbWqIB3l+S1OA9L24sTIHLbvaYNyhSeNXOmtgXc
	EpQVVbGYMS4pI5ubW3JckAIrmA/TLPDyRpRwW0UBAGlER2uF9oZrHBR7ttNbQSSjOzcuPWUq3hb
	VM=
X-Google-Smtp-Source: AGHT+IGGbkUt5VkmSpLSuTJVagMvVzZSi8WOukoJTdG7air4eB+Oqs5H0s8SQscIL2j987gZiusSFQ==
X-Received: by 2002:a05:600c:c4ac:b0:471:9da:5252 with SMTP id 5b1f17b1804b1-47939e3992cmr76489305e9.29.1765212031865;
        Mon, 08 Dec 2025 08:40:31 -0800 (PST)
Message-ID: <6f9ba762-ba97-4cdb-85aa-ae4886599d19@suse.com>
Date: Mon, 8 Dec 2025 17:40:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 06/19] xen/riscv: add root page table allocation
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <fc5db52dc3076b19d0b7cfa6e5cb541b1ad5d545.1763986955.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <fc5db52dc3076b19d0b7cfa6e5cb541b1ad5d545.1763986955.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2025 13:33, Oleksii Kurochko wrote:
> Introduce support for allocating and initializing the root page table
> required for RISC-V stage-2 address translation.
> 
> To implement root page table allocation the following is introduced:
> - p2m_get_clean_page() and p2m_alloc_root_table(), p2m_allocate_root()
>   helpers to allocate and zero a 16 KiB root page table, as mandated
>   by the RISC-V privileged specification for Sv32x4/Sv39x4/Sv48x4/Sv57x4
>   modes.
> - Update p2m_init() to inititialize p2m_root_order.
> - Add maddr_to_page() and page_to_maddr() macros for easier address
>   manipulation.
> - Introduce paging_ret_to_domheap() to return some pages before
>   allocate 16 KiB pages for root page table.
> - Allocate root p2m table after p2m pool is initialized.
> - Add construct_hgatp() to construct the hgatp register value based on
>   p2m->root, p2m->hgatp_mode and VMID.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 16:53:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 16:53:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181008.1504092 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSeTt-0004Tc-Gr; Mon, 08 Dec 2025 16:53:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181008.1504092; Mon, 08 Dec 2025 16:53:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSeTt-0004TV-E7; Mon, 08 Dec 2025 16:53:01 +0000
Received: by outflank-mailman (input) for mailman id 1181008;
 Mon, 08 Dec 2025 16:53:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSeTs-0004TP-3G
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 16:53:00 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 591e2ecf-d456-11f0-9cce-f158ae23cfc8;
 Mon, 08 Dec 2025 17:52:57 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-47778b23f64so29435325e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 08:52:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479310b693csm245813425e9.4.2025.12.08.08.52.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 08:52:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 591e2ecf-d456-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765212777; x=1765817577; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AkK4SbevVGpFc9xrhQZRO7dsOuBxGU85PZ4zZvmTVO8=;
        b=IganNhztVIslFSYxtK9HR25Bhf2DrnLhnCs0QpxTEo+5j+3czOqR7/WgJgncUwosM3
         XHJIDcTiGk4JyYhdA614Q/SA2mw2DqxsIH8aLCqFVlZOJWi80wEV1QW7fnduaVIipsom
         SlA6SQm947dsrUPfVaaCRPIrz1IwWICE6BWzrvC9dBpjN4If2L7hvYdJk2qU0/F0bS3r
         Pxo2MMNS4nZ4MZEUFWHyXvlpOBxPz6nMjlrKWr6xC3/kXGJ7naWHLSA1aieWev0jOO8M
         IkQMv3Y2ExmwSzd94EdPtlB6D1Gmog7aQC35azqNB6ebeoi75Dq8KQe75DeeJK3+L9yz
         H6Bw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765212777; x=1765817577;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AkK4SbevVGpFc9xrhQZRO7dsOuBxGU85PZ4zZvmTVO8=;
        b=L90juLMYvdChaE+xiPyzawOtZqX5W98/6WrdG7B1VAck+pL42Ih4AUNf9LCBOydDnz
         Lmsg0qrzqa3KAa1XiJ2XLq6CD0i7R2QMDSFI6KqQUXOGkD++77mhN1+we8iqoypwug0C
         mN2TEzw0PHTHDMpIRUkp9jwLcQek14VukpHUCoSm8IUivpi3tJEVxde7Jql7A+lq0KNg
         YjuZ7dmB9lgD2nkRselsBRpDx8nC14Caln5M7daUpfEbv4h4ASnWlFAcAfUPa1Hx6LcZ
         OlcHPrdeIWpIzUYozj0/sVjqkBLSGHsYqppHLbY7rW22DzYRbYJ9cx9zXH2EiEJBzrYI
         4zGg==
X-Forwarded-Encrypted: i=1; AJvYcCXP5J3ymqCYg8r5uTfm8fdR7xrAehbKTLxaGpfy7Qo2jodGTpwlMyXJXiAzixZ+36hojTolDZsWFdk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YweV1wU/TADfrxHEaplJIUutKniA0ji+b8glJug9ahEIar2a/bx
	2g1mqgTzZ1IPhyEf8gr94LKvcCRkkuJ2baCpaOkp7PIKxepk1og3VtaBMuimUqzc1w==
X-Gm-Gg: ASbGncuW+bmpH40WnMM2K+iYIiOqAsMorSfTYVmOJdmv7Wcq6OPXyXW2nxOA9ZAwwzd
	un9XpH3znQGWub4b54/2z6e5Uix/n82xnhf/3lDJBAYHtvIqtMwUXRPhshMBqD9JYqCW/d3qVJr
	Di49GCoj/YBG9t2GIWh9n7lRnbVdo/TbSiKRiM7TTp2ZesLR9eTohc60GAsvTCT+4fIJRuE/5N9
	VOKGkutW4LlWqAi7UynwngEcxLwDE3rw9waGe3Vt79nJaimf2BIfyp3ZnAKhZtnIt8wnUQBY2UE
	/48L6J8Pu9fS587KBNIL2sPaapAr6r1hJ/WpKqqzRRtIW9p7oZBSGL5v6Pq1M3Ut5SSD2MmtVfz
	evmWmySuKmJHus3s3vsE9jkdU1O7c4DwybLZdVgtwJbGnWXTdqjOD9WajzaD2gbMdvXvhMVhR0i
	Gra8m1mL4c+j9x1n8pXrnL35sT9jIw6nP7Zul31uIhzAG2AI9JyO1/HJ+WybwcXqj5txAxJxwFi
	WQ=
X-Google-Smtp-Source: AGHT+IGFE68OxoCxypPQ6IJzfstn6YAYQWkJLyeONVXIzAD1hb+EEH857OovJt+FQVlgGh5y9HAu+A==
X-Received: by 2002:a05:600c:43c5:b0:479:3a88:de60 with SMTP id 5b1f17b1804b1-4793a88dec8mr51086355e9.37.1765212777067;
        Mon, 08 Dec 2025 08:52:57 -0800 (PST)
Message-ID: <8b95ccca-7924-4cf8-818a-094782c6bbea@suse.com>
Date: Mon, 8 Dec 2025 17:52:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 11/19] xen/riscv: implement p2m_set_range()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <5f2812bb3b82ba1f9178eb00f68a85388f862f09.1763986955.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5f2812bb3b82ba1f9178eb00f68a85388f862f09.1763986955.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2025 13:33, Oleksii Kurochko wrote:
> @@ -28,6 +36,77 @@ unsigned char get_max_supported_mode(void)
>      return max_gstage_mode.mode;
>  }
>  
> +static inline unsigned int calc_offset(const struct p2m_domain *p2m,
> +                                       const unsigned int lvl,
> +                                       const paddr_t gpa)
> +{
> +    unsigned int off = (gpa >> P2M_GFN_LEVEL_SHIFT(lvl)) &
> +                       P2M_TABLE_OFFSET(p2m, lvl);
> +
> +    /*
> +     * For P2M_ROOT_LEVEL, `offset` ranges from 0 to 2047, since the root
> +     * page table spans 4 consecutive 4KB pages.
> +     * We want to return an index within one of these 4 pages.
> +     * The specific page to use is determined by `p2m_get_root_pointer()`.
> +     *
> +     * Example: if `offset == 512`:
> +     *  - A single 4KB page holds 512 entries.
> +     *  - Therefore, entry 512 corresponds to index 0 of the second page.
> +     *
> +     * At all other levels, only one page is allocated, and `offset` is
> +     * always in the range 0 to 511, since the VPN is 9 bits long.
> +     */
> +    return off & (PAGETABLE_ENTRIES - 1);
> +}
> +
> +#define P2M_MAX_ROOT_LEVEL 5
> +
> +#define P2M_BUILD_LEVEL_OFFSETS(p2m, var, addr) \
> +    unsigned int var[P2M_MAX_ROOT_LEVEL] = {-1}; \

What use is this initializer? Slot 0 ...

> +    BUG_ON(P2M_ROOT_LEVEL(p2m) >= P2M_MAX_ROOT_LEVEL); \
> +    for ( unsigned int i = 0; i <= P2M_ROOT_LEVEL(p2m); i++ ) \
> +        var[i] = calc_offset(p2m, i, addr);

... is guaranteed to be written to, afaics. With this simplified (or an
explanation given for why it is needed)
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 16:56:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 16:56:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181020.1504102 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSeXK-00051B-VV; Mon, 08 Dec 2025 16:56:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181020.1504102; Mon, 08 Dec 2025 16:56:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSeXK-000514-Sa; Mon, 08 Dec 2025 16:56:34 +0000
Received: by outflank-mailman (input) for mailman id 1181020;
 Mon, 08 Dec 2025 16:56:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mtm3=6O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSeXJ-00050y-LO
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 16:56:33 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d899c249-d456-11f0-9cce-f158ae23cfc8;
 Mon, 08 Dec 2025 17:56:31 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-477a1c28778so60863725e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 08:56:31 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479311e712fsm257413065e9.9.2025.12.08.08.56.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 08:56:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d899c249-d456-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765212991; x=1765817791; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=z5kLCWIjE5Ygv+/+tcW6CuQnS8yltNq71yYUnM1+D0E=;
        b=HwJUndf0z7RKmtqM3/robNKUfcvZcbD72cGlXlZaQrPTTT32fsv431Kdbbg/0d3fMq
         xhNndHKPeKc80xmo19TX055pdEqj/ueUZMJzS0NHN2ZDrLt9DWkkpmkUUC3frVqJhEsY
         ZxYfFGf9Gf7Wdoj3urIUjs/jx7KAqjzbMfY+aEL+R2NHCoJqFJcVGfLPPRYJHuAAPWyw
         bDPNTy5jNRFwzug18h9ILzE8pnKa3NIAa4h2VNM/P7OogWB4nmhi/anxe2sARHmO/NA0
         q7e3BWxiiKLOsRon1JGOcGk5GyvKDAdeH/xway+AuumVzDTT7I3ds1KEXgnkYr2jpuOl
         J+7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765212991; x=1765817791;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=z5kLCWIjE5Ygv+/+tcW6CuQnS8yltNq71yYUnM1+D0E=;
        b=sgyvYrscUHGvaJwLe/SgpJ/jxA+run5rKYpdcD8d21dEyNPb7t2HWjHrXNlgR518nE
         XO4Wmrf5IGyKd7ZvKSsF7HidfKVzt4kbpxfMUzPo0fG9zs/KrlgYgpCGGaIDGxx3DPdZ
         J1TuVxtH30E6ZuwmNi5VJurZkgOQSqbfp5fohD8CFeVITxCesmZXKtVECkb8UmscSeOI
         LXTBtGmieUYtmidQGm9UD4pZ6zXySNasK4JxUtTpsm6XMqYUWZvkLUCaScnu9l9Iq/jZ
         X1RyVcJdOhzNOeg35T7NSsPo0D7futPTVU8uSaCAsRIVwRw3gZdPJUHCBLOvsus6jEy1
         ZNxQ==
X-Forwarded-Encrypted: i=1; AJvYcCV2C402tCyUVLfo6AvLq3hpkrNcpZUL89VYd+vPdxNOBxBXyPLQc2Lh+e9FQ7MPODf2ztlpzbaWILk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwnaArV2VEQiR7LE2NN84EuRIm5nu+TBoqRnvkw46Vs2J/I5r3Y
	BwvpEWjXG77PtMPLjD3EanRcpGPjtzUkrW41PC4sxm2OuO0VcPjXFelm4XynJxCgtw==
X-Gm-Gg: ASbGncsFFUVvbC2EBca9E+YLxrgwYOa3lQdjuM8LDkV7z/q9f4mdZPMq8RqSXdfA1zE
	Ky9pd89g0onHmIDtKSuQ6ZLsHdnMM6eDAU22AHmJlhYPtMdeH2fUqpigbds0dnPQoK7itoqN0XC
	wVrqvcQs3f4p5A2xxEYCrUgBiO9uYJO1lqjlFYcXiplF+x5suliNgQugnrDCrD+GuQ3grfY122j
	AV1ns2V789iR8yCSn0887ptfZTjggMG6gLpbypQ+VeM2ri+6u4tL1UtfPIv/NeOpQzz6fsJE9gG
	G09OpZpH+595D7PvDbwvu71w+l9WObY4SLnRLS3F8m4LpjM+8QZCKR0U9JPXkWCey99hMprEOOw
	Xa1KE3NzMzBvqSnWfp0eypzqj83HalFO8UWqJCNWGnmGMp3hgCsVG+ZSSGUpn2683GtOMYVSBdw
	nT5Af/pyTvYHhAUuqcRFZw6jPb8AitKDEi8ptmebrwZ6ucN/P9ijIfBe5P4sXOSxZjIvJ4/HKMX
	2Q=
X-Google-Smtp-Source: AGHT+IE39RttlhAdRe/g2DiQtcrI5mjBv5P/br9Q/3bFhwBuInsKf8Fxtuh3/DdzWaMyjPfVdPLOtw==
X-Received: by 2002:a05:600c:1e28:b0:477:9986:5e6b with SMTP id 5b1f17b1804b1-47939e35d35mr87322445e9.28.1765212991023;
        Mon, 08 Dec 2025 08:56:31 -0800 (PST)
Message-ID: <405e6e30-4de2-428b-930a-fdfbba8e33c5@suse.com>
Date: Mon, 8 Dec 2025 17:56:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 12/19] xen/riscv: Implement p2m_free_subtree() and
 related helpers
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <a01f603f77d88e28b4c1ca291f8e6011c30fbb04.1763986955.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <a01f603f77d88e28b4c1ca291f8e6011c30fbb04.1763986955.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2025 13:33, Oleksii Kurochko wrote:
> This patch introduces a working implementation of p2m_free_subtree() for RISC-V
> based on ARM's implementation of p2m_free_entry(), enabling proper cleanup
> of page table entries in the P2M (physical-to-machine) mapping.
> 
> Only few things are changed:
> - Introduce and use p2m_get_type() to get a type of p2m entry as
>   RISC-V's PTE doesn't have enough space to store all necessary types so
>   a type is stored outside PTE. But, at the moment, handle only types
>   which fit into PTE's bits.
> 
> Key additions include:
> - p2m_free_subtree(): Recursively frees page table entries at all levels. It
>   handles both regular and superpage mappings and ensures that TLB entries
>   are flushed before freeing intermediate tables.
> - p2m_put_page() and helpers:
>   - p2m_put_4k_page(): Clears GFN from xenheap pages if applicable.
>   - p2m_put_2m_superpage(): Releases foreign page references in a 2MB
>     superpage.
>   - p2m_get_type(): Extracts the stored p2m_type from the PTE bits.
> - p2m_free_page(): Returns a page to a domain's freelist.
> - Introduce p2m_is_foreign() and connected to it things.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 16:57:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 16:57:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181027.1504112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSeY3-0005WO-7T; Mon, 08 Dec 2025 16:57:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181027.1504112; Mon, 08 Dec 2025 16:57:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSeY3-0005WH-4V; Mon, 08 Dec 2025 16:57:19 +0000
Received: by outflank-mailman (input) for mailman id 1181027;
 Mon, 08 Dec 2025 16:57:17 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1vSeY1-0005Vi-Cs
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 16:57:17 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vSeXy-0009hj-2a;
 Mon, 08 Dec 2025 16:57:15 +0000
Received: from [2a01:cb15:80df:da00:7079:39df:8b4d:ea79] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vSeXy-007eR4-2H;
 Mon, 08 Dec 2025 16:57:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=tyh7rUR1TZifH49DZZ/IvKJaatZDA4M+FIa7Um3V2aE=; b=FU8PtWB80aQttr45UUl69Nve4P
	hOBH7re/668cNwuU8RWx1WWL+HG+ZhC7TSsz8ctacHMZcHfB722vxmAu4ZLBEBjoe/8Mv2RuIc1an
	X24G0dtV9fpb6Sys5/AjV1eg5zoOyUMA4Kf/7xPCrhs1lU0+tF/YY/PJE0T/+xKvtTVU=;
Date: Mon, 8 Dec 2025 17:57:12 +0100
From: Anthony PERARD <anthony@xenproject.org>
To: dmukhin@xen.org
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
	michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
	dmukhin@ford.com
Subject: Re: [PATCH v1 0/2] tools/tests: test harness fragment
Message-ID: <aTcDaLfjHNQ410zM@l14>
References: <20251204123712.721443-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20251204123712.721443-1-dmukhin@ford.com>

On Thu, Dec 04, 2025 at 04:37:10AM -0800, dmukhin@xen.org wrote:
> This is a follow-on mini-series based on the original feedback in [1].
> 
> Patch 1 addresses the remaining feedback from [1].

You mean the feedback about the comment? I guess that's addressed by
removing the comment, there's just more unrelated changes in the patch.

> Patch 2 adds a new fragment for auto-generating test harness dependencies.

I feel like this second patch could be made useful, and easier to
review, if a second user of Tests.mk was added.

> [1] https://lore.kernel.org/xen-devel/aLmZLm2_G48yfPWR@l14/
> [2] CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2195624771
> 
> Denis Mukhin (2):
>   tests: fixup domid test harness dependencies
>   tests: introduce Tests.mk fragment
> 
>  tools/Tests.mk             | 34 ++++++++++++++++++++++++++++++++++

If this new file is useful, could you move it "tools/tests/"?

BTW, if we really want some generic test harness makefile, maybe looking
at what was done for "tools/libs/libs.mk" for example.

Cheers,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 17:29:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 17:29:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181057.1504145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSf2W-0001mS-S2; Mon, 08 Dec 2025 17:28:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181057.1504145; Mon, 08 Dec 2025 17:28:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSf2W-0001mL-PU; Mon, 08 Dec 2025 17:28:48 +0000
Received: by outflank-mailman (input) for mailman id 1181057;
 Mon, 08 Dec 2025 17:28:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=g3Ie=6O=bounce.vates.tech=bounce-md_30504962.69370acb.v1-7e7890742db94fc4aa7e377a8804a689@srs-se1.protection.inumbo.net>)
 id 1vSf2W-0001mF-7V
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 17:28:48 +0000
Received: from mail132-20.atl131.mandrillapp.com
 (mail132-20.atl131.mandrillapp.com [198.2.132.20])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5920d3f4-d45b-11f0-9cce-f158ae23cfc8;
 Mon, 08 Dec 2025 18:28:45 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-20.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4dQ88r00dSzFCWfCb
 for <xen-devel@lists.xenproject.org>; Mon,  8 Dec 2025 17:28:44 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 7e7890742db94fc4aa7e377a8804a689; Mon, 08 Dec 2025 17:28:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5920d3f4-d45b-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1765214924; x=1765484924;
	bh=QY17EXRyxEuJNASCYm1LCaEabyJfLQz57lw8TKdiVFg=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=hB/m+SF0dfapydP8qKr5qz/zp32LYMDPXvrX9ROidu2x1GDH54Fd7jEyFoZsyAplr
	 bYrnKCAdJkK3gN9EQd4ybLZV01XBbJJMg2kNBoYGY0EG/5UIdl+wRUBW9BiZ2AEGdM
	 yDsG8kFaI8Kc68Vwv6AhHXbew0FliiAEUYMrGv/88vLWApStgDgpduTYZ23PQ0+CMC
	 W4UbCbhaXQw+nGgwcjn22TkNjUp1aZT7eRUMnOKdSNckzNz7gBrphiTn0hfAUjtKcF
	 nKeskspa9CHCPUIZN26CzXQjyDnKzTz2/R8Q7mRsujYwtoORGR7tpARF/XCq2lEq5h
	 uuIVc6RAcGQvA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1765214924; x=1765475424; i=teddy.astie@vates.tech;
	bh=QY17EXRyxEuJNASCYm1LCaEabyJfLQz57lw8TKdiVFg=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=yMPopVIKupCY2cSyAaxDYGKvc8Fjpm+tc34kXXLPuE8DrPB88c3rSr08OoBptKvzi
	 8eb9N/Ov6/y7YnynIMbzq/hXHz8grFWJz66Hsq5SFhRHIur/DLpEUhsESZsxZm1m+w
	 LMtJj4vXGqABJ6U3WkviaWL0ZTntcflAXZMdA50QSHErLU5P28bnVizKj4mQ+9erwW
	 l4iP1o2aIWHqHjf5LgjvCGYx2nPWx69b19ae1eImPtm+cdEnk9FIiJfnJWf3erQlo5
	 XtvqdZfvfVOwX52UpwHE4LA9e4p619xBry6GN6VaeoOu79c92T0WIS7ZGXwpvxDRWl
	 av1LPXeHoTo2w==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v6=2003/19]=20xen/riscv:=20introduce=20VMID=20allocation=20and=20manegement?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1765214921864
Message-Id: <debd3ec1-2836-4481-aea9-833f04601a7a@vates.tech>
To: "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Alistair Francis" <alistair.francis@wdc.com>, "Bob Eshleman" <bobbyeshleman@gmail.com>, "Connor Davis" <connojdavis@gmail.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com> <7805662d530eca29c5b0d0afa05a3cd0aac963bb.1763986955.git.oleksii.kurochko@gmail.com>
In-Reply-To: <7805662d530eca29c5b0d0afa05a3cd0aac963bb.1763986955.git.oleksii.kurochko@gmail.com>
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.7e7890742db94fc4aa7e377a8804a689?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251208:md
Date: Mon, 08 Dec 2025 17:28:43 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 24/11/2025 =C3=A0 13:36, Oleksii Kurochko a =C3=A9crit=C2=A0:
> diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-li=
ne.pandoc
> index 34004ce282..6c4bfa3603 100644
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -3096,3 +3096,12 @@ the hypervisor was compiled with `CONFIG_XSM` enab=
led.
>   * `silo`: this will deny any unmediated communication channels between
>     unprivileged VMs.  To choose this, the separated option in kconfig mu=
st also
>     be enabled.
> +
> +### vmid (RISC-V)
> +> `=3D <boolean>`
> +
> +> Default: `true`
> +
> +Permit Xen to use Virtual Machine Identifiers. This is an optimisation w=
hich
> +tags the TLB entries with an ID per vcpu. This allows for guest TLB flus=
hes
> +to be performed without the overhead of a complete TLB flush.

Should we regroup all asid/vpid/vmid (which are pretty much the same 
thing with different names and for different arch) under a single 
command-line option ?

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Dec 08 18:46:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 18:46:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181073.1504181 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSgF7-0002u4-JR; Mon, 08 Dec 2025 18:45:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181073.1504181; Mon, 08 Dec 2025 18:45:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSgF7-0002tx-FV; Mon, 08 Dec 2025 18:45:53 +0000
Received: by outflank-mailman (input) for mailman id 1181073;
 Mon, 08 Dec 2025 18:45:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NKnm=6O=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vSgF5-0002tr-Su
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 18:45:52 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1c497c9c-d466-11f0-9cce-f158ae23cfc8;
 Mon, 08 Dec 2025 19:45:47 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by FRWPR03MB11145.eurprd03.prod.outlook.com (2603:10a6:d10:1a2::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 18:45:45 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9388.013; Mon, 8 Dec 2025
 18:45:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1c497c9c-d466-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nUw+8v+6YXvlOS18PX5zob4dS6fCnqhCg62F7uxWIz3ZOzaCTwc2bGgO1InhEz+j6bd0JrLiwa4hOXUXwi49PYeuILUiyQp2Pnm4ZiwKJifz3KxmmmZb8/zxCE3C3pNcm/Osv57ZgEc6zeujglPeuazWQqRHiqVsPl93BpZTDZ5rqYip6+a/uzZDlcNERTEutwjcFcS4MoT/M6DOEJhuuaTIvb3mtlikoJua8cnJudMV4yCLb+pcO/WPDDPAnvEPirTP/u02WuFBdPHMfC4XlwRpXewrXSS0dH9LdVT6UByflZHAH6vjHDVvTRjMncxDMdR1GqRgUmgbZqWAippm3w==
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=ZNPQH+QJ0ObaY4pAsuSpBbpYX+cx/PLdQrpfODRZxdM=;
 b=UwsX+U5/mGDUQJW4XlH+ZWltM/roR3UeffGtEo3XZtC4xMNIQhOZIwbZoNbqsOotazDX0QqktlbdDBX/eA98/46plf+Xvm17oU6eB4fVRhxB+x8cNSo7KLaIzmWa1ZJqUpjV1t07Wzki8l84fszlhwvLVm5dI9UpBJaFtQwM6QarRaGuNhiparFHLkM014cIoRWuCpfxsdlTc9HG1Kn5xwOXWYLNKUTPAlKAgCGweKrzfX5ipFVLHNFewZpIOvy21JV0XkkQ+95DSARlqsSkJ1UyKkaHwanlRr7kGGXIEDC4boc+wYXYkbRQu9fp2wegCdL+tBsBYChApvAy/OTDGw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZNPQH+QJ0ObaY4pAsuSpBbpYX+cx/PLdQrpfODRZxdM=;
 b=cyFwbD1SVCckcQ/PPgCxtKKWnHtTCHeEctBQ56XJJPObVBKHw6kM95vpMEQ3ecMhlBYXnS/+IEc+zG7gH2wxrMHi47QJM/VyxcqsRJ9kHvk9xZuctHPR54OwyTw+df9uCXRN6evLWPG+kyMTFU3k+VC9PFPjP+US5zSJpEShD1+IoH7NvgTniRuCXCKo8LKg36Kn+3wV8JvU0Y0+C4dIISPf+41i2JzXaJ1oO/vursojnApJtHu7oqmGJGJUFLABUOFlv4vwKdfHdsgesdzOLtUqL620YUBTpgzHy1PsrYsPmQM3a9OPuVgF3nNOWdWst6qgVPQlO64pJ/iYX2X9WA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <b358254c-1666-49a8-a7c0-c7bed9e9318d@epam.com>
Date: Mon, 8 Dec 2025 20:45:43 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] RFC: xen/x86: Enable --gc-sections
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20251205222813.277164-1-jason.andryuk@amd.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20251205222813.277164-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0028.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::23) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|FRWPR03MB11145:EE_
X-MS-Office365-Filtering-Correlation-Id: 3aca367f-a68b-4ba5-f523-08de3689ff2b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?K2JrT3ZsamI0UHhyTXplMC8yNXoxUnJCN2hjS0ZqVkhHZHZMMWl4UExLTG9l?=
 =?utf-8?B?R0hrYTJLZ01MaHBkUlV6MlNiRjdTZE9GNWtwUytNQS9BZm96WVlFSTR1ei9G?=
 =?utf-8?B?ZmdlQWRJUlBHckUzRDdKc2NLM2l6VU85RExBNGU1VVFrcFlpaDdYZGFPVThr?=
 =?utf-8?B?RXdoWFVLTWtvSXc4a0pMNWgwU3EwN1JFMzVpT0FKK1pZVXJFME5KMDV4am9Y?=
 =?utf-8?B?YkNKNmxkMVZSSnowYmRCU2xQOVhLYm9JckJ4K2pCOTdURFJPclBsN2lhdGVL?=
 =?utf-8?B?SkhpckVGSkJaR2c5MDFLMlRrR1BobGs3SUVQY2Z0c0g1TDVpYTlDV2ZHanNW?=
 =?utf-8?B?aUcralVxTHZ4U3VDd1FEa0g2SDVXNmtGa1doMW1MbHhQTUUxL2ljcEpmSi9j?=
 =?utf-8?B?TUMyaDRuMk1WbkVuaU1zTlBSSUNvUi85dGlRSE5LM2pZRlVVbmJTNUc1Wlhq?=
 =?utf-8?B?V1dsRVlpRzIyNjVWbGVnSGdRNHdmcE1CL2tCRERFem9sSmdVS3lMYjY2Z1Jo?=
 =?utf-8?B?cmFqaTM0dGxLaDEwTTZ1SUw2aW9pQytnSDlyWHdyYzY3UlQ4T3lucUc4alI4?=
 =?utf-8?B?K1V3OVZNc2MyNzZSbm50bjB4S3ZCcmZxcFN5aytTWkJxVnRxV01yMm1OVTZF?=
 =?utf-8?B?UndaRWh2TWtBTDJCTlZMejN0VnhQeVB4NzhGSVBYODlNcmFUUjVnTDFoM2Fz?=
 =?utf-8?B?dmV1UHp0MmYxa1dTUTk4NXg1Qi9yd0t6UzhRUSs4VlhjMmdmcmFRNDFxLzl0?=
 =?utf-8?B?dFJQdW1PNmJ1b1ZweE40bzU1MlVFcllPbzltbWRTQ0Zxbk40NVljSjJkU3Fx?=
 =?utf-8?B?d1FicXU4WUJsR3RTeE1yelRweWtCSGg5QndLTHdHMmg0QW5Ebk1xQVJCcjNO?=
 =?utf-8?B?UmhhQnVTVFJIN25WbVV6aFdlYk9Dbm16MmpmMnNMakJDRTljNFJJYkI1dlV3?=
 =?utf-8?B?SktmMlNCN2VVamYvY3daNW1MTXpqMXRZVnJqRkkrMTN2dkYxbGpaNmNWeTE5?=
 =?utf-8?B?R2JMOStha2tlbHMxd0x0ZlRaQ2F3R2F5RUo0NkFNMS94eGdTZy95d2U5eU8v?=
 =?utf-8?B?K08zM2Z5NFVZdlJrWmcvWjZuZjNpM01NWFFreTB0cEt1UklHdE9RM3VLck5u?=
 =?utf-8?B?V210Mjh0N3JvekFlRDlTdm1JVGVSb09HeWROdklNOC84SllQVkRYNnFNai9G?=
 =?utf-8?B?d3BGM2praXVtN3hxa0g5TW0vcUVBVFhlZk14aUR1bFVaK3lGbXJ6c0w4MHlW?=
 =?utf-8?B?V2lCYTMweXBXWU5wLzVFc1hRdU92b0ZwTU1aUTdHbzlRLzBlT08vbHcrWTJM?=
 =?utf-8?B?VXIvUDlld1FPY1NTSDRCWElvTlBvUUU4aVBseU5EMlhpMk04OVU3cDZtdC9N?=
 =?utf-8?B?N211NlVyTElHbUREZjdPV2loa2IrWFo4ZTRWc1k1ZWJMMFdIYnY1UFk4eGxZ?=
 =?utf-8?B?ODROVFFFNmZZbkloQXdQNnhwNm1yUnBGMllNWExzcW5MZ0JzL01XbGZIQ0Vk?=
 =?utf-8?B?UXBxWUtxNlN1WTZ2K2szWklzMzZIZ1VJRWJyam01Qnl3cXYralc5YjRTU095?=
 =?utf-8?B?QkVjZ0FoQUgrTFhMT2Z3YVAwcm1OaHlhY2J1d1NtQnBZZnlYWUszZnVsWkxn?=
 =?utf-8?B?U29nVlE3RU1vb1BaRjNyajBwb0FQMzNMbm9weEFIZ0VuRmN4ZzIzRnZGN2Ex?=
 =?utf-8?B?WW0xWFJzb00xa1Q0Umt5UCtMeFpjdEN3L2FlZmFlN3ZJVThEdko5UkFzRW1I?=
 =?utf-8?B?VE9LMml6cVE0MjlYalY4WHVPclZ3ZlM0RnhnWWcvTXcwdC91VHNiS2haUU1P?=
 =?utf-8?B?aUJmWndCMGhvbExZSDJmcHdKeTN5NFlVVWw4cWkvWmNGbEVQR2NvVWtUbzNM?=
 =?utf-8?B?UW5UeXZjUmlNV3pkL1VrTVQ2MTUyL2Q4cTY5WHBSQmFmUDNxREtPNVhNd1Nl?=
 =?utf-8?Q?2uDMMf4ZFjFSPJdJjDyFaU1X+YD73FfU?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UFhpZmtiekpmVkdRUGt3L3RnMllnL0QxRDZQQzNPOVJlbS81eCthV3VpeGpW?=
 =?utf-8?B?T0JEZXJ4TXZJSXllU2VHbjR2RFJOdURXTm5wRzJhQ1BrdEllS2dYYWl1UVlW?=
 =?utf-8?B?Lzd1U3B0OUs1NlRldjRMc2d5bVE0aFJRNDVsNVJidUNpWnh3SG1veXM0NGx1?=
 =?utf-8?B?L1U3blRnU1RVWHN3dDgvZnpvN1VZVUVoZXA2VENwSy9YcVg0Sk1DMjhFNmxG?=
 =?utf-8?B?cS9rMVdlcDMrRG93dzlHRmlvSitwU1ZTclhadDJWRHdBY2szN01ncExhM0xu?=
 =?utf-8?B?SnlibzVXR1laci9PNEEwS1l0eXFsU0xTUDViamZnQWZ0cHFqRW1wVTVlV2dV?=
 =?utf-8?B?dk04WHcrcEpCNFJJVWN1OHFwZVJZemxqRm1ZaHMwdjExbExiSmF1dUh4aFRj?=
 =?utf-8?B?Rnc5UU5TRUdXdmovV3FlUDdNL092aEVQd21PUXZEc0UzSDFuQ2hZRngzTDJQ?=
 =?utf-8?B?RUE2K3diWlNMY2JiblFVN2RHeVFrczI4T2xZeVIvU3dGdC8wL2xyUnA2djhY?=
 =?utf-8?B?ZHFkWnF3eUgxaVhkUEw2N2tZNFFBZmZRM3Rpbm50eFdGcHM4VzZGMFpsZm9o?=
 =?utf-8?B?U2tia0pkNFJSMzIyVFN4dU9MbzZwRmMyZm52S2lMNzB0Y2VkTXRURWN5Kzc2?=
 =?utf-8?B?R0FYZ0NmVDg4UXNEZTQ3cG5nYkFNcFZnNnYxajBsc3V0ZnczRGY2T2NVbVYr?=
 =?utf-8?B?YWM3V2tpRHNhWEdOYlZiZmtmSy90dTlsTkFvWUtjQkI5T2JNRTM4bCtpbHg0?=
 =?utf-8?B?cDdNR2h1eGdMMEgyblJKdnNxN0YrcWxLWFdtVHo5V0FWRUN6UW0xNWdLUmZl?=
 =?utf-8?B?eTlUV1RTdnNUNG56bUVOY2RDNGpwV1ZXeTdpVGJHNlpteVF1VHhjZkVYTmlI?=
 =?utf-8?B?SFVKcGx1bmhzZW1WZDlxWEx5eklMa2FxdWsyaXRabTBwOXh3aTJQV3Jhbkh3?=
 =?utf-8?B?cEhIRUd0MFZKTkVIcjhqSmkxL3oxS1p5MjE3aCsrQ0RaaXc4aGU3RStQdnJi?=
 =?utf-8?B?NldOZ2Y4TG1STk5NbDAvZ3R5SnYrZ0c0ZFBmeU50cXo4MWYyVW9SSTUxVkRP?=
 =?utf-8?B?akY1cjg2UG5qcnpsRENCMVFvUEdxc1VjQUxxWjVHZGt5VDRLZWRHWDlOaUNX?=
 =?utf-8?B?UzFwL1Z3NjV1eDhUSWQxTURLR2VZZHVlbFJJZlVuaXBmbU5uRFF5S05wOTNQ?=
 =?utf-8?B?WVdDOFh1R1R5TTVGaG1WbGtTaDAwUUx1N0x0TDhRN1ZHK1E1SXBKQzgySjcv?=
 =?utf-8?B?aU9INUNleGlNdEpqbHRndUt1RzZoQzNNR1ZkN1hRa1FxRGN2NkJ4Vk9CY01v?=
 =?utf-8?B?QlZBN01OaFU0THRDdkdHaDlYcXBXaG1GZkhTbG1BOUxvYjF5REJZNzZXMmdZ?=
 =?utf-8?B?bjk1R0lNM0pzbEtoYUxpK2FTUG1pSkU4Ynl3SVFvUHdlTWpiWENiQzByazZw?=
 =?utf-8?B?TVRCRUdhMEFMVUYvbjU5dUNod21PNzcwTmVsNENaciszSCtXNCt5WGgwVWhl?=
 =?utf-8?B?WTVtQmwrZ0JTTWZKWW1CYTVNWVpzSjVRbXlpanZVK040aG1JeE1wZUo3YVdp?=
 =?utf-8?B?WkhDRHVmb3VJYmdjNml0bkMvbWxKS2VtU2ZlV1R4R0NTZHJFNEJjTENzKzh4?=
 =?utf-8?B?WVAxSnJ5aTdIWnBZNzkxMk04Q3pBMTZVSVBOeWJiYWZSazd3clphS1BXZjcy?=
 =?utf-8?B?em0vcUE3NExqN2FEeGsxbDlJNGVVOXF5bm9NUlkzcTA0eEdvSWxDYVMvc2tr?=
 =?utf-8?B?dEVSUUJ2b1hORWZZa0tXZlI5THdLaVZLdXNCcVRxSzM4Tk5odE40K2wwK2dE?=
 =?utf-8?B?NjI2U2N2Qmg4T1JIRzVMNnd6NFRYM3BJTDlHUGRIU3lKQTZJczNuZUlHb1dC?=
 =?utf-8?B?RHpvU1dIL0FZQlFCMVJjM0dpNy9CMjdNeE9lQ2szNU81amttcHBtb1hJZHg4?=
 =?utf-8?B?TVFpN3VPMEFoMFJYK2ZwS09qVXNKamJERFZMTmtVUVFvY2FUU0ZqS0dTeWp6?=
 =?utf-8?B?MnkxS1hqNzRPRVVaUGRzNWJnK0w2VG5IYk84V3BySnQyOTc0UUtrc3pmQWxw?=
 =?utf-8?B?cDR3Yk9BVm1mVjdIQ004RGtiMGlVVE5hQnhreGhoN3U4b3ljeEZ0WkRLRU5W?=
 =?utf-8?B?Yk1FZHEvK2pmWjd3K1pwQ3lKSkdYU0FRV0k4QzFpbjVqL2h3WHU1OURKRjFu?=
 =?utf-8?B?b2c9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3aca367f-a68b-4ba5-f523-08de3689ff2b
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 18:45:45.4928
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7GU638lVryOLPMv0PuXeQCibeGbK0b6RklFEA6+bEP8AXhlXY6LG/RTAFyoMVA6ZhgmBtPmT1LssNOFvYAL7UnC5RfBSimeEnh8yIjvP7oE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: FRWPR03MB11145



On 06.12.25 00:28, Jason Andryuk wrote:
> When linking to create xen-syms, add --gc-sections to garbage collect
> unused stuff.  Relies on CONFIG_CC_SPLIT_SECTIONS
> 
> We need to add KEEP() to the linker script in assorted places to retain
> appropriate data - especially the arrays created therein.
> 
> Something is off though.  In a test where memory_add() is unreachable,
> it is still included.  I'm not sure, but I am wondering if it's the
> alternatives somehow keeping a reference to it.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> ---
> With --print-gc-sections on defconfig:
> ld: removing unused section '.text.__bitmap_full' in file 'prelink.o'
> ld: removing unused section '.text.__bitmap_xor' in file 'prelink.o'
> ld: removing unused section '.text.__bitmap_set' in file 'prelink.o'
> ld: removing unused section '.text.__bitmap_clear' in file 'prelink.o'
> ld: removing unused section '.text.bitmap_find_free_region' in file 'prelink.o'
> ld: removing unused section '.text.bitmap_release_region' in file 'prelink.o'
> ld: removing unused section '.text.domain_has_ioreq_server' in file 'prelink.o'
> ld: removing unused section '.text.compat_kexec_op' in file 'prelink.o'
> ld: removing unused section '.text.in_atomic' in file 'prelink.o'
> ld: removing unused section '.text.radix_tree_next_hole' in file 'prelink.o'
> ld: removing unused section '.text.radix_tree_prev_hole' in file 'prelink.o'
> ld: removing unused section '.text.radix_tree_gang_lookup_slot' in file 'prelink.o'
> ld: removing unused section '.text._nrspin_trylock' in file 'prelink.o'
> ld: removing unused section '.text.xen_compile_host' in file 'prelink.o'
> ld: removing unused section '.text.vscnprintf' in file 'prelink.o'
> ld: removing unused section '.text.wake_up_one' in file 'prelink.o'
> ld: removing unused section '.text.xmem_pool_get_used_size' in file 'prelink.o'
> ld: removing unused section '.text.xmem_pool_get_total_size' in file 'prelink.o'
> ld: removing unused section '.text.xmem_pool_maxalloc' in file 'prelink.o'
> ld: removing unused section '.text.xlat_start_info' in file 'prelink.o'
> ld: removing unused section '.text.elf_sym_by_name' in file 'prelink.o'
> ld: removing unused section '.text.elf_sym_by_index' in file 'prelink.o'
> ld: removing unused section '.text.elf_get_ptr' in file 'prelink.o'
> ld: removing unused section '.text.elf_lookup_addr' in file 'prelink.o'
> ld: removing unused section '.text.serial_vuart_info' in file 'prelink.o'
> ld: removing unused section '.text.pci_find_next_cap' in file 'prelink.o'
> ld: removing unused section '.text.free_hvm_irq_dpci' in file 'prelink.o'
> ld: removing unused section '.text.mce_barrier_init' in file 'prelink.o'
> ld: removing unused section '.text.mce_barrier_dec' in file 'prelink.o'
> ld: removing unused section '.text.mce_barrier' in file 'prelink.o'
> ld: removing unused section '.text.apei_read_mce' in file 'prelink.o'
> ld: removing unused section '.text.apei_check_mce' in file 'prelink.o'
> ld: removing unused section '.text.apei_clear_mce' in file 'prelink.o'
> ld: removing unused section '.text.efi_halt_system' in file 'prelink.o'
> ld: removing unused section '.text.get_vvmcs_virtual_safe' in file 'prelink.o'
> ld: removing unused section '.text.get_vvmcs_real_safe' in file 'prelink.o'
> ld: removing unused section '.text.set_vvmcs_real' in file 'prelink.o'
> ld: removing unused section '.text.set_vvmcs_virtual_safe' in file 'prelink.o'
> ld: removing unused section '.text.set_vvmcs_real_safe' in file 'prelink.o'
> ld: removing unused section '.text.domain_set_alloc_bitsize' in file 'prelink.o'
> ld: removing unused section '.text.watchdog_enabled' in file 'prelink.o'
> ld: removing unused section '.text.unset_nmi_callback' in file 'prelink.o'
> ld: removing unused section '.text.sha2_256_init' in file 'prelink.o'
> ld: removing unused section '.text.xxh64_copy_state' in file 'prelink.o'
> ld: removing unused section '.text.xxh64' in file 'prelink.o'
> ld: removing unused section '.discard' in file 'prelink.o'
> ld: removing unused section '.rodata.xen_compile_host.str1.1' in file 'prelink.o'
> ld: removing unused section '.rodata.elf_lookup_addr.str1.1' in file 'prelink.o'
> ld: removing unused section '.rodata.apei_read_mce.str1.8' in file 'prelink.o'
> ld: removing unused section '.rodata.efi_halt_system.str1.8' in file 'prelink.o'
> ld: removing unused section '.rodata.play_dead.str1.1' in file 'prelink.o'
> ld: removing unused section '.data.rel.ro.local.fetch_type_names' in file 'prelink.o'
> ---
>   xen/arch/x86/Makefile     |  3 +++
>   xen/arch/x86/xen.lds.S    | 38 +++++++++++++++++++-------------------
>   xen/include/xen/xen.lds.h | 18 +++++++++---------
>   3 files changed, 31 insertions(+), 28 deletions(-)
> 
> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index 300cc67407..934c79411a 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -137,18 +137,21 @@ $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
>   	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0.S
>   	$(MAKE) $(build)=$(@D) $(dot-target).0.o
>   	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
> +	      --gc-sections \
>   	      $(dot-target).0.o -o $(dot-target).0
>   	$(NM) -pa --format=sysv $(dot-target).0 \
>   		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>   		> $(dot-target).1.S
>   	$(MAKE) $(build)=$(@D) $(dot-target).1.o
>   	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
> +	      --gc-sections \
>   	    $(dot-target).1.o -o $(dot-target).1
>   	$(NM) -pa --format=sysv $(dot-target).1 \
>   		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort $(syms-warn-dup-y) \
>   		> $(dot-target).2.S
>   	$(MAKE) $(build)=$(@D) $(dot-target).2.o
>   	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
> +	      --gc-sections \

It should work if --gc-sections is used only here - last LD statement.

>   	    $(orphan-handling-y) $(dot-target).2.o -o $@
>   	$(NM) -pa --format=sysv $@ \
>   		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \


-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 18:50:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 18:50:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181085.1504189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSgJD-0004S6-1t; Mon, 08 Dec 2025 18:50:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181085.1504189; Mon, 08 Dec 2025 18:50:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSgJC-0004Rz-Va; Mon, 08 Dec 2025 18:50:06 +0000
Received: by outflank-mailman (input) for mailman id 1181085;
 Mon, 08 Dec 2025 18:50:05 +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
 <SRS0=NKnm=6O=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vSgJB-0004MD-Lk
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 18:50:05 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b5240716-d466-11f0-b15b-2bf370ae4941;
 Mon, 08 Dec 2025 19:50:04 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by FRWPR03MB11145.eurprd03.prod.outlook.com (2603:10a6:d10:1a2::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 18:49:33 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9388.013; Mon, 8 Dec 2025
 18:49:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b5240716-d466-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GK8wPySdPGFQAApDiZIbYXDkaDlynC+yxO6/2mqFqULGQt3Qeu0MAKT7BMGoBGJ1xnyedQtfZDYpSjmxYertXGFAaRZ8o2uhDFssdmNanpyCLBSnrzFDf1RQF7FmpBJPOWt0AnJaZhHYfPFr0uhSW57h5zdKbmBVJtJewBroxpH024DbvgvxfeyKXgCJ/h2FO+0S5vR+JFtU02Vn91Ba4ObwR1MR7aysYfE7Row6t3oopA0xvxOnxJK0WbsiLU5m4Z0mFvhklvgCfdbHdQQaCdpOyObXUNdZmZLfO6leyfMULCxETX8WnHeMaVNeXQWuJawYuMXFjSoq82I3gwWQHQ==
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=SD3qdM+cI5WWe4xBURfaC4spk+PsKTDzMNrD2MP3wQM=;
 b=f7Ws6FmO56EEm7rjGJjbhNi75pQnwKbBS+4utHVC5x7MLiCW22tyMJCyJZ6dUPxiUCFeVvKyILmtfMgq7K5nCVa/ulonpjSQAnqPnXba5pOsx3OO9oA7i7yNqv+r29dbCKkqRXQ62aAk9jXeP664ZfSbe0dTOLSUCHDTpzwGbxCYOUQAOucpjUJitbpZnIbjuTMIosqbs+R87w+oqnPF9N3kweupu9Zyzzu3uVuWe5XPTAHBHvEtBEtjVmdK6gVvqO8iL/VN182YcFn+pjH7seuTMM/aBRZQFY5IPH9+x7aXaF6A0fRwjKghlvXil0ZNjiuhCFyijWHjHI+ZlJwMaw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SD3qdM+cI5WWe4xBURfaC4spk+PsKTDzMNrD2MP3wQM=;
 b=kSNhy1zqOPt4lD8LDMAFof7X81FpcJri/C3R0dyslg2C5FtMtC6V9V6WbXQoakiulOnxyo3eCcTsFIR92r3cgClFDYyIOkBtcIHVtY4OmGbuTqCkYpjI6wdIOE0vSv6sy3LbYU6B9BJkN7eBx8MJ4mdtNuZqYTP9d+kZ61vd5W416HssEng/YkUemlC/3i5kbTdP9cSlQUJpn8SEmfXRnQJh+p7v/wd+wv6mB8W5OGmfibHQHsmA22zB5DtkzegI2MO2QTKpwBDbX1JEF3ppZE2LtHY32m9hHEUPm1JIkEdDaS3yyP8aGM/AG+PvQateWRKA2aTJsJ8BCI8GAbxafw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <18ab3734-deb9-4569-ade5-9d96a7bf3c7c@epam.com>
Date: Mon, 8 Dec 2025 20:49:30 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2] coverage: extend coverage on .init and lib code
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>
References: <20251205193411.1368659-1-grygorii_strashko@epam.com>
 <d9a632d1-8587-45bb-bc13-8dab8d346cb2@citrix.com>
 <4fc76270-98e6-46c4-a6a4-d73772e079c9@epam.com>
 <483d50d9-a076-4698-bd14-28afabd5d369@citrix.com>
 <f6cccd82-3112-4696-850a-119843fca5ec@citrix.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <f6cccd82-3112-4696-850a-119843fca5ec@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0040.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::24) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|FRWPR03MB11145:EE_
X-MS-Office365-Filtering-Correlation-Id: 82c3d35e-c160-4a66-def5-08de368a86ce
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MCtsRzhsdFJxZERpODJ4Wk9ZeUxVZGgwMTdNbkdmaGk3Ujh3aDY5Y1JIQ3hh?=
 =?utf-8?B?RzJud2F5VldPbFhnWHg3Qk83bjhydWRucFhYMExjMWVpU3BZUGFSTlVhQys5?=
 =?utf-8?B?ZnZIRnRNOEp6WFhPSjBUU1FsWGRTNjc5Q05HUzZDemdYallMbWdVRmpzT3cz?=
 =?utf-8?B?aEEwcVBoNSs5R2IxcTkyeGlzb3VIdXV3dERkbFVjaHpOUnh0MUlqRm55M0RZ?=
 =?utf-8?B?YlZxUVFrR3kvRVo5YTJHZFZqMG1hWU1VczdsNkNqUnNXQWtOdTFTWGFpZUc4?=
 =?utf-8?B?ay8rSWtrYm1waXZBNGZhODlUcE9IUXA0MHQ1MnlCN0NrWXpTY0tadXpzUi9w?=
 =?utf-8?B?Sy8wV0pTeDQxcjBXMkhRZDVTa3FkUzlUdGVnOUNsQWlYTjlCdTcyamo4Z0tq?=
 =?utf-8?B?QnpaZjV3VDZGSlE4UlFEbXBXb0NucWp5a1ZUcHRWYmc4d2I0MHd3ZUw0L0tJ?=
 =?utf-8?B?Y0R3czdyV2s3b2ZnK1R3OEdEZTFTVUZtR2FadHNZK1hzWjBURXpqSyt6NzBs?=
 =?utf-8?B?S1dhNzhhZGo5eGVoK1lqUnU5YUlzd0dEdlpsTHMvNDcrWDdzM1R5SU85bHRv?=
 =?utf-8?B?M1RKUnl5Zk9GYy9HY2dJSmlGbmw0cWtYSHZmSDhtRVAyejNNWTJGUXpNYzF3?=
 =?utf-8?B?SVZBMnhodnVDaUdpM0hJN3Y0RU5NOFpKS0xtTCtVMjJjei9FRnJEZDRLUnha?=
 =?utf-8?B?RTBPempLK3VzZUtKTVg5Qm15TnNBVk9pYmJiZ05IWjc0M05tTUl3M2NkQzc4?=
 =?utf-8?B?N0k4RWhoK2QvSWhkY3VCZFN1eGR6MVE2V1RsZzBLamRCbUVHRHhiSU0vZFRY?=
 =?utf-8?B?Wk16cFExdVhKYmwySG5BT0s2bzZSelRNVk9rMU1QUm4raWUxN2FCZFcyOHN0?=
 =?utf-8?B?YXNJYkVsYjlnT1VET2d0WGdOVHdod0E0aUROaFdGd2dhaDcxeGlSWTZNMHJI?=
 =?utf-8?B?Z29NOG0vZjZWeTFyUWFISVBLcUNBSFFUUkd2WlUyMk05akYzV0kxTStpVnFH?=
 =?utf-8?B?dEpYK2Vsb0pIK0FwWTlmTmRIUjZGQXQ1U1pLZ05XNU9oK3V4TmRTM3NjVENR?=
 =?utf-8?B?MnhuUmZjVnVrd0QreHhVZnU2U2EzdmtPcy93dWJHNW56YU53Q0dEeVByNlJo?=
 =?utf-8?B?WmtEVnZlRDliZG5yUmlqRkl3c1k1SlZFOHVOMTlTOVRTTEJDdVFCaDRXVENp?=
 =?utf-8?B?djFnWk9HSHRXZU9JZTFwbXBGd1RxKzA3My9BTlpoaHliZW9lZDk3R1QvdEgz?=
 =?utf-8?B?T2MwdVNWYjhSVERnTlJ4NDB3L2pSTmE0T25JbE9ZUnFLQ0Nud1RDdmo4RTJr?=
 =?utf-8?B?MHUwa3dvMjBNeFIzbWZCK1ZiQkdnNnNBOUl0S1BqdHpTMlc2WDNuUkdMbjEz?=
 =?utf-8?B?bEJqL3NyYmIwWUtLMVJNYTZCR1dZcWpaTGlqMm8reHhmaUdGUFBlVzQ5T2xH?=
 =?utf-8?B?TW1ZQjY5NytETWp3NXYrOGVqRWlpdXFBM0d0TkllZWRQeHZtWXdVZEtsenJr?=
 =?utf-8?B?eXl2a3hNM3lDRGtvQzlUcXc2U0xkMzJNUjhJY3dpc0V4OFpRTWt5b2VnSnNm?=
 =?utf-8?B?VHRMWWdCbE5MYmZlMkh3ZWU3UmZoOC9LUVNxYk9NSlBhRFB2S3Y1VmRYODB6?=
 =?utf-8?B?UndVZjU0T1VLcWdjNXlRcytiaHlyNzg0ems4KzIxTDA5OTBWd2tTRzlwWDY4?=
 =?utf-8?B?MjFFMkJ4aHpYVTU3QkxnNnpJZG1RMS9TNWVweXFneDd1VEJCTjltT0g2U0ZG?=
 =?utf-8?B?WVQ4M3BDTUtOOEIzL2J6bXcwUUVoRmUwemhhcmRBTWtud015by9ydll1TlNa?=
 =?utf-8?B?dDR2Z0wzeVQ5VkcraXM0eGJRdVlodk8wVGlNSnhTaWVscHBFdWppK09yTkpZ?=
 =?utf-8?B?d0F1SEQ3N3RjTlVjUVJsTUlFUDFSYkV4UUpncmlMb0ZhK0pnUFJZSElZZkxP?=
 =?utf-8?Q?673pR/MXZcxp2EcwLN5PexB9BU36073G?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aU96VW9TSGhDejJjbVhaeEF4MDhoQVlzTWRrbDIxZXJVZHBYOTR6MnJGcTFS?=
 =?utf-8?B?UjVEbkxtUlN2WDVBYTQybEkvZnhXYmhTenVkcVJ4ZkZQblVFdUNGbTg1N2R6?=
 =?utf-8?B?bmVHMWZlTmdpVURGZThpTnpjdlptVnR3MDM3Yy9YbzJ4dnVBaFppcGhWdngv?=
 =?utf-8?B?L21uNE5vdTR6TUQxREpJaDJPVFlTbjBzY0I1Ny9MVXBwY1Y2NCsxMWJYOXRC?=
 =?utf-8?B?YVJ1RCt6VVFReW5jNUtEZXk2aDNkWkUyVGkzYk9sR2gxUHYxR0ZxK1V2NCto?=
 =?utf-8?B?WE1YZE1wcTF3WWRlNVJlbS85QmxENGNVbFdKVjQ1ZmVYbFJ1QUQwNGpuTkhi?=
 =?utf-8?B?T1MzMjlwRDRKaVh3dFByUlZobzJqc1Z6czYyaFZVMThhRitNUGpJWVA4aXBN?=
 =?utf-8?B?ZmYwb09BK240TGNGM0VQc0FXNkphSlBWNXBXbVQxdUp1T0EvYTNWV1BuVWha?=
 =?utf-8?B?Nk1ObkdxRk1xMU5KUlJ0K09pbC9xdVhkUjEvbHJqVnJ6bEkzQjZJZFl5TGJ1?=
 =?utf-8?B?VTJIVnZrNWdqN205OTZSajB5MGRqaEptaUt5cnRuZHRZRkFWcE12ZXJZaGE5?=
 =?utf-8?B?N1I4enVsRVlHVkdUdmZpNFNZMHBVWi9FVzZDNDI1bDlQRlYwTDIwaGYraWFQ?=
 =?utf-8?B?Q0t0Y2ZyWnhYamVBNXNlYktSWnl0R0FVMlFWMEdEQWVCOE83bEZXZmQxS0Jy?=
 =?utf-8?B?R2luRTRneE4wWFlvbjVWYXFtN25YbjNPVFF5QW5BS0VzcHA2dWhQOVd4dUth?=
 =?utf-8?B?MVFDWld5a0RJaVhrNktWdzA2bG1ocjkvR1I2bUlsQUszSFo2YkFPUUFrSkxW?=
 =?utf-8?B?Zm40UFdrLzRadmsraDVjeGp5ZHpxZndna2hOQmIvNXAzQ3RsWUR2ZXdkZS8r?=
 =?utf-8?B?bGd3dUd4aE9DZS82L3pDcHZqaFcwZDFGblpkSmR5SDY0K1RRVkRqQkJCNFg3?=
 =?utf-8?B?NWRRUVc1Zk9MT21YdEtQRmgvK1RGL2xxMXp0OHk3aUxRQUVHYWZiSEs4S3Yx?=
 =?utf-8?B?UjBVcHZZT3dFUmRyY09VMUxUUHVKSTBpaFVwRG8wNU1OS01DSEVmUk5nK1Bw?=
 =?utf-8?B?eXE5a3R4M2Jub24yQnF5OEMwQUJkNTY0RmpkZG9qQVovb0xiRU9oY1Y1aG9q?=
 =?utf-8?B?Z2YxTHJTMnJzREN1M1IxQUZWNGRVOXNUdzRQOWtVSGdIdTluRDA0SFRuNkxr?=
 =?utf-8?B?aTBEbXh2ZGpFdlErNXJLL1RVSnRBQ0tmTndZendMMjNLemJ0dTlHbVpySDE4?=
 =?utf-8?B?SW56Q1c1dWVnWFNDWmhoZXZkaEowMnI0M0ZncTZ6bnBPd3dySmNNTGNQSWJy?=
 =?utf-8?B?aHhHeWJHMUttUWlrWlpNaFN6MEs4R2VtUll0RllhSG4rVXdPU3lqcWRuMG1U?=
 =?utf-8?B?OFNvbEh3OGJ2VHlsVEZOcC9uK0hkdUVNZUpaa09ld2NnY0s2Q1pkRlpUajRy?=
 =?utf-8?B?cDAxVHlJZExrLzhXTG8zRG9CMEdRMlk0WmpkM0k1b3h0aTc4cHZKOTc3MzJI?=
 =?utf-8?B?V2hSaW80VjJESUxBNnhPWWdBamV6bHRiT0wySGEwWWVjMTlTS0M0MGxibUJa?=
 =?utf-8?B?N2NyRXMxTTRDUG9zeWxnOW9VVmFvOUNaOEp3RzUrQnEyTDRtNWRucVkvbk0r?=
 =?utf-8?B?MEpNRDVvY3RvekJhTS9yUFVMNDBLKzF5RnhUdU00NlNRbUY0eWNBL3o2V3Zw?=
 =?utf-8?B?SDJpNHgzWHU3WFhKdVozM2k4RkdKbWQwa1RhaHBzSWUxcGhsbmg4VGJsaEFO?=
 =?utf-8?B?OGx0MmVwWUZCbThUQWk3aHMxUDYrN0pzWGwzNzZUYldoZHRqNTFWNCtOaHIv?=
 =?utf-8?B?UVFuYmxHa01IcUFBd083c1JDQmpjVzRGTkw2ZzBldnBEd0ZJdmFTRzRwYjFO?=
 =?utf-8?B?SndEbjFRNitlWkN0RklTM3Z0TDFJVmk2YWM0V0JUVTJGZWRmdlpSNm5ZeGN6?=
 =?utf-8?B?TEJUL1RmTmp6UUo3cnBwR0t3UTJtVTJTRVRkS3pNTTRudW9wUXRDMWszYi9X?=
 =?utf-8?B?dUtzSmpJQTlZTWFocFk3QVA4Snpld05PeEJFb3BPY2dIdnlrVDlGUmU4aU5j?=
 =?utf-8?B?WnloempvSjRNMHZGTUtGNWUwNnpscjBBajZMd3lXdU1wZ0VFWTEwU0hnRXNI?=
 =?utf-8?B?RDZTUUZrZklPY251WGtJaDdSNUFKY1ZZajdIT0hoWnUzMmxheFU2M2YyT21H?=
 =?utf-8?B?UEE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 82c3d35e-c160-4a66-def5-08de368a86ce
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 18:49:32.9329
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: /Zv2gPk6hWGJwtx/m3Qf+pSF4KUJVSft1FVeP3m9xKJiJhh+J1oIWAddOcYviWuy9jEijRKPeKZcmp+2Pm/3Fah3T+dWuaMq+ZHbgSPf6mc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: FRWPR03MB11145

Hi Andrew,

On 06.12.25 16:21, Andrew Cooper wrote:
> On 06/12/2025 2:15 pm, Andrew Cooper wrote:
>> On 06/12/2025 9:10 am, Grygorii Strashko wrote:
>>>
>>> On 05.12.25 22:00, Andrew Cooper wrote:
>>>> On 05/12/2025 7:34 pm, Grygorii Strashko wrote:
>>>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>>
>>>>> Extend coverage support on .init and lib code.
>>>>> Add two hidden Kconfig options:
>>>>> - RELAX_INIT_CHECK "Relax strict check for .init sections only in
>>>>> %.init.o
>>>>> files"
>>>>> - DO_NOT_FREE_INIT_MEMORY "Prevent freeing of .init sections at the
>>>>> end of
>>>>> Xen boot."
>>>>>
>>>>> Both selected selected when COVERAGE=y, as getting coverage report for
>>>>> ".init" code is required:
>>>>> - to bypass strict check for .init sections only in %.init.o files;
>>>>> - the .init code stay in memory after Xen boot.
>>>>>
>>>>> RELAX_INIT_CHECK/DO_NOT_FREE_INIT_MEMORY could be used by other debug
>>>>> features in the future.
>>>>>
>>>>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>> ---
>>>>> changes in v2:
>>>>>    - add RELAX_INIT_CHECK and DO_NOT_FREE_INIT_MEMORY, those are two
>>>>> different things,
>>>>>      both potentially reusable
>>>>>    - enable coverage for libfdt/libelf always
>>>>>    - enable colverage for .init always
>>>> This is a lot nicer (i.e. more simple).
>>>>
>>>> But, I still don't know why we need to avoid freeing init memory to make
>>>> this work.  What explodes if we dont?
>>>>
>>> It will just crash when coverage data is collected.
>>>
>>> First I made changes in make file to get .init covered
>>> then I hit a crash
>>> then I checked %.init.o
>>> conclusion was obvious.
>>>
>>> For example:
>>> objdump -x bzimage.init.o | grep gcov
>>>
>>> 0000000000000010 l     O .bss    0000000000000028 __gcov0.bzimage_check
>>> 0000000000000040 l     O .bss    0000000000000040
>>> __gcov0.bzimage_headroom
>>> 0000000000000000 l     O .bss    0000000000000008 __gcov0.output_length
>>> 0000000000000080 l     O .bss    0000000000000060 __gcov0.bzimage_parse
>>> 0000000000000098 l     O .init.data.rel.local    0000000000000028
>>> __gcov_.bzimage_parse
>>> 0000000000000070 l     O .init.data.rel.local    0000000000000028
>>> __gcov_.bzimage_headroom
>>> 0000000000000048 l     O .init.data.rel.local    0000000000000028
>>> __gcov_.bzimage_check
>>> 0000000000000020 l     O .init.data.rel.local    0000000000000028
>>> __gcov_.output_length
>>> 0000000000000000         *UND*    0000000000000000 __gcov_init
>>> 0000000000000000         *UND*    0000000000000000 __gcov_exit
>>> 0000000000000000         *UND*    0000000000000000 __gcov_merge_add
>>> 0000000000000008 R_X86_64_PLT32    __gcov_init-0x0000000000000004
>>> 0000000000000012 R_X86_64_PLT32    __gcov_exit-0x0000000000000004
>>> 0000000000000020 R_X86_64_64       __gcov_merge_add
>>>
>> Aah, we should exclude the OJBCOPY too.  That's what's moving
>> .data.rel.local amongst other sections we target with attributes directly.
> 
> we can't target.

I've come up with below diff - seems it's working without DO_NOT_FREE_INIT_MEMORY.
Is this what you have in mind?

diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index 8fc201d12c2c..16b1a82db46e 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -40,7 +40,6 @@ config COVERAGE
         depends on SYSCTL && !LIVEPATCH
         select SUPPRESS_DUPLICATE_SYMBOL_WARNINGS if !ENFORCE_UNIQUE_SYMBOLS
         select RELAX_INIT_CHECK
-       select DO_NOT_FREE_INIT_MEMORY
         help
           Enable code coverage support.
  
diff --git a/xen/Rules.mk b/xen/Rules.mk
index 8c4861a427e6..47fdcc1d23b5 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -33,11 +33,15 @@ cov-cflags-y :=
  nocov-y :=
  noubsan-y :=
  
+# when coverage is enabled the gcc internal section should stay in memory
+# after Xen boot
+ifneq ($(CONFIG_COVERAGE),y)
  SPECIAL_DATA_SECTIONS := rodata $(foreach a,1 2 4 8 16, \
                                              $(foreach w,1 2 4, \
                                                          rodata.str$(w).$(a)) \
                                              rodata.cst$(a)) \
                           $(foreach r,rel rel.ro,data.$(r).local)
+endif
  
  # The filename build.mk has precedence over Makefile
  include $(firstword $(wildcard $(srcdir)/build.mk) $(srcdir)/Makefile)
diff --git a/xen/common/libelf/Makefile b/xen/common/libelf/Makefile
index 60b3ae40728f..8180c78f1510 100644
--- a/xen/common/libelf/Makefile
+++ b/xen/common/libelf/Makefile
@@ -1,8 +1,10 @@
  obj-bin-y := libelf.o
  libelf-objs := libelf-tools.o libelf-loader.o libelf-dominfo.o
  
+ifneq ($(CONFIG_COVERAGE),y)
  SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
  OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section .$(s)=.init.$(s))
+endif
  
  CFLAGS-y += -Wno-pointer-sign
  
diff --git a/xen/common/libfdt/Makefile b/xen/common/libfdt/Makefile
index ae0f69c01373..fb26e5bff0fd 100644
--- a/xen/common/libfdt/Makefile
+++ b/xen/common/libfdt/Makefile
@@ -4,7 +4,9 @@ SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
  
  # For CONFIG_OVERLAY_DTB, libfdt functionalities will be needed during runtime.
  ifneq ($(CONFIG_OVERLAY_DTB),y)
-OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section .$(s)=.init.$(s))
+       ifneq ($(CONFIG_COVERAGE),y)
+               OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section .$(s)=.init.$(s))
+       endif
  endif
  
  obj-y += libfdt.o

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 18:54:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 18:54:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181101.1504200 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSgND-00055V-NI; Mon, 08 Dec 2025 18:54:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181101.1504200; Mon, 08 Dec 2025 18:54:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSgND-00055O-JR; Mon, 08 Dec 2025 18:54:15 +0000
Received: by outflank-mailman (input) for mailman id 1181101;
 Mon, 08 Dec 2025 18:54:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NKnm=6O=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vSgNC-00055I-04
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 18:54:14 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 48b5ced8-d467-11f0-9cce-f158ae23cfc8;
 Mon, 08 Dec 2025 19:54:11 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by VI0PR03MB10282.eurprd03.prod.outlook.com (2603:10a6:800:20d::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.13; Mon, 8 Dec
 2025 18:54:09 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9388.013; Mon, 8 Dec 2025
 18:54:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 48b5ced8-d467-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pgx0YVnvi5mBfxs4/zgYafjNUZmg/vdNrGrll/8X3eUspNgTuOilzKtn4XFD+rS9S6VOLNghmaZzLBhUZkhWJF/ldtQZZKjuHCYEA43BPfTgGlW1o+PVCgPwGejGP5FXjAEJfXc6sb6xk8WLl8kV4LvmMOU/1eAio53bQaSbk/0Rc5rBZgyrSCuz/14pRGHIIHPbNs4chTkzKC2DbI1W12K2i0jmCvTGXLDXffYg893NTjjljlyfOl8fqpPKH3NjHyQM8IqHcfVfCTHgy3J+lqP5+l+e/JZGaFUC+KebT9i4GWjU+J6lp0oKHn8+udHIerUnbaSTQqWhHQLJPH4NyA==
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=WSICRRDqnpMRDRNL1T+UmHwGkBlgOBZJSJ0Sca27Tmg=;
 b=EXhtNdp9oD2soFCfIdL5mwUCBKbEg36+KCURU0vTXx6LsNE3SEhixx+Hf/NtTcxsbXThUyW642FPdmvvZbdz1otQ5/LLz1XhmEvESnkUMj2IFrZxTqVuAgyfaNTYlOe6hByRn6j+Dz75ZX8oRPheM71gfFZXRYBdyBwEDEgbQLazNd5XFWV3oAy7a5SawEEx6kpQ5Yz7amXzjqgCyImRIKfJhxAQ/bxXzPOJp0NaZTTkqRoudST17U2FofTMD2R2Bu77ekEdzc1/dezwXePKHYkU3R5cFsRsjksxuVDkQgocmUI8nOC0oZqqrZbHsnUgMEKgNSn6QsLatDWYwUwj4g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WSICRRDqnpMRDRNL1T+UmHwGkBlgOBZJSJ0Sca27Tmg=;
 b=G0psR1Gq7544PzItaniq9KX34PB2GhBTXpbWfcDCqDfsK1tbK8T/AhQl7Bwb1yoLSnmpaxf39gAeeAJ3qKakyoD64K1V5jZeL8uQ8YbYxqvil+w0Ci1eTBoFTQMXG3Habajf/Z24xJdjl6zcCgkF2D7QPGs8spCbtZ1wojNWr+om3c0jIvuxAZFvEqx3JBrBFfIZe+I6ls8sW1dX36Eq9BcwXX5lZpDL62i+A8zjABMAa9ymoEgcr9AXwvrb1PRIOCxbFSTKmcFRVmRvjJNUkaWbgXnY5fqOxZXprLShBa5nOgpkTVQXunpnKrlHexgXHpnlakf05ntzQIu6w5/J8A==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <7020e1fe-5f11-480b-bd72-311a93903030@epam.com>
Date: Mon, 8 Dec 2025 20:54:06 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2] coverage: extend coverage on .init and lib code
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251205193411.1368659-1-grygorii_strashko@epam.com>
 <bd53bc18-f2b5-4857-b06c-2674c799ff0f@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <bd53bc18-f2b5-4857-b06c-2674c799ff0f@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0035.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::11) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|VI0PR03MB10282:EE_
X-MS-Office365-Filtering-Correlation-Id: 2fc7c2c1-a2cc-4180-699c-08de368b2b69
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SVQ3RHVENFdUa1RjN0I4blNySHVIU2hmaG9BK2JjSW02WTc0U29qNmZpWFdj?=
 =?utf-8?B?OElUMUlla0M4SkRsMGhjMEYvZlFiZmNWUVZHVkVEQ3o5TFgyVW8rNm40NTk5?=
 =?utf-8?B?RTIvSWQ3REhjVEFvR1FKZUF5MkhIQVNEQmpFdm5VSjFpR0x1ZE5XQ2hKcEZJ?=
 =?utf-8?B?REs5UGNMUVJwUXV0c0svaGRmNFpxZERVN1k1a0VBVFJyVDNrcy82YnloMzQx?=
 =?utf-8?B?VzBqL3VQVllUY0h2aXN2ZzhLam1HazNHaGlJUXVOU0J4ck55b0JZZS9GcTNk?=
 =?utf-8?B?cHNIZ05TMGEzUHRaeFZJRFV1cUhjaDNLMldWWE1BMlNhSEdQRGtRNVhjNytx?=
 =?utf-8?B?V1F4MStHKzJPNjNxVngvUkh2N2tXeUFFdm1nMTRBU3pTQk16K3FqQ04vVzQ0?=
 =?utf-8?B?aGd4N2ptWVg0UWpSbUtNNzMzTVp3Z1VGV2Q4NkZFZUdvc2JpL0Q4ek91VFcr?=
 =?utf-8?B?TWFjUHcza21ySFBLd013ZXIxRHVZK0NZVDZnMU1JYTk3YWpLUHd5TU5FQmZB?=
 =?utf-8?B?Q3BEMXhmVVpnamNSOXh6d3dGQW91V1RJYnduaTJTQUNZSGRRNUhEY1Ewd2lI?=
 =?utf-8?B?YWgvL1hjdk42TjJkS3lKTXdvRHpsUVlTcldkQ2dvSnJBNnMxNlJDZnp1c011?=
 =?utf-8?B?OFFyMElyazA1Q3crNFRXUE5yTmZTZndhL3VqMmxZTDdPdWJ1K0llUlV0d3Jx?=
 =?utf-8?B?aDZkM0Rablo4SDJrNjEwS0plcHp4dGJxeThuUFVXNzZsRFg3Nlo3UC9VUFN0?=
 =?utf-8?B?WXg4c2w0VXJjK2NoazR6MUZJMG5NVnVGSHlhU09wcFdLcUNwT0tMdzZFQjRR?=
 =?utf-8?B?YXoyZ3hOTUZjSnVUNUhXYUNSSzJOdzRpSUxKRDBVcUs4bjBSZnlqUjYxV01L?=
 =?utf-8?B?OEM1Q2plYmVmV0tuQVUxcVdtR2ZpYWNJUzRZbFdndWNjeFQzMFcwcmxGRWtQ?=
 =?utf-8?B?cTgycGRlbEdvbDE3SUd0VHVKeGtyMVpIRXVxY04ybEVmNkV6MU0yRnIyNWRt?=
 =?utf-8?B?aGRuT0hOZ1FScjlVOGVFV2UvWW5qeWcwR3YxV3NPR0FyNE40R2pFVU9zNXdW?=
 =?utf-8?B?L0pJY0xGM1pIbGo1ZUtteVN4cFpFcHZxcVVOYml3aWc4eExUYmlxQUMxdGdT?=
 =?utf-8?B?S0o1S0t0VHdRMjFSWGpmclBmVTdoK0FVaEg1VHlsZ1JodHBqUnIvdnp6UFFC?=
 =?utf-8?B?aGxpZXQ3ZFlHWk53b20rRDRDdjA0c0NhU3hiM3haUzFFQ094QzFDRDR3UTRB?=
 =?utf-8?B?VUx5bnI2TmdVUW5saXpUcjBwcnYvUUxXSENSVzBCSklHMUp2M2JySnA1MWNt?=
 =?utf-8?B?VTNwcmNWK3prU05Nc0R2aDF1TGRhalQwbFN3VGNQQzlaZFk2YXJmSFhGZ21o?=
 =?utf-8?B?NTdmSzdzMW9WMGZMMHl2bHVsUEs5dGtFS1ZybXVoQ2svVWtKRXcvWE9zK2Rl?=
 =?utf-8?B?SW5ITElVZXFTOGRSSUphQkdtYlZBTy9ocXdyWE9IanJJNlBibEhLdGVTV29s?=
 =?utf-8?B?WW5Hc3F1OGllUENFUXU5OWFKS3VLN1dWenF4MlY2RDVBNHQrS2tQSEJRU0Nz?=
 =?utf-8?B?a2FtVmx1Rk1RdEtZWDBJR2V2K3ZtTGd4dlAvZC9aU3FjcHJBUWI5R1o4WGxD?=
 =?utf-8?B?c3RpelVOQ0k3S1lPUXZNa1ViRXBiWUJXWXplQ0VvS05HVXcxL3dETkErS3lo?=
 =?utf-8?B?Zk5STmVFL291QmpuYmxLSUtBamZXaGsyQ3VhZ216c2lSTGRYNTlNeWN5UzNP?=
 =?utf-8?B?ZWt2eEdnN082Z3FYN2kybHNBbElYVVY5aEozSUJWbFVMVWs0RTlaSXd1OXVz?=
 =?utf-8?B?OEQvKzg3VFZEajZrb2VFWEprY2xVam5scnBsOFJkQVdVdEtKSTJOVkVqalMr?=
 =?utf-8?B?RXJJWXpHbEdmd2JjRjg3VGh2WGNJeUt3NTF1L05pWUxCeThOUU5qbkZqMUdF?=
 =?utf-8?Q?F+vzFEhr/hbeeGALv+aeWM0tU6gGchRS?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WENxSlBaTG9tdlBpbWNEYlNqMys4c09QQkkvbkJMb2FvZzBKSzA3VHEzRU9y?=
 =?utf-8?B?cWliVE1vOGYzZ2c5Q1R6bTI2NzJuQmkrWi9PQ2JBQURRMjE5U2dSRWJNTHlC?=
 =?utf-8?B?L3NIYkhneVFlNVMyYkg2S0ZqZFB0YWRtRXBIMHEwbFZNNmsyNStUekZsQUFX?=
 =?utf-8?B?OXBqeEYyalNMVy91bWtjc0RsWnc2bTlKaXhqZXo1TThUV1NWdjNaZkc2TTZG?=
 =?utf-8?B?MllBSndobnc2dXR5Q25xUVNFRmtmOE5tbURBSUVFVFdwSnc0NlpTdHIyVGZv?=
 =?utf-8?B?Mk14bnRWTHFoZ3lXRHFxdDJiK2tCWGhDdTdUZlNIWE5aNTd1bk90bGlRZFZH?=
 =?utf-8?B?NFVtY2VQQ2MyalFsd2N6TG1STFNFdVY4YkNmeGNlenNCVVZMcG5jdHdjSkg5?=
 =?utf-8?B?cnhSZUxGT0JSZEd1eUtzNXJMQ2JEaXRvdVdpUTRFRjVncnlCNnFtQW5LcG1u?=
 =?utf-8?B?M0xiYlplaUU3SVJBY0laTWExcTNVems0RkliclhNU29zaGpxcUFRZktTMENh?=
 =?utf-8?B?aW0vZnBEdnN2d3JuNjhKc2dDVHNoeUF6QlhZUEVnZEVTZ1p4N2lzRXFBWlpI?=
 =?utf-8?B?UVg2K1RPQzQ2bHZ1RzQxcE41VTY1VUpScUd5SFpxMlROcHJ4S3lkbFZyekVV?=
 =?utf-8?B?M3hrLzJxNThBSXd2Mk9UMHNDYjEycUVrcGpkd2RTMmh4ZS9YVEEwdnE5WVFy?=
 =?utf-8?B?MWUvdHcrTkFsU1BhcUVHSWR0ckI0V1BCTWViS2hEZ01VQ1hVc3JLT21Cb3Yy?=
 =?utf-8?B?dmo3T1NQUTJ4SDUrWmRYL0l5R0NJSXRsbEllWWhybFl3QnB3S3NGdE5UWDBX?=
 =?utf-8?B?N3kwYjF4WTFHeVhzZ0xyeklsbDgvRFZ2YXlOcVNUTjgxenl0NkNmakRveTRN?=
 =?utf-8?B?Y3RQUFB5ZmZDcXMxeXpPN1V6elJQaWd3REhtSS93WXN3aHVRMTR4QjV2Y0o5?=
 =?utf-8?B?Um1ObkQwSDVYYVpsSWI2Q1ZYLzJ4L1pkNmgzT2ZBWnp2MldqZno3ajdJcGxn?=
 =?utf-8?B?ZitBYkhJMS9UbzJMdVVpUitleHpIUkVzMHVLcGFaUCt1S2xXU3RydC8wcDdk?=
 =?utf-8?B?YTZJbmswa0psK0pTQUhTQnY5eVpkTUJxT3c1UFltcE1LRVovVnBXbUpaaWY3?=
 =?utf-8?B?OUlURU85bmVJU3ZPTVo1bi9IWHdMeUcwZDBIVXgyZ3BtcTFWK0NoeUZUVllW?=
 =?utf-8?B?RmZWK1cwUkRtdmxnQXg3djdHR0VsU3JSK2oySDczNjEzQm85a2dIRndOU1Jx?=
 =?utf-8?B?OURrd2c3QkhwbkpzOTQ1ZWxqZ2NiTXRmcG42UzI2NGN5VURMZW9wMFI3T3RU?=
 =?utf-8?B?OUpTYU9JdlorZDJybmVlVG1kNzZDSUJ4cW04RzFZUjZTRjNvWGFlZ0tCUHdD?=
 =?utf-8?B?OVZySkdqaGRQQWpQYkN4a0lwc3RjUXcwVGsreStWeWNTWmd0RlhYYlV2cFM1?=
 =?utf-8?B?Q3ZIaGVFUjlnaDdrYXFpRGYwWWl3RzhIYjBhbUFsaENaOUp1RTA3ckkrQkdh?=
 =?utf-8?B?d2kyeUpKTlJFRG1pdDIvZUJtM1dHT2dLajczVTRzZXNnYUwvZGtFeThzUEJR?=
 =?utf-8?B?dlBRa1Q5L093eFZvRlNPOEM4S1pMcjZ0bnhzdUFWYlgyVGJ5WUtWd09qYnVV?=
 =?utf-8?B?YTBFaDBLYkhkVUh0VnMxUGZpRHZLaFUvNmd2MmpCMXV0T0k1cDlNMnllNEx1?=
 =?utf-8?B?NURTVStIR0hFY0IrdVMrb3JOUzNST3Vjd25jQjZwZGZwd21NYkxBUStWZkNJ?=
 =?utf-8?B?bWxINHZQRUl2SEhZUnBEWTNaemhYODY5M2dtdmsvMllINzdDSFdVckk5MzRq?=
 =?utf-8?B?N1RTVlh4ZkVQeDd2cnRMS2tITGYwNWJhNEkxRlJldll2a3VKVDZlTnR1cVN1?=
 =?utf-8?B?YTJOT0I3c1hnMU43eWhjMTRnS3BzUXNJS2xIY2Z1V1c0Y1picWp1VXp2eS9a?=
 =?utf-8?B?RXVaTzlxRmx4Nms1MjJWZzJCeXJyclY2UWhwOWd5VExUUmpJZERoOEFZUW9Y?=
 =?utf-8?B?RVJhRjMwR0trTXA3Z2tyVWVWNG4yNnVSUktBcmhXa2tQQ2F4NmZnNnczU2U0?=
 =?utf-8?B?RlhNd29ZY2Mrd1Y5RmpsZUh4ajB4L3FNZURiaXJZV1BBMndScVR3WGxiSVNM?=
 =?utf-8?B?ZERoWERzWFRPbURPUUNQRmg5NkgwK0crUC9leFM2VFMyaEZIUDNkaGUyQUkx?=
 =?utf-8?B?NHc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2fc7c2c1-a2cc-4180-699c-08de368b2b69
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 18:54:09.1396
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vp7+B7DSr0x1eSXvTi3/KIdgbe2aoK7PtC2+QJr25oIOlCn3+kdXmZ5BrD6qAl0Pu/L/WQqWJ1JkLHwwEWDFCHBDCkiRhwm+wVZXX3JKOdQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB10282



On 08.12.25 10:35, Jan Beulich wrote:
> On 05.12.2025 20:34, Grygorii Strashko wrote:
>> --- a/xen/Kconfig.debug
>> +++ b/xen/Kconfig.debug
>> @@ -39,11 +39,23 @@ config COVERAGE
>>   	bool "Code coverage support"
>>   	depends on SYSCTL && !LIVEPATCH
>>   	select SUPPRESS_DUPLICATE_SYMBOL_WARNINGS if !ENFORCE_UNIQUE_SYMBOLS
>> +	select RELAX_INIT_CHECK
>> +	select DO_NOT_FREE_INIT_MEMORY
>>   	help
>>   	  Enable code coverage support.
>>   
>>   	  If unsure, say N here.
>>   
>> +config RELAX_INIT_CHECK
>> +    bool
>> +    help
>> +      Relax strict check for .init sections only in %.init.o files.
>> +
>> +config DO_NOT_FREE_INIT_MEMORY
>> +    bool
>> +    help
>> +      Prevent freeing of .init sections at the end of Xen boot.
>> +
>>   config CONDITION_COVERAGE
>>   	bool "Condition coverage support"
>>   	depends on COVERAGE && CC_HAS_MCDC
> 
> Please obey to the somewhat special indentation rules for Kconfig files.

ok.

> 
>> @@ -259,6 +259,7 @@ $(obj)/%.o: $(src)/%.S FORCE
>>   
>>   
>>   quiet_cmd_obj_init_o = INIT_O  $@
>> +ifneq ($(CONFIG_RELAX_INIT_CHECK),y)
>>   define cmd_obj_init_o
>>       $(OBJDUMP) -h $< | while read idx name sz rest; do \
>>           case "$$name" in \
>> @@ -271,6 +272,11 @@ define cmd_obj_init_o
>>       done || exit $$?; \
>>       $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=.init.$(s)) $< $@
>>   endef
>> +else
>> +define cmd_obj_init_o
>> +    $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=.init.$(s)) $< $@
>> +endef
>> +endif
> 
> If the objcopy indeed needs suppressing altogether (as Andrew suggests), the
> unwanted redundancy here would go away anyway. Otherwise my (recurring)
> request to avoid such duplication.

Could you suggest the best way to avoid duplication, please?
if/else/endif is not working inside "Custom commands" make file commands.
May be split it on two - cmd_obj_init_check and obj_init_objcopy?

>> --- a/xen/common/libfdt/Makefile
>> +++ b/xen/common/libfdt/Makefile
>> @@ -5,7 +5,6 @@ SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
>>   # For CONFIG_OVERLAY_DTB, libfdt functionalities will be needed during runtime.
>>   ifneq ($(CONFIG_OVERLAY_DTB),y)
>>   OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section .$(s)=.init.$(s))
>> -nocov-y += libfdt.o
>>   endif
>>   
>>   obj-y += libfdt.o
> 
> Is this sufficient? Don't you first need to replace the custom objcopy use?

It works just fine if .init memory is not freed, as it doesn't matter where sections are placed.


-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 19:21:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 19:21:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181111.1504209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSgnn-0000Yi-OO; Mon, 08 Dec 2025 19:21:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181111.1504209; Mon, 08 Dec 2025 19:21:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSgnn-0000Yb-Ln; Mon, 08 Dec 2025 19:21:43 +0000
Received: by outflank-mailman (input) for mailman id 1181111;
 Mon, 08 Dec 2025 19:21:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NKnm=6O=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vSgnm-0000YV-35
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 19:21:42 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1f036ca1-d46b-11f0-9cce-f158ae23cfc8;
 Mon, 08 Dec 2025 20:21:39 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by PR3PR03MB6604.eurprd03.prod.outlook.com (2603:10a6:102:7e::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 19:21:36 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9388.013; Mon, 8 Dec 2025
 19:21:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1f036ca1-d46b-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=B5nEXjAmZlM+HrKZ5glVjJ7mk6CTe9dd1wEIyqpZLxn15OAt+LxBnbbxR5OcVNTQNNcbfwY0R/x3HI6/Kfd8YOfepQ1+XTXKK7j8kWiw43oA45eDI6gxVnY3OS4qz6KuLiCc8YWsnuNlKXC0VvGtcIxiNx9Cyw+T9P1m4LvzzxtZA8VCICrfWBFfmhQcS8gCVqraD9tTsxm3nbtuAA6xC5TbmnIP+3lR5+2Te/vRnA2lFSPuVpsBIgxnQa+bEMEcFe+mJQjcU5M8F0ygiFmxQgAI37CngEWJrjjflgKZ6Nw6F2XcvXgb9/Q4NpDmluMw1lsw+pzsjY5Ep5ULWw7bGw==
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=6ZLetCFDuJZr4FOq/Ep6H0TruFN0Jjex2HqkTby0WI8=;
 b=l0A2lwbK8bR8ryb64UQRirtM02dt6dT+8Rvtj6VUKsd1yFncbj+CzXH3A1Mh5nX8Gd2kzybAtAh/TzniWaz65Bpc9XXRO3ngWY1roHTP0iR1/u8YDaESKu4tJOGFrJrQegjHkduUJDZ4anIDF626HoOuz0G+i5nqCPo7Ea69FkkxfsuN9RewKvWr8pP6PUZD01hMX8mPOWPKcagiqDTkgLhg9ObfO3Vf9GLEHBt7zP87UYLZ11kmYdp50rLIc4UWmyX12UlXD5CvsVH0hwo8DkQsxECt8nQUH1p9AfAri2495MZmne4xrarFVR6GjSKGRzS27HXsQmcUfF4ybRmqcA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6ZLetCFDuJZr4FOq/Ep6H0TruFN0Jjex2HqkTby0WI8=;
 b=f+lESEqOCel8/m13/YxBztrCEPBzT8hSz4BVyeOaIadSLZKot5Nh3sfKFG9NijIx1oezlHlWhYRcUSoV9egSeZSjvpxg3VMczdO2BD1mgagI4nKiQJ5QmTZNvG1rdEIRTD1wxhfZsN1/HPgTJqlOHHpyDTb2jkl9LjsGfhzrOZcfhhsAfcYPrkyicf6qZRr3HteQIC44ipzWO0xswCzS1WA2NcQ6RGeloGUOGlEgD6oBkUNu4DawnRTsMIrc9PYrGIuHko35yJEM61I46JHfjbrp+K879zh6POi/PXOUUIvGDljdn6PkPC2wgORFpyOONYo/03uBOky+VLUasa/VjQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <d025e3dd-ba2a-4a9d-af37-37570e690aee@epam.com>
Date: Mon, 8 Dec 2025 21:21:30 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/3] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251128152218.3886583-1-grygorii_strashko@epam.com>
 <20251128152218.3886583-4-grygorii_strashko@epam.com>
 <c9ee4fc8-44c6-43e8-88eb-9041c51aed16@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <c9ee4fc8-44c6-43e8-88eb-9041c51aed16@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0044.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::20) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|PR3PR03MB6604:EE_
X-MS-Office365-Filtering-Correlation-Id: 67802059-74de-4f86-3488-08de368f016f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UlN4aENSOTdzaDFVZllnV2EyWHZBenZVZW4rbEhRRk9TcWhqUThQeXVtU0Jj?=
 =?utf-8?B?MDdnM08vTkpES1lzZ05KNTE2Z0VJK01sWjVNeS9EdTBpWVEzd3pXYVhFYjV4?=
 =?utf-8?B?ZzRkViswMUt6UVFSZ2RsQ2ZpYmI5UCs5aE5zekV3MHRYaHR2ZEpkZkxYT1hw?=
 =?utf-8?B?L0ZZZWg0TkNsVldISUlrOXJ1OVRlN2xORkhSZ0IvbEtyOFpjSUV6QUN3MFE3?=
 =?utf-8?B?SW9FWFQ3K3lYYVJkeGZQSlJmWjJwQVpzR0lzZlpueTc4RW5oY1Z5S01UU2FG?=
 =?utf-8?B?WXpGb2Ivc2NzWFc2c2VpZUErNUtCZXErNVphRUNJNnVxMGxhTmNaRGdZUGYz?=
 =?utf-8?B?SkU1TnZHTC83STFZVU1ERnY4SnpyQU1mM29LVFFlWnJqamNXakJDMlF5TFZX?=
 =?utf-8?B?aGl2eEFkRGNKQy92VDh2WjAwc3ZCQnhtRGVvN3E2WHVBczFmaGNpK2xhY0Ny?=
 =?utf-8?B?bWtNNWtKSjlYdEw3OEdiMDdZUnRpTG5OaWFGQ3VlaTB6Tzhyc3RESG5iOGJy?=
 =?utf-8?B?NERBMDhZbk12WXdjZStzNXpZYlJuT1Q2UHpnL1h5cFp6bFh3K21qbzZHbWdl?=
 =?utf-8?B?WTlnTEJhaEhHejgxY1p5WHZVTmd0c3J3dmZ3Q05DQ1FaZHllVFhKOGJrOGRw?=
 =?utf-8?B?WFZhVVY0MU9Xc0VXY01vbm9ZUE8yTXJiSTVob2ZZUGZQeVhhdVRGTjUvTWo0?=
 =?utf-8?B?d2Vnb1V2Rk1ycklYMDg1ZVVkOXJiUWdOa2pCMGtZVzhCWE56Q2g2aUR6dk9D?=
 =?utf-8?B?M3V4MHFvZ0ZHSzN6NFdKb2FiOGNLS1BvbUR5N28rV0VrSlVabVhFeWRjMXcx?=
 =?utf-8?B?U001aWtmNGRIL2t4R3dyclh0cGF1VGxPeU1KVGUrcTBYVXhORHpBTUF4dHBr?=
 =?utf-8?B?NjU5SlBlV1VQOG5YR05TL3Y4cFloY1lKTnM2SUxRclVSMGRBL3Z2VC9PZUVq?=
 =?utf-8?B?S0NXd1pBaW14bTgxRFlERkpYYlJWZUdEQUdOaUlUR010L0VVcHNvM3ZqU3J0?=
 =?utf-8?B?Ny92dnQvbm5tNzVUd3laS05LVWNBdElOQm42Ujh0MTkvWDFvME9kL0VrTFFP?=
 =?utf-8?B?c2VXeUtUeE92Vm1uRldRSXZKNU1XUFY2MHhuOC91UTNPVnJ3NEovUkFhRFdp?=
 =?utf-8?B?OHQ0czJUVzdhdDMyazZpVkZWdlNFZ0UxenZlTDZhYjBYVGExaWp6anRrdjZZ?=
 =?utf-8?B?ZDhnSm8wR0RHL0Q3SjNyTXYyYTR1akNjNVMwdEYwcVBBcnA3WkF2YzROK1hW?=
 =?utf-8?B?cEZQV0dVb2c2Y25SY1BqTkUrSU55eEhZMHM2YTZ4eXBPRFVzUnhaNUpDODhl?=
 =?utf-8?B?WHVWRStWVzFEV0IvcndHTjhKKytkNGNaWDZoUDdaOTh1K3B1cEFYajFTNjE4?=
 =?utf-8?B?eGVwdGloMndFTG1lOC9KaVRqM0hMcExzZlQ4aEZHanJKb2gwK3hXRkpFZnRz?=
 =?utf-8?B?cnM2NjBpVG4yWFJ6UTNnSTNRM29TOVhHS2tueTk0ZXVaTjhhY0J6OUMzMzVV?=
 =?utf-8?B?V2xuWHhPenJrT3lYWnp2Q3QzWG9XMm5wdXJva2J5NlJLc0VBZERHd2NyUEZU?=
 =?utf-8?B?cytVVVRUVU8vYUlFOFdEUDd5V09HdVJ2bW1IeDdQQUxmZHRxb2YzQmxJdHpo?=
 =?utf-8?B?ZE9obUppcTBrUTFxcW9iallvc216MERkMTNySVVXUDViNVF6NDRsOUFudjFj?=
 =?utf-8?B?SWMrcFg1MHUxWmp3QzNNME9TV212UWRZZS93RlNaa2NXWkFvbEdiSWJNUDVH?=
 =?utf-8?B?U3NnQXY2NmpLdCs4VUV4b1VKRWJDZ1dEbmhOc3BZS2ZDVXpjZFZuTzI3U2JP?=
 =?utf-8?B?dEgrQUhIeXd5Y092TCt6N2VOQ2tJZ1dsQWMxN2UyZ0ZET3lFRFpqRnNoVW9P?=
 =?utf-8?B?bkRLdnRRRFBBdHdCOFdUbEdXVlhkY2hBSjJZMVV4bU5UVDZyUGZzTTdCYmFs?=
 =?utf-8?B?Sk9jbnRjVzZLbThqNnVvRGlRcHlMVVFyYkZ1ekljVERJWGlXU2c2K0JlR2t5?=
 =?utf-8?B?OEVCUVVIdEtBPT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VmhMSmpFbitTK3pMc0ozcVBWbmMzRDVLVk1yb3BiZnpoNXk0UEF5OWdJaWpa?=
 =?utf-8?B?MENjNzcwbnoyUm5ibVBYKzNmaTNuUm1YaHAwblBLcndpVWx3ZXdJVkVXVWdM?=
 =?utf-8?B?RVVaVU56MnBFVE1Gck02Zjl3Vng3NE1tRXpBVnZYd2wydmZGWHVuQit6ZGZW?=
 =?utf-8?B?VHBlN1RWVm54Y28yRTVuZkw1UHdzamdHZmh5Mkw5TTJkdnZBc25STnd1Mkxk?=
 =?utf-8?B?OG9VOXBxWGEzYy9nU0VzdlQ1NzJLbHhIZlFvVVFsSTNibW9TY2hoaHZDc2Ni?=
 =?utf-8?B?WEU2Mm5vQ1ZIRC95MzRtVXlYa2hlRHlkUjBNS0JnNlVsUFZPNk9rSjlCTVYr?=
 =?utf-8?B?WHFISzBhUUVuNXUxcXE3NnpBQnByQ3BKbmFPaVp0dC9LWUFTVXYzTXNRUklo?=
 =?utf-8?B?VWgvVGJlbWtvSktDUFJ6bWF3ZTczTGp4OTZqNXE1YUc3N0FJZkJmekFwSVRP?=
 =?utf-8?B?NUV0aHZKc3Z6L2trNDg5SExDR0ZHa0pMdzU2VEhYOU43OHJRSXpzSVJQL1p6?=
 =?utf-8?B?blNvSzZKMWNtbnQ2RGgzNUVGWmxicmh4OWRLRXZQekVVaDBXTDBxY096cUdX?=
 =?utf-8?B?WWdCVVFieDB5bmJJRy90SXAzSkFnM01uemVsTTVxRWs3bXRSMzRaaDVwZytv?=
 =?utf-8?B?eERPUFVGdzNuQnhVbVZPYVljK2VhRE01cyt3KzdkcUcxMDV4VVQvMys2eElI?=
 =?utf-8?B?d0ZEa09MVlNWTFJmUnVjSUpGelV2UXY4SmpYUE5NczNsdmcwR3ZmOWFYQ0Fk?=
 =?utf-8?B?bXd3L1Y1blAzcW4zc1dzNGV5U05WUzFjTS9NTHFUNFpOM3FGaTlwbXBidld0?=
 =?utf-8?B?Um41NUtKTzB4VEtNUFc0SjZkWFNWNFpNeFpPcnAyVmhQdTVrZVc5bDVtZ3pz?=
 =?utf-8?B?NWpNSHpucnBEVWgwMVp2MnIxakVmODBBNUhKQ0Fqa1h1VU1FWEsrc055TTVR?=
 =?utf-8?B?MW0yaW9hamVuWml6U1FCZjhINXFNT0R3c0ZCTGlKQWlIWUJlVUcxem5QSm9t?=
 =?utf-8?B?ZE9TOExnc293TndOUmZ5MVUwZlJFRGRMaTlrOU5ENnJ1WEl1Z3BGUWE1MWVT?=
 =?utf-8?B?WnE3SmlEOHEzRHlaUmRuemQ1dE1HaUNZaUF6bTFpRFBpK2NUTmxOYkVSZjl2?=
 =?utf-8?B?TUlPTkk5bFFkRTk1UW5xdkNLZTVXK3VNQnFNVEZiTXFEakNuOVpRY0k2aDVZ?=
 =?utf-8?B?ZVBhSVNtZ3h2SDF4R216cW5hVkhOS29ORFl4NG1nV2tqcVV3aUhHYXl1RTUw?=
 =?utf-8?B?ampjTW40K1Z0dzNTaXRmRlJ2dSsrVllLYTRUaDdkeStwYnpwNkVQaWNibzFH?=
 =?utf-8?B?dDFIMVUrRmpXbjJSU1dQRklyelRaN0ZoSXFsQTFIWXVzeDV5RURGZmJ2Skw2?=
 =?utf-8?B?V0lLaW56OEp6VWpzT0NGZW9BVjAvVGdORzJ4ck9WMTAzQXY4ZWxwWkorR1BL?=
 =?utf-8?B?RkJUazVsemFPdE84SHU5dUgwMTY4NFU3c1FuV0JYSnJMSkR2c3o1Z1hWWDla?=
 =?utf-8?B?MzFpZjlhZytTTi9NQVBkQk9JV3lwUVVSek9vZmpiQW9TbG5jb0owMlB1RGpS?=
 =?utf-8?B?ZlZROXZ4cjFrL2dYbkJnS1g2UUNqQXBQbzZ5UGNlelFEcGY4Z0tUQmc0cVor?=
 =?utf-8?B?ODZNRk0vcTZ1K250WXBYUlVudGpMRXZZaEo4WWhMSmg4NTgvdi9vQm5MNUtt?=
 =?utf-8?B?UEV0YWE4bG1DWlVNcTRaUVdCYmhWNW4vZjFKUzhZZWIvclRsRGhDdVpSeWdX?=
 =?utf-8?B?YVNVNTVLcEVRakRUTWN2OWRITWxvVkJQZU9mdm14d0lqV21Ea1Q3a2dZdFFy?=
 =?utf-8?B?d3ZLRzRwRWxZTnExak9hL1U5RUxjUjQzWGRMckNkUjlVSU91VnR5UVQvamc1?=
 =?utf-8?B?THIwUWk4ZGRDWG5iTUFPcEFaK0M4N1ZuZWk0bTVGM2VVK2g4eWFtQnJBZk5v?=
 =?utf-8?B?ZlkrMWdkeXNlNEJZNENtRUYzWlVUSHRuZjE2alRWUkw0TVE4aUV1MjlkZ094?=
 =?utf-8?B?Z1dFeHdsL3FxVGVQK3pkTG9ZNmNpemR5STBWR3lTOStUU0ZJajVvZitoS3Zp?=
 =?utf-8?B?WWdxVkRkZFpZc0RDNTdMVG9vV2c4alhubjB5V2VMSVVBVnI2dHgydHlkVm5W?=
 =?utf-8?B?a2FMbzFOdHIyQ1lLUGZqU2JNUGg5ZTVrdkQxcStpc2xjTHREUlpKeUltTXJY?=
 =?utf-8?B?M1E9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 67802059-74de-4f86-3488-08de368f016f
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 19:21:36.6433
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: gLnjKKJRvoAT+C6AARXcB6S3g26lZIfXRWyKGQ+zzi8+xV88Mh+wRuR1sV6CII7UB+G+S2kX+iW4miS2hgh/sOUqYo6C2VKpfPtU3KXDRuA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR03MB6604



On 08.12.25 14:44, Jan Beulich wrote:
> On 28.11.2025 16:22, Grygorii Strashko wrote:
>> --- a/xen/arch/x86/include/asm/mm.h
>> +++ b/xen/arch/x86/include/asm/mm.h
>> @@ -619,9 +619,12 @@ void __iomem *ioremap_wc(paddr_t pa, size_t len);
>>   
>>   extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int pxm);
>>   
>> -void domain_set_alloc_bitsize(struct domain *d);
>> -unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bits);
>> -#define domain_clamp_alloc_bitsize(d, bits) domain_clamp_alloc_bitsize(d, bits)
>> +#ifdef CONFIG_PV32
>> +#define domain_clamp_alloc_bitsize(d, bits)                                    \
>> +    (((d) && (d)->arch.pv.physaddr_bitsize)                                    \
>> +         ? min_t(uint32_t, (d)->arch.pv.physaddr_bitsize, (bits))              \
>> +         : (bits))
> 
> I'm not quite sure if converting to a macro was a good idea. But now that it's
> done this way, so be it. Just that a couple of issues may want / need sorting:
> - d is now evaluated up to 3 times,
> - indentation is wrong,
> - the use of uint32_t is against ./CODING_STYLE (I dislike the use of min_t()
>    anyway, but what do you do when a macro was asked for; of course we could
>    [easily] arrange for BITS_PER_LONG to be of type "unsigned int"),
> - the use of "bits" in min_t() doesn't really need parentheses.
> 

I'll update it.

>> --- a/xen/arch/x86/pv/domain.c
>> +++ b/xen/arch/x86/pv/domain.c
>> @@ -254,7 +254,11 @@ int switch_compat(struct domain *d)
>>               goto undo_and_fail;
>>       }
>>   
>> -    domain_set_alloc_bitsize(d);
>> +    if ( MACH2PHYS_COMPAT_NR_ENTRIES(d) < max_page )
> 
> You mention the change in condition in the revlog (but not in the description),

The updated chunk was based on snippet from Andrew [1], which
used incorrect condition - I've changed it and noted in change log

[1] https://patchwork.kernel.org/comment/26680551/

> and I'm having trouble to follow why ...
> 
>> --- a/xen/arch/x86/x86_64/mm.c
>> +++ b/xen/arch/x86/x86_64/mm.c
>> @@ -1119,26 +1119,6 @@ unmap:
>>       return ret;
>>   }
>>   
>> -void domain_set_alloc_bitsize(struct domain *d)
>> -{

The domain_set_alloc_bitsize() inlined in  switch_compat() and x86 PV domain
always created as 64bit domain.

At the beginning of switch_compat() there is:

  ( is_pv_32bit_domain(d) )
         return 0;
[2]
above ensures that switch_compat() can be actually called only once (at least it can reach
point [2] only once, because there is no way to reset PV domain state 32bit->64bit

this is original condition which says:
>> -    if ( !is_pv_32bit_domain(d) ||

do nothing if !is_pv_32bit_domain(d)
  - for inlined code is_pv_32bit_domain(d) == true, so is_pv_32bit_domain(d) can be ignored

>> -         (MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page) ||

do nothing if (MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page)
   - inlinded code should proceed if this condition is opposite
     (MACH2PHYS_COMPAT_NR_ENTRIES(d) < max_page)

>> -         d->arch.physaddr_bitsize > 0 )

do nothing if d->arch.physaddr_bitsize > 0 (already set)
   - inlined code will be executed only once, so (d->arch.physaddr_bitsize ==/!= 0)
     can be ignored

> 
> ... this 3rd part is going away.

Another observation: MACH2PHYS_COMPAT_NR_ENTRIES(d) is looks like a const, as
(d)->arch.hv_compat_vstart is always 0.

grep -rw hv_compat_vstart ./*
./arch/x86/include/asm/config.h:#define HYPERVISOR_COMPAT_VIRT_START(d) ((d)->arch.hv_compat_vstart)
./arch/x86/include/asm/domain.h:    unsigned int hv_compat_vstart;


-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 19:52:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 19:52:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181121.1504219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vShHH-0004Z8-VZ; Mon, 08 Dec 2025 19:52:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181121.1504219; Mon, 08 Dec 2025 19:52:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vShHH-0004Z1-Sv; Mon, 08 Dec 2025 19:52:11 +0000
Received: by outflank-mailman (input) for mailman id 1181121;
 Mon, 08 Dec 2025 19:52:10 +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
 <SRS0=S/AO=6O=ariadne.space=ariadne@srs-se1.protection.inumbo.net>)
 id 1vShHG-0004Yu-BC
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 19:52:10 +0000
Received: from outbound.mr.icloud.com
 (p-west2-cluster4-host7-snip4-3.eps.apple.com [57.103.69.214])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6037105e-d46f-11f0-b15b-2bf370ae4941;
 Mon, 08 Dec 2025 20:52:07 +0100 (CET)
Received: from outbound.mr.icloud.com (unknown [127.0.0.2])
 by p00-icloudmta-asmtp-us-west-2a-60-percent-1 (Postfix) with ESMTPS id
 B1C3518013A5; Mon,  8 Dec 2025 19:52:03 +0000 (UTC)
Received: from phoebe.taild41b8.ts.net (unknown [17.57.152.38])
 by p00-icloudmta-asmtp-us-west-2a-60-percent-1 (Postfix) with ESMTPSA id
 9A3A01800138; Mon,  8 Dec 2025 19:52:02 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6037105e-d46f-11f0-b15b-2bf370ae4941
Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ariadne.space; s=sig1; bh=DvHhgkq2dJ0sklVse1aa7ik+cqkwTEL9gjApsPpOcPk=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=Ir977hqJXy+lPFMRIZJUBmuyolPNe+HhmMPQZDPQX/VOLSpIOwxl2t5H81O04yy8iANqNwjm56wDLwTXV6g86kDtzzvMfGvCBqFYxZUP8Ra6fCblx8KNbXeor4hDEdZijL7GaOZliIH+T7/FbaCrZSeTdACflFevxgA5NWp/C5fLpdL38YDBr4c0Kz/r+lwnfw4bIB1v5SspHkjekSTVeT7OYUDmkrdN+/NMs/kbgE7OlATsjsmfBw1Mxm5KfBZ+JRaT1BtlSnlZUGuN6IlTGShAafOXyahs2VFMgxTPvuY0iDy6gqoBEazf2McqQJiGM4sd0L6jSluKhF5yVrFHPA==
mail-alias-created-date: 1688796967087
From: Ariadne Conill <ariadne@ariadne.space>
To: v9fs@lists.linux.dev
Cc: xen-devel@lists.xenproject.org,
	asmadeus@codewreck.org,
	linux_oss@crudebyte.com,
	lucho@ionkov.net,
	ericvh@kernel.org,
	Ariadne Conill <ariadne@ariadne.space>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alex Zenla <alex@edera.dev>
Subject: [PATCH] 9p/xen: mark 9p transport device as closing when removing it
Date: Mon,  8 Dec 2025 11:51:55 -0800
Message-ID: <20251208195155.27473-1-ariadne@ariadne.space>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Proofpoint-GUID: EX3QNWAq4p9Q36IVYhk4hN6tDjCVJVgw
X-Proofpoint-ORIG-GUID: EX3QNWAq4p9Q36IVYhk4hN6tDjCVJVgw
X-Authority-Info: v=2.4 cv=f69FxeyM c=1 sm=1 tr=0 ts=69372c64 cx=c_apl:c_pps
 a=9OgfyREA4BUYbbCgc0Y0oA==:117 a=9OgfyREA4BUYbbCgc0Y0oA==:17
 a=MKtGQD3n3ToA:10 a=1oJP67jkp3AA:10 a=wP3pNCr1ah4A:10
 a=VkNPw1HP01LnGYTKEx00:22 a=iox4zFpeAAAA:8 a=VwQbUJbxAAAA:8
 a=k0M0V4IRsTHp1vcmCjoA:9 a=WzC6qhA0u3u7Ye7llzcV:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjA4MDE2OCBTYWx0ZWRfX5xZ2+rgn0Y/4
 Qv7tsTi0IKi0zb2IZUVafW6TZF9iFY9745vHH0rxoUZvI5ygfjgeuSlmwmMGR/yPc2bNFVFjfaN
 TjdKpfdefNGdjBSKQCabjDGhQnWejGiOy9JTO4/B6Nfw249HywEG1W4qLT/tO0nDMTYD1nUHr1C
 B7Bbc/YNuqReFBKLyoSJSNl402ka8P+ZFIEb0uLu/pqcvOO9/TWpnRlUECRAaqddrX3QEeolmEm
 A3xn/J03tuNQyYi2NnO2yFX8fH8jyeWd0DHFx0MQ2wCb4E/NTfS3nw18imfVoTYDEqWjh+oTz+C
 /iWPrTcyIRg+yS+PXcg
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-12-06_02,2025-12-04_04,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0
 phishscore=0 suspectscore=0 bulkscore=0 spamscore=0 clxscore=1030
 adultscore=0 mlxscore=0 mlxlogscore=999 classifier=spam authscore=0 adjust=0
 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512080168
X-JNJ: AAAAAAABmt3X/758cjYAQS8mYvsy7oEhS4QHglaBA9kiQvxB0XGgJqzOok1JcvHOGX3vNJSCA9RPAF3s3p7S6EEL/PgZOu8MdVGipaCDUNImHK2A9oXfxB9buA6dwgVIYulZGSnBaK8bLmEsQIjUyNXnTYFNw83wfB53TRrBY8oMwkN07qL4ukyeoLwkwJYWYDcIN5ybEZ9SKbNVPTtN3WYCkT0IpdJMzgG8LkgcAqHAv0Ti3jNG5uHTcCcKwYG5cvbTrXit2atGiwTaqxgPUI9AK0LcKxbY2YPrJVkOI23TF6sXbGphr8F1hcJGbeZe41MYGTxYvZEPPDjxMKURxGETa0QhEKR2psrpY2dSZyqeoYFAPWBNAX13DYo4ObWAikfyJmgnUidCZDpkcemckAkD15jr5OeVUovjHxrRvbr0AYPMGckY2BTr8QWHJfRT7IpVulcQih/sML9gTy/aDmjUwe1vLCxkZt8xe91NHlLm04/81NhExbX7Lf4zc5LBpZhyymwFbgKl64VjVY2f8PaSQ8RBVQExFnUUCgIBqIPXGgqO22btw9QG0E1ZJ1yfV2bjH+3lX+mwcW/gmln8B2VRPYP0wSpa784xeDEcwCq6Bki9bv8te4BOmVFuo70/ZWe8OpI/D9+2EoXbmSiojVUJ2D1ZGc/zk0Khk4xMglfGeFjgwFO0FyC4iEDj0Jak+1EwVts78Z703xQURQm5uBwwuAk0IG/IeajulQ8=

We need to do this so that we can signal to the other end that the
device is being removed, so that it will release its claim on the
underlying memory allocation.  Otherwise releasing the grant-table
entries is deferred resulting in a kernel oops since the pages have
already been freed.

Cc: Juergen Gross <jgross@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Fixes: 71ebd71921e45 ("xen/9pfs: connect to the backend")
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
Signed-off-by: Alex Zenla <alex@edera.dev>
---
 net/9p/trans_xen.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/9p/trans_xen.c b/net/9p/trans_xen.c
index b9ff69c7522a..cde283c42dc6 100644
--- a/net/9p/trans_xen.c
+++ b/net/9p/trans_xen.c
@@ -312,6 +312,7 @@ static void xen_9pfs_front_remove(struct xenbus_device *dev)
 {
 	struct xen_9pfs_front_priv *priv = dev_get_drvdata(&dev->dev);
 
+	xenbus_switch_state(dev, XenbusStateClosing);
 	dev_set_drvdata(&dev->dev, NULL);
 	xen_9pfs_front_free(priv);
 }
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 21:44:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 21:44:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181137.1504230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSj22-0001QA-EG; Mon, 08 Dec 2025 21:44:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181137.1504230; Mon, 08 Dec 2025 21:44:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSj22-0001Q3-BM; Mon, 08 Dec 2025 21:44:34 +0000
Received: by outflank-mailman (input) for mailman id 1181137;
 Mon, 08 Dec 2025 21:44:32 +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
 <SRS0=NKnm=6O=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vSj20-0001Px-I4
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 21:44:32 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 135efdb1-d47f-11f0-b15b-2bf370ae4941;
 Mon, 08 Dec 2025 22:44:30 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by AS2PR03MB10057.eurprd03.prod.outlook.com (2603:10a6:20b:64b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 21:44:27 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9388.013; Mon, 8 Dec 2025
 21:44:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 135efdb1-d47f-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XlMhamKnvJPyMvof1eaPLPI5LyhOV7c/6XhtbDM9sBfqJMUbBtg6BhPqNbKGmEBR8Y7+HkwdK3i+lsVjBdQmuQaJwzO4NRIJL7JjJId+v7lZ6nqh75BYLlc6q9j0NQ+FxptOQz9o1eOh1j4xSrpiM1pczKFhM2tJh2RaoZeYhpi8WN+b1RRzUo+6xdJz50qMll/bD92Z5aB9E/oT0bGjjaWxdMAfTgIxgCL6sATEHGdWNqu4Uc8KZsvsdW4g7OO4aWPUGt9n81KQEt0xtJXeOPKqiZIlRuK7TVLbvty5frU3g+PQMkeIUVv0npRbg9kcglH2Jq/Fov7L9yOIypFtyg==
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=XaceH2yTTW7R0FX7Ph5XRZ16Jx/b2pfEswPV2OYmNAk=;
 b=ecPCJKvwRAwrg7KB2AwozBL0djiZOIogZeUHQFpUS7yI/09K2eSbLSo/O712k0EYCNW9SrOgFfEWspK65jfpHToAPDK2/hbVzArfunIlax1SPw8qIS8VTT77/I2AcdnYTpbAJr7bzEha3iYVoDSOocfx0324XaQvEymwKTVLbX+VXaKOl5bUDTfW3P8iLrpus/NBHf2G/Aw+xY0v4P7pvp0PSPG6tMhREAe/CsKqKL1RJMF98r3gmytToSNhP0+ShzVnnq3SGKM8zcJc/d+zETizymuf0+k5B96pJTn2F/Xdgx0OQ52PA432wCdDFwsfq8JHsvheVqL290eJvcF2GQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XaceH2yTTW7R0FX7Ph5XRZ16Jx/b2pfEswPV2OYmNAk=;
 b=fKNSmURS/ZU6G14UOZTcGH8HeL1x1EIn7MdoLfsvkA4J94Uaz9V42Q/z/vyN3V8ZqSRBwpjKncIm14FI/cfP0xzfW34Y8aOXRjxJHYwT8IaQ9t2JhT8VDBdACk7u7VLBh0eSPycFn9dbTw2PU2chCOVVu3nqUX6HK4AA0crglG1lHVLhYwX7edOHlwFrqxpQl82M7PYTR0j7AG4P7flXh6oQVdLBL9YUv3cmjqz5CwQme/bt8OBCeamL3U3ScOEDD80CS0+GUp8P8K3tSXVeai0c7aHIWXojt7V3je4jD3uEiwOyegILGfZ7bHm3bBP5CvixUI6O8A+bHpVGm12HaA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <4ec39256-3850-4a57-9876-ba50fc5d65bc@epam.com>
Date: Mon, 8 Dec 2025 23:44:25 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] domctl: Provide appropriate error code when PIRQs are
 not supported
To: xen-devel@lists.xenproject.org
References: <cover.1764961645.git.milan_djokic@epam.com>
 <b38b7b65630d1f167d1589d21556be1493c180be.1764961645.git.milan_djokic@epam.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <b38b7b65630d1f167d1589d21556be1493c180be.1764961645.git.milan_djokic@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA1P291CA0018.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::25) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|AS2PR03MB10057:EE_
X-MS-Office365-Filtering-Correlation-Id: 49a88c72-00a7-4511-906f-08de36a2f5f8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RThOY3F6MlkrTDc4bWRvcmNYODlIS2pGWXM0Nk9LcXIralRmM0hiazhkYnZn?=
 =?utf-8?B?MjEwYitmRFdBSHZWRTB3eGRUNWt2TzVNckFNT0U5RkJiUUZJbEpQN2FNMXk2?=
 =?utf-8?B?Z3lCZnpzalkvV0lDcVFXTjFocEk3UlVIdytKbXR5L2YyT3dpNS9rNVV4OURn?=
 =?utf-8?B?UEhmQk1XVVhOVnAzWWtzQ010T3ZPMDJjVE13a1pMZldFdEZDb2RmaU1Yd1ZK?=
 =?utf-8?B?UlNwLzM1SThNOUg5dHJ6Y0JKU293dzZ5UXgrL1lpekUwL0RmVzh3RUxaZHpI?=
 =?utf-8?B?dndDS1dUSDltd1ZMYm9DU1NycjdMa1FkZTErVTBGL0t0ZHNXZTI3aHhwdnFD?=
 =?utf-8?B?SUs0bDIwSjdUalAza210aFNjV3grQW1ZOTkydkpXd2paRVdlcVgvNXFRcW9x?=
 =?utf-8?B?R3IrMUR3Rld5N0V2MlFWMDVMbUxueDVYQlBhUkFEdEpIa0xrWVcxd25rTFhP?=
 =?utf-8?B?Q25BVWVuem5GK2ppcWwraWZxVG5IeTZvcENlQjFaelh1aHQ5Z0ZCdGduc2Z1?=
 =?utf-8?B?WU9MS0VzQzh5T1dycXVSRHZyTWx0eDdJVUxBYUZERXFEUjcyVU1FVVRadnpt?=
 =?utf-8?B?ZUg1eDd2aWhjcEpSVG1WQ3RHd09ZRWczalNtWXJvaEZDaVFLK2ZzQnZmMFNL?=
 =?utf-8?B?bGVpeTg4VkNZcnp0RU82bWRqRW9CUWNiU0t0bDM0NnhoMlpYMDFKa1VXdzR0?=
 =?utf-8?B?MDNXN2U2dFpaZFEwK2FuUHV6Q1VDdGowaHpMV2JpdG1KaUVTNU1uQWlkQm80?=
 =?utf-8?B?aE8yM1FmNmVsOExWeWdFampvTVdYM3prRmtoY1c1SnlKYnROZGx1UFpWU3hs?=
 =?utf-8?B?dER6MVY2MDNsTnROc3kzWjhrbml5cVMxTi9SOVpEQkNtWkpOMy9qNGxUT0pt?=
 =?utf-8?B?aXpnUy9zZTNSeVZ4MnRGVGxlK3QxZEZaV0QyNm1xVFRTNUlvWlkzKzQvS24w?=
 =?utf-8?B?djZ4bUsrUmxkbzRNQkVVZGxydUFkYTIrbWFGU1EwNkt1T3lZZmdIRmtYSVRJ?=
 =?utf-8?B?UE9iRFBPRE40VEl0OCtiT1oxTFN4T3R6TWtlbUlRbGptazh1dS9DYkxkbmpS?=
 =?utf-8?B?dktlK0h2MjVrYkJMbUQwTjJuVk1iK01OMS9xS0g5bDVOOEdoYUYxRy9ld1Iv?=
 =?utf-8?B?QWUvT1JZSDlBK3pRSTB3K3pFaGc1bmtKek4xMDY0OW1kYW1RUmV1R2dQRE5J?=
 =?utf-8?B?N04xdmg2aVBuclFpcGlWUTcrSFBLM3NiNnhlMWZ1SFlBeGxWNmVLSDE3NnY1?=
 =?utf-8?B?NzF5c0dpR2krKzZiVXIvY09MRkV6WHFpT1RENzB6SnJXZldxbzBqSThDejFv?=
 =?utf-8?B?a0pNVjVHbTNqczBmcXpVaGQ3dC8xdFhYaFl5MUR1UlpObTEvUzZxSUk2YzlB?=
 =?utf-8?B?Z2dsNmIwdWIrM3JoRytnb0FQb2tvV0JnMHRHYWZPUUlzN2h5Wmx0cks5MExP?=
 =?utf-8?B?dzF2ZDUwUlpyWGRNK3NNNG1UM3BKQUYwL1RhekZsYzd4SmN2VjhHcXBiK2Z3?=
 =?utf-8?B?eHo5Q3kzWFV1ZHNDRTdsVlZyQlEvU0hNK2RTR2FqVEFRVEtwbnhPdk9MTGMz?=
 =?utf-8?B?aGJIMy9pV2FwOGhFT0xZcTFnMjVUVU9HKzhCL0dMV25BY3NLankwaVVzMVVF?=
 =?utf-8?B?VnZGZklHMk40MmRoWHZnNHJUR3R0TGpabmZVaVl0ekQ5cHluc1hPZVRTdnBx?=
 =?utf-8?B?b0xUQUgzdUlPVDcyMlM1a1o4MDZJVUdOVTJ1SWNsNVczS2pVN0NCOE11anhh?=
 =?utf-8?B?eGVlV3VVNkVzU3JrQnkvWjl6ZjZ5NFRLK2xxazY3bWYyR1Y1Q01iaXpSNEpE?=
 =?utf-8?B?QVFnNU56TExOMWQrU3U5VFp5WFNnZzRjenRtZFRqMEgwaVZoOWlaREF4L0sr?=
 =?utf-8?B?c2kvZ0wvZHJSNjJlZHdVZ3NGdzhuWGh4c1BVVWVHKzJOSkZiNk5QQzFDaEFS?=
 =?utf-8?Q?7sAIVKCvlAOuQXQ+WsKm5YMmL8RXYk6p?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?T2ZQV3R4OVdaK2FUREFSQy9BWU5Faml1NnZNS3lVM1VZcG9WQ3pmOWJYNWRz?=
 =?utf-8?B?UmpqbjV5aE9hRmZiQXhCM0RwMCs2djZHcHFPdVJuMHNzeDJrVHQyZmRqNys5?=
 =?utf-8?B?RlZlQnY1ekRGNHZCdTAzUytnc1Jpc2RwWWx3blJPdklBSHcxbi9PVzkyaXk5?=
 =?utf-8?B?Y1QvYlhsOEpHU1hkN3BiczcrelkvdGlSZ1E1bXp3U1hKZFFra05FcTlnRHZK?=
 =?utf-8?B?RUI1SDZveHVBYUdBY0dGOTZRSVpvWnozTmFkVjZZRk4xeU9jZUp0ZVltRkU5?=
 =?utf-8?B?dmtLbVFscHN4NDRleXJPUTlGR0UrVmlWZzFySldYc2N6bFVZck9VTnI2N3Jk?=
 =?utf-8?B?TlE4NmpHU2dUangxQTh5ZXd4a3JNcFNxR1Q1S1hHa21GRS9jMUt3QnVnOElF?=
 =?utf-8?B?cEdLR041QkoyRWJjazZSS0YxTGxpMU1GeVVaLzVweDlxMkx4VHJUbTg5Ukov?=
 =?utf-8?B?ayttSDNEdE5ocXp4TnN3RWJaYTN0Z2VmK0pWK01zaUoxd3VBTHM4RTd3YWRY?=
 =?utf-8?B?VS9ya1kyM3hLdTJxNUFrbWxCN2pkN3duM0ZhOWVkbGhJVVgra0ViWGMyWlhx?=
 =?utf-8?B?N21WZ2FzYXI5czBZUDk5eXVJMVVneXBJVUljTm1kTnJmVjlDWGZaZDRwNEZR?=
 =?utf-8?B?SnY0SFZvYi9NTm9ydGFrck5lTDJXSmJHRmZ2emRMdXZsZXZrV0pMM0dzU3FP?=
 =?utf-8?B?N0p6M0pTNk1WK016eVlsR25LTEZqN3V2QVVCdERieXJqV2tvQjFNYll0K2l1?=
 =?utf-8?B?b2toOHhReVlVVjFsdkFVSmVhdGc5dkNwMndiTnJINjJWOGNxNUxSS1Zndldr?=
 =?utf-8?B?UzI2NHdObDJ4VnFDTmZRY21tY3lSREZxWXZXdnNaVEx2WkpTTm84WVFsSUhW?=
 =?utf-8?B?SDEvTXFuMGlDeHRKSDhleExCYzhFK2Rzb0pPdDNrdlU0V1ZiU1ZISldoWjUz?=
 =?utf-8?B?cHRuT2cxUlE4ekVFOVZuNWJWbmY0dk04cHNES21FN0VJSmxUam5QK011VlVT?=
 =?utf-8?B?WGdFSGc0MU56YURQRHFQb0cwWHRQUFBpVUFjKzVoM05ueHBESEZtRllNazRC?=
 =?utf-8?B?V3ZCeGNheWxPTWxpcWlJNWR1YmtFZy9uUFhpYmt3aU0xSnhEaEJJWnhTYnhw?=
 =?utf-8?B?T0VmUkFhUGc3aGd4cS9FV0NEOHBwdlRkR3BLb1VTa3lVS1ZZK3NURE91bEJl?=
 =?utf-8?B?aUl1bDRNRzVtYkJzOXRzYmRDemRKYmtKTDBkWmloYnNOK2VBdWN0TWZrZ3RK?=
 =?utf-8?B?RXR4NVpFL083ZjNiL2h5ZThWY2NZb3FSb0FMNC9DeEt1Z2kyMEZubTJNbnVk?=
 =?utf-8?B?Z2Nxb2UxS3hGN3orWjgzL3I3SlRuM3ZPWG5YWTVNTHJlSnhhMVowN2NKbVly?=
 =?utf-8?B?OVZNWnlTQXpReGl4dGk1K0Z2S2ZZTFdEY3FKWEN0WEFob2VqcWxIcmEvaVdM?=
 =?utf-8?B?RXF6Zk53UFFWZy9pTlVRNjJPeVE4UnRxcDlQNk5kd0I3aU1Xa3lhT0tUMEt2?=
 =?utf-8?B?c3BHNHU4ZTJxOG9ueWlWcDQ3TmJzTUdtS3NuUEdlemg1QW0xamlwci9QYjZy?=
 =?utf-8?B?aDhPbkhGMGhidHkyYnZ2Y0hDSDNPQXdqWXpMKzd4NTBxb05WUlFmQjg1QnJu?=
 =?utf-8?B?dzNtSWJEMmJxYlp2QWZ0Q3RhaG1BM3BxcnRkM3owZ3NEVk9uYVlRUng5eC8w?=
 =?utf-8?B?ZEZWTE1OMDdyamhlS3BZNHpKejJYdHZOYVczQk1Pbk1EcDI3bmFBWGhuelpV?=
 =?utf-8?B?YTJPZ3FGZGRucjNUdWNFV1ZLbVlaRUFFWWV6RWFQbmxWSUtwd0VXTkZGa0h6?=
 =?utf-8?B?ZGpYaS84d3F0SlFmZnpCWFcxbjJXb1lQOUZNZkNxR2pIdmYzR3hyV1NsMGRR?=
 =?utf-8?B?TXVOR3h6cFhxWUVDTlAxRktCa3FyVEhhYk5jVWNLOTU5dkxGTDRUNFR2VStI?=
 =?utf-8?B?RWtCR1hFNTN3MjdsQzhheE5neDJHUGJvTnFZRSs2SFFObHFqVkc1QTBYQXJU?=
 =?utf-8?B?VmFrRHltN2Q3SnJGL1A3LzFHbmtFbUkreXhxTDBGY053eE92NkZMbXlTK01X?=
 =?utf-8?B?VlkwK25sZ2txRllJY01EWGZrMlcwNXM2dGFtQXpBdVlNbVljU09tTER2QjB1?=
 =?utf-8?B?djlVODlhMlN1c04xTTJHaS9KQVI0dG1oRnhBbTlHTWwwemYwOHJBbDJRcmYy?=
 =?utf-8?B?cHc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 49a88c72-00a7-4511-906f-08de36a2f5f8
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 21:44:27.3456
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: WXlZog4EcVOm1d4lhmdZaiW4RpbUdKgimPu7sUL6NLAAVdk2edU8PTmKh2BcR3zAt/YWPAqvYHVtloL8nSnTA44kwJ9tO+d9UfP3YZQbnhA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB10057

Hi Milan,

Thank you for your patch.

On 05.12.25 22:36, Milan Djokic wrote:
> When PIRQs are not supported (e.g. for arm), XEN_DOMCTL_irq_permission
> command is not handled.
> This results with default (-ENOSYS) error code returned to control domain.
> Update command handling to return -EOPNOTSUPP if control domain
> invokes it by mistake when PIRQs are not supported.

> Also exclude xsm_irq_permission hooks from compilation when
> PIRQs are not supported.

Could you please do not mix such a clean up a changes with functional changes?
It deserve to be standalone patch.

> 
> Signed-off-by: Milan Djokic <milan_djokic@epam.com>
> ---
>   xen/common/domctl.c     | 6 ++++--
>   xen/include/xsm/dummy.h | 4 ++--
>   xen/include/xsm/xsm.h   | 6 ++++--
>   xen/xsm/dummy.c         | 2 ++
>   xen/xsm/flask/hooks.c   | 5 ++++-
>   5 files changed, 16 insertions(+), 7 deletions(-)
> 
> diff --git a/xen/common/domctl.c b/xen/common/domctl.c
> index 29a7726d32..159864bc99 100644
> --- a/xen/common/domctl.c
> +++ b/xen/common/domctl.c
> @@ -638,9 +638,9 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>           }
>           break;
>   
> -#ifdef CONFIG_HAS_PIRQ
>       case XEN_DOMCTL_irq_permission:
>       {
> +#ifdef CONFIG_HAS_PIRQ
>           unsigned int pirq = op->u.irq_permission.pirq, irq;
>           int allow = op->u.irq_permission.allow_access;
>   
> @@ -656,9 +656,11 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>               ret = irq_permit_access(d, irq);
>           else
>               ret = irq_deny_access(d, irq);
> +#else
> +        ret = -EOPNOTSUPP;
> +#endif
>           break;
>       }
> -#endif
>   
>       case XEN_DOMCTL_iomem_permission:
>       {
> diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
> index e801dbcdba..6f6de161f9 100644
> --- a/xen/include/xsm/dummy.h
> +++ b/xen/include/xsm/dummy.h
> @@ -555,14 +555,14 @@ static XSM_INLINE int cf_check xsm_unmap_domain_irq(
>       XSM_ASSERT_ACTION(XSM_HOOK);
>       return xsm_default_action(action, current->domain, d);
>   }
> -
> +#ifdef CONFIG_HAS_PIRQ
>   static XSM_INLINE int cf_check xsm_irq_permission(
>       XSM_DEFAULT_ARG struct domain *d, int pirq, uint8_t allow)
>   {
>       XSM_ASSERT_ACTION(XSM_HOOK);
>       return xsm_default_action(action, current->domain, d);
>   }
> -

[...]

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 21:48:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 21:48:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181147.1504240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSj5w-00026z-Tc; Mon, 08 Dec 2025 21:48:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181147.1504240; Mon, 08 Dec 2025 21:48:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSj5w-00026s-QZ; Mon, 08 Dec 2025 21:48:36 +0000
Received: by outflank-mailman (input) for mailman id 1181147;
 Mon, 08 Dec 2025 21:48:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NKnm=6O=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vSj5w-00026j-Dz
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 21:48:36 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a4c8d14a-d47f-11f0-9cce-f158ae23cfc8;
 Mon, 08 Dec 2025 22:48:34 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by AS2PR03MB10057.eurprd03.prod.outlook.com (2603:10a6:20b:64b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 21:48:31 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9388.013; Mon, 8 Dec 2025
 21:48:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a4c8d14a-d47f-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fMo/sebzQFY6dZlfXrPG1rO55J+JfMEK4xbYMsmSKnqEp1LAQS/4IjiWJpcW/xjIRs9dgFKQvAZ4KqSH7OEqgt8Xe4irf7X9woPCeJycfjp0txNayuZZ5G1Nn5eqzpYDVAOMa/DwGnRzjfkLwcHkHkMUYHpiJj19M/IyvoDWv3Z1Z7cH5ZiH9/3kwCiYnQ3lPCJFhxexqww8dBHTowvwoK+NmUWmhOlyDk54RnjdKROOhpNFJH0HAlJ2zpFezcEPAP4Jcd9+Z1iqpNRBu6pgRYUqqe52X4kjrC4RKkbYozmt10ko5CLUcvY2RcKGW2cNkDl2V7CpFbkQTX5qIw5VWw==
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=HgeCzMJRWhWLkcmzsPeMXpR6mNV21H/+zRDJWNcFt58=;
 b=cbqBJjL0/+wzQrkz8L1spN1YTNevFGMFk7pQXSMdypGA0jKEDFZ5KEOtUTA6i/WzwFe2Wmnvrs8xp+PrcQMPiQvGWS4opzT7iIUSj7iJC+uk3xvZZskS8fra1fVY+VLejO9rS6RTaULdFMpqUcS9axX2Oy6YjfrqYmneo7kzBoXq/lFBAVZ7JPP2HB6+YLjz4X0DOjNUSh+3kKvg6GAMrbBNr14DtmLjtQs1GlqbIhfUCbNtqw/ffUGR7CixxxiVnumHrZjjyM6siDUkDwgNiiTEONRKug8strzFeaVxmuAHrulpjUd9RahIBJapHr2h1CfYIYj5Dyl2e43mo2XvHQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HgeCzMJRWhWLkcmzsPeMXpR6mNV21H/+zRDJWNcFt58=;
 b=j6y9hnGcoGMeX4uSj1qPtJcZU+fubACvEHHr/ORf9iPTSBkupmYVvTjpgBAlDU8WTpghx+0PCtYCEOZdo7GiYmvJvSPiT+nlvKDuy31cu+ZviqroAfdmpLHE/kQRzvENUgRSon5CuGYxyJsU8Q2oCPy5ZwGy+gIOA2fPqYQdbwu9/JdKYn/xzpjSUdQRupQfLVUNPfBNozSFbKBcvw/kFRZFvNd/sQMCCQEO2iHz7qMu+7fmBHSiMoqMl6z5mb7AqAe/Ndj7niPAwf4CVUTIooexgyG8E3nlfQuSEydFDw7Kc+597r9bGczAacmw6u+tEcgmScYT/KdXZVs2MbY6yw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <7891d66e-cd51-4694-9926-cf8f62c3053f@epam.com>
Date: Mon, 8 Dec 2025 23:48:29 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] x86: move / split usercopy.c to / into
 arch-specific library
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <f46f89f6-242b-4433-958e-36088e567ccd@suse.com>
 <12852eae-849b-4576-a8e1-85edf401b455@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <12852eae-849b-4576-a8e1-85edf401b455@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA1P291CA0022.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::29) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|AS2PR03MB10057:EE_
X-MS-Office365-Filtering-Correlation-Id: dbddd457-e0cd-4aab-2cfd-08de36a3874e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UnpldWVuMG5pMDl5U0hrOHk0UjJ3b285SFQ3d3pFQjdVcXRwS2pab3FCRWtG?=
 =?utf-8?B?a0tkTG5rL0lUc1ArVW01cmcxOUxscVVVZmIrV1dUb1A1anBvNGoreUF0UHZY?=
 =?utf-8?B?QTY2Q3pWNEtxZVMzMXAxTEZocHhxdytvV2RtaDdnaVljWERWOXpsWWxKMEFy?=
 =?utf-8?B?bU1iQ1VTenVxYTJIVUdrTUdTenJBSjluQ0t5NFJCUUo1TGtiMkZFYVQ4Vlp2?=
 =?utf-8?B?WHh5YlVZK2JHT2JLZlNLUHRRejFkd3JqOExnZVgwb3JBK0pPK1ROVFZ2Tm5H?=
 =?utf-8?B?U1pGOW01Sjk5L1NDOCtQcFBjYk9FcUw2dUR4ZmVWakh0ZEdrcjF4OTVLVGpV?=
 =?utf-8?B?cEFqZ0xWeEFWK0JQRGJWT1FFWCt5M1VuWHNiQnNRZE9ScC9ScmlNNGZaQXVI?=
 =?utf-8?B?YWtjRnlkc0FBM1dSQjBIK3M3bE1NWk9aUWNmR2hWcWN0aUhNSnUxWUpHTFU1?=
 =?utf-8?B?eXlPbVAydkMvZlhTNkxocmtzaEx3bmdiOG9Wb2lHK05FNzJGZ29pZVV2bUZL?=
 =?utf-8?B?enRWQUI3b01TYlhuWGRmQmtrZkE5cWJ2bzRJcElwdDJ2MW1xR3NMT0t5WlUw?=
 =?utf-8?B?RUtuZWNyQ0NDVVVzbFczbmsyVEw1dVlzekUvbGc0c0Z1N09FQUJQTWlEczE4?=
 =?utf-8?B?RVJKRVlyYXBJdk9TcklhcFA2c3NCbEFidGxiejBqeFRxQVQvNHNCQUhySVhx?=
 =?utf-8?B?THhLeUtDRW0xSEFIczlMRnFtZkNZblFkR1BsU3ArR2tqamZhSFp6b1JZNVMz?=
 =?utf-8?B?c2JOOHRIWnE1dzRQNlVKYzJSRGppUE5yTkNlWkFTOVZnN2hzaVFqVjYvZDZF?=
 =?utf-8?B?emNoWndZelVDcE9VZTdyS1NEVjZrMC93ZFQzZ21XdXdta0dTMXJWK0x5akp2?=
 =?utf-8?B?dWhITWVMSzFObEQ1cEp0SitQTDZSVTRCUTdHL3dyeWRmQzVGYllmdndMY1c5?=
 =?utf-8?B?aWJlb2hMYkJuQTJRczlGNG1LZkx4MTROTHlYQkpXbHo0WHdINitPZHdva3lj?=
 =?utf-8?B?dXFlK0pGM2laTTBWNkhxY3dEWm9QUVJmNUllWEYwOVFETzhKa2pzQnZMTk16?=
 =?utf-8?B?aWN6T0hDb3lQYVNQT3VLazVXaEhvbUNVM09HZGNnYXNLVnQzeFFhQUM4OWwr?=
 =?utf-8?B?b29oT1F2dmlsbWJmRy9OL2s2VWlEZ3NYelM4TDU2c25CSkUyK3hPbUJCKzYv?=
 =?utf-8?B?WldDVlI1WTEranFJYmNvODRCY1NCVk0xZWo4WjBlNWVhUmp6N0dmSGd3N3M5?=
 =?utf-8?B?K29oZjFnaUJnM2hCUHlONHh4NnBoSWZCMGhoN1l3SXdQdXBScU9Td2Y2cWJx?=
 =?utf-8?B?QjNhY0MrTVA4bXB5Uko3YzZuRlIxQlh1WWpKY3grb2ZCd2Zja1lWblR5QmJI?=
 =?utf-8?B?Rm9iZ1JMeWNDMDgzZTdvbExRRDBPdWVxT1ppelVlSGprTEhSaTd4QUpOKzA0?=
 =?utf-8?B?V0EreTAxYkU5RUVNWE80V2RmRnE4M1JLRk1WWTgxYTdRNDlnYXhsM3crTTZo?=
 =?utf-8?B?WW01WjEvNldxYzZrbGV4TkZxUU82c2N1azZCYlp2WWZsSEpwdjc4R29tZ29w?=
 =?utf-8?B?aTdFWXNDK3JnZmVqcDUyUlFTRC83V1hvWVBWeWt5N09XYlZXL043Qit4UU5C?=
 =?utf-8?B?T1pGRmJxZ0hpdUtlc1Z2NndFOVBTZU9rbERkamlUc2hGKzhLODM5Z09BQzMr?=
 =?utf-8?B?RW5zZXo3d1oxMzFybjRseUlONXhHTTJ2YThhYlZ3YTc2TjJaNm9mUlZZLzZa?=
 =?utf-8?B?bjNWNi96K0FRQitXbmFoSVJteFVRTGZnaUtkOGV0SEtCZHF6bEhNL20xVUZk?=
 =?utf-8?B?Vjh1WHNUbWllOHAvMFF4cnVyc09lMnR6TnZLV1FSTXNUam1Uc2FVQjdpNFhs?=
 =?utf-8?B?L2crbG9kVXZWK0VocTlBOHZCRjBNbTFKS0puaFE5TU9DcUVWVFQ5dmc3V2VS?=
 =?utf-8?Q?0MppUYantLvXjKCjrYXLCXx4k4lN773o?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZnlEZVVOWmNNU1RqUlF6WFdUMnNsMEVpVUdzOTNUS09ZTWlUR3ZNTlFzS2Zx?=
 =?utf-8?B?bU9aZXlvam1NSWxmYlRoZGNlT3JlZXBBWlQ5TldiZnV5VjN4MXJ3aVZOQzA4?=
 =?utf-8?B?U1Y0aHZYTE51MkhyRWticnJ2cDRNb1dqRThhczJhYVd1bHFSRkgyL2UyUmJD?=
 =?utf-8?B?MjczL1hpUVBWOEVETG5JaitpNDhzQzVsSDhhNGFWWm5HZGZmUnBDQ1dHRjJQ?=
 =?utf-8?B?YnpZK1ZiMERrNURpRWNpSDQxUFVZZTdYVjhpODFmcWdxSXNUbktQS3NKQmly?=
 =?utf-8?B?MlNIM2hoanc3V3YrYTNsYWVzcjNmSkJUWTZFT0lyWDNUUDVYTC83U21QTHZp?=
 =?utf-8?B?QTBKWHFwT203alI5TVhYeHpjaTgrdHVVYWNrOVZCQ3VhZGRzNTZTM3NqTFlZ?=
 =?utf-8?B?YW9HaVJkN2k5cHl1VUNVM1VxbDlLYzNTV3FJRGpjTzc0NGJUeU1rTDNvNWJK?=
 =?utf-8?B?ZEt0emMvcFpUbzZXUnFUYnFHVXVNTDNLa2NkV2Q0UGo4VFJVa3FHNTNrdkpt?=
 =?utf-8?B?SzA1RlMzRHNJWjZjN1A2aFQvL1RiQ1czUllwSkVxRUc0LzJ0ZWZUUXBGRGhG?=
 =?utf-8?B?cGtYc3lPeWRuZ2wybVN4UHdTNzNMTndabjM1ejJLZ0JVbkxXWmp4dHQrcTlV?=
 =?utf-8?B?bjRzcDkvVGJPVlZTY0g4djhkcUxkMGNNdzFmaDdpbGNpaFRFMW4vS0I2Vjhn?=
 =?utf-8?B?eE80a1YveE15TFlTb0szRkViSXlUTWY3cjBqWEtUYThuN2FIRC8wZXpuaDlS?=
 =?utf-8?B?Y3J0dWM1S29hQ2hmZkY3RDBxc1BUaXNUK21hUXBRTExiUS84V29ScjU1TmxW?=
 =?utf-8?B?eFlOZzhPeWtLZlFVbmQ5YzRDcEo5RGJjanYzcGxjbGM3aElTamE1T2JVQTJx?=
 =?utf-8?B?Qy8yY21DL3lEWjdxQVYzamNyQ2dNdG4yVjBOWnNRM2MrR3BUM1pWbWZ6WmVN?=
 =?utf-8?B?RG03T0pXTDdBTFpFNU8xSTFGQ0JoV0RDZ1ZHQWptTkhqeDM4VzRtYXFPUHlq?=
 =?utf-8?B?ZVl4V0EyZ3FWMThGTVJ3M2hBNWRNRkFtczVUeTJsc0ROZEdvTVJwbzRGQkpY?=
 =?utf-8?B?Ri9EMkJseEFJeXJWNUNES1NmZDRaVlFOUDlnN3RmVi9LNWJpeCtNdHhUbXFp?=
 =?utf-8?B?aVdQRFoySXRLckNhd3ZTKzF3UzV3WjBmOUdBdnJHREYvMVQ1bVdwSjM4Zms0?=
 =?utf-8?B?MjlsMmxpYUZCY3lQWUR6TlNDVnpmUkZ0aHhtdnhXZ0g4TDFVbVRQMGFFbXVk?=
 =?utf-8?B?L0hsVEI3dUpSczRlNVVHeEtwc3FwSll5UzJ3SHdzbzRKNmF6dDdocmdKeUJV?=
 =?utf-8?B?dkYvLzVVQm9zcXN1VnRNakpzeHVsZG5ieThRY2FEazlxOTFEWHZEMlRKYXlU?=
 =?utf-8?B?WmgxMVNVciswNERIT3k0d0hLUFV5RzZ6NXNPSTdKZ0lIdGE1YW1Pa3N6UWxa?=
 =?utf-8?B?Ti9sRDkzNDJpR0wwUEVVQzkzQ1ExbC9NYm9zT2ZQRmV6em9JREMzaUdNVG5r?=
 =?utf-8?B?dldzV00vRHN5VkRCWjdNVkE1ZXdVVGYwcGRTZmNwZnVYdFVpMTQ0Mng1d1pm?=
 =?utf-8?B?bWpKKzVvVDZDcVpJSnQ5MWR1WmVxUnlzNytyMzVLdkgwWUVBdFRkWWRTenhZ?=
 =?utf-8?B?MjV2REw0aWZoQVBVZklVZjJqQkZHMXYvYlVxa2pwSHBnaW93OVRuTWduUXRm?=
 =?utf-8?B?aVM5WHkrSmdMUXJpcTBGNFF3UnJZMnVKV3FRQmJhb01mQlBOdkxKOUJYb1VR?=
 =?utf-8?B?MlRLUHpTU2hBbkdNTGdwY2ErNmdIaXdmYnpuQ3ZoYmtLT3JScmt3VU5FMnRp?=
 =?utf-8?B?NEF0K1g3MmtodjNvcVgxUU1pZXRycmtwQ3lqT2p2aTFoMW5xZjhKc1BDRG5K?=
 =?utf-8?B?K3BOK3d5MzMxaGpEMC9oajJPN0N4RTJPdEZxL1E0R3NaMTFHNmF5TkRGUk9p?=
 =?utf-8?B?UnN2azYxdytBeEZUNVRTWm1EVVJ4MjVqMWh4bEZRZklNMGVZelJyNlI2T3Fo?=
 =?utf-8?B?aHVjbTVWN0ltUm1hMjBkTEoxVlduM0d1VkdkQXlFdE9OSFpNME82YmFUcmJZ?=
 =?utf-8?B?RlVJM3NzT2RrbFVtb0s2TW5zczFpOTRXa2puYThOMjkrZXlUaVhKUmZFbjhH?=
 =?utf-8?B?UFVSb2orb2UxdXR2ajVtMzN6QVhRaldMVzJWU0Frb2RpL2lkZHVBOEtCd1Bw?=
 =?utf-8?B?Mnc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dbddd457-e0cd-4aab-2cfd-08de36a3874e
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 21:48:31.1866
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7IljhDhuCkugoWPBDBxQuJ8voC9oSW9IrZKLhHfG+48NM7WEV19rVPc5NyTnwfQvlBncVrMR5yH0epsFxFhBldaVvEs1593k/g4jizRhEA8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB10057



On 08.12.25 14:05, Jan Beulich wrote:
> The file wasn't correctly named for our purposes anyway. Split it into its
> "guest" and "unsafe" parts, thus allowing the latter to not be linked in
> at all (for presently having no caller). The building of the "guest" part
> can then (later) become conditional upon PV=y.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
>   xen/arch/x86/Makefile                         |  4 ----
>   xen/arch/x86/lib/Makefile                     |  2 ++
>   xen/arch/x86/{usercopy.c => lib/copy-guest.c} | 12 +---------
>   xen/arch/x86/lib/copy-unsafe.c                | 22 +++++++++++++++++++
>   4 files changed, 25 insertions(+), 15 deletions(-)
>   rename xen/arch/x86/{usercopy.c => lib/copy-guest.c} (94%)
>   create mode 100644 xen/arch/x86/lib/copy-unsafe.c
> 
> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index 61e2293a467e..dfb258d7ac1c 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -72,7 +72,6 @@ obj-y += time.o
>   obj-y += traps-setup.o
>   obj-y += traps.o
>   obj-$(CONFIG_INTEL) += tsx.o
> -obj-y += usercopy.o
>   obj-y += x86_emulate.o
>   obj-$(CONFIG_TBOOT) += tboot.o
>   obj-y += hpet.o
> @@ -93,9 +92,6 @@ hostprogs-y += efi/mkreloc
>   
>   $(obj)/efi/mkreloc: HOSTCFLAGS += -I$(srctree)/include
>   
> -# Allows usercopy.c to include itself
> -$(obj)/usercopy.o: CFLAGS-y += -iquote .
> -
>   ifneq ($(CONFIG_HVM),y)
>   $(obj)/x86_emulate.o: CFLAGS-y += -Wno-unused-label
>   endif
> diff --git a/xen/arch/x86/lib/Makefile b/xen/arch/x86/lib/Makefile
> index ddf7e19bdc1d..8fe2dfd88553 100644
> --- a/xen/arch/x86/lib/Makefile
> +++ b/xen/arch/x86/lib/Makefile
> @@ -1 +1,3 @@
> +lib-y += copy-guest.o
> +lib-y += copy-unsafe.o
>   lib-y += generic-hweightl.o
> diff --git a/xen/arch/x86/usercopy.c b/xen/arch/x86/lib/copy-guest.c
> similarity index 94%
> rename from xen/arch/x86/usercopy.c
> rename to xen/arch/x86/lib/copy-guest.c
> index a24b52cc66c1..25eeb35427e2 100644
> --- a/xen/arch/x86/usercopy.c
> +++ b/xen/arch/x86/lib/copy-guest.c
> @@ -1,4 +1,4 @@
> -/*
> +/*
>    * User address space access functions.
>    *
>    * Copyright 1997 Andi Kleen <ak@muc.de>
> @@ -6,8 +6,6 @@
>    * Copyright 2002 Andi Kleen <ak@suse.de>
>    */
>   
> -#include <xen/lib.h>
> -#include <xen/sched.h>

This will not build :(

   CC      arch/x86/lib/copy-guest.o
In file included from ././include/xen/config.h:27,
                  from <command-line>:
arch/x86/lib/copy-guest.c: In function ‘copy_to_guest_pv’:
./arch/x86/include/asm/config.h:270:32: error: invalid use of undefined type ‘struct vcpu’
   270 |     (ARG_XLAT_VIRT_START + ((v)->vcpu_id << ARG_XLAT_VA_SHIFT))


>   #include <asm/uaccess.h>
>   
>   #ifndef GUARD
> @@ -139,14 +137,6 @@ unsigned int copy_from_guest_pv(void *to, const void __user *from,
>       return n;
>   }
>   
> -# undef GUARD
> -# define GUARD UA_DROP
> -# define copy_to_guest_ll copy_to_unsafe_ll
> -# define copy_from_guest_ll copy_from_unsafe_ll
> -# undef __user
> -# define __user
> -# include __FILE__
> -
>   #endif /* GUARD(1) */
>   
>   /*
> diff --git a/xen/arch/x86/lib/copy-unsafe.c b/xen/arch/x86/lib/copy-unsafe.c
> new file mode 100644
> index 000000000000..a51500370fb1
> --- /dev/null
> +++ b/xen/arch/x86/lib/copy-unsafe.c
> @@ -0,0 +1,22 @@
> +/*
> + * "Unsafe" access functions.
> + */
> +
> +#include <asm/uaccess.h>
> +
> +#define GUARD UA_DROP
> +#define copy_to_guest_ll copy_to_unsafe_ll
> +#define copy_from_guest_ll copy_from_unsafe_ll
> +#undef __user
> +#define __user
> +#include "copy-guest.c"
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * tab-width: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> 

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Mon Dec 08 23:01:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 23:01:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181157.1504250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSkDp-0003re-SO; Mon, 08 Dec 2025 23:00:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181157.1504250; Mon, 08 Dec 2025 23:00:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSkDp-0003rX-Pi; Mon, 08 Dec 2025 23:00:49 +0000
Received: by outflank-mailman (input) for mailman id 1181157;
 Mon, 08 Dec 2025 23:00:48 +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
 <SRS0=NZw+=6O=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vSkDo-0003rR-EK
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 23:00:48 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ba735f2b-d489-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 00:00:46 +0100 (CET)
Received: from CH3P220CA0011.NAMP220.PROD.OUTLOOK.COM (2603:10b6:610:1e8::26)
 by DM6PR12MB4387.namprd12.prod.outlook.com (2603:10b6:5:2ac::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec
 2025 23:00:39 +0000
Received: from DS2PEPF00003445.namprd04.prod.outlook.com
 (2603:10b6:610:1e8:cafe::aa) by CH3P220CA0011.outlook.office365.com
 (2603:10b6:610:1e8::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Mon,
 8 Dec 2025 23:00:35 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS2PEPF00003445.mail.protection.outlook.com (10.167.17.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Mon, 8 Dec 2025 23:00:39 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 8 Dec
 2025 17:00:38 -0600
Received: from [172.29.90.244] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 8 Dec 2025 15:00:37 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ba735f2b-d489-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nVHoineSCpGhZmWYIj7Z+zT0TeRHQ3EapA7kWEkli3LbEt/YgeE2yVCXUKJNJYk8RqTsGOx6OiZd7Iif39y79ubeuaKwVQSKNd1lMxpRFiMr2JhGOgk8ttoIFCENaOiDmT7wmpok9MGEz78ZnnP0NoN/2g5cCMAH7aA0/CYVTvxNIX/UF1cG0ITmkx81cIcFEF7hK6773bzJKcHZrjYEO2BUS4oZVuSg6NMJ11mnn9GIvVoqtxo7ICe6iZiYC8hKN1wP3GlTvKvVSbq896AzX2vZO4lI78yVn5+WeYph3rpbJq+vV5fw7xLJZefAgkOczkfGDXUdq9HbYD/WXIJLGQ==
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=1n+5BTEIBK43FX2PyPfouKdwJV5ikhIWV/5npraqfv4=;
 b=GFY0w9pqCqyy3m4PA2BCB9ZOu5cPAjXjxcDmQ/MvNZzlqOgDM5V1rfDjPHvqDNI1MivECpIQwMRUEzLgt2VldsNemesTO0un+jBcEVt/5LlTGlSyrd2j9m7LyJr/gXzjaSJNy1ov9G4od4MgkZ/JJuO3ArgWnMwLWo7Lpbazl6EYNmG3hDFDUmCVi7nRCwNmEiJkjZpJVyLqxndYuw4SRqYvFAfxHQImptxO2UfrjvBoK+7u0vFJwqf9ahVknGP6DcNi9J6LBQt734VYPVwexBhJcqBcWOj/JHvlGDF01uPx/SlyBWV3GPVM8QvEWBLB75QTRtstzUcVLTIJMUc7hg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1n+5BTEIBK43FX2PyPfouKdwJV5ikhIWV/5npraqfv4=;
 b=R+Jz0FbEqgaSKfebY+U7fcUn9e6C75L9s7MbGtMW6T9LsiOxT7zZQqQOML2h1yPO+o2AAVC0yHWkscIXKMK3EtOwf1RARpQc+RPPGHVbbSzhmgI3TvKWEVu2IBQw8RdPGc1if7MEz9QiZoo5M9yWW4ZPozfNsis4R/QtTLpLTuo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <1675a966-1095-4aba-af74-828e4c68e6b4@amd.com>
Date: Mon, 8 Dec 2025 18:00:35 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] RFC: xen/x86: Enable --gc-sections
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	"Grygorii Strashko" <grygorii_strashko@epam.com>,
	<xen-devel@lists.xenproject.org>
References: <20251205222813.277164-1-jason.andryuk@amd.com>
 <6c10dbc4-3247-4a0d-9953-858d09df08a9@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <6c10dbc4-3247-4a0d-9953-858d09df08a9@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF00003445:EE_|DM6PR12MB4387:EE_
X-MS-Office365-Filtering-Correlation-Id: 0442488e-7c53-4fec-62ae-08de36ad9b11
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MEJ2cVZaeW5aTWN4YmdhNG5YMkcyNWg4aVZScVQrRmVoQlFvVXpPY2tQWWhD?=
 =?utf-8?B?amV2QzgzemVna1FrdjVwbFVsazk1SWE1V1RkM091Sk1VdXJmSVFqY1h1bzBH?=
 =?utf-8?B?TzU1c0JsN2RDWDlkWjUxZ3pFWXoxZ2ZHMXR6eFR0K1NLUXRnNTlnZG50aEdj?=
 =?utf-8?B?dDMvc1l0WFA3MU9PeXoyT2lRU3QrREZUNkRRNElma29neDZybThEVUhRVFAv?=
 =?utf-8?B?VWp4Qm55YmZ4WGxNdzh3dk1OVGs3OUszbCt3VDY5R29TYmdteEczbkxoNXBx?=
 =?utf-8?B?K0tiek91NDFTN3JsazFrbmhxVUpvQVRhRElQdytPUi9rVVpSYyt3b3Y1NmRR?=
 =?utf-8?B?a21tVkpYYzZMU1hHYW80T3lnekxLQ2l0MDFIeTIwL0YzU0dMLzJSbEdoQU9U?=
 =?utf-8?B?NTUzQ0JDaitlbG53SUJIU1UvcmhSUENaQzBSMkgvTEcyd0FBdEc2RHVDUTRy?=
 =?utf-8?B?Rm9SaStTUjVYdjlUYzI0N2FkaDZRekpLdFZDUlIrb0IwY2lSZE1mS0tGdUYv?=
 =?utf-8?B?dE1IbWlQNVdYVCtRQXMvNWYydzJKNEtOam90eGgxeHY0YnVzUStkN21KY0VY?=
 =?utf-8?B?NFFuemZMbW9Wck45eDd5akhRRjJDNEVob1ArK3p4OVlqS1QyLzMrNHdqN0ht?=
 =?utf-8?B?MStrODBTVlZMNlIzV29NdnY5WlNBRlFOSURaYm1RRjBZUDZnejlEMzZJeC8v?=
 =?utf-8?B?NXZlWWtIUFg1UmhkYXVNYnBpWWRLN0lFcng3R0d4SXR0MFI4UTgrcmdvZXEz?=
 =?utf-8?B?V1UyTW9zTFBCR2xKYWFBOVZiakRyZ2pOdlBoMFI5bUtPTDg2N20yME5CcEFT?=
 =?utf-8?B?U04yUXlWcHpxTWdIL0dLV29DMzBadzBqVkhudzN4VmxrbEt4MUI2WWhCZUty?=
 =?utf-8?B?QXZpVzVOWWpGblVHQzBYekI2ZGhtVnY5bVZ1UnlKanphM3o5K2xjWE9IZGFp?=
 =?utf-8?B?RHZMR0JRSC9ScUFsZlBkUktiU3h0eUJkUTh3SHNEOEtLU2JpS2NMRTZiRVdS?=
 =?utf-8?B?WnFqeVZKYWd3aVBpNHdPK056dS9rWThRS0tBU29lbTQ1a0Y4a3RHekw3Vy9O?=
 =?utf-8?B?cHlvRmNGNXNFZXlRU25paEMrQktuU3JKWTdrYklDVkN6QkxhcEtYMjAzd1Ay?=
 =?utf-8?B?Nk1rdzlhWmp6b0hvbkZ6MVYxMGY0bmFVeDBTTWxnUlZXdFIvWm5vUkd0aDRH?=
 =?utf-8?B?OGE0ZEVoUGpGci9zVmlMWEpDNTFwRHBibnpvSHlzRnpEemhJU0JrNzdWK2Va?=
 =?utf-8?B?TXZOLzBHQms2UGhDYUJPVnJVWkJLaXpDV0JZWktxcDNCZ1ZWZGhHMXN1N1d2?=
 =?utf-8?B?TGtMcE1zVTBRUFJKZmZ4bWJRM2ZsSkdzb3lLdW5YenpuSGxDVHhPSnYxYmZp?=
 =?utf-8?B?SG9ndWlTcTZRdjFZOVZ5WG11Rmo4OXIxdXE1bkIrSmR5M2w5aXNUYkI4cERk?=
 =?utf-8?B?d254dm9jM1QycTRPTEdTQ1NDem1PS1BSTFlGWGo3SEQ5WG15L3gwOGl1SkdH?=
 =?utf-8?B?RlVmbzVLQzU5NkI5akxNbmg4OThZSmg2SG9xQ2NacG0zZmtRZEFrc1FuazBw?=
 =?utf-8?B?MmdLYldmQWN1SFUrRU1aRXo2Wm5oMzN5bXBURTdiTWx3dTE5ZXJmeWYvRTFV?=
 =?utf-8?B?K2JhR0NWSll3VDNDRHk2M1N6RVREZDdmMXNoWCtQQklmM2VUdzZWN1YwQ3hM?=
 =?utf-8?B?UWM2dTZNUVF4cDRjcUlPQk5jUTBqaEMzU2U2TUpndk5oN1Vubkl2MGxnTDZI?=
 =?utf-8?B?ZmlzN0Z4VmYrZjVyTDR6ODhxMlJVT1czazBPZTlaRmpkQ2tmei81d3JZeG1E?=
 =?utf-8?B?S2VHcWdEdzlJakNFeFdIKzBkc0hOVDFqZ2pqblBUUXFiam1IdEZCREdVZEJ1?=
 =?utf-8?B?VEdrRFpJYm84c1F0UE96WXo5bElFbmxmTmZYQXhmUGVuNllYbHBPSGlQdHM5?=
 =?utf-8?B?dXhJOVlpN3lLQ3ZUdHVKbXFKWnRmbEdxZkpaeCtMT0xHWnIyR1ZncnBKb3Vz?=
 =?utf-8?B?UTlnV2hPL2x4OEEvOHlibU1oU1NEeXRSMldKaTl5bmtNY08zQ3RiVEVEV3lL?=
 =?utf-8?B?UGJVa2hqbzhEeWFaam9EOGliWjB6cnVOaW0xU2dJaWlGakJFWmlUTTM3TzBw?=
 =?utf-8?Q?CKd4=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 23:00:39.1237
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0442488e-7c53-4fec-62ae-08de36ad9b11
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS2PEPF00003445.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4387

On 2025-12-08 03:56, Jan Beulich wrote:
> On 05.12.2025 23:28, Jason Andryuk wrote:
>> When linking to create xen-syms, add --gc-sections to garbage collect
>> unused stuff.
> 
> What about xen.efi?

I tried briefly and it fails to link.  The GCC manual says it is 
considered experimental for PE and COFF.

I just added into EFI_LDFLAGS:
   CC      .xen.efi.0s.o
ld -mi386pep --no-warn-rwx-segments --subsystem=10 
--enable-long-section-names --disable-high-entropy-va --dynamicbase 
--image-base=0xffff82d040000000 --stack=0,0 --heap=0,0 
--section-alignment=0x200000 --file-alignment=0x20 
--major-image-version=4 --minor-image-version=22 --major-os-version=2 
--minor-os-version=0 --major-subsystem-version=2 
--minor-subsystem-version=0 --gc-sections --print-gc-sections 
--build-id=sha1 -T arch/x86/efi.lds prelink.o  ./.xen.efi.0s.o -b 
pe-x86-64 arch/x86/efi/buildid.o -o ./.xen.efi.0xffff82d040000000.0 && :
ld: kexec_reloc is too large
ld: kexec_reloc is too large
ld: 
prelink.o:/home/jandryuk/xen/xen/arch/x86/boot/head.S:60:(.text.header+0x48): 
undefined reference to `start'


>>   Relies on CONFIG_CC_SPLIT_SECTIONS
> 
> Yet still ...
> 
>> --- a/xen/arch/x86/Makefile
>> +++ b/xen/arch/x86/Makefile
>> @@ -137,18 +137,21 @@ $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
>>   	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0.S
>>   	$(MAKE) $(build)=$(@D) $(dot-target).0.o
>>   	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
>> +	      --gc-sections \
> 
> ... you pass the option unconditionally. Which may be fine from a functional
> perspective (little if anything will be saved), but besides being a little
> inconsistent with the description I also wonder whether the option won't have
> unwanted side effects (longer linking time, bigger working set).
> 
>>   	      $(dot-target).0.o -o $(dot-target).0
>>   	$(NM) -pa --format=sysv $(dot-target).0 \
>>   		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>>   		> $(dot-target).1.S
>>   	$(MAKE) $(build)=$(@D) $(dot-target).1.o
>>   	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
>> +	      --gc-sections \
>>   	    $(dot-target).1.o -o $(dot-target).1
>>   	$(NM) -pa --format=sysv $(dot-target).1 \
>>   		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort $(syms-warn-dup-y) \
>>   		> $(dot-target).2.S
>>   	$(MAKE) $(build)=$(@D) $(dot-target).2.o
>>   	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
>> +	      --gc-sections \
>>   	    $(orphan-handling-y) $(dot-target).2.o -o $@
>>   	$(NM) -pa --format=sysv $@ \
> 
> Rather than having to alter three locations (plus another three for xen.efi,
> plus another three for every other architecture that would want to follow
> suit), should we perhaps introduce $(XEN_FINAL_LDFLAGS) or some such? That
> could then have --gc-sections conditionally upon CONFIG_CC_SPLIT_SECTIONS.

Yes, I thought something like thiat would be better after posting.

> I further wonder whether the use of the option wouldn't want gating by its
> own Kconfig control (dependent upon CC_SPLIT_SECTIONS). If nothing else than
> to have an easy workaround if either we had a usage bug (e.g. a missing
> KEEP() somewhere in a linker script) or there was a related bug in the
> linker that we end up being affected by.
Makes sense.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Mon Dec 08 23:03:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Dec 2025 23:03:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181170.1504260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSkGk-0004Tn-Dv; Mon, 08 Dec 2025 23:03:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181170.1504260; Mon, 08 Dec 2025 23:03:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSkGk-0004Tg-B7; Mon, 08 Dec 2025 23:03:50 +0000
Received: by outflank-mailman (input) for mailman id 1181170;
 Mon, 08 Dec 2025 23:03:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NZw+=6O=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vSkGi-0004Ta-W3
 for xen-devel@lists.xenproject.org; Mon, 08 Dec 2025 23:03:49 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 259477da-d48a-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 00:03:46 +0100 (CET)
Received: from DS7PR03CA0123.namprd03.prod.outlook.com (2603:10b6:5:3b4::8) by
 DM6PR12MB4449.namprd12.prod.outlook.com (2603:10b6:5:2a5::9) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.14; Mon, 8 Dec 2025 23:03:39 +0000
Received: from CY4PEPF0000E9D2.namprd03.prod.outlook.com
 (2603:10b6:5:3b4:cafe::77) by DS7PR03CA0123.outlook.office365.com
 (2603:10b6:5:3b4::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Mon,
 8 Dec 2025 23:03:38 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CY4PEPF0000E9D2.mail.protection.outlook.com (10.167.241.137) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Mon, 8 Dec 2025 23:03:38 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 8 Dec
 2025 17:03:37 -0600
Received: from [172.29.90.244] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 8 Dec 2025 15:03:36 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 259477da-d48a-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mBRoj677RD8BvCj10Ulbh0MPoGIqJod0ZsT66NR5FXUj6V+DekN5v6yRA6IdO0Il73o8cv4Caa+PTpB8Cu7o3SEb2Q8v5ecAP2yhxUWm6xWDYPAf+Om6FHB0HUqOWcaUM617l9c4V/TNAtDceCTcU2+m32xGs04ZAHLoyJWh+UhdEWWzzSarmFcckRr3TC1NQGgoag4MAniuYLQWhr2tOsApqbR9yZ6DqiF5tLDk62/vxxcKO3oi8M/FBWdVgj81vP5uisSgZti7NjrKA1/HhJ87fNGcnaYX4ZbwgXfRhNds1YEVBJXyTQBPmvtmGufFjT2bjLzn0oD9jhxEcqj4zQ==
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=1FDVCVnz8hiZwPdl4WPZ705nhjq/Phnvt6CIbBE2xPI=;
 b=HCbb+Thb7cXkAFKqQmvL4hKf54pMp0RapITK2+jq5Vyv1ra7DQe0zy+/+zrcEtKRd7bqx9pRnfSEmNTNcf+xaWJMk1EWHIUqLdYMvvA0mkd7/R4HNCIFtFsap0k9+vyPlszXyXLhnrGjcihVBysVB0QPNm+xsyRExbB67+twQ43RybweHNPVi7YjOWC3eZNTrBNmyPHtWJdgI2v/7zw0dmjE0HzxHTHNMxKd5PjdW+pD1VWPe3b8DfROfoVqbrWEkUXkv/fJ2HPyxlimzx5eUdAMNikOgRp7KZEApNS1iHQ1VvvMfNLOBp56ltjC4Cs+ug2+y68PSGd/vQhe8zLbZQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1FDVCVnz8hiZwPdl4WPZ705nhjq/Phnvt6CIbBE2xPI=;
 b=fPs/qzeLTqMJADavfA5PUS+yaEAgx374fvCjJ8jhg0ruN1WceGfrUWtr9gmhqnE0JOCtasHZ7obQvs6oPUaxuZqVmJzvO6fIZ2/bkv4+tUWStqJvIjRc795o+8lB/Izgd1mfAX8xOlkJgm+1itXkuxfHfmTvcQwpD1VUaowJNDM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <6df5c899-5c53-4010-b677-bed742b8a805@amd.com>
Date: Mon, 8 Dec 2025 18:03:39 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] RFC: xen/x86: Enable --gc-sections
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	<xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>
References: <20251205222813.277164-1-jason.andryuk@amd.com>
 <b358254c-1666-49a8-a7c0-c7bed9e9318d@epam.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <b358254c-1666-49a8-a7c0-c7bed9e9318d@epam.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D2:EE_|DM6PR12MB4449:EE_
X-MS-Office365-Filtering-Correlation-Id: a5e7a75d-dc8e-4f9e-f193-08de36ae0625
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NkM0U2lvMmxOSmdDdjZoVk5LbUptY0VTbEd1RW1pWS93TXhieG9WYnZDQ2dp?=
 =?utf-8?B?NWlObHVTWlorM3cwV0pJWEQ4MklUbTNvUVR6OUtCVHovQzF2NnlzbHN2WXhY?=
 =?utf-8?B?MEorMTJyR2xrb3lzZlFwTU9NaUtXbFNwTS9mSmx5TlVRdUlIRHZvVkg2aWpC?=
 =?utf-8?B?TlVJbXFqcUJYWmhNN28yU3pXbkNpQm9ZZFZXWTZkOGM2ZTBvS1NJQzJhYUg3?=
 =?utf-8?B?V0FWbHhVWDVNalAxVm1OVlcxT29odXh1RVhORzFVbldkZ3pjbTRIYzE3M1ha?=
 =?utf-8?B?VXRzNGlVRWFpS1U0bVptZlVSbTViZWxGM3ZoY3AvTExDLy93eGhQazU2WUJr?=
 =?utf-8?B?VkNzRkJVWXJTYlhweEI2cjFDamV1TkhpOEVLWHdVMlVwYnhVOWNGMGI5Rm1S?=
 =?utf-8?B?M0k5V3AwdGs1VDRKL05WUE9PQnZoVjBVR0tZMmVnWkxpVDYrMlllT0s0cnVa?=
 =?utf-8?B?ang3aWw2eGRock1TOXp6ZG5SWnJjbTJBUHFDSHhZZkI3ZG9uQkxBUHlDWFpJ?=
 =?utf-8?B?R0k0eS9ab1NkdVNMNTFsK3U3cGlUTDhaMi93TlF2bzA3UlgzcVNzT1IvbFAw?=
 =?utf-8?B?UFAvZW1iWUovSVFQejBCYTFudm9sNEF6YzI1cG1ETXlOSkVsNHd5VjM1b0VS?=
 =?utf-8?B?TGNwYVlyY0JoR3MvbDVxeUhYUFNZYUpZSlBqV28yQXFSRUN5NEJPZnNRbHhI?=
 =?utf-8?B?djArMmVEaDhGbTlNVVk4Ti9NbWpqc21vdjV2WDFXdWd5S29BaHRUKy94ZjJU?=
 =?utf-8?B?S3BzbVZKKzNqdms4NjBST0ZIRXkzUmdFSVVUa2xQSlZCZlRPUGFadE5RTm1L?=
 =?utf-8?B?QWRHeWlKWDR1SUpVdXN3LzQwTDc3SlE1cElQT2NhNEJUYmdsMTJLbkovOW1s?=
 =?utf-8?B?b3EvOC90SEVLcm1pWWZCbzVYdlB2YUNKaVN1QW5OMXhSYXQvcVVhbzVnU2dH?=
 =?utf-8?B?cUZlbEZadklrbW9adTlSN3dmaUF6T0ZSRmJMQnl0cUxpa00vazdNOE14cjNU?=
 =?utf-8?B?VlN1MGJIb2xGeDU2ZnhhZklLeHZ4VWhjZGJPYnN0bGl5SU9UYWJtVjc1Q0J2?=
 =?utf-8?B?bmM3QWFxSHdSK2h5dGswbUVFYWYwQU9oOUpNRUJrVmYyMmRDUEFtSWk4Rlp6?=
 =?utf-8?B?RUpLOVhBNEh5SnAzcnFJWm9hRHVlZGlnMmR1T05CU2c3QStrbEhrQ2YzWGI0?=
 =?utf-8?B?bm1Hd2c1dWtiZ2Jia3phOW9OUk5Hb3hZSzllNkRjVjh2NE5xWk16WE1seXRw?=
 =?utf-8?B?THJrdmVpQUZtdnlTdUZhbENadzkwdVhKMWRIeWlzWDJmRHUrS0FSdW5IQXRL?=
 =?utf-8?B?dXNoWks2b1dDT1RQbGFpR28rcFFocVhjaFIza1NRZ241dHZ1M2F6c3lIeW1T?=
 =?utf-8?B?VkFNUW9RNFczNVhCSWVoaTlnZFdjY0VOQXVxN3Ezbjk4UlB4VGI5dnJVUzF1?=
 =?utf-8?B?OHRGUFM3LzQ5bVhCb3pkSEI5bGJHa2Rldm5QN2prZnhQWmRoWTF1OUtjc0NQ?=
 =?utf-8?B?MFRPOGFjQXhQeWhjOHNLdkpoRDJlSE5oU09FT2w3SFY1Y2N0M2RnbWt6akNj?=
 =?utf-8?B?My8vQ21hbnRRcjRxU0s4bk5QaTNRUENlRUpxY21SZmlBQ0RyNm1sOHZGdlI4?=
 =?utf-8?B?SmNyN1p3enNNcHFYTG10MnF3dlZaZ2Zaa1N3WVZFYkpteis4RjdTNHdzSGJK?=
 =?utf-8?B?VzNnRVJYbHhHYmlBUlZvVXBsdHZEMnRIbzdCWkRhVnZPb2ZGaE12Zmwxa05v?=
 =?utf-8?B?Qm5maVZHMVJpa3p5STFOT21XYzFYa2VvcGErM1ZtOHVpNXkwQW9kNDYyM2pJ?=
 =?utf-8?B?cHBPU3kvcHZyN2wwTUYzNXV0MXJFVDgwbk9qWDlXWVRUU1ZaTXU1TVp0b1du?=
 =?utf-8?B?cjc3WE5hVmtBaGxMbC8zd0FQSGF3YjBWZmMzVEgrckY5UDZtRVczdTRHSWpT?=
 =?utf-8?B?Y2dwM2FzT3BGYU1vMmQ4bFlHa0Z3VFhwbFZ5SFkzSTdpS2xhNWp3ZHc2Z05B?=
 =?utf-8?B?VGs5ajNTTWk2VTA3TGZYeXdNc0MzTldLcEw4TUlZcEEyRWg1OVEwZldKMTgw?=
 =?utf-8?B?ZjNYTjVyb3JEbi8vZlJWYXNFRDIxaGFIK1c5RzV0YXBoZGM4ZE1EZ2Vaakxm?=
 =?utf-8?Q?yF4U=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 23:03:38.7679
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a5e7a75d-dc8e-4f9e-f193-08de36ae0625
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9D2.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4449

On 2025-12-08 13:45, Grygorii Strashko wrote:
> 
> 
> On 06.12.25 00:28, Jason Andryuk wrote:
>> When linking to create xen-syms, add --gc-sections to garbage collect
>> unused stuff.  Relies on CONFIG_CC_SPLIT_SECTIONS
>>
>> We need to add KEEP() to the linker script in assorted places to retain
>> appropriate data - especially the arrays created therein.
>>
>> Something is off though.  In a test where memory_add() is unreachable,
>> it is still included.  I'm not sure, but I am wondering if it's the
>> alternatives somehow keeping a reference to it.
>>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> ---
>> With --print-gc-sections on defconfig:
>> ld: removing unused section '.text.__bitmap_full' in file 'prelink.o'
>> ld: removing unused section '.text.__bitmap_xor' in file 'prelink.o'
>> ld: removing unused section '.text.__bitmap_set' in file 'prelink.o'
>> ld: removing unused section '.text.__bitmap_clear' in file 'prelink.o'
>> ld: removing unused section '.text.bitmap_find_free_region' in file 
>> 'prelink.o'
>> ld: removing unused section '.text.bitmap_release_region' in file 
>> 'prelink.o'
>> ld: removing unused section '.text.domain_has_ioreq_server' in file 
>> 'prelink.o'
>> ld: removing unused section '.text.compat_kexec_op' in file 'prelink.o'
>> ld: removing unused section '.text.in_atomic' in file 'prelink.o'
>> ld: removing unused section '.text.radix_tree_next_hole' in file 
>> 'prelink.o'
>> ld: removing unused section '.text.radix_tree_prev_hole' in file 
>> 'prelink.o'
>> ld: removing unused section '.text.radix_tree_gang_lookup_slot' in 
>> file 'prelink.o'
>> ld: removing unused section '.text._nrspin_trylock' in file 'prelink.o'
>> ld: removing unused section '.text.xen_compile_host' in file 'prelink.o'
>> ld: removing unused section '.text.vscnprintf' in file 'prelink.o'
>> ld: removing unused section '.text.wake_up_one' in file 'prelink.o'
>> ld: removing unused section '.text.xmem_pool_get_used_size' in file 
>> 'prelink.o'
>> ld: removing unused section '.text.xmem_pool_get_total_size' in file 
>> 'prelink.o'
>> ld: removing unused section '.text.xmem_pool_maxalloc' in file 
>> 'prelink.o'
>> ld: removing unused section '.text.xlat_start_info' in file 'prelink.o'
>> ld: removing unused section '.text.elf_sym_by_name' in file 'prelink.o'
>> ld: removing unused section '.text.elf_sym_by_index' in file 'prelink.o'
>> ld: removing unused section '.text.elf_get_ptr' in file 'prelink.o'
>> ld: removing unused section '.text.elf_lookup_addr' in file 'prelink.o'
>> ld: removing unused section '.text.serial_vuart_info' in file 'prelink.o'
>> ld: removing unused section '.text.pci_find_next_cap' in file 'prelink.o'
>> ld: removing unused section '.text.free_hvm_irq_dpci' in file 'prelink.o'
>> ld: removing unused section '.text.mce_barrier_init' in file 'prelink.o'
>> ld: removing unused section '.text.mce_barrier_dec' in file 'prelink.o'
>> ld: removing unused section '.text.mce_barrier' in file 'prelink.o'
>> ld: removing unused section '.text.apei_read_mce' in file 'prelink.o'
>> ld: removing unused section '.text.apei_check_mce' in file 'prelink.o'
>> ld: removing unused section '.text.apei_clear_mce' in file 'prelink.o'
>> ld: removing unused section '.text.efi_halt_system' in file 'prelink.o'
>> ld: removing unused section '.text.get_vvmcs_virtual_safe' in file 
>> 'prelink.o'
>> ld: removing unused section '.text.get_vvmcs_real_safe' in file 
>> 'prelink.o'
>> ld: removing unused section '.text.set_vvmcs_real' in file 'prelink.o'
>> ld: removing unused section '.text.set_vvmcs_virtual_safe' in file 
>> 'prelink.o'
>> ld: removing unused section '.text.set_vvmcs_real_safe' in file 
>> 'prelink.o'
>> ld: removing unused section '.text.domain_set_alloc_bitsize' in file 
>> 'prelink.o'
>> ld: removing unused section '.text.watchdog_enabled' in file 'prelink.o'
>> ld: removing unused section '.text.unset_nmi_callback' in file 
>> 'prelink.o'
>> ld: removing unused section '.text.sha2_256_init' in file 'prelink.o'
>> ld: removing unused section '.text.xxh64_copy_state' in file 'prelink.o'
>> ld: removing unused section '.text.xxh64' in file 'prelink.o'
>> ld: removing unused section '.discard' in file 'prelink.o'
>> ld: removing unused section '.rodata.xen_compile_host.str1.1' in file 
>> 'prelink.o'
>> ld: removing unused section '.rodata.elf_lookup_addr.str1.1' in file 
>> 'prelink.o'
>> ld: removing unused section '.rodata.apei_read_mce.str1.8' in file 
>> 'prelink.o'
>> ld: removing unused section '.rodata.efi_halt_system.str1.8' in file 
>> 'prelink.o'
>> ld: removing unused section '.rodata.play_dead.str1.1' in file 
>> 'prelink.o'
>> ld: removing unused section '.data.rel.ro.local.fetch_type_names' in 
>> file 'prelink.o'
>> ---
>>   xen/arch/x86/Makefile     |  3 +++
>>   xen/arch/x86/xen.lds.S    | 38 +++++++++++++++++++-------------------
>>   xen/include/xen/xen.lds.h | 18 +++++++++---------
>>   3 files changed, 31 insertions(+), 28 deletions(-)
>>
>> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
>> index 300cc67407..934c79411a 100644
>> --- a/xen/arch/x86/Makefile
>> +++ b/xen/arch/x86/Makefile
>> @@ -137,18 +137,21 @@ $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
>>       $(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0.S
>>       $(MAKE) $(build)=$(@D) $(dot-target).0.o
>>       $(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
>> +          --gc-sections \
>>             $(dot-target).0.o -o $(dot-target).0
>>       $(NM) -pa --format=sysv $(dot-target).0 \
>>           | $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>>           > $(dot-target).1.S
>>       $(MAKE) $(build)=$(@D) $(dot-target).1.o
>>       $(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
>> +          --gc-sections \
>>           $(dot-target).1.o -o $(dot-target).1
>>       $(NM) -pa --format=sysv $(dot-target).1 \
>>           | $(objtree)/tools/symbols $(all_symbols) --sysv --sort 
>> $(syms-warn-dup-y) \
>>           > $(dot-target).2.S
>>       $(MAKE) $(build)=$(@D) $(dot-target).2.o
>>       $(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
>> +          --gc-sections \
> 
> It should work if --gc-sections is used only here - last LD statement.

I think we want to add it to all three.  That way the same operations 
are performed when generating the symbols in the first two rounds of 
linking.  I think that would omit symbols that may get dropped.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 00:38:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 00:38:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181183.1504270 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSlk3-00084h-3S; Tue, 09 Dec 2025 00:38:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181183.1504270; Tue, 09 Dec 2025 00:38:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSlk2-00084a-W6; Tue, 09 Dec 2025 00:38:10 +0000
Received: by outflank-mailman (input) for mailman id 1181183;
 Tue, 09 Dec 2025 00:38:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=N5PS=6P=gmail.com=samaan.dehghan@srs-se1.protection.inumbo.net>)
 id 1vSlk2-00084U-5L
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 00:38:10 +0000
Received: from mail-qk1-x735.google.com (mail-qk1-x735.google.com
 [2607:f8b0:4864:20::735])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 54177241-d497-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 01:38:07 +0100 (CET)
Received: by mail-qk1-x735.google.com with SMTP id
 af79cd13be357-8b220ddc189so590080985a.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 16:38:07 -0800 (PST)
Received: from localhost.localdomain
 (host-154-4.mdu.ilcmifre.champaign.il.us.clients.pavlovmedia.net.
 [66.253.154.4]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-8b6252a0711sm1143723885a.5.2025.12.08.16.38.04
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Mon, 08 Dec 2025 16:38:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54177241-d497-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765240685; x=1765845485; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=7jIAEnht+M7ZKhB06WnNTKtAU7kKn5ahWxbqWONaN48=;
        b=CMvmyeDYRlkQkJPQWuI4mIK4U7KLz7Sb5gt+kJaNNahxF5Ozj9YPPVEM0vWpkDK22Z
         K4uQE+9kBMsH2Bw9rAfOmuKo03TbWMhNEJlcqehTWrMjWmQb2ReaT+ltcTPvHF2VIug5
         mZmHpVKwtkXYuWs33GTQ/vzi/SGoFOl5QMJ708rCl57xObC6jo1Z4VUbn8Eolikx8sXZ
         9kzIFIqRbzwsiMgKEpKEZ4bOTCEx6opVkFwIJ34k43pZ1OSLO7EDP9zL+QofNY3IPHJs
         MxQp98UkKn5WvDAWx82/YDZPHhgQ5JYAED+6pIVqWLcfkQ2XNexCJa0eQAhPI4ovvJ0g
         4ijQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765240685; x=1765845485;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7jIAEnht+M7ZKhB06WnNTKtAU7kKn5ahWxbqWONaN48=;
        b=mkhN1eN6isrNggVGZMcJ6uAcKFqyd0QbjD62l8Glc7YLMWz1YBB5UzcquIb9zE0GsF
         LRKlDV+WT322h8b0bKVnAVK4nMKot1ZONrmvSAYNEJydu1nc/J9uJ5hyhdX6rUua8qeg
         zBLpEZmzzWr1nptTP7aNY5JapSKBDZaJV698a320LaIsbpJO5ULnElD4flSaBkGjm08n
         mFPJnzh+WRV6El8+5pyN9OiHordXyEE6PFsya5qAZ7RPwnBjnsjVLqlkAxbSUfkN8bZq
         0ro9qHzvjEH8yXqPrJkQsE5+PbXrHdpuGQwtw64NHcq5reuv41h7YIrLVpOQi7NMFB7K
         gllg==
X-Gm-Message-State: AOJu0YxSHfs8X/b66Xyq3FPVCc/g4W/yd7uzjm479UDZLZDj/HUAGK8A
	bmQtqFLN/3prc9LanzHNtQBjhEuF6p3gzCBh0UiyIOczkKe+frPQfpPuk3pJckQ=
X-Gm-Gg: ASbGnctQMrn+hZ9vkmKhVvTAOQuRok1MFh29JCppmv4TuJgdWssDYOrgir5y6lUgfY+
	Fr4H3srR4ASIlYE6BiFeUzryEdfabZeGghD591asA5gpi6lILK3RrhqHbUntHb2J1k+Du6XUTux
	Go9/t5DRqeLF0vOL72oP3y6yTAk8J+rPtfb9Eqxree6eiXocd0J7ZcNsLt87FlJ+pgrlHHGFcwR
	66vVUgdztVmRS+amOb2lpx1rvczookn9hlIwE3EVQXA7BXTSovFoKJQfxkVzXWe5OnOZXyResQm
	z1Cm4uJ2i0KsNqrYw00zMrPtq2LrWFj3LflbMuifyrd+Sx6mxWuKP87Vtv7Tvu69ucOOi9wR6Hg
	rUucs7oWOUU64E+Q2jlrkA7xCUKQYuYhm1W48L/N3q3OBdJxA2T4Ripo0yHR8BBEwFRER56a4UM
	4BN2PEMA7nIqqNAoIc4LceZFZfirdQp44MeW0mtLFfXg5005shtQG7aaS5o/QRrDwynCii5BQNN
	Z4Je33Kd9xyf93hjzkCzWdOk6l3KujltQfVOePONjpq4djb5liBcIPb7t6q5c8gA3GRX87TQA==
X-Google-Smtp-Source: AGHT+IEeEklWujPAByP4dW1pz5tIC02c/9IzYQHwsR8qE/HPnygQ7BhRbG6U9QI6VbYcjVlKyA013A==
X-Received: by 2002:a05:620a:2589:b0:8b2:f1f3:901e with SMTP id af79cd13be357-8b6a23dc96emr1306175185a.65.1765240685536;
        Mon, 08 Dec 2025 16:38:05 -0800 (PST)
From: Saman Dehghan <samaan.dehghan@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Jan Beulich <jbeulich@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH] xen/arm64: Add support Clang build on arm64
Date: Mon,  8 Dec 2025 18:37:57 -0600
Message-ID: <bd6686e7fc0756e929334792b94ddd66bde125c4.1765239102.git.samaan.dehghan@gmail.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch enables building Xen on arm64 architecture using the Clang compiler.
Changes include:
- Add explicit -march=armv8 flag for arm64 builds.
- Add `__attribute__((target("fp-armv8")))` to `vfp_save_state` and
  `vfp_restore_state` functions when building with Clang to allow
  FP instructions despite `-mgeneral-regs-only`.

Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>
---
 xen/arch/arm/arch.mk     | 1 +
 xen/arch/arm/arm64/vfp.c | 6 ++++++
 2 files changed, 7 insertions(+)

diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
index 9c4bedfb3b..bcf548069b 100644
--- a/xen/arch/arm/arch.mk
+++ b/xen/arch/arm/arch.mk
@@ -13,6 +13,7 @@ ifeq ($(CONFIG_MPU),y)
 CFLAGS-$(CONFIG_ARM_64) += -march=armv8-r
 else
 CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic
+CFLAGS-$(CONFIG_ARM_64) += -march=armv8
 endif
 CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only # No fp registers etc
 $(call cc-option-add,CFLAGS-$(CONFIG_ARM_64),CC,-mno-outline-atomics)
diff --git a/xen/arch/arm/arm64/vfp.c b/xen/arch/arm/arm64/vfp.c
index c4f89c7b0e..51fd2ddc54 100644
--- a/xen/arch/arm/arm64/vfp.c
+++ b/xen/arch/arm/arm64/vfp.c
@@ -46,6 +46,9 @@ static inline void restore_state(const uint64_t *fpregs)
                  : : "Q" (*fpregs), "r" (fpregs));
 }
 
+#if defined(CONFIG_CC_IS_CLANG)
+__attribute__((target("fp-armv8")))
+#endif
 void vfp_save_state(struct vcpu *v)
 {
     if ( !cpu_has_fp )
@@ -62,6 +65,9 @@ void vfp_save_state(struct vcpu *v)
         v->arch.vfp.fpexc32_el2 = READ_SYSREG(FPEXC32_EL2);
 }
 
+#if defined(CONFIG_CC_IS_CLANG)
+__attribute__((target("fp-armv8")))
+#endif
 void vfp_restore_state(struct vcpu *v)
 {
     if ( !cpu_has_fp )
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 07:36:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 07:36:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181195.1504280 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSsGq-00054y-HH; Tue, 09 Dec 2025 07:36:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181195.1504280; Tue, 09 Dec 2025 07:36:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSsGq-00054r-ED; Tue, 09 Dec 2025 07:36:28 +0000
Received: by outflank-mailman (input) for mailman id 1181195;
 Tue, 09 Dec 2025 07:36:27 +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 <SRS0=sSjK=6P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSsGo-00054V-OK
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 07:36:26 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c3ade39f-d4d1-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 08:36:24 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-42e2e6aa22fso2461017f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 23:36:24 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbfee66sm29780376f8f.11.2025.12.08.23.36.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 23:36:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3ade39f-d4d1-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765265784; x=1765870584; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3v18lpERP1o7wcOW3vmFWjesG9O2e2jY0hgZwXFEjKM=;
        b=MyBeBGmJB7/ZXyAuFSddq9HgcAe3SbRwRzDNRBKDWGSEDi71A2aAxwBnnQQgNAuKFM
         u3SXdP/DKPI9+He3969RO4tUXayonWVfxH0tBi3yt5OYAx3ZoisA2ph0+OmXX5doX0vE
         B3dVNoHondM1NDTYeMcf/sHpSvCjLl1/OcPvYghgl3kko34eZNXkx/ueNEXKQW4Jia+r
         ZmL1xzlo7Dlbz8y0x/IJxukNXMsbmV7c8d7MDI4fruWPK2kAf71iYGdflyj0rYoDvBaI
         F7/CS5Snc0n8KO48mrjsK/IFC91FsFjnXDn9/LHpxjbZb2SW8Lp3gvDklKJOP12TJJEZ
         LGdw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765265784; x=1765870584;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3v18lpERP1o7wcOW3vmFWjesG9O2e2jY0hgZwXFEjKM=;
        b=TH01a0pfE2ol23QsezBuRrjFGZhdt6OvlDFgEDL+yiBpvSa1SMK5w462MctilTkdrv
         KWtqB8vgWowFrwyjhq3M6GzSs/3hIISv/fIvuXtzZWT3rjL7ZwIHUuWFTEoLBL9m6KGt
         vr6LU8BbgSh8LctopFrmgdB2m81NZyWZFSAs3KDr57+sF9o05lZnsMpkdg5D2Mf8AzUM
         SzpfblQhslVdt37OkppyZrSaMO5HX85H5HQCrzURMBzcDsl3E9VYXkO2tyEKeiXmq7rj
         PxdkZ+j7dw/mbUplCyLRgGdmM06kbtwGX3kEXBRdzUlN1onsjnITQMeoqW9uv8Vgr96r
         Ny7g==
X-Forwarded-Encrypted: i=1; AJvYcCU8c2AX9liUlo2T8W3w61z7+r2tq2NenZriZp928iVL+JfprpYoTlC34aDemmLB1MMHAHnzMHZK7cs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxu1mpUXKipJOJNeaGUWhuXsoo9+tSs09L0eSYSVBIqBQA1jRY5
	LP/v4ocjHrNzvpipwtooevt5/DvOP3yVOhvwN0iVXFwH46YY9ZvH+00Dby+gYj496g==
X-Gm-Gg: ASbGncuRrzeBedVU67roSSC//g/ZmRlMc7c5zajCOb6u/69LDHz0Us0wzqIE+00QPmU
	e9lyo20B8E0kKRu1swysCybjAGDfz7pKbEME/9McR5yCWKYNPau35SEazsjuZO/eQD2zgFbAFw2
	tp4jSDoe8Id+iogIimCkSzKG+yspmgKQTmXrt+uEuqtZRPUU7OCkef1myqJSYf5O6akgE/vPvip
	46Yy2QfuzVbU+mnAoC+Duv67KLd+4otsfjSU0Yx4kf2BEX0AwnilkAA/iPrBk4ecahKcQYjL6AF
	fTccRL9s9rgsyQu01ZDIKuGea5dVrEx06x9GUc5QlfUdx06x4tAFfr+oFOrGyQBzFUADAd3A8SF
	kKE3XospMwsw/su3EqBMdt3JvggnglN5nbwdg/M/geEaYdc1TW1Sn+tGbJTERyF6vF1g6N/ZKaW
	vVDHnDtcd3rUxnfl/oLsrH/4xc02okRiOB5wLfezmYAmfds0wa6pU0FOLbc0F/+EnCw+7n9d1u5
	Qw=
X-Google-Smtp-Source: AGHT+IFVasnFPProKaZaTSKQ/Sm5uJSQnS56dIavADQxYgFdvmq2Xng1qIan0VtDIo5Pff0XvhOoTg==
X-Received: by 2002:a05:6000:1863:b0:42b:39d0:63a4 with SMTP id ffacd0b85a97d-42f89f62011mr12039132f8f.29.1765265784026;
        Mon, 08 Dec 2025 23:36:24 -0800 (PST)
Message-ID: <f922dad3-9e60-47ff-b4f6-f0ae87fd90af@suse.com>
Date: Tue, 9 Dec 2025 08:36:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] RFC: xen/x86: Enable --gc-sections
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20251205222813.277164-1-jason.andryuk@amd.com>
 <6c10dbc4-3247-4a0d-9953-858d09df08a9@suse.com>
 <1675a966-1095-4aba-af74-828e4c68e6b4@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1675a966-1095-4aba-af74-828e4c68e6b4@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.12.2025 00:00, Jason Andryuk wrote:
> On 2025-12-08 03:56, Jan Beulich wrote:
>> On 05.12.2025 23:28, Jason Andryuk wrote:
>>> When linking to create xen-syms, add --gc-sections to garbage collect
>>> unused stuff.
>>
>> What about xen.efi?
> 
> I tried briefly and it fails to link.  The GCC manual says it is 
> considered experimental for PE and COFF.

The gcc manual documents linker behavior? Do you have a more concrete pointer?

> I just added into EFI_LDFLAGS:
>    CC      .xen.efi.0s.o
> ld -mi386pep --no-warn-rwx-segments --subsystem=10 
> --enable-long-section-names --disable-high-entropy-va --dynamicbase 
> --image-base=0xffff82d040000000 --stack=0,0 --heap=0,0 
> --section-alignment=0x200000 --file-alignment=0x20 
> --major-image-version=4 --minor-image-version=22 --major-os-version=2 
> --minor-os-version=0 --major-subsystem-version=2 
> --minor-subsystem-version=0 --gc-sections --print-gc-sections 
> --build-id=sha1 -T arch/x86/efi.lds prelink.o  ./.xen.efi.0s.o -b 
> pe-x86-64 arch/x86/efi/buildid.o -o ./.xen.efi.0xffff82d040000000.0 && :
> ld: kexec_reloc is too large
> ld: kexec_reloc is too large
> ld: 
> prelink.o:/home/jandryuk/xen/xen/arch/x86/boot/head.S:60:(.text.header+0x48): 
> undefined reference to `start'

I see. This then would want mentioning in the patch description. And I've added
it to my binutils side todo list.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 07:49:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 07:49:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181209.1504290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSsTp-0006ty-R0; Tue, 09 Dec 2025 07:49:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181209.1504290; Tue, 09 Dec 2025 07:49:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSsTp-0006tr-Ne; Tue, 09 Dec 2025 07:49:53 +0000
Received: by outflank-mailman (input) for mailman id 1181209;
 Tue, 09 Dec 2025 07:49:52 +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 <SRS0=sSjK=6P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSsTo-0006tl-4b
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 07:49:52 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a40b0cb9-d4d3-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 08:49:50 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-477632b0621so38026695e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 23:49:50 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a7d70fa07sm25079445e9.11.2025.12.08.23.49.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 23:49:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a40b0cb9-d4d3-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765266590; x=1765871390; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+3r+atcXVEiS+kDducUz0JqOu8TMMBGGKW/R5/SLZ8g=;
        b=VVe43Liel5WwJ2i7EQJxBDagsd8sPjzYHh0VaMDu+ZNlBU+0Y7wHMety8u6gktlkHx
         NksQWFcCh0yvsqL6KhXv1aep/pg9qNRNhEv0K4qIDBHnjLF/3G1+OWbKdWJMV7ukqoyT
         2C6/y+cUO5YltU5HWzr/8hr6w3vEZBfXqRJxcLRKhSsUX2Exw9XkGJOex4qukKHd745I
         ZWm0UGXlwLNdxN7JsUKEJrKsBuWqZVKa6lGubY+kuZVLbkct/hXHEePuX/XqCc9M9xAY
         T1fHKxfBvxtTfxpv8IEVWxcsHEtMJ1zcuvKXAyJDrhCjJoTKhuBRPhy7BBhFjjwG4LUa
         dpCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765266590; x=1765871390;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+3r+atcXVEiS+kDducUz0JqOu8TMMBGGKW/R5/SLZ8g=;
        b=gsOmxnAFygLSsce6B6MOoKBrDk5MvSQUB4OyVcm6ykPawhp191Dp8xmID93LPtOauo
         a0dvDPlI9e+TbT1U6ByabbJGakJUEhXgKb7MsODP58rUJLYyOVNx9HPL0sorAhysRno4
         893KN5YS66/Y2NUecLP++v96e98FsiXw56fHQEgpWnSFJ3+e+/E/m63FKKjhhCN8Ngxo
         xJH1ivsZjQUNPQBiByM1se6nfVJ+zlGOLDQ7ekn/r30zgcNW/6jr3Zi6oOl81T/BR5Sz
         tdpHcHeZTkDayo4VTn1+rYn8/bFkfWjzrkBE4/q1Mndo5769RZL48rhgeC+ZI9TsTQ+7
         Xdbw==
X-Forwarded-Encrypted: i=1; AJvYcCWbYCUMLEor7qx1ejIBXdF/DWkDfu6mrEz9ULusaCywY+g04vtDqeBs2hfTPwEEqcedV8p/8B/p+78=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyRlH0XL2Qxz/DRtOkH3sH4K7kYzbEUgx6QAHlC4g2SnhOW3Thz
	ATymplKd5apmzSVgbI+VuZbeiLOSTE6Rbj0wpHmpMBDXKu4PJiH3Cu/dVeMEDV5Ozw==
X-Gm-Gg: ASbGncu0Ynh+6kXjN+5nhf/zdokbvs0OlNpEyOIuaU8s/G0+++Zupq2hwXOWlB0mniI
	iUyrZ3nSb4qTBq6425q01cxHWrGvpYqklfZTM4x4zEtHRU0+3TFyWGjW0W53fOrDcls8VKXETEX
	2s2nvzAzjydzzCN8SFadye2a6pj/fHaEmi9IAIWUvDPQpAKSNWDX+V0tQH7tsyHJTzRzmRlsL22
	yNucRa3D6YPcq0jccmJj8gHEwAN+7shRpTvH6jG9/CPPTrnSYdpJuEBd1w6nD2cYnqzulUVx0JG
	zJ0JGho6Kys/j8SnEYD2dbRC5Ztni6upUL6XsCGrXssvbbFbDbIkwdqTvmiSxA8hQuWFef4JI31
	tVxCC8sUq8A7jGMNgFBA+fKzOE8jg6cJ3Aw+EsR9keT4LFBLhp9OG6+m9qmi7HUxy39byFKUaTf
	Tx526RUC7L9n5wSEvTz5npg7QTgUGJRtWNAJhzlz4k/YL6jQ3kzn4K0fNDvy6dHjzUcGyI4hU7s
	jU=
X-Google-Smtp-Source: AGHT+IHE4I6HxVWWg1bmPHLKhGN+yac+uWKaYm7ARC+5RJCwRyLn4zBPcNpaHOkn8hYeQwI67pIBuA==
X-Received: by 2002:a05:600c:1992:b0:46e:1abc:1811 with SMTP id 5b1f17b1804b1-47939e387e2mr96149125e9.27.1765266589926;
        Mon, 08 Dec 2025 23:49:49 -0800 (PST)
Message-ID: <0b6b23ab-c683-4cd4-a95c-6892a2c1f164@suse.com>
Date: Tue, 9 Dec 2025 08:49:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm64: Add support Clang build on arm64
To: Saman Dehghan <samaan.dehghan@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <bd6686e7fc0756e929334792b94ddd66bde125c4.1765239102.git.samaan.dehghan@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <bd6686e7fc0756e929334792b94ddd66bde125c4.1765239102.git.samaan.dehghan@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.12.2025 01:37, Saman Dehghan wrote:
> This patch enables building Xen on arm64 architecture using the Clang compiler.
> Changes include:
> - Add explicit -march=armv8 flag for arm64 builds.
> - Add `__attribute__((target("fp-armv8")))` to `vfp_save_state` and
>   `vfp_restore_state` functions when building with Clang to allow
>   FP instructions despite `-mgeneral-regs-only`.
> 
> Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>
> ---
>  xen/arch/arm/arch.mk     | 1 +
>  xen/arch/arm/arm64/vfp.c | 6 ++++++
>  2 files changed, 7 insertions(+)

Please also update ./README then accordingly.

> --- a/xen/arch/arm/arm64/vfp.c
> +++ b/xen/arch/arm/arm64/vfp.c
> @@ -46,6 +46,9 @@ static inline void restore_state(const uint64_t *fpregs)
>                   : : "Q" (*fpregs), "r" (fpregs));
>  }
>  
> +#if defined(CONFIG_CC_IS_CLANG)
> +__attribute__((target("fp-armv8")))
> +#endif
>  void vfp_save_state(struct vcpu *v)
>  {
>      if ( !cpu_has_fp )
> @@ -62,6 +65,9 @@ void vfp_save_state(struct vcpu *v)
>          v->arch.vfp.fpexc32_el2 = READ_SYSREG(FPEXC32_EL2);
>  }
>  
> +#if defined(CONFIG_CC_IS_CLANG)
> +__attribute__((target("fp-armv8")))
> +#endif
>  void vfp_restore_state(struct vcpu *v)
>  {
>      if ( !cpu_has_fp )

Aren't it save_state() and restore_state() which actually use FP registers?
Applying such attributes in too wide a fashion risks the compiler using FP
registers also for other purposes. On x86 we were hit by such when we
suppressed use of SSE registers while not suppressing use of MMX ones. In
some configuration, after many years of this having gone fine, the compiler
chose to use MMX insns for some odd reason.

Seeing that save_state() and restore_state() are a single asm() statement
each, any reason not to actually have them in an assembly file, just like
their SVE counterparts are?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 07:51:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 07:51:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181217.1504300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSsV9-0008Ke-4F; Tue, 09 Dec 2025 07:51:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181217.1504300; Tue, 09 Dec 2025 07:51:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSsV9-0008KX-0j; Tue, 09 Dec 2025 07:51:15 +0000
Received: by outflank-mailman (input) for mailman id 1181217;
 Tue, 09 Dec 2025 07:51:14 +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 <SRS0=sSjK=6P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSsV8-0008Iq-Kh
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 07:51:14 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d5b8e931-d4d3-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 08:51:13 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-477632d9326so35630975e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Dec 2025 23:51:13 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a7d6fa0f6sm24703715e9.4.2025.12.08.23.51.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Dec 2025 23:51:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d5b8e931-d4d3-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765266673; x=1765871473; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rcuKfpljgdksu4+01HqEAe+OkfUPKdSm4XJx26cTmtc=;
        b=eI6hTa5mN2qRn2Ilzczy5ecju6h7TsFFuoU8kD8T+tJ/Y8N7tetnAooimfqJz1Tjr4
         snMnCRHXIfQ12UTVE8Z2N328Qf7FYLR4x77qZEe14gk/pjVM9QuG2YFpouwiKB18o6zr
         Qf80CsJh+ETHopsPoaODefqLy9pv4HJJYF5A+z//Zcrzd5aIAtZ1H9SSkq8BgeqDpByB
         p78N/qatyFNFqQxjSgfQO27NtPe3igSq3G5ThvIGkcCtfxeNvygnVSf1CRHh8ZE3BkuX
         6fKUxsxir0hB2yE6iFIaxxrtwAJbC8mG/5VY28+rz1aDAYdVZYgmId5zHMiSG/h90Ane
         RrGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765266673; x=1765871473;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rcuKfpljgdksu4+01HqEAe+OkfUPKdSm4XJx26cTmtc=;
        b=S/1j54Fvkl0LfsOy+bMc/oiHujfVOjA98QijC0r0rFTBdXxGqKb/79uvnIYC8JN2AD
         CmhYDVFuTjzhbIGYLgc5Fe2cMNH3K6YIVjfMiZYY3anfH5NHMison5OQf/X+MV8j4W1W
         zI+xMRlI0yQvn/S3RgqRIFCndcH9dYuQ6gnnD380NMNg6h6KzP2KUcGpk4s2KAEMSf9E
         +zei0VFbIqVTtBIWr/WJD4+kJv2ksJ3FhjhkN6ElEHpJxqUlu9NZgmoBKASus0/rAD+K
         m5eqGtmCMPwHOfGyEdoGZl+J5/CijjQcakBqHTwNocjJrJiC8aChA9H2y4bs24W9RP9U
         MOhA==
X-Forwarded-Encrypted: i=1; AJvYcCX0aw9hXrizvhOTuaGliJESluXYSluuSX+MVh9tWRnqRlvN0/L1vFJdvCpqtrE6NIJodicoyEzZswk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyMUtk//8eSvPn6X9AeKTLgtVeHvGG4WvlbQVCdkPxyM/bIlCer
	2IXTp+ECtzq8XNPS0wsqG/EtDURjiVoSG3zZuqcsFhPTgMhTZGO9CC98wbbokOYGNA==
X-Gm-Gg: ASbGnct6X4SF6soLRn59SHLec0uWi1xd+4rJeJmgpMlHmmj7qNvF1quLsO7yEDpJWOL
	cRYUdIGdaGhQGVHm5M0uK+OyKje57daY/ITov68//+9eYDND4Yk4tfGZc+kkTI5ELNS1ulnlneT
	qvyGV+DDPo0kjcIGTCty0E4C/AH3crD3EUZPVuBEDWHAUJV82BRW+uoi/YpWduhk3oE2BkxvNGv
	S5uNRk0FOsN8O8XRnaSxberADi0ULv6zgxoPgWj0HNNPRxck+NpGbUQGKiqbEe5AqRkPBiwoYwU
	iXbgQ/SwKiyysEjDeXcYqZgPVpRxpyRFk7dRS1jWXohJPW5LfBNhLuXvxTQ3HAS7iIhlCf+xd40
	CCjBM4Pd2bnHo3JIioHoFgs0UDr5y0FFBv3DptE3zF6oeh4rkvuiEbONEyNlabMtRi8CXbCbcdp
	PWFhp+MkUop45VeJ5/vb2E9ME+8ZI/Sk8rdkBklK9I6Juh66qLzFH6YGV9tP/TMo/BVeCrvC+AG
	vWraLJGILzB7Q==
X-Google-Smtp-Source: AGHT+IFZNBhyY3nSmUSMW7HgUBNq2kqveFIiwht+JjUfvXdJ5jqPOvx7VLb+PVOesJw94H3ZgRNUlA==
X-Received: by 2002:a05:600c:37c3:b0:46e:35a0:3587 with SMTP id 5b1f17b1804b1-47939e37b60mr107541435e9.27.1765266673304;
        Mon, 08 Dec 2025 23:51:13 -0800 (PST)
Message-ID: <11680d9e-bbe8-4457-a7cc-c73f649276e3@suse.com>
Date: Tue, 9 Dec 2025 08:51:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 03/19] xen/riscv: introduce VMID allocation and
 manegement
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <7805662d530eca29c5b0d0afa05a3cd0aac963bb.1763986955.git.oleksii.kurochko@gmail.com>
 <debd3ec1-2836-4481-aea9-833f04601a7a@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <debd3ec1-2836-4481-aea9-833f04601a7a@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.12.2025 18:28, Teddy Astie wrote:
> Le 24/11/2025 à 13:36, Oleksii Kurochko a écrit :
>> diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
>> index 34004ce282..6c4bfa3603 100644
>> --- a/docs/misc/xen-command-line.pandoc
>> +++ b/docs/misc/xen-command-line.pandoc
>> @@ -3096,3 +3096,12 @@ the hypervisor was compiled with `CONFIG_XSM` enabled.
>>   * `silo`: this will deny any unmediated communication channels between
>>     unprivileged VMs.  To choose this, the separated option in kconfig must also
>>     be enabled.
>> +
>> +### vmid (RISC-V)
>> +> `= <boolean>`
>> +
>> +> Default: `true`
>> +
>> +Permit Xen to use Virtual Machine Identifiers. This is an optimisation which
>> +tags the TLB entries with an ID per vcpu. This allows for guest TLB flushes
>> +to be performed without the overhead of a complete TLB flush.
> 
> Should we regroup all asid/vpid/vmid (which are pretty much the same 
> thing with different names and for different arch) under a single 
> command-line option ?

How would you name such an option, without losing it being recognized by people
knowing the respective arch?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 08:34:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 08:34:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181234.1504310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vStBF-0005lj-BA; Tue, 09 Dec 2025 08:34:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181234.1504310; Tue, 09 Dec 2025 08:34:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vStBF-0005lc-7M; Tue, 09 Dec 2025 08:34:45 +0000
Received: by outflank-mailman (input) for mailman id 1181234;
 Tue, 09 Dec 2025 08:34:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=sSjK=6P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vStBE-0005lW-GF
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 08:34:44 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e8393e11-d4d9-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 09:34:41 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-42e2e239ec0so3058657f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 00:34:41 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d353f8bsm30597913f8f.43.2025.12.09.00.34.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 00:34:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e8393e11-d4d9-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765269281; x=1765874081; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rxWBBGLtxOMLap3xEoElLubkQf7Vx8yrVuJ/uuTZMa0=;
        b=S4WPlyNDk4EMLlDynTneQ/rp0rJPe2RQFo/cNVoa51pNqLIA21GOrvbfyvrMUPphtY
         WJyRUaxAR61cUULFQo2DIl7LT/XWF9drNVg6pzqoXmkqTkTayYkn4b529UXRfuDarGpD
         4hVh61NcDob0pqs+TWDnHTmHU/OKvOGhOg0Yp4HFDKxByfoFfY5TVow66+3VZsatbZT0
         vwB4VF/r00X8ycxk3BqzbHk1pTByax/vQ2uPApqDJjGLR7o/QvZ+jAUQoo5coGaElbsF
         ckXJ5CqIxB1j/SDNk8tG2rwZkgqhZ8sR6TEFN1ZQ8LMwkkfojJJy72OaNr6Xgp5SV56g
         +mHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765269281; x=1765874081;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rxWBBGLtxOMLap3xEoElLubkQf7Vx8yrVuJ/uuTZMa0=;
        b=P70r700Pp5Zr56mDIHY+IpsqHnG46W++c43jfGh9HVuO5Zx0JKCc1lvLu1AznYzGHB
         uu84d4Bg2gSbu1cWMVG83Ap4Q/KTF8X+mcq7vpR/aBvkcWNWAPF5l3/TwK1uqMJHLMXX
         H5OlTjEx3zdsLT3OjNsdyikdjyov6RD/3Vx/c4PenZG/3PdEo8J0iiuQbPHYSNq7qVfm
         qXKg3hGI54pmyWKiKz0W/DqROYR5oxWtg2I8cqPTxDQKwe66nlokldeTL2IZFMyQkCxy
         ZMQhnH9rmccLuZjontcjDuyCrP292CHka2qAfD6iVOjezSw32eTcMh7qPi2XsdvHt8+6
         DiUg==
X-Forwarded-Encrypted: i=1; AJvYcCVpeZHShEqhxfY3sF4pK2vOdZ5P1wFP4PUwOxqG922z2MsYaibDfTCzN5vwxGq18ire5tWwgtBWNU0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxms/EQOybBEehQRUPtLMnVfola3dxNIM9Mb3AeLz5cFKo9S/qp
	+Z687BjMhxu3uNcuf6N0mrHnILK+IfZxm/Dt8wHosz1r7pNfuMnbzjv7XPaxtQ7D4Q==
X-Gm-Gg: ASbGncsmnfRBy+TW644CMLVcg/0Ow7lOA/9gZ1ZyfjeOTDjebQ0Kq0++33/XgBYb6K7
	D66Qvz01+YPcNhtOtNAobPuSfvzQZXty7HJfLZmKNtLuPXfB01NHQC2d0hWbijO2kKsFu7n3rsK
	lJLvGStHbl/dKsev+evouRJP/8plTo65oPfgIMKHqm1C2ZfJw/jW49OTglKONn6hMGaTm1oYIbv
	KUakr1w1uNiC863nZe/9ptmbMDbUCX2E7rz8IL15GMdefQcCvRPYVCABvT5WsyM18r0DKFHva2m
	AE0RR8H7VgF3Li9aNDbdQrgTFE3ot41rYZB53r+tcKJY068JFmnnOlcFho1m+mu4QTBNY3MzT6k
	pyCkrOT1kduAUcbN5yQlbKwX2buc1b3HJfqKqgL33pub3woPdk/UZjBBc3f7Vt0/BANApKHMOGi
	eC0xCVm3sKE/1/Mvnu9oNOSCHbTAQrlJ32p+xmzRziNCmXfkGz25mlUom1DEzj8gLegNTHEG2eJ
	fZaZ2KjEO9F8Q==
X-Google-Smtp-Source: AGHT+IEBoHhBdF9iXMY+VpFXGiAoEf7fjTdvGYgcEp/PmZfg9OcXjQGfyeT/AKFIFLzryFKM/YY+2g==
X-Received: by 2002:a05:6000:1ac6:b0:42b:3e60:18a3 with SMTP id ffacd0b85a97d-42f89f2a31amr11476692f8f.24.1765269281295;
        Tue, 09 Dec 2025 00:34:41 -0800 (PST)
Message-ID: <ba440c84-9254-4992-85d5-97f8269d15f2@suse.com>
Date: Tue, 9 Dec 2025 09:34:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2] coverage: extend coverage on .init and lib code
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251205193411.1368659-1-grygorii_strashko@epam.com>
 <bd53bc18-f2b5-4857-b06c-2674c799ff0f@suse.com>
 <7020e1fe-5f11-480b-bd72-311a93903030@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <7020e1fe-5f11-480b-bd72-311a93903030@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.12.2025 19:54, Grygorii Strashko wrote:
> On 08.12.25 10:35, Jan Beulich wrote:
>> On 05.12.2025 20:34, Grygorii Strashko wrote:
>>> @@ -259,6 +259,7 @@ $(obj)/%.o: $(src)/%.S FORCE
>>>   
>>>   
>>>   quiet_cmd_obj_init_o = INIT_O  $@
>>> +ifneq ($(CONFIG_RELAX_INIT_CHECK),y)
>>>   define cmd_obj_init_o
>>>       $(OBJDUMP) -h $< | while read idx name sz rest; do \
>>>           case "$$name" in \
>>> @@ -271,6 +272,11 @@ define cmd_obj_init_o
>>>       done || exit $$?; \
>>>       $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=.init.$(s)) $< $@
>>>   endef
>>> +else
>>> +define cmd_obj_init_o
>>> +    $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=.init.$(s)) $< $@
>>> +endef
>>> +endif
>>
>> If the objcopy indeed needs suppressing altogether (as Andrew suggests), the
>> unwanted redundancy here would go away anyway. Otherwise my (recurring)
>> request to avoid such duplication.
> 
> Could you suggest the best way to avoid duplication, please?
> if/else/endif is not working inside "Custom commands" make file commands.
> May be split it on two - cmd_obj_init_check and obj_init_objcopy?

That's one option. Another is to use something like
$(if $(filter y,$(CONFIG_RELAX_INIT_CHECK)), ...).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 08:46:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 08:46:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181244.1504320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vStMh-0007Oi-5N; Tue, 09 Dec 2025 08:46:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181244.1504320; Tue, 09 Dec 2025 08:46:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vStMh-0007Ob-2G; Tue, 09 Dec 2025 08:46:35 +0000
Received: by outflank-mailman (input) for mailman id 1181244;
 Tue, 09 Dec 2025 08:46:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=sSjK=6P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vStMf-0007OV-Ee
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 08:46:33 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8dbddb2b-d4db-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 09:46:29 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-47a80d4a065so1086455e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 00:46:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d353f8bsm30668265f8f.43.2025.12.09.00.46.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 00:46:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8dbddb2b-d4db-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765269988; x=1765874788; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mFtIhQCGGbUgj0sWRO3ulsjj1uTcjXKRJYwANcq9Kok=;
        b=NDk9zoUBrCeW1RgKwrn4DeF5r/6phVRG/rhIqiLg3eGMfh6Eo/7VQiaihW9UeOvh1u
         ner/ryVsEpooDQQGq+xoACIccn8MKlHOgIBXrlYzLXEv4aKuO/aS1jMUDqPlXCQm2L91
         YDOTKgFiG9kaTsFaIRm1dmwmAh/r2JePjJxVFTPyJH3DXJ/MpAFEG2HEIM2UsMFGteob
         SESDG5D6fwhUHoFnCqUmRLQPHtaxOoYFmW9w9QYSRY2+RqX5VuwGKiKCZmhXD7qu7TOH
         vbsrzSIUbhY3biOQ1NZYFAXlqztvf9wjNsU6FUdPq8mtEbTx1Rf9Et3em0cZmwPtjATZ
         fKnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765269988; x=1765874788;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mFtIhQCGGbUgj0sWRO3ulsjj1uTcjXKRJYwANcq9Kok=;
        b=vSCQCwQP/aAHO7nFT8T6bMPkNwnRkUTHZIPqAXH40f4tZvPkbA3FwIoV4nPEfjN/LN
         eslU5WWZGStIhZF4N6EpMYUA1Xv22COeBHqiyZE9dy7bpRhOBc+wpIRwHK6JJNPr3Sf4
         YatItSuUsiXZIOUvLZUGzV7400pTpWa4iHNcwZM7JFvCOIvyyRWQSvD4DfbW0fMjqp0Z
         bpAgtfX9two6ze7XrtWmHNKBi7OATn4npNlMz2y5lmr14WAgO/39WoVvV2QamH9KSe4H
         jP/HWN7r60j/vd+lKu9uEe7kk9rQWYTyBamgzw6mmtbE1XIXgIo2QKcNiszK0FUKI8ok
         iZ1A==
X-Forwarded-Encrypted: i=1; AJvYcCVjvU5LUS04jh/EpwR+Ot6cwTJqVMluw4xbkyZndKqnwdiX5wXHTfoqzMp70lIDhWGjCn6jv63sX4g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyUIPP7Zwrt3WNlfvZ0qc05gTm+86YsRhg5VXBa8HzlnovfB7BH
	w3RMl083GfLYePbDxLnizMsJbdtNOmdxm6XmJHY38Bn2mx5c1Oi+VPl3cRFt7bBzKQ==
X-Gm-Gg: ASbGnctWjlrT6SH7X6/fyHtX+V1hggtzI+wunDCmALvY40vbUsGgGuWkBh5cSo/0FSe
	qsTDUYCZQ2gfNZNrqwN+AviAjNFLrpHoNu7rF8r9EPxCO2A1pclfmUvHYXZGah5qvyjQvtVTNCw
	c30FguZfm6jv1ebVHzzC+qeKwsQD7gwhfafUFQf6od+/9bOB9A17APoYXcjJd/acPhJVEVZLk4r
	fZnqabBhd4Z5LpRW/4QXD5ovo8/ygCEgzEuKc2PAOh16UFYCC4rvb6+y9NkLmnA6RdlC/gkypbl
	C3/37CReEixIXQbnsaWXmmzmj3MI6uj/bAgNx22augYbcYDyZLHGQGhSm0XLkPUtS4T3MCMaoIz
	zTBhuKcMfYsZyycjukilLH+A5XunN8PDjwCp4v58+ZBzP+MdtAGaS6GhAeqjCW1MXnoOc3ZXhgc
	rOs5Gy4HADWSjTzQrk9ljw0memfRbMkMgQuwkaqp74qwE6Q1vitgHz78Gj/qQOUe7V0z/UTLr9G
	3Q=
X-Google-Smtp-Source: AGHT+IFPOHIXQ2/GH1ywBHZjd4Vmw9dlyu3CeYjus0If5yuHr5iWxtpEZ+n9EXmKTK9K6leJ/I7dqA==
X-Received: by 2002:a05:6000:613:b0:429:dde3:659d with SMTP id ffacd0b85a97d-42f89f563femr10590497f8f.47.1765269988426;
        Tue, 09 Dec 2025 00:46:28 -0800 (PST)
Message-ID: <cf359ffb-02e7-4c7e-bf16-88a21e08722c@suse.com>
Date: Tue, 9 Dec 2025 09:46:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] x86: move / split usercopy.c to / into
 arch-specific library
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f46f89f6-242b-4433-958e-36088e567ccd@suse.com>
 <12852eae-849b-4576-a8e1-85edf401b455@suse.com>
 <7891d66e-cd51-4694-9926-cf8f62c3053f@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <7891d66e-cd51-4694-9926-cf8f62c3053f@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.12.2025 22:48, Grygorii Strashko wrote:
> 
> 
> On 08.12.25 14:05, Jan Beulich wrote:
>> The file wasn't correctly named for our purposes anyway. Split it into its
>> "guest" and "unsafe" parts, thus allowing the latter to not be linked in
>> at all (for presently having no caller). The building of the "guest" part
>> can then (later) become conditional upon PV=y.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>>   xen/arch/x86/Makefile                         |  4 ----
>>   xen/arch/x86/lib/Makefile                     |  2 ++
>>   xen/arch/x86/{usercopy.c => lib/copy-guest.c} | 12 +---------
>>   xen/arch/x86/lib/copy-unsafe.c                | 22 +++++++++++++++++++
>>   4 files changed, 25 insertions(+), 15 deletions(-)
>>   rename xen/arch/x86/{usercopy.c => lib/copy-guest.c} (94%)
>>   create mode 100644 xen/arch/x86/lib/copy-unsafe.c
>>
>> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
>> index 61e2293a467e..dfb258d7ac1c 100644
>> --- a/xen/arch/x86/Makefile
>> +++ b/xen/arch/x86/Makefile
>> @@ -72,7 +72,6 @@ obj-y += time.o
>>   obj-y += traps-setup.o
>>   obj-y += traps.o
>>   obj-$(CONFIG_INTEL) += tsx.o
>> -obj-y += usercopy.o
>>   obj-y += x86_emulate.o
>>   obj-$(CONFIG_TBOOT) += tboot.o
>>   obj-y += hpet.o
>> @@ -93,9 +92,6 @@ hostprogs-y += efi/mkreloc
>>   
>>   $(obj)/efi/mkreloc: HOSTCFLAGS += -I$(srctree)/include
>>   
>> -# Allows usercopy.c to include itself
>> -$(obj)/usercopy.o: CFLAGS-y += -iquote .
>> -
>>   ifneq ($(CONFIG_HVM),y)
>>   $(obj)/x86_emulate.o: CFLAGS-y += -Wno-unused-label
>>   endif
>> diff --git a/xen/arch/x86/lib/Makefile b/xen/arch/x86/lib/Makefile
>> index ddf7e19bdc1d..8fe2dfd88553 100644
>> --- a/xen/arch/x86/lib/Makefile
>> +++ b/xen/arch/x86/lib/Makefile
>> @@ -1 +1,3 @@
>> +lib-y += copy-guest.o
>> +lib-y += copy-unsafe.o
>>   lib-y += generic-hweightl.o
>> diff --git a/xen/arch/x86/usercopy.c b/xen/arch/x86/lib/copy-guest.c
>> similarity index 94%
>> rename from xen/arch/x86/usercopy.c
>> rename to xen/arch/x86/lib/copy-guest.c
>> index a24b52cc66c1..25eeb35427e2 100644
>> --- a/xen/arch/x86/usercopy.c
>> +++ b/xen/arch/x86/lib/copy-guest.c
>> @@ -1,4 +1,4 @@
>> -/*
>> +/*
>>    * User address space access functions.
>>    *
>>    * Copyright 1997 Andi Kleen <ak@muc.de>
>> @@ -6,8 +6,6 @@
>>    * Copyright 2002 Andi Kleen <ak@suse.de>
>>    */
>>   
>> -#include <xen/lib.h>
>> -#include <xen/sched.h>
> 
> This will not build :(
> 
>    CC      arch/x86/lib/copy-guest.o
> In file included from ././include/xen/config.h:27,
>                   from <command-line>:
> arch/x86/lib/copy-guest.c: In function ‘copy_to_guest_pv’:
> ./arch/x86/include/asm/config.h:270:32: error: invalid use of undefined type ‘struct vcpu’
>    270 |     (ARG_XLAT_VIRT_START + ((v)->vcpu_id << ARG_XLAT_VA_SHIFT))
> 

Hmm, yes. It does build here, but of course I have many other patches in
place. The issue looks to be that for me access_ok() isn't a macro anymore,
but a function.

Thanks for pointing out,
Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 08:59:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 08:59:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181257.1504330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vStZI-0000qZ-Cp; Tue, 09 Dec 2025 08:59:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181257.1504330; Tue, 09 Dec 2025 08:59:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vStZI-0000qS-9a; Tue, 09 Dec 2025 08:59:36 +0000
Received: by outflank-mailman (input) for mailman id 1181257;
 Tue, 09 Dec 2025 08:59:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=sSjK=6P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vStZH-0000qM-2a
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 08:59:35 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 60b6d32a-d4dd-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 09:59:32 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-42b3d7c1321so3239716f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 00:59:32 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d330b20sm29591179f8f.29.2025.12.09.00.59.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 00:59:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 60b6d32a-d4dd-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765270772; x=1765875572; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iSudaLxSC12/glrex1pnn3uP4+VBeveqnn8TBYWgYII=;
        b=I91N8t0QBEj6poajNlD9TNwTt9P7LY+tSLFdmGpCPCT0AGMQykUPrp+xMSKL7I6xDt
         uT0Aa4yHjo/2UavFdH1XYbjpddo/DI3jSgpjXD6gJB7PC//lPk9gp/pSnncn2PKMSoS/
         TjoQ9qDqcbynepga2HsXVl/th96WpgA8gW9SYZD0ZBK5LlyWjd5dYFYBQv34oWWab4M2
         FiNhh8Xv6tXH16rorijT2z1m6dNHgfzscbnDRMiUw18irSpI0idyGkGTFTqu8JCfMeRP
         tQ90zQP/FRaGlHPBo5uQ296muTb02kqjqlLSvgBBywb+W4tYEtvFSOrZCjlzkXnCGcXO
         aaOQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765270772; x=1765875572;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iSudaLxSC12/glrex1pnn3uP4+VBeveqnn8TBYWgYII=;
        b=k7JrKT4jWEieyZWFlNLZ+LdzUgWqd3MsMOZqbQDvrfkiqtJuk8w7g39Mz09JUBfGJO
         GUDkZQvv686kcbUjwU4vu3FzFl/yXm4p+kMQa12FMzOlDhnUYUBpc7kmyfNhxeEJrWfg
         cQdvAhP7GXLzjhjD9uH/Evo8kw3DDBfwOObEP0iU42xOywF0X16jkn80z1mSuq60bDHY
         nYcOW8o43abVaPMaos6ZAWBwJDlwLkyAh/dbyhaiHWvaZvQCFHagBIfxiwr9NS3YnWbk
         K11lUFZdPvselZbU0rwuqoCayuJh+83Z//Ug2UmRBsF3pA0bZgtev7Zk4o02HkvHdro0
         dNLQ==
X-Forwarded-Encrypted: i=1; AJvYcCWEtWTiO0+CatuJ9BBcf2945DKZ/gUpd2Rq5pulve0uqiG5tserSoNn2RXaG95fP9roUK351zzFbmg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz5sc3Rnq/2FQwPdRSpoyORem37E+z0rMhTNKThJFIUE+NBQSwU
	c/Yl9SPtoJx+kK+76mXUDsPE7kOKP275Ar/BerMk8mHtuWzuXnVavnh1SujTXWcq6A==
X-Gm-Gg: ASbGncsNk5hSe9/m83syRrBNEDghTJRc3pZOcGpLOagqThqPd50I9ZkJBT8MzquKomI
	pL5VcdcIB90R+yoCGywKTOY1Iay1gf8DQPcMcdN0bV3mACoH2ADPbNPcfVKYba8tYWjCXRd+JLb
	5wnxw8GaejxLU073L3PVh1KxwL6WqUIbwumjLYYw991nHR0kRIdppmGvVyJ1uV02a+5razfTGFF
	OwDJ3xNWJUponCeZjxTpAjYFv2uqkDwTINjMATivSsSmDKBsDpM4YEAwmX+4RKYBctYuorNvW9t
	lP40bx/DIdMdpFTwZKf6igofGgXbhi55vIYcmcxZqiqybFfIkVDGb3X6RDoJ1X3Ogrg99JULLR1
	+gPppwms6lVIcf6Np1U0q85C0VQhFG0h+kuniO+Ih2tQ9pl83aAOfV8mmsZFwvSkjF8VI+5+wRc
	Am3Ybvc0HrEMwR9VJE3PiIhpc5Xb4WR1PG8OFk49s7PyLx1/tt34j14ioy3/OaMrLojNAnkQfu4
	9w=
X-Google-Smtp-Source: AGHT+IGNv3wXntVimBoe8Au9/dVypZmS9s5gysTjzg/FnwnUFJkTJglT1nJGb8QapqnpHg776djuRg==
X-Received: by 2002:a5d:64e3:0:b0:42b:2ea5:61b6 with SMTP id ffacd0b85a97d-42f89f53becmr11910974f8f.46.1765270771886;
        Tue, 09 Dec 2025 00:59:31 -0800 (PST)
Message-ID: <a3dcfce1-4695-4064-a1e3-af09bfa04199@suse.com>
Date: Tue, 9 Dec 2025 09:59:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/3] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251128152218.3886583-1-grygorii_strashko@epam.com>
 <20251128152218.3886583-4-grygorii_strashko@epam.com>
 <c9ee4fc8-44c6-43e8-88eb-9041c51aed16@suse.com>
 <d025e3dd-ba2a-4a9d-af37-37570e690aee@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d025e3dd-ba2a-4a9d-af37-37570e690aee@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.12.2025 20:21, Grygorii Strashko wrote:
> On 08.12.25 14:44, Jan Beulich wrote:
>> On 28.11.2025 16:22, Grygorii Strashko wrote:
>>> --- a/xen/arch/x86/pv/domain.c
>>> +++ b/xen/arch/x86/pv/domain.c
>>> @@ -254,7 +254,11 @@ int switch_compat(struct domain *d)
>>>               goto undo_and_fail;
>>>       }
>>>   
>>> -    domain_set_alloc_bitsize(d);
>>> +    if ( MACH2PHYS_COMPAT_NR_ENTRIES(d) < max_page )
>>
>> You mention the change in condition in the revlog (but not in the description),
> 
> The updated chunk was based on snippet from Andrew [1], which
> used incorrect condition - I've changed it and noted in change log
> 
> [1] https://patchwork.kernel.org/comment/26680551/
> 
>> and I'm having trouble to follow why ...
>>
>>> --- a/xen/arch/x86/x86_64/mm.c
>>> +++ b/xen/arch/x86/x86_64/mm.c
>>> @@ -1119,26 +1119,6 @@ unmap:
>>>       return ret;
>>>   }
>>>   
>>> -void domain_set_alloc_bitsize(struct domain *d)
>>> -{
> 
> The domain_set_alloc_bitsize() inlined in  switch_compat() and x86 PV domain
> always created as 64bit domain.
> 
> At the beginning of switch_compat() there is:
> 
>   ( is_pv_32bit_domain(d) )
>          return 0;
> [2]
> above ensures that switch_compat() can be actually called only once (at least it can reach
> point [2] only once, because there is no way to reset PV domain state 32bit->64bit
> 
> this is original condition which says:
>>> -    if ( !is_pv_32bit_domain(d) ||
> 
> do nothing if !is_pv_32bit_domain(d)
>   - for inlined code is_pv_32bit_domain(d) == true, so is_pv_32bit_domain(d) can be ignored
> 
>>> -         (MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page) ||
> 
> do nothing if (MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page)
>    - inlinded code should proceed if this condition is opposite
>      (MACH2PHYS_COMPAT_NR_ENTRIES(d) < max_page)
> 
>>> -         d->arch.physaddr_bitsize > 0 )
> 
> do nothing if d->arch.physaddr_bitsize > 0 (already set)
>    - inlined code will be executed only once, so (d->arch.physaddr_bitsize ==/!= 0)
>      can be ignored

This is the crucial point: It being executed only once isn't spelled out
anywhere in the description, and it's not entirely obvious why that would
be. Yes, nowadays it is. Originally (iirc) one could switch the guest back
to 64-bit mode, then again to 32-bit.

>> ... this 3rd part is going away.
> 
> Another observation: MACH2PHYS_COMPAT_NR_ENTRIES(d) is looks like a const, as
> (d)->arch.hv_compat_vstart is always 0.
> 
> grep -rw hv_compat_vstart ./*
> ./arch/x86/include/asm/config.h:#define HYPERVISOR_COMPAT_VIRT_START(d) ((d)->arch.hv_compat_vstart)
> ./arch/x86/include/asm/domain.h:    unsigned int hv_compat_vstart;

This observation isn't directly related here, is it?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 09:46:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 09:46:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181271.1504339 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSuIQ-00074h-Tf; Tue, 09 Dec 2025 09:46:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181271.1504339; Tue, 09 Dec 2025 09:46:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSuIQ-00074a-R6; Tue, 09 Dec 2025 09:46:14 +0000
Received: by outflank-mailman (input) for mailman id 1181271;
 Tue, 09 Dec 2025 09:46:13 +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
 <SRS0=R9j7=6P=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vSuIP-00074T-MX
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 09:46:13 +0000
Received: from mail-oi1-x22b.google.com (mail-oi1-x22b.google.com
 [2607:f8b0:4864:20::22b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e01b4fb3-d4e3-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 10:46:03 +0100 (CET)
Received: by mail-oi1-x22b.google.com with SMTP id
 5614622812f47-44ffed84cccso973867b6e.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 01:46:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e01b4fb3-d4e3-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1765273562; x=1765878362; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=syvUArLXzYy1n1KpHA25Z5M7M/i5SOIJswk5ER2bT+I=;
        b=HRzVWUqqAV5dO62cNRPxbKZR3EWelIBIoaH6F+MqMnGC+wGH+ZcRNuhrmP0GWnaIGA
         e0ybsWC/wCgRXmIDHZBnxS8m/DzSxbzRM4OsJAFMP4KdPv32uwpgQ6TfqkSxaU48TMae
         OZpgYH0ULnkySxf6zJ8AkgMPUjgL1buA7QQeG1ZR6X6AaWMlXJNbOdVn/ftIUQ0Xvwto
         4i4DVEkq7jkMLNBZyPgw7uq7FH42sNf9gfYhUnANzx024+Sw2/pDGnUe541pjJh3aQyp
         JD0KqXl6Va5QrnjY2lKOCDczXvtvfk9Q5r1eZO387fn8+OFxkhTzyTPfFfoTiIqgVk4Y
         gbQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765273562; x=1765878362;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=syvUArLXzYy1n1KpHA25Z5M7M/i5SOIJswk5ER2bT+I=;
        b=Q+mFur3NFaRpp96KqsW3HsYJpP9q4TOrWhGq6WzbEYBgfXxTVVZXhXVpWPdr1a5Iw+
         oW9em1KAMtOKzMUugLrXPjEGNxPxxbUoWluqvEwT5SwFnXpY9o8cOJcJRccFzrUkEPmJ
         foHImG5bBGge8pooc4mLHxATxjccNeqyMiUW3EgheEVvDa/LJpLjiFKjEhhqrm/gch0q
         hfVuiRMDIrzSDTrHUBUu/q+1U6o+UlOOijdkz1Y4gsRcIlpJH5mKEQHFILrpk8tE1SIm
         HfWm3HHvKInPBd/GZmozsly0bAunvchlYUEWrjoQgNtBgy0wNXfDz7Ur5Hlt3rQ4gfxz
         FMYA==
X-Gm-Message-State: AOJu0Yyp94vflYpX7hjnfQpMkTVCu1t879PYIPR+xKOQFMMk0slYauj/
	SwW+5ul8CSyrmzogjgUD4/K4vmyE7CNSNeA+GC8KfN0afzX+A5Zy9h2TFt1qw8l2E6WoRyvDwsY
	9S86Y7bF08rhAy41TMnKSvNLFW1RnheunMm3oP0a6CQ==
X-Gm-Gg: ASbGncuEk2HWfgjhT5MXHot2cF8Dyea6W/5QMnPKvLLWUdGKnfpuAawF26YISL6F3hR
	Nl6yV7vAikpMXYLudQF5luHnHyg0+ZLzce4XIcKV8BM8c7mTS/O8SgHz+NOSnvbnc5gr174DumI
	ikZJ2fAfGcg5aCms8iJ9+3clRmwMDetdzFjJpWlQgV6sWWyK/1C3i/FIxg43e7OrZIGiGIX7F10
	QUVaZclVXMiNkbS2dIHo/AJFe6YALx+QiyAmcpcwgoziuU4bEQzx6IHV6ECVBEcGRW+4ac5icO8
	RAL0aIqkj+/pksAILDtJBkM/idPI9qTZV5XiZM07rpt+usQZCVa9ywRgpd15PQ==
X-Google-Smtp-Source: AGHT+IHkoZ4RbyQbVi0TyuaDdRk4yBQVZvwsmSGuoqzYBoffn6BVN2d7XwpdPqEaHZOPSfukG3JAlVeIN9wYMIHg/hI=
X-Received: by 2002:a05:6808:1910:b0:450:b249:719d with SMTP id
 5614622812f47-4539e0ab127mr3358635b6e.53.1765273562406; Tue, 09 Dec 2025
 01:46:02 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764930353.git.bertrand.marquis@arm.com> <d66e0935ad46953aa12a0830fc8a0a4947933fe3.1764930353.git.bertrand.marquis@arm.com>
In-Reply-To: <d66e0935ad46953aa12a0830fc8a0a4947933fe3.1764930353.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 9 Dec 2025 10:45:51 +0100
X-Gm-Features: AQt7F2ryCSbj5Ev_93JuxAQStl6MKCC8-ArCkOxrBu9a9gC0FV23zRLKSCD52h8
Message-ID: <CAHUa44G85=NyMaB3qT6OD2v1N+f56wLwEUE1yqwtu++KQKyiuQ@mail.gmail.com>
Subject: Re: [PATCH v1 02/12] xen/arm: ffa: per-VM FFA_VERSION negotiation state
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Fri, Dec 5, 2025 at 11:37=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Track FF-A version negotiation per VM and enforce that no FF-A ABI
> (other than FFA_VERSION) is processed before a guest has selected a
> version.
>
> Each ffa_ctx gains a dedicated guest_vers_lock, a negotiated version
> (guest_vers) and a guest_vers_tmp:
> - guest_vers is the version negotiated or 0 if no version has been
>   negotiated. This must be used with ACCESS_ONCE when reading it without
>   the spinlock taken.
> - guest_vers_tmp stores the version currently requested by a VM.
>
> The version requested is the one actually negotiated once a call
> different from FFA_VERSION is done to allow several attempts and as
> requested by FF-A specification.
> We always return our implementation version FFA_MY_VERSION, even if the
> version requested was different, as requested by FF-A specification.
>
> Any call other than FFA_VERSION is rejected until a version has been
> requested.
>
> Update all places in the code where guest_vers is used to use
> ACCESS_ONCE.
>
> This prevents partially initialised contexts from using the mediator
> and complies with the FF-A 1.2 FFA_VERSION semantics.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes in v1:
> - remove the guest_vers_negotiated and use guest_vers =3D 0 as condition
>   for a version being negotiated instead
> - introduce guest_vers_tmp to store a requested version until it is
>   becoming the one negotiated.
> - remove not needed if negotiated condition.
> - use ACCESS_ONCE when reading guest_vers and use guest_vers =3D=3D 0 as
>   condition for a version being negotiated.
> - Update FF-A version handling comment in ffa_private.h
> ---
>  xen/arch/arm/tee/ffa.c          | 101 +++++++++++++++++++++++++-------
>  xen/arch/arm/tee/ffa_msg.c      |   2 +-
>  xen/arch/arm/tee/ffa_partinfo.c |   4 +-
>  xen/arch/arm/tee/ffa_private.h  |  26 ++++++--
>  xen/arch/arm/tee/ffa_shm.c      |   3 +-
>  5 files changed, 105 insertions(+), 31 deletions(-)
>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 2b4e24750d52..aadd6c21e7f2 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -158,31 +158,38 @@ static bool ffa_abi_supported(uint32_t id)
>      return !ffa_simple_call(FFA_FEATURES, id, 0, 0, 0);
>  }
>
> -static void handle_version(struct cpu_user_regs *regs)
> +static bool ffa_negotiate_version(struct cpu_user_regs *regs)
>  {
>      struct domain *d =3D current->domain;
>      struct ffa_ctx *ctx =3D d->arch.tee;
> -    uint32_t vers =3D get_user_reg(regs, 1);
> -    uint32_t old_vers;
> +    uint32_t fid =3D get_user_reg(regs, 0);
> +    uint32_t in_vers =3D get_user_reg(regs, 1);
> +    uint32_t out_vers =3D FFA_MY_VERSION;
>
> -    /*
> -     * Guest will use the version it requested if it is our major and mi=
nor
> -     * lower or equals to ours. If the minor is greater, our version wil=
l be
> -     * used.
> -     * In any case return our version to the caller.
> -     */
> -    if ( FFA_VERSION_MAJOR(vers) =3D=3D FFA_MY_VERSION_MAJOR )
> +    spin_lock(&ctx->guest_vers_lock);
> +
> +    /* If negotiation already published, continue without handling. */
> +    if ( ACCESS_ONCE(ctx->guest_vers) )
> +        goto out_continue;
> +
> +    if ( fid !=3D FFA_VERSION )
>      {
> -        spin_lock(&ctx->lock);
> -        old_vers =3D ctx->guest_vers;
> +        if ( !ctx->guest_vers_tmp )
> +        {
> +            out_vers =3D 0;
> +            goto out_handled;
> +        }
>
> -        if ( FFA_VERSION_MINOR(vers) > FFA_MY_VERSION_MINOR )
> -            ctx->guest_vers =3D FFA_MY_VERSION;
> -        else
> -            ctx->guest_vers =3D vers;
> -        spin_unlock(&ctx->lock);
> +        /*
> +         * A successful FFA_VERSION call does not freeze negotiation. Gu=
ests
> +         * are allowed to issue multiple FFA_VERSION attempts (e.g. prob=
ing
> +         * several minor versions). Negotiation becomes final only when =
a
> +         * non-VERSION ABI is invoked, as required by the FF-A specifica=
tion.
> +         * Finalize negotiation: publish guest_vers once, then never cha=
nge.
> +         */
> +        ACCESS_ONCE(ctx->guest_vers) =3D ctx->guest_vers_tmp;
>
> -        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !old_vers )
> +        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
>          {
>              /* One more VM with FF-A support available */
>              inc_ffa_vm_count();
> @@ -190,8 +197,48 @@ static void handle_version(struct cpu_user_regs *reg=
s)
>              list_add_tail(&ctx->ctx_list, &ffa_ctx_head);
>              write_unlock(&ffa_ctx_list_rwlock);
>          }
> +
> +        goto out_continue;
>      }
> -    ffa_set_regs(regs, FFA_MY_VERSION, 0, 0, 0, 0, 0, 0, 0);
> +
> +    /*
> +     * guest_vers_tmp stores the version selected by the guest (lower mi=
nor may
> +     * require reduced data structures). However, the value returned to =
the
> +     * guest via FFA_VERSION is always FFA_MY_VERSION, the implementatio=
n
> +     * version, as required by FF-A. The two values intentionally differ=
.
> +     */
> +
> +    /*
> +     * Return our highest implementation version on request different th=
an our
> +     * major and mark negotiated version as our implementation version.
> +     */
> +    if ( FFA_VERSION_MAJOR(in_vers) !=3D FFA_MY_VERSION_MAJOR )
> +    {
> +        ctx->guest_vers_tmp =3D FFA_MY_VERSION;
> +        goto out_handled;
> +    }
> +
> +    /*
> +     * Use our minor version if a greater minor was requested or the req=
uested
> +     * minor if it is lower than ours was requested.
> +     */
> +    if ( FFA_VERSION_MINOR(in_vers) > FFA_MY_VERSION_MINOR )
> +        ctx->guest_vers_tmp =3D FFA_MY_VERSION;
> +    else
> +        ctx->guest_vers_tmp =3D in_vers;
> +
> +out_handled:
> +    spin_unlock(&ctx->guest_vers_lock);
> +    if ( out_vers )
> +        ffa_set_regs(regs, out_vers, 0, 0, 0, 0, 0, 0, 0);
> +    else
> +        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> +    return true;
> +
> +out_continue:
> +    spin_unlock(&ctx->guest_vers_lock);
> +
> +    return false;
>  }
>
>  static void handle_features(struct cpu_user_regs *regs)
> @@ -274,10 +321,17 @@ static bool ffa_handle_call(struct cpu_user_regs *r=
egs)
>      if ( !ctx )
>          return false;
>
> +    /* A version must be negotiated first */
> +    if ( !ACCESS_ONCE(ctx->guest_vers) )
> +    {
> +        if ( ffa_negotiate_version(regs) )
> +            return true;
> +    }
> +
>      switch ( fid )
>      {
>      case FFA_VERSION:
> -        handle_version(regs);
> +        ffa_set_regs(regs, FFA_MY_VERSION, 0, 0, 0, 0, 0, 0, 0);
>          return true;
>      case FFA_ID_GET:
>          ffa_set_regs_success(regs, ffa_get_vm_id(d), 0);
> @@ -371,6 +425,11 @@ static int ffa_domain_init(struct domain *d)
>      d->arch.tee =3D ctx;
>      ctx->teardown_d =3D d;
>      INIT_LIST_HEAD(&ctx->shm_list);
> +    spin_lock_init(&ctx->lock);
> +    spin_lock_init(&ctx->guest_vers_lock);
> +    ctx->guest_vers =3D 0;
> +    ctx->guest_vers_tmp =3D 0;
> +    INIT_LIST_HEAD(&ctx->ctx_list);
>
>      ctx->ffa_id =3D ffa_get_vm_id(d);
>      ctx->num_vcpus =3D d->max_vcpus;
> @@ -452,7 +511,7 @@ static int ffa_domain_teardown(struct domain *d)
>      if ( !ctx )
>          return 0;
>
> -    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && ctx->guest_vers )
> +    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && ACCESS_ONCE(ctx->guest_vers)=
 )
>      {
>          dec_ffa_vm_count();
>          write_lock(&ffa_ctx_list_rwlock);
> diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
> index c20c5bec0f76..2c2ebc9c5cd6 100644
> --- a/xen/arch/arm/tee/ffa_msg.c
> +++ b/xen/arch/arm/tee/ffa_msg.c
> @@ -113,7 +113,7 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, cons=
t void *src_buf,
>      }
>
>      dst_ctx =3D dst_d->arch.tee;
> -    if ( !dst_ctx->guest_vers )
> +    if ( !ACCESS_ONCE(dst_ctx->guest_vers) )
>      {
>          ret =3D FFA_RET_INVALID_PARAMETERS;
>          goto out_unlock;
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index fa56b1587e3b..ec5a53ed1cab 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -238,7 +238,7 @@ void ffa_handle_partition_info_get(struct cpu_user_re=
gs *regs)
>       * use the v1.0 structure size in the destination buffer.
>       * Otherwise use the size of the highest version we support, here 1.=
1.
>       */
> -    if ( ctx->guest_vers =3D=3D FFA_VERSION_1_0 )
> +    if ( ACCESS_ONCE(ctx->guest_vers) =3D=3D FFA_VERSION_1_0 )
>          dst_size =3D sizeof(struct ffa_partition_info_1_0);
>      else
>          dst_size =3D sizeof(struct ffa_partition_info_1_1);
> @@ -250,7 +250,7 @@ void ffa_handle_partition_info_get(struct cpu_user_re=
gs *regs)
>           * FF-A v1.0 has w5 MBZ while v1.1 allows
>           * FFA_PARTITION_INFO_GET_COUNT_FLAG to be non-zero.
>           */
> -        if ( ctx->guest_vers =3D=3D FFA_VERSION_1_0 ||
> +        if ( ACCESS_ONCE(ctx->guest_vers) =3D=3D FFA_VERSION_1_0 ||
>                  flags !=3D FFA_PARTITION_INFO_GET_COUNT_FLAG )
>          {
>              ret =3D FFA_RET_INVALID_PARAMETERS;
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index 8d01da0009d3..4e4ac7fd7bc4 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -355,12 +355,6 @@ struct ffa_ctx {
>       * Global data accessed with lock locked.
>       */
>      spinlock_t lock;
> -    /*
> -     * FF-A version negotiated by the guest, only modifications to
> -     * this field are done with the lock held as this is expected to
> -     * be done once at init by a guest.
> -     */
> -    uint32_t guest_vers;
>      /* Number of 4kB pages in each of rx/rx_pg and tx/tx_pg */
>      unsigned int page_count;
>      /* Number of allocated shared memory object */
> @@ -368,6 +362,26 @@ struct ffa_ctx {
>      /* Used shared memory objects, struct ffa_shm_mem */
>      struct list_head shm_list;
>
> +    /*
> +     * FF-A version handling
> +     * guest_vers is the single published negotiated version. It is 0 un=
til
> +     * negotiation completes, after which it is set once and never chang=
es.
> +     * Negotiation uses guest_vers_tmp under guest_vers_lock; when a
> +     * non-VERSION ABI is invoked, Xen finalizes negotiation by publishi=
ng
> +     * guest_vers using ACCESS_ONCE() store.
> +     * Readers use ACCESS_ONCE(guest_vers) !=3D 0 to detect availability=
 and
> +     * can consume guest_vers without barriers because it never changes =
once
> +     * published.
> +     */
> +    spinlock_t guest_vers_lock;
> +    /*
> +     * Published negotiated version. Zero means "not negotiated yet".
> +     * Once non-zero, it never changes.
> +     */
> +    uint32_t guest_vers;

It might be worth mentioning that this field must always be accessed
using the ACCESS_ONCE() macro.

Cheers,
Jens

> +    /* Temporary version used during negotiation under guest_vers_lock *=
/
> +    uint32_t guest_vers_tmp;
> +
>      /*
>       * Rx buffer, accessed with rx_lock locked.
>       * rx_is_free is used to serialize access.
> diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
> index d628c1b70609..dad3da192247 100644
> --- a/xen/arch/arm/tee/ffa_shm.c
> +++ b/xen/arch/arm/tee/ffa_shm.c
> @@ -495,7 +495,8 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
>      if ( frag_len > ctx->page_count * FFA_PAGE_SIZE )
>          goto out_unlock;
>
> -    ret =3D read_mem_transaction(ctx->guest_vers, ctx->tx, frag_len, &tr=
ans);
> +    ret =3D read_mem_transaction(ACCESS_ONCE(ctx->guest_vers), ctx->tx,
> +                               frag_len, &trans);
>      if ( ret )
>          goto out_unlock;
>
> --
> 2.51.2
>


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 09:50:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 09:50:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181281.1504350 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSuMX-0000CZ-ED; Tue, 09 Dec 2025 09:50:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181281.1504350; Tue, 09 Dec 2025 09:50:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSuMX-0000CS-AJ; Tue, 09 Dec 2025 09:50:29 +0000
Received: by outflank-mailman (input) for mailman id 1181281;
 Tue, 09 Dec 2025 09:50:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/rha=6P=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vSuMV-0000CM-GC
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 09:50:27 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7ba22791-d4e4-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 10:50:24 +0100 (CET)
Received: from DUZP191CA0011.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4f9::9) by
 AS8PR08MB9410.eurprd08.prod.outlook.com (2603:10a6:20b:5a9::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.6; Tue, 9 Dec
 2025 09:50:18 +0000
Received: from DB5PEPF00014B97.eurprd02.prod.outlook.com
 (2603:10a6:10:4f9:cafe::93) by DUZP191CA0011.outlook.office365.com
 (2603:10a6:10:4f9::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Tue,
 9 Dec 2025 09:50:12 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B97.mail.protection.outlook.com (10.167.8.235) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Tue, 9 Dec 2025 09:50:18 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AS2PR08MB8693.eurprd08.prod.outlook.com (2603:10a6:20b:55c::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.6; Tue, 9 Dec
 2025 09:49:15 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d%4]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 09:49:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7ba22791-d4e4-11f0-9cce-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=kp6O3ubEuJooh0Ys49OCy1HavwsjEZMEcf4B1tI63qDiJgttwzBooPuGiICiUQBYWLDPusyNJXRxvQZz7ZRJ7ZYjFk985w6MWzvsL0CkfOV5ZLh/TSww7A0cQatuucWNTug3YayJsKQEsn/20y2Lrg75BgkMjJf/YTg+13pFnrAXskGysBb4IgKnY/SaXwJVJ18IvpeVITeJTEPM6AXGoLJpsXmvJuoYAj7DH3iw17O3upyBKrQLGrYaCRCaSAcxpjl2hp6opPC9jMoUj4FXNm+lh+Ne41UJwXaHD5D+ELUfsgZoz/9GF/LFsQjlLZK58v9+AOPxG3tk2077AhpAoQ==
ARC-Message-Signature: i=2; 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=IGPmhxXqHv49dJU3EpDq1sBwGvTZ5HJbBCN8IP512xk=;
 b=gU2X9G8y0tl5UzrNq4bGRnYr+W3aoCfsMRKpGAxn8wbIGLza/L2cwZ1YRTLL6QMwFvZgN9lYbxvPyRhyybx03dKqA2hGQ+ktpR5TV10cAmASqGR9D445oLRYTUSy2Kr4hj8pyoUUre0LYQARkqGaeFM+Akv9MVuId/jQ7gm7QBll+11aD9XsDM4IaquS3EpLgccv1Y++JBVzAio6/yiBeOFBaY4JGLSIjLzJ9S2FyMX466KS39yIjePHWP5Nsa8Owbqed5vF1VXN3qyZSgJvGdj3DDD0IMaLB0//eVF4GXtDq2ycBS8VHAn4kaFYQZ5BLAaUgAU/1FDwls1WNEztkg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IGPmhxXqHv49dJU3EpDq1sBwGvTZ5HJbBCN8IP512xk=;
 b=VVkAra9EM6G4SSFaObbKUdQyq+nScQAx6ixsqcWImznJQjbrMlSV5MGIVY4oYdS8cAjVR2uN6fAMjLd+guhQFETj6/q4CtoxZU7fpSaG7o4v6tQniLslvGzIznNcXP9vIxypRfkTxHjKrMSPwdmYZO7x078XqhU4+zvLTPEuyx4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hpewbvtqh19z7M/nlpl7lAvi9opGkdKH1c553ZloReHzSrGOHEWZMHVp98Mv7M42YIf9z2hfKENDiUVcjTGeaZ1Uu+4usBX+u51hSsDdKCpnDkwtNXZUJ9DvZtsrIqzu4LZ05+7gipISfk1Cz29tw2/RpQ+OKzaiqTXvWZVB3xl/zmqRz2ZFxc9Xct5C/JDhJWHgLOXD2Jr7E3Ex0UHW5dmY4+ZlEfDfrjGFNmUXtp0G/FfXV3vurI8+ZqouWR8AuBz1zk70bO1CG9Hb8jpo+Ne0grW+xGunZqhzjtyl6Zatc0UpxKbSj0GGFcahxfgfZ74WVsEh40IEAKsOLl9TFw==
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=IGPmhxXqHv49dJU3EpDq1sBwGvTZ5HJbBCN8IP512xk=;
 b=Z878kJ0F5vfcJjkaCRgxUxHCzOfywtnZcHp4SOVHYuR1KEFrcp1OEpEDHPiIRaYwDkQ65EG6Um+S0IyLj8dDfaeZJK/I5H81tvuwIsyi9XJaYg7B+2bcoEMtwMe8dUq+r4+DYLabNPw71D1m7Rfm3vDtuOBgpvSi9AthxAO37k1hTI8rLgwVwIMjXlUCrCRvFKh18L6tVxQ2i453Cn12GtZt40sxKgjRw4BSC5/zHbDlSXXwaDe2A3zJTNU3p1F/jfzvGKcXjzPC1lXdMntBx04SX5fmVl/v5HIr/b2vBokCtgvrZfDaW8cJ2rTlyxvWTMSWXeqeUlNeodTb2sxRzA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IGPmhxXqHv49dJU3EpDq1sBwGvTZ5HJbBCN8IP512xk=;
 b=VVkAra9EM6G4SSFaObbKUdQyq+nScQAx6ixsqcWImznJQjbrMlSV5MGIVY4oYdS8cAjVR2uN6fAMjLd+guhQFETj6/q4CtoxZU7fpSaG7o4v6tQniLslvGzIznNcXP9vIxypRfkTxHjKrMSPwdmYZO7x078XqhU4+zvLTPEuyx4=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH v1 02/12] xen/arm: ffa: per-VM FFA_VERSION negotiation
 state
Thread-Topic: [PATCH v1 02/12] xen/arm: ffa: per-VM FFA_VERSION negotiation
 state
Thread-Index: AQHcZdM57XeYbMax9k6+FVu+SjNTxbUZFY6AgAAA5gA=
Date: Tue, 9 Dec 2025 09:49:15 +0000
Message-ID: <D07913CD-B205-42F8-85F0-559FC39A4ABC@arm.com>
References: <cover.1764930353.git.bertrand.marquis@arm.com>
 <d66e0935ad46953aa12a0830fc8a0a4947933fe3.1764930353.git.bertrand.marquis@arm.com>
 <CAHUa44G85=NyMaB3qT6OD2v1N+f56wLwEUE1yqwtu++KQKyiuQ@mail.gmail.com>
In-Reply-To:
 <CAHUa44G85=NyMaB3qT6OD2v1N+f56wLwEUE1yqwtu++KQKyiuQ@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.200.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AS2PR08MB8693:EE_|DB5PEPF00014B97:EE_|AS8PR08MB9410:EE_
X-MS-Office365-Filtering-Correlation-Id: 72733774-83f4-47cd-95fa-08de37085c94
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?djI4ZUprd29RZ0lwdzBqb01nSzVmSkNVTU1HMTVoblBmVkpJczFzaVF6ZlVE?=
 =?utf-8?B?clhPay96eHBvNmx2cVpyZ0FRbUphOExZbFNBMGYzMzg2QVNsbVRVc0RJcDBB?=
 =?utf-8?B?cTdEdGliZFU3Q2VQdmMrLzFMcTZvOHdycEhuUW5yNUR4WDFDNjFkS3RtK0Ir?=
 =?utf-8?B?WXdMYlRmL2JubTRUV2FUZWtzREhLcm1KQkxBaGVxWDhHYnRJNUl0MHR6Ty9j?=
 =?utf-8?B?RkFva1p0NG54eUhPeGpBUGs2b2JWUGQyQk1WRUNjQ1FIUlV0VWN3TTFsNmVY?=
 =?utf-8?B?UDRYdVp0emt2QTRMTzF6a3A5aEV2UUdrTjFnVlk0U0dxcFU0OVdYaE9vdzZo?=
 =?utf-8?B?c29wNzJ2dys4NloyU2hIcXBBbVBzb1dkNVdEekdNZk5sUUZhb2I4RU42Rk9v?=
 =?utf-8?B?bHExYXg1QVZsTmN4cnhuUU16NTZnbEgya2pCbDdSMC82dFZnOWx2eEpVZUo1?=
 =?utf-8?B?WkY2VnVFbkdlaW4vc0JzL2JpU1B1Tmx6VmxHK2FVYzhlVTNPZ1N0RHR3TjZG?=
 =?utf-8?B?UW1tVnlhWjNnZ2RTdUdEUE5aTTkxK1FLMFRodklPMVMwZUpFazRpM1o1N2Z3?=
 =?utf-8?B?RnlTWnRPNTRhTlFzclhQa2kwUTMreTlBZ0RzdURpQW1PcGhDQStjQmdIZ2Ew?=
 =?utf-8?B?S2RBdGt5OEpTRUN5S3d2RUpHdkxZN0E1RE5CeTBvZlJadGFIcHFpS3p4Zzls?=
 =?utf-8?B?ZzRySVpHbkxJNDR2TjQvbEdMdnA5UHpZeXVYd1ZVZC9lazhxMWVGZVE2Q2I1?=
 =?utf-8?B?am9xRTluenVneVlNVTkrUWpJS09sN3RleXp5NnRtQkNCZndDZG0va2l3MGtx?=
 =?utf-8?B?QWZjTkcrTXl5YldSKzgwYXhHeVh6WW1YMDZvZGNiMzVZMC9ZRmxDc2J0VHho?=
 =?utf-8?B?QzJqQmFGSnhIT3JOOFN2dEhJcS9ScUFuanM0WmYwRDUyZWRDaUlxQkliTC9P?=
 =?utf-8?B?S1BjOTRVSVlaYmFoNEdFaHVtSnRCMElmcCtGbnQyUldkUmg0dk45U2tmdTVT?=
 =?utf-8?B?bXZsUkRRT0NHYkxpTkVocUhxZTAvS3ZjQlhhVVBvUkhvbUpiS0xBWm5aOU1L?=
 =?utf-8?B?R2l1cG9DL1B4aEhHZlo5WVViMmVrNGozUC9BWUdvYkl2OFpqTVNuWGVkbXNx?=
 =?utf-8?B?ZUw4cFdNNDY5UDhDMC9nSS9WNGlkb3VpVm9FNzJ1Wm9iTEVwUzJMS2F1YnUz?=
 =?utf-8?B?T2FWYmEzeU11bTZyd3kwY1ZlM1JoUDJiT1BXbDlJQmxVK1hTOGxicS9qN0ZI?=
 =?utf-8?B?NUhVajBRRXNpTEIzWGE0U3o1Uk1KRHpCMTh2RUQwSStvU0x0Yzd3TzQvVFN3?=
 =?utf-8?B?d1VHcThTZThvWFRGcGE1V3NNMUJaRnZxcllxcHRsWTFLUjN3d0xGOVg0QXc5?=
 =?utf-8?B?TGkyaityUytwTnYvQlE3YU5MdnErMHpEYmxBeEswUnIvL3hyWmVlZ213QTJD?=
 =?utf-8?B?YVZ2K3R0MG5teHgwOWUwU0JqUGJLZ0o4QkRiSXVBQ2tYeE9lckpRVHRVTUdB?=
 =?utf-8?B?cVlDSmNZQ1ZzTGgzYUpwVVpReGFRRW9DdVNsbmJCQTJwQnc0ZDVEQ1BrOG5O?=
 =?utf-8?B?bUtSSENUOW05RDV4MUZNQVBWUlp1enJBN3RXM1FUUk9xaHd4a0JvTkJrdVFI?=
 =?utf-8?B?NEw1UzZMYk1FcUZMSG05UndWdndMVE54NmsyUThrZ1puUVBCUlRzOW1ranc4?=
 =?utf-8?B?V1M2OVdTOHFGMmNsaHFoam9DdHc0SThIbWh5ZXQvVVcwalFtNitrZ2NDejlY?=
 =?utf-8?B?NWRzaE5ZaWgvYVJGUC9vOThyNjdOekZlbEQxS2JEMDloeFhRbEVReXIvUXUw?=
 =?utf-8?B?UytVQUh0TXdsVFpObDBpbkFlTno4Ykh0eW5EalNmMnlWa0J1Zlk3dzdzOXNO?=
 =?utf-8?B?SXRNZTBuNXord3oyY0ZuU0tSVU5Va3dRVHZLRFhydFNrZm9wcjFYRHBiU2pz?=
 =?utf-8?B?VXNjcUw2Uit5MmxmYThSZitwdWE1eFNoUm1YVENoUUFGVTIyc1V3QWNLRHQ0?=
 =?utf-8?B?OTBUa2pEOFBWVUhVZU9XM0xjQ2FOUmU2K1UzYzczTWh6QmRTVG9QK3EzZFlX?=
 =?utf-8?Q?4M7gpS?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <226F7F46C5DAA943A77F5198E9280580@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8693
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B97.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	2eb8a0e1-d9b7-48ea-c084-08de370836ed
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|14060799003|376014|35042699022|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QVNncUNtTnYyQ0ZOVEViM1Jnbk84cWVnbFRTWDhrK3R3TUljZ3lRaDVoaVpH?=
 =?utf-8?B?dXc4b3hteHJGUEJOR0g1b25SM0p2ZGxSc0UrajUxczUzWFF1NmNHdnJtMWMw?=
 =?utf-8?B?bUN4VXR5eFNJaXB2ckdBeSs1NWxxTVQ0UEpBM1dOcFpSNG1MQlVaeTdDNzE5?=
 =?utf-8?B?VDU5RFRHZ1BPUUlVVmd1djcvWStwdUpJMGtmcWN6dmlxTnVhRkJHYkg4K01H?=
 =?utf-8?B?MXZDZGJaVy9QSVpid0NsbGN0MHlBenpzLzMvSTlXOXJSaDgvdDdacHBIQTBo?=
 =?utf-8?B?cEFDcDNybTU4dXJZZ0ptdUw2R256bEZ3Mi9rUlBDL3ZEUU9oL0tHK0ZLQzFo?=
 =?utf-8?B?NFc5Kzhhc1p6TkNITmFQdUdlRzRFS3NoZ21zVlpSY1ZKMHkwQ3RMTnBPdFNz?=
 =?utf-8?B?RzUydm9UTDA2aGQ5dGpzN0g4MWhjU1BMNVdRSklXZmlGTzEreTlEVWh4R0NY?=
 =?utf-8?B?ZE5hTUhrUUZSOSs2Z2VZRWhNVzdXeU1meC8vVFRtdUNub3ByRWJhTjZ3dlpa?=
 =?utf-8?B?ZXlWZ1ZxQUlGNGpPVUIwM1VYcTlHMmZwUGZ2a1NWTEgyVEdsYlhmZlUyamVH?=
 =?utf-8?B?eEN6cHJ1bTRSUjNYUUZjam9zVWlack52NjU2YTBadWIvcDN6SzdsWFVRUWhv?=
 =?utf-8?B?VVdHSndRaUNmR3BxNENjUkZkdkVsN1BvZEhqNGxYUTdwTXAyTnV3Slgyd28z?=
 =?utf-8?B?M1J3K2VyV2lhYVhEMDNtNkdxYWVCdnM2V0ZOeHZvYmEzTVZmMEVuLzJpb2tj?=
 =?utf-8?B?RjRSb3dyYnpVdnFseXVFSXB0ZmpSSGVyNmdIZ1ViRktXbjM2UFJ5MjA5MDRo?=
 =?utf-8?B?eEVXOC9YYktrUHJRRUQxVnZ5Ym11Sk1uTFdZWXAvYXNGSzlUNmNGZm9qc2sw?=
 =?utf-8?B?ekZYdGRtTlhmalg5bEgwNWZScUUvT2xhckRYL1hXOE1qMnorTDdTMmovckc2?=
 =?utf-8?B?elVSQXRlN0RpZUIzWHJ1QzJPWTFmNnJ5N2ZxYlZXTENpV254d2Y2UkE3OGlv?=
 =?utf-8?B?blFiTW9CbmgyRkxMRFNUTlNJZXJJM1h4S1JlOUdaUDIrK3g2RUZaQTUyUUpm?=
 =?utf-8?B?Z29KVUp3YXYrVTAxOGUxR3R0N1YwNTdzK0MyZEF1RnRuWndkRjRRNmpja3ZC?=
 =?utf-8?B?WW8rSElXU254c0JGTEtUbzI5R3hYS2VGY1hKK1hyZ0ZLVW9PbEN2Ry8vOUpO?=
 =?utf-8?B?T0FtaVhRcER2RHhGWUJlZVF1Sk91TkVOc3RVVk1DS09pWURlaWtVS3RGR3FN?=
 =?utf-8?B?endsR3M1SEdWR3duVXZvNk9MaXdKQnVGZGpldEFpelJzeVRZdzNiWHhVekpH?=
 =?utf-8?B?cW1vTDlGN2NFcGNqZzJVSUhDVTdBU0JDNzVtdWdRalgvMGxOVnNDekpYeDZX?=
 =?utf-8?B?MFRmbzc0MUdtYllsZ2RXcFg1YWhSY2h5WmxwVjEyelIxU1FGUHpucGlaaXRp?=
 =?utf-8?B?NEg5K01kdW5KWTJpUUhJalFjVkFJSnpDUkZlNzZGYmdCN2RoNStDb3BQTmpu?=
 =?utf-8?B?SDNzOUNERU9oT25MRDJ6dDFKanE1VFdHdkZMM05uRGpUY1NMTWI4Mm9RNTFk?=
 =?utf-8?B?cGxNWGljMGhsWFg1VElDWW1ueTF5V3Qwb050K2FrZEpiTERnTDJaL0JTcTlZ?=
 =?utf-8?B?cWdIUlNTWHlENEJrOWdEV3g5V092c1FSNWdEbVBFZVFiOXVyOExLUW9ORU5M?=
 =?utf-8?B?Y21nUTZVeDFzVWhmRU1mUTBhVFhSVFZaVTlOT2k2R0pZT1NqUUJkajFDZGZZ?=
 =?utf-8?B?bW4wN0JUQ2RMNE8yOXdRR2NoL21CTTNIdmhrOUVXL1JnQzVuaTlTOXJaMThP?=
 =?utf-8?B?Z2tjMkhBWFZ2UElBUFdweHBUaTF0UWQ4NXVnRUtQdDlldytWMklNcVVkQzRV?=
 =?utf-8?B?WFhwUGYyUXluNjZZbTBUcmR6SndyaG9YQzRjNzZJNFZuWWlUY1MvQlhJeXc4?=
 =?utf-8?B?KzhJTlRBd0M0MWNBMHpVQW5ia2lVQTNjc1ZmWll2TU4vZTBVU1ZCUjZERGNm?=
 =?utf-8?B?WjlPYkkveXFQMWE5VkVxQ3lsSGFObE5wRXdMU0lTcnVEVVhwaWNuaTlQaXpr?=
 =?utf-8?B?VjlIdDVjMUM0K1pCVXkwVTlCTWs1TzJkWUc2UEptamU2UFZYbkJzZjhXY1Y0?=
 =?utf-8?Q?dv/M=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(14060799003)(376014)(35042699022)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 09:50:18.4493
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 72733774-83f4-47cd-95fa-08de37085c94
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B97.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9410

SGkgSmVucywNCg0KPiBPbiA5IERlYyAyMDI1LCBhdCAwOTo0NSwgSmVucyBXaWtsYW5kZXIgPGpl
bnMud2lrbGFuZGVyQGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gSGkgQmVydHJhbmQsDQo+IA0K
PiBPbiBGcmksIERlYyA1LCAyMDI1IGF0IDExOjM34oCvQU0gQmVydHJhbmQgTWFycXVpcw0KPiA8
YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPiB3cm90ZToNCj4+IA0KPj4gVHJhY2sgRkYtQSB2ZXJz
aW9uIG5lZ290aWF0aW9uIHBlciBWTSBhbmQgZW5mb3JjZSB0aGF0IG5vIEZGLUEgQUJJDQo+PiAo
b3RoZXIgdGhhbiBGRkFfVkVSU0lPTikgaXMgcHJvY2Vzc2VkIGJlZm9yZSBhIGd1ZXN0IGhhcyBz
ZWxlY3RlZCBhDQo+PiB2ZXJzaW9uLg0KPj4gDQo+PiBFYWNoIGZmYV9jdHggZ2FpbnMgYSBkZWRp
Y2F0ZWQgZ3Vlc3RfdmVyc19sb2NrLCBhIG5lZ290aWF0ZWQgdmVyc2lvbg0KPj4gKGd1ZXN0X3Zl
cnMpIGFuZCBhIGd1ZXN0X3ZlcnNfdG1wOg0KPj4gLSBndWVzdF92ZXJzIGlzIHRoZSB2ZXJzaW9u
IG5lZ290aWF0ZWQgb3IgMCBpZiBubyB2ZXJzaW9uIGhhcyBiZWVuDQo+PiAgbmVnb3RpYXRlZC4g
VGhpcyBtdXN0IGJlIHVzZWQgd2l0aCBBQ0NFU1NfT05DRSB3aGVuIHJlYWRpbmcgaXQgd2l0aG91
dA0KPj4gIHRoZSBzcGlubG9jayB0YWtlbi4NCj4+IC0gZ3Vlc3RfdmVyc190bXAgc3RvcmVzIHRo
ZSB2ZXJzaW9uIGN1cnJlbnRseSByZXF1ZXN0ZWQgYnkgYSBWTS4NCj4+IA0KPj4gVGhlIHZlcnNp
b24gcmVxdWVzdGVkIGlzIHRoZSBvbmUgYWN0dWFsbHkgbmVnb3RpYXRlZCBvbmNlIGEgY2FsbA0K
Pj4gZGlmZmVyZW50IGZyb20gRkZBX1ZFUlNJT04gaXMgZG9uZSB0byBhbGxvdyBzZXZlcmFsIGF0
dGVtcHRzIGFuZCBhcw0KPj4gcmVxdWVzdGVkIGJ5IEZGLUEgc3BlY2lmaWNhdGlvbi4NCj4+IFdl
IGFsd2F5cyByZXR1cm4gb3VyIGltcGxlbWVudGF0aW9uIHZlcnNpb24gRkZBX01ZX1ZFUlNJT04s
IGV2ZW4gaWYgdGhlDQo+PiB2ZXJzaW9uIHJlcXVlc3RlZCB3YXMgZGlmZmVyZW50LCBhcyByZXF1
ZXN0ZWQgYnkgRkYtQSBzcGVjaWZpY2F0aW9uLg0KPj4gDQo+PiBBbnkgY2FsbCBvdGhlciB0aGFu
IEZGQV9WRVJTSU9OIGlzIHJlamVjdGVkIHVudGlsIGEgdmVyc2lvbiBoYXMgYmVlbg0KPj4gcmVx
dWVzdGVkLg0KPj4gDQo+PiBVcGRhdGUgYWxsIHBsYWNlcyBpbiB0aGUgY29kZSB3aGVyZSBndWVz
dF92ZXJzIGlzIHVzZWQgdG8gdXNlDQo+PiBBQ0NFU1NfT05DRS4NCj4+IA0KPj4gVGhpcyBwcmV2
ZW50cyBwYXJ0aWFsbHkgaW5pdGlhbGlzZWQgY29udGV4dHMgZnJvbSB1c2luZyB0aGUgbWVkaWF0
b3INCj4+IGFuZCBjb21wbGllcyB3aXRoIHRoZSBGRi1BIDEuMiBGRkFfVkVSU0lPTiBzZW1hbnRp
Y3MuDQo+PiANCj4+IFNpZ25lZC1vZmYtYnk6IEJlcnRyYW5kIE1hcnF1aXMgPGJlcnRyYW5kLm1h
cnF1aXNAYXJtLmNvbT4NCj4+IC0tLQ0KPj4gQ2hhbmdlcyBpbiB2MToNCj4+IC0gcmVtb3ZlIHRo
ZSBndWVzdF92ZXJzX25lZ290aWF0ZWQgYW5kIHVzZSBndWVzdF92ZXJzID0gMCBhcyBjb25kaXRp
b24NCj4+ICBmb3IgYSB2ZXJzaW9uIGJlaW5nIG5lZ290aWF0ZWQgaW5zdGVhZA0KPj4gLSBpbnRy
b2R1Y2UgZ3Vlc3RfdmVyc190bXAgdG8gc3RvcmUgYSByZXF1ZXN0ZWQgdmVyc2lvbiB1bnRpbCBp
dCBpcw0KPj4gIGJlY29taW5nIHRoZSBvbmUgbmVnb3RpYXRlZC4NCj4+IC0gcmVtb3ZlIG5vdCBu
ZWVkZWQgaWYgbmVnb3RpYXRlZCBjb25kaXRpb24uDQo+PiAtIHVzZSBBQ0NFU1NfT05DRSB3aGVu
IHJlYWRpbmcgZ3Vlc3RfdmVycyBhbmQgdXNlIGd1ZXN0X3ZlcnMgPT0gMCBhcw0KPj4gIGNvbmRp
dGlvbiBmb3IgYSB2ZXJzaW9uIGJlaW5nIG5lZ290aWF0ZWQuDQo+PiAtIFVwZGF0ZSBGRi1BIHZl
cnNpb24gaGFuZGxpbmcgY29tbWVudCBpbiBmZmFfcHJpdmF0ZS5oDQo+PiAtLS0NCj4+IHhlbi9h
cmNoL2FybS90ZWUvZmZhLmMgICAgICAgICAgfCAxMDEgKysrKysrKysrKysrKysrKysrKysrKysr
Ky0tLS0tLS0NCj4+IHhlbi9hcmNoL2FybS90ZWUvZmZhX21zZy5jICAgICAgfCAgIDIgKy0NCj4+
IHhlbi9hcmNoL2FybS90ZWUvZmZhX3BhcnRpbmZvLmMgfCAgIDQgKy0NCj4+IHhlbi9hcmNoL2Fy
bS90ZWUvZmZhX3ByaXZhdGUuaCAgfCAgMjYgKysrKysrLS0NCj4+IHhlbi9hcmNoL2FybS90ZWUv
ZmZhX3NobS5jICAgICAgfCAgIDMgKy0NCj4+IDUgZmlsZXMgY2hhbmdlZCwgMTA1IGluc2VydGlv
bnMoKyksIDMxIGRlbGV0aW9ucygtKQ0KPj4gDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJt
L3RlZS9mZmEuYyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhLmMNCj4+IGluZGV4IDJiNGUyNDc1MGQ1
Mi4uYWFkZDZjMjFlN2YyIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL3RlZS9mZmEuYw0K
Pj4gKysrIGIveGVuL2FyY2gvYXJtL3RlZS9mZmEuYw0KPj4gQEAgLTE1OCwzMSArMTU4LDM4IEBA
IHN0YXRpYyBib29sIGZmYV9hYmlfc3VwcG9ydGVkKHVpbnQzMl90IGlkKQ0KPj4gICAgIHJldHVy
biAhZmZhX3NpbXBsZV9jYWxsKEZGQV9GRUFUVVJFUywgaWQsIDAsIDAsIDApOw0KPj4gfQ0KPj4g
DQo+PiAtc3RhdGljIHZvaWQgaGFuZGxlX3ZlcnNpb24oc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJl
Z3MpDQo+PiArc3RhdGljIGJvb2wgZmZhX25lZ290aWF0ZV92ZXJzaW9uKHN0cnVjdCBjcHVfdXNl
cl9yZWdzICpyZWdzKQ0KPj4gew0KPj4gICAgIHN0cnVjdCBkb21haW4gKmQgPSBjdXJyZW50LT5k
b21haW47DQo+PiAgICAgc3RydWN0IGZmYV9jdHggKmN0eCA9IGQtPmFyY2gudGVlOw0KPj4gLSAg
ICB1aW50MzJfdCB2ZXJzID0gZ2V0X3VzZXJfcmVnKHJlZ3MsIDEpOw0KPj4gLSAgICB1aW50MzJf
dCBvbGRfdmVyczsNCj4+ICsgICAgdWludDMyX3QgZmlkID0gZ2V0X3VzZXJfcmVnKHJlZ3MsIDAp
Ow0KPj4gKyAgICB1aW50MzJfdCBpbl92ZXJzID0gZ2V0X3VzZXJfcmVnKHJlZ3MsIDEpOw0KPj4g
KyAgICB1aW50MzJfdCBvdXRfdmVycyA9IEZGQV9NWV9WRVJTSU9OOw0KPj4gDQo+PiAtICAgIC8q
DQo+PiAtICAgICAqIEd1ZXN0IHdpbGwgdXNlIHRoZSB2ZXJzaW9uIGl0IHJlcXVlc3RlZCBpZiBp
dCBpcyBvdXIgbWFqb3IgYW5kIG1pbm9yDQo+PiAtICAgICAqIGxvd2VyIG9yIGVxdWFscyB0byBv
dXJzLiBJZiB0aGUgbWlub3IgaXMgZ3JlYXRlciwgb3VyIHZlcnNpb24gd2lsbCBiZQ0KPj4gLSAg
ICAgKiB1c2VkLg0KPj4gLSAgICAgKiBJbiBhbnkgY2FzZSByZXR1cm4gb3VyIHZlcnNpb24gdG8g
dGhlIGNhbGxlci4NCj4+IC0gICAgICovDQo+PiAtICAgIGlmICggRkZBX1ZFUlNJT05fTUFKT1Io
dmVycykgPT0gRkZBX01ZX1ZFUlNJT05fTUFKT1IgKQ0KPj4gKyAgICBzcGluX2xvY2soJmN0eC0+
Z3Vlc3RfdmVyc19sb2NrKTsNCj4+ICsNCj4+ICsgICAgLyogSWYgbmVnb3RpYXRpb24gYWxyZWFk
eSBwdWJsaXNoZWQsIGNvbnRpbnVlIHdpdGhvdXQgaGFuZGxpbmcuICovDQo+PiArICAgIGlmICgg
QUNDRVNTX09OQ0UoY3R4LT5ndWVzdF92ZXJzKSApDQo+PiArICAgICAgICBnb3RvIG91dF9jb250
aW51ZTsNCj4+ICsNCj4+ICsgICAgaWYgKCBmaWQgIT0gRkZBX1ZFUlNJT04gKQ0KPj4gICAgIHsN
Cj4+IC0gICAgICAgIHNwaW5fbG9jaygmY3R4LT5sb2NrKTsNCj4+IC0gICAgICAgIG9sZF92ZXJz
ID0gY3R4LT5ndWVzdF92ZXJzOw0KPj4gKyAgICAgICAgaWYgKCAhY3R4LT5ndWVzdF92ZXJzX3Rt
cCApDQo+PiArICAgICAgICB7DQo+PiArICAgICAgICAgICAgb3V0X3ZlcnMgPSAwOw0KPj4gKyAg
ICAgICAgICAgIGdvdG8gb3V0X2hhbmRsZWQ7DQo+PiArICAgICAgICB9DQo+PiANCj4+IC0gICAg
ICAgIGlmICggRkZBX1ZFUlNJT05fTUlOT1IodmVycykgPiBGRkFfTVlfVkVSU0lPTl9NSU5PUiAp
DQo+PiAtICAgICAgICAgICAgY3R4LT5ndWVzdF92ZXJzID0gRkZBX01ZX1ZFUlNJT047DQo+PiAt
ICAgICAgICBlbHNlDQo+PiAtICAgICAgICAgICAgY3R4LT5ndWVzdF92ZXJzID0gdmVyczsNCj4+
IC0gICAgICAgIHNwaW5fdW5sb2NrKCZjdHgtPmxvY2spOw0KPj4gKyAgICAgICAgLyoNCj4+ICsg
ICAgICAgICAqIEEgc3VjY2Vzc2Z1bCBGRkFfVkVSU0lPTiBjYWxsIGRvZXMgbm90IGZyZWV6ZSBu
ZWdvdGlhdGlvbi4gR3Vlc3RzDQo+PiArICAgICAgICAgKiBhcmUgYWxsb3dlZCB0byBpc3N1ZSBt
dWx0aXBsZSBGRkFfVkVSU0lPTiBhdHRlbXB0cyAoZS5nLiBwcm9iaW5nDQo+PiArICAgICAgICAg
KiBzZXZlcmFsIG1pbm9yIHZlcnNpb25zKS4gTmVnb3RpYXRpb24gYmVjb21lcyBmaW5hbCBvbmx5
IHdoZW4gYQ0KPj4gKyAgICAgICAgICogbm9uLVZFUlNJT04gQUJJIGlzIGludm9rZWQsIGFzIHJl
cXVpcmVkIGJ5IHRoZSBGRi1BIHNwZWNpZmljYXRpb24uDQo+PiArICAgICAgICAgKiBGaW5hbGl6
ZSBuZWdvdGlhdGlvbjogcHVibGlzaCBndWVzdF92ZXJzIG9uY2UsIHRoZW4gbmV2ZXIgY2hhbmdl
Lg0KPj4gKyAgICAgICAgICovDQo+PiArICAgICAgICBBQ0NFU1NfT05DRShjdHgtPmd1ZXN0X3Zl
cnMpID0gY3R4LT5ndWVzdF92ZXJzX3RtcDsNCj4+IA0KPj4gLSAgICAgICAgaWYgKCBJU19FTkFC
TEVEKENPTkZJR19GRkFfVk1fVE9fVk0pICYmICFvbGRfdmVycyApDQo+PiArICAgICAgICBpZiAo
IElTX0VOQUJMRUQoQ09ORklHX0ZGQV9WTV9UT19WTSkgKQ0KPj4gICAgICAgICB7DQo+PiAgICAg
ICAgICAgICAvKiBPbmUgbW9yZSBWTSB3aXRoIEZGLUEgc3VwcG9ydCBhdmFpbGFibGUgKi8NCj4+
ICAgICAgICAgICAgIGluY19mZmFfdm1fY291bnQoKTsNCj4+IEBAIC0xOTAsOCArMTk3LDQ4IEBA
IHN0YXRpYyB2b2lkIGhhbmRsZV92ZXJzaW9uKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0K
Pj4gICAgICAgICAgICAgbGlzdF9hZGRfdGFpbCgmY3R4LT5jdHhfbGlzdCwgJmZmYV9jdHhfaGVh
ZCk7DQo+PiAgICAgICAgICAgICB3cml0ZV91bmxvY2soJmZmYV9jdHhfbGlzdF9yd2xvY2spOw0K
Pj4gICAgICAgICB9DQo+PiArDQo+PiArICAgICAgICBnb3RvIG91dF9jb250aW51ZTsNCj4+ICAg
ICB9DQo+PiAtICAgIGZmYV9zZXRfcmVncyhyZWdzLCBGRkFfTVlfVkVSU0lPTiwgMCwgMCwgMCwg
MCwgMCwgMCwgMCk7DQo+PiArDQo+PiArICAgIC8qDQo+PiArICAgICAqIGd1ZXN0X3ZlcnNfdG1w
IHN0b3JlcyB0aGUgdmVyc2lvbiBzZWxlY3RlZCBieSB0aGUgZ3Vlc3QgKGxvd2VyIG1pbm9yIG1h
eQ0KPj4gKyAgICAgKiByZXF1aXJlIHJlZHVjZWQgZGF0YSBzdHJ1Y3R1cmVzKS4gSG93ZXZlciwg
dGhlIHZhbHVlIHJldHVybmVkIHRvIHRoZQ0KPj4gKyAgICAgKiBndWVzdCB2aWEgRkZBX1ZFUlNJ
T04gaXMgYWx3YXlzIEZGQV9NWV9WRVJTSU9OLCB0aGUgaW1wbGVtZW50YXRpb24NCj4+ICsgICAg
ICogdmVyc2lvbiwgYXMgcmVxdWlyZWQgYnkgRkYtQS4gVGhlIHR3byB2YWx1ZXMgaW50ZW50aW9u
YWxseSBkaWZmZXIuDQo+PiArICAgICAqLw0KPj4gKw0KPj4gKyAgICAvKg0KPj4gKyAgICAgKiBS
ZXR1cm4gb3VyIGhpZ2hlc3QgaW1wbGVtZW50YXRpb24gdmVyc2lvbiBvbiByZXF1ZXN0IGRpZmZl
cmVudCB0aGFuIG91cg0KPj4gKyAgICAgKiBtYWpvciBhbmQgbWFyayBuZWdvdGlhdGVkIHZlcnNp
b24gYXMgb3VyIGltcGxlbWVudGF0aW9uIHZlcnNpb24uDQo+PiArICAgICAqLw0KPj4gKyAgICBp
ZiAoIEZGQV9WRVJTSU9OX01BSk9SKGluX3ZlcnMpICE9IEZGQV9NWV9WRVJTSU9OX01BSk9SICkN
Cj4+ICsgICAgew0KPj4gKyAgICAgICAgY3R4LT5ndWVzdF92ZXJzX3RtcCA9IEZGQV9NWV9WRVJT
SU9OOw0KPj4gKyAgICAgICAgZ290byBvdXRfaGFuZGxlZDsNCj4+ICsgICAgfQ0KPj4gKw0KPj4g
KyAgICAvKg0KPj4gKyAgICAgKiBVc2Ugb3VyIG1pbm9yIHZlcnNpb24gaWYgYSBncmVhdGVyIG1p
bm9yIHdhcyByZXF1ZXN0ZWQgb3IgdGhlIHJlcXVlc3RlZA0KPj4gKyAgICAgKiBtaW5vciBpZiBp
dCBpcyBsb3dlciB0aGFuIG91cnMgd2FzIHJlcXVlc3RlZC4NCj4+ICsgICAgICovDQo+PiArICAg
IGlmICggRkZBX1ZFUlNJT05fTUlOT1IoaW5fdmVycykgPiBGRkFfTVlfVkVSU0lPTl9NSU5PUiAp
DQo+PiArICAgICAgICBjdHgtPmd1ZXN0X3ZlcnNfdG1wID0gRkZBX01ZX1ZFUlNJT047DQo+PiAr
ICAgIGVsc2UNCj4+ICsgICAgICAgIGN0eC0+Z3Vlc3RfdmVyc190bXAgPSBpbl92ZXJzOw0KPj4g
Kw0KPj4gK291dF9oYW5kbGVkOg0KPj4gKyAgICBzcGluX3VubG9jaygmY3R4LT5ndWVzdF92ZXJz
X2xvY2spOw0KPj4gKyAgICBpZiAoIG91dF92ZXJzICkNCj4+ICsgICAgICAgIGZmYV9zZXRfcmVn
cyhyZWdzLCBvdXRfdmVycywgMCwgMCwgMCwgMCwgMCwgMCwgMCk7DQo+PiArICAgIGVsc2UNCj4+
ICsgICAgICAgIGZmYV9zZXRfcmVnc19lcnJvcihyZWdzLCBGRkFfUkVUX05PVF9TVVBQT1JURUQp
Ow0KPj4gKyAgICByZXR1cm4gdHJ1ZTsNCj4+ICsNCj4+ICtvdXRfY29udGludWU6DQo+PiArICAg
IHNwaW5fdW5sb2NrKCZjdHgtPmd1ZXN0X3ZlcnNfbG9jayk7DQo+PiArDQo+PiArICAgIHJldHVy
biBmYWxzZTsNCj4+IH0NCj4+IA0KPj4gc3RhdGljIHZvaWQgaGFuZGxlX2ZlYXR1cmVzKHN0cnVj
dCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4gQEAgLTI3NCwxMCArMzIxLDE3IEBAIHN0YXRpYyBi
b29sIGZmYV9oYW5kbGVfY2FsbChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykNCj4+ICAgICBp
ZiAoICFjdHggKQ0KPj4gICAgICAgICByZXR1cm4gZmFsc2U7DQo+PiANCj4+ICsgICAgLyogQSB2
ZXJzaW9uIG11c3QgYmUgbmVnb3RpYXRlZCBmaXJzdCAqLw0KPj4gKyAgICBpZiAoICFBQ0NFU1Nf
T05DRShjdHgtPmd1ZXN0X3ZlcnMpICkNCj4+ICsgICAgew0KPj4gKyAgICAgICAgaWYgKCBmZmFf
bmVnb3RpYXRlX3ZlcnNpb24ocmVncykgKQ0KPj4gKyAgICAgICAgICAgIHJldHVybiB0cnVlOw0K
Pj4gKyAgICB9DQo+PiArDQo+PiAgICAgc3dpdGNoICggZmlkICkNCj4+ICAgICB7DQo+PiAgICAg
Y2FzZSBGRkFfVkVSU0lPTjoNCj4+IC0gICAgICAgIGhhbmRsZV92ZXJzaW9uKHJlZ3MpOw0KPj4g
KyAgICAgICAgZmZhX3NldF9yZWdzKHJlZ3MsIEZGQV9NWV9WRVJTSU9OLCAwLCAwLCAwLCAwLCAw
LCAwLCAwKTsNCj4+ICAgICAgICAgcmV0dXJuIHRydWU7DQo+PiAgICAgY2FzZSBGRkFfSURfR0VU
Og0KPj4gICAgICAgICBmZmFfc2V0X3JlZ3Nfc3VjY2VzcyhyZWdzLCBmZmFfZ2V0X3ZtX2lkKGQp
LCAwKTsNCj4+IEBAIC0zNzEsNiArNDI1LDExIEBAIHN0YXRpYyBpbnQgZmZhX2RvbWFpbl9pbml0
KHN0cnVjdCBkb21haW4gKmQpDQo+PiAgICAgZC0+YXJjaC50ZWUgPSBjdHg7DQo+PiAgICAgY3R4
LT50ZWFyZG93bl9kID0gZDsNCj4+ICAgICBJTklUX0xJU1RfSEVBRCgmY3R4LT5zaG1fbGlzdCk7
DQo+PiArICAgIHNwaW5fbG9ja19pbml0KCZjdHgtPmxvY2spOw0KPj4gKyAgICBzcGluX2xvY2tf
aW5pdCgmY3R4LT5ndWVzdF92ZXJzX2xvY2spOw0KPj4gKyAgICBjdHgtPmd1ZXN0X3ZlcnMgPSAw
Ow0KPj4gKyAgICBjdHgtPmd1ZXN0X3ZlcnNfdG1wID0gMDsNCj4+ICsgICAgSU5JVF9MSVNUX0hF
QUQoJmN0eC0+Y3R4X2xpc3QpOw0KPj4gDQo+PiAgICAgY3R4LT5mZmFfaWQgPSBmZmFfZ2V0X3Zt
X2lkKGQpOw0KPj4gICAgIGN0eC0+bnVtX3ZjcHVzID0gZC0+bWF4X3ZjcHVzOw0KPj4gQEAgLTQ1
Miw3ICs1MTEsNyBAQCBzdGF0aWMgaW50IGZmYV9kb21haW5fdGVhcmRvd24oc3RydWN0IGRvbWFp
biAqZCkNCj4+ICAgICBpZiAoICFjdHggKQ0KPj4gICAgICAgICByZXR1cm4gMDsNCj4+IA0KPj4g
LSAgICBpZiAoIElTX0VOQUJMRUQoQ09ORklHX0ZGQV9WTV9UT19WTSkgJiYgY3R4LT5ndWVzdF92
ZXJzICkNCj4+ICsgICAgaWYgKCBJU19FTkFCTEVEKENPTkZJR19GRkFfVk1fVE9fVk0pICYmIEFD
Q0VTU19PTkNFKGN0eC0+Z3Vlc3RfdmVycykgKQ0KPj4gICAgIHsNCj4+ICAgICAgICAgZGVjX2Zm
YV92bV9jb3VudCgpOw0KPj4gICAgICAgICB3cml0ZV9sb2NrKCZmZmFfY3R4X2xpc3Rfcndsb2Nr
KTsNCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9tc2cuYyBiL3hlbi9hcmNo
L2FybS90ZWUvZmZhX21zZy5jDQo+PiBpbmRleCBjMjBjNWJlYzBmNzYuLjJjMmViYzljNWNkNiAx
MDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX21zZy5jDQo+PiArKysgYi94ZW4v
YXJjaC9hcm0vdGVlL2ZmYV9tc2cuYw0KPj4gQEAgLTExMyw3ICsxMTMsNyBAQCBzdGF0aWMgaW50
MzJfdCBmZmFfbXNnX3NlbmQyX3ZtKHVpbnQxNl90IGRzdF9pZCwgY29uc3Qgdm9pZCAqc3JjX2J1
ZiwNCj4+ICAgICB9DQo+PiANCj4+ICAgICBkc3RfY3R4ID0gZHN0X2QtPmFyY2gudGVlOw0KPj4g
LSAgICBpZiAoICFkc3RfY3R4LT5ndWVzdF92ZXJzICkNCj4+ICsgICAgaWYgKCAhQUNDRVNTX09O
Q0UoZHN0X2N0eC0+Z3Vlc3RfdmVycykgKQ0KPj4gICAgIHsNCj4+ICAgICAgICAgcmV0ID0gRkZB
X1JFVF9JTlZBTElEX1BBUkFNRVRFUlM7DQo+PiAgICAgICAgIGdvdG8gb3V0X3VubG9jazsNCj4+
IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wYXJ0aW5mby5jIGIveGVuL2FyY2gv
YXJtL3RlZS9mZmFfcGFydGluZm8uYw0KPj4gaW5kZXggZmE1NmIxNTg3ZTNiLi5lYzVhNTNlZDFj
YWIgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wYXJ0aW5mby5jDQo+PiAr
KysgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wYXJ0aW5mby5jDQo+PiBAQCAtMjM4LDcgKzIzOCw3
IEBAIHZvaWQgZmZhX2hhbmRsZV9wYXJ0aXRpb25faW5mb19nZXQoc3RydWN0IGNwdV91c2VyX3Jl
Z3MgKnJlZ3MpDQo+PiAgICAgICogdXNlIHRoZSB2MS4wIHN0cnVjdHVyZSBzaXplIGluIHRoZSBk
ZXN0aW5hdGlvbiBidWZmZXIuDQo+PiAgICAgICogT3RoZXJ3aXNlIHVzZSB0aGUgc2l6ZSBvZiB0
aGUgaGlnaGVzdCB2ZXJzaW9uIHdlIHN1cHBvcnQsIGhlcmUgMS4xLg0KPj4gICAgICAqLw0KPj4g
LSAgICBpZiAoIGN0eC0+Z3Vlc3RfdmVycyA9PSBGRkFfVkVSU0lPTl8xXzAgKQ0KPj4gKyAgICBp
ZiAoIEFDQ0VTU19PTkNFKGN0eC0+Z3Vlc3RfdmVycykgPT0gRkZBX1ZFUlNJT05fMV8wICkNCj4+
ICAgICAgICAgZHN0X3NpemUgPSBzaXplb2Yoc3RydWN0IGZmYV9wYXJ0aXRpb25faW5mb18xXzAp
Ow0KPj4gICAgIGVsc2UNCj4+ICAgICAgICAgZHN0X3NpemUgPSBzaXplb2Yoc3RydWN0IGZmYV9w
YXJ0aXRpb25faW5mb18xXzEpOw0KPj4gQEAgLTI1MCw3ICsyNTAsNyBAQCB2b2lkIGZmYV9oYW5k
bGVfcGFydGl0aW9uX2luZm9fZ2V0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4gICAg
ICAgICAgKiBGRi1BIHYxLjAgaGFzIHc1IE1CWiB3aGlsZSB2MS4xIGFsbG93cw0KPj4gICAgICAg
ICAgKiBGRkFfUEFSVElUSU9OX0lORk9fR0VUX0NPVU5UX0ZMQUcgdG8gYmUgbm9uLXplcm8uDQo+
PiAgICAgICAgICAqLw0KPj4gLSAgICAgICAgaWYgKCBjdHgtPmd1ZXN0X3ZlcnMgPT0gRkZBX1ZF
UlNJT05fMV8wIHx8DQo+PiArICAgICAgICBpZiAoIEFDQ0VTU19PTkNFKGN0eC0+Z3Vlc3RfdmVy
cykgPT0gRkZBX1ZFUlNJT05fMV8wIHx8DQo+PiAgICAgICAgICAgICAgICAgZmxhZ3MgIT0gRkZB
X1BBUlRJVElPTl9JTkZPX0dFVF9DT1VOVF9GTEFHICkNCj4+ICAgICAgICAgew0KPj4gICAgICAg
ICAgICAgcmV0ID0gRkZBX1JFVF9JTlZBTElEX1BBUkFNRVRFUlM7DQo+PiBkaWZmIC0tZ2l0IGEv
eGVuL2FyY2gvYXJtL3RlZS9mZmFfcHJpdmF0ZS5oIGIveGVuL2FyY2gvYXJtL3RlZS9mZmFfcHJp
dmF0ZS5oDQo+PiBpbmRleCA4ZDAxZGEwMDA5ZDMuLjRlNGFjN2ZkN2JjNCAxMDA2NDQNCj4+IC0t
LSBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUuaA0KPj4gKysrIGIveGVuL2FyY2gvYXJt
L3RlZS9mZmFfcHJpdmF0ZS5oDQo+PiBAQCAtMzU1LDEyICszNTUsNiBAQCBzdHJ1Y3QgZmZhX2N0
eCB7DQo+PiAgICAgICogR2xvYmFsIGRhdGEgYWNjZXNzZWQgd2l0aCBsb2NrIGxvY2tlZC4NCj4+
ICAgICAgKi8NCj4+ICAgICBzcGlubG9ja190IGxvY2s7DQo+PiAtICAgIC8qDQo+PiAtICAgICAq
IEZGLUEgdmVyc2lvbiBuZWdvdGlhdGVkIGJ5IHRoZSBndWVzdCwgb25seSBtb2RpZmljYXRpb25z
IHRvDQo+PiAtICAgICAqIHRoaXMgZmllbGQgYXJlIGRvbmUgd2l0aCB0aGUgbG9jayBoZWxkIGFz
IHRoaXMgaXMgZXhwZWN0ZWQgdG8NCj4+IC0gICAgICogYmUgZG9uZSBvbmNlIGF0IGluaXQgYnkg
YSBndWVzdC4NCj4+IC0gICAgICovDQo+PiAtICAgIHVpbnQzMl90IGd1ZXN0X3ZlcnM7DQo+PiAg
ICAgLyogTnVtYmVyIG9mIDRrQiBwYWdlcyBpbiBlYWNoIG9mIHJ4L3J4X3BnIGFuZCB0eC90eF9w
ZyAqLw0KPj4gICAgIHVuc2lnbmVkIGludCBwYWdlX2NvdW50Ow0KPj4gICAgIC8qIE51bWJlciBv
ZiBhbGxvY2F0ZWQgc2hhcmVkIG1lbW9yeSBvYmplY3QgKi8NCj4+IEBAIC0zNjgsNiArMzYyLDI2
IEBAIHN0cnVjdCBmZmFfY3R4IHsNCj4+ICAgICAvKiBVc2VkIHNoYXJlZCBtZW1vcnkgb2JqZWN0
cywgc3RydWN0IGZmYV9zaG1fbWVtICovDQo+PiAgICAgc3RydWN0IGxpc3RfaGVhZCBzaG1fbGlz
dDsNCj4+IA0KPj4gKyAgICAvKg0KPj4gKyAgICAgKiBGRi1BIHZlcnNpb24gaGFuZGxpbmcNCj4+
ICsgICAgICogZ3Vlc3RfdmVycyBpcyB0aGUgc2luZ2xlIHB1Ymxpc2hlZCBuZWdvdGlhdGVkIHZl
cnNpb24uIEl0IGlzIDAgdW50aWwNCj4+ICsgICAgICogbmVnb3RpYXRpb24gY29tcGxldGVzLCBh
ZnRlciB3aGljaCBpdCBpcyBzZXQgb25jZSBhbmQgbmV2ZXIgY2hhbmdlcy4NCj4+ICsgICAgICog
TmVnb3RpYXRpb24gdXNlcyBndWVzdF92ZXJzX3RtcCB1bmRlciBndWVzdF92ZXJzX2xvY2s7IHdo
ZW4gYQ0KPj4gKyAgICAgKiBub24tVkVSU0lPTiBBQkkgaXMgaW52b2tlZCwgWGVuIGZpbmFsaXpl
cyBuZWdvdGlhdGlvbiBieSBwdWJsaXNoaW5nDQo+PiArICAgICAqIGd1ZXN0X3ZlcnMgdXNpbmcg
QUNDRVNTX09OQ0UoKSBzdG9yZS4NCj4+ICsgICAgICogUmVhZGVycyB1c2UgQUNDRVNTX09OQ0Uo
Z3Vlc3RfdmVycykgIT0gMCB0byBkZXRlY3QgYXZhaWxhYmlsaXR5IGFuZA0KPj4gKyAgICAgKiBj
YW4gY29uc3VtZSBndWVzdF92ZXJzIHdpdGhvdXQgYmFycmllcnMgYmVjYXVzZSBpdCBuZXZlciBj
aGFuZ2VzIG9uY2UNCj4+ICsgICAgICogcHVibGlzaGVkLg0KPj4gKyAgICAgKi8NCj4+ICsgICAg
c3BpbmxvY2tfdCBndWVzdF92ZXJzX2xvY2s7DQo+PiArICAgIC8qDQo+PiArICAgICAqIFB1Ymxp
c2hlZCBuZWdvdGlhdGVkIHZlcnNpb24uIFplcm8gbWVhbnMgIm5vdCBuZWdvdGlhdGVkIHlldCIu
DQo+PiArICAgICAqIE9uY2Ugbm9uLXplcm8sIGl0IG5ldmVyIGNoYW5nZXMuDQo+PiArICAgICAq
Lw0KPj4gKyAgICB1aW50MzJfdCBndWVzdF92ZXJzOw0KPiANCj4gSXQgbWlnaHQgYmUgd29ydGgg
bWVudGlvbmluZyB0aGF0IHRoaXMgZmllbGQgbXVzdCBhbHdheXMgYmUgYWNjZXNzZWQNCj4gdXNp
bmcgdGhlIEFDQ0VTU19PTkNFKCkgbWFjcm8uDQoNCnllcyB5b3UgYXJlIHJpZ2h0LCB0aGUgb3Zl
cmFsbCBjb21tZW50IGlzIG9ubHkgbWVudGlvbmluZyBob3cgdG8gY2hlY2sgdXNpbmcNCkFDQ0VT
U19PTkNFIGlmIHZlcnNpb24gaXMgbmVnb3RpYXRlZCBidXQgaXMgbm90IHZlcnkgY2xlYXIuDQpJ
IHdpbGwgYWRkIGEgY29tbWVudCBvbiB0b3Agb2YgZ3Vlc3RfdmVyczoNCg0KZ3Vlc3RfdmVycyBt
dXN0IGFsd2F5cyBiZSBhY2Nlc3NlZCB1c2luZyBBQ0NFU1NfT05DRS4NCg0KQ2hlZXJzDQpCZXJ0
cmFuZA0KDQo+IA0KPiBDaGVlcnMsDQo+IEplbnMNCj4gDQo+PiArICAgIC8qIFRlbXBvcmFyeSB2
ZXJzaW9uIHVzZWQgZHVyaW5nIG5lZ290aWF0aW9uIHVuZGVyIGd1ZXN0X3ZlcnNfbG9jayAqLw0K
Pj4gKyAgICB1aW50MzJfdCBndWVzdF92ZXJzX3RtcDsNCj4+ICsNCj4+ICAgICAvKg0KPj4gICAg
ICAqIFJ4IGJ1ZmZlciwgYWNjZXNzZWQgd2l0aCByeF9sb2NrIGxvY2tlZC4NCj4+ICAgICAgKiBy
eF9pc19mcmVlIGlzIHVzZWQgdG8gc2VyaWFsaXplIGFjY2Vzcy4NCj4+IGRpZmYgLS1naXQgYS94
ZW4vYXJjaC9hcm0vdGVlL2ZmYV9zaG0uYyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhX3NobS5jDQo+
PiBpbmRleCBkNjI4YzFiNzA2MDkuLmRhZDNkYTE5MjI0NyAxMDA2NDQNCj4+IC0tLSBhL3hlbi9h
cmNoL2FybS90ZWUvZmZhX3NobS5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9zaG0u
Yw0KPj4gQEAgLTQ5NSw3ICs0OTUsOCBAQCB2b2lkIGZmYV9oYW5kbGVfbWVtX3NoYXJlKHN0cnVj
dCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4gICAgIGlmICggZnJhZ19sZW4gPiBjdHgtPnBhZ2Vf
Y291bnQgKiBGRkFfUEFHRV9TSVpFICkNCj4+ICAgICAgICAgZ290byBvdXRfdW5sb2NrOw0KPj4g
DQo+PiAtICAgIHJldCA9IHJlYWRfbWVtX3RyYW5zYWN0aW9uKGN0eC0+Z3Vlc3RfdmVycywgY3R4
LT50eCwgZnJhZ19sZW4sICZ0cmFucyk7DQo+PiArICAgIHJldCA9IHJlYWRfbWVtX3RyYW5zYWN0
aW9uKEFDQ0VTU19PTkNFKGN0eC0+Z3Vlc3RfdmVycyksIGN0eC0+dHgsDQo+PiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZyYWdfbGVuLCAmdHJhbnMpOw0KPj4gICAgIGlmICggcmV0
ICkNCj4+ICAgICAgICAgZ290byBvdXRfdW5sb2NrOw0KPj4gDQo+PiAtLQ0KPj4gMi41MS4yDQo+
PiANCg0K


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 09:50:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 09:50:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181283.1504360 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSuMk-0000V5-P0; Tue, 09 Dec 2025 09:50:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181283.1504360; Tue, 09 Dec 2025 09:50:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSuMk-0000Uv-LK; Tue, 09 Dec 2025 09:50:42 +0000
Received: by outflank-mailman (input) for mailman id 1181283;
 Tue, 09 Dec 2025 09:50:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rCN0=6P=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vSuMj-0000CM-U5
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 09:50:42 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 84d3d1ed-d4e4-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 10:50:39 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b728a43e410so720248066b.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 01:50:40 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b79f49b7177sm1323482866b.50.2025.12.09.01.50.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 01:50:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 84d3d1ed-d4e4-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765273839; x=1765878639; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=FJPOpcQMazIM88B5DPGnAZVgNwq+pfcOP01xFk5hDFM=;
        b=bb5MuDwPo8MqNrk0xHGaOYqr/nXSI4NGntAfUbAAnmcNmjznOPDsvD72XYlk7EGAfY
         Rv2qf2Ruy/EfwaLst+iP9ysmrNE5bTOutiy0folLcD+ZsEkVeX53ZiLAzL/NpI5z2mRk
         z4pgOI8NzfcAkYov3fDo21gfTLfw9UA4tABZzmDO0A6xwDgo+BNSEyhiYTxovoJv4R5o
         viMc7++B9efkZm7Z1T4inWLEmoIz6QwC/j4VDLrJqjxLcQaD8qAEb5DzgdlQmkSIi2qH
         WcjKsKRB+7Q5RVtLbwgFolVKgKMHCANulhtuOizSfJkGRk93PbS917p5qyl1yBHjPH2F
         VyxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765273839; x=1765878639;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=FJPOpcQMazIM88B5DPGnAZVgNwq+pfcOP01xFk5hDFM=;
        b=U6Tslrndk5Sg6HmBAYgrJA/1/2mP/HYMpwiGRFQKUQV6anpQMla6I5M3FQqkADGt3a
         y3P4bGoPa77QK32+rIrJyBKDYhIyENeJEgqrYCEqT2zscUFbiWSuiM+6Iceg8jfvYYNS
         2LaxYlqCmh7oqM6R/ZkBJ+j6gC6MvzBhssLMG0Okc3OLZ0aP21KcTD3vquYNsiZMfz1X
         gKOFScDWbrMecGKg/T4C2/EnNvY5qonOj7oYA9ZlFneh1jLZ4HHnnkwIc/PCwuz16YAt
         WAIj4hkVvWTWYWOykReakl1q03dBgPzdgoPCAWLr5r0Isi8Cr3SJogVdyAB8oV+zFEQ5
         CSdA==
X-Forwarded-Encrypted: i=1; AJvYcCWTf2UEV5tJgTM9KxLRZooe0CkVZ8h79B2bPfx1aoqUlPPSMXuwpk/c86Lp4ks55Olzw9VaUfF9ZMw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxsgifKt3V8XyZw+MflpY2KurnaWPr3TkfQeB848JwnXwOglH3d
	H/0UIYRgfNqiHKZaevwzM0BFtIwGiK2m2EkypX3koaD1LRMn885dTyEA
X-Gm-Gg: ASbGnct4XTwqMCsOltXuxZmr6cGTa00Csj8wtq8r67LJ9Z+dD3rqkbaBtKJ1qeyJ1v9
	tD7CDg2tnju1ZWwKE1ITUF4z6Ge6HZkhrAu2+2u7lAway9prnkYF31wnkIdK2OId5QuudCZCcC5
	jPJ2BdM9tTrkg4jbEDF4mH4aC/TNpiMFucH4Lhv94mWbuTziQq6HGATrnS3F60AsR+eEkb8MvaB
	lAk+CYRRqef2Pxe3ezEZ0UWLyIRN72yk7Z/min9FH5070piFchRW1bqZcv0ZrYf6kyfOGI6SZ1U
	WYRqJ9lUvIBX3UgogjziXizuuEYfnEdPbqDIkUahxb881/P8Hh2mcscpf46aow4bXQAXmcK6pbL
	xTYuvgKq6ZW1mkqhPlqAVMUWk1RYeHB1se6dlBOPuLBlidXq9T9qcjC7Ik+dlK6R86bdtfq6VPI
	epBHLZiP94Z2M/TZt5HG3Ju/P8HSYuAYhGmZzaEk7sZUNh6gaOx88Bk9LJtSCy
X-Google-Smtp-Source: AGHT+IGFRVCQwsoMDLQ7USJCKrexRPZwnInhuLkXELtmHcZRP1on2RCd4FMNKvyXUt6qG6ZklhkUWQ==
X-Received: by 2002:a17:907:86ab:b0:b6d:505e:3da1 with SMTP id a640c23a62f3a-b7a242d4a5emr908291966b.7.1765273839252;
        Tue, 09 Dec 2025 01:50:39 -0800 (PST)
Message-ID: <5003774e-ce4a-4592-976d-0154a9b15d5b@gmail.com>
Date: Tue, 9 Dec 2025 10:50:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH V2] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
To: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <20251203185817.3722903-1-oleksandr_tyshchenko@epam.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20251203185817.3722903-1-oleksandr_tyshchenko@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hello Oleksandr,

On 12/3/25 7:58 PM, Oleksandr Tyshchenko wrote:
> Creating a dom0less guest with a high vCPU count (e.g., >32) fails
> because the fixed 4KiB device tree buffer (DOMU_DTB_SIZE) overflows
> during creation.
>
> The FDT nodes for each vCPU are the primary consumer of space,
> and the previous fixed-size buffer was insufficient.
>
> This patch replaces the fixed size with a formula that calculates
> the required buffer size based on a fixed baseline plus a scalable
> portion for each potential vCPU up to the MAX_VIRT_CPUS limit.
>
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> ---
> V1: https://patchew.org/Xen/20251202193246.3357821-1-oleksandr._5Ftyshchenko@epam.com/
>
>    V2:
>     - update commit subj/desc
>     - use a formula that accounts MAX_VIRT_CPUS
>     - add BUILD_BUG_ON
> ---
> ---
>   xen/common/device-tree/dom0less-build.c | 16 +++++++++++++---
>   1 file changed, 13 insertions(+), 3 deletions(-)
>
> diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
> index 3f5b987ed8..38a5830813 100644
> --- a/xen/common/device-tree/dom0less-build.c
> +++ b/xen/common/device-tree/dom0less-build.c
> @@ -461,15 +461,25 @@ static int __init domain_handle_dtb_boot_module(struct domain *d,
>   
>   /*
>    * The max size for DT is 2MB. However, the generated DT is small (not including
> - * domU passthrough DT nodes whose size we account separately), 4KB are enough
> - * for now, but we might have to increase it in the future.
> + * domU passthrough DT nodes whose size we account separately). The size is
> + * calculated from a fixed baseline plus a scalable portion for each potential
> + * vCPU node up to the system limit (MAX_VIRT_CPUS), as the vCPU nodes are
> + * the primary consumer of space.
> + *
> + * The baseline of 2KiB is a safe buffer for all non-vCPU FDT content.
> + * Empirical testing with the maximum number of other device tree nodes shows
> + * a final compacted base size of ~1.5KiB. The 128 bytes per vCPU is derived
> + * from a worst-case analysis of the FDT construction-time size for a single
> + * vCPU node.
>    */
> -#define DOMU_DTB_SIZE 4096
> +#define DOMU_DTB_SIZE (2048 + (MAX_VIRT_CPUS * 128))
>   static int __init prepare_dtb_domU(struct domain *d, struct kernel_info *kinfo)
>   {
>       int addrcells, sizecells;
>       int ret, fdt_size = DOMU_DTB_SIZE;
>   
> +    BUILD_BUG_ON(DOMU_DTB_SIZE > SZ_2M);
> +
>       kinfo->phandle_intc = GUEST_PHANDLE_GIC;
>   
>   #ifdef CONFIG_GRANT_TABLE

LGTM:
  Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks!

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 09:54:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 09:54:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181307.1504369 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSuQ5-0001LB-5L; Tue, 09 Dec 2025 09:54:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181307.1504369; Tue, 09 Dec 2025 09:54:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSuQ5-0001L4-2b; Tue, 09 Dec 2025 09:54:09 +0000
Received: by outflank-mailman (input) for mailman id 1181307;
 Tue, 09 Dec 2025 09:54:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rCN0=6P=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vSuQ4-0001Ky-15
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 09:54:08 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ff85134a-d4e4-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 10:54:05 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-640b0639dabso8712320a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 01:54:05 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b79f4498ed9sm1336520066b.16.2025.12.09.01.54.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 01:54:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff85134a-d4e4-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765274045; x=1765878845; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=vcz884HHtwVOs8Zkb6Wfc8IbRh86xIj0X3WWWxxB36o=;
        b=aBKyzX2YwJsWZBTOmXcYyBSltgmJAmqSIm1LksA4fX3YGFkc7GQdAgq3Tlvp+bxk5E
         GEkPd9T2gprSW5rIg7SSH0iz0CTZr2Ji1QvAeLMVS5syaqGlCH06KZ5dgVF5LYv26cPp
         nGbqoi2iwHCIyEQxSmMgGuS9fCcjUKWz+Ro1StXklqmYDM7b2h9JNeHKKjj2IjpwHc4x
         nnp6fdBHZnQGrOi9Lyhv3OoX0Sh8pQXcnLUalZfyyfUPzEkArJTxxzyETLXZHjh45hgl
         mD9dLUHiXNkupvu6n2OkEmXPeQorz6Fe9JQtz9bAEPvKBsDTFFsYbnMplnkhpKTzoULD
         feog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765274045; x=1765878845;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=vcz884HHtwVOs8Zkb6Wfc8IbRh86xIj0X3WWWxxB36o=;
        b=YDKrtTurWjtfBhHIjEsm2yAZJpQJwt7W0LsU9hbO6gnSwpZhV+RsdLCgq7T5jf+x3n
         ZheKXOeI/Fz+a3Fla9fDerHn5WsKJ+q7KIaoMzZSZkPVMsDVb60FTP8amVErwmDooclm
         JIG5W6mWd24MgMnLK+E0k5pKBYMb66q2m09OBpmi5orYXhWpqNstJRt775QKlf2zYu9M
         QM3JZc9FDed31aKKyeTSVOeJcRPu+w+pxCCXZWSw92C1TjmJ3m3+w5kGOlZ7xSN6BBTC
         7he7ZZ/xSu4ro8Y3q0WLpu40RVUDOGcNQXpojcrVqlXkRTdGQcUet4NvmHrgxeObWyo0
         7imw==
X-Forwarded-Encrypted: i=1; AJvYcCXQKyOgOlG2aPOVS2n+26CqMBUR16vx7/TwSGLwSYIk9CgWQOll0TP5Ph9ZgrdXUMwDASfMDHbVmvU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw6yIk53ia1e+5fLEbHAD3QefLnxuFbhTqVgos2GBFo4Q/Uh5AZ
	5AzzpeYHzF2gB+qjF0ZRppg4q5QV0apMLTY4GT8F16B6MRuOaupRit10
X-Gm-Gg: ASbGncvdAoKDsJccZGnBzmqbGfDg60ZnrNXNXDcgwj+JUzuHPQXnN2ark+sNgJxexbj
	3+H5HH3logH+5DA02uFIgPyGf+9/poWwK0LnCNZusyTUT2/XIJIieoZ9ubJXE9ahdpUuyrGX/m7
	Q+dk6Gs8i9uhHV70IURh8EhNSxd4QbXRW9F+2wYN6vaASWYSj2iHKl/2cd2tvSrnthnp7JeSCBY
	PmncaEAOxC0UwqGe9pJ5xfxBWYHTYhuK+wy967zFJLfYZjqsrOxXaiIYF3AgVTOfL33sgueIOCs
	gjnN9BHHmvZvXri3w5f/yLVSRHJ6r3NpnIUdG58Xe3sVxsaYyMro1NKhxHbNowPAGohYoC88yBX
	Okr13wOU/y1rOH2Mv5l2vHjyLJNxYL1YaDAWjim57GfzcyVrzGQYcJ5D/BPWvDdndLgT+ylX2L8
	6TWXIAepJPouEwpxn2gAXjmzpb/sSf4knOJKq8phW5RFt5YYyIWv/Yz3pwTF0f
X-Google-Smtp-Source: AGHT+IGJDIpnhBnJZQwDSNNG+MdXNR0ADJP4CunMyi6v1wuvuienlTxfZZ1oW9FndegW7tRRWZiS4g==
X-Received: by 2002:a17:907:94c8:b0:b73:8792:c3ca with SMTP id a640c23a62f3a-b7a2474fee5mr1024160866b.32.1765274044898;
        Tue, 09 Dec 2025 01:54:04 -0800 (PST)
Message-ID: <d4758b99-48b3-4cae-b55b-6552b6daa887@gmail.com>
Date: Tue, 9 Dec 2025 10:54:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 02/19] xen/riscv: detect and initialize G-stage mode
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <0e32a6bd86828952d7494b8d49b48d512f53cada.1763986955.git.oleksii.kurochko@gmail.com>
 <67c222b8-fafe-4af4-be5e-2eb4638af4cf@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <67c222b8-fafe-4af4-be5e-2eb4638af4cf@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 12/8/25 5:22 PM, Jan Beulich wrote:
> On 24.11.2025 13:33, Oleksii Kurochko wrote:
>> +static void __init gstage_mode_detect(void)
>> +{
>> +    static const struct gstage_mode_desc modes[] __initconst = {
>> +        /*
>> +         * Based on the RISC-V spec:
>> +         *   Bare mode is always supported, regardless of SXLEN.
>> +         *   When SXLEN=32, the only other valid setting for MODE is Sv32.
>> +         *   When SXLEN=64, three paged virtual-memory schemes are defined:
>> +         *   Sv39, Sv48, and Sv57.
>> +         */
>> +#ifdef CONFIG_RISCV_32
>> +        { HGATP_MODE_SV32X4, 2, "Sv32x4" }
>> +#else
>> +        { HGATP_MODE_SV39X4, 3, "Sv39x4" },
>> +        { HGATP_MODE_SV48X4, 4, "Sv48x4" },
>> +        { HGATP_MODE_SV57X4, 5, "Sv57x4" },
>> +#endif
>> +    };
>> +
>> +    unsigned int mode_idx;
> Can't this move ...
>
>> +    for ( mode_idx = ARRAY_SIZE(modes); mode_idx-- > 0; )
> ... into here? You don't use the variable outside of the loop.

Agree, mode_idx isn't used outside of the loop anymore, so I will move
declaration of it into for header.

>
>> +    {
>> +        unsigned long mode = modes[mode_idx].mode;
>> +
>> +        csr_write(CSR_HGATP, MASK_INSR(mode, HGATP_MODE_MASK));
>> +
>> +        if ( MASK_EXTR(csr_read(CSR_HGATP), HGATP_MODE_MASK) == mode )
>> +        {
>> +            max_gstage_mode.mode = modes[mode_idx].mode;
>> +            max_gstage_mode.paging_levels = modes[mode_idx].paging_levels;
>> +            safe_strcpy(max_gstage_mode.name, modes[mode_idx].name);
> This looks as if you were overwriting .rodata here (the string literal
> "Bare"). You aren't, but why can't the whole copying be a single struct
> assignment?

Agree, it could be just:
  max_gstage_mode = modes[mode_idx];

>
> Preferably with the adjustments:
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 10:03:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 10:03:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181317.1504379 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSuZ2-00038I-Ve; Tue, 09 Dec 2025 10:03:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181317.1504379; Tue, 09 Dec 2025 10:03:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSuZ2-00038B-T2; Tue, 09 Dec 2025 10:03:24 +0000
Received: by outflank-mailman (input) for mailman id 1181317;
 Tue, 09 Dec 2025 10:03:23 +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 <SRS0=sSjK=6P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSuZ1-000385-Fa
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 10:03:23 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4b39ce07-d4e6-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 11:03:22 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-47118259fd8so44135935e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 02:03:22 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbe8fe8sm30759265f8f.2.2025.12.09.02.03.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 02:03:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4b39ce07-d4e6-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765274601; x=1765879401; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=FZpaecb+JF7bmSjlzXmdZ2nWOO8dFkaLpz8JThfqNYQ=;
        b=duSde+ma8tmQgitZekuJ/EnhdF94zODPhXnsc+SZ+stlIxAoCQkxJqmeakY9DzdDeA
         6T7b3uUJSDEwtysABylEsh4t+qR+hLHN6vbYQHezb8sF9D7M26t3UYJSBxefQim67+Uw
         5ShP1sc2jvMNmSFwSOvl9MmzviZirFX6DtQQfQ4J2pGCJ5mI8Lx8P0YmmCFE8/trcbbm
         7YBdr4AcfQewkYhYoQLijkPg/ERKCW/+g78rd7NU/3vs5q25QvSvEEyeSubwnpXGi1Da
         +NawEvmew3a2lcMKoMldTsAcKAbm5974ZXaukoLHlZK9ql2eGIvAjXLuGFUa7c/Wcg26
         QPkw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765274601; x=1765879401;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=FZpaecb+JF7bmSjlzXmdZ2nWOO8dFkaLpz8JThfqNYQ=;
        b=jhx5VKpDx6CAn60K6XuiQqH/C6CvyJaHZ6lUmt09DLTm6PyW6urA2PHwb4fHp8q2Ai
         YrYIBC2L6XwSkgMU0PAQ/3DNZadPeFChjTcmfVYssn6aIum7sFDTjVydhRfzfYEMVGkR
         MyAb8EOooZouDoadFj1sWnugStkkbKZdvxY3uCw5ccv7MPO+16UVyfA2YFgCSGXdjrEE
         +I3T7/UGJw6tIH4IU8lWT/HcgL8ogmlORrXsNxQ7aQGUoRD+i+fq+PgQirXsRH1CmBmu
         Pea6Hh5vs+rUVUvlnQl11RzlaEtD3PZoxrg2K3d7PEt3JxkXlyt189JXtFu9t1ZrAnF2
         zJEA==
X-Gm-Message-State: AOJu0Yw+hUErMcY699KSfdhNf/Szk3Bg3mZhB29MvNBa46k6UmkyXpqK
	5MnfzH9IDU+cPyb8jd0Hw6dcKel1CGeuMKg8De30qb6g+kHya+2G1Qp6198q/S5AtlryiLIGYyG
	mIXM=
X-Gm-Gg: ASbGncv11V2vJgIys086c8y3WWyHl1RRUQSQ8dp46xc5/s8Y/DZWd5xra5G8AlfZkUY
	N+IBVS3JJn4fOdMS6UM7smxEy3RezzFDhQyasVQfIxQ6Xxh6VW/3Nl+gd1zVXtc/ybgYM9nCadp
	z6/cpatsODApUoD/2OH7QVtA86N9aNsojOOHhYUylAvOvDJPV4vwKIuay8/6ofLtqDdNMlsMqXn
	8SgtWYudjRhTfYsIQUJ0SO9La12QrXfTc1S6QbomyDG8t8ILoNiH0OthtWz/Z46iCP1j+rTFbhQ
	AESXnhKoKnh2DwBW5Lob0HfZKLZTc0SaAjpfCN/TIU66nOWcG/wRDjd6b+WrsFWXc5E7f2wftUu
	Z5P7v+P/nOl4/yVehpx3ur6LAIxazRuCeHsbaJnNcDDOfZuOZOz9RIg4y/O2a3vxH5mTSweBhpS
	uQPxk5m+t0ap26/LlE9gVsLG2Y8wEBcI4Qg8qTGE2eZaacfpo154j12ABSEaE3415zzpD7pXugF
	Js=
X-Google-Smtp-Source: AGHT+IHn34SEuxmGT+foHMrEd2tpF6jZnsvkNLnE+RdJKtsR0Fj0NiPI6Ag/LdGC/wsulvgWRWRkUw==
X-Received: by 2002:a05:6000:230c:b0:429:c2fb:c268 with SMTP id ffacd0b85a97d-42f89f70656mr12105618f8f.56.1765274601262;
        Tue, 09 Dec 2025 02:03:21 -0800 (PST)
Message-ID: <f0f885a8-02f9-4d04-8bb1-4ed7dbd7666a@suse.com>
Date: Tue, 9 Dec 2025 11:03:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] Arm: restrict TEE{CR,HBR} to Arm32
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Support for TEECR32_EL1 and TEEHBR32_EL1 was removed from binutils on the
basis that ThumbEE was removed from v8 before the spec was finalized (and
hence it never appeared in production silicon). Limit respective code to
Arm32 builds.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Requires 5bbe1fe413f9 ("ARM: Drop ThumbEE support") to be reverted first.

Further cleanup up may be wanted, but I wasn't sure whether to fold this
into this patch: TEE{CR,HBR}32_EL1 are now unnecessary aliases, and the
32-bit-only TEE{CR,HBR} constants could be used instead.

Also cpu_has_thumbee may better be either hidden from Arm64, or be made
constant false there.

--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -111,13 +111,13 @@ static void ctxt_switch_from(struct vcpu
     p->arch.cntkctl = READ_SYSREG(CNTKCTL_EL1);
     virt_timer_save(p);
 
-    if ( is_32bit_domain(p->domain) && cpu_has_thumbee )
+#ifdef CONFIG_ARM_32
+    if ( cpu_has_thumbee )
     {
         p->arch.teecr = READ_SYSREG(TEECR32_EL1);
         p->arch.teehbr = READ_SYSREG(TEEHBR32_EL1);
     }
 
-#ifdef CONFIG_ARM_32
     p->arch.joscr = READ_CP32(JOSCR);
     p->arch.jmcr = READ_CP32(JMCR);
 #endif
@@ -244,13 +244,13 @@ static void ctxt_switch_to(struct vcpu *
     WRITE_SYSREG(n->arch.tpidrro_el0, TPIDRRO_EL0);
     WRITE_SYSREG(n->arch.tpidr_el1, TPIDR_EL1);
 
-    if ( is_32bit_domain(n->domain) && cpu_has_thumbee )
+#ifdef CONFIG_ARM_32
+    if ( cpu_has_thumbee )
     {
         WRITE_SYSREG(n->arch.teecr, TEECR32_EL1);
         WRITE_SYSREG(n->arch.teehbr, TEEHBR32_EL1);
     }
 
-#ifdef CONFIG_ARM_32
     WRITE_CP32(n->arch.joscr, JOSCR);
     WRITE_CP32(n->arch.jmcr, JMCR);
 #endif
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -211,8 +211,9 @@ struct arch_vcpu
     register_t hcr_el2;
     register_t mdcr_el2;
 
-    uint32_t teecr, teehbr; /* ThumbEE, 32-bit guests only */
 #ifdef CONFIG_ARM_32
+    uint32_t teecr, teehbr; /* ThumbEE */
+
     /*
      * ARMv8 only supports a trivial implementation on Jazelle when in AArch32
      * mode and therefore has no extended control registers.


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 10:06:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 10:06:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181326.1504390 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSubb-0003eM-Cw; Tue, 09 Dec 2025 10:06:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181326.1504390; Tue, 09 Dec 2025 10:06:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSubb-0003eF-9F; Tue, 09 Dec 2025 10:06:03 +0000
Received: by outflank-mailman (input) for mailman id 1181326;
 Tue, 09 Dec 2025 10:06:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=R9j7=6P=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vSuba-0003e7-6e
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 10:06:02 +0000
Received: from mail-oo1-xc2d.google.com (mail-oo1-xc2d.google.com
 [2607:f8b0:4864:20::c2d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a8b9225a-d4e6-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 11:05:59 +0100 (CET)
Received: by mail-oo1-xc2d.google.com with SMTP id
 006d021491bc7-65962c714eeso2940758eaf.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 02:05:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8b9225a-d4e6-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1765274758; x=1765879558; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6DBmre1O1b4no6iYA3cLg6P0KAiM1DQSZPOuw0he+qA=;
        b=JY8XChLdv9jSmmjMjbMqo1KLXHA3uDBBBy0nQUQTAhTHZ/VfNdi9GQfyf1jdO149HT
         VX2UXA5Xi7ps/fW+8IXkGP3L2EFmHEphZ16I3O/AH2MC6Z9HQCOUNheN9vqMBycVfmV3
         60k2vlPs46eFvR6BStlP/HjSnr+WZudn19CUrXTWc9ueN+lQiO63SGjaq84pZ8PIX2ph
         1AeWV/v7g3POala/PQyOEkuJF9jv7TlpursTEr8NP9mKZarLl7lmQ0HterTffOBjDs3k
         IZL0KPGPPWbgW314JzYhwocBOyw3z0UuxLfhkABp4cdprcQfQBkR/mUrzUpHlU3kZ4Vb
         cWHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765274758; x=1765879558;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=6DBmre1O1b4no6iYA3cLg6P0KAiM1DQSZPOuw0he+qA=;
        b=ZxnLHx1bcVcVn6zNmQbiGTZwqzJuwTc4JL1GRvr+Nyu4Yxzp46Rp+DUcRDLa1z1sVw
         v7l8CdcwZokmrqxjwBiwTvoeKwgRMyGOvBZLOGXNpmfL2YogsEEBpagI1byeE7vugOV3
         kJgDSV80Assy9J0NBaLEaATtk90HPce6VSuwTkj9DH0fo6eUgJuaYT+whVsyE43lOPRC
         q14kZxHQZgUb3HpUNJmgDL4le8Jub2ztQDavWC+lMY8kZqiKBUh0JtXjIZWWhmEqonnY
         RyyaVAWS34a/xOkpy6Yqzy70bAsZd6kGc4BOXaJhfzuaTt/TlxuxSAPQIcGDeI6YOsmr
         GWRw==
X-Gm-Message-State: AOJu0Yyx2DoVPTdXkx4ZZOnmaI64fZAInowLhtOklxvE+XPUkZxI5y0I
	qRfa5WoDdCwTQQz9pZYziM9docPgEwcyXtogQcaY8+NnzQCXDy7F7dB7V26xKJj9arm4PWbEiNs
	Qjh11eTe6cwnIorUOj/jGi3lGlGEsfIOwn9gr4rRiWA==
X-Gm-Gg: ASbGncuL9Vevyi7HjY+8lG/pHm+Hih/GWhZl0twdeye5Hnt7oqxdHnIprYNgrAEwEXg
	mmxXDCjuQTowm8Wqh6UDMQa3gdL//uN0Bdj+g1s3qPT5qQC/YIao71BLPXIMHJkq2hjKdricgw6
	OCXJbVH0p+ECP0yimrGwkM/S7m8pkeB9VqBiG9sTS2li88SaBHfPndQcrUGsHns3/HEmkMwPgfp
	IYa41edbvrGa1hdB02UlTEn3d7inVz2GpPziBWj9RfE4stScdwzV5txxDnZlp5QArPxaYnGkwVY
	4FkmuTRvpgpv3l1f8ROcrHUXsOVMku41o+MYENEEdUcsNY9K/3TmlqgFxlgFKA==
X-Google-Smtp-Source: AGHT+IHWrmnoZEbp0xEJjeKA0rmDYSUgnrLYgEdxZNs270TSIO3eL/0nlTFYYo5OCFY5m1m+OaPMQsdlMVGSo11PVxo=
X-Received: by 2002:a05:6820:4de1:b0:659:9a49:8ed7 with SMTP id
 006d021491bc7-65b23833096mr233730eaf.11.1765274758504; Tue, 09 Dec 2025
 02:05:58 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764930353.git.bertrand.marquis@arm.com> <697ab9880767b75c9964ae900a43fd4e065fc502.1764930353.git.bertrand.marquis@arm.com>
In-Reply-To: <697ab9880767b75c9964ae900a43fd4e065fc502.1764930353.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 9 Dec 2025 11:05:46 +0100
X-Gm-Features: AQt7F2qIz9Tr_AjJj-t3fM2ggtE88YxB1L-RMc_hPhi9Qg9pZWCgLl2vQ_KUW00
Message-ID: <CAHUa44E+Cgs6WeuSyYi=r1BCzaYN+f9MBoSudyLxkU2LeGxzXg@mail.gmail.com>
Subject: Re: [PATCH v1 03/12] xen/arm: ffa: Fix is_64bit init
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Fri, Dec 5, 2025 at 11:37=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> is_64bit_domain(d) is not set during domain_init as the domain field is
> only set when loading the domain image which is done after executing
> domain_init.
>
> Fix the implementation to set is_64bit when version gets negotiated.
> is_64bit is only used during partition_info_get once a domain is added
> in the list of domains having ffa support. It must only be accessed when
> the rwlock is taken (which is the case).
>
> is_64bit must not be used without the rwlock taken and other places in
> the code needing to test 64bit support of the current domain will have
> to use calls to is_64bit_domain instead of the field from now on.
>
> Fixes: 09a201605f99 ("xen/arm: ffa: Introduce VM to VM support")
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes in v1:
> - patch introduced
> ---
>  xen/arch/arm/tee/ffa.c         | 9 ++++++++-
>  xen/arch/arm/tee/ffa_private.h | 5 +++++
>  2 files changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index aadd6c21e7f2..0f6f837378cc 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -180,6 +180,14 @@ static bool ffa_negotiate_version(struct cpu_user_re=
gs *regs)
>              goto out_handled;
>          }
>
> +        /*
> +         * We cannot set is_64bit during domain init because the field i=
s not
> +         * yet initialized.
> +         * This field is only used during partinfo_get with the rwlock t=
aken
> +         * so there is no ordering issue with guest_vers.
> +         */
> +        ctx->is_64bit =3D is_64bit_domain(d);

This should only be assigned under the rwlock. But do we need the
is_64bit field at all? Why can't we always use is_64bit_domain()
instead?

Cheers,
Jens

> +
>          /*
>           * A successful FFA_VERSION call does not freeze negotiation. Gu=
ests
>           * are allowed to issue multiple FFA_VERSION attempts (e.g. prob=
ing
> @@ -433,7 +441,6 @@ static int ffa_domain_init(struct domain *d)
>
>      ctx->ffa_id =3D ffa_get_vm_id(d);
>      ctx->num_vcpus =3D d->max_vcpus;
> -    ctx->is_64bit =3D is_64bit_domain(d);
>
>      /*
>       * ffa_domain_teardown() will be called if ffa_domain_init() returns=
 an
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index 4e4ac7fd7bc4..2daa4589a930 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -344,6 +344,11 @@ struct ffa_ctx {
>      /* FF-A Endpoint ID */
>      uint16_t ffa_id;
>      uint16_t num_vcpus;
> +    /*
> +     * Must only be accessed with the ffa_ctx_list_rwlock taken as it se=
t
> +     * when guest_vers is set and other accesses could see a partially s=
et
> +     * value.
> +     */
>      bool is_64bit;
>
>      /*
> --
> 2.51.2
>


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 10:11:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 10:11:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181343.1504400 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSuh6-0005QJ-2I; Tue, 09 Dec 2025 10:11:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181343.1504400; Tue, 09 Dec 2025 10:11:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSuh5-0005QC-Vn; Tue, 09 Dec 2025 10:11:43 +0000
Received: by outflank-mailman (input) for mailman id 1181343;
 Tue, 09 Dec 2025 10:11:42 +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
 <SRS0=/rha=6P=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vSuh4-0005Q6-ES
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 10:11:42 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7484683d-d4e7-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 11:11:40 +0100 (CET)
Received: from DB8PR04CA0001.eurprd04.prod.outlook.com (2603:10a6:10:110::11)
 by VE1PR08MB5677.eurprd08.prod.outlook.com (2603:10a6:800:1ab::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.6; Tue, 9 Dec
 2025 10:11:32 +0000
Received: from DB5PEPF00014B9E.eurprd02.prod.outlook.com
 (2603:10a6:10:110:cafe::d8) by DB8PR04CA0001.outlook.office365.com
 (2603:10a6:10:110::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Tue,
 9 Dec 2025 10:11:32 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B9E.mail.protection.outlook.com (10.167.8.171) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Tue, 9 Dec 2025 10:11:31 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DB8PR08MB5307.eurprd08.prod.outlook.com (2603:10a6:10:114::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.6; Tue, 9 Dec
 2025 10:10:27 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d%4]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 10:10:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7484683d-d4e7-11f0-b15b-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=ChRjUdj9IsJFySsK/IPpFnAisGWBwXnHoOkagBLe1nBSwAfG5xhLY5YoTuJNZ14wL584kuCW2deEpUF37mpywOrWm+G16iO62UNDsJ3PuLnVVAXSKVreQLHutDVSiJdp5gXR3+xxil4yomzHYSy9j6qTCpkyDDUQXygBYWVsocea3lBbooSrqcHqSyarLpntlRkp3UZSmisib+cq6xRyRpaoEgwX2J50mhzNEEcGj3CKfQXlEfWTIDMaA7Fh/QByTxUQ0EOxYKCgqOIAkJMxCpaLlehICJcEdtcxLHqLuzLzcQKtiTEaffxfErjIcWRrJ9mx4SMmoGj7SLmme8Op7Q==
ARC-Message-Signature: i=2; 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=et+xaRsON/DM4yFtAoptGyCY3LG1XOk2ch8yrqMsHrQ=;
 b=LkmZQRDEh0iKAQ4/bH5AjsfFWPJ+TxSPh+SzZrqY8Xqa9RQPQ5wwYqgmlr3ddtnU9hdD/OBN0zCQT06JItGbVRlruNUd4uFQFna03GGm7an8nF4PPwy2eUDiQZ+GOT5IV/MZodPRHp+UyS7vSVbTsa3W1nah0Zt1/BTPCcvQ6gpDtLBsjrMDJyKUOdRlqa3YzS57q7O1BmWxXOxps+BwADQGF2MABp+OuOeW3moF/piAfoR0LHiQc8K1oAbdLyMkQq5+cvBKBwS5tBzdCKw9Q310HJnOnmEgXLLV0p0eCD7vtbMvzfkV/FiuS/O+98xsfkZkPDnL77lD2HF0DUM62Q==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=et+xaRsON/DM4yFtAoptGyCY3LG1XOk2ch8yrqMsHrQ=;
 b=eOT/gNFA215I3nGBH7m6uygEip33mLZ7Ob+3jnL8RNUPz2IDojNLBEcFoc3PJOHSnCrPOC7gM8YAy6CpRNS2lNR7MDU/tlleqZ39SSFQM265SCR7xHzT7UtuGIrY80T8GIQYMNyWwVZf3PV01hejetate38aPnq6uyYT5yBBqM4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YB20o/HhlZCpzzZ5Az9QAA3aIoZj7PpRBJ5urnEg1/wi7tHlWQt8pUawKi35LorBtGDlzTtCm/vzCG7pAuhEvNgr0oKrCM//WoInu4ANIJyY2rHx2xMNVKuL5oLz/SEfZVPY7Jf1CVozZQbz4Hp3hlbDXEn0vW5HFCDRVmDdij/rQ7rlYGI/wOfqMDChbu2sDO+1fmvKmMYYgfDaL8gHaZ0vUxO2xZZoOFdeyH24RBMEy20Li2s1alo1Zdp7t5Q2GBOppdAiOka/7mWRnoOyO9oK/R1hyWtinFZJVdmDgI0rH5C+106BoFhdQe6tQAgDTjlHoX6Yq1HamgXcYr0mtw==
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=et+xaRsON/DM4yFtAoptGyCY3LG1XOk2ch8yrqMsHrQ=;
 b=GWIC4k174aKm3Jtpd3ip92Dne/6C9W8a3BN5kANWLQ+O8prHMSZRMndjSAgzpvagnUaaAhgDg6lzEBeNEhecKp8w3rjNNoAab6xJAFI+29Ex1O73xUUzUm4qDSgj9Tq+FYdl25skNtyQCQDIh9a9tqqD/5Pcf7eSaXNAWqMqa2XMkq6Ym9dWNFwiCD5Y+W80SI1/U/NYvVyuaHHeWgxKfiiXkoiYzq+9+IE5JpB57ZglvTH0PJjs/4JWQ78H0AXHmoVFvendPmKjYs/UW1wn86daVJ0tYRSgulW7WKL4ZqVnLaeWjEhtGSIIsdo1+UGkEZkV1yh4vJ7kH+JJK4NoOw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=et+xaRsON/DM4yFtAoptGyCY3LG1XOk2ch8yrqMsHrQ=;
 b=eOT/gNFA215I3nGBH7m6uygEip33mLZ7Ob+3jnL8RNUPz2IDojNLBEcFoc3PJOHSnCrPOC7gM8YAy6CpRNS2lNR7MDU/tlleqZ39SSFQM265SCR7xHzT7UtuGIrY80T8GIQYMNyWwVZf3PV01hejetate38aPnq6uyYT5yBBqM4=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH v1 03/12] xen/arm: ffa: Fix is_64bit init
Thread-Topic: [PATCH v1 03/12] xen/arm: ffa: Fix is_64bit init
Thread-Index: AQHcZdM4PJInZ7Ib+k6qqA68hny4k7UZGx8AgAABQgA=
Date: Tue, 9 Dec 2025 10:10:27 +0000
Message-ID: <C518918D-1CAF-49D6-BC94-CACEF409E46A@arm.com>
References: <cover.1764930353.git.bertrand.marquis@arm.com>
 <697ab9880767b75c9964ae900a43fd4e065fc502.1764930353.git.bertrand.marquis@arm.com>
 <CAHUa44E+Cgs6WeuSyYi=r1BCzaYN+f9MBoSudyLxkU2LeGxzXg@mail.gmail.com>
In-Reply-To:
 <CAHUa44E+Cgs6WeuSyYi=r1BCzaYN+f9MBoSudyLxkU2LeGxzXg@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.200.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DB8PR08MB5307:EE_|DB5PEPF00014B9E:EE_|VE1PR08MB5677:EE_
X-MS-Office365-Filtering-Correlation-Id: f6120fff-ba32-4b8e-dade-08de370b53a1
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?cjhYNjFOZlhWSEhwaFh4dy9iTGRrVGtoVzREVmUyUTdmL2JWbXBlQ2dJTnc1?=
 =?utf-8?B?eXJZblZaWmtJejRjK2dHS1pZcTZDdGRpTlZZRFBUZzk1M0J6S1BnRVNqK0xS?=
 =?utf-8?B?SGpJNUt0NWZuaW1ZQjlYRjdvYW9Yc0hJWjIwZkJ6Q05jTEc5clBLTjVIeFcv?=
 =?utf-8?B?dm9VWXBPcEU4THFFY0lLODVJWWROVkpOUW1QbFQ1c3pmMmpmWHFvR3hmNWNS?=
 =?utf-8?B?UUNVVDh6QXNZeFhwcVpZSGdGbExGbFZ1eW8wSjFNUUpyMUp6Vm53R0JGMm1E?=
 =?utf-8?B?L1kwRCswbUpNb1BsZFNLNllqSHVyNG9qUzJpSkZGQ0lRN1dqRit5MndJbUc3?=
 =?utf-8?B?Q0hlbE5XRVFaK0hGTVhsWUgzRHFFSmJIeEJ4K3ZDMWR1Vm5uazVrNlExTy9a?=
 =?utf-8?B?ZDVRa3BSOE1QcHFuZklkNlF1aTB3VFFxaFlVRy8vekkrSjVNQ05vTWk0dnd0?=
 =?utf-8?B?bE9IUWdVWC9pR1owOG9VOFZUUWlJR0lLUy9XcVFnWVNwb25JbFFyTmxQM2Yv?=
 =?utf-8?B?QWxUUDV3QTFhWGFoYVpmRDNOQlFwemdFNkZtek92QTc3bm8xRzJWcmh5Qlha?=
 =?utf-8?B?eFFxVHJmRDdGSEpOdmh3SVQ2SlIvWGpkVmRpVXpTVXhLUk1tV3NKenBsZVJG?=
 =?utf-8?B?azJCa3JaUG1NbVJReFRNYVFRbEZKclVMclhqNDUzRmN2ODBsb1NzSmhGMWpQ?=
 =?utf-8?B?T21lc3kxTUVQamk1RW9GY3hvZkNkcXVVSE9acHNSaTdzZTFQMVdrWDd3Rm0v?=
 =?utf-8?B?RHZBSTFmNXhubzVEMEFHcTlBREdOU0Y3ZmpwOEd5dWhCb3ZIMmZlTklURk5i?=
 =?utf-8?B?b1cyNzNXL0I3N2xBRGFQOEZUREVOR0gvT2g0bThRYzdMSXkrcEQvdjcraTRV?=
 =?utf-8?B?eVYybGhaY3lEWmVJbFg0VDE3eVFjL2QwM2RxWktCVUVMNzNJTkVkMnd5Yyth?=
 =?utf-8?B?QTV6eVBBSE5uU21PdjVQd3h1SXg4bnUrYlc0WTBIdjBWR0RxSjZLTjRBSEhw?=
 =?utf-8?B?dU42RUp5UitSZVVpZHVxdnhsR1dvV2pXTUdTSlNsYThueTUzNDBVSWo5SWtL?=
 =?utf-8?B?eFJoSitNQ2kybC9WdGdJdnQyQWpZSlU4KzVqcHVBUmd1ZGdVZkFjeGwzLzFJ?=
 =?utf-8?B?TGpiNk4rQWgxVWhGQm5pZ250R3BSYjd5U0VnNHE1QlVaMnBRMlVrb3JxR292?=
 =?utf-8?B?Y0lCak4wd2RyVVZReUphaFdRWFVoYTlSa2s5MURkcjNZd1VMRGp6UjIxRG5D?=
 =?utf-8?B?UlhhbWxvTW5QM2pBMzBVQjBtQzR1c1VjT2x2Y3kvcitZc0JsMVRvSEIvYzFs?=
 =?utf-8?B?d0hqSG9CVVN3NzQ1OEUrUHR0SkJtUEUxMk9Geit2OVZ0UUFlc2tMcTZOb0ZY?=
 =?utf-8?B?cWdGU0lQUDU0a3NMSW9SYzdSOEtwVldaditWZ0t3d3R4U1g1Vit1SURIMTdX?=
 =?utf-8?B?cFcvcXh3Q1hFY2FXSTI3UE0xdHgzd1g5UlVLSllaakIrd05oMWdob01wTXdR?=
 =?utf-8?B?RTVWRm10T0pTZytuc1dKa2dtOGNmYXkxd1JjMk9sRHlxazB2aG9rbktWUkJi?=
 =?utf-8?B?cHFHbHNJbHlBcVVob01Ic2MyMjdJOXZaQUduVmhFNFFvT2U3NDBTaG9zMmZ5?=
 =?utf-8?B?Ry90S3I0TkZkTjcrWUZtUm1adGFvNnNPeE1BV3ZOQWI3dWIyWDVrUHAyWldZ?=
 =?utf-8?B?YUIyVmVja1ZMSlBGSDBJRzNVWVBlVkZkN2pDbUhpbWJiV2xpb0gvaFNmd0xx?=
 =?utf-8?B?eXZiMmo5RW1PcjFUaFpESnd0RXNGMEkwU0psUzZtMU5TOUtUcXFuNEpUZkFh?=
 =?utf-8?B?SlcxZTc0ZkpZVEwyNFRLNXlIRmp4NUxVZThrUi9UL09oQlpHckR3dXU3RFVD?=
 =?utf-8?B?NnpReGtRMnpSS1REZWdwYTEyaE5YVWVKSkluUEI1SGdyYVc3L2dPQktMY2xz?=
 =?utf-8?B?RkxUSjhScE5XZW5PNHNxcmUxMkpIWkhpWVdQcE5hVkFyT2loN3VZbTNLVzN5?=
 =?utf-8?B?QkZ3TGtKWHYxeWlMMzNidEpxcUl1bXFKMnkzM1lwMlRhSUpEbjkxZHh3Z1hz?=
 =?utf-8?Q?4B9HRh?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <0BD59F1DA25F4F43A7218E6AB0819593@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB5307
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B9E.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	4dfb9c7a-2408-4a6c-76e7-08de370b2d0c
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|36860700013|376014|35042699022|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OHhpdHFGZjIyc0RjT1c0aU9zd25jUE1wWlZid014Yzk2SEQ2cXlwY1FwMW54?=
 =?utf-8?B?K3p1c1ptSFNVczlOUnc0NE83MDEwd0RHUjluVmt1WGIwMU5NTDFTci9NOWRw?=
 =?utf-8?B?RVRqK3hZQTJqcjhrN29VWWdmR0RaNHFjK0tpbHA1aXFFdzhHVFgvNzBBU2I4?=
 =?utf-8?B?ZUtDdnpDK2w5ZXdrMzNibCtxR3FRY0dyVFBJUEJWb29JTEhzd0tTVlg1VkNq?=
 =?utf-8?B?UVZZYjR0RHRoZ1pMSVJVU2lNRzZtbzBxRTdFb2VWbHJlMS9yZ3Y1dWlxZk44?=
 =?utf-8?B?VDk2eDJraGJXNEtwL21YUVZEWFBianZqaEhWTDF6bDZyWENpRXUvWURCNU4r?=
 =?utf-8?B?c2M1NG1zN3pCblVXS3EwWE5WOVAxK09oMnZVQkdxczJYUFlmMGM5Wml0OHk0?=
 =?utf-8?B?WHZDbCtxeW5uYld4TEtyNGdqeWVZcktPLzIrWkdKWEUrVmRob0hVZUFrNVFo?=
 =?utf-8?B?a1FUSTNoMW41TWpSVmJ0T1hxL0c2a1VLbWhqQVBHQXAzUlF6TndFcEo2bU45?=
 =?utf-8?B?RTJ6NW00NUdrcFIrVWJsdE84emhpcTVtcHJicGhhNTNHUzVQOWVsUklMMjN5?=
 =?utf-8?B?SjhuTGZiWW9YV3VjendZUUFCY1R3UzU1dVMrR3FUVHo5MkdJWllrUWRIdmI5?=
 =?utf-8?B?U2l4RW0wcnJhNVBtdHE3SlFuSnhzbEZZcjQxamkxVXlwTTJMYXA2RDd0aG8x?=
 =?utf-8?B?NkEwUm5GSGR3a255aWJKd0VCd3JwYVh3ajFOZ1RybE9GeDJxbkJRT25SblE0?=
 =?utf-8?B?QlM5emE2dmd4U3YwbjFSeko1d0hLWnFjWVNMTVdqVlpNMmIrWjVIdDFnWDFt?=
 =?utf-8?B?L2kzM2N6a0R5eWUwN05WZVFYS3Y0Rmc5OU1uMzF5TXppT3E1dUN5MXhwNGRL?=
 =?utf-8?B?V0ZqdmlsWU92SDUwS3ZvWG5UcTdoS1l3clZhNXVacWV1RG5OV0FFWkg3RGh1?=
 =?utf-8?B?VnlkNVNSdjYrbTViODNlaHdiMms3VlR3WE5rdFNUZnJqK294L1J1K0J5TmNC?=
 =?utf-8?B?UHBYOGIxMENrY2RlOGY2YzRaaDdDcml2N2NPNnJSWWxGN3gzd05hZlViY0Y2?=
 =?utf-8?B?TlA3Nlh4U3d3WEVhL0hvUEhQU2RZSU5xdTJDajdjUGpxcWhaejVlQW9FaXp0?=
 =?utf-8?B?c1cvQkhnQ05nblBKQUc0WC9xMnZrUUdPV0YzUHZPd0Y0ZmhkdXF3M1ArTDFh?=
 =?utf-8?B?elc3K1NnbmVmV0lXd1N4akg0Y05oM0hQSUlOcWc2SExkZmFFaC9vTG1hUy9q?=
 =?utf-8?B?TE9MY0llNk9zTmNDZXdxR0ZlR3ExZzlZaWNYa3k0TXRyYXRXMnY4ZkhTK2RT?=
 =?utf-8?B?SVVCQUErVzR4VTZMQTdCanpWQXR6UityZUdGbTNRWHI2NW8vTmFTQWE4UzNz?=
 =?utf-8?B?YVBHaGZuQTgzVFpFUWhFNDgvcHpKRElqTm96TVRmQnFNZG9lVzBlaXVSVTJG?=
 =?utf-8?B?OCtMZkkySGFOSUJNWklDVDdhRHhUWHgzWkE4QUZmUFA3b0o4QUtPWGNiQ2Nw?=
 =?utf-8?B?MHNTSFY0Tzc1ZXNFSktMc2xQS2laU2NEL1hZbzUxM1BYcGlHL0VuWlZLNnpT?=
 =?utf-8?B?cys0bE9yc0oyMGtqaW0zRTlPeE84YUdTQkM1WFpuQzQ1V1AxK2NaMW13Zit6?=
 =?utf-8?B?RWp3VUs2cDRtb1pkSWovb29uUXhZWUY3ckp3QXE1c2NmdzBMYVpoQWF4alVx?=
 =?utf-8?B?Z2Z5a1hySDFNMFZPOTU1SkY4UU9KcXFTQkpqeFVqQUJmc0F4c3I3aUZtY09R?=
 =?utf-8?B?MW5BM0xRdHFuM3B4QjhGa1hCd2tVbU1QZ1RZYmxBY0FNY1lDNXh0aVl1NkdY?=
 =?utf-8?B?dFhMWmVxQkc4b29GcE02dHZheUNrUXgrSHJrNi9ONEpxZzhCS0hnNUFuZmx2?=
 =?utf-8?B?SjIveDlSRmljODdKSm92cUZlMlEzV2xkcTNQajc1NWl5VlZBaDVCYTZwQXhr?=
 =?utf-8?B?d0tMMFVNMGZwUTJGSjA4VTdRUEMwLzk3K3lkU21Qb1N0NFhUU1Ftd2I1V2Jr?=
 =?utf-8?B?dkJhb2d0YmR5cTE1b1dmWG9KSDlWTVNSaHBhN04zd0xNc0ZGcHhsanBIMGl5?=
 =?utf-8?B?djRRZi9Yc29ZL1ppeXZsOXlRSEpwS0oxemdIRWlPTWZzM1QrT2xMTGRaWmQ3?=
 =?utf-8?Q?B0S4=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(36860700013)(376014)(35042699022)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 10:11:31.9158
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f6120fff-ba32-4b8e-dade-08de370b53a1
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B9E.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5677

SGkgSmVucywNCg0KPiBPbiA5IERlYyAyMDI1LCBhdCAxMDowNSwgSmVucyBXaWtsYW5kZXIgPGpl
bnMud2lrbGFuZGVyQGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gSGkgQmVydHJhbmQsDQo+IA0K
PiBPbiBGcmksIERlYyA1LCAyMDI1IGF0IDExOjM34oCvQU0gQmVydHJhbmQgTWFycXVpcw0KPiA8
YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPiB3cm90ZToNCj4+IA0KPj4gaXNfNjRiaXRfZG9tYWlu
KGQpIGlzIG5vdCBzZXQgZHVyaW5nIGRvbWFpbl9pbml0IGFzIHRoZSBkb21haW4gZmllbGQgaXMN
Cj4+IG9ubHkgc2V0IHdoZW4gbG9hZGluZyB0aGUgZG9tYWluIGltYWdlIHdoaWNoIGlzIGRvbmUg
YWZ0ZXIgZXhlY3V0aW5nDQo+PiBkb21haW5faW5pdC4NCj4+IA0KPj4gRml4IHRoZSBpbXBsZW1l
bnRhdGlvbiB0byBzZXQgaXNfNjRiaXQgd2hlbiB2ZXJzaW9uIGdldHMgbmVnb3RpYXRlZC4NCj4+
IGlzXzY0Yml0IGlzIG9ubHkgdXNlZCBkdXJpbmcgcGFydGl0aW9uX2luZm9fZ2V0IG9uY2UgYSBk
b21haW4gaXMgYWRkZWQNCj4+IGluIHRoZSBsaXN0IG9mIGRvbWFpbnMgaGF2aW5nIGZmYSBzdXBw
b3J0LiBJdCBtdXN0IG9ubHkgYmUgYWNjZXNzZWQgd2hlbg0KPj4gdGhlIHJ3bG9jayBpcyB0YWtl
biAod2hpY2ggaXMgdGhlIGNhc2UpLg0KPj4gDQo+PiBpc182NGJpdCBtdXN0IG5vdCBiZSB1c2Vk
IHdpdGhvdXQgdGhlIHJ3bG9jayB0YWtlbiBhbmQgb3RoZXIgcGxhY2VzIGluDQo+PiB0aGUgY29k
ZSBuZWVkaW5nIHRvIHRlc3QgNjRiaXQgc3VwcG9ydCBvZiB0aGUgY3VycmVudCBkb21haW4gd2ls
bCBoYXZlDQo+PiB0byB1c2UgY2FsbHMgdG8gaXNfNjRiaXRfZG9tYWluIGluc3RlYWQgb2YgdGhl
IGZpZWxkIGZyb20gbm93IG9uLg0KPj4gDQo+PiBGaXhlczogMDlhMjAxNjA1Zjk5ICgieGVuL2Fy
bTogZmZhOiBJbnRyb2R1Y2UgVk0gdG8gVk0gc3VwcG9ydCIpDQo+PiBTaWduZWQtb2ZmLWJ5OiBC
ZXJ0cmFuZCBNYXJxdWlzIDxiZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+DQo+PiAtLS0NCj4+IENo
YW5nZXMgaW4gdjE6DQo+PiAtIHBhdGNoIGludHJvZHVjZWQNCj4+IC0tLQ0KPj4geGVuL2FyY2gv
YXJtL3RlZS9mZmEuYyAgICAgICAgIHwgOSArKysrKysrKy0NCj4+IHhlbi9hcmNoL2FybS90ZWUv
ZmZhX3ByaXZhdGUuaCB8IDUgKysrKysNCj4+IDIgZmlsZXMgY2hhbmdlZCwgMTMgaW5zZXJ0aW9u
cygrKSwgMSBkZWxldGlvbigtKQ0KPj4gDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3Rl
ZS9mZmEuYyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhLmMNCj4+IGluZGV4IGFhZGQ2YzIxZTdmMi4u
MGY2ZjgzNzM3OGNjIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL3RlZS9mZmEuYw0KPj4g
KysrIGIveGVuL2FyY2gvYXJtL3RlZS9mZmEuYw0KPj4gQEAgLTE4MCw2ICsxODAsMTQgQEAgc3Rh
dGljIGJvb2wgZmZhX25lZ290aWF0ZV92ZXJzaW9uKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdz
KQ0KPj4gICAgICAgICAgICAgZ290byBvdXRfaGFuZGxlZDsNCj4+ICAgICAgICAgfQ0KPj4gDQo+
PiArICAgICAgICAvKg0KPj4gKyAgICAgICAgICogV2UgY2Fubm90IHNldCBpc182NGJpdCBkdXJp
bmcgZG9tYWluIGluaXQgYmVjYXVzZSB0aGUgZmllbGQgaXMgbm90DQo+PiArICAgICAgICAgKiB5
ZXQgaW5pdGlhbGl6ZWQuDQo+PiArICAgICAgICAgKiBUaGlzIGZpZWxkIGlzIG9ubHkgdXNlZCBk
dXJpbmcgcGFydGluZm9fZ2V0IHdpdGggdGhlIHJ3bG9jayB0YWtlbg0KPj4gKyAgICAgICAgICog
c28gdGhlcmUgaXMgbm8gb3JkZXJpbmcgaXNzdWUgd2l0aCBndWVzdF92ZXJzLg0KPj4gKyAgICAg
ICAgICovDQo+PiArICAgICAgICBjdHgtPmlzXzY0Yml0ID0gaXNfNjRiaXRfZG9tYWluKGQpOw0K
PiANCj4gVGhpcyBzaG91bGQgb25seSBiZSBhc3NpZ25lZCB1bmRlciB0aGUgcndsb2NrLiBCdXQg
ZG8gd2UgbmVlZCB0aGUNCj4gaXNfNjRiaXQgZmllbGQgYXQgYWxsPyBXaHkgY2FuJ3Qgd2UgYWx3
YXlzIHVzZSBpc182NGJpdF9kb21haW4oKQ0KPiBpbnN0ZWFkPw0KDQpBcyB3ZSB0YWtlIGl0IGFm
dGVyIHdoZW4gbmVlZGVkLCBzZXR0aW5nIGl0IGhlcmUgc2hvdWxkIGJlIG9rIGJ1dCBpIGNhbiBt
b3ZlIHRoaXMNCmluc2lkZSB0aGUgcndsb2NrIHNlY3Rpb24gdG8gYmUgbW9yZSBjb2hlcmVudC4N
Cg0KVGhlIGZpZWxkIGlzIG5lZWRlZCB3aGVuIGNyZWF0aW5nIHRoZSBsaXN0IG9mIHBhcnRpdGlv
bnMuIFRvIHVzZSBpc182NGJpdF9kb21haW4sIEkNCndvdWxkIHRvIGdldCBhY2Nlc3MgdG8gdGhl
IGZvcmVpZ24gZG9tYWluIGRlc2NyaXB0aW9uIHdoaWNoIGkgdHJ5IHRvIHByZXZlbnQgdG8gbm90
DQpjcmVhdGUgYSB3YXkgZm9yIGEgZ3Vlc3QgdG8gYmxvY2sgb3RoZXIgZ3Vlc3RzIGJ5IGRvaW5n
IHBhcnRpbmZvX2dldC4gVGhpcyBpcyB3aHkNCmkgc3RvcmUgdGhlIGluZm9ybWF0aW9uIGkgbmVl
ZCBmb3IgZm9yZWlnbiBndWVzdHMgaW4gdGhlIGN0eCBpbnN0ZWFkIG9mIHVzaW5nIFJDVQ0KdG8g
Z2V0IGFjY2VzcyB0byB0aGUgZG9tYWluIGRlc2NyaXB0b3IuDQoNCkNoZWVycw0KQmVydHJhbmQN
Cg0KPiANCj4gQ2hlZXJzLA0KPiBKZW5zDQo+IA0KPj4gKw0KPj4gICAgICAgICAvKg0KPj4gICAg
ICAgICAgKiBBIHN1Y2Nlc3NmdWwgRkZBX1ZFUlNJT04gY2FsbCBkb2VzIG5vdCBmcmVlemUgbmVn
b3RpYXRpb24uIEd1ZXN0cw0KPj4gICAgICAgICAgKiBhcmUgYWxsb3dlZCB0byBpc3N1ZSBtdWx0
aXBsZSBGRkFfVkVSU0lPTiBhdHRlbXB0cyAoZS5nLiBwcm9iaW5nDQo+PiBAQCAtNDMzLDcgKzQ0
MSw2IEBAIHN0YXRpYyBpbnQgZmZhX2RvbWFpbl9pbml0KHN0cnVjdCBkb21haW4gKmQpDQo+PiAN
Cj4+ICAgICBjdHgtPmZmYV9pZCA9IGZmYV9nZXRfdm1faWQoZCk7DQo+PiAgICAgY3R4LT5udW1f
dmNwdXMgPSBkLT5tYXhfdmNwdXM7DQo+PiAtICAgIGN0eC0+aXNfNjRiaXQgPSBpc182NGJpdF9k
b21haW4oZCk7DQo+PiANCj4+ICAgICAvKg0KPj4gICAgICAqIGZmYV9kb21haW5fdGVhcmRvd24o
KSB3aWxsIGJlIGNhbGxlZCBpZiBmZmFfZG9tYWluX2luaXQoKSByZXR1cm5zIGFuDQo+PiBkaWZm
IC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RlZS9mZmFfcHJpdmF0ZS5oIGIveGVuL2FyY2gvYXJtL3Rl
ZS9mZmFfcHJpdmF0ZS5oDQo+PiBpbmRleCA0ZTRhYzdmZDdiYzQuLjJkYWE0NTg5YTkzMCAxMDA2
NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUuaA0KPj4gKysrIGIveGVu
L2FyY2gvYXJtL3RlZS9mZmFfcHJpdmF0ZS5oDQo+PiBAQCAtMzQ0LDYgKzM0NCwxMSBAQCBzdHJ1
Y3QgZmZhX2N0eCB7DQo+PiAgICAgLyogRkYtQSBFbmRwb2ludCBJRCAqLw0KPj4gICAgIHVpbnQx
Nl90IGZmYV9pZDsNCj4+ICAgICB1aW50MTZfdCBudW1fdmNwdXM7DQo+PiArICAgIC8qDQo+PiAr
ICAgICAqIE11c3Qgb25seSBiZSBhY2Nlc3NlZCB3aXRoIHRoZSBmZmFfY3R4X2xpc3Rfcndsb2Nr
IHRha2VuIGFzIGl0IHNldA0KPj4gKyAgICAgKiB3aGVuIGd1ZXN0X3ZlcnMgaXMgc2V0IGFuZCBv
dGhlciBhY2Nlc3NlcyBjb3VsZCBzZWUgYSBwYXJ0aWFsbHkgc2V0DQo+PiArICAgICAqIHZhbHVl
Lg0KPj4gKyAgICAgKi8NCj4+ICAgICBib29sIGlzXzY0Yml0Ow0KPj4gDQo+PiAgICAgLyoNCj4+
IC0tDQo+PiAyLjUxLjINCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 10:11:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 10:11:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181344.1504410 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSuh7-0005eT-9T; Tue, 09 Dec 2025 10:11:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181344.1504410; Tue, 09 Dec 2025 10:11:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSuh7-0005eM-62; Tue, 09 Dec 2025 10:11:45 +0000
Received: by outflank-mailman (input) for mailman id 1181344;
 Tue, 09 Dec 2025 10:11:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=sSjK=6P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSuh6-0005QX-DI
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 10:11:44 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 754829a2-d4e7-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 11:11:42 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-477563e28a3so39229535e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 02:11:42 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a7d6eb1f1sm31214155e9.2.2025.12.09.02.11.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 02:11:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 754829a2-d4e7-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765275101; x=1765879901; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=0O+eWn3j79aksQzPv/rMROb15OmEt6zdxjgmz9ezRdg=;
        b=SXWT2nvum7ASTf3w1TJqVxZle3ypEQEtLO/jcDpa2bYjOJxIPA5jb6EOdj4rBlZU8m
         RVm6RGWk7nuOCTzRqcBdg8IhHzMI1rba4XbbsJL175AcefCn+ba8z5x3vLpcxnoblslN
         X7ldXRipalO20l7xTY401MofBVuFtSvqcruo+AS3dPEW3MPVT0WVE7psvCd+NwdKbjKv
         FAbAQfoZKu/kSTaCixXpuRvPd6U+tLdhv5QKY/mCeYrGYhbF8wQKp3tpDSgCHohLokDg
         SaK3/v1VxMXUP7YacbDz8NIlDdy21LLdOqNCOIR4RpkYG2pi84R+QroTEWg1dxUn/tg0
         /c3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765275101; x=1765879901;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=0O+eWn3j79aksQzPv/rMROb15OmEt6zdxjgmz9ezRdg=;
        b=HM1Ds0JqRJ/7DcaVDzuFGG1DRNp4pGu48SjKwyBrIimfKIQQ3/4SvsvY6pKTPcWJcT
         Y+to97AbpJwysjn3jqEMjbJtgmydRPzTUlU+whcTKu8HZFvD+8hrxeeoGT4P3qeDTUPj
         cyYp+CpG2hnj+JsUNsn1VgwZcVdw2ywMfbXPparwC6QnrUYI9QPcafiiivRfx0xviMKD
         SbX7ubSDgFIluyAUSDlM+oapJAZjAUuJosCkBijxlFhOXC/tt4NOscwcZ5fJ0xFwD/YH
         X+5zDBPcFR1T9AQzzSiMCiTCdAnTresFHUVxNTUkkQBu1CE3FNwrNcOqQmHW5uWTF9U1
         E1Mg==
X-Gm-Message-State: AOJu0YwKBYQ39UOjCwrOgwA3GcnaMi88o9e9bkrrVF0P5Z8yRKoOTQsl
	gmWTwJxBQqgeZj60o2jJ4W1yHquUTEMY0G4orhJD1Vx4O75rNZh3m25gXUOLFjNoSN7Gppif7ur
	7w24=
X-Gm-Gg: ASbGncufvNINBtzAKkxJZUMQI7wnGn0OIZC67hJnhqintwldelsb9/m3zOrJvSuxw18
	DWPaAYis5i1SBzW2AEaYYCEqwpd6unvRMG6eZkFXzvhAXAgsLoJ4zOWhuxWrv6PaXJFBfPu2yFj
	KFazt9MlbBBRvhquXkWWRaxPuj24vw/TnZZZ22aQmm4V5RdIpjLDfkTyoL2qTzd6ORSRtqA/Qeu
	mBcEG3KU59UuxYE3Oi+AnHM0v0v1SsilWfsSfOVFal26GXhcR0y0QQLLolZ8JVBOdZyUP6TDAoD
	EfTXtXcOdZ22NT4RpbdCb24wGrWu3DqB9POSl7jXSBExSprGraDFQ7zuQGdlH9x8Z267AHt/wIT
	NJEJ9iep7HfAF3AGXgIOok0Zi99sHf2fsV80xQoLzLxsQ2ALUyrVdOKbuRhjzjpkjEcRU4AB8Gq
	ccxvQHCx4f1hTL6kQxpLm+2HF5CR3mOkw18TGJhfehSt4C8rm1UB/WUJ5bX3DhTOoSTVewWjSeF
	SQB9TPILtJWfw==
X-Google-Smtp-Source: AGHT+IHBEruT+4dgX6E3xfLYGXAeUGhAOpFYLd3NfOG2PCAdMFbbmxwnyJm0bH1HQQZ/5gj7Tc6J1Q==
X-Received: by 2002:a05:600c:1da1:b0:479:3a8e:e490 with SMTP id 5b1f17b1804b1-47a7fa606eemr8656305e9.18.1765275101329;
        Tue, 09 Dec 2025 02:11:41 -0800 (PST)
Message-ID: <7e550d03-13c3-4607-bfa5-1a4bd57ecef6@suse.com>
Date: Tue, 9 Dec 2025 11:11:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2] symbols: check table sizes don't change between linking
 passes 2 and 3
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

While sizes (and possibly positions) of the symbol table related symbols
(and as a result other ones) are expected to change from linking pass 1
to pass 2, no such change should happen anymore from pass 2 to pass 3, or
else the internally recorded symbol table wouldn't represent the ELF or
PE/COFF ones.

For comparing to be actually useful, i.e. most notably also covering the
last of the arrays emitted, symbol sizes need establishing. Make use of
the xen/linkage.h machinery to achieve that.

Suggested-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Likely other ports also want to add such checking. Really it would be nice
if we could properly abstract out shared parts of the linking steps.

RFC: I'm all ears towards improvement suggestions in the temporary helper
     file handling of compare-symbol-tables. Or ideally some approach to
     avoid the use of a helper file altogether.
---
v2: Actually compare the two files passed into compare-symbol-tables,
    rather than the 1st one with itself.
v1': Re-base over the re-numbering of intermediate files. Integrate into
     series.

--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -148,6 +148,7 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort $(syms-warn-dup-y) \
 		> $(dot-target).2.S
 	$(MAKE) $(build)=$(@D) $(dot-target).2.o
+	$(call compare-symbol-tables, $(dot-target).1.o, $(dot-target).2.o)
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
 	    $(orphan-handling-y) $(dot-target).2.o -o $@
 	$(NM) -pa --format=sysv $@ \
@@ -230,6 +231,8 @@ endif
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).2s.S
 	$(MAKE) $(build)=$(@D) .$(@F).2r.o .$(@F).2s.o
+	$(call compare-symbol-tables, $(dot-target).1r.o, $(dot-target).2r.o)
+	$(call compare-symbol-tables, $(dot-target).1s.o, $(dot-target).2s.o)
 	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
 	      $(dot-target).2r.o $(dot-target).2s.o $(orphan-handling-y) \
 	      $(note_file_option) -o $@
--- a/xen/scripts/Kbuild.include
+++ b/xen/scripts/Kbuild.include
@@ -56,6 +56,19 @@ define filechk
 	fi
 endef
 
+###
+# Compare the symbol tables of two object files.  As diff's -I option isn't
+# standardized, the name difference of the two object files needs abstracting
+# out.
+define compare-symbol-tables
+    ln -f $(1) $(@D)/.cst.$$$$; \
+    $(OBJDUMP) -t $(@D)/.cst.$$$$ > $(1).sym; \
+    ln -f $(2) $(@D)/.cst.$$$$; \
+    $(OBJDUMP) -t $(@D)/.cst.$$$$ > $(2).sym; \
+    rm -f $(@D)/.cst.$$$$
+    diff -u $(1).sym $(2).sym
+endef
+
 # as-insn: Check whether assembler supports an instruction.
 # Usage: cflags-y += $(call as-insn,CC FLAGS,"insn",option-yes,option-no)
 as-insn = $(if $(shell echo 'void _(void) { asm volatile ( $(2) ); }' \
--- a/xen/tools/symbols.c
+++ b/xen/tools/symbols.c
@@ -252,17 +252,26 @@ static void read_map(FILE *in)
 	}
 }
 
-static void output_label(char *label)
+static void output_label(const char *label, bool keep)
 {
-	if (symbol_prefix_char)
-		printf(".globl %c%s\n", symbol_prefix_char, label);
-	else
-		printf(".globl %s\n", label);
-	printf("\tALGN\n");
-	if (symbol_prefix_char)
-		printf("%c%s:\n", symbol_prefix_char, label);
-	else
-		printf("%s:\n", label);
+	static bool pending;
+
+	if (pending && !keep) {
+		printf("END(CURRENT)\n");
+		printf("#undef CURRENT\n\n");
+	}
+
+	pending = label;
+	if (!label)
+		return;
+
+	if (symbol_prefix_char) {
+		printf("DATA(%c%s, ALGN)\n", symbol_prefix_char, label);
+		printf("#define CURRENT %c%s\n", symbol_prefix_char, label);
+	} else {
+		printf("DATA(%s, ALGN)\n", label);
+		printf("#define CURRENT %s\n", label);
+	}
 }
 
 /* uncompress a compressed symbol. When this function is called, the best table
@@ -331,22 +340,22 @@ static void write_src(void)
 
 		return;
 	}
-	printf("#include <xen/config.h>\n");
+	printf("#include <xen/linkage.h>\n");
 	printf("#if BITS_PER_LONG == 64 && !defined(SYMBOLS_ORIGIN)\n");
 	printf("#define PTR .quad\n");
-	printf("#define ALGN .balign 8\n");
+	printf("#define ALGN 8\n");
 	printf("#else\n");
 	printf("#define PTR .long\n");
-	printf("#define ALGN .balign 4\n");
+	printf("#define ALGN 4\n");
 	printf("#endif\n");
 
 	printf("\t.section .rodata, \"a\"\n");
 
 	printf("#ifndef SYMBOLS_ORIGIN\n");
 	printf("#define SYMBOLS_ORIGIN 0\n");
-	output_label("symbols_addresses");
+	output_label("symbols_addresses", false);
 	printf("#else\n");
-	output_label("symbols_offsets");
+	output_label("symbols_offsets", true);
 	printf("#endif\n");
 	for (i = 0, ends = 0; i < table_cnt; i++) {
 		printf("\tPTR\t%#llx - SYMBOLS_ORIGIN\n", table[i].addr);
@@ -370,17 +379,15 @@ static void write_src(void)
 		printf("\tPTR\t%#llx - SYMBOLS_ORIGIN\n",
 		       table[i].addr + table[i].size);
 	}
-	printf("\n");
 
-	output_label("symbols_num_addrs");
+	output_label("symbols_num_addrs", false);
 	printf("\t.long\t%d\n", table_cnt + ends);
-	printf("\n");
 
 	/* table of offset markers, that give the offset in the compressed stream
 	 * every 256 symbols */
 	markers = malloc(sizeof(*markers) * ((table_cnt + ends + 255) >> 8));
 
-	output_label("symbols_names");
+	output_label("symbols_names", false);
 	for (i = 0, off = 0, ends = 0; i < table_cnt; i++) {
 		if (((i + ends) & 0xFF) == 0)
 			markers[(i + ends) >> 8] = off;
@@ -404,15 +411,12 @@ static void write_src(void)
 		printf("\t.byte 0\n");
 		++off;
 	}
-	printf("\n");
 
-	output_label("symbols_markers");
+	output_label("symbols_markers", false);
 	for (i = 0; i < ((table_cnt + ends + 255) >> 8); i++)
 		printf("\t.long\t%d\n", markers[i]);
-	printf("\n");
 
-
-	output_label("symbols_token_table");
+	output_label("symbols_token_table", false);
 	off = 0;
 	for (i = 0; i < 256; i++) {
 		best_idx[i] = off;
@@ -420,34 +424,27 @@ static void write_src(void)
 		printf("\t.asciz\t\"%s\"\n", buf);
 		off += strlen(buf) + 1;
 	}
-	printf("\n");
 
-	output_label("symbols_token_index");
+	output_label("symbols_token_index", false);
 	for (i = 0; i < 256; i++)
 		printf("\t.short\t%d\n", best_idx[i]);
-	printf("\n");
 
-	if (!sort_by_name) {
-		free(markers);
-		return;
-	}
-
-	output_label("symbols_num_names");
-	printf("\t.long\t%d\n", table_cnt);
-	printf("\n");
-
-	/* Sorted by original symbol names and type. */
-	qsort(table, table_cnt, sizeof(*table), compare_name_orig);
-
-	output_label("symbols_sorted_offsets");
-	/* A fixed sized array with two entries: offset in the
-	 * compressed stream (for symbol name), and offset in
-	 * symbols_addresses (or symbols_offset). */
-	for (i = 0; i < table_cnt; i++) {
-		printf("\t.long %u, %u\n", table[i].stream_offset, table[i].addr_idx);
+	if (sort_by_name) {
+		output_label("symbols_num_names", false);
+		printf("\t.long\t%d\n", table_cnt);
+
+		/* Sorted by original symbol names and type. */
+		qsort(table, table_cnt, sizeof(*table), compare_name_orig);
+
+		/* A fixed sized array with two entries: offset in the
+		 * compressed stream (for symbol name), and offset in
+		 * symbols_addresses (or symbols_offset). */
+		output_label("symbols_sorted_offsets", false);
+		for (i = 0; i < table_cnt; i++)
+			printf("\t.long %u, %u\n", table[i].stream_offset, table[i].addr_idx);
 	}
-	printf("\n");
 
+	output_label(NULL, false);
 	free(markers);
 }
 


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 10:13:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 10:13:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181366.1504419 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSuiT-0006UZ-LA; Tue, 09 Dec 2025 10:13:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181366.1504419; Tue, 09 Dec 2025 10:13:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSuiT-0006US-IZ; Tue, 09 Dec 2025 10:13:09 +0000
Received: by outflank-mailman (input) for mailman id 1181366;
 Tue, 09 Dec 2025 10:13:08 +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 <SRS0=sSjK=6P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSuiS-0006U9-SR
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 10:13:08 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a8833277-d4e7-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 11:13:08 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4779aa4f928so55137125e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 02:13:08 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a7d6a19cesm32792355e9.15.2025.12.09.02.13.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 02:13:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8833277-d4e7-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765275187; x=1765879987; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=WWPJshDJzBEu8qzhwxJvbtNx33wMB0a6dT2VppHZI/c=;
        b=VT5YOqa4gE5p45/wnf+uES+X33pQuDrzM/oQJVTV7HfLhlWV5UQ/S1F1a44XRwiMFK
         MWEuDm2gS/DXBWQGp7JpYkOd4WQFBypLI1ub/wCY/czXRGSmeariRayQ2i6NOaTNNjLe
         YJJHcGZqZEUsHr7w4i1Y0sByQKHpoGcjG3vwL3UQ/+RXfzdmQuO4bQTFloRT+wwZUbNi
         lCQoEFuWNKhfy53GoLnjTtvl95LMY66IwHKmT6EdhWOcG0+iBhd5Fo4D8gox7CzknkAL
         A4BNKw6C4GN4wtgmTcyI6VCbPniBvHm5KcFjx07inphZ0FfY3o2NZV3LbyAHR6PTYNA5
         2law==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765275187; x=1765879987;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=WWPJshDJzBEu8qzhwxJvbtNx33wMB0a6dT2VppHZI/c=;
        b=rwvLmR/Aso4z8M/VBY6Z0e/KLL8xzi3EzXLvOfa10fdO3J9/gSbD13cJO1C4Fp80LB
         jGHcAHWUcqryvq70C+fcT3wodAlu0zNCxmf3gxQR2Yt/LZKGtb8eWPYgqosDVkKYQJ9E
         Letj/l81TLufXz/cXSpV656yTdgzTyzYp+I1HJVgLP4L9UT++wtQ61e6G9xPH+9N0bpQ
         hTed+5uqIWSxXzr7PUytf0CC8phvckppgafGboGyoik1qvPJBSDCafKd7XN2vXHNDMcq
         xh6Y2MEUxXbpuQnM3j7Ieb6dN5zFx2NbunSIpZ3XCpYkOru/eZMstFvORmHv33Bis1/K
         eGEw==
X-Gm-Message-State: AOJu0YzRn50YY1HoJQ6e+BWzTjRw2LPwTmCLAs7efunLlq7osTUJC2GK
	VZdkn8YgI8ky2qiuauFRtyLT1wmq5ez3xN4X4AXimQ2Gt/3ij3+S8JIiMwzJRSnamUPpXFe1nEg
	CKw4=
X-Gm-Gg: ASbGncuYiK+xuLPVb0CifU5jlPRogeRKif+nlSsgbp3S2y6Z715KUjOGX/5Ay6SV6OT
	//00bmOVQP3JS2CepgERSV7fo6GBiCy6Jo+zefLwB/fz2djZMO0w7MvH0+jrFVLB7OjiaPmnKnr
	I61wUl1Xw3K7lNYQ1UKswdhXYqY8aY2H1gggrK/VAhRPKE1l1AuJT+SNGIVblh3cQYes5zLaWqr
	NL0clzkMgAUcTP7V6uxUOOZA9xu0WdHMpgv0LN0BI8ZOGI0Z1yKirBNBvZLmcKL9Ek7rptHGyDT
	C+mXC+jEGKNsjHB6buwSSgpUI6T7SpTy/z11zCZFCXIUQrsf+Z2A4zkXiqzOlq4wIS7Qyzm005h
	M17/bt1IaxtlpM+q2OeC2c6mLH+Y2WACqDRRfB43KxLnVg2Ea7WD1i9EWthcGUMTg1DHy2ZcLor
	Ox1KK06Z9FOTZ4lG9yytVRr1hCgtQUtQfIsbiSNFOFlHjetOwZPjJJi8OCQw1jHaMML2fWcrBIo
	VE=
X-Google-Smtp-Source: AGHT+IFuS4XnzMwizOxvQtXmYahVqlvDRqEg/tIIJLJeE4IwWQ8sUfqtwqK535rhY0Vn4YtMjZql/A==
X-Received: by 2002:a05:600c:470b:b0:479:1348:c653 with SMTP id 5b1f17b1804b1-47939e23fe9mr100269015e9.18.1765275187059;
        Tue, 09 Dec 2025 02:13:07 -0800 (PST)
Message-ID: <23b11dd1-1d18-4b89-9450-b3c92b09c7c4@suse.com>
Date: Tue, 9 Dec 2025 11:13:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] symbol: drop private header again
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

With symbols-dummy.c gone, there's only on party using this header. Fold
its contents back into symbols.c.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/common/symbols.c
+++ b/xen/common/symbols.c
@@ -15,12 +15,29 @@
 #include <xen/lib.h>
 #include <xen/string.h>
 #include <xen/spinlock.h>
+#include <xen/symbols.h>
 #include <xen/virtual_region.h>
 #include <public/platform.h>
 #include <xen/guest_access.h>
 #include <xen/errno.h>
 
-#include "symbols.h"
+#ifdef SYMBOLS_ORIGIN
+extern const unsigned int symbols_offsets[];
+#define symbols_address(n) (SYMBOLS_ORIGIN + symbols_offsets[n])
+#else
+extern const unsigned long symbols_addresses[];
+#define symbols_address(n) symbols_addresses[n]
+#endif
+extern const unsigned int symbols_num_addrs;
+extern const unsigned char symbols_names[];
+
+extern const unsigned int symbols_num_names;
+extern const struct symbol_offset symbols_sorted_offsets[];
+
+extern const uint8_t symbols_token_table[];
+extern const uint16_t symbols_token_index[];
+
+extern const unsigned int symbols_markers[];
 
 /* expand a compressed symbol data into the resulting uncompressed string,
    given the offset to where the symbol is in the compressed stream */
--- a/xen/common/symbols.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-#ifndef SYMBOLS_H
-#define SYMBOLS_H
-
-#include <xen/stdint.h>
-#include <xen/symbols.h>
-
-#ifdef SYMBOLS_ORIGIN
-extern const unsigned int symbols_offsets[];
-#define symbols_address(n) (SYMBOLS_ORIGIN + symbols_offsets[n])
-#else
-extern const unsigned long symbols_addresses[];
-#define symbols_address(n) symbols_addresses[n]
-#endif
-extern const unsigned int symbols_num_addrs;
-extern const unsigned char symbols_names[];
-
-extern const unsigned int symbols_num_names;
-extern const struct symbol_offset symbols_sorted_offsets[];
-
-extern const uint8_t symbols_token_table[];
-extern const uint16_t symbols_token_index[];
-
-extern const unsigned int symbols_markers[];
-
-#endif /* SYMBOLS_H */
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * tab-width: 4
- * indent-tabs-mode: nil
- * End:
- */


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 10:35:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 10:35:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181377.1504430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSv3t-0001J5-7W; Tue, 09 Dec 2025 10:35:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181377.1504430; Tue, 09 Dec 2025 10:35:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSv3t-0001Iy-4s; Tue, 09 Dec 2025 10:35:17 +0000
Received: by outflank-mailman (input) for mailman id 1181377;
 Tue, 09 Dec 2025 10:35:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rCN0=6P=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vSv3s-0001Iq-4Q
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 10:35:16 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id beb27878-d4ea-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 11:35:13 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b79af62d36bso241485866b.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 02:35:13 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7a715226b7sm65136666b.22.2025.12.09.02.35.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 02:35:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: beb27878-d4ea-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765276513; x=1765881313; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=R0uTBvp5iofLJ4mTT/eO/PplH7c9whmufIsWu+E31pI=;
        b=dfPO5e+9jRZyIMGwWz5j6gk3vHcVdGmMuGUSOjt0swv4b88y/XLSsSKY4NQg58+TPd
         joKUu1Z4NLEGyYzLAYATSjk5GKVLarqm/VMczO6V3xAIq8/XK75yFUlaUdy0zbWeCZd3
         FVWR9ijfh8cPfZeS+GOg94xpHPqvHeB5bPokXxlnUleyS3ViJjLYYdMVy398sDq6pDEf
         s7bNxUYo+XcXxjBD0Vtx8Raf1DGw3zgRl8NTFsEeHFZU7cmJi7efXv9hXyGtzlBSAc0Z
         sEYkOgLoP++zZGfA7JzZ8lPegCf2BAbgtgPBdhJtrXoNHsVwXRkKLDkQ7biRpIfm2Bea
         Rw+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765276513; x=1765881313;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=R0uTBvp5iofLJ4mTT/eO/PplH7c9whmufIsWu+E31pI=;
        b=fpn/rmC2I0bRtp3n4HjzZ6hhG6xytGzRXLWxdl7i9x2OG+3Qdx4sdM/21WjePhtRvx
         8msr+5EkMYDcuJrWmnXyCJciKa/u5s5z60sCTmPanX79ov9W2y3GojszP48XuggpmLFB
         WEsjqWRNEQP+tbNWC0KrVfP+24XOaBbZ3nn/tt85ntjJgobZJ325eRUHzKDBs24BtLrC
         axsqUQtMIIWVTW6QB+qNod299zZjeJJN1TR3daRSnxx3StUUdOnvDD1+baakwtL0ibaV
         jW30oHPaxtPmS4viAw94soFSY4LPhvKngQtgAhfrUEPl3u1jgEXckZia3nDmp5vrLECe
         3YVQ==
X-Forwarded-Encrypted: i=1; AJvYcCVbivnlV66yfEM1V4n/z3i9PFJk0/TiYpA4xYJjjBGhSFZAgX39DJqr1bjunCs9fdcR8BHuQFztvF0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxHhcybFTHY4zF44tNRglPn0RF/YhjNzd4Gbd7v14WJCtYts6a+
	Umvhw0RoEBwpqovq0i5LOnIMfRz7N2WwzstWUrfpH2ZX5QK26vgnTtc2
X-Gm-Gg: ASbGncs1lotBJyPwHj1s5u1PFbdiDVr+cyLnFPtFo0alsdH0Yxo/IgmMnTKiT+JhkXN
	/RuxkZZ08Tl1mz4EhwJo9bGe9IoFyQfRuGbvOxfZwM2U+1fO6eb8AwsUtvxlOdmczDSCalAIY7s
	vtOeZ1YWmHOZggt9jnsousBKf75d9YjACNmTScqGhx1c0kgE4noiFzMJksCwkg7FZIMceMiBted
	tn2ULSUIWhiu0mWcWM5Kk4scxcZrB45I0NZPQGLT/AtaPVRsJZiwkv7TauW0vbtKe2RJ5TOqKzP
	2ZghmuqZt3vFhOfMAU6jHS77V+3Rpv98B1VV65NAXqn0yh/+qZOTDLsdCK3hhPSwE+WZ+bm/zDO
	ZZjZ6HZYARLs4JTU2UEkBnhIEz6Cm9kB9K5f9sB80LoeeTnrE61VHYJSmjP7OcnsTSDkplFd9jd
	OmnaEJcLzv2EyMG7zFjSQEDbJ9R6nKvIvE1fa5pjFWdXM54Cd8f/afibi5hH/l
X-Google-Smtp-Source: AGHT+IESBsqGXppEJVKGdSNZn8in3p2o1DnKsqNZD1qYdGv4XG6Tbrb43X7EzM50O/Gsh2yZp+VwDQ==
X-Received: by 2002:a17:907:8694:b0:b72:ad95:c1c2 with SMTP id a640c23a62f3a-b7a242d00c9mr1181779366b.11.1765276512817;
        Tue, 09 Dec 2025 02:35:12 -0800 (PST)
Message-ID: <369f14b0-8ed9-43ef-b5eb-7f5df9e2c642@gmail.com>
Date: Tue, 9 Dec 2025 11:35:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 03/19] xen/riscv: introduce VMID allocation and
 manegement
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <7805662d530eca29c5b0d0afa05a3cd0aac963bb.1763986955.git.oleksii.kurochko@gmail.com>
 <dc12d791-c76e-499c-9731-0163c95203da@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <dc12d791-c76e-499c-9731-0163c95203da@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 12/8/25 5:31 PM, Jan Beulich wrote:
> On 24.11.2025 13:33, Oleksii Kurochko wrote:
>> --- a/docs/misc/xen-command-line.pandoc
>> +++ b/docs/misc/xen-command-line.pandoc
>> @@ -3096,3 +3096,12 @@ the hypervisor was compiled with `CONFIG_XSM` enabled.
>>   * `silo`: this will deny any unmediated communication channels between
>>     unprivileged VMs.  To choose this, the separated option in kconfig must also
>>     be enabled.
>> +
>> +### vmid (RISC-V)
>> +> `= <boolean>`
>> +
>> +> Default: `true`
>> +
>> +Permit Xen to use Virtual Machine Identifiers. This is an optimisation which
>> +tags the TLB entries with an ID per vcpu. This allows for guest TLB flushes
>> +to be performed without the overhead of a complete TLB flush.
> Please obey to the alphabetic sorting within this file.

Do we have a definition of alphabetical order? In xen-command-line.pandoc there is
`### vm-notify-window (Intel)`, and I would expect `### vmid` to appear before it.
Am I right? So the ordering should be: letters first, then numbers, then special
characters?

>
>> --- /dev/null
>> +++ b/xen/arch/riscv/vmid.c
>> @@ -0,0 +1,170 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/domain.h>
>> +#include <xen/init.h>
>> +#include <xen/sections.h>
>> +#include <xen/lib.h>
>> +#include <xen/param.h>
>> +#include <xen/percpu.h>
>> +
>> +#include <asm/atomic.h>
>> +#include <asm/csr.h>
>> +#include <asm/flushtlb.h>
>> +#include <asm/p2m.h>
>> +
>> +/* Xen command-line option to enable VMIDs */
>> +static bool __ro_after_init opt_vmid = true;
>> +boolean_param("vmid", opt_vmid);
>> +
>> +/*
>> + * VMIDs partition the physical TLB. In the current implementation VMIDs are
>> + * introduced to reduce the number of TLB flushes. Each time a guest-physical
>> + * address space changes, instead of flushing the TLB, a new VMID is
>> + * assigned. This reduces the number of TLB flushes to at most 1/#VMIDs.
>> + * The biggest advantage is that hot parts of the hypervisor's code and data
>> + * retain in the TLB.
>> + *
>> + * Sketch of the Implementation:
>> + *
>> + * VMIDs are a hart-local resource.  As preemption of VMIDs is not possible,
>> + * VMIDs are assigned in a round-robin scheme. To minimize the overhead of
>> + * VMID invalidation, at the time of a TLB flush, VMIDs are tagged with a
>> + * 64-bit generation. Only on a generation overflow the code needs to
>> + * invalidate all VMID information stored at the VCPUs with are run on the
>> + * specific physical processor. When this overflow appears VMID usage is
>> + * disabled to retain correctness.
>> + */
>> +
>> +/* Per-Hart VMID management. */
>> +struct vmid_data {
>> +   uint64_t generation;
>> +   uint16_t next_vmid;
>> +   uint16_t max_vmid;
>> +   bool used;
>> +};
>> +
>> +static DEFINE_PER_CPU(struct vmid_data, vmid_data);
>> +
>> +static unsigned int vmidlen_detect(void)
>> +{
>> +    unsigned int vmid_bits;
>> +    unsigned char gstage_mode = get_max_supported_mode();
>> +
>> +    /*
>> +     * According to the RISC-V Privileged Architecture Spec:
>> +     *   When MODE=Bare, guest physical addresses are equal to supervisor
>> +     *   physical addresses, and there is no further memory protection
>> +     *   for a guest virtual machine beyond the physical memory protection
>> +     *   scheme described in Section "Physical Memory Protection".
>> +     *   In this case, the remaining fields in hgatp must be set to zeros.
>> +     * Thereby it is necessary to set gstage_mode not equal to Bare.
>> +     */
>> +    ASSERT(gstage_mode != HGATP_MODE_OFF);
>> +    csr_write(CSR_HGATP,
>> +              MASK_INSR(gstage_mode, HGATP_MODE_MASK) | HGATP_VMID_MASK);
>> +    vmid_bits = MASK_EXTR(csr_read(CSR_HGATP), HGATP_VMID_MASK);
>> +    vmid_bits = flsl(vmid_bits);
>> +    csr_write(CSR_HGATP, _AC(0, UL));
>> +
>> +    /* local_hfence_gvma_all() will be called at the end of pre_gstage_init. */
>> +
>> +    return vmid_bits;
>> +}
>> +
>> +void vmid_init(void)
> With the presently sole caller being __init, this (and likely the helper above)
> could be __init. Iirc you intend to also call this as secondary harts come up,
> so this may be okay. But then it wants justifing in the description.

I will add the comment aobve vmidlen_detect():
/*
  * vmidlen_detect() is expected to be called during secondary hart bring-up,
  * so it should not be marked as __init.
  */

And the similar comment for vmid_init().

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 10:38:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 10:38:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181388.1504439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSv6d-00022I-Jg; Tue, 09 Dec 2025 10:38:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181388.1504439; Tue, 09 Dec 2025 10:38:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSv6d-00022B-H4; Tue, 09 Dec 2025 10:38:07 +0000
Received: by outflank-mailman (input) for mailman id 1181388;
 Tue, 09 Dec 2025 10:38:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/rha=6P=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vSv6c-000225-AR
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 10:38:06 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 2400a3d9-d4eb-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 11:38:04 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id CE4C71691;
 Tue,  9 Dec 2025 02:37:55 -0800 (PST)
Received: from C3HXLD123V.emea.arm.com (unknown [10.1.35.135])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2C7373F740;
 Tue,  9 Dec 2025 02:38:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2400a3d9-d4eb-11f0-9cce-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH] xen/arm: Set ThumbEE as not present in PFR0
Date: Tue,  9 Dec 2025 10:37:55 +0000
Message-ID: <b9e9ec4a393b34b8872a87335db2bde707973c0c.1765276607.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Force ThumbEE support to not available in the version of the PFR0
register value we present to guest.
Xen does not support ThumbEE and will trap all access to ThumbEE
registers so do not report it being supported if the hardware supports
it.

Fixes: 5bbe1fe413f9 ("ARM: Drop ThumbEE support")
Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/cpufeature.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/arm/cpufeature.c b/xen/arch/arm/cpufeature.c
index 1a80738571e3..4cde208e721a 100644
--- a/xen/arch/arm/cpufeature.c
+++ b/xen/arch/arm/cpufeature.c
@@ -225,6 +225,7 @@ static int __init create_domain_cpuinfo(void)
 #ifdef CONFIG_ARM_64
     domain_cpuinfo.pfr64.amu = 0;
 #endif
+    domain_cpuinfo.pfr32.thumbee = 0;
     domain_cpuinfo.pfr32.amu = 0;
 
     /* Hide RAS support as Xen does not support it */
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 10:40:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 10:40:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181397.1504450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSv9I-0003WC-0L; Tue, 09 Dec 2025 10:40:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181397.1504450; Tue, 09 Dec 2025 10:40:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSv9H-0003W5-Te; Tue, 09 Dec 2025 10:40:51 +0000
Received: by outflank-mailman (input) for mailman id 1181397;
 Tue, 09 Dec 2025 10:40:50 +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
 <SRS0=rCN0=6P=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vSv9G-0003Vz-Ob
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 10:40:50 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 86e27b58-d4eb-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 11:40:49 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b7a02592efaso569721166b.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 02:40:49 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-647b368de06sm13790969a12.22.2025.12.09.02.40.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 02:40:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 86e27b58-d4eb-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765276849; x=1765881649; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=DP2dlhrpK3pDnGv20NqLPZ3PfkSkkFLUpE17TucmZPQ=;
        b=g63I3rOa2hJL6rthHOgB4vtEBt5Q3UTO4vhoefUWsRb6oS0VNwlwIr0smmJfDb2nGw
         xnclzQCXzYkgnrSOLVV4BfQWehstUCj7jsOrVmmBDFKJF7N4jFhFcY4p3XM5P9hLRwlt
         CEpqQw5y54M7NGUW2TQGdSD3BxChIU1YL/2y09MwvI3yjaiBs7nosrYsD/7l8mK/TPW4
         6vXOBOPrNTAD9U1+vvfSLNwmFewFIWQUfrMt2wOhIza6LIu+nDt1MmTWLzphdo0kirFQ
         w2wtRkNbi+6LwiVq1vA+zWXydASw2gcqsFLpvsDLcsVFmKmyJ4/S7JucMSzZHb6Wj1wH
         fO8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765276849; x=1765881649;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=DP2dlhrpK3pDnGv20NqLPZ3PfkSkkFLUpE17TucmZPQ=;
        b=WNBst7VPwlLtihuSswqjoBgXq8rNtTB1rEDzuclBROBPBKkqR8d239UHEUWA2kw5ZD
         ur7hnabRVPACisKz8oMWtzm4OV18yt1L3pmYGc1Nnu4qZsLmRbDyUPGZS22m/ZCKnqvv
         tdyR3KsnRhPLzlV3mTZ1AgkGp09mCklNFi7LPE8jraqr9HUmyzlCMHVQhpJy7m1fd06j
         visGaG4v3XDDSH31vhr0ihlap28TBgL5RYO2A16b1BZOvDgAsIldpad8Lvhf0RurdPVG
         ivV19Ek0iubGqXmd9oz43x0R1Fh+eWICK6qFDXMUwzLt7B4LXdG5mVmG1CC2FiRku7tb
         lFRA==
X-Forwarded-Encrypted: i=1; AJvYcCVN7gCHTXBqwRQOUAXBMp40qBiQQa8hcYGy6CtLNaMNXT1qhFcNBBdOp5BY7dOvPwh7UiHJNdeK8KI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxxAqIBBqVyS+MDS7xQECG6j1Fz44VQxA5FASGDhorJPG2SJfP0
	5Xgfk0PSC8+csLo8TZeoNAO5v/ycNt4drQaEhI9qgIsPP5BFhKYN8PcI
X-Gm-Gg: ASbGnct8/uJltG+PGlNGlSNeXuzkgikoUAqHgwdCFmqX/lkXiaibCSAxkAK+BodDUV3
	nOvaO2SMq8Byg22j2zdpNz2NFNGsUVD5fBU/xsX5mjKLj4q+vrEUtVg8642LAPHJCbKZFBc4ZXf
	q1QTIMSQX73GS2auTy34N4xrMuQvbD8IYEGeObUV/PEmHjrDLmY6oiZK6mU/CG1WlYg21i2r3Ux
	IigT68cpS9+ANtKV7U/XfP0brtt1Rw08VU1hGJnAJs2bujDEbeoFmpl6YE200bZwho1/E902+CX
	2s0HPgsGaZFN5WnYZ8gl3w0Vdhg+ZdWhC+/Yfc6IoxRwMdHMBEOu3L2EgzxqaFmYoPuh29NywEh
	mmgF6QDku9+PRjvpWtbR55kUg0AYTkptCjCZ6O7QnsH6v/KHdK7gjexLbOP8XE7TDxbNw3PDj5d
	K1T3lhGWrgtSkmF8BDv9wai5dCMa+17k3AiTxNT1AqHA0KMRTj5YSrxi2Ei6Bi
X-Google-Smtp-Source: AGHT+IH+gzq7akt0Z96nZn8xmJf/AR4xNq83zxi2wWOhS8ex+cBpwg7S8pHROIjvrqoqmeAEVjk0Uw==
X-Received: by 2002:a17:907:8e96:b0:b76:ece0:368e with SMTP id a640c23a62f3a-b7a247dc7d9mr1083973166b.47.1765276848906;
        Tue, 09 Dec 2025 02:40:48 -0800 (PST)
Message-ID: <f1d80a97-747c-486a-bba5-2657bcd974ce@gmail.com>
Date: Tue, 9 Dec 2025 11:40:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 03/19] xen/riscv: introduce VMID allocation and
 manegement
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, xen-devel@lists.xenproject.org,
 Jan Beulich <jbeulich@suse.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <7805662d530eca29c5b0d0afa05a3cd0aac963bb.1763986955.git.oleksii.kurochko@gmail.com>
 <debd3ec1-2836-4481-aea9-833f04601a7a@vates.tech>
 <11680d9e-bbe8-4457-a7cc-c73f649276e3@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <11680d9e-bbe8-4457-a7cc-c73f649276e3@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/9/25 8:51 AM, Jan Beulich wrote:
> On 08.12.2025 18:28, Teddy Astie wrote:
>> Le 24/11/2025 à 13:36, Oleksii Kurochko a écrit :
>>> diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
>>> index 34004ce282..6c4bfa3603 100644
>>> --- a/docs/misc/xen-command-line.pandoc
>>> +++ b/docs/misc/xen-command-line.pandoc
>>> @@ -3096,3 +3096,12 @@ the hypervisor was compiled with `CONFIG_XSM` enabled.
>>>    * `silo`: this will deny any unmediated communication channels between
>>>      unprivileged VMs.  To choose this, the separated option in kconfig must also
>>>      be enabled.
>>> +
>>> +### vmid (RISC-V)
>>> +> `= <boolean>`
>>> +
>>> +> Default: `true`
>>> +
>>> +Permit Xen to use Virtual Machine Identifiers. This is an optimisation which
>>> +tags the TLB entries with an ID per vcpu. This allows for guest TLB flushes
>>> +to be performed without the overhead of a complete TLB flush.
>> Should we regroup all asid/vpid/vmid (which are pretty much the same
>> thing with different names and for different arch) under a single
>> command-line option ?
> How would you name such an option, without losing it being recognized by people
> knowing the respective arch?

Teddy,

I would also like to note that, for RISC-V, both the terms ASID and VMID are used.
Therefore, I prefer to have separate command-line options and not overcomplicate
things. Furthermore, these options are used only in architecture-specific code,
so it would be best to follow the relevant architecture-specific documentation
and specifications.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 10:41:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 10:41:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181405.1504461 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSv9r-0003zC-8A; Tue, 09 Dec 2025 10:41:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181405.1504461; Tue, 09 Dec 2025 10:41:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSv9r-0003z5-4X; Tue, 09 Dec 2025 10:41:27 +0000
Received: by outflank-mailman (input) for mailman id 1181405;
 Tue, 09 Dec 2025 10:41:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=R9j7=6P=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vSv9p-0003wy-BJ
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 10:41:25 +0000
Received: from mail-ot1-x336.google.com (mail-ot1-x336.google.com
 [2607:f8b0:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9a989242-d4eb-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 11:41:23 +0100 (CET)
Received: by mail-ot1-x336.google.com with SMTP id
 46e09a7af769-7c78d30649aso4421443a34.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 02:41:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a989242-d4eb-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1765276882; x=1765881682; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tdXqyy49oz3rk7QbCRY2t0YGhzNQSWy67ibz8KTvI/I=;
        b=NNsS0eIXiDC93WJILRcHXS2ADpaqhSTaZnp5pBJ5/fuMjKf1TAfXmkMXSmCmgxYI3N
         Dc79bdP0sT2CG2MzuIQUS+DqlBPvrc+r32WNO06v/POfxfFZSVc1BejTXTnM7BuuJiVK
         VfvTcwSPhkSG/rxxak6vbZo0+i53YtmmSQD/yEwQl2G9KPVaPtLjPaB2jas0mH0kfv4t
         fkT394jUF+unB1MJCulEHKD4fUO4Qfz5tdi1anKedY2lea71ASLBrjqJgqZBbzykQ0p6
         DBT8mAMxq1HV8CgcetpllZefwQMDMxtE2Kflh3LS3Vo6wRVWKbL/aLA0+cs//09jdOts
         gDyw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765276882; x=1765881682;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=tdXqyy49oz3rk7QbCRY2t0YGhzNQSWy67ibz8KTvI/I=;
        b=oNE+l3WLG1AX81515pVCdo79Ox//L4fkflmuTS0CZ/5rLT7JnCKbpFDriStj7wj1Zf
         Jn0eCB2NpNizvIVQNiFhhOAyjqqLepiFzTncASi5vJ1FXTFv+6Di9nLkEvHi7qR6jQIK
         IFY1u7PUpLgb3B/5vOL1JCkyFAgwfZTQgcnEBVXaxPyj6O0VPB5cTinmI6vaVh2TrtK+
         3RBi5kEoFBgnu+rM/cTY/9BAD/FEuXWKSKtSeBO2arJKBhUinVJ5zJeFRZp2890U3ft/
         Wioxyy8U9aWilPt2p8JcYGCG5LuGSB5ZnCoVUDZySP8iXx1UF/seLo8/xQWqhVsBewWz
         DUoA==
X-Gm-Message-State: AOJu0YzCAH6qk1A0YF+jl2CYsC0n/P0uUl6jwt3am0THCHJ857/T206a
	fKn89vmKjy81MblElnp658sLxPDEyWXWztMJtOFmSQNke0PFQvUNPyZ9dMhLE/7FGDeiMphrkWc
	daK1SBbbomAlFPXmXk5uvBxh0yVRtB31UBhp+1uPDoQ==
X-Gm-Gg: ASbGncuGPLqYfjLs3ZnXB20euejcN5nff8OaJv93lz3c6lirC0cqPcOQkifI4vZibKI
	f+cQ/tJ5Dtr1+xF6bGNPDHDyEgStWO++cjj5qcRqICjY7K96UYurmGJ7s4S7iJaVbLs15MQe5zn
	1ND8F4HUhX2XGLHjsUD4knHJUdTsOlohaoXxRsE4qZ/GGawANq4xJ/ie5xxR9+dAWeFtOE2MUDg
	czSHBROvQY9wP3kxFsdLamVmuEA/F/O3V0rBgDhHMDP8oYoJk8QitTEfLF3rP7u20iZSb7wEPk0
	ivC3fYskf+xZyAsqsiuJDh4fhpiifrVduzIzmkchJ3kREwjOWFtvqMkGQDvspw==
X-Google-Smtp-Source: AGHT+IFtGRG3NrgzrDF0ifHcXfRJun3MqGJpzbe4JIUgWnLWfJBNSK1HxyAxdGz9PwDkPYins3BAPdg+RRg60Tlf4Zo=
X-Received: by 2002:a05:6820:99c:b0:659:9a49:8fc5 with SMTP id
 006d021491bc7-6599a97371cmr4754793eaf.62.1765276881829; Tue, 09 Dec 2025
 02:41:21 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764930353.git.bertrand.marquis@arm.com>
 <697ab9880767b75c9964ae900a43fd4e065fc502.1764930353.git.bertrand.marquis@arm.com>
 <CAHUa44E+Cgs6WeuSyYi=r1BCzaYN+f9MBoSudyLxkU2LeGxzXg@mail.gmail.com> <C518918D-1CAF-49D6-BC94-CACEF409E46A@arm.com>
In-Reply-To: <C518918D-1CAF-49D6-BC94-CACEF409E46A@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 9 Dec 2025 11:41:09 +0100
X-Gm-Features: AQt7F2rcFXQLuxol20sQQtEDvbGTVH7VVvTYzYZRdKRRXHRzHEmthEWJhwA6pkc
Message-ID: <CAHUa44Ff=rzsd-3MtjB4YoT4=e_Xbgy0Yss=TSe=2=X77XQcXA@mail.gmail.com>
Subject: Re: [PATCH v1 03/12] xen/arm: ffa: Fix is_64bit init
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Tue, Dec 9, 2025 at 11:11=E2=80=AFAM Bertrand Marquis
<Bertrand.Marquis@arm.com> wrote:
>
> Hi Jens,
>
> > On 9 Dec 2025, at 10:05, Jens Wiklander <jens.wiklander@linaro.org> wro=
te:
> >
> > Hi Bertrand,
> >
> > On Fri, Dec 5, 2025 at 11:37=E2=80=AFAM Bertrand Marquis
> > <bertrand.marquis@arm.com> wrote:
> >>
> >> is_64bit_domain(d) is not set during domain_init as the domain field i=
s
> >> only set when loading the domain image which is done after executing
> >> domain_init.
> >>
> >> Fix the implementation to set is_64bit when version gets negotiated.
> >> is_64bit is only used during partition_info_get once a domain is added
> >> in the list of domains having ffa support. It must only be accessed wh=
en
> >> the rwlock is taken (which is the case).
> >>
> >> is_64bit must not be used without the rwlock taken and other places in
> >> the code needing to test 64bit support of the current domain will have
> >> to use calls to is_64bit_domain instead of the field from now on.
> >>
> >> Fixes: 09a201605f99 ("xen/arm: ffa: Introduce VM to VM support")
> >> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> >> ---
> >> Changes in v1:
> >> - patch introduced
> >> ---
> >> xen/arch/arm/tee/ffa.c         | 9 ++++++++-
> >> xen/arch/arm/tee/ffa_private.h | 5 +++++
> >> 2 files changed, 13 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> >> index aadd6c21e7f2..0f6f837378cc 100644
> >> --- a/xen/arch/arm/tee/ffa.c
> >> +++ b/xen/arch/arm/tee/ffa.c
> >> @@ -180,6 +180,14 @@ static bool ffa_negotiate_version(struct cpu_user=
_regs *regs)
> >>             goto out_handled;
> >>         }
> >>
> >> +        /*
> >> +         * We cannot set is_64bit during domain init because the fiel=
d is not
> >> +         * yet initialized.
> >> +         * This field is only used during partinfo_get with the rwloc=
k taken
> >> +         * so there is no ordering issue with guest_vers.
> >> +         */
> >> +        ctx->is_64bit =3D is_64bit_domain(d);
> >
> > This should only be assigned under the rwlock. But do we need the
> > is_64bit field at all? Why can't we always use is_64bit_domain()
> > instead?
>
> As we take it after when needed, setting it here should be ok but i can m=
ove this
> inside the rwlock section to be more coherent.
>
> The field is needed when creating the list of partitions. To use is_64bit=
_domain, I
> would to get access to the foreign domain description which i try to prev=
ent to not
> create a way for a guest to block other guests by doing partinfo_get. Thi=
s is why
> i store the information i need for foreign guests in the ctx instead of u=
sing RCU
> to get access to the domain descriptor.

Got it, thanks for the explanation.

Cheers,
Jens

>
> Cheers
> Bertrand
>
> >
> > Cheers,
> > Jens
> >
> >> +
> >>         /*
> >>          * A successful FFA_VERSION call does not freeze negotiation. =
Guests
> >>          * are allowed to issue multiple FFA_VERSION attempts (e.g. pr=
obing
> >> @@ -433,7 +441,6 @@ static int ffa_domain_init(struct domain *d)
> >>
> >>     ctx->ffa_id =3D ffa_get_vm_id(d);
> >>     ctx->num_vcpus =3D d->max_vcpus;
> >> -    ctx->is_64bit =3D is_64bit_domain(d);
> >>
> >>     /*
> >>      * ffa_domain_teardown() will be called if ffa_domain_init() retur=
ns an
> >> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_pri=
vate.h
> >> index 4e4ac7fd7bc4..2daa4589a930 100644
> >> --- a/xen/arch/arm/tee/ffa_private.h
> >> +++ b/xen/arch/arm/tee/ffa_private.h
> >> @@ -344,6 +344,11 @@ struct ffa_ctx {
> >>     /* FF-A Endpoint ID */
> >>     uint16_t ffa_id;
> >>     uint16_t num_vcpus;
> >> +    /*
> >> +     * Must only be accessed with the ffa_ctx_list_rwlock taken as it=
 set
> >> +     * when guest_vers is set and other accesses could see a partiall=
y set
> >> +     * value.
> >> +     */
> >>     bool is_64bit;
> >>
> >>     /*
> >> --
> >> 2.51.2
>
>


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 10:42:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 10:42:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181415.1504469 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSvAP-0004Z5-Kj; Tue, 09 Dec 2025 10:42:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181415.1504469; Tue, 09 Dec 2025 10:42:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSvAP-0004Yy-Hk; Tue, 09 Dec 2025 10:42:01 +0000
Received: by outflank-mailman (input) for mailman id 1181415;
 Tue, 09 Dec 2025 10:42:00 +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
 <SRS0=YO56=6P=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1vSvAO-0004Ft-9s
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 10:42:00 +0000
Received: from mail-yw1-x112c.google.com (mail-yw1-x112c.google.com
 [2607:f8b0:4864:20::112c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b027d4dc-d4eb-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 11:41:59 +0100 (CET)
Received: by mail-yw1-x112c.google.com with SMTP id
 00721157ae682-78ab03c30ceso45659727b3.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 02:41:59 -0800 (PST)
Received: from [10.138.34.110]
 (h96-60-249-169.cncrtn.broadband.dynamic.tds.net. [96.60.249.169])
 by smtp.gmail.com with ESMTPSA id
 00721157ae682-78c1b7980a3sm57927937b3.48.2025.12.09.02.41.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 02:41:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b027d4dc-d4eb-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765276918; x=1765881718; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=rhbxBAzSEDQCvwMgbyu/Dq1lAyyBgnxYv9COPMeGEdE=;
        b=EVZij/DiJRQPLscfOq2YsREOJEW516t3Csylce6TmpsYVCEAju7CbhWdeAKm12FAtT
         dhZ9eblp2Jl/pXtrjFYsZEIKEa6cg2oDzSzzSiPI3gjuVNdlpqIMeTm7BaMXMhXFxX+R
         znaskjKBZgInmQXVKmv9jtX6I7MpnwyD443VaFtmGN48wirGv0T1O8iYJor7TUCGzwcz
         LaEd4Em7kVilsLmvuGNcnI3Dxbf5zGxqZo4h35+taX766wyLQF9P2XapvER+mqIflLnS
         pSZGe27yw1qph8dFfx/79ytSuxC8dOkQsGsa5dgFhiN0mSggFJs6fHJAZwphb1fRRrsc
         cKNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765276918; x=1765881718;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=rhbxBAzSEDQCvwMgbyu/Dq1lAyyBgnxYv9COPMeGEdE=;
        b=tEhw3sysC8Xs+CLLvlU6QlGSCw2Dim7XPvfGIHu7nZnB6lqgZ5LXfGSOM0ZCbVhzso
         xwQ/9qLIHv9BydWyRoQgaQyyO/KWX4u0I33Tf9cZ0Vzg3/yuat0cnR+Nq+GxZItixYOI
         gLXglb2iFDWmy99nO7ZbhkbZy6RgipZXC+hY7b+e3EAGShdrlMolWVa5GopIRD6PcOvN
         OmmKjxnjNu0Ph+rcG3WjJX7w2C9J+uTEhy3fiQYsA0q9gWS+sFyIoTJofQZzRAORM6Q/
         NPTQsj906IWKcn6VJZ8nXKW7R9Q4jCMo8Q2n/Xb/KVpGjkzHbX6G2XSBHfLtEpijCYv3
         RSRA==
X-Gm-Message-State: AOJu0YyjDeynmAa7QkRohnyuoUAY/rTXywkOffjWJi2oop33fEUoPgN6
	vVb8LEkMW/RUDDwS/ev78U8g+IMU6fTHcnPwTVeRrHXmY3wTnIv7runj
X-Gm-Gg: AY/fxX7vsB24Z739OzYtUE6ORDoVqoM1JVbKcHcIYQ1n0uj/RbUrhrIw+hqJwSlOKWw
	QtVIcSxEYP5wXZX/66zZPmr1tX/DBei5GaI0Qj+t4RKNi/7lSenzAWNc0jGtsWKQ4mTzqCKrQXM
	qCZE4q22arYR1BFwnB9V+OuJUpC4kw4MKSy6s/plK8g/0LNupkCID61zTChKjss71pOPxBkVkEj
	P8PZtrwR5zGC4o3L22Xl6sNBhU76gE61fuz2SzPJlnXeNga+KJmVoHtWmRs8AeA8KSLgH2ahj9X
	kMtODxAejGS74+0SVIbgJfudNBxW/2myplUE4XWokm9rr4LyJwHpQcWou047ruWQ6pSBYr7crpV
	JokgEkW1x4IGzEeiJKwbLc4EkGu91MzXzm4iOYCwKfzk/oRE7jrxFyI1gZ+gPOwQgX5d+hT3vVM
	AGJaVKJfDFNiiqiV8Y8h+LIa6Z4wWmXLzxcozBbEua74LS7R2GmlkpSuc4T7EloY1e+olSKfeOw
	b0xcMV/x2DOcSZoIaj+rg1MA1A=
X-Google-Smtp-Source: AGHT+IGv0qFcK2J1Nd+QBeTkCk/WG24JZsz8X2TKDIweL792S+oA/DUO/F6AOCnlg+3O8vQuLrkMNw==
X-Received: by 2002:a05:690c:4d88:b0:786:506c:3cc4 with SMTP id 00721157ae682-78c33c748femr102079597b3.53.1765276917846;
        Tue, 09 Dec 2025 02:41:57 -0800 (PST)
Message-ID: <409cccec-15dd-4e80-ba56-f0bba12772cb@gmail.com>
Date: Tue, 9 Dec 2025 05:41:39 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] 9p/xen: mark 9p transport device as closing when removing
 it
To: Ariadne Conill <ariadne@ariadne.space>, v9fs@lists.linux.dev
Cc: xen-devel@lists.xenproject.org, asmadeus@codewreck.org,
 linux_oss@crudebyte.com, lucho@ionkov.net, ericvh@kernel.org,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Alex Zenla <alex@edera.dev>
References: <20251208195155.27473-1-ariadne@ariadne.space>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <20251208195155.27473-1-ariadne@ariadne.space>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------zosxgT6EdHIKIy9jQ799RMo7"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------zosxgT6EdHIKIy9jQ799RMo7
Content-Type: multipart/mixed; boundary="------------DJjSN0sHotis42IaEiDVpWBt";
 protected-headers="v1"
Message-ID: <409cccec-15dd-4e80-ba56-f0bba12772cb@gmail.com>
Date: Tue, 9 Dec 2025 05:41:39 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] 9p/xen: mark 9p transport device as closing when removing
 it
To: Ariadne Conill <ariadne@ariadne.space>, v9fs@lists.linux.dev
Cc: xen-devel@lists.xenproject.org, asmadeus@codewreck.org,
 linux_oss@crudebyte.com, lucho@ionkov.net, ericvh@kernel.org,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Alex Zenla <alex@edera.dev>
References: <20251208195155.27473-1-ariadne@ariadne.space>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <20251208195155.27473-1-ariadne@ariadne.space>
Autocrypt-Gossip: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==

--------------DJjSN0sHotis42IaEiDVpWBt
Content-Type: multipart/mixed; boundary="------------FKyek49m5A3wco0f6MYbI0Sg"

--------------FKyek49m5A3wco0f6MYbI0Sg
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On 12/8/25 14:51, Ariadne Conill wrote:
> We need to do this so that we can signal to the other end that the
> device is being removed, so that it will release its claim on the
> underlying memory allocation.  Otherwise releasing the grant-table
> entries is deferred resulting in a kernel oops since the pages have
> already been freed.

I don't think this is sufficient.  The backend can simply refuse
to release the grants.  The frontend needs to ensure that the pages
are not freed until the grant table entries are freed.  Right now,
the backend can cause a use-after-free in the frontend, and my
understanding of the Xen Project's security policy is that this is
a security vulnerability in the frontend code.

My instinct is that the core Xen code should take a reference on
each page before granting it to another domain, and not release that
reference until the pages are no longer granted.  This should prevent
any use-after-free problems if I understand Linux core MM correctly.

> Cc: Juergen Gross <jgross@suse.com>
> Cc: Stefano Stabellini <sstabellini@kernel.org>
> Fixes: 71ebd71921e45 ("xen/9pfs: connect to the backend")
> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
> Signed-off-by: Alex Zenla <alex@edera.dev>
> ---
>  net/9p/trans_xen.c | 1 +
>  1 file changed, 1 insertion(+)
>=20
> diff --git a/net/9p/trans_xen.c b/net/9p/trans_xen.c
> index b9ff69c7522a..cde283c42dc6 100644
> --- a/net/9p/trans_xen.c
> +++ b/net/9p/trans_xen.c
> @@ -312,6 +312,7 @@ static void xen_9pfs_front_remove(struct xenbus_dev=
ice *dev)
>  {
>  	struct xen_9pfs_front_priv *priv =3D dev_get_drvdata(&dev->dev);
> =20
> +	xenbus_switch_state(dev, XenbusStateClosing);
>  	dev_set_drvdata(&dev->dev, NULL);
>  	xen_9pfs_front_free(priv);
>  }


--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------FKyek49m5A3wco0f6MYbI0Sg
Content-Type: application/pgp-keys; name="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49y
B+l2nipdaq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYf
bWpr/si88QKgyGSVZ7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/
UorR+FaSuVwT7rqzGrTlscnTDlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7M
MPCJwI8JpPlBedRpe9tfVyfu3euTPLPxwcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9H
zx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR6h3nBc3eyuZ+q62HS1pJ5EvU
T1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl5FMWo8TCniHynNXs
BtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2Bkg1b//r
6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nS
m9BBff0Nm0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQAB
zTxEZW1pIE9iZW5vdXIgKElUTCBFbWFpbCBLZXkpIDxhdGhlbmFAaW52aXNpYmxl
dGhpbmdzbGFiLmNvbT7CwY4EEwEIADgWIQR2h02fEza6IlkHHHGyiLVf/5wiwQUC
X6YJvQIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCyiLVf/5wiwWRhD/0Y
R+YYC5Kduv/2LBgQJIygMsFiRHbR4+tWXuTFqgrxxFSlMktZ6gQrQCWe38WnOXkB
oY6n/5lSJdfnuGd2UagZ/9dkaGMUkqt+5WshLFly4BnP7pSsWReKgMP7etRTwn3S
zk1OwFx2lzY1EnnconPLfPBc6rWG2moA6l0WX+3WNR1B1ndqpl2hPSjT2jUCBWDV
rGOUSX7r5f1WgtBeNYnEXPBCUUM51pFGESmfHIXQrqFDA7nBNiIVFDJTmQzuEqIy
Jl67pKNgooij5mKzRhFKHfjLRAH4mmWZlB9UjDStAfFBAoDFHwd1HL5VQCNQdqEc
/9lZDApqWuCPadZN+pGouqLysesIYsNxUhJ7dtWOWHl0vs7/3qkWmWun/2uOJMQh
ra2u8nA9g91FbOobWqjrDd6x3ZJoGQf4zLqjmn/P514gb697788e573WN/MpQ5XI
Fl7aM2d6/GJiq6LC9T2gSUW4rbPBiqOCeiUx7Kd/sVm41p9TOA7fEG4bYddCfDsN
xaQJH6VRK3NOuBUGeL+iQEVF5Xs6Yp+U+jwvv2M5Lel3EqAYo5xXTx4ls0xaxDCu
fudcAh8CMMqx3fguSb7Mi31WlnZpk0fDuWQVNKyDP7lYpwc4nCCGNKCj622ZSocH
AcQmX28L8pJdLYacv9pU3jPy4fHcQYvmTavTqowGnM08RGVtaSBNYXJpZSBPYmVu
b3VyIChsb3ZlciBvZiBjb2RpbmcpIDxkZW1pb2Jlbm91ckBnbWFpbC5jb20+wsF4
BBMBAgAiBQJafgNKAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCyiLVf
/5wiwYa/EACv8a2+MMou9cSCNoZBQaU+fTmyzft9hUE+0d5W2UY1RY3OsjFIzm9R
/4SVccfsqOYLEo+S0vQMIIIqFEq3FCpXXwPzyimotps05VA8U3Bd7yseojFygOgK
sAMOAee2RCaDDOnoJue01dfZMzzHPO/TVdp3OvnpWipfv5G1Xg96rwbhMLE3tg6N
xwAHa31Bv4/Xq8CJOoIWvx6fcmZQpz01/lSvsYn0KrfEbTKkuUf0vM9JrCTCP2oz
VNN5BYzqaq2M4r+jmSyeXLim922VOWqGkUEQ85BSEemqrRS06IU6NtEMsF8EWt/b
hWjk/9GDKTcnpdJHTrMxTspExBiNrvpI2t+YPU5B/dJJAUxvmhFrbSIbdB8umBZs
I3AMYrEmpAbh5x7jEjoskUC7uN3o9vpg1oCLS2ePDLtAtyBtbHnkA4xGD7ar8mem
xpH9lY/i+sC6CyyIUWcUDnnagKyJP0m9ks0GLsTeOCA0bft2XA6rD6aaCnMUsndT
ctrab42CV5XypjmC4U1rPJ8JQJUh1/3P48/8sMH+3krxpJ06KNWNFaUbaMTGiltZ
7x9DngklSYrX0T+2G4kVXNmjaljwkoLahwLla2gUWwBSyofXdqyhQdwZsp01KXNQ
UCyT/Pg+aDcm/E7OMV3d4lf7g/CSxiX2GSEe6BlhSz+Lmd7ZJ3g32M1ARGVtaSBN
YXJpZSBPYmVub3VyIChJVEwgRW1haWwgS2V5KSA8ZGVtaUBpbnZpc2libGV0aGlu
Z3NsYWIuY29tPsLBjgQTAQgAOBYhBHaHTZ8TNroiWQcccbKItV//nCLBBQJgOEV+
AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJELKItV//nCLBKwoP/1WSnFdv
SAD0g7fD0WlF+oi7ISFT7oqJnchFLOwVHK4Jg0e4hGn1ekWsF3Ha5tFLh4V/7UUu
obYJpTfBAA2CckspYBqLtKGjFxcaqjjpO1I2W/jeNELVtSYuCOZICjdNGw2Hl9yH
KRZiBkqc9u8lQcHDZKq4LIpVJj6ZQV/nxttDX90ax2No1nLLQXFbr5wb465LAPpU
lXwunYDij7xJGye+VUASQh9datye6orZYuJvNo8Tr3mAQxxkfR46LzWgxFCPEAZJ
5P56Nc0IMHdJZj0Uc9+1jxERhOGppp5jlLgYGK7faGB/jTV6LaRQ4Ad+xiqokDWp
mUOZsmA+bMbtPfYjDZBz5mlyHcIRKIFpE1l3Y8F7PhJuzzMUKkJi90CYakCV4x/a
Zs4pzk5E96c2VQx01RIEJ7fzHF7lwFdtfTS4YsLtAbQFsKayqwkGcVv2B1AHeqdo
TMX+cgDvjd1ZganGlWA8Sv9RkNSMchn1hMuTwERTyFTr2dKPnQdA1F480+jUap41
ClXgn227WkCIMrNhQGNyJsnwyzi5wS8rBVRQ3BOTMyvGM07j3axUOYaejEpg7wKi
wTPZGLGH1sz5GljD/916v5+v2xLbOo5606j9dWf5/tAhbPuqrQgWv41wuKDi+dDD
EKkODF7DHes8No+QcHTDyETMn1RYm7t0RKR4zsFNBFp+A0oBEAC9ynZI9LU+uJkM
eEJeJyQ/8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd
8xD57ue0eB47bcJvVqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPp
I4gfUbVEIEQuqdqQyO4GAe+MkD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalq
l1/iSyv1WYeC1OAs+2BLOAT2NEggSiVOtxEfgewsQtCWi8H1SoirakIfo45Hz0tk
/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJriwoaRIS8N2C8/nEM53jb1sH
0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcNfRAIUrNlatj9Txwi
vQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6dCxN0GNA
ORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog
2LNtcyCjkTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZA
grrnNz0iZG2DVx46x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJ
ELKItV//nCLBwNIP/AiIHE8boIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwj
jVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGjgn0TPtsGzelyQHipaUzEyrsceUGWYoKX
YyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8frRHnJdBcjf112PzQSdKC6kqU0
Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2E0rW4tBtDAn2HkT9
uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHMOBvy3Ehz
fAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVss
Z/rYZ9+51yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aW
emLLszcYz/u3XnbOvUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPt
hZlDnTnOT+C+OTsh8+m5tos8HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj
6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E+MYSfkEjBz0E8CLOcAw7JIwAaeBTzsFN
BGbyLVgBEACqClxh50hmBepTSVlan6EBq3OAoxhrAhWZYEwN78k+ENhK68KhqC5R
IsHzlL7QHW1gmfVBQZ63GnWiraM6wOJqFTL4ZWvRslga9u28FJ5XyK860mZLgYhK
9BzoUk4s+dat9jVUbq6LpQ1Ot5I9vrdzo2p1jtQ8h9WCIiFxSYy8s8pZ3hHh5T64
GIj1m/kY7lG3VIdUgoNiREGf/iOMjUFjwwE9ZoJ26j9p7p1U+TkKeF6wgswEB1T3
J8KCAtvmRtqJDq558IU5jhg5fgN+xHB8cgvUWulgK9FIF9oFxcuxtaf/juhHWKMO
RtL0bHfNdXoBdpUDZE+mLBUAxF6KSsRrvx6AQyJs7VjgXJDtQVWvH0PUmTrEswgb
49nNU+dLLZQAZagxqnZ9Dp5l6GqaGZCHERJcLmdY/EmMzSf5YazJ6c0vO8rdW27M
kn73qcWAplQn5mOXaqbfzWkAUPyUXppuRHfrjxTDz3GyJJVOeMmMrTxH4uCaGpOX
Z8tN6829J1roGw4oKDRUQsaBAeEDqizXMPRc+6U9vI5FXzbAsb+8lKW65G7JWHym
YPOGUt2hK4DdTA1PmVo0DxH00eWWeKxqvmGyX+Dhcg+5e191rPsMRGsDlH6KihI6
+3JIuc0y6ngdjcp6aalbuvPIGFrCRx3tnRtNc7He6cBWQoH9RPwluwARAQABwsOs
BBgBCgAgFiEEdodNnxM2uiJZBxxxsoi1X/+cIsEFAmbyLVgCGwICQAkQsoi1X/+c
IsHBdCAEGQEKAB0WIQSilC2pUlbVp66j3+yzNoc6synyUwUCZvItWAAKCRCzNoc6
synyU85gD/0T1QDtPhovkGwoqv4jUbEMMvpeYQf+oWgm/TjWPeLwdjl7AtY0G9Ml
ZoyGniYkoHi37Gnn/ShLT3B5vtyI58ap2+SSa8SnGftdAKRLiWFWCiAEklm9FRk8
N3hwxhmSFF1KR/AIDS4g+HIsZn7YEMubBSgLlZZ9zHl4O4vwuXlREBEW97iL/FSt
VownU2V39t7PtFvGZNk+DJH7eLO3jmNRYB0PL4JOyyda3NH/J92iwrFmjFWWmmWb
/Xz8l9DIs+Z59pRCVTTwbBEZhcUc7rVMCcIYL+q1WxBG2e6lMn15OQJ5WfiE6E0I
sGirAEDnXWx92JNGx5l+mMpdpsWhBZ5iGTtttZesibNkQfd48/eCgFi4cxJUC4PT
UQwfD9AMgzwSTGJrkI5XGy+XqxwOjL8UA0iIrtTpMh49zw46uV6kwFQCgkf32jZM
OLwLTNSzclbnA7GRd8tKwezQ/XqeK3dal2n+cOr+o+Eka7yGmGWNUqFbIe8cjj9T
JeF3mgOCmZOwMI+wIcQYRSf+e5VTMO6TNWH5BI3vqeHSt7HkYuPlHT0pGum88d4a
pWqhulH4rUhEMtirX1hYx8Q4HlUOQqLtxzmwOYWkhl1C+yPObAvUDNiHCLf9w28n
uihgEkzHt9J4VKYulyJM9fe3ENcyU6rpXD7iANQqcr87ogKXFxknZ97uEACvSucc
RbnnAgRqZ7GDzgoBerJ2zrmhLkeREZ08iz1zze1JgyW3HEwdr2UbyAuqvSADCSUU
GN0vtQHsPzWl8onRc7lOPqPDF8OO+UfN9NAfA4wl3QyChD1GXl9rwKQOkbvdlYFV
UFx9u86LNi4ssTmU8p9NtHIGpz1SYMVYNoYy9NU7EVqypGMguDCL7gJt6GUmA0sw
p+YCroXiwL2BJ7RwRqTpgQuFL1gShkA17D5jK4mDPEetq1d8kz9rQYvAR/sTKBsR
ImC3xSfn8zpWoNTTB6lnwyP5Ng1bu6esS7+SpYprFTe7ZqGZF6xhvBPf1Ldi9UAm
U2xPN1/eeWxEa2kusidmFKPmN8lcT4miiAvwGxEnY7Oww9CgZlUB+LP4dl5VPjEt
sFeAhrgxLdpVTjPRRwTd9VQF3/XYl83j5wySIQKIPXgT3sG3ngAhDhC8I8GpM36r
8WJJ3x2yVzyJUbBPO0GBhWE2xPNIfhxVoU4cGGhpFqz7dPKSTRDGq++MrFgKKGpI
ZwT3CPTSSKc7ySndEXWkOYArDIdtyxdE1p5/c3aoz4utzUU7NDHQ+vVIwlnZSMiZ
jek2IJP3SZ+COOIHCVxpUaZ4lnzWT4eDqABhMLpIzw6NmGfg+kLBJhouqz81WITr
EtJuZYM5blWncBOJCoWMnBEcTEo/viU3GgcVRw=3D=3D
=3Dx94R
-----END PGP PUBLIC KEY BLOCK-----

--------------FKyek49m5A3wco0f6MYbI0Sg--

--------------DJjSN0sHotis42IaEiDVpWBt--

--------------zosxgT6EdHIKIy9jQ799RMo7
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEopQtqVJW1aeuo9/sszaHOrMp8lMFAmk3/O4ACgkQszaHOrMp
8lNwSBAAn1SXDEikuTYJoENets1mVUGI3kLMQPAf2QLsIer4PoBCOgYTDBPcPD+o
Hpo+BoT6WsO4Dtc0HryJFnTQAy51KXhmog2YMwk2mm3Q5VTP13itLJt1i8xDOf2e
Asog7FN+Cj97JWialNMaYhm/fz05powdCSQsILQhQqtXx6rQKWbmZiNtDbWlWjMz
Y3paZAcPTaJriokKg7IXWP1Ov66x11hglKIG04ZSJDrZpiq2UJhjVG5j90mrtnYJ
PLPVfXhL2zTPNjCCq2jxglnbFYcMyceE3aEVsxSZ+/UZ6StYXzXxL12cta5hv5N+
OBZS74CQ/4MQ91YZ0MnlPVqL0HVmqbVnJ/OI4lrG3kosTJ8HiwyF5yp757WPqhkt
Cm6NAvuOJYJkYVFYZoi6SHGXsujEUXDaNoUMV1BRELlDLIOyNDlmenjtWTsQy+A6
A6MW4Ngw1deg29AO3IMYNQ2IH7qI7A4tXSt3Z44I8hGwOx/Sgi2M/AmCLf3LQzf/
1SLyU5GQeybQxhC3BVn+dXWm6J/UauXzvtIHu0zTSTjFlNnNH8gvyhyMDkdOSODW
Fhq6sPpVRh8zz9OHuVYvmV68IDHevP8IQ57L0vcBNtZfKuDrtyZffHO74pfN2Oi0
mWJF4SCT9UX0iZHdI/OagEPyO+T8h+/khc1TYUUq6WpOjf4aUro=
=980m
-----END PGP SIGNATURE-----

--------------zosxgT6EdHIKIy9jQ799RMo7--


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 10:42:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 10:42:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181427.1504480 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSvBD-00055N-UC; Tue, 09 Dec 2025 10:42:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181427.1504480; Tue, 09 Dec 2025 10:42:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSvBD-00055G-RA; Tue, 09 Dec 2025 10:42:51 +0000
Received: by outflank-mailman (input) for mailman id 1181427;
 Tue, 09 Dec 2025 10:42:50 +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
 <SRS0=yIuS=6P=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vSvBC-0004Ft-3p
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 10:42:50 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cd719537-d4eb-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 11:42:49 +0100 (CET)
Received: from SN7P222CA0022.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:124::7)
 by IA4PR12MB9787.namprd12.prod.outlook.com (2603:10b6:208:54d::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.7; Tue, 9 Dec
 2025 10:42:44 +0000
Received: from SA2PEPF00003F64.namprd04.prod.outlook.com
 (2603:10b6:806:124:cafe::24) by SN7P222CA0022.outlook.office365.com
 (2603:10b6:806:124::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Tue,
 9 Dec 2025 10:42:44 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SA2PEPF00003F64.mail.protection.outlook.com (10.167.248.39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Tue, 9 Dec 2025 10:42:43 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 9 Dec
 2025 04:42:43 -0600
Received: from [10.252.147.171] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 9 Dec 2025 02:42:41 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd719537-d4eb-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=f27g2U2w+5ZlVlAmTDyv4+ewj8qhi2B0rSLss6gYle3TUS2nLvBeJWYEop2ocZqAP5qK8MTBqIgAzoXC93FZuOTAWMSJXqRyQJH9yfbGzRxfveTUdoxxjHZYnpG+ZzLKkZHcrKAjfnNNyT51bPHwK4jDccBfpD12igBiwNSosOmuP54Bj1P6tZbwMt6wb7oG7uIBuzA9h1BGj+Zs17Cu0Pj6hnSvdL0yRaYAZvGf8eRwjzbarij6DyfUIJOm2w54arYQn+U5PIaLSR2Dv7VLn+m6beuswYpZyIg7b9g2lsY5b8oQPM8N/h66kYAwgTbFQgr/nveijtDAYEdAjE3KCA==
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=ZOevnLtBHKOc4v/CbKgN2Q0ADAYGKTP0fsSB3dprXic=;
 b=tzRrqGid4Emg3jMuLyUaMp78g7M/gEZ9LsA6Se9jkUt8m2bSDofdppUO9blqXgr3whZl+p8lKzOA3dtdqgV++BtnN6l+DQXMzc8J8+OXXfZBkCDT7buaFK5Tf6FcrKDM/NnkEzh0d63uBnGlv6wxz4GFB+Srn4/QpVmCeAz2eoDR22+Shq/4I9lczPLx0wgC374S9g/3S80YrST0GlG90j+jHu/aEBHEvZOQT6joCM9eLeF+zh8dUXgXCe66JiMSzhEDKB4RVM9xY6JeWUI1IbIEWpfS96OvBe0bvlyIIhvvjtdnALJR6bigFkV7QZ1syxJ7vPm3G9qZsJeHpPrtVQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZOevnLtBHKOc4v/CbKgN2Q0ADAYGKTP0fsSB3dprXic=;
 b=q0IPljncVSZrfeoyJBBvJQrGZuTrYegpRfpozKyG11irQJyKMRNTIR0yslVoeUOQCcv68RMQx+/OQP3SVDJHaseZTRKeH7YhsE+2uW1tT/EOCC2QUaJOv3sgCg6JC6Sn4XPxK31O0w0u/CSux35/raJcKscqFAZqg+oB15yTAV4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <e40b3fba-5ca3-4ab5-9cb1-f285480187d6@amd.com>
Date: Tue, 9 Dec 2025 11:42:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: Set ThumbEE as not present in PFR0
To: Bertrand Marquis <bertrand.marquis@arm.com>,
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <b9e9ec4a393b34b8872a87335db2bde707973c0c.1765276607.git.bertrand.marquis@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <b9e9ec4a393b34b8872a87335db2bde707973c0c.1765276607.git.bertrand.marquis@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003F64:EE_|IA4PR12MB9787:EE_
X-MS-Office365-Filtering-Correlation-Id: 7fe0403e-79ac-4ee1-b8a6-08de370faf39
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?S3B1bVJBcytXTW44NG5nOVV0cTNwaEg2QW5Ga3F4SWE1bEh1OU1qQ2lIaHg1?=
 =?utf-8?B?TGZSM0xpZzkvNitSVWtBbnFEYjNXR2huWEZ2MUZoQ3ZSdmhuRk5aUGR4VDhv?=
 =?utf-8?B?NTd2a1FjanBDOEtmbmxXSk9va3hVNnMxbTNFYUhmZ0NtOEk5VUtNOXppd3Fx?=
 =?utf-8?B?VTRZc2FsTDJLR0c5UVEvZE0zdEY3a3lKbk9jQkZjQjNqcGxoRkx1SUdVQjNZ?=
 =?utf-8?B?ZDF2bjViRk9ncTFFUmY3alVzNzhMYkNleXlmTG1GVXh4WitIVHYybXowOEx5?=
 =?utf-8?B?WjAwL1NmK2VnT3pqTWZhVUIwcnRYRDVDaFNXTmlkUGlSeEtHS0poUCtaUEtz?=
 =?utf-8?B?STlkYTBqcUQ5bVNTdmk2OVU0MU4rNXVaRnRibjhNMmYzNDFxN2s5YlZiY1FH?=
 =?utf-8?B?dGQ1N1BaSDE5RXJFRmxCaWZUOUV1MTNSVlNZeXdPN3lRVnFOc2IwSG9xMmdO?=
 =?utf-8?B?Yy9wcGpSdUV3YVRudDV3bWxQZEk4TnNhclVEeW45R1B1OFlHYThXR0cxWXJ0?=
 =?utf-8?B?cmlUY053ZmxGVkRJcVNSMHdzTTlHbEI0WXB5ekVaSGJVTWNBNFpSSTJ5L0Rn?=
 =?utf-8?B?YWRKaVFTbWZudC9ra04vL0lSdjR5SGFuTDQ2dFNmWjlRd21Fd1g1akwwdVFh?=
 =?utf-8?B?Z3JKdDJRZFJBKzkyY3hIdnoweDJ4eXdJRzQyS29ZNUx0VmNPUGNPMnJCaXE3?=
 =?utf-8?B?Z2ZEV2xwUC9wdjlEKzJhSnhiNGNjUmo4NFZJQ2dyellpVUVjVkE1SnhJUytl?=
 =?utf-8?B?cjM1d2N1OS90YytpYXZ2L28xQmZMK2IvQWxWcng1L3BEU3FOWVVuczdEZ3Fw?=
 =?utf-8?B?RXpHR21JTnhjSkl3eC9vSHhUY0Frb3J3MVR2OHJGb2c4Y0FHQUxpVmlQNkNN?=
 =?utf-8?B?ZmV2RWpDaDRiYlBYOTArL1VJdlgveGNOSi9XOEVOTnRrMjV4VGNIaGxNUGx3?=
 =?utf-8?B?TWtIWlZsZG91M2pOTWJrVHhHWlpUZHhHOWNTRFhxSkdMRFVzNFBSdE5hOHFp?=
 =?utf-8?B?YXhKckpzUk9Sa280SUM1SHQ5blEyeHFvbWJPeWtJRDBYR3BiNnhwaHRkM2U4?=
 =?utf-8?B?YXAzclNVcGF4UDhYeHZWRnVKL0lxR2xVOGVaL0cwZm5xeHFTd2xRUHlrOUh6?=
 =?utf-8?B?S2xEVUNCSmtDNlBWTlBZenZGVm85VXA0ZFk4OWI1dVpReFVvZkZrNUVNVEgx?=
 =?utf-8?B?ZFN5RFQrSXZNMGk4UjJGdzIzQ3N2dGdYVEhydFFNU0F3WDU3dENubWo0TGsz?=
 =?utf-8?B?VlYxTXhIV1hZM1RtSVFDNjV5WE9adDM0QXU0d1UxTlIzVmQ4YXc1VThJZkdR?=
 =?utf-8?B?OFNZaTQ0YXFyT3Y3UG1ncEJhWVRROFNIK3Y1amg4YzI4WjN6WVM1aU56R1VP?=
 =?utf-8?B?L2lqWnZtQXpxZDhKZ1Vrd0daTzdseWpkV0FmZVlCdUZXU1U2STNsQWUrQjEr?=
 =?utf-8?B?b2hyNHR5a3JyWENHcEZ5SG1EMVMwYkIvNytwQ0NiZVkrR212cnlkQmNSenQ2?=
 =?utf-8?B?ZmcyTEVmaEViSVVtcXo0WGE3Ukozd29nNGR2cFVDMUp5WndiKzdXcWlyTjFI?=
 =?utf-8?B?dzllb3pRVXcrdEFYMWxuc1gwdEkyWVExaGRCbnBMNUFVZG5sQUFtZlMxNFZ0?=
 =?utf-8?B?bU5ibWlDbE5LMUEwRXVjM21wTkVGck4vUXFVT1RaeTFvVnBCQ1k5clFobExL?=
 =?utf-8?B?dmYva0VzbWNUWHkxWjhIMklPdjRlRng1WjVQdXYxa0xZNlBhTWdZWGJWQm1h?=
 =?utf-8?B?TmZkbTlDYlhUTHQ2V0I4NUlaanZ6T21SVFc0LzlkYWtJbmFEL3VlTHNhbXZU?=
 =?utf-8?B?dmNMQnJpU0xSaTlBYmFOMUFjc3o0dlZhUldrNGptU253bTlWdTBqZVB5THZP?=
 =?utf-8?B?amcyOExVNXZxQjRZYWMzWnI3ZGx2ejZIM296OFNTQ0wvdnlZMWlJcVRQUTA2?=
 =?utf-8?B?M200UWxLWjFUenNRVlE3dXRLRm1CYjlmOVVoMm1FaTRQUlVxTjVWV0RUR2tS?=
 =?utf-8?B?TUwwdzh0aDl1WnlXR1dmM0dLMzFTOUYwZTk2Nmk4TXpvZmNNcGVkMnZWZ3BR?=
 =?utf-8?B?RDFPTEJlWHNZY1ZLQkN4Ni8yUWNMWlU1dVRnODVPc1l3TnJUdVpRbzYyZE40?=
 =?utf-8?Q?DzH4=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 10:42:43.6362
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7fe0403e-79ac-4ee1-b8a6-08de370faf39
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003F64.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA4PR12MB9787



On 09/12/2025 11:37, Bertrand Marquis wrote:
> Force ThumbEE support to not available in the version of the PFR0
> register value we present to guest.
> Xen does not support ThumbEE and will trap all access to ThumbEE
> registers so do not report it being supported if the hardware supports
> it.
> 
> Fixes: 5bbe1fe413f9 ("ARM: Drop ThumbEE support")
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/cpufeature.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/xen/arch/arm/cpufeature.c b/xen/arch/arm/cpufeature.c
> index 1a80738571e3..4cde208e721a 100644
> --- a/xen/arch/arm/cpufeature.c
> +++ b/xen/arch/arm/cpufeature.c
> @@ -225,6 +225,7 @@ static int __init create_domain_cpuinfo(void)
>  #ifdef CONFIG_ARM_64
>      domain_cpuinfo.pfr64.amu = 0;
>  #endif
> +    domain_cpuinfo.pfr32.thumbee = 0;
Let's not split AMU section. Also, it looks like a convention here to add a
comment about feature we disabled. With:

    /* Hide ThumbEE support */
    domain_cpuinfo.pfr32.thumbee = 0;

Reviewed-by: Michal Orzel <michal.orzel@amd.com>

that could be done on commit.

Do you have a pipeline link?

~Michal

>      domain_cpuinfo.pfr32.amu = 0;
>  
>      /* Hide RAS support as Xen does not support it */



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 10:48:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 10:48:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181448.1504490 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSvGa-00064Q-LH; Tue, 09 Dec 2025 10:48:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181448.1504490; Tue, 09 Dec 2025 10:48:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSvGa-00064J-I3; Tue, 09 Dec 2025 10:48:24 +0000
Received: by outflank-mailman (input) for mailman id 1181448;
 Tue, 09 Dec 2025 10:48:23 +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
 <SRS0=/rha=6P=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vSvGY-00064D-W7
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 10:48:23 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 93e6141e-d4ec-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 11:48:21 +0100 (CET)
Received: from AS9PR01CA0005.eurprd01.prod.exchangelabs.com
 (2603:10a6:20b:540::15) by PAWPR08MB9781.eurprd08.prod.outlook.com
 (2603:10a6:102:2e6::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 10:48:12 +0000
Received: from AMS0EPF000001AE.eurprd05.prod.outlook.com
 (2603:10a6:20b:540:cafe::7) by AS9PR01CA0005.outlook.office365.com
 (2603:10a6:20b:540::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.6 via Frontend Transport; Tue, 9
 Dec 2025 10:48:16 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001AE.mail.protection.outlook.com (10.167.16.154) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Tue, 9 Dec 2025 10:48:12 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PR3PR08MB5819.eurprd08.prod.outlook.com (2603:10a6:102:92::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 10:47:04 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d%4]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 10:47:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 93e6141e-d4ec-11f0-b15b-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=kDK8vclbXjDRh+S3gi7g8BesS6D0y3FWsKEh6xz6MQNgOstEqHgjateXK+j7p0aa/Af0zM/ljYVEz+bJ3nA7wWWXfsgr2a57T9gemgcb4At4DaaTjib7gp6BQiXJLMsE7S1flEy/aNb1GfboFwr/kP8eYTSpe4QVMfHL/RxfqyZ1GWBIu5mSsA9anoTrz1u3rKAOzLBthmxX8o1RmBhhl9XqddRkmPef8fX3asZB+lRs7GjIsZxwHquSHT1YXL1xb8TYq9RgAXQTPKaLT4uAzQEtUDMzU6IOJadMoiL49y9CxZqi/dVn3fLCUhXaSEQK/WBXdERlO5A0beGmb6bcXw==
ARC-Message-Signature: i=2; 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=k9KoBxccSWB3/hnf1bKUsSDoEfA0C6+2JdJw9KFyMkM=;
 b=HVyUJzVToVX1zhhpmxE1MWbPgTc+4UFoa3/QkLDlap7hT4g1JqhaSeQBFCksXbAYYcYlVtsKV2TS4Zf1b/WV1k68x2EGNl2DhA5rPXotskOmRt/hKS2TLFCHiIiWTrX8pWX8tW4q+aMZFWh9tMuHwLK2WiOQ0uWWt/s2g704+fW2+4ppUrezElaY7ysR3VETJMDa+JrAL4Muyh9nWtRCDEyVw1PlDtBrEbLXsJp3rpmfNN1Ff9GKp2G1AoOZ5LsmPn7thHqKdMM14kzVc3OJWA/3nndHy0Vo5hl5Nx+SeVZt9fN3BaNAgZnHvBfvP2AHlRldabj8cw/ka+MxUuvpCg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=k9KoBxccSWB3/hnf1bKUsSDoEfA0C6+2JdJw9KFyMkM=;
 b=op45+4twmf0h5pQM/UqAFmCCvIFtZqrmeZKOZ/siC2GxgkHkF0LiMURwCPTNCZULGdDl/WKs0YA7hNB6oPTMyqixxRpLqtk6GPfRKQJ3S77bCWn48Txqpj9aWAidJN45H8NJVokrgvx8oqt8dLX1hI0qbjvLyztxwork/tyEiLE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QKiCGLPjtGmjTTuUuZMmlVkRwf4/jKMKHo66xqrELLfY1LQJNKq2OEBaQUX3kICauLQA8nNXhr6uJmZXJo3VoW69zVo75C44PfvXvpNui0f8tS33qxRwN/7iVxRmgrYFHpq5IyL3RiDLwF6NhoGdIuQ9jb8U2l3mrold+O/SYVAaU7v8GGODPszXMBNDoYwgV7n+L8F+XjLaSA1zDWct3lxpxSI9rOLpThGNwr803jUsXfKSysTh2tEcQ9pJpfrBfvg2B/PdNDof3jYjIQivJIwgjfw/kAib9TLTN8IaumswTQq/+XP0gNPdcHigFhZ/6iyGB6d25C0wGbUJPdlJ+w==
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=k9KoBxccSWB3/hnf1bKUsSDoEfA0C6+2JdJw9KFyMkM=;
 b=oXbq13Db6hewKFB/VT6pyUWUa0aQ8r5zFTOZbzUW87DW/spUTLTIXNPtMiuM+YZiHqPfnyXNHByZfmwj+jM8E08H7rx+6tEBhIPcRBWdXIA3Rsbwzmzg2ud36vtUpKCHF0+zaLXo/rH+ZTMEkYWcNDBeRe+i4feJXpUou6ZUqaLgNnaEf9AO79Wk79iwRNWrQ+WZA2GoibZ878/FDqjL8rfwCRLB0avDTC+KBYxe3nhr3ahhQ45pjCWCzJuT1UYLoG2zFjjK6zo3ubP+ptkWulTi/j+NAfhsUJwZ6VfjeI7xcie+bCyPvKO8c4s+JQGCOP+RnAbUn0kofQHbQECnYQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=k9KoBxccSWB3/hnf1bKUsSDoEfA0C6+2JdJw9KFyMkM=;
 b=op45+4twmf0h5pQM/UqAFmCCvIFtZqrmeZKOZ/siC2GxgkHkF0LiMURwCPTNCZULGdDl/WKs0YA7hNB6oPTMyqixxRpLqtk6GPfRKQJ3S77bCWn48Txqpj9aWAidJN45H8NJVokrgvx8oqt8dLX1hI0qbjvLyztxwork/tyEiLE=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: "Orzel, Michal" <Michal.Orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] xen/arm: Set ThumbEE as not present in PFR0
Thread-Topic: [PATCH] xen/arm: Set ThumbEE as not present in PFR0
Thread-Index: AQHcaPfxR2UFZeCxt0WCBuHK00zE1rUZHyaAgAABLIA=
Date: Tue, 9 Dec 2025 10:47:04 +0000
Message-ID: <BEB23694-3E52-4073-9C5F-95666BDE09D2@arm.com>
References:
 <b9e9ec4a393b34b8872a87335db2bde707973c0c.1765276607.git.bertrand.marquis@arm.com>
 <e40b3fba-5ca3-4ab5-9cb1-f285480187d6@amd.com>
In-Reply-To: <e40b3fba-5ca3-4ab5-9cb1-f285480187d6@amd.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.200.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PR3PR08MB5819:EE_|AMS0EPF000001AE:EE_|PAWPR08MB9781:EE_
X-MS-Office365-Filtering-Correlation-Id: bb8fbb7a-e1fb-495e-2131-08de371072f8
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?Ertzk+qCMN7CRVUux8BRN84b0a95gpCnAZHn2R7zpVrB5eBYieBGVhqZZmR8?=
 =?us-ascii?Q?vE6hW4/XIFFRVKuJtWEALa9kwuMSDZsnzWgXBBYQR6N3SwtimlGSIqT3SFsX?=
 =?us-ascii?Q?9rdC9j74BDWRG9WJbwQXc0TqIMCabS/sUl4ivJsynGBXd29aN+6OHTfER6n1?=
 =?us-ascii?Q?vvqFx7CkneHJk+GgP3oIkfitXbjZSdHLKa+BPQlLa7XIGtUskWszQwN/LGub?=
 =?us-ascii?Q?p2K2GnutskVkOGrqYb/lcQDBd8XNdwlD8Ezmnnh7wbNK97uf4F/rqu9GcHRn?=
 =?us-ascii?Q?cFyWm+Nm7L9FiqbVxkSqLsuPzXEGy/fQEjmr83sbkykriF451I4eam2DqyUe?=
 =?us-ascii?Q?KkrQu0e7VFnW5FwM1kyb8ufLCHoBbmCq3bl039wp4i+SupHsDkylWlkCp8hL?=
 =?us-ascii?Q?AxQEM5mbJ0ayq63lEmRVqUD+mwdrCWBIIrNwsllQPueoSxLoLFb+uAkPeDX8?=
 =?us-ascii?Q?M9tYnrytGrChDmOqsDtpS6ne6VwmrewVoWCHONi//unMyBb7IVufMVYQ/x9z?=
 =?us-ascii?Q?fjbWKxn4eMpYwdo2C2Eo3GecJ9GevxFnm2iTc/QCZ8a4EPhnyXkwrXVZXYYJ?=
 =?us-ascii?Q?oPRolKMRQWOdtTbpDEzGJu463ebkEBb7f/jq5l8L7BU0AAobDWISlWctFgda?=
 =?us-ascii?Q?6C+7zskK87kZQZNvKy3OqRMMyHdcpOTMy++8TO4bLa7CbOHQ91RIVAAZikpW?=
 =?us-ascii?Q?/gCM6ZIxeRyEGPigswbsMTbi2vP5LyNiKdf/oPMsjaFHVx/p+u8o7brDBxA9?=
 =?us-ascii?Q?B+hiZNKKFhThn6MaQqC0x0dl8ZS3oMOQBUCyePKfOzRZ1MRtpZtKs4VZ8tkO?=
 =?us-ascii?Q?qSo+LTRUS1JpGe9epfsKM6yXssKwsESbj3ojnyUf1gl9KVmG1tQ8+490SkTP?=
 =?us-ascii?Q?kPLzEjUNiDslJemoI4j21Rm+MIwojDZa+LO0+H32uM/6YS84Ad6jj6HDAqKu?=
 =?us-ascii?Q?r5ecuOFuHYA3xHQRG7OsaPylbsWZHFniHGH7VlzwuoNQ0HLZRydJYzbboAsl?=
 =?us-ascii?Q?A9QtiWKkczzyEeR6dc0XCwRv4AQ5CG5WCEH4L4N2hRuJ5BLgtVAATtUoKhQ/?=
 =?us-ascii?Q?KX4X3KZNquyNJ3Nlps/aUWplE+r4954bDg0vX7TuTHb4ojyT3FmGoAL1Uiql?=
 =?us-ascii?Q?s1NokmCB0mNhJlORHH2yhKVcLQZmjlpIO4pYvWWI4AnX0E+5PDMVUcArQT02?=
 =?us-ascii?Q?8Ybo/csulj5ea9p+Uw/nE8W969V5BYtk7mjQ5gzRsUtUl9JKapt9ncZqG5Qc?=
 =?us-ascii?Q?ZCdQTQS8w5SoY5slvoYgPAxKX5V72ItGTRx9fk4/X+ODseYt+KvWr37cw2C2?=
 =?us-ascii?Q?9whtLu2qNr8JJOHozWX50GOTfRHEQeypqxBhpktaBRtdyRTH3CACjSzt1oge?=
 =?us-ascii?Q?fO5rSedgpj86F9sQIVgcK1V5QOhn6QUBs+jHnE66tYlM7coagXUwryvTQQIq?=
 =?us-ascii?Q?v6kFY37Y7hcbEYQ3c13jk+Bk7jsblpxV7JnJ30rRD5XvcUoTL+l6ygMvjdLH?=
 =?us-ascii?Q?vKLOV9CuOiVt6KMmaSY3Rkez9AwKq4E+o56W?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <311B3329C63F6C458AA5D4D7A48393CD@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5819
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001AE.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	7278be17-fa76-4f9a-ff5a-08de37104a89
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|36860700013|35042699022|1800799024|376014|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?uxmPOQX6Kg6AlzxWpiquwHQyutOykt8xLFsHBPO3Pi2jjrgOP+V51TBOXOSO?=
 =?us-ascii?Q?3EtQTa28GT8pB055K3t3evFnesPk07JcEQTC/tQrnWw91r3cx9TCwoAbOvYi?=
 =?us-ascii?Q?1FYH3TZb6BsLhQBjpK/atTM0odZpzRs41+iSs0tI+8DoYU91KxzoQIRjdC0t?=
 =?us-ascii?Q?Y9jyO8U6qVX+WkFeLCkSBjx7O/K9cNgczi1aD36g75t6dfJIEI7VpUvvPe1h?=
 =?us-ascii?Q?JVBYDHSW11yp95/jIHzBp9hjWovmg9e2NouU7RvBCtDJID2kX6z5UuRUP9Oz?=
 =?us-ascii?Q?QrB79XqJJLAS4Egxq/F8a3zBQ3cKlx1jsN/rfvkeTRxD9aBj6wkq5Q9I2eFu?=
 =?us-ascii?Q?UBOx/E5b1AuxncUF5lyiq8HJGcT0/LKLoaj+J23id2WUR9o0EH7wEQId7Ag5?=
 =?us-ascii?Q?T2RxIgKNfTO2hWmp3khpZR0hTsvQgFC72jOl6rtc+hDyseuFZ+eiIB2QYTLd?=
 =?us-ascii?Q?6txT2x5D0QaCITCfrwMWd/wGF+v3V51mclYpwhcueg6GoHqJls2Pywb5ls/1?=
 =?us-ascii?Q?6BnMCg9A0i1xc7Vw8UO6pNdtiQo1tbQHkpkCMYzCXO8Fmv6jLzTbBBLHbGc8?=
 =?us-ascii?Q?cQiRdpysNK9yCt43zkcAlyPIGkcjTAKG46supOa2mQ/R6gBm+hL5ilv5wxzo?=
 =?us-ascii?Q?tIvfdswvjaC0SWnvPrQOwU7Cwf/UHjXJ0c3UQ+Wdsr6WiKr5v+85Pb6gbcu0?=
 =?us-ascii?Q?4DkEp1hKYZECEUZB/klFUlUGthlZg6EWzShfB9yrF+q6wFTYzNhwnqdlARhm?=
 =?us-ascii?Q?XvaJBaW97WxxOMg4vP28hhV7oWg73PCARAx9wBepOMjiw8fNzHSMoXKULXuV?=
 =?us-ascii?Q?4A3zfYlOdcZWaK5HL+LrZs9Kd3ahpzk7rk0mPYeLawA3k2p1R+A3faX06RDp?=
 =?us-ascii?Q?2N0oTZ/3mFMhKSu2NoFitE4uhIJAq3jIxvnfh9DTEawr2P1aBq1E1byqEegb?=
 =?us-ascii?Q?qhfwKtTqDxNhCIlF+FAZJY2Fvboj5hrubfv2o9X5FuJSbXkjZBcSy5lfuEZU?=
 =?us-ascii?Q?zToRP/u0wmDkQrV4IFNcz43twhmsC5+egIUrb1DAQStwQ6xaMJE2b3PfjrXV?=
 =?us-ascii?Q?yIkJIXn/lkURhGPWo5++EelOE7PN24fv+y6kT5QePne+lkO5Ms4Hoaotv8Op?=
 =?us-ascii?Q?iWbSbuOLGRw6NJ4qH/Ntme1wtERTOanj382n7yyXBZajHUhrZeAkdjFhnvgu?=
 =?us-ascii?Q?EiiCf+aUP3qPqRikF12QPJJzPCWtGECMnJtSYqV5r+/hOFUsSFDT6B1w901n?=
 =?us-ascii?Q?tULO2SyZIHguR6yNKiaJdj+AJvC2z9RvBUYoZTyt4tIQDgXZfzY13LUG4o2e?=
 =?us-ascii?Q?lrGPn7lCVBocpWp/BXryhyBQPafH8/LmQ7vfKWSkfQFzXDCAnP+Nx8nL4BH2?=
 =?us-ascii?Q?lhINWlHcgdXgC0cbhJbyD8zTaesnSZjYffpJ3Y4EYGMg4r9vFDzH6nZkkQMH?=
 =?us-ascii?Q?lD9ysLIE5rO+ScYSsgL2fnK7dE6ePuQh+IFOK/B3kXFFyUl7ygHM2816JGVB?=
 =?us-ascii?Q?tdYJ3LgxBY0PDwG3v8r2gCa1yOTLhG9Kxcz1z8cSuIsaVutZ/yDXV49aM5r8?=
 =?us-ascii?Q?4WIavc/6YPpm59iZgMs=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(36860700013)(35042699022)(1800799024)(376014)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 10:48:12.0176
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bb8fbb7a-e1fb-495e-2131-08de371072f8
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF000001AE.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB9781

Hi Michal,

> On 9 Dec 2025, at 10:42, Orzel, Michal <Michal.Orzel@amd.com> wrote:
>=20
>=20
>=20
> On 09/12/2025 11:37, Bertrand Marquis wrote:
>> Force ThumbEE support to not available in the version of the PFR0
>> register value we present to guest.
>> Xen does not support ThumbEE and will trap all access to ThumbEE
>> registers so do not report it being supported if the hardware supports
>> it.
>>=20
>> Fixes: 5bbe1fe413f9 ("ARM: Drop ThumbEE support")
>> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
>> ---
>> xen/arch/arm/cpufeature.c | 1 +
>> 1 file changed, 1 insertion(+)
>>=20
>> diff --git a/xen/arch/arm/cpufeature.c b/xen/arch/arm/cpufeature.c
>> index 1a80738571e3..4cde208e721a 100644
>> --- a/xen/arch/arm/cpufeature.c
>> +++ b/xen/arch/arm/cpufeature.c
>> @@ -225,6 +225,7 @@ static int __init create_domain_cpuinfo(void)
>> #ifdef CONFIG_ARM_64
>>     domain_cpuinfo.pfr64.amu =3D 0;
>> #endif
>> +    domain_cpuinfo.pfr32.thumbee =3D 0;
> Let's not split AMU section. Also, it looks like a convention here to add=
 a
> comment about feature we disabled. With:
>=20
>    /* Hide ThumbEE support */
>    domain_cpuinfo.pfr32.thumbee =3D 0;
>=20
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
>=20

Ack, happy if you fix that on commit.

> that could be done on commit.
>=20
> Do you have a pipeline link?

https://gitlab.com/xen-project/people/bmarquis/xen-ffa-research/-/pipelines=
/2204086293

Cheers
Bertrand



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 10:52:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 10:52:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181456.1504499 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSvKB-0007dE-1q; Tue, 09 Dec 2025 10:52:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181456.1504499; Tue, 09 Dec 2025 10:52:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSvKA-0007d7-VS; Tue, 09 Dec 2025 10:52:06 +0000
Received: by outflank-mailman (input) for mailman id 1181456;
 Tue, 09 Dec 2025 10:52:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=sSjK=6P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSvK9-0007d1-UT
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 10:52:05 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 18870054-d4ed-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 11:52:03 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-477563e28a3so39618885e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 02:52:03 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d353c9esm29914820f8f.40.2025.12.09.02.52.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 02:52:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 18870054-d4ed-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765277523; x=1765882323; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=k6HbfaLHKGHnedjKvYHaklBUTkpTR/lW9/O/uTXtBrI=;
        b=FGXGfGJJiL3CxoNW6xwvfY/fVHR8/gkV2LGldgCrZZ9owte0Yd5QK/pK0z7ZLdhBHI
         iwpDcbe8jwsVEp9d92aYRro3i/UyqSdBbSuKVrVABZnvcLDVa8LQeuC/xrwUwWNvLcXT
         KgHS9rQPIem+0rqDuQnBbgvbMLyYkfJof2sgggTqRp7INUnx4zfaxGTi4zbMYC2kZy9A
         /IlR4rQcZmBeKh55KzlDMvNCdQdQbhS3ysZF0x0AVs9ub9toFANhHKxbe1P6nDAL0E8u
         SthVH/pm8S952JY3HRU+af0uiWkdPI7rZYLimq2DMvfaVkQ8nhBoQNXr0A+oENOLVUlc
         4OPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765277523; x=1765882323;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=k6HbfaLHKGHnedjKvYHaklBUTkpTR/lW9/O/uTXtBrI=;
        b=CLiFYKpudUJBf2ARkc5Enowb5oXMQkPI1OH5UHKgWnXQbXT6yzfEc2lPosRQWjL6mp
         Eto2z39mqJAoYE/N0QEGacTIEHzQLEgTF5FGcS2YAihSXejBhwkkE1TZyvcsz0am6jDP
         +zagMF5R/1UaFfOXeR7FZMFtPetscEpOWrDu5LbO4ZufKJYsLN3ve0P40dWu45GCSJhC
         a3HslwOMjwuXN4rc2H5VRUoFcp/VNGXMkU7VP/bvido/EOwwb0F3griS6o3D+aj1rn84
         lDegiRlNZcI5vRItfPEPPWu/CjAGwdDY+7KPxl0gGEHL3loaDsL/0rOZraWP3aV6nVd1
         HbRQ==
X-Forwarded-Encrypted: i=1; AJvYcCUSv8NFCVvyjrYzK64xLgRtoqp89lpzAj85HanMHlMap+f0EDvbpFfjjH3Y5/atpPMVVLuPVvTTRy8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz0Xl83JO3YnPZ1eXyYlCBC/kW78jEdjmW3VTE4EETMKhVj0qCX
	BsgVZ0imHzxN6FlboS4C8j3KF0Sb611Wy2mVcbLrMRW8J8+B7jR9JFicAjDiMmbZTw==
X-Gm-Gg: ASbGncunsoAwMEbsLbvk7PMl/SP7AtQjVv/k1mr2cTgpjB2Cjd6A5UeINf2MqmIp64e
	NcUgz6PJKRFHaoAwkaZ2ispCoXeKDcGwbR6/gCh3xe9iRtgGDhHy7NEt2/VKj3HKxNK/8LeG7k6
	o+Nz7StrXOBRNikndADrq19xkDz8Hd/jms7Hb4DEfJ4nH4f9dg+C6WYnUvngdQI/nvqATr5wIJL
	wTI9fUwhaKviDg97kc+rEwMcFEN0WSoN3xa62PUMpQPqZCFHfUWvU2A7uu7OeXjVG9AZ7Jk1TL6
	PxrvodXiqZX4vDMV+bxgPYhjjAvYgIWNBv8DGmsGTZY+WA1RsmxqYc1YqW4l6GeaTqmvPKwVTvb
	2cNUiG0UJgfxRSTyAZtAWcH0RgZyV08ysxJQMOrPzjUDUfmEA88zEJnTEzIcrlGE/sTuBojJRpl
	sW/cfty5tXeZwcE8OAg5DO3QnZf7cKE1xn0AkzwIgRQPfLXQBMdw00iX9oFCV4sevjewwvvbqNr
	ds=
X-Google-Smtp-Source: AGHT+IH6PtTbEnSb0kD3hGUF/UkAGqohpIjFl6+nWGXp9Je+5GIahpAOG7vRrvbdQeSetquFOIjrvw==
X-Received: by 2002:a05:600c:4585:b0:471:665:e688 with SMTP id 5b1f17b1804b1-47a7fa60ccdmr10530955e9.17.1765277522839;
        Tue, 09 Dec 2025 02:52:02 -0800 (PST)
Message-ID: <670acff3-9c98-43ed-a827-97d97d928d6b@suse.com>
Date: Tue, 9 Dec 2025 11:52:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 03/19] xen/riscv: introduce VMID allocation and
 manegement
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <7805662d530eca29c5b0d0afa05a3cd0aac963bb.1763986955.git.oleksii.kurochko@gmail.com>
 <dc12d791-c76e-499c-9731-0163c95203da@suse.com>
 <369f14b0-8ed9-43ef-b5eb-7f5df9e2c642@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <369f14b0-8ed9-43ef-b5eb-7f5df9e2c642@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.12.2025 11:35, Oleksii Kurochko wrote:
> On 12/8/25 5:31 PM, Jan Beulich wrote:
>> On 24.11.2025 13:33, Oleksii Kurochko wrote:
>>> --- a/docs/misc/xen-command-line.pandoc
>>> +++ b/docs/misc/xen-command-line.pandoc
>>> @@ -3096,3 +3096,12 @@ the hypervisor was compiled with `CONFIG_XSM` enabled.
>>>   * `silo`: this will deny any unmediated communication channels between
>>>     unprivileged VMs.  To choose this, the separated option in kconfig must also
>>>     be enabled.
>>> +
>>> +### vmid (RISC-V)
>>> +> `= <boolean>`
>>> +
>>> +> Default: `true`
>>> +
>>> +Permit Xen to use Virtual Machine Identifiers. This is an optimisation which
>>> +tags the TLB entries with an ID per vcpu. This allows for guest TLB flushes
>>> +to be performed without the overhead of a complete TLB flush.
>> Please obey to the alphabetic sorting within this file.
> 
> Do we have a definition of alphabetical order? In xen-command-line.pandoc there is
> `### vm-notify-window (Intel)`, and I would expect `### vmid` to appear before it.
> Am I right? So the ordering should be: letters first, then numbers, then special
> characters?
This particular detail of sorting isn't well-defined, I don't think. If in doubt,
I'd use C locale sorting rules.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 11:22:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 11:22:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181473.1504509 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSvnn-0003fY-9g; Tue, 09 Dec 2025 11:22:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181473.1504509; Tue, 09 Dec 2025 11:22:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSvnn-0003fR-77; Tue, 09 Dec 2025 11:22:43 +0000
Received: by outflank-mailman (input) for mailman id 1181473;
 Tue, 09 Dec 2025 11:22: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 <SRS0=sSjK=6P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSvnl-0003fL-GG
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 11:22:41 +0000
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com
 [2a00:1450:4864:20::42b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5f44ba32-d4f1-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 12:22:40 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-42e2e2eccd2so3577460f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 03:22:40 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbfee50sm30825247f8f.14.2025.12.09.03.22.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 03:22:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5f44ba32-d4f1-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765279359; x=1765884159; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=N38n+TSc0MOxMxDv+Man2a0Vs3a4xgLqAwvjPVZxBZY=;
        b=D68OZaRO5DJ1A3DgsK8wGGEkxNwVjVHszzYNxCE9kx+oXIQ6S+ireogP65NvhCzog8
         56Oq0cnzg7UdAhONadABq8ID6L7AQwcWsVRKAv5/McumJyz4if6arU57JOYCbfPGPgZU
         VPXxQsnzozn+mWt0VmWHwUSs5Ik3I0gv8nHMgtRk5s95C5OcoHAmfhNWr1NU44wCILch
         4NE1ue5JNeOuhXABOiFkshe1KXR5XDp3DJcKiUH1N4lyE3qXddUga8NULTKysf616UCv
         DZzA0hJUcjMH+roQAI5PzFnuB9C+caK5Sm2eRVeRsymuNYDgesU7LWbYMaprSK/0qxjs
         PDKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765279359; x=1765884159;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=N38n+TSc0MOxMxDv+Man2a0Vs3a4xgLqAwvjPVZxBZY=;
        b=SIfOjjdvyvealcaF5mhGKC3EUYt8ZWL4v4EY+erSOlaDa+jfZrao0eq8TI1nj1dyr/
         K2c/eG+3e5/SW2N0HjTLK1/KWMcBG7O+0q91EPdVr/TMLNV3321NDvSLhgtMRg2qk4nf
         HpjB/QiO9ByaSh9jBczwRTPpyazb5SaDg9BjLmMd8y3UqDcztz9cJTRmfvvTt8rxivT1
         u3QzqpzjtVr91p2/78fhULQMPA1JlGOHC7Cx4IqczWTdkZJP6yLR95rS4iWotRAWRq/p
         0mJh8o5jEMdBToUH5XgLMwW1axIXzoYwLRRsQbCavmiSI2Zp5gUSjxPzzeRz4EPC1/Uz
         c1OQ==
X-Forwarded-Encrypted: i=1; AJvYcCXIykA5sSyJRHYgzsCzjlQ+7JIR80FmyldEz1r4OrHE0rb+EPIHi2qpwPZkSzFQu+2PGMDNVQ4Z97o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwfPyS9xB8ftSF3cEypyOrCsRWLtTir8zlOz2cPWllSSngbuVUS
	IHbjvbcRPMhaiaML60kY6XrO8pR7xHJd68Q7BDzejjtPWPwdLqiugFX/wNxiimDupg==
X-Gm-Gg: ASbGncuJx2qyWQm2m7U0sS4rUNzhdcrGjqaMlMaEtbUL7CQSs9ykCU4COFMOWQ1YGSA
	TzaYtjZQKnA6L/eLiTqUxOlqfqdxIv3MGghgLm7ZKm5nrl3nrMVNv/6RF74rH/S8+6bge1+hevz
	5TbbzzZ8RgU+SfrrGB3ZE/exW54A0XW4+FYsGMqgNkOm94eJ1YQ+t7SGn3kptCS9iWLUtaQ003J
	n0crhanR8/omgwTeI1t3w9sNgIeQXNEA71ndJVqe/CYTcJ1ulgPu8K8w/9wgJWzIAS9SFNVh70b
	WRuhydUWh6pA8RulbKckp//ykbDP6bW0s7WkqO6q7Th/20W3vj+WcSojh4oSbNWbGZSV7xCxg7r
	7xfNHkSV1fVqu7MhwqbDdy/MKdhhzzn3yk7K9LQW9Jqv6mLr0roLQi5FSfq9gJq0aN0Xv8rLvAv
	38+XwRR9ZHevoQ1YyyLBhulSYi1255SQ5g84M7i9rI9eE+zlCHRHm5QzH0A3rOewAymaZARlT8x
	oTMWWrnzuQzsw==
X-Google-Smtp-Source: AGHT+IFcvF0YvcCjf7bJjpxm0A0PRm6MxfR6uKNU0d06F0oC8iHUNHhGqMLp9qwU4/YVtU0t6b5KVg==
X-Received: by 2002:a05:6000:402c:b0:42b:3b3a:5e52 with SMTP id ffacd0b85a97d-42f89f6e916mr11814215f8f.39.1765279359319;
        Tue, 09 Dec 2025 03:22:39 -0800 (PST)
Message-ID: <cc94eac5-b8b0-4c55-8dee-87335e3e53f8@suse.com>
Date: Tue, 9 Dec 2025 12:22:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 13/19] xen/riscv: Implement p2m_pte_from_mfn() and
 support PBMT configuration
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <bf3b296606e932dcbd29d06b962b7ea8db392e20.1763986955.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <bf3b296606e932dcbd29d06b962b7ea8db392e20.1763986955.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2025 13:33, Oleksii Kurochko wrote:
> This patch adds the initial logic for constructing PTEs from MFNs in the RISC-V
> p2m subsystem. It includes:
> - Implementation of p2m_pte_from_mfn(): Generates a valid PTE using the
>   given MFN, p2m_type_t, including permission encoding and PBMT attribute
>   setup.
> - New helper p2m_set_permission(): Encodes access rights (r, w, x) into the
>   PTE based on both p2m type and access permissions.
> - p2m_set_type(): Stores the p2m type in PTE's bits. The storage of types,
>   which don't fit PTE bits, will be implemented separately later.
> - Add detection of Svade extension to properly handle a possible page-fault
>   if A and D bits aren't set.
> 
> PBMT type encoding support:
> - Introduces an enum pbmt_type_t to represent the PBMT field values.
> - Maps types like p2m_mmio_direct_dev to p2m_mmio_direct_io, others default
>   to pbmt_pma.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 11:34:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 11:34:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181487.1504520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSvzZ-0005PR-ER; Tue, 09 Dec 2025 11:34:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181487.1504520; Tue, 09 Dec 2025 11:34:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSvzZ-0005PK-B9; Tue, 09 Dec 2025 11:34:53 +0000
Received: by outflank-mailman (input) for mailman id 1181487;
 Tue, 09 Dec 2025 11:34:52 +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
 <SRS0=lCo+=6P=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vSvzY-0005PD-Ez
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 11:34:52 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 12cbe32f-d4f3-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 12:34:51 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by BN9PR03MB6058.namprd03.prod.outlook.com (2603:10b6:408:137::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 11:34:47 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 11:34:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 12cbe32f-d4f3-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nelB+h2Y6vD2eI/5gS+/SGLX1AcVxmbZCjfQhFNVz0SzTGKN82ZrRCh8B8vygYwRjoYQkfwouATh0PKK7xZ7LxZaZ/xNWq+aSINGGn8V0t0h7/P9v8P90VgHQPOg1b9YFb9GGIif42M8SESxv2orgqFKuCQUT3UsBqWYkUDRgrwl68zzzYd/AlElcf6NDMPaaYNTOoK5H/ndozETaF0ZG9SSh7zXkLnVGF5+H6/oAvBNqK8eijk10t0uRcnTTTjgwaalNlB5seP7jED+C95p4Fg4QoC9bTBrMoEGPTkzITYTkIpcIXf34NRccQxvg8acINdd2m5T+hilGTS18IGXFQ==
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=F8/Y2O7Arm6bAbKSoGDzhoy0307+o5PRtRKvglM+Tts=;
 b=FycJ2c+eNzzCTM1CfVgenpMNrDA+GTDYUOpWzO05/IEv/1fcwdc8M71Nbegz3VBSuNtJIqBOLQe0Az6rXD/vLkSjgRVL8jxMGOf8WNvWfFfuILdWXmaj8z2YlxHRYHdkF6YdS6AWzA7KUo7IZbF53fquxSNB9/nUibky5R7UwLMKuyka+cFpEmnIs91R//X/mKuNFyYptPM4YBsoeZtM0JfjhJY2FVEV4Cf3BottRJcsJYktrcWvhgzxpcUUXminvmHbMZQP1BiXWuq4XZaz/kzNdbwX1m/pnmskQvPY2KMOJdd1ykkCEltasVtoUwcl+I3kjA5QNZIZsaW1f5CBig==
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=F8/Y2O7Arm6bAbKSoGDzhoy0307+o5PRtRKvglM+Tts=;
 b=FpMkfjHKxX/yOqKJoCGySKSmhl4OZyqnnJ/cfH1FjakCkUhy6VLwrd+hzlT8e8ErkGk8X+s8B2Weru6PTZRVEML8S51FIu9n3XUxgpGdC9MvXjkZiH+n6rsBv7UTi5v4Zln7fc+f/rzNXLz23Q4ExpUSKTPZnKEenMmbR6UfRwA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 9 Dec 2025 12:34:42 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	Juergen Gross <jgross@suse.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH v3 7/8] x86/mm: update log-dirty bitmap when manipulating
 P2M
Message-ID: <aTgJUvqTIQRc66L_@Mac.lan>
References: <a0f019c5-4089-e19c-6041-044d6e93d80b@suse.com>
 <d47d01dd-0289-370d-7b5e-bd80f9e0a911@suse.com>
 <aTLjwbcm4fjwNJfb@Mac.lan>
 <b03a8039-e4b3-42ff-9781-031bf68ccb72@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <b03a8039-e4b3-42ff-9781-031bf68ccb72@suse.com>
X-ClientProxiedBy: PAZP264CA0100.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:1fb::9) To BY1PR03MB7875.namprd03.prod.outlook.com
 (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|BN9PR03MB6058:EE_
X-MS-Office365-Filtering-Correlation-Id: c789119d-d2a7-46f0-26f7-08de3716f4a3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eExKNDZIdTNjdXc1Q2dqbks0WDh4QVVaMUhLWGVEdHNPcVJGME84QzBScVZG?=
 =?utf-8?B?MTJpZDdIbGxYOEp3TXhtK1ZWbEF5OTY3RXBFMklGbnZTOXVhM3FMZ05kd1hF?=
 =?utf-8?B?RlVNZDFPNVZIM3VzKzR0NEFFYklQamJucDRPMWhUYmt5KzZFOEVjS2lLc0Vz?=
 =?utf-8?B?b1RmSVE1ZUxTRGJGS3lTWE9RWGdSS3JtRWhUbk9McDVObjc4UmVqQTluc2NC?=
 =?utf-8?B?TWJBMjhnTGkzWjNNei82b1lYeUpxem5Gc3UraHlHUEJkOGd0WXJZMGVRQVdl?=
 =?utf-8?B?RStQZjN1NTIzdlFSKzNqTWNmLzBmUFVhTGRvdzdFbmZXMDQrUWhrN2NGVXNk?=
 =?utf-8?B?OGFlR1gxaVNFTzdEbERqVWhhcm8rdDgxeW50RUp2cm5yZWhldFRJYTBFaEsx?=
 =?utf-8?B?OUI4YjZLM3YrdnRTMnZ2cFJGU0ZrRlg2YjdkQTJaTUo3NGVsYm5MK3lYM3p1?=
 =?utf-8?B?SmZnQmFoVEdUMUhvR1BHa2ZURnZTenFqUkxXQnU4ekRtdllxNXQvaVkraXVG?=
 =?utf-8?B?OGUvQXI2L0I0QkxIbEFGcXRJenlxTWZzZ1JSK3F1WncxRml4SkFBaUpNdmFh?=
 =?utf-8?B?UWQ1cXNQV29FTVdJT2hNUk5tZ1NKRkpGREI1M09lU0xiS0FXQVBFM0Yrc3pQ?=
 =?utf-8?B?V2Z5TSs0aDZMb3VNV1M3Y01PZ1ladkpaUndPa3V3Q1I3b1pnOTg1ZUZmSkUx?=
 =?utf-8?B?NGhLaytYcWJGT3FGQkd2ZFA2YnhkSWlOOXJTbXF5eGRpalZvUXNORlNkSTQy?=
 =?utf-8?B?V29IYmtVU2Q1V2ZEOEhvZDFpbWxIRkFnMmJOc28rUzFKUUVudVppVzFXRWpD?=
 =?utf-8?B?c1BFUWxCd0lCSVZtUGdkcHJKNXkzTzBSQlV1TnViTHhVN3ZocG5UbmErUjJ3?=
 =?utf-8?B?SWZ2aWlBMGJ0eEpVcjAzb0hkSGJqVGdMemRPanNBWENWbXNkK2pxLzd5cHdr?=
 =?utf-8?B?R051dFdzclpLUVVkeUxXN0V6d3MzMGpKSWVmN2xPUSs2TDVVdG80alNwQlU1?=
 =?utf-8?B?M3pHbm9mQzRPRDREaUNGY1kvR2c1QzA4NHU3TU1ZR2xIY1R4T3BDWXJtbCtw?=
 =?utf-8?B?RzIwL0QxbWxaRTZyN2xQblNDakhmckh3TExjWUU2N3Z3SVVHbU90VFRyd3dI?=
 =?utf-8?B?ZE90R2xIQktLbXllOXVGalhZQzhORlEwZnNnTk9HSkZUNWZhMGV5dnRJTzB2?=
 =?utf-8?B?TEtqa0hCWGI0MzU0cEwyNk1sN3JSalYxcWdaS3gvQ2ZyS3k2S0FnbWdMWVZK?=
 =?utf-8?B?aWQ3Mk9sN1Z4RnFGUldNQkZhdUprWUhpSHZscDVzQnp4S0FBREZTUlBhNkI0?=
 =?utf-8?B?a2xYb2R1eW9MK2VtNUlldFptbUpnWEttL0U0SHltOFg2NEdWYnV5a3RCSWNk?=
 =?utf-8?B?Q0MrOTJmODF1VjVwS2tPOEF0T2pyRkZBMXZaU0IzVTZZckZybzFCY2xkcE9m?=
 =?utf-8?B?Z1NrSzNnUGFZemhmLzhKOGxubGVRZGgvenVIdkFFQlYxSlAwbXh2WVF3ZG9z?=
 =?utf-8?B?RWZNS3NBUmFMS29jZUNGNldEM0FIQVd3VHFSNTR2ZUUxWHcrRjZUUHNGbW1I?=
 =?utf-8?B?ZWx6UGI5bHN4ZkNuTWdGTXhKQkJSUXRhZzJ1eFFxcUxoUmpZQWJ0eGRONVBT?=
 =?utf-8?B?SThCRExGVitYUTRweldML0dudlpjbXk5RW9RQkxXS2VPWWdqSlVSRVhiV1ZQ?=
 =?utf-8?B?bTRVUHFrbDk3dWxuYTRzK0s3MVhYZnoxa0FlMm1VMUlPV3g1REtsTnBNT0FO?=
 =?utf-8?B?aURYUGJyRnlkN1BXOWpxancyQnpVMm1YaHQyRzVWZFoxR293WFdZMEcrTyti?=
 =?utf-8?B?SmNYZTlYT2Nyci9PZGhJRTc1c1ZvYlZyanF4b1dlM0VCZFBZY1VncDBDRlVL?=
 =?utf-8?B?SksrcXgvZGhyTDdVN1ZjMkIzUUQwV1Bnek5scmozVUdHLy9tdWh6YWxVVkYv?=
 =?utf-8?Q?Y7tAwR0EyIZPm/utbxjlTWfcTAFPuR28?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7875.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OEpVZjVtUEpWbUIwU2Ixd0lLcEp3QUdPSXhOQjA5MU1laDE2U2lOZzUySEF0?=
 =?utf-8?B?RThzTVhQUGpocVF4V2YxaWpwSTdnNmoxMnE0aDVpNHNIcVE3TjNScW9NOXZx?=
 =?utf-8?B?OExUMGR3RUpxb1N4SVRMSUc0dE03RHdtN291YUdJTXhCRlE0Q01NRmZMRkFI?=
 =?utf-8?B?eDZ2cmpHT1hsd3JuQnlPbVhXbnVOTjVrMHdncnNROUkxN0ZCdmdFWXVRbUNS?=
 =?utf-8?B?SHltamxlU1J1c0lkbFMvV2MxU0VVRjBFUXNDSUp5KzAxeHM5T1Z4bFloNUh4?=
 =?utf-8?B?NUZXaXRmZHRPcytSWnRhbklwME1nbEZhajFRL3FLZnkvdjRaakxKVXp5SXYv?=
 =?utf-8?B?QWJZVlBVeVMyTjhoMDF1UEQyNlNoSk5SZ2hzeVlMUU11RWM1ZlZCbldYYmY4?=
 =?utf-8?B?Y0lHZFU3WkphSnl3Z3NBbDVWbXJKenJIeWQ2UVNBalpQYWZIN2NybG5XOEpn?=
 =?utf-8?B?RnR1aVQ3c0RTS3F3cHh5dk9kQTBDUytLQ1ZqMk04QWRaKzlZclN0NmtMYjJx?=
 =?utf-8?B?a2x5MnNTd1YwTjBrZko4OWpKNWFFc0lIM05mUTV3akNyekdydWRBdGVqZXBV?=
 =?utf-8?B?K0NyeVR6VGNuSFFoMjkrbGloWUp1b0twSU00N01ySVdTRkh6aXNjQ0wyNTV1?=
 =?utf-8?B?d0p0c2E1c2lZNnhzeXZqZUZhdnRjRmVSTVFicjZSMnRxT2JJa3BJQUxRbVpF?=
 =?utf-8?B?VlFqUWpQSDQwKzZOZ3BwV084QTcyTnBFR3cwcHY0RDZOb01ZWUZqVzRGaUlM?=
 =?utf-8?B?RW1oeVpjcm8waUhRR0VadVJBNmZSYURJOGdJMHB2TVhIeTJGQkR0R3o1NzdF?=
 =?utf-8?B?NnZlTjZsTnFRQ2tSQlY1eElnOU5IMXFoU3dSbDE3cGVCajUvSTh5QnFjN0lr?=
 =?utf-8?B?SlRBNGc0NnN3OU51NlFUQkVYUFJiNEhPSk0zMlFaL1BVU0FzbjliYTJtVG9R?=
 =?utf-8?B?Sk1iQlBzSlpDN041TkNHYkp0cVlMRFRjQys4cVBTenF2ekJZbXlHZXMwbzZN?=
 =?utf-8?B?Vkw0dVA5UUNsRkpyMDJMaHNCTWFPejgyYlJGVk0vZWQvSTFER3IrckJhNE54?=
 =?utf-8?B?eGhKU0lJN1Vjam40dlQvdmx4WVVpaWdvNWw1MnNWdmZuVkNYaUV6WkVWN2pS?=
 =?utf-8?B?UVRQejVEYkV4K3J3TXlEcXo0cC9HZk5UNXU4YndoMVM4aUE4MFErZE4vNHVa?=
 =?utf-8?B?ZVhNa2NlejREK0thSUlTOVl0b0NSSzBKOHpJV3RYbkF5TEh2bGxUcHFuNTBC?=
 =?utf-8?B?UzRrMytRb3VvdW5HYitHc2NET09TTjIrTzFodUVJc2NIMGZiUXJrRTlGbk51?=
 =?utf-8?B?R1BTbkVFK21xRUdqWVBRU3I1eE1DeFNuTVJhNnBJbkg2NlE3eFlLVEwxS2JM?=
 =?utf-8?B?VzNZTFRRaVUweEErZGNLeXFiY1RkbWlDZDdDZHBrd3N6S3ltem9FYy8zcWFF?=
 =?utf-8?B?OXNqQ1kwOHM1NXRUTkF1VkQxSG5POTkweXpZSWdGbk0wUHQzN3ZETmRsVW5v?=
 =?utf-8?B?L01ONGtkc0pJNCtJemJBNGVXakw1dVd1L2k5UXVIWlRaUTA2TGNVVkJxaUtZ?=
 =?utf-8?B?dU1tWG5Yb2U1dW5PQlZQeXRTM2M4dW1WUVhtbDN3amQzQlY3aTdKd2QvMFQr?=
 =?utf-8?B?YkYxQ1FGQjJSSXJHdHlraFFFZkhJSXhqazloV1k4Z1duS1JuS3h5V2hiR3BG?=
 =?utf-8?B?Nm96SGlxa0FSa1E0a3VyYmVRYW5FcmpuK04vYmJPem5FclZtdjZxS0twemNW?=
 =?utf-8?B?cHIvYTkxTllScUtBZzlIazhTb0VGaTB4azNVZ290emVJOXRRMXNBMFFkek9t?=
 =?utf-8?B?WWRLR0RYazRXQldVekhSNk56VmVnV1U2djZmTDhCN1lvbDdHVTdjMmpncnNi?=
 =?utf-8?B?V0RhUXhlRmdTWDBpZC81alpRb21vYjRSdlNaV1Fmc2VuMTJrYUZ6UWhhSnN1?=
 =?utf-8?B?bGk3LzBRZVdWbjBVbWFOTmRDYklTSVQ3YkhIdFQwZE8rMUFkTE1CZ1VQZUdD?=
 =?utf-8?B?WmVBaGlEYUQ0V0ZObFhjRit5cHJrS0dRelo4aE1kcEtSbURHZE1mSEM5ODVy?=
 =?utf-8?B?SUd1dlkzd2dka1VMM3FzUUFTd1pUSkkxaVcvSVNVc2tIbnBuTjI5RUNFcXFy?=
 =?utf-8?Q?VTKXjkgsr9J5dbhhrr9+x3b/f?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c789119d-d2a7-46f0-26f7-08de3716f4a3
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 11:34:46.8654
 (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: Qfl13DOrox7rDSUunRjQHpn31rnsZp061fxY8A2BpIhC3Uqzzoz8rjIw5ZF0rhor6RVL6XXXosdd7zG4b/59LQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR03MB6058

On Mon, Dec 08, 2025 at 11:48:00AM +0100, Jan Beulich wrote:
> On 05.12.2025 14:53, Roger Pau Monné wrote:
> > On Tue, Apr 26, 2022 at 12:26:10PM +0200, Jan Beulich wrote:
> >> --- a/xen/arch/x86/mm/p2m.c
> >> +++ b/xen/arch/x86/mm/p2m.c
> >> @@ -549,7 +549,10 @@ p2m_remove_entry(struct p2m_domain *p2m,
> >>          {
> >>              p2m->get_entry(p2m, gfn_add(gfn, i), &t, &a, 0, NULL, NULL);
> >>              if ( !p2m_is_special(t) && !p2m_is_shared(t) )
> >> +            {
> >>                  set_gpfn_from_mfn(mfn_x(mfn) + i, INVALID_M2P_ENTRY);
> >> +                paging_mark_pfn_clean(p2m->domain, _pfn(gfn_x(gfn) + i));
> >> +            }
> >>          }
> >>      }
> >>  
> >> @@ -737,8 +740,11 @@ p2m_add_page(struct domain *d, gfn_t gfn
> >>          if ( !p2m_is_grant(t) )
> >>          {
> >>              for ( i = 0; i < (1UL << page_order); i++ )
> >> +            {
> >>                  set_gpfn_from_mfn(mfn_x(mfn_add(mfn, i)),
> >>                                    gfn_x(gfn_add(gfn, i)));
> >> +                paging_mark_pfn_dirty(d, _pfn(gfn_x(gfn) + i));
> > 
> > Have you considered placing the respective
> > paging_mark_pfn_{clean,dirty}() calls in p2m_entry_modify()?
> 
> I didn't, but since you ask - I also don't think that's layering-wise
> an appropriate place for them to live. Whether a page has to be
> considered dirty needs determining elsewhere. No matter that ...
> 
> > There's a lot of repetition here with regard to handling the side
> > effects of p2m changes that are forced into the callers, that could
> > likely be contained inside of p2m_entry_modify() at first sight.
> 
> ... this way there is some redundancy.

Redundancy is one of the aspects, the other being IMO code more prone
to errors.  Having to do all this non-trivial extra work after a call
to set a p2m entry, both in the success and failure cases, seems
likely that it will be forgotten or incorrectly implemented by some
of the callers.

It's you doing the work to fix this, so I'm not going to insist.  It
seems a lot of extra complexity duplicated across multiple callers.

FWIW, it would be easier to understand if we had the logic to mark
pages as dirty in a single place, rather than scattered around
different callers that do p2m modifications.  For the time being I'm
fine with doing as you propose, but long term we should see about
cleaning this code IMO.

> Furthermore p2m_entry_modify() also isn't really suitable: We don't
> know the GFN there.

For one of the callers there's the GFN in context.  For the EPT caller
it will likely require some plumbing.

> >> --- a/xen/arch/x86/include/asm/paging.h
> >> +++ b/xen/arch/x86/include/asm/paging.h
> >> @@ -165,8 +165,9 @@ void paging_log_dirty_init(struct domain
> >>  
> >>  /* mark a page as dirty */
> >>  void paging_mark_dirty(struct domain *d, mfn_t gmfn);
> >> -/* mark a page as dirty with taking guest pfn as parameter */
> >> +/* mark a page as dirty/clean with taking guest pfn as parameter */
> > 
> > I think it would be clearer to use gfn here rather than "guest pfn",
> > and the function parameter should be "gfn_t gfn".
> 
> For HVM I'd agree, but please see the one use for PV guests. As per
> xen/mm.h gfn == mfn for them, i.e. we particularly mean PFN there.

Sorry, I now realize.  paging_mark_dirty() takes a plain MFN, while
paging_mark_pfn_dirty() takes a PFN.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 11:38:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 11:38:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181498.1504530 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSw2k-00067R-SP; Tue, 09 Dec 2025 11:38:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181498.1504530; Tue, 09 Dec 2025 11:38:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSw2k-00067K-Or; Tue, 09 Dec 2025 11:38:10 +0000
Received: by outflank-mailman (input) for mailman id 1181498;
 Tue, 09 Dec 2025 11:38:09 +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 <SRS0=sSjK=6P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSw2j-00067E-R2
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 11:38:09 +0000
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com
 [2a00:1450:4864:20::432])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8895d41b-d4f3-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 12:38:08 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-42e2e6aa22fso2595627f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 03:38:08 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d330b20sm30293764f8f.29.2025.12.09.03.38.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 03:38:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8895d41b-d4f3-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765280288; x=1765885088; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sfGTAzmOGepjRtubgeW/98EheXXXw06qLmTB8PXQAFA=;
        b=egf6kJHWW/47VmpBX9Yml6IonP9muqyfyz5A8IymXcpqWSvc5pgUVLSihakqTKoeeO
         nf9eqyJZa5AhfvTAZhj6HWiKmuV7UIocICGhWZyxI0TfCbQRLq/2wJh2KNuiZX0GF3tp
         Myisr6KoTg4fy8mS5/SL8VL2rqe9BH+jEl5XwePWCAvewRTgWlJjnHiYLoEEGgC2NlQ8
         wc9b4rh4dVE80VsRJ4FkCAfuvBAZHW+CM6JwheMk71N0S4Ss4MYIKpBa4Y1CKySWpXA9
         p71Vp+OtEbJaOfoepNLa5g+mUN+NbeXRyE4E8HR8FdLU7T8FztW/N9ZtnM1mG834HO2Q
         60dg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765280288; x=1765885088;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sfGTAzmOGepjRtubgeW/98EheXXXw06qLmTB8PXQAFA=;
        b=eF7BaeKnZcJ96wvux4O2UhPnjhzAY0INgLEY7a1EksZQNgEfmtHDF9dY/QS5acMS1w
         oqEGDfeBohwlBS4+D4Pq4ZYTlU6VcVxxhoEj1kUE464cNhGmH+Xxc2WiyDn6vxhrCPEc
         Gzz8aWQJAgBxV1H1QSkY+RrC7ynUBj5L/jCG5lknod811sjt2VEIH4s7/DXrwupME+hb
         aAqXOPccNwDxMUkjfkWT6Kg4hKRv31QF6o4wa6o79y9oiFhnhYNWKQHc9mkOpPTAJ1rT
         pdfRN1TzyZP/ebMP92IdQZQViyVKLsjIy24ruhKuKXIMsXNoDC3qvfgYWbJgQM10KPLe
         OzkA==
X-Forwarded-Encrypted: i=1; AJvYcCUKK5g3ENPgdjREPbzpIZxiiLb4ojG7+Ttsed3AFL/l3BZhsvj2vhW8QDRE6t00dFBtTvutqLtDssg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx1Ab/NAe1xEE+r7LddP2YbiExsp6fbH8QMlDuQH01NaVC8xxGC
	mbUxZzX/X1eJv2WlQxbN1zm33O3efmhz8SweeRe7TOitpn70gzqNgfymRGOgv1hpyA==
X-Gm-Gg: ASbGncvrGl6TSsTeZupIzBkIQvxcdELjrnLPldkTMS8FwcHh+i1cuXaZ7FSwXisvtqu
	/+EGt5Wwgo1KSEE2rsCzG6FHZq1/xcQnQgcVq5r1fiYbaTNtPEbMaN8gEqaCzF5zXwRISIoBxgU
	cCcooSBuGPSTEGkbYT+L7JV6rqiq7iTLaKxbZii1VcAXC2iFVqrEo9xVv4p3tXyIMauh7l+fzzE
	gZ3xSmBgsJljrH/yEjeDxJlhy9uO93wk/uQ39+mYjfHROmplZFlRlEtro4v7cusTTB9pI7yops7
	mpa5h524UppTXurIxRFeuBMoh9jf0QCrasDu4BRaz/UOvYrmlj8SAkG9lliyBGkOBlcQnwdBIYx
	Nb+p+6PipI8Lb8I9bKTfxIzzacNpjFQdUa+9YVmrmckV7bJZmxJ72IxGCZ1hUsp7VA4G/8aBilF
	h96cTtTRGfcdooI6PVnlG5VsxcbEhiF97wPx/Cm6wMZU4+yTSUPVGKQQb4xU2+JbhnGpiKvEMGE
	Gs=
X-Google-Smtp-Source: AGHT+IGyeW2NX/e2wMXOHzrC/6ypCmtshFmXHiiW/Iv7frhoz92kVpfzDqImT3CshvEftCQu2MkPxg==
X-Received: by 2002:a05:6000:40c8:b0:429:b525:6dc2 with SMTP id ffacd0b85a97d-42f89f1419dmr10680409f8f.17.1765280287632;
        Tue, 09 Dec 2025 03:38:07 -0800 (PST)
Message-ID: <69dce344-4dee-4778-99c2-0621c4e17cfc@suse.com>
Date: Tue, 9 Dec 2025 12:38:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 18/19] xen/riscv: add support of page lookup by GFN
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <48a58cde3de6a459885465c6d29d00d046ae4a37.1763986955.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <48a58cde3de6a459885465c6d29d00d046ae4a37.1763986955.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2025 13:33, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -1061,3 +1061,186 @@ int map_regions_p2mt(struct domain *d,
>  
>      return rc;
>  }
> +
> +/*
> + * p2m_get_entry() should always return the correct order value, even if an
> + * entry is not present (i.e. the GFN is outside the range):
> + *   [p2m->lowest_mapped_gfn, p2m->max_mapped_gfn]    (1)
> + *
> + * This ensures that callers of p2m_get_entry() can determine what range of
> + * address space would be altered by a corresponding p2m_set_entry().
> + * Also, it would help to avoid costly page walks for GFNs outside range (1).
> + *
> + * Therefore, this function returns true for GFNs outside range (1), and in
> + * that case the corresponding level is returned via the level_out argument.
> + * Otherwise, it returns false and p2m_get_entry() performs a page walk to
> + * find the proper entry.
> + */
> +static bool check_outside_boundary(const struct p2m_domain *p2m, gfn_t gfn,
> +                                   gfn_t boundary, bool is_lower,
> +                                   unsigned int *level_out)
> +{
> +    unsigned int level = P2M_ROOT_LEVEL(p2m);
> +    bool ret = false;
> +
> +    ASSERT(p2m);
> +
> +    if ( is_lower ? gfn_x(gfn) < gfn_x(boundary)
> +                  : gfn_x(gfn) > gfn_x(boundary) )
> +    {
> +        unsigned long mask = 0;
> +
> +        for ( ; level; level-- )
> +        {
> +            unsigned long masked_gfn;
> +
> +            mask |= PFN_DOWN(P2M_LEVEL_MASK(p2m, level));
> +            masked_gfn = gfn_x(gfn) & mask;
> +            masked_gfn |= (is_lower * (BIT(P2M_LEVEL_ORDER(level), UL) - 1));

I fear I still don't fully understand this. I would have expected the same mask to
be used for setting / clearing bits (once inverted, obviously). Why would you clear
only some of the lower bits in one case but set all of them in the other?

Overall, this alternative of clearing / setting of bits may also better (more
clearly / readably) be expressed using if/else or a conditional operator.

> +            if ( is_lower ? masked_gfn < gfn_x(boundary)
> +                          : masked_gfn > gfn_x(boundary) )
> +                break;
> +        }
> +
> +        ret = true;
> +    }
> +
> +    if ( level_out )
> +        *level_out = level;
> +
> +    return ret;
> +}
> +
> +/*
> + * Get the details of a given gfn.
> + *
> + * If the entry is present, the associated MFN will be returned and the
> + * p2m type of the mapping.

There may be a word order issue in this sentence, or there are words missing
at the end. It more likely being the former, isn't the order being returned
also worth mentioning, ...

> + * The page_order will correspond to the order of the mapping in the page
> + * table (i.e it could be a superpage).

... since this really is a separate piece of commentary?

> + * If the entry is not present, INVALID_MFN will be returned and the
> + * page_order will be set according to the order of the invalid range.

... and type will be "invalid".

> + */
> +static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
> +                           p2m_type_t *t,
> +                           unsigned int *page_order)
> +{
> +    unsigned int level = 0;
> +    pte_t entry, *table;
> +    int rc;
> +    mfn_t mfn = INVALID_MFN;
> +    P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
> +
> +    ASSERT(p2m_is_locked(p2m));
> +
> +    if ( t )
> +        *t = p2m_invalid;

The sole caller passes non-NULL right now. Are you having patches pending
where NULL would be passed? Else, this being a static helper, I'd suggest
to drop the check here (and the other one further down).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 11:47:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 11:47:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181512.1504551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSwBo-0007ue-Qh; Tue, 09 Dec 2025 11:47:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181512.1504551; Tue, 09 Dec 2025 11:47:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSwBo-0007uX-Nr; Tue, 09 Dec 2025 11:47:32 +0000
Received: by outflank-mailman (input) for mailman id 1181512;
 Tue, 09 Dec 2025 11:47:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rCN0=6P=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vSwBn-0007u8-8t
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 11:47:31 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d6710b27-d4f4-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 12:47:28 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-641977dc00fso6772231a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 03:47:28 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-647b4121eb6sm13824315a12.26.2025.12.09.03.47.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 03:47:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d6710b27-d4f4-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765280848; x=1765885648; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=2dbP/Ei4BMUdrCYo3EdbJe8BBHowxkgRf3kv2cnV+ww=;
        b=dT4/DYoaqVcGN5JMkBcrFIhgfpKmHOIvhXoc8GdjA7uDs7hlNlv5zTy6NXNqYCIPCg
         v6ayGYDfMTbraoqFOlr89gklX+qGtnJrQ8+sTJLRN5nSkjaeLCokgONYjTuPCisSmG7w
         DaJHy6vxlnprTf/SYHLnpgcBEud+dCpepsJZTOI3eo+d4PQ8emUwy4bD75QA0VKBp0wi
         X3J5mpxfHhygDjZm8wHcncCfoCD9MbRsnyy2yML0sf/b3FC/2zrCIKKCRNFZauVUYo6V
         xiEtF0V5koTPc1q9UXB0KenjfG0sReMX3nIqr5mJ5J42cvQnLSP6Osml+KfwDt5SOZdM
         2OFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765280848; x=1765885648;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=2dbP/Ei4BMUdrCYo3EdbJe8BBHowxkgRf3kv2cnV+ww=;
        b=YUSyD5qd/EG3gdn94veUWRC5HmP6CPEWF3YDXwMm4LvitfkfwF1dq8RkI9aRmgrnSq
         UFCrXQKjUVKTqtcRvc5T+ZgsS9Bhrzg+pnsKPGp2VBeoc7YH+PeP8sQx/u+lBCSWXDVr
         9553QmOfKt8A003pLAX4mCKVRnbBn//75TkVJwpb2n9Zqn1/Z6K+p1lh5uKVpOSON0Sb
         2jB5CWzyKubVCuDTYrLIbNFw8EYu9zA07Aq1UOMBZbnqNP6paKSm448hBWDLrJIisN2Z
         QFpl0ZZjOuNORxlaBGqW5t5k08LPAr9rnCPVAof9W3HTCd7sM9fe78R1/Zhe6Br8Q68p
         ThjA==
X-Forwarded-Encrypted: i=1; AJvYcCVK4yh2xCSxtACmc38MJkAQjtUudVs2pqUUpGTPggSK6pVpNXBLIoiopeqimdNFsM/zq9rPFSHYja0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwUB3w/FGKttxko4uPK9cOjA8T/KsbSgmOv6JUeM5DKJo3R+6Gw
	q/szMIEtXIP0pAx5oNpeo6LQk2GcEFNzzTEOHKv5DNViDwbD+zvjJWjT
X-Gm-Gg: ASbGncv/cPzstxMPDEosITVbQzQIexC9i5aTO6UAj6MWAA0oFETJlxcYj1Zc2VVq5ON
	liRbXPhdC/QDFrtL+OU5FRA5IDaed6StYiNYtHLE2nAaTInbbMLyb8YDzRHJqY8RjAx+VYUAo5n
	5MOYM5PPC8AEOnxTm98wI5S8Ih185TglXTfjx1cxF6WaL8UPErlXGt/9D4ha6oE1+/jqwXTmiMj
	5wWfsv+dcXEixhLA+tZjYr6+q6TVABzjPAjbi61KowIGMCC5O1BCU9mJBjzYsOAyYi8+b40ZIlt
	cX5d6JIhhXTBNTQ0itlLfFbBGAzS+4eOWD8h3OmMtoUw/YdGoZNAdTLfZAqLNwePiG1sZYdOaXJ
	FWybRoe8T9yBp1t11CLYDZMM5U3IiCmXItriHoE8reb4/U6gD0wx0Er8VY2NxbvefU4CZRQvaJJ
	zRaGOH0eiRbHhE7RrEvBHlJtz6Q9+aeeVv6zAMaoQt96TFOYptYSODSM3TwlkV
X-Google-Smtp-Source: AGHT+IGDKGdEbQWZigRB9FFx4zKR/juMxhVIrkP6DW3dPUelN9vKIgkHG7Lrj6bunXwjjetUQ+TY1A==
X-Received: by 2002:a05:6402:518c:b0:640:7529:b8c7 with SMTP id 4fb4d7f45d1cf-6491a2d0516mr8056264a12.1.1765280847752;
        Tue, 09 Dec 2025 03:47:27 -0800 (PST)
Message-ID: <021bdde7-ea62-447f-a788-dc31c6a930bd@gmail.com>
Date: Tue, 9 Dec 2025 12:47:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 11/19] xen/riscv: implement p2m_set_range()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <5f2812bb3b82ba1f9178eb00f68a85388f862f09.1763986955.git.oleksii.kurochko@gmail.com>
 <8b95ccca-7924-4cf8-818a-094782c6bbea@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <8b95ccca-7924-4cf8-818a-094782c6bbea@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/8/25 5:52 PM, Jan Beulich wrote:
> On 24.11.2025 13:33, Oleksii Kurochko wrote:
>> @@ -28,6 +36,77 @@ unsigned char get_max_supported_mode(void)
>>       return max_gstage_mode.mode;
>>   }
>>   
>> +static inline unsigned int calc_offset(const struct p2m_domain *p2m,
>> +                                       const unsigned int lvl,
>> +                                       const paddr_t gpa)
>> +{
>> +    unsigned int off = (gpa >> P2M_GFN_LEVEL_SHIFT(lvl)) &
>> +                       P2M_TABLE_OFFSET(p2m, lvl);
>> +
>> +    /*
>> +     * For P2M_ROOT_LEVEL, `offset` ranges from 0 to 2047, since the root
>> +     * page table spans 4 consecutive 4KB pages.
>> +     * We want to return an index within one of these 4 pages.
>> +     * The specific page to use is determined by `p2m_get_root_pointer()`.
>> +     *
>> +     * Example: if `offset == 512`:
>> +     *  - A single 4KB page holds 512 entries.
>> +     *  - Therefore, entry 512 corresponds to index 0 of the second page.
>> +     *
>> +     * At all other levels, only one page is allocated, and `offset` is
>> +     * always in the range 0 to 511, since the VPN is 9 bits long.
>> +     */
>> +    return off & (PAGETABLE_ENTRIES - 1);
>> +}
>> +
>> +#define P2M_MAX_ROOT_LEVEL 5
>> +
>> +#define P2M_BUILD_LEVEL_OFFSETS(p2m, var, addr) \
>> +    unsigned int var[P2M_MAX_ROOT_LEVEL] = {-1}; \
> What use is this initializer? Slot 0 ...

I wanted a way to detect if something mistakenly tries to access an uninitialized
array element, and using -1 would help distinguish whether an element was truly
uninitialized or if calc_offset() simply returned 0. However, you’re right, it
doesn’t work because only Slot 0 is initialized with -1. So...

>
>> +    BUG_ON(P2M_ROOT_LEVEL(p2m) >= P2M_MAX_ROOT_LEVEL); \
>> +    for ( unsigned int i = 0; i <= P2M_ROOT_LEVEL(p2m); i++ ) \
>> +        var[i] = calc_offset(p2m, i, addr);
> ... is guaranteed to be written to, afaics. With this simplified (or an
> explanation given for why it is needed)

... I will just drop an initializer and let var[] to be initialized with 0s.

> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 11:50:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 11:50:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181527.1504562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSwEG-0000mb-Bj; Tue, 09 Dec 2025 11:50:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181527.1504562; Tue, 09 Dec 2025 11:50:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSwEG-0000m2-7w; Tue, 09 Dec 2025 11:50:04 +0000
Received: by outflank-mailman (input) for mailman id 1181527;
 Tue, 09 Dec 2025 11:50:03 +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 <SRS0=sSjK=6P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSwEF-0000Qs-7N
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 11:50:03 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 31b53620-d4f5-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 12:50:01 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-477619f8ae5so43149585e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 03:50:01 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a7d612e3esm34987965e9.2.2025.12.09.03.50.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 03:50:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 31b53620-d4f5-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765281001; x=1765885801; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nMoXTuDTAYZLumO7wfb9zf0ZalNbaz80O5yc3ijOUtw=;
        b=KHnojmfj3/XCuW5Q7ZxNW+k5Z84WF78f2KeB5iNrjValo6erjrhTeokBZZECiViXNA
         SBcSQOl0Bj4/1zQKGp9HXUeFxOVftzZgUJOnGEPcOidYnzKclfRgiuL5JFHlxkc99fSm
         PzxBAwx2ZPmhpk0KGgWDYn0AZP6IxWu7Y/khOjaef5VTMoeygB/bl6CPfeilB5+rhYQY
         dKiLqxns8D6ywxsAqhMy6XpuOMZamfqlbNfjK8HrDb3T+vrDipkzaCCuE/kGKuZgK278
         qMoRuo4/6CPAd3c0lyPRepbyIk4G5YHImnOFLFxGKXDHbotRTlbBpykoaM25vkeoj/57
         A8wg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765281001; x=1765885801;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nMoXTuDTAYZLumO7wfb9zf0ZalNbaz80O5yc3ijOUtw=;
        b=EZvvHJ70GIL9CZS0nm5QaoKnQQOgVVThk4shkVQwX674DU7lT9MNd9A4toFsWDdamQ
         Fwncb3Bqqg6DUEP7hPOtDOSwSOukEklo3r0kv2RfGGsEhDxxXLyilNy3tF0qCVJh3/te
         /sAAwp34WvwSnhfUXC+3MefjlpSkgAZkqJ2knMh/qe2izrS4aGfVfhGgP8y9adJxB7DY
         qpBhBGJ7nVVNQhNnry/3bsoVnrCIAzzpDgews32lOhfofv0SagxUDRLOLvggu/5wWwsu
         miT3WC34YJrPfkMVeHqhnHwuGObYMOQK4tpg5xRVsSO4dw29QSBhPZ38fggF6YRnnABD
         CU5A==
X-Gm-Message-State: AOJu0Yy8VUJLGoGQzkTWy8fYSnAMNGxypy9NJMhgndTm8Xhp/dJ74wVC
	zLchGrhu137Eud2Ix7VDeJCpcUP9mV8AxoqvkJNsbdfHqUk2Iks9bF6dnuzzPZtYHw==
X-Gm-Gg: ASbGnctBdA4ObwsZzzagULfp91Bd34qnnRcaxgKOK9NkE2k08GWeKnsaPuotoBAUFng
	nS2lgkePvL4mT67RJc9U6OMkDwIaiyVO1e4FHzuN0M4ysXxW7UvLMb54rVKoTSakpCL1EJDQ6+2
	0RoBZ4ziWz/ciz92H2VbRp3ALuCAtqyNyaBdZPsuzsSi98FdlhS0eZhn9G8yuhmN00sA6v/RlpT
	Bh25vZ7uM2fPYhF+o9R1fUInYaipHSktQ6ePn20FLVIinptuoBsHA374eP6zHxUXDxVqvZIyQmT
	a0LzkVGNX1wHE1/ZL+Ln/3RnYnNjiESQiVsxJOV2xF62nKE/4sNhc/QrIBmpEinYa2ZuIt672C/
	4TFRXLhd2v04AnGL40A5lej0uf5y81tb5BWhXTkGmoI9sOJ2SQxJCdIbzNTCDvGJFxvQ1OjOQ8G
	9UKuLD9/oTT5piFFPg9UVAISV2L7f932+0rqWjc5xqxbIyAQBWDLfN3vQdp49QwVj7vfXzNf0mI
	v6Sxsx1dHvtog==
X-Google-Smtp-Source: AGHT+IFvFdPdunO/1AHhKaObIXWJvbBRaupF3aIhcH/Kc5yhqlKuc1rOoVt8vhCFUeOOTT0dpDrnYA==
X-Received: by 2002:a05:600c:3b08:b0:46e:32dd:1b1a with SMTP id 5b1f17b1804b1-47939ded20fmr131987375e9.7.1765281000997;
        Tue, 09 Dec 2025 03:50:00 -0800 (PST)
Message-ID: <f09af4cf-09d7-462a-b8d1-0f2a4b3f32cc@suse.com>
Date: Tue, 9 Dec 2025 12:49:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 7/8] x86/mm: update log-dirty bitmap when manipulating
 P2M
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Juergen Gross <jgross@suse.com>, Anthony PERARD <anthony.perard@vates.tech>
References: <a0f019c5-4089-e19c-6041-044d6e93d80b@suse.com>
 <d47d01dd-0289-370d-7b5e-bd80f9e0a911@suse.com> <aTLjwbcm4fjwNJfb@Mac.lan>
 <b03a8039-e4b3-42ff-9781-031bf68ccb72@suse.com> <aTgJUvqTIQRc66L_@Mac.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aTgJUvqTIQRc66L_@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.12.2025 12:34, Roger Pau Monné wrote:
> On Mon, Dec 08, 2025 at 11:48:00AM +0100, Jan Beulich wrote:
>> On 05.12.2025 14:53, Roger Pau Monné wrote:
>>> On Tue, Apr 26, 2022 at 12:26:10PM +0200, Jan Beulich wrote:
>>>> --- a/xen/arch/x86/mm/p2m.c
>>>> +++ b/xen/arch/x86/mm/p2m.c
>>>> @@ -549,7 +549,10 @@ p2m_remove_entry(struct p2m_domain *p2m,
>>>>          {
>>>>              p2m->get_entry(p2m, gfn_add(gfn, i), &t, &a, 0, NULL, NULL);
>>>>              if ( !p2m_is_special(t) && !p2m_is_shared(t) )
>>>> +            {
>>>>                  set_gpfn_from_mfn(mfn_x(mfn) + i, INVALID_M2P_ENTRY);
>>>> +                paging_mark_pfn_clean(p2m->domain, _pfn(gfn_x(gfn) + i));
>>>> +            }
>>>>          }
>>>>      }
>>>>  
>>>> @@ -737,8 +740,11 @@ p2m_add_page(struct domain *d, gfn_t gfn
>>>>          if ( !p2m_is_grant(t) )
>>>>          {
>>>>              for ( i = 0; i < (1UL << page_order); i++ )
>>>> +            {
>>>>                  set_gpfn_from_mfn(mfn_x(mfn_add(mfn, i)),
>>>>                                    gfn_x(gfn_add(gfn, i)));
>>>> +                paging_mark_pfn_dirty(d, _pfn(gfn_x(gfn) + i));
>>>
>>> Have you considered placing the respective
>>> paging_mark_pfn_{clean,dirty}() calls in p2m_entry_modify()?
>>
>> I didn't, but since you ask - I also don't think that's layering-wise
>> an appropriate place for them to live. Whether a page has to be
>> considered dirty needs determining elsewhere. No matter that ...
>>
>>> There's a lot of repetition here with regard to handling the side
>>> effects of p2m changes that are forced into the callers, that could
>>> likely be contained inside of p2m_entry_modify() at first sight.
>>
>> ... this way there is some redundancy.
> 
> Redundancy is one of the aspects, the other being IMO code more prone
> to errors.  Having to do all this non-trivial extra work after a call
> to set a p2m entry, both in the success and failure cases, seems
> likely that it will be forgotten or incorrectly implemented by some
> of the callers.
> 
> It's you doing the work to fix this, so I'm not going to insist.  It
> seems a lot of extra complexity duplicated across multiple callers.
> 
> FWIW, it would be easier to understand if we had the logic to mark
> pages as dirty in a single place, rather than scattered around
> different callers that do p2m modifications.  For the time being I'm
> fine with doing as you propose, but long term we should see about
> cleaning this code IMO.
> 
>> Furthermore p2m_entry_modify() also isn't really suitable: We don't
>> know the GFN there.
> 
> For one of the callers there's the GFN in context.  For the EPT caller
> it will likely require some plumbing.

>From a more abstract perspective, passing a GFN into that function would
be wrong imo: Constructing a PTE may be unrelated to any particular GFN.
The association with a GFN comes into play only when placing the PTE in
a particular (live) page table.

Furthermore it's not quite clear what the conditions would be for
p2m_entry_modify() to actually mark a page dirty. Only new type? Might
old type also matter (so we wouldn't mark a page needlessly as dirty)?
Yet other criteria? That's what callers will "know" (better?).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 12:01:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 12:01:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181542.1504571 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSwP2-00038x-E5; Tue, 09 Dec 2025 12:01:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181542.1504571; Tue, 09 Dec 2025 12:01:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSwP2-00038q-BJ; Tue, 09 Dec 2025 12:01:12 +0000
Received: by outflank-mailman (input) for mailman id 1181542;
 Tue, 09 Dec 2025 12:01:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2qC9=6P=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1vSwP1-00035D-1r
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 12:01:11 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bf2e9bd9-d4f6-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 13:01:08 +0100 (CET)
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com (2603:10a6:20b:509::16)
 by GVXPR03MB10351.eurprd03.prod.outlook.com (2603:10a6:150:14b::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 12:01:06 +0000
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb]) by AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb%5]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 12:01:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf2e9bd9-d4f6-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AuHcQVJXtOEcx6PrRzST/fJnbC3YM3hsciF5Z1nzlKm9CXMyo18VqwVQutnqCcYRxyHmW0w91bMu34VKxeoD+vWBvQUEYGDQHOSFTKxnPOjSiT9jOOud/6+Z4bKRvxU/LbmQ1qwkyDHaobHp69LI0qvKK22x/7grYwpkTasnpnd/+KtuVeOCjKyfd/X3Vq81Lu8KwCczOhtOpurznteUq8KrPeiMiDmHu4uUWixaV51XijrrBe3ZFR9FfQtqsZym+TCO6v7WWWYqKxllLLblwf58zEdUeNyCVXWTbnsDfcybXCb4UKFLq5Zf7rgezPOYmk06WvXrkOSa407FUjMZVA==
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=IicpKq8m7wEjLkAUtdbc0GuZ+Ne/rMdDMiMWbB4c140=;
 b=kMcxze3qfGI2fBbjJCC/g4uMkv78m9UIy0boEXc3QlFFTjxMxCKoHISrejrSKRNWLI1xZpq9uHpP98EzyY1AxBh+85ODsG2yrAmm0+5Bj6SsfdzgULBc05n0SescF+6hb7G1n0AQSyx8UtX2VK+R0Djsy91cK7wJgbyuGiwSs1BM0s4ty9Y4oTezS/yb4EAJmhEzH6NnUEXJk1J6PSt6GbPKabtIed5JPE05JPrkUmuhk5P0UhzM0lVCAQUFD1R9mhkNFfMsCvna8/z3ICbenR/xu0hewYXzU7xvfUWh89O6tTXHzvCGU8Wu3WBRb3aHT51Yt16VNSZj2FyMVOeKdA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IicpKq8m7wEjLkAUtdbc0GuZ+Ne/rMdDMiMWbB4c140=;
 b=D0o/817ze2u8DbQqadXjDZ0TTN/1qw4mHzPCJ91BsznRQMJKe+F6F+mdH+OTYBEopo1ToqHzJWyDFhEzjof7fBhSHHMGlC89F2Ck2M43o8s7qjFIpWe01dLBxGZ9uABNCfx1sHNS/Hg1KSlVYFvWtvV8i+gHZIcHmtZBZgBNtiuxn9ZjIjlSJRAmKhFs+36tz+cNnUGR1Gnpv6WbPyWIPfoI1jFZyDIsg5T4RdGeZg8sasnS2h9lmnneHPj3jmoV79jj21RJqT+PE8klBeftwhshYcjA8QnXuMbMIiXiMT4WBu6SPgRC6Uzjf1/E+F85qzP0Z8cSS7dRfSP2sPPmjQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <18241d94-7e01-4d72-90fd-ed7f167b68b6@epam.com>
Date: Tue, 9 Dec 2025 13:01:02 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/4] arm/domain: Update SBSA_VUART_CONSOLE config option
 handling
To: "Orzel, Michal" <michal.orzel@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1764961645.git.milan_djokic@epam.com>
 <723a873c8c35f54d1cb29866c9b68211f6a977e7.1764961645.git.milan_djokic@epam.com>
 <221cee55-e7ff-4f17-ac22-16ccd40566b6@amd.com>
Content-Language: en-US
From: Milan Djokic <milan_djokic@epam.com>
In-Reply-To: <221cee55-e7ff-4f17-ac22-16ccd40566b6@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: VI1PR0202CA0004.eurprd02.prod.outlook.com
 (2603:10a6:803:14::17) To AS8PR03MB8322.eurprd03.prod.outlook.com
 (2603:10a6:20b:509::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB8322:EE_|GVXPR03MB10351:EE_
X-MS-Office365-Filtering-Correlation-Id: d9a81373-00ce-45f2-9484-08de371aa212
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Q240cy9vRXJIOTFGYlBLOEt4VHgxWVA0bHp0UVIxUy9vWksyZ2Rka2JsZE0x?=
 =?utf-8?B?eXVEaWZROElVbFh6ODJ0OW45ZWxrWlczM1p6NmlDZmhzb3loU3ppczZMOVJi?=
 =?utf-8?B?RDdsZU5UT1pDYTJNM1JDTmg3RXlOemJ2Y3RMT2taOEFrOWtCQ2hDYWpqdHhD?=
 =?utf-8?B?MTZ0QWpYdG0rVDBBOHRYeFYxVUJ5ODA4MkxtS1kwUU1OVmRnanFLbVJPcEZ5?=
 =?utf-8?B?V0syNnVkU0hyVTF5NUtySjhlazVuZ013MWd5ekRnR3hLWVY3ZzRWc0dKOVVL?=
 =?utf-8?B?SzVyUE9ndUplU0VBaG1GOWFBRE9NemdkZTc3OTNIMGVybnR6OGFxM3JrMkJz?=
 =?utf-8?B?cVYyNnNOclRVNUo1eS9nR01BanpmTUx6YUZIREU2N29oN1RyR3BoWklKMkJO?=
 =?utf-8?B?ZUdCRWE2WU1PN3BaYTBRQ2l3OS9ZbHNlektKcjNqYzcrUWlsQ0h6L3BadEgz?=
 =?utf-8?B?V0w4RjJ3dmRNeDFBT3BjV0g5cTBueFMvVVJreG1yUCtHTDJ4ZE9hZ3dSTUIv?=
 =?utf-8?B?Y0t0c2JKUG80VGM4TTRpUTNKaE8yVTRpSTlTNUpWc3FzVTRuUkFsLzdNY2g0?=
 =?utf-8?B?TjZRRW5laEdER1VoUkRpMndDQU5USkw4Z0hXaFZyNC9Zei93Nk1FbUV5cEFM?=
 =?utf-8?B?UmsyT1g2RWZZTEYrdCtwUWkxYVNxK0hLL2ZkTUlyWTBpUGJqRUFtbEkrRTVi?=
 =?utf-8?B?dzEydURodjVYOUNCVE5wZVVJbnJzRlQ3ckJ6ZTQxalFrYlh6YXBmeThITGcz?=
 =?utf-8?B?ZXVwRERuOXZzYkVzWkh1bE11T1JNZzlSd3pVYnN5Yko3eDFsWDdTUG4rRFZ0?=
 =?utf-8?B?U0srRTVrTlJPSEVHeFBBSE8raFJTN3J1bkhNSW9rUVFYMWhLUFJGamFLUGlN?=
 =?utf-8?B?RmR0c1AzZS9ZY2lQWHJLbTdTZUNydVJXOHhnWlV4LzVtWmc4RXRWWUMzVUp4?=
 =?utf-8?B?cE5zSGYvOXQvYzYxQ0VwU3dCcHpJblZLcDU3dDlpTWRBaDZLZVpuZjJkaFlT?=
 =?utf-8?B?M0gxcE1UWjBkMHpJSGJJRmFlWjI1V1UwQVpQN3hZS3NJRi9aZitEeFNZVnpm?=
 =?utf-8?B?M0dJZGNibDFtMVRCelprbWtIbkJvZ3hXTy9jS3Z5YkQranBYa2NxUTljcHhv?=
 =?utf-8?B?VnpQOXFubWRjMmJPTm1WM1ZiajJFQnpKT1lzTXdxS2tFUE5RU1hlN3BiY3pW?=
 =?utf-8?B?SUFjWlJ4MXhTTXJReDdQSTR6MFd3TE1NOUpiSGJHRWMzdDFFeU1paGoyQXhP?=
 =?utf-8?B?S3M5bXFWeW5DekkyMVRkL2g2cmF3Ritoa3F4T1JoNkdyNDZMU1lvdXQveUJa?=
 =?utf-8?B?ZCtHdEZ6QWlPSmhoK05tZWt3VlNDSytZWHVDY3VLTjJwTWowdmdFc0pJV0hX?=
 =?utf-8?B?cGRoT3JSaFNiMS8wbnk2UUE3MVgvRjc2UENmQURSeldDYmthS005V0ZWbVVs?=
 =?utf-8?B?dHBTRHFrYzdRWG1MSUhBaTYrUWNvYUxDN0Q1bFZ0Mm10K0NHRXdSN0E2TWtX?=
 =?utf-8?B?ak9DYVk0cEZtajlXN2NLUFNWSlI2YkxPL2xWTzZ5cHZVSStEejN4a1ZRWmJj?=
 =?utf-8?B?dkJBbS9NUSt0b1VXaWNNaE5YSWE0eExZVU5zZ00yaVpCMFc0NncrTUhjaGVD?=
 =?utf-8?B?UkFqeENGbXdHbzkzQXU5Wi9FRlhvV3l3Tk9jcE5BL2wxOFFUOGlwekhycTQ4?=
 =?utf-8?B?LzFmamZtU1VLY3RZSHhnSWN4bDVCMEpZcndPcmFpbktIQ3ZKNy9XaFlTZE1j?=
 =?utf-8?B?eHZwcXlBWVIyK29vY01MZmNXaGFXWHp6cldGVnUxMTR3WHRJUU9qWEpqd0JR?=
 =?utf-8?B?RGlUcEhFcGNXTEdQOFpBWUFqTjNaMkFMZGRuM2IvbHdXdktHWlJvN1BHUmVa?=
 =?utf-8?B?ekJNY2ZTK1dzcmV1aDBIeG9PaE5SczRLelZrTm5Kbmt4bU9RQUYvNXB1UGhL?=
 =?utf-8?Q?IRYYbwYM97d5OCssz0SF/cfKZDCg2IvM?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB8322.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NW5VT3h6ZlV0TER2TC9mKy9RSHZxNjJYVHgySW5LUEVNSUZ4eUQvWmxNdU5w?=
 =?utf-8?B?VWFGeDlKc1J6VllFWHpKS0JTWlFwWlg1b3Qzc2VjcFNZY0RmMlU0Si96ZmJr?=
 =?utf-8?B?WHdlMHZqQlFOMGlyeGx5akZteUJ0RHlQZ3ozVnEyekdGekVsK3BvbHZ1a2dF?=
 =?utf-8?B?K2sxTGNIUUsrdkhtakhodzZjODVLdFc4UzR0OS9sVkF3eG01MlA3bkpKOTV6?=
 =?utf-8?B?UjNhVjlBazdsVjg3NTR1SmgyVU1pSDM2cE9NakV4VEhvb0lmK3lldTVlUXdm?=
 =?utf-8?B?YmJyVFBoT1FJZGV1b1FaNDRrb3Q4TkZneXN4a2lZVm9KZXNnUjAzQUwvUDZp?=
 =?utf-8?B?YWZwQjNmNzFHbDNuNWtWVHFodm5sSXpIL0JqY3p5Mm1lVXZIeXJFSjFmSytD?=
 =?utf-8?B?NlAyb3VsMTFMenJTZXpIeUhQNkdqc2ZyVkxmKzViTGIrbzUrTU1XNmN3eFFs?=
 =?utf-8?B?bnRlOWZpcnpRR2h1VEtRNWFaWEY0eS8xRmExMktOdzUwZ2VaUkQ1UVpQKzZL?=
 =?utf-8?B?cCt2VEo3ZXdRSnVhVEZ4OEo0MHJ5cUtDcVhUcUQ3YTJjYWdISjV3QUtXMkNH?=
 =?utf-8?B?dkJ1aEFDM2J5dlBIdGQxS2VlTGJiVUpwSXBSWGdmd3VwY2Rna1F2ejZMeCtY?=
 =?utf-8?B?U3dNSkZjSHF6QVpwa3NKU2VxTGNMZkFWTURUb21Qb0dXcmpxMGRVY1d3TURB?=
 =?utf-8?B?NEtSUWhGOGwyaHFHZThVTk8reHFDN01JU0JuRDVpcFdsVTNtS2pJT1Ivb2J0?=
 =?utf-8?B?eWgyN2hyMmxPbDUwS0NaUDBvN0k4U2JxKzN3ZzljcnNsbmZGczM4N2NZWUti?=
 =?utf-8?B?N05jbVJkQTNZNHNUcEh6YVlncXdMTjQ3WThqWENHTGFFL2kzOWJNSGxPSkZt?=
 =?utf-8?B?M0MxTVdOYkg2aENZbTY2MnpBL0hPMXZMaUFVSU95RVdsZVdTTnJyR2VDTFlp?=
 =?utf-8?B?dXBoeE1ERDYxMGVnbDJaTm1vdndzWWVydkFUTVVDS25BdytZM2NQelJuYnZV?=
 =?utf-8?B?TWwyajF6YWpPNEdhYlo3dTlVWXpNQ3dKVkFBcEYrNk9EU3VMNjg5empsNzkw?=
 =?utf-8?B?UXBUUDYxUnZjeDRWUzJ4cUNkeXd6R1RPUUdiRkRsQWtiMjdudDcxQnJXMFhm?=
 =?utf-8?B?NG9PZkVFay9GVG9sckx0VXgyNW9pd0ZwODV2VkdjcUhSQVhGbkIwTEZFMjBR?=
 =?utf-8?B?VzVhQVVqQVBOSkc2UnEyQ3IxL0VRanlLV3NxcnFLUmJLdHJTd1U2bmVZY3I2?=
 =?utf-8?B?aE1rODVtdEhEMW5yeEpTUUczY2JjY1FNR3M0dkdkTDM2c2ZocmUyV3hCdW5y?=
 =?utf-8?B?ZFpxQXV3dDJOc3BrMFJQN0xJS3RxcVhGeXlGS2MwSU1ybDBGS0lLOXpwM3Qz?=
 =?utf-8?B?anUwQjRJc1pBYU1PVUJmTGw5NEZtdEtwREdvNVdUVmN6cm01eERWZFBZTS83?=
 =?utf-8?B?SnByUmFTY2Z5M0szVzJLbk1aTmFZVmx3dTZyc3p4WTJBT2ZvZWh6Wks3cGVs?=
 =?utf-8?B?WmVrR0RROWI3Vkd3QVhscnV6RVNXMy90Wkc3MXRlRjhub2ZmRjVwb3hjeGh6?=
 =?utf-8?B?ZjBUUmRNNXBoaVl6dHRjZURRZnB5M0JjMUhCVFplbUpwLzd3SllEeVZNVFI0?=
 =?utf-8?B?MnNFYzVoVnFQZFZWSm04cmVhcUxsRFlqdjlhRjlkTXBKeTlRY1FrNGhQN0pP?=
 =?utf-8?B?cTF2VmYzQllrMnJDTGhnZTV5RGFrVlRxaERHZ2xDTGVqUHAwQ3ptM3daWHYv?=
 =?utf-8?B?c2V5UmI2SGNlVjFpSFVmanhKTXczcXZOVFRtNGlQMkxRQnY3ZzVEYWtiTjVx?=
 =?utf-8?B?amRNS1hoM25FZmpYWUo1YUdWald5N0dzUlJtVFFzUEZNVForV21UVENseEFE?=
 =?utf-8?B?T2NPUm44NDNVTmxDQ2R0dWExTmRtdFhGRTJFVVJYUERwSnVTSk0wbktZTzVV?=
 =?utf-8?B?MUNzSFBlRi9SelRKU29YTlRUOC9nckhqYmtoTlcxN2hIZE9mN1R0VTdsTnky?=
 =?utf-8?B?TjEreTNwbXl2ZGNkSXRtczhoNGNxNE5nUmxwYzJLQ0J1NkdWaW9tNlZnQUh0?=
 =?utf-8?B?eTM4V3NUWW5wbllQSlBFbnVRajJaRGliNkpib2RYV3pMUEJ3SkE2MGdBdHR5?=
 =?utf-8?Q?EiDmAGGP42nRZPMwLvTz3Ok9V?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d9a81373-00ce-45f2-9484-08de371aa212
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB8322.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 12:01:06.3433
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: CyHhXNftNUy6H3ioHzBbt5uNa94eSN3DD4502ACSkJVLtNz3yimcMpm9hcBeKgljTS9gKLqk437MQIls7vaZZg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB10351


Hi Michal,
On 12/8/25 15:43, Orzel, Michal wrote:
> 
> 
> On 05/12/2025 21:36, Milan Djokic wrote:
>> Update XEN_DOMCTL_vuart_op command handling to return -EOPNOTSUPP when
>> vpl011 is disabled, informing the control domain that this feature
>> is unavailable.
>> Added dom0less config sanity check for vpl011 property
>>
>> Signed-off-by: Milan Djokic <milan_djokic@epam.com>
>> ---
>>   xen/arch/arm/dom0less-build.c     | 4 ++++
>>   xen/arch/arm/domctl.c             | 3 +++
>>   xen/arch/arm/include/asm/vpl011.h | 2 +-
>>   3 files changed, 8 insertions(+), 1 deletion(-)
>>
>> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
>> index 4181c10538..57980d2abe 100644
>> --- a/xen/arch/arm/dom0less-build.c
>> +++ b/xen/arch/arm/dom0less-build.c
>> @@ -322,6 +322,10 @@ int __init arch_parse_dom0less_node(struct dt_device_node *node,
>>       if ( domu_dt_sci_parse(node, d_cfg) )
>>           panic("Error getting SCI configuration\n");
>>   
>> +    if ( dt_property_read_bool(node, "vpl011") &&
>> +         !IS_ENABLED(CONFIG_SBSA_VUART_CONSOLE) )
>> +        panic("'vpl011' property found, but CONFIG_SBSA_VUART_CONSOLE not selected\n");
> I don't think there is a need for another dt property reading. In init_vuart()
> we read this property and if present we call domain_vpl011_init. This function
> returns (thanks to your change) -EOPNOTSUPP, so we already cover both cases. No
> need for an explicit panic.
> 

I added this check since it seemed to me that this specific case should 
be covered as part of the config sanity check. But yes, if there's no 
need for an explicit panic, it is handled later in domain_vpl011_init() 
anyway. Will remove it.

>> +
>>       if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
>>       {
>>           int vpl011_virq = GUEST_VPL011_SPI;
>> diff --git a/xen/arch/arm/domctl.c b/xen/arch/arm/domctl.c
>> index ad914c915f..250e20a9fb 100644
>> --- a/xen/arch/arm/domctl.c
>> +++ b/xen/arch/arm/domctl.c
>> @@ -156,6 +156,9 @@ long arch_do_domctl(struct xen_domctl *domctl, struct domain *d,
>>           unsigned int i;
>>           struct xen_domctl_vuart_op *vuart_op = &domctl->u.vuart_op;
>>   
>> +        if ( !IS_ENABLED(CONFIG_SBSA_VUART_CONSOLE) )
>> +            return -EOPNOTSUPP;
> Why is this needed? Later on in this path we will call domain_vpl011_init that
> will return exactly the same if CONFIG_SBSA_VUART_CONSOLE is not enabled.
> 

Yes, this is not necessary. I will exclude this part.

>> +
>>           /* check that structure padding must be 0. */
>>           for ( i = 0; i < sizeof(vuart_op->pad); i++ )
>>               if ( vuart_op->pad[i] )
>> diff --git a/xen/arch/arm/include/asm/vpl011.h b/xen/arch/arm/include/asm/vpl011.h
>> index cc83868281..b8f4d85651 100644
>> --- a/xen/arch/arm/include/asm/vpl011.h
>> +++ b/xen/arch/arm/include/asm/vpl011.h
>> @@ -74,7 +74,7 @@ int vpl011_rx_char_xen(struct domain *d, char c);
>>   static inline int domain_vpl011_init(struct domain *d,
>>                                        struct vpl011_init_info *info)
>>   {
>> -    return -ENOSYS;
>> +    return -EOPNOTSUPP;
> This change is ok.
> 
> ~Michal
> 

BR,
Milan



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 12:21:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 12:21:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181553.1504582 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSwj2-0006G1-1b; Tue, 09 Dec 2025 12:21:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181553.1504582; Tue, 09 Dec 2025 12:21:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSwj1-0006Fu-UL; Tue, 09 Dec 2025 12:21:51 +0000
Received: by outflank-mailman (input) for mailman id 1181553;
 Tue, 09 Dec 2025 12:21:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=N5PS=6P=gmail.com=samaan.dehghan@srs-se1.protection.inumbo.net>)
 id 1vSwj0-0006Fm-EY
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 12:21:50 +0000
Received: from mail-pj1-x102f.google.com (mail-pj1-x102f.google.com
 [2607:f8b0:4864:20::102f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a1835904-d4f9-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 13:21:48 +0100 (CET)
Received: by mail-pj1-x102f.google.com with SMTP id
 98e67ed59e1d1-3436a97f092so7072255a91.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 04:21:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a1835904-d4f9-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765282906; x=1765887706; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1pr8v5ipCIdbqwlw0oS7MwdV0AzJfz/Gw26ur7eGEHA=;
        b=SLuhRBrUXtM4BCGEe6/vyE+zGPyEN3NaNZf6WL7RrD1mznJpU5eo5fdlAhVWl0FzoD
         mX2Rdj5N/T7d53h9fpxXBi+VojUas83mQd2VZBbvWMM35CM254TChcuEhFPKX9hFcGch
         rAbXb/mMdRpqB07EW2eBAF/LYptMUiiPKj7qO3NYnDm3PhqrvSp+A0sWgFG1RAwxdS1l
         4IFYfp8NRAGYv05QPjQHGRV0DYKxC/o1C8tdsG9UfX3ecJ0XsGj8KCHSso7zRkzgxf/v
         3UU0gtjJ4ne484YXoTnMW4CfCENtZ0aE2cs49Mwy3FYynnMzghNAfxpKbe6BxiGh6vJW
         tFEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765282906; x=1765887706;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=1pr8v5ipCIdbqwlw0oS7MwdV0AzJfz/Gw26ur7eGEHA=;
        b=rmGD1jfbSmY0UgQ34wSzdiJCojPcyQO0v88NDz1G8I5Fcj5onphM8I2Ow50Yc6Re2J
         wY18UV5f17HqTn68TUgf1H0+06/7yNLTZmpIJ63ZxhK0PSC4Q861Nel2/ZOGgZqhD1IR
         gQe2UXtZUizmzPil++wQjOeNL+bylS5XCoAfvSWP05+SCXQ0ZBYYYld5UBGLqotL274h
         4JamuHzalPUlvl6OojI+3XcnX9INC9GLtz5dKi82LoMyBlDQ5JT1Ivd02TlBK9n/oPog
         CxW+1z2GicK6BY+Oi2LzA/4rYaPCJBbS8PJY5LS58X42BaNwf0rDU380L7oxDznMe90W
         71uw==
X-Forwarded-Encrypted: i=1; AJvYcCX5ENfqFt9Dm8CMPpb9K8FJRORC1shUw/hXYHunCRpG/UgXDaL9LGrV+BGVMZei4U6Z6NLX7oewP+U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzEQNFYGc8WK4HHpW1W4J6yqtryKKesiqXxr2Au3RGSfAHbjHHl
	FSkTdysNWcg2ACxuFozFb9v6yoVoLdTFHmEW/FgFe6NeTZyzr9Q2tB915fWDmi23Mu/aG6thXmU
	I5Bn3moEfca/6rKQ8nXhKaJclALhnEQ==
X-Gm-Gg: AY/fxX7t3p4PdAFmzhIlyB3LXLe6P6LDeGZMn8uirvwIibdetRELBwBengFT4IXKBzg
	gKHcx7UE4bODkzjyG55sHCo8AtYJZK5wUREspYpz8bshz8umxDtziWufDCAZpIVAWk7Nthis3iI
	I/v4cV5WmoP8bt1Jo4GGgm4dfr3Cxcx4n51iTULyeuJkpgDjw3eRXk1tha8vMXJVowlGqn2n/Ky
	HUPa2pOqwauE3OHFqAkGjqf/qZRfeQXwWvHU++jmOd0Jj7d551BSTy+YGGO8FC52jlmeUcxfpLn
	BVUOBpSylUSQMgYjHYy2L762
X-Google-Smtp-Source: AGHT+IHscBjx2qyq04DgHhBKIWRoxJZ+kWY1kTYwJOut8lZjBT+X4vq8qMLTU7W42IcpT1OG/ZhIapVVvJKE2AA3XR4=
X-Received: by 2002:a17:90b:1d47:b0:33f:ee05:56e1 with SMTP id
 98e67ed59e1d1-349a253dc81mr8363817a91.2.1765282906371; Tue, 09 Dec 2025
 04:21:46 -0800 (PST)
MIME-Version: 1.0
References: <bd6686e7fc0756e929334792b94ddd66bde125c4.1765239102.git.samaan.dehghan@gmail.com>
 <0b6b23ab-c683-4cd4-a95c-6892a2c1f164@suse.com>
In-Reply-To: <0b6b23ab-c683-4cd4-a95c-6892a2c1f164@suse.com>
From: Saman Dehghan <samaan.dehghan@gmail.com>
Date: Tue, 9 Dec 2025 06:21:34 -0600
X-Gm-Features: AQt7F2pEE9QsyZ_tEQt5vZx8b_PUATdt6ZKs7MkZfXH-7mcvsD3bR3EQk72J-NM
Message-ID: <CAHFNDNjTX9Oj43H1oH=VEaj5vgYRUqe7Hj92kY1wn1JuSKqzUQ@mail.gmail.com>
Subject: Re: [PATCH] xen/arm64: Add support Clang build on arm64
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Dec 9, 2025 at 1:49=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wrot=
e:
>
> On 09.12.2025 01:37, Saman Dehghan wrote:
> > This patch enables building Xen on arm64 architecture using the Clang c=
ompiler.
> > Changes include:
> > - Add explicit -march=3Darmv8 flag for arm64 builds.
> > - Add `__attribute__((target("fp-armv8")))` to `vfp_save_state` and
> >   `vfp_restore_state` functions when building with Clang to allow
> >   FP instructions despite `-mgeneral-regs-only`.
> >
> > Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>
> > ---
> >  xen/arch/arm/arch.mk     | 1 +
> >  xen/arch/arm/arm64/vfp.c | 6 ++++++
> >  2 files changed, 7 insertions(+)
>
> Please also update ./README then accordingly.

Thank you, Jan, I will do that.

~Saman
>
> > --- a/xen/arch/arm/arm64/vfp.c
> > +++ b/xen/arch/arm/arm64/vfp.c
> > @@ -46,6 +46,9 @@ static inline void restore_state(const uint64_t *fpre=
gs)
> >                   : : "Q" (*fpregs), "r" (fpregs));
> >  }
> >
> > +#if defined(CONFIG_CC_IS_CLANG)
> > +__attribute__((target("fp-armv8")))
> > +#endif
> >  void vfp_save_state(struct vcpu *v)
> >  {
> >      if ( !cpu_has_fp )
> > @@ -62,6 +65,9 @@ void vfp_save_state(struct vcpu *v)
> >          v->arch.vfp.fpexc32_el2 =3D READ_SYSREG(FPEXC32_EL2);
> >  }
> >
> > +#if defined(CONFIG_CC_IS_CLANG)
> > +__attribute__((target("fp-armv8")))
> > +#endif
> >  void vfp_restore_state(struct vcpu *v)
> >  {
> >      if ( !cpu_has_fp )
>
> Aren't it save_state() and restore_state() which actually use FP register=
s?
> Applying such attributes in too wide a fashion risks the compiler using F=
P
> registers also for other purposes. On x86 we were hit by such when we
> suppressed use of SSE registers while not suppressing use of MMX ones. In
> some configuration, after many years of this having gone fine, the compil=
er
> chose to use MMX insns for some odd reason.
>
> Seeing that save_state() and restore_state() are a single asm() statement
> each, any reason not to actually have them in an assembly file, just like
> their SVE counterparts are?
>

On top of those, `READ_SYSREG(FPSR)`, `READ_SYSREG(FPCR)`,
`WRITE_SYSREG(v->arch.vfp.fpsr, FPSR)`and
`WRITE_SYSREG(v->arch.vfp.fpcr, FPCR)` using FP.
I think I cannot apply __attribute__ on statements.

~Saman

> Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 12:23:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 12:23:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181563.1504591 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSwkO-0006li-9f; Tue, 09 Dec 2025 12:23:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181563.1504591; Tue, 09 Dec 2025 12:23:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSwkO-0006lb-74; Tue, 09 Dec 2025 12:23:16 +0000
Received: by outflank-mailman (input) for mailman id 1181563;
 Tue, 09 Dec 2025 12:23:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nu2q=6P=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vSwkM-0006kw-KI
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 12:23:14 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d3a92cd1-d4f9-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 13:23:12 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV4PR03MB8236.namprd03.prod.outlook.com (2603:10b6:408:2e0::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 12:23:08 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 12:23:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d3a92cd1-d4f9-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DRmWFb1HZudP8tVciU1cY8emBKnZqm5wJCeIRug6yN21vKdnCg1b7RCTBtjJ+a0kne0fHYS54/7duVmFVcCLTplSSg9EvzeIaVFlWOzTrWH3AVgwJflwf3jfjEHj2pjWLkEMWfqrXyECOIAocLLQEAiYU5OgRiD84A04Q+vVXVU9hqHPMYEyMPb/B+l18X0vfZZbR5DPTON3hGZ4GS94VCRjJx7vC1KaBO/YUFzRQrwM6aNjlzWChQYtS2hHuACEThg8WNBo+QL8+9+QhMyrAbJ0jK86C9QsgOHw4jZdsMtaf/pRdE2vG2ncng13ExG+hmt8189awsOkbAgEfIFKIA==
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=UsQvG89Pwkhu/axJC4ky6i0v0+hDESPbQIay4qC5ybk=;
 b=qlzLVVy2og8TNNjmtTHDPdHjGI8OBJdZwc+J2ANsZSmLo5NXMNYRNNXaJ94X8Ewxu//erxJmGX9gJgJg3bZw8RKPfoO3A9iiEcI6nK+s/JwM/dtFbZmtCan/ywxzWNNKFFt8EWyuGz7MsAV1BaXIg5XX8Q6LfmdDJIs6PuJRYge+bcHEAGUjAThdFH+96VRFpEvRVfSuj3s1kkYtMu4ICsNOVb3G5eofluIkeaS+czjrrxSSwVtr/JGKAkwxa52Ua6f1lfvyOJHVvZup60Te05Di0erI35MNGx+Zum1WitDKk3Q5DnpxGyv/cd36vuOjOYt8bEz82ntJfC7I+ZhE5A==
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=UsQvG89Pwkhu/axJC4ky6i0v0+hDESPbQIay4qC5ybk=;
 b=EB7q7PTY/5MjLRjLsTXIipMzpWxWsC1QzatXUiXPIHg5B4mr3OhcCJPggLwr2/h5O37CbXzvpufuNyry8YFvDaPVKWGDZ5eDnGiB/u2MCWhJNw7VOc+vzrPQCLC0sFynyPwquxb3XviUKP5M1JzsjuoXYaIYQ8T6AYINi8kzFbU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <565e8f4b-d0d9-40a9-978d-13a533a86b9d@citrix.com>
Date: Tue, 9 Dec 2025 12:23:05 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [PATCH] symbol: drop private header again
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <23b11dd1-1d18-4b89-9450-b3c92b09c7c4@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <23b11dd1-1d18-4b89-9450-b3c92b09c7c4@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P123CA0023.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:a6::35) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|LV4PR03MB8236:EE_
X-MS-Office365-Filtering-Correlation-Id: 3b60f885-6ef0-4f63-6fb3-08de371db65f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?djUvL1pyTDdYZzljd3hvMk5lblhOYVg5and1VG1UdXlyUXNHdnNqV0RVaTho?=
 =?utf-8?B?SHAyNzVXS1g0dVRPdlpvblcxWXl0dTZBK3FBNDVRUjFzL0tWMnYvOGxQUHBy?=
 =?utf-8?B?Sk84cldQOGNjaUd3dUdBcjI1dnZIZElxYkhVblJXU2tKcGhlNitENjZYLzFk?=
 =?utf-8?B?SmxEMGN6QXNOWjgzUktHRnBtSVMwR3gxSTAweThRT001aE9LOXpjd1NCeG5q?=
 =?utf-8?B?eFRwdk1ENHRFbER5SGxOQmtJeDNic1FVRTFwcmRTYUh2Q2gvdGxFMzBiQ0Ex?=
 =?utf-8?B?Q29lR3A2ZmF0Ny9ERGVWcXRsR3dZVGVac0FWbklFem52bVhQYmZyR0tpa3FB?=
 =?utf-8?B?a05xeDVKa3NkNVRnR21PRGlLNmFxejU2dk9JclJzT3RMYi9YNDdKeDFtbnhn?=
 =?utf-8?B?MnMycDlRd3pMRVhOYjE4a1FYWmg2QVRVN2taNWZvMmVzd2J1WWg3QW9rSTdx?=
 =?utf-8?B?ZkMrdVpaUnJ3cHJkUldWbEZRZDZQVmhNRThuODlDOWphaitmc1JYVDl1SFBD?=
 =?utf-8?B?c3IycE5NQUtVcDJac0ZISUZ3SlhBSE1LeDhicGZnSVpvbDdQR2w1Z1Mxbm92?=
 =?utf-8?B?dlpJcVJLVUdBMTJaK3ZHSXRpZ1c4dTJwNVVzUEhEOHRDSnFqMko2UXdiOTAy?=
 =?utf-8?B?K3doVTN4b04xUGliVmhWckUvRGUxSnpkMkZQdTN2Q1pKZjFOYUZGOTQ4eEZy?=
 =?utf-8?B?djdnakhqMEQ4WmhndXBWVE5scVNHazNzOGdPTVpRQWxUMG85c0l6YzMrdWVh?=
 =?utf-8?B?SEI1MWsrbkpjOVArMmE2MUhMNmtlTDRWLzR1UHdUSG5Mam56ZzU1bEwwWjU0?=
 =?utf-8?B?WHg3TUQxdEFiQjQ1UHlKZTZwYzBOTDRDS3dYeUg5dDlXY0VDTkxySVRJTUZ5?=
 =?utf-8?B?ZEtLSTlzVjU2aXpyL2F4K1VQTDVQWUNhMXV3MEdWeEJMeGlybzFRdzNFWW9P?=
 =?utf-8?B?dUhPcDA2bmVBRHB4dlY2aDZqbTEzK1RPM2ZTY0ZCeXRxd21ibkJtRWZ0dlhP?=
 =?utf-8?B?bEdDdFJqNDhOWk9vR21YVVdJd3YvTHhmQ3NJaDY1cENDZG5BZmNzbFJvcWZL?=
 =?utf-8?B?SVpKdjZ5UlphYWY0S2NQblhaM25CTjk4S1R2cWJJWWFESVVwVG5pdU0wR2ln?=
 =?utf-8?B?dytQclNiTkp1T3M5NVVEclJXTWIvMGhvcUxZb1NBMTd0VDNzY3FjTzZoSXo0?=
 =?utf-8?B?QTFvSnJtTFFYTVVCWnBoYjNLWld6TVV1Q0RQcTBJeEFaYkZVei8yd0trWXIw?=
 =?utf-8?B?SmlDZUsxOFJTcXlMZmRvM3UvanFKdG5TbDJoRkYxZkQyZHluK3FZUHg2Skh6?=
 =?utf-8?B?UzdTT1d3aU1qQXhWSGhmUnR2Wk1vRklrMTBHWjg2SEFXWXVpZkMxejEydjZD?=
 =?utf-8?B?MWtUVUdWVXJ0aWtveXFya0NYaTU0bTRFTi9pYk12SXd0dkZnQXF3NFl5bXhW?=
 =?utf-8?B?UkRSNjJnN1B2OGRRbGFCYVVhNkxMY09XMURUcGE0M1VuVVpRczY1a0JBb2F5?=
 =?utf-8?B?eUxwYUJpUVBNNW1GeVpiYnZRMjhrVVhDcFNHQ1BCMEJmekZwMUJjczVkZzVP?=
 =?utf-8?B?cEhtZEV2bVk5RU9PM2lrR1h5Uy9NN3U5VmNpanRnWVNhMDZqUU9QNk1Ib1g2?=
 =?utf-8?B?VmpRNVBpTjlGdjJOWncwVDZlUlo3cE9RZ2dwVDBTaEd3QnhCME1LczJQVVBB?=
 =?utf-8?B?bEV2bWtTSzBHbVFkZHB6UmhzZXYwTjhwbjlBMkpoc3BiTWV5aE1RNEpFU0lp?=
 =?utf-8?B?ZXJ0MWxDWDJ4QXV2aDlDbHdjN0k3enpGVzZjcnhVTDdxWWZzTEs1bnRuUlUz?=
 =?utf-8?B?MzY1dEViVS9mViszajFEQXQ5U0JzYjUveUlGMlFKY3NnMDVpYXA1SUVkWnpl?=
 =?utf-8?B?TFE2aXJFOGxIcXorakpTZXRneGpsQnV0aFhSMkcyV3lBbUN6c3NHUGJ5WXpM?=
 =?utf-8?Q?h9oXUB+aZrK5USmK9wFRVe8hHjV6F18/?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OE94d3JOK1MxTHUwd2VZdHpjUFhBd1RRZnk4K1JwUkQ1cEo1QTdCREZMSHlM?=
 =?utf-8?B?YlBqcFUzNDkyTTVTQ3hhOE1YSkRpZ1FSaHpLdFJ5TDYzaWlZc05xc3hwTlg3?=
 =?utf-8?B?MzgvMldCTmI0TGZIa2lMMUxnT3FxTHJTRWFrZDlWMkRNYlRxa01uTVVuSHd0?=
 =?utf-8?B?cUgxOFZSVnkzT01YZzZYcllPZ3pLOGJZVzkzTnV3SEJHRW8xRFpVdVl0M3Zj?=
 =?utf-8?B?WVBCeW9jTnpyb1hqRWxRWVVGK2NraTNrS2dFdGlvOWNtdldlS2JyanhHUXpY?=
 =?utf-8?B?SU54cG8vV1gzcDgrbGlqblFaQVl1dVFpOE1PMUNtbGN4L0lsWkpYdFc4RXNS?=
 =?utf-8?B?NnZIdThvYktSa3VORDNHUzJGZ0pSRG1tUkJha0F2RGZIc3hqbW9sWGVxQVh0?=
 =?utf-8?B?UTM4MlZudDdKV1p1VVR5RXR3WUgvRU5DOTQ5TUNQakt4Kzk0czZMWndWOER3?=
 =?utf-8?B?Y25Ybm9XQ3dHTUhGTVArL2ExcFdmR3hXdTBZS1g3S3hYSnFQdlFXRUNiSVhF?=
 =?utf-8?B?MURFSUNEb1N3bVRaSjY4Nk8rcDI1ZHJGUXU0RklZTUdURmF0N25GOG90TE8x?=
 =?utf-8?B?WExvTWlWRzJKRFhzS0FFVDV2dk5FUGxHcTFiNk1aK1gyRy92dXc1d3lrWHlz?=
 =?utf-8?B?bGdtUmpHOTMzc01sTDEwK3JSdXEyNGdNSnJXQ3RnSzhsSUsvOUdQVXJWTlFp?=
 =?utf-8?B?VERMR3U1VVZxT2FqdEdiY3ZDNTZIQzkxSWpVSTFjZGgwNEYvYktUSnd4RzZu?=
 =?utf-8?B?dVJrR3dsdDgycVhMcjM5ZXNJT25GOGRRSUhObHB6VmV3Qk1UU1dNRHdFUFF0?=
 =?utf-8?B?RDZReGVnNzJIOHowSkR5UnVWaXdaazZBNFlVWGoySllOdWoxWGNVSEcrVjdZ?=
 =?utf-8?B?cVNxZzFSdE5KY1BXdHFRVEthTmZRMm5yK0N1cGxKckFWT2RpMGNGdXdTTUw1?=
 =?utf-8?B?QWdyVmZmV0pyOUY4MFZYYVUxWUpiYlc1akRvM09LV3owUW0vMjdBdHlod080?=
 =?utf-8?B?dHkzMjNFQ3o0UDJMd3kzeDZRdm9LNUNnR05CcHNKeUtzRG1YbGJqKzJKMDV2?=
 =?utf-8?B?TmZ4Y05BcGpFOWRGWEp2Yis0WCtKbFBIVkZEbUZ2U3h4cGswaWZ4NXlIakVs?=
 =?utf-8?B?OWhQS0F2OVVBUkF3WG5FQ01QbHhnR1RlMHBHQzBPWjJMc0s0Mm94WWp1djBM?=
 =?utf-8?B?WTNCbnBqU0FrZDZkcDhZQTdyL3NyNFN5cE1OWjRYKzdkckVuOGdKVkdqWkxH?=
 =?utf-8?B?cDhpYjJGSSsxRzlndWVHbzN3dWNlZW1zRnZDQUpyQlN0K0c1dGRwVDZ4azlX?=
 =?utf-8?B?eEZJK2ZUT3FEZ01NRmtOZlJhc011a1ZhL3FMOStUTnhoRUdxblE5QndwZGd5?=
 =?utf-8?B?YUlUT0tvY0xNL081eHVTTnZyT0cyeUZDWkU5YXBqT2lUUG91bWNrNFVBZGNx?=
 =?utf-8?B?aWFUWkN3b21ER3VpN0xsQWRqTzZnZm9oVTlmSG1Pb2FPWUxiMlh6OFlwdWpv?=
 =?utf-8?B?cjZBT054d3F5TUVnOVpEZVZHWDFBTUYxZDV1Rk9ybmswMGZ4WmVqQyttWGRH?=
 =?utf-8?B?WTZBN0UwMHRjRlhNUkE1QTI5TXJlSzVlZzU5SG1PNThuN3VReWVsZW9wYk1U?=
 =?utf-8?B?bXNhcldiSFE0SjRPRjFIeW5rNHZoZCtIUU9IRkpWU0xMcnA4U3F1UjFnYyty?=
 =?utf-8?B?SGQzRVc0blhwckE5b2xLR0p4Q3dHazI3VEpaQW1sb0hjSmp6VEhuOER4NXNE?=
 =?utf-8?B?TW5NNDd1THpscGFCSFVQMnk1cU1iZ0RvTW9nREZLQmpnbGJPMjFPNkV4SUNy?=
 =?utf-8?B?RHp0N1ZLMk5HZVVtaVpLWUxvV2lpa1FuL0tZOEJlZ2NWeVk3cVl5bzBOTlFQ?=
 =?utf-8?B?bFZuNmtwQ1ZLVFh5d0QxaDhETXM3amI1NnV1WTdFSEh6UWtoT3FxWGx3c2VE?=
 =?utf-8?B?MUR3amhreHlDRWErdzRvVlhrKzF0eFJhYkJVWnRMeld3d3dYRTByMXFRaEVN?=
 =?utf-8?B?N040YXdHUmhFWHIwV2h6UEFEYWkyam9vUzAwOVVPejFFb21JNmtEUTdJOG5D?=
 =?utf-8?B?UEIrNXU1L0hJWGxBNWNNMVpLeXkwbjYrelZUaFRINkVicEFhNVFOeDIvcHZ3?=
 =?utf-8?B?VXlFVzBsMEFPYUdmUnh2RWNTM2kraGhqOTA2dDJJZDZBMVRTVGIzR3BDZit1?=
 =?utf-8?B?YVE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3b60f885-6ef0-4f63-6fb3-08de371db65f
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 12:23:08.8556
 (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: hhEwbo1WgEagxoczTr+Q6R5bhISo6YIEVTr+ijkk3CtHGU3E87iVLs2U1s0HDakjPc+5xmKBQoXZT6EQUoQJk4nUiDsuRP6xISJF8/E6wzQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV4PR03MB8236

On 09/12/2025 10:13 am, Jan Beulich wrote:
> With symbols-dummy.c gone, there's only on party using this header. Fold
> its contents back into symbols.c.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 12:24:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 12:24:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181578.1504602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSwm0-0007Mu-Pq; Tue, 09 Dec 2025 12:24:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181578.1504602; Tue, 09 Dec 2025 12:24:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSwm0-0007Mn-Mf; Tue, 09 Dec 2025 12:24:56 +0000
Received: by outflank-mailman (input) for mailman id 1181578;
 Tue, 09 Dec 2025 12:24:56 +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
 <SRS0=I/6M=6P=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vSwm0-0007D7-4h
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 12:24:56 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 115ec780-d4fa-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 13:24:54 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by PA4PR03MB8221.eurprd03.prod.outlook.com (2603:10a6:102:26b::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 12:24:52 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 12:24:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 115ec780-d4fa-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VcPlT1apnxENTtAQsQtfaNXxqDnMnxGDo28xgWmr6wiViWMBvbLDtxuL25UtVbMzYx7hjIV2oefiKqRhLE85vmanLhj2bfzsRx94BAL+eUME1zCP3V24VmobjsYNvrEGTWTFEiv4iE8dnZNnFdmImu77u8ypW/jmpPnGQFuyIxvC5GK1zAVN3fvd/rPhB/PlCyUjKfGEQIA3Fm/CRE3ivYX5lM9fmBLFIct8PiSbsfxcvwhFnQLbeZpvJbXPQBTNtzHVbRht+z1EfvTslkwYbM8FhYByM2LLoujyILLeTA5TSOmuGGY9oVOcL1oZdj+O0UM+Fhzg+UZL57HC/dt9HA==
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=3cbQYfqNMkTWZznW/h+Ici5/kgpXubEoFtnD85axcvI=;
 b=h5kLFF6jh3agVA9iUpqK21KxTdQm4q9QfJ5raPcuCKswWQR4FzjqAs8B4L7qNy8XP86c7cf1IWZz6lB45Z7CQgVQP7vLfreN8LqM+p0EJXFpPqB7BhJAnax9C/xsy9hSavssb4e10jspdrJVGe7KfP0aoBo2slI4xvBuUHFOimFa427aCSx7KWh3CIOk2lsTqobjtBF06LAfOxudP6Fdmix1wWF+5B3wcFEoQTcjvobxjc+WRRHWbZaY0TIBPaqpg3DPH/9wRyZJRxKUDwoQdgJv6eyzS1QoC53aedRUW1mLlEQ8DUE9JFDk3/PdJCyKu78TIawKQR6A+cqeGz9emA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3cbQYfqNMkTWZznW/h+Ici5/kgpXubEoFtnD85axcvI=;
 b=Rso9GVzbuvoQOX37GgBE/NEwVq0WlJ5a5OdpI3NnZ5DODZZmRo9LjYEzVzjgnLzdxP41Ax7ssFbioewQtLP+0GwXkGtB3SIiP94BhCm1sZPgIXN/EwwJzsOQz7tBwQ96+0ol1zOe/KqtnpEgXG741buFjYl1Xp1KJOyBIrrYMw/auaP/HD4ZUGZJ7Y/D8vZoEzTgu8ul8FRLmHDYUiShF7uRTmaZUIlw2+rCRa4ENCEFUZvPyqUjBpEQJEufP/wbA2zUcW9Ajw2PmjcYnqgg6hXmz3kI2wmuIaGVrOeKhlqnK1Ouan6m0le516FUTl/6EVDUiSiJVEfcoNECJFN8iw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <f0da7ce3-1846-4865-8e66-bc3e50f78390@epam.com>
Date: Tue, 9 Dec 2025 14:24:35 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/3] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251128152218.3886583-1-grygorii_strashko@epam.com>
 <20251128152218.3886583-4-grygorii_strashko@epam.com>
 <c9ee4fc8-44c6-43e8-88eb-9041c51aed16@suse.com>
 <d025e3dd-ba2a-4a9d-af37-37570e690aee@epam.com>
 <a3dcfce1-4695-4064-a1e3-af09bfa04199@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <a3dcfce1-4695-4064-a1e3-af09bfa04199@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
X-ClientProxiedBy: WA2P291CA0024.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::15) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|PA4PR03MB8221:EE_
X-MS-Office365-Filtering-Correlation-Id: 7437f7f4-2050-4641-70a8-08de371defca
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QjErNFFWVlhnZjBNUmRRbDdsOWxjWDErY0Fya2VLcFVqN3h2S0ZBaXBZenVL?=
 =?utf-8?B?NWZ3MjhUazlHaXdwb201MGR3TllsSDYybkIyOG1iVDFMNzljTnVhcFI5cHZ4?=
 =?utf-8?B?MkdkU3MrUVRITFp4YmlWSUNWaUpubHZxTlArSWlEd3psWi9NOVJsclpTNXFZ?=
 =?utf-8?B?dzhpRGdHMEg1TGtXcFRoem40dW5oSkhHV0NWR3B2Nlg1UU9IUG93U2FXSU1H?=
 =?utf-8?B?TXg3SG1MNG05RDVpMWtzRitxQ3pGV0VWdElOdHNIck1ReUtNT1g4aW5WdVdS?=
 =?utf-8?B?a2FuTFpMb1ZZVkFMMXF1QW0yOWdyVG5QQ3VsNHFNWExlMThXazNBaG1abXFE?=
 =?utf-8?B?WlRjTzFNQjRrRHBSK3ZYTStTM29uSmM4M1Riak1ybzUza2V2TzlMQ21ma21N?=
 =?utf-8?B?d2wwWVRHWU93bGw4Tk9sSkNkd256RjF6NkFhbDhIU1RIeFFWUDhLVHBDbEpS?=
 =?utf-8?B?REJOTmdmNlFVbEJhdG9BYTlkYnFuaTM3UlRCVEtILzNZL3p6TDlkVi9sdEtq?=
 =?utf-8?B?MktjL3NKZjZSbERHdXUyYk9YR3h0N3FKWWVlMzJUVWtVaHhDN2tQSzFtTXJ3?=
 =?utf-8?B?K2ZvdUFidHJPT29nOGZCVmRKUmxnaEhRWG5CZnJDMVcraitQNld5Z3FGSFVl?=
 =?utf-8?B?NlllWGozUmhrSHFGenJhTlpERng4MWovclBuQUxuWk9hRVBsZ1NRU0oyblNB?=
 =?utf-8?B?QmQ4SFB0OFJHcTRDZXk1V2xVZG1ybDRPRjRtSzk4djF5MlJtbnZhTDUwdUxN?=
 =?utf-8?B?SG55aHNxRkM2eUxTSXNjS0h2MFNJd3JueDNLZzlOSTZMNnRTV2o0dlBMWWdY?=
 =?utf-8?B?cmdMbWJkVnRYeVI5d1ZNclJ4QjFEcDFBL2t4ZXM4R3FoVjk1eXoyRUphOTlV?=
 =?utf-8?B?UjB5aDUreVI2R21SMXJWdktwMEVHeGlWY2E0Unk3TnRuRFluSkNtaDJvYmVV?=
 =?utf-8?B?QVI2SXZDQ254RitVaUVDeWxLSm9hUXA1eUJSbWQxSy9ZTGU5ZzNZd0d2MlpU?=
 =?utf-8?B?N3lnY0F5bndZcjFyTmVZUUtsQnFSVmdZcEM0SGxRS0JZNXc3Sm41M1lxdU03?=
 =?utf-8?B?MU1IWnBVQ1A5WGppb2s0OUkzc3plRmFUZnF0VGZtSjJncjVQTEN0WE5OdHhI?=
 =?utf-8?B?VlhKTytTa2R5U09OR0JKdjV1RUFxK0R0Smw5RDEyTW5lMHVTMmExbVYxaFNM?=
 =?utf-8?B?cjg2RGlxR2V0bGp5YldJbmJVa2F6dklURThRZUVUV3pIR1l4WmtiRnRMTUFT?=
 =?utf-8?B?YmtXWVhvSWp2TkgySDQ5YTFzN1hVR3FWYk9NWUtNS204Kytkb2Q5NitrYlcx?=
 =?utf-8?B?TkJuYXNzbHo5dkZRZ24ySG1jRHhLUXlWWm5HMThoaW9oMmUvcnI3K0RjNENi?=
 =?utf-8?B?dVVoVkpLanVFYWJ2eHF4QzZGcGYvWnlYMGhiUmZXTEpDRWF2TjNJT0twZnBR?=
 =?utf-8?B?YS9KMVQ5Mjl3ODdnRnhrandQL3RMMjJRMUI0YURiV3Fiby9mTUJsQytPZFZm?=
 =?utf-8?B?cmlnYzJuSE12T3lxdU9wcTZ0a202QVZ0V1F2SStTQWF6NEI1YmdOMWZzbHBB?=
 =?utf-8?B?Uy9UVHRFclJRQTljb3h1RnY3SEZuUXQvdnJTcndpaldpdFJHcVRYWTVlcllR?=
 =?utf-8?B?QkhrQjhvSVpqSDJQclY2L1lERXFOdGNHeEdObWVpQzFCeUd4Tlh4RlBwQXoy?=
 =?utf-8?B?aUpjc0dMcEZKOVRqRHFTQW91NEcrOG1VSUpkaHgzRDBxSExvQVROMExrMTNI?=
 =?utf-8?B?NFhYZ1hNVGZoMlZZd3prSXo2TnB0Qm1XeXluWkc3ZFArb0JrV0FMalZNRUZR?=
 =?utf-8?B?dTdHYjg3WElGc2RkTTNLR2ZFM21mL1Z0cGwyTzN0ZmZUWGhtSWJGVjZzcHdz?=
 =?utf-8?B?OVhORHhSdnJvQ2w2eGZCdmczMVBaQWRNejRQNXJJZkM1YlQ1TmUzM0RFU0xK?=
 =?utf-8?Q?oRj7nHz5J9OgqjaP3qy7CS4U65K+JreS?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?N2ptZ3NSZE93NXhVajhYSUs5Z0x6cVZHKzZVditLUzd5VHFZTTQzbWJzZXJF?=
 =?utf-8?B?ZUVLZnM1a2dEQUJ0cWlabGU2WGNYSzdJME14SFRJNEhyVXp6SEg5QXBEcmZh?=
 =?utf-8?B?R2s1ZkZPYjUvS28vN2R6MzVSdGVEVHhwSDAwYVNlalJPWmdJam41UlQyWi9C?=
 =?utf-8?B?RG9XVWVaZFFKK2ZGMWwrVlFOY3daL2FZeXMvWTU1WVJWNmRkTUtBdE40eWMx?=
 =?utf-8?B?VjRneWVPVWNZVUF2VUFXUW1qNEloVHZXdVd5VWtmTGpaQnBiMVQwT21QRitk?=
 =?utf-8?B?QjJSdml1c2tER0NjUS9Oc1hZcmx5a2doOGNmZk9aK0ZRWHFQUzlkZ0plYThT?=
 =?utf-8?B?Y0VSVm1SK3hTeHFCU1BVekl1eVp5dWJQSSt3cnN5dXcycGNDY09QdjYwNmg4?=
 =?utf-8?B?QWpvNkJYa1FLK0hiZEZTU2pTRURaanY0L2tQQlk4bVZ3N3NFVVBWR3Y2YkRM?=
 =?utf-8?B?ZVA4TzBrMmI2TGxkODd5dVIvZHNXcTFlakhkRndZNmNBWWxaYmhpa2RmZWJE?=
 =?utf-8?B?VU1nOWFZb1hFbkNXMXZpZ0xkcFg1dFNPWW1ic2JYZHJBellKOXEzeGtFbnBs?=
 =?utf-8?B?R25WRUZudnVpeVFlVk5FdFNTYzJTN3VlaCtwY3hSaVJrUVAzRG11eHFjM3dt?=
 =?utf-8?B?c0k0UThUWk1sVFZ0NEJETW5CZkkzNEg1QytRbGtwWjhSYjU1dUsxMUtqZmhR?=
 =?utf-8?B?bk9WUTh4MnVqM0V3aUJPdStiMXRwMFR0Y2dneVpiTm1UdzZXSFJXZU5Qc1Vx?=
 =?utf-8?B?UUV6MHpDN0pPV0Fsb2tYYURHVUpNdk9zYStSQlphdG10KzRKNzFZNWZ6c2Jx?=
 =?utf-8?B?Q2JVSzBTR0w4WDhYcloxazFtSmlmVXpqOUp4WWxqZERnbkJXcXYyWDVwRHFm?=
 =?utf-8?B?ZEc5UUpBdnY3NTB3ZGlmRWNrTXpKVGNoakpkV0VQeXV3M0Uxck96MEZyVU5p?=
 =?utf-8?B?Mm5JUG9lZ2J5Qjgya3Q4TjJEK3Z4WU1QVVN1T2xPcVp3M0s0d3lEemo5MkxG?=
 =?utf-8?B?T3hTTnFlSnhXSTAvUVFpNnFVQmVNdi9LM1dVOFlueFlLRlFKMXZTYjRLMWNw?=
 =?utf-8?B?MGIweWttbVlrR2VDMGwyUXptTkk2N3dnRG9wS016MVR4Wkh3NzRJV2dGcURz?=
 =?utf-8?B?VSs1dldWZEI5QjRXZVVDMnBORUxOTFBodFg3Tys3R2RUck1jTm5zdGtXUXhj?=
 =?utf-8?B?azgrYnNWeVgwYzlNWHJRM1NrQ3A5d1I1TFd3ZnM4YVliK0RaTG5JdmYzL1hM?=
 =?utf-8?B?c1lpTHorK1duYXk1dkZvdEovS3BUeGJjM3pqbjRiVDY0c09uSzR0dzJodHpT?=
 =?utf-8?B?R0dKTWo3T1o2WXVlU1ZwNThLMlhLaXYwQW11SG1tOGUvRXgrK2oyL1BIaDNG?=
 =?utf-8?B?S0pJVVR6ajVZV29NSHllS2s1QWlxbjFTSWVCVzI5cERia09wbVFFa2ZRVVly?=
 =?utf-8?B?MVVCR3c5Qnd3dXVXR2VxOFVVS20zSStVNys2alIrUlphUi9xSEhkWFpUWXh2?=
 =?utf-8?B?K0dUL1YrdlZ1RnVoTXkzZEFhS1FsUXdxbC9VT2hQSVlJZTdjVEpjUkU5dzla?=
 =?utf-8?B?M0xpamliRTFKUWd2L2JyNS96WTZhRklTTlRaRVJnWXo1R1RYb1MxYUxZSS9Z?=
 =?utf-8?B?Q1ZzOWZERmNXaUN6MEQ4bUdSbWxvZmh0Tyt1V1dPOVlmTnU5bDE3UFBNSEdm?=
 =?utf-8?B?UWxTT2F1bVE2SGNWRU5QTjREZlFGMkNtOUNTZU9ERk0wVkdUajhIWXErUm1k?=
 =?utf-8?B?QWhHRTU5NndkZWVnV2RrOXRGbHBFYm5scVJ3STF6R0dXb0pLVmRUd3FHdy82?=
 =?utf-8?B?dUtheEh1Rk1Vb0RHMkJqeWsxRUFnWlkwZzI5ZjVrd0s0RDhwWFljYWE1V2pR?=
 =?utf-8?B?cTJ1eWNzVGhBS1l3aFdxR0VDSDdEcUZyZStjRkZSQ0pqN1I5Zy9iNGhldWQ3?=
 =?utf-8?B?Q0t4eXVNOCtiZUl1cmZyVFpOSWFSaXR1VGo1cmJGYXAxQStXRDVmZ0FhdzIv?=
 =?utf-8?B?cW5GeFVQNitZa2RKMnpEV3VYcTVxTjNkU29ETmZtK1d2L2ZYS2VmcTNaZnVz?=
 =?utf-8?B?Z0loL1RuTnFtWnlZMUs5WGk5M010WEdIRGZ5YXBiNHJ4SnBTcFZCTkpxODlD?=
 =?utf-8?B?NWRFMkRQOHNza0pjZHJkMEJHQk4zeGtManNnL1JRaU5Cd0I5aGdDMm9sanJa?=
 =?utf-8?B?Vnc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7437f7f4-2050-4641-70a8-08de371defca
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 12:24:48.9456
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ig/nO/xKUJzKI8jpV4WYBKeSX1Jbe6d366dWLzQ3/NGxC7YHRZOB0aKt9OQS/zHe29CYCMTA3WuwmDsYsvAztjj3cRUHW+bwqMZ6qbTe7mQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB8221



On 09.12.25 10:59, Jan Beulich wrote:
> On 08.12.2025 20:21, Grygorii Strashko wrote:
>> On 08.12.25 14:44, Jan Beulich wrote:
>>> On 28.11.2025 16:22, Grygorii Strashko wrote:
>>>> --- a/xen/arch/x86/pv/domain.c
>>>> +++ b/xen/arch/x86/pv/domain.c
>>>> @@ -254,7 +254,11 @@ int switch_compat(struct domain *d)
>>>>                goto undo_and_fail;
>>>>        }
>>>>    
>>>> -    domain_set_alloc_bitsize(d);
>>>> +    if ( MACH2PHYS_COMPAT_NR_ENTRIES(d) < max_page )
>>>
>>> You mention the change in condition in the revlog (but not in the description),
>>
>> The updated chunk was based on snippet from Andrew [1], which
>> used incorrect condition - I've changed it and noted in change log
>>
>> [1] https://patchwork.kernel.org/comment/26680551/
>>
>>> and I'm having trouble to follow why ...
>>>
>>>> --- a/xen/arch/x86/x86_64/mm.c
>>>> +++ b/xen/arch/x86/x86_64/mm.c
>>>> @@ -1119,26 +1119,6 @@ unmap:
>>>>        return ret;
>>>>    }
>>>>    
>>>> -void domain_set_alloc_bitsize(struct domain *d)
>>>> -{
>>
>> The domain_set_alloc_bitsize() inlined in  switch_compat() and x86 PV domain
>> always created as 64bit domain.
>>
>> At the beginning of switch_compat() there is:
>>
>>    ( is_pv_32bit_domain(d) )
>>           return 0;
>> [2]
>> above ensures that switch_compat() can be actually called only once (at least it can reach
>> point [2] only once, because there is no way to reset PV domain state 32bit->64bit
>>
>> this is original condition which says:
>>>> -    if ( !is_pv_32bit_domain(d) ||
>>
>> do nothing if !is_pv_32bit_domain(d)
>>    - for inlined code is_pv_32bit_domain(d) == true, so is_pv_32bit_domain(d) can be ignored
>>
>>>> -         (MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page) ||
>>
>> do nothing if (MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page)
>>     - inlinded code should proceed if this condition is opposite
>>       (MACH2PHYS_COMPAT_NR_ENTRIES(d) < max_page)
>>
>>>> -         d->arch.physaddr_bitsize > 0 )
>>
>> do nothing if d->arch.physaddr_bitsize > 0 (already set)
>>     - inlined code will be executed only once, so (d->arch.physaddr_bitsize ==/!= 0)
>>       can be ignored
> 
> This is the crucial point: It being executed only once isn't spelled out
> anywhere in the description, and it's not entirely obvious why that would
> be. Yes, nowadays it is. Originally (iirc) one could switch the guest back
> to 64-bit mode, then again to 32-bit.

I'll update description.

Or can add it back as !d->arch.physaddr_bitsize to be safe and avoid
confusions?

> 
>>> ... this 3rd part is going away.
>>
>> Another observation: MACH2PHYS_COMPAT_NR_ENTRIES(d) is looks like a const, as
>> (d)->arch.hv_compat_vstart is always 0.
>>
>> grep -rw hv_compat_vstart ./*
>> ./arch/x86/include/asm/config.h:#define HYPERVISOR_COMPAT_VIRT_START(d) ((d)->arch.hv_compat_vstart)
>> ./arch/x86/include/asm/domain.h:    unsigned int hv_compat_vstart;
> 
> This observation isn't directly related here, is it?

Yep. Just found it while investigated.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 12:28:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 12:28:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181590.1504612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSwp5-00088t-6z; Tue, 09 Dec 2025 12:28:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181590.1504612; Tue, 09 Dec 2025 12:28:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSwp5-00088m-4E; Tue, 09 Dec 2025 12:28:07 +0000
Received: by outflank-mailman (input) for mailman id 1181590;
 Tue, 09 Dec 2025 12:28:06 +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
 <SRS0=2qC9=6P=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1vSwp4-00088g-66
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 12:28:06 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8285f048-d4fa-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 13:28:04 +0100 (CET)
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com (2603:10a6:20b:509::16)
 by AS8PR03MB6903.eurprd03.prod.outlook.com (2603:10a6:20b:299::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 12:28:03 +0000
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb]) by AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb%5]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 12:28:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8285f048-d4fa-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=D3ylQcMb8COaLBozSicVvCkxPGT/uIO4YKQHXz/qncASiRBDjLy2nPhDYsDkYC8AIo3DWfFtEG0tgPwqqKAX9tg6ZFHzVQdGqEsocpeZiG1i96+Clp74tRk7iDx2mR2PRahbeWvu66CMywf0MamFFiCdxRCJTGPiAemrg2pFmTQHdUJOptASmF7a95s853jXhFqVbi1+TQ0qYLvp1AjlzrgANZeGLksg5LCeicfXe0Ik5RdRcULfzvZjwGpHGLYksQ0BodU2yQV6CNBo+MaPlMAT8e2uW9TlM++wWrQf2RTvGW/UF/G/MZ7mexjw5TovkMroVEgqFMkuljNL2QPHUA==
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=CkGLKUMvPvAKukj0uAKKdbWWe8DJTWAmHjJexk0MGuM=;
 b=Bs2wTxpZfH1nZfEJ31Xn/8p52TwOMhM+YVEuLYGcNDp5uR5aT4sqnC2FpZ7CnWTmyZ/IXN6io2GH6Ao25OfuuqTmbl7Qe/Xk9c/1O2Se/Cb4/kMuyzAXybNESVpG+3fPYq2MY+GJ9B+3CUOw5nz+vPYiJNaSA/6FOcrPju594AQiQb1sAfyWsaoWlC87LMzERTQ6haEhvaCMmLursC5wo3J133MXMZtJs4Pc8o/6Ic4xc/M4KaObvydIjRmTaZiG1iehMf6Z00ZzJ02YFomwRwjeTBdcJtq5XoS33Zza0ZODXRs3H0lYzByPOMXGJAwWkPeOBU530jnPlWTPcR6dSQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CkGLKUMvPvAKukj0uAKKdbWWe8DJTWAmHjJexk0MGuM=;
 b=EwKVNEOrkdJo9WqvV4UqdfzFZnfGjUSKsx/FdeHlNALMU0fEvVx9kEb+2UpzInpW4kHzh7Otv4+u9odCJo+WWuDM4UxxD3NMUEsOs4BGLNEzHIBjvYihqFdRAbkrSPmgDL8qFJqWJQCDTlYtJORKxUtZsoFxLsP2cvB6Q2nZEM4MLg/Udf/uH6ZUyw0WEAJXqPp1GPw1P2JBSsRUhv9BTTars23AarscJ10IRyLGlCQCQSV9LC8DZ6g8dbWCUupaq32wb0l/viCZYXDEbcEDIr0mhiqhi3vB/u6bMbXTz0NwUrJgkdyUutNP4A7It/dtwNlW1W1cF9FGmw2DbaF84A==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <53957207-6c55-4336-9b85-5c217859dbaf@epam.com>
Date: Tue, 9 Dec 2025 13:28:00 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/4] Align handling of domctl/sysctl unsupported commands
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1764961645.git.milan_djokic@epam.com>
 <79b05298-1042-4cc7-b5bf-5c3698c4da9e@suse.com>
Content-Language: en-US
From: Milan Djokic <milan_djokic@epam.com>
In-Reply-To: <79b05298-1042-4cc7-b5bf-5c3698c4da9e@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: VI1PR0202CA0022.eurprd02.prod.outlook.com
 (2603:10a6:803:14::35) To AS8PR03MB8322.eurprd03.prod.outlook.com
 (2603:10a6:20b:509::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB8322:EE_|AS8PR03MB6903:EE_
X-MS-Office365-Filtering-Correlation-Id: efde8545-981e-48c4-d2f6-08de371e6591
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SHZHV2J4MVZ2OE16Y1hZRmxoNUo4ckE0OFJUbWM5YkJvTDhRL3dsazNXeUxS?=
 =?utf-8?B?YWtzMXdKdTJ4bnpCU3pJOXNEUk9vb0lqY3IxUlJrdWR6UlVYZkE4Y1ZDUGtZ?=
 =?utf-8?B?M3dnYS9hYThnV0pGRGxsUEpFOW5USFBqcm1saHRyTEdzYVFPSDZCUGp4ckF5?=
 =?utf-8?B?M2ZhS2JZdlZwWWZKbGN4ZXhCeG5oNUVkcnpxcUZYVFBBc1hweHl1ZEJtQlEw?=
 =?utf-8?B?clp3SXNIcFRLK3NReHk5WSt6N1huN2pqN1l5VnpwSkU3MU1yZkp3ZXNRSURM?=
 =?utf-8?B?bGVQcHRwdnREWFlMZFgxVWpBRUNKNmdjT0lLRkptT3ZlbW1IakVnckJKSzN1?=
 =?utf-8?B?L0xXUmVDUVlxUlQwMHlzU0N3VmdpenVFeW11WW1WelpWbS9DSWltOWFrSlBK?=
 =?utf-8?B?aithZFYwamh4VGZrUUhHdjZHUDI1QW1keE1XNEVaTlJodDBmdWpNUGZnK1d2?=
 =?utf-8?B?L09oUFowMWgvV20xbTJuT1BmTjJwTmlJalZqOWZyWXFKYUNBbHgzUHFpZmZZ?=
 =?utf-8?B?cVpXWGd3NldHSENTNXVvbit4WGxLQWpyUjZMVUZNOTVNNjZCNm5Nc2hzVGxz?=
 =?utf-8?B?WlQzZ2REdEZub0d3VjFoVElIVHdROG9GSVpXcXdhS0lra2ZmQUFXVHNJWjhT?=
 =?utf-8?B?OEFlTElJbVlndGtNaEZuTnRra1lXOUFKOUE5TitNRXoray9ITk1lbld6Y2Fp?=
 =?utf-8?B?eFlwZy8yYVBhS3JnaVNPZnoxUUxYbUVSa3FLa1lad1JHeXlXRUYyZzVBbzk2?=
 =?utf-8?B?YTJKWlNTeElGd3hQSXk4b25vNDhic05jMk84UHhGY3BpeExDaGRSaUg1REZO?=
 =?utf-8?B?RC9kS3J0WlNjZmNwcmsreER6cE8yRE1iZUV3V2lGN2JSN3pEdk1FZ09zV1dV?=
 =?utf-8?B?OW45eXJ4ZHVRVStmSWE0Ykl1a1FjNGxsanFNOEhqb3BuNUxaekhIUWxqVVlH?=
 =?utf-8?B?YWxqeDNDRFBrQmJ1V0pjVU81UmNkWVFVNWs4bXhFTWhqam5lSlRmQkdVd2Nt?=
 =?utf-8?B?UUxGbFh5MDc4L3Q1RitXZis5UHpiQ091cjlwd3phSkdpZG9ZMDZwV2d4N1B0?=
 =?utf-8?B?Q3hQS3Z6dTR0U09ROXl0MmNUSy80U1owNnJmNklIOUFnbVpnSlRIMWVPSkpC?=
 =?utf-8?B?clIrOFVMZVRsR3Z6bFhWR0hzNDdQWkFBb2NLRUJ4Ykh3MnZJUllxMFJHdFdJ?=
 =?utf-8?B?WU5wRkk5ZTB1SHZDYVhWNUN6R29jL1JtRXU2YU94LzhVRnpTSHRIM1IrMitu?=
 =?utf-8?B?WHNtZlp0YmdWbVhyNGtNZzloekVOUmJXODA4ZlFROGlvdGhIc2MxNm9XVW04?=
 =?utf-8?B?Zm9NbkNvM1ZOZWpNY0JibTZoNFBaREdEUGJ2U2g5aVRpS1JhZWtzSjFxVldY?=
 =?utf-8?B?a2drZ0pRN2RRVFEvZ3VaKzZyS1Y1bHFvaFpOaFJ1WUxLY1RwM0ZPd1poV0Z0?=
 =?utf-8?B?Um1LWkgyNU95OWlVdk11TG5vVDhGakk4Y2dlZlIrQmcvT1VEeHFIK3lkazhS?=
 =?utf-8?B?cXFGQmdCa3liQzF4TlZDbEpEdGNPU2VJbEI2VitPUXJvZHVOeGhsNlVBQ2Nh?=
 =?utf-8?B?L052cTlNOHMvdUFqS0NzME45L2toNUt1QldtTVBXVTllTVREeE51Z2Q0b3Yw?=
 =?utf-8?B?U2R1NmFaRi9xRWU4RkNyb0Zkd3NJVG4zMXpxVDB4RVNOYk51Q3pKOEJweXc1?=
 =?utf-8?B?Z3hHNEd3U211RmRUcC8zNmdjMEdTNTRnNGpTZGdXTzUybjV1cU1GUWxpSDhj?=
 =?utf-8?B?QkluT21BcFhDSkF5bGR5TVhaRVBJRGxwaXo5WHlsdHE2MWdTRkthZ1NqZmx4?=
 =?utf-8?B?VTV2QzVpRUJDUGpNR3JoZ0V6ekwwSzVNdlRtbDlCdlE3WXRkYkpTeVFWSEpq?=
 =?utf-8?B?YjRNQTVVZ2I0dWxVUy9qeXRycVROSFVCNTcyV2h4TkZDeEw5ZHFXZ3d3YUlt?=
 =?utf-8?Q?nrfxzYdjdmzLXcjDbkwWgNHSi3xKNora?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB8322.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?T2lSWDZ5NWczOExOQ1pHNXhMSUJtb2FJT25LdkFZYUczVWJrTnE0aHhpY3lq?=
 =?utf-8?B?OEhVRW5OM0VhQ0lyNlhiclkxbFRXQUx3Q0d3Q1NFZG02NTJLSUJoVEVTM043?=
 =?utf-8?B?bjVwTEo4SXBpM3AxOUoxUkJMREZpaENEVUEwbHF1bk1CWHM0VTdwcHFyWFBs?=
 =?utf-8?B?VWZxT1V3YmVXMEpsNXIxVUZlcUtrQ0ZBZHVJL1dSaVA5c0tPVFV5eVV6TzVi?=
 =?utf-8?B?K2dDL0ZKazE5ZHFjSldKYzJ2czdOWUhuTC9iay9vZ1puaTdvWC9ZV3JRV2s1?=
 =?utf-8?B?UUJqNDBaUVo2R0orNlhTZkxlNnRVTzBmVUZKZnhEWkJQamtYL3IrMDMwdGhq?=
 =?utf-8?B?MVFMaysvaG1ZaWd5WFJ2UUIxdk1BNGVCVndiL0xUb3ZCUUdJdm14eDBaVEY4?=
 =?utf-8?B?R3I0SGtFMEd0bHI3OGcyMnBjTWxmRVpmT0Zxamk5eFMzaVhEVFlJK1pFWnBT?=
 =?utf-8?B?QjkreHR0NDJxRWp3c1BXdzViMGZVa3B3cXF4OVlBQ0V5dWR0aTltYW03SFVh?=
 =?utf-8?B?R0p2bHhDQ1JkYSsrelFHS0dTTWlROXVocE52YXl6Yjl3bnRaUkNxdmZOOGYv?=
 =?utf-8?B?eW1hNWFDWXRLR3Zxd2tCdC9sQmtncVZnQTVkQlVCYVllWS9BR2NrUHdkR0tn?=
 =?utf-8?B?Z2RBa0hSbW1wWjdaMnh5Y1Z4UndTRzRZbnp4WHAvQzAxUUpNM1Blb01SREZ6?=
 =?utf-8?B?ek5PSHZWTllqK05hZGNZK256V2RyeXhHR0dKNndSTWRnNENYczdQQnEzN2dj?=
 =?utf-8?B?eTVVbDIxVGIzdkE4NmhXdTZIRVRudUZDVXE3QXBmRWlsN09PbVJleURZRHgr?=
 =?utf-8?B?aU5WYXluci9TcGtqTGFVWGRvK2JiSkdIdCtrazZEL3RVZGdFRFpFK0VFaVdn?=
 =?utf-8?B?Nm1LNllVa3F0OCtZU2JXbUZZa1kwUCtydXIvSlZoVmpOeldTRjdCdXBtOFNy?=
 =?utf-8?B?Y05OVkVLS3JsWHlLNlFuM2lDV3RXNi9nckF0ajVvcExXblp6L0tEUDM4ZHRj?=
 =?utf-8?B?aDRmMEFvS2ZqS1lXUDVSTzZDUXF5SFhFNXFkb1RKazkrclRoQW5aQVVsZ0tE?=
 =?utf-8?B?Ymd3NWo2cFk1R2R1R0pJL2hJSTNrVVdQcmhIeHBuUkxaK3JNRHpGZ1N1WmRz?=
 =?utf-8?B?UXdvRFVacFVzNHgvc3JGUUJhU2VkWm85cW5LdE50SEhXd2ZVYWdwR0pkbEN0?=
 =?utf-8?B?M3llaDRwZExuVk1WWEV6VVlpN05HTFh0THNkaExVMmViaDNFdFZ1bW9FSGc3?=
 =?utf-8?B?N3p4cFFKai82NmpPWXpRbVhBYm1yYXZXTXRYZXdJV2w2QjJBc3dycUtHRUxY?=
 =?utf-8?B?MEI3dzA2WWFWakNDbExqcVh5THRRWXdPNENSU08zNUpHakg0STJjZlR0UVJ0?=
 =?utf-8?B?K3NYUXdXQk5kYk0xWmE5TXFQL0s0TlAwNGowMHhPZEtFODR5TGM3SGlYZjBD?=
 =?utf-8?B?Ti9rY083dmlTMHhwanB4ckdCb082MFBxT2EycjRsNUlNVXJsbU92L3hYMHJp?=
 =?utf-8?B?MnZIU3dYdG9Ucnl2WUYyaHBWWGQvNHVFWktjNHJCaFRBNnlTSjRoM1RmWU5M?=
 =?utf-8?B?N3JBSDNMSlEwWXozSmFKdXNSMWM4OERXNmdlNUFJenZRblJ5ZStDWUtoOTlY?=
 =?utf-8?B?VGpYQkYrWk5BWXE2VEl3cWFJRmhTN1hIMmg0UlJkd0ZVa1NLMHk4b3h3eU9q?=
 =?utf-8?B?ZUxHeUQ2S0JDUDRHeUVuamhuVG5ZbTV3NXRaUERsazFId1RhZjZXeEFRNm9q?=
 =?utf-8?B?SzRuK1VGMWFGazM5UlZTMlNVdHpwbWZlU3R0dFBmLythZXNsOG9lV0hUTytU?=
 =?utf-8?B?VG51MFlRRzRXT2hUM2NYTFRCaWxhU1Y4eTlOQW5Sc2w0elBvdjFiZTcramtn?=
 =?utf-8?B?KzZwTDNISlJlY2N4blFLWWtxempsMXRaaUxTK2ZVYnVYczdDeDZ5M0ZaRkJR?=
 =?utf-8?B?QVowWnRWL2xmaHNZc0xEY1cybDRiZmxYMXY0ampPQ2U2RVA5UVFyaUk2UXdS?=
 =?utf-8?B?MmprbDlNcDM3UCtQaWVFbTh0RDJmWlg5M1dWY1NZTjlBdmgzM1RqZmV0dEhz?=
 =?utf-8?B?WFB4WkJiMTVvWEo0ZEwrcWUzU25YbWxkYTdmT1drVzYzOVorM3dLUnpyd0hQ?=
 =?utf-8?Q?MdpeAHHGaf9gSenBIFPrhbi1e?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: efde8545-981e-48c4-d2f6-08de371e6591
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB8322.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 12:28:02.8275
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2DeXNaJmqaQ8zammuo/H2r7FZ3xkbmr+5afXkbzThQmb/1Q5/NMisHez8YkgR+t2D1gs0nEEn5629VSC6cmJjg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB6903

Hello Jan,

On 12/8/25 14:35, Jan Beulich wrote:
> On 05.12.2025 21:36, Milan Djokic wrote:
>> This patch series provides minor updates to the domctl and sysctl handling
>> of unsupported commands. Currently the behavior diverges: some commands
>> return -EOPNOTSUPP, while others fall back to the generic -ENOSYS.
>> This series aligns the behavior so that unsupported commands consistently
>> return the appropriate error code, allowing the control domain to correctly
>> identify unsupported operations.
> 
> What, even after having looked at all the patches (and their descriptions),
> still isn't clear to me is why the distinction ENOSYS vs EOPNOTSUPP would
> matter. Tool stacks still need to be prepared to get back ENOSYS, at the
> very least as long as they mean to run on older hypervisors as well. And
> with Penny's work to allow excluding domctl/sysctl altogether, I expect
> ENOSYS would then also be what results if that option is made use of.
> 

I think that ENOSYS and EOPNOTSUPP are both handled properly by the 
toolstack. This change is more related to control domains without 
standard tool stack (e.g. zephyr or xtf domain). Especially for xtf 
tests, we expect that consistent error code is provided for unsupported 
hypercall commands. Right now this is not the case.
Still, this is not a ‘must’, but in my view it would be better if we had 
the handling aligned between different hypercalls and commands.

BR,
Milan



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 12:45:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 12:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181600.1504621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSx5P-0002YL-Hi; Tue, 09 Dec 2025 12:44:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181600.1504621; Tue, 09 Dec 2025 12:44:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSx5P-0002YD-F3; Tue, 09 Dec 2025 12:44:59 +0000
Received: by outflank-mailman (input) for mailman id 1181600;
 Tue, 09 Dec 2025 12:44:57 +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
 <SRS0=Nu2q=6P=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vSx5N-0002Y7-Lt
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 12:44:57 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dd491253-d4fc-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 13:44:56 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CY3PR03MB8151.namprd03.prod.outlook.com (2603:10b6:930:101::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 12:44:52 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 12:44:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dd491253-d4fc-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jOg91Sk7VxX0IiXHvSJlA9iOJ+IsbtnSC1abftlkkc8cILN43yeFE7Wcvw4xeIMAlfL4X4297Ms4w56GppYYV8IUdrmYbYD9VFN8Q71ldkezwjTc3JGaVji6YCXrox0QeiSfELfjyTLNbJbfkwTdFubgYyAQN/axEL9yOHh92HdA9bLaPwIC0FVt0bKjOfbVM59KUVHGESnfJEf4BVNfzp/7Zw6HZb81s5Qc3c1CnxeSkQsCwg6F8wywk3qt4DyqMvtMWO7dQCypazOhMqxlWVW7vWQWjU2vCA7to5DCQCR/tt+ML5qsdYMKH8XGFzNdP1m8jvStcpnLTF+B5ZwoHg==
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=jFqfRDhuOc0G/Ww81q8L6L4R0aCrGmaU+cna8kpDqyA=;
 b=sLISzynRMqKl1D8srLNXzz9IMfjjUQF7I3+kEC1y+cQpH7+GmvNMKKDqbA2W5vLAgL6K34YYeX1NrfDirNl3zOILIT/n3C1NZkFny3bbPov+Kh4JW2ZIndzqTwHQUoN2IowjPyk+4xNZMpi3zEOD4Wxa+HJAUl8u9zn/xXUCAuBAZM0GFqyaT/uFuY6TH/Uoon/0kRHpIEOZtwcx5/+U7gccB1w8Uo8nIEcVKeTav0U7CqJw7Aafj4QxNGLapUNOomj4V8SlRRFb8Y09ZHcJwi8o6JY7jrmbIv+9/E4dam23qaE95G9cTFhKuEvb6TMttmbzjU9b6dsFjE92CvTh/w==
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=jFqfRDhuOc0G/Ww81q8L6L4R0aCrGmaU+cna8kpDqyA=;
 b=PWEEj7SBlupQF1fnMnfjO85jWpFw+50T+lRjI6vZNAzlX+lxjuHEboD5KSYYRAgJ35CAFMVSQs0i1E+kjbZ4Qh71UR0qpGyRoBibk3VCdvpopBfRHdpd3LkbvTDgpeyK5Rtmkb8wb6IzSKslz/Fa4UnQnjN9O5FnnhF6f7xCXCk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <85cdb866-0be2-4204-b106-f66e2b15f841@citrix.com>
Date: Tue, 9 Dec 2025 12:44:49 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 3/3] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 Jan Beulich <jbeulich@suse.com>
References: <20251128152218.3886583-1-grygorii_strashko@epam.com>
 <20251128152218.3886583-4-grygorii_strashko@epam.com>
 <c9ee4fc8-44c6-43e8-88eb-9041c51aed16@suse.com>
 <d025e3dd-ba2a-4a9d-af37-37570e690aee@epam.com>
 <a3dcfce1-4695-4064-a1e3-af09bfa04199@suse.com>
 <f0da7ce3-1846-4865-8e66-bc3e50f78390@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <f0da7ce3-1846-4865-8e66-bc3e50f78390@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0359.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18d::22) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CY3PR03MB8151:EE_
X-MS-Office365-Filtering-Correlation-Id: b741c25e-4535-4222-d900-08de3720bf9d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dCtETlJvcVQvRDV3Y21zVkhEN1dlK3pOQWJudVhSUjdjQVJQYVkvc3EvOUIx?=
 =?utf-8?B?dWlnVXhsdksvVUI1Ym5vNzJZZHZsc2F0UUpQUXMvRzNzSGZLWjB0aEJPT3Ru?=
 =?utf-8?B?UTlXMW96R0xCemFSTEJHLzkyd2s4cmNlVG5XMWtxc2JRa0Y4cWZENTd3eEJP?=
 =?utf-8?B?R0JYREVHaytQNytoZHEzUllnWFZyMkdrNkwyU1piVzNpekptQmZvbTkxcE45?=
 =?utf-8?B?QjZqZjJtejcyYmh6U0tYN0l2V20wVk5Gb0k2eDQzU2E2K2pWemFKVFVNaVc2?=
 =?utf-8?B?VzJBUlc2K1BqWlNyYkIxSVRkdXVSVEYxdHh6dkdXNWlJK0o3dWIvajZ1NGgr?=
 =?utf-8?B?bnpLUEp2QUE3eDNWVXIrV3pmTmh6NE1uMzlzWStqWnN0R2QvVXV1eW1DZndI?=
 =?utf-8?B?RnNyNTBnOHIzM2dMUXFCR3h0ZmUvU2RQQjZ0bi9OUHREK3Vxc1hkVmdxT2tx?=
 =?utf-8?B?Z3JHTlhidmJuaEV1enpwVE16YjgvbU5seitQVlEyMjlEOWhDOTdUTmRDWE84?=
 =?utf-8?B?NTE0RlNCSHIxbmh1dWpaVGsyWDZlQ29QdHdLOXBPWDh4MjVUZWNRVDg1RnlS?=
 =?utf-8?B?UWNPRFdWZEVYRXJzVTRQOVB0NDdJbno4OEFxK2ZBU3o1MmFSVnBEM0h3aGh5?=
 =?utf-8?B?eGFXRmMva0tCNWFiaGtyWERQTDMyV29BZnFRM2tXdWRlTXF5d3dOY3phMGM1?=
 =?utf-8?B?aEpnNG5MdjhHR0RYRFNKQyt6d3ZPaEkxQW1lajZzbUlvNnlDaUNzQnhCY25m?=
 =?utf-8?B?d2dVNzVBMVNsL2U2MEtpTmUrQmNGOWJWczh2OHEvR2FrSTlFdXBTblcyeEZJ?=
 =?utf-8?B?Q2tISkd1ZGdmSGhDcy8waFAyMW5RRk9YbGU2RnZJN0FoNUJoU1piVkl5Y1Bn?=
 =?utf-8?B?S012bkNIaUNzTmV4YlBTOTVwenlGdFl6NUVHWE9DNnpDYnVwVEkzTHBya1hs?=
 =?utf-8?B?RFVCcWRza2JOcHVrL08yQmN1TWl6TVo2WHpsYVZWY3gyMzZJd3FrRnZyamZR?=
 =?utf-8?B?T3R5czJpS0hJSFFGZEhFbWVEb2pyZVZuZHpvc2dpRU4vUVVnWCtZQzJUOG5K?=
 =?utf-8?B?Q2d2RERxL1A3dFNDV0QyN3M3WFg0MmhjSWIyV0VPYmljODY3bVVYQTZrV21t?=
 =?utf-8?B?eDMxR09wTXRPQjlTeHN0dkJRblhnaFp1a0Y3VGoycUl4TTBEc3pCaGlzUkJC?=
 =?utf-8?B?Qml5MnNsZ01SdVZ5aHF1ZTZ1Ky9RMXBPenVoYUJSOEViUE1pdld5UzBmZEJ5?=
 =?utf-8?B?d3U2c0t1U0pCUVc5dGwyaHZLQTdZWWlJTGVSUVBlVDNuZHN3TFFBRm81RThi?=
 =?utf-8?B?c2dwL0cvdmhaSTZpbWx4d09rYVNkNm1taTlJRzFIUkh6THNtNkJKWUZsVW5v?=
 =?utf-8?B?cXhYTkJWaUQzY3JjVTlvdktNcVdJSm1WWmJoVW5mNUtRaE9BOVRmTms3RzJk?=
 =?utf-8?B?K3IwcmVCLysvai9wR3Z5MGlNbkVyNjVod3NETjd3Uk1hZjl3TXExQ0FvNkdH?=
 =?utf-8?B?a3Y3MFpLQW0xL2dsT2dPRy9rTHNKaXFJVVp6SUYxdk1QZXhQWnBLbktLMFF0?=
 =?utf-8?B?SUZGOHpOTFlSYlVrK25lOXZQaWdUZ29PeHE1SXg0UnhGOWlwYWdmbnFjV09G?=
 =?utf-8?B?SFE4d3g2elZxM2R0Z3krUHVvVDBtbzRSbFVMRU1qbktUSytJSHJQa1FSMldY?=
 =?utf-8?B?TjQ2SzN5R0NjeWNFb2ZiTmR1NDVkd0plbGlvaHV5MUJncFd6ZG5xYWpCN1N2?=
 =?utf-8?B?UWpCMWpqd1VqTVNwajJ4bGJoeFRFd3psS3BYOVBtc1RjdUF2Q3dKWGhveWtp?=
 =?utf-8?B?REI1VlJXV1dGYTg0MzA0eGR5d2pTNzl5RjhkTXhLZGlkdlhNbk5CSWhBV3Bv?=
 =?utf-8?B?ZjZrd2lMYkxJckFJN3NiaU5GRmVsY0V0WlNlOEhXN2o0aTl3am9ZTzdSa0ZL?=
 =?utf-8?Q?aztcpakyhF3AZ3rr5mO4HIjtzUvtm/a4?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bTJkUExKUE5hZExjSGc0dHNRcGZJOWlQc3NpQ3RHQTh0dHkwYlVIWm5HVEw1?=
 =?utf-8?B?dHRFQytVTEN5WGlieHRBQ0lxZmxlc01ZTHdRai9nVmt5Q3FyMTBhNUF3MlVN?=
 =?utf-8?B?MUdJczhDMXUrd1NLeWFuNlg0Q0kxaTM5dEt0Ymsya2FPOE1SSXRoZUFwYmNj?=
 =?utf-8?B?ZWs0Z0FCcHlHajFDZUF1T0tKK3NXOHk3c3RiRHlxNFlETFNEb1FwL1F4T2JJ?=
 =?utf-8?B?ZU55cFBMejNlVFJTWUJ0SDhTdHpwU1FJb2I1SXBLVmVoWDNNdFQyV2dKUVFk?=
 =?utf-8?B?L2dGd1RPSGVnKzZnbnUzNktNU2ZkVW1ROEtHWFdrelhHU0I0cXIzMlI2OERh?=
 =?utf-8?B?R2xIZ2tJRnFJMjdZcjJicld0UjRPK25kOGRVdzk4dWViQUxLeS9CNlhNRzl4?=
 =?utf-8?B?RVhyMlh4eVp6VlVTY1NJc3o1NC9MVmRIb3NZTTdOTHQ3ZXNUY05YTjVoakhk?=
 =?utf-8?B?SWZCbzlqY1ZabDlMVmhpOGdUcVJIWlkzU01iYVJURFc3YkE3TFF6RE5NQ2gx?=
 =?utf-8?B?dStkdDVKeU51clp3bEM4emNUazNOZGlFRXRpdldnY2dDZk5xR24rMWppV0li?=
 =?utf-8?B?ZmRWejljRzJYQW1LREQrR1BzMlBBYzR0Qit6UFhobDAybEl0UlA3d3ZqbmRw?=
 =?utf-8?B?dC9kcHN2dFhJZDhzYkVvdmpLN2xYKzZ0b1lVMkhIL01iSlRjZzZIUWNuWFBy?=
 =?utf-8?B?aUR6aDN6eXFtaEtubysxcDJ1OUgwd2dWSXROUm8xWDhHU1RBNkxOL01ibnhT?=
 =?utf-8?B?RWVQK1NDYlhEcWpGeTE5aUlsYWVaQmFNMG9PbnJES2x4WHNXTDdNa2JiQ2VR?=
 =?utf-8?B?T2J0b3RmbHBNWEpHZ0NHQTkrUmhQalJ3SlJ5cWdubjU0UGsvbkc5VTBsV0d1?=
 =?utf-8?B?b2FkT2plYXl5WXVWU0xkUHA4T0UwZmlYOFhtSUFsTDFyc1JHRkNrWWlMQXpu?=
 =?utf-8?B?NHowbGhJdUZHQktwSU9GSkRLbDhxYmZOOFdmZVZJWkZlbERLZWJMV3VwR2FH?=
 =?utf-8?B?T0hoQlpTby96VjFnamZSbG5EUkltWGlTRUZET2V5M2d3RzBLV28xME1KTnBE?=
 =?utf-8?B?eW5UZTFLaTdiWTc3emVobVRGRzFEU1BIMEFEL1ZWZ0lseWE5S1l5bDhpcGp6?=
 =?utf-8?B?dDFkRVBMWVFXb1F3WjNoYUtCV2VKWm50SUFVTXZmWDRpQ3FiMzA4bi83clBm?=
 =?utf-8?B?ZXI0MzdWVEdJYUI5dEo3dmZkWW9vVTVVS3ExdnFwdi9IWkgxM2tJSVFGdHRn?=
 =?utf-8?B?c3B1NThvR2ZRWmdJRTR2eks3UFhCc2l6WUdnZWR5bFB0ZGtkQzlsYyt5Ukti?=
 =?utf-8?B?RzhOT0ZsMXlDclBDcG1BOFZyc0pINUNWQVVYdG8zcGgzOVVWVmN4clJ4bkFx?=
 =?utf-8?B?TWw1TGY4SVFFNytla25mdi83eXYvbng3MCtiTk1EaVJvUmxzSVlsOWdHT2g5?=
 =?utf-8?B?TEJBSThCUGNhV1NkckxxQVoxMThwYXE5OU4reHY3czdKOFlsaGoxMTIxWWg2?=
 =?utf-8?B?a21MZ0c1T3ZTWldxcURlcGpXdndkRFZoRnkwKyt5ZXM1dzdZWXVvR3l0S3RB?=
 =?utf-8?B?NmcxRjZBd2Nxek1KaExVTUE4THJoVUhaOU01WmRSeDFjdVEzSFJYRWZ4ZXVQ?=
 =?utf-8?B?RTN5WEc4QSt3ME85RVhYTjlMVkhzb1BrVXM1ckMwLzNHNkM2elZRMkNwSGVr?=
 =?utf-8?B?Y0ZaK2RjMTJMdW92dkVyR1c4R1M3aU5LbWxQNXovK1Z4OUNnN1gyU0cxUm5N?=
 =?utf-8?B?NFNQSjVoU0lYMkYvSDFrR295Nk5wNFJJNWQ3SlpqWFVVQVIrVjFTc094NXNO?=
 =?utf-8?B?S2tvWFlRc21taHhKaDd5YkVzQVBHQWVyV0xnNHk4Ujl1OE9rZ29UUW1pd1Vi?=
 =?utf-8?B?bDhJK2Y0MjFiL1V3OHlCblJINEE3OXZPc0liS1NmUHlmRGVlY21Od3BER1Bn?=
 =?utf-8?B?U3cvV1BNL0dHNWt6OG9sekdJdk1lalhqbFlieU13VEgzcnZUYzJFNWo2ak9B?=
 =?utf-8?B?REl0U3IzTnVuNnhSQTdQQW5lcTVvby85ckJ0L3RJUE9Rc3loQkhubTZCRVVs?=
 =?utf-8?B?QzVJalgxVEZFZzBML2lVTXlNZUo4WDRVMnRxUzN6VzZYL3NoekYxdjJlMGdX?=
 =?utf-8?B?ZlZ4M01LV083aUVFbzBydUMzZHMrRy9jVFNob0M3dEFFSHo5MnJMbGJLZE5n?=
 =?utf-8?B?ckE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b741c25e-4535-4222-d900-08de3720bf9d
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 12:44:52.7949
 (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: SWo3ZMBK+wFgksbUwe0kLonxEsJJQKNe6z1BJGoIdhwtZx2qafp4dsnc46fZCEIOFnkZuQzdKLeUIO1WIwvAiyEg4fQLGg/9AlBK4OJxUq4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY3PR03MB8151

On 09/12/2025 12:24 pm, Grygorii Strashko wrote:
>
>
> On 09.12.25 10:59, Jan Beulich wrote:
>> On 08.12.2025 20:21, Grygorii Strashko wrote:
>>> On 08.12.25 14:44, Jan Beulich wrote:
>>>> On 28.11.2025 16:22, Grygorii Strashko wrote:
>>>>> --- a/xen/arch/x86/pv/domain.c
>>>>> +++ b/xen/arch/x86/pv/domain.c
>>>>> @@ -254,7 +254,11 @@ int switch_compat(struct domain *d)
>>>>>                goto undo_and_fail;
>>>>>        }
>>>>>    -    domain_set_alloc_bitsize(d);
>>>>> +    if ( MACH2PHYS_COMPAT_NR_ENTRIES(d) < max_page )
>>>>
>>>> You mention the change in condition in the revlog (but not in the
>>>> description),
>>>
>>> The updated chunk was based on snippet from Andrew [1], which
>>> used incorrect condition - I've changed it and noted in change log
>>>
>>> [1] https://patchwork.kernel.org/comment/26680551/
>>>
>>>> and I'm having trouble to follow why ...
>>>>
>>>>> --- a/xen/arch/x86/x86_64/mm.c
>>>>> +++ b/xen/arch/x86/x86_64/mm.c
>>>>> @@ -1119,26 +1119,6 @@ unmap:
>>>>>        return ret;
>>>>>    }
>>>>>    -void domain_set_alloc_bitsize(struct domain *d)
>>>>> -{
>>>
>>> The domain_set_alloc_bitsize() inlined in  switch_compat() and x86
>>> PV domain
>>> always created as 64bit domain.
>>>
>>> At the beginning of switch_compat() there is:
>>>
>>>    ( is_pv_32bit_domain(d) )
>>>           return 0;
>>> [2]
>>> above ensures that switch_compat() can be actually called only once
>>> (at least it can reach
>>> point [2] only once, because there is no way to reset PV domain
>>> state 32bit->64bit
>>>
>>> this is original condition which says:
>>>>> -    if ( !is_pv_32bit_domain(d) ||
>>>
>>> do nothing if !is_pv_32bit_domain(d)
>>>    - for inlined code is_pv_32bit_domain(d) == true, so
>>> is_pv_32bit_domain(d) can be ignored
>>>
>>>>> -         (MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page) ||
>>>
>>> do nothing if (MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page)
>>>     - inlinded code should proceed if this condition is opposite
>>>       (MACH2PHYS_COMPAT_NR_ENTRIES(d) < max_page)
>>>
>>>>> -         d->arch.physaddr_bitsize > 0 )
>>>
>>> do nothing if d->arch.physaddr_bitsize > 0 (already set)
>>>     - inlined code will be executed only once, so
>>> (d->arch.physaddr_bitsize ==/!= 0)
>>>       can be ignored
>>
>> This is the crucial point: It being executed only once isn't spelled out
>> anywhere in the description, and it's not entirely obvious why that
>> would
>> be. Yes, nowadays it is. Originally (iirc) one could switch the guest
>> back
>> to 64-bit mode, then again to 32-bit.

I changed it in 02e78311cdc6

>
> I'll update description.
>
> Or can add it back as !d->arch.physaddr_bitsize to be safe and avoid
> confusions?

Please update the description.  The function really is singleshot now.

I'd expect MC/DC coverage to complain at leaving the conditional in
place, not that this particular codepath is going to be on the top of
the list for coverage.

>
>>
>>>> ... this 3rd part is going away.
>>>
>>> Another observation: MACH2PHYS_COMPAT_NR_ENTRIES(d) is looks like a
>>> const, as
>>> (d)->arch.hv_compat_vstart is always 0.
>>>
>>> grep -rw hv_compat_vstart ./*
>>> ./arch/x86/include/asm/config.h:#define
>>> HYPERVISOR_COMPAT_VIRT_START(d) ((d)->arch.hv_compat_vstart)
>>> ./arch/x86/include/asm/domain.h:    unsigned int hv_compat_vstart;
>>
>> This observation isn't directly related here, is it?
>
> Yep. Just found it while investigated.
>

Don't be deceived by that.  pv's dom0_construct() has

    HYPERVISOR_COMPAT_VIRT_START(d) =
        max_t(unsigned int, m2p_compat_vstart, value);

which hides the write.  I've been meaning to fix this for ages.

In fact, I could also submit the inlining of domain_set_alloc_bitsize()
too with relevant history if you'd prefer.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 12:47:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 12:47:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181611.1504632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSx7e-00039a-1B; Tue, 09 Dec 2025 12:47:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181611.1504632; Tue, 09 Dec 2025 12:47:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSx7d-00039T-Ur; Tue, 09 Dec 2025 12:47:17 +0000
Received: by outflank-mailman (input) for mailman id 1181611;
 Tue, 09 Dec 2025 12:47:16 +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
 <SRS0=R9j7=6P=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vSx7c-00039F-Bh
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 12:47:16 +0000
Received: from mail-oo1-xc2b.google.com (mail-oo1-xc2b.google.com
 [2607:f8b0:4864:20::c2b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2f789e0f-d4fd-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 13:47:14 +0100 (CET)
Received: by mail-oo1-xc2b.google.com with SMTP id
 006d021491bc7-656de56ce7aso1761678eaf.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 04:47:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2f789e0f-d4fd-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1765284433; x=1765889233; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2dwo0mK+bqzIMV2vqVZqr/nVM7rma+VBvCjtz+3mts0=;
        b=F53ey8WpEZHUZwP9OIURFesXFssE18Pl1yXVgN1TiIQt1dgxUiJoJccIZN7WsHXveO
         Z9ZG2tGjvkQqrXBQ36fx3bCQFfwpsB2dkDoCorP4G7dIdQWKNZPUaBXrzdUKW0Gv/Ead
         ev90YUdhvErAfyLskIM6E7/Dkchzi/xpaXTlHXFXjjHZqfJ5/1HPGoyJSbWQ8VgbMGh8
         +8BMY+1VTCN3O4oYn0hN4rlvGbPHBkTWRb7QtNhX3yxHatz/svVkfxRNtGJV139bdbP3
         1B9ur3h7fHHbBMfGeqR+zQSVJRBLoqDH/y2aPVRfCBvbHW3MBEBaTS/Mg1M74TG6Fk4y
         /jag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765284433; x=1765889233;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=2dwo0mK+bqzIMV2vqVZqr/nVM7rma+VBvCjtz+3mts0=;
        b=hSaY8izCyNzf3nhU7Q4jtBZsWKzqNhhM/8Vk27nlpClx+xEosKfTPRPgE7oqho/Olg
         Iaf6ubpmHQ0conmN2mteIDTg+xfyzGlWtHAmr6z/uSNkF2PkmoTZZIKo8vL0VkBKpSdl
         JFNFWeFnjcc2h/DipsnDSEUTmWgki+N7emfLS+3a0iHxrSb2Rqtl2D+JjxLgyGN+l4xx
         4ltwTf8VulBs0jCygKsoR1ub1e7fxPVnoPJzyOoY2Svu6lok4DlXSIjwt7+rxSuoTntv
         szoCgm6RtFgI1DpVVZHrzkF3ROlP4HDNehZlPkD3kGi8wXiulUNgYBEHxhhzjQpCaReQ
         XiAw==
X-Gm-Message-State: AOJu0YzIlca2TtKj+eRapetUWhQYL1WCdcNv7Wi/tGpS7vVoJS+WFCBv
	FoQkbe5jR4qeu/IoGKe9TRNeunZTJ9OgdtnlCQAWRw06Vl6RfuccNV5HhV3/XBDNxpdr0jdshHC
	jgQw9fyW4d+ys4IiYjQufxCnFOypnNzFBAt5xwd98Ig==
X-Gm-Gg: ASbGncsqHib3gMgfHgtD3Um5LdlfjQH8BjFNjTRJlEyNfKGCDvhZYE6J2Djz4KRD2u7
	IJ9t915Ppv68xhx2SvmPckUuogFypW/1n/rqMb1QeVw6Lp7STnMQ+7U86KsOETRwPKJzEhah9Vs
	luuOlnLXK1eh4B6uNdCvaSJeucpGs+K59WKSv6fqsiV1vZy30B/XQ13pgvVXNGsrSr0v9YdsWIH
	wisUG3LR9zswmnGYM24FuoM2IdW7J3LG0W2lnidd0Kd3zyVx871tGOiaNshkH+P4OUFsu4NyiI7
	xnba7TAA2QpQmEuqHdc4PNNQAy+ffkvTNvnbYPzryrIhdHR/27XoTkz/92URRWe2+O87YnJr
X-Google-Smtp-Source: AGHT+IFFraRAeuiI1TjJcve+C8bWdGAK2iAh+f5+4vXjy4txmHxKc0Yi8Ai7Ds1xgFV9WZ/2ZcHhRDupTSRM5aVDIXQ=
X-Received: by 2002:a05:6820:1885:b0:659:9a49:8dc6 with SMTP id
 006d021491bc7-6599a8ba575mr4078815eaf.8.1765284433326; Tue, 09 Dec 2025
 04:47:13 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764930353.git.bertrand.marquis@arm.com> <93c6c48283da84976a40aae1395db5a8d47f0b97.1764930353.git.bertrand.marquis@arm.com>
In-Reply-To: <93c6c48283da84976a40aae1395db5a8d47f0b97.1764930353.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 9 Dec 2025 13:47:00 +0100
X-Gm-Features: AQt7F2qE3MCaTAIHsWrXx-HJTnu8lfdK-7AeZm2kqLq1LHEB0rd3n7x6V784etA
Message-ID: <CAHUa44E2skYSjKVxq5a_j_CnvMJ6hLOnrLeb0egJK0eRNueAjg@mail.gmail.com>
Subject: Re: [PATCH v1 04/12] xen/arm: ffa: harden RX/TX mapping
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Fri, Dec 5, 2025 at 11:37=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Harden the RX/TX mapping paths and keep signed FF-A return codes
> end-to-end.
>
> Reject zero-length mappings and insist on page-aligned RX/TX buffer
> addresses before touching the P2M. The unmap plumbing is switched to
> use the same signed helpers so dispatcher error handling is consistent
> across map and unmap operations.
>
> This avoids partially mapped or silently truncated buffers and makes the
> mediator behaviour match the FF-A error model more closely.
>
> Prevent concurrent usage of rx or tx buffer during map or unmap by
> holding the rx_lock and tx_lock.
>
> While there also introduce a domain_rxtx_init to properly initialize the
> rxtx buffers spinlocks.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes in v1:
> - take the rx_lock and tx_lock during rxtx_map and rxtx_unmap to prevent
>   concurrent calls using the rx or tx buffer during mapping.
> - properly clean rx/tx buffer related context entries during domain_init
> ---
>  xen/arch/arm/tee/ffa.c         |  4 ++
>  xen/arch/arm/tee/ffa_private.h |  5 ++-
>  xen/arch/arm/tee/ffa_rxtx.c    | 68 +++++++++++++++++++++++++++-------
>  3 files changed, 62 insertions(+), 15 deletions(-)

Looks good
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 0f6f837378cc..497ada8264e0 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -451,6 +451,10 @@ static int ffa_domain_init(struct domain *d)
>      if ( ret )
>          return ret;
>
> +    ret =3D ffa_rxtx_domain_init(d);
> +    if ( ret )
> +        return ret;
> +
>      return ffa_notif_domain_init(d);
>  }
>
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index 2daa4589a930..d6400efd50bb 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -438,10 +438,11 @@ void ffa_handle_partition_info_get(struct cpu_user_=
regs *regs);
>
>  bool ffa_rxtx_init(void);
>  void ffa_rxtx_destroy(void);
> +int32_t ffa_rxtx_domain_init(struct domain *d);
>  void ffa_rxtx_domain_destroy(struct domain *d);
> -uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
> +int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
>                              register_t rx_addr, uint32_t page_count);
> -uint32_t ffa_handle_rxtx_unmap(void);
> +int32_t ffa_handle_rxtx_unmap(void);
>  int32_t ffa_rx_acquire(struct domain *d);
>  int32_t ffa_rx_release(struct domain *d);
>
> diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
> index a40e5b32e3a5..5776693bb3f0 100644
> --- a/xen/arch/arm/tee/ffa_rxtx.c
> +++ b/xen/arch/arm/tee/ffa_rxtx.c
> @@ -41,10 +41,10 @@ static int32_t ffa_rxtx_unmap(uint16_t id)
>      return ffa_simple_call(FFA_RXTX_UNMAP, ((uint64_t)id) << 16, 0, 0, 0=
);
>  }
>
> -uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
> +int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
>                              register_t rx_addr, uint32_t page_count)
>  {
> -    uint32_t ret =3D FFA_RET_INVALID_PARAMETERS;
> +    int32_t ret =3D FFA_RET_INVALID_PARAMETERS;
>      struct domain *d =3D current->domain;
>      struct ffa_ctx *ctx =3D d->arch.tee;
>      struct page_info *tx_pg;
> @@ -66,20 +66,30 @@ uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t=
 tx_addr,
>          rx_addr &=3D UINT32_MAX;
>      }
>
> -    if ( page_count > FFA_MAX_RXTX_PAGE_COUNT )
> +    if ( page_count > FFA_MAX_RXTX_PAGE_COUNT || !page_count )
>      {
>          printk(XENLOG_ERR "ffa: RXTX_MAP: error: %u pages requested (lim=
it %u)\n",
>                 page_count, FFA_MAX_RXTX_PAGE_COUNT);
>          return FFA_RET_INVALID_PARAMETERS;
>      }
>
> +    if ( !IS_ALIGNED(tx_addr, FFA_PAGE_SIZE) ||
> +         !IS_ALIGNED(rx_addr, FFA_PAGE_SIZE) )
> +        return FFA_RET_INVALID_PARAMETERS;
> +
> +    spin_lock(&ctx->rx_lock);
> +    spin_lock(&ctx->tx_lock);
> +
>      /* Already mapped */
>      if ( ctx->rx )
> -        return FFA_RET_DENIED;
> +    {
> +        ret =3D FFA_RET_DENIED;
> +        goto err_unlock_rxtx;
> +    }
>
>      tx_pg =3D get_page_from_gfn(d, gfn_x(gaddr_to_gfn(tx_addr)), &t, P2M=
_ALLOC);
>      if ( !tx_pg )
> -        return FFA_RET_INVALID_PARAMETERS;
> +        goto err_unlock_rxtx;
>
>      /* Only normal RW RAM for now */
>      if ( t !=3D p2m_ram_rw )
> @@ -167,6 +177,10 @@ uint32_t ffa_handle_rxtx_map(uint32_t fid, register_=
t tx_addr,
>      ctx->tx_pg =3D tx_pg;
>      ctx->page_count =3D page_count;
>      ctx->rx_is_free =3D true;
> +
> +    spin_unlock(&ctx->tx_lock);
> +    spin_unlock(&ctx->rx_lock);
> +
>      return FFA_RET_OK;
>
>  err_unmap_rx:
> @@ -177,24 +191,32 @@ err_put_rx_pg:
>      put_page(rx_pg);
>  err_put_tx_pg:
>      put_page(tx_pg);
> +err_unlock_rxtx:
> +    spin_unlock(&ctx->tx_lock);
> +    spin_unlock(&ctx->rx_lock);
>
>      return ret;
>  }
>
> -static uint32_t  rxtx_unmap(struct domain *d)
> +static int32_t rxtx_unmap(struct domain *d)
>  {
>      struct ffa_ctx *ctx =3D d->arch.tee;
> +    int32_t ret =3D FFA_RET_OK;
> +
> +    spin_lock(&ctx->rx_lock);
> +    spin_lock(&ctx->tx_lock);
>
>      if ( !ctx->page_count )
> -        return FFA_RET_INVALID_PARAMETERS;
> +    {
> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> +        goto err_unlock_rxtx;
> +    }
>
>      if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
>      {
> -        uint32_t ret;
> -
>          ret =3D ffa_rxtx_unmap(ffa_get_vm_id(d));
>          if ( ret !=3D FFA_RET_OK )
> -            return ret;
> +            goto err_unlock_rxtx;
>      }
>
>      unmap_domain_page_global(ctx->rx);
> @@ -208,10 +230,14 @@ static uint32_t  rxtx_unmap(struct domain *d)
>      ctx->page_count =3D 0;
>      ctx->rx_is_free =3D false;
>
> -    return FFA_RET_OK;
> +err_unlock_rxtx:
> +    spin_unlock(&ctx->tx_lock);
> +    spin_unlock(&ctx->rx_lock);
> +
> +    return ret;
>  }
>
> -uint32_t ffa_handle_rxtx_unmap(void)
> +int32_t ffa_handle_rxtx_unmap(void)
>  {
>      return rxtx_unmap(current->domain);
>  }
> @@ -272,6 +298,22 @@ out:
>      return ret;
>  }
>
> +int32_t ffa_rxtx_domain_init(struct domain *d)
> +{
> +    struct ffa_ctx *ctx =3D d->arch.tee;
> +
> +    spin_lock_init(&ctx->rx_lock);
> +    spin_lock_init(&ctx->tx_lock);
> +    ctx->rx =3D NULL;
> +    ctx->tx =3D NULL;
> +    ctx->rx_pg =3D NULL;
> +    ctx->tx_pg =3D NULL;
> +    ctx->page_count =3D 0;
> +    ctx->rx_is_free =3D false;
> +
> +    return 0;
> +}
> +
>  void ffa_rxtx_domain_destroy(struct domain *d)
>  {
>      rxtx_unmap(d);
> @@ -298,7 +340,7 @@ void ffa_rxtx_destroy(void)
>
>  bool ffa_rxtx_init(void)
>  {
> -    int e;
> +    int32_t e;
>
>      /* Firmware not there or not supporting */
>      if ( !ffa_fw_supports_fid(FFA_RXTX_MAP_64) )
> --
> 2.51.2
>


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 12:48:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 12:48:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181619.1504642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSx8c-0003oO-AR; Tue, 09 Dec 2025 12:48:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181619.1504642; Tue, 09 Dec 2025 12:48:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSx8c-0003oH-6m; Tue, 09 Dec 2025 12:48:18 +0000
Received: by outflank-mailman (input) for mailman id 1181619;
 Tue, 09 Dec 2025 12:48:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2qC9=6P=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1vSx8a-0003iL-PP
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 12:48:16 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 53c27550-d4fd-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 13:48:14 +0100 (CET)
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com (2603:10a6:20b:509::16)
 by GV2PR03MB9404.eurprd03.prod.outlook.com (2603:10a6:150:d9::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 12:48:07 +0000
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb]) by AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb%5]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 12:48:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 53c27550-d4fd-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QCXQOkIbOaVQ1VDTLWt6XjTEtxDjRx/CGpUM5SLWFZJx8r5v1X7sWcdrR1E2T8LGnV+wzJb+vr+DEJA2KUErcKFFsnARHHGWpJQgr5rErK0I3yGSfMI449KW9Lp9QGn8kBULznX8gWzlVxb0n3kCsRhA/hNesJ037oQQzJ2Yn4t/JVcpp+yAWL5NYOpB0N8aYxJjxui/l/5AOZjCe7oHBhpRg7+BUYCkL7B8zXkc0Qv1nCgdKcwIMt9+9Wi7t2LfkOISqSEu8L+kbs3BQwd/mQM/CHTy4SMnuebff0Hnock+ilPSTMprD1sJhGqGsF4IuumJy3qcAx421SMc5Qzimg==
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=AjOF1jGeG5tmY5uUcGwJW9qBoJ67+psJtHnPGaetGqM=;
 b=c+pphwG566AysaO5UHSXpFqpc3rbftd3W+eVUV7+Fh5DG2py9/BWOkynJ7hNKeyoUb/c3OFXIRz4W+n1O1iTAppZW6HCWW97ean3y7DtBbWxdcNz3EnK/DE4Ho6UhL8vx61PPjQr8S+i1q/WEVNxRMAuXLvu64O4Gn1B9avcm03KwHdi6bscx2Kr4XT5hiS/kqqalenjhyugPK8can4wI4HIjqvrOHVXY0kP1b/krnhW+IfJRESNLyDVYIkRlXcVcOzo+aufjuQQ3F6sekX/bphzDQizYaxQpWjEUFqZLmXG2UtKCpfKwXZvlHSAv575tueRJKdNAdQkqUZt79flHA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AjOF1jGeG5tmY5uUcGwJW9qBoJ67+psJtHnPGaetGqM=;
 b=oOe3PgxQJ4Qe4phwb9v5IgM/kFBOXdq9HTa77vSI66kZ7kdGv2hp3BGal70VsFzNtld5+eo4WO0Aglnlw1A0hqYpyh4GlH8b+BwwQbMg2fNUa5aV07TiEDN5QgZvPOH7bzJ/D3rZYP9bC2gne9Y1WYIIac+Iy7GBhO1z4Upw4nwbHZsRlVEU7iKY80MFtK2fLdmmkUjqyp12TrlR5/OKelnDARGUSRG9mmcwSM25lDIjshJ5J9EbLlsDfh/0ZAov4dvBGp0sOC/WegvJmQtFUeofF2F5qPW5AEWRTUsN7rhw463H7B5A8lY7TMwitxvuYAReigdb2HfDgVkQSpORNA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <c2749a60-daa0-40d7-9d98-27868d37a560@epam.com>
Date: Tue, 9 Dec 2025 13:48:05 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] domctl: Provide appropriate error code when PIRQs are
 not supported
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1764961645.git.milan_djokic@epam.com>
 <b38b7b65630d1f167d1589d21556be1493c180be.1764961645.git.milan_djokic@epam.com>
 <88ab7d88-9b25-418c-bc5a-fc080c5e78ff@suse.com>
Content-Language: en-US
From: Milan Djokic <milan_djokic@epam.com>
In-Reply-To: <88ab7d88-9b25-418c-bc5a-fc080c5e78ff@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: VI1P195CA0025.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:802:5a::14) To AS8PR03MB8322.eurprd03.prod.outlook.com
 (2603:10a6:20b:509::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB8322:EE_|GV2PR03MB9404:EE_
X-MS-Office365-Filtering-Correlation-Id: 18fdc7ed-412f-4914-044e-08de37213367
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UUo5Q0E3N2FXa0FXV21LbnkrVXVjRGpSMUNFMFVqaEJzRWZ2UytNWTAzVWJS?=
 =?utf-8?B?NDZFQjVCVCtqOVloeXkwRjA1NWxMN2FiNGxrTGx5RzhhUCtaUzFNQzA2TXJY?=
 =?utf-8?B?aXJsSHgwZHFSelR2WFk3N1lJUTNmOEVWVDR3MnYvbzdyR0k3dFJQaTdYcCtn?=
 =?utf-8?B?V1U2TmhSbnJzQ3loNjU5UVNpUVdOU1BkK01uS1RYVGU2amFwcmJjM1k5VW5r?=
 =?utf-8?B?NTE2U2dERUM3WTg3Y1FwRWdxbXkweGppbDFISEw5RENCY1BPUjJDZUl3bTlF?=
 =?utf-8?B?QlBjcEE5QXpQYmFrOUNxb2FlTHBUbjNST0tMOWNVMXZJZ3g4MXpGb3I5czZL?=
 =?utf-8?B?b2JObVdFRWdFd21xeTc1Nm1YUlNhT0ttSCtoVzk0a0UxaVRPK1FYb0NHQjd6?=
 =?utf-8?B?UG5Ob1g2c05oSy84V2RuTE1nNXJWQ2ZGaHNVNHk3aGhMM0RPRThlb1VkaGlJ?=
 =?utf-8?B?Y1ovbmNxc3EzaHJzc1QzTUlDdXplSC82K3F4T1M3QVkrRk0xZzdBWnRwY0Jn?=
 =?utf-8?B?TFpKOEZocE9xRTQ1YnZxNXZxeTFrVkVKNEtMZXpuTENWcDRscG1seUxNeHFT?=
 =?utf-8?B?QVVtRktUZTBmWWRHY3ByK3hmaTdINkVkQUo0Vm5NdGNmRm4vRTFad05Od0gz?=
 =?utf-8?B?MjlQMDVwb0ptR3ZDTmwvM0FIQkhERUpRN2FTNVBEdjZsOUVTR3JUVDlZZEE0?=
 =?utf-8?B?RjRXR0VQOFA4dmUxYUhxNmM0QTJESVVYdEt2b3g1UmVieEFPTGk0ZmlYU0lo?=
 =?utf-8?B?ZkdVejR5OTFDdmJCVEFQempZdUkyTjRkcU9SS1U5RS9sT09lbCtBMzNxYmdB?=
 =?utf-8?B?RlA3VkxMUDNOMTBrbTh1THBSTmI1VS82c3dISlh3c1lwdFJkV3V0dFM4MHJ4?=
 =?utf-8?B?VHljeGphS0M4cm5TMlZWVjRZTFJpdzdwUGlMclc0eDdvSVNJVVY4TVBFam40?=
 =?utf-8?B?V0ZuMmFZNmpETDRlNXkycWE2SU84MEIvQWgyZFdQbEpaQklRNUlhTUQ4dHVI?=
 =?utf-8?B?a3I1ZGZpSk0rQWoyU1F6V1NGaUZZK2hhRWtNNzJVWVJFYjU0cGFuVGNQYThh?=
 =?utf-8?B?VlNYSDQ0K0RUKzMzSHMrRE5yaHRrbmc5K013WW1MdmxVZ2kwdGxKNDZpem85?=
 =?utf-8?B?ZFlYMStvVjlTelJPQTRtcnlzNHBjN0lGekVCRXZPTHpuUFFKOTNZZ2NTNDNY?=
 =?utf-8?B?RFBMUnFMU3I0RFRsU1ViL1FPRXNuNkkveE1DQUNPd2VSbXRsTmVzZ0UrU1hx?=
 =?utf-8?B?bkNEaTBVcjZidWkrZnd1Ykd3NXRUYWFwc3dLM3dwN053Uk5KNHpxUVJwcCtO?=
 =?utf-8?B?c3pOUFlWa1NyclJBM3dFS0d6TytNY0FDK2NJVFJNV1ZzT05PdWRIbmxyQUF5?=
 =?utf-8?B?NXZPUFRHN1E0NmhuY3lpU3o1NTRvb0pyOUc2ZzNaK3NyQ2pzbVhaeVF5Rnpx?=
 =?utf-8?B?blcyWDBMQ0lhZUp4NUpBSjJIVEk4c1NMTmFFQjBYcFY3a0QyQmY1eUNkQVRX?=
 =?utf-8?B?blVmaWlSemZQL0ZsVVdudlZXY1pkNmJURm5mOEdGY0sxY2VOZDBWTld2UlVL?=
 =?utf-8?B?SXVMUzQ5cXhMZHFxSnRVMXhzTnFMSVJzYXU4cE8xb3pZR1Z3RzZQdDFLb3cx?=
 =?utf-8?B?bG92UXhRbjZvdk1mOHUvSlNmWjhNMW1ITVB0TVUyLzNhMzdEN21UTXVzNVNB?=
 =?utf-8?B?TGxmdlhpUFdJNzZKekFSRkpCUy9ucXZWQVVSV0RxdzE4RnN5bkFjZUxFKzFN?=
 =?utf-8?B?NzhlaWMxRlJHOGVlWFppRERYU3hOS3EzV3RhMk8xUUtIM1hyTTlOb1V0NWJu?=
 =?utf-8?B?TmQ1MmZMMkhPOFhsc09EYXJ4QXZISjh6aU52a1NyajNaUDc2bW5LZXZrLzlk?=
 =?utf-8?B?M3UyMEpQL3RTT094eVZ5a2VFMHJRMUpSRExBdUVWQ1pSRVhWREMvajlLR2cw?=
 =?utf-8?Q?z/AWVb1ZFVNo3YIlutyiTLkH1wvR03lA?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB8322.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?R0c1K2hPeGtsTExjeDZVaGxIdVZUVC9YNjlSby9RZUxWeitpbnNOd3FLaEEy?=
 =?utf-8?B?bldROXZaTVlSTjVPQWYxSjJyRjdJUVJPalZLM2ZwS1dsME5BcGNuZHVnbkZH?=
 =?utf-8?B?QTZGU0h4aWY1R1RWblgzS3ptOUF4WEJ5MmZqMFdzZEVabjk0Z214NUJJeUJR?=
 =?utf-8?B?VXdzTHkvUWdDU3BVOURUNGRuTHhnYS9nYmxmcDhNZ0pQNk83S0Zxd2llRVRp?=
 =?utf-8?B?bGxDdEFvQThXY1pNNmxBYlJoUkZxZElwRy9BNVVxMkt0Q0J6T2tGL3lVWlho?=
 =?utf-8?B?cHh1SHlNRUc5Yno0ck9WL0I5RG1GQWJFcERzeFRTNzNQamN2Uk5peHozWENN?=
 =?utf-8?B?NHROZUZwQlhRZHVDL24zQWpVNUltSUtYTWpyR1NBWjNiY0ZpWTl4MStLYnd6?=
 =?utf-8?B?ajdJZDFPVW5GekFhTGt3a1NTMFFUUGVYenhxcHpWOVVadHoyYklXQ1NCcldR?=
 =?utf-8?B?bGxrWDZ0bXpRYS9Sand0NGVZQkhBZlNTdzBDNlF0WHBvOXNQWlVrcFNwWTJ0?=
 =?utf-8?B?NjdnanN1MzZHK3h0dHE4TmJDbnVDOUtIN25oamh2aFNEbmxnUzc1ZW52UUVo?=
 =?utf-8?B?aTYyMkJ0bG9KcXYzYWdSVU1wWEJueXNiWjMvSW5Gd3JMRGNOWStoZ2U2UTl4?=
 =?utf-8?B?eFRiMDlaVU1ycmJxOGxqZDNFMGRzdlFQcU1LYU9seXlibUNxSG1SbHYrRzRw?=
 =?utf-8?B?ZlNUYmZIWmpLWGlCdnQ3cHlWMWY3L1pFUkV5REhxbG93Vm5QQm5ZbHNVd2tS?=
 =?utf-8?B?c0lJT1JNVnViRHdmSkUvOW1VZnpUVnpKZG5vMG9VYjdITTQ5dGN2ZjJQc00z?=
 =?utf-8?B?dDdWRVp6c3hUdDZLY2I2T0d5akhhZ1J2L2FwMUxOYTFkblZ5S0ZaOGd3NHdz?=
 =?utf-8?B?SnplenhnN3RYV3o2WlF3NVZ2MmhneTBDaDAwbGRQcU5SMHQ1UGl2bGQ0WFRz?=
 =?utf-8?B?RzZUSWNBalM1cDYzNlBsRVpDWjVsQTlwb0dxYXB4dU9yREtPUDByMHFmdVQ1?=
 =?utf-8?B?SklYMWRjMVM4dmhVMVpXRUNldFdlRDVSMHBXdmxkRE9VUDZYTENZT0lrR2NT?=
 =?utf-8?B?ZjRnNkYxRTJOa0JCaDZqdWVFd2Jhd01sekVodE50YnR4cG8rSXp5dkJJb2p6?=
 =?utf-8?B?dzI4S2lqVDF5RmJCZ2VDd3RTSHo1ZDBWUEQ3bXhkaGcxZzExaDdHTE50OXNK?=
 =?utf-8?B?ZmpnVXA2ekZEekFVNUs3MnpKTFBzUFV2dW9LNmRaNHJDRjFKSmZIblBCajBE?=
 =?utf-8?B?Uy9iOXFzMytnVXZKTUd2TWp6akdNQ1dKR0NVckxaejhJR2ZlT2hkYTRzd3hL?=
 =?utf-8?B?Nmt0QXNScXpaTjVqN1RWRzJLd1pNNjZsTExud2xWN09Tbi9iSmVwQkE4aFRu?=
 =?utf-8?B?L1pZL2RrVkNDWUh3UzBodWZycnJWSEUrRU9FVHNNcFdXbjI5NEQvRDRFbnFQ?=
 =?utf-8?B?WHFTQ1dTekJNYlBoNW90QkQwY3ZUSVFOMzJ5ZVh3Ym8wcDRlUm5HeHhSSFZH?=
 =?utf-8?B?VDJwcXo3NXZJOTJnT3VSc09kSXFJbzF4eGluMmduSkV5aXFEQkU4a2VCMjBH?=
 =?utf-8?B?TDZNd3JKRjZrNDJBc2lWcTJJWDFPK0xRTXlYczJhNDY1R285N0c2MmJzcjZ2?=
 =?utf-8?B?MjU0VFB5Rm5UU3dUa1JCSEdsWUJyVGM3TlM5cy93L25KQnZCR2pEekxyMDl4?=
 =?utf-8?B?ZWRVaWlhbjdyL3pnWGdicEIvaVpHUjBQUEpzSzJGN1NqaEdONzRHYzQ2clZm?=
 =?utf-8?B?dEkwSWRzOE16WlhrUURSOWtpYkFCOEM2YlVVZkp0V0FwbDNFWFZ2aXdlTTZR?=
 =?utf-8?B?NktjZys1MlJFT3QxQjJYTWkra1UxSkdSb0FyaUhsNGowQktkdGxKQ3QxTkFO?=
 =?utf-8?B?K09oanNHYWdsZHBTbWtpNHUzVVZUMjhxbklNUWFUK0tCcUd3bUV2elduVi9I?=
 =?utf-8?B?WXozTkgxcUhjeTgyeUVBWWVVRmxIa253R1FvaC9EdHg1M1JtM1Z4b0RVVWxi?=
 =?utf-8?B?eHROZmJsSzk0Kzk2elJRclBNR1ZZRWtMUnNFZTRiSzZIRkJsR3cxaTVpZmpI?=
 =?utf-8?B?dHNibnNqYmE3Q3VXODBMT0w1S1ZRNjFURFdnMXNvRmllVGhSNHZWQys4dFZq?=
 =?utf-8?Q?IIdnSr/s3U2lO97oJTNYpQXqK?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 18fdc7ed-412f-4914-044e-08de37213367
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB8322.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 12:48:07.0706
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: u86Sh6y5jTlM4fnrlHHGewegdS9cFBK5USkHYRFOeHhVddf7xioSabjgmvkApWrzs885gItHI2ko6xh5X6f67g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR03MB9404

On 12/8/25 14:08, Jan Beulich wrote:
> On 05.12.2025 21:36, Milan Djokic wrote:
>> When PIRQs are not supported (e.g. for arm), XEN_DOMCTL_irq_permission
>> command is not handled.
>> This results with default (-ENOSYS) error code returned to control domain.
>> Update command handling to return -EOPNOTSUPP if control domain
>> invokes it by mistake when PIRQs are not supported.
> 
> Did you consider simply replacing the bogus ENOSYS by EOPNOTSUPP? (Assuming
> the difference in error code really makes a difference to callers.)
> 

Yes, this is the simplest approach. I didn’t do it because I wanted to 
keep a distinction between commands that are part of the Xen interface 
but not supported on the current configuration/platform, and commands 
that don’t exist at all. I also tried to follow the existing pattern, 
where unsupported commands are handled explicitly rather than falling 
through to the default case (e.g. set_llc_colors, soft_reset, etc).
If this distinction isn’t useful, then yes, I can definitely just rely 
on a default-case error.

>> --- a/xen/include/xsm/dummy.h
>> +++ b/xen/include/xsm/dummy.h
>> @@ -555,14 +555,14 @@ static XSM_INLINE int cf_check xsm_unmap_domain_irq(
>>       XSM_ASSERT_ACTION(XSM_HOOK);
>>       return xsm_default_action(action, current->domain, d);
>>   }
>> -
>> +#ifdef CONFIG_HAS_PIRQ
>>   static XSM_INLINE int cf_check xsm_irq_permission(
>>       XSM_DEFAULT_ARG struct domain *d, int pirq, uint8_t allow)
>>   {
>>       XSM_ASSERT_ACTION(XSM_HOOK);
>>       return xsm_default_action(action, current->domain, d);
>>   }
>> -
>> +#endif
>>   static XSM_INLINE int cf_check xsm_iomem_permission(
>>       XSM_DEFAULT_ARG struct domain *d, uint64_t s, uint64_t e, uint8_t allow)
>>   {
> 
> Why would you zap blank lines like this (also elsewhere)?


Will fix this.


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 12:58:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 12:58:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181637.1504663 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSxI1-0005dL-9X; Tue, 09 Dec 2025 12:58:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181637.1504663; Tue, 09 Dec 2025 12:58:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSxI1-0005dE-5e; Tue, 09 Dec 2025 12:58:01 +0000
Received: by outflank-mailman (input) for mailman id 1181637;
 Tue, 09 Dec 2025 12:58:00 +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
 <SRS0=2qC9=6P=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1vSxI0-0005d8-3t
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 12:58:00 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id af31f551-d4fe-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 13:57:57 +0100 (CET)
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com (2603:10a6:20b:509::16)
 by GV2PR03MB9377.eurprd03.prod.outlook.com (2603:10a6:150:e0::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 12:57:55 +0000
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb]) by AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb%5]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 12:57:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af31f551-d4fe-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rtxsKG1QpZ07Pac5XvlAj7pyzoz0akMQF6ymunGSq7+SH6kyxRgKEjt/mQhmWQIGwWJbvkujndg46Wtx6iFNHaA/LTRL2XuPjOEhZB+wi0Lh8AbJ3ivoU9vOvHB2iuz3CQbAQAgtBCtcrb32ZQnbeDJOKhDv51o4FXxAlLjdb8eEgGbIcODiqSMBWxqvMW+iMlbgo9lbTxCm1WKGZ7knY1EKiYU0myoGsaL1ZyU/gD6dXVn8PlMd1L1w+7iRAgefBNhs8eeIGQCJGCgwPFYkMtexzRE62SWIyeRgFf5/UFXK3J5jC50TZr4qvLUHqhY3pDbljG+72xbidaHKsMUdmQ==
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=Rnu1EVaf75BVue/HxCCuOvScGtBK4r3193HsbvfeH8Q=;
 b=nAeOnS3cWyp0fWLO4oXwMu/sraG4fAwUByyrPn+LBfC0ft8f/JuuJDeouGbnHpeNjX1n5qD3S+P61QZIdfKVfU2dObuLeozOJqIkS02a0bgvAGVekW0WDh/hUGiJSkmGB6LAS5tSeMjg3GOHuj/E50mmh7FYrZcP1SKzkSScoXpU4nlNQhzTo/zhJAzcFRnNVXs/Gru/ENXCbs6GVyP/+wWZnTEdLRrMN8U/QRVuJI8DbC17f2D42rgSElGXu7tej8lT31ZCnksnyGlJ1i7K7XPx9y3QDwzmk3EVc6jbNCdb+yaCMwVa11lqBXeo+ohkzC3r/oYS4xmxZ1arl3+WAA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Rnu1EVaf75BVue/HxCCuOvScGtBK4r3193HsbvfeH8Q=;
 b=d6e/qrMmjvmSAL+WBMWaPzBl9CRzqi3SZSuyOug8HvppiorgbXcqpsuQOu7JTH4TA2sIZx5Dlq8FNKnxQe2lJVLsHb5x6fJYChTO9ixCYK1znm6U3jENShWJfUdyJ74M3kphMsLx/OUO5xkrvk0r34yufVD1gQSMmyIY2zl6odAo1JbHWwKE5FQ1HuRpp+R76zaqaUPS9jW0Nd38sG9xkzzSjZS0kfL6iOVDRm4MQigAlrRdkexyNPHVgPPTQlNtaAREln+I1HeC92F88ikQ83dB6MWUvjnqpGWOCRzWzXHd4kZ2CHueEIAzQZnvt3kOKuQtdqNfiVK4T9qXOF6qiQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <f707c476-4ae3-418c-b4b7-f5e780b36628@epam.com>
Date: Tue, 9 Dec 2025 13:57:53 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/4] domctl: Provide appropriate error code when VM events
 are not supported
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1764961645.git.milan_djokic@epam.com>
 <99f899addf349543eaaaa328596dd9bf90004214.1764961645.git.milan_djokic@epam.com>
 <b492bd01-c32d-4cc7-bb6c-4f3555735be5@suse.com>
Content-Language: en-US
From: Milan Djokic <milan_djokic@epam.com>
In-Reply-To: <b492bd01-c32d-4cc7-bb6c-4f3555735be5@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: BE1P281CA0102.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:b10:79::15) To AS8PR03MB8322.eurprd03.prod.outlook.com
 (2603:10a6:20b:509::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB8322:EE_|GV2PR03MB9377:EE_
X-MS-Office365-Filtering-Correlation-Id: f73bd08e-b6a4-4aa4-2a69-08de3722921b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SnBYcjRFQzRrdlBzYjc3eFl3SkVYMDV3eTNCUElZWDhMRGh6Z21KTEp4Z3pM?=
 =?utf-8?B?N1ZGOWtVVTVya1dFcUhmbElJU0ZzSzlsQUloOS9BN29yMFZDc0l6SkppZmdr?=
 =?utf-8?B?NDZyUDFLUjNROEVTNzZEemNMb3RHMHYwRUlsOFl1U2thTmtBRDdHV3BRVjMw?=
 =?utf-8?B?ZFhTWmlnc2krZlhuUTVUek4zaUNienYzYkZkUHliNHNSTnRUT08wdFI2WThX?=
 =?utf-8?B?QnR1SDZ0b1M3S3JpMjZxb09yN041N0w1am9sTWVKQ0t6dUdodlF6R05ra1NN?=
 =?utf-8?B?Z2paTUp4ZjFETEREcDdqaG9FZWk3V1RwUUlFVjM1ZDA3eWU4SlEvWHFQKy9B?=
 =?utf-8?B?c2RpM0F4RHVjcTM1eEJZWHd1NW5PeGRicHF6NGY3UVU4SnNVKzFnUExtNVUv?=
 =?utf-8?B?VE03YVRraTFzcEJXaFFMRlIrN0dtOXFDbURoWGdaK0lhdWxqalNnNXJ0UUpO?=
 =?utf-8?B?WXBqK01sN0xueUllVlpjWGhRZE1OMlg2WjZpaUFRbXdtaExseW1raXBrVHVv?=
 =?utf-8?B?ZVVGMFhzcFptREUzWXdyVFJNYS9PTVpPRU00ZHF5L250bllieTRjSDUxaDF4?=
 =?utf-8?B?TnVGM01nd1ZDNEhFNHRaUWExdlpIN0txU0YwSUxBT0FLb3gxaFlsdm5OWVJZ?=
 =?utf-8?B?US9iQUNjWXl3UFJYM0NHcW55S2xsTEk0Yi9Ya2NUaGg4dHNTamYwR2c5YWk4?=
 =?utf-8?B?QS9yV2d4UURHakF2UjhsUEttZUFuNmgrYWs0S252dnVhNnRWeEt1bFJvSHhB?=
 =?utf-8?B?SWN4enZIUkh3UXY2YlExRzJRZFdnMGhlVUhQamR0ZzJLYS83a2JzLzVNOTBG?=
 =?utf-8?B?Ykh0emZmRnN2aUlWWE5yM3ViRXBBMk5VSE4xNVpPWjRSblJZaFpuOUxsMVhm?=
 =?utf-8?B?a2NBWE1aOGg3UDJVWW45MGNOQ255M2JzdFNNR1NmOHR2KzEySUxPdnlBT2F5?=
 =?utf-8?B?Y0tndjdTbUR2L2lQSWgwYm5SSC9lQ3FNTDNJTGVUN29rYWt5MUh3VDlYMG9i?=
 =?utf-8?B?RGtkTEQ1WG5MYjVCbnk1WWdZR1lxazNUZ2F2WEVqM2FtbjJjdjJ1eE1YcEN4?=
 =?utf-8?B?UjBqeUdiTUtYNnZVMTdPSHIzSHovUHBNL1EwY0loRnhSWjVMOHBRK0JqUzFl?=
 =?utf-8?B?cVZYd3VRMGpmTXVyMHV1WFdaMUV0Sm9UQzRxNjJYSFp3aW5lZEdBOFQyWVpC?=
 =?utf-8?B?UlIrb0ErclBoRzZTaENTaThSeTNUanN3Z2NIa3owdTFiTzFNRzRIL0szYUdN?=
 =?utf-8?B?NzNvYzB5d05YVS9iTUdTUU9TUXh6bjNIWmRUOEg2RmhsM3orcTlKbFpYQm92?=
 =?utf-8?B?SGhYZHlScjFSTTJFYnhFNmoydjJLUmpLcllTeURBemE5R0ZvamZNc2MyaHJV?=
 =?utf-8?B?QnBlaUtucVU2UTRmd3VZOEJGVnh1NHRCb0dqYUtJTmlKTDNwaTBjdE5EQmJ6?=
 =?utf-8?B?VzcyUVhia2hOR3JQRmZWMWg4QnRCNTUxblRlWGtJdG4zb3h2cldZZ1hvZmFL?=
 =?utf-8?B?RjZKUkhCMzkvVkdCdDRPNXc1dm5ZOEdybkdoaGxjaVRXZlNuMFJydVUzK0JO?=
 =?utf-8?B?TlJHdHZnM0srL3lPeVp4M05keCt3dlkwWE5lQ1dHeHhCYmxmeUczRHJFcmNi?=
 =?utf-8?B?eDlnaS9wNnVtK1NmbWlYd2Q3blJPTW8xZ2xaS3kyK1RYbWpRSnI2WVNYUC85?=
 =?utf-8?B?UkxjZDlOVGRrRVBaM3ord0FvRHBZYzlMYitCQUJkREMwQXlpd21VUTR5dnJH?=
 =?utf-8?B?RXFHeG8zNUcraU8wazEvS1RLOW5ydmdTSkQzWlpndlU2L3hyMU81Ulc5eWJq?=
 =?utf-8?B?aWNHL2FUMjJuNmt3TlJpRWNBL0NxMDNkVjRPWGVrV2JpVzh3bGdwV1JwZzZQ?=
 =?utf-8?B?ZVh2TlYzTmpaUGpRSWIvcjltbmdjV09lMEtKLzBJUUl0LzZVVUpiS0Q4a3lZ?=
 =?utf-8?Q?lyE/34UvQmhq4qvplMdl5ZIl+ek8MPRZ?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB8322.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cytXVkNTdlhYTHFJUmp2bmF1WlA1YlVWQU00aVBmNklmZCtNandxdlhVMDl0?=
 =?utf-8?B?UUZXTFJMZmc3WlZnUG4vd25EaG1LbTdZVjRhTC9WNGlRUGNRbGQ5ZG9WSVdr?=
 =?utf-8?B?YnBiS0lJa3kyMUtUOWt5S0RqR0l0dXZtSzFFSkpRMWZ4R0RvZjE1MnBTb3Jh?=
 =?utf-8?B?MEluSGJSQTFvM3hJQjlKSHBkdndmc1F5a0c4SDJQclIwRGw4bFhkUnRtYk92?=
 =?utf-8?B?SStpODRyT1E0Z3BSU2x5MlRFRFJxa1BrVG5zNUNnOGZ0T0tUa1drNytQWVd6?=
 =?utf-8?B?Vkt1aEc1VTJFSExLdzgrTDVtM00ya013QkZhTUdFdEdxZWRSWmowYUJ1aGQ0?=
 =?utf-8?B?VHN5a1A1ZjFxTlczTThXOUZtNXNuZzROb3Qrb3BMb1YzL3lDeVNBVGU4aitK?=
 =?utf-8?B?aDZyeUN3LytSWUFLWkpJMVRmczltVkV4S0xENCthaEhGUHg1SVg3dW9HaG1L?=
 =?utf-8?B?ZGFySXplVlNtL0NQekpEWS9GNk1EUnVtbHNqL3lnK2twVkc2YnVueFpEUEk2?=
 =?utf-8?B?WEMrOXRjcStEYlRPRlJsdkpOcEh6TlZjTnIrZkZIdjcycVRrWVNqdjN5b2NW?=
 =?utf-8?B?WHc2bm1kV3dFdDh2UG1hUlQ0a0tBRFlIUElodXhFNnAwYmJ4ZUtTWEo5aEow?=
 =?utf-8?B?SGRwam8vN202NTBjVzcvSHo5cS9sS1Myd3BjSnE0eVNOVjBmbWlUNTEwM2tF?=
 =?utf-8?B?NVNBTWhHYVByK2hraUZ5VGdTdnl2ZVZoN09FSFkyNmVhZjNvSmROZFIvUzRj?=
 =?utf-8?B?eHQwU0w5MU5LWU93WE55b1pBa0p1bVdBTml0OWJoVkJRVEJwMXFaT0t5Mmlv?=
 =?utf-8?B?R2puUVR2WWk1dEpId0hBUGZUbWV2Vm9GMTR6QkZZampGNEVrdy9QM3JYc0RT?=
 =?utf-8?B?cU5CSjFuaWF2Wk56M1E0ZzJ3dFVmZ2ZibXFYU2NtR2R2aWVmM3c2TVdOS09u?=
 =?utf-8?B?dDI5Y1hKUDlJaDF2SXkvdkRibUozekJUWWNNb3ZLRkF3SlFIR1B2U001YjVo?=
 =?utf-8?B?QXRqOHJLZVBEUHRJSGN3V1JCWENHeUpsSXVOa1A1bWxxdSt0NkR2Y2xsYnNO?=
 =?utf-8?B?V1dQcnhUMVlFMjFRTS9sVURYOVZTNzZYaEZVYStUMGVmQjhoU1dKd3hQY01t?=
 =?utf-8?B?aGw4c242Q0d3NmV4QXlQWkprb3N0cEJ0M2VkOHRiNlQySXZaZDV6RG9KZ3hT?=
 =?utf-8?B?TmRxZVE2ZlB6TUQvOEVrMjBNLytVelNib01rRUwxVFRSZk5DWWJDd2QrRkxk?=
 =?utf-8?B?OUs4TlZFS2IyUG04eVJQQVFvQ01rcmpQQUpTNmoyaEkyRjhoUklJRTNDYUtJ?=
 =?utf-8?B?MHlCd1l2U01ESnNZbGRGUEpwazNsZW9UaFFic0p6TXZTK2lGcHZaMkhtelpQ?=
 =?utf-8?B?K0YrdE5Tbm9ackllMXB5aVhtWDVUS1ZScHU2WTR4NCt6bUVCN1VUbjd5eXBW?=
 =?utf-8?B?NHhCbERwRTFlMXc0eVM3T3R4cnZteDk5a0RpaG5RNTZWUjc1czZhaHgxYm9H?=
 =?utf-8?B?ZWlrNnZ0Rlh5Qllsd01Rdy91eitqbHRzcE1aYTQyN1BxVUxreGpwbko5cEdn?=
 =?utf-8?B?TWdXRDUvSkJZWTBvejN5ck1QMDhwR1JaNHpWOUh3bFNLeSt0bTNISk4wUUFR?=
 =?utf-8?B?dHJPQXk4VlQ4RzJvYk05cFZJNjdwdGY5S09HM0k4V21rc2ZwY2NVd3AwejVN?=
 =?utf-8?B?YU4wTm1TMHlpdm9NWFV5OW8yUy90bFYyU1VUVXhaZ3RFZ056ZWFkZnpUdXJW?=
 =?utf-8?B?SEdZZXluTUtqQlczbEVKclNDUWNzK05qWlgvd2ZFM1ZzR3VyRTA1VXZEeUY0?=
 =?utf-8?B?RDU0enNhbWREaEdZdmVJSWNubFFRRjdBdUt1L21jVkdkSVk3Ty90UG1ldlo1?=
 =?utf-8?B?Z3lWWGJiSkVaaFliZFpRZ1p6bzNRQWkwb1BSbWZmWDVNRmZSbnlhbUt2UE9V?=
 =?utf-8?B?U2IySkk3OUdWSEI5cFpFMWovdjVoeTNkQlVOb2wvclE5NGsycGxWWEh6SzVt?=
 =?utf-8?B?SGpTMENxZVNuRGQ3dExFTllOQUNDcURqSnl4bHY4eTVTMHg3Z0gzZ3FrZEwy?=
 =?utf-8?B?bk45Y0x2anRUaXdWVnp0NHlkOVdjOExkVEl1YXhJU0hsK3dxVzVUSDVZUVU4?=
 =?utf-8?Q?+2QfX1hyItGYJJzp1ld5YL00J?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f73bd08e-b6a4-4aa4-2a69-08de3722921b
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB8322.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 12:57:55.4157
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: fqeINo5WrH2zStibhlmaJyPPs2D9q+SVVX3ky6tcnQ1gHo6xbeb4/wVRQk9mktYZOX9hd+AYsloWbAN8XXo7xw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR03MB9377

On 12/8/25 14:24, Jan Beulich wrote:
> On 05.12.2025 21:36, Milan Djokic wrote:
>> Return -EOPNOTSUPP when XEN_DOMCTL_set_access_required command is invoked
>> while VM events and monitoring support is disabled.
> 
> This is more bounded than the pretty wide subject. Taking the subject and
> considering there are other VM_EVENT related domctl-s, is this one really
> the only one in need of adjustment?
> 

I think that others, like monitor_op and event_op, already return 
-EOPNOTSUPP when CONFIG_VM_EVENT is disabled. I will check this, it 
could be that I missed some commands related to this context.

>> --- a/xen/common/domctl.c
>> +++ b/xen/common/domctl.c
>> @@ -787,19 +787,22 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>>               copyback = true;
>>           break;
>>   
>> -#ifdef CONFIG_VM_EVENT
>>       case XEN_DOMCTL_set_access_required:
>> -        if ( unlikely(current->domain == d) ) /* no domain_pause() */
>> -            ret = -EPERM;
>> +        if ( !IS_ENABLED(CONFIG_VM_EVENT) )
>> +            ret = -EOPNOTSUPP;
>>           else
> 
> If you convert this to
> 
>          else if ( unlikely(current->domain == d) ) /* no domain_pause() */
> 
> then ...
> 
>>           {
>> -            domain_pause(d);
>> -            arch_p2m_set_access_required(d,
>> -                op->u.access_required.access_required);
>> -            domain_unpause(d);
>> +            if ( unlikely(current->domain == d) ) /* no domain_pause() */
>> +                ret = -EPERM;
>> +            else
>> +            {
>> +                domain_pause(d);
>> +                arch_p2m_set_access_required(d,
>> +                    op->u.access_required.access_required);
>> +                domain_unpause(d);
>> +            }
> 
> ... the need for re-indenting disappears, and we get away with less churn.
> 

I’ll do that, thanks.

BR,
Milan



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 13:05:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 13:05:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181652.1504674 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSxPF-0007Qr-2s; Tue, 09 Dec 2025 13:05:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181652.1504674; Tue, 09 Dec 2025 13:05:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSxPE-0007Qk-VW; Tue, 09 Dec 2025 13:05:28 +0000
Received: by outflank-mailman (input) for mailman id 1181652;
 Tue, 09 Dec 2025 13:05:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2qC9=6P=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1vSxPD-0007QX-GO
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 13:05:27 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ba176f68-d4ff-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 14:05:25 +0100 (CET)
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com (2603:10a6:20b:509::16)
 by DBBPR03MB7084.eurprd03.prod.outlook.com (2603:10a6:10:207::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 13:05:22 +0000
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb]) by AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb%5]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 13:05:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ba176f68-d4ff-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=L0igy82zBHoF0swnnXo/XP6rQ1XvPnpmBX1VzSA16wE+dH2abSbuJTylLbcS/rnWkCdCq2FMyQnbs5+qvCAM2UQvg7j3xE7GWFVJ/3Dg+FXFVB6tZJaU5jI6fzw571AyFh189jmfPTzSK9qBzxyza44Swhx59OdUzJCMoKOEcqT1pK1aCKMDISlWFIfu6ZDCFBqkf83l1ZQ/052ub0sbfUWFgqOIZgzkN/x1Uxfaq9ovbdBNniSbJ8o8BFfzEQ2iEiqwHpJmCm63QjpIQgjHL1Ifyj1FXpTtD6ZVw80cUsiFsT+N7hPuQQwie5bmVrcA3GJ06tJCF3eRAqA8nMbGIQ==
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=/kFEARygEVgtismNz/youeB9N5GMG8Y2r7IzauzXu6M=;
 b=N4Ly9DtUx1T/oNNdgULQmGqA2WVPslS9FiLMw1SrTUxxHQNNtFZyAKGjXZgzMYODoct/kN3M2iHdRR65/aR/lwLsTPr/kX2yEkPFO0oCZ2TbUsy7XjcyTysJ0W2kCfnIlOT8P/fgosmHEl4FkR1JhWg9hP17nkin98sSIJJ2be27Srktv8n6pEkuqFMbMgf0AaDu5VE4032sLDSHFHYqBbshEjaPmXQ8lueLBIkoZrRAQY6E+zbfJ9EzgoYbc7c72iWFfMgwhdeZtnoW+cjdFV9RojLybY8mEn5cEw12MNZMxA9nq8rNzUxsYEFQcP+0d3VSW9B4iiTe+xv0VLMMyA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/kFEARygEVgtismNz/youeB9N5GMG8Y2r7IzauzXu6M=;
 b=d6vSDLBfS2PzznK9SoCaY0ff17kXRBJWQPf/7kLVmWISos/EUxi8BrjJ9D4gb7+nmdQTUo+1NIdah7jzsrsU6F30SORbajVSstgE9hCvaOc49GwVSOszmMvT5YXpIQVKY/2n5yoFiAMNNlzEWTUlQpG89psXYuB/Y2nBvhEvdHhXRbtV8YB5glmW8hdEPMgihY28ehTe9dGeHG3ArtQ09EZSmN0Jdqx1vjNsPJY+yKlVEoBBcP4g05R2LFYk/0VmbLpX2aHupKhc2fv1VfeiQYk09zDkqQHa08ljqP4Axnr/rg2WYM4JQ2+7EclUh10aUWpxWttiDaNwHDyHP2zTYQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <4c9a2cd0-e466-4737-a750-73b811c06ab3@epam.com>
Date: Tue, 9 Dec 2025 14:05:21 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] sysctl: align handling of unsupported commands
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1764961645.git.milan_djokic@epam.com>
 <6c7cc11e3569f69b185d32809d63b8cdca67aa25.1764961645.git.milan_djokic@epam.com>
 <ac0b7706-ceb4-49c0-9147-250055b4cf6a@suse.com>
Content-Language: en-US
From: Milan Djokic <milan_djokic@epam.com>
In-Reply-To: <ac0b7706-ceb4-49c0-9147-250055b4cf6a@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: VI1PR02CA0050.eurprd02.prod.outlook.com
 (2603:10a6:802:14::21) To AS8PR03MB8322.eurprd03.prod.outlook.com
 (2603:10a6:20b:509::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB8322:EE_|DBBPR03MB7084:EE_
X-MS-Office365-Filtering-Correlation-Id: 0d18dc20-9a22-41e5-9cef-08de37239cab
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?S2M1ejdxclRMVituOEVpUXd1MkY5dFJnR3c2OGdmWFBld2FiejkyOEUvT0Y0?=
 =?utf-8?B?UkIxRVlSS08wU3AwNzZ2SDI0ekdWZ0ZnNzdYVE9OL2J1Q0pSNTBIakpuV1NK?=
 =?utf-8?B?UUlZdmNRcHk5WU9PU1lhbDN1RVY5Y1Bhbm1ITmpiZGhGc3lPZjdyNW8veElU?=
 =?utf-8?B?Qzc3YXBFTUpjQmJUYVQrN0tTMmJPeHAvWlBqL2FCV1hHWmpYTHVaek40RlQz?=
 =?utf-8?B?ZnFDOEI5VUhHNmRKM3g1YWdUWVlpTTFFSWVzMGdKQ21ldDFqRFMxdmxpd1pv?=
 =?utf-8?B?MzdJKzBnUUEzOC9vU1pvYW11bUlLNUR3SDAxdXorTnplWE9XTVR6dklob1Zs?=
 =?utf-8?B?bUFYK2s1Vm9qVmtORkJub2x0TmNTN0hmVUtOU0lyL0hqZ3BFQWR1MVRVdWZR?=
 =?utf-8?B?d0ZjTXJENVpIejJNQmt0VmZtV1lUS1k3ZGJTcWZBekZQM3hJNWhZamc4T1Rj?=
 =?utf-8?B?b3ZSN09tcjlqKzF3TlBlM2hpTlU1T1lpR3hXb2hPbTlBUWY0cHk3aEJQbllS?=
 =?utf-8?B?SS9VNnBQaFJVZlZuUGtzSWhWVUdweUJHSUdpRG9za1RIMGdIYW5CMzhVN1JD?=
 =?utf-8?B?Mm9YSlJ5ai9qN3RHeEpNM0h5Y1NpNXMzR3cyUGhkS3NiSGgwNExyZDNoaHRz?=
 =?utf-8?B?Y0hYaEFOeWp4OUNjenlJR3dtVkNVeW93ZUN6Ky9wcVVwTDlEYTVDTkVnR0k0?=
 =?utf-8?B?OEx3VHc4ZzBvQmVUMURjTGU1SW11U2syM0ZIR2l3QjB5eHVoSnZVckhvT0lU?=
 =?utf-8?B?dWhEbENYdkJNV1gvQ1JsUFRRMzBMQ3ZYcE04S0ZZOGMzN1JYQ0dTaEQwOVJp?=
 =?utf-8?B?aUxyQXE5M0xCNEJKZHhoMFM0d1hDQUFaQlpRMDFIaVVzS21hTmdhNExrZlFB?=
 =?utf-8?B?RTA1K1lHZTk0cXBuY1FVWWlGNml0bzZPUkV1TzBCdHRaa2JkYkkwNFQreVZl?=
 =?utf-8?B?bm9sRVFCZ3dQVktCUkJtUkNNeWcvVWVES0VOZ0RMcmFwSUsvT0V5WkpzZTJp?=
 =?utf-8?B?RC9ya29VZWJzRElwNnVaMEFGRFE3ZTFvL3JReUFQZDFQTWVXelQrQ043b1Jq?=
 =?utf-8?B?ZmFqaVA3WmJITUR3V0NuYnk5bjY2VG1RU0Q2Mk1SWXNhQWlMZ2lxM1NUdVll?=
 =?utf-8?B?Wll3SGtxRjVheGY4OGJ1UXN1OGZ0cm9MUTRyNFE3dVA0eS8yZk5EakREZVd1?=
 =?utf-8?B?ckllZUxwMjdNU1hKYU1VNnpsalFJZWx4Zk9HL0ppSDJEYXRpYzd5bENiWW9n?=
 =?utf-8?B?ODFyN3N1a0s4M1FEMlhDa2VwVHNCMjZoSm9mWkh1cnQ5SWxzZzNJTDN3MWJ4?=
 =?utf-8?B?ZTVUcHV3eEpwOHBYQ2k1enZHMW8ra1RsSmlFZUxNb2pzWmZlYmlRNTFEWDdK?=
 =?utf-8?B?endCQkprNHNQRHBTeElWRjBReHQvajJJVUNtRitMQUM2T3ovQ2V3SFVJejMw?=
 =?utf-8?B?OStQTnIrOGhiRzVCeFlZeWtXbXhYbTI3RWFOaU9MdU1kc1JoWjJkamtZOEFZ?=
 =?utf-8?B?bFJKTC9sUXE3Uk9WKzVqMHdsMk9Zb3QrVHJJSE1QRjQ0RTdOZDc2czMrTTdC?=
 =?utf-8?B?OW4yeHpQYnBlbGJhdUFvUE1QVFVJTjR2TnhETW80OXNPUTJuTXVLV2RnTXdD?=
 =?utf-8?B?SnZzdkFCbGF2T0pUenhzL1ZrRG5Da1l2enE4Y2RXS2YzdWhCY1ZMeEVpeWJZ?=
 =?utf-8?B?RGlXbytwcGdDbEVDQmtIWTBkVk56N1F3YmtVWCs1TVpWZ0JkaFA0WFpRWVlz?=
 =?utf-8?B?TWNHWHJyUjhtUXRBM2RRSWRPT2piSytyQUt3b0ZHQXRLbGptNEJtYm5mY1Q2?=
 =?utf-8?B?Ukt3N3lkVEV0elZTeVFNRitNS1RpQjZWQjIzclhaKzZ3TmhsTGdSd1I2YjYx?=
 =?utf-8?B?eXhxcDBaTzFIWC84Nng0aUxEVkdMNmNuUWcvdGxVd1Z6YzdNL3hVN21NcWVu?=
 =?utf-8?Q?ps+b8hRqIXIELry6ol+E27k14QloBUdh?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB8322.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?R3dJbW5jSTNSLzZ1KzNGSnBvaVF1K1puMzhUNlFFYnJlRUM1akcxalJ1NFhL?=
 =?utf-8?B?V2ovV3Jmd2xBa1VXSjdFb3J2aGFXdjVGS0dSbTczUngwYmhBNHl1b2dJSXdv?=
 =?utf-8?B?bmI0Q0FXK3VkTmp1ZGVyMmRYWE5IdlRMYXVobWp2azRqamlWOEIrR09idElh?=
 =?utf-8?B?WmFvSU13RFIxQm05UEF1YU5KTTQ3QjNKdG12aDVaSlltb1N2SFlTM2ZPSUNV?=
 =?utf-8?B?N1VwUWt2VXdQY1BMWDBMcVB2ekZ0WHJtUCtSS1VyVUpTRmdmbUhuK24zVlpq?=
 =?utf-8?B?Ymt6MnhhQnJSN1FYWTNudWZ3enNYaWNLczB4QUdjcC92aFRjbUN5VTc3Rmts?=
 =?utf-8?B?bHlkQmJZN280LzZib3R1NmhRL2g2YldSZHBuRDE0cUpqQWtGbDE0RnArUUpH?=
 =?utf-8?B?cnhqSWtYMlFoQ3JCdGZNT1d1c2dGWlJSU1A0QjJoVDQrOXJ6cWJNNy90Smp1?=
 =?utf-8?B?TFQ4OU9vS2ZBREE3UHRENUx3YTB1aTFCdXVDS080TlgwaHhCeXY0czk4MWZz?=
 =?utf-8?B?YzRFK3c4dVpDWUowUm1PeWpoQkxyWlNXOVArMEhjcS9JbXdLWlhBOWZkUDNF?=
 =?utf-8?B?dXZPbjNaZGlEWU82cWkxeEhNNHdrZ09TQWdTRlMrQlhqMExzaVN2STJ0dmRv?=
 =?utf-8?B?d29BdHBRMkYyL2NZa2xleUsyNFBlcjlWYzk3elBBeGQrUHA5bkdzSnJDZXV2?=
 =?utf-8?B?UnFqNUx5cCtvS3FlV0N0UXYwVzZleURFUnVObThSbGFoMFJLOXJhcUxqdGs1?=
 =?utf-8?B?aERPV0lUZ1VTYWZWVE96amI3Y2IvUnUxc3Uzemk0WndHd0R6ZGRIeGFSU01x?=
 =?utf-8?B?NFEycFhCVWlVV2daRFpWREpwMDY1UjNiL0l5MzNDellxTElJVGx2SDhVUVly?=
 =?utf-8?B?bVFmNmpmODY5L2ZsWFZPWXhrWTBmcGlTYlNlWUljc3lWaGVTUUZGUWk5NFVr?=
 =?utf-8?B?cDRFTWRBNjBQbE41dG95VXE3cVRWZHp6L0hFK3JFWmswcisraVNmRGpLV2JO?=
 =?utf-8?B?SVRPSmUrQXpDbHNjWmlVMGI0MlVJYlFDbGZRS05uRlNMaTNQWXp1dytHeC9Y?=
 =?utf-8?B?K28vRnNKNGsvOUNmbXJZSmR0VmlhUkNHQk5oTmxiYytGNTU3NXo3dzZ3bThX?=
 =?utf-8?B?ZEtYemkxMFZjK0VrM1dOMW9PQUlsSWdoS1FnK1FDUjBHRmxCcjRSNDd2Rjh5?=
 =?utf-8?B?UkdIcFFmNEIzNmtPY1pqdUpMUERxQ1BkbEh5K0xEVmpBeWFSNElmM3JGcjlR?=
 =?utf-8?B?Y2dRdU9BOXJJZ3JMT1Q0eGVGNW01eHpnNEVkekxHbEM4eG9Xa2pFSGJ2NDdV?=
 =?utf-8?B?NVdPYUUxOEQ2RENsbEZQdkJ1UzVidVVlRkF1amo2aTMwb3lWeTE0Rmp3R2dC?=
 =?utf-8?B?ZmdMWnB4Y1hLdWVvdnVJNmpuaFRzZTV1RHhpeDE0OUVqQllrTTN4eFF5UnhL?=
 =?utf-8?B?TC9QWEh6eW9YYXJNNGZENnQwTmFld29XMDV5Qk9wR0JCUVc2dThRMTgvZTBU?=
 =?utf-8?B?amR2RkNNdFpJVVl3ajJ1ZEZOMGo5MUUzMC83Tkd3ZFNMVEU0NHRWaUU5SkUy?=
 =?utf-8?B?dHdpWmRuYUdkbExTcnNGTWVnWUlkbi9nMzlhZ0JFbDJzOWtuc1ZvOU9aV1VE?=
 =?utf-8?B?cUtwUkpRNjhXUVg4U09HdmVMczhZbmViYUhDZlU2NUJ0YlMzcllHWUxua3Fp?=
 =?utf-8?B?eVRtVEhSYzBEcFZCcmd3MUJHWXlBRDEwMXdRUVJvT0FqVnJEdGxpNkdEUFF5?=
 =?utf-8?B?Qk5FLzBpVzNZdVBnVzg2bXZiMTI4bzBqTGFzK2psOGhGWTRBZzN0RlF1YkRi?=
 =?utf-8?B?TzEyRVRFa01GNU5xbDI4bENoVHRmQXVyOXZFaFltcnJzcmUrbDFSaDhOTTE4?=
 =?utf-8?B?SVBRQWgrbUh1RkFWaFRqYWtSQktIdjR4eTBkajcwQzN1c2Rmd2ljZ2M2TW16?=
 =?utf-8?B?RzVXRVpyQXYwZG0yVnBMZHNJSHREWVIvZnRkNU5vTnZFTy90MjAxV0JOKytz?=
 =?utf-8?B?MTFodVdnNFRCdGRVVTkzclRMeUtIRlZWYTNuWWdZK01XdUdaNzkwSWdwNndp?=
 =?utf-8?B?UFJBRHM5NDdKU3YvUkxWSUdjYm5yc2pyaXFQSXNnWTJLdmFtL01jWHArcU4x?=
 =?utf-8?Q?gX9aOGStMF4WwGiagZ5adaZCO?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0d18dc20-9a22-41e5-9cef-08de37239cab
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB8322.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 13:05:22.6835
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: VNus2UW/0onGtSW2orSaozR5QZ3jRCTomw3bGLmEsg80pjxNvb39LgExQm0AVL6k6Eqx2Yoc7VJVxGA+U/B8KA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB7084

On 12/8/25 14:32, Jan Beulich wrote:
> On 05.12.2025 21:36, Milan Djokic wrote:
>> Handling of unsupported sysctl commands currently diverges: some commands
>> return -EOPNOTSUPP, while others fall back to generic -ENOSYS.
>>
>> Unify the behavior so that unsupported commands consistently return the
>> appropriate error code, allowing the control domain to correctly identify
>> unsupported operations.
>>
>> Using IS_ENABLED() macro to identify disabled commands, allowing
>> dead code to be removed at compile time.
>>
>> Signed-off-by: Milan Djokic <milan_djokic@epam.com>
> 
> Overall quite okay imo, yet there are a number of small issues.
> 
>> @@ -170,19 +173,22 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
>>           op->u.availheap.avail_bytes <<= PAGE_SHIFT;
>>           break;
>>   
>> -#ifdef CONFIG_PM_STATS
>>       case XEN_SYSCTL_get_pmstat:
>> -        ret = do_get_pm_info(&op->u.get_pmstat);
>> +        if ( !IS_ENABLED(CONFIG_PM_STATS) )
>> +            ret = -EOPNOTSUPP;
>> +        else
>> +            ret = do_get_pm_info(&op->u.get_pmstat);
>>           break;
>> -#endif
>>   
>> -#ifdef CONFIG_PM_OP
>>       case XEN_SYSCTL_pm_op:
>> -        ret = do_pm_op(&op->u.pm_op);
>> -        if ( ret == -EAGAIN )
>> -            copyback = 1;
>> +        if ( !IS_ENABLED(CONFIG_PM_OP) )
>> +            ret = -EOPNOTSUPP;
>> +        else {
> 
> Misplaced figure brace.
> 
>> --- a/xen/include/xen/perfc.h
>> +++ b/xen/include/xen/perfc.h
>> @@ -92,7 +92,6 @@ DECLARE_PER_CPU(perfc_t[NUM_PERFCOUNTERS], perfcounters);
>>   #endif
>>   
>>   struct xen_sysctl_perfc_op;
>> -int perfc_control(struct xen_sysctl_perfc_op *pc);
>>   
>>   extern void cf_check perfc_printall(unsigned char key);
>>   extern void cf_check perfc_reset(unsigned char key);
>> @@ -114,4 +113,7 @@ extern void cf_check perfc_reset(unsigned char key);
>>   
>>   #endif /* CONFIG_PERF_COUNTERS */
>>   
>> +struct xen_sysctl_perfc_op;
>> +extern int perfc_control(struct xen_sysctl_perfc_op *pc);
> 
> Why would you move the function decl, but duplicate the struct forward decl?
> 
>> --- a/xen/include/xen/spinlock.h
>> +++ b/xen/include/xen/spinlock.h
>> @@ -7,6 +7,7 @@
>>   
>>   #include <asm/system.h>
>>   #include <asm/spinlock.h>
>> +#include <public/sysctl.h>
> 
> Why would this be needed? It means effectively the whole codebase gains a
> dependency on this header even when DEBUG_LOCK_PROFILE=n. Yes, you may
> need ...
> 
>> @@ -40,8 +41,6 @@ union lock_debug { };
>>   
>>   #ifdef CONFIG_DEBUG_LOCK_PROFILE
>>   
>> -#include <public/sysctl.h>
>> -
>>   /*
>>       lock profiling on:
>>   
>> @@ -164,7 +163,6 @@ void _lock_profile_deregister_struct(int32_t type,
>>   #define lock_profile_deregister_struct(type, ptr)                             \
>>       _lock_profile_deregister_struct(type, &((ptr)->profile_head))
>>   
>> -extern int spinlock_profile_control(struct xen_sysctl_lockprof_op *pc);
>>   extern void cf_check spinlock_profile_printall(unsigned char key);
>>   extern void cf_check spinlock_profile_reset(unsigned char key);
>>   
>> @@ -360,4 +358,6 @@ static always_inline void nrspin_lock_irq(rspinlock_t *l)
>>   #define nrspin_unlock_irqrestore(l, f) _nrspin_unlock_irqrestore(l, f)
>>   #define nrspin_unlock_irq(l)           _nrspin_unlock_irq(l)
>>   
>> +extern int spinlock_profile_control(struct xen_sysctl_lockprof_op *pc);
>> +
>>   #endif /* __SPINLOCK_H__ */
> 
> ... a forward decl of struct xen_sysctl_lockprof_op; I don't see what's
> wrong with doing just that.
> 
> Jan

I’ll correct these mistakes. Thanks for the suggestions.

BR,
Milan


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 13:08:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 13:08:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181660.1504683 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSxRw-0008Eg-G7; Tue, 09 Dec 2025 13:08:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181660.1504683; Tue, 09 Dec 2025 13:08:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSxRw-0008EZ-D9; Tue, 09 Dec 2025 13:08:16 +0000
Received: by outflank-mailman (input) for mailman id 1181660;
 Tue, 09 Dec 2025 13:08:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=sSjK=6P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSxRu-0008ET-Iu
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 13:08:14 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1d83feb0-d500-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 14:08:12 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-42e2ba54a6fso1907124f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 05:08:12 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d222506sm33659189f8f.28.2025.12.09.05.08.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 05:08:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1d83feb0-d500-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765285692; x=1765890492; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pMiVUzm8asTDH+CVtzYaOPE+6g1fAOaVu1cBSl+DPY4=;
        b=cS3YolBzUwghkOodWo9Lp3FohOcTNT+TcMYpL4x2RRKRG1qf3dicvBFdFynxs1Pb3n
         m8x2RYURZnRTvUW1vF/yfyS75JhUPAb4mqPyM8Pveme8NaVZTpL+rvgLzLOJXJ/uTEgC
         PiaP5YgD/srRRqmD0Uf3YeVrXkz9t6PCiONw6Du5qGVM2fXN1dxYbNjHW04aTR4jfV8d
         8S7MWeWXk8jE0lbBrXNcbkCH70pBKoYfkh3ycp9mXc+f7+CS33WR09yCEt5Fx4Lw+2EI
         DwsaQ4WCxm4SWjsYeJ12v6azTVoGdMoYI3XpP0Wmj+zl61wDDSk5RLP0Qbleu53nBe4U
         HuHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765285692; x=1765890492;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pMiVUzm8asTDH+CVtzYaOPE+6g1fAOaVu1cBSl+DPY4=;
        b=ap7WNw6K1vnw6GyyELUW8gaqX+xsSvZBq+ophzcQL5Wl7rVQ2tk1Vj5xPCgMBGpOZp
         2M8W7qJeM6kMXa3KgAjbLYl7MmQz3YWJmAvwQHz6QPlBu9H9DsV07UwnZZaY2omILpV1
         ZHK31egbf/LrlrjVzz3HXEJmoz55cfzwgkObcLPXY6e/4j5evp961AF3ncFekxysnKg8
         kPnfoOmkE58eDYKEs0XZObkHuqj3SD3SlGKFB3RzkNqAOq3nuv4bKckRIFOQ0YW8xsse
         SCpsyTIA397BwzmiBFjTX75eiSXYKJsr1gZHSoYcvF+MO7RmSgbVyu5albuTAJ+7n/eZ
         0lwQ==
X-Forwarded-Encrypted: i=1; AJvYcCXJFzDgLFsqACUZbqx0DMwPBO0dDLcCtvAgDPzXFi5rj8023Cy2NrMqjap4ku4HhB96RWN15wmXKvE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxn6/mMwy1R9EXkAl5diFfwCCUj/9k7UmEbYjCSKxX2yElbUEk8
	GfiMPu2yUj/qjHk4+3uGKOQbKDW2ZPuQtDlKIt7V+P4IlPIBBY9prxwegbeL/C3Eaw==
X-Gm-Gg: AY/fxX5+L6os/WLpUY0EGOu3JY/gdT/zGreIC5nliaDvfWysab/IW4dzRx5EiCgHOp1
	WAvVfcAB2Ldj5ifOUrusZCKP84+o9r8CnOqtoyn0w56hbR3sGqozPNPP6nFI0gP4gRzVsyiYI/8
	oWa40H0DbTWoO9UyaoE4q1EUlXrp7x+b4WE2fgukbU5xJ8YXM82ISDbShQ5RtQCS/0MwAOcfA9A
	zkv2Zeorzl+zJj8SpnY/Erm5WJHtPIAHxo5FBKcmGHLdkbz1s8DdrOVqI9azqwCZkkRf2F0ePm+
	iId8rIbEJVmx8q4BJ8gRhiNol2O/qa+JsriVoYErn9wqJjffZ/DWxc8zv1Bp3gS9SimLmeCiaPo
	pSOJeXMs/zm6yUI6sWlcysr0qFMFlEW+Lfyxn9vipKU35WHxxviZDOWdKGnsDxSrb6sc5yo60H1
	9GvaShfQZYpHzuomncqOoMHCia/cRGkFGRFY0PBOK9biVXGVcs+65TzqpJ58eiJ3RaMJs2YQZCJ
	00=
X-Google-Smtp-Source: AGHT+IFH+XZl2ULnlq0TQ77CqtWVsTgKBvaDJSspeH/H1vYPH7FfxcE3DwZmG3HGmZs/hGT0zfSsfA==
X-Received: by 2002:a05:6000:bc1:b0:42f:9faf:4170 with SMTP id ffacd0b85a97d-42f9faf42eemr1601806f8f.31.1765285691639;
        Tue, 09 Dec 2025 05:08:11 -0800 (PST)
Message-ID: <2f8eba17-2fa0-47d0-8970-dba21ccd2759@suse.com>
Date: Tue, 9 Dec 2025 14:08:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] domctl: Provide appropriate error code when PIRQs are
 not supported
To: Milan Djokic <milan_djokic@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1764961645.git.milan_djokic@epam.com>
 <b38b7b65630d1f167d1589d21556be1493c180be.1764961645.git.milan_djokic@epam.com>
 <88ab7d88-9b25-418c-bc5a-fc080c5e78ff@suse.com>
 <c2749a60-daa0-40d7-9d98-27868d37a560@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c2749a60-daa0-40d7-9d98-27868d37a560@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.12.2025 13:48, Milan Djokic wrote:
> On 12/8/25 14:08, Jan Beulich wrote:
>> On 05.12.2025 21:36, Milan Djokic wrote:
>>> When PIRQs are not supported (e.g. for arm), XEN_DOMCTL_irq_permission
>>> command is not handled.
>>> This results with default (-ENOSYS) error code returned to control domain.
>>> Update command handling to return -EOPNOTSUPP if control domain
>>> invokes it by mistake when PIRQs are not supported.
>>
>> Did you consider simply replacing the bogus ENOSYS by EOPNOTSUPP? (Assuming
>> the difference in error code really makes a difference to callers.)
> 
> Yes, this is the simplest approach. I didn’t do it because I wanted to 
> keep a distinction between commands that are part of the Xen interface 
> but not supported on the current configuration/platform, and commands 
> that don’t exist at all. I also tried to follow the existing pattern, 
> where unsupported commands are handled explicitly rather than falling 
> through to the default case (e.g. set_llc_colors, soft_reset, etc).
> If this distinction isn’t useful, then yes, I can definitely just rely 
> on a default-case error.

Before you (possibly) follow this route, maybe I should mention that there
have been discussions around this in the past (sorry, no pointers, too
long ago). IOW ahead of any consolidation (and making things consistent),
imo as a community we need to settle on where exactly we consider ENOSYS
valid to be used. My take is that almost all of the uses we (still) have
are wrong. In particular all the ones for "unknown sub-op".

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 13:10:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 13:10:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181670.1504694 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSxU8-0001JU-Rm; Tue, 09 Dec 2025 13:10:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181670.1504694; Tue, 09 Dec 2025 13:10:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSxU8-0001JN-Ox; Tue, 09 Dec 2025 13:10:32 +0000
Received: by outflank-mailman (input) for mailman id 1181670;
 Tue, 09 Dec 2025 13:10:31 +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 <SRS0=sSjK=6P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSxU7-0001J1-6J
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 13:10:31 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6f6f3b60-d500-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 14:10:29 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4779cb0a33fso74237585e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 05:10:30 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a7d6fa0f6sm38928475e9.4.2025.12.09.05.10.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 05:10:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6f6f3b60-d500-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765285829; x=1765890629; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HA3FsU1C68XXvu26OhGXA8OMdBn4esbuJPYmDzoaLv8=;
        b=IJSDO2cWkW8gat3mVGXPOPSOiFGhZYR8cAWCTws+69BiE2be34k4AAE6UQ9DJylCxh
         owQKuC4euPZpdeo89Hm20TEmfa/hYWDqrVLMkoeCI7A/MufjckHi7b6Pq3KkuYu0s3UO
         bgU/G8XVkoGUeCWA00qhzbpKxBlMT6UX/ETwFvync8kRWdtwzy1Nchge8LVjrHdW/RWF
         muD8/GG8HQAXpRHZXO1HdBkcDhASwBTnPDE9YMK7iXpPnXOVVMxMaHSgNjoGPoOrIuVs
         o8IH2ovc9HgEfSZAJsGYI0TjXhruNYaDWhKYA1YhaWbPVCWi7Rdwzs/GAaI3joXQ7Cif
         mAJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765285829; x=1765890629;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HA3FsU1C68XXvu26OhGXA8OMdBn4esbuJPYmDzoaLv8=;
        b=PAPxvuwoc9RcbtBvq7aqJRRl5Odys7Y0m0z9MtBGwFBVonR6KOW475GKbPQn2WNTEn
         OC+ovQCaAxisCUfoRrJmCfuDEbnsv96pqZv92qD888JOdr5E9Kzhy86TTTpvRLcKoozn
         Z3dTeh87lpkaHBNpGn4ooIn2tm+MY8Butq3EwTHjPpEPJUkfohwtwO/BoHk99b9pdeNt
         wZuiNmr7AvQ8ms3n8MyG8dl/F7lr6+boF9t5Yu7JZdDS19IgiIzZ29SL/lN3CcqgHXOu
         SUC3voqhYENgkWZJU7bkEuSCPqyVjfRodgOKOK+kZmYyY2vctSIyJ75rmQlaqGJ8LWl4
         y1Ew==
X-Forwarded-Encrypted: i=1; AJvYcCVzhhiz623sTWaldr7L7ej8Q+sbU+ZnAi8ffhz/jAh17C2sQoIyHeTO6Wd2sn9U6ijZQ1cXT4cDKyQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxzWZTTIRyGjRa6hjEunt/oF/p3G5mjZAigBQiVVJJjdwUgvHIg
	G8HFCauM1dcSjp2PA+gYyWGC6GlgugnCNnfjTNbpruiNUrU+QyWFFC2OE78VY7s2uQ==
X-Gm-Gg: ASbGncu3iz38Tjswmr5hAbnkBklKfbNBE3Vc7ZZJS4fBtD4UWYJshzy0c4eLiWqxKtx
	x/Kpyd7AxbKTcWTEy8qEWp6aRvUoQr4O7MEpp+cEz+vt21aJHgcLXP3UjswR97BYrAuFIIQuyKX
	Kf/hMDlEeQ3lpfO/7b6xLeto7RVmm8gfGRK7xbpITGuYIVcXE81ir3gobtT4NuYyDAVKoSfOWpw
	xSpbXcrQ9cij77IJH8MGZHv9LK49W/CTNYGDx+gQcKb66JWv/w2em9DpO2LI+U8bGrRcgdEFw85
	3m/F5OPEBgUHjiyS8Ry3DU76UOc3C0/IW5YBGX/JGwwA7jDC88mFaCLYAttnsF4i17LNEZ1dt2Z
	dAiBbbXn5kBuBDJfTOniN0K+jHRsT/kDxFwuYNLdP6JSU5hrrLdJ14NX5mv25k5snQwD7RRPR6G
	py+Pm/LbORTLyg5v+GSVxIrJNldmBXAV4/E0TCEL7/qkIjq/Uhz74s0DRx0UHyp2zEUMlUg2RhF
	Ms=
X-Google-Smtp-Source: AGHT+IFn3ByWj22LbrrkHtGuFUFZRdTaG72UeJuwXlKrWry1B9n4728g5eQXGmZcIis2wgWQXeyl9w==
X-Received: by 2002:a05:600c:a013:b0:477:9ce2:a0d8 with SMTP id 5b1f17b1804b1-47939c8bc7dmr127482135e9.0.1765285829365;
        Tue, 09 Dec 2025 05:10:29 -0800 (PST)
Message-ID: <e5f14ae4-da8f-4897-9cb5-99fe40ed28ca@suse.com>
Date: Tue, 9 Dec 2025 14:10:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/3] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <20251128152218.3886583-1-grygorii_strashko@epam.com>
 <20251128152218.3886583-4-grygorii_strashko@epam.com>
 <c9ee4fc8-44c6-43e8-88eb-9041c51aed16@suse.com>
 <d025e3dd-ba2a-4a9d-af37-37570e690aee@epam.com>
 <a3dcfce1-4695-4064-a1e3-af09bfa04199@suse.com>
 <f0da7ce3-1846-4865-8e66-bc3e50f78390@epam.com>
 <85cdb866-0be2-4204-b106-f66e2b15f841@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <85cdb866-0be2-4204-b106-f66e2b15f841@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.12.2025 13:44, Andrew Cooper wrote:
> On 09/12/2025 12:24 pm, Grygorii Strashko wrote:
>> On 09.12.25 10:59, Jan Beulich wrote:
>>> On 08.12.2025 20:21, Grygorii Strashko wrote:
>>>> On 08.12.25 14:44, Jan Beulich wrote:
>>>>> On 28.11.2025 16:22, Grygorii Strashko wrote:
>>>>>> --- a/xen/arch/x86/pv/domain.c
>>>>>> +++ b/xen/arch/x86/pv/domain.c
>>>>>> @@ -254,7 +254,11 @@ int switch_compat(struct domain *d)
>>>>>>                goto undo_and_fail;
>>>>>>        }
>>>>>>    -    domain_set_alloc_bitsize(d);
>>>>>> +    if ( MACH2PHYS_COMPAT_NR_ENTRIES(d) < max_page )
>>>>>
>>>>> You mention the change in condition in the revlog (but not in the
>>>>> description),
>>>>
>>>> The updated chunk was based on snippet from Andrew [1], which
>>>> used incorrect condition - I've changed it and noted in change log
>>>>
>>>> [1] https://patchwork.kernel.org/comment/26680551/
>>>>
>>>>> and I'm having trouble to follow why ...
>>>>>
>>>>>> --- a/xen/arch/x86/x86_64/mm.c
>>>>>> +++ b/xen/arch/x86/x86_64/mm.c
>>>>>> @@ -1119,26 +1119,6 @@ unmap:
>>>>>>        return ret;
>>>>>>    }
>>>>>>    -void domain_set_alloc_bitsize(struct domain *d)
>>>>>> -{
>>>>
>>>> The domain_set_alloc_bitsize() inlined in  switch_compat() and x86
>>>> PV domain
>>>> always created as 64bit domain.
>>>>
>>>> At the beginning of switch_compat() there is:
>>>>
>>>>    ( is_pv_32bit_domain(d) )
>>>>           return 0;
>>>> [2]
>>>> above ensures that switch_compat() can be actually called only once
>>>> (at least it can reach
>>>> point [2] only once, because there is no way to reset PV domain
>>>> state 32bit->64bit
>>>>
>>>> this is original condition which says:
>>>>>> -    if ( !is_pv_32bit_domain(d) ||
>>>>
>>>> do nothing if !is_pv_32bit_domain(d)
>>>>    - for inlined code is_pv_32bit_domain(d) == true, so
>>>> is_pv_32bit_domain(d) can be ignored
>>>>
>>>>>> -         (MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page) ||
>>>>
>>>> do nothing if (MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page)
>>>>     - inlinded code should proceed if this condition is opposite
>>>>       (MACH2PHYS_COMPAT_NR_ENTRIES(d) < max_page)
>>>>
>>>>>> -         d->arch.physaddr_bitsize > 0 )
>>>>
>>>> do nothing if d->arch.physaddr_bitsize > 0 (already set)
>>>>     - inlined code will be executed only once, so
>>>> (d->arch.physaddr_bitsize ==/!= 0)
>>>>       can be ignored
>>>
>>> This is the crucial point: It being executed only once isn't spelled out
>>> anywhere in the description, and it's not entirely obvious why that
>>> would
>>> be. Yes, nowadays it is. Originally (iirc) one could switch the guest
>>> back
>>> to 64-bit mode, then again to 32-bit.
> 
> I changed it in 02e78311cdc6
> 
>>
>> I'll update description.
>>
>> Or can add it back as !d->arch.physaddr_bitsize to be safe and avoid
>> confusions?
> 
> Please update the description.  The function really is singleshot now.

+1

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 13:12:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 13:12:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181682.1504704 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSxW5-0001uj-Ca; Tue, 09 Dec 2025 13:12:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181682.1504704; Tue, 09 Dec 2025 13:12:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSxW5-0001uc-8T; Tue, 09 Dec 2025 13:12:33 +0000
Received: by outflank-mailman (input) for mailman id 1181682;
 Tue, 09 Dec 2025 13:12:32 +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
 <SRS0=R9j7=6P=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vSxW3-0001uG-T8
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 13:12:32 +0000
Received: from mail-oa1-x30.google.com (mail-oa1-x30.google.com
 [2001:4860:4864:20::30])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b68df554-d500-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 14:12:29 +0100 (CET)
Received: by mail-oa1-x30.google.com with SMTP id
 586e51a60fabf-3e7e57450ceso2110184fac.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 05:12:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b68df554-d500-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1765285948; x=1765890748; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HF30LrYtBxATdvxLtSIZCj1YWV3zgVTlbfbBmemMczs=;
        b=EIvHphDczrBHMPDolYzwy7YS1hMsvS1L6Df5TpYQYUmTZ4bkkArdcMmbcj3C5dxP4I
         EwBJoToeofctbuosjEqqRIGfZEmnBy/zWe4R/oGMoomWw+oCro/+wEFtfOXX1xLPKyTy
         XUkY96dG2swGYx2NqT9N9whUvcDwuIYFqJ8bUQGgegXQQGweTvHLW7XSYYiqF6WEdR4V
         eSDb3prB8CVSQTVcn+pi9iqGNyjWDPFhLtItub7phRWu8Oc6zkPYrCeQJ+m33NG13WkF
         ccgxEoANr/yBR3U+YEOJpLejYWXIe/A5ja5i4XBoqmMseEXD+iMlNc1DQRfSqzYj0vaX
         hx1g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765285948; x=1765890748;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=HF30LrYtBxATdvxLtSIZCj1YWV3zgVTlbfbBmemMczs=;
        b=qeT2Flm6Jf7fhNLVauiQwzdCuVOzbyoBNwSBRMUOvZGD6ZGZOhjJQvuGlhSdB0muxc
         GGQRhOu2F7Ys2pwdDlWUG5rKJaqhbq7CMWcJUoZvRkRt16/PU1Jkoa5RR94s7SWl9k+Z
         ui4F6nU3KH6tXqn6FzAf9VHRqPoWwCFh/OtwSuWnFfqdgD5qtUNIGIHl6CPx6RNTp2aw
         DRWY0Kaph6OiPlxbl7YH2g8HjYJ9Gk1D/FbCCAWTTEhqA7AsXJLLQTuBAorr79q6raxG
         Fo92CXoJLFuCXRoowZ9DsYm+mEultf6WHVyD52o++rm4+R63woYPeOWL52IFDuutISs/
         PkrA==
X-Gm-Message-State: AOJu0YxyWBewTgOjVNwg7p3H2YLDiYj88ObmhdyjIDeNoWM+guKjgUZj
	0W29mY2EQ0t7m5NNcsNpbRrHh5T3ku3KwYq20tNU32twhTyPrHHUT7afgS+48CgH4cF+QyGHKoz
	+RANw/sSBtTOBHVj6dXbkj6MCGYdpmYQsm7Zz+m6GUQ==
X-Gm-Gg: ASbGncus8VnwOA2Fdje4nqzHbiFUhy/trf3soSM9+ho69AvwOJ/owo81/eRI8eO46AL
	I+iMugJCei5Z1d2ci4G9gSJQVv5GsKKIlv548/Vm0dsupCgQuiezuvypcKgi4j9djdWomQQVltg
	IxLvecvNuyKXCL6/ljztJXckcKQhG/gmNmy28pJPoG05tvx3g6IIv/X5BNxHomS+NcD3CZpmIsa
	NfqQC12t9O5MjEbM/cjUcegGgpNGO0tTas3+OBEE9LKeFkYLtcWKDejU+pXFiJeUd0EaD8wD8nf
	TYALZldWi/7G5J8Td6RwGHVc75kGeGCUBXD69vwaS3KZU2V1lkc/YCBKrKQKoA==
X-Google-Smtp-Source: AGHT+IGZZclFGNOhOsL/fSUx+lpNlJbIsEr/aSSh1hspWxX+qXZD75E0puGJfXg57jsgZr3ElxklU/h0zW2FF55UpvI=
X-Received: by 2002:a05:6870:3412:b0:3c9:895a:d9ec with SMTP id
 586e51a60fabf-3f543ef60f0mr5170785fac.17.1765285948256; Tue, 09 Dec 2025
 05:12:28 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764930353.git.bertrand.marquis@arm.com> <491f62ede43a7a135327fa68afe9a648fde1dcba.1764930353.git.bertrand.marquis@arm.com>
In-Reply-To: <491f62ede43a7a135327fa68afe9a648fde1dcba.1764930353.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 9 Dec 2025 14:12:16 +0100
X-Gm-Features: AQt7F2rBr8ZRUFieO0G-GfERXiiCpmKYG-ptldU6eMNcF0PGkFjM29f7cUXsa74
Message-ID: <CAHUa44Hhp_gnjbBxMfOkUJ_HGzS+9VFhYm--pK-OtU=RKqqRsQ@mail.gmail.com>
Subject: Re: [PATCH v1 05/12] xen/arm: ffa: rework SPMC RX/TX buffer management
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Fri, Dec 5, 2025 at 11:37=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Rework how Xen accesses the RX/TX buffers shared with the SPMC so that
> ownership and locking are handled centrally.
>
> Move the SPMC RX/TX buffer bases into ffa_rxtx.c as ffa_spmc_rx/ffa_spmc_=
tx,
> protect them with dedicated ffa_spmc_{rx,tx}_lock spinlocks and expose
> ffa_rxtx_spmc_{rx,tx}_{acquire,release}() helpers instead of the global
> ffa_rx/ffa_tx pointers and ffa_{rx,tx}_buffer_lock.
>
> The RX helpers now always issue FFA_RX_RELEASE when we are done
> consuming data from the SPMC, so partition-info enumeration and shared
> memory paths release the RX buffer on all exit paths. The RX/TX mapping
> code is updated to use the descriptor offsets (rx_region_offs and
> tx_region_offs) rather than hard-coded structure layout, and to use the
> TX acquire/release helpers instead of touching the TX buffer directly.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes in v1:
> - modify share_shm function to use a goto and have one place to release
>   the spmc tx buffer instead of doing it directly in the if error
>   condition.
> - fix rx_acquire and tx_acquire to not release the spinlock as this is
>   expected to be done only in release to ensure no parallel usage.
> ---
>  xen/arch/arm/tee/ffa.c          |  22 +-----
>  xen/arch/arm/tee/ffa_partinfo.c |  40 +++++-----
>  xen/arch/arm/tee/ffa_private.h  |  18 ++---
>  xen/arch/arm/tee/ffa_rxtx.c     | 130 +++++++++++++++++++++++++-------
>  xen/arch/arm/tee/ffa_shm.c      |  29 ++++---
>  5 files changed, 153 insertions(+), 86 deletions(-)
>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 497ada8264e0..43af49d1c011 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -48,8 +48,8 @@
>   *     notification for secure partitions
>   *   - doesn't support notifications for Xen itself
>   *
> - * There are some large locked sections with ffa_tx_buffer_lock and
> - * ffa_rx_buffer_lock. Especially the ffa_tx_buffer_lock spinlock used
> + * There are some large locked sections with ffa_spmc_tx_lock and
> + * ffa_spmc_rx_lock. Especially the ffa_spmc_tx_lock spinlock used
>   * around share_shm() is a very large locked section which can let one V=
M
>   * affect another VM.
>   */
> @@ -108,20 +108,6 @@ static const struct ffa_fw_abi ffa_fw_abi_needed[] =
=3D {
>      FW_ABI(FFA_RUN),
>  };
>
> -/*
> - * Our rx/tx buffers shared with the SPMC. FFA_RXTX_PAGE_COUNT is the
> - * number of pages used in each of these buffers.
> - *
> - * The RX buffer is protected from concurrent usage with ffa_rx_buffer_l=
ock.
> - * Note that the SPMC is also tracking the ownership of our RX buffer so
> - * for calls which uses our RX buffer to deliver a result we must call
> - * ffa_rx_release() to let the SPMC know that we're done with the buffer=
.
> - */
> -void *ffa_rx __read_mostly;
> -void *ffa_tx __read_mostly;
> -DEFINE_SPINLOCK(ffa_rx_buffer_lock);
> -DEFINE_SPINLOCK(ffa_tx_buffer_lock);
> -
>  LIST_HEAD(ffa_ctx_head);
>  /* RW Lock to protect addition/removal and reading in ffa_ctx_head */
>  DEFINE_RWLOCK(ffa_ctx_list_rwlock);
> @@ -617,7 +603,7 @@ static bool ffa_probe_fw(void)
>                     ffa_fw_abi_needed[i].name);
>      }
>
> -    if ( !ffa_rxtx_init() )
> +    if ( !ffa_rxtx_spmc_init() )
>      {
>          printk(XENLOG_ERR "ffa: Error during RXTX buffer init\n");
>          goto err_no_fw;
> @@ -631,7 +617,7 @@ static bool ffa_probe_fw(void)
>      return true;
>
>  err_rxtx_destroy:
> -    ffa_rxtx_destroy();
> +    ffa_rxtx_spmc_destroy();
>  err_no_fw:
>      ffa_fw_version =3D 0;
>      bitmap_zero(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index ec5a53ed1cab..145b869957b0 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -77,28 +77,24 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, ui=
nt32_t *sp_count,
>  {
>      int32_t ret;
>      uint32_t src_size, real_sp_count;
> -    void *src_buf =3D ffa_rx;
> +    void *src_buf;
>      uint32_t count =3D 0;
>
> -    /* Do we have a RX buffer with the SPMC */
> -    if ( !ffa_rx )
> -        return FFA_RET_DENIED;
> -
>      /* We need to use the RX buffer to receive the list */
> -    spin_lock(&ffa_rx_buffer_lock);
> +    src_buf =3D ffa_rxtx_spmc_rx_acquire();
> +    if ( !src_buf )
> +        return FFA_RET_DENIED;
>
>      ret =3D ffa_partition_info_get(uuid, 0, &real_sp_count, &src_size);
>      if ( ret )
>          goto out;
>
> -    /* We now own the RX buffer */
> -
>      /* Validate the src_size we got */
>      if ( src_size < sizeof(struct ffa_partition_info_1_0) ||
>           src_size >=3D FFA_PAGE_SIZE )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
> -        goto out_release;
> +        goto out;
>      }
>
>      /*
> @@ -114,7 +110,7 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, ui=
nt32_t *sp_count,
>      if ( real_sp_count > (FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE) / src_siz=
e )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
> -        goto out_release;
> +        goto out;
>      }
>
>      for ( uint32_t sp_num =3D 0; sp_num < real_sp_count; sp_num++ )
> @@ -127,7 +123,7 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, ui=
nt32_t *sp_count,
>              if ( dst_buf > (end_buf - dst_size) )
>              {
>                  ret =3D FFA_RET_NO_MEMORY;
> -                goto out_release;
> +                goto out;
>              }
>
>              memcpy(dst_buf, src_buf, MIN(src_size, dst_size));
> @@ -143,10 +139,8 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, u=
int32_t *sp_count,
>
>      *sp_count =3D count;
>
> -out_release:
> -    ffa_hyp_rx_release();
>  out:
> -    spin_unlock(&ffa_rx_buffer_lock);
> +    ffa_rxtx_spmc_rx_release();
>      return ret;
>  }
>
> @@ -378,7 +372,7 @@ static void uninit_subscribers(void)
>          XFREE(subscr_vm_destroyed);
>  }
>
> -static bool init_subscribers(uint16_t count, uint32_t fpi_size)
> +static bool init_subscribers(void *buf, uint16_t count, uint32_t fpi_siz=
e)
>  {
>      uint16_t n;
>      uint16_t c_pos;
> @@ -395,7 +389,7 @@ static bool init_subscribers(uint16_t count, uint32_t=
 fpi_size)
>      subscr_vm_destroyed_count =3D 0;
>      for ( n =3D 0; n < count; n++ )
>      {
> -        fpi =3D ffa_rx + n * fpi_size;
> +        fpi =3D buf + n * fpi_size;
>
>          /*
>           * We need to have secure partitions using bit 15 set convention=
 for
> @@ -433,7 +427,7 @@ static bool init_subscribers(uint16_t count, uint32_t=
 fpi_size)
>
>      for ( c_pos =3D 0, d_pos =3D 0, n =3D 0; n < count; n++ )
>      {
> -        fpi =3D ffa_rx + n * fpi_size;
> +        fpi =3D buf + n * fpi_size;
>
>          if ( FFA_ID_IS_SECURE(fpi->id) )
>          {
> @@ -455,10 +449,14 @@ bool ffa_partinfo_init(void)
>      uint32_t fpi_size;
>      uint32_t count;
>      int e;
> +    void *spmc_rx;
>
>      if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) ||
> -         !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32) ||
> -         !ffa_rx || !ffa_tx )
> +         !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32))
> +        return false;
> +
> +    spmc_rx =3D ffa_rxtx_spmc_rx_acquire();
> +    if (!spmc_rx)
>          return false;
>
>      e =3D ffa_partition_info_get(NULL, 0, &count, &fpi_size);
> @@ -475,10 +473,10 @@ bool ffa_partinfo_init(void)
>          goto out;
>      }
>
> -    ret =3D init_subscribers(count, fpi_size);
> +    ret =3D init_subscribers(spmc_rx, count, fpi_size);
>
>  out:
> -    ffa_hyp_rx_release();
> +    ffa_rxtx_spmc_rx_release();
>      return ret;
>  }
>
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index d6400efd50bb..8797a62abd01 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -415,10 +415,6 @@ struct ffa_ctx {
>      unsigned long *vm_destroy_bitmap;
>  };
>
> -extern void *ffa_rx;
> -extern void *ffa_tx;
> -extern spinlock_t ffa_rx_buffer_lock;
> -extern spinlock_t ffa_tx_buffer_lock;
>  extern DECLARE_BITMAP(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
>
>  extern struct list_head ffa_ctx_head;
> @@ -436,8 +432,13 @@ int ffa_partinfo_domain_init(struct domain *d);
>  bool ffa_partinfo_domain_destroy(struct domain *d);
>  void ffa_handle_partition_info_get(struct cpu_user_regs *regs);
>
> -bool ffa_rxtx_init(void);
> -void ffa_rxtx_destroy(void);
> +bool ffa_rxtx_spmc_init(void);
> +void ffa_rxtx_spmc_destroy(void);
> +void *ffa_rxtx_spmc_rx_acquire(void);
> +void ffa_rxtx_spmc_rx_release(void);
> +void *ffa_rxtx_spmc_tx_acquire(void);
> +void ffa_rxtx_spmc_tx_release(void);
> +
>  int32_t ffa_rxtx_domain_init(struct domain *d);
>  void ffa_rxtx_domain_destroy(struct domain *d);
>  int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
> @@ -567,11 +568,6 @@ static inline int32_t ffa_simple_call(uint32_t fid, =
register_t a1,
>      return ffa_get_ret_code(&resp);
>  }
>
> -static inline int32_t ffa_hyp_rx_release(void)
> -{
> -    return ffa_simple_call(FFA_RX_RELEASE, 0, 0, 0, 0);
> -}
> -
>  static inline bool ffa_fw_supports_fid(uint32_t fid)
>  {
>      BUILD_BUG_ON(FFA_FNUM_MIN_VALUE > FFA_FNUM_MAX_VALUE);
> diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
> index 5776693bb3f0..e325eae07bda 100644
> --- a/xen/arch/arm/tee/ffa_rxtx.c
> +++ b/xen/arch/arm/tee/ffa_rxtx.c
> @@ -30,6 +30,20 @@ struct ffa_endpoint_rxtx_descriptor_1_1 {
>      uint32_t tx_region_offs;
>  };
>
> +/*
> + * Our rx/tx buffers shared with the SPMC. FFA_RXTX_PAGE_COUNT is the
> + * number of pages used in each of these buffers.
> + * Each buffer has its own lock to protect from concurrent usage.
> + *
> + * Note that the SPMC is also tracking the ownership of our RX buffer so
> + * for calls which uses our RX buffer to deliver a result we must do an
> + * FFA_RX_RELEASE to let the SPMC know that we're done with the buffer.
> + */
> +static void *ffa_spmc_rx __read_mostly;
> +static void *ffa_spmc_tx __read_mostly;
> +static DEFINE_SPINLOCK(ffa_spmc_rx_lock);
> +static DEFINE_SPINLOCK(ffa_spmc_tx_lock);
> +
>  static int32_t ffa_rxtx_map(paddr_t tx_addr, paddr_t rx_addr,
>                              uint32_t page_count)
>  {
> @@ -126,8 +140,9 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t =
tx_addr,
>                       sizeof(struct ffa_address_range) * 2 >
>                       FFA_MAX_RXTX_PAGE_COUNT * FFA_PAGE_SIZE);
>
> -        spin_lock(&ffa_tx_buffer_lock);
> -        rxtx_desc =3D ffa_tx;
> +        rxtx_desc =3D ffa_rxtx_spmc_tx_acquire();

Two guests can independently call FFA_RXTX_MAP_64 at the same time and
reach this point on two CPUs in parallel. But,
ffa_rxtx_spmc_tx_acquire() has an
ASSERT(!spin_is_locked(&ffa_spmc_rx_lock)) before taking the spinlock.
I think we have the same problem in ffa_get_sp_partinfo() with
ffa_rxtx_spmc_rx_acquire().

Cheers,
Jens

> +        if ( !rxtx_desc )
> +            goto err_unmap_rx;
>
>          /*
>           * We have only one page for each so we pack everything:
> @@ -144,7 +159,7 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t =
tx_addr,
>                                               address_range_array[1]);
>
>          /* rx buffer */
> -        mem_reg =3D ffa_tx + sizeof(*rxtx_desc);
> +        mem_reg =3D (void *)rxtx_desc + rxtx_desc->rx_region_offs;
>          mem_reg->total_page_count =3D 1;
>          mem_reg->address_range_count =3D 1;
>          mem_reg->reserved =3D 0;
> @@ -154,7 +169,7 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t =
tx_addr,
>          mem_reg->address_range_array[0].reserved =3D 0;
>
>          /* tx buffer */
> -        mem_reg =3D ffa_tx + rxtx_desc->tx_region_offs;
> +        mem_reg =3D (void *)rxtx_desc + rxtx_desc->tx_region_offs;
>          mem_reg->total_page_count =3D 1;
>          mem_reg->address_range_count =3D 1;
>          mem_reg->reserved =3D 0;
> @@ -165,7 +180,7 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t =
tx_addr,
>
>          ret =3D ffa_rxtx_map(0, 0, 0);
>
> -        spin_unlock(&ffa_tx_buffer_lock);
> +        ffa_rxtx_spmc_tx_release();
>
>          if ( ret !=3D FFA_RET_OK )
>              goto err_unmap_rx;
> @@ -319,49 +334,112 @@ void ffa_rxtx_domain_destroy(struct domain *d)
>      rxtx_unmap(d);
>  }
>
> -void ffa_rxtx_destroy(void)
> +void *ffa_rxtx_spmc_rx_acquire(void)
> +{
> +    ASSERT(!spin_is_locked(&ffa_spmc_rx_lock));
> +
> +    spin_lock(&ffa_spmc_rx_lock);
> +
> +    if ( ffa_spmc_rx )
> +        return ffa_spmc_rx;
> +
> +    return NULL;
> +}
> +
> +void ffa_rxtx_spmc_rx_release(void)
> +{
> +    int32_t ret;
> +
> +    ASSERT(spin_is_locked(&ffa_spmc_rx_lock));
> +
> +    /* Inform the SPMC that we are done with our RX buffer */
> +    ret =3D ffa_simple_call(FFA_RX_RELEASE, 0, 0, 0, 0);
> +    if ( ret !=3D FFA_RET_OK )
> +        printk(XENLOG_DEBUG "Error releasing SPMC RX buffer: %d\n", ret)=
;
> +
> +    spin_unlock(&ffa_spmc_rx_lock);
> +}
> +
> +void *ffa_rxtx_spmc_tx_acquire(void)
>  {
> -    bool need_unmap =3D ffa_tx && ffa_rx;
> +    ASSERT(!spin_is_locked(&ffa_spmc_tx_lock));
>
> -    if ( ffa_tx )
> +    spin_lock(&ffa_spmc_tx_lock);
> +
> +    if ( ffa_spmc_tx )
> +        return ffa_spmc_tx;
> +
> +    return NULL;
> +}
> +
> +void ffa_rxtx_spmc_tx_release(void)
> +{
> +    ASSERT(spin_is_locked(&ffa_spmc_tx_lock));
> +
> +    spin_unlock(&ffa_spmc_tx_lock);
> +}
> +
> +void ffa_rxtx_spmc_destroy(void)
> +{
> +    bool need_unmap;
> +
> +    spin_lock(&ffa_spmc_rx_lock);
> +    spin_lock(&ffa_spmc_tx_lock);
> +    need_unmap =3D ffa_spmc_tx && ffa_spmc_rx;
> +
> +    if ( ffa_spmc_tx )
>      {
> -        free_xenheap_pages(ffa_tx, 0);
> -        ffa_tx =3D NULL;
> +        free_xenheap_pages(ffa_spmc_tx, 0);
> +        ffa_spmc_tx =3D NULL;
>      }
> -    if ( ffa_rx )
> +    if ( ffa_spmc_rx )
>      {
> -        free_xenheap_pages(ffa_rx, 0);
> -        ffa_rx =3D NULL;
> +        free_xenheap_pages(ffa_spmc_rx, 0);
> +        ffa_spmc_rx =3D NULL;
>      }
>
>      if ( need_unmap )
>          ffa_rxtx_unmap(0);
> +
> +    spin_unlock(&ffa_spmc_tx_lock);
> +    spin_unlock(&ffa_spmc_rx_lock);
>  }
>
> -bool ffa_rxtx_init(void)
> +bool ffa_rxtx_spmc_init(void)
>  {
>      int32_t e;
> +    bool ret =3D false;
>
>      /* Firmware not there or not supporting */
>      if ( !ffa_fw_supports_fid(FFA_RXTX_MAP_64) )
>          return false;
>
> -    ffa_rx =3D alloc_xenheap_pages(get_order_from_pages(FFA_RXTX_PAGE_CO=
UNT), 0);
> -    if ( !ffa_rx )
> -        return false;
> +    spin_lock(&ffa_spmc_rx_lock);
> +    spin_lock(&ffa_spmc_tx_lock);
> +
> +    ffa_spmc_rx =3D alloc_xenheap_pages(
> +                            get_order_from_pages(FFA_RXTX_PAGE_COUNT), 0=
);
> +    if ( !ffa_spmc_rx )
> +        goto exit;
>
> -    ffa_tx =3D alloc_xenheap_pages(get_order_from_pages(FFA_RXTX_PAGE_CO=
UNT), 0);
> -    if ( !ffa_tx )
> -        goto err;
> +    ffa_spmc_tx =3D alloc_xenheap_pages(
> +                            get_order_from_pages(FFA_RXTX_PAGE_COUNT), 0=
);
> +    if ( !ffa_spmc_tx )
> +        goto exit;
>
> -    e =3D ffa_rxtx_map(__pa(ffa_tx), __pa(ffa_rx), FFA_RXTX_PAGE_COUNT);
> +    e =3D ffa_rxtx_map(__pa(ffa_spmc_tx), __pa(ffa_spmc_rx),
> +                     FFA_RXTX_PAGE_COUNT);
>      if ( e )
> -        goto err;
> +        goto exit;
>
> -    return true;
> +    ret =3D true;
>
> -err:
> -    ffa_rxtx_destroy();
> +exit:
> +    spin_unlock(&ffa_spmc_tx_lock);
> +    spin_unlock(&ffa_spmc_rx_lock);
>
> -    return false;
> +    if ( !ret )
> +        ffa_rxtx_spmc_destroy();
> +
> +    return ret;
>  }
> diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
> index dad3da192247..e275d3769d9b 100644
> --- a/xen/arch/arm/tee/ffa_shm.c
> +++ b/xen/arch/arm/tee/ffa_shm.c
> @@ -286,9 +286,8 @@ static void init_range(struct ffa_address_range *addr=
_range,
>  }
>
>  /*
> - * This function uses the ffa_tx buffer to transmit the memory transacti=
on
> - * descriptor. The function depends ffa_tx_buffer_lock to be used to gua=
rd
> - * the buffer from concurrent use.
> + * This function uses the ffa_spmc tx buffer to transmit the memory tran=
saction
> + * descriptor.
>   */
>  static int share_shm(struct ffa_shm_mem *shm)
>  {
> @@ -298,17 +297,22 @@ static int share_shm(struct ffa_shm_mem *shm)
>      struct ffa_address_range *addr_range;
>      struct ffa_mem_region *region_descr;
>      const unsigned int region_count =3D 1;
> -    void *buf =3D ffa_tx;
>      uint32_t frag_len;
>      uint32_t tot_len;
>      paddr_t last_pa;
>      unsigned int n;
>      paddr_t pa;
> +    int32_t ret;
> +    void *buf;
>
> -    ASSERT(spin_is_locked(&ffa_tx_buffer_lock));
>      ASSERT(shm->page_count);
>
> +    buf =3D ffa_rxtx_spmc_tx_acquire();
> +    if ( !buf )
> +        return FFA_RET_NOT_SUPPORTED;
> +
>      descr =3D buf;
> +
>      memset(descr, 0, sizeof(*descr));
>      descr->sender_id =3D shm->sender_id;
>      descr->handle =3D shm->handle;
> @@ -340,7 +344,10 @@ static int share_shm(struct ffa_shm_mem *shm)
>      tot_len =3D ADDR_RANGE_OFFSET(descr->mem_access_count, region_count,
>                                  region_descr->address_range_count);
>      if ( tot_len > max_frag_len )
> -        return FFA_RET_NOT_SUPPORTED;
> +    {
> +        ret =3D FFA_RET_NOT_SUPPORTED;
> +        goto out;
> +    }
>
>      addr_range =3D region_descr->address_range_array;
>      frag_len =3D ADDR_RANGE_OFFSET(descr->mem_access_count, region_count=
, 1);
> @@ -360,7 +367,12 @@ static int share_shm(struct ffa_shm_mem *shm)
>          init_range(addr_range, pa);
>      }
>
> -    return ffa_mem_share(tot_len, frag_len, 0, 0, &shm->handle);
> +    ret =3D ffa_mem_share(tot_len, frag_len, 0, 0, &shm->handle);
> +
> +out:
> +    ffa_rxtx_spmc_tx_release();
> +
> +    return ret;
>  }
>
>  static int read_mem_transaction(uint32_t ffa_vers, const void *buf, size=
_t blen,
> @@ -579,10 +591,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs=
)
>      if ( ret )
>          goto out;
>
> -    /* Note that share_shm() uses our tx buffer */
> -    spin_lock(&ffa_tx_buffer_lock);
>      ret =3D share_shm(shm);
> -    spin_unlock(&ffa_tx_buffer_lock);
>      if ( ret )
>          goto out;
>
> --
> 2.51.2
>


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 13:19:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 13:19:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181694.1504713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSxd6-0002pw-0O; Tue, 09 Dec 2025 13:19:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181694.1504713; Tue, 09 Dec 2025 13:19:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSxd5-0002pp-Tw; Tue, 09 Dec 2025 13:19:47 +0000
Received: by outflank-mailman (input) for mailman id 1181694;
 Tue, 09 Dec 2025 13:19:46 +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
 <SRS0=Nu2q=6P=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vSxd4-0002pj-FX
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 13:19:46 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b9bb1294-d501-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 14:19:44 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB6613.namprd03.prod.outlook.com (2603:10b6:a03:393::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 13:19:39 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 13:19:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b9bb1294-d501-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=U7KGTwVyUW0b+SxC94OLM7jZqHANyEmSWvdCRM0s+NJWSkgHHhSAXJyrbiJJ9hPAAqEGXy4kyu8XIZkjxJGk2TkrPigyoz3tvL0Tuirsq42Y7GCiP1f9l3VlRwgt7VD6NoSHX14lrPgrb3FxhgVFhs096DRuyzxD5CQIWPHtMwTCeIUmQMUcbB9vk2PYEeO812LqeN7+0wbCx1lT5n+dgA/XqUxUPVWsUo/D/m28hmVBuPru8KdtfsGvazWTWaqqWG1QhmlWriAR+1U+MBflm5U9leTUOsh4u+kGm7IKwbbwIgl1ao2GGm4r0ecvrmcGWgAtHf0SWFbShTXXOgCL1w==
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=BFP+hWantrk4VLarmx9WuD78vATgXibldqEnbljBg2Q=;
 b=De6gag0DZPO1U9D+ngPt0Obw9yRf6aOgRS2STC8dnDY6hLf2m7RCcQzqMKn++qKGp7q/jUKYNZQImEzz1LXDKTfol27MqanedMpkBv/BKGHgdzuHkmMcHAs43+GzKEMBl1frSpGhrHsKFTzM5icb3aq2Ag7rfIfURvZ4R0sSEFlxbMIvJLEn/XSxxNJPupiwJ7tnZpvz8cmfypXYrTQjkKGelnXTbyoWEzyCf7Di2t3WOlol+RVf2TMfHFz+VkUrejlHdu8wjaWqdybHtWSlVvDQkWftL/P/Uzk98PQhiAJx9HX0SOShDw8Hua3m9fx2vG5IBaDYaE5b5sPRyyYD3w==
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=BFP+hWantrk4VLarmx9WuD78vATgXibldqEnbljBg2Q=;
 b=Lg+6t0lDAcu9tEQi5agD7IQT1RHKkW4wdYr81lXsfvCaTzVJ8ZJFWb7+8huw6RL1qQ6hvENVwuAj7NwPj0Joyle9LVS0dDDlWPtfPisnpTM5I29DFuBh+coZNVbLdrskav4uEFSrcBtx1Vdsr4CeM0VQ22WHJUu/V+veEvgDkvs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <25069a8e-ef00-4706-bffa-b3b724cca200@citrix.com>
Date: Tue, 9 Dec 2025 13:19:34 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>
Subject: Re: [XEN][PATCH v2] coverage: extend coverage on .init and lib code
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251205193411.1368659-1-grygorii_strashko@epam.com>
 <d9a632d1-8587-45bb-bc13-8dab8d346cb2@citrix.com>
 <4fc76270-98e6-46c4-a6a4-d73772e079c9@epam.com>
 <483d50d9-a076-4698-bd14-28afabd5d369@citrix.com>
 <f6cccd82-3112-4696-850a-119843fca5ec@citrix.com>
 <18ab3734-deb9-4569-ade5-9d96a7bf3c7c@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <18ab3734-deb9-4569-ade5-9d96a7bf3c7c@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0430.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a0::34) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SJ0PR03MB6613:EE_
X-MS-Office365-Filtering-Correlation-Id: a79d6b5f-9a84-49ff-d279-08de37259b1c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|1800799024|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WjlCSzRpRE5xZ3RNcDQzMDlOVkgrQkFQS1d6UDNhUTZ2ZUVMK0tnYWV5MitL?=
 =?utf-8?B?K3QvL0N3dmtRWDh2U3BDM1dvVk43UEs4RTRIVzB2V0JKeDBldlZsVUdqcjhK?=
 =?utf-8?B?SXZGM3JKdVpiTnNmMkVyQjlnS01pZjY0YmhhOWJ6cVhFa1AzWW84dnlVbWZm?=
 =?utf-8?B?SlJtM1MwdlhnMkNYKzNYZ3U5Zy9mbWJJd016dmM4MEx3cXBzeGQxcDMwcDZN?=
 =?utf-8?B?TVYvYzBoaXdnTzFlbmRVK2tnbm45RGVmZ0NuYk5UZzV3eXYxRm5TL1cxclc0?=
 =?utf-8?B?Szk3ellCWFNqcXpXd2p2WkNmSE5Zbi94SVo5dm4wWWVmaWtweUZnb3JlNVVn?=
 =?utf-8?B?RzZkLzY1UTFkL2ZpSzVGWFFTbWFETHAzdVZVcXhITDdSUzhNeXB2Y0ZsdS9i?=
 =?utf-8?B?TnJ0NjBSWC9Yc2FCbmwvYnZVamEvdHV5SGIwMFFacE15Wm54MU04eXAvVFlG?=
 =?utf-8?B?NlpHaEFKVnJYT2VEcWZpQmh3cVpvNFZraWdTZmdpdzVNQVRTazJVNGx4MjhB?=
 =?utf-8?B?dzlvYzNOT0l0VTk3WWpzUU5YMk1EaUtNL21RTW5VVUVBUWJ5T1dmQ3FmUThE?=
 =?utf-8?B?L2ppRXBaSlBLZnM5S2o2VUoyNzF4eGdWS0hGbWlEWTFMTC9NY0JHZmlIUkd3?=
 =?utf-8?B?WmpzRHZKUE9LNDA4MU1tckZMUDBQQlpuaDE5aXlYa2Z1dTRycHJnMHNsQk9z?=
 =?utf-8?B?ZVM2SG1XSmRieE4zTnc5RzZSbEtySzBlQ3VieVErakZ6eEZBVmlmZ0V2NU9Y?=
 =?utf-8?B?a3p3QXdCODFtV0pmRVlyblNtQkNpRHRhZUJ2Ujk3aVpoL0VSbnRXNDNhYlp3?=
 =?utf-8?B?T2ZIeHhaMUVLRVB4TklnKzY4RDNHRC9MU096QXlqWUl5NmV0NmJ5YktRcG1X?=
 =?utf-8?B?MVQ3VloyeXJ4eXUrN0VsazJWSE5leGdPaGVrMmMxOUM2MURrZVdtNTVidTRv?=
 =?utf-8?B?YmFhQjZ3MlNBakZvNWFYcXRwWTRTMU41VG1oQjdwNU5nTG1zRVIyaUdKRmgr?=
 =?utf-8?B?TDRMYzJ4TTIwbEtneTdDWkxZRTN6YXNMeU92bUowMUt2SjRZbHZLTnlvVXp4?=
 =?utf-8?B?YkRNYkJCV1lab1VEVFQ0cGhXVXdlRXkxM3RlUGtMalQrUW5rT0RUWnFIMjR5?=
 =?utf-8?B?YUNkcVZFWUFNcVdKcktiejZoSzhUZTNaVG4yWVNJZ1RQbUpReEpsMmFsUFdV?=
 =?utf-8?B?dkZrU0FKQzduM2dvc0R0ZDcxV3JQdDBmV1VxV2tYNmczMk5kSSt0ME9aNi9V?=
 =?utf-8?B?TlpnRkZDZGtndXNTUnhGK2NXUHpLU1gvMitWRm5EenNSQTA4ejVyVWxBbDFF?=
 =?utf-8?B?MWVzN0dLSVJ2Y0lmRUdGQk94K2hLYXR4R1VjWms1eUNLYnl4NlNMQ0FTbnAz?=
 =?utf-8?B?ZVZRdUdITUo2OStvNzZRb25HUkJIV09BaXExVWpxczJkQXVPUm1MMkYwQko4?=
 =?utf-8?B?V3hQZHZQK1BaanJRYTh0RUZEL2ZrQ2YwV1FRMUg4Sm4xenE4Vk1tV0M3SEJs?=
 =?utf-8?B?bkZnQ2JtRnFycERoVEtIOVRaRjZWcVdxNjEzTDA2UG85T1RST0dkbnJwb244?=
 =?utf-8?B?OXRJYkUvbzhTbkFyc09rQy9POUsyaG94aTV4QnNrdmJCZXJlQWdWVGUrZ1ZG?=
 =?utf-8?B?MzJ3aHJhTWZOY2dsd0hySjMrdlV0Tk5JRGxiWnF5SnE4clNFSGhFMjMvWE1F?=
 =?utf-8?B?RjRPZ3FwMlJrekpWdENQWFJLWHZjRC8wczlOU0VBT21rRy9lWVg1c3VRTGpW?=
 =?utf-8?B?WGdka21ZVlZrS3F4MTRKM0ExUDdMa0JyTjY3eDM3NGpkWnVYUzFhcHNrc2Zh?=
 =?utf-8?B?S0xRTjJYSXkvVjN2SEVGdXVqdkRTelFMZGlkWUJCVG96N2h3OGNReGNiVzIr?=
 =?utf-8?B?am5JREhvdkE0LzlzVUl6RGFqL0RMVmNXR1kyWk5JTGUwem1tSzBrR25JMjF1?=
 =?utf-8?Q?3QJavWCVsMA6pPMNemjMdrQaw9lpWYiI?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eFdtRHFib3AvUVhtNTVqZkJxOHZGWVNnMmJmdGhLazRJaGM1ZzhBMDQwMHBF?=
 =?utf-8?B?dXkyQTh2aXFqS2ZQMFR3RjlkLzVOK1RBS1JXMDdBa21wcWp1eGdPZTN6NEt1?=
 =?utf-8?B?R2tvdW0zVCswVjQ3UFNIdW5WT1I1aFByUVJhRWswOTM2Yk9nZzQrK1d6U2l2?=
 =?utf-8?B?NHltOW5uY0xsY2trcEtsTDlOdk5CakdmSVFKNElGblA3NHluODI4Z1ZwaU5G?=
 =?utf-8?B?MjREdWhzd3pJTkU2Z3JNZHVteDlNWGpqbStBUzJGMzByQ0kxYnBGRXRLVTBG?=
 =?utf-8?B?MnB1b0p3aHpIT25HbG9SK2JPOUd0MTlId0plMGtkQTkxNzh2bzlIWk5MbnZo?=
 =?utf-8?B?SGxZOG9PR0hKZzJLbjFIaDFYbGxSek5HWFh5ZlppTzZoYWhmTkVvTTY4QVFX?=
 =?utf-8?B?WW1YdU5WaTVmQXpXWCtyaVFOS0YwNVlPUmFGWEdxZllSK3I1WnZBK0hWUkRG?=
 =?utf-8?B?elptSWpJQjZSV0o5Q3ZHbHhmYWxvOVpnbHIxWGtYNlppN3lpWEw2b1h6YnM1?=
 =?utf-8?B?Nm1VSXBvNCtYYUdkQ2tIKzlsWndXTmRQT2NITE90ZlEyRE51bnhvck9UK2hh?=
 =?utf-8?B?b2dYNHJjbkRZWWJsSDlqS1ZreGVqY203NUxVaTVMUW9keHd1Ymd5TWg1WWEw?=
 =?utf-8?B?ZnZzbVgxUkk2K1RzUDJXWkU0bnJUSFZCQXZ2Mmh4YnhFWG41TkE5NldLZy9u?=
 =?utf-8?B?QndlT0ZEQm13V25rMHhIM05OczlVQTU5REJESWcraHA4YWZFZHFhcDE4aEJH?=
 =?utf-8?B?b2xnUEk3aHFGbWlZeHNvOWdRR09KSTh2SDlWbWZ0VEF3UWwzNFJYZjRlalFG?=
 =?utf-8?B?cDFHanAzOWt6SmRxd0Jnay9QN0NhN1FPRnlFS2ZMT29lWGhxc0pMNHRlYThz?=
 =?utf-8?B?UDZkWGJOdVpEa3EvTkhIbjFzQ3g4Q1krMlJXdUdXY2t0a24yYkxvK1d1L1I2?=
 =?utf-8?B?cWFaVG53RnMxS21VbnBUMkFKeVB5K2l0eGJjRjB3QWpubGVTeWx4VUdldDZM?=
 =?utf-8?B?NzZRM0VBekE1YkcyUXE1WnVMb0FxS1NlWjU3WmxGTDZLM3dVcU52ZWJNWUxZ?=
 =?utf-8?B?U1drUXBPcnBKYUR3UHMzN3hWYVEzVXcyTjA5elRYWFl5cDRuTFI4Vng3L0N6?=
 =?utf-8?B?b3ZsMXdWKzNqNHdIZlR1cVFnWEU3Y0VNSGJ1dktkdGNWZ3ZBSDlKd1Zmdmdv?=
 =?utf-8?B?Y1lwMC90SWMyNHgzS0xFdGhUSnFwTXdZdXk0T1M3dXVmT2c5NHZtQWpmY2sv?=
 =?utf-8?B?eHBpMnE2c21rUUdDL3BvbFFDL0NvczRYa0lYWnlhK1ZabWdZL3NsS2hJVFJz?=
 =?utf-8?B?V2Q5THZ0eWlMd0dwcVk5aUxLRGI5YTJoZkhid1F3MnNVZU1nSUhFaUI3Umc5?=
 =?utf-8?B?TEo0UlNoR29JNkgzTUxEVlB0VGxWTS9wNyt2eTVoZjc4Y25BdXA4cTRYY0xa?=
 =?utf-8?B?T0s3TEp2Tm1MM3dzbGJ3SEVzUksrUmdGRFBES0ZzK0ZiakFOS2ptdVN0cFRY?=
 =?utf-8?B?NWJlbWI0YzN3aURTaElmZ2o5bW82VFZoVzBiZm42NW9FU2dMeXFXOVpweDAx?=
 =?utf-8?B?bDB6Mzh4ZVd2QnppZ1dBdEhFZSttazdVK1lrMmNvYzRhbjlIZmlpWm4wRmV6?=
 =?utf-8?B?R1A5WWUvcGprWThCd2MzdDF1MndmaWZuM2RpdnN5dFJtRlZNVHc1MVR6cTZF?=
 =?utf-8?B?VGsvem4wUFFuaFhRVTIvKzBObVpMRCt5MkloWnBYeGJwZG5wZ3VRUzJNcjJ3?=
 =?utf-8?B?cVRmV3N5ZEd1RURrQ0dDQ1dyTnYvbEVEMEthSE1Md1c3eFZQZ2VYTE4xSkp6?=
 =?utf-8?B?dm9yck5OQmtYQjZRM0J5T1IvRXpROS8vL0NJT1VuUTI1OUc3RitnUHlQaDJw?=
 =?utf-8?B?QVVwRXJubFBnLzJ0VGhDWlVQSGNheFJkbjh3RjdNRHBNa2dINmw2V1plVTAy?=
 =?utf-8?B?MjE4eGwxUWQvd3Rkd0lCQU9uNzdEbmZLSm0vSjdjSUFTTjR2YU5iTXRjQUhh?=
 =?utf-8?B?TXZET2FJMTA2bUp6bnkwSUorNHpNZEtoc244V1Q1NmkyN3VyMTJJQXNkdCtL?=
 =?utf-8?B?NG5SNGJYR0FrbGxPWUdkTmJUa0NhRDlleS9YYzMvMjhYR1prT1pqdnUxMW9l?=
 =?utf-8?B?ZHNvOGg0YUxlTFhLLzRwN3owY2hsQURYNUxDQTVDcE9iU294K01rM3ozR0RC?=
 =?utf-8?B?b1E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a79d6b5f-9a84-49ff-d279-08de37259b1c
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 13:19:38.9757
 (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: JQ2RLwQBQkji9Q/wgGm4ZRZxU0fUcW6s23+2rkkOQYcFSCYi/n0V0veo1ZsjSC8WwIycTVT3WxQszRRJ+cKujlaw2peBvZgU8MlaAZZSlkY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6613

On 08/12/2025 6:49 pm, Grygorii Strashko wrote:
> Hi Andrew,
>
> On 06.12.25 16:21, Andrew Cooper wrote:
>> On 06/12/2025 2:15 pm, Andrew Cooper wrote:
>>> On 06/12/2025 9:10 am, Grygorii Strashko wrote:
>>>>
>>>> On 05.12.25 22:00, Andrew Cooper wrote:
>>>>> On 05/12/2025 7:34 pm, Grygorii Strashko wrote:
>>>>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>>>
>>>>>> Extend coverage support on .init and lib code.
>>>>>> Add two hidden Kconfig options:
>>>>>> - RELAX_INIT_CHECK "Relax strict check for .init sections only in
>>>>>> %.init.o
>>>>>> files"
>>>>>> - DO_NOT_FREE_INIT_MEMORY "Prevent freeing of .init sections at the
>>>>>> end of
>>>>>> Xen boot."
>>>>>>
>>>>>> Both selected selected when COVERAGE=y, as getting coverage
>>>>>> report for
>>>>>> ".init" code is required:
>>>>>> - to bypass strict check for .init sections only in %.init.o files;
>>>>>> - the .init code stay in memory after Xen boot.
>>>>>>
>>>>>> RELAX_INIT_CHECK/DO_NOT_FREE_INIT_MEMORY could be used by other
>>>>>> debug
>>>>>> features in the future.
>>>>>>
>>>>>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>>> ---
>>>>>> changes in v2:
>>>>>>    - add RELAX_INIT_CHECK and DO_NOT_FREE_INIT_MEMORY, those are two
>>>>>> different things,
>>>>>>      both potentially reusable
>>>>>>    - enable coverage for libfdt/libelf always
>>>>>>    - enable colverage for .init always
>>>>> This is a lot nicer (i.e. more simple).
>>>>>
>>>>> But, I still don't know why we need to avoid freeing init memory
>>>>> to make
>>>>> this work.  What explodes if we dont?
>>>>>
>>>> It will just crash when coverage data is collected.
>>>>
>>>> First I made changes in make file to get .init covered
>>>> then I hit a crash
>>>> then I checked %.init.o
>>>> conclusion was obvious.
>>>>
>>>> For example:
>>>> objdump -x bzimage.init.o | grep gcov
>>>>
>>>> 0000000000000010 l     O .bss    0000000000000028
>>>> __gcov0.bzimage_check
>>>> 0000000000000040 l     O .bss    0000000000000040
>>>> __gcov0.bzimage_headroom
>>>> 0000000000000000 l     O .bss    0000000000000008
>>>> __gcov0.output_length
>>>> 0000000000000080 l     O .bss    0000000000000060
>>>> __gcov0.bzimage_parse
>>>> 0000000000000098 l     O .init.data.rel.local    0000000000000028
>>>> __gcov_.bzimage_parse
>>>> 0000000000000070 l     O .init.data.rel.local    0000000000000028
>>>> __gcov_.bzimage_headroom
>>>> 0000000000000048 l     O .init.data.rel.local    0000000000000028
>>>> __gcov_.bzimage_check
>>>> 0000000000000020 l     O .init.data.rel.local    0000000000000028
>>>> __gcov_.output_length
>>>> 0000000000000000         *UND*    0000000000000000 __gcov_init
>>>> 0000000000000000         *UND*    0000000000000000 __gcov_exit
>>>> 0000000000000000         *UND*    0000000000000000 __gcov_merge_add
>>>> 0000000000000008 R_X86_64_PLT32    __gcov_init-0x0000000000000004
>>>> 0000000000000012 R_X86_64_PLT32    __gcov_exit-0x0000000000000004
>>>> 0000000000000020 R_X86_64_64       __gcov_merge_add
>>>>
>>> Aah, we should exclude the OJBCOPY too.  That's what's moving
>>> .data.rel.local amongst other sections we target with attributes
>>> directly.
>>
>> we can't target.
>
> I've come up with below diff - seems it's working without
> DO_NOT_FREE_INIT_MEMORY.
> Is this what you have in mind?
>
> diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
> index 8fc201d12c2c..16b1a82db46e 100644
> --- a/xen/Kconfig.debug
> +++ b/xen/Kconfig.debug
> @@ -40,7 +40,6 @@ config COVERAGE
>         depends on SYSCTL && !LIVEPATCH
>         select SUPPRESS_DUPLICATE_SYMBOL_WARNINGS if
> !ENFORCE_UNIQUE_SYMBOLS
>         select RELAX_INIT_CHECK
> -       select DO_NOT_FREE_INIT_MEMORY
>         help
>           Enable code coverage support.
>  
> diff --git a/xen/Rules.mk b/xen/Rules.mk
> index 8c4861a427e6..47fdcc1d23b5 100644
> --- a/xen/Rules.mk
> +++ b/xen/Rules.mk
> @@ -33,11 +33,15 @@ cov-cflags-y :=
>  nocov-y :=
>  noubsan-y :=
>  
> +# when coverage is enabled the gcc internal section should stay in
> memory
> +# after Xen boot
> +ifneq ($(CONFIG_COVERAGE),y)
>  SPECIAL_DATA_SECTIONS := rodata $(foreach a,1 2 4 8 16, \
>                                              $(foreach w,1 2 4, \
>                                                         
> rodata.str$(w).$(a)) \
>                                              rodata.cst$(a)) \
>                           $(foreach r,rel rel.ro,data.$(r).local)
> +endif
>  
>  # The filename build.mk has precedence over Makefile
>  include $(firstword $(wildcard $(srcdir)/build.mk) $(srcdir)/Makefile)
> diff --git a/xen/common/libelf/Makefile b/xen/common/libelf/Makefile
> index 60b3ae40728f..8180c78f1510 100644
> --- a/xen/common/libelf/Makefile
> +++ b/xen/common/libelf/Makefile
> @@ -1,8 +1,10 @@
>  obj-bin-y := libelf.o
>  libelf-objs := libelf-tools.o libelf-loader.o libelf-dominfo.o
>  
> +ifneq ($(CONFIG_COVERAGE),y)
>  SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
>  OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section
> .$(s)=.init.$(s))
> +endif
>  
>  CFLAGS-y += -Wno-pointer-sign
>  
> diff --git a/xen/common/libfdt/Makefile b/xen/common/libfdt/Makefile
> index ae0f69c01373..fb26e5bff0fd 100644
> --- a/xen/common/libfdt/Makefile
> +++ b/xen/common/libfdt/Makefile
> @@ -4,7 +4,9 @@ SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
>  
>  # For CONFIG_OVERLAY_DTB, libfdt functionalities will be needed
> during runtime.
>  ifneq ($(CONFIG_OVERLAY_DTB),y)
> -OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section
> .$(s)=.init.$(s))
> +       ifneq ($(CONFIG_COVERAGE),y)
> +               OBJCOPYFLAGS := $(foreach
> s,$(SECTIONS),--rename-section .$(s)=.init.$(s))
> +       endif
>  endif

This is the (aforementioned) non-standard way of doing .init.o, which is
why it doesn't play nicely.

I suggest that we first convert libelf and libfdt to the standard way of
doing .init.

For libelf this means we need regular __init annotations, but #undef'd
outside of __XEN__ (when we're doing the userspace build).

For libfdt, this will need some init_or_$FOO things (matching
init_or_livepatch).

Once the custom init has been made standard, this code becomes easier to
move into lib, and we no longer have special cases when trying to extend
coverage.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 13:25:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 13:25:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181711.1504725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSxiO-0004QI-Oi; Tue, 09 Dec 2025 13:25:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181711.1504725; Tue, 09 Dec 2025 13:25:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSxiO-0004QB-KC; Tue, 09 Dec 2025 13:25:16 +0000
Received: by outflank-mailman (input) for mailman id 1181711;
 Tue, 09 Dec 2025 13:25:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=T3Df=6P=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vSxiM-0004Q5-T0
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 13:25:14 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7dce85f2-d502-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 14:25:12 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-42e2b90ad22so2104848f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 05:25:12 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d353c9esm30528904f8f.40.2025.12.09.05.25.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 09 Dec 2025 05:25:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7dce85f2-d502-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765286712; x=1765891512; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=6DV8NJeRhubdL2jzPn5QSgIhM5cwXZeyKP4ZRnSJnhs=;
        b=jnnxVQsi1K1JRww3TjpO4cWoVd3kCHDVsHOca3S9AK/kxSyOZRbde6yQNn2mFGalNe
         cGxxKYAxaH1PoY/c3KW4+usK2+N/7aSF2wjr4Ny5MvFbz/b0m9i0FvaEtnyIcYkqNygs
         gtZoZ7wBnzMZseFPAD+dH6fDblWLbODkUaOMQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765286712; x=1765891512;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6DV8NJeRhubdL2jzPn5QSgIhM5cwXZeyKP4ZRnSJnhs=;
        b=RIqEUX1U74/x61Cgj42zOEWz2AQT7kd9tJxA5hfIydeWYf/bQb+TCA8qmpZrIHRGkh
         FM/PGnhJhXkVfQ3GfGhOgMJ9DCRXkBUBYrrh5nJ0m5on7xh49ewAeF4KkjQDyj5OhUs6
         dp/CaLlj3YYK9WlBUrnW3hlKp58CKgsObxW5PfIhGngVIULpZik8jrodALiRIs+GEIFP
         EFZYog189kHFW1iseFORXXNHWEoixu0K7rQ3X+MOYVm7pwuwgF9L2FDen6G/SL43478c
         G+CJ6M2Zs263dBQZ6GMVq1ygMzz8QWtxBIwE/OR9TK3Ako4F6ic2DDsJtFUCOzmNYLMR
         71Rw==
X-Gm-Message-State: AOJu0YyTORUJcYx/EQHB55xt8vB+AH6DxyAA6yddX3w6jFiof5utnvcQ
	Z2Nx18vkJxVQMmhIgXUPjog8C5Of8z9Z6phYibi0aS3NxVKht7zRxPTUZmhzLsYHIL0zuJBDnYv
	BvSnW
X-Gm-Gg: AY/fxX40pdwK/bQ8I1cvrJD/3x+xKTJqm64+tM3NkdkbVHFon+D7kUCZit2TMnbL42n
	6KkPdWCLQoonrzqKmtkaOLjKPQ23qPO+SgoG/gRFvmM5ivX6+R57sQ/j9P4fK5nUcmdgBePI781
	Jk+vi+K5F+C43J/xOToG4pr47nHrt9ksresiI7yHZuiqgvuNTk7o2QfqXWCANO2Eln0ux8t9s7e
	3vjhY4g76z6hybQ5rHhYxH7ENrdeKw7VC2VW86bXZcsHFNFS2oZmGHpsfcQquDdlnkKk93X2eRr
	pso4ll4gLAGRvTEuudSsiIEplpBnn8qK6j/c+UqR+M7DTtIEWf6bN0H8jQwarWeI/dWS/hZstnA
	cI3/Odm86AVfSWJEySqOH7VIfRdcM1cYWqBQRTSp7nyHxXs1Ta5g4wolsQBBuWKksKX6nWnpcFi
	Bg0QKrN7wGTwpuh4UKLe7qxXVD8h+tJegoJMWv466vMZk9eXbgN/CVUile3maqbQ==
X-Google-Smtp-Source: AGHT+IF576Gxqlc2rzON8ONVVt4sBQjp9oeiILQCqYMEIxfl2b4m6J7If36NWUVO//drjNX5Phkwzw==
X-Received: by 2002:a5d:588c:0:b0:42b:3da6:6d32 with SMTP id ffacd0b85a97d-42f89f0e3ddmr11531992f8f.23.1765286711827;
        Tue, 09 Dec 2025 05:25:11 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] xen/libfdt: Fix comment following treewide __ASSEMBLY__ cleanup
Date: Tue,  9 Dec 2025 13:25:09 +0000
Message-Id: <20251209132509.2095158-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This one comment didn't match the #ifdef symbol, and escaped conversion.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
---
 xen/include/xen/libfdt/fdt.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/include/xen/libfdt/fdt.h b/xen/include/xen/libfdt/fdt.h
index 57fe566306d0..c6e4d7838dc5 100644
--- a/xen/include/xen/libfdt/fdt.h
+++ b/xen/include/xen/libfdt/fdt.h
@@ -45,7 +45,7 @@ struct fdt_property {
 	char data[0];
 };
 
-#endif /* !__ASSEMBLY */
+#endif /* !__ASSEMBLER__ */
 
 #define FDT_MAGIC	0xd00dfeed	/* 4: version, 4: total size */
 #define FDT_TAGSIZE	sizeof(fdt32_t)

base-commit: 63137a87311e1081bce0c5a4364492b4fc728bfb
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 13:48:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 13:48:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181727.1504733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSy4K-0007qb-E9; Tue, 09 Dec 2025 13:47:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181727.1504733; Tue, 09 Dec 2025 13:47:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSy4K-0007qU-BY; Tue, 09 Dec 2025 13:47:56 +0000
Received: by outflank-mailman (input) for mailman id 1181727;
 Tue, 09 Dec 2025 13:47:54 +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 <SRS0=sSjK=6P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSy4I-0007qO-SC
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 13:47:54 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a8ba5e3c-d505-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 14:47:53 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-477b91680f8so63053285e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 05:47:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d2226c5sm32041400f8f.23.2025.12.09.05.47.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 05:47:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8ba5e3c-d505-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765288073; x=1765892873; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UhBkyX5uhpGgafmHchtPC5kUvkaUK+PvnaNEIWnpNs4=;
        b=B8+9gkI8ogKEblP2awjnrwnnQmwYJKea03F1acgHpv9xBFnfs7F60qtMdtRiTFX/us
         1SGP8mnjGkTgy+hS48JRbUoAD8yQp2oVNs7qMZ6CW8iw76hCxVG9wjOEtB46QdPZEvvi
         qHSj22U87UpG4z2fL/25UJHv+KcwpvxCxCNVybnDSR9YlBbQPZoUh1XlfN33eCAIaVYL
         WnOsM/0YNqSVcIaai4xwgx+3CGPPUrpncxlDIXJp0HSPRlKojf/LYs263wOZPKts9BJv
         sLZA3GRMeL7dsUYJce8oWLpJIhS6IyU0bMMArydZx2/x1piKGwLKCjaOmcBgkAyNciCZ
         3ZMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765288073; x=1765892873;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UhBkyX5uhpGgafmHchtPC5kUvkaUK+PvnaNEIWnpNs4=;
        b=OzHBSGY7RACmZQPL4OIJiMqWb3EwiUzkDobVzQnkp6BhbuflnRxxR08U6bXB4NqJMr
         K3aJbUa2jsVEaJ+kiwmhaeMouOlaw/t7z22xAX4hjF0VRq/0y/cNGYCsug9wAcH6vEaA
         D0B0I6T8eFvtFXmY9pDRMXuzyXUnSHnLFl6ZoElWYNwhQjm5pExkch4INf2vdXOjUxAd
         4WDL/hs78CbeIiCk9sU6yilJ1QXJB4iUg9YeiFMFQI6RkJHb412eDm/X/d5uERNSYKBT
         OoEOHlsuHeh+co2fFfXX+r+C8Q4qboOX4i9W7hpHoXQiNI+DCzhw3ehzGHiAZQ9ZJuiy
         KRRg==
X-Forwarded-Encrypted: i=1; AJvYcCXMCb34YUf82OmZW3QI8gYuPLivwEs73gC1dSZeicBZ+kOuioaK2EXcReFEtgDnmOXR+kDtxpUJLD4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz38bnY8cAnW4s6GiqIt9ylSyYV6SDTGSGjX8G5gHMtShpT37mN
	ik3VybpQwWvGNbwBBUIudbbzgw5AXjEEgDIuFbvLcGNmZAOMbjTu6eitVwOG8NLrOg==
X-Gm-Gg: ASbGncvRFcJKYn2nHAapn1hNgSKsjDaX63bt5hrrJSkCBbMebX9tfssci8CvDbKjeUa
	qZr+kTQElbGyqFsN5eP2lmiW8riP6STvKzHTg/M2zCrfkZwCPvkMTTMDXN3xQPaa/x1ENPTxLY5
	T7EIVIfhlMc/jhBwsFcljfcybigvm4hWuHGB7+90KalQuKiNbCQUdhxIMdJbdUAib9CJLe/KSCk
	qT/kXSYEPZiLec31NCUuop90w8ogZgs3zk1pv8wwc9fT44+xthdbzwIK36V/MvQR9q/AnhYde17
	ZeFA1E7x3WqNDuwPdlDnXiQiSPuSOfsV2pw+Kv67eByscrq8f7xWS9jX3ey0LAPv4+2xBfHPnvE
	kw251VLIC4uZi5uoy8X33iuhl4jKpI8uEGe4TTpye3oZodyKR8Ie2gqztnUyvhg+a3FxIY3xaHj
	JsTozXKTFKCJu5yRyOmzy6Y+4qfQqdhTqc1nvcQmAYqDMbPv9TE/0v2V9RsPxTD5piyeJOIiCv0
	WI=
X-Google-Smtp-Source: AGHT+IFN/kqeNX4ziAJ622gdNkmATi7WrcL48broO2XkmVU8XmIt2oe5uRaIbw/GNIOxyCgKYgLYnw==
X-Received: by 2002:a05:600c:8b73:b0:46e:4b79:551 with SMTP id 5b1f17b1804b1-47939e48f87mr128302185e9.31.1765288072635;
        Tue, 09 Dec 2025 05:47:52 -0800 (PST)
Message-ID: <889df78f-7196-4b44-9558-fb83f432e18a@suse.com>
Date: Tue, 9 Dec 2025 14:47:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 19/19] xen/riscv: introduce metadata table to store P2M
 type
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <2c41da84b3e7fb0f6e6c3c856bff6edaf9e1d505.1763986955.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2c41da84b3e7fb0f6e6c3c856bff6edaf9e1d505.1763986955.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.11.2025 13:33, Oleksii Kurochko wrote:
> @@ -374,24 +399,107 @@ static struct page_info *p2m_alloc_page(struct p2m_domain *p2m)
>      return pg;
>  }
>  
> -static int p2m_set_type(pte_t *pte, p2m_type_t t)
> +/*
> + * `pte` – PTE entry for which the type `t` will be stored.
> + *
> + * If `t` is `p2m_ext_storage`, both `ctx` and `p2m` must be provided;
> + * otherwise, only p2m may be NULL.
> + */
> +static void p2m_set_type(pte_t *pte, p2m_type_t t,
> +                         struct p2m_pte_ctx *ctx,
> +                         struct p2m_domain *p2m)

I assume you having struct p2m_domain * separate from ctx here is because the
"get" counterpart wouldn't need it. The same is true for the level member,
though. I wonder therefore whether putting p2m in pte_ctx as well wouldn't
make for an overall cleaner interface. (But this is truly just a thought; I
don#t mean to insist here.)

>  {
> -    int rc = 0;
> +    struct page_info **md_pg;
> +    struct md_t *metadata = NULL;
>  
> -    if ( t > p2m_first_external )
> -        panic("unimplemeted\n");
> -    else
> -        pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
> +    ASSERT(p2m);
>  
> -    return rc;
> +    /*
> +     * It is sufficient to compare ctx->index with PAGETABLE_ENTRIES because,
> +     * even for the p2m root page table (which is a 16 KB page allocated as
> +     * four 4 KB pages), calc_offset() guarantees that the page-table index
> +     * will always fall within the range [0, 511].
> +     */
> +    ASSERT(ctx && ctx->index < PAGETABLE_ENTRIES);
> +
> +    /*
> +     * At the moment, p2m_get_root_pointer() returns one of four possible p2m
> +     * root pages, so there is no need to search for the correct ->pt_page
> +     * here.
> +     * Non-root page tables are 4 KB pages, so simply using ->pt_page is
> +     * sufficient.
> +     */
> +    md_pg = &ctx->pt_page->v.md.pg;
> +
> +    if ( !*md_pg && (t >= p2m_first_external) )
> +    {
> +        BUG_ON(ctx->level > P2M_MAX_SUPPORTED_LEVEL_MAPPING);
> +
> +        if ( ctx->level <= P2M_MAX_SUPPORTED_LEVEL_MAPPING )
> +        {
> +            /*
> +             * Since p2m_alloc_page() initializes an allocated page with zeros, p2m_invalid
> +             * is expected to have the value 0 as well. This ensures that if a metadata
> +             * page is accessed before being properly initialized, the correct type
> +             * (p2m_invalid in this case) will be returned.
> +             */

Nit: Line length.

Also imo "properly initialized" is ambiguous. The clearing of the page can already
count as such. No access to the page may happen ahead of this clearing.

> +            BUILD_BUG_ON(p2m_invalid);
> +
> +            *md_pg = p2m_alloc_page(p2m);
> +            if ( !*md_pg )
> +            {
> +                printk("%pd: can't allocate metadata page\n", p2m->domain);
> +                domain_crash(p2m->domain);
> +
> +                return;
> +            }
> +        }
> +    }
> +
> +    if ( *md_pg )
> +        metadata = __map_domain_page(*md_pg);
> +
> +    if ( t >= p2m_first_external )
> +    {
> +        metadata[ctx->index].type = t;
> +
> +        t = p2m_ext_storage;
> +    }
> +    else if ( metadata )
> +        metadata[ctx->index].type = p2m_invalid;
> +
> +    pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
> +
> +    unmap_domain_page(metadata);
>  }

Just to mention (towards future work): Once a metadata page goes back to be
entirely zero-filled, it could as well be hooked off and returned to the pool.
Not doing so may mean detaining an unused page indefinitely.

> -static p2m_type_t p2m_get_type(const pte_t pte)
> +/*
> + * `pte` -> PTE entry that stores the PTE's type.
> + *
> + * If the PTE's type is `p2m_ext_storage`, `ctx` should be provided;
> + * otherwise it could be NULL.
> + */
> +static p2m_type_t p2m_get_type(const pte_t pte, const struct p2m_pte_ctx *ctx)
>  {
>      p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
>  
> +    /*
> +     * Since the PTE is initialized with all zeros by default, p2m_invalid must
> +     * have the value 0. This ensures that if p2m_get_type() is called for a GFN
> +     * that hasn't been initialized, the correct type (p2m_invalid in this case)
> +     * will be returned. It also guarantees that metadata won't be touched when
> +     * the GFN hasn't been initialized.
> +     */
> +    BUILD_BUG_ON(p2m_invalid);

I don't think comment and BUILD_BUG_ON() need repeating here. That's relevant
only when (zero-)initializing the page.

>      if ( type == p2m_ext_storage )
> -        panic("unimplemented\n");
> +    {
> +        const struct md_t *md = __map_domain_page(ctx->pt_page->v.md.pg);
> +
> +        type = md[ctx->index].type;

In exchange you may want to assert here that the type found is
>= p2m_first_external (as - supposedly - guaranteed by p2m_set_type()).

> @@ -792,6 +952,13 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
>          pte = *entry;
>          pte_set_mfn(&pte, mfn_add(mfn, i << level_order));
>  
> +        if ( MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage )
> +        {
> +            p2m_pte_ctx.index = i;
> +
> +            p2m_set_type(&pte, old_type, &p2m_pte_ctx, p2m);

In order to re-use p2m_pte_ctx across multiple iterations without fully re-
initializing, you want the respective parameter of p2m_set_type() be pointer-
to-const.

> @@ -894,13 +1061,21 @@ static int p2m_set_entry(struct p2m_domain *p2m,
>      {
>          /* We need to split the original page. */
>          pte_t split_pte = *entry;
> +        struct page_info *tbl_pg = mfn_to_page(domain_page_map_to_mfn(table));
>  
>          ASSERT(pte_is_superpage(*entry, level));
>  
> -        if ( !p2m_split_superpage(p2m, &split_pte, level, target, offsets) )
> +        if ( !p2m_split_superpage(p2m, &split_pte, level, target, offsets,
> +                                  tbl_pg) )
>          {
> +            struct p2m_pte_ctx tmp_ctx = {
> +                .pt_page = tbl_pg,
> +                .index = offsets[level],
> +                .level = level,
> +            };

This, ...

> @@ -938,7 +1113,13 @@ static int p2m_set_entry(struct p2m_domain *p2m,
>          p2m_clean_pte(entry, p2m->clean_dcache);
>      else
>      {
> -        pte_t pte = p2m_pte_from_mfn(mfn, t, false);
> +        struct p2m_pte_ctx tmp_ctx = {
> +            .pt_page = mfn_to_page(domain_page_map_to_mfn(table)),
> +            .index = offsets[level],
> +            .level = level,
> +        };

... this, and ...

> @@ -974,7 +1155,15 @@ static int p2m_set_entry(struct p2m_domain *p2m,
>      if ( pte_is_valid(orig_pte) &&
>           (!pte_is_valid(*entry) ||
>            !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte))) )
> -        p2m_free_subtree(p2m, orig_pte, level);
> +    {
> +        struct p2m_pte_ctx tmp_ctx = {
> +            .pt_page = mfn_to_page(domain_page_map_to_mfn(table)),
> +            .index = offsets[level],
> +            .level = level,
> +        };

... this initializer are identical. Perhaps (sorry) it wasn't a good idea
after all to move the context variable from function scope to the more
narrow ones?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 13:59:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 13:59:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181740.1504744 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSyEy-00019O-Cd; Tue, 09 Dec 2025 13:58:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181740.1504744; Tue, 09 Dec 2025 13:58:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSyEy-00019H-8p; Tue, 09 Dec 2025 13:58:56 +0000
Received: by outflank-mailman (input) for mailman id 1181740;
 Tue, 09 Dec 2025 13:58:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I/6M=6P=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vSyEw-00019B-KD
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 13:58:54 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2f6b2584-d507-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 14:58:50 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by GV2PR03MB8511.eurprd03.prod.outlook.com (2603:10a6:150:7f::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 13:58:44 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 13:58:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2f6b2584-d507-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HGvVqmjuJSXZE7DMMEMMYiKi/AHeom1qLK674kEVA2Q8W0xbq3n5N2lWPjESgSqg7QII7ThaxZvKUsElyaN4tk083WeqmSCt3jgRo2g83ptk+1oeDDuNoRqzPBcxGGMrFSbryVaDUkFsDQDLXOXhup+DaYdKGcVBPbquNKiof1r/bnYpTlrxO9nmGKk+Bhomc/peuBdTCSVu3/1fI8a5WthYu6txxl8xvXpMU6cFVAIhoG2ltgdyUpGLe8o5PU/IoLgpHPh67SXl7IskvLsWer0Xq/gQygNqbHqZDlPGqu4lzGs6cKYe1sWHVa/8nD+0krCAKRSeWPtOqfEoDZmvFA==
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=UduimE2RWzeVjXUWvSUXs47ARNfQi6MylC4y3iwSBwY=;
 b=qzfuWnpE5r+LoVjPjFKb2JsVR9msWU5l5PoS0WjkheKEP0a7onYLUbR8sTtjqZYq4Ip2HRiNmM+cvdOPui2evbWpnC3acsPwfLBE9C1L0zvgCLgpkJm4FipRSJkqwvieTmOR0eYtZdh/jK9QevOVguKsmsYIblD6XO3PFhkJ547pfYGESMGciW/LZ2K1uSfVLR9PFRuFB4RAQ4aU424zqFH19TluJuRe6r7uKFgZRFO4d9gxQQvf6xzOstnQdWoiUmCurtgIWfEauWss/IhlSEg3iHadsyWu8nkMzX5TW3iA8yBIiWuLFn8exxeWWSHF3MPF7pvtix+zd1nSaMVWOw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=UduimE2RWzeVjXUWvSUXs47ARNfQi6MylC4y3iwSBwY=;
 b=SOvAN/U3NtFNkDten7W5WovhJSVSI8P/anAsIISiXEJ1kbT1mrQPzJKFpOBecGnV5hdl1MO14glPw3ho+KxRqH5tmD6kEQPEWwWJjVtg2Lm0/gBvsnAfyOdMlVyo1S41Qm6pb6l39AJoGD6SfuoxjBUV25PdvZ3C5mUPqsqjNDxB3FPK6hPKiNt7vk/tfWozr3pGJfPlOgso6DEk7cnCuLaMYwRPVSwoRNdc/wEXul2DNQlD/p+R4R5fF7F4YRWnwMFFN325F8JbC8oiodOtTmQ/uGYeXdvkB3IcS9YH/mqn1ShHyQjKFcEXzCCNn2KrZWK1/XzN4zZXIX6xa589/Q==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <dce0dfec-3f34-49a2-a599-44b6c2322777@epam.com>
Date: Tue, 9 Dec 2025 15:58:42 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/3] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251128152218.3886583-1-grygorii_strashko@epam.com>
 <20251128152218.3886583-4-grygorii_strashko@epam.com>
 <c9ee4fc8-44c6-43e8-88eb-9041c51aed16@suse.com>
 <d025e3dd-ba2a-4a9d-af37-37570e690aee@epam.com>
 <a3dcfce1-4695-4064-a1e3-af09bfa04199@suse.com>
 <f0da7ce3-1846-4865-8e66-bc3e50f78390@epam.com>
 <85cdb866-0be2-4204-b106-f66e2b15f841@citrix.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <85cdb866-0be2-4204-b106-f66e2b15f841@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0026.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::22) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|GV2PR03MB8511:EE_
X-MS-Office365-Filtering-Correlation-Id: 600b05ca-f9a8-41cf-f8d1-08de372b1120
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OTJVSUsySzBxWGpxYngzK2NpVVBkS0duYU9RV1pjUkIzTkw3R3VwbjhXYndR?=
 =?utf-8?B?V1FuTUpDdWdlRHdOdlZXeUlYNmRkTFpoYXhTQW5YbXFFSzM2bzltMFdPUzZM?=
 =?utf-8?B?QWwwMXB5dU4yTlN3ZEgxd2FvT3hlQlFNNzU3YnV0NHBFVU5Kb0VhTWYzSi9u?=
 =?utf-8?B?SlVDOHJLck9zRHVML2ZjbzFCdjF1WjQveS80MzMwSTIvc08yRTh2QkRrRkJR?=
 =?utf-8?B?bmdGV0tSL1k4R2ZWVWgvSVAvZ29FYmJhOXFTbVN6bVZuemorekpsVVdrOGkx?=
 =?utf-8?B?RTU4VURsaURRRFdwRTY1K2pub1NvdjQ3L01sUWp5b0FiNU1DNGZJY3NOYS9I?=
 =?utf-8?B?RmNiOFREdC9PQllWQkhaVDVlS0N0UkU0Q3ZneHhTbVdkS2NMYVFrWEVyNkps?=
 =?utf-8?B?bmpnMzlacjFZYW9jWHlRbG84d1ZQbzdBVmFRTGk4bkdZaUxva2grakFURjQy?=
 =?utf-8?B?K3lQU1JjS0RLV2t4b2MyYXV1UXRVTW9uekdCTUkzYXRyUzBvcFdNZ09WWmxy?=
 =?utf-8?B?SW4xajNGQTY4NElKUHUrS2RkTTFpcXNvV0xVWk5iZXg2MnpxczM0bkg1dkxq?=
 =?utf-8?B?N2JJOGdHTU1IZ0VmUGtObzQvb2ZjYVVPQjFOL2dySXV1VnpHWktzNWwySVlw?=
 =?utf-8?B?aXY1aE5zMlNqTDlCdDdrK283cVRWY1gwVGNhVnQ3TXg5dmhhbnF5RldmK05K?=
 =?utf-8?B?QmtwM0NBTzhSb2NETVluajB4bjNBN05xb0p0WnVxeUlYMnFsQkNoTlBZbFFM?=
 =?utf-8?B?RzA1ZWlPMW1tTUVCOG8wdi8ycUNpZHd3dlpXTmhqdXNSSG5ZYWJoWHhUdk9h?=
 =?utf-8?B?OGFCOEFZNWhpeXJxWmtaektlWVRaT2hHTXhJOG5YRk9mdHJQbVgvcW9FcWpX?=
 =?utf-8?B?ejQ2cmxSdCtiNmNEVDNacFZRMHNUeXFjU0tvZFNuMTZmZDhTSTJVWlVkL1lz?=
 =?utf-8?B?WjdINW82LzdqVVAyeEw0MDE4NUQwc25IV2o5cXNXWHVXRlZNdkM0UnJnNnNH?=
 =?utf-8?B?UU9XZmRpNHJWU3BUb0t3TmZ2MXdqSm5JczhVTGtsNTVHMitBSzhHbkxNZW1I?=
 =?utf-8?B?Z0dHZFp0elVmWHlEU0dQbUJhR1pWeXpDNkozRk5ud3lnLzNPZ0VNSUpIU1dn?=
 =?utf-8?B?TmNCMkdkR1ZHZVBNWENzREkrYXg1T09mclkzQ1ZOZUpvekZMc1o3NzVHWTdj?=
 =?utf-8?B?cGkxdWY5MlNoRDZtdmNzT3kxS0hOdlgyK1NNWGZQNTRNUFl0dWMxSFZRcGNr?=
 =?utf-8?B?cncyU1dHRisyVE1oQmphaFN0bzA3NFRGVXZUTW53WGJ5K205NkVuVGJYc1l1?=
 =?utf-8?B?aDc5WVhobkxoQ0llQ0dUUlZMQWdIeFdFZm1reExqaTFXcDZobm51a3hEZHd6?=
 =?utf-8?B?dVQ0empRR3BRcFVQbmxiSXBvZGFHQURyQUI0NDI4UWVQQkIvaFBEbVk2NFlY?=
 =?utf-8?B?azVsa2VtQzZYcjVZV3MvM3AzVkp0Nlg4dzJYeW9ncVF4OFZITDRUQzQySDJy?=
 =?utf-8?B?c1VidktsR2FoZk13R1lsME44NWpzcWdlVkUyaG55b2tXT2lvaHhsT1p1M3Zl?=
 =?utf-8?B?elJFNGdKYlhra1dMYjRKaEhGWlFaQ0JrM1dpU1U0dWVpdFJnckhDS3l4alBz?=
 =?utf-8?B?Mk9oN2FNN0dqaWk0TEd4UjJMdXVjdXc3dUNKSXhsZTFXVTF0UVhheWtpOHpX?=
 =?utf-8?B?bEF3Y3hqU3RuVk9KRDNyTENnRFpDdzg0d1UvRi9SeWQ5OGhpU0JtaWFkaXNy?=
 =?utf-8?B?R2h0SG9ZUWx2djhPazdhVHI2N2NHZzJKcFBMVjZMaDNEWkZnZzZsaE5jMWNY?=
 =?utf-8?B?eFBWbzZyVWR1TXQ4VzEyVngvRGgxQTlobGpMUlBpeUR5dSt3bEpvVlh2ZVRk?=
 =?utf-8?B?Y1JBdmxvSWtXTDdzRzJQUWY5bitINVhDTWRRbk5saHUxako0Y2UzS0dEVzRD?=
 =?utf-8?B?S1FxWjFUU09LYWl6U3FsVkZQaGVHYkRtMUF1SzBpSnk2SEg1Smh2aC9ydjY0?=
 =?utf-8?B?L296ZW5ScHBnPT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YlFBOHVWN3dCRjBwZUhCb1pudEFyQnljb2lCU1Y0dVRxUTdQQmRiUWFvVWFm?=
 =?utf-8?B?WEhHRlZndXhRaXNubEFodWdqWEIxYjJONjM4dXc0Uk1VUDkxV3Z2MFZFT1FS?=
 =?utf-8?B?Zkx5ZlRaK3QrTXFYaWhMYjBMSHpNY2IwaUFZV0xxdldVUzkzbFpDL1hLdzdh?=
 =?utf-8?B?QUx2d3hxQ1hQTkpWdWg4ZzEzWHhQeU1xeTQ5OFlqamxyWU9vVDJ1M2xhQlBa?=
 =?utf-8?B?STNaWGN0TS8xWFFReFZzeXBJcDVDM2Q0amNXb0R2L3hxU0pvdVhNanlETUZB?=
 =?utf-8?B?VXVyVjExZlh1Z2JIK0IvRzVCNEdVc01TYklPQ0dOYWJyRlhpdGZ3c2Y3RU1U?=
 =?utf-8?B?b0F0MUNZRmdhaTZubkdKNVAxT0l3MTg3QU85SUhabWNMVkJtZWNTUzZhVmQ3?=
 =?utf-8?B?RUVNMW1vTUkzbTdrWDdRUGdLekVVbGNnSDZvK3FPbnJZS2kwWUszUng4eUZr?=
 =?utf-8?B?dHVyajl5VDdvK0xCUEl2cnh1MkkwYXhDS0g1UFRhTG1qTUlScUp6QVlpcWZ0?=
 =?utf-8?B?Mi9Ib2lxVGNIZVg2QndHRjAwZi91YnBvREVFWVJmYURJNzVMNlFOc1BKeXd2?=
 =?utf-8?B?L2pFSTBkZFlvQWVsMXZJdDZkeC93OXduODY1TnR6V0xlckRYUnIvNXBZYzVN?=
 =?utf-8?B?Y1MrREYxZ1hiV080VEFvc1l0SzZEcEZFNzlYUzV1eXRRN0krbndraURVYXVR?=
 =?utf-8?B?RVpDRk5KaEYzbGxTUWUxdkNsV09qZXdSSExBTkdDSzBnYzBhZThKMDBnMGJv?=
 =?utf-8?B?R0dqZm4xQ2IrTUxVVTYwanpUMzRSMzFHSkY2SUp6SGRSWUtUc1lZVGxJK0NW?=
 =?utf-8?B?TkExU00wQzlOZFYzZWJjWG4vM2tobU5EaFVVLzNSSElLSWpHaTdoc2xuTUQx?=
 =?utf-8?B?UHpiVEp3OFBIRk94VXlGRER2TU5XYUYrWTk5bDAxRFVIb1MyWElVaEJoZUUw?=
 =?utf-8?B?ZkhLbTdJM1F1dzZsTEk1anJhclZtS0hmcXA3STQvVmhacXk1Q1B1KzV1QUFu?=
 =?utf-8?B?REZ5QkdHcjlpMCtiTi9ZMlNpUWxQMi9aM082RUxwallEMVBvbU45YzhCSXJs?=
 =?utf-8?B?eERlbmw4S3lmREF3ZjMvR3ltQXlBaEVvTTYxakxkNFNFbUNwMVNwUU9EckZw?=
 =?utf-8?B?NTd2cll0bXJYVXVKcWEyYzVGeGFsTUwwMlZTNGlUUlc2NUExSnNDMFV4N2th?=
 =?utf-8?B?eHVQcytPMm9Sd3doVGJ6WmpON0lMWkFrYXJ2T3F2TzI3YnkyendZSVY3cHo5?=
 =?utf-8?B?VEZHdnlrT0wrZEd0VzF1R2hBZjQwcHBvQ1lrZlpZNCtiMmpremdhNmZVWlRz?=
 =?utf-8?B?ajFGRnk2dHJKU2Qwdld2YWlsbE9yU2JEby9RVldaWURqcE9ja2R5bUlQNkEz?=
 =?utf-8?B?QjNzVC91d0FXYW5HWE82ZHk3K0Rzb2NWM28ycHIrS25BNVk1UDlwcGVXVjMw?=
 =?utf-8?B?clJQWW9PcEI1M3dYeUdtM3pzc1paeFdaSEZYZTZpemZ5eDExSXl3RVVCSm44?=
 =?utf-8?B?dVZ3V09KZFYrTDhScVJTSHhKMkVIUHFqQkpyUXNCTW5SNFV5M0VkSjNLRkF3?=
 =?utf-8?B?SkRSMmZTaXUrYzRQdDRrUDc4OEZWNTBDY1cyclJvRVZCTHMxdWtQWUpVZm9L?=
 =?utf-8?B?ZEN0MWZaTVBJek52MUhLSVZ1NUJDRlVQZWdjeWo0V1g1cTZPNGpiTTFRN2U4?=
 =?utf-8?B?cXRzSTBMR1VjQkdaTGljMlAwTkp3M0lZdlQ3cDN3Y0tZLzVmMnlCbFBwdHZZ?=
 =?utf-8?B?SjBqSVpzZWtCOUpHZ2FaNC9obnVXc0lxRTR0ZldQRk1zUjhXUEFDeEViVGND?=
 =?utf-8?B?cG05dGJUQURmQ3haRGJnb2pabHFFdzFUUXhzZUZoTndteW1INFZyV2ZLTjYr?=
 =?utf-8?B?NHdmMnZWQXRxaUtvUUw0TTJJV0FYQ0VudGtiRkd3anFMM0pMdS91emE3SEp3?=
 =?utf-8?B?VTFxMWY5MGRHdWNQTzBxNFNNTzBsSUlhUEV6YTgzUWFOM1kycW95Q2xieVZP?=
 =?utf-8?B?cGgwemJrVDZvZkVJbW4yek0wZFZlVnUzMXZ0cDFkU0U1NFZHdEVBOGl4dTFH?=
 =?utf-8?B?ZUF4L1hTNXhvVW5GRWpDc3Ezc2ZwRTBBZFc0REVhaDRTSklTUGJ1UnA2RWRp?=
 =?utf-8?B?L2M5S3B4WmJGcFAyN3NJSTd6aHZRTzdPcGowWFI1Z21MdDQ4dGtJbmREQ0Nt?=
 =?utf-8?B?VlE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 600b05ca-f9a8-41cf-f8d1-08de372b1120
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 13:58:44.5509
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: U/RNPnHpuE9LAZ+2xyPY0NuTXX0Xj1RedMY6XJFK/Ox8IDHnre4gjDFJFR28b6EMu2jrkzWdaJq2I695c/ns8GsILSCQdsLpoRFcQjHbIfI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR03MB8511



On 09.12.25 14:44, Andrew Cooper wrote:
> On 09/12/2025 12:24 pm, Grygorii Strashko wrote:
>>
>>
>> On 09.12.25 10:59, Jan Beulich wrote:
>>> On 08.12.2025 20:21, Grygorii Strashko wrote:
>>>> On 08.12.25 14:44, Jan Beulich wrote:
>>>>> On 28.11.2025 16:22, Grygorii Strashko wrote:
>>>>>> --- a/xen/arch/x86/pv/domain.c
>>>>>> +++ b/xen/arch/x86/pv/domain.c
>>>>>> @@ -254,7 +254,11 @@ int switch_compat(struct domain *d)
>>>>>>                 goto undo_and_fail;
>>>>>>         }
>>>>>>     -    domain_set_alloc_bitsize(d);
>>>>>> +    if ( MACH2PHYS_COMPAT_NR_ENTRIES(d) < max_page )
>>>>>
>>>>> You mention the change in condition in the revlog (but not in the
>>>>> description),
>>>>
>>>> The updated chunk was based on snippet from Andrew [1], which
>>>> used incorrect condition - I've changed it and noted in change log
>>>>
>>>> [1] https://patchwork.kernel.org/comment/26680551/
>>>>
>>>>> and I'm having trouble to follow why ...
>>>>>
>>>>>> --- a/xen/arch/x86/x86_64/mm.c
>>>>>> +++ b/xen/arch/x86/x86_64/mm.c
>>>>>> @@ -1119,26 +1119,6 @@ unmap:
>>>>>>         return ret;
>>>>>>     }
>>>>>>     -void domain_set_alloc_bitsize(struct domain *d)
>>>>>> -{
>>>>
>>>> The domain_set_alloc_bitsize() inlined in  switch_compat() and x86
>>>> PV domain
>>>> always created as 64bit domain.
>>>>
>>>> At the beginning of switch_compat() there is:
>>>>
>>>>     ( is_pv_32bit_domain(d) )
>>>>            return 0;
>>>> [2]
>>>> above ensures that switch_compat() can be actually called only once
>>>> (at least it can reach
>>>> point [2] only once, because there is no way to reset PV domain
>>>> state 32bit->64bit
>>>>
>>>> this is original condition which says:
>>>>>> -    if ( !is_pv_32bit_domain(d) ||
>>>>
>>>> do nothing if !is_pv_32bit_domain(d)
>>>>     - for inlined code is_pv_32bit_domain(d) == true, so
>>>> is_pv_32bit_domain(d) can be ignored
>>>>
>>>>>> -         (MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page) ||
>>>>
>>>> do nothing if (MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page)
>>>>      - inlinded code should proceed if this condition is opposite
>>>>        (MACH2PHYS_COMPAT_NR_ENTRIES(d) < max_page)
>>>>
>>>>>> -         d->arch.physaddr_bitsize > 0 )
>>>>
>>>> do nothing if d->arch.physaddr_bitsize > 0 (already set)
>>>>      - inlined code will be executed only once, so
>>>> (d->arch.physaddr_bitsize ==/!= 0)
>>>>        can be ignored
>>>
>>> This is the crucial point: It being executed only once isn't spelled out
>>> anywhere in the description, and it's not entirely obvious why that
>>> would
>>> be. Yes, nowadays it is. Originally (iirc) one could switch the guest
>>> back
>>> to 64-bit mode, then again to 32-bit.
> 
> I changed it in 02e78311cdc6
> 
>>
>> I'll update description.
>>
>> Or can add it back as !d->arch.physaddr_bitsize to be safe and avoid
>> confusions?
> 
> Please update the description.  The function really is singleshot now.
> 
> I'd expect MC/DC coverage to complain at leaving the conditional in
> place, not that this particular codepath is going to be on the top of
> the list for coverage.
> 
>>
>>>
>>>>> ... this 3rd part is going away.
>>>>
>>>> Another observation: MACH2PHYS_COMPAT_NR_ENTRIES(d) is looks like a
>>>> const, as
>>>> (d)->arch.hv_compat_vstart is always 0.
>>>>
>>>> grep -rw hv_compat_vstart ./*
>>>> ./arch/x86/include/asm/config.h:#define
>>>> HYPERVISOR_COMPAT_VIRT_START(d) ((d)->arch.hv_compat_vstart)
>>>> ./arch/x86/include/asm/domain.h:    unsigned int hv_compat_vstart;
>>>
>>> This observation isn't directly related here, is it?
>>
>> Yep. Just found it while investigated.
>>
> 
> Don't be deceived by that.  pv's dom0_construct() has
> 
>      HYPERVISOR_COMPAT_VIRT_START(d) =
>          max_t(unsigned int, m2p_compat_vstart, value);
> 
> which hides the write.  I've been meaning to fix this for ages.
> 
> In fact, I could also submit the inlining of domain_set_alloc_bitsize()
> too with relevant history if you'd prefer.

Sorry, didn't get it - you wanna take ownership of the whole patch
or part of it?

In general, I'm ok.
In the later case I'll need to handle only domain_clamp_alloc_bitsize(), right?

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 14:22:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 14:22:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181754.1504754 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSybR-0005GZ-8B; Tue, 09 Dec 2025 14:22:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181754.1504754; Tue, 09 Dec 2025 14:22:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSybR-0005GS-5H; Tue, 09 Dec 2025 14:22:09 +0000
Received: by outflank-mailman (input) for mailman id 1181754;
 Tue, 09 Dec 2025 14:22:07 +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
 <SRS0=I/6M=6P=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vSybP-0005GM-G6
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 14:22:07 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6ff22ec4-d50a-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 15:22:05 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by AM9PR03MB7459.eurprd03.prod.outlook.com (2603:10a6:20b:268::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 14:22:03 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 14:22:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6ff22ec4-d50a-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ci3bKY4mKm7/iB26LodDIoR4BZQWMDuDgx1cZTjAj3pcOmU4bFdx6SCTBIk2Vdf85FATHZaHLt/heK9Y99m46iMHGJ3aDCZBJCVeBCsSDp88+NYNZ5IVjAp1xMngWM4THWA8q16nLXL4NOrZd2f2rGdBpysJjq+EJMgjlYuvxRByJNxvjCqGOzo5tE2mT/Vz/xL4OQvJ7GECcMp1nmRFhFweitRlZ14K/7i2QxCLxrcRP31rsFc7QBmWfgnZ38rGdB78h0TRrhEk3GMv/BCjU8090+GqtbxMH3jNmizMn32DWwy9CviresiMXa5HaUcanIFTBYa7U725yr3B9DiSDw==
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=p5qgmT2YSYvIfYW1pXZm7wasJ+8jZjmITWZqGKHzovg=;
 b=H7UxcrjAV0Yp8tKhvravS2jCj74qmD5I5tZSKV70Vp1huGQjGUNEMNnkbYZX8OFuFjQFzFnU6+adPH0ftEaQvb/eadY7n7Fc0WnYJKCzMvOf0EIcJ//GyeD/HtmBKgKSz3oWE2jIofgW/gi8W//qpC97iC+0VcC8Ge5qdN6y4xYU6LKqFTm+z9wyATFAj8oHdQ0SwdLTXPLo3IY56btF7x11/G/ok1JoJGfeFJax5oFBeQyqSJSVJqw2Xu+2uzWOjhmOjb3Hfvf3sssxa70kCm0HEGcEKqb5e8Z6KEFy7d9/hXZzRVeg+qwS56UJnCvzzXa4nWPjnlhTYMWzVVAonw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=p5qgmT2YSYvIfYW1pXZm7wasJ+8jZjmITWZqGKHzovg=;
 b=TVJvhMxLIggoxGdSJ+rNk4aC1GfR9vDYrb0LujPfRNsZzX6sxJsRjeCPfQRR4EcY9dVkejZyL6pK0rI1025sTcTfOWDS9XD0VeELMtZRs87ZpkZ+wo1Hwr2MhRG8L42IjR+hgPz61KTxkQrBV1ogcQzS7M77pGCHB6KNeRuFge+1Ff0VngLjNs/dAcQ4UvoTjRAShcSpxl/wvadntQuj3q28xVM5c+Ebt2AaOLvtq+nZgm7bURheSrTXWpLp9PN8hsVBEZMsHht8am4WJXKRveL5MkAhQVcvax5ivQmh6YQMzvmZM4A82F9q+zOFTEalmUzKqdaghjCuthw4aax1nA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <4e7e8f25-a658-4e8d-bdce-1e1266ff6339@epam.com>
Date: Tue, 9 Dec 2025 16:21:59 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2] coverage: extend coverage on .init and lib code
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>
References: <20251205193411.1368659-1-grygorii_strashko@epam.com>
 <d9a632d1-8587-45bb-bc13-8dab8d346cb2@citrix.com>
 <4fc76270-98e6-46c4-a6a4-d73772e079c9@epam.com>
 <483d50d9-a076-4698-bd14-28afabd5d369@citrix.com>
 <f6cccd82-3112-4696-850a-119843fca5ec@citrix.com>
 <18ab3734-deb9-4569-ade5-9d96a7bf3c7c@epam.com>
 <25069a8e-ef00-4706-bffa-b3b724cca200@citrix.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <25069a8e-ef00-4706-bffa-b3b724cca200@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0031.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::12) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|AM9PR03MB7459:EE_
X-MS-Office365-Filtering-Correlation-Id: fd84918a-20a0-47cd-ae50-08de372e528f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MkIvMExSa1JiUlRmaCs0d1IvM3ppNVNCenh2YVNSK0JtSUlBRGRDZlIvaWs1?=
 =?utf-8?B?U3l1ZGFMKzNhMHV3TnRJMG5NbHkvOUo4TzNxYVRTSVZqazJTdDJzcVc5cDNW?=
 =?utf-8?B?RGJidDRHUnNObHZuMUR3bjNpb2Y0YWZZYjJEcmZIWmZFOGhrVnRuUFhJUzBW?=
 =?utf-8?B?bkFSckxPOHRoWFhSZ1c0d09JNjk5U01mNzVYZE9ZaWQzb2VCazkyYlJWU1o4?=
 =?utf-8?B?cUtzMjE1UDFKbVQ0eTFyVVRKNXFMZXhyZU9hSWJka2M0blp0RkJDZHFHRXVt?=
 =?utf-8?B?R0FoRE5JUk1vOW8rTVIxVEFGVFB5S1A0dXRORUx3WmEzaEFCaStxeXdLTWFE?=
 =?utf-8?B?YjYvdkQ5VjhPVGhtVDRSN2wwL2pHbStza0NXR2VITGRSUklEVndXWnFYTUZP?=
 =?utf-8?B?NnNJaEdoRG1yVXJiYlYvU2J3RFZLOG1nOUxDNU5XbVo0cmdBWTBQWGh1WUt6?=
 =?utf-8?B?RXQvSE1tMmo2RUtLbHBQUlptQkN1TnRIcFdmYmMxSWduYnFOK1JuYXErTzJU?=
 =?utf-8?B?ZjNrNkRtS0JnMWNmMWdHME5DcjY4eTVrTENlaUgvNlVrMmhhMUQ0TGZrREor?=
 =?utf-8?B?Q25VN2pRajk1TzN2S09mcXJ3NDdCZUdKWVJZeVk5dFFpWUR1NUZpbkdHUnV3?=
 =?utf-8?B?MzV1NWRnMkczNDFLV3VROFdUbVRZKys3UWVHcUIyYzFtbHVBYzJ6dERKNmdX?=
 =?utf-8?B?azMyWjJrVGxZZnUyMm01SCtiL2xyL2Z3SmJSTFB1SUdLL2p2T3BUWDNQWW5p?=
 =?utf-8?B?SHRkUm1sNTdzUm9UWnN2cS9qOUk2VEN0YW5qcnhlNlVyaUdNODNidVFXS2Mx?=
 =?utf-8?B?WmVDTFREd2JHbmZyR1dhc1FHTW5tRXVEYjZHUmFUSm9wYVpKL0daVi9UVytn?=
 =?utf-8?B?NDArL2Q0UWJlcUVmT01qUy9KK1VnY2ZlSWtaWWdTZGZRNUFXRFlLaHc5VGt4?=
 =?utf-8?B?bmVnOHQyazcxUGZqRHdxVEh4SVh3amFYWFlBcExZekVNQ3ZKdTMrWWV3SFpW?=
 =?utf-8?B?RUxHZXhBTk85ZUhvYWlTalcwUjQwcWpCMlRUOWFYNVJNbTJ0UTF1T1VZKzVU?=
 =?utf-8?B?WUxQS1hVWWhQdTBWYnhFbGhGTm9xOEg3VzhDNmJyKzNyMnNTK05aYmgxYzZD?=
 =?utf-8?B?YUtCVnV6cG5UQThjQWxMa0tudmcwRE50aUJNTE4xT2oxU21BOVZEL3NjK1dR?=
 =?utf-8?B?TkM0d2dqQ3U5a2N2ZTYrSnV3RzhjaDE2dXo2MnBOcHlCemRCRHRldXkvU3Bh?=
 =?utf-8?B?MHpGT25wV2lnTk95Y0VCVWhUbjlNcHVsUjlvQmpmczJ4R0ZDQ2dzYTIzZm9T?=
 =?utf-8?B?YkdZdFpVRmtaeXhpSGQ5aDZTaFBBTm9aSDNxUnd0dXg3bHY5QzJLODkyT1B5?=
 =?utf-8?B?ZStwbkZwdVVmOWlKODBtMFRBL2hTSTFxcHd0RTBrUGJtTit1V1dleGtHc0Ro?=
 =?utf-8?B?U3dGcmtDSnN5OEU2WlUwSnlpK2lPaWZQRVM3WnJoVmtLWmI5eTIyR3dHL3du?=
 =?utf-8?B?Rmp5LzB0ekVlMko3MHZ3a2hBNEFkZ2FCODdMbkxoaUsybVE0cGtIVEk0TlFP?=
 =?utf-8?B?OTE3eXVXUlRjVVFMR0xwek42S0V0a1owWXY1Zm85Y2NzR2ZRVy9jSjdrcU5O?=
 =?utf-8?B?Q0dNZDBmWnJ1WmFNYWlvN0liVnh3NGREdzBmeEZsbGFueE11LzBaTDdBV1Rm?=
 =?utf-8?B?bGF2RlB1NVFDQVIxWkE1dzZCZ0lpdGFQOUhLNTJVNEc5bnFvcDJBZmRZU2tG?=
 =?utf-8?B?MUt0WG16VjZDeWk0Q0QrUlZzaEIydWx0aWJVN2orMDJOelBoM1EwMEZMbTJl?=
 =?utf-8?B?ekZTTU5wMW5TSEJUMkZUQ0puV1pDVnEzaFFOZ3V1MjU4aURXSkFnK1cyQ3Z1?=
 =?utf-8?B?SkxYMmFvU09yRGdtTzZ6VU10RVlJQUtoVGtLQlFTQW90QWtxVXdHWkpqeFpV?=
 =?utf-8?Q?xtfrDHzHK70ZMCcB9e0lvnuW1mvpHkSI?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZHBsdFdMZUp5S2NGeEVyMTBFaTg0NnZrcFJWQnJkcnJCZVRLeTNKbGZzRkUw?=
 =?utf-8?B?MkdoSWFRaVVGYjkyRWw0QU9XN2MzVDBvemdoWFVrdXpEVk9QWGQ2Q2Z3ODlV?=
 =?utf-8?B?cTRSMDBpa1lwT0RUWExwdncxbUh1dEYyZ0tjbmtZMEFlMFB4UllLUWNpRWlC?=
 =?utf-8?B?UWRIQ2tLRGE4Zllaazk1UlB0V2x6N1NKQkE4bXdhZEdnbStQUzB0eWN5dDE3?=
 =?utf-8?B?WElJU3JtajJtVG1Fb1h4Z282cjUxbWxVTEszWEFTTTlHQkl3dGd3Z0ZtQmNU?=
 =?utf-8?B?eUc1RityWE9yK1ppL3BMa2oxZGpXMisvZC9ndC9UOE43alNuZzA5dnNIR29t?=
 =?utf-8?B?bmpiUDJSTFE5ZmRwOTFTY2ExcUE0Vy94WW1YU1cycjdZUkQyZHJ6ckt5U0RN?=
 =?utf-8?B?T3RrK0lKSTVlS1VOOVd1eUlyREhJTHBTbk4vU21UWTYvMHJFQ1BwWW5MRkty?=
 =?utf-8?B?d1A3cDFMQ3A2YzRYVVdSdHEwTWVpNlVIRGFiS2d1Y2tQbVFpMG45SzNtOW8v?=
 =?utf-8?B?c0JCQ1FCV1FMU2Y4cktsdTVvOFllUTd3WTdQdzYvMnJneHh0ZEhKcU5taVV3?=
 =?utf-8?B?R2FaSHJPSDIvS3ZSRUwzUjV1RldPb3lNdWhKWGpXMmVVZXZJZS9XcG5wUGRl?=
 =?utf-8?B?TDZkSXROWTVJOFhadGxCdzVHOVRoNzh5THNmcGpINC9FYTYxVG9Yc1hyWkNl?=
 =?utf-8?B?YWJ5UkRtUWNuQ3lZZjg1QkRhc2FZdXV5THNTR21FNFd4a3kvQW9YMWM2eUhO?=
 =?utf-8?B?N216ZHVhdFBFMVI0ZnBaaEZCenpFcWtGak9pdmZaNVpscUIrRlByU2J5L25r?=
 =?utf-8?B?TllPV1JpZmNhb1dEQUFMY1hUb0cwREVDWjZVQ21NWXlqZkYzazJJSnk4OEdZ?=
 =?utf-8?B?b05LbkQrZWpjejY1elV2aE5XWHp2eGQ3SkxiUy9GRTdaaWNHSjhUcFFZMXMz?=
 =?utf-8?B?eGZjeWNtb1o1VUZUYUVkTWxVMm8vVDhsbkJSc1JvNmMyL09FaVdaaFNyOUly?=
 =?utf-8?B?Nk8xSTB1Q2VqT2NGZDYxeG9yWGM3cnBmZndnZjJhWE55UE5EUm15N3kvQ0Jx?=
 =?utf-8?B?bnhKdUxDS1VTUGhHck5VYkJZQzI0eDdTOEJDOHNodCs3M200MW40Q0gyZUt1?=
 =?utf-8?B?WEszWElmMXp1dmFvNmhNRUhmdmpQTFRIZ1p6VDZpUmxvVEJQMGQzZHBSaXJn?=
 =?utf-8?B?MXRRU0xMRGEvTytzTldBQ09jTVZ3dVpFaGVsZ0ZZZndDbnFpVTZtbkluTkw3?=
 =?utf-8?B?WnluNlRUaEZEc2p4VVE0bmNvbWFmYWJKK2ppVWxIZGtnUEdMTnZRRlJyTkQ3?=
 =?utf-8?B?YXJqTVBzWGUwU2QyTU1OTnVJd1F3aCtTdDh3bFAyeEdhVDcyM0JuVUcwS0Jl?=
 =?utf-8?B?S1ErZ24rajVrRG9QV1Y3TkhLbjUyZUpSVVN1cEVsU1FHR0dZbU5wdEFld0t4?=
 =?utf-8?B?Skh3SGg2OUFQRVYyRjVlYU15dURDWGxYcW9JRnVCVHdjSm1NZ09MNnJla0FI?=
 =?utf-8?B?RjUybk00Y2JRQUZrMklrT0RxY1VoVnNQUEl0RFNXYjFJbHRrNmFrUkcyRFli?=
 =?utf-8?B?alBpVTliZnF1VURQQW9DZ3JDVlFGWmxHZzQwMXJwRXdZSHRmMnAwc1ZTbFhu?=
 =?utf-8?B?a0lVb0lFbk10YVdsQjVRcnFuYmx2VmQ4SllmTDlCbzNXOUVoSHBZb1FWMFp4?=
 =?utf-8?B?MVFvODNtaEd0dFpZem1Nbk03RGZ1cUxXMHBudzdibE9uUUxSREE4Qm0zUUV5?=
 =?utf-8?B?YkxoVzR2cE9TSTdxN25pbUtkL0hNTjVjcklRTGo4TXNLT2lqT2c1VE40Rkpo?=
 =?utf-8?B?cnJVWlpIcHhBcHVYOGY0d0VaTTZKWFB5eEVTbjdQc0FlRmVFTC9FbG5yTXll?=
 =?utf-8?B?QysyTHFwazhZb1hQaU0rbzRTWUhBbGM1OXlBQytvdUJRaWw5TEppMitNMUZL?=
 =?utf-8?B?aHg1SGhBcTBNVFBSRzZJZFgrWldMUjEvSFFNN2Fkc3lSTGtIVHpKYVJWeFFX?=
 =?utf-8?B?UEVOVmM2VlVzQ1FnQVE2MUozZEplWXJCVzVpRDlxQURvSTJaak1zUTcvQUZT?=
 =?utf-8?B?VUcrS0Mzb1Foa295VktnRlRyWHJBNEVSODM4QXJSZTI0VTdLcVkxWXNPRFU1?=
 =?utf-8?B?MSt1azZDd0dUQW8xTlZIS3ovTEQzbEhkbVF5L0RDbWIvcHdkRHl3dGhITWdU?=
 =?utf-8?B?TkE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fd84918a-20a0-47cd-ae50-08de372e528f
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 14:22:02.7957
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: GJCJjT0iX+SNfZ9qVGekh+Af5nj41rb/Vr64MKupF14t8cCZP1YOv6kyotPi7QV8nxZwgl/kle+9jWX7FiSlTFLXM3Qb1uESZTr6UCv97pE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7459



On 09.12.25 15:19, Andrew Cooper wrote:
> On 08/12/2025 6:49 pm, Grygorii Strashko wrote:
>> Hi Andrew,
>>
>> On 06.12.25 16:21, Andrew Cooper wrote:
>>> On 06/12/2025 2:15 pm, Andrew Cooper wrote:
>>>> On 06/12/2025 9:10 am, Grygorii Strashko wrote:
>>>>>
>>>>> On 05.12.25 22:00, Andrew Cooper wrote:
>>>>>> On 05/12/2025 7:34 pm, Grygorii Strashko wrote:
>>>>>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>>>>
>>>>>>> Extend coverage support on .init and lib code.
>>>>>>> Add two hidden Kconfig options:
>>>>>>> - RELAX_INIT_CHECK "Relax strict check for .init sections only in
>>>>>>> %.init.o
>>>>>>> files"
>>>>>>> - DO_NOT_FREE_INIT_MEMORY "Prevent freeing of .init sections at the
>>>>>>> end of
>>>>>>> Xen boot."
>>>>>>>
>>>>>>> Both selected selected when COVERAGE=y, as getting coverage
>>>>>>> report for
>>>>>>> ".init" code is required:
>>>>>>> - to bypass strict check for .init sections only in %.init.o files;
>>>>>>> - the .init code stay in memory after Xen boot.
>>>>>>>
>>>>>>> RELAX_INIT_CHECK/DO_NOT_FREE_INIT_MEMORY could be used by other
>>>>>>> debug
>>>>>>> features in the future.
>>>>>>>
>>>>>>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>>>> ---
>>>>>>> changes in v2:
>>>>>>>     - add RELAX_INIT_CHECK and DO_NOT_FREE_INIT_MEMORY, those are two
>>>>>>> different things,
>>>>>>>       both potentially reusable
>>>>>>>     - enable coverage for libfdt/libelf always
>>>>>>>     - enable colverage for .init always
>>>>>> This is a lot nicer (i.e. more simple).
>>>>>>
>>>>>> But, I still don't know why we need to avoid freeing init memory
>>>>>> to make
>>>>>> this work.  What explodes if we dont?
>>>>>>
>>>>> It will just crash when coverage data is collected.
>>>>>
>>>>> First I made changes in make file to get .init covered
>>>>> then I hit a crash
>>>>> then I checked %.init.o
>>>>> conclusion was obvious.
>>>>>
>>>>> For example:
>>>>> objdump -x bzimage.init.o | grep gcov
>>>>>
>>>>> 0000000000000010 l     O .bss    0000000000000028
>>>>> __gcov0.bzimage_check
>>>>> 0000000000000040 l     O .bss    0000000000000040
>>>>> __gcov0.bzimage_headroom
>>>>> 0000000000000000 l     O .bss    0000000000000008
>>>>> __gcov0.output_length
>>>>> 0000000000000080 l     O .bss    0000000000000060
>>>>> __gcov0.bzimage_parse
>>>>> 0000000000000098 l     O .init.data.rel.local    0000000000000028
>>>>> __gcov_.bzimage_parse
>>>>> 0000000000000070 l     O .init.data.rel.local    0000000000000028
>>>>> __gcov_.bzimage_headroom
>>>>> 0000000000000048 l     O .init.data.rel.local    0000000000000028
>>>>> __gcov_.bzimage_check
>>>>> 0000000000000020 l     O .init.data.rel.local    0000000000000028
>>>>> __gcov_.output_length
>>>>> 0000000000000000         *UND*    0000000000000000 __gcov_init
>>>>> 0000000000000000         *UND*    0000000000000000 __gcov_exit
>>>>> 0000000000000000         *UND*    0000000000000000 __gcov_merge_add
>>>>> 0000000000000008 R_X86_64_PLT32    __gcov_init-0x0000000000000004
>>>>> 0000000000000012 R_X86_64_PLT32    __gcov_exit-0x0000000000000004
>>>>> 0000000000000020 R_X86_64_64       __gcov_merge_add
>>>>>
>>>> Aah, we should exclude the OJBCOPY too.  That's what's moving
>>>> .data.rel.local amongst other sections we target with attributes
>>>> directly.
>>>
>>> we can't target.
>>
>> I've come up with below diff - seems it's working without
>> DO_NOT_FREE_INIT_MEMORY.
>> Is this what you have in mind?
>>
>> diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
>> index 8fc201d12c2c..16b1a82db46e 100644
>> --- a/xen/Kconfig.debug
>> +++ b/xen/Kconfig.debug
>> @@ -40,7 +40,6 @@ config COVERAGE
>>          depends on SYSCTL && !LIVEPATCH
>>          select SUPPRESS_DUPLICATE_SYMBOL_WARNINGS if
>> !ENFORCE_UNIQUE_SYMBOLS
>>          select RELAX_INIT_CHECK
>> -       select DO_NOT_FREE_INIT_MEMORY
>>          help
>>            Enable code coverage support.
>>   
>> diff --git a/xen/Rules.mk b/xen/Rules.mk
>> index 8c4861a427e6..47fdcc1d23b5 100644
>> --- a/xen/Rules.mk
>> +++ b/xen/Rules.mk
>> @@ -33,11 +33,15 @@ cov-cflags-y :=
>>   nocov-y :=
>>   noubsan-y :=
>>   
>> +# when coverage is enabled the gcc internal section should stay in
>> memory
>> +# after Xen boot
>> +ifneq ($(CONFIG_COVERAGE),y)
>>   SPECIAL_DATA_SECTIONS := rodata $(foreach a,1 2 4 8 16, \
>>                                               $(foreach w,1 2 4, \
>>                                                          
>> rodata.str$(w).$(a)) \
>>                                               rodata.cst$(a)) \
>>                            $(foreach r,rel rel.ro,data.$(r).local)
>> +endif
>>   
>>   # The filename build.mk has precedence over Makefile
>>   include $(firstword $(wildcard $(srcdir)/build.mk) $(srcdir)/Makefile)
>> diff --git a/xen/common/libelf/Makefile b/xen/common/libelf/Makefile
>> index 60b3ae40728f..8180c78f1510 100644
>> --- a/xen/common/libelf/Makefile
>> +++ b/xen/common/libelf/Makefile
>> @@ -1,8 +1,10 @@
>>   obj-bin-y := libelf.o
>>   libelf-objs := libelf-tools.o libelf-loader.o libelf-dominfo.o
>>   
>> +ifneq ($(CONFIG_COVERAGE),y)
>>   SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
>>   OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section
>> .$(s)=.init.$(s))
>> +endif
>>   
>>   CFLAGS-y += -Wno-pointer-sign
>>   
>> diff --git a/xen/common/libfdt/Makefile b/xen/common/libfdt/Makefile
>> index ae0f69c01373..fb26e5bff0fd 100644
>> --- a/xen/common/libfdt/Makefile
>> +++ b/xen/common/libfdt/Makefile
>> @@ -4,7 +4,9 @@ SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
>>   
>>   # For CONFIG_OVERLAY_DTB, libfdt functionalities will be needed
>> during runtime.
>>   ifneq ($(CONFIG_OVERLAY_DTB),y)
>> -OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section
>> .$(s)=.init.$(s))
>> +       ifneq ($(CONFIG_COVERAGE),y)
>> +               OBJCOPYFLAGS := $(foreach
>> s,$(SECTIONS),--rename-section .$(s)=.init.$(s))
>> +       endif
>>   endif
> 
> This is the (aforementioned) non-standard way of doing .init.o, which is
> why it doesn't play nicely.
> 
> I suggest that we first convert libelf and libfdt to the standard way of
> doing .init.

I assume the rest is ok.

> 
> For libelf this means we need regular __init annotations, but #undef'd
> outside of __XEN__ (when we're doing the userspace build).
> 

Need clarification here - this are imported libraries and changing their code
directly was not welcome before. Therefore there is Xen specific magic in Makefiles.
:(

Just an idea1, may be ".init" handling can be just dropped from libelf and libfdt
Makefiles with comment added instead (kinda "TODO") - they will be built-in.
It doesn't work with CONFIG_CC_SPLIT_SECTIONS any way now.

Just an idea2, drop libelf and libfdt changes from this patch.
- they will be not in coverage report (nocov-y += *.obj)
- will be resolved in the future.

Trying to avoid blocking on external dependencies :(

> For libfdt, this will need some init_or_$FOO things (matching
> init_or_livepatch).
> 
> Once the custom init has been made standard, this code becomes easier to
> move into lib, and we no longer have special cases when trying to extend
> coverage.


-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 14:24:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 14:24:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181762.1504765 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSydP-0005nL-Kj; Tue, 09 Dec 2025 14:24:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181762.1504765; Tue, 09 Dec 2025 14:24:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSydP-0005nE-HC; Tue, 09 Dec 2025 14:24:11 +0000
Received: by outflank-mailman (input) for mailman id 1181762;
 Tue, 09 Dec 2025 14:24:09 +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
 <SRS0=R9j7=6P=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vSydN-0005n4-N7
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 14:24:09 +0000
Received: from mail-oi1-x236.google.com (mail-oi1-x236.google.com
 [2607:f8b0:4864:20::236])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b8b0289b-d50a-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 15:24:08 +0100 (CET)
Received: by mail-oi1-x236.google.com with SMTP id
 5614622812f47-4537407477aso3503688b6e.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 06:24:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b8b0289b-d50a-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1765290247; x=1765895047; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hQJyQdQ4jp4dY3QIXN3bS663sSN2ihIY8NpuF0LJuNU=;
        b=uRKMvXHPjUkEhNqkLKC6/naMzRElUr1N0Pshnxo37YhNTJaYFz7tpzx18wfMoL1l8+
         nggXp+8W86SwlPzI9N07H0zbXGXZHEtW7vbF8pt5n/Ej5EAe7qawyZ1WJIu0negAOv1v
         n6sMaiFts0v+N2pUiztmTGvo2bfja6oQfTC45GtA1Vs815FNMnReEqXdRuVyKSf4rcAE
         gbGrt2OkXWVoccxE4vv/bWiQ8z0m4sXnV3D87FFq6/JFNRipCvyUtoK4dHzSS/L16zuT
         Yfv7GbMpVXYGqdRUgGJxiv4bwo9YEoqpwk4P4xhgme3LauXk7ntPV+Qmdedil91dPo9F
         w3xA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765290247; x=1765895047;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=hQJyQdQ4jp4dY3QIXN3bS663sSN2ihIY8NpuF0LJuNU=;
        b=wmkrq15Eikn6WGmM1W1x4jJza/hybI2L7KBixcZYHnupixJjOwUWwmMqqBhqXYzQEs
         u+ZfuPJVpRwArW8Nl8zGy3b+uSmdLU6A1NCyZjVeywiCP9UhbQWZXxnHXw+M0KT1ozBG
         u6Tz1y0cFWJURIiuyD2NdTMlhjhsGNNSdVTt7wsmwdfVvoO1y+BxQV5ZTymq03L9GzNm
         q/8K95ELi/IcMNKr49w4bPqgRJsAocu+eguCbifvvDspXff3eQ0bp2FAnlHjSqeBXqdg
         Y92N7pu52BxhV69pJND08ZQimXW3Zb1ueBw1WMbIKF/J/t0GF3Fwy1J8SEbDmDSu4HDJ
         Fe5Q==
X-Gm-Message-State: AOJu0YzL7vTW3dyBeinwX2TilyjWg41oFV0QaJgp3/OKgc2Hfkt005um
	edhyTy5l+nExca29gwPE/VFNRhS9UAtXUoU+5ZPKU0oeU/b05bOSYL29Gtgbpg69nIanlePnip1
	YpbnDWkR2zRJ0DS88xGkuoZD0rIBffQYu/J2mUbTcQA==
X-Gm-Gg: ASbGnctLbL6YCivhbb5FIPQPFXBDSfXnCcsAtTijkmFVn3/hC2kfkb7rTJGWOrYcmbe
	QGzlJILFIRvtxVW2Uo/ps/h2WEO3iU+/xoMKD6/o8DanPybsbEOSdNoPOxpULY4g/XnYz4bA4jP
	iKZQGTAdNUKxvjaSaGxDt7GYZX5RCDPb2ab9n71v6qeFsrpHklzM+z4GxTYMfM1f8UGdMGVnivj
	rcksUofZ4dQsPY/z0DVgujYxIMM8oSSO9R29Nlrs8MCpSA0U1NAuELMA/QwYHRiz2soQGvbSFvL
	zxt+66dROOsigr7njqLwE0VGpgjMnRqSec+NUG2YQ8T2ny1EON9mFPeTaWJgQ7iTqxzfxrmZ
X-Google-Smtp-Source: AGHT+IH4VnqchHfY/6m9MhvZ+qWlXH59zFsPLOEnkwvQ2qjiDLRvdGhJu/aObcFFgxJLfzsSWIk1cDzimFGntchd1Ns=
X-Received: by 2002:a05:6808:1482:b0:450:b82d:804b with SMTP id
 5614622812f47-4539df9309fmr4045450b6e.8.1765290246606; Tue, 09 Dec 2025
 06:24:06 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764930353.git.bertrand.marquis@arm.com> <17755cde0354ba0a70996b3a0e9eae23c2342b72.1764930353.git.bertrand.marquis@arm.com>
In-Reply-To: <17755cde0354ba0a70996b3a0e9eae23c2342b72.1764930353.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 9 Dec 2025 15:23:54 +0100
X-Gm-Features: AQt7F2rbARK6cnGBk2kM9csj7Uk65_oJJqa3qb6VdHjeTeVVv0rdargd7yJr9m8
Message-ID: <CAHUa44FEi-ir62bnjEx-ihN4AH18+K1qBYaaS17=7waGPRy0Uw@mail.gmail.com>
Subject: Re: [PATCH v1 06/12] xen/arm: ffa: rework VM RX/TX buffer management
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Fri, Dec 5, 2025 at 11:37=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Rework access to VM RX/TX buffer to use acquire/release functions
> equivalent to the ones used for the SPMC RX/TX buffers and remove all
> direct access to ctx->tx or ctx->rx by giving back the buffer pointer
> and size back in acquire.
>
> This design ensures that rx or page_count is not accessed without the
> lock held and limit direct usage of the context rx/tx buffer info to
> ffa_rxtx.c
>
> Modify msg, partinfo and shm code to use the new RX/TX buffer
> acquire/release functions and remove all direct accesses to rx/tx and
> page_count so that any access is done only with the lock taken.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes in v1:
> - patch introduced
> ---
>  xen/arch/arm/tee/ffa.c          |  2 +-
>  xen/arch/arm/tee/ffa_msg.c      | 32 ++++++++++++------------
>  xen/arch/arm/tee/ffa_partinfo.c |  8 +++---
>  xen/arch/arm/tee/ffa_private.h  |  6 +++--
>  xen/arch/arm/tee/ffa_rxtx.c     | 43 ++++++++++++++++++++++++++++-----
>  xen/arch/arm/tee/ffa_shm.c      | 18 +++++++-------
>  6 files changed, 72 insertions(+), 37 deletions(-)

Looks good
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 43af49d1c011..69a5e1e876ce 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -345,7 +345,7 @@ static bool ffa_handle_call(struct cpu_user_regs *reg=
s)
>          ffa_handle_partition_info_get(regs);
>          return true;
>      case FFA_RX_RELEASE:
> -        e =3D ffa_rx_release(d);
> +        e =3D ffa_rx_release(ctx);
>          break;
>      case FFA_MSG_SEND_DIRECT_REQ_32:
>      case FFA_MSG_SEND_DIRECT_REQ_64:
> diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
> index 2c2ebc9c5cd6..d60eed6d8811 100644
> --- a/xen/arch/arm/tee/ffa_msg.c
> +++ b/xen/arch/arm/tee/ffa_msg.c
> @@ -94,6 +94,8 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const =
void *src_buf,
>      struct domain *dst_d;
>      struct ffa_ctx *dst_ctx;
>      struct ffa_part_msg_rxtx *dst_msg;
> +    void *rx_buf;
> +    size_t rx_size;
>      int err;
>      int32_t ret;
>
> @@ -120,20 +122,19 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, co=
nst void *src_buf,
>      }
>
>      /* This also checks that destination has set a Rx buffer */
> -    ret =3D ffa_rx_acquire(dst_d);
> +    ret =3D ffa_rx_acquire(dst_ctx , &rx_buf, &rx_size);
>      if ( ret )
>          goto out_unlock;
>
>      /* we need to have enough space in the destination buffer */
> -    if ( (dst_ctx->page_count * FFA_PAGE_SIZE -
> -          sizeof(struct ffa_part_msg_rxtx)) < src_msg->msg_size )
> +    if ( (rx_size - sizeof(struct ffa_part_msg_rxtx)) < src_msg->msg_siz=
e )
>      {
>          ret =3D FFA_RET_NO_MEMORY;
> -        ffa_rx_release(dst_d);
> +        ffa_rx_release(dst_ctx);
>          goto out_unlock;
>      }
>
> -    dst_msg =3D dst_ctx->rx;
> +    dst_msg =3D rx_buf;
>
>      /* prepare destination header */
>      dst_msg->flags =3D 0;
> @@ -142,7 +143,7 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, cons=
t void *src_buf,
>      dst_msg->send_recv_id =3D src_msg->send_recv_id;
>      dst_msg->msg_size =3D src_msg->msg_size;
>
> -    memcpy(dst_ctx->rx + sizeof(struct ffa_part_msg_rxtx),
> +    memcpy(rx_buf + sizeof(struct ffa_part_msg_rxtx),
>             src_buf + src_msg->msg_offset, src_msg->msg_size);
>
>      /* receiver rx buffer will be released by the receiver*/
> @@ -159,17 +160,20 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *=
regs)
>  {
>      struct domain *src_d =3D current->domain;
>      struct ffa_ctx *src_ctx =3D src_d->arch.tee;
> +    const void *tx_buf;
> +    size_t tx_size;
>      struct ffa_part_msg_rxtx src_msg;
>      uint16_t dst_id, src_id;
>      int32_t ret;
>
>      BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx) >=3D FFA_PAGE_SIZE);
>
> -    if ( !spin_trylock(&src_ctx->tx_lock) )
> -        return FFA_RET_BUSY;
> +    ret =3D ffa_tx_acquire(src_ctx, &tx_buf, &tx_size);
> +    if ( ret !=3D FFA_RET_OK )
> +        return ret;
>
>      /* create a copy of the message header */
> -    memcpy(&src_msg, src_ctx->tx, sizeof(src_msg));
> +    memcpy(&src_msg, tx_buf, sizeof(src_msg));
>
>      src_id =3D src_msg.send_recv_id >> 16;
>      dst_id =3D src_msg.send_recv_id & GENMASK(15,0);
> @@ -182,10 +186,8 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *r=
egs)
>
>      /* check source message fits in buffer */
>      if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx) ||
> -            src_msg.msg_size =3D=3D 0 ||
> -            src_msg.msg_offset > src_ctx->page_count * FFA_PAGE_SIZE ||
> -            src_msg.msg_size > (src_ctx->page_count * FFA_PAGE_SIZE -
> -                                src_msg.msg_offset) )
> +            src_msg.msg_size =3D=3D 0 || src_msg.msg_offset > tx_size ||
> +            src_msg.msg_size > (tx_size - src_msg.msg_offset) )
>      {
>          ret =3D FFA_RET_INVALID_PARAMETERS;
>          goto out;
> @@ -206,12 +208,12 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *=
regs)
>      else if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
>      {
>          /* Message for a VM */
> -        ret =3D ffa_msg_send2_vm(dst_id, src_ctx->tx, &src_msg);
> +        ret =3D ffa_msg_send2_vm(dst_id, tx_buf, &src_msg);
>      }
>      else
>          ret =3D FFA_RET_INVALID_PARAMETERS;
>
>  out:
> -    spin_unlock(&src_ctx->tx_lock);
> +    ffa_tx_release(src_ctx);
>      return ret;
>  }
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index 145b869957b0..16c905cb12b8 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -224,6 +224,7 @@ void ffa_handle_partition_info_get(struct cpu_user_re=
gs *regs)
>          get_user_reg(regs, 4),
>      };
>      uint32_t dst_size =3D 0;
> +    size_t buf_size;
>      void *dst_buf, *end_buf;
>      uint32_t ffa_vm_count =3D 0, ffa_sp_count =3D 0;
>
> @@ -268,12 +269,11 @@ void ffa_handle_partition_info_get(struct cpu_user_=
regs *regs)
>      }
>
>      /* Get the RX buffer to write the list of partitions */
> -    ret =3D ffa_rx_acquire(d);
> +    ret =3D ffa_rx_acquire(ctx, &dst_buf, &buf_size);
>      if ( ret !=3D FFA_RET_OK )
>          goto out;
>
> -    dst_buf =3D ctx->rx;
> -    end_buf =3D ctx->rx + ctx->page_count * FFA_PAGE_SIZE;
> +    end_buf =3D dst_buf + buf_size;
>
>      /* An entry should be smaller than a page */
>      BUILD_BUG_ON(sizeof(struct ffa_partition_info_1_1) > FFA_PAGE_SIZE);
> @@ -304,7 +304,7 @@ void ffa_handle_partition_info_get(struct cpu_user_re=
gs *regs)
>
>  out_rx_release:
>      if ( ret )
> -        ffa_rx_release(d);
> +        ffa_rx_release(ctx);
>  out:
>      if ( ret )
>          ffa_set_regs_error(regs, ret);
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index 8797a62abd01..0d1bab6cc700 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -444,8 +444,10 @@ void ffa_rxtx_domain_destroy(struct domain *d);
>  int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
>                              register_t rx_addr, uint32_t page_count);
>  int32_t ffa_handle_rxtx_unmap(void);
> -int32_t ffa_rx_acquire(struct domain *d);
> -int32_t ffa_rx_release(struct domain *d);
> +int32_t ffa_rx_acquire(struct ffa_ctx *ctx, void **buf, size_t *buf_size=
);
> +int32_t ffa_rx_release(struct ffa_ctx *ctx);
> +int32_t ffa_tx_acquire(struct ffa_ctx *ctx, const void **buf, size_t *bu=
f_size);
> +int32_t ffa_tx_release(struct ffa_ctx *ctx);
>
>  void ffa_notif_init(void);
>  void ffa_notif_init_interrupt(void);
> diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
> index e325eae07bda..f79f2cf406aa 100644
> --- a/xen/arch/arm/tee/ffa_rxtx.c
> +++ b/xen/arch/arm/tee/ffa_rxtx.c
> @@ -257,10 +257,9 @@ int32_t ffa_handle_rxtx_unmap(void)
>      return rxtx_unmap(current->domain);
>  }
>
> -int32_t ffa_rx_acquire(struct domain *d)
> +int32_t ffa_rx_acquire(struct ffa_ctx *ctx, void **buf, size_t *buf_size=
)
>  {
>      int32_t ret =3D FFA_RET_OK;
> -    struct ffa_ctx *ctx =3D d->arch.tee;
>
>      spin_lock(&ctx->rx_lock);
>
> @@ -278,21 +277,22 @@ int32_t ffa_rx_acquire(struct domain *d)
>
>      if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
>      {
> -        ret =3D ffa_simple_call(FFA_RX_ACQUIRE, ffa_get_vm_id(d), 0, 0, =
0);
> +        ret =3D ffa_simple_call(FFA_RX_ACQUIRE, ctx->ffa_id, 0, 0, 0);
>          if ( ret !=3D FFA_RET_OK )
>              goto out;
>      }
>      ctx->rx_is_free =3D false;
> +    *buf =3D ctx->rx;
> +    *buf_size =3D ctx->page_count * FFA_PAGE_SIZE;
>  out:
>      spin_unlock(&ctx->rx_lock);
>
>      return ret;
>  }
>
> -int32_t ffa_rx_release(struct domain *d)
> +int32_t ffa_rx_release(struct ffa_ctx *ctx)
>  {
>      int32_t ret =3D FFA_RET_DENIED;
> -    struct ffa_ctx *ctx =3D d->arch.tee;
>
>      spin_lock(&ctx->rx_lock);
>
> @@ -301,7 +301,7 @@ int32_t ffa_rx_release(struct domain *d)
>
>      if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
>      {
> -        ret =3D ffa_simple_call(FFA_RX_RELEASE, ffa_get_vm_id(d), 0, 0, =
0);
> +        ret =3D ffa_simple_call(FFA_RX_RELEASE, ctx->ffa_id, 0, 0, 0);
>          if ( ret !=3D FFA_RET_OK )
>              goto out;
>      }
> @@ -313,6 +313,37 @@ out:
>      return ret;
>  }
>
> +int32_t ffa_tx_acquire(struct ffa_ctx *ctx, const void **buf, size_t *bu=
f_size)
> +{
> +    int32_t ret =3D FFA_RET_DENIED;
> +
> +    if ( !spin_trylock(&ctx->tx_lock) )
> +        return FFA_RET_BUSY;
> +
> +    if ( !ctx->page_count )
> +        goto err_unlock;
> +
> +    if ( !ctx->tx )
> +        goto err_unlock;
> +
> +    *buf =3D ctx->tx;
> +    *buf_size =3D ctx->page_count * FFA_PAGE_SIZE;
> +    return FFA_RET_OK;
> +
> +err_unlock:
> +    spin_unlock(&ctx->tx_lock);
> +
> +    return ret;
> +}
> +
> +int32_t ffa_tx_release(struct ffa_ctx *ctx)
> +{
> +    ASSERT(spin_is_locked(&ctx->tx_lock));
> +
> +    spin_unlock(&ctx->tx_lock);
> +    return FFA_RET_OK;
> +}
> +
>  int32_t ffa_rxtx_domain_init(struct domain *d)
>  {
>      struct ffa_ctx *ctx =3D d->arch.tee;
> diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
> index e275d3769d9b..b862578c553c 100644
> --- a/xen/arch/arm/tee/ffa_shm.c
> +++ b/xen/arch/arm/tee/ffa_shm.c
> @@ -460,6 +460,8 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
>      struct ffa_mem_transaction_int trans;
>      struct domain *d =3D current->domain;
>      struct ffa_ctx *ctx =3D d->arch.tee;
> +    const void *tx_buf;
> +    size_t tx_size;
>      struct ffa_shm_mem *shm =3D NULL;
>      register_t handle_hi =3D 0;
>      register_t handle_lo =3D 0;
> @@ -498,16 +500,14 @@ void ffa_handle_mem_share(struct cpu_user_regs *reg=
s)
>          goto out_set_ret;
>      }
>
> -    if ( !spin_trylock(&ctx->tx_lock) )
> -    {
> -        ret =3D FFA_RET_BUSY;
> +    ret =3D ffa_tx_acquire(ctx, &tx_buf, &tx_size);
> +    if ( ret !=3D FFA_RET_OK )
>          goto out_set_ret;
> -    }
>
> -    if ( frag_len > ctx->page_count * FFA_PAGE_SIZE )
> +    if ( frag_len > tx_size )
>          goto out_unlock;
>
> -    ret =3D read_mem_transaction(ACCESS_ONCE(ctx->guest_vers), ctx->tx,
> +    ret =3D read_mem_transaction(ACCESS_ONCE(ctx->guest_vers), tx_buf,
>                                 frag_len, &trans);
>      if ( ret )
>          goto out_unlock;
> @@ -535,7 +535,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
>      if ( trans.mem_access_offs + trans.mem_access_size > frag_len )
>          goto out_unlock;
>
> -    mem_access =3D ctx->tx + trans.mem_access_offs;
> +    mem_access =3D tx_buf + trans.mem_access_offs;
>
>      dst_id =3D ACCESS_ONCE(mem_access->access_perm.endpoint_id);
>      if ( !FFA_ID_IS_SECURE(dst_id) )
> @@ -558,7 +558,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
>          goto out_unlock;
>      }
>
> -    region_descr =3D ctx->tx + region_offs;
> +    region_descr =3D tx_buf + region_offs;
>      range_count =3D ACCESS_ONCE(region_descr->address_range_count);
>      page_count =3D ACCESS_ONCE(region_descr->total_page_count);
>
> @@ -605,7 +605,7 @@ out:
>      if ( ret )
>          free_ffa_shm_mem(d, shm);
>  out_unlock:
> -    spin_unlock(&ctx->tx_lock);
> +    ffa_tx_release(ctx);
>
>  out_set_ret:
>      if ( ret =3D=3D 0)
> --
> 2.51.2
>


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 14:28:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 14:28:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181778.1504774 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSyhd-0006bc-7q; Tue, 09 Dec 2025 14:28:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181778.1504774; Tue, 09 Dec 2025 14:28:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSyhd-0006bV-4x; Tue, 09 Dec 2025 14:28:33 +0000
Received: by outflank-mailman (input) for mailman id 1181778;
 Tue, 09 Dec 2025 14:28:31 +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 <SRS0=sSjK=6P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSyhb-0006b9-MO
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 14:28:31 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 55349ccf-d50b-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 15:28:30 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso54424335e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 06:28:30 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a7da2d3e9sm16949845e9.17.2025.12.09.06.28.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 06:28:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 55349ccf-d50b-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765290509; x=1765895309; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bm/eR9tm4GrPgwE/G1zqJn6VZ+le5rWynby2zeWK9mM=;
        b=Fn1kfn8NAPZ4uSS53pcAKpKR0k8M5SouCoJn/RvAvBv1LVoKIEEQ5FmBTMZtYMBs08
         Up1YWlz9W0Djc4Slst2LoEATmaSpS8lqw/PYTLd+uAjrXZR7t6qIPclRactleaG2wx2N
         8a5fWnqTRGk0WFVNQluCWy91LDE5vZWzat/7ly+6/VfBTetfxRbJAe3coosU/v4uDw9q
         MgFUzGH/zcAUrU9OGzZuxKpoIu+TV8+xcE0Hv/4FBXLneD8P+ohyLe8MZMI2iibArz7q
         cnqB9UTQBBo0GJKijT5ciw5BpVZ/uy6lrkYigbQN6LK/EQ8Yerf0khmr2tuOhRuqQJwj
         FuFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765290509; x=1765895309;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bm/eR9tm4GrPgwE/G1zqJn6VZ+le5rWynby2zeWK9mM=;
        b=sRnS5KIcApItt7xDvclxzSVgfgwTjBdMGutwlktGVzjisff5IfwjPHkPBgpDT+5TYC
         /97KOyvPXRYKwrAVDVbtDkinX6fE89Mg7xJfEKtu59/GPC8WKu8/XuXyjo6KngQ90ynj
         Cbnw2W4mVdMoP5JDP5evV23M5f5zAi7MxTgm0AKtZ7d89GIQF+lOiIXSkOul5EQk2ZHr
         sW0ugKXl8LY+qsaQWqWrAhfdBApp5jAtS43nY4iIH0DEXvRszoOktMk0rTMjPuELyZOK
         Xlesj9rVlj/vLiC8TDnYBmL9RGd5eimnykOeXsCw+tBXvWnBHqOwTA9LTbN/rucjOcgv
         uRxw==
X-Forwarded-Encrypted: i=1; AJvYcCVeIwNcbIpFo+oel028/z0x+UWlUOv7G8awOb7tqzzpi2Xf+fJxYzcz9Ipvgacac+LVc7NaKJvO5ZQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyfK1kCvBQmB1y0lJ5N/x/0luxE2bLZYj2kblXtv/TZgJh93yaQ
	vwhmpY/5w+0DJUCVCNY6qn8B1fXxs7fqCUXnPdpgdcIOdEPxPEcXBE6+q7+dl5JIfQ==
X-Gm-Gg: ASbGncvx2pJZ5EK1tqOxf2oLOJU5/Yayn38uovIdOXAe1I/El6zNE0RtjPcorbxY2uy
	ANrPLd/sLMDY16I+QwgGp1S1JbEMEl9CnFmIKJizn/O13j1pceB9Q1xqxAdnQrTv4MgGkuR3EHH
	3HNQJ/nff5HJQfCzZbSoW9KQXFWNZ5Vo3L04SgfEC8uV4QgvkMCil6STks9yDxrdgW9KSmtZLs/
	eB531R2ITqc9JCC9Eu02JAWDsxAGmQ+Ezn7wzzJ7nxQN6BbdBrkcQgHqpZtDHI3wJXqQDLZpLFE
	sWHbfQ1tGSIUDhM18JM5Sl1CWWg8Ux5+eJEE4tFEXcIOLapx/5hTO7yukFq1MWzsNaMb5NmGQql
	mVo8k+VQyOsvwyTWKpGlVx6GkYEbXBCpxex/EJKQ0ljQqb9HDO7P6jyIrI9O2eDV0CwZKH3YBY9
	I09DyONHGUM1Yx9ozc3mLiH44v50yF3LAu+INNkohnz9rK+YnL+E9XwteyCvnzIT/IOgoZeLazf
	Kg=
X-Google-Smtp-Source: AGHT+IFOClFM8GwC+og3tm1z//Ca8tzJIV19Ttv+tMbOacBeUyzRD9S2mnc4elzo4fVm7vSyRnx4/g==
X-Received: by 2002:a05:600c:1e88:b0:479:2a78:4a2e with SMTP id 5b1f17b1804b1-47a7fa21c2fmr17817505e9.7.1765290509348;
        Tue, 09 Dec 2025 06:28:29 -0800 (PST)
Message-ID: <c18b4522-e131-495b-bd7f-2eb7e6568a8a@suse.com>
Date: Tue, 9 Dec 2025 15:28:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2] coverage: extend coverage on .init and lib code
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251205193411.1368659-1-grygorii_strashko@epam.com>
 <d9a632d1-8587-45bb-bc13-8dab8d346cb2@citrix.com>
 <4fc76270-98e6-46c4-a6a4-d73772e079c9@epam.com>
 <483d50d9-a076-4698-bd14-28afabd5d369@citrix.com>
 <f6cccd82-3112-4696-850a-119843fca5ec@citrix.com>
 <18ab3734-deb9-4569-ade5-9d96a7bf3c7c@epam.com>
 <25069a8e-ef00-4706-bffa-b3b724cca200@citrix.com>
 <4e7e8f25-a658-4e8d-bdce-1e1266ff6339@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <4e7e8f25-a658-4e8d-bdce-1e1266ff6339@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.12.2025 15:21, Grygorii Strashko wrote:
> 
> 
> On 09.12.25 15:19, Andrew Cooper wrote:
>> On 08/12/2025 6:49 pm, Grygorii Strashko wrote:
>>> Hi Andrew,
>>>
>>> On 06.12.25 16:21, Andrew Cooper wrote:
>>>> On 06/12/2025 2:15 pm, Andrew Cooper wrote:
>>>>> On 06/12/2025 9:10 am, Grygorii Strashko wrote:
>>>>>>
>>>>>> On 05.12.25 22:00, Andrew Cooper wrote:
>>>>>>> On 05/12/2025 7:34 pm, Grygorii Strashko wrote:
>>>>>>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>>>>>
>>>>>>>> Extend coverage support on .init and lib code.
>>>>>>>> Add two hidden Kconfig options:
>>>>>>>> - RELAX_INIT_CHECK "Relax strict check for .init sections only in
>>>>>>>> %.init.o
>>>>>>>> files"
>>>>>>>> - DO_NOT_FREE_INIT_MEMORY "Prevent freeing of .init sections at the
>>>>>>>> end of
>>>>>>>> Xen boot."
>>>>>>>>
>>>>>>>> Both selected selected when COVERAGE=y, as getting coverage
>>>>>>>> report for
>>>>>>>> ".init" code is required:
>>>>>>>> - to bypass strict check for .init sections only in %.init.o files;
>>>>>>>> - the .init code stay in memory after Xen boot.
>>>>>>>>
>>>>>>>> RELAX_INIT_CHECK/DO_NOT_FREE_INIT_MEMORY could be used by other
>>>>>>>> debug
>>>>>>>> features in the future.
>>>>>>>>
>>>>>>>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>>>>> ---
>>>>>>>> changes in v2:
>>>>>>>>     - add RELAX_INIT_CHECK and DO_NOT_FREE_INIT_MEMORY, those are two
>>>>>>>> different things,
>>>>>>>>       both potentially reusable
>>>>>>>>     - enable coverage for libfdt/libelf always
>>>>>>>>     - enable colverage for .init always
>>>>>>> This is a lot nicer (i.e. more simple).
>>>>>>>
>>>>>>> But, I still don't know why we need to avoid freeing init memory
>>>>>>> to make
>>>>>>> this work.  What explodes if we dont?
>>>>>>>
>>>>>> It will just crash when coverage data is collected.
>>>>>>
>>>>>> First I made changes in make file to get .init covered
>>>>>> then I hit a crash
>>>>>> then I checked %.init.o
>>>>>> conclusion was obvious.
>>>>>>
>>>>>> For example:
>>>>>> objdump -x bzimage.init.o | grep gcov
>>>>>>
>>>>>> 0000000000000010 l     O .bss    0000000000000028
>>>>>> __gcov0.bzimage_check
>>>>>> 0000000000000040 l     O .bss    0000000000000040
>>>>>> __gcov0.bzimage_headroom
>>>>>> 0000000000000000 l     O .bss    0000000000000008
>>>>>> __gcov0.output_length
>>>>>> 0000000000000080 l     O .bss    0000000000000060
>>>>>> __gcov0.bzimage_parse
>>>>>> 0000000000000098 l     O .init.data.rel.local    0000000000000028
>>>>>> __gcov_.bzimage_parse
>>>>>> 0000000000000070 l     O .init.data.rel.local    0000000000000028
>>>>>> __gcov_.bzimage_headroom
>>>>>> 0000000000000048 l     O .init.data.rel.local    0000000000000028
>>>>>> __gcov_.bzimage_check
>>>>>> 0000000000000020 l     O .init.data.rel.local    0000000000000028
>>>>>> __gcov_.output_length
>>>>>> 0000000000000000         *UND*    0000000000000000 __gcov_init
>>>>>> 0000000000000000         *UND*    0000000000000000 __gcov_exit
>>>>>> 0000000000000000         *UND*    0000000000000000 __gcov_merge_add
>>>>>> 0000000000000008 R_X86_64_PLT32    __gcov_init-0x0000000000000004
>>>>>> 0000000000000012 R_X86_64_PLT32    __gcov_exit-0x0000000000000004
>>>>>> 0000000000000020 R_X86_64_64       __gcov_merge_add
>>>>>>
>>>>> Aah, we should exclude the OJBCOPY too.  That's what's moving
>>>>> .data.rel.local amongst other sections we target with attributes
>>>>> directly.
>>>>
>>>> we can't target.
>>>
>>> I've come up with below diff - seems it's working without
>>> DO_NOT_FREE_INIT_MEMORY.
>>> Is this what you have in mind?
>>>
>>> diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
>>> index 8fc201d12c2c..16b1a82db46e 100644
>>> --- a/xen/Kconfig.debug
>>> +++ b/xen/Kconfig.debug
>>> @@ -40,7 +40,6 @@ config COVERAGE
>>>          depends on SYSCTL && !LIVEPATCH
>>>          select SUPPRESS_DUPLICATE_SYMBOL_WARNINGS if
>>> !ENFORCE_UNIQUE_SYMBOLS
>>>          select RELAX_INIT_CHECK
>>> -       select DO_NOT_FREE_INIT_MEMORY
>>>          help
>>>            Enable code coverage support.
>>>   
>>> diff --git a/xen/Rules.mk b/xen/Rules.mk
>>> index 8c4861a427e6..47fdcc1d23b5 100644
>>> --- a/xen/Rules.mk
>>> +++ b/xen/Rules.mk
>>> @@ -33,11 +33,15 @@ cov-cflags-y :=
>>>   nocov-y :=
>>>   noubsan-y :=
>>>   
>>> +# when coverage is enabled the gcc internal section should stay in
>>> memory
>>> +# after Xen boot
>>> +ifneq ($(CONFIG_COVERAGE),y)
>>>   SPECIAL_DATA_SECTIONS := rodata $(foreach a,1 2 4 8 16, \
>>>                                               $(foreach w,1 2 4, \
>>>                                                          
>>> rodata.str$(w).$(a)) \
>>>                                               rodata.cst$(a)) \
>>>                            $(foreach r,rel rel.ro,data.$(r).local)
>>> +endif
>>>   
>>>   # The filename build.mk has precedence over Makefile
>>>   include $(firstword $(wildcard $(srcdir)/build.mk) $(srcdir)/Makefile)
>>> diff --git a/xen/common/libelf/Makefile b/xen/common/libelf/Makefile
>>> index 60b3ae40728f..8180c78f1510 100644
>>> --- a/xen/common/libelf/Makefile
>>> +++ b/xen/common/libelf/Makefile
>>> @@ -1,8 +1,10 @@
>>>   obj-bin-y := libelf.o
>>>   libelf-objs := libelf-tools.o libelf-loader.o libelf-dominfo.o
>>>   
>>> +ifneq ($(CONFIG_COVERAGE),y)
>>>   SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
>>>   OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section
>>> .$(s)=.init.$(s))
>>> +endif
>>>   
>>>   CFLAGS-y += -Wno-pointer-sign
>>>   
>>> diff --git a/xen/common/libfdt/Makefile b/xen/common/libfdt/Makefile
>>> index ae0f69c01373..fb26e5bff0fd 100644
>>> --- a/xen/common/libfdt/Makefile
>>> +++ b/xen/common/libfdt/Makefile
>>> @@ -4,7 +4,9 @@ SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
>>>   
>>>   # For CONFIG_OVERLAY_DTB, libfdt functionalities will be needed
>>> during runtime.
>>>   ifneq ($(CONFIG_OVERLAY_DTB),y)
>>> -OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section
>>> .$(s)=.init.$(s))
>>> +       ifneq ($(CONFIG_COVERAGE),y)
>>> +               OBJCOPYFLAGS := $(foreach
>>> s,$(SECTIONS),--rename-section .$(s)=.init.$(s))
>>> +       endif
>>>   endif
>>
>> This is the (aforementioned) non-standard way of doing .init.o, which is
>> why it doesn't play nicely.
>>
>> I suggest that we first convert libelf and libfdt to the standard way of
>> doing .init.
> 
> I assume the rest is ok.
> 
>>
>> For libelf this means we need regular __init annotations, but #undef'd
>> outside of __XEN__ (when we're doing the userspace build).
>>
> 
> Need clarification here - this are imported libraries and changing their code
> directly was not welcome before. Therefore there is Xen specific magic in Makefiles.
> :(

I can't and won't speak for libfdt, but for libelf I think we should really
consider this ours (not imported) the latest as of the re-work for XSA-55.

Jan

> Just an idea1, may be ".init" handling can be just dropped from libelf and libfdt
> Makefiles with comment added instead (kinda "TODO") - they will be built-in.
> It doesn't work with CONFIG_CC_SPLIT_SECTIONS any way now.
> 
> Just an idea2, drop libelf and libfdt changes from this patch.
> - they will be not in coverage report (nocov-y += *.obj)
> - will be resolved in the future.
> 
> Trying to avoid blocking on external dependencies :(
> 
>> For libfdt, this will need some init_or_$FOO things (matching
>> init_or_livepatch).
>>
>> Once the custom init has been made standard, this code becomes easier to
>> move into lib, and we no longer have special cases when trying to extend
>> coverage.
> 
> 



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 14:33:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 14:33:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181789.1504784 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSylw-00086b-OY; Tue, 09 Dec 2025 14:33:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181789.1504784; Tue, 09 Dec 2025 14:33:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSylw-00086U-Ln; Tue, 09 Dec 2025 14:33:00 +0000
Received: by outflank-mailman (input) for mailman id 1181789;
 Tue, 09 Dec 2025 14:32:59 +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
 <SRS0=R9j7=6P=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vSylu-00086O-W6
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 14:32:59 +0000
Received: from mail-oo1-xc30.google.com (mail-oo1-xc30.google.com
 [2607:f8b0:4864:20::c30])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f3e2d81a-d50b-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 15:32:57 +0100 (CET)
Received: by mail-oo1-xc30.google.com with SMTP id
 006d021491bc7-656b4881f55so3272755eaf.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 06:32:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f3e2d81a-d50b-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1765290775; x=1765895575; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MrEbIcaFUlerglvu1z8XnSK4ozsVICy6q92ovgflphE=;
        b=ltB/yNnwnWdpgYLWtgkPeCrTVEF0h1cuDaegUz4R21pYCKe78t42NPRGLCS8ADAKxE
         o2snhO0zY1mVzlzWQInhDgAyDM617UmOJdIUTMIs3/FROyi19MS/VJODw/wSR5oi0TFZ
         JnMSGqjI5jyYm9KuWVLQunBXaiPFEX1q2G/tEMFd5gtOjdOR7RO6ylARUhH2mMEnpwfJ
         BcN+ARzjIoO2GPMIiUL5A3u03Bpr3V2GfEdXWvqfN31vME2GRebIONhfXNVGqLd9eyE+
         CH5iSzHSDN/98WO43dtUHbstWRm7oXeu8wuFHlrC0seYa7n+QODcZV6Zw9wRXHTkmree
         c/ww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765290775; x=1765895575;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=MrEbIcaFUlerglvu1z8XnSK4ozsVICy6q92ovgflphE=;
        b=oktyvWst/qHMaBAaGZQVM1CCybFCNM4u5yl/5MEjD7RArIN9ZEStjbKipPTrCSptAZ
         2RcraKHfbM1l+2bhg61oBgPzOAMfWppZoaiuDoTVV9c+cYz8pBAL9gb8uJzq1kYf78Y7
         pjpECt4GLOz4+OmgGigEGB3NNxxmhTerUuEKliqZFoOcVm/akQrCQc7Se++/5ghIvvuu
         yFvWQP+GEbxft0VyCD7G+gioGFQKsdzGhPjufQy+HSrdkupbcExyeTbf9vgffGcFzFQt
         XrIvDk8KDhWox9Xq6FFd3MYkC0WJTNpAgEnLIqR+Lvt8RogsYdDxgS2ipJs4dEKxreCC
         UUSg==
X-Gm-Message-State: AOJu0YzrtaT8z4TQmpqJRlU+eBYOM/QyfifwAO4NxrCbjg+30wFvFF6H
	7OdnHjdyZ5wn/nRwd5VmjBw46P261zpXUfZg+pGfpMWDivnAo2FkLsP7tPcW2v8QW5TMwz8sue1
	eh5E0ooWfNZNuy8ZlmURG/lBOnoy5d55euKJhd+ea4w==
X-Gm-Gg: ASbGncsjNgsdBdgpYcLJuULTCIFEPuhLcHquZbxzWW3gpKp2nDAHbMaPV7qCrl2dKSH
	mkz+Bp7TFxrQQ6306b6Zezxd+fDxLBxg5oLJu62efWlsyK2NgRBmnud+DTkzDvbZiDqrOE/lcTQ
	QKLj+WBxaaSfRB3V+GYn/OL9lZ29KdAs41muET2qxhFJP94KP9cds59rvEQyiwYjuO6tv9tPJW4
	VQ2z3lbsBgnTpLCQFkQ7VY5h8H5xbE8K0tEKeA2GiQAFRlmxXC5959obWOJL5LzJusW++HPbJZ4
	GHXvlHoPC/WZM+TW2G+mCPx5nyTFO4ddQs+3hNDQkuDi/oGxwIBbtpeBX15s9Q==
X-Google-Smtp-Source: AGHT+IGbHFcbggvvLy4qFZqYsquqeJ2GR/w46U6BTcQ0srKK4rd1Wu6GmfB4fYrOeQzuj8j7YvRaZTRxmFvaFI7TkCs=
X-Received: by 2002:a4a:e841:0:b0:659:9a49:907d with SMTP id
 006d021491bc7-6599a982eabmr4999773eaf.72.1765290775416; Tue, 09 Dec 2025
 06:32:55 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764930353.git.bertrand.marquis@arm.com> <480cc4c4c0a46fc7a812de5c7aa6365af220e9f2.1764930353.git.bertrand.marquis@arm.com>
In-Reply-To: <480cc4c4c0a46fc7a812de5c7aa6365af220e9f2.1764930353.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 9 Dec 2025 15:32:42 +0100
X-Gm-Features: AQt7F2puSVpAcq80FxNVk28f4msX_3iID7w2FHQSJsmWjZecPOh-FDpwI0AjyvI
Message-ID: <CAHUa44GHiSB0KQXsjsRfdO3moBqmxWJDYb2WCTRH8hdMsHKmjQ@mail.gmail.com>
Subject: Re: [PATCH v1 08/12] xen/arm: ffa: add UUID helpers for partition info
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Fri, Dec 5, 2025 at 11:37=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Introduce struct ffa_uuid together with nil/equality/set helpers, and
> use it end-to-end in the partition-info plumbing.
>
> The SP and VM enumeration paths now build UUIDs from the guest
> registers, call a new ffa_copy_info() helper and ensure non-nil UUID
> queries only return matching SP entries, relying on firmware UUID
> filtering. VM entries are skipped because we do not track per-VM UUIDs.
>
> Count requests and subscriber initialisation are updated accordingly so
> firmware is always called with an explicit UUID. This keeps count and
> listing requests aligned with the FF-A v1.1 rules while preserving the
> Linux compatibility workaround for v1.2 requesters.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes in v1:
> - Use GENMASK in ffa_partition_info_get instead of explicit values.
> - Use ACCESS_ONCE to read guest_vers
> - use is_64bit_domain to get current domain 32/64 bit support
> ---
>  xen/arch/arm/tee/ffa_partinfo.c | 209 ++++++++++++++++++++------------
>  xen/arch/arm/tee/ffa_private.h  |  21 ++++
>  2 files changed, 154 insertions(+), 76 deletions(-)

Looks good
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index c9faf5415853..bf906ed0c88f 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -33,7 +33,7 @@ static uint16_t subscr_vm_created_count __read_mostly;
>  static uint16_t *subscr_vm_destroyed __read_mostly;
>  static uint16_t subscr_vm_destroyed_count __read_mostly;
>
> -static int32_t ffa_partition_info_get(uint32_t *uuid, uint32_t flags,
> +static int32_t ffa_partition_info_get(struct ffa_uuid uuid, uint32_t fla=
gs,
>                                        uint32_t *count, uint32_t *fpi_siz=
e)
>  {
>      struct arm_smccc_1_2_regs arg =3D {
> @@ -41,15 +41,12 @@ static int32_t ffa_partition_info_get(uint32_t *uuid,=
 uint32_t flags,
>          .a5 =3D flags,
>      };
>      struct arm_smccc_1_2_regs resp;
> -    uint32_t ret;
> +    int32_t ret;
>
> -    if ( uuid )
> -    {
> -        arg.a1 =3D uuid[0];
> -        arg.a2 =3D uuid[1];
> -        arg.a3 =3D uuid[2];
> -        arg.a4 =3D uuid[3];
> -    }
> +    arg.a1 =3D uuid.val[0] & GENMASK(31, 0);
> +    arg.a2 =3D (uuid.val[0] >> 32) & GENMASK(31, 0);
> +    arg.a3 =3D uuid.val[1] & GENMASK(31, 0);
> +    arg.a4 =3D (uuid.val[1] >> 32) & GENMASK(31, 0);
>
>      arm_smccc_1_2_smc(&arg, &resp);
>
> @@ -63,7 +60,26 @@ static int32_t ffa_partition_info_get(uint32_t *uuid, =
uint32_t flags,
>      return ret;
>  }
>
> -static int32_t ffa_get_sp_count(uint32_t *uuid, uint32_t *sp_count)
> +static int32_t ffa_copy_info(void **dst, void *dst_end, const void *src,
> +                             uint32_t dst_size, uint32_t src_size)
> +{
> +    uint8_t *pos =3D *dst;
> +    uint8_t *end =3D dst_end;
> +
> +    if ( pos > end - dst_size )
> +        return FFA_RET_NO_MEMORY;
> +
> +    memcpy(pos, src, MIN(dst_size, src_size));
> +
> +    if ( dst_size > src_size )
> +        memset(pos + src_size, 0, dst_size - src_size);
> +
> +    *dst =3D pos + dst_size;
> +
> +    return FFA_RET_OK;
> +}
> +
> +static int32_t ffa_get_sp_count(struct ffa_uuid uuid, uint32_t *sp_count=
)
>  {
>      uint32_t src_size;
>
> @@ -71,8 +87,8 @@ static int32_t ffa_get_sp_count(uint32_t *uuid, uint32_=
t *sp_count)
>                                    sp_count, &src_size);
>  }
>
> -static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
> -                                   void *dst_buf, void *end_buf,
> +static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_co=
unt,
> +                                   void **dst_buf, void *end_buf,
>                                     uint32_t dst_size)
>  {
>      int32_t ret;
> @@ -120,17 +136,18 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, =
uint32_t *sp_count,
>          /* filter out SP not following bit 15 convention if any */
>          if ( FFA_ID_IS_SECURE(fpi->id) )
>          {
> -            if ( dst_buf > (end_buf - dst_size) )
> -            {
> -                ret =3D FFA_RET_NO_MEMORY;
> -                goto out;
> -            }
> +            /*
> +             * If VM is 1.0 but firmware is 1.1 we could have several en=
tries
> +             * with the same ID but different UUIDs. In this case the VM=
 will
> +             * get a list with several time the same ID.
> +             * This is a non-compliance to the specification but 1.0 VMs=
 should
> +             * handle that on their own to simplify Xen implementation.
> +             */
>
> -            memcpy(dst_buf, src_buf, MIN(src_size, dst_size));
> -            if ( dst_size > src_size )
> -                memset(dst_buf + src_size, 0, dst_size - src_size);
> +            ret =3D ffa_copy_info(dst_buf, end_buf, src_buf, dst_size, s=
rc_size);
> +            if ( ret )
> +                goto out;
>
> -            dst_buf +=3D dst_size;
>              count++;
>          }
>
> @@ -144,69 +161,90 @@ out:
>      return ret;
>  }
>
> -static int32_t ffa_get_vm_partinfo(uint32_t *vm_count, void *dst_buf,
> -                                   void *end_buf, uint32_t dst_size)
> +static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t *vm_co=
unt,
> +                                   void **dst_buf, void *end_buf,
> +                                   uint32_t dst_size)
>  {
> -    struct ffa_ctx *curr_ctx =3D current->domain->arch.tee;
> +    struct domain *d =3D current->domain;
> +    struct ffa_ctx *curr_ctx =3D d->arch.tee;
>      struct ffa_ctx *dest_ctx;
>      uint32_t count =3D 0;
>      int32_t ret =3D FFA_RET_OK;
> +    /*
> +     * We do not have UUID info for VMs so use the 1.0 structure so that=
 we set
> +     * UUIDs to zero using memset
> +     */
> +    struct ffa_partition_info_1_0 info;
>
>      /*
> -     * There could potentially be a lot of VMs in the system and we coul=
d
> -     * hold the CPU for long here.
> -     * Right now there is no solution in FF-A specification to split
> -     * the work in this case.
> -     * TODO: Check how we could delay the work or have preemption checks=
.
> +     * We do not have protocol UUIDs for VMs so if a request has non Nil=
 UUID
> +     * we must return an empty list.
>       */
> -    read_lock(&ffa_ctx_list_rwlock);
> -    list_for_each_entry(dest_ctx, &ffa_ctx_head, ctx_list)
> +    if ( !ffa_uuid_is_nil(uuid) )
> +    {
> +        *vm_count =3D 0;
> +        return FFA_RET_OK;
> +    }
> +
> +    /*
> +     * Workaround for Linux FF-A Driver not accepting to have its own
> +     * entry in the list before FF-A v1.2 was supported.
> +     * This workaround is generally acceptable for other implementations
> +     * as the specification was not completely clear on wether or not
> +     * the requester endpoint information should be included or not
> +     */
> +    if ( ACCESS_ONCE(curr_ctx->guest_vers) >=3D FFA_VERSION_1_2 )
> +    {
> +        /* Add caller VM information */
> +        info.id =3D curr_ctx->ffa_id;
> +        info.execution_context =3D curr_ctx->num_vcpus;
> +        info.partition_properties =3D FFA_PART_VM_PROP;
> +        if ( is_64bit_domain(d) )
> +            info.partition_properties |=3D FFA_PART_PROP_AARCH64_STATE;
> +
> +        ret =3D ffa_copy_info(dst_buf, end_buf, &info, dst_size, sizeof(=
info));
> +        if ( ret )
> +            return ret;
> +
> +        count++;
> +    }
> +
> +    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
>      {
>          /*
> -         * Do not include an entry for the caller VM as the spec is not
> -         * clearly mandating it and it is not supported by Linux.
> +         * There could potentially be a lot of VMs in the system and we =
could
> +         * hold the CPU for long here.
> +         * Right now there is no solution in FF-A specification to split
> +         * the work in this case.
> +         * TODO: Check how we could delay the work or have preemption ch=
ecks.
>           */
> -        if ( dest_ctx !=3D curr_ctx )
> +        read_lock(&ffa_ctx_list_rwlock);
> +        list_for_each_entry(dest_ctx, &ffa_ctx_head, ctx_list)
>          {
> -            /*
> -             * We do not have UUID info for VMs so use
> -             * the 1.0 structure so that we set UUIDs to
> -             * zero using memset
> -             */
> -            struct ffa_partition_info_1_0 info;
> +            /* Ignore the caller entry as it was already added */
> +            if ( dest_ctx =3D=3D curr_ctx )
> +                continue;
>
> -            if  ( dst_buf > (end_buf - dst_size) )
> -            {
> -                ret =3D FFA_RET_NO_MEMORY;
> -                goto out;
> -            }
> -
> -            /*
> -             * Context might has been removed since we go it or being re=
moved
> -             * right now so we might return information for a VM not exi=
sting
> -             * anymore. This is acceptable as we return a view of the sy=
stem
> -             * which could change at any time.
> -             */
>              info.id =3D dest_ctx->ffa_id;
>              info.execution_context =3D dest_ctx->num_vcpus;
>              info.partition_properties =3D FFA_PART_VM_PROP;
>              if ( dest_ctx->is_64bit )
>                  info.partition_properties |=3D FFA_PART_PROP_AARCH64_STA=
TE;
>
> -            memcpy(dst_buf, &info, MIN(sizeof(info), dst_size));
> -
> -            if ( dst_size > sizeof(info) )
> -                memset(dst_buf + sizeof(info), 0,
> -                       dst_size - sizeof(info));
> +            ret =3D ffa_copy_info(dst_buf, end_buf, &info, dst_size,
> +                                sizeof(info));
> +            if ( ret )
> +            {
> +                read_unlock(&ffa_ctx_list_rwlock);
> +                return ret;
> +            }
>
> -            dst_buf +=3D dst_size;
>              count++;
>          }
> +        read_unlock(&ffa_ctx_list_rwlock);
>      }
> -    *vm_count =3D count;
>
> -out:
> -    read_unlock(&ffa_ctx_list_rwlock);
> +    *vm_count =3D count;
>
>      return ret;
>  }
> @@ -217,17 +255,18 @@ void ffa_handle_partition_info_get(struct cpu_user_=
regs *regs)
>      struct domain *d =3D current->domain;
>      struct ffa_ctx *ctx =3D d->arch.tee;
>      uint32_t flags =3D get_user_reg(regs, 5);
> -    uint32_t uuid[4] =3D {
> -        get_user_reg(regs, 1),
> -        get_user_reg(regs, 2),
> -        get_user_reg(regs, 3),
> -        get_user_reg(regs, 4),
> -    };
> +    struct ffa_uuid uuid;
>      uint32_t dst_size =3D 0;
>      size_t buf_size;
>      void *dst_buf, *end_buf;
>      uint32_t ffa_vm_count =3D 0, ffa_sp_count =3D 0;
>
> +    ffa_uuid_set(&uuid,
> +             get_user_reg(regs, 1),
> +             get_user_reg(regs, 2),
> +             get_user_reg(regs, 3),
> +             get_user_reg(regs, 4));
> +
>      /*
>       * If the guest is v1.0, he does not get back the entry size so we m=
ust
>       * use the v1.0 structure size in the destination buffer.
> @@ -260,10 +299,23 @@ void ffa_handle_partition_info_get(struct cpu_user_=
regs *regs)
>          }
>
>          /*
> -         * Do not count the caller VM as the spec is not clearly mandati=
ng it
> -         * and it is not supported by Linux.
> +         * We do not have protocol UUIDs for VMs so if a request has non=
 Nil
> +         * UUID we must return a vm_count of 0
>           */
> -        ffa_vm_count =3D get_ffa_vm_count() - 1;
> +        if ( ffa_uuid_is_nil(uuid) )
> +        {
> +            ffa_vm_count =3D get_ffa_vm_count();
> +
> +            /*
> +             * Workaround for Linux FF-A Driver not accepting to have it=
s own
> +             * entry in the list before FF-A v1.2 was supported.
> +             * This workaround is generally acceptable for other impleme=
ntations
> +             * as the specification was not completely clear on wether o=
r not
> +             * the requester endpoint information should be included or =
not
> +             */
> +            if ( ACCESS_ONCE(ctx->guest_vers) < FFA_VERSION_1_2 )
> +                ffa_vm_count -=3D 1;
> +        }
>
>          goto out;
>      }
> @@ -290,17 +342,15 @@ void ffa_handle_partition_info_get(struct cpu_user_=
regs *regs)
>
>      if ( ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
>      {
> -        ret =3D ffa_get_sp_partinfo(uuid, &ffa_sp_count, dst_buf, end_bu=
f,
> +        ret =3D ffa_get_sp_partinfo(uuid, &ffa_sp_count, &dst_buf, end_b=
uf,
>                                    dst_size);
>
>          if ( ret )
>              goto out_rx_release;
> -
> -        dst_buf +=3D ffa_sp_count * dst_size;
>      }
>
> -    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> -        ret =3D ffa_get_vm_partinfo(&ffa_vm_count, dst_buf, end_buf, dst=
_size);
> +    ret =3D ffa_get_vm_partinfo(uuid, &ffa_vm_count, &dst_buf, end_buf,
> +                              dst_size);
>
>  out_rx_release:
>      if ( ret )
> @@ -309,7 +359,13 @@ out:
>      if ( ret )
>          ffa_set_regs_error(regs, ret);
>      else
> +    {
> +        /* Size should be 0 on count request and was not supported in 1.=
0 */
> +        if ( flags || ACCESS_ONCE(ctx->guest_vers) =3D=3D FFA_VERSION_1_=
0 )
> +            dst_size =3D 0;
> +
>          ffa_set_regs_success(regs, ffa_sp_count + ffa_vm_count, dst_size=
);
> +    }
>  }
>
>  static int32_t ffa_direct_req_send_vm(uint16_t sp_id, uint16_t vm_id,
> @@ -450,6 +506,7 @@ bool ffa_partinfo_init(void)
>      uint32_t count;
>      int32_t e;
>      void *spmc_rx;
> +    struct ffa_uuid nil_uuid =3D { .val =3D { 0ULL, 0ULL } };
>
>      if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) ||
>           !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32))
> @@ -459,7 +516,7 @@ bool ffa_partinfo_init(void)
>      if (!spmc_rx)
>          return false;
>
> -    e =3D ffa_partition_info_get(NULL, 0, &count, &fpi_size);
> +    e =3D ffa_partition_info_get(nil_uuid, 0, &count, &fpi_size);
>      if ( e )
>      {
>          printk(XENLOG_ERR "ffa: Failed to get list of SPs: %d\n", e);
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index a18e56b05bbb..d883114948b1 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -307,6 +307,10 @@ struct ffa_mem_region {
>      struct ffa_address_range address_range_array[];
>  };
>
> +struct ffa_uuid {
> +    uint64_t val[2];
> +};
> +
>  struct ffa_ctx_notif {
>      /*
>       * True if domain is reported by FFA_NOTIFICATION_INFO_GET to have
> @@ -580,4 +584,21 @@ static inline bool ffa_fw_supports_fid(uint32_t fid)
>      return test_bit(FFA_ABI_BITNUM(fid), ffa_fw_abi_supported);
>  }
>
> +static inline bool ffa_uuid_is_nil(struct ffa_uuid id)
> +{
> +    return id.val[0] =3D=3D 0 && id.val[1] =3D=3D 0;
> +}
> +
> +static inline bool ffa_uuid_equal(struct ffa_uuid id1, struct ffa_uuid i=
d2)
> +{
> +    return id1.val[0] =3D=3D id2.val[0] && id1.val[1] =3D=3D id2.val[1];
> +}
> +
> +static inline void ffa_uuid_set(struct ffa_uuid *id, uint32_t val0,
> +                                uint32_t val1, uint32_t val2, uint32_t v=
al3)
> +{
> +    id->val[0] =3D ((uint64_t)val1 << 32U) | val0;
> +    id->val[1] =3D ((uint64_t)val3 << 32U) | val2;
> +}
> +
>  #endif /*__FFA_PRIVATE_H__*/
> --
> 2.51.2
>


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 14:54:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 14:54:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181807.1504793 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSz6R-0002oX-Ga; Tue, 09 Dec 2025 14:54:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181807.1504793; Tue, 09 Dec 2025 14:54:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSz6R-0002oQ-Dm; Tue, 09 Dec 2025 14:54:11 +0000
Received: by outflank-mailman (input) for mailman id 1181807;
 Tue, 09 Dec 2025 14:54:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=R9j7=6P=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vSz6Q-0002oK-EA
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 14:54:10 +0000
Received: from mail-oi1-x22f.google.com (mail-oi1-x22f.google.com
 [2607:f8b0:4864:20::22f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e90d5c4d-d50e-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 15:54:07 +0100 (CET)
Received: by mail-oi1-x22f.google.com with SMTP id
 5614622812f47-455749af2e1so477199b6e.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 06:54:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e90d5c4d-d50e-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1765292046; x=1765896846; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PtSKYdKsLvC0BkL/KUR7bFmUpaoVxk4mksRVHtUImPU=;
        b=ewsVtqh8zkRtpaDiKI9yj6BtenWi8Gx8Ck9LQLzwQkHhxQ5ues+hK0J4Ihxwx9iH2v
         VHJ6YhGCVh5c2014AwATPyXpTqSZ+bVNLFLdfYFj7Xx+vz65Geo9yN3jpuKr//AQGj/K
         2GEUJVYwoqzMe6RQu9lMOBx+yEQcE/0LYOvySP4T6BJ+paGZybycd6r1PlRK/6msjLpA
         hn4uqSovg3r5HSuV/X2w6CdfKp4Dcp0VovovSbY2VIJSY9BQC4W3zJ4ojkGgaXVcy+gG
         ulZrhiLd4eCMJQTYk+vlHW6usW9P/q1Bc1ZQ1ftBKO5QJdderQbU0nVH+UVNwhfUjg0C
         SW9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765292046; x=1765896846;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=PtSKYdKsLvC0BkL/KUR7bFmUpaoVxk4mksRVHtUImPU=;
        b=d4QsTPmG8LnV2vAkuQ8kW2xBjCx7svy8duC47i/1Cmn2YX2g/uitQOxqt8nU6tw3zV
         vNs2OQ5pA1L8BC3Sh9GppuzxCAbZD26zxqawtV8q0/7GEurcyNQF4okM7GnCTT6DJ8cm
         9lZBGU9BpmXuW5yTLURPR3YTdiV7fIzTOtbva1hE/YiHjX90lAmF3sSpUmTF9Wdb1tA+
         7gz2z3CEW2Uq26yKcUKhwqBKqWIEGmDHfzBsF/E65rGv1Bxynz+hpsKhk/lDZk2QlZ4w
         2bkjU2HzU1n5MBFHWUPlZJQEHfGJijUVOCW6bkVGSbVw5cnLbalBxFkLXM5xGYkeonvU
         0X0A==
X-Gm-Message-State: AOJu0YzJnGQbFx3nFXGMYeSI8Gs+PwoiejrNP/4bOi6X9LfLHYfDdRix
	96pqK/P7xV5O8LmcNUIZkQKaBi4Ac7vMbzbRJ3AMIR1RxT90kH9zMA862yLc6hwzUkuXjqLGwXK
	9Xrb1QYyug0fZF3+Yk1guIP31H3v8vJ3j8SGpxN+jfg==
X-Gm-Gg: ASbGncu+dA5WEyNVCfnygUALsSbC+fywuaF/jx2tCX5rTkZMOgFuobNjqTPrk8bytzo
	aMvw8+261BB4FlxEl1++SocuV3cwrkzJLLthAQsld+eFU07Zq4nZe+SExdgGRp0zco5hDm8fW+1
	iilmTO6++jqRBBD3dUKuFK15U3YCV3CoK4uIjxQP145MdxAXHkUHCMJsGYSA9n3kLnDN32BJfGf
	tX58WVWC6lwcaUp7NTFcP6a8hKY9JzHBdQncZl8BBjQLMs7ilwdgMMU1MDvsZDSA760v6dB1a/w
	e81b3N2zuisKEbU0P/GokgJNxexj33reJhqM9R0+G5bYjtJ0wYoZBKnyv2P46w==
X-Google-Smtp-Source: AGHT+IGfo3a/ekLdUp4NC7ukgegFSt1yR8iQZkZbRYXsgd/vqcXJgZpXrnyyMQqmi/yVZmvGWoAMq/0aPfL1Fvi9YcE=
X-Received: by 2002:a05:6808:4fde:b0:450:89ee:922b with SMTP id
 5614622812f47-4557a989082mr590084b6e.22.1765292045745; Tue, 09 Dec 2025
 06:54:05 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764930353.git.bertrand.marquis@arm.com> <9e205ba6bdd6d053dfbf8cf7892d347512acdb2e.1764930353.git.bertrand.marquis@arm.com>
In-Reply-To: <9e205ba6bdd6d053dfbf8cf7892d347512acdb2e.1764930353.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 9 Dec 2025 15:53:54 +0100
X-Gm-Features: AQt7F2pI5IAj8CdnEAD1FrOZgEr0CvWaEscKc-EPkWcheQkN3ha5RjQ1w1CrxqY
Message-ID: <CAHUa44Gb3MCbyTmoqC6KN6GF5qBPJg3zXr2w3dojtVOV8deScQ@mail.gmail.com>
Subject: Re: [PATCH v1 09/12] xen/arm: ffa: Add FFA_RUN support
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Fri, Dec 5, 2025 at 11:37=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Add FFA_RUN support and remove mention that YIELD and INTERRUPT are not
> supported in the comment as we will now return them.
>
> Make FFA_FEATURE answer supported for RUN, YIELD and INTERRUPT.
>
> Share the SMCCC plumbing used by SEND_DIRECT and RUN via a common
> ffa_finish_direct_req_run() helper so canonical success and error cases
> are handled in one place.
>
> The dispatcher now routes FFA_RUN through ffa_handle_run(), and direct
> requests bail out early if a guest targets itself or a non-secure
> endpoint. This simplifies the direct path while adding support for
> INTERRUPT or YIELD answers from secure world.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes in v1:
> - Rework commit message to clearly mention that we add FFA_RUN support
> - Remove mentions of FFA_MSG_YIELD/INTERRUPT/RUN not being supported
> - Report YIELD, INTERRUPT an RUN as supported in ffa_features handling
> ---
>  xen/arch/arm/tee/ffa.c         |   9 ++-
>  xen/arch/arm/tee/ffa_msg.c     | 111 ++++++++++++++++++++++++---------
>  xen/arch/arm/tee/ffa_private.h |   1 +
>  3 files changed, 87 insertions(+), 34 deletions(-)

Looks good
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 2c09d10ae6a1..0f07efe5a7b3 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -24,9 +24,6 @@
>   * o FFA_MEM_DONATE_* and FFA_MEM_LEND_* - Used when tranferring ownersh=
ip
>   *   or access of a memory region
>   * o FFA_MSG_SEND2 and FFA_MSG_WAIT - Used for indirect messaging
> - * o FFA_MSG_YIELD
> - * o FFA_INTERRUPT - Used to report preemption
> - * o FFA_RUN
>   *
>   * Limitations in the implemented FF-A interfaces:
>   * o FFA_RXTX_MAP_*:
> @@ -266,6 +263,9 @@ static void handle_features(struct cpu_user_regs *reg=
s)
>      case FFA_MSG_SEND_DIRECT_REQ_32:
>      case FFA_MSG_SEND_DIRECT_REQ_64:
>      case FFA_MSG_SEND2:
> +    case FFA_RUN:
> +    case FFA_INTERRUPT:
> +    case FFA_MSG_YIELD:
>          ffa_set_regs_success(regs, 0, 0);
>          break;
>      case FFA_MEM_SHARE_64:
> @@ -353,6 +353,9 @@ static bool ffa_handle_call(struct cpu_user_regs *reg=
s)
>      case FFA_MSG_SEND_DIRECT_REQ_64:
>          ffa_handle_msg_send_direct_req(regs, fid);
>          return true;
> +    case FFA_RUN:
> +        ffa_handle_run(regs, fid);
> +        return true;
>      case FFA_MSG_SEND2:
>          e =3D ffa_handle_msg_send2(regs);
>          break;
> diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
> index d60eed6d8811..5a4cb1bb8295 100644
> --- a/xen/arch/arm/tee/ffa_msg.c
> +++ b/xen/arch/arm/tee/ffa_msg.c
> @@ -21,42 +21,74 @@ struct ffa_part_msg_rxtx {
>      uint32_t msg_size;
>  };
>
> -void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t=
 fid)
> +static void ffa_finish_direct_req_run(struct cpu_user_regs *regs,
> +                                      struct arm_smccc_1_2_regs *req)
>  {
> -    struct arm_smccc_1_2_regs arg =3D { .a0 =3D fid, };
>      struct arm_smccc_1_2_regs resp =3D { };
> -    struct domain *d =3D current->domain;
> -    uint32_t src_dst;
>      uint64_t mask;
>
> -    if ( smccc_is_conv_64(fid) )
> +    arm_smccc_1_2_smc(req, &resp);
> +
> +    switch ( resp.a0 )
> +    {
> +    case FFA_ERROR:
> +    case FFA_SUCCESS_32:
> +    case FFA_SUCCESS_64:
> +    case FFA_MSG_SEND_DIRECT_RESP_32:
> +    case FFA_MSG_SEND_DIRECT_RESP_64:
> +    case FFA_MSG_YIELD:
> +    case FFA_INTERRUPT:
> +        break;
> +    default:
> +        /* Bad fid, report back to the caller. */
> +        ffa_set_regs_error(regs, FFA_RET_ABORTED);
> +        return;
> +    }
> +
> +    if ( smccc_is_conv_64(resp.a0) )
>          mask =3D GENMASK_ULL(63, 0);
>      else
>          mask =3D GENMASK_ULL(31, 0);
>
> +    ffa_set_regs(regs, resp.a0, resp.a1 & mask, resp.a2 & mask, resp.a3 =
& mask,
> +                 resp.a4 & mask, resp.a5 & mask, resp.a6 & mask,
> +                 resp.a7 & mask);
> +}
> +
> +void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t=
 fid)
> +{
> +    struct arm_smccc_1_2_regs arg =3D { .a0 =3D fid, };
> +    struct domain *d =3D current->domain;
> +    uint32_t src_dst;
> +    uint64_t mask;
> +    int32_t ret;
> +
>      if ( !ffa_fw_supports_fid(fid) )
>      {
> -        resp.a0 =3D FFA_ERROR;
> -        resp.a2 =3D FFA_RET_NOT_SUPPORTED;
> +        ret =3D FFA_RET_NOT_SUPPORTED;
>          goto out;
>      }
>
>      src_dst =3D get_user_reg(regs, 1);
> -    if ( (src_dst >> 16) !=3D ffa_get_vm_id(d) )
> +    if ( (src_dst >> 16) !=3D ffa_get_vm_id(d) ||
> +         (src_dst & GENMASK(15,0)) =3D=3D ffa_get_vm_id(d) )
>      {
> -        resp.a0 =3D FFA_ERROR;
> -        resp.a2 =3D FFA_RET_INVALID_PARAMETERS;
> +        ret =3D FFA_RET_INVALID_PARAMETERS;
>          goto out;
>      }
>
>      /* we do not support direct messages to VMs */
>      if ( !FFA_ID_IS_SECURE(src_dst & GENMASK(15,0)) )
>      {
> -        resp.a0 =3D FFA_ERROR;
> -        resp.a2 =3D FFA_RET_NOT_SUPPORTED;
> +        ret =3D FFA_RET_NOT_SUPPORTED;
>          goto out;
>      }
>
> +    if ( smccc_is_conv_64(fid) )
> +        mask =3D GENMASK_ULL(63, 0);
> +    else
> +        mask =3D GENMASK_ULL(31, 0);
> +
>      arg.a1 =3D src_dst;
>      arg.a2 =3D get_user_reg(regs, 2) & mask;
>      arg.a3 =3D get_user_reg(regs, 3) & mask;
> @@ -65,27 +97,11 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_r=
egs *regs, uint32_t fid)
>      arg.a6 =3D get_user_reg(regs, 6) & mask;
>      arg.a7 =3D get_user_reg(regs, 7) & mask;
>
> -    arm_smccc_1_2_smc(&arg, &resp);
> -    switch ( resp.a0 )
> -    {
> -    case FFA_ERROR:
> -    case FFA_SUCCESS_32:
> -    case FFA_SUCCESS_64:
> -    case FFA_MSG_SEND_DIRECT_RESP_32:
> -    case FFA_MSG_SEND_DIRECT_RESP_64:
> -        break;
> -    default:
> -        /* Bad fid, report back to the caller. */
> -        memset(&resp, 0, sizeof(resp));
> -        resp.a0 =3D FFA_ERROR;
> -        resp.a1 =3D src_dst;
> -        resp.a2 =3D FFA_RET_ABORTED;
> -    }
> +    ffa_finish_direct_req_run(regs, &arg);
> +    return;
>
>  out:
> -    ffa_set_regs(regs, resp.a0, resp.a1 & mask, resp.a2 & mask, resp.a3 =
& mask,
> -                 resp.a4 & mask, resp.a5 & mask, resp.a6 & mask,
> -                 resp.a7 & mask);
> +    ffa_set_regs_error(regs, ret);
>  }
>
>  static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
> @@ -217,3 +233,36 @@ out:
>      ffa_tx_release(src_ctx);
>      return ret;
>  }
> +
> +void ffa_handle_run(struct cpu_user_regs *regs, uint32_t fid)
> +{
> +    struct arm_smccc_1_2_regs arg =3D { .a0 =3D fid, };
> +    uint32_t dst =3D get_user_reg(regs, 1);
> +    int32_t ret;
> +
> +    if ( !ffa_fw_supports_fid(fid) )
> +    {
> +        ret =3D FFA_RET_NOT_SUPPORTED;
> +        goto out;
> +    }
> +
> +    /*
> +     * We do not support FFA_RUN to VMs.
> +     * Destination endpoint ID is in bits [31:16], bits[15:0] contain th=
e
> +     * vCPU ID.
> +     */
> +    if ( !FFA_ID_IS_SECURE(dst >> 16) )
> +    {
> +        ret =3D FFA_RET_NOT_SUPPORTED;
> +        goto out;
> +    }
> +
> +    arg.a1 =3D dst;
> +
> +    ffa_finish_direct_req_run(regs, &arg);
> +
> +    return;
> +
> +out:
> +    ffa_set_regs_error(regs, ret);
> +}
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index d883114948b1..030e6724743c 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -474,6 +474,7 @@ static inline void ffa_raise_rx_buffer_full(struct do=
main *d)
>
>  void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t=
 fid);
>  int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs);
> +void ffa_handle_run(struct cpu_user_regs *regs, uint32_t fid);
>
>  #ifdef CONFIG_FFA_VM_TO_VM
>  static inline uint16_t get_ffa_vm_count(void)
> --
> 2.51.2
>


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 15:03:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 15:03:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181819.1504805 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSzFY-0004Z0-Cm; Tue, 09 Dec 2025 15:03:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181819.1504805; Tue, 09 Dec 2025 15:03:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSzFY-0004Yt-8O; Tue, 09 Dec 2025 15:03:36 +0000
Received: by outflank-mailman (input) for mailman id 1181819;
 Tue, 09 Dec 2025 15:03:34 +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
 <SRS0=Nu2q=6P=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vSzFW-0004Yn-B2
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 15:03:34 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 39d6995d-d510-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 16:03:33 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB6979.namprd03.prod.outlook.com (2603:10b6:510:169::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 15:03:27 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 15:03:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 39d6995d-d510-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=a/JnIYMu0ysZffp2YQBoELvxpvcHkRjeYahpteeb9BLzbplfjlakTIeB84qYu8WeCuD1V+YwGGOIFNIBdQY3fWS5w0Ko60hBx+k78GfMASat+DWKjgiojWRjC99IBd13/8sOVwlaGqXqs4GC+zoy/DLn0ba4Me3G4BJJfx2bYykEjdkIpFYrrXXjufN/S4zpK28QITP/7vAThsJhx3qcUXsfkdU7PX7b01tYL4NB/LqRs10xX0QUqcggb/APWVnTbfv/wl1HRv4ze0muNy3f7yNGmIMtR6PwzIh0eVkulRFC6kLEUJwt/7adu3EQmm+SM/efIegJfc0BeITFjMHNlg==
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=qG3xqfQOpQ/MM+TfmY3It2bUE9accSpebY+kr3jsJ+Y=;
 b=GpmWv90rT9PUbzI/FC99sU6RmbES7yfU6k96oEZxYsIpBiAu7j4T3+MnluiN36ZtDyIeP8ItfXviTqvM/GfSSkrodEDIaFHutEwXqRy5hG3ovKKXKfJmNoaVWrwOtXBcSVs7mZXP2Q0hN565vglOSx3ykyKzo1jV3DyvbVT/0Yk5Nr2KfLpMYe765wRLOwe9iIPOl53vE0ghkEsE9BeTyBxc29r9CFLbKbGxQ6SYlcFB8VvBuE8uQUKQYHSRK7a9xNfxXAPVNzp3zokz2t7rJP3Xzd9/pA2b+U6k5Mv0sgCj7tFVGAWGhr4AGcAbjnC2D9LyLvCycR3+gvhllhDa0g==
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=qG3xqfQOpQ/MM+TfmY3It2bUE9accSpebY+kr3jsJ+Y=;
 b=hZckHbTmzBQl6mJYCTXuB1h45Lru7UzEImGBfnPckAmjgu1RzcJ+taiKzzybSscWSEDnTLIZtCEfWrXhId4+tq9nz1CWTmPYAp4SJsJWhFWnHxgsAhGpx1NHxRgju+4qK3E74KBd/aj6aEJZ4IBDXW1AKGacT84GF5NIUpOU1BA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <17923afb-526d-4141-8b08-a608ac4d2608@citrix.com>
Date: Tue, 9 Dec 2025 15:03:22 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [XEN][PATCH v2] coverage: extend coverage on .init and lib code
To: Jan Beulich <jbeulich@suse.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <20251205193411.1368659-1-grygorii_strashko@epam.com>
 <d9a632d1-8587-45bb-bc13-8dab8d346cb2@citrix.com>
 <4fc76270-98e6-46c4-a6a4-d73772e079c9@epam.com>
 <483d50d9-a076-4698-bd14-28afabd5d369@citrix.com>
 <f6cccd82-3112-4696-850a-119843fca5ec@citrix.com>
 <18ab3734-deb9-4569-ade5-9d96a7bf3c7c@epam.com>
 <25069a8e-ef00-4706-bffa-b3b724cca200@citrix.com>
 <4e7e8f25-a658-4e8d-bdce-1e1266ff6339@epam.com>
 <c18b4522-e131-495b-bd7f-2eb7e6568a8a@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <c18b4522-e131-495b-bd7f-2eb7e6568a8a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0572.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:276::22) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH0PR03MB6979:EE_
X-MS-Office365-Filtering-Correlation-Id: cd75caeb-056a-4d7e-5850-08de37341afe
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RWwvdjJmQ3hyV25MUEx4cDhHSG1McVJEelVwNVdsNHlhcmdUZnB3OW9ET2U5?=
 =?utf-8?B?VU10QytjSk4xS3JlT1lxbEhXbEFuR2JFbzhPblh3Y3dpZEZCMnBaSGR6Mno0?=
 =?utf-8?B?Snc3UUpzUnJoSWFJbjF6eE95VmpmanVCcThTN3FYaUVEZGZFMnFFa2JIWEph?=
 =?utf-8?B?UGhYWXZobzdHUWc1aWVZU2JDaUpiSjEwOFhXeWdZQ1hDMXMyR2hWaGxjTnF6?=
 =?utf-8?B?YkVURW5DWlU4K3pkalpHMkU2N2FKRlBCWFk3NElDTG9EU3c1M2JTQkV2R28y?=
 =?utf-8?B?MUlRdk0rWU1BK0Q2dXR1eVoxQjYyaDhEaHhYYzBoSWlUbWxlWE9EWSthM0pW?=
 =?utf-8?B?alBOcGIrUDlYa3dCUWhkNjRNQ3AvN1R1SDVHV1h5USt5a09aUjBjRTFEamh0?=
 =?utf-8?B?UktxYWlKMkk2MlNsd0pQSzhZaVhCZ29uRVZDZ0NFNGhLUEgrYzBnL0hKRW55?=
 =?utf-8?B?emFJT0k5RVNweUxoZU9OM1EvNHRVaHQxWEdNZ3d4QnRCMVEyS0RPaEdpRExW?=
 =?utf-8?B?a2ZqMXlaRHJuWW9tZkhFNHNJUGJPeEttYnl4M3M1djQyZmExQzBwYlBRWk5O?=
 =?utf-8?B?cXpUTzlRZXNGQmEzMnJrTHI3QTJWa3VNOXdWdFFIekdZdDRxOHVTNjNnaDFo?=
 =?utf-8?B?dk56a1RJOWZTdjVkSHp3N01mbzZDVXJ2aHpLMENSMi9QclJFWHgzeER0VDBH?=
 =?utf-8?B?b0VDVjQyNzAvMHdxOHByWVR3WExGN1VEcWNiSVFnR1lNNWd2SzdXVG9yMkV0?=
 =?utf-8?B?MHlWN2hUa05tWjJOZ3ExbERVOERpZWduYU1zREMxTStCSU4wWHo0Smh0bEJQ?=
 =?utf-8?B?WDh0UE5OdEpxMkQrZXFXZFVONjJiNjlBUnpIVEtHYXhvbCtIdnJMczhkZFp5?=
 =?utf-8?B?YTlKcWQ4YkpualhWOTJVbzd3SFpHbWtiT1czYWQ1QzFvRkhramtlVkllWmhI?=
 =?utf-8?B?S29NSVFhQzhyODd0ZWd3TE9XSFdlTlZlZzJiWVZYN2E4SDdHSUw1WFJ6WU9O?=
 =?utf-8?B?NjhiU1dnSHg2ditqNzAvU0dmQXVOT1d4OThDeGFiZ3h1OU5tY2tJaFdLQmUy?=
 =?utf-8?B?MHF6aUtjbFlGZitRSTB5Tzk2c215VVNPN2M3VGViU0tFSjdkWmZORWljRCtx?=
 =?utf-8?B?MHBMcjdaTU54YW85bG5VVmF1MmM2SmtsUXRSb3hSU3c3RFF1N3MyQnlCQWNJ?=
 =?utf-8?B?VDY1bWVkaHhNNEQzTzZ3L0RMbVRjYnRSZFIxZEJxUUVBSE9DRDFQVnlTN1Vs?=
 =?utf-8?B?TFByVndIYkdPdkxYbjMybGJNM1JJWkpTdGMwTXFSUXpoak1XdVRVZTN0SmxM?=
 =?utf-8?B?RVdXdWwwUmk3aUZVSHJ2U09aSHFGTEZTaWE1djhhYmprZ05aNTE2VlQ5YlNW?=
 =?utf-8?B?RzlWaWc4SVBFeFIxYWxKWVJpUjl2RUVPMUhmblhRYXROWEdmeEdtVzVNQmVM?=
 =?utf-8?B?OWQ3amNZSCt3T2tLamVuTmZtZkw0d0o3cmZBSWNMWllDSUhwbWtldE9GTUln?=
 =?utf-8?B?M05xYkR2MXVLKzRtemlKdmtXUTgrNEh0THNEeFdqYmhYaEdxalc0ZW9RSGJi?=
 =?utf-8?B?cTB0akNGVTNIenBlNi9vK3lYVWpKYXRab2tVM1dXMi80U3hhcDV4Z1hpempz?=
 =?utf-8?B?UTFhMkhPMzVFL3QzVlFEaytZNDA0QXpjU3I4RU9DYjRXZzE3VVRrZTFXdTJw?=
 =?utf-8?B?Q054cXNZSHA1elc2RWlJbHY1bE15SDkvRE1UUXJmV2FLYkRKUUlveTR1OVNx?=
 =?utf-8?B?WHFibzdNSUlJblZpa0lRS3VlZVBxbVlJRUJVZ05pK2MvMStjdnFHNU5NYjdJ?=
 =?utf-8?B?QVBucGNZaXVvakQ0MHRMT2lEZkpWN3B0ZVpCaHhmVmxYRXJCMXcxeW5mMG9L?=
 =?utf-8?B?V1hJbDhrNFFubk1sK0FiRmZIcndsUnJrZzNOQTRrL3RsV3VpSTlQcFg3OUFT?=
 =?utf-8?Q?h8AVSa5eHznRVtCULslP90jIduRKQPuH?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YnVHQ005RHlKUitYVllUNXNjdUwrcWNMelY0aVpyV1gzSGNHTFNRWXN4Q2t4?=
 =?utf-8?B?U1VzRTlKUGh1TFVHWHN0Z1JWbXVtbmZ5V0VEVHpRcFlUeVBoQVlhVVR1T3Q3?=
 =?utf-8?B?ZnE4UmthNmdpanRCSEVMTXNMNmtKRDJzTlNRc0UyZnA4NzQ5cnZya2RuaE00?=
 =?utf-8?B?QzZURi9QNm4xMitoMm8yeWVOYVZubGZ3a21zWjV5aS9UNXJPVnNJd1hlZk41?=
 =?utf-8?B?Zkc4T04wUElSaVBGVGFVd09UNi9BbWxvZjNJNlpEZFNDaDA1R0xCRElpa28v?=
 =?utf-8?B?aG92cVRrUXI1dGxqd2M3dVJ3ZDMvS3RlL2phaWlOL0lvZ09vd1NCOXNjUDV3?=
 =?utf-8?B?S3Y2cVphWUxaVlU1NDk1Vmd5N1BZSE9RME1wYlBNbjIvRkJPY1o0WTlOYUd3?=
 =?utf-8?B?eDZsbDd6WnEyTEFRc2Z3U250cDl4SDh0Y0VaclJDTnNqNGZtcVhjRTAvM0k4?=
 =?utf-8?B?SGtrcFB3WkFtU2JlOGQwV3IzQk5WK0I5L0dhQUgyaWNYZy9tUDhmWGVWWmI1?=
 =?utf-8?B?bjZuamFnR0FPK1RCRHhoNUNXbUZsR0hkUDdGWjhTWGtzMExORXNKeHZNdC9R?=
 =?utf-8?B?eFdUbnhFdUNFSnAwZW05ZXJJSnI3Y2dFZEk4ODF3aFFRUnVMa2NBb2xUUnFO?=
 =?utf-8?B?R0ZsRFhkdVpCcllaMU4vNC90Q3JESmE2cGI4MWdHSTdYSnI0K2VzaE5Wazh3?=
 =?utf-8?B?RnRzZEdUL3luQzBIR2MvcGZYUUtGcUhTU24wZ3FXZkNQVlFSblc5NkE4NHhW?=
 =?utf-8?B?M09IM1dTWlNYVVBBSmkxeUlkSnY2ME5tUTRvcnc4cCtzelFBMEs3QzFpMUhB?=
 =?utf-8?B?RkdBWjEvNDVDMzVrUXhNRkwyakRVdWRhYVRJNGZ3OUg0UmliSmsrc1FkNUhD?=
 =?utf-8?B?Q1hMbVhqR1YrU1RzVy81RGJvSWpsSzhqZjJQRFY1YzN6NVFSVnZDSDNUb3Bi?=
 =?utf-8?B?MnBpN0pnTTR6YTdpWGVrTS9NcGVqRjdFZmN6Q3d0TFkrdlhsUUg4RGxzWnNK?=
 =?utf-8?B?cmlBVEpWQVhPRVFSUnpKZkhjRXlpeUlpcUsveDZQY3gxYUVLcFFTdGsxV2l4?=
 =?utf-8?B?ZjRKQ3VnQkdyM3ZoSWhQRERkN0YrWUcwei9uV2RPK0ljempvanFWUDJwL21Y?=
 =?utf-8?B?TzZtVkJ5NVFtTU9vOHZoWEpDTk9FYVZxZmg5OGZKRkFVT1k3T2NtRnRZeE9v?=
 =?utf-8?B?eUFpOGlFS08yUTA0L1dYRUMrdFJ3TTZvQjJ4VUx3eXRxazZURjNvNUFlU3Mw?=
 =?utf-8?B?V1BJTHp2MTBHQmMrbzlXa2JmWVNlS3lEbkt0ZzNacE85NFlQUVR5cXdoVFRl?=
 =?utf-8?B?SjNXeCtLNUZua0tvczZQTE9rTUp1eFozalB0VkJzcStuV3hpUFBUcHJLWDRw?=
 =?utf-8?B?bDN5WlJDOFRkVDBqRWp0TXcrazRMNmxCa1hPU2YvbHBlQWxIWndneGRVU25K?=
 =?utf-8?B?eFdUSklOc0ljVHI3Z0kwYm5HRnpYSytHSjZOb25OS2sxRzd3bzZISTdDVXJt?=
 =?utf-8?B?Z3lveDc1NnV1ODRJMDhFVjdPNUlrUE5mOWhUQitMSTZ1Q1hmWVlGY2FGQXNQ?=
 =?utf-8?B?RkdHMnVJTXhNeDBtTTNqSDN5UElwcUJObGJXeDJCdk9wUE93ZndKSUpsbHQ4?=
 =?utf-8?B?aFRWZmNVTTcxVmZmbE1KeHBWbW40M1FjeVhPdkRtVTB0VnpQZStNaGJibWpn?=
 =?utf-8?B?Q21IVUZwc3VUUFFQdVB3SHcrVU9Wc2VtRkR3UHBFUGtqdVhYa3VkOXl5YTNP?=
 =?utf-8?B?T1RndGZ5SW9OMzJaaVUyY1Y3Z1dha0w4RXJCMUlxU0tEY3FVQzN2QXRUTnZ6?=
 =?utf-8?B?TDVDZWtxcXJHaW1ubXRkTzcyamQ0Uk13TmxCVVhRLzRwcy9VU015YS9HejEv?=
 =?utf-8?B?bXR5QmZnMGQ0TGt6d3NCR3JubWlIZU5VUDR0SFp2d2hMcjFWemhnbmkwZnN1?=
 =?utf-8?B?cmtSQ0YweUt1V05LeU9Yd1Q5TytiVTVNTlZzc0NDUzZ2S21TN0x2YXJRelV4?=
 =?utf-8?B?bTkwR2lCdC9BbXN3VkM2VEk2Y0NzNWI5VUlvVjV4N210YWRRSUZRV01wckRS?=
 =?utf-8?B?dFdoR1FvUW9Pa1dtWU5zVGc0Q1hCS0VWNG9nQytEZ3lyWmFkVTYvbmEwQS92?=
 =?utf-8?B?b0duaWxhVmozbmF1Z1FZWnkvMjJKUkNEWDlrM0VVUTNPRmFXc050SU9lREJM?=
 =?utf-8?B?N3c9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cd75caeb-056a-4d7e-5850-08de37341afe
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 15:03:26.5691
 (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: OI+U+QBrRKxv3EJfYeizGX2EzTdXvTLvrUmGG/cVX3Adl9YN8BbzjF13UMrmyu8ixtCjKWuA+tb1HAQve4pZNGlJOVdVAJ7FNnxCwRAR5RM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6979

On 09/12/2025 2:28 pm, Jan Beulich wrote:
> On 09.12.2025 15:21, Grygorii Strashko wrote:
>>
>> On 09.12.25 15:19, Andrew Cooper wrote:
>>> On 08/12/2025 6:49 pm, Grygorii Strashko wrote:
>>>> Hi Andrew,
>>>>
>>>> On 06.12.25 16:21, Andrew Cooper wrote:
>>>>> On 06/12/2025 2:15 pm, Andrew Cooper wrote:
>>>>>> On 06/12/2025 9:10 am, Grygorii Strashko wrote:
>>>>>>> On 05.12.25 22:00, Andrew Cooper wrote:
>>>>>>>> On 05/12/2025 7:34 pm, Grygorii Strashko wrote:
>>>>>>>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>>>>>>
>>>>>>>>> Extend coverage support on .init and lib code.
>>>>>>>>> Add two hidden Kconfig options:
>>>>>>>>> - RELAX_INIT_CHECK "Relax strict check for .init sections only in
>>>>>>>>> %.init.o
>>>>>>>>> files"
>>>>>>>>> - DO_NOT_FREE_INIT_MEMORY "Prevent freeing of .init sections at the
>>>>>>>>> end of
>>>>>>>>> Xen boot."
>>>>>>>>>
>>>>>>>>> Both selected selected when COVERAGE=y, as getting coverage
>>>>>>>>> report for
>>>>>>>>> ".init" code is required:
>>>>>>>>> - to bypass strict check for .init sections only in %.init.o files;
>>>>>>>>> - the .init code stay in memory after Xen boot.
>>>>>>>>>
>>>>>>>>> RELAX_INIT_CHECK/DO_NOT_FREE_INIT_MEMORY could be used by other
>>>>>>>>> debug
>>>>>>>>> features in the future.
>>>>>>>>>
>>>>>>>>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>>>>>> ---
>>>>>>>>> changes in v2:
>>>>>>>>>     - add RELAX_INIT_CHECK and DO_NOT_FREE_INIT_MEMORY, those are two
>>>>>>>>> different things,
>>>>>>>>>       both potentially reusable
>>>>>>>>>     - enable coverage for libfdt/libelf always
>>>>>>>>>     - enable colverage for .init always
>>>>>>>> This is a lot nicer (i.e. more simple).
>>>>>>>>
>>>>>>>> But, I still don't know why we need to avoid freeing init memory
>>>>>>>> to make
>>>>>>>> this work.  What explodes if we dont?
>>>>>>>>
>>>>>>> It will just crash when coverage data is collected.
>>>>>>>
>>>>>>> First I made changes in make file to get .init covered
>>>>>>> then I hit a crash
>>>>>>> then I checked %.init.o
>>>>>>> conclusion was obvious.
>>>>>>>
>>>>>>> For example:
>>>>>>> objdump -x bzimage.init.o | grep gcov
>>>>>>>
>>>>>>> 0000000000000010 l     O .bss    0000000000000028
>>>>>>> __gcov0.bzimage_check
>>>>>>> 0000000000000040 l     O .bss    0000000000000040
>>>>>>> __gcov0.bzimage_headroom
>>>>>>> 0000000000000000 l     O .bss    0000000000000008
>>>>>>> __gcov0.output_length
>>>>>>> 0000000000000080 l     O .bss    0000000000000060
>>>>>>> __gcov0.bzimage_parse
>>>>>>> 0000000000000098 l     O .init.data.rel.local    0000000000000028
>>>>>>> __gcov_.bzimage_parse
>>>>>>> 0000000000000070 l     O .init.data.rel.local    0000000000000028
>>>>>>> __gcov_.bzimage_headroom
>>>>>>> 0000000000000048 l     O .init.data.rel.local    0000000000000028
>>>>>>> __gcov_.bzimage_check
>>>>>>> 0000000000000020 l     O .init.data.rel.local    0000000000000028
>>>>>>> __gcov_.output_length
>>>>>>> 0000000000000000         *UND*    0000000000000000 __gcov_init
>>>>>>> 0000000000000000         *UND*    0000000000000000 __gcov_exit
>>>>>>> 0000000000000000         *UND*    0000000000000000 __gcov_merge_add
>>>>>>> 0000000000000008 R_X86_64_PLT32    __gcov_init-0x0000000000000004
>>>>>>> 0000000000000012 R_X86_64_PLT32    __gcov_exit-0x0000000000000004
>>>>>>> 0000000000000020 R_X86_64_64       __gcov_merge_add
>>>>>>>
>>>>>> Aah, we should exclude the OJBCOPY too.  That's what's moving
>>>>>> .data.rel.local amongst other sections we target with attributes
>>>>>> directly.
>>>>> we can't target.
>>>> I've come up with below diff - seems it's working without
>>>> DO_NOT_FREE_INIT_MEMORY.
>>>> Is this what you have in mind?
>>>>
>>>> diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
>>>> index 8fc201d12c2c..16b1a82db46e 100644
>>>> --- a/xen/Kconfig.debug
>>>> +++ b/xen/Kconfig.debug
>>>> @@ -40,7 +40,6 @@ config COVERAGE
>>>>          depends on SYSCTL && !LIVEPATCH
>>>>          select SUPPRESS_DUPLICATE_SYMBOL_WARNINGS if
>>>> !ENFORCE_UNIQUE_SYMBOLS
>>>>          select RELAX_INIT_CHECK
>>>> -       select DO_NOT_FREE_INIT_MEMORY
>>>>          help
>>>>            Enable code coverage support.
>>>>   
>>>> diff --git a/xen/Rules.mk b/xen/Rules.mk
>>>> index 8c4861a427e6..47fdcc1d23b5 100644
>>>> --- a/xen/Rules.mk
>>>> +++ b/xen/Rules.mk
>>>> @@ -33,11 +33,15 @@ cov-cflags-y :=
>>>>   nocov-y :=
>>>>   noubsan-y :=
>>>>   
>>>> +# when coverage is enabled the gcc internal section should stay in
>>>> memory
>>>> +# after Xen boot
>>>> +ifneq ($(CONFIG_COVERAGE),y)
>>>>   SPECIAL_DATA_SECTIONS := rodata $(foreach a,1 2 4 8 16, \
>>>>                                               $(foreach w,1 2 4, \
>>>>                                                          
>>>> rodata.str$(w).$(a)) \
>>>>                                               rodata.cst$(a)) \
>>>>                            $(foreach r,rel rel.ro,data.$(r).local)
>>>> +endif
>>>>   
>>>>   # The filename build.mk has precedence over Makefile
>>>>   include $(firstword $(wildcard $(srcdir)/build.mk) $(srcdir)/Makefile)
>>>> diff --git a/xen/common/libelf/Makefile b/xen/common/libelf/Makefile
>>>> index 60b3ae40728f..8180c78f1510 100644
>>>> --- a/xen/common/libelf/Makefile
>>>> +++ b/xen/common/libelf/Makefile
>>>> @@ -1,8 +1,10 @@
>>>>   obj-bin-y := libelf.o
>>>>   libelf-objs := libelf-tools.o libelf-loader.o libelf-dominfo.o
>>>>   
>>>> +ifneq ($(CONFIG_COVERAGE),y)
>>>>   SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
>>>>   OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section
>>>> .$(s)=.init.$(s))
>>>> +endif
>>>>   
>>>>   CFLAGS-y += -Wno-pointer-sign
>>>>   
>>>> diff --git a/xen/common/libfdt/Makefile b/xen/common/libfdt/Makefile
>>>> index ae0f69c01373..fb26e5bff0fd 100644
>>>> --- a/xen/common/libfdt/Makefile
>>>> +++ b/xen/common/libfdt/Makefile
>>>> @@ -4,7 +4,9 @@ SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
>>>>   
>>>>   # For CONFIG_OVERLAY_DTB, libfdt functionalities will be needed
>>>> during runtime.
>>>>   ifneq ($(CONFIG_OVERLAY_DTB),y)
>>>> -OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section
>>>> .$(s)=.init.$(s))
>>>> +       ifneq ($(CONFIG_COVERAGE),y)
>>>> +               OBJCOPYFLAGS := $(foreach
>>>> s,$(SECTIONS),--rename-section .$(s)=.init.$(s))
>>>> +       endif
>>>>   endif
>>> This is the (aforementioned) non-standard way of doing .init.o, which is
>>> why it doesn't play nicely.
>>>
>>> I suggest that we first convert libelf and libfdt to the standard way of
>>> doing .init.
>> I assume the rest is ok.
>>
>>> For libelf this means we need regular __init annotations, but #undef'd
>>> outside of __XEN__ (when we're doing the userspace build).
>>>
>> Need clarification here - this are imported libraries and changing their code
>> directly was not welcome before. Therefore there is Xen specific magic in Makefiles.
>> :(
> I can't and won't speak for libfdt, but for libelf I think we should really
> consider this ours (not imported) the latest as of the re-work for XSA-55.

Agreed.  libelf was already modified for Xen, and then XSA-55 made it
entirely unrecognisable.  It's very much our code now.

If we really don't want to modify libfdt's source, we should make a
standard way of init-ing code like this, so we can move the custom logic
out of libfdt's Makefile.

The problem really is custom local logic; that's what we need to fix.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 15:12:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 15:12:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181834.1504814 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSzNt-0006Lu-8z; Tue, 09 Dec 2025 15:12:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181834.1504814; Tue, 09 Dec 2025 15:12:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSzNt-0006Ln-5d; Tue, 09 Dec 2025 15:12:13 +0000
Received: by outflank-mailman (input) for mailman id 1181834;
 Tue, 09 Dec 2025 15:12:11 +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
 <SRS0=snnK=6P=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vSzNr-0006Lh-EC
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 15:12:11 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6e24e300-d511-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 16:12:09 +0100 (CET)
Received: from CH0PR04CA0119.namprd04.prod.outlook.com (2603:10b6:610:75::34)
 by DM4PR12MB7575.namprd12.prod.outlook.com (2603:10b6:8:10d::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.6; Tue, 9 Dec
 2025 15:12:05 +0000
Received: from CH2PEPF00000141.namprd02.prod.outlook.com
 (2603:10b6:610:75:cafe::7f) by CH0PR04CA0119.outlook.office365.com
 (2603:10b6:610:75::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Tue,
 9 Dec 2025 15:12:04 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CH2PEPF00000141.mail.protection.outlook.com (10.167.244.74) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Tue, 9 Dec 2025 15:12:04 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 9 Dec
 2025 09:12:04 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 9 Dec
 2025 07:12:03 -0800
Received: from [172.29.90.244] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 9 Dec 2025 07:12:03 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6e24e300-d511-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aGy7A2gJj6d2KpQQV+YQBk8UKUKF/thU9UBnIHO1s5lEDbzGQvRlkkck/Aygf+LUFIqBCA4HojoqoefjfzXnolfgcDB4BvX7fqRzFc4+r6jcf3TdtuSQlArovFuInYU6AZMP+vBYeKrcSFjSqnHjTO2/2NH1qFeBYD/XEjASh7x/36N4rUk8Q0cee5q2Hj4oIpSdwyXmPUbeV5ZgYdZXaxFh1Q7TGfNEDmWWpmaCQCg4laYmPcD9cSJdRlt3BOSFs0Vg3trSVX8i/qxb6rcx/ZgEWucY9fKc7SZoNnG0HzCmdc6TbTuLD7L5/OqibjXIIS16X9r5XVuaUjJ/BvQcoA==
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=zyRqL42Pv9oBW2yOakW5gRYlNvi81x59wZ/DHAsNt5A=;
 b=cpYz7f+63FpXqJR7snP7t+jfP20n2aihgnYYXN0iF39Z7vF5Vb4MAv7vOxdziwZYYrzY9yLIZBu2Y9PvkStQcE/G311BUohCYVMWtXvxmc5w7GkEULm8DSVQLuSZBMtlArDXkwOSFYfV83i4jgYa/wfVQYVWYqw7SGoPGNFaeqMYlMDN8RDan5VPTAqkBdRJkoRB/Owqg4KSeydMvH/I1J7NTrRF61eGM9ZGP3ff9M5zzfJIfXgi2nVjQiHnlFRHmFJiAzNZifFNA8nGr8hwkYtH+SBqlO4v7Wbvv2nvY4C0owE1mOiYMN7FOGk4jNBwkNiuy5UIg/7I61RF4eUk/w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zyRqL42Pv9oBW2yOakW5gRYlNvi81x59wZ/DHAsNt5A=;
 b=pRuyUf464htymVnGLscc+eJQEy4TvrTQwCjYhIGqHmiG8iP8P1vSPa/w1gy0k6AQrVmcubicLiplhRo7/BSiW2QS1phhS+A22NczS9pp04Q1vWs7LV4K6hw9qCYcCYOZXhpZub8PM/vcpx2Vu8ojpBODRr8MVl/oH+QTwtV4F7s=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <48c3932e-5042-4586-a22f-5ab758e26df4@amd.com>
Date: Tue, 9 Dec 2025 10:12:02 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] RFC: xen/x86: Enable --gc-sections
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Grygorii Strashko <grygorii_strashko@epam.com>,
	<xen-devel@lists.xenproject.org>
References: <20251205222813.277164-1-jason.andryuk@amd.com>
 <6c10dbc4-3247-4a0d-9953-858d09df08a9@suse.com>
 <1675a966-1095-4aba-af74-828e4c68e6b4@amd.com>
 <f922dad3-9e60-47ff-b4f6-f0ae87fd90af@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <f922dad3-9e60-47ff-b4f6-f0ae87fd90af@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF00000141:EE_|DM4PR12MB7575:EE_
X-MS-Office365-Filtering-Correlation-Id: babd830f-ac53-43de-566e-08de37355006
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZXMyMktqang4Q1NyVkx6RWdXZ1l1bU1VbnJzdTdpeXR2T2E0Slk5dE0rMjE2?=
 =?utf-8?B?STlXOHhYTlpERUZLQUdrSXBIbTRXTW11MzJCT0pmMVB5aVRocjg1NFVvNHlY?=
 =?utf-8?B?UFEvWkJwZlJYMmltREtYdThaTDhmeHdzS3RZYzY4SW5kOFpva1VFQy91aWlE?=
 =?utf-8?B?czZKbU9WQWp5UVd4UEV2WjRzSUI2Y0N1ZXRPeFlUOU5vcS9iN3F0UExzOGx5?=
 =?utf-8?B?S0ltRS9ROEIwSDhodDQ3Q1MzdFdjcnRpdFVPTU9LU0FKcU42dUtGQ0diMUFB?=
 =?utf-8?B?RHp3dHlHYzdhUTY2QkxhWHBRS2x3Z2w1YisvS0UzUms2OCtjclFENCtkRWNx?=
 =?utf-8?B?Uk9hMk5VRENpSDMzTml0SlNEYm1BTjJSSG1zcWZyaVp1ZzhXV3EweGZjMFdr?=
 =?utf-8?B?TXlLYjZUaGp0NEQrMHFCM3V1enhmaTI2a2lJSXk2OVVxaEpXb0FyNjBtdjc5?=
 =?utf-8?B?cWZDaDVjMzRmd2tVWEEvZllINklzZE52MmtaTjRIa3JOMWFpZ05zUkM5WWYz?=
 =?utf-8?B?RVhtVUd5cUpBeUFIK1Z1em1OcnFxaGgrT0h5SFZlODJmOXV4alJpOXRBU3Rs?=
 =?utf-8?B?eW9sQnZ3ZGVIVnFWT2hmRStPMHMrUmZlbjh0eFhzYTZxanFOV3cvRUlxS1Rr?=
 =?utf-8?B?ZGd5NFAyNnBRWndCSUFDSHpqYWprdEtPc0Npb2RVRmNMR2NMS00yQTV6RHJu?=
 =?utf-8?B?ekIvUnVjemcrSkswTldXOGJXUWlOQ2U5ZHNpVUd4V213SmxmWFk1VkJ5eCt6?=
 =?utf-8?B?SWRMNjIySmpJTGthbVdkZUd1ZTkzKzdGeWIrVUc2VFVsQmx0OHV1eHpCUmVT?=
 =?utf-8?B?NXMwNU9BTUwvblg5ZkYrbU02M1J5V3I0SUliSTZBbFBoWVVTT2h3a1ZvNE9m?=
 =?utf-8?B?ZjBnait4SVFtMzN3cEoxR1ZDb2NVZzNjYkc3VEE0eFFNZVN3c0tqZUR4ODNV?=
 =?utf-8?B?K3JYalp0QjBTUXlock50YTZScFBnU3lFeEY1MTNtMzI5ZEg0UjdJYUR5eGRu?=
 =?utf-8?B?STArWlZTYXd5ZCtqZ0ZLa1YzSGRia3d4cnZRK21JQ2lHUnpZczdXSFcwM2lO?=
 =?utf-8?B?QjFNRXl4QXpudWZkcm5EUk1JWHVFVjJCVGZLbzFyUndQNkI3ZlBEZHRPZVQ2?=
 =?utf-8?B?UEgvVC94eDEyOGQxZWhSSkJhTWdpRG1LOHM3SEV1aHNpYUpFSVhnQkxrOC9P?=
 =?utf-8?B?Y3RHZm91NHIzS3lnQTQ5aTJ5MXN3TWp1dEVSVmFEU3VVcjY3SUR4UWZIVkpj?=
 =?utf-8?B?M29sZWljWW5SU21TVHZXMmJhZSs5UUlCVzh4TVJhdTljN3RYbDVaUldYY3JU?=
 =?utf-8?B?ZHlHK2cwUzB2N2Zid0ZMd3cyVHMrWVV2QVNUbjZnVHRsMHV3Q2srT1o1OTZx?=
 =?utf-8?B?S2RhWlpvQ1hIK0FzenFyOE5jOGswcWM4Rlp6N2pTTzlGR1FtSnNkRXZOcnVr?=
 =?utf-8?B?dEV4SUgvTmJtUnl3YnZsbG9zQ2l6WTV2UGFiZXZYQ01YL0NBazE2TktiS2hN?=
 =?utf-8?B?Sk5MVzZwU0hoVVFGWWp4UFplV29uYkRrODVmVXB1WTRTMjN6TXBMNE1Pb08v?=
 =?utf-8?B?bGI0UlN6WnNaNndMTFJOOGdZOHlNNllNZUczejR0MlFFazBmeVE3ejlHTmN1?=
 =?utf-8?B?ajBnbjFNNWVLV0twcGlYS0N1dzNiS0owZzhXdjltWGFKUWpZa2VSdmt4aHk4?=
 =?utf-8?B?d3FEWVhpR2VDa2FBdGRVbmIzeXpLTjhEMGk0NDNTR1kzS0Npc0ZKWjhURXZU?=
 =?utf-8?B?YjJ4UnFzQ095M3BLTjJHOXQ1bWRHL1FRbVQyK3lsSUFDSEtjdzl4SzlNcEc1?=
 =?utf-8?B?cTMweEZoQWpPZTBNMFVJcTUxc0JFekdvd1c4eEhpVmd3WVRxOHF0cmJEYUJL?=
 =?utf-8?B?Rk9aTlpQcGI3QWRScUxlMHQzcitKZkkxRHRsaGV1QktQbTNWMEd0cGxFRzQ0?=
 =?utf-8?B?eWQ2M01XZDFuOEgwOVd3Y0hBeXJONmVHdm05OTRFWnFwRG1VREI4aGUxUnFl?=
 =?utf-8?B?dkhvNnRiNEl6TDRXQXUzL3dxcmE0S2lFRWtpeWppUW9LenFSQ2ZyWktqdzlZ?=
 =?utf-8?Q?mz871t?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 15:12:04.8035
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: babd830f-ac53-43de-566e-08de37355006
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF00000141.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7575

On 2025-12-09 02:36, Jan Beulich wrote:
> On 09.12.2025 00:00, Jason Andryuk wrote:
>> On 2025-12-08 03:56, Jan Beulich wrote:
>>> On 05.12.2025 23:28, Jason Andryuk wrote:
>>>> When linking to create xen-syms, add --gc-sections to garbage collect
>>>> unused stuff.
>>>
>>> What about xen.efi?
>>
>> I tried briefly and it fails to link.  The GCC manual says it is
>> considered experimental for PE and COFF.
> 
> The gcc manual documents linker behavior? Do you have a more concrete pointer?

My bad - it's binutils.  https://sourceware.org/binutils/docs/ld.html 
down at --gc-sections:
"Note that garbage collection for COFF and PE format targets is 
supported, but the implementation is currently considered to be 
experimental."

>> I just added into EFI_LDFLAGS:
>>     CC      .xen.efi.0s.o
>> ld -mi386pep --no-warn-rwx-segments --subsystem=10
>> --enable-long-section-names --disable-high-entropy-va --dynamicbase
>> --image-base=0xffff82d040000000 --stack=0,0 --heap=0,0
>> --section-alignment=0x200000 --file-alignment=0x20
>> --major-image-version=4 --minor-image-version=22 --major-os-version=2
>> --minor-os-version=0 --major-subsystem-version=2
>> --minor-subsystem-version=0 --gc-sections --print-gc-sections
>> --build-id=sha1 -T arch/x86/efi.lds prelink.o  ./.xen.efi.0s.o -b
>> pe-x86-64 arch/x86/efi/buildid.o -o ./.xen.efi.0xffff82d040000000.0 && :
>> ld: kexec_reloc is too large
>> ld: kexec_reloc is too large
>> ld:
>> prelink.o:/home/jandryuk/xen/xen/arch/x86/boot/head.S:60:(.text.header+0x48):
>> undefined reference to `start'
> 
> I see. This then would want mentioning in the patch description. And I've added
> it to my binutils side todo list.

I trimmed, but the output continues for a long time.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 15:20:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 15:20:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181842.1504823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSzVw-0007zW-00; Tue, 09 Dec 2025 15:20:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181842.1504823; Tue, 09 Dec 2025 15:20:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSzVv-0007zP-Tk; Tue, 09 Dec 2025 15:20:31 +0000
Received: by outflank-mailman (input) for mailman id 1181842;
 Tue, 09 Dec 2025 15:20:30 +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
 <SRS0=R9j7=6P=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vSzVu-0007zJ-FS
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 15:20:30 +0000
Received: from mail-oi1-x234.google.com (mail-oi1-x234.google.com
 [2607:f8b0:4864:20::234])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 97b27170-d512-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 16:20:28 +0100 (CET)
Received: by mail-oi1-x234.google.com with SMTP id
 5614622812f47-4557c596339so302335b6e.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 07:20:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97b27170-d512-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1765293627; x=1765898427; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5RXnCjLpBnFu3xg+Z5lOG4Th4AQLzsqJLO+ggFjyTTM=;
        b=Tig/LbI91zrMaZHLEZPanny3Lu8FPt1AFoOqLhYRm87J0hg/s/qgvsQ/2PEVCaYaNF
         s/T9DMbN3ftv7Uy+Bpb+xMqlErMqVZyB+RB4Dyz18FgNmF5IuOuBMWz5t/dLI2GBqPLa
         wzCJlbFDbe21ImJwiq1jIFSxIRjnMh+M8QkvEEnvFJsaNiB+GZcQfqady0l/00yB35EU
         Mn1aPkwCLZIThhzh77xaGIvVSIPw2hArJ2OHJ1jvZCPbK53jWpHHt/eMb4dLtFi+r85A
         Z+JpdSf+Ufkj3L57a9J5ENOmyEJUou6YYcS/yLTenvIFh2De95v2MqTJ1sWg10P+N7Od
         P+Vw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765293627; x=1765898427;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=5RXnCjLpBnFu3xg+Z5lOG4Th4AQLzsqJLO+ggFjyTTM=;
        b=RAHhIOLXtlyKdP7MKDXJ/bIl9wSrDqXomcYF9CUNCqipJDiYkyiAqifr4Upg0Sr7Fm
         xUoi2Qp72eZ6XsDJW8Ol1h1z6r5kMQLbaIW6oFw9XR6cYPlX9h4BhZ0bobCiiMKR8Qzx
         K7703ILXQb2LxyfkDzhe1bW1Mp8czJAh0rNrDGdF9zSyZ5pOOMbT1g38TP+7RlMq+JK4
         PFsfL2d6J//oqhIKRneWXKx73113Nb8lh4E6LhlObg4HTRZ8ZNs7BqUrQaQZEUsazrwv
         TQOM32NavHH3obT9aIpPy4BNLhdEbfBGBqWspy8A+YWQATbgMoIucCz0Z+8tErFr3ZbI
         2WtQ==
X-Gm-Message-State: AOJu0YxYAA67bwM3LBXDbzbZOLUZG2EokK7SMugpempyTTzIDZDg6qS3
	dvwWjkLk27q/y6EvGcXPY4zquCsgndZQZ7u5OALdUWIOmwrqNtNGLWO0YIlD/a/LEshNqrds69c
	8PhtZEXANqGBZ3GdZ6rl8R63gjAHWUURwJQp8mzLN6w==
X-Gm-Gg: ASbGncs8DvAQ3Mj/gs7SmWXffzZPjRSOQtj1dfYDfXV7KEUCEGdaEjA5/BBWR54nUPH
	4Z71GSpLwFXGoKDPFMvPgzvZ7SKJbVLRd66scSjKGDmo4YS/My+/Y8hbTcBuaMvvzzRzRb6PfMM
	myKaQMOuAKoVsJfjhpbwkdj5591YF8oqhg0jAo9teILYFQSqgeLsffaUXJnw7WiPqlm67TQboAE
	ymPh5Nv4EVxkRmS0qEQPhvNJED93Q7BXEWlK94qW4IUuUf8uv/apKcSxGs3y5iQTiLsg4eQq057
	2lRpsA7oxRB2zG0tWLT3aBsWOH4qDhUS3LePmWvCZT6Dj5AxcrxwHO4/uOMgUQ==
X-Google-Smtp-Source: AGHT+IGHAWYoEMDEwAtDGEMcvorvWlm7YjJ5N/SnuWRZaGXfDfI2zv1KIHs0sJqkt5zwyq9iM9TVSsaGD8wibCiCfrQ=
X-Received: by 2002:a05:6808:2381:b0:449:39e0:f3ce with SMTP id
 5614622812f47-4539df6497dmr5575017b6e.28.1765293627264; Tue, 09 Dec 2025
 07:20:27 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764930353.git.bertrand.marquis@arm.com> <cbf340d18fe0f2733d81455bb43e63775e29a055.1764930353.git.bertrand.marquis@arm.com>
In-Reply-To: <cbf340d18fe0f2733d81455bb43e63775e29a055.1764930353.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 9 Dec 2025 16:20:15 +0100
X-Gm-Features: AQt7F2q81BoYiQR4OX4zr61o9EJj4SHTTGX4rtJlYRspwav3At1blTAHMGI0938
Message-ID: <CAHUa44FEunGHQ62FPLJz6wXmSMtVdO=yJ1e3Qk-Kd_ggEtvMwA@mail.gmail.com>
Subject: Re: [PATCH v1 10/12] xen/arm: ffa: add v1.2 SEND2 header layout
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Fri, Dec 5, 2025 at 11:37=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Teach the SEND2 path about the distinct FF-A v1.1 and v1.2 RX/TX header
> layouts so we can propagate the 128-bit UUIDs introduced in v1.2.
>
> VM-to-VM SEND2 calls now build the larger v1.2 header, zeroing the UUID
> fields for v1.1 senders, and the dispatcher validates messages using
> the v1.1 header layout to keep legacy guests working.
>
> While there, make the code more robust by checking that the send is not
> trying to send a message to himself.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes in v1:
> - Mention self send check in commit message
> - check header size depending on sender FF-A version and make sure 1.2
>   has enough space for 1.2 header
> - Simplify the code by setting uuid field of the header to Nil-UUID when
>   testing the caller version and remove the need to pass the context to
>   the send2_vm function
> - Use ACCESS_ONCE when reading sender ffa version
> ---
>  xen/arch/arm/tee/ffa_msg.c | 58 ++++++++++++++++++++++++++++++--------
>  1 file changed, 47 insertions(+), 11 deletions(-)

Looks good
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
> index 5a4cb1bb8295..c3552a3ae36d 100644
> --- a/xen/arch/arm/tee/ffa_msg.c
> +++ b/xen/arch/arm/tee/ffa_msg.c
> @@ -13,7 +13,7 @@
>  #include "ffa_private.h"
>
>  /* Encoding of partition message in RX/TX buffer */
> -struct ffa_part_msg_rxtx {
> +struct ffa_part_msg_rxtx_1_1 {
>      uint32_t flags;
>      uint32_t reserved;
>      uint32_t msg_offset;
> @@ -21,6 +21,16 @@ struct ffa_part_msg_rxtx {
>      uint32_t msg_size;
>  };
>
> +struct ffa_part_msg_rxtx_1_2 {
> +    uint32_t flags;
> +    uint32_t reserved;
> +    uint32_t msg_offset;
> +    uint32_t send_recv_id;
> +    uint32_t msg_size;
> +    uint32_t reserved2;
> +    uint64_t uuid[2];
> +};
> +
>  static void ffa_finish_direct_req_run(struct cpu_user_regs *regs,
>                                        struct arm_smccc_1_2_regs *req)
>  {
> @@ -105,11 +115,11 @@ out:
>  }
>
>  static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
> -                                struct ffa_part_msg_rxtx *src_msg)
> +                                struct ffa_part_msg_rxtx_1_2 *src_msg)
>  {
>      struct domain *dst_d;
>      struct ffa_ctx *dst_ctx;
> -    struct ffa_part_msg_rxtx *dst_msg;
> +    struct ffa_part_msg_rxtx_1_2 *dst_msg;
>      void *rx_buf;
>      size_t rx_size;
>      int err;
> @@ -143,7 +153,7 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, cons=
t void *src_buf,
>          goto out_unlock;
>
>      /* we need to have enough space in the destination buffer */
> -    if ( (rx_size - sizeof(struct ffa_part_msg_rxtx)) < src_msg->msg_siz=
e )
> +    if ( (rx_size - sizeof(struct ffa_part_msg_rxtx_1_2)) < src_msg->msg=
_size )
>      {
>          ret =3D FFA_RET_NO_MEMORY;
>          ffa_rx_release(dst_ctx);
> @@ -155,11 +165,14 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, co=
nst void *src_buf,
>      /* prepare destination header */
>      dst_msg->flags =3D 0;
>      dst_msg->reserved =3D 0;
> -    dst_msg->msg_offset =3D sizeof(struct ffa_part_msg_rxtx);
> +    dst_msg->msg_offset =3D sizeof(struct ffa_part_msg_rxtx_1_2);
>      dst_msg->send_recv_id =3D src_msg->send_recv_id;
>      dst_msg->msg_size =3D src_msg->msg_size;
> +    dst_msg->reserved2 =3D 0;
> +    dst_msg->uuid[0] =3D src_msg->uuid[0];
> +    dst_msg->uuid[1] =3D src_msg->uuid[1];
>
> -    memcpy(rx_buf + sizeof(struct ffa_part_msg_rxtx),
> +    memcpy(rx_buf + sizeof(struct ffa_part_msg_rxtx_1_2),
>             src_buf + src_msg->msg_offset, src_msg->msg_size);
>
>      /* receiver rx buffer will be released by the receiver*/
> @@ -178,11 +191,17 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *=
regs)
>      struct ffa_ctx *src_ctx =3D src_d->arch.tee;
>      const void *tx_buf;
>      size_t tx_size;
> -    struct ffa_part_msg_rxtx src_msg;
> +    /*
> +     * src_msg is interpreted as v1.2 header, but:
> +     * - for v1.1 guests, uuid[] is ignored and may contain payload byte=
s
> +     * - for v1.2 guests, uuid[] carries the FF-A v1.2 UUID fields
> +     */
> +    struct ffa_part_msg_rxtx_1_2 src_msg;
>      uint16_t dst_id, src_id;
>      int32_t ret;
>
> -    BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx) >=3D FFA_PAGE_SIZE);
> +    BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx_1_1) >=3D FFA_PAGE_SIZE=
);
> +    BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx_1_2) >=3D FFA_PAGE_SIZE=
);
>
>      ret =3D ffa_tx_acquire(src_ctx, &tx_buf, &tx_size);
>      if ( ret !=3D FFA_RET_OK )
> @@ -194,15 +213,32 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *=
regs)
>      src_id =3D src_msg.send_recv_id >> 16;
>      dst_id =3D src_msg.send_recv_id & GENMASK(15,0);
>
> -    if ( src_id !=3D ffa_get_vm_id(src_d) )
> +    if ( src_id !=3D ffa_get_vm_id(src_d) ||
> +         dst_id =3D=3D ffa_get_vm_id(src_d) )
> +    {
> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> +        goto out;
> +    }
> +
> +    if ( ACCESS_ONCE(src_ctx->guest_vers) < FFA_VERSION_1_2 )
> +    {
> +        if (src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx_1_1))
> +        {
> +            ret =3D FFA_RET_INVALID_PARAMETERS;
> +            goto out;
> +        }
> +        /* Set uuid to Nil UUID for v1.1 guests */
> +        src_msg.uuid[0] =3D 0;
> +        src_msg.uuid[1] =3D 0;
> +    }
> +    else if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx_1_2) =
)
>      {
>          ret =3D FFA_RET_INVALID_PARAMETERS;
>          goto out;
>      }
>
>      /* check source message fits in buffer */
> -    if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx) ||
> -            src_msg.msg_size =3D=3D 0 || src_msg.msg_offset > tx_size ||
> +    if ( src_msg.msg_size =3D=3D 0 || src_msg.msg_offset > tx_size ||
>              src_msg.msg_size > (tx_size - src_msg.msg_offset) )
>      {
>          ret =3D FFA_RET_INVALID_PARAMETERS;
> --
> 2.51.2
>


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 15:22:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 15:22:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181851.1504835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSzXy-00005X-CR; Tue, 09 Dec 2025 15:22:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181851.1504835; Tue, 09 Dec 2025 15:22:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSzXy-00005Q-8D; Tue, 09 Dec 2025 15:22:38 +0000
Received: by outflank-mailman (input) for mailman id 1181851;
 Tue, 09 Dec 2025 15:22:37 +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
 <SRS0=R9j7=6P=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vSzXx-00005K-5V
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 15:22:37 +0000
Received: from mail-oi1-x235.google.com (mail-oi1-x235.google.com
 [2607:f8b0:4864:20::235])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e37c1074-d512-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 16:22:35 +0100 (CET)
Received: by mail-oi1-x235.google.com with SMTP id
 5614622812f47-45090ef26c6so1664352b6e.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 07:22:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e37c1074-d512-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1765293754; x=1765898554; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ujd9WVCGq6lmwU+W36A6T6c65HBI1XeVyX0ybbUAKYE=;
        b=JfTy03lUw01wFWbEbXPQnaq2T7NpSYrCrqkg/QBwPhlCPIE6C4X8ks5Mxz6lnDRwje
         J8u8V5zAR3G3AtGSWn7Hk8zd/r16+2iKaWVIkrw1DOgcCmsq2z5CwSXTHN1OVVVMrIxA
         +jvQUrat7AL+h3C5NUP10zq3widn+xFLwE6GkhbOLpzU5Uc73/99a/BuECZxzLYH/ORR
         T6QsIcCswXvWWLrQuYB3HVh0GqA5iJw8vNG1b51EmJbFgLYg20ynidUc6TKeS1FPMYU2
         h6fEjQo9CF3XXQVH7r8JB4HteUNn6HUk4RPpOtz1y7CfV3u8U4vwZVl0jCGsvuR6ubjL
         cE+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765293754; x=1765898554;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ujd9WVCGq6lmwU+W36A6T6c65HBI1XeVyX0ybbUAKYE=;
        b=t8CSObEkhUq9cDS7f+FcNFpimLW+c5j5DTwgMsGjSVQKjzzsGo2WLh//9QgEuWgYv+
         NXQ+UjEVm3on76nCRm3NRRozYEWD/MX7meL6LekKw9qCNN9HFdDBgxjLbQkLEwvkBo4h
         8YrVKBtvwlzBE5cBFR9G+2p7G7DHzlEKfr3LyxUasmQVQVgIMMW9WqI87rIJzk7KKECW
         A0lXs0zKPtCk9GxUkqpCGl35TfadtYxct1VjgPBcJkwXq0l+uBeY2Gll6hvdYUL567GX
         7YxHy3K3MnnZjlB0lXuP3Ma/HNPNq7igUrbT/w4gkP2M3MHxjn8InlyQspvmFHQVzJz5
         eovA==
X-Gm-Message-State: AOJu0YxpGvjiudXtAaAg6b3wD7L17UBHkN4zCow/CIO3nMQzeDR0UDuo
	CPGoEINIpFVTSVMJKnk5PGWrJEEVRsWVrc3FQ/JacNk/v8f184Z5YSPO6A6G2lVT3TutTed9u4C
	zxSYym0+JUG/QCvtDSHTheGQyPPJztz9hSmk9R883MQ==
X-Gm-Gg: ASbGnctFQl5VVyF2aeJF/wokxipMhnsb2cwG00MFdPfT7yEgfX23JCysDB5uoG/xL/L
	HuxC5QNrDr7l54+uP4m4qntWWHhwQNMY+f+TIUxlOtaQf3ZBEwqiesmYRjAjN44aNYwcrPAWKD4
	3fs4l3MAu0q6RWC1LolFuh3MJx/aAUYDQyMTVoTVebqJZuh0AK7ohHAddbTjALFyeC7j4SSUfu+
	N8mV7hlo1JcNyvGhJ+3rTFW0h/TtTJGU5yIDFpoMndmvcnPOx6YdIhHQrngMl//NoDBdJWRT3kH
	WjjTgPdnVEguBJlmo7NtI5jNi9CH/d1fUXKD+PqT2h+AcjkHW9kkkWrRN/geXKocvg9hL7Ua
X-Google-Smtp-Source: AGHT+IHEWzhRh4IYErCmLYX0ClzF1H72e6SGrFqmxeL22S6Djt+UxuXsrNbtQpUn25IQ/eJP1M6r3xT1jmBu16p0Q1k=
X-Received: by 2002:a05:6808:6f87:b0:442:2ce:46cf with SMTP id
 5614622812f47-4539e08f38emr4837979b6e.34.1765293754417; Tue, 09 Dec 2025
 07:22:34 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764930353.git.bertrand.marquis@arm.com> <55a3df6c73581e7e77a76230cd445ccb16608269.1764930353.git.bertrand.marquis@arm.com>
In-Reply-To: <55a3df6c73581e7e77a76230cd445ccb16608269.1764930353.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 9 Dec 2025 16:22:23 +0100
X-Gm-Features: AQt7F2rb6vDZtFGhkqEM-eWWiY1imgFjI7YWo1I8B_pWDlNdlHcCklbO8MkDde4
Message-ID: <CAHUa44Ee+foLY-w7NCENzEWWJks54dpK4ijSs9SwD6OgnYtRMg@mail.gmail.com>
Subject: Re: [PATCH v1 11/12] xen/arm: ffa: add MSG_SEND_DIRECT_REQ2 support
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Fri, Dec 5, 2025 at 11:37=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Extend the direct-request path so FF-A v1.2 guests can issue
> FFA_MSG_SEND_DIRECT_REQ2 and receive the matching RESP2.
>
> The handler now marshals registers x8=E2=80=93x17, and
> ffa_finish_direct_req_run() copies back the 17-register response used by
> FFA_MSG_SEND_DIRECT_RESP2. The new opcode is exposed via FFA_FEATURES
> and gated on guests that negotiated v1.2.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes in v1:
> - use ACCESS_ONCE to read guest_vers
> ---
>  xen/arch/arm/tee/ffa.c     | 20 +++++++++++++++++++
>  xen/arch/arm/tee/ffa_msg.c | 39 ++++++++++++++++++++++++++++++++++++++
>  2 files changed, 59 insertions(+)

Looks good.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 0f07efe5a7b3..2c6443a7f6a4 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -237,6 +237,8 @@ out_continue:
>  static void handle_features(struct cpu_user_regs *regs)
>  {
>      uint32_t a1 =3D get_user_reg(regs, 1);
> +    struct domain *d =3D current->domain;
> +    struct ffa_ctx *ctx =3D d->arch.tee;
>      unsigned int n;
>
>      for ( n =3D 2; n <=3D 7; n++ )
> @@ -268,6 +270,16 @@ static void handle_features(struct cpu_user_regs *re=
gs)
>      case FFA_MSG_YIELD:
>          ffa_set_regs_success(regs, 0, 0);
>          break;
> +    case FFA_MSG_SEND_DIRECT_REQ2:
> +        if ( ACCESS_ONCE(ctx->guest_vers) >=3D FFA_VERSION_1_2 )
> +        {
> +            ffa_set_regs_success(regs, 0, 0);
> +        }
> +        else
> +        {
> +            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> +        }
> +        break;
>      case FFA_MEM_SHARE_64:
>      case FFA_MEM_SHARE_32:
>          /*
> @@ -353,6 +365,14 @@ static bool ffa_handle_call(struct cpu_user_regs *re=
gs)
>      case FFA_MSG_SEND_DIRECT_REQ_64:
>          ffa_handle_msg_send_direct_req(regs, fid);
>          return true;
> +    case FFA_MSG_SEND_DIRECT_REQ2:
> +        if ( ACCESS_ONCE(ctx->guest_vers) >=3D FFA_VERSION_1_2 )
> +        {
> +            ffa_handle_msg_send_direct_req(regs, fid);
> +            return true;
> +        }
> +        e =3D FFA_RET_NOT_SUPPORTED;
> +        break;
>      case FFA_RUN:
>          ffa_handle_run(regs, fid);
>          return true;
> diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
> index c3552a3ae36d..4e26596461a9 100644
> --- a/xen/arch/arm/tee/ffa_msg.c
> +++ b/xen/arch/arm/tee/ffa_msg.c
> @@ -49,6 +49,30 @@ static void ffa_finish_direct_req_run(struct cpu_user_=
regs *regs,
>      case FFA_MSG_YIELD:
>      case FFA_INTERRUPT:
>          break;
> +    case FFA_MSG_SEND_DIRECT_RESP2:
> +        /*
> +         * REQ2 / RESP2 use a 17-register payload (x1=E2=80=93x17). Copy=
 all of them
> +         * back to the guest context.
> +         */
> +        set_user_reg(regs, 0, resp.a0);
> +        set_user_reg(regs, 1, resp.a1);
> +        set_user_reg(regs, 2, resp.a2);
> +        set_user_reg(regs, 3, resp.a3);
> +        set_user_reg(regs, 4, resp.a4);
> +        set_user_reg(regs, 5, resp.a5);
> +        set_user_reg(regs, 6, resp.a6);
> +        set_user_reg(regs, 7, resp.a7);
> +        set_user_reg(regs, 8, resp.a8);
> +        set_user_reg(regs, 9, resp.a9);
> +        set_user_reg(regs, 10, resp.a10);
> +        set_user_reg(regs, 11, resp.a11);
> +        set_user_reg(regs, 12, resp.a12);
> +        set_user_reg(regs, 13, resp.a13);
> +        set_user_reg(regs, 14, resp.a14);
> +        set_user_reg(regs, 15, resp.a15);
> +        set_user_reg(regs, 16, resp.a16);
> +        set_user_reg(regs, 17, resp.a17);
> +        return;
>      default:
>          /* Bad fid, report back to the caller. */
>          ffa_set_regs_error(regs, FFA_RET_ABORTED);
> @@ -107,6 +131,21 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_=
regs *regs, uint32_t fid)
>      arg.a6 =3D get_user_reg(regs, 6) & mask;
>      arg.a7 =3D get_user_reg(regs, 7) & mask;
>
> +    if ( fid =3D=3D FFA_MSG_SEND_DIRECT_REQ2 )
> +    {
> +        /* 17 registers are used for REQ2 */
> +        arg.a8 =3D get_user_reg(regs, 8);
> +        arg.a9 =3D get_user_reg(regs, 9);
> +        arg.a10 =3D get_user_reg(regs, 10);
> +        arg.a11 =3D get_user_reg(regs, 11);
> +        arg.a12 =3D get_user_reg(regs, 12);
> +        arg.a13 =3D get_user_reg(regs, 13);
> +        arg.a14 =3D get_user_reg(regs, 14);
> +        arg.a15 =3D get_user_reg(regs, 15);
> +        arg.a16 =3D get_user_reg(regs, 16);
> +        arg.a17 =3D get_user_reg(regs, 17);
> +    }
> +
>      ffa_finish_direct_req_run(regs, &arg);
>      return;
>
> --
> 2.51.2
>


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 15:25:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 15:25:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181865.1504843 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSzaW-0000hW-Tl; Tue, 09 Dec 2025 15:25:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181865.1504843; Tue, 09 Dec 2025 15:25:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSzaW-0000hP-RF; Tue, 09 Dec 2025 15:25:16 +0000
Received: by outflank-mailman (input) for mailman id 1181865;
 Tue, 09 Dec 2025 15:25:15 +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
 <SRS0=R9j7=6P=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vSzaV-0000hJ-HN
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 15:25:15 +0000
Received: from mail-oi1-x234.google.com (mail-oi1-x234.google.com
 [2607:f8b0:4864:20::234])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 41d0778a-d513-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 16:25:14 +0100 (CET)
Received: by mail-oi1-x234.google.com with SMTP id
 5614622812f47-450b3f60c31so2591465b6e.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 07:25:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 41d0778a-d513-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1765293913; x=1765898713; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=px9k85v8oJRTGCidCYR/pxO2mba+FuoRZ1VGFVhqnjs=;
        b=wxYmzTGyTevA/LFi1sovdYxqnDXQ7QrO6iHhBkJpKIYRrAM1QtFwLFEr7vAUALUSUD
         4BIpcUZDjJ21fKLO+IEUKKpuUQHk9rMLObxOXTMrYtqCjZlumTz0aYnkBHGgZVxF6nFk
         R6l3FHBl8RO+pAjuYIdYaBCcCKeVqGYJ4Od8/c6E8BBEHtDZpN7TbfNmhTQqhv9jltIg
         12oS2pbC4/VWLkEjaprAD0s0yzyhNnvsj2iIG/rR7xP817fruKQJa5/6kmvPlGhWhD6q
         4khjT4/kabM2ZA1HsowL3mHGdHY3go/8BnyWSZcHTCUK7Gj1lJ30hEJNlqAasG2+Iv6Y
         DJKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765293913; x=1765898713;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=px9k85v8oJRTGCidCYR/pxO2mba+FuoRZ1VGFVhqnjs=;
        b=fOAIRgYjIzjZFRgqmdrFo9sqdsF7QLdH428RiFge9fRyc04xNtjRxaYvUZAke/kMZW
         jCHF7EzI47ofSy34T721zp4V75heWIXsr8Ze7q6+7YyvBnL5TyTJGAh85akowizx5b8M
         1U8iBqirrgieaDzLePPWtYidkEuUCIMNuu2nszR/uzMNBxRZd+ggi+L5tC+Vkl9yphdM
         norXq0gGGeDe2s52dlz1xbldUObKMQMHwm2yNPi2uVzzirm4MRhM9Mf2EnsJmfe6q5YF
         vwlqK6ok11qFSenQN9VNMn0Md0JTPdl3givnv60mNC21+of0wo+IyHgZV+CWXenof66j
         +9Yw==
X-Gm-Message-State: AOJu0YyJkc7RgJnbM+3JYQhX7iP6eJJPIgUdGMLRlZ1U0dFyUIGwKWjN
	W6aYbVraP9LTmaRLSaIZ7ZBnnSPh9Cfx88CHNvMlcFx0V45gKWF/gkII7X/VaiULWbNw7OgbiIO
	EOrRsahgaUKXxUFlDpmzj7B5V+j/6lMN+9a6vhWhDZw==
X-Gm-Gg: ASbGncvYW+Ul6gGJA78/GJ2lNNimJ+HkeJbMmlDc1nqNpi6MuHRAq5zqMNsqZB6DK3w
	Yrplwg0XIbpZUrWEniA/aGnNjxRcdo3YsbGjV0LKxIj44RinZ0T6+s7ZWCk4DeZRfG5XauQdF/g
	tKyKvRGIbvhKC1gOky8LEhRdI0mte0XnUJBRunIukFMmSp4QGOAIwes/YR8J0pvDh3ZYX0HMSJ5
	9uaDLOR3k5CVfHSE+w1cQOjcZBreJIJoS90JDjz9zGcVRaWWD4Bmnrf005N7c2kQrN5XqCyf6K6
	1bAgiDeVJwTSQFtfzYTylxh9G4c3UM0XvB/4QajYWAlMLJF6AXIG38saEUZUpg==
X-Google-Smtp-Source: AGHT+IHlzgzyYPqo7sOs2PJmW1GMZ+FSO4vkkNGOiTT6Dgdxy2ffgddUtkkpa6WmfdMHRuGqpd5fr7ytaKzBvYoj/yE=
X-Received: by 2002:a05:6808:1507:b0:450:4a53:54d4 with SMTP id
 5614622812f47-4539df814admr4951024b6e.25.1765293912760; Tue, 09 Dec 2025
 07:25:12 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764930353.git.bertrand.marquis@arm.com> <8412f616340976de6aa5f7da585cdc3dfd919732.1764930353.git.bertrand.marquis@arm.com>
In-Reply-To: <8412f616340976de6aa5f7da585cdc3dfd919732.1764930353.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 9 Dec 2025 16:25:01 +0100
X-Gm-Features: AQt7F2qmmqcj0G2BeaIRMJETyQttFjPk0jUpMMHtyc--gR_zFjo-RFHa3_Qb5GE
Message-ID: <CAHUa44HqFfA=NzXYwRDnDoV9m2FVDh5PS5tTS+9dyL7uQLUEtg@mail.gmail.com>
Subject: Re: [PATCH v1 12/12] xen/arm: ffa: advertise FF-A v1.2
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Fri, Dec 5, 2025 at 11:37=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Expose the RX/TX MAP capacity field only once a guest has
> negotiated FF-A v1.2.
>
> While there, drop the stale <asm/tee/ffa.h> include.
>
> To comply with the wider v1.2 register ABI, zero registers x8=E2=80=93x17=
 when
> responding to a v1.2 VM. The dispatcher also rejects SMCCC64 calls from
> AArch32 guests.
>
> Finally, bump Xen's FF-A version to 1.2.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes in v1:
> - Remove advertising of YIELD/INTERRUPT/RUN which has now moved to patch
>   adding FFA_RUN support and adapt commit message
> - Use ACCESS_ONCE to read guest_vers
> - Use is_64bit_domain instead of ctx->is_64bit
> ---
>  xen/arch/arm/tee/ffa.c         | 19 +++++++++++++++++--
>  xen/arch/arm/tee/ffa_private.h | 29 ++++++++++++++++++++---------
>  2 files changed, 37 insertions(+), 11 deletions(-)

Looks good.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 2c6443a7f6a4..ed18e76080d0 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -65,7 +65,6 @@
>  #include <asm/event.h>
>  #include <asm/regs.h>
>  #include <asm/smccc.h>
> -#include <asm/tee/ffa.h>
>  #include <asm/tee/tee.h>
>
>  #include "ffa_private.h"
> @@ -296,7 +295,16 @@ static void handle_features(struct cpu_user_regs *re=
gs)
>           * differs from FFA_PAGE_SIZE (SZ_4K).
>           */
>          BUILD_BUG_ON(PAGE_SIZE !=3D FFA_PAGE_SIZE);
> -        ffa_set_regs_success(regs, 0, 0);
> +
> +        /*
> +         * From FFA v1.2, we can give the maximum number of pages we sup=
port
> +         * for the RX/TX buffers.
> +         */
> +        if ( ACCESS_ONCE(ctx->guest_vers) < FFA_VERSION_1_2 )
> +            ffa_set_regs_success(regs, 0, 0);
> +        else
> +            ffa_set_regs_success(regs, FFA_MAX_RXTX_PAGE_COUNT << 16, 0)=
;
> +
>          break;
>      case FFA_FEATURE_NOTIF_PEND_INTR:
>          ffa_set_regs_success(regs, GUEST_FFA_NOTIF_PEND_INTR_ID, 0);
> @@ -329,6 +337,13 @@ static bool ffa_handle_call(struct cpu_user_regs *re=
gs)
>      if ( !ctx )
>          return false;
>
> +    if ( !is_64bit_domain(d) && smccc_is_conv_64(fid) )
> +    {
> +        /* 32bit guests should only use 32bit convention calls */
> +        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> +        return true;
> +    }
> +
>      /* A version must be negotiated first */
>      if ( !ACCESS_ONCE(ctx->guest_vers) )
>      {
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index 030e6724743c..1b5aebd6ef6b 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -53,7 +53,7 @@
>   * that particular guest or SP.
>   */
>  #define FFA_MY_VERSION_MAJOR    1U
> -#define FFA_MY_VERSION_MINOR    1U
> +#define FFA_MY_VERSION_MINOR    2U
>  #define FFA_MY_VERSION          MAKE_FFA_VERSION(FFA_MY_VERSION_MAJOR, \
>                                                   FFA_MY_VERSION_MINOR)
>
> @@ -518,14 +518,25 @@ static inline void ffa_set_regs(struct cpu_user_reg=
s *regs, register_t v0,
>                                  register_t v4, register_t v5, register_t=
 v6,
>                                  register_t v7)
>  {
> -        set_user_reg(regs, 0, v0);
> -        set_user_reg(regs, 1, v1);
> -        set_user_reg(regs, 2, v2);
> -        set_user_reg(regs, 3, v3);
> -        set_user_reg(regs, 4, v4);
> -        set_user_reg(regs, 5, v5);
> -        set_user_reg(regs, 6, v6);
> -        set_user_reg(regs, 7, v7);
> +    struct domain *d =3D current->domain;
> +    struct ffa_ctx *ctx =3D d->arch.tee;
> +    int i;
> +
> +    set_user_reg(regs, 0, v0);
> +    set_user_reg(regs, 1, v1);
> +    set_user_reg(regs, 2, v2);
> +    set_user_reg(regs, 3, v3);
> +    set_user_reg(regs, 4, v4);
> +    set_user_reg(regs, 5, v5);
> +    set_user_reg(regs, 6, v6);
> +    set_user_reg(regs, 7, v7);
> +
> +    if ( ctx && ACCESS_ONCE(ctx->guest_vers) >=3D FFA_VERSION_1_2 &&
> +         is_64bit_domain(d) )
> +    {
> +        for (i =3D 8; i <=3D 17; i++)
> +            set_user_reg(regs, i, 0);
> +    }
>  }
>
>  static inline void ffa_set_regs_error(struct cpu_user_regs *regs,
> --
> 2.51.2
>


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 15:41:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 15:41:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181877.1504855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSzpy-0003a7-50; Tue, 09 Dec 2025 15:41:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181877.1504855; Tue, 09 Dec 2025 15:41:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSzpy-0003a0-1P; Tue, 09 Dec 2025 15:41:14 +0000
Received: by outflank-mailman (input) for mailman id 1181877;
 Tue, 09 Dec 2025 15:41:12 +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
 <SRS0=rCN0=6P=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vSzpw-0003Zt-CW
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 15:41:12 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7bb377a0-d515-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 16:41:09 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b7355f6ef12so822565566b.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 07:41:09 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b79f4975c56sm1397977966b.33.2025.12.09.07.41.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 07:41:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7bb377a0-d515-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765294869; x=1765899669; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=DXiaujvUvvR/z0zrzSKxFRSx3Lik8dAv8cTMffKtAic=;
        b=EFf2DKELNS+ACR0RRcw5Gj4N3y4wmEGaq82i7Ab3T9Zahn8B7l+Ur6Uchye0oErylk
         p7Xv/6kc8V6gojNAf5OiYOGnoEDaJENUPdMxbedT0YffNomEVSbCzt3RmOwPttme+4Cs
         fFEtbU25WiY5QPqc8ui3yoFhvnCwm098Vr3fmcBQcHyMVSNEeAigfTVgCCnaPEbQDKwb
         lcEnkyTs2snDsBss2BbV3FiEI+Z+EMyQknqn3uGCMfpE7t3K1tF9NHxppLmyjC338/1w
         RebgjSJO4eaDz5GEanZUMbIH45jAZU4LKqdkxTaE72Fj5ylKEgviZJfm0/uF0J/h2dQu
         jFBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765294869; x=1765899669;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=DXiaujvUvvR/z0zrzSKxFRSx3Lik8dAv8cTMffKtAic=;
        b=GvpGpCblEiGMNJ9qz7kJNyY3UMaJxNCdokqZdgNsJOA2w4aJkWw6r/odKSBS5Trs44
         p/FCkcKhuV84I+qFQLy/382bgRv6BE04xL52VT13Ow7ZnK1wOU6V7XjhbovPLPcvH/e5
         /HHo33Ot7fz3hbnAxP3Op2lJ2iBBmfAaobo1BHx+V9Vo0RclZAuiysA4ryHj2FkyM/dZ
         5/+p5qm0LWWgjx4ipXc/O/npfiDsfHKYpVXmDEtcWVbnE2oqJp8JVmeTu/iDFZ1Jo2tJ
         nHlcMInc9bbtIa/5VbdKa3Q4XhkDp16SuZ6yAm/jagrt1RqIIayovVOMWSYDnh1Q5KOW
         m2+g==
X-Forwarded-Encrypted: i=1; AJvYcCWvvuSFPhzX86MnxrBFsY6J5mTnZo0FYXVic7uKxaeCmtvJsCKrmS9NwGR8yLaKGn2xH1O8V14Wb0Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx57RBZ1SZA0qBt5stuIH486bHbIrNH3dH+9QH7GCHFemkXcloG
	H8WpbCK74XrzSbvsvj7CrRFVP+SmcH9bLBy1y3dZH3gsSBzj0Cgvo7xa
X-Gm-Gg: ASbGnctX1QR8+HnqTQVUQXz0eTAc0zlPT8Uwj1xHwroAJF+lW9+mcJdrHwBkh4BU8YP
	JLkVznl1qVAOZwAq71vLRgBwWVWLm7WfRsb6vcV8sJxdbTploKmF5h1Z+TZYY9Tgbv8XTRkqKYR
	uxvqvPDmQIV1GYKYAJ8ZuZs5fLguNgE4WQRmENJtgmb/o1xFQYI1WBGN0Qd4JBoFMUWLg7rmsbC
	zFhZis35LBbAXsMFU+8h0BzrF7LGv+OMN8QvtyRVpYdm/ECoJneyxt4qbyjd42pfHfqSbd8mBpj
	4XFzdv70r/oBIYToDnHGuXFfDbnbwPprTDgXpEIxbnsHIMWf2oF6M6CKeYLwkvnwAEbVDPhQKLJ
	z00YPuXqbjS2WmTVOQ+Jb/JzzTgjUG1RX1xsnUa4cDZC3NX5ipBZ7RyHwVzGZt8cao/YmIsfVUp
	NT4uRecfrqRDlq9EHv466WXkShe80P/1aur+bMGsB1455HkbTt8yWyg1vYtn14
X-Google-Smtp-Source: AGHT+IHA2NuZn6kcL7SYzy0+2O+6yiAikMLG7Zb8Cmi7cpJKhSQh9n0KX5OcCRG4qTrhBgMEPNpBRQ==
X-Received: by 2002:a17:906:c10c:b0:b73:3e15:a370 with SMTP id a640c23a62f3a-b7a248164b9mr1377298866b.57.1765294868549;
        Tue, 09 Dec 2025 07:41:08 -0800 (PST)
Message-ID: <86a87823-8b15-4897-9a97-ade444e2830d@gmail.com>
Date: Tue, 9 Dec 2025 16:41:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 18/19] xen/riscv: add support of page lookup by GFN
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <48a58cde3de6a459885465c6d29d00d046ae4a37.1763986955.git.oleksii.kurochko@gmail.com>
 <69dce344-4dee-4778-99c2-0621c4e17cfc@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <69dce344-4dee-4778-99c2-0621c4e17cfc@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/9/25 12:38 PM, Jan Beulich wrote:
> On 24.11.2025 13:33, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -1061,3 +1061,186 @@ int map_regions_p2mt(struct domain *d,
>>   
>>       return rc;
>>   }
>> +
>> +/*
>> + * p2m_get_entry() should always return the correct order value, even if an
>> + * entry is not present (i.e. the GFN is outside the range):
>> + *   [p2m->lowest_mapped_gfn, p2m->max_mapped_gfn]    (1)
>> + *
>> + * This ensures that callers of p2m_get_entry() can determine what range of
>> + * address space would be altered by a corresponding p2m_set_entry().
>> + * Also, it would help to avoid costly page walks for GFNs outside range (1).
>> + *
>> + * Therefore, this function returns true for GFNs outside range (1), and in
>> + * that case the corresponding level is returned via the level_out argument.
>> + * Otherwise, it returns false and p2m_get_entry() performs a page walk to
>> + * find the proper entry.
>> + */
>> +static bool check_outside_boundary(const struct p2m_domain *p2m, gfn_t gfn,
>> +                                   gfn_t boundary, bool is_lower,
>> +                                   unsigned int *level_out)
>> +{
>> +    unsigned int level = P2M_ROOT_LEVEL(p2m);
>> +    bool ret = false;
>> +
>> +    ASSERT(p2m);
>> +
>> +    if ( is_lower ? gfn_x(gfn) < gfn_x(boundary)
>> +                  : gfn_x(gfn) > gfn_x(boundary) )
>> +    {
>> +        unsigned long mask = 0;
>> +
>> +        for ( ; level; level-- )
>> +        {
>> +            unsigned long masked_gfn;
>> +
>> +            mask |= PFN_DOWN(P2M_LEVEL_MASK(p2m, level));
>> +            masked_gfn = gfn_x(gfn) & mask;
>> +            masked_gfn |= (is_lower * (BIT(P2M_LEVEL_ORDER(level), UL) - 1));
> I fear I still don't fully understand this. I would have expected the same mask to
> be used for setting / clearing bits (once inverted, obviously). Why would you clear
> only some of the lower bits in one case but set all of them in the other?

Only when is_lower == true do we need to set the lower bits; in all other cases
this is not required, if i am not confusing something.

The idea is that if boundary = 0x1000 and gfn = 0x800, and is_lower == true,
then to return the correct level value we must set all lower bits of gfn to 1.
Otherwise, we would get level = root instead of level = 0 in this case.

I decided not to reuse mask to set the lower bits when is_lower == true, because
doing something like:

     mask |= PFN_DOWN(P2M_LEVEL_MASK(p2m, level));
     masked_gfn = gfn_x(gfn) & mask;
     masked_gfn |= (is_lower * ~mask);

would allow ~mask to introduce 1s into the upper bits, which is not what we want.

> Overall, this alternative of clearing / setting of bits may also better (more
> clearly / readably) be expressed using if/else or a conditional operator.

Sure, I will rework it then, unless I have missed something in what I wrote above.

>> +            if ( is_lower ? masked_gfn < gfn_x(boundary)
>> +                          : masked_gfn > gfn_x(boundary) )
>> +                break;
>> +        }
>> +
>> +        ret = true;
>> +    }
>> +
>> +    if ( level_out )
>> +        *level_out = level;
>> +
>> +    return ret;
>> +}
>> +
>> +/*
>> + * Get the details of a given gfn.
>> + *
>> + * If the entry is present, the associated MFN will be returned and the
>> + * p2m type of the mapping.
> There may be a word order issue in this sentence, or there are words missing
> at the end. It more likely being the former, isn't the order being returned
> also worth mentioning, ...
>
>> + * The page_order will correspond to the order of the mapping in the page
>> + * table (i.e it could be a superpage).
> ... since this really is a separate piece of commentary?

I will reword it in the following way then:
  * If the entry is present, the associated MFN, the p2m type of the mapping,
  * and the page order of the mapping in the page table (i.e., it could be a
  * superpage) will be returned.

>
>> + * If the entry is not present, INVALID_MFN will be returned and the
>> + * page_order will be set according to the order of the invalid range.
> ... and type will be "invalid".

And this one I'll reword in the following way:

  * If the entry is not present, INVALID_MFN will be returned,
  * the page_order will be set according to the order of the invalid
  * range, and type will be p2m_invalid.


>
>> + */
>> +static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
>> +                           p2m_type_t *t,
>> +                           unsigned int *page_order)
>> +{
>> +    unsigned int level = 0;
>> +    pte_t entry, *table;
>> +    int rc;
>> +    mfn_t mfn = INVALID_MFN;
>> +    P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
>> +
>> +    ASSERT(p2m_is_locked(p2m));
>> +
>> +    if ( t )
>> +        *t = p2m_invalid;
> The sole caller passes non-NULL right now. Are you having patches pending
> where NULL would be passed? Else, this being a static helper, I'd suggest
> to drop the check here (and the other one further down).

I don’t have any such call in pending patches. I saw that Arm has a case
where it is called with t = NULL (https://elixir.bootlin.com/xen/v4.21.0/source/xen/arch/arm/mem_access.c#L64),
so I decided to keep the check.

What you wrote makes sense to me, and given that the mem_access code is
Arm-specific, RISC-V will probably never have the same situation.
However, it still seems reasonable to keep this check for flexibility,
so that we don’t risk a NULL-pointer dereference in the future or end up
needing to reintroduce the check (or providing an unused variable for a type)
later. Does that make sense?

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 15:43:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 15:43:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181887.1504864 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSzsM-00048t-GF; Tue, 09 Dec 2025 15:43:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181887.1504864; Tue, 09 Dec 2025 15:43:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSzsM-00048m-D0; Tue, 09 Dec 2025 15:43:42 +0000
Received: by outflank-mailman (input) for mailman id 1181887;
 Tue, 09 Dec 2025 15:43:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/rha=6P=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vSzsK-00048e-2C
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 15:43:40 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d3c49878-d515-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 16:43:37 +0100 (CET)
Received: from DU2PR04CA0020.eurprd04.prod.outlook.com (2603:10a6:10:3b::25)
 by AS8PR08MB7989.eurprd08.prod.outlook.com (2603:10a6:20b:541::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.6; Tue, 9 Dec
 2025 15:43:16 +0000
Received: from DB1PEPF0003922F.eurprd03.prod.outlook.com
 (2603:10a6:10:3b:cafe::65) by DU2PR04CA0020.outlook.office365.com
 (2603:10a6:10:3b::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Tue,
 9 Dec 2025 15:43:16 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF0003922F.mail.protection.outlook.com (10.167.8.102) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Tue, 9 Dec 2025 15:43:15 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DB9PR08MB6412.eurprd08.prod.outlook.com (2603:10a6:10:23d::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.6; Tue, 9 Dec
 2025 15:42:13 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::b27c:9593:1074:949d%4]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 15:42:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d3c49878-d515-11f0-9cce-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=goooX56Py6dV9n3vJFHHyrwWc7ZHynwdKJRi+BeT2EPodi1V1dj/oQ2ohO0t3QC+pJ8GJdHtDwuw1SqqBVw8SMCmaDVUSpKC7SMlo+QbTnn+thqDSvhNo85HzZL80L00A7UCj2vPBq/znw+22qRysMdL5Y2sTVheRuHPYoXo666e9MGv5/ra3EuyfM3gnO+xlKB0JaDVXNSqTURbYgJUK7HmsUju7qwtIzwqp1YmdL9H+Fa8oMmV0GqBbwiDdhevBSYWy1cla8sBU8rQQTqbojEfbpLR05xNoTcUvzOCovTcB13edCpnFWy/W6BEJHCSkzfHUOrgV0Z1w9Sz9++4rg==
ARC-Message-Signature: i=2; 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=lKXAjNhFuoZUeMnIr+6rBToqqxUVHaexrFOlh1yLu80=;
 b=gCrUgeALnn6Y4w6tTneRPNWJUaWeC1KD2TOoiHgkZ/hC8Y9RS8r/yvgSumSqrGoOL2LMIqxVdbxyAssIhL9DgFbDd9qXVojf3KmiohOJpbhSwD+34XXLkodXQ3vraMb80Q9vzIXoQ4DBTWF5I4trKoio6qacnSax/pOBHt7sVdq+0GRfhV2+lsMt5+evJ/tsF2XhLwhNzhKdnpwZ6pkBxWJbm6RsdA7AlB5nbbkzBa7mJgIjmpKFybIZ+ddEnl+OJk+JvWEHifAqKyfk6nOrXRLBBGcnGXh05uge20v7Oxl6F2ADqM6W1M0KZlghtMOvaFXbCx2xwdLU5R0Z6uQbEA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lKXAjNhFuoZUeMnIr+6rBToqqxUVHaexrFOlh1yLu80=;
 b=UijL65zPOvtJACelQ8u4Y9PCq6RUuYY6ULihXYKJOja7WL5lySucsus22y2de3kEIZOlyiMd2fPDygksuao3mShOIkGUvozmY38FB/VQ+k6YKLRKYaOMpV8UAu2jKs5liXhm3Fogfa6i/FUsdow3hylapCEGRWmwlGGRvgaQbro=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=w4xHV/AfBRxtOlVX2bHeMO8ys/n8YkpmUXoDjUhtW/tK8g9c/TwjsCqCeD5OEuKlEnDmP50pgnFP3sWPlqyW7CCqqG1MrclvA+34JbFClEfbmDyLBmYPbSKuVvOM+JxjAEekQFOj8REaCf3W3RjMez/JRMoWoit9UggrqyxyxwpsTL6H2oZZ/MKEihVgKtmxVH6lgziiyMpgyTBq6lICiXOWxchDCDKiyezHQ87niZw0O58zE8d6i8MHh1UlFbMzb2/EFZyyu1h0yhb6wUxfXGA88H8e8rcNjLs7a6yiCbDWGZNeoKYzXsbDD75DKvuxnhhDaPpJHGr0iGDXwXmmhQ==
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=lKXAjNhFuoZUeMnIr+6rBToqqxUVHaexrFOlh1yLu80=;
 b=VrDtsHQU+Wm7q3Qmnep8YnB2urZvJY6u+liWXU4/6jOTtzJdPbK0O5Jyw3xja3YNYKN2gi6uTWdRSqkiNnGpW8DyCyrNergoYZxQKt+yAVlWZz/AZ/SLRhI3SYXMeShZ0GwwJNn2+vj+vnLxWap5WoiArMsedmqYM7KeYqY4su5BqZZhURUNCtUebSZxH5KCZszUKM43OoUaa//2+sXvNkVfgsdB5eEY2d6YWt/b0/LloTiy2IIHky8ml72Mljeo9LxewRoAULZnfn6+WED+UFEUerWuQ6rbkA5YvuS3a5utyAEwhEqp+OY2X07olDQEK3G+j9eM8eI7wzHr5p+USw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lKXAjNhFuoZUeMnIr+6rBToqqxUVHaexrFOlh1yLu80=;
 b=UijL65zPOvtJACelQ8u4Y9PCq6RUuYY6ULihXYKJOja7WL5lySucsus22y2de3kEIZOlyiMd2fPDygksuao3mShOIkGUvozmY38FB/VQ+k6YKLRKYaOMpV8UAu2jKs5liXhm3Fogfa6i/FUsdow3hylapCEGRWmwlGGRvgaQbro=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH v1 05/12] xen/arm: ffa: rework SPMC RX/TX buffer
 management
Thread-Topic: [PATCH v1 05/12] xen/arm: ffa: rework SPMC RX/TX buffer
 management
Thread-Index: AQHcZdM7D2QjoBC6XEOyaPgpLgXyWrUZTzoAgAAp2QA=
Date: Tue, 9 Dec 2025 15:42:13 +0000
Message-ID: <CBD3F4E3-8CEE-4A2F-A541-265650D35DEF@arm.com>
References: <cover.1764930353.git.bertrand.marquis@arm.com>
 <491f62ede43a7a135327fa68afe9a648fde1dcba.1764930353.git.bertrand.marquis@arm.com>
 <CAHUa44Hhp_gnjbBxMfOkUJ_HGzS+9VFhYm--pK-OtU=RKqqRsQ@mail.gmail.com>
In-Reply-To:
 <CAHUa44Hhp_gnjbBxMfOkUJ_HGzS+9VFhYm--pK-OtU=RKqqRsQ@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.200.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DB9PR08MB6412:EE_|DB1PEPF0003922F:EE_|AS8PR08MB7989:EE_
X-MS-Office365-Filtering-Correlation-Id: bb0a6b08-3ba8-4489-2275-08de3739ab53
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?dDFBOFRMeWZEcy9VcXZoQzdkTzJzRjY5ZEZ6V1N3T3JSU2RBTThHT2NmR2N2?=
 =?utf-8?B?cnFZSlRtNndyc3JnVDl0THRUSDVOTWVvMXhzczlHNWsxUzQ4NHZjWEdXR0NR?=
 =?utf-8?B?a29OejZYcTBVUDV5cW5OSGowLzhHOTZCN0N6NFpPK2pFS0RBd0RxelNERDBM?=
 =?utf-8?B?QzRCK2ZzWk1PVExmcDNVcXZUNTREcjh2TWI3bzZBTFgwc2QwK2p5ZmVtOWxH?=
 =?utf-8?B?MWExUXV4V0JuZHlCdHNCYjh5ZDM5YXVXSzA0djJDb2pScFoyZUVlVUw1M0tS?=
 =?utf-8?B?TGJPc0lkUFZiQmROOHF1SFR0YnhHbGNlYWoyRExaeEp5MklSMmcvT1FKVEds?=
 =?utf-8?B?OFFWWHV2dGs3Q0U5dWlVOHIxSlFlNXhGNVRCdzA3RTQxbzd2YW5rRjRSSmpp?=
 =?utf-8?B?ZldmNEZhVnRPUnp0VGxYK1FhZUxEc2p5aVROS21PYjR6M2pPY2JnQjRyclpw?=
 =?utf-8?B?bUVaVlVWYXl2eWJ6enVZaE1rdkozNUdBS1h3NFhqbWlBSk1Mc2N6TWNMRUtG?=
 =?utf-8?B?WkM3a2J3YzBZSDVMdWdoSlFqTkFadEJ0M2RUZGhPOU4rYWxXZGEvSEFOMzJF?=
 =?utf-8?B?UncrKzdUZFpNTTNNRHdWMG9BSWpnamszbTM2UmF1RUVPa1ZxbHl6aXNRL1pQ?=
 =?utf-8?B?aTlUSG9Say9JU2VvQ2IwVDdpL2xFeXhHYTVMamszUnJSeTFOQkZ3eThNYytS?=
 =?utf-8?B?ZlFTcHVML1RqY2gxYkZYV0F2ZWwzU1FucnhwSnlhRUxxZHArU0IxWnBlaDIw?=
 =?utf-8?B?YXV2bEgrbXdFVVRBUmMzK0k2KzdSbndRR1RTZU80ZnRkbGZpcU5QK0VFU2R4?=
 =?utf-8?B?MXVMaVBIM0t5RlZ1NFR1emRCbnpNZ3RDTmdWT25DVDdXMzFFMTRYMkV5dG9E?=
 =?utf-8?B?VUtZcjBqVW5TeWdRNWVtemRZaW1WN1lnSVlVanNhTk56cmNMakpFOTFMcmdk?=
 =?utf-8?B?bkRFRTF0ZFovZ2w3QUt4dHJTZ2pUY2Y0bG5vbWZiTGtwUFR2ZUtENnowd0tG?=
 =?utf-8?B?YWg4SFUycnhTYUxZWGFzR2FtNTVjRjAwWEsxUkppS056Nk5YYUduN2RPbi9h?=
 =?utf-8?B?V1NkV1U1VXRDelFvZWprWnArZmsydy9vcXUxdHZObDZIbnRyaWdmUE5ESEdp?=
 =?utf-8?B?cW1ZWjNHQW1iNDR0MGwvdEtkZmw0bGtDYmQ1MXJOTy8zUzFockcxZTlFSSt0?=
 =?utf-8?B?ZlNmZEdsUjhKbzEwR05LOGZObmcydWRROTBJRExlTVJZaWF4bkZTMkRjVDND?=
 =?utf-8?B?bnpGVkNyUGdwY0FyVEk2a3drZ1k1UDJvU2htdGhUa3BsUTRJZll1RVphdnRq?=
 =?utf-8?B?N1FVVlBmaUM3bjhSb1BBVTNmeENVOEwvUFc2RncxRlV3dGg1QjVNOS9kOVpk?=
 =?utf-8?B?QThob24yNklEaFhoWEo2RlIyek9XaEhKcUluY0ZPbXk4enVPcGtaT0pBUFFZ?=
 =?utf-8?B?a3Z1SUhuU1lmRXMvTzJscVNEcmFGWmRXMkZXWk9yNG9yRUl6RGFQRlRxZEpS?=
 =?utf-8?B?anoyemZXSnd5Rnp5eTRaRVVQMWlXbEloWm53cmtudDh4cVRsaTBaZjcydTZk?=
 =?utf-8?B?T1FqWThHT1lrRnphQlRBelJySzhzZXJDUGU0ejJEWjhoNmgvZVU2S21HVXhY?=
 =?utf-8?B?VlVMbnpSdDFLN1FYNHh5VDU4Rk92aXNWQWpET2dsWUxTWVlGZlZaUXN4cTRx?=
 =?utf-8?B?U2FnNDlEVVVSTnBoUlFWUzVja2cxUDVBZklKem1wdnMwc0FqdGMvM0crYzZN?=
 =?utf-8?B?WnVJNmFzcFI0N3ZiNjBxamlmV0hnRzdQbGpyRktEd2Y5K1grNCtkcWpCZ09K?=
 =?utf-8?B?OXJUU3M5RmtNOGNPc1ZLOSs3SVA1Y01uWHVSbXdKMFZScVhUaDcvMyswWDhq?=
 =?utf-8?B?TUgraElpVjYrRzM1TFJZb25ueUQrc2I0RHBzNHhKT0Vuc1Vod3dPRGtmYVN6?=
 =?utf-8?B?UVUxdGJYd0hueUU3UUZMWk8vM0JuK0I2THBQZG9RV3JSYkh1cC9yb1RLdFpE?=
 =?utf-8?B?S0UzbTI2WmYwUERvVFBTRWhWVUpzdXFTeWptSmpZR2hweEtiRWE4WGtjbExE?=
 =?utf-8?Q?0tk1Qi?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <3DDF172F111A4149959075F7BF40ED5B@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6412
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF0003922F.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	9fd97414-a778-409a-1e18-08de373985d5
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|35042699022|14060799003|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cVl6dVp6TGhXWUtINE5MdS9IMExsZlVQUW5jNkd3OWsvM1BQYjZWTUl0UXhy?=
 =?utf-8?B?Q2RiR2hhd3ZCVFgrcVpLSWt0bUFPZ3RZMkFVeDkwRnA0T3ZWbm1rNFBhVTZX?=
 =?utf-8?B?VmlJYzlSdkhQVkxhdEZzUDdTK3ROdXlTMlU0WUtGdGgydGMrRWdTQitxcm1a?=
 =?utf-8?B?ckhmZ1dVbkNmdE8rbHJGbkhZSE8rTHhadjVHUlpySU56Qm5mNjdPOGxyNm9w?=
 =?utf-8?B?TXBxUHR0cjVJdTE2TUNsZlFaRS96UmdkUHg5YzZZZzhzQnFYWFpIcFlzaHBQ?=
 =?utf-8?B?WVo4VWliNi9idjhyaWdpTUdLRVFnMXo3bUEyblJTeElPRHBHVThSUDUxTjAz?=
 =?utf-8?B?SlI1OHRZdGVVU0FYUUJMWmJDTG05VldZZ3p0SERTQ1dzeWxoK1lremdrclRw?=
 =?utf-8?B?WWhuaUJRc1VlSWdmdHFLaUJCMWs5WGRxbjhEcmE2MTZFb0FBcFZwOGpVdDdr?=
 =?utf-8?B?WnAwRDFmYWdpTHV2K2t2NWtOQW1OSE9kVnJYVUpIWkIyOTBtU1F2SFgrYzlo?=
 =?utf-8?B?d1pqbTdGUGxxdlA5SExpZUtrZWwyTUVlOG14Q2tCc0ZyRE9DWFFVY1pKdnpS?=
 =?utf-8?B?SFJZWlIvdmV0U05oOXJlRDVzWlYyNjlxeEpMZlByd25YdUdxbmhIbUxNRE4x?=
 =?utf-8?B?QWRxV0gzUVhhTzlCclJxcGtGWWYxMVAyQ205dTZpYjhRcEw5OGRMQjVBMWUz?=
 =?utf-8?B?cjYzUkN0OHlXcXloVzQ5b3lva0dYM085eFJmemdaK3pDSDBIN3UxZ29uRmJi?=
 =?utf-8?B?YnFpS3hGTGRYSnk2RlgyZ3RBb1UxcmxYK3NXb3VBdG9mbldUMkdBQ1V4dGJE?=
 =?utf-8?B?YUUrd0NORXdabk1uZUNzN05aNFBoZEtGR3MrUUdodlJlekpkVUZjZTgvQUky?=
 =?utf-8?B?ZjFjYWZWSGtYRWlTUnZNY1VjZ2k2SENEZVNRMGdyeGM1OXNSRDAyQWNnVFdH?=
 =?utf-8?B?U082d3RQaUFnOWVUTW1zM2x4NHgyV0hHT21IN3Q5NHRXV1g0dGlnR1k5Ylc3?=
 =?utf-8?B?dnVrM09ibEh3RW1Bdlk4anFwZkNaSEZXY2dUdkpDSTNFcnJ6Y1g3NnFld0Rv?=
 =?utf-8?B?T2ZTY041cStSS0RXNXFYazVaRkxoMXFYK1d4YU05V0c5RjNEbHpYdWRVUFRR?=
 =?utf-8?B?YkhWa2NJQVVoQlRmU1Yzdk1XUGFTVXg3MTl4Zk03VFRieUIzbEcrbUM4aWR4?=
 =?utf-8?B?WlZmb0lWbXZlNnhYT2p3OUxDdzd3Z1FVaGZqSlB6RVlobjBWUkMydGlhNTFh?=
 =?utf-8?B?eUNWelFVQ2xPSDU3bFF4cDJHUUFEQ3gxeFRnQjFwb2xjYmZWMUZDVlJVQnB2?=
 =?utf-8?B?Uk5oS3BEc3VPczMxREtCaHJxNFkwMytJaDRTLzE4RVNrbTQwWEFlNW9KNklK?=
 =?utf-8?B?WTBxMEpGcVNxeS9DQmFoN1c4TjhjZWRaYmdldk96Wkc3dHF6L2ZtS0o1ZkVK?=
 =?utf-8?B?RkFldmxSeTUvSmhZdmZ3Zk8xeUIraXNLUjlXd2JHcjg5NElpRVVQNjZ6WVAw?=
 =?utf-8?B?MEdlSU5vZkRIRkNuMkZybTlZWWxoSXdWa2JvN2VJVnZlQ1JMaFlJejZyQ0dD?=
 =?utf-8?B?a0hOTE8va1lJSlJwZzg5NDh0Qzd3Y1FjUTFFWXVlcGpnQTRtazVHRUNGbEhT?=
 =?utf-8?B?eTl5Ykc5ZkQrNE9LTXhNOGtHOUxERjFDNnJncUVnWU9ldk1Mb29YRTR5Z21l?=
 =?utf-8?B?RzFWSlRuTWNoemkxaGVBckZSZU1nMmRkT0RReXFPQmlNRitsMFBjek4zaEtk?=
 =?utf-8?B?WnZhSm5SOE9LMHZkcVk5RXRNRnQ4SlFMblZlSW9JSWVxMlEvb0RObzdKdzY1?=
 =?utf-8?B?S0dFQVRtdzBDMUZjQTM4QkhnblRkWVZEZUpqak9oRUliSFRHaGIyaUsyUGI3?=
 =?utf-8?B?TG5LK290YWxpM25ENEw5aFB5aWtvVHdPWUtYWlpEZXd1RjE5TVdlalJXaVJw?=
 =?utf-8?B?dXVqVmFGVXJhL3A2OTNCUGxHWXU5SHdvUXNvQ0pSdHJnblh0RDJ2WUJhaURq?=
 =?utf-8?B?aUs2R1Nkbk9oUk5xdFk1NW5HZlNnUzZoWHY5dlByZDZaWHNnOEljektBZFdN?=
 =?utf-8?B?UkNXNU9XaTRwVTBBV3h6WDJWamxpNW1LcEF6eDZud3FWME5OR2JCTTBCcG4y?=
 =?utf-8?Q?Frxg=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014)(35042699022)(14060799003)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 15:43:15.9092
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bb0a6b08-3ba8-4489-2275-08de3739ab53
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF0003922F.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7989

SGkgSmVucywNCg0KPiBPbiA5IERlYyAyMDI1LCBhdCAxMzoxMiwgSmVucyBXaWtsYW5kZXIgPGpl
bnMud2lrbGFuZGVyQGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gSGkgQmVydHJhbmQsDQo+IA0K
PiBPbiBGcmksIERlYyA1LCAyMDI1IGF0IDExOjM34oCvQU0gQmVydHJhbmQgTWFycXVpcw0KPiA8
YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPiB3cm90ZToNCj4+IA0KPj4gUmV3b3JrIGhvdyBYZW4g
YWNjZXNzZXMgdGhlIFJYL1RYIGJ1ZmZlcnMgc2hhcmVkIHdpdGggdGhlIFNQTUMgc28gdGhhdA0K
Pj4gb3duZXJzaGlwIGFuZCBsb2NraW5nIGFyZSBoYW5kbGVkIGNlbnRyYWxseS4NCj4+IA0KPj4g
TW92ZSB0aGUgU1BNQyBSWC9UWCBidWZmZXIgYmFzZXMgaW50byBmZmFfcnh0eC5jIGFzIGZmYV9z
cG1jX3J4L2ZmYV9zcG1jX3R4LA0KPj4gcHJvdGVjdCB0aGVtIHdpdGggZGVkaWNhdGVkIGZmYV9z
cG1jX3tyeCx0eH1fbG9jayBzcGlubG9ja3MgYW5kIGV4cG9zZQ0KPj4gZmZhX3J4dHhfc3BtY197
cngsdHh9X3thY3F1aXJlLHJlbGVhc2V9KCkgaGVscGVycyBpbnN0ZWFkIG9mIHRoZSBnbG9iYWwN
Cj4+IGZmYV9yeC9mZmFfdHggcG9pbnRlcnMgYW5kIGZmYV97cngsdHh9X2J1ZmZlcl9sb2NrLg0K
Pj4gDQo+PiBUaGUgUlggaGVscGVycyBub3cgYWx3YXlzIGlzc3VlIEZGQV9SWF9SRUxFQVNFIHdo
ZW4gd2UgYXJlIGRvbmUNCj4+IGNvbnN1bWluZyBkYXRhIGZyb20gdGhlIFNQTUMsIHNvIHBhcnRp
dGlvbi1pbmZvIGVudW1lcmF0aW9uIGFuZCBzaGFyZWQNCj4+IG1lbW9yeSBwYXRocyByZWxlYXNl
IHRoZSBSWCBidWZmZXIgb24gYWxsIGV4aXQgcGF0aHMuIFRoZSBSWC9UWCBtYXBwaW5nDQo+PiBj
b2RlIGlzIHVwZGF0ZWQgdG8gdXNlIHRoZSBkZXNjcmlwdG9yIG9mZnNldHMgKHJ4X3JlZ2lvbl9v
ZmZzIGFuZA0KPj4gdHhfcmVnaW9uX29mZnMpIHJhdGhlciB0aGFuIGhhcmQtY29kZWQgc3RydWN0
dXJlIGxheW91dCwgYW5kIHRvIHVzZSB0aGUNCj4+IFRYIGFjcXVpcmUvcmVsZWFzZSBoZWxwZXJz
IGluc3RlYWQgb2YgdG91Y2hpbmcgdGhlIFRYIGJ1ZmZlciBkaXJlY3RseS4NCj4+IA0KPj4gU2ln
bmVkLW9mZi1ieTogQmVydHJhbmQgTWFycXVpcyA8YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPg0K
Pj4gLS0tDQo+PiBDaGFuZ2VzIGluIHYxOg0KPj4gLSBtb2RpZnkgc2hhcmVfc2htIGZ1bmN0aW9u
IHRvIHVzZSBhIGdvdG8gYW5kIGhhdmUgb25lIHBsYWNlIHRvIHJlbGVhc2UNCj4+ICB0aGUgc3Bt
YyB0eCBidWZmZXIgaW5zdGVhZCBvZiBkb2luZyBpdCBkaXJlY3RseSBpbiB0aGUgaWYgZXJyb3IN
Cj4+ICBjb25kaXRpb24uDQo+PiAtIGZpeCByeF9hY3F1aXJlIGFuZCB0eF9hY3F1aXJlIHRvIG5v
dCByZWxlYXNlIHRoZSBzcGlubG9jayBhcyB0aGlzIGlzDQo+PiAgZXhwZWN0ZWQgdG8gYmUgZG9u
ZSBvbmx5IGluIHJlbGVhc2UgdG8gZW5zdXJlIG5vIHBhcmFsbGVsIHVzYWdlLg0KPj4gLS0tDQo+
PiB4ZW4vYXJjaC9hcm0vdGVlL2ZmYS5jICAgICAgICAgIHwgIDIyICstLS0tLQ0KPj4geGVuL2Fy
Y2gvYXJtL3RlZS9mZmFfcGFydGluZm8uYyB8ICA0MCArKysrKy0tLS0tDQo+PiB4ZW4vYXJjaC9h
cm0vdGVlL2ZmYV9wcml2YXRlLmggIHwgIDE4ICsrLS0tDQo+PiB4ZW4vYXJjaC9hcm0vdGVlL2Zm
YV9yeHR4LmMgICAgIHwgMTMwICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tDQo+PiB4
ZW4vYXJjaC9hcm0vdGVlL2ZmYV9zaG0uYyAgICAgIHwgIDI5ICsrKystLS0NCj4+IDUgZmlsZXMg
Y2hhbmdlZCwgMTUzIGluc2VydGlvbnMoKyksIDg2IGRlbGV0aW9ucygtKQ0KPj4gDQo+PiBkaWZm
IC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RlZS9mZmEuYyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhLmMN
Cj4+IGluZGV4IDQ5N2FkYTgyNjRlMC4uNDNhZjQ5ZDFjMDExIDEwMDY0NA0KPj4gLS0tIGEveGVu
L2FyY2gvYXJtL3RlZS9mZmEuYw0KPj4gKysrIGIveGVuL2FyY2gvYXJtL3RlZS9mZmEuYw0KPj4g
QEAgLTQ4LDggKzQ4LDggQEANCj4+ICAqICAgICBub3RpZmljYXRpb24gZm9yIHNlY3VyZSBwYXJ0
aXRpb25zDQo+PiAgKiAgIC0gZG9lc24ndCBzdXBwb3J0IG5vdGlmaWNhdGlvbnMgZm9yIFhlbiBp
dHNlbGYNCj4+ICAqDQo+PiAtICogVGhlcmUgYXJlIHNvbWUgbGFyZ2UgbG9ja2VkIHNlY3Rpb25z
IHdpdGggZmZhX3R4X2J1ZmZlcl9sb2NrIGFuZA0KPj4gLSAqIGZmYV9yeF9idWZmZXJfbG9jay4g
RXNwZWNpYWxseSB0aGUgZmZhX3R4X2J1ZmZlcl9sb2NrIHNwaW5sb2NrIHVzZWQNCj4+ICsgKiBU
aGVyZSBhcmUgc29tZSBsYXJnZSBsb2NrZWQgc2VjdGlvbnMgd2l0aCBmZmFfc3BtY190eF9sb2Nr
IGFuZA0KPj4gKyAqIGZmYV9zcG1jX3J4X2xvY2suIEVzcGVjaWFsbHkgdGhlIGZmYV9zcG1jX3R4
X2xvY2sgc3BpbmxvY2sgdXNlZA0KPj4gICogYXJvdW5kIHNoYXJlX3NobSgpIGlzIGEgdmVyeSBs
YXJnZSBsb2NrZWQgc2VjdGlvbiB3aGljaCBjYW4gbGV0IG9uZSBWTQ0KPj4gICogYWZmZWN0IGFu
b3RoZXIgVk0uDQo+PiAgKi8NCj4+IEBAIC0xMDgsMjAgKzEwOCw2IEBAIHN0YXRpYyBjb25zdCBz
dHJ1Y3QgZmZhX2Z3X2FiaSBmZmFfZndfYWJpX25lZWRlZFtdID0gew0KPj4gICAgIEZXX0FCSShG
RkFfUlVOKSwNCj4+IH07DQo+PiANCj4+IC0vKg0KPj4gLSAqIE91ciByeC90eCBidWZmZXJzIHNo
YXJlZCB3aXRoIHRoZSBTUE1DLiBGRkFfUlhUWF9QQUdFX0NPVU5UIGlzIHRoZQ0KPj4gLSAqIG51
bWJlciBvZiBwYWdlcyB1c2VkIGluIGVhY2ggb2YgdGhlc2UgYnVmZmVycy4NCj4+IC0gKg0KPj4g
LSAqIFRoZSBSWCBidWZmZXIgaXMgcHJvdGVjdGVkIGZyb20gY29uY3VycmVudCB1c2FnZSB3aXRo
IGZmYV9yeF9idWZmZXJfbG9jay4NCj4+IC0gKiBOb3RlIHRoYXQgdGhlIFNQTUMgaXMgYWxzbyB0
cmFja2luZyB0aGUgb3duZXJzaGlwIG9mIG91ciBSWCBidWZmZXIgc28NCj4+IC0gKiBmb3IgY2Fs
bHMgd2hpY2ggdXNlcyBvdXIgUlggYnVmZmVyIHRvIGRlbGl2ZXIgYSByZXN1bHQgd2UgbXVzdCBj
YWxsDQo+PiAtICogZmZhX3J4X3JlbGVhc2UoKSB0byBsZXQgdGhlIFNQTUMga25vdyB0aGF0IHdl
J3JlIGRvbmUgd2l0aCB0aGUgYnVmZmVyLg0KPj4gLSAqLw0KPj4gLXZvaWQgKmZmYV9yeCBfX3Jl
YWRfbW9zdGx5Ow0KPj4gLXZvaWQgKmZmYV90eCBfX3JlYWRfbW9zdGx5Ow0KPj4gLURFRklORV9T
UElOTE9DSyhmZmFfcnhfYnVmZmVyX2xvY2spOw0KPj4gLURFRklORV9TUElOTE9DSyhmZmFfdHhf
YnVmZmVyX2xvY2spOw0KPj4gLQ0KPj4gTElTVF9IRUFEKGZmYV9jdHhfaGVhZCk7DQo+PiAvKiBS
VyBMb2NrIHRvIHByb3RlY3QgYWRkaXRpb24vcmVtb3ZhbCBhbmQgcmVhZGluZyBpbiBmZmFfY3R4
X2hlYWQgKi8NCj4+IERFRklORV9SV0xPQ0soZmZhX2N0eF9saXN0X3J3bG9jayk7DQo+PiBAQCAt
NjE3LDcgKzYwMyw3IEBAIHN0YXRpYyBib29sIGZmYV9wcm9iZV9mdyh2b2lkKQ0KPj4gICAgICAg
ICAgICAgICAgICAgIGZmYV9md19hYmlfbmVlZGVkW2ldLm5hbWUpOw0KPj4gICAgIH0NCj4+IA0K
Pj4gLSAgICBpZiAoICFmZmFfcnh0eF9pbml0KCkgKQ0KPj4gKyAgICBpZiAoICFmZmFfcnh0eF9z
cG1jX2luaXQoKSApDQo+PiAgICAgew0KPj4gICAgICAgICBwcmludGsoWEVOTE9HX0VSUiAiZmZh
OiBFcnJvciBkdXJpbmcgUlhUWCBidWZmZXIgaW5pdFxuIik7DQo+PiAgICAgICAgIGdvdG8gZXJy
X25vX2Z3Ow0KPj4gQEAgLTYzMSw3ICs2MTcsNyBAQCBzdGF0aWMgYm9vbCBmZmFfcHJvYmVfZnco
dm9pZCkNCj4+ICAgICByZXR1cm4gdHJ1ZTsNCj4+IA0KPj4gZXJyX3J4dHhfZGVzdHJveToNCj4+
IC0gICAgZmZhX3J4dHhfZGVzdHJveSgpOw0KPj4gKyAgICBmZmFfcnh0eF9zcG1jX2Rlc3Ryb3ko
KTsNCj4+IGVycl9ub19mdzoNCj4+ICAgICBmZmFfZndfdmVyc2lvbiA9IDA7DQo+PiAgICAgYml0
bWFwX3plcm8oZmZhX2Z3X2FiaV9zdXBwb3J0ZWQsIEZGQV9BQklfQklUTUFQX1NJWkUpOw0KPj4g
ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX3BhcnRpbmZvLmMgYi94ZW4vYXJjaC9h
cm0vdGVlL2ZmYV9wYXJ0aW5mby5jDQo+PiBpbmRleCBlYzVhNTNlZDFjYWIuLjE0NWI4Njk5NTdi
MCAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX3BhcnRpbmZvLmMNCj4+ICsr
KyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhX3BhcnRpbmZvLmMNCj4+IEBAIC03NywyOCArNzcsMjQg
QEAgc3RhdGljIGludDMyX3QgZmZhX2dldF9zcF9wYXJ0aW5mbyh1aW50MzJfdCAqdXVpZCwgdWlu
dDMyX3QgKnNwX2NvdW50LA0KPj4gew0KPj4gICAgIGludDMyX3QgcmV0Ow0KPj4gICAgIHVpbnQz
Ml90IHNyY19zaXplLCByZWFsX3NwX2NvdW50Ow0KPj4gLSAgICB2b2lkICpzcmNfYnVmID0gZmZh
X3J4Ow0KPj4gKyAgICB2b2lkICpzcmNfYnVmOw0KPj4gICAgIHVpbnQzMl90IGNvdW50ID0gMDsN
Cj4+IA0KPj4gLSAgICAvKiBEbyB3ZSBoYXZlIGEgUlggYnVmZmVyIHdpdGggdGhlIFNQTUMgKi8N
Cj4+IC0gICAgaWYgKCAhZmZhX3J4ICkNCj4+IC0gICAgICAgIHJldHVybiBGRkFfUkVUX0RFTklF
RDsNCj4+IC0NCj4+ICAgICAvKiBXZSBuZWVkIHRvIHVzZSB0aGUgUlggYnVmZmVyIHRvIHJlY2Vp
dmUgdGhlIGxpc3QgKi8NCj4+IC0gICAgc3Bpbl9sb2NrKCZmZmFfcnhfYnVmZmVyX2xvY2spOw0K
Pj4gKyAgICBzcmNfYnVmID0gZmZhX3J4dHhfc3BtY19yeF9hY3F1aXJlKCk7DQo+PiArICAgIGlm
ICggIXNyY19idWYgKQ0KPj4gKyAgICAgICAgcmV0dXJuIEZGQV9SRVRfREVOSUVEOw0KPj4gDQo+
PiAgICAgcmV0ID0gZmZhX3BhcnRpdGlvbl9pbmZvX2dldCh1dWlkLCAwLCAmcmVhbF9zcF9jb3Vu
dCwgJnNyY19zaXplKTsNCj4+ICAgICBpZiAoIHJldCApDQo+PiAgICAgICAgIGdvdG8gb3V0Ow0K
Pj4gDQo+PiAtICAgIC8qIFdlIG5vdyBvd24gdGhlIFJYIGJ1ZmZlciAqLw0KPj4gLQ0KPj4gICAg
IC8qIFZhbGlkYXRlIHRoZSBzcmNfc2l6ZSB3ZSBnb3QgKi8NCj4+ICAgICBpZiAoIHNyY19zaXpl
IDwgc2l6ZW9mKHN0cnVjdCBmZmFfcGFydGl0aW9uX2luZm9fMV8wKSB8fA0KPj4gICAgICAgICAg
c3JjX3NpemUgPj0gRkZBX1BBR0VfU0laRSApDQo+PiAgICAgew0KPj4gICAgICAgICByZXQgPSBG
RkFfUkVUX05PVF9TVVBQT1JURUQ7DQo+PiAtICAgICAgICBnb3RvIG91dF9yZWxlYXNlOw0KPj4g
KyAgICAgICAgZ290byBvdXQ7DQo+PiAgICAgfQ0KPj4gDQo+PiAgICAgLyoNCj4+IEBAIC0xMTQs
NyArMTEwLDcgQEAgc3RhdGljIGludDMyX3QgZmZhX2dldF9zcF9wYXJ0aW5mbyh1aW50MzJfdCAq
dXVpZCwgdWludDMyX3QgKnNwX2NvdW50LA0KPj4gICAgIGlmICggcmVhbF9zcF9jb3VudCA+IChG
RkFfUlhUWF9QQUdFX0NPVU5UICogRkZBX1BBR0VfU0laRSkgLyBzcmNfc2l6ZSApDQo+PiAgICAg
ew0KPj4gICAgICAgICByZXQgPSBGRkFfUkVUX05PVF9TVVBQT1JURUQ7DQo+PiAtICAgICAgICBn
b3RvIG91dF9yZWxlYXNlOw0KPj4gKyAgICAgICAgZ290byBvdXQ7DQo+PiAgICAgfQ0KPj4gDQo+
PiAgICAgZm9yICggdWludDMyX3Qgc3BfbnVtID0gMDsgc3BfbnVtIDwgcmVhbF9zcF9jb3VudDsg
c3BfbnVtKysgKQ0KPj4gQEAgLTEyNyw3ICsxMjMsNyBAQCBzdGF0aWMgaW50MzJfdCBmZmFfZ2V0
X3NwX3BhcnRpbmZvKHVpbnQzMl90ICp1dWlkLCB1aW50MzJfdCAqc3BfY291bnQsDQo+PiAgICAg
ICAgICAgICBpZiAoIGRzdF9idWYgPiAoZW5kX2J1ZiAtIGRzdF9zaXplKSApDQo+PiAgICAgICAg
ICAgICB7DQo+PiAgICAgICAgICAgICAgICAgcmV0ID0gRkZBX1JFVF9OT19NRU1PUlk7DQo+PiAt
ICAgICAgICAgICAgICAgIGdvdG8gb3V0X3JlbGVhc2U7DQo+PiArICAgICAgICAgICAgICAgIGdv
dG8gb3V0Ow0KPj4gICAgICAgICAgICAgfQ0KPj4gDQo+PiAgICAgICAgICAgICBtZW1jcHkoZHN0
X2J1Ziwgc3JjX2J1ZiwgTUlOKHNyY19zaXplLCBkc3Rfc2l6ZSkpOw0KPj4gQEAgLTE0MywxMCAr
MTM5LDggQEAgc3RhdGljIGludDMyX3QgZmZhX2dldF9zcF9wYXJ0aW5mbyh1aW50MzJfdCAqdXVp
ZCwgdWludDMyX3QgKnNwX2NvdW50LA0KPj4gDQo+PiAgICAgKnNwX2NvdW50ID0gY291bnQ7DQo+
PiANCj4+IC1vdXRfcmVsZWFzZToNCj4+IC0gICAgZmZhX2h5cF9yeF9yZWxlYXNlKCk7DQo+PiBv
dXQ6DQo+PiAtICAgIHNwaW5fdW5sb2NrKCZmZmFfcnhfYnVmZmVyX2xvY2spOw0KPj4gKyAgICBm
ZmFfcnh0eF9zcG1jX3J4X3JlbGVhc2UoKTsNCj4+ICAgICByZXR1cm4gcmV0Ow0KPj4gfQ0KPj4g
DQo+PiBAQCAtMzc4LDcgKzM3Miw3IEBAIHN0YXRpYyB2b2lkIHVuaW5pdF9zdWJzY3JpYmVycyh2
b2lkKQ0KPj4gICAgICAgICBYRlJFRShzdWJzY3Jfdm1fZGVzdHJveWVkKTsNCj4+IH0NCj4+IA0K
Pj4gLXN0YXRpYyBib29sIGluaXRfc3Vic2NyaWJlcnModWludDE2X3QgY291bnQsIHVpbnQzMl90
IGZwaV9zaXplKQ0KPj4gK3N0YXRpYyBib29sIGluaXRfc3Vic2NyaWJlcnModm9pZCAqYnVmLCB1
aW50MTZfdCBjb3VudCwgdWludDMyX3QgZnBpX3NpemUpDQo+PiB7DQo+PiAgICAgdWludDE2X3Qg
bjsNCj4+ICAgICB1aW50MTZfdCBjX3BvczsNCj4+IEBAIC0zOTUsNyArMzg5LDcgQEAgc3RhdGlj
IGJvb2wgaW5pdF9zdWJzY3JpYmVycyh1aW50MTZfdCBjb3VudCwgdWludDMyX3QgZnBpX3NpemUp
DQo+PiAgICAgc3Vic2NyX3ZtX2Rlc3Ryb3llZF9jb3VudCA9IDA7DQo+PiAgICAgZm9yICggbiA9
IDA7IG4gPCBjb3VudDsgbisrICkNCj4+ICAgICB7DQo+PiAtICAgICAgICBmcGkgPSBmZmFfcngg
KyBuICogZnBpX3NpemU7DQo+PiArICAgICAgICBmcGkgPSBidWYgKyBuICogZnBpX3NpemU7DQo+
PiANCj4+ICAgICAgICAgLyoNCj4+ICAgICAgICAgICogV2UgbmVlZCB0byBoYXZlIHNlY3VyZSBw
YXJ0aXRpb25zIHVzaW5nIGJpdCAxNSBzZXQgY29udmVudGlvbiBmb3INCj4+IEBAIC00MzMsNyAr
NDI3LDcgQEAgc3RhdGljIGJvb2wgaW5pdF9zdWJzY3JpYmVycyh1aW50MTZfdCBjb3VudCwgdWlu
dDMyX3QgZnBpX3NpemUpDQo+PiANCj4+ICAgICBmb3IgKCBjX3BvcyA9IDAsIGRfcG9zID0gMCwg
biA9IDA7IG4gPCBjb3VudDsgbisrICkNCj4+ICAgICB7DQo+PiAtICAgICAgICBmcGkgPSBmZmFf
cnggKyBuICogZnBpX3NpemU7DQo+PiArICAgICAgICBmcGkgPSBidWYgKyBuICogZnBpX3NpemU7
DQo+PiANCj4+ICAgICAgICAgaWYgKCBGRkFfSURfSVNfU0VDVVJFKGZwaS0+aWQpICkNCj4+ICAg
ICAgICAgew0KPj4gQEAgLTQ1NSwxMCArNDQ5LDE0IEBAIGJvb2wgZmZhX3BhcnRpbmZvX2luaXQo
dm9pZCkNCj4+ICAgICB1aW50MzJfdCBmcGlfc2l6ZTsNCj4+ICAgICB1aW50MzJfdCBjb3VudDsN
Cj4+ICAgICBpbnQgZTsNCj4+ICsgICAgdm9pZCAqc3BtY19yeDsNCj4+IA0KPj4gICAgIGlmICgg
IWZmYV9md19zdXBwb3J0c19maWQoRkZBX1BBUlRJVElPTl9JTkZPX0dFVCkgfHwNCj4+IC0gICAg
ICAgICAhZmZhX2Z3X3N1cHBvcnRzX2ZpZChGRkFfTVNHX1NFTkRfRElSRUNUX1JFUV8zMikgfHwN
Cj4+IC0gICAgICAgICAhZmZhX3J4IHx8ICFmZmFfdHggKQ0KPj4gKyAgICAgICAgICFmZmFfZndf
c3VwcG9ydHNfZmlkKEZGQV9NU0dfU0VORF9ESVJFQ1RfUkVRXzMyKSkNCj4+ICsgICAgICAgIHJl
dHVybiBmYWxzZTsNCj4+ICsNCj4+ICsgICAgc3BtY19yeCA9IGZmYV9yeHR4X3NwbWNfcnhfYWNx
dWlyZSgpOw0KPj4gKyAgICBpZiAoIXNwbWNfcngpDQo+PiAgICAgICAgIHJldHVybiBmYWxzZTsN
Cj4+IA0KPj4gICAgIGUgPSBmZmFfcGFydGl0aW9uX2luZm9fZ2V0KE5VTEwsIDAsICZjb3VudCwg
JmZwaV9zaXplKTsNCj4+IEBAIC00NzUsMTAgKzQ3MywxMCBAQCBib29sIGZmYV9wYXJ0aW5mb19p
bml0KHZvaWQpDQo+PiAgICAgICAgIGdvdG8gb3V0Ow0KPj4gICAgIH0NCj4+IA0KPj4gLSAgICBy
ZXQgPSBpbml0X3N1YnNjcmliZXJzKGNvdW50LCBmcGlfc2l6ZSk7DQo+PiArICAgIHJldCA9IGlu
aXRfc3Vic2NyaWJlcnMoc3BtY19yeCwgY291bnQsIGZwaV9zaXplKTsNCj4+IA0KPj4gb3V0Og0K
Pj4gLSAgICBmZmFfaHlwX3J4X3JlbGVhc2UoKTsNCj4+ICsgICAgZmZhX3J4dHhfc3BtY19yeF9y
ZWxlYXNlKCk7DQo+PiAgICAgcmV0dXJuIHJldDsNCj4+IH0NCj4+IA0KPj4gZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUuaCBiL3hlbi9hcmNoL2FybS90ZWUvZmZhX3By
aXZhdGUuaA0KPj4gaW5kZXggZDY0MDBlZmQ1MGJiLi44Nzk3YTYyYWJkMDEgMTAwNjQ0DQo+PiAt
LS0gYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wcml2YXRlLmgNCj4+ICsrKyBiL3hlbi9hcmNoL2Fy
bS90ZWUvZmZhX3ByaXZhdGUuaA0KPj4gQEAgLTQxNSwxMCArNDE1LDYgQEAgc3RydWN0IGZmYV9j
dHggew0KPj4gICAgIHVuc2lnbmVkIGxvbmcgKnZtX2Rlc3Ryb3lfYml0bWFwOw0KPj4gfTsNCj4+
IA0KPj4gLWV4dGVybiB2b2lkICpmZmFfcng7DQo+PiAtZXh0ZXJuIHZvaWQgKmZmYV90eDsNCj4+
IC1leHRlcm4gc3BpbmxvY2tfdCBmZmFfcnhfYnVmZmVyX2xvY2s7DQo+PiAtZXh0ZXJuIHNwaW5s
b2NrX3QgZmZhX3R4X2J1ZmZlcl9sb2NrOw0KPj4gZXh0ZXJuIERFQ0xBUkVfQklUTUFQKGZmYV9m
d19hYmlfc3VwcG9ydGVkLCBGRkFfQUJJX0JJVE1BUF9TSVpFKTsNCj4+IA0KPj4gZXh0ZXJuIHN0
cnVjdCBsaXN0X2hlYWQgZmZhX2N0eF9oZWFkOw0KPj4gQEAgLTQzNiw4ICs0MzIsMTMgQEAgaW50
IGZmYV9wYXJ0aW5mb19kb21haW5faW5pdChzdHJ1Y3QgZG9tYWluICpkKTsNCj4+IGJvb2wgZmZh
X3BhcnRpbmZvX2RvbWFpbl9kZXN0cm95KHN0cnVjdCBkb21haW4gKmQpOw0KPj4gdm9pZCBmZmFf
aGFuZGxlX3BhcnRpdGlvbl9pbmZvX2dldChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncyk7DQo+
PiANCj4+IC1ib29sIGZmYV9yeHR4X2luaXQodm9pZCk7DQo+PiAtdm9pZCBmZmFfcnh0eF9kZXN0
cm95KHZvaWQpOw0KPj4gK2Jvb2wgZmZhX3J4dHhfc3BtY19pbml0KHZvaWQpOw0KPj4gK3ZvaWQg
ZmZhX3J4dHhfc3BtY19kZXN0cm95KHZvaWQpOw0KPj4gK3ZvaWQgKmZmYV9yeHR4X3NwbWNfcnhf
YWNxdWlyZSh2b2lkKTsNCj4+ICt2b2lkIGZmYV9yeHR4X3NwbWNfcnhfcmVsZWFzZSh2b2lkKTsN
Cj4+ICt2b2lkICpmZmFfcnh0eF9zcG1jX3R4X2FjcXVpcmUodm9pZCk7DQo+PiArdm9pZCBmZmFf
cnh0eF9zcG1jX3R4X3JlbGVhc2Uodm9pZCk7DQo+PiArDQo+PiBpbnQzMl90IGZmYV9yeHR4X2Rv
bWFpbl9pbml0KHN0cnVjdCBkb21haW4gKmQpOw0KPj4gdm9pZCBmZmFfcnh0eF9kb21haW5fZGVz
dHJveShzdHJ1Y3QgZG9tYWluICpkKTsNCj4+IGludDMyX3QgZmZhX2hhbmRsZV9yeHR4X21hcCh1
aW50MzJfdCBmaWQsIHJlZ2lzdGVyX3QgdHhfYWRkciwNCj4+IEBAIC01NjcsMTEgKzU2OCw2IEBA
IHN0YXRpYyBpbmxpbmUgaW50MzJfdCBmZmFfc2ltcGxlX2NhbGwodWludDMyX3QgZmlkLCByZWdp
c3Rlcl90IGExLA0KPj4gICAgIHJldHVybiBmZmFfZ2V0X3JldF9jb2RlKCZyZXNwKTsNCj4+IH0N
Cj4+IA0KPj4gLXN0YXRpYyBpbmxpbmUgaW50MzJfdCBmZmFfaHlwX3J4X3JlbGVhc2Uodm9pZCkN
Cj4+IC17DQo+PiAtICAgIHJldHVybiBmZmFfc2ltcGxlX2NhbGwoRkZBX1JYX1JFTEVBU0UsIDAs
IDAsIDAsIDApOw0KPj4gLX0NCj4+IC0NCj4+IHN0YXRpYyBpbmxpbmUgYm9vbCBmZmFfZndfc3Vw
cG9ydHNfZmlkKHVpbnQzMl90IGZpZCkNCj4+IHsNCj4+ICAgICBCVUlMRF9CVUdfT04oRkZBX0ZO
VU1fTUlOX1ZBTFVFID4gRkZBX0ZOVU1fTUFYX1ZBTFVFKTsNCj4+IGRpZmYgLS1naXQgYS94ZW4v
YXJjaC9hcm0vdGVlL2ZmYV9yeHR4LmMgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9yeHR4LmMNCj4+
IGluZGV4IDU3NzY2OTNiYjNmMC4uZTMyNWVhZTA3YmRhIDEwMDY0NA0KPj4gLS0tIGEveGVuL2Fy
Y2gvYXJtL3RlZS9mZmFfcnh0eC5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9yeHR4
LmMNCj4+IEBAIC0zMCw2ICszMCwyMCBAQCBzdHJ1Y3QgZmZhX2VuZHBvaW50X3J4dHhfZGVzY3Jp
cHRvcl8xXzEgew0KPj4gICAgIHVpbnQzMl90IHR4X3JlZ2lvbl9vZmZzOw0KPj4gfTsNCj4+IA0K
Pj4gKy8qDQo+PiArICogT3VyIHJ4L3R4IGJ1ZmZlcnMgc2hhcmVkIHdpdGggdGhlIFNQTUMuIEZG
QV9SWFRYX1BBR0VfQ09VTlQgaXMgdGhlDQo+PiArICogbnVtYmVyIG9mIHBhZ2VzIHVzZWQgaW4g
ZWFjaCBvZiB0aGVzZSBidWZmZXJzLg0KPj4gKyAqIEVhY2ggYnVmZmVyIGhhcyBpdHMgb3duIGxv
Y2sgdG8gcHJvdGVjdCBmcm9tIGNvbmN1cnJlbnQgdXNhZ2UuDQo+PiArICoNCj4+ICsgKiBOb3Rl
IHRoYXQgdGhlIFNQTUMgaXMgYWxzbyB0cmFja2luZyB0aGUgb3duZXJzaGlwIG9mIG91ciBSWCBi
dWZmZXIgc28NCj4+ICsgKiBmb3IgY2FsbHMgd2hpY2ggdXNlcyBvdXIgUlggYnVmZmVyIHRvIGRl
bGl2ZXIgYSByZXN1bHQgd2UgbXVzdCBkbyBhbg0KPj4gKyAqIEZGQV9SWF9SRUxFQVNFIHRvIGxl
dCB0aGUgU1BNQyBrbm93IHRoYXQgd2UncmUgZG9uZSB3aXRoIHRoZSBidWZmZXIuDQo+PiArICov
DQo+PiArc3RhdGljIHZvaWQgKmZmYV9zcG1jX3J4IF9fcmVhZF9tb3N0bHk7DQo+PiArc3RhdGlj
IHZvaWQgKmZmYV9zcG1jX3R4IF9fcmVhZF9tb3N0bHk7DQo+PiArc3RhdGljIERFRklORV9TUElO
TE9DSyhmZmFfc3BtY19yeF9sb2NrKTsNCj4+ICtzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGZmYV9z
cG1jX3R4X2xvY2spOw0KPj4gKw0KPj4gc3RhdGljIGludDMyX3QgZmZhX3J4dHhfbWFwKHBhZGRy
X3QgdHhfYWRkciwgcGFkZHJfdCByeF9hZGRyLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVpbnQzMl90IHBhZ2VfY291bnQpDQo+PiB7DQo+PiBAQCAtMTI2LDggKzE0MCw5IEBAIGlu
dDMyX3QgZmZhX2hhbmRsZV9yeHR4X21hcCh1aW50MzJfdCBmaWQsIHJlZ2lzdGVyX3QgdHhfYWRk
ciwNCj4+ICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgZmZhX2FkZHJlc3NfcmFu
Z2UpICogMiA+DQo+PiAgICAgICAgICAgICAgICAgICAgICBGRkFfTUFYX1JYVFhfUEFHRV9DT1VO
VCAqIEZGQV9QQUdFX1NJWkUpOw0KPj4gDQo+PiAtICAgICAgICBzcGluX2xvY2soJmZmYV90eF9i
dWZmZXJfbG9jayk7DQo+PiAtICAgICAgICByeHR4X2Rlc2MgPSBmZmFfdHg7DQo+PiArICAgICAg
ICByeHR4X2Rlc2MgPSBmZmFfcnh0eF9zcG1jX3R4X2FjcXVpcmUoKTsNCj4gDQo+IFR3byBndWVz
dHMgY2FuIGluZGVwZW5kZW50bHkgY2FsbCBGRkFfUlhUWF9NQVBfNjQgYXQgdGhlIHNhbWUgdGlt
ZSBhbmQNCj4gcmVhY2ggdGhpcyBwb2ludCBvbiB0d28gQ1BVcyBpbiBwYXJhbGxlbC4gQnV0LA0K
PiBmZmFfcnh0eF9zcG1jX3R4X2FjcXVpcmUoKSBoYXMgYW4NCj4gQVNTRVJUKCFzcGluX2lzX2xv
Y2tlZCgmZmZhX3NwbWNfcnhfbG9jaykpIGJlZm9yZSB0YWtpbmcgdGhlIHNwaW5sb2NrLg0KPiBJ
IHRoaW5rIHdlIGhhdmUgdGhlIHNhbWUgcHJvYmxlbSBpbiBmZmFfZ2V0X3NwX3BhcnRpbmZvKCkg
d2l0aA0KPiBmZmFfcnh0eF9zcG1jX3J4X2FjcXVpcmUoKS4NCg0KWWVzIHlvdSBhcmUgY29tcGxl
dGVseSByaWdodC4NClRoZSBhc3NlcnQgaW4gYWNxdWlyZSBzaG91bGQgbm90IGJlIHRoZXJlLiBJ
dCBpcyBleHBlY3RlZCB0byBoYXZlIHBvc3NpYmxlDQpjb25jdXJyZW5jZSBoZXJlIGFuZCB0aGUg
bG9jayB3aWxsIHNlcmlhbGl6ZSB0aGUgdXNhZ2UuDQpTbyBpIHdpbGwgcmVtb3ZlIHRoZSBBU1NF
UlQgaW4gdHggYW5kIHJ4IGFjcXVpcmUuDQpUaGUgQVNTRVJUIGluIHJlbGVhc2Ugc2hvdWxkIHN0
aWxsIGJlIHRoZXJlLg0KDQpDaGVlcnMNCkJlcnRyYW5kDQoNCj4gDQo+IENoZWVycywNCj4gSmVu
cw0KPiANCj4+ICsgICAgICAgIGlmICggIXJ4dHhfZGVzYyApDQo+PiArICAgICAgICAgICAgZ290
byBlcnJfdW5tYXBfcng7DQo+PiANCj4+ICAgICAgICAgLyoNCj4+ICAgICAgICAgICogV2UgaGF2
ZSBvbmx5IG9uZSBwYWdlIGZvciBlYWNoIHNvIHdlIHBhY2sgZXZlcnl0aGluZzoNCj4+IEBAIC0x
NDQsNyArMTU5LDcgQEAgaW50MzJfdCBmZmFfaGFuZGxlX3J4dHhfbWFwKHVpbnQzMl90IGZpZCwg
cmVnaXN0ZXJfdCB0eF9hZGRyLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYWRkcmVzc19yYW5nZV9hcnJheVsxXSk7DQo+PiANCj4+ICAgICAgICAgLyog
cnggYnVmZmVyICovDQo+PiAtICAgICAgICBtZW1fcmVnID0gZmZhX3R4ICsgc2l6ZW9mKCpyeHR4
X2Rlc2MpOw0KPj4gKyAgICAgICAgbWVtX3JlZyA9ICh2b2lkICopcnh0eF9kZXNjICsgcnh0eF9k
ZXNjLT5yeF9yZWdpb25fb2ZmczsNCj4+ICAgICAgICAgbWVtX3JlZy0+dG90YWxfcGFnZV9jb3Vu
dCA9IDE7DQo+PiAgICAgICAgIG1lbV9yZWctPmFkZHJlc3NfcmFuZ2VfY291bnQgPSAxOw0KPj4g
ICAgICAgICBtZW1fcmVnLT5yZXNlcnZlZCA9IDA7DQo+PiBAQCAtMTU0LDcgKzE2OSw3IEBAIGlu
dDMyX3QgZmZhX2hhbmRsZV9yeHR4X21hcCh1aW50MzJfdCBmaWQsIHJlZ2lzdGVyX3QgdHhfYWRk
ciwNCj4+ICAgICAgICAgbWVtX3JlZy0+YWRkcmVzc19yYW5nZV9hcnJheVswXS5yZXNlcnZlZCA9
IDA7DQo+PiANCj4+ICAgICAgICAgLyogdHggYnVmZmVyICovDQo+PiAtICAgICAgICBtZW1fcmVn
ID0gZmZhX3R4ICsgcnh0eF9kZXNjLT50eF9yZWdpb25fb2ZmczsNCj4+ICsgICAgICAgIG1lbV9y
ZWcgPSAodm9pZCAqKXJ4dHhfZGVzYyArIHJ4dHhfZGVzYy0+dHhfcmVnaW9uX29mZnM7DQo+PiAg
ICAgICAgIG1lbV9yZWctPnRvdGFsX3BhZ2VfY291bnQgPSAxOw0KPj4gICAgICAgICBtZW1fcmVn
LT5hZGRyZXNzX3JhbmdlX2NvdW50ID0gMTsNCj4+ICAgICAgICAgbWVtX3JlZy0+cmVzZXJ2ZWQg
PSAwOw0KPj4gQEAgLTE2NSw3ICsxODAsNyBAQCBpbnQzMl90IGZmYV9oYW5kbGVfcnh0eF9tYXAo
dWludDMyX3QgZmlkLCByZWdpc3Rlcl90IHR4X2FkZHIsDQo+PiANCj4+ICAgICAgICAgcmV0ID0g
ZmZhX3J4dHhfbWFwKDAsIDAsIDApOw0KPj4gDQo+PiAtICAgICAgICBzcGluX3VubG9jaygmZmZh
X3R4X2J1ZmZlcl9sb2NrKTsNCj4+ICsgICAgICAgIGZmYV9yeHR4X3NwbWNfdHhfcmVsZWFzZSgp
Ow0KPj4gDQo+PiAgICAgICAgIGlmICggcmV0ICE9IEZGQV9SRVRfT0sgKQ0KPj4gICAgICAgICAg
ICAgZ290byBlcnJfdW5tYXBfcng7DQo+PiBAQCAtMzE5LDQ5ICszMzQsMTEyIEBAIHZvaWQgZmZh
X3J4dHhfZG9tYWluX2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAqZCkNCj4+ICAgICByeHR4X3VubWFw
KGQpOw0KPj4gfQ0KPj4gDQo+PiAtdm9pZCBmZmFfcnh0eF9kZXN0cm95KHZvaWQpDQo+PiArdm9p
ZCAqZmZhX3J4dHhfc3BtY19yeF9hY3F1aXJlKHZvaWQpDQo+PiArew0KPj4gKyAgICBBU1NFUlQo
IXNwaW5faXNfbG9ja2VkKCZmZmFfc3BtY19yeF9sb2NrKSk7DQo+PiArDQo+PiArICAgIHNwaW5f
bG9jaygmZmZhX3NwbWNfcnhfbG9jayk7DQo+PiArDQo+PiArICAgIGlmICggZmZhX3NwbWNfcngg
KQ0KPj4gKyAgICAgICAgcmV0dXJuIGZmYV9zcG1jX3J4Ow0KPj4gKw0KPj4gKyAgICByZXR1cm4g
TlVMTDsNCj4+ICt9DQo+PiArDQo+PiArdm9pZCBmZmFfcnh0eF9zcG1jX3J4X3JlbGVhc2Uodm9p
ZCkNCj4+ICt7DQo+PiArICAgIGludDMyX3QgcmV0Ow0KPj4gKw0KPj4gKyAgICBBU1NFUlQoc3Bp
bl9pc19sb2NrZWQoJmZmYV9zcG1jX3J4X2xvY2spKTsNCj4+ICsNCj4+ICsgICAgLyogSW5mb3Jt
IHRoZSBTUE1DIHRoYXQgd2UgYXJlIGRvbmUgd2l0aCBvdXIgUlggYnVmZmVyICovDQo+PiArICAg
IHJldCA9IGZmYV9zaW1wbGVfY2FsbChGRkFfUlhfUkVMRUFTRSwgMCwgMCwgMCwgMCk7DQo+PiAr
ICAgIGlmICggcmV0ICE9IEZGQV9SRVRfT0sgKQ0KPj4gKyAgICAgICAgcHJpbnRrKFhFTkxPR19E
RUJVRyAiRXJyb3IgcmVsZWFzaW5nIFNQTUMgUlggYnVmZmVyOiAlZFxuIiwgcmV0KTsNCj4+ICsN
Cj4+ICsgICAgc3Bpbl91bmxvY2soJmZmYV9zcG1jX3J4X2xvY2spOw0KPj4gK30NCj4+ICsNCj4+
ICt2b2lkICpmZmFfcnh0eF9zcG1jX3R4X2FjcXVpcmUodm9pZCkNCj4+IHsNCj4+IC0gICAgYm9v
bCBuZWVkX3VubWFwID0gZmZhX3R4ICYmIGZmYV9yeDsNCj4+ICsgICAgQVNTRVJUKCFzcGluX2lz
X2xvY2tlZCgmZmZhX3NwbWNfdHhfbG9jaykpOw0KPj4gDQo+PiAtICAgIGlmICggZmZhX3R4ICkN
Cj4+ICsgICAgc3Bpbl9sb2NrKCZmZmFfc3BtY190eF9sb2NrKTsNCj4+ICsNCj4+ICsgICAgaWYg
KCBmZmFfc3BtY190eCApDQo+PiArICAgICAgICByZXR1cm4gZmZhX3NwbWNfdHg7DQo+PiArDQo+
PiArICAgIHJldHVybiBOVUxMOw0KPj4gK30NCj4+ICsNCj4+ICt2b2lkIGZmYV9yeHR4X3NwbWNf
dHhfcmVsZWFzZSh2b2lkKQ0KPj4gK3sNCj4+ICsgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZm
ZmFfc3BtY190eF9sb2NrKSk7DQo+PiArDQo+PiArICAgIHNwaW5fdW5sb2NrKCZmZmFfc3BtY190
eF9sb2NrKTsNCj4+ICt9DQo+PiArDQo+PiArdm9pZCBmZmFfcnh0eF9zcG1jX2Rlc3Ryb3kodm9p
ZCkNCj4+ICt7DQo+PiArICAgIGJvb2wgbmVlZF91bm1hcDsNCj4+ICsNCj4+ICsgICAgc3Bpbl9s
b2NrKCZmZmFfc3BtY19yeF9sb2NrKTsNCj4+ICsgICAgc3Bpbl9sb2NrKCZmZmFfc3BtY190eF9s
b2NrKTsNCj4+ICsgICAgbmVlZF91bm1hcCA9IGZmYV9zcG1jX3R4ICYmIGZmYV9zcG1jX3J4Ow0K
Pj4gKw0KPj4gKyAgICBpZiAoIGZmYV9zcG1jX3R4ICkNCj4+ICAgICB7DQo+PiAtICAgICAgICBm
cmVlX3hlbmhlYXBfcGFnZXMoZmZhX3R4LCAwKTsNCj4+IC0gICAgICAgIGZmYV90eCA9IE5VTEw7
DQo+PiArICAgICAgICBmcmVlX3hlbmhlYXBfcGFnZXMoZmZhX3NwbWNfdHgsIDApOw0KPj4gKyAg
ICAgICAgZmZhX3NwbWNfdHggPSBOVUxMOw0KPj4gICAgIH0NCj4+IC0gICAgaWYgKCBmZmFfcngg
KQ0KPj4gKyAgICBpZiAoIGZmYV9zcG1jX3J4ICkNCj4+ICAgICB7DQo+PiAtICAgICAgICBmcmVl
X3hlbmhlYXBfcGFnZXMoZmZhX3J4LCAwKTsNCj4+IC0gICAgICAgIGZmYV9yeCA9IE5VTEw7DQo+
PiArICAgICAgICBmcmVlX3hlbmhlYXBfcGFnZXMoZmZhX3NwbWNfcngsIDApOw0KPj4gKyAgICAg
ICAgZmZhX3NwbWNfcnggPSBOVUxMOw0KPj4gICAgIH0NCj4+IA0KPj4gICAgIGlmICggbmVlZF91
bm1hcCApDQo+PiAgICAgICAgIGZmYV9yeHR4X3VubWFwKDApOw0KPj4gKw0KPj4gKyAgICBzcGlu
X3VubG9jaygmZmZhX3NwbWNfdHhfbG9jayk7DQo+PiArICAgIHNwaW5fdW5sb2NrKCZmZmFfc3Bt
Y19yeF9sb2NrKTsNCj4+IH0NCj4+IA0KPj4gLWJvb2wgZmZhX3J4dHhfaW5pdCh2b2lkKQ0KPj4g
K2Jvb2wgZmZhX3J4dHhfc3BtY19pbml0KHZvaWQpDQo+PiB7DQo+PiAgICAgaW50MzJfdCBlOw0K
Pj4gKyAgICBib29sIHJldCA9IGZhbHNlOw0KPj4gDQo+PiAgICAgLyogRmlybXdhcmUgbm90IHRo
ZXJlIG9yIG5vdCBzdXBwb3J0aW5nICovDQo+PiAgICAgaWYgKCAhZmZhX2Z3X3N1cHBvcnRzX2Zp
ZChGRkFfUlhUWF9NQVBfNjQpICkNCj4+ICAgICAgICAgcmV0dXJuIGZhbHNlOw0KPj4gDQo+PiAt
ICAgIGZmYV9yeCA9IGFsbG9jX3hlbmhlYXBfcGFnZXMoZ2V0X29yZGVyX2Zyb21fcGFnZXMoRkZB
X1JYVFhfUEFHRV9DT1VOVCksIDApOw0KPj4gLSAgICBpZiAoICFmZmFfcnggKQ0KPj4gLSAgICAg
ICAgcmV0dXJuIGZhbHNlOw0KPj4gKyAgICBzcGluX2xvY2soJmZmYV9zcG1jX3J4X2xvY2spOw0K
Pj4gKyAgICBzcGluX2xvY2soJmZmYV9zcG1jX3R4X2xvY2spOw0KPj4gKw0KPj4gKyAgICBmZmFf
c3BtY19yeCA9IGFsbG9jX3hlbmhlYXBfcGFnZXMoDQo+PiArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdldF9vcmRlcl9mcm9tX3BhZ2VzKEZGQV9SWFRYX1BBR0VfQ09VTlQpLCAwKTsNCj4+
ICsgICAgaWYgKCAhZmZhX3NwbWNfcnggKQ0KPj4gKyAgICAgICAgZ290byBleGl0Ow0KPj4gDQo+
PiAtICAgIGZmYV90eCA9IGFsbG9jX3hlbmhlYXBfcGFnZXMoZ2V0X29yZGVyX2Zyb21fcGFnZXMo
RkZBX1JYVFhfUEFHRV9DT1VOVCksIDApOw0KPj4gLSAgICBpZiAoICFmZmFfdHggKQ0KPj4gLSAg
ICAgICAgZ290byBlcnI7DQo+PiArICAgIGZmYV9zcG1jX3R4ID0gYWxsb2NfeGVuaGVhcF9wYWdl
cygNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X29yZGVyX2Zyb21fcGFnZXMo
RkZBX1JYVFhfUEFHRV9DT1VOVCksIDApOw0KPj4gKyAgICBpZiAoICFmZmFfc3BtY190eCApDQo+
PiArICAgICAgICBnb3RvIGV4aXQ7DQo+PiANCj4+IC0gICAgZSA9IGZmYV9yeHR4X21hcChfX3Bh
KGZmYV90eCksIF9fcGEoZmZhX3J4KSwgRkZBX1JYVFhfUEFHRV9DT1VOVCk7DQo+PiArICAgIGUg
PSBmZmFfcnh0eF9tYXAoX19wYShmZmFfc3BtY190eCksIF9fcGEoZmZhX3NwbWNfcngpLA0KPj4g
KyAgICAgICAgICAgICAgICAgICAgIEZGQV9SWFRYX1BBR0VfQ09VTlQpOw0KPj4gICAgIGlmICgg
ZSApDQo+PiAtICAgICAgICBnb3RvIGVycjsNCj4+ICsgICAgICAgIGdvdG8gZXhpdDsNCj4+IA0K
Pj4gLSAgICByZXR1cm4gdHJ1ZTsNCj4+ICsgICAgcmV0ID0gdHJ1ZTsNCj4+IA0KPj4gLWVycjoN
Cj4+IC0gICAgZmZhX3J4dHhfZGVzdHJveSgpOw0KPj4gK2V4aXQ6DQo+PiArICAgIHNwaW5fdW5s
b2NrKCZmZmFfc3BtY190eF9sb2NrKTsNCj4+ICsgICAgc3Bpbl91bmxvY2soJmZmYV9zcG1jX3J4
X2xvY2spOw0KPj4gDQo+PiAtICAgIHJldHVybiBmYWxzZTsNCj4+ICsgICAgaWYgKCAhcmV0ICkN
Cj4+ICsgICAgICAgIGZmYV9yeHR4X3NwbWNfZGVzdHJveSgpOw0KPj4gKw0KPj4gKyAgICByZXR1
cm4gcmV0Ow0KPj4gfQ0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX3NobS5j
IGIveGVuL2FyY2gvYXJtL3RlZS9mZmFfc2htLmMNCj4+IGluZGV4IGRhZDNkYTE5MjI0Ny4uZTI3
NWQzNzY5ZDliIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL3RlZS9mZmFfc2htLmMNCj4+
ICsrKyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhX3NobS5jDQo+PiBAQCAtMjg2LDkgKzI4Niw4IEBA
IHN0YXRpYyB2b2lkIGluaXRfcmFuZ2Uoc3RydWN0IGZmYV9hZGRyZXNzX3JhbmdlICphZGRyX3Jh
bmdlLA0KPj4gfQ0KPj4gDQo+PiAvKg0KPj4gLSAqIFRoaXMgZnVuY3Rpb24gdXNlcyB0aGUgZmZh
X3R4IGJ1ZmZlciB0byB0cmFuc21pdCB0aGUgbWVtb3J5IHRyYW5zYWN0aW9uDQo+PiAtICogZGVz
Y3JpcHRvci4gVGhlIGZ1bmN0aW9uIGRlcGVuZHMgZmZhX3R4X2J1ZmZlcl9sb2NrIHRvIGJlIHVz
ZWQgdG8gZ3VhcmQNCj4+IC0gKiB0aGUgYnVmZmVyIGZyb20gY29uY3VycmVudCB1c2UuDQo+PiAr
ICogVGhpcyBmdW5jdGlvbiB1c2VzIHRoZSBmZmFfc3BtYyB0eCBidWZmZXIgdG8gdHJhbnNtaXQg
dGhlIG1lbW9yeSB0cmFuc2FjdGlvbg0KPj4gKyAqIGRlc2NyaXB0b3IuDQo+PiAgKi8NCj4+IHN0
YXRpYyBpbnQgc2hhcmVfc2htKHN0cnVjdCBmZmFfc2htX21lbSAqc2htKQ0KPj4gew0KPj4gQEAg
LTI5OCwxNyArMjk3LDIyIEBAIHN0YXRpYyBpbnQgc2hhcmVfc2htKHN0cnVjdCBmZmFfc2htX21l
bSAqc2htKQ0KPj4gICAgIHN0cnVjdCBmZmFfYWRkcmVzc19yYW5nZSAqYWRkcl9yYW5nZTsNCj4+
ICAgICBzdHJ1Y3QgZmZhX21lbV9yZWdpb24gKnJlZ2lvbl9kZXNjcjsNCj4+ICAgICBjb25zdCB1
bnNpZ25lZCBpbnQgcmVnaW9uX2NvdW50ID0gMTsNCj4+IC0gICAgdm9pZCAqYnVmID0gZmZhX3R4
Ow0KPj4gICAgIHVpbnQzMl90IGZyYWdfbGVuOw0KPj4gICAgIHVpbnQzMl90IHRvdF9sZW47DQo+
PiAgICAgcGFkZHJfdCBsYXN0X3BhOw0KPj4gICAgIHVuc2lnbmVkIGludCBuOw0KPj4gICAgIHBh
ZGRyX3QgcGE7DQo+PiArICAgIGludDMyX3QgcmV0Ow0KPj4gKyAgICB2b2lkICpidWY7DQo+PiAN
Cj4+IC0gICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZmZmFfdHhfYnVmZmVyX2xvY2spKTsNCj4+
ICAgICBBU1NFUlQoc2htLT5wYWdlX2NvdW50KTsNCj4+IA0KPj4gKyAgICBidWYgPSBmZmFfcnh0
eF9zcG1jX3R4X2FjcXVpcmUoKTsNCj4+ICsgICAgaWYgKCAhYnVmICkNCj4+ICsgICAgICAgIHJl
dHVybiBGRkFfUkVUX05PVF9TVVBQT1JURUQ7DQo+PiArDQo+PiAgICAgZGVzY3IgPSBidWY7DQo+
PiArDQo+PiAgICAgbWVtc2V0KGRlc2NyLCAwLCBzaXplb2YoKmRlc2NyKSk7DQo+PiAgICAgZGVz
Y3ItPnNlbmRlcl9pZCA9IHNobS0+c2VuZGVyX2lkOw0KPj4gICAgIGRlc2NyLT5oYW5kbGUgPSBz
aG0tPmhhbmRsZTsNCj4+IEBAIC0zNDAsNyArMzQ0LDEwIEBAIHN0YXRpYyBpbnQgc2hhcmVfc2ht
KHN0cnVjdCBmZmFfc2htX21lbSAqc2htKQ0KPj4gICAgIHRvdF9sZW4gPSBBRERSX1JBTkdFX09G
RlNFVChkZXNjci0+bWVtX2FjY2Vzc19jb3VudCwgcmVnaW9uX2NvdW50LA0KPj4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZWdpb25fZGVzY3ItPmFkZHJlc3NfcmFuZ2VfY291bnQp
Ow0KPj4gICAgIGlmICggdG90X2xlbiA+IG1heF9mcmFnX2xlbiApDQo+PiAtICAgICAgICByZXR1
cm4gRkZBX1JFVF9OT1RfU1VQUE9SVEVEOw0KPj4gKyAgICB7DQo+PiArICAgICAgICByZXQgPSBG
RkFfUkVUX05PVF9TVVBQT1JURUQ7DQo+PiArICAgICAgICBnb3RvIG91dDsNCj4+ICsgICAgfQ0K
Pj4gDQo+PiAgICAgYWRkcl9yYW5nZSA9IHJlZ2lvbl9kZXNjci0+YWRkcmVzc19yYW5nZV9hcnJh
eTsNCj4+ICAgICBmcmFnX2xlbiA9IEFERFJfUkFOR0VfT0ZGU0VUKGRlc2NyLT5tZW1fYWNjZXNz
X2NvdW50LCByZWdpb25fY291bnQsIDEpOw0KPj4gQEAgLTM2MCw3ICszNjcsMTIgQEAgc3RhdGlj
IGludCBzaGFyZV9zaG0oc3RydWN0IGZmYV9zaG1fbWVtICpzaG0pDQo+PiAgICAgICAgIGluaXRf
cmFuZ2UoYWRkcl9yYW5nZSwgcGEpOw0KPj4gICAgIH0NCj4+IA0KPj4gLSAgICByZXR1cm4gZmZh
X21lbV9zaGFyZSh0b3RfbGVuLCBmcmFnX2xlbiwgMCwgMCwgJnNobS0+aGFuZGxlKTsNCj4+ICsg
ICAgcmV0ID0gZmZhX21lbV9zaGFyZSh0b3RfbGVuLCBmcmFnX2xlbiwgMCwgMCwgJnNobS0+aGFu
ZGxlKTsNCj4+ICsNCj4+ICtvdXQ6DQo+PiArICAgIGZmYV9yeHR4X3NwbWNfdHhfcmVsZWFzZSgp
Ow0KPj4gKw0KPj4gKyAgICByZXR1cm4gcmV0Ow0KPj4gfQ0KPj4gDQo+PiBzdGF0aWMgaW50IHJl
YWRfbWVtX3RyYW5zYWN0aW9uKHVpbnQzMl90IGZmYV92ZXJzLCBjb25zdCB2b2lkICpidWYsIHNp
emVfdCBibGVuLA0KPj4gQEAgLTU3OSwxMCArNTkxLDcgQEAgdm9pZCBmZmFfaGFuZGxlX21lbV9z
aGFyZShzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykNCj4+ICAgICBpZiAoIHJldCApDQo+PiAg
ICAgICAgIGdvdG8gb3V0Ow0KPj4gDQo+PiAtICAgIC8qIE5vdGUgdGhhdCBzaGFyZV9zaG0oKSB1
c2VzIG91ciB0eCBidWZmZXIgKi8NCj4+IC0gICAgc3Bpbl9sb2NrKCZmZmFfdHhfYnVmZmVyX2xv
Y2spOw0KPj4gICAgIHJldCA9IHNoYXJlX3NobShzaG0pOw0KPj4gLSAgICBzcGluX3VubG9jaygm
ZmZhX3R4X2J1ZmZlcl9sb2NrKTsNCj4+ICAgICBpZiAoIHJldCApDQo+PiAgICAgICAgIGdvdG8g
b3V0Ow0KPj4gDQo+PiAtLQ0KPj4gMi41MS4yDQo+PiANCg0K


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 15:47:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 15:47:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181903.1504873 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSzwE-0004tU-4K; Tue, 09 Dec 2025 15:47:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181903.1504873; Tue, 09 Dec 2025 15:47:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSzwE-0004tN-14; Tue, 09 Dec 2025 15:47:42 +0000
Received: by outflank-mailman (input) for mailman id 1181903;
 Tue, 09 Dec 2025 15:47:40 +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
 <SRS0=Nu2q=6P=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vSzwC-0004s4-QE
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 15:47:40 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 633888af-d516-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 16:47:39 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA3PR03MB7393.namprd03.prod.outlook.com (2603:10b6:806:39d::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 15:47:35 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 15:47:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 633888af-d516-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YLm88EZqEY21T7WcWSNOiyb5uuRvUHdb1kRQtZAXIYseRAMN+vkjq5nw0fcsVG9ZD61kQWlx91mxYvKyxXRvJEnCSxngSBIEfIVsuR01jnT19rkT90Zqf1QPyu5gsIe1OkCaC/p/ZWNdIIDmDjlVy/+NEBqKkehZDe/93e0dd/Lf6pkwbBcTXJhgnnWVzYbGdwIABF6Ac802EPTvRiWzlyOJoQiedNhT8uYgGEH0CfgjibxCT1TV5iycMizFgMwlKx3DSBwwIJrPDTci6ab5G4iJ5+0WZmUwqccEX2h6u9zW+x5/kW2lU/jce8ARj63zm/DSUA531eFqOBJ1twWmcA==
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=GfMnt7+9v5hOVqLIpJoRtouYdb8Lvr1eafLMbiVt9xU=;
 b=Y+K3xp97GNoibL5z6b5msBcJyKVnWo8+1wmWbfAjk+d0n+XmxS21WUpY7UKLzW7BCy9Lts8z5EcdFgKYJMLQhWd0dWd/q25FTXR5v5f0jMu2e8F1NLe1i8JpctU0MX1K6SF7LJYM1zxg/kiXpYQDwRvXcgXsPaLlhYIpVAmZR/5QmbevFAttxzw0x6PhMx1QzKbLxxu+q8H4EaEgk6+jT+xOpubEn36lB01xzsCwrUPn+S0OeKK0qG3AZhmfW3GayoypOIwVcmeGSUywVuHG2msVIyA4hD4RwgYKIWTxnY0oeHfCwf39s9wyuwGXvzxIhpBYOWfqzm1Wm5LI0VtvUA==
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=GfMnt7+9v5hOVqLIpJoRtouYdb8Lvr1eafLMbiVt9xU=;
 b=eUppv/hRSbdU/3KgDCui8RmAhQGqLKKtl6xxkT5Hwg9dGwHJpklvwHNbvXldijtgkdO/swlqwsSrIXboLyAN/JyUQWAxxnKt4sYpT5tBqKFEUdZFSdTHAlnGK036ddU5OV2afp7Y/qij6InOzedbThrp3UF8wLqIo8nWvoDqT9M=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <6de92bf6-297e-4496-bcd8-f789bd7f8aa4@citrix.com>
Date: Tue, 9 Dec 2025 15:47:31 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [PATCH v2 1/3] x86: move arch_generic_hweightl() to arch-specific
 library
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f46f89f6-242b-4433-958e-36088e567ccd@suse.com>
 <45eb7fb7-a899-4d64-a031-f6188146e238@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <45eb7fb7-a899-4d64-a031-f6188146e238@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0641.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:296::7) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA3PR03MB7393:EE_
X-MS-Office365-Filtering-Correlation-Id: 6d41fa5e-1fb5-441f-804e-08de373a45b6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QlMrVFdkdzBzVXNGajh4Q0JYcHg2WTFMU21yTmp0UC8zbituWFBWbFpNTGFt?=
 =?utf-8?B?MTFON25MTFN6b29PWURXZVdObm8vaXpXK2xzZmN2MHlCMWJCVDdaZ3ZsSkEz?=
 =?utf-8?B?V094R1NMOHBtaUhQUERVRjg0dVNTU3A4RGZxQmwwVityNTNYcmhOT2lCOUl3?=
 =?utf-8?B?ZmlLcjd5QXRydmw0aGVhbnVoQ0p1dDJpQWdncmpISG5FQ1d4MkxROGp3WDhS?=
 =?utf-8?B?QkcrOXExVlc2WHFEMHBOMFF1NSs4c1F6bTA2bTdNbjlmT091YkFsMEdTdUo0?=
 =?utf-8?B?SUxHaUMxcENHOCs0ekpkd1BITDBLZlA4ZWpvRy9acVpocmwyNXNrcU5YaDVB?=
 =?utf-8?B?L2JLb29WNjNOQXprTjJvK29WN2l5dFhiZjBxcWRxUjRXNStoRUpqY2hhMEI0?=
 =?utf-8?B?Q3JFeHlhQ3A0ZzNHZkh3cHB5Qnc2R0hmVzRwN2R3QjNhOTIzU29sUDBRSktx?=
 =?utf-8?B?MUtDQmZmcDZTQ0piZlU4TTFWelp2T3lhUzQ0RktOUnlTRzBNc3I4UFVnaFFO?=
 =?utf-8?B?VjAyaFNTd0gwUUJqT0x0bWFDZzM5OHN3S2ZNWGxCZTBPeFJHWE90TE9Rck9s?=
 =?utf-8?B?VFRvZkFGWHJ3aVA4a1dJaVJPWlp0cGFBdFY3WnozSTZyVjNlRk1vbktaaURv?=
 =?utf-8?B?Qm9GQ0ZNSWRhN2RsL0tjYy9GOGo4SXJXQXBwbVhFOHJSWWhKMlNWVWxDa2Yx?=
 =?utf-8?B?T1pxc3k3MFkva00vVmIvejd4aGgwaUg3K3d6bVpiSFc1WThvYnJmU21yY0o0?=
 =?utf-8?B?dUtkTmtqVE4vNk5BdldveGFYdjh0YS9hYlNVT21ndnIvb2t5UkVISHEwQ3BI?=
 =?utf-8?B?Y085emNjMTcwUE9CbFRZTCtXQ2l6Q2dDQVlnZUVReXk1aVhlYXo3cDJlYTF5?=
 =?utf-8?B?L2h1aTdkWDlhdjIxQithYXJnZkVmMjJRZ1FIa1VweWZwSWc3aEd1TGxnbWpW?=
 =?utf-8?B?aHZUMjhsNzZVQ1VOTjdGd0ZOUmFXU0M5ZVRDWjdTa0REdzNGcVRZVFc5YUpr?=
 =?utf-8?B?Qk1UcURKMEJpQXlmWWF2L05BWHNheWJNMVJUSUFDTjkvQ21FVmR3akU4Mndk?=
 =?utf-8?B?UC9kQ0FRaXVjOExFU3JBZkpQaDRud0JYVEhVNGE0b1J6UWxxcE1lR01pa2tl?=
 =?utf-8?B?VWExdVdkN09oazZQcTQ5QUVuTHozdm14cXlWbE1ad1JTMTl5RlhBaHVZQmdG?=
 =?utf-8?B?Y1c4TzVCZG1OQTA1Y2ZPZU5ndUhOZDlLWnp6YnE2bnk4QTlqN0Fpbzdqb1hT?=
 =?utf-8?B?Yktjc1llMVd2NmJ6R05oK2ZwaWdYUUhpQklQb1JwZXJ2MWZ6MTBvM294OU9u?=
 =?utf-8?B?OTcxWElZVkVaWHJaYTFjS0RiK0NpQ0tqNjZYWkFSbTlBN0lITCtwMHNJc3N5?=
 =?utf-8?B?NUJ0SFZBWkQ1UWthQjlFdXN6eDFaWFc3OHVjRUc0Njg1Y1R0akc1WllXUmJ0?=
 =?utf-8?B?TUUwaW5tUCtrVDJHMm5MWlBKZUpzRVcrdTkxMUU5MHNtK3RvaVAwbFpxWGhL?=
 =?utf-8?B?U1lTcFZtZkZXV2RDN2JMcnpJZnFuMmFSR0wvRm5VNkVSbFlDN3BZcjJ4ZGYy?=
 =?utf-8?B?SmNrbmROalJSejBmRFFFL00rNGRMcFJQbi9GUzgveEZzbU55NzJHVlRjN3kx?=
 =?utf-8?B?eHNBVEduNHVrUlpCbUxkcUtQZlFaR1lHWnRUa085ZzRNMHJucFdrUW1BNUlv?=
 =?utf-8?B?UGxOTi9odTFuSXAvYllya2ZTQ1pIQk5vTVFXTkExT21qMnZJMjRvZThiMW4z?=
 =?utf-8?B?d2w0Z3lYZklMMW05TWxwVGY4UjNPcmpseDljQmx0OHdGemNCOVkxRGllVU5s?=
 =?utf-8?B?b1M5V2ZUTFZNZjZIRnpCMEx2d3paMUFCc25iTWhlUTVrQkxqdjM1SlVuWjR3?=
 =?utf-8?B?M1pMd25kMzZrT2RBdWplK3dUT0xrelA4UDVVYUc3MUYrR1dGejlYY0FNNk1q?=
 =?utf-8?Q?sKIpTMp44hE9gIxoUj/T3/M76/TjnG+Y?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U1J0enArK3JaejVta0dOTUZTODFHZkYvdXcwdyswZHdaTHZwdXVGd2NXTkls?=
 =?utf-8?B?K1hxM1FGYTFSKy8rUEptbVNGeHVXQkJocnNQQlpVSTU4UzJUejY5U3lic05O?=
 =?utf-8?B?c1UxS2l0SzN1d1Y3YWRPRWtaWnJWWHkzRUR0NHg5Z3pPRnRFWjUreVpPL3h6?=
 =?utf-8?B?U0FHNktJOUJsZEZWakFVaGlsb2kzM0tUYThQblF4QTRFS3I5UVJPRGVIL28x?=
 =?utf-8?B?UCs3UVR0eTczWFZJOUs1b255aUxoM3R3NjFHR3RvY08xYitZMVVVazNmWFZE?=
 =?utf-8?B?TzNPc1U2U3ZsMGQveDBrY0dTWjBRaXZoRkxoTUEvWnhNWUlERFNoR0RQMXNw?=
 =?utf-8?B?eFltcmNoK3hYaW9IZXVqaDV2dVhVdXYweHo0Rk12WnBobUhKMVI4QjlsTEw5?=
 =?utf-8?B?Tmg5TllQUGtLOUYwSnRBVlpRQklqcGZQVVR2UU5oNENHOVhLdldxaEw0YlJD?=
 =?utf-8?B?WWVMdW1OQjJ1ZmFUa2pQUThZRXdZNi95RFA1eUdZSjBJbVFURi83Ty92Vm9K?=
 =?utf-8?B?SDJLbnhWcmNnbXNtU2toNXRCTWVIQkt3U05qb1BFaDZ1dmxId01mcVkzUG5I?=
 =?utf-8?B?amRvR0l5Z0xhSkIxVHRIRllrWWxXRFJ2ejRQN3c4aGFqYytXU1RUQlFLdXdB?=
 =?utf-8?B?enk1aE45MFF6bjZuOU9PN0Y0WFhQRzJxZ29uSjhhallkVlEzYUl4eTZucXE3?=
 =?utf-8?B?YTg4TUM0NVUzbzFBZk1WUENrd3VreEJITmdpNUR3Slo4enNZYnRZSkNwYXJj?=
 =?utf-8?B?SHNPNk1wSVNXTml6RXJmWXVqcmxUODJvNFd1MHJTMERvS0luZ1NRWm9wOXBo?=
 =?utf-8?B?N0JLYXY0bE1XMm9JU3JNNHdIaG1oWVdkMllyYTlQaHlYM25QVFNNUS83MlVy?=
 =?utf-8?B?Z0VMVkhYOU53Qkc2RUpzWVJsVDhjVGtvZHBhaW1OQWRPWFU3YktRUDc1MTBl?=
 =?utf-8?B?K2wvZk9FZ2NqRWhwSHh1OUI0clhpNTRSK2lWU2JSZ3FNa244Rmk3RGdVTTli?=
 =?utf-8?B?c2FKTFJGajVSV0tpNnVUVmpHU3NDZGZKMlpVd1hTVGowVFVpUzhJejUyWW1U?=
 =?utf-8?B?cUxEZGJDQnV4ejF2aEYza21RSE5hZWppcCtsM2hIaFBmSjI5dmNtb2lEa1RE?=
 =?utf-8?B?Qmd0Q0lQT3hvYnRWSmx1SlZ4OVY4ZDQwMDFGUnFtaDkwWWR1VmtDbTVNOVBX?=
 =?utf-8?B?aFAzTFJmb0FndE4veTZYOEVOWjFLRDk5NEc4bnhEYWU1eEJab2IyUXpkVTJn?=
 =?utf-8?B?eFFwd1hKa0l5Z3N0aGJ4ODVpcm5DUE5HaFM0M0Y0YkxKajFFNlFVQkRDL2Rp?=
 =?utf-8?B?Y2pxeWNsWDFHQ3NKeE1UWHl2M2xhQW1SVTMxT2dDaDZCeDF4UjJRekxmaDFW?=
 =?utf-8?B?bW96M3FRNWcvbXFPZEtCSDZTZ0hnTzFoR1RFZ0ovNkxwYmJiLzJqdDhGYVJQ?=
 =?utf-8?B?ZTUzVStnaTNPTGkzNytvMUcwSGFMSitlWmxTUzhEanlPRTJDdExjN3hYbmdz?=
 =?utf-8?B?Mzh5V0hhMjFtd21HQnJtN1B5QktsTDRTR2xNdC8wMG10ZE44NFdrektNTi9l?=
 =?utf-8?B?Q0Y0M1g2Y2doaWdha2c5S1I2NTVkdnlCMXk2T1FCT2xzcG0rcDhjbU84SU94?=
 =?utf-8?B?dUFKNWh5RHVPQU5EZXZFQ01sOEtNejhjNXVwck8xRzlhVm1ZV01mNTlTYXBv?=
 =?utf-8?B?VDYrNFJ6UGdvb20xcHN1ZDY5MWpQKzNEUFExZUVNTldlMUNFNHpTM0hOd0VR?=
 =?utf-8?B?OS9pNFV3VlFxQ2hSalNiM1ovQ1lpNmZvNHdFUVV2Q2htZ0p0MnNaeU4vdHc4?=
 =?utf-8?B?RGJNai9mcDNBVElsanFwbTdCQlZxSG5EeC9Ma2Z5dzVucytsUXBmM2JScVdl?=
 =?utf-8?B?WjdHTWVNa0c1SHJubXdrTDN3U1NwYWhoRm1jeVNNUE1TZDlUR2p0Tk45Rm0v?=
 =?utf-8?B?cElEaEJLNk1vS0owZGhZSUR0am9FOUhncTduM0NqeHgxZDJxNVp3ay9DZzJK?=
 =?utf-8?B?ZGU5dldKY29sMFV3QXp4Z245SDVzOFErMUoxdWl0VU54enFDZE40YUJ0N3Iz?=
 =?utf-8?B?aTE2VHJUNFBha1BXcHhTREd0UnJDNFlQMXRqUy9qVWVMTjNBbXNSYTBRazFo?=
 =?utf-8?B?aGNGeFlYL3ZjTnFYK3lVRTJpSGN1MjNPUnYvUXh2bmlnVWdhYnRQaFQ4VjFV?=
 =?utf-8?B?MWc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6d41fa5e-1fb5-441f-804e-08de373a45b6
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 15:47:35.2020
 (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: wufmpNQPTQfDVPKH7ej5CNAcZ2K+YscqYL4guS47FHuPIGvZ6EfRDeQnJIIm7Q1d+p1wXiE6LpX/lkleYwgBMUS7p+w+ttbpH9wPkeHYpHI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR03MB7393

On 08/12/2025 12:04 pm, Jan Beulich wrote:
> Introduce arch/x86/lib/, and make it the home for the somewhat misplaced
> x86-specific file that lived in the arch-independent lib/.
>
> Introduce ARCH_LIBS-y as a make variable, to arrange for arch-specific
> libraries to (generally) come ahead of generic one(s) when linking. Should
> any library be intended to come after the generic one(s), it can be
> appended to $(ALL_LIBS-y).
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 15:49:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 15:49:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181913.1504885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSzyB-0005VJ-Ga; Tue, 09 Dec 2025 15:49:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181913.1504885; Tue, 09 Dec 2025 15:49:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vSzyB-0005VC-CG; Tue, 09 Dec 2025 15:49:43 +0000
Received: by outflank-mailman (input) for mailman id 1181913;
 Tue, 09 Dec 2025 15:49:42 +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 <SRS0=sSjK=6P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vSzyA-0005V1-EJ
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 15:49:42 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ac78e770-d516-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 16:49:41 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-477bf34f5f5so45804775e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 07:49:40 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a7d6fa121sm43692625e9.5.2025.12.09.07.49.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 07:49:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ac78e770-d516-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765295380; x=1765900180; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1k1tCwDEKeusbWJ/Qraje1/PRVirkxyeUgNtyTxxKEg=;
        b=aUhrUC+PTkQguV80zTTO1YPkoHrpYtN0OD3og77gjSuAKf73wKrUr8PJ+0kF8fVyj5
         DY8uzdfU26GjXfLQjbxgctSTDUzLH7gbItYY4qCUIkIn+YEhqQURg9lX1hv4wL2p46WA
         7dMNg4S/GvWaFPFmnjUFIJDCkOqQLE/YH8ZBt1/UwbxYejmnsxWGxrwNL7xFyQbhWvf7
         QHkWDA5OE/KXvZbTW3cqpVseRg10zmAFUyyk0euWQUM+GGlc1OiEx2OBGVnXOn92bdkB
         3fwWVfVkTgxI6LZngXC6se6vfBVJjrF+naL11bj3h7GjtCprzII3phf3DiPTFURuiXWM
         pZig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765295380; x=1765900180;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1k1tCwDEKeusbWJ/Qraje1/PRVirkxyeUgNtyTxxKEg=;
        b=Cs92YNaB1OZOr+Dfs1UzDf/Vl2Zz0TPQilqRclJmTQfgHgoOhpRHATHrFs+Kn9TeaI
         4Y67Cs8A+kDbxKb6taGNy58cuFu68Wco9d1tFl/mFbEZ3Rx/miNh7I5lcIIqnApgYYTM
         +J1c33X5c3jV23/GCGxajXl9iUHtwILvCZK8FueO3vOmMxl+UUUNlB/5SFnewFBWDpz3
         D/qMRGB+YQzNAI+64x30q8EdGOHuwzW7qN/Z6WAtgsQsvO1oFFZhROF9J0twGAsXlaz0
         T2pAOn7tyAwXyOw2hAmgwsAIGz3TMQCzL4xj6UCJ5cCm0G1x8f/BZJLdo6ZVm73Y4CsN
         n4/A==
X-Forwarded-Encrypted: i=1; AJvYcCU6BmvbTKD1RB/IVC0yibSOEcTvHn1N4T1ytsaArjNXZYG30vAXl9KUNJymhldT4UINoldsMrPUyzM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwWAK+l6Q7hWt2i0GKk60rT6wC5kP+rBydCnstN0NPn1NkuJR/g
	WDOwQC92YZdogpVkbGllSeRCBar8sbs/3R/gjJ2gt8y3rRLIwB0s7PeCJPM28SMOsQ==
X-Gm-Gg: ASbGncuxcAvlEUol1sce8BEDV/pkNCt2rgUs0frNV5Z98zB444yN/VTsNru3+xV8AJ7
	HhyM6b90ZLd7P6wUywffOTar1M/F7cw18DTTiTJ9rDlT9FRIw+0fHkz+3s2SAQaJQ5IdDP0CFQV
	5hh6nYAHbrK11yuMrZ2zc5U1jGIiy6M4JadMneYuZpiKKKletNWsefej10tozhv/q7/uxS0o6eK
	/+bcpHQIHw2jOUK9Rh62dxM50wmmqwzF5zU4pKfzd5DLXzRS6zT8vHWo21nZcDCdcQIfEpnImG3
	xZh8bpLqn2R64H8FI6cBFLJCNJv3p/uwa+YHzpOkMFZuMVRr7+eZhX8iLpBScfnszcTejsVU266
	nXdp3tAytrGfAWOuRb66V/TJGXrB2tHJOQ84cFFyc0mDjznKGtJNRcioKIDq0111CwdGk1Oz7LR
	IQBjrbFERg5ZrchY8x2Rfno1jx/UCwVlVEMGPDhSkImHN+o6xzHR5lx1YLMHvMYx9hyVJg5EaAL
	NU=
X-Google-Smtp-Source: AGHT+IHonfI2r/x96fzKS0/fDxyxbpfdIe2xhzJatbCEVZKiRAvsuJc3kLkXoSnnbVjIBPD5csHspQ==
X-Received: by 2002:a05:600c:2313:b0:477:b642:9dc1 with SMTP id 5b1f17b1804b1-47a179c27e9mr77672645e9.20.1765295380286;
        Tue, 09 Dec 2025 07:49:40 -0800 (PST)
Message-ID: <5fd516ed-c6db-4e7f-beea-a87c89faa6c0@suse.com>
Date: Tue, 9 Dec 2025 16:49:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 18/19] xen/riscv: add support of page lookup by GFN
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <48a58cde3de6a459885465c6d29d00d046ae4a37.1763986955.git.oleksii.kurochko@gmail.com>
 <69dce344-4dee-4778-99c2-0621c4e17cfc@suse.com>
 <86a87823-8b15-4897-9a97-ade444e2830d@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <86a87823-8b15-4897-9a97-ade444e2830d@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.12.2025 16:41, Oleksii Kurochko wrote:
> On 12/9/25 12:38 PM, Jan Beulich wrote:
>> On 24.11.2025 13:33, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/p2m.c
>>> +++ b/xen/arch/riscv/p2m.c
>>> @@ -1061,3 +1061,186 @@ int map_regions_p2mt(struct domain *d,
>>>   
>>>       return rc;
>>>   }
>>> +
>>> +/*
>>> + * p2m_get_entry() should always return the correct order value, even if an
>>> + * entry is not present (i.e. the GFN is outside the range):
>>> + *   [p2m->lowest_mapped_gfn, p2m->max_mapped_gfn]    (1)
>>> + *
>>> + * This ensures that callers of p2m_get_entry() can determine what range of
>>> + * address space would be altered by a corresponding p2m_set_entry().
>>> + * Also, it would help to avoid costly page walks for GFNs outside range (1).
>>> + *
>>> + * Therefore, this function returns true for GFNs outside range (1), and in
>>> + * that case the corresponding level is returned via the level_out argument.
>>> + * Otherwise, it returns false and p2m_get_entry() performs a page walk to
>>> + * find the proper entry.
>>> + */
>>> +static bool check_outside_boundary(const struct p2m_domain *p2m, gfn_t gfn,
>>> +                                   gfn_t boundary, bool is_lower,
>>> +                                   unsigned int *level_out)
>>> +{
>>> +    unsigned int level = P2M_ROOT_LEVEL(p2m);
>>> +    bool ret = false;
>>> +
>>> +    ASSERT(p2m);
>>> +
>>> +    if ( is_lower ? gfn_x(gfn) < gfn_x(boundary)
>>> +                  : gfn_x(gfn) > gfn_x(boundary) )
>>> +    {
>>> +        unsigned long mask = 0;
>>> +
>>> +        for ( ; level; level-- )
>>> +        {
>>> +            unsigned long masked_gfn;
>>> +
>>> +            mask |= PFN_DOWN(P2M_LEVEL_MASK(p2m, level));
>>> +            masked_gfn = gfn_x(gfn) & mask;
>>> +            masked_gfn |= (is_lower * (BIT(P2M_LEVEL_ORDER(level), UL) - 1));
>> I fear I still don't fully understand this. I would have expected the same mask to
>> be used for setting / clearing bits (once inverted, obviously). Why would you clear
>> only some of the lower bits in one case but set all of them in the other?
> 
> Only when is_lower == true do we need to set the lower bits; in all other cases
> this is not required, if i am not confusing something.

That wasn't my point though. I don't follow the !is_lower case: Why would you
clear only the bits for the given level, not all further down as well? Or am
I reading P2M_LEVEL_MASK() incorrectly?

> The idea is that if boundary = 0x1000 and gfn = 0x800, and is_lower == true,
> then to return the correct level value we must set all lower bits of gfn to 1.
> Otherwise, we would get level = root instead of level = 0 in this case.
> 
> I decided not to reuse mask to set the lower bits when is_lower == true, because
> doing something like:
> 
>      mask |= PFN_DOWN(P2M_LEVEL_MASK(p2m, level));
>      masked_gfn = gfn_x(gfn) & mask;
>      masked_gfn |= (is_lower * ~mask);
> 
> would allow ~mask to introduce 1s into the upper bits, which is not what we want.

If you set "mask" such that it has suitably many of its low bits set then you
should be able to simply do

      if ( is_lower )
          masked_gfn = gfn_x(gfn) | mask;
      else
          masked_gfn = gfn_x(gfn) & ~mask;

>>> +static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
>>> +                           p2m_type_t *t,
>>> +                           unsigned int *page_order)
>>> +{
>>> +    unsigned int level = 0;
>>> +    pte_t entry, *table;
>>> +    int rc;
>>> +    mfn_t mfn = INVALID_MFN;
>>> +    P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
>>> +
>>> +    ASSERT(p2m_is_locked(p2m));
>>> +
>>> +    if ( t )
>>> +        *t = p2m_invalid;
>> The sole caller passes non-NULL right now. Are you having patches pending
>> where NULL would be passed? Else, this being a static helper, I'd suggest
>> to drop the check here (and the other one further down).
> 
> I don’t have any such call in pending patches. I saw that Arm has a case
> where it is called with t = NULL (https://elixir.bootlin.com/xen/v4.21.0/source/xen/arch/arm/mem_access.c#L64),
> so I decided to keep the check.
> 
> What you wrote makes sense to me, and given that the mem_access code is
> Arm-specific, RISC-V will probably never have the same situation.
> However, it still seems reasonable to keep this check for flexibility,
> so that we don’t risk a NULL-pointer dereference in the future or end up
> needing to reintroduce the check (or providing an unused variable for a type)
> later. Does that make sense?

To a degree. The other perspective is that the check is dead code right now,
and dead code is often disliked (e.g. by Misra). Introducing the check when
it becomes necessary is pretty simple.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 15:57:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 15:57:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181923.1504894 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT05d-00077I-6V; Tue, 09 Dec 2025 15:57:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181923.1504894; Tue, 09 Dec 2025 15:57:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT05d-00077B-2Z; Tue, 09 Dec 2025 15:57:25 +0000
Received: by outflank-mailman (input) for mailman id 1181923;
 Tue, 09 Dec 2025 15:57:23 +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
 <SRS0=T3Df=6P=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vT05b-00074j-M1
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 15:57:23 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bf68e9e6-d517-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 16:57:22 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-47755de027eso40515905e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 07:57:22 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a7d6a19cesm46330905e9.15.2025.12.09.07.57.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 09 Dec 2025 07:57:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf68e9e6-d517-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765295841; x=1765900641; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=aDmh6Prc1PbllrKXX7d+dNCoSrcxBgqey3kMovH9Ac8=;
        b=bIh6yNXLBBigUa0ErAFZHfhOYdHcupOccKsll8l3gennQ3tA9ofkRgXeWaTQD7Trdf
         26oS6NVcXAEXhenUzLwI/pxMwOcyY6LDJMcF4udwmjWPQrM+vohbp4cZCqxJdn2Q9Itv
         5y/VZI8hRhpzDy8qhzVkPyxAFFL7teZRyGEF4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765295841; x=1765900641;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aDmh6Prc1PbllrKXX7d+dNCoSrcxBgqey3kMovH9Ac8=;
        b=aGQvCNnvt2qfPkfVyWZ8s7iJIj+UuD98fGotlLFuoA1VTHT3Ysb3jcPylmNaAsmgij
         Z/NWFKoDeXbctMuzfvYWSKdOs93DKkxAqBSj9nx6ZrL9OaVLXRq16/FZFdylNDhNFH8Z
         PgAumZ+8Y+cPrhBAx1OaF06gM5Nm+GKYM27uauKEYE7HxkJja1CfJPD6K/+WSE8zU1ed
         WdeGH1wiJIAgTSdDhALidjrs/cpdxoXftlVLsPyaAC0butoY5CtPLDqSgqC6aWXuol9V
         COrneqlHT6nM6iyTsUyHeSqlRkdejABri60SrRN63ibPA1ZVQvXe+t1kZpj06PqFQjz/
         Of5A==
X-Gm-Message-State: AOJu0YxTayvCEv26u/qzfOi0DDF+hazMG1t/N0pEQyvCqIN39B13XRSb
	8qI4KNzEoiBBMHPHGNlu2OzTXGPxMCXM1GW8HIf1cDj5Vj8ZnpEDehP8m0Nc08O0VG+ykaSf4o1
	9cQca
X-Gm-Gg: ASbGncvTjtwa7Ho/LY/y1Ao2YMJ3wBB6VJsATBT4hShhpbqxbNo11wpHS8Ss/641w2l
	sPvw53HmKh6maDLI/OQcY+eJt3sWIfGyHdV0ibBSTBinG4fCSNUijgEGSNMQV4o8ZbFXuwQKfx+
	1YpHTslkl5UqSkQF+JQGICgERM78+vuizbQJB7fq2o6KEowWukGvoKt5TQ8mq2eQcjbRAzl/I00
	r/J7ySbrxv6K/KiahxraTn8w73GT4B+QjMTgABWGJ6scUy994ma25tkWDcKftflacQXGsvynvre
	RsuovRNKZRkn42fgVGrNLAEWId54Hy7pqLDlTE1E+6xCHS6KqqT9YuHt6Cb9gvyGNFJa/MOyLpU
	FBBL06p9FzmVZGjeBawG72GqI33VWTf/sEPJlShG5Xj5LfAveJAWExaUD5mujkaEpG3KXW2dM4C
	O9hOy1m0yyXxzLyVhe41k98ezl3oHxZ16a8pQNHxbxXE0fKfKb55GYtk6NfZ3QZw==
X-Google-Smtp-Source: AGHT+IFSQPUiD1UwneOvw1KQZyUEmK1CA4uto6kVKSs/dOkEDcaXyzfeJnNj3hHWy+0uNx7DK+ylWA==
X-Received: by 2002:a05:600c:198f:b0:471:115e:87bd with SMTP id 5b1f17b1804b1-47939e381damr141974565e9.26.1765295841356;
        Tue, 09 Dec 2025 07:57:21 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Grygorii Strashko <grygorii_strashko@epam.com>
Subject: [PATCH] x86/pv: Unhide writes to d->arch.hv_compat_vstart
Date: Tue,  9 Dec 2025 15:57:19 +0000
Message-Id: <20251209155719.2098440-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The variable is never 0, but because the writes into it are hidden behind the
HYPERVISOR_COMPAT_VIRT_START() macro, it does a good impression of appearing
to be 0.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Grygorii Strashko <grygorii_strashko@epam.com>
---
 xen/arch/x86/domain.c        | 2 +-
 xen/arch/x86/pv/dom0_build.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index bd75d044a01b..d33a42c8824c 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -891,7 +891,7 @@ int arch_domain_create(struct domain *d,
     d->arch.emulation_flags = emflags;
 
 #ifdef CONFIG_PV32
-    HYPERVISOR_COMPAT_VIRT_START(d) =
+    d->arch.hv_compat_vstart =
         is_pv_domain(d) ? __HYPERVISOR_COMPAT_VIRT_START : ~0u;
 #endif
 
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 21158ce1812e..fed03dc15dcf 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -521,7 +521,7 @@ static int __init dom0_construct(const struct boot_domain *bd)
                 printk("Dom0 expects too high a hypervisor start address\n");
                 return -ERANGE;
             }
-            HYPERVISOR_COMPAT_VIRT_START(d) =
+            d->arch.hv_compat_vstart =
                 max_t(unsigned int, m2p_compat_vstart, value);
         }
 

base-commit: 63137a87311e1081bce0c5a4364492b4fc728bfb
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 16:06:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 16:06:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181939.1504904 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT0EE-00011k-Vn; Tue, 09 Dec 2025 16:06:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181939.1504904; Tue, 09 Dec 2025 16:06:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT0EE-00011d-Sz; Tue, 09 Dec 2025 16:06:18 +0000
Received: by outflank-mailman (input) for mailman id 1181939;
 Tue, 09 Dec 2025 16:06:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I/6M=6P=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vT0ED-00011V-9h
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 16:06:17 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fc63b7d9-d518-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 17:06:13 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by PA1PR03MB10920.eurprd03.prod.outlook.com (2603:10a6:102:487::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 16:06:11 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 16:06:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fc63b7d9-d518-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IaugGz+5cgUz47SfLFuBxJb8Q8z5jDs2Isoh2HYgEhWj+QjBex3nA6vI9/cWlkhzGiSE56jzyH5vLhHkxFnkQ4/FHFJe6zTymakjerasioxiaoM7SehSASAn0xzCietUYhGW0TnS1ED6TWyjIN7j8sbvaaN2jycjEpPadc6+ru8GFAou5MZwSmSQJCbi/j7lTaCWmdX3laQNo9wNXqLl5Mr6bIv04zvw+Eb+31+ccJ67VtjgLoNJGFNIyMUfbcqq/8eiMJu6GiMEa6lPGIg8yOUBpB88S/a690Oy/RvbURpWK/3iFXlyaBARQp8krF8PwAo3bq0DSV6WEruxzbqE2w==
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=7ekjQOCbCdvOSvnHkmr+p7Bj7eN/UBCvwHGLisoA8Ds=;
 b=Nw1QW7zGc1PajyYZ4DZ9PU6KuAJv1G7H5xBKv6qJgtnsSUBXsH/gY1vYgukRe8ONLgZkMTcBzAKc+zVmJImjSG7HZAKBB5SfVLKI8ID7lyqon8JeECWV/Yp7GQmjatXMM420znQOiVAuJFbrF218N3ADx9POVtZs1xWYnOhB4PGI2g18SWTSLlHKHgWK/DkpJX24I/0sZmBs8nqhRtadHgQgWYMcTYszFzAZo+dopatoOeHc3E+FUUYCvH+q03c2e5ZlI6CVwe85XDDy0eoQFhYY3iZmDx0qf2qS0XD+UB0bAHFE4C6R2mhD8Ps6zT1Dz2bA9KhpQYkKmYLd5twyiw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7ekjQOCbCdvOSvnHkmr+p7Bj7eN/UBCvwHGLisoA8Ds=;
 b=ojO4tDUp/gHukte5zd3rzmCM+Z7mbLiqx97cMmNkAjJLz3vigGxEUiErNJv3Yz/Ms0rTZStMipSynOIoME742/SRjV+lPNt7ydMJr5F2DscSEgDFBl5Kce7XugXHXpilQAJa5KDvW7d1Hg3R5DOO8G6c5UUSIPic/TVP1BMEE/4IEmZip97Z0Xlv/tVSQXU2Vp0gu4raHM+daPpT9e2AyntkIvYOuCeuRskXeg93KvVw3hDQ2br7EppJ6A6fCIG3iLvWhnj5zBj76OJcwyt37cAspXZegcaTJNHbyXc/k1BqB2nBeVSvxicnWQSQUVs9aOzhQmEzpdU/qu9Gr+EmWA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <147c917d-5ec4-4134-b531-3483d445283a@epam.com>
Date: Tue, 9 Dec 2025 18:06:09 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pv: Unhide writes to d->arch.hv_compat_vstart
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20251209155719.2098440-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20251209155719.2098440-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0008.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::21) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|PA1PR03MB10920:EE_
X-MS-Office365-Filtering-Correlation-Id: 91ec7842-6521-4145-b3f8-08de373cdf49
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Z0pBVmJuYTdiL3JPa3dKR0thV1FpVkJPYVpsc3FDZkFkMUZsUWpYc05SY1g3?=
 =?utf-8?B?bUtTVElZUUtudjM5WVJRMmNGYUp6VTVxaE51eU0yNFNRYmpZVkh1NVVQdjVr?=
 =?utf-8?B?aXlnK0FHRUttbkR4aHhjN3N1cWFSQjFzR3pRTG1zL0VaaXJPaEhqdFBrWkcz?=
 =?utf-8?B?N041Wk9NYmZwWWhKTkt3OGFHa2NwV3pDWVdKc1N1QWRHSGNuQ0IzK01kU2Fm?=
 =?utf-8?B?RW10MkNydnA4dFRFTy9yWURadCsxY1psME5rREkxcGMzNzBsdDRwempZU1do?=
 =?utf-8?B?czFFVlF2OFJoeDloeUd2L09EUStKc0NUNVpxbXQ0RHBQNDVPdTBzWFVEbkVK?=
 =?utf-8?B?Yzd2YXB2alNRb1UyZEZMTThBaE9GazNLNlcyWnJjdnlNTFIrZ1A1aERsa1dn?=
 =?utf-8?B?MWFCVjh6N3NIUEtLaU84UituMDhMUUlPQklCNjlDSDk4RVFtRk51Rm0zUXRN?=
 =?utf-8?B?SmtrWHVXUWFyT3dWa2ZCdFJSeDA4RUtxeUtTNXZsbGZ4NEk4MlJwRkNqK2Q3?=
 =?utf-8?B?RG5KRkxBWDZ0TThSZ3ZpTFVSZHBuaEhRSzlsQ0tIeHYrK2RZVEZLdUwzRldV?=
 =?utf-8?B?a0JGVWMxRktxSWNINEZZTVExVjJWN2wrUXovMERSbTZILzVCdXY2VmN6TE5p?=
 =?utf-8?B?NHhHWlN1V01BMTlvbkFNU0tNbEpzTmlUTXloSkZSSUR3VlZhTnlObm9Yak1N?=
 =?utf-8?B?cDJlNVBwbCt1N0pvbFhyN2RUcWZMbUNWYUlQdDJpemIrTjNIK29HVEhjbk1Y?=
 =?utf-8?B?WnYyQ3dkbDNXdHlTSjN1b3NHT1hESU5aYytjUjBsYWZxbDlhbUxaQmp2enNY?=
 =?utf-8?B?bndkY2l1SWNTOGxwN3JkZmtFNUsyYy9KTU80bTVSQ0tMblhacHBsRTVwdVFs?=
 =?utf-8?B?dCt1MDdkNVR2K3FxbVJ2QWtDaVlmb0dwU0UxM2R6VnB3ZmpkKyszdGsxNVRL?=
 =?utf-8?B?M1UwMzcvVnVwaEVRWWsvcFdlVGpnUnFqa01jRFhGVHJmS1hJS3gwSmNyWWJG?=
 =?utf-8?B?ZDBYL20ramlVN3JzK0xoM3ZFOGJiUHc5a0JiS2tReG1HTWRLS2h2S1kwZU9T?=
 =?utf-8?B?LzRXVzErY2VCblE3K01jY3NJd2FUL2dWUFJuTTl5Y2lhV1EvWXN5VGV4Ykww?=
 =?utf-8?B?OWxzbTlocjZFZTFrSUZQL1ZhaFZDOVQ3NURrTklFUkNtTVZkaWdrWTEvdHdQ?=
 =?utf-8?B?d3FjWWhNUmpkL0pIWkhLTi9zZ3NEKy84VThRL0ZaYVpyNGRCRUpBV0h2ZlFt?=
 =?utf-8?B?NmRnNHVlbncwMWhpbjdQSFVvUk04Z1d5NnBMWUQyWDFKWTlnaXVhczZyR3Nx?=
 =?utf-8?B?a3JoVGJzMzBUWWJYaTV0SE5DcmVwTCtmME9lZWpMdkNyTjBOcDMyamhZTDFx?=
 =?utf-8?B?NjhIWGlHVHRKMTNteEE0R3BvWWFJSUp6dWtNN2pzdjJVL1I3bE9wNm1aQ3VX?=
 =?utf-8?B?UGYycjFGczQ3VVlaaFBlYWszRWpYMVdiYnBhYjgybzg2cWhTVERjOXBkK2I4?=
 =?utf-8?B?RkMwbGlIRzRleUtpVzJibkdxcHZlUElFMEZrVEpvc1M3TlljYlB5b21DYk9F?=
 =?utf-8?B?V2laNzRaWVY0REJYNFdoTWl1YnphMDh4TnJsUUpPbVJOZEZhSjZiTnoxR2NB?=
 =?utf-8?B?T2d5dFlpWUt3U002SUNuNG1tNGdnbUdiNVNtTDZuNm1sSzB2TXVvZDJyR0RY?=
 =?utf-8?B?Nit1MTgwUHhpZUp5OGRwWXJxMGd6VFIrdzRMTmEyRWhaclloVEp0bEJKS3A1?=
 =?utf-8?B?eEVlUzV6U2ZSQXlxYmRUUDc5ZlZEUWdITnF2NHE3STB0cnQxbjd2Yk81dlIr?=
 =?utf-8?B?aS9BRjVHeFdFa1BPM3J4WVQ4SElHSmRIN01tcE9pUDdWaG1nVXAxZ1RhZnFq?=
 =?utf-8?B?T200dWZlWUFkTW5EdmhOeU9uaW5abFVmOFpnZDhyd25GNC9hUDJ4VWVQMHhC?=
 =?utf-8?Q?mbu0E5ix8vQaxY/KvL2v/UtZtQcs7orz?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NjJBMVh5VEtla2xmNmVHQ3o5akx1YXNVWndQRXE4ME51RDRZek9QditwYnBD?=
 =?utf-8?B?eDJuMUhzd09iKzViWXhuVDBnRW53RG1GM2xFZnRyV09FRThzR0t4dEhWN09u?=
 =?utf-8?B?NEpMWFJBdlU3K1lYdjVNN29kQnJsMThGbDlOTlRnR255TlpiOFFEMTFodXVm?=
 =?utf-8?B?UlZ3NmtNMnl1RXhaS3BIK3d2N0lTRk1zWXFZMVBRdlFsekgzdEZRK2txN2Yv?=
 =?utf-8?B?dCs5VnlSdUZtUUFtancvV1hKcGVlTHk0b25odjdhMFo4K3B3bVE5dW5TQUs1?=
 =?utf-8?B?QmkvZnFHOW5aRTZ4Mys1bzA0UWxycE5VNHlMUXF4RDQrYi9WZEJtb1pKOG9w?=
 =?utf-8?B?YldFRW53SlBCbEdQNlR4QklERVNwcXR1NHlTbkxnMEkydkxReXBpdnVuVytk?=
 =?utf-8?B?Y2VyWWNWdjJ1dEJ4aWNtZzZhLzByZVZ2YlJJcFlOQmVDMEYyaW9uTndXODY3?=
 =?utf-8?B?ZzRub1RsN3FQaFpJVk91SDUwVmlISU5ZaUFaczI2b3BYSm9mTTgvb0E5ZEx4?=
 =?utf-8?B?aWFJUUtyeXc5eUtVb2E3b1E5QzFEWkxvTUtxS2cvbURPNDRRR0lDQjA2amFi?=
 =?utf-8?B?T3oxTE1wR3N4SERVZ3ZOS2FrbXZWWnBwbWNNbjl4dUxrMURVQkYyZCtZM3dT?=
 =?utf-8?B?NXk0TFU3Z3hqblY2eDFMNnYxNVUrcFJ3QUdwaXpqOE9PVndRNGRJQXRrSHJR?=
 =?utf-8?B?SktzUFA4RlR2eUpSNlNGdFJoUnc2bEt2RnQxanV2ZnRjSzJTNUg5ZE9tb2t0?=
 =?utf-8?B?OFkrT0RFeDN0SnF6Z1NCclRHeTlRVlo1UE8zNjVGY2RYbXg5eXZyY2xQd1E2?=
 =?utf-8?B?L1N4MmNscTF4YlRuaEo1VFRLQ0UrUnFSRG5pUTJQanlrMWtxY3hTZko3WDZX?=
 =?utf-8?B?bXJ3dVJVRUg4b2VHMUhtelZBcVVwNC81dlhZMCs3aGlCTkRSekFFZW1hamJw?=
 =?utf-8?B?YXhLYmdjUlk0bDVGTkpISFBHdW5SNndzSkUzVmh1N0lMMFlMSE5OZUhrQytJ?=
 =?utf-8?B?SkUwNlRQTEZaQSs3eTdxM3pXUFBXWW1NRU96UTB1bXpkd1N5TklOZTRONURC?=
 =?utf-8?B?Z3FKMVA0cThVOU1YWGpWRU54Qy9ER1VPUk11RFJkclpwN1FqUHhCN1FrVFla?=
 =?utf-8?B?UVFXTTArdDFERno5Y2JGbm85NzJObFpKbFE2WTN5TzdwZW1ROWdYWG16Y2lw?=
 =?utf-8?B?MWoycStBempOcE9jNWRwMk5NTzFZVHkra3U2M1BRbUxkOGJLa3BROHRoU1dD?=
 =?utf-8?B?UUtMOUc2akZ5bjI1SDFPZE5CaXA5T2NMRzM3YVlBeDN2ekttTVhNWVhaSjl2?=
 =?utf-8?B?R2VmSjZSbmg4MDNma3kwdHlOOVR3VVRTTFVQa1NpSDJ4ak4yQ3BrenAzdmt4?=
 =?utf-8?B?V0ExU01xcS91OW5jVG80L0RUM0UwVjV3QTZ6MTFGYldYUkhLekhnNm41TnQv?=
 =?utf-8?B?QytVNURiQXdCV3lZcVRsTng2ZjlXQXFVVnREck1XaE1ZUVNQUnJTZWxVUWxx?=
 =?utf-8?B?Qkk0VXllQnhvbFFkY2VmS2NkUUs1eFVlSi9GQ1R5MFozM3FuTmxFZVJDTE1i?=
 =?utf-8?B?UENNSzdreitiRUVvQkFTRVY4TzlOVk9saWpKS1FldFNKWEgwditscUNBZkNC?=
 =?utf-8?B?SVRuRDZXUUhvNFVuSDE4OFN3enRIb0dVM25aS2lITm05bjNxM1UrZG5KOWpj?=
 =?utf-8?B?czN5cTNkdjJIdUtaMWVqOUVFL29Ta3VkYzV6YmVuOW1EWHYwSE5ZRTdsbUxx?=
 =?utf-8?B?eGtYSExQRGV4T2NDdGllVHNzQ21sbUw1Ym1vTEw5cXN2UHFYMU9uT0FxYWFp?=
 =?utf-8?B?UEIxSnErdm4walZCc2Q1L09Dd2o2eEhrekhBaCt1UUx0WkxSQ0pMa2g4eUdo?=
 =?utf-8?B?eGtXT3djR3NxWkU4eEhiTVpBY1dXSVhYWTI3Vy9EamQ3clltUVV6TzQxM21Z?=
 =?utf-8?B?R2Q2Mkk1ZnNybld3bGsyUGVmTU1zOFhidUprTXFMV3FWaG9NV0hHcDJKSmdK?=
 =?utf-8?B?SXoydnBkNFVCWGFaT2hRWUErVEYrUm5ndURIZkJ4N0c2V2J2TXcvalNSWXRM?=
 =?utf-8?B?RzJYUjBXNVV3dmFoTmFsY1ZBY0pBa2d4STMrdjVxamdqK0RlK1V5K2tNUVJY?=
 =?utf-8?B?RUFUSkExV1dlcWFTQ2oxWk9nUVZEZmhaNXRTQ0lyRWM1b1MvemJvbVJFRnpv?=
 =?utf-8?B?UEE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 91ec7842-6521-4145-b3f8-08de373cdf49
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 16:06:11.8025
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0J+KqgtEJvdYKzcRtsm8v775WgqxXh6bzY4CY/iDSnHrwr7XrtlAHNkdEGItt+UIa9D3n0kwcmxecWJHJSQv20XeUe5SgCG0F5Z1Jyob++0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR03MB10920

Hi Andrew,

On 09.12.25 17:57, Andrew Cooper wrote:
> The variable is never 0, but because the writes into it are hidden behind the
> HYPERVISOR_COMPAT_VIRT_START() macro, it does a good impression of appearing
> to be 0.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
>   xen/arch/x86/domain.c        | 2 +-
>   xen/arch/x86/pv/dom0_build.c | 2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index bd75d044a01b..d33a42c8824c 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -891,7 +891,7 @@ int arch_domain_create(struct domain *d,
>       d->arch.emulation_flags = emflags;
>   
>   #ifdef CONFIG_PV32
> -    HYPERVISOR_COMPAT_VIRT_START(d) =
> +    d->arch.hv_compat_vstart =
>           is_pv_domain(d) ? __HYPERVISOR_COMPAT_VIRT_START : ~0u;
>   #endif

Any chances it can be moved in pv_domain_initialise()?

>   
> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
> index 21158ce1812e..fed03dc15dcf 100644
> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c
> @@ -521,7 +521,7 @@ static int __init dom0_construct(const struct boot_domain *bd)
>                   printk("Dom0 expects too high a hypervisor start address\n");
>                   return -ERANGE;
>               }
> -            HYPERVISOR_COMPAT_VIRT_START(d) =
> +            d->arch.hv_compat_vstart =
>                   max_t(unsigned int, m2p_compat_vstart, value);
>           }


Thank you.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 16:41:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 16:41:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181956.1504913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT0mU-0006jP-Js; Tue, 09 Dec 2025 16:41:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181956.1504913; Tue, 09 Dec 2025 16:41:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT0mU-0006jI-HH; Tue, 09 Dec 2025 16:41:42 +0000
Received: by outflank-mailman (input) for mailman id 1181956;
 Tue, 09 Dec 2025 16:41:40 +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 <SRS0=sSjK=6P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vT0mS-0006jC-J9
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 16:41:40 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eebbc7e4-d51d-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 17:41:38 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-42e2e6aa22fso2791303f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 08:41:38 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d331df0sm33542206f8f.36.2025.12.09.08.41.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 08:41:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eebbc7e4-d51d-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765298498; x=1765903298; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bj86q+2OfSs2BFw7VfA9MfkMz1TZdTLPF4574B02sQc=;
        b=ZlldEnRGJb4MKfH0925tQAVegyrghTAScNrEa3j7gBlNCNoCi7kxH+y2p2chLN9tAZ
         RSwdg8VAscF9212dqx8Y7yLXNOIa3Moj9FX3D2MBAONR0pTZsqi9wiwzjU3glRM0b/Eg
         eZAAKy8nrJkucqEXiQEG81D2P88CnosKLqfyzstWyUTEhM2dkLHbYOiE8cwMpyoxdwJI
         kxOiwYoFwCMvYRoC1PMYA57XcmqarspVXmZDBRUO1YIsDiUQ0AzYZtQjyW8Oi7RFL/Yv
         fHgxsYAqOeZrCY9dV8qPNrgHvE2y+qe8BiDLrT0oSnfKUhGBn5FtRNWEBbypsUscG+zJ
         +Vbw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765298498; x=1765903298;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bj86q+2OfSs2BFw7VfA9MfkMz1TZdTLPF4574B02sQc=;
        b=S9XlxuJTpVvsgIrby+yfm0doyaqowRW4ntS06hvEulJOj/BOfAoevEW0pMGE06GFcm
         iWyefBSB/0i+3uLble6mGqzvq76yCFPwYwrcKU6X3X+a1Ok57idy5uT1EBkzm5XOZ3L4
         EKI+2naqgdbKOisGnVO/8TR8Vh4oOiCerv9PeD8ffQPAhKuNYiqc/bjulJnQ2v6bqHEs
         B346yFcn2sFl7a3Y5aH8hgNcZqLvcY/unx+wlerBgnrj7EEtP6w/llVY3pwBtfG7nlhP
         WnLOXtJD8WXt04pnCO2FbejMSSqJ1nAhqMPI9XVd3ureJlODvpzqMgMW0KojTM2uKZuh
         CGxg==
X-Forwarded-Encrypted: i=1; AJvYcCWbSRn2AkvnBELtg9PCFPBgKhgRjaSGjVJbFPxfAvy2s8XBpesYfQch18qczyuajK5eCFdoGWc9AlY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw7Xq/PI/NQzIhIN3q78hOos8l10UPF0WnvBketBAD7Dbw8/mSH
	F3sUC4EoUEw9xAC7bU+djtQPmU1aFzL0j29AzL05UOzTLXgx24ApoqhcLGWSkyQ9LA==
X-Gm-Gg: AY/fxX5MzCdC3lwM68p0xUxU6bXM2V0y7fY+OcV28rOQdgrMrMFBSji02vXpe5SDRnp
	Ql0FAkttxmOcV5fkLjFA1GSdPnEK3yRF5g6oR5HG4s537RD/QtGs09wrX+5BG8W6P+F4ZiGzS0D
	edtQJwGGgVB0zgwS5E6GuLEjt4s5XaeQgrK+WFbmbrofIdBu4iRFRVK+fpZsNts4qfvaFUW1c39
	btTO5aE5fn7ilBxYA5YNkJeDbgefWDeMLdwOFwaME7Xf5/AGWBLYySLZEKrJhOUy4zknpbvfHOX
	goPvphwH/172u+SaG4b7DNODLzQEiq0wUjoQF+moWmvIq9vbVKpgtL1DD66D9SCvcimLCNM97Wa
	D6GZThZbb86D+C11mGde6myhuUDyP1NLD3rT6U20OCOMGjMGjy5LaQxR5n2vgms8eS+7GBlNMIm
	9tsGSShFYpLooielEBNxF9XH76aA/Nf1M+RE2V/omXmymqFH7PCrpOdAoTkccFQb2FRPK3mXYsz
	Is=
X-Google-Smtp-Source: AGHT+IEfibODGThv6fwXhn2rMZ2cGRP2o5KKTZGcwcQnRZ+ZbSh1jvv5i9aW3Oe2U0DBaHKTQKIYrQ==
X-Received: by 2002:a05:6000:40c8:b0:429:b525:6dc2 with SMTP id ffacd0b85a97d-42f89f1419dmr11614202f8f.17.1765298497937;
        Tue, 09 Dec 2025 08:41:37 -0800 (PST)
Message-ID: <79fd0f6a-8fbb-433e-9c74-3da339301b96@suse.com>
Date: Tue, 9 Dec 2025 17:41:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pv: Unhide writes to d->arch.hv_compat_vstart
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251209155719.2098440-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251209155719.2098440-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.12.2025 16:57, Andrew Cooper wrote:
> The variable is never 0, but because the writes into it are hidden behind the
> HYPERVISOR_COMPAT_VIRT_START() macro, it does a good impression of appearing
> to be 0.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

I don't kind it being this way or the original one, so
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 16:43:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 16:43:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181967.1504924 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT0nl-0007Eq-Tc; Tue, 09 Dec 2025 16:43:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181967.1504924; Tue, 09 Dec 2025 16:43:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT0nl-0007Ej-Qf; Tue, 09 Dec 2025 16:43:01 +0000
Received: by outflank-mailman (input) for mailman id 1181967;
 Tue, 09 Dec 2025 16:43:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=sSjK=6P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vT0nk-00072A-CJ
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 16:43:00 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1e422d1b-d51e-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 17:42:58 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-42e2e77f519so3798420f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 08:42:58 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbe90fdsm31073557f8f.3.2025.12.09.08.42.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 08:42:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1e422d1b-d51e-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765298578; x=1765903378; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=89Exxs1OyuSXYhr/oXQrEFwy7hr4/0VpdHto8cY1AF8=;
        b=fJf6k5i0raCvSNFzVo+IGikCXkbNju+p8IU4Af+QZirY7z6QMBv4+Q+NKh3pcl33vH
         pOWazgpRKXvL2xq7/uHFyscjFxc8b0l/pPxXh3T9GpxsMCNFpy2tPsVvDWuMHVQoW5gR
         y4+PhiFAgfSMUGBIYH1ZWCt4BfSViDC4C94oBL/g1quvh69k7u9TC0hG1ZQ3I9Z+USBB
         bvAcIBuMpzNA7a9O7lnO0VlzzMdSyw2FIvcvwo/qiAKhH3RLwImgdRzNzrc9+VoKkbyv
         0n4X9GR9x+rzMgCTFPnSSVa++9meNGdPoVL0GEBgqILzWq1/LE9LXNeJzS7cEnXofLF6
         7EZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765298578; x=1765903378;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=89Exxs1OyuSXYhr/oXQrEFwy7hr4/0VpdHto8cY1AF8=;
        b=FEngcEc5Ku0G4OuBQyyG55H/AO/QNILCj4Jbk14gr5CNS7yiPNaZbRC+vKOW3GnFqG
         3vfI53tsags1SD6ty+Ii+TXLwFiOi3WVVNoRop1SuADJgj/zY5tPMGEfylBS2AfJOVRl
         43I9vTHFx30oWB1c+dU5BqCgRUXro5Mt8GH5ohsP7vSEVnviCjsP2a/U+YIC3RJwnU1N
         Wgp+cz95WkAL6bcd+9kzIUsOej7XXK4ycC2wFzlPsORjFUE+dsdEMB+6R1brf4tWsUUt
         9aqit9OaiqGsFNXhHo692QQn3PUmdYgkN440Ck3T74H8tYN2SLCnCEC5TJsT7kLnFQx2
         E1aA==
X-Forwarded-Encrypted: i=1; AJvYcCX06wQyU7BsOIhq8IZbjUZbOxPblUhLsYbobfWaNo6bf5MkwCiutS0EreUH5UoHZjlxfVBxRKYMIU4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzs0dH14sgSQtvRSVDw5lFysOwkADQzVo2hu57x65/MiU7BVTEi
	jd6KtcdkMfPkvT+sreTHJySiEB/4gZzTOVYvhqBKfFx7F6rPliCGZlqR+UKQFMt30Q==
X-Gm-Gg: AY/fxX6AB12vQDwc56oX/qNkKoLfHuw8hAD4HY7qRRq8jnvx7DE8Dpfk7WfTCtpm6QU
	f0f/KAqGb2U6+e46+VwHgvPyZd9zDH1BZ52Vw9t6g5d3t7Z9nl1PB5pvj6zs0cNP1V2OjJDseEC
	l1pFIuDbd/hIM+Iqy1Jb+GUrINICpBYz1aPYXHFrTRoG75CjnjrUjUEJUwtzPleTF8QM+x9IYaI
	hKdCRKAvuzQzykmnBvqIRcBrjBlpxsFBe3zCrTEZId9aXLHFoQOH8HhVpn+Nv4IZ1vraqsskYTd
	clc8ErsS6UtRZ5KrqvTfzxXUxU6IbvrWSlaX7t6r1YMoesiPKdRSW/Fk7T1Ar40rgwJKK9By0s9
	0234Ptp5mgBkatg3rnJDCd7mtaEsuT+BYIaGtQTQAlrPt3Vsmsxh3gqAxPyrPxOUptc1JdLsR1l
	NfX32+nqnHA9Be/YITlcDmKzkrinlARz13HZxd+Khbmb/9D9K15dvpo/n9T7Dq1VST1mr4tH1G6
	7M=
X-Google-Smtp-Source: AGHT+IGz2MPDkrczO5Dk5cQrVTdvjTBIThd1ZtMKCV//NcZqWO3K6mcktnA+FiuGaryTszMhA7dJ3Q==
X-Received: by 2002:a05:6000:2f83:b0:42b:3ace:63c6 with SMTP id ffacd0b85a97d-42f89f0c50emr11771807f8f.16.1765298577797;
        Tue, 09 Dec 2025 08:42:57 -0800 (PST)
Message-ID: <e15dd08a-cdf0-4a3c-ac98-d0652eaebd90@suse.com>
Date: Tue, 9 Dec 2025 17:42:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pv: Unhide writes to d->arch.hv_compat_vstart
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251209155719.2098440-1-andrew.cooper3@citrix.com>
 <147c917d-5ec4-4134-b531-3483d445283a@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <147c917d-5ec4-4134-b531-3483d445283a@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.12.2025 17:06, Grygorii Strashko wrote:
> On 09.12.25 17:57, Andrew Cooper wrote:
>> --- a/xen/arch/x86/domain.c
>> +++ b/xen/arch/x86/domain.c
>> @@ -891,7 +891,7 @@ int arch_domain_create(struct domain *d,
>>       d->arch.emulation_flags = emflags;
>>   
>>   #ifdef CONFIG_PV32
>> -    HYPERVISOR_COMPAT_VIRT_START(d) =
>> +    d->arch.hv_compat_vstart =
>>           is_pv_domain(d) ? __HYPERVISOR_COMPAT_VIRT_START : ~0u;
>>   #endif
> 
> Any chances it can be moved in pv_domain_initialise()?

Probably, but one thing at a time? The field itself would also want to move
from struct arch_domain to struct pv_domain, I think.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 17:09:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 17:09:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181982.1504934 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT1DK-00026H-T0; Tue, 09 Dec 2025 17:09:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181982.1504934; Tue, 09 Dec 2025 17:09:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT1DK-00026A-Ps; Tue, 09 Dec 2025 17:09:26 +0000
Received: by outflank-mailman (input) for mailman id 1181982;
 Tue, 09 Dec 2025 17:09:25 +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
 <SRS0=R0hE=6P=ariadne.space=ariadne@srs-se1.protection.inumbo.net>)
 id 1vT1DJ-000264-Hf
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 17:09:25 +0000
Received: from outbound.ms.icloud.com
 (p-west3-cluster2-host12-snip4-10.eps.apple.com [57.103.74.103])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ce3a6ef4-d521-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 18:09:22 +0100 (CET)
Received: from outbound.ms.icloud.com (unknown [127.0.0.2])
 by p00-icloudmta-asmtp-us-west-3a-100-percent-1 (Postfix) with ESMTPS id
 AC8A418011E8; Tue,  9 Dec 2025 17:09:19 +0000 (UTC)
Received: from smtpclient.apple (unknown [17.57.154.37])
 by p00-icloudmta-asmtp-us-west-3a-100-percent-1 (Postfix) with ESMTPSA id
 9B2EC18000AD; Tue,  9 Dec 2025 17:09:17 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ce3a6ef4-d521-11f0-b15b-2bf370ae4941
Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ariadne.space; s=sig1; bh=2Waf4NGfJpwjFcaXQ3o7PK0yB3PmgJFulZncjz1uAQQ=; h=Content-Type:From:Mime-Version:Subject:Date:Message-Id:To:x-icloud-hme; b=SUt5KYXH7DvUKX6LBDSv3iTvARxy6G9AEUvtTlqYnuAt3TrUGc2D+uyRygo8lvCXirPkadsscgbbsdyfL7N53gXsDkTnevO5PFne5YzDZNWdUY5hnrFszwROdrpU2+d2S0OSCSDGmu62WPo12Fbve7y98Q8iyg+Nx+X+LAO7vrvB0c9fqY8VnVyBBZQyuL5GxmgetQtyAZXjwOySGEx7S1VApv14okK73QLzVbTWWVmYlIpE+HoFQph0LGbVrrDQ7Qeq350cSp8kULElY7y5aWnCt7h8wek+u+quoscDnYiqstHR6Xs8twMC0CMVQg+EE9oc6Mg+8seVAm0RDWHafA==
mail-alias-created-date: 1688796967087
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
From: Ariadne Conill <ariadne@ariadne.space>
Mime-Version: 1.0 (1.0)
Subject: Re: [PATCH] 9p/xen: mark 9p transport device as closing when removing it
Date: Tue, 9 Dec 2025 09:09:06 -0800
Message-Id: <BD7157CB-3064-4194-ABD9-8A4D9F57E908@ariadne.space>
References: <409cccec-15dd-4e80-ba56-f0bba12772cb@gmail.com>
Cc: v9fs@lists.linux.dev, xen-devel@lists.xenproject.org,
 asmadeus@codewreck.org, linux_oss@crudebyte.com, lucho@ionkov.net,
 ericvh@kernel.org, Juergen Gross <jgross@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Alex Zenla <alex@edera.dev>
In-Reply-To: <409cccec-15dd-4e80-ba56-f0bba12772cb@gmail.com>
To: Demi Marie Obenour <demiobenour@gmail.com>
X-Mailer: iPhone Mail (23B85)
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjA5MDEzMCBTYWx0ZWRfX8lMlJlwmH5WR
 fVIpI0yiHEd4Cb3VwpObNDwkTK0SX9Rh9t/YT/7ycNt+rdyZ2VHZkK90RvfFsolx0eoxJoacZf6
 nLrYlcVDqDSVJgME4iM2UHpdeum6XAr/6yVg8AfS+JV4iVl9OyjuQcY11M2Uh0pbK3lvGTeEiQn
 rNX5mrs52UX0tiHb9Ml2cMAn0p4y3LHjzTaToSATlTXr5bFahN+VBzWrLEgfPZucRbelrmZkiy8
 i0LKblfMNqktiad0b5EAz+BWj0p5zEbwWnhwPSIYerxNvjbVkRi3AMTe9J1W3AeoPWzc5lqBoX+
 3JXeOQE0sec00Tx7uhJ
X-Authority-Info: v=2.4 cv=MYRhep/f c=1 sm=1 tr=0 ts=693857c0 cx=c_apl:c_pps
 a=qkKslKyYc0ctBTeLUVfTFg==:117 a=IkcTkHD0fZMA:10 a=MKtGQD3n3ToA:10
 a=1oJP67jkp3AA:10 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22
 a=pGLkceISAAAA:8 a=HZpLikwPdqgVQqDg3OYA:9 a=QEXdDO2ut3YA:10
X-Proofpoint-GUID: 4zPfDsAWTni_0hPDC8h7Hqj2HGICPk-S
X-Proofpoint-ORIG-GUID: 4zPfDsAWTni_0hPDC8h7Hqj2HGICPk-S
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-12-09_04,2025-12-09_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 clxscore=1030
 mlxscore=0 phishscore=0 mlxlogscore=999 adultscore=0 malwarescore=0
 spamscore=0 suspectscore=0 bulkscore=0 classifier=spam authscore=0 adjust=0
 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512090130
X-JNJ: AAAAAAABIspwEJwcHlLJ41pAALdNpZgmbkhqoWvZAGrU6f65dZCwqh+nTwsAAhktrvrx5G8Lrmy1lf1Yk7GbOhREkLbQe2y9VCf8cvcPrQcDxNeKu3IQPSnNQOR2HjPASmoyNQkgvcngYTWw24S8S8qhdC9VVWExt4f1MweR+4DBWdLnTsdgQg8MBdl7LdQ3+W+P3opfVR4eg1631gTjLcSMsSAbM6u9VphVdbl09n1WvYsa/chNmE5FQ+uFb9ubIvCHWeoQ+2gqjouc9BaGNPP9zLBUa/M2riSRQodDJGTvp11makAfTATk0HIlH+3h4IbYfk6E5f9Qy1ZwVyVYbTEtKFmOQl5a0be9nHtv8GVfDZHc4RhKE80eb7aZbVvwoEaObgqMP8uD4FmXXgH24xahowgbySI9mpKFTxGE5vuBZS0lbdrOUXaFwbe9ZajsfJ/N0nqy2E+i+vU9VfdOtneYck4tacBJXN+Lbph518UTZRMFO+6pK84GgKDGmmXBd483PlgRlOn+Y8krsAkHMIOl1O9e/VJZL9axXfwcduEFGsiDAqrrjg4bf5KUm5quolFfn6s/rY8nuoE2ei3RaNKQNVCerHqkuMVigdUovNGgHCHYr7j1pOULrte/DDZh/1wGZyk8Wn/rH8HMQDqsU9tz4cSbkMjWKuqCsF6FuM3CsKXjjFgyfLS14f9ra5SXtWc6AjTBdBjQbbpTA5lNB+Vo9DscGZk/GQcbonTB9FIij6nWxzeOpSEVMC3O

Hello,

> On Dec 9, 2025, at 2:43=E2=80=AFAM, Demi Marie Obenour <demiobenour@gmail.=
com> wrote:
>=20
> =EF=BB=BFOn 12/8/25 14:51, Ariadne Conill wrote:
>> We need to do this so that we can signal to the other end that the
>> device is being removed, so that it will release its claim on the
>> underlying memory allocation.  Otherwise releasing the grant-table
>> entries is deferred resulting in a kernel oops since the pages have
>> already been freed.
>=20
> I don't think this is sufficient.  The backend can simply refuse
> to release the grants.  The frontend needs to ensure that the pages
> are not freed until the grant table entries are freed.  Right now,
> the backend can cause a use-after-free in the frontend, and my
> understanding of the Xen Project's security policy is that this is
> a security vulnerability in the frontend code.
>=20
> My instinct is that the core Xen code should take a reference on
> each page before granting it to another domain, and not release that
> reference until the pages are no longer granted.  This should prevent
> any use-after-free problems if I understand Linux core MM correctly.

Yes, there are other issues in the 9p transport that are likely in play here=
.  In our internal testing, we confirm this is not a full fix for hotpluggin=
g 9p transport devices, but no such claim of a complete fix has been made he=
re or in the Matrix thread.

However, this is one defect that is contributing to the overall hotplugging p=
roblem and should be merged regardless: if the driver isn=E2=80=99t telling t=
he other side to disconnect, the other side will never release the grants to=
 begin with.

Ariadne


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 17:10:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 17:10:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1181987.1504943 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT1Dv-0002rE-4n; Tue, 09 Dec 2025 17:10:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1181987.1504943; Tue, 09 Dec 2025 17:10:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT1Dv-0002qc-1h; Tue, 09 Dec 2025 17:10:03 +0000
Received: by outflank-mailman (input) for mailman id 1181987;
 Tue, 09 Dec 2025 17:10:02 +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
 <SRS0=rCN0=6P=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vT1Dt-0002Xq-WB
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 17:10:02 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e517e678-d521-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 18:10:00 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-6418738efa0so10391355a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 09:10:00 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-647b2edad10sm14300377a12.9.2025.12.09.09.09.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 09:09:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e517e678-d521-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765300200; x=1765905000; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=oaSGgoAW1hCnthIvUzdOaTGDvHd8cPDHsMIoTvubhEc=;
        b=hTrohlvhkl6iGdSUVZX3P1lCQE6qVaeR0CP1Lihmc1ffTztVCqwKnkruRFt6S3DqOq
         Yp31ayUML/qikcLAnR+hSS53LdisUv+fOaa6ocD7jF2OGYs/wB9TWclLeS3621JdSHPe
         WLm8v6DfFQDx6oTMW2F69si8MqHBXAkHhhO6XVUvTn83hJVaPwDPDSHC7yFrNDRF/ABf
         /eI22BdSE/on1KfvwbIulvy6Pw1RDy7B9zVktXQHzvONJ/chs7ZaKQS/r1wyIlokmUrf
         QrHGUjP7IqqOAliaqwIVTZ+okghgRw57IEV1Vaib8wooYS8qd9heaR/uMRQHgQTABTLK
         aMng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765300200; x=1765905000;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=oaSGgoAW1hCnthIvUzdOaTGDvHd8cPDHsMIoTvubhEc=;
        b=U39s0cr9Ik1G2B/Xp+VNYkxtYZ6BldrE49DC3zmJr/tqAg4l67VcpkbT7hPcAGPeaS
         t8rkDaq8XwBEF83FXOHUwa7yXOOm3+ZyVTs0NIsSU4RlmUqpk2cVvaWyJMNw8Nueds/U
         mHc2DHtZeuuFNQ0PnKr2vVbuhliFlglqGaN/QYfVbcRwCtonIajzLX3LkQHrPWPhNQr+
         JjoUmYivYVbM3mYHDMiCofXO9tQzql01usNvgfUHPf1IxSeDuYP512hdO289q2fsNR4m
         +qtj1bSaLRXT1uwm1MOxAlw6//1tTtlJpQLZcJeFzmpACZWoH5CkmhoGtLQv8cb2df3D
         lkHg==
X-Forwarded-Encrypted: i=1; AJvYcCUfvoCRlKsRz4NH+uUmADrp80Pk5VqHc8/7NkuPRheW/WyblWYdLqrIijOVbtnVz/0My5RqTBO5/is=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzYeFuwWKKYhzHZVw8ItE0ylyUrIV2gT0ZYERdssTA7rhgv5dWu
	UnwiZXANeLD4Wj2OLAoFqgFIvfZAdKye/BzQjOGFEClEmsTD1TZOTqPS
X-Gm-Gg: ASbGncsbhdTwRJRmJB8gDxEie3LEyLLOqQTrSyXh6tg8NDNX+Z55yDH1LzHoWboQC/E
	IWNuNfFvtptK/DafS7LXYuGDcTfo6g2QibAupve326yOEmGcc6a9djWICFfvh9Ywie9w6z8pjjJ
	hhXzYgH73lVyn7Lb+5BRTbGrBueZQV3OW1juCA7nKXZgOHCAR8irj8NCo0O5WT21GLl403lIW5P
	O/4WANgkCbc9aCRpjS2A9AxLBLAFTQSScjRW+0dA14DCinLDVOCFlb074+spf3rWWHRjaOG44vx
	Ejx6NH98W9p9ENaEs+4+7vhPkOyFcaph73ZWtZ0T6DJMbtobGfgu5n5h6kYeCHvLGfDTLlR/m+l
	WrIczmo/FySdmzYUU3g/1YfQUpgcs13md0hyORYjh4jNQyqSQ8IxgGg8xMwfJIU7aV1h0ZH0A7a
	eYE6zm2ugY096rVlxKXHrj8vVp11UF+066hNj63LjbHe9wVedL7G3QV3uT3cgn
X-Google-Smtp-Source: AGHT+IFiNejXPqZCFF7kgjutfJwiiYN1oKp7Y2hqpLFNHSmtqheHa3jDNqTIHeGTsaNaNUakpzYqeA==
X-Received: by 2002:a05:6402:50ce:b0:641:66cc:9d91 with SMTP id 4fb4d7f45d1cf-6491a90f87emr9708939a12.27.1765300199459;
        Tue, 09 Dec 2025 09:09:59 -0800 (PST)
Message-ID: <36be69fb-9362-43a4-8308-1e62be60d27f@gmail.com>
Date: Tue, 9 Dec 2025 18:09:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 19/19] xen/riscv: introduce metadata table to store P2M
 type
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <2c41da84b3e7fb0f6e6c3c856bff6edaf9e1d505.1763986955.git.oleksii.kurochko@gmail.com>
 <889df78f-7196-4b44-9558-fb83f432e18a@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <889df78f-7196-4b44-9558-fb83f432e18a@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/9/25 2:47 PM, Jan Beulich wrote:
> On 24.11.2025 13:33, Oleksii Kurochko wrote:
>> @@ -374,24 +399,107 @@ static struct page_info *p2m_alloc_page(struct p2m_domain *p2m)
>>       return pg;
>>   }
>>   
>> -static int p2m_set_type(pte_t *pte, p2m_type_t t)
>> +/*
>> + * `pte` – PTE entry for which the type `t` will be stored.
>> + *
>> + * If `t` is `p2m_ext_storage`, both `ctx` and `p2m` must be provided;
>> + * otherwise, only p2m may be NULL.
>> + */
>> +static void p2m_set_type(pte_t *pte, p2m_type_t t,
>> +                         struct p2m_pte_ctx *ctx,
>> +                         struct p2m_domain *p2m)
> I assume you having struct p2m_domain * separate from ctx here is because the
> "get" counterpart wouldn't need it. The same is true for the level member,
> though. I wonder therefore whether putting p2m in pte_ctx as well wouldn't
> make for an overall cleaner interface. (But this is truly just a thought; I
> don#t mean to insist here.)

I think it really makes sense to put p2m into pte_ctx.

Besides simplifying p2m_{set,get}_type(), it will also allow us to drop the p2m
argument from p2m_pte_from_mfn().

Let’s make this change now.

>>   {
>> -    int rc = 0;
>> +    struct page_info **md_pg;
>> +    struct md_t *metadata = NULL;
>>   
>> -    if ( t > p2m_first_external )
>> -        panic("unimplemeted\n");
>> -    else
>> -        pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>> +    ASSERT(p2m);
>>   
>> -    return rc;
>> +    /*
>> +     * It is sufficient to compare ctx->index with PAGETABLE_ENTRIES because,
>> +     * even for the p2m root page table (which is a 16 KB page allocated as
>> +     * four 4 KB pages), calc_offset() guarantees that the page-table index
>> +     * will always fall within the range [0, 511].
>> +     */
>> +    ASSERT(ctx && ctx->index < PAGETABLE_ENTRIES);
>> +
>> +    /*
>> +     * At the moment, p2m_get_root_pointer() returns one of four possible p2m
>> +     * root pages, so there is no need to search for the correct ->pt_page
>> +     * here.
>> +     * Non-root page tables are 4 KB pages, so simply using ->pt_page is
>> +     * sufficient.
>> +     */
>> +    md_pg = &ctx->pt_page->v.md.pg;
>> +
>> +    if ( !*md_pg && (t >= p2m_first_external) )
>> +    {
>> +        BUG_ON(ctx->level > P2M_MAX_SUPPORTED_LEVEL_MAPPING);
>> +
>> +        if ( ctx->level <= P2M_MAX_SUPPORTED_LEVEL_MAPPING )
>> +        {
>> +            /*
>> +             * Since p2m_alloc_page() initializes an allocated page with zeros, p2m_invalid
>> +             * is expected to have the value 0 as well. This ensures that if a metadata
>> +             * page is accessed before being properly initialized, the correct type
>> +             * (p2m_invalid in this case) will be returned.
>> +             */
> Nit: Line length.
>
> Also imo "properly initialized" is ambiguous. The clearing of the page can already
> count as such. No access to the page may happen ahead of this clearing.

I will drop then this part of the comment:
+               This ensures that if a metadata
+             * page is accessed before being properly initialized, the correct type
+             * (p2m_invalid in this case) will be returned.

>
>> +            BUILD_BUG_ON(p2m_invalid);
>> +
>> +            *md_pg = p2m_alloc_page(p2m);
>> +            if ( !*md_pg )
>> +            {
>> +                printk("%pd: can't allocate metadata page\n", p2m->domain);
>> +                domain_crash(p2m->domain);
>> +
>> +                return;
>> +            }
>> +        }
>> +    }
>> +
>> +    if ( *md_pg )
>> +        metadata = __map_domain_page(*md_pg);
>> +
>> +    if ( t >= p2m_first_external )
>> +    {
>> +        metadata[ctx->index].type = t;
>> +
>> +        t = p2m_ext_storage;
>> +    }
>> +    else if ( metadata )
>> +        metadata[ctx->index].type = p2m_invalid;
>> +
>> +    pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>> +
>> +    unmap_domain_page(metadata);
>>   }
> Just to mention (towards future work): Once a metadata page goes back to be
> entirely zero-filled, it could as well be hooked off and returned to the pool.
> Not doing so may mean detaining an unused page indefinitely.

Won’t that already happen when p2m_free_table() is called?

p2m_free_table() calls p2m_free_page(p2m, tbl_pg->v.md.pg), which in turn calls
paging_free_page(), and that returns the page to the pool by doing:
     page_list_add_tail(pg, &d->arch.paging.freelist);

>
>> -static p2m_type_t p2m_get_type(const pte_t pte)
>> +/*
>> + * `pte` -> PTE entry that stores the PTE's type.
>> + *
>> + * If the PTE's type is `p2m_ext_storage`, `ctx` should be provided;
>> + * otherwise it could be NULL.
>> + */
>> +static p2m_type_t p2m_get_type(const pte_t pte, const struct p2m_pte_ctx *ctx)
>>   {
>>       p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
>>   
>> +    /*
>> +     * Since the PTE is initialized with all zeros by default, p2m_invalid must
>> +     * have the value 0. This ensures that if p2m_get_type() is called for a GFN
>> +     * that hasn't been initialized, the correct type (p2m_invalid in this case)
>> +     * will be returned. It also guarantees that metadata won't be touched when
>> +     * the GFN hasn't been initialized.
>> +     */
>> +    BUILD_BUG_ON(p2m_invalid);
> I don't think comment and BUILD_BUG_ON() need repeating here. That's relevant
> only when (zero-)initializing the page.
>
>>       if ( type == p2m_ext_storage )
>> -        panic("unimplemented\n");
>> +    {
>> +        const struct md_t *md = __map_domain_page(ctx->pt_page->v.md.pg);
>> +
>> +        type = md[ctx->index].type;
> In exchange you may want to assert here that the type found is
>> = p2m_first_external (as - supposedly - guaranteed by p2m_set_type()).

Make sense, will add the following after type = ...:
         /*
          * Since p2m_set_type() guarantees that the type will be greater than
          * p2m_first_external, just check that we received a valid type here.
          */
         ASSERT(type > p2m_first_external);

>> @@ -792,6 +952,13 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
>>           pte = *entry;
>>           pte_set_mfn(&pte, mfn_add(mfn, i << level_order));
>>   
>> +        if ( MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage )
>> +        {
>> +            p2m_pte_ctx.index = i;
>> +
>> +            p2m_set_type(&pte, old_type, &p2m_pte_ctx, p2m);
> In order to re-use p2m_pte_ctx across multiple iterations without fully re-
> initializing, you want the respective parameter of p2m_set_type() be pointer-
> to-const.

Good point. I will update prototype of p2m_set_type() to:

static void p2m_set_type(...
                          const struct p2m_pte_ctx *ctx)

>
>> @@ -894,13 +1061,21 @@ static int p2m_set_entry(struct p2m_domain *p2m,
>>       {
>>           /* We need to split the original page. */
>>           pte_t split_pte = *entry;
>> +        struct page_info *tbl_pg = mfn_to_page(domain_page_map_to_mfn(table));
>>   
>>           ASSERT(pte_is_superpage(*entry, level));
>>   
>> -        if ( !p2m_split_superpage(p2m, &split_pte, level, target, offsets) )
>> +        if ( !p2m_split_superpage(p2m, &split_pte, level, target, offsets,
>> +                                  tbl_pg) )
>>           {
>> +            struct p2m_pte_ctx tmp_ctx = {
>> +                .pt_page = tbl_pg,
>> +                .index = offsets[level],
>> +                .level = level,
>> +            };
> This, ...
>
>> @@ -938,7 +1113,13 @@ static int p2m_set_entry(struct p2m_domain *p2m,
>>           p2m_clean_pte(entry, p2m->clean_dcache);
>>       else
>>       {
>> -        pte_t pte = p2m_pte_from_mfn(mfn, t, false);
>> +        struct p2m_pte_ctx tmp_ctx = {
>> +            .pt_page = mfn_to_page(domain_page_map_to_mfn(table)),
>> +            .index = offsets[level],
>> +            .level = level,
>> +        };
> ... this, and ...
>
>> @@ -974,7 +1155,15 @@ static int p2m_set_entry(struct p2m_domain *p2m,
>>       if ( pte_is_valid(orig_pte) &&
>>            (!pte_is_valid(*entry) ||
>>             !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte))) )
>> -        p2m_free_subtree(p2m, orig_pte, level);
>> +    {
>> +        struct p2m_pte_ctx tmp_ctx = {
>> +            .pt_page = mfn_to_page(domain_page_map_to_mfn(table)),
>> +            .index = offsets[level],
>> +            .level = level,
>> +        };
> ... this initializer are identical. Perhaps (sorry) it wasn't a good idea
> after all to move the context variable from function scope to the more
> narrow ones?

Probably, but I’m not 100% sure that making it a function-scope variable would be better.
Essentially, it would only help eliminate the last two declarations of `tmp_ctx`:
     struct p2m_pte_ctx tmp_ctx = {
         .pt_page = mfn_to_page(domain_page_map_to_mfn(table)),
         .index = offsets[level],
         .level = level,
     };

It would also require re-initializing (or as an option it could done once after the
superpage breakup happened; please look the diff below) all the fields (except the
newly added `tmp_ctx.p2m`) inside the case where a superpage breakup is needed:
     /*
      * If we are here with level > target, we must be at a leaf node,
      * and we need to break up the superpage.
      */
     if (level > target)
In this case, `index`, `level`, and `pt_page` will be changed.

It seems slightly better to use a function-scope variable, so I can rework the code to have
the following:
@@ -1049,6 +1047,8 @@ static int p2m_set_entry(struct p2m_domain *p2m,
  
      entry = table + offsets[level];
  
+    tmp_ctx.p2m = p2m;
+
      /*
       * If we are here with level > target, we must be at a leaf node,
       * and we need to break up the superpage.
@@ -1064,11 +1064,9 @@ static int p2m_set_entry(struct p2m_domain *p2m,
          if ( !p2m_split_superpage(p2m, &split_pte, level, target, offsets,
                                    tbl_pg) )
          {
-            struct p2m_pte_ctx tmp_ctx = {
-                .pt_page = tbl_pg,
-                .index = offsets[level],
-                .level = level,
-            };
+            tmp_ctx.pt_page = tbl_pg;
+            tmp_ctx.index = offsets[level];
+            tmp_ctx.level = level;
  
              /* Free the allocated sub-tree */
              p2m_free_subtree(p2m, split_pte, &tmp_ctx);
@@ -1097,6 +1095,10 @@ static int p2m_set_entry(struct p2m_domain *p2m,
          entry = table + offsets[level];
      }
  
+    tmp_ctx.pt_page = mfn_to_page(domain_page_map_to_mfn(table));
+    tmp_ctx.index = offsets[level];
+    tmp_ctx.level = level;
+
      /*
       * We should always be there with the correct level because all the
       * intermediate tables have been installed if necessary.
@@ -1109,13 +1111,7 @@ static int p2m_set_entry(struct p2m_domain *p2m,
          p2m_clean_pte(entry, p2m->clean_dcache);
      else
      {
-        struct p2m_pte_ctx tmp_ctx = {
-            .pt_page = mfn_to_page(domain_page_map_to_mfn(table)),
-            .index = offsets[level],
-            .level = level,
-        };
-
-        pte_t pte = p2m_pte_from_mfn(mfn, t, &tmp_ctx, p2m);
+        pte_t pte = p2m_pte_from_mfn(mfn, t, &tmp_ctx);
  
          p2m_write_pte(entry, pte, p2m->clean_dcache);
  
@@ -1152,12 +1148,6 @@ static int p2m_set_entry(struct p2m_domain *p2m,
           (!pte_is_valid(*entry) ||
            !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte))) )
      {
-        struct p2m_pte_ctx tmp_ctx = {
-            .pt_page = mfn_to_page(domain_page_map_to_mfn(table)),
-            .index = offsets[level],
-            .level = level,
-        };
-
          p2m_free_subtree(p2m, orig_pte, &tmp_ctx);
      }
  
@@ -1363,6 +1353,7 @@ static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
                  .pt_page = mfn_to_page(domain_page_map_to_mfn(table)),
                  .index = offsets[level],
                  .level = level,
+                .p2m = p2m,
              };
  
              *t = p2m_get_type(entry, &p2m_pte_ctx);

Does it make sense?

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 17:11:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 17:11:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182004.1504955 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT1FI-00046H-Kt; Tue, 09 Dec 2025 17:11:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182004.1504955; Tue, 09 Dec 2025 17:11:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT1FI-00046A-GE; Tue, 09 Dec 2025 17:11:28 +0000
Received: by outflank-mailman (input) for mailman id 1182004;
 Tue, 09 Dec 2025 17:11:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nu2q=6P=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vT1FG-000458-Sy
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 17:11:27 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 171f3c1b-d522-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 18:11:25 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV3PR03MB7706.namprd03.prod.outlook.com (2603:10b6:408:289::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 17:11:20 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 17:11:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 171f3c1b-d522-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=a2Ah5Xl9HNxXhMYAvsRKehfEtfErYe2hIh0LO9kQiWFb93oP6zIGgjwBXFwov6x5Pm/TtN9N9QaIEuAAdoOtqqDhzrklJF6Yt4nE9iKEKsUKF4uyTeGZz62+VXtKVvVoU4W5PWCrIv6Le6BktonLFBPl+HRc2w1SAhFwD+GB14hqSu2XvsHp9v1PJVWLpN67u7DJNgoS5GV+MT8JO0nDQEcL0bICq7GTnAFLTlHIILXFUUku8VTSNYPlvsqIhCiV9o/5zX7GKs+m9p59+wbsJAaDlA66z7Td89TT6MPutbXYn7LQ/GUSWVbwMttsDjKILPsmWcw+0oPf3zVN+mT3Lw==
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=v6QRlRnOOWb0fT8WCiHNQNF5kN9b080mQBdOP1l46TQ=;
 b=ygK/MO0rFY54QpwcAQ+qc4ZOscgnqUiBiUzvLXlOrVgHfg9jvlxiybFJi1pVEcoHcPk4Ltr8BXM1+QYrDppyd+LTXZMxCiWt7f8j+LX4tWfXktDxnXRfcbcRb5wyncTN5b3wJDXREfvRDg3fcZodjJXOhy+SggBfoviK/MJb/Zpz9/s2+HhWAEhHw+WdXqcW6hVmyvYhnrWsXb7Sl3kYoVuaiAloBXerXJJ4nz7GTZxZSyqs+HIpzx73SInIGILcSVZKfkXPgfpmcdnZ4v6KpaUsbfsT2VsWIybE0RRoIB26LqMKJ8GZgu6KaGWetzIwwtxS/15c7f5XjTrCi7/o0w==
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=v6QRlRnOOWb0fT8WCiHNQNF5kN9b080mQBdOP1l46TQ=;
 b=tcj7OQyis0EMFmmNPi2FtNI5X2sSkqoGIqyeywtrPuQUU4LlC0pnNw/KpEvuGX58cCM+5MUvFCl2uZE2XqzA5U1m/2tqCoMMnWQLlPlEXk7VuQjsgGcTyr0yGN3k3rw4uGNllUgDGNPFEBxX5M76HFnNLKhDSLK1BLv3jsTrvdI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <2a9292dc-0903-43db-9646-437c6c2ed9eb@citrix.com>
Date: Tue, 9 Dec 2025 17:11:16 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Grygorii Strashko <grygorii_strashko@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] x86/pv: Unhide writes to d->arch.hv_compat_vstart
To: Jan Beulich <jbeulich@suse.com>
References: <20251209155719.2098440-1-andrew.cooper3@citrix.com>
 <79fd0f6a-8fbb-433e-9c74-3da339301b96@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <79fd0f6a-8fbb-433e-9c74-3da339301b96@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P265CA0514.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:13b::21) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|LV3PR03MB7706:EE_
X-MS-Office365-Filtering-Correlation-Id: 21cb020c-1222-471f-6881-08de3745f8b4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VzlSMEEwbEhaWkhQRUk5VnlqVjQ4clIvR0pmY25LVU4rMlNuazlvWEhma2VZ?=
 =?utf-8?B?QjJWZU5DZmRRSG5lV3dXblp1RUl6TVFrcjFkWXYvUFZFWGdlRldnMnBnRlFU?=
 =?utf-8?B?Y0ZTSTBUVis2RzdlTEJtOStMNW9RdmFJaGJwNytGYUF4NGI2Wm4yYmNuZFIw?=
 =?utf-8?B?T0t6MjJ0bkVKQnUwU0FNNGVXV2tiL0N1bDRISWYzVjdCR0lIN2JVdnJ1MWdD?=
 =?utf-8?B?RitvVmREMVNuOGtsRnJjdkc3SkRzbVVhYm5pM3FuSXI1Y0FNVzN2VnQ2aUxR?=
 =?utf-8?B?cm1sMk14RnpNZnNWTkZ2c1ZlenM1VnNSSHF1OGJQbDJWeU91R21DNEpkdjhk?=
 =?utf-8?B?OURSREtBa3ZlQTdtS3JvcHJoSmNmV05WbWhCWjVqcW1tWlYreVplQ0Q5SWZa?=
 =?utf-8?B?MDdRQnFqYlVnQndEeDRDeXMxdjkvY0pmRWlNQi9ZSjJrbWJJY3o2NkRxU013?=
 =?utf-8?B?azVTWFZSS1Q3aXR2R2FUMU4vTnBxc1FSQnVJVHFtaVBNdjF3SDlNcHpUeGdW?=
 =?utf-8?B?RitYSE1UTXQzUHhnd29hV0pSMXUrRG81Y3NqSGJZS0RqdGUrWFBsdGQ2S2tm?=
 =?utf-8?B?YVVsM2poaXpwdHNTTVhjK0J4NThIelVHbms4UXFlNFkyOC9BNlg2ZlI1eUlY?=
 =?utf-8?B?VVVZM3cyU2U2eVRwMEpWRlJtOG5oYUxKaHBaNFRhNHhaOUVhSEhBeG1ES2dk?=
 =?utf-8?B?ZFlBaUh6bktjendGZWh1aTdTZWMzVXVWb1NkVFpEaEhGVDYyVW9NNG5NK0xL?=
 =?utf-8?B?T0NUTjVWcnVPbFdza0FvSlBub1lDdnFMVzBaS0F5aytlRklkVUtrSmI1TVJ1?=
 =?utf-8?B?bXhpRldGMmNJekhhUmk0ZUxLZkNPVGgwWHFBbXBTZDRmOVhHenlaR0lodXFa?=
 =?utf-8?B?bjBIK0ZrQXNnQU4zRHgwZkdiM2NlNmZ4KzBXdEd1L3puNmpmY21yVGlodFpl?=
 =?utf-8?B?V2QvNmNjRkpudGRMWHJ2RmplUkZwcVNRSmdxRGowTWhOSGQ2dVRSaVhuOVBr?=
 =?utf-8?B?OVY2eEFwZ09vekJRYi8zdHhYZm9jZDlZU1piaCtHU09VN3hNSlVMaURwSHJH?=
 =?utf-8?B?enQzZ2ZoV285OTR4TlpQRzMvWGNKanpPRVVxYWNmaEtvc3ZpVmlVWHhNTDQy?=
 =?utf-8?B?SWRFZURiS0Q2Q254SmI3bWNsZGloMmU2ZC9JZURUdUhydkE3U0tEREV0M0RB?=
 =?utf-8?B?ZFQ1Tms5NUFmTXh0VjdFVFVlMUI3MDdubGFIK2xWZU5UaGdTc2ZreGxEZXVW?=
 =?utf-8?B?UmQwcFROUG9rMnkwTEVReEM0bG9YSzVmay9MVkkvNGJBVkZLYytwR1RVNEFN?=
 =?utf-8?B?ckRNUUllQkZqcU1va1FkVXZua3EwNW9yNndGMW00d3ozMCtnL2FVbEE3cTA4?=
 =?utf-8?B?dUNaOUtKWnA3SFUvK1N0empJaUpJcjFpV3R1aUliOHlxSHV4eTYyaFh6MDZi?=
 =?utf-8?B?bkNhTHBaMFlmU2dHRmljSjlPRGNNZEJzZE9IZDdYRmNXdk13TERmdTB0OXI3?=
 =?utf-8?B?Q1M4dit6NTFzVWpHcTc1OE4rbFJwM1VpN2d1YUVwL0JmRUl3cHdCWHlhK0du?=
 =?utf-8?B?c29TYW4ranNFZ3FodnRhUjgzL01LUExyT2RDTG9NY2VoaFFyQnQ0RDRwdjl1?=
 =?utf-8?B?WkU0R1hRdDVwZzE1bFlmVnRmUXlwYW5aamNBZjhNQ2dKdFB4aGFrVFl5RitE?=
 =?utf-8?B?V0VKTGtieVNZQXJWS3RsV3F6UG1OajBVZGZINUVIMi94QzM4V1YremF2am9I?=
 =?utf-8?B?Ri9yTTJGMVh5MmhMajZJaWZGa3VYYWZUU290NkljS21rUlA1dnlwQktLTCtZ?=
 =?utf-8?B?R1JhWXN1a3lJMTRtdHFtaTNOS1pZd3N4TjQzZUkwMm4wZ2dBYkh6UWt6dE93?=
 =?utf-8?B?RWxYVjBLbkVBc2xaOEY1SmlLdXZVbThnY1ZidkZCNUR1YlUwc2NBOUZiclJ0?=
 =?utf-8?Q?US4VB/N/k4KKZbEZUZm9rQ6ukPd1Bumj?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aFJvMnBpZFRMdGdMcFVYckhXendQYmh3SUxkMEpCSXJyR1dWY2MxUUY2S05U?=
 =?utf-8?B?WHprRjFvUmVQOUt1UXFxYWlsQzFtRE5FWVZjVXZCUWFVd2FLcloxRWxkUG9T?=
 =?utf-8?B?MVhCL0IreXI5dXhScEh0citaendWaGtpOVBDaVhvSFRXSkg2WitkazR2eFNC?=
 =?utf-8?B?TzVZNWJzbDU4N0lsSDlkTXJIWHg0TVdkR2FSQnEzeHQxY2R4WnQxVFdlajMr?=
 =?utf-8?B?bFZtMzE5V0dERHdzdUdzWklQUTBYbmdQVHd2S3RCdDZ0SjFBM28rRVdrSUlw?=
 =?utf-8?B?Q2VzSFVHVkQzUERaVzMwVndLcHRRZExDVkhLL1k2MG5DUlpPajR2N1djWWlI?=
 =?utf-8?B?WXl3ZWREdzhtL1hQZFMwWG9Jdk5TZHN0V3ZkNTVkcFRBSmJackJPMEJCRkk5?=
 =?utf-8?B?eEZRTW1KQTdEbTRvTW5pWmhDaEVwMnp3ZmkwWENEOGRLMmwxN0V3RnFycE5X?=
 =?utf-8?B?QkU1T2YrOFNIc1pvaURuOUlSK2lYRHNxc2dWZVJ1QUk1SCtyeDVzNWZKRmNM?=
 =?utf-8?B?OGVWZ3hoN1BXZGNweTA5dDRRci94S3gvODIvVjdEWC96L2djOFJueUVRaUl0?=
 =?utf-8?B?YnNTMDlHZktGRmpUTmRIR0tyM0RMVW12WG1oU29iQXVPRk05WkpvR2FleDM5?=
 =?utf-8?B?STJGTWx5bllrVVF2VFJSdFU3SHZCTk5zSmhLNmxabHB6dm5XVllkUTVZVERB?=
 =?utf-8?B?anM5a2YwdCtMS3NDa1UwQ3YwQkZBb3dCZVNKR3FVYzZnd0lPK0ZwUTBkWjJQ?=
 =?utf-8?B?b3RqOG5HRW1RYk13bEt2NEJ0N0JGNkFldlVjRlZHSEtXZno3VG1NU0t0eFB3?=
 =?utf-8?B?UXBwNEVLeDY2S1pXcnFWZW5kTURsb01vVHltbUw1cnZRem5SNk5HYVVSc1hN?=
 =?utf-8?B?dFVHcXZNUUF3QjZ0WGorTldaUjlQcGgxV3dsYTZZV2xtSFhQeTlvL2xDRjB5?=
 =?utf-8?B?WlRtaWdXV2RackR4WFhyeUl4eVlkYUpmM0dyWENmRHE4QktTMFliQVpwMjkz?=
 =?utf-8?B?bVVvUWNGcWNrNkJ5SEZQMFhJYk9TQVNUQ3lEMmoybXlLUk9yTU92Ym40MGtp?=
 =?utf-8?B?OHVhY1FXNTdRNng4ZDd0VEZvWXFoQzJZWXNtNkExQ2ZrUG1aVGdhejNnVGRm?=
 =?utf-8?B?Yngrb2cyMG9DbmJPemZHRHI1SEZlSndxZEJVd05NeXc5ODN3QUE4ZXNUZERZ?=
 =?utf-8?B?OG9OU3BpelFyNmR5M09UVFVlNXhoR0pEM0ZKY3RnQnZlNDVpK3U2Qkk3VDkx?=
 =?utf-8?B?MGVGdG8xTVNhTGc4K1BXcm1pMU9OSkdzc2pFUVVuRm1hcGt1WTQvNGRBRlU2?=
 =?utf-8?B?RkI1eG1VTGxEVmNqV2JUMjZWalV2enBiSUFPL0N4a0w2a01oSG41MkdyTlVQ?=
 =?utf-8?B?Q0FXQkRHZ0V5SW4wSFpvclFpam5mbDBXck1BNTNwQkZwNE1VRzlDcW9SeHN5?=
 =?utf-8?B?VW9vU0o2NXRhdHdLcXpGQSsvQWVORmJnd2ZZY3pWSjFHdDcvMnJZVjVTZFRZ?=
 =?utf-8?B?eUl1QjgxMklKbWllU2ptcnhTZjhvYkhjellmU1hUVTJCbFdZQWZJMUU5RVc2?=
 =?utf-8?B?T045REMxZlRBVkFwUGZNTFQ0TFZUUlNCUWFPamhGS2o2L3pMdWJtUVFISVNR?=
 =?utf-8?B?enFwblJXTFRrQllKSUUxcEpxZ3oyY1A1ZTlGOS9pcHpNNVk2TXc0bDRvLzdT?=
 =?utf-8?B?SkFqVEo5VExGOG0xTWJneWNEL3lxZFJjZEVIemFsZjJzV1NqTXFzeXR1clBo?=
 =?utf-8?B?TlJQYkM0OER5cHZPUk9UcTdZVnlCbzU2ZnhCektvVjdlQzhNajNWbXVwVjR3?=
 =?utf-8?B?ZEQxZVFwNlU5c0lNQXRzUmdXNW5qdVVZZDlLV0RrYmMzOUVSdFd1alUwQnFx?=
 =?utf-8?B?OGlxL0hjVXpJU2Y0UHFIVHdhT0pvektHb01oZ1ZFUTJMbUtER1lHV1lIcmxY?=
 =?utf-8?B?ZEhvQmx0LzdTVWt3aCtZaEVBOCtkSkVHV3g3R2Q3bnFDbGFrLytqWXdJVXU0?=
 =?utf-8?B?M00xZ3diTjIzM25tQnNvOTE1Q3gwTkNwTzBPVlJkeERFNElqYjY0OXQrTUp2?=
 =?utf-8?B?S2NFeWF3T2xmYSs4cDBpbUdDWkJmME8rczZvZXpQOEFxUUQ2ang1WHVYK1Ba?=
 =?utf-8?B?eXN2YlJCRldmMUdpTUpTMHJnekdjYW1RaWNIZFMvNjVIM1RJWGltemFIaHNC?=
 =?utf-8?B?K1E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 21cb020c-1222-471f-6881-08de3745f8b4
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 17:11:19.9978
 (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: 2YA9170VRX4VglaAA3jUmEtuRPlTQvUf8X47yunureJdIb0u6vKhIc+5p9/Z2gsrO+2XMWY7+l8K0EAwem58xQFo72OqYXNFy+Y+KGICa1A=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR03MB7706

On 09/12/2025 4:41 pm, Jan Beulich wrote:
> On 09.12.2025 16:57, Andrew Cooper wrote:
>> The variable is never 0, but because the writes into it are hidden behind the
>> HYPERVISOR_COMPAT_VIRT_START() macro, it does a good impression of appearing
>> to be 0.
>>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> I don't kind it being this way or the original one, so
> Acked-by: Jan Beulich <jbeulich@suse.com>

Do you mean s/kind/mind/ ?

Thanks,

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 17:12:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 17:12:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182016.1504963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT1GQ-0004fa-SA; Tue, 09 Dec 2025 17:12:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182016.1504963; Tue, 09 Dec 2025 17:12:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT1GQ-0004fT-Pa; Tue, 09 Dec 2025 17:12:38 +0000
Received: by outflank-mailman (input) for mailman id 1182016;
 Tue, 09 Dec 2025 17:12:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YO56=6P=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1vT1GP-000458-B2
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 17:12:37 +0000
Received: from mail-yw1-x112b.google.com (mail-yw1-x112b.google.com
 [2607:f8b0:4864:20::112b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4138261f-d522-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 18:12:35 +0100 (CET)
Received: by mail-yw1-x112b.google.com with SMTP id
 00721157ae682-78c4aa7af99so27940857b3.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 09:12:35 -0800 (PST)
Received: from [10.138.34.110]
 (h96-60-249-169.cncrtn.broadband.dynamic.tds.net. [96.60.249.169])
 by smtp.gmail.com with ESMTPSA id
 00721157ae682-78c1b779237sm61338637b3.30.2025.12.09.09.12.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 09:12:33 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4138261f-d522-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765300354; x=1765905154; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=bR53BGNZzHUTnTQW5nozFRmIeq8kQI2i3aRfvd0OLpw=;
        b=jBBHYnAWVKaJclbyQ+zTn8hmWZCRjxGKWbKp9rB33MmKI30v7F9mfUZrPTnXvf/Tr4
         yZvErUhOtOzAS/iMv4f3rAfWp8oAzT+KGADsQhPzix4Opf8+S+fdtLZ5j0DieM3DNO46
         yiys3I+KFAnWKIgsuQ5MpwpDtARrsWXY4cwGJ576OE7VSgSI87YeU3EF6y7EdOOacu5y
         OOrfHqjIFP990Tf41TUSI3KWLdKchNP09ftiRVQi0DGb90wmQRG4819IPDwWP+mKEkWC
         rhS9nEhUrmDQaxv/nXwyqRU1hWZ9owsk/xcTzM6+wzXLPBrCNLiNrGiXabHL5sajXjmE
         fdBA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765300354; x=1765905154;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=bR53BGNZzHUTnTQW5nozFRmIeq8kQI2i3aRfvd0OLpw=;
        b=qP+jc9u6BLc7LvIR6SDpHF5QETg0wKC78BeixMaKZQO41BF2wgdTdOPq7ANBlQLu8n
         ZFEjYwyXhwAnbCimpN0GzDZmJYeq/sw8SaQ6G5tuxvB0udRHeuh7JZYoCJDP5LG2CNSq
         6xcy0R/RXeIQa1daOZ6o6Ao/2REg9UEe1wddacYnymlvOtfUr22wh21h0cb54G9JWyph
         NjTenVKp4rJjPbQo8pfdZgruveZb6f2lHTyHCbO7YNmSdWGlhU8Hk8onPfVjin6VP0gG
         iRNjsmihGpbc+iWUCwxeevOBQakAfnmM039auqoT+2vbnV8cjjyq4X5NkGlGCrb7lacb
         L8sg==
X-Forwarded-Encrypted: i=1; AJvYcCWZj19OiEIilAmxlqU8+LNS5qEt5nRL9PUNejowui6AtmkdyFpCWtoUG9+XlpwPztCNcUL2Hsp772s=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzt210GjqJfMhpxXxVdJLC0VgTi6xvgr2UdEX373TJzNNHu+6GF
	bLEkJ8LP+B8fzga1Uta4M1yJTitDgNpVZMQ9xdCiLavcG1F6YP47gRYf
X-Gm-Gg: AY/fxX5OZEmjs9O3cc2YXP8abvM6IwvVzfTyb5PJzh9C0J9J6pmSd9+Q7YyVkW7Zl3O
	aIxgx6GZ6AfHUA0aVrtewwHdnumpCW8GfzQQhlwXJzTFfBoChgn2K5cL4sdSlAdrakr9GBbV0jV
	zL27sEuLaDASA+Jb6YqYSFodoEV1SstTYZZGw9UNjksZ8JhkwNYUszMecu1ISxjYWm3y4goYdoJ
	v3xBo3yOzmAmUPtzkbT4Jbn7y08X7L/Clh+958yFxvD25KrjfsllP38GmDGbXNpuKK5nR6VG+OF
	gCdurHUywEP/sLdd5LxGWpHeZGWF3tgpRjTh0pI/tng4e9DYbjov/fFLHA0aakiD5CLYA8ZXBs5
	xMMRvQcGl+LpofHoEzRvxchE0JpjEtDFauIQBB+dfDvb8xOv4fzaj5GJm4b8KbECxLMr3qmNOOQ
	0u2W3NQQb+BdC/od2VQWZ2fDq1oJgFv4t5QjyDEyu/PnRHnYxl9RfYLLBGCDjBqv9JhfKert4sw
	9Vwjec7jYDPfx3wO4WQ5ZI+kKk=
X-Google-Smtp-Source: AGHT+IEQJW/h4JG5l9YirDjjucXpfMIAOSp6ZFiWcOUmbVqVs0KWAXEYQPEd2kg7QjEDdhzzr3nkbQ==
X-Received: by 2002:a05:690e:118b:b0:63f:b4ee:792c with SMTP id 956f58d0204a3-6444e762773mr11373459d50.19.1765300354021;
        Tue, 09 Dec 2025 09:12:34 -0800 (PST)
Message-ID: <efbab440-cb84-4900-989c-43d0d69b60f2@gmail.com>
Date: Tue, 9 Dec 2025 12:12:25 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] 9p/xen: mark 9p transport device as closing when removing
 it
To: Ariadne Conill <ariadne@ariadne.space>
Cc: v9fs@lists.linux.dev, xen-devel@lists.xenproject.org,
 asmadeus@codewreck.org, linux_oss@crudebyte.com, lucho@ionkov.net,
 ericvh@kernel.org, Juergen Gross <jgross@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Alex Zenla <alex@edera.dev>
References: <409cccec-15dd-4e80-ba56-f0bba12772cb@gmail.com>
 <BD7157CB-3064-4194-ABD9-8A4D9F57E908@ariadne.space>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <BD7157CB-3064-4194-ABD9-8A4D9F57E908@ariadne.space>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------4Oy6bLrQsc0ZiVACdVm37hWU"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------4Oy6bLrQsc0ZiVACdVm37hWU
Content-Type: multipart/mixed; boundary="------------h4qYrSNSXRM44ROuXTpYWvww";
 protected-headers="v1"
Message-ID: <efbab440-cb84-4900-989c-43d0d69b60f2@gmail.com>
Date: Tue, 9 Dec 2025 12:12:25 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] 9p/xen: mark 9p transport device as closing when removing
 it
To: Ariadne Conill <ariadne@ariadne.space>
Cc: v9fs@lists.linux.dev, xen-devel@lists.xenproject.org,
 asmadeus@codewreck.org, linux_oss@crudebyte.com, lucho@ionkov.net,
 ericvh@kernel.org, Juergen Gross <jgross@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Alex Zenla <alex@edera.dev>
References: <409cccec-15dd-4e80-ba56-f0bba12772cb@gmail.com>
 <BD7157CB-3064-4194-ABD9-8A4D9F57E908@ariadne.space>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <BD7157CB-3064-4194-ABD9-8A4D9F57E908@ariadne.space>
Autocrypt-Gossip: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==

--------------h4qYrSNSXRM44ROuXTpYWvww
Content-Type: multipart/mixed; boundary="------------q0p5AUHbSgkaDRQYrkyoICHh"

--------------q0p5AUHbSgkaDRQYrkyoICHh
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On 12/9/25 12:09, Ariadne Conill wrote:
> Hello,
>=20
>> On Dec 9, 2025, at 2:43=E2=80=AFAM, Demi Marie Obenour <demiobenour@gm=
ail.com> wrote:
>>
>> =EF=BB=BFOn 12/8/25 14:51, Ariadne Conill wrote:
>>> We need to do this so that we can signal to the other end that the
>>> device is being removed, so that it will release its claim on the
>>> underlying memory allocation.  Otherwise releasing the grant-table
>>> entries is deferred resulting in a kernel oops since the pages have
>>> already been freed.
>>
>> I don't think this is sufficient.  The backend can simply refuse
>> to release the grants.  The frontend needs to ensure that the pages
>> are not freed until the grant table entries are freed.  Right now,
>> the backend can cause a use-after-free in the frontend, and my
>> understanding of the Xen Project's security policy is that this is
>> a security vulnerability in the frontend code.
>>
>> My instinct is that the core Xen code should take a reference on
>> each page before granting it to another domain, and not release that
>> reference until the pages are no longer granted.  This should prevent
>> any use-after-free problems if I understand Linux core MM correctly.
>=20
> Yes, there are other issues in the 9p transport that are likely in play=
 here.  In our internal testing, we confirm this is not a full fix for ho=
tplugging 9p transport devices, but no such claim of a complete fix has b=
een made here or in the Matrix thread.
>=20
> However, this is one defect that is contributing to the overall hotplug=
ging problem and should be merged regardless: if the driver isn=E2=80=99t=
 telling the other side to disconnect, the other side will never release =
the grants to begin with.
>=20
> Ariadne

I definitely agree that this should be merged!

Is this code-path triggerable by the backend at will, or only during
teardown by the toolstack?
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------q0p5AUHbSgkaDRQYrkyoICHh
Content-Type: application/pgp-keys; name="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49y
B+l2nipdaq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYf
bWpr/si88QKgyGSVZ7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/
UorR+FaSuVwT7rqzGrTlscnTDlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7M
MPCJwI8JpPlBedRpe9tfVyfu3euTPLPxwcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9H
zx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR6h3nBc3eyuZ+q62HS1pJ5EvU
T1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl5FMWo8TCniHynNXs
BtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2Bkg1b//r
6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nS
m9BBff0Nm0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQAB
zTxEZW1pIE9iZW5vdXIgKElUTCBFbWFpbCBLZXkpIDxhdGhlbmFAaW52aXNpYmxl
dGhpbmdzbGFiLmNvbT7CwY4EEwEIADgWIQR2h02fEza6IlkHHHGyiLVf/5wiwQUC
X6YJvQIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCyiLVf/5wiwWRhD/0Y
R+YYC5Kduv/2LBgQJIygMsFiRHbR4+tWXuTFqgrxxFSlMktZ6gQrQCWe38WnOXkB
oY6n/5lSJdfnuGd2UagZ/9dkaGMUkqt+5WshLFly4BnP7pSsWReKgMP7etRTwn3S
zk1OwFx2lzY1EnnconPLfPBc6rWG2moA6l0WX+3WNR1B1ndqpl2hPSjT2jUCBWDV
rGOUSX7r5f1WgtBeNYnEXPBCUUM51pFGESmfHIXQrqFDA7nBNiIVFDJTmQzuEqIy
Jl67pKNgooij5mKzRhFKHfjLRAH4mmWZlB9UjDStAfFBAoDFHwd1HL5VQCNQdqEc
/9lZDApqWuCPadZN+pGouqLysesIYsNxUhJ7dtWOWHl0vs7/3qkWmWun/2uOJMQh
ra2u8nA9g91FbOobWqjrDd6x3ZJoGQf4zLqjmn/P514gb697788e573WN/MpQ5XI
Fl7aM2d6/GJiq6LC9T2gSUW4rbPBiqOCeiUx7Kd/sVm41p9TOA7fEG4bYddCfDsN
xaQJH6VRK3NOuBUGeL+iQEVF5Xs6Yp+U+jwvv2M5Lel3EqAYo5xXTx4ls0xaxDCu
fudcAh8CMMqx3fguSb7Mi31WlnZpk0fDuWQVNKyDP7lYpwc4nCCGNKCj622ZSocH
AcQmX28L8pJdLYacv9pU3jPy4fHcQYvmTavTqowGnM08RGVtaSBNYXJpZSBPYmVu
b3VyIChsb3ZlciBvZiBjb2RpbmcpIDxkZW1pb2Jlbm91ckBnbWFpbC5jb20+wsF4
BBMBAgAiBQJafgNKAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCyiLVf
/5wiwYa/EACv8a2+MMou9cSCNoZBQaU+fTmyzft9hUE+0d5W2UY1RY3OsjFIzm9R
/4SVccfsqOYLEo+S0vQMIIIqFEq3FCpXXwPzyimotps05VA8U3Bd7yseojFygOgK
sAMOAee2RCaDDOnoJue01dfZMzzHPO/TVdp3OvnpWipfv5G1Xg96rwbhMLE3tg6N
xwAHa31Bv4/Xq8CJOoIWvx6fcmZQpz01/lSvsYn0KrfEbTKkuUf0vM9JrCTCP2oz
VNN5BYzqaq2M4r+jmSyeXLim922VOWqGkUEQ85BSEemqrRS06IU6NtEMsF8EWt/b
hWjk/9GDKTcnpdJHTrMxTspExBiNrvpI2t+YPU5B/dJJAUxvmhFrbSIbdB8umBZs
I3AMYrEmpAbh5x7jEjoskUC7uN3o9vpg1oCLS2ePDLtAtyBtbHnkA4xGD7ar8mem
xpH9lY/i+sC6CyyIUWcUDnnagKyJP0m9ks0GLsTeOCA0bft2XA6rD6aaCnMUsndT
ctrab42CV5XypjmC4U1rPJ8JQJUh1/3P48/8sMH+3krxpJ06KNWNFaUbaMTGiltZ
7x9DngklSYrX0T+2G4kVXNmjaljwkoLahwLla2gUWwBSyofXdqyhQdwZsp01KXNQ
UCyT/Pg+aDcm/E7OMV3d4lf7g/CSxiX2GSEe6BlhSz+Lmd7ZJ3g32M1ARGVtaSBN
YXJpZSBPYmVub3VyIChJVEwgRW1haWwgS2V5KSA8ZGVtaUBpbnZpc2libGV0aGlu
Z3NsYWIuY29tPsLBjgQTAQgAOBYhBHaHTZ8TNroiWQcccbKItV//nCLBBQJgOEV+
AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJELKItV//nCLBKwoP/1WSnFdv
SAD0g7fD0WlF+oi7ISFT7oqJnchFLOwVHK4Jg0e4hGn1ekWsF3Ha5tFLh4V/7UUu
obYJpTfBAA2CckspYBqLtKGjFxcaqjjpO1I2W/jeNELVtSYuCOZICjdNGw2Hl9yH
KRZiBkqc9u8lQcHDZKq4LIpVJj6ZQV/nxttDX90ax2No1nLLQXFbr5wb465LAPpU
lXwunYDij7xJGye+VUASQh9datye6orZYuJvNo8Tr3mAQxxkfR46LzWgxFCPEAZJ
5P56Nc0IMHdJZj0Uc9+1jxERhOGppp5jlLgYGK7faGB/jTV6LaRQ4Ad+xiqokDWp
mUOZsmA+bMbtPfYjDZBz5mlyHcIRKIFpE1l3Y8F7PhJuzzMUKkJi90CYakCV4x/a
Zs4pzk5E96c2VQx01RIEJ7fzHF7lwFdtfTS4YsLtAbQFsKayqwkGcVv2B1AHeqdo
TMX+cgDvjd1ZganGlWA8Sv9RkNSMchn1hMuTwERTyFTr2dKPnQdA1F480+jUap41
ClXgn227WkCIMrNhQGNyJsnwyzi5wS8rBVRQ3BOTMyvGM07j3axUOYaejEpg7wKi
wTPZGLGH1sz5GljD/916v5+v2xLbOo5606j9dWf5/tAhbPuqrQgWv41wuKDi+dDD
EKkODF7DHes8No+QcHTDyETMn1RYm7t0RKR4zsFNBFp+A0oBEAC9ynZI9LU+uJkM
eEJeJyQ/8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd
8xD57ue0eB47bcJvVqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPp
I4gfUbVEIEQuqdqQyO4GAe+MkD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalq
l1/iSyv1WYeC1OAs+2BLOAT2NEggSiVOtxEfgewsQtCWi8H1SoirakIfo45Hz0tk
/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJriwoaRIS8N2C8/nEM53jb1sH
0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcNfRAIUrNlatj9Txwi
vQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6dCxN0GNA
ORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog
2LNtcyCjkTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZA
grrnNz0iZG2DVx46x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJ
ELKItV//nCLBwNIP/AiIHE8boIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwj
jVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGjgn0TPtsGzelyQHipaUzEyrsceUGWYoKX
YyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8frRHnJdBcjf112PzQSdKC6kqU0
Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2E0rW4tBtDAn2HkT9
uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHMOBvy3Ehz
fAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVss
Z/rYZ9+51yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aW
emLLszcYz/u3XnbOvUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPt
hZlDnTnOT+C+OTsh8+m5tos8HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj
6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E+MYSfkEjBz0E8CLOcAw7JIwAaeBTzsFN
BGbyLVgBEACqClxh50hmBepTSVlan6EBq3OAoxhrAhWZYEwN78k+ENhK68KhqC5R
IsHzlL7QHW1gmfVBQZ63GnWiraM6wOJqFTL4ZWvRslga9u28FJ5XyK860mZLgYhK
9BzoUk4s+dat9jVUbq6LpQ1Ot5I9vrdzo2p1jtQ8h9WCIiFxSYy8s8pZ3hHh5T64
GIj1m/kY7lG3VIdUgoNiREGf/iOMjUFjwwE9ZoJ26j9p7p1U+TkKeF6wgswEB1T3
J8KCAtvmRtqJDq558IU5jhg5fgN+xHB8cgvUWulgK9FIF9oFxcuxtaf/juhHWKMO
RtL0bHfNdXoBdpUDZE+mLBUAxF6KSsRrvx6AQyJs7VjgXJDtQVWvH0PUmTrEswgb
49nNU+dLLZQAZagxqnZ9Dp5l6GqaGZCHERJcLmdY/EmMzSf5YazJ6c0vO8rdW27M
kn73qcWAplQn5mOXaqbfzWkAUPyUXppuRHfrjxTDz3GyJJVOeMmMrTxH4uCaGpOX
Z8tN6829J1roGw4oKDRUQsaBAeEDqizXMPRc+6U9vI5FXzbAsb+8lKW65G7JWHym
YPOGUt2hK4DdTA1PmVo0DxH00eWWeKxqvmGyX+Dhcg+5e191rPsMRGsDlH6KihI6
+3JIuc0y6ngdjcp6aalbuvPIGFrCRx3tnRtNc7He6cBWQoH9RPwluwARAQABwsOs
BBgBCgAgFiEEdodNnxM2uiJZBxxxsoi1X/+cIsEFAmbyLVgCGwICQAkQsoi1X/+c
IsHBdCAEGQEKAB0WIQSilC2pUlbVp66j3+yzNoc6synyUwUCZvItWAAKCRCzNoc6
synyU85gD/0T1QDtPhovkGwoqv4jUbEMMvpeYQf+oWgm/TjWPeLwdjl7AtY0G9Ml
ZoyGniYkoHi37Gnn/ShLT3B5vtyI58ap2+SSa8SnGftdAKRLiWFWCiAEklm9FRk8
N3hwxhmSFF1KR/AIDS4g+HIsZn7YEMubBSgLlZZ9zHl4O4vwuXlREBEW97iL/FSt
VownU2V39t7PtFvGZNk+DJH7eLO3jmNRYB0PL4JOyyda3NH/J92iwrFmjFWWmmWb
/Xz8l9DIs+Z59pRCVTTwbBEZhcUc7rVMCcIYL+q1WxBG2e6lMn15OQJ5WfiE6E0I
sGirAEDnXWx92JNGx5l+mMpdpsWhBZ5iGTtttZesibNkQfd48/eCgFi4cxJUC4PT
UQwfD9AMgzwSTGJrkI5XGy+XqxwOjL8UA0iIrtTpMh49zw46uV6kwFQCgkf32jZM
OLwLTNSzclbnA7GRd8tKwezQ/XqeK3dal2n+cOr+o+Eka7yGmGWNUqFbIe8cjj9T
JeF3mgOCmZOwMI+wIcQYRSf+e5VTMO6TNWH5BI3vqeHSt7HkYuPlHT0pGum88d4a
pWqhulH4rUhEMtirX1hYx8Q4HlUOQqLtxzmwOYWkhl1C+yPObAvUDNiHCLf9w28n
uihgEkzHt9J4VKYulyJM9fe3ENcyU6rpXD7iANQqcr87ogKXFxknZ97uEACvSucc
RbnnAgRqZ7GDzgoBerJ2zrmhLkeREZ08iz1zze1JgyW3HEwdr2UbyAuqvSADCSUU
GN0vtQHsPzWl8onRc7lOPqPDF8OO+UfN9NAfA4wl3QyChD1GXl9rwKQOkbvdlYFV
UFx9u86LNi4ssTmU8p9NtHIGpz1SYMVYNoYy9NU7EVqypGMguDCL7gJt6GUmA0sw
p+YCroXiwL2BJ7RwRqTpgQuFL1gShkA17D5jK4mDPEetq1d8kz9rQYvAR/sTKBsR
ImC3xSfn8zpWoNTTB6lnwyP5Ng1bu6esS7+SpYprFTe7ZqGZF6xhvBPf1Ldi9UAm
U2xPN1/eeWxEa2kusidmFKPmN8lcT4miiAvwGxEnY7Oww9CgZlUB+LP4dl5VPjEt
sFeAhrgxLdpVTjPRRwTd9VQF3/XYl83j5wySIQKIPXgT3sG3ngAhDhC8I8GpM36r
8WJJ3x2yVzyJUbBPO0GBhWE2xPNIfhxVoU4cGGhpFqz7dPKSTRDGq++MrFgKKGpI
ZwT3CPTSSKc7ySndEXWkOYArDIdtyxdE1p5/c3aoz4utzUU7NDHQ+vVIwlnZSMiZ
jek2IJP3SZ+COOIHCVxpUaZ4lnzWT4eDqABhMLpIzw6NmGfg+kLBJhouqz81WITr
EtJuZYM5blWncBOJCoWMnBEcTEo/viU3GgcVRw=3D=3D
=3Dx94R
-----END PGP PUBLIC KEY BLOCK-----

--------------q0p5AUHbSgkaDRQYrkyoICHh--

--------------h4qYrSNSXRM44ROuXTpYWvww--

--------------4Oy6bLrQsc0ZiVACdVm37hWU
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEopQtqVJW1aeuo9/sszaHOrMp8lMFAmk4WHwACgkQszaHOrMp
8lO2Rg//b0DgOxe0XZDZWA9ZpNP9VOdnUfH/8xXvOFGeDdzxioV6y08IW/8/nAvz
fkaBcOnwZ/hqgcKsqKInfA2z3YnNKl5JXr7MsBmtlusU08CzDoSSdkO0tc7/leR9
FJ+w0Xz2JTcbOgwN+TgcLTGKvMNOBnJEixDG9jqcKtcAJKVZ8JNjOA0mCHwx9uS/
LLnOxfqzw7+wpAeyOSfjkfrr/+kEoGPG6mgKnYVHHBUr1qDaW5Mtw+3lXe/Vhn5O
Wn+alafh2XNXzj45SVVV/eahem8QNWrMgtygQI3BLgKaPpE9x2b7HuHEcjtz+rJZ
/On2KWj7LhB/9hyeT1VGjLppkhzMraGwkcJdDivW9tvRwGSAtzXFRL/77/pQ8o6f
Cu3SRj1aCLNXnTDrGSh8y5q+9qGfeo+jzzWg6Ax8AYBzv+vX3NOnQzhGRgSAjobo
vzq3RvWponKn9a50FMHbWKuwO3N+Wq0t6tTmx7bfI6Tc1JNlySXKjj0Ay29ZllGn
RBkibL2cMYERJLRdA34p1dpm41B0f9pkrIAE0i0H8wq1cRKtHoSEiJwpxz7WI7oe
f3XXfrnT/F3k2v+dcchM39Xuy/JTj9+DjwT/kCK/Ujc0WWLrZJd2KtUlt8yKY/T4
zhmjbpEvNKyCL9XJBlAPfXFXvIAzGZzGHWt8EoAByj1ZMtQgwvM=
=J7Td
-----END PGP SIGNATURE-----

--------------4Oy6bLrQsc0ZiVACdVm37hWU--


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 17:19:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 17:19:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182035.1504974 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT1Ml-0005cV-Lf; Tue, 09 Dec 2025 17:19:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182035.1504974; Tue, 09 Dec 2025 17:19:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT1Ml-0005cN-II; Tue, 09 Dec 2025 17:19:11 +0000
Received: by outflank-mailman (input) for mailman id 1182035;
 Tue, 09 Dec 2025 17:19:10 +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
 <SRS0=S0St=6P=bounce.vates.tech=bounce-md_30504962.69385a0b.v1-1005dcf71bf14d459bc070e2aa73c258@srs-se1.protection.inumbo.net>)
 id 1vT1Mk-0005c7-AC
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 17:19:10 +0000
Received: from mail187-28.suw11.mandrillapp.com
 (mail187-28.suw11.mandrillapp.com [198.2.187.28])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2b7099d3-d523-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 18:19:08 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-28.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4dQlvH0WMTzMQxgGn
 for <xen-devel@lists.xenproject.org>; Tue,  9 Dec 2025 17:19:07 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 1005dcf71bf14d459bc070e2aa73c258; Tue, 09 Dec 2025 17:19:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b7099d3-d523-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1765300747; x=1765570747;
	bh=zb7G5zIrK8ZCQZTkyb087CIMe6mjbmKnl+xgf9D+q6E=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=G89TV/4FcDCDatAVS6dkUS+8RvWPXiw3Wmb8RlhcEFEm390eQXyGlsOysrsbc83Oq
	 6fRnmahPqykuxYerWemjO5nSmbgTb9Ul9Zx2qgaOQQyaTFLn5iQCKj9QIn9P8ew9CB
	 rNFFAZ8BA3XyEN3jxLIjOPXpffoNrW6NR38y/GZF20D645zlFS4JTJIF0hPl/xf+Iv
	 aJXkFgp7eE2kISfX3ubHlfYax09vrhT4KY35Cc7uJBDZa5xHHtNckozWp3Ohz3/9TF
	 8S97UktcLP+E4nGahwyoyQoWarzzboZ0c1hMG/SufYavuf+k9HJ0RfjbEXj4YdEmD8
	 D98BrmCrpl7pw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1765300747; x=1765561247; i=teddy.astie@vates.tech;
	bh=zb7G5zIrK8ZCQZTkyb087CIMe6mjbmKnl+xgf9D+q6E=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=gQg0wgiVVTh53uodaTza/Uf2EnvQVbuGtBHczxZ8RcYbxOHi3A8io2z4ArQEBxJsr
	 6Pnxa05jUXMvDOK/lwgoV/eAvyKOG+p8pCA9g/5/aiNCNFMFwC8ilmVTCn28gXLBVL
	 cdpo1GwQhw2GwG4Yzz6ttzm0KS/lMFgLM0SldTq9Rxne6g15EwbqcfYFvI+Mb8jg4f
	 ydvDngw1Ear5OABu41Ppx4eY57NieV7VHBfa8ShXNhauG9u66ZhLH3dovEhCXGMOCm
	 XHAYP/GXoPJmfhU+xYtbuin/Pqlks+UDoQJZ3IHpekNK8bsp2+HmWvnlbgvDuC+Rpr
	 bxwuLlEi/Y1Qw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v3=201/3]=20x86/cpu-policy:=20Infrastructure=20for=20CPUID=20leaf=200x6?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1765300746124
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <dc2b4786a56811481de07bd5e97bbf1f0baeb0e9.1765300623.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1765300623.git.teddy.astie@vates.tech>
References: <cover.1765300623.git.teddy.astie@vates.tech>
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.1005dcf71bf14d459bc070e2aa73c258?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251209:md
Date: Tue, 09 Dec 2025 17:19:07 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

From: Jan Beulich <jbeulich@suse.com>

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/include/xen/lib/x86/cpu-policy.h | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/xen/include/xen/lib/x86/cpu-policy.h b/xen/include/xen/lib/x86/cpu-policy.h
index f94f23e159..c721c986cc 100644
--- a/xen/include/xen/lib/x86/cpu-policy.h
+++ b/xen/include/xen/lib/x86/cpu-policy.h
@@ -121,7 +121,32 @@ struct cpu_policy
             uint64_t :64, :64; /* Leaf 0x3 - PSN. */
             uint64_t :64, :64; /* Leaf 0x4 - Structured Cache. */
             uint64_t :64, :64; /* Leaf 0x5 - MONITOR. */
-            uint64_t :64, :64; /* Leaf 0x6 - Therm/Perf. */
+
+            /* Leaf 0x6 - Therm/Perf. */
+            struct {
+                uint32_t /* a */
+                    dts:1,
+                    turbo:1,
+                    arat:1,
+                    :4,
+                    hwp:1,
+                    hwp_notification:1,
+                    hwp_activity_window:1,
+                    hwp_epp:1,
+                    hwp_plr:1,
+                    :1,
+                    hdc:1,
+                    :2,
+                    hwp_peci:1,
+                    :2,
+                    hw_feedback:1,
+                    :12;
+                uint32_t /* b */:32;
+                uint32_t /* c */ aperfmperf:1, 
+                    :31;
+                uint32_t /* d */:32;
+            } pm;
+
             uint64_t :64, :64; /* Leaf 0x7 - Structured Features. */
             uint64_t :64, :64; /* Leaf 0x8 - rsvd */
             uint64_t :64, :64; /* Leaf 0x9 - DCA */
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 17:19:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 17:19:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182038.1505004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT1Mo-0006Hn-C3; Tue, 09 Dec 2025 17:19:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182038.1505004; Tue, 09 Dec 2025 17:19:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT1Mo-0006He-84; Tue, 09 Dec 2025 17:19:14 +0000
Received: by outflank-mailman (input) for mailman id 1182038;
 Tue, 09 Dec 2025 17:19:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hCwd=6P=bounce.vates.tech=bounce-md_30504962.69385a0b.v1-21d2e1777ca04a7091d0d35e25548d7b@srs-se1.protection.inumbo.net>)
 id 1vT1Mm-0005cC-Dc
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 17:19:12 +0000
Received: from mail132-20.atl131.mandrillapp.com
 (mail132-20.atl131.mandrillapp.com [198.2.132.20])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2bc38c9e-d523-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 18:19:09 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-20.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4dQlvH1CywzFCWZfk
 for <xen-devel@lists.xenproject.org>; Tue,  9 Dec 2025 17:19:07 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 21d2e1777ca04a7091d0d35e25548d7b; Tue, 09 Dec 2025 17:19:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2bc38c9e-d523-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1765300747; x=1765570747;
	bh=zvMOjJbC3NJhvuZJArpCM9fymz4oseW7zzXMIWEo6DE=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=f42K+JBGBAh1On1+4KXoKqwd9f1LV089sGWOfN52Xo/zdkDSKE/A+IuGhoCett1LV
	 d8OMOPqoeVPeti9o44IcuhBX8MhOQZSaju7fsKsBs+L/+nlW9Jq/H6Ymy1s+hhfTlN
	 9CLOkSfN/XXdRfxCfBlDy8lS8CWWKBoxY2q1e//BftCkvwu99xbRL+CENcO7dBk9zu
	 L0rG+1/e/uacvxBmXCWqDS1KVvpwhXU91mNvXXFfnBVEQD+dW9HDGXW1gQuXrPM0Cf
	 5ZjbhYmAM+EEYoZ6MpYJl5u+2+Jg3U1UrKEHhMl8gQaw9NJhmwPp1DjVJFaQII7yoB
	 xuMX7AZXsTKGQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1765300747; x=1765561247; i=teddy.astie@vates.tech;
	bh=zvMOjJbC3NJhvuZJArpCM9fymz4oseW7zzXMIWEo6DE=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=eQlqKyqHNdvdxSkCrI14GMPJprROGJWDff06mKwIVBL3LgDFCCXwo9Oh8DWd5SuFk
	 3AjE2FOpLh7zKjwiZqXiFvZF0usGrrWwn1keqLgCoMPjYkBBZhGACntPYVwknEGSi2
	 c3//bPOc1IoIkY0kxFUJbZ1iMrwyCHBZnwmjGYLqRmbSr7VbQQRF7KBC9s6suV8gHb
	 mHYvSs2MPao/o6XglU0XJ2rraeHOCFFRVyCDzDjbIq8+ATA2UM7K1IdFHkopkNzFB3
	 UW/ENX7cPNal1Nq8cUH8/SMHCAC7I+KYEuRBJWWJjBICwd6d2yM7zRoWMLuMr8Wrz7
	 PrCoTXy30vHHQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v3=203/3]=20xenpm:=20Add=20get-intel-temp=20subcommand?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1765300746610
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Anthony PERARD" <anthony.perard@vates.tech>
Message-Id: <6fcfea5d3f6be1bcf1d34ea5ccec40a477100472.1765300623.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1765300623.git.teddy.astie@vates.tech>
References: <cover.1765300623.git.teddy.astie@vates.tech>
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.21d2e1777ca04a7091d0d35e25548d7b?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251209:md
Date: Tue, 09 Dec 2025 17:19:07 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

get-intel-temp allows querying the per-core CPU temperature and
per-package one on Intel processors (as usual Dom0 drivers cannot
work due to misalignment between Dom0 vCPU and pCPUs).

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 tools/misc/xenpm.c | 91 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 90 insertions(+), 1 deletion(-)

diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
index 682d092479..1558f6c250 100644
--- a/tools/misc/xenpm.c
+++ b/tools/misc/xenpm.c
@@ -30,6 +30,7 @@
 #include <inttypes.h>
 #include <sys/time.h>
 
+#include <xen/asm/msr-index.h>
 #include <xen-tools/common-macros.h>
 
 #define MAX_PKG_RESIDENCIES 12
@@ -37,6 +38,7 @@
 
 static xc_interface *xc_handle;
 static unsigned int max_cpu_nr;
+static xc_physinfo_t physinfo;
 
 /* help message */
 void show_help(void)
@@ -93,6 +95,7 @@ void show_help(void)
             "                                           units default to \=
"us\" if unspecified.\n"
             "                                           truncates un-repre=
sentable values.\n"
             "                                           0 lets the hardwar=
e decide.\n"
+            " get-intel-temp        [cpuid]       get Intel CPU temperatur=
e of <cpuid> or all\n"
             " start [seconds]                     start collect Cx/Px stat=
istics,\n"
             "                                     output after CTRL-C or S=
IGINT or several seconds.\n"
             " enable-turbo-mode     [cpuid]       enable Turbo Mode for pr=
ocessors that support it.\n"
@@ -1354,6 +1357,92 @@ void enable_turbo_mode(int argc, char *argv[])
                 errno, strerror(errno));
 }
 
+static int fetch_dts_temp(xc_interface *xch, uint32_t cpu, bool package, i=
nt *temp)
+{
+    xc_resource_entry_t entries[2] =3D {
+        (xc_resource_entry_t){
+            .idx =3D package ? MSR_PACKAGE_THERM_STATUS : MSR_IA32_THERM_S=
TATUS
+        },
+        (xc_resource_entry_t){ .idx =3D MSR_TEMPERATURE_TARGET },
+    };
+    struct xc_resource_op ops =3D {
+        .cpu =3D cpu,
+        .entries =3D entries,
+        .nr_entries =3D 2,
+    };
+    int tjmax;
+
+    int ret =3D xc_resource_op(xch, 1, &ops);
+
+    if ( ret <=3D 0 )
+        /* This CPU isn't online or can't query this MSR */
+        return ret ?: -EOPNOTSUPP;
+
+    if ( ret =3D=3D 2 )
+        tjmax =3D (entries[1].val >> 16) & 0xff;
+    else
+    {
+        /*
+         * The CPU doesn't support MSR_IA32_TEMPERATURE_TARGET, we assume =
it's 100 which
+         * is correct aside a few selected Atom CPUs. Check coretemp sourc=
e code for more
+         * information.
+         */
+        fprintf(stderr, "[CPU%d] MSR_IA32_TEMPERATURE_TARGET is not suppor=
ted, assume "
+                "tjmax=3D100=C2=B0C, readings may be incorrect\n", cpu);
+        tjmax =3D 100;
+    }
+    
+    *temp =3D tjmax - ((entries[0].val >> 16) & 0xff);
+    return 0;
+}
+
+
+void get_intel_temp(int argc, char *argv[])
+{
+    int temp, cpu =3D -1;
+    unsigned int socket;
+    bool has_data =3D false;
+
+    if ( argc > 0 )
+        parse_cpuid(argv[0], &cpu);
+
+    if ( cpu !=3D -1 )
+    {
+        if ( !fetch_dts_temp(xc_handle, cpu, false, &temp) )
+            printf("CPU%d: %d=C2=B0C\n", cpu, temp);
+        else
+            printf("No data\n");
+        return;
+    }
+
+    /* Per socket measurement */
+    for ( socket =3D 0, cpu =3D 0; cpu < max_cpu_nr;
+          socket++, cpu +=3D physinfo.cores_per_socket * physinfo.threads_=
per_core )
+    {
+        if ( !fetch_dts_temp(xc_handle, cpu, true, &temp) )
+        {
+            has_data =3D true;
+            printf("Package%d: %d=C2=B0C\n", socket, temp);
+        }
+    }
+
+    if ( has_data )
+        /* Avoid inserting a trailing line if we have nothing */
+        printf("\n");
+
+    for ( cpu =3D 0; cpu < max_cpu_nr; cpu +=3D physinfo.threads_per_core =
)
+    {
+        if ( fetch_dts_temp(xc_handle, cpu, false, &temp) )
+            continue;
+
+        has_data =3D true;
+        printf("CPU%d: %d=C2=B0C\n", cpu, temp);
+    }
+
+    if ( !has_data )
+        printf("No data\n");
+}
+
 void disable_turbo_mode(int argc, char *argv[])
 {
     int cpuid =3D -1;
@@ -1618,12 +1707,12 @@ struct {
     { "set-max-cstate", set_max_cstate_func},
     { "enable-turbo-mode", enable_turbo_mode },
     { "disable-turbo-mode", disable_turbo_mode },
+    { "get-intel-temp", get_intel_temp },
 };
 
 int main(int argc, char *argv[])
 {
     int i, ret =3D 0;
-    xc_physinfo_t physinfo;
     int nr_matches =3D 0;
     int matches_main_options[ARRAY_SIZE(main_options)];
 
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Tue Dec 09 17:19:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 17:19:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182036.1504977 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT1Ml-0005fT-Re; Tue, 09 Dec 2025 17:19:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182036.1504977; Tue, 09 Dec 2025 17:19:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT1Ml-0005em-Oh; Tue, 09 Dec 2025 17:19:11 +0000
Received: by outflank-mailman (input) for mailman id 1182036;
 Tue, 09 Dec 2025 17:19:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=bqtn=6P=bounce.vates.tech=bounce-md_30504962.69385a0a.v1-3197bb4c014e49a287c8cbd8cf335242@srs-se1.protection.inumbo.net>)
 id 1vT1Mk-0005cC-NU
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 17:19:10 +0000
Received: from mail187-28.suw11.mandrillapp.com
 (mail187-28.suw11.mandrillapp.com [198.2.187.28])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2b5ab827-d523-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 18:19:08 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-28.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4dQlvG6kXJzMQxgGg
 for <xen-devel@lists.xenproject.org>; Tue,  9 Dec 2025 17:19:06 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 3197bb4c014e49a287c8cbd8cf335242; Tue, 09 Dec 2025 17:19:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b5ab827-d523-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1765300746; x=1765570746;
	bh=T8BxQyHaTM8Vxv9q11NjSlbM4TLG3b8CE8KX4D6riUI=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=QRUg+rxVCtKJjJAwS+X6cLQDPrDCGEwNUFnJGJh5hUSKMeljgLoRl4DFKmXFwMbfa
	 MP869LrSzjIj9Xj8MCB79fk+oYH+q3e1n6u77YZDI0Zv9rpptXu4iWWSfjUHe2BuL0
	 Qr1nkhBfFZcU+ihrse3nLz3SXyj7EPjSkut4e1M88XofkhZluoRI6xrpIpEuAv83Zb
	 Ti1nkdHr0ESFYeEniohDSG+hKdRJlfABtrXiUyCocoPTEgcnpbVdMyTHNZA4SjaR5L
	 knjQlSxQBpPUbzMz8zYGMeCjVBNhoLlUuNYMkUxdVFCWwNZ/tE7T21a5LfP3wnF5/A
	 RFjbL4AK5QHkQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1765300746; x=1765561246; i=teddy.astie@vates.tech;
	bh=T8BxQyHaTM8Vxv9q11NjSlbM4TLG3b8CE8KX4D6riUI=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=PgJ5KRjXrGsnWQSD/oLbEFNYJLiMv0dn0L/3uUvOSl/Ufuv9hL4pQ6GzZLAWrilUy
	 o98vvELETb0fnfvNbMKfCGCKNuwEBFRREeEgrdFs1TDphYPHxs9O8dFvM7Ha+zXOmd
	 R8X/ALKUrr2IoArQoXL7j5jz/08SndA0ol71jGAoB1GgrZ1pT+CHuPbuPIdoGxFG6q
	 Y0fDdQVSYcvFMWaGx9eXB77GEZ1twvCBAW8P04aFxGMRhZ17JcLBqAlzEtJs42Ol8R
	 haqj48mtx6WFEPVHFQ12WsMw3jT1nJkXbZy446+RG6ePRuS1sLOHLB/Y+8yOfk2XKY
	 jEVLf0pO1kKdg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v3=200/3]=20Support=20for=20Intel=20temperature=20sensors=20(DTS)?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1765300745836
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>
Message-Id: <cover.1765300623.git.teddy.astie@vates.tech>
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.3197bb4c014e49a287c8cbd8cf335242?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251209:md
Date: Tue, 09 Dec 2025 17:19:06 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

The idea here is to expose the DTS sensors through XENPF_resource_op
and expose it for the user through xenpm.

v3:
 - use msr-index.h instead of adding defines to MSRs in xenpm

v2:
 - moved userland part to xenpm
 - use cpu policy infrastructure instead of inline cpuid

Teddy Astie (3):
  x86/cpu-policy: Infrastructure for CPUID leaf 0x6
  x86/platform: Expose DTS sensors MSR
  xenpm: Add get-intel-temp subcommand

 tools/misc/xenpm.c                   | 91 +++++++++++++++++++++++++++-
 xen/arch/x86/include/asm/msr-index.h |  3 +
 xen/arch/x86/platform_hypercall.c    |  6 ++
 xen/include/xen/lib/x86/cpu-policy.h | 27 ++++++++-
 4 files changed, 125 insertions(+), 2 deletions(-)

-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 17:19:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 17:19:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182037.1504994 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT1Mn-00063V-3I; Tue, 09 Dec 2025 17:19:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182037.1504994; Tue, 09 Dec 2025 17:19:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT1Mm-00063M-WA; Tue, 09 Dec 2025 17:19:13 +0000
Received: by outflank-mailman (input) for mailman id 1182037;
 Tue, 09 Dec 2025 17:19:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Q2e4=6P=bounce.vates.tech=bounce-md_30504962.69385a0b.v1-71b45fdb3d9c48168c0d6ddc909dd279@srs-se1.protection.inumbo.net>)
 id 1vT1Ml-0005cC-DS
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 17:19:11 +0000
Received: from mail132-20.atl131.mandrillapp.com
 (mail132-20.atl131.mandrillapp.com [198.2.132.20])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2bc3a4c7-d523-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 18:19:09 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-20.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4dQlvH2ftLzFCWZgT
 for <xen-devel@lists.xenproject.org>; Tue,  9 Dec 2025 17:19:07 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 71b45fdb3d9c48168c0d6ddc909dd279; Tue, 09 Dec 2025 17:19:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2bc3a4c7-d523-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1765300747; x=1765570747;
	bh=bXiyzxs3iUF4ajO5dnSngv/r6PHtcuT4FUiRa2n+DuM=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=xK2cfOkseAdXCm8DGf4afVYKn+Rdd7KajWw3YoRcQH0EJKOg3vvmE6IC2IZDU+h2i
	 nyR1selZQpnbjt0U6HK8jY0fywgRc/kZMdNQpmN7PW1vrvZ+HOApvq7cKVJScKA3Rg
	 UUzUwASoxbhvD3ChaMBAavYU+FV8TjyjmSZAtN9aqDwlqjfxq8y77RRRgMLugrGPwb
	 J0wFHUQ6AlvnmDjT99UEbaj4QZnJUmHWfP+b09UuGIzJoY6MC+1/e9hm14oMG+EPcm
	 /fCxmKyYR1LGHY8BQGBsGVzDlTFBhWxtsRK/TjC2o5Jimm9UWVQwFjYQhEBZ6pjoUR
	 gjd4f0csS3pZA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1765300747; x=1765561247; i=teddy.astie@vates.tech;
	bh=bXiyzxs3iUF4ajO5dnSngv/r6PHtcuT4FUiRa2n+DuM=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=YPtwBke41cGNUfV2fiFNntSdV2wj6epbTM/idYUPN3X+hC7quYux7sSER6rXUUxTs
	 f8zh7ht8bpAZn1yp8/gTR3EnFHdEGsVzhq6tfpR8KXP+9vAQnNPVzDsyQ0R5Pu1bvK
	 Lw9kyNptTPz37K3w4gWrGK9JfOuECsVYiorP3bdjf+ug1LaKVlK7TrTKWXaVH6htQJ
	 uHeQxadSfMH5k4Zl+65xJshZQHuJNZ3p9ckYFWvJHz3H5WTFfASEvhKSgW0/XiSz6o
	 Mw7uYN8sk9IX7WdxQLL7FyueszTDztDp9fgWegWbn66SQFRpr4i5mfgEXDOCEM0fum
	 4waeldQ1PMHAQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v3=202/3]=20x86/platform:=20Expose=20DTS=20sensors=20MSR?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1765300746413
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <5ae285cb5c494651c1f4842f36891eaf6dc28355.1765300623.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1765300623.git.teddy.astie@vates.tech>
References: <cover.1765300623.git.teddy.astie@vates.tech>
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.71b45fdb3d9c48168c0d6ddc909dd279?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251209:md
Date: Tue, 09 Dec 2025 17:19:07 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Intel provide CPU sensors through "DTS" MSRs. As there MSR are core-specific
(or package-specific), we can't reliably fetch them from Dom0 directly.
Expose these MSR (if supported) through XENPF_resource_op so that it is
accessible through hypercall.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/arch/x86/include/asm/msr-index.h | 3 +++
 xen/arch/x86/platform_hypercall.c    | 6 ++++++
 2 files changed, 9 insertions(+)

diff --git a/xen/arch/x86/include/asm/msr-index.h b/xen/arch/x86/include/asm/msr-index.h
index df52587c85..b92a278611 100644
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -115,6 +115,9 @@
 #define  MCU_OPT_CTRL_GDS_MIT_DIS           (_AC(1, ULL) <<  4)
 #define  MCU_OPT_CTRL_GDS_MIT_LOCK          (_AC(1, ULL) <<  5)
 
+#define MSR_TEMPERATURE_TARGET              0x000001a2
+#define MSR_PACKAGE_THERM_STATUS            0x000001b1
+
 #define MSR_FRED_RSP_SL0                    0x000001cc
 #define MSR_FRED_RSP_SL1                    0x000001cd
 #define MSR_FRED_RSP_SL2                    0x000001ce
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 79bb99e0b6..237340ee42 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -27,6 +27,7 @@
 #include <asm/current.h>
 #include <public/platform.h>
 #include <acpi/cpufreq/processor_perf.h>
+#include <asm/cpu-policy.h>
 #include <asm/edd.h>
 #include <asm/microcode.h>
 #include <asm/mtrr.h>
@@ -86,6 +87,11 @@ static bool msr_read_allowed(unsigned int msr)
 
     case MSR_MCU_OPT_CTRL:
         return cpu_has_srbds_ctrl;
+    
+    case MSR_IA32_THERM_STATUS:
+    case MSR_TEMPERATURE_TARGET:
+    case MSR_PACKAGE_THERM_STATUS:
+        return raw_cpu_policy.basic.pm.dts;
     }
 
     if ( ppin_msr && msr == ppin_msr )
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 17:19:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 17:19:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182039.1505014 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT1Mq-0006Yf-JE; Tue, 09 Dec 2025 17:19:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182039.1505014; Tue, 09 Dec 2025 17:19:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT1Mq-0006YS-Fn; Tue, 09 Dec 2025 17:19:16 +0000
Received: by outflank-mailman (input) for mailman id 1182039;
 Tue, 09 Dec 2025 17:19:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=R0hE=6P=ariadne.space=ariadne@srs-se1.protection.inumbo.net>)
 id 1vT1Mp-0005cC-1X
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 17:19:15 +0000
Received: from outbound.pv.icloud.com
 (p-west1-cluster3-host9-snip4-10.eps.apple.com [57.103.66.93])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2de31db6-d523-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 18:19:12 +0100 (CET)
Received: from outbound.pv.icloud.com (unknown [127.0.0.2])
 by p00-icloudmta-asmtp-us-west-1a-20-percent-3 (Postfix) with ESMTPS id
 F2BEF18000BE; Tue,  9 Dec 2025 17:19:06 +0000 (UTC)
Received: from smtpclient.apple (unknown [17.56.9.36])
 by p00-icloudmta-asmtp-us-west-1a-20-percent-3 (Postfix) with ESMTPSA id
 EB4C718000BB; Tue,  9 Dec 2025 17:19:05 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2de31db6-d523-11f0-9cce-f158ae23cfc8
Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ariadne.space; s=sig1; bh=RNErpzZbcTJeDU6TKVZ8PzZlmV6CMi2ciqMc2TRk1Gk=; h=Content-Type:From:Mime-Version:Subject:Date:Message-Id:To:x-icloud-hme; b=UL/IbNoEwoD/QRO9D+725yIjAOhWYncYJPAXjiXvqUr2Q86b1lon+xbs13GKpSatkjdH0CpF+8ws44oxIAkwf1rcet5zU0dkPVLvaULmJQnENb/dMH/lY7ZwRUgeh3RGSYr8xf64m4shGjho4H+I8QrCRhllaXVi51kNBl/uIPgHleEcmmh9wEvnfDAY/o26kzmcWJKntmJHr5UnbhcVzhm1TpjCszm2xmtRtDyOV2zTUGXJycJ/MrpSo3ud1J8tAqA56Nqc5rKZyRl2satBPeLhCt/xRNw5Z7n9ExiOC3Bfm1VwgH9WXqcNJ+R7+sYiHs/GCLeHY5e1mDP8fWwP3g==
mail-alias-created-date: 1688796967087
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
From: Ariadne Conill <ariadne@ariadne.space>
Mime-Version: 1.0 (1.0)
Subject: Re: [PATCH] 9p/xen: mark 9p transport device as closing when removing it
Date: Tue, 9 Dec 2025 09:18:55 -0800
Message-Id: <AF8229BC-39BC-4857-AD06-1AB2E8748459@ariadne.space>
References: <efbab440-cb84-4900-989c-43d0d69b60f2@gmail.com>
Cc: v9fs@lists.linux.dev, xen-devel@lists.xenproject.org,
 asmadeus@codewreck.org, linux_oss@crudebyte.com, lucho@ionkov.net,
 ericvh@kernel.org, Juergen Gross <jgross@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Alex Zenla <alex@edera.dev>
In-Reply-To: <efbab440-cb84-4900-989c-43d0d69b60f2@gmail.com>
To: Demi Marie Obenour <demiobenour@gmail.com>
X-Mailer: iPhone Mail (23B85)
X-Authority-Info: v=2.4 cv=Zqfg6t7G c=1 sm=1 tr=0 ts=69385a0c cx=c_apl:c_pps
 a=azHRBMxVc17uSn+fyuI/eg==:117 a=azHRBMxVc17uSn+fyuI/eg==:17
 a=IkcTkHD0fZMA:10 a=MKtGQD3n3ToA:10 a=1oJP67jkp3AA:10 a=wP3pNCr1ah4A:10
 a=VkNPw1HP01LnGYTKEx00:22 a=pGLkceISAAAA:8 a=eRcs-64NSlAV9zilaZwA:9
 a=QEXdDO2ut3YA:10
X-Proofpoint-GUID: 7r_hZ7o3_Pm27eEs0aWveTRU2jd3sglZ
X-Proofpoint-ORIG-GUID: 7r_hZ7o3_Pm27eEs0aWveTRU2jd3sglZ
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjA5MDEzMSBTYWx0ZWRfX9sVDiqgz8GJj
 hDpVAyhUCmHWNGTK4gMLhKwcbe8afPMZ4IbcBzustWCDhupJhf9B4KCY2QHNWfuSAFo37dlIYQr
 Uo2ueOAVLj5EuwM3Ky4uad5WK6sGeh89N3QCmBMkSkmI0y/omVlpr8xJmz4LJ/oBBz3oCcuurjF
 ht3XgdItbXqPGDX52dRJ59o0+Hm78EdCfjDh7oe4sgAntYB7dP+vdLGqOwVs6dt7uyS//cXFM02
 8CmLyEEplI/BvLsKdJEYaefjYzSHcQwqZAf/sEU0racMvxhpU4PHr/IyPjmLeJq4b65AODiU6Ax
 2sGtB06vMscJwPPXCF0
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-12-09_04,2025-12-09_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 mlxscore=0 mlxlogscore=999 clxscore=1030 malwarescore=0 phishscore=0
 adultscore=0 suspectscore=0 spamscore=0 classifier=spam authscore=0 adjust=0
 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512090131
X-JNJ: AAAAAAABsFSdo+CoX8eF5pXh3rEpRXRMwQt0kJOVpLOpVXfRBU3ydhGou0ayG7Gi8jnDNoVfhJLVS7TdKSyyCDtY7cpIkbp+IxTULZqSowgUV7WYGDsSeulFdzR/Cvs43OBIteTraNI68j1jT97cvC+sIGx+QGyRGi3CiMqeSA0Yp+sseufh4DFemSb4yHkL/otYIyfm80duGdPXFf0eCMKrpmQNESR1AUvpXxsCrHXwwZw56r8ggycEZFX3Z4Th54ofXQlG6T7ANVh15YPEP4Q+H+vNZWtVF8z7QCKdSTkn25fY0IkFQSYU33oWx0d52FkARbDXiRtNNgpHnd5zQ2cO70xGdY5g3QofVLbralHR24VYJmrAwwS//DdX2PntqdyozP4+BCGRBatNuNDguq9n019PJlPireu7cMEywIQIquS92GJqGDO3an5LoQpvGccruTzJQkPxmr8rYMppEF4GlPVrGwVQUOMFrbvJDUOVlFh7nkgxLz56Znrhqx/WCJSOavbAECq7gYgatcizALqaMC9FiTKbhIWAokbkSto1MkciTK+LUD1udOYKhVRDg7CSPqaaMTlrT+RuqSRDqf8QpH9OIogY/lYz7sUM4ekLgI3FQ8cmJTyo93XTuqy11EAgfOXc7rbV1DMoEGnavlctuCE4tvbieWC/xCcvyaxtfacnKphW2dxHFt4hnVtgg7caxFEchJ1JaOl/XejDvBa8wqx+Br7YSHieMng5Qd+9qvYWFVCi7xc=

Hello,

> On Dec 9, 2025, at 9:12=E2=80=AFAM, Demi Marie Obenour <demiobenour@gmail.=
com> wrote:
>=20
> =EF=BB=BFOn 12/9/25 12:09, Ariadne Conill wrote:
>> Hello,
>>=20
>>>> On Dec 9, 2025, at 2:43=E2=80=AFAM, Demi Marie Obenour <demiobenour@gma=
il.com> wrote:
>>>=20
>>> =EF=BB=BFOn 12/8/25 14:51, Ariadne Conill wrote:
>>>> We need to do this so that we can signal to the other end that the
>>>> device is being removed, so that it will release its claim on the
>>>> underlying memory allocation.  Otherwise releasing the grant-table
>>>> entries is deferred resulting in a kernel oops since the pages have
>>>> already been freed.
>>>=20
>>> I don't think this is sufficient.  The backend can simply refuse
>>> to release the grants.  The frontend needs to ensure that the pages
>>> are not freed until the grant table entries are freed.  Right now,
>>> the backend can cause a use-after-free in the frontend, and my
>>> understanding of the Xen Project's security policy is that this is
>>> a security vulnerability in the frontend code.
>>>=20
>>> My instinct is that the core Xen code should take a reference on
>>> each page before granting it to another domain, and not release that
>>> reference until the pages are no longer granted.  This should prevent
>>> any use-after-free problems if I understand Linux core MM correctly.
>>=20
>> Yes, there are other issues in the 9p transport that are likely in play h=
ere.  In our internal testing, we confirm this is not a full fix for hotplug=
ging 9p transport devices, but no such claim of a complete fix has been made=
 here or in the Matrix thread.
>>=20
>> However, this is one defect that is contributing to the overall hotpluggi=
ng problem and should be merged regardless: if the driver isn=E2=80=99t tell=
ing the other side to disconnect, the other side will never release the gran=
ts to begin with.
>>=20
>> Ariadne
>=20
> I definitely agree that this should be merged!
>=20
> Is this code-path triggerable by the backend at will, or only during
> teardown by the toolstack?

In practice it only happens when the toolstack tears down a 9p transport.

In theory it can happen in any situation where the backend decides to tear d=
own the transport, which may or may not actually be mediated by the toolstac=
k.

Ariadne=


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 17:38:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 17:38:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182093.1505024 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT1fJ-0002qG-7f; Tue, 09 Dec 2025 17:38:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182093.1505024; Tue, 09 Dec 2025 17:38:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT1fJ-0002q9-4l; Tue, 09 Dec 2025 17:38:21 +0000
Received: by outflank-mailman (input) for mailman id 1182093;
 Tue, 09 Dec 2025 17:38:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nu2q=6P=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vT1fI-0002q2-4K
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 17:38:20 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d835452a-d525-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 18:38:17 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CO1PR03MB5779.namprd03.prod.outlook.com (2603:10b6:303:97::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 17:38:13 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 17:38:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d835452a-d525-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=k1JchBy4oI/ONZ6lpzhFqh1vOJuJL8rN4QonRuFq6SQdgm81i3dwN38gURpqwa4SbsuOHP9Nhrc6TjyVIk/d2Unn0kGPfMZm9HYKKuYr2YwK589X8wo2+4XL4Vd5ck0z5qb3u6hE7BCERa/TX8YvLlg3olS0nZvygtKRNEJEzmak9kQeyfGz7pzPAv92mnC6lGaGj3EUgTmuJ2TgcHkx2E55Dc8RsQADeuswGAQfYfuYR5fkFHyidow+bwQNow0FJ1oh4JiOUSuMNEEmggMqPz8TreYKLEwy3fXnQONfNydlp1viexUAzfllWXrChmrUWyBbsSxhxaXkFVfbWC7pSg==
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=gkh1pdtp1x4e61u7RWbb61F2fvGqnoEAivM7WAwuyT8=;
 b=G9aRRBHkRe+Gb9f875nAgo8buwpIZ0tDFFLJ6q+OiO7SutFWk+9gRRnfsPp4odIYwbSEnsgm9iPIP6zuZceNQdGGh1aYwQLtYzYbw0zKKqoq1dROoXgmrMv2JdLq4kwxxIH64lDkADdFdCNDT89XmBL1CxkKt4L5UhqBlzIDtUqhhwx1ccf7DqFN7XMZObM+bh2HrXkqgCb8Ov6oQNLlVwWYgC16Pr9Eku7ItUOeqG/s9+49MdYVLQkSZmuyTOzPr/GDvoicOqNcUNY/YgWT3KWJDeLvDJEot2ejjecee3xT2DUPniOPBnIlHe6y0RVUA05tNdMOc7Bgj41mfIDuUA==
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=gkh1pdtp1x4e61u7RWbb61F2fvGqnoEAivM7WAwuyT8=;
 b=OgmIxcj72MT7J/1Hx/Of84rTlCfG7eNuFX5AJ6c5UtywE5Pp2dfVQhp54W9g7GRxApk1okAc1eSVf98S8W2K2gl4CxsWnEgT+FjVL0R5CWdydjFEZLOsM/crzjW2eFVnUIpajp0azPHMh3vqZ7r5aR+fYBGvIGdfeVxtLUb4CLY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e46f9569-fd41-4724-bcd2-71b803ac1eb0@citrix.com>
Date: Tue, 9 Dec 2025 17:38:10 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] x86/pv: Unhide writes to d->arch.hv_compat_vstart
To: Jan Beulich <jbeulich@suse.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <20251209155719.2098440-1-andrew.cooper3@citrix.com>
 <147c917d-5ec4-4134-b531-3483d445283a@epam.com>
 <e15dd08a-cdf0-4a3c-ac98-d0652eaebd90@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <e15dd08a-cdf0-4a3c-ac98-d0652eaebd90@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0485.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:13a::10) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CO1PR03MB5779:EE_
X-MS-Office365-Filtering-Correlation-Id: 37947675-ed58-4c2a-7ded-08de3749ba8a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UjdkN08xdUtaVEJlQlIzcjF4ZzhuVThBbnRGWFdvZENNajdxa3NaaGlWYlBI?=
 =?utf-8?B?UmtyYzdwZWo1clNzdC9RQlgyT0I3M0NqSmZjMWVYdHRXZ1h3OHBYOFA2cjFB?=
 =?utf-8?B?YUtjeU5razBIeXZtdCt3NmZlQ0tkWkhYU2Y2dGFxMzhzS0FNdWRmZUhWOENN?=
 =?utf-8?B?V1N4WTIwMldSOS8wNW4zTHZRT0FQNVhUNG9jcitsa1RveXZhdGtjNi9qcXVu?=
 =?utf-8?B?ZURnK2I1d2xkT0ZQZmlWY3kxUnR2dDNUSlREZUZyd3hXRWI0aWtmeElRQ1RZ?=
 =?utf-8?B?U0xnbEVwSllGSzZEYVhZR0laSURlSVp4N21qM0NSbUdGTWIyYi9odmNjRXI3?=
 =?utf-8?B?NUE3Y1JWcXhCeVpGRnBDQllWMFpoSGt0a0lMK0ZoeDEwSXNBL3p6c0psaERa?=
 =?utf-8?B?RlhyR0dpYWdMeHRDUTFDV0pPaEhtWnBOekpRZFJWQkFpZkxOYzdMWlBXNDFO?=
 =?utf-8?B?by8xd2h0ZW41cEZ4RFByR204N09SZVJYZTNndFpXWUk4NnFaYW9MYVVOalg3?=
 =?utf-8?B?ZFJEeDVrcDBDNHljcHN3VUNidDdRRzFVNi9vUXpzY01WNUEyaCtrMlBuY1k3?=
 =?utf-8?B?L0lFaTVJZHVINVJBYTNqS0FmcURzMWdDbzdSa2tMT2Y0TnVUc2dXNmwvMzhz?=
 =?utf-8?B?amE5S0dGY21IcHVUSjFBN1FxM3A1WDVoQS9Ka0E1N2MvbElPQkE2T0JqQitX?=
 =?utf-8?B?OHlOVDFHNmZSUklEQU5EZEQzenV2WS9iWGxUUTNJdkY5SE1vcXJsV2hwOStn?=
 =?utf-8?B?a2xmcG5wMWxtQ3dNSlRVYVlBQnhDZE5WcHJ6bjJXeHpWeHBseEl4ZGl6RWJX?=
 =?utf-8?B?SEhXaEh1dTE3bGY5TGtocGhJQ0VqRmNnUXJZNm5ZcHRqZ256aUVrTkhiZHJq?=
 =?utf-8?B?UU5PaDd0RERoUWZUcXdIWVFnVFpkVlFRMHNBSWd6bTlOSWZYMmRGUzJraUpE?=
 =?utf-8?B?V09NV1ZsM24vSjhEK0J5VzM0OXkvRWJ2UnRidjN5K2xFamFQSHYxYzMvZkJz?=
 =?utf-8?B?M2tyYU1zK0FJK3JScm1tN2FLT3RFSHVRRGJzSXZwb1NrUHR1Rk1EVDY5cmZh?=
 =?utf-8?B?ak9aRHpMbVdLSlBzcHViMENRdVFJODlzRTVXWUdpWnNveGFtaDJOTVlyNCtF?=
 =?utf-8?B?b1JyeUR3bmExdzhFTVZKM2FYTSs0VDMvbHhic3NuNDdKSjU2dUFtblNFUXIr?=
 =?utf-8?B?Mk1FSUJuK0dQQ3hJbmRJbVV1ZXRlUG9oNGJFU2hYUVlMOUgrbjRad2RvNmc3?=
 =?utf-8?B?K01LblVaYmpxSnV2d2pzOWNHQmI3OUI1cU5UYXErZWdPTy9Ebkw0anF3Q3hj?=
 =?utf-8?B?TEhsdko0VXFURmxFU1VrSGJzbjMrQWZkVVV6WHd2TWQ3NmphQWRucVU0cGpx?=
 =?utf-8?B?ZVUxZ091S2d0YTBUZVJuNFBOV2lCNEF1YjJaK2o2YTdiMDdMbEtpZjdxemJE?=
 =?utf-8?B?cmY0a2VvOVVSb1pSWnpJN0ZSYUIvTDZHNVEyNitTY25OUk5oU0c0aFNMK25p?=
 =?utf-8?B?K1lEbHY5VXU5NDNaT3djU2hFSUxOTVI4VnV2RWx1UllLeDhUckYwN0YwcHEz?=
 =?utf-8?B?TXoxT1JteXNCT3NRbVB3SWxTR3ZwVFlIREs2bHJQa1gyWE8velEzQ0pnNU1v?=
 =?utf-8?B?Nko5WEMxVVA5UmFmWGhyYU9KeXZMY1hvUFdENXlTU3l2UC93ZENnVXVpN1VO?=
 =?utf-8?B?RU8vTjZxcHlrUEp3MjJUOG55TzNseGhJM3J6T3U4WjBTaElYQmJ6bjJNQUJp?=
 =?utf-8?B?UEk0dytOY1E0WW9JZG5JSlZVcnFwTWwrcVI5Ykx1ZWo1SnFCQm9XT3NMRkQr?=
 =?utf-8?B?V3NGZTdzZDk3TjZSd3ZNK0lLaTg4OEZTSmJHWHZwN3g0eWZ3amtONGpGTnhI?=
 =?utf-8?B?cnNSOGN6OGR0NmFjcmViTmtmNVhpZlpMSktibExia0c0eDlWNkdBZUtNWHJI?=
 =?utf-8?Q?u9XeBsYX3diHy+b19CJ7VUhdzwQ7gRie?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UzllM3l4Mk1qdHd2QzdHb3ZvVnQ0cHVndUt4MlZCSUs1OVFYUlRweE1peXBw?=
 =?utf-8?B?bzNkZDNLNFlTb210Nkk2dGpKWXo4MTlIQUcxbkNRY2FYQlVuMGlGUERrRndY?=
 =?utf-8?B?VUZOV1UyMjl5ZEhrMmptUitUU2dIOVkwUjRnb2owTjlLUkxjckpqeXpobVg3?=
 =?utf-8?B?dE9zS0lNSnc0dFJTRFhZMXBac0p6MStHcGRhN3dzTTRXbFBkZk82RlZSWUVh?=
 =?utf-8?B?YXd5K0VuWUJzcXlmL09UQ3A4N0N4dmEvY1ZpNjlmb2o1cGdLdytZMGhKYVA0?=
 =?utf-8?B?WjhxK1dQdWJDNHQrQW9yc1cydFBGWGFaZ2xraVBSQXlOZDVtRmZtbEJRUHM2?=
 =?utf-8?B?S3dJSU0xSDlkTTduQy9WWjRwNDBQNU5pbWpDQkU5M0ZkbE9WUWxXK3pWYXNQ?=
 =?utf-8?B?TmxwSjQ5NUxPdXVaaWJWMkJXbXBvUTJoalA5eksvczEySDgrREw5WGk4K0Q2?=
 =?utf-8?B?cE8rZDNoRm1KSW5PN21USFZ2MXVMb203cnUyK2xlMldTcnBJTWtWelVxd1dF?=
 =?utf-8?B?bVYrMUJPb2p4OTJRQS9GM1hKNGFqRUlzbGgrWC83V3dTQ2laeThLZXlUOEQx?=
 =?utf-8?B?dWJLL1AvVm5wYTFTUGpPcEhjSExiQ1hoM1lVMFVkRGZaRTN6bllZdEtSZVFF?=
 =?utf-8?B?aTZRWW9JRFlkcnRDZkdnaDlQNXpGdEJNT2JKL2R3ZnJWdnRzRmNlSW43UUw2?=
 =?utf-8?B?OFBGQ0lzbDNIY0krYmJ5RGpQRWNtNmZKLzNleVFaeDZIa0RHYTVDTmVicnBT?=
 =?utf-8?B?azVXajBnQkZ0TnN0T1ErMitWWTZ1VHhMS0h3MUNkeDl5ZFF6WXFMSS83UkUv?=
 =?utf-8?B?RVpRK2Y2VXhYWlZIdjNnR3FRNmY5WTZBbGRRcU15S3VIaTdTYXdJaDhwZGZu?=
 =?utf-8?B?TnVwZFREOE9VbXptV01tbWo1UVV4UHljL3BGWWY1dU1WSXBZMDZQWkNUQmRQ?=
 =?utf-8?B?MTc5LzlkY29LcWh3UldCZ2VBYkpWQzhCYjQ3RjlmZk4xQTNRcndPWFNJMWpY?=
 =?utf-8?B?SlBCQVhUelRuZml5SFJ3TlFjakM5Z3Q2MjZqczUzd051LzZhaWpaUWltOTE4?=
 =?utf-8?B?OE5xLytHWUpnNFBSVzkwMEt0bXdIYTlJdkRXWGU0UkZnMDJFaTI4VlZOU09a?=
 =?utf-8?B?RU1ZNnpMMU1GaVdJRnQ1UEtVZ1VpZlR4WlBBS1lWN0JkMFQ1a2VXanpXVDBn?=
 =?utf-8?B?emVOOUNWUEk4Y1R0SEVPQ1BsZVlvWWErYzJoM1c1MnRyMkJCQXFIMVNtRXp4?=
 =?utf-8?B?cXM4T3FldGJKWEp2WUZCZCtNYkVDZkZWKzlIeDJ2akFPNGZPeE1kRnRaSFRa?=
 =?utf-8?B?d0wzUzNkR3hic0MyM2VmcUNXcC9JZE9ncEJSeWxYdlVnSFdTOTJNeHgzTjda?=
 =?utf-8?B?SEhYVzRvWXE3ZENvc2F6YnkzS1hrWFN3eXdEM0tmYWZobGdrZEhoSEhTZGN4?=
 =?utf-8?B?RCtYTmI1bUpQTytSNFcwbjNtSHFjRmpWRWQ3OXE2dUVobWpyS1I4ZEI1ZmtT?=
 =?utf-8?B?WXIvNitTUHIyKy92bEp6eE1oa1dsaDdhYkNTM1NaQTJXZmw4bS9CdDhMb3lh?=
 =?utf-8?B?ekhNOUIzWDRwTTJCaUhQQ2pjZ1VhdWVQT0xndm9BS3JvNlJKZXdRNUJvVCta?=
 =?utf-8?B?Y2FNMGVxelg1Z3QySmFWTE1KMjNiZmU3eStNeUUyV3k1UmFkcUwxOWNXRzRU?=
 =?utf-8?B?bkZuYzFvczB6Z2I3TEIyK0pXWTZOemhZU0QwMFdxK1lab0RlR0UxckZuWjhK?=
 =?utf-8?B?OE1xTmxhWUlxTXNUQTRGeHRaS3VUbkNXa0N3d0N2N1kreWpiWkVXTlpubTFq?=
 =?utf-8?B?bHMrUEZQQVltTWJ2YVRwQWdDblJMekdYM0ZSSnlxcU9RL0pYOFNaY3lYSS9U?=
 =?utf-8?B?cFdYTE0wTGpWTWZzL0g1bkhNNWJBSHAwOHZXT1VEUy9wTzYxaVpqeWp6bWtu?=
 =?utf-8?B?WkVxTVR3UDlXMVhiTVlDM1oxV21HSGZ0WHRRSjZKQnFBT1BZSFAyOS81V2Qw?=
 =?utf-8?B?UW1nQ3RaVlNFSkNta3RPY2NCd2FldUd0N1N0UVJiK3BzR1VCdG9CVzJEbHho?=
 =?utf-8?B?WUlOTXFpQ0RsZEJDWUsvc05sb2tIU0UyblppNDVCUzJWRnFvVXBXZWRJNGho?=
 =?utf-8?B?YS91WjMzS1Z4K24xR1JPNWJKYVNvTHRkUEtISlE4b1hwTTR2Q29vOHRqcFBM?=
 =?utf-8?B?VGc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 37947675-ed58-4c2a-7ded-08de3749ba8a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 17:38:13.6428
 (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: EeoTybRKesGioqP4xQob0Jq2MmUkCsDGx1m8jiCTqFz7IOukSeX8abbeFSb7QJjbxMFA+uikaxmmG3xPdWlrPpkFl1x5+bvapOK/bwYtkWc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB5779

On 09/12/2025 4:42 pm, Jan Beulich wrote:
> On 09.12.2025 17:06, Grygorii Strashko wrote:
>> On 09.12.25 17:57, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/domain.c
>>> +++ b/xen/arch/x86/domain.c
>>> @@ -891,7 +891,7 @@ int arch_domain_create(struct domain *d,
>>>       d->arch.emulation_flags = emflags;
>>>   
>>>   #ifdef CONFIG_PV32
>>> -    HYPERVISOR_COMPAT_VIRT_START(d) =
>>> +    d->arch.hv_compat_vstart =
>>>           is_pv_domain(d) ? __HYPERVISOR_COMPAT_VIRT_START : ~0u;
>>>   #endif
>> Any chances it can be moved in pv_domain_initialise()?
> Probably, but one thing at a time? The field itself would also want to move
> from struct arch_domain to struct pv_domain, I think.

Agreed to one thing at a time.

The value itself is a total mess.  Storage exists based on CONFIG_PV32,
with 0 yielded in !PV32 builds.

Yet, in CONFIG_PV32 builds, it has the value 0xF5800000 for PV domains,
and 0xFFFFFFFF for HVM domains. 

This is nonsense, causing e.g. COMPAT_L2_PAGETABLE_FIRST_XEN_SLOT() to
return answers at opposite ends of the pagetable for non-PV32 VMs
depending on CONFIG_PV32.  I think this all works because the logic is
behind suitable is_pv32_$FOO() checks, but it's far from clear.

It is only a PV32 dom0 which can have this set to anything besides
0xF5800000, so the "correct" thing to do would be to leave it 0 in
domain create, and set it to 0xF5800000 in switch_compat(), along with
the custom setup in dom0_construct().

But, lets get the d->arch.physaddr_bitsize adjustments sorted first
before conflicting those with this change.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 18:08:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 18:08:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182103.1505034 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT27x-0007W1-CM; Tue, 09 Dec 2025 18:07:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182103.1505034; Tue, 09 Dec 2025 18:07:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT27x-0007Vu-8u; Tue, 09 Dec 2025 18:07:57 +0000
Received: by outflank-mailman (input) for mailman id 1182103;
 Tue, 09 Dec 2025 18:07:55 +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
 <SRS0=T3Df=6P=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vT27v-0007Ud-PH
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 18:07:55 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fb8e85dc-d529-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 19:07:54 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-477aa218f20so40024095e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 10:07:54 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a7d99ede7sm23307325e9.4.2025.12.09.10.07.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 09 Dec 2025 10:07:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb8e85dc-d529-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765303673; x=1765908473; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=FCnAMLT3L0ZNCi75nLm7gFLzx+WgVtvN3eDexyByS7w=;
        b=oEP4kW/3iIRJ0OpstWEdl3ZFRjx36QQrMJqP2fEU5IPMUk6OJjNZsJoncaHADg1v3w
         uYL7C6ASRoJVQslZ9gNhWZNVzCelYTcdD0LF2aH4fq4U1pFF7GW5e36O7IKxjSKMC18b
         HuxZ5sEOyqOiAHshP3d3QDU203fdHCWHeJtAQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765303673; x=1765908473;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FCnAMLT3L0ZNCi75nLm7gFLzx+WgVtvN3eDexyByS7w=;
        b=blwm2mEphsJNMXWF567KafDglplq3J79Pp5z5JHJjAEfPbrYgO/SiDlmRjgyWC8D++
         Nnc3ZzSVefmUt5OTy7Ll77gF4KnU3+SWWtVUivq+PxS6Ca+i/cT+PJB0Js9pyxqJ7fHH
         sGcVlnF60m4R7bj8Bf4hNpXZQb9ZiRhyHYuoXGpG2/DhDDnF+6t+NIoZW7jm63cvAcoU
         6TvXv44ztJK3G1QAdq2L9OqgcQ8qbHbKTphJSj0Ush5gl3I5097DASJ81WpThwu1RM8Q
         eDUGQFbKJ9gJjAZo+qMsFfebFgpaJivYVxqOV+RyiYJiSUy1bLwom7mPAbZoxN1c8h8Q
         z5KA==
X-Gm-Message-State: AOJu0Yxb/lgY7az+fCnktlY4rmBOHPc93oh3or9Tv60qjEWBAn2OqzgQ
	WfOjk57H/WBhB64XUxoc+muzSUJ/qQ2aWHnVt6bLGJ4HvHPFDuXWw7ovYeY8Ik6tkcaJ/uD/ALB
	SLjQh
X-Gm-Gg: ASbGncvV6RUW/XrYB9/y5THlg0OvquyG6kSMIPMbOXO93Es7cWAf+uZxyLcVEwxF6Yr
	/RWiOgv63ordG78AvUzjXnhJyhzO7cpI5qd4GE/+yQYakt4WU1rG5cpw5vBRddhKZTMeRheQWr5
	HkEI7foJNHtfrJrTa8rLkO99llzfk0vc10KOvMdSNsaKq+/PVJWQye1LcYrqvvlNAE3RhTHCiKe
	MbiUNu6WOXCzJNEu5RQytE62exII4qCf9xZVFn/4nsJiCrXDiVp43y6wxVELKGSz5gyz9q/ACBq
	4XxO1lzcQzgT9g5J9UXVmliAsONYWA/enk2Nu74tzITVajzxendxFScjFKn3KonNcSZUl5fMX6J
	adyhIvdOQj5HJPuD99O5ub33njAL3TBTEFzNNO85pdY8Br6KjSZ47gNeB+KbGu6YluHJ08Imti3
	RAB6cnd80qCG9Tpel8DwDegV2qww4O9AnBPA7pP0W18L8nmYL/S25QNSWHVhyVNg==
X-Google-Smtp-Source: AGHT+IE1x6QGfrVhzRyYIFiRU9A+KGW8sJZxobPw5EEF7+Y7BEFRpoTzq+Y0p4B03LahgORzJV/ZPQ==
X-Received: by 2002:a05:600c:a43:b0:47a:75b6:32c with SMTP id 5b1f17b1804b1-47a7b17cfdfmr44385185e9.2.1765303673189;
        Tue, 09 Dec 2025 10:07:53 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Grygorii Strashko <grygorii_strashko@epam.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] x86/pv: Inline domain_set_alloc_bitsize() into it's single caller
Date: Tue,  9 Dec 2025 18:07:50 +0000
Message-Id: <20251209180750.2145364-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Prior to commit 02e78311cdc6 ("x86/domctl: Make XEN_DOMCTL_set_address_size
singleshot") (Xen 4.9, 2016), it was possible for domains to switch to being
compat, and back again.  Since then however, becoming compat is a singleton
action that can't be undone.

>From the context it's clear to see the is_pv_32bit_domain() check is
redundant, and from the singleton nature being the only place setting
physaddr_bitsize, there's no need to check it for being 0.

No functional change.

Co-developed-by: Grygorii Strashko <grygorii_strashko@epam.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Grygorii Strashko <grygorii_strashko@epam.com>

Split out of series to simplify things.

bloat-o-meter reports:

  add/remove: 0/1 grow/shrink: 1/0 up/down: 25/-96 (-71)
  Function                                     old     new   delta
  switch_compat                                447     472     +25
  domain_set_alloc_bitsize                      96       -     -96

which will mostly be the LFENCEs embedded in is_pv_32bit_domain().
---
 xen/arch/x86/include/asm/mm.h |  1 -
 xen/arch/x86/pv/domain.c      |  6 +++++-
 xen/arch/x86/x86_64/mm.c      | 13 -------------
 3 files changed, 5 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 17ca6666a34e..9438f5ea0119 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -619,7 +619,6 @@ void __iomem *ioremap_wc(paddr_t pa, size_t len);
 
 extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int pxm);
 
-void domain_set_alloc_bitsize(struct domain *d);
 unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bits);
 #define domain_clamp_alloc_bitsize(d, bits) domain_clamp_alloc_bitsize(d, bits)
 
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index 9c4785c187dd..11db6a6d8396 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -254,7 +254,11 @@ int switch_compat(struct domain *d)
             goto undo_and_fail;
     }
 
-    domain_set_alloc_bitsize(d);
+    if ( MACH2PHYS_COMPAT_NR_ENTRIES(d) < max_page )
+        d->arch.physaddr_bitsize =
+            /* 2^n entries can be contained in guest's p2m mapping space */
+            fls(MACH2PHYS_COMPAT_NR_ENTRIES(d)) - 1 + PAGE_SHIFT;
+
     recalculate_cpuid_policy(d);
 
     d->arch.x87_fip_width = 4;
diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
index d4e6a9c0a2e0..42fd4fe4e9b5 100644
--- a/xen/arch/x86/x86_64/mm.c
+++ b/xen/arch/x86/x86_64/mm.c
@@ -1119,19 +1119,6 @@ int handle_memadd_fault(unsigned long addr, struct cpu_user_regs *regs)
     return ret;
 }
 
-void domain_set_alloc_bitsize(struct domain *d)
-{
-    if ( !is_pv_32bit_domain(d) ||
-         (MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page) ||
-         d->arch.physaddr_bitsize > 0 )
-        return;
-    d->arch.physaddr_bitsize =
-        /* 2^n entries can be contained in guest's p2m mapping space */
-        fls(MACH2PHYS_COMPAT_NR_ENTRIES(d)) - 1
-        /* 2^n pages -> 2^(n+PAGE_SHIFT) bits */
-        + PAGE_SHIFT;
-}
-
 unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bits)
 {
     if ( (d == NULL) || (d->arch.physaddr_bitsize == 0) )
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 18:26:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 18:26:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182113.1505043 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT2Q9-0001u7-Qu; Tue, 09 Dec 2025 18:26:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182113.1505043; Tue, 09 Dec 2025 18:26:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT2Q9-0001tz-NC; Tue, 09 Dec 2025 18:26:45 +0000
Received: by outflank-mailman (input) for mailman id 1182113;
 Tue, 09 Dec 2025 18:26:44 +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
 <SRS0=T3Df=6P=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vT2Q7-0001t6-Vx
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 18:26:43 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9c41e0d2-d52c-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 19:26:42 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-47a80d4a065so6109935e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 10:26:42 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d222484sm33422334f8f.24.2025.12.09.10.26.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 09 Dec 2025 10:26:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9c41e0d2-d52c-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765304802; x=1765909602; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=qgeu3O/7msTq+RISNhzvJM6a1GlYNkNz0h2icF9rS7o=;
        b=le1QSbtIXNpHV/j8+cq+9k4QXOhEf0NJ5xb5R4nTPahyIfDjsU5esdq4bHq5zn5qFu
         60pGwlyb7NSc+bMiNdiY+QaP+Kbae657CO9hZuoUohFHFdkxGWr37qAY5qGQKTbAV/Lh
         FniWNt3JLLS01REhv+89gabvQeCujqXWkUP/k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765304802; x=1765909602;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qgeu3O/7msTq+RISNhzvJM6a1GlYNkNz0h2icF9rS7o=;
        b=oYIjMKJisJEJ9tF+FOg3SAwN8QxbDQqx3yi+FNrtdlK7YUT/O9j+gvL7W2IFNodYNz
         WkvPNRFGvw5DmbjgyTqLFeiTiBsfVRdajW50KVKq/LQdYskeFbrlo5I1fYjHX0jEErSY
         dN9j1LS5l4pDwui1JTUmEtEgQbGB9n1vNTusDxU/LVqjDWdoWip9MzmVxpPsS2BHm38H
         bzqjAe419ddUJHlo9zVUsZoeC/wf+l0E1N9r4Mg7nC5sjXQVszZRaNQIJowQVQJ9qwaC
         Fa8pdOXX8JxN05VQp6CeYYvhg7g840y47yxQTtQZ5Ah6aecjTDqnmxaolEATh4YhIW0T
         kthw==
X-Gm-Message-State: AOJu0YyFDGZClPQ3tYGSY+jV112LYLbnxM7vBZN6UiS3pJYiRbLeLv+4
	wuJVCwKDRKT6CgYGxQ7crpbK48D9bWh1Z8LhBa8sHhdlojjX1suyPBJSIPRRVwwyO+BLayHjAg8
	UJc7C
X-Gm-Gg: ASbGnculdiBJH8CEdRZzKGARAqp0m24yo0HBCVbA8ff5g9Fxilm3QrLLiNN8F03eyKV
	ZaROUX82EOkQMX5oee2i/mH4Cx9UHDwjslw2BdCsynWlrLOGH0ygbyd14ThDEf+ZqQf6i8ieLPK
	Xr7oNpy4tnjQCUqJeT7DGk/FFwiHdRlP1mrOvcFxXtzeuHoOBZ+d7xwWXoUihkcXuvYirzZS/Sy
	kxpDfDRPhT+ZDb/xPYfZhNV4UOZW5BmxTjtdwOXgDxQH7CsMSvuSLeWeCXaSb23KS1XJYcO6VHb
	pd8cMGaZZckN5MR3mFdcsIWNrVpV+uh6Nb+0jcCw8SQwUhhl+VmJXcTeiDkJ6eURJwfiWqVTZ5r
	aPfxTOh0gukIoWdFJspvHTtPXiAJXd3gWNKkMU1zc0usJKmhsG1FlQ6rooXFH8x1viqBDU4aQVT
	L0J7i3e8fHD3eYmRHhEL3C0yugPFcAjEhwodu9c3123dm0kj57mL2b2JQ8eiyZAA==
X-Google-Smtp-Source: AGHT+IE35wsE3QIKMycmMi+jn5VAyMNL8EqgQOIZzhx3omT9CEYdt1JbuYd5/MrUaNof6LHS5cejwA==
X-Received: by 2002:a05:600c:5252:b0:477:7b16:5f9f with SMTP id 5b1f17b1804b1-47939e3a708mr133176575e9.31.1765304801779;
        Tue, 09 Dec 2025 10:26:41 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Grygorii Strashko <grygorii_strashko@epam.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] x86/pv: Move hv_compat_vstart into pv_domain
Date: Tue,  9 Dec 2025 18:26:39 +0000
Message-Id: <20251209182639.2171895-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The hv_compat_vstart variable is hidden behind CONFIG_PV32 but lives in
arch_domain.  Moving it into pv_domain is an obvious improvement.

The value however is less obvious, and a mess.

In !PV32 builds, it's uniformly 0, but in PV32 builds it's ~0U (HVM guests),
__HYPERVISOR_COMPAT_VIRT_START (PV guests), or custom (PV32 dom0).  This seems
to work because uses are guarded behind is_pv32_{domain,vcpu}().

Simplify things by leaving it as 0 in PV32 builds for most domains,
initialising it in only in switch_compat() when a domain becomes 32bit PV.
dom0_construct() adjusts the value after calling switch_compat().

Suggested-by: Grygorii Strashko <grygorii_strashko@epam.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Grygorii Strashko <grygorii_strashko@epam.com>

Texturally, but not logically, depends on "[PATCH] x86/pv: Inline
domain_set_alloc_bitsize() into it's single caller"

Bloat-o-meter reports:

  add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-65 (-65)
  Function                                     old     new   delta
  switch_compat                                472     463      -9
  arch_domain_create                          1056    1000     -56

The reason that switch_compat() gets smaller is because
MACH2PHYS_COMPAT_NR_ENTRIES(d) can now be calculated at compile time,
including the fls() thereof.
---
 xen/arch/x86/domain.c             | 5 -----
 xen/arch/x86/include/asm/config.h | 2 +-
 xen/arch/x86/include/asm/domain.h | 8 ++++----
 xen/arch/x86/pv/dom0_build.c      | 2 +-
 xen/arch/x86/pv/domain.c          | 2 ++
 5 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index d33a42c8824c..5e37bfbd17d6 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -890,11 +890,6 @@ int arch_domain_create(struct domain *d,
     }
     d->arch.emulation_flags = emflags;
 
-#ifdef CONFIG_PV32
-    d->arch.hv_compat_vstart =
-        is_pv_domain(d) ? __HYPERVISOR_COMPAT_VIRT_START : ~0u;
-#endif
-
     spec_ctrl_init_domain(d);
 
     if ( (rc = paging_domain_init(d)) != 0 )
diff --git a/xen/arch/x86/include/asm/config.h b/xen/arch/x86/include/asm/config.h
index 156369695442..cc80f2c62310 100644
--- a/xen/arch/x86/include/asm/config.h
+++ b/xen/arch/x86/include/asm/config.h
@@ -201,7 +201,7 @@
 
 /* This is not a fixed value, just a lower limit. */
 #define __HYPERVISOR_COMPAT_VIRT_START 0xF5800000
-#define HYPERVISOR_COMPAT_VIRT_START(d) ((d)->arch.hv_compat_vstart)
+#define HYPERVISOR_COMPAT_VIRT_START(d) ((d)->arch.pv.hv_compat_vstart)
 
 #else /* !CONFIG_PV32 */
 
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index 386ec6174589..7e5cbd11a464 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -288,6 +288,10 @@ struct pv_domain
     /* Mitigate L1TF with shadow/crashing? */
     bool check_l1tf;
 
+#ifdef CONFIG_PV32
+    unsigned int hv_compat_vstart;
+#endif
+
     /* map_domain_page() mapping cache. */
     struct mapcache_domain mapcache;
 
@@ -315,10 +319,6 @@ struct arch_domain
 {
     struct page_info *perdomain_l3_pg;
 
-#ifdef CONFIG_PV32
-    unsigned int hv_compat_vstart;
-#endif
-
     /* Maximum physical-address bitwidth supported by this guest. */
     unsigned int physaddr_bitsize;
 
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index fed03dc15dcf..418b453ba8bf 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -521,7 +521,7 @@ static int __init dom0_construct(const struct boot_domain *bd)
                 printk("Dom0 expects too high a hypervisor start address\n");
                 return -ERANGE;
             }
-            d->arch.hv_compat_vstart =
+            d->arch.pv.hv_compat_vstart =
                 max_t(unsigned int, m2p_compat_vstart, value);
         }
 
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index 11db6a6d8396..ca5f6920516e 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -254,6 +254,8 @@ int switch_compat(struct domain *d)
             goto undo_and_fail;
     }
 
+    d->arch.pv.hv_compat_vstart = __HYPERVISOR_COMPAT_VIRT_START;
+
     if ( MACH2PHYS_COMPAT_NR_ENTRIES(d) < max_page )
         d->arch.physaddr_bitsize =
             /* 2^n entries can be contained in guest's p2m mapping space */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 19:19:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 19:19:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182125.1505053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT3F3-0008GD-Ef; Tue, 09 Dec 2025 19:19:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182125.1505053; Tue, 09 Dec 2025 19:19:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT3F3-0008G6-C2; Tue, 09 Dec 2025 19:19:21 +0000
Received: by outflank-mailman (input) for mailman id 1182125;
 Tue, 09 Dec 2025 19:19:19 +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
 <SRS0=I/6M=6P=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vT3F1-0008Fx-F0
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 19:19:19 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f471183b-d533-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 20:19:17 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DU4PR03MB10910.eurprd03.prod.outlook.com (2603:10a6:10:593::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.7; Tue, 9 Dec
 2025 19:19:14 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 19:19:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f471183b-d533-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=D24MxNr70clYAp+nfZ67eMoOFB9+ESbuSsTJ/4hOnGi8EaoTQ0Vei/72cOWZ5RSJ1Dm2EURGoCborJVhCdu2GV2NPh0AvmcS7AijacaXlOKPwIHL7eHgItBKtmMjJFjMGmeC9s9iVNrMfN5qneJupUNxYwsCh00nIooz8+L3B4zTP5JM0BMRg+IvaIrFmu7a19UgBemSnmk/xYF+U2KRtKZa+B26Ap4DmsCM/Z4xpGGGCUafOSfu42ErzxrWbHVRoaN2XrAa89lLqdvhUBYvEcEV6BhPHRPJtOb8eDdb2lEw6qJn/5qWpH1+qU6HDiviTY5TDuQ7HQXNdsdtcFOT1Q==
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=QUNwCmG78b9LMMATcUiuU5iYhBPylNLMGrW7cfX9wXA=;
 b=nW7ots2hxPaOE4ifmT1pdmhkh+/SbCWyV/jtW0RA7RvOEltpf0NPfiTIXv7rOZ1wE4+rMRDJd2h1TajofOJ0x5YRc+ZrEdRgbNZndIEKTIX/10pAPsgzTwDj4fb/mWWNdo52+aIg2sISuole0MTVYTg4C2rXCPpg1dEg06oaYw/bJXecfAxvxexMfcXidFk6FTE/EoL17tMkLYAS3UK1Pi4kJ2e5OnlDQCoIkX1+Bu1Aa8v1LOcrxo9na0j3ceVZWYY7u/Y0M5mxiYDTSAr5JrFMgLde8HGhxae7mwV1QBMrxKRmkSJZlQSB8SI0YBdJtLjjQmU3FZzt7oVELmBC4Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QUNwCmG78b9LMMATcUiuU5iYhBPylNLMGrW7cfX9wXA=;
 b=WKIE9MTc/prmsgOA9FrSHsKH9uAPx/SaFvvAs4CzR24T3SUqtr85KzadyvC7BYV2u3xWFNRxEM2Z9iERfTU8Zs56UBsM0S3wI1x+NhO3818zETaqXpZckQ5nl0ATSnG+sAOmtbKCaIjDytgcpbJVBqODAMLdqvddaha1tK91uBG0ylpNPa597FEjK8k0aDLKyaBxAQpS2RGyqI+qzXZ8+Jo2k7d4rrK9twqKWYS5cSQzQltM9e1rWUAFC+BZzkeI0v/AUUvAMGBsjBDRyVsJGUk86wlXnYCpNKqev/kp8B0VNp3QlNqBJvR4sx/pClxSBCG/2uxWxipfLXut/OkxCw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <d0f0bfc0-e0d2-45bf-8969-c09590429ab8@epam.com>
Date: Tue, 9 Dec 2025 21:19:13 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pv: Unhide writes to d->arch.hv_compat_vstart
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20251209155719.2098440-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20251209155719.2098440-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0013.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::14) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|DU4PR03MB10910:EE_
X-MS-Office365-Filtering-Correlation-Id: 0fa26d7c-933e-49fe-0c60-08de3757d702
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VnBiZkdES2dNaWVKMTMveHNTdEtkR2ZkVlRCakJsYUUrTlpNblNCYlFQS0JS?=
 =?utf-8?B?QVFJTzdoNzhlbmtqUVo1STg0My9Xa053OEthM1h5NWdvbFdHUmwxbERBMEFM?=
 =?utf-8?B?dTdMazZvRmM3QTRFTFJma2JiSG9QbXphZVdXYzRncUhMeUU3UDVrcU5ZOG51?=
 =?utf-8?B?cGYzaEFqdmgveFhlNGdPcm13L1Q1QSszNGxFNWo5L2lhTmxkaThHM1lhcTZL?=
 =?utf-8?B?dDNBaXhPVEQzeTZZYURlNWpwUkh4M1I2b1h4WStXVjQ4MlR4M0w4b3J4RVNP?=
 =?utf-8?B?anJPM0dSWkorMTJFRHpKTlVxV0NkUEsvZWkxL296UVRHQk5IUi8xRUpqZ21T?=
 =?utf-8?B?Z1VEWVV4WFdvU0d5WkQ5WFVRN3QvMkdhV3FWbDBWbjhUc0VDdEJlSkFrM1Br?=
 =?utf-8?B?Z29IN0pVZ0ZsMWdvempzSVpvaDUrQVlVemVqcWRydU8yTmFVRmhlQWJzbzlu?=
 =?utf-8?B?R2Z3TG8wQ1JUeW1GSXRPSkU1ekZzZDVsRUZpTzV2QmdmMVRXQjVGZWg1Kzlw?=
 =?utf-8?B?Y2VKUmI2eHdIQTBYMGY4YVN6YTFDU3V0eDBQLy80c0djVDNFSE9lcG5yaGJF?=
 =?utf-8?B?OVlpYXdQbUJZaUcwMTF1RVlTSmdScmo3dGdwakoyQjJUYmJyS2FNVTlBdlJ0?=
 =?utf-8?B?UnpHejk4TnQ5TUhqanlKOHdyRHdydXBVUHJjdmNFUHJGYVVRMTRrOXhUcENB?=
 =?utf-8?B?Nkk3RHZnNWgvS2NSM1BHSFhKdFJrWTA1UFFZeTRzMlAzbkZDbUxnMHl5b3FS?=
 =?utf-8?B?ZmlKQ3NhQ3FCcjZ5V0VNdkgvYnNjeFMyalNrSzQrNFZENmRscFJxSUVFcmxw?=
 =?utf-8?B?MFhibTlHSm5xaklUSldBRG4rcDhkdGpaSUhrYmp5R240UlgrOVZtU3c2L0xW?=
 =?utf-8?B?SmdMN3EwVEloeHlNcWp3QVdXL2VZdjlCc0RMUjJQNk9pQlRBdDBCY0JvZ3E2?=
 =?utf-8?B?S0pad2F2TE41elZPV09abm1BMlBXcnVmTk1WSUwrN2dFUEY3Y3pjS2FPTTdn?=
 =?utf-8?B?cGRtNE1UMVM3cDFnWjZxQ2J1eXBaYnJ3bFNZWmhQeTZLYzFnb3MzQVlOK2Zw?=
 =?utf-8?B?c3VTR0Vwa0EwNENOWlIrS1kxdDJyZzcxTnFTdy9nUE5lM0ZxZDJtS0s0THZT?=
 =?utf-8?B?ZUNkK1ljQVdnV09SMHBFaXFCN254dFdTZmV5V2ZJY0lQTHZSaVV0eFNpM3lZ?=
 =?utf-8?B?RTdnQjF2MVJXZ3R1bFhKN3Q5R3YzRVl1YlY5a0wwcmRlQzVNM3NoYXROVXQz?=
 =?utf-8?B?aUVSU1RXNmIyeTMrdDIvOXFJek0vT2I4YUFFWWlYMW9WdnJXcnNmWDJDQk1T?=
 =?utf-8?B?Y0JBbGhsQ0hDdWlpUWJtOXZXanpZODhmOWx3bTdrdGV4YTVHTWRFTVNHYjJG?=
 =?utf-8?B?ckFuazhhN1VUM2l0cmJMQzloL016bStYaUE3WkNqT3VVNk1tbWQ1NC9BSUpj?=
 =?utf-8?B?K3hmS1o5Qmd4Q3JvbzBjSUFmelU1YVNHY2p5VkYvU1FUV1VhbUpzR2RiOXR4?=
 =?utf-8?B?UmhKajZ5WEIvQTBQNVJ4b1U3Qkh6YXg1NWk5NU4xU2hJUHU5SGpsKzFNYlRJ?=
 =?utf-8?B?TFJiL29rMEhDQzBFTWZwOWkwSUliSmxsZnRMU0l4QmwxTmx3bWJkNUJscDRU?=
 =?utf-8?B?S25KSG5YaGhBMmZRUTBZZmhQdFRicjlhVWI4L2JLTkpSWDRnbmZxZTlIZ3A3?=
 =?utf-8?B?eTZiRDdwWTBxdmJhdEJwZUFwZ09xUFk5Zld4dndZaEZPSEx3a2wxYVZHajZS?=
 =?utf-8?B?Vm54M0F4Qk90QnNhK2JPRjVaRzJDd1BOQ014M2F5U0IyaWsvZmJuak12WlRz?=
 =?utf-8?B?NXRLWFNSb0VpbHo2cE1QQ2dIcEVBYll5NlVWLzhLLzZXL1FBaGgzQS8vQkJM?=
 =?utf-8?B?OGdtMGkrRFBsQktKWmpuYldwZ2dqM0JjcHBJcDlVeEV4T3EycmI5Kzk3aXdr?=
 =?utf-8?Q?vFFZWfkQM3JAb0erOlxNrno0FnzQsg0Y?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dmJtYkQ5ZFIrT2U5UU1ETTdOZzc3UVJxMlNBREUxbTRnZTcwQlFicFhGUG5S?=
 =?utf-8?B?VHZnT2VQazZXMkI1Ulp1cGRLYmlmVU9tV1duNE5HTVgzS3lsZTk4S3kzbWdq?=
 =?utf-8?B?UXNVMTZiSHFPMURQSWFMYnlySDN3ZVlVQXhBd0Q4Z1gzemZEVk9wcC9icTlK?=
 =?utf-8?B?TW43QWVRcmRXdVlnZUo1Y2pSNVZTU1IxRkpWLytRamZwQU9RdWtiTWVISFQv?=
 =?utf-8?B?akVmNHRLNXBKcTJwY1E0a1Y4N2F0L3ZraTRBNnJxZXBMU0lqLzdOekFTWVJo?=
 =?utf-8?B?R3RJMmVYbk5xQ0taRFJveXVjdUFIOVphMFAxMTUvNW9kL0wyK3Qra0VPb21o?=
 =?utf-8?B?SVA5d3FnK1BZOHNjM05ZTHVFR2h5K1BDcXVpYXQrVDJadk92SEdYV2lPOEJD?=
 =?utf-8?B?SmdkeHpOa2VGSU51dTNzWXJjb05sLzZGYi9PUW03QjVCbTdIVjNuRnlyZlZQ?=
 =?utf-8?B?Vm9kN2xSM05UTi9UN3BaN1M0OWxDcENnRVlwYm9kSTJTTiswakFsMnBmQlU3?=
 =?utf-8?B?MkI0T3M5dHNDbWFpZDdPRGo5bnhJQkYrUVBmdC9XMFRIVGI3VjVSVk9YZHRB?=
 =?utf-8?B?cTR4S3hvRi9qMDI4djVLY2o5c0VCcGhBbGp6T3VCcDVaQ1d4MG1iak1vaWx5?=
 =?utf-8?B?czluTmxSVlZnTG1Pa0JIUVpoSUwzVGdsTzl1RStQaFFkZm5iTFErOGxhL2JM?=
 =?utf-8?B?YVh5RkhrYWpORmQ0SDhKU1M0UnNIQXhBYnJJVWJQRkZuQVFpb1Q5aDA0c0l2?=
 =?utf-8?B?cjVNdm0zbEFocDhtRDdac1FQOHdPR2dTbkExb25reWZ0MlQweWR6N2licmxE?=
 =?utf-8?B?N2tVcm5MV3lSa2U4cEpKOUh2bjFDOXhIeTdTaVVlME1GWWN2WGEzL0kzR0RG?=
 =?utf-8?B?bDVvR2FJQ3RiMXpUdXN2MjluRnNIRnRyRUw3ZW00dHk1VTkyandwak51ZUkx?=
 =?utf-8?B?bHJXZ1RPa3BqTitHUmpNK1NMa3R3eHplUEVLVEVublBld0dhOGl2V3dEYWpH?=
 =?utf-8?B?aXFDa0UzcENSK000aVZXQ3g4NlRHdGNna2xsUzNLUENyZVowK2hnUzNQZHVv?=
 =?utf-8?B?N0cyUGsyOXc0M1RnMURBNy9DclJtOHRkNkszN2VQTXZRN2dESlo2R3htNzN5?=
 =?utf-8?B?RndNeERDNklhc1FPR01qNkF2UjRvRUJpaXF1UDF0OWNDam82eSs3NWh1YmJF?=
 =?utf-8?B?d3ZqWW5pRVI5Lyt2ZVkzcEpZUFNzUnlRRTBQSEwvMXYyR1hLS2d5WnpMcXpE?=
 =?utf-8?B?dWU5MGRXYjhaWWdMUjNYYXp6NVZLTU03M1lOcHR3TjIwbkZ4WndVMmhCSE9R?=
 =?utf-8?B?ZlZnWDQzWFFvcGJ4WXplUEFKdlhxOFdOVVBhODRzUTNuTEZmVDU5aTVaNXN4?=
 =?utf-8?B?T3prd3NuRllReXpBeFpGR0g2TTlWNjNLNnhTazNrTExpYmFzM1huaVFqUDY5?=
 =?utf-8?B?UWg4eDBsZkR6Vy9tNzdCRSttWHNhVTRRc3AvYVJpUlE4TkR1VDZPNjViL2N1?=
 =?utf-8?B?TzJGY2hDczJSZ1JxRlcxVngrcHNxL2hZZUpRb3I1dHZQbXNIcG41SWl0bXUv?=
 =?utf-8?B?TUtES0J5djR5WGk1c3dkazVZS3Jqa3RpVEpFaEIzdEJlSWE1cjFyWSs2c0NT?=
 =?utf-8?B?eEQ4WUNFVEJxUVB2WW9hNStaZU5KNVZrNFRrTEtKRFl4dmFxcURBYlp3MmJH?=
 =?utf-8?B?MU9tKzYwTlZuSW1WOHAwZVFGZlBUa2JnenZudVk1UkhsNHJ3Nk9uTy9LdXNO?=
 =?utf-8?B?bU9hL3NNTzlzWENWanpUU2dFY0IydVhvdENUU2traDdGbzRJU1BzVlBVdXVV?=
 =?utf-8?B?bG9oWWpvREUycklaZGdIREdwRHcrcFUwWUtZT1FNUlVNMnQxaElaWm8rcUZ1?=
 =?utf-8?B?cUgxYkdBTjNaS1ZLYW5KRHZhdEV2MkJFR1BYelZsQ0xWdk9LZXFvbmlSd3VK?=
 =?utf-8?B?OVJZS2FRd2VnUTRlV1F5aEtHUjhiNHlmTnRXekhKbndBT1MrZ2RGMzZzRDdD?=
 =?utf-8?B?MG1DVW9ROVRkaGNIUTBSUkhqTzVTUjVqZlRpaWdxRVkrdS93bFU2a3A1K3FM?=
 =?utf-8?B?ZithL29GNzBybUZDWWxRWWpoNGlnUTdJWkVYdUJkeGh0dGVYZDVlZDRDTkdJ?=
 =?utf-8?B?Nk5hMU5KZElZV1R3VktUeVB3U2hscGVyMWZXVjVMdjBWNXFyOUZ5YTlSbnRW?=
 =?utf-8?B?VXc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0fa26d7c-933e-49fe-0c60-08de3757d702
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 19:19:14.4186
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cu+myPDOUIbq94Rt4PmV30da4gjJ79rXdR9os0IqM5C00lnl/RRPR5VloKXprQWK5uSUYBsyH125RQioRRYYyQhNqBh/FwWMv89xwKVxV9c=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR03MB10910



On 09.12.25 17:57, Andrew Cooper wrote:
> The variable is never 0, but because the writes into it are hidden behind the
> HYPERVISOR_COMPAT_VIRT_START() macro, it does a good impression of appearing
> to be 0.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
>   xen/arch/x86/domain.c        | 2 +-
>   xen/arch/x86/pv/dom0_build.c | 2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index bd75d044a01b..d33a42c8824c 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -891,7 +891,7 @@ int arch_domain_create(struct domain *d,
>       d->arch.emulation_flags = emflags;
>   
>   #ifdef CONFIG_PV32
> -    HYPERVISOR_COMPAT_VIRT_START(d) =
> +    d->arch.hv_compat_vstart =
>           is_pv_domain(d) ? __HYPERVISOR_COMPAT_VIRT_START : ~0u;
>   #endif
>   
> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
> index 21158ce1812e..fed03dc15dcf 100644
> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c
> @@ -521,7 +521,7 @@ static int __init dom0_construct(const struct boot_domain *bd)
>                   printk("Dom0 expects too high a hypervisor start address\n");
>                   return -ERANGE;
>               }
> -            HYPERVISOR_COMPAT_VIRT_START(d) =
> +            d->arch.hv_compat_vstart =
>                   max_t(unsigned int, m2p_compat_vstart, value);
>           }
>   
> 

Thank you.
Reviewed-by: Grygorii Strashko <grygorii_strashko@epam.com>

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 19:21:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 19:21:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182140.1505063 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT3HI-0001MO-Uf; Tue, 09 Dec 2025 19:21:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182140.1505063; Tue, 09 Dec 2025 19:21:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT3HI-0001MH-Ro; Tue, 09 Dec 2025 19:21:40 +0000
Received: by outflank-mailman (input) for mailman id 1182140;
 Tue, 09 Dec 2025 19:21:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I/6M=6P=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vT3HI-0001MB-96
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 19:21:40 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 483e881e-d534-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 20:21:37 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DU4PR03MB10910.eurprd03.prod.outlook.com (2603:10a6:10:593::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.7; Tue, 9 Dec
 2025 19:21:36 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 19:21:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 483e881e-d534-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=G2foqDLb9AE6ayX2pIl4l0+PV3twC/cOl6sgfiLGmWq0H+GzTXabiOmEoIR3LZp2rwgrgYopFt1ZL7AXNzaoZNZ+dtpBtBkv11niNlIXbHIWDsjFr24Qfd6JubhahLiwosBRpjHxLBYZsspt4SkXEHVjcOzskyIpGs+FHB2WRG73Qcgaa5+V8TfQ6l1xfOWnEhHgVmGkQyMYN7fUkAkh7YGIkvDPB2RHxQiVwSkEeWoBYfJbjYLs+LvaAcE3HFCbfU3O4dkojVdWE7BDABa2S9MZLwrAlf4FTo0uZM5EUq7/k7UxEDvm/EhE2xZqOiGKaWh5JI3OP/VSpX70TpowuA==
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=03oTRy/dkZDah/ZFEIu4TRnRO5tGIu7nOfhtozrDRAQ=;
 b=LcNjZq56Qclrc2PylkkaoLz2sHZg5Mt/s76AhKWy3Ypoc6A5/6EFzzV+pcV2UAjZfma9YX2sAku9AB5A3qHmkUJy/SN2HiQoT+ru0WiX/QP+iu58s4nhKIl2ZIB+ojz98oly8dNrhfBHJBX1K89SrnPAsHN+KlahBIRorFnxPtEcKwFnJBugmPm3zqpNRsAxOxsfadRHMPQfAxyRPrLMYwlxFJwrkZWAVodZqnXemtz/nc0lNPzitKzzVtV7lrSA1a54Gx1lY4WIe1oFRKRaK3NkEWK5JWaQdpH8UjMapQGVH9/oift7N0W2xmANK9rp29Fqmyu6iG3YC/Ul81dLxw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=03oTRy/dkZDah/ZFEIu4TRnRO5tGIu7nOfhtozrDRAQ=;
 b=RbI+M4opuyx5ZS/2TLhUTH3GFkxvtoy0xZuUhHJEvqxRgKwyMrA3qQCsjMmbaQ79gR8Wy3EOLRMEWW+zoSqv6D64v3ZnzUbFIy+sQongoyVKh/U3sfYov+JiqeW/X7Ov0063MNoEmCNEqN9RLU9DB8IKWJoJ7MUrg/cN8u7fhqEeEUiwDrSzq1J5F5PbJVA+Q7rz7Cd0JvRZlNVvzkQxFSKUpApMFs7f7PFjaSV0KIg+byJgo/pSQdB9UuC2XAShgI7SmJe7AVcvth2ZouGwoJpdryT8GIxbQQ3nwVQzn3H/5uJEeM2IxwvDY3as1Cye3OOOFi1eANowfZyz5bOXPA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <83c524ed-dec0-4792-9129-0bfc7498ac97@epam.com>
Date: Tue, 9 Dec 2025 21:21:34 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pv: Inline domain_set_alloc_bitsize() into it's
 single caller
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20251209180750.2145364-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20251209180750.2145364-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0020.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::9) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|DU4PR03MB10910:EE_
X-MS-Office365-Filtering-Correlation-Id: 0baf0942-f695-49b9-bdcd-08de37582b89
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?K2l2MTZHZ29zd0N0T0RiamRIaHVDcnlzbEJIRThIN3VGUERENFZQZE45Wk1P?=
 =?utf-8?B?c1Q3a3I2UlF2MEE0ZUMxcVpSZlduZmlxcFZNRmZFNWo5ZVFSL3BvUklScnFh?=
 =?utf-8?B?dmRLV015Z21JcDZTUzBjajZjNEpkU3R0Q1ZIOVllZmFTUklIaFVuaWJybXcw?=
 =?utf-8?B?dXB4T09CSURnWVRyQm5Ha0E3NldkRTJ2Y0xpaWI5LzZhL3hMcUZvakJtMGlx?=
 =?utf-8?B?REFrWkR0YUJWeFFQL1AxQnk4cDBYd1d0a3dFU2dpeG56SXhENFcybFgyVysy?=
 =?utf-8?B?L1JTaGdCSWZOSktXb2U5YjJSYUZ5VVA4NnZmZWpQOTM2b3hoS2lLcFRKeEll?=
 =?utf-8?B?UU00UGtyN3hWcUl3d3RSWmlvY1EwTXpqc0J0TEZSNVFTRFRQV0UvVHBDL1ZT?=
 =?utf-8?B?eHlXWkRRV2NWS0RhNlVDRTVDTEhmR1VCUU5VN1cwQ3UwUDFyYWEvdzNQWUJK?=
 =?utf-8?B?UXUyTlRySVIxQURUcm1XSTV2QlI4SWczM2xHaXRGQ3lKRGJFWWtZaXdDTGxF?=
 =?utf-8?B?SjZLUzFGcjd5dExzMUxVU010STlJS3B1ODJjQ2dyQll2YmxRYUdZejRwcW5u?=
 =?utf-8?B?S0pYQUhWeDBGR2dwYnU3MjY2bmxjUWF4dWVrdVNzbmRyWEZ4L1BaMVdBZExj?=
 =?utf-8?B?VW1DTTIyc3d5Y0VyY1ZkZUZkbFBOOFNETXVtc3ozUldscERScVJtVEIraUh0?=
 =?utf-8?B?am9pdnJzY1BYRnVGUTd6bTIvNUQrY1NReGRwenJpSm5kdHRkSGpaN0hBZnNI?=
 =?utf-8?B?YldVN3VLczFkQjVzbTVQR2RNZEZwU2Z5ZE9TNUJ3Z0g1TTBDSHJPaEFCZFJk?=
 =?utf-8?B?bndpYm9rbDZSbVhHSDNCNkcyRS9CTitHT01BdGRzakQ4S3g4TTluZSs0Njkz?=
 =?utf-8?B?OWU5M2VtUDRuZzVBUWlucEpqS1A5SjNHSTloOWFnZjN1VlA0M0pDb2gvU21o?=
 =?utf-8?B?Vlk2ZENmYm82K3Q1VG1wYWVrdFpKT3I4T0lPWCsrQkduNlVDOUd3TnFBditL?=
 =?utf-8?B?WTNkQlRiMnFGdFVqWTF3WmJWbks2SFcybnpDV1RnNXduSEprS2R1N0VSK0RR?=
 =?utf-8?B?a1J3aEczd1JYRFN0TU5HVWFtZ3lzdDdBK2s4WVRZYllHZzlXUGJBbWo4bmV3?=
 =?utf-8?B?Z1dpQW44U2M1SHAwYUZ6QjlsM3dkd0JvNERhWUo3azFqN1BhS0Nmd0lidldj?=
 =?utf-8?B?RjNjcDJCdE9DZ1ZFWWc4QnhtcVIyL20rSVBzS2t3bnlhVnREbGlTa1E5SE9V?=
 =?utf-8?B?dVQ5OHQzd2c1V1ZaV2YwL3kvTloxZW85LzladzlFMXNNKzlkVmdLbzZVU3Vi?=
 =?utf-8?B?b1RaSEk5N0NLYWdPSThOaHorSlJacFd0WkxFYnNmSEQzUmpvK1hnZUJ5MzQ5?=
 =?utf-8?B?Mm42RXJPcVFxa3lOY2Z2SUlYeWRaRnZjMGZNZnlZc2UwNTRJSGxvRCtQbzQ4?=
 =?utf-8?B?K0YzblhEbXRXYXNmRTBhUThBNDlGTUR6cERSby8zeWc5K1c3d0NBYmtTVDF1?=
 =?utf-8?B?dWFoOWtZd2psNktaOGJSajFwNEZLZzlZZC9WS3dwc0xLM0ZoYlJ1c1ZVVlI0?=
 =?utf-8?B?aldKTFRPN2VvbVVwNGVGbGpXMFY0VzBLR3FhUWZXNGNSUlBtZFVhVVlRM1dh?=
 =?utf-8?B?dWVQVUphdklFWGg0ODc4OTA2TGhtejY0MDlVWVFNZVFGSzBHVWpWMTZRMlhS?=
 =?utf-8?B?VHdwT3NQdC9neDBMSTdyNm5pa2FkaFRXR2tNVEtWUTBpdWdINzZBQ2xnbHNT?=
 =?utf-8?B?RHZpV1ovbG51dXFTbUprRXpFOFE3dTA3YUxlUWxRLzhHVm9QdkVEY09WTDQz?=
 =?utf-8?B?VkltcHozakMrZTYzaDBUL3VOOVpSRnRJczhicWZuSXFmMlVDSld6azFNUW5P?=
 =?utf-8?B?NmFGZVRPNGQwRWhIZTlqZnIySWJsU0JrdE0xYWlKRmw4NnB2cTMwV2RYUlU1?=
 =?utf-8?Q?P1qJRKnYFifgJGhoFa+ppASCyRfsGKRR?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZmN4dEpqN0MwN2NZRTlDUVdZY01JUkVmeTBrUXNCMmQxR2F3SG45aVdQYkFW?=
 =?utf-8?B?Z29BMVhKbUJBMjFMWUVtRnBzdnZlcjNJbUxwMmIzMjJoY3EwMUY2MUdBNU9H?=
 =?utf-8?B?M0NIUHF3Qzd5aWpmaVRjRjBCUFhRN2NQUGppMUZQOHVmVThSQzVMbnMySDVx?=
 =?utf-8?B?SmU3ZTBGcTdPMVBmUDRSeDQ0SG52aEF4dUZ1a0YrWmVmL293U3FPVUdSSTNk?=
 =?utf-8?B?WW5kS1ZGR1RrNEsybktKeW1tY2dHUmNKK1pSU0svNk5qRzB0bXBxM1FFc05r?=
 =?utf-8?B?NGdZTjljeXc5eEtibUhJd0tkaWc2WFJTeUtxVG1zWFVFc1FXbHVjOFJyTk9q?=
 =?utf-8?B?aTBFa2JNVlpoU2dlNkk5ejR1MDFha3l2bjN1L2pVUlRLeFc2UjcyT1VTZU4w?=
 =?utf-8?B?Y3c5MmpoUzBsYzRFN2srSjJBNDVObGd0UUNpOU1hdEhXYk54WFVyc2FOSTkz?=
 =?utf-8?B?NzRHNzJHNXNNMzIxejIvNHRXd2wrVklEeURhWGoyQXBqUk4rV2tWU2MvajY3?=
 =?utf-8?B?UThTRC9qZWswSUd0S25pMEhHdEptZ1QvT1FhY0hlZ2RTSTFtanhUa2FBaVhQ?=
 =?utf-8?B?ekx6c0hJWWVURlVIa2xxZ1lFQ3pjZlNqV1JaQVorcVh0NE1RcVprZkNZZmtn?=
 =?utf-8?B?SnppTmVudWhTM0ZGWDJiRkRHNEsyNzduSWlyb3NkNFhGb21Qc0U4dDFkamYv?=
 =?utf-8?B?eWIwQlIxS2FycGN6Q2hmYVdBVmlNM3EwM1pabkYwNkc4dG01cWFMSUJ0WGNV?=
 =?utf-8?B?WkUxTmxZcW4rUWwyQUxwcmxEUGVGa0FDeEd2bHZ5dHhDVGRJaHJISlhURTRF?=
 =?utf-8?B?eFM5YXY0bFdMVHhmVy9MbFRjOTR0SThGZ0UydjlZejJhK3hLck1GTFRnelZj?=
 =?utf-8?B?dkphWWVsTVB4TlJtV1RFN3BIeGtYL015NDNOT0NOOVQ0Z3hBK1BLRnJ4U1VG?=
 =?utf-8?B?bGNtd2g3dVNzNXNwSVA5WUEzRklCNjdUYWNlaEx0SHdPN1d1dXQ0Ulh4YTdl?=
 =?utf-8?B?TEk1OVNyaERSbFZidmFyamNxdVJyUUdLZk9sU2ZYbVBqb05yYTUxVGZIMEIz?=
 =?utf-8?B?WElVMTdQSThRZmlTNkxmY2FmVDR1M0dSQThadGdUbng0RXhxYmNRVUZDVjg3?=
 =?utf-8?B?V2pLK1pGSXNxNFg0WVRHVElKWXRuaVNsc0ttMDlITk1RZDZOM3gxb1RSbkI2?=
 =?utf-8?B?bFJQamg4NGNuRDU4L1loa0pRWFhMZWU4UGtKRjMvTExseWpZTlBNSVVUdlN6?=
 =?utf-8?B?ZDg3KzhNTjJCLzUzV3l1UmZkWndWdkNQcmdRYkxHODhVWitPV1dyRTJhVVY4?=
 =?utf-8?B?OE9TTkhDaDVtSnpZdTVJdFBGYmkzajM4bWJQTE5LYkdEVng3K2JZRW10VXBx?=
 =?utf-8?B?K0RVT0drNmRaOTl2TUVBK3ZrNjErRTErY0lXOXBBdm54YnlSSllIMXFwYkZR?=
 =?utf-8?B?L250ZWpZSFdMUFErVHBaWEF2MmcvUmNpV0VRbG5LVEtPUE5yZlNpWnQ4MXpQ?=
 =?utf-8?B?QUtWVzZycFdDZEJZR2RWZGJhemJtejcrSWI3SWhyVG43YVdXV1RySDI2R2Fj?=
 =?utf-8?B?Y01kRm0xUlNyYkYzV2VFTElJVytlaHg3Z3hOQWlWTEtOY1VJV215NmxmNEN4?=
 =?utf-8?B?WHd4RzhTUUcvWkp4NmhraEVOZHJjUG00UXprR0wyeThPMlQ1ZGkzREI4aHNp?=
 =?utf-8?B?b2oxN21RRG8yUTFwOVpoWEphOWpzOGcwM21CY255SmF5MmFEOXk0Z253eTIv?=
 =?utf-8?B?VVp3djFpZGwxOXl1Z0cyRWZlQVd6UHlqZkxRYXJBUjBONDBBeHR2a0RwT1ZH?=
 =?utf-8?B?bkppd0MwUFV3ejlFU3hMVUplNjVRcVp1ZEFwSUVvendnbklRL0tzVVZ5MFVR?=
 =?utf-8?B?Y2NWNzA5OVpKdmJEWXlZcnYvNTJzeXpEa0xoc1BDcnZZaTNuZU9rODZwaG16?=
 =?utf-8?B?dFVBb0tXbU1abGtTVG90UkNJSGNPYmNLVUpoQS94TmpaekxCWnBkamRTQ0xD?=
 =?utf-8?B?eWhVc0FURG83K2NrU3dYWXdWRGxRVEF2WXhNMW1vb0pLK01oWEtXZXlqTm1z?=
 =?utf-8?B?TGc0MDJ1RGZXRS8wNlNEZ3pNUW5wQm5WZ1A4WmtHbzBFeWlRMFU5SmR5Nm5N?=
 =?utf-8?B?T3RNZEVONndHTmRYU0J2U3JHYUVxcHQ0QjE3aWZpU3k1cVZyY0YxQm5jeDNa?=
 =?utf-8?B?ZHc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0baf0942-f695-49b9-bdcd-08de37582b89
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 19:21:36.1581
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: TNtUlUjhfCQppnmQHDmt6Q0LJBXtML9ddZIiw5+fI0MKLUV9UXF/bZBUX3KkgUi4RF2nMrBHsAkuSsM1glvKUEOhE/Zv5hr3F9AivZdiK3s=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR03MB10910

Hi Andrew,

On 09.12.25 20:07, Andrew Cooper wrote:
> Prior to commit 02e78311cdc6 ("x86/domctl: Make XEN_DOMCTL_set_address_size
> singleshot") (Xen 4.9, 2016), it was possible for domains to switch to being
> compat, and back again.  Since then however, becoming compat is a singleton
> action that can't be undone.
> 
>  From the context it's clear to see the is_pv_32bit_domain() check is
> redundant, and from the singleton nature being the only place setting
> physaddr_bitsize, there's no need to check it for being 0.
> 
> No functional change.
> 
> Co-developed-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Split out of series to simplify things.
> 
> bloat-o-meter reports:
> 
>    add/remove: 0/1 grow/shrink: 1/0 up/down: 25/-96 (-71)
>    Function                                     old     new   delta
>    switch_compat                                447     472     +25
>    domain_set_alloc_bitsize                      96       -     -96
> 
> which will mostly be the LFENCEs embedded in is_pv_32bit_domain().

Thank you for doing this.
Not sure if it's needed, any way.
Reviewed-by: Grygorii Strashko <grygorii_strashko@epam.com>

> ---
>   xen/arch/x86/include/asm/mm.h |  1 -
>   xen/arch/x86/pv/domain.c      |  6 +++++-
>   xen/arch/x86/x86_64/mm.c      | 13 -------------
>   3 files changed, 5 insertions(+), 15 deletions(-)
> 
> diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
> index 17ca6666a34e..9438f5ea0119 100644
> --- a/xen/arch/x86/include/asm/mm.h
> +++ b/xen/arch/x86/include/asm/mm.h
> @@ -619,7 +619,6 @@ void __iomem *ioremap_wc(paddr_t pa, size_t len);
>   
>   extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int pxm);
>   
> -void domain_set_alloc_bitsize(struct domain *d);
>   unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bits);
>   #define domain_clamp_alloc_bitsize(d, bits) domain_clamp_alloc_bitsize(d, bits)
>   
> diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
> index 9c4785c187dd..11db6a6d8396 100644
> --- a/xen/arch/x86/pv/domain.c
> +++ b/xen/arch/x86/pv/domain.c
> @@ -254,7 +254,11 @@ int switch_compat(struct domain *d)
>               goto undo_and_fail;
>       }
>   
> -    domain_set_alloc_bitsize(d);
> +    if ( MACH2PHYS_COMPAT_NR_ENTRIES(d) < max_page )
> +        d->arch.physaddr_bitsize =
> +            /* 2^n entries can be contained in guest's p2m mapping space */
> +            fls(MACH2PHYS_COMPAT_NR_ENTRIES(d)) - 1 + PAGE_SHIFT;
> +
>       recalculate_cpuid_policy(d);
>   
>       d->arch.x87_fip_width = 4;
> diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
> index d4e6a9c0a2e0..42fd4fe4e9b5 100644
> --- a/xen/arch/x86/x86_64/mm.c
> +++ b/xen/arch/x86/x86_64/mm.c
> @@ -1119,19 +1119,6 @@ int handle_memadd_fault(unsigned long addr, struct cpu_user_regs *regs)
>       return ret;
>   }
>   
> -void domain_set_alloc_bitsize(struct domain *d)
> -{
> -    if ( !is_pv_32bit_domain(d) ||
> -         (MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page) ||
> -         d->arch.physaddr_bitsize > 0 )
> -        return;
> -    d->arch.physaddr_bitsize =
> -        /* 2^n entries can be contained in guest's p2m mapping space */
> -        fls(MACH2PHYS_COMPAT_NR_ENTRIES(d)) - 1
> -        /* 2^n pages -> 2^(n+PAGE_SHIFT) bits */
> -        + PAGE_SHIFT;
> -}
> -
>   unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bits)
>   {
>       if ( (d == NULL) || (d->arch.physaddr_bitsize == 0) )

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 19:29:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 19:29:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182154.1505074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT3Op-00025j-Mo; Tue, 09 Dec 2025 19:29:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182154.1505074; Tue, 09 Dec 2025 19:29:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT3Op-00025c-Jr; Tue, 09 Dec 2025 19:29:27 +0000
Received: by outflank-mailman (input) for mailman id 1182154;
 Tue, 09 Dec 2025 19:29:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nu2q=6P=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vT3Oo-00025W-QE
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 19:29:26 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5d3033fc-d535-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 20:29:23 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS1PR03MB7823.namprd03.prod.outlook.com (2603:10b6:8:21c::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 19:29:19 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 19:29:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5d3033fc-d535-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ia2nvS0bC+S6zfMNZjLUq1/tz2VqbEa9D44v3b5hC/PHxCZOvNm+u81NmnOTFfbNrTqOPLmdc/BXIrO8trkJ2DCFTulUijCId1PO3M2cqvtpZdKcijlaNLfvHUncqaezvbvHMVqp8nByP6RRKRj49c7aoWmvsYfcHSss5YfAfdDesTfUq+7beSYtpedwRPcC0Nqog1eWltSFr/Gu/5OUOU/oGyZ3NelXhuqzhJncU/OPowu1NW1rgS8M8NO2NA47pwsG1dWKjLClvtmKt7lmKYBLD0+wM7aQtdHrQUOArKL9kd4gTwdBELxg62tG+XBQJwt9f83iZgZAhUi2v68uHA==
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=T6/d3t8RbuO+YWintdj/kQr3VZIhHoXgOWe4+2QqjY4=;
 b=aeu0ScvvBNYE6a8PVGHzFY6+pQA17Jaq5d2DrwvdkjsTVsRo1PfXDXJauz81AiOIXWTq2wTlezZ59JwcrD//inBJvXcMscqMj0qRJvodM5Xu8KeT4Xriw8lmbMRDwu9S/BwoKsy07Vnf74V21u7bqJdoYBw0opLMOPvbzEXOAZwqF5/E8hemw5Ntxo+OG1XlxbQ0oq8JQrda7ji0Bo1nqeGoEkdvAah76wGLoEPkmNAFyPlldNCOfwMplFhSPmGMTbOgg3ycD9llOZ7kwugM92CPf+dAh/CL92PEBE3L348I/Lngt6XGXfLZySfCnOPwLhSCILzXSbQjfVvxZTohuQ==
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=T6/d3t8RbuO+YWintdj/kQr3VZIhHoXgOWe4+2QqjY4=;
 b=R5Y9GxA8BJ3iqf1LPm2PYL6zVLeVGsj6rhbGtv+Q7Kh1AnmagxNwTYBLLNPt84jgkwEm5ygxxn/0+ILHz4sn/X0jAqxDAilTFgoLC6pBPiqyCOZkE5k5Yjj4GYttG8eg/oVF7Xnt2WexVsn6mWEzHqOwNYh5CbzXTSb0Rk5iqqk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d8a37c7e-106f-4bb3-a4fb-3ad082cda7fa@citrix.com>
Date: Tue, 9 Dec 2025 19:29:15 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Jan Beulich <JBeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/pv: Inline domain_set_alloc_bitsize() into it's
 single caller
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251209180750.2145364-1-andrew.cooper3@citrix.com>
 <83c524ed-dec0-4792-9129-0bfc7498ac97@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <83c524ed-dec0-4792-9129-0bfc7498ac97@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0284.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:195::19) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS1PR03MB7823:EE_
X-MS-Office365-Filtering-Correlation-Id: 387eaea8-efd5-4c2a-53be-08de37593fda
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cWJCTlpkL1o5eDBDK3dNRjRXbytCK3NzalBJVlRaNWpTaHBaVlZYSmg2bzZj?=
 =?utf-8?B?Q1dJb0dzNWhvUkpMMlNEZ2crMHl6SFRLcDhybmtSMnBVNi90QXdIT3h4L0Jz?=
 =?utf-8?B?K0Q5YUJsWjRoS3o0Nm5UQ0ZmNzV0eWo1azV3K09Eank4MzF1emJnS0Z3M1I1?=
 =?utf-8?B?SlBPZDdjenpjZFJseGlWWXhtYk1SSC9YMUxVbWRXZExsTHM0Uldjc0FMMTA4?=
 =?utf-8?B?VnRKaytiK3RaaWRPZWMyQ2toMExVbXNCQjRZVnBnSWMzUEtzcTg2YlNqd3dH?=
 =?utf-8?B?cVZCTUprUUpaNG80QVgzaWtTbll3Ry9CZG1tZmRNYll0K29uTHRKaGtucnBi?=
 =?utf-8?B?RzVvSE5qbjNESnA1K0hWMGFXWE1uWkI5Z216aDFJSHdsejZhN2J2QkZQdUVQ?=
 =?utf-8?B?L3hrQXhSL2hQUXVMSS91aGFldVFHa254d3hhd05UVHFBK0tqaThiQ3pHMGhO?=
 =?utf-8?B?c0l1S2ZKUTlMU0tHQW9HaCt5TjNaZ1Z2c1ZBb1NlWkNXWlVXWXoyWi96WUJ5?=
 =?utf-8?B?eHhzQVYzTzRpL2xpWm01SnoxT2tLV05UMEdhdjFKcFFRZ215eCtyRWdaTEpH?=
 =?utf-8?B?bldzSndHUllEOVhjZDg5TUJ5QWxzaXUxS2xpOEhaNW5VbFptVmYxOWJINlh6?=
 =?utf-8?B?Nzl1Nk0ya3hFVFFOd1hnWE5HYmRTNFdhYUN3Z2h4bVJNNnhLcUFKZWpSQXFT?=
 =?utf-8?B?cmtLclovWktvazJDbm12VXlNR05YTTk0NmhjQ242MG94WndVSElpVldDRVZN?=
 =?utf-8?B?aVJicVQ5Sit3TytWTmdnamYvb1hNQmZMeG9lWXE2KzhueUdLWkRpb3ptNDIv?=
 =?utf-8?B?bFd1SDBkbnlqQ0tpbVduc201VlNHS0l6d0xZY29RdVF4eHA2M01VN2V5KzBl?=
 =?utf-8?B?SWNxdk5DVGNRRlJnL2lEbm9qS0NKWjUwWG4ycjZxSnVVeHM5RVlYZU11QzBs?=
 =?utf-8?B?cUk2V0ZjV1RCZmdYTjFicGtLdlo2VVhTZmY4RGpPOTF4WlBja2NUaCsvc0lh?=
 =?utf-8?B?Ym1ZcEFvWnhTOXJLUVoyV0ZZZFRVMFNQMDBGMTA4V1k2RzNhNTRTMjV6cFdz?=
 =?utf-8?B?RWc4b2owVk5Bb0ErTkdEY3ZncGdtbWRsTk1FekNtd1diZkIwVlVaZUcwdUJz?=
 =?utf-8?B?SjZ6RS81NGZLM0gxTS9IbHp0R3YvalhSV3Rmc1NoN1c1aGQrMm9SbFNQeDk4?=
 =?utf-8?B?aE9YR1BpcHRRQ3NxdjhRQ1RYQnZjSUtuTllRSGtMU1RvUzlZNzJ3UmFySDBR?=
 =?utf-8?B?dmdjTS9xdGoxZHd4UmE0ajN4ZEs3TDJWY0E4bk1pRUl0RGhmWnIvVEJwZUdh?=
 =?utf-8?B?UjJPMnlmV3EvNzd1bXVXMlpEZk1mMXNEREhlMGNhVkg0dzdWM2ZabFdmTUtW?=
 =?utf-8?B?RzFqZjBKYUNBTUh0ZmFSUXhYaWY4d1RZRVBSQVVvamxDa2JLTEpKT1lJczZn?=
 =?utf-8?B?ellQTHl0VFR5a3RmS3lKaDR2SEpqeTg2Mm9UNjFXNHpxVGE4NDlkQWNCZlUr?=
 =?utf-8?B?UWQ4NllIK2xDZzU1cEFheVM4YU9sKzlZSDhaQlNmWVJqTWVBVGFoaGJ0Y2tX?=
 =?utf-8?B?Q2Z4bXFPazB0R1pUWGM0N3pUREloM3hYTVlMZWU4Y0Y3T3JCeDJzZHhzUmww?=
 =?utf-8?B?dW9BNFM1T2lMWS83NWpUMUdEb1RnT3RBY1p1NnA2YW1uNEtFV3dVS0IwUXh3?=
 =?utf-8?B?bk9HeWNreVNFUU9yMDg0NzlOQVoycDM5WFJHNGtKSFIza08xTWozcnN5TzBo?=
 =?utf-8?B?TTJqMkJKTTh6R3lEdlN4SkgwTmdXbEErMnBOeEpCb2JZL3Z4dy9zeklCVm5L?=
 =?utf-8?B?WjJBQm14NVZnSXVVaWFpTktwc2crMGRWSmovenAyOEZkeTMrZWp5WTg1b0s3?=
 =?utf-8?B?ck02UjZxMlQvaSs5NHRhYUt4ZzFRZXM5WnpOcU0yY0YreXJhK2FvemJ4OHgv?=
 =?utf-8?Q?kJVIL24YMhnaJ4wX2LvzMeYXx4OhBCwR?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QXp6eXJhN080dGp4WVBUTWwvZEtqTG5GQkFTcGFaVHgyZHBoL0RBQVJZQ1Uv?=
 =?utf-8?B?WEhUaG5HSXY0dm1MMmNhdHhEVSs2b1BZN1k1L1grSnJaTFoyblYvam1GbDZo?=
 =?utf-8?B?UG1YaUFRa09PQVdYNEdXL3o1bG4vcHFLKzBwUzZTMktkTXJzZDR5bDVyWlRw?=
 =?utf-8?B?cUJtZTJZMTQ5bEFONVg5Y3RHMGMwRXo5RThKUVc2c0piM1plbllUcHZyalZm?=
 =?utf-8?B?RVYvT05XRmRnVk5LQTd0MDlNQ2UrOHhzQ01mMHNzNVh4M3Q5UFY3bXBndW5C?=
 =?utf-8?B?am1USzRTSE9ZZ2VqKzNwNkVLeFFhc0ZEcWZNUDRQZDF3bjNCY3UrMU9vZE5U?=
 =?utf-8?B?QW80c0RPbDNTZ3BaOFFTMnZHSUowRWhKaUw4NjZtbzRENkpqQ2tscGl5Ulpi?=
 =?utf-8?B?dUdJS1R0TWEwRGcycDRBREZsN0xZL3UvNjFwRWlxWTl1RU1DTTZpbG5rall2?=
 =?utf-8?B?M2U4UE1TRXlsNGsyRmVMdEVqZDZJM2lCK20wellPREFlWlZtK3ZFckhNd2VJ?=
 =?utf-8?B?QmlsT2lrNW0zdjZuaVliV2JtN2dlUkxzRk5PMFhjUyt4UkhYVWRTbWxUTXJS?=
 =?utf-8?B?V25ObGpucEhMckh3QVRSZktyVDZTVDBYdzZWVVNDWDlNaHozMUVWM2svSU43?=
 =?utf-8?B?NWYvYWt6dVhCVVQzWFBTZjRWR1ZObzNSUXc2N294SDlCK3B2b1VzTTc5NzA1?=
 =?utf-8?B?Z2xwdEdlMDRtMjE1SGpoang2c3FNbHJMYS9QeVQ0NWhIdm5ORjdVajdzWVV0?=
 =?utf-8?B?RGVQM1d1SW5GbW0yZTY0M1I1Z0tKL1lqRGc2VitTamNpL2x5ZE1wZEM5dVA1?=
 =?utf-8?B?cDViZ3FhRWRzZ01NY1k4ZFNSZmFlSlIxWTkvV3J4YVB2dGNiSHBPa0o2Tk5C?=
 =?utf-8?B?MTFaWWxZUFRyZ3lwTmppTWhBYks2WTU3VG9VQ1BwVmZLN25Xbi85QTRybkpV?=
 =?utf-8?B?VnhzQkJaVlhqbGkybW5UTTIzWWNaeEZ6L0JVWDlyK2xOeGFmbVE0cGFoMkJm?=
 =?utf-8?B?ZkRyQ0xhN0V5bDgrRU4zMWVDcCtjZklUNVduVHh6dktqZE1QUGFuNXg5VUpX?=
 =?utf-8?B?dWNQM24zMzZhaDJxbXNMK2ZVSkwwaUxYRkoyUjZJZ3RjaHNXdVVvVFBtVWlh?=
 =?utf-8?B?bFpWOThVcHc1TUJHV0ZITW1aZWNzQmxweERXVFZDYXdibGtwdTBEQkt6NUlS?=
 =?utf-8?B?N0pKWXJmeWVXLzF2UGpYVnUzZ2dVd0FyS1N0QVBqZWpJV2pIaE1wckVoMkFH?=
 =?utf-8?B?YktSeDNSaFRIQ2VLa0xrbSt0Z2JDUCt0K1dpb0UxSVdxVkJzeDhiY0lCdG50?=
 =?utf-8?B?V211MDJiN3NXazJmTit2WWFMYi9LaXhKbXVIem1Fb3RuNStNODZhRmtqc3Nz?=
 =?utf-8?B?YmlWTTZyWDZGSWpWa1RRZ2lyRUVjdDR1VVZjSDVuWmlnZGh1Z21ybHRyVzl3?=
 =?utf-8?B?UDNkbnpkaU82TXlocys1Sno4SjJNYjNhenp3eHlLZHYrMnVIWC9BOUV6ajZ2?=
 =?utf-8?B?cGRMb3BjY1ZTamlmMzVrSUlqd0NpNGxzQ1FwVkFhaFdSMDl0NTJyRDYzNFQ1?=
 =?utf-8?B?OUtSR212UDVPR05xaDNuUHBURWN1L3F1enlBU2lqRmV5OGRhdlFaSE1lNE9O?=
 =?utf-8?B?ellwaXE2OFhLRmNCdk13bFcrUE9RWkhPUG40Y2tDRmRFRXBuRDJuS00xdzVL?=
 =?utf-8?B?ODZvQ283QlRKOFJuRzVlVG5xRlV1S3c3N0NLcTlQS3E0d1BiaVpQOVVZdGY2?=
 =?utf-8?B?VXJoRDlUdVp4ZjNVb0tkRHVPSHhEZGdxYUpjTHozQk16eGFlbXROUjNNY0Rm?=
 =?utf-8?B?NjkyeFNiNGFwYjBOVXRuZVUzWFh4U3FBVjJvcnJacGVqc0d0SlJJUUxPQ1p1?=
 =?utf-8?B?MEZNU1lMMUN4aDBkVm1pUE56V1hSRlRPL3FEdGhuTG5Gb0NnbjhscVQyNGNK?=
 =?utf-8?B?eTBZQnJGems3dHR4NEhwQm9sWFp0UGQzQll1dHh0UXpCMUNpdHpMYzJsNGor?=
 =?utf-8?B?U2c0NUszbDNONGxEU0FIeThEaXduSXhiNTUwQi9RUGZKR1VXckZycDJoSjJL?=
 =?utf-8?B?OFkvNi9HMm5MdjZINm5CQVk3Q24zOFBTYllxUFdCL3E0L2NQWW9CYlc2b1g1?=
 =?utf-8?B?ZXFLRk5PaFJuT0hBUDcrL2RMWitNSVdvNEhObHNnRzdtV0ROdmZwRkpFelBp?=
 =?utf-8?B?aVE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 387eaea8-efd5-4c2a-53be-08de37593fda
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 19:29:19.7609
 (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: VY0/r0mXicR1712MLUfZM32KbrQagTqZaKNNz0OBlMvENuYE+IJdgwgcaeJOpNJSReFDjSaHPxlRC6UmupimsxiTIY0dSluSDpKQt+p0lWw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS1PR03MB7823

On 09/12/2025 7:21 pm, Grygorii Strashko wrote:
> Hi Andrew,
>
> On 09.12.25 20:07, Andrew Cooper wrote:
>> Prior to commit 02e78311cdc6 ("x86/domctl: Make
>> XEN_DOMCTL_set_address_size
>> singleshot") (Xen 4.9, 2016), it was possible for domains to switch
>> to being
>> compat, and back again.  Since then however, becoming compat is a
>> singleton
>> action that can't be undone.
>>
>>  From the context it's clear to see the is_pv_32bit_domain() check is
>> redundant, and from the singleton nature being the only place setting
>> physaddr_bitsize, there's no need to check it for being 0.
>>
>> No functional change.
>>
>> Co-developed-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> Split out of series to simplify things.
>>
>> bloat-o-meter reports:
>>
>>    add/remove: 0/1 grow/shrink: 1/0 up/down: 25/-96 (-71)
>>    Function                                     old     new   delta
>>    switch_compat                                447     472     +25
>>    domain_set_alloc_bitsize                      96       -     -96
>>
>> which will mostly be the LFENCEs embedded in is_pv_32bit_domain().
>
> Thank you for doing this.
> Not sure if it's needed, any way.
> Reviewed-by: Grygorii Strashko <grygorii_strashko@epam.com>

It does help.  Technically it lets me commit the patch right now, but
I'll leave it until at least tomorrow in case anyone else has comments.

~Andrew



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 19:54:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 19:54:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182164.1505083 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT3my-00061v-KN; Tue, 09 Dec 2025 19:54:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182164.1505083; Tue, 09 Dec 2025 19:54:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT3my-00061o-Hb; Tue, 09 Dec 2025 19:54:24 +0000
Received: by outflank-mailman (input) for mailman id 1182164;
 Tue, 09 Dec 2025 19:54:23 +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
 <SRS0=Nu2q=6P=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vT3mx-00061i-8N
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 19:54:23 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d9b47ea4-d538-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 20:54:21 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY5PR03MB4967.namprd03.prod.outlook.com (2603:10b6:a03:1e2::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 19:54:15 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025
 19:54:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d9b47ea4-d538-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ueQJiMvTGZ4Z/K/9HYzFDt9sIxjO9ytRa01Ckoa6vcH8yuUY6sZH4CI3hHuv7f4VbQ85haVK6lHCBOFQvAwJTFYU5upIe1z3CiwF8pkddjzNo341Yc0vxRvHm8rBDKsm8oSR3P9W228vEhXCdPpolU7YwioNE+qaOydeN+bFxh7jwj2Zu7RO+kP5wlyCWUGpChTP0z+gn/tS0a6ogykc7zKESkJT+l1smr1sDvOusk+59Hy4TKHhcCWNUUXZ4f5mtOBQI+jWC9REfa/k6jmiOC0C8+n/CZa6puUMgxYb+W8JUDyEHDRzpcV6ZeGcWYTRQC6JjqIFpEd2JlAC2uOhWw==
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=NPJDc6Eb3kzVdDowzLmpwXresW43dsdKD8iMDM9CUmo=;
 b=m1d3iilmj2l63pjOdDbSHaKR7cT/YCMguwFKdIGaLogFNg2mbnO6AfQWt8sqZKjU4VvAM9HkAZk05FH9QVkUiPyQmebS3O0fqiRf/oBpz5hry/TcCw6bIl4ENhWwaL+efA08kRsDqex86eqlrPOQscaa9DtxL8x8u40K3zfW5Cc9b2i6UJWqqaKeqUenZBmMtY9E6OdltZsAgNUMP42KnChrg5WJsL9I3QBpH91pmUrDXqDsj5j/hfu++NAcwes56IwSOD1EI4nZjJjRqSRiG4JUjDtmlEe9khLDi5CJd001Cd004UUNOwVNkKDggZHvuWjaVNM/DsUH6ihoLCdteA==
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=NPJDc6Eb3kzVdDowzLmpwXresW43dsdKD8iMDM9CUmo=;
 b=erbrraKJsSXFEsc4uKhiLDtkSl4w1/2+IdTaFez261vca5JoAQjRUAVIZ/KS4xHgmiQL2Ujz1u1D0hAXlW/0szAZwXZqx0AvLfMah23tYOJW7gzQIyZ/8Xu39Z2OXQvT2e5EHawnn4HatTgh9YqdrG2iHjt/WDXQsIEOsBLPJjU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Content-Type: multipart/mixed; boundary="------------ekj7blkzKlXEAVmyXxnFbw53"
Message-ID: <48f94309-53ad-4bc3-b06d-8c7bd4294481@citrix.com>
Date: Tue, 9 Dec 2025 19:54:12 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Jan Beulich <JBeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/pv: Inline domain_set_alloc_bitsize() into it's
 single caller
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251209180750.2145364-1-andrew.cooper3@citrix.com>
 <83c524ed-dec0-4792-9129-0bfc7498ac97@epam.com>
 <d8a37c7e-106f-4bb3-a4fb-3ad082cda7fa@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <d8a37c7e-106f-4bb3-a4fb-3ad082cda7fa@citrix.com>
X-ClientProxiedBy: LO4P302CA0033.GBRP302.PROD.OUTLOOK.COM
 (2603:10a6:600:317::8) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BY5PR03MB4967:EE_
X-MS-Office365-Filtering-Correlation-Id: a8f1cd88-127c-45da-bbbf-08de375cbb88
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|7053199007|4013099003|4053099003;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?c0szTVNOMnNoWXFCQXBOYWlFYk8wclRSNDhNampsYXUwV1FENHB1K1ZmYVE2?=
 =?utf-8?B?S0p2ZDBPVUJ1bW5tNnZ6czlMa1J5QldkU20wa1RWMDFpWlVmQUV4YUR5Sll0?=
 =?utf-8?B?YXpYcjFQalFIMXVSbXg0WDgrRVpndmk1dml3Z0k2SFh6S0F2eUxGeEVYOHVQ?=
 =?utf-8?B?SUp3bUUwUS9DdjVobzRoRHNmMzBSVDl1cHkvUFdsV21LWno3ZkF2ZlcyRFVk?=
 =?utf-8?B?bTVhVnVId2RZY2pKdFdoTGgwOCs1SWQydzY3RWpQSE5vL25SMUptajZTdldU?=
 =?utf-8?B?SmdDZTdzckg3Mm1jempTSjBBWW5Wc3M2VUdpZytPd1JON2U3dlpqY3pFYnNy?=
 =?utf-8?B?SloySW9ReWxrOHI4VlVHZ0hGU0lZQ0puNkNPWDIwQ002MzZ1STNVSk9IOW9F?=
 =?utf-8?B?ZWI3SUw1OFhWZXBZYk43cTlocTRUeERwU3ZIZFY1dkFtc0czQldxbDlreTE4?=
 =?utf-8?B?eWQ3NXZhckZlQVRmZmdEYS9kbTdaTXFvaENIb3pVb3pUOHByY1FxQkg0c28w?=
 =?utf-8?B?Ymsxd0xndEZzN1dhWjhwUGZOUW1YakYyT2JEaUdJK1dFUSt3WUEyU1JqbUt5?=
 =?utf-8?B?dmp2TFVnS1hlemp1dXZBUXoreDRRNDVqSmF2YWhPc2trQ1g3VUp4T2dzQWRW?=
 =?utf-8?B?NnB5ZTJQZEJ6NE1pS25QUE8veHA5VWNUamJmNVkyMjAwcDJJRjAyRGh3U254?=
 =?utf-8?B?c2JxMENtdk1IdFlaQTlLemJ3dkQyU0JNbFV0MDREZWRhNFF0d29DWWtPaDFl?=
 =?utf-8?B?aDIyeXpTVzdHRHZtMUVVOHhtdzZ1cW9JWElBYWQ2S2FVR1VDS1NzMCtIMHZ2?=
 =?utf-8?B?bTdJcm52MzhPT2pYdGdPVnFIS3lmcVo1ZUhHQ2g0NHlJOGtudmx1VTlkUTQ3?=
 =?utf-8?B?aVdlaURVVWlpeno2OHorMTA1RzZFUytCUTRZQjc5bUg3QWpEdFI3WTZzMU1s?=
 =?utf-8?B?MGNVK0JyaXVVN3EzUGdaNGMzcWNLOHNKOU43aUJUT2JENGhNTUlkaXVFeDB5?=
 =?utf-8?B?V2t3SnVSS0pvZU9oVlZoVmhVM1B0bGRoN01yUVhSbnZDM2N5Ny9ZWXRZYjlP?=
 =?utf-8?B?VTUwbytKVmVUbWgvY1pCeWdTQVJRUGYrTEUzbFVDcGdHQi9tZC90N0dHcHJj?=
 =?utf-8?B?ZzVjOHhpbEVsekRaMUpYZmxmci9BL0lxb2NpTWVFRTVUSzlSTVVDK3ZDZmpa?=
 =?utf-8?B?TU1Tb0Z2Uk1OQ0swVkFTU0hkaUwvbTVQWExQT1R3L2FWSGUwcy8wZmhXRFkz?=
 =?utf-8?B?NFVZY0RpQitIaUhnS0RiRWhxajk3UTlaSXUxNHFRdDl3OFVNdzUzb2NRN3kx?=
 =?utf-8?B?YU9nNitFSExUQndIT2tnU1lrUDZOKzBUNHE1OVJ5c3ByLzVqN1ZiZit0M1J1?=
 =?utf-8?B?bVl1TXJDY0JVbmhUU2dvZ0JvK3hwQ3VCRkt0bytMMUNoQ3doVEhhcGtJSkJl?=
 =?utf-8?B?bGx2UVVJbE9mMk1OSUlxUjFiWi9YYS9tYzFqSGNHWEJoYXBiRDQxUCtNa1M5?=
 =?utf-8?B?bHRuaW1iN3pnaC9BNEtjYnNKQUdOQmQzenp2UkNJMCtINWNQSlI5Tjg0dEZO?=
 =?utf-8?B?RlNUeDloWWNENHkxUmZqVjNOMzQvNERtM1hwUER3Y1AzNTNydlhuVmpaWitN?=
 =?utf-8?B?bnd2NlpQR0FTWmY1blRjRC85QWtwcmdzaXdtdFo1cWIrOVV6YXkvT3J3ekpt?=
 =?utf-8?B?NnpTQ3JhQmNtcDlPQTUwQjVCVGQyNStXYWNvcHptcGVoRllldEV6NlBId3N5?=
 =?utf-8?B?THlrL25YSmk0TXFrWE9pWEw3SGV0K0xpcys0RWVxZUxUM1YrOHdLN0pSbFNE?=
 =?utf-8?B?eWNxTHlUMm5odXN1QWRkNm9DbzFvbW1WL3l0eS8rSEh2VFBsNEl6b1MrMVlT?=
 =?utf-8?B?ZHFzOCt3Y3plZHpZYnNFTFllanowekF0dnpHL1NqQm1GMXRQd3JaM2NPY0tK?=
 =?utf-8?Q?YPv1hx1n8278XJgvm1Fua3J0ErC97ndr?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007)(4013099003)(4053099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TzRDbkpOVlB3azltcWQ3dmVHZCtxWnJFSHl2T1dYTTk5SWpIS2JiQlZmWi9h?=
 =?utf-8?B?SG1vV3VndUo4TWh1VC95SGlwSU9QdDB5NVdESmxTME1kOHQ2T20xTnptRUxs?=
 =?utf-8?B?ZEZLVkRWbCtoOXRkK01SdWs0alZUeU8rZUp6MVhtaWU1dDBIelNTdWN2Ky94?=
 =?utf-8?B?V1BFNStzeXZZb3pDM1czcTk3d2VsZlhHSXFHWmtiMmhRWFBRZlUwcW1WMng2?=
 =?utf-8?B?a0xtVHBCekFBWlFQakZtZU56SDZHbEdieExmZU1Hc2NkbGVua1Jrb2dhTytj?=
 =?utf-8?B?clBJaW1JbkRpSWtHbC9haG8zL0QvMEVrOENyZ29wQ3pHaDRMWjA4YjJ5L2dv?=
 =?utf-8?B?cTBiZFlvMEYrMEpCaE81MG9XV1daQ2JhbTJUcThya3lJb1lYRkl1MTVSQXpE?=
 =?utf-8?B?b2NXL2t6ci9rZWs2UWdYVXRJSDU1djlKd0NlZTdRS3p5eHhjTFJMWWw5bEZj?=
 =?utf-8?B?S2pUOTNCKzhHekhxM2U5dUFmQ2JCNmNRQmVEOVBBaW1VYm1FM2RuWUNJWnY0?=
 =?utf-8?B?cHZTZ3ZPeVpGZ1JseG5ZVDhRRURqWjB2dXhqVW45TUtCM0RCYm9pWm93d0I4?=
 =?utf-8?B?eHNCTDc2djh2S2FUNjd6YlJNTDNQUERhUmwzRDJPS214aE55N1Q4TWkzQlcy?=
 =?utf-8?B?d2kwWTUzYjZxekd6Z3lTSWVucjk0ZVdRTnZTZkd5SVNFNnRybHQ2cklrc01j?=
 =?utf-8?B?RkYvWWlCMlI5KzdnVHp1cmZEUTlEYVQ2YUhGVlV5ZWI5a3ptazYrTThDOGdw?=
 =?utf-8?B?clcwL3JkT010SSs1cnJWMFcvQnRtNll1eXVPbi8yK0FmM0NJT29ZdzhPcWZs?=
 =?utf-8?B?Z1lPZXNwemYvY3lCbEY0eTBsNHN5eTlZZ3g5Nm5DZzFFc0JyYkdUZzc0WXhC?=
 =?utf-8?B?VTBSMzd2L0VXU3RVZFJtaDVzbk4ycWVtWjlEM3EvZktGdzdLUXZQR0pNV0ds?=
 =?utf-8?B?Sld0dk1uN2xhdWFCeE1IU0ZscnE2UVMyNmJZTnNNVUkySEw5ejJBa0llT2tY?=
 =?utf-8?B?aEloMnN0SWF3blFXZFBPZDlYbGdIcWM0MUJieW5GMkFFOW1rUTdQaE5TS0NG?=
 =?utf-8?B?cWtPM0ZwYlVQRzZLd2QrdmUvTE1OY0NlK1V3QmpJZzhwaVhwamtoL013T3gx?=
 =?utf-8?B?b1QrZDNKTS9jNVEwVEhFQVpXTUFCQ1JDUG1BTUovWXdCZyt0MUxVeDROUnM5?=
 =?utf-8?B?RXE5UE1zb3NUeTg1bGhFYy9RSUhXRHFMYXp4YWFvVDl2cExPYnJuN1k5OEZB?=
 =?utf-8?B?VlpXUnRvK2hOTVVKRDNGdDZDQ0JURWtHcjd6TnFqWmlJcDBDZFpWZnBRZmdt?=
 =?utf-8?B?dGZ5emVvL3dlWm9uTER2V0JDM3oxeXZ6ZHRoZmRtQ2lxenUxUE9qQ1MwWjJ5?=
 =?utf-8?B?Ym9LS1RkM1ZnQTJjeGo0cElrUjlpS3JoazhKOGprYTlVbFlWL2ZSTjcvcTBX?=
 =?utf-8?B?OVg5SFY5UHBiMjk4Tzdia0tyNXpON0VqK0U2THl3K0daaVV1azRXNU1TbDdj?=
 =?utf-8?B?THFzWGg1V2FMV1F3Nm5zUnBtMVl1WW40b0JnUlVZeU5sV0FtWkVsTUZUZEJy?=
 =?utf-8?B?N1lUUGphQy9ubXBUZFFncVp3QzNPWEdSTjhXWFBWMWhqcFRJSGpkcWlCN1ll?=
 =?utf-8?B?dmI3VWExSmlGWWFKaWtWUHAvbWl2allLZ1Bhc04rQjJpQnAzbFJPU3pnb0tO?=
 =?utf-8?B?aVB4ekNTd2dPcENPYTZEeWNSRjFJT0RZaCtRalMvbzMzem9WbXpUOEZ2WFFE?=
 =?utf-8?B?VjVoVGQ5Ty8reG5rcnVVVCtCbEVNc0JvYkRmM3hDZnA3bnNFRi94T0JQWXZE?=
 =?utf-8?B?QUdURnNTWnpTNmdMbDUxbGF6QjB1Sy8zNzJCYkQ2M2p5RHE5VUZPdmxMV2Qw?=
 =?utf-8?B?NUZmY2xlU3h6cnZJT2NlVXo1aDI4NUhEaE9iZkFqNzNtVnZzVXBXdnQ2bVF2?=
 =?utf-8?B?aW02cEh4TjR6SmhOYWxJQXJUUytCWHVXUEp6UTAvOGE5VStqeG9PaDA1b05z?=
 =?utf-8?B?ajNIRDkrVnQvTXFhWWVFNWswVS9PWWExOEhnemNtVXVMOWdzWjBEaGhlQ2s3?=
 =?utf-8?B?MXpyeElhbUV6MHY3bEZKVG5Xbkx1NEpkRUV3Y0M2SVFzUEFuSGkrNHhodUFG?=
 =?utf-8?B?bDZEVTVGNE9oNVJMd2VVTTBDZ1V5cjlCcW5nWG5LeG5CRGhNeGRwT3Z4anhV?=
 =?utf-8?B?WXc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a8f1cd88-127c-45da-bbbf-08de375cbb88
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 19:54:15.6720
 (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: wc090xY2/MvVDSeyjc7i4zt+jIXCpJnH+7ik5MleMv+adfZbtEUB035HlS70ovTSzyFQjplpttXSfyqRWru3pWtz/KulYw3eeuM7N0nKfog=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB4967

--------------ekj7blkzKlXEAVmyXxnFbw53
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09/12/2025 7:29 pm, Andrew Cooper wrote:
> On 09/12/2025 7:21 pm, Grygorii Strashko wrote:
>> Hi Andrew,
>>
>> On 09.12.25 20:07, Andrew Cooper wrote:
>>> Prior to commit 02e78311cdc6 ("x86/domctl: Make
>>> XEN_DOMCTL_set_address_size
>>> singleshot") (Xen 4.9, 2016), it was possible for domains to switch
>>> to being
>>> compat, and back again.  Since then however, becoming compat is a
>>> singleton
>>> action that can't be undone.
>>>
>>>  From the context it's clear to see the is_pv_32bit_domain() check is
>>> redundant, and from the singleton nature being the only place setting
>>> physaddr_bitsize, there's no need to check it for being 0.
>>>
>>> No functional change.
>>>
>>> Co-developed-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: Jan Beulich <JBeulich@suse.com>
>>> CC: Roger Pau Monné <roger.pau@citrix.com>
>>> CC: Grygorii Strashko <grygorii_strashko@epam.com>
>>>
>>> Split out of series to simplify things.
>>>
>>> bloat-o-meter reports:
>>>
>>>    add/remove: 0/1 grow/shrink: 1/0 up/down: 25/-96 (-71)
>>>    Function                                     old     new   delta
>>>    switch_compat                                447     472     +25
>>>    domain_set_alloc_bitsize                      96       -     -96
>>>
>>> which will mostly be the LFENCEs embedded in is_pv_32bit_domain().
>> Thank you for doing this.
>> Not sure if it's needed, any way.
>> Reviewed-by: Grygorii Strashko <grygorii_strashko@epam.com>
> It does help.  Technically it lets me commit the patch right now, but
> I'll leave it until at least tomorrow in case anyone else has comments.
>
> ~Andrew
>

FYI, here is the remainder of your patch rebased over this one.

I recommend splitting it into two, one sorting out
domain_clamp_alloc_bitsize() (however that will end up looking), and one
moving physaddr_bitsize into pv_domain.

It's almost always better to separate code movement from logical changes.

~Andrew

--------------ekj7blkzKlXEAVmyXxnFbw53
Content-Type: text/x-patch; charset=UTF-8;
 name="0001-xen-x86-move-d-arch.physaddr_bitsize-field-handling-.patch"
Content-Disposition: attachment;
 filename*0="0001-xen-x86-move-d-arch.physaddr_bitsize-field-handling-.pa";
 filename*1="tch"
Content-Transfer-Encoding: base64

RnJvbSA2NjM5ZmQ5ZTc1Y2I1YzNhMDM1MTIwNWI5ZDg5ZWUxMmNhMGI1Y2MxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHcnlnb3JpaSBTdHJhc2hrbyA8Z3J5Z29yaWlfc3RyYXNoa29A
ZXBhbS5jb20+CkRhdGU6IEZyaSwgMjggTm92IDIwMjUgMTU6MjI6MjEgKzAwMDAKU3ViamVjdDog
eGVuL3g4NjogbW92ZSBkLT5hcmNoLnBoeXNhZGRyX2JpdHNpemUgZmllbGQgaGFuZGxpbmcgdG8g
cHYzMgoKVGhlIGQtPmFyY2gucGh5c2FkZHJfYml0c2l6ZSBmaWVsZCBpcyB1c2VkIG9ubHkgYnkg
UFYzMiBjb2RlLCBzbzoKCi0gbW92ZSBkb21haW5fc2V0X2FsbG9jX2JpdHNpemUoKSBmdW5jdGlv
biBpbnRvIFBWMzIgY29kZSBhbmQKICBpbmxpbmUgaXQgaW50byBzd2l0Y2hfY29tcGF0KCkKLSBt
b3ZlIGRvbWFpbl9jbGFtcF9hbGxvY19iaXRzaXplKCkgZnVuY3Rpb24gaW50byBQVjMyIGNvZGUK
ICBhbmQgY29udmVydCB0byBtYWNybwotIG1vdmUgZC0+YXJjaC5waHlzYWRkcl9iaXRzaXplIGZp
ZWxkIHVuZGVyIFBWMzIgaWZkZWYgaW50bwogIHN0cnVjdCBwdl9kb21haW4KClNpZ25lZC1vZmYt
Ynk6IEdyeWdvcmlpIFN0cmFzaGtvIDxncnlnb3JpaV9zdHJhc2hrb0BlcGFtLmNvbT4KCmRpZmYg
LS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vZG9tYWluLmggYi94ZW4vYXJjaC94ODYv
aW5jbHVkZS9hc20vZG9tYWluLmgKaW5kZXggMzg2ZWM2MTc0NTg5Li4zZjJkNTVjMmI5Y2YgMTAw
NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9kb21haW4uaAorKysgYi94ZW4vYXJj
aC94ODYvaW5jbHVkZS9hc20vZG9tYWluLmgKQEAgLTI3OSw2ICsyNzksMTEgQEAgc3RydWN0IHB2
X2RvbWFpbgogCiAgICAgYXRvbWljX3QgbnJfbDRfcGFnZXM7CiAKKyNpZmRlZiBDT05GSUdfUFYz
MgorICAgIC8qIE1heGltdW0gcGh5c2ljYWwtYWRkcmVzcyBiaXR3aWR0aCBzdXBwb3J0ZWQgYnkg
dGhpcyBndWVzdC4gKi8KKyAgICB1bnNpZ25lZCBpbnQgcGh5c2FkZHJfYml0c2l6ZTsKKyNlbmRp
ZgorCiAgICAgLyogSXMgYSAzMi1iaXQgUFYgZ3Vlc3Q/ICovCiAgICAgYm9vbCBpc18zMmJpdDsK
ICAgICAvKiBYUFRJIGFjdGl2ZT8gKi8KQEAgLTMxOSw5ICszMjQsNiBAQCBzdHJ1Y3QgYXJjaF9k
b21haW4KICAgICB1bnNpZ25lZCBpbnQgaHZfY29tcGF0X3ZzdGFydDsKICNlbmRpZgogCi0gICAg
LyogTWF4aW11bSBwaHlzaWNhbC1hZGRyZXNzIGJpdHdpZHRoIHN1cHBvcnRlZCBieSB0aGlzIGd1
ZXN0LiAqLwotICAgIHVuc2lnbmVkIGludCBwaHlzYWRkcl9iaXRzaXplOwotCiAgICAgLyogSS9P
LXBvcnQgYWRtaW4tc3BlY2lmaWVkIGFjY2VzcyBjYXBhYmlsaXRpZXMuICovCiAgICAgc3RydWN0
IHJhbmdlc2V0ICppb3BvcnRfY2FwczsKICAgICB1aW50MzJfdCBwY2lfY2Y4OwpkaWZmIC0tZ2l0
IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21tLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbW0uaAppbmRleCA5NDM4ZjVlYTAxMTkuLmEzMDhhOThkZjJhNCAxMDA2NDQKLS0tIGEveGVu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL21tLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L21tLmgKQEAgLTYxOSw4ICs2MTksMTIgQEAgdm9pZCBfX2lvbWVtICppb3JlbWFwX3djKHBhZGRy
X3QgcGEsIHNpemVfdCBsZW4pOwogCiBleHRlcm4gaW50IG1lbW9yeV9hZGQodW5zaWduZWQgbG9u
ZyBzcGZuLCB1bnNpZ25lZCBsb25nIGVwZm4sIHVuc2lnbmVkIGludCBweG0pOwogCi11bnNpZ25l
ZCBpbnQgZG9tYWluX2NsYW1wX2FsbG9jX2JpdHNpemUoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWdu
ZWQgaW50IGJpdHMpOwotI2RlZmluZSBkb21haW5fY2xhbXBfYWxsb2NfYml0c2l6ZShkLCBiaXRz
KSBkb21haW5fY2xhbXBfYWxsb2NfYml0c2l6ZShkLCBiaXRzKQorI2lmZGVmIENPTkZJR19QVjMy
CisjZGVmaW5lIGRvbWFpbl9jbGFtcF9hbGxvY19iaXRzaXplKGQsIGJpdHMpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICgoKGQpICYmIChkKS0+YXJjaC5wdi5waHlz
YWRkcl9iaXRzaXplKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg
ICAgID8gbWluX3QodWludDMyX3QsIChkKS0+YXJjaC5wdi5waHlzYWRkcl9iaXRzaXplLCAoYml0
cykpICAgICAgICAgICAgICBcCisgICAgICAgICA6IChiaXRzKSkKKyNlbmRpZgogCiB1bnNpZ25l
ZCBsb25nIGRvbWFpbl9nZXRfbWF4aW11bV9ncGZuKHN0cnVjdCBkb21haW4gKmQpOwogCmRpZmYg
LS1naXQgYS94ZW4vYXJjaC94ODYvcHYvZG9tMF9idWlsZC5jIGIveGVuL2FyY2gveDg2L3B2L2Rv
bTBfYnVpbGQuYwppbmRleCAyMTE1OGNlMTgxMmUuLjk0Zjc5NzZlODE5ZiAxMDA2NDQKLS0tIGEv
eGVuL2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYworKysgYi94ZW4vYXJjaC94ODYvcHYvZG9tMF9i
dWlsZC5jCkBAIC02MjYsOCArNjI2LDEwIEBAIHN0YXRpYyBpbnQgX19pbml0IGRvbTBfY29uc3Ry
dWN0KGNvbnN0IHN0cnVjdCBib290X2RvbWFpbiAqYmQpCiAgICAgICAgIGluaXRyZF9tZm4gPSBw
YWRkcl90b19wZm4oaW5pdHJkLT5zdGFydCk7CiAgICAgICAgIG1mbiA9IGluaXRyZF9tZm47CiAg
ICAgICAgIGNvdW50ID0gUEZOX1VQKGluaXRyZF9sZW4pOwotICAgICAgICBpZiAoIGQtPmFyY2gu
cGh5c2FkZHJfYml0c2l6ZSAmJgotICAgICAgICAgICAgICgobWZuICsgY291bnQgLSAxKSA+PiAo
ZC0+YXJjaC5waHlzYWRkcl9iaXRzaXplIC0gUEFHRV9TSElGVCkpICkKKworI2lmZGVmIENPTkZJ
R19QVjMyCisgICAgICAgIGlmICggZC0+YXJjaC5wdi5waHlzYWRkcl9iaXRzaXplICYmCisgICAg
ICAgICAgICAgKChtZm4gKyBjb3VudCAtIDEpID4+IChkLT5hcmNoLnB2LnBoeXNhZGRyX2JpdHNp
emUgLSBQQUdFX1NISUZUKSkgKQogICAgICAgICB7CiAgICAgICAgICAgICBvcmRlciA9IGdldF9v
cmRlcl9mcm9tX3BhZ2VzKGNvdW50KTsKICAgICAgICAgICAgIHBhZ2UgPSBhbGxvY19kb21oZWFw
X3BhZ2VzKGQsIG9yZGVyLCBNRU1GX25vX3NjcnViKTsKQEAgLTY1MCw2ICs2NTIsNyBAQCBzdGF0
aWMgaW50IF9faW5pdCBkb20wX2NvbnN0cnVjdChjb25zdCBzdHJ1Y3QgYm9vdF9kb21haW4gKmJk
KQogICAgICAgICAgICAgaW5pdHJkLT5zdGFydCA9IHBmbl90b19wYWRkcihpbml0cmRfbWZuKTsK
ICAgICAgICAgfQogICAgICAgICBlbHNlCisjZW5kaWYKICAgICAgICAgewogICAgICAgICAgICAg
d2hpbGUgKCBjb3VudC0tICkKICAgICAgICAgICAgICAgICBpZiAoIGFzc2lnbl9wYWdlcyhtZm5f
dG9fcGFnZShfbWZuKG1mbisrKSksIDEsIGQsIDApICkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4
Ni9wdi9kb21haW4uYyBiL3hlbi9hcmNoL3g4Ni9wdi9kb21haW4uYwppbmRleCAxMWRiNmE2ZDgz
OTYuLmQ1OGU0ZTIxM2U1YyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3B2L2RvbWFpbi5jCisr
KyBiL3hlbi9hcmNoL3g4Ni9wdi9kb21haW4uYwpAQCAtMjU1LDcgKzI1NSw3IEBAIGludCBzd2l0
Y2hfY29tcGF0KHN0cnVjdCBkb21haW4gKmQpCiAgICAgfQogCiAgICAgaWYgKCBNQUNIMlBIWVNf
Q09NUEFUX05SX0VOVFJJRVMoZCkgPCBtYXhfcGFnZSApCi0gICAgICAgIGQtPmFyY2gucGh5c2Fk
ZHJfYml0c2l6ZSA9CisgICAgICAgIGQtPmFyY2gucHYucGh5c2FkZHJfYml0c2l6ZSA9CiAgICAg
ICAgICAgICAvKiAyXm4gZW50cmllcyBjYW4gYmUgY29udGFpbmVkIGluIGd1ZXN0J3MgcDJtIG1h
cHBpbmcgc3BhY2UgKi8KICAgICAgICAgICAgIGZscyhNQUNIMlBIWVNfQ09NUEFUX05SX0VOVFJJ
RVMoZCkpIC0gMSArIFBBR0VfU0hJRlQ7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZf
NjQvbW0uYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYwppbmRleCA0MmZkNGZlNGU5YjUuLjhl
YWRhYjc5MzNkMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jCisrKyBiL3hl
bi9hcmNoL3g4Ni94ODZfNjQvbW0uYwpAQCAtMTExOSwxMyArMTExOSw2IEBAIGludCBoYW5kbGVf
bWVtYWRkX2ZhdWx0KHVuc2lnbmVkIGxvbmcgYWRkciwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJl
Z3MpCiAgICAgcmV0dXJuIHJldDsKIH0KIAotdW5zaWduZWQgaW50IGRvbWFpbl9jbGFtcF9hbGxv
Y19iaXRzaXplKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBiaXRzKQotewotICAgIGlm
ICggKGQgPT0gTlVMTCkgfHwgKGQtPmFyY2gucGh5c2FkZHJfYml0c2l6ZSA9PSAwKSApCi0gICAg
ICAgIHJldHVybiBiaXRzOwotICAgIHJldHVybiBtaW4oZC0+YXJjaC5waHlzYWRkcl9iaXRzaXpl
LCBiaXRzKTsKLX0KLQogc3RhdGljIGludCB0cmFuc2Zlcl9wYWdlc190b19oZWFwKHN0cnVjdCBt
ZW1faG90YWRkX2luZm8gKmluZm8pCiB7CiAgICAgdW5zaWduZWQgbG9uZyBpOwo=

--------------ekj7blkzKlXEAVmyXxnFbw53--


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 20:45:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 20:45:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182178.1505094 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT4aB-00040h-9O; Tue, 09 Dec 2025 20:45:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182178.1505094; Tue, 09 Dec 2025 20:45:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT4aB-00040a-5y; Tue, 09 Dec 2025 20:45:15 +0000
Received: by outflank-mailman (input) for mailman id 1182178;
 Tue, 09 Dec 2025 20:45:13 +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
 <SRS0=omc8=6P=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vT4a9-00040S-2j
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 20:45:13 +0000
Received: from fhigh-b4-smtp.messagingengine.com
 (fhigh-b4-smtp.messagingengine.com [202.12.124.155])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f2eaca66-d53f-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 21:45:09 +0100 (CET)
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfhigh.stl.internal (Postfix) with ESMTP id B20727A0142;
 Tue,  9 Dec 2025 15:45:07 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-02.internal (MEProxy); Tue, 09 Dec 2025 15:45:07 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 9 Dec 2025 15:45:05 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f2eaca66-d53f-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1765313107;
	 x=1765399507; bh=0N4XCRLiGS86gU5LpO1DbjTF8CqEyMR4G+09xB38BqI=; b=
	wVjVycSXQydYE5trke5qHvZH1R1a6ZPvH8/l/a82l5odiqbYLIqJYcvVFni3Dl1s
	xDO41tdL39XZFam2AOeZ59bNgdSbNW/Gvm5gyPzK8dXAPAm3J0RZWVdRnyfiDVb/
	WZMOLtlc7MjEN1fhl8QcXLiZ67ZgEjgyn3tI3p8GLEdUi+7hra8t/WX0NMhuX0bq
	PjO0v1jzlK2kmi/ICFp2+Y0Vv2dZ2Ap2VsdfyQiuffAYd7D/E1aFH4S9ke3ZHn+9
	praN6PHxozYBxNqSVdbvgztLbrPobP+3sGNMQkOVAIIY83k6DPt/vAeKoSluphuz
	q5k3FxUAHpkB8kwS3K4Qvw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
	1765313107; x=1765399507; bh=0N4XCRLiGS86gU5LpO1DbjTF8CqEyMR4G+0
	9xB38BqI=; b=tBXUjlXUR/oAqUnKDuKGoSSArXXMx8lrv16r65zqnmiKomCfV5F
	fW7QFP9Zeu9CTUHjvYR3HOhGJauR1SQrQmagInyADo1tuEgWDr2AdzBcfqT3e73G
	PzuQG9/ikL4LR+VE3RQxJc2NssnaUWtrJSpxgb1RQ2WocbujUCSYyfRN/0FnWYaN
	hUJ+nQ0O4bpzWMiJ/kPD7eZitkHme05nlXdUe/47quPgokojXuNJt1UQxlUPCJW7
	AqCKDO3NWdLhWDiEKSTvUijnb+AE6VnFU4mp0fBdf3MiaVWhPi4zkJyGlBo13617
	f/CIkge2Dn91yR3lXhOVUDWsojBwtAtIqSw==
X-ME-Sender: <xms:Uoo4acT76c76nGTgjloRBRS9DDWwHRBAtpDNL0xNb_J-QyLbpYhwJA>
    <xme:Uoo4ac1L95Km1XtGWi3_vVsZSw5XWOrzUmvp8caK22EFr28e5yQ8nWKuotF__WyLg
    HGg0jA_k85iepGP3kGEF3skaBln5oCrkFh91UMfdJUxPTD3zA>
X-ME-Received: <xmr:Uoo4aUdMf8SxSxBUTHwz_lADaFul0pX2DYzDX0eDFsYnKVEE6o_H_Tuk3qYAqfF6z6Iw9TRty05YWVUNuwkXVO2CXNkrU-vxcNY>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvtdehhecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgudelteef
    vefhfeehieetleeihfejhfeludevteetkeevtedtvdegueetfeejudenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopedutddpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtoheprghrihgrughnvgesrghrihgrughnvgdr
    shhprggtvgdprhgtphhtthhopehvlehfsheslhhishhtshdrlhhinhhugidruggvvhdprh
    gtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhr
    ghdprhgtphhtthhopegrshhmrgguvghushestghouggvfihrvggtkhdrohhrghdprhgtph
    htthhopehlihhnuhigpghoshhssegtrhhuuggvsgihthgvrdgtohhmpdhrtghpthhtohep
    lhhutghhohesihhonhhkohhvrdhnvghtpdhrtghpthhtohepvghrihgtvhhhsehkvghrnh
    gvlhdrohhrghdprhgtphhtthhopehjghhrohhsshesshhushgvrdgtohhmpdhrtghpthht
    ohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:Uoo4acO7McXj0OqI6Rw8pxTptYHTFnUYzD5tn684xs12Tr1NftuTPQ>
    <xmx:Uoo4aQWNYmqn6IMIMSiB9rW-E2T6gPw5npbXOHqB8VIFvEn-vcRibQ>
    <xmx:Uoo4acyZtu-ZwEPnR5PTpomsZflRNEUoUPU9b8mYcItKWunRV-yR6A>
    <xmx:Uoo4af-Fd1jyi5QPX4VIAJHkKdI_C9jgj4A-tzUg7D-qpcN1lynqsg>
    <xmx:U4o4aXvQuSzCvlM4BBL-UltJnLcgZs7RrY-b1abd7zCJPE5-XAmC2Opm>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 9 Dec 2025 21:45:03 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Ariadne Conill <ariadne@ariadne.space>
Cc: v9fs@lists.linux.dev, xen-devel@lists.xenproject.org,
	asmadeus@codewreck.org, linux_oss@crudebyte.com, lucho@ionkov.net,
	ericvh@kernel.org, Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alex Zenla <alex@edera.dev>
Subject: Re: [PATCH] 9p/xen: mark 9p transport device as closing when
 removing it
Message-ID: <aTiKT9qOS-cQO_L5@mail-itl>
References: <20251208195155.27473-1-ariadne@ariadne.space>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="MSfjrwLz2Q9UiVY0"
Content-Disposition: inline
In-Reply-To: <20251208195155.27473-1-ariadne@ariadne.space>


--MSfjrwLz2Q9UiVY0
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 9 Dec 2025 21:45:03 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Ariadne Conill <ariadne@ariadne.space>
Cc: v9fs@lists.linux.dev, xen-devel@lists.xenproject.org,
	asmadeus@codewreck.org, linux_oss@crudebyte.com, lucho@ionkov.net,
	ericvh@kernel.org, Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alex Zenla <alex@edera.dev>
Subject: Re: [PATCH] 9p/xen: mark 9p transport device as closing when
 removing it

On Mon, Dec 08, 2025 at 11:51:55AM -0800, Ariadne Conill wrote:
> We need to do this so that we can signal to the other end that the
> device is being removed, so that it will release its claim on the
> underlying memory allocation.  Otherwise releasing the grant-table
> entries is deferred resulting in a kernel oops since the pages have
> already been freed.
>=20
> Cc: Juergen Gross <jgross@suse.com>
> Cc: Stefano Stabellini <sstabellini@kernel.org>
> Fixes: 71ebd71921e45 ("xen/9pfs: connect to the backend")
> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
> Signed-off-by: Alex Zenla <alex@edera.dev>
> ---
>  net/9p/trans_xen.c | 1 +
>  1 file changed, 1 insertion(+)
>=20
> diff --git a/net/9p/trans_xen.c b/net/9p/trans_xen.c
> index b9ff69c7522a..cde283c42dc6 100644
> --- a/net/9p/trans_xen.c
> +++ b/net/9p/trans_xen.c
> @@ -312,6 +312,7 @@ static void xen_9pfs_front_remove(struct xenbus_devic=
e *dev)
>  {
>  	struct xen_9pfs_front_priv *priv =3D dev_get_drvdata(&dev->dev);
> =20
> +	xenbus_switch_state(dev, XenbusStateClosing);

I think you need to wait for the backend to acknowledge it by switching
its state, before continuing. See for example
xennet_remove()->xennet_bus_close() in drivers/net/xen-netfront.c.

>  	dev_set_drvdata(&dev->dev, NULL);
>  	xen_9pfs_front_free(priv);
>  }
> --=20
> 2.52.0
>=20
>=20

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--MSfjrwLz2Q9UiVY0
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmk4ik8ACgkQ24/THMrX
1yxxdwf9EtdVm4vHKrR6Wilq1Fv0h4VXkAx3qT3t0DLPbOJ19GflMTaV5cVPgUQA
OzoCxGYOPjZHIDSkUDjoPrmWWs1al22S8jwB5JtD6ep/i5XX0tWY06SeuwEouXvt
DxFnZDg9DD7LzMd5MC4DDjv1y1TuR7tP7QYjKYrX6sFxRn0lQqEcS7YLZRdDRGXk
LZtgL9hb4LjG5EChL+i9ipHk2FhXbj8McsnwbhLQDgSoIM7BFUQ3m2Qk8gDKAagy
fYVXlkhwy+quQFJoirM7qKsuUkkMPTbdxtmbJTSRTf7VM+DxK57KMghL8Ocsmmn2
jBYyH9svOnzBj/ZJL4iIIAfnjxndwg==
=VcHR
-----END PGP SIGNATURE-----

--MSfjrwLz2Q9UiVY0--


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 21:47:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 21:47:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182190.1505104 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT5Yc-00034U-Mi; Tue, 09 Dec 2025 21:47:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182190.1505104; Tue, 09 Dec 2025 21:47:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT5Yc-00034N-JN; Tue, 09 Dec 2025 21:47:42 +0000
Received: by outflank-mailman (input) for mailman id 1182190;
 Tue, 09 Dec 2025 21:47: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
 <SRS0=snnK=6P=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vT5Yb-00034H-EM
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 21:47:41 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id adf04f39-d548-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 22:47:39 +0100 (CET)
Received: from BN9PR03CA0176.namprd03.prod.outlook.com (2603:10b6:408:f4::31)
 by BY5PR12MB4051.namprd12.prod.outlook.com (2603:10b6:a03:20c::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.7; Tue, 9 Dec
 2025 21:47:32 +0000
Received: from BN3PEPF0000B069.namprd21.prod.outlook.com
 (2603:10b6:408:f4:cafe::26) by BN9PR03CA0176.outlook.office365.com
 (2603:10b6:408:f4::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Tue,
 9 Dec 2025 21:47:37 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN3PEPF0000B069.mail.protection.outlook.com (10.167.243.68) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9434.0 via Frontend Transport; Tue, 9 Dec 2025 21:47:31 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 9 Dec
 2025 15:47:31 -0600
Received: from fedora.mshome.net (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 9 Dec 2025 13:47:30 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: adf04f39-d548-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OdkRvLRwFDdL+aIddrVtPQVJE42FC6kW9eXnYGgWBP1JXoVMLYBtvnXMqAjNDD8zdOULSYpI21WDN1rqg8Mai+gY33eHwKeRLrZx2QghGkK+1kZ7w7iBH0DeaBLJOUd602KOmrfF+uIfo7ppdhmDnp31jHUcQFMy58ZDpFWof6ZYgvM6f0o3A0Bavl5GWVUmeVSnO5DRzmTJch10InW54gtDGdHk/rGkW1jRzyir7CHMwDOh+7kWZyHqZLe36L9JjPFy64jx56ieqQRt1p4Kz1qfVestSYi/DbjhZR0/NJ5CC/olMPgE880dmjymmlpz+P4l0lA9rUTUztPXKmWr2Q==
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=6SJ58LU45zdDA8YS4eiI6xbsxRyKM1Ha3NQQHN6scAc=;
 b=OKGGfe7ymLJfjQFRMQoJn93C6JyEGUzGbiCX8nnYOD0ga4AMW5Mxx4sESyQLR/3k6mjDFfHmas8Ur99XHp6/ZMZWcfufZ1wVGrus/+Ckw4k+UAq97xGJX2DVXHxlCQ3G2qjakbYNwbthfT6qJyNKgzgyoHeDliQWm5k7vwhyCrT6tIDyJxz30gk30ktR39AwVWHJEXdPa1RDtDHfTF9qR/FaoO3oF21RHs4qfWwwxx9nn/gFo4gRusi3qudbVkPAl0unFZO3r+mA06tYAh/VzU23W3x6uruePQys9DZp1/d/Pkvv3AmjnFJeM6Y/xnh5ms0to6afvTuM4EoI7rpjYw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6SJ58LU45zdDA8YS4eiI6xbsxRyKM1Ha3NQQHN6scAc=;
 b=hayoTaV2ForAp0MnRq0Y17LphmjHHnfCR84NWOXmj1csNJi8PcGk0ahXoLvEuQOzsA3vbqVABltcMMYWHa5mo/VXFW6VgU+rKUUz7w/uDdYC+i1R4zJhMJ+Ng4CIqS9RjgyR4em/syMjUAlqd5cPiAx1vAvx2hg+kvneBw/DL44=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Victor Lira <victorm.lira@amd.com>, Jason Andryuk <jason.andryuk@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	"Grygorii Strashko" <grygorii_strashko@epam.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Timothy Pearson <tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, "Connor
 Davis" <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 0/2] Enable --gc-sections
Date: Tue, 9 Dec 2025 16:47:26 -0500
Message-ID: <20251209214728.278949-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B069:EE_|BY5PR12MB4051:EE_
X-MS-Office365-Filtering-Correlation-Id: e95421e6-7c67-47ac-1b03-08de376c8e86
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|7416014|376014|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?YRoekf9Ax+e1Z2NHmpf6N+poFCxgn3gmmfIfwU9YB1gU0c3kuQqHpjAHpw2C?=
 =?us-ascii?Q?a7hh1xm0/hBZQHDM0QH4iQUZiZ82uOjiBFjmyesvXIwE8GLq+28b5mw7vHEy?=
 =?us-ascii?Q?4eo34yDmr3x7JPLDFbfeiaH342YbM2Z4wkHZC5mWvYJQhnOwqgICjRemUZ6+?=
 =?us-ascii?Q?AwKZbjJ1DAkwc+qhglS4Br3m3nb+ieab0hDJnw8uAq17siUDYirJnUDrB18O?=
 =?us-ascii?Q?vmfv6uZIrqcRVcTGMcyt/+dROz/VyMaBo9W87PY39mBGo1ExBm+p2p0y/m40?=
 =?us-ascii?Q?yajFwu1Be4eWt8/B/fOFWF1KzUjF44ESNAlCtOhn4swW3BSXoDuFG38aL9uV?=
 =?us-ascii?Q?JdFKJOtUGpQd7jv9p9WkkasM9/NUsh8GjXfDFcXk5Vng2SN6HDLZx67vhF3a?=
 =?us-ascii?Q?FCJA3xLNwxBYPNROKJb6t8SY5yaiAwff6Crsk6/LOd+5kxcnI1k0ezOwEiQw?=
 =?us-ascii?Q?6rTETxdEcVa8CXROWDGs6SR0zKZ91I55a1thLH0mVHiwaC9GCKYJpr9JcF2X?=
 =?us-ascii?Q?ExhoRLd1hLmVFLYDSVpViuMDDSMz/rLye0NVxLuOt/kfSvxqDxsoL+KjEuhQ?=
 =?us-ascii?Q?yWWhO6nTYbYSZCyv1sZnpCBMu4KwiEhelUZsfbdBHs8wXhNexShGnML6Q0YG?=
 =?us-ascii?Q?IW9taVcBcCG6AXcBSp54vzOcfdcQHQllpBj8UlYPsw8FCUo+v75Rd7Y8tY2t?=
 =?us-ascii?Q?GmtjGce6UXqMZp3xPQsIWKFCryvaZ+DIvOhKAp8sFsnCRSb39p1QIfpm6dGI?=
 =?us-ascii?Q?W9hXdacPZqou2UY3fvYYm8X0dZyHGQgyPW4e7hUa8XOqwOr/4WGA5vQf9Yfb?=
 =?us-ascii?Q?wTKzQWeN8geP729F5MoX68j3rf5M2zHRx5jtcT9oga+W5N90UqxFcd+Bkwdf?=
 =?us-ascii?Q?cvmpePovI1gthc8K4OLYuSYLY55m2QT1ivwn6MsWwcUQ4xmgtG44xRsNGpE6?=
 =?us-ascii?Q?RqaNSG7AzV9y+IpYat9TqFi+V77yTLVN5+5NDWJsGAoHFLyR0MRIXdlptnn+?=
 =?us-ascii?Q?0Kt/58A3sBNo3v6OPDmQkQXY9BSHTV8fm7GkeMChAVXO5vmrEh6W/x8ktpzf?=
 =?us-ascii?Q?apVUo4+SbBIEpLm7MB9nS7mAZw7ZBhiguAR2O284jXwppec9C5gRZ2QLkU24?=
 =?us-ascii?Q?Y6/NFB4/PTC8KCtFspNC9max86afaYAGgshdFxfiZhiSM3Jq/+mNZ1oWtfSx?=
 =?us-ascii?Q?mOYdvnzD/Q8NmGT2ln7a6CfGOyM943QuYaB/U5wqxOedEq1qN0zj1bfaaX6P?=
 =?us-ascii?Q?2/CkEh6NxY53fpcQE5uWINMdKj6vdd5JPPQRkqFuE2uR+1I26aRSkpiloq4G?=
 =?us-ascii?Q?QzLUKVSJLy6KRzunk3xXIMFnjRQB3/J2G6Hzz6D10ocykB35wXEGRbMKuiV9?=
 =?us-ascii?Q?zENPDack0RBqAnsANHhQF3rR32/qm76m9mgtPBz/RFJKAlcHY16w5ae7r/sV?=
 =?us-ascii?Q?hEZ0CeFBIWSZCmmkRinlcYlwA4n6RrZcsmKvJ1cDKmXlS2qAxumKSgcmv95D?=
 =?us-ascii?Q?+/7YDWqbTfI5+6wVJMS4pVVU/DAt/3/B7lffIxg9AwTmHsBoWOqAtB0WGx6v?=
 =?us-ascii?Q?bCgGgcb8jpYnK9X+UFE=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(7416014)(376014)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 21:47:31.9922
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e95421e6-7c67-47ac-1b03-08de376c8e86
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B069.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4051

The first patch removes the scheduler duplication in the linker script.
The second patch adds CONFIG_GC_SECTIONS and makes it available for all
architectures.

Pipeline here:
https://gitlab.com/xen-project/people/jandryuk-amd/xen/-/pipelines/2205223331

--print-gc-sections is enabled, and ARM builds in particular show a good
bit of removal.

Jason Andryuk (2):
  xen: Centralize scheduler linker definition
  xen: Add CONFIG_GC_SECTIONS

 xen/Makefile              |  3 +++
 xen/arch/arm/Makefile     |  6 +++---
 xen/arch/arm/xen.lds.S    | 27 ++++++++++++---------------
 xen/arch/ppc/Makefile     |  6 +++---
 xen/arch/ppc/xen.lds.S    | 19 ++++++++-----------
 xen/arch/riscv/Makefile   |  6 +++---
 xen/arch/riscv/xen.lds.S  | 19 ++++++++-----------
 xen/arch/x86/Makefile     |  6 +++---
 xen/arch/x86/xen.lds.S    | 39 ++++++++++++++++++---------------------
 xen/common/Kconfig        |  9 +++++++++
 xen/include/xen/xen.lds.h | 24 +++++++++++++++---------
 11 files changed, 85 insertions(+), 79 deletions(-)

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 21:47:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 21:47:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182191.1505113 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT5Ye-0003Hq-Se; Tue, 09 Dec 2025 21:47:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182191.1505113; Tue, 09 Dec 2025 21:47:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT5Ye-0003Hj-Po; Tue, 09 Dec 2025 21:47:44 +0000
Received: by outflank-mailman (input) for mailman id 1182191;
 Tue, 09 Dec 2025 21:47:44 +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
 <SRS0=snnK=6P=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vT5Ye-00034H-5F
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 21:47:44 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b0883b20-d548-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 22:47:43 +0100 (CET)
Received: from MN2PR20CA0039.namprd20.prod.outlook.com (2603:10b6:208:235::8)
 by DM4PR12MB6086.namprd12.prod.outlook.com (2603:10b6:8:b2::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 21:47:37 +0000
Received: from BN3PEPF0000B06E.namprd21.prod.outlook.com
 (2603:10b6:208:235:cafe::b7) by MN2PR20CA0039.outlook.office365.com
 (2603:10b6:208:235::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Tue,
 9 Dec 2025 21:47:37 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN3PEPF0000B06E.mail.protection.outlook.com (10.167.243.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9434.0 via Frontend Transport; Tue, 9 Dec 2025 21:47:36 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 9 Dec
 2025 15:47:35 -0600
Received: from fedora.mshome.net (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 9 Dec 2025 13:47:34 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b0883b20-d548-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rn1vKKb5ct+K5H1feRmzbeOUpmGnMnsCflXN/FIZYCYSIlpVSjS3Tt+WZhPcJexCXDqO5KIXLRCuDLTsZ7FKZDM2jX3MqAUj04pNIaME0YZDo3wvlOSIshwwG5DcjIllWTmnm+5tHm8HzmDl9AHvp6KMZaU3dJsG7gesM6qJF7eBe1Gg0jHChGQQ7VN7l1C6uEHCYdZpODkFC6rbyh0CK/3XofyrKFnMZOHGtoVTKEakYjNXX2mlcfXwK5MZh9sv5zlMx1LWZn0MYVQNcj0pV3+Qke7ShP5bVHikRFqbCO/rSixhgjnsxR43BWsf/IZyCwJx2OyCASVJM0GLtkaOmA==
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=3XCbSVFNzCjt7w3qMGM0qa3eYVALUm43b3M/D4sJmyw=;
 b=zVDgYFIrLhpK/4LkG42NtfBZ875segA6GXHWqH6rAYo10B+TyLdb/4HqPXNxfr+Bphf+ll3K38BWeNDkhZ89hkBP6lzM2owV+KjNU2tCwGlxXun79Ze0H+52GSwriWQxio3cjzqrjRtUV+ejg/oGzXG/lzf/CmR49C2WU4t6pDUhdbv0wrWt37OlByPfHr/YswLW+EQ/uELEO8DryfbljJuKCxNM9GHObud9NUSlI4xeetqe0fpRwLGTUs2XxnZzSiw+skanRKzI0Aa6rN7F3zp1ZGLPvXn3+SyI/7U3239PDM7Oa2kHCPePE1oLFGOTGEgaHVmTh/3l1zeSqMQpXA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3XCbSVFNzCjt7w3qMGM0qa3eYVALUm43b3M/D4sJmyw=;
 b=fuSFM+y7xtbN5EXF7P3uZH9m2FvZl+z5fnJRMyFhXTL0YZ4ouS4K7TwhsQm//I0ir154yNK7r6n+PONNTV61p/MW33UOtyg4roYZKy5LMuhe5+MhildJFRPZ5c4KoLdUkGw7lsA0pkkzcbynPUCL9R9FL321XWRK42d8/IWwib4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Victor Lira <victorm.lira@amd.com>, Jason Andryuk <jason.andryuk@amd.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, "Connor
 Davis" <connojdavis@gmail.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Grygorii Strashko <grygorii_strashko@epam.com>
Subject: [PATCH 1/2] xen: Centralize scheduler linker definition
Date: Tue, 9 Dec 2025 16:47:27 -0500
Message-ID: <20251209214728.278949-2-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20251209214728.278949-1-jason.andryuk@amd.com>
References: <20251209214728.278949-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B06E:EE_|DM4PR12MB6086:EE_
X-MS-Office365-Filtering-Correlation-Id: 3bcf85a5-61f0-47e4-1236-08de376c9164
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|7416014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?62LwAZ2tfp2uDTE+r/O8nAn7KYdFN0euN2EZSur4Dwt4uEujiAdC3dw2nP8H?=
 =?us-ascii?Q?sYRWmbF+TNHoEJhWnH9vAIZEoqdzjc3PpDm9vTnmNTgxWyRNg6qPWOVVabUx?=
 =?us-ascii?Q?YhTEKQJQNC+AGAoKeXtBHPN5u2CUynrJJxl2VFRMyOT7FqqwN3OBvgwGYdfr?=
 =?us-ascii?Q?cCY2EPTPl/Un6Qpeyb6TMpqb9fUWCf9T5VbJRrst2iIUqJvAnDSMqrChkeuc?=
 =?us-ascii?Q?4KdNqAeDuUA7sjxt7DEIx699WqXCrJb8UlcaUiWoaIaPc/kJ4kCA2RgXymtz?=
 =?us-ascii?Q?9e/OWWSZNxtBrJ32cjXc4D3KXd/0LER1bZsHwz7NhfGtQiVCcfNc7Xt04fQ6?=
 =?us-ascii?Q?G30MdWqlLh05c8wutzN7i5meAeOok6K+ckTWTtp8XxotRhsc8V96ke3+kS6G?=
 =?us-ascii?Q?XODnRh/Iur0fghuHKC/M3+HAw0eF4ILT4kuqFt3GkWsZpWgsdty/XVwQID+m?=
 =?us-ascii?Q?c4mQkPOppPkqOixJz3MZSrv9ji29rY4pf6DcoHb4wchkGzCINxv2gMBSvdcr?=
 =?us-ascii?Q?bHyp6rQdg+Rm9AAk3ZkwNUdzjuSr/1/ua/+hdpxZrz2qYwOAiA3sVYC/A4fI?=
 =?us-ascii?Q?M6QlW6oimyY8MUBiiVQ394syyRXOZrgVCXMqFKJBYeQG+L+Yr+K67B3Ihv5m?=
 =?us-ascii?Q?wYiACo6zWYGJ1z1FyALUMi73Q4NT6qcfcqO2BjL2QBxopWphiKICj1o6GqLp?=
 =?us-ascii?Q?JhNkjaEXw3WypUvogodxELfN0irocS9W1GLjD9sw1xi70ZbEaywihhDO3Czw?=
 =?us-ascii?Q?fWc7nHt393I26rYw9J79YOyag/FNRGALRsO1kqhHrGJtKM0IIZSYVKkr1LoV?=
 =?us-ascii?Q?ZCzEhBmfSoaluHPIQZmpfvqvqapiO7Wsp+pTvNF1EDWfypoVtdgqH+9mnnH2?=
 =?us-ascii?Q?nVDFgLaetyIjeg/urWKKjuHeoo+c2ifA6mLS53GJEtW0flg62zMn+m8HQcmm?=
 =?us-ascii?Q?UR0xX/JbRzO7r7dvLY1GH1D0zXH08ioOikhwinLjEebtMrYSLfMy4sVAphtN?=
 =?us-ascii?Q?MFRcpUAKk2kpTJt0RauglH1E6/Va+6/1ujFQPp8WM4Zhon35670I6QR0A10F?=
 =?us-ascii?Q?Q/LTHXCMP7WNwmJ9EGblaAW6CeLNu9kWj4bvFsfZSDFUhjsGCno9Wyw2OPRP?=
 =?us-ascii?Q?9UewqAuHznmBCMa3yb/CuFlR9gzKXxh/ybnMmYRxFcvE5Tm8ibhfIYLmnyM/?=
 =?us-ascii?Q?zb5AD8mg5rRHBdsX8TtGB7SHjvE002KjCaA06+DmFQR6jodFq5+FljH8kzOR?=
 =?us-ascii?Q?a7Rhy2F+E6j68fGxGHQItJ5L2JCU3W4yW0horycgTG2JQZeFqgThod0frRCS?=
 =?us-ascii?Q?vC1UcmUEDltOZZxU/PBpE+eMnhMbM34GnnrjPiNg2hgEjlMMUs/ruCz/Q8Dv?=
 =?us-ascii?Q?t/9+CYPx3mGgQ74OTccnmUWuT0W474ornyLHdpe2AUN5KYoDouVFBjBAWTWe?=
 =?us-ascii?Q?7NFo6FcNo1UiT+n69ez8f7dXR15cDwbZ3Y9kk5X5BQ75Ogbk2G2nNVSKicRV?=
 =?us-ascii?Q?/vzVcrlPfxmHeksTfjEdleHvOvs+EhYsXNDGGJLSOEQGXB01YZTneFLtr3+e?=
 =?us-ascii?Q?HnPzpB1Y6upeAEDdfqw=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(7416014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 21:47:36.8001
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3bcf85a5-61f0-47e4-1236-08de376c9164
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B06E.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6086

Use a define to centralize the common scheduler data in the per-arch
linker scripts.  This is in preparation for marking it KEEP().

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
 xen/arch/arm/xen.lds.S    | 5 +----
 xen/arch/ppc/xen.lds.S    | 5 +----
 xen/arch/riscv/xen.lds.S  | 5 +----
 xen/arch/x86/xen.lds.S    | 5 +----
 xen/include/xen/xen.lds.h | 6 ++++++
 5 files changed, 10 insertions(+), 16 deletions(-)

diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
index db17ff1efa..2d5f1c516d 100644
--- a/xen/arch/arm/xen.lds.S
+++ b/xen/arch/arm/xen.lds.S
@@ -92,11 +92,8 @@ SECTIONS
   . = ALIGN(SMP_CACHE_BYTES);
   .data : {                    /* Data */
        *(.data.page_aligned)
-       . = ALIGN(8);
-       __start_schedulers_array = .;
-       *(.data.schedulers)
-       __end_schedulers_array = .;
 
+       SCHEDULER_ARRAY
        HYPFS_PARAM
 
        *(.data .data.*)
diff --git a/xen/arch/ppc/xen.lds.S b/xen/arch/ppc/xen.lds.S
index 1de0b77fc6..d0f2ed43f1 100644
--- a/xen/arch/ppc/xen.lds.S
+++ b/xen/arch/ppc/xen.lds.S
@@ -83,11 +83,8 @@ SECTIONS
     . = ALIGN(PAGE_SIZE);
     DECL_SECTION(.data) {                    /* Data */
         *(.data.page_aligned)
-        . = ALIGN(8);
-        __start_schedulers_array = .;
-        *(.data.schedulers)
-        __end_schedulers_array = .;
 
+        SCHEDULER_ARRAY
         HYPFS_PARAM
 
         *(.data .data.*)
diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
index edcadff90b..45d2e053d0 100644
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -78,11 +78,8 @@ SECTIONS
     . = ALIGN(PAGE_SIZE);
     .data : {                    /* Data */
         *(.data.page_aligned)
-        . = ALIGN(8);
-        __start_schedulers_array = .;
-        *(.data.schedulers)
-        __end_schedulers_array = .;
 
+        SCHEDULER_ARRAY
         HYPFS_PARAM
 
         *(.data .data.*)
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 1ee08a3ea3..2aa41306ca 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -309,11 +309,8 @@ SECTIONS
   . = ALIGN(SMP_CACHE_BYTES);
   DECL_SECTION(.data.read_mostly) {
        *(.data.read_mostly)
-       . = ALIGN(8);
-       __start_schedulers_array = .;
-       *(.data.schedulers)
-       __end_schedulers_array = .;
 
+       SCHEDULER_ARRAY
        HYPFS_PARAM
   } PHDR(text)
 
diff --git a/xen/include/xen/xen.lds.h b/xen/include/xen/xen.lds.h
index f54fb2d152..2d66d618b3 100644
--- a/xen/include/xen/xen.lds.h
+++ b/xen/include/xen/xen.lds.h
@@ -173,6 +173,12 @@
        _edevice = .;        \
   } :text
 
+#define SCHEDULER_ARRAY              \
+       . = ALIGN(8);                 \
+       __start_schedulers_array = .; \
+       *(.data.schedulers)           \
+       __end_schedulers_array = .;
+
 #ifdef CONFIG_HYPFS
 #define HYPFS_PARAM              \
        . = ALIGN(POINTER_ALIGN); \
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 21:47:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 21:47:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182193.1505123 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT5Yq-0003cL-8e; Tue, 09 Dec 2025 21:47:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182193.1505123; Tue, 09 Dec 2025 21:47:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT5Yq-0003cA-5w; Tue, 09 Dec 2025 21:47:56 +0000
Received: by outflank-mailman (input) for mailman id 1182193;
 Tue, 09 Dec 2025 21:47:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=snnK=6P=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vT5Yp-0003Zl-08
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 21:47:55 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b5c65195-d548-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 22:47:51 +0100 (CET)
Received: from DM5PR07CA0063.namprd07.prod.outlook.com (2603:10b6:4:ad::28) by
 CY5PR12MB6345.namprd12.prod.outlook.com (2603:10b6:930:22::21) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.14; Tue, 9 Dec 2025 21:47:41 +0000
Received: from DS1PEPF00017097.namprd05.prod.outlook.com
 (2603:10b6:4:ad:cafe::d3) by DM5PR07CA0063.outlook.office365.com
 (2603:10b6:4:ad::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.6 via Frontend Transport; Tue, 9
 Dec 2025 21:47:41 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS1PEPF00017097.mail.protection.outlook.com (10.167.18.101) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Tue, 9 Dec 2025 21:47:40 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 9 Dec
 2025 15:47:39 -0600
Received: from fedora.mshome.net (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 9 Dec 2025 13:47:37 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b5c65195-d548-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=V8mFrTPRNjWkgMR6O7Rt4gYkZsglYTxX2neOPODvZ3XCXgxB1MfotFs1TKFcMW/u7ze17EvBRm+4gDrv1DXu+RYjvB7Da1jc5RNYnf0TrwZczIAEMyk7uY0jqyZlcdjZcjsao71qgFivExObmClqDwGeJoPaDRZSxM2BoT5MnMQGnDlE7QHIRV05eAmJVLjdeM/re3vSi+EDFqcn+ouYjJCz3uk3A4t0VMVJzErbB7sIadfFHn8lmhwziSwGGzu58fVMGjmeojKmN+szY3gdXFF+8QbKA+KeDODmFAUROcKcpaOi+Mr/bkc+hnqDeJzCyXUmzXcDeYKjlZE9vf4LWA==
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=g+8Mr0VTHJBwg/M5BwrjFawejnL3nKjePtafSPwHS4I=;
 b=dnHqPjLYtom5n+KzuByoTZXCcqq7ptL5mxVI+qkq48vyF6yCkT0IjOrpYZSdiN+jr3YM6H15lcaWn8vbq8SLlVQts5yfvk48V2mxRPB2nJBBG/G3JHMgXtcBt8ZguSp6yLbIIqT3WwHR+R6UddsCNsc828aBBiVQ+TI8+gEFNl50iq1q3CGQQALAq+dxUU8ENiP8TJwtvPw1UacpaXR1MUdp53Tv3v5K+MGwHraqLLQ8TpTLUHGUhx6WhTFDJnl2fY7M1u2Jgi7o3mdeLJG8XkarqY7b2NnznhrsYc3Z4jjgC46OVGy6NuEKJjaJNXh8wDEfWKXY6Xoea8b7W0Qebw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=g+8Mr0VTHJBwg/M5BwrjFawejnL3nKjePtafSPwHS4I=;
 b=x6BhoVYLCcjSZs7GWe2G8vcaU3MmEYa1Q0Ym6lpcPuE3ABTD55Y1OX3tR+w2WTDdZcRwgrgh+nroMbyEPYK7YaAtxahR01lfRl7dmPylMXnd7jVZ078dhaWJnpQtF62p4Bu6cWkV4dz0Tnuz9+TGZW6+tu+ZpSoG4KqFkF78veQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Victor Lira <victorm.lira@amd.com>, Jason Andryuk <jason.andryuk@amd.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Timothy Pearson <tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, "Connor
 Davis" <connojdavis@gmail.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Grygorii Strashko <grygorii_strashko@epam.com>
Subject: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
Date: Tue, 9 Dec 2025 16:47:28 -0500
Message-ID: <20251209214728.278949-3-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20251209214728.278949-1-jason.andryuk@amd.com>
References: <20251209214728.278949-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PEPF00017097:EE_|CY5PR12MB6345:EE_
X-MS-Office365-Filtering-Correlation-Id: 69c915e0-222b-47ec-465d-08de376c9398
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|1800799024|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?22SStsWgIUzW/zsmB8Qt9wnXkn2cSQEPXJzSLO2R+N2ZkfI0NyauY+hc7Kmu?=
 =?us-ascii?Q?wR1KngKSA4k/zVhfE/5FdwBGxiX5fy9emV14u1aKLqDcZ/m+aFfDvCuEmGxi?=
 =?us-ascii?Q?n4xBboNi5oMfXw8GK6HjIBajSPujxBVAWXSIbq/4Snhmxs4ssnBNLVkpz3G1?=
 =?us-ascii?Q?3IPIvsHyBw5AdXdWHyniQes+oM5Efo6W8Y4grij1f34W2YXmByx/WTHgo1V0?=
 =?us-ascii?Q?PV00D668e2eDJvuek8S/Avgmddg7GOVYdWlM5RU5chq45lOaa91mi5261Bi1?=
 =?us-ascii?Q?+cgvz0O3oGX1WMEm4DdZQk4ZdNPnJZICwDo5alS9XO0gcyj16ZFcCEn8jwum?=
 =?us-ascii?Q?osQs3hDYTa2IPU0qi495Cv9/t1eOJJdCzmOpFT98Okv2KSTN9P5HCBmoKL8Y?=
 =?us-ascii?Q?i43GEL9RnWcYJCF0SrKfWV2Yq1s18RKVB100ofS3oyUeJuzeWnws1Rdgv3o4?=
 =?us-ascii?Q?RIwSakKyCfvNXNX/umdUnF1Oz9ckq65PphFikJQT6pHgNbMN5YdSza5TVFoI?=
 =?us-ascii?Q?rfMvsQTMcewgHqM6hnzaDG8Zv6adshkIzqbKTukh075jQSXhwsYhaohwJPcG?=
 =?us-ascii?Q?QYR+RltR08N0eRDW4Vx5hxbQGG0a8NgamGO/0Bs8op2rQTrYJoZ5P1jLtihY?=
 =?us-ascii?Q?qYT4E4olbV99uWEiBxoxIenyMy8X7wAfbsqkuAKCwPVoKScf3y21MN44LGpt?=
 =?us-ascii?Q?oYNDb0vqLs9LILLRwCu7TFNYPhJVpPL7TOLHgQg0C9HFbC6RSdbxYULHU1xE?=
 =?us-ascii?Q?Web2N7SlngGsixAZJimwJnxGftoSpzn3MZU43pfoIB/ML6+KKO8j79eDmePW?=
 =?us-ascii?Q?6SGY1sRV9JGrpWHiapXBvEvbtWfGnsbdtUYR6oFpKiJB6fMEhoX3/woSp+YU?=
 =?us-ascii?Q?tAX0+4eYFiyk9vFLzU3dDYlfAxQchc5MJD/rDnHL2RTXM54O6n+89m+TGw+4?=
 =?us-ascii?Q?j3jAi8Wgm2FM9M2S1nlAZklVlRwOQOVN7aqDrK8FfeRPnWshTOExIYSuJVM6?=
 =?us-ascii?Q?UCFaSt0V5LTHVhwUkf4gCElyvnpYBPYTYmlr9tvrTd2ypF/VTwe48HkD/s5J?=
 =?us-ascii?Q?Lq+kxoTj4fdl4dkiBvHyYaIhz44oaIcH+kGpT3rrLBRMROGISQfm4b3nOoqs?=
 =?us-ascii?Q?0lkziqfk+hWDpBnDzomLr3oZ8+MmP0F8aGf2FU5gMBpB7VEpoHARuv5CG4eu?=
 =?us-ascii?Q?wrYp1QfMiwlH5p0GWdXD0lGjcDrIe2GgnR2TexIFsoLrIAGeWP8Y1cudqc/6?=
 =?us-ascii?Q?Av9cD9uudQUBjXbGyxcz1xNBoKz68l7WQBX7It/H+3gq/fsDOikxcKwBjKrU?=
 =?us-ascii?Q?SV9RHOQ425h0ntgA27HRuc1oDSaQIazmZZxjUJe7/B8lm3ANAseAQ0rQfTLW?=
 =?us-ascii?Q?Kc0NzhgvRnwi4IOlecBvZZkcr5psvbVYoXeAic6BFaxGvuv25DxhVYAnQMHh?=
 =?us-ascii?Q?kGqej4h3l2hBp/T0Dim6uSUljFPkt7iHIZs8k20xKNb8Mw+Evnsa7U59GWsc?=
 =?us-ascii?Q?ZL0i/2EpCH7dkJxLHOqyWacE3Yozng2SKfN2GInnzm3EIaJKEEOMGGjPTe1n?=
 =?us-ascii?Q?l1OiqPCMgK7kxfWxOCqdN3IO2u0YEV2mwKnrg+wX?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 21:47:40.4679
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 69c915e0-222b-47ec-465d-08de376c9398
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS1PEPF00017097.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6345

Add a new Kconfig CONFIG_GC_SECTIONS to control linking with
--gc-sections.  --gc-sections witll garbage collect unused sections.
Combined with CONFIG_CC_SPLIT_SECTIONS, this will remove unreachable
code and data.

Linker scripts need to add KEEP() assorted places to retain
appropriate data - especially the arrays created by the linker script.

This has some affect, but it is inomplete.  In a test where memory_add()
is unreachable, it is still included.  I'm not sure, but it seems that
alternatives keep a relocation reference to it.

Only ELF xen is supported.  xen.efi fails to link with many undefined
references when using --gc-sections.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v1:
Add Kconfig
select CC_SPLIT_SECTIONS
remove KEEP from .fixup
Add KEEP to .text.entry.* (Only needed with Jan's "common: honor
CONFIG_CC_SPLIT_SECTIONS also for assembly functions" ?)
Add ARM, RISC-V and PPC

Pipeline passes:
https://gitlab.com/xen-project/people/jandryuk-amd/xen/-/pipelines/2205223331

It defaults CONFIG_GC_SECTIONS=y and adds --print-gc-sections

With --print-gc-sections on x86 defconfig + GC_SECTIONS=y debug=y:
ld: removing unused section '.text.__bitmap_full' in file 'prelink.o'
ld: removing unused section '.text.__bitmap_xor' in file 'prelink.o'
ld: removing unused section '.text.__bitmap_set' in file 'prelink.o'
ld: removing unused section '.text.__bitmap_clear' in file 'prelink.o'
ld: removing unused section '.text.bitmap_find_free_region' in file 'prelink.o'
ld: removing unused section '.text.bitmap_release_region' in file 'prelink.o'
ld: removing unused section '.text.domain_has_ioreq_server' in file 'prelink.o'
ld: removing unused section '.text.compat_kexec_op' in file 'prelink.o'
ld: removing unused section '.text.in_atomic' in file 'prelink.o'
ld: removing unused section '.text.radix_tree_next_hole' in file 'prelink.o'
ld: removing unused section '.text.radix_tree_prev_hole' in file 'prelink.o'
ld: removing unused section '.text.radix_tree_gang_lookup_slot' in file 'prelink.o'
ld: removing unused section '.text._nrspin_trylock' in file 'prelink.o'
ld: removing unused section '.text.xen_compile_host' in file 'prelink.o'
ld: removing unused section '.text.vscnprintf' in file 'prelink.o'
ld: removing unused section '.text.wake_up_one' in file 'prelink.o'
ld: removing unused section '.text.xmem_pool_get_used_size' in file 'prelink.o'
ld: removing unused section '.text.xmem_pool_get_total_size' in file 'prelink.o'
ld: removing unused section '.text.xmem_pool_maxalloc' in file 'prelink.o'
ld: removing unused section '.text.xlat_start_info' in file 'prelink.o'
ld: removing unused section '.text.elf_sym_by_name' in file 'prelink.o'
ld: removing unused section '.text.elf_sym_by_index' in file 'prelink.o'
ld: removing unused section '.text.elf_get_ptr' in file 'prelink.o'
ld: removing unused section '.text.elf_lookup_addr' in file 'prelink.o'
ld: removing unused section '.text.serial_vuart_info' in file 'prelink.o'
ld: removing unused section '.text.pci_find_next_cap' in file 'prelink.o'
ld: removing unused section '.text.free_hvm_irq_dpci' in file 'prelink.o'
ld: removing unused section '.text.mce_barrier_init' in file 'prelink.o'
ld: removing unused section '.text.mce_barrier_dec' in file 'prelink.o'
ld: removing unused section '.text.mce_barrier' in file 'prelink.o'
ld: removing unused section '.text.apei_read_mce' in file 'prelink.o'
ld: removing unused section '.text.apei_check_mce' in file 'prelink.o'
ld: removing unused section '.text.apei_clear_mce' in file 'prelink.o'
ld: removing unused section '.text.efi_halt_system' in file 'prelink.o'
ld: removing unused section '.text.get_vvmcs_virtual_safe' in file 'prelink.o'
ld: removing unused section '.text.get_vvmcs_real_safe' in file 'prelink.o'
ld: removing unused section '.text.set_vvmcs_real' in file 'prelink.o'
ld: removing unused section '.text.set_vvmcs_virtual_safe' in file 'prelink.o'
ld: removing unused section '.text.set_vvmcs_real_safe' in file 'prelink.o'
ld: removing unused section '.text.domain_set_alloc_bitsize' in file 'prelink.o'
ld: removing unused section '.text.watchdog_enabled' in file 'prelink.o'
ld: removing unused section '.text.unset_nmi_callback' in file 'prelink.o'
ld: removing unused section '.text.sha2_256_init' in file 'prelink.o'
ld: removing unused section '.text.xxh64_copy_state' in file 'prelink.o'
ld: removing unused section '.text.xxh64' in file 'prelink.o'
ld: removing unused section '.discard' in file 'prelink.o'
ld: removing unused section '.rodata.xen_compile_host.str1.1' in file 'prelink.o'
ld: removing unused section '.rodata.elf_lookup_addr.str1.1' in file 'prelink.o'
ld: removing unused section '.rodata.apei_read_mce.str1.8' in file 'prelink.o'
ld: removing unused section '.rodata.efi_halt_system.str1.8' in file 'prelink.o'
ld: removing unused section '.rodata.play_dead.str1.1' in file 'prelink.o'
ld: removing unused section '.data.rel.ro.local.fetch_type_names' in file 'prelink.o'
---
 xen/Makefile              |  3 +++
 xen/arch/arm/Makefile     |  6 +++---
 xen/arch/arm/xen.lds.S    | 22 +++++++++++-----------
 xen/arch/ppc/Makefile     |  6 +++---
 xen/arch/ppc/xen.lds.S    | 14 +++++++-------
 xen/arch/riscv/Makefile   |  6 +++---
 xen/arch/riscv/xen.lds.S  | 14 +++++++-------
 xen/arch/x86/Makefile     |  6 +++---
 xen/arch/x86/xen.lds.S    | 34 +++++++++++++++++-----------------
 xen/common/Kconfig        |  9 +++++++++
 xen/include/xen/xen.lds.h | 20 ++++++++++----------
 11 files changed, 76 insertions(+), 64 deletions(-)

diff --git a/xen/Makefile b/xen/Makefile
index e6cf287425..aeb5dcf2ee 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -469,10 +469,13 @@ all-symbols-$(CONFIG_FAST_SYMBOL_LOOKUP) += --sort-by-name
 
 include $(srctree)/arch/$(SRCARCH)/arch.mk
 
+XEN_FINAL_LDFLAGS-$(CONFIG_GC_SECTIONS) := --gc-sections
+
 # define new variables to avoid the ones defined in Config.mk
 export XEN_CFLAGS := $(CFLAGS)
 export XEN_AFLAGS := $(AFLAGS)
 export XEN_LDFLAGS := $(LDFLAGS)
+export XEN_FINAL_LDFLAGS := $(LDFLAGS) $(XEN_FINAL_LDFLAGS-y)
 export CFLAGS_UBSAN
 
 endif # need-config
diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 7494a0f926..3ac5ff88cc 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -87,19 +87,19 @@ endif
 $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
 	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0.S
 	$(MAKE) $(build)=$(@D) $(dot-target).0.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
+	$(LD) $(XEN_FINAL_LDFLAGS) -T $(obj)/xen.lds $< \
 	      $(dot-target).0.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).1.S
 	$(MAKE) $(build)=$(@D) $(dot-target).1.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
+	$(LD) $(XEN_FINAL_LDFLAGS) -T $(obj)/xen.lds $< \
 	    $(dot-target).1.o -o $(dot-target).1
 	$(NM) -pa --format=sysv $(dot-target).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).2.S
 	$(MAKE) $(build)=$(@D) $(dot-target).2.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
+	$(LD) $(XEN_FINAL_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
 	    $(dot-target).2.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
index 2d5f1c516d..178af612a2 100644
--- a/xen/arch/arm/xen.lds.S
+++ b/xen/arch/arm/xen.lds.S
@@ -63,7 +63,7 @@ SECTIONS
 
        . = ALIGN(4);
        __proc_info_start = .;
-       *(.proc.info)
+       KEEP(*(.proc.info))
        __proc_info_end = .;
   } :text
 
@@ -103,7 +103,7 @@ SECTIONS
   . = ALIGN(8);
   .arch.info : {
       _splatform = .;
-      *(.arch.info)
+      KEEP(*(.arch.info))
       _eplatform = .;
   } :text
 
@@ -116,7 +116,7 @@ SECTIONS
   . = ALIGN(8);
   .teemediator.info : {
       _steemediator = .;
-      *(.teemediator.info)
+      KEEP(*(.teemediator.info))
       _eteemediator = .;
   } :text
 
@@ -127,7 +127,7 @@ SECTIONS
        *(.init.text)
        _einittext = .;
        . = ALIGN(PAGE_SIZE);        /* Avoid mapping alt insns executable */
-       *(.altinstr_replacement)
+       KEEP(*(.altinstr_replacement))
   } :text
   . = ALIGN(PAGE_SIZE);
   __init_data_begin = .;
@@ -137,18 +137,18 @@ SECTIONS
 
        . = ALIGN(POINTER_ALIGN);
        __setup_start = .;
-       *(.init.setup)
+       KEEP(*(.init.setup))
        __setup_end = .;
 
        __initcall_start = .;
-       *(.initcallpresmp.init)
+       KEEP(*(.initcallpresmp.init))
        __presmp_initcall_end = .;
-       *(.initcall1.init)
+       KEEP(*(.initcall1.init))
        __initcall_end = .;
 
        . = ALIGN(4);
        __alt_instructions = .;
-       *(.altinstructions)
+       KEEP(*(.altinstructions))
        __alt_instructions_end = .;
 
        LOCK_PROFILE_DATA
@@ -159,9 +159,9 @@ SECTIONS
 
        . = ALIGN(8);
        __ctors_start = .;
-       *(.ctors)
-       *(.init_array)
-       *(SORT(.init_array.*))
+       KEEP(*(.ctors))
+       KEEP(*(.init_array))
+       KEEP(*(SORT(.init_array.*)))
        __ctors_end = .;
   } :text
   __init_end_efi = .;
diff --git a/xen/arch/ppc/Makefile b/xen/arch/ppc/Makefile
index e80690d3b8..42db3d6f2c 100644
--- a/xen/arch/ppc/Makefile
+++ b/xen/arch/ppc/Makefile
@@ -14,19 +14,19 @@ $(TARGET): $(TARGET)-syms
 $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
 	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0.S
 	$(MAKE) $(build)=$(@D) $(dot-target).0.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
+	$(LD) $(XEN_FINAL_LDFLAGS) -T $(obj)/xen.lds $< \
 	      $(dot-target).0.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).1.S
 	$(MAKE) $(build)=$(@D) $(dot-target).1.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
+	$(LD) $(XEN_FINAL_LDFLAGS) -T $(obj)/xen.lds $< \
 	    $(dot-target).1.o -o $(dot-target).1
 	$(NM) -pa --format=sysv $(dot-target).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).2.S
 	$(MAKE) $(build)=$(@D) $(dot-target).2.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
+	$(LD) $(XEN_FINAL_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
 	    $(dot-target).2.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
diff --git a/xen/arch/ppc/xen.lds.S b/xen/arch/ppc/xen.lds.S
index d0f2ed43f1..c91df79468 100644
--- a/xen/arch/ppc/xen.lds.S
+++ b/xen/arch/ppc/xen.lds.S
@@ -24,7 +24,7 @@ SECTIONS
 
     DECL_SECTION(.text) {
         _stext = .;            /* Text section */
-        *(.text.header)
+        KEEP(*(.text.header))
 
         . = ALIGN(256);
         HIDDEN(_stext_exceptions = .);
@@ -109,13 +109,13 @@ SECTIONS
 
         . = ALIGN(POINTER_ALIGN);
         __setup_start = .;
-        *(.init.setup)
+        KEEP(*(.init.setup))
         __setup_end = .;
 
         __initcall_start = .;
-        *(.initcallpresmp.init)
+        KEEP(*(.initcallpresmp.init))
         __presmp_initcall_end = .;
-        *(.initcall1.init)
+        KEEP(*(.initcall1.init))
         __initcall_end = .;
 
         LOCK_PROFILE_DATA
@@ -126,9 +126,9 @@ SECTIONS
 
         . = ALIGN(8);
         __ctors_start = .;
-        *(.ctors)
-        *(.init_array)
-        *(SORT(.init_array.*))
+        KEEP(*(.ctors))
+        KEEP(*(.init_array))
+        KEEP(*(SORT(.init_array.*)))
         __ctors_end = .;
     } :text
 
diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index d667234949..0cb0e88a72 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -24,19 +24,19 @@ $(TARGET): $(TARGET)-syms
 $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
 	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0.S
 	$(MAKE) $(build)=$(@D) $(dot-target).0.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
+	$(LD) $(XEN_FINAL_LDFLAGS) -T $(obj)/xen.lds $< \
 	      $(dot-target).0.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).1.S
 	$(MAKE) $(build)=$(@D) $(dot-target).1.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
+	$(LD) $(XEN_FINAL_LDFLAGS) -T $(obj)/xen.lds $< \
 	    $(dot-target).1.o -o $(dot-target).1
 	$(NM) -pa --format=sysv $(dot-target).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).2.S
 	$(MAKE) $(build)=$(@D) $(dot-target).2.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
+	$(LD) $(XEN_FINAL_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
 	    $(dot-target).2.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
index 45d2e053d0..e57db6b914 100644
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -18,7 +18,7 @@ SECTIONS
     _start = .;
     .text : {
         _stext = .;            /* Text section */
-        *(.text.header)
+        KEEP(*(.text.header))
 
         *(.text.cold)
         *(.text.unlikely .text.*_unlikely .text.unlikely.*)
@@ -103,13 +103,13 @@ SECTIONS
 
         . = ALIGN(POINTER_ALIGN);
         __setup_start = .;
-        *(.init.setup)
+        KEEP(*(.init.setup))
         __setup_end = .;
 
         __initcall_start = .;
-        *(.initcallpresmp.init)
+        KEEP(*(.initcallpresmp.init))
         __presmp_initcall_end = .;
-        *(.initcall1.init)
+        KEEP(*(.initcall1.init))
         __initcall_end = .;
 
         LOCK_PROFILE_DATA
@@ -120,9 +120,9 @@ SECTIONS
 
         . = ALIGN(8);
         __ctors_start = .;
-        *(.ctors)
-        *(.init_array)
-        *(SORT(.init_array.*))
+        KEEP(*(.ctors))
+        KEEP(*(.init_array))
+        KEEP(*(SORT(.init_array.*)))
         __ctors_end = .;
     } :text
 
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 300cc67407..3fd4cf44ab 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -136,19 +136,19 @@ CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI
 $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
 	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0.S
 	$(MAKE) $(build)=$(@D) $(dot-target).0.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
+	$(LD) $(XEN_FINAL_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
 	      $(dot-target).0.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).1.S
 	$(MAKE) $(build)=$(@D) $(dot-target).1.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
+	$(LD) $(XEN_FINAL_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
 	    $(dot-target).1.o -o $(dot-target).1
 	$(NM) -pa --format=sysv $(dot-target).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort $(syms-warn-dup-y) \
 		> $(dot-target).2.S
 	$(MAKE) $(build)=$(@D) $(dot-target).2.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
+	$(LD) $(XEN_FINAL_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
 	    $(orphan-handling-y) $(dot-target).2.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 2aa41306ca..e4135edd28 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -76,12 +76,12 @@ SECTIONS
   _start = .;
   DECL_SECTION(.text) {
         _stext = .;            /* Text and read-only data */
-       *(.text.header)
+       KEEP(*(.text.header))
 
        . = ALIGN(PAGE_SIZE);
        _stextentry = .;
        *(.text.entry)
-       *(.text.entry.*)
+       KEEP(*(.text.entry.*))
        . = ALIGN(PAGE_SIZE);
        _etextentry = .;
 
@@ -116,7 +116,7 @@ SECTIONS
        . = ALIGN(8);
        /* Exception table */
        __start___ex_table = .;
-       *(.ex_table)
+       KEEP(*(.ex_table))
        __stop___ex_table = .;
 
        . = ALIGN(PAGE_SIZE);
@@ -207,7 +207,7 @@ SECTIONS
         * as binary blobs. The .altinstructions has enough data to get
         * the address and the length of them to patch the kernel safely.
         */
-       *(.altinstr_replacement)
+       KEEP(*(.altinstr_replacement))
 
 #ifdef EFI /* EFI wants to merge all of .init.*  ELF doesn't. */
        . = ALIGN(SMP_CACHE_BYTES);
@@ -220,8 +220,8 @@ SECTIONS
 
        . = ALIGN(POINTER_ALIGN);
        __initdata_cf_clobber_start = .;
-       *(.init.data.cf_clobber)
-       *(.init.rodata.cf_clobber)
+       KEEP(*(.init.data.cf_clobber))
+       KEEP(*(.init.rodata.cf_clobber))
        __initdata_cf_clobber_end = .;
 
        *(.init.rodata)
@@ -229,13 +229,13 @@ SECTIONS
 
        . = ALIGN(POINTER_ALIGN);
        __setup_start = .;
-       *(.init.setup)
+       KEEP(*(.init.setup))
        __setup_end = .;
 
        __initcall_start = .;
-       *(.initcallpresmp.init)
+       KEEP(*(.initcallpresmp.init))
        __presmp_initcall_end = .;
-       *(.initcall1.init)
+       KEEP(*(.initcall1.init))
        __initcall_end = .;
 
        *(.init.data)
@@ -243,10 +243,10 @@ SECTIONS
        *(.init.data.rel.*)
        . = ALIGN(4);
        __trampoline_rel_start = .;
-       *(.trampoline_rel)
+       KEEP(*(.trampoline_rel))
        __trampoline_rel_stop = .;
        __trampoline_seg_start = .;
-       *(.trampoline_seg)
+       KEEP(*(.trampoline_seg))
        __trampoline_seg_stop = .;
        /*
         * struct alt_inst entries. From the header (alternative.h):
@@ -255,21 +255,21 @@ SECTIONS
         */
        . = ALIGN(8);
         __alt_instructions = .;
-        *(.altinstructions)
+        KEEP(*(.altinstructions))
         __alt_instructions_end = .;
         . = ALIGN(4);
         __alt_call_sites_start = .;
-        *(.alt_call_sites)
+        KEEP(*(.alt_call_sites))
         __alt_call_sites_end = .;
 
        LOCK_PROFILE_DATA
 
        . = ALIGN(8);
        __ctors_start = .;
-       *(SORT_BY_INIT_PRIORITY(.init_array.*))
-       *(SORT_BY_INIT_PRIORITY(.ctors.*))
-       *(.init_array)
-       *(.ctors)
+       KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*)))
+       KEEP(*(SORT_BY_INIT_PRIORITY(.ctors.*)))
+       KEEP(*(.init_array))
+       KEEP(*(.ctors))
        __ctors_end = .;
   } PHDR(text)
 
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 401d5046f6..7e40a921a7 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -680,4 +680,13 @@ config PM_STATS
 	  Enable collection of performance management statistics to aid in
 	  analyzing and tuning power/performance characteristics of the system
 
+config GC_SECTIONS
+	bool "Garbage Collect Sections"
+	select CC_SPLIT_SECTIONS
+	help
+	  During final linking, garbage collect unused sections.  This will
+	  reduce the size of the final Xen binary
+
+	  Only supported for ELF/Multiboot xen/xen.gz, not EFI xen.efi.
+
 endmenu
diff --git a/xen/include/xen/xen.lds.h b/xen/include/xen/xen.lds.h
index 2d66d618b3..4703523cb2 100644
--- a/xen/include/xen/xen.lds.h
+++ b/xen/include/xen/xen.lds.h
@@ -144,46 +144,46 @@
   . = ALIGN(POINTER_ALIGN);  \
   DECL_SECTION(.adev.info) { \
       _asdevice = .;         \
-      *(.adev.info)          \
+      KEEP(*(.adev.info))    \
       _aedevice = .;         \
   } :text
 
 #define BUGFRAMES                               \
     __start_bug_frames_0 = .;                   \
-    *(.bug_frames.0)                            \
+    KEEP(*(.bug_frames.0))                      \
     __stop_bug_frames_0 = .;                    \
                                                 \
     __start_bug_frames_1 = .;                   \
-    *(.bug_frames.1)                            \
+    KEEP(*(.bug_frames.1))                      \
     __stop_bug_frames_1 = .;                    \
                                                 \
     __start_bug_frames_2 = .;                   \
-    *(.bug_frames.2)                            \
+    KEEP(*(.bug_frames.2))                      \
     __stop_bug_frames_2 = .;                    \
                                                 \
     __start_bug_frames_3 = .;                   \
-    *(.bug_frames.3)                            \
+    KEEP(*(.bug_frames.3))                      \
     __stop_bug_frames_3 = .;
 
 #define DT_DEV_INFO         \
   . = ALIGN(POINTER_ALIGN); \
   DECL_SECTION(.dev.info) { \
        _sdevice = .;        \
-       *(.dev.info)         \
+       KEEP(*(.dev.info))   \
        _edevice = .;        \
   } :text
 
 #define SCHEDULER_ARRAY              \
        . = ALIGN(8);                 \
        __start_schedulers_array = .; \
-       *(.data.schedulers)           \
+       KEEP(*(.data.schedulers))     \
        __end_schedulers_array = .;
 
 #ifdef CONFIG_HYPFS
 #define HYPFS_PARAM              \
        . = ALIGN(POINTER_ALIGN); \
        __paramhypfs_start = .;   \
-       *(.data.paramhypfs)       \
+       KEEP(*(.data.paramhypfs)) \
        __paramhypfs_end = .;
 #else
 #define HYPFS_PARAM
@@ -193,7 +193,7 @@
 #define LOCK_PROFILE_DATA        \
        . = ALIGN(POINTER_ALIGN); \
        __lock_profile_start = .; \
-       *(.lockprofile.data)      \
+       KEEP(*(.lockprofile.data))\
        __lock_profile_end = .;
 #else
 #define LOCK_PROFILE_DATA
@@ -213,7 +213,7 @@
 #define VPCI_ARRAY               \
        . = ALIGN(POINTER_ALIGN); \
        __start_vpci_array = .;   \
-       *(.data.rel.ro.vpci)      \
+       KEEP(*(.data.rel.ro.vpci))\
        __end_vpci_array = .;
 #else
 #define VPCI_ARRAY
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 09 21:55:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 21:55:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182231.1505133 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT5gX-0005mG-4V; Tue, 09 Dec 2025 21:55:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182231.1505133; Tue, 09 Dec 2025 21:55:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT5gX-0005m9-1i; Tue, 09 Dec 2025 21:55:53 +0000
Received: by outflank-mailman (input) for mailman id 1182231;
 Tue, 09 Dec 2025 21:55:51 +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
 <SRS0=snnK=6P=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vT5gV-0005m3-Ld
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 21:55:51 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d2555cc2-d549-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 22:55:50 +0100 (CET)
Received: from SJ0PR13CA0227.namprd13.prod.outlook.com (2603:10b6:a03:2c1::22)
 by IA1PR12MB6067.namprd12.prod.outlook.com (2603:10b6:208:3ed::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.7; Tue, 9 Dec
 2025 21:55:39 +0000
Received: from SJ1PEPF000023CE.namprd02.prod.outlook.com
 (2603:10b6:a03:2c1:cafe::c) by SJ0PR13CA0227.outlook.office365.com
 (2603:10b6:a03:2c1::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.6 via Frontend Transport; Tue, 9
 Dec 2025 21:55:36 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ1PEPF000023CE.mail.protection.outlook.com (10.167.244.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Tue, 9 Dec 2025 21:55:39 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Tue, 9 Dec
 2025 15:55:38 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 9 Dec
 2025 15:55:37 -0600
Received: from [172.29.90.244] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 9 Dec 2025 13:55:37 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d2555cc2-d549-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wOpIMYflyva+HnDTm+iyy9PeIAThhHikZB4uytRQbQLZikwb+5xzPHqhTuSZqW/iWG6HGOav4YcNiQzbPw1hHo/kz/lfxDr6UchPDmcb4kGx/ZhvCVKAcnPtstGEnmuNbcn0c3pnQJ5ZZx9zXyOPUWxOYhohM5SVQ8/pnrMrWb2j2UrG7AOIR7zwiaG31ma0KZGbe/CIwdbKVzViV4ZWqVodwKcIK/W7wen58d1nbhCB9XXZ4MnradugBr45ocwIRgq1g48u8UgG2QPkajJ8dHqqv0o7lVg2Ko9uLcd87VD22E64jpYSS1fkUfTuuL+Ootd8trVSJ1Y64pyUnWLziw==
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=ljPcFsM1w6z3CzY33a53vnO6kqU6x5YfFzdVBmB98a4=;
 b=Qy+5L8wbIYWCAGVBwBuVZogGJbYoL/5/E3p9DP+LgmW/7fBSMF6tS9OpocsoJepjJMO9dIID/K0jaS57VHtuUMZvefHrUfS/KYFS1k98bK7PekNCdmIjIgax3b35Brl0mHei4vAju4HVaeVqXExkVGBoqqPB0z457ExuemmD89D6Ei28azChzIKRyn72QdZ/QouFuTvqNveP2m6QeaNDnxX1ViPtFvFneQ2CvQIDVBAGzAJyD0ZAm4u8qf98hp3jWxn8aLo9ipSbjQtD6CV59BcurehxE5X3IPcREbLvrw3CL5J/Eg2kPMwTllVEzQ2sFu+9Ep5US6pHoSV07uwXng==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ljPcFsM1w6z3CzY33a53vnO6kqU6x5YfFzdVBmB98a4=;
 b=1Hvif3Zhi6t9F+QWsqL0DNvc5qyeUOMK4oK75eVrTq1lgmlE67v/c17OsW0pJQEAsNPM2rS+P+zhEt/iuP9G0QqRCYwEviDXo/pdc7mlEdABW83HnMIRPnsiUyeaQe9yZfEy2GzvJlRT+nsIAeqce6S2v1FtOFg37XY4Zx2QkLU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <049bb40b-13f6-4b5c-9105-aeac03680f86@amd.com>
Date: Tue, 9 Dec 2025 16:55:27 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] RFC: xen/x86: Enable --gc-sections
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Grygorii Strashko <grygorii_strashko@epam.com>,
	<xen-devel@lists.xenproject.org>
References: <20251205222813.277164-1-jason.andryuk@amd.com>
 <8dce8443-5a97-42c4-b867-27b83415b3d1@citrix.com>
 <32f54604-706b-4377-b59a-b287ef1afb3a@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <32f54604-706b-4377-b59a-b287ef1afb3a@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB04.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000023CE:EE_|IA1PR12MB6067:EE_
X-MS-Office365-Filtering-Correlation-Id: b35a3b26-b9d3-4e21-0661-08de376db0f3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TUxoOGhjM0R6eEwxbklVQ0NwNDRZQzJTZjUvYWdsZmFUOUlVOFRCTXJLM0Vp?=
 =?utf-8?B?OXdyWEp5dktmMm1lS3dBeVpsTmFXRlBzWnVKZGxEdTNBOXpZUUZ2WDRDbkpm?=
 =?utf-8?B?eUxKZnQ2K2o0bE14Z2lnVnRMR1dxZjdVaGxSMUhjdm5OeG9SeHp3ZmNpRy9i?=
 =?utf-8?B?OGFndng4dytvOUNER1ZLL3cyNHlYU1p3SWxmZjZWN1h6TEI3TVU4SExUSmFU?=
 =?utf-8?B?VFc1SDhMWERpQXRMSS9xcFJRalJ6clJqN3h2L2ZlVFRuNzdQUm5xdEd5Wnp0?=
 =?utf-8?B?R3lrZU1LYXlJRHZmU2J4MUdCNk9JSkZoakhiODgybW5wTFFrMG4xL2RYeG45?=
 =?utf-8?B?S3NjTjBKdUJadHhsUDRHN1lBc01CYk5mNklPNEVkQm5lRXhVQ1hHTlZIVW9L?=
 =?utf-8?B?Q0VSZHdVc3JDL2xxdzNySllEUzVkeGUyMHgwQkU0UEExYitBQlpaSkw5OWR0?=
 =?utf-8?B?NGtqTEJCa1lETmVqRnhQSXYyTmdoRE9tVVh4RXlUR0YyNDIwN2hvN1hodE5X?=
 =?utf-8?B?SmQwUUxJbXgyT0ZaYytRREdnOHgyaElTa0d2UTE5QmhKa3ZsaThNOTYyZTVG?=
 =?utf-8?B?UkltUWVHN3A3eEM5aXlPMHBpU2RmOUxkVDZDZFFrOTF2QWdCSlRHb0hLMUNF?=
 =?utf-8?B?OHpKaDZ4VGhLM0QxRSsrcUhydWJxQStFUkI3T0FKV2tHUVNnV09ERFNPa0xS?=
 =?utf-8?B?M21FRWNUTG1DL0tYZFQrR3J5dzFGQ3NmalR0NEZ0aFdMRWtxM1ZLY1pwRFBE?=
 =?utf-8?B?RmtCZ2ZKTDVLK002TzkvSTJkV09yamtWdjBiSzdFd3lyamlHY0pTcmNRc0NC?=
 =?utf-8?B?VlZmVThoRzVnYVhJdWVmc1BJOEhYajBPYmpjZGl2ZkduRm5BbTNYQlp1R0lE?=
 =?utf-8?B?VDZmVGQ5bnNkRldCaWR3VFE3dHdGRFJuRzgzUWpYOS9IRmJ1Y2ovRHNMNTF2?=
 =?utf-8?B?THVMVDMzZjgxQXpnREpZd0NMM3pzSit5eWZEZmFjM1VHdzJsM2FjVnlWd0R2?=
 =?utf-8?B?MnR1emI0OHI1clNFdHl0SzJqMjRvSUd2S0VDQmR0MG12cE9kWEtSWXZjdGlm?=
 =?utf-8?B?YWQ4enA4MTB6OE9ScGJUUEhaWWlSY29Lbm13Zkc3VE96RnY5aHJZRUZ4RnF0?=
 =?utf-8?B?R0oxdkt0NmFjMkw0TkRNZmlIWkV6dWtwaXoxZVdJRFVBbTVqa0hPelh6RzZx?=
 =?utf-8?B?Q0laWHlTOUp3Wkw4aDNGUllJbUlIb3paUjlpdldCNjRaUjUydGR6VHRwUERo?=
 =?utf-8?B?RWtyV3VJeC9Kd253Mml1d3h4c3J0MWE3OTJxelZET1dkcXJRaGFkWmpiQmxK?=
 =?utf-8?B?dGZOWm5YZnFJdFpKT0lxa09JcHBKdFhKbzV4YmxCdUVOSjR3L3pQcE15YWtK?=
 =?utf-8?B?T2ZHQk05OTA1YUJTWjY0NmVCSmsrZkFjT2xZbGhhaERNeVYzWFQ2Y3dsdXVT?=
 =?utf-8?B?NDh5TXcrWTc4aUxRZFVyQVhYNFVYVnM3RGtsV0FaVmNQWWJLdHkzM1UvUWNG?=
 =?utf-8?B?R3orZmNBbUd6aDdoTGFDaWJSYVJlZnNLd0N1SDhkWjRLRVNDcFlaUVQreE44?=
 =?utf-8?B?VVJPWi9IcUpRTDI4TXFjRzdxejA4cHJjTlhBQkdmWldHWmJuaHRqZUJFZy9r?=
 =?utf-8?B?MS9iNzN1UW9ycXEvV2JvbENpenJZYTFoMG55MjJXRTlNbnBveTEvTjE2K3FH?=
 =?utf-8?B?MmtnaVZELzBOWXBqQmJUQ2hieHJiSUIrbko2RW9OOGUxV0d1ZXVWbEFES2JT?=
 =?utf-8?B?aUFBVVk5VFRiUWtSS1RFYUordFBMMnF0Q1N0S3dsb1RYdVRKOW5CdkI2eEd2?=
 =?utf-8?B?NGt1U0xodGVMTmdzTks2eWdzTWJ1Y04zT0c5QWZRTjlHRm5iTHhNNlBDLzZC?=
 =?utf-8?B?KzI4RlpkTGZacEJYLzF1dUVacDNLOGJPVlpzMEh4MVBSeGNJRzg1UVdXT25Z?=
 =?utf-8?B?UlRxUlBiU2U0M0srVXQ5WnByZjZFRCswOWRKemZQOWF5L0NQY0Rnc3NXblhM?=
 =?utf-8?B?enBkT3ZLb3dlSHRuQ3hUSjN6VUZ2VzJvU21INm1HVVdWZXR3Tk5uSmtpMmVv?=
 =?utf-8?B?allMaUVNdUpuUk5UMjhFM08zVlBZQ2hCVEFiWDY2REZ1NWRiSG9nQjhoOXZm?=
 =?utf-8?Q?IaEM=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 21:55:39.1525
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b35a3b26-b9d3-4e21-0661-08de376db0f3
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000023CE.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6067

On 2025-12-08 03:46, Jan Beulich wrote:
> On 05.12.2025 23:40, Andrew Cooper wrote:
>> On 05/12/2025 10:28 pm, Jason Andryuk wrote:
>>> When linking to create xen-syms, add --gc-sections to garbage collect
>>> unused stuff.  Relies on CONFIG_CC_SPLIT_SECTIONS
>>>
>>> We need to add KEEP() to the linker script in assorted places to retain
>>> appropriate data - especially the arrays created therein.
>>>
>>> Something is off though.  In a test where memory_add() is unreachable,
>>> it is still included.  I'm not sure, but I am wondering if it's the
>>> alternatives somehow keeping a reference to it.
>>
>> Yes, .altinstructions contains relocations against the origin patch
>> site, which will cause it to appear to be referenced. The same will be
>> happening with a bunch of other sections.
> 
> We will need to derive helper section names from base section ones. See
> e.g. HAVE_AS_SECTNAME_SUBST as introduced by "common: honor
> CONFIG_CC_SPLIT_SECTIONS also for assembly functions", controlling the
> use of the --sectname-subst asssembler option, to in turn be able to use
> %S in section names (available from gas 2.26 onwards).

I tried to add your patch and change ALTERNATIVE to:
".pushsection .altinstructions.%S, \"a\", @progbits\n"
but it fails to build.  One example:
./include/xen/compiler.h:62:21: error: invalid 'asm': operand number 
missing after %-letter
    62 | # define asm_inline asm __inline
       |                     ^~~
./arch/x86/include/asm/pdx.h:13:5: note: in expansion of macro ‘asm_inline’
    13 |     asm_inline goto (                               \
       |     ^~~~~~~~~~
./arch/x86/include/asm/pdx.h:22:5: note: in expansion of macro 
‘PDX_ASM_GOTO’
    22 |     PDX_ASM_GOTO(skip);
       |     ^~~~~~~~~~~~

".pushsection .altinstructions.%%S, \"a\", @progbits\n" ends up creating 
section ".altinstructions.%S" which doesn't helpful.

Is %S expected to work with inline asm, or only standalone?

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 22:25:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 22:25:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182242.1505143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT69X-0001f5-BI; Tue, 09 Dec 2025 22:25:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182242.1505143; Tue, 09 Dec 2025 22:25:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT69X-0001ey-8a; Tue, 09 Dec 2025 22:25:51 +0000
Received: by outflank-mailman (input) for mailman id 1182242;
 Tue, 09 Dec 2025 22:25:49 +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
 <SRS0=snnK=6P=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vT69V-0001es-6p
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 22:25:49 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 021a4779-d54e-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 23:25:47 +0100 (CET)
Received: from BN0PR03CA0040.namprd03.prod.outlook.com (2603:10b6:408:e7::15)
 by IA1PR12MB7566.namprd12.prod.outlook.com (2603:10b6:208:42e::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 22:25:42 +0000
Received: from MN1PEPF0000ECD8.namprd02.prod.outlook.com
 (2603:10b6:408:e7:cafe::31) by BN0PR03CA0040.outlook.office365.com
 (2603:10b6:408:e7::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Tue,
 9 Dec 2025 22:25:34 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 MN1PEPF0000ECD8.mail.protection.outlook.com (10.167.242.137) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Tue, 9 Dec 2025 22:25:42 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 9 Dec
 2025 16:25:42 -0600
Received: from [172.29.90.244] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 9 Dec 2025 14:25:42 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 021a4779-d54e-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PygTmMo11cOQryW/V6SQOODycw//GIuBEpXWWCxJ+Kh63i+7hhE+k3P4LFvhkTibXwOIjt/FzKzSYdW06AwcQpAA7wjQlmA43HLmqHJG1ZOfg2QN/6dWYCDSWjI9K/f0u82i3HsmbaeY8yOmYieyxv2JgAZuME3Yvrpd1amDhDwRiyK2UwSTFangsMF8E4gXBrGUPc2qm6EsHa+FE9TvflVeXTtjZEKtlx0JTVS2kfokB27A0gbZEucOIs7fGvU+oaWaBblyS5OYyltgF1XEOAPr2PgvlZmzkAurIvOiblO8NS6bEsBuGG7+Tak51QE9dsJLF+WfrqmLqegzeEqvGQ==
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=+Np5JzxUzLP/JTvzTj/S7a0GNCLFJKbV5/wGNiSYpNw=;
 b=AD8ArDDvjPbXdfzVFCyvNMdOzoHooi8jAfUzz7GnqdXZ/ykw8A0DnS0tD75f5R5jEsmTN93oMjk7maCafTvd0VWbPtgZcTRETuKt54lHcNx37XTQvnWkOb+W+W2rTPQa0EPJIvcSQ5FUxiRb0cE513Ctu1uQRhewJFsEGy1oBoKfMpJNH85LINvKsDS363oEH0og98NBflrdHlYj0+g/41U+Z/XzwUTO4dxA451/oAAc86ZthggfzTp6Nzup4eDH1j+AwrgvfeHctCUL0ltlYULtK/Xz5ri1SbuNehIlAzYEt6/5XPW2jgS4kCk3j/vms7ebjWXTE7MX78vcUxxnHg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+Np5JzxUzLP/JTvzTj/S7a0GNCLFJKbV5/wGNiSYpNw=;
 b=wYq8FJfJjTIfoDMJfzdtwkdczDH9P1IUb9tzXGzC2YauG3n4C2u07VwN8N5zBlYYdELuznawSUA1KOrUdLLDx0NX1A0+ChXJaHr9uHxa7xzQbElU0rcE0wMhRfPXIXf3HVxBK46Fg+vIKOWmqWCqM1MdJ5DPK1jZyAqRZrIhoC8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <273aaff8-5e97-4319-882a-5cb35822908c@amd.com>
Date: Tue, 9 Dec 2025 17:25:41 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v2 1/6] x86/cpu-policy: define bits of leaf 6
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@suse.com>
 <8791387c-2799-4e0b-b187-1900b224a101@suse.com>
Content-Language: en-US
In-Reply-To: <8791387c-2799-4e0b-b187-1900b224a101@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECD8:EE_|IA1PR12MB7566:EE_
X-MS-Office365-Filtering-Correlation-Id: 19baf9d4-38b8-40ef-1920-08de3771e3f6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OU14TERNL1hlWW9UbjE2ZWE5clJjWjdOM1hsSWRtdkZvOHBqcHRod1NJUTdO?=
 =?utf-8?B?ekorZi91U2cvT2FZNUNPK0Q0ekZ5Y1U5YzVpM3B0cEt2djJaZXZkbzhyTlh1?=
 =?utf-8?B?WVNPL1hac3M4K1hQRDdEb1Z3NnkxWVArdUgwQzFVbFpyalNlTnI4cEVtNUZ4?=
 =?utf-8?B?cUVYbDZXYzdKdzVjZWx5VjgzclVCOVpXVEJJUExLMUVHUTF0YW5maGNZNE5v?=
 =?utf-8?B?NWgvUVk4MEFncnV4NkJwRTFvMGN5UWxLRjBoOVRwcVpDVXRpRjZNYlliaElq?=
 =?utf-8?B?a0w4OTBWRVoyK2ZNTFQwbDYvZzBGYS9NdGJkY1dGZmp0ZVJ3WG54dktZdEcx?=
 =?utf-8?B?cGhoT3ZueUFpWldaaHI4cDNOOHVpOWxZeUNvazd1dUk0djhPUU5VdGRQTEcv?=
 =?utf-8?B?VDhFV2pRU1oyb1ltR292QzJBd01kNXVGQVA5dk9zd2dZWGJhSjhqMEg0WDMv?=
 =?utf-8?B?Z2IrWG53WjVxRjMyOEtxd1dXemphK0E3NHFVb2FHeVpiN2g5cFUxOUwwRHhx?=
 =?utf-8?B?L3pKWUpDdGEyYS9FcHhxai95S0wzVDQ5d2JvcHEvMGxBTXRYcjJJaEVJMjY4?=
 =?utf-8?B?OHp3cnFUdVBUWE1FL1p5WElvdERmdEJ4MXNMWnBMT2ZicW1ZT0ZVWTZDRVF1?=
 =?utf-8?B?bW1SMXNkeUVkbkEvWkErQVVVMHU4WkZIT1hDOUp0K284ZkVZUUFSNmZTdm8v?=
 =?utf-8?B?TVJaellKc0lYNi9iMWtWNjViUFpWQ3RJY09YVk9oMkY5cGVOeEEwYW1Pemky?=
 =?utf-8?B?T2dLc1NuQUt1dEE1UitsL1V4TEpLM0ZiaUpGKzNZa0JjNG9YdUg4a2FRUTVi?=
 =?utf-8?B?WGpqNll3VktjSVcrd2NpZG10UGtoTWtJZVFqQitJZytQMmh1L2krVk1OVkhy?=
 =?utf-8?B?L0xWeHdMeUkzZXhicUVYU2VmQVlSaTZhaHdOamQ3VDJCTlFUL0pJeTVld1kr?=
 =?utf-8?B?dG50S3M3VFBwVWdPVCt4bXlkKy9GcHRuSHYrNkV1ZUJSNUppOWppSXV2d0tL?=
 =?utf-8?B?T3J6T2w2ZEpSYTFQd3FuMkJ0QmxISUxNL2VsZURodDlPWTVVZVhueVVjVzJ5?=
 =?utf-8?B?QTdNNXhvV24yVkRIZG9FSGpuOUhRWXpBNlpEcGMwQWFjeUNRSzN5cm00Qkt3?=
 =?utf-8?B?RU1PRHNFcnVZYUNpaE9CWnVQQVk5YUlKZDBPY0R1SjhpZHRiZ1Z0Q2F2c1Fm?=
 =?utf-8?B?VlF1c1pYbU9vTm83MXhtQ2doNFM2Y2pLakdhUmNWSmFDT0FkM3JtODIwaTJy?=
 =?utf-8?B?eVhwb1dwTTB0eFFWN2M3SXpuUDhKUDRJNkh6S1dqZGZwayswMDEvYjdWSlQ4?=
 =?utf-8?B?ckJjcjl5ZVBRNXI1NHUvMHFnZlRFSVZpdkhzRTJHWFptaXBKQjI4OURvditM?=
 =?utf-8?B?VTRsSy9HNVVCc2Uydjd1NklLQlZIb0lzK1NEUW5lYjlqSWRJMEdVYmk3UDlt?=
 =?utf-8?B?dmM4b1hZeHpiZlhqK1hlUnBERUJMcHlHL2ZXM2R2RlcvbEM5RFovWDlweWlC?=
 =?utf-8?B?ZStKaVlYWU9YSm5MM3BzWVhRSUZTZW0yRHg5SC9DOTc5VEtYc3lOcVNLNGYy?=
 =?utf-8?B?bVVuREJUMWJaYlJ0QktJMVhDbW4zYzdDb1pWS0J1bERzVVhDcEZ6YnZLRUhi?=
 =?utf-8?B?UWJiQnM5WnRUYnYrWWxkay93OGRSZE1tamJvMUZ5bm1tbURtc1VuanNOOW1t?=
 =?utf-8?B?NngwT3pWWnNmdWM5SzV1ejU3amdjVW80SkoxUHhaN0wvUHRIVUthcXRkUWgr?=
 =?utf-8?B?SFd1VVRrU2labkhTWm1CN1ZMYVEwOTcyaENZdDQ3VDJIbVVLSGpHRHJqdzk4?=
 =?utf-8?B?eXpOdjZNWlVtUjl4R2ZtQTJsMnNkRkRNUHlRdW51eUxzZVhqUitCajduK2Nq?=
 =?utf-8?B?UVplTW5QYXc3ZVUwSkJHcko2Mit6VDJsaHV3b2ZJTzVHcm5tZWRHNFdiZGpp?=
 =?utf-8?B?UkR4cXFUMXZoYWtrTFY1RWEvVGxEMVFLS0pMMGtxVFA0VVpxVWRqZmNWTjE0?=
 =?utf-8?B?UmJGT0N6S3krZWk3RjMyWWlEZGNkNUtwUTZuWndSK0xVWHhHcGZQK2dyUDdT?=
 =?utf-8?B?L2JFTWtPU2VuT1BmZG9LdVROV0FMRTVYM21kWUdhc3UvZEpBSUQvM3hzQjR4?=
 =?utf-8?Q?aAUs=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 22:25:42.8144
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 19baf9d4-38b8-40ef-1920-08de3771e3f6
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000ECD8.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7566

On 2025-11-24 07:23, Jan Beulich wrote:
> ... as far as we presently use them in the codebase.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 22:26:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 22:26:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182243.1505155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT69g-0001uV-KN; Tue, 09 Dec 2025 22:26:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182243.1505155; Tue, 09 Dec 2025 22:26:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT69g-0001uK-FJ; Tue, 09 Dec 2025 22:26:00 +0000
Received: by outflank-mailman (input) for mailman id 1182243;
 Tue, 09 Dec 2025 22:25:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=snnK=6P=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vT69f-0001tn-7A
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 22:25:59 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 06bd7633-d54e-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 23:25:55 +0100 (CET)
Received: from BN0PR03CA0054.namprd03.prod.outlook.com (2603:10b6:408:e7::29)
 by DM4PR12MB9070.namprd12.prod.outlook.com (2603:10b6:8:bc::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.7; Tue, 9 Dec
 2025 22:25:51 +0000
Received: from MN1PEPF0000ECD8.namprd02.prod.outlook.com
 (2603:10b6:408:e7:cafe::9) by BN0PR03CA0054.outlook.office365.com
 (2603:10b6:408:e7::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Tue,
 9 Dec 2025 22:25:47 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 MN1PEPF0000ECD8.mail.protection.outlook.com (10.167.242.137) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Tue, 9 Dec 2025 22:25:50 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 9 Dec
 2025 16:25:49 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 9 Dec
 2025 16:25:49 -0600
Received: from [172.29.90.244] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 9 Dec 2025 14:25:49 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 06bd7633-d54e-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Wm8wKZoeQUNK4YhWnb1piHdDKrdzPviixUfuczdfrA2hMEQk/VA6Oxj2RwRaYFYWWjuYQNYxTDkURuE2PNCaijMRRg4RxZs9cMRijzxTkqCzqaUD9Ny4rQOtkP981xk8v+dW2Sj8/r7G38Fki3/6zjQsD1mjdhdHcHCEDz54LWlPlRqyZMTbasvBgJv7YVBybKX2KTFzG3cgZg2vrL7sHAgcAibvjyMWINh6o2gUKaaFHYZpkfuvGe7Z+bXQ4JeUekz2Kuy32zyy+aRMzcWdHFWj/zwM9mLmVHjBa2HTuSErAJZK2oFi84TDsOdzCAXe706zbLcd57ER2apcG+V8aQ==
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=CncUYlPo2/LGqC3hDoToPjiSctTRNP8xoa/Y5Mj2DFY=;
 b=sIbfEwls51egG64rGsHU2Qiu02laBkV22lqPTAmT98drFVhf7W6LgCI+64dRY3r7Hbts/rW12wWpYet0/G1TW3LXsueUzwFjACjjyOngH468XacKiVYswh6DJOynCZbZ7RpueOEJgjMp+B5nfwqd/19AYUixoqX1yUbJy7xDQc4xdF8QSQ7lXdW1mB+J4FguLR27Xlgchef1L+XjIRH02a3laRBDhM2o7SZjUNAb9CyQ4yhDsmlnvsEaCdfHdnm42I75k/p2CKtSewjpXJyJrUzI2J3zIxOHkDCgLJQmLnJtVU/3MhSGb0Of5sx3DPnMAqA7LYePbjIZssaFtsXEhQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CncUYlPo2/LGqC3hDoToPjiSctTRNP8xoa/Y5Mj2DFY=;
 b=XHYFHhltUVO2xgzX+Lq4Ecl7WHi2NVr5Xp6a+6EaIoAq3FLPsgIIqqfjA3RnrnMXx5DtyFysts/OChiBuhkccM7GP+NLENvzxExvSkOmBNRw0hkOC58rd2PaxFiJgx8vln7tU5tjQ6MaYbjRlEaqA6No2hmBdJecI9cS7DsRg8I=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <eb98d9b5-5ce5-488b-b68a-e06820686968@amd.com>
Date: Tue, 9 Dec 2025 17:25:48 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v2 2/6] x86: replace APERFMPERF synthetic feature bit
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@suse.com>
 <80a6e497-bde6-4c5b-ade8-850abf0046ad@suse.com>
Content-Language: en-US
In-Reply-To: <80a6e497-bde6-4c5b-ade8-850abf0046ad@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECD8:EE_|DM4PR12MB9070:EE_
X-MS-Office365-Filtering-Correlation-Id: 4edcd2e7-abf1-4464-6d4c-08de3771e848
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cGoybmRaV2Y2bU1lMnpESTh4cWx3c3JZUEE0TFVIcHFrcEhSRW5pOWhUbGpP?=
 =?utf-8?B?Q0hwR0NqWE9MQi9VYlhoUnVoVFVpaWcrL3dCNWVlMFkxMk52Nlg4eWdiUzY4?=
 =?utf-8?B?aG1CVTJOMHB1LzV5c1pwWWxXL1AvNDJXYWd1QjVOVUJIbmJKZUg0cEtET2gw?=
 =?utf-8?B?TmRvWmh2NUd6YmViaUp0T1ZRbDJVbXFabTRJRkY1dEJ2MjJ1NldtdDRwdGZX?=
 =?utf-8?B?TllPUTVNWnNJakIwVjNKVm56RUNPOFprMmRXUWlPWTFQOUNadnBoTlQ2eE12?=
 =?utf-8?B?WWVQMGdlQWhTSzc1TlRHMVNWS01GZHVOdW54a2c2Z2VzalNyeXUwSnQ5VmhK?=
 =?utf-8?B?czErSU9HQ2Jrb0h0Uk11NnpxV3NqMU5kcVRZc0lnZDZISmFsNXQ1VHNHVmRv?=
 =?utf-8?B?c2swcFlZM2RhbHJEWjI2a0xWZFdCVUt4b1Z0MVQrOW90a1d0VDBzUWl4QXp0?=
 =?utf-8?B?OFJjd1BhbTRXMTNwS1laYzZjYnhQaElrL3A2MUl4RDF3TUdxZ2VjNk5LSCt2?=
 =?utf-8?B?UDQzRTJSSTgvRWJkZi91YWRDR0NGRlZ5YU5tVUMrdGFvdDhUaHgwV1lNRFlz?=
 =?utf-8?B?UnNjY0lvS0FGMCtUM3NpSmloUHoxcTMwaldzVy85bVIvQ2pjVENGUVo5RnJZ?=
 =?utf-8?B?TEl1bkp3djliajkvNkVDSE1heGNtaVFzcUhGd2MzSERXSktsUTRDdGR2OHNB?=
 =?utf-8?B?ckJqTDlKa2VhY2dBRmUzMmxlc3FVQm1lV3hOajB5bDVBMlE3MkMvRjJGZ3VU?=
 =?utf-8?B?bzN5RlJ4NGxoLzNxK0Vpc2ZWWjJkcXZhblB5WHhBWWlpdTVVcjc4QmRxTFZs?=
 =?utf-8?B?VVo1M2xNcWNrK3NXZ2JldUNTemN4Ulh1Q1NzQ2dvZCtBSHVYYlFzUHdPbUIz?=
 =?utf-8?B?SkZYQ2M4OExwdzFuYlkrSEVFNnQxbXIrZjZPZjFPcDc2ZjE2bU9Xd0habzBD?=
 =?utf-8?B?L1U2TlNFZlZIL3MzVWVVOFUrNDBGRFIyeU02eEorRmtIVmtzWE1zZktTZzlm?=
 =?utf-8?B?NktEUEJPUUVVSS81RWdSTi9qYW1qZlNFR0VhdGFLUk1kUnJvalZNekZLSzlL?=
 =?utf-8?B?cUdoZW9oemJBak00VnErTHR0QldRSHBuU2xHd1hNMEMvVTErSEw0VFZtL0J2?=
 =?utf-8?B?eG1yMGU5cmRkTDV0WmkxRzhWNkRROEpLMVBuMmYwY1dZUXNObUxLZFl1VVl5?=
 =?utf-8?B?ZkhLd3hXM1FpQjc2N0Z0KzVPdzcvbTRPUU1qMlczTFhmNGNRRTRPVjgrbUk4?=
 =?utf-8?B?Y1lWOTl0c05kVlpjdXMxQVZkZEtQbTlGOWhuaXFpK1BpZVFwenRMMVo2THN0?=
 =?utf-8?B?Ymo4emJud1o0bDl3b2toaDhQNGxCa0N0UjBFMGlWVEVrTVlUN2ZpWVVqdnRu?=
 =?utf-8?B?Y1J6dWZlbnFUSWxQSkZmMG1FdCtNSDVLcDJPWVlicmZMcXQrOEhTZzFBbzI4?=
 =?utf-8?B?NlF6TS8vTXRoWHRVNTFYY0lPYnQ2NVRxVjJ5RFBCRVVHQSsyRUl6N1JmeU9i?=
 =?utf-8?B?NDBaY3RFNmRvc2k3K3gvM1c0cGJBTlFJaGVvMEljTnVqeThockx0OEdKeW1q?=
 =?utf-8?B?bGhSejE4YTNCMWU4UkZFRXlnbzl0V1pXZFpVZzFObmNRQ2VxNDF2aWtaUDhD?=
 =?utf-8?B?NXlKVXgwT09VYVhJVlQvbTBUWnFEU3FweGk5Z1NLblZDSzJucyt5QzJhL2Fy?=
 =?utf-8?B?Q3hiTjJpNXNCdldaNy94ZnhNdCsyNGsvaStQVi9YeGY5bExNOW85Tnk3YzlG?=
 =?utf-8?B?YjRnZGZNMXk2cSt3TkYzUzR6Slp4WXVIb0tkYWFId3dBMmJIdHR5VjN5NHZy?=
 =?utf-8?B?cHpKU3JKR0xhNFA4V0xFeDRhaThIdG83YlVQZ3B0WVRQUnVRc2tSWjJWYldP?=
 =?utf-8?B?MzYvYjZhbENkWEF2WXhTenlLbzc3OUtBUkQzNERFQXp3MTJjN3AwcGhkR2dE?=
 =?utf-8?B?SWlJclNlcE9IU2ZSVVRmQkorRUJjVlozb0dqekE0NWc3YVpiYWk2anFpZEYw?=
 =?utf-8?B?cldkbGdLS3pwK2tlSjF0dS9kMjdoZXN1Z0YwT1lyMk5XUThFTTNGREwvKzhU?=
 =?utf-8?B?WHZzOCs4RFExbE1jQk9GakdGakhVM2s0ck53cno2ZVdVVlhCbitFejFvTnBw?=
 =?utf-8?Q?oThQ=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 22:25:50.0646
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4edcd2e7-abf1-4464-6d4c-08de3771e848
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000ECD8.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB9070

On 2025-11-24 07:23, Jan Beulich wrote:
> Use the respective host CPU policy bit instead. This has the (tolerable,
> as we generally assume symmetry anyway) effect of using the BSP's
> (unleveled) setting, rather than the result of leveling (as is done by
> identify_cpu() on boot_cpu_data, rendering the variable name somewhat
> misleading).
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 22:26:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 22:26:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182267.1505164 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT6AS-0002hX-0g; Tue, 09 Dec 2025 22:26:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182267.1505164; Tue, 09 Dec 2025 22:26:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT6AR-0002hQ-Tx; Tue, 09 Dec 2025 22:26:47 +0000
Received: by outflank-mailman (input) for mailman id 1182267;
 Tue, 09 Dec 2025 22:26:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=snnK=6P=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vT6AQ-0001tn-L4
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 22:26:46 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 24114655-d54e-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 23:26:44 +0100 (CET)
Received: from BN9PR03CA0337.namprd03.prod.outlook.com (2603:10b6:408:f6::12)
 by DS5PPF1ADAD2878.namprd12.prod.outlook.com (2603:10b6:f:fc00::646)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Tue, 9 Dec
 2025 22:26:40 +0000
Received: from MN1PEPF0000ECD6.namprd02.prod.outlook.com
 (2603:10b6:408:f6:cafe::b0) by BN9PR03CA0337.outlook.office365.com
 (2603:10b6:408:f6::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Tue,
 9 Dec 2025 22:26:40 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 MN1PEPF0000ECD6.mail.protection.outlook.com (10.167.242.135) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Tue, 9 Dec 2025 22:26:40 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 9 Dec
 2025 16:26:40 -0600
Received: from [172.29.90.244] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 9 Dec 2025 14:26:40 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 24114655-d54e-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=acwrelenQp7b9nWbg82yUa5Z9QIL5ei82zTnxGJxotP2uyYaU9H6plprFOx/+XvreTp7Rkus3cWWfGYseCrh0vSxKU20vndEHmgWHSOrZLlqNhK3b2pUSXXPxG4Qccl/FqOcgsrOX18fCTnl5VE9vgaiNbDguhxq3XJqRmlCJhmB3W+DMxZEdhtxXi+gzY8KXDzydV6bOJTevUlc0cSjBXq3b9oRKWiKhACeQ/0On4gBBtqP9LmWz3FuTLGjZwAPzyDtww6e34ZbJ/L2HnqCie4LNi7GvKeg9j/fxGakfMdhqrxpVCrUOnHHd3sO7t2QSVmU0Envi+tQk+VLjr0HGg==
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=lm9KFYVpR+EURylQxp6M8OkqsOcs4Ssl2qznxaDHtDU=;
 b=mU0TE/ydXYyY4MeYTCCJlCI9UMbPTy43hyfkxqrusiIiW+an3eHCEpYez9mod5P+EeOrBSQwN5UOEgxvzokBZdLZw2BHgp4GVOR70t/OWptZhVvkAm+/h5oJ+pFrYm/zuxefmuzqHJbW3fyn/SdB8x9o0AXsi3/nq82p/VADMySpklpMl/8+wW9aWzRnaYJOknH0vb+lowyTZW3qXWRyUWMLPmsmdYuWfuy4IpnjL8b6T8c4z5R3ekuyrvJPdG77Q5rFg0VVibAn5j+m8g8ED5+qdPewn6INek8wrG8cFpq1uCJWqvjykM9ofR2EJlcjsBqAnaF867w+/KLLAP0roA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lm9KFYVpR+EURylQxp6M8OkqsOcs4Ssl2qznxaDHtDU=;
 b=nLo/eYcB+xKoRr05KqRRF0ZYjNz+Zf340Fo2oBYhH/3llwHXTxNPhTMKsODikEyujTpZ7q3U9njanLfAJJ6/3xt0eE4q6BtlYF6lAUsFMzClTiS1Fx+2aMkusyDdK2wdGyrBr6lXcn1aNWPdGWOlD+IVszsK/vFSvrfe99vK/5c=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <0168574e-1b3a-4a3b-8284-7745b06d3ee3@amd.com>
Date: Tue, 9 Dec 2025 17:26:39 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/6] x86: rename ARAT feature flag
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@suse.com>
 <480b4638-31bf-472a-8c99-70d912bccd0f@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <480b4638-31bf-472a-8c99-70d912bccd0f@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECD6:EE_|DS5PPF1ADAD2878:EE_
X-MS-Office365-Filtering-Correlation-Id: 5734c652-5c2c-4348-c00b-08de37720668
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TjRsaE4zaXk5SUtQbkp0ZVZBaTFDWlZKZlZiZmdQaGZoNFN1YlZKbG5PWVFZ?=
 =?utf-8?B?SkJ3WjJveFZ5NXcxaE1XZFBpVXlOYWQ4eXk1blEzQVBwU1QzdDNjT1U3QWE1?=
 =?utf-8?B?ZzFkSG0rR05WS1drcDF0Ukw1amVCd0dMRjBRSDUxQU5Qay9TQUlETkdpQmIx?=
 =?utf-8?B?L2RpNFJLd3lpS2h3dHZsWXpFSVNPVWQ2czA2TlZkL2tIbzdTTDhNM25CUHRn?=
 =?utf-8?B?Mmp0NWxRZnR4blVmSlZ6a0N5aVYzK2srQS9RdjNxSExqSkJEZnpBbFN4LzMv?=
 =?utf-8?B?ZG11NHl2ZHcwKy9vWGRqMDNmWVl4bDJwcUlhajVmODJxM0NmQzJ6TWkxUDBC?=
 =?utf-8?B?VVZxR2V5TXlqTG1WSlVCT0ZzaXBHZjBaRXFZOHY2YWUxQlZVTXpGK2ZHdFpM?=
 =?utf-8?B?YjhIRXNTSGkzVUZoTjUvTHkxYTVUWWtGTkF6UFlNek9YNUd3ZEZIZ2dza0Mx?=
 =?utf-8?B?dWRkYThDN3lkVmhnSng5UWwrUmdveGd5Ym5lTkkrNDR5M0xGc1NNbUNiejhG?=
 =?utf-8?B?ZW1rS2dvODR3SWhiaTZtRDN2Umx6MWdibUdxbzJZVjBuekRXQ0lHeFZMVGNY?=
 =?utf-8?B?MjZXVFFoL0hybmhETzBVeHpQSy9uTkJtekFuanVMRVJ2RXJoMVB5VE1hYUNC?=
 =?utf-8?B?dkRFbk9oVXpTdmkzWE9td01sM2NYVWQ0ZUxvdXBYTEtJdUNZRnVXMzE4a3hM?=
 =?utf-8?B?bVVoaXk5YXNjc1J1OHJNUjRyKzVFN21oMmU4VlVZTUxkY1JyOEo4SWVYeVJH?=
 =?utf-8?B?MlNwdkczVk1vMWFXMk1sMTM0L3hxYVhkRnUvTjEwQVFDVDhibDNUQkF6dGlN?=
 =?utf-8?B?NXNSY2xVWGErUEw2dVNMa3c2MWVCQkhreUtmSjVNSGMzYXk3dGwxcFBJa0VM?=
 =?utf-8?B?cWkvdWhOUzdlMkV5aHZuMU5lZnJPV3BXQmY1cDBZdFczaDl3R042eStvNHpE?=
 =?utf-8?B?YXI3SW9mbDU1YnJweXpNRStDTmxjTU1HWlVHVGJRbjdDNEFIbnBUZUo1aHpW?=
 =?utf-8?B?Q0lHZk9FeksyRStxVmxma1Jlby94dU5wdzQvMHpkMUV6ZGl4TTY1bzNOa2dB?=
 =?utf-8?B?aUlSWUNWbVVqMFM4TE9TSURxQS9zdy9LcVhXUUJNSGtMcGNrek91Ulp4bUtx?=
 =?utf-8?B?Rm1NRjJkYkpkeGxxVDM4K2x3R1ZYekhUblA2cWR4VlFpVmZJTDgyUkMxQmov?=
 =?utf-8?B?RjVrK0dxZ25vZ25Eb0lqa2xVUlQ1UGdLL2lnZU1QUHdOOEdHQ2x0S0oraFZM?=
 =?utf-8?B?dHhYL3Ezb1JBbEhjYmRRUmp6Z2tBTVJxRzJsVXNZc0NvVTkyN2VPYWxLUmF1?=
 =?utf-8?B?K21GM3JSelBHdU5NTXp2TmFBSWg5ekZZUHJySXpvdVRyNDFPS1YvTENBbHd1?=
 =?utf-8?B?RnoxcitIVHZFZ0JmVkdLS3hxYmNFSGwvOVBsaTZwZG5RQjJvRnVVaUhIYnlF?=
 =?utf-8?B?NXlkM2h3bHc4MEVlMnlKVUt0ZHo5dTVrUExrV2J4L2wydVpPU1Y3WTJzc3Vw?=
 =?utf-8?B?M2dwS0dSem1xVUpyNXcvWXJFN2N5ZUd5UjdLekJuek1MbVRZRGp2dFJVclda?=
 =?utf-8?B?T08zMXk0Sk8xaWlaeVU5SCtLRkRYVTF5N2Rnenhxd0pyTDVvSmJ3N2Z3U2lw?=
 =?utf-8?B?WDNZQlViRllnODRFVXdTREpmbUhtMlZ6cDdOUUxoYmJKYThCU0hVZG5yQ0hV?=
 =?utf-8?B?WGFuYU5scXVGWG84WTlxUnh1cjhmRHpWWURuZWRRSVU1ZE9ZZzJJWUlkRDlE?=
 =?utf-8?B?aE9GR2NVVzI1Vm1wUTgvOVRKaFUyOGt5d3pyLzdHM1VQeENDWTFxOTBXTlZw?=
 =?utf-8?B?ZFRHSHR5SjFuRmh2UXdRL01RMFVVRHdPWk9NQkdLS2ZKRGJzNmFGZHVwa0ZU?=
 =?utf-8?B?NEpFOW9UUk1KZTVTbHhJRnZjcW03bmQraURQeFN3MktGNVRnRUJURGp6VVRq?=
 =?utf-8?B?cW41cjAxUkpkQ0F0OUpmZE9sNU1DSm9QYXpqQldGNVl2V1pyNStMbFVWZElq?=
 =?utf-8?B?YmtjMDI2ODRlS2JvV3EzbjdaWWZRRUtRM1RrZ1ZQYVl6S01hd3ppSFl5WC9s?=
 =?utf-8?B?RFZVaFJxdkcxREJOQlRLelBEcGUvcEhxODBlcXVab1hyQlRqaXBlOEJRRHpE?=
 =?utf-8?Q?guB8=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 22:26:40.6061
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5734c652-5c2c-4348-c00b-08de37720668
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000ECD6.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPF1ADAD2878

On 2025-11-24 07:24, Jan Beulich wrote:
> Add a XEN infix, to properly distinguish it from the CPUID feature flag
> (leaf 6 EAX bit 2).
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 22:30:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 22:30:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182277.1505174 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT6EE-0004TV-GU; Tue, 09 Dec 2025 22:30:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182277.1505174; Tue, 09 Dec 2025 22:30:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT6EE-0004TO-Cp; Tue, 09 Dec 2025 22:30:42 +0000
Received: by outflank-mailman (input) for mailman id 1182277;
 Tue, 09 Dec 2025 22:30: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
 <SRS0=snnK=6P=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vT6ED-0004TI-BC
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 22:30:41 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aff46bd7-d54e-11f0-b15b-2bf370ae4941;
 Tue, 09 Dec 2025 23:30:39 +0100 (CET)
Received: from BN8PR04CA0039.namprd04.prod.outlook.com (2603:10b6:408:d4::13)
 by BY5PR12MB4243.namprd12.prod.outlook.com (2603:10b6:a03:20f::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.7; Tue, 9 Dec
 2025 22:30:34 +0000
Received: from BL02EPF0001A106.namprd05.prod.outlook.com
 (2603:10b6:408:d4:cafe::eb) by BN8PR04CA0039.outlook.office365.com
 (2603:10b6:408:d4::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.7 via Frontend Transport; Tue, 9
 Dec 2025 22:30:33 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0001A106.mail.protection.outlook.com (10.167.241.139) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Tue, 9 Dec 2025 22:30:33 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 9 Dec
 2025 16:30:33 -0600
Received: from [172.29.90.244] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 9 Dec 2025 14:30:32 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aff46bd7-d54e-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RYD7E7iE+BoZNY6NdkW0V7UUkdUxu3LMQkVTcOGyeCAtQfZodR5XnImmXAFMx8Zd/7TXrLGgwj73lcCeO6o9w7z0h37oW4EI5eVdyyUrfHEYMlGdNYKQihLwf6SKsJH/5l28DEBuYdyYlbR3RoyoYGbzEBRz9O9+rZHflSIy2ud0AdUnAZzsokjrhsgAfuMhyNkrnFJrXMw6PGiOevieaJPGHfVdqNV2FxYuard2LAEcuUcoefa/n5blSjGXmQR9uB8IRSs2HL8DTby5hv0Si5eUwdfBMpJjO7QMV+NT8Urj21AIFg+e26qHhMetJgJT8FGhfaA1fcYd169cYXzobw==
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=IOSKOhB9Uh50SUCYA9S45RoHyTm6kIqe2zEweHtRT8Y=;
 b=iSTbVxV7BVupTdgWWzo/NDxR8yi3Kc9xL2GxTbSTQHB0hFrZ5CYIDwkxJeP/xCcw6UQ0mTiox4N2G+HqpBxnS3GDpmXjAJblivqZRsd3XdEhSro5nAhAkDlGKluauBeoxVuIAl066TJo7SBU+fWIye9UchsoCEShhoqUbpvf5hd34Wb4aiApTmYPVRwkUpQenYrQ35amDnT2T0WWTNWq1dgDiIiWQCh7ij+6BnMnuc+EnhwiH1DrqIN4tYnnkAMnvUnnUEQwmHfEcQir8K+4zidzohF5eTLZ7zYv4BGobBNneFTs13V6l2py+lSWoUGaSi5OaNFhRQpu4ELztgiyjQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IOSKOhB9Uh50SUCYA9S45RoHyTm6kIqe2zEweHtRT8Y=;
 b=sOj7eF/JVUzlNta0uyDvx1kaGyLpCfMPxDrabNnCf+/jaTaNr1IbS3UhMhsNpB8uX8Sg3EQbrEPFZynWCZbeH7Nw3g1E/sBhCVt9rqL2pKGOg3Kqrx7vdJwsbaFLFFB1+JTU6bHG8u6Imdqn/9WIFAK7erF36MZeR8mh09h9jVc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <481fa1c1-c27c-42ef-b0c3-22fad5c71e2f@amd.com>
Date: Tue, 9 Dec 2025 17:30:24 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/6] x86/Intel: use host CPU policy for ARAT checking
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@suse.com>
 <bb5fef0f-a2a9-49ab-97bc-871486a44f89@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <bb5fef0f-a2a9-49ab-97bc-871486a44f89@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A106:EE_|BY5PR12MB4243:EE_
X-MS-Office365-Filtering-Correlation-Id: 21ad6cda-41a7-4e99-825f-08de3772915f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?a21PVDcvL25kcmFZODNQdnlRTk56cE43WjRjb3hNK0czRmN0c3JpYzJYVXFw?=
 =?utf-8?B?OGpHYTVwaEMvSVB5UUttOTk4dTFYMGtxTm1heU56YnJoN3gzbW03UWZBbFNP?=
 =?utf-8?B?Vk1adUZVTUZRRnN0ay9LOFczWGxIMzFrU2xpeE0rV3JkWUtVSGk5U3BUbFAv?=
 =?utf-8?B?ZVJFUmJhZ1paODUxdDJrc0xoT1JxSkplRjYyeUNWR3p5bWtpd1U1ODBJdksz?=
 =?utf-8?B?dXVQMU9Ed0lHMjFWMTNiS3RDQ1Vsd1NROVBnd1p2Uk5wZlpQVmxneDlzaTJW?=
 =?utf-8?B?NzJSQXZ4K3BJL1BiWkQyYXQ3Sm93NTZ0c3gxcGNZOXVzMGc2ZUE4a0pYdVY5?=
 =?utf-8?B?aXBHTG9yekNRYlJUWUNPVE1uek1aY0x0MlZrSTZDWXgxK1NWTGJIT05oUEh1?=
 =?utf-8?B?MmtVdkpkdVpleHZKS1RnQytFRDBENjBiVStxTThSVTlOMGZQeDRYMUwrUlBu?=
 =?utf-8?B?QTNVUHlZazZSNzJVdHR3QjR0bzIwRmFZYzViWHgvTEJJUmpLWG9QcCt2MWxS?=
 =?utf-8?B?ODhnVDR1YTRqbHB2UGdkOXF3YTQ3SUpzNGxOdi8ybzVxOTVHcU9mdDNtdGdn?=
 =?utf-8?B?bW5EU1pCd29EaW9BQmVQWGNha2pUSTdFUzdFU0VKMVhHMngwTHRpaUR0enRs?=
 =?utf-8?B?a1QwSFoyUWM5M21xQU1iTTJIWm1sMzR6WDFlVExWMVZTVHZXZ2FEN21qWmgx?=
 =?utf-8?B?TitWYzdPdGhuaitrOTR6cjV0UVl6bmh5anJWa3JZRnJweThSaVF3WUg0a1hT?=
 =?utf-8?B?b28xNmozWmN2ZkwyTzgyc1o5MzBDUVBkR3lpcHY5M2JyYmZGSmRLUkluVzJO?=
 =?utf-8?B?ZWlnNHl5UWVVcnRPY3loY2hnVTB0K21NMEMrYkpsRWIwWkFhTzEyMWlieDRY?=
 =?utf-8?B?YURWRzJ5VVF6UmovS1RNOW9QaE1sZVZ6VkZYVVdqekRwdVFFOHB6YmgxbTZY?=
 =?utf-8?B?WjUwNFJYd2t1a1AyeS9yZllQOGtlNEFSQ2YvUG9LQzByRW5YbmZuclVNNEdW?=
 =?utf-8?B?VnR1Ky9sMzkwR1A1WEhhcmNxZCtjQ3V2Z01JQ3hKS2JXNXNSOFd1TDVLcnR0?=
 =?utf-8?B?NXpGeEs5WVBQWXhoVUlIdVd3NDU3V2lzU1R4ZGM5WHVDeXpJWjBtQkxpa0NC?=
 =?utf-8?B?QWpuNEFFRHNjSDNBSU1udkR3ZVN5VUdhNHpxRHJGbnVwYkM2U0l4QzErbWln?=
 =?utf-8?B?Ti95TFRacnFDVC9LOVBQbldHNTE1dXVrTURBVHhFL3MzS1V2YzE0bmgyZkN6?=
 =?utf-8?B?cnlRYml5VmdGTExpVW55ZTFBeW9LU1UxbG1Bd2YzZzRjVnlON2RaajFSMXN0?=
 =?utf-8?B?OG1pSWw5c2dVNW5reklWenBqQ3hsWHlWcXdKV3BUTzhaNGRxQkQ3eFlRR0hZ?=
 =?utf-8?B?enloUlJTYkFVVkJwOHM1cHVBYWEwb0kxdXhrQW8yRWFPTDV6YjBEdk8zYUxn?=
 =?utf-8?B?eGlKeWs5WkQyR1hmSUdHcC8rUXZTdFVweXV0SExSNG5DRGdtY05UWGdKT0NY?=
 =?utf-8?B?L013aWdZT3ZsRXVnZzlGNktDdUlKQldyNWhNZnFCQU5JWUE4a2V1MWwxNkZO?=
 =?utf-8?B?QmN4ZUtrS0FoMFQxRnlYam1iUm1QOTRWK3hsNTZpTDZHaExVOUh5SW02V0NZ?=
 =?utf-8?B?QWNwZGNnM1k3U3dsZUM2eTNsLzZoVUVscFJNSENzbXMrNVJFOTVtVnhVSG9h?=
 =?utf-8?B?L214aEMwL1I3Z1RvWVJ1VklKZGliQ1h3cURsVmFEVWRGcjJZNHJvajZPUVgr?=
 =?utf-8?B?OVBYS2VhSlRtUk1peVl3UTVpTFpnWjhVWFd3TVlZQytRUUdmVjByb3lhQSt0?=
 =?utf-8?B?OEhEdkRJcGFjVXJveTBDWXBrbVc2SnhuS3d5SmlySzR3YW44TkFoelVwclVZ?=
 =?utf-8?B?c0dDUWxMbElnZDAzV0dlRjhKTXR2cVJXNWx2WjlUanFYT3NZNS9wVEczdFVS?=
 =?utf-8?B?OEpkUUlwK2RzVTFnM2R3bE1rdmlDMk5tbGo1ZGZYSldYQm94aDh6aW1PMktk?=
 =?utf-8?B?eWV2eWlrM0daYjQyNzNOZzdwWjJmMkVvY2h6QWI0ZFlsVTNsc2tYV0JsMFJz?=
 =?utf-8?B?ai9HbFc1SjFwQnk3VnBEL0ZDUWlpR3V1ak1WZ3pJaTNGc0pxRnVzc25BMlBH?=
 =?utf-8?Q?VteU=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 22:30:33.7468
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 21ad6cda-41a7-4e99-825f-08de3772915f
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A106.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4243

On 2025-11-24 07:24, Jan Beulich wrote:
> There's no need to invoke CPUID yet another time. However, as the host CPU
> policy is set up only shortly after init_intel() ran on the BSP, defer the
> logic to a pre-SMP initcall. This can't be (a new) one in cpu/intel.c
> though, as that's linked after acpi/cpu_idle.c (which is where we already
> need the feature set). Since opt_arat is local to the cpu/ subtree,
> introduce a new Intel-specific helper to hold the code needed.
> 
> Further, as we assume symmetry anyway, use setup_force_cpu_cap() and hence
> limit the checking to the boot CPU.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Tue Dec 09 22:49:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2025 22:49:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182291.1505183 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT6W4-0006Zm-UH; Tue, 09 Dec 2025 22:49:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182291.1505183; Tue, 09 Dec 2025 22:49:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT6W4-0006Zf-Rf; Tue, 09 Dec 2025 22:49:08 +0000
Received: by outflank-mailman (input) for mailman id 1182291;
 Tue, 09 Dec 2025 22:49:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=snnK=6P=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vT6W3-0006ZZ-MR
 for xen-devel@lists.xenproject.org; Tue, 09 Dec 2025 22:49:07 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cd67971a-d54e-11f0-9cce-f158ae23cfc8;
 Tue, 09 Dec 2025 23:31:28 +0100 (CET)
Received: from BYAPR02CA0024.namprd02.prod.outlook.com (2603:10b6:a02:ee::37)
 by DS2PR12MB9751.namprd12.prod.outlook.com (2603:10b6:8:2ad::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec
 2025 22:31:24 +0000
Received: from SJ5PEPF000001CE.namprd05.prod.outlook.com
 (2603:10b6:a02:ee:cafe::19) by BYAPR02CA0024.outlook.office365.com
 (2603:10b6:a02:ee::37) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.6 via Frontend Transport; Tue, 9
 Dec 2025 22:31:23 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ5PEPF000001CE.mail.protection.outlook.com (10.167.242.38) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Tue, 9 Dec 2025 22:31:23 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 9 Dec
 2025 16:31:23 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 9 Dec
 2025 14:31:23 -0800
Received: from [172.29.90.244] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 9 Dec 2025 14:31:22 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd67971a-d54e-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fsZ82LWgcLFoWArKp1sO9HNINBDgCUDj4O/LbMzcE8IGRb02T2JhLUHiCQF/onLW1TikKemXSIkhX5pGMm3nblX6/v5LaOh7P3F5YhbjPOYjZaSIN7N+JFjG41UIXaAOCJ3wO+A6AoJ8IwiOBxC7RO2Ng5vv5vuiKrJOp4pefXvJmTo8w75yL4hAL29fv8RW7Ng0CBMVe03+hioslCbDEvlb789uK3FX8CSTmO3ZMqmqr0QYyb83MNP8AfkvaHHDKSyc+LBRqmiYH1FsORT10pAXXc5LTLk4Mf3A9d4zpKrcBc+gyzyGqIKkLk0Y36RPfEZWhUkLqfQPV9Y6fwDulg==
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=YOCI+4Uyl88TpWdukmZa2n5ZHFLIsFa4QlJ8dtRtcL8=;
 b=sM4e17Dj2qCN4kkFTOMlMJx4SEaKafwZM1j8Y8krEnP7apqgadNvvt/cXmzojR0GLoajTlXbWYpGxvziz1OK/ZD4sah3nd9OpZ3hzPITXAsCgK7XXQZ70zub9cU6DpGBhtseT9boxStc+SN5RzebmHLxrZMHjGkaDON8YTepQOgXPn8yD2qvj/PU2rSJeRLW/qj8NqUenyp+40q4hfFjm104IOxU8JPQgyA6Ibv9gObNzCbuXE13vAXwMXm/ga+PiR0tdqNjYmIY6bYv0AG6WGj/XLavDOjWRXjFx5KXnnllVfjvtHTzRCVCbaBQHl0YLNFaRwwuFofNG3oE+e8L2g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YOCI+4Uyl88TpWdukmZa2n5ZHFLIsFa4QlJ8dtRtcL8=;
 b=gZsSOiIi0FjOMsfuagpjpVQb+NHbQDfcX1oYoimOGuUSd1vkVxmnZWSHvG4YGm6fn0Frr5KmzP7443ZJMOo8cRN3ijFJnBmRodw3efWIAshv7M1noj1WWcCs1rEZOpbtBqPNuUohJrk88fSiLjQ8/fBbdF9DX4L1D86gJz/Fdj8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <1c49a560-93d9-476c-b3d2-5f7ce416d9c3@amd.com>
Date: Tue, 9 Dec 2025 17:31:22 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/6] x86/cpufreq: use host CPU policy for Turbo
 checking
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@suse.com>
 <27f467a9-a507-4832-850e-190aff8c04aa@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <27f467a9-a507-4832-850e-190aff8c04aa@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001CE:EE_|DS2PR12MB9751:EE_
X-MS-Office365-Filtering-Correlation-Id: 90b8329f-81bb-4b38-1e8b-08de3772af37
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eU1sNU5yTTFaZ3c3SnBpQjd2WUFtOGlwSEFQaTZLZUsrTDh0ZTExY3FhTU80?=
 =?utf-8?B?WXNXUjJoK3RiYjRkWm9VSjc1WEJRc21rME5JQVNueFgvZEowb29zNUprSjht?=
 =?utf-8?B?cDFNVVZmczY5Zm5FTVArbW5USHlIS2VIb1U1elZwRmsxWHlteW0zYkM3MWJm?=
 =?utf-8?B?a3BSYThmVkNrWHdLczRyY0RNNDl0NXh2NVpKRTJLQ3FKS3FEZ3NhSTlzUGo4?=
 =?utf-8?B?bUU4SG9CUDYwR09pZC90R1MzUGFLb3VZTlVBenIrRDRUMkdQUkFaUVdSbjlI?=
 =?utf-8?B?bWZvSXJNSGw0UFpRRXd3ZVdjTVNwZXRFckk2THhYWW0zT3BsTE1zdS8wRlB5?=
 =?utf-8?B?a1BIdVJZNXozTStuL2FVemNtM09xanRXUXNpZk9ua21xdmZpb1dFcEhYaDhm?=
 =?utf-8?B?aTRkckl2STZ0Tm9JVnZESGtYUHFhNTJxREwxTFRVR21vaFRvdGppdTA1aWow?=
 =?utf-8?B?Qk5oUlF6OHFZanI3bHZrQzRsbnBlbk5VRVJJSXd3eE41MDRxNWEwYzhPQldD?=
 =?utf-8?B?V2I2aGtXTDVJaTFlTWxPYzFBbUErekp1RXVvWTVSUGgxRmV0eUVVdDFKNUJv?=
 =?utf-8?B?cHE4SmRaZEVzTjBwdHM0UVcySDdySzZWeTB6Z3ZJRjE4cCtNL01KdUpHOFJF?=
 =?utf-8?B?SG9zMHBtUFQ4YTdsNWlEU2JxbC93UFNaSTZhbGE3T3JycHg4WGxUZnBJMTRl?=
 =?utf-8?B?Qm5RbW5HT2RCak1wd3BmczlScUI4ajYxbHF3L1VidFo5TjdJUGhhK1JyTmNh?=
 =?utf-8?B?Uno3TXkxeExEYTNZMlBGWWJ0SWNsQXpBaUdMUFAra3lJVGh4N252THViNm56?=
 =?utf-8?B?VFhZNzZUcGNQNWtCaHhWc2RNbUVFU3I0ajF2RlcrWmlqSDl0eW1DZlQ5aVJZ?=
 =?utf-8?B?ZU5DanZlbUFRc1VvemdkeDhDNnpLZUYyaSt0bjNyMDZnMW0wLzVkQ0phYmRs?=
 =?utf-8?B?UkM2a1ZmWVZEUTVlbmR3czkwOWR0NkpWU2NUM21taVhmemxCKzBwSVEyY3lR?=
 =?utf-8?B?MW9XK3R6bEtiTk1uTzR3SFhRaEFXYUd0bHlqa2dqYzNvVHp2Wnl0QjYrQThE?=
 =?utf-8?B?MmFoTE85cmNudFVvSUxIZjBRT1hMM0JMN0E0bjJ4ZUxweEhnbkhnemVNRThu?=
 =?utf-8?B?Z3Z3Y3RFSXRFdmh3aW54UVlvYlNYOERCMnh2OTg1ZVY5czhoRkNxM0ZVdXhk?=
 =?utf-8?B?U1N5UnpmUHpWNWhDMDlKTzkxanF0RnhSdU5yaUk5U1haWFRsMndJc3BpU3p0?=
 =?utf-8?B?SXB1QkNyZnZNcytRNGs4SGNjdXpBSzI1WGkzZzVXQUtjNUVTNUwwMXFFRzMw?=
 =?utf-8?B?WUpqK1JjaEFxYzBhRktJTTludU5uNWozbmJoNlJ0TTdlMUMvWnEzOTFNVTEw?=
 =?utf-8?B?c3RoM3ZOWGtrdEJKWnhkSENZZlVVcVlhUjBsNVcwUG90YVEzeWZxMFRIVm5Q?=
 =?utf-8?B?YkVIc1pRNkIvUXM5U3luTXluV1FwazJTVVZtTjBkY1NVRWlhTWhLRXB6cmRt?=
 =?utf-8?B?c3ViVkFna1lmNlJ6eGNGeGNSd2N5a2I1MkQ1aHh0Qk5VQjhNZFRxRW85amV0?=
 =?utf-8?B?OHBBUS8rb0tHcEhEaFdYY1NGMmhMc3JhSDdzQzErbkRtTG9jbEluc3E1K0Nm?=
 =?utf-8?B?dlVmeisvR1A0Y0ZsRjBmUEtSYXRxMllWSDdnR2NVVkRrWTdhM05xeGdvVzYx?=
 =?utf-8?B?dkU1bk5QMDNFbmpSSzhMdGVFUnRyczlLMG42M2NTcmlWU0tPajVVVElBWTM5?=
 =?utf-8?B?UmZkSzhPWUcrTktoSVNXWlNuWlcwWjErZ1lITjFCaitFOWk5TGo3dE8rb1U5?=
 =?utf-8?B?dGgyeXRnQVhsOGF6K2k1MUFwMmFiRzZSZDVRRzZsT1ZyTVAxaXEzYUJibWVO?=
 =?utf-8?B?U2w5OEVySWQxVDRrbUtzWmVwUFRsNC9zWVZIRzdPbkRtclpKUkxtNVAyaDBS?=
 =?utf-8?B?SWhlTTNrQWdqcmN2YVNscFk0VVZESGwyd2VZN3dOeVZIMVRwZFVyN1NCTFRy?=
 =?utf-8?B?T3RBU05uazJSa2dmUkRNbXJuVlM0dFdibGdTaE9WQ1g5OXhmcklRaWhqMGZm?=
 =?utf-8?B?Sm1yY1NpOXp0OEZTUjIvcFp4UHJpTDkwY0ZIU2t5dEVDMVVCaEJlM1hOUTdM?=
 =?utf-8?Q?I7Ow=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 22:31:23.7783
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 90b8329f-81bb-4b38-1e8b-08de3772af37
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001CE.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR12MB9751

On 2025-11-24 07:24, Jan Beulich wrote:
> There's no need to invoke CPUID yet another time - we assume symmetry
> anyway. With symmetry assumed, logging per-CPU also isn't very useful.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 00:02:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 00:02:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182303.1505193 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT7en-0008Iz-Rr; Wed, 10 Dec 2025 00:02:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182303.1505193; Wed, 10 Dec 2025 00:02:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT7en-0008Is-PI; Wed, 10 Dec 2025 00:02:13 +0000
Received: by outflank-mailman (input) for mailman id 1182303;
 Wed, 10 Dec 2025 00:02:12 +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
 <SRS0=8oeO=6Q=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vT7em-0008Im-7S
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 00:02:12 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 78069180-d55b-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 01:02:09 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 6C4D2406E2;
 Wed, 10 Dec 2025 00:02:07 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 990A8C4CEF5;
 Wed, 10 Dec 2025 00:02:06 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 78069180-d55b-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765324927;
	bh=gSJLaBv1ZO5EY9YFpOHejSPij6xDEt3hGO3qbO1YqVI=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=YioZCuBlBPdZpKEZb3HUkdWzhkW43jnIG1Q8BEWTSGTOA88XAx/yt5H52GWeekMeM
	 UBiOudk5MS0aV4J6Y9KLn142n3z8enxyxn9FTlkPw+gnsBmxkSJ9FrK6lNx813ul4s
	 5q/0Q36arYevlhBnCVmEbG2BYwPquOpsWb8oBLr8Q5DtveN7fZvbEqqsI3ldmXXIiI
	 GH6LPeWdm6oaTbPAfuGQBjV5iuRT/o/uSBg86n3KIbx7WjpiFbOcDvHde+tZpXA54F
	 wssinn928XI4A2uprQKzU85O3NTLtGCdGERhkCowfyl7mFDmEize5PpvmsODVFtC13
	 G5UV4p/Bm7P9w==
Date: Tue, 9 Dec 2025 16:02:06 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v4 4/6] CI: Add driver domains tests
In-Reply-To: <cf2a2544fe27fedca5129b61912c064f4be08236.1764989098.git-series.marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2512091534060.19429@ubuntu-linux-20-04-desktop>
References: <cover.b56a66dfe4d98db2f1cc8b1fe0c2091d02cebe38.1764989098.git-series.marmarek@invisiblethingslab.com> <cf2a2544fe27fedca5129b61912c064f4be08236.1764989098.git-series.marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-57651224-1765323860=:19429"
Content-ID: <alpine.DEB.2.22.394.2512091551340.19429@ubuntu-linux-20-04-desktop>

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-57651224-1765323860=:19429
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2512091551341.19429@ubuntu-linux-20-04-desktop>

On Sat, 6 Dec 2025, Marek Marczykowski-Górecki wrote:
> Setup a simple two domU system. One with network backend, running
> xendriverdomain service, and one with frontend, trying to ping the
> backend.
> 
> Contrary to other similar tests, use disk image instead of initrd, to
> allow bigger rootfs without adding more RAM (for both dom0 and domU).
> But keep using pxelinux as a bootloader as it's easier to setup than
> installing grub on the disk. Theoretically, it could be started via direct
> kernel boot in QEMU, but pxelinux is slightly closer to real-world
> deployment.
> 
> Use fakeroot to preserve file owners/permissions. This is especially
> important for suid binaries like /bin/mount - without fakeroot, they
> will end up as suid into non-root user.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> ---
> Changes in v3:
> - add fakeroot
> - run ldconfig at the disk image creation time, to avoid running it at
>   dom0/domU boot time (which is much slower)
> Changes in v2:
> - use heredoc
> - limit ping loop iterations
> - use full "backend" / "frontend" in disk image names
> - print domU consoles directly to /dev/console, to avoid systemd-added
>   messages prefix
> - terminate test on failure, don't wait for timeout
> ---
>  automation/build/debian/13-x86_64.dockerfile    |   2 +-
>  automation/gitlab-ci/test.yaml                  |   8 +-
>  automation/scripts/qemu-driverdomains-x86_64.sh | 138 +++++++++++++++++-
>  3 files changed, 148 insertions(+)
>  create mode 100755 automation/scripts/qemu-driverdomains-x86_64.sh
> 
> diff --git a/automation/build/debian/13-x86_64.dockerfile b/automation/build/debian/13-x86_64.dockerfile
> index 2c6c9d4a5098..6382bafbd5bd 100644
> --- a/automation/build/debian/13-x86_64.dockerfile
> +++ b/automation/build/debian/13-x86_64.dockerfile
> @@ -55,7 +55,9 @@ RUN <<EOF
>  
>          # for test phase, qemu-* jobs
>          busybox-static
> +        e2fsprogs
>          expect
> +        fakeroot
>          ovmf
>          qemu-system-x86
>  
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 7b36f1e126ca..abc5339a74ab 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -656,6 +656,14 @@ qemu-alpine-x86_64-gcc:
>      - *x86-64-test-needs
>      - alpine-3.22-gcc
>  
> +qemu-alpine-driverdomains-x86_64-gcc:
> +  extends: .qemu-x86-64
> +  script:
> +    - ./automation/scripts/qemu-driverdomains-x86_64.sh 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - *x86-64-test-needs
> +    - alpine-3.22-gcc
> +
>  qemu-smoke-x86-64-gcc:
>    extends: .qemu-smoke-x86-64
>    script:
> diff --git a/automation/scripts/qemu-driverdomains-x86_64.sh b/automation/scripts/qemu-driverdomains-x86_64.sh
> new file mode 100755
> index 000000000000..c0241da54168
> --- /dev/null
> +++ b/automation/scripts/qemu-driverdomains-x86_64.sh
> @@ -0,0 +1,138 @@
> +#!/bin/bash
> +
> +set -ex -o pipefail
> +
> +dom0_rootfs_extra_comp=()
> +dom0_rootfs_extra_uncomp=()
> +
> +cd binaries
> +
> +# DomU rootfs
> +
> +mkdir -p rootfs
> +cd rootfs
> +mkdir -p etc/local.d
> +passed="ping test passed"
> +failed="TEST FAILED"
> +cat > etc/local.d/xen.start << EOF
> +#!/bin/bash
> +
> +set -x
> +
> +if grep -q test=backend /proc/cmdline; then
> +    brctl addbr xenbr0
> +    ip link set xenbr0 up
> +    ip addr add 192.168.0.1/24 dev xenbr0
> +    bash /etc/init.d/xendriverdomain start
> +    # log backend-related logs to the console
> +    tail -F /var/log/xen/xldevd.log /var/log/xen/xen-hotplug.log >>/dev/console 2>/dev/null &
> +else
> +    ip link set eth0 up
> +    ip addr add 192.168.0.2/24 dev eth0
> +    timeout=6 # 6*10s
> +    until ping -c 10 192.168.0.1; do
> +        sleep 1
> +        if [ \$timeout -le 0 ]; then
> +            echo "${failed}"
> +            exit 1
> +        fi
> +        ((timeout--))
> +    done
> +    echo "${passed}"
> +fi
> +EOF
> +chmod +x etc/local.d/xen.start
> +fakeroot sh -c "
> +    zcat ../rootfs.cpio.gz | cpio -imd
> +    zcat ../xen-tools.cpio.gz | cpio -imd
> +    ldconfig -r .
> +    touch etc/.updated
> +    mkfs.ext4 -d . ../domU-rootfs.img 1024M

Do we really need 1GB? I would rather use a smaller size if possible.
I would rather use as little resources as possible on the build server
as we might run a few of these jobs in parallel one day soon.

Moreover this script will be run inside a container which means this
data is probably in RAM.

The underlying rootfs is 25M on both ARM and x86. This should be at most
50M.


> +"
> +cd ..
> +rm -rf rootfs
> +
> +# Dom0 rootfs
> +mkdir -p rootfs
> +cd rootfs
> +fakeroot -s ../fakeroot-save sh -c "
> +    zcat ../rootfs.cpio.gz | cpio -imd
> +    zcat ../xen-tools.cpio.gz | cpio -imd
> +    ldconfig -r .
> +    touch etc/.updated
> +"
> +mkdir -p root etc/local.d
> +cat > root/backend.cfg << EOF
> +name="backend"
> +memory=512
> +vcpus=1
> +kernel="/root/bzImage"
> +extra="console=hvc0 root=/dev/xvda net.ifnames=0 test=backend"
> +disk=[ '/root/domU-rootfs-backend.img,raw,xvda,rw' ]
> +EOF
> +cat > root/frontend.cfg << EOF
> +name="frontend"
> +memory=512
> +vcpus=1
> +kernel="/root/bzImage"
> +extra="console=hvc0 root=/dev/xvda net.ifnames=0 test=frontend"
> +disk=[ '/root/domU-rootfs-frontend.img,raw,xvda,rw' ]
> +vif=[ 'bridge=xenbr0,backend=backend' ]
> +EOF
> +
> +cat > etc/local.d/xen.start << EOF
> +#!/bin/bash
> +
> +set -x
> +
> +bash /etc/init.d/xencommons start
> +
> +xl list
> +
> +tail -F /var/log/xen/console/guest-backend.log 2>/dev/null | sed -e "s/^/(backend) /" >>/dev/console &
> +tail -F /var/log/xen/console/guest-frontend.log 2>/dev/null | sed -e "s/^/(frontend) /" >>/dev/console &
> +xl -vvv create /root/backend.cfg
> +xl -vvv create /root/frontend.cfg
> +EOF
> +chmod +x etc/local.d/xen.start
> +
> +cp ../domU-rootfs.img ./root/domU-rootfs-backend.img
> +cp ../domU-rootfs.img ./root/domU-rootfs-frontend.img
> +cp ../bzImage ./root/
> +mkdir -p etc/default
> +echo 'XENCONSOLED_TRACE=all' >> etc/default/xencommons
> +mkdir -p var/log/xen/console
> +fakeroot -i ../fakeroot-save mkfs.ext4 -d . ../dom0-rootfs.img 2048M

Same here. Also 2GB might not be sufficient to contain 2 copies of
domU-rootfs.img, given that domU-rootfs.img is 1GB.

If we bring down domU-rootfs.img to 50M, then this could be 150M.


> +cd ..
> +rm -rf rootfs
> +
> +cd ..
> +
> +cat >> binaries/pxelinux.0 << EOF
> +#!ipxe
> +
> +kernel xen console=com1 console_timestamps=boot
> +module bzImage console=hvc0 root=/dev/sda net.ifnames=0
> +boot
> +EOF
> +
> +# Run the test
> +rm -f smoke.serial
> +export TEST_CMD="qemu-system-x86_64 \
> +    -cpu qemu64,+svm \
> +    -m 2G -smp 2 \
> +    -monitor none -serial stdio \
> +    -nographic \
> +    -device virtio-net-pci,netdev=n0 \
> +    -netdev user,id=n0,tftp=binaries,bootfile=/pxelinux.0 \
> +    -drive file=binaries/dom0-rootfs.img,format=raw"
> +
> +export TEST_LOG="smoke.serial"
> +export BOOT_MSG="Latest ChangeSet: "
> +export LOG_MSG="Domain-0"
> +# exit early on test failure too, check if it was success below
> +export PASSED="$passed|$failed"
> +
> +./automation/scripts/console.exp | sed 's/\r\+$//'
> +
> +grep "$passed" smoke.serial
> -- 
> git-series 0.9.1
> 
--8323329-57651224-1765323860=:19429--


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 00:03:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 00:03:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182316.1505204 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT7ff-0000OL-9I; Wed, 10 Dec 2025 00:03:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182316.1505204; Wed, 10 Dec 2025 00:03:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT7ff-0000OE-6f; Wed, 10 Dec 2025 00:03:07 +0000
Received: by outflank-mailman (input) for mailman id 1182316;
 Wed, 10 Dec 2025 00:03:06 +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
 <SRS0=8oeO=6Q=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vT7fe-0008Im-8j
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 00:03:06 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 99c565ac-d55b-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 01:03:05 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id D517A60129;
 Wed, 10 Dec 2025 00:03:03 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E1F15C113D0;
 Wed, 10 Dec 2025 00:03:02 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 99c565ac-d55b-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765324983;
	bh=aehMpTm0bqB9OYtczh85Mvt61CtqIiBN8VtAIPT4+e4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=dW4UCLnW6TljVKoVzLctZLx66eJDZCvt8hadHKA9QYeM0CLorfSHDeY0cqPCYcAh+
	 2DdsCN/o/E2BlMiUKXHcsFcTb739wIAtqRORDYlBxQZA6KF+k6glamUGCA+OdE7t04
	 fCo+oL8TVdfij9KQuh8LRDxg1dG457jrYK59yVM4J8e1fv8gJCGKk/Vy3DeOpBlmTr
	 RimqQKBD2Nnxp2f6cWT64IZFLTTWQNMt6AvfbIhDZT+mqr7/nGryzj5N3UvY9kegi1
	 tEtQy6jcMgsOl3fy0AOsTbds+z2BF/hqt3GpRH50Mh9ibJHS9/ZfjPM6n0IcLrke9/
	 7J0FQLTcT8MOw==
Date: Tue, 9 Dec 2025 16:03:02 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v4 5/6] CI: Add configure --enable-systemd for full
 build
In-Reply-To: <1363a4377800fb2cbe8dbbbbc2b08d2af968a47e.1764989098.git-series.marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2512091602510.19429@ubuntu-linux-20-04-desktop>
References: <cover.b56a66dfe4d98db2f1cc8b1fe0c2091d02cebe38.1764989098.git-series.marmarek@invisiblethingslab.com> <1363a4377800fb2cbe8dbbbbc2b08d2af968a47e.1764989098.git-series.marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-905369331-1765324977=:19429"
Content-ID: <alpine.DEB.2.22.394.2512091603010.19429@ubuntu-linux-20-04-desktop>

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-905369331-1765324977=:19429
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2512091603011.19429@ubuntu-linux-20-04-desktop>

On Sat, 6 Dec 2025, Marek Marczykowski-Górecki wrote:
> This doesn't exclude sysvinit scripts, but allows testing systemd too.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Acked-by: Stefano Stabellini <sstabellini@kernel.org>


> --
> Changes in v4:
> - drop systemd-dev, add --enable-systemd always
> Changes in v3:
> - switch to trixie
> 
> New in v2.
> ---
>  automation/scripts/build | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/automation/scripts/build b/automation/scripts/build
> index 7a81d229decd..9485f37c7020 100755
> --- a/automation/scripts/build
> +++ b/automation/scripts/build
> @@ -71,6 +71,7 @@ else
>      # Full build.  Figure out our ./configure options
>      cfgargs=("--prefix=/usr")
>      cfgargs+=("--enable-docs")
> +    cfgargs+=("--enable-systemd")
>  
>      # booleans for which compiler is in use
>      cc_is_gcc="$($cc --version | grep -q gcc && echo "y" || :)"
> -- 
> git-series 0.9.1
> 
--8323329-905369331-1765324977=:19429--


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 00:04:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 00:04:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182328.1505214 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT7h2-0000vL-KQ; Wed, 10 Dec 2025 00:04:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182328.1505214; Wed, 10 Dec 2025 00:04:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT7h2-0000vE-HO; Wed, 10 Dec 2025 00:04:32 +0000
Received: by outflank-mailman (input) for mailman id 1182328;
 Wed, 10 Dec 2025 00:04:31 +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
 <SRS0=8oeO=6Q=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vT7h1-0000v3-4S
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 00:04:31 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cc224bf2-d55b-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 01:04:29 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id F0FA060129;
 Wed, 10 Dec 2025 00:04:28 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id F1815C4CEF5;
 Wed, 10 Dec 2025 00:04:27 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cc224bf2-d55b-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765325068;
	bh=HG25hktIXXAA6Q6WBryBBZfcvkSTXdLg6Q3rNrJHasM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=cCVNNTnzY5XvKha5mNg8m7WSOFhdQ8plRvxi/yAJIR7nONHyEL8xzBS2A9NXEhHGd
	 TC3Nx4Oq8Ty4DkyVLA8sfBnQU75sbIfzUXsSDQin4dqkcZ8Q0kPrasLHefQuscvZOc
	 uc9YNjRoQtmH8XJLPwMuRF1JCRulkCtUFdjEPVY8TFZKfAYtKwOQ5I+hSLGWu9NCX0
	 SzkKJioOHJG+n3y/wcMItUpEOMWqVW+X84WMNmVI50tMVQyTRAYC6xyKOE5aFNCF6l
	 mV7JHSuq5KFUejJ0PA8/0ybcBI+gbmCJZv3CZMrn9XldzLHFNIvUWo8VDjEr039ruw
	 3i3PxCeNaFYig==
Date: Tue, 9 Dec 2025 16:04:27 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v4 6/6] CI: Run driver domains test on Debian too
In-Reply-To: <7fdf483cb41ba04ec3949fba31991ffec2c5b712.1764989098.git-series.marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2512091604200.19429@ubuntu-linux-20-04-desktop>
References: <cover.b56a66dfe4d98db2f1cc8b1fe0c2091d02cebe38.1764989098.git-series.marmarek@invisiblethingslab.com> <7fdf483cb41ba04ec3949fba31991ffec2c5b712.1764989098.git-series.marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1256635277-1765325069=:19429"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1256635277-1765325069=:19429
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Sat, 6 Dec 2025, Marek Marczykowski-Górecki wrote:
> The recent failure affected only glibc-based systems, so do the test on
> Debian too.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Acked-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
> Changes in v3:
> - update to trixie
> Changes in v2:
> - use systemd in Debian
> ---
>  automation/build/debian/13-x86_64.dockerfile    |  1 +-
>  automation/gitlab-ci/test.yaml                  | 19 ++++++++++++++++++-
>  automation/scripts/qemu-driverdomains-x86_64.sh | 18 +++++++++++++++--
>  3 files changed, 36 insertions(+), 2 deletions(-)
> 
> diff --git a/automation/build/debian/13-x86_64.dockerfile b/automation/build/debian/13-x86_64.dockerfile
> index 6382bafbd5bd..3f84ba4a8823 100644
> --- a/automation/build/debian/13-x86_64.dockerfile
> +++ b/automation/build/debian/13-x86_64.dockerfile
> @@ -60,6 +60,7 @@ RUN <<EOF
>          fakeroot
>          ovmf
>          qemu-system-x86
> +        systemctl
>  
>          # for build-each-commit-gcc
>          ccache
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index abc5339a74ab..ffb2880f5af3 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -30,6 +30,17 @@
>      job: microcode-x86
>      ref: master
>  
> +.debian-x86-64-test-needs: &debian-x86-64-test-needs
> +  - project: xen-project/hardware/test-artifacts
> +    job: linux-6.6.56-x86_64
> +    ref: master
> +  - project: xen-project/hardware/test-artifacts
> +    job: debian-13-x86_64-rootfs
> +    ref: master
> +  - project: xen-project/hardware/test-artifacts
> +    job: microcode-x86
> +    ref: master
> +
>  .qemu-arm64:
>    extends: .test-jobs-common
>    variables:
> @@ -664,6 +675,14 @@ qemu-alpine-driverdomains-x86_64-gcc:
>      - *x86-64-test-needs
>      - alpine-3.22-gcc
>  
> +qemu-debian-13-driverdomains-x86_64-gcc:
> +  extends: .qemu-x86-64
> +  script:
> +    - ./automation/scripts/qemu-driverdomains-x86_64.sh 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - *debian-x86-64-test-needs
> +    - debian-13-x86_64-gcc-debug
> +
>  qemu-smoke-x86-64-gcc:
>    extends: .qemu-smoke-x86-64
>    script:
> diff --git a/automation/scripts/qemu-driverdomains-x86_64.sh b/automation/scripts/qemu-driverdomains-x86_64.sh
> index c0241da54168..6a69282470ca 100755
> --- a/automation/scripts/qemu-driverdomains-x86_64.sh
> +++ b/automation/scripts/qemu-driverdomains-x86_64.sh
> @@ -23,7 +23,11 @@ if grep -q test=backend /proc/cmdline; then
>      brctl addbr xenbr0
>      ip link set xenbr0 up
>      ip addr add 192.168.0.1/24 dev xenbr0
> -    bash /etc/init.d/xendriverdomain start
> +    if [ -d /run/systemd ]; then
> +        systemctl start xendriverdomain
> +    else
> +        bash /etc/init.d/xendriverdomain start
> +    fi
>      # log backend-related logs to the console
>      tail -F /var/log/xen/xldevd.log /var/log/xen/xen-hotplug.log >>/dev/console 2>/dev/null &
>  else
> @@ -85,7 +89,11 @@ cat > etc/local.d/xen.start << EOF
>  
>  set -x
>  
> -bash /etc/init.d/xencommons start
> +if [ -d /run/systemd ]; then
> +    systemctl start xen-init-dom0.service
> +else
> +    bash /etc/init.d/xencommons start
> +fi
>  
>  xl list
>  
> @@ -102,6 +110,12 @@ cp ../bzImage ./root/
>  mkdir -p etc/default
>  echo 'XENCONSOLED_TRACE=all' >> etc/default/xencommons
>  mkdir -p var/log/xen/console
> +if [ -e etc/systemd/system.conf ]; then
> +    systemctl --root=. enable \
> +        xenstored.service \
> +        xenconsoled.service \
> +        xen-init-dom0.service
> +fi
>  fakeroot -i ../fakeroot-save mkfs.ext4 -d . ../dom0-rootfs.img 2048M
>  cd ..
>  rm -rf rootfs
> -- 
> git-series 0.9.1
> 
--8323329-1256635277-1765325069=:19429--


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 00:17:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 00:17:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182341.1505224 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT7tc-0002pa-Nv; Wed, 10 Dec 2025 00:17:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182341.1505224; Wed, 10 Dec 2025 00:17:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT7tc-0002pQ-KP; Wed, 10 Dec 2025 00:17:32 +0000
Received: by outflank-mailman (input) for mailman id 1182341;
 Wed, 10 Dec 2025 00:17:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8oeO=6Q=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vT7tb-0002pK-OH
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 00:17:31 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9c593f42-d55d-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 01:17:29 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id B6E60429C4;
 Wed, 10 Dec 2025 00:17:27 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DC64BC4CEF5;
 Wed, 10 Dec 2025 00:17:26 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9c593f42-d55d-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765325847;
	bh=M2tYE5GDHOfH0ckQN7SBShsPF0XGv4mFc6UJiZ0jVxg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=OIHmIyxA3uRxuAfnSJCDazAq4D9qPYxu2Hr0beJjgQi5XzSbYRS/Ze4xu67Rv06E3
	 4RzKt5b7lMVpKHKKUiKSGnMjxg5+g+unHBvQlbfhPFUv1Jkr/cHw3jgLPVawiO+nmH
	 GQJZhGE31nfvAghc9ll3WN2uLv/cBlNP300b+SFceikEWvnBQahXqLwUfHp8t3ROHA
	 zhzZ4HONJB0ss6PN2xuWngbR1lYpDdzWw589Z/Go5OTgQ8KYxUJ6ib2OSpfdL69doN
	 kfirz2g5GTY/58ljAQjshF4HCn+Db/EtPfz5xlZzipfhzLBk4htPQtwhgMq7eLMVK5
	 KMjeLKNUQ65GQ==
Date: Tue, 9 Dec 2025 16:17:25 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 04/12] Add linux-6.12.60-x86_64
In-Reply-To: <378aa7d93dc81118044c8d376f7500c656a2afe9.1764866136.git-series.marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2512091617200.19429@ubuntu-linux-20-04-desktop>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com> <378aa7d93dc81118044c8d376f7500c656a2afe9.1764866136.git-series.marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-106751490-1765325847=:19429"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-106751490-1765325847=:19429
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 4 Dec 2025, Marek Marczykowski-Górecki wrote:
> This is necessary for new Zen4 runner.
> Do not include Argo module in this build, as it isn't compatible with
> 6.12 yet.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Acked-by: Stefano Stabellini <sstabellini@kernel.org>

> ---
>  .gitlab-ci.yml | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index b230405..184d0b3 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -85,6 +85,12 @@ linux-6.6.56-x86_64:
>      ARGO_SHA: "cf73819cacc945baca1a7421e5836d1bd481739b"
>      ARGOEXEC_SHA: "d900429f6640acc6f68a3d3a4c945d7da60625d8"
>  
> +linux-6.12.60-x86_64:
> +  extends: .x86_64-artifacts
> +  script: ./scripts/build-linux.sh
> +  variables:
> +    LINUX_VERSION: 6.12.60
> +
>  microcode-x86:
>    extends: .x86_64-artifacts
>    script: ./scripts/x86-microcode.sh
> -- 
> git-series 0.9.1
> 
--8323329-106751490-1765325847=:19429--


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 00:18:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 00:18:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182350.1505234 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT7uW-0003JM-Vf; Wed, 10 Dec 2025 00:18:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182350.1505234; Wed, 10 Dec 2025 00:18:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT7uW-0003JF-SL; Wed, 10 Dec 2025 00:18:28 +0000
Received: by outflank-mailman (input) for mailman id 1182350;
 Wed, 10 Dec 2025 00:18:27 +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
 <SRS0=8oeO=6Q=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vT7uV-0003J6-DB
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 00:18:27 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be2eb78e-d55d-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 01:18:25 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 7D5D0433B1;
 Wed, 10 Dec 2025 00:18:24 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 83D42C4CEF5;
 Wed, 10 Dec 2025 00:18:23 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: be2eb78e-d55d-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765325904;
	bh=SYEX4jnRBLYGw6NEnh1ISPmSlYidErXLvJLw4gNuZWE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=E/tFdHKIq5fV52FiC+I6178EyZb00kZWYBgOS7YX1Sj0gWwPVnGRLcxJP9y1L4IiG
	 jpZc6qXlOEs5Gbt0gkgcWdrHavbwxHPwMGkyz4jCuiLRegqPwGZ0PVcXpPgPs/r7yQ
	 mjqVhlldDDqRueaHeAlt6Y5eyby0I/zHo84XDlkqdFD6Z+Jc30mBRtG+I8mK/VvbUT
	 m60EEI0KIfk9iwDV3yPmgkA3PD8oxaaNxa/VcIiC3NXAIdB/O95+3N5mkimNkaFa4i
	 70Dtncx0M8EsEi+kQpPXR9FeiNHOk9rLxu/sdRQQthLfoLgBQuQBR44OYRaEEc1WaR
	 FUGVzT4AcC6xw==
Date: Tue, 9 Dec 2025 16:18:22 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 05/12] Enable CONFIG_USB_RTL8152 in kernel for hw12
 runner
In-Reply-To: <9489737256953defce752f60d5d9bc413e75a35a.1764866136.git-series.marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2512091618160.19429@ubuntu-linux-20-04-desktop>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com> <9489737256953defce752f60d5d9bc413e75a35a.1764866136.git-series.marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-406630342-1765325904=:19429"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-406630342-1765325904=:19429
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 4 Dec 2025, Marek Marczykowski-Górecki wrote:
> It uses this USB network interface.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Acked-by: Stefano Stabellini <sstabellini@kernel.org>

> ---
> This was posted before at https://lore.kernel.org/xen-devel/20250411203336.585215-1-marmarek@invisiblethingslab.com/
> ---
>  scripts/build-linux.sh | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
> index 441b872..cf0e744 100755
> --- a/scripts/build-linux.sh
> +++ b/scripts/build-linux.sh
> @@ -32,6 +32,7 @@ case $UNAME in
>              | grep 'XEN' \
>              | grep '=m' \
>              | sed 's/=m/=y/g' >> .config
> +        ./scripts/config --enable USB_RTL8152
>          ;;
>  
>      aarch64)
> -- 
> git-series 0.9.1
> 
--8323329-406630342-1765325904=:19429--


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 00:20:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 00:20:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182364.1505243 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT7wm-0004o4-Bf; Wed, 10 Dec 2025 00:20:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182364.1505243; Wed, 10 Dec 2025 00:20:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT7wm-0004nx-99; Wed, 10 Dec 2025 00:20:48 +0000
Received: by outflank-mailman (input) for mailman id 1182364;
 Wed, 10 Dec 2025 00:20:47 +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
 <SRS0=8oeO=6Q=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vT7wl-0004nr-JS
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 00:20:47 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 11f5a76a-d55e-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 01:20:46 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 102F243961;
 Wed, 10 Dec 2025 00:20:45 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 435CDC4CEF5;
 Wed, 10 Dec 2025 00:20:44 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11f5a76a-d55e-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765326044;
	bh=uW7hXCLLvLptVhfObDre58YGWsbWWy5Abay7nQicnBA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=lixdRv7S6u/do0uAW26fnOfkNLiqLTS40sV/tgrkbGK5lw2E5QZF7jqjrHfrh4WWa
	 o37Dnl9OnQ02bWfipFUcPIQi1aQwtTS7mcykGjqLv4E30PVdoV5d7oZJO6VrN5jdhp
	 FRQNrYA6wiHZJvI05XX2H/ZlUyNRUzjaMe/hWEVeQU4eGi2xxmls4EIo8zWDnEjDGY
	 WQxjeCvT52OnxF1aYFZ/4qBD1BKT37/D5khaw6AZSpcE4VHMHZYxa05eM28/gD52vl
	 pX9vhJjIoYnaV+1vcnOTFPISTfMP+sy5xwb/9Jutm2E+Az1/GKTQLeJdnoOMjuATsb
	 k3GM10C9osSDA==
Date: Tue, 9 Dec 2025 16:20:42 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 06/12] Include git in the ARM64 build container too
In-Reply-To: <c404521c3598d4872a0a02155833f7f64cebcdab.1764866136.git-series.marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2512091620370.19429@ubuntu-linux-20-04-desktop>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com> <c404521c3598d4872a0a02155833f7f64cebcdab.1764866136.git-series.marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1184978092-1765326044=:19429"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1184978092-1765326044=:19429
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 4 Dec 2025, Marek Marczykowski-Górecki wrote:
> It will be used for fetching some Linux versions.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Acked-by: Stefano Stabellini <sstabellini@kernel.org>

> ---
>  images/alpine/3.18-arm64-build.dockerfile | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/images/alpine/3.18-arm64-build.dockerfile b/images/alpine/3.18-arm64-build.dockerfile
> index 25a8dbd..38464c9 100644
> --- a/images/alpine/3.18-arm64-build.dockerfile
> +++ b/images/alpine/3.18-arm64-build.dockerfile
> @@ -14,6 +14,7 @@ RUN <<EOF
>        DEPS=(# Base environment
>              build-base
>              curl
> +            git
>  
>              # Linux build deps
>              bison
> -- 
> git-series 0.9.1
> 
--8323329-1184978092-1765326044=:19429--


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 00:29:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 00:29:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182375.1505254 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT84s-0005TP-4r; Wed, 10 Dec 2025 00:29:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182375.1505254; Wed, 10 Dec 2025 00:29:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT84s-0005TI-19; Wed, 10 Dec 2025 00:29:10 +0000
Received: by outflank-mailman (input) for mailman id 1182375;
 Wed, 10 Dec 2025 00:29:09 +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
 <SRS0=8oeO=6Q=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vT84r-0005TC-6z
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 00:29:09 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3ce3678a-d55f-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 01:29:07 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 2774060173;
 Wed, 10 Dec 2025 00:29:06 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0C829C19421;
 Wed, 10 Dec 2025 00:29:04 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3ce3678a-d55f-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765326545;
	bh=ihZA4sxPC0kjsQSkhbkYSuN3J5dVRoWntDLSXxogXs0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=cw4g4beBSAu6OeCojHUKJPOdf8Zs5Z9ZqkN2weuGRWM/UZi58nbX8Xs4YpBSseQA9
	 XsL8SGZk862CTvsUMhglPD0C/9fDmFTNcHXbc9KJGueM7MnhpTRs1SduP9wVgVuk+0
	 5sY1/OAPF02QS73Ff1QjrEPB4eXDjBB1gHHlmCU3+h0//fQAqPSTnazjiyLYvlOk9m
	 iBPyCRxtdYpLBZh7vdXAFW4C68rlqc8EzbEXa3+Vm2OpxoqQeKIeVU465Jlal/MC9H
	 8IsmNxhT/81adCvBNwdDZwHJ0920/BLy4hGxF4HBxUjHRphvps08ohJ47mOu3r2eB/
	 QGHMTkWSI3I+A==
Date: Tue, 9 Dec 2025 16:29:02 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 07/12] Support building arbitrary Linux
 branch/tag/commit
In-Reply-To: <c7579b953d400d368f171e4dd56e1b7f879e386f.1764866136.git-series.marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2512091625190.19429@ubuntu-linux-20-04-desktop>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com> <c7579b953d400d368f171e4dd56e1b7f879e386f.1764866136.git-series.marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1554293381-1765326545=:19429"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1554293381-1765326545=:19429
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 4 Dec 2025, Marek Marczykowski-Górecki wrote:
> If LINUX_URL is set, fetch LINUX_VERSION from there. Go with "git
> init" + "git fetch" instead of "git clone" to support any of
> branch/tag/commit.
> 
> This also defines optional linux-git-* jobs which will build the thing
> if LINUX_GIT_VERSION and LINUX_GIT_URL variables are provided for the
> pipeline.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> ---
> The script variable and job variable need to have different names, so a
> pipeline variable won't override it for all jobs. While LINUX_VERSION /
> LINUX_GIT_VERSION is IMO okay, I'm not very happy about LINUX_URL /
> LINUX_GIT_URL. Any better ideas?

The problem is not LINUX_GIT_URL and LINUX_GIT_VERSION, those are good
names. The issue is ...

> ---
>  .gitlab-ci.yml         | 22 ++++++++++++++++++++++
>  scripts/build-linux.sh | 18 +++++++++++++-----
>  2 files changed, 35 insertions(+), 5 deletions(-)
> 
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 184d0b3..8d1deee 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -1,5 +1,9 @@
>  variables:
>    REGISTRY: registry.gitlab.com/xen-project/hardware/test-artifacts
> +  LINUX_GIT_VERSION:
> +    description: "branch/tag/commit for the linux-git jobs"
> +  LINUX_GIT_URL:
> +    description: "git url for the linux-git jobs"
>  
>  stages:
>    - build
> @@ -53,6 +57,15 @@ linux-6.6.86-arm64:
>    variables:
>      LINUX_VERSION: 6.6.86
>  
> +linux-git-arm64:
> +  extends: .arm64-artifacts
> +  script: ./scripts/build-linux.sh
> +  variables:
> +    LINUX_VERSION: $LINUX_GIT_VERSION
> +    LINUX_URL: $LINUX_GIT_URL
> +  rules:
> +  - if: $LINUX_GIT_VERSION && $LINUX_GIT_URL
> +
>  #
>  # x86_64 artifacts
>  #
> @@ -91,6 +104,15 @@ linux-6.12.60-x86_64:
>    variables:
>      LINUX_VERSION: 6.12.60
>  
> +linux-git-x86_64:
> +  extends: .x86_64-artifacts
> +  script: ./scripts/build-linux.sh
> +  variables:
> +    LINUX_VERSION: $LINUX_GIT_VERSION
> +    LINUX_URL: $LINUX_GIT_URL
> +  rules:
> +  - if: $LINUX_GIT_VERSION && $LINUX_GIT_URL
> +
>  microcode-x86:
>    extends: .x86_64-artifacts
>    script: ./scripts/x86-microcode.sh
> diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
> index cf0e744..1fc96d1 100755
> --- a/scripts/build-linux.sh
> +++ b/scripts/build-linux.sh
> @@ -12,11 +12,19 @@ COPYDIR="${WORKDIR}/binaries"
>  UNAME=$(uname -m)
>  
>  # Build Linux
> -MAJOR=${LINUX_VERSION%%.*}
> -curl -fsSLO \
> -    https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz
> -tar xf linux-"${LINUX_VERSION}".tar.xz
> -cd linux-"${LINUX_VERSION}"
> +if [[ -n "${LINUX_URL}" ]]; then
> +    mkdir linux
> +    cd linux
> +    git init
> +    git fetch --depth=1 "${LINUX_URL}" "${LINUX_VERSION}"
> +    git checkout FETCH_HEAD
> +else
> +    MAJOR=${LINUX_VERSION%%.*}
> +    curl -fsSLO \
> +        https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz
> +    tar xf linux-"${LINUX_VERSION}".tar.xz
> +    cd linux-"${LINUX_VERSION}"
> +fi

... the issue is detecting to fetch via git or via curl based on the
presence of a variable called "LINUX_URL". Technically 

https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz

is a a valid URL as well.

So I think you should keep LINUX_GIT_URL and LINUX_GIT_VERSION named as
they are, expose them to scripts/build-linux.sh, and detect the fetch
program based on the presence of LINUX_GIT_URL.

Ideally, we should not have LINUX_GIT_VERSION. Instead we should have a
a common LINUX_VERSION used in both git and curl cases.


>  make defconfig
>  ./scripts/config --enable BRIDGE
> -- 
> git-series 0.9.1
> 
--8323329-1554293381-1765326545=:19429--


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 00:29:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 00:29:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182381.1505263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT85J-0005ve-EN; Wed, 10 Dec 2025 00:29:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182381.1505263; Wed, 10 Dec 2025 00:29:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT85J-0005vX-BT; Wed, 10 Dec 2025 00:29:37 +0000
Received: by outflank-mailman (input) for mailman id 1182381;
 Wed, 10 Dec 2025 00:29:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8oeO=6Q=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vT85I-0005kp-17
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 00:29:36 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4bffb5cd-d55f-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 01:29:33 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 7209F43E52;
 Wed, 10 Dec 2025 00:29:31 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A5B08C4CEF5;
 Wed, 10 Dec 2025 00:29:30 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4bffb5cd-d55f-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765326571;
	bh=1mmUDbCAoNFoL5RBY/1GzIGyRbKZZbVL5YZQY3bBrKo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=kBD66QNeFC5bb6Gr++YrtfGNkryuSTHhOVey2hQwqPzm5LpMI9XAvqW/viRt+OKBf
	 8S0cvwCpif8U8pphamkoPxbwHWyjb41PSMuxQqml33bFe+OyLa8zOtMhxElgL+5H3Y
	 h8j9o1PDnkBCzYiZNK0yOxAf2Hc4RvjlJtGOqQAkByIXXME7hFWt8slVbhZE8qchIV
	 xrt8WkL5uz+jeokCqR7VxaHksmzsu9q9BFNSuKGEkiptWNcQE6GEa66OfRkJKMRwRP
	 0r37GqcDglNdyabxU4+rCsTGIl1qM3m5cltA1hqDom1nL47McNkKt2GN9TmwApy1Oi
	 MH4eddUxcrNHA==
Date: Tue, 9 Dec 2025 16:29:29 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 08/12] Save Linux config to artifacts too
In-Reply-To: <7c4a97691fb1c2fb88e169205ee768773bbf0603.1764866136.git-series.marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2512091629220.19429@ubuntu-linux-20-04-desktop>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com> <7c4a97691fb1c2fb88e169205ee768773bbf0603.1764866136.git-series.marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-436179441-1765326571=:19429"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-436179441-1765326571=:19429
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 4 Dec 2025, Marek Marczykowski-Górecki wrote:
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

> ---
>  scripts/build-linux.sh | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
> index 1fc96d1..80cc8a5 100755
> --- a/scripts/build-linux.sh
> +++ b/scripts/build-linux.sh
> @@ -50,6 +50,8 @@ esac
>  
>  make olddefconfig
>  
> +cp .config "${COPYDIR}/linux.config"
> +
>  case $UNAME in
>      x86_64)
>          make -j$(nproc) bzImage
> -- 
> git-series 0.9.1
> 
--8323329-436179441-1765326571=:19429--


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 00:36:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 00:36:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182401.1505273 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT8Br-0007s6-3d; Wed, 10 Dec 2025 00:36:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182401.1505273; Wed, 10 Dec 2025 00:36:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT8Br-0007ry-10; Wed, 10 Dec 2025 00:36:23 +0000
Received: by outflank-mailman (input) for mailman id 1182401;
 Wed, 10 Dec 2025 00:36:21 +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
 <SRS0=8oeO=6Q=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vT8Bp-0007rq-Td
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 00:36:21 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3e70b5e3-d560-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 01:36:20 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id C49E4601B5;
 Wed, 10 Dec 2025 00:36:17 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id CD8DEC4CEF5;
 Wed, 10 Dec 2025 00:36:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3e70b5e3-d560-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765326977;
	bh=clGeXfHgG5rIUDtE39mcMz8Kmg4o35P7lslX3yFy800=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=c2yNYScCzByXhriIbsBRPrWfjh6vbVsN51cz59b7Y+9mF2H1aHMPHtDyU9fPyOB1D
	 0i+kIDYXA/8h8fInmPRP4bijGVfQ8iqsuJtwoSRx1rXuQh9/FU6pUbWR7r4ROvor2H
	 n1i9uSo3VCqIo1tNocbJeH5rMYLBsKRqM8AaDi7/QUc2X8FM2QJsz0lznDGxcrqm+w
	 iQ5ZEHBvPpnbyH5J/1ZB+y1XN0HMi93OGkLf2zZPjxe0ajhUVdzjpQAgud4Sa+gUpt
	 bPcFiDrapfqDO93hyPoLJh/422BKCX30+HGSzLfapzg6RDpdBFppk+IgSw47sUVR6O
	 wLRFtb105vzlA==
Date: Tue, 9 Dec 2025 16:36:15 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 12/12] Setup ssh access to test systems
In-Reply-To: <ce8df51117f8f3696059e83444be57bb20aba80e.1764866136.git-series.marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2512091635410.19429@ubuntu-linux-20-04-desktop>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com> <ce8df51117f8f3696059e83444be57bb20aba80e.1764866136.git-series.marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1446938081-1765326977=:19429"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1446938081-1765326977=:19429
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 4 Dec 2025, Marek Marczykowski-Górecki wrote:
> For this add also bridge package, so xenbr0 can be configured with
> /etc/network/interfaces.
> This allows extracting more logs out of the test system.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
> Changes in v2:
> - do not allow passwordless login
> ---
>  scripts/alpine-rootfs.sh | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
> index 5945657..82cc416 100755
> --- a/scripts/alpine-rootfs.sh
> +++ b/scripts/alpine-rootfs.sh
> @@ -10,6 +10,8 @@ apk --no-cache upgrade
>  
>  PKGS=(
>      # System
> +    bridge
> +    dropbear
>      libgcc
>      openrc
>      udev
> @@ -70,6 +72,7 @@ rc-update add loopback sysinit
>  rc-update add bootmisc boot
>  rc-update add devfs sysinit
>  rc-update add dmesg sysinit
> +rc-update add dropbear boot
>  rc-update add hostname boot
>  rc-update add hwclock boot
>  rc-update add hwdrivers sysinit
> @@ -82,6 +85,7 @@ echo "ttyS0" >> /etc/securetty
>  echo "hvc0" >> /etc/securetty
>  echo "ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100" >> /etc/inittab
>  echo "hvc0::respawn:/sbin/getty -L hvc0 115200 vt100" >> /etc/inittab
> +echo "DROPBEAR_OPTS=\"-R\"" >> /etc/conf.d/dropbear
>  echo "rc_verbose=yes" >> /etc/rc.conf
>  echo > /etc/modules
>  passwd -d "root" root
> -- 
> git-series 0.9.1
> 
--8323329-1446938081-1765326977=:19429--


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 00:41:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 00:41:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182411.1505283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT8Gt-0001RM-Ll; Wed, 10 Dec 2025 00:41:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182411.1505283; Wed, 10 Dec 2025 00:41:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT8Gt-0001RF-Ik; Wed, 10 Dec 2025 00:41:35 +0000
Received: by outflank-mailman (input) for mailman id 1182411;
 Wed, 10 Dec 2025 00:41:34 +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
 <SRS0=8oeO=6Q=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vT8Gs-0001R9-At
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 00:41:34 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f88fb23f-d560-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 01:41:32 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 9389540B5C;
 Wed, 10 Dec 2025 00:41:30 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id CCCDEC4CEF5;
 Wed, 10 Dec 2025 00:41:29 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f88fb23f-d560-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765327290;
	bh=eKD6RJz/QwcbXSED/VfKYyIN46U7omHo3gBPg5aLi2o=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=tx9UYUyHCY53gK83OVEQpSN8EwpKo0Xg/agxXKCjbJb/bbbZ6aOpydzotaeqYJXAu
	 j9JIW3ayu3G3+Xhg0khvj9H95nw02B5p46a/GCR2BDA2TZl9rw4+pUJcWCK2tKFQRG
	 2qhNBQknQPyazuPe7hmY2YmstgA8CvBtWzPu0tfCfVuDQUjH2fFkEPC3lg4mX3NVHy
	 zzQnwFECo7ioZ/1g9dAGmO4Aptk8nStLK/nDipiO3PTf4SyPYeZx1oyom/tzQ12Ei2
	 whewAUrqbyNve32SIICqj5jxK40e/KJD8Yoe8a6Xy3mvznu6dz0tOv/8OMLMXhloVm
	 kwZTkloDd/+qQ==
Date: Tue, 9 Dec 2025 16:41:28 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 10/12] Prepare grub for booting x86_64 HVM domU from
 a disk
In-Reply-To: <18bbbbcc6cc0642c02b90a43d8a318a6f6193079.1764866136.git-series.marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2512091637490.19429@ubuntu-linux-20-04-desktop>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com> <18bbbbcc6cc0642c02b90a43d8a318a6f6193079.1764866136.git-series.marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1781162057-1765327290=:19429"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1781162057-1765327290=:19429
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 4 Dec 2025, Marek Marczykowski-Górecki wrote:
> The stubdomain test will use it
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> ---
>  scripts/alpine-rootfs.sh | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
> index e06e72b..7d0e70d 100755
> --- a/scripts/alpine-rootfs.sh
> +++ b/scripts/alpine-rootfs.sh
> @@ -94,5 +94,12 @@ cd /
>      echo -ne "dev\0proc\0run\0sys\0"
>  } | cpio -0 -R 0:0 -H newc -o | gzip > "${COPYDIR}/rootfs.cpio.gz"
>  
> +if [ "$UNAME" = "x86_64" ]; then
> +    # Prepare boot sector for HVM disk
> +    grub-mkimage -o ${COPYDIR}/grub-core.img \
> +        -O i386-pc -p '(hd0,msdos1)/boot/grub2' \
> +        boot part_msdos ext2 linux biosdisk configfile normal
> +fi

I am not opposed to this but I'll wait until I review the stubdom test
:-)


>  # Print the contents for the build log
>  zcat "${COPYDIR}/rootfs.cpio.gz" | cpio -tv
> -- 
> git-series 0.9.1
> 
--8323329-1781162057-1765327290=:19429--


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 00:52:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 00:52:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182423.1505293 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT8RK-0003Ys-Jx; Wed, 10 Dec 2025 00:52:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182423.1505293; Wed, 10 Dec 2025 00:52:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT8RK-0003Yl-H1; Wed, 10 Dec 2025 00:52:22 +0000
Received: by outflank-mailman (input) for mailman id 1182423;
 Wed, 10 Dec 2025 00:52:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8oeO=6Q=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vT8RI-0003Yf-FS
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 00:52:20 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 79aa7f53-d562-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 01:52:18 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 7BBAB60173;
 Wed, 10 Dec 2025 00:52:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C8564C4CEF5;
 Wed, 10 Dec 2025 00:52:14 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 79aa7f53-d562-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765327936;
	bh=AO0ZDUV3Dsr7al45Ge4YPmQDIrBz3DoAz+H9HFHfM6w=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Vd54VyvLVUOqy0jY0cBamONYY5j+CQEpFsIUfM5DdEhE91JIbY9KhIffNaSSipg0U
	 IPQHzNYBGiANZ4rhB25CNhXyIHbVF8WNW3J8XvS/avWA3bE0Hf5/a8xpW7QZtglC0D
	 cUaHct0odtKO8AkX/t5vbSLlkVeL4xLQWj8+Yb31jeXV056LkWt9IhzAHaUOncdP/W
	 g/OZFanaSvYx5NUXUkLmNPeR84X3xGnv91vSs1GczOKdjpELF8M5Cf+bGAxqIHs6fE
	 +MnRYtjvNoDiu2qA77N9bf9YksBUTkk5IJ8tQhZYSV/B999D6ULhYsBY1HmlRREwLn
	 InkvehC95GvXw==
Date: Tue, 9 Dec 2025 16:52:13 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] misra: address Rule 11.3 for NextMemoryDescriptor
 macro
In-Reply-To: <78112778d6fd5f720f7102db7125c844b747a962.1761242341.git.dmytro_prokopchuk1@epam.com>
Message-ID: <alpine.DEB.2.22.394.2512091651570.19429@ubuntu-linux-20-04-desktop>
References: <78112778d6fd5f720f7102db7125c844b747a962.1761242341.git.dmytro_prokopchuk1@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 23 Oct 2025, Dmytro Prokopchuk1 wrote:
> Given 'NextMemoryDescriptor()' macro is casting (UINT8 *) pointer to the
> (EFI_MEMORY_DESCRIPTOR *) pointer, which is not allowed by the MISRA C
> Rule 11.3 as they pointed to the different objects types.
> 
> This macro is a part of the EFI imported code ('xen/include/efi/') and
> is deviated with a SAF comment.
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

I saw Jan's comment but I think this is OK


> ---
>  docs/misra/safe.json        | 8 ++++++++
>  xen/arch/arm/efi/efi-boot.h | 1 +
>  2 files changed, 9 insertions(+)
> 
> diff --git a/docs/misra/safe.json b/docs/misra/safe.json
> index 3584cb90c6..c5e193e0f7 100644
> --- a/docs/misra/safe.json
> +++ b/docs/misra/safe.json
> @@ -124,6 +124,14 @@
>          },
>          {
>              "id": "SAF-15-safe",
> +            "analyser": {
> +                "eclair": "MC3A2.R11.3"
> +            },
> +            "name": "Rule 11.3: casting a pointer to object into a pointer to a different object",
> +            "text": "Violation due to the use of 'NextMemoryDescriptor()' macro is allowed, as that is EFI imported code."
> +        },
> +        {
> +            "id": "SAF-16-safe",
>              "analyser": {},
>              "name": "Sentinel",
>              "text": "Next ID to be used"
> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
> index 7844b9529e..a87004001b 100644
> --- a/xen/arch/arm/efi/efi-boot.h
> +++ b/xen/arch/arm/efi/efi-boot.h
> @@ -227,6 +227,7 @@ static EFI_STATUS __init efi_process_memory_map_bootinfo(EFI_MEMORY_DESCRIPTOR *
>              }
>          }
>  #endif
> +        /* SAF-15-safe casting a pointer */
>          desc_ptr = NextMemoryDescriptor(desc_ptr, desc_size);
>      }
>  
> -- 
> 2.43.0
> 


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 00:54:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 00:54:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182434.1505304 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT8TE-00044y-0Y; Wed, 10 Dec 2025 00:54:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182434.1505304; Wed, 10 Dec 2025 00:54:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT8TD-00044r-Ss; Wed, 10 Dec 2025 00:54:19 +0000
Received: by outflank-mailman (input) for mailman id 1182434;
 Wed, 10 Dec 2025 00:54:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8oeO=6Q=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vT8TC-00044l-SQ
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 00:54:18 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c0829429-d562-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 01:54:16 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id E9AF260129;
 Wed, 10 Dec 2025 00:54:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 53A36C4CEF5;
 Wed, 10 Dec 2025 00:54:14 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0829429-d562-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765328055;
	bh=71BKg7+FcwHN8iimys1TGEarRu0WPuZ0Idz+FI6Keos=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Q53LVZFrIUc8Jjtb5/VLTq2HSsoWWEwfEDf3T68KPqA5cRnZeHF8OW1vrXsLQNIsz
	 +WZVF+nLm1pQhXSjFir7zWPdqndjTXAkvMpxkJ4dQJt9VyoQNsIWeSz5i4JPdar6mI
	 ChKXAtDJvQn9swuxOvni2WsxBza4FLQtvnYLFIasTSuTicoUHQrM4iuEnG87s3lV2T
	 vDxtfwArpJO2w2lAqJv64Z2byf1YWAUAdlfnD010VEIVV0E35lozbfvDgwnt5jJpkY
	 SEQpdUAzm+y/m45IO4Kr7tQMQsO7+9wrV14RuMk3M3g0YnlWuEWo5fz1yET3fn0kPB
	 2ynT1olTy2R2A==
Date: Tue, 9 Dec 2025 16:54:13 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Stefano Stabellini <sstabellini@kernel.org>
cc: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] misra: address Rule 11.3 for NextMemoryDescriptor
 macro
In-Reply-To: <alpine.DEB.2.22.394.2512091651570.19429@ubuntu-linux-20-04-desktop>
Message-ID: <alpine.DEB.2.22.394.2512091653450.19429@ubuntu-linux-20-04-desktop>
References: <78112778d6fd5f720f7102db7125c844b747a962.1761242341.git.dmytro_prokopchuk1@epam.com> <alpine.DEB.2.22.394.2512091651570.19429@ubuntu-linux-20-04-desktop>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 9 Dec 2025, Stefano Stabellini wrote:
> On Thu, 23 Oct 2025, Dmytro Prokopchuk1 wrote:
> > Given 'NextMemoryDescriptor()' macro is casting (UINT8 *) pointer to the
> > (EFI_MEMORY_DESCRIPTOR *) pointer, which is not allowed by the MISRA C
> > Rule 11.3 as they pointed to the different objects types.
> > 
> > This macro is a part of the EFI imported code ('xen/include/efi/') and
> > is deviated with a SAF comment.
> > 
> > Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> 
> I saw Jan's comment but I think this is OK

I take it back I saw Dmytro managed to make a newer and better version
of this following Jan's comment. All good.


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 00:57:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 00:57:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182445.1505314 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT8WK-0004jW-EA; Wed, 10 Dec 2025 00:57:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182445.1505314; Wed, 10 Dec 2025 00:57:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT8WK-0004jP-AL; Wed, 10 Dec 2025 00:57:32 +0000
Received: by outflank-mailman (input) for mailman id 1182445;
 Wed, 10 Dec 2025 00:57:31 +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
 <SRS0=8oeO=6Q=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vT8WJ-0004jJ-Kv
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 00:57:31 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3381483b-d563-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 01:57:29 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 49F2160129;
 Wed, 10 Dec 2025 00:57:28 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5239DC4CEF5;
 Wed, 10 Dec 2025 00:57:26 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3381483b-d563-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765328247;
	bh=rS4zuLA1PHp1Nv0EUboDObLYpbhuiN+6dN9/VLMqJ18=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=WHluswvkiOuy7S1KK3Oe52BPGdrUO67NosAPs1K5ZnPmMso076t4KYUSv8eUFTHGw
	 XmBGsPo28f1bhWwX53E6CI7m2P4rqRdqDpTzbSUjrDETc1TbUAteb34CHtAaEoXtQi
	 +/SeLBzlywXjfJ1NGusgQS6sIPJohCy1JV2GYvc/7sWyNGS5fdK+nggxhMLZVkJjy6
	 MNUD/ccPE+9kvmzpuh2b9qk6MrLslEKVQ5nRBgroHAJYp6x7c0VkCg8FV1MPuc5A7Y
	 Vr/oVhJiHjrVCXqkOUzaFGmGfSCoigSD/PW5Kjgwd4lxAmz8SZBAG1JvHhzRxiqtk5
	 dnuPr8ADc2//g==
Date: Tue, 9 Dec 2025 16:57:25 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4] misra: consider conversion from UL or (void*) to
 function pointer as safe
In-Reply-To: <73ab67f9-d24f-42c8-a383-4c9db5de5bd4@suse.com>
Message-ID: <alpine.DEB.2.22.394.2512091656400.19429@ubuntu-linux-20-04-desktop>
References: <daa126218e11484c72f3de4b39186b6d9afd26c6.1761589314.git.dmytro_prokopchuk1@epam.com> <73ab67f9-d24f-42c8-a383-4c9db5de5bd4@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 28 Oct 2025, Jan Beulich wrote:
> On 27.10.2025 19:51, Dmytro Prokopchuk1 wrote:
> > Rule 11.1 states as following: "Conversions shall not be performed
> > between a pointer to a function and any other type."
> > 
> > This deviation from Rule 11.1 relies on both ABI definitions and compiler
> > implementations supported by Xen. The System V x86_64 ABI and the AArch64
> > ELF ABI define consistent and compatible representations (i.e., having
> > the same size and memory layout) for (void *), unsigned long, and function
> > pointers, enabling safe conversions between these types without data loss
> > or corruption. Additionally, GCC and Clang, faithfully implement the ABI
> > specifications, ensuring that the generated machine code conforms to these
> > guarantees. Developers must note that this behavior is not universal and
> > depends on platform-specific ABIs and compiler implementations.
> > 
> > Configure Eclair to avoid reporting violations for conversions from
> > unsigned long or (void *) to a function pointer.
> > 
> > Add a compile-time assertion into the file 'xen/common/version.c' to
> > confirm this conversion compatibility across X86 and ARM platforms
> > (assuming this file is common for them).
> > 
> > References:
> > - System V x86_64 ABI: https://gitlab.com/x86-psABIs/x86-64-ABI/-/jobs/artifacts/master/raw/x86-64-ABI/abi.pdf?job=build
> > - AArch64 ELF ABI: https://github.com/ARM-software/abi-aa/releases
> > - GCC: https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html
> > - Clang: https://clang.llvm.org/docs/CrossCompilation.html
> > 
> > Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> > Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> > ---
> > Changes in v4:
> > - the build assertions for the X86 and ARM are enabled by default (unconditionally)
> > - re-wrote description for the build_assertions() function
> > - excluded PowerPC architecture (not in scope of certification) from the check and wrote apropriate explanation
> > 
> > Link to v3:
> > https://patchew.org/Xen/0e72c83102668dfa6f14c4e8f9839b4a73d30b3d.1760458094.git.dmytro._5Fprokopchuk1@epam.com/
> > ---
> >  .../eclair_analysis/ECLAIR/deviations.ecl     |  8 ++++++
> >  docs/misra/deviations.rst                     |  8 +++++-
> >  docs/misra/rules.rst                          |  7 +++++-
> >  xen/common/version.c                          | 25 +++++++++++++++++++
> >  4 files changed, 46 insertions(+), 2 deletions(-)
> > 
> > diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
> > index 7f3fd35a33..219ba6993b 100644
> > --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> > +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> > @@ -375,6 +375,14 @@ constant expressions are required.\""
> >  }
> >  -doc_end
> >  
> > +-doc_begin="Conversion from unsigned long or (void *) to a function pointer can restore full information, provided that the source type has enough bits to restore it."
> > +-config=MC3A2.R11.1,casts+={safe,
> > +  "from(type(canonical(builtin(unsigned long)||pointer(builtin(void)))))
> > +   &&to(type(canonical(__function_pointer_types)))
> > +   &&relation(definitely_preserves_value)"
> > +}
> > +-doc_end
> > +
> >  -doc_begin="The conversion from a function pointer to a boolean has a well-known semantics that do not lead to unexpected behaviour."
> >  -config=MC3A2.R11.1,casts+={safe,
> >    "from(type(canonical(__function_pointer_types)))
> > diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> > index 3271317206..b3431ef24e 100644
> > --- a/docs/misra/deviations.rst
> > +++ b/docs/misra/deviations.rst
> > @@ -366,11 +366,17 @@ Deviations related to MISRA C:2012 Rules:
> >       - Tagged as `safe` for ECLAIR.
> >  
> >     * - R11.1
> > -     - The conversion from a function pointer to unsigned long or (void \*) does
> > +     - The conversion from a function pointer to unsigned long or '(void *)' does
> >         not lose any information, provided that the target type has enough bits
> >         to store it.
> >       - Tagged as `safe` for ECLAIR.
> >  
> > +   * - R11.1
> > +     - Conversion from unsigned long or '(void *)' to a function pointer can
> > +       restore full information, provided that the source type has enough bits
> > +       to restore it.
> > +     - Tagged as `safe` for ECLAIR.
> > +
> >     * - R11.1
> >       - The conversion from a function pointer to a boolean has a well-known
> >         semantics that do not lead to unexpected behaviour.
> > diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
> > index 4388010ec9..4e94251887 100644
> > --- a/docs/misra/rules.rst
> > +++ b/docs/misra/rules.rst
> > @@ -431,7 +431,12 @@ maintainers if you want to suggest a change.
> >       - All conversions to integer types are permitted if the destination
> >         type has enough bits to hold the entire value. Conversions to bool
> >         and void* are permitted. Conversions from 'void noreturn (*)(...)'
> > -       to 'void (*)(...)' are permitted.
> > +       to 'void (*)(...)' are permitted. Conversions from unsigned long or
> > +       '(void *)' to a function pointer are permitted.
> > +       Example::
> > +
> > +           unsigned long func_addr = (unsigned long)&some_function;
> > +           void (*restored_func)(void) = (void (*)(void))func_addr;
> >  
> >     * - `Rule 11.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_11_02.c>`_
> >       - Required
> > diff --git a/xen/common/version.c b/xen/common/version.c
> > index 553b97ba9b..674bd72b31 100644
> > --- a/xen/common/version.c
> > +++ b/xen/common/version.c
> > @@ -217,6 +217,31 @@ void __init xen_build_init(void)
> >  #endif /* CONFIG_X86 */
> >  }
> >  #endif /* BUILD_ID */
> > +
> > +/*
> > + * This assertion checks compatibility between 'unsigned long', 'void *',
> > + * and function pointers. This is true for most supported architectures,
> > + * including X86 (x86_64) and ARM (arm, aarch64).
> > + *
> > + * For more context on architecture-specific preprocessor guards, see
> > + * docs/misc/C-language-toolchain.rst.
> > + *
> > + * If porting Xen to a new architecture where this compatibility does not hold,
> > + * exclude that architecture from these checks and provide suitable commentary
> > + * and/or alternative checks as appropriate.
> > + */
> > +static void __init __maybe_unused build_assertions(void)
> > +{
> > +    /*
> > +     * Exclude architectures where function pointers are larger than data pointers:
> > +     * - PowerPC: uses function descriptors (code address + TOC pointer).
> > +     */
> 
> Yes, it uses function descriptors (aiui they consist of three longs, not just
> two though), but "function pointers are larger than data pointers" is still
> wrong there, which is why (as you indicated before) ...
> 
> > +#if !defined(__powerpc__)
> > +    BUILD_BUG_ON(sizeof(unsigned long) != sizeof(void (*)(void)));
> > +    BUILD_BUG_ON(sizeof(void *) != sizeof(void (*)(void)));
> > +#endif
> 
> ... these checks still will not cause build breakage even if enabled for PPC.
> At least aiui (what is being passed around are pointers to function
> descriptors). IOW I don't view it as justified to exclude PPC here, at least
> not yet.

Could the patch be committed without the #if !defined(__powerpc__) /
#endif chunk considering that according to Dmytro it should pass the
pipeline anyway?


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 01:01:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 01:01:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182460.1505324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT8Zw-0001dp-0L; Wed, 10 Dec 2025 01:01:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182460.1505324; Wed, 10 Dec 2025 01:01:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT8Zv-0001d4-T5; Wed, 10 Dec 2025 01:01:15 +0000
Received: by outflank-mailman (input) for mailman id 1182460;
 Wed, 10 Dec 2025 01:01:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8oeO=6Q=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vT8Zu-00014J-UG
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 01:01:14 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b8630b16-d563-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 02:01:12 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id C1A2860129;
 Wed, 10 Dec 2025 01:01:11 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 18189C4CEF5;
 Wed, 10 Dec 2025 01:01:09 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b8630b16-d563-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765328471;
	bh=Lq94aNmgtgqA/YmJ2lIveeijcUD3NIyxdaSwjWATQwM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=COZsmXgCEEWOzm8myvj6VbEh4nli3u1t3WS5dPAC6tghfG3yvYPb2jWI5RlnUZlS6
	 +UMiHI2A2WUyufs76JRUlijR3bs6G1EJiNZH1aB4+LVZHQ7LL3Zl5PDqfmUeYi6bwa
	 9g9dVRttRGZeOOcnMAbfufZbW2TY4bhyUonFqoTySNCLWxXNTHUci7COZ6xRvTN1RO
	 3IkgwgpB04cxxrJbnaeIqcfb2f1BtVPSsSmLJixBJPD5Yep5a8AX0/RkLUXA4kzZKB
	 sur3F3whH/D7NNfWhBxg7Ee/LqyRjUG87l2GW6OMLPGz3ZIOIzrvTR1KL66IdB4IOt
	 HJiv1YRMi+bsA==
Date: Tue, 9 Dec 2025 17:01:08 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] arm/gic_v3: fix MISRA C R2.1 violations in
 gicv3_do_LPI()
In-Reply-To: <b26772df8733dbd1ce6ea14a6e8b73f278db3a3d.1759174857.git.dmytro_prokopchuk1@epam.com>
Message-ID: <alpine.DEB.2.22.394.2512091700130.19429@ubuntu-linux-20-04-desktop>
References: <b26772df8733dbd1ce6ea14a6e8b73f278db3a3d.1759174857.git.dmytro_prokopchuk1@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 29 Sep 2025, Dmytro Prokopchuk1 wrote:
> The function 'gicv3_do_LPI()' violates MISRA C 2012 Rule 2.1, which states:
> "A project shall not contain unreachable code." This is due to the use of
> the 'BUG()' macro, which causes the function to never return.
> 
> This behavior is intentional and safe within the specific build configuration
> defined by 'CONFIG_HAS_ITS'. The 'BUG()' macro handles irrecoverable error
> conditions where LPIs must not occur without an ITS enabled.
> 
> A SAF comment has been added to document the justification for this violation,
> stating that it is safe within the context of the Xen project.
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
> Test CI pipeline:
> https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/2070455717
> ---
>  docs/misra/safe.json                  | 8 ++++++++
>  xen/arch/arm/include/asm/gic_v3_its.h | 1 +
>  2 files changed, 9 insertions(+)
> 
> diff --git a/docs/misra/safe.json b/docs/misra/safe.json
> index 3584cb90c6..4c227c1e8b 100644
> --- a/docs/misra/safe.json
> +++ b/docs/misra/safe.json
> @@ -124,6 +124,14 @@
>          },
>          {
>              "id": "SAF-15-safe",
> +            "analyser": {
> +                "eclair": "MC3A2.R2.1"
> +            },
> +            "name": "Rule 2.1: Unreachable code",
> +            "text": "It is safe because the BUG() macro is intentionally used to terminate execution when LPIs are enabled without an ITS."
> +        },
> +        {
> +            "id": "SAF-16-safe",
>              "analyser": {},
>              "name": "Sentinel",
>              "text": "Next ID to be used"
> diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include/asm/gic_v3_its.h
> index fc5a84892c..672dae7ac3 100644
> --- a/xen/arch/arm/include/asm/gic_v3_its.h
> +++ b/xen/arch/arm/include/asm/gic_v3_its.h
> @@ -229,6 +229,7 @@ static inline unsigned int vgic_v3_its_count(const struct domain *d)
>      return 0;
>  }
>  
> +/* SAF-15-safe */
>  static inline void gicv3_do_LPI(unsigned int lpi)
>  {
>      /* We don't enable LPIs without an ITS. */

Please replace the BUG with ASSERT_UNRECHEABLE and it should resolve the
problem without needed the extra deviation

> -- 
> 2.43.0
> 


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 01:05:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 01:05:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182470.1505333 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT8dN-0006bF-D0; Wed, 10 Dec 2025 01:04:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182470.1505333; Wed, 10 Dec 2025 01:04:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT8dN-0006b8-AR; Wed, 10 Dec 2025 01:04:49 +0000
Received: by outflank-mailman (input) for mailman id 1182470;
 Wed, 10 Dec 2025 01:04:48 +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
 <SRS0=8oeO=6Q=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vT8dM-0006b2-4O
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 01:04:48 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3791a481-d564-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 02:04:46 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id CE65660129;
 Wed, 10 Dec 2025 01:04:44 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5665CC4CEF5;
 Wed, 10 Dec 2025 01:04:43 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3791a481-d564-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765328684;
	bh=FLCoESsDvUcfNYgbhJE+32xjdx8w9pQv9O0VV0vuu5M=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=dnyf1eNfq5SyypnerN2yr/CfQEDIII5GOP88FPDMK62bwBJjDtxcT0JMQA9+jf+rj
	 VZEnSpFs6Vfxt39Au5snOZH6DnugeMtYwvpwdd7cpS+AvkwH6I4G/Ld1QwHodiPQRY
	 44zNXYTePUWxWJX3FhfrspQR6hFgxRtVEsUgbWca4x7bAhja2i0ouso99UXOlL8/zk
	 XR3MDFRpBjVc0cX+AOeHV/HoYJ9UXo38bszyA/B+3DOV6Dm/Lmxer25VTEtI9rJTIl
	 DA3vgeHZLSO6riVy36i2s6WLxCQXWaQLlbNbmkCPRAKShVNipkjbgT1XfJak2DwW70
	 E/adMiECa2sDw==
Date: Tue, 9 Dec 2025 17:04:42 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmukhin@xen.org
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v3] xen/domain: introduce DOMID_ANY
In-Reply-To: <20250924030630.122229-2-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2512091704020.19429@ubuntu-linux-20-04-desktop>
References: <20250924030630.122229-2-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 23 Sep 2025, dmukhin@xen.org wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Add a new symbol DOMID_ANY aliasing DOMID_INVALID to improve the readability
> of the code.
> 
> Update all relevant domid_alloc() call sites.
> 
> Amends: 2d5065060710 ("xen/domain: unify domain ID allocation")
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

> ---
> Changes since v2:
> - move DOMID_ANY back to the public header; add proper guards
> - CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2056319227
> - Link to v2: https://lore.kernel.org/xen-devel/20250920174732.1207847-2-dmukhin@ford.com/
> ---
>  tools/tests/domid/harness.h             |  1 +
>  tools/tests/domid/test-domid.c          | 12 ++++++------
>  xen/common/device-tree/dom0less-build.c |  2 +-
>  xen/common/domctl.c                     |  2 +-
>  xen/common/domid.c                      |  2 +-
>  xen/include/public/xen.h                |  5 +++++
>  6 files changed, 15 insertions(+), 9 deletions(-)
> 
> diff --git a/tools/tests/domid/harness.h b/tools/tests/domid/harness.h
> index 17eb22a9a854..610b564d4061 100644
> --- a/tools/tests/domid/harness.h
> +++ b/tools/tests/domid/harness.h
> @@ -41,6 +41,7 @@ extern unsigned long find_next_zero_bit(const unsigned long *addr,
>  
>  #define DOMID_FIRST_RESERVED            (100)
>  #define DOMID_INVALID                   (101)
> +#define DOMID_ANY                       DOMID_INVALID
>  
>  #endif /* _TEST_HARNESS_ */
>  
> diff --git a/tools/tests/domid/test-domid.c b/tools/tests/domid/test-domid.c
> index 5915c4699a5c..71cc4e7fd86d 100644
> --- a/tools/tests/domid/test-domid.c
> +++ b/tools/tests/domid/test-domid.c
> @@ -41,20 +41,20 @@ int main(int argc, char **argv)
>          domid_free(expected);
>  
>      /*
> -     * Test that that two consecutive calls of domid_alloc(DOMID_INVALID)
> +     * Test that that two consecutive calls of domid_alloc(DOMID_ANY)
>       * will never return the same ID.
>       * NB: ID#0 is reserved and shall not be allocated by
> -     * domid_alloc(DOMID_INVALID).
> +     * domid_alloc(DOMID_ANY).
>       */
>      for ( expected = 1; expected < DOMID_FIRST_RESERVED; expected++ )
>      {
> -        allocated = domid_alloc(DOMID_INVALID);
> +        allocated = domid_alloc(DOMID_ANY);
>          verify(allocated == expected,
>                 "TEST 3: expected %u allocated %u\n", expected, allocated);
>      }
>      for ( expected = 1; expected < DOMID_FIRST_RESERVED; expected++ )
>      {
> -        allocated = domid_alloc(DOMID_INVALID);
> +        allocated = domid_alloc(DOMID_ANY);
>          verify(allocated == DOMID_INVALID,
>                 "TEST 4: expected %u allocated %u\n", DOMID_INVALID, allocated);
>      }
> @@ -64,7 +64,7 @@ int main(int argc, char **argv)
>          domid_free(expected);
>      for ( expected = 1; expected < DOMID_FIRST_RESERVED / 2; expected++ )
>      {
> -        allocated = domid_alloc(DOMID_INVALID);
> +        allocated = domid_alloc(DOMID_ANY);
>          verify(allocated == expected,
>                 "TEST 5: expected %u allocated %u\n", expected, allocated);
>      }
> @@ -72,7 +72,7 @@ int main(int argc, char **argv)
>      /* Re-allocate last ID from [1..DOMID_FIRST_RESERVED - 1]. */
>      expected = DOMID_FIRST_RESERVED - 1;
>      domid_free(DOMID_FIRST_RESERVED - 1);
> -    allocated = domid_alloc(DOMID_INVALID);
> +    allocated = domid_alloc(DOMID_ANY);
>      verify(allocated == expected,
>             "TEST 6: expected %u allocated %u\n", expected, allocated);
>  
> diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
> index 9fd004c42af7..e2764768c983 100644
> --- a/xen/common/device-tree/dom0less-build.c
> +++ b/xen/common/device-tree/dom0less-build.c
> @@ -848,7 +848,7 @@ void __init create_domUs(void)
>          if ( (max_init_domid + 1) >= DOMID_FIRST_RESERVED )
>              panic("No more domain IDs available\n");
>  
> -        domid = domid_alloc(DOMID_INVALID);
> +        domid = domid_alloc(DOMID_ANY);
>          if ( domid == DOMID_INVALID )
>              panic("Error allocating ID for domain %s\n", dt_node_name(node));
>  
> diff --git a/xen/common/domctl.c b/xen/common/domctl.c
> index 954d79022645..ca91686a03d8 100644
> --- a/xen/common/domctl.c
> +++ b/xen/common/domctl.c
> @@ -410,7 +410,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>      case XEN_DOMCTL_createdomain:
>      {
>          /* NB: ID#0 is reserved, find the first suitable ID instead. */
> -        domid_t domid = domid_alloc(op->domain ?: DOMID_INVALID);
> +        domid_t domid = domid_alloc(op->domain ?: DOMID_ANY);
>  
>          if ( domid == DOMID_INVALID )
>          {
> diff --git a/xen/common/domid.c b/xen/common/domid.c
> index 2387ddb08300..76b7f3e7ae6e 100644
> --- a/xen/common/domid.c
> +++ b/xen/common/domid.c
> @@ -19,7 +19,7 @@ static DECLARE_BITMAP(domid_bitmap, DOMID_FIRST_RESERVED);
>   * @param domid Domain ID hint:
>   * - If an explicit domain ID is provided, verify its availability and use it
>   *   if ID is not used;
> - * - If DOMID_INVALID is provided, search [1..DOMID_FIRST_RESERVED-1] range,
> + * - If DOMID_ANY is provided, search [1..DOMID_FIRST_RESERVED-1] range,
>   *   starting from the last used ID. Implementation guarantees that two
>   *   consecutive calls will never return the same ID. ID#0 is reserved for
>   *   the first boot domain (currently, dom0) and excluded from the allocation
> diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
> index 82b9c05a76b7..29b7c81ba1bb 100644
> --- a/xen/include/public/xen.h
> +++ b/xen/include/public/xen.h
> @@ -608,6 +608,11 @@ DEFINE_XEN_GUEST_HANDLE(mmuext_op_t);
>  /* DOMID_INVALID is used to identify pages with unknown owner. */
>  #define DOMID_INVALID        xen_mk_uint(0x7FF4)
>  
> +#if defined(__XEN__) || defined(__XEN_TOOLS__)
> +/* Domain ID allocator: search [1..DOMID_FIRST_RESERVED-1] range. */
> +#define DOMID_ANY            DOMID_INVALID
> +#endif
> +
>  /* Idle domain. */
>  #define DOMID_IDLE           xen_mk_uint(0x7FFF)
>  
> -- 
> 2.51.0
> 


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 01:34:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 01:34:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182481.1505347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT95i-0003rc-Ix; Wed, 10 Dec 2025 01:34:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182481.1505347; Wed, 10 Dec 2025 01:34:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT95i-0003rV-GP; Wed, 10 Dec 2025 01:34:06 +0000
Received: by outflank-mailman (input) for mailman id 1182481;
 Wed, 10 Dec 2025 01:34:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RTTf=6Q=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vT95h-0003rP-TY
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 01:34:06 +0000
Received: from fhigh-b7-smtp.messagingengine.com
 (fhigh-b7-smtp.messagingengine.com [202.12.124.158])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4e50ceee-d568-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 02:34:02 +0100 (CET)
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 193317A017D;
 Tue,  9 Dec 2025 20:34:01 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-02.internal (MEProxy); Tue, 09 Dec 2025 20:34:01 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 9 Dec 2025 20:33:59 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4e50ceee-d568-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1765330440;
	 x=1765416840; bh=aN0KpIR5v/Qg+yp50S0vqMKUunNz1HiVh8xXAQ5ebcE=; b=
	z2kmxwBds/CZ3eOl93zme+Npn40J6//b0OBiLf8MRh/uF9ne8qZ2armCD96Kd2BL
	PhokxW/N5laPOB93ivIAn7C5vgWPUB1r8WedWcCay362E4WftWhsPHEmToyz7oFK
	sxYnuUllbGoleK9r5zPWcvYPELFI4/fYwAm04qqzglOVZd0lPMf6EFwBVT8p4fTt
	3zR7WXaf2/qq5Rmc3ABy9kaS7ZfNYfyr1S//L731dPUPTXWZPfXpn87aBVklKtTU
	J5ZqcCiEniVY5tlOgcoHJKqAPJHFUSEcLs2D2g4PQOp1NaxJESeo58+6ALqfO7+N
	Jwv50WsqfNry2ujVwrvu0w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
	1765330440; x=1765416840; bh=aN0KpIR5v/Qg+yp50S0vqMKUunNz1HiVh8x
	XAQ5ebcE=; b=VvJvBGit6IOx7Efy1Y6j85tHftmvGFkD+VqNf+TChsJ7TAs17DW
	JGPuNipyYOfChHf4xpj7fmWc9+yc/FgOPDhrxTFjbIHUO3IQcbU2k2AazlKnupIS
	WmNmhA7o12Z9/H0j4j7O2YKRRFK/RkAhUv7/Wse/opM+vaYqblB7t8/LYgHTS3Ng
	7+chXyBNzxr9KudMmQ/5jb23gKB7uxQme5cS+elzhK6KmZjlAWjB/48T6ss9gyYZ
	GgRSGonBLAvlLYl8cZ9XH1XA8eVZFNdxC2jIncC91mZXUmttjUUAbqS4PftRSfUi
	gMiYj9zBNdjgbIgylCwshQj1m1Kk7hrhdxw==
X-ME-Sender: <xms:CM44aVGCvCaa9mGfLEGSLJvssSj4FCvMGJ9Q8trL6iUS1yYQnpd5lg>
    <xme:CM44aRUDM58j64mW2Y9P-IM_TBh-ge_pZPHmSlf9chr5EkfJaioRKU4rUO0TY-6xZ
    um84qmo2oHAsunQ2fLoux2A1m4T67YfaRGKxjgL2cR7TmFXlg>
X-ME-Received: <xmr:CM44acI7wxh2dHH1o10vR3l985z3P5Dg5LGEDVMbQpf4uoiaarFHPVzIsuDcJchpHQg6ro02kK06qY8cchx7C0kUfhmrorEvloI>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvuddufecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgudelteef
    vefhfeehieetleeihfejhfeludevteetkeevtedtvdegueetfeejudenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgv
    lhdrohhrghdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhroh
    hjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhr
    ihigrdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtghomh
X-ME-Proxy: <xmx:CM44aZ_LyB4AUYCHVZRaCSr8Zt8JD-nMNxGhDrHlYVDQ08hxsvbbLg>
    <xmx:CM44aXLCRMjLQ0Ccq-yX2to92v3mYDls2hn9cL30SosHWrWuk7bfbw>
    <xmx:CM44aWmEp3foicr8M-8_WdskN_bRDaJcv0KAxjUj9EZRYgYdhIy-mw>
    <xmx:CM44aTPKABoX0kxH1gaT2JiLWt7VzI7THzAyLj8DsBi_sTMW96hZDA>
    <xmx:CM44aXroW_ix7TnVCXlfhQn6aZTN2R9pMIrAnU1oFTA-hixRxRzC0Kn0>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 10 Dec 2025 02:33:58 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v4 4/6] CI: Add driver domains tests
Message-ID: <aTjOBpuKMSO4LzzN@mail-itl>
References: <cover.b56a66dfe4d98db2f1cc8b1fe0c2091d02cebe38.1764989098.git-series.marmarek@invisiblethingslab.com>
 <cf2a2544fe27fedca5129b61912c064f4be08236.1764989098.git-series.marmarek@invisiblethingslab.com>
 <alpine.DEB.2.22.394.2512091534060.19429@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="RcdN1YP0Qc0lK4Ck"
Content-Disposition: inline
In-Reply-To: <alpine.DEB.2.22.394.2512091534060.19429@ubuntu-linux-20-04-desktop>


--RcdN1YP0Qc0lK4Ck
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 10 Dec 2025 02:33:58 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v4 4/6] CI: Add driver domains tests

On Tue, Dec 09, 2025 at 04:02:06PM -0800, Stefano Stabellini wrote:
> On Sat, 6 Dec 2025, Marek Marczykowski-G=C3=B3recki wrote:
> > Setup a simple two domU system. One with network backend, running
> > xendriverdomain service, and one with frontend, trying to ping the
> > backend.
> >=20
> > Contrary to other similar tests, use disk image instead of initrd, to
> > allow bigger rootfs without adding more RAM (for both dom0 and domU).
> > But keep using pxelinux as a bootloader as it's easier to setup than
> > installing grub on the disk. Theoretically, it could be started via dir=
ect
> > kernel boot in QEMU, but pxelinux is slightly closer to real-world
> > deployment.
> >=20
> > Use fakeroot to preserve file owners/permissions. This is especially
> > important for suid binaries like /bin/mount - without fakeroot, they
> > will end up as suid into non-root user.
> >=20
> > Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblething=
slab.com>
> > ---
> > Changes in v3:
> > - add fakeroot
> > - run ldconfig at the disk image creation time, to avoid running it at
> >   dom0/domU boot time (which is much slower)
> > Changes in v2:
> > - use heredoc
> > - limit ping loop iterations
> > - use full "backend" / "frontend" in disk image names
> > - print domU consoles directly to /dev/console, to avoid systemd-added
> >   messages prefix
> > - terminate test on failure, don't wait for timeout
> > ---
> >  automation/build/debian/13-x86_64.dockerfile    |   2 +-
> >  automation/gitlab-ci/test.yaml                  |   8 +-
> >  automation/scripts/qemu-driverdomains-x86_64.sh | 138 ++++++++++++++++=
+-
> >  3 files changed, 148 insertions(+)
> >  create mode 100755 automation/scripts/qemu-driverdomains-x86_64.sh
> >=20
> > diff --git a/automation/build/debian/13-x86_64.dockerfile b/automation/=
build/debian/13-x86_64.dockerfile
> > index 2c6c9d4a5098..6382bafbd5bd 100644
> > --- a/automation/build/debian/13-x86_64.dockerfile
> > +++ b/automation/build/debian/13-x86_64.dockerfile
> > @@ -55,7 +55,9 @@ RUN <<EOF
> > =20
> >          # for test phase, qemu-* jobs
> >          busybox-static
> > +        e2fsprogs
> >          expect
> > +        fakeroot
> >          ovmf
> >          qemu-system-x86
> > =20
> > diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test=
=2Eyaml
> > index 7b36f1e126ca..abc5339a74ab 100644
> > --- a/automation/gitlab-ci/test.yaml
> > +++ b/automation/gitlab-ci/test.yaml
> > @@ -656,6 +656,14 @@ qemu-alpine-x86_64-gcc:
> >      - *x86-64-test-needs
> >      - alpine-3.22-gcc
> > =20
> > +qemu-alpine-driverdomains-x86_64-gcc:
> > +  extends: .qemu-x86-64
> > +  script:
> > +    - ./automation/scripts/qemu-driverdomains-x86_64.sh 2>&1 | tee ${L=
OGFILE}
> > +  needs:
> > +    - *x86-64-test-needs
> > +    - alpine-3.22-gcc
> > +
> >  qemu-smoke-x86-64-gcc:
> >    extends: .qemu-smoke-x86-64
> >    script:
> > diff --git a/automation/scripts/qemu-driverdomains-x86_64.sh b/automati=
on/scripts/qemu-driverdomains-x86_64.sh
> > new file mode 100755
> > index 000000000000..c0241da54168
> > --- /dev/null
> > +++ b/automation/scripts/qemu-driverdomains-x86_64.sh
> > @@ -0,0 +1,138 @@
> > +#!/bin/bash
> > +
> > +set -ex -o pipefail
> > +
> > +dom0_rootfs_extra_comp=3D()
> > +dom0_rootfs_extra_uncomp=3D()
> > +
> > +cd binaries
> > +
> > +# DomU rootfs
> > +
> > +mkdir -p rootfs
> > +cd rootfs
> > +mkdir -p etc/local.d
> > +passed=3D"ping test passed"
> > +failed=3D"TEST FAILED"
> > +cat > etc/local.d/xen.start << EOF
> > +#!/bin/bash
> > +
> > +set -x
> > +
> > +if grep -q test=3Dbackend /proc/cmdline; then
> > +    brctl addbr xenbr0
> > +    ip link set xenbr0 up
> > +    ip addr add 192.168.0.1/24 dev xenbr0
> > +    bash /etc/init.d/xendriverdomain start
> > +    # log backend-related logs to the console
> > +    tail -F /var/log/xen/xldevd.log /var/log/xen/xen-hotplug.log >>/de=
v/console 2>/dev/null &
> > +else
> > +    ip link set eth0 up
> > +    ip addr add 192.168.0.2/24 dev eth0
> > +    timeout=3D6 # 6*10s
> > +    until ping -c 10 192.168.0.1; do
> > +        sleep 1
> > +        if [ \$timeout -le 0 ]; then
> > +            echo "${failed}"
> > +            exit 1
> > +        fi
> > +        ((timeout--))
> > +    done
> > +    echo "${passed}"
> > +fi
> > +EOF
> > +chmod +x etc/local.d/xen.start
> > +fakeroot sh -c "
> > +    zcat ../rootfs.cpio.gz | cpio -imd
> > +    zcat ../xen-tools.cpio.gz | cpio -imd
> > +    ldconfig -r .
> > +    touch etc/.updated
> > +    mkfs.ext4 -d . ../domU-rootfs.img 1024M
>=20
> Do we really need 1GB? I would rather use a smaller size if possible.
> I would rather use as little resources as possible on the build server
> as we might run a few of these jobs in parallel one day soon.

This will be a sparse file, so it won't use really all the space. But
this size is the upper bound of what can be put inside.
That said, it's worth checking if sparse files do work properly on all
runners in /build. AFAIR some older docker versions had issues with that
(was it aufs not supporting sparse files?).

> Moreover this script will be run inside a container which means this
> data is probably in RAM.

Are runners configured to use tmpfs for /build? I don't think it's the
default.

> The underlying rootfs is 25M on both ARM and x86. This should be at most
> 50M.

Rootfs itself is small, but for driver domains it needs to include
toolstack too, and xen-tools.cpio is over 600MB (for debug build).
I might be able to pick just the parts needed for the driver domain (xl
with its deps, maybe some startup scripts, probably few more files), but
it's rather fragile.

> > +"
> > +cd ..
> > +rm -rf rootfs
> > +
> > +# Dom0 rootfs
> > +mkdir -p rootfs
> > +cd rootfs
> > +fakeroot -s ../fakeroot-save sh -c "
> > +    zcat ../rootfs.cpio.gz | cpio -imd
> > +    zcat ../xen-tools.cpio.gz | cpio -imd
> > +    ldconfig -r .
> > +    touch etc/.updated
> > +"
> > +mkdir -p root etc/local.d
> > +cat > root/backend.cfg << EOF
> > +name=3D"backend"
> > +memory=3D512
> > +vcpus=3D1
> > +kernel=3D"/root/bzImage"
> > +extra=3D"console=3Dhvc0 root=3D/dev/xvda net.ifnames=3D0 test=3Dbacken=
d"
> > +disk=3D[ '/root/domU-rootfs-backend.img,raw,xvda,rw' ]
> > +EOF
> > +cat > root/frontend.cfg << EOF
> > +name=3D"frontend"
> > +memory=3D512
> > +vcpus=3D1
> > +kernel=3D"/root/bzImage"
> > +extra=3D"console=3Dhvc0 root=3D/dev/xvda net.ifnames=3D0 test=3Dfronte=
nd"
> > +disk=3D[ '/root/domU-rootfs-frontend.img,raw,xvda,rw' ]
> > +vif=3D[ 'bridge=3Dxenbr0,backend=3Dbackend' ]
> > +EOF
> > +
> > +cat > etc/local.d/xen.start << EOF
> > +#!/bin/bash
> > +
> > +set -x
> > +
> > +bash /etc/init.d/xencommons start
> > +
> > +xl list
> > +
> > +tail -F /var/log/xen/console/guest-backend.log 2>/dev/null | sed -e "s=
/^/(backend) /" >>/dev/console &
> > +tail -F /var/log/xen/console/guest-frontend.log 2>/dev/null | sed -e "=
s/^/(frontend) /" >>/dev/console &
> > +xl -vvv create /root/backend.cfg
> > +xl -vvv create /root/frontend.cfg
> > +EOF
> > +chmod +x etc/local.d/xen.start
> > +
> > +cp ../domU-rootfs.img ./root/domU-rootfs-backend.img
> > +cp ../domU-rootfs.img ./root/domU-rootfs-frontend.img
> > +cp ../bzImage ./root/
> > +mkdir -p etc/default
> > +echo 'XENCONSOLED_TRACE=3Dall' >> etc/default/xencommons
> > +mkdir -p var/log/xen/console
> > +fakeroot -i ../fakeroot-save mkfs.ext4 -d . ../dom0-rootfs.img 2048M
>=20
> Same here. Also 2GB might not be sufficient to contain 2 copies of
> domU-rootfs.img, given that domU-rootfs.img is 1GB.

See the note about sparse files.

> If we bring down domU-rootfs.img to 50M, then this could be 150M.
>=20
>=20
> > +cd ..
> > +rm -rf rootfs
> > +
> > +cd ..
> > +
> > +cat >> binaries/pxelinux.0 << EOF
> > +#!ipxe
> > +
> > +kernel xen console=3Dcom1 console_timestamps=3Dboot
> > +module bzImage console=3Dhvc0 root=3D/dev/sda net.ifnames=3D0
> > +boot
> > +EOF
> > +
> > +# Run the test
> > +rm -f smoke.serial
> > +export TEST_CMD=3D"qemu-system-x86_64 \
> > +    -cpu qemu64,+svm \
> > +    -m 2G -smp 2 \
> > +    -monitor none -serial stdio \
> > +    -nographic \
> > +    -device virtio-net-pci,netdev=3Dn0 \
> > +    -netdev user,id=3Dn0,tftp=3Dbinaries,bootfile=3D/pxelinux.0 \
> > +    -drive file=3Dbinaries/dom0-rootfs.img,format=3Draw"
> > +
> > +export TEST_LOG=3D"smoke.serial"
> > +export BOOT_MSG=3D"Latest ChangeSet: "
> > +export LOG_MSG=3D"Domain-0"
> > +# exit early on test failure too, check if it was success below
> > +export PASSED=3D"$passed|$failed"
> > +
> > +./automation/scripts/console.exp | sed 's/\r\+$//'
> > +
> > +grep "$passed" smoke.serial
> > --=20
> > git-series 0.9.1
> >=20


--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--RcdN1YP0Qc0lK4Ck
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmk4zgYACgkQ24/THMrX
1yzH+wf/RcYM3ruMXW/OmAR8bHUp8A6IrnQs8PPevuqR1ZyQegRvMXvFlOESSBKu
CuD9DJynGf8cHNn+ECDta3buoLlKGnHSdusfiEwCnusa5/MNBIu5k391O75hZNnp
yBhSsb9iP92tzCmceR9E6P/X5Q2L8N78DRvpdbPgh8IaDu0VKX/4s7TPsToyBSle
uvGPUUressz38TKym1t700bVTEeLf+PXBjvWHye3Lmd9JM9Pcp1+eh4/geTljitn
R9LCNzVZ7YuWYBEEOYR+ZX2vYIU7Zqry6ou+CwWmR5V9utrnhtcp3RrCYoBT72Dg
p75t4wuCPDhy7i6CIdA+xg8QVSpL6w==
=4aw/
-----END PGP SIGNATURE-----

--RcdN1YP0Qc0lK4Ck--


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 01:48:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 01:48:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182491.1505357 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT9Js-0006J0-MQ; Wed, 10 Dec 2025 01:48:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182491.1505357; Wed, 10 Dec 2025 01:48:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT9Js-0006It-Jr; Wed, 10 Dec 2025 01:48:44 +0000
Received: by outflank-mailman (input) for mailman id 1182491;
 Wed, 10 Dec 2025 01:48:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RTTf=6Q=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vT9Jr-0006In-9r
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 01:48:43 +0000
Received: from fhigh-b7-smtp.messagingengine.com
 (fhigh-b7-smtp.messagingengine.com [202.12.124.158])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 59d39572-d56a-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 02:48:40 +0100 (CET)
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 63E787A021B;
 Tue,  9 Dec 2025 20:48:39 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-05.internal (MEProxy); Tue, 09 Dec 2025 20:48:39 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 9 Dec 2025 20:48:38 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 59d39572-d56a-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1765331319;
	 x=1765417719; bh=LzI1+sQ8xf2Ln6wZtfX0c6hRW5BXLELnAgDBiIDXSfc=; b=
	yHroWnzuIO+Ql9QzigZMTeKmPcD2TEtMU85e90NTqMsIeWTGXHqvWxEs82jjj4sg
	Bh8PnvFaFzRD5TLZQBOo3rQCsE8t3RQTki2k1i+bTvW9ngp5zCF5zoX/JLuDkV8k
	9VkKAEtndu4XMLB6pt2CYkxWcO9jIyxA8ekyBqiU4gAF7yZ0ihPlhRV8qkN6QjYc
	aqvRsSg7kB8ktZr/tcngTmvMZ4tubG6/8htho/z6x7PktYoU+kLRiPeBTr5qDxPX
	P+j6eFJ3xokGPyUYDnGal87s0OAMgqrt5A8nfNpHS7+ekfXIrbTyB+kNU+ExxF/J
	+0T7pdXepM9WpXeCbasThQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
	1765331319; x=1765417719; bh=LzI1+sQ8xf2Ln6wZtfX0c6hRW5BXLELnAgD
	BiIDXSfc=; b=r/gG61jPR66Ii44GJ53vO774RGbL2yNQGiZFo4w8eBi5j++4iOD
	aOHi8CcXf2GzZ6sFoIEjOZroozGubvJb0TAJtpz10lQN1ZihExnG5bmVCqH4s1FO
	9OtLjRMiBgoDlfhoqCs1PwiEc+xYxWLiHpC39Useq5GmhUcXsyE0hQymt3bTbqvp
	aX0yRwCO8UcNV3za5AOWwtXNjTT1kPYOljUSUOZTrrvrPUre+nCHhqV6lswmObxQ
	tnkVqUp0Adj2jzVjG7mRVaPJFq4A2GBNqwomabN+MUFYstgeTk/ssFAuyp+dgEEF
	R5pn99dxC/FtwqNP5eW2QTsWV7EeIRWh+Xg==
X-ME-Sender: <xms:d9E4aaBNDJBDwmgptYAwT8nzsNvVJvFMHVEd2jWd6-WS8ZC7r1A26A>
    <xme:d9E4abiNqRUYCutLdhkvhFZDR1pZbRfAZiDqA9tMxZfgvlMHPPbl8iR2Osxc2ICoI
    Py7dNaS3UZJcbRsn9Z6Sohodo-DUJb12Q5jNp29FSnz5lHlxw>
X-ME-Received: <xmr:d9E4aSm1DjJn2hgY-xfOcrUFMu3KRi0n3ZYLhIQMDhpras-D026IMRoqJS1AYlVqiSoCSMFC64pUqqK0gCnClvuZAFr3al0jjDg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvudduiecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgudelteef
    vefhfeehieetleeihfejhfeludevteetkeevtedtvdegueetfeejudenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgv
    lhdrohhrghdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhroh
    hjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhr
    ihigrdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtghomh
X-ME-Proxy: <xmx:d9E4aXoG8u_TtFGgn3I6By_mqsk6LlSagonx-_SJmxNj3Ign7UAAHg>
    <xmx:d9E4abGTlw1J-0eY3kXS4bFVTAkr0FvjgMPxmwIDrtEz-Xg_7HnmPQ>
    <xmx:d9E4aTw2_esq-4NkAFqKTTk87o3RLkMYp82dz31vwMMcrOSXlFxorg>
    <xmx:d9E4aQoTxYi0YqV0LJ1AKLWI_qn6h3YKTrwm6VDiY2_QGJ1Z8oJcig>
    <xmx:d9E4aaGIb417JSnD_jV9_rMcfc1YzzqsPFFuL8o2YALOq5UtTaEFejoT>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 10 Dec 2025 02:48:36 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v4 1/6] automation: switch to alpine:3.22
Message-ID: <aTjRdE_tUJIfp8Wi@mail-itl>
References: <cover.b56a66dfe4d98db2f1cc8b1fe0c2091d02cebe38.1764989098.git-series.marmarek@invisiblethingslab.com>
 <94b63011f3a0969471425bb0f0677b20e16b8985.1764989098.git-series.marmarek@invisiblethingslab.com>
 <alpine.DEB.2.22.394.2512091506260.19429@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="W4IE+oy/zWb6cnyn"
Content-Disposition: inline
In-Reply-To: <alpine.DEB.2.22.394.2512091506260.19429@ubuntu-linux-20-04-desktop>


--W4IE+oy/zWb6cnyn
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 10 Dec 2025 02:48:36 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v4 1/6] automation: switch to alpine:3.22

On Tue, Dec 09, 2025 at 03:07:46PM -0800, Stefano Stabellini wrote:
> On Sat, 6 Dec 2025, Marek Marczykowski-G=C3=B3recki wrote:
> > Alpine 3.18 is EOL. This patch updates Alpine to the latest stable
> > Alpine release - 3.22.
> >=20
> > Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblething=
slab.com>
> > ---
> > Changes in v4:
> > - fix containerize script
> > Changes in v2:
> > Originally this patch was updating to 3.19 for upcoming stubdomain tests
> > to get dracut-core package. But 3.19 is getting EOL very soon too.
>=20
> This one escaped:
>=20
> alpine-3.18-gcc-debug-arm64-mpu:
>   extends: .gcc-arm64-build-debug
>   variables:
>     CONTAINER: alpine:3.18-arm64v8
>     HYPERVISOR_ONLY: y
>     EXTRA_XEN_CONFIG: |
>       CONFIG_XEN_START_ADDRESS=3D0x0
>       CONFIG_MPU=3Dy
>       CONFIG_UNSUPPORTED=3Dy
>=20
> was it on purpose?

Right, I guess it was added after I made previous version of this
patch...

> You also might want to rename 3.18 to3.22 in docs/misc/ci.rst

Yes.

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--W4IE+oy/zWb6cnyn
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmk40XQACgkQ24/THMrX
1yzAwAf+Mv0iiLU2D+3BMWMZYpq2Rqosb2RfFUDIsg/DYZS+YcirHRaiqg5x02Jp
43goIRjzaP7BXXWGMfa2pVi2EutgK5j7U/ei4ExDNptcpqLxIuDP9dMN1cDOB2Lt
/trfJpXKJAvouM6j2agDeR1SiCt3et1HoC56sYFjpNnp8+8ysfChhp0JdUPT2Ikb
xI268k5KmfT91ZBW5eb9ooUmyadDDimDlbW242WIxtFGxFiuieKAKD8pb3lYtscE
F0986uXij+bpJm8MlyE8UIWoijOaC5cP7pD/ZQvyJfOVU+IzViWT1U4hNbxIiNPt
dqDhQu/TeelnU7BWB05zGOt7xFk2Ww==
=1HDx
-----END PGP SIGNATURE-----

--W4IE+oy/zWb6cnyn--


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 01:54:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 01:54:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182505.1505369 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT9P7-0007sr-Dh; Wed, 10 Dec 2025 01:54:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182505.1505369; Wed, 10 Dec 2025 01:54:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT9P7-0007sk-9q; Wed, 10 Dec 2025 01:54:09 +0000
Received: by outflank-mailman (input) for mailman id 1182505;
 Wed, 10 Dec 2025 01:54:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RTTf=6Q=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vT9P5-0007se-Qw
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 01:54:07 +0000
Received: from fhigh-b7-smtp.messagingengine.com
 (fhigh-b7-smtp.messagingengine.com [202.12.124.158])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1b852086-d56b-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 02:54:05 +0100 (CET)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 5D0C27A019D;
 Tue,  9 Dec 2025 20:54:04 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-04.internal (MEProxy); Tue, 09 Dec 2025 20:54:04 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 9 Dec 2025 20:54:03 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1b852086-d56b-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1765331644;
	 x=1765418044; bh=yMFPRLeoM8jfJMeveP0/VibaSV0LekSZ4zGY9iaKxWo=; b=
	L4ultSxkf+d+o266wMx/qrcWD3NLlMppoY8vGLuxNc0YcgrJOKAXYfKlFTAeKYoh
	ZCUHN3ohcFCcucxNp/CSKyrPcWS8n1g3FpXYA8LRALbgpDM7SLNZ3XO50fWxTtCt
	KAkQsTiBhJcItw4zJii3NXQJKZdXgEDpsIUWGnJSrIR5WHo+s5q9Y1ikBidKK8/m
	2bJKxF/Ei9KZ90I1f7U2SSPL3CnIiZOmozUlZcRb5XIhDZ+wIFEV4FVamXeKl3d7
	+5rTMm4zbgwfUH2/lrRZLjPE5s9GvWe0RKnAQbn2IHYGdfqvzvB9HN9QKhTKi4S1
	UM9xoz7W5oMJRRwKmu/nEA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
	1765331644; x=1765418044; bh=yMFPRLeoM8jfJMeveP0/VibaSV0LekSZ4zG
	Y9iaKxWo=; b=I49QDDWNBZCcj6GlUNvIwNPNavEaqXuCcD8832axcFcFrS7REOI
	FXwWZCRKBM8uYDV4sFhTsxFmv998kUd58B621vwPilvdEHD1OpW3e3dRDmoDd9TP
	bx9f3agx2ji9lM7AqFzRfG6F9M++55ImnHLinPk67gqw7lJWRKWpiqlv5MZpOnXe
	59kfLB5kSJ6RffBJFoFcGcXp0aUSo9L5PQmksgztI56uhQBJ8Ddsv1M6w4pleEv/
	aFBDkNRAJHyDXl3ks+wsSksJiOuqjizKMEr8V8F6hKV34GyOcFM4mFZTHAYy6JrP
	Nuv1ScH42Sc4mAEne6sBPZLJ976p9/jSGHg==
X-ME-Sender: <xms:vNI4aWzpbGP_dwUSvutqm9vylY0DaBv6Z7NCOAm2Lq6rcyAX-qVpHw>
    <xme:vNI4aZQr1WnC_hM2cRAYHjzzwcOysV0C6Q260UWyP2yZGd-yPcI4ZbQpKPzXyVwk4
    88YxJfnTuRtxVt52eyojWBFQoNHnwIcrQlr3VzDmkSaEOp7Wg>
X-ME-Received: <xmr:vNI4adWTRIf8vdKc8ZZQHWdde6GeN8pkqjjuYh91poVF4HDmPaDavu0NIfZmehec2Dnfq1MmDqM_WM-7XWjnTSWJhmHMJpNBCm8>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvuddujecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgudelteef
    vefhfeehieetleeihfejhfeludevteetkeevtedtvdegueetfeejudenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgv
    lhdrohhrghdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhroh
    hjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhr
    ihigrdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtghomh
X-ME-Proxy: <xmx:vNI4abZdgAwgP0rbo6bKi0iqMwvRGbUDBymfdNdxtSIGJ3neTkY-IQ>
    <xmx:vNI4aT2g4otQTrbZkyiGynyPRfCBzBzp4at-W91rT2IJyr5IBEXMmQ>
    <xmx:vNI4adhVRxjCVZiozOhQ7sC1UYKI3whHRRFctyVdHgEXtdXt_P5_lQ>
    <xmx:vNI4aXawimgEFPQtwLpEdwegtUfp91lteoeLCJmufKCx0JeHwaI9ng>
    <xmx:vNI4aU32AWtgESe-fr9GCtof1FoDMFj374vbqzIBZEFgP6g9O412gBFP>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 10 Dec 2025 02:54:01 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v4 2/6] CI: extract qubes test container
Message-ID: <aTjSueQPKmjmuLj0@mail-itl>
References: <cover.b56a66dfe4d98db2f1cc8b1fe0c2091d02cebe38.1764989098.git-series.marmarek@invisiblethingslab.com>
 <ca2b4dfc19441f2ff609b197b4e97805ae2ef2ba.1764989098.git-series.marmarek@invisiblethingslab.com>
 <alpine.DEB.2.22.394.2512091508500.19429@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="YcNbIcUxKP1fGIyi"
Content-Disposition: inline
In-Reply-To: <alpine.DEB.2.22.394.2512091508500.19429@ubuntu-linux-20-04-desktop>


--YcNbIcUxKP1fGIyi
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 10 Dec 2025 02:54:01 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v4 2/6] CI: extract qubes test container

On Tue, Dec 09, 2025 at 03:12:06PM -0800, Stefano Stabellini wrote:
> On Sat, 6 Dec 2025, Marek Marczykowski-G=C3=B3recki wrote:
> > -  \
> > -  # qemu build deps
> > -  glib-dev \
> > -  libattr \
> > -  libcap-ng-dev \
> > -  pixman-dev \
>=20
> it would be good to mention in the commit message that the QEMU
> build dependency packages are not needed anymore

TBH, I'm not sure why they were here in the first place, none of the
build jobs for ARM64 build QEMU, and commit adding those initially (for
Alpine 3.12) doesn't tell either. I guess it's copy&paste from x86 one?

> anyway:
>=20
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

Thanks.

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--YcNbIcUxKP1fGIyi
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmk40rkACgkQ24/THMrX
1yz20wf9HUNh+aI+BGudwSNGVy1WROGbB+7KnDgeQwU6VYTdCzvrG2deWlpIHb6A
YNoMgaw/Q4f29G0+7ghytek5y44hX3yoMvPINOqNC3r3f0cpa2spw5wUegbI3Gw6
34MI+shE20XUeFius14fq0Ek0TGqTwp5NRUjSBZEYjELEGPUOD9gj+aFm1ZOpzGx
wVGpyJ5r4PGYaaLyM99rnOMNfchjkLA2HqW0PgEh8w+k24IhiG/5zdmV/rboQ5FI
l22ySANB1R64xubNAu11CclmIMue5Q5rLxyn9Q3hDqZ2gGRq7krd5+JumC72zsxR
i4ItVOi7ZDeQiD7hHtCKfOP/YEgLxA==
=sKyG
-----END PGP SIGNATURE-----

--YcNbIcUxKP1fGIyi--


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 02:03:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 02:03:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182515.1505377 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT9Xs-0001pg-4v; Wed, 10 Dec 2025 02:03:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182515.1505377; Wed, 10 Dec 2025 02:03:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vT9Xs-0001pZ-2E; Wed, 10 Dec 2025 02:03:12 +0000
Received: by outflank-mailman (input) for mailman id 1182515;
 Wed, 10 Dec 2025 02:03:10 +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
 <SRS0=RTTf=6Q=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vT9Xq-0001pT-O5
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 02:03:10 +0000
Received: from fhigh-b7-smtp.messagingengine.com
 (fhigh-b7-smtp.messagingengine.com [202.12.124.158])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5f37255a-d56c-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 03:03:08 +0100 (CET)
Received: from phl-compute-11.internal (phl-compute-11.internal [10.202.2.51])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 794137A011B;
 Tue,  9 Dec 2025 21:03:07 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-11.internal (MEProxy); Tue, 09 Dec 2025 21:03:07 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 9 Dec 2025 21:03:06 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5f37255a-d56c-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1765332187;
	 x=1765418587; bh=4I0nkr8i8c3PoewggU8q4XmJwBA8i9gKRowua0k6lTc=; b=
	lGR3Xko0zbn6H4/9sS1UoRSkG9XQd1DMimoYfV2EW8vPDTJLSRkpWqfEklJQal6/
	ZbOjGGx1YEvdxwpJ3A0fPsKgjJ7gMRHonjmNFwfKxomLYCC84iwRF2+uUpYVfDlB
	dlVt5RtCkdGmpJFacmnAeSY9R+LSLWd10mYclPbv+HQmQrI0Y5WmtA9VhtpJUMLO
	KIHzDpmbprKtJ/UWEpcTE+hjNwEzmFsb15c1N5yK21hV997HN07sGC3753HJr0BN
	r+9Ma+z4RkTWOxlrDgIPtItqxvqds2C3heVs5tmoEiBks6JjT+aKs/uEQQdExyQI
	OZaj6VcxCBb8rNfSuWm0BQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
	1765332187; x=1765418587; bh=4I0nkr8i8c3PoewggU8q4XmJwBA8i9gKRow
	ua0k6lTc=; b=YTzywSK/rCMg3wQfYYhQ08gN1KE1XLSApX3txHIpOM91N60IijO
	JpwRc4nW3ZrUu4uddt83f3oo3xTHFZRIgp7RCEY94OFiH/uFSRNEFxkknT2M6TLw
	1wjbEJDx7adjwf28/NVrWAreq400jbAcFytosS+vVLzAZYxrbLleDCmYYiIjXK+b
	2TExXL1O5J4xRtDSlV2SdCrh66luHLnzBpaswr+nDwKiTcvhXhVW2G2oI9d/KEjn
	syHolnM6zWjPC5im2TTDY9DElMwuZawCqrJH3lamZTEIExV8D2wuWqT81MUbct+5
	0IgN3twF7wgbfONmF4MDVx0O7JMfdqEz9Kg==
X-ME-Sender: <xms:29Q4aYOv_HbcbdkoB4-ejM54iISHF6jGlkLoWKqyce-mkifcZN2kiQ>
    <xme:29Q4aV8tOXnPWYTJtyJQKwjFxOrRjI8UU80lajNzFIE8mgqvEwMwb2fHw6S0QDwhd
    Uda4W4e5Gu1I8TXFnIA9fkKxpK6B3Nj21aV4w-bmvPMQ6RB>
X-ME-Received: <xmr:29Q4aUS5mZ9aY0EtzmSATaXqPKH9_O_uPGQUXREyS_wOiTmxFTYDjY_b00r3zEU-8cbKD_7XSp04NScU6sU7WE_CH4wbtcnctvY>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvuddulecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpedugfdugfdv
    vdekjeeffefgieegheduffelieeghffhiedtleeikeelgfeguddtudenucffohhmrghinh
    epghhithhlrggsrdgtohhmpdhkvghrnhgvlhdrohhrghenucevlhhushhtvghrufhiiigv
    pedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisg
    hlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpdhmohguvgepshhm
    thhpohhuthdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrgh
    dprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdr
    ohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtoh
    hmpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:29Q4afkHt6zcje62QRtGKNYFnIlxcEbA18XEUFpY2C2alirhZXx7Aw>
    <xmx:29Q4acRQ5e-UAknVWG3cJce0UkNxIEbGifKESMxcWel3_Sbem9HQWg>
    <xmx:29Q4aVPJeeakB_A8WSuIm6g9vWwazYMus-XDNmIiqzmA6pDCdbxGUw>
    <xmx:29Q4adVdKqfrLd1CcLJDKSyxyBAn1hfPq3FB2D8RKyxrS5FMHV9xuA>
    <xmx:29Q4afmnuFlE26ua1VyqJc4Tkc8DNF6nc-qtQP9Q5zCNGxJhYPvU0MFk>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 10 Dec 2025 03:03:04 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 07/12] Support building arbitrary Linux
 branch/tag/commit
Message-ID: <aTjU2GJFw9WcaR9X@mail-itl>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
 <c7579b953d400d368f171e4dd56e1b7f879e386f.1764866136.git-series.marmarek@invisiblethingslab.com>
 <alpine.DEB.2.22.394.2512091625190.19429@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="ZHvvibANWmZnJ243"
Content-Disposition: inline
In-Reply-To: <alpine.DEB.2.22.394.2512091625190.19429@ubuntu-linux-20-04-desktop>


--ZHvvibANWmZnJ243
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 10 Dec 2025 03:03:04 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 07/12] Support building arbitrary Linux
 branch/tag/commit

On Tue, Dec 09, 2025 at 04:29:02PM -0800, Stefano Stabellini wrote:
> On Thu, 4 Dec 2025, Marek Marczykowski-G=C3=B3recki wrote:
> > If LINUX_URL is set, fetch LINUX_VERSION from there. Go with "git
> > init" + "git fetch" instead of "git clone" to support any of
> > branch/tag/commit.
> >=20
> > This also defines optional linux-git-* jobs which will build the thing
> > if LINUX_GIT_VERSION and LINUX_GIT_URL variables are provided for the
> > pipeline.
> >=20
> > Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblething=
slab.com>
> > ---
> > The script variable and job variable need to have different names, so a
> > pipeline variable won't override it for all jobs. While LINUX_VERSION /
> > LINUX_GIT_VERSION is IMO okay, I'm not very happy about LINUX_URL /
> > LINUX_GIT_URL. Any better ideas?
>=20
> The problem is not LINUX_GIT_URL and LINUX_GIT_VERSION, those are good
> names. The issue is ...
>=20
> > ---
> >  .gitlab-ci.yml         | 22 ++++++++++++++++++++++
> >  scripts/build-linux.sh | 18 +++++++++++++-----
> >  2 files changed, 35 insertions(+), 5 deletions(-)
> >=20
> > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> > index 184d0b3..8d1deee 100644
> > --- a/.gitlab-ci.yml
> > +++ b/.gitlab-ci.yml
> > @@ -1,5 +1,9 @@
> >  variables:
> >    REGISTRY: registry.gitlab.com/xen-project/hardware/test-artifacts
> > +  LINUX_GIT_VERSION:
> > +    description: "branch/tag/commit for the linux-git jobs"
> > +  LINUX_GIT_URL:
> > +    description: "git url for the linux-git jobs"
> > =20
> >  stages:
> >    - build
> > @@ -53,6 +57,15 @@ linux-6.6.86-arm64:
> >    variables:
> >      LINUX_VERSION: 6.6.86
> > =20
> > +linux-git-arm64:
> > +  extends: .arm64-artifacts
> > +  script: ./scripts/build-linux.sh
> > +  variables:
> > +    LINUX_VERSION: $LINUX_GIT_VERSION
> > +    LINUX_URL: $LINUX_GIT_URL
> > +  rules:
> > +  - if: $LINUX_GIT_VERSION && $LINUX_GIT_URL
> > +
> >  #
> >  # x86_64 artifacts
> >  #
> > @@ -91,6 +104,15 @@ linux-6.12.60-x86_64:
> >    variables:
> >      LINUX_VERSION: 6.12.60
> > =20
> > +linux-git-x86_64:
> > +  extends: .x86_64-artifacts
> > +  script: ./scripts/build-linux.sh
> > +  variables:
> > +    LINUX_VERSION: $LINUX_GIT_VERSION
> > +    LINUX_URL: $LINUX_GIT_URL
> > +  rules:
> > +  - if: $LINUX_GIT_VERSION && $LINUX_GIT_URL
> > +
> >  microcode-x86:
> >    extends: .x86_64-artifacts
> >    script: ./scripts/x86-microcode.sh
> > diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
> > index cf0e744..1fc96d1 100755
> > --- a/scripts/build-linux.sh
> > +++ b/scripts/build-linux.sh
> > @@ -12,11 +12,19 @@ COPYDIR=3D"${WORKDIR}/binaries"
> >  UNAME=3D$(uname -m)
> > =20
> >  # Build Linux
> > -MAJOR=3D${LINUX_VERSION%%.*}
> > -curl -fsSLO \
> > -    https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LIN=
UX_VERSION}".tar.xz
> > -tar xf linux-"${LINUX_VERSION}".tar.xz
> > -cd linux-"${LINUX_VERSION}"
> > +if [[ -n "${LINUX_URL}" ]]; then
> > +    mkdir linux
> > +    cd linux
> > +    git init
> > +    git fetch --depth=3D1 "${LINUX_URL}" "${LINUX_VERSION}"
> > +    git checkout FETCH_HEAD
> > +else
> > +    MAJOR=3D${LINUX_VERSION%%.*}
> > +    curl -fsSLO \
> > +        https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"$=
{LINUX_VERSION}".tar.xz
> > +    tar xf linux-"${LINUX_VERSION}".tar.xz
> > +    cd linux-"${LINUX_VERSION}"
> > +fi
>=20
> ... the issue is detecting to fetch via git or via curl based on the
> presence of a variable called "LINUX_URL". Technically=20
>=20
> https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERS=
ION}".tar.xz
>=20
> is a a valid URL as well.
>=20
> So I think you should keep LINUX_GIT_URL and LINUX_GIT_VERSION named as
> they are, expose them to scripts/build-linux.sh, and detect the fetch
> program based on the presence of LINUX_GIT_URL.
>=20
> Ideally, we should not have LINUX_GIT_VERSION. Instead we should have a
> a common LINUX_VERSION used in both git and curl cases.

The problem here is conflicting variables for different jobs. If you
specify a variable when starting a pipeline (either manually, or via
schedule, or via settings), the variable will be set for all the jobs.
So, to be able to schedule a pipeline with both linux-6.12.60-x86_64 and
linux-git-x86_64 (for example based on linux-next, or maybe some rc),
the pipeline variable needs to be named differently than the one used by
this script. And IMO it's more important to have clear naming
(LINUX_GIT_VERSION+LINUX_GIT_URL) at the pipeline level.

I can change this script to use arguments instead of variables to avoid
this issue, but it will result in slightly more duplication (in
=2Egitlab-ci.yml file).

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--ZHvvibANWmZnJ243
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmk41NgACgkQ24/THMrX
1yy6/wf/ayndzmYmyqZ+uVeBME9WDOdQGj+H3zSUSAODb5cKCLYypgk3+XfUpSm7
AbtWuIsaqaXE3sTS3rtwLt0vs9/t/IVNr5ZfrbMfM/FAP3fLx+QDKcLJ/LcbzeWO
DFKvylrCR+tkVZwproQyqkIlmU53VxbaGlriVyTV3n+sZJpvvt61xpii0Zu9PZXR
jgFi/5tuCwlo5c8K+5KLfS5L3uvXYEse8jpS6aUuG/DZKZkYXGW6tvXBYuQn5yoZ
X0OJ9WGRc2nqNmqjTwk2Wek3Q1HgrEtX7XJn9zgSkGnJNKLAgIXGQ5nu2T92P3As
A7zznPCI+UtEWtEITEQyE9w70I4/YA==
=lZc0
-----END PGP SIGNATURE-----

--ZHvvibANWmZnJ243--


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 07:06:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 07:06:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182528.1505392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTEHb-0003X9-CB; Wed, 10 Dec 2025 07:06:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182528.1505392; Wed, 10 Dec 2025 07:06:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTEHb-0003X2-7u; Wed, 10 Dec 2025 07:06:43 +0000
Received: by outflank-mailman (input) for mailman id 1182528;
 Wed, 10 Dec 2025 07:06:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=K7qh=6Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTEHZ-0003Ww-CH
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 07:06:41 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c57c3514-d596-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 08:06:38 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso5304535e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 23:06:38 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a82d35904sm27747065e9.9.2025.12.09.23.06.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 23:06:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c57c3514-d596-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765350398; x=1765955198; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=n2rUepR2JxU7xCMZFVHhVI8Kb+gjIUPdxVT6PD7ILq0=;
        b=OfSCtbJ4bp9VbvRK9S1F48L75oGlicfq5xwGJB7xjjf5DIid1WgdP7PG5PCrplyNfS
         876Xpa6uVW292hXmEajw/RLJU6oex/LNe04MHrm4P7JNFkB2oZLR5uAKAjwwr9wbJuQ3
         SpKfne8u1VzHKI1Uwb+o6oRGJtipjMSfW36FQy8GTObZpREz1qWERjiS6S6QNRHIVRz1
         utGd9LfvVAX3tHu1ibL8cEVIRf5DcvRMCCCDUYUd9uP3TT9P+Oqf3yU60tzr282tb82m
         dHHTOKdOSQcs5gRTYG0KLR5vl71ox2kl3RF6FDPQXYRJJWKkhEUnWULi+BDz0wtUeTh1
         QMig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765350398; x=1765955198;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=n2rUepR2JxU7xCMZFVHhVI8Kb+gjIUPdxVT6PD7ILq0=;
        b=MARmZBs0lHzSe+NETb7u3fbaz5RYtpYpmka1zWaNbTLmlpZFMo+GCPEF5orgfIVYO0
         qXh36fzfir9I9QijBVQI6tScXKRqAErdofT8u+MSRPgqiFfVtgUTzUnu9MEUXxWIxWX3
         06ZZ49Vq5nSxzz0GklGSJswmhGj3zQFPhwZoGL7PPrtCEl1eJPgd0qjpQARZgwPZH8hL
         UhyR4gNBKINUNz+MHRPLYLOSypUz0sf687tktmwNatmcsT87mQoNOc6sTla1J5sLTQt/
         /QcuOAdWPBxHoyfeWiAMewuR4jP6dabDUS3UzQhplHlkodoMb+3HUxNl772TbB++jOxU
         Ogdg==
X-Forwarded-Encrypted: i=1; AJvYcCW3+aV3zADYn13RaXgMH9YcFtAYMUfzNnJHUh8Cvl3OuIn1u9pdZVKh2nHUd9Un8gqittGsJq/pQuA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxWAKp7e/mQmSHuzHVSYnR3AUv4QH2T5Cnj9+fIUdWPldJouLRA
	vrACTQUJH39WRPVxdnrOlvvwAxpUdCnyX+m6IAEQXUh0MVeNw3Y/pmju+nvjgsJzDA==
X-Gm-Gg: ASbGncvBJDs/HKyJUhyUL5or+XCI00QCxr1mtWihtWR90A3W6nqVchkSdaNr8OICsjQ
	/kM2s6ayz24sMOs7g4ucsePy5EBK9624YfwLgs7+46/9Wz9RzOjcS7id59j6e3XeSUTI/hu0yWk
	dBqtWOuTHioxuHHN6oIPwQvY/HioSUL1DXF5pwgmXzovCXmwTGbW3rSFbO24ptZSJxqsKIY13Ww
	GkprqCgg8C15+GQRks88vsxAaTbC9oGxFCvPoLRY0+4paRP0NL39bMRlM2SSeFZoZsz7nVeeVVQ
	Id6S1DmLhN1pEEDs52b7NA4yr47Wd7so6SMOsO0bUQoGTX5DWSHtsRgLEqjRnHYDtSfUXVTXm6X
	5hzguTa6sOG3Z3ilqmU8f8oacCTRNX9g3O0Urtq4KKmU2fpbqoX7kSM6XZrc9TOpR5DSZqg2YyC
	KKa60ZMIg5G9avVbLjlNdOtwJXtMrGzGs5D0i+M7dyeLcMawuRCn5DdMe+wLUhaAaUPbz6FN+xM
	Xc=
X-Google-Smtp-Source: AGHT+IGxFctI4wpLHGz6N/DNGti/3WQih3A+sHOk7lbFxOPreLppRdmE7qW9jwlOn8cZhfn8KcjSyw==
X-Received: by 2002:a05:600c:3147:b0:477:9890:9ab8 with SMTP id 5b1f17b1804b1-47a838ca7famr10472495e9.3.1765350397900;
        Tue, 09 Dec 2025 23:06:37 -0800 (PST)
Message-ID: <621089a4-d946-46ce-a3cf-4d0938d4a39a@suse.com>
Date: Wed, 10 Dec 2025 08:06:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 19/19] xen/riscv: introduce metadata table to store P2M
 type
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <2c41da84b3e7fb0f6e6c3c856bff6edaf9e1d505.1763986955.git.oleksii.kurochko@gmail.com>
 <889df78f-7196-4b44-9558-fb83f432e18a@suse.com>
 <36be69fb-9362-43a4-8308-1e62be60d27f@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <36be69fb-9362-43a4-8308-1e62be60d27f@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.12.2025 18:09, Oleksii Kurochko wrote:
> On 12/9/25 2:47 PM, Jan Beulich wrote:
>> On 24.11.2025 13:33, Oleksii Kurochko wrote:
>>> +            *md_pg = p2m_alloc_page(p2m);
>>> +            if ( !*md_pg )
>>> +            {
>>> +                printk("%pd: can't allocate metadata page\n", p2m->domain);
>>> +                domain_crash(p2m->domain);
>>> +
>>> +                return;
>>> +            }
>>> +        }
>>> +    }
>>> +
>>> +    if ( *md_pg )
>>> +        metadata = __map_domain_page(*md_pg);
>>> +
>>> +    if ( t >= p2m_first_external )
>>> +    {
>>> +        metadata[ctx->index].type = t;
>>> +
>>> +        t = p2m_ext_storage;
>>> +    }
>>> +    else if ( metadata )
>>> +        metadata[ctx->index].type = p2m_invalid;
>>> +
>>> +    pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>>> +
>>> +    unmap_domain_page(metadata);
>>>   }
>> Just to mention (towards future work): Once a metadata page goes back to be
>> entirely zero-filled, it could as well be hooked off and returned to the pool.
>> Not doing so may mean detaining an unused page indefinitely.
> 
> Won’t that already happen when p2m_free_table() is called?

Well, that's when both page table and metadata table are freed. But what if a
leaf page table is moving back to holding all p2m_ram_rw mappings? Then the
metadata page is unused, but will remain allocated.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 07:09:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 07:09:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182537.1505401 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTEKk-00047G-PH; Wed, 10 Dec 2025 07:09:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182537.1505401; Wed, 10 Dec 2025 07:09:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTEKk-000479-MW; Wed, 10 Dec 2025 07:09:58 +0000
Received: by outflank-mailman (input) for mailman id 1182537;
 Wed, 10 Dec 2025 07:09:56 +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 <SRS0=K7qh=6Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTEKi-000473-NL
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 07:09:56 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3adb0175-d597-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 08:09:55 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-47775fb6c56so55537025e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 23:09:55 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a82d1d497sm28462235e9.4.2025.12.09.23.09.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 23:09:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3adb0175-d597-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765350595; x=1765955395; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lwS509WMIxBr8aH2Zqp+csF4vi9Wp96nHKV5Z0rr9Kk=;
        b=bXvi3cUnlCP6lxxIqRG5GqaPBJwkdFMOz8Q+YZZiL4ZYhFmy3Cg8vb2ywO2P6nWgxv
         uEmXRa1k9TJm26ZAhybqGqN7Dhul8vpyeW+b8HvcXJEcKIBtA7T5WCxTl91xVLjaj5IB
         fEV/dM6ytUevcwgUqQ1tFIh8POWwahrojsv21KNwT+FAY8jkdks9f0M5LKaOk92JzCkJ
         /JH/LS9E6WmucmcKaJytcDAxoaabNqxgDUwtxLmkte4Ny7pdJFFY/Z2fuWwLAg/CN8KP
         ClrQsaObS4EAOB8E7D32Qofo4SoaHVJRCM6WtUtL0+NpeZvKLR7C2HgEnlGIgoRfZmLc
         ks1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765350595; x=1765955395;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lwS509WMIxBr8aH2Zqp+csF4vi9Wp96nHKV5Z0rr9Kk=;
        b=AbOwR2dhzgFW7eJstgzZ7t+DeH9Lk46nbnO3yC1m2CIRUwts6p5aR1Xt3d/gEZyEGy
         VCPhCkouLGqjyOrBc9EaiRhwnzqv2CMVI0ZEvXM1bgnNxN49nngqrZwXtr3dMG37uSiM
         +ViqvyatkkGqQTCcOD6SV+h4J8fhfpv7rJI7cJZME7R3tjUI6qLJEL1jgWjn93rHn6Im
         I5vkSgTyn3Sawz/oAC4+vJbZZr/1z1jCxhW9ydVghwWO5HJqB8UZPoidoOYEq4PHbIak
         dn93wvjD50vih+IqzDsIbb7djV3mE3L0UXvKZENabpna86I+gWrnTwW+C6MJ7tC8PORv
         jcCg==
X-Forwarded-Encrypted: i=1; AJvYcCUPyNgpr8agvtFj7DC990qvX8Lfjohkpe9Ifc7DMqP69YaDd0WwFZxDQRQPpgR9LiOtVUbThP2dYX0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzAhOQF2iowa+UWngQwHqJXaacJ+tWXMHNFO53YRwTZ9ZB7vlmA
	9JaHuQmYSsncv/hovo/UVv8IsirREqScZEK7Davqnm8vlfPxCbOl45783BTtL85wB5Fxfa1I52H
	rBRU=
X-Gm-Gg: ASbGncsv/+/NWgitR5J++XldMZkKdvfzmJjULUnTH2zYINPW+YL9Fi0eLodajTWiXxA
	FjgWCbfHUJMHpo6iZ67QY0SuHayzuudFlheSlFCxFKk9n2aKC3UlpgiBDAOqU//DGvgS7umYmf6
	ccXdU4rGo+OS5Ztcbb+/XpOxAzIX9UFp71Qn6uftuBmiJBteGiQtxz7JvHQWNie4ifsLdnUuJDm
	VO9OxvWdQlcZTOaXZ45wrD87pKKDvYilWsIGnEkpMWmnA4kw5Eo5cv2vFT06NTxtCVZImzofHmp
	Td8DfXjMn96u/FtiyfPTbtP9MbMEayuFPdybto6fX3NHmsm9U4seoosZbdE02fRVM3sxwCEjNCy
	Z5sZFuvmXpFCQiqeEsDxGLgIKGdu+UvhmcJc6yJGcNihpxpv0vCABgukadwAijKMqDouLP1PO52
	8C37WTCBaaq3VHUnyz8P6k6whi/gRBa6V4g/mVAxKgEykIna7oT+AzgAoyltxvhvcNc8ip7mO4P
	MEBgL3rce9xyA==
X-Google-Smtp-Source: AGHT+IHIVLM6klgAcCTDKTXc+zgyW2yKmFGqBAzGrRC3ngG0xTlqtZdh0y3ZBOZqn4KeYRGZLCKQww==
X-Received: by 2002:a05:600c:4f09:b0:477:fad:acd9 with SMTP id 5b1f17b1804b1-47a8379fe25mr9709685e9.34.1765350594847;
        Tue, 09 Dec 2025 23:09:54 -0800 (PST)
Message-ID: <2bf5c46b-0b95-46ef-9c25-849fcba0f170@suse.com>
Date: Wed, 10 Dec 2025 08:09:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] RFC: xen/x86: Enable --gc-sections
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
References: <20251205222813.277164-1-jason.andryuk@amd.com>
 <8dce8443-5a97-42c4-b867-27b83415b3d1@citrix.com>
 <32f54604-706b-4377-b59a-b287ef1afb3a@suse.com>
 <049bb40b-13f6-4b5c-9105-aeac03680f86@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <049bb40b-13f6-4b5c-9105-aeac03680f86@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.12.2025 22:55, Jason Andryuk wrote:
> On 2025-12-08 03:46, Jan Beulich wrote:
>> On 05.12.2025 23:40, Andrew Cooper wrote:
>>> On 05/12/2025 10:28 pm, Jason Andryuk wrote:
>>>> When linking to create xen-syms, add --gc-sections to garbage collect
>>>> unused stuff.  Relies on CONFIG_CC_SPLIT_SECTIONS
>>>>
>>>> We need to add KEEP() to the linker script in assorted places to retain
>>>> appropriate data - especially the arrays created therein.
>>>>
>>>> Something is off though.  In a test where memory_add() is unreachable,
>>>> it is still included.  I'm not sure, but I am wondering if it's the
>>>> alternatives somehow keeping a reference to it.
>>>
>>> Yes, .altinstructions contains relocations against the origin patch
>>> site, which will cause it to appear to be referenced. The same will be
>>> happening with a bunch of other sections.
>>
>> We will need to derive helper section names from base section ones. See
>> e.g. HAVE_AS_SECTNAME_SUBST as introduced by "common: honor
>> CONFIG_CC_SPLIT_SECTIONS also for assembly functions", controlling the
>> use of the --sectname-subst asssembler option, to in turn be able to use
>> %S in section names (available from gas 2.26 onwards).
> 
> I tried to add your patch and change ALTERNATIVE to:
> ".pushsection .altinstructions.%S, \"a\", @progbits\n"
> but it fails to build.  One example:
> ./include/xen/compiler.h:62:21: error: invalid 'asm': operand number 
> missing after %-letter
>     62 | # define asm_inline asm __inline
>        |                     ^~~
> ./arch/x86/include/asm/pdx.h:13:5: note: in expansion of macro ‘asm_inline’
>     13 |     asm_inline goto (                               \
>        |     ^~~~~~~~~~
> ./arch/x86/include/asm/pdx.h:22:5: note: in expansion of macro 
> ‘PDX_ASM_GOTO’
>     22 |     PDX_ASM_GOTO(skip);
>        |     ^~~~~~~~~~~~
> 
> ".pushsection .altinstructions.%%S, \"a\", @progbits\n" ends up creating 
> section ".altinstructions.%S" which doesn't helpful.
> 
> Is %S expected to work with inline asm, or only standalone?

Both, as long as --sectname-subst is passed to the assembler. My patch adds
that option to AFLAGS only, whereas for inline assembly it would need adding
to CFLAGS. Did you perhaps overlook that?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 07:25:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 07:25:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182552.1505411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTEZm-0006uJ-63; Wed, 10 Dec 2025 07:25:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182552.1505411; Wed, 10 Dec 2025 07:25:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTEZm-0006uC-3U; Wed, 10 Dec 2025 07:25:30 +0000
Received: by outflank-mailman (input) for mailman id 1182552;
 Wed, 10 Dec 2025 07:25:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=K7qh=6Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTEZl-0006tz-Ae
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 07:25:29 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6660f8be-d599-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 08:25:27 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-42e2e5da5fcso3735047f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 23:25:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbfeadesm35587108f8f.10.2025.12.09.23.25.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 23:25:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6660f8be-d599-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765351527; x=1765956327; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PgvsZxZi8/3tji1mtIJHvj0/V1Zc/8cPHf2LB2s0MQI=;
        b=L7Wvq7BCV3M76LFywPS3C5n6qp3FRbuSWE6vEyu7Gloul/3ZD3KmlzaWXeyQwIvV/y
         9j3xsB9FZZ69EnS95Eq7SRE/PTLLS/z9qigVPwUCHt30HvHXDxJyEpn8XO8Qw9A/8zGN
         WoAWuHseuplB7wZetL+jFEodCk3oefdbEl/r9QeS4OQvs4VKw4dO0Y4PxTF0mnPxVupr
         IGCabD+Ah24vh5Bqp6halGBpJvFyIWPbUNX6xaWC70+MoAR2DDtDJfYyU1L5OaYadFsE
         QWsMz6lxQI05d2oKddc1zfF4jILotKd91U8UlT3Arq4akC18O1MQlIOEZ2QnmRBBWOQk
         gVnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765351527; x=1765956327;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PgvsZxZi8/3tji1mtIJHvj0/V1Zc/8cPHf2LB2s0MQI=;
        b=ly7bcV+9kmcBcJXU4Qr1lad/qzbcOk8Xj4CxZRb0GwVZImBaP2veBWNDkq2kgKsIg0
         629LJScvhDl8BPAWKL2r4GDlyvAKqgvH6Z8SlAkV1IwsnXldmVCOOuHts5weFRkeGymB
         c2P+Kz4jRCYzsqkc0aM7blbg/wBKq5eee6M4Qp4wBSS8imrP9XaSIyfstqwi+ZdR8s3g
         AAqzzkJ5hfa1AB/ECoLKF0Jp2EbiQXQH7MxCb4XgFdRqDGJOpNdiqwnokV+lYtIDVMn+
         amgujilUdIxKlRtfODrEvTf1uoKAN2jSMn3knq6gEjZPrvQ0RPxceFjGeBA+ZGsVwC+x
         Eqgw==
X-Forwarded-Encrypted: i=1; AJvYcCW8j10AVYctLgaQ59QxeGi4XEjAOlR+dQHaOZpRy66AID6SqX9F7LlRhzXJhSwi8AUkVv49DCwLJOo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwhQhPoMJeSOXNV30iTs9M10NFSSNW29UUi3nNRcK1lA29Qe8vX
	Y1+5B5yFiSjnySL9oTfSH3lCPbQfpRaayJ0yRgxfxx46S/xD+71GyR+5trM8ycNVTg==
X-Gm-Gg: AY/fxX4VAbFZ5RPDA4mBTAmkboutbY3EJy4IuOt0Or5WFBHIAkdrOyNsZsqNj197Qf/
	J0gMICmzC3pOIaJQuuFWsNl+o6voJWyXtU3iqy2jWlBViwmL7AaDsMS5/OWHQHJWrYDvcTRdaiK
	qBbhU0VVwRywrmZhZHgHt8IpuWxdcW+m4jR2Ns0SgS3NjIs/Iy8tmtjGbpRFsT//AjenvJBTSSo
	cYgUvO9E/lFQ1Sg1C2KYMzgGCREFiTyKWBKngVh1fq614EhjmqFaHUSL2p4+nKRqq/9bAPRtYmk
	fB6Fu8Upn2fVUwOmyOYqISpcRd0218+q/SR3l+KlJAg9/Vw719RlwAYvAauOfEFleZNrUnUKkGw
	Awquspy7kO8waPnb15CXYKCmhO5uxFgV7O7evueKVuty24iS6jcGToh8Vlsm8GbtvET7fOAATQP
	EErbAqf/X2SYuiUiLSkXveShXPBHqwdv5TAeQH9yVqmoiUv3/54ndG6oPYRIxJDtqfRErO9Wuww
	JY=
X-Google-Smtp-Source: AGHT+IEQFsPPDCp1qWx2r2jFqA2YLxk+vMABwAEVt5u5DoIun/KEAGe4Ormzv67TYA/z5+n7rYTMqA==
X-Received: by 2002:a5d:584a:0:b0:42b:3dfb:645f with SMTP id ffacd0b85a97d-42fa3b07c26mr1304505f8f.47.1765351526793;
        Tue, 09 Dec 2025 23:25:26 -0800 (PST)
Message-ID: <51d10106-14b3-4f5b-91f1-4cd0492dec03@suse.com>
Date: Wed, 10 Dec 2025 08:25:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] RFC: xen/x86: Enable --gc-sections
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20251205222813.277164-1-jason.andryuk@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251205222813.277164-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2025 23:28, Jason Andryuk wrote:
> --- a/xen/arch/x86/xen.lds.S
> +++ b/xen/arch/x86/xen.lds.S
> @@ -76,7 +76,7 @@ SECTIONS
>    _start = .;
>    DECL_SECTION(.text) {
>          _stext = .;            /* Text and read-only data */
> -       *(.text.header)
> +       KEEP(*(.text.header))

Andrew already commented on the KEEP()s, yet I'd like to extend on that. The
one above looks to be necessary (from an abstract pov; in practice it shouldn't
be necessary due the entry point being there), but ...

> @@ -98,7 +98,7 @@ SECTIONS
>  #endif
>         *(.text.__x86_indirect_thunk_*)
>  
> -       *(.fixup)
> +       KEEP(*(.fixup))
>         *(.gnu.warning)
>         _etext = .;             /* End of text section */
>    } PHDR(text) = 0x9090
> @@ -116,12 +116,12 @@ SECTIONS
>         . = ALIGN(8);
>         /* Exception table */
>         __start___ex_table = .;
> -       *(.ex_table)
> +       KEEP(*(.ex_table))

... these two for example should be strictly be omitted (as Andrew also hinted
at). I think more preparatory work is necessary here: We may need to use
section groups to associate auxiliary sections with their main ones. Otherwise,
by pulling in full .fixup or .ex_table from an object file, technically unused
.text.* would also need to be retained (due to .fixup / .ex_table having
references into there).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 07:26:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 07:26:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182560.1505421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTEay-0007Oy-Ex; Wed, 10 Dec 2025 07:26:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182560.1505421; Wed, 10 Dec 2025 07:26:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTEay-0007Or-Bq; Wed, 10 Dec 2025 07:26:44 +0000
Received: by outflank-mailman (input) for mailman id 1182560;
 Wed, 10 Dec 2025 07:26:43 +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 <SRS0=K7qh=6Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTEax-00079l-FW
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 07:26:43 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 932e465c-d599-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 08:26:42 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-47a8195e515so9383305e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 23:26:42 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a82d7efdbsm28772775e9.9.2025.12.09.23.26.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 23:26:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 932e465c-d599-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765351602; x=1765956402; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zqywqUdy3YN7phaZJxe9UjAwAUx8vUcjAfTfGIKB1/U=;
        b=NLGT/uWAJ0YGMyv+aEZoW5mQvOmaQFtMAxAxZJLmY3YhDM1K/XE7EWC2nNYKiTWaf0
         K28mcAF2KoAftANEhxPFp6zDgoqnF9L/YjHu8giyNKWppj3y9XCr12bCYmI5EBL65bmu
         k/D0eY5eG7mzj50NEkalQt2QqK373joiO0UWU32u5YPTI8Ka4By41h2ZQeiHDRflsEGv
         d79y+Kf7zELxXPg6HzPrYED+jxffQz3nxk3zTDrwjses3XsRcKOhk9f1qx7dln0pe4oV
         5DlMKTqT8LDLY1oqyrHrl92z12lk9AHQvbSaEoayOkkA7etKzcK6qB5i2Hr375G8KzjM
         54Yw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765351602; x=1765956402;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zqywqUdy3YN7phaZJxe9UjAwAUx8vUcjAfTfGIKB1/U=;
        b=mfTt9noaTfH6hDNQfMz4naQEZtw5icGz9N2fRyRtwGp8wS+iur45H8RAk3XslilPgB
         bxS6m5s4/P4WxYBNdHjJZU/b6KuEg9dG3mg0aZzdZtRHhUnTu+wGqLec3R+ScOthe8h0
         a1oWHsou9vLgS6w1DQpURZwmVGYMmBqMYUfigXDHlw+32aCN+0cf0JdKWq/H3ZFZ6E6j
         vfB+M6pa6gn0vXOj0ulo60YT/Kz3ADdRZFxvPX56+slgbzwnSvheVp1NtV+w9Seddmc9
         4hLMhs12bQ7NqSNgvgq9TRctCrX3vVZmb6r02I710tgIcwoOEywDkuZTsbdYCp499tHa
         sUyQ==
X-Forwarded-Encrypted: i=1; AJvYcCWJ+1mSCSnsCIjaUdCIcsZ5ye1IkAPxlBq5OXuY6qzsEI4eX76k9+tFun+Q+OmV2jBZDsM1dPjYsdQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZLEf7h0hctOT97oQ2l616/7Dgsiy+WcJlu4vexP3KN71VCQFx
	cPhjTYxDKB7W2nlpsBsxcI0yOdY/wlkcyMyGo0NwEvPHL7993opx10+62bIGKIGYnA==
X-Gm-Gg: ASbGncunzAbZ4AXLPoy9Oonk2KzdeGFTavyXrN4gOUmCg4ZJLSjYqUexhiCzgIF/JnW
	oxevakPN6W0PiGQE6lF8Dvs/KBpDyO0CKSmuuVasUsFiYn9BZbu0Kgzi4+QGi1PHzBSW3nQeEsg
	sqfwM/Um9ma08gIR9Fyy8KMk3zvzDNaDYhWd3r0kMSyAoyIVs3Su+JlrYOAGgZPOCWfXux7nZ0t
	wtSR7Z/O8CK9DHIR4bTrE53njxm3j06tW6ZSeGZk5qSdlAPWNkLN8yQSvZKUhwSIlyuOTGgawQW
	aiM4wQKNmO4rglljpYezdKW6QpJXGWw3eCi905KZNatP22AyV85/ydUeylOp/LKW6fGUtovBMUB
	2R1/1AC/3WWe0xSb182fx7LPCr+j4mqrXQNEEp0P58l6cn3dzDeV82UAW3yCH8YLyCr9hmEUwqH
	nYkpXrroAcL+Mkse2BxVxYjV5YrJRmIJnV6F4BliXWJkMRu7RcIr65Bb4+0LUYlHibHrSx2WopI
	5EFhMBUEhzfVg==
X-Google-Smtp-Source: AGHT+IFQFFTyL20QkZFqlq25pfjYnhMTqBFSZq0HrYtE5kF6svVVxT7sZafJKAUxjkaWPZwt+K0Ikg==
X-Received: by 2002:a05:600c:1392:b0:471:9da:5248 with SMTP id 5b1f17b1804b1-47a8384c54bmr12083685e9.26.1765351602038;
        Tue, 09 Dec 2025 23:26:42 -0800 (PST)
Message-ID: <c6ab6537-4166-438c-8c08-948d5c0f96a8@suse.com>
Date: Wed, 10 Dec 2025 08:26:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pv: Unhide writes to d->arch.hv_compat_vstart
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251209155719.2098440-1-andrew.cooper3@citrix.com>
 <79fd0f6a-8fbb-433e-9c74-3da339301b96@suse.com>
 <2a9292dc-0903-43db-9646-437c6c2ed9eb@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2a9292dc-0903-43db-9646-437c6c2ed9eb@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.12.2025 18:11, Andrew Cooper wrote:
> On 09/12/2025 4:41 pm, Jan Beulich wrote:
>> On 09.12.2025 16:57, Andrew Cooper wrote:
>>> The variable is never 0, but because the writes into it are hidden behind the
>>> HYPERVISOR_COMPAT_VIRT_START() macro, it does a good impression of appearing
>>> to be 0.
>>>
>>> No functional change.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> I don't kind it being this way or the original one, so
>> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> Do you mean s/kind/mind/ ?

Of course, sorry; must have hit the neighboring key.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 07:29:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 07:29:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182572.1505432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTEdV-00087m-Rf; Wed, 10 Dec 2025 07:29:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182572.1505432; Wed, 10 Dec 2025 07:29:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTEdV-00087f-OE; Wed, 10 Dec 2025 07:29:21 +0000
Received: by outflank-mailman (input) for mailman id 1182572;
 Wed, 10 Dec 2025 07:29:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=K7qh=6Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTEdU-00087Z-WD
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 07:29:21 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f02cb462-d599-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 08:29:18 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-42f8e39cf89so1614524f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 23:29:18 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d331e29sm36415536f8f.32.2025.12.09.23.29.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 23:29:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f02cb462-d599-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765351758; x=1765956558; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lD07c0OC9sYKszaHOZBojBM13XCMNA8tdAdO+/v5kjI=;
        b=BTKFuEF4xtrAFFZzT2PhvQuTuN3a41AXZE0sNLG1+DpJfMlyn7gvOZ3m1lOGiFNf7j
         ZWu6FZOxsgsk0YPxZe+EbdpeHf2POrGz7n7vkKnREd/bumm3Exg2b+ca9PnxKjY+Kvb/
         9ai3NtQobIJRkQh770D41ASulnsj8n3qWw6oKaMrHYIEb+qTWlJr5iYzh4LoIOEXc+l3
         QHtogb44YNPwldx0CdExZyFUcjaNHvOSU/s6r+z0X1QVD0AtvZHKFOLglmE+rPlk2Zof
         vH1uopJ5c2c6/f/HO2FcSTvvihwcBgmq8qyfaMj3ePyoGzrOGEWmfsfaN07ZgTYWAf9r
         WeYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765351758; x=1765956558;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lD07c0OC9sYKszaHOZBojBM13XCMNA8tdAdO+/v5kjI=;
        b=UQY8mJDd8+xADV7uvkmyeaZPCP4KSbahGnr0alZl7GEQCt/k9Yo2Ju2GMtdeQnrGXP
         cWo+kRjkzCRp5lFcuqlvizYZ+bCciQwrmwLqkKeeBXZMT+q+ntoiYPmj0zynV16cWBpH
         x7iclHqtw50QIRMt7cnOJ/Llr/e0LalFe65HBs0rdM1oQETSqNJ9B/PWS36Fjc0b0JHU
         9zNFcNEemA7kGLNr9WfB/B/K8sb+SjJ2Kypmh7JyCzgaQ8Cf/lYocAMb6HsN7AF5uWbf
         OxOLccyj2idybiANe0nYeijv8dNaagzIVKw/HCHJjmPH8MkJXQibpeUibmNLZuFbhoIG
         jNXw==
X-Forwarded-Encrypted: i=1; AJvYcCWxikAGMQ0aI/XV1wIsVgrDXM5Kg0Wi01mGzikC0FXZmsmf60cwEB99kUmWC1rlLei/k5TFHsLoMXE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxSkpffiCedspTqnIfKkEO/zM5vp4XMbpy4ART302aqqBWZsQA3
	c6F1B/M6a4EkoMn7Uwwg6RVfg2VHj4yQJ5my4mtlCr3TPDjumlMR505gandP4vw2rA==
X-Gm-Gg: AY/fxX6RKt16m7xJDpYlySXlY7KQoUD0LaBUWDD2//wexzKk23AEAmoRBBpLMDm5yV9
	UPYnbq5ue/cdMQdlzQlV5di79O7b2vq+dY8wEV0nX6qT6pk8gDzsKOu1OuU6BVEC8pn6KRq+wAf
	tp8Jgtw/dT6kjcVOAGciEg7882pMo4MxJMELgmfN0ixBYMuCLXqq1p6JIU1dut7FjvOKlOXD858
	SOqNkpdTu+DLADCER7UC5O6YhjenULofbAw0S1PxshlBWwrQNwCGdBRdhqgzfA8lWqGJpstQEde
	IYbJ1TZtqZeGIQAvej+Ts85rYKBpZcAEiW+u4zQZ9VsyYa6Y4VXp9Lcqke+wUROplI/AhKt9WAo
	oSNBK5ZaOfWQDWrSyGWy3ladbYCCqMLKuXFOsMOugtY7+lFg/0vIz/oANJH6j8HHcJ/L7ulCOoo
	z3C87ilhgDU3HjH1ioyfFUXIAzfvsKuFaVVlDEhqKNRuoBNGmFDrOZTlZioRyxvmx0WsXpVoGS/
	bA=
X-Google-Smtp-Source: AGHT+IEZ7Xy15m6ggLaFp3uSqlvwb8DPK/i+rzX+1i3f8YyiMRxGdlbIkg6KABDrNooWCWnArlRLeA==
X-Received: by 2002:a05:6000:1ac8:b0:429:8b01:c08d with SMTP id ffacd0b85a97d-42fa3afd8e5mr1222604f8f.41.1765351757851;
        Tue, 09 Dec 2025 23:29:17 -0800 (PST)
Message-ID: <fa1600f4-eff3-43cf-a96c-7c23890d1d99@suse.com>
Date: Wed, 10 Dec 2025 08:29:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] misra: consider conversion from UL or (void*) to
 function pointer as safe
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <daa126218e11484c72f3de4b39186b6d9afd26c6.1761589314.git.dmytro_prokopchuk1@epam.com>
 <73ab67f9-d24f-42c8-a383-4c9db5de5bd4@suse.com>
 <alpine.DEB.2.22.394.2512091656400.19429@ubuntu-linux-20-04-desktop>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <alpine.DEB.2.22.394.2512091656400.19429@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.12.2025 01:57, Stefano Stabellini wrote:
> On Tue, 28 Oct 2025, Jan Beulich wrote:
>> On 27.10.2025 19:51, Dmytro Prokopchuk1 wrote:
>>> Rule 11.1 states as following: "Conversions shall not be performed
>>> between a pointer to a function and any other type."
>>>
>>> This deviation from Rule 11.1 relies on both ABI definitions and compiler
>>> implementations supported by Xen. The System V x86_64 ABI and the AArch64
>>> ELF ABI define consistent and compatible representations (i.e., having
>>> the same size and memory layout) for (void *), unsigned long, and function
>>> pointers, enabling safe conversions between these types without data loss
>>> or corruption. Additionally, GCC and Clang, faithfully implement the ABI
>>> specifications, ensuring that the generated machine code conforms to these
>>> guarantees. Developers must note that this behavior is not universal and
>>> depends on platform-specific ABIs and compiler implementations.
>>>
>>> Configure Eclair to avoid reporting violations for conversions from
>>> unsigned long or (void *) to a function pointer.
>>>
>>> Add a compile-time assertion into the file 'xen/common/version.c' to
>>> confirm this conversion compatibility across X86 and ARM platforms
>>> (assuming this file is common for them).
>>>
>>> References:
>>> - System V x86_64 ABI: https://gitlab.com/x86-psABIs/x86-64-ABI/-/jobs/artifacts/master/raw/x86-64-ABI/abi.pdf?job=build
>>> - AArch64 ELF ABI: https://github.com/ARM-software/abi-aa/releases
>>> - GCC: https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html
>>> - Clang: https://clang.llvm.org/docs/CrossCompilation.html
>>>
>>> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
>>> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>> ---
>>> Changes in v4:
>>> - the build assertions for the X86 and ARM are enabled by default (unconditionally)
>>> - re-wrote description for the build_assertions() function
>>> - excluded PowerPC architecture (not in scope of certification) from the check and wrote apropriate explanation
>>>
>>> Link to v3:
>>> https://patchew.org/Xen/0e72c83102668dfa6f14c4e8f9839b4a73d30b3d.1760458094.git.dmytro._5Fprokopchuk1@epam.com/
>>> ---
>>>  .../eclair_analysis/ECLAIR/deviations.ecl     |  8 ++++++
>>>  docs/misra/deviations.rst                     |  8 +++++-
>>>  docs/misra/rules.rst                          |  7 +++++-
>>>  xen/common/version.c                          | 25 +++++++++++++++++++
>>>  4 files changed, 46 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> index 7f3fd35a33..219ba6993b 100644
>>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> @@ -375,6 +375,14 @@ constant expressions are required.\""
>>>  }
>>>  -doc_end
>>>  
>>> +-doc_begin="Conversion from unsigned long or (void *) to a function pointer can restore full information, provided that the source type has enough bits to restore it."
>>> +-config=MC3A2.R11.1,casts+={safe,
>>> +  "from(type(canonical(builtin(unsigned long)||pointer(builtin(void)))))
>>> +   &&to(type(canonical(__function_pointer_types)))
>>> +   &&relation(definitely_preserves_value)"
>>> +}
>>> +-doc_end
>>> +
>>>  -doc_begin="The conversion from a function pointer to a boolean has a well-known semantics that do not lead to unexpected behaviour."
>>>  -config=MC3A2.R11.1,casts+={safe,
>>>    "from(type(canonical(__function_pointer_types)))
>>> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
>>> index 3271317206..b3431ef24e 100644
>>> --- a/docs/misra/deviations.rst
>>> +++ b/docs/misra/deviations.rst
>>> @@ -366,11 +366,17 @@ Deviations related to MISRA C:2012 Rules:
>>>       - Tagged as `safe` for ECLAIR.
>>>  
>>>     * - R11.1
>>> -     - The conversion from a function pointer to unsigned long or (void \*) does
>>> +     - The conversion from a function pointer to unsigned long or '(void *)' does
>>>         not lose any information, provided that the target type has enough bits
>>>         to store it.
>>>       - Tagged as `safe` for ECLAIR.
>>>  
>>> +   * - R11.1
>>> +     - Conversion from unsigned long or '(void *)' to a function pointer can
>>> +       restore full information, provided that the source type has enough bits
>>> +       to restore it.
>>> +     - Tagged as `safe` for ECLAIR.
>>> +
>>>     * - R11.1
>>>       - The conversion from a function pointer to a boolean has a well-known
>>>         semantics that do not lead to unexpected behaviour.
>>> diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
>>> index 4388010ec9..4e94251887 100644
>>> --- a/docs/misra/rules.rst
>>> +++ b/docs/misra/rules.rst
>>> @@ -431,7 +431,12 @@ maintainers if you want to suggest a change.
>>>       - All conversions to integer types are permitted if the destination
>>>         type has enough bits to hold the entire value. Conversions to bool
>>>         and void* are permitted. Conversions from 'void noreturn (*)(...)'
>>> -       to 'void (*)(...)' are permitted.
>>> +       to 'void (*)(...)' are permitted. Conversions from unsigned long or
>>> +       '(void *)' to a function pointer are permitted.
>>> +       Example::
>>> +
>>> +           unsigned long func_addr = (unsigned long)&some_function;
>>> +           void (*restored_func)(void) = (void (*)(void))func_addr;
>>>  
>>>     * - `Rule 11.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_11_02.c>`_
>>>       - Required
>>> diff --git a/xen/common/version.c b/xen/common/version.c
>>> index 553b97ba9b..674bd72b31 100644
>>> --- a/xen/common/version.c
>>> +++ b/xen/common/version.c
>>> @@ -217,6 +217,31 @@ void __init xen_build_init(void)
>>>  #endif /* CONFIG_X86 */
>>>  }
>>>  #endif /* BUILD_ID */
>>> +
>>> +/*
>>> + * This assertion checks compatibility between 'unsigned long', 'void *',
>>> + * and function pointers. This is true for most supported architectures,
>>> + * including X86 (x86_64) and ARM (arm, aarch64).
>>> + *
>>> + * For more context on architecture-specific preprocessor guards, see
>>> + * docs/misc/C-language-toolchain.rst.
>>> + *
>>> + * If porting Xen to a new architecture where this compatibility does not hold,
>>> + * exclude that architecture from these checks and provide suitable commentary
>>> + * and/or alternative checks as appropriate.
>>> + */
>>> +static void __init __maybe_unused build_assertions(void)
>>> +{
>>> +    /*
>>> +     * Exclude architectures where function pointers are larger than data pointers:
>>> +     * - PowerPC: uses function descriptors (code address + TOC pointer).
>>> +     */
>>
>> Yes, it uses function descriptors (aiui they consist of three longs, not just
>> two though), but "function pointers are larger than data pointers" is still
>> wrong there, which is why (as you indicated before) ...
>>
>>> +#if !defined(__powerpc__)
>>> +    BUILD_BUG_ON(sizeof(unsigned long) != sizeof(void (*)(void)));
>>> +    BUILD_BUG_ON(sizeof(void *) != sizeof(void (*)(void)));
>>> +#endif
>>
>> ... these checks still will not cause build breakage even if enabled for PPC.
>> At least aiui (what is being passed around are pointers to function
>> descriptors). IOW I don't view it as justified to exclude PPC here, at least
>> not yet.
> 
> Could the patch be committed without the #if !defined(__powerpc__) /
> #endif chunk considering that according to Dmytro it should pass the
> pipeline anyway?

And with the comment also dropped (or adjusted accordingly).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 07:36:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 07:36:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182581.1505441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTEkc-0001Db-Hm; Wed, 10 Dec 2025 07:36:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182581.1505441; Wed, 10 Dec 2025 07:36:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTEkc-0001DU-FB; Wed, 10 Dec 2025 07:36:42 +0000
Received: by outflank-mailman (input) for mailman id 1182581;
 Wed, 10 Dec 2025 07:36: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 <SRS0=K7qh=6Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTEkb-0001DO-An
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 07:36:41 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f726fa45-d59a-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 08:36:39 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4779cc419b2so72516305e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 23:36:39 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbfee66sm35676864f8f.11.2025.12.09.23.36.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 23:36:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f726fa45-d59a-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765352199; x=1765956999; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=go6ZHJrR9BM+SUNWAakTKe+S6zWt84zweh1afgbX1Y8=;
        b=UMWyUModvJW4tZ7k+roDh/QbML1DuDclnsg8VMKpYh1JQorbgEpzTM5lEam4CaLzwQ
         Ga727Xwsxpoz7iQRA2/7d+enAHgYEaZH+8DxrUv0whRXbSW6P8XK6JAS6iROsYQd11nA
         5mO2kmBXmF0h7kr9dDpi2GsNAK3MC3cXZiSGmL0PNJs9c7KiHPmVHMjm2ZF3DbbHxOny
         KRmyqFhDamZheT3xDVP+B7OdBkSMJPyDbYv/pfRJbYvut9bwipUdqmzyuKTUHUD3Bg+f
         5qAbnGBUQQhEsdAHnmKuQJOTGvYEaBndKEcu7RRfjtRnpmPPRrognuGw8FmyQR9VpR58
         lk4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765352199; x=1765956999;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=go6ZHJrR9BM+SUNWAakTKe+S6zWt84zweh1afgbX1Y8=;
        b=Ok1W6jWQWw/5GtHTzK6U7w9Ta/kMpmvBX3+fnq9JmDMlMlhw5JJS+CU7vMh/B6sQJj
         EKqX0tN0dWiAv5DvIwlHbw1jgMb54sjViFcjhJwbWUe3KKa9ysI88LxyXb5t4wH58owW
         K4eZ+nsupSXs+OhU/cumVJYKm5icyrlPNvhk7b3A351DVlhy/aJNiPBssyGARkJiRVWC
         i3CUiuNayucY+TbRQNbDvslVPincy9wY7cmVUJWDl6r8MOeBIgvkxEnT4QKPuBCeiadC
         UX2zF7svQVzpm3C9EVgMVP3a7Dg3sOdwjEswoi8781jb92PXa2bifN9Mwb4aMPtpjlVx
         K+3Q==
X-Gm-Message-State: AOJu0Yyu9Sv/GcaZmVROejG2vKeVzXzCQ0+qFodk/dpZ9eCC94OAO0M+
	3P+AFL7RSfaU8oBjfDJcFmdGUNZmkd8F0AfBgORgYS9GXFOddpThRAMbWJ2N2Hy6kg==
X-Gm-Gg: AY/fxX4PlKX+53GUvs9+gcCsjEBeTHSNCG3J4Cx2lxm1OU8BetCC1XUmGaaT2xoUK9Y
	yNK8LGFA1a0048jkHx9ib7hb+fQLka7F52LWf13o0lNmXAHpPiuD2GIWGxIVreLuCSHA2K1sIne
	jPY6sLdaoAQ2mll1bmhWikK9VaVonAJr/UeDWZqiTAfmrEsjA8qnAYD1VbmKZjJN+Sgn2jU7YEp
	S3TlvCdTjiYOgVb4Dl4ilROtCBs/cqUNBcWsm6zWrLPh6kjPm+GcNGSZ+bImlZ4J5Q7tEsJO/pw
	xMmP+d49yA356pi2SDctM0qWnYb+/EOLqs1SpUGL2FrBkMy/pql0DIuMVtKLf0cJTcN/p44dBTb
	0QPiIOE0CLzBQHHlZtz3QLO7M3jarjn0fFmhqUBBi1a/MbY1kSW1l84NuGoLso7evjeWfH/VPZl
	4uzERi2J79DlTej9K7RAbBIHmzXiZyflVse1lYeKZnHNHDG1AslL6WQ+lFITythWEH8Ttuzj3BT
	mc=
X-Google-Smtp-Source: AGHT+IGiDoOpBqwDnEOB0JZCJbkuacc58dsm1orF+paDCoXD9sTkKfrJsTU05YSZjCzSr2DsUjeLjw==
X-Received: by 2002:a5d:5f50:0:b0:427:6a3:e72f with SMTP id ffacd0b85a97d-42fa3af8c1dmr1086727f8f.34.1765352199159;
        Tue, 09 Dec 2025 23:36:39 -0800 (PST)
Message-ID: <f5a7536b-32e5-44d9-b087-556559650fd8@suse.com>
Date: Wed, 10 Dec 2025 08:36:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/domain: introduce DOMID_ANY
To: Stefano Stabellini <sstabellini@kernel.org>, dmukhin@xen.org
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
 anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com,
 roger.pau@citrix.com, dmukhin@ford.com
References: <20250924030630.122229-2-dmukhin@ford.com>
 <alpine.DEB.2.22.394.2512091704020.19429@ubuntu-linux-20-04-desktop>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <alpine.DEB.2.22.394.2512091704020.19429@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.12.2025 02:04, Stefano Stabellini wrote:
> On Tue, 23 Sep 2025, dmukhin@xen.org wrote:
>> From: Denis Mukhin <dmukhin@ford.com> 
>>
>> Add a new symbol DOMID_ANY aliasing DOMID_INVALID to improve the readability
>> of the code.
>>
>> Update all relevant domid_alloc() call sites.
>>
>> Amends: 2d5065060710 ("xen/domain: unify domain ID allocation")
>> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

The other day concern was voiced over aliasing DOMID_ANY with DOMID_INVALID.
I don't recall though who it was or where.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 07:47:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 07:47:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182596.1505451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTEvJ-0003Ff-Lv; Wed, 10 Dec 2025 07:47:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182596.1505451; Wed, 10 Dec 2025 07:47:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTEvJ-0003FY-J6; Wed, 10 Dec 2025 07:47:45 +0000
Received: by outflank-mailman (input) for mailman id 1182596;
 Wed, 10 Dec 2025 07:47:44 +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 <SRS0=K7qh=6Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTEvI-0003FR-Jv
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 07:47:44 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 829166f6-d59c-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 08:47:43 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4779aa4f928so65630075e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Dec 2025 23:47:43 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a82d26f5asm29189765e9.5.2025.12.09.23.47.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Dec 2025 23:47:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 829166f6-d59c-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765352862; x=1765957662; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=eprrhfRj3nLrnvsgngCIE6OvGdb1CaqJ1OF6INC752M=;
        b=K3vXWaFgUkugeTrSNQ9RDQ9WNgJL9s1la2jlwgjDp4G3vZeyhFsBJ9KlXAxplDwfKF
         MnxE1Ra5bw4mb2UMPDP0EJ1pFeubosPxTj8QS2vniPbyLxjepMIdeND6EiZyTVt37sZr
         gpxTSxSMYk4JZKorQtA6Vc9sclr190y31x7qorRCzm4+HcEt9NtX3SwEYZogN5YGdaMF
         ASUTAPOFWTOfnX3K0fnN9SNaDCQopaBFJHsbNMxGh7ieGxcRfaILxnolWIF4bM8a7wyZ
         6LVZ5Dzyuk3VLEztB+uTDqSL59w8/QYA7dIIRLWnJYsCtPQVOe1MKAyrcMd61KFiKigj
         qyRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765352862; x=1765957662;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eprrhfRj3nLrnvsgngCIE6OvGdb1CaqJ1OF6INC752M=;
        b=qX8alrCv/SnjRR47qqXU8SLeuDcwM6PszAJ7UZ1PylGAIn5S2czrJ4InK5H9vyrlxy
         toKrBqOZEsR0v3RhzyjhVXVIeL/81nF2nFS3Hni2V8i8FMKl5naFs/5lejHUTtSqs+uD
         ulW2AS0/225DLPP4GuV1aBlZin8xnMOBOQVgC7F66xYiNmt07DsTFai/KnHeF5k+ptVf
         5dSge3iyuomCTpEChsUvczYZ1eQin6vzmv+hch3vIbvRICPQ8M0eEcaBmVUJfcke7dqf
         XZ1yNWLOAqX8e5xjLxbVfdnK65aT63LJ9pbfCXoXmiH6tc6cQGdcakQuVeiNe5ivT8FW
         urCQ==
X-Forwarded-Encrypted: i=1; AJvYcCUEJyTiywB0J/aSsdXD1wRdSRetO1Xxv8CVZTY8kK7y61rf5KyEqEFZHRAdYFfeZ0xD7L5ZY0d/QYE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw5OPjn2IEzbXNEKZpo0OH7F3Rw8on7nAKTHGGb/lplBetuAGPe
	gvKEVx5+SoHbgymBpHZL2BeArUNaa8VdvUmqAoUmirEati94VfPXAeQp/6Y1BFpkLQ==
X-Gm-Gg: ASbGncsj1mN1N//wNQ5IpQq45UEv6+Il7De5ism2EizVGuqUyAhCQyjt+rKq2WL0WoC
	T9uXfSOXMMygkDV/QPTwuK2+RMzhoU6+GmV23nDMFMHXxpUotwp7y6h21WlnfYiTzsw8gCHtYL2
	e7CBxEajpDzo8pTC9PAQNGmWfAQHjfcCApb6oX8hpb3R8CdG0CLUIUQhrrASUJRCm2V/XjujY9z
	BgppatgD4j3kCnQtYnIEGVgZDg0hfssWjmrePY3WaMat27V2CtCpxHtFcY62ob58oDqYZvDG0JW
	Dgrbm9NGzkme5rfllKKDloI+qOGA4GOZqoijrwNUkWdo1TjYvIDco63cO/5v7w14oyeXJEfLhki
	lu/tdJyfK+nNOf9VmgAwN5FgwpqAYviOJTMkUcXMc+UQPnn+KszgOQIw1QK1DdE9cXKTtQ6oWCm
	xTzjR/JR9HMygsQwXcIsLmBYEjDQ1xTy9SDiwMlMm+c6aM4JUqheo5R0YvToOOwNyuZNx9R8Slu
	a9UPwxMxg4a0w==
X-Google-Smtp-Source: AGHT+IFUKuR0uj/RqHsIPIjzyahs1mbfNZxgsCWOJUTI6ZFwVjk5O86SOfrXpmCCkVcRqpSqTlRsmg==
X-Received: by 2002:a05:600c:8709:b0:477:58:7cf4 with SMTP id 5b1f17b1804b1-47a837fe50amr14964405e9.4.1765352862605;
        Tue, 09 Dec 2025 23:47:42 -0800 (PST)
Message-ID: <4880e134-2b5d-47af-8cd9-16706f2285fb@suse.com>
Date: Wed, 10 Dec 2025 08:47:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pv: Move hv_compat_vstart into pv_domain
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Grygorii Strashko <grygorii_strashko@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251209182639.2171895-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251209182639.2171895-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.12.2025 19:26, Andrew Cooper wrote:
> The hv_compat_vstart variable is hidden behind CONFIG_PV32 but lives in
> arch_domain.  Moving it into pv_domain is an obvious improvement.
> 
> The value however is less obvious, and a mess.
> 
> In !PV32 builds, it's uniformly 0, but in PV32 builds it's ~0U (HVM guests),
> __HYPERVISOR_COMPAT_VIRT_START (PV guests), or custom (PV32 dom0).  This seems
> to work because uses are guarded behind is_pv32_{domain,vcpu}().
> 
> Simplify things by leaving it as 0 in PV32 builds for most domains,
> initialising it in only in switch_compat() when a domain becomes 32bit PV.
> dom0_construct() adjusts the value after calling switch_compat().
> 
> Suggested-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Wed Dec 10 08:05:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 08:05:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182612.1505462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTFBy-0006Z2-5i; Wed, 10 Dec 2025 08:04:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182612.1505462; Wed, 10 Dec 2025 08:04:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTFBy-0006Yv-29; Wed, 10 Dec 2025 08:04:58 +0000
Received: by outflank-mailman (input) for mailman id 1182612;
 Wed, 10 Dec 2025 08:04:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=K7qh=6Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTFBw-0006Yp-Hf
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 08:04:56 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e913730c-d59e-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 09:04:54 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4779d47be12so58560645e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 00:04:54 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a82d255e7sm32759365e9.4.2025.12.10.00.04.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 00:04:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e913730c-d59e-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765353893; x=1765958693; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9rzmXT9d8zfBcFDKmkT//aaKMVUubtf7TzwjmLE8A7U=;
        b=MOYxl+zj/8pDz6pj32G+cveISlDm1nK/GdYyPA1cbaOyPkycYEYYyZjv08fHlj4pQU
         NaWQaiCBfJXpoedQuMh6ZujmhsmZDCNOQkl55cEGDKLSGBn8N7xJs+L/I9FoCb2CXehS
         sSV4fExnKdnAD1ASQsl1diUv/SYuRuASUK+/CmRkzOuUrLFuJKk7C0lR3cpwJsCrPddt
         Po9oTYbypVv0svAsNnu2Xb9iorPmolRTy7vBO+oKxNxDDYpnqPN3CpQ1Ts+QqE2pqAVE
         K/UiujcJ3YjVk5wN6eJ918NIXilBBMJC1jbyEKI/LyAxo/3SPsjbgZoxVeKy8FnWuj04
         z9qw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765353893; x=1765958693;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9rzmXT9d8zfBcFDKmkT//aaKMVUubtf7TzwjmLE8A7U=;
        b=ltKHNbY+H9bg1t2Rw0/ncMEkna1C5ClCmrjcMyKxaR2nUTdXhAY52UsCu0wv4zx8T2
         R8aTh+Ak3QR5kyhDS+oQlQ77DCQQTbp3JsyJY1NIcCRQN6hOQnf1LOATZjt2b3edDVxV
         yXdI+zc2Uh34P5ky+mF63rDyXukRpwxX6M23Ne8oM262PssTN+OtNOiKVP7UIyeQBXZ8
         uWy9ylLGPrDA6BC3w/7aYnK+AfRbxsxfgV8OfppAYE0s51UvbADMTwznOB4fKWsuMLBc
         pPzMC2Ntx5vnlaUdY0HvMWGCAed33bz5oDKu2swBx2LjDLPmOTfstysjd53P9pOZe/rX
         iBHA==
X-Forwarded-Encrypted: i=1; AJvYcCXxP/fwYE27OmAytbMQodiDzrvWdEJupoWSL9gs0XNTfKuiEiiPyfj4PiNuMRwLU8AfpNiUbOq18jU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzXNngrotA6JhumOLR7to1lbpjaRmbpaKc8RXwIhkSqn8+BEdcz
	1oBxU3s6VXjFfrC3fOEtOFBoAQ3l1c9Twk5xzyZp/R+hqOkYgNGhVjXid7gNSHMQGw==
X-Gm-Gg: ASbGncs8h/VaiA4r0PHSj8nIeOH7nmNAhrGLic5Zh+UL8eKy+xVdIv4wsT9qWU+yVq1
	IgQLM4ZYqXeM3XkNacZCE5I1ZVjAvGUtWHlhxj4K2Ym7YgLZ+wNCOqvxc7wnVjmMo29nFFUnN4/
	O0REEL/uKZFtEr7m9xKpSgtypcFUtC1iBv7EollHBiaAH5z9Wjay94DyR/9CmVOS3RHApSL3/ct
	fzKdJg8DQHl7EJ6+NBl3ix7CA//eUMaP9aZBdxx9aTLdG7XsmF+gVcxlBms+iifxto30NXqaa74
	hJR05cyDlmFl0YD3VztiEyLIxaFyjl4dy/s4PxmUko+RevJBzCKcA94kmrOdcoC2v4KWLvhCnyB
	mAwDwxHO1fO1l2f9rnBI7sK75kMRnvs/DzYRSWozEjVVdION3pWt47VQDWcikApRsZEikiSe5lQ
	zUMqX/3gn4S4tFS5FzvoZofPrCIvE1KpIWi7C61XIwFs3bEsNgh5CAo4BTApDBqElwXOP9DYMzg
	Cs=
X-Google-Smtp-Source: AGHT+IHKIaCphMmCaLpoG2yKa8huvH1TFn/4Ec6Jkk1SoqOadIcjicNB7hZdwm2YRvi5txy2qFbhIw==
X-Received: by 2002:a05:600c:1381:b0:477:7b16:5fb1 with SMTP id 5b1f17b1804b1-47a8380b264mr13135085e9.7.1765353893553;
        Wed, 10 Dec 2025 00:04:53 -0800 (PST)
Message-ID: <d6133546-fb8c-4062-ad0a-ce6e010a007d@suse.com>
Date: Wed, 10 Dec 2025 09:04:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pv: Inline domain_set_alloc_bitsize() into it's
 single caller
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251209180750.2145364-1-andrew.cooper3@citrix.com>
 <83c524ed-dec0-4792-9129-0bfc7498ac97@epam.com>
 <d8a37c7e-106f-4bb3-a4fb-3ad082cda7fa@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d8a37c7e-106f-4bb3-a4fb-3ad082cda7fa@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.12.2025 20:29, Andrew Cooper wrote:
> On 09/12/2025 7:21 pm, Grygorii Strashko wrote:
>> Hi Andrew,
>>
>> On 09.12.25 20:07, Andrew Cooper wrote:
>>> Prior to commit 02e78311cdc6 ("x86/domctl: Make
>>> XEN_DOMCTL_set_address_size
>>> singleshot") (Xen 4.9, 2016), it was possible for domains to switch
>>> to being
>>> compat, and back again.  Since then however, becoming compat is a
>>> singleton
>>> action that can't be undone.
>>>
>>>  From the context it's clear to see the is_pv_32bit_domain() check is
>>> redundant, and from the singleton nature being the only place setting
>>> physaddr_bitsize, there's no need to check it for being 0.
>>>
>>> No functional change.
>>>
>>> Co-developed-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: Jan Beulich <JBeulich@suse.com>
>>> CC: Roger Pau Monné <roger.pau@citrix.com>
>>> CC: Grygorii Strashko <grygorii_strashko@epam.com>
>>>
>>> Split out of series to simplify things.
>>>
>>> bloat-o-meter reports:
>>>
>>>    add/remove: 0/1 grow/shrink: 1/0 up/down: 25/-96 (-71)
>>>    Function                                     old     new   delta
>>>    switch_compat                                447     472     +25
>>>    domain_set_alloc_bitsize                      96       -     -96
>>>
>>> which will mostly be the LFENCEs embedded in is_pv_32bit_domain().
>>
>> Thank you for doing this.
>> Not sure if it's needed, any way.
>> Reviewed-by: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> It does help.  Technically it lets me commit the patch right now, but
> I'll leave it until at least tomorrow in case anyone else has comments.

Just to confirm:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 08:09:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 08:09:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182621.1505471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTFFm-0007Ii-Kh; Wed, 10 Dec 2025 08:08:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182621.1505471; Wed, 10 Dec 2025 08:08:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTFFm-0007Ib-Hm; Wed, 10 Dec 2025 08:08:54 +0000
Received: by outflank-mailman (input) for mailman id 1182621;
 Wed, 10 Dec 2025 08:08:53 +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 <SRS0=K7qh=6Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTFFl-0007IV-AL
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 08:08:53 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 76c22f68-d59f-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 09:08:52 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4779cb0a33fso86458395e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 00:08:51 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a82d31ec4sm33199785e9.8.2025.12.10.00.08.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 00:08:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 76c22f68-d59f-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765354131; x=1765958931; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JNXbZaDeBpgc9tYHDpHn8IZKj42FUVxc8vTWzAxDpNA=;
        b=PJXvzl0Ab9Y0GQ1Hfp+3U5UdVix71JfiZeXCQi5yZhlFvU2iN/gS3uLroFzxwKUW4F
         LoLjY6wDDh2Vnl6u2rgZOU4xWFWJ3inTIA/7GeVTkWvMzr5wPfhwIxsAXbWwWv9fZCTs
         saUryVStylLcGgbSgPph9S8Bf6On1JsWKLrFPmHW70sYMb/GaZl8v3QqvUO6odNIynmA
         hLztUtzfDyVSf1rijMvT8wwup8Eied5SK0fjEY2sRaKhMSQN7TNJmKFM+2dulMbiBB5E
         ISxxX6ghVAHZs46W6Lz/S1oMvUIJ+mZoTAYanpdp+lzs2qSVEzHcf86J6ieCVN7MrhZ+
         CxFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765354131; x=1765958931;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JNXbZaDeBpgc9tYHDpHn8IZKj42FUVxc8vTWzAxDpNA=;
        b=g9z/ImKtehDpGgJX522yFEVFt6NLIbco/FLurCmyVAUgES6owwObjr5tl9ZVCo0vwJ
         UiOYD1pg5cLBoSIkT3o+hf8Nthyk+X5ha9pL6L/MGrcny8lwxY3t1p8wI2xGXuqJgBc+
         asA88rG9E9svNvt1Imvhia4xsGkx3SZNA66FbG4+/jnEfdQF38cUs+3lZw9zKqh223NO
         S5hRBZhSJVD5ZfQQK9pu2KWIqUAC17r4rhoqI2EV2Pf/Zn3j/PraAGWhNvX7Qq7qaNOZ
         EH2vU3E8eEBvx8IkxXh1vvYkO/qOpBEnTiqBTpYvp9Z0q3RJR+DpXuseG8zEGKjiOqG8
         m2UQ==
X-Forwarded-Encrypted: i=1; AJvYcCV5WrwOYEu2R/XyM2V8NJKX8WOluAEZDON4Sx/RhMpexk4wdEFBVnnlgZyWnibzo1+BfSwLlWL9t0U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwkRi7QBfBrNbKxQjSnpxXbNCh79qKn+MMFi2xYQNrJEYMjWt+j
	YaVQJEH2Z80Py4LXwO85JHyf+hKd9XChEny6SMWBzkY6qd1iQ8PstIDtiQzq9Ps83w==
X-Gm-Gg: ASbGncsPHx60E1+NM1n+szH7mezofYEqI7E9UjysyOfls6GmjgbtgnC44qAsdtD5d8D
	/zqNhSnBH3c8iHFP5Pv+ZJhaFLcC69wrpy9HiSpMPBwISPbwqwIDo1xn8L7JlQH1zykRIfNWAJp
	Om+zqIY8cds+nXXgyDHKSL+WTFSHjQq0Cf5176ckJ8zrw2UeSEB9DLUzYKNSaT3Jmg+YRy3FBpR
	RFyJX1iWBjsUws/Rv5zEGCBsGau/KQARAcbVlof2xbTkSRa3HDYH5IrYhCa9lQ+9LK/rLSoTjE3
	o68Sw7mFJYfCSqBXUxibkNDGWGM7wWBnF1o2sthKEQ9Cja+AxJDHlRDT9kP26jF51ViSBcggLZ/
	XJq5bBAzkBYLaJG2YAfYGaurFVOR9nHsCId55DMyO6K01xFq8qcih87HR9SBbRsN2IOZ+f+8tx/
	Kf18tZ7UMGCMJbUzk4ztIPKYaEp7yWqJPQSQye/zdnXx9uunucdhimcdNiKVV3fYNXLHHUjVVkd
	6E=
X-Google-Smtp-Source: AGHT+IEUjcYotY6UOFqB6o5l1b4WriFQWSShXOxvF34d9OdO7ULVObrFG4O2ya3wPrYpII4/wp0xuw==
X-Received: by 2002:a05:600c:530e:b0:477:6d96:b3ca with SMTP id 5b1f17b1804b1-47a8380b068mr13664125e9.5.1765354131292;
        Wed, 10 Dec 2025 00:08:51 -0800 (PST)
Message-ID: <be7e41df-992a-408e-ad45-c29b4666cb9e@suse.com>
Date: Wed, 10 Dec 2025 09:08:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen: Centralize scheduler linker definition
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Victor Lira <victorm.lira@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-2-jason.andryuk@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251209214728.278949-2-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.12.2025 22:47, Jason Andryuk wrote:
> --- a/xen/include/xen/xen.lds.h
> +++ b/xen/include/xen/xen.lds.h
> @@ -173,6 +173,12 @@
>         _edevice = .;        \
>    } :text
>  
> +#define SCHEDULER_ARRAY              \
> +       . = ALIGN(8);                 \

While indeed it was 8 in all original locations, I question that for Arm32
(and a possible future RV32, for example); imo it wants to be ...

> +       __start_schedulers_array = .; \
> +       *(.data.schedulers)           \
> +       __end_schedulers_array = .;
> +
>  #ifdef CONFIG_HYPFS
>  #define HYPFS_PARAM              \
>         . = ALIGN(POINTER_ALIGN); \

... exactly like this. Preferably with that change (happy to carry out while
committing, alongside a respective addition to the description, so long as
there's agreement):
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 08:18:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 08:18:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182632.1505481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTFOV-0000ZL-ET; Wed, 10 Dec 2025 08:17:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182632.1505481; Wed, 10 Dec 2025 08:17:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTFOV-0000ZE-Bj; Wed, 10 Dec 2025 08:17:55 +0000
Received: by outflank-mailman (input) for mailman id 1182632;
 Wed, 10 Dec 2025 08:17:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=K7qh=6Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTFOU-0000Z8-56
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 08:17:54 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b896bda3-d5a0-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 09:17:51 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-477b198f4bcso55991675e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 00:17:51 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbe8f85sm37233924f8f.5.2025.12.10.00.17.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 00:17:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b896bda3-d5a0-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765354671; x=1765959471; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=v1upXWO6waVz4r+zxE5tjeRvwUENGTF8GKiALmJizbU=;
        b=OCnM3uRbEDzv659y4U5pdCRyqXjtN2Hc6134zEZzWaiRZuCLGuYnF3Mg6mggiqbrJ2
         PEPHEgMYUJh9JPd9bK2W58LI+mX0eBdJGx0YMCtdBejp3JwIr6d3Xc3GXlZwHFS5Janc
         jd2ODuVEt1CotRXju3j6TE9kI6fzjJ6CtLSPrhREP1HaaF8FgBSAUFwp5uRs5XEA48Tq
         EgBQu9hn2TwhvsPdNk85hlsXg4CQDpfQu7hZtXE0PwlDFEQvp6RnFDderlrLKjbFTs5u
         tb3fWnui5dnESdHIugAXY2fxc58Upw02TCPGMY28jd3EUWyQh1XxG7EOx1j5Dq7JJ1Vb
         Mj/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765354671; x=1765959471;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=v1upXWO6waVz4r+zxE5tjeRvwUENGTF8GKiALmJizbU=;
        b=cFc0WHmP3HqM+5u46JjatsH3n7gYZeJ5zrdzJVsPPriVw6eYbzf/xrl4l501IbKd28
         h+wneGJceLTHv9Pp7MGV66K3KMnfuF/jIKlWTYnuWrzyOwZ9zXFKDOLLf/GEnhdC2rqY
         wpd/c6XdPnE+CpHMbTC9u+86WLQaGIEYQrBw4Me22kwXdDOhcixnpS08TsTvkecVENgh
         S2PTCWFLT2n+Ni0Cf5sPESzR6sysLep8fPU+iTVTwj79bYrSxEBJ2oKCjwpJHGO/6g8b
         p+3kFgbrbmeBZvv22njg5kX7Q5vcSn9HnL5FOhARoQhOTNMoXblQtCoTMHzFqtCE/1Tp
         Fb7Q==
X-Forwarded-Encrypted: i=1; AJvYcCVj532ctlsOq1lmkCEMpV+k47Ttzo/Z7fdJzyMSc37wCM6Q5f8Ow6CekL4ywhUg0Ois5nM1ei2jcQU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwgRH4OHKLZNon8CD+64pTG5g5X4zrD0wS44LoHnRIJ6ObPxUop
	QpTWvHribRzAU6L9lAqVOMFJeyH4alwjeI0pNzmkb/EJ+lhm+xAh+Fi1Cx4gzCP+zg==
X-Gm-Gg: ASbGncsP0h4h5hL+2Sh9Q0lFruI6XMgeLVgsUNX7OqjVHI/Q9i34pjwAOP6RVXaKlxz
	qNAjHWOE8X1dhAAO9kPBWmObjNVH867V+1XoziSgIWYu+o2in+JSwhaBZPE6FKO5ERb8pJACT4N
	Id5UldNHX5WpudWuwGtGGRfDtmuEJ3hPi+8cp7vY4Zo0jD+KYEDWNCSrYyk2focDAd3qx7kwM+H
	y9OazAFacu4uBGYRWrFImG6WzdzIceGStqfYekCi6LI4i8RT1Aty+PGuSfyDdMw+zsyII5w6oJu
	UGG+8ElVvA3t+C4v3SROzpJkVkwFSolGDWvsBfhgjeKURbpJb2x3FOmBgn9dZd3UOoRqtEsPvHF
	boSPqHalarPGz3nps/563wuR6NB9i6v//YkqF86dMeiCBxDAgkn0XZTQkCTM/t7lQ6dgdFFtCwG
	bJmoD2PTb88M9YBGFr33DeqIz+MocgiNMJeVT/WkJxMWCeqpqT0TEfwlHHKrvb/BPPGkCQ7NvWB
	M0=
X-Google-Smtp-Source: AGHT+IEYa0P25ZSDvRtu9wnzfKhlKv/yrtQj6rA7B1xwizZYsKkMx/mAjHzKARKeSD1upcsQnhSozQ==
X-Received: by 2002:a05:600c:4e56:b0:471:9da:5252 with SMTP id 5b1f17b1804b1-47a8379b429mr13642825e9.29.1765354671191;
        Wed, 10 Dec 2025 00:17:51 -0800 (PST)
Message-ID: <a734eeb0-c3f2-4880-86ee-7eeeb7beeacf@suse.com>
Date: Wed, 10 Dec 2025 09:17:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Victor Lira <victorm.lira@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-3-jason.andryuk@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251209214728.278949-3-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.12.2025 22:47, Jason Andryuk wrote:
> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -469,10 +469,13 @@ all-symbols-$(CONFIG_FAST_SYMBOL_LOOKUP) += --sort-by-name
>  
>  include $(srctree)/arch/$(SRCARCH)/arch.mk
>  
> +XEN_FINAL_LDFLAGS-$(CONFIG_GC_SECTIONS) := --gc-sections
> +
>  # define new variables to avoid the ones defined in Config.mk
>  export XEN_CFLAGS := $(CFLAGS)
>  export XEN_AFLAGS := $(AFLAGS)
>  export XEN_LDFLAGS := $(LDFLAGS)
> +export XEN_FINAL_LDFLAGS := $(LDFLAGS) $(XEN_FINAL_LDFLAGS-y)
>  export CFLAGS_UBSAN

Imo the introduction of XEN_FINAL_LDFLAGS would best be a separate, prereq
change. That could then also go in already while the KEEP() issue is still
being sorted.

The appending of --gc-sections should then also be truly appending, so make
sure that e.g. anything set by arch/$(SRCARCH)/arch.mk wouldn't be purged
again. IOW I think ahead of that include we want

XEN_FINAL_LDFLAGS-y :=

> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -680,4 +680,13 @@ config PM_STATS
>  	  Enable collection of performance management statistics to aid in
>  	  analyzing and tuning power/performance characteristics of the system
>  
> +config GC_SECTIONS
> +	bool "Garbage Collect Sections"
> +	select CC_SPLIT_SECTIONS
> +	help
> +	  During final linking, garbage collect unused sections.  This will
> +	  reduce the size of the final Xen binary
> +
> +	  Only supported for ELF/Multiboot xen/xen.gz, not EFI xen.efi.

This last sentence is x86-centric, which it shouldn't be here (or it should
say that this is an x86-only aspect).

I also wonder whether this wouldn't better live next to CC_SPLIT_SECTIONS.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 08:27:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 08:27:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182648.1505491 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTFXT-0002GV-Bw; Wed, 10 Dec 2025 08:27:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182648.1505491; Wed, 10 Dec 2025 08:27:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTFXT-0002GO-9S; Wed, 10 Dec 2025 08:27:11 +0000
Received: by outflank-mailman (input) for mailman id 1182648;
 Wed, 10 Dec 2025 08:27:11 +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 <SRS0=K7qh=6Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTFXT-0002GI-0z
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 08:27:11 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 052459d4-d5a2-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 09:27:09 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-47a80d4a065so9302655e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 00:27:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d2226e7sm37437967f8f.27.2025.12.10.00.27.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 00:27:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 052459d4-d5a2-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765355229; x=1765960029; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BdMtLl7DHl/LSL2o6zidIs2GW91pzueWSz698LqefKw=;
        b=bSEsLlNuAJyQOq+T/Twx2nSHuQUi+d9akua+n/o1ahOie6hiiBFV4V9w7uwzCJz6Z0
         lWsxh/mHNtqNGZnAeSikl7CETlScrK7GRFD5rX+mLGt4BcPcK3t3deapz+H8ALTCy1ys
         L1EDo80O1zczgHAUJQRZzNuWqWXJWHqc5a89VUEn8tFxfgu7UcQ/xue1am40uES5R3oe
         MQwX4Q1E857NhUhq3os0+rB4iHsMcqmyLyQMGLUjraa0uCfxGfWGf3zo+vkNAGmFj+k8
         tnSPUhzCxZDMh6c/g5ZC8KZ1kMKorYKz4PiGuEcI89pyKtSH7gsaj3tn7LDhO82/BOOY
         ahQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765355229; x=1765960029;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BdMtLl7DHl/LSL2o6zidIs2GW91pzueWSz698LqefKw=;
        b=fodU5j94/mfp5gtXVEmcxVGIboLDNNXJlqYzQHxvquddzaL5Esel5JuljvVst8r9yU
         y5E4P/9Mstxapi/g8sUwvZ4N9NBw1Jm05fI//O1guWSLCnbeVJcRJ9Ya5eo8uGrTrlxS
         pRHHaQoEAAVwij2JP1s9tKx2SrOaFzMEPA+YoEEbuGufC5IOa5MoPSNKRfqsS1qaRqnm
         SLcl7nIgHGdIyNrCWRf0eO+TKtffyzIgOyVqZzsXu7dHKOpRDMD9VNGHwLwNS+eQYKqB
         WLREsn5+kRqLWxhBu7NMq1oquYJILWToJvLgnlNUMJ7trXCC+uu/jmMJ/Q5VMlf1IDmE
         ZZcg==
X-Forwarded-Encrypted: i=1; AJvYcCWb5GqGnzjGThpuvpjow8CETu7zYs9Bu1Xd6whDJixsBLi+EeVlu6u3KJFaWR9mfjGl/hoc9Iv5MjU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz65hEjKVBZqDESErcr5xPXCnNO6krzN6LqgMUmLTjDOWj0rzPY
	JLGCS08124XW/wEh+N5Et63J3PbmvM4zb7mgQMtG1XDFtF5HZ5Fv/1GUzInK0YuozQ==
X-Gm-Gg: AY/fxX65PCXss747ygFNFpm3IoDS83Ii5jjw3/lAQ6s79e/UhuNxHFSbvr27xdNKKr3
	2kF/kg86qkLf/f1rUnQ24dP8DILkrtGCofSOpIaIazoA3qTBRyI1jveFk/vAMbSmNEI/UfcM92E
	n5b0aF5JM7INOmnne+GkyHrSC/y3JXWxOtlfnJqCjSomsCq6VRfXvmxS7nS2UOUzbjr1HWNt+c0
	zBNcxrsKdpg1Tz6IG0VASlZ1dQDMi1i1J8ZkGtWG1ytXfpnG/D7ufSSLQV4Z1PC3ckjBH7NvZKc
	DqsyGgBQ/s0o4u39XmOokbHuTvIMakLoUS3Uaubx8wLFIv6nOsbi/N012OCABvPQltmNwuw5epQ
	9WWr843XQr+TheHc02vx/1qA/VH0okSQB2xLBUpMUKkU2plru7ItffpiHpuK91HKbC6d1EV6yQ5
	BVXRwrZQ2omyXpD1k6IN8966Iicq0L+P4cCJD6zmbM6powyBj78ahvv6OQ/pqUPGXzkOJ5Y98U6
	Ew=
X-Google-Smtp-Source: AGHT+IGOHU4hYM3EGhhjh+6wKYKhKm9uzMPEK+hMlbIervIxdzY+xgHz2grhg3857RjvvDAnlhRyJQ==
X-Received: by 2002:a05:6000:26cc:b0:42b:5521:31c6 with SMTP id ffacd0b85a97d-42fa3b1eb5bmr1705801f8f.54.1765355229113;
        Wed, 10 Dec 2025 00:27:09 -0800 (PST)
Message-ID: <2339838e-e371-45da-a034-f4ff2b0f3cd0@suse.com>
Date: Wed, 10 Dec 2025 09:27:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/3] x86/cpu-policy: Infrastructure for CPUID leaf 0x6
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1765300623.git.teddy.astie@vates.tech>
 <dc2b4786a56811481de07bd5e97bbf1f0baeb0e9.1765300623.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <dc2b4786a56811481de07bd5e97bbf1f0baeb0e9.1765300623.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.12.2025 18:19, Teddy Astie wrote:
> From: Jan Beulich <jbeulich@suse.com>
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>

My patch has a different title and a terse, but non-empty description. Imo
you will want to simply re-base over it, integrating the minimal delta
into what is now patch 2.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 08:32:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 08:32:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182656.1505502 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTFcJ-0003xh-SO; Wed, 10 Dec 2025 08:32:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182656.1505502; Wed, 10 Dec 2025 08:32:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTFcJ-0003xa-Ou; Wed, 10 Dec 2025 08:32:11 +0000
Received: by outflank-mailman (input) for mailman id 1182656;
 Wed, 10 Dec 2025 08:32:10 +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 <SRS0=K7qh=6Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTFcI-0003xS-T8
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 08:32:10 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b7f922bd-d5a2-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 09:32:09 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4779a637712so48303675e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 00:32:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a82d218b4sm33647145e9.6.2025.12.10.00.32.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 00:32:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b7f922bd-d5a2-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765355529; x=1765960329; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6fL+85cJs7+Vfpapkn7MO/VXPFgojYSiXhZrD45GAOI=;
        b=bVRGklcypnLCpdaYELT0pwedofs3WTlAfaSW8eiVhJs9rv4YVx+zeUOVjL2pibuSsM
         u3YheqUYAwr+Sd9KtlYcNlh61qj/MYGEvf/N8LT8KT7lLapcdCrbL8ISj3yUi6S8NRUT
         mKK4sTCETBhrjpTlCPXnySZ9nOEqSxWIixdo1SRIV0JSzIwZLof1Ai5rjPysx5CtcmPX
         ndXpqN/g+sesZ5amJpfJfoaxLlexxOv4GHRwh5Q71VkFlgvob0L7jCIJxrrCoibw8r6Y
         4GsyFudfFmsf1pFzeQM2WoxS+e3rQ2jECltky7Y9Wi1L+FpTDXfnNdKi3ODuPRpPCi5Z
         e6QA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765355529; x=1765960329;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6fL+85cJs7+Vfpapkn7MO/VXPFgojYSiXhZrD45GAOI=;
        b=ZGlbYDJ+S0ctvwGPv+g9c33zRjxSv93I4TFzIu2lBXLTVQtaxxUTcJcXPVY0dEcbrp
         2S8ipG1zaAZOJpGqz9mR1D+OXOZ2mlhnm8PCW6Efr58CcfvOb7w2+k0gT4DWIcfvIJ7I
         C9DIvYmwdy7tQud6KBTl7/VUG7z180J291i0cZZDsyxOfmtcUmBP+ql+Zip8K9vIzv+C
         Yv2fxLyEAFdH8ZoUAla/q6skQ8wP/WTybzfOe6CMM8RvCJXvmw2ZhopCmCJiXo6sfdu3
         Df/vU46Gj3rRTOgCgtem4M6CEzGjBi/UyaXPTTL0f9AmXNgY0SoHmJkpLB+7L/efDoFb
         3APQ==
X-Forwarded-Encrypted: i=1; AJvYcCUDOCA7+fqSeRNCbRgDLCShqON2T87KasztvRKFI+pPjwdTE7oAN1RZ1e1EMftaVw59/1hdOkXUxvo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywq/+2TW4Xu4FR3l+nv9NRUKoyDwoV1B9mn5lVBn190NjG/MiFx
	MPDMj4UOH6Xi8L6fF9SfzAH7j9LoAZD94yTovtDIRqNj+63eROiKmi6NHbDuAFvAZQ==
X-Gm-Gg: ASbGncu6XhoNGoe6yn2D6wmCyYYS2icBzaaAcAPpavWFtJbNZmscv123xLd6/QC/faq
	RN9zWI4QBwzgwuesI1YdfQpqidsqVieqx/QUV2lUgadmJglaqG10JX/7axbX1MdtB4DqbtNETLh
	zlzn2yRXcs6xgNnAYOAy4tSk7cBW46i/+2ju7GhNUiasqa0umUcHEPEgYTL/RUt82zH+ZycN70x
	z3LS/JPVmqmpNILj4vvd9LLjUC5XOUwGHDergctQJW1nXVjPhpU+Qzeb+B58IaErh1vyLXhqxlD
	SN40ElJrWdjdQpzqp+3282XiqucPRIy/x1w/Zb2LztyDjPaAud2JVQeXlnQoU/b1W1PDaLshdJd
	6TyfRqkdxIxYyXCl5B+CCSG2v8nk56mTTdtOiCgaptsw5bgx+3U5VJrz14AiFWtWPD7jdHAx5FY
	0IlZwkWm95zP+8VCDJk4dAdhQjyzMjV9VAuUiLRjGyCeyR7z1Lh/QTiE/Jef74NBriGFvboocti
	uAXMq9Mv3ehXA==
X-Google-Smtp-Source: AGHT+IHT9y0fafOSJdK1ptYhdvP1Djd3ijQJTO7Qq+RpJ4TJR5UfuGi6Ep5LS2+fG8b2WOM2dsl3hg==
X-Received: by 2002:a05:600c:3e8d:b0:479:35e7:a0e3 with SMTP id 5b1f17b1804b1-47a8379ba35mr13603315e9.30.1765355529215;
        Wed, 10 Dec 2025 00:32:09 -0800 (PST)
Message-ID: <f4855e72-4898-487e-8240-a45c0c845b4c@suse.com>
Date: Wed, 10 Dec 2025 09:32:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/3] x86/platform: Expose DTS sensors MSR
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1765300623.git.teddy.astie@vates.tech>
 <5ae285cb5c494651c1f4842f36891eaf6dc28355.1765300623.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5ae285cb5c494651c1f4842f36891eaf6dc28355.1765300623.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.12.2025 18:19, Teddy Astie wrote:
> Intel provide CPU sensors through "DTS" MSRs. As there MSR are core-specific

Nit: s/there MSR/these MSRs/ ?

> @@ -86,6 +87,11 @@ static bool msr_read_allowed(unsigned int msr)
>  
>      case MSR_MCU_OPT_CTRL:
>          return cpu_has_srbds_ctrl;
> +    
> +    case MSR_IA32_THERM_STATUS:
> +    case MSR_TEMPERATURE_TARGET:
> +    case MSR_PACKAGE_THERM_STATUS:
> +        return raw_cpu_policy.basic.pm.dts;

I'm pretty sure it was indicated before that the raw policy is likely wrong to
use for anything like this. The host policy wants using instead, or else specific
justification should be provided.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 08:50:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 08:50:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182669.1505512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTFuM-0006sm-BL; Wed, 10 Dec 2025 08:50:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182669.1505512; Wed, 10 Dec 2025 08:50:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTFuM-0006sf-8K; Wed, 10 Dec 2025 08:50:50 +0000
Received: by outflank-mailman (input) for mailman id 1182669;
 Wed, 10 Dec 2025 08:50:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=K7qh=6Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTFuL-0006sZ-8b
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 08:50:49 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 51f1273a-d5a5-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 09:50:47 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-42b3c965cc4so255110f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 00:50:47 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbfeae9sm36761718f8f.13.2025.12.10.00.50.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 00:50:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 51f1273a-d5a5-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765356646; x=1765961446; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GdxOMJ1aJGBzhGwqmFcvqL4PlfxOe3iufLLQ1Y5HEqk=;
        b=TJu7VmColLBDTfsEpG0Qr1ddsGMn1qOFD6ysVJkbPDyFX2nLP4qPHf/W+W79OQlOYw
         jK6m34DNj9hy9FMHiNzSZVrIwuVT9WUqUsPtYtwFVtJ/61JO+wtTu6R1JaRTixzrbEGx
         ImKwMoGNwD284a/UMVgiIuJSUCf5xsrubkIZGUN0th1WcxtmEcpqg1syvBLckrkOLpLg
         SLtdUWUNRFnA3teVgVZ97/FHpRPp0IjTD6AugRPDQTC7q5i8bE2r1N9oPYat5z5HEruD
         p2xl7vWbfJYwsOjlOaWnmvESDcLal9C0ANj0sF+RQ/euI2qMp3uW94lZuhIzr2c7eehi
         bi5g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765356646; x=1765961446;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GdxOMJ1aJGBzhGwqmFcvqL4PlfxOe3iufLLQ1Y5HEqk=;
        b=qpChY6ZqUv1J+DIaOLksJjABBJHm6sopgnYiDoSenncjbRfl78qT0IKYuhBoSiYGNv
         W09bVChHd3ov7wz0mKT0zv5iYUId6NbDQfNX+4tQjwd7trYBjtIIGZmVlkzmkANauMkZ
         G8Y3Syd4Z80sqz/pywFMHAiz2B6TbaE6fdGaGUkYCnlkQ7KgBdiY+Aa6m0SRZiRvUn43
         1WusGGsp27OTol/mmZf0BdGVjPfELZDyj7pzcySkV+g3JzY4R1G1NtnNDoEOvpzJ0EZt
         NssnmnKHroZa41fPW68INVQHVFSUF+0ylJ4AtEpWfj2AH93qL107LYPJwrtjtFSBAsgW
         6pnQ==
X-Forwarded-Encrypted: i=1; AJvYcCVzqnwRa2Y33SkWleHrz6SrJqfgiItjpAoPTuKxJB3cfy7SFuMlYgH5NnZa6Ae/inuqpofk2/jekoY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwkbP/keMwHdBYZv9xxhiYJGqvfKgg8lx427y50ucq/u4pYEqPR
	ZCxKNmT+3I8+XLJd0l670c7xEu7nCPfNLUR6exRUw1wvIGiIM+FBJyi8T/yagv8qXQ==
X-Gm-Gg: AY/fxX7EYeiMHK6PlByY0TK4gaiYxitSc8H92a0oZjTT+rYCV19GxX1p7ENQZdOod7m
	kwCNBDwj0GysHHsK5v+ArfO8/ebZCh8P5tWsrK/Ifk+A44KnuzstfyiN6fJoXi/lQ0qmyx3ZUPo
	XAr0cMpaXLt7A4qIvsVN1BkBmKEQFW2XXhsYK6YRXevQIcbzm6q+b+Yt7Zgboy656xC/guvrTrd
	wRSDLLw/yPK6u//KNgxvGVwjc3ZNsSMMGrNArGc1p7EfSiNhp2du59xDHE6cRbnwvkdY+QNSpSv
	VbNzGWICUy67qMbI+I/JLeoF4xdb8wc1IEUQGxstZn+kCGf4bntNG290lUKZv9QRNONbQ69lLsG
	EuF9Sa7ETZDLZF9uI8kivOXIPi/dWNToTmkbDdz54OXNTOcNB/XicowkxMsLjKpPmcr/+7Bk6oG
	XApxEdYGe3MsqiRALD/uKPbGAptpVNsXxretEzkjr2rfihO66fha65Jrt7wvGTs7Xx2ynm29cZk
	zM19rm2VhvpTA==
X-Google-Smtp-Source: AGHT+IG/HVX6sl7qvS5HuGpSlat+cDl0LQujIDtXQf0W9f0f6s+833nAhDQegxueecICNl4wV6F+tQ==
X-Received: by 2002:a05:6000:2086:b0:42b:47ef:1d7a with SMTP id ffacd0b85a97d-42fa08621eamr4831232f8f.20.1765356646438;
        Wed, 10 Dec 2025 00:50:46 -0800 (PST)
Message-ID: <29100824-303a-46b2-b394-d15d617131bc@suse.com>
Date: Wed, 10 Dec 2025 09:50:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/3] xenpm: Add get-intel-temp subcommand
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1765300623.git.teddy.astie@vates.tech>
 <6fcfea5d3f6be1bcf1d34ea5ccec40a477100472.1765300623.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <6fcfea5d3f6be1bcf1d34ea5ccec40a477100472.1765300623.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.12.2025 18:19, Teddy Astie wrote:
> --- a/tools/misc/xenpm.c
> +++ b/tools/misc/xenpm.c
> @@ -30,6 +30,7 @@
>  #include <inttypes.h>
>  #include <sys/time.h>
>  
> +#include <xen/asm/msr-index.h>

For this to not break non-x86 builds, don't you need to constrain the building
of the tool to CONFIG_X86? (I have no clue why it is being built for Arm as
well right now, as I don't see how it could provide any value there.)

> @@ -37,6 +38,7 @@
>  
>  static xc_interface *xc_handle;
>  static unsigned int max_cpu_nr;
> +static xc_physinfo_t physinfo;
>  
>  /* help message */
>  void show_help(void)
> @@ -93,6 +95,7 @@ void show_help(void)
>              "                                           units default to \"us\" if unspecified.\n"
>              "                                           truncates un-representable values.\n"
>              "                                           0 lets the hardware decide.\n"
> +            " get-intel-temp        [cpuid]       get Intel CPU temperature of <cpuid> or all\n"
>              " start [seconds]                     start collect Cx/Px statistics,\n"
>              "                                     output after CTRL-C or SIGINT or several seconds.\n"
>              " enable-turbo-mode     [cpuid]       enable Turbo Mode for processors that support it.\n"
> @@ -1354,6 +1357,92 @@ void enable_turbo_mode(int argc, char *argv[])
>                  errno, strerror(errno));
>  }
>  
> +static int fetch_dts_temp(xc_interface *xch, uint32_t cpu, bool package, int *temp)
> +{
> +    xc_resource_entry_t entries[2] = {

Is the 2 actually useful to have here?

> +        (xc_resource_entry_t){

Why these type specifiers? They shouldn't be needed in initializers (while they
would be needed in assignments)?

> +            .idx = package ? MSR_PACKAGE_THERM_STATUS : MSR_IA32_THERM_STATUS
> +        },
> +        (xc_resource_entry_t){ .idx = MSR_TEMPERATURE_TARGET },
> +    };
> +    struct xc_resource_op ops = {
> +        .cpu = cpu,
> +        .entries = entries,
> +        .nr_entries = 2,

ARRAY_SIZE() please.

> +    };
> +    int tjmax;
> +
> +    int ret = xc_resource_op(xch, 1, &ops);
> +
> +    if ( ret <= 0 )
> +        /* This CPU isn't online or can't query this MSR */
> +        return ret ?: -EOPNOTSUPP;

xc_resource_op() doesn't return errno values, so by using -EOPNOTSUPP here you
put the caller into a difficult position when actually looking at the return
value: Does -1 mean -1 or -EPERM?

> +    if ( ret == 2 )
> +        tjmax = (entries[1].val >> 16) & 0xff;
> +    else
> +    {
> +        /*
> +         * The CPU doesn't support MSR_IA32_TEMPERATURE_TARGET, we assume it's 100 which
> +         * is correct aside a few selected Atom CPUs. Check coretemp source code for more
> +         * information.
> +         */

What is "coretemp source code" in xen.git context? (I understand you mean the
Linux driver, but that also needs saying then.)

Further please respect line length limits, also ...

> +        fprintf(stderr, "[CPU%d] MSR_IA32_TEMPERATURE_TARGET is not supported, assume "

... e.g. here.

Additionally there are still IA32 infixes here.

Finally, if this message triggers once on a system, it'll likely trigger once
per get_intel_temp()'s loop iteration. Feels like a lot of (potential) noise.

> +                "tjmax=100°C, readings may be incorrect\n", cpu);
> +        tjmax = 100;
> +    }
> +    
> +    *temp = tjmax - ((entries[0].val >> 16) & 0xff);
> +    return 0;
> +}
> +
> +
> +void get_intel_temp(int argc, char *argv[])

static?

> +{
> +    int temp, cpu = -1;
> +    unsigned int socket;
> +    bool has_data = false;
> +
> +    if ( argc > 0 )
> +        parse_cpuid(argv[0], &cpu);
> +
> +    if ( cpu != -1 )
> +    {
> +        if ( !fetch_dts_temp(xc_handle, cpu, false, &temp) )
> +            printf("CPU%d: %d°C\n", cpu, temp);
> +        else
> +            printf("No data\n");
> +        return;
> +    }
> +
> +    /* Per socket measurement */
> +    for ( socket = 0, cpu = 0; cpu < max_cpu_nr;
> +          socket++, cpu += physinfo.cores_per_socket * physinfo.threads_per_core )
> +    {
> +        if ( !fetch_dts_temp(xc_handle, cpu, true, &temp) )
> +        {
> +            has_data = true;
> +            printf("Package%d: %d°C\n", socket, temp);

%u please for socket.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 09:01:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 09:01:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182682.1505521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTG4w-0000Gi-99; Wed, 10 Dec 2025 09:01:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182682.1505521; Wed, 10 Dec 2025 09:01:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTG4w-0000Ga-6N; Wed, 10 Dec 2025 09:01:46 +0000
Received: by outflank-mailman (input) for mailman id 1182682;
 Wed, 10 Dec 2025 09:01:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=c2u0=6Q=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vTG4u-0000EX-CK
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 09:01:44 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d7b043e7-d5a6-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 10:01:42 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by DM6PR03MB4954.namprd03.prod.outlook.com (2603:10b6:5:1e2::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Wed, 10 Dec
 2025 09:01:38 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9388.013; Wed, 10 Dec 2025
 09:01:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d7b043e7-d5a6-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jioqKAXQxU87x8M3lsWes9msjOcGDJSb16H/It8keel7C5Ik1aZgy6qtYv6PsJ2is0wICcZsoBes/Ct2JWtbkIVjv+fpJWW4duhLqRBc30KqL5kENHVbosJHAZ43JhdFvN2+OrmGpZw1wuf9BPL7YZwVtqjiyRPHSGDBFK5XInhnCHqA8vo8O0HzqPynJyTfXCqlW0zkwtR2jILsoxr3EhEHU2VgoQNYZIwXvSkY9F29Xs1gj0KdtadwmQunN5/hw8V9wWwOtd14TLUFUlS1pb1fNTjnUUpkek0rQPUnaoJe3JVAuNvGe76P98YSztCF52+3TSgeC2MeCwtSjR+suQ==
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=MHtOpjToBfe+/fGHL9n3cgmGnJve/H3YqpL+esDaiZc=;
 b=Xiy8Nyr9arFIL2/0UtEocsqz8DbiGYCWClmrLI9+6GOPKOxxi15GQdQ1XmSE8oSU0yw9B/diO+lR8E3LWOdwxT/qlZzD0S2quRUp7kX0GYkDnMBD6txFJuYtt7Qfzhqq78HHx57kV+j4RFeAf/ANeUy0MlQ49kHt1c7aREOAuV3UPRwkhC8vYIrnreaUpgYTgcuSv2W7fJAbqpiDIlU0clP3tZrsE7xU7e+tu7aLTwOXP7s8nMrBY1MNiQXOtb7lGfq6BbKuIUKZiTZQqMwvYtPqP5+CYT8i/0ugSSpF7l4/ID6quj3fNkFeMc1+CgmYHJ6KUmqyFBDX8Cm2Cb4dXg==
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=MHtOpjToBfe+/fGHL9n3cgmGnJve/H3YqpL+esDaiZc=;
 b=MtXiJKYYQJdqMjoyqFqu2QnpsY4HYYniIjAtMS73U7toBSWZ7O/4qr5R6HdgbkYCAagO8BsvPaqaYWxA9UmgVhZhrOfcc8Y6l9OxhtH2YzNOfrKmKCRiOZa6bDJalJJ5AsKdwTuIySjSssNI9tj3iGDgoCih1t5EykhY4obWgRI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 10 Dec 2025 10:01:34 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	Juergen Gross <jgross@suse.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH v3 7/8] x86/mm: update log-dirty bitmap when manipulating
 P2M
Message-ID: <aTk27qyaDM9FuL33@Mac.lan>
References: <a0f019c5-4089-e19c-6041-044d6e93d80b@suse.com>
 <d47d01dd-0289-370d-7b5e-bd80f9e0a911@suse.com>
 <aTLjwbcm4fjwNJfb@Mac.lan>
 <b03a8039-e4b3-42ff-9781-031bf68ccb72@suse.com>
 <aTgJUvqTIQRc66L_@Mac.lan>
 <f09af4cf-09d7-462a-b8d1-0f2a4b3f32cc@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f09af4cf-09d7-462a-b8d1-0f2a4b3f32cc@suse.com>
X-ClientProxiedBy: PA7P264CA0243.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:371::8) To BY1PR03MB7875.namprd03.prod.outlook.com
 (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|DM6PR03MB4954:EE_
X-MS-Office365-Filtering-Correlation-Id: c709d4d2-5a24-45c5-7e39-08de37caba6b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NmpFcnByQnVxMlNLdCtFOEpnTjJlUkdtbWhsZ1lMWXFvTXFKL1BCNUkvL1JL?=
 =?utf-8?B?RjZ1aFBuRjJBbHFMQysxQllUTnJxc0NtVngxaG5HQkxnV0MydjZBaEtlZjAr?=
 =?utf-8?B?YVBsdmcvc1Nia0tXc0V1dys2OEV6YkRocGJCRWJ0RWt2RkNvTUo1RGw4ajhC?=
 =?utf-8?B?NlRKMVJXdjlYVGs3NE9RM3ZrUS9aTm1HRjFkYkdKdEErRVlBTWZaaCtoU2l2?=
 =?utf-8?B?YTJIeXRQaFhiNUliaVpPRGhZWGZ3c3NiU0tHaU41OFJMV29ld3dKdFMvNTFX?=
 =?utf-8?B?U3ZVMFJuV09kc2lXQjgzOXhob0RPY2J6L09FVDZMSk55dWczOThkL3krdnk3?=
 =?utf-8?B?RCt5eW9MZFZFa090dUJGMlBaQXAxR2pGdGE3MGJyRjc5TzVyV2FXV1VJZUlZ?=
 =?utf-8?B?eW40YUVpYXJTQ2FSMFlOOFJUMSsvTTNSZCtCeVlyeGdUSDk1TlZLOC9LQXg0?=
 =?utf-8?B?VDZ0amxnd0RQb010cUR2K0tvT21DdXlyU2I2OFZPZHpFdndUdXJWbGdUWlFW?=
 =?utf-8?B?ZjBVRnBDbFlzRDh0RFpIc1dKTFNKTnUwMjhWOFVmRkVvZWRPcXJEeWFSRVlz?=
 =?utf-8?B?eFk1YXdiRkIvak5aVEI0aGI5NnZEUUlVUm01ZzFqQmtJNGVFN0ZGbGhQLzlD?=
 =?utf-8?B?a1lyOWtYM0dpZ1hUZ2t1N1FKUGlLL05NczBmakp5dENjU20vQnN5eU9aQ2Q2?=
 =?utf-8?B?R3lUOVVMd0F0bjJObHplMlVweEs2OU1kUDkwbXlmQkJnYVh1c2JLRWd1WVpt?=
 =?utf-8?B?elUwRDFlMVV0M1hRU3ZFVGU1c1NPNm83eXhWUjB2Q2FGT045cjdDd09xOGcr?=
 =?utf-8?B?dXg3VXY5cWp0SHFIU1hOR1pFdVZiVW9JQWJBV1NVZGJLQXQ3eStySytobEgz?=
 =?utf-8?B?NURzRWY3UG5BWDd1U2hGelM3MFNIbzFISlRzVmFPeTJPNDdKSFVtZk5MMmRl?=
 =?utf-8?B?ZlhEK1hQMitHdXp0emduZHdIUGZpRjhrTEJlNUUzU3h4SzdKSlljR3Q2NGVw?=
 =?utf-8?B?QUluK0VRenNuRWd1eFUxV1k1bjlLZ2NTRytOemZSekk2TnBxcTNweFk2WDdF?=
 =?utf-8?B?ejlxYXl1SGRJeHkrRDdiRno4MDNBMWlhSTRvNGl4WE5obGl0ckcreGlCV2ZO?=
 =?utf-8?B?dXk0eUVxekthdVBQd0YwMHpOUjZ5aUVxWFZRUm5acUhmNjQ0R1AwakJVaXJy?=
 =?utf-8?B?Y3VsR0lFcXM0Y0E3Z2VBR2pzZnV3TFR5M3IzNnVlckMzRVFLWTZaZXpSU0U0?=
 =?utf-8?B?K0psZjZqd292YlFoVkllbjFDdEgyTXFmaUdTK0xSMEowTXVxTHZsS256WTlj?=
 =?utf-8?B?RTNCUHlEL1VwN20raVc1TDhkdmt3d0VjaHVEL2t0VjZ3emhBbHRUUEVZSDJr?=
 =?utf-8?B?YWpwZWIyR2xZZitsdmpINndHZm9KelJnQWVsdXBLTW40UHlpaSsrKzZKVjlx?=
 =?utf-8?B?V0xBS1NxWmhGZHRyYVV2dGNtZ1pJTDJtaEdDSzNMZmsvdjh0eFYwbnA4bml6?=
 =?utf-8?B?eFM0bkVSYmVQMFdBaEVEVkFtdGl3T3FsdVA3M2FlZDhCYThNdEVOREE1aDBR?=
 =?utf-8?B?VU9jSGN4dmxaNG1rWHMyS2hQSklmajlCWGU3S3lsL3FicEVhK2t3OVdaQlBN?=
 =?utf-8?B?bFYrL0FOWE1qNkJtNHZCTlZPRnRjREp0K2hoSkJKVWVTYzRyUkIwOUlSaFo4?=
 =?utf-8?B?bjdGWm5FSmVsUTU1NFZlcG8reXpwTCtmOEhvRjhGcHcyUUVjYkR0c3p4UEQw?=
 =?utf-8?B?cTdDbGRyQkpkL1ZsekNhNm9sUDhETFdVQTJnWHVIaUUxM3NxeFY1TFBOYnM1?=
 =?utf-8?B?V0s2NTk0cE9PeEJIMWpqdUZTTWdPNkMwQmVmNCtHZWJhUDNndkpaRHByZy8v?=
 =?utf-8?B?RkhldzZvcXkzbjhCa2RMR0tVZ3lNVVN6WXROWVp3NnRtd2U1SXRocERTMmN3?=
 =?utf-8?Q?DlmZEpveSn7ntmxdQSRs7GrqHR+DSh8t?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7875.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YXNBdGpIUnl3UHBFVnBtWU1SRUZOMWZLSW4vQjdIejEwbnFDcVlyTm5UOXVC?=
 =?utf-8?B?NFc4dUlwejNTRS9yUTNhWnc0clVYUFhlRlRFVmVrUmhJSlpzallMWnpVQXR2?=
 =?utf-8?B?dURCdFVNaHZPZDlWclF0bTg2UkxNTmZFN2JHOEFXWi9CQUxQcGpxN2g2VUdl?=
 =?utf-8?B?MlRZZlErVjdxaE83d3hNQjNiR1JUL2FZd1BqbENLV1UreWJtcDZoQlVuTWZj?=
 =?utf-8?B?UkRDOVdYeE9UT3NZU1M3MkNwTGwzTXZaWGxFZWFaZWkwMHgybXRTT0xBNmtj?=
 =?utf-8?B?bnpwWlFpbERxbWtCMm5Jei9nRkVDc3puamF5MDZYZVdWRjFZdEY0bGhXeEQ3?=
 =?utf-8?B?Qzc3TGNwUWZtYVRTc0FpTUhTQ0dUNUlvUmJiMkVEKzVoS25zWVZmUVZJOWVy?=
 =?utf-8?B?OEdLZG1jWnlDSXRIcXpUd1c2L2R1WWxDQ2p3OWNPdWtmb1d3L3d5YlNLZEQz?=
 =?utf-8?B?M2R1SHhRTWNtYlc4ZGg0MkZ4V05qa3JwdU5ybXdPak9OOTdmVHkzWHBvekxs?=
 =?utf-8?B?ZHY3NWMvRytsZW1UMXFEYVBUREhGbnlIZVVWS05xWWVQbmFDcGJEWVFyajBE?=
 =?utf-8?B?d09MdGt4cHR1UC9oU3lEeHJjK2ZyajkzeG1nRFdhc0x4VWtoei9hMkRwdHRO?=
 =?utf-8?B?bmU4UWlaYWJVSk5TdHFnOHJUeUluT3FxczFYK01EWFhJNnRwMmtkdW00MkN1?=
 =?utf-8?B?WlF1cVFnYkFHZE1KZTlnUitBeEp5c2IraU8wT3RQVDRONm1BK3kvOVZXNTdM?=
 =?utf-8?B?NGUrd3pZZmZUNlBxUUZPVXozaVBoNFNnL004SEt6d0s0YytpeUxmbVNxTTRL?=
 =?utf-8?B?RDZQNmF2WXpWdWVWbXJyaUVTNlNWMThMbnQ3dlovRUNPZ3hrMzJJSU5HVGJ4?=
 =?utf-8?B?eDlHNTJVNzgrSlBYZkNUZjNzWGhudS9yUElweW44UWtITWdzWEFmODVNcmhx?=
 =?utf-8?B?eUJnMWx6WGZ2SDFOSThmTnIxeXF0WGwvU055OUJreW9zTXJLS2lXWnJFTEVN?=
 =?utf-8?B?Y2VVNDhQZ1ZyVHJLYVJjQm5tUExHdnc5ZFlCbmk3SXl5ZDVTWVlyaHZYZ1J2?=
 =?utf-8?B?TC81ai9CaEthM01mMDJBYVZ2bHFwWFBkM2doUHg3WU5leUpwYVY0KytiL0FQ?=
 =?utf-8?B?czgwNWFydkRvNjluVDh5U0p0U0NhZndubjV5SjRoeisrcENWYXk4U3lTRldm?=
 =?utf-8?B?cHQyUWY2bkRnSGt1bTIzNmZxZDhnZDBhYmRZeTdoVk14RzhLSTRqZDZlTUI2?=
 =?utf-8?B?ZTBnUTVUNTJaSCthRlk5ZmpYRldTS3VDN0d0SXY3a09YcTBMclhhdW1SSHVH?=
 =?utf-8?B?UHBEa0o0Wk1lV0t1TVlUVSt0ZldUVGNmS3JoclBjY1BhSEN6OGk3SmJ6REpi?=
 =?utf-8?B?ejJFSEJxRzlUSXE5T24xOEt5SXFtOGRFY2t3c1JHdTlLYUN2TERHSGNrYkM1?=
 =?utf-8?B?OXhaR1JZWkhFSlNOWU1uc3k5eTQ5bDJpSSsza2NEWU53eS9sazdtbXhoVThV?=
 =?utf-8?B?aVgyUmVRZ1ZRY3dUdnpvTy9JT1FVb3NFRXNuRWY5clg0Z0JNZHByM1IrNk1F?=
 =?utf-8?B?c1FRWVFpOXZQVDlaS3ZuNE9tUnZMTUFRVFhLdm9VNEtyVTk0NW9qZmt4czNX?=
 =?utf-8?B?MEJKZFZvU0lCMXhWZ05Odkl2cUYxQWpjRXhDVlJnMlFSNnVKMWN1WGhoSHRv?=
 =?utf-8?B?K3BuSXVzcWJnYTZCemRCMjQ0bHdjb0pwZ3dlL3NlZHpiazFwL2tQeTJkVCtX?=
 =?utf-8?B?R2V3RCtmdmFGV0ZGZTNBV3BESHRCTkdOM2YzVXlodmlYQVhmenNNdkpxVXFx?=
 =?utf-8?B?TEl3T1NqVDVWek5RRnVIVEk3dG1nTEQ2SXUrRStDSXdjS3JrL1Q2RVNrRWJR?=
 =?utf-8?B?NXFiejF0cWJ3aG00RHFCUnhQcy9TWmhWdjJDK2V2c1VuMUVTeHYrRjFpdGUr?=
 =?utf-8?B?MTNqU29GYnRreHhJaVliT25OYThuMTRTVkdBN1N3RWt0Q2lEbm1NcVorRHVh?=
 =?utf-8?B?dld0bUM4YjhENDRGNXkxUXNpaEZqc1UyQXlCZUlpZWc1SGE2UjFFUVVkUysz?=
 =?utf-8?B?d2Q0Wi9Qa2tFNkVkdUZicXRvTjBEM3E3aVlrMmZHdmdkbytXeCtlQ1JYdTdP?=
 =?utf-8?Q?DS8FgwuQ3FrZLTN4J49dypQIK?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c709d4d2-5a24-45c5-7e39-08de37caba6b
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2025 09:01:38.6873
 (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: Dcv6c6WpgDAAuJ6qzK7cVwZLrpk4tLYTlkUlc8iq/n8e+WeSXMNXYBcvjULiG4prCI5GxnDZjhJKR+wCrCnyDQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4954

On Tue, Dec 09, 2025 at 12:49:59PM +0100, Jan Beulich wrote:
> On 09.12.2025 12:34, Roger Pau Monné wrote:
> > On Mon, Dec 08, 2025 at 11:48:00AM +0100, Jan Beulich wrote:
> >> On 05.12.2025 14:53, Roger Pau Monné wrote:
> >>> On Tue, Apr 26, 2022 at 12:26:10PM +0200, Jan Beulich wrote:
> >>>> --- a/xen/arch/x86/mm/p2m.c
> >>>> +++ b/xen/arch/x86/mm/p2m.c
> >>>> @@ -549,7 +549,10 @@ p2m_remove_entry(struct p2m_domain *p2m,
> >>>>          {
> >>>>              p2m->get_entry(p2m, gfn_add(gfn, i), &t, &a, 0, NULL, NULL);
> >>>>              if ( !p2m_is_special(t) && !p2m_is_shared(t) )
> >>>> +            {
> >>>>                  set_gpfn_from_mfn(mfn_x(mfn) + i, INVALID_M2P_ENTRY);
> >>>> +                paging_mark_pfn_clean(p2m->domain, _pfn(gfn_x(gfn) + i));
> >>>> +            }
> >>>>          }
> >>>>      }
> >>>>  
> >>>> @@ -737,8 +740,11 @@ p2m_add_page(struct domain *d, gfn_t gfn
> >>>>          if ( !p2m_is_grant(t) )
> >>>>          {
> >>>>              for ( i = 0; i < (1UL << page_order); i++ )
> >>>> +            {
> >>>>                  set_gpfn_from_mfn(mfn_x(mfn_add(mfn, i)),
> >>>>                                    gfn_x(gfn_add(gfn, i)));
> >>>> +                paging_mark_pfn_dirty(d, _pfn(gfn_x(gfn) + i));
> >>>
> >>> Have you considered placing the respective
> >>> paging_mark_pfn_{clean,dirty}() calls in p2m_entry_modify()?
> >>
> >> I didn't, but since you ask - I also don't think that's layering-wise
> >> an appropriate place for them to live. Whether a page has to be
> >> considered dirty needs determining elsewhere. No matter that ...
> >>
> >>> There's a lot of repetition here with regard to handling the side
> >>> effects of p2m changes that are forced into the callers, that could
> >>> likely be contained inside of p2m_entry_modify() at first sight.
> >>
> >> ... this way there is some redundancy.
> > 
> > Redundancy is one of the aspects, the other being IMO code more prone
> > to errors.  Having to do all this non-trivial extra work after a call
> > to set a p2m entry, both in the success and failure cases, seems
> > likely that it will be forgotten or incorrectly implemented by some
> > of the callers.
> > 
> > It's you doing the work to fix this, so I'm not going to insist.  It
> > seems a lot of extra complexity duplicated across multiple callers.
> > 
> > FWIW, it would be easier to understand if we had the logic to mark
> > pages as dirty in a single place, rather than scattered around
> > different callers that do p2m modifications.  For the time being I'm
> > fine with doing as you propose, but long term we should see about
> > cleaning this code IMO.
> > 
> >> Furthermore p2m_entry_modify() also isn't really suitable: We don't
> >> know the GFN there.
> > 
> > For one of the callers there's the GFN in context.  For the EPT caller
> > it will likely require some plumbing.
> 
> From a more abstract perspective, passing a GFN into that function would
> be wrong imo: Constructing a PTE may be unrelated to any particular GFN.
> The association with a GFN comes into play only when placing the PTE in
> a particular (live) page table.

But the usage of p2m_entry_modify() is not about constructing a PTE,
but getting notified on p2m changes, and any p2m entry change has an
associated GFN.

IMO the point of p2m_entry_modify() is to put all the side-effects of
p2m modifications into a single place, where it's easier to manage
them.  I think the log-dirty stuff is suitable for being one of those
p2m modification side-effects, but I'm not going to insist.

I might take a look at this myself if I get some free time.

> Furthermore it's not quite clear what the conditions would be for
> p2m_entry_modify() to actually mark a page dirty. Only new type? Might
> old type also matter (so we wouldn't mark a page needlessly as dirty)?
> Yet other criteria? That's what callers will "know" (better?).

I've just taken a quick look, but callers from the p2m tree seem to
mark pages as dirty based on the new type.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 09:24:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 09:24:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182699.1505539 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTGR4-0003PI-24; Wed, 10 Dec 2025 09:24:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182699.1505539; Wed, 10 Dec 2025 09:24:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTGR3-0003PB-Vm; Wed, 10 Dec 2025 09:24:37 +0000
Received: by outflank-mailman (input) for mailman id 1182699;
 Wed, 10 Dec 2025 09:24:36 +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
 <SRS0=XUc7=6Q=bounce.vates.tech=bounce-md_30504962.69393c4f.v1-c29e86d88d2848558ee35332438687fe@srs-se1.protection.inumbo.net>)
 id 1vTGR2-0003P5-45
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 09:24:36 +0000
Received: from mail187-28.suw11.mandrillapp.com
 (mail187-28.suw11.mandrillapp.com [198.2.187.28])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 09823c2f-d5aa-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 10:24:33 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-28.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4dR9KD0cTzzMQxjd6
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 09:24:32 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c29e86d88d2848558ee35332438687fe; Wed, 10 Dec 2025 09:24:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 09823c2f-d5aa-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1765358672; x=1765628672;
	bh=NCK83gBz0IL7Vc7Oj5GbVPeGSyxopPEmPgP348hgmvg=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=bSkyFCO1Ww4oPv2LjIAtbCjDQ2pstiKzsgpVoIahx1dOk9Wt8uaGUZG7q5v3SOsHQ
	 GIOLECyYyweXUhv4REU/HEjj96htX0/+zlnUAx2l+G8GiiN0wuL7en3JzJBeMQ/I79
	 g3VU7HXSINUEguMlazWSlgtAzjsHiYaVDeaQlwUKeWbyOQHAYxK3igqsK34BjTZib+
	 7cJLGpv4qxHSkLgFmwzLAjvUG3tqocbJkD4V5SWux9P0jygya8Ub7W0VwH+eDL4Owx
	 m6na7mSUQ6xnQUgk712GwI1EaGR1Ojv4ak5x5oeRBUrbl1h33DHHL+fH/DVevi3vk6
	 VQg4eaORZETag==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1765358672; x=1765619172; i=teddy.astie@vates.tech;
	bh=NCK83gBz0IL7Vc7Oj5GbVPeGSyxopPEmPgP348hgmvg=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=xvXyJg0B1b/ZxUb/W+HHTprvn/cUr5BxD0MfMaFnyaKbVLJZNHiyvrj9LONuXF/5a
	 lQlMJGPiY3UfqbxgUPwXabmNqq3l+CPOgjd0cmyKah69blLdxHKNT6qRJOo8+eas70
	 7kOLP0893GbWJ4FThc52BmNAuEjMGXnNzSlS+BmkA5tFLTGQvl1ZagyK+iafCNi9Hj
	 aB0bwYgKr5tf5+pzOVYflEHTpHs5x3XL9qil93nrPbkVxEV5BLJ6losCXSBdPSi21s
	 CLVh4B5ajup3U7AfAmwefVVajJNRZHeEVpdGyoUrOAdeTVzPA3/R9DWDsPHX8hqF/T
	 Rbuoc54xxqr2A==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v3=202/3]=20x86/platform:=20Expose=20DTS=20sensors=20MSR?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1765358671104
Message-Id: <dc211fcd-d0ef-4cc3-8ed7-771d835b6973@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <cover.1765300623.git.teddy.astie@vates.tech> <5ae285cb5c494651c1f4842f36891eaf6dc28355.1765300623.git.teddy.astie@vates.tech> <f4855e72-4898-487e-8240-a45c0c845b4c@suse.com>
In-Reply-To: <f4855e72-4898-487e-8240-a45c0c845b4c@suse.com>
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.c29e86d88d2848558ee35332438687fe?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251210:md
Date: Wed, 10 Dec 2025 09:24:31 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 10/12/2025 =C3=A0 09:32, Jan Beulich a =C3=A9crit=C2=A0:
> On 09.12.2025 18:19, Teddy Astie wrote:
>> Intel provide CPU sensors through "DTS" MSRs. As there MSR are core-spec=
ific
> 
> Nit: s/there MSR/these MSRs/ ?
> 

fixed

>> @@ -86,6 +87,11 @@ static bool msr_read_allowed(unsigned int msr)
>>   
>>       case MSR_MCU_OPT_CTRL:
>>           return cpu_has_srbds_ctrl;
>> +
>> +    case MSR_IA32_THERM_STATUS:
>> +    case MSR_TEMPERATURE_TARGET:
>> +    case MSR_PACKAGE_THERM_STATUS:
>> +        return raw_cpu_policy.basic.pm.dts;
> 
> I'm pretty sure it was indicated before that the raw policy is likely wro=
ng to
> use for anything like this. The host policy wants using instead, or else =
specific
> justification should be provided.
> 

Indeed, host_cpu_policy is intended here.

> Jan



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Dec 10 09:28:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 09:28:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182708.1505550 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTGUU-00045F-G7; Wed, 10 Dec 2025 09:28:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182708.1505550; Wed, 10 Dec 2025 09:28:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTGUU-000458-Cz; Wed, 10 Dec 2025 09:28:10 +0000
Received: by outflank-mailman (input) for mailman id 1182708;
 Wed, 10 Dec 2025 09:28:08 +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 <SRS0=K7qh=6Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTGUS-000452-Rt
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 09:28:08 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 89683670-d5aa-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 10:28:07 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-477b5e0323bso3468285e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 01:28:07 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a82d12257sm34247735e9.1.2025.12.10.01.28.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 01:28:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 89683670-d5aa-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765358887; x=1765963687; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6Vx/KXbJLCG6LLCav1TU/2FBVVobeYr4Pg30JIegfMs=;
        b=fMOtlLv/tgFS4MdU9ciDo4klTMli4+wcfwZvhiS//HydCtfj2w/yy8p1L9nUp0d7Nf
         BBQ3kVLRJsMzDA/Q0DLMpwinSTvajtUHZKRkDda17IlQ5KbL5+WLsKWwtqvlWqEOme09
         rRE1+c7r/bX6OHMsMW2oA/0qNrjphHG7BqJanwcySa+P8/WvmTy7yEtAsvPRXpaLSS15
         S5I8bNGjBZR+LuPxDgMfXp4R+t/sMxH27U/4RfQ9ncdbYA4QLaTFhT4NHgdSSO+tS9BO
         67VJvQscdPNQ+utRFwul9lxxiXhROIJZ5nGpOW64RScKvlbw2AY6hEykun0xRFAnHJq2
         UbRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765358887; x=1765963687;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6Vx/KXbJLCG6LLCav1TU/2FBVVobeYr4Pg30JIegfMs=;
        b=Yr9bcpOZoESh1RAiMi+khCsQf+9EEfKTRZDjoWcok4Iv8SwWq/Qo9ea/jSqQZb2SpT
         euaAaJddcKQzfNV+vjlmZYXps3upe61iwoy8+0XRqmNI7Ig7hP7EEgKJb7jHKcHg2EoO
         MgnyXbJRQVyqyGz/1Mk8JOB6eIA6WIyq99nFqAkZNxAziSsYAdgF1PHXHXE+bagQ3feV
         bhXjjrGCOT0TjuRTfhN0cOUQnFHpU0QbwGnxRaC6SQd5NMjx9KFggaHhjkRTWSVEaR8I
         s2U6ed8l05PHmTiqFmfmo08HfunJnBJym2NxG0wWh4sKR5T1+5L6urhFu22OEEkrihL1
         jSZQ==
X-Gm-Message-State: AOJu0YwndNwKSHvDMfneEGfrWXfT5B5CxxlNYNu1xVW7VqGeJMK9bxqE
	i5OstlABTQdRWL7IH8AnoiPfOpEBXgWizWkGDWE06DWtpapuke0LSWjmPRGHmkygUQ==
X-Gm-Gg: ASbGncsFdBI51N0hPI5HhxFLIQAf7o+onJ3pddJeSObfv1XPgso7O1WjUzTytPPrNVg
	cObq0ea4W8m5MWP2eOVEz83D8AauiAuMxQ8icyobFiMoLfRTA8lVjH6BcZek4HqtnI5Is3HjojM
	whQ8n+5epypzyrAAPE2PKY80SR3WULDXE5wqxnF6VFEiaMB0wpmJR6NTaRv0qFDYttUw2GBrQyd
	F3vUZzTUrlAmP3h1bNMCavbt2GW8G6tSgxohHJKgmoEbBa/+sJL5oCpNpOWd3PtscoAFaObaGqH
	RADV5CMOcedcSnvpJtHWoqUMIOQfxJr1etV71vwvfaDlmt/eK9nQsC2lA8LCjcYhYM/2rAjb123
	HXVgi72I+4nfLM6s1k3BZNXdbEG2q1Ym6QGfPDBV1PWwbnIYpWFwuPiMGbSTXhfktVYgnETFHLc
	k3lm9N09KQOoapVQjt3vTxe0Q249pJQAokOx9X6kvPsNR5qHU+8q3yWGV0kkzhzRPZYtZCNWDgk
	Sw=
X-Google-Smtp-Source: AGHT+IE8JtL7JTforua3TTeE1iQgJq7FeGCaYJmTqiT93D8SapSMdGqK42thRd2v+Xvn6t1xnBIh+w==
X-Received: by 2002:a05:600c:c0d5:b0:475:d7fd:5c59 with SMTP id 5b1f17b1804b1-47a7f95daf7mr38861375e9.16.1765358887037;
        Wed, 10 Dec 2025 01:28:07 -0800 (PST)
Message-ID: <5233c6e2-0cba-4f60-b80f-0b4857d16c98@suse.com>
Date: Wed, 10 Dec 2025 10:28:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 7/8] x86/mm: update log-dirty bitmap when manipulating
 P2M
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Juergen Gross <jgross@suse.com>, Anthony PERARD <anthony.perard@vates.tech>
References: <a0f019c5-4089-e19c-6041-044d6e93d80b@suse.com>
 <d47d01dd-0289-370d-7b5e-bd80f9e0a911@suse.com> <aTLjwbcm4fjwNJfb@Mac.lan>
 <b03a8039-e4b3-42ff-9781-031bf68ccb72@suse.com> <aTgJUvqTIQRc66L_@Mac.lan>
 <f09af4cf-09d7-462a-b8d1-0f2a4b3f32cc@suse.com> <aTk27qyaDM9FuL33@Mac.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aTk27qyaDM9FuL33@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.12.2025 10:01, Roger Pau Monné wrote:
> On Tue, Dec 09, 2025 at 12:49:59PM +0100, Jan Beulich wrote:
>> On 09.12.2025 12:34, Roger Pau Monné wrote:
>>> On Mon, Dec 08, 2025 at 11:48:00AM +0100, Jan Beulich wrote:
>>>> On 05.12.2025 14:53, Roger Pau Monné wrote:
>>>>> On Tue, Apr 26, 2022 at 12:26:10PM +0200, Jan Beulich wrote:
>>>>>> --- a/xen/arch/x86/mm/p2m.c
>>>>>> +++ b/xen/arch/x86/mm/p2m.c
>>>>>> @@ -549,7 +549,10 @@ p2m_remove_entry(struct p2m_domain *p2m,
>>>>>>          {
>>>>>>              p2m->get_entry(p2m, gfn_add(gfn, i), &t, &a, 0, NULL, NULL);
>>>>>>              if ( !p2m_is_special(t) && !p2m_is_shared(t) )
>>>>>> +            {
>>>>>>                  set_gpfn_from_mfn(mfn_x(mfn) + i, INVALID_M2P_ENTRY);
>>>>>> +                paging_mark_pfn_clean(p2m->domain, _pfn(gfn_x(gfn) + i));
>>>>>> +            }
>>>>>>          }
>>>>>>      }
>>>>>>  
>>>>>> @@ -737,8 +740,11 @@ p2m_add_page(struct domain *d, gfn_t gfn
>>>>>>          if ( !p2m_is_grant(t) )
>>>>>>          {
>>>>>>              for ( i = 0; i < (1UL << page_order); i++ )
>>>>>> +            {
>>>>>>                  set_gpfn_from_mfn(mfn_x(mfn_add(mfn, i)),
>>>>>>                                    gfn_x(gfn_add(gfn, i)));
>>>>>> +                paging_mark_pfn_dirty(d, _pfn(gfn_x(gfn) + i));
>>>>>
>>>>> Have you considered placing the respective
>>>>> paging_mark_pfn_{clean,dirty}() calls in p2m_entry_modify()?
>>>>
>>>> I didn't, but since you ask - I also don't think that's layering-wise
>>>> an appropriate place for them to live. Whether a page has to be
>>>> considered dirty needs determining elsewhere. No matter that ...
>>>>
>>>>> There's a lot of repetition here with regard to handling the side
>>>>> effects of p2m changes that are forced into the callers, that could
>>>>> likely be contained inside of p2m_entry_modify() at first sight.
>>>>
>>>> ... this way there is some redundancy.
>>>
>>> Redundancy is one of the aspects, the other being IMO code more prone
>>> to errors.  Having to do all this non-trivial extra work after a call
>>> to set a p2m entry, both in the success and failure cases, seems
>>> likely that it will be forgotten or incorrectly implemented by some
>>> of the callers.
>>>
>>> It's you doing the work to fix this, so I'm not going to insist.  It
>>> seems a lot of extra complexity duplicated across multiple callers.
>>>
>>> FWIW, it would be easier to understand if we had the logic to mark
>>> pages as dirty in a single place, rather than scattered around
>>> different callers that do p2m modifications.  For the time being I'm
>>> fine with doing as you propose, but long term we should see about
>>> cleaning this code IMO.
>>>
>>>> Furthermore p2m_entry_modify() also isn't really suitable: We don't
>>>> know the GFN there.
>>>
>>> For one of the callers there's the GFN in context.  For the EPT caller
>>> it will likely require some plumbing.
>>
>> From a more abstract perspective, passing a GFN into that function would
>> be wrong imo: Constructing a PTE may be unrelated to any particular GFN.
>> The association with a GFN comes into play only when placing the PTE in
>> a particular (live) page table.
> 
> But the usage of p2m_entry_modify() is not about constructing a PTE,
> but getting notified on p2m changes, and any p2m entry change has an
> associated GFN.
> 
> IMO the point of p2m_entry_modify() is to put all the side-effects of
> p2m modifications into a single place, where it's easier to manage
> them.  I think the log-dirty stuff is suitable for being one of those
> p2m modification side-effects, but I'm not going to insist.

I can see your point, but I'm still having trouble seeing how exactly this
would work, especially as the function then would have to have enough
knowledge to choose between calling (at most) one of paging_mark_pfn_dirty()
and paging_mark_pfn_clean().

> I might take a look at this myself if I get some free time.

In the meantime I wonder if we couldn't get this in, and then your other
already pending patch on top.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 09:35:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 09:35:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182718.1505559 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTGbj-0005cS-6A; Wed, 10 Dec 2025 09:35:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182718.1505559; Wed, 10 Dec 2025 09:35:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTGbj-0005cL-3K; Wed, 10 Dec 2025 09:35:39 +0000
Received: by outflank-mailman (input) for mailman id 1182718;
 Wed, 10 Dec 2025 09:35:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=c2u0=6Q=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vTGbi-0005cF-0V
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 09:35:38 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 94673efb-d5ab-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 10:35:35 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by SA2PR03MB5676.namprd03.prod.outlook.com (2603:10b6:806:116::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Wed, 10 Dec
 2025 09:35:31 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9388.013; Wed, 10 Dec 2025
 09:35:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 94673efb-d5ab-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=n/bPlColAkYYETPlvd4wUvhJQb2wpiKWaPM4dMS5ZzrrFQqmv22E89Vv9IRGtytw3sWBOTIzcPKqxs4fUTdzBsvak0s2kV6So91KYRFCb8j02eRsybrC2O9U1lpxHVWXLypnVhY+ioBIMjPcdYwGG/TvOQxKwek1UXnzKageAjJ+r1YY5siJAP6nZypkVGh5+MWhi/vUglQDTpck2XaLi3UCxneoy0+2zvetmzQI0/dU+WsQofd/I4uE9+e0seIdNprQhy5m5t3xIe8lMbQmwHt2a5hBvjYYBBlGnK5QDAnNJVdlmTc44cDEUN8oQNt3pblnG7CpSxEj7Lksg+zvHQ==
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=BF2tLEa1ciGn4FPlLPIZRHS9g5i/rlx0nNwf49e0PUY=;
 b=AWhfakboagIiiUdqsF2BMrjBkfWndl1s26ClKtz0a+GR/SWK4XI4i4FO5eZ5FbWQkf8zT6gCtTePOSUGIeuI6nZPZVqNiJDwzxWfQofH36vJIjAabAr40U5FvKiSGDNrhq8KWgAb87Y3g5IQgTEuM1/m7/OQiq2qBPXr2IfcrBbxjhBaH4pxFr39rQ5e4BB27lDNeDJNOKAe4QN85SeeYysIE9fzfx4hMvl7t0jjaNohFGqpE3MWDQs26I93TDuV74Lu5aRwpTvKz7ofkUZIcB8qBazsIXTQba/F/WhdlAMyrMZP0eZrdnyahj7c7eiJphLvAcR1/SeizAOrppTIQQ==
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=BF2tLEa1ciGn4FPlLPIZRHS9g5i/rlx0nNwf49e0PUY=;
 b=hi37Gq0TbuUW+Ub6e/DaHlt9Nzx1CYLyeeq10jrmGms9RcuCQzkdl0cuHIYvN8WmTJc0D4essMfhiC3NKUY8hjN7KSY+S/lxs7FWHFKsWC3V95q4iPDk2z8GSxuBS9o+5o+TsJGOMB5oFr1lgbcFxqqlnHFe9bfyFTMPA9FcNWQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH] x86/pod: fix decrease_reservation() clearing of M2P entries
Date: Wed, 10 Dec 2025 10:35:13 +0100
Message-ID: <20251210093513.59534-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PR1P264CA0057.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:2ca::7) To BY1PR03MB7875.namprd03.prod.outlook.com
 (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|SA2PR03MB5676:EE_
X-MS-Office365-Filtering-Correlation-Id: 7930c043-dfb1-4580-946f-08de37cf7620
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZUZJZVZiOXlmRFVRSFBYUlBaZHBwRGh3c0dnNTBXMTNCMFVuZEV0SmZQd2VK?=
 =?utf-8?B?S01PUlNMMWxWekVsYXUxRnpja0FFeXpUSmI1Qm1Bc1dkT1VEcWdFdmtPWU0v?=
 =?utf-8?B?by9iY1JrSlBDb0JaQXJXMHh0d0hwMURaRVB0R05lYnZLUTdUSmRHbXpteWRp?=
 =?utf-8?B?eERZeVhiS2NxSkV3TkV3YXRrRUtzWkkzL1owcGRBT1VkeDY4OGpjSGsrUkxq?=
 =?utf-8?B?cW9iUTRWN3NvTktCWkY4SU9QWDA1SkNJclN4ZTgzS1k3Nm9Jbm5zTG5WVUkx?=
 =?utf-8?B?cVgzV0tXRjlqaERFS0NINGZ3dW5PTk5OYU5QemkzcDlXdjJGRzZzL1I3cDVF?=
 =?utf-8?B?MUlUaUh4RDMvT1dMYzNDQkhqS3kwSDY1QVRVMitTSmJWQTlwcjJuM0M2dExj?=
 =?utf-8?B?TlpLdmY4bWtFdWNMcmZHZXdTK3JqSTl4QzZZU050b3ora0lmM09YNGhCQjlU?=
 =?utf-8?B?ZWdaeC84OFRwU1RpQzNCVjRJK292U1Y5S20vS2tCRE1PTmgrRXJOMnJucEhj?=
 =?utf-8?B?ak5IL2Q5MVYyL2hhT3p2bXhDNGg1Yml6dEhuMUdwQWU2YS9zSTZqWmQ5QVk3?=
 =?utf-8?B?MDhmdHNjMGo3NHVNeVJqL09nT281cVBpbE5KY0lYL0R4eDlDd3Jud1ZHNlZD?=
 =?utf-8?B?K1BJTDViK013SFNaMVRFUHlhZjRxYnAzcFJtMWZUeEFsU05jK1hBSWtTZlZM?=
 =?utf-8?B?MlNuMG9UQTBKUkhSLzh2Y0lyd1RDeFRrbEIyRm9ReXZoa0t0SWhvcnVvQmtF?=
 =?utf-8?B?WjV6cWhtTmVMQ1hFS0VWbE1TZ3VmSzA1VGtYNnR3YW9ZcUdJTUo5ZGZHOXZK?=
 =?utf-8?B?bFBGRTRoNmdlZW1WVzBNSkNyUS91UThnNHBTWlA2VkVDd051T3hGKyt1NUl0?=
 =?utf-8?B?bGJqRHRsRHdVUHpaVjRYNE9sZkNLYk4wKzUyY2lVM09EWUgrdjBRMFFNNSsy?=
 =?utf-8?B?TEtrT3JHaW5rMFBSUjVmdzNJQTYxd3IzS1l5a3FzcGhHMjRCZjhIdHdOa1Iz?=
 =?utf-8?B?Wm5RcDVOQjViMElXYzNnSktvNHIrTk5Ld3oybkg0RmpuMnl6QjR0bWU4M3dz?=
 =?utf-8?B?V3ZFZ0tjdjJHRXZmZzJwUmdnWDNqYW1qUzJoLzlXNVJHdmR3RmxqaTR3ZUhN?=
 =?utf-8?B?ZmJTU2Z5TjJTeXBidFFoZHlyT2VnRHArN1FERFk2ckF6MFJCQW9FSVZIZVJC?=
 =?utf-8?B?cXFWRXNZYW1mU3VJcjdDUnlQWjJseG9BR0JwVzFYQ2VPOTZqSitHQ0NsTEF0?=
 =?utf-8?B?ck4wZjA1Ry8wemw2VTFMOE13ZlE2OVcrUnRadlE1enZ1NlArZHJNODVyK0V4?=
 =?utf-8?B?NFBVN290UUh4ZCtMSVpOODdhY29RTkM2YnB4bVlwM3ZhMGE3OEI1UWFxNWtC?=
 =?utf-8?B?ZUhZbm1jWHZzWWtZKzlXRUlFMVRwa1AvUWE0OWJhazBKSWVXSERkWHB6a0h4?=
 =?utf-8?B?WElsOERUdFlaK0ZsT1M2U2RQN2IzNzNmS3pOR2MrdmQxYVY3bFhDc3E2Ym5I?=
 =?utf-8?B?THpIaEtDNEVCaCt3YnhTclI5WFdMM3ZJbGphcUdJdmpuWEhRZ3l4U0JyMVhG?=
 =?utf-8?B?V0Zyb3JUTWJRODQ2UUpuemZIQVlWcjJielo4aTVOYm4vZlMyTWdBYytKaTE5?=
 =?utf-8?B?YkNsOS81cGFKeVFPcm1PWHY3RVJGbEUvQXNLaU1OaXF6TTQwbU9RVElKZStp?=
 =?utf-8?B?by9od1NmdlBCdG1kSnAvQlNxQlU1b09zaTVEWkx0Q3VBUE1TendrTXdlSHIx?=
 =?utf-8?B?eTR6VlJTdElnNU5GdmI0dTkwV0FzZmU4aFFlQWdvR1ZLb0p6WjZ5V2xKQjN2?=
 =?utf-8?B?NDE1Nlp6Y3hUby9CZzFUclIzQzFiYlZIN28wQkdKbExONDcrNWFoSmxQeFpu?=
 =?utf-8?B?TDZVRUNxZ3JDVmJUNGVtWXJEOVhmb3NxUHhYU1Z4ejMzVU9mVmxIMC85VUt3?=
 =?utf-8?Q?zB1lB6g+eP0GKYuUx2xBPcXPTSGMaBdt?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7875.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MjBpSlhwei84alVmaW5mZkNFUTBXZkJFZWZzN0R3YlBKR1ZuUTBHd1RNNVA5?=
 =?utf-8?B?TTdzanpmRklIZThtdCtRV3FRMWVIMCt0blViT254OHVCK1I5S2hjVnRZdEZ4?=
 =?utf-8?B?ZkZGSFpna0ZabUYzNi9lZnh5NmR3RnUvaWdrUXh3YzVwWHJpQUlSK3N0Yyty?=
 =?utf-8?B?NGNxUTRLNWp5ekNGdXk4eDJmQ1ljNXVZRFNyWkZ6a0hIWEpLZUlHbWxjbHhF?=
 =?utf-8?B?UmN2L0d1dk5uMzlSc2RYRy9zUWU4OXo3M1FzeG5sSmpLZlMra2wvNFRKbjlw?=
 =?utf-8?B?RXBtTzRIRllCamZJcFg0MmQyMnoxdXN1U1ZqUUFHWlJZazhFRXk2a3ZBc01T?=
 =?utf-8?B?Mk5FajNPZzY0ZFZvRjhHT21lcmhobFdKVWUxYmpnVUZISmd5S0N4SkFaeEto?=
 =?utf-8?B?VndCd1dHTzVzRzBVTXFEMm01MGVHaUM1Y2JRNGltdHV5VzMwZ09zOWs3aXJr?=
 =?utf-8?B?NTJtSVBZVnVJYWNqbXRZK2JDVlA4SG0wUWpOeFVBTTFWOWRzam1kbjduclVi?=
 =?utf-8?B?dDN5NDg1UEM4UTZCVGdlQkNxdmo5U250WmphR0JFbEtVcnRaVFBMRTQyYmJ5?=
 =?utf-8?B?S0IrcE8rTzE4cXZLWVVvZlZuVnp0VTl4ZXIwQnc3MlZsb0dtbWZ4aWdXRGxi?=
 =?utf-8?B?RysxYitkdkZ1RVdtcUF3cWdCQ0hmK3Q4MkVRVFNTa2MzYmxkcE5adW90ZEsx?=
 =?utf-8?B?bVRxUHVYalJvdkRLRWxTSmpQTTBHblBDeG00MG9wdnk2TjUrZzFEKzFobjlB?=
 =?utf-8?B?OVpHbmNlQnI5T3BsSmpRVkg3NTBUVWdheWZJcFBaUnZHOG83MjVNdHR4R2kz?=
 =?utf-8?B?R1dDK29lMW1LVTNISkF5eGF0bW54N0crcDVXM3JnRHRiZWxsTEFIMnpOamc2?=
 =?utf-8?B?U05yRHFGcEY1L3FpZHpZV09DMEdZVGlzNzEyV3VCZjQxL29aYlNxMlZhaE5X?=
 =?utf-8?B?QTNPK3h3bllqRnFIdTBJcG44b0ZEZ28vTmRTSWlZbnpZSnRPTzZHUGRnUkt6?=
 =?utf-8?B?Rmw4NEQwQjFkK0JHV09jTXA4MUEvQjB1eFhDWm8wWHhXSHROWkNKUWRzSEtU?=
 =?utf-8?B?eC9xV29UYmJyWXdDRWRvZVdpRnZIWWtHVFVMWXRhRnd0TklRMC9SaUdKeEJq?=
 =?utf-8?B?azl1NS9WWTlkdzRlZ3ppUHZJZ0RhK1NSeWlENkhMNklObEtzVCs2Mi9YV0lL?=
 =?utf-8?B?VlNSQnFkUG1mNWZ5UC9hVWY4eVIzcExuSFNydGpHRUEvUlZORUpMYndSSitK?=
 =?utf-8?B?QVBLS3RvdVpYaFlNSjRNb002ekk3cWlJaVJXeHA1Q2kzRFY0TkkyazFndFVa?=
 =?utf-8?B?V3dRM2NoQVpSNm4rdlQ0K1c2SDlnTnh5ZmtkS0hSZDRvMDdsaVBkK2dpSGNa?=
 =?utf-8?B?SG9YYndSVys3bVVaMHp3cituNnN2cXYzWDk0cThYRXdiYXpkRmpHVlRoQ0hx?=
 =?utf-8?B?Z08xTUdPSmtQVm5DQ0JlRkxsT3U4Snl5aFltWW5zbFdOQmprUTVRYVZEb084?=
 =?utf-8?B?djN1cmRVWWswL2pjbi9EQ3ZmOGNEZDAvTzlqUUJIQy95bVJBRks1OTRnckQ0?=
 =?utf-8?B?UkFPQVFnajhuNUtFUmt2NzhkcUpWZG9PQXc1NmlSb3BFamwyUlIrREM0Rzlt?=
 =?utf-8?B?emVPV3UvK2FnQzYvcTVaZS9IK0pTYUh0ZDMyVmFlUEY2UjZXRGdBZjhxZWVB?=
 =?utf-8?B?dUc2TWdrUFJ5RzJ2MlFPTFNKYS9LeEx3d09keFFXaCs0Rzd4cFUzaTRzRTBS?=
 =?utf-8?B?VDdJT0IzVUZKL2VwRC9oMlUwcU9idE8zUmNaTGpDdDlXazBMalZobTNBUlpa?=
 =?utf-8?B?VEUrL3VyR2pnc00wTG1FbGwrVTM2djl1ZTNmZ0Vabk1UL3JYNVZrWHNxU0hM?=
 =?utf-8?B?elZUR25qVmZCVXNnZTFNbTZRM242K214ZjFaeGdrdFMvTGlkTE05cVVqUytM?=
 =?utf-8?B?QURyNURCWmlUbUh0R29ESVh2cHBnVXcxS2tKamNEZm13ZFV3UUtvZGtMZ0Vv?=
 =?utf-8?B?MlIwL1pJQlRieUlMbi9zNFJGdy8zOWl3MVpWeTJqbW9YMWpGa0hldUVOQm56?=
 =?utf-8?B?bUxldjB6c0Vka09weWl2cVptc3dQUUpzUm84cnpmQU5qQ2JxNzlzZ2NJVzZ3?=
 =?utf-8?Q?pDSvtp0wmbP09ivanTSx4kQvl?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7930c043-dfb1-4580-946f-08de37cf7620
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2025 09:35:31.3537
 (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: 9GpK4A/D+sXBaeNseuHIaouSel0pgiicdXg3RxR2hQMtOH02WZsXIh0YlEMjM10Nb+HD4SoU+0T7M4QGI1WaCg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5676

Add the missing index increase in the M2P clearing loop, otherwise the loop
keeps pointlessly setting the same MFN entry repeatedly.  This seems to be
an oversight from the change that introduced support to process high order
pages in one go.

Fixes: 3c352011c0d3 ("x86/PoD: shorten certain operations on higher order ranges")
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/mm/p2m-pod.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/mm/p2m-pod.c b/xen/arch/x86/mm/p2m-pod.c
index 05633fe2ac88..22dde913cc3c 100644
--- a/xen/arch/x86/mm/p2m-pod.c
+++ b/xen/arch/x86/mm/p2m-pod.c
@@ -655,7 +655,7 @@ decrease_reservation(struct domain *d, gfn_t gfn, unsigned int order)
             }
             p2m_tlb_flush_sync(p2m);
             for ( j = 0; j < n; ++j )
-                set_gpfn_from_mfn(mfn_x(mfn), INVALID_M2P_ENTRY);
+                set_gpfn_from_mfn(mfn_x(mfn) + j, INVALID_M2P_ENTRY);
             p2m_pod_cache_add(p2m, page, cur_order);
 
             ioreq_request_mapcache_invalidate(d);
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 10 09:43:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 09:43:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182729.1505569 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTGis-0007Ol-TR; Wed, 10 Dec 2025 09:43:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182729.1505569; Wed, 10 Dec 2025 09:43:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTGis-0007Oe-Qc; Wed, 10 Dec 2025 09:43:02 +0000
Received: by outflank-mailman (input) for mailman id 1182729;
 Wed, 10 Dec 2025 09:43:01 +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
 <SRS0=c2u0=6Q=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vTGir-0007OY-FG
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 09:43:01 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9cfe7a8b-d5ac-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 10:43:00 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by MW5PR03MB6908.namprd03.prod.outlook.com (2603:10b6:303:1c3::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Wed, 10 Dec
 2025 09:42:56 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9388.013; Wed, 10 Dec 2025
 09:42:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9cfe7a8b-d5ac-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=j/US6Fc0AV5g9m1MhwvT7VGpY11PG7NMRFvQ5i8pk86JKw1DCMjbjXwOChCQcRyu/xtH2UKocfRrp0Qr7EW+5BrNQ5aX37wkBVsaMQOC2N5p4qg2nGOZT9IMEmUfNpQj0LlQ7sXDLTWAaWHfDQkZaPO4OvyNWeSrkSsMwPSw8qdXkRyu4kK1FH+t1dsQzk6s/yFfuXn7Q/0QkGpMfN17qg8X9yWtStVpN2q4z6UFJ1mGYQeNIFPir2CGLzga8TNS73yDVLmsjTuaWyOMq37xB1OPU/7+GdLHpiqfaxWdzI5GPpTknFX9cxtXNDE2ZSseByni1ll4ESz5/DGO65pvmQ==
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=dieXlV8bwMjd0AXn64PR7Xdo8TAVHTZTmEXifoSNq2s=;
 b=HRY7tHLDRBhkR6WU5MJVV1uQt3Gw9LInWANEtnQNy6ntjalVdGuBMzHpCUVEszDqQE4KFAHp+mBFYyEQhM3NxShqGXCe/qYRWtxCgR/vs4jU3e09Uxo/C0P+az+nNbEP02kz6rihiPkI3SP3bMQ5LGHQDSz02UdGxyemcGmeB8MNANhFtt9aY8MC2MtKcDviHFyZoq7zFQ/kRA5Sd2JFzWjRd/PJvpkZ3qotDpFLvSNMya3fvEduAOkxI2F2G52LJ2Gg9BZnwJoK3++ggu2u8KtWTrrkxCm+Dd6taUiBZN3XE7HWPI2FspMkPTUbnVUKFgx1+J3by7kNKbagawCYZA==
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=dieXlV8bwMjd0AXn64PR7Xdo8TAVHTZTmEXifoSNq2s=;
 b=r00tQ9rsFLN2ghYYhZ6pZF05VXPxl4vTUWHjLt/Ws7a1PWLhhsq3wc2U4Iex1XQNGfPc4IIi3ayqJex54M/W546Z4RGz38+aXbhP7r4yOzULqBwhfeGNQv9AuCh+i1FNVWeZlKHyVQXjT8EmqAeKu38EAmSHLQTH7LdEQWds4QE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 10 Dec 2025 10:42:52 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	Juergen Gross <jgross@suse.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Anthony Perard <anthony.perard@citrix.com>
Subject: Re: [PATCH v3 7/8] x86/mm: update log-dirty bitmap when manipulating
 P2M
Message-ID: <aTlAnH7bei04azol@Mac.lan>
References: <a0f019c5-4089-e19c-6041-044d6e93d80b@suse.com>
 <d47d01dd-0289-370d-7b5e-bd80f9e0a911@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <d47d01dd-0289-370d-7b5e-bd80f9e0a911@suse.com>
X-ClientProxiedBy: PAZP264CA0226.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:238::17) To BY1PR03MB7875.namprd03.prod.outlook.com
 (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|MW5PR03MB6908:EE_
X-MS-Office365-Filtering-Correlation-Id: 82424824-ea7d-4eb2-be0c-08de37d07f51
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SHV3eEp0a1h2VDkrUnVjMnFrN01nb1JFTzNCRUVHemdiT1A4dERFeWxoeHg4?=
 =?utf-8?B?K2VCOUJCdHBPc3dTcjFicW9FcnU4cFFRczJBVzNhQTBweG1GU1hJb084U1pQ?=
 =?utf-8?B?M2pxZy9lUGRvbUhBckY0NC8xc2FEUW4vYjdvYUliaWlmcVU4Snd0Y3VmRjdB?=
 =?utf-8?B?U1dzQ1F0L2VZMXo0M3RyRUJUVVdHWXFrRSszajdNaDhNQXVUS2hpckR2ellP?=
 =?utf-8?B?TVlVUHJRTGt0dm5LWmZPb0FRanNPLzVnazk2T3ZYRC9TaW5FOHdYbWRlQ01W?=
 =?utf-8?B?ZFVtQVFnU205YmluN29ybVdaVkJDSGY0Nk1zRmQyUTJDdmZxUDUxY1hEZEJz?=
 =?utf-8?B?ZWFOMzFTUGYwRm45M3ZSMnIrUmZuSUMwQzk1a2pZdkJtUjlyNkdZMUV5M0xM?=
 =?utf-8?B?eTczblRSUjRiNWppZmR6UjVOK2o4RFRGZGo1aDRCUlF0VVlNYU94Mm5SNFBa?=
 =?utf-8?B?TVZOVmI1MlYzYnhMSTF4TTVZZzJQNEVOa2gxdFpQZEptMWFwSEFHMUMvK1N4?=
 =?utf-8?B?VS9uc1VFTkZVWjdDRDRiYWE5YWQxL01FMG9iRnh2bXFTNVpwMVNJc3dFME8w?=
 =?utf-8?B?YnFxWWkydTlmNXdQNUN1d1o2MkQ2cE1pR3YrVm9hNG8yODJXWGE1YmhOd2tU?=
 =?utf-8?B?S3BkZ1hHQkFZUkhESTQxV0kvNHJwa3dtTGh1ODFzMjk5RjBzMWZ0eGxhd3RT?=
 =?utf-8?B?YWZUQ2FSZ1RkWUNyUG0xYTBCS1hCSUlsVjZGbzFvVHJLWTNpN2tYUmc5Q01s?=
 =?utf-8?B?WlpZdWNQanVxcC8yYTlnbXB4c1lJVUdGa2JQUXlzSnNTS0d5K2FkdXUzZDZ4?=
 =?utf-8?B?STErMUpJVzJObmUyVFp5bDJJNSszK2g0STJrSWRQdnh6d0ZwN01MOTFYZSta?=
 =?utf-8?B?K2oxOXdEejArWWRKVGs4Si9Gcko5RW0raTVsRXpVdFBJV0dIWjhnQ2tCcXo3?=
 =?utf-8?B?YnFJWlNKcnpnT3ZxZG15T1RrN21PMlNyQ0NGTFRJakZkUDdmUno5cThBU0FY?=
 =?utf-8?B?cStnMklMaExYcDBVL0RUK0p6U2E0KzdzKzZxSXQwcmtSQVphczNuZUtENGVY?=
 =?utf-8?B?QlR1MkdMQWJYZmVoY0NyeElLMURjM0RSYmxYMzlsMSttT2FXWFNVTThGTFlJ?=
 =?utf-8?B?a0Y2ckJaelBIQU5CN3o5dXhiNS9GMXZqdXRHa1RVaVRkSkExVE9mQ3R1eGU1?=
 =?utf-8?B?US9SQTh0b0F2NzFySk1BaGJJaFYyOVNLYTJXMGVzN1dHWjM5bzZrS3I3YnEy?=
 =?utf-8?B?cWd3YmU1SXYrb3hXYzVNNGoxMFFGRm9BT0xrU1ZJbWRnc1JGQnhDWHJoNUdJ?=
 =?utf-8?B?bDVjZ1Q4SkZxdUVjdHJZcVpSRTJUdkVaQ0lEb2tBRThYVEcxejMvY0ZWbkk5?=
 =?utf-8?B?MjlpK29EclMyY0c4UXphbWVjSVdaZW9hSkt1Y1pxTGdRMkdQVG1pVmlkNi9H?=
 =?utf-8?B?OHlPclpDOVI5U1N4bXpkY2x6d09sVENjYU5iZEVkNTFZSGxMQjNYeXM5QjBn?=
 =?utf-8?B?TXdRcU9VVktGVy80RmIwQ1VVMTdUNWFjSGNnWXVIUzhVeFU4aTdPMU5LWXE4?=
 =?utf-8?B?azhRaUllUVZTbW5PNWpVVE9lY21CcmQwZmJMRWtRbllRNVE0NkdWbVFYSS9B?=
 =?utf-8?B?bVM5SlgrcENkUFdYQkN5UHdlRGtPTzVtMUIxZzVaTVk5ZjA4NXdLV2hrK2xJ?=
 =?utf-8?B?Y3NNQmVIdTNlY0hYcTJ1NVRZVXNhUXhLRGN1SHYzN0F4MFY4V3U1RGEwT0hJ?=
 =?utf-8?B?TGJEVGFSUGIrcXpLaUdMbk1QTE93NVY2Z0c2WTZWbHhKTFNHc01Qclp4L3VM?=
 =?utf-8?B?TklwNU5MYXByK2JSeEdFd3NZV2wwVzFZTEI3Z2VoM01PRmI1YUJLUE9wZnd6?=
 =?utf-8?B?dExmRDltbTBnelpFYUdHVnczM0h2Tm4wcS8vQkFvZTV4b0UwVHlKeHRIZVE0?=
 =?utf-8?Q?hd7CvnvayDcW4DUwGuKF6/kBED+u1aV9?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7875.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UjBSckdWZmUzd3dQWmdxck1YSG9VVkNXUlFXc1ZDZks1Wm9QMmpUOWxzUHhG?=
 =?utf-8?B?b0NaOHNJNGo5ZEVPYUVkcklneXpMblc0QXNoT1RCUk1reE53M2hNSGZTTjlo?=
 =?utf-8?B?bE4zUU4wanErVzE5VFBqMnh6UnNkdDBZSTd4SlluWFo1cHdjdnQ1emNhUlJq?=
 =?utf-8?B?VVovWTA4MnZEVld1THUwYWJUOFVGUGtLWGRsOHM1V0JxSm1hYzIzdVdJbkR0?=
 =?utf-8?B?VmdCT1R3TU5RT2UvWWNoa2dtSklJTmlnZ1d6TkRiWFlqTjE5cEVTSldiNTh4?=
 =?utf-8?B?bVVqVy9jL25IQnNPbFN5cGo0ZTRjcTJZQ0lHVG1JSkxQZ1AwUVJLWG52ci9K?=
 =?utf-8?B?YWswNXRTUzdoZktEc1hJemVabGFhWnpacysyRGxWejd1TEUvaS8xQnhOYjNo?=
 =?utf-8?B?SFdqOVFLYVNTZHVZSUhnZmxoOXBhbW1DQ2dTaGtwd1BsM2U0WmFMU3R5MWVv?=
 =?utf-8?B?ZGlPN2xiMmo5OE5yOVp0VTc0TlhWTHNpNGg0SDZkaWZrVGJMaEp0WmE2bmg4?=
 =?utf-8?B?eVByOXRhVjk0TFRrRXZVakoxelBoOWtrMTR3RVNhZFpCd2dpQ2xUdkxZN2cv?=
 =?utf-8?B?Smx3RndJVzNsSUhhcnJPY2xLMEhoeXpvLzBteStIOVVhRlFKb3EzcHh0ZzFF?=
 =?utf-8?B?WEJJVEVLRktMVVlrMHhtR2M1UmtDQ2hlcXVMTjhwY3JJbmEwY0VISk5ONEd6?=
 =?utf-8?B?VmxnNXdxMXVaYjZUS1BoWXprd2tyMTVRMEI0N3RnQjV6Y29IRXZna1RaUmc0?=
 =?utf-8?B?MGlBc0JxdGo4ditadkk5UE9oQXQ0Nyt0enE2MDhEL000b2NnWHdFRldVa2lz?=
 =?utf-8?B?TjhaRmRJTkdWc0QvZnZETURsUi9TK3ZIWWhWTlVGRzl2ZXowSXpHSi9Wbk9B?=
 =?utf-8?B?eERsTW0zSlVybUZ5SlJxWUFMdURSeCs5UHhrNmhyekJtOElBaW4vN3I5VWlt?=
 =?utf-8?B?MzlKTStDbDY0YmVDU3VWdmMrRU16VElVdVppaHI0aHMzSkVkdTdRSktSaTFk?=
 =?utf-8?B?dDA1eTdxMEx2M1ppelF4RlFmMy92azR1ZTNBZnlzM3lnMVJIektacGlNTGcv?=
 =?utf-8?B?ZXkyUHFwbC9BWnF2QS9GUjNaaE45c2xXT2k2dFpNYVhrWEtqNHJrcEExQ3I0?=
 =?utf-8?B?cXlKdEhZUGljUFkxeVNqM3h1aHFJb2puUXJLazVSc0VpWXdxWWJtVW1uTWZq?=
 =?utf-8?B?NmhrZzBXTno0TW54cWlheWtRZ0NhbnBQdlF0RnFzNmNHV0hHVWRoN1lrd043?=
 =?utf-8?B?Y3grTVpPVG1DVzJBSVA0dmxLWkhsMFFoTFkyalNKWkQzUUZJWkRUTFlCVWg5?=
 =?utf-8?B?elc1TVJsajByM2NHOWpUZ3RFUUIrbjB4Njl3SGgwZnJEYTFkLzZsZ1FDeHVJ?=
 =?utf-8?B?UUJ0NU03K1hsVkZlcFFSTGtMNXRZQXlrWDYvdzY3SWd3NVhPaEdySmpWS29Z?=
 =?utf-8?B?dEdjcmlIVm5WMlNOK2tCZTAvL1B6YjNhaW1aazVzSVFKWGMzTk9pWFZ2VnRZ?=
 =?utf-8?B?c3dQTjVRdS8yTzBaNjBJV0xTSzdKYnh4S0dnV3p4cVltUnd6bXRJeERSWlVu?=
 =?utf-8?B?VTgrWXgzZWt1MmFYNHhtU2RmZnhOSCtBcHIxcXFLZXRvUjd4NUFjaFB3eW9C?=
 =?utf-8?B?Z3BUNG5BQVNYNkIwaEp3emxsTlArUlhXclZXZkxQb0tudjRoaE5uam5DdjEw?=
 =?utf-8?B?N2d6dzgrMlNEWVZ2V2VxdGlFZjBTM1RaU3BkRE85NTYxYmhuZldtN1orcFRX?=
 =?utf-8?B?U21ZdFFKdHlOWmIrMlIwOEZXRWh4c3BPYWZQK2ZxZTNGNDRaTWFqYU5uTitD?=
 =?utf-8?B?QzRQOFVzeVFmczdwM3ZCZS8rcCsxZ1d5Y1J1L1BZZXBXcEMwdENMOE1vb3Jj?=
 =?utf-8?B?dUc0am0zTHBtR1NXWWNHMnptakg3YjltNnN6ekY3MnFlSld4ZUN4NUxsSGEz?=
 =?utf-8?B?Tk4ySWkzU28wa1FTWG9PVDUwR2J1RzNBUENZZUZ0K2wrU1Y0N2FqbklaMElF?=
 =?utf-8?B?RW9qb3hNd3FKWU82SlpxNEk3bEJjeE1vZlJLc0paaUZsVTZNUHArdGhFWnJH?=
 =?utf-8?B?bS9kY0tOVk41SzlvOEhYUWlJV2VRalVUNUFkQ0ljVUdndjlxRWV3M3lBRGJy?=
 =?utf-8?Q?UI0GoKegb4+UIsAP77+nmrkmT?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 82424824-ea7d-4eb2-be0c-08de37d07f51
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2025 09:42:56.4131
 (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: Vv3/lzBFc7hKnwMEcTTPH2b4qucol7jQbqb6yy+By7ypMWuYSIIRzl5PRKTbNZcGwsQZydtTfz5V/fKPNNKz2w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR03MB6908

On Tue, Apr 26, 2022 at 12:26:10PM +0200, Jan Beulich wrote:
> Just like for PV guests MMU_MACHPHYS_UPDATE implies marking of the
> respective page as dirty, additions to a HVM guest's P2M should do so.
> 
> For HVM the opposite is also true: Pages being removed from the P2M are
> no longer dirty at their prior GFN; there's no point in telling the tool
> stack to try and copy that page, when this will fail anyway (until
> perhaps a new page gets placed there). Introduce paging_mark_pfn_clean()
> (intentionally without a paging_mark_clean() counterpart) to handle
> this. Note that while there is an earlier call to set_gpfn_from_mfn() in
> guest_physmap_add_entry(), but there's little reason to mark the page
> clean there when later in the function it'll be marked dirty. This is
> even more so given that at this point it's only the M2P that gets
> updated, with the P2M still left unchanged.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

> ---
> p2m_add_page()'s error handling looks bogus in this regard anyway: If an
> error occurs before an MFN actually is assciated with the new GFN, the
> M2P entry ought to be restored imo. But of course a guest is still hosed
> if the operation succeeds partially.
> 
> Note that I've not even checked mem-paging and mem-sharing code for
> whether they may need similar adjustment. At least the latters is, aiui,
> incompatible with log-dirty mode anyway.
> ---
> v3: Re-base.
> 
> --- a/xen/arch/x86/mm/p2m.c
> +++ b/xen/arch/x86/mm/p2m.c
> @@ -549,7 +549,10 @@ p2m_remove_entry(struct p2m_domain *p2m,
>          {
>              p2m->get_entry(p2m, gfn_add(gfn, i), &t, &a, 0, NULL, NULL);
>              if ( !p2m_is_special(t) && !p2m_is_shared(t) )
> +            {
>                  set_gpfn_from_mfn(mfn_x(mfn) + i, INVALID_M2P_ENTRY);
> +                paging_mark_pfn_clean(p2m->domain, _pfn(gfn_x(gfn) + i));
> +            }
>          }
>      }
>  
> @@ -737,8 +740,11 @@ p2m_add_page(struct domain *d, gfn_t gfn
>          if ( !p2m_is_grant(t) )
>          {
>              for ( i = 0; i < (1UL << page_order); i++ )
> +            {
>                  set_gpfn_from_mfn(mfn_x(mfn_add(mfn, i)),
>                                    gfn_x(gfn_add(gfn, i)));
> +                paging_mark_pfn_dirty(d, _pfn(gfn_x(gfn) + i));
> +            }
>          }
>      }
>      else
> @@ -1096,6 +1102,7 @@ static int set_typed_p2m_entry(struct do
>                  {
>                      ASSERT(mfn_valid(mfn_add(omfn, i)));
>                      set_gpfn_from_mfn(mfn_x(omfn) + i, INVALID_M2P_ENTRY);
> +                    paging_mark_pfn_clean(d, _pfn(gfn_x(gfn) + i));
>  
>                      ioreq_request_mapcache_invalidate(d);
>                  }
> @@ -1117,6 +1124,7 @@ static int set_typed_p2m_entry(struct do
>          {
>              ASSERT(mfn_valid(mfn_add(omfn, i)));
>              set_gpfn_from_mfn(mfn_x(omfn) + i, INVALID_M2P_ENTRY);
> +            paging_mark_pfn_clean(d, _pfn(gfn_x(gfn) + i));
>          }
>  
>          ioreq_request_mapcache_invalidate(d);
> --- a/xen/arch/x86/mm/p2m-pod.c
> +++ b/xen/arch/x86/mm/p2m-pod.c
> @@ -657,7 +657,10 @@ decrease_reservation(struct domain *d, g
>              }
>              p2m_tlb_flush_sync(p2m);
>              for ( j = 0; j < n; ++j )
> +            {
>                  set_gpfn_from_mfn(mfn_x(mfn), INVALID_M2P_ENTRY);
> +                paging_mark_pfn_clean(d, _pfn(gfn_x(gfn) + i + j));
> +            }
>              p2m_pod_cache_add(p2m, page, cur_order);
>  
>              ioreq_request_mapcache_invalidate(d);
> --- a/xen/arch/x86/mm/paging.c
> +++ b/xen/arch/x86/mm/paging.c
> @@ -260,7 +260,7 @@ static int paging_log_dirty_disable(stru
>  }
>  
>  /* Mark a page as dirty, with taking guest pfn as parameter */
> -void paging_mark_pfn_dirty(struct domain *d, pfn_t pfn)
> +static void mark_pfn_dirty(struct domain *d, pfn_t pfn, bool dirty)

Nit: set_pfn_logdirty() or similar?  The function name makes it look like
it's marking the pfn as dirty (when it's also used to clear it).

No strong opinion, it just seems to me the name is slightly confusing.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 09:56:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 09:56:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182745.1505580 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTGvM-0000qL-3d; Wed, 10 Dec 2025 09:55:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182745.1505580; Wed, 10 Dec 2025 09:55:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTGvM-0000qE-0j; Wed, 10 Dec 2025 09:55:56 +0000
Received: by outflank-mailman (input) for mailman id 1182745;
 Wed, 10 Dec 2025 09:55:55 +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 <SRS0=K7qh=6Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTGvL-0000q8-55
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 09:55:55 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6a6d964e-d5ae-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 10:55:53 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-477ba2c1ca2so86295125e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 01:55:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a82d31ec4sm39263155e9.8.2025.12.10.01.55.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 01:55:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a6d964e-d5ae-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765360553; x=1765965353; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=t10g5AM0BwV633MQVA5cCi4ChuGEhbb1NFzOH96J87Y=;
        b=DSAiu+y5iTfxPkttnQqWGFofBSlgMR8D2olueBo9Gnvu2m/+PE4UFq01Co83L/CkWQ
         0Q8AFLMprGdNb4ebiXL7wp9hjvybXfWsbMTHOd1b4BcwmAfX9AOWoWurl10fbJkbNq7K
         CL53kE20RvLG1rcr/y9a8ZaU/IYjTHGsltMLPjCrnton45G6d/XxrMvvMvCoErOA5Plf
         bcl9jwEKyIpteG1w3XNkRn+qCAc2wFpF/tmFVDCIuw1JJcvX9XWcK5qQhtKzBmRhwBUZ
         H/48iUfHq5A19T8QVIk0XU5Gz8/8d0jXynyXiQZwYqo8+AMWu+pV8t8jl09eqSndb2OS
         2TMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765360553; x=1765965353;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=t10g5AM0BwV633MQVA5cCi4ChuGEhbb1NFzOH96J87Y=;
        b=WmrmL7PD4FJPxvwrZMvKieIKKk8xguTydc5jDvMPbC3LPfHSx5GqvlOqBXzJQvYoMB
         C8lf4qMgIwi8bUVbZ6yIEniTLqH+Enjv1cjd36sfOV4tprRHDV+X6nKqS0+4MxQOqdOg
         pu3vENN0a37kIDkauNlzBHesyHSy4K11x919Uzdt8ylaKUeP6V/4yW7ubGekqdhLTukj
         oZq2qHAulC3EYVGrs6NV6ILzlXJcxpip2pKroNgI9o9CKdKbOkk4+3j8KAjS7XjaI0Mp
         LfhmwgwD+UV9nlUwSW35mAW8xigdzJCSwQy7BNNhSJuldJG2rO3n4GawdXSqFrcQc4zA
         JCwA==
X-Gm-Message-State: AOJu0YwqSaCt5Sdoi043TAckH3ZI5yDZ91yRSQikc2y84nA0iZScRbXZ
	NeqjJAin+JnCN4rlInAblyc6dnR7bznvgRCfTyKIQJckxNmHPmX0q15MJaBITnHYaA==
X-Gm-Gg: ASbGncuoMRRbQa9AIKfrTsV0D5SpfYUA/Y5BSvf/ClpqslLgQ1diS8nJxl05u9RFW7W
	2SNKXmcyt8+MElyCz+964uoLuLpuyd9V2beQGQG22nmk6XuPcPvLmHtzgGSQAF9tJs4B2yHW+0c
	hfy565RihuHE8KUCA5cBHl/Yb4tICJcsFvJ9p9fyz1BBTPUnX30WrkDHqHj87ztldfs/OJ9RGHt
	xth3MfsNGY9g4n6GC9wOqzDFEivg7B6YnFq2nmN31lu12KolORUIveXpswrGexGiL+fFLVT4vnu
	Yywpu3GZxATZe7fAY5huSA+qHVj1SUdez7JOGZjlqw8tUZTmrPMMpJDvM+6nwAgsnMhyjDXggeG
	k1gLIDIs5dC6pX8FjvC1YqHAvgVJWcrPKDFyQQQ6ieB6Fslqs1UqRcgrUTRhywhoV8AiBoFjQnB
	EqXkdkxGCdLGj6LBytnp/T8r3kywvYbnanehXHTIu/AwKM/X7gpbmIg+tSTlMkShknptM4zbmkq
	hE=
X-Google-Smtp-Source: AGHT+IG1/BxPS8X03VpdE9sJ/Di0tvikrlORANkjofAu6+dJ3d+1fO4UuXIu0jYrxOESPwaJepQzkQ==
X-Received: by 2002:a05:600c:198f:b0:45d:d8d6:7fcc with SMTP id 5b1f17b1804b1-47a8384cf91mr18823795e9.27.1765360553026;
        Wed, 10 Dec 2025 01:55:53 -0800 (PST)
Message-ID: <2341ab2f-f185-4bdb-b851-5a19a820b02e@suse.com>
Date: Wed, 10 Dec 2025 10:55:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 7/8] x86/mm: update log-dirty bitmap when manipulating
 P2M
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Juergen Gross <jgross@suse.com>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <a0f019c5-4089-e19c-6041-044d6e93d80b@suse.com>
 <d47d01dd-0289-370d-7b5e-bd80f9e0a911@suse.com> <aTlAnH7bei04azol@Mac.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aTlAnH7bei04azol@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.12.2025 10:42, Roger Pau Monné wrote:
> On Tue, Apr 26, 2022 at 12:26:10PM +0200, Jan Beulich wrote:
>> Just like for PV guests MMU_MACHPHYS_UPDATE implies marking of the
>> respective page as dirty, additions to a HVM guest's P2M should do so.
>>
>> For HVM the opposite is also true: Pages being removed from the P2M are
>> no longer dirty at their prior GFN; there's no point in telling the tool
>> stack to try and copy that page, when this will fail anyway (until
>> perhaps a new page gets placed there). Introduce paging_mark_pfn_clean()
>> (intentionally without a paging_mark_clean() counterpart) to handle
>> this. Note that while there is an earlier call to set_gpfn_from_mfn() in
>> guest_physmap_add_entry(), but there's little reason to mark the page
>> clean there when later in the function it'll be marked dirty. This is
>> even more so given that at this point it's only the M2P that gets
>> updated, with the P2M still left unchanged.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

>> --- a/xen/arch/x86/mm/paging.c
>> +++ b/xen/arch/x86/mm/paging.c
>> @@ -260,7 +260,7 @@ static int paging_log_dirty_disable(stru
>>  }
>>  
>>  /* Mark a page as dirty, with taking guest pfn as parameter */
>> -void paging_mark_pfn_dirty(struct domain *d, pfn_t pfn)
>> +static void mark_pfn_dirty(struct domain *d, pfn_t pfn, bool dirty)
> 
> Nit: set_pfn_logdirty() or similar?  The function name makes it look like
> it's marking the pfn as dirty (when it's also used to clear it).
> 
> No strong opinion, it just seems to me the name is slightly confusing.

Changed. While making the change I noticed that I had one other change in
there for a possible v4. This is the extra hunk:

@@ -260,7 +260,7 @@ void paging_mark_pfn_dirty(struct domain
         return;
 
     /* Shared MFNs should NEVER be marked dirty */
-    BUG_ON(paging_mode_translate(d) && SHARED_M2P(pfn_x(pfn)));
+    BUG_ON(dirty && paging_mode_translate(d) && SHARED_M2P(pfn_x(pfn)));
 
     /*
      * Values with the MSB set denote MFNs that aren't really part of the

I hope that won't invalidate your R-b.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 09:57:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 09:57:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182755.1505589 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTGwR-0001Lt-CB; Wed, 10 Dec 2025 09:57:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182755.1505589; Wed, 10 Dec 2025 09:57:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTGwR-0001Lm-9N; Wed, 10 Dec 2025 09:57:03 +0000
Received: by outflank-mailman (input) for mailman id 1182755;
 Wed, 10 Dec 2025 09:57:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=c2u0=6Q=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vTGwQ-0001Kx-3M
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 09:57:02 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 91add010-d5ae-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 10:57:00 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by CY1PR03MB8124.namprd03.prod.outlook.com (2603:10b6:930:105::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Wed, 10 Dec
 2025 09:56:55 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9388.013; Wed, 10 Dec 2025
 09:56:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 91add010-d5ae-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nSegdbKKTv45eQx9xqWRECTk81k+/fdMVSsIHVJtJiDINURf7wn0TIL8qT5HP48/NnbfKjeFaeqSV7wYH25qIL6IFdu70dmo23QpCHSBkhprmvQqNET07rS6dtwIkYqMi275jyTP+r/MEaB/WG8IgjY4O80YRxqWN6EvlAKYxRMGaQ2GLzBpFkAphvvfRadmEfjBE3zdfI80Dm2vDOkl42We+leNpPi3HbR94YTGYPMqBr4JsehbqQN7Moj0hIz1zCL9ZnVhFimO9Q2oybpQg4dsA0wFGWT1dJwZUxxG6EXN7IbkWBCOTPM7UMXJYF48nZSE4wIa/15pmWNbNzEysw==
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=Qs2E+t1VhP5H8rhJIroQzpyOH8ZHhNkyYLyak6fFgsI=;
 b=aSrwSRP47JRqC+ebONdTz2NJUp4LAZxdRfusd27qPrNSPK4ABIJZMcfB//hNvMljK+rb6+nV6DBLDJp2IBUOVMv+zVzjGtkqwInlqPzg05ASbdfQ25awxDBORYAulgYQAU1e6jToU1LfbTze0by9qQ/LPjnZTrsyKdgl7XH9QMjssx5j3SsuxvvdapTMLMDMjERLDh8WwtgDssApWDHKhfpck+rKaAKwuhnuEEIt6WV1FVnalK35VuZt0eckVgv5A/YNRk1seW8xDCWBIuwxxICmAiJg3MCMO1FnuXhMvqsHdsO4dQn0h0c/j8wp9D/0LLQrrS1KQtDog8AEWbMYHQ==
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=Qs2E+t1VhP5H8rhJIroQzpyOH8ZHhNkyYLyak6fFgsI=;
 b=gto2ZsY/NFmkslMZiK7On3JYv6oViqEymR9F9MujU9VVSZ0pVXXgHi0v7OqINW2eOtVLu1UNCsFAr9k+RD0GlGQ9sFDueaf2xBRfMEGibW2sRc2SWref+4z9mT/ZvqpiovXok1fsH3vpaE5fw32nX2pAl8lajX0fYhttoaSUNcw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 10 Dec 2025 10:56:50 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, dmukhin@xen.org,
	xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com,
	dmukhin@ford.com
Subject: Re: [PATCH v3] xen/domain: introduce DOMID_ANY
Message-ID: <aTlD4nZSU5rXIxSo@Mac.lan>
References: <20250924030630.122229-2-dmukhin@ford.com>
 <alpine.DEB.2.22.394.2512091704020.19429@ubuntu-linux-20-04-desktop>
 <f5a7536b-32e5-44d9-b087-556559650fd8@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <f5a7536b-32e5-44d9-b087-556559650fd8@suse.com>
X-ClientProxiedBy: PA7P264CA0121.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:36e::8) To BY1PR03MB7875.namprd03.prod.outlook.com
 (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|CY1PR03MB8124:EE_
X-MS-Office365-Filtering-Correlation-Id: 0fd9ece2-1b0c-46f2-878a-08de37d27330
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VVoxeER0OENZWlJjNnduTEVMb2NVaFZkK1BvWXAySzRzZEtvV3diWFRrVWpa?=
 =?utf-8?B?L2gxam1MMWY4ZFpYY1B6OU9ZemRvc2pJbFFHdjJvdnBtQWhQZmMxNkxjaWxW?=
 =?utf-8?B?UEY5SHA5VjZDK01heDFCK1MwRHZCVzgrNEtYRUlQRXcvTlFvS3JQd0p1Q1R4?=
 =?utf-8?B?NVhEc1dpazZKVVZGckVyYi9OQk4vb1pYbjNGWERNN3V0VjAyTDBNcUFwMWVi?=
 =?utf-8?B?U2NNL0t5TGNSSHovUUhsUGxOMno4UmFSR29ZYnZ2bTFHVUdFYmgrOFpLL25R?=
 =?utf-8?B?QnJpWE01SXVOaTVveXpQNVlqRkd4WE9COGxNU3pZWDlVQ2psdG95TFhNck5z?=
 =?utf-8?B?TEFyeXJnNkxmWm8rYWlwUWpSQ3kva2tXQ3VRNDQ3TVUrSlBFVVhjUERoYnFz?=
 =?utf-8?B?NngyVmNuVVNaQUVkdDRld2Q1c3pUUk5HbmV0dHV3L200djRiVHVSWDBzRkJy?=
 =?utf-8?B?SFl2Q3VPVDJGRVZkb3pXVTdQcGZ5ZDV1SDVOb2lrWDVWcVBFUzNMUTJWeThI?=
 =?utf-8?B?MUZUT0d0TWlZSTlBSnRUTUR5YVdtYi9PSlNsVGVra1BrN2Z0K2NSWUgrMFJu?=
 =?utf-8?B?dERqS2xnT09RRzNaa3NobXhHMWZUdXpySkN2ejExK2JYYjhGTUlBVXBjSzRL?=
 =?utf-8?B?aStua3BIVkhrdmZNWXVTUUV1NzRRTWlqbTBQUmthb2ZKWnR5SlNiY3NJTEVH?=
 =?utf-8?B?dEIrNndneHQ0RndLc0xhcll5RXFGVXNlSVkrUkdvbTZCUmJsbWVGRXlRbVRV?=
 =?utf-8?B?Y0RMY2dtUjVMbG9mU2E3aHFTTSt1ODB4TFFTZlFXRi9CU1hpMGZCdWJLeHdK?=
 =?utf-8?B?RnMzVk9KVW9ORXpPVkRmVzRwYVgwa2hHaXdFTlN3YlVEWVhPMFJ2UUpDSHo4?=
 =?utf-8?B?K21XUVRCWnpGS2xXekRMbEpSYkhtYTUrWEVIZGF4QkNWSTAvbWJpeVc3dVV5?=
 =?utf-8?B?QldJcnlKVUxQTmNFUHU2V2xMcC9mVVZOQkdDRjdPZG5Jd09WUVpnaDlNY0t4?=
 =?utf-8?B?NGlXSXZYdEt4VC9vdUdCcS9MZEFvVitmOUxob0dRWXNsZ2RhQmdxWWFWWkFo?=
 =?utf-8?B?RmZTSnh2MTFTMmN5V0ErNFdMZVZVZHpQQU4rUFNiWTh6NFhIMmxDT2xzNHFr?=
 =?utf-8?B?djdKTzNWMEtzOWczMm1SM0VrNU1XaTJvbWJXWE4vVFJycVM0ajNkVHZMaGY4?=
 =?utf-8?B?TUs5MHpONUpnRUZGazJHS2F5ZmxaenBDcjFHdDhmL0ZGUC91QktSZllQeHRm?=
 =?utf-8?B?QTVCT2k4d3AwOFBOQ0EvUDRzZVpzQzhxb3JaUGFXb09TUVFMZzFhdTJvYk42?=
 =?utf-8?B?UVl3WUFKcDJiV0hFWklIT0tSM3Zkb24wM2tiam40K0JxYkhJczVmSnhadEQ4?=
 =?utf-8?B?NDlad2VJRXBaOEpxbjdWQWg0TEJhVys2bExXY3Rldm5MKzMxVmN1eEdYWGFC?=
 =?utf-8?B?TklJdytWTms2c2hyN1NKMWgwL25sZGpSQU5lZDJGYzluTlZjQ1N4UTlpY1I0?=
 =?utf-8?B?a1pyV0tHK01BU1FBTVg2TG9EdExkelJ3QmpiakhvZzZqclI1bmdXclAxUzdH?=
 =?utf-8?B?ZldpZWs4cmZ0SjZXcUxQNFpJdU5iS0dYRUx4M3NRdmYzYzN5Y0pNeWxUSDBP?=
 =?utf-8?B?UHZva0o4SWFCOUp0ZzhwTE5UNVdnNnhaQW5ZZGQ4SEZuZkN2UUsxTVN4T3hl?=
 =?utf-8?B?eVZVRFljN1hGNHpyVWJHQUp0ZjVJOEJ6N0tPOC93QVRQRFFDQU04MktROHl3?=
 =?utf-8?B?L2R3aTZPd21QYTU5eXJ6RWhtejBSRDRQTFM4MUlpRHFZWmRCcTRHYUFmeFFV?=
 =?utf-8?B?S2pIUkI1cUMrbit0U3hEMzh6WmtUdGxseE4zKzdOaXF5T2pLaGZ4M3BSbEVH?=
 =?utf-8?B?QzNuYUc5UXo5bXBtRkdDY2xVdFUyVkFOOXhLQU9Ic291eG5LZFQzSHhzTUhw?=
 =?utf-8?Q?Sc9GydEa/vB94aLPKRFWma/Q6IKf0Ury?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7875.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MkZYdVZ0WnhNOHZ5aEtSMjBiMkp3NVI4cncybUlvSDFZTGF1VEZxc2ZrQy9p?=
 =?utf-8?B?c0xmbHRlQ0xneU9iek56TUI1VFltNkJIMkt0bzY4VHFkVlVrRGdMSkxsN0xv?=
 =?utf-8?B?alJYaDdVK0picUZOR25iRWtLUWk1N1B5QUpuYVBiWUFOWU95ZENTZTFibXJ6?=
 =?utf-8?B?ejhnWlhOWTNiVjRBSTRXZVBzNlBZamI3VTlFWWVaRDhTMlhKRkZIU010ME9K?=
 =?utf-8?B?OVFjTEhLU2lTckx0YTV6aUNTSldNSnhrc1h0OWVYSGIvQWxwMjc5UlpYcEl1?=
 =?utf-8?B?Wlk5ODAzbnQxRng4VlJDa01SRE9uaVJaU1QxdStRT080R0FoVkc3bFlHeDVT?=
 =?utf-8?B?OGRLaGpFbktVSy82MTlIRitoSVlkSS9UMGorZEtCNU5uYU1ZWit3cTJaUGpp?=
 =?utf-8?B?bDgzaUhrQ01IRXVmQ25oQ2dKR1A2SDFPUHhPWmtEbWQ1MFZQSzhhZXdBVzQ0?=
 =?utf-8?B?bFhmQVJFRWdLRHlvYzRzdS9DTzB3aTN1QXlUZGdvZ0ZoTUVtZmZDZVZ0K0FF?=
 =?utf-8?B?algyVHo0UGNBWU16MXdnbHN1U1JkUUNLRFpQUExxV3BmQmlkMlQ1UjBoWFB6?=
 =?utf-8?B?WFJYZFdldzVTMnA4eS9HNlliZ0lOc1B2d21nZm52eW54SlM5OTdCbmsvOExv?=
 =?utf-8?B?azBlZ3BVN2dSb043WWg4Z0JHQ1dvOHYvZnQ5ZkNDNUgremk2QndRNmJSMC9J?=
 =?utf-8?B?LzNOOHdrRklUZUdXVHFBNTRadXYyazFteEJZTHd0ME14aHdoZ1BKUXpxUFVZ?=
 =?utf-8?B?K0FxR00wbjVzL25mTmJzaWJOY0xNUWlCSXduaWhZb3YxMVA0Z01oMUxUV3lT?=
 =?utf-8?B?akE2MFM5YUFXZUtDeDJYZUtaVittOHhzMFhNZlJ3cVhrYWJ5RVhiMkpqOTRG?=
 =?utf-8?B?MnZWYk0vUmFXWlpiQ0JOdzlxdDg1UXpyOHA2RlRDOHB4ZTZYeldmUFB0VUFJ?=
 =?utf-8?B?VjlTZHg3Vy9XMkV4RjRZRDJQZSttN2Jtb0lVdTJWaDUrK3h0eTRnVXJ0MS9B?=
 =?utf-8?B?L1p5ZElkYkIxNlkwdmZ1RjVTTnNubUVIZm5CcGI0MTA3V1JIZ0k5OGNiUjV6?=
 =?utf-8?B?ZzYveHVaeEtDRGZ4ak1DM3kybWJReGQzVnpPMklsczlCaUxWSEhBUHYvWXY3?=
 =?utf-8?B?M1RiUVpMSUdrVmc1dTNyRkR1LzE3LytOWWUwUGxJZG9QVTd3MGE4RnN2cVpR?=
 =?utf-8?B?SWVSV1RNb1hUbENBa0VoSUZ4RTdrTkMxcE9OSlRPT1cwSkpYVnIxVTNkY3l3?=
 =?utf-8?B?eU9QRU5tcTI1Yk90OE5WZmlEbndlaTlobTlic2hBejljQ0xacHZnMERJK3E0?=
 =?utf-8?B?UlRRSVZIczIyTXFnNnJQcDFQc0tDbE5vRS9CejFpU2YzUUpEUVJNZFc4dUVI?=
 =?utf-8?B?a0FuZDRDR1lIcGtwODE4dVpMcFdEL1Q5U2pBM3QzU3N6Y2l4djl0RjZQeGFT?=
 =?utf-8?B?QUw0U0ZHUTlsSmxUZUdUYmdzV3Q5azBpNGlENmJueHVzaU95WUNxdDZaSFRQ?=
 =?utf-8?B?N0hqcWtsRnJhWFplT1JoUHluWWZPaHovTzNMTnFxWmJoRWU4RTNXWU5ua1Ur?=
 =?utf-8?B?MTdJclhyTnlTTmtxTFBsbEpKbkFUWHovYTNHbWdxd1BzNlRaQW1HK01KdG5z?=
 =?utf-8?B?cjB3K3ZsMCtUazlyellCdFhaeTAvRFVYRVBXSjhlcmRmM0FBNUlaa2tOZHFt?=
 =?utf-8?B?L3VLSm52UUNXZkM4eEpPOUhXc0dIWEU2cE9iYmIrd1lOdkFaZlcyRzhPMC9G?=
 =?utf-8?B?dE03YVo3OUtCMy9VOEpEZHl4c3BrYWZaWXRpQkFKWmhQLytNcUI1a1lkVjhS?=
 =?utf-8?B?RENTNmJ5REFQMmFYWHZmYmRDQVpiLzNTSGxVQ2hta2lLc0dQRElwZTBxOFlX?=
 =?utf-8?B?aHdhN2dNWXpseTdDbFI0M283emsxRkNUR1FVVG5IbXk1RzVHWHVmVE9ZbElk?=
 =?utf-8?B?ektyb1FqTFErQmZ3eDlqRUlxMzkwbC8rQUZ2NFBRTlpoRjRsenJTaThQbkdh?=
 =?utf-8?B?UUE3OG0zWDhPdDdWR1hGVDEwbFB6V1JUMnNUMWtHQVpDekNMd3VmTW9DVjVw?=
 =?utf-8?B?bHFnNnlJL2JnZzNna3ovNkR5THVLYnk2N2toQXNqNlBTdjJUU0J0MzIwWndn?=
 =?utf-8?Q?J2CdImPagbuRe0sk4JtOV5MvG?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0fd9ece2-1b0c-46f2-878a-08de37d27330
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2025 09:56:55.0553
 (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: PwYnLxd5rIoDquhfTU8o7GqxVJK2kpiHtzj3fRFbMX1xL+dFsWI0grBkx/FeuYLf4eiD9nR7PaUr493Cxwux4w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB8124

On Wed, Dec 10, 2025 at 08:36:37AM +0100, Jan Beulich wrote:
> On 10.12.2025 02:04, Stefano Stabellini wrote:
> > On Tue, 23 Sep 2025, dmukhin@xen.org wrote:
> >> From: Denis Mukhin <dmukhin@ford.com> 
> >>
> >> Add a new symbol DOMID_ANY aliasing DOMID_INVALID to improve the readability
> >> of the code.
> >>
> >> Update all relevant domid_alloc() call sites.
> >>
> >> Amends: 2d5065060710 ("xen/domain: unify domain ID allocation")
> >> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > 
> > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> 
> The other day concern was voiced over aliasing DOMID_ANY with DOMID_INVALID.
> I don't recall though who it was or where.

I'm afraid it was me (at least) that voiced such concern.  But then I
completely forgot to reply to the patch.  I don't think this is a good
idea, aliasing DOMID_ANY with DOMID_INVALID is likely to be dangerous
in the long run.  In the example here it's fine, because the function
itself doesn't use DOMID_INVALID (iow: all usages of DOMID_INVALID are
replaced with DOMID_ANY).

However I could see a function wanting to use both DOMID_INVALID and
DOMID_ANY for different purposes.  Having both aliased to the same
value is not going to work as expected.  If we have to introduce
DOMID_ANY it must use a different value than DOMID_INVALID.  And given
the context here I would be fine leaving domid_alloc() to handle
getting passed DOMID_INVALID as a signal to search for an empty domid
to use, I don't see a compelling reason to introduce DOMID_ANY.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 09:57:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 09:57:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182762.1505600 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTGxH-000202-KD; Wed, 10 Dec 2025 09:57:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182762.1505600; Wed, 10 Dec 2025 09:57:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTGxH-0001zv-H4; Wed, 10 Dec 2025 09:57:55 +0000
Received: by outflank-mailman (input) for mailman id 1182762;
 Wed, 10 Dec 2025 09:57:54 +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
 <SRS0=c2u0=6Q=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vTGxG-0001qV-01
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 09:57:54 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b14eaa58-d5ae-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 10:57:53 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by CY1PR03MB8124.namprd03.prod.outlook.com (2603:10b6:930:105::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Wed, 10 Dec
 2025 09:57:50 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9388.013; Wed, 10 Dec 2025
 09:57:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b14eaa58-d5ae-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Aql1VhiNEzRmCejp3igIZ7Dg2vKSQuIiAj86asQPsewnojB4Wa/m6PK23jADwr16WkGjd8IFIvOLyndci9rv8q8kfrfbK1d8ErrhNAHPLx0YR1ey1950lk4hsjKGtH9FW3AIi5AECg7kTgsFJfj081Czf6w1/8savxhfvIQn6ACR1PldUlN2U+K4hKUedOarXOn+TCF7TLrKr0ta3+oEtLzzx79Hww0E1+OK9QQO54TZyR8xicXcFlWrHE25VWB5S3R0dywNtxLFTIUYdgoWsI46NiHoz6KFeRRzB20Ikkb/v8vkJqUrvf+OC+XWFnj6nzEGHSsM7tu4D/9b3ZY4AA==
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=MqW4FUxlfyINIX81hhhWKbnw+XsY3GcuwIXW3aC20cs=;
 b=fy0a7nwtmjfQtsxaLNC6qFylmXLzkz60q5X7WNJAWpwaSRhCN7+OZqTlAK0wyW3gzOVJVi2GXDGjblVLURoptxSREq3DI1WcM/jcJufAJ7jzrKf+M6N4LNscXxtVz7EKPPuhxQuTvSJ2oyU2Xy9q/o7Ufvk8tIdN8SbTggAHIFy9Lx+hpEp5kPypP5Sg3Elvc8EVfq651grc6czqkfE6h/q9BdL5M6xtNq3ph+7fjOPhYZoDT8KNNHbubWthUPDLmlfmGNw9T+UhGHMrMLn4hMkzIE1UH1E31r8sPCG8TqXVQBK6Nm+NjO9J7ngMuQNaQlD+TDeKTTg6zf/+guPvhA==
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=MqW4FUxlfyINIX81hhhWKbnw+XsY3GcuwIXW3aC20cs=;
 b=CNfAZXdC8njk3rkT4MV5XC/KTFZYs91W/HAto3Tym8kfa9/cORqotKirX4W72CZbKuRIVHkcCm7TYkgEkUJIb7HamKyz3c24JrTQSnBejQQro5sWY7hflkQK4HaRDztcAXaJ1JfGT7op2eHM+XfA+2M+XJZ1M+FhRKseuB3vwiI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 10 Dec 2025 10:57:45 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH v3 7/8] x86/mm: update log-dirty bitmap when manipulating
 P2M
Message-ID: <aTlEGeUzGFX4b2Aa@Mac.lan>
References: <a0f019c5-4089-e19c-6041-044d6e93d80b@suse.com>
 <d47d01dd-0289-370d-7b5e-bd80f9e0a911@suse.com>
 <aTlAnH7bei04azol@Mac.lan>
 <2341ab2f-f185-4bdb-b851-5a19a820b02e@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <2341ab2f-f185-4bdb-b851-5a19a820b02e@suse.com>
X-ClientProxiedBy: PAZP264CA0254.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:239::20) To BY1PR03MB7875.namprd03.prod.outlook.com
 (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|CY1PR03MB8124:EE_
X-MS-Office365-Filtering-Correlation-Id: db04da6e-56e9-4f6e-4d73-08de37d29437
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WTM1T3Zpd1JBWERraVhRR2VBa1FwVE5zMllDM2duYjhPQitnTUI0YklVK2p4?=
 =?utf-8?B?V1BkdVFoZkFEZ1NlOVA5MnhWVTJ2MEZsZEJxVTc1ZERIMXdXSzNtUmxRMndi?=
 =?utf-8?B?MWV4d0lGWXhZOFJBSzFHanRYeEhsMTU0ZmgzOFNDSkdnTWttSng2L01aWDFr?=
 =?utf-8?B?K0tMUmJhelM0T2c2TzhUSFJUWnRQQ0l0TWpDMVV5UU54VFlVeWdCUGwySGM0?=
 =?utf-8?B?SGJEdWxRRnF4NzR3cjY4TlZNL2diQXZTQjgrSlVwdWZ2TjdqSzBpK2l0RGNo?=
 =?utf-8?B?eVZ3Z0pGdUt0djEwdlhCK2tOZFFVWGFzMVpTSVVRMzh3ekc3NGFJTndpam1V?=
 =?utf-8?B?a0xoeHNCZDB5SjZaVmduVzlGZmpyV0JqSnB1VkIxeHFQdmlWV2xMdGU1RTFN?=
 =?utf-8?B?NmUxVkVEb3ZFNWUrTmxSdlhZUkI0NFJib0YvSysxdy84WjdMaW1tTFdLbFNX?=
 =?utf-8?B?OXY4ai9VamdJaHBMUzAxY2I4MnNWUnhDVHJITmV0Y1VUZDBMRFNKUkVSNXYx?=
 =?utf-8?B?Nkdyc3p3TWcyRG5ZSWxZVXh2YXk2QmcxeDA3dUprWkJYOHVqU3o2YVpUOTlD?=
 =?utf-8?B?WWVDMlpSKzVwbnZPV1laRWxFR2Rady85U0VXSXhqRmZ2am1RbFR2QU1hOGl2?=
 =?utf-8?B?V3l1dk9jemMrQjVXdklGVVhraUtmdmlwZ1VKdFFYZ3FzdHVnOEh6ZHJic05E?=
 =?utf-8?B?SjJhQklMRFZyR2FjR1NJRmFPdWVEM1d3RnJBcE5peTJEdmRzNTVEdDJkMjVu?=
 =?utf-8?B?K0wwZzVIOHpITDVtRDVkZ3FtcmV6NjVUTkZhZG9uY2xOL1JkazZTb21EUDVI?=
 =?utf-8?B?VHRFbVlJY1MvZk9uU1VzaDJ3djlvOFo1ZzlRbkJhZUJyMDFWWTE3SVR4Z25x?=
 =?utf-8?B?L1pRYkQ1ZHFLRjdnaGljTzFEQnFDNTMyYXpkb3p6cEZnQlRQOHpEUkRlYXhS?=
 =?utf-8?B?Y05ZNWY0NHVEOGZSSmNFQVIremFJaEQ1bko2MG1CdUVhMHYvMmh0WWs4QkdJ?=
 =?utf-8?B?MHovMVRQVUVsellKR205Q0RWUy93OE4wb3VrVDZjOU1HRnpYajVUamhob3BV?=
 =?utf-8?B?UXVyUmZlQVAxai9SSUw1Rkx1djlTa3VpYThnWlc0S1NiTGpGb1c1WjZQTk8z?=
 =?utf-8?B?blk4WVBkalN3clBXejJtYWRSSjYrUzNlR29kTWtrdk0zdXIvOVJXanNnWVh4?=
 =?utf-8?B?aStpT1ZlQ3VPMGhyNjg0cFphRFJFWVlHeWlRRVRhV29INWt2YnZGNnJuWS9P?=
 =?utf-8?B?MXl6OWFzMDJQZWZ3MDJjYkI5TlgrOXFqaUR6ZzFwektJemdzOHBadFNRUEJt?=
 =?utf-8?B?UEVENEVJZUw3VVdvYTZFd0t1TkdTdzY3aUlPd0dnTmE0ZjNPdVVpbVZJc0Vt?=
 =?utf-8?B?bVBlSXIzOGpxTnJuNDhaUzFvdm5MMnVDY1BSazBCM043UWIrOEhQcXhlUWsw?=
 =?utf-8?B?TWlHb0J6K0tWNkJwSUNnTE1vTzcveGxQeWUwL1lKMVBvRU8yQzZUM0dRcmZq?=
 =?utf-8?B?ZXdHcVNSYnZVeXlBUWI5WUs1enJqeGxRN3RCZXA0UjF1TjlPNTBRWlFCQVVa?=
 =?utf-8?B?NyttRDNzSzk0MEZTeEk4dXlpaGQ0K1h5S0ttTHA4N0cwNjlYWkVxYlFKWksx?=
 =?utf-8?B?NUsyKzFjblRqdXRDWlczVlYyZ2VpY1F4a1FKUitEK3RXN3JYV3ZXSkZOd2g1?=
 =?utf-8?B?b0xRWDhtMmJNOWVYZUFFSlhPYTBERUlPalVvSW5qdGErWHk5SlhzWUZKL2Z4?=
 =?utf-8?B?OU9OdWhPY29UL2Rtdng2YnRhZmFpTENZaTVEWnlYdHMwYStYR1I3Q3J6QTk5?=
 =?utf-8?B?cnBjdEUrcHNSV1d5d3dUSmkvVGJaWTh2QU1NV2ZVM3Y1RUdjbE4rdTVETGpJ?=
 =?utf-8?B?aFBzME01SXVlaTBBanFQaDhEUVZuQVZXakhqSmtKWnRaeEpFUmxiYjVzU081?=
 =?utf-8?Q?5hSnmmKe9BIde7cHL0Oi1BFZD/w0b5ON?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7875.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZTlzMjdtWmt1b2VsTXhKZWh2RGV1YnBXazFZa01JWFZNTFphOU9JakFBQVd5?=
 =?utf-8?B?bjQzTnd6bVJtUU9iY0F1TjNNa0pKSTZLSC96RDN1elMwU2EwelRCanJUOHBn?=
 =?utf-8?B?Qlp3YXN2SDN6U1dyYm5wMng0aWgzNUZiaWczU0J0bEQ4R0ZudTVCZ3FzbDh1?=
 =?utf-8?B?dkpUNnU2UkJ0dEhWY0pSelF4dnkyL0ZBMGRzSU90ajRHSzZnL2hDMktDcHUr?=
 =?utf-8?B?bnJLOXhIVi92UnhnMVlNSUhzRjI3RzlyOFFEMGJqK2ZRbnd0WkhDM0NVZ3BG?=
 =?utf-8?B?VUVpV1IvM3VLTkttM2xucmVmQnpady9IZm9XSnlBcW5oUFJObzZVNWlJM1Nt?=
 =?utf-8?B?eXVIUHZHRlBXQitYOEJlL05EMUxHTEx3WGVWSWNFYmxUUjJRM2hZcDZkTVhp?=
 =?utf-8?B?ZVY5QVh6WDlJTmY4OFByUWhBb2wyL0o0UGxKc3Y0a2o5VnIyMUZidVNDZnRh?=
 =?utf-8?B?bUdtOUJ5VTZJTUEyYTdsaktIVCttWEV5K2ZoOU1UZHl6UElOUERjRkZaRllN?=
 =?utf-8?B?d0l4UVp1M2pxSEIrbnBJcDBkRjBGR0FkUllKRVFqR2w5Y0M1OXRWcWJLbTMv?=
 =?utf-8?B?bm10bDZmT3ZTNWZ3MTk3aGhCU1JCRkJEOFFXcmhDOGVnOTZyWkRvRnVkV1VL?=
 =?utf-8?B?am51OC9QdnZRL3d2TnpaS1Iwd1ZVSi95aUQzeTNLME5wSjVaZDBGZ21MTjFr?=
 =?utf-8?B?MnNpc00waXJTYlBub0RmeG82SVVEV3M2bllsU2o3SW1naldQK2JTMUUva0tI?=
 =?utf-8?B?aGY3Nnd1djRFUGthMGQ0QUlkektsRlFQYkJBY0Y1N3ozMnprazNLZ3hhQy94?=
 =?utf-8?B?ZUdHOGl2eFVZRWZERUw0QUdMOTNZU092eFo4MUxpbkdFeVFDbEZ0Mkc0L0xO?=
 =?utf-8?B?QjZDcUhnZExkYjh3b1Zxd25FYTlsY0lONHRhVko3QVoyeWloT0NzMGlIVGIx?=
 =?utf-8?B?aHZnOUtxaG5vZ242YjE4NElVWnNFd1FIWnh3bnZJc29uNElnaHBxOWdJNXEr?=
 =?utf-8?B?Y2ZRSmJCdEpXZGpzRG9sbXVHZytZZ05pSzY1NXNEYm1qNXMySHNRcmRzMVNE?=
 =?utf-8?B?OVRIZFhQd0M1Q281bEJiU252SHRURzgxd2IrZEhRYWFtT1RHcC9Ca0dBNVpE?=
 =?utf-8?B?USs0bWIydEtIR29QdTRoVE9pWjV2dEkxbFI4ZG5rK21RZDhoT0pSSTVDQUJ3?=
 =?utf-8?B?V0NmMVo2b2tQNDlDb0tlNzZXcytDdG1TMWxoVjc2WXVFV3h1b2tCUmRBNXlD?=
 =?utf-8?B?bk8yYm1LV2E2Q2hrZnVhVkxFanI2bXRyVHVyMUE1Y3lleU56bCtjYXZNMm1S?=
 =?utf-8?B?WXRLbEEyUVQwbnVSbG10a044Vk51N2JYSCtFWWVXcnJZcUkxQjN1RWtIaG1O?=
 =?utf-8?B?cndLdXpWT2oxcDJ2N1d2U093bHk4NG5vd2ZzWHpsNjk2YkJMZzdjcXRDc3NB?=
 =?utf-8?B?c04wenhkTVRLdk9iUE9pdjZNRFJUb0FSNUd1M3MybVV1UEFVVFo2VG85NEtQ?=
 =?utf-8?B?NHF5UkdvZmhKKzcrVjc3b3gyNjdhNjh1V2x6cFdQMW9MMXdWYVBicGdyQTA5?=
 =?utf-8?B?ek1XS0l1eVdZUVRlY1dCanhxNkZKQzZZSk9tSkQwN21zeDJIeE1YcVpPbm1u?=
 =?utf-8?B?YWVIOWFYdTg5Q0JMWWszcWtIcVpmQzE3eFR1NFhvUE1LWmJJTzV3MFk3Y1Fv?=
 =?utf-8?B?dXFwVXY4TDlJeThrZmIzQ2xxU3JoZVlRMWpVUUwyZGorK0NLWVhQRDloMVdB?=
 =?utf-8?B?cW9nUGsvYVZ2VnBWR09yYUlTUk5sMHIrVVlSMnpPazA2alEwRGFsM2lMaHdB?=
 =?utf-8?B?Y0V3aUJ6UWZhOFlOdEY4YnIvdUpIbkt6SktheXdwVTBiVTc2KzUzSXpvUXh0?=
 =?utf-8?B?Qk9mMmd2RGVzQWEwKzFNZkJnQlRBVks4QnhIbjdnWWgrUHZ1NnRvc0RneFBV?=
 =?utf-8?B?MzhMTlJ4WTdZT29yaWRwRDh5eHNJYlhBMmJyejF2YzQwK3RrckdqSmpiMFdz?=
 =?utf-8?B?azhHSVlEMTBHZnpaWmpFOW1qc0RFUFNxZjBac0dUM2dvSVQ4eWdnalBrZ3Fy?=
 =?utf-8?B?cm1iSXZ5dnhBZDAxeEdhdTdwWXJOQUpDQVQxRnppS2dBRk14a2NjOCs2b2Z3?=
 =?utf-8?Q?FN/VIwqSRDFK1vOOWbMqppyzA?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: db04da6e-56e9-4f6e-4d73-08de37d29437
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2025 09:57:50.4658
 (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: 6TXCOCSvdEgGDkc8tVAMZIPkjJTgMQCKV9+/ZsBHc8pBbJKyptyfJdCijcDEgYir54AcsRlDgqnFKyVZ6WVkrg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB8124

On Wed, Dec 10, 2025 at 10:55:50AM +0100, Jan Beulich wrote:
> On 10.12.2025 10:42, Roger Pau Monné wrote:
> > On Tue, Apr 26, 2022 at 12:26:10PM +0200, Jan Beulich wrote:
> >> Just like for PV guests MMU_MACHPHYS_UPDATE implies marking of the
> >> respective page as dirty, additions to a HVM guest's P2M should do so.
> >>
> >> For HVM the opposite is also true: Pages being removed from the P2M are
> >> no longer dirty at their prior GFN; there's no point in telling the tool
> >> stack to try and copy that page, when this will fail anyway (until
> >> perhaps a new page gets placed there). Introduce paging_mark_pfn_clean()
> >> (intentionally without a paging_mark_clean() counterpart) to handle
> >> this. Note that while there is an earlier call to set_gpfn_from_mfn() in
> >> guest_physmap_add_entry(), but there's little reason to mark the page
> >> clean there when later in the function it'll be marked dirty. This is
> >> even more so given that at this point it's only the M2P that gets
> >> updated, with the P2M still left unchanged.
> >>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> > 
> > Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Thanks.
> 
> >> --- a/xen/arch/x86/mm/paging.c
> >> +++ b/xen/arch/x86/mm/paging.c
> >> @@ -260,7 +260,7 @@ static int paging_log_dirty_disable(stru
> >>  }
> >>  
> >>  /* Mark a page as dirty, with taking guest pfn as parameter */
> >> -void paging_mark_pfn_dirty(struct domain *d, pfn_t pfn)
> >> +static void mark_pfn_dirty(struct domain *d, pfn_t pfn, bool dirty)
> > 
> > Nit: set_pfn_logdirty() or similar?  The function name makes it look like
> > it's marking the pfn as dirty (when it's also used to clear it).
> > 
> > No strong opinion, it just seems to me the name is slightly confusing.
> 
> Changed. While making the change I noticed that I had one other change in
> there for a possible v4. This is the extra hunk:
> 
> @@ -260,7 +260,7 @@ void paging_mark_pfn_dirty(struct domain
>          return;
>  
>      /* Shared MFNs should NEVER be marked dirty */
> -    BUG_ON(paging_mode_translate(d) && SHARED_M2P(pfn_x(pfn)));
> +    BUG_ON(dirty && paging_mode_translate(d) && SHARED_M2P(pfn_x(pfn)));
>  
>      /*
>       * Values with the MSB set denote MFNs that aren't really part of the
> 
> I hope that won't invalidate your R-b.

No, that's fine, please keep the RB.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 10:07:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 10:07:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182783.1505610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTH69-0003rd-Gw; Wed, 10 Dec 2025 10:07:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182783.1505610; Wed, 10 Dec 2025 10:07:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTH69-0003rW-Dh; Wed, 10 Dec 2025 10:07:05 +0000
Received: by outflank-mailman (input) for mailman id 1182783;
 Wed, 10 Dec 2025 10:07:04 +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 <SRS0=K7qh=6Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTH68-0003rQ-H8
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 10:07:04 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f97d3b19-d5af-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 11:07:03 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-42e2e77f519so4160608f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 02:07:03 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7d353be1sm35740335f8f.39.2025.12.10.02.07.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 02:07:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f97d3b19-d5af-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765361222; x=1765966022; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AiGhIHkOLGBDp15t69gRrd1nNQ9jVUe3UHEhAu+yrXE=;
        b=B3YfHnvM/7rqkbJCx2XnIdoyPK10Dk/k58c7aBVP/NyHLYCyFdHn7BpQBKe03zgx8h
         t+9oHy1HCA1Lgx9egqQSBwRb4x9Yddr/AC53SabkOk28bDK+OIogG9V2Xv/07eg0/aHy
         CGqR0+XDD3YZePTwhSXbZZcKCGlFOitiQM2hZD9AigLS74CusgmjInMQWY/V5cSpwOQv
         vnvIcA+GCg60+iTbxaB7Aa5+TZxZzMXzIxSmBfZBn3znFvmYXYSBEc70zJPdWbbCSzPt
         gwD5VdF405EMgwaGoAix20Z4j8fKWX19JMp3HIZmRJ4drkP8Sh3V+lCTznBLHCBjgbvp
         Tk1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765361222; x=1765966022;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AiGhIHkOLGBDp15t69gRrd1nNQ9jVUe3UHEhAu+yrXE=;
        b=HaCVbngiKRjlpROYxVWugml92JHjhdKUn+tnbLbwyZEEzauHAXXumf+LZ20XTuYJrA
         YzGL36cmZZAoAGcX/6hevMY8Pfozmow2Cei3JWotfVA/WHPJf+quxeHSUj9BbgnD6R1Y
         RZDPaQOJAm88iKQO00oMaJdBgZBrgiu/0MSXZVOukzKBW9oUy0/Wq0u0GFhKJ6IoofoW
         qY61QAEAU2UU8YGvA9Ay3RC/7rmDPEL9KVLDuDye1K3hM4i0ZK5yDCUXrOABNMoA//Jr
         a0VbChFAq8DvHXZYyQoYa2/KnH9CHWnNzANUOoHZkpBMvaBNVaNKb5vnl44YnuN/sKOK
         WLiQ==
X-Forwarded-Encrypted: i=1; AJvYcCWm6RSaAsgLnGmKTUK4K5Ebsv+l8JW6bzQ711YwWeYkofRNQ6quuzmPzLRthb+SMZ2jVuLk8sWDFXc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz50BY7Xl+f8a3AKLfZcA7TojBA37O23IA0NLk+IZPU3tjZ6B1a
	q1/EgYgm3CAjDUK84OExl1a8RkcAPutH9o5jN6cqXKmY+JVhlitEchbi0Z9EopLN5Q==
X-Gm-Gg: AY/fxX6BLYwzj5FIJysHT7L7AyV9Qo/3l1jtElGZNdxVAdqOKHHyl30/gJa7kRdZIqT
	BI26rm4xsacsaXqhKeQXpJscnwIQxefoFMK8InqHrvHXVt9LDA8t+y+9aoTO/Gnsf7B1Oj0D3kZ
	xSG1/QFENGk75odZ1uIXH43UJY9W8Yp0eTThJLtpZ4774kALYF7V1WJnG6iiBEExumcPW4eOYw2
	EPyjTt6ZK5vitd+nFitEZ++6PIoglvFhxGskr7V63P01ndEx/vZw43Kpebp3Vi4l9Ve6tq+ziEF
	7ekDgW/U00hdFanPOxPNC9lVUpTaCX7iItDYQqQ0jOpt3rrMkFg2pQM1Xwkpz2sou4y3F1pFRD9
	eu1Sj4vvd4zmuGC/CCwgn9hKAzs7sCK5+8bxjqhN4AXHPPPuEfUMyG2YLJ/noQPvWAmLijRO14e
	wB8obpPIi9hKYxu0wmeupzw3Rck69w2F73INrNRzBZu7S8+F/oUIDNI1eLQ1TfpXdKqXQc27fOI
	5Q=
X-Google-Smtp-Source: AGHT+IHviIM7vilwuoBtd9w3bKe62DSMi3DO+EmVDAOLyJmFmN4fNxupzX5hpqVGCMFFWsec4qHkMg==
X-Received: by 2002:a05:6000:2c0a:b0:42b:3907:a38b with SMTP id ffacd0b85a97d-42fa3b07c77mr1752638f8f.44.1765361222545;
        Wed, 10 Dec 2025 02:07:02 -0800 (PST)
Message-ID: <d6830fb8-ea86-45c5-95dd-d76a1d39b162@suse.com>
Date: Wed, 10 Dec 2025 11:07:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pod: fix decrease_reservation() clearing of M2P
 entries
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251210093513.59534-1-roger.pau@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251210093513.59534-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.12.2025 10:35, Roger Pau Monne wrote:
> Add the missing index increase in the M2P clearing loop, otherwise the loop
> keeps pointlessly setting the same MFN entry repeatedly.  This seems to be
> an oversight from the change that introduced support to process high order
> pages in one go.

Ouch.

> Fixes: 3c352011c0d3 ("x86/PoD: shorten certain operations on higher order ranges")
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>

I'd like to note that things were broken in the same way before that commit,
too, simply because the order wasn't taken into account all. (This is not a
request to change the Fixes: tag, though. It's just an observation.)

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 10:11:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 10:11:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182796.1505627 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTHAA-0005du-2a; Wed, 10 Dec 2025 10:11:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182796.1505627; Wed, 10 Dec 2025 10:11:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTHA9-0005dn-WC; Wed, 10 Dec 2025 10:11:14 +0000
Received: by outflank-mailman (input) for mailman id 1182796;
 Wed, 10 Dec 2025 10:11:13 +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
 <SRS0=c2u0=6Q=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vTHA8-0005cc-Th
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 10:11:13 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8d9f9989-d5b0-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 11:11:11 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by IA3PR03MB7546.namprd03.prod.outlook.com (2603:10b6:208:510::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Wed, 10 Dec
 2025 10:11:08 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9388.013; Wed, 10 Dec 2025
 10:11:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8d9f9989-d5b0-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=auDusr3UcY1a3Wdf/uVwcQlyCK49CZABKxBD0tUzokor/DC5oOrcDNeGVClOREJfP/hu3ErjyTaIMxX6f7fqCz4vG1OUdGng9zTAqNqA1Yrl7mi+AqFCRacOa591wL/PSy4mAVN/s9fQsF2STCfNh0O5vfRX0l+Tc24o42+gwQuNjyC578nTpixTYDbxLAIp/W9nPhWK/nMVVKSz25rea7A8KgQfsMX2+3xeKDcPpcbdrk9CswZTk/D3mdOF5PHQVUB0OQyLbmYCi6CD03u4PebixPKi4RFqcV+eq0LnkF9eh0/rmPbOMHkpDgwrwD2GFQJdtUb5ehRGD+RaxWfSeQ==
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=tSUECVfvtVyNBP2A3vSnhhxTwGW2iHN2kTtERrHQR4E=;
 b=x14ybD8C60MQW7w/yUNb2ig783hvu4hh+UtJ7POMayxFWXsNBtCqS/6bR36eOtfBO7kVyNpxWW8fVkMTDuAqFrGKyUH5a1rEoI05cOZNdX3Zo7+c9jop5Y3OSfSZbOROfOOSC/+UdsKlziCJ+/CrmpEoYO29RPXD81TH/jWG8a+LBRJrXHkSn7xSnViD2ZmVTp3aYbDlG04UyCMTXZGTJFOUAcnBOe3QZrDWk9bkZb7WqzosXs6h/zgHPlfZoHNTkgCcN+5rNuYHKlQygJw3BJ4a5qT3jsTiKR/F2XhIGVICuSqxa/KG8JqwdeZkWwKLhxaq1tBzCZmkHpOBONPRbA==
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=tSUECVfvtVyNBP2A3vSnhhxTwGW2iHN2kTtERrHQR4E=;
 b=AdXBY22XK0qofKrPvlXuz1CwLM0BK9NVXYyidW5p7BoYgoOdu8bMVri8pnV6BjF2uPUzqkMn7+C8batReSDK+8cn/zTLCG9U0+5HvWp6OT2NZHXfSGXpeyf+59STFXPeruQ0TVhgZBLVpI5cNHQxKivXuNQrOgwtmmKoLwPds8U=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 10 Dec 2025 11:10:57 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] x86/pod: fix decrease_reservation() clearing of M2P
 entries
Message-ID: <aTlHMSN1R1uRh0iz@Mac.lan>
References: <20251210093513.59534-1-roger.pau@citrix.com>
 <d6830fb8-ea86-45c5-95dd-d76a1d39b162@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <d6830fb8-ea86-45c5-95dd-d76a1d39b162@suse.com>
X-ClientProxiedBy: PA7P264CA0007.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:2d3::11) To BY1PR03MB7875.namprd03.prod.outlook.com
 (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|IA3PR03MB7546:EE_
X-MS-Office365-Filtering-Correlation-Id: 232e6dd1-8e4a-4ab4-b61e-08de37d46fb3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TWhxNHA1Z0paSG9acnZieU42cGFKZ1B3MG1mdWpOeTA4aDZkaVhuc29vMDVV?=
 =?utf-8?B?cDRIbnR1WHhQNDhjRm42b3JGU1R6ZnFzZmxWdE16YjVodGpUT3JnM2FEelV3?=
 =?utf-8?B?MTdOdk1wYnNQV2xaRWtWZzlRZlpaaTd2MndNYzZCL0ZzYlM3Sm5haWFxaEoz?=
 =?utf-8?B?alFQL2ZhbStyMTMzUHhmQkJtaE9LdXBOemVnOWh5dEZTWTZxejJLcHcyQ3Uy?=
 =?utf-8?B?SzJ3M20xVW9JQURNZzhZVlIwaU1sM1FWRW1aYXVXTWgwaGVDa1E3bHA4MldD?=
 =?utf-8?B?NmViM2RzRXB4MXErQnlNU2NQamRRUkNYdUJXOGtOT0dMeUhFOHAxOUREa3pE?=
 =?utf-8?B?WlZkL2VJQ1ZNTnZUNnZydVhnaVNZQkhwMlN5T2VrZFdtZEk5Y2ZCekRNa3JV?=
 =?utf-8?B?MG9NTVVxNzV6NzF1R2hyZEJpRXBwLzFGQ0V3ZXZVWERoOUhzY3R6NHZ5c0Zt?=
 =?utf-8?B?dlFoYVVUNUdIdjBWY0VpcEhpaUpXaUI0bEpvdzI0dWVSRzF6UW11WWJnQkts?=
 =?utf-8?B?VldTQU5JdnJSdldzZXZuSVpGUUlFbXN0aDh2SW9jVjZRNGZhNW5hYzJKVWZj?=
 =?utf-8?B?bzY2Y1JXYWZqM0JwM1E5Qk5hWDNBY1pyZTJJZWhMU0s1SCtZbnR4ajJvNW05?=
 =?utf-8?B?b1hYKzREUzJOODJSNnUrYWtWNEVtejlBU0NyNWRNb2s5a0hIWldaWWNQZkpr?=
 =?utf-8?B?WnNsZ1ZRZlZyZkxHZS95SWl6VTNQZmhFM1g5MVVuZDJVcDNFZHRSSFlvc3lz?=
 =?utf-8?B?TUMyZXVaRHRxRlVXdzlMVGFHc0pvTWhvNExxaDYyTkV4T3dJMFAzN0xtSDBT?=
 =?utf-8?B?d1NBRklNRjFHbjZUYTYxejVISDNubHdpcGhQS1p4cWRlaUNzUU9QVm9YRW03?=
 =?utf-8?B?T0o1ZFJkT3ZZSWJNT2pUSytpTVJMWU1zdFNwbTNKK0psRjNnU3hTN3B0S3FV?=
 =?utf-8?B?aFJvZ2JNc25BL1V3dnNhQnNZelhYQnN1TmxnMHlqYjhuTGZRNHlKMGwvMzB5?=
 =?utf-8?B?V0tpRGVsTERjdnd1aVU1d3V4M0x1RjNBTko1SzBQQ2ZDcXJObjBCUWRlWHBI?=
 =?utf-8?B?SE5ncjBjNHdIaHRWUGlQTEZMSW1FcktRWkx2K09iK2NTdGdPcTVzZ0doMXlH?=
 =?utf-8?B?UVhYR3RZVkYyUzZqcVlJd3RPNDFDTW5NcWxkUU9PNERrdlNEcmlxM1BsbVBT?=
 =?utf-8?B?UUcxM0Mvb05qZ2tOVTBpV3pmM2EzOE1HSXArV3FVUjRlTWJwK2xndmV6K3k2?=
 =?utf-8?B?WDFBaGRPdURpREprSFBzS3JRRmIwdHRyME0rUjFPLzlTVk9OMzd2M0xxcmFZ?=
 =?utf-8?B?aGdqcHNMUmRCQ05VeXpWbWhoTzJUMnp0RGo0TWNtMzFld2R4RHljOXRZYzNR?=
 =?utf-8?B?bENUbG9oMzYwRFI4RXVlUkkyUWxUOXdzdDQwZ3VROXRLQlNrUTdtdVVsdC8w?=
 =?utf-8?B?OWRUVjh4TEI1RHArZmwwcWFXTGluWU15ZmVxc1c3bE9mVDlZTDlneUhxNjNQ?=
 =?utf-8?B?RHV1aU5UY0dpbTZSL0kyM0NENHRnVDk0U3BldnI1MFh3Mk1VeDd6VXpFeEFB?=
 =?utf-8?B?YWdTNXdFbUwwc2tFRVRCa2d1MzdWWXdTNXczUS8zSGNoL2Q1YmhaN2REYkMx?=
 =?utf-8?B?Y1gySHhIaFRjWGF1ZWNnZm5DWDl5RVU3TjY5YjBYVmNMZWRaWTFJK3owK2d2?=
 =?utf-8?B?VlV6amlRQ3gwU21zN3pWOHRXcm9ScGtkNHNjVVJ2ZnJ2cEk3U3VjVzF2a2Q5?=
 =?utf-8?B?TmtJdXVSNExoLzExVjlWNVk3MFlHOXViQk1kcDE4UlFhb1h0ZXFEUG1EK2Ex?=
 =?utf-8?B?WUpyMFdZRGZPTTFZVTZPQWVzQndrYWozaktVM0RJWU9NZ21FRXFaRUxJcElI?=
 =?utf-8?B?UWFaM0xtWDFpRTNKSm9Ia3lwcktkeVhabnJYTVR1aFE2SXBVaFptMFJZdDRs?=
 =?utf-8?Q?0Iw8IbzboOJzAkhyvdYIs5oSTj9Yk5bs?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7875.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OWc2VU9JZzRQaDlMVGw1RlRBdENQMC96Ull0WHkyUWx6UHNOTnZFekRjNkc0?=
 =?utf-8?B?RGVHWTg2elJ1Y2FHbnh0MnFIT0pMSkM1amxNTTk2QkVhQi95SzFHdWI4ekhR?=
 =?utf-8?B?amlpTm5VTXpKQzF5L2hDUy9FZDJsc2xkUi9DNU4xNVFhcU9DbnZJaE1UVzlH?=
 =?utf-8?B?SUVTREUvSkIzanAySXZlODJkVFBUaTRLS211RXlZSVJUbGFqVHduYzdrS3N2?=
 =?utf-8?B?YTFSWEhVRit4Mkh4Qlkzb0prVWJCTkxDRE9NMy9NcVpDMWc3eXpxTUpQUHkz?=
 =?utf-8?B?VzRXYUcyM1pJTUtSOUNGYXdLTUdzenpQKzB5d0RPVnhGWDB2NUdxSGYvTEMw?=
 =?utf-8?B?VjljWkNBZjVKMGVReHVBM2JBaDJzdUpNWEVWaFg2OWZYZ0dpdytNK3lWU0NF?=
 =?utf-8?B?ZEVveERqVGdwZ0ZCVmZvQXhnU0tScFlteUpMWkY2NHM3T3FKUUNDUlhLWVMz?=
 =?utf-8?B?dXV4K0IwalVHbzQxakFSWlJvOHhxMEllSm5NSVArN0ZLS05neklkMVRURWVD?=
 =?utf-8?B?bjMvQnhSaWhlWG1FKzU1YVllOVM3Qk9GMDg2dVZRdjlZdGtsa3VScVVaMWJr?=
 =?utf-8?B?RU9wbEt0dHlOQVpNT0thS0M4V3JYdW9VQS9EUDVOOWtiakdBYjhiK3hrY1BK?=
 =?utf-8?B?bVJCenNkUm52Y0REam03V2NQNFlJbStMUEsxYmRLNzR5RWdvZXA3QTdOcmxn?=
 =?utf-8?B?a2M0RlRkdnA1SzlXSWpkbjNFekdXWEFKQThhbWZjNC80bWdTOFdFTkFObHlH?=
 =?utf-8?B?VXJUbnBGVk9FR1pIU2NrNGw3VHk0ZUpkWXp4Z2pjN0hkWFVYWWlZNTY2bEJ6?=
 =?utf-8?B?bEp1V0gwOE82S1dyRDVxTFRvNUdreGtLNGJuaHl2d1dTam5KYi9WdHBQSzZT?=
 =?utf-8?B?cEtyS2NwT1NEdjJ1MVgyODc0K2Iwb1dOM2JZNkVONnI0aHZqcVV3V2FDcEFs?=
 =?utf-8?B?enRrbC83YVBmd0lmR3RueW9EYVliTFI1RkhRbFNyZWJtamhuaVR0WHpTZmF3?=
 =?utf-8?B?SURkc1FTQTlDOW9mRzlWQkRYYTZhcHorUnVLY2xRYjJGRFY0aWNNVlBwaEdw?=
 =?utf-8?B?MFNNVExEWXhBVkpEcWpLRDNjVzZqbkxCcnJxMUtacFM4M25UTlFVMnFHb1My?=
 =?utf-8?B?MkkwTGRIUzl6L2FxUE5aZDJaa0l2QTFTTnc3Z1F4b0NnaEc4dmtLQmplQjF5?=
 =?utf-8?B?SmNJTGc1UE94UnNEZTRaTnNwYXRtem43ZTcxRVB0U0NZd0ZFOENuYVlDL3Ns?=
 =?utf-8?B?WnNlbHo1eDd6VlY4ci9aSHBHMnRIZXdoeEpYZGVkOTZ3Skx4aVhWa25PblU3?=
 =?utf-8?B?aUc1ODJQYWpBUVozcTdxTjFpRTYzbWxlSE5WTHZqazZiU2tGdEZoNlBMOTN5?=
 =?utf-8?B?c2MvYjNPZ2w1SzkwbkZINGtxMkVkSytHOXRIeUI3T2JNdGFKei9PR205RnhY?=
 =?utf-8?B?c0xiQWlRNFZyS1A2b3lSTnE4OHBxSThSRHVrQTlaQmN0Q0hxajdPVFRveXk4?=
 =?utf-8?B?elU5WDhWV0FveFB3K2l4bHBGTnlMVTByTlJvbUo3clNhbE9pZUg4bE83bUJV?=
 =?utf-8?B?TG9BMDNZV1FGcjVHQko0YURHUG85QjIvZ242MTZpcW5XNlpDdjlpY2J0UGFY?=
 =?utf-8?B?aE44a2tlOHZQTmhPQjFVQUhwODI1RXpKRmRlR2JPTjI3MHIyc0g3WTFHSytX?=
 =?utf-8?B?a3V5bStoUGFGWFMxNlNUaWVwbTFUenJhYmNoL20zLzZYV0N4c1BKOExMMUFa?=
 =?utf-8?B?VnFEYWRSU3ZaS2Z4MTNyMmp1VjVXdkd1Yi9yRzJsNG1CeTRRRmNJODVyVEZB?=
 =?utf-8?B?cm94N0M1Vm1FZmRDMTE0L2FEbGxsd1J6TXVpTTFEMkZvL055azNMcHZUbWhn?=
 =?utf-8?B?TGVDb1NjRUh1aFpxSHFlR0ZZbjREdGYzRHUzc1B3cW5LcmsxOFRCdDRzb3Vk?=
 =?utf-8?B?cDM3ZTFWcXd6TXU1NDlna3ZwSVZZbXp3akRSVkF1QTNoUTUrK0Y0Y2p4ZFhp?=
 =?utf-8?B?eFZLNVhLYThvQlNyQW1qZHcvOTBtLzBPT3c2MzBEK0lRbENNVXpqYmJvOFdk?=
 =?utf-8?B?cVcrWlZTOXk4TnlFMG42SnlMdEZ2SlU1L3FEOExFbHhQSXAwK1BCRk9VWXZu?=
 =?utf-8?Q?Ifjtt46DoYECINYPdy7Pm3MXN?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 232e6dd1-8e4a-4ab4-b61e-08de37d46fb3
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2025 10:11:08.0705
 (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: LcnyLuGcotnYKuH+wa+eDrF5eyl04jdjnaWOycs1pE36JknNEsN+IOI9tyiTgbrQPt0iJCXtMxWjJvzMU9EG0g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR03MB7546

On Wed, Dec 10, 2025 at 11:07:00AM +0100, Jan Beulich wrote:
> On 10.12.2025 10:35, Roger Pau Monne wrote:
> > Add the missing index increase in the M2P clearing loop, otherwise the loop
> > keeps pointlessly setting the same MFN entry repeatedly.  This seems to be
> > an oversight from the change that introduced support to process high order
> > pages in one go.
> 
> Ouch.
> 
> > Fixes: 3c352011c0d3 ("x86/PoD: shorten certain operations on higher order ranges")
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> I'd like to note that things were broken in the same way before that commit,
> too, simply because the order wasn't taken into account all. (This is not a
> request to change the Fixes: tag, though. It's just an observation.)

Are you sure?  Previous to that commit the order is not taken into
account, and each 4K page is processed independently: the `i` index is
strictly increased with +1 for each loop.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 10:26:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 10:26:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182806.1505638 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTHP4-0007aJ-6Z; Wed, 10 Dec 2025 10:26:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182806.1505638; Wed, 10 Dec 2025 10:26:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTHP4-0007aC-2z; Wed, 10 Dec 2025 10:26:38 +0000
Received: by outflank-mailman (input) for mailman id 1182806;
 Wed, 10 Dec 2025 10:26:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SGxX=6Q=bounce.vates.tech=bounce-md_30504962.69394ad5.v1-4748ff37b2854f23a25ac995d5b442ce@srs-se1.protection.inumbo.net>)
 id 1vTHP2-0007a6-TG
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 10:26:37 +0000
Received: from mail187-28.suw11.mandrillapp.com
 (mail187-28.suw11.mandrillapp.com [198.2.187.28])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b11cbeb2-d5b2-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 11:26:30 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-28.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4dRBhj2MFHzMQxhrS
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 10:26:29 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 4748ff37b2854f23a25ac995d5b442ce; Wed, 10 Dec 2025 10:26:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b11cbeb2-d5b2-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1765362389; x=1765632389;
	bh=4QMlusKsww3frArFid78o3mtyVxZfkWUdnDjwXr27cY=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=zpbmp//HJ1qG0KZB/zru3pO33viGSCF/eFXoUcCzYXZfp+ZWAJ5SYIuwjhcE2mtni
	 D3K4v2wKlmnsqGTox5tVQGa8HrxQ/TEg6dUqvGBQZ1ww19/b0r49nS7Dg7CUVPPubG
	 kHrONnLtBrTPY2shJup2sVkJSwQqQMTfdGG3xcPks62VPmhwKr7lAXdYqBiFLGgOCG
	 ui0bkcZGcdv4+F3GPpL+BNTdlncmA3DchxFem0vtCBIGU7Vn9GwaSLHRdFTc1F1Qhb
	 sqXj+moNEYCk46dbh7kBOM6v52+hSI3EV9bUvkDZTshc0kdeQeX7Fk1C3KuVQjKDcp
	 0443tGAztMAlg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1765362389; x=1765622889; i=teddy.astie@vates.tech;
	bh=4QMlusKsww3frArFid78o3mtyVxZfkWUdnDjwXr27cY=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=gTiofoVHLmi/k+mgdJrY5yAS+sX3NcXkuWfdvuA8wi1BjiULF1zMgezb7rBKPeGeZ
	 UCcBKkq3tJL6Pznz1YB+2d5YbzFBSqO/sNf7WXXkoaMzPnNN/o8dlBcWun8rCfib2U
	 T4KR3bhgh9vWssQv98DwTrmuHVzqhQIzNphbDcZzH5nBB48eP4UMQUm+zo8DZX0sE5
	 u+OHc0C9Hwvb7gRysDuOirhq49h3UppN14fGPm5AA54KRzAv5NSbElSGWf9elwzKZ4
	 Ra3k4S9DRBmpiB/GFx2pFl8s7ZKZtUAukujXIt7MbrOGV7OdGBLwli/4tqIE6uGuKH
	 zkrAVv45Q+yqA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v3=203/3]=20xenpm:=20Add=20get-intel-temp=20subcommand?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1765362388494
Message-Id: <f7803da9-951e-427f-9f1b-c8bcc1ab76e7@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1765300623.git.teddy.astie@vates.tech> <6fcfea5d3f6be1bcf1d34ea5ccec40a477100472.1765300623.git.teddy.astie@vates.tech> <29100824-303a-46b2-b394-d15d617131bc@suse.com>
In-Reply-To: <29100824-303a-46b2-b394-d15d617131bc@suse.com>
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.4748ff37b2854f23a25ac995d5b442ce?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251210:md
Date: Wed, 10 Dec 2025 10:26:29 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 10/12/2025 =C3=A0 09:50, Jan Beulich a =C3=A9crit=C2=A0:
> On 09.12.2025 18:19, Teddy Astie wrote:
>> --- a/tools/misc/xenpm.c
>> +++ b/tools/misc/xenpm.c
>> @@ -30,6 +30,7 @@
>>   #include <inttypes.h>
>>   #include <sys/time.h>
>>   
>> +#include <xen/asm/msr-index.h>
> 
> For this to not break non-x86 builds, don't you need to constrain the bui=
lding
> of the tool to CONFIG_X86? (I have no clue why it is being built for Arm =
as
> well right now, as I don't see how it could provide any value there.)
> 

I don't know what are the plans on that area for ARM, the only thing 
that seems supported right now is "get-cpu-topology".

>> @@ -37,6 +38,7 @@
>>   
>>   static xc_interface *xc_handle;
>>   static unsigned int max_cpu_nr;
>> +static xc_physinfo_t physinfo;
>>   
>>   /* help message */
>>   void show_help(void)
>> @@ -93,6 +95,7 @@ void show_help(void)
>>               "                                           units default =
to \"us\" if unspecified.\n"
>>               "                                           truncates un-r=
epresentable values.\n"
>>               "                                           0 lets the har=
dware decide.\n"
>> +            " get-intel-temp        [cpuid]       get Intel CPU tempera=
ture of <cpuid> or all\n"
>>               " start [seconds]                     start collect Cx/Px =
statistics,\n"
>>               "                                     output after CTRL-C =
or SIGINT or several seconds.\n"
>>               " enable-turbo-mode     [cpuid]       enable Turbo Mode fo=
r processors that support it.\n"
>> @@ -1354,6 +1357,92 @@ void enable_turbo_mode(int argc, char *argv[])
>>                   errno, strerror(errno));
>>   }
>>   
>> +static int fetch_dts_temp(xc_interface *xch, uint32_t cpu, bool package=
, int *temp)
>> +{
>> +    xc_resource_entry_t entries[2] =3D {
> 
> Is the 2 actually useful to have here?
> 
>> +        (xc_resource_entry_t){
> 
> Why these type specifiers? They shouldn't be needed in initializers (whil=
e they
> would be needed in assignments)?
> 

I wasn't aware that omitting this (xc_resource_entry_t) was accepted in 
this case.

>> +            .idx =3D package ? MSR_PACKAGE_THERM_STATUS : MSR_IA32_THER=
M_STATUS
>> +        },
>> +        (xc_resource_entry_t){ .idx =3D MSR_TEMPERATURE_TARGET },
>> +    };
>> +    struct xc_resource_op ops =3D {
>> +        .cpu =3D cpu,
>> +        .entries =3D entries,
>> +        .nr_entries =3D 2,
> 
> ARRAY_SIZE() please.
> 
>> +    };
>> +    int tjmax;
>> +
>> +    int ret =3D xc_resource_op(xch, 1, &ops);
>> +
>> +    if ( ret <=3D 0 )
>> +        /* This CPU isn't online or can't query this MSR */
>> +        return ret ?: -EOPNOTSUPP;
> 
> xc_resource_op() doesn't return errno values, so by using -EOPNOTSUPP her=
e you
> put the caller into a difficult position when actually looking at the ret=
urn
> value: Does -1 mean -1 or -EPERM?
> 
>> +    if ( ret =3D=3D 2 )
>> +        tjmax =3D (entries[1].val >> 16) & 0xff;
>> +    else
>> +    {
>> +        /*
>> +         * The CPU doesn't support MSR_IA32_TEMPERATURE_TARGET, we assu=
me it's 100 which
>> +         * is correct aside a few selected Atom CPUs. Check coretemp so=
urce code for more
>> +         * information.
>> +         */
> 
> What is "coretemp source code" in xen.git context? (I understand you mean=
 the
> Linux driver, but that also needs saying then.)
> 

Is "Linux kernel's coretemp.c" better ?

> Further please respect line length limits, also ...
> 
>> +        fprintf(stderr, "[CPU%d] MSR_IA32_TEMPERATURE_TARGET is not sup=
ported, assume "
> 
> ... e.g. here.
> 
> Additionally there are still IA32 infixes here.
> 
> Finally, if this message triggers once on a system, it'll likely trigger =
once
> per get_intel_temp()'s loop iteration. Feels like a lot of (potential) no=
ise.
> 

In principle, different CPUs can have different results here. But we can 
still try to only display the message once (by using a static bool ?) as 
affected hardware will probably be quite uniform in that regard.

>> +                "tjmax=3D100=C2=B0C, readings may be incorrect\n", cpu)=
;
>> +        tjmax =3D 100;
>> +    }
>> +
>> +    *temp =3D tjmax - ((entries[0].val >> 16) & 0xff);
>> +    return 0;
>> +}
>> +
>> +
>> +void get_intel_temp(int argc, char *argv[])
> 
> static?
> 
>> +{
>> +    int temp, cpu =3D -1;
>> +    unsigned int socket;
>> +    bool has_data =3D false;
>> +
>> +    if ( argc > 0 )
>> +        parse_cpuid(argv[0], &cpu);
>> +
>> +    if ( cpu !=3D -1 )
>> +    {
>> +        if ( !fetch_dts_temp(xc_handle, cpu, false, &temp) )
>> +            printf("CPU%d: %d=C2=B0C\n", cpu, temp);
>> +        else
>> +            printf("No data\n");
>> +        return;
>> +    }
>> +
>> +    /* Per socket measurement */
>> +    for ( socket =3D 0, cpu =3D 0; cpu < max_cpu_nr;
>> +          socket++, cpu +=3D physinfo.cores_per_socket * physinfo.threa=
ds_per_core )
>> +    {
>> +        if ( !fetch_dts_temp(xc_handle, cpu, true, &temp) )
>> +        {
>> +            has_data =3D true;
>> +            printf("Package%d: %d=C2=B0C\n", socket, temp);
> 
> %u please for socket.
> 

Ok for this (and the other adjustments).

> Jan



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Dec 10 10:37:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 10:37:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182817.1505652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTHZe-00017p-5a; Wed, 10 Dec 2025 10:37:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182817.1505652; Wed, 10 Dec 2025 10:37:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTHZe-00017i-2Q; Wed, 10 Dec 2025 10:37:34 +0000
Received: by outflank-mailman (input) for mailman id 1182817;
 Wed, 10 Dec 2025 10:37:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZPBm=6Q=bounce.vates.tech=bounce-md_30504962.69394d68.v1-2252768df2a84190bb9c73e3cc827c0d@srs-se1.protection.inumbo.net>)
 id 1vTHZc-00016V-83
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 10:37:32 +0000
Received: from mail187-28.suw11.mandrillapp.com
 (mail187-28.suw11.mandrillapp.com [198.2.187.28])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 39e8bdb8-d5b4-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 11:37:29 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-28.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4dRBxN3HWvzMQxhqw
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 10:37:28 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 2252768df2a84190bb9c73e3cc827c0d; Wed, 10 Dec 2025 10:37:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 39e8bdb8-d5b4-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1765363048; x=1765633048;
	bh=RVsp7p7zybTYVeYG2bAVGQU7owNXisUPxzHggp7hWSw=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=sNXZOrQq4wrg/jfK0Ot8iVZCTNE5EbA5lgshbIZCBz6W2z9xQg5xt2GN0UL3ZUBP+
	 L50e1gQ/RqHsls97dCRgxOlksZFFY/zATaroJGy/3ipwZ/5n1AD/HlFsy5h8gBOxNF
	 c2wvFGdWvcVMZszQMY31A/iNdiqRHJPeZ7hUYMaKvHYxcYh541PY4hHmmirSBYH+mc
	 Yww7RXYHLOrLtQb94RR5XqpaYB/SNqrt55sazE5Br1DVabmYxWa4f126wMkqd9rjk2
	 E6kydaqh7mCDE/jQEO/iABPiflFFXknUXxrRrxtfNnZJYqX6lBPjPn0QQMnHlMBoHY
	 FvB+lN4H5u0dw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1765363048; x=1765623548; i=teddy.astie@vates.tech;
	bh=RVsp7p7zybTYVeYG2bAVGQU7owNXisUPxzHggp7hWSw=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=AtQR0p6V1mgL1IgysaUodrol/EQxtXeougwspFG9bG9HSfBI8lh724jA3S4D+HXCC
	 tQPGdzBagvVfb9chqfxhFk+jXjxoYjTq+40e4B+vhJKySBn61AAOCr/EulZx8Rhg/U
	 CoaLbzwQYvGs/W2mu4B+Qv3ug8flizSc4gIQlvsVkr1dfSgRCqmERgSaUR1LBj3Pda
	 rFqAp9pMLGWh/5i+LNXPJtQSHg51Cm7jV57BnqKVM88G5r0eyO8Fms9TkCcWcHKdcC
	 +30HtJKfmQ6tNu7OLYHpMxIyet5O2xA2rCu4mq0p9xzNgwn0jID5tbfer8zOk4TTfw
	 wMAMOeMtdQH5w==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v3=203/3]=20xenpm:=20Add=20get-intel-temp=20subcommand?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1765363047903
Message-Id: <3e9f828a-218e-4b20-9fe1-c8da3f06f87d@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1765300623.git.teddy.astie@vates.tech> <6fcfea5d3f6be1bcf1d34ea5ccec40a477100472.1765300623.git.teddy.astie@vates.tech> <29100824-303a-46b2-b394-d15d617131bc@suse.com>
In-Reply-To: <29100824-303a-46b2-b394-d15d617131bc@suse.com>
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.2252768df2a84190bb9c73e3cc827c0d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251210:md
Date: Wed, 10 Dec 2025 10:37:28 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 10/12/2025 =C3=A0 09:50, Jan Beulich a =C3=A9crit=C2=A0:
> xc_resource_op() doesn't return errno values, so by using -EOPNOTSUPP her=
e you
> put the caller into a difficult position when actually looking at the ret=
urn
> value: Does -1 mean -1 or -EPERM?

That's a bit unfortunate as xc_resource_op() can return either -1 or 
some -errno; so -1 could be either -EPERM or a internal failure of 
xc_resource_op and we can't really know.

One thing is certain is that if xc_resource_op() returns ret >=3D 0, there 
is no failure aside that we may have no data (e.g no MSR yields a value).


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Dec 10 10:38:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 10:38:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182827.1505661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTHaW-0001kP-Hb; Wed, 10 Dec 2025 10:38:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182827.1505661; Wed, 10 Dec 2025 10:38:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTHaW-0001kI-EZ; Wed, 10 Dec 2025 10:38:28 +0000
Received: by outflank-mailman (input) for mailman id 1182827;
 Wed, 10 Dec 2025 10:38:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=K7qh=6Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTHaU-00016V-KY
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 10:38:26 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5b00d041-d5b4-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 11:38:24 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-477b198f4bcso57381705e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 02:38:24 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a82d26f5asm36161215e9.5.2025.12.10.02.38.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 02:38:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5b00d041-d5b4-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765363104; x=1765967904; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Kv8yAEtoYBUj3LXIG+vIYtihmgvVLpaCTCmQXUt1YgQ=;
        b=fAut1ZYiTU82VimMOG5HtsBZsP96Bj62k0hCkQ5mqFD1B9yStZy6RZBChrTLGFUFlQ
         IuqTsV0wipD5J7/QmLjeALXKK2hQAZFNY2p4P4j9zz3WHiXvMHNGjtmR97LHsAX5OpOB
         h2+lak7khwVGEZcTIrKbzhCsEsRfu8Ob+j/BASKEU1qI3GmHxNOtJYfiMWP6hYu0cmLh
         z9sH/aNw+dU2nTrlinOY7v3MrqZD5bPqWMQ9Ud192TFafB0/+Rdpy6NuknhjOVtpozX2
         8OQD/Nbf9JXrLMqBta6OiOhrNZZLxlwDE03ZsB+DgpkcREx06VNOiRhCvAegOYqLXvUR
         nj9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765363104; x=1765967904;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Kv8yAEtoYBUj3LXIG+vIYtihmgvVLpaCTCmQXUt1YgQ=;
        b=pUGeSWV7+aNfUHwELq2jFJlvaLv6ctPCeOK4VG99q/Ybu0aqdSgIjvWo01cgctBPoQ
         +xwQi30LTyWnAOKltF8eJuBeWw3SPfEq//jPXtMuHKNwZg91grDz8kU2Ms5MPodzoMxx
         8ox539MFs/FZBjL0W5UKghOrIZftNjN35RElwQyTqo2E6QBZXEJeYZ0JgAXH3uFNx/9N
         u1q4aWqx2qfVAPBftAamGiIV/RHnfH2v6698amoKZqTiVynntyICYnox6234IObBy3li
         FpdRReKAUleXz1Zy3SACQ/XSev8oGWkykPouXCo4iZVWSWORWfr1Qy4YgOvaNlYl8cnn
         Yspw==
X-Forwarded-Encrypted: i=1; AJvYcCXhClx2tP9WPlzk0wPQSGTlxifQ71WIo9WUIgvbHv9VTBvXY8TOgDqqQYYDrMfXKdDEC2J7MLevJZ8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzbiXJ0ED9JNXz8syZ8kaYUYly2FPgBi5Kc6u6TeJ8QbtyEA6in
	5SZHn1X1/XyfFnjru86pDutL4Trj+fdYeyOlIsVDRpoQUT6fnnzFSxtxbZ80E/alew==
X-Gm-Gg: ASbGncuqfOim7Bm0txnILcyMZ02CB+MCuwtzdjduPUJW14+fTonaCEcCL4yuoD+/DDg
	8rAMTSUGR7/Ha/qFVN9fzTNFNj/KwkYc44C/vAW2Rgocp4Ptg0jmoyCMggrueC4Sv251MJRvWV6
	vGGj7G/+Trhm1K0rXAiV9NHcN/DBWrZQKuHw34+2x/jXom71gbWpQjOaFCuBTUX3IIDzoxjwi0k
	IFPIqD0RdqbnP7tsYNFWj5kHMyGAyGlXW2yR4PHzx8ApuLormfd91Hs9E5xq6995TApRV1Ptu2g
	Z4rViu5Nm0CoXibZx44MeLuguFy07afuLZ7LYGt9PRWkkk2hCAsaO+HcLGmNsd87CjnzJ1smc9K
	byxzCVQzb+PFg/dh0rNnV/38iyw3F4UegRpQAnY22GyiyBC1dlB0vGK4kUM7Dr90ctR4pG2au4Y
	xfSdsqOVr58GaK3VVIacVpnzW3WHQnCCiyZclVRVjQZ0hDi8NrqefFtI4LfaXYctJWAygb8rO3K
	KI=
X-Google-Smtp-Source: AGHT+IFUWPZNgwbCMhZeOPlDpfr3ctXfS/t0KL2tAlklL2Tv46khb6/eV5DjbZnxhGs6Hz3A2j2HNA==
X-Received: by 2002:a05:600c:8a1b:20b0:479:3a86:dc1f with SMTP id 5b1f17b1804b1-47a84b6f64amr8212805e9.37.1765363104097;
        Wed, 10 Dec 2025 02:38:24 -0800 (PST)
Message-ID: <fa89f081-eecc-4c43-9e70-ff632bf1e412@suse.com>
Date: Wed, 10 Dec 2025 11:38:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pod: fix decrease_reservation() clearing of M2P
 entries
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251210093513.59534-1-roger.pau@citrix.com>
 <d6830fb8-ea86-45c5-95dd-d76a1d39b162@suse.com> <aTlHMSN1R1uRh0iz@Mac.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aTlHMSN1R1uRh0iz@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.12.2025 11:10, Roger Pau Monné wrote:
> On Wed, Dec 10, 2025 at 11:07:00AM +0100, Jan Beulich wrote:
>> On 10.12.2025 10:35, Roger Pau Monne wrote:
>>> Add the missing index increase in the M2P clearing loop, otherwise the loop
>>> keeps pointlessly setting the same MFN entry repeatedly.  This seems to be
>>> an oversight from the change that introduced support to process high order
>>> pages in one go.
>>
>> Ouch.
>>
>>> Fixes: 3c352011c0d3 ("x86/PoD: shorten certain operations on higher order ranges")
>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>>
>> I'd like to note that things were broken in the same way before that commit,
>> too, simply because the order wasn't taken into account all. (This is not a
>> request to change the Fixes: tag, though. It's just an observation.)
> 
> Are you sure?  Previous to that commit the order is not taken into
> account, and each 4K page is processed independently: the `i` index is
> strictly increased with +1 for each loop.

Indeed. No idea what I was thinking I was seeing.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 10:51:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 10:51:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182843.1505672 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTHn6-0004X7-HB; Wed, 10 Dec 2025 10:51:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182843.1505672; Wed, 10 Dec 2025 10:51:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTHn6-0004X0-EX; Wed, 10 Dec 2025 10:51:28 +0000
Received: by outflank-mailman (input) for mailman id 1182843;
 Wed, 10 Dec 2025 10:51:27 +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 <SRS0=K7qh=6Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTHn5-0004Wu-Ph
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 10:51:27 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2ca2af1d-d5b6-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 11:51:25 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4779cb0a33fso88901605e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 02:51:25 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a82d218b4sm40105645e9.6.2025.12.10.02.51.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 02:51:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2ca2af1d-d5b6-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765363885; x=1765968685; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SP83DRLjKwl2F6FH5cE9Kcg3hGXJWYv0BaXlMX5omu8=;
        b=QmnMlG9ry1IDYadgOfBaCQOAkO55T8JhLYxozTRNed3SqGIDZZHBTxe4w73qoaiIHp
         yPSELDoXxaDs3y81qxVQ7e+uX5oOJr/NEyVTnGNmBR6kYBp293SJBGMoHZFSkvwpaA0a
         C2NtxTd5mIN9S5FN5nB3XNVQix50H8HSGTS5ZhS9ImYIO3zEwHlx8EDcqkNONIMnwj9Q
         iSMRqeeSVWNWQDaEDTq7O/CZ82B+J/NGIevrRBDnTHxkgj0BQz+5brncX/i2w5Y/hm9V
         JfLso+nC+u0+6b5eZkjTRxTHLLPjpZvdKX+8NxLC83/QRCedKIbR07Y429JelssqCGcz
         tgtw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765363885; x=1765968685;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SP83DRLjKwl2F6FH5cE9Kcg3hGXJWYv0BaXlMX5omu8=;
        b=lHx8AlelwgX3ztfJm41Ode8xvtCQ6pPuecqonHkM7aeYIn/AbfktOlOygBwj1jNx8p
         hJKq+NRZTzAo3k6X8zre7bV4zBel4+t5fykuGGLFRD4/HZA/4Oj2aCJEEjsoLvxQP5KC
         nQlCYXXVXBP6+/UeJuQz6RxvRfW5WYY9i0IIJmJWqN8Q1hSChcgaacxRs+jDT97KB/0I
         P/v0uqQP8wA+Q0SWE7ciRWyeTw6Wwnn3lYX8NJpYQD05N+5gLCANI1bPlc72OzNJRSe5
         ZzriyO8wc58pj/ibS58hAQ89vl0ZL+zbGgg3LnPvB321URKeur0Aoj0uucXa+JbNuHYx
         pnZw==
X-Forwarded-Encrypted: i=1; AJvYcCVi+pUkp4orK1hdn/9AYY7tGT9SrcjyrTfuSaWzu4DeT9gX0zvXKLA2Vk7v10K13uJ2pF+Wc+10H38=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxScsJL5OKHK5pzDlAkAyzI5aykVVIiwdVfPEPNwihHWDJuUgPc
	YvsncZ7XZm5qR5fEwOSF7dS2N2NGXU/k/ARGqDMPuGxW+Jaaz+FxJtKAfiAJi1MJ3w==
X-Gm-Gg: ASbGncv1/WOOit6NxmpWon9FJz3TIJhTn3JBYKJBZDvOOeWCxbCzzCsQHiS6DCe1Jhn
	HmaD5WkN550XQDuYI8eF3t8wzd2YCQekQbGs2rEespVcBTV7eK7yfFwbPmV3rrt3K/R6q1p/UTk
	tRyA1e/DIR1Vyi0sDBkN14iATBQ1UemLKQQ8StaLGm/7qxMKGt/5PO0jl/ckZMqyys8E6pdRze+
	FMFT1hi61DTT2ADQJKdJOPqUnaUa3kZiFW6SpHtYPXXtOXw5LwxDi2uMeWxvkpowUM0XKjP0Mco
	+UnpPtuwHLqzD/xfEB8gBt3wCAsgRwZF/Qa8xvPv+V8WH+0E3mDKnIJLCzS1KkTcO62l5G0Z6JY
	l1GBF+gS9SFVLVAlyPWUVfgWGHASkxbTDBAdNvLQrknqo0uRLqSClmKIyG3A6/lzFg7ATMCSdJQ
	+pL2HFQddm20LcrqksgZ5jUc2/qtpYJdYkFw+RRSVHeueEBx/xtVUdmw/b4p02HzjOuCTEpi8zs
	5FWxQl+Cy00Qw==
X-Google-Smtp-Source: AGHT+IEjmlNgaBcmiB3wyfJeUFXDTaCcviKXqL3fNDi8YllTW+ptx5Ar2S6oNbXuP8B+2b/2hJkRRA==
X-Received: by 2002:a05:600c:4e8b:b0:46e:35a0:3587 with SMTP id 5b1f17b1804b1-47a838586bbmr19080675e9.27.1765363885366;
        Wed, 10 Dec 2025 02:51:25 -0800 (PST)
Message-ID: <0dd5b703-afe7-4d6f-9b86-d89c77f29bd9@suse.com>
Date: Wed, 10 Dec 2025 11:51:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/3] xenpm: Add get-intel-temp subcommand
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1765300623.git.teddy.astie@vates.tech>
 <6fcfea5d3f6be1bcf1d34ea5ccec40a477100472.1765300623.git.teddy.astie@vates.tech>
 <29100824-303a-46b2-b394-d15d617131bc@suse.com>
 <f7803da9-951e-427f-9f1b-c8bcc1ab76e7@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f7803da9-951e-427f-9f1b-c8bcc1ab76e7@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.12.2025 11:26, Teddy Astie wrote:
> Le 10/12/2025 à 09:50, Jan Beulich a écrit :
>> On 09.12.2025 18:19, Teddy Astie wrote:
>>> --- a/tools/misc/xenpm.c
>>> +++ b/tools/misc/xenpm.c
>>> @@ -30,6 +30,7 @@
>>>   #include <inttypes.h>
>>>   #include <sys/time.h>
>>>   
>>> +#include <xen/asm/msr-index.h>
>>
>> For this to not break non-x86 builds, don't you need to constrain the building
>> of the tool to CONFIG_X86? (I have no clue why it is being built for Arm as
>> well right now, as I don't see how it could provide any value there.)
> 
> I don't know what are the plans on that area for ARM, the only thing 
> that seems supported right now is "get-cpu-topology".

Anthony and/or the Arm maintainers will then need to decide whether the tool
wants to continue to be kept building for non-x86.

>>> +    if ( ret == 2 )
>>> +        tjmax = (entries[1].val >> 16) & 0xff;
>>> +    else
>>> +    {
>>> +        /*
>>> +         * The CPU doesn't support MSR_IA32_TEMPERATURE_TARGET, we assume it's 100 which
>>> +         * is correct aside a few selected Atom CPUs. Check coretemp source code for more
>>> +         * information.
>>> +         */
>>
>> What is "coretemp source code" in xen.git context? (I understand you mean the
>> Linux driver, but that also needs saying then.)
> 
> Is "Linux kernel's coretemp.c" better ?

Yes.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 11:01:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 11:01:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182853.1505682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTHwa-0006JF-AD; Wed, 10 Dec 2025 11:01:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182853.1505682; Wed, 10 Dec 2025 11:01:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTHwa-0006J8-7X; Wed, 10 Dec 2025 11:01:16 +0000
Received: by outflank-mailman (input) for mailman id 1182853;
 Wed, 10 Dec 2025 11:01:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=K7qh=6Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTHwZ-0006J2-KW
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 11:01:15 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 85fca3fd-d5b7-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 12:01:05 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-47795f6f5c0so43601165e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 03:01:05 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a7da1dff5sm37009645e9.15.2025.12.10.03.01.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 03:01:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 85fca3fd-d5b7-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765364465; x=1765969265; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZHsz3Ybet+Oz3L7pfFuqVu7LnxlVqEN6KZidekt/HEQ=;
        b=dOX/UN5hI2sDBXhYkxW7/dazB7D22/11cFZGKYmt4+y3HDfpZSxGzD9IELgul3wuOk
         fnUJaAdFQ3U6e+mBtoROTHfNk1X/WBnX880itxPKtqbNiW7QKGgq9EurIWtpV2NXRZgR
         C0uvE4nzoe0IH36nnt6qctPe9Xj9oG2SoNJmLam8FKEQ2dfS0Ak72mcD0YuVZn0BGLVs
         KFPrqOfK5PclHgXGx5SkIRcqWPAZimcyH//3+d4l/5XWfZ6+aTjnpORblUnnJQLOi9QT
         0Ex40Tt5XhU5g84Jcl6Sd7aQLkW4269OAFCZdgTJNxiSBP8oJLLzdaaTHulfRxcvkVAT
         6ybg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765364465; x=1765969265;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZHsz3Ybet+Oz3L7pfFuqVu7LnxlVqEN6KZidekt/HEQ=;
        b=aD3G5D4Bn43vwSNwN6Kiw/Nf8sKrsyLnwabGhN/bDjijA+GVBZsQDXXiUMSJoJZuDS
         3AhG6aEgMD+PNR/RqCJWZ9mATuK7jnw+uoA9SpZz/OfDChEOaiO3L9ncApQd5WZR5ZDg
         rpRjRz4dNHYjv1cHuOLCRA2zOvNIW3Q2QQ+zN1a7YWjKprbf+a//44LpvzpM1RvisdFl
         p++cOvLgCI5XFsn3onEC5Sqqq7VTA8akmDaSLgzF0mhf296rvc+Op1QaBCJzqwmci2qM
         zx6ir3kYlTaDqqzTE+PgpiezBarVBRxguJO9TyqEI8x6tdGRDKb2Doj+Zdsi7M6PJgKi
         VaZw==
X-Forwarded-Encrypted: i=1; AJvYcCUyBemjqE51b3lVXMoi+o0LPmo/UQv/I5IKmymT2KukpqEPHBsXaOW/VMlhzwKjdTV10ihLNY9GWPk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzAnn/Bs0y5o+O6IHVur/S4kKdo+Xlo0iihWS3J7mhZWqc2U2WM
	pHH6GvPDaVZqUtbgHCh1C8V65KL0O7uKqIig8VY6cC+hO87CL3vxqpOJY/zAFCyHDQ==
X-Gm-Gg: ASbGncsFALDkEDT0xGBXNXqHeQs6wn3MfA5b1Wcc1FBlh90daD4nuYi/twZ8qUjbUqV
	HquZlRKxDNwnx6+MUWqz6DZFy2yBGHBDVFND5eOPY0XA3o2y8Vys5zq0HyaXjrMPJaxrioE+ZJB
	WCIfGvYy3cPWHIvRiIzMZQNcsFes0FSzlgqmYFsOLCsYxDWdO6qSR0oKH5/FhI1qNQAlolyDQoF
	2JYDFQYCt3hH/0sWZAlQLGIeYIiV3yFAAgv0LgTInFVI7//XrMsmFun1xsP2KT5q/zuQi2+jK6G
	uW9qiMyeu/wE8QoHo1BtN97cYj91QfHACiGrmMp8ZSP73lt/0wHPvGb8sVspAVcPPQBTj9gdyX0
	u+xBoSRo+V0gq5UE2EfKaOaN/RF8oY/soXo80zbH1w3yWakOWo2uFknORbxfwQ1HyvuUqs2vHQ/
	iKh/aKBplK5pIJcxjqbUGn0qPN7tDyQSWOApbNzl7NKkZqCZsTtulXOGrDz4mG16boCgwPRYZQo
	mo=
X-Google-Smtp-Source: AGHT+IH5FQ+FkIbHXCiqDZ68KlhJ82E/hWR2aO7jA6uf9qUhNKZBqW1B4dG8xbEMpWPoWvSJmb+v4A==
X-Received: by 2002:a05:600c:314c:b0:477:63dc:be00 with SMTP id 5b1f17b1804b1-47a83810f28mr20675825e9.25.1765364464753;
        Wed, 10 Dec 2025 03:01:04 -0800 (PST)
Message-ID: <b2fae779-3b22-47ff-9da0-a17b61455c04@suse.com>
Date: Wed, 10 Dec 2025 12:01:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/3] xenpm: Add get-intel-temp subcommand
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1765300623.git.teddy.astie@vates.tech>
 <6fcfea5d3f6be1bcf1d34ea5ccec40a477100472.1765300623.git.teddy.astie@vates.tech>
 <29100824-303a-46b2-b394-d15d617131bc@suse.com>
 <3e9f828a-218e-4b20-9fe1-c8da3f06f87d@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <3e9f828a-218e-4b20-9fe1-c8da3f06f87d@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.12.2025 11:37, Teddy Astie wrote:
> Le 10/12/2025 à 09:50, Jan Beulich a écrit :
>> xc_resource_op() doesn't return errno values, so by using -EOPNOTSUPP here you
>> put the caller into a difficult position when actually looking at the return
>> value: Does -1 mean -1 or -EPERM?
> 
> That's a bit unfortunate as xc_resource_op() can return either -1 or 
> some -errno; so -1 could be either -EPERM or a internal failure of 
> xc_resource_op and we can't really know.

Can it? Assuming do_platform_op() and do_multicall_op() behave correctly,
I can't see any problematic return.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 11:36:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 11:36:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182865.1505693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTIUi-00023o-V0; Wed, 10 Dec 2025 11:36:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182865.1505693; Wed, 10 Dec 2025 11:36:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTIUi-00023h-QQ; Wed, 10 Dec 2025 11:36:32 +0000
Received: by outflank-mailman (input) for mailman id 1182865;
 Wed, 10 Dec 2025 11:36:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NJGl=6Q=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vTIUh-00023b-Vo
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 11:36:32 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 77a218f4-d5bc-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 12:36:28 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-b76b5afdf04so1093830266b.1
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 03:36:28 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b79f4a78869sm1661421566b.71.2025.12.10.03.36.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 03:36:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 77a218f4-d5bc-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765366588; x=1765971388; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=/nWqjvUa51CVTyMBmFpjkeCnXLmzU/A9jVG22EhPfEg=;
        b=jtnKzW58aJG1twl8ok0j7CUacsO2KO2xKEzbHNGUox4CVhbxRpwSJYmJAK5S2kGS12
         RVpqdjJaAX6c1nYNtzWc4xNgBc5M3qM3uFuYC4fukgp2q9T2KK+NEY3lve2m/znVln7D
         csZQWZBjCNKXx0C3Os2WUlbpVXX0wUX0BHNLGBxMu7aWRnsvticAgeQvRhwJkTVoN/uk
         PyFcxoLA/DTGIT1nF30Ku+c/WtKbaJ9RzqRuA7zW28QPts7ChjGpKlZyFtLmkmrOxr8v
         Z/z6mXGj0/URLIlgyCfTJrZ0JlhNzkhCFcl5IX0C9WhWQsvPqMU8xwLBknYb68AZcNca
         RSTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765366588; x=1765971388;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=/nWqjvUa51CVTyMBmFpjkeCnXLmzU/A9jVG22EhPfEg=;
        b=ded/fhbBkkRm9mrtKq/xmsy71eTs0mQvLPe1FxHQ/peMGP7+PXTa9rUF9l3xSY385W
         nkdhF62sWEFnjPKv3+yGSvqwT/4qcxodwBY2pwk16SqbzL+Yg4cNlXTv16qE/Yjo4Woo
         Azeyr9Q2BLCjssx3G33uiPXsrKdHm9Aku+LZRYH3yXbvGy8C0MHeN2/918tZ8JEBCpUO
         qWfeP47zJu2Z+8effA/4t8pwc8BPW7TnY05oeVi5fpuE7eNvQx2fojImoh32NMzxg9/e
         69O/rf48jFcpeS/8w1jgSXKK9hU2bA89TjDIMapCQIz8yRFzbsuLQc7oAa767esZRBcN
         gX9Q==
X-Forwarded-Encrypted: i=1; AJvYcCVT+bnOTlep8aoDoelYjCl4XultCZEbi1ObIfopRtvahYeGkFDS3SAFg7kXF5DlMiR0isgJCbTikUQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyWeLZzEKDSyQlvf2yoffMk2sj6GWd1RPS5O0lZ1t1YSrHSIVbP
	E+yIHe4jelycMh0+YKFODtZ4TJ3T/W6y7dLqSRPR+WUm/MmES0N8aoMp
X-Gm-Gg: ASbGncvlrOjmWp/o6VTx/zmHvqu1Pj7Ce/PEyunW6KumP46OoOOszXrWBRvT2TceF0k
	2GzABT5CKhPNjcWh8K1pEFa7L0nFkp2NAmWHcE+5yNRyPgMtKfFxQKkaUIzM4LljRQSDXZUkFnq
	kVzhc51J2p7DePJ+bWPBkTSwf7AYiOMH7dbSowOsAliZS/uwf/FNSer5P1WWPJK0WyYY9jF1+9v
	WzC3ur1uJ5yg2I4PHMV5jlfCZ/kdD9nmDlE8mg9tdQWawfnEanPjh210kewZukUxIB1XuiIMbGo
	9OOKzd840I/TJrtKT+cU0ejIhnhn52X55IDEVjCe/mHoEtQ+pDZxUCFo8xwr/VIXqOSbYYkiSyi
	/qEBL3rO8S8KvOw8W5fJ6bZYFURZCnEnlyFT+a2UkoAGi1b3PaaVTM/JDoWu7N5EFzPbbQxRdF+
	ntsaPpihSQdKnHp7TDkdNrgeQHov/SpADkFg3XOK34cg86Avc36NHEoWX1BXCw
X-Google-Smtp-Source: AGHT+IFJJWJ27sKiQ/ytu7lVsjkdANKZQkoaHKNxOLaM3Ffi2HacfnSNEfYBwcRaBhmwu7RJSDVULQ==
X-Received: by 2002:a17:907:8693:b0:b76:b632:1123 with SMTP id a640c23a62f3a-b7ce841ef18mr221880166b.42.1765366587785;
        Wed, 10 Dec 2025 03:36:27 -0800 (PST)
Message-ID: <e6240b4a-c8f9-4618-916a-d97ce3ae7d3e@gmail.com>
Date: Wed, 10 Dec 2025 12:36:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 18/19] xen/riscv: add support of page lookup by GFN
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <48a58cde3de6a459885465c6d29d00d046ae4a37.1763986955.git.oleksii.kurochko@gmail.com>
 <69dce344-4dee-4778-99c2-0621c4e17cfc@suse.com>
 <86a87823-8b15-4897-9a97-ade444e2830d@gmail.com>
 <5fd516ed-c6db-4e7f-beea-a87c89faa6c0@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <5fd516ed-c6db-4e7f-beea-a87c89faa6c0@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/9/25 4:49 PM, Jan Beulich wrote:
> On 09.12.2025 16:41, Oleksii Kurochko wrote:
>> On 12/9/25 12:38 PM, Jan Beulich wrote:
>>> On 24.11.2025 13:33, Oleksii Kurochko wrote:
>>>> --- a/xen/arch/riscv/p2m.c
>>>> +++ b/xen/arch/riscv/p2m.c
>>>> @@ -1061,3 +1061,186 @@ int map_regions_p2mt(struct domain *d,
>>>>    
>>>>        return rc;
>>>>    }
>>>> +
>>>> +/*
>>>> + * p2m_get_entry() should always return the correct order value, even if an
>>>> + * entry is not present (i.e. the GFN is outside the range):
>>>> + *   [p2m->lowest_mapped_gfn, p2m->max_mapped_gfn]    (1)
>>>> + *
>>>> + * This ensures that callers of p2m_get_entry() can determine what range of
>>>> + * address space would be altered by a corresponding p2m_set_entry().
>>>> + * Also, it would help to avoid costly page walks for GFNs outside range (1).
>>>> + *
>>>> + * Therefore, this function returns true for GFNs outside range (1), and in
>>>> + * that case the corresponding level is returned via the level_out argument.
>>>> + * Otherwise, it returns false and p2m_get_entry() performs a page walk to
>>>> + * find the proper entry.
>>>> + */
>>>> +static bool check_outside_boundary(const struct p2m_domain *p2m, gfn_t gfn,
>>>> +                                   gfn_t boundary, bool is_lower,
>>>> +                                   unsigned int *level_out)
>>>> +{
>>>> +    unsigned int level = P2M_ROOT_LEVEL(p2m);
>>>> +    bool ret = false;
>>>> +
>>>> +    ASSERT(p2m);
>>>> +
>>>> +    if ( is_lower ? gfn_x(gfn) < gfn_x(boundary)
>>>> +                  : gfn_x(gfn) > gfn_x(boundary) )
>>>> +    {
>>>> +        unsigned long mask = 0;
>>>> +
>>>> +        for ( ; level; level-- )
>>>> +        {
>>>> +            unsigned long masked_gfn;
>>>> +
>>>> +            mask |= PFN_DOWN(P2M_LEVEL_MASK(p2m, level));
>>>> +            masked_gfn = gfn_x(gfn) & mask;
>>>> +            masked_gfn |= (is_lower * (BIT(P2M_LEVEL_ORDER(level), UL) - 1));
>>> I fear I still don't fully understand this. I would have expected the same mask to
>>> be used for setting / clearing bits (once inverted, obviously). Why would you clear
>>> only some of the lower bits in one case but set all of them in the other?
>> Only when is_lower == true do we need to set the lower bits; in all other cases
>> this is not required, if i am not confusing something.
> That wasn't my point though. I don't follow the !is_lower case: Why would you
> clear only the bits for the given level, not all further down as well? Or am
> I reading P2M_LEVEL_MASK() incorrectly?

Maybe I am still misunderstanding your question, but let’s consider what happens
in the loop in the case of !is_lower.

P2M_LEVEL_MASK() returns the mask for a given level, so:

   P2M_LEVEL_MASK(2) = 0x1FFC0000000
   P2M_LEVEL_MASK(1) = 0x0003FE00000
   P2M_LEVEL_MASK(0) = 0x000001FF000  (not really used/checked, because if we need
                                       to calculate it, we already know we are at
                                       level 0)

Since we accumulate the mask across iterations, we get:

   level 2: mask = 0x1FFC0000000
   level 1: mask = 0x1FFFFE00000
   level 0: doesn’t matter for the same reason as above.

So, in the !is_lower case, it is clearing only the low bits for the current level.
On each iteration, we get only the portion of the GFN that corresponds to the
current level, plus the portions from previous level(s) if the level is not the root.


>
>> The idea is that if boundary = 0x1000 and gfn = 0x800, and is_lower == true,
>> then to return the correct level value we must set all lower bits of gfn to 1.
>> Otherwise, we would get level = root instead of level = 0 in this case.
>>
>> I decided not to reuse mask to set the lower bits when is_lower == true, because
>> doing something like:
>>
>>       mask |= PFN_DOWN(P2M_LEVEL_MASK(p2m, level));
>>       masked_gfn = gfn_x(gfn) & mask;
>>       masked_gfn |= (is_lower * ~mask);
>>
>> would allow ~mask to introduce 1s into the upper bits, which is not what we want.
> If you set "mask" such that it has suitably many of its low bits set then you
> should be able to simply do
>
>        if ( is_lower )
>            masked_gfn = gfn_x(gfn) | mask;
>        else
>            masked_gfn = gfn_x(gfn) & ~mask;

So, if I understand correctly, your suggestion is to calculate the mask as follows:
   level 2: mask = 0x3fffffff
   level 1: mask = 0x001fffff
(i.e., mask = BIT(P2M_GFN_LEVEL_SHIFT(level), UL) - 1)

I agree that this works fully in the is_lower case, but it may cause issues
in the !is_lower case. According to the spec, the (guest) physical address is
56 bits (and the corresponding GFN is 44 bits). My concern is that bits above
bit 44 must be zero. However, ~mask would have all higher bits set to 1, so
those (above bit 44) upper bits would not be cleared.

Perhaps this is not an issue at all, since a GFN larger than 44 bits should be
considered invalid. In that case, it may be sufficient for check_outside_boundary()
to ensure something like:
   ASSERT(gfn_x(gfn) < (BIT(PADDR_BITS - PAGE_SHIFT + 1, UL) - 1));

Does it make sense or I still continue to confuse something?


>
>>>> +static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
>>>> +                           p2m_type_t *t,
>>>> +                           unsigned int *page_order)
>>>> +{
>>>> +    unsigned int level = 0;
>>>> +    pte_t entry, *table;
>>>> +    int rc;
>>>> +    mfn_t mfn = INVALID_MFN;
>>>> +    P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
>>>> +
>>>> +    ASSERT(p2m_is_locked(p2m));
>>>> +
>>>> +    if ( t )
>>>> +        *t = p2m_invalid;
>>> The sole caller passes non-NULL right now. Are you having patches pending
>>> where NULL would be passed? Else, this being a static helper, I'd suggest
>>> to drop the check here (and the other one further down).
>> I don’t have any such call in pending patches. I saw that Arm has a case
>> where it is called with t = NULL (https://elixir.bootlin.com/xen/v4.21.0/source/xen/arch/arm/mem_access.c#L64),
>> so I decided to keep the check.
>>
>> What you wrote makes sense to me, and given that the mem_access code is
>> Arm-specific, RISC-V will probably never have the same situation.
>> However, it still seems reasonable to keep this check for flexibility,
>> so that we don’t risk a NULL-pointer dereference in the future or end up
>> needing to reintroduce the check (or providing an unused variable for a type)
>> later. Does that make sense?
> To a degree. The other perspective is that the check is dead code right now,
> and dead code is often disliked (e.g. by Misra). Introducing the check when
> it becomes necessary is pretty simple.

Then it makes sense to me to drop the check for now.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Dec 10 11:44:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 11:44:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182879.1505702 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTIco-0003jI-PV; Wed, 10 Dec 2025 11:44:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182879.1505702; Wed, 10 Dec 2025 11:44:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTIco-0003jB-MU; Wed, 10 Dec 2025 11:44:54 +0000
Received: by outflank-mailman (input) for mailman id 1182879;
 Wed, 10 Dec 2025 11:44:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=K7qh=6Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTIcn-0003j5-LL
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 11:44:53 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a32d6057-d5bd-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 12:44:51 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-42e2e77f519so4203719f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 03:44:51 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42f7cbe8fdcsm37558790f8f.6.2025.12.10.03.44.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 03:44:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a32d6057-d5bd-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765367091; x=1765971891; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TOQqeyKlsVjnU4kOQYjStHyT8TJL8n1c/+MIxjqFYPQ=;
        b=KidOFp4gYNz+7MtHalpDsd7tff4+bYICXe5eN0awgjkHiHidunwMmGG5SkLP67JT6E
         1hKF+0Hw/UrnRIQB1a0BY2YbGRrjaGtSl0Xmauk3Cz8O78qJlibIJQInmDzywgEgVLE0
         HMM4iUVzPShTNotWWVdtP1HUj4AnMCCJHLl8M07zVYRADhNpWM9Nd3TVVTQFncmuNRYl
         AAwjwIdsWv38rHbvQAjo4yky51MUVwfrlSgSFXkS/s7V+2JEpZ642peCEFVdPHbsghSF
         4TQFy0eWp3PX2ze1U15EzwcQmqKRksXvmxfRISF4j53ktvWRerrFCju/cLW06qS+vCiL
         gNvA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765367091; x=1765971891;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TOQqeyKlsVjnU4kOQYjStHyT8TJL8n1c/+MIxjqFYPQ=;
        b=PbnsrP72WDxxu/jiS3u/sefmwJNnxQdtK25jysKEQeDDxO4VURYHez/N62vEOPELJk
         dkvWm75sMsjiCT6T+mbCLXWAhtjUUP01JaWhbMXY/DLZWVrNAj3gk5bfADBSev/yHox0
         nm1Dii6z+rV3oSntgmuLdbgpzD+BoHCNz9BvhMjRU1lhXJEbXUFMyMsBfSjrPO/Z++dw
         nP/K3YhGbF4OBIfdjobD4Ut9MZgVmVsd62uV+jNGH4WV+8LFRp1KAfV5M17lpPFZeWnZ
         bPs7vsToNSyT3QcmYM1RQ6M4lxw7U+ooDP6LWJlzdpJ79ola6liyZJRPw7oKLv1uyEY+
         kvBQ==
X-Forwarded-Encrypted: i=1; AJvYcCW5/OqT/YWwcUDO4/vX2ekYmUFYGWs+mdPMAbNkZ9oQreAuqGHZxX5vjQnhdvshbqPJT0LgDGhY0BU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzfn2g0Na12g0CFcRs0za8HVl2Ggoqv/BvR8kZcKnT/DDYZiZpG
	ErzzQNPUXN5SP8sNqp0BIaGo3QZq+sJvFyxqFTRKQtgqKQZjRBHKvZSB+LqxlPOi8w==
X-Gm-Gg: AY/fxX6sDDvtDjEFNZpo0XNB0YghZZKpJd7wl8gMWIeLBKSTIj9iwrsoLb6P2Y9TRuI
	K98fZeluoWK3kvR2/fpYcRFjmkShMZSJ7xnRtgTnXTHgimfheypYdkNd6qF1BANaY2aUV1hlsl/
	jauO5U/1Fw4hjpgk6Dk9lTOVgO38pp2dbG5H5bsKHUbqXz2/bRQpqEFblXx6bJvxa4kt5rmzZc/
	Fk7Go/dxQuawzfNT+dSuVKwGGIzzmkfRirOsi2s22fQBmPKTaCxXLN99ZmtfaVQB9EYCXRKtiqL
	kaasOYvFJXH/oQketMrRtETc10TtT9tpUndOkNRVoETKH8hjeOZmC18zPJJihF5FbcqqUGisRZP
	Gw6Y9kddIYbI+nMc2wiBuiifbfcsJrViFecXrpixrwvbeUDKP2fdL1zluOkAP4ZsJqTW7dzGFc5
	BtXT6NUkOQYdxuuTTQLMEjqB3VCMVEWJmGp4O4zZhXssHE0HaTgHXpSwj8hKBDBDgKaDzeI4YJg
	JM=
X-Google-Smtp-Source: AGHT+IEppmzHNZWrAsh9HWZ03rwoiB+z1t+PtwOQN80x5xbO+cwsdvk+Vh4Ok3PihQn1sSiuYdp7bw==
X-Received: by 2002:adf:fa49:0:b0:42b:3455:e4a4 with SMTP id ffacd0b85a97d-42fa3afe634mr1672686f8f.31.1765367090675;
        Wed, 10 Dec 2025 03:44:50 -0800 (PST)
Message-ID: <07e53eae-2475-4325-bc4c-3634c4ed2aa4@suse.com>
Date: Wed, 10 Dec 2025 12:44:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 18/19] xen/riscv: add support of page lookup by GFN
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <48a58cde3de6a459885465c6d29d00d046ae4a37.1763986955.git.oleksii.kurochko@gmail.com>
 <69dce344-4dee-4778-99c2-0621c4e17cfc@suse.com>
 <86a87823-8b15-4897-9a97-ade444e2830d@gmail.com>
 <5fd516ed-c6db-4e7f-beea-a87c89faa6c0@suse.com>
 <e6240b4a-c8f9-4618-916a-d97ce3ae7d3e@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e6240b4a-c8f9-4618-916a-d97ce3ae7d3e@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.12.2025 12:36, Oleksii Kurochko wrote:
> On 12/9/25 4:49 PM, Jan Beulich wrote:
>> On 09.12.2025 16:41, Oleksii Kurochko wrote:
>>> On 12/9/25 12:38 PM, Jan Beulich wrote:
>>>> On 24.11.2025 13:33, Oleksii Kurochko wrote:
>>>>> --- a/xen/arch/riscv/p2m.c
>>>>> +++ b/xen/arch/riscv/p2m.c
>>>>> @@ -1061,3 +1061,186 @@ int map_regions_p2mt(struct domain *d,
>>>>>    
>>>>>        return rc;
>>>>>    }
>>>>> +
>>>>> +/*
>>>>> + * p2m_get_entry() should always return the correct order value, even if an
>>>>> + * entry is not present (i.e. the GFN is outside the range):
>>>>> + *   [p2m->lowest_mapped_gfn, p2m->max_mapped_gfn]    (1)
>>>>> + *
>>>>> + * This ensures that callers of p2m_get_entry() can determine what range of
>>>>> + * address space would be altered by a corresponding p2m_set_entry().
>>>>> + * Also, it would help to avoid costly page walks for GFNs outside range (1).
>>>>> + *
>>>>> + * Therefore, this function returns true for GFNs outside range (1), and in
>>>>> + * that case the corresponding level is returned via the level_out argument.
>>>>> + * Otherwise, it returns false and p2m_get_entry() performs a page walk to
>>>>> + * find the proper entry.
>>>>> + */
>>>>> +static bool check_outside_boundary(const struct p2m_domain *p2m, gfn_t gfn,
>>>>> +                                   gfn_t boundary, bool is_lower,
>>>>> +                                   unsigned int *level_out)
>>>>> +{
>>>>> +    unsigned int level = P2M_ROOT_LEVEL(p2m);
>>>>> +    bool ret = false;
>>>>> +
>>>>> +    ASSERT(p2m);
>>>>> +
>>>>> +    if ( is_lower ? gfn_x(gfn) < gfn_x(boundary)
>>>>> +                  : gfn_x(gfn) > gfn_x(boundary) )
>>>>> +    {
>>>>> +        unsigned long mask = 0;
>>>>> +
>>>>> +        for ( ; level; level-- )
>>>>> +        {
>>>>> +            unsigned long masked_gfn;
>>>>> +
>>>>> +            mask |= PFN_DOWN(P2M_LEVEL_MASK(p2m, level));
>>>>> +            masked_gfn = gfn_x(gfn) & mask;
>>>>> +            masked_gfn |= (is_lower * (BIT(P2M_LEVEL_ORDER(level), UL) - 1));
>>>> I fear I still don't fully understand this. I would have expected the same mask to
>>>> be used for setting / clearing bits (once inverted, obviously). Why would you clear
>>>> only some of the lower bits in one case but set all of them in the other?
>>> Only when is_lower == true do we need to set the lower bits; in all other cases
>>> this is not required, if i am not confusing something.
>> That wasn't my point though. I don't follow the !is_lower case: Why would you
>> clear only the bits for the given level, not all further down as well? Or am
>> I reading P2M_LEVEL_MASK() incorrectly?
> 
> Maybe I am still misunderstanding your question, but let’s consider what happens
> in the loop in the case of !is_lower.
> 
> P2M_LEVEL_MASK() returns the mask for a given level, so:
> 
>    P2M_LEVEL_MASK(2) = 0x1FFC0000000
>    P2M_LEVEL_MASK(1) = 0x0003FE00000
>    P2M_LEVEL_MASK(0) = 0x000001FF000  (not really used/checked, because if we need
>                                        to calculate it, we already know we are at
>                                        level 0)
> 
> Since we accumulate the mask across iterations, we get:
> 
>    level 2: mask = 0x1FFC0000000
>    level 1: mask = 0x1FFFFE00000
>    level 0: doesn’t matter for the same reason as above.
> 
> So, in the !is_lower case, it is clearing only the low bits for the current level.
> On each iteration, we get only the portion of the GFN that corresponds to the
> current level, plus the portions from previous level(s) if the level is not the root.

But then you accumulate only for the ANDing, whereas you calculate the same mask
from scratch for ORing. That's inefficient and confusing imo.

>>> The idea is that if boundary = 0x1000 and gfn = 0x800, and is_lower == true,
>>> then to return the correct level value we must set all lower bits of gfn to 1.
>>> Otherwise, we would get level = root instead of level = 0 in this case.
>>>
>>> I decided not to reuse mask to set the lower bits when is_lower == true, because
>>> doing something like:
>>>
>>>       mask |= PFN_DOWN(P2M_LEVEL_MASK(p2m, level));
>>>       masked_gfn = gfn_x(gfn) & mask;
>>>       masked_gfn |= (is_lower * ~mask);
>>>
>>> would allow ~mask to introduce 1s into the upper bits, which is not what we want.
>> If you set "mask" such that it has suitably many of its low bits set then you
>> should be able to simply do
>>
>>        if ( is_lower )
>>            masked_gfn = gfn_x(gfn) | mask;
>>        else
>>            masked_gfn = gfn_x(gfn) & ~mask;
> 
> So, if I understand correctly, your suggestion is to calculate the mask as follows:
>    level 2: mask = 0x3fffffff
>    level 1: mask = 0x001fffff
> (i.e., mask = BIT(P2M_GFN_LEVEL_SHIFT(level), UL) - 1)

Yes.

> I agree that this works fully in the is_lower case, but it may cause issues
> in the !is_lower case. According to the spec, the (guest) physical address is
> 56 bits (and the corresponding GFN is 44 bits). My concern is that bits above
> bit 44 must be zero. However, ~mask would have all higher bits set to 1, so
> those (above bit 44) upper bits would not be cleared.
> 
> Perhaps this is not an issue at all, since a GFN larger than 44 bits should be
> considered invalid. In that case, it may be sufficient for check_outside_boundary()
> to ensure something like:
>    ASSERT(gfn_x(gfn) < (BIT(PADDR_BITS - PAGE_SHIFT + 1, UL) - 1));

Invalid GFNs you want to make sure you reject earlier, if they can make it
into here. Only if elsewhere you have code to reject them, you can add such
an assertion here. (Recall: You may not assert on guest controlled input.)

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 12:19:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 12:19:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182899.1505711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTJAO-0007tH-IH; Wed, 10 Dec 2025 12:19:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182899.1505711; Wed, 10 Dec 2025 12:19:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTJAO-0007tA-Fa; Wed, 10 Dec 2025 12:19:36 +0000
Received: by outflank-mailman (input) for mailman id 1182899;
 Wed, 10 Dec 2025 12:19:35 +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
 <SRS0=NJGl=6Q=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vTJAN-0007t4-95
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 12:19:35 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7c4b4b56-d5c2-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 13:19:33 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-640c6577120so10329298a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 04:19:33 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-6496a8cc841sm2731629a12.4.2025.12.10.04.19.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 04:19:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7c4b4b56-d5c2-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765369173; x=1765973973; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=CsJL26CJGVBCZ/QgFLVcz7bzQXO/wt0gp12A34+Ga2Q=;
        b=GMU/pLcnOYDsIcPMNRqL4HvuSAY6L+CQvRt2EJzH3+K6bmkV0/PdoE/lzaj9sHRAqN
         1xET5gC5cSqxmkfPOXVPL94mczGdBVYm72i5iJbOwUSqcIbVhfkIvmxZaisr98whIU8c
         91eVnOBuxEBdXTCPPazyfHSzVIVaNuqoZX/Bf8It/w4MIdnVsLpa5YQh2pzAcNbryKu8
         abN6IPQ8kvtUjVkkNXJEH4tB7o42qYG1ICEA3YtIXA8d9Cng+GBZqYK+xs2kbxwTCTZV
         NTdGfL8s9FEDvJNy2rlayIhsNFtGAasMgFAYmbBoTAuLRt1629AIuPscSA8g+lD1mRiU
         pKhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765369173; x=1765973973;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=CsJL26CJGVBCZ/QgFLVcz7bzQXO/wt0gp12A34+Ga2Q=;
        b=E7sUMZ9d5n6wwbNql+9B4cZxyEO+TZhEPK09ebVEY3Ag+muGdOLPAdAs8lzU8WIFYT
         NGzaw9fLNnO7puSpUImoZZxNmNGvmwGIe+v7yAox6WShe6mfZ0sJhbnpu+nVMQRH5/Eu
         xJBn9Tgr2Jd59cbptbqTgNLnDqfIQXPQKuYU2fmAppzJmaUUXusYhPFzrDoT3m9iMRCH
         QLVP1yZCS90xIowNWsdUm9ZE/453tbU3lZkdxksktFpiWoC6u9Y1zd505UZWQoTiSo3Y
         RvO0KB4ZOkMi0sw6Denm/EUknGBvxgZ0gBktWcDThPpLfqG2FKIGgJJ51STdxgeVySyd
         mEWA==
X-Forwarded-Encrypted: i=1; AJvYcCX2DIVHes5Ac5vsBbRBNbFEln0yhZODStYWJdbvHOWcXS9acFQqfxZT9jvpeT9dmrr0NEHA+hDkOx8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy3p5p0ypNIvMxagS2RYjQrRMe34+bm9OVfNdsNghBZfzdg8UWx
	MyFYlweusd5BWy14kw4Tk570bJRONpOaJlQiqUTlJxSCLAdPIK8XSL+E
X-Gm-Gg: AY/fxX4cxaB+2O5/Q8+Ua4sPkJyL9v0U2Fi4KdfsefU04PcBs9c8DqcY/608GJLaViZ
	tIFkYLhBQ7KNtzLaeU5u7eRV5SvnnNbuXrZSM1GmoZkpIcyfO1B86PhPhWv204DxSldbmAkj05P
	e2QemQrhvT8rZnLJiuJA0C/x2KlPIiBiTva/zz0ZYBnbmlzfjYo7L/N2wvIsp0CwQa9gv8abvyr
	+bur94tvMvMN6j43+WSH9YF2mWl04wLnB6dH/18IKtTxfpQ8JGDP+qQOCdddI+MK2+wpPAnsJXN
	o6P6TKRfCAYpHVl+15mOe2rJfwn9VTPvzup6VUxObxv512wKkVvFVRws9QwANStl+gjNt4G08Ox
	xkHn6ltojfFyIKHDa3rF2h3y0f76lOZyVRA6ptEuZD6tBbx/WX3olPzVOwOklNc8zyzmXs9vFFt
	n2yGfkokjBWpGWh8ZTPgbpwNmOsbTbY+jC1mCUJsvMPhVkyBW9SVJ8/NuBLCH/
X-Google-Smtp-Source: AGHT+IHnTNOdUWANagiILPydxb+B8q22RESdGXsqxkPco3IchA2bilN8PactGCfDCubPcsuaYPI+xw==
X-Received: by 2002:a05:6402:2552:b0:649:6ac4:79af with SMTP id 4fb4d7f45d1cf-6496cb85504mr2133394a12.6.1765369172707;
        Wed, 10 Dec 2025 04:19:32 -0800 (PST)
Message-ID: <9aa60307-6571-4680-a5ec-4c7f945a109e@gmail.com>
Date: Wed, 10 Dec 2025 13:19:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 18/19] xen/riscv: add support of page lookup by GFN
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <48a58cde3de6a459885465c6d29d00d046ae4a37.1763986955.git.oleksii.kurochko@gmail.com>
 <69dce344-4dee-4778-99c2-0621c4e17cfc@suse.com>
 <86a87823-8b15-4897-9a97-ade444e2830d@gmail.com>
 <5fd516ed-c6db-4e7f-beea-a87c89faa6c0@suse.com>
 <e6240b4a-c8f9-4618-916a-d97ce3ae7d3e@gmail.com>
 <07e53eae-2475-4325-bc4c-3634c4ed2aa4@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <07e53eae-2475-4325-bc4c-3634c4ed2aa4@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/10/25 12:44 PM, Jan Beulich wrote:
> On 10.12.2025 12:36, Oleksii Kurochko wrote:
>> On 12/9/25 4:49 PM, Jan Beulich wrote:
>>> On 09.12.2025 16:41, Oleksii Kurochko wrote:
>>>> On 12/9/25 12:38 PM, Jan Beulich wrote:
>>>>> On 24.11.2025 13:33, Oleksii Kurochko wrote:
>>>>>> --- a/xen/arch/riscv/p2m.c
>>>>>> +++ b/xen/arch/riscv/p2m.c
>>>>>> @@ -1061,3 +1061,186 @@ int map_regions_p2mt(struct domain *d,
>>>>>>     
>>>>>>         return rc;
>>>>>>     }
>>>>>> +
>>>>>> +/*
>>>>>> + * p2m_get_entry() should always return the correct order value, even if an
>>>>>> + * entry is not present (i.e. the GFN is outside the range):
>>>>>> + *   [p2m->lowest_mapped_gfn, p2m->max_mapped_gfn]    (1)
>>>>>> + *
>>>>>> + * This ensures that callers of p2m_get_entry() can determine what range of
>>>>>> + * address space would be altered by a corresponding p2m_set_entry().
>>>>>> + * Also, it would help to avoid costly page walks for GFNs outside range (1).
>>>>>> + *
>>>>>> + * Therefore, this function returns true for GFNs outside range (1), and in
>>>>>> + * that case the corresponding level is returned via the level_out argument.
>>>>>> + * Otherwise, it returns false and p2m_get_entry() performs a page walk to
>>>>>> + * find the proper entry.
>>>>>> + */
>>>>>> +static bool check_outside_boundary(const struct p2m_domain *p2m, gfn_t gfn,
>>>>>> +                                   gfn_t boundary, bool is_lower,
>>>>>> +                                   unsigned int *level_out)
>>>>>> +{
>>>>>> +    unsigned int level = P2M_ROOT_LEVEL(p2m);
>>>>>> +    bool ret = false;
>>>>>> +
>>>>>> +    ASSERT(p2m);
>>>>>> +
>>>>>> +    if ( is_lower ? gfn_x(gfn) < gfn_x(boundary)
>>>>>> +                  : gfn_x(gfn) > gfn_x(boundary) )
>>>>>> +    {
>>>>>> +        unsigned long mask = 0;
>>>>>> +
>>>>>> +        for ( ; level; level-- )
>>>>>> +        {
>>>>>> +            unsigned long masked_gfn;
>>>>>> +
>>>>>> +            mask |= PFN_DOWN(P2M_LEVEL_MASK(p2m, level));
>>>>>> +            masked_gfn = gfn_x(gfn) & mask;
>>>>>> +            masked_gfn |= (is_lower * (BIT(P2M_LEVEL_ORDER(level), UL) - 1));
>>>>> I fear I still don't fully understand this. I would have expected the same mask to
>>>>> be used for setting / clearing bits (once inverted, obviously). Why would you clear
>>>>> only some of the lower bits in one case but set all of them in the other?
>>>> Only when is_lower == true do we need to set the lower bits; in all other cases
>>>> this is not required, if i am not confusing something.
>>> That wasn't my point though. I don't follow the !is_lower case: Why would you
>>> clear only the bits for the given level, not all further down as well? Or am
>>> I reading P2M_LEVEL_MASK() incorrectly?
>> Maybe I am still misunderstanding your question, but let’s consider what happens
>> in the loop in the case of !is_lower.
>>
>> P2M_LEVEL_MASK() returns the mask for a given level, so:
>>
>>     P2M_LEVEL_MASK(2) = 0x1FFC0000000
>>     P2M_LEVEL_MASK(1) = 0x0003FE00000
>>     P2M_LEVEL_MASK(0) = 0x000001FF000  (not really used/checked, because if we need
>>                                         to calculate it, we already know we are at
>>                                         level 0)
>>
>> Since we accumulate the mask across iterations, we get:
>>
>>     level 2: mask = 0x1FFC0000000
>>     level 1: mask = 0x1FFFFE00000
>>     level 0: doesn’t matter for the same reason as above.
>>
>> So, in the !is_lower case, it is clearing only the low bits for the current level.
>> On each iteration, we get only the portion of the GFN that corresponds to the
>> current level, plus the portions from previous level(s) if the level is not the root.
> But then you accumulate only for the ANDing, whereas you calculate the same mask
> from scratch for ORing. That's inefficient and confusing imo.

Agree that it isn't really efficient and it is confusing, so lets stick to suggested
way below.

>
>>>> The idea is that if boundary = 0x1000 and gfn = 0x800, and is_lower == true,
>>>> then to return the correct level value we must set all lower bits of gfn to 1.
>>>> Otherwise, we would get level = root instead of level = 0 in this case.
>>>>
>>>> I decided not to reuse mask to set the lower bits when is_lower == true, because
>>>> doing something like:
>>>>
>>>>        mask |= PFN_DOWN(P2M_LEVEL_MASK(p2m, level));
>>>>        masked_gfn = gfn_x(gfn) & mask;
>>>>        masked_gfn |= (is_lower * ~mask);
>>>>
>>>> would allow ~mask to introduce 1s into the upper bits, which is not what we want.
>>> If you set "mask" such that it has suitably many of its low bits set then you
>>> should be able to simply do
>>>
>>>         if ( is_lower )
>>>             masked_gfn = gfn_x(gfn) | mask;
>>>         else
>>>             masked_gfn = gfn_x(gfn) & ~mask;
>> So, if I understand correctly, your suggestion is to calculate the mask as follows:
>>     level 2: mask = 0x3fffffff
>>     level 1: mask = 0x001fffff
>> (i.e., mask = BIT(P2M_GFN_LEVEL_SHIFT(level), UL) - 1)
> Yes.
>
>> I agree that this works fully in the is_lower case, but it may cause issues
>> in the !is_lower case. According to the spec, the (guest) physical address is
>> 56 bits (and the corresponding GFN is 44 bits). My concern is that bits above
>> bit 44 must be zero. However, ~mask would have all higher bits set to 1, so
>> those (above bit 44) upper bits would not be cleared.
>>
>> Perhaps this is not an issue at all, since a GFN larger than 44 bits should be
>> considered invalid. In that case, it may be sufficient for check_outside_boundary()
>> to ensure something like:
>>     ASSERT(gfn_x(gfn) < (BIT(PADDR_BITS - PAGE_SHIFT + 1, UL) - 1));
> Invalid GFNs you want to make sure you reject earlier, if they can make it
> into here. Only if elsewhere you have code to reject them, you can add such
> an assertion here. (Recall: You may not assert on guest controlled input.)

Then I will reject invalid gfns at the start of p2m_get_entry() instead of ASSERT().

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Dec 10 12:44:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 12:44:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182911.1505721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTJYS-0003N2-Dg; Wed, 10 Dec 2025 12:44:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182911.1505721; Wed, 10 Dec 2025 12:44:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTJYS-0003Mv-B7; Wed, 10 Dec 2025 12:44:28 +0000
Received: by outflank-mailman (input) for mailman id 1182911;
 Wed, 10 Dec 2025 12:44:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NJGl=6Q=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vTJYR-0003Mp-IJ
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 12:44:27 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f510f13e-d5c5-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 13:44:24 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-640e9f5951aso1379572a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 04:44:24 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-6496db4d839sm2203256a12.21.2025.12.10.04.44.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 04:44:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f510f13e-d5c5-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765370664; x=1765975464; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=lAwvMfCMhh5cdxo7JU3Ky1Pa6SEDggGx0ky1nAkrQxo=;
        b=h9yZD1T2JJAUyhWLJNZJA4I3noPYQ7G6zfo1GmEcCDTd89fl3lNo7BCm6XbO+lZnPD
         cRZPH7ORGlHTYZobXOZZl37xQdEE+7G8FxUcIoLmPx7fnPQ5W2nJpbIItXlZnbH89T8w
         1ofmdAAYvkT8w6ZBOi4zIs8pX0esUE5sgYqdIMxeVK8CS7KwOLYvQ2hwB5LnQqT0f71/
         InqRQ7+HLGPxQ30gEyFmAB3KWIPhXUZvvsiln4jHRmSfq593QM5dST4nspxx6mll1HxL
         Cm4FT/sullkQeczbeqF8jh1XpJcpVSD+7EbmsymgmI327gE4vSdfhHDrKnEwVR13r9N8
         eN8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765370664; x=1765975464;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=lAwvMfCMhh5cdxo7JU3Ky1Pa6SEDggGx0ky1nAkrQxo=;
        b=UFHmg9zHgyLLGRuJOSn0C/tCIjaYp+QBctHT83KYyXb1lSYp5af1Cdi46zpz2yQ588
         s8PPnQjSMkk3zm/Xolbywo8yhW3VP+TfEXhlP99V/61u7eNz07X8yOdZzwPrZAsbYFje
         hN8Gwg7f/HtNd4rld1/EvZc4d6/AIFSsSBGgYOR0y9TFIMAnGkKzM4HXenz2CsNDH7Vb
         BdsoBl0eHLxABSYSpJt5lYeP9vR4HBrO8GyJQA0J2YrJLtZB4hIO3E54jRT9zhuf09a7
         pTcL0FfnDdyljCodBm2ybQhn+KHGBMILRsUySQKSFJcIP85dqhFynvEGm8lHMxHM0jAH
         GGJg==
X-Forwarded-Encrypted: i=1; AJvYcCVWpsz7tEo4tiCM09+TNLfJkPAfWFtr3YWhy4BR/D/oG4dFNZVgCggW2UWoF2a1dgyCCFbQTWDKa3w=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy87yJjCj4FyU4j+V3LRAJwujSY5tUTcuGXz83TtDzHABFf8YbP
	uYF9yNqG/w4ttO6bfsPmXzm/8SR9goWRjqP9gWBKuyKRm1OxX96YzgMS
X-Gm-Gg: AY/fxX6TYj2QVBAXn3N9ahEKwWkh+zn1FFsPRFK295nVfMmm4N0QmZBYc4psWC3KDVW
	cnsdSdB+ZHNMFdRtenPF1rDYM8J4R3F1KvXzZYWpQhIYpMtLY8juoghNIrGjc6859lM5czVDgOw
	NFXveVkFv7+hMjzPJRKvSxDbUgz4zVBVWeP1iJ5cnNU0j9D000vNc1l5EBtbmNu/H9711W6+j1T
	7fCXjHBa+rcvVIfh9BUVYH1/wn+Ony6JmPBOgFBEM7Moae+4kGmWF3ZxvNa8a0IGiYO2XuZFlvj
	s5oxoIgtUVS4RPDSaRKHBY/AAP2ekvcTDzUVwgO140ZRsM04o20ujaPHJnQzs/zm2q7Wulap9tP
	ZA78KSqDrmpc8MQFwwllVCcKILCOX8H3z1KffMLHtCPATzXyMGqys7HoF/9ky7lW1e2aKBe2y+2
	OoKyIYap1Hnpz2a7G4CsxOa9x/aBUNolTnUfcLmK+fUTu19WI2g8uGJe9IDqrt
X-Google-Smtp-Source: AGHT+IHOEkk2KXETBL2fXWcRZFPJnbcjRIHLPMB5HWMI6uFQjnDoLdUedLmCrogrsDr8juo9Lw+zGQ==
X-Received: by 2002:aa7:d612:0:b0:640:abb1:5eff with SMTP id 4fb4d7f45d1cf-64963f319c4mr3300732a12.8.1765370663859;
        Wed, 10 Dec 2025 04:44:23 -0800 (PST)
Message-ID: <db24c624-0432-48ec-aecc-3efaa4973303@gmail.com>
Date: Wed, 10 Dec 2025 13:44:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 19/19] xen/riscv: introduce metadata table to store P2M
 type
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <2c41da84b3e7fb0f6e6c3c856bff6edaf9e1d505.1763986955.git.oleksii.kurochko@gmail.com>
 <889df78f-7196-4b44-9558-fb83f432e18a@suse.com>
 <36be69fb-9362-43a4-8308-1e62be60d27f@gmail.com>
 <621089a4-d946-46ce-a3cf-4d0938d4a39a@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <621089a4-d946-46ce-a3cf-4d0938d4a39a@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/10/25 8:06 AM, Jan Beulich wrote:
> On 09.12.2025 18:09, Oleksii Kurochko wrote:
>> On 12/9/25 2:47 PM, Jan Beulich wrote:
>>> On 24.11.2025 13:33, Oleksii Kurochko wrote:
>>>> +            *md_pg = p2m_alloc_page(p2m);
>>>> +            if ( !*md_pg )
>>>> +            {
>>>> +                printk("%pd: can't allocate metadata page\n", p2m->domain);
>>>> +                domain_crash(p2m->domain);
>>>> +
>>>> +                return;
>>>> +            }
>>>> +        }
>>>> +    }
>>>> +
>>>> +    if ( *md_pg )
>>>> +        metadata = __map_domain_page(*md_pg);
>>>> +
>>>> +    if ( t >= p2m_first_external )
>>>> +    {
>>>> +        metadata[ctx->index].type = t;
>>>> +
>>>> +        t = p2m_ext_storage;
>>>> +    }
>>>> +    else if ( metadata )
>>>> +        metadata[ctx->index].type = p2m_invalid;
>>>> +
>>>> +    pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>>>> +
>>>> +    unmap_domain_page(metadata);
>>>>    }
>>> Just to mention (towards future work): Once a metadata page goes back to be
>>> entirely zero-filled, it could as well be hooked off and returned to the pool.
>>> Not doing so may mean detaining an unused page indefinitely.
>> Won’t that already happen when p2m_free_table() is called?
> Well, that's when both page table and metadata table are freed. But what if a
> leaf page table is moving back to holding all p2m_ram_rw mappings? Then the
> metadata page is unused, but will remain allocated.

Good point...

This could be a rather expensive operation, since in the code:
   +    else if ( metadata )
   +        metadata[ctx->index].type = p2m_invalid;
we would have to check all other metadata entries to determine whether they are
(p2m_invalid) or not, and return the page to the pool.

It would be nice to have something like metadata.used_entries_num, but the entire
page is used for type entries.
As an option, we could reserve 8 bits to store a counter of the number of used
entries in the metadata page, and then use metadata[0].used_entries_num to check
whether it is zero. If it is zero, we could simply return the metadata page to the
pool in the “else if (metadata)” case mentioned above.

How bad is this idea? Any better suggestions?

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Dec 10 12:52:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 12:52:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182923.1505731 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTJfr-00058H-3u; Wed, 10 Dec 2025 12:52:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182923.1505731; Wed, 10 Dec 2025 12:52:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTJfr-00058A-1P; Wed, 10 Dec 2025 12:52:07 +0000
Received: by outflank-mailman (input) for mailman id 1182923;
 Wed, 10 Dec 2025 12:52:05 +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
 <SRS0=kYpY=6Q=bounce.vates.tech=bounce-md_30504962.69396cf1.v1-245b427f5e91429eb116c3e7049f174d@srs-se1.protection.inumbo.net>)
 id 1vTJfp-000584-84
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 12:52:05 +0000
Received: from mail132-20.atl131.mandrillapp.com
 (mail132-20.atl131.mandrillapp.com [198.2.132.20])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 061dad58-d5c7-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 13:52:03 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-20.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4dRFwd4dCwzFCWYyl
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 12:52:01 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 245b427f5e91429eb116c3e7049f174d; Wed, 10 Dec 2025 12:52:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 061dad58-d5c7-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1765371121; x=1765641121;
	bh=8CytmQ/FbULeAYYu18F/ME3HWA3RoSA27CBhy1ssuhs=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=FBFmrdHHyvNEZTZn6E9O1kAGLBnCXAFk9qXwvU9lT1QWH07bMzIndmoszQilfuyS/
	 6+9eAUK/fTBidp6+GRLtU4qCngGkolNUzHrm5qOXF+Hnqg6mGB2UtxWqozt5xVobNx
	 lnA8ioAJz7HQVwIjARwI1wczIc3XDPSSGYFngLEvKTPClwRnD9FMAx4qQxjTl7RII3
	 WbiheFTa40zmm7hWsApuI5OmmaKCkWvOMKZraSOZ1zUxo/n3KLUaIHQrpCD9zwHrT7
	 7BCBn2B9tUIpf51GnMcU/rgbYYjaq5PuH2utBL9HG/wUyMdfk7AST7G+jxrE4uP5gN
	 UySAuel8dD5Xg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1765371121; x=1765631621; i=teddy.astie@vates.tech;
	bh=8CytmQ/FbULeAYYu18F/ME3HWA3RoSA27CBhy1ssuhs=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=eTb6vlOacSGpXwaRIR5sAPG22/kACXSGrPzNYgsW4v/5T97hTcAuV/Mr3H633MPqU
	 bg8z/fWoW/CZ5BlcUpRAEah2wkivBsgi6BPuytBOq4Rx+50zH1nJFh14BQLDTB2hYR
	 BR6Gg1l+fhsCWIpmE14W5uU7C/RBYXgPQ4XCdAnzEPinzlBTtDbYw1/m4Ybwx8wD1t
	 dPCmKXpM/RvCPyVgLYVDz6pv9GMuEMO7Hg3ADLKurgnfw46rPJG5bdtC3oSTzFGYkD
	 k808djrypQmw4yjcRQ82jDhwrd/sSldq3pU75cn0Yel2GcWzYr3uSJ+nNZ660OhqMz
	 f6se5bl0EJrQA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2]=20libxl:=20Add=20virtio=20(virtio-vga)=20display=20support?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1765371120650
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Community Manager" <community.manager@xenproject.org>, "Anthony PERARD" <anthony.perard@vates.tech>, "Juergen Gross" <jgross@suse.com>
Message-Id: <812ef472d775cf69b7ed4bab317df174c03e9ab2.1765371000.git.teddy.astie@vates.tech>
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.245b427f5e91429eb116c3e7049f174d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251210:md
Date: Wed, 10 Dec 2025 12:52:01 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Add "virtio" vga which uses the virtio-vga device provided by upstream QEMU.
It is VGA compatible and can be enlightened with virtio-gpu drivers which are
available since Linux 4.4 and as a part of KVM Windows drivers.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v2:
 - rebased CHANGELOG.md

 CHANGELOG.md                     | 2 ++
 docs/man/xl.cfg.5.pod.in         | 6 +++++-
 tools/libs/light/libxl_dm.c      | 3 +++
 tools/libs/light/libxl_types.idl | 1 +
 tools/xl/xl_parse.c              | 2 ++
 5 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3aaf598623..ed1ad61b0f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 ### Changed
 
 ### Added
+- On x86:
+  - Virtio-VGA display support for HVM guests
 
 ### Removed
  - On x86:
diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index 27c455210b..5952c36886 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -2566,6 +2566,8 @@ default and minimum is 8 MB.
 For QXL vga, both the default and minimal are 128MB.
 If B<videoram> is set less than 128MB, an error will be triggered.
 
+When using virtio, this parameter is ignored.
+
 =item B<stdvga=BOOLEAN>
 
 Specifies a standard VGA card with VBE (VESA BIOS Extensions) as the
@@ -2579,7 +2581,7 @@ B<This option is deprecated, use vga="stdvga" instead>.
 =item B<vga="STRING">
 
 Selects the emulated video card.
-Options are: B<none>, B<stdvga>, B<cirrus> and B<qxl>.
+Options are: B<none>, B<stdvga>, B<cirrus>, B<qxl> and B<virtio>.
 The default is B<cirrus>.
 
 In general, QXL should work with the Spice remote display protocol
@@ -2587,6 +2589,8 @@ for acceleration, and a QXL driver is necessary in the guest in that case.
 QXL can also work with the VNC protocol, but it will be like a standard
 VGA card without acceleration.
 
+virtio uses the VGA compatible variant of virtio-gpu.
+
 =item B<vnc=BOOLEAN>
 
 Allow access to the display via the VNC protocol.  This enables the
diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c
index 511ec76a65..a561ba695a 100644
--- a/tools/libs/light/libxl_dm.c
+++ b/tools/libs/light/libxl_dm.c
@@ -1210,6 +1210,9 @@ static int libxl__build_device_model_args_new(libxl__gc *gc,
                 GCSPRINTF("qxl-vga,vram_size_mb=%"PRIu64",ram_size_mb=%"PRIu64,
                 (b_info->video_memkb/2/1024), (b_info->video_memkb/2/1024) ) );
             break;
+        case LIBXL_VGA_INTERFACE_TYPE_VIRTIO:
+            flexarray_append_pair(dm_args, "-device", "virtio-vga");
+            break;
         default:
             LOGD(ERROR, guest_domid, "Invalid emulated video card specified");
             return ERROR_INVAL;
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
index d64a573ff3..5e704ba25a 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -239,6 +239,7 @@ libxl_vga_interface_type = Enumeration("vga_interface_type", [
     (2, "STD"),
     (3, "NONE"),
     (4, "QXL"),
+    (5, "VIRTIO"),
     ], init_val = "LIBXL_VGA_INTERFACE_TYPE_UNKNOWN")
 
 libxl_vendor_device = Enumeration("vendor_device", [
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index af86d3186d..927adbd457 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -2863,6 +2863,8 @@ skip_usbdev:
                 b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_NONE;
             } else if (!strcmp(buf, "qxl")) {
                 b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_QXL;
+            } else if (!strcmp(buf, "virtio")) {
+                b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_VIRTIO;
             } else {
                 fprintf(stderr, "Unknown vga \"%s\" specified\n", buf);
                 exit(1);
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Wed Dec 10 13:38:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 13:38:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182939.1505746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTKOM-00029n-HQ; Wed, 10 Dec 2025 13:38:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182939.1505746; Wed, 10 Dec 2025 13:38:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTKOM-00029g-EC; Wed, 10 Dec 2025 13:38:06 +0000
Received: by outflank-mailman (input) for mailman id 1182939;
 Wed, 10 Dec 2025 13:38:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=iyob=6Q=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vTKOK-00029a-6o
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 13:38:04 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 71f64e04-d5cd-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 14:38:01 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB6477.namprd03.prod.outlook.com (2603:10b6:510:be::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Wed, 10 Dec
 2025 13:37:57 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Wed, 10 Dec 2025
 13:37:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 71f64e04-d5cd-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hds4VoQtTcVRZ/9xDS6ZHab7LCDJ1JwXxmzBcvficxjVM5KFSEerS1VXs2g8Ko6zDlOxQce4HPizY0FSyx8hfWVEjFBuFvFa+6Qwfj2L6PDbEN6Gb98XhTi2O4HInc3hK7rs1u14W/ueXyJDJbZR9gH1cvvxj8++xq6ouIdzkEIIFf23wXZatej3GxwGXHLppiQ2ouJcl24nXfdw2iTQ086ORVtR9tk9qLCpC8TH1MRHsqibUsF5Dc1pFgq1aUaOGRekJ+hi0aJozSikhIKmc1dUrKxfmI5fR8ml7UGX4BxMgUoJc6y7vufB3b5vuOh/vCi5xF95j28BcuPBSvaIQw==
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=pIPqpbdKTsK3FQeIqYMORvxpJqjA3Cbq4RtGZ/o4C5c=;
 b=HMONwWHefrxbLYieCVTk/vd7+kagXySMGo5YwkZ7ccqUPcUypgqICdQIjC3bwIWqKo673NZ8wM+xRBvL4WAKpxi2OvfrNEFGjERYdU+p7nqaJpheegGPPozUDHreBp5OAyRL7BH8icK1NcH5eUIaCmhl4hkagm73K7X20Tvom3V1rvesT0CeeV+xapdTgyQW1c9WZvehxYt4wJUB4JSaL+aitAuuaKTQmemvj5xQCsh8admZTV3V80mhMSjVPBNPfNl3kFGY/Jab0BnRV48bwHciE86QsJf7W2vhW+1dT+/LpcrrfmRefFXYIhRybvN2REDNTGe3l3nRI+gAPTYTrw==
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=pIPqpbdKTsK3FQeIqYMORvxpJqjA3Cbq4RtGZ/o4C5c=;
 b=teqvEAj9cLADQ5AeDgM0GF3leQpnJ30b1RL0TNdsNXz2DElpz+xhIkEazrphLvXNep/TtlpDFuQr9vrED8pUqV2PV/1eTXQXzGaSszR905ZHouOeM95KxAysE8dQUYk88uDjMrKWtASIMkYmFie5KLhWcUGJlC8GczqNcLck7Hw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <4827eec7-1452-4840-a151-1f5deeff1384@citrix.com>
Date: Wed, 10 Dec 2025 13:37:54 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 1/6] x86/cpu-policy: define bits of leaf 6
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@suse.com>
 <8791387c-2799-4e0b-b187-1900b224a101@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <8791387c-2799-4e0b-b187-1900b224a101@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0602.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:295::16) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH0PR03MB6477:EE_
X-MS-Office365-Filtering-Correlation-Id: 828d9240-e36d-473b-bcb8-08de37f1545c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?c3Z6QWFHZlozT2VxME15NDJKOVd3azhvaEhsRDVUQzdaL2FOM0szNkhMQ3Q5?=
 =?utf-8?B?K0ZwMmQxeHNucjZQd011TE13QlhDRW9zek9JL2c5WnIxYnhaMFJ3enBOQmpU?=
 =?utf-8?B?SkNNVU54U2d5SnR2RkZrL2dOUWpYLzhKOW5WMy9aVWRiSmpPUkhoWEZzYXlI?=
 =?utf-8?B?Y2I3SWpiWXA2cllUeEhIWVVKUkhNM3RSeTZSczJKSGdFNlI3R3FQL3FSZ3dy?=
 =?utf-8?B?Q1FtUzhIUnBPQVpGckdFTlM2VWxKTGRFVDkwdU44YkZ6cTlSWHpCYVFvZmdG?=
 =?utf-8?B?RnVOVnd0dWxXS1VGMkxpcndvVmZldjNaNGdkbmtBZzBDYXVLVXdQYnkvT0tw?=
 =?utf-8?B?ZlIrK3ZLdEc5SE95RFZuWWFXQXZQNlFwR1BvVXpkMXByV3JCUHZUbDN6RWgv?=
 =?utf-8?B?OC9veisyS0Y3ZTZCQ2ZZVnFsSTM4RG84UzZIQUU4VXlvS3VmM2FqVW5EQ2dX?=
 =?utf-8?B?V0Jodm9vVmh5QkNETTI0RXdHeXJaWWt0WllDSVhZRjZpL3NVZ2VaamxSMVIv?=
 =?utf-8?B?QVlGLzdVQUluVHV2SkdQaEw0ZWJ1cm9LS21rKzBydHhvc0NKa1JXRlV0ZFJS?=
 =?utf-8?B?VVFWdUtucXFUZ2Nxa214L0F3RlkzaFdKbi96aUk2T0l6ck5DTTF1MHI3MjB6?=
 =?utf-8?B?eDY4ei9BalZhTlZyRDBNK2lvTGFNcU5RdGd1c01xSHRqWk54QXV4ZHlaRmpL?=
 =?utf-8?B?QWRrT2tDOWpHeEI4aU85Z2dsVTl4WTZiMXlFbjBSaDczUjgyODBBeEJmNnZi?=
 =?utf-8?B?MTdKWkJGOTIyWVFuVDUvd0loU0d3VUNDQ1NmcjVHc0tWa1hVRkxNMzF4allU?=
 =?utf-8?B?WUpsdUlSZmVBdU9wVlpCcTFHQ1ZHT2tPdXlzeTR4NkFwSVlLNzA2d29HcVI3?=
 =?utf-8?B?VkRSOXhZajU1Qi9sZGVSdlFxV3o3RGFuYkRxcm85R3cwVTdMdUlGSC92TWo0?=
 =?utf-8?B?MElUeDZUeDV4TE1EWjFESDRrYTg0TFYxUkJNd2trT2RqbmFjUFQrdE9UTXRu?=
 =?utf-8?B?NS9HbUZBQTVzMDdjb0lDd3pKQUFoQ3JaTDYySjNJWEQvRW04NXJ4VENJaE9T?=
 =?utf-8?B?NFg5TW5TN1pRZlVSWW1aL1NzV2lBSW1RbmRGc0pQd3Vqa1pOTHkwaVhvVkdF?=
 =?utf-8?B?MXZ2NWdEeUswZDVXdmdDeTVkc3ROL29TZ3VLVmY4ck5Sa1J4UlhpMTFNYnph?=
 =?utf-8?B?aWFFdGY2TjlCRWxRYkUvV1dQVUNHSStkTHRKMkswc0YyTnZFUVJaWGFSdWEz?=
 =?utf-8?B?NjBCQmVGNmdkbDNmV2xNN2s5cFBMVGRTbGtvcmlnT0xTYlVxMUhkYVgxMDVn?=
 =?utf-8?B?Y3QvYXduRFNNcU1xWUtiUXpPdkU5bEY3VGN4OHRhWmdza1dDaFdtQnRwZnhY?=
 =?utf-8?B?bmVWVEZzSmpwOUM5dk54T0JHYzF2QVo1TkRDY0JXN0ttK3FWWk4yc0pGK1Ey?=
 =?utf-8?B?bFh0SlUzdk9yTy9kbDNHd0piazRESTVXU1J3QTdxS2U0UzQ5bFo4MzVMUGl6?=
 =?utf-8?B?a1F5c1hXN3V2cjhydXhxWVJ5aHpOamVUdHNQZGI2a0I3T21lSzdZeHU2Njk4?=
 =?utf-8?B?N2JldDU1VGpLWlYveXc4MmdhS1RxbnVJNGViNzRRTDVPY2RvTnBkUUxiL1dQ?=
 =?utf-8?B?VFY3cWphdUpQelZlL2g0N2dyQXdua042M003MDJ1OTNNazlHUXJ4SFRubXY5?=
 =?utf-8?B?Mlo4WjQ3QkQ0N3N2MDZvQ2lETXVNV0gxYkorWTJoRVpBdmVQVFJDT21kR2R2?=
 =?utf-8?B?UXFCcm1NWjdzczZEMXc1YmZSbjFEc1RLL1prbzdOVE5vUUNJZUI1ZmljODEw?=
 =?utf-8?B?R211MFVxTm9HMU83UWNhYVlrd1NvZDRjdEwyRUV4YW5NWWFOdWtRbndjZXBB?=
 =?utf-8?B?ZHd6ekVQMFRnQkRrQTNGZmgzY3hUTlFSMEdhY3VFd2pUY0FObk12eFFXK1J6?=
 =?utf-8?Q?480Wb05NoXOL39t04hZY6kcDi44Yo2Mn?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZURpbHNOdDcweUZHUWcvV1I2YkI5M0NBK1JsbGsreCsvNnl3UVpTQ2QyTUxN?=
 =?utf-8?B?NWRDNkpUeUlsWEM0aTY4cFFwa2h4cWdneGpiSHcrU3JGZGsrangwd1hZamEy?=
 =?utf-8?B?TXZYSDJtZWJGVVNqaE12WFc4T2dFMGRKWUNqcTBTaXhsdkpZU1NSYnhQRWdW?=
 =?utf-8?B?YnBVdU5DcGdSSGNjVW5Mb0NIZzNJRmE2RVo0ckQzN21yRExybzFYVUJNREl4?=
 =?utf-8?B?TDRaZGlDVkZzOERWejN2ZmdIc2pqQ3hGYndSMW1EM3N1bVJnWmQ1RUVvOTV6?=
 =?utf-8?B?U3ZmWk9WLzQzMlBPaW1udXhLd2RRckNOYVVHVnBiV293T2pqdE9VcGRpOVhw?=
 =?utf-8?B?QkI1T3E4VTZKanptUWxnNjhXeHdEeHkyQW8rZyszTnY3ZU5GTzQ4NlhhdG9E?=
 =?utf-8?B?U3dWTzFYQlFJNU1mQWp2NHBiQjFqdDdsaHVxWExxYmNDVHNUYkVuekpJVU1N?=
 =?utf-8?B?eFB2Z1BHRGpIa3dsWTRXa0xtZE52UkZ6QTZjZnBpelRMaHBvYldmYzIzbGZI?=
 =?utf-8?B?NzVPbTFMdDdodDN5OGN3SlpQcWJ4VEtpWmUycm5hVmZ5VGlZc0xLOW1pbkZz?=
 =?utf-8?B?d1REeHp5aFFPc3FueUlOaUFrNzJHb0laRHZzN3VIVTN4aUIreFlxOGlHb0k4?=
 =?utf-8?B?dnpEY0hMRDBVdmxsZGFEOE1zeGRrVlVKWWp0eXBFVkRxWm9uZVUwaUJUZU1v?=
 =?utf-8?B?TktwTEg0RCtoUFR4R05HbzQrUFFyZnRuNENVRkU5ZHRlT3doUEJvZGkvenh0?=
 =?utf-8?B?aVREckprcXpEZitjRFovNE5vYXZjQlp4Q0dyazl0NlBBczh2eWE2cXdYZlBI?=
 =?utf-8?B?UEFmeWVFdERob1JpRG9iNit4blpsZ2lqNXhyVlVCVzc3MCtOQnZldnQ2RTg3?=
 =?utf-8?B?Z0FPcUpwVVlLekRXWFEvdmh1d1FRK3dML3ArVnlBbDNyL2thT1Z2RVF1elM3?=
 =?utf-8?B?NmxDREJlQ1FCZFdJUU5sWitrRlJDTTVsWTlhZ2lUMHFOT2VVTDY0S3ZiNHUr?=
 =?utf-8?B?VVVIOXRvTm54akZPUk9SbEpTOXBGWVJlQUo4UDZhRmdycWdNMzlMR0plcG9r?=
 =?utf-8?B?THVzajZiMHh6T1d2ZTZnNTluQ1BSWlZkdXppb21PYytOdUUwSWZJUS8vd3dC?=
 =?utf-8?B?cy8xQ1IxNmw4MCtvd0l3UWhJQitzajkxMWRkYzlmY0kwMUlNSmhvNWNWdlE0?=
 =?utf-8?B?R0JkcUVKRzc5elExRUp1LzFYOVdIanNmempxVVUzQkVHOGFnNmtXWHJrK1Fr?=
 =?utf-8?B?YTVqZ1lSbjNZWkxhbzdIdmQ4UlVEcWxXaDJNMDZPbG93cmc2OUhWeENkYjFO?=
 =?utf-8?B?VXhUMll4RVVsTlZTS011SXVJdGxDdWdlVzJxcVRqRlV6c2lRTWM0eTJlUlBx?=
 =?utf-8?B?dUNMMHQybzM3bXNoblI5TzhFR3FuQVE3OGE0Z3ZRYUdyVEpXaUxWVllEa3FO?=
 =?utf-8?B?TERLaGVPYUZydTJYVXdEMFJPNDdSWEQ4VGNUUDlpbHlsTUFoQ3JjM0tLUXJG?=
 =?utf-8?B?NklSK1VvdEtRZ0RpdHdHZ1IvQUg3WVpDY0F2bFgxWmNtdk1lY2tra2NleGxx?=
 =?utf-8?B?SVJMdDBmVXd5aU5UQ25zajFmQzBubk5GUDZQaUtOaUZSUTRmVUcwZkd1a0J0?=
 =?utf-8?B?cHIwN2RCVXBCRlZaVk9kdGlPbHpZRndYZExlL3ViYjk5VnQraUtxRksvSW5Z?=
 =?utf-8?B?RzJCUDV5OWlUeG5NSTdxL2VOam9ITk5GdHdWZ1pGaHFVdmtaMC9GK0w4aUN6?=
 =?utf-8?B?amdUSzQwcHY0ZTRwU0ZWVTloTmJrYjYweVMyTXBDeG1OZEI3c0hEMHNCdmFY?=
 =?utf-8?B?eU9aZEFXNGR6SEdxS2FKdkg2YXpmMUxNdmZWM3lGY1p4NTg4L2lnMkxaeGxN?=
 =?utf-8?B?YmxoQTVpcmlra3VMTnJFRmRJRS85L0F1ekdlMEZBaFRDU1NENHNqaDFkZWtx?=
 =?utf-8?B?SnBqeGgrM25SaEdBQ21ZMi96cXRabUhZR29lbSs3L0FYWDM1QzVuMnc2bUxr?=
 =?utf-8?B?b251dmY4bUtDZEpCMlRab05oTTVjVitBOHVPUE52NzJoTjdVSlZEVHpFYnhD?=
 =?utf-8?B?OVpDcFZYcXRqendxNENOaTR4cHgzZEQ1SitncU5hZHd5Wms5SjNMcFlVYmd6?=
 =?utf-8?B?eCtkS3IvYzNEOXRrTEd0M25nbEkxaS9jdTFqenpRd1Z2TWt3S3BaeitJMmFx?=
 =?utf-8?B?TVE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 828d9240-e36d-473b-bcb8-08de37f1545c
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2025 13:37:57.5850
 (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: yVe+u+KgR1Nq0fvxRrM95QQL5oowJhcD+TbrAMsXWWZAUvGYG8ieTSTo1M8VgxYlrpM0aXHMluutTUBWZ2ZgKlJOO2IwIS6L9apqo9Bcufk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6477

On 24/11/2025 12:23 pm, Jan Beulich wrote:
> ... as far as we presently use them in the codebase.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Or should we make both parts proper featureset elements? At least
> APERFMPERF could likely be made visible to guests (in principle).
> ---
> v2: Use bool and unions.
>
> --- a/xen/include/xen/lib/x86/cpu-policy.h
> +++ b/xen/include/xen/lib/x86/cpu-policy.h
> @@ -121,7 +121,46 @@ struct cpu_policy
>              uint64_t :64, :64; /* Leaf 0x3 - PSN. */
>              uint64_t :64, :64; /* Leaf 0x4 - Structured Cache. */
>              uint64_t :64, :64; /* Leaf 0x5 - MONITOR. */
> -            uint64_t :64, :64; /* Leaf 0x6 - Therm/Perf. */
> +
> +            /* Leaf 0x6 - Therm/Perf. */
> +            union {
> +                uint32_t _6a;
> +                struct {
> +                    bool :1,
> +                        turbo:1,
> +                        arat:1,
> +                        :1,
> +                        :1,
> +                        :1,
> +                        :1,
> +                        hwp:1,
> +                        hwp_notification:1,
> +                        hwp_activity_window:1,
> +                        hwp_epp:1,
> +                        hwp_plr:1,
> +                        :1,
> +                        hdc:1,
> +                        :1,
> +                        :1,
> +                        hwp_peci:1,
> +                        :1,
> +                        :1,
> +                        hw_feedback:1;
> +                };
> +            };
> +            union {
> +                uint32_t _6b;
> +            };
> +            union {
> +                uint32_t _6c;
> +                struct {
> +                    bool aperfmperf:1;
> +                };
> +            };
> +            union {
> +                uint32_t _6d;
> +            };

The _6[a-d] variables are only needed for the featureset <-> policy
conversion which isn't the case here (notice how you don't need it the
series), and we're unlikely to want in the future.

This wants to read:

            /* Leaf 0x6 - Therm/Perf. */
            bool :1,
                turbo:1,
                arat:1,
                :1,
                :1,
                :1,
                :1,
                hwp:1,
                hwp_notification:1,
                hwp_activity_window:1,
                hwp_epp:1,
                hwp_plr:1,
                :1,
                hdc:1,
                :1,
                :1,
                hwp_peci:1,
                :1,
                :1,
                hw_feedback:1;
            uint32_t :32; /* b */
            bool aperfmperf:1;
            uint32_t :32; /* d */

and with that, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 14:11:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 14:11:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182961.1505756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTKuf-0007RI-VR; Wed, 10 Dec 2025 14:11:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182961.1505756; Wed, 10 Dec 2025 14:11:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTKuf-0007RB-Sn; Wed, 10 Dec 2025 14:11:29 +0000
Received: by outflank-mailman (input) for mailman id 1182961;
 Wed, 10 Dec 2025 14:11:29 +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
 <SRS0=iyob=6Q=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vTKuf-0007R5-1x
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 14:11:29 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1d703717-d5d2-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 15:11:27 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS0PR03MB7702.namprd03.prod.outlook.com (2603:10b6:8:1ff::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Wed, 10 Dec
 2025 14:11:24 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Wed, 10 Dec 2025
 14:11:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1d703717-d5d2-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tKDANIqQ28gxSxb9EuLjb4Pe1EkKtCtS+7e0F7PmgZk251nAXQFh/Hw0wpnFt4EQVJq2S0koZtOE+IA8YbjNOgN/IJ8td/Mg4smDc5NyO+K6X8RKXx6kdwp9JGL1JLUgnZYoWGRoB2IF02E1zZp0FzanHJFd/tJ2AU8DrlWa8NjfsR5yZ0BQHGYbUPy5ZZODhRO1OXvtIwPdTZae2ass287wM+at/Szz4xBDh0uvzGcwHC94CzoDRjJjjIBLz8zazWGCUfP2KcRlBH++ZXLcwqtZCG7Z4YClPOMIuv+/WYTKJplWPR++zEiiZizcQyPrJHZez6VUPqeIff+dF/7V/g==
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=ieVQDxq3ykTC6nVlq4XdavazXhKlRmYDsgQ/M6GyeFA=;
 b=laYgLtnd8E92Z/QilVLArvj4Xv+raSLmylE6j4H1D7U4ocbqQsN6pmsX3+UMe06A33gD041sEIUpOUpMJeEz0nHLNVpSE2n2QHXLMz78au+LJD84zxauD4PgZNjpKNAHuVBl1a9S17CeOE1Tb++ERMnyiWZy+jscqMmgic60KClArR4NksmjejluNcgN0HR3+QGD+avCxlrwVV6omCDt2SaLwc33Sgds6SyHUKXNX+8xIyfJ1CN4E6ir4grHV3WFQaZpu11LjtVZ7BIgFoeNsCMdSLshe9HD3C37+j3Ruu95EwpultQ9J1GNNrjnOkyNZhJbhcUgHRe2Pi3dcsXpEQ==
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=ieVQDxq3ykTC6nVlq4XdavazXhKlRmYDsgQ/M6GyeFA=;
 b=dkUJxwHtd5T+Ng8XSsYX6rRLKBTdk37T1XCKGtcdwOyK7DcDXcarcwgg5wIN7ItwPOpUT5o4wZKCCBZUyFP8HIW8YYBINDsA4Tvg0nGXcqtoCeSYfobiX37uJqdv4pgQVMfuSxvzjet+4wS16785lc7nE/eCQ0rR3bfcN7trJ9A=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <ad7daa54-0529-4e14-9eff-32d42a24f9e3@citrix.com>
Date: Wed, 10 Dec 2025 14:11:20 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v2 6/6] x86/cpufreq: use host CPU policy in HWP driver
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@suse.com>
 <bacee005-8ba3-468e-8de4-681af1cc4856@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <bacee005-8ba3-468e-8de4-681af1cc4856@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0262.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:37c::10) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS0PR03MB7702:EE_
X-MS-Office365-Filtering-Correlation-Id: 14272ec2-d065-4d84-0bd3-08de37f60048
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?R1hUVkdxSFBOb1NJTzcxTUpTRXh4NWFNaXN3Um0xL0xmd3FENUxoZ05VZmZk?=
 =?utf-8?B?VkFYbk5zcTlrN3N4STlpQ2Z2V1R3OGRGSzA2WUE1MUpOS2ZPR2daaDBKUVFL?=
 =?utf-8?B?bnBCbEZGbm5uS0VUUU5UbGgyaGhSTi9IYWpvaVpsblNFV3pKZ1MreEJUVnJD?=
 =?utf-8?B?VUlpa1FvTnR5bUs2NVRlNGZuWVRGdXdnSklSY21jTTJDTzRiKzFtVUJkQ29s?=
 =?utf-8?B?ZmlOK293cjlLNjdTam9tWW9kTTFIckY5NzBWUnBORURHTWFQQzR0c2xMR2JC?=
 =?utf-8?B?YVMyS2pHMldBbWpZcFBoNXJKUzdNalNjOWw4WTRPaUtxTDZrTEtTdTV3TlV1?=
 =?utf-8?B?OFJGRG0wQW1rczNnZ2pDbXlVWWgwTzZUbVdFUURORVVtak9iZTBKc1NNdytJ?=
 =?utf-8?B?NzRUTmdQUWxrTFpUcHBkMW5wdFZ4eDQvYWYxVEVNMGJCZmErYWxyRlNCVndH?=
 =?utf-8?B?SldQMjZaTWdISEdhMlZtQWlDa0psakRqdTM3TGZTS2c2MWlDT1VlY1ppODVI?=
 =?utf-8?B?T0VTYUhsZ1VDK0dwYTViaXpoVEp0RUpnak9ubVk0ZHNGN25vK3dFcFYyQ050?=
 =?utf-8?B?Q1N3MEc3K09wNG5BMlBwalpGS0VRbXo5RkNmZjBGMW5ES2ZSL1VXNjZqOHlX?=
 =?utf-8?B?ZHlMYmROSGZ4WDdxc2lSeUNKampjOFlWOUk1SDA1UlFXNHovVisrRTFEdzZF?=
 =?utf-8?B?cUg4Tm5GaWg2YzdMUTNTTnFhQ1pYTUxYaWpQcmE4VEJXOHJuRGs4R25PL3hm?=
 =?utf-8?B?THVUTmEyUXg5ZE9KWDc1RzM0UjZOWEw5WTZ4NmN0Zndtb1RHRzVqeC9HSXhY?=
 =?utf-8?B?SElSdkpzK2lWL09QSEZWSEpHNGc4SkQ4eXpJSmpLbDJrbGVkR1Y0aUJ0Nk9L?=
 =?utf-8?B?T2FFTEU1YkJpRDk0Yzl2WXppWGY4U1NBME9ZY0t1WGZKcklTYjRNM0ZWRjJ3?=
 =?utf-8?B?TjcvNUd3SjdRWWFrSGo5SEtuWlBnWlAwaTNCTXpwK2FGT3dvekhrQlhqT25I?=
 =?utf-8?B?bUczNElmbDBWaXhQQXN0VDNhVFlhM3Rzejk5YngzUlkwQVpQQ2UvYkVINDFr?=
 =?utf-8?B?bWZqbno5VGFiMEV5OGVpZmoySnFXeEVvazYxWDNrQWk2TW5QSHJzY0xuRHYr?=
 =?utf-8?B?MVJDYkV5dmlBdG50MEhmalFIcDVCalVCM3dyeTB3ZWxCQXlaY1ZST3lFRjc3?=
 =?utf-8?B?NmFwMnYzbjV0cTRmTy9zamJITWkyb2lnVFhpcTF2VU1HOTlqV2NIZEdwZ3Iz?=
 =?utf-8?B?aElPTXNZUzVwUjZQMTRpYjlWQnZvQmRVRG92NmdDa0tXRVMzK29mY2lTK1JF?=
 =?utf-8?B?eHZBaEtacnlkREE2RlFmOXE2dGdIYVdsZXNYMURXVFduZVRXQW1zcjZZQmZ2?=
 =?utf-8?B?TFdISVJTSFVQd2EwU1M0RlNENjNMZ0J1SDNlNytIYWNSUSsvZGtxdlJQOG12?=
 =?utf-8?B?ZG1iRlFHVkhhWnZheVZxQkNCZFZhRFYrWWZOL1VqZnhLbUx2cE5rbDUxWWZx?=
 =?utf-8?B?L0hOL0laWXRxL2tnOGt2cDJHYzYwQ0c5SHFSY2xVclo5VUxlNHY0RDF2YU5Z?=
 =?utf-8?B?NUsyeWhWSzBYY2xzcUlQQTVLVHNtbUZ5S2d6SmEyS2RveDE1TFBrN1BlUThk?=
 =?utf-8?B?SmZMbWVpSVhOaWErZGZQL25Ba1d4Y2dnQy9hMWdYSHBnalpTWGM3cHFGZUpy?=
 =?utf-8?B?U2xsQXFlRGs4N2tLUG5BMG1ncXkvUCsyNmxEbDFqcWpKZitHaTllRG1IMjZU?=
 =?utf-8?B?b1Fqb1ovblJYanFZdmg1NEs1YndNVDZPOHhhWHRDcGhnaU5FZkNpOE5kempi?=
 =?utf-8?B?dC9DU0RiL0JOK0ZhR3ZyVXNPSk9xTVB4OVllZXBzSkRWTUtpT3ZWc01QUFVx?=
 =?utf-8?B?MGd6Q1VNS2RwMy92d1lNNHVZRHZHdlA2Y3NXbFFHRUxKWVJSWlg5UTBKQjRB?=
 =?utf-8?Q?mflgltr9kcWkJwOs8Ioa+Mf1Qj7wFPam?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TkY1YktUVEpwYnJkbVNTZjZwS3hkeXduM1BQVUt6LzE4WUllSE1DRE02bjZi?=
 =?utf-8?B?cUhrQVNzTVpJV2p1amJOUHdSeU9sb1M2ZlEzREFxSzBwcGtFMTJpNCtna1cz?=
 =?utf-8?B?SEc5VUNiUTlPYkJwWkVpc0JZK1A1S1R4QUxkeUZhTHgyZUFTQjlCY1A2cEZZ?=
 =?utf-8?B?WVFHVHR6d3JVa0N5MVljU2RGTDEzV3pGSncrRWR2c0pIVWNJanpNMXRjcGJy?=
 =?utf-8?B?S0U4aXJFVkpESjA1d1RKbWhudGFobEQ0TDBDNEdYRmtSOUUvd2IzKzlRazh2?=
 =?utf-8?B?NThMamFNS3dYeitCODZtZ2x5TXNQUE5naEg0YnAwVVlHUkpXVjVIdjg0YzRs?=
 =?utf-8?B?WWhsU28zcnl1VWUwN3B3UW45eHJrSkIzVmp3L0xQejJLRGRvMW1ITlZKNUxk?=
 =?utf-8?B?Y3R1NlJ3cnRIdHprcGh1NmthbUpTams1YVhYQ3lLRVJPVFgwZGRpVXFPYmxH?=
 =?utf-8?B?SXZCcWZnV083Mjd4VG1WWnZOL0pvbnR0cnRwNjJtbmk1YkdFSkFXektnSWwv?=
 =?utf-8?B?MUFwVUNQSkdRRmVkSVB0c3ZYQVdITHNiYVhqL29tbmxza2gycDdRN0xsOWRL?=
 =?utf-8?B?TVJrUExZcGszZXFVWmc3dFNZWnVqNFd6MzUvY0srMTYxMDRWOGdjV09ESUMy?=
 =?utf-8?B?SElmcDkwbUxjNFFxdW9vc0hoM05YbnoyUyt4eC9EYXEybFJwUUFvZlNGOGc0?=
 =?utf-8?B?YlNiejRqV1Z2Q3pQZlowdllpNG5STm9kejB1NjlETlIwbllTWVpWUlFFbGpH?=
 =?utf-8?B?dmZOZkwvWmpUdSs3TkVLdzY3ZTF4aEwvdncyMFdnWC85UEhQZC9jbCtLSkQr?=
 =?utf-8?B?T0RqZHJvTnhmMXZNbkNlR3U0bm00cG8yTVV2ck53eGUrY3NTRUFWa1RpbXBy?=
 =?utf-8?B?RWlpdHBPQ3Z2RUlMdTArdUU0SzRSWVc4NHZ5bGtLUTNLWmRXeWlkWFFWaVFU?=
 =?utf-8?B?WDUxcldhQzN5MFpDSVZUSFV0RjJwcytMcWl6ZUVzKzZDYUtHSlFaNVFmOTBE?=
 =?utf-8?B?UVBCSzRTdU41YU0xMXBvL2hJcktMNytLcU5pVzcxYWdqekhRM0FxNkhKVEVE?=
 =?utf-8?B?R1g4SWFqQW9DZTZJVmdZdVY4NDFucEttSVlBYnVNQ0VGc1FjK2ZsY3F2TFA3?=
 =?utf-8?B?aUYreEx2RmIwNjNKU2JvcFdVeXRDSTUwdDBqRVNPRUljaytOVk1HcmFHcEhs?=
 =?utf-8?B?R3RKeVZGMyswVTd5VHdrc21heHQvWk4xYzJhVjYyaWdueDdTU3VDcjA0ZTRZ?=
 =?utf-8?B?WThnNlJPUjljTEFhTjd0clZSMFd5WWt6b1RPUWlDTnZJMFRlS255RVovY3gr?=
 =?utf-8?B?SmRYdnZTRVpXcFJuaHk5Wi9LN3hjNHU4WUYrY21OdFJVL21rVElYUHZlcW43?=
 =?utf-8?B?SmtlaDhIZU9xN29MaE9ZSGd6Vm1oemFqcUR5MFNWYkErZW91WHRHelIxUU9n?=
 =?utf-8?B?V1dZUkdrbVJmQ1dYVFYrdmtqTWRqKzhEVVpuWmMwUWZqbksrTUlPbnF5eWtD?=
 =?utf-8?B?NG14MnVEMFhvT01CdG93Q2hWcTFQb3dIYUZwU2hoenZHS3B4ektNMWczTFM0?=
 =?utf-8?B?dDZMRVZyY0NoSWpJM1JPSU5TNDc4ZzErdjZkR3lhL0svZHRjVzdZdHlyeGMw?=
 =?utf-8?B?M3lJNEU4ZmxOTjdEaHNqbHZSQmZNaTBuV1h1SWlTSnZEMHNxS0pTeHJ6ZnBE?=
 =?utf-8?B?cjRpdnl1MjAyRUQ4WWlvdXVmdTdWdEVLakM5VDQza2tyMkhDTUtyS0hTVng1?=
 =?utf-8?B?ZWdFNE03T0c3ZGp5ZjlvNlJoM3RpTktBTVpTbjYvSDl2amdYdFpMdTYyZHpT?=
 =?utf-8?B?NExJNUtqTG1GRzNtM3ArZEZwaGlRVUpwai9JR05NekZ3L3pFcHBHSC96dlVu?=
 =?utf-8?B?VHpFV28ycDZvQ0hrWkwxVE1vY2xpSnVlcHhRTTBUVFNiZTNOVFdhMFlhb29B?=
 =?utf-8?B?N1hXWFFhVy9NNTMyLzhSczhqd3ptZFByVWpSUk5LL21VSU1YUzQ1NnhQeTNE?=
 =?utf-8?B?ZnlmUjNrNFJBTWZydUVzMFdlMG42MnFMdUdpeXJkdWszRzE5blV1SkxoUCsw?=
 =?utf-8?B?Ky9lamV5MzU3UzNKOWh4L2FwUUd5bkpiRGVmTHdCTlViS1M5Q3N1S21ybVZF?=
 =?utf-8?B?UTNTNTNpT1V5V0llcmpxT1ZpVStWTnY4RFZhdGpKd2Y3VFhRbVE5Tk1DY0NL?=
 =?utf-8?B?UWc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 14272ec2-d065-4d84-0bd3-08de37f60048
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2025 14:11:23.9993
 (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: RtgX1F2Fq5aa9TwYb/e5M3EZKh970U4HoyMu/wRXr/bYaaQBT4scRQRkXyh9ExaOVGGkCvHm/8L7y2VV7oeSKP6yBzJci3437AjWqeVmm1w=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB7702

On 24/11/2025 12:25 pm, Jan Beulich wrote:
> There's no need to invoke CPUID yet another time. This way two of the
> static booleans can also go away.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> v2: Introduce cpu_has_*.
>
> --- a/xen/arch/x86/acpi/cpufreq/hwp.c
> +++ b/xen/arch/x86/acpi/cpufreq/hwp.c
> @@ -18,9 +18,6 @@
>  
>  static bool __ro_after_init hwp_in_use;
>  
> -static bool __ro_after_init feature_hwp_notification;
> -static bool __ro_after_init feature_hwp_activity_window;
> -
>  static bool __read_mostly feature_hdc;
>  
>  static bool __ro_after_init opt_cpufreq_hdc = true;
> @@ -165,8 +162,6 @@ bool hwp_active(void)
>  
>  static bool __init hwp_available(void)
>  {
> -    unsigned int eax;
> -
>      if ( boot_cpu_data.cpuid_level < CPUID_PM_LEAF )
>      {
>          hwp_verbose("cpuid_level (%#x) lacks HWP support\n",
> @@ -183,29 +178,22 @@ static bool __init hwp_available(void)
>          return false;
>      }
>  
> -    eax = cpuid_eax(CPUID_PM_LEAF);
> -
>      hwp_verbose("%d notify: %d act-window: %d energy-perf: %d pkg-level: %d peci: %d\n",
> -                !!(eax & CPUID6_EAX_HWP),
> -                !!(eax & CPUID6_EAX_HWP_NOTIFICATION),
> -                !!(eax & CPUID6_EAX_HWP_ACTIVITY_WINDOW),
> -                !!(eax & CPUID6_EAX_HWP_ENERGY_PERFORMANCE_PREFERENCE),
> -                !!(eax & CPUID6_EAX_HWP_PACKAGE_LEVEL_REQUEST),
> -                !!(eax & CPUID6_EAX_HWP_PECI));
> +                cpu_has_hwp, cpu_has_hwp_notification,
> +                cpu_has_hwp_activity_window, cpu_has_hwp_epp,
> +                cpu_has_hwp_plr, cpu_has_hwp_peci);
>  
> -    if ( !(eax & CPUID6_EAX_HWP) )
> +    if ( !cpu_has_hwp )
>          return false;
>  
> -    if ( !(eax & CPUID6_EAX_HWP_ENERGY_PERFORMANCE_PREFERENCE) )
> +    if ( !cpu_has_hwp_epp )
>      {
>          hwp_verbose("disabled: No energy/performance preference available");
>  
>          return false;
>      }
>  
> -    feature_hwp_notification    = eax & CPUID6_EAX_HWP_NOTIFICATION;
> -    feature_hwp_activity_window = eax & CPUID6_EAX_HWP_ACTIVITY_WINDOW;
> -    feature_hdc                 = eax & CPUID6_EAX_HDC;
> +    feature_hdc = cpu_has_hdc;
>  
>      hwp_verbose("Hardware Duty Cycling (HDC) %ssupported%s\n",
>                  feature_hdc ? "" : "not ",
> @@ -213,7 +201,7 @@ static bool __init hwp_available(void)
>                              : "");
>  
>      hwp_verbose("HW_FEEDBACK %ssupported\n",
> -                (eax & CPUID6_EAX_HW_FEEDBACK) ? "" : "not ");
> +                cpu_has_hw_feedback ? "" : "not ");
>  
>      hwp_in_use = true;
>  
> @@ -226,7 +214,8 @@ static int cf_check hwp_cpufreq_verify(s
>  {
>      struct hwp_drv_data *data = per_cpu(hwp_drv_data, policy->cpu);
>  
> -    if ( !feature_hwp_activity_window && data->activity_window )
> +    if ( !cpu_has_hwp_activity_window &&
> +         data->activity_window )
>      {
>          hwp_verbose("HWP activity window not supported\n");
>  
> @@ -268,7 +257,7 @@ static int cf_check hwp_cpufreq_target(s
>      hwp_req.max_perf = data->maximum;
>      hwp_req.desired = data->desired;
>      hwp_req.energy_perf = data->energy_perf;
> -    if ( feature_hwp_activity_window )
> +    if ( cpu_has_hwp_activity_window )
>          hwp_req.activity_window = data->activity_window;
>  
>      if ( hwp_req.raw == data->curr_req.raw )
> @@ -365,7 +354,7 @@ static void cf_check hwp_init_msrs(void
>      }
>  
>      /* Ensure we don't generate interrupts */
> -    if ( feature_hwp_notification )
> +    if ( cpu_has_hwp_notification )
>          wrmsr_safe(MSR_HWP_INTERRUPT, 0);
>  
>      if ( !(val & PM_ENABLE_HWP_ENABLE) )
> @@ -537,7 +526,8 @@ int get_hwp_para(unsigned int cpu,
>          return -ENODATA;
>  
>      cppc_para->features         =
> -        (feature_hwp_activity_window ? XEN_SYSCTL_CPPC_FEAT_ACT_WINDOW : 0);
> +        (cpu_has_hwp_activity_window
> +         ? XEN_SYSCTL_CPPC_FEAT_ACT_WINDOW : 0);
>      cppc_para->lowest           = data->hw.lowest;
>      cppc_para->lowest_nonlinear = data->hw.most_efficient;
>      cppc_para->nominal          = data->hw.guaranteed;
> @@ -585,7 +575,7 @@ int set_hwp_para(struct cpufreq_policy *
>  
>      /* Clear out activity window if lacking HW supported. */
>      if ( (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_ACT_WINDOW) &&
> -         !feature_hwp_activity_window )
> +         !cpu_has_hwp_activity_window )
>      {
>          set_cppc->set_params &= ~XEN_SYSCTL_CPPC_SET_ACT_WINDOW;
>          cleared_act_window = true;
> --- a/xen/arch/x86/include/asm/cpufeature.h
> +++ b/xen/arch/x86/include/asm/cpufeature.h
> @@ -115,14 +115,6 @@ static inline bool boot_cpu_has(unsigned
>  }
>  
>  #define CPUID_PM_LEAF                                6
> -#define CPUID6_EAX_HWP                               BIT(7, U)
> -#define CPUID6_EAX_HWP_NOTIFICATION                  BIT(8, U)
> -#define CPUID6_EAX_HWP_ACTIVITY_WINDOW               BIT(9, U)
> -#define CPUID6_EAX_HWP_ENERGY_PERFORMANCE_PREFERENCE BIT(10, U)
> -#define CPUID6_EAX_HWP_PACKAGE_LEVEL_REQUEST         BIT(11, U)
> -#define CPUID6_EAX_HDC                               BIT(13, U)
> -#define CPUID6_EAX_HWP_PECI                          BIT(16, U)
> -#define CPUID6_EAX_HW_FEEDBACK                       BIT(19, U)
>  
>  /* CPUID level 0x00000001.edx */
>  #define cpu_has_fpu             1
> @@ -179,6 +171,14 @@ static inline bool boot_cpu_has(unsigned
>  /* CPUID level 0x00000006.eax */
>  #define cpu_has_turbo           host_cpu_policy.basic.turbo
>  #define cpu_has_arat            host_cpu_policy.basic.arat
> +#define cpu_has_hwp             host_cpu_policy.basic.hwp
> +#define cpu_has_hwp_notification host_cpu_policy.basic.hwp_notification
> +#define cpu_has_hwp_activity_window host_cpu_policy.basic.hwp_activity_window
> +#define cpu_has_hwp_epp        host_cpu_policy.basic.hwp_epp
> +#define cpu_has_hwp_plr        host_cpu_policy.basic.hwp_plr
> +#define cpu_has_hdc            host_cpu_policy.basic.hdc
> +#define cpu_has_hwp_peci       host_cpu_policy.basic.hwp_peci
> +#define cpu_has_hw_feedback    host_cpu_policy.basic.hw_feedback
>  

The indentation of these final 5 is one-too-few spaces.

I can't help but feel that notification could be shortened to notify. 
Except upon looking in the SDM, it's named HWP_INTERRUPT because it
enumerates MSR_HWP_INTERRUPT.

Similarly, HWP_PLR is really HWP_REQUEST_PKG because it enumerates
MSR_HWP_REQUEST_PKG.

ACTIVITY_WINDOW and EPP are wonky because they're out of order WRT
PLR/REQUEST_PKG.  It clearly means they all came in together, but have
SKU controls.

But I digress.  ACTIVITY_WINDOW can probably be shortened to just
WINDOW, and that fixes the two egregiously long ones.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 14:25:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 14:25:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182972.1505766 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTL8Y-0000lt-1E; Wed, 10 Dec 2025 14:25:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182972.1505766; Wed, 10 Dec 2025 14:25:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTL8X-0000lm-Ut; Wed, 10 Dec 2025 14:25:49 +0000
Received: by outflank-mailman (input) for mailman id 1182972;
 Wed, 10 Dec 2025 14:25:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=iyob=6Q=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vTL8X-0000lg-BN
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 14:25:49 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1e4e4872-d5d4-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 15:25:46 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB6470.namprd03.prod.outlook.com (2603:10b6:a03:396::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Wed, 10 Dec
 2025 14:25:42 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Wed, 10 Dec 2025
 14:25:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1e4e4872-d5d4-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gtAMVmasVF0kYFV4PSXLlBHjHVcYHXfyJOi9UlqNPn2xTZbfQ36+8kUT6OtDt76YYEPCLaR9jUzia9HySkbvS1eYFWYC4C4PLJCs35kz2bjEPQgR+Jeze9TRbvmBh0Z6yTl4ZfphYSBK8eCUypYs3JnE+jV/3ODMXQgQ0UGNjvVNRTo6uQ0FcNvvnT9HYM5HmoK6ku0cvxgMWmBYw3Sj6ltB/ivdZ6cgrKnOae143+SRSGMoa6visbtUvWp9Fz/TElG6eIVer9HO/s5sPMQnGf9WhlqLGmAonx4A+YSwBPPhbTfSbVlk0OhsyhKGBZb6Laaw6U+0ZX28sTRBe/dMWw==
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=y8TNQVSPDwOmt6QrrQxc44Yx+ZH1JFmJCNBMh0/qR/w=;
 b=N0pglvEEYv5vV9EezMYGbk1GKT80/jII/bvxB+qRY4y/cfObb3TqFZGOlq7WWesJWP6CupSfSrH8Pvm4w5AYOSc6O+Zstymc/aeBU5II5dANSKxTwvD3AI7KAcuy2kafhe8xYd/UpZ/p75VEvnBBuEdP4UePdd4QMlC4DC/kmD5v11PwO7sq8wjOvmkZ5YKlBdsBT73WuMDkNObNo1TvzqKMzYy5mdSwwqfj15kaIvpOsxkgX04F600Vnw0+zItfjyCS2ZoVPkWDAoCGPzeFIFb7j0jC0cFTnA68kVs1W6sNLFBA8q6ZwpK3KXrra2g4YyzDf8tzMFxFC7s98oxj/w==
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=y8TNQVSPDwOmt6QrrQxc44Yx+ZH1JFmJCNBMh0/qR/w=;
 b=veIdHG+yzafPwI6rtWi7DmsI5tCgfkAScLBz6RcheBjGjltkljEy6NoDpRHbknFOF79aRxxB925xdGxW9xLhPiKibG7S7F4NBIcExymkN9grZ1iusNtyzEAQdud74MkF3BXXX9eSsMzzoDyqKuuizdSX3qIv/l6GQ1qstoknUHw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <eef80a07-ccde-4948-8213-3ef5352c5283@citrix.com>
Date: Wed, 10 Dec 2025 14:25:39 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 1/3] x86/svm: Make vmcb_struct private to svm/
To: Jan Beulich <jbeulich@suse.com>
References: <20251128201937.1294742-1-andrew.cooper3@citrix.com>
 <20251128201937.1294742-2-andrew.cooper3@citrix.com>
 <373f19eb-39fc-4a76-95fe-4acb95ba71d8@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <373f19eb-39fc-4a76-95fe-4acb95ba71d8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0655.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:316::9) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SJ0PR03MB6470:EE_
X-MS-Office365-Filtering-Correlation-Id: a08ce6de-0eda-430e-bdb1-08de37f80011
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TkxTWmFPQjhpSDVlOTlHTjB2bmg4SmZ5ZDc3aHZ2NlB6N3dJc0c4N05mSjJT?=
 =?utf-8?B?cnVDbElVVVZGd2twY1Mva3NSV2pTTXgwUjZiRWtCM1phOGtYU3Q1OGVNS2tX?=
 =?utf-8?B?RURKalIva2hMWUZHV2twVU5aSVJvY3FsbjFoODV6Zmkva3YvUjM3V1hPRUdH?=
 =?utf-8?B?ZWlheXptSXJsMExlcEp1SzZGNGhSbFVSNHRMSzFoMEJBMGY4SGg3SG5ZQVl2?=
 =?utf-8?B?bnMwUDdjcnE1aFA5OUVoVFU5ejFiU1N3UU1qSlY3RnRrWmJTWElnak1hN29p?=
 =?utf-8?B?bXVZRGVQM2xNbnB5VmMwRkYrV2tDT0s3MERtcVZKd3JNU3dMQVZ5MjdXYTZB?=
 =?utf-8?B?ekdoL3NhaFppS3EwR1lWZWNxTkl2U3VLcnNiK3VUeTZmb0Rrby8rYUhhQUFV?=
 =?utf-8?B?a3IvL3FHaUdId3B0ZGpUcklYdGVWU2UvM1l2aU9GdGhlRll2dXA3ZWNlVllU?=
 =?utf-8?B?cFFDM1JLNWNialFXcUpHYUdhcEczTVdhVGVjcHl5UEdqRjArdDBHbGN6V0JD?=
 =?utf-8?B?b1FsZDhZVWhJWkRNSG5ZTG56OTF2YjlxanJ4bkd3Z2RGcmFWci8yMFV0NUVE?=
 =?utf-8?B?RTdMQ3k0LzlrWTdkazN5SXYxSnZjSnduYlgxLzNRY0xwR2dmVDBvUndJK2Rp?=
 =?utf-8?B?WVR4NjNHWTVEWGZLTGpndG5sU0FMY0NZR0c3M1QyVWYzSEtBNTdibHc4aGJW?=
 =?utf-8?B?Ym9oRTdOa2RKdENHOC83aXl2aXBhWDhUMGhZWUhnTWRoOFZ1cjc5clpSRXFw?=
 =?utf-8?B?ejdjUmErNVY2MkhLQXQ0WjFLNURsSG1wdm5QdmpoaU1qd21wYit2MjUzL2to?=
 =?utf-8?B?ZHZ0bllaVURNMkJVNFNlWElFbmtsUmhmbnRpQlZBc0pKVUQ1WUhyRTFRNE1S?=
 =?utf-8?B?aTgxY3lIa1JDem5VWFdYcUVzNTV0c3UzMG1YOExxbW9QcjZUUWowYmNCcGVo?=
 =?utf-8?B?R1Z5ZWZKYWQwcDk1eFR6bVhhNEUwZzFUd3hjVmpMK29td1pkdmlBckFCL3Zt?=
 =?utf-8?B?eWpvbHpKTFNnTDc5S20zNU9GaFkvTEtQM1g2b1I5SkR6NjRkTVdTckdCVStm?=
 =?utf-8?B?MHAzK2RtWEMvTnl2YXByd1JnZzBKZlFGMmpZYzU4dlNQdDhraUo5WFFjY1B5?=
 =?utf-8?B?ZzJmZE4yajVtTmR3WGVoQ1A2K3BFb3luNFhtSjhsdEMrS3hkaG9PcnhCUzAr?=
 =?utf-8?B?VFRlVHdIN0p4SlV0c0xRRUYrdURBREtUREJkSUNwcUFtTFlSTmJKa2prTU9H?=
 =?utf-8?B?NHVRM0U0M1psbTNrdDZWYXpnRVM0T3d6SlUyMVNiMnFEdDZOVU1KUzlMTm9G?=
 =?utf-8?B?dUZMQ0pxWnpxd2JxbjhlV3hDbnpkYmFiQnRrNmxwVXY4VCtuR1B3VUlwVXMx?=
 =?utf-8?B?dHVheEdMbHkxY0xuekZ3aE9DbHkzemd1VXI0YnVLVmpCYXFSTm1YZnlvaTQr?=
 =?utf-8?B?b1N4SzJ2YVFEK3ZJNVk5N2lmR0RTdGkyQmIwcWNWVHFHYnlDT0VaMklsVUEx?=
 =?utf-8?B?dnVRSGFsTmNVRWFYeXBueVpZTG5iV2NTTVArRHVqamhqN1pkM3NBLzVpZHhq?=
 =?utf-8?B?N1FDUGJYUThLWFYwS1RaR2Q5b0pZWWZsNk0zRjZzV0w5blFCTm8xT3Y5bnVF?=
 =?utf-8?B?VjkrSis0VlYvVjVCR3pmSkZSajE3d0xLOXlZd1cwOElPY0MxTXhLTVBPU1JL?=
 =?utf-8?B?b2NkMW4rcjNyb1owelVQNFlieCsyZ0c0bnk1aFZ3Qi9BcnBJeXBNa0RlWEhk?=
 =?utf-8?B?RElmNHZGUkx0YlBkd24vMHE2MzN4eXBreDFFQlJXOUxRUi9WMUZQc2hLTklz?=
 =?utf-8?B?eHl2SDBmc1gvblpqNEdsNGpJOWJZempCRWxZc2R6dE5XY1Q0Y1hadnF0Yjdm?=
 =?utf-8?B?c1JOWllKcjNMSk1uaDJGcU9SWjRWbXh6alZNNnpXczFoNG9XQkJCc2hZNGFu?=
 =?utf-8?Q?ClwDS0cjTVXoJahqpESDoL5N5rGaQLWk?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SytMN2NwbGFvMkNSRkJRSmlCVEFWTlEyLzZVRlY2ZXlubUQ5RGhES3poOE9J?=
 =?utf-8?B?SmxRbGs0dUV3RVdqK2lLVmVERit2c1hTZUdqckNCaHFPYTlxdG4yUTgwT0ww?=
 =?utf-8?B?UHBQalJUYnlJUnl3VW9YN1VhM0ErSG5mb2tzblFLSnBTQjVybjgxbXE4S0JK?=
 =?utf-8?B?WUVzMjFnMy85UzJsek9SSmlJZFV0N0YweisxOHNtUUM4NUhMem5MaFhEbFZU?=
 =?utf-8?B?L01ZaXVTYllqa29CUFNYK2s2QlJRMWplNEM4TTlicXR5a3ZzYzM5L0d1QU10?=
 =?utf-8?B?K0RuSTFWUTJHR3RTNzNpS2YvYjhadVk0WmNsTk14Z1RvY2VYNUF4ZThWWGtR?=
 =?utf-8?B?M1M4Y1FlZ1dka3E5VVhqWndzN05CYWhiTDA3OXdsSlNteHRQQzByRU1tMGt0?=
 =?utf-8?B?UUxsSkxLNHcxQmx4RkY5ekl6L3FqbGRjOGppTG84U3lJT0JyMXdwU0J6WUlV?=
 =?utf-8?B?WmZZaTRUTnZjeTVaOFV2OTRScGQwVnpFai9tQzB5ZXhDM3FOOS9TbldtdExQ?=
 =?utf-8?B?VUhVZ3dzczl3OUJHNkNieUt4cCtUZnlDRlFGaWFXYXNoSDFkR1YrVWdhRlc0?=
 =?utf-8?B?cVhZYk5YRkptZkdTUEdsdXVIaHBtOVJ6MCt1S0htMDlYMmFDd2prY1c4RUZZ?=
 =?utf-8?B?SkIvRTZhTjlITGtaYTNWT3MwSU5wVWlXZmJmUGpyNHhPV3NNdXlWTW9BS3lw?=
 =?utf-8?B?eG43ZGlvYmhGMzlDV2xoWFp1UnRNeE9nRVJydGVORDFrOWN1SmNqWWgzZmZO?=
 =?utf-8?B?c2N1OGJ2M0s5cU5URlUyRlE0eG5kb0NIdHAwd3pnSmd6Y2VVcGNRYlNSaU9V?=
 =?utf-8?B?MDIydXFWWVlmUnU1eHRDV3ZDa21vTEN5czFiVWd4YzNqOFVvbG45dFRRT3RO?=
 =?utf-8?B?eXg1TFRuQ1IyR1p2ZFJ4WEZiU0pVREIzYnR6cGtHSlp3ZmlqSWgrVCtMUVp3?=
 =?utf-8?B?N0Z1WVVMem9ybHUxbGxWMndmZmFPd2wxanB2S0lsbzU2c0tqTGoxM0NJTXds?=
 =?utf-8?B?NndPY0pCRUhlODRjdXNueTdCeG9MN3Rkem5yOXBBd3pWVHRRWjFIZ280QnEx?=
 =?utf-8?B?aUMyUXFUVTcyQUZCNGlLdFo2WEdNWW5aNndhTDlkZzQzZ0d3VFVmS052YWtw?=
 =?utf-8?B?dGZFVy8yenNVc1YzWW84b2FrQmxSbUZRY0pkTDNZMVpnRlpOakMvSnlFenov?=
 =?utf-8?B?dERSUVN5Z0Q3U0FjSGc0QkIxL0wxTDFJMXRRUVFWdUxZTUZteTFLVWFrZ08x?=
 =?utf-8?B?Nll1Wkg5YWNmaE43eUNLNUlwZEZETU90Z1IyS2xrbUJrRkdoZXM5ZFk4am5t?=
 =?utf-8?B?a2NDYnBPVENyNDdHTnBOUVBuN052UnlodGVPa1ZJczVCUkxPd2htRFNUblJz?=
 =?utf-8?B?NHArRHI3N3BkSHdzT2luTWg0WGJPWEdEMFF2NTM1WHBnM1NaK081QmFNd2ov?=
 =?utf-8?B?UGVDYTRyYXdxTFRUV3ZLS0E3cEtwVU84Y0NJMlFHNXZidUtKYUhzMlV1RW93?=
 =?utf-8?B?VlFDeFJFclU0QzU1N0V4a01GdGxPQXRHT0tNSm8wR1ZLNTlvbCt6MmtGS3B0?=
 =?utf-8?B?UktnL2xsZ3VldzRiVFBkZ3BRSFVDSlUwRXl1citMVS93SXRqRzZXbVZPZTRu?=
 =?utf-8?B?Zkt5cnZBYi8vMloxbjNmL1NoWHFXNmpTL2FSOXFhWlZNT05EbHRQaUsyNnhj?=
 =?utf-8?B?U0hZaGhoQSsrSnZvV1NVdHNEZTZSY2ZKVFgwQUpPTE1Gb2QvVXdTbUtNYnBY?=
 =?utf-8?B?TnRUcjlydElMbVVJNHBjZCtTOTNud0hPRkZFc2sxcXp5OHVkV3hpc1UzaGVw?=
 =?utf-8?B?ZE1kdDBqNHMyZnJNQlY3WGI4NU9DWXZtbEtQV2FmOU1pbzRVN2F1T0ZqM1Bp?=
 =?utf-8?B?M0JFSGJOekVNMFNNOWNGaG9tSjg3NVl5am5hSnpWQ3k5ODFxQmxRbHNiT2Ri?=
 =?utf-8?B?c3Vwa3I0OXFHV2RPUlJrZXJ4YWE0VmFBL3MyUGFQaFFIcmUva2w1YWN4TEZ6?=
 =?utf-8?B?NUdFRnIraHNadEF3U1duTlI3Qzh5L2hPaGlSdmlwamZwMEp3eVBxLzFZcVUy?=
 =?utf-8?B?bmpkeWM1QzlSNnlvNnR4Q0pUbVhGL01JS3lGMUNDSnVhTGNuOERXazJ3THBj?=
 =?utf-8?B?Zk9iV1k2ZXBiVTI0U1lsV25XS2x0TFkvQ29MWC9oY3pBdGpnQmlhZXdEbzdS?=
 =?utf-8?B?dkE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a08ce6de-0eda-430e-bdb1-08de37f80011
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2025 14:25:42.7650
 (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: f0bfB2M4k3Sb21mgBkmb6xTbIgjaGtucg+sr98IeymXwLj7sViWVdJvk9iecxma8+40pKyovEE5rKLR7+qAX4hQCoq4DGZTPPnbfi5rQl2k=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6470

On 08/12/2025 9:05 am, Jan Beulich wrote:
> On 28.11.2025 21:19, Andrew Cooper wrote:
>> The rest of Xen has no buisness knowing this structure, and it is currently
>> included via xen/sched.h into most code.  Create a new private svm/vmcb.h.
>>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> ---
>>  xen/arch/x86/hvm/svm/asid.c             |   1 +
>>  xen/arch/x86/hvm/svm/emulate.c          |   1 +
>>  xen/arch/x86/hvm/svm/intr.c             |   1 +
>>  xen/arch/x86/hvm/svm/nestedsvm.c        |   1 +
>>  xen/arch/x86/hvm/svm/svm.c              |   1 +
>>  xen/arch/x86/hvm/svm/svmdebug.c         |   2 +
>>  xen/arch/x86/hvm/svm/vmcb.c             |   2 +
>>  xen/arch/x86/hvm/svm/vmcb.h             | 617 ++++++++++++++++++++++++
>>  xen/arch/x86/include/asm/hvm/svm/vmcb.h | 606 -----------------------
>>  9 files changed, 626 insertions(+), 606 deletions(-)
>>  create mode 100644 xen/arch/x86/hvm/svm/vmcb.h
> I was actually hoping for the file to be moved. I notice that a few things are
> left in the original file, and I wonder if they couldn't be moved elsewhere up
> front.

No, they can't be moved yet.  There's other cleanup on the list, and
more header dis-entangling needed first.

But I do agree the name is wrong and wants to go.

I intend to end up with svm-structs.h and svm.h only, dropping the subdir.

>> --- a/xen/arch/x86/hvm/svm/asid.c
>> +++ b/xen/arch/x86/hvm/svm/asid.c
>> @@ -9,6 +9,7 @@
>>  #include <asm/hvm/svm/svm.h>
>>  
>>  #include "svm.h"
>> +#include "vmcb.h"
> Instead of repeating this in every .c file, couldn't svm.h include the new file?
> Or are you foreseeing some of the .c files requiring svm.h to (later) not need
> this include anymore?

The other option is to merge all the current header files into one
private.h first, before moving this.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 14:40:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 14:40:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182987.1505776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTLMa-0003lI-Be; Wed, 10 Dec 2025 14:40:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182987.1505776; Wed, 10 Dec 2025 14:40:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTLMa-0003lB-85; Wed, 10 Dec 2025 14:40:20 +0000
Received: by outflank-mailman (input) for mailman id 1182987;
 Wed, 10 Dec 2025 14:40:18 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1vTLMY-0003l5-SM
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 14:40:18 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vTLMX-003GZa-0w;
 Wed, 10 Dec 2025 14:40:17 +0000
Received: from [2a01:cb15:80df:da00:d2b0:117d:791c:30c0] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vTLMX-008VeW-0g;
 Wed, 10 Dec 2025 14:40:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=PnBfQblPeOHXUj0Eaq8Uk+egKrZisOUmmYlmDocgmt4=; b=tD2b7qHFQ7oYwtOmSDDTwRGIJN
	/rQMpK0ZiRqh+bnYPefiOQA8+p/aTxWRs8CuWxJZfchlNXnPchYKpq6LxRDz1Sc4f1YJiG+n9K70B
	Q4gubZFsUAcDs+8afmyN4gg8w+cyN8XteQApChyebyJWx6/rAkhrgM1lc2rxrwjAULJM=;
Date: Wed, 10 Dec 2025 15:40:13 +0100
From: Anthony PERARD <anthony@xenproject.org>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: xen-devel@lists.xenproject.org, Victor Lira <victorm.lira@amd.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
Message-ID: <aTmGTWIO2ZKWuQeu@l14>
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-3-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20251209214728.278949-3-jason.andryuk@amd.com>

On Tue, Dec 09, 2025 at 04:47:28PM -0500, Jason Andryuk wrote:
> diff --git a/xen/Makefile b/xen/Makefile
> index e6cf287425..aeb5dcf2ee 100644
> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -469,10 +469,13 @@ all-symbols-$(CONFIG_FAST_SYMBOL_LOOKUP) += --sort-by-name
>  
>  include $(srctree)/arch/$(SRCARCH)/arch.mk
>  
> +XEN_FINAL_LDFLAGS-$(CONFIG_GC_SECTIONS) := --gc-sections

Is there a good reason to add this flags after the arch-specific
makefiles? If not, could you move that just before, and right after the
definition of "$(all-symbols)" as it's a variable that is used in the
same phase of the build. (With Jan's other feedback)

>  # define new variables to avoid the ones defined in Config.mk
>  export XEN_CFLAGS := $(CFLAGS)
>  export XEN_AFLAGS := $(AFLAGS)
>  export XEN_LDFLAGS := $(LDFLAGS)
> +export XEN_FINAL_LDFLAGS := $(LDFLAGS) $(XEN_FINAL_LDFLAGS-y)

"FINAL" isn't very descriptive. A completely wrong interpretation might
be that we should use the "final" variable instead of "XEN_LDFLAGS". How
about a name that describe where this set of flags is going to be used,
like "XEN_LDFLAGS_xen_syms" (which unfortunately doesn't exactly fit
with x86 xen.efi target), or maybe suffix it with "_target" or just
"_xen"? (In Linux build system, they use "LDFLAGS_vmlinux", but I don't
know what would be the equivalent of "vmlinux" in our build system.)

The prefix "XEN_" is used as namespace, with one reason described in the
comment.

Also, could you use $(XEN_LDFLAGS) instead of $(LDFLAGS) ?

Cheers,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 14:55:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 14:55:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1182996.1505785 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTLaj-0005Wo-HH; Wed, 10 Dec 2025 14:54:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1182996.1505785; Wed, 10 Dec 2025 14:54:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTLaj-0005Wh-E3; Wed, 10 Dec 2025 14:54:57 +0000
Received: by outflank-mailman (input) for mailman id 1182996;
 Wed, 10 Dec 2025 14:54:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1vTLah-0005Wb-RY
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 14:54:55 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vTLah-003GqO-0N;
 Wed, 10 Dec 2025 14:54:55 +0000
Received: from [2a01:cb15:80df:da00:d2b0:117d:791c:30c0] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vTLah-00A3mo-0H;
 Wed, 10 Dec 2025 14:54:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date;
	bh=72qyOyJ+3tFrLzMg1G91GD7fLoNYYn3oTMvzwY3PRc8=; b=EzQwJGjOBlX95izK2kNjTeYR20
	Z+U0hWBp04Hm9zZtMRxYUvyl+TQ0783LUgkts1gJrbZUi1tCqOt9rdYcneT3ZgSop7k2ICLkhmmvn
	Qjkcg/V0vi9Jije7uPW70rzLsEFkv0Mgi6aU/SevP4soTs5OmMwKMR2j0HB2g706H8EU=;
Date: Wed, 10 Dec 2025 15:54:52 +0100
From: Anthony PERARD <anthony@xenproject.org>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] tools/sd-notify.h: Include string.h too
Message-ID: <aTmJvMAkVXzmHw41@l14>
References: <20251205220012.1976435-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20251205220012.1976435-1-andrew.cooper3@citrix.com>

On Fri, Dec 05, 2025 at 10:00:12PM +0000, Andrew Cooper wrote:
> Alpine Linux, when using --enable-systemd to get the init files, fails with:
> 
>   tools/include/xen-sd-notify.h:69:3: error: call to undeclared library
>   function 'memcpy' with type 'void *(void *, const void *, unsigned long)';
>   ISO C99 and later do not support implicit function declarations
>   [-Wimplicit-function-declaration]
>      69 |   memcpy(socket_addr.sun.sun_path, socket_path, path_length);
>         |   ^
> 
> This will be down to using musl rather than glibc.  Include the appropriate
> header.
> 
> Fixes: 78510f3a1522 ("tools: Import stand-alone sd_notify() implementation from systemd")
> Reported-by: Marek Marczykowski-Grecki <marmarek@invisiblethingslab.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 15:01:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 15:01:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183006.1505796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTLgu-000784-5p; Wed, 10 Dec 2025 15:01:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183006.1505796; Wed, 10 Dec 2025 15:01:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTLgu-00077x-2B; Wed, 10 Dec 2025 15:01:20 +0000
Received: by outflank-mailman (input) for mailman id 1183006;
 Wed, 10 Dec 2025 15:01:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=11gW=6Q=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vTLgs-00077r-RR
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 15:01:18 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 112e07e6-d5d9-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 16:01:13 +0100 (CET)
Received: from BL1PR13CA0132.namprd13.prod.outlook.com (2603:10b6:208:2bb::17)
 by LV3PR12MB9402.namprd12.prod.outlook.com (2603:10b6:408:213::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.7; Wed, 10 Dec
 2025 15:01:09 +0000
Received: from BL02EPF0002992E.namprd02.prod.outlook.com
 (2603:10b6:208:2bb:cafe::cc) by BL1PR13CA0132.outlook.office365.com
 (2603:10b6:208:2bb::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.8 via Frontend Transport; Wed,
 10 Dec 2025 15:00:55 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0002992E.mail.protection.outlook.com (10.167.249.59) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Wed, 10 Dec 2025 15:01:09 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 10 Dec
 2025 09:01:09 -0600
Received: from [172.17.249.106] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 10 Dec 2025 07:01:06 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 112e07e6-d5d9-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vNcm3scEVGQcpEMuXKvxhVwFOz2MefadcV/LSZTNJJGQm4XXfWahzJaiHOczNyHk0xCV44ymDr7qiF1XqYdCY65mNOevjNCQcSmcGSQfKeszm5OrKzDdn8YBaUc7hH+KH0DYdH0G53SqMWfcXSpLk/kS2Jkri5sLjRRUBTWp6/Ldh9CttwWfEsf6LtnOFJTPfsl12rJqq0yBn1rPDzZFA0xbz+hiWabeItgrYLS/lGGfIb30jGZ2tDrzAbkOc20lyHd5xI4IAjh1viOWbFHiU/mPCNPkwzkZPblgGY4w0DiMy6WN8guDHeETalVlmEJV8jKEEgt/L3EJp5PURLTZpw==
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=8HdBSoDWVoCeGNZL9em0WXTbkxGGql0y7gGYJFwfo+s=;
 b=FUKBE2icICzbURkEDuHauFi+EoOVUmHVrDucMniVVHlTT6MzmGXGTgiCN3b6OHdmSeIceuf7saRCE+gh4YOuu5G31Gjsl3YiltPvMauSal8nmNw2RTP0usY1oZ143E1krh/6EIVXPSwiSHScKnh6hN3Eq+Be8B7zRljXGSPOnJcE9h/8d9ApLXYWd90tbLT9gpzeTMJHC0WgwFcpjs8YqyzjYulBInLYmPzuEiW7lkb87RL25HZRvuTYKivhHR3jNS8xXDyDR5hJsON8KFwLvVfGQewWwS4NeF/VteikqkBlXBe7TfF1HnnmF0/pt5z+I03pV0fhoGXqVOtXHn7ZKA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8HdBSoDWVoCeGNZL9em0WXTbkxGGql0y7gGYJFwfo+s=;
 b=WrvXqgsRf84V3LrJJIGKQYk3spn6C4nqihfgxHNVjIrZAuQHCOjHvdZtHvCm9kUGv0FgKtXlmhblEmAR5/FxTzOwny2xl2amAgPvfvQsfjx4zv/PXupeC8vCdANqsA9b0FmTpSN8AO9xkGHjeeif6Kd1+xJ86eH4aXYHdpAD3Hs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <6f375bb4-19bf-4a86-bbb1-9b26676a7a65@amd.com>
Date: Wed, 10 Dec 2025 10:01:05 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH] RFC: xen/x86: Enable --gc-sections
To: Jan Beulich <jbeulich@suse.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	"Grygorii Strashko" <grygorii_strashko@epam.com>,
	<xen-devel@lists.xenproject.org>, Andrew Cooper <andrew.cooper3@citrix.com>
References: <20251205222813.277164-1-jason.andryuk@amd.com>
 <8dce8443-5a97-42c4-b867-27b83415b3d1@citrix.com>
 <32f54604-706b-4377-b59a-b287ef1afb3a@suse.com>
 <049bb40b-13f6-4b5c-9105-aeac03680f86@amd.com>
 <2bf5c46b-0b95-46ef-9c25-849fcba0f170@suse.com>
Content-Language: en-US
In-Reply-To: <2bf5c46b-0b95-46ef-9c25-849fcba0f170@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992E:EE_|LV3PR12MB9402:EE_
X-MS-Office365-Filtering-Correlation-Id: ec770e28-751a-4a5e-deeb-08de37fcf3e4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dGl0eU8wYzVNVmFRWVBTL0tLcnQrSXBFdUVuQk96a0VHc3hhQTE2YVM5UkJ3?=
 =?utf-8?B?S2ZrZXNZMFhxRFBFTVhDWXpjNE4vV1lrT24zVmg4TUx3V2hTbnV6QXBwZnZE?=
 =?utf-8?B?bmY0cjFMUklEN1dLTFdwcWJCWWRhdUoyd0FCNTRmS1U3N3ZUQThPM2Q4b1Ax?=
 =?utf-8?B?d0dQSlVjcnMvVWsxd3Y0aWRYSUc0TTlVNzdUUEFqd2lEV0hKSnptSTFGVDNl?=
 =?utf-8?B?ZUxsYjUxemdzRVVObFk1UHl6dmFhdkZLQ05BMUloVUtaTUN4Zm52VWpKZkhH?=
 =?utf-8?B?M1RnNytsZGxMOGlJUWRDdzVuZWdVZnAzdHVwR3JRVWlUMlRrRlZEaTdzczVP?=
 =?utf-8?B?cnd1U0xuaDhqcnQwYkE0dW1LbEtEdXRMRjVQU2p6NURVRUkzS2NGcXZoSkJT?=
 =?utf-8?B?cGwwZ0JCdXF2SUg4VkExM2piWmNmRWhVaTA1QnppcW1YNmdHK1M4Z3E2ajJV?=
 =?utf-8?B?RUFaZi9BUVV6UXBlSVJCbGdydXFCRmVWZ3lTV0FKTEF3dktmTG1ueEY2Tm5i?=
 =?utf-8?B?blhxMWdtM0tWWHZIdzRncjQrRXdmRGZ5b0svdW9GRzNFdnZwRDN1b05jSkJS?=
 =?utf-8?B?Qy9INHBmclhpMzVZWmlsaXQ2MXZIRVBVVG1WWldwcENCZ3dPOUprYlgyOERX?=
 =?utf-8?B?TTNJbUhXQzh5VWg0bzgzRVZYZWFJMng0STJwc3piSmZnKzNvMDYxUWpaR0kw?=
 =?utf-8?B?Z3B4SU5CSUpWUll0TVdqd0tvbWlrNUZnVHJBVkc4cUJHeUFmdUhlNE9yeG43?=
 =?utf-8?B?cG1RdXFMb0RDUmcwb1luSm9ySFF6TEh5dmJXcXNRbzhLSzVNRzNFRWxtbmdU?=
 =?utf-8?B?cWRiOG05cklJU3NqU3UvdDFmY0IvUUdMYWE2dXluUEYyc2Y4VUJhZGpjVkF6?=
 =?utf-8?B?Q0xIWWxHdzJTb3l0c1hMU3JraWsyTG1vMDViQ1g0cXNoN3Q3Z2tZbHBNUnNq?=
 =?utf-8?B?UjVCaXhLaE9MK3gvSXdwb3VVV0szWFZ1RkNHRVF0T0pCSmJjaVAzN1VuOTBZ?=
 =?utf-8?B?NVpHVlZtRzRrcFRJRFQ2ZFh1Y0VLZFM4dGdQQWN2RUhmUWtXbHJqTllKbDdx?=
 =?utf-8?B?aXNxZFFWcHNFQ0hlK1JLb3dIc1pNVWs4R1VOcExPNytCNFdDeG90N25idTY2?=
 =?utf-8?B?OVVkL0QyNHFIaFcxaW9MR2JxVW55L3BVZGFNcGVKZldEVFJPa2MyWlJrY01o?=
 =?utf-8?B?Unh0dExmVnRRbktLdFQrVFVSSEcyWFRmSFZSbEtLN3dtMWdSZ2tYYk11RjFa?=
 =?utf-8?B?c0N3Z0g5NDAwUWVPR3YrMzVLbCtOQlVLMDRwb0JlMktEaU9odXg4Mi9LbG5q?=
 =?utf-8?B?dkNTdjNZQTZUU3NKZ0NjcHNxdFdyRjRjaXAyRExyeHlFdTl5RkhYdnR0dXJj?=
 =?utf-8?B?U0RqQVczNW9iWlRzcFVQbEF6ZnU4cVppeWxTaElZNGpRdFEwRmNNdzduMFVh?=
 =?utf-8?B?WmxZOXN4NUxEc2tTSmFhWFM4QlNBZkpNRFVzQXVCbmlLRi91bjUraG04anFw?=
 =?utf-8?B?aWZJMUplMkZTbC9vRndtN1RJQXVVK3NFUUh6UDE1T2hOaHlqZEFvMVhyN3Rq?=
 =?utf-8?B?L3l2UFRlakFURTV1bVFUVFk4cWR3WEJxZllOa3hoclYvQVBaV2tUaGozMmR5?=
 =?utf-8?B?bm9zNFprK0RVaEdCYXJ1T0FiMjFXejdJblBONndzRmZXOWN2TEd5dXdtUjRX?=
 =?utf-8?B?SFg5VDdpMStsenlmNlpXcWEzMGJNbVRsMytqRWN0NWVhZE1nN29LWmNwQWhK?=
 =?utf-8?B?aUZzNTRwY3BEeGNsNDFZZGFIU2JCRHhJKzBaTTRZbkV3dEtYUzh1d01jY1JV?=
 =?utf-8?B?UlV2dm1Bd2xuUVEwSkdCWVhhbTNoa2VxNDlZUS8yOVZHVVR4R2VJMWtTYjNF?=
 =?utf-8?B?OTlQOEFjaUxEWE82Qm9MUW5wMDdoZEVTdm9ZQ0pKalNVL0dCME5vTy9XSEh3?=
 =?utf-8?B?elJjenpDQjBmMnhkWWpXV0RmM21vcEdmeGMrRUJQQ3p5T2lTZmJQT1BPYWov?=
 =?utf-8?B?eG1Ya0Rlc201ZEFEWkdmNmVNby9DZzlpUWQvY0wwQndabWJpSGZGVmNBMXJ5?=
 =?utf-8?B?WXZGc1BtbEowdDdoOGhkaTFLZzh3T1NLR3RDVGd6K25KYXZTYzhjVHFEalM3?=
 =?utf-8?Q?ljAM=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2025 15:01:09.5898
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ec770e28-751a-4a5e-deeb-08de37fcf3e4
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9402

On 2025-12-10 02:09, Jan Beulich wrote:
> On 09.12.2025 22:55, Jason Andryuk wrote:
>> On 2025-12-08 03:46, Jan Beulich wrote:
>>> On 05.12.2025 23:40, Andrew Cooper wrote:
>>>> On 05/12/2025 10:28 pm, Jason Andryuk wrote:
>>>>> When linking to create xen-syms, add --gc-sections to garbage collect
>>>>> unused stuff.  Relies on CONFIG_CC_SPLIT_SECTIONS
>>>>>
>>>>> We need to add KEEP() to the linker script in assorted places to retain
>>>>> appropriate data - especially the arrays created therein.
>>>>>
>>>>> Something is off though.  In a test where memory_add() is unreachable,
>>>>> it is still included.  I'm not sure, but I am wondering if it's the
>>>>> alternatives somehow keeping a reference to it.
>>>>
>>>> Yes, .altinstructions contains relocations against the origin patch
>>>> site, which will cause it to appear to be referenced. The same will be
>>>> happening with a bunch of other sections.
>>>
>>> We will need to derive helper section names from base section ones. See
>>> e.g. HAVE_AS_SECTNAME_SUBST as introduced by "common: honor
>>> CONFIG_CC_SPLIT_SECTIONS also for assembly functions", controlling the
>>> use of the --sectname-subst asssembler option, to in turn be able to use
>>> %S in section names (available from gas 2.26 onwards).
>>
>> I tried to add your patch and change ALTERNATIVE to:
>> ".pushsection .altinstructions.%S, \"a\", @progbits\n"
>> but it fails to build.  One example:
>> ./include/xen/compiler.h:62:21: error: invalid 'asm': operand number
>> missing after %-letter
>>      62 | # define asm_inline asm __inline
>>         |                     ^~~
>> ./arch/x86/include/asm/pdx.h:13:5: note: in expansion of macro ‘asm_inline’
>>      13 |     asm_inline goto (                               \
>>         |     ^~~~~~~~~~
>> ./arch/x86/include/asm/pdx.h:22:5: note: in expansion of macro
>> ‘PDX_ASM_GOTO’
>>      22 |     PDX_ASM_GOTO(skip);
>>         |     ^~~~~~~~~~~~
>>
>> ".pushsection .altinstructions.%%S, \"a\", @progbits\n" ends up creating
>> section ".altinstructions.%S" which doesn't helpful.
>>
>> Is %S expected to work with inline asm, or only standalone?
> 
> Both, as long as --sectname-subst is passed to the assembler. My patch adds
> that option to AFLAGS only, whereas for inline assembly it would need adding
> to CFLAGS. Did you perhaps overlook that?

Yes, you are correct - I had not changed CFLAGS.  With that updated, the 
%%S form creates sections:
.altinstructions..text.set_domain_state_info

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 15:23:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 15:23:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183019.1505806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTM2N-0001VH-SZ; Wed, 10 Dec 2025 15:23:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183019.1505806; Wed, 10 Dec 2025 15:23:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTM2N-0001VA-Pd; Wed, 10 Dec 2025 15:23:31 +0000
Received: by outflank-mailman (input) for mailman id 1183019;
 Wed, 10 Dec 2025 15:23:30 +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
 <SRS0=NJGl=6Q=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vTM2M-0001V4-R6
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 15:23:30 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2dfdc0b5-d5dc-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 16:23:29 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-b735487129fso1059075966b.0
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 07:23:29 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7c2a3911e9sm338127566b.15.2025.12.10.07.23.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 07:23:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2dfdc0b5-d5dc-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765380208; x=1765985008; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=WFnTuPlzwda6kNJXQsEgscCHGwtZpBkjXAEzqVrHV6c=;
        b=YzjQZXXfSpgMZRfW6u+vEHJ+taoKE3VG/dUz93MgSgkZNhxJWuENVa5O2Ya9/9A09L
         BXhyc5yfx45o+qgfQEsFyWGWeyC3aW/TsAEDN5Y32MpMWFFWJdDlXaYGm9MicjQPvxZI
         bd2XFCZs2TcAWD1oXmg7qum93J53m0jHBOjiIi4Cxu3N3M9Y1EfqdfPrmYA025/pMHAE
         gH+92NeldQ/OQuuIo3O4dVVNljqVvu9+Kb2iI/2r9G+lR6vweKB4/KJxgMEBWAv46XjL
         poHUxLsMkK3MtM9RzJzVLx68198+QWayHzPH+gMLRE9wwolzg8yn/HZt+vVxjeH8AFkj
         mifg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765380208; x=1765985008;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=WFnTuPlzwda6kNJXQsEgscCHGwtZpBkjXAEzqVrHV6c=;
        b=EuyYC/WfdQOY7+Y0qHqIvCoL5QQkVE5CZnqoFiRbwym4D+AXBGQqzDMeZq2/ofkH0H
         mZU+4/ZRhcFoDznGzLOgIW4HrX8jzWFRktVD9dP7XVdG+CNSwQzG9I5WhqpKvTyH8QkO
         1HqPQpQKmrGsH5Jm5cmL5trTTC+WFoipDsvOZ3dfKuqgOpg6zerF8OwQVAOtw3lQfNOm
         W7Dn4giyzl+mg2Bvd5zNSGpQ/y+2ngTk+ydb6mlAfpEXc3LuOc32NlKFA4/4HOx3JchZ
         me+XIwjdEroCqti7EOLY4Cly/nEHleRCZIeEPW9W90H6wUcqbEWYCBSTkKY4PUaXBJGe
         Ekdw==
X-Forwarded-Encrypted: i=1; AJvYcCUqasFwiGJaWRxQTecOczrmg5vxf/z2Bsa9JAjqqKmIaCCe/fzaiOfXB6wioEORhMnYzMjBPEE8Hy4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxzQ0Gmm8AWVdGD/d68m7uMAWpSdx4kG4iVYLAJdbNISWgTYLfN
	TXemKZ413B101caRPS21lQgyJ07K0PEDxO55i103/qMo/LAMnfZmdO8t
X-Gm-Gg: ASbGncvPii0LOB9/58HpzZ0V0UznOydTclLe97NBmFCVWmOc8pSw7WhQpi4mn+sVgLw
	OulnWsrf6WMAun9XvGd2Qg7sBsv7yFGl4Flz5JpV8Th0e2kZjQk17GZ1/2s0wyvoIvcGTLlT+hH
	+SH/yqkQLJ4lCQOSdnCUBFfWbmXvEucvQbWl2QN2eIFb40Gux5W7Lz4FisjU1vt7+Hq3JdvPlac
	GgFUzMOk2NW2WT6zNX98V4zQiZkxdmrYGGkPZBuo20vB1P5FZCqBOs1ydwGb2lXnCYG+BDEBfZs
	qoFKsSKTT0zjifATa33k6z7RKqmLrhYMGq8aPhtxvVfYwsgB5QrSxwGuU/X6eB/N02deyoA9Wis
	FrSBdo1fkVe4MixfUO2rvE8ZHTcMakxYb+qnzwXiKodmdu2w4R8zgGo5tBTQsIaWGUzcicEMYqj
	uSLn9w+kh6+kqPgwomQtL/wZE2Kul2TYNOhEzKQGUDotuXkkxBe8uwxGG2Ca62
X-Google-Smtp-Source: AGHT+IFr/YwqdgpjKu+zR4l534dB24bbdUVreQgevIC4+D+FiQFZfghwSvDinMtbs3rd2taxAjZ7xw==
X-Received: by 2002:a17:907:1c25:b0:b73:2b08:ac70 with SMTP id a640c23a62f3a-b7ce84514demr287150966b.49.1765380208277;
        Wed, 10 Dec 2025 07:23:28 -0800 (PST)
Message-ID: <1a729d7b-0a80-49bb-a91f-c212bffb9bc2@gmail.com>
Date: Wed, 10 Dec 2025 16:23:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 18/19] xen/riscv: add support of page lookup by GFN
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <48a58cde3de6a459885465c6d29d00d046ae4a37.1763986955.git.oleksii.kurochko@gmail.com>
 <69dce344-4dee-4778-99c2-0621c4e17cfc@suse.com>
 <86a87823-8b15-4897-9a97-ade444e2830d@gmail.com>
 <5fd516ed-c6db-4e7f-beea-a87c89faa6c0@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <5fd516ed-c6db-4e7f-beea-a87c89faa6c0@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/9/25 4:49 PM, Jan Beulich wrote:
>>>> +static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
>>>> +                           p2m_type_t *t,
>>>> +                           unsigned int *page_order)
>>>> +{
>>>> +    unsigned int level = 0;
>>>> +    pte_t entry, *table;
>>>> +    int rc;
>>>> +    mfn_t mfn = INVALID_MFN;
>>>> +    P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
>>>> +
>>>> +    ASSERT(p2m_is_locked(p2m));
>>>> +
>>>> +    if ( t )
>>>> +        *t = p2m_invalid;
>>> The sole caller passes non-NULL right now. Are you having patches pending
>>> where NULL would be passed? Else, this being a static helper, I'd suggest
>>> to drop the check here (and the other one further down).
>> I don’t have any such call in pending patches. I saw that Arm has a case
>> where it is called with t = NULL (https://elixir.bootlin.com/xen/v4.21.0/source/xen/arch/arm/mem_access.c#L64),
>> so I decided to keep the check.
>>
>> What you wrote makes sense to me, and given that the mem_access code is
>> Arm-specific, RISC-V will probably never have the same situation.
>> However, it still seems reasonable to keep this check for flexibility,
>> so that we don’t risk a NULL-pointer dereference in the future or end up
>> needing to reintroduce the check (or providing an unused variable for a type)
>> later. Does that make sense?
> To a degree. The other perspective is that the check is dead code right now,
> and dead code is often disliked (e.g. by Misra). Introducing the check when
> it becomes necessary is pretty simple.

Similar check might be needed for p2m_get_page_from_gfn(), because in the pending
patches I have a call where t = NULL:
unsigned long copy_to_guest_phys(struct domain *d, paddr_t gpa, void 
*buf, unsigned int len) { - return -EINVAL; + /* XXX needs to handle 
faults */ + paddr_t addr = gpa; + unsigned offset = PAGE_OFFSET(addr); + 
+ BUILD_BUG_ON((sizeof(addr)) < sizeof(vaddr_t)); + 
BUILD_BUG_ON((sizeof(addr)) < sizeof(paddr_t)); + + printk(XENLOG_INFO 
"copying d%d %#02lx-%#02lx to %#02lx-%#02lx\n", + d->domain_id, 
(unsigned long)buf, (unsigned long)buf+len, addr, + addr+len); + + while 
( len ) + { + void *p; + unsigned size = min(len, (unsigned)PAGE_SIZE - 
offset); + struct page_info *page; + + page = 
p2m_get_page_from_gfn(p2m_get_hostp2m(d) , gaddr_to_gfn(addr), NULL); + 
if ( page == NULL ) + return len; It now seems that I don’t actually 
need p2m_get_page_from_gfn(), as it is no longer used. I could drop it 
for now and reintroduce it later when it is truly needed by 
copy_to_guest_phys() or get_page_from_gfn(). Is it acceptable to keep 
p2m_get_page_from_gfn() as it is now, even without any current callers? 
Would it be considered dead code?

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Dec 10 15:58:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 15:58:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183037.1505831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTMZz-0005gF-GK; Wed, 10 Dec 2025 15:58:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183037.1505831; Wed, 10 Dec 2025 15:58:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTMZz-0005g8-Dc; Wed, 10 Dec 2025 15:58:15 +0000
Received: by outflank-mailman (input) for mailman id 1183037;
 Wed, 10 Dec 2025 15:58:14 +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
 <SRS0=r+Mb=6Q=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1vTMZy-0005g2-8N
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 15:58:14 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0748e9a9-d5e1-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 16:58:11 +0100 (CET)
Received: from CWLP123CA0234.GBRP123.PROD.OUTLOOK.COM (2603:10a6:400:19f::9)
 by PA4PR08MB6093.eurprd08.prod.outlook.com (2603:10a6:102:e8::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.8; Wed, 10 Dec
 2025 15:58:08 +0000
Received: from AM2PEPF0001C711.eurprd05.prod.outlook.com
 (2603:10a6:400:19f:cafe::97) by CWLP123CA0234.outlook.office365.com
 (2603:10a6:400:19f::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.8 via Frontend Transport; Wed,
 10 Dec 2025 15:58:08 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM2PEPF0001C711.mail.protection.outlook.com (10.167.16.181) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Wed, 10 Dec 2025 15:58:07 +0000
Received: from AS8PR08MB7265.eurprd08.prod.outlook.com (2603:10a6:20b:420::10)
 by DU5PR08MB10413.eurprd08.prod.outlook.com (2603:10a6:10:518::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.8; Wed, 10 Dec
 2025 15:57:05 +0000
Received: from AS8PR08MB7265.eurprd08.prod.outlook.com
 ([fe80::b001:5eea:7c3e:1a31]) by AS8PR08MB7265.eurprd08.prod.outlook.com
 ([fe80::b001:5eea:7c3e:1a31%6]) with mapi id 15.20.9412.005; Wed, 10 Dec 2025
 15:57:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0748e9a9-d5e1-11f0-b15b-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=k1k/V1/wfXWA/hn6tKdePLXkXKQpCQFPJEVqpCME7fZnhcsZwK5PNnvwF5rF2pEJ3fhciJzJp9vDvX2bGwKxjUzL4SD8yEMVgW3FhwDpNe2sWyH9p34+4LQV7Y8wa3Lc3eXAP6J12Z4LiB6qXZgaL+zF6YFPZF9ZXeGa7TcE/UxNhGcqd9AcnVMNz4MaNwEWa242FPTxAqd/Rk0YiGM/btaby1Qnyuz0X9lFz/wnlEw/2jY31pGAdRfg3QlT5WDtJREdNt9cOs17NlmtMDsG8QYgmRkTWCvDNtoKcG4ooapgP5sykZUmhcx87NofhHKrLI0lQSRxuzYx1AoWAFw1gg==
ARC-Message-Signature: i=2; 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=nd8KM9uqGWlultqrBoskUBUiANqLPkl4tKOsv50iwXY=;
 b=JCnOsOwAuqs7HC8y6IWDrEbnka9NiY0OeTEjag+vwNixfI9/o1hkqWtTFyNzEpuS4wQh2hP1E6Nkx8r6/Aq0+iR+ZNl39lpwc1Ecyz3mgxpNUB/GP6IJ0MQs824USOUlMSalSfQoQBptXn4r+tXXyCeAD3/TlSBPMO8A02gLGUoPZOlPn5GMX2rrkjsX/B8C8W9NjMbtr9ysrf7cRnH13kG2dSEC5HmvTSefQR5erAlOnDLbYk/0oCXyQrB2CvPHazady0oO3GUr+/lZeVStpwsI0df0P6kz4aWfW4dhcqZSEGMk0qovTTWExj1ZCJBpk69xchqtmPCK1qVbzhR0uA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;
 dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nd8KM9uqGWlultqrBoskUBUiANqLPkl4tKOsv50iwXY=;
 b=eN2jRMF13WwJanbAnlP0XIGfsgSGQQQiaxEDnIWTPImw8rcfW8NiArip7UcOyUZR72W3n1Yr+YLTVDBnW+rp69zAnDhRrjntqXavO8CrNlz5uNOz2qKiHmK45B4I1EkBGTrBiIyTkCZnko9hoVyGYaOkrwq23O9MT5QVn9wpu30=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=R85r/rODdknlabBUsx8awOy72GlnRBiPZQomGkgHtTk+r8JS65mmI8WUwGEfRnV3wNXTITttj3Yx22uG2MrKMv7M1460ZM57jVDYDB42yPXiYGMEdr7Xrdidg3AgIxOC+3KkgIomVEQ/hAoV+GuG6cpirG0A6atkMa6Bhui50SqedYZMQaGcsBqbho+4aRqPDCqpe1c+OoVf1xXH4zyH7PXG1inn3sJjCtWuDFEqTo4FD3KNMElmuUy0hNxCAY+w5aQZ6HorLWY/0ol++Kx8WcABZMTp/5zSc6GehOmqbEJjd6OWHUttaRZEnOL3oWAah/0tHpdC4b3RVYC8eYlSZQ==
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=nd8KM9uqGWlultqrBoskUBUiANqLPkl4tKOsv50iwXY=;
 b=N6GA4OyobRWIi+Zq8wUvUActS1etFkSyxTxJlCJ+XoQVx+qfdM7YfifunVPuh5ftPXZeNWVY8a229Ce7FuERuUJF54GwWtgtuIa3QB9Qg40YVQyU3b4dWDD5b1sNpzPQDduVSnsmVaGI5CzW3JDkvL5au4SGOmgPjf37yj6QHH8FHgL8s0aIV39/cx960cbqo6YL208K0LYZiiMEpeoA8bx78hkjS1vHPHQ4e5lmrKrWEvrmlbzL+qhats3Wc3WeSxyyYP8hC1cm9vh1e6nlyEgv47jkObT7sgbuxUg8BHkjTHL610ygs7ybZ0EydzJFl5wV29VejhSHs8bCwUvt4g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nd8KM9uqGWlultqrBoskUBUiANqLPkl4tKOsv50iwXY=;
 b=eN2jRMF13WwJanbAnlP0XIGfsgSGQQQiaxEDnIWTPImw8rcfW8NiArip7UcOyUZR72W3n1Yr+YLTVDBnW+rp69zAnDhRrjntqXavO8CrNlz5uNOz2qKiHmK45B4I1EkBGTrBiIyTkCZnko9hoVyGYaOkrwq23O9MT5QVn9wpu30=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] xen/arm: Set ThumbEE as not present in PFR0
Thread-Topic: [PATCH] xen/arm: Set ThumbEE as not present in PFR0
Thread-Index: AQHcaPf50ZeGSKmclk2/0HK7x9tq5LUbCS+A
Date: Wed, 10 Dec 2025 15:57:05 +0000
Message-ID: <E21ECF40-6A78-4847-A351-04C035B86406@arm.com>
References:
 <b9e9ec4a393b34b8872a87335db2bde707973c0c.1765276607.git.bertrand.marquis@arm.com>
In-Reply-To:
 <b9e9ec4a393b34b8872a87335db2bde707973c0c.1765276607.git.bertrand.marquis@arm.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS8PR08MB7265:EE_|DU5PR08MB10413:EE_|AM2PEPF0001C711:EE_|PA4PR08MB6093:EE_
X-MS-Office365-Filtering-Correlation-Id: b94af109-5433-4480-b486-08de3804e96c
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?LAbShm4Humv/uWhb2f2dwUuAHJWBH/rYeC4Ng+Al/kBbm2LIPdMWvaRjgp01?=
 =?us-ascii?Q?Qstu6ashvZQymykgDfAea9ytU1Orl8+/BNczu4jYKX12ul/UQ5+v0aVQ+L9N?=
 =?us-ascii?Q?9Oo0tg6oCk25uWUecwc60ORlUWWLYykV2yY3w0X0YdzsKHRQWW8vk6HK9elQ?=
 =?us-ascii?Q?zcufh10pMVkrdQ75StcDjPST+bBLvdnL+o8UwEro083tVrI3NP8Isq7Bovp+?=
 =?us-ascii?Q?H341xW4L5LZbUFOA/TZwtre/FdI7l7W/NFTkgn1gBdZrjnuuoiBRwtmY0EEl?=
 =?us-ascii?Q?VZxM+a1Bg7PJGxZTLa5a+1a2+e0FsEBuHZrgHTkbcrmjsMAmLiA6ZtImbR2V?=
 =?us-ascii?Q?CV12LRhhZNI3burNdZQrTOXTJqTcX5BBjFUAQowFoDoFJtbfY93zHCqad28Z?=
 =?us-ascii?Q?vYNjIdkqUtbr+RWDybcW+dDh9OuXjjiR/iNrlEzsWz8RwtGykO2FcaOxaytj?=
 =?us-ascii?Q?DXoMt/fCGNZyhLkrhQwkyiiZqJsCkS/0OI39gJwJKAYEusZDCOQHjtQXu44m?=
 =?us-ascii?Q?vuhQgkoKT8xvIIvcAV6R8P/UCEXeGPdxR7/ImkOU5tPGVqKQIB48dm1Y5/2G?=
 =?us-ascii?Q?MK166YcKSwee0sKdKdUxFRfGgRSEyD3zqjWnIWzkJR8ZR+10AjRQFPEOfyef?=
 =?us-ascii?Q?MpU8bfLiEUVmLD4RbvKcX+y+naFYwEC7+LeVhhdzZT9G+4evKGX+D5yLqiWW?=
 =?us-ascii?Q?jLdhe/8JviP8etvIgmjq3vckQ91TDwrlTryEmEtvRxFi4xe1CUDznHuUvKtM?=
 =?us-ascii?Q?ACnl56fFpJAiS0rTx2rNC5zZEf3Wt4SHK4uXZRs18+fy18vqX5lpb8eq1zO5?=
 =?us-ascii?Q?YPlGaNU3GQbyttWX16u27UQkOx38qem451wBO8wdOpBprX3IO87xk5NdTtqX?=
 =?us-ascii?Q?ru1BWrFxa4W1FhTeXpyzxeF5g89i4aoZzlDvzjPx6kVxMiaV+zHbf32HyqV8?=
 =?us-ascii?Q?DiZUG99+SjuVLLPGpfLNHtV7kTMUVKx59EoKiu7xHBHcVJXVE3cX/QsotljJ?=
 =?us-ascii?Q?aXFEH737LaB07EwnWm4kD7AX/JXQ3c88sXhuj3uJJiE2KqFcEroI3l04l3fn?=
 =?us-ascii?Q?becMOkRAunAuvnDDxVHZp/V/I9KGTcUazkpX22jyBHMWuiQB2462Qqy/jlc6?=
 =?us-ascii?Q?hpYDnb4jD+KSvn0fNXETdZN0b+WkdDLj+unQ38pe2to9RBW3NSD2sum7ufzN?=
 =?us-ascii?Q?CXQnWKr4HzhERgPBPrcWYTyD58nBCGyiryUqDrPS+4yPlxt7vQBx/lIOqRMI?=
 =?us-ascii?Q?ZX3tLrXSVcLFBaobgPweQRwYbsMaVpdIKeweA5SsR13irCHf5HphszUxGxf/?=
 =?us-ascii?Q?Q5CiWAm3Hicg9IgTUokoq4766jVeUkyb25gu1X3UhHaeA8T83++Lf9/0mAmT?=
 =?us-ascii?Q?4u4yo7fMIBZ71e+m/iPTSNh4PkGQlSckj/UrQYdVnLOwbdLMM/8nDSx8A/vO?=
 =?us-ascii?Q?BuFqwW82dEp4kU0HlIc3AGga5MW8HgrqTgArloNrVVhZnTo6Ws2/kFHPNiMs?=
 =?us-ascii?Q?GIz39t3Tt3A5+dVjLLiWy87I+ht+nq0ng57Y?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB7265.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <A166E219CF5D1E45A8B55F22946D43C6@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR08MB10413
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM2PEPF0001C711.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	35f1b61a-c097-449e-c14d-08de3804c413
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014|35042699022|14060799003;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?2MZY0/C1gtX/vNJFs1k3nUKCUIDcQgvzagwiQyYsYky+A6qW/k3TAGpPQjkI?=
 =?us-ascii?Q?73zugnlMQe++aXkRecGQFcy7MgRtRCHk06BQzwF1MLRtvei78IQrfA9aQD4g?=
 =?us-ascii?Q?B4qQYJLaTRCaNgG8N1B/DTFNVLm+n1Q/RPcxKshIggGt2taeRpHLNy24ptQk?=
 =?us-ascii?Q?DU6VMjX9ddEQ1AoGBYF+bS4ab3+2nWtjGreB5P3couQSMGAHig9cPks3KfH9?=
 =?us-ascii?Q?YGDjtQYOhrZ/7EPUCm/BO5p3ir8RyBBTACb6UUzKjioPXHBS3KG0Igy899Hp?=
 =?us-ascii?Q?N8q/1LrMGBofgrvH2GeFnmQRs58xZ8aAyTheazmXDSD/37wEj3bT0pAqKNqe?=
 =?us-ascii?Q?9CNoUjxmqLdTNNCAzVV2QHNTChZPSicWTSQcH0B40KIVkw/TvcdQZ0z6sDrR?=
 =?us-ascii?Q?At87SoPs816iTLWdfWqrbcu6vaNGSsOMKlIVREp+TX+Dm6cu9HiK59NRK4fW?=
 =?us-ascii?Q?HyfYY2C9n/fXMMnAPZ2IvN+dKMNOKZRUCBmC0vUCe5UtJvgWh4eT5+3cXZmp?=
 =?us-ascii?Q?tviwLtEVP2JcizateH7QplTcR+FgrwnSt6Mit8PaGpOBmpMf4mzioKGbbPJF?=
 =?us-ascii?Q?AiOzlAIaf/X7ILYeQSAiibRmUC/TtzQdV7zMKkjoupyWWb34zAYyXcOQLJPD?=
 =?us-ascii?Q?17Iq72b9MyRzSjdR+Pky/qvyiQ+D8+O26w6DEX95BSvdcYlWN94Xu1Y+Flev?=
 =?us-ascii?Q?R9DGxMeKlPdgmkiPNI9J/l5nH3OGymx6orEGzFF4AtiqKeNP2NZmXMz894xW?=
 =?us-ascii?Q?W0e+DggwjOeBrrH9Gvh9cp2FVn9kjvCZEwZyniULD8ZIUMP1nkuzXoCLpx+O?=
 =?us-ascii?Q?nZK4aQ5cxhohSX3xcQ1wibJpypWdcTw7k4y0VZHzkBInpVfGJH+wTxtfOmbY?=
 =?us-ascii?Q?2HSr4hRhlFX22HBe7cnIPA9YshDB7fTbZ601kMKTLBH7HKCaKKQB9nGKyeH2?=
 =?us-ascii?Q?sR6FUpBHxD02NVXzWtMJ71jZRXr8RSxjYmbbaxZABOnqq+Pwz+Fzg64zjg8D?=
 =?us-ascii?Q?UNMFaxmTYGOI/JaklxsdVdRcX9lr1eZVrlq6wJbGbhbd9qnMRKgzxMAMKo+S?=
 =?us-ascii?Q?KWNFKcmeJGk6htISv7aN18Fz1FmZTpMTXdU7oF5PZZT87IyskZPHjEIlr7LR?=
 =?us-ascii?Q?VAygddgHr8LTXUSZieQKaK4LWXr+iG1SAEBYxNtVmW8jTJdvcTXSsM6MjC4h?=
 =?us-ascii?Q?xo+gLhE9YdMBDW75I0IVSij9Z7gJ2pG0pjf7Ljrj24vwVjHKf6ExWs5hZ75k?=
 =?us-ascii?Q?3fyI+oVjsAZ9j1KV/kVHTdD2q7dj7Eu5LoCuOS17uFpmbIy5sxv5x9uI5CBD?=
 =?us-ascii?Q?K3ETtnAz3WsrfyTExLSIJUCPGCTERvR2qZFLDVXcfPZWk0Kopy8McpmTL4WF?=
 =?us-ascii?Q?ABCY8TELpF5tUG+9QVb2KkXGADsnPN/vR6pNL5uD7AYuvXkVOmlEAzxpecs2?=
 =?us-ascii?Q?IjU2v2J6UDNzAGLPD05J9CcMwjVKIgowtQgy9o+F5WUt1WPq+V/y2hOtgOvB?=
 =?us-ascii?Q?lSVR1/tO+tXMmJuLaEcuHeRwRrps5GdGY2SqJ4r4cl9aVuE0xy8MWS2SG/Ec?=
 =?us-ascii?Q?a0eehYqoMKTPCe7y3qc=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014)(35042699022)(14060799003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2025 15:58:07.9568
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b94af109-5433-4480-b486-08de3804e96c
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM2PEPF0001C711.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6093

Hi Bertrand,

> On 9 Dec 2025, at 10:37, Bertrand Marquis <Bertrand.Marquis@arm.com> wrot=
e:
>=20
> Force ThumbEE support to not available in the version of the PFR0
> register value we present to guest.
> Xen does not support ThumbEE and will trap all access to ThumbEE
> registers so do not report it being supported if the hardware supports
> it.
>=20
> Fixes: 5bbe1fe413f9 ("ARM: Drop ThumbEE support")
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> xen/arch/arm/cpufeature.c | 1 +
> 1 file changed, 1 insertion(+)
>=20
> diff --git a/xen/arch/arm/cpufeature.c b/xen/arch/arm/cpufeature.c
> index 1a80738571e3..4cde208e721a 100644
> --- a/xen/arch/arm/cpufeature.c
> +++ b/xen/arch/arm/cpufeature.c
> @@ -225,6 +225,7 @@ static int __init create_domain_cpuinfo(void)
> #ifdef CONFIG_ARM_64
>     domain_cpuinfo.pfr64.amu =3D 0;
> #endif
> +    domain_cpuinfo.pfr32.thumbee =3D 0;
>     domain_cpuinfo.pfr32.amu =3D 0;
>=20
>     /* Hide RAS support as Xen does not support it */
> --=20
> 2.51.2
>=20
>=20

This solves the issue I observed.

Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Tested-by: Luca Fancellu <luca.fancellu@arm.com>

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Wed Dec 10 16:33:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 16:33:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183059.1505842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTN7Q-0002mO-7V; Wed, 10 Dec 2025 16:32:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183059.1505842; Wed, 10 Dec 2025 16:32:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTN7Q-0002mH-4Z; Wed, 10 Dec 2025 16:32:48 +0000
Received: by outflank-mailman (input) for mailman id 1183059;
 Wed, 10 Dec 2025 16:32:47 +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
 <SRS0=iyob=6Q=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vTN7P-0002mB-5d
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 16:32:47 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id db2c25ba-d5e5-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 17:32:46 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB5566.namprd03.prod.outlook.com (2603:10b6:a03:280::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.15; Wed, 10 Dec
 2025 16:32:42 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Wed, 10 Dec 2025
 16:32:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: db2c25ba-d5e5-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xJtXwlBh5x0Go0aXs2A4kg1CqibOL5nuYzW2djEy4fUDCLHRFaDyApZ//S5qtCTy/v8bh620NSW1T+h+q9m3CcWVS9zSgAmTD/0itYG5bCoI3TMYO2prKL3UcZ1RmvBn5B4O/n7h2aPQGDjF3uuKEl4hTyxvFjSXpcd4wUdxXDiusOJhHsmeFIoKBBo/6zbe0iFlT/LbKf3JGRxGgP84KSSql+wRRzWzwTxHRiuZvrxcXP0YKQzxcGLU+OABmaSYSpuHclmU09DhFe6DRxuBOBMgP5nzH+nHkq47x6tB0DzOHTF9fAd6GJpxX2Bn9zK+YYQUtt9QLi4YnqXhUHygFg==
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=80APy/Q6P1tgxbZs/fBHK9IV82q93Hp9MtbGhEDy+p0=;
 b=UHz1lMOBj3l6I/ptN8LeyZ4yp651yMlfN7XPWXAbf4jWNANRs4THzEmrK6IKkB7xTRCfaUs7GV9mgftKAMjEwQWRO9yY4xGD90Q1wRQVjg87T8GwqoAXl/uKWO2f9xAsYaIdA5FNIW42K+930OvqaSZSmcmUOPnwIUrEUORNTXq0Qx0N5dH3Kfu1n6qH3TpuKHYVYUrmZ4fPMwu8vVJXpWhwHf85qP5m5f+vGF9jKxJYGSQWKKgWa5kjSPTiInlg2W4sui9DTbgXoHtebSdsn95OKXp4TRfnz2YJVmqeuiMIQ/4siWO7vRX/448NYnXuGNTh1MZRGuSZC4LqP8TZXA==
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=80APy/Q6P1tgxbZs/fBHK9IV82q93Hp9MtbGhEDy+p0=;
 b=hRxmVgsNtk+2Rc//k9w+n7emNalMKsRL7IONlUzdOI0uzO+1eUm+ZF231gsC5RgXMjCPOFZ94o82YjT/wIb9poQaya+i9JIlYeM+1O9zB46xJ+/4t5x/J8Nt4xg4e8rRQurvhhw/EjjugOahgfgo9pyqpKLK2UtbbKV1DxnvJck=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <a3651fde-77e1-4233-a1f0-e4a5b2cff3d6@citrix.com>
Date: Wed, 10 Dec 2025 16:32:36 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Victor Lira <victorm.lira@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH 1/2] xen: Centralize scheduler linker definition
To: Jan Beulich <jbeulich@suse.com>, Jason Andryuk <jason.andryuk@amd.com>
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-2-jason.andryuk@amd.com>
 <be7e41df-992a-408e-ad45-c29b4666cb9e@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <be7e41df-992a-408e-ad45-c29b4666cb9e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LNXP265CA0067.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:5d::31) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SJ0PR03MB5566:EE_
X-MS-Office365-Filtering-Correlation-Id: ba5065d5-e88f-4b3c-e5e0-08de3809bd7b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|366016|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?U3pMcmNyaTBjUHB4NTFzUTcybFZTajdhSGZFbnR6bzB0VTk1T25aY1JjMlZ0?=
 =?utf-8?B?cllLMis0eWthTDdKVEk0WEdFWFBIT0trMEQ1bkpHdTJ3SjN0amNwa1dWajk2?=
 =?utf-8?B?L2JhNkJCNjg4U3lWSFY4L1lZa1YxM3BxcmlBbDJnVCtFdGVkcXBocXlpZ0t1?=
 =?utf-8?B?RXlzTE1ncStjOGRueHF0djFramxPQUZuZk05OW5odDNOVzg0SjNKYTV4ZTJ3?=
 =?utf-8?B?Q3N2bU5QS2o2TTN2bGYreWtJSkg3OXUrNUEvZjJ6QmFEZFYyY2tQYmowaEV6?=
 =?utf-8?B?alRIT3FBaHJkeFpOZGtzZ2RNbUlpTEd0N2l2SjNnL29VY3NVZmVNM1Ezd0NG?=
 =?utf-8?B?bHhGQllaL3Rqb0VGbWl4dFhIUU9QZlh1S1BBZ2h6Y200WGxIUnRyaElBeFNp?=
 =?utf-8?B?TnVNSU1yU0lBN0tOb1hOSUlRUkRML2JMVTBlU1Rjai9PZDR2VGxuSUQ1MkZv?=
 =?utf-8?B?enJvK3VoazB6ZTlOMGRzbFhsclZYcTFJcXZUL3ZPd0pMMFRtNTZBQndZWVFm?=
 =?utf-8?B?ZDExSjJEZW85U3g1MlJhZU80UGUvdnZseWJ0ajVTMVRGQmsyZ1luQ2E4V1J2?=
 =?utf-8?B?T0xUT0lpV1l6aUZISTNWQ01WRGw5Q2VvVDltZXRVYWxrNndrUHpUbEJVR0Jp?=
 =?utf-8?B?YlFxZjZmQkhOd25BY0k0TWRXa1BwaEUwaUlWeStiL1RUQWlqSUV0b2RnT21O?=
 =?utf-8?B?b05Dbm9CT3ptSVluRGlta0xTbHVaeC9ZODFpN013S3FBQWRoNVVvV0lSSHJJ?=
 =?utf-8?B?c2lZbjk0KzhydUx6OTBIQlpodURqbWhwN0JRWUIrd2xtTkx5K1Nwelc0bGpH?=
 =?utf-8?B?QkF2K0ZvR1YzZEZUVVFUUmw5NHY0eTJsTjBrTUxqRWZDeEFvSzhJZE5nUFJi?=
 =?utf-8?B?T1hxV1dwVytnYkQrQ1dBLzN0cG0xT0Q4OTFCTmRSYkkzTkFESWRxc05lMGZa?=
 =?utf-8?B?MmV6RFIvVUFiOTM5UWFHSVRIdW9FTENqdTFSNFlpSVlPR0lmT25tY1VPQ1Vq?=
 =?utf-8?B?ZGd5NVZzSTN4SUszQm0vc1E0bkpvR0ttcXZzTFo3YUx6cGhtVFpYeUhteXZq?=
 =?utf-8?B?aDdmS2lZbUZDOWtMYXlWOVN5ZUdWSnBQOEJ0TWpqTDlCZVFaaG5OQ3lGNG9y?=
 =?utf-8?B?T2JZQjVYWlhMTGx0ejcwcTRCS05JUmxBaURkSUJPb1VpS3RyQTRKa2E0bzJ0?=
 =?utf-8?B?a1hrVlVrRENTcytnUitpMVc2S2ZrZGtPWk03YU1YMjlsKzgrcDdLQ0laRUZo?=
 =?utf-8?B?RHlHbEpOZThaQUF3bldjdzJGTG9qT1BMdGJXNEdSd1AyaGQweHlTQkxGekVP?=
 =?utf-8?B?bkNzK3MyRkhjVUVNbmN0emoza1N4ek9kUjVVUGdWQk5MUDdJZm40eWR1Tkdp?=
 =?utf-8?B?eTBLc3Z5cVduWWp6WU8rVzNoRjNtK0dBTEtJc2pBRU9qQWJvYjVXZUdGQzRh?=
 =?utf-8?B?bk0vUHJQSnZ4bVZuc2d4SzVxTTBUSlJVU1BQRzAvL0xCem1yMUw3VDlXbmZJ?=
 =?utf-8?B?NnVQN2lHTndJSTZxeG5XNVpLS0JmWVpMazB1TG9WcExFWno1NjZIT1NDVHlG?=
 =?utf-8?B?bW11cGhxeVJJUThjNWovaWM5Tm5DOWJXakxGbEtwN2VXbDZoRjNWVmJlSWVo?=
 =?utf-8?B?bEhiSkZXZVQvMFhrMHo1MStVWTNWdGMzYjBUb09NR3BzRWFQSDJNbG5uSEtn?=
 =?utf-8?B?K3VCUk8wRitUdTZCUHZOZklKUDRaemN4SnVBTVAreGpiZ2RwVHBRNnJ3dksx?=
 =?utf-8?B?TGFhaXRaV2dqNytxSnBQRGthL2Jjb2E0R0t5cUIwUVlmVHBNOGdYcCtTU1dQ?=
 =?utf-8?B?SytCRlREVVdCSFIwSGlGWWV4QWFzMy9veFlSVjdvR21yd1V0WHRKZit6bGNC?=
 =?utf-8?B?RTJpSTJWdEdsTkkxeS9ZOGc3bjk3STBYUDRRMmpvaGZ6TXdEV0UxZUJtcXVi?=
 =?utf-8?Q?o1qB3EJ0gmoypj+Iieaarhlv0IhDtfIz?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WnNMSDZtMTgzb0huTjZUVEEzU0hvaDV5OEZna3BuUU1aQmN1djNNalpWQm5W?=
 =?utf-8?B?emFwNHRKUjBCcnpPYUJ3Nm8rWEFBNHlaMnBPM1BLUTNXcHFKTktUWElBNEkv?=
 =?utf-8?B?RmR0TXNTVzlReXFCK2YveWNXQ0h0OGpDcE02Zjk2S2l3dFZzaE9JQ0N1ODZ3?=
 =?utf-8?B?NGJEQmMyMXVIczFWREcza1BRVHQ4a0V5NjhRWVpURXVueGp0Sy9FT3VZdTM1?=
 =?utf-8?B?M1RZWjJ3LzhNb21DTkpwUnZiVU93VEFjZjJRMTljRlRWNmxaRzEwNW9SVmNp?=
 =?utf-8?B?azFtOTQ5S2orSUU1NmtiQUxnbkZRTjlGRGF3L2JoMlFrSmxFSyt5VEdyOVVY?=
 =?utf-8?B?SmZHWFV6TGRQQWhhd3NtS2xaaGhJVlFzV1pWU05hY09ZZjRYRmZES0daMTQ1?=
 =?utf-8?B?bFQzbWtrRU5PZ0ZkdmNVWlEzelFZbXl5c1pyV1ZpcWpRYk5aMEVZUnFjazI3?=
 =?utf-8?B?MEh6U1M4TjN1MGFnQlBTd0lNbW1vU1pZandkcDQ2NnRYMGplaHpoa1ZFMFRW?=
 =?utf-8?B?eHB6ZUVYREpBa01GdVRoTEhUK05JNVZ4S0M5Y1BjU1BYb2FKRmxWWEljS2U0?=
 =?utf-8?B?QVd4aTRiV0Zna1RLZlFvNno0VWl4UXdwblBpMDVjRXhJTDIyd0dSSUxma0hH?=
 =?utf-8?B?Vmk1Q2VEY1AxMDUrS0x0Vk4wbnpMUDQrdWorUFlzOXVacWlKcUJxWVhlMUtE?=
 =?utf-8?B?RExGTW41VE9MN0NnODR6WFppYlJ0T3dsYlhWMFVrYlRvNjJTM1ZqYUM0S3dZ?=
 =?utf-8?B?ZG85RHJJODl3RTlHSndOaEVzdVBJbFpGUGwrN2wzWWM1QzJ4S3RUQ1hTaytL?=
 =?utf-8?B?L2Z1Q1pzb0ZFaTBLd0xZMC90RFU4T2lvNStCNmdBbDFjNUpwaUdzZFg0N1ls?=
 =?utf-8?B?U1NicUNiaHRiaE9pTG02UlhnSWlob3BXZmRIT3VUTmhWV1dSd1VjeVBkMVVi?=
 =?utf-8?B?YmZHNGU0Q0VramxKZWJlU1gzTko1TC9INmozN2E3d1Q4L3YwTWh3NklVOW1O?=
 =?utf-8?B?VC9BdWlPMWJHTTRXUndrUENrdjUzdGlKZWNoYWFJUlcveGRtaXNYcmlzTktC?=
 =?utf-8?B?N2lIMXM3THg4aWxOajE5YTFteDNyZXdOTGE1c2VSUDNHNTRvczJIZ3Exbk1H?=
 =?utf-8?B?ZlFVbVU5M241ZjdibHk2bnZ1YVh1SndMTXNXRTJ6a3RFZnd5NXdyZVFOc3NO?=
 =?utf-8?B?TXJZQzJvUmNoU0ZYRHNkY1ljMGZVS2o4dWtCeURTVkJNOWhwWm1PdUJtUU1T?=
 =?utf-8?B?N0lwOHg3SzR5TnZnYjd5bitwckxyK2pXRG9lWG9mWXlvRlJHSHJhWUNNN1R6?=
 =?utf-8?B?eG5CTEgvc3VSYm0rekhlZWVyQVMxbkN2bk9Ib0hHdHBtOWdrTUoxaDlPZWht?=
 =?utf-8?B?NzhQb3ljeFYrbHpMWlBFdXoyTjREOWdzOGpOd1RPRG1CVGRMdGZVVlU5ODdF?=
 =?utf-8?B?UkZINHN2UlF6UVM2dGFvZ2ZQNWpHc3YwMTNvNXlvbDdoSWhhckIzeGJtYk5m?=
 =?utf-8?B?dXQwelEvSHNKeVYvbzhKNDJpZG5ENFhMMEhNc2c1RzhGanFmaVBWaEJyZDZG?=
 =?utf-8?B?VjdXRGU4dExoMTNyVXlMUTM5UklpelNiL2hxb3FTYTdKbEpiS1llN3lva2gv?=
 =?utf-8?B?eUJ1ZENRVm9zN25KSWNuSXBiVnRSQjdIeENjMTVIZHhmenFkM29nMEFWRStW?=
 =?utf-8?B?YXRSWXlad2s0V2pydEpmbXNIZ0wwVmRaRkw0bldhdlJQaUFnYzA4emZDa2ZE?=
 =?utf-8?B?MmxrZlJoZFMyeG4vQmM4S2FNeStBcGplWWNTTlZ0YVQ5RmZDbDJEcHZJa3l0?=
 =?utf-8?B?cW45Y01YMzl5ekhtZGJBM0M5WlZqUlp3MEZuNWw2clEwVDlPb25oS1lUL2t2?=
 =?utf-8?B?ck84ME5zNUplcEpqQmJhUW9KV2xpelpFNGdnV2pMSlNGSy9pUWFHSkxuWGRj?=
 =?utf-8?B?d2I3TzhYTHVucE4vNXBUQVZDVGFPNmlaak9nSGphdFBoVFpjTVhtS2pGM3Jt?=
 =?utf-8?B?NFVhNEx1R3g4eXdjZXpHRlF1SUtLbUtDZnRQOHNlUDZqRmx2dHZuNmdqcUVK?=
 =?utf-8?B?eWRVSnk5dktXZzl3L0ZXUVdsWHZFRmtDTjdlU1h2OWlIR1dSL3R4Y3FsS0RV?=
 =?utf-8?B?RHg5anh6VjlGYWdTU0tBMkZhMDZRanl4T1ZCaFBwVncvTnY4M3hWb3hwOFli?=
 =?utf-8?B?a2c9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ba5065d5-e88f-4b3c-e5e0-08de3809bd7b
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2025 16:32:41.9733
 (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: jPBWCCFjL2ysZNM4tfgYc6jGd7jKsH43Yx0lg/rXeo2Z2gzfigMCgLXFMORbTTyV/PWSh1MxmhST+IRpGWGFLlPi9PBbyq8kIVBelffFfzE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5566

On 10/12/2025 8:08 am, Jan Beulich wrote:
> On 09.12.2025 22:47, Jason Andryuk wrote:
>> --- a/xen/include/xen/xen.lds.h
>> +++ b/xen/include/xen/xen.lds.h
>> @@ -173,6 +173,12 @@
>>         _edevice = .;        \
>>    } :text
>>  
>> +#define SCHEDULER_ARRAY              \
>> +       . = ALIGN(8);                 \
> While indeed it was 8 in all original locations, I question that for Arm32
> (and a possible future RV32, for example); imo it wants to be ...
>
>> +       __start_schedulers_array = .; \
>> +       *(.data.schedulers)           \
>> +       __end_schedulers_array = .;
>> +
>>  #ifdef CONFIG_HYPFS
>>  #define HYPFS_PARAM              \
>>         . = ALIGN(POINTER_ALIGN); \
> ... exactly like this. Preferably with that change (happy to carry out while
> committing, alongside a respective addition to the description, so long as
> there's agreement):
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

I thought the same.  struct scheduler is entirely pointers, and one
unsigned int.

I'm pretty sure that this "array" predates the introduction of
POINTER_ALIGN.

So yes, with it converted to POINTER_ALIGN, Reviewed-by: Andrew Cooper
<andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 16:49:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 16:49:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183069.1505851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTNNc-0004aa-H1; Wed, 10 Dec 2025 16:49:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183069.1505851; Wed, 10 Dec 2025 16:49:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTNNc-0004aT-EC; Wed, 10 Dec 2025 16:49:32 +0000
Received: by outflank-mailman (input) for mailman id 1183069;
 Wed, 10 Dec 2025 16:49:30 +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
 <SRS0=11gW=6Q=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vTNNa-0004aN-JG
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 16:49:30 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 303db9a9-d5e8-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 17:49:27 +0100 (CET)
Received: from CH0PR03CA0400.namprd03.prod.outlook.com (2603:10b6:610:11b::20)
 by CH2PR12MB9458.namprd12.prod.outlook.com (2603:10b6:610:280::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.8; Wed, 10 Dec
 2025 16:49:20 +0000
Received: from DS3PEPF000099DE.namprd04.prod.outlook.com
 (2603:10b6:610:11b:cafe::a8) by CH0PR03CA0400.outlook.office365.com
 (2603:10b6:610:11b::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.15 via Frontend Transport; Wed,
 10 Dec 2025 16:49:22 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 DS3PEPF000099DE.mail.protection.outlook.com (10.167.17.200) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Wed, 10 Dec 2025 16:49:20 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 10 Dec
 2025 10:49:20 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 10 Dec
 2025 08:49:20 -0800
Received: from [172.17.249.106] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 10 Dec 2025 08:49:18 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 303db9a9-d5e8-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RstK2kT4OmMipvxKkCa/spFJT/HuVHpEpt2wnNqKDj3oXoKH6NYefuZFjYPAFmkrdbsFfPB6igA23ecb3NFHlAfhwdi9W6yiodpNx092WZYDGEBPhh63QGgG+zP3ia6/mQZyJbHat4PUSmCOk7us33OF1zRCyuffDIYD6b+QgaafScCxiFSa3yYu+7qF6MRb6vMFFAYmMiG6lbyiD+fs7FVmGe/VZpr5c0ixp/0wDvweLHldCLc4eWrQ/Q2sfB0ILUycKi/ccWpAgWOVZFtsZ3VzyPNtXl6QtzYSvKSQ/2UfkVWSQCEQNUnS5nMCjWtpm0tJR4/MsgB6uhq93zw2jA==
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=dE1wPnvndGFxY46NPEZk1yugpaOagy3WdNTA+mwjpmM=;
 b=TjhemlgXm2rPJR1DOJbUc/EJFFPN8A5jk31jMq6Rnt45mewIL+1XiIvro+OH+6vLW0+niwo8tIuVAjtNHOEjoy357D30tvfAhbdroddpO8GiFg4EsC1t/AQDRTfy/7VoPhD2lwcxup0A1NPICppcuOfvCg8XQhvljuLJz7V48DOYiMU/JQPO2a320WPf9vxZeO0QDpz1JtZOqQyoeDfMzkwFKYHoZL7uKVsZlfT2UwfiSvAs53sVTzQfVYW4FsRys3zLm3us2oUIlqM5pUnb/zBrWeZe16gtIByPBHCg5lcyhdxWFH6FMTsOqN72zeQUX3TU2XvAkiAoMQfIqfaOvg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dE1wPnvndGFxY46NPEZk1yugpaOagy3WdNTA+mwjpmM=;
 b=22HxR7mUtmwmnpCwEcWFCViz81kxKFdYaSYxj9rhW8cK3UD/TNQanMvMemen9phYKgNFqu8uID85egPV2Yyibm21/HNqFnfVxcjzt8vir0L2VMKhsUWDw5IL/tA10qo8Z4xXzYfYhvbR8LWHaa6ziI/gq4GneJtUmzIOP7qIaN4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <bac80e40-bcd8-497b-bb33-8bde16b9972d@amd.com>
Date: Wed, 10 Dec 2025 11:49:14 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen: Centralize scheduler linker definition
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>
CC: Victor Lira <victorm.lira@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Anthony PERARD
	<anthony.perard@vates.tech>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, "Oleksii
 Kurochko" <oleksii.kurochko@gmail.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>, <xen-devel@lists.xenproject.org>
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-2-jason.andryuk@amd.com>
 <be7e41df-992a-408e-ad45-c29b4666cb9e@suse.com>
 <a3651fde-77e1-4233-a1f0-e4a5b2cff3d6@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <a3651fde-77e1-4233-a1f0-e4a5b2cff3d6@citrix.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF000099DE:EE_|CH2PR12MB9458:EE_
X-MS-Office365-Filtering-Correlation-Id: 3e1ec99d-2b9a-4044-df01-08de380c10eb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|7416014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Rno0SWxtMU4vMDZJMUYvTGQwVUlNTFFtL0wwK3BjKzhJZmhpaWpsaFBCMVE3?=
 =?utf-8?B?TEtmb3J0Z0ZmVTlFd3Nob2ZHZWpwQzI1Z2VUTmw1Z0lLamwyYnR6WEFXc2Jm?=
 =?utf-8?B?YVo1cThyeDMzb0hhL2tybFl3VXlBaW5KRC9nRkNVRldFbXNyclRiVzFMOTd6?=
 =?utf-8?B?Y1IzQVYyaUpEUHIzNjdWclU5c1M2QlVyeWtpWGJTcnFja1BsYkFPZllkcVJj?=
 =?utf-8?B?UGlJY242TEQwVlJMQ0dUZXdMVEZwdDhKbzBrMk9rd2tWUU9yUCtTUXM5czd4?=
 =?utf-8?B?Si95MlVlNWdLcmdSWFlDNTlLSU00Yi9LWTlMSUNLQkJTRGFwdUh5ZkwwNGp0?=
 =?utf-8?B?c1NPdUNwRmtSbjdNbmFGQnVWekY2dmJXZEdNUmt2V0xDZ2Joai9iZmZKZkRw?=
 =?utf-8?B?WWpoSUlMS2xocnhJTVVDT1E3bnNpeFhuV0IrWjRJR21SeUI4dDZ6YVZ5anRL?=
 =?utf-8?B?dmVoUlBqM1NWQUdqbUNEMDRZLzVZK3l5dGRhNjc1SmhwbnVSR3B4YWkyR0ZN?=
 =?utf-8?B?ZXBwZlJLUXdkdkFoaXlBZ0hNYUhScUVUT3AzYlA2TkVNUElQN21CdVVIWkVj?=
 =?utf-8?B?WVRlT0o0MU1TUWxTOStXczVGZis3MjY2bGdiYnIxdzFFU0xSVjM2WmFRTTU1?=
 =?utf-8?B?RXhwaHJHS3k3a0ptMFd2OXIzT0NwcUc5c01rcjRxdG1mNjE2OW03clpQaU9j?=
 =?utf-8?B?TVkxTEwyYmdQSTFUVWJlVjdvL2VjbllSb2l2c1B4eTBJRzJGbDRkYTFzZG1y?=
 =?utf-8?B?eUVmZEFKRHhyU2tZNzRGTnFxU3QwQnBuVDVOa2RtWUVLWTlEanlldDR6YmQ0?=
 =?utf-8?B?Szh1UURIcGozRElXYXoxNTZtVHprNSthMHNaSGh4MFd0UlhHMThqOTZxYlhO?=
 =?utf-8?B?dWFDQktCTkRzWkNydDNLcW9FZCtxamt4LzlpMzdsbWVuL1VNd2ZTbzdMMStw?=
 =?utf-8?B?WkdkeWtLSTZEL1E2ZzZmRFI2WXZRWkIweEpVQ0ZOZVdmTVkwdDczUzVRaTJO?=
 =?utf-8?B?cnlFQ3JxejRTU3ErQkpHUWlHdk9zTW9tYXIzd1oxMEVXY3RhbXVpd3ZULzIw?=
 =?utf-8?B?b0hKdDdlSEFNV2Z3YWJSYWhzTmRlV0w1b0c5L08zc1F6OVYvZXNHVHVEcFU2?=
 =?utf-8?B?OVNxVy9Fb0dseDN2TXNSa1dabTR5UmpuR1BQdDFZcmZ1OGxVak9UT3BGNkhT?=
 =?utf-8?B?azE1Nm9KQXJ4K1QyNm8ycHYvVDBvVVJFZFUydXd6aDlCSmZmV3pmME9iZTFV?=
 =?utf-8?B?OFVyeVJJcUdtUWl1Vy9pQ0NrQWJzRmZBanY5UmFWUG5iOG1FRUM4ZHZxbmhV?=
 =?utf-8?B?VXAwQ2w2VGhBYjRkUVg4dXhoL0duTUl6YjBIeUhyaDhoc3lnRFJFNm4yWHpO?=
 =?utf-8?B?SHZkYXpIK3dHM0x4K3B2SzBVeUw0MTQvQTROVjhQZ05VeHNabXZWL1FFM1JW?=
 =?utf-8?B?U1RuWlhmVFdXR05zclJiMzF5MTY3aFVKb243ZUNPdld1aVBkRjFXamh3Vmdh?=
 =?utf-8?B?ZHhEbkM2ZzJXemVwY3A2NzZUb0JUNmxGNWJta3FuSW56UjhQQ0cxTktKWitv?=
 =?utf-8?B?YkxDSGVWYkc1dHUxUDFHOHdIQkY5L2pCbUNFVGNvY3ltOE1DOHdGYURkRVg5?=
 =?utf-8?B?V2IwNFBZenRRSk1lMnhqZ0R4WTB4ZHBoeFFWNEJlWFU3MG12emRRd2hHb01m?=
 =?utf-8?B?eXYycytRZzg2UUdLVjZxTlVCeVQ3YW93TFpUazZrYnpRbnRqeko3ZFFPUUZS?=
 =?utf-8?B?T2x2ckg4emJWU0xuRkpFQlZ2cmNxdnRJZ3dhaXNZZDBzVnRtaDhwdFFlNVZ2?=
 =?utf-8?B?VGhuVUQ2NUxGYXhsUXNVMHNFV0x6TllDdkZVcWF3MkJwLzdtRnBHeDFrL0FG?=
 =?utf-8?B?ZWpEK2I1WTJiL255WktIVWpMSGtiZ2ZEbCtXRm1PYkZtVmE3KzJ6R2lNeW5j?=
 =?utf-8?B?V1dzQmhDenhvaUp1bjYzZDMwTnIvT3JEMWF6OXNQN3VpYjRjaHFmaVZrSnMw?=
 =?utf-8?B?ZXQ1MjN1T2FVbThuRGFQa3FXK0QxWHM0b3llVE5Dd3FkK3NjV0pqd0NrQ0dP?=
 =?utf-8?B?US8waEVkMUdqb2YrOXQ0Kys3NzQ4QnNPaFh3b1JHSnhHcnJaRkZOV1hZalBL?=
 =?utf-8?Q?8Nr8=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(7416014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2025 16:49:20.7285
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e1ec99d-2b9a-4044-df01-08de380c10eb
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099DE.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB9458

On 2025-12-10 11:32, Andrew Cooper wrote:
> On 10/12/2025 8:08 am, Jan Beulich wrote:
>> On 09.12.2025 22:47, Jason Andryuk wrote:
>>> --- a/xen/include/xen/xen.lds.h
>>> +++ b/xen/include/xen/xen.lds.h
>>> @@ -173,6 +173,12 @@
>>>          _edevice = .;        \
>>>     } :text
>>>   
>>> +#define SCHEDULER_ARRAY              \
>>> +       . = ALIGN(8);                 \
>> While indeed it was 8 in all original locations, I question that for Arm32
>> (and a possible future RV32, for example); imo it wants to be ...
>>
>>> +       __start_schedulers_array = .; \
>>> +       *(.data.schedulers)           \
>>> +       __end_schedulers_array = .;
>>> +
>>>   #ifdef CONFIG_HYPFS
>>>   #define HYPFS_PARAM              \
>>>          . = ALIGN(POINTER_ALIGN); \
>> ... exactly like this. Preferably with that change (happy to carry out while
>> committing, alongside a respective addition to the description, so long as
>> there's agreement):
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> I thought the same.  struct scheduler is entirely pointers, and one
> unsigned int.
> 
> I'm pretty sure that this "array" predates the introduction of
> POINTER_ALIGN.
> 
> So yes, with it converted to POINTER_ALIGN, Reviewed-by: Andrew Cooper
> <andrew.cooper3@citrix.com>

Converting to POINTER_ALIGN works for me.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 16:55:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 16:55:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183079.1505861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTNTC-00066g-3M; Wed, 10 Dec 2025 16:55:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183079.1505861; Wed, 10 Dec 2025 16:55:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTNTC-00066Z-0p; Wed, 10 Dec 2025 16:55:18 +0000
Received: by outflank-mailman (input) for mailman id 1183079;
 Wed, 10 Dec 2025 16:55:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=iyob=6Q=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vTNTA-00066S-4Z
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 16:55:16 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fe9e4892-d5e8-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 17:55:14 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB6439.namprd03.prod.outlook.com (2603:10b6:a03:38d::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Wed, 10 Dec
 2025 16:55:08 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Wed, 10 Dec 2025
 16:55:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fe9e4892-d5e8-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TMJT93tjh6kxGaWoCQ2Bz6l4grSC5QWWrdL/I5krRjGlae2QXMafJtq3q/apGQfOpXQWfzD0zAWsvVoNm5LdFIFd+4g7s8rDXqaODb0RCS/B/FjrWRokjY/KJiuJv4Ec4AaqwBqpR2/cs7JJzAzaE3dZnXTIRQ54TeGbbs/xMq4YOFbJxfRkztqqzay1v4b3k5vdvTFV0UoHkvuA7L95lU795p9KWykCc341s1cLxsb28rkbdW2u7iQHDVNxm7GiueZT4xXT8CIoDJhr+gZgziPA7j61PCw07uImfGUeEEV+r9yor9iqQdWxzAH4tbuicODch31qLxIE2t2UO0WTew==
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=iqQtY9W6SglSmgHSsZ6M6LmLzBE6/OPcVrYp5Oli1MA=;
 b=R//KKTFvCoED8awZKXp3k1a5a+HquHy3RGZxnmke474FV0qYvQhQNrwbxFcDSIAEJlQFDsUgyWJ4FunYVh8ZadzT34iw7Fr7Rpyl7cnIqDd7rTVzQoBwlxnOcu8SIb7PnJr/1xIjfuQ5mLt5e5qNrCxPug0K6gzh7VKc46nSLG11tzFHZuB/HAwcjRIvNyJrnKsigImhmUEmtlohYq66hUHkaxy/AGcI6YDsfHvxa1Zs5U1erX723a4miGpF3Gv9j8MMKh8mUpw7ppmZ4XT1spqZP4Bmd8jpYdrTOnJMTKYKzdy9v3exb6gAeYaCPhFUnp5yG4woSM0EujykxJseUw==
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=iqQtY9W6SglSmgHSsZ6M6LmLzBE6/OPcVrYp5Oli1MA=;
 b=PM97IAAo93MqhEQKuX+ziVKz4mTHTFvH4tIwcYrDtBZ/RB5yWXvZ/DyAtacThJv8flHL+L/l1nrwPjO16OZ4iF+v2kgKlrbFQAHfeuE8lYkf71PlfdljPvkq0wNZSVBScvw9xv+Ud1y45kUtuotJXg5WjxWpabsU0hwg0n7hf6Y=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <ed620cd5-9630-4987-bd5c-9f69ae2c2609@citrix.com>
Date: Wed, 10 Dec 2025 16:55:03 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Victor Lira <victorm.lira@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
Subject: KEEP Re: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-3-jason.andryuk@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251209214728.278949-3-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0260.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:8a::32) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SJ0PR03MB6439:EE_
X-MS-Office365-Filtering-Correlation-Id: 7b62c92c-098a-4c4b-f97e-08de380cdff3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eHpHNWJYcFlyZHJTZHhtK3Y1cno5TDFjN0Nlck4rcDVYQ3RVSWYxak5uWEJi?=
 =?utf-8?B?Sm9mRng4QmpFZFlNOGxaaEpkU2VPSHlDNGhkZ0M0QWZNZlZ6R2ZiNWsrK2g1?=
 =?utf-8?B?TlVpeG4wcFl4UVdWYnFMY25lZ0FTZVZCa1g0ak1TcFh5SEhIaFhxMVJXYlBw?=
 =?utf-8?B?N3ZuVnc5OGVPUEE5MUtUVEdsQytSU2x6MXZkUFRFS2FESGs2T1FBUE5xQXJU?=
 =?utf-8?B?WTl1S0FHTzlENlFyR3BpTXd2QmVadkRLczQxOTFqRlBMK0lVNzNCUDRVQlRH?=
 =?utf-8?B?TGVPTmo4V2NKQVZ1cnM0UVFpT3lCTCt1Y0lKbGQ5MFBSbUl6QjVodnJiZGtM?=
 =?utf-8?B?V2VDVG5tMVVQNWRBSDZUYkV4a0h6KysrYnViRjNOcXRIUTcyN2ZkYjU0bEJi?=
 =?utf-8?B?L280TVp0WmNCR09PSFVJdHBITXZVQi9vS2R3SmdHRTF0SEVtSXd3T1pjald3?=
 =?utf-8?B?SlgxQ1NOaFJFeFZ4c2hCbTgyc3hvejZnVGZXcjJKSTFHSFhIY2oraGdEd0lu?=
 =?utf-8?B?L2NNZXg3ZUJRTCtwTVZCV3Qvb3E4VmJGQ1BrQ1I0dVFpMUpaVnNUZUFvSDd2?=
 =?utf-8?B?SjJzSDRyR2VYenZ4cUsxSFBMMWNRWVNaVXR5UUpnSTl2Vk1mZ21oQ2hnV2l5?=
 =?utf-8?B?bFRvSDVsOHhMWElQWUdDMDZCZmJCbVpNa3NydnF2NFNLbjFmUy9CM1drTjVK?=
 =?utf-8?B?L0o3UjYrSmwzQ3BHQWNKUUk1akI3VktJbitBSW9OTytrK2pFY3E1Y2tnZFl0?=
 =?utf-8?B?dXI2TXVkbkllc3RQcVI2K2FjUHBUMHVGekZDZktPdzk2Q3BHdTJpc1BjWG0x?=
 =?utf-8?B?L2ErMTF1bDE4b2hvQTJhcXJkSFc0WkhGUlZYM01KcTkxaDN0a3M5SUNsY0dV?=
 =?utf-8?B?ZlMvMEZvUXo3aVZaU2tsNmwwTWY4UVArSzBqbU1LZzJzSHRkay9FUWJaZFV5?=
 =?utf-8?B?T08vSEZvbHBBUVN1SFN1MEEzejV6d2hXZm80aEFmNExQc3RFUVo0ODRQc0Nu?=
 =?utf-8?B?QmVYZGNTRjJRQnhEZGwyOVRzS2FTbzRvQWk3UzlOWTNOUFdrbmVXYThHT2Zp?=
 =?utf-8?B?MEZFYis1ZjhKZE9iUFRhOW5jdHJXTUJ2cWdnbUdkNENJVnFGMzRpNFZqREw0?=
 =?utf-8?B?TFYwREZqZ0ZmNmhraE41MVdWVkVzMG4zb3BTRzNEd2poQjU2WDFRZ2lGTW5s?=
 =?utf-8?B?OFo0d1IxNExiSG5FMlBvb0E1WjgxNkY2RzR4cDFyQW5kTFgxK1hRNk15RUcz?=
 =?utf-8?B?YUxUaXRHMVM3eUJNSjVLUkFPQlV4dnRqakVwTVhsRWd2NnlTeEhQUFNQU1Ez?=
 =?utf-8?B?NnovamxDeFNZbjlrZXorOVB0enVOaDlabnBkR2NIOEY4TGtzSFNBY1ZhaWda?=
 =?utf-8?B?MnNBbFpCZlVKUWVJYjYzRDlLM1U3QTNXOUU4Wk95elZENFkxSHY2bWdLZjFk?=
 =?utf-8?B?NkxoRnJjUnJUWmQwb3BSeTEwYzZMNzMvbXpmc2NqelhWZWl1NnZ6MFIzcjlT?=
 =?utf-8?B?Yi83bVliN1MwaEhmQityNEx3V0RZZklWMzFvbGVZZkxtbWp4dXJ2SG5kQkJV?=
 =?utf-8?B?Q093cFg3NDlJZDdWem5oL2EyVVQvWFhQWTNPV25EZmZkcTdrb1gvUjJ4Ukpv?=
 =?utf-8?B?TXlvNU9QTXRLbEgzVWUzSGxHTlMzK21VRXpGTWx6VTExMmtCNFhwS2JsTFY5?=
 =?utf-8?B?TFZqcXZJN3NnVTFzZmVrVnM0TlBUUTErNnBZVGsraTBBaUdGZURnQ3YySHll?=
 =?utf-8?B?UGh3cW9XbUNWNGREZjUyTHBPMFk3NmV6Nm5aaXJkTm1abEU1a04xNm5PbjZq?=
 =?utf-8?B?TGh2K2RaT0w3UzZzWFk1bUFndDRtVU1aZi80eFNvdzdOV1UzYVc0aHZ3MkJ3?=
 =?utf-8?B?Yk50YjFXSVFpdU9HZ2FMMk5SYnlvUGc0eVR4Qm4yMVhrMXhqNVRsdE03T0ts?=
 =?utf-8?Q?vVjaqE0vwdc7+yY8o3b4uGRzCjV8JQrw?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UytyYmZCWi9ZSVdTQXZXN1oxSmFMMW9oWGs3emdHbVovUzA3N3ZaU0l4dW4r?=
 =?utf-8?B?dGJKcmQrNllEQkVmckVKa2hFY1hmWlVMOWpBb05xbjZPNW41cDZ5MERYRzBn?=
 =?utf-8?B?VTRobnlDallha0JySjRVaG1IZUtDYmwrVWVrYUhESWFoZExyWVY4SXFPS1BQ?=
 =?utf-8?B?aUlud05yemFBRS9WWXlXVkFubXJ2NU5EM1pkZUFqdzBDYjJHZG9UN0liY05q?=
 =?utf-8?B?cUlUeXZhWTFCWS9xVUtkbXgxL2ZYTng5aFdRMVp3Y3E2bjF2Y1VqRDFqd3Fn?=
 =?utf-8?B?U0pHQk1QM2pFWXQ3VkpjbGJGLzB6elI5WURobWZLUERmbVVqVVJzT2tWVS9p?=
 =?utf-8?B?V05aK01OcFg2Zlo2elFDYkx4aTY2T2JEZG9iY0NjTjNTR3g2RWV3bHJ1MGJB?=
 =?utf-8?B?QjNZYjZYVEo3T3AzanpaelhZbFQ5WkJVOGJ5NHJTRE01WmF5YUhLRVJ4bVBG?=
 =?utf-8?B?dHVsQXJvR3hKK0E1UXRsenI5TDB4NHlvTjRiOTJaRHR0NldJS1FNMlVoWFRB?=
 =?utf-8?B?b1NDSngwL3JKamRXRDJKUTVUZGk5TWE0ajdzOG9yKzVIK1BVbFF2MkxWR3JH?=
 =?utf-8?B?Y2FVOVk4cGNBMkNRLzRxZitHa05TaEJVSmZTby9maTBjT3R4Tmo4aVVLc3Y5?=
 =?utf-8?B?d05EVWVZd0NlRTdlZWRRNzlEWk4yQWpJbjU1QVZtZjhJSzlNN0RqcFp6TW1t?=
 =?utf-8?B?Q04xQkxOWWVuK3FuTnhXVXU3Si91MDFCVFc2YmUvOTF0Z0s4QUQraTBaTFFU?=
 =?utf-8?B?T0J6cG0rYy9Dbk5uWk9zQmZjRVU1ZkFiZWxndXRZWG82UmFtL3IxS1Y5WGFG?=
 =?utf-8?B?alBTVzV5Tk5DNDBVeHZWSXVQT1VENUJlWTlXRkZIUTdMallMemY4OXB4b2Vq?=
 =?utf-8?B?SUdsenV1Qm1sVnA0RlVWM2NNdHhRNC8vbGEzeGNxZWdUT056SDY5czhDSnQr?=
 =?utf-8?B?eFpRWXZsbVlFZkl3N2ZmYW5EbDl2OGhucTdWU2o2QnBaUHcyWjcxQTZJTk9U?=
 =?utf-8?B?QWRWUGFtTEFKSzBXbHp3Qk1vR2pzQ3hHdytyT2Y3YXgvb2xNNExndkE2VDR3?=
 =?utf-8?B?WVJJSWVNT2FWeW9Xbmk4RTNDRkkwb3lPenNINzZpcGQwUmhWQ3pzcW9jcWZN?=
 =?utf-8?B?c1o3aGVYUmw5cmRyR3lLbjBVaGJrRWkycUd5ajRkbUwzUjlvdFByWTFWVzZL?=
 =?utf-8?B?aXp0TUVXZWw0am45aVhGYlZjMHlyWHIxL2Rkd1k4Vjc4T2poZXdQOWRZSzY4?=
 =?utf-8?B?LzJhSm55Sk1JWUdKY3FGY0c0MUJtUk9MZlpOTm9oMjgzcHRzcy9JTElVU0ow?=
 =?utf-8?B?SkxRZVl2Qm16aHYxU2Y1T2lCS2xEZGsxZU4xK2JacDVJanQ5MysvUHYvS29T?=
 =?utf-8?B?L3JyN2lvN3AwZkZLY0xKeFB1bklBVFc0aFlHbzIyWXd1YkpGekhwUlNlS2x3?=
 =?utf-8?B?d0Z2VXBIUjZNdll0MGl1SjdWcGs0LzNuWjBPZ0ZkZkdieklVZUlEQkJrMjVS?=
 =?utf-8?B?d21MMUhzOGJCMVcxZDNnRWloZjg2eFdBRVE1NS9id3c4WjZ6UjZDRThIUGR5?=
 =?utf-8?B?cUxBa2I1bUFLOTNieHRnZHNhMVZEcklrL2toeW5tdjFSK3hNU0dDK0piaU9R?=
 =?utf-8?B?Mkk4MkNFSCt5dnZwZk1QOExsWXJqV2lWblF4MnBtZ2dSbnVyL3RUNDhqdTFp?=
 =?utf-8?B?NTNPQlJYVnlwY0g3MmRJTm83T3pQZVZnNStlbjQ3OG9uQjJGS0MyVGdTUlFn?=
 =?utf-8?B?bUh5ZzZ4enlxZkRYd085R3B0UmhuK1p1czlsdTJwdXFpOXZaR0xzRHU5S3d5?=
 =?utf-8?B?bGl5MFVkQnkwMzNiRFErOThvNW9xWVBVbDQ0QWhnSWU1dFZRQjdJcms3TWxF?=
 =?utf-8?B?R1B4V25IOVNQTmdDTFlveEtQNjVDVHdtY2NRbWRjQk5nRUlCZ29LNHRZbjBU?=
 =?utf-8?B?anVlQlppMy8rVXN1QmNXRDdhelhmZnJnNEI3Y2pNblBMZk1VWTBMaXgyTHlV?=
 =?utf-8?B?ZkNYTFBBaVQ4Zkl5RFg3ODI5TERIV1RPOVJSamJRQm0yeHRRSDQvZUQ0VndH?=
 =?utf-8?B?dWMreXZFZURMeS9vcXh2UnJKTVN3bnhuUEJYTmp4ZDZGVTB4a0YxZk4yVUZB?=
 =?utf-8?B?ek1lVXorTllNL1ZBS3hjM1prRW56ckNqbXd4MkNFbjFVVTBRaFN2dFF6Skdp?=
 =?utf-8?B?dUE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7b62c92c-098a-4c4b-f97e-08de380cdff3
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2025 16:55:08.1940
 (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: 1PBAmSqpJXJ3nUeS+GcqzVMmaE9EKeOUYSrJBCVEFbZKAHyUeJcF8hLnFwuOaw45RHOEfAhMmY3DVIaH8kgJaozsTyc9SZo1lC/4mhwNciA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6439

On 09/12/2025 9:47 pm, Jason Andryuk wrote:
>         . = ALIGN(4);
>         __alt_instructions = .;
> -       *(.altinstructions)
> +       KEEP(*(.altinstructions))
>         __alt_instructions_end = .;

Thinking about this, what we need is for there to be a reference tied to
the source location, referencing the replacement metadata and
replacement instructions.

Looking at https://maskray.me/blog/2021-02-28-linker-garbage-collection
might be able to do this with .reloc of type none.  In fact,
BFD_RELOC_NONE seems to have been invented for precisely this purpose.

This means that if and only if the source function gets included, so
does the metadata and replacement.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 16:57:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 16:57:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183093.1505872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTNVZ-0006or-J9; Wed, 10 Dec 2025 16:57:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183093.1505872; Wed, 10 Dec 2025 16:57:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTNVZ-0006ok-Fs; Wed, 10 Dec 2025 16:57:45 +0000
Received: by outflank-mailman (input) for mailman id 1183093;
 Wed, 10 Dec 2025 16:57:45 +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
 <SRS0=11gW=6Q=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vTNVZ-0006oe-1g
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 16:57:45 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 574dd5ee-d5e9-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 17:57:43 +0100 (CET)
Received: from BY5PR04CA0008.namprd04.prod.outlook.com (2603:10b6:a03:1d0::18)
 by LV2PR12MB5941.namprd12.prod.outlook.com (2603:10b6:408:172::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.9; Wed, 10 Dec
 2025 16:57:35 +0000
Received: from CO1PEPF000044F0.namprd05.prod.outlook.com
 (2603:10b6:a03:1d0:cafe::7c) by BY5PR04CA0008.outlook.office365.com
 (2603:10b6:a03:1d0::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.9 via Frontend Transport; Wed,
 10 Dec 2025 16:57:35 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CO1PEPF000044F0.mail.protection.outlook.com (10.167.241.70) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Wed, 10 Dec 2025 16:57:35 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Wed, 10 Dec
 2025 10:57:34 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 10 Dec
 2025 10:57:34 -0600
Received: from [172.17.249.106] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 10 Dec 2025 08:57:32 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 574dd5ee-d5e9-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dh9/FZtenJqrBrxs6BmfFLVUd9v3zOfpL9tH/Sa3bvvKk6UJ+lO35yKGkXhHnY6pSWVpDLm54Al2l27aaq3IORmN4p4572moF6Sbtik6dUv/p5xVf/95k/8PRs56mHgDm3dtP/hYZQnwlJH3g80Jr59rzzlTNi2ug4PEXtmUzCyiB2RNrhsOZYlreP/8tA+5xkWKkxaeAnUjQMYrUuo+a5f28u0G43+y+bk0bDFhoJF53c+mv6O2TRecSOpPG76qi56zrFt2Wyx3HZp9793MlHrDj1pikFdgn3G5LFMs2q4n97xcYYOHBbCpcC2p7ssJJb/SgASROCGF5wgBUg+9qQ==
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=BQz/FFAFUrmwb/tx1E8h2JuWA0WJCGIpZB66hVqwGpc=;
 b=ufDIPBpOIozXC9TZB/0zJCSAd/Sr52fV3DLS8IrPXNwJpxhhlPY7gPkeCC6baIlkP3xnD2nDA2fkDdJT/Vn0PUWvqJmP4S6xpqAyvkpcTcV3hDxSwn9zv1zuVyY0bAf58BUCEb3dallcIlo2BPBZ7Fvd3NNm+Rpv5Glv4Qi+H2If/6xMKDlJMnulkHLX4R3Nv0MM4n9WVwl3JHjQ7zkGVM977S0SaVygGEe6vN0elyK0Hy41xDLmQYGDNn9PV94qWJRo4tm6ptcD19lpI8C/JeGeQpS0trilAu4SLCKiLYM2oHAf4w848tX5QmtPztlDapqDNniNxNPwW1bFpkW9Iw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BQz/FFAFUrmwb/tx1E8h2JuWA0WJCGIpZB66hVqwGpc=;
 b=EhAgkKjhtfwHA9xPxUvTBWAgtkPle71MZqjJ69jSCd6yJDX7KbF7bebCo3/l4wUAmLlKUSG88VBGoIRtwmT+d1FrtqToPHPM/Ff2eCuSUPjPmniZbWys7bmPkuaejA5kY1jEvFc/hhRkUgHFgqT1JdgTOFnDQym8NfBX6OnJxrA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <974c3c29-8f58-46fd-9ffd-4c574525f66c@amd.com>
Date: Wed, 10 Dec 2025 11:57:32 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
To: Jan Beulich <jbeulich@suse.com>
CC: Victor Lira <victorm.lira@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, "Connor
 Davis" <connojdavis@gmail.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Grygorii Strashko <grygorii_strashko@epam.com>,
	<xen-devel@lists.xenproject.org>
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-3-jason.andryuk@amd.com>
 <a734eeb0-c3f2-4880-86ee-7eeeb7beeacf@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <a734eeb0-c3f2-4880-86ee-7eeeb7beeacf@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB03.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000044F0:EE_|LV2PR12MB5941:EE_
X-MS-Office365-Filtering-Correlation-Id: 2723a6de-74ae-466b-e698-08de380d37d5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|7416014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dGRvaCs1cERUMjg2ejUwc2JBRURGZ1lLMmVWTkpVVUtEYVJEQzQ4M3h3YUI3?=
 =?utf-8?B?QVFzWWhuSEhBMUVXVGdZMDhjdnhyUjJkajQ5U0sxRi9qa2NJelNhL3dEYVBG?=
 =?utf-8?B?cUhOdVc0L1pMNWtYbFBxbkpnSGM5RXpNTy9xLzk2Zzc0dW1QU24wVWkyb3ZJ?=
 =?utf-8?B?YlQ1Tm5wSkdrTGNweFJMM0k5SWJ1RGc5b0lZOHY2REFicUVxU3FaRGduOUhC?=
 =?utf-8?B?S29FWEhvU016eVlSbW9ReDZnMFpPbUNoKzJkUUpucmQ4Z21aamtpQkFPY0dO?=
 =?utf-8?B?VE1QMVo2UlhHNWJ4YXdySU8rb0ZRZjNvSzFXeGJlbzhrSk01b3pNakdkS01P?=
 =?utf-8?B?SUJPTGJnNFhGcEdTcmZvMzRQd3VlVjMxWllsL1dkb1ZHR21UMjFMUGJTUktH?=
 =?utf-8?B?bFhMVmFkc0JpZDduQnphRi9wdU15bENjTUowZUozMHFjUzFjc1c5K1pwamV5?=
 =?utf-8?B?OWFidG8xS2hnbktUSDBOcG83andRNkowQXFjRUlSc2dhVzA3NnVBZWFoMHg2?=
 =?utf-8?B?Y3p5amdQRXJUek9jNDlxeFo5YTRBcS95WE5aSjcxRVo0SGs3aUxOUGNReTlu?=
 =?utf-8?B?UXFBRGN2bnpzNkdDalVQRjZPendPSGxLbURLOTNrQkVEK2RJT3V0Z0JZTXFT?=
 =?utf-8?B?cXpVV2RRNER5UHdPYmdYcGZFd2JFQk53SnFNdTJaRVFiSVY0ZEJMYW1TVTMr?=
 =?utf-8?B?emdGakdaMFRqN1hQNkEvdW9ZNDdlZXBUcTRhYnZTVTByVlhHY1FTdi94c21W?=
 =?utf-8?B?VThzOE1aRVZLVzBXaHN3d084ekZsUUhrZThFZC9nRi95YWQ2Snhnd0IyKzkw?=
 =?utf-8?B?aDhaMVZaVkxhbEZPRlBIcDFsQlV0MFd0SmlJN3dpVG0yMno0ekNkcmZKSmRl?=
 =?utf-8?B?SnJBUzVjN1diMlFoMHQxdGxua0N1R0lxbzA3SlNWYXhXbFIrZ1Y1YUxwUkhQ?=
 =?utf-8?B?ZzZaYjlRbE5kQlV4Y1RRQ2VYU2NTZlVubTJqaHhqaXROVFAvYUNGWjJWMGdO?=
 =?utf-8?B?VXF3dHViUjhwRmtKVHNxaytJNnh6N281b0Jpcjd3bGxzQ2dyYmRBRHd2bklv?=
 =?utf-8?B?WG16QnExbU0rZ0pQWU9YcXpidjRaTUh6c1ZpUnF3VEVOaytncjlnUzZnWWwy?=
 =?utf-8?B?bys4T3J6cGd5S1FJSHNBNVRyb01CM05lTEZXbWZWUFhkR3hFOFdNOHBCMCtX?=
 =?utf-8?B?MitaNmhlSmhidHQ3UmdWOVczVHZSdkl2YzhxaWtPemtGL0o0Z0tYTGlwcmRv?=
 =?utf-8?B?bTlVY3pOVWJsT3JiSkNKS1FQVFlxZUptYkFXRHN1cFA1eUlkV3BGcVVmRVpi?=
 =?utf-8?B?b3FSYVZTWS9sdjNRd1RUMTVHNnVKVGhmRWFKUXZ5TWZNZDlsdEs4bk0zUTdF?=
 =?utf-8?B?YXFnMnk2VXhhd25iTzRNeXo5ZmlGSHJNNXNycGRSdmtWRDVreHE2QTBuY1Jy?=
 =?utf-8?B?ZmxLWUFNYlc5NEFMT290ZEI3c3FQcWhKNFFGTzA0Q09RaEU5R1NuMFBzWWFt?=
 =?utf-8?B?Wmg2NDN1UjJxWVNSbXBNL0NGQ242UUUvcXFHZEQwMzZaZGt2aTRidE9kRG4v?=
 =?utf-8?B?djd1ZmpFaWk5bk1PTDQrRHhxc2ZycktVUDFGY0VlVWJKRmhPWkU0akU3MThz?=
 =?utf-8?B?Q2oyYUVsMHJ0S2xsVEw4VXprcURSUWEwZytaOWExNE9UVHVxUHo3bzlXQ1hs?=
 =?utf-8?B?RkY3OFZib1R3SjdDbTlucTVaSzNDMFVnaS81THFnaGdMK090N2JXVU1ETnY3?=
 =?utf-8?B?Q0wwT3NWK3k5cVhFRmdYcVZwN2pGZkxwOGgvMUZ1UWtKUFNibG5UdUVVT0JF?=
 =?utf-8?B?QjZnSlk5MUpNN1VscTZ6NUt2dElzam53K1dEdlJEeFMvbE9hUmR2T0M2elVm?=
 =?utf-8?B?VW9lbWM5Q3hOL1RzbVI2RnpJVkVnd1k0T3FNRE1TbVRSUHRVRjVlM1FnZy9L?=
 =?utf-8?B?STdJa1FMOWsyY2lZS0NTODlYWCtSK1E2NzdxdGlYUGVZaEJWTFhDaUJkY05h?=
 =?utf-8?B?UDRWS0VOR050MVlCOFFqdlhIUmU1c2JKS2FzNzE0a045T2xwNFAxWTlhTGpF?=
 =?utf-8?B?bjRSMUtoYmgrd3Yvak9mVWkraXF4M04zQUVoT2t1RmpSTjJGRjNMVXI4cUQr?=
 =?utf-8?Q?hp7o=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2025 16:57:35.4346
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2723a6de-74ae-466b-e698-08de380d37d5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000044F0.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5941

On 2025-12-10 03:17, Jan Beulich wrote:
> On 09.12.2025 22:47, Jason Andryuk wrote:
>> --- a/xen/Makefile
>> +++ b/xen/Makefile
>> @@ -469,10 +469,13 @@ all-symbols-$(CONFIG_FAST_SYMBOL_LOOKUP) += --sort-by-name
>>   
>>   include $(srctree)/arch/$(SRCARCH)/arch.mk
>>   
>> +XEN_FINAL_LDFLAGS-$(CONFIG_GC_SECTIONS) := --gc-sections
>> +
>>   # define new variables to avoid the ones defined in Config.mk
>>   export XEN_CFLAGS := $(CFLAGS)
>>   export XEN_AFLAGS := $(AFLAGS)
>>   export XEN_LDFLAGS := $(LDFLAGS)
>> +export XEN_FINAL_LDFLAGS := $(LDFLAGS) $(XEN_FINAL_LDFLAGS-y)
>>   export CFLAGS_UBSAN
> 
> Imo the introduction of XEN_FINAL_LDFLAGS would best be a separate, prereq
> change. That could then also go in already while the KEEP() issue is still
> being sorted.
> 
> The appending of --gc-sections should then also be truly appending, so make
> sure that e.g. anything set by arch/$(SRCARCH)/arch.mk wouldn't be purged
> again. IOW I think ahead of that include we want
> 
> XEN_FINAL_LDFLAGS-y :=

This all sounds fine, though with Anthony's response the variable name 
may change.

> 
>> --- a/xen/common/Kconfig
>> +++ b/xen/common/Kconfig
>> @@ -680,4 +680,13 @@ config PM_STATS
>>   	  Enable collection of performance management statistics to aid in
>>   	  analyzing and tuning power/performance characteristics of the system
>>   
>> +config GC_SECTIONS
>> +	bool "Garbage Collect Sections"
>> +	select CC_SPLIT_SECTIONS
>> +	help
>> +	  During final linking, garbage collect unused sections.  This will
>> +	  reduce the size of the final Xen binary
>> +
>> +	  Only supported for ELF/Multiboot xen/xen.gz, not EFI xen.efi.
> 
> This last sentence is x86-centric, which it shouldn't be here (or it should
> say that this is an x86-only aspect).
> 
> I also wonder whether this wouldn't better live next to CC_SPLIT_SECTIONS.

If I put it immediately after CC_SPLIT_SECTIONS, menuconfig puts it as a 
top level option:

│ │    [*] Garbage Collect Sections
│ │        Architecture Features  --->
│ │        Common Features  --->

I thought Common Features was a better place for it.

Also, I think it should probably gain " if EXPERT" as well.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 17:03:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 17:03:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183104.1505881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTNbQ-0008Qf-6J; Wed, 10 Dec 2025 17:03:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183104.1505881; Wed, 10 Dec 2025 17:03:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTNbQ-0008QY-3l; Wed, 10 Dec 2025 17:03:48 +0000
Received: by outflank-mailman (input) for mailman id 1183104;
 Wed, 10 Dec 2025 17:03:47 +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
 <SRS0=NJGl=6Q=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vTNbP-0008QS-3L
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 17:03:47 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 300e671e-d5ea-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 18:03:45 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b734fcbf1e3so1444960166b.3
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 09:03:45 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64982040e2bsm72804a12.6.2025.12.10.09.03.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 09:03:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 300e671e-d5ea-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765386225; x=1765991025; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=HDty72hcYyiibH87TqbPlise8L/YjpZ5f2bIDgdPjoc=;
        b=VH6tjRNl4pRh1XquPg9CKotZj3x5EXpE6TQt69s473eGJv+fZExjYY6ecBbPOqHhLa
         wcWQ6v1EOdZaK++y8vcoaRhtJRB1oRtYd+8eVyRFSTQLjht+wj5J2/0fcTD5bKAGiBqq
         a4dSrkJLXCzuEctNuMPVqG0zPxKWCgbM0w848SfS4IyHYWKjE27tLlGjumJi1bzCgUCI
         Vp/S7Q0xkddXuBen04+KXhdr1S4wNIjuQYsQpyOsXxquNmEmuNoFk9NqbiGJUwfkzslb
         efGMlWGT5S6TTwvA4x7QAVpsOHzKxXMF9BcnViLIkhyJ//FYSdBexpnAbNbFxXAb0Hc/
         qsEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765386225; x=1765991025;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=HDty72hcYyiibH87TqbPlise8L/YjpZ5f2bIDgdPjoc=;
        b=HAFaoZ6bXwDuLhN++NIDqnuC9MtLikQiDFpgC8UUNs9LqvB8EjIsWiNVckn55JV+wZ
         9Hy4I8auVbIv8/qtY9koaNxI8EnXyS8MT41/8zON2C44EuKajLZf99hyqNakEESeeBFD
         4JfaiMDmR7bwbya39KOfyH494sC+cx7r9ljNOcATXpmnG6NjGuOR8GcT3PUBD167585g
         EY5uk8/C2SWb3AERVvpMGVHcpzTzIBLbze9kWCxhpRsM0G2kTFYmF7MsfrOHkyc8nPlu
         UKc1Sw9y++3PAiZqk1YdZwJlglwNM2NnlFgCJDNfq50D/W9O1779y94t0L8Q8aZEtZSU
         IIog==
X-Forwarded-Encrypted: i=1; AJvYcCVAqAPCsA5P19J+cXJXSlFYYxmojGS/tqJECP7eWWgas7a7k9iiQTpGbw13huI1YZyL2qcyCDJ0Njo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx0ObGE0+x+yQdEGf2agPdMSBhpeObuA+mPohd+Ph9ewzy091hV
	/Ew/y+zIAxvUZO2A6rzVeJTA6zB6gTW49Dyn93nJ1p3/Mc+ZRJBF2nyc
X-Gm-Gg: ASbGncvnWF3hcKqQ1YB6PDzZPkAXiUWxr89nHd9fDpxyT+g5pURCJR3+Na02nUzRHcR
	crvQKqpxJbSChZ9gD3hbhSg6NqmlQtmWQsXAGXzg6GW4Ipy8N4nBkTFG06gTPDS3U5StB4b9QSJ
	zA+nOX1MZBYauBf8hUJVnHmsynwF0nvm6C74NiuDH7XrMeh4dkKmBosJycke19on0LSjQgGut/Z
	JpC2Nf27aHuTADpcQSsI1rxGFDUiJ2Stqu132ZGgL0C5uBPQMo0bXWuddo6dQYG/+AbmCN1yy6z
	yNFRh0eGPtqHIcxTERpe7DmtT9juReNIP+zZTzewxbQ9BbvEs/ER+xlyEfQPq062lgHqV3RGShq
	T43E1+xHWqD0sFFx62qxdUmWuL8Wbw1pPUtmCDjeY2sGGavuaHaHZRaBzNFc4UqqWRnsXuOppuM
	8rW+Ezva1RV1d9DfBUWrrKyTfZRM1y4/eAK1eYu5ma4JKWA7MKCjjkgp1sp+ai
X-Google-Smtp-Source: AGHT+IE5ijayu3JjqjEj3IcbtNR0EQUeWkX6ToS9yU28PsPNEZrYWw7pVyNoK2r0nIRZJIgfl87jog==
X-Received: by 2002:a17:907:1c07:b0:b4c:137d:89bb with SMTP id a640c23a62f3a-b7ce8317ee9mr321498166b.29.1765386224574;
        Wed, 10 Dec 2025 09:03:44 -0800 (PST)
Message-ID: <02b72d6f-d95b-4caf-825a-15280902af27@gmail.com>
Date: Wed, 10 Dec 2025 18:03:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/3] xen/riscv: introduce vSBI extension framework
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1764582112.git.oleksii.kurochko@gmail.com>
 <3b67330dc4c1aa053eb15261a559e7b4eac3f493.1764582112.git.oleksii.kurochko@gmail.com>
 <df316e2f-9eb0-4bb8-96cd-e5e0c42d123e@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <df316e2f-9eb0-4bb8-96cd-e5e0c42d123e@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/8/25 3:25 PM, Jan Beulich wrote:
> On 01.12.2025 11:24, Oleksii Kurochko wrote:
>> This commit introduces support for handling virtual SBI extensions in Xen.
>>
>> The changes include:
>> - Added new vsbi.c and vsbi.h files to implement virtual SBI extension
>>    handling.
>> - Modified traps.c to handle CAUSE_VIRTUAL_SUPERVISOR_ECALL by calling
>>    vsbi_handle_ecall() when the trap originates from VS-mode.
>> - Updated xen.lds.S to include a new .vsbi.exts section for virtual SBI
>>    extension data.
>> - Updated Makefile to include the new vsbi/ directory in the build.
>> - Add hstatus register to struct cpu_user_regs as it is needed for
>>    a check that CAUSE_VIRTUAL_SUPERVISOR_ECALL happens from VS-mode.
> I can spot the check, yes, but without the field ever being set how is one
> to determine whether that check actually makes sense?

But hstatus is set automatically when a trap occurs and will be copied in
handle_trap() in entry.S. The HSTATUS_SPV bit in hstatus will be set only
when a trap originates from a guest, which is not the case now since we do not
have any guest running yet. This is why hstatus is not currently saved or
restored.

Probably, you meant that it would be better to introduce csr init function
now, something like:
static void vcpu_csr_init(struct vcpu *v)
{
     unsigned long hedeleg, hideleg, hstatus;

     hstatus = HSTATUS_SPV | HSTATUS_SPVP | HSTATUS_VTW;
     guest_regs(v)->hstatus = hstatus;
     
     ....
}
But it also make sense only for a guest, which isn't ran now.

If you think it is better to introduce saving and restoring of hstatus in
handle_trap() now, or instead drop the handling of
“case CAUSE_VIRTUAL_SUPERVISOR_ECALL:” in do_trap(), please let me know.

>
>> The implementation allows for registration and handling of SBI
>> extensions via a new vsbi_ext structure and ".vsbi.exts" section,
>> enabling extensible virtual SBI support for RISC-V guests.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> ---
>>   xen/arch/riscv/Makefile                |  1 +
>>   xen/arch/riscv/include/asm/processor.h |  1 +
>>   xen/arch/riscv/include/asm/vsbi.h      | 31 +++++++++++++++++
>>   xen/arch/riscv/traps.c                 |  8 +++++
>>   xen/arch/riscv/vsbi/Makefile           |  1 +
>>   xen/arch/riscv/vsbi/vsbi.c             | 46 ++++++++++++++++++++++++++
> A file named identical to the directory it lives in raises the question of
> why there is such a new sub-directory. Are you expecting moree files to
> appear there?

Yes, I'm expecting that and it is done in the next patches of this patch
series.

>   How's vsbi.c then be "special" compared to the others? Do
> you perhaps mean someling like "core.c" or "common.c" here?

Agree, this is more appropriate for either “core.c” or “common.c”. Both options
are fine with me. I slightly prefer using the prefix “vsbi-{core/common}.c”, but
if you think it is better to omit the prefix since the folder name already
provides that context, I’m fine with dropping it.

>
>> --- /dev/null
>> +++ b/xen/arch/riscv/include/asm/vsbi.h
>> @@ -0,0 +1,31 @@
>> +/* SPDX-License-Identifier:  GPL-2.0-only */
>> +
>> +#ifndef ASM_RISCV_VSBI_H
>> +#define ASM_RISCV_VSBI_H
>> +
>> +struct regs;
> DYM struct cpu_user_regs?

Should be struct cpu_user_regs.

>
>> +struct vcpu;
>> +
>> +struct vsbi_ext {
>> +    const char *name;
>> +    unsigned long eid_start;
>> +    unsigned long eid_end;
>> +    int (*handle)(struct vcpu *vcpu, unsigned long eid,
>> +                  unsigned long fid, struct cpu_user_regs *regs);
> Nit: Maybe better "handler", as this isn't really a handle?

It could be handler, I am okay with that.

>
>> +};
>> +
>> +#define VSBI_EXT_START(ext, extid_start, extid_end, extid_handle)   \
> The extid_ prefixes aren't adding much value here, are they?

Agree, not to much sense to have extid_ prefix here, lets drop it.

>
>> +static const struct vsbi_ext vsbi_ext_##ext __used                  \
>> +__section(".vsbi.exts") = {                                         \
>> +    .name = #ext,                                                   \
>> +    .eid_start = extid_start,                                       \
>> +    .eid_end = extid_end,                                           \
>> +    .handle = extid_handle,
>> +
>> +#define VSBI_EXT_END                                                \
>> +};
> There's no use here, and peeking ahead at the other two patches shows
> no use where this odd split of the macros would be necessary. What is
> this about?

I thought this was the common approach, similar to DT_DEVICE, where we have
DT_DEVICE_START and DT_DEVICE_END. There may be no need for it right now, but
perhaps we will eventually want similar behavior for VSBI_EXT_START.

If you think it is better to drop VSBI_EXT_END for now, I’m okay with that,
and can just use VSBI_EXT instead of VSBI_EXT_START.

>
>> --- a/xen/arch/riscv/traps.c
>> +++ b/xen/arch/riscv/traps.c
>> @@ -15,6 +15,7 @@
>>   #include <asm/processor.h>
>>   #include <asm/riscv_encoding.h>
>>   #include <asm/traps.h>
>> +#include <asm/vsbi.h>
>>   
>>   /*
>>    * Initialize the trap handling.
>> @@ -114,6 +115,13 @@ void do_trap(struct cpu_user_regs *cpu_regs)
>>   
>>       switch ( cause )
>>       {
>> +    case CAUSE_VIRTUAL_SUPERVISOR_ECALL:
>> +        if ( !(cpu_regs->hstatus & HSTATUS_SPV) )
>> +            panic("CAUSE_VIRTUAL_SUPERVISOR_ECALL came not from VS-mode\n");
> This might more naturally want to be BUG_ON()? Assuming of course the value
> in question is exclusively under hypervisor control. Otherwise panic() would
> also be wrong to use here.

Only hypervisor can access ->hstatus (of course, hart is changing it when a trap
happens, for example).
BUG_ON() is a good option for me.

>
>> --- /dev/null
>> +++ b/xen/arch/riscv/vsbi/vsbi.c
>> @@ -0,0 +1,46 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/sched.h>
>> +
>> +#include <asm/processor.h>
>> +#include <asm/sbi.h>
>> +#include <asm/vsbi.h>
>> +
>> +extern const struct vsbi_ext _svsbi_exts[], _evsbi_exts[];
>> +
>> +const struct vsbi_ext *vsbi_find_extension(unsigned long ext_id)
> static?

It could be use not in vsbi.c (for example, in the next patches it is used for
SBI_EXT_BASE_PROBE_EXT), so it shouldn't be static.

>
> Also, again - is the ext_ prefix adding any value here?

Not really, I guess.

>
>> +{
>> +    const struct vsbi_ext *vsbi_ext;
>> +
>> +    for ( vsbi_ext = _svsbi_exts; vsbi_ext != _evsbi_exts; vsbi_ext++ )
>> +        if ( ext_id >= vsbi_ext->eid_start &&
>> +             ext_id <= vsbi_ext->eid_end )
>> +            return vsbi_ext;
> What if multiple entries have overlapping EID ranges?

Good question, I wasn't able to find that EID is always unique in SBI spec,
but, at the same time, if to look at all available extensions and their id(s),
they are always unique, so I expect that they will be always unique, otherwise,
it won't be possible which extension should be used.

>
> Also at the macro definition site please clarify (by way of a comment)
> that these ramnges are inclusive (especially at the upper end).

I will add the following above VSBI_EXT_START:
   /* Ranges (start and end) are inclusive within an extension */

>
>> +void vsbi_handle_ecall(struct vcpu *vcpu, struct cpu_user_regs *regs)
>> +{
>> +    const unsigned long eid = regs->a7;
>> +    const unsigned long fid = regs->a6;
>> +    const struct vsbi_ext *ext = vsbi_find_extension(eid);
>> +    int ret;
>> +
>> +    if ( ext && ext->handle )
>> +        ret = ext->handle(vcpu, eid, fid, regs);
> Is a registration record NULL handler pointer actually legitimate / useful?
> (If there was range overlap checking I could see a reason to permit such.)

it is a good question, I think ext->handle = NULL should be impossible. At
least, at the moment I can't come up with the case where it is possible and
what will be a use case. I will drop ext->handle check.

>
>> +    else
>> +    {
>> +        printk("Unsupported Guest SBI EID #%#lx, FID #%lu\n", eid, regs->a1);
> Are the #-es ahead of the %-s adding value here?

It is how SBI spec writes them. For example,
  9. Hart State Management Extension (EID #0x48534D "HSM") . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
  9.1. Function: Hart start (FID #0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

So I thought that it would help to find stuff faster.

>   Is printing an ID as
> decimal going to be useful, when the value is pretty much arbitrary?

It seems like FID (in comparison with EID) is always in sequence and
start from 0, but I don't see that SBI spec guarantees that.

But in the same side for old extension they used hexdecimal for FID, but
again it is in sequence:
5. Legacy Extensions (EIDs #0x00 - #0x0F) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.1. Extension: Set Timer (EID #0x00) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.2. Extension: Console Putchar (EID #0x01) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

>
>> +        ret = SBI_ERR_NOT_SUPPORTED;
>> +    }
>> +
>> +    /*
>> +     * The ecall instruction is not part of the RISC-V C extension (compressed
>> +     * instructions), so it is always 4 bytes long. Therefore, it is safe to
>> +     * use a fixed length of 4 bytes instead of reading guest memory to
>> +     * determine the instruction length.
>> +     */
> And ECALL is also the sole possible cause of CAUSE_VIRTUAL_SUPERVISOR_ECALL?

I think yes, in Trap Cause Codes paragraph in RISC-V spec is mentioned the following:
   Furthermore, environment calls from VS-mode are assigned cause 10,
   whereas those from HS-mode or S-mode use cause 9 as usual.

So it is explicitly tells that environemt calls, so ECALL.

>
>> --- a/xen/arch/riscv/xen.lds.S
>> +++ b/xen/arch/riscv/xen.lds.S
>> @@ -91,6 +91,13 @@ SECTIONS
>>   
>>       DT_DEV_INFO                       /* Devicetree based device info */
>>   
>> +    . = ALIGN(POINTER_ALIGN);
>> +    DECL_SECTION(.vsbi.exts) {
>> +        _svsbi_exts = .;
>> +        *(.vsbi.exts)
>> +        _evsbi_exts = .;
>> +    } :text
> Isn't this read-only data? In which case it wants to move up ahead of _erodata?

It is. I will move it to recommended place.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Dec 10 17:08:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 17:08:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183114.1505891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTNfm-0000r4-MV; Wed, 10 Dec 2025 17:08:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183114.1505891; Wed, 10 Dec 2025 17:08:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTNfm-0000qx-K0; Wed, 10 Dec 2025 17:08:18 +0000
Received: by outflank-mailman (input) for mailman id 1183114;
 Wed, 10 Dec 2025 17:08:17 +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
 <SRS0=11gW=6Q=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vTNfl-0000qr-Na
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 17:08:17 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d00e840c-d5ea-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 18:08:15 +0100 (CET)
Received: from PH7P221CA0013.NAMP221.PROD.OUTLOOK.COM (2603:10b6:510:32a::9)
 by BY5PR12MB4148.namprd12.prod.outlook.com (2603:10b6:a03:208::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.9; Wed, 10 Dec
 2025 17:08:10 +0000
Received: from CY4PEPF0000FCBF.namprd03.prod.outlook.com
 (2603:10b6:510:32a:cafe::5) by PH7P221CA0013.outlook.office365.com
 (2603:10b6:510:32a::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.7 via Frontend Transport; Wed,
 10 Dec 2025 17:08:09 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CY4PEPF0000FCBF.mail.protection.outlook.com (10.167.242.101) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Wed, 10 Dec 2025 17:08:09 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 10 Dec
 2025 11:08:08 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 10 Dec
 2025 09:08:08 -0800
Received: from [172.17.249.106] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 10 Dec 2025 09:08:07 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d00e840c-d5ea-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zNH379ABrs9JcV0sveeVcWK+VPxueXRjH9iytQTm4yCRd0Lcm9vESpUple6eDzck35GGB9NX1GNJlMtJ5z0pAXrCdbLgdsDG6QfySz0mxTxY6bxe3X3cWtPfb/17kU5lxsg3HrXgWiIhzs/CMgLJB45YQfwE9HVx14Il0B9eFZcABHfYb2OJANPaWD1do1cq0T8jqMOi+FZ+VxGJBTPda9nj0unVZIAOPlKGozE7CaUssmXT3bjFEOZ/yHMineNIr/0JpL31EZdKXJXQno3O/ATMvaSFyG2bdoWMGFSpPhl8EW0ilb8nsjURRFiSbBVctXRwDqd36d0U/OCcJJDAYQ==
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=fLeVL7ayWcVTMb4z9L6irY86uDxmPJ66naDSp/8q4Iw=;
 b=iq23b022SLKGdZpsJG9SuIFoysY6ZxnIylj86t9RyfeNkqUEcDIP27LdR2rFvrc7u/7hnUstSjtnPC9wDoLnZcOQ56VO7guBrQZl7YzIGHXuSeUPfW2OUPTqrHmSrrq+hK8CFC2JmRbOJrTOU6wPyAHl4WfBTzNtqHq94gSwzY7okJd1KD1jwG4lt17QOy8IOLM4Q43W8Io2b45zZcF+RZVyuQwt60P5oscxhkju1nMlEqnG1h6UeuGSFvOuOZAbWNClncVE5KeAUR0GUHduPmUA7XqKBECja5FA7psdFFNU7v4+gxnQcDNumMXahTme+GWUtORO/zkxf/OiV2qUVw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fLeVL7ayWcVTMb4z9L6irY86uDxmPJ66naDSp/8q4Iw=;
 b=QOCvBxALdeenKl1ISe98EzzryIWu7J0v2lO/FYLFzNaoDi7889uDrTusbO+P8K78OOYbPqojgwnF5yxd3gBaVWptS5/5IVCNc8Badn/PfwqjDJgnYLIk6ObQjVowXASvBISh1uMiUpRbaL23vg6S0lOWIbaWEe4SRsZNWM7aWLs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <a6d3737f-19e0-4a52-a5d9-70bbfe7630a8@amd.com>
Date: Wed, 10 Dec 2025 12:08:01 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
To: Anthony PERARD <anthony@xenproject.org>
CC: <xen-devel@lists.xenproject.org>, Victor Lira <victorm.lira@amd.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, "Connor
 Davis" <connojdavis@gmail.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Grygorii Strashko <grygorii_strashko@epam.com>
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-3-jason.andryuk@amd.com> <aTmGTWIO2ZKWuQeu@l14>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <aTmGTWIO2ZKWuQeu@l14>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000FCBF:EE_|BY5PR12MB4148:EE_
X-MS-Office365-Filtering-Correlation-Id: 019f125b-1517-4b2c-5480-08de380eb183
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|7416014|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dkVIQ2R3dG5qbzh4S2dQQzA1R0k3SWNBK1pPRHRCalBNOE83dGF6b2FzZk5N?=
 =?utf-8?B?WDZ6M1QwR2owQ0NvaDhPU1pYS2x0MDdKOWdXM3pFOVB6U25COFlnOHROL0I5?=
 =?utf-8?B?eStQWGN6S3JmMzl5L2ppbDJ5akU3TzBhcjFhd2g5cForb0ZtUStSZ2FXV254?=
 =?utf-8?B?eTVhOFNRcTR5YVk0YXZvVlJramVUanVOTUZuZk9hSXNIRHRKN1crNHI0NzB3?=
 =?utf-8?B?ZjVTd0RoMUw3U0Z2eTl6aktFYUZ4RmpXTUgwOEdkd1BYaTZFWkNpQTVZTWZv?=
 =?utf-8?B?SnR2eHl5d0xzU1ZIUDlvT2JrdlpYWXpNZmRaNTI4Szl6RWlJanhEcFppOGtR?=
 =?utf-8?B?Mkh0UW1NNzlwekhNZ0FGcUhpQmgrWFk4eGptMHo1KzRTYkh2d1pmZHRmUmtQ?=
 =?utf-8?B?eS9kSkJNNVVyZ1dHZnV2clpHYlBOZFVIVlErd3pnRVo1MXczZDJIZ0NKMlJt?=
 =?utf-8?B?aExSQjlmRHE3cFlZM0xMTVdKMXVJOGVEK0k5cHJpM0ZsV0xGRzRGeHRSN08x?=
 =?utf-8?B?bGtNc2xQOUNISlloMGFXVmQxNWJRTlAyM0RwY3Q4SXA2Tk5UUXUydE5UOFJw?=
 =?utf-8?B?aXljNWFKd3N4d3NzekVlUnI1S1BkdWxlWTM2ZU5jcmFya21NU0JKOGVhWlZS?=
 =?utf-8?B?K1h2MVo1VWgrUkZrUllvT2wvbHZJQUdvbHA1T1RzUkFHa2ovaEtKSE45bGVl?=
 =?utf-8?B?WjIrWENZeW5wbW5YK1RMWk5HZVBDRWRFME1LUFI4cTNXODBSS2J1QXhsYTYw?=
 =?utf-8?B?cy93MFZZZ0J2TU1lV3V4QXpXU1J6Unc4T0xwRGpKdWNVMXRNK1ZvYTJRbmF4?=
 =?utf-8?B?NGUxRnU3MXh3NFJyWTFqMElnbDRVQ2dPd3NXeXU0clkrTG8wakhQMkVGVExG?=
 =?utf-8?B?Q04rc1A5TmZqVE9RYjRnKyt3KzZ1RS9QQlY0Y1hnMFkrQURiZ29Pa1ZrcTZS?=
 =?utf-8?B?Rk1HUFYxOVpvRmRJcHJ0TDhqc2tNQ2VmRUlNdUlhWTVhdjhYZGo2U0pjMkR5?=
 =?utf-8?B?bHNQSG4xcDVGajhjYXpxRnBUV29FbmJ5Q2sva29vKzYrNS8yenNpOWhPZ2lv?=
 =?utf-8?B?WFBaWmd1N2dpUzBRSnVtemtYbGtab28xWlRGSkRaWk9sM1p1bUltNmp5cVNK?=
 =?utf-8?B?YVd3czFraU5TN21TYjZZeFlvQXNBTFpVTWFsNk5sb3NxTzB4QWU2dWRZZjF6?=
 =?utf-8?B?SUVDZVhaV2xhdE1helE0YzVQbHEzaVVlR3JFL1hoR3NGcWhJVHB0bUEwNkZ6?=
 =?utf-8?B?Y0hwWDVsSHo4d1lrYi9QVGJIK05yRkhkSUkyTmx3VmZhR2dwYVBXTzdCbzNh?=
 =?utf-8?B?ZFp1WGJVTGxJa1ZGSmh0dE9aODRwK0ZWOWx3TUdkeGFJdEV6S2EwUE9vejRu?=
 =?utf-8?B?K1pld2gzK2dwV3BkalVoSUdYMXBkaGVzTDhleTZ4ZGtYaWVMVEl0TlRQKytq?=
 =?utf-8?B?UisyeG5ZS3lBQWZSa2FGMnNtTVJxWVNKd3RCSE1TNEdHK1c0ME9BQnZQdnkz?=
 =?utf-8?B?Mk5HQkZQRnZ1L2tnZXZyU095R0xidVpjbU9SbDZBZ2xWY254VEFWN1BTejFF?=
 =?utf-8?B?bGRJL0dlcy9ON2lKVm5xNXgwZ3c3K2pKR3pZWGZZcHVsUEhMS0pqdWh4bXN5?=
 =?utf-8?B?cmhVWTZySjI5SnBLbTM4bzVVOUp1ZzcxUEc2aWUzZUFXRjBmdTdROU53OWd6?=
 =?utf-8?B?YXR2OCtJTldNcUsydGI2OVVSSklTQlBjS1ZFemhFa1dlOEh5VC9kK25MMDR6?=
 =?utf-8?B?cWhMM1daTEtHVGNxVjB3ZEk1Vk1uandWWVVxOGxmMkp5TEVuSnFka1BtRFZR?=
 =?utf-8?B?dmFIOVM0bmtBR08xY0lPSS8veGk5UWhjSGltNXVRc2ErMDV2QnRBS0x6YXQ5?=
 =?utf-8?B?U1B0c1kzVkg5bmJqeHl0L21WQ2R6UzlNTXpKMU1FVWRvOGhwcmhoZVpUclpR?=
 =?utf-8?B?dVllSkxaeXY5MzZBYUt0ZzV0Q1UxOVBNV083c0NUcW9ieXpTSlRVYUMrK3o0?=
 =?utf-8?B?UzJOOHdxNVEvbE93ZkN6OUFORTlHM0pMZnhtM2pJNDk1cmhBejVuT0NuMEdC?=
 =?utf-8?B?dmVQby81anZwaStreFBIWDdYaW9Sa25sZ2pFb28wMkVXU3JXZzZCeXIveGpq?=
 =?utf-8?Q?yRSE=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(7416014)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2025 17:08:09.1182
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 019f125b-1517-4b2c-5480-08de380eb183
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000FCBF.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4148

On 2025-12-10 09:40, Anthony PERARD wrote:
> On Tue, Dec 09, 2025 at 04:47:28PM -0500, Jason Andryuk wrote:
>> diff --git a/xen/Makefile b/xen/Makefile
>> index e6cf287425..aeb5dcf2ee 100644
>> --- a/xen/Makefile
>> +++ b/xen/Makefile
>> @@ -469,10 +469,13 @@ all-symbols-$(CONFIG_FAST_SYMBOL_LOOKUP) += --sort-by-name
>>   
>>   include $(srctree)/arch/$(SRCARCH)/arch.mk
>>   
>> +XEN_FINAL_LDFLAGS-$(CONFIG_GC_SECTIONS) := --gc-sections
> 
> Is there a good reason to add this flags after the arch-specific
> makefiles? If not, could you move that just before, and right after the
> definition of "$(all-symbols)" as it's a variable that is used in the
> same phase of the build. (With Jan's other feedback)

No, there is no reason for its location.  I can move it.

>>   # define new variables to avoid the ones defined in Config.mk
>>   export XEN_CFLAGS := $(CFLAGS)
>>   export XEN_AFLAGS := $(AFLAGS)
>>   export XEN_LDFLAGS := $(LDFLAGS)
>> +export XEN_FINAL_LDFLAGS := $(LDFLAGS) $(XEN_FINAL_LDFLAGS-y)
> 
> "FINAL" isn't very descriptive. A completely wrong interpretation might
> be that we should use the "final" variable instead of "XEN_LDFLAGS". How
> about a name that describe where this set of flags is going to be used,
> like "XEN_LDFLAGS_xen_syms" (which unfortunately doesn't exactly fit
> with x86 xen.efi target), or maybe suffix it with "_target" or just
> "_xen"? (In Linux build system, they use "LDFLAGS_vmlinux", but I don't
> know what would be the equivalent of "vmlinux" in our build system.)

I plan to use "_xen" unless anyone objects.  "_xen_lds" could be another 
option, but again that doesn't match efi.lds.

Hmmm - maybe my earlier xen.efi link failure was from efi.lds needing to 
be updated.

> 
> The prefix "XEN_" is used as namespace, with one reason described in the
> comment.

I'm not sure what you mean here.  Are you just pointing out that XEN_ is 
the prefix and not the target?

> Also, could you use $(XEN_LDFLAGS) instead of $(LDFLAGS) ?

Yes.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 17:12:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 17:12:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183129.1505902 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTNjK-0002Qc-9f; Wed, 10 Dec 2025 17:11:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183129.1505902; Wed, 10 Dec 2025 17:11:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTNjK-0002QU-6R; Wed, 10 Dec 2025 17:11:58 +0000
Received: by outflank-mailman (input) for mailman id 1183129;
 Wed, 10 Dec 2025 17:11:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=11gW=6Q=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vTNjJ-0002QO-4X
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 17:11:57 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 52fe628b-d5eb-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 18:11:54 +0100 (CET)
Received: from BLAPR03CA0156.namprd03.prod.outlook.com (2603:10b6:208:32f::29)
 by IA1PR12MB6116.namprd12.prod.outlook.com (2603:10b6:208:3e8::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.9; Wed, 10 Dec
 2025 17:11:45 +0000
Received: from BL6PEPF0001AB74.namprd02.prod.outlook.com
 (2603:10b6:208:32f:cafe::60) by BLAPR03CA0156.outlook.office365.com
 (2603:10b6:208:32f::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.15 via Frontend Transport; Wed,
 10 Dec 2025 17:11:50 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL6PEPF0001AB74.mail.protection.outlook.com (10.167.242.167) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Wed, 10 Dec 2025 17:11:45 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 10 Dec
 2025 11:11:44 -0600
Received: from [172.17.249.106] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 10 Dec 2025 09:11:42 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 52fe628b-d5eb-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jv7AKninKvnTxiuErrFDMYr8U1SOEUK+6AD+N3tUHTAz7dPh2XO49I2zMZ5qPuIKlmKExa5CJvq1DignzUuouHE6pzh8xoeU0/ar/fp+dLOHOV8NfwNsf8W399y8AmZ4F+j411rLLH5VoIGXjkYvKDLGXyLfl7sZLL61dbD1xBVZxzAlyCnY+DU1HC2Afw2stPMOCfiS5up54mRULdYYKJIy6caVuepR12wWi8Jw25iEh3YQDJAKCZ89q3/yI5fPQF/+QZ++5jvt3G++AFNWfiEyciP4nBlUvRMxkDMXoFjy8B/mzGx8lH+AnihbLcManR4/5UEAM/hMcNm8JJRPvg==
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=4ZpftQCiPGy8uMm3Mry9au9dXZwtVHnc8x+qK2TsvI0=;
 b=HxUnIs3Y8exOkCOFJqdngDgI+0ftTue1tXDT+3lLdN7lAcoyx1Lqv00R095vNknVzY9pKLA8BoKLIonOQv3m/szk53IbJqJbDb2nTPpOwu3LyoVdaDONKz9y9pQHAwBvyubYtY3CzA5COdOxPCNodJ5Pm5p3tU6Sdwt0b3IYxb4ZUYW0FfyMPUGvMYd67PKLHw4yP2SVDqMCQ+ogHYpFsRoev55vlicV0Wj4KgqeJoJQ0BfWCZZ2I7aWbAvbi5XYKumyeMGvw9GnhbcGdllzXFGtv4Pgk9v/FG+KWf6ERdZK1QoQ/BT/+nwBpYJmlpaMLN5RQwjZUVhVGSemSifOZQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4ZpftQCiPGy8uMm3Mry9au9dXZwtVHnc8x+qK2TsvI0=;
 b=WktIZSLPmUm8qK4P4JElHYDQ43mF3a8wajcYhhtVoj8budcudX4lGlWJ3zDch6Gx4xcMSXGdLLiSIHqHH+DEazcHC+xlFA8pNzpwl/3iAXSqK4ry1XMV1p2qWu3/ssR6nuUaQlOP5iY69tzW1MpMoGBo+hSdlp3/lfKJT47xy50=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <0949d825-0ae3-4cfe-a1b8-0df176a107e3@amd.com>
Date: Wed, 10 Dec 2025 12:11:42 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: KEEP Re: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
To: Andrew Cooper <andrew.cooper3@citrix.com>,
	<xen-devel@lists.xenproject.org>
CC: Victor Lira <victorm.lira@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, "Connor
 Davis" <connojdavis@gmail.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Grygorii Strashko <grygorii_strashko@epam.com>
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-3-jason.andryuk@amd.com>
 <ed620cd5-9630-4987-bd5c-9f69ae2c2609@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <ed620cd5-9630-4987-bd5c-9f69ae2c2609@citrix.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB74:EE_|IA1PR12MB6116:EE_
X-MS-Office365-Filtering-Correlation-Id: a1592a96-8d2d-405a-c0fe-08de380f3266
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|7416014|1800799024|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?a1RvOVdQajliOFd0NnhZdDBCOXZxalYra2dVR1BvTFp3b0dHaWRyTlRGcERS?=
 =?utf-8?B?U01ITWo0ejJ6Y1hGNnphZUxPaFNRdm1hRlRmY3Zab3VLODhnRWtlUEpsU25q?=
 =?utf-8?B?VlJTc0lVNkVTL0V4NWsvRUhUVXhlR2tMWXRBNmJPZFdCZGJOdG5pak1FT0dH?=
 =?utf-8?B?WDlGVGtNTkMxaVVZRlZwZCs2SDdnT1BZZTlqdFZlT1ZQY1BHYUdpSS8yclFl?=
 =?utf-8?B?THFBSDdGSHBNN1orVFBlNU5FSEhUQWJheldmRVBsc0orMSsrYytETTlCbDd2?=
 =?utf-8?B?cEZwek1GMkh6aC9yNmlXclNFOU1sR3pYcm91YWlEZFpUMTFZSnVERG1KaFEw?=
 =?utf-8?B?SGRLYkVvbmM5aW12aStsZWNrK0M3dHZTTlBhQkF6SFQ3RWhkMUxnVmlyaW9w?=
 =?utf-8?B?OUIzRW54RVkrb2l3RnkySGsrb1hlRGY2UGxHcGhhL1hqaUxtTFdQc1FGUVpH?=
 =?utf-8?B?Z3FxU3hFMml0M1JFU0ZaN1V1WUxVWUlNOGpmZ2JiNUVLREVrUUthL0U1Zm4y?=
 =?utf-8?B?TVp1cy8xSWZWV3gycTh0SXhrbmJsZWxIYnU2VndzQ29vSzRIWFd5UkEyend3?=
 =?utf-8?B?ZGVkdUsvTjRqUnRjdUYrTWFoMDFkbUhtL28rZCtlVWlsS2FiL2k5UlNWenE5?=
 =?utf-8?B?ZFBqQlRXa1kyNjd4TXVNK29hRmdUTnBpSFJNeUt0MVE2WTN5VkZsUGJxVjNU?=
 =?utf-8?B?cys5S0RNZVZCYm5tOGIrM0RkNVgrR1ppT3NrYkZ5VzVBSFZUcTI5UUVoZDBY?=
 =?utf-8?B?cCtsaTBtY1A1bWhYZjlrK2xCd2dXQWYrTE5xVmRFL0hOWEhtZlBOUENGL2xy?=
 =?utf-8?B?RTRXdmlCc0FRQThwekV4aTNZaTVKU01EQm0zUkVFRnpZOTZ1bmtOMlBJMmYz?=
 =?utf-8?B?YVo5N0pET2ZyWDZiclgvRzk0KzkwSm55VDkycnp0cGlpS1hjeVVETVdGUUIr?=
 =?utf-8?B?TWRSSGhybnNpRmQwUUJCN1p2WFprQ0xCdURWZVlIeFF6VFh5K0pqRnRKVkRY?=
 =?utf-8?B?Y1VibmpWRHA1VGdWZjNPczdtN2VDTW1HbEwyY3RsbjRmY0E0U1lzeVRxYXJG?=
 =?utf-8?B?TUs3bkJqdTA5dEthbGFadFd4d0ZSK2FCb3hmc0ZkRmxCT3p1UmxCVmMzRnZG?=
 =?utf-8?B?SURjTmxFSzQ2SzJpZ3c1b1hZdHNyMDNsbVZvR2lPVHZmeHJlbWNHTzFHMlNp?=
 =?utf-8?B?M1I4UVhETjZUOUFJY2ZrOTVxTWlCQjl5d1EzL0JwVzl1UXRwREpmVVk4QXRR?=
 =?utf-8?B?M2VFU0lXWFhiQ25QU1ZOdThEc095a2pNcENNZzFOK1RpOGNDemxNbVJScmJC?=
 =?utf-8?B?WlJEZUdaNVNpdkdEbkt4dmlndnJ6Z0dIR2ZiNkM1TWtmc0NCZjM2dC9GRlR4?=
 =?utf-8?B?NnhMTUZFMEU0VlJyQ082VVhPUXYvZ25yOG94aUJVNHdUZnB4TFRvL290b1RM?=
 =?utf-8?B?TW11NGNjVTl2Mi82aVIrZlhrWlVSVVVhZUpZL3FjODNMSWxiS2s0WkgvL0J1?=
 =?utf-8?B?NTJkSlNrUnNlUEhXZUpuRVkzTkRHTjFxTElLc2kvN1hzc2NVb1gwS1lEZVVj?=
 =?utf-8?B?bkNIdmZpNFAvTm5ScVhRalhUQmVZQ0lWSHI5Rkt2dzQyS3RzOEsxOXQydUdD?=
 =?utf-8?B?RWlCL1lZajlXNUQ0eXVvQWl2a1lVNlNzUXR1Um5JclBNV3duK0R2ZnBIbGhY?=
 =?utf-8?B?R0d6MDVtRTd3YXhKcmNVN2xkUkU5WEJIbjJuK2JsM0pqcDN5VlBEMzlDRThT?=
 =?utf-8?B?dmNhY0tHcmQ0QzlWcXF5UE5XTVRkTGxOcWJhcnRvd2QvR0N2clF5QWJvckJa?=
 =?utf-8?B?bVZQZzhDcXFhWVB4dHZnS3JITWV4STJrbkE5WWJIbjcxcmwxSWtCajlmNXZh?=
 =?utf-8?B?T0RvcG95SVFhcEZEQmN0OUJoTlNLR3JCMHJCaDh5SUJUTEVhdWo2a3FvQ2g3?=
 =?utf-8?B?S1NaOVFPMFdQa000enorTk9nR0lhSUEza1FpSTRjUlp2RWo0R0dvd2dxSTUz?=
 =?utf-8?B?Zm10Vk1MK0dtVUxoY2llU0ZZckF2djMvUTBJNSs1MXZDRXRwNnk2aTJ0azRE?=
 =?utf-8?B?TWkzM0dZTjl0KzF0UEJPNWlRdXNyS2E5Z0RFTmI0YTV0cnY0UWhyTjg1M2Ro?=
 =?utf-8?Q?Q1S0=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(7416014)(1800799024)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2025 17:11:45.4014
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a1592a96-8d2d-405a-c0fe-08de380f3266
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB74.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6116

On 2025-12-10 11:55, Andrew Cooper wrote:
> On 09/12/2025 9:47 pm, Jason Andryuk wrote:
>>          . = ALIGN(4);
>>          __alt_instructions = .;
>> -       *(.altinstructions)
>> +       KEEP(*(.altinstructions))
>>          __alt_instructions_end = .;
> 
> Thinking about this, what we need is for there to be a reference tied to
> the source location, referencing the replacement metadata and
> replacement instructions.
> 
> Looking at https://maskray.me/blog/2021-02-28-linker-garbage-collection
> might be able to do this with .reloc of type none.  In fact,
> BFD_RELOC_NONE seems to have been invented for precisely this purpose.
> 
> This means that if and only if the source function gets included, so
> does the metadata and replacement.

Yes.  Thanks for the reference.  I'll take a look.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 18:15:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 18:15:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183147.1505928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTOiR-00027O-SF; Wed, 10 Dec 2025 18:15:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183147.1505928; Wed, 10 Dec 2025 18:15:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTOiR-00027H-PA; Wed, 10 Dec 2025 18:15:07 +0000
Received: by outflank-mailman (input) for mailman id 1183147;
 Wed, 10 Dec 2025 18:15:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=iyob=6Q=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vTOiR-00027A-5S
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 18:15:07 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 256d8f89-d5f4-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 19:15:03 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH1PR03MB8141.namprd03.prod.outlook.com (2603:10b6:610:2b1::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Wed, 10 Dec
 2025 18:14:55 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Wed, 10 Dec 2025
 18:14:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 256d8f89-d5f4-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JLgdbTe8T/Yv/k6i27QFWFbGBLTaIprVXDK2s5AJHk8sgPgUh7moH2QQvvvICdsOyTTA29mbxaolWPRd/GRUp1eijECelqlPMMYQQQIa3US2uVe3OqoounKkepZTRVEUHCA+343Ei3wNc2/Ns2vg9RQ0KSMhnY2JVD7BXdbp31CkBB+7xnXKcpLEz/2QKu2+MPHXYn3i4rB43eCJhb1eN2EJskMEYvVDIhJx0KucRh6lu09hqehhNGYmHD9jkxSOc7kgiGZywGZ//6Lu03SHk13lKr84l0c0oCHKwiLUiLC44MeXMYIUvmuxmcCcRrvWmH6QS+xCjY+vj+9mXpJcgQ==
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=FmHYiP/muL+WgF/N4oyKcLRcdukKzJtj+6Ynv9ZhJ+s=;
 b=dfMfPdaZhKD0/RMOQ0wNzozPzgg3WkbHBoCuEvQUnJfq580h87sWxihtCN+GIme97HjzGAYCS4+1UIJpBgl+ceAndh0dV6x9UNmBadXxTQ8U8pVK1et8KiWi7vdt9957Z9Y260x19C+tJT6iKQSOMkKl2biZ6YYXfPV9nn3otQW2WObwyjKceii6QGmSpuL662kknFFeO4JOM/rGd2QySSYnUiqWqT2lQUgPacKPfnX/v+OWykB22QbQ98jPM3Zug1LvmRJpVUZsjuvPsqeTtOGTPdo3V8zrNijsWKzk6g2BbHZVB0ke50YaD3w/4hDxxOlD/KjifbgY57Q2XDNR2g==
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=FmHYiP/muL+WgF/N4oyKcLRcdukKzJtj+6Ynv9ZhJ+s=;
 b=PmBlh/QaXjlTRh7w+vvblhkNzw+5HG76fbmNlEQHdoSXRUSuFErZud5KlBKJtWMPzCgSPUmGXG6ZZMPjwrdl/YcZzPerjiE6H55JSh2E0E2KBui+6RPMPxSL9wyu68OcS5KivlxI56gvV2U+pFLAKQM5FaXORr7c3oDIFPgPhiY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <7744f9e7-17da-4f48-837d-8fc087899af5@citrix.com>
Date: Wed, 10 Dec 2025 18:14:51 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>
Content-Language: en-GB
To: xen-devel <xen-devel@lists.xenproject.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Stefano Stabellini <sstabellini@kernel.org>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Current Eclair analysis
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0260.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:194::13) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH1PR03MB8141:EE_
X-MS-Office365-Filtering-Correlation-Id: e90b15b6-a59b-4ef1-5e48-08de38180540
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NnBIOG9yNDdKQ1RRYVVKVVhFTVBrSWJjNHlTK2wwTEdSUlA3aDRXc3JKaG5B?=
 =?utf-8?B?WWR6TUlYUmdYSTZyUlZXbjAyN2ZveC9tYi9WQnRSK2xNRWxPM010akEreUdV?=
 =?utf-8?B?YXhJbThmbXYyUGFBUnU4aUQvQlc5Si9lTmJlc0RoYzRQczdDK1pUUml2a2JO?=
 =?utf-8?B?cGdZZkQvSG9ub3dqVUZ1TXpHQ3IwTHZzQ0N5TWVaUUtyZ0lrYkhrREVkcFZN?=
 =?utf-8?B?ODlGSEFmbyt1Tjh2MHRkamc5L3FobVZ0YUczYXptZklzQjBtNk9UNVBQTzZ4?=
 =?utf-8?B?dG5qamVSd2FyK2gvTUZXWnVrOGNxV0tuYUVmQTU0bG12cnd0Y1NWYWVOckta?=
 =?utf-8?B?elphR1ZTQVBLWHZXcjVoWWFIWEp2OUxHV1FNUEp1SE9qZ25XVXJ1cThtT3Qw?=
 =?utf-8?B?WE1RVjgvN0s4Qm9rVGhJN2U1SWpqNHVYUHFKZVl3NHJGZ0NMdCtBQXUrRkV5?=
 =?utf-8?B?NjB1MWtLV0o1WWtjU281VnpZSGNyWHBianA5Nm9YTDF6M0FYUVlRZU1Kamp0?=
 =?utf-8?B?bWdNOHZRT3BaeG1FM3pSa2NYZ2kvWkt5TjM5K1FYVUhFektZQUZWZmtEbFg3?=
 =?utf-8?B?K2hDbFpuUEFtZ3hodm5GaGFPd29BNGdKTmF4UkRBTXk4amZZNHM3bUl6UDd2?=
 =?utf-8?B?K0l1UVFpVWlxK1VvY1ZzR0NUQlhpaUNxZk8vdjRCajBDMy93TFcrRU83Qjdp?=
 =?utf-8?B?Mm0xNUJ4M1k4Z1ZHb3NiTzlOQ3Z4Z0M0MmNnVDlmUkdGRVlQWlZTc3lhQTJ2?=
 =?utf-8?B?aG1MRTRRSEVsbmQxUzJPR0tIWm5NNzhuY1cyTldtcy9LM0lZY3VsR280UERN?=
 =?utf-8?B?WFdTSG5ZWGhydk4xMm5vRXNhSXgwQThuRnordmZ2QTdOR3R5OFV1UHAxQ2M2?=
 =?utf-8?B?dC9VSHRnbC9RTlZLdnN4a2VZcUJrWTRkY1gzeFBqc2dQWWZYNEl4ci9QWm1h?=
 =?utf-8?B?TkZkSmlleHhWSGNSbU82TEJudFlHSm9KYklobmJKZVlrUUpSMStSZGVGT0g4?=
 =?utf-8?B?MXZ5RGh5NW5OUFFFZzEvUHIrUUNMV1Jocmg0aUt4bWdSYUllRjRkYy8wbkdx?=
 =?utf-8?B?S0R0RWUxckVWU1dsbXdzUnlVcmppOFdRdkY1VnlVNDBJYzZiQXptZGxQZ0xm?=
 =?utf-8?B?ZDZtRjhKZzNaOVd6TTNicy9mZXFMRVZQUnovTGpkOHpIdHlQbmlBcDZNUGV1?=
 =?utf-8?B?cnBaejdHTWtSYXZkcytMQW43aWRqWFZHSUdmOE9FVUdhbEloUEg2dEU3bjF4?=
 =?utf-8?B?Kzl1dk9RN0o2UGZ1ODdCQWlMRjUwcmdpNm5TRUI0TDF4SFAxSktPNXMzcERT?=
 =?utf-8?B?MVRScnZCbWhxNFJVQ21Pd0JHTnhvYVN4UEdhbHIrbEo0ZUJlQTlSRjJjQit2?=
 =?utf-8?B?NlJOSjFEbENVdkxTdFNBSklqcGp0QWRRTTZyQ2tlNytrdlQ0aEt1UzNoSzlC?=
 =?utf-8?B?THBCb2hDM3lxSDZxTXZMSHRXQ1FUYUhFQmtIRmFuaHhRQW1hSHFqNmp3MHds?=
 =?utf-8?B?a1k2clBJNW9wc2R3TFQrdTRpaVhXYzJXd25mWm1TUkxnNG11YVM1WDNvVzQ0?=
 =?utf-8?B?bG1OT2N6L092Q0MyOWx5ZklHcG5YSi9ualg2YWs1eVo2TGtTKzNXays5RkRQ?=
 =?utf-8?B?bEJXK25YdEZkSHZ2cGVqRU9wcUtRLytjcFNWNHNZbmdNb05HS0ZmUC94QlNy?=
 =?utf-8?B?dUFvaTRKRjQzczlPQ1AwSndDVlVNb3U1VmpPRjd4YVAvaWIrWWJkdTJiZFVO?=
 =?utf-8?B?WVdFVHlMdEVEMW9Xam9HSTVRVmt6bFN0cThyNXUyTHpia2hvR1hRSUZIYU5N?=
 =?utf-8?B?T2NvT3R3SitRbDhEVksxd3Y5V2RHdTZFa0FONGJtdU50OExlUXlTa1gzYlda?=
 =?utf-8?B?TVd6ZFkxYWU4RzMzblNqbEdQS1VTejViUUhXa1ZKRzAzVU9nMVo0UEpXLzN4?=
 =?utf-8?Q?G4ILdy9VTjimwKkCoQ7sSqpJMIdIUOUb?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?M25qMWlBcWwrOW9rTDhlTWYzN055bHNjU3UyQ1B3T3k5THJObVgrVy94diti?=
 =?utf-8?B?bm15b09wdmozSURkNklOOUZqNW9CRm00SHhOR29JeFNOQVJ4WFBFL0JOQXo0?=
 =?utf-8?B?S3JqYVZ6ZVJDNnBpT3lWSUFNV2c2UC9Rc0Jkbk5JTDVPR2Z0RUJwRmVMU2Zn?=
 =?utf-8?B?NDdqZjZUNmordHhOVkw4bDRrNU9qY2JabzVzd0RxMDRPdVR5N0ZnazVHM1Fu?=
 =?utf-8?B?QmtoZUJCcVpNSmtvOUg2T0tUN2c4WlpQRmMwZkNtRmNCL0ZFZGVwTXFtK21a?=
 =?utf-8?B?a1h4TW5IT2d6V1plbityMTlqaVVCUHFZQm1odmlxcHBJWXRIUmFic25KOWsy?=
 =?utf-8?B?bExkU0hqNTRyeTNjV3hLSi9OSVpwNUNvRHZNWmdsQWdnbHE4c1pieDRtb0Jp?=
 =?utf-8?B?NC93YjRpcGNkWS9NL3RUN0x5WG4yek5TN1pkY3lmbVNBWTM1VmN1NEk5Wlpq?=
 =?utf-8?B?cjdXSVI4V1BwZ0c5YWhMdXl0aEdPandsWTQ3NnZsa2VCNGsrbzhQcE91U2dX?=
 =?utf-8?B?MkVXZ1NMWkpVZmQySDU3WmFCZmdjbVF6TUtwU3RHbjhTNTloMG1wU1dFd25i?=
 =?utf-8?B?MFJBMlhqY2FJTjAyblNKWWZMZ2dkRXlJRjZpZUIxNTAycU93eUU4YTBzZUcz?=
 =?utf-8?B?SUVrdERUZ1NidElmUnM3OWhFZUhCd2xiT052ckFhb3MwVWFScmFoSU9oK1ZO?=
 =?utf-8?B?aEFEalFSWjdqczNwNmxkaXRwYnhHQnNSb0M0SkQ5dnQ4NDFXSXNIRndDVmRj?=
 =?utf-8?B?S2dsS0tMcGxlK3FNSWFlSUtwYkJxRHNScjU2T3g3eXVCVk5WZ2xjYStzc3Mv?=
 =?utf-8?B?VDBLbkpCa21uMmljLzA5c1NBVDhHNlFMNFZrTExIYnpSbFR6OE9EZ0E0RTA2?=
 =?utf-8?B?WllvUFo3OTZoa2tkdU1KOWY5Znh1R2FwdG5zMi96WHdYejM4d0NMdGMxdXNy?=
 =?utf-8?B?dzdKdjZvWkZSYXBOekVCNDJkditacVZFMnR5LzdIVVJtM2VwV25yNExGVC90?=
 =?utf-8?B?V3R4TDhPUWhZV3FKTU5hQm1oSGlJbVh3UC80NlRVblZja2t2b2d4a24vY2d2?=
 =?utf-8?B?clJnZCswV1lGd21CMEhOeElyNkxIcjNtV2lvZW5yNlRyR1pnVUFUTVFySElB?=
 =?utf-8?B?dGUxOGJwbHowMnJ2WG95QUd3RUFsQnA1bW5jUWRWbEtMRGRXWDJQT3pNajNT?=
 =?utf-8?B?bkdRRHMxYm1MMU13elZQVTdNdzdXMTJpSlgrUVFMdlJLVzErV2laUG1CUlpF?=
 =?utf-8?B?MUU4Mld6OFRVR3lRNzVrcXM1SzQ0TE5ERE1weGZzaFVHbUF6NXhiVTBPYmRO?=
 =?utf-8?B?Tmt2SG9NdGZoUlVaekFpYzNvUVlnaERZVjBWMVRtQnYrWk42TjYrajk3WFh3?=
 =?utf-8?B?eEw4N212NktsMXFUVVhwaE13eTIvVXNsUHFQM3VJK3FlSEZPdjQvdmtFYU9H?=
 =?utf-8?B?enlNSXZHNWNoNkozNHpWajkvbkFTSnJSbUZEQ1pTc0NzZWFPYmYyZDlldCtJ?=
 =?utf-8?B?Z1NWcWgzRUx3NUQxYXU5S0krMnZiQmZTVXF2Z2NuT285UURkSzVGTnJ5bWRq?=
 =?utf-8?B?bnhvQVRVWVRKWHBGYXRrRE40eVVZVy9BYXdHZ1RDeVl0eENCbmY2dEhZQjlt?=
 =?utf-8?B?S0FYci94clpZYWhucXVXZmVMUzdoQzNhZkFIS3FrbDhqL0V5ZDV5em01c1Ez?=
 =?utf-8?B?TkJPSXhjTk52ZUpPQ3JEQytMZ0hGT1hCbmZqdFBkTW1LRlkrZkJ6QmliMnh0?=
 =?utf-8?B?TlVMMFZxblROWHVOaHJoVkpUT0YwckpGVG96ZG00Z25iaytQK2JOMXBEQzlN?=
 =?utf-8?B?UUxrM1FTSGZKS1lUai84LzhTVnE4czdUY3UvMXdnOUdiWG1uYzI5d0l6MmpQ?=
 =?utf-8?B?VXBqNmxIM1dXTURSQVFMVkJuaW5CdnFBWWJJdGVBT2JNMmQ5eEc4TlhMdlZF?=
 =?utf-8?B?Q0phV1F3NVR4SmhtK0lnclZCVk94K2QrQWJrbHJiUUJwREo4ZitsNW03SUpN?=
 =?utf-8?B?ZVJjSTRRVWhSMnZ6S1poZkt2SlZnUk5tZWZYZ1ZTaXczSStNL1NEdW5EYUIr?=
 =?utf-8?B?cmRTamw3L0dWV2NINE5RSjVLZm1lemZtSWE5QlB3QWNzdGgxZFgrQ1JyVlBy?=
 =?utf-8?B?cEFOeXlwSm1peFlwQ1U5dGpEQkxwTUc2anVpbkxzMzFEWFFPVUJKZFpzck9I?=
 =?utf-8?B?dnc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e90b15b6-a59b-4ef1-5e48-08de38180540
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2025 18:14:55.3280
 (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: LaYutiHYZaZQzJJD9xTDZa5TeR+8ATOc2PoCeKZ3aWCjy2Xyb3dfDRpBUfOW9Hcv9HtH4bt2UkEaGbWeJNB+SVhLdPdY6gAX9r9VUiFiaMM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PR03MB8141

Hello,

The Eclair step is now the dominating aspect of wallclock time.  While
the recent changes were a step in the right direction, we need some
adjustments.

First, we have *-testing running in all cases, but my understanding was
that that was supposed to be for deploying a new version of Eclair.  Can
we make this be generally off?

Next, jobs are scheduled in the order they appear in the yaml file,
which means the general ARM one goes ahead of the safety target.  Just
something to bear in mind as changes are being made.

While the x86 runs are non-fatal, having them fail is still gets in the
way of trivially telling that the pipeline is green.

The names, -safety and no suffix are a little problematic, seeing as
everything here is for safety use.


Overall, what I think we want is something more like this:

Jobs named as *-all and *-amd.  After all, it's AMD's safety target
specifically, not necessarily someone elses.

The *-all targets want everything possible enabling. Ideally we want
something like Linux's COMPILE_TEST, but in the short term we can just
adjust the input Kconfig.

Like we had with the common configuration and the per-arch
configuration, I think we want to express the clean rules as common,
with a wider (a.k.a stricter) set used for the *-amd target.

The longterm goal is to get the *-all targets as strict as the *-amd
targets, but right now because there are no blocking clean rules, it's
easier for regressions to slip in.

This brings us back to the debate about the excluded files from external
sources.  They still need fixing one way or another.  Do we see about
including them for analysis in the *-all targets, or leave them excluded
knowing that whomever need to unpack that can of worms needs to do a lot
of fixing anyway?

Does this sound sensible?

Thanks,

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 18:30:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 18:30:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183165.1505939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTOxG-0004ny-4O; Wed, 10 Dec 2025 18:30:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183165.1505939; Wed, 10 Dec 2025 18:30:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTOxG-0004nr-0H; Wed, 10 Dec 2025 18:30:26 +0000
Received: by outflank-mailman (input) for mailman id 1183165;
 Wed, 10 Dec 2025 18:30:24 +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
 <SRS0=unxu=6Q=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vTOxE-0004ng-Mw
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 18:30:24 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4a54a1a1-d5f6-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 19:30:23 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-477bf34f5f5so1052865e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 10:30:23 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a886affb4sm1696105e9.3.2025.12.10.10.30.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 10 Dec 2025 10:30:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4a54a1a1-d5f6-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765391423; x=1765996223; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=kX0BnQjLkxw4b7NtyPZf2HiVtTesHp/TiHF829/9NyU=;
        b=YcXBx+M4O2ldbiDAtUQfQ7MD9kLSDLHVHYT8/zUqT8M+vgjU2a4up47+Oa5skPR2P9
         HnKiOUfrt5nfTDTZvXMFqwWTPs/PZTq3DXVZtogi2rT1bWR2aDacIvGHPSJtF8mkv9jo
         CJ8VAMPPswjFBauWx1srfijP0w1tCmOG0UfPw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765391423; x=1765996223;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kX0BnQjLkxw4b7NtyPZf2HiVtTesHp/TiHF829/9NyU=;
        b=AHBM2cxdcb6cu5gsG0Jm0we1FpHTbIxrmZcxaog5pHN/ihs0RZjwHGN/rpn2InENrc
         xcdXiSCPOqfCFpWL4HZGZwdA1wuz3cfgd7Q27uU1GtZiSbvkdDT0y+oRoPNanAEUg0zc
         A3LvekoiluT5j379iUS0spPYvyYdmpwTSM616orXtzY/P80y26Alb7X0FOf4Rpmgnpat
         pWHYTmLYX6mZy9KF8EZu0bFfhN3qRBFqcR1AodzUEs+uL7eVHI1Jr84g+J+LbBOMINyR
         WJ5E7+8RNW7Lauq2pZ7xKnk2HCKHFq3lfbhUYOozShi3hlRQwsd7WaGWZla48GEYr50C
         X+jA==
X-Gm-Message-State: AOJu0YyBsmRRkCgl0VdQgrHjoKQXSkcvlwuPUY8VNU0iYDbVUs92fMj8
	+eBtqLB3JqPk1u/pP7Vg0nGmd4Jy7t+fv5kMXMDEqhMyKLvtpbfT4IWAZxBR7f5WldOfuDpRKGp
	mHdkx
X-Gm-Gg: ASbGnctW1vNFSLAbjfzhdv378FIpx2nAzcf9vaBRlP0FHeOyLmp1DbIIMXHf1CnGyRP
	wHFZ+AahX0Whuqi9BYCKufdD6/IUsNQENYLIa6CWg4bOkyJ1tC3fmnCI+lpRZ6MTIr/GhyIX95g
	2Rltzeb9Zb1k80PkkPr6rgtm4QpR9IQ5pZTqTujhAB2RAtJ8+6WPM8TWNSn7J7Cuhi+a191BkTn
	piSVu2UcMguDXY9FixcxFKNGcuBnEtwvfLObpGaQhovmQ9RQpqcai8raLpR/TM7t4fSqA1RZnd5
	AaK8/WtSyj1crNO+F2Ob0kX8DXQ63/ooUZQ/gGn5jGktvsf2SoYXG8enlxMBdd3Oj12XxZXi1pz
	hdXzxljIqXtfyHBWMaJB93HrAEf38knAm4irMXO3qWyIZpMbWeYaTN5f6qjpAJoxdA1g4lUkKMN
	VEoTWGOt46sTr0Tv+cVUomdTs1GmfXAn10RsqAFQ2m8lGXhJEC/UEETkEqX9xU0q8n4ba9JAzK
X-Google-Smtp-Source: AGHT+IFU6JITU8o2nJIEqiTdkLIvLVimFBrJMuX9mRKvaW6cov6LgdYnS0v4tHz6Y6fFli0zpR36sQ==
X-Received: by 2002:a05:600c:528e:b0:477:fcb:2256 with SMTP id 5b1f17b1804b1-47a8378c79emr42205655e9.17.1765391422672;
        Wed, 10 Dec 2025 10:30:22 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 0/5] x86: Misc MISRA fixes
Date: Wed, 10 Dec 2025 18:30:14 +0000
Message-Id: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the wider testing, some more violations have been spotted.  Address some
of the easier ones.

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2207505665

Andrew Cooper (5):
  x86: Misra fixes for U/L suffixes
  x86: Name parameters in function declarations
  x86/ucode: Don't cast away const-ness in cmp_patch_id()
  x86: Fix missing breaks
  x86: Fix missing brackets in macros

 xen/arch/x86/cpu/microcode/amd.c    |  2 +-
 xen/arch/x86/domain.c               |  1 +
 xen/arch/x86/mm/shadow/common.c     | 12 ++++++------
 xen/arch/x86/mm/shadow/hvm.c        |  1 +
 xen/arch/x86/mm/shadow/multi.c      |  2 +-
 xen/arch/x86/mm/shadow/private.h    |  6 +++---
 xen/arch/x86/pv/descriptor-tables.c |  2 +-
 xen/arch/x86/pv/emul-priv-op.c      |  3 ++-
 xen/arch/x86/pv/emulate.c           |  1 +
 xen/common/livepatch.c              |  1 -
 xen/common/livepatch_elf.c          |  1 +
 xen/drivers/passthrough/vtd/dmar.h  |  2 +-
 xen/drivers/passthrough/vtd/iommu.h |  2 +-
 xen/include/xen/elfstructs.h        |  2 +-
 xen/include/xen/kexec.h             |  4 ++--
 xen/include/xen/livepatch.h         |  2 +-
 xen/include/xen/sizes.h             |  2 +-
 17 files changed, 25 insertions(+), 21 deletions(-)

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Dec 10 18:30:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 18:30:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183166.1505948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTOxH-00051L-9q; Wed, 10 Dec 2025 18:30:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183166.1505948; Wed, 10 Dec 2025 18:30:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTOxH-00051E-6z; Wed, 10 Dec 2025 18:30:27 +0000
Received: by outflank-mailman (input) for mailman id 1183166;
 Wed, 10 Dec 2025 18:30:25 +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
 <SRS0=unxu=6Q=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vTOxF-0004ng-Q1
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 18:30:25 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4b5a0a7b-d5f6-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 19:30:25 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4779a4fc95aso7699205e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 10:30:25 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a886affb4sm1696105e9.3.2025.12.10.10.30.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 10 Dec 2025 10:30:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4b5a0a7b-d5f6-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765391424; x=1765996224; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gXlGQkwfcCxQQOprXhg3Avtbe6KMUEWZIGR1FuxDrBM=;
        b=jWpgI23WpVKistLs/0n37uNhuTJiWeNj8nnqBp7TZwKd4cb14P4cCACxhfiSV5yd/Q
         vU/4cXe76vAPJlax9L6rfE14OoQFzs7dgmKQ3TFezmOeW3BNkmUVupCg/KXalRCROHTb
         d8MuBZPSOqAUx0150oTjabgptaTKq/PB1KG98=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765391424; x=1765996224;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=gXlGQkwfcCxQQOprXhg3Avtbe6KMUEWZIGR1FuxDrBM=;
        b=XRHubag904gUhkDTtPIA8mlcFPJ5rqLhIftr6i0OGAyVUW5YJPxke7K3qfIlgOCCfD
         nO30FugR3juQseFERNmd6itYrusiX2WZoFRfY5Ndo6MWIVwwhQIpPvi14m9wb3/KVfeh
         OzsFgVI4BBgNWDjX2MZrIX7q1SadYr3WJRN5MQbOMclSoXCghYXHfQ4N7z9z+sKyXat4
         3tRixgJTkmC/gPUfSppIKo30x2b4qvEqYAD+/p61jHtDKgQdkM8WmCa+3tB7RpeMRMWY
         VhVSQv9LifoHMnj+TAXFv5k0qElf98Lcczzk2BJNyIGamiOS5Q8NwG6Bd4poUnaPTGLp
         2NCg==
X-Gm-Message-State: AOJu0YzVR3Yyrerg1cJrteYYned5eCPUfbGE2SP6q3wrs7Az080YpIl0
	PeuISky1J6G6ItaE3w//fBu4h8pOwLYQMC6iAzFdta9fHhskFIurDIjt4ulqry5+ODJmqM/05qG
	uwdKx
X-Gm-Gg: ASbGncu/dFDUkjsR4OuQifAFS98L+U0FW8B4swVzIMFDf3cHMGI000E6mXwvk9w8HW+
	bRDgS2lQrhjs/6Z6nexkRoU49ZCc8/4WWLPFJXMMG18nHJ/Lh+2X2qXJn509l149ISELL2TOTRH
	MtuMRVGTwVeXWoOh6jJPRl+ZJnTP00+EqSjR7CqQd96/KjA3gB/7grAuP/DPiZXekHx4GjxNSLg
	rwlxFVrrZTmM/AMU85C9jxOTlxKFCxPB9UZpH3OPBcmTaaQojjmbJk+awsE6m+o6Hr+SuVzl5VK
	SeU6WRsPZnx0TqbRmdu42dRPRGadFk1/9fZ6AEVlwQ7fAE/fyC2VY/V1EOtWW7+HWP0Gza7CdYH
	yteg/QNx2gF0EEFRBdUmOt6Gf/v9Jwp6ovmmGn10l2wCTh9Jk/NdG1qtdJ3MXg1QOCeSHZpItgo
	uxWucsvFlgYCgSxPHulP11vVOhHr7kL6Mdvq3aIOGjlCt7XxAQWhZ+dD0uWIfc2M087D/PdrWL
X-Google-Smtp-Source: AGHT+IG6IxhUYRlqB9519aXljEJ/a6K9eF2sKqb96XyJ+RfzgRL02xBb1EsXo11siJK5f5VrHBFIFw==
X-Received: by 2002:a05:600c:540f:b0:479:13e9:3d64 with SMTP id 5b1f17b1804b1-47a888cd013mr4093975e9.15.1765391424407;
        Wed, 10 Dec 2025 10:30:24 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 2/5] x86: Name parameters in function declarations
Date: Wed, 10 Dec 2025 18:30:16 +0000
Message-Id: <20251210183019.2241560-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the wider testing, some more violations have been spotted.  This
addresses violations of Rule 8.2 (parameters must be named).

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/mm/shadow/common.c | 8 ++++----
 xen/arch/x86/pv/emul-priv-op.c  | 2 +-
 xen/include/xen/livepatch.h     | 2 +-
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index 423764a32653..f2aee5be46a7 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -69,11 +69,11 @@ const uint8_t sh_type_to_size[] = {
 
 DEFINE_PER_CPU(uint32_t,trace_shadow_path_flags);
 
-static int cf_check sh_enable_log_dirty(struct domain *);
-static int cf_check sh_disable_log_dirty(struct domain *);
-static void cf_check sh_clean_dirty_bitmap(struct domain *);
+static int cf_check sh_enable_log_dirty(struct domain *d);
+static int cf_check sh_disable_log_dirty(struct domain *d);
+static void cf_check sh_clean_dirty_bitmap(struct domain *d);
 
-static void cf_check shadow_update_paging_modes(struct vcpu *);
+static void cf_check shadow_update_paging_modes(struct vcpu *v);
 
 /* Set up the shadow-specific parts of a domain struct at start of day.
  * Called for every domain from arch_domain_create() */
diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index 225d4cff03c1..08dec9990e39 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -40,7 +40,7 @@ struct priv_op_ctxt {
 };
 
 /* I/O emulation helpers.  Use non-standard calling conventions. */
-void nocall load_guest_gprs(struct cpu_user_regs *);
+void nocall load_guest_gprs(struct cpu_user_regs *regs);
 void nocall save_guest_gprs(void);
 
 typedef void io_emul_stub_t(struct cpu_user_regs *);
diff --git a/xen/include/xen/livepatch.h b/xen/include/xen/livepatch.h
index d074a5bebecc..3f5ad01f1bdd 100644
--- a/xen/include/xen/livepatch.h
+++ b/xen/include/xen/livepatch.h
@@ -62,7 +62,7 @@ struct livepatch_fstate {
     uint8_t insn_buffer[LIVEPATCH_OPAQUE_SIZE];
 };
 
-int livepatch_op(struct xen_sysctl_livepatch_op *);
+int livepatch_op(struct xen_sysctl_livepatch_op *op);
 void check_for_livepatch_work(void);
 unsigned long livepatch_symbols_lookup_by_name(const char *symname);
 bool is_patch(const void *addr);
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Dec 10 18:30:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 18:30:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183169.1505968 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTOxJ-0005O3-7s; Wed, 10 Dec 2025 18:30:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183169.1505968; Wed, 10 Dec 2025 18:30:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTOxJ-0005LR-3C; Wed, 10 Dec 2025 18:30:29 +0000
Received: by outflank-mailman (input) for mailman id 1183169;
 Wed, 10 Dec 2025 18:30:28 +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
 <SRS0=unxu=6Q=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vTOxI-0004ng-E8
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 18:30:28 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4cd9e046-d5f6-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 19:30:27 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-47118259fd8so918205e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 10:30:27 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a886affb4sm1696105e9.3.2025.12.10.10.30.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 10 Dec 2025 10:30:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4cd9e046-d5f6-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765391427; x=1765996227; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xUBQ+EjjlmRnrYL1o1ghPld6WT4JV9PjEtakOWMelRw=;
        b=VKvrRrGZiOOcN1P1IfR4SgxWwv17ROavzzQ5BFF5qTSxSU2EDC8GmD5HRVrnyigqrW
         TqJ05dyjFAHdyYz6wx9W3p6b9lWl/a/WRE+JRvdAioUcpY1Z3YYrxfbfCw6zNEQG+YSP
         IvG6O0Ndgw/Wla+ng+2dagM7/2lavTcn/vVAI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765391427; x=1765996227;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=xUBQ+EjjlmRnrYL1o1ghPld6WT4JV9PjEtakOWMelRw=;
        b=r+Qpgbxk9GjXAHnAHn8hpO+Ub4bHacT5v+C2q63UeuSQH1g3CSdwNKipXswj/r2W2h
         RzG6fuhVqFd2l2f7/afy5jVXEfdxYTBfGLYt6M+2TWRZBuUaMJ9U6rmfldpMyapJw8iP
         c9EszjUcHUQHBZyVeL9BSM+cz+iX6NzB9JVxm3bswAJ+Z/qrV42CTE+G3TQ7Q58CMpiY
         8ydToyIOkPpk3MfXuKtW4DMS17NyMp0mf+zWKxPnh5Ltn/nriw2DZ937UUcv4ND7cG6r
         RUGIjbfgNLcQQfVlNf44KJBJJo3ZeOpt7PANGwG9ODEx0mI9JkCUDkWmLyhQ/EBcx++N
         OkXQ==
X-Gm-Message-State: AOJu0YyXGMgracMHzDJurux0PngcW2S8k1eoO5Dm1+imS4OKOYTHBXOa
	3pboGNa70cO9pSt4l0BValYMkHff6qyQrkyW/0inoTtQ+Ssm0QUo0IGj0/JTMuJPQwwyAGU+o47
	E4LL4
X-Gm-Gg: ASbGncsytfJVETsp4iy/DkFippag6dZdOo+x7DbWuvL9omf3mzGVOvNsCtNPEGevIAU
	+wNN++pqpmwmRNeN6OcebQba29Uu8lyd/T0xXJXpKNZMoXwDwWJPHplzuucJy7hmfwb3FwWYPdg
	lEjhdAUxnyyPPe19TlTk+ot5MTt4oFY/28LxodFdiVZuG9RtuWEWAQ+eDx09FKYYg3daC7zTD88
	Su/p4vHXwwWkaqN5QvKW+bY/un6GiV1f1JDmr4tiIPMbLXVR1tzf7oIpU1D/SvFDGLdk0kE8Ucf
	Q1Bv6cou9ozTq5BHb0KPWTiuQQMjsYK60nChN/qib8bYfRkHGuoucyWMAyzNBgEmLXPZvsQHlZD
	yw+GhgijUn754Tql3dQul32ybjF7BxbvE+ljD+VqtJMiCJw7oyig53lU/Kxl9qyClF6fH1QLx/1
	Z2NDP2a6oUigxTuVzfJghJnBO/Df+pOSoh3WcRriS9SzQDp+T31G+1d/xx5Z/fUw==
X-Google-Smtp-Source: AGHT+IGHzYeimNoaPx8M3atd7epetX7tgiDEdgF73E1tDPW3yjPZvnhoUx8aBX88w2lQfEP4Yji+Qg==
X-Received: by 2002:a05:600c:8010:b0:479:3046:6bb3 with SMTP id 5b1f17b1804b1-47a837aca24mr29805455e9.23.1765391426830;
        Wed, 10 Dec 2025 10:30:26 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 4/5] x86: Fix missing breaks
Date: Wed, 10 Dec 2025 18:30:18 +0000
Message-Id: <20251210183019.2241560-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the wider testing, some more violations have been spotted.  This
addresses violations of Rule 16.3 which requires all case statements to be
terminated with a break or other unconditional control flow change.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/domain.c          | 1 +
 xen/arch/x86/mm/shadow/hvm.c   | 1 +
 xen/arch/x86/pv/emul-priv-op.c | 1 +
 xen/arch/x86/pv/emulate.c      | 1 +
 xen/common/livepatch.c         | 1 -
 xen/common/livepatch_elf.c     | 1 +
 6 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 5e37bfbd17d6..b15120180993 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1517,6 +1517,7 @@ int arch_set_info_guest(
         {
         case -EINTR:
             rc = -ERESTART;
+            fallthrough;
         case -ERESTART:
             break;
         case 0:
diff --git a/xen/arch/x86/mm/shadow/hvm.c b/xen/arch/x86/mm/shadow/hvm.c
index 114957a3e1ec..69334c095608 100644
--- a/xen/arch/x86/mm/shadow/hvm.c
+++ b/xen/arch/x86/mm/shadow/hvm.c
@@ -268,6 +268,7 @@ hvm_emulate_cmpxchg(enum x86_segment seg,
     default:
         SHADOW_PRINTK("cmpxchg size %u is not supported\n", bytes);
         prev = ~old;
+        break;
     }
 
     if ( prev != old )
diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index 08dec9990e39..fb6d57d6fbd3 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -407,6 +407,7 @@ static void _guest_io_write(unsigned int port, unsigned int bytes,
 
     default:
         ASSERT_UNREACHABLE();
+        break;
     }
 }
 
diff --git a/xen/arch/x86/pv/emulate.c b/xen/arch/x86/pv/emulate.c
index 8c44dea12330..b201ea1c6a97 100644
--- a/xen/arch/x86/pv/emulate.c
+++ b/xen/arch/x86/pv/emulate.c
@@ -120,6 +120,7 @@ void pv_set_reg(struct vcpu *v, unsigned int reg, uint64_t val)
         printk(XENLOG_G_ERR "%s(%pv, 0x%08x, 0x%016"PRIx64") Bad register\n",
                __func__, v, reg, val);
         domain_crash(d);
+        break;
     }
 }
 
diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c
index 9285f88644f4..b39f8d7bfe20 100644
--- a/xen/common/livepatch.c
+++ b/xen/common/livepatch.c
@@ -1924,7 +1924,6 @@ static void noinline do_livepatch_work(void)
                             p->name);
                     ASSERT_UNREACHABLE();
                 }
-            default:
                 break;
             }
         }
diff --git a/xen/common/livepatch_elf.c b/xen/common/livepatch_elf.c
index 25ce1bd5a0ad..2e82f2cb8c46 100644
--- a/xen/common/livepatch_elf.c
+++ b/xen/common/livepatch_elf.c
@@ -347,6 +347,7 @@ int livepatch_elf_resolve_symbols(struct livepatch_elf *elf)
                 dprintk(XENLOG_DEBUG, LIVEPATCH "%s: Symbol resolved: %s => %#"PRIxElfAddr" (%s)\n",
                        elf->name, elf->sym[i].name,
                        st_value, elf->sec[idx].name);
+            break;
         }
 
         if ( rc )
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Dec 10 18:30:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 18:30:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183168.1505964 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTOxJ-0005Ik-0P; Wed, 10 Dec 2025 18:30:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183168.1505964; Wed, 10 Dec 2025 18:30:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTOxI-0005IK-Rw; Wed, 10 Dec 2025 18:30:28 +0000
Received: by outflank-mailman (input) for mailman id 1183168;
 Wed, 10 Dec 2025 18:30:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=unxu=6Q=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vTOxH-0004rG-PA
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 18:30:27 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4bc302cf-d5f6-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 19:30:26 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-477b198f4bcso810175e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 10:30:26 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a886affb4sm1696105e9.3.2025.12.10.10.30.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 10 Dec 2025 10:30:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4bc302cf-d5f6-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765391425; x=1765996225; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=K1BDD7FU2KbDO2LpONmlE2QWUa+uDn0AG5zZpbddTqA=;
        b=RymjeU0CRf+6FgVNSRuIM9uPnr0/8J4SW/MIQoNs7NgwYwxSJR3sBR0JzMnZWhCfpW
         /8t7Srly6JkHjRWKaSUjf7nErd+T/9Fd96iJkQRn9MhnUPqr5/ZqCzqdHbhQeYJIemb3
         6UCDTwlUK/ndSnvQD54ekRKOumUy1pz48vzMs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765391425; x=1765996225;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=K1BDD7FU2KbDO2LpONmlE2QWUa+uDn0AG5zZpbddTqA=;
        b=Sei6D66c3FafjTbTNzETX6bDPRJH7lvovCOI7ufvsmyjw5R/0hkqSVgw45e3ji/bSE
         EaGuEb6abtMM5dBUKNelJ4EO9cxLMoDCPhfkMtTpXr4f9lfZfHCxbS6D812fSdKD7jXl
         7a6scEfmCz8QpqDkT0eHE3kZ/rXQdvuod/RK1YsO4YJzRX1KaTYbTJ25kLJ1Tfe6vioZ
         lccmJw2j3hJnna3yjKXZwS/dm3vdEQZVtjrlEdNotuSK4HOYDSqEDB5nud2OcwG+FfCP
         zwkJ0T4yy3sENmx4Ek0ztqRSzFvCyNz3vfG/eUH45HLmG5z10KoAaQCsGCg/5Yg1SNbH
         nkvw==
X-Gm-Message-State: AOJu0YygC6CgT6W2l7pIR+JE/tbiJkXi4xDVadvlRB4CZUGvraIDfV0W
	dsDqb46T2mbxlN47KgTy2T5xhMpobjPlThcsegozvd4JiitZn0jQNU0aMq8+SNbkgj79i4Bh9Yu
	UXhdP
X-Gm-Gg: ASbGncvCMV7+GkH0dzJzxy10MeBZ4YeLTk1rTQkq961zA1TqCGMCZvXkOxGHaKCik0i
	Ga9qwpEkziDYqJwXa6I3WxehGdvv4Zsigk+MCiDcU0sC0Z6jDSNbOrnNAGHp5H6Mnx5+UQNIwxM
	1MMdMIWW8kuUp5lCzfsYwQtBahNg0N/UOFFg3MriSkbeIV9FzDdKMGXYC1UStjpVWwxv7WTYrLX
	g0MZUvGdof8AeLn64P5SYhxbjvJBKADDYN90yE5JVPcicRPSPhJbXsRpT6TqPa2f3iez4oPNdvl
	EsL8oa1qH9LplwQ1dQYQFaytcskFJMTQln7y0oEfiAMbi/DFbq/Gcl4vKVyx+i7rAiKJFmxzHy0
	ZkegYHPAmpTzhDcD8Cl7DXau//kZfd8Kyp9DRntQspzwfCtQ611IsAfkj+/oaEPpu4lJNQzCxzX
	YZPoOkAlBk7r0JwMmcdjbDM83/i5WAARUU2Umv4nze96LgNCTP6McI7cqwvw+ieg==
X-Google-Smtp-Source: AGHT+IEr4Y8PkStPG4zGSMxCSFZBZDTsQfD0Kyr3C/3gqLQBePGhx4GFQopxn2FsQ249G9Iwc5iwOQ==
X-Received: by 2002:a05:600c:3496:b0:477:333a:f71f with SMTP id 5b1f17b1804b1-47a83790c18mr38065175e9.17.1765391425247;
        Wed, 10 Dec 2025 10:30:25 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 3/5] x86/ucode: Don't cast away const-ness in cmp_patch_id()
Date: Wed, 10 Dec 2025 18:30:17 +0000
Message-Id: <20251210183019.2241560-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fixes a volation of MISRA rule 11.8.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/cpu/microcode/amd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/cpu/microcode/amd.c b/xen/arch/x86/cpu/microcode/amd.c
index adabe6e6e838..2760ace92177 100644
--- a/xen/arch/x86/cpu/microcode/amd.c
+++ b/xen/arch/x86/cpu/microcode/amd.c
@@ -106,7 +106,7 @@ static bool __ro_after_init entrysign_mitigiated_in_firmware;
 static int cf_check cmp_patch_id(const void *key, const void *elem)
 {
     const struct patch_digest *pd = elem;
-    uint32_t patch_id = *(uint32_t *)key;
+    uint32_t patch_id = *(const uint32_t *)key;
 
     if ( patch_id == pd->patch_id )
         return 0;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Dec 10 18:30:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 18:30:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183170.1505986 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTOxK-0005pG-Ip; Wed, 10 Dec 2025 18:30:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183170.1505986; Wed, 10 Dec 2025 18:30:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTOxK-0005oR-DZ; Wed, 10 Dec 2025 18:30:30 +0000
Received: by outflank-mailman (input) for mailman id 1183170;
 Wed, 10 Dec 2025 18:30:29 +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
 <SRS0=unxu=6Q=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vTOxJ-0004ng-E8
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 18:30:29 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4d569813-d5f6-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 19:30:28 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-47a80d4a065so638245e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 10:30:28 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a886affb4sm1696105e9.3.2025.12.10.10.30.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 10 Dec 2025 10:30:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4d569813-d5f6-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765391428; x=1765996228; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NS1EndFYbpf3vAxuQ4QceAjOVlxSaNZnyI0peaJbSIU=;
        b=dyq2ATgaxwe7QbZherysmV565u7KHN01w4CystAmvsH6Qg3zWBOnZdOz5w6Vqf2QX7
         YpnAwOJmJ2XixqzBaOWKLqDKSDCCla69OckNtdDsxJKNnKIPdrz3zDIxojy78bPDn8Wp
         Dh8hY+1KfkJlOhrFGfiCz5rTH/8zSTpB1kfbc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765391428; x=1765996228;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=NS1EndFYbpf3vAxuQ4QceAjOVlxSaNZnyI0peaJbSIU=;
        b=oIYWTkKaP0SoUdqOTQp74a5xYMAJryNmxb8zz0WZYLt++NfjkPEYry1idnl2Reos4X
         iWMDgC62TEfaX/BJVnY+6dDiAWBMlndB3gn6B26aYOVMbIkuBNIOzeqUe9YWGIvYKYgP
         Dv3/33zqimRDZGR8y8fQgTNCW0/MenCWH0r6ybtNFf88zBXZgS7NoRTXPtucJMTg6b/W
         /7v8r7Rc069DeDOfE0exzXmHsrNPFW+WjOoo1uW18jUJqbzuIzcAThieFaF25Hiz19+r
         6HWeqpD7T1xQb8qticoZ3OJeHVTNrvupFwV2xitFqhXXXmMXYLaqM7pvItKr2t0Qs4P1
         VXhw==
X-Gm-Message-State: AOJu0Yz+nXxNXeDXE8ox6SWBhSgRYjMsoBD5J/j/cP+3tcyAtQTrhEqz
	3hc51pSaIQO8m2McNHvhYBCsUOmEqPGTDqVRwOIZOvTsQRCQlglTMwtTcehH93ab61FWPt1Gcoy
	45i7o
X-Gm-Gg: ASbGncuQJ+X7DDiEYmmnVD2gpKCjc7BEDGBwVtEJYoKkVdWQ/Fj6kVoWeBQhAkHJW29
	tzw/sDMLQbTYS4v6r4VzePbRWcYdYqwW47dTr5jp/PDiY7HwHdR5lbe9dLYABOWwgU1cuWiD4UX
	CDL5V7LGXjHhvGdi+4vkpDOD4cAxezDzuXn9gmUz4rOz/Tu468sGzX5bnDzBrPov53KBjGlpBX2
	CxWrPSdGe/GX3xciCPbiJqcZAHQCwzvRKhdILUSmNOishQ9/hPPgHvQIl0Ls0zjfc3pU8dltMRj
	TEcFv5xg/u/AcUlpihY7K1e2GnP+VV2aKE+V6N7ahY2QRIDLlzcMPMRNUXm41za06itFlsnXi+G
	48UZO+gzBQ2UGB9aiQqQqpOMbU1GTViZU3AzG/Xzx3z8TwvUo2X8jfGXssxitZINmpDG7d/AujZ
	r3BM195Ov3zCXlUegsIn6f5CWyEJjis9GoVGlXnhrodoMx6hkYUlg34xfbsHNh6oLxpkUr6QvT
X-Google-Smtp-Source: AGHT+IHD0K0/goDBgvQ0eFH4wZgG9dS6dBkYuhuXnCJuEuZJfSb+0YcfcBuj17vO+utCkeybtuqlLQ==
X-Received: by 2002:a05:600c:c48e:b0:46e:33b2:c8da with SMTP id 5b1f17b1804b1-47a8384857cmr31691765e9.32.1765391427782;
        Wed, 10 Dec 2025 10:30:27 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 5/5] x86: Fix missing brackets in macros
Date: Wed, 10 Dec 2025 18:30:19 +0000
Message-Id: <20251210183019.2241560-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the wider testing, some more violations have been spotted.  This
addresses violations of Rule 20.7 which requires macro parameters to be
bracketed.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/mm/shadow/multi.c     | 2 +-
 xen/arch/x86/mm/shadow/private.h   | 6 +++---
 xen/drivers/passthrough/vtd/dmar.h | 2 +-
 xen/include/xen/kexec.h            | 4 ++--
 4 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c
index 03be61e225c0..36ee6554b4c4 100644
--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -781,7 +781,7 @@ do {                                                                    \
         (_sl1e) = _sp + _i;                                             \
         if ( shadow_l1e_get_flags(*(_sl1e)) & _PAGE_PRESENT )           \
             {_code}                                                     \
-        if ( _done ) break;                                             \
+        if ( (_done) ) break;                                           \
         increment_ptr_to_guest_entry(_gl1p);                            \
     }                                                                   \
     unmap_domain_page(_sp);                                             \
diff --git a/xen/arch/x86/mm/shadow/private.h b/xen/arch/x86/mm/shadow/private.h
index cef9dbef2e77..93834ec55c42 100644
--- a/xen/arch/x86/mm/shadow/private.h
+++ b/xen/arch/x86/mm/shadow/private.h
@@ -636,9 +636,9 @@ prev_pinned_shadow(struct page_info *page,
 }
 
 #define foreach_pinned_shadow(dom, pos, tmp)                    \
-    for ( pos = prev_pinned_shadow(NULL, (dom));                \
-          pos ? (tmp = prev_pinned_shadow(pos, (dom)), 1) : 0;  \
-          pos = tmp )
+    for ( (pos) = prev_pinned_shadow(NULL, dom);                \
+          (pos) ? (tmp = prev_pinned_shadow(pos, dom), 1) : 0;  \
+          (pos) = tmp )
 
 /*
  * Pin a shadow page: take an extra refcount, set the pin bit,
diff --git a/xen/drivers/passthrough/vtd/dmar.h b/xen/drivers/passthrough/vtd/dmar.h
index 0ff4f365351f..11590f71a828 100644
--- a/xen/drivers/passthrough/vtd/dmar.h
+++ b/xen/drivers/passthrough/vtd/dmar.h
@@ -124,7 +124,7 @@ struct acpi_atsr_unit *acpi_find_matched_atsr_unit(const struct pci_dev *);
 do {                                                \
     s_time_t start_time = NOW();                    \
     while (1) {                                     \
-        sts = op(iommu->reg, offset);               \
+        sts = op((iommu)->reg, offset);             \
         if ( cond )                                 \
             break;                                  \
         if ( NOW() > start_time + DMAR_OPERATION_TIMEOUT ) {    \
diff --git a/xen/include/xen/kexec.h b/xen/include/xen/kexec.h
index e66eb6a8e593..5dd288d1a50e 100644
--- a/xen/include/xen/kexec.h
+++ b/xen/include/xen/kexec.h
@@ -66,9 +66,9 @@ void vmcoreinfo_append_str(const char *fmt, ...)
 #define VMCOREINFO_PAGESIZE(value) \
        vmcoreinfo_append_str("PAGESIZE=%ld\n", value)
 #define VMCOREINFO_SYMBOL(name) \
-       vmcoreinfo_append_str("SYMBOL(%s)=%lx\n", #name, (unsigned long)&name)
+       vmcoreinfo_append_str("SYMBOL(%s)=%lx\n", #name, (unsigned long)&(name))
 #define VMCOREINFO_SYMBOL_ALIAS(alias, name) \
-       vmcoreinfo_append_str("SYMBOL(%s)=%lx\n", #alias, (unsigned long)&name)
+       vmcoreinfo_append_str("SYMBOL(%s)=%lx\n", #alias, (unsigned long)&(name))
 #define VMCOREINFO_STRUCT_SIZE(name) \
        vmcoreinfo_append_str("SIZE(%s)=%zu\n", #name, sizeof(struct name))
 #define VMCOREINFO_OFFSET(name, field) \
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Dec 10 18:30:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 18:30:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183167.1505959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTOxI-0005FK-Na; Wed, 10 Dec 2025 18:30:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183167.1505959; Wed, 10 Dec 2025 18:30:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTOxI-0005FC-IJ; Wed, 10 Dec 2025 18:30:28 +0000
Received: by outflank-mailman (input) for mailman id 1183167;
 Wed, 10 Dec 2025 18:30:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=unxu=6Q=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vTOxG-0004rG-J6
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 18:30:26 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4ac86b91-d5f6-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 19:30:24 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-47790b080e4so567385e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 10:30:24 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a886affb4sm1696105e9.3.2025.12.10.10.30.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 10 Dec 2025 10:30:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4ac86b91-d5f6-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765391423; x=1765996223; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ti+Hvm59056La23/HEYy2xtiFbDlfvWnYziHMb4xycg=;
        b=rAbAuGK+pR6jmJYMG1fapUrZNKVOsnxbdrstyG5U0QLxbMhv/ml7mhFsPTXNw+UBz/
         ztV3YPzBj2reYH3wW3SwJQpA8GU6jROue8lmix8/iPb/bkj2frt1I+7AEKvaZWlRWtvK
         +1bSmOZ484XH5iDfRMipUGdLh4I2uGeOaYzOI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765391423; x=1765996223;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Ti+Hvm59056La23/HEYy2xtiFbDlfvWnYziHMb4xycg=;
        b=cKbxJf1lXFXYVG87f00v4BFcbSRIt4iRu+v+CFehjpPvCmM99DjCwAzUGVZ8IjXkio
         Fbw7XR+F4pTvgwDErsJwbxCA2nLTGGRlxS+ng6ugCwkqqYxBedVSNxzGe+lOAqA25nN+
         f2EIdef3aaTO4+8wSHrnYCsfwe/49QjcwGXuPuuZNH2E8MatoAGNxsHrCLQm7E/DKrum
         /Bmw2/CZCkP4Hswum7vQ2BUqL+MMCPBqE3M4L2UGAizJmiVTu+hJVP0WNWA7hWXAm287
         4BS51utWCJLl9fNfZQ+1i4Yon4rFB9yjuB7wmMNUG4ImN2kxcG3LaBsB24e2uCiRXz89
         B/mA==
X-Gm-Message-State: AOJu0Yw7d0Fh4GcU0AmFw58IiwX0S8eeYW2KnWnXfJLb7lBP7I7nB+ej
	28czw/vrYATg8ntbGf/C1AFg9PzLhxfedHxDMSedINp193yC9vzMVFhNAkN2EKO0AcwczN0YAvl
	3yjum
X-Gm-Gg: ASbGncuc4n+jYkLbUos2/+jiIhPTMrLzk22cQLXnGU7fIv5I9KSXPlP9PjJ5rh+XZKk
	2yZH8AukJdNPsARvRzJFN5rX4Kw5SZT646CTknTiC24mrCciIOUXD60eXzUQ+695t8DQeuiAty0
	R8WejmMQ76C22Pz0GYklBal97oEFW8/GjMQp2ZlWUhmRuH5cABr+CxiwozyFEOPBuxLAqIIWfQL
	Eg/JuotCY4w0g2Fgu8etihly5Odkk2VUljO87AehB7PwwcqXQiy7CqRCdW3xVaSydP7kcw82l9N
	NjJLa81CZLnxP9emUUstZMv1H1v7qbI/8oAtKAYavB/CQIcu/8kxw9hxAdLnqlGo5gON+qs3gbP
	JX14+6/6WaHPohVW58L12q8EYk2dJUCvnh3xb9gzvbcfgwYUgJJuEJjUBGmACe5H25YYr1qWHwH
	RRapk4IMyuwH45qfLpnmmVHSal2i/+E9HM7lP/K6FaQbNQe2gvUCtSwAa/qlWJRw==
X-Google-Smtp-Source: AGHT+IFSBGzM681v8a/IFHC4hCHLgFm92UNB1QnWymlV4pjLJLX0hFH+xN5vczoOq4b96y7TcM6aTw==
X-Received: by 2002:a05:600c:1e24:b0:479:3a88:de5e with SMTP id 5b1f17b1804b1-47a8385368dmr24338165e9.37.1765391423515;
        Wed, 10 Dec 2025 10:30:23 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 1/5] x86: Misra fixes for U/L suffixes
Date: Wed, 10 Dec 2025 18:30:15 +0000
Message-Id: <20251210183019.2241560-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the wider testing, some more violations have been spotted.  This
addresses violations of Rule 7.2 (suffixes required) and Rule 7.3 (L must be
uppercase).

For ELF64_R_TYPE(), cast to uint32_t matching the surrounding examples.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/mm/shadow/common.c     | 4 ++--
 xen/arch/x86/pv/descriptor-tables.c | 2 +-
 xen/drivers/passthrough/vtd/iommu.h | 2 +-
 xen/include/xen/elfstructs.h        | 2 +-
 xen/include/xen/sizes.h             | 2 +-
 5 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index 0176e33bc9c7..423764a32653 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -1961,7 +1961,7 @@ int sh_remove_write_access(struct domain *d, mfn_t gmfn,
              /* FreeBSD 64bit: linear map 0xffff800000000000 */
              switch ( level )
              {
-             case 1: GUESS(0xffff800000000000
+             case 1: GUESS(0xffff800000000000UL
                            + ((fault_addr & VADDR_MASK) >> 9), 6); break;
              case 2: GUESS(0xffff804000000000UL
                            + ((fault_addr & VADDR_MASK) >> 18), 6); break;
@@ -1969,7 +1969,7 @@ int sh_remove_write_access(struct domain *d, mfn_t gmfn,
                            + ((fault_addr & VADDR_MASK) >> 27), 6); break;
              }
              /* FreeBSD 64bit: direct map at 0xffffff0000000000 */
-             GUESS(0xffffff0000000000 + gfn_to_gaddr(gfn), 6);
+             GUESS(0xffffff0000000000UL + gfn_to_gaddr(gfn), 6);
         }
 
 #undef GUESS
diff --git a/xen/arch/x86/pv/descriptor-tables.c b/xen/arch/x86/pv/descriptor-tables.c
index 02647a2c5047..26f7d18b11b5 100644
--- a/xen/arch/x86/pv/descriptor-tables.c
+++ b/xen/arch/x86/pv/descriptor-tables.c
@@ -216,7 +216,7 @@ static bool check_descriptor(const struct domain *dom, seg_desc_t *d)
              * 0xf6800000. Extend these to allow access to the larger read-only
              * M2P table available in 32on64 mode.
              */
-            base = (b & 0xff000000) | ((b & 0xff) << 16) | (a >> 16);
+            base = (b & 0xff000000U) | ((b & 0xff) << 16) | (a >> 16);
 
             limit = (b & 0xf0000) | (a & 0xffff);
             limit++; /* We add one because limit is inclusive. */
diff --git a/xen/drivers/passthrough/vtd/iommu.h b/xen/drivers/passthrough/vtd/iommu.h
index 29d350b23db6..4f41360c53c0 100644
--- a/xen/drivers/passthrough/vtd/iommu.h
+++ b/xen/drivers/passthrough/vtd/iommu.h
@@ -266,7 +266,7 @@ struct dma_pte {
 #define DMA_PTE_PROT (DMA_PTE_READ | DMA_PTE_WRITE)
 #define DMA_PTE_SP   (1 << 7)
 #define DMA_PTE_SNP  (1 << 11)
-#define DMA_PTE_CONTIG_MASK  (0xfull << PADDR_BITS)
+#define DMA_PTE_CONTIG_MASK  (0xfULL << PADDR_BITS)
 #define dma_clear_pte(p)    do {(p).val = 0;} while(0)
 #define dma_set_pte_readable(p) do {(p).val |= DMA_PTE_READ;} while(0)
 #define dma_set_pte_writable(p) do {(p).val |= DMA_PTE_WRITE;} while(0)
diff --git a/xen/include/xen/elfstructs.h b/xen/include/xen/elfstructs.h
index eb6b87a823a8..8770e7454672 100644
--- a/xen/include/xen/elfstructs.h
+++ b/xen/include/xen/elfstructs.h
@@ -360,7 +360,7 @@ typedef struct {
 } Elf64_Rela;
 
 #define	ELF64_R_SYM(info)	((info) >> 32)
-#define	ELF64_R_TYPE(info)	((info) & 0xFFFFFFFF)
+#define	ELF64_R_TYPE(info)	((uint32_t)(info))
 #define ELF64_R_INFO(s,t) 	(((s) << 32) + (uint32_t)(t))
 
 /*
diff --git a/xen/include/xen/sizes.h b/xen/include/xen/sizes.h
index f7b728ddab06..d309ebf04406 100644
--- a/xen/include/xen/sizes.h
+++ b/xen/include/xen/sizes.h
@@ -43,6 +43,6 @@
 #define SZ_512M                         0x20000000
 
 #define SZ_1G                           0x40000000
-#define SZ_2G                           0x80000000
+#define SZ_2G                           0x80000000U
 
 #endif /* __XEN_SIZES_H__ */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Dec 10 19:57:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 19:57:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183243.1505997 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTQJJ-0000hS-Ux; Wed, 10 Dec 2025 19:57:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183243.1505997; Wed, 10 Dec 2025 19:57:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTQJJ-0000hG-SJ; Wed, 10 Dec 2025 19:57:17 +0000
Received: by outflank-mailman (input) for mailman id 1183243;
 Wed, 10 Dec 2025 19:57:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TEw+=6Q=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vTQJI-0000hA-S9
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 19:57:17 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6bf83a53-d602-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 20:57:14 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id A97A14EEBC5F;
 Wed, 10 Dec 2025 20:57:12 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6bf83a53-d602-11f0-9cce-f158ae23cfc8
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765396633;
	b=lH1ezkjPm2E5jujt6/CVXJ3FRRJdtriabdTSYLdm3XxjjJ6nl0QEUp99ag/IpeiloaI0
	 65Y2Wl8t2cemdIPYB9rPZh7K8XQJyPDzysv0X22XSNgvpz1L0QCZE8U1N5E8dnAta5Vhw
	 Ku7o5aIrjEdltnCn9CPoFLvWxWVoMCGzG7iW7Oj4Kumdu0V+U9FgbooMxhnm1Pm/5+cbL
	 wZl5JOm3LjAz+myQc1Ey6wwQZUL7SfrijjXgEN+BLlBNN84cjHGkTd759HjmbjKM67tAx
	 wvAa4d8WTkMZzyiFYWjswP00fc4bCQz8lm7FIO9D4Mov+Hknz1MIB7gc7lW07hpG/HVIY
	 GPzqCBOS8inoqLEdH8fR4uM0Nt7dJ5SvgXwFtOWPcHe9/Y3tdewA/bdPRQSF9Fc+9PFxX
	 Cy8XSge53FyduNH8JcxcbHieaqtIMWYiMcKdLDbZUtErmdSMfNyeQdMbXIr/8f9N9c6qg
	 dD6yyMWFToar04BZvRe0r5mYAWRrVTRjcKxMSy7pmp6KWbmgMtx66ou/R2rfqoGNTIjsb
	 1/gGeyRAKDiFI5Clp7DMOMqQgoRMJ3GRXhbqKu3uhg08AN5aLBl6napUMCDrTF4RwbTPR
	 QIRnzj/wtWRC8jgo3WCmF8Y0BRUBXTfhV17Vzq2BF7AJHY/O3IiGgzq0477qonQ=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765396633;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=7J6GIQn5bTLCjTeCDKUsD1gTByVSwkcqv4+C7fH0DJY=;
	b=Lvzu7sGyCXF7sTGdfkDOyE9a8obHO3WcuwXfR95WHq1I+RGxIK1Tqzb1DsDU7aHIy0qR
	 W4nIuGomzFswrYmrFGuXXxholZyib+4w3yBzWXU7E67v9Zptp+YZnNQ/bMk9H8DrMDWWE
	 UP4MIErXhMJu9mj5wnFDU1vMLmxs9ZGDP9y6eQpfIHLuWG6klvCn0gMgw03bhamYdXXaj
	 oThM/ei5dC3h5gB6E5fs6aDtURwPY2+zPJjDmLbXR9ir89RVVqLYVCvDECPaYACFfHh1G
	 i7nUi6MjjtB0pOET0ooYHDUufc0/ta6nED80a5UxB1xpVmn4dQhBLrkDALNkIk+WIaips
	 cxpiX82KhItiP9Tie0OH2IS98vn9EXrG+dB7Rpp3FS2VLkacGd89SYnQPkCtSLkaVo9kT
	 nqQ1UHrchqMCowNcTJz/RRmG3c1WHGvpa4wpDEp1zMggT1JpILLI4p5DCyIuM0j/NYeJL
	 IdjwGo+hSB/20TSaQfydOul8OxRb8efFCTfUrshdb5YOZZ7q8haCGY3tOzNz7VSEV0TN/
	 N2cgmeE/cTrevMy7DIuYziUIreDhn33fFCfm/rlxZk8t0LrLalO1nU4xx9+GdMgOeljzr
	 kFiB/I6tSBsp4ng88ttGYUQu9vwVUmKJAMStDYQ5C3h5k4qhKugmDaRr2SdEu+k=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765396633; bh=eN8zEt5MfY/mWZ3uL7CkZJ2gZpIrKLlnT5UjS3fKzvU=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=ThjBtr+S9I46Lm2PyFaVP34xx/L1+CceuzMxpj50uJAcqa4CRmWsRyiFjqNDRMWRT
	 /Yg+gHdbJfZbOw6j52II/LfyxxIdkyupJmoDB3hzfaT/KqgV+O0VjcSZUkg3iX5czx
	 ZfyJrdkSmOk5a3FnG//cKOwAt7knpZQHEReFFN8XPzT1enNzIwkOCzwKXJjslTo2wU
	 jSk6afPG4IyacpR9397re4/IE7EnquYggPq5igxnz+qQxGwXKMz3FLTxmtzKS4zyj8
	 wBIU/wX6AsawbCHLeb/d86PzUodQ/1VKUqTr+ysN9xKPw49bvDN+KzNRqe5eqZlvzO
	 zD7n2+stmiaeg==
MIME-Version: 1.0
Date: Wed, 10 Dec 2025 20:57:12 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?R?=
 =?UTF-8?Q?oger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Bertrand Marquis
 <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Anthony
 PERARD <anthony.perard@vates.tech>
Subject: Re: Current Eclair analysis
In-Reply-To: <7744f9e7-17da-4f48-837d-8fc087899af5@citrix.com>
References: <7744f9e7-17da-4f48-837d-8fc087899af5@citrix.com>
Message-ID: <5becde412c1496f392d184763fe34442@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

Hi Andrew,

thanks for the feedback, it's very appreciated.

On 2025-12-10 19:14, Andrew Cooper wrote:
> Hello,
> 
> The Eclair step is now the dominating aspect of wallclock time.  While
> the recent changes were a step in the right direction, we need some
> adjustments.
> 
> First, we have *-testing running in all cases, but my understanding was
> that that was supposed to be for deploying a new version of Eclair.  
> Can
> we make this be generally off?
> 

Definitely; it was an oversight on my part when testing the patch, 
because I used a repo/tree that was supposed to run those *-testing 
jobs. As soon as I can find some free time to work on it, I'll 
investigate and send a patch, unless someone beats me to it.

> Next, jobs are scheduled in the order they appear in the yaml file,
> which means the general ARM one goes ahead of the safety target.  Just
> something to bear in mind as changes are being made.
> 

Well, but the general one should be allocated to the larger runner that 
runs both safety and non-safety jobs, so in my opinion this is fine. 
When the *-safety jobs start, they'll be picked up by the less powerful 
eclair-safety-runner one at a time.

> While the x86 runs are non-fatal, having them fail is still gets in the
> way of trivially telling that the pipeline is green.
> 

See below for the consideration about clean rules, but the idea is that 
we can get rid of most of those fairly quickly. I did glance at most of 
those, but the time I have for preparing patches is quite scarce. I see 
that Michal has done some work already on Arm; I did share with him a 
few half-done patches that I have in a branch of mine [1], and I will 
also take a look at the series you just sent.

[1] 
https://gitlab.com/xen-project/people/bugseng/xen/-/tree/eclair_pipeline?ref_type=heads

> The names, -safety and no suffix are a little problematic, seeing as
> everything here is for safety use.
> 
> 
> Overall, what I think we want is something more like this:
> 
> Jobs named as *-all and *-amd.  After all, it's AMD's safety target
> specifically, not necessarily someone elses.
> 

Well, depends on how you look at that: the *-safety jobs have a fixed 
config, while the configuration for the general Arm and x86 jobs may 
vary as Xen changes. That being said, I don't mind changing names 
personally; I just went with what seemed more natural at the time.

> The *-all targets want everything possible enabling. Ideally we want
> something like Linux's COMPILE_TEST, but in the short term we can just
> adjust the input Kconfig.
> 

Ack

> Like we had with the common configuration and the per-arch
> configuration, I think we want to express the clean rules as common,
> with a wider (a.k.a stricter) set used for the *-amd target.
> 
> The longterm goal is to get the *-all targets as strict as the *-amd
> targets, but right now because there are no blocking clean rules, it's
> easier for regressions to slip in.
> 

Ack. I tried to start simpler and then iterate based on feedback. Should 
be rather easy to craft a configuration doing that.

> This brings us back to the debate about the excluded files from 
> external
> sources.  They still need fixing one way or another.  Do we see about
> including them for analysis in the *-all targets, or leave them 
> excluded
> knowing that whomever need to unpack that can of worms needs to do a 
> lot
> of fixing anyway?
> 

I had debated addressing this, but in the end I opted to prioritize 
fixes to the violations originating from Xen code. Who wants to qualify 
Xen in the end needs to pick features/configurations, so my take is that 
everything that is not truly kept in sync with the external source 
(e.g., recent discussions about libelf w.r.t XSA-55) should be made 
compliant eventually, and then it is on the downstreams to decide on 
what to do with respect to external source dependencies in their 
usecase. Stricly speaking, they would be subjected to MISRA compliance, 
but the point is moot if they are not actually used.

> Does this sound sensible?
> 
> Thanks,
> 
> ~Andrew

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 20:09:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 20:09:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183257.1506007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTQVQ-0002S4-TI; Wed, 10 Dec 2025 20:09:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183257.1506007; Wed, 10 Dec 2025 20:09:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTQVQ-0002Rx-Qe; Wed, 10 Dec 2025 20:09:48 +0000
Received: by outflank-mailman (input) for mailman id 1183257;
 Wed, 10 Dec 2025 20:09:47 +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
 <SRS0=TEw+=6Q=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vTQVP-0002Rr-NY
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 20:09:47 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2c4b14f5-d604-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 21:09:46 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 0D2574EEBC5F;
 Wed, 10 Dec 2025 21:09:45 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2c4b14f5-d604-11f0-b15b-2bf370ae4941
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765397385;
	b=tCiti8y/KjmTrqcS5bNjlMWxTwiI+GWILojn5dDiP+46TKgicABwXybsJofzP5dCf5zd
	 O3GGdtgEDhS/47vt/TB15oWwb+kja+poSEEqHLsHAvwNleMrTAesGEHV/2xj/T+415P1k
	 D0vrZkDWnry4Tg5n62cMt7BB5GDDVwQxnGXbYzizW7zNncjRFP8EpHxY7SEw4tio383V6
	 Kr3qOYc+m3eujjU30TrGAsxDs65MtQqhDKxlTozygAx7Yi83kFjMUjW6/FaLzkL/x/Myn
	 1sY2pLpYG9mRpV2vckWb5vyewD4LCQVyu2hpv0/4ZEbgCwqvuZ/r+pzw0cOPhD7XjEneY
	 Cx+XeofEmGjg4FrGIpMsfctyM2M/FsVY+3iwDOnN9kRg0vxBBaAw3B6u1Y1ftBLkgMujm
	 xE8YUV0C757NyyhfYHJPIhAYS0DiLcFxD/wq4SlLniqUE67sYEOFM36BXVc88DCr6BVHo
	 Kkm6bJWMd8Bltx9jsv05gFiU5QDFSg1RWSnK4936qzqbObCnM2cBomlT7rtAJXATc+TrT
	 wJecFCvnCULtoZxWw6qaC4F8qejQRPw2PfdRvYF09W3tQDKqRKsPLuzoD9AGtbQo+1njl
	 8rh741nrxLbsxTc5Lsuvj/8JJzKBK3s0gVPKtTmgjUurNFXvl2HZoHXN+1TVqy0=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765397385;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=TQZSv/ZAfzAbTr1Jb7h5R+TM/7j4xM7ok+ujWemEz2w=;
	b=RdrVhgk1NGkFuZ3ID0ek4KN8N+VOs0fF1tZrg3Utprqg3qBv4F0LMhLlo0RndBDfaGBe
	 bpJxYphFVMh8DWg2QuXvpdiNL8UMq034NdstvSmIp/mpdWr/Dx3taXil8UqkVohAIONmv
	 4nUu89sci699kDi2JkJTCAYfk7vMdwIKqscZgwsbw71IkVnL61GwgAt7dqZ35gkBfkalj
	 Oxgsc+kXrYVXSXcN4HDRbB0ZtuGE4EU2Bs/wDmqw526s9UM7xWQWosmr2XcKsyPpwbSd1
	 62pyIGnggGUCYBg9rq97exy1rJCFUHeOtGWxpM5XqSrny5VPK0K6I7wOSM8K9dQQMKPf6
	 pR4nrQVyp0BpibOEHDLIRU0rhs8ayFZqP0d/LXu73VXGSsuRMvLycot53yzByHs+J3HU7
	 XEK/zbsCNh+9114c+MdWF+NtB3EFN91m2iWfu7xZqMHGXv58+UNizDnbiHG6xX2d7GduG
	 3JK+hSF81RsS5HXcisSGO2inTj2mFavolX7neqgMI8arPGlIJ6Evxov0XBDghooyrFoOl
	 kXCKKhBXHFJ/wA/tCNHslPFpZD1bubGixX1ByZXFlKZQLMwq04fwHaQptCB11x4K2uUW9
	 wpnAO7W0mGeh7eJNoMMRRMWRop8x+/JcJe0gYkGQ5E1KWjkMu9WBDfhQX32h/HU=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765397385; bh=pbRcp0ci817zxENpMK0OeYIwB1KIJsa+w5IfexFOb40=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=HZa3oyk8DxikE/NTFUerXLu9E8kM6NSQFC06tQ2diR/EyocnHK8mDGr1XCMlDW+Rs
	 D3cNnX8Kg+ItXW+SxzNweyd8cUhbNgn1rQ8MEuVP8YQf0ZcFvjmQ+/8L/g+6kBKBUC
	 CxuNFbxwc/qTx+XaGIErR8USMb95f1yQ/fup5olpV4cDKz5knQx9IayhdykBHlKSbT
	 QRWor9ZXzeZFqPCe41frZx7aTAn9gscnXK7CEQd9UQmSF87xOCIB2leOEVh9sFSB5g
	 9M8UEWFRV1JB7ccBhxuMMnoQLidPZNGjSpa0+Cic+VQhl1I6jtzDZOvZmoscl5iIYU
	 wMwO/3grlT8LQ==
MIME-Version: 1.0
Date: Wed, 10 Dec 2025 21:09:45 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
 <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH 1/5] x86: Misra fixes for U/L suffixes
In-Reply-To: <20251210183019.2241560-2-andrew.cooper3@citrix.com>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
 <20251210183019.2241560-2-andrew.cooper3@citrix.com>
Message-ID: <c9c7deeecc839295d04c5374691f848d@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-12-10 19:30, Andrew Cooper wrote:
> With the wider testing, some more violations have been spotted.  This
> addresses violations of Rule 7.2 (suffixes required) and Rule 7.3 (L 
> must be
> uppercase).
> 
> For ELF64_R_TYPE(), cast to uint32_t matching the surrounding examples.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: consulting@bugseng.com <consulting@bugseng.com>
> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
>  xen/arch/x86/mm/shadow/common.c     | 4 ++--
>  xen/arch/x86/pv/descriptor-tables.c | 2 +-
>  xen/drivers/passthrough/vtd/iommu.h | 2 +-
>  xen/include/xen/elfstructs.h        | 2 +-
>  xen/include/xen/sizes.h             | 2 +-
>  5 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/xen/arch/x86/mm/shadow/common.c 
> b/xen/arch/x86/mm/shadow/common.c
> index 0176e33bc9c7..423764a32653 100644
> --- a/xen/arch/x86/mm/shadow/common.c
> +++ b/xen/arch/x86/mm/shadow/common.c
> @@ -1961,7 +1961,7 @@ int sh_remove_write_access(struct domain *d, 
> mfn_t gmfn,
>               /* FreeBSD 64bit: linear map 0xffff800000000000 */
>               switch ( level )
>               {
> -             case 1: GUESS(0xffff800000000000
> +             case 1: GUESS(0xffff800000000000UL
>                             + ((fault_addr & VADDR_MASK) >> 9), 6); 
> break;
>               case 2: GUESS(0xffff804000000000UL
>                             + ((fault_addr & VADDR_MASK) >> 18), 6); 
> break;
> @@ -1969,7 +1969,7 @@ int sh_remove_write_access(struct domain *d, 
> mfn_t gmfn,
>                             + ((fault_addr & VADDR_MASK) >> 27), 6); 
> break;
>               }
>               /* FreeBSD 64bit: direct map at 0xffffff0000000000 */
> -             GUESS(0xffffff0000000000 + gfn_to_gaddr(gfn), 6);
> +             GUESS(0xffffff0000000000UL + gfn_to_gaddr(gfn), 6);
>          }
> 
>  #undef GUESS
> diff --git a/xen/arch/x86/pv/descriptor-tables.c 
> b/xen/arch/x86/pv/descriptor-tables.c
> index 02647a2c5047..26f7d18b11b5 100644
> --- a/xen/arch/x86/pv/descriptor-tables.c
> +++ b/xen/arch/x86/pv/descriptor-tables.c
> @@ -216,7 +216,7 @@ static bool check_descriptor(const struct domain 
> *dom, seg_desc_t *d)
>               * 0xf6800000. Extend these to allow access to the larger 
> read-only
>               * M2P table available in 32on64 mode.
>               */
> -            base = (b & 0xff000000) | ((b & 0xff) << 16) | (a >> 16);
> +            base = (b & 0xff000000U) | ((b & 0xff) << 16) | (a >> 16);
> 
>              limit = (b & 0xf0000) | (a & 0xffff);
>              limit++; /* We add one because limit is inclusive. */
> diff --git a/xen/drivers/passthrough/vtd/iommu.h 
> b/xen/drivers/passthrough/vtd/iommu.h
> index 29d350b23db6..4f41360c53c0 100644
> --- a/xen/drivers/passthrough/vtd/iommu.h
> +++ b/xen/drivers/passthrough/vtd/iommu.h
> @@ -266,7 +266,7 @@ struct dma_pte {
>  #define DMA_PTE_PROT (DMA_PTE_READ | DMA_PTE_WRITE)
>  #define DMA_PTE_SP   (1 << 7)
>  #define DMA_PTE_SNP  (1 << 11)
> -#define DMA_PTE_CONTIG_MASK  (0xfull << PADDR_BITS)
> +#define DMA_PTE_CONTIG_MASK  (0xfULL << PADDR_BITS)
>  #define dma_clear_pte(p)    do {(p).val = 0;} while(0)
>  #define dma_set_pte_readable(p) do {(p).val |= DMA_PTE_READ;} while(0)
>  #define dma_set_pte_writable(p) do {(p).val |= DMA_PTE_WRITE;} 
> while(0)
> diff --git a/xen/include/xen/elfstructs.h 
> b/xen/include/xen/elfstructs.h
> index eb6b87a823a8..8770e7454672 100644
> --- a/xen/include/xen/elfstructs.h
> +++ b/xen/include/xen/elfstructs.h
> @@ -360,7 +360,7 @@ typedef struct {
>  } Elf64_Rela;
> 
>  #define	ELF64_R_SYM(info)	((info) >> 32)
> -#define	ELF64_R_TYPE(info)	((info) & 0xFFFFFFFF)
> +#define	ELF64_R_TYPE(info)	((uint32_t)(info))
>  #define ELF64_R_INFO(s,t) 	(((s) << 32) + (uint32_t)(t))
> 
>  /*
> diff --git a/xen/include/xen/sizes.h b/xen/include/xen/sizes.h
> index f7b728ddab06..d309ebf04406 100644
> --- a/xen/include/xen/sizes.h
> +++ b/xen/include/xen/sizes.h
> @@ -43,6 +43,6 @@
>  #define SZ_512M                         0x20000000
> 
>  #define SZ_1G                           0x40000000
> -#define SZ_2G                           0x80000000
> +#define SZ_2G                           0x80000000U
> 
>  #endif /* __XEN_SIZES_H__ */

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 20:15:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 20:15:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183267.1506018 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTQbG-0003yt-HX; Wed, 10 Dec 2025 20:15:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183267.1506018; Wed, 10 Dec 2025 20:15:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTQbG-0003ym-ES; Wed, 10 Dec 2025 20:15:50 +0000
Received: by outflank-mailman (input) for mailman id 1183267;
 Wed, 10 Dec 2025 20:15:49 +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
 <SRS0=TEw+=6Q=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vTQbF-0003yg-69
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 20:15:49 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 03f39788-d605-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 21:15:47 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 34BDF4EEBC5F;
 Wed, 10 Dec 2025 21:15:47 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 03f39788-d605-11f0-b15b-2bf370ae4941
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765397747;
	b=wAnW7DL6Eg5EANgJyvr3rlG1v1sUJGiCjvdnGV8IlrVGTZu1CNXApzw2GDKqM6jPT3eF
	 2Zv1EW1hUL67DWWI9MQKiuDcPD8Zo2HW8x2oJdH1Bqy2AQm6eEH9pzKlsn8+Lsvngiq53
	 xvIPIMhJ+bNxwxO95TMhKYS48BmOUuTimq/nJJC+kwAqPlJifUIqrM75/Z9d//d8w0yTJ
	 LzQcEiR5KYScCWtGtWkC3kLtka3D4ob5KaUbuzeXlUTc+p1sCCuUqV7Xqrjw+cDL9qQ6T
	 a1wEgkBf0Lt9B0/0NgNDbT4FBQXAlrB4PsuyitxKfj55+fj7imZ813Q4Y8AgwTRmfk94q
	 Nq6HoxRnMfikiIHIXHYL9B5X20Z85tNYaCwsfdYI7hYGVlfcX+qeHqj5cRgDTuoul1ID1
	 U55Eg8om7Y5VaCiSEfwPBOLOoMElVHPfVllXW0PQbiVfAxl8mFaT4xEHGpmlZngd2RPJS
	 fc6xGbLwqyR05tqxwDljwfQoWpw1yxbBluJQeNGUvDiIpw0+Zv0PT785B5xdARfkxedwo
	 DHw6+8oG7j4y/WbmN3jYZ20UooXhvW8k6xhyRMV+Z5jCgylzaq049AaIVLs0ZxVckvzUp
	 42h6PFj7+AnT6bD1JzSLZxAzo2miED6bb+pKWRlwcRuDkRJ4IiK3CE0xDo59mAY=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765397747;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=5SWB32j6qN5Z3Umy5Yr9Qmzm4X0peIk85zVEJRMym+c=;
	b=OoNdUgXtM1ebaFWCw7F38apfrsc+O32RgB+8VbK21yt59e63iuNFBW//0TbO/NHmoeNe
	 0n46b6gxtQBCS4Qvj9E7RSF3vgHQ2j5ary0V+V85Vvb5/rShVRfuoMcGhv5+Fa4Fx0meY
	 NcQn3dMvipDt/MvRwqsSPMgZDBqqEJFqYqNAdGJN3H2SOprN8QBQ9q4uvQ/e5Ezdy5iZB
	 ZLEaTFfG1lwUPyQ4AiUVgXUfyinO1pieWWrp/wmFHy37Qw0ntkO8Ok2jeMuBzIFTmZ2AM
	 /GHFIlP4fzS1nouQJBPeMh8Q+lRHYRr6pwpO66QIkThijzJQBbC33o3FUcAtx/K/+8Bmr
	 MPMXvq+f1JGKvC5Raer55wcDDH8adaoRohYHj1uDV9mIh7JNMwOBoxN0eNPaS7BpEGfHP
	 q2c5e0V/ffN/QRjMvvwFXJsTfBEIe3ZvGlYUDHbexnpTirwmr4eiLLZUMygzl1n5E0URk
	 GTZ5yEZ1kCb86la22DKpfVUP9v67QGi7JNmXbXYK6aE19VfHqkMUlu7JBpS5pVwUn0SDr
	 MX8tCbNNfbrt8W/bbCNAA9sq4itQGEvha+3A2/zLPeZZyGliJt8cmNpPbuqn2KM9OuWuZ
	 JgSTLSpblwn+wTZEbZIc/18UHdKnJ/7ACnbyvb5Y34enk+0mLac7I6qC/bcnRiY=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765397747; bh=kJg82dbXHi0byGbCOTthmUyaYivblmEJJtIZHSAv5rY=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=I/iPFEBmh+JHsVALv5MS5SghFa1tD5amOmPvVTtysweBGgSaVuK1e8mB0AJIGmPqH
	 g/uAMRunekkY2Ndw+aoNfgdc8yfue9Xjkfv/Tr4qQ5vybzK1mLkOThubNE3Z3DQ9xN
	 RwnveL0TtZbAE8SOQLp8WXEEmYmZYmsQ3AFciycBt7u+iYQsIGP5see1Xki48vz9fN
	 c+pBbZXPe48/aNvqhgUm/1UJ9Tr101nZ+X2RnWDe9cWQzvlI8uzR681w2pGVEH8Mlx
	 DHz6AKqzlu0pMC9Us/xTfsrs0sbwobEZ7DF29v0mO/h4S6aKsS1Qct0/7dhodAy1qX
	 BHFxfHyIgZt1w==
MIME-Version: 1.0
Date: Wed, 10 Dec 2025 21:15:47 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
 <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH 2/5] x86: Name parameters in function declarations
In-Reply-To: <20251210183019.2241560-3-andrew.cooper3@citrix.com>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
 <20251210183019.2241560-3-andrew.cooper3@citrix.com>
Message-ID: <d64b368566892cf39c90f25b1ac34692@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-12-10 19:30, Andrew Cooper wrote:
> With the wider testing, some more violations have been spotted.  This
> addresses violations of Rule 8.2 (parameters must be named).
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

One nit below

> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: consulting@bugseng.com <consulting@bugseng.com>
> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
>  xen/arch/x86/mm/shadow/common.c | 8 ++++----
>  xen/arch/x86/pv/emul-priv-op.c  | 2 +-
>  xen/include/xen/livepatch.h     | 2 +-
>  3 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/xen/arch/x86/mm/shadow/common.c 
> b/xen/arch/x86/mm/shadow/common.c
> index 423764a32653..f2aee5be46a7 100644
> --- a/xen/arch/x86/mm/shadow/common.c
> +++ b/xen/arch/x86/mm/shadow/common.c
> @@ -69,11 +69,11 @@ const uint8_t sh_type_to_size[] = {
> 
>  DEFINE_PER_CPU(uint32_t,trace_shadow_path_flags);
> 
> -static int cf_check sh_enable_log_dirty(struct domain *);
> -static int cf_check sh_disable_log_dirty(struct domain *);
> -static void cf_check sh_clean_dirty_bitmap(struct domain *);
> +static int cf_check sh_enable_log_dirty(struct domain *d);
> +static int cf_check sh_disable_log_dirty(struct domain *d);
> +static void cf_check sh_clean_dirty_bitmap(struct domain *d);
> 
> -static void cf_check shadow_update_paging_modes(struct vcpu *);
> +static void cf_check shadow_update_paging_modes(struct vcpu *v);
> 
>  /* Set up the shadow-specific parts of a domain struct at start of 
> day.
>   * Called for every domain from arch_domain_create() */
> diff --git a/xen/arch/x86/pv/emul-priv-op.c 
> b/xen/arch/x86/pv/emul-priv-op.c
> index 225d4cff03c1..08dec9990e39 100644
> --- a/xen/arch/x86/pv/emul-priv-op.c
> +++ b/xen/arch/x86/pv/emul-priv-op.c
> @@ -40,7 +40,7 @@ struct priv_op_ctxt {
>  };
> 
>  /* I/O emulation helpers.  Use non-standard calling conventions. */
> -void nocall load_guest_gprs(struct cpu_user_regs *);
> +void nocall load_guest_gprs(struct cpu_user_regs *regs);
>  void nocall save_guest_gprs(void);
> 
>  typedef void io_emul_stub_t(struct cpu_user_regs *);
> diff --git a/xen/include/xen/livepatch.h b/xen/include/xen/livepatch.h
> index d074a5bebecc..3f5ad01f1bdd 100644
> --- a/xen/include/xen/livepatch.h
> +++ b/xen/include/xen/livepatch.h
> @@ -62,7 +62,7 @@ struct livepatch_fstate {
>      uint8_t insn_buffer[LIVEPATCH_OPAQUE_SIZE];
>  };
> 
> -int livepatch_op(struct xen_sysctl_livepatch_op *);
> +int livepatch_op(struct xen_sysctl_livepatch_op *op);

xen/common/livepatch.c:int livepatch_op(struct xen_sysctl_livepatch_op 
*livepatch)

Shouldn't this decl also use "*op" as well? Might not be triggered in 
this configuration due to the absence of CONFIG_LIVEPATCH I think.

>  void check_for_livepatch_work(void);
>  unsigned long livepatch_symbols_lookup_by_name(const char *symname);
>  bool is_patch(const void *addr);

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 20:28:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 20:28:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183277.1506028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTQnV-0005ud-Gu; Wed, 10 Dec 2025 20:28:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183277.1506028; Wed, 10 Dec 2025 20:28:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTQnV-0005uW-E3; Wed, 10 Dec 2025 20:28:29 +0000
Received: by outflank-mailman (input) for mailman id 1183277;
 Wed, 10 Dec 2025 20:28:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8oeO=6Q=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vTQnT-0005uQ-VQ
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 20:28:27 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c5b84a47-d606-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 21:28:23 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 7909160053;
 Wed, 10 Dec 2025 20:28:21 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6B0E6C4CEF1;
 Wed, 10 Dec 2025 20:28:20 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c5b84a47-d606-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765398501;
	bh=vsanCo2G3AwHCiY9b7Lxtntypk+e2hGp0I0VT++pKhg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=eBgPWGDFIonef9Dix31UjA1VIXWnM3eaBiaHq+0kkjwiIvyW8KmxCXPFH3jheTSSD
	 bkA2mVY8ivPzHoRoecYicUQ7Z0xJFWmx8oMkxv1OcbFXRLhCo3crWHKatED6AdWjp0
	 z9DnpDDfbLgt1yODSDlcmD0JS/Rj6ktPtXTw5jDUis7o5JIGdXSa49MQ344q9HYRbC
	 KUY1vsm6hFSs8XtFmVIxXYDsOlBySbvoxA25vLvW1E99Y6Gpbrw8zTmjwSBlrazT5T
	 4FJblQd8pFgNs2L1mVFVYxs7vTSCdVA/KRIet+ouqxwtg7B/Iz9y5J2VJ/aMYRAOB6
	 vs6NnGudg1NFw==
Date: Wed, 10 Dec 2025 12:28:19 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v4 4/6] CI: Add driver domains tests
In-Reply-To: <aTjOBpuKMSO4LzzN@mail-itl>
Message-ID: <alpine.DEB.2.22.394.2512101219460.19429@ubuntu-linux-20-04-desktop>
References: <cover.b56a66dfe4d98db2f1cc8b1fe0c2091d02cebe38.1764989098.git-series.marmarek@invisiblethingslab.com> <cf2a2544fe27fedca5129b61912c064f4be08236.1764989098.git-series.marmarek@invisiblethingslab.com> <alpine.DEB.2.22.394.2512091534060.19429@ubuntu-linux-20-04-desktop>
 <aTjOBpuKMSO4LzzN@mail-itl>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-205764893-1765398261=:19429"
Content-ID: <alpine.DEB.2.22.394.2512101224280.19429@ubuntu-linux-20-04-desktop>

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-205764893-1765398261=:19429
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2512101224281.19429@ubuntu-linux-20-04-desktop>

On Wed, 10 Dec 2025, Marek Marczykowski-Górecki wrote:
> On Tue, Dec 09, 2025 at 04:02:06PM -0800, Stefano Stabellini wrote:
> > On Sat, 6 Dec 2025, Marek Marczykowski-Górecki wrote:
> > > Setup a simple two domU system. One with network backend, running
> > > xendriverdomain service, and one with frontend, trying to ping the
> > > backend.
> > > 
> > > Contrary to other similar tests, use disk image instead of initrd, to
> > > allow bigger rootfs without adding more RAM (for both dom0 and domU).
> > > But keep using pxelinux as a bootloader as it's easier to setup than
> > > installing grub on the disk. Theoretically, it could be started via direct
> > > kernel boot in QEMU, but pxelinux is slightly closer to real-world
> > > deployment.
> > > 
> > > Use fakeroot to preserve file owners/permissions. This is especially
> > > important for suid binaries like /bin/mount - without fakeroot, they
> > > will end up as suid into non-root user.
> > > 
> > > Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> > > ---
> > > Changes in v3:
> > > - add fakeroot
> > > - run ldconfig at the disk image creation time, to avoid running it at
> > >   dom0/domU boot time (which is much slower)
> > > Changes in v2:
> > > - use heredoc
> > > - limit ping loop iterations
> > > - use full "backend" / "frontend" in disk image names
> > > - print domU consoles directly to /dev/console, to avoid systemd-added
> > >   messages prefix
> > > - terminate test on failure, don't wait for timeout
> > > ---
> > >  automation/build/debian/13-x86_64.dockerfile    |   2 +-
> > >  automation/gitlab-ci/test.yaml                  |   8 +-
> > >  automation/scripts/qemu-driverdomains-x86_64.sh | 138 +++++++++++++++++-
> > >  3 files changed, 148 insertions(+)
> > >  create mode 100755 automation/scripts/qemu-driverdomains-x86_64.sh
> > > 
> > > diff --git a/automation/build/debian/13-x86_64.dockerfile b/automation/build/debian/13-x86_64.dockerfile
> > > index 2c6c9d4a5098..6382bafbd5bd 100644
> > > --- a/automation/build/debian/13-x86_64.dockerfile
> > > +++ b/automation/build/debian/13-x86_64.dockerfile
> > > @@ -55,7 +55,9 @@ RUN <<EOF
> > >  
> > >          # for test phase, qemu-* jobs
> > >          busybox-static
> > > +        e2fsprogs
> > >          expect
> > > +        fakeroot
> > >          ovmf
> > >          qemu-system-x86
> > >  
> > > diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> > > index 7b36f1e126ca..abc5339a74ab 100644
> > > --- a/automation/gitlab-ci/test.yaml
> > > +++ b/automation/gitlab-ci/test.yaml
> > > @@ -656,6 +656,14 @@ qemu-alpine-x86_64-gcc:
> > >      - *x86-64-test-needs
> > >      - alpine-3.22-gcc
> > >  
> > > +qemu-alpine-driverdomains-x86_64-gcc:
> > > +  extends: .qemu-x86-64
> > > +  script:
> > > +    - ./automation/scripts/qemu-driverdomains-x86_64.sh 2>&1 | tee ${LOGFILE}
> > > +  needs:
> > > +    - *x86-64-test-needs
> > > +    - alpine-3.22-gcc
> > > +
> > >  qemu-smoke-x86-64-gcc:
> > >    extends: .qemu-smoke-x86-64
> > >    script:
> > > diff --git a/automation/scripts/qemu-driverdomains-x86_64.sh b/automation/scripts/qemu-driverdomains-x86_64.sh
> > > new file mode 100755
> > > index 000000000000..c0241da54168
> > > --- /dev/null
> > > +++ b/automation/scripts/qemu-driverdomains-x86_64.sh
> > > @@ -0,0 +1,138 @@
> > > +#!/bin/bash
> > > +
> > > +set -ex -o pipefail
> > > +
> > > +dom0_rootfs_extra_comp=()
> > > +dom0_rootfs_extra_uncomp=()
> > > +
> > > +cd binaries
> > > +
> > > +# DomU rootfs
> > > +
> > > +mkdir -p rootfs
> > > +cd rootfs
> > > +mkdir -p etc/local.d
> > > +passed="ping test passed"
> > > +failed="TEST FAILED"
> > > +cat > etc/local.d/xen.start << EOF
> > > +#!/bin/bash
> > > +
> > > +set -x
> > > +
> > > +if grep -q test=backend /proc/cmdline; then
> > > +    brctl addbr xenbr0
> > > +    ip link set xenbr0 up
> > > +    ip addr add 192.168.0.1/24 dev xenbr0
> > > +    bash /etc/init.d/xendriverdomain start
> > > +    # log backend-related logs to the console
> > > +    tail -F /var/log/xen/xldevd.log /var/log/xen/xen-hotplug.log >>/dev/console 2>/dev/null &
> > > +else
> > > +    ip link set eth0 up
> > > +    ip addr add 192.168.0.2/24 dev eth0
> > > +    timeout=6 # 6*10s
> > > +    until ping -c 10 192.168.0.1; do
> > > +        sleep 1
> > > +        if [ \$timeout -le 0 ]; then
> > > +            echo "${failed}"
> > > +            exit 1
> > > +        fi
> > > +        ((timeout--))
> > > +    done
> > > +    echo "${passed}"
> > > +fi
> > > +EOF
> > > +chmod +x etc/local.d/xen.start
> > > +fakeroot sh -c "
> > > +    zcat ../rootfs.cpio.gz | cpio -imd
> > > +    zcat ../xen-tools.cpio.gz | cpio -imd
> > > +    ldconfig -r .
> > > +    touch etc/.updated
> > > +    mkfs.ext4 -d . ../domU-rootfs.img 1024M
> > 
> > Do we really need 1GB? I would rather use a smaller size if possible.
> > I would rather use as little resources as possible on the build server
> > as we might run a few of these jobs in parallel one day soon.
> 
> This will be a sparse file, so it won't use really all the space. But
> this size is the upper bound of what can be put inside.
> That said, it's worth checking if sparse files do work properly on all
> runners in /build. AFAIR some older docker versions had issues with that
> (was it aufs not supporting sparse files?).

I ran the same command on my local baremetal Ubuntu dev environment
(arm64) and it created a new file of the size passed on the command
line (1GB in this case). It looks like they are not sparse on my end. If
the result depends on versions and configurations, I would rather err on
the side of caution and use the smallest possible number that works.


> > Moreover this script will be run inside a container which means this
> > data is probably in RAM.
> 
> Are runners configured to use tmpfs for /build? I don't think it's the
> default.

I don't know for sure, they are just using the default. My goal was to
make our solution more reliable as defaults and configurations might
change.


> > The underlying rootfs is 25M on both ARM and x86. This should be at most
> > 50M.
> 
> Rootfs itself is small, but for driver domains it needs to include
> toolstack too, and xen-tools.cpio is over 600MB (for debug build).
> I might be able to pick just the parts needed for the driver domain (xl
> with its deps, maybe some startup scripts, probably few more files), but
> it's rather fragile.

My first thought is to avoid creating a 1GB file in all cases when it
might only be needed for certain individual tests. Now, I realize that
this script might end up only used in driver domains tests but if not, I
would say to use the smallest number depending on the tests, especially
as there seems to be use a huge difference, e.g. 25MB versus 600MB.

My second thought is that 600MB for just the Xen tools is way too large.
I have alpine linux rootfs'es with just the Xen tools installed that are
below 50MB total. I am confused on how we get to 600MB. It might be due
to QEMU and its dependencies but still going from 25MB to 600MB is
incredible!


> > > +"
> > > +cd ..
> > > +rm -rf rootfs
> > > +
> > > +# Dom0 rootfs
> > > +mkdir -p rootfs
> > > +cd rootfs
> > > +fakeroot -s ../fakeroot-save sh -c "
> > > +    zcat ../rootfs.cpio.gz | cpio -imd
> > > +    zcat ../xen-tools.cpio.gz | cpio -imd
> > > +    ldconfig -r .
> > > +    touch etc/.updated
> > > +"
> > > +mkdir -p root etc/local.d
> > > +cat > root/backend.cfg << EOF
> > > +name="backend"
> > > +memory=512
> > > +vcpus=1
> > > +kernel="/root/bzImage"
> > > +extra="console=hvc0 root=/dev/xvda net.ifnames=0 test=backend"
> > > +disk=[ '/root/domU-rootfs-backend.img,raw,xvda,rw' ]
> > > +EOF
> > > +cat > root/frontend.cfg << EOF
> > > +name="frontend"
> > > +memory=512
> > > +vcpus=1
> > > +kernel="/root/bzImage"
> > > +extra="console=hvc0 root=/dev/xvda net.ifnames=0 test=frontend"
> > > +disk=[ '/root/domU-rootfs-frontend.img,raw,xvda,rw' ]
> > > +vif=[ 'bridge=xenbr0,backend=backend' ]
> > > +EOF
> > > +
> > > +cat > etc/local.d/xen.start << EOF
> > > +#!/bin/bash
> > > +
> > > +set -x
> > > +
> > > +bash /etc/init.d/xencommons start
> > > +
> > > +xl list
> > > +
> > > +tail -F /var/log/xen/console/guest-backend.log 2>/dev/null | sed -e "s/^/(backend) /" >>/dev/console &
> > > +tail -F /var/log/xen/console/guest-frontend.log 2>/dev/null | sed -e "s/^/(frontend) /" >>/dev/console &
> > > +xl -vvv create /root/backend.cfg
> > > +xl -vvv create /root/frontend.cfg
> > > +EOF
> > > +chmod +x etc/local.d/xen.start
> > > +
> > > +cp ../domU-rootfs.img ./root/domU-rootfs-backend.img
> > > +cp ../domU-rootfs.img ./root/domU-rootfs-frontend.img
> > > +cp ../bzImage ./root/
> > > +mkdir -p etc/default
> > > +echo 'XENCONSOLED_TRACE=all' >> etc/default/xencommons
> > > +mkdir -p var/log/xen/console
> > > +fakeroot -i ../fakeroot-save mkfs.ext4 -d . ../dom0-rootfs.img 2048M
> > 
> > Same here. Also 2GB might not be sufficient to contain 2 copies of
> > domU-rootfs.img, given that domU-rootfs.img is 1GB.
> 
> See the note about sparse files.

I double checked and they don't appear to be sparse on my system.


> > If we bring down domU-rootfs.img to 50M, then this could be 150M.
> > 
> > 
> > > +cd ..
> > > +rm -rf rootfs
> > > +
> > > +cd ..
> > > +
> > > +cat >> binaries/pxelinux.0 << EOF
> > > +#!ipxe
> > > +
> > > +kernel xen console=com1 console_timestamps=boot
> > > +module bzImage console=hvc0 root=/dev/sda net.ifnames=0
> > > +boot
> > > +EOF
> > > +
> > > +# Run the test
> > > +rm -f smoke.serial
> > > +export TEST_CMD="qemu-system-x86_64 \
> > > +    -cpu qemu64,+svm \
> > > +    -m 2G -smp 2 \
> > > +    -monitor none -serial stdio \
> > > +    -nographic \
> > > +    -device virtio-net-pci,netdev=n0 \
> > > +    -netdev user,id=n0,tftp=binaries,bootfile=/pxelinux.0 \
> > > +    -drive file=binaries/dom0-rootfs.img,format=raw"
> > > +
> > > +export TEST_LOG="smoke.serial"
> > > +export BOOT_MSG="Latest ChangeSet: "
> > > +export LOG_MSG="Domain-0"
> > > +# exit early on test failure too, check if it was success below
> > > +export PASSED="$passed|$failed"
> > > +
> > > +./automation/scripts/console.exp | sed 's/\r\+$//'
> > > +
> > > +grep "$passed" smoke.serial
> > > -- 
> > > git-series 0.9.1
--8323329-205764893-1765398261=:19429--


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 20:31:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 20:31:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183295.1506037 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTQqL-0007Rw-0P; Wed, 10 Dec 2025 20:31:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183295.1506037; Wed, 10 Dec 2025 20:31:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTQqK-0007Rp-U7; Wed, 10 Dec 2025 20:31:24 +0000
Received: by outflank-mailman (input) for mailman id 1183295;
 Wed, 10 Dec 2025 20:31:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TEw+=6Q=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vTQqJ-0007Rd-AT
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 20:31:23 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 302c4bef-d607-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 21:31:21 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 371C14EEBC5F;
 Wed, 10 Dec 2025 21:31:20 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 302c4bef-d607-11f0-9cce-f158ae23cfc8
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765398680;
	b=W6jsjiZW8KAE9k0ybSpXaCbNmbxvz2VFvF/Iix9o7Q1jE5nRMyHEaAymSH9UHxnKcnX8
	 U5k53jODoV8jFdGTGl3Ovefp3w36Fhf5Xj/xTG7pDLfuS6d2WJEYzuYrx2wHIWCKIugyk
	 YZgUTxRpjOKXn2s219PSt92VT7vbVRkFZvtuVxDBwQKzN5e6UNJFYv3TIWi0nc6Molyhh
	 8PmcRQTYiG4T/CDNE4ScNKEBWhZzy9I425a92Af1d8+nM2cQBjfNs0mDau2YUcUKQV7sT
	 vI52L8ojy4WgBO2j5vWp/EMQYJCQMaqzC0HHhTmpqw4nQjrh9RztfI8oARpa3e9m5ZWPo
	 x4LG57KU2M/1N9SySXrxSQMFOaAVKEgy4kVe9ABn4jKXqKv08rzylrGDOaFNb8u+gv2FN
	 pWc3OlXApkpXBdL505wYdlZPSmtQEMiNPRYY6x3PriqK6QePoa/Og2jt9rRVjI/kFrJlQ
	 U1C5Qw91PFifXZMOB1O7HWQCDaz7YsoJLvjy6TocGW9zhcHr3NDFptItEHN92nvN2DOr5
	 QU/BIpat8FG6unk2P7ChgQNPpfS2rEbaP0b2+8O+FaN/tLvfrOd+ZQCGJOLZDx0uc4eR0
	 qmhiR7gR41sI+Hn+3TtkZ05ufx0T65p5WvftwTwc2TJLdD90tl5HruDEMeIrTes=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765398680;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=IFtPv0fRj5oPpDqSvLE2K7NjExoOL9e4enph3DpzsSU=;
	b=mnz4l73/omsAWnJJ2Y4jk8ZcYozSz/ywZP4u39zUz/JQPUjE2gahumTk4r/c2uaQFOvX
	 cjJvLmMy21S/AcLjaY7uy24xm8UYJmRvYExoRoa8/pPYnKz+dw1BB0ll81EybNI0gw2zP
	 03ajehwdCEYBIS5ui8wZihpcKEEhCNLwh8H/JjxDBzabniszCYVzaBq7Dln40AgASQTsW
	 5iWdKgFT9qwltPCNyKCKV6OlA2agsUOJK7/bKp1psTzKEGQtrxqEcygh1MarBkZIpQnCf
	 Cli0hyB+Yl4O514dKbl2uqLeJ6052Kj227DMrB8X4CVpaeBBUUHV7i0PP92qQb1tBr1sa
	 YhI5EzALsCVkvE1hRtelRZlTH4iF1ZPc/4U+tlEE2RVDvdGS4QrXGs246twsRfLbEGsV2
	 qGeoiJY1vfd0X3Iu9Yb/EAcQoiU6dIMO9NxfDJruxD1B99PNsBOolnfOmiwySFVPm0fsp
	 ZrR0fQ9DFTR0Kh1vDtpGB+pAWlGeykOC2iD48LNaixYW+bHCnn+EE1LmZYO6cBYh8csos
	 P4lUmrtPqwAfD941K0JjJv2TbwrHKYUoOIqA1wZJnJESv4AcaDvIBUaiSaDvqmfV0894S
	 TKn0+/+KPrj0UHqjU7PXA56iej6Asr9JuYAnpBXZKy423B8iscKfylsTBm5c2II=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765398680; bh=P4myQzANnSHpMz1cu7So0PL/s1C5e8Sj3KWrOgPhUl0=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=pmSYUhPJTjxoOwZ8QW/a4NgV1safMSPRTHTVgdw7MdcsGdTM+fTmNREj2o/ik8aBJ
	 c2XlKGotQ12t8IONceKC2xnrAUgmtomLUMkWVs3Qua7wAQc+PNEZkJ/QebxR3ojA9i
	 M+FmbAi8Y9T0b6AHy4erjJ1J6nf/jgj9asR/33bVOAkJINdg+er0DVflOls7TTVTWr
	 gr2ogDcXFWBHONt22jFqXPBkTdMXuzfCMDUAka/WErkyipK3WcDghYA+G9FwNIx7iS
	 T0NvPUOzc0OyCAuyODXRmLK5m06n7uj7zu4RNfRO2mJng3EbPmMC6bNNH6r3/McMSl
	 BmamYsWaYgHMw==
MIME-Version: 1.0
Date: Wed, 10 Dec 2025 21:31:20 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
 <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH 1/5] x86: Misra fixes for U/L suffixes
In-Reply-To: <c9c7deeecc839295d04c5374691f848d@bugseng.com>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
 <20251210183019.2241560-2-andrew.cooper3@citrix.com>
 <c9c7deeecc839295d04c5374691f848d@bugseng.com>
Message-ID: <aa03d225a116bbb5db0e7a0df61161b5@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-12-10 21:09, Nicola Vetrini wrote:
> On 2025-12-10 19:30, Andrew Cooper wrote:
>> With the wider testing, some more violations have been spotted.  This
>> addresses violations of Rule 7.2 (suffixes required) and Rule 7.3 (L 
>> must be
>> uppercase).
>> 
>> For ELF64_R_TYPE(), cast to uint32_t matching the surrounding 
>> examples.
>> 
>> No functional change.
>> 
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> CC: consulting@bugseng.com <consulting@bugseng.com>
>> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> ---
>>  xen/arch/x86/mm/shadow/common.c     | 4 ++--
>>  xen/arch/x86/pv/descriptor-tables.c | 2 +-
>>  xen/drivers/passthrough/vtd/iommu.h | 2 +-
>>  xen/include/xen/elfstructs.h        | 2 +-
>>  xen/include/xen/sizes.h             | 2 +-
>>  5 files changed, 6 insertions(+), 6 deletions(-)
>> 
>> diff --git a/xen/arch/x86/mm/shadow/common.c 
>> b/xen/arch/x86/mm/shadow/common.c
>> index 0176e33bc9c7..423764a32653 100644
>> --- a/xen/arch/x86/mm/shadow/common.c
>> +++ b/xen/arch/x86/mm/shadow/common.c
>> @@ -1961,7 +1961,7 @@ int sh_remove_write_access(struct domain *d, 
>> mfn_t gmfn,
>>               /* FreeBSD 64bit: linear map 0xffff800000000000 */
>>               switch ( level )
>>               {
>> -             case 1: GUESS(0xffff800000000000
>> +             case 1: GUESS(0xffff800000000000UL
>>                             + ((fault_addr & VADDR_MASK) >> 9), 6); 
>> break;
>>               case 2: GUESS(0xffff804000000000UL
>>                             + ((fault_addr & VADDR_MASK) >> 18), 6); 
>> break;
>> @@ -1969,7 +1969,7 @@ int sh_remove_write_access(struct domain *d, 
>> mfn_t gmfn,
>>                             + ((fault_addr & VADDR_MASK) >> 27), 6); 
>> break;
>>               }
>>               /* FreeBSD 64bit: direct map at 0xffffff0000000000 */
>> -             GUESS(0xffffff0000000000 + gfn_to_gaddr(gfn), 6);
>> +             GUESS(0xffffff0000000000UL + gfn_to_gaddr(gfn), 6);
>>          }
>> 
>>  #undef GUESS
>> diff --git a/xen/arch/x86/pv/descriptor-tables.c 
>> b/xen/arch/x86/pv/descriptor-tables.c
>> index 02647a2c5047..26f7d18b11b5 100644
>> --- a/xen/arch/x86/pv/descriptor-tables.c
>> +++ b/xen/arch/x86/pv/descriptor-tables.c
>> @@ -216,7 +216,7 @@ static bool check_descriptor(const struct domain 
>> *dom, seg_desc_t *d)
>>               * 0xf6800000. Extend these to allow access to the larger 
>> read-only
>>               * M2P table available in 32on64 mode.
>>               */
>> -            base = (b & 0xff000000) | ((b & 0xff) << 16) | (a >> 16);
>> +            base = (b & 0xff000000U) | ((b & 0xff) << 16) | (a >> 
>> 16);
>> 
>>              limit = (b & 0xf0000) | (a & 0xffff);
>>              limit++; /* We add one because limit is inclusive. */
>> diff --git a/xen/drivers/passthrough/vtd/iommu.h 
>> b/xen/drivers/passthrough/vtd/iommu.h
>> index 29d350b23db6..4f41360c53c0 100644
>> --- a/xen/drivers/passthrough/vtd/iommu.h
>> +++ b/xen/drivers/passthrough/vtd/iommu.h
>> @@ -266,7 +266,7 @@ struct dma_pte {
>>  #define DMA_PTE_PROT (DMA_PTE_READ | DMA_PTE_WRITE)
>>  #define DMA_PTE_SP   (1 << 7)
>>  #define DMA_PTE_SNP  (1 << 11)
>> -#define DMA_PTE_CONTIG_MASK  (0xfull << PADDR_BITS)
>> +#define DMA_PTE_CONTIG_MASK  (0xfULL << PADDR_BITS)
>>  #define dma_clear_pte(p)    do {(p).val = 0;} while(0)
>>  #define dma_set_pte_readable(p) do {(p).val |= DMA_PTE_READ;} 
>> while(0)
>>  #define dma_set_pte_writable(p) do {(p).val |= DMA_PTE_WRITE;} 
>> while(0)
>> diff --git a/xen/include/xen/elfstructs.h 
>> b/xen/include/xen/elfstructs.h
>> index eb6b87a823a8..8770e7454672 100644
>> --- a/xen/include/xen/elfstructs.h
>> +++ b/xen/include/xen/elfstructs.h
>> @@ -360,7 +360,7 @@ typedef struct {
>>  } Elf64_Rela;
>> 
>>  #define	ELF64_R_SYM(info)	((info) >> 32)
>> -#define	ELF64_R_TYPE(info)	((info) & 0xFFFFFFFF)
>> +#define	ELF64_R_TYPE(info)	((uint32_t)(info))

Actually I think this doesn't build:

arch/x86/livepatch.c: In function ‘arch_livepatch_perform_rela’:
././include/xen/config.h:55:24: error: format ‘%lu’ expects argument of 
type ‘long unsigned int’, but argument 3 has type ‘unsigned int’ 
[-Werror=format=]
    55 | #define XENLOG_ERR     "<0>"
       |                        ^~~~~
arch/x86/livepatch.c:332:20: note: in expansion of macro ‘XENLOG_ERR’
   332 |             printk(XENLOG_ERR LIVEPATCH "%s: Unhandled 
relocation %lu\n",
       |                    ^~~~~~~~~~
arch/x86/livepatch.c:332:69: note: format string is defined here
   332 |             printk(XENLOG_ERR LIVEPATCH "%s: Unhandled 
relocation %lu\n",
       |                                                                  
  ~~^
       |                                                                  
    |
       |                                                                  
    long unsigned int
       |                                                                  
  %u

the error location is a bit unclear, but the cast is the culprit

>>  #define ELF64_R_INFO(s,t) 	(((s) << 32) + (uint32_t)(t))
>> 
>>  /*
>> diff --git a/xen/include/xen/sizes.h b/xen/include/xen/sizes.h
>> index f7b728ddab06..d309ebf04406 100644
>> --- a/xen/include/xen/sizes.h
>> +++ b/xen/include/xen/sizes.h
>> @@ -43,6 +43,6 @@
>>  #define SZ_512M                         0x20000000
>> 
>>  #define SZ_1G                           0x40000000
>> -#define SZ_2G                           0x80000000
>> +#define SZ_2G                           0x80000000U
>> 
>>  #endif /* __XEN_SIZES_H__ */

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 20:33:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 20:33:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183305.1506049 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTQsI-0007zM-CC; Wed, 10 Dec 2025 20:33:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183305.1506049; Wed, 10 Dec 2025 20:33:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTQsI-0007zF-88; Wed, 10 Dec 2025 20:33:26 +0000
Received: by outflank-mailman (input) for mailman id 1183305;
 Wed, 10 Dec 2025 20:33:25 +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
 <SRS0=8oeO=6Q=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vTQsG-0007z9-Vg
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 20:33:24 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7873e8a3-d607-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 21:33:23 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 8F62540450;
 Wed, 10 Dec 2025 20:33:21 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BBD29C4CEF1;
 Wed, 10 Dec 2025 20:33:20 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7873e8a3-d607-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765398801;
	bh=xVpxcPNAymiH4hxXMO3X0B6EwwMe7tmfVMVDxEEGGAU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=fSdrUQofOlhxAR3lfpyu1H2jntR79W3XDY0q83JB1CiX81duBfVhQhPxRjcAUCZgk
	 vPBnzGnacN0QkVyq5W3eXXH4WuMB+HBndS6rVPzViDF78gnLAMU/9c+O+hSVFlfykk
	 ashHqbcb/cXqH2CM7EaKSpJGnNl2satQ+q/3xbW5ZmIOE6MvyJei+X+mGuh9GsGRIK
	 z2AwcIeu2FpPZfL3EaRTOLZxf+6bPH0/XLRhZOoiYStxM2UROf/cX4Th/wwybuo9rg
	 ZWwpffEGlqMofZVHoR+dDIYbLT2IP5KR7QQZRHcpomL/emCnGzVXC1VOFG/auUFJjA
	 ZalA6gZX/mI1A==
Date: Wed, 10 Dec 2025 12:33:19 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 07/12] Support building arbitrary Linux
 branch/tag/commit
In-Reply-To: <aTjU2GJFw9WcaR9X@mail-itl>
Message-ID: <alpine.DEB.2.22.394.2512101232130.19429@ubuntu-linux-20-04-desktop>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com> <c7579b953d400d368f171e4dd56e1b7f879e386f.1764866136.git-series.marmarek@invisiblethingslab.com> <alpine.DEB.2.22.394.2512091625190.19429@ubuntu-linux-20-04-desktop>
 <aTjU2GJFw9WcaR9X@mail-itl>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1490541269-1765398801=:19429"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1490541269-1765398801=:19429
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Wed, 10 Dec 2025, Marek Marczykowski-Górecki wrote:
> On Tue, Dec 09, 2025 at 04:29:02PM -0800, Stefano Stabellini wrote:
> > On Thu, 4 Dec 2025, Marek Marczykowski-Górecki wrote:
> > > If LINUX_URL is set, fetch LINUX_VERSION from there. Go with "git
> > > init" + "git fetch" instead of "git clone" to support any of
> > > branch/tag/commit.
> > > 
> > > This also defines optional linux-git-* jobs which will build the thing
> > > if LINUX_GIT_VERSION and LINUX_GIT_URL variables are provided for the
> > > pipeline.
> > > 
> > > Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> > > ---
> > > The script variable and job variable need to have different names, so a
> > > pipeline variable won't override it for all jobs. While LINUX_VERSION /
> > > LINUX_GIT_VERSION is IMO okay, I'm not very happy about LINUX_URL /
> > > LINUX_GIT_URL. Any better ideas?
> > 
> > The problem is not LINUX_GIT_URL and LINUX_GIT_VERSION, those are good
> > names. The issue is ...
> > 
> > > ---
> > >  .gitlab-ci.yml         | 22 ++++++++++++++++++++++
> > >  scripts/build-linux.sh | 18 +++++++++++++-----
> > >  2 files changed, 35 insertions(+), 5 deletions(-)
> > > 
> > > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> > > index 184d0b3..8d1deee 100644
> > > --- a/.gitlab-ci.yml
> > > +++ b/.gitlab-ci.yml
> > > @@ -1,5 +1,9 @@
> > >  variables:
> > >    REGISTRY: registry.gitlab.com/xen-project/hardware/test-artifacts
> > > +  LINUX_GIT_VERSION:
> > > +    description: "branch/tag/commit for the linux-git jobs"
> > > +  LINUX_GIT_URL:
> > > +    description: "git url for the linux-git jobs"
> > >  
> > >  stages:
> > >    - build
> > > @@ -53,6 +57,15 @@ linux-6.6.86-arm64:
> > >    variables:
> > >      LINUX_VERSION: 6.6.86
> > >  
> > > +linux-git-arm64:
> > > +  extends: .arm64-artifacts
> > > +  script: ./scripts/build-linux.sh
> > > +  variables:
> > > +    LINUX_VERSION: $LINUX_GIT_VERSION
> > > +    LINUX_URL: $LINUX_GIT_URL
> > > +  rules:
> > > +  - if: $LINUX_GIT_VERSION && $LINUX_GIT_URL
> > > +
> > >  #
> > >  # x86_64 artifacts
> > >  #
> > > @@ -91,6 +104,15 @@ linux-6.12.60-x86_64:
> > >    variables:
> > >      LINUX_VERSION: 6.12.60
> > >  
> > > +linux-git-x86_64:
> > > +  extends: .x86_64-artifacts
> > > +  script: ./scripts/build-linux.sh
> > > +  variables:
> > > +    LINUX_VERSION: $LINUX_GIT_VERSION
> > > +    LINUX_URL: $LINUX_GIT_URL
> > > +  rules:
> > > +  - if: $LINUX_GIT_VERSION && $LINUX_GIT_URL
> > > +
> > >  microcode-x86:
> > >    extends: .x86_64-artifacts
> > >    script: ./scripts/x86-microcode.sh
> > > diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
> > > index cf0e744..1fc96d1 100755
> > > --- a/scripts/build-linux.sh
> > > +++ b/scripts/build-linux.sh
> > > @@ -12,11 +12,19 @@ COPYDIR="${WORKDIR}/binaries"
> > >  UNAME=$(uname -m)
> > >  
> > >  # Build Linux
> > > -MAJOR=${LINUX_VERSION%%.*}
> > > -curl -fsSLO \
> > > -    https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz
> > > -tar xf linux-"${LINUX_VERSION}".tar.xz
> > > -cd linux-"${LINUX_VERSION}"
> > > +if [[ -n "${LINUX_URL}" ]]; then
> > > +    mkdir linux
> > > +    cd linux
> > > +    git init
> > > +    git fetch --depth=1 "${LINUX_URL}" "${LINUX_VERSION}"
> > > +    git checkout FETCH_HEAD
> > > +else
> > > +    MAJOR=${LINUX_VERSION%%.*}
> > > +    curl -fsSLO \
> > > +        https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz
> > > +    tar xf linux-"${LINUX_VERSION}".tar.xz
> > > +    cd linux-"${LINUX_VERSION}"
> > > +fi
> > 
> > ... the issue is detecting to fetch via git or via curl based on the
> > presence of a variable called "LINUX_URL". Technically 
> > 
> > https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz
> > 
> > is a a valid URL as well.
> > 
> > So I think you should keep LINUX_GIT_URL and LINUX_GIT_VERSION named as
> > they are, expose them to scripts/build-linux.sh, and detect the fetch
> > program based on the presence of LINUX_GIT_URL.
> > 
> > Ideally, we should not have LINUX_GIT_VERSION. Instead we should have a
> > a common LINUX_VERSION used in both git and curl cases.
> 
> The problem here is conflicting variables for different jobs. If you
> specify a variable when starting a pipeline (either manually, or via
> schedule, or via settings), the variable will be set for all the jobs.
> So, to be able to schedule a pipeline with both linux-6.12.60-x86_64 and
> linux-git-x86_64 (for example based on linux-next, or maybe some rc),
> the pipeline variable needs to be named differently than the one used by
> this script. And IMO it's more important to have clear naming
> (LINUX_GIT_VERSION+LINUX_GIT_URL) at the pipeline level.
> 
> I can change this script to use arguments instead of variables to avoid
> this issue, but it will result in slightly more duplication (in
> .gitlab-ci.yml file).

It looks like it is a good idea to switch to arguments to avoid this
issue
--8323329-1490541269-1765398801=:19429--


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 20:37:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 20:37:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183316.1506057 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTQvw-00007s-Pb; Wed, 10 Dec 2025 20:37:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183316.1506057; Wed, 10 Dec 2025 20:37:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTQvw-00007l-N3; Wed, 10 Dec 2025 20:37:12 +0000
Received: by outflank-mailman (input) for mailman id 1183316;
 Wed, 10 Dec 2025 20:37:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TEw+=6Q=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vTQvw-00007f-2Y
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 20:37:12 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 002567fa-d608-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 21:37:10 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 0166E4EEBC5F;
 Wed, 10 Dec 2025 21:37:08 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 002567fa-d608-11f0-9cce-f158ae23cfc8
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765399029;
	b=kmZrx2gRavTVlI80sQ0oLFOPMvz8CoAjYGuGBsBgy0O6vtqXmpmfDiFCASydRj63c84i
	 jqqFlsBVGTV1MyvuGPbAvQGdtbwGn5HXHImmytv3rWwZbZya2Y/9F/zt55xp+3RmZQlnc
	 xN9QECjiDT804rFlqq0EpZBVPZ2k4MQGjSGm778DOVOoOrWeyDxmZTlscGkYvHLDDPvDk
	 Yg+TmlLdhEqnfFQlrYNkcB/YieKmk3+elYk53xm1dKAFa0nB7KEHryOk8XF6mageU2dmC
	 le6aZTRhtMMjTEVkxMKvqsyfpor84Dhu+cVNO2deYL7cgXu+B+8ipduA2PBjPuqzfPJA1
	 2jNVSi9dxk0aDnZek7ehxeMwbrQq2Gg0y/ZNuU2BtMtfWGR4dKo6FtFS4hYlbHl4rR5ik
	 NAKRMi5xMY0APnmgCvbaCcveW2kv4t35l3SFetO5Bflt7+PJl050jQA44nmH7DUf+22K8
	 l5/VYITvL/tRvdBwEX2LRNbwJX8EsaGf3MlstAGCDa3yB7pjNL+LLJ2/hePX0XSNt2qqv
	 guFKzAzk2aldqCh4Nywykk5XF5KNxw6cY47fVeIB/SYQgkSxzrDrPhDblRPpA6JSPgjEN
	 bsF2GAtZtCc/wU8ilOYKXkgG09E/idoj1/m0kGxhGnDr1Hkc/Pya7UrEbfiysT0=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765399029;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=1RXVffh6wiq/ymvU4iZWe5oifI/6dxTQnQPN9i1zS+Q=;
	b=cY8fn2hbnKY08mWlZ8pG1kq/FbKVlc0txTXR10ZA+A2UOsrSfZFSDOcYNqHycayNNMDJ
	 8sUw5KZ7LRWX6yempE96j0e+LkVyVMEMxv4w1RyWqK89TAyyP2S3oIXgJ5BA00/58kVDc
	 d+j/QPxVA5O20N1F4rqCoSgk5SBK0TgPgl3YAN8N+j0wOVuY2C+6qjmWA9VE2RTtuUn04
	 yVH3esTutob8CN5Q5dFx2WMaGFVPziYJlIc62gP6wjzsHXXwLGCn6EnrK1Y/6DXh+rbWX
	 9FCX0x7oeNT2IPAJ27Cac/j5WmgfyOuW8luhuEXgVOvSkPO3fUflB6SOy45i0Yp2kvb1p
	 Wny1Vn11B4qoq/HeN/2B7gS7cNHc914DQpUWz9XCYJMjFOiG4JZ2rtOM8gt0jSPE00TFg
	 o/w0pNZlKA7xzPjH4EXSLO4d/5LPQOkQBE990sHQVZCH0iMCzjoid0oXB0eQnRcyMLhNI
	 OFecmB5kljC/THgBH3OOFx7ys9q4nHV0adUJiY4Qdn3ikRIGEzuNfEx+2ErbpfRx4R6I1
	 YtzsM8hjOMGxpNo8rUieQogcvv/NsyNs7Mwc45h4BYSZFgsM/594yDr5oJ+CNkvlhWHhE
	 7vNu3MLAVDCqKg7geNg4yTmlWeKo+mv3lPGik2JC3OqW1EZ27VYGFLMb+9htqCs=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765399029; bh=iDnkDoOYj0GFO6Zc892W2pwq08eZGtuyuFGMtqrri9Y=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=nAVdPEcjFdvDPaLasXnBW4bde23ZybjIDdBGqLZzlkt5B8iQZtyOQ+S0KK656fgTP
	 wVvZsrecTnwDuQRsA/TOK62tkvlVbvl+IDrdIbGJLEbhFns4NCtbnkr11JbwOHwt4k
	 hfPn5qEcYP9bGm4e++GTBSFbtfGGDjkKPGj3RRGxc8GZ0FVOwNz5q1vCPWZB9VnSBn
	 jhkJ8X7V266UO1/udHLv+YL3hwSddtKVZlZq/kMSAsPEDnqC8hq48vdBL9iTgSVUg5
	 loi6bNHpkvFE2V3pvxBwdtBzDI9Tso175cqjlrKexb77tSW3mbnmcWfnQKpZPoYH1p
	 cIiPj/sqEHlYw==
MIME-Version: 1.0
Date: Wed, 10 Dec 2025 21:37:08 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
 <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH 3/5] x86/ucode: Don't cast away const-ness in
 cmp_patch_id()
In-Reply-To: <20251210183019.2241560-4-andrew.cooper3@citrix.com>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
 <20251210183019.2241560-4-andrew.cooper3@citrix.com>
Message-ID: <c260c81b7be1e5b27cd6c6705709c060@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-12-10 19:30, Andrew Cooper wrote:
> Fixes a volation of MISRA rule 11.8.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: consulting@bugseng.com <consulting@bugseng.com>
> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
>  xen/arch/x86/cpu/microcode/amd.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/xen/arch/x86/cpu/microcode/amd.c 
> b/xen/arch/x86/cpu/microcode/amd.c
> index adabe6e6e838..2760ace92177 100644
> --- a/xen/arch/x86/cpu/microcode/amd.c
> +++ b/xen/arch/x86/cpu/microcode/amd.c
> @@ -106,7 +106,7 @@ static bool __ro_after_init 
> entrysign_mitigiated_in_firmware;
>  static int cf_check cmp_patch_id(const void *key, const void *elem)
>  {
>      const struct patch_digest *pd = elem;
> -    uint32_t patch_id = *(uint32_t *)key;
> +    uint32_t patch_id = *(const uint32_t *)key;
> 
>      if ( patch_id == pd->patch_id )
>          return 0;

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 20:58:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 20:58:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183336.1506067 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTRG2-0003WJ-Cm; Wed, 10 Dec 2025 20:57:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183336.1506067; Wed, 10 Dec 2025 20:57:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTRG2-0003WC-A1; Wed, 10 Dec 2025 20:57:58 +0000
Received: by outflank-mailman (input) for mailman id 1183336;
 Wed, 10 Dec 2025 20:57:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RTTf=6Q=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vTRG1-0003W6-2B
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 20:57:57 +0000
Received: from fout-a3-smtp.messagingengine.com
 (fout-a3-smtp.messagingengine.com [103.168.172.146])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e52c09a6-d60a-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 21:57:54 +0100 (CET)
Received: from phl-compute-10.internal (phl-compute-10.internal [10.202.2.50])
 by mailfout.phl.internal (Postfix) with ESMTP id B07D0EC04B8;
 Wed, 10 Dec 2025 15:57:52 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-10.internal (MEProxy); Wed, 10 Dec 2025 15:57:52 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 10 Dec 2025 15:57:51 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e52c09a6-d60a-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1765400272;
	 x=1765486672; bh=14/kWMkIUVhB0X0jzvXh5YDdzZKS/Fx19hNDc2RZ6+k=; b=
	Pfeqw+r9ccTUJ9hoedInbLCUXG2/wP06haiam+WOSvWHYwwvDuXLSRKQbLCfnD/U
	USnkMMi4zZbnLeT4FPOtUqNleHJWi3Q5q2f8Ajf/5sD9vKPFaM4Mo/FxLTh/GjXj
	fwqbEwsWiQDXx73OdcwuZ/fvEEesbYZJIodeCdSXbwEXRCakVvdG1zF4ih4UAHMp
	zN02l1rk3TUW+oCKLe6/HWXrUB9td3iPa5TSsDbwnD94/hv0Wo9KtjrInGfXHNSJ
	q0kLWwcARW1TjIcyJteF42+HFdkX1XHH4JjyhjycuPlY6pnz5GHYc5p6HFWT9dxc
	KGTbBpfuPhjO1+wi+JCcbA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
	1765400272; x=1765486672; bh=14/kWMkIUVhB0X0jzvXh5YDdzZKS/Fx19hN
	Dc2RZ6+k=; b=PUx98JFaeKKRoIhD8ddG0o1WZk+ehUzzDEqGlI3DZ/iY+JDGvaF
	Fo+cXGP0ZmyQVsAvEsg9GzzsQhcpWXQsIWzAR7vZhl3mr2vSpnJ9AoIqhpvEor43
	AtsP1kZwYOUFp/PumgnYZQpRtXCl9MtJZ+Rux7y2ekOES7VJJxKBw58GRzuhIqIW
	r3MmBDWv9UVnGxl5/BQvX0qmGnYgNa5NLaMUjUO92c7WZabWflJ66LSAB7wh+9YP
	NcDuMlB5DBiwQ40RnA178rwPbXkFCy7cJru7f0yCshUFkvPaTK58oRjFK3EHloqB
	PxwpZSmKmzybgZ4uOfyGnq/YO3KPStNLaug==
X-ME-Sender: <xms:0N45aax2OPnqRp7ofBRW1d01PEiB_jntujvkI4s_6dB8MvkcAyKSew>
    <xme:0N45adTPZ8kbR99oQTqDPwAkj6D6d3lO6tOVCREsEaSUbG64Sc6gu2wcIxxh8Zfiy
    _OQIbC-URTMmbLrxUnRc6nl2-OXynukVtgPGoVXcxRCdcyAEA>
X-ME-Received: <xmr:0N45aRUDRuNAQZSI9v5qiL6azZhyJsRwAKnrN7gBXuYGG6ZefqF7HqfM52TcFBJmSrQoXjBPpEhNE3gmUpBwQqYapMVNsCXwSYw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvfeeggecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgudelteef
    vefhfeehieetleeihfejhfeludevteetkeevtedtvdegueetfeejudenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgv
    lhdrohhrghdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhroh
    hjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhr
    ihigrdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtghomh
X-ME-Proxy: <xmx:0N45afY7EJI9a4U6gP_qrlS_LjZE29iwTdrwmaW0ZOOmOXkaKa36ig>
    <xmx:0N45aX3B0Q6q1HPv-TpQ1No8GGBtIW_t5dhp-CVAOe_9KMibtQPChQ>
    <xmx:0N45aRj-99agYpjAow3GJda0Yjl7zU-IllskNACUGbyVyUU1o3JT4A>
    <xmx:0N45abbT6-u8vNc_zO5bQPe6RyDd2dMM_Vbkvtu224d50ld_gA9DfA>
    <xmx:0N45aY31LtbtpXuFdmDKeFY9o9Y27at0Pzb4WnH9mT_nERl5m0mVmFUy>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 10 Dec 2025 21:57:48 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v4 4/6] CI: Add driver domains tests
Message-ID: <aTnezVY1NoE-vZRF@mail-itl>
References: <cover.b56a66dfe4d98db2f1cc8b1fe0c2091d02cebe38.1764989098.git-series.marmarek@invisiblethingslab.com>
 <cf2a2544fe27fedca5129b61912c064f4be08236.1764989098.git-series.marmarek@invisiblethingslab.com>
 <alpine.DEB.2.22.394.2512091534060.19429@ubuntu-linux-20-04-desktop>
 <aTjOBpuKMSO4LzzN@mail-itl>
 <alpine.DEB.2.22.394.2512101219460.19429@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="QWoZckLLoHKI7985"
Content-Disposition: inline
In-Reply-To: <alpine.DEB.2.22.394.2512101219460.19429@ubuntu-linux-20-04-desktop>


--QWoZckLLoHKI7985
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 10 Dec 2025 21:57:48 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v4 4/6] CI: Add driver domains tests

On Wed, Dec 10, 2025 at 12:28:19PM -0800, Stefano Stabellini wrote:
> On Wed, 10 Dec 2025, Marek Marczykowski-G=C3=B3recki wrote:
> > On Tue, Dec 09, 2025 at 04:02:06PM -0800, Stefano Stabellini wrote:
> > > On Sat, 6 Dec 2025, Marek Marczykowski-G=C3=B3recki wrote:
> > > > Setup a simple two domU system. One with network backend, running
> > > > xendriverdomain service, and one with frontend, trying to ping the
> > > > backend.
> > > >=20
> > > > Contrary to other similar tests, use disk image instead of initrd, =
to
> > > > allow bigger rootfs without adding more RAM (for both dom0 and domU=
).
> > > > But keep using pxelinux as a bootloader as it's easier to setup than
> > > > installing grub on the disk. Theoretically, it could be started via=
 direct
> > > > kernel boot in QEMU, but pxelinux is slightly closer to real-world
> > > > deployment.
> > > >=20
> > > > Use fakeroot to preserve file owners/permissions. This is especially
> > > > important for suid binaries like /bin/mount - without fakeroot, they
> > > > will end up as suid into non-root user.
> > > >=20
> > > > Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblet=
hingslab.com>
> > > > ---
> > > > Changes in v3:
> > > > - add fakeroot
> > > > - run ldconfig at the disk image creation time, to avoid running it=
 at
> > > >   dom0/domU boot time (which is much slower)
> > > > Changes in v2:
> > > > - use heredoc
> > > > - limit ping loop iterations
> > > > - use full "backend" / "frontend" in disk image names
> > > > - print domU consoles directly to /dev/console, to avoid systemd-ad=
ded
> > > >   messages prefix
> > > > - terminate test on failure, don't wait for timeout
> > > > ---
> > > >  automation/build/debian/13-x86_64.dockerfile    |   2 +-
> > > >  automation/gitlab-ci/test.yaml                  |   8 +-
> > > >  automation/scripts/qemu-driverdomains-x86_64.sh | 138 ++++++++++++=
+++++-
> > > >  3 files changed, 148 insertions(+)
> > > >  create mode 100755 automation/scripts/qemu-driverdomains-x86_64.sh
> > > >=20
> > > > diff --git a/automation/build/debian/13-x86_64.dockerfile b/automat=
ion/build/debian/13-x86_64.dockerfile
> > > > index 2c6c9d4a5098..6382bafbd5bd 100644
> > > > --- a/automation/build/debian/13-x86_64.dockerfile
> > > > +++ b/automation/build/debian/13-x86_64.dockerfile
> > > > @@ -55,7 +55,9 @@ RUN <<EOF
> > > > =20
> > > >          # for test phase, qemu-* jobs
> > > >          busybox-static
> > > > +        e2fsprogs
> > > >          expect
> > > > +        fakeroot
> > > >          ovmf
> > > >          qemu-system-x86
> > > > =20
> > > > diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/=
test.yaml
> > > > index 7b36f1e126ca..abc5339a74ab 100644
> > > > --- a/automation/gitlab-ci/test.yaml
> > > > +++ b/automation/gitlab-ci/test.yaml
> > > > @@ -656,6 +656,14 @@ qemu-alpine-x86_64-gcc:
> > > >      - *x86-64-test-needs
> > > >      - alpine-3.22-gcc
> > > > =20
> > > > +qemu-alpine-driverdomains-x86_64-gcc:
> > > > +  extends: .qemu-x86-64
> > > > +  script:
> > > > +    - ./automation/scripts/qemu-driverdomains-x86_64.sh 2>&1 | tee=
 ${LOGFILE}
> > > > +  needs:
> > > > +    - *x86-64-test-needs
> > > > +    - alpine-3.22-gcc
> > > > +
> > > >  qemu-smoke-x86-64-gcc:
> > > >    extends: .qemu-smoke-x86-64
> > > >    script:
> > > > diff --git a/automation/scripts/qemu-driverdomains-x86_64.sh b/auto=
mation/scripts/qemu-driverdomains-x86_64.sh
> > > > new file mode 100755
> > > > index 000000000000..c0241da54168
> > > > --- /dev/null
> > > > +++ b/automation/scripts/qemu-driverdomains-x86_64.sh
> > > > @@ -0,0 +1,138 @@
> > > > +#!/bin/bash
> > > > +
> > > > +set -ex -o pipefail
> > > > +
> > > > +dom0_rootfs_extra_comp=3D()
> > > > +dom0_rootfs_extra_uncomp=3D()
> > > > +
> > > > +cd binaries
> > > > +
> > > > +# DomU rootfs
> > > > +
> > > > +mkdir -p rootfs
> > > > +cd rootfs
> > > > +mkdir -p etc/local.d
> > > > +passed=3D"ping test passed"
> > > > +failed=3D"TEST FAILED"
> > > > +cat > etc/local.d/xen.start << EOF
> > > > +#!/bin/bash
> > > > +
> > > > +set -x
> > > > +
> > > > +if grep -q test=3Dbackend /proc/cmdline; then
> > > > +    brctl addbr xenbr0
> > > > +    ip link set xenbr0 up
> > > > +    ip addr add 192.168.0.1/24 dev xenbr0
> > > > +    bash /etc/init.d/xendriverdomain start
> > > > +    # log backend-related logs to the console
> > > > +    tail -F /var/log/xen/xldevd.log /var/log/xen/xen-hotplug.log >=
>/dev/console 2>/dev/null &
> > > > +else
> > > > +    ip link set eth0 up
> > > > +    ip addr add 192.168.0.2/24 dev eth0
> > > > +    timeout=3D6 # 6*10s
> > > > +    until ping -c 10 192.168.0.1; do
> > > > +        sleep 1
> > > > +        if [ \$timeout -le 0 ]; then
> > > > +            echo "${failed}"
> > > > +            exit 1
> > > > +        fi
> > > > +        ((timeout--))
> > > > +    done
> > > > +    echo "${passed}"
> > > > +fi
> > > > +EOF
> > > > +chmod +x etc/local.d/xen.start
> > > > +fakeroot sh -c "
> > > > +    zcat ../rootfs.cpio.gz | cpio -imd
> > > > +    zcat ../xen-tools.cpio.gz | cpio -imd
> > > > +    ldconfig -r .
> > > > +    touch etc/.updated
> > > > +    mkfs.ext4 -d . ../domU-rootfs.img 1024M
> > >=20
> > > Do we really need 1GB? I would rather use a smaller size if possible.
> > > I would rather use as little resources as possible on the build server
> > > as we might run a few of these jobs in parallel one day soon.
> >=20
> > This will be a sparse file, so it won't use really all the space. But
> > this size is the upper bound of what can be put inside.
> > That said, it's worth checking if sparse files do work properly on all
> > runners in /build. AFAIR some older docker versions had issues with that
> > (was it aufs not supporting sparse files?).
>=20
> I ran the same command on my local baremetal Ubuntu dev environment
> (arm64) and it created a new file of the size passed on the command
> line (1GB in this case). It looks like they are not sparse on my end. If
> the result depends on versions and configurations, I would rather err on
> the side of caution and use the smallest possible number that works.

Hm, interesting. What filesystem is that on?

On my side it's definitely sparse (ext4):

    [user@disp8129 Downloads]$ du -sch
    12K	.
    12K	total
    [user@disp8129 Downloads]$ mkfs.ext4 -d . ../domU-rootfs.img 1024M
    mke2fs 1.47.2 (1-Jan-2025)
    Creating regular file ../domU-rootfs.img
    Creating filesystem with 262144 4k blocks and 65536 inodes
    Filesystem UUID: f50a5dfe-4dcf-4f3e-82d0-3dc54a788ab0
    Superblock backups stored on blocks:=20
        32768, 98304, 163840, 229376

    Allocating group tables: done                           =20
    Writing inode tables: done                           =20
    Creating journal (8192 blocks): done
    Copying files into the device: done
    Writing superblocks and filesystem accounting information: done

    [user@disp8129 Downloads]$ ls -lhs ../domU-rootfs.img=20
    33M -rw-r--r--. 1 user user 1.0G Dec 10 21:45 ../domU-rootfs.img

> > > Moreover this script will be run inside a container which means this
> > > data is probably in RAM.
> >=20
> > Are runners configured to use tmpfs for /build? I don't think it's the
> > default.
>=20
> I don't know for sure, they are just using the default. My goal was to
> make our solution more reliable as defaults and configurations might
> change.
>=20
>=20
> > > The underlying rootfs is 25M on both ARM and x86. This should be at m=
ost
> > > 50M.
> >=20
> > Rootfs itself is small, but for driver domains it needs to include
> > toolstack too, and xen-tools.cpio is over 600MB (for debug build).
> > I might be able to pick just the parts needed for the driver domain (xl
> > with its deps, maybe some startup scripts, probably few more files), but
> > it's rather fragile.
>=20
> My first thought is to avoid creating a 1GB file in all cases when it
> might only be needed for certain individual tests. Now, I realize that
> this script might end up only used in driver domains tests but if not,=20

Indeed this script is specifically about driverdomains test.

> I
> would say to use the smallest number depending on the tests, especially
> as there seems to be use a huge difference, e.g. 25MB versus 600MB.
>=20
> My second thought is that 600MB for just the Xen tools is way too large.
> I have alpine linux rootfs'es with just the Xen tools installed that are
> below 50MB total. I am confused on how we get to 600MB. It might be due
> to QEMU and its dependencies but still going from 25MB to 600MB is
> incredible!

Indeed it's mostly about QEMU (its main binary itself takes 55MB),
including all bundled firmwares etc (various flavors of edk2 alone take
270MB). There is also usr/lib/debug which takes 85MB.
But then, usr/lib/libxen* combined takes almost 50MB.

OTOH, non-debug xen-tools.cpio takes "just" 130MB.

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--QWoZckLLoHKI7985
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmk53s0ACgkQ24/THMrX
1ywtywf8Cs7vQtVL6mhgo2MRT7u7AYIoE2or0T4OyHnjoLQExcLbDYF6LUAksqB6
3g7Xdu5uyRbWn0RQxRnTcUuQsGwzybCN5v2uKjJPdxdanLCOyHCGz050fJEYvvQA
pEVVMXriZFjEIlvjvm4K9wvTVVHrnySssev+CGMnJFZW1NJ4tsYIEvp6nAYgxUpo
Aqah8YNZwjPgMkjzZ7PXycUtTZOXqnjW/+pn6hyhVIWUjEbjDq4YuXqhdGbo6Xpd
a6ppE6jd8PRlhlvcr0bxLankZiNy7lPRgk4yAWLxdzQkrgggPrEZBMZ65G0zwm9d
G/amoMaGmVlBun6N6MTBUExVjY3c2A==
=XRld
-----END PGP SIGNATURE-----

--QWoZckLLoHKI7985--


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 21:04:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 21:04:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183351.1506078 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTRM3-000591-5N; Wed, 10 Dec 2025 21:04:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183351.1506078; Wed, 10 Dec 2025 21:04:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTRM3-00058u-1h; Wed, 10 Dec 2025 21:04:11 +0000
Received: by outflank-mailman (input) for mailman id 1183351;
 Wed, 10 Dec 2025 21:04:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TEw+=6Q=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vTRM1-00058o-AN
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 21:04:09 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c3a99718-d60b-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 22:04:06 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 868724EEBC5F;
 Wed, 10 Dec 2025 22:04:05 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3a99718-d60b-11f0-9cce-f158ae23cfc8
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765400645;
	b=UVWQKr7i3CEPZbe9jcgNIAApjOf9xxsp9ncE23f+5PapjejdqOknjp7GnQGtRdQoONNA
	 rSRTtz+FYa+k2yLgt47tfP4odngiyc43fijlSOfD26sT+iFl+jgruwqS5azjAQdBgeQ1c
	 eGGJNDpDB6FrPfnEVD6Qnpd38Yg+/xHt3NCJmmStgqaCebr4zjSJwZh8bYQPzC0ECGY35
	 DB10Zk+VBNSwdqq3oUqpb3iYz9zV5py6qr1Eim4ZIG1L+Cu/KtCadSEuMzcvrSsB0Rq3G
	 nNdfRx51obBl7JOPEUK1g+bIXzmpdZtpowIAA7AV1pPQvzGokyBcQNJEsfRXtNz979LZq
	 JNk85VLuRDEBrUeFPQ9URiu/1nAIGfRFHhl9KHt8GnaG5TohZR8W5LsIDaD3aTEKVAr6o
	 mIc1GeKp5AINT/mN2QT8EUeVD6UqDU/QlKRcKp64ZmusUtpnlKfby7zF+JqQi7qLUODhN
	 Pa2d5XC4fjzfxSDyc0IK8dUGbBznwmoE60bkGCv8Po8FbiEwiAMVZQK+r68xbf72aKrp8
	 yslgvlfWMnbPmc3LX+bfUCPuhdSdcPJZg5yRoib14ahSHBa+AlcNsegTMhDTZADx2R0z0
	 ugmBaJHhi+oDzdXLyEeh6TvDI5pP72CFl2Je7/JHgOdgqzmUojJuEG0ULKRUxHk=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765400645;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=gpQNHSCoovOcTqunSkPw0fNbA6p+CFqBvbrVIGEp3y8=;
	b=aUPrncKMjKkM5JYWALznHgn7r3d8FgwCsysbe9vnzlpzFR5A5R4o1uo6wxtDJ9MALIbS
	 OFSXdTJorNCJJo01hvRsfzVq9OkxnlR/hO/iJE1PSX2+GVNoaXFZrHjxhysMq1zXRhnw0
	 Q3XN9DpcyLlHMeGKpFKA+ZOIGJXQrH8h0qG/BboHcQzJB1sfu1v6e0zHwSwsFpC+YCoFl
	 Gf5fapfDsUVDO/VQpgztQAoHzA4Y5dcfm5VaLREX2Eb+nl+QdB9oHhR70Voa/gHKrrSV2
	 mRm9yexd7RHVFA7RMwOm9Nzk/Vu4kWKBhRFLPTe7O0WBt8hzuDuFQXLHS9kgdEiocLzVk
	 oEB98BDqZwilDgBcnEmlUdOUd4BBz90tdEcscIjkWPs9LN79zHU9i5dn/kf4bIpuYwu1q
	 h6t5tRa/ewvzmSrN4q7tRyxMvmA0yitwqc6qlHRfgX4A3RGwVXxBFTkQB8BwnxAyFVd/T
	 QtFAqaT8I2dwAQ/fWSm8j8L1wdiIuYODlqDttkUDTt7+Fxy3H87SpIqNTYnjzO5AuzbpE
	 ZuagHyKduQxyBtmXHuVrqN+v2Se3KHK+YbOaPWLksUIF+a4huHeAb3oKXcJ7DbnJPps40
	 JyoNiYB5hbwb918Lx+zGdRAfa0L1FOGJF/GkZkkRSviGR/zG0siO4mmHD1mK+BI=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765400645; bh=WHZFWu8nSKbFzZ9HJhJFOwjiWKcn2bf8J+Aly1L6I/s=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=dlciX0m1RarpBtNl00QHcDFBlapziiClbRqSTwX6VV+mzdAh7vShr6MB+ZokztHkR
	 x4LLPu1yh7yIwDFk3Pk/OHU4eEAOU20PuSRf4J6bxN4WSaPLuxeNxmdnrmFTP0i4oG
	 xmBekcRqXX0ENTJPClb8E4SEy8OgDpjPsOVfqeOVssU97Ko1ACs1A6/3wGdBfPAKqZ
	 pzolcwVEA7Sn+YKBIEW0Nk2zYg7AiEMixiGcHTDXoSaFbEgMiGSc4Aw9S4PrWdQlG/
	 GE3j9bqlL+3oe9gq1GX7jb0ZN3SrDPAGbXzNlk809QtaLg8XUBk1+q9ggfNlI0tfoJ
	 FE9iBBIaBiq7g==
MIME-Version: 1.0
Date: Wed, 10 Dec 2025 22:04:05 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
 <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH 4/5] x86: Fix missing breaks
In-Reply-To: <20251210183019.2241560-5-andrew.cooper3@citrix.com>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
 <20251210183019.2241560-5-andrew.cooper3@citrix.com>
Message-ID: <5272a5198db51a40318b844a629900db@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-12-10 19:30, Andrew Cooper wrote:
> With the wider testing, some more violations have been spotted.  This
> addresses violations of Rule 16.3 which requires all case statements to 
> be
> terminated with a break or other unconditional control flow change.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

with one nit below

> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: consulting@bugseng.com <consulting@bugseng.com>
> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
>  xen/arch/x86/domain.c          | 1 +
>  xen/arch/x86/mm/shadow/hvm.c   | 1 +
>  xen/arch/x86/pv/emul-priv-op.c | 1 +
>  xen/arch/x86/pv/emulate.c      | 1 +
>  xen/common/livepatch.c         | 1 -
>  xen/common/livepatch_elf.c     | 1 +
>  6 files changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index 5e37bfbd17d6..b15120180993 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -1517,6 +1517,7 @@ int arch_set_info_guest(
>          {
>          case -EINTR:
>              rc = -ERESTART;
> +            fallthrough;
>          case -ERESTART:
>              break;
>          case 0:
> diff --git a/xen/arch/x86/mm/shadow/hvm.c 
> b/xen/arch/x86/mm/shadow/hvm.c
> index 114957a3e1ec..69334c095608 100644
> --- a/xen/arch/x86/mm/shadow/hvm.c
> +++ b/xen/arch/x86/mm/shadow/hvm.c
> @@ -268,6 +268,7 @@ hvm_emulate_cmpxchg(enum x86_segment seg,
>      default:
>          SHADOW_PRINTK("cmpxchg size %u is not supported\n", bytes);
>          prev = ~old;
> +        break;
>      }
> 
>      if ( prev != old )
> diff --git a/xen/arch/x86/pv/emul-priv-op.c 
> b/xen/arch/x86/pv/emul-priv-op.c
> index 08dec9990e39..fb6d57d6fbd3 100644
> --- a/xen/arch/x86/pv/emul-priv-op.c
> +++ b/xen/arch/x86/pv/emul-priv-op.c
> @@ -407,6 +407,7 @@ static void _guest_io_write(unsigned int port, 
> unsigned int bytes,
> 
>      default:
>          ASSERT_UNREACHABLE();
> +        break;
>      }
>  }
> 
> diff --git a/xen/arch/x86/pv/emulate.c b/xen/arch/x86/pv/emulate.c
> index 8c44dea12330..b201ea1c6a97 100644
> --- a/xen/arch/x86/pv/emulate.c
> +++ b/xen/arch/x86/pv/emulate.c
> @@ -120,6 +120,7 @@ void pv_set_reg(struct vcpu *v, unsigned int reg, 
> uint64_t val)
>          printk(XENLOG_G_ERR "%s(%pv, 0x%08x, 0x%016"PRIx64") Bad 
> register\n",
>                 __func__, v, reg, val);
>          domain_crash(d);
> +        break;
>      }
>  }
> 
> diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c
> index 9285f88644f4..b39f8d7bfe20 100644
> --- a/xen/common/livepatch.c
> +++ b/xen/common/livepatch.c
> @@ -1924,7 +1924,6 @@ static void noinline do_livepatch_work(void)
>                              p->name);
>                      ASSERT_UNREACHABLE();
>                  }
> -            default:
>                  break;

could I talk you into changing to

   fallthrough;
default:
   break;

while it's clear that the meaning is the same, the LIVEPATCH_ACTION_* 
constants being switched on are not in an enum, which is made more 
obvious by the presence of a default clause.

>              }
>          }
> diff --git a/xen/common/livepatch_elf.c b/xen/common/livepatch_elf.c
> index 25ce1bd5a0ad..2e82f2cb8c46 100644
> --- a/xen/common/livepatch_elf.c
> +++ b/xen/common/livepatch_elf.c
> @@ -347,6 +347,7 @@ int livepatch_elf_resolve_symbols(struct 
> livepatch_elf *elf)
>                  dprintk(XENLOG_DEBUG, LIVEPATCH "%s: Symbol resolved: 
> %s => %#"PRIxElfAddr" (%s)\n",
>                         elf->name, elf->sym[i].name,
>                         st_value, elf->sec[idx].name);
> +            break;
>          }
> 
>          if ( rc )

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 21:11:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 21:11:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183362.1506088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTRTG-0006t4-SJ; Wed, 10 Dec 2025 21:11:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183362.1506088; Wed, 10 Dec 2025 21:11:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTRTG-0006sx-OS; Wed, 10 Dec 2025 21:11:38 +0000
Received: by outflank-mailman (input) for mailman id 1183362;
 Wed, 10 Dec 2025 21:11:37 +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
 <SRS0=TEw+=6Q=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vTRTF-0006sr-4f
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 21:11:37 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cf0761c3-d60c-11f0-b15b-2bf370ae4941;
 Wed, 10 Dec 2025 22:11:35 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 5AC4B4EEBC5F;
 Wed, 10 Dec 2025 22:11:34 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cf0761c3-d60c-11f0-b15b-2bf370ae4941
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765401094;
	b=O1XuAQpX4bj9ZB8vwQREnL0lvVZgDWtJsdc/7hOIZddn8fMNiFMqVHAU8Z5+/A7E8x+H
	 GsUbSDOAOHGlD33Uat2bquaCscdphpnUwIcK7RycXcQS58ou//zMdVFD2GRWNdGOfzVHJ
	 VggOM2td9NsyOU6EJYFhn5O2HdianQNdzxk27aChSFFI69BNcoEdvSbmxK+xTLj+pZS7a
	 38VGp1T573BYd8SsJLF6nSnDAjmFHPQYbm5KnbHeFEYekktgJlawzpiMbvGAS7koQ7zBe
	 yam2Ny48j35TSyJHDvPQuGknE9c9j4OkqYUQ9l+1eHwQ6ewXbGCUiikzhqPhbYl+SFvhl
	 FPBB0F1swmwJD+Luf6aTt4zVTTaW7DDpPscMJ/wjo7hd7Mg6T4JDWwCmIq9uTTOQge0Gf
	 2jRy7CUUSiaj97vHTL+RGWoVyGAHUtTxebZF4FWzulXGjiIXHWnhgF17YKgXLCP84hG6z
	 yGljqpULrFPs1HJe4mp7VkXZXZeRWAUM5gOXlCX2v/yC34U5LHB82keZiKC/zHIZPK6yk
	 LEBdabS+nsG1myC7G/EHNUnBsU/tjXDcMrBabt39lp9aJYQomq0v3h/qxjYRAlCSAfjMH
	 um2mnIJmrvHUyvFrmBK3UvilOV4qp+mzULK5UuCm6Ve35WHoYfK04X316ktu+nQ=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765401094;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=bDquDehxI3TmvD/ZVag/FN6qOvIJaedpEm7q9tTfScM=;
	b=yw/6ePXuoIBMQhymAmFuSpzwn0wC6b7xNNaxPuGeySg/CgVir4UMkleR7shARhIsG8EK
	 t1Gq3qKxAjpfw8KOYEm8dZuGb67Q464uDzMRWZAsfuhAHyG3y69GL/PE3wLFvfKkmUrVw
	 T0DObdx1z4sXd5LUlXOnyaIFNi2emluTYdJmEYVgFwekK2DlTTUJl5SuyJofEINZw9v0Q
	 DoKGZn3elmzBQhVE/1Tl+TO+0t6uHYEAzGQjmfK6paduMA6opi4JtpXjc7SB2xC54hO9I
	 P+ybLHhWWB8Zi97nYivHRqJRLyEjVArrySe9IQ9Uvv8RlQhNsoY0Un58Wnle18rWUdajm
	 aTf5GvYwvmMzR3xhMO+UyADQSHTb4pN4hHR6aQHHxlnoQd/l5LAPtmT1KikRbdBUyC3qn
	 2PWoP3WUPbeemi5039Jwksa7wJs0cYpB82ONAqGq3xf+mEK1N2uA/B9BIYnzWSDV4b6oe
	 OFE0+xPo0apgdP9FlGvyZ1CpcCr2u6CPN+l61cIOQo9wDRzQn3mi//vOcylDhv+rorr9V
	 WXOBHOHLwJWca66yWY8sxwK+fveYM3S0O6V6krSxEgGIpM/3kPCU2++wZkxeLbOVY5JQ6
	 VsJLqIPe+BI/nMkEeqLYh34++SSJkknpLDpD0fGcR/LfQvhBuNcgSCwlyi21Dd4=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765401094; bh=IQf/2iuESqWwO47FH1x6aWDnmiz0sVvZAQJvvTGit44=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=faPHyiWBfpkE1pW8Rx2+ecrp+tCNLNUOEYD+0JC7IogQanxKb+DbuUI3gg5Z83nAE
	 goh1FY7NVFmCLNf5sN+k71390e8WIzIaANaPdgYqVaI8RzYxv61ByAVfXLI/mzF+wu
	 3YlBo/43Xr5R+3UyXSNwnPfo9dm0cAWWiif/zAYU9aoa61XWYnOsPDNqDxU9dNpltW
	 /pzKbozhHEemYRqQUa3argh3AdkeqTY3fCmdTXZEUCg3OwCuXeajKDfJYuSjtyk1zS
	 1yrJ9+Mno04/8rvLkR0uIY/IZMnvVBwsq7ouK7LO1ic0/GKTZ9ZpAUIv8Yzl7L8isS
	 rZsX9Rt3w/17A==
MIME-Version: 1.0
Date: Wed, 10 Dec 2025 22:11:34 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
 <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH 5/5] x86: Fix missing brackets in macros
In-Reply-To: <20251210183019.2241560-6-andrew.cooper3@citrix.com>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
 <20251210183019.2241560-6-andrew.cooper3@citrix.com>
Message-ID: <a48dece01f70c18be88692e10120599a@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-12-10 19:30, Andrew Cooper wrote:
> With the wider testing, some more violations have been spotted.  This
> addresses violations of Rule 20.7 which requires macro parameters to be
> bracketed.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: consulting@bugseng.com <consulting@bugseng.com>
> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
>  xen/arch/x86/mm/shadow/multi.c     | 2 +-
>  xen/arch/x86/mm/shadow/private.h   | 6 +++---
>  xen/drivers/passthrough/vtd/dmar.h | 2 +-
>  xen/include/xen/kexec.h            | 4 ++--
>  4 files changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/xen/arch/x86/mm/shadow/multi.c 
> b/xen/arch/x86/mm/shadow/multi.c
> index 03be61e225c0..36ee6554b4c4 100644
> --- a/xen/arch/x86/mm/shadow/multi.c
> +++ b/xen/arch/x86/mm/shadow/multi.c
> @@ -781,7 +781,7 @@ do {                                                
>                     \
>          (_sl1e) = _sp + _i;                                            
>  \
>          if ( shadow_l1e_get_flags(*(_sl1e)) & _PAGE_PRESENT )          
>  \
>              {_code}                                                    
>  \
> -        if ( _done ) break;                                            
>  \
> +        if ( (_done) ) break;                                          
>  \
>          increment_ptr_to_guest_entry(_gl1p);                           
>  \
>      }                                                                  
>  \
>      unmap_domain_page(_sp);                                            
>  \
> diff --git a/xen/arch/x86/mm/shadow/private.h 
> b/xen/arch/x86/mm/shadow/private.h
> index cef9dbef2e77..93834ec55c42 100644
> --- a/xen/arch/x86/mm/shadow/private.h
> +++ b/xen/arch/x86/mm/shadow/private.h
> @@ -636,9 +636,9 @@ prev_pinned_shadow(struct page_info *page,
>  }
> 
>  #define foreach_pinned_shadow(dom, pos, tmp)                    \
> -    for ( pos = prev_pinned_shadow(NULL, (dom));                \
> -          pos ? (tmp = prev_pinned_shadow(pos, (dom)), 1) : 0;  \
> -          pos = tmp )
> +    for ( (pos) = prev_pinned_shadow(NULL, dom);                \
> +          (pos) ? (tmp = prev_pinned_shadow(pos, dom), 1) : 0;  \
> +          (pos) = tmp )
> 
>  /*
>   * Pin a shadow page: take an extra refcount, set the pin bit,
> diff --git a/xen/drivers/passthrough/vtd/dmar.h 
> b/xen/drivers/passthrough/vtd/dmar.h
> index 0ff4f365351f..11590f71a828 100644
> --- a/xen/drivers/passthrough/vtd/dmar.h
> +++ b/xen/drivers/passthrough/vtd/dmar.h
> @@ -124,7 +124,7 @@ struct acpi_atsr_unit 
> *acpi_find_matched_atsr_unit(const struct pci_dev *);
>  do {                                                \
>      s_time_t start_time = NOW();                    \
>      while (1) {                                     \
> -        sts = op(iommu->reg, offset);               \
> +        sts = op((iommu)->reg, offset);             \
>          if ( cond )                                 \
>              break;                                  \
>          if ( NOW() > start_time + DMAR_OPERATION_TIMEOUT ) {    \
> diff --git a/xen/include/xen/kexec.h b/xen/include/xen/kexec.h
> index e66eb6a8e593..5dd288d1a50e 100644
> --- a/xen/include/xen/kexec.h
> +++ b/xen/include/xen/kexec.h
> @@ -66,9 +66,9 @@ void vmcoreinfo_append_str(const char *fmt, ...)
>  #define VMCOREINFO_PAGESIZE(value) \
>         vmcoreinfo_append_str("PAGESIZE=%ld\n", value)
>  #define VMCOREINFO_SYMBOL(name) \
> -       vmcoreinfo_append_str("SYMBOL(%s)=%lx\n", #name, (unsigned 
> long)&name)
> +       vmcoreinfo_append_str("SYMBOL(%s)=%lx\n", #name, (unsigned 
> long)&(name))
>  #define VMCOREINFO_SYMBOL_ALIAS(alias, name) \
> -       vmcoreinfo_append_str("SYMBOL(%s)=%lx\n", #alias, (unsigned 
> long)&name)
> +       vmcoreinfo_append_str("SYMBOL(%s)=%lx\n", #alias, (unsigned 
> long)&(name))
>  #define VMCOREINFO_STRUCT_SIZE(name) \
>         vmcoreinfo_append_str("SIZE(%s)=%zu\n", #name, sizeof(struct 
> name))
>  #define VMCOREINFO_OFFSET(name, field) \

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 21:59:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 21:59:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183376.1506098 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTSCy-0003kw-5m; Wed, 10 Dec 2025 21:58:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183376.1506098; Wed, 10 Dec 2025 21:58:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTSCy-0003kp-37; Wed, 10 Dec 2025 21:58:52 +0000
Received: by outflank-mailman (input) for mailman id 1183376;
 Wed, 10 Dec 2025 21:58:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8oeO=6Q=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vTSCw-0003kj-O0
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 21:58:50 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 66f392a3-d613-11f0-9cce-f158ae23cfc8;
 Wed, 10 Dec 2025 22:58:48 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 2D1464412A;
 Wed, 10 Dec 2025 21:58:46 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5E104C4CEF7;
 Wed, 10 Dec 2025 21:58:45 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 66f392a3-d613-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765403926;
	bh=dyoJtzuAd9fl+ADZptUpXBBHb1oaAKHEGVibRWZ96T0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=s36oM1TtGV4dobM2nHDqfwZT2iUx5VspNh2RK+XgBEhCy3dV7LA7g34aD8cQ70u3A
	 Hoc3HercoW5Wb9dG11tKZHitfqixdQVqYMBHnFOeeq+xkrKhKs2LFyjub9ZKAQDnrB
	 gsaeN315H9o1yAkgIWt6rEyN9dNxVvxbQ5Xj/8VZw/Z5WIqxsBLbY1lRqQjz/NIDOu
	 eEE5YjnQ5eYkrKsgfu+GtKufNQeaHPH31mOXSJ0QHWb73xDk9o8dFKU4HyFtWIswfD
	 /ZW9iiFoPzYlyLJ1b3ridnr/nhK8x2YXIC3HaPfTZdE8tEmjaWADXVLzOy2QmLz/W0
	 1NZSRMbGE5c/Q==
Date: Wed, 10 Dec 2025 13:58:44 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v4 4/6] CI: Add driver domains tests
In-Reply-To: <aTnezVY1NoE-vZRF@mail-itl>
Message-ID: <alpine.DEB.2.22.394.2512101344130.19429@ubuntu-linux-20-04-desktop>
References: <cover.b56a66dfe4d98db2f1cc8b1fe0c2091d02cebe38.1764989098.git-series.marmarek@invisiblethingslab.com> <cf2a2544fe27fedca5129b61912c064f4be08236.1764989098.git-series.marmarek@invisiblethingslab.com> <alpine.DEB.2.22.394.2512091534060.19429@ubuntu-linux-20-04-desktop>
 <aTjOBpuKMSO4LzzN@mail-itl> <alpine.DEB.2.22.394.2512101219460.19429@ubuntu-linux-20-04-desktop> <aTnezVY1NoE-vZRF@mail-itl>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1231701061-1765403884=:19429"
Content-ID: <alpine.DEB.2.22.394.2512101358120.19429@ubuntu-linux-20-04-desktop>

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1231701061-1765403884=:19429
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2512101358121.19429@ubuntu-linux-20-04-desktop>

On Wed, 10 Dec 2025, Marek Marczykowski-Górecki wrote:
> > > > > +    mkfs.ext4 -d . ../domU-rootfs.img 1024M
> > > > 
> > > > Do we really need 1GB? I would rather use a smaller size if possible.
> > > > I would rather use as little resources as possible on the build server
> > > > as we might run a few of these jobs in parallel one day soon.
> > > 
> > > This will be a sparse file, so it won't use really all the space. But
> > > this size is the upper bound of what can be put inside.
> > > That said, it's worth checking if sparse files do work properly on all
> > > runners in /build. AFAIR some older docker versions had issues with that
> > > (was it aufs not supporting sparse files?).
> > 
> > I ran the same command on my local baremetal Ubuntu dev environment
> > (arm64) and it created a new file of the size passed on the command
> > line (1GB in this case). It looks like they are not sparse on my end. If
> > the result depends on versions and configurations, I would rather err on
> > the side of caution and use the smallest possible number that works.
> 
> Hm, interesting. What filesystem is that on?
> 
> On my side it's definitely sparse (ext4):
> 
>     [user@disp8129 Downloads]$ du -sch
>     12K	.
>     12K	total
>     [user@disp8129 Downloads]$ mkfs.ext4 -d . ../domU-rootfs.img 1024M
>     mke2fs 1.47.2 (1-Jan-2025)
>     Creating regular file ../domU-rootfs.img
>     Creating filesystem with 262144 4k blocks and 65536 inodes
>     Filesystem UUID: f50a5dfe-4dcf-4f3e-82d0-3dc54a788ab0
>     Superblock backups stored on blocks: 
>         32768, 98304, 163840, 229376
> 
>     Allocating group tables: done                            
>     Writing inode tables: done                            
>     Creating journal (8192 blocks): done
>     Copying files into the device: done
>     Writing superblocks and filesystem accounting information: done
> 
>     [user@disp8129 Downloads]$ ls -lhs ../domU-rootfs.img 
>     33M -rw-r--r--. 1 user user 1.0G Dec 10 21:45 ../domU-rootfs.img

I went and check two of the runners, one ARM and one x86, and it looks
like they support sparse outside and inside containers. They should have
all the same configuration so I think we can assume they support sparse
files appropriately.

So it looks like it OK. But please could you add an in-code comment to
highlight that the file created will be sparse?


> > > > Moreover this script will be run inside a container which means this
> > > > data is probably in RAM.
> > > 
> > > Are runners configured to use tmpfs for /build? I don't think it's the
> > > default.
> > 
> > I don't know for sure, they are just using the default. My goal was to
> > make our solution more reliable as defaults and configurations might
> > change.
> > 
> > 
> > > > The underlying rootfs is 25M on both ARM and x86. This should be at most
> > > > 50M.
> > > 
> > > Rootfs itself is small, but for driver domains it needs to include
> > > toolstack too, and xen-tools.cpio is over 600MB (for debug build).
> > > I might be able to pick just the parts needed for the driver domain (xl
> > > with its deps, maybe some startup scripts, probably few more files), but
> > > it's rather fragile.
> > 
> > My first thought is to avoid creating a 1GB file in all cases when it
> > might only be needed for certain individual tests. Now, I realize that
> > this script might end up only used in driver domains tests but if not, 
> 
> Indeed this script is specifically about driverdomains test.
> 
> > I
> > would say to use the smallest number depending on the tests, especially
> > as there seems to be use a huge difference, e.g. 25MB versus 600MB.
> > 
> > My second thought is that 600MB for just the Xen tools is way too large.
> > I have alpine linux rootfs'es with just the Xen tools installed that are
> > below 50MB total. I am confused on how we get to 600MB. It might be due
> > to QEMU and its dependencies but still going from 25MB to 600MB is
> > incredible!
> 
> Indeed it's mostly about QEMU (its main binary itself takes 55MB),
> including all bundled firmwares etc (various flavors of edk2 alone take
> 270MB). There is also usr/lib/debug which takes 85MB.
> But then, usr/lib/libxen* combined takes almost 50MB.
> 
> OTOH, non-debug xen-tools.cpio takes "just" 130MB.

Can we use the non-debug xen-tools.cpio and also can we remove all the
bundled firmware? Do we really need EDK2 for instance?

I don't think it is worth doing an in-details analysis of what binaries
to keep and what to remove, but at least removing the unnecessary
in-guest firmware and ideally chosing a non-debug build sounds
reasonable?
--8323329-1231701061-1765403884=:19429--


From xen-devel-bounces@lists.xenproject.org Wed Dec 10 23:49:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Dec 2025 23:49:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183399.1506108 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTTvZ-00088z-MY; Wed, 10 Dec 2025 23:49:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183399.1506108; Wed, 10 Dec 2025 23:49:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTTvZ-00088s-J3; Wed, 10 Dec 2025 23:49:01 +0000
Received: by outflank-mailman (input) for mailman id 1183399;
 Wed, 10 Dec 2025 23:49:00 +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
 <SRS0=iyob=6Q=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vTTvY-00088j-AJ
 for xen-devel@lists.xenproject.org; Wed, 10 Dec 2025 23:49:00 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cb89fc97-d622-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 00:48:58 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH7PR03MB7858.namprd03.prod.outlook.com (2603:10b6:610:24a::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Wed, 10 Dec
 2025 23:48:55 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Wed, 10 Dec 2025
 23:48:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cb89fc97-d622-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IA1AgH4LZXwTAazd5RsAdN00dT0uq4erPVWulxD7A6ufi29QCyjbNQQrpu8nELiWudGVOFH8FkcDsJJhD2O2Tb52Lwd97FxOIKd3E3gl3gIKIgIsgSErIvtaktW4ZCAttVOPhKUyLCeKEIf1JQ2kRuUS/6nZSbOjyUKb+cPNPWLcSikWzhrLPDc8dveDWdC300unCMbyK/2CuBJx01km8ffe63tbnG1zVhzsJA1pKedQQL50dx9WGZiZXgAD2ULxBJqHD5cjttqnq08bFjP11RwdQywFog7kONn6b3coW/ePz6YAOyQqTvlN202g0DkyXvdNeZREqSQjkBWlMGep4Q==
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=jhMIduWsaFkCdEc76PVfzyk88I9YH9AxedKQH0bu3cU=;
 b=N0CH9p0IW+WTmYv0KcOxyRWJ6ZezbsyHQQjA31wWQL1CVoRhbj6VEFAzbnRLIjgLh5GAVqnF6ke1FxwhLXWqW2GCMsdAh3M69x95HO9X9jIgHiu7gIDJhtDaH0s9ONz0YSQk/igULcu2kEvSjNwcnGdhhMzzvVTH13oMc6xKVfnjQ5RBxdiyku3pyvzE6yk/KlkU7yfK8Knz+kEQA3gJAzT7eQV8Jr3ysMiKg4n5uQfnyKtiOuGqLoIz6RjBkplqu1z5pRxAi7uibk3sXQ331iIs8kgz+efJ6FE71y7KieBfJIYB1jP3YKdIHHO53cdQ31ovb0M/JEg+hE0etI4+mw==
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=jhMIduWsaFkCdEc76PVfzyk88I9YH9AxedKQH0bu3cU=;
 b=DhtUxAcIerx9a0Kyxe97PpVfhfc5+A8/sbX0aN26RTRnY3lzFblbVN6cywsh1YfCMSQhlBhE/nzDlVZS58d089PuuFfXVSxrPdIb0e1g/PdxDY3m5HgbEsMs2ATePsTTe7js1pnKmHa/kcYQgF+VBVYX0YxBJElPGkG2Ht2xjK4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <673e625a-4df9-45fe-a45d-49d988197da8@citrix.com>
Date: Wed, 10 Dec 2025 23:48:51 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich <JBeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH 1/5] x86: Misra fixes for U/L suffixes
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
 <20251210183019.2241560-2-andrew.cooper3@citrix.com>
 <c9c7deeecc839295d04c5374691f848d@bugseng.com>
 <aa03d225a116bbb5db0e7a0df61161b5@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <aa03d225a116bbb5db0e7a0df61161b5@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0333.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18c::14) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH7PR03MB7858:EE_
X-MS-Office365-Filtering-Correlation-Id: 09836c4f-c408-42ed-4d37-08de3846add2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QjJ6elVXdzUvVHNSdUJnNHpMcG8zNitJZUlUN2hQOE5BYU1HT0F6V1loVHpV?=
 =?utf-8?B?V3pyTE1wZ3hjMkZZL0toU29SdzA0Sjc1b1p2KzdyVlZ6NEdCV1RxV0dhUXQ3?=
 =?utf-8?B?RnV3bGJJWkxibEwyN0JMMDFKQytsYS9FeGk2TVBpa1NsdEpNaStVTnEzTWtq?=
 =?utf-8?B?aVlVOGJ2RTVEa0phV1R4Z1oxVzR0bXBGd3cwVlBsR01jWGtBMnc0aXJITTFo?=
 =?utf-8?B?OVFBU3Q0S3BhanAxVytRdVBZTndrMUlLMWJzb3JpR0t4R2QyVDhLbHhXNzVS?=
 =?utf-8?B?dDlWRXAzY0pQVEU1WXo0dEZ2NGJ3WG1DS0d6djdFM1JPYThFekxzZzliSEQr?=
 =?utf-8?B?RWZvd1dwL1VqUDhnMVZHcFRmVnFPZEFHSkRpY0RjUjRDeXFOcHAyQ0MzcEZw?=
 =?utf-8?B?Rk41ZVVSeFd6UlI3dENQanJldEFvUUdDa0FXTlM5MlV0K3NubGtNSi9OeDd0?=
 =?utf-8?B?LzhUcUEyeTlKNm1YRS91SzdGSjQxdXMvdEhSWXVscWQ1TXI4WkFCOHI2bE1W?=
 =?utf-8?B?WUFhMHliNE1TcVJVUkR5aGRFUUxYbzl4RnF4OVZrNndIWTJ3WUU1Q3Juc1hz?=
 =?utf-8?B?SkcrRUkreTBSbzJUcHRMZlJOUlRNWUdlMjQvWHlSTkdwNS9vbDFwaXQ2dHdh?=
 =?utf-8?B?LzFQNXNWVmM0dVo1anNzSWdJc21WL05ldXdjVHhGNW1uT0pyTGpRRVFubzVp?=
 =?utf-8?B?empOQmoybFlHWEgrdWtod0M0dC81YWNjUHBBbTJKdzFhd3l5cnRVdnlSemdI?=
 =?utf-8?B?WnRFaTk0Qkl5TlBqVmhhLzJiV1ZIeGZMOUd2Skt3WC9iZW54cHd1SFV1NVpF?=
 =?utf-8?B?N3BzUmxkRHY0c3BNNm1kQ2tXZXQxK0s3S2dRN3lFcEl3MGRkeWF1VDVES2FX?=
 =?utf-8?B?dGx3YVc3YzRTRklGTjBqdGtYS3YzN2hRYUNyVlhMdFBQQkJLMEczcnI1YUtP?=
 =?utf-8?B?QnJJbnpMeWRueldKZHN2TGdTNWdNMUd6VjRqMThsbEFha3lyQXczdm0xQzJ2?=
 =?utf-8?B?Nmx5TFdQOC8rczM3amZtbVNvamZWQm9sbEVlU0plU0svbEVzRDJyTjgwZWYx?=
 =?utf-8?B?ODZLRWJVSVlYcWRHMGVxUkxONERpS29GWHZMUkw5REpEZXNacXlmd21sUjJu?=
 =?utf-8?B?cUZXYXJLVmltZ0ExVEtNK2g3eWdOemJ5cGVDb0xpclZiMHVQQTN2OE52ZFlv?=
 =?utf-8?B?a1JPRStDRnVEcE1sOUZXaXJEdlJ1eDhiSWczRlF0bHZYcGFMNENleUw4NThV?=
 =?utf-8?B?dFRreDBzR2FZL2pGbDR6aElTVGNPcmUrQkZ0V0JnZjJrOFFDNUdrcCsvOW0v?=
 =?utf-8?B?KzJMQ0Uza2tXOElqNEkyc3BvL1ZoYmdEK2FPMVBDRGZLUVNMZWJ0ZGw1N1NC?=
 =?utf-8?B?T1d0SFpUbWtibVBSUlE1UUMxN2dITFpoaTF1NTZaZ3lSUm1kZ2JpSS9NNmJl?=
 =?utf-8?B?K1BrOXcrYzljOXExdEFCZUhGMThTS2dUb0xYRVoycnl1U2ZRK3RtclFqcUpr?=
 =?utf-8?B?RGo4WlYvVjVFN3ByWDhTeU4yQS9kQmlTVFdEM3JUOFFFU0YyemtPSXJWYjdJ?=
 =?utf-8?B?ajZib25aNkFWRXJhdW9Cdm1DaHVSeC83Q3psZlcrSU1JV0hCQkREQnNyRXQw?=
 =?utf-8?B?cDJMbmZQbjRYK2xQMUE2N1p4UGk1WDdlTWZaOHhvZFhjM3puNWVZcjNxTWx3?=
 =?utf-8?B?aDc5RXhpQkRwajdXeEY1WnUzcmdkK2pIY09KQUpmYWFQZlNjSFJSVVpsM0d6?=
 =?utf-8?B?T2pNZSt4aWN1bElQQWZDdy8zcWVPMVliUVpMRTlyM3FCbTA4K0JnelpYQ3c2?=
 =?utf-8?B?ckZIV1JadzlwQ2FKck9JclJodFdZcXpOcFdxODZ0Y1NYdzlSeHV1SmJnZkV4?=
 =?utf-8?B?WklwYXNOUytseWFrbFB4U2t6WVRXVXBOaUlYd3FSTzVvdmppaDk4VWNuclFW?=
 =?utf-8?B?WTgvTHJlMVoxL0RaVkt1K0dpcVB6azBic3RlemNHeDdLNEVOc2UvcUtGb1hy?=
 =?utf-8?B?UjFtK3BDTTdnPT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MFI5MU5oQnRkc2xQTFBvUzJwdlFwWE9vSTBPWVBzWXFFalQwVnJxallvaFpo?=
 =?utf-8?B?OW4zVWoxRGhDQXdlRmd2ZUFTS0c2a3FrNks5QzBEOVBjQ1ZYa2srNGFhaFo1?=
 =?utf-8?B?OUwvNjBtWktGUXVaWDdXVVdlTjBuM3B4aWNwMXp5cmxqWXpiY3M3eHhteVBC?=
 =?utf-8?B?eVJ2aU12OGhiSHR2UnBlVUJISUtpSlUwL1lQaS9CN2krTktDN1l5dWF1bXk2?=
 =?utf-8?B?OVMrUWtHREJ6S2JrczNqaHVabWppNXYvN3RtQjM1aS9sdGs4ZHhoYmhvLzNj?=
 =?utf-8?B?SFFmTThPOEZlM0VOSjdPaVpFV1g0aVcwVzk0b0ZSSG5YY1dhMVMyNk44eVgr?=
 =?utf-8?B?VThJVEh0ZUF3ZWgxTmlqVm5qZi9tMHNVL0VVMW1RU1J1aU9FSW5ncG1EcDhr?=
 =?utf-8?B?Z1JYVGJZRHJZaituMlZCN0hZVU1pT0J4Yk5Ha3g2QUpmb1dsRlVuZC8vUGRi?=
 =?utf-8?B?SXgvaWI3bGlyOVRCN0RhMjd6WVlvWVVsMWhaY0VCZE1waDJ4ZWs1MTdYN2pY?=
 =?utf-8?B?V0hDWVRLeS9UZFgveDhIWWN3b0p6TnBiZWVrVGVzb2xEK1F6Z3l2V0lWVUJi?=
 =?utf-8?B?Tng4aS9zSVIycEpVT09OSk9yS3ZDeEJCTzlxb1RXdkVxZ2xnQ285OW52MWg4?=
 =?utf-8?B?Q0xwVGp0Qmk2WlNodUFGbkF0b1FKVHJ4OWd1RDFXQkZQUGpLejc4dVdWYzFC?=
 =?utf-8?B?T2x0azMrbklPZXNKMmRPeWllNUYzWmxTK3E1T0ZhcGUvd3lQSE1SWjNPNXhR?=
 =?utf-8?B?QVdmRFpJNTFYTzArWGNvU2RnQkROa3VXMWFGTGlNVW5mVktVQXdrclV6a2g3?=
 =?utf-8?B?bm5WckV5MGJmamdnYjhaL28xSTJ6aVVCajEyQnlWSVFjMG1ESUxmUXVRb1pJ?=
 =?utf-8?B?dmZvZlJSQmp3SjRDZUc3QmgzWjZDVjZzb3h2c1FxdEZOZEhWNWFJV0RUVmZj?=
 =?utf-8?B?emQwbkpCOFVXMHprWk1NaWZ6eDhLWUdnRGhVMndtNHo3R0JkNnJSR0NvY2dx?=
 =?utf-8?B?UHAwTzFNNjhkSkZFd3FoOHQ0ZzlLWjlHazMwVzk3dVNNNTRRdkxKVmU3NUUx?=
 =?utf-8?B?RWNzYWZaVDhrR3duS0pnVGJ3L3RONTZWeWgvT3R2TytQdzVKUiszaUZ5WTJE?=
 =?utf-8?B?NlNiRVBqR3NjcVoveGFObS82UElDZG5UbFphYzFwODJKU1BrMTUrSEdwc2NT?=
 =?utf-8?B?UjdLRSticnBRMERCRGVqNjlEN0RqRC8yQUp0M0wxZE8zbGZRaTJQWVFUVGFk?=
 =?utf-8?B?Q0EvcnVsZU9mSUd3SzhmQnhiYS9Zc0YvWXVid0QrZks1TlA0RE5IWit1Y2o0?=
 =?utf-8?B?QnRZdnR3MGQrNjY2a1JNMnZrdytaNzlIZnViWHZYNWVJRTVuNWx1dHVsMjhV?=
 =?utf-8?B?N1FDOXFPL1AvZzJBR0VEcUFGcWxSV2tHQUo2SGpmMTZyNldjb3dwUzFVeUQv?=
 =?utf-8?B?d0xtclh5aTA4K0VJVkpKaitMaktuQjk3SkpmaXNXVTROQytyOVNaWDFZM0ZT?=
 =?utf-8?B?YlVuSFBnZlhQK01aa3ZWNm1lY2pnS2ZKSVNwRlV4Ynl5NWlldk9qZmozRTFl?=
 =?utf-8?B?a2VtSUFrVS9JN2JtN0lGVi84T3ZjcURmamI0SHhwc0pMWXEwUUI2ZkROZG02?=
 =?utf-8?B?dTd1aEtDL2FFM0JhWHlUSDlrOWdBcWxvU29sbVkzcEQ5eFc1RmdEcDF4cFR2?=
 =?utf-8?B?YjN1M20yTkRjaStlT20wOFdPNVIrZjF2MWgyT3c1U0ttWDFhcmMyUTMzM01H?=
 =?utf-8?B?bFluN2tSbVl6VXRPcGFLbURzd0RJKy9pSjhSdkNPVzRPM21vSUZVZXBibTRV?=
 =?utf-8?B?TFlmVi93aVJDZjBqN2xQamxCSC9WRUFnRGZYUkFHSWxFemsweU9Yd0l3Q204?=
 =?utf-8?B?SVhTMWZFY3Rjd0l1dktnVHQ0dEJDdmpUUTc5aHVSK2wzdUJkL0xEbEszSXBD?=
 =?utf-8?B?VXExUFk3am04NHNzMVJrM1cwNjdGWldxK1Q5SkowNDhqV2VEQ0VsSndaZUg1?=
 =?utf-8?B?MFhtTWxsVGQyVVpEWnFGdVdOZnVzd1dIM2RvQmxTZVNyaklET0Z0SDdYdVZK?=
 =?utf-8?B?MkdFWENtdEhVQ3lIczducURkNDVFdmhob1dxRUlIV3RHYk9yL2tYUnJjU2gr?=
 =?utf-8?B?NDR2SW0vRW16S3dWNk8yNWlRYlErbjk3ZU01enRXMVpCM1BkbXNMRkNOc09N?=
 =?utf-8?B?SFE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 09836c4f-c408-42ed-4d37-08de3846add2
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2025 23:48:54.9676
 (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: VOT8x8uGXfohaRtBMvDsuCLwzEd8erjD4+65A9tRh5Nuovkvw/TTJumYKzbTFA5JgIP2APxhF3bfkRtwsZLwinGnbJhz87R9/ZdR9T4YCJk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH7PR03MB7858

On 10/12/2025 8:31 pm, Nicola Vetrini wrote:
> On 2025-12-10 21:09, Nicola Vetrini wrote:
>> On 2025-12-10 19:30, Andrew Cooper wrote:
>>> diff --git a/xen/include/xen/elfstructs.h
>>> b/xen/include/xen/elfstructs.h
>>> index eb6b87a823a8..8770e7454672 100644
>>> --- a/xen/include/xen/elfstructs.h
>>> +++ b/xen/include/xen/elfstructs.h
>>> @@ -360,7 +360,7 @@ typedef struct {
>>>  } Elf64_Rela;
>>>
>>>  #define    ELF64_R_SYM(info)    ((info) >> 32)
>>> -#define    ELF64_R_TYPE(info)    ((info) & 0xFFFFFFFF)
>>> +#define    ELF64_R_TYPE(info)    ((uint32_t)(info))
>
> Actually I think this doesn't build:
>
> arch/x86/livepatch.c: In function ‘arch_livepatch_perform_rela’:
> ././include/xen/config.h:55:24: error: format ‘%lu’ expects argument
> of type ‘long unsigned int’, but argument 3 has type ‘unsigned int’
> [-Werror=format=]
>    55 | #define XENLOG_ERR     "<0>"
>       |                        ^~~~~
> arch/x86/livepatch.c:332:20: note: in expansion of macro ‘XENLOG_ERR’
>   332 |             printk(XENLOG_ERR LIVEPATCH "%s: Unhandled
> relocation %lu\n",
>       |                    ^~~~~~~~~~
> arch/x86/livepatch.c:332:69: note: format string is defined here
>   332 |             printk(XENLOG_ERR LIVEPATCH "%s: Unhandled
> relocation %lu\n",
>      
> |                                                                   ~~^
>      
> |                                                                     |
>      
> |                                                                    
> long unsigned int
>      
> |                                                                   %u
>
> the error location is a bit unclear, but the cast is the culprit

Yeah, I spotted that just as I heading out, and ran
https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2207521982
instead.

I've swapped back to using 0xFFFFFFFFU.  info ends up being long, and
the result of the expression needs to stay that way.

However, looking at the report for that, I still missed one.  I've
folded in this hunk too.

diff --git a/xen/arch/x86/pv/emulate.c b/xen/arch/x86/pv/emulate.c
index 8c44dea12330..e741e686c1af 100644
--- a/xen/arch/x86/pv/emulate.c
+++ b/xen/arch/x86/pv/emulate.c
@@ -37,7 +37,7 @@ int pv_emul_read_descriptor(unsigned int sel, const struct vcpu *v,
     if ( !(desc.b & _SEGMENT_L) )
     {
         *base = ((desc.a >> 16) + ((desc.b & 0xff) << 16) +
-                 (desc.b & 0xff000000));
+                 (desc.b & 0xff000000U));
         *limit = (desc.a & 0xffff) | (desc.b & 0x000f0000);
         if ( desc.b & _SEGMENT_G )
             *limit = ((*limit + 1) << 12) - 1;


~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 00:06:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 00:06:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183417.1506118 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTUCh-00036H-9L; Thu, 11 Dec 2025 00:06:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183417.1506118; Thu, 11 Dec 2025 00:06:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTUCh-00036A-6g; Thu, 11 Dec 2025 00:06:43 +0000
Received: by outflank-mailman (input) for mailman id 1183417;
 Thu, 11 Dec 2025 00:06: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
 <SRS0=k3Jk=6R=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vTUCf-000364-SU
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 00:06:41 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 442abe20-d625-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 01:06:40 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 53E806011E;
 Thu, 11 Dec 2025 00:06:38 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 21894C4CEF1;
 Thu, 11 Dec 2025 00:06:37 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 442abe20-d625-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765411598;
	bh=yRc9t9/N4g1pgugjP4Fx/9kFP8G3ynGxtVmYqPb1VCE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=oDgcWit232fyOY8vSp7OhSYRpjaUTBiEMomS5ZTtHEYPVvUpAszyCi+kc19ogOnmg
	 n/urLFxBLU+s4o4+xQKXL0MRyoWplE1ItGjwnL+dK+Yvrx4l0NY1Rd2rH40K+srC0m
	 LLU2Pf2W1u8hzJdhpf+EKQiEFaJCXH1tIFtx7wVe/P7BVs9u3IkiJFn+aT99Wqqztw
	 iLXB33Wqk+ah5OMbx4JKB4zK0qSBNBq49pWTg8BQlCOLHKfpZwT1bcRgJhAIfV04dp
	 eNTyxSK8Pr0Cxt2xYJ0CoYN088SvUDgsFy60UtBHStprXFnFYifCcGjxrBmzDKLKCp
	 jxUfkM7aTDmAg==
Date: Wed, 10 Dec 2025 16:06:35 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: Andrew Cooper <andrew.cooper3@citrix.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>, 
    Jan Beulich <JBeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH 3/5] x86/ucode: Don't cast away const-ness in
 cmp_patch_id()
In-Reply-To: <c260c81b7be1e5b27cd6c6705709c060@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2512101606290.19429@ubuntu-linux-20-04-desktop>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com> <20251210183019.2241560-4-andrew.cooper3@citrix.com> <c260c81b7be1e5b27cd6c6705709c060@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 10 Dec 2025, Nicola Vetrini wrote:
> On 2025-12-10 19:30, Andrew Cooper wrote:
> > Fixes a volation of MISRA rule 11.8.
> > 
> > No functional change.
> > 
> > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 00:08:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 00:08:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183427.1506127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTUE2-0003jZ-IJ; Thu, 11 Dec 2025 00:08:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183427.1506127; Thu, 11 Dec 2025 00:08:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTUE2-0003jS-FZ; Thu, 11 Dec 2025 00:08:06 +0000
Received: by outflank-mailman (input) for mailman id 1183427;
 Thu, 11 Dec 2025 00:08:05 +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
 <SRS0=k3Jk=6R=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vTUE1-0003hz-6k
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 00:08:05 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 760ee691-d625-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 01:08:04 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 550FF442E5;
 Thu, 11 Dec 2025 00:08:02 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2113CC4CEF1;
 Thu, 11 Dec 2025 00:08:01 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 760ee691-d625-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765411682;
	bh=uMnkKjf6HQAwqb5npPnDhzCnH+31bLdtzF+AcdjTLgQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=hLnG5gQWZXTMj1yRub8/T2tbnaZcjPxaAZlgmxxTX/+zcXrKq5ZPcht8HpDjPs57C
	 XAjxIzJNAshnIHGp6wTdaYVrWX900IudS16uxUIWWdTm60psLChJQ+YVm7+boR37nJ
	 j1XA+3gWr4TQdY+wGjLAah57N5xDlnFbhYHJifcotWEUvPiCPmbWcfgeWEDIhWctmh
	 IjtrOPTl3GacrehUYG8VxQOd4JReXA5HYXVNFCTmoKwvnkDMsMOrYJL2wEydJjpdp+
	 CkhDiPManGI6MPKPzfsf4kUXJfHm514ojKPf9Xy39v5kQG61FLO6swHny9PzsupGsl
	 DR9bpex1C4pZQ==
Date: Wed, 10 Dec 2025 16:07:59 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: Andrew Cooper <andrew.cooper3@citrix.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>, 
    Jan Beulich <JBeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH 5/5] x86: Fix missing brackets in macros
In-Reply-To: <a48dece01f70c18be88692e10120599a@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2512101607540.19429@ubuntu-linux-20-04-desktop>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com> <20251210183019.2241560-6-andrew.cooper3@citrix.com> <a48dece01f70c18be88692e10120599a@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 10 Dec 2025, Nicola Vetrini wrote:
> On 2025-12-10 19:30, Andrew Cooper wrote:
> > With the wider testing, some more violations have been spotted.  This
> > addresses violations of Rule 20.7 which requires macro parameters to be
> > bracketed.
> > 
> > No functional change.
> > 
> > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 00:08:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 00:08:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183434.1506137 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTUEr-0004EJ-QM; Thu, 11 Dec 2025 00:08:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183434.1506137; Thu, 11 Dec 2025 00:08:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTUEr-0004EC-Nl; Thu, 11 Dec 2025 00:08:57 +0000
Received: by outflank-mailman (input) for mailman id 1183434;
 Thu, 11 Dec 2025 00:08:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WJZb=6R=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vTUEq-0004AW-8b
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 00:08:56 +0000
Received: from fout-a5-smtp.messagingengine.com
 (fout-a5-smtp.messagingengine.com [103.168.172.148])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 93af91ae-d625-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 01:08:53 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfout.phl.internal (Postfix) with ESMTP id 773BBEC0584;
 Wed, 10 Dec 2025 19:08:52 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-06.internal (MEProxy); Wed, 10 Dec 2025 19:08:52 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 10 Dec 2025 19:08:51 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 93af91ae-d625-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1765411732;
	 x=1765498132; bh=ZOLmsFmukC8ujLnf2PqHYgsWbcDo6gJuduQpUltalaA=; b=
	M8M7Bt4ZweM9LS3z0AiYIuS6zlv9xq9GdVYMVLpxU6XBeHb29yLqjkdBGqFpfWJY
	146g60+TAHhnj8LONwEpGvLHOEfjwNBY2GueeNhJQpruRP1aRlP6q38svfHb/ykq
	vpyZpVlWvxOoh8HV1WmEJKUfeAhTD6ZCAhCUwvlc5lCL3YH2vhvrUNc8SqDJVSxY
	IqfAcouMVnWErX5eWU1yeYgdU+aQuNP9aB0ZYjjdiF27WssrN1U6e6PQHxurD4nH
	V/5UkC9n6ooVK11YdL4k5wPnuhxFNMriRcVl5udfzFzeYmZ6jKK8aeMvyTGmdiXE
	pEd5iUWBX+eJxosYKg0yww==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
	1765411732; x=1765498132; bh=ZOLmsFmukC8ujLnf2PqHYgsWbcDo6gJuduQ
	pUltalaA=; b=SRw4dilhNF5IHnTRG3muHDK/TgMkPloKZRqU+jPrq1cw806Sn0q
	smSoWmLrf6EeqrAT4k1vLg2mfa/LwhGTv9y4vC7GX+Zfn+69UtAzI1eekkDcSDVW
	MRMzAk2kJt81MTmVjY3Jpt3iexxXjYIdq3SbPw5pRW9VS3cA6g8ltoqbHtTRzCk+
	T70xVa6xMQ8RiIpxg+MupjZ8UgwAcXZVGqGJzambtvXs6QxSH1zoBYm72wLpXDpj
	fzLkfdCSVZc6S8iaTb8I6y07twDMUpkfL6eSpPHXWHFN0OJnVroqpx/mh74oa+2X
	m19Oeo1d6XBE/QD3xFeCKvaoW92eTlG1hQA==
X-ME-Sender: <xms:lAs6aa0tdKdA85d5gzBEYk_FhNLBf9c9cp-x_b7FEoR9g35F6jJ7Ow>
    <xme:lAs6aUGhKzIt6m6I3uviV7vyGD5uGYlcxYp_Wpa6p8rNOc7qPClINz6qlJXWLHesO
    3stuANiohpVhdp7fbaO9DlXHc71L-GBkBX6FMGKlEnAb62kRw>
X-ME-Received: <xmr:lAs6aX4cSgPfSRaW1BxV3dceblduhnQ00rhQ7-tD1xfTBfQsQJRqPyMnIamanwIO20lEVCPg_sO42Fry7EEnUaVdosYwcwCU9es>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvfeekfecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpeffhffvvefukfhfgggtuggjsehgtdorredttdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpedttedvhfek
    udetvdelffeguedtkeethfethfffhfefteeghfeigeelvddttdektdenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgv
    lhdrohhrghdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhroh
    hjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhr
    ihigrdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtghomh
X-ME-Proxy: <xmx:lAs6aatjb13cdmWFVsoNnRaGprIlSzpcXDSRlYD6NX2fn4YQDI8zew>
    <xmx:lAs6aY5H3rTZxMTT-Xw115vy5j6NePSvOPwV8fc93Er6WrxOD1Eplw>
    <xmx:lAs6aVVZbCAbYHP6sQ2qaKNxB3MDIROHduDWvvghCqOjKBP4LJf42A>
    <xmx:lAs6aa96q75JbQ2tc7cKQFhL3eNCxJKx7_HbViyncTA_uKdxsvUIww>
    <xmx:lAs6aTaMwG1eK0jP1k3ccdjAhOkyjRmkZayk84-3gr7GfpMJKP6jWEjK>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 11 Dec 2025 01:08:49 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v4 4/6] CI: Add driver domains tests
Message-ID: <aToLkaVRGkvtRIKK@mail-itl>
References: <cover.b56a66dfe4d98db2f1cc8b1fe0c2091d02cebe38.1764989098.git-series.marmarek@invisiblethingslab.com>
 <cf2a2544fe27fedca5129b61912c064f4be08236.1764989098.git-series.marmarek@invisiblethingslab.com>
 <alpine.DEB.2.22.394.2512091534060.19429@ubuntu-linux-20-04-desktop>
 <aTjOBpuKMSO4LzzN@mail-itl>
 <alpine.DEB.2.22.394.2512101219460.19429@ubuntu-linux-20-04-desktop>
 <aTnezVY1NoE-vZRF@mail-itl>
 <alpine.DEB.2.22.394.2512101344130.19429@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="Yu4+eA58Gt3/VVXv"
Content-Disposition: inline
In-Reply-To: <alpine.DEB.2.22.394.2512101344130.19429@ubuntu-linux-20-04-desktop>


--Yu4+eA58Gt3/VVXv
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 11 Dec 2025 01:08:49 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v4 4/6] CI: Add driver domains tests

On Wed, Dec 10, 2025 at 01:58:44PM -0800, Stefano Stabellini wrote:
> On Wed, 10 Dec 2025, Marek Marczykowski-G=C3=B3recki wrote:
> > > > > > +    mkfs.ext4 -d . ../domU-rootfs.img 1024M
> > > > >=20
> > > > > Do we really need 1GB? I would rather use a smaller size if possi=
ble.
> > > > > I would rather use as little resources as possible on the build s=
erver
> > > > > as we might run a few of these jobs in parallel one day soon.
> > > >=20
> > > > This will be a sparse file, so it won't use really all the space. B=
ut
> > > > this size is the upper bound of what can be put inside.
> > > > That said, it's worth checking if sparse files do work properly on =
all
> > > > runners in /build. AFAIR some older docker versions had issues with=
 that
> > > > (was it aufs not supporting sparse files?).
> > >=20
> > > I ran the same command on my local baremetal Ubuntu dev environment
> > > (arm64) and it created a new file of the size passed on the command
> > > line (1GB in this case). It looks like they are not sparse on my end.=
 If
> > > the result depends on versions and configurations, I would rather err=
 on
> > > the side of caution and use the smallest possible number that works.
> >=20
> > Hm, interesting. What filesystem is that on?
> >=20
> > On my side it's definitely sparse (ext4):
> >=20
> >     [user@disp8129 Downloads]$ du -sch
> >     12K	.
> >     12K	total
> >     [user@disp8129 Downloads]$ mkfs.ext4 -d . ../domU-rootfs.img 1024M
> >     mke2fs 1.47.2 (1-Jan-2025)
> >     Creating regular file ../domU-rootfs.img
> >     Creating filesystem with 262144 4k blocks and 65536 inodes
> >     Filesystem UUID: f50a5dfe-4dcf-4f3e-82d0-3dc54a788ab0
> >     Superblock backups stored on blocks:=20
> >         32768, 98304, 163840, 229376
> >=20
> >     Allocating group tables: done                           =20
> >     Writing inode tables: done                           =20
> >     Creating journal (8192 blocks): done
> >     Copying files into the device: done
> >     Writing superblocks and filesystem accounting information: done
> >=20
> >     [user@disp8129 Downloads]$ ls -lhs ../domU-rootfs.img=20
> >     33M -rw-r--r--. 1 user user 1.0G Dec 10 21:45 ../domU-rootfs.img
>=20
> I went and check two of the runners, one ARM and one x86, and it looks
> like they support sparse outside and inside containers. They should have
> all the same configuration so I think we can assume they support sparse
> files appropriately.
>=20
> So it looks like it OK. But please could you add an in-code comment to
> highlight that the file created will be sparse?

Sure.

> > > > > Moreover this script will be run inside a container which means t=
his
> > > > > data is probably in RAM.
> > > >=20
> > > > Are runners configured to use tmpfs for /build? I don't think it's =
the
> > > > default.
> > >=20
> > > I don't know for sure, they are just using the default. My goal was to
> > > make our solution more reliable as defaults and configurations might
> > > change.
> > >=20
> > >=20
> > > > > The underlying rootfs is 25M on both ARM and x86. This should be =
at most
> > > > > 50M.
> > > >=20
> > > > Rootfs itself is small, but for driver domains it needs to include
> > > > toolstack too, and xen-tools.cpio is over 600MB (for debug build).
> > > > I might be able to pick just the parts needed for the driver domain=
 (xl
> > > > with its deps, maybe some startup scripts, probably few more files)=
, but
> > > > it's rather fragile.
> > >=20
> > > My first thought is to avoid creating a 1GB file in all cases when it
> > > might only be needed for certain individual tests. Now, I realize that
> > > this script might end up only used in driver domains tests but if not=
,=20
> >=20
> > Indeed this script is specifically about driverdomains test.
> >=20
> > > I
> > > would say to use the smallest number depending on the tests, especial=
ly
> > > as there seems to be use a huge difference, e.g. 25MB versus 600MB.
> > >=20
> > > My second thought is that 600MB for just the Xen tools is way too lar=
ge.
> > > I have alpine linux rootfs'es with just the Xen tools installed that =
are
> > > below 50MB total. I am confused on how we get to 600MB. It might be d=
ue
> > > to QEMU and its dependencies but still going from 25MB to 600MB is
> > > incredible!
> >=20
> > Indeed it's mostly about QEMU (its main binary itself takes 55MB),
> > including all bundled firmwares etc (various flavors of edk2 alone take
> > 270MB). There is also usr/lib/debug which takes 85MB.
> > But then, usr/lib/libxen* combined takes almost 50MB.
> >=20
> > OTOH, non-debug xen-tools.cpio takes "just" 130MB.
>=20
> Can we use the non-debug xen-tools.cpio=20

I can use non-debug one. While debug build of hypervisor changes quite a
lot in terms of test output details, the purpose of this test is mostly
to test toolstack and frontend drivers - and here debug build doesn't
change much.

> and also can we remove all the
> bundled firmware? Do we really need EDK2 for instance?
>=20
> I don't think it is worth doing an in-details analysis of what binaries
> to keep and what to remove, but at least removing the unnecessary
> in-guest firmware and ideally chosing a non-debug build sounds
> reasonable?

Excluding QEMU _for now_ makes sense. But there might be a day when we'd
like to test QEMU backends in a driver domain and/or a domU booted via
UEFI (IIUC such configuration has PV frontend in EDK2 - at least for the
disk - and it makes sense testing if it works with driver domains).

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--Yu4+eA58Gt3/VVXv
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmk6C5EACgkQ24/THMrX
1yyH0ggAk/eUGH6KYLDUq2ff42HWX/kI/i9YO7erfB1su/oPrVhV/Et9LV2kcOUC
dWJzFNNeQ+5oKHXeool3fjYq1Ljog9qk7bkVAiVkir2SP7lFJeuCzFHhy6ceLPUu
3g8teCYYp+KYjSLUNim/BiD9CKsP1SgXi4r2lH0bp7Jx9fAQykx8FaNvlhSX4O7f
d0jFsx16ayYf9tG85H7g7TctyT5Kj2yPixNCjRv0FuuZJgZPMuGHbkZ4z5+E0J16
84i6h+q/vtgDULC4eBQozwdHwey3IyLfK3+Z7vnD31cs/x3bzUFN5a8nkQDRFOw7
IJpAfeLo6o61SCgOrk7XxoizEjWpdA==
=qFZ4
-----END PGP SIGNATURE-----

--Yu4+eA58Gt3/VVXv--


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 00:13:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 00:13:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183449.1506147 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTUJH-0005mb-B3; Thu, 11 Dec 2025 00:13:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183449.1506147; Thu, 11 Dec 2025 00:13:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTUJH-0005mU-7w; Thu, 11 Dec 2025 00:13:31 +0000
Received: by outflank-mailman (input) for mailman id 1183449;
 Thu, 11 Dec 2025 00:13:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k3Jk=6R=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vTUJF-0005mO-Ux
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 00:13:29 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 368b6469-d626-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 01:13:27 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 447E6400E8;
 Thu, 11 Dec 2025 00:13:25 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6FB2AC4CEF1;
 Thu, 11 Dec 2025 00:13:24 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 368b6469-d626-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765412005;
	bh=bIjjfTzKrsyYQmI9VG0FVfnQa3KcpyweiA2xDjLT5O8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=paz8H8KpKAE1fD5OY7RGAu2zxG+LU0kJ550Jlbg9NMxEMiREGtGsWmDCaGnyqWl4Y
	 6PcmHBb8qwoc2fmG6EDno9EAOGcPixFSvJkSoRaxLs96nEHLGT91q9FNYetyqPOQgp
	 rpe+6sJgwIoZ7xprf841zuO0pXjrvzS5pkcscN9cFYbRqBPO1hwcpoL0t/acqg6jZ1
	 h7VQKguIe0wYt1KfUfrLFIvcFVAF7Ccn6narLXivZlYp88Rf/70TB+6yZ0uGcDyO6x
	 wedn4FTSxn/045BRzE9BNPI5xQ2zr7cJo5VfID7q8LN4ZWROIVhxORYu8hlm8N8Npe
	 Oj9RfhT4nLB0g==
Date: Wed, 10 Dec 2025 16:13:22 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v4 4/6] CI: Add driver domains tests
In-Reply-To: <aToLkaVRGkvtRIKK@mail-itl>
Message-ID: <alpine.DEB.2.22.394.2512101612120.19429@ubuntu-linux-20-04-desktop>
References: <cover.b56a66dfe4d98db2f1cc8b1fe0c2091d02cebe38.1764989098.git-series.marmarek@invisiblethingslab.com> <cf2a2544fe27fedca5129b61912c064f4be08236.1764989098.git-series.marmarek@invisiblethingslab.com> <alpine.DEB.2.22.394.2512091534060.19429@ubuntu-linux-20-04-desktop>
 <aTjOBpuKMSO4LzzN@mail-itl> <alpine.DEB.2.22.394.2512101219460.19429@ubuntu-linux-20-04-desktop> <aTnezVY1NoE-vZRF@mail-itl> <alpine.DEB.2.22.394.2512101344130.19429@ubuntu-linux-20-04-desktop> <aToLkaVRGkvtRIKK@mail-itl>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1901508-1765412005=:19429"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1901508-1765412005=:19429
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 11 Dec 2025, Marek Marczykowski-Górecki wrote:
> On Wed, Dec 10, 2025 at 01:58:44PM -0800, Stefano Stabellini wrote:
> > On Wed, 10 Dec 2025, Marek Marczykowski-Górecki wrote:
> > > > > > > +    mkfs.ext4 -d . ../domU-rootfs.img 1024M
> > > > > > 
> > > > > > Do we really need 1GB? I would rather use a smaller size if possible.
> > > > > > I would rather use as little resources as possible on the build server
> > > > > > as we might run a few of these jobs in parallel one day soon.
> > > > > 
> > > > > This will be a sparse file, so it won't use really all the space. But
> > > > > this size is the upper bound of what can be put inside.
> > > > > That said, it's worth checking if sparse files do work properly on all
> > > > > runners in /build. AFAIR some older docker versions had issues with that
> > > > > (was it aufs not supporting sparse files?).
> > > > 
> > > > I ran the same command on my local baremetal Ubuntu dev environment
> > > > (arm64) and it created a new file of the size passed on the command
> > > > line (1GB in this case). It looks like they are not sparse on my end. If
> > > > the result depends on versions and configurations, I would rather err on
> > > > the side of caution and use the smallest possible number that works.
> > > 
> > > Hm, interesting. What filesystem is that on?
> > > 
> > > On my side it's definitely sparse (ext4):
> > > 
> > >     [user@disp8129 Downloads]$ du -sch
> > >     12K	.
> > >     12K	total
> > >     [user@disp8129 Downloads]$ mkfs.ext4 -d . ../domU-rootfs.img 1024M
> > >     mke2fs 1.47.2 (1-Jan-2025)
> > >     Creating regular file ../domU-rootfs.img
> > >     Creating filesystem with 262144 4k blocks and 65536 inodes
> > >     Filesystem UUID: f50a5dfe-4dcf-4f3e-82d0-3dc54a788ab0
> > >     Superblock backups stored on blocks: 
> > >         32768, 98304, 163840, 229376
> > > 
> > >     Allocating group tables: done                            
> > >     Writing inode tables: done                            
> > >     Creating journal (8192 blocks): done
> > >     Copying files into the device: done
> > >     Writing superblocks and filesystem accounting information: done
> > > 
> > >     [user@disp8129 Downloads]$ ls -lhs ../domU-rootfs.img 
> > >     33M -rw-r--r--. 1 user user 1.0G Dec 10 21:45 ../domU-rootfs.img
> > 
> > I went and check two of the runners, one ARM and one x86, and it looks
> > like they support sparse outside and inside containers. They should have
> > all the same configuration so I think we can assume they support sparse
> > files appropriately.
> > 
> > So it looks like it OK. But please could you add an in-code comment to
> > highlight that the file created will be sparse?
> 
> Sure.
> 
> > > > > > Moreover this script will be run inside a container which means this
> > > > > > data is probably in RAM.
> > > > > 
> > > > > Are runners configured to use tmpfs for /build? I don't think it's the
> > > > > default.
> > > > 
> > > > I don't know for sure, they are just using the default. My goal was to
> > > > make our solution more reliable as defaults and configurations might
> > > > change.
> > > > 
> > > > 
> > > > > > The underlying rootfs is 25M on both ARM and x86. This should be at most
> > > > > > 50M.
> > > > > 
> > > > > Rootfs itself is small, but for driver domains it needs to include
> > > > > toolstack too, and xen-tools.cpio is over 600MB (for debug build).
> > > > > I might be able to pick just the parts needed for the driver domain (xl
> > > > > with its deps, maybe some startup scripts, probably few more files), but
> > > > > it's rather fragile.
> > > > 
> > > > My first thought is to avoid creating a 1GB file in all cases when it
> > > > might only be needed for certain individual tests. Now, I realize that
> > > > this script might end up only used in driver domains tests but if not, 
> > > 
> > > Indeed this script is specifically about driverdomains test.
> > > 
> > > > I
> > > > would say to use the smallest number depending on the tests, especially
> > > > as there seems to be use a huge difference, e.g. 25MB versus 600MB.
> > > > 
> > > > My second thought is that 600MB for just the Xen tools is way too large.
> > > > I have alpine linux rootfs'es with just the Xen tools installed that are
> > > > below 50MB total. I am confused on how we get to 600MB. It might be due
> > > > to QEMU and its dependencies but still going from 25MB to 600MB is
> > > > incredible!
> > > 
> > > Indeed it's mostly about QEMU (its main binary itself takes 55MB),
> > > including all bundled firmwares etc (various flavors of edk2 alone take
> > > 270MB). There is also usr/lib/debug which takes 85MB.
> > > But then, usr/lib/libxen* combined takes almost 50MB.
> > > 
> > > OTOH, non-debug xen-tools.cpio takes "just" 130MB.
> > 
> > Can we use the non-debug xen-tools.cpio 
> 
> I can use non-debug one. While debug build of hypervisor changes quite a
> lot in terms of test output details, the purpose of this test is mostly
> to test toolstack and frontend drivers - and here debug build doesn't
> change much.
> 
> > and also can we remove all the
> > bundled firmware? Do we really need EDK2 for instance?
> > 
> > I don't think it is worth doing an in-details analysis of what binaries
> > to keep and what to remove, but at least removing the unnecessary
> > in-guest firmware and ideally chosing a non-debug build sounds
> > reasonable?
> 
> Excluding QEMU _for now_ makes sense. But there might be a day when we'd
> like to test QEMU backends in a driver domain and/or a domU booted via
> UEFI (IIUC such configuration has PV frontend in EDK2 - at least for the
> disk - and it makes sense testing if it works with driver domains).

Ok, in that case, let's go with excluding QEMU and EDK2. While there
might be cases in the future where one or both are needed I don't think
is a good idea to increase the rootfs size for all tests including the
ones where they are not needed.
--8323329-1901508-1765412005=:19429--


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 01:28:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 01:28:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183474.1506158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTVTd-0005vH-FQ; Thu, 11 Dec 2025 01:28:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183474.1506158; Thu, 11 Dec 2025 01:28:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTVTd-0005v9-BJ; Thu, 11 Dec 2025 01:28:17 +0000
Received: by outflank-mailman (input) for mailman id 1183474;
 Thu, 11 Dec 2025 01:28:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Rmkk=6R=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vTVTb-0005v1-F2
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 01:28:15 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a7fa9927-d630-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 02:28:12 +0100 (CET)
Received: from BL1P223CA0029.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:2c4::34)
 by CY5PR12MB6597.namprd12.prod.outlook.com (2603:10b6:930:43::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.8; Thu, 11 Dec
 2025 01:28:06 +0000
Received: from BL6PEPF0001AB71.namprd02.prod.outlook.com
 (2603:10b6:208:2c4:cafe::eb) by BL1P223CA0029.outlook.office365.com
 (2603:10b6:208:2c4::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.7 via Frontend Transport; Thu,
 11 Dec 2025 01:28:05 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BL6PEPF0001AB71.mail.protection.outlook.com (10.167.242.164) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Thu, 11 Dec 2025 01:28:06 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Wed, 10 Dec
 2025 19:28:05 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 10 Dec
 2025 19:28:05 -0600
Received: from [172.17.249.106] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 10 Dec 2025 17:28:04 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a7fa9927-d630-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yR0PkEznYxHxbA9clEjt1I20dpiDdpMxlI+k3AKmZMsyoOJi/5mUcJroAFh7riiDEeZz0Te++BNH8R0rUbve7FUkgcsn6UsKZWe1a2lG/m2CxbZfhaPy+GO7mteNVJWuKA4m2sjbhIa+y4TRtgYKVQUkybtmOkzRIbJ5tM3q7sYkWtpfdZJCzxEGih14NpogjbAYdiwxtY01p0AV0DLqwvRerRWdk3F5sawCfkprN+VeQfHVIXRzTl7z9wbHdgCnQXykBFfD3sdcqRvIrPMcUpRbMk8Z+dxQuiv4vkbK1mZEVg3oRiXo+YNoOP0Qbndbmw5gndGsftCaC0Ibp7S/0w==
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=6Z+Z8qADGgmCOreig4fdSc0wc8YNUCn3z0n/8lTheFc=;
 b=Xy1fiMF74cm9vXNopxYkJatlEy/mXHJQr4Z9eeJDIjYfEin3eEAl7M52bOPeJ5PX1LLAe0wPK7NT9Vhauh3GYzZvQlVsJcz3CjeaW84zIf113T+DiY2mvwAYm31aWNzt8BxbBLbtC+41G9PSXzIeHlSJhHI70MduTpD2155HIQ+byH2xkxQ7f/B8sjwySK9KDb0tv6hPBnKqJ3dcN2hB9I7sI79Yk32cjMpa/k27iMqw7xMWrKB+FUjfzJNIb5N10mgv2SzEVmJND+MSay9zGJXtTAeoezuGQAOzPXvU/q66nytH5b2F31Ac+Amk7DGmnESJXhe+OS+PiWbsVm1eaw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6Z+Z8qADGgmCOreig4fdSc0wc8YNUCn3z0n/8lTheFc=;
 b=oznjtAe0Ab77zeuD6At2ST2mQiOtm8Pnm5u8NqBGdTbaXQvSirFNuROVvwYH5bS7xvagipXmpDySU6GZQ1fRtIZK8pYx6mX/0ivrVMKjhmb9sQg5P2kA2XvYKqYh82FrZE89JjNgR0Ieh1/1XwWT7LJtVmDNGs3ORg6gzxdiQy4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <43d30e02-f818-4cf2-98c9-4182a2f65f64@amd.com>
Date: Wed, 10 Dec 2025 20:28:03 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: KEEP Re: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
To: Andrew Cooper <andrew.cooper3@citrix.com>,
	<xen-devel@lists.xenproject.org>
CC: Victor Lira <victorm.lira@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, "Connor
 Davis" <connojdavis@gmail.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Grygorii Strashko <grygorii_strashko@epam.com>
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-3-jason.andryuk@amd.com>
 <ed620cd5-9630-4987-bd5c-9f69ae2c2609@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <ed620cd5-9630-4987-bd5c-9f69ae2c2609@citrix.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB04.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB71:EE_|CY5PR12MB6597:EE_
X-MS-Office365-Filtering-Correlation-Id: 11ee8575-c43f-4944-db0d-08de38548936
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014|7416014|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RmNlT01RVWFIRU4vVlY3OEZhbFViM0N6NUZ5NE9qSmNrQ29SMExEZnVnNXht?=
 =?utf-8?B?bklaNHVnTkEwYk80bk5EWmI2MG5iMlo0a2pDbHVBZmN3dzQyc1daNVdpb3BV?=
 =?utf-8?B?WDhxZ0JpbXdBbitIVS9YYXJaeGRmcW1JemtsaDBjZTVBL0NoUFFqOGtLNmgx?=
 =?utf-8?B?a3BpUjNQTm5aVVg5aE5RdFVIK3AwQkhVeXk3VGdvTFhFa2FqM3RSZ3BJNFBO?=
 =?utf-8?B?QnowNzVBOEQybjRocWdJZ0ZIYUlNeGI2dS9UbTZkMC9jUGw4c0NJQW9qVjNv?=
 =?utf-8?B?aGtVMVJEQkNwUmtXVkxib2ZiMWs3WGVvdmxMSytBMm9zcXJlTy82RFpEN1NR?=
 =?utf-8?B?YTRoUHlPUVk2cG50Qlk2TExCQlJvUEhJVDFYTkpEYjE1V25jR1BWeGhGeTBU?=
 =?utf-8?B?U01hSDJkUmRueEsyQzZsWWdGS09rcHdqN29TL0FwSnBjT2lsY0FBRGpoV0xz?=
 =?utf-8?B?RzNNbWpsZE4vK2hUYVE1Szhsdkw1VkZyOHBMYm12TnJOeTVvcEk0aHgrcCt4?=
 =?utf-8?B?b0poTEliZVBTTS9NcXpDam1BU0UwK1NIV3JRTVdaL1RLd3lpSVc0MVRYRlN5?=
 =?utf-8?B?SmJNL1d3aWNFdHcxSTUzRUxBSktpd1pqZTA0WlpOdDhvVlBRMXpnTXRCbmNB?=
 =?utf-8?B?eGdORHVjZSt1RFFjcHZ6Mkp4YkVxdHN6cm00alJoWFdRVGMzWEZmT1Y4RkV4?=
 =?utf-8?B?VFJqTlZsUUF6U2N2dE4rZW9kbnFLQklGWnpUdTY1VGY0eXdYWGdWVzBKWElq?=
 =?utf-8?B?dTZ4OGRaTVFnQjBHZHl2U1NCRkE5cUEwdUxkdjZVYWp5OUtrVDVHbDQ1WmRF?=
 =?utf-8?B?Vm9zcW5uYnYrRzVCMnFPYm1BdlpyQ2E3WnhNQTRxYzdnZVN0RW5BY2wzSmxj?=
 =?utf-8?B?Ylg5NzJGcWs4blVJQVBMdE9JekJEanY4bEFKeDB5L3ZsbWhjZVdKRFU5MDVX?=
 =?utf-8?B?SWxtLyszVncwSmlXL0d6RXFJTUpxSXVkdkJXRWpDSVA4Z3RrSGtqSGYvaTFt?=
 =?utf-8?B?VSs3QWQrbUdrVWZhWm85UDQvRFVOS3BSZHFrL1NlUVlIMDZIM3lwbGZPZ2dz?=
 =?utf-8?B?Qlh2RzdLN3RuT3d1ZFZadlVjSWtxQlJXNXF5bWozR1hNNDd6RmJJUVUvTjFo?=
 =?utf-8?B?dFBFNjV3VGpYTFdWRGNlNTlVT0NHeXBkSGt4WC9NT29KWnhWK05PQWRzYlNt?=
 =?utf-8?B?WUV0d0k0K2VzcU1DR3plVmRIMnRlOHpMaXJOVTIyd2tsV1RuZnNvSmY1aStL?=
 =?utf-8?B?aGJjbDdPbEdVQ0w5RFFDUXpGeWhsKys3cmxhYytxUlhhSG9LYUNxZkhOVVp1?=
 =?utf-8?B?Vk1Mc2hlYlJBcWNzaEFNN3o1UXR6S2h3SFRkVzlqb3ZXcERFSTJ0MXNKUXNN?=
 =?utf-8?B?V1FrQVFMYjZUZFRMWjhMcUV6anZzc0QydlZ1THE4ZlBJV2srVXJjTEg4d2lJ?=
 =?utf-8?B?VHVDRlVhMisxeXlOakx6aWdNMXFFT1FZWDRsbkx4WHRvSmcxUEtieXhnWFhw?=
 =?utf-8?B?VUVuTVJuOHpaT0NoaVdRZ2psaVpNV0VYOUtXc2tHcHdGZFRoajVtb3dTeWxF?=
 =?utf-8?B?WS80K0o0dFliSXJIbFpOSmZibC92bzYvNXMycUV3bFhWS3BUTUxJSk12ejZp?=
 =?utf-8?B?TjQvbGY0dWFRSzdkN0FnTzg1czYyU1FER2h4N3VsR2NCTkhWZnc2NWY4R0Jq?=
 =?utf-8?B?NEc4SlV6Zk1wYTlidHRBMUlYZUt6eUFWQmdENS80VENmTVg2ejZTWUpoUTAz?=
 =?utf-8?B?bmQ1LzhXUHFMc2haWUhqNzhCN0ppdXlJRkZhUWt3aFUxbDczTW51V3hucWhJ?=
 =?utf-8?B?Z25Qa1N5NjFDWWQvQjhTZGhxK0NBSkR0ZHNxUDQrM0dRM1dmakl5VWt0R3o3?=
 =?utf-8?B?bHRWRERXY2hHZXpBWjA0Zm5RQkNFY3hzZzc4cTZjSDZ1eEUvTzBMRmtMY2d5?=
 =?utf-8?B?WUltdW9zaWlhdzgwRFR5RjRSYzhTZ2lnVGZ3clM1SElGQzN2TitSUWJycHlZ?=
 =?utf-8?B?Z1FNQkVvcG1OdjZ0ZldrK3JaQnZFR0dXd3dOZWVvQVlhMCt0NVNTaWVzQThT?=
 =?utf-8?B?aWVKckg3Y1F2bkpnUUU2aTJkR3NDQjhhaGg2Z2hjc0g1SXlIek41QXUxaWE4?=
 =?utf-8?Q?PsFI=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014)(7416014)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2025 01:28:06.3244
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 11ee8575-c43f-4944-db0d-08de38548936
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB71.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6597

On 2025-12-10 11:55, Andrew Cooper wrote:
> On 09/12/2025 9:47 pm, Jason Andryuk wrote:
>>          . = ALIGN(4);
>>          __alt_instructions = .;
>> -       *(.altinstructions)
>> +       KEEP(*(.altinstructions))
>>          __alt_instructions_end = .;
> 
> Thinking about this, what we need is for there to be a reference tied to
> the source location, referencing the replacement metadata and
> replacement instructions.
> 
> Looking at https://maskray.me/blog/2021-02-28-linker-garbage-collection
> might be able to do this with .reloc of type none.  In fact,
> BFD_RELOC_NONE seems to have been invented for precisely this purpose.
> 
> This means that if and only if the source function gets included, so
> does the metadata and replacement.

With Jan's -Wa,--sectname-subst changes added to CFLAGS, this seems to 
work somewhat.  I'm trying to make the ALTERNATIVE place relocations 
against the .altinstructions.%%S and .altinstr_replacement sections:

diff --git c/xen/arch/x86/include/asm/alternative.h 
w/xen/arch/x86/include/asm/alternative.h
index 18109e3dc5..e871bfc04c 100644
--- c/xen/arch/x86/include/asm/alternative.h
+++ w/xen/arch/x86/include/asm/alternative.h
@@ -90,18 +90,25 @@ extern void alternative_instructions(void);
  /* alternative assembly primitive: */
  #define ALTERNATIVE(oldinstr, newinstr, feature)                      \
          OLDINSTR_1(oldinstr, 1)                                       \
-        ".pushsection .altinstructions, \"a\", @progbits\n"           \
+        ".reloc ., BFD_RELOC_NONE, 567f\n"                            \
+        ".reloc ., BFD_RELOC_NONE, 568f\n"                            \
+        ".pushsection .altinstructions.%%S, \"a\", @progbits\n"       \
+        "567:\n"                                                      \
          ALTINSTR_ENTRY(feature, 1)                                    \
          ".section .discard, \"a\", @progbits\n"                       \
          ".byte " alt_total_len "\n" /* total_len <= 255 */            \
          DISCARD_ENTRY(1)                                              \
          ".section .altinstr_replacement, \"ax\", @progbits\n"         \
+        "568:\n"                                                      \
          ALTINSTR_REPLACEMENT(newinstr, 1)                             \
          ".popsection\n"

--print-gc-sections shows a few .altinstructions.%%S dropped - as an 
example:

ld: removing unused section '.text.reserve_lapic_nmi' in file 'prelink.o'
ld: removing unused section '.text.release_lapic_nmi' in file 'prelink.o'
...
ld: removing unused section '.altinstructions..text.reserve_lapic_nmi' 
in file 'prelink.o'
ld: removing unused section '.altinstructions..text.release_lapic_nmi' 
in file 'prelink.o'

The full list is below.

Unfortunately, EFI doesn't like it with ~14000 lines of:
ld: error: 0-bit reloc in dll

Also, my test of removing the path to memory_add() still doesn't drop 
memory_add().

There is still something wrong where I get a fault in some shadow code. 
I'm still investigating that.

Regards,
Jason


ld: removing unused section '.text.__bitmap_full' in file 'prelink.o'
ld: removing unused section '.text.__bitmap_xor' in file 'prelink.o'
ld: removing unused section '.text.__bitmap_set' in file 'prelink.o'
ld: removing unused section '.text.__bitmap_clear' in file 'prelink.o'
ld: removing unused section '.text.bitmap_find_free_region' in file 
'prelink.o'
ld: removing unused section '.text.bitmap_release_region' in file 
'prelink.o'
ld: removing unused section '.text.safe_copy_string_from_guest' in file 
'prelink.o'
ld: removing unused section '.text.domain_has_ioreq_server' in file 
'prelink.o'
ld: removing unused section '.text.compat_kexec_op' in file 'prelink.o'
ld: removing unused section '.text.in_atomic' in file 'prelink.o'
ld: removing unused section '.text.radix_tree_next_hole' in file 'prelink.o'
ld: removing unused section '.text.radix_tree_prev_hole' in file 'prelink.o'
ld: removing unused section '.text.radix_tree_gang_lookup_slot' in file 
'prelink.o'
ld: removing unused section '.text._nrspin_trylock' in file 'prelink.o'
ld: removing unused section '.text.xen_compile_host' in file 'prelink.o'
ld: removing unused section '.text.vm_event_cancel_slot' in file 'prelink.o'
ld: removing unused section '.text.vscnprintf' in file 'prelink.o'
ld: removing unused section '.text.wake_up_one' in file 'prelink.o'
ld: removing unused section '.text.xmem_pool_get_used_size' in file 
'prelink.o'
ld: removing unused section '.text.xmem_pool_get_total_size' in file 
'prelink.o'
ld: removing unused section '.text.xmem_pool_destroy' in file 'prelink.o'
ld: removing unused section '.text.xmem_pool_maxalloc' in file 'prelink.o'
ld: removing unused section '.text.xlat_start_info' in file 'prelink.o'
ld: removing unused section '.text.elf_sym_by_name' in file 'prelink.o'
ld: removing unused section '.text.elf_sym_by_index' in file 'prelink.o'
ld: removing unused section '.text.elf_get_ptr' in file 'prelink.o'
ld: removing unused section '.text.elf_lookup_addr' in file 'prelink.o'
ld: removing unused section '.text.serial_vuart_info' in file 'prelink.o'
ld: removing unused section '.text.pci_find_next_cap' in file 'prelink.o'
ld: removing unused section '.text.free_hvm_irq_dpci' in file 'prelink.o'
ld: removing unused section '.text.iommu_has_feature' in file 'prelink.o'
ld: removing unused section '.text.__erst_get_next_record_id' in file 
'prelink.o'
ld: removing unused section '.text.__erst_read' in file 'prelink.o'
ld: removing unused section '.text.erst_get_record_count' in file 
'prelink.o'
ld: removing unused section '.text.erst_get_next_record_id' in file 
'prelink.o'
ld: removing unused section '.text.erst_read' in file 'prelink.o'
ld: removing unused section '.text.erst_read_next' in file 'prelink.o'
ld: removing unused section '.text.erst_clear' in file 'prelink.o'
ld: removing unused section '.text.mce_barrier_init' in file 'prelink.o'
ld: removing unused section '.text.mce_barrier_dec' in file 'prelink.o'
ld: removing unused section '.text.mce_barrier' in file 'prelink.o'
ld: removing unused section '.text.apei_read_mce' in file 'prelink.o'
ld: removing unused section '.text.apei_check_mce' in file 'prelink.o'
ld: removing unused section '.text.apei_clear_mce' in file 'prelink.o'
ld: removing unused section '.text.efi_halt_system' in file 'prelink.o'
ld: removing unused section '.text.get_vvmcs_virtual_safe' in file 
'prelink.o'
ld: removing unused section '.text.get_vvmcs_real_safe' in file 'prelink.o'
ld: removing unused section '.text.set_vvmcs_real' in file 'prelink.o'
ld: removing unused section '.text.set_vvmcs_virtual_safe' in file 
'prelink.o'
ld: removing unused section '.text.set_vvmcs_real_safe' in file 'prelink.o'
ld: removing unused section '.init.text.early_page_fault' in file 
'prelink.o'
ld: removing unused section '.text.domain_set_alloc_bitsize' in file 
'prelink.o'
ld: removing unused section '.text.reserve_lapic_nmi' in file 'prelink.o'
ld: removing unused section '.text.release_lapic_nmi' in file 'prelink.o'
ld: removing unused section '.text.watchdog_enabled' in file 'prelink.o'
ld: removing unused section '.text.unset_nmi_callback' in file 'prelink.o'
ld: removing unused section '.text.sha2_256_init' in file 'prelink.o'
ld: removing unused section '.text.xxh64_copy_state' in file 'prelink.o'
ld: removing unused section '.text.xxh64' in file 'prelink.o'
ld: removing unused section '.discard' in file 'prelink.o'
ld: removing unused section 
'.altinstructions..text.safe_copy_string_from_guest' in file 'prelink.o'
ld: removing unused section '.rodata.xen_compile_host.str1.1' in file 
'prelink.o'
ld: removing unused section 
'.altinstructions..text.vm_event_cancel_slot' in file 'prelink.o'
ld: removing unused section '.rodata.xmem_pool_destroy.str1.8' in file 
'prelink.o'
ld: removing unused section '.altinstructions..text.xmem_pool_destroy' 
in file 'prelink.o'
ld: removing unused section '.rodata.elf_lookup_addr.str1.1' in file 
'prelink.o'
ld: removing unused section '.altinstructions..text.iommu_has_feature' 
in file 'prelink.o'
ld: removing unused section '.rodata.__erst_read.str1.8' in file 'prelink.o'
ld: removing unused section 
'.altinstructions..text.erst_get_record_count' in file 'prelink.o'
ld: removing unused section 
'.altinstructions..text.erst_get_next_record_id' in file 'prelink.o'
ld: removing unused section '.altinstructions..text.erst_read' in file 
'prelink.o'
ld: removing unused section '.altinstructions..text.erst_read_next' in 
file 'prelink.o'
ld: removing unused section '.altinstructions..text.erst_clear' in file 
'prelink.o'
ld: removing unused section '.rodata.apei_read_mce.str1.8' in file 
'prelink.o'
ld: removing unused section '.rodata.efi_halt_system.str1.8' in file 
'prelink.o'
ld: removing unused section '.rodata.play_dead.str1.1' in file 'prelink.o'
ld: removing unused section '.altinstructions..text.reserve_lapic_nmi' 
in file 'prelink.o'
ld: removing unused section '.altinstructions..text.release_lapic_nmi' 
in file 'prelink.o'
ld: removing unused section '.data.rel.ro.local.fetch_type_names' in 
file 'prelink.o'
ld: removing unused section '.data.lapic_nmi_owner_lock' in file 'prelink.o'


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 02:39:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 02:39:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183500.1506168 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTWae-0006bO-Em; Thu, 11 Dec 2025 02:39:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183500.1506168; Thu, 11 Dec 2025 02:39:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTWae-0006bH-Bm; Thu, 11 Dec 2025 02:39:36 +0000
Received: by outflank-mailman (input) for mailman id 1183500;
 Thu, 11 Dec 2025 02:39:34 +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
 <SRS0=oCI8=6R=gmail.com=samaan.dehghan@srs-se1.protection.inumbo.net>)
 id 1vTWac-0006bB-OL
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 02:39:34 +0000
Received: from mail-qk1-x734.google.com (mail-qk1-x734.google.com
 [2607:f8b0:4864:20::734])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9fd86dc2-d63a-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 03:39:33 +0100 (CET)
Received: by mail-qk1-x734.google.com with SMTP id
 af79cd13be357-8ba3ffd54dbso81440785a.1
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 18:39:33 -0800 (PST)
Received: from localhost.localdomain
 (host-154-4.mdu.ilcmifre.champaign.il.us.clients.pavlovmedia.net.
 [66.253.154.4]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-8bab5d4ce55sm101870785a.53.2025.12.10.18.39.30
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Wed, 10 Dec 2025 18:39:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9fd86dc2-d63a-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765420772; x=1766025572; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=D0SRmNgbUxcC0ay425IGSb4L4pwhla5fRNtxxWeaWLM=;
        b=IBQNECR7bWfrgCdmTDOn4XeFs8tAq7uriHi8irPJIdbl2V6jF3JwzUH/eOAJqzjvsk
         cs7EtEG9HHj/txGWrdsf77V2K/rsOGsgC0vxaMKV/BiqiaM4bDivcHLzF5It8mfCvz3D
         FMvZAoMaR7dt3GPorfCOKlTtzLqvaJ+qDmoHHIspgqXbqM34jy7ZZts2b7DfGaX/QDw5
         umQzGk1NIvRxVQI4UtNmxdqi9Sw4jLu2hKzz/KhvRJ8xJ5zEsbSrqBFvZNHPKaS2r0T2
         Sx8/Eq3KaJ6J6h5RVQJzk9y7PiRe5L4aiBgiKcHnQ3llKdU/EN0/XowAEbfnubfi6X7A
         AayA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765420772; x=1766025572;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=D0SRmNgbUxcC0ay425IGSb4L4pwhla5fRNtxxWeaWLM=;
        b=kvIoKEWwV6gdJ5ofBK7UpCMmce73VqFVcPMBpD22e024xIJGeHOedfCkOZZiVPJBqH
         CjL9UETDoiq43YaLjdj3QHeGJLQdGxmM1xb0v4atbiCqBsQJy5lKd8VCvWJ0Km1C8S1Q
         kSq/clIIt3vyn4Sfp9U1YewhHNIjIh5uzskdFoO5Y3gcLETSU4NyWp2Hx6fGu9uDdMXM
         g4LH4V5Jjh+5vA8pg0KQBeNJ4xcrhIlv85T3zJ7HQYa25XsM2xgGt0ntX0yBgrEDfZiI
         vPjNOeaU0pikoGtvg0APnmi8PNsYKOdQsDtiJdLt+RtPorGC1283K/x/HgsIQAvl6dhb
         DgsA==
X-Gm-Message-State: AOJu0YzlXDvBV7rPBs8OK2thCiuAV7SX9TluNtQ7KOghnq4QZ6WysK90
	rKn177ouG5vxsO7KdHfhu5wIy06C51f0tajpQfyyehhvGZ37PngczvPB5i7+OiQ=
X-Gm-Gg: ASbGncvvpuxEplDRljv8zeqQX1nf0dRDXs+opCNC8hgzOTA4TjB8NqSNfT+IxQsL20/
	lDiDWeomYx3r/a8O1/dRfou6qmQru2Z82g4Dp2D0UPBIOWx7fwb6luss5KCDV+ArnkKAJueESgy
	AtQfNx6zNVBSGqos4mq7AEhf9uh7qgUXIc4CZwoKsKsvnsStUR5mgTYzIqkfJhfGCUiSmz1DSyl
	BWHpBW6DdZOZrr2y6p1lZyJH2ygrcwXRiMLtQNS8lR2KdVs6BxyIDX0MceoRoKEEFyaa9aer4PS
	PeTrdAPfcf23AgdmpsQBWpAcvWInhxVAyyMHMS9L2KJogFiqkpsdBYTVla4Z43mxCubojCe3ryx
	cbTIIUzo5nUoP+8+J7tv/Z6xGdwkigwAI1+F0AxL6N6rDAxCEKTG5NFtnIWE9uNzvB313td4S6R
	qtaxx6MySNYHf+R7jYt8TVBmfKA0i/RJ68DioFgaDCc6pLC/BzuDbOqdiMWmJ9/RQJqPeyJOPs4
	KWiRyVk1iW+RkpC3oqk/cQfHs6IfG9JocmQTm6jsrPdam+6bFVj/o7dRpWsRFGNFoAtdNHQDfIs
	rLk=
X-Google-Smtp-Source: AGHT+IEjtr7LjDNnAGOV46d/ZVSuPC+eUKDN9xJFxu4aKbqCdcX6uXABoOdxsTquJx815KMmN2t5Og==
X-Received: by 2002:a05:620a:28c1:b0:85b:8a42:eff9 with SMTP id af79cd13be357-8ba39a52ff5mr677144985a.53.1765420771637;
        Wed, 10 Dec 2025 18:39:31 -0800 (PST)
From: Saman Dehghan <samaan.dehghan@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2] xen/arm64: Add support Clang build on arm64
Date: Wed, 10 Dec 2025 20:39:24 -0600
Message-ID: <bb575726fe0ac783121e563b1c92f81f51e41f75.1765420376.git.samaan.dehghan@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <bd6686e7fc0756e929334792b94ddd66bde125c4.1765239102.git.samaan.dehghan@gmail.com>
References: <bd6686e7fc0756e929334792b94ddd66bde125c4.1765239102.git.samaan.dehghan@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch enables building Xen on arm64 architecture using the Clang compiler.
Changes include:
- Add explicit -march=armv8 flag for arm64 builds.
- Add `__attribute__((target("fp-armv8")))` to `vfp_save_state` and
  `vfp_restore_state` functions when building with Clang to allow
  FP instructions despite `-mgeneral-regs-only`.

Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>
---
 README                   | 2 ++
 xen/arch/arm/arch.mk     | 1 +
 xen/arch/arm/arm64/vfp.c | 6 ++++++
 3 files changed, 9 insertions(+)

diff --git a/README b/README
index 889a4ea906..67c1aa7fe6 100644
--- a/README
+++ b/README
@@ -45,6 +45,8 @@ provided by your OS distributor:
       - For ARM:
         - GCC 5.1 or later
         - GNU Binutils 2.25 or later
+        or
+        - Clang/LLVM 11 or later
       - For RISC-V 64-bit:
         - GCC 12.2 or later
         - GNU Binutils 2.39 or later
diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
index 9c4bedfb3b..bcf548069b 100644
--- a/xen/arch/arm/arch.mk
+++ b/xen/arch/arm/arch.mk
@@ -13,6 +13,7 @@ ifeq ($(CONFIG_MPU),y)
 CFLAGS-$(CONFIG_ARM_64) += -march=armv8-r
 else
 CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic
+CFLAGS-$(CONFIG_ARM_64) += -march=armv8
 endif
 CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only # No fp registers etc
 $(call cc-option-add,CFLAGS-$(CONFIG_ARM_64),CC,-mno-outline-atomics)
diff --git a/xen/arch/arm/arm64/vfp.c b/xen/arch/arm/arm64/vfp.c
index c4f89c7b0e..51fd2ddc54 100644
--- a/xen/arch/arm/arm64/vfp.c
+++ b/xen/arch/arm/arm64/vfp.c
@@ -46,6 +46,9 @@ static inline void restore_state(const uint64_t *fpregs)
                  : : "Q" (*fpregs), "r" (fpregs));
 }
 
+#if defined(CONFIG_CC_IS_CLANG)
+__attribute__((target("fp-armv8")))
+#endif
 void vfp_save_state(struct vcpu *v)
 {
     if ( !cpu_has_fp )
@@ -62,6 +65,9 @@ void vfp_save_state(struct vcpu *v)
         v->arch.vfp.fpexc32_el2 = READ_SYSREG(FPEXC32_EL2);
 }
 
+#if defined(CONFIG_CC_IS_CLANG)
+__attribute__((target("fp-armv8")))
+#endif
 void vfp_restore_state(struct vcpu *v)
 {
     if ( !cpu_has_fp )
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 02:48:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 02:48:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183514.1506177 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTWik-0008ES-6U; Thu, 11 Dec 2025 02:47:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183514.1506177; Thu, 11 Dec 2025 02:47:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTWik-0008EL-3t; Thu, 11 Dec 2025 02:47:58 +0000
Received: by outflank-mailman (input) for mailman id 1183514;
 Thu, 11 Dec 2025 02:47:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cEbC=6R=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vTWii-0008EE-Sk
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 02:47:57 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cac26896-d63b-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 03:47:54 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BN9PR03MB6090.namprd03.prod.outlook.com (2603:10b6:408:11b::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Thu, 11 Dec
 2025 02:47:49 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Thu, 11 Dec 2025
 02:47:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cac26896-d63b-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=weP7F7AZ8fZceubwkYN0jJmxDro0GOQsl3OvuRzGUUgQ0ZQIq12yN7/bZsGiKwL9DMbg1+MrwV9ZaCydbJZkRPUYJJlClAM3B3rEOSqM+689VXiPQosIYVqu9dZ4STRFVyOCijTm1KAreEaW9kSZ0XOc/EdScuKR9bcpcK6C8K7PbI6vPVC970FfYDT7fmUKsXRjbOUwjNH1nwixsdgxB0Gny6fUDOMn77VKyDLpZpBmTPKIu8satjHFEYSBVSvbHFSKsh9D7WWsD5hFkrbwY2srinIY9SCAHSijh6EHUZrT1pMmiKvQyKtXulegPvN6PbytpijfgI2Hgsfj/bowtg==
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=lfjvDfqrrIQVuGxOU9FYTJ2YyN24FTyo6wWdwVgCMPQ=;
 b=yC3oZ7dBir3Z4Q7qeestEiNDrVVISZcFO0MdKm4sBw2bb8m73TcHGZU0YERVs5KpSjSxH6EOsdXciDDFeeSooIrziUunY061p4ihdxhpaymZ7UujSvvTEgqejyM1uk6Rx6cO+Y+FPnj1BpJ0D1v1E8sD1EMMpVbMQ4NfHHekc0VBJ5QFIMyMzuR17ba3llH0aDH8dyH9dmwZ5MzyO+sBfWsBd/1h38HkzY1dnNPmU3G3uPy7o9qTJDTgElGxDfX0Yti/IdOUZQ/LcxDLcGU9P6idgh7ZtOWZoXFjMq6SVXYl/I+SSgPfS5U2N4EpOqH3biYjrwYkX3CE+RtmMaConQ==
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=lfjvDfqrrIQVuGxOU9FYTJ2YyN24FTyo6wWdwVgCMPQ=;
 b=HrWlyNHJLpJnVxO04A+cn0u0V+dSMoX8fYRWOmRc6LUAuGGfCJLEuO6oufhzNeAkbaoOyT+S9NczwAmhPPWyKCV06ouAbySR8VNBzCxI7HSvJWH/IuV4em0kPyBdhEuNya1mTOwLGy6HJjJyiW5ypPSH+v61xvZPZgIUD3Z0VO0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <13a270cd-b0bd-4565-9158-0e1728aef84e@citrix.com>
Date: Thu, 11 Dec 2025 02:47:44 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Victor Lira <victorm.lira@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: KEEP Re: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-3-jason.andryuk@amd.com>
 <ed620cd5-9630-4987-bd5c-9f69ae2c2609@citrix.com>
 <43d30e02-f818-4cf2-98c9-4182a2f65f64@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <43d30e02-f818-4cf2-98c9-4182a2f65f64@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0247.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a7::18) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BN9PR03MB6090:EE_
X-MS-Office365-Filtering-Correlation-Id: c8e4188e-6ce1-4663-7db0-08de385fabee
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7416014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dk1pbEY2ZzhERG42TktRRzZOUnlyekFvbEJWYzJ4RVJvOXJmNDVpSDdBV3Q0?=
 =?utf-8?B?dWxSaEdQMHBybVd6a1BndHcwS2Jlc1ROOWVrNEpnSVZMc2l5SGw5R1pUY204?=
 =?utf-8?B?b0k1azR4c3IyVnFCRWk0a3k1QWNmRWhXbzNhSFNRTmdWTXlIaFFJRFp4eGM0?=
 =?utf-8?B?YzRBQk5uTmRXQTNOQzFTUlhGOTBDeUd4MXNYY0dmNEhrd0xCanA0QU5aT2RW?=
 =?utf-8?B?Q2RTQjNDK3dYSGxCY2ZacWRPUDFWV00xREYrdG00N3NlczhpbkRTaEJBZlFF?=
 =?utf-8?B?QXNoZVc5YkhHZHRsT0dWcytHMzBKcXd1cmNJUUVuVGo2UTV3VWRPWnppY3NY?=
 =?utf-8?B?OXNUWmNCTXlPYWMwU2htQVlsVXcwSFh5MThwZFFEanNUN1hseHVZZ0VVQ2lt?=
 =?utf-8?B?ZUdYbEZQbkJrdEd3Y0ZvVVBISXlWNEFHQk9CelVRL0pBbVVvU2FQT0dvekZO?=
 =?utf-8?B?L3kxeERleEZZV0I1a2JjSUxMazBKV2EwSVhhRzZEUkprQnBaV1BtKzYzenZB?=
 =?utf-8?B?b3FtSFI1cklDMExwVjE1azFKRnBMNjM1V2pLUXRMczBqUlErYm5KeUhuWHVs?=
 =?utf-8?B?bzhpTEpWTFJOek1WMFE0TmMyam5DVzlrQS9vNzMrbzlMa24rK1Myazg4blpp?=
 =?utf-8?B?K2pUQURBVjJNV1NLL1FGYWk3aVBDUU5KSHA4Qkd1OUErOWc3THdqKzVKTnMy?=
 =?utf-8?B?Y0lNOGV3K1h0dktlNC9KZXpRNGRWTXlHbmNtMlRZN0FndWJkZE5mb0xWRmlP?=
 =?utf-8?B?YlF0MllFaG8xdHFldTM3d0oraFZybGphQ0xMSDI0Tit0dTVtSWhMQXNWY2V4?=
 =?utf-8?B?czhiYUxZVEhPU1RldnFjWGVWRytLaHI1ZHQzd3NnQjgxaGRHdWRScW82UHkr?=
 =?utf-8?B?T3BWQ1ZSN0dqeTZKd1pRVHFORHZVZ3hxclNpRFZmYkpsby9oZzNWSUtWa0ox?=
 =?utf-8?B?cjNBdnhzUWRodURESEZOc0M0Ymp1TmU2SzZSekRZU2RpYm95QmtiK3kycnRl?=
 =?utf-8?B?NWxMQk1PVVVCT1llYVBsVlVaZkdDYVF2Qy9zQ1pkQVZhYmowU3ZlZXA2NUsv?=
 =?utf-8?B?d3pFUlV3Y0ZDUitZZTJSWXJPV3JrT2NsV2dxM3NNYWtOSVNTKytZWjV5UDQr?=
 =?utf-8?B?eGNaRGxrMUM0VDc5cXd5VzN3NlBUL2R0WTNxQnhOMDFFL21GbWdndWdiNTV1?=
 =?utf-8?B?VmhITTd0YzhEbTFIRkxGSUhXczlyVGRWSXdmWnNGVGlUa3NuR0UzSXE3dkZx?=
 =?utf-8?B?OTVheDdMQjBubVNidE5qNTU1dE9WaU1mczJBM004d0ZnbnkvdE55TnlmbHJY?=
 =?utf-8?B?blB4Tm90cjhMemZna3hCVExaV21yaUFNdmdjZVFRNWZqY1QwK0tRSDBMQ0JE?=
 =?utf-8?B?WkpFaUQ0VTZNOGdTeEVGdyt0ZVNmZVhCVm5zZDdxMUJBa21oUG4rMG9VRzdT?=
 =?utf-8?B?Wkdmb2lLZDZEWUdGb2tFUGc5UUlmOE5QTlNNK2owNk5LdmNjdDAxM1duWFFZ?=
 =?utf-8?B?MXBBZUpLd0FsNmRJRHhTek5zMHNpUXFNMUh3WWhDdW5FTGFYblVNU3ZOQVpL?=
 =?utf-8?B?dmUwREtZQXd5amlJWXovQmY2b3hQQVE2Q2JCa01WQWFDb01sWkdaWEU3VVZL?=
 =?utf-8?B?YzNTbXgwa3JyajJVTnlyTm0raEkrYnpyV3Q0MVlmeXpaeG9SaiswNDRpaHJH?=
 =?utf-8?B?azZpOUhISjR1c0lrY1IvSG1oRHVLRk9ndTV3S3ZFZzhuZjVNQWMxRUlLanBz?=
 =?utf-8?B?ODZvWmFyM1BTL0FoeVVPYlN2SisvOVZJRWFTVi9JTnUyUDVOV0JOck1pY3Ux?=
 =?utf-8?B?U0xTU045WTBUZnhUdi9XVU1iK1owcnMzL0FvcGlJL3h5NzhHWGZ1NVE4MU1P?=
 =?utf-8?B?aURPTWJhVUpVUVRIUjZ2enZ4SkQ1bFVJQ0VBak96RVZBelNSdVdQcVU1Ty9v?=
 =?utf-8?B?UXNwSFltUDkzQ3JZcHd6d1RVNlk5MkJaa0ZIREx6MzJCUEt5NHRuaVhTeE9r?=
 =?utf-8?B?cTlya3lhSEdnPT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UlpxNng5QjhtYkYzV0dZQ3JsOXRXK2dpZWtiNmNTOEVibUVlS253L3k2d3B3?=
 =?utf-8?B?WHB3cmpVMFA0NmIyUzZ3bUNtYjNwMk1sMlRSYmpad3R5OVE4bk56OEJWYThC?=
 =?utf-8?B?MVE5RXE1WFV2SGk4OEh4SHVkWkhzSC9lRzk1MS92S0VUTk5UaDdXU1p2bUV5?=
 =?utf-8?B?SU5QVGtLNXl1SVFmL1FtdkNiNjFUbnh2aFlRUkplZWpteHhiQmVsbEZMSDJK?=
 =?utf-8?B?YndSNjV5ckZQU3NqR2lGRThpT0hCdVd4WmlNMVJIaFdpLzFUS3NuU05MbzB5?=
 =?utf-8?B?eHkyM3V0NXpkOStJeXRnLy9kWWdHS2E1ZFErODd0RlNhRCtxV0tESFRkcC9m?=
 =?utf-8?B?VjVLT1F5dkVVRDFKUXdyalFyQmlqNi9lOHVsckcySVg0aDZMdllIWm5ZOXZq?=
 =?utf-8?B?eFYzendtUHJzNGVFbllsRG9TS3F0Nnl6NW9XQUI4czkzamxScHkvSFpxNnZB?=
 =?utf-8?B?Q0J0aDloamMzNnEva3BOMVJlSmp4c2ZlNVNmSk9aNHFMOHdNenJMNlZsaXVF?=
 =?utf-8?B?dWJ5WlFRazlDSDhMUlR5MGVvNExJc3doR2hZejFHdzY1T1NTaHU2bkJ2OFlM?=
 =?utf-8?B?aG14UlJkVjZvb1IwZktlR04wUEFTQnZkci93WDNsNzU1WFZBSVVHaXhUT2pB?=
 =?utf-8?B?MHFaYm14dVJiaTlKMHlLV01UdGZSWWRaVVlsMC9FcHkwSDB1cG5wOSs0Q1dz?=
 =?utf-8?B?cVlRTnE0d0h0bEZNOGhLaUtEeVcvc1Uvcm5wU2JFbVZxVkk0djNEWFBaeTJT?=
 =?utf-8?B?NEhKSHk4SFdtMEVzdE1hMmh1VTkvNm9ZZllXMTd3YnFJR0R3UjJZWHJ0Ynhh?=
 =?utf-8?B?WTJyN3Y2TzdwaE9wV1ZySjdmNG1qL1ZoV3RGdm5BUWs0YWl2ZUZLMmpRTDhD?=
 =?utf-8?B?ajJMaWNReDVRd2NKQnRhRm9LTlJ4andieWN0NFA3clRLOVovd3haTXE4amtj?=
 =?utf-8?B?Sk91ZlVnYXlBem8yeWdnWVpwZTR2aW44VC93OVRLMERHL0hVY25XbkhhQ3RH?=
 =?utf-8?B?bzRudjdra2NJL1N6Z2Qzc2RNZUx3d3I2bXBWeUJVcW82dnFudmNudWgyTVU0?=
 =?utf-8?B?MHdqYUtEb3NGUUZGZjBIMUMzUmVCSlp6YkcwRGU1b3ZtMUhITDVPNHBqdTZD?=
 =?utf-8?B?amRCVTNjYVRqdGUxejc4c0lBZzFOenI4YlorY0hHdVNxVURtamtnakp6NXZ2?=
 =?utf-8?B?S3NxWEZHTmlSZlZUZ1dybWxWM2p6YTgwLzRxVzhKbXlaN1VnZ0NwYktEcXJD?=
 =?utf-8?B?VTVoRDQ5TEpUcDM1WTAwaTNoL0ViMTVLWE44RGJxcHVEYkd5MjBUaWxGTUd6?=
 =?utf-8?B?dG1ZK2FrdFU1SC9DOVhZTTBPbGhwTlFNeTEvV1k5QzFBRUs0azF6aitpVWdt?=
 =?utf-8?B?ckdqZFcvWjAzWkZQVlYwVWpudStubVVidTg2VFluQUNvRDdXU3NuRXpNdVZP?=
 =?utf-8?B?aHl2SlRURCsvR1MwTkFZRmRuVFFIUXhMaUNONHE1K1A5WUxhcGQ2OE9oMXo5?=
 =?utf-8?B?NGZYVm5IdnlSL01JYTBrSGxkdHRSQjJsdWJpV1R2RUhMcmNwbXlGbWhEdXRT?=
 =?utf-8?B?cXV3emJUR0VjdTNPQ0xBVFdFZ2VLTnR6S2FnWG9INUk3YUtVTzY0T0N2UGpH?=
 =?utf-8?B?Z2xPOGh6c0RoeWdZdzlzKy9qTFpGRDFrK08zUVd4S1NlY3RJWW5Xc1plcWVj?=
 =?utf-8?B?NUNCY01wNVBYYXBvVk9aYU1JbXZNL3FXU3hNKzRGOXhRekMvSGJqKzkxQlJM?=
 =?utf-8?B?aGRXUWlBeWE4NXpUQVUweWRIQllPSHI3Mno1OWhnbmg2VEJQMnRWaXc1L2RR?=
 =?utf-8?B?YjBLekQ3Q3ZlWXFvb0NCWGUxbzB4QVZNYmlXOGI3ZDFqY0UwZkpnRlVGdDBH?=
 =?utf-8?B?cDJGWnZXL1RaQ1ROT3NIT0lVdHlKR3MvdGx3cjM3aE5JZDVXVFhiNjJYbHJE?=
 =?utf-8?B?WEVDSWY0blVXU2hFSDFHY3E4TWtJem5lZzZCSFEwVFRFa29tRURvYTVQVkxk?=
 =?utf-8?B?MXNSTWs0MUc1QUEvUnE1UHorYlBHakFGRzNycWVNODRTMzZVckp5bGxOZ3pk?=
 =?utf-8?B?V0d0YVZ3bmJLZUNmZC90MVJ0cWJLbFcxcUZmU1BkQmhlTFNhOHY0bGpVbHNL?=
 =?utf-8?B?cVloU2JIekpKL1l4bldQQmxVdDVic0JkSnNsWEZTQkgxZUF2K203c0dGL0J3?=
 =?utf-8?B?OWc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c8e4188e-6ce1-4663-7db0-08de385fabee
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2025 02:47:49.1488
 (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: Xv0P7vo8en+97gmmBdqhd6REGlVKisyVCLw70CBxlI11YUINd5L531A9Tq3wwsoO3e3dwB6Qw4WGzIbLFiQxh2xuvMMnTDpkjGASycHIkdk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR03MB6090

On 11/12/2025 1:28 am, Jason Andryuk wrote:
> On 2025-12-10 11:55, Andrew Cooper wrote:
>> On 09/12/2025 9:47 pm, Jason Andryuk wrote:
>>>          . = ALIGN(4);
>>>          __alt_instructions = .;
>>> -       *(.altinstructions)
>>> +       KEEP(*(.altinstructions))
>>>          __alt_instructions_end = .;
>>
>> Thinking about this, what we need is for there to be a reference tied to
>> the source location, referencing the replacement metadata and
>> replacement instructions.
>>
>> Looking at https://maskray.me/blog/2021-02-28-linker-garbage-collection
>> might be able to do this with .reloc of type none.  In fact,
>> BFD_RELOC_NONE seems to have been invented for precisely this purpose.
>>
>> This means that if and only if the source function gets included, so
>> does the metadata and replacement.
>
> With Jan's -Wa,--sectname-subst changes added to CFLAGS, this seems to
> work somewhat.  I'm trying to make the ALTERNATIVE place relocations
> against the .altinstructions.%%S and .altinstr_replacement sections:
>
> diff --git c/xen/arch/x86/include/asm/alternative.h
> w/xen/arch/x86/include/asm/alternative.h
> index 18109e3dc5..e871bfc04c 100644
> --- c/xen/arch/x86/include/asm/alternative.h
> +++ w/xen/arch/x86/include/asm/alternative.h
> @@ -90,18 +90,25 @@ extern void alternative_instructions(void);
>  /* alternative assembly primitive: */
>  #define ALTERNATIVE(oldinstr, newinstr, feature)                      \
>          OLDINSTR_1(oldinstr, 1)                                       \
> -        ".pushsection .altinstructions, \"a\", @progbits\n"           \
> +        ".reloc ., BFD_RELOC_NONE, 567f\n"                            \
> +        ".reloc ., BFD_RELOC_NONE, 568f\n"                            \
> +        ".pushsection .altinstructions.%%S, \"a\", @progbits\n"       \
> +        "567:\n"                                                      \
>          ALTINSTR_ENTRY(feature, 1)                                    \
>          ".section .discard, \"a\", @progbits\n"                       \
>          ".byte " alt_total_len "\n" /* total_len <= 255 */            \
>          DISCARD_ENTRY(1)                                              \
>          ".section .altinstr_replacement, \"ax\", @progbits\n"         \
> +        "568:\n"                                                      \
>          ALTINSTR_REPLACEMENT(newinstr, 1)                             \
>          ".popsection\n"
>

There's already a symbol for the start of the replacement.  We only need
to introduce a symbol for the metadata.  Try something like this:

diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/include/asm/alternative.h
index 18109e3dc594..a1295ed816f5 100644
--- a/xen/arch/x86/include/asm/alternative.h
+++ b/xen/arch/x86/include/asm/alternative.h
@@ -55,6 +55,10 @@ extern void alternative_instructions(void);
 
 #define as_max(a, b) "(("a") ^ ((("a") ^ ("b")) & -("AS_TRUE("("a") < ("b")")")))"
 
+#define REF(num)                                        \
+    ".reloc ., BFD_RELOC_NONE, .LXEN%=_alt" #num "\n\t" \
+    ".reloc ., BFD_RELOC_NONE, "alt_repl_s(num)  "\n\t"
+
 #define OLDINSTR(oldinstr, padding)                              \
     ".LXEN%=_orig_s:\n\t" oldinstr "\n .LXEN%=_orig_e:\n\t"      \
     ".LXEN%=_diff = " padding "\n\t"                             \
@@ -62,17 +66,21 @@ extern void alternative_instructions(void);
     ".LXEN%=_orig_p:\n\t"
 
 #define OLDINSTR_1(oldinstr, n1)                                 \
-    OLDINSTR(oldinstr, alt_repl_len(n1) "-" alt_orig_len)
+    OLDINSTR(oldinstr, alt_repl_len(n1) "-" alt_orig_len)        \
+    REF(n1)
 
 #define OLDINSTR_2(oldinstr, n1, n2)                             \
     OLDINSTR(oldinstr,                                           \
              as_max(alt_repl_len(n1),                            \
-                    alt_repl_len(n2)) "-" alt_orig_len)
+                    alt_repl_len(n2)) "-" alt_orig_len)          \
+    REF(n1)                                                      \
+    REF(n2)
 
 #define ALTINSTR_ENTRY(feature, num)                                    \
         " .if (" STR(feature & ~ALT_FLAG_NOT) ") >= " STR(NCAPINTS * 32) "\n" \
         " .error \"alternative feature outside of featureset range\"\n" \
         " .endif\n"                                                     \
+        ".LXEN%=_alt" #num ":\n"                                        \
         " .long .LXEN%=_orig_s - .\n"             /* label           */ \
         " .long " alt_repl_s(num)" - .\n"         /* new instruction */ \
         " .word " STR(feature) "\n"               /* feature bit     */ \


which also avoids the timebomb of using blind numbers and hoping for no
collision.

In principle we should reference the discard entry too, as that's the
(very obscure) build assertion that we got the lengths correct, but

`.discard' referenced in section `.text' of prelink.o: defined in discarded section `.discard' of prelink.o


gets in the way.  I'm really not sure what to do here.

> --print-gc-sections shows a few .altinstructions.%%S dropped - as an
> example:
>
> ld: removing unused section '.text.reserve_lapic_nmi' in file 'prelink.o'
> ld: removing unused section '.text.release_lapic_nmi' in file 'prelink.o'
> ...
> ld: removing unused section '.altinstructions..text.reserve_lapic_nmi'
> in file 'prelink.o'
> ld: removing unused section '.altinstructions..text.release_lapic_nmi'
> in file 'prelink.o'

Excellent.  This shows we're making progress.

>
> The full list is below.
>
> Unfortunately, EFI doesn't like it with ~14000 lines of:
> ld: error: 0-bit reloc in dll

Yeah, I found that too.  And because of the way we derive xen.efi from
prelink.o, we can't simply exclude these .reloc's in the xen.efi case.

>
> Also, my test of removing the path to memory_add() still doesn't drop
> memory_add().

Hmm.  There's nothing obvious I can see in the generated .s that ought
to keep it referenced.

>
> There is still something wrong where I get a fault in some shadow
> code. I'm still investigating that.

The hunk above builds for me, but I'm not using %%S yet.  The shadow
code has multi.c build 3 times and linked together, so you may need to
account for GUEST_PAGING_LEVELS specially.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 02:51:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 02:51:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183524.1506188 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTWlz-0001Ic-LQ; Thu, 11 Dec 2025 02:51:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183524.1506188; Thu, 11 Dec 2025 02:51:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTWlz-0001IV-Ia; Thu, 11 Dec 2025 02:51:19 +0000
Received: by outflank-mailman (input) for mailman id 1183524;
 Thu, 11 Dec 2025 02:51:18 +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
 <SRS0=Rmkk=6R=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vTWly-0001IP-LA
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 02:51:18 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 42dceefd-d63c-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 03:51:16 +0100 (CET)
Received: from SJ0PR13CA0162.namprd13.prod.outlook.com (2603:10b6:a03:2c7::17)
 by SA3PR12MB8764.namprd12.prod.outlook.com (2603:10b6:806:317::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.8; Thu, 11 Dec
 2025 02:51:11 +0000
Received: from SJ5PEPF000001D6.namprd05.prod.outlook.com
 (2603:10b6:a03:2c7:cafe::8e) by SJ0PR13CA0162.outlook.office365.com
 (2603:10b6:a03:2c7::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.8 via Frontend Transport; Thu,
 11 Dec 2025 02:51:11 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ5PEPF000001D6.mail.protection.outlook.com (10.167.242.58) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Thu, 11 Dec 2025 02:51:11 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 10 Dec
 2025 20:51:11 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 10 Dec
 2025 18:51:10 -0800
Received: from [172.17.249.106] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 10 Dec 2025 18:51:09 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 42dceefd-d63c-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=l9xpOmbphE6a844vYm3NCgQfS3DPSlavGyLmtDMXO9nOkPNkZKqGYVP3fLqZI+/Z3gJihcmb87MH8C3Se1ar7M6EnIqxA+ReHYRYlUDWyqLr4GaX7yis5C8LMyEY8W3QvcoJfaENGdHpKI50+/q9TSKuS/H2rP5ZKakqDTzOsg0hGYrL0SI/+Uv1hHaG99C6hx2aTc3Gc2gjQ87Ld8N4r3G52ekys++5C8sc/DK+DW0D7dLB/w+wfrlK61LSQ0hL/wm8AdzbYymsvb2xjBc+uc0I1iN9pHBam2l7mfxLqAQW8yEoO1yAtAY+jBCKaZPP4z64J34+I7blc9TP+ffe5Q==
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=vaHXOMs0nIbZzsMQlGoVACqZtQlTeT+eTH/0N6FbIwg=;
 b=ALNJ1tui6c0/diXa3SWQmAO3oRxUQGsev8nytiex6UTkVKEMkijvq86lREHcEao6+mLm/Cq24aJd0I0y3TFSfiRdsWVod30vBaiH6HA20sNOHLkPvvjFzeYDn6809a3aQ2ifIQ2F91x0tc+7maXVVMviEZGGoUHg5uCkvH5cZFS8CCojXtwjnOjzT+NhYjxoucJhCeGz+jJ31bJm0nAhFnv8tLiH/Yf2zFf9B6cvpal5rZ9biMA3yakXkTdpa0FRHv3xVvDPZvaMxMqNqex01GxRlYdcuk5o2mpCmO/bp9iJLLE7vF2gAtm92B7Bbt7Xi/O8/NcBgTfY8CI9vvB7bA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vaHXOMs0nIbZzsMQlGoVACqZtQlTeT+eTH/0N6FbIwg=;
 b=0LGvGNnPom4Ji2e1AaqBVjSTSI5QliAXJrlgbOAA27dAHE87cgOPZBr/YizOl33fCj3630hOW20hnj6zpF16tJCavGZEHvgZ14/2EE3Kp+4kb8iTk8Fgq8h5Y1ZPczSo2VyliygPezbt5Rn9BOyMcPr+KWZD9ra41iJGC6NJYVU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <2fc46143-2e1f-4fa8-a403-101a4256336a@amd.com>
Date: Wed, 10 Dec 2025 20:53:01 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: KEEP Re: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
From: Jason Andryuk <jason.andryuk@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
	<xen-devel@lists.xenproject.org>
CC: Victor Lira <victorm.lira@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, "Connor
 Davis" <connojdavis@gmail.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Grygorii Strashko <grygorii_strashko@epam.com>
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-3-jason.andryuk@amd.com>
 <ed620cd5-9630-4987-bd5c-9f69ae2c2609@citrix.com>
 <43d30e02-f818-4cf2-98c9-4182a2f65f64@amd.com>
Content-Language: en-US
In-Reply-To: <43d30e02-f818-4cf2-98c9-4182a2f65f64@amd.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D6:EE_|SA3PR12MB8764:EE_
X-MS-Office365-Filtering-Correlation-Id: 9d9b6d9f-eef5-4e82-9991-08de38602494
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|7416014|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?aWM4TzB5VGxpblEzMDZaSWJmZkpzdDgzWUtaZEc2MDhja0xFWUd5YUJHSFhi?=
 =?utf-8?B?RjhremdVay9XQTNXdlM1dzBlRVNEb1FnTGN1TTMybFV5bkc1MmxEOUJJTHdT?=
 =?utf-8?B?bnpyNEtHcmpaMnpsTlhueFhzaG9SWnlUajBBZ1Z1TkhqVy8xOUplNnRlWEdK?=
 =?utf-8?B?U0tsUkJXWnk5U241SmE3T0MwZHBDUzR4TUpXN3hLZXEzZCtBa0dUbmR0aUhN?=
 =?utf-8?B?QVpOTU0yV3plS291OVZERE1ONzNqUWNsVHJVWWpnL1JtbnFzQmIydDd5b203?=
 =?utf-8?B?bDBRU1pUUms3RjBMYzBSV1RuemZiRmEzQWdGNnhlaDgzaGhRNDlRT3ZBTGFX?=
 =?utf-8?B?cERnaEdEVTY3eGsyWUkrVlVaU2oyVkxOYjY1aUVwd1AzSFlpOEExMkx5NGt3?=
 =?utf-8?B?My9OR0tGRUxEUHQ2Q25IZ2pZWERjUzVXOEtBeUtZY2dtVUp5NnJtenBDM0RL?=
 =?utf-8?B?dnhJNGluNFplWnJxZnhtREdzeFVpNGtrdDlydEpTQm9lbHNPSzZDSTc5ak9j?=
 =?utf-8?B?dngycFgxTzRwTjhONXRkNi83S1lZYVBHd1FBZlBEQUpuUVpzQVZ1ZVByTS9P?=
 =?utf-8?B?UlY3b0lmL2xrYkNWZHlrcit1bWxnS3lndFBFakkwVmY1bnNINUkxazhVdmRG?=
 =?utf-8?B?RGJibzY0S0NwYWxmY3EwOC9Wb1ljQTlFYnB3bnp5ZUtjTTJmZHpVblRJVjRp?=
 =?utf-8?B?NkhJTExRU3lDREEzYlBWR0xGLzlNaHZud29hNGZ5TTVHSzExa3ZxZ2dUcmdt?=
 =?utf-8?B?NlJpV1pDUTZPbGUwMkl3Snp2ckZnV0tIMmJWMVl0OCsxTWRoZ2YvUkQvS0lU?=
 =?utf-8?B?dEp2NTdwRDZEckEyWHZyN3Q5ZjFIMHcxWkhxUjVWYXlyb2prR1hnd3NoNGpp?=
 =?utf-8?B?NFRqaDNJYWtkM2txRWduMTFsNXZzaGpvSmpFRHUzNE5mUysxUHhvaUxDN3o4?=
 =?utf-8?B?cU9VNzNMSFFiTnowS3VmNFl2UkRsaGhDanFUbnFzTXFIMG1IQ084aWQyalh2?=
 =?utf-8?B?NEM1alBLNFM1K2tyazExUjlUMnBSTzBES0dlcEhLcGlGZEZiV3RHTzJSMXVs?=
 =?utf-8?B?QlRneVRpVUZQMWV1eUJxSU5iTDdpdzEvUXluRG9XclZWeEZZdEpzcDVnS3dG?=
 =?utf-8?B?eHNvNzV0aGxtVUJVaG9lSWZnRlVwQzZFSFd3cE9oWVluU1VWNFR2b01aRHFP?=
 =?utf-8?B?ajNiOWJqUGxYQ3RNdTVSMXhzaVJscEwwWmdxR1k0Qzd4VGprTHV6RW53Y284?=
 =?utf-8?B?OTZ1eHo1OFIxUFlBRlU2eVlEYU5vV1Y1SmdGYzM1WVpWUVlZRDdibFFsN0hI?=
 =?utf-8?B?ZktOMTZuL1JJYWNoZkVBamVEYm5yQ2dCNkFlYVU4czEwMTNEUjFITFd5R1c3?=
 =?utf-8?B?QXQ3czRlVFVreTdXMXNsaEdQam1rUDBZUnRyaFRIVVNTbyt1Z1RidU95bFRr?=
 =?utf-8?B?Y1ZyOUFOdHpDYkZCQ0FlZ2dhOHY2L1RBZys3Z2FxVUNDanJ2RFdHS3ZVc1pm?=
 =?utf-8?B?NVRWK3RoWmdKUXQ4QTU4VHg4UnFSWjlsZXZJYWNHWU9kWkdZZkhKOTE5Z2tL?=
 =?utf-8?B?aDhRT2VzUWpHVjA3Uk9WaEJKL21GMlhrNytqcGpJMXoxY0h0Q3Y1VnFSY1JD?=
 =?utf-8?B?cHI3U2lNVXVaNjZjUE8vWkJ5bS95Y0MzT0lKYndwNmp0MTk0cnNiUUlxVnRx?=
 =?utf-8?B?b3lrOVRoTEtvQms0Zm1OalYwV2lkVmx3UnRoNmFwb3VWQjQ4RUFJZmVUQzk2?=
 =?utf-8?B?NzVLaGxFTHNVZS9KMGduQlFEWGVzcjZkVVdwMmVrYW10S0xrNXBmN0drWGpw?=
 =?utf-8?B?N0YwZllQOGYrYWtUVnRCYlpjeVRPYlJ5MjUxbTNLbmlWeWpQK0JtRXYxSklo?=
 =?utf-8?B?QlhEUk1IdnBDRGJWN0FhV1Nqd3UrakloQmJScEYxRmE1N1RHbUZTRWV4NEZK?=
 =?utf-8?B?cUU1Zk9EbkZGNTVUY2R4Mnd0L3ZmYXB3elQ4UEYwZEZaYjdEYXdBWVNNMXpy?=
 =?utf-8?B?ZHdFZDk1enpTakJQR3B4T0NqakxKL1JjYlNVWWpSTC9SeXBOWm82NEdlZjZJ?=
 =?utf-8?B?ZmFXVlpac0dxeFJRVlk3VUtTaExBcnc3ajNKL2tPSXZpUEtldTA0UW1UQjR4?=
 =?utf-8?Q?oE6U=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2025 02:51:11.3579
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9d9b6d9f-eef5-4e82-9991-08de38602494
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001D6.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB8764

On 2025-12-10 20:28, Jason Andryuk wrote:
> Also, my test of removing the path to memory_add() still doesn't drop 
> memory_add().

Splitting .altinstr_replacements and .bug_frame.* seems to be needed to 
drop memory_add().

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 07:10:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 07:10:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183562.1506207 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTaoj-0007Yg-4L; Thu, 11 Dec 2025 07:10:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183562.1506207; Thu, 11 Dec 2025 07:10:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTaoj-0007YZ-0L; Thu, 11 Dec 2025 07:10:25 +0000
Received: by outflank-mailman (input) for mailman id 1183562;
 Thu, 11 Dec 2025 07:10:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTaoh-0007YS-9R
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 07:10:23 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 734a8e06-d660-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 08:10:19 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-42e2e628f8aso212794f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 23:10:18 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8b8a973sm3736468f8f.36.2025.12.10.23.10.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 23:10:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 734a8e06-d660-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765437018; x=1766041818; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2KgxQsLHdNymULbr/SuEn7RfD0QTKnAtn1DTFMZDgVw=;
        b=UGumYigsIgzBDibnpoKIGDt/5SM34aI8nLrwhvZZu4F+h3IpMbOGjK05iVVwmMqfS6
         xdH1ZdlcpfIF9ZpKZtFmvVBfnXJzOM9dfKxKUPF4Tyyh+UMMae3gF6H0q/SRSTAn6UIA
         EU9hXWbSHV2lC8v0W0tRA3isJxh9sSG/XQxQVJzC3nAsjDhcPD11S4eYQr6zP70qjp9E
         y3eVpYlckW1wRgD0OaMxCpM1aYrJQ/0Els8QSMV/maRVDxjkKjllTX2BUfOPtOGA9+hb
         3e6x+2brS5Li+okxp0h6It+NqEmjikoJ4ldN59jT3oqWrViOpxlo475HbOSxslxl6ENm
         405g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765437018; x=1766041818;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2KgxQsLHdNymULbr/SuEn7RfD0QTKnAtn1DTFMZDgVw=;
        b=PDtqaG2EkS5UexxO9bwqRVs+uSvXE6AjTYKgg37PIxmfgBEAnbCMJI19SdMaqtnn0E
         0ZDB3TldAc0xt9gFEjUVxRCdHBQIKJjTGgis1Z+tY1ZR3nXFqPTRz7w+gSV9fPkHFJyb
         gwyvSLb/t18hbPQGnZBi97PDrUZcK6pLtxeWNA7dYMogMMuFDxYQmuDop0OIA4Xhit32
         c6ySaWA/iT5FIhD/meK5y9JNZkKMYsyrh1cpjVxa8y2IlU6SBfZ+ng3sTbUxPiDNQqIR
         n3eR4IppI4H/r7jHgoCGosq8/4MDHDHBjx8CKj3SZEffN8YhFTsxkG2qLw91TY5lQnyC
         GeFA==
X-Forwarded-Encrypted: i=1; AJvYcCW1+mSgfuKYvVzPYPMxcjNcg217iujrtyFXOx6HHfvF63kxrfE0k/q5jcR7cbMV+50Nhqv/PeK9Sl0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxkxwKx71dsyy0nq0pJth6SLSHdHz3ovQCIl+nCvZZh4/4pLEQe
	L3ETqej726eOJEiQAQoJ5cP0ATG5XOA4E9L/+UpoH9gXnJoV9nujSReFD4uPjwrc+w==
X-Gm-Gg: AY/fxX4Rl1H6gF4qhS769jA7vpPblr5uqrEEk0BgQQLzlhJtGLEeoDl32pDUMaVIIxT
	DMtJn+pSV6o86ObqAH6wON+tba/Zxejj7whwLYh9RYqWmO2dZfaQJ1zUETB/Ad0bBaD4hqTk2Qd
	8jkhsCapEW4Je6Ggm4clzy/kodEV2boGbbsAbriG4ftZ3Ohx3aBGpPR5jvDyFlvfm/vfW9a+MF1
	Aj/WVHZ0s0g0IPv4h/b1w2xXuB/Sb9hRxCUPOMI9cB4l27m74h6AQ1NVPjP+pk2LXeSSTbv7JnS
	DGHoHFypWHOO0J+keBPnxsuCyAOgogjj0UEZyJOA6neF6FUFzHRgzvSIHeVaXbSc4pcM9JQN6eA
	OaOi4biDvW6AWQXHMJ3szsywUle5KPvzi3jWH0sOqOPniloiumqK0a3XnyVCc23hDK/Y8rTJlhb
	mt60LL88i1oMLZZ7UWnHRtxG9BAgeNz+XAb4+GeOGE7AixdXu7pCoiJkaLRvLPKsermNFWdqOew
	h1lKDOPkHM/aw==
X-Google-Smtp-Source: AGHT+IEQWGqg3n1PYCE8mt2mbF/Z3pOeqi4qVcNaP+Ak59/hQh3aDWjsb9YtLTnnVFH1WNSK/P5MYw==
X-Received: by 2002:a05:6000:2c08:b0:42b:389a:b49 with SMTP id ffacd0b85a97d-42fa39d7eefmr5169406f8f.28.1765437018083;
        Wed, 10 Dec 2025 23:10:18 -0800 (PST)
Message-ID: <e2d5c0b4-a857-4b06-9148-4c7d5d22b44f@suse.com>
Date: Thu, 11 Dec 2025 08:10:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] x86/svm: Make vmcb_struct private to svm/
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251128201937.1294742-1-andrew.cooper3@citrix.com>
 <20251128201937.1294742-2-andrew.cooper3@citrix.com>
 <373f19eb-39fc-4a76-95fe-4acb95ba71d8@suse.com>
 <eef80a07-ccde-4948-8213-3ef5352c5283@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <eef80a07-ccde-4948-8213-3ef5352c5283@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.12.2025 15:25, Andrew Cooper wrote:
> On 08/12/2025 9:05 am, Jan Beulich wrote:
>> On 28.11.2025 21:19, Andrew Cooper wrote:
>>> The rest of Xen has no buisness knowing this structure, and it is currently
>>> included via xen/sched.h into most code.  Create a new private svm/vmcb.h.
>>>
>>> No functional change.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: Jan Beulich <JBeulich@suse.com>
>>> CC: Roger Pau Monné <roger.pau@citrix.com>
>>> ---
>>>  xen/arch/x86/hvm/svm/asid.c             |   1 +
>>>  xen/arch/x86/hvm/svm/emulate.c          |   1 +
>>>  xen/arch/x86/hvm/svm/intr.c             |   1 +
>>>  xen/arch/x86/hvm/svm/nestedsvm.c        |   1 +
>>>  xen/arch/x86/hvm/svm/svm.c              |   1 +
>>>  xen/arch/x86/hvm/svm/svmdebug.c         |   2 +
>>>  xen/arch/x86/hvm/svm/vmcb.c             |   2 +
>>>  xen/arch/x86/hvm/svm/vmcb.h             | 617 ++++++++++++++++++++++++
>>>  xen/arch/x86/include/asm/hvm/svm/vmcb.h | 606 -----------------------
>>>  9 files changed, 626 insertions(+), 606 deletions(-)
>>>  create mode 100644 xen/arch/x86/hvm/svm/vmcb.h
>> I was actually hoping for the file to be moved. I notice that a few things are
>> left in the original file, and I wonder if they couldn't be moved elsewhere up
>> front.
> 
> No, they can't be moved yet.  There's other cleanup on the list, and
> more header dis-entangling needed first.
> 
> But I do agree the name is wrong and wants to go.

Well, then let's go this route:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 07:39:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 07:39:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183584.1506216 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTbGp-00028P-7U; Thu, 11 Dec 2025 07:39:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183584.1506216; Thu, 11 Dec 2025 07:39:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTbGp-00028I-3v; Thu, 11 Dec 2025 07:39:27 +0000
Received: by outflank-mailman (input) for mailman id 1183584;
 Thu, 11 Dec 2025 07:39:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BerU=6R=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vTbGm-00028C-LT
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 07:39:25 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8227d142-d664-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 08:39:22 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 8B1094EEBF88;
 Thu, 11 Dec 2025 08:39:20 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8227d142-d664-11f0-9cce-f158ae23cfc8
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765438760;
	b=DypkyhLfR5cJF6uDWANQJRAlQRWLOh0+bHCA4TKcawofcWTnSKQ7xInvjPAohYuhGbH5
	 tsnD9F40QThk286l3ArKMeQwaqXKL8c9Et/beqtySy7LwcpdJ935k2lAZDmhV15LNxNlw
	 GSymwn9t03ljx/G0wc0mRdp9H9Vu+ejNpYAZ5OCmzWpncKxK0AhX76/fKQNBbyO1ZGaWQ
	 rcHVh5uiOWdCXz82JTxGUBsSI9rGrC7my6/whDXMO01qU/rS1JuDvncezmhch8EqhwUPm
	 4q0wkfp/0UeLom9I8ebqdiN20UW70GgAPjb+5Jw4WjzyBD5alnkcWP+NWU4iufzs3GLCQ
	 rlhvHks14iq4r1dpON+v/MEPKA5DD3qkTEGzAWe+jTUP2yPBOBmcCL/Ods0qWGJlFcf6s
	 4J6qjzfSTCfbett2KiEugwlSxyr+VBcitHY+oYaNbvkKEWmeMxBgqKue1fC+79DJCIQSp
	 +Pmm1V7tS2fCQKYHsDJY+PvndIxGcadp/zkwBpBdniNjfZH3zb2Eg3Am/OX4ZrjyQXNgQ
	 IJUNZmA3mX2xIDbv9x/dFQze164qmLzYU0WZdNtYUKNhoXXlFqDqK4a8xyUUd+eSyYsrT
	 edOuhWx3TdEoxvcN5cD2ym6SMn2Of1ycVwjY/Pq6X7oFO6Rk0lJb8d52rUgpb8U=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765438760;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=L9WU1G5zKbxi4Cn3+3HW95CjXgBsCbejbcW+mkFs/nI=;
	b=iOi2/LI2B2bVid/7vEBLJ2AQK8B8GWLw0CZQXdj0G2GV9V+aUNv42ByVq+EujP548cRk
	 YK80dCToLqlrQv1jUS4Ii0J1j2+3Hc8T8+YkQC11m2jzOFAkDmlyST954Wd0o7cp2xblV
	 dk+p5QMRp49e54fVLcfJ+bWZybOcH2hO6I7RjSxUtYsWHg5JBpioJahFqOKY8BF79tlv1
	 a6A9IY18eBlCaUhGD9vaEQjTS4jSb3JJ1srSOGzn/dle/+i1aelTNR3WxjKOfpqtsBFrN
	 JkuSBJ2oPaulKgwh+ybM3DNSZirRMmae9txNx+dEpzcIOwwu4d414ZoFOqL5kJbUTkLaf
	 H8aCzFufTFN3ERoWqxntDOXVvh+nV9AC1q9o9ND9belYRhGJWuYKvyN/1q9CzkV6t3tK2
	 rVA5qHkEu4Bf3RaMQM4yoPJp9gowx3A6Jbp+Q3ZBEQaj9Bk1gFX2mYzSCbze5XMb5T+vu
	 DZ0eFcwJCEge0BQI4H+OmO9CGoVjzKd30wFmq5YVAYOdEiCOz2TKFgZDhVvpBrsgEDGV6
	 KKL14eFZGbdLkYEqaW0O+0cvYMk87GA2l9C+nO9oL3zkPiILHE56CSafvnVy1v0LAtSL/
	 B+cB8Hp3ObXnlDnSe3p6cI4LJZnB/+rNENBHarGzWv/VTxAtRrCyiX92wWREaYE=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765438760; bh=E+HldCsOnG2PoKHFcpvLXYZ79+DuZZiscDTPs+aOWRM=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=CkCZ2DDGipQ7NHQvYfdJxNDdd1Y0n48+7T7+Up2fYRNtVdtlDKWpeYM/p2Cw6ZLrv
	 GSfRBJl/BkJfO6WsxaZoCiBQ2AI4V9b+I015WvvjaYAVQXABM41zGq7vg95kb4iJhk
	 i5VNtmIiun7U9Tw0dqwk6Rvs58S5nkA5Zk9iI/uEeLtFwFIc6dLBdyW4bGVL8kgOyJ
	 u0VguTseGwivQnY+6/ua+T8d5cmvWJNo+jao0rbck5Owpwp+33S83cFnFEF8npW3TB
	 tlXpMWr7FUtFnWU4BVPwzyZhyeQKNVRLrpKAVZLy6NYezxcgfC+hl5BZ4CM9dcB/6e
	 gH0aaqBjJXJXA==
MIME-Version: 1.0
Date: Thu, 11 Dec 2025 08:39:20 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
 <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH 1/5] x86: Misra fixes for U/L suffixes
In-Reply-To: <673e625a-4df9-45fe-a45d-49d988197da8@citrix.com>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
 <20251210183019.2241560-2-andrew.cooper3@citrix.com>
 <c9c7deeecc839295d04c5374691f848d@bugseng.com>
 <aa03d225a116bbb5db0e7a0df61161b5@bugseng.com>
 <673e625a-4df9-45fe-a45d-49d988197da8@citrix.com>
Message-ID: <a9cd462f7210e12a307b492c85e249b1@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-12-11 00:48, Andrew Cooper wrote:
> On 10/12/2025 8:31 pm, Nicola Vetrini wrote:
>> On 2025-12-10 21:09, Nicola Vetrini wrote:
>>> On 2025-12-10 19:30, Andrew Cooper wrote:
>>>> diff --git a/xen/include/xen/elfstructs.h
>>>> b/xen/include/xen/elfstructs.h
>>>> index eb6b87a823a8..8770e7454672 100644
>>>> --- a/xen/include/xen/elfstructs.h
>>>> +++ b/xen/include/xen/elfstructs.h
>>>> @@ -360,7 +360,7 @@ typedef struct {
>>>>  } Elf64_Rela;
>>>> 
>>>>  #define    ELF64_R_SYM(info)    ((info) >> 32)
>>>> -#define    ELF64_R_TYPE(info)    ((info) & 0xFFFFFFFF)
>>>> +#define    ELF64_R_TYPE(info)    ((uint32_t)(info))
>> 
>> Actually I think this doesn't build:
>> 
>> arch/x86/livepatch.c: In function ‘arch_livepatch_perform_rela’:
>> ././include/xen/config.h:55:24: error: format ‘%lu’ expects argument
>> of type ‘long unsigned int’, but argument 3 has type ‘unsigned int’
>> [-Werror=format=]
>>    55 | #define XENLOG_ERR     "<0>"
>>       |                        ^~~~~
>> arch/x86/livepatch.c:332:20: note: in expansion of macro ‘XENLOG_ERR’
>>   332 |             printk(XENLOG_ERR LIVEPATCH "%s: Unhandled
>> relocation %lu\n",
>>       |                    ^~~~~~~~~~
>> arch/x86/livepatch.c:332:69: note: format string is defined here
>>   332 |             printk(XENLOG_ERR LIVEPATCH "%s: Unhandled
>> relocation %lu\n",
>>      
>> |                                                                  
>>  ~~^
>>      
>> |                                                                     
>> |
>>      
>> |                                                                    
>> long unsigned int
>>      
>> |                                                                   %u
>> 
>> the error location is a bit unclear, but the cast is the culprit
> 
> Yeah, I spotted that just as I heading out, and ran
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2207521982
> instead.
> 
> I've swapped back to using 0xFFFFFFFFU.  info ends up being long, and
> the result of the expression needs to stay that way.
> 
> However, looking at the report for that, I still missed one.  I've
> folded in this hunk too.
> 
> diff --git a/xen/arch/x86/pv/emulate.c b/xen/arch/x86/pv/emulate.c
> index 8c44dea12330..e741e686c1af 100644
> --- a/xen/arch/x86/pv/emulate.c
> +++ b/xen/arch/x86/pv/emulate.c
> @@ -37,7 +37,7 @@ int pv_emul_read_descriptor(unsigned int sel, const 
> struct vcpu *v,
>      if ( !(desc.b & _SEGMENT_L) )
>      {
>          *base = ((desc.a >> 16) + ((desc.b & 0xff) << 16) +
> -                 (desc.b & 0xff000000));
> +                 (desc.b & 0xff000000U));
>          *limit = (desc.a & 0xffff) | (desc.b & 0x000f0000);
>          if ( desc.b & _SEGMENT_G )
>              *limit = ((*limit + 1) << 12) - 1;
> 

Makes sense, feel free to retain my R-by with these two changes.

> 
> ~Andrew

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 07:41:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 07:41:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183593.1506226 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTbIu-0003aw-I7; Thu, 11 Dec 2025 07:41:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183593.1506226; Thu, 11 Dec 2025 07:41:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTbIu-0003ap-F4; Thu, 11 Dec 2025 07:41:36 +0000
Received: by outflank-mailman (input) for mailman id 1183593;
 Thu, 11 Dec 2025 07:41:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTbIt-0003ah-J6
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 07:41:35 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d0699258-d664-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 08:41:33 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-47790b080e4so2935455e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 23:41:33 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a89d836c4sm7578065e9.1.2025.12.10.23.41.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 23:41:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d0699258-d664-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765438892; x=1766043692; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qgJnG7vvKe5fkGL1qjYTwfe696ujHpCbU/AQkE7N9r4=;
        b=GN8IXZ7pliZQhuAvJmiguIDT6FxlRa8wWPUO6tZWmOTmDS/fstsxJU3DH3z0QykR8r
         Rc53FyS7+/qfZi81LvVgrrJVio2H/LCAWz5bwWwJII2Vel3yMbeSdZiigkGrXRz6dEAr
         PaP1St9OSNavZx07204EJORyMRzvRzyT4Q3A8N7k6Hbi5pFDYs10tvhVqeYhEtwwN+GL
         t27d+5Y4PrD+WnhUdj1r+yxj5JTVhdhJDWBO+H0LcHDQYXbBAprThN9cmZVs9VpFn32k
         5UntdCxmNCgFlDFqGMIXc1kJwDf+z+OPXYpxS18F2/Kv1XPVYCRjFEFPz3p1tuUJV8cd
         2iMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765438892; x=1766043692;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qgJnG7vvKe5fkGL1qjYTwfe696ujHpCbU/AQkE7N9r4=;
        b=cMhDdMlBzJPgTeFrp1gYYeaQ8SDhw0roYzsxUDgBEfL4ne52vrvs4MyIVX6JSMc7dw
         YBrQVRKiZMbEf/98pZzRw2DIoPppnsQNiGNydiXHC/G5sgN1fY9+pyQrYjGutjx4/BnN
         m9WyqPJnKtuSIJzCq5MdvJWSUliWEtn+QIcHvPw4b+rW0uLAP2XI3605gNa1WGeKS2by
         leRzenRpYPL87dny2fEMv/Ih2zShrIJk6mzfxyXiGOdBUOFZk8nJZ9cw13jOi1Ugn+K3
         LmFpjLnvi2tAz63vhHNjShzvGRiF3zczBGuEtyAEitwmdAy8rv02FPchDJSMZuYkL8/f
         PtmQ==
X-Forwarded-Encrypted: i=1; AJvYcCXigBhyuEUMC6zNdaHyO8OUbL3lx5tuB3+2/qgZLhYGRZYmk536oFJuMInqDaRMRbCkaKFw2vQLSq0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyU807GzbrWLu/mydWdcYZ5NikEOd93FFLQl/x04rwEQRZcblSd
	QJs5oUTGdbcfH8y7HUdw/K0RySQTtIOrunaD22CnCa9C84yvtDgebuwhe8I6OXAyuQ==
X-Gm-Gg: AY/fxX5FyEAlppgftjn9F/W16hjMgeDV6kkqBEULAH7vk8gdr0Sk74urPLIVcDeklha
	bVpJ/tPZV3F7DM87jRFmlaayDYCbSoAtAO2sKDTSTq8NUqTp2g8Mf2JT/ZbNMA0H7l2c3wggmyf
	gIh+g6KOdNVdkigxjd/wn1mx7lO6rJ1IEfPLgd+vr9yLbpaUxCQslYyrPGlJsjLlbx2MFT3+x+o
	VbZUCQqlpKl+58Ehi3dij5RRJQbvBa0GKHL05unEZSzIcwjFHUahjdAr7r9eUhAqieinv/BkzmF
	c/HE+0wiO+Gqz4t2qqmE003yj9uSyCWne/QmA9wApV61i7/cQ7taB/i6QyHYI4Wm5w+DLjGW9Tj
	9cpi3/jh508TkE3ZEZj+nVsab0FJgdAMS4lVprSk9+5jULWaUw/8LVueYJac7W8v2lZVbaLNxvL
	KzU1i+JVwTTp7zCtfbrKAwd8XuBzUhAZbj9/Msl+KAuhf0oWi0SQ7CwLLdH7hs0UjnCa3QboM40
	e0=
X-Google-Smtp-Source: AGHT+IHk7yg8vwepikh5N/rsUopvmmKH+5c3I7V+xXxNg3MVELgABK/+95unmFmJh461UFvcFXyDtg==
X-Received: by 2002:a05:600c:681b:b0:477:632a:fd67 with SMTP id 5b1f17b1804b1-47a838040e1mr51922065e9.12.1765438892580;
        Wed, 10 Dec 2025 23:41:32 -0800 (PST)
Message-ID: <d3943552-07ca-4d3d-955f-64302da152e4@suse.com>
Date: Thu, 11 Dec 2025 08:41:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/6] x86/cpu-policy: define bits of leaf 6
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@suse.com>
 <8791387c-2799-4e0b-b187-1900b224a101@suse.com>
 <4827eec7-1452-4840-a151-1f5deeff1384@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <4827eec7-1452-4840-a151-1f5deeff1384@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.12.2025 14:37, Andrew Cooper wrote:
> On 24/11/2025 12:23 pm, Jan Beulich wrote:
>> ... as far as we presently use them in the codebase.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Or should we make both parts proper featureset elements? At least
>> APERFMPERF could likely be made visible to guests (in principle).
>> ---
>> v2: Use bool and unions.
>>
>> --- a/xen/include/xen/lib/x86/cpu-policy.h
>> +++ b/xen/include/xen/lib/x86/cpu-policy.h
>> @@ -121,7 +121,46 @@ struct cpu_policy
>>              uint64_t :64, :64; /* Leaf 0x3 - PSN. */
>>              uint64_t :64, :64; /* Leaf 0x4 - Structured Cache. */
>>              uint64_t :64, :64; /* Leaf 0x5 - MONITOR. */
>> -            uint64_t :64, :64; /* Leaf 0x6 - Therm/Perf. */
>> +
>> +            /* Leaf 0x6 - Therm/Perf. */
>> +            union {
>> +                uint32_t _6a;
>> +                struct {
>> +                    bool :1,
>> +                        turbo:1,
>> +                        arat:1,
>> +                        :1,
>> +                        :1,
>> +                        :1,
>> +                        :1,
>> +                        hwp:1,
>> +                        hwp_notification:1,
>> +                        hwp_activity_window:1,
>> +                        hwp_epp:1,
>> +                        hwp_plr:1,
>> +                        :1,
>> +                        hdc:1,
>> +                        :1,
>> +                        :1,
>> +                        hwp_peci:1,
>> +                        :1,
>> +                        :1,
>> +                        hw_feedback:1;
>> +                };
>> +            };
>> +            union {
>> +                uint32_t _6b;
>> +            };
>> +            union {
>> +                uint32_t _6c;
>> +                struct {
>> +                    bool aperfmperf:1;
>> +                };
>> +            };
>> +            union {
>> +                uint32_t _6d;
>> +            };
> 
> The _6[a-d] variables are only needed for the featureset <-> policy
> conversion which isn't the case here (notice how you don't need it the
> series), and we're unlikely to want in the future.
> 
> This wants to read:
> 
>             /* Leaf 0x6 - Therm/Perf. */
>             bool :1,
>                 turbo:1,
>                 arat:1,
>                 :1,
>                 :1,
>                 :1,
>                 :1,
>                 hwp:1,
>                 hwp_notification:1,
>                 hwp_activity_window:1,
>                 hwp_epp:1,
>                 hwp_plr:1,
>                 :1,
>                 hdc:1,
>                 :1,
>                 :1,
>                 hwp_peci:1,
>                 :1,
>                 :1,
>                 hw_feedback:1;
>             uint32_t :32; /* b */
>             bool aperfmperf:1;
>             uint32_t :32; /* d */
> 
> and with that, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

Thanks, but: If then someone doesn't pay close attention when breaking up the "b"
field (perhaps also into booleans), things may go wrong. I deliberately added the
"raw" fields, despite not (presently) being used.

And to be frank: I said I would even before I sent the new version, without you
indicating I shouldn't go this route. Now what is pretty much a mechanical patch
will face yet more of a delay going in. I think requests like this should either
be made in a timely manner, or simply be omitted (in particular if otherwise a
patch is ready to go in). Had Jason not reviewed the series, and had I not
indicated that on this basis I would commit it today, how much longer would I
have had to wait? How's the backlog ever going to reduce this way?

Now that this is going to take yet longer anyway, we can as well deal with your
naming request in reply to patch 6 (which really would apply here first, imo). I
picked names largely based on what was used in the HWP driver, as that was the
in-tree status quo. I can certainly move closer to what the SDM has, but your
reply to patch 6 ended up being non-conclusive to me. I'll reply in more detail
there.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 07:51:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 07:51:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183604.1506235 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTbSd-0005MT-Dg; Thu, 11 Dec 2025 07:51:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183604.1506235; Thu, 11 Dec 2025 07:51:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTbSd-0005MM-B9; Thu, 11 Dec 2025 07:51:39 +0000
Received: by outflank-mailman (input) for mailman id 1183604;
 Thu, 11 Dec 2025 07:51:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTbSc-0005MG-Bd
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 07:51:38 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 37b0a17a-d666-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 08:51:35 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-42f9ed40b8fso268159f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 10 Dec 2025 23:51:35 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8b85d1esm3887430f8f.26.2025.12.10.23.51.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Dec 2025 23:51:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 37b0a17a-d666-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765439495; x=1766044295; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zD9AKYovvfVOsnkYxku+GEY0D2V91PqdigXEXM1V5W4=;
        b=N6hzFu2naweI0+fWhc4dzvI53/4i+E2Uhr1fBO92GLP9mMvGCiAACrY5EAQM7k3qrF
         IexTxxvdSH9oGZNnKbS3xBpkhFc8cZ44A2rUl9RkbGQQ9LQb9loWuy9xBTU5GftsJpoY
         Pr6amU6n7lVt1LObnj5HV9RPiMTBHWTdDUiuDsgpGoWHICHjEhVbqO73g2OlIjYVqX9v
         POYFCKLuoNlZyFYMRiY12a6SXAKHWW2SKKieR/v531yIDDIGT3Ad3oNNQpsliyXdM1h1
         uvKWZpuk/z7hQi+V9775PczQMMIsdOtFI/dZTOhqtLVKUG3D2EKWWN0288G37QJcxEN8
         6HKA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765439495; x=1766044295;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zD9AKYovvfVOsnkYxku+GEY0D2V91PqdigXEXM1V5W4=;
        b=DKDly5ENwzLpfOOocbjqvjB9yiYNCBB9btj3mMOoik/9jA80IV6/K1JKOskBEFgoJD
         M8/1V8AV+OwXy80mcqYL6ervxbQZgYCRhCqapWVQYiFJEFlTsBmkC/HGbMz800DhvgsZ
         ZOtWCYVQAXy2d3Jajsx0mDMw0/m4/2I3dOV+uxFQoU+UbvChOwmL0GnT2O5LqgH/DF5t
         KmhhoH/48d5C+L/zoE0OOZ67kciQirZo+p1sYgGiwdMZSeeWexV/zZsa2UDDwR4uloYv
         cvEQzAuUb1uqMaLWQIXOXiuMxyNROgs+yVqHKs+b1jRzm/zG/OEyhX1ghJIziPnZgWzE
         9HBQ==
X-Forwarded-Encrypted: i=1; AJvYcCWrVPKfgGs9l9BW890Bg/4bWUfUcnqxFjYMZS/zahT61wiomljWj+2+LC862wHjWCX7soIq0fUnXkA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz4ay2DKZrYd9bOroY0SpUoeDVjl+fHfiySnoanEgv6kACJEkim
	acFcRzDu64mZ4lrJIR7fJZnYCw70e9oP7UHd/HT/8GzA6vPkauWtCldFO0L5VylyMA==
X-Gm-Gg: AY/fxX7FjkIW7479Ncg4hbJxeL6GlsEKsehtqa/vM4fREI7hxEFFchYSzamVK5Q7oRz
	/KbUk3bqzpsSOPSgCvkgTL/2t9Kbz0vVPMMTr59xW3UB0k8GNb+XRFSewb88nmUQMsQt19bb0wu
	dgBhHZLk+2ux5Nc7oU2L9bEyNwv9E/1whex/Ksv+n0aomXOCqMjojJoWKGTfHoXSbUmF8B22S/Z
	iJpQBSYiebczAj1WGNfKkM8hL7k2wOKYLMXzQolFqOYyyGEEQhD8pkUIUsSq62DGZYJXDXv7f5L
	XT57ZZCiyyMu+jFlUcMmXAeHm0+xaIHx1fw4nJlqwkNdzPJ9+3TwrnI/HCExi/jWr03VipMc0zt
	5ugP4LLXjlx7Z80E5YjLVFCcU50f6Z+tyojE5HMcai8EvWpg9S8TOecfqJRktlU+N6J5yaKF4bS
	NL+Cdnk479Llkd+YARUY6b7wB/pqyoqOz43zx5LHzcKyhjzwwYskdh9L7ex1/xQAr8iRPGelSvr
	LG6JkJFY0M1qA==
X-Google-Smtp-Source: AGHT+IEchYXYx3e6nGbAC3jj8c77XQfR2s7OpXKpLYkv59YCrIz9FxgqTDBeBDWsxLoJvDN+JsDdLQ==
X-Received: by 2002:a05:6000:2210:b0:42b:4061:2416 with SMTP id ffacd0b85a97d-42fa3b19914mr5593014f8f.52.1765439495317;
        Wed, 10 Dec 2025 23:51:35 -0800 (PST)
Message-ID: <43ba31c7-a180-4e03-90e2-e80a9b551d30@suse.com>
Date: Thu, 11 Dec 2025 08:51:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 6/6] x86/cpufreq: use host CPU policy in HWP driver
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@suse.com>
 <bacee005-8ba3-468e-8de4-681af1cc4856@suse.com>
 <ad7daa54-0529-4e14-9eff-32d42a24f9e3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ad7daa54-0529-4e14-9eff-32d42a24f9e3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.12.2025 15:11, Andrew Cooper wrote:
>> --- a/xen/arch/x86/include/asm/cpufeature.h
>> +++ b/xen/arch/x86/include/asm/cpufeature.h
>> @@ -115,14 +115,6 @@ static inline bool boot_cpu_has(unsigned
>>  }
>>  
>>  #define CPUID_PM_LEAF                                6
>> -#define CPUID6_EAX_HWP                               BIT(7, U)
>> -#define CPUID6_EAX_HWP_NOTIFICATION                  BIT(8, U)
>> -#define CPUID6_EAX_HWP_ACTIVITY_WINDOW               BIT(9, U)
>> -#define CPUID6_EAX_HWP_ENERGY_PERFORMANCE_PREFERENCE BIT(10, U)
>> -#define CPUID6_EAX_HWP_PACKAGE_LEVEL_REQUEST         BIT(11, U)
>> -#define CPUID6_EAX_HDC                               BIT(13, U)
>> -#define CPUID6_EAX_HWP_PECI                          BIT(16, U)
>> -#define CPUID6_EAX_HW_FEEDBACK                       BIT(19, U)
>>  
>>  /* CPUID level 0x00000001.edx */
>>  #define cpu_has_fpu             1
>> @@ -179,6 +171,14 @@ static inline bool boot_cpu_has(unsigned
>>  /* CPUID level 0x00000006.eax */
>>  #define cpu_has_turbo           host_cpu_policy.basic.turbo
>>  #define cpu_has_arat            host_cpu_policy.basic.arat
>> +#define cpu_has_hwp             host_cpu_policy.basic.hwp
>> +#define cpu_has_hwp_notification host_cpu_policy.basic.hwp_notification
>> +#define cpu_has_hwp_activity_window host_cpu_policy.basic.hwp_activity_window
>> +#define cpu_has_hwp_epp        host_cpu_policy.basic.hwp_epp
>> +#define cpu_has_hwp_plr        host_cpu_policy.basic.hwp_plr
>> +#define cpu_has_hdc            host_cpu_policy.basic.hdc
>> +#define cpu_has_hwp_peci       host_cpu_policy.basic.hwp_peci
>> +#define cpu_has_hw_feedback    host_cpu_policy.basic.hw_feedback
> 
> The indentation of these final 5 is one-too-few spaces.
> 
> I can't help but feel that notification could be shortened to notify. 
> Except upon looking in the SDM, it's named HWP_INTERRUPT because it
> enumerates MSR_HWP_INTERRUPT.
> 
> Similarly, HWP_PLR is really HWP_REQUEST_PKG because it enumerates
> MSR_HWP_REQUEST_PKG.
> 
> ACTIVITY_WINDOW and EPP are wonky because they're out of order WRT
> PLR/REQUEST_PKG.  It clearly means they all came in together, but have
> SKU controls.
> 
> But I digress.  ACTIVITY_WINDOW can probably be shortened to just
> WINDOW, and that fixes the two egregiously long ones.

To be honest, I see only one of two options: Either we stick to what we had
settled on when the HWP driver went in (switching to acronyms where helpful),
or we strictly follow the SDM. In the latter case I think I will need to
split this patch, for every of the renames to be separate (to be easier to
verify). And the naming decisions then want applying in patch 1 as well.

Unless I hear otherwise (soon), I'll go the "strictly per SDM" route. Still,
the union-or-not question in patch 1 also needs sorting, so I'm dependent
anyway upon you replying in a somewhat timely manner.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 08:20:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 08:20:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183633.1506245 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTbum-0001pK-Sf; Thu, 11 Dec 2025 08:20:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183633.1506245; Thu, 11 Dec 2025 08:20:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTbum-0001pD-Q6; Thu, 11 Dec 2025 08:20:44 +0000
Received: by outflank-mailman (input) for mailman id 1183633;
 Thu, 11 Dec 2025 08:20:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTbul-0001p7-Gp
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 08:20:43 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 47e25011-d66a-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 09:20:41 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-47796a837c7so4884645e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 00:20:41 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a89f74291sm20421535e9.11.2025.12.11.00.20.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 00:20:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47e25011-d66a-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765441240; x=1766046040; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=199tdwz7sf7JJNa5p7Oom8elNhVDlkcvMlfTdUa4kEc=;
        b=M7MQnjX/amoDdyT7tyzu2UQ/AzQbEaXwXlxsj4Dh5BWc87bD9BtME9e+e5LraEIEKN
         DTK7ILiiMkDYjusE8vWDb/Dqdn0m0BCeMBkP3foxFB0FsovDUEZ7Qxgks2D8c+SLXEUs
         biJ7BA9VD1rVdnDWcmXSV+N3lR+W/sBPkhu4o0iu0LuUfEhN+6xjOAAv+I1HBk+ALzJM
         Py8lXHpj4J6q723EAVTVxwUVQFcTiriwYmBqd1tKz/Mud9oDyaW9rI9fMJdgcwMS6olT
         1V5EiR/J2Mjt93G7enep6QOySkQrgwC6lu2E7pdieAE4+sTkXontZHuednuXlhKh7GVI
         eaVA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765441240; x=1766046040;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=199tdwz7sf7JJNa5p7Oom8elNhVDlkcvMlfTdUa4kEc=;
        b=J5kBJBt8zdUJrCGIUnTKpA2BuI0VTlX5wQF3tfHKOhLcy66Xks9YzjFSKhUHPPUPa1
         T9Db+3j2gtqIoQgi11g9SByxEoBrFZTbavCIO7Ca08aZx9QJko0vdPy3B7RmXGtTFWph
         E0MgeqDy7J5jqGanIbTtVGtUrOCTu/dJIzeu3x/AYs1ECZ66ztdEhWVPpU8i829xkbM5
         l2ZGx3K+vPj1ZNJbSipyvJvsGkodNM/yXOjenue89MOpOgltuVMevVisjtKSQ4seb1bc
         xNr8JQCoZ75m1Adc13bNgnAEzS73hekZUfSynazyq98qH0TCH+F8EpyagZ2+rovJlyVy
         /UFw==
X-Forwarded-Encrypted: i=1; AJvYcCVB5eVuJiyo7vh0aQPWgkHtR8+BqgxTdl+QhZlpSVxxj8WRtuJqNBpsMGwVQB7rDY++QlrRgcGUK4c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YznQ7ZCclRRGiEc5BXtROvnzdiVdj8sXMR8aMrfxhziCvGzbuVK
	nFPGe8q2daOqeXOKECw/7GU/uBqTVAPwHjIkyMMYiBLSMnzzYM8bRT+7tgKzEsSHDQ==
X-Gm-Gg: AY/fxX7ORpYLBcs61bEupF2KRj6ozVZvjNLN42/GSespjqhwEvvKV1hADyB7tR2N6k4
	S+ALNPwhXmzPbgIt0xMSgOlI9O8MkvjYVcEj5nQzpZALBCNHUozfIrrLsBwcLzENn5q4YkL4U7V
	OgL1FWCcCiqcjvWnfNu8LKHv/NFQ6qspt/Su1AoTQm62Fkq/Re0XMoyPtHSJBSxBvpJf/qgYjC3
	F1szwKwAd1TboJBQl9UDhkKvE0nA99FyoY+I5woTZOo0NpVZdves1B4gA9T7bIoTLJaSsqguPOM
	iFUu1psMfCw2O+/sPOn7caoh95PPz458cUngve9dGk1Sz1Mm2gztwBFYUqB2NbXHtLvL8IBjN0s
	gE8jiFbbfCOjpIZMYCrBHo8sKJcEq3DP1AqBe62LwDIPaieidCDoomBN/ExT3LF6JSr5FT2a9uH
	qjTPyPl5NQ7yEvTAcZQZ71in+lXEVRBRd+SJqaQ8DOV5DrpzrObb30yuDkFO8gCYz6awGcwduqf
	+zge8nnM/Ovcg==
X-Google-Smtp-Source: AGHT+IHXVwBp1NRR+fgRyAdxAhAveZwTAo4jwG2ekFJ6zyCdN/9UIO2Xo2hKZNExS62NbkuWDcbBrg==
X-Received: by 2002:a05:600c:190f:b0:47a:8154:33e3 with SMTP id 5b1f17b1804b1-47a83810f33mr50819525e9.28.1765441240270;
        Thu, 11 Dec 2025 00:20:40 -0800 (PST)
Message-ID: <d40dc64e-cf8e-4bf7-9d04-1dcfe4c6abea@suse.com>
Date: Thu, 11 Dec 2025 09:20:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Victor Lira <victorm.lira@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-3-jason.andryuk@amd.com>
 <a734eeb0-c3f2-4880-86ee-7eeeb7beeacf@suse.com>
 <974c3c29-8f58-46fd-9ffd-4c574525f66c@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <974c3c29-8f58-46fd-9ffd-4c574525f66c@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.12.2025 17:57, Jason Andryuk wrote:
> On 2025-12-10 03:17, Jan Beulich wrote:
>> On 09.12.2025 22:47, Jason Andryuk wrote:
>>> --- a/xen/common/Kconfig
>>> +++ b/xen/common/Kconfig
>>> @@ -680,4 +680,13 @@ config PM_STATS
>>>   	  Enable collection of performance management statistics to aid in
>>>   	  analyzing and tuning power/performance characteristics of the system
>>>   
>>> +config GC_SECTIONS
>>> +	bool "Garbage Collect Sections"
>>> +	select CC_SPLIT_SECTIONS
>>> +	help
>>> +	  During final linking, garbage collect unused sections.  This will
>>> +	  reduce the size of the final Xen binary
>>> +
>>> +	  Only supported for ELF/Multiboot xen/xen.gz, not EFI xen.efi.
>>
>> This last sentence is x86-centric, which it shouldn't be here (or it should
>> say that this is an x86-only aspect).
>>
>> I also wonder whether this wouldn't better live next to CC_SPLIT_SECTIONS.
> 
> If I put it immediately after CC_SPLIT_SECTIONS, menuconfig puts it as a 
> top level option:
> 
> │ │    [*] Garbage Collect Sections
> │ │        Architecture Features  --->
> │ │        Common Features  --->
> 
> I thought Common Features was a better place for it.

Oh, right. I didn't recall CC_SPLIT_SECTIONS wouldn't even have a prompt. I
wonder if it shouldn't gain one, move somewhere here, and then this new
option could be placed next to it.

> Also, I think it should probably gain " if EXPERT" as well.

Not sure there. If this works reliably, I don't see why it would take an
expert to enable. Eventually, after all, this may want to be the default.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 08:24:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 08:24:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183640.1506256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTbxv-0002OP-AU; Thu, 11 Dec 2025 08:23:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183640.1506256; Thu, 11 Dec 2025 08:23:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTbxv-0002OI-7O; Thu, 11 Dec 2025 08:23:59 +0000
Received: by outflank-mailman (input) for mailman id 1183640;
 Thu, 11 Dec 2025 08:23:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTbxt-0002O5-9K
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 08:23:57 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bb8b3ca3-d66a-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 09:23:55 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-477bf34f5f5so5607755e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 00:23:55 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a89d9a174sm23498105e9.3.2025.12.11.00.23.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 00:23:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb8b3ca3-d66a-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765441434; x=1766046234; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=j7LMydaAXChFSGiONcnEvTsTxDWWWR/TBL4AqqtXITo=;
        b=XBoUCab7mljmApNJhOsauuI0ICuss1yDvErHk2+SZDWkLNnlmLtZE8u25O/5AUmxp0
         KjNf2MRm/TV1CFfrr4XeZ/ottTJkwG0w6RUmxV9IOMvo7n4q9m2TLA1yAFYR/pkTuybM
         wTmDmBSXGyVVeRz2eprXlW5V505ruPsQuepPWIomhJq60eYr148+lnEF4avV/9JLrvE+
         iaXmK+AdFPJ4D0sw5sSDRIWon4HyrXu+itwWRM2O6J91ZM8E5tKcuyh9Co2R/ozxrSmQ
         8qaus9tMaz3L0r/iTNsNRKaIzTkr16OFvpdiX+FBHW7dLFXq7VL+Wz70rBOtzVuHWZuc
         ryKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765441434; x=1766046234;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=j7LMydaAXChFSGiONcnEvTsTxDWWWR/TBL4AqqtXITo=;
        b=coYG6Tez8YXAmoeor5vO3iWW3yjwIQEXzGpd+UcgHqKhlKWANM1xkz4wQNlnXSiZXe
         fIpbMFMD/gtR1S0LVZ0E9QmeWDPfw1u538FZiqH1p4NprFqnSMnlO6gTt1binIfJ/CMt
         MCVB8Mhg+nn8kVW0zoLAf6KIsxAwkbvr2907IW+PmHyvWxy8b13Pq9+/0tFokis8Bn7c
         g7WZPPRvN7enn+ueJCpdD9qRthFs6sdJpJI2zw8HRu4XE0aVUeh/d/OU5SkLG6Dg1oxO
         tdFYa4HDQh8GyQDPMsTalboMpOXJNrwPVpvf0h71GJL06S4hViU+LCi76MLg57q9eXUQ
         QkNQ==
X-Gm-Message-State: AOJu0YxEdcrK3ZFFGUgMXPb91KyKodjaefxPUXMfhuZqtOGIhd0PDsk5
	96Twg11Wf0E5j98jJBqKnJhe/aLn4Oh2VhVaTClt4WoQyGWDgnFvBi3TS5L3lEkrWQ==
X-Gm-Gg: AY/fxX78AhvLUlvjV8+9lKvVrTS2vcakhjKlYMPqBPhnR+lzHtIP8E+eDzqfohIlhXb
	+KmJXC3B7ls06C5mox4Cb5rNL6JIEnspdIgq0DOIhxdZ92GmifNPc4S7pxL5RG76sQ02IjcEi3n
	DnMl9V0avjOW1YCWqPGBKvaOp79tNgkr9f+ef5HGwSLJ3Oq5ytCmD0i7yc6Pa22/NsBZSz3unEc
	ejURMc95qeTkyzivFAmhnMNxuklooIZA5tduupg9XqkN7815Jb9EBN8PZ9w6kUevACDXNkxMBek
	1lL2Ympdm1iHalA+p9Qc05LrGsvwdY9C4QyCJXCLffbaTHN9N7WHvPR2fF5idf3aJ+jxkHa7tXs
	ITPPHFhhl3f4KUQ25slO89Wb2DOS9z43Enh38YOCJ+c7poya8IsuA/e5DYOBCPgutGD4o4E7PzV
	Ow/jwo44dEtxwwghF5Gh2mvCQBcxCItMQWk70vbELZK5NKchRHTkaFKWCx8k1BO3l2frbY3rkDc
	5Q=
X-Google-Smtp-Source: AGHT+IE/zPKUoHR7dBbS39aCe2sUKVFnUMcB5mK5j5+Yjvcm7F3jSDPdKcovkk4sw1+DtlTByS9r6Q==
X-Received: by 2002:a05:600c:c171:b0:477:79c7:8994 with SMTP id 5b1f17b1804b1-47a83795f6emr61653905e9.30.1765441434513;
        Thu, 11 Dec 2025 00:23:54 -0800 (PST)
Message-ID: <9b7f6d06-a23e-42b3-bc6e-bee5bc6e4186@suse.com>
Date: Thu, 11 Dec 2025 09:23:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: xen-devel@lists.xenproject.org, Victor Lira <victorm.lira@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 Anthony PERARD <anthony@xenproject.org>
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-3-jason.andryuk@amd.com> <aTmGTWIO2ZKWuQeu@l14>
 <a6d3737f-19e0-4a52-a5d9-70bbfe7630a8@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <a6d3737f-19e0-4a52-a5d9-70bbfe7630a8@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.12.2025 18:08, Jason Andryuk wrote:
> On 2025-12-10 09:40, Anthony PERARD wrote:
>> On Tue, Dec 09, 2025 at 04:47:28PM -0500, Jason Andryuk wrote:
>>> diff --git a/xen/Makefile b/xen/Makefile
>>> index e6cf287425..aeb5dcf2ee 100644
>>> --- a/xen/Makefile
>>> +++ b/xen/Makefile
>>> @@ -469,10 +469,13 @@ all-symbols-$(CONFIG_FAST_SYMBOL_LOOKUP) += --sort-by-name
>>>   
>>>   include $(srctree)/arch/$(SRCARCH)/arch.mk
>>>   
>>> +XEN_FINAL_LDFLAGS-$(CONFIG_GC_SECTIONS) := --gc-sections
>>
>> Is there a good reason to add this flags after the arch-specific
>> makefiles? If not, could you move that just before, and right after the
>> definition of "$(all-symbols)" as it's a variable that is used in the
>> same phase of the build. (With Jan's other feedback)
> 
> No, there is no reason for its location.  I can move it.
> 
>>>   # define new variables to avoid the ones defined in Config.mk
>>>   export XEN_CFLAGS := $(CFLAGS)
>>>   export XEN_AFLAGS := $(AFLAGS)
>>>   export XEN_LDFLAGS := $(LDFLAGS)
>>> +export XEN_FINAL_LDFLAGS := $(LDFLAGS) $(XEN_FINAL_LDFLAGS-y)
>>
>> "FINAL" isn't very descriptive. A completely wrong interpretation might
>> be that we should use the "final" variable instead of "XEN_LDFLAGS". How
>> about a name that describe where this set of flags is going to be used,
>> like "XEN_LDFLAGS_xen_syms" (which unfortunately doesn't exactly fit
>> with x86 xen.efi target), or maybe suffix it with "_target" or just
>> "_xen"? (In Linux build system, they use "LDFLAGS_vmlinux", but I don't
>> know what would be the equivalent of "vmlinux" in our build system.)
> 
> I plan to use "_xen" unless anyone objects.  "_xen_lds" could be another 
> option, but again that doesn't match efi.lds.

_lds would also be wrong - that rather refers to the linker script than the
final binary linking of which these flags influence.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 08:27:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 08:27:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183651.1506266 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTc1J-0002zn-O6; Thu, 11 Dec 2025 08:27:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183651.1506266; Thu, 11 Dec 2025 08:27:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTc1J-0002zg-LW; Thu, 11 Dec 2025 08:27:29 +0000
Received: by outflank-mailman (input) for mailman id 1183651;
 Thu, 11 Dec 2025 08:27:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTc1I-0002za-46
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 08:27:28 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 392d34f0-d66b-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 09:27:25 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-477770019e4so5677775e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 00:27:25 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8b9b259sm4050319f8f.41.2025.12.11.00.27.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 00:27:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 392d34f0-d66b-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765441645; x=1766046445; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jOL0TVLdzuzrbFMtV2QPKKu9e9th0pShxUmuLVzu94A=;
        b=ADeCb5XXAdRmifotgBx9nJaSXRTwE+kx0RG1858OUYw4BgkVo2b4WGF4yJ/n1j3jj0
         xWOJ+S5KVzzk6bFK/9ZxTWOl7ToTckeM0kZSaRSAULwqHDEFDf/LHjyun7B82XOQ8S52
         1HFMGFmSPgq61jK5c/FzkunQ03XhPG9/ItsUS+zckT8X0aoyeDVGWQKDqRn4dPw7P6SK
         XgATomyhQEpk68Sbq2ZZ8hofTFrkV1KnB039KB0psvxPTnAGLETDWlUb3+j7ulUgSpQR
         urc/LcHPIxkUt9laCLYDt2epe9rEdYquVIKndhR66Ef+GPhQ2bNK61zq8BbQDa6ppiBo
         o/yw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765441645; x=1766046445;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jOL0TVLdzuzrbFMtV2QPKKu9e9th0pShxUmuLVzu94A=;
        b=vB7kBHwAvJ0cBBIQ8QrN6n6/mla0YmPHrwpn0mCmpxZo0GBJauqmmT7STS4f9H7C4W
         MlC57VnD2QXORk/D6R0oMRL7UFX4DVtycJARZCF4zEIbuYafhFDHzA1KHDj56VEwhqgJ
         XA0lS1D3GCJBbKSu/73pLjj7lPPMaEyLmeIMKuwcBr208ALlpYKpfAahFYZXmsAWj154
         GGdDASohN7V5bSrN0uN/0bz6DP94Y9xRJeVg18r8aT7lICujdDpo07vRiJI/2hDQkZqA
         BPGdVQwwnB7tAiQqZIm06qp34o88SizeIXgD9uciPg6ENR/J2X+LGlvofwaivJThwj2p
         Gyfg==
X-Forwarded-Encrypted: i=1; AJvYcCXrq6u6Z3Q8IsUS2BmUIfDNUSa/x/HsjK7FIMiOvDk5BbMRRpWp9qALc1evxjvO51CEMuehP82cohs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxut1AdfIhRKUQ8vKuPMzEMLZLPxhPU43RSY/2rLICzmvKehaT8
	X9+LW98HcHvbjQDZfcW98FQNnoM+7LrPBSMja+oYIyQUH73O9BExozE8230lPuiZtA==
X-Gm-Gg: AY/fxX6BN4Mbbu9JLXoxSrwMN0Eqqhsz4/Yz1wMMCnMCeCZYcoFlrFhhPbVS1JQbVDy
	RlR5QOp2obJYg1WYtFUb4xLU4BxW3DY0ZQ3Mi816w1n6wX738hpLdwBypoOd2XYGJwJH3vTSEq6
	jRjkmL9rpjS2+W/qmNSvcO1oTt50C5DqrKoTvmWo8aMPmAPfBa/r6Zj+p8WHErKE9m0TNUbEXWH
	WE8R4ZOa7ELOkbVg1MCDiLPVZcp3FMS++xXD0+bqp+JqaD8CpEGf3mbv3Hue8kcMXiij7RHFicA
	TyJBlsV+IKFmHy7bWKAiQ5+BCf0VvShDieN6a4YM54QfXqIV/IDu9FacC9YTtG06dcgFYSVvC/I
	EHlu0NmfIMJZaQkbz88I9W3d5bmOPl3zTDunQ0ZXK6XaHhtVhoCgyPbOBvCjSbCMKoalFiBZ7Tr
	QpGnlrhfQok6w07TAbLNNbwzLRJMA97Pk/j3J5AyvcBqFBqmDE64YWC9wPNdoCmchvgqsZ5OzeO
	d/FUcJzNR46Pg==
X-Google-Smtp-Source: AGHT+IHi+uiGAB0eMnZVtcvtel8WdcGCtnwJvE6tty60YZvdK1MZvvPgtgrnWtfG2s4Vi8+Yfqy/gw==
X-Received: by 2002:a05:6000:402a:b0:42b:3c25:ccea with SMTP id ffacd0b85a97d-42fa3b07b61mr5564713f8f.42.1765441645162;
        Thu, 11 Dec 2025 00:27:25 -0800 (PST)
Message-ID: <9fffa010-536f-468a-8ae7-31a72bc36366@suse.com>
Date: Thu, 11 Dec 2025 09:27:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: KEEP Re: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Victor Lira <victorm.lira@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-3-jason.andryuk@amd.com>
 <ed620cd5-9630-4987-bd5c-9f69ae2c2609@citrix.com>
 <43d30e02-f818-4cf2-98c9-4182a2f65f64@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <43d30e02-f818-4cf2-98c9-4182a2f65f64@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.12.2025 02:28, Jason Andryuk wrote:
> On 2025-12-10 11:55, Andrew Cooper wrote:
>> On 09/12/2025 9:47 pm, Jason Andryuk wrote:
>>>          . = ALIGN(4);
>>>          __alt_instructions = .;
>>> -       *(.altinstructions)
>>> +       KEEP(*(.altinstructions))
>>>          __alt_instructions_end = .;
>>
>> Thinking about this, what we need is for there to be a reference tied to
>> the source location, referencing the replacement metadata and
>> replacement instructions.
>>
>> Looking at https://maskray.me/blog/2021-02-28-linker-garbage-collection
>> might be able to do this with .reloc of type none.  In fact,
>> BFD_RELOC_NONE seems to have been invented for precisely this purpose.
>>
>> This means that if and only if the source function gets included, so
>> does the metadata and replacement.
> 
> With Jan's -Wa,--sectname-subst changes added to CFLAGS, this seems to 
> work somewhat.  I'm trying to make the ALTERNATIVE place relocations 
> against the .altinstructions.%%S and .altinstr_replacement sections:
> 
> diff --git c/xen/arch/x86/include/asm/alternative.h 
> w/xen/arch/x86/include/asm/alternative.h
> index 18109e3dc5..e871bfc04c 100644
> --- c/xen/arch/x86/include/asm/alternative.h
> +++ w/xen/arch/x86/include/asm/alternative.h
> @@ -90,18 +90,25 @@ extern void alternative_instructions(void);
>   /* alternative assembly primitive: */
>   #define ALTERNATIVE(oldinstr, newinstr, feature)                      \
>           OLDINSTR_1(oldinstr, 1)                                       \
> -        ".pushsection .altinstructions, \"a\", @progbits\n"           \
> +        ".reloc ., BFD_RELOC_NONE, 567f\n"                            \
> +        ".reloc ., BFD_RELOC_NONE, 568f\n"                            \

When I saw this, ...

> +        ".pushsection .altinstructions.%%S, \"a\", @progbits\n"       \
> +        "567:\n"                                                      \
>           ALTINSTR_ENTRY(feature, 1)                                    \
>           ".section .discard, \"a\", @progbits\n"                       \
>           ".byte " alt_total_len "\n" /* total_len <= 255 */            \
>           DISCARD_ENTRY(1)                                              \
>           ".section .altinstr_replacement, \"ax\", @progbits\n"         \
> +        "568:\n"                                                      \
>           ALTINSTR_REPLACEMENT(newinstr, 1)                             \
>           ".popsection\n"
> 
> --print-gc-sections shows a few .altinstructions.%%S dropped - as an 
> example:
> 
> ld: removing unused section '.text.reserve_lapic_nmi' in file 'prelink.o'
> ld: removing unused section '.text.release_lapic_nmi' in file 'prelink.o'
> ...
> ld: removing unused section '.altinstructions..text.reserve_lapic_nmi' 
> in file 'prelink.o'
> ld: removing unused section '.altinstructions..text.release_lapic_nmi' 
> in file 'prelink.o'
> 
> The full list is below.
> 
> Unfortunately, EFI doesn't like it with ~14000 lines of:
> ld: error: 0-bit reloc in dll

... I immediately wanted to mention this. Another of the things on my binutils
todo list.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 08:29:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 08:29:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183660.1506276 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTc36-0003db-3h; Thu, 11 Dec 2025 08:29:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183660.1506276; Thu, 11 Dec 2025 08:29:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTc36-0003dU-0k; Thu, 11 Dec 2025 08:29:20 +0000
Received: by outflank-mailman (input) for mailman id 1183660;
 Thu, 11 Dec 2025 08:29:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTc35-0003dO-16
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 08:29:19 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7b567a73-d66b-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 09:29:16 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-477bf34f5f5so5652565e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 00:29:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a89f8c145sm21211475e9.14.2025.12.11.00.29.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 00:29:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b567a73-d66b-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765441756; x=1766046556; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1V7G1jCTSBTpI3Cu3Bvy+huNe6UFlhveKmCz4bf/14I=;
        b=GGKgEbbdxG9JD5o+AXwJnysolUDBFxYuL6C5EXdLX8/0Ub0mfyqpKbvdJ82/IdcRAd
         rlL79Ok+RC6EBmby6zN3e2G125yH+WLUuNG7uSYqdcNH15uV47IF4T8C/oUXv5lk9Mxd
         YA8bPtVcij/R4CHNu/ZmfDDMLO854xC1tFoLPpL67+xj+8r5JT3oS+PtrFr5pBy8t5ro
         b06b9A1W6cve5aqsxzAW8tEyc7kVzcJ9jsC8iCGMezLCy+q3gJ41fZtLb1fY6pwP++/i
         8+CLmCvHhcyL/uIh1qYsDkhouAPEzI7plRpOWh6tU4LcI4RI5aOc87q7NfWoDE/dLn7p
         dIig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765441756; x=1766046556;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1V7G1jCTSBTpI3Cu3Bvy+huNe6UFlhveKmCz4bf/14I=;
        b=TQqU/fZqhbV93df8lW1WeElVAevzdFMRpILC2xUkCKsQZEVVfvPF6GOiSvhTKYAN/Z
         kl5ofO5aBh02wkBQybrOHX9BYpMBlNOvs8uthLPW3tMSgUmrKfS2/gwEaAMjdrvSaN4l
         cqtyvOGFF7rscIXt6Dma6/SrKEPxAyrbO6zb1LLpwX42c9v1vuqTmw11/Ij9Nz2Ubkbc
         d+DmKS6Ss/X3WnRU6noUGpdNGOhDY7lh3mPiz4AecqkmFo9ZsrshmK/HBYql4+BpcDk6
         aNzsni/CKFEQH/RwlXxvt3tKyaqoNPC/E+wASPigevo8XiD21y3ZzYS6zPmnOshpQQly
         79Xg==
X-Forwarded-Encrypted: i=1; AJvYcCWYpn+4n+LNXE7o5yuz5EVa40sQHaGgQ9onzJ+3+9WR6GyacmwfMTZMH82nc0QVPIN3EI0vPo/zP8w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxaBSV2jrUsKougGIrH2TqHcl/5Nk+02qKlIlOLc4H0mgInEMs/
	1+tDFLSTaA5t8vwmVl3Z9OYjUTaZ8w0nzvXcEJfaRVVROqXhsJIE3iOLB5GpQWo5RQ==
X-Gm-Gg: AY/fxX4fIqq73hWmxNZi8PW9BK3KoMTPqm2MmdSksj8dSOQWurxKaAV8C5E2vQpehTk
	dKvWbHtHPQ10AkPn07oei89ks9iWsDa97G2L9JFzpuZ8jf+dqjFvacYTBLK09QzXP1AnDDEJt6W
	Zirm3YN3ZIGRrpKnOGVzMksdJdfUsQA8ZO66UdZ5gcfqkPwB7sZzuCWP9COTdD4iC61suC5w+5u
	FELGJag+KABID8K9J6Gfh9rAJVm/za+y6jgpfrcICSb3N/Gh7NU2Zoa4v4mlSY6YWz2kwvtqbsa
	cjWU2hhk5kVCgLeS10Xb49g9PylPAG99XoW6FsizIvuf3ppNM5YMEXAI4tsfues93MN9KiMJJ6I
	MVfiNdDYGoIhWr05ATCKpNJxvuqejP2Ti2eW07U5QTdAmSIieCnBg3x153fhAdC/B1z8Qq5w9OI
	+BwHDNxCgbcWxlCxUO58DNDCVgEAFxV0JGZzxagjEUWMIKhC279tnyNTRrS2j/b/eE+q0mgiXdW
	bw=
X-Google-Smtp-Source: AGHT+IGSvaUzRqLUk790lBLgFqUFBAmItnySMBPneME13IZLqGOFjyj9ImxanBM9fMbG3N08DzPe2g==
X-Received: by 2002:a05:600c:1392:b0:477:6374:6347 with SMTP id 5b1f17b1804b1-47a8378cdafmr47120025e9.22.1765441756277;
        Thu, 11 Dec 2025 00:29:16 -0800 (PST)
Message-ID: <7514a67c-d140-43b6-bed0-3467530a086d@suse.com>
Date: Thu, 11 Dec 2025 09:29:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: KEEP Re: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Victor Lira <victorm.lira@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-3-jason.andryuk@amd.com>
 <ed620cd5-9630-4987-bd5c-9f69ae2c2609@citrix.com>
 <43d30e02-f818-4cf2-98c9-4182a2f65f64@amd.com>
 <13a270cd-b0bd-4565-9158-0e1728aef84e@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <13a270cd-b0bd-4565-9158-0e1728aef84e@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.12.2025 03:47, Andrew Cooper wrote:
> On 11/12/2025 1:28 am, Jason Andryuk wrote:
>> On 2025-12-10 11:55, Andrew Cooper wrote:
>>> On 09/12/2025 9:47 pm, Jason Andryuk wrote:
>>>>          . = ALIGN(4);
>>>>          __alt_instructions = .;
>>>> -       *(.altinstructions)
>>>> +       KEEP(*(.altinstructions))
>>>>          __alt_instructions_end = .;
>>>
>>> Thinking about this, what we need is for there to be a reference tied to
>>> the source location, referencing the replacement metadata and
>>> replacement instructions.
>>>
>>> Looking at https://maskray.me/blog/2021-02-28-linker-garbage-collection
>>> might be able to do this with .reloc of type none.  In fact,
>>> BFD_RELOC_NONE seems to have been invented for precisely this purpose.
>>>
>>> This means that if and only if the source function gets included, so
>>> does the metadata and replacement.
>>
>> With Jan's -Wa,--sectname-subst changes added to CFLAGS, this seems to
>> work somewhat.  I'm trying to make the ALTERNATIVE place relocations
>> against the .altinstructions.%%S and .altinstr_replacement sections:
>>
>> diff --git c/xen/arch/x86/include/asm/alternative.h
>> w/xen/arch/x86/include/asm/alternative.h
>> index 18109e3dc5..e871bfc04c 100644
>> --- c/xen/arch/x86/include/asm/alternative.h
>> +++ w/xen/arch/x86/include/asm/alternative.h
>> @@ -90,18 +90,25 @@ extern void alternative_instructions(void);
>>  /* alternative assembly primitive: */
>>  #define ALTERNATIVE(oldinstr, newinstr, feature)                      \
>>          OLDINSTR_1(oldinstr, 1)                                       \
>> -        ".pushsection .altinstructions, \"a\", @progbits\n"           \
>> +        ".reloc ., BFD_RELOC_NONE, 567f\n"                            \
>> +        ".reloc ., BFD_RELOC_NONE, 568f\n"                            \
>> +        ".pushsection .altinstructions.%%S, \"a\", @progbits\n"       \
>> +        "567:\n"                                                      \
>>          ALTINSTR_ENTRY(feature, 1)                                    \
>>          ".section .discard, \"a\", @progbits\n"                       \
>>          ".byte " alt_total_len "\n" /* total_len <= 255 */            \
>>          DISCARD_ENTRY(1)                                              \
>>          ".section .altinstr_replacement, \"ax\", @progbits\n"         \
>> +        "568:\n"                                                      \
>>          ALTINSTR_REPLACEMENT(newinstr, 1)                             \
>>          ".popsection\n"
>>
> 
> There's already a symbol for the start of the replacement.  We only need
> to introduce a symbol for the metadata.  Try something like this:
> 
> diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/include/asm/alternative.h
> index 18109e3dc594..a1295ed816f5 100644
> --- a/xen/arch/x86/include/asm/alternative.h
> +++ b/xen/arch/x86/include/asm/alternative.h
> @@ -55,6 +55,10 @@ extern void alternative_instructions(void);
>  
>  #define as_max(a, b) "(("a") ^ ((("a") ^ ("b")) & -("AS_TRUE("("a") < ("b")")")))"
>  
> +#define REF(num)                                        \
> +    ".reloc ., BFD_RELOC_NONE, .LXEN%=_alt" #num "\n\t" \
> +    ".reloc ., BFD_RELOC_NONE, "alt_repl_s(num)  "\n\t"

Is it even worthwhile trying to further pursue this route if xen.efi can't
be built with it?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 08:36:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 08:36:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183674.1506285 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTc9f-0005Ij-Sz; Thu, 11 Dec 2025 08:36:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183674.1506285; Thu, 11 Dec 2025 08:36:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTc9f-0005Ic-Q7; Thu, 11 Dec 2025 08:36:07 +0000
Received: by outflank-mailman (input) for mailman id 1183674;
 Thu, 11 Dec 2025 08:36:06 +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 <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTc9e-0005IW-9T
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 08:36:06 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6e75e10f-d66c-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 09:36:04 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-477b1cc8fb4so3838575e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 00:36:04 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8a6fd62sm4583373f8f.10.2025.12.11.00.36.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 00:36:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6e75e10f-d66c-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765442164; x=1766046964; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bDtPUDKKMk4nFwEr5IHIcAO4aTBeiNvZxrTN7QzbzB4=;
        b=YXhNOyhZHJfVGP63YZ0BRFkNfGgW0r1FOhDVoIU6ug6yOXL2sQ7hqDRaLjNnk95PaH
         KE3MQFAto1LJCUpHEEQccyA/yhVwwpSo26igteuDlXive1XtDBdwV1IKIamg4gV0UGJW
         b144QBd1HvGFpABi/q9WdCqsI330Hiy6zJj50a7iRfaxCbPqMdwsUkUDfHYXApxvxFEB
         vIIp98ZWCTjhVWLcvY5/02SfSSZUEamu8B7bbfh8e5C5rYMbGJGXUiYKQ+fSj7IX50Em
         c05JLDFxURhXBFvwNXko2z+EjnfnEYtgoEMc6opFTVS5bA+Q+ZnMQJ/LOVNUhrDSDhyn
         9GBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765442164; x=1766046964;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bDtPUDKKMk4nFwEr5IHIcAO4aTBeiNvZxrTN7QzbzB4=;
        b=JK5/7pUGMFMqcBv4pd9slAH9M4hlBO5wyeFaEfzbR6IcHLmQyYiaBdH+pt8Mwyfhhg
         ZRTCwW6K/yqy9BMzNbv5EwQxybsLRnJTJvLfY7G7BW0sD6m4EeBxJ3GXRdZj3lM2vCBR
         pR9/HeAKaCEyBKPfHjwvWDCYelNRZXE7u0HVyT8QGJO6/z1ueBMgl1cFaBoMGzqy3a5D
         KB1AmBc22V/yxzN8fskNgeIbgDujn4t0wKJ518xjrt0/9pgWnp5WuLXrEhwZ/n8txSzS
         uJKKECxQI6Xwd5OhCieeHIyX6P89rpcBWPFRnaDuaOS4QYcDctdU9TCK3I57W/H54U7F
         hWZw==
X-Forwarded-Encrypted: i=1; AJvYcCUzm0qrdpa6vW4Rzwas8y0dmC1d95ifko9xPMiQ+M5FAKhio0r0XtxTujABdfcoIbJta/N18RA3Xi0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxoDlzWfnKGhEguLTjrSBS+tesYD6WX7X3H57KbaBVljb48rBzc
	9jVNqjQS1D6vtilVC29V4Uw72kH+oT0cGnxjdMXwp79yn0qOYy5AAVqc4EmoPC267Q==
X-Gm-Gg: AY/fxX7Aq0Z8qXOb38NAitgs6sekIDd2ioTvebSP3xJb22iq/24XABQX7Fn+G2CtR33
	R3Ozn5WxodHcjrI/ec7TpKLt9vjekfDOnXXMHNUzLWVJGyxOGkmBpITowjIBEshGXMb6pVH6dNJ
	cCK/NZt+qHKtTDOnqKz4HRO2PaosIg3QhBYjpxxjSxyceW8wSPNkeRtFcJUcvIzI78fK7urb+Rg
	iHtu7wnghA0/47M4MBWne2a/LyuZB3bwoRAsUWKAdZD7PYD3Mie6em20MVBCDjk0JQni6mjTF2b
	0sP8W538E9iZSJxB7KbN1EgtYm0fknPhxus8QKZkDPcF1J0Nzw5d0tyVczEp41TedHBNR+zEBmw
	pWZ4L7CHVZHTq/rcQHnVH5jHTYSVGVS5hlAzn0972akYw6WMDDwgOjDH1jVc5NY/pd9ZQsgDn2X
	BDR3RHPm14ifRdN91wic14qsFMDA0IT6JcY9BIElR5FsvasQyEObbZ1AWcTiHNQ0+oI6yl9f8Yi
	v0=
X-Google-Smtp-Source: AGHT+IH+J2vMvGfmMfwvQ3NNycFMFPkAMKrM7+frFdHNpodC+UaWuzUWz0q/0Du7wd64YFGW+KLhwA==
X-Received: by 2002:a05:6000:40c8:b0:42b:3bc4:16dc with SMTP id ffacd0b85a97d-42fa39d2c8emr4601631f8f.21.1765442164166;
        Thu, 11 Dec 2025 00:36:04 -0800 (PST)
Message-ID: <5a4695fa-1520-4d52-adc3-72c159892e33@suse.com>
Date: Thu, 11 Dec 2025 09:36:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/5] x86: Fix missing brackets in macros
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "consulting @ bugseng . com" <consulting@bugseng.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
 <20251210183019.2241560-6-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251210183019.2241560-6-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.12.2025 19:30, Andrew Cooper wrote:
> With the wider testing, some more violations have been spotted.  This
> addresses violations of Rule 20.7 which requires macro parameters to be
> bracketed.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: consulting@bugseng.com <consulting@bugseng.com>
> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
>  xen/arch/x86/mm/shadow/multi.c     | 2 +-
>  xen/arch/x86/mm/shadow/private.h   | 6 +++---
>  xen/drivers/passthrough/vtd/dmar.h | 2 +-
>  xen/include/xen/kexec.h            | 4 ++--
>  4 files changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c
> index 03be61e225c0..36ee6554b4c4 100644
> --- a/xen/arch/x86/mm/shadow/multi.c
> +++ b/xen/arch/x86/mm/shadow/multi.c
> @@ -781,7 +781,7 @@ do {                                                                    \
>          (_sl1e) = _sp + _i;                                             \
>          if ( shadow_l1e_get_flags(*(_sl1e)) & _PAGE_PRESENT )           \
>              {_code}                                                     \
> -        if ( _done ) break;                                             \
> +        if ( (_done) ) break;                                           \

I don't understand this: There are parentheses already from if() itself.

> --- a/xen/arch/x86/mm/shadow/private.h
> +++ b/xen/arch/x86/mm/shadow/private.h
> @@ -636,9 +636,9 @@ prev_pinned_shadow(struct page_info *page,
>  }
>  
>  #define foreach_pinned_shadow(dom, pos, tmp)                    \
> -    for ( pos = prev_pinned_shadow(NULL, (dom));                \
> -          pos ? (tmp = prev_pinned_shadow(pos, (dom)), 1) : 0;  \
> -          pos = tmp )
> +    for ( (pos) = prev_pinned_shadow(NULL, dom);                \
> +          (pos) ? (tmp = prev_pinned_shadow(pos, dom), 1) : 0;  \
> +          (pos) = tmp )

What about tmp (twice)?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 09:04:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 09:04:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183694.1506297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTcav-0001MS-3P; Thu, 11 Dec 2025 09:04:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183694.1506297; Thu, 11 Dec 2025 09:04:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTcau-0001ML-Vk; Thu, 11 Dec 2025 09:04:16 +0000
Received: by outflank-mailman (input) for mailman id 1183694;
 Thu, 11 Dec 2025 09:04:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTcat-0001MF-QM
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 09:04:15 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5c2702ab-d670-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 10:04:12 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-42b38de7940so288930f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 01:04:12 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8b8a9b9sm4717107f8f.35.2025.12.11.01.04.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 01:04:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c2702ab-d670-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765443851; x=1766048651; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5ktbatWojyLrk8e+iwdl3ql2qu08x44yls8JHisvP5I=;
        b=TuHgt3cRbdUYVAund4ca12f33NdCHxyCaFrc9yDeki1pddptn/xI+vEz2B0LwPMkO8
         8UyfjYVNuQsjtbcfq+tKx6xoiNWF9RaeoYW/bLr34aCY9ybdAVNPrJr386rGUmnzoPsL
         MBNgzFHY/lOwUjaeupmvWGcM8Sv6ScY+G/hNwFpWyTyZ21/PmsLsDjysD4+ed2m7TUfX
         EEX/Zk3+rGPI+4/lm5oejAgN31NFAsW6KLTB0KujCkc2oHKTqsgFp6ej5QQXqPwNfTBw
         MqQMzplRCh8sVlRt0lMoTJ24nlkPWPGseq+6RiXXLidlEGvLrFkUWywjTzusw24UIHPL
         8TYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765443851; x=1766048651;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5ktbatWojyLrk8e+iwdl3ql2qu08x44yls8JHisvP5I=;
        b=QfApxB2gfDM8eq6G+bHEF2mGzJYSIWwkdlMXvX+HLHEPLL7keVdaVV0q02pKXr6tXt
         bVzdDrb/9lNw2DW5e9PPZDC9Wc6XMOUQZ/X8znci72XL+3CKRNqZ4Ns71da345KxTIys
         7eyBUt3bIoh07ARSysumgJKRS2LPqtxkPF7wzaac1+jiycZ4NBKFpcuO+AwdBP6uDwqm
         X0o1QqX3SzMuWurCPMaiGnC84RF7Yr5l1dHRiqHa7olu220AtPwVaMkyjJ/Bnhru+Wx0
         4dbMz2TsHRguMihDVVflxMos+rKQAau1f0feyD7TX0dmGPVWJ/koZOcIgDUUSYOHzZIr
         wwDQ==
X-Forwarded-Encrypted: i=1; AJvYcCUKhj0WuZArmp/tVot/GJo+0KHmiIqtCe1TABBpfrevlelYuR8V1LCXZdkqPOxLsd+e1jXbjNOtejc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxASxjXFvwiK7I99+LjgkQfWnwfWXZg9CWS+saunwmg/ZW8MDJn
	sa7wJHcAHF7pgHXsdVpbA9049JUb6L1dMRmZPirsdZWC0v+gFxJCV0PounYmtVVJfg==
X-Gm-Gg: AY/fxX7a5HevuzuLkaOhCqfNUYiVAcKOUsr0wwFz2auhqVpbF/LbjXPSkrQT+qIuR/B
	PkP2vck2DSGu1WYc/+mgZNdBOPCZiTIX+yslAwC8VjtgDLc4JmCSZ0ruub98kpP5p5wLEWELdP+
	I43ek4VdNICDzHdTLJvGlA5fxNx5ax3Y3kxJStPqcVyAO+ZD6hk2RL+qirnOHlG2+kVyBwLjotK
	5zwtklwtdYlNwo2ugbzFPuNDKNjNVnvN2petLxp1h7tyoluLCYUP5kng/UlKDWKX5bq05PAeqks
	tsPDE0CQ0c1QrG2l/qjXByMtM2DKN4wmbsJlhADT768X6J5MN7wMvvLddZRtC4FmDEZlT2XH0gz
	VLJIVxPf8Xc2VH0fNK6b+TizOab+gcNhA3B8PSw3rtlJZByafGEt58yTveBtHgdC1osqWB524mF
	w7ItHccKJY4WWSl6xuSt+gsymKv7iGjGTkisT71z7t0frkOcDLtXEvWh/yyeW9YDAFkKij2DyLZ
	NY=
X-Google-Smtp-Source: AGHT+IGCRZQRDdsmT3XgqI/7TDpuv+yUrvw+OrltmDEZoxbRuq8wetolDqrtiqnbxa9JtbQ+n/BWJQ==
X-Received: by 2002:a05:6000:2405:b0:42b:3dbe:3a53 with SMTP id ffacd0b85a97d-42fa3b0fb04mr6047264f8f.40.1765443851390;
        Thu, 11 Dec 2025 01:04:11 -0800 (PST)
Message-ID: <73559a38-d5c2-4e04-a6d1-24695573552d@suse.com>
Date: Thu, 11 Dec 2025 10:04:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Current Eclair analysis
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 xen-devel <xen-devel@lists.xenproject.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <7744f9e7-17da-4f48-837d-8fc087899af5@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <7744f9e7-17da-4f48-837d-8fc087899af5@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.12.2025 19:14, Andrew Cooper wrote:
> Overall, what I think we want is something more like this:
> 
> Jobs named as *-all and *-amd.  After all, it's AMD's safety target
> specifically, not necessarily someone elses.

+1

> The *-all targets want everything possible enabling. Ideally we want
> something like Linux's COMPILE_TEST, but in the short term we can just
> adjust the input Kconfig.

Assuming the PV_SHIM_EXCLUSIVE negative dependencies get sorted, what's
wrong with simply using allyesconfig there?

> Like we had with the common configuration and the per-arch
> configuration, I think we want to express the clean rules as common,
> with a wider (a.k.a stricter) set used for the *-amd target.

+1

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 09:15:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 09:15:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183704.1506306 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTclS-0003Ap-0c; Thu, 11 Dec 2025 09:15:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183704.1506306; Thu, 11 Dec 2025 09:15:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTclR-0003Ai-UJ; Thu, 11 Dec 2025 09:15:09 +0000
Received: by outflank-mailman (input) for mailman id 1183704;
 Thu, 11 Dec 2025 09:15:08 +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
 <SRS0=BerU=6R=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vTclP-0003Aa-RS
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 09:15:08 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e16a8647-d671-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 10:15:05 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id A88224EEBF88;
 Thu, 11 Dec 2025 10:15:03 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e16a8647-d671-11f0-b15b-2bf370ae4941
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765444503;
	b=Z1lXcRuZ3mmYHNzE9qzZ1XjCPsAABUrae+oXjKkDCy7yZODCBNc6k7SUiUmq4RTWXvG3
	 3SeYxWDvtDXqh27sA+ROwE//ts8cmSyEOK+NZ88L75XDkDvqBHdenvvBMRxDh+vp6FsgW
	 8dKeNFgVgk7qPSzleq+8m3vsMitFeXGI7ggLap82GGs/W5y/9CWcNCCqdW3xPJVAc02vb
	 U1Gl9Qw2J4vOAzF+GNcMA4/+/GKhM1VpLX+qqajfED35I7nW0G/9qqtsM8GjZkp5GdILb
	 LUJpFOO+UuS7DaTZ8zm5moeWJfg3tbQaxW8b3AnqhvPGxrVL4ImchTfgDRlGeVc5+0WY5
	 EtPJL97Pm5+BZ67HGycTFZyM8p0p07I5YTSrlQ7gXPLRBDkLXpjTGdggUxNxM8tdXxhvz
	 ml69cXWDWa9YwrDGmUd8/LFgM+v4wgI/Zek2Wo77HO/dtb8t7rPOnUU/SxdaEzeyrZU+D
	 03w17HL+i/7xIymy7zHqWs+MvFve6hyymHDJFrQffUr7lkVTivkK84tnlP8ggI457LKe0
	 eFUVYk2CnIVwzbKcMFXa8IIHjVFhp7KB3xvO5ROk9mOGB0trFkJQ6IRmR9aVBH151Lrct
	 FupT+v2hIJ1kSr4h3XZM5M/+OF5JVn7YwCRoM33Kk5+LKr5CV/5ZgjZ1JlLvjYk=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765444503;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=91SbIRJN2zsGRMjeRO8zf/beDLNZG1ESzx60jkLvZdM=;
	b=qsXEcbpizrD94+Q+NMnZA9oyJZbdceXjJqYQGO9Q6hgy2d6GmxjEagIQ0Ni1ksq0+YdD
	 kmm5PRdBH9kRiwmV3BmxILs8NyOjQ+sybR48v6NYeKzJeUYK/mI9e14V64vhOMndTiM1D
	 gGPliAn3q3ySmDAfLoUBjogKbEqtOrXdXhX4n9JubZEo0ph8qmFOMS9qHVhPsZID1JPiD
	 upSuaE7uZ8EWnzLAnKsrswq0HHF+VaVSYmjDTg0HBr2FyAaX5nmh+l2Y6L9UrebZ90mvf
	 2iOgJg9ohEXkBnt7bJwa1SdiK2kuWyJoB4SEAZpgTwmHYyZyW1qfzCvn0LYbK5jeLiZLe
	 0/YM1Q1Xh7/Q7p8AnvURDnr9tleyIQrrAhdNCTvVUkdL6sFzRWFTKhN1rE0tGddnshaTg
	 9xRtO2vFup6a0TtDnL8QncyOoinvGu42q/dLsYExf1kqwqIug6GaYOuWUtvNI+2JQ1ZnC
	 KEzKTHOhYB+njsB9lAHYl4GooR0t6M1QdBwBzteYIoXTWp4YqYNptMLcWt/Uwq3pu8UWj
	 Lx7B8NyVRrwxKLA8wKEsfIvoevSHjnbXqQtRtIZ3oJu6spR1KkWBtpgMTL4TiY/HEsEOz
	 FnTS7yOp/AsyU/V7x+GxfAalTIsfbUEXUepUvNl+EWEqizX9PgUFUqZd2kwnv6A=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765444503; bh=uhPJH6xlm8vWjIT6ofSrC71YeHb9HgSHFWDOPDHDznA=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=aPK53EU//K4oSpLWJ+v8F5AMiwoDPJ22T2ORpjR30q6Y11MqzMNPGJ4kYTfr0oGV4
	 4cPOq7UFcVBIVLPbmQegNK/+0XUMV7UHVjnulPEr4qjWjoNp79dzpl5ZzYTET9BQLj
	 iqsxxa3HHsYEvIg8hZRxAJAtGzYiCzseY2r5522yqa19ZIHXgfCCcS5FipWiH7q+vc
	 21O+AphjWM4JHhlUMhUetiDB2HOSK2JpoBGCBjhOXKspM2JqiXCI5dpZBkMY8xT3dW
	 lZLn8WVEJlTInRieE5h2/c/V02BIyoKg5p0SPDmaS6b7ndmozNYsIDbqBuLSD+gv3v
	 +91AWpPB5D0jg==
MIME-Version: 1.0
Date: Thu, 11 Dec 2025 10:15:03 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn?=
 =?UTF-8?Q?=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
 <sstabellini@kernel.org>, "consulting @ bugseng . com"
 <consulting@bugseng.com>, Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 5/5] x86: Fix missing brackets in macros
In-Reply-To: <5a4695fa-1520-4d52-adc3-72c159892e33@suse.com>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
 <20251210183019.2241560-6-andrew.cooper3@citrix.com>
 <5a4695fa-1520-4d52-adc3-72c159892e33@suse.com>
Message-ID: <fdf95d1d02274a6442d4eb4c6b7284b8@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-12-11 09:36, Jan Beulich wrote:
> On 10.12.2025 19:30, Andrew Cooper wrote:
>> With the wider testing, some more violations have been spotted.  This
>> addresses violations of Rule 20.7 which requires macro parameters to 
>> be
>> bracketed.
>> 
>> No functional change.
>> 
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> CC: consulting@bugseng.com <consulting@bugseng.com>
>> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> ---
>>  xen/arch/x86/mm/shadow/multi.c     | 2 +-
>>  xen/arch/x86/mm/shadow/private.h   | 6 +++---
>>  xen/drivers/passthrough/vtd/dmar.h | 2 +-
>>  xen/include/xen/kexec.h            | 4 ++--
>>  4 files changed, 7 insertions(+), 7 deletions(-)
>> 
>> diff --git a/xen/arch/x86/mm/shadow/multi.c 
>> b/xen/arch/x86/mm/shadow/multi.c
>> index 03be61e225c0..36ee6554b4c4 100644
>> --- a/xen/arch/x86/mm/shadow/multi.c
>> +++ b/xen/arch/x86/mm/shadow/multi.c
>> @@ -781,7 +781,7 @@ do {                                               
>>                      \
>>          (_sl1e) = _sp + _i;                                           
>>   \
>>          if ( shadow_l1e_get_flags(*(_sl1e)) & _PAGE_PRESENT )         
>>   \
>>              {_code}                                                   
>>   \
>> -        if ( _done ) break;                                           
>>   \
>> +        if ( (_done) ) break;                                         
>>   \
> 
> I don't understand this: There are parentheses already from if() 
> itself.
> 

Yeah, syntactically there are, but those are parsed as part of the if, 
rather than its condition; the AST node contained within does not have 
parentheses around it.

>> --- a/xen/arch/x86/mm/shadow/private.h
>> +++ b/xen/arch/x86/mm/shadow/private.h
>> @@ -636,9 +636,9 @@ prev_pinned_shadow(struct page_info *page,
>>  }
>> 
>>  #define foreach_pinned_shadow(dom, pos, tmp)                    \
>> -    for ( pos = prev_pinned_shadow(NULL, (dom));                \
>> -          pos ? (tmp = prev_pinned_shadow(pos, (dom)), 1) : 0;  \
>> -          pos = tmp )
>> +    for ( (pos) = prev_pinned_shadow(NULL, dom);                \
>> +          (pos) ? (tmp = prev_pinned_shadow(pos, dom), 1) : 0;  \
>> +          (pos) = tmp )
> 
> What about tmp (twice)?
> 
> Jan

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 09:23:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 09:23:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183717.1506316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTctW-0004xs-QB; Thu, 11 Dec 2025 09:23:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183717.1506316; Thu, 11 Dec 2025 09:23:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTctW-0004xl-NF; Thu, 11 Dec 2025 09:23:30 +0000
Received: by outflank-mailman (input) for mailman id 1183717;
 Thu, 11 Dec 2025 09:23:29 +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 <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTctV-0004xf-KI
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 09:23:29 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0d51c1bf-d673-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 10:23:28 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso6659385e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 01:23:28 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a89f74284sm25553135e9.9.2025.12.11.01.23.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 01:23:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0d51c1bf-d673-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765445008; x=1766049808; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kNO9XuR2fhQM61QZ4gHtoS+xI87s6RFcxonDT/qIhXc=;
        b=I6PGtovGNOZASLWggGpytJqGIbDfq/L6+B0nYTvM697JgUOch2GgD3ykQ5Gkm9uEGu
         0XKmQ4lLUAR8xobQl18JDYcP28pfX4VxY+1iqHGS/iEfBSXHfFRRk8vvDl4xp+aqAxl/
         sAgC4nKc5QZjCxbYj1X/zl7WDig/QVf4z7uwOCwdW572MH40dPJsR4y1n6mDMFWfAX7P
         J1a43wzAiYJGdY9pEuv1VMF0vuCfKcbFOGvXH8hut/59Wmcmx3dcEXcSFMkXUmnBQUib
         Ls8zxSGFjRTLbQ56WtJrb0rxY2f4v0yOJGTvRyzTNqkbvl8ImjqdpvabCK3zYgF1m2ZX
         Z/kQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765445008; x=1766049808;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kNO9XuR2fhQM61QZ4gHtoS+xI87s6RFcxonDT/qIhXc=;
        b=q8QVOC6+Y7QZChGtPJF24DuSmEYI+GFVY1qwTqnrsHeHykeVYxTpEX0XmoePR1SbTE
         6tV544BQ1tWFjAYs4pAetN9234giDTlBxcNi44+1rBqpluqXREIOHtsuOVigzcPyUovx
         C4pGZOuVZkgQostTfehyEg/H+FBHE19oESESl2+87XF2WH9rlR/jTB4hC26gX8sw/sL0
         erbva3nkql+MRRBHyARcc1bn/BxWLBMaHjylUxyU9vcYM4Utgfc8ebnP7x98gLyIH3Kj
         NFtScqXtumk5ql02okSLo4PjOqj5yCd7ighrk32wBWSdxGUr2eUdUYo4TVRk0L77lUA5
         CdOg==
X-Forwarded-Encrypted: i=1; AJvYcCU6aAXLmLgxfsrxd7R+D7hVMw/ZEu7Yfm9DWWgmrsKsrc09LgIN45VuHHCwFZ6RLOU5hxHJgp83nT0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxe1cx7XPFXhY4k8xA+qWiULbC7ZgIcYfhLpzxkWYOdgzqGKVay
	8sxtL9vTduxj6/AIvK8MH1jO9TYE2gtbHspSx09lvkANHfLPJM5v2GTu3NpNUluvFw==
X-Gm-Gg: AY/fxX5yhUVX5z9KgQglQrJmkE0i+zIuRebRpWhgrFhVcRM+BRs6wXS9TDvjLmGJz94
	+hOU3BRRkccqbXiQLRkpffPuh48LoPOy8qxgt0xurlJL1DQpH3OJ6N0OPtYtiJmFCEbU+fHMXhR
	rQwpSjOWCq4vHnOKVGvtUfjqCdYmufy66EgxOiDrJN/dZ/hx+SUSic1r3SKAr1SafrridWmLEOx
	2NjzlXehxC8cHPLKEpALh7V0aF9zcABEQ4dMId2sqt6zpDzgbBOODJWBduJeTP5RVqztesy2lzx
	uC3AVHaE7/EglVtB4w++R5M/Cyfs6KfKyvGgqRf3hSxoEWXCDSIxbXkv+Aj7ObPLAFziA52DrPC
	USJ4q2YBkPfl4n2Q1gvvDYKUR51fLclpyGPWqalYg+YMF+gPAcnauWZ5Lij5SECw7g7LALnivbS
	NTBL3Hx/HVYKvwS2sGBetZ3GH9Gq4HYEX+J5tfru1vFyQL0EYsQ1e0GSoPOP9rX3zzXmUdAPu9U
	t9Hat6lHfJbFw==
X-Google-Smtp-Source: AGHT+IE2G9UKETmAEgg9VgMKE92zhI1fwv913Bim39G+c/AJfrzY/Tjvd8GqZ9I9iesDSlqEiYV8yA==
X-Received: by 2002:a05:600c:46d0:b0:477:9fa0:7495 with SMTP id 5b1f17b1804b1-47a89fa781amr14610365e9.14.1765445007575;
        Thu, 11 Dec 2025 01:23:27 -0800 (PST)
Message-ID: <a6ab2189-bf24-4384-8b28-58729c7d0d9f@suse.com>
Date: Thu, 11 Dec 2025 10:23:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/3] xen/riscv: introduce vSBI extension framework
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1764582112.git.oleksii.kurochko@gmail.com>
 <3b67330dc4c1aa053eb15261a559e7b4eac3f493.1764582112.git.oleksii.kurochko@gmail.com>
 <df316e2f-9eb0-4bb8-96cd-e5e0c42d123e@suse.com>
 <02b72d6f-d95b-4caf-825a-15280902af27@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <02b72d6f-d95b-4caf-825a-15280902af27@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.12.2025 18:03, Oleksii Kurochko wrote:
> On 12/8/25 3:25 PM, Jan Beulich wrote:
>> On 01.12.2025 11:24, Oleksii Kurochko wrote:
>>> This commit introduces support for handling virtual SBI extensions in Xen.
>>>
>>> The changes include:
>>> - Added new vsbi.c and vsbi.h files to implement virtual SBI extension
>>>    handling.
>>> - Modified traps.c to handle CAUSE_VIRTUAL_SUPERVISOR_ECALL by calling
>>>    vsbi_handle_ecall() when the trap originates from VS-mode.
>>> - Updated xen.lds.S to include a new .vsbi.exts section for virtual SBI
>>>    extension data.
>>> - Updated Makefile to include the new vsbi/ directory in the build.
>>> - Add hstatus register to struct cpu_user_regs as it is needed for
>>>    a check that CAUSE_VIRTUAL_SUPERVISOR_ECALL happens from VS-mode.
>> I can spot the check, yes, but without the field ever being set how is one
>> to determine whether that check actually makes sense?
> 
> But hstatus is set automatically when a trap occurs and will be copied in
> handle_trap() in entry.S.

Just that entry.S isn't even touched by this series. Did you perhaps omit an
important part of the change?

> If you think it is better to introduce saving and restoring of hstatus in
> handle_trap() now, or instead drop the handling of
> “case CAUSE_VIRTUAL_SUPERVISOR_ECALL:” in do_trap(), please let me know.

I think what I said above is quite clear: When you introduce a field that's
supposed to be filled upon entry to the hypervisor, the entry code wants
updating accordingly.

>>> ---
>>>   xen/arch/riscv/Makefile                |  1 +
>>>   xen/arch/riscv/include/asm/processor.h |  1 +
>>>   xen/arch/riscv/include/asm/vsbi.h      | 31 +++++++++++++++++
>>>   xen/arch/riscv/traps.c                 |  8 +++++
>>>   xen/arch/riscv/vsbi/Makefile           |  1 +
>>>   xen/arch/riscv/vsbi/vsbi.c             | 46 ++++++++++++++++++++++++++
>> A file named identical to the directory it lives in raises the question of
>> why there is such a new sub-directory. Are you expecting moree files to
>> appear there?
> 
> Yes, I'm expecting that and it is done in the next patches of this patch
> series.
> 
>>   How's vsbi.c then be "special" compared to the others? Do
>> you perhaps mean someling like "core.c" or "common.c" here?
> 
> Agree, this is more appropriate for either “core.c” or “common.c”. Both options
> are fine with me. I slightly prefer using the prefix “vsbi-{core/common}.c”, but
> if you think it is better to omit the prefix since the folder name already
> provides that context, I’m fine with dropping it.

Yes, I'm actually quite heavily opposed to such redundant prefixes. They obfuscate
things, and they get in the way of name completion features in shells and alike.

>>> +static const struct vsbi_ext vsbi_ext_##ext __used                  \
>>> +__section(".vsbi.exts") = {                                         \
>>> +    .name = #ext,                                                   \
>>> +    .eid_start = extid_start,                                       \
>>> +    .eid_end = extid_end,                                           \
>>> +    .handle = extid_handle,
>>> +
>>> +#define VSBI_EXT_END                                                \
>>> +};
>> There's no use here, and peeking ahead at the other two patches shows
>> no use where this odd split of the macros would be necessary. What is
>> this about?
> 
> I thought this was the common approach, similar to DT_DEVICE, where we have
> DT_DEVICE_START and DT_DEVICE_END. There may be no need for it right now, but
> perhaps we will eventually want similar behavior for VSBI_EXT_START.

For DT_DEVICE_{START,END} there at least is a reason to have a split like
this. (I would very much like for that to be done without such a split, though.)

> If you think it is better to drop VSBI_EXT_END for now, I’m okay with that,
> and can just use VSBI_EXT instead of VSBI_EXT_START.

Yes please. If and when the need arises, it can be introduced, or (as per above)
a better solution be found.

>>> --- a/xen/arch/riscv/traps.c
>>> +++ b/xen/arch/riscv/traps.c
>>> @@ -15,6 +15,7 @@
>>>   #include <asm/processor.h>
>>>   #include <asm/riscv_encoding.h>
>>>   #include <asm/traps.h>
>>> +#include <asm/vsbi.h>
>>>   
>>>   /*
>>>    * Initialize the trap handling.
>>> @@ -114,6 +115,13 @@ void do_trap(struct cpu_user_regs *cpu_regs)
>>>   
>>>       switch ( cause )
>>>       {
>>> +    case CAUSE_VIRTUAL_SUPERVISOR_ECALL:
>>> +        if ( !(cpu_regs->hstatus & HSTATUS_SPV) )
>>> +            panic("CAUSE_VIRTUAL_SUPERVISOR_ECALL came not from VS-mode\n");
>> This might more naturally want to be BUG_ON()? Assuming of course the value
>> in question is exclusively under hypervisor control. Otherwise panic() would
>> also be wrong to use here.
> 
> Only hypervisor can access ->hstatus (of course, hart is changing it when a trap
> happens, for example).
> BUG_ON() is a good option for me.

Just to clarify: "can access" != "under control". There's also the possibility
that a guest could do something causing the hardware to raise a
CAUSE_VIRTUAL_SUPERVISOR_ECALL trap without setting HSTATUS_SPV. That was the
underlying question here.

>>> --- /dev/null
>>> +++ b/xen/arch/riscv/vsbi/vsbi.c
>>> @@ -0,0 +1,46 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +
>>> +#include <xen/sched.h>
>>> +
>>> +#include <asm/processor.h>
>>> +#include <asm/sbi.h>
>>> +#include <asm/vsbi.h>
>>> +
>>> +extern const struct vsbi_ext _svsbi_exts[], _evsbi_exts[];
>>> +
>>> +const struct vsbi_ext *vsbi_find_extension(unsigned long ext_id)
>> static?
> 
> It could be use not in vsbi.c (for example, in the next patches it is used for
> SBI_EXT_BASE_PROBE_EXT), so it shouldn't be static.

Okay. In RISC-V that's okay as long as it's not subject to Misra scanning. Yet
still introducing a non-static function without callers from other CUs may
warrant a remark in the description. Once RISC-V becomes subject to Misra scans,
such will be problematic, after all.

>> Also, again - is the ext_ prefix adding any value here?
> 
> Not really, I guess.

Maybe, to still distinguish from "fid", use "eid" here then?

>>> +{
>>> +    const struct vsbi_ext *vsbi_ext;
>>> +
>>> +    for ( vsbi_ext = _svsbi_exts; vsbi_ext != _evsbi_exts; vsbi_ext++ )
>>> +        if ( ext_id >= vsbi_ext->eid_start &&
>>> +             ext_id <= vsbi_ext->eid_end )
>>> +            return vsbi_ext;
>> What if multiple entries have overlapping EID ranges?
> 
> Good question, I wasn't able to find that EID is always unique in SBI spec,
> but, at the same time, if to look at all available extensions and their id(s),
> they are always unique, so I expect that they will be always unique, otherwise,
> it won't be possible which extension should be used.

Then should there be a build-time (or if that's not easily possible, boot-
time) check?

>>> +void vsbi_handle_ecall(struct vcpu *vcpu, struct cpu_user_regs *regs)
>>> +{
>>> +    const unsigned long eid = regs->a7;
>>> +    const unsigned long fid = regs->a6;
>>> +    const struct vsbi_ext *ext = vsbi_find_extension(eid);
>>> +    int ret;
>>> +
>>> +    if ( ext && ext->handle )
>>> +        ret = ext->handle(vcpu, eid, fid, regs);
>> Is a registration record NULL handler pointer actually legitimate / useful?
>> (If there was range overlap checking I could see a reason to permit such.)
> 
> it is a good question, I think ext->handle = NULL should be impossible. At
> least, at the moment I can't come up with the case where it is possible and
> what will be a use case. I will drop ext->handle check.
> 
>>
>>> +    else
>>> +    {
>>> +        printk("Unsupported Guest SBI EID #%#lx, FID #%lu\n", eid, regs->a1);
>> Are the #-es ahead of the %-s adding value here?
> 
> It is how SBI spec writes them. For example,
>   9. Hart State Management Extension (EID #0x48534D "HSM") . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
>   9.1. Function: Hart start (FID #0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
> 
> So I thought that it would help to find stuff faster.

Okay. Maybe mention such in the description?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 09:30:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 09:30:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183733.1506326 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTd07-0006kY-Ic; Thu, 11 Dec 2025 09:30:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183733.1506326; Thu, 11 Dec 2025 09:30:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTd07-0006kR-Fa; Thu, 11 Dec 2025 09:30:19 +0000
Received: by outflank-mailman (input) for mailman id 1183733;
 Thu, 11 Dec 2025 09:30:18 +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 <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTd05-0006kL-VX
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 09:30:17 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 00abe5e1-d674-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 10:30:16 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-42b47f662a0so926199f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 01:30:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8a702a1sm4955260f8f.13.2025.12.11.01.30.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 01:30:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 00abe5e1-d674-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765445416; x=1766050216; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7zIy/YADuu1IFfXeyMuJC85jg6UCkUQ3c9lyuWQPy8A=;
        b=O9LlUnl0Use4K55V4BhP7Z9pCtZUeuF4W8KnyQ90UYZdrpKZCvUBwg3GZIkj2+5n2/
         bdf1vFDTXgjpHNW7R3YeQUVr7GYRCJvIRTnIlglCbF2RZUZVVm+x0JQoG8vXYtuoSDBK
         36lCV7RazMxDSAjFZxjsQMNZrnM0KBHzVi5DXgDvepybhKNLJkTT6QcaDIWpVndR/s0J
         d7GLsM4LWax50jWZta/xP3inqFMlxcaR6kZRXnlShKeczSdywwbKmh0QlH+ZMRlcCgV6
         YhLCWAVp5OEC+wKtXQd2RQXu0CA6FXPDcW+RskTz+5tz0JMvcizw9eK0TgpVKVXdlN5/
         HrFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765445416; x=1766050216;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7zIy/YADuu1IFfXeyMuJC85jg6UCkUQ3c9lyuWQPy8A=;
        b=rbH/bpwmtRhyKJJ3KS4L1/jb7hgP83OQDlqr/4uPYxPw0zn/E6ikylOCYdYVe3ThJ4
         /LZUne3rfmJcWTJvJS2etnhcoFToWSZ1QIhRFHrQxlsTF1fMmyNASIw25mNcM98V8gPf
         e2riUQKlSUz5XplnhogJaCpFEUot+XNWxOSYH46NmztL0tdj6bQC6gglWp/Z2YFUSgJG
         Qqr4YEzNl3tWu6st0kCZnzxRc4/gDTDzTWeiWJCOX1dw2Ponsa/tFzN2ob9wvSTxD4Dt
         7ASkx7FNRUBCE7fVf8sD6S4/rG7JwFjelIq+y4gLzTBkC/FJf8trBs3elh+fNJznFl51
         9lxw==
X-Forwarded-Encrypted: i=1; AJvYcCVNuGHTqnMlaitvzfIbiQrNxlkhIdobqA2wH/SZaLumKS1DIacQoGjn/CRONQsQUKsjbj6v7UZz7Eg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxVdiBSgrdqHX78h+w0Fi9O4lpmuBtAO0FN1cKO8cJFAG2AU4+k
	z1287WfErhH+O8ZzymZxfaKU0JNtSRFKWYGR61P12ZqRe29WJphZdx1T4cgxRy7CmA==
X-Gm-Gg: AY/fxX6GR2Nefo639cyUtxeftd8j1bj6E/RSI3lDg1/B3F57P4un+grWDGlOnL//TSe
	mskkXu7iK0escJ99wGQFDQldeyT+ypeWZdUDDmJZtO+1KN1QxxvYHF2IOQcg/RtEKhlkz/Ojwxb
	5LlDapOy6dtWQFnoluYJox9ixg+vNnvhA6H4oi8HID95Ulu4BjqP1fmiVY1VVGF6XnDRlj6zY+U
	f9u02le9zguVV7a1Y2A1lozeLFFuqggwajUVuIuqLNSkeVZcS2FqKxYq6o/XNGw6cWGxi27fT5F
	rd/kqNjpmwaAjxUsEwk/nqoDpaXFWS6cp18sQLBwPZFFqywgNttSTfDqUGTX+IG8ToUcJbGxIUR
	xzW91dP+g5CQYvF2nkJDNmf6HPaIAgjfVMy2y6JRaA7NXtVNmwGAPrgcbcCHYV9lMUpg0wooPq7
	P39Enihy8zUk/wlmOYRvwpNQilBlTqADs0rTpfa/L7Gmw96JEMxgNi/I2hTd8gN282fQe+xZp8D
	/r3Mt2IDBiKBg==
X-Google-Smtp-Source: AGHT+IHoCeunng9GxsZskFoAYVHXoNXbreKVjlFa92kC0g4hmI5N0HidPVKo27XBlioSzZtN5AgdXg==
X-Received: by 2002:a05:6000:2510:b0:411:3c14:3ad9 with SMTP id ffacd0b85a97d-42fab31c8eemr1557832f8f.21.1765445415955;
        Thu, 11 Dec 2025 01:30:15 -0800 (PST)
Message-ID: <d2988b31-66e0-4a6b-8f77-4ae2cf2c4bd4@suse.com>
Date: Thu, 11 Dec 2025 10:30:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/5] x86: Fix missing brackets in macros
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "consulting @ bugseng . com" <consulting@bugseng.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
 <20251210183019.2241560-6-andrew.cooper3@citrix.com>
 <5a4695fa-1520-4d52-adc3-72c159892e33@suse.com>
 <fdf95d1d02274a6442d4eb4c6b7284b8@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <fdf95d1d02274a6442d4eb4c6b7284b8@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.12.2025 10:15, Nicola Vetrini wrote:
> On 2025-12-11 09:36, Jan Beulich wrote:
>> On 10.12.2025 19:30, Andrew Cooper wrote:
>>> With the wider testing, some more violations have been spotted.  This
>>> addresses violations of Rule 20.7 which requires macro parameters to 
>>> be
>>> bracketed.
>>>
>>> No functional change.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: Jan Beulich <JBeulich@suse.com>
>>> CC: Roger Pau Monné <roger.pau@citrix.com>
>>> CC: Stefano Stabellini <sstabellini@kernel.org>
>>> CC: consulting@bugseng.com <consulting@bugseng.com>
>>> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>> ---
>>>  xen/arch/x86/mm/shadow/multi.c     | 2 +-
>>>  xen/arch/x86/mm/shadow/private.h   | 6 +++---
>>>  xen/drivers/passthrough/vtd/dmar.h | 2 +-
>>>  xen/include/xen/kexec.h            | 4 ++--
>>>  4 files changed, 7 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/mm/shadow/multi.c 
>>> b/xen/arch/x86/mm/shadow/multi.c
>>> index 03be61e225c0..36ee6554b4c4 100644
>>> --- a/xen/arch/x86/mm/shadow/multi.c
>>> +++ b/xen/arch/x86/mm/shadow/multi.c
>>> @@ -781,7 +781,7 @@ do {                                               
>>>                      \
>>>          (_sl1e) = _sp + _i;                                           
>>>   \
>>>          if ( shadow_l1e_get_flags(*(_sl1e)) & _PAGE_PRESENT )         
>>>   \
>>>              {_code}                                                   
>>>   \
>>> -        if ( _done ) break;                                           
>>>   \
>>> +        if ( (_done) ) break;                                         
>>>   \
>>
>> I don't understand this: There are parentheses already from if() 
>> itself.
> 
> Yeah, syntactically there are, but those are parsed as part of the if, 
> rather than its condition; the AST node contained within does not have 
> parentheses around it.

I fear I don't follow. Besides us not using parentheses elsewhere when
if() is used like this macros, the point of requiring parentheses is (aiui)
to make precedence explicit. There already is no ambiguity here due to the
syntactically require parentheses in if(). Why would a rule and/or the
tool require redundant ones?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 09:33:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 09:33:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183743.1506336 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTd3I-0007K3-Vd; Thu, 11 Dec 2025 09:33:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183743.1506336; Thu, 11 Dec 2025 09:33:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTd3I-0007Jw-Ss; Thu, 11 Dec 2025 09:33:36 +0000
Received: by outflank-mailman (input) for mailman id 1183743;
 Thu, 11 Dec 2025 09:33:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vTd3H-0007Jn-Up
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 09:33:35 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vTd3G-004kbT-2o;
 Thu, 11 Dec 2025 09:33:35 +0000
Received: from [2a02:8012:3a1:0:cd49:6fb:8176:d6c5]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vTd3G-004XNp-30;
 Thu, 11 Dec 2025 09:33:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=BLj6GGfJoQYtuwDrHxhZHhZYstAtW5qrttBQogdMlaA=; b=1ZHTlvoIhV88LXyYJqrd3bDTKS
	bK4lJNPNuYJ0zJ7+bwzahmii4DE+GoLF81jiUszK0zTrXWRICF26Z8M4jO4ueaXkFX5n02hFElbq/
	0Z9n8qLH9QTdsqPYDE+rk3+zoJqoJTD9XIW/+6v1/pG3hlmIsROTzATvtO2iUHs6nsLM=;
Message-ID: <ff441352-ee38-4357-9479-9398c7df356d@xen.org>
Date: Thu, 11 Dec 2025 09:33:32 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/arm64: Add support Clang build on arm64
To: Saman Dehghan <samaan.dehghan@gmail.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <bd6686e7fc0756e929334792b94ddd66bde125c4.1765239102.git.samaan.dehghan@gmail.com>
 <bb575726fe0ac783121e563b1c92f81f51e41f75.1765420376.git.samaan.dehghan@gmail.com>
Content-Language: en-US
From: Julien Grall <julien@xen.org>
In-Reply-To: <bb575726fe0ac783121e563b1c92f81f51e41f75.1765420376.git.samaan.dehghan@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Saman,

A bit of process first. Usually, when sending a v2, a new thread is 
started (IOW, this is not sent in reply to v1).

On 11/12/2025 02:39, Saman Dehghan wrote:
> This patch enables building Xen on arm64 architecture using the Clang compiler.
> Changes include:
> - Add explicit -march=armv8 flag for arm64 builds.
> - Add `__attribute__((target("fp-armv8")))` to `vfp_save_state` and
>    `vfp_restore_state` functions when building with Clang to allow
>    FP instructions despite `-mgeneral-regs-only`.
> 
> Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>
> ---
>   README                   | 2 ++
>   xen/arch/arm/arch.mk     | 1 +
>   xen/arch/arm/arm64/vfp.c | 6 ++++++
>   3 files changed, 9 insertions(+)
> 
> diff --git a/README b/README
> index 889a4ea906..67c1aa7fe6 100644
> --- a/README
> +++ b/README
> @@ -45,6 +45,8 @@ provided by your OS distributor:
>         - For ARM:
>           - GCC 5.1 or later
>           - GNU Binutils 2.25 or later
> +        or
> +        - Clang/LLVM 11 or later
>         - For RISC-V 64-bit:
>           - GCC 12.2 or later
>           - GNU Binutils 2.39 or later
> diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
> index 9c4bedfb3b..bcf548069b 100644
> --- a/xen/arch/arm/arch.mk
> +++ b/xen/arch/arm/arch.mk
> @@ -13,6 +13,7 @@ ifeq ($(CONFIG_MPU),y)
>   CFLAGS-$(CONFIG_ARM_64) += -march=armv8-r
>   else
>   CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic
> +CFLAGS-$(CONFIG_ARM_64) += -march=armv8
>   endif
>   CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only # No fp registers etc
>   $(call cc-option-add,CFLAGS-$(CONFIG_ARM_64),CC,-mno-outline-atomics)
> diff --git a/xen/arch/arm/arm64/vfp.c b/xen/arch/arm/arm64/vfp.c
> index c4f89c7b0e..51fd2ddc54 100644
> --- a/xen/arch/arm/arm64/vfp.c
> +++ b/xen/arch/arm/arm64/vfp.c
> @@ -46,6 +46,9 @@ static inline void restore_state(const uint64_t *fpregs)
>                    : : "Q" (*fpregs), "r" (fpregs));
>   }
>   
> +#if defined(CONFIG_CC_IS_CLANG)
> +__attribute__((target("fp-armv8")))
> +#endif

Based on Jan's comment, I am a bit puzzled why adding #ifdef is 
sufficient. In fact, I do agree with Jan, my understanding of 
target(...) is this will impact the ABI.

I haven't experienced any issue with the C side yet. But I know in the 
Rust world (they also have an LLVM backend), they decided to prevent 
enabling fp/neon [1] at the function level.

Did you find any documentation that would suggest this is safe?

Now regarding the issue you mentioned in v1:

 > On top of those, `READ_SYSREG(FPSR)`, `READ_SYSREG(FPCR)`,
 > `WRITE_SYSREG(v->arch.vfp.fpsr, FPSR)`and
 > `WRITE_SYSREG(v->arch.vfp.fpcr, FPCR)` using FP.
 > I think I cannot apply __attribute__ on statements.

Do you mean the compiler will complain that you are trying to access 
FPCR/FPSR if you don't add the __atribute__ at the function level?

If so, what you could possibly do is either rewriting the functions in 
assembly or open-code the "{WRITE, READ}_SYSREG()" and add a line 
".arch_extension fp".

Cheers,

[1] https://github.com/llvm/llvm-project/issues/110632

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 09:34:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 09:34:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183752.1506346 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTd4I-0007oK-7U; Thu, 11 Dec 2025 09:34:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183752.1506346; Thu, 11 Dec 2025 09:34:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTd4I-0007oD-4e; Thu, 11 Dec 2025 09:34:38 +0000
Received: by outflank-mailman (input) for mailman id 1183752;
 Thu, 11 Dec 2025 09:34:36 +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 <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTd4G-0007o7-PA
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 09:34:36 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9b0e394a-d674-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 10:34:35 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-477b91680f8so7437695e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 01:34:35 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8b85dd1sm4740818f8f.20.2025.12.11.01.34.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 01:34:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9b0e394a-d674-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765445675; x=1766050475; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gYW6+VcpGPh9mtCsq7EmYPfKojzF1qeMc7yDi726lj0=;
        b=IncXQbVSMab2gIVrjpwK6li2FUq5jaFdamh86G3fbz0XPZOaxqBtk680o4M99mYsFL
         KPzATb7Jusqu/HLJXvhnvP59fN/yYAOvdAooYG/1eMfWvrb3134SMVz0j4mQChZEw74+
         0DhsXZh1SUchDDHRyWPaVqHiMNWgXrOKPwVQUYvpwOrjb3cKy1rTbvjHVUO9aKG+t7Mg
         vfOFkesk35n4cUFn8r+x2bM2FMlfTviREkEjwm6AoE+7PPRDrVFSaHeFovgH+qZ7YlC4
         J1SV9HkMUK1yyNXq4QlhN/3jTM0wXtsGCcWrrzQLnFh3yTAPcEn8TnNB+LZHUA/UMXNC
         d9tA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765445675; x=1766050475;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gYW6+VcpGPh9mtCsq7EmYPfKojzF1qeMc7yDi726lj0=;
        b=JoivlvcsLElytyYHKEk+qh9MhWre/Jc3jdyDI+qlNqWis+5kzTV+wg92LHFfIX4Mkb
         BL6t+nUu5KQ5XvbSTHStwuGK0CG6bLKXtwZh8cSnI7jQ377aW6JfZTdRU6+sAp5yIQXm
         wt2HVA/6k88FYpOHVarr6UHthY6MBUY3OiVRukkXQF0bGH6bxxQTobeN4ZJpeNS9auKn
         FoZOHA9QYLGwHjxIRiBzSR1HGgp1bOcEhJn6AR2cokN5dnHOgZkggLJjbWdMMZjmrjy5
         3EFer/4sNhmB6f+5vEeUbO2eqXM/B5cpZd2yOf9yU9PRJ1yM4/sGqQcCcROM397ePvKh
         0B0g==
X-Forwarded-Encrypted: i=1; AJvYcCUST/YbWxvGpHAX7Diuz+mywKD1B34e6sxS+FjlJv1scwPwyu3/H9Jv3BDPP88EiMIFbyHBPxdaaLg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxDeVn+e2F7P0itfj/A3M9MWO/MQX5g2O2mtlTLGWIklDrJ/xCX
	r9Vq++yHzJNSMGYAK9gqGC4UxZ5FzEXG1g735Gkt1Idcb8PKU9dlcg1RWjKK3vvRtQ==
X-Gm-Gg: AY/fxX50LYL/ymp9r5NYYT0s8/oqqZU6+nHJJ+IApeeMfP79vA67AUERyh9oLGpag4s
	MegWkGn+Bm72gpfdwD3Htg8vm6g/zy2zDxVOs1TCgeCf3XalmmVZurvXMHWwGK+Xp5zKtpMo4Kq
	9AYFy8f7dMYyakEUldF5Q7WWN+UKjQ1t38PfzZ0P79DGLui4rukPsvVqIqAAG5JFPMccL3OEmN8
	Dy+dAYbEes8K5FowUEq0uLWLLVd4jIKvf/gIj+4gk5rdDjp6kju6Ka2y4Xo0CeuHk2mpygtI6CK
	uI8nnYuU4wjTmA6SrkXDWXkdFeH31uGTH/8EysH9QlMH8Hx0PPnitDooj8Bx4FvX8BR29A4sRDN
	MG3iAsnus4LzM5HOJ6RiFof1OhB+Pha+AA17okvWHok+x6k4uEjiD4Lt5AhTZ7N6wO7EcRLlw/L
	looMuKWnoYmvhyemNfFqgzco+8uqYLWlWev13bQ8Nmu3F3nPd8xB9c2fU/rVxUndBH+Z0u4/zLM
	J8=
X-Google-Smtp-Source: AGHT+IHU3sxbK3jdqNLFAb2TbfuEWcQhRiADeDOxme2AS+z/V5iwFlrsgwhJfuQ48CfWxtCdqtYSWQ==
X-Received: by 2002:a05:600c:a0a:b0:479:1a0a:ebbe with SMTP id 5b1f17b1804b1-47a8375ab54mr54123305e9.14.1765445674847;
        Thu, 11 Dec 2025 01:34:34 -0800 (PST)
Message-ID: <fb5f995f-a0b9-4b7a-936c-6fd3585a52a4@suse.com>
Date: Thu, 11 Dec 2025 10:34:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 18/19] xen/riscv: add support of page lookup by GFN
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <48a58cde3de6a459885465c6d29d00d046ae4a37.1763986955.git.oleksii.kurochko@gmail.com>
 <69dce344-4dee-4778-99c2-0621c4e17cfc@suse.com>
 <86a87823-8b15-4897-9a97-ade444e2830d@gmail.com>
 <5fd516ed-c6db-4e7f-beea-a87c89faa6c0@suse.com>
 <1a729d7b-0a80-49bb-a91f-c212bffb9bc2@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1a729d7b-0a80-49bb-a91f-c212bffb9bc2@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.12.2025 16:23, Oleksii Kurochko wrote:
> 
> On 12/9/25 4:49 PM, Jan Beulich wrote:
>>>>> +static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
>>>>> +                           p2m_type_t *t,
>>>>> +                           unsigned int *page_order)
>>>>> +{
>>>>> +    unsigned int level = 0;
>>>>> +    pte_t entry, *table;
>>>>> +    int rc;
>>>>> +    mfn_t mfn = INVALID_MFN;
>>>>> +    P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
>>>>> +
>>>>> +    ASSERT(p2m_is_locked(p2m));
>>>>> +
>>>>> +    if ( t )
>>>>> +        *t = p2m_invalid;
>>>> The sole caller passes non-NULL right now. Are you having patches pending
>>>> where NULL would be passed? Else, this being a static helper, I'd suggest
>>>> to drop the check here (and the other one further down).
>>> I don’t have any such call in pending patches. I saw that Arm has a case
>>> where it is called with t = NULL (https://elixir.bootlin.com/xen/v4.21.0/source/xen/arch/arm/mem_access.c#L64),
>>> so I decided to keep the check.
>>>
>>> What you wrote makes sense to me, and given that the mem_access code is
>>> Arm-specific, RISC-V will probably never have the same situation.
>>> However, it still seems reasonable to keep this check for flexibility,
>>> so that we don’t risk a NULL-pointer dereference in the future or end up
>>> needing to reintroduce the check (or providing an unused variable for a type)
>>> later. Does that make sense?
>> To a degree. The other perspective is that the check is dead code right now,
>> and dead code is often disliked (e.g. by Misra). Introducing the check when
>> it becomes necessary is pretty simple.
> 
> Similar check might be needed for p2m_get_page_from_gfn(), because in the pending
> patches I have a call where t = NULL:

My initial reaction would be "add the checking in that patch then".

> unsigned long copy_to_guest_phys(struct domain *d, paddr_t gpa, void 
> *buf, unsigned int len) { - return -EINVAL; + /* XXX needs to handle 
> faults */ + paddr_t addr = gpa; + unsigned offset = PAGE_OFFSET(addr); + 
> + BUILD_BUG_ON((sizeof(addr)) < sizeof(vaddr_t)); + 
> BUILD_BUG_ON((sizeof(addr)) < sizeof(paddr_t)); + + printk(XENLOG_INFO 
> "copying d%d %#02lx-%#02lx to %#02lx-%#02lx\n", + d->domain_id, 
> (unsigned long)buf, (unsigned long)buf+len, addr, + addr+len); + + while 
> ( len ) + { + void *p; + unsigned size = min(len, (unsigned)PAGE_SIZE - 
> offset); + struct page_info *page; + + page = 
> p2m_get_page_from_gfn(p2m_get_hostp2m(d) , gaddr_to_gfn(addr), NULL); + 
> if ( page == NULL ) + return len; It now seems that I don’t actually 
> need p2m_get_page_from_gfn(), as it is no longer used. I could drop it 
> for now and reintroduce it later when it is truly needed by 
> copy_to_guest_phys() or get_page_from_gfn(). Is it acceptable to keep 
> p2m_get_page_from_gfn() as it is now, even without any current callers? 
> Would it be considered dead code?

Sorry, as you may see your response was effectively unreadable. Looks
like all newlines were zapped for whatever reason, and then new were
ones inserted just to wrap the resulting long line.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 09:36:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 09:36:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183764.1506356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTd5b-0008KC-Ii; Thu, 11 Dec 2025 09:35:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183764.1506356; Thu, 11 Dec 2025 09:35:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTd5b-0008K5-FC; Thu, 11 Dec 2025 09:35:59 +0000
Received: by outflank-mailman (input) for mailman id 1183764;
 Thu, 11 Dec 2025 09:35:58 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vTd5a-0008Jz-Ab
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 09:35:58 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vTd5Z-004kfO-1h;
 Thu, 11 Dec 2025 09:35:57 +0000
Received: from [2a02:8012:3a1:0:cd49:6fb:8176:d6c5]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vTd5Z-004m19-23;
 Thu, 11 Dec 2025 09:35:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=AfwQizTc1jEFFteetgNTxLeD46FJeUWFZtg2IATFydA=; b=ZYxYM/AzJW/RrAnW48ANfvQpoA
	FQaGGpjdGX1xZE3WoMgySFmk21ljGSpbg4/AnEvQ/p7bZC7TnUA8KrAr+hINsd6GzfbmIYFauT+cx
	W6PQDWIxxPgHvkzX3YPXaRwNboHjH2sS1kXdywaGFLSC8hN9N+cIt1CroVp1WqNmw6e8=;
Message-ID: <f49dd123-32ca-46b2-a00e-751267667bd2@xen.org>
Date: Thu, 11 Dec 2025 09:35:55 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/arm64: Add support Clang build on arm64
To: Saman Dehghan <samaan.dehghan@gmail.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <bd6686e7fc0756e929334792b94ddd66bde125c4.1765239102.git.samaan.dehghan@gmail.com>
 <bb575726fe0ac783121e563b1c92f81f51e41f75.1765420376.git.samaan.dehghan@gmail.com>
Content-Language: en-US
From: Julien Grall <julien@xen.org>
In-Reply-To: <bb575726fe0ac783121e563b1c92f81f51e41f75.1765420376.git.samaan.dehghan@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 11/12/2025 02:39, Saman Dehghan wrote:
> This patch enables building Xen on arm64 architecture using the Clang compiler.
> Changes include:
> - Add explicit -march=armv8 flag for arm64 builds.
> - Add `__attribute__((target("fp-armv8")))` to `vfp_save_state` and
>    `vfp_restore_state` functions when building with Clang to allow
>    FP instructions despite `-mgeneral-regs-only`.
> 
> Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>
> ---
>   README                   | 2 ++
>   xen/arch/arm/arch.mk     | 1 +
>   xen/arch/arm/arm64/vfp.c | 6 ++++++
>   3 files changed, 9 insertions(+)
> 
> diff --git a/README b/README
> index 889a4ea906..67c1aa7fe6 100644
> --- a/README
> +++ b/README
> @@ -45,6 +45,8 @@ provided by your OS distributor:
>         - For ARM:
>           - GCC 5.1 or later
>           - GNU Binutils 2.25 or later
> +        or
> +        - Clang/LLVM 11 or later

I forgot to ask. Is this cross-compiling or native? Or both?

And OOI, how did you chose Clang 11?

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 09:40:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 09:40:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183776.1506365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTd9U-0000nT-W7; Thu, 11 Dec 2025 09:40:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183776.1506365; Thu, 11 Dec 2025 09:40:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTd9U-0000nM-TX; Thu, 11 Dec 2025 09:40:00 +0000
Received: by outflank-mailman (input) for mailman id 1183776;
 Thu, 11 Dec 2025 09:39:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTd9T-0000mx-Ep
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 09:39:59 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5acaf057-d675-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 10:39:57 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-42e33956e76so299648f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 01:39:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8b9b20dsm4777456f8f.38.2025.12.11.01.39.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 01:39:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5acaf057-d675-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765445996; x=1766050796; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TbyWlY43I8YNaY8NIaU6uRJ6j5Q61T5qm3XXPGj//Dg=;
        b=JRU1cF/4ZaA4Abd1sCUFN98ljvr9MopEwohlmrJs+sY+DmR9m3m6wjySD4S8Z0XNbx
         7I4Z+HTsrVLd+Mxhf6Eu+Ozhix8BDH7uSI/8CSRKXHjYIeCrDHjsAmwn5dwBd9LDHXvQ
         EoXHBZHToX/X3DczRvgrd+Y6+fNx56bQuWhhJ3wDjDcDEY5AfWUfVQgeC8IckvmvhKFi
         iAgv7PymbCvYU55EhUWw0FrhIPswDBPNblEBTib+OdXUYLFb1qw4lGJmXtlj2lgaA8kA
         TxcjbooBiJFRZ0P4T5Y7geulhtbGc+oVhirqFBdEQnkwowsgMlEyMgiO7wbJzgv6Y/Sv
         hprQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765445996; x=1766050796;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TbyWlY43I8YNaY8NIaU6uRJ6j5Q61T5qm3XXPGj//Dg=;
        b=jL/wMiNCKU0qwVESRRiFKAuyWMKjnJ66o1AhLNqO5YRz2sI/o0Hdd5LP+bA0y8b/VN
         LWzJTkVj4D+QZ7n5gf8CcNkrXMF8XrjNP5Yv9gNGy+qcXLX7JHqT01fogFwOxQZR+bXL
         54JgBEM4K+ZaWIySiHWfaHo7RJcGurEqJxU5W8Q33SkwA1jtIYzYP7usNkrD3gmy08jp
         6uHnB77Rvnl1vJ9oXD3eRYgkVWMiyy37c4JWpviD4WsXNieG8fHtmp4AgCFOenAbOnEv
         hxwmcp2gAZ5qpleXeKxufepxgfb3SJbr2QYeDSuZmjv+uqQkRlGizn0ktlTGZjnY3tym
         acuQ==
X-Forwarded-Encrypted: i=1; AJvYcCXUlyKAm1bz8QEMpzxYi/S8lL8g0kNCsUE7gtGCBzT61dfjytEIoUM4uFA95yAttNmQMIt5kU2I8VM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyIx9knb7GKBKb8/xnog2BLeC5IDPsoAYbey4KU7/aaKSePM7oc
	7lxWKRIYd6UtGAw1FU65pPnnKEkvtLrp0AQz3M916dKRe9PL3IRRa3rWrpyIiwVOrA==
X-Gm-Gg: AY/fxX4iTbJ6RBUlpgop9OlU8WeYjaZGF8Si7amnTx/9Bwf6UGDOxZKpJNNao3lVXOt
	sWvoUs0cR4Cpj9IgUXuFykh4n8cW9P+WV6Hi+GNyVIxl9Ht8363ryML25nCk4z3TiwMyC1XnLgv
	a29Vmq6J4XqCGYANm7eoHWKHZtzWiiuARF5NdDkwCojy24I3bDZHCj7uhc+qB/QA9eqajhwdKUe
	8lZjQw1YHj/olvIEYUgLrjX0Z4qrNpQoxjgeZ3sJ0WC0NVqYFjNdQAY7/DCwgQEEmTyQko2scmA
	a2k8nu86NaGhoHxgjj8cNQ3TLWMkEWm0PpNOT9oWNOsix2FRP1dB/OvpaxFK/8qGKqBdT9t76dX
	kQxX+b4FH50dMCmLhVZVFhMRFm/qpMexZHuBMOzONl6yuDAaJdITzjA1v302wleAQI2QlOyPX3X
	xLdEw3NGnSXSzSuG+X5oZl1aDF+HZsG3ZtIt30OgjtWou1yrzcWFbQgcYXyIrX8D/q33LLfBbK0
	nQ=
X-Google-Smtp-Source: AGHT+IF529wFkWTwjQAyKTpyo8H7sKKJ7ouL3Uvm0G2xd03Feez211R+RQrfuTcJIxs7cUiebw/r1Q==
X-Received: by 2002:a05:6000:184d:b0:42b:2e1c:6341 with SMTP id ffacd0b85a97d-42fa39d9371mr5435328f8f.9.1765445996511;
        Thu, 11 Dec 2025 01:39:56 -0800 (PST)
Message-ID: <6c78a029-7437-4256-afca-c5d39fbd3f8b@suse.com>
Date: Thu, 11 Dec 2025 10:39:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 19/19] xen/riscv: introduce metadata table to store P2M
 type
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <2c41da84b3e7fb0f6e6c3c856bff6edaf9e1d505.1763986955.git.oleksii.kurochko@gmail.com>
 <889df78f-7196-4b44-9558-fb83f432e18a@suse.com>
 <36be69fb-9362-43a4-8308-1e62be60d27f@gmail.com>
 <621089a4-d946-46ce-a3cf-4d0938d4a39a@suse.com>
 <db24c624-0432-48ec-aecc-3efaa4973303@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <db24c624-0432-48ec-aecc-3efaa4973303@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.12.2025 13:44, Oleksii Kurochko wrote:
> On 12/10/25 8:06 AM, Jan Beulich wrote:
>> On 09.12.2025 18:09, Oleksii Kurochko wrote:
>>> On 12/9/25 2:47 PM, Jan Beulich wrote:
>>>> On 24.11.2025 13:33, Oleksii Kurochko wrote:
>>>>> +            *md_pg = p2m_alloc_page(p2m);
>>>>> +            if ( !*md_pg )
>>>>> +            {
>>>>> +                printk("%pd: can't allocate metadata page\n", p2m->domain);
>>>>> +                domain_crash(p2m->domain);
>>>>> +
>>>>> +                return;
>>>>> +            }
>>>>> +        }
>>>>> +    }
>>>>> +
>>>>> +    if ( *md_pg )
>>>>> +        metadata = __map_domain_page(*md_pg);
>>>>> +
>>>>> +    if ( t >= p2m_first_external )
>>>>> +    {
>>>>> +        metadata[ctx->index].type = t;
>>>>> +
>>>>> +        t = p2m_ext_storage;
>>>>> +    }
>>>>> +    else if ( metadata )
>>>>> +        metadata[ctx->index].type = p2m_invalid;
>>>>> +
>>>>> +    pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>>>>> +
>>>>> +    unmap_domain_page(metadata);
>>>>>    }
>>>> Just to mention (towards future work): Once a metadata page goes back to be
>>>> entirely zero-filled, it could as well be hooked off and returned to the pool.
>>>> Not doing so may mean detaining an unused page indefinitely.
>>> Won’t that already happen when p2m_free_table() is called?
>> Well, that's when both page table and metadata table are freed. But what if a
>> leaf page table is moving back to holding all p2m_ram_rw mappings? Then the
>> metadata page is unused, but will remain allocated.
> 
> Good point...
> 
> This could be a rather expensive operation, since in the code:
>    +    else if ( metadata )
>    +        metadata[ctx->index].type = p2m_invalid;
> we would have to check all other metadata entries to determine whether they are
> (p2m_invalid) or not, and return the page to the pool.
> 
> It would be nice to have something like metadata.used_entries_num, but the entire
> page is used for type entries.
> As an option, we could reserve 8 bits to store a counter of the number of used
> entries in the metadata page, and then use metadata[0].used_entries_num to check
> whether it is zero. If it is zero, we could simply return the metadata page to the
> pool in the “else if (metadata)” case mentioned above.
> 
> How bad is this idea? Any better suggestions?

First, as said in my initial reply: This may not need taking care of right away.
It will need keeping in mind, of course.

As to suggestions - hardly any of the fields in struct page_info for the page
can be used when the page is a metadata one. Simply record the count there?

Finally, as to "rather expensive": Scanning a 4k page to hold all zeroes can't
be all that expensive? In any event that expensiveness needs weighing carefully
against the risk of getting the counter maintenance wrong.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 10:00:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 10:00:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183794.1506375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTdT2-0005B6-K8; Thu, 11 Dec 2025 10:00:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183794.1506375; Thu, 11 Dec 2025 10:00:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTdT2-0005Az-HV; Thu, 11 Dec 2025 10:00:12 +0000
Received: by outflank-mailman (input) for mailman id 1183794;
 Thu, 11 Dec 2025 10:00:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTdT1-0005At-JU
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 10:00:11 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2d1fb0cd-d678-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 11:00:09 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4779adb38d3so5858145e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 02:00:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a89ec10c0sm9902355e9.4.2025.12.11.02.00.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 02:00:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2d1fb0cd-d678-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765447208; x=1766052008; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kfSXw/4VSCUYXNegNgt2F7rCXtfWURjtBtK5YXjrgEs=;
        b=PGGCHsJRTQwpdzSHx0lFKxkCjfnBBDmPsN2u/DyainXeQHJf0lhUxCTfTqVnYInBJt
         i+AqntT2jn2iViIIjzZBtx4gs84otawnPJS3883r+A5nF6abcj1Thkff/6BwYLAiXlrg
         UdEmDEHMdsd9Lg2h9kUN6SSAQc5fB+j7hKdee8Y1Hpj33bNYZerP+rZ6Z1Y0YjmkPdNr
         Q6vcYZo7h5Q5O3nBo5XbxQLvrWeL77MU6Y0GyXKp2avLW0JkOZ5cMkqqcwpxK0e+QA9M
         pIBAiOXj/qJTBqpi8x8g+MTlNsYS9CEbn+IqEmSK26qtEiTJLfEy8PbkfyEAz6rT3/fE
         oxnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765447208; x=1766052008;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kfSXw/4VSCUYXNegNgt2F7rCXtfWURjtBtK5YXjrgEs=;
        b=J1cWdWjiSrfl1/7tuW+KmoPw8+90c3ASurgxYp4D2hTWhx1szL2cmJuDePIoTxpOEh
         cLvABzWRGQs6aWW0u63kTfAh/dgzCdmb4QKnZ2HXQJbxWhm/7pqWxrmysSYmM5x5a3Vq
         Rzd+UQjcNWaT7o/DegIlX/CJ08hEgSxO8aa/8Nuvs/vvKsB01hfTmB4VfuyGoXrml73Y
         k3DX7h8tZINOxJ9GO8F6qpLONUS7Y19PTwKRVD65ZikVKqoDDi9w6nRkvU97IVxbgsfQ
         vZav3+XzogcK0MZUbo4uba9QJGytNH0xJ72d61tpcLSSCQYVYailKOPezZnjlxnBOtFH
         bqpA==
X-Gm-Message-State: AOJu0Yx/wIsjHRKm/YMZ85Kbt/3VA9+7J91rw3BdqqM3SwvRucOVLgZw
	QsYKiX9HGWShkxDAx5kq/El+v1sxxBw7JHw53rcMyPDfKqYVTNbQvj4TZhpf35r0BsIWuh+cqav
	Sq+4=
X-Gm-Gg: AY/fxX4eaf8mqc7Z8iv/YzPpnuGlaHCXjig2R3lFRhvIBCY3dAlS+rBBqgvMsQmxj9q
	KRmlN+dcQ48KKr+ndEqchgUTfvYK2HnSyeF8o/MuaO5h+t9GEQHRErJwMJomJrhjmVJsTiO4aZG
	TfzGlFNARD3AhFl/6wdX4gV4RCvaZajw6HMSFStzWMM8rmkiraAIsdQoUndJXU8O6wyVWDstaG6
	IWbYdkxYEaGwwQBM9E87o5R4smfM8nqfQczTbwfZ/24V2QhkabGX271aGoJYELouuaSSACZ0Mo8
	+1GpMLN0Q3iRbusN/u73km10lEbzPmXfy1r4E/pYVps1OqCm1ZenFnDFrG+qikjPUOSZGXG+HFH
	+NgrPpCcs9RLDxB5tLJjPl3/ycSQpgP6LMleS9w9A5th9v7lsKok7n5sm2g4VAQ7wdSdQnz6UUS
	udyT4kNHC+Hjp8yYCgFJOCs0eVmQF4kIWx9pg4xZ8ll7cPqWAE1n0ohLRZ2IRMHp1jF5SNNN5j9
	iU=
X-Google-Smtp-Source: AGHT+IG/DVpt0dxZ0MnA7UvA5fs/4c9qFNsMZgo1v8KDLDsz11Od/u42IMN/L+3rY8HUsJLaobS7Yg==
X-Received: by 2002:a05:600c:4693:b0:45d:e28c:875a with SMTP id 5b1f17b1804b1-47a8b561a33mr10136105e9.31.1765447208204;
        Thu, 11 Dec 2025 02:00:08 -0800 (PST)
Message-ID: <c0d5cf8c-cb57-47a5-a989-f65677e565aa@suse.com>
Date: Thu, 11 Dec 2025 11:00:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Current Eclair analysis
To: xen-devel <xen-devel@lists.xenproject.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <7744f9e7-17da-4f48-837d-8fc087899af5@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <7744f9e7-17da-4f48-837d-8fc087899af5@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.12.2025 19:14, Andrew Cooper wrote:
> The Eclair step is now the dominating aspect of wallclock time.  While
> the recent changes were a step in the right direction, we need some
> adjustments.

One other question, related to the "dominating" aspect, but not to any
of the points raised so far. Can scan results possibly be recorded
somehow, somewhere, such that upon re-scanning the same tree (pre-push
test followed by post-push test) the identical re-scan can be avoided?
And perhaps even incrementally - if only .c files change within a (set
of) commit(s), only re-scan those, rather than everything? Could be
extended to .h files if dependencies were properly taken into account.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 10:09:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 10:09:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183808.1506385 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTdbU-00067j-DJ; Thu, 11 Dec 2025 10:08:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183808.1506385; Thu, 11 Dec 2025 10:08:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTdbU-00067c-Ag; Thu, 11 Dec 2025 10:08:56 +0000
Received: by outflank-mailman (input) for mailman id 1183808;
 Thu, 11 Dec 2025 10:08:54 +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
 <SRS0=BerU=6R=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vTdbS-00067V-O7
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 10:08:54 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 65bbd800-d679-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 11:08:53 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 2C1BC4EEBF88;
 Thu, 11 Dec 2025 11:08:52 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 65bbd800-d679-11f0-b15b-2bf370ae4941
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765447732;
	b=vRha09mNxRITmc2y6bunHw7z8sfqN8nIfWweoUi5N2gtOqzcy503pon3RL4GakXpHcvP
	 ykJPyhiWz3uuc/+gYSj1K06rsJYAMVS2vF9MupTlUZbvkKuxUDYgGtLvG7LgCQYt/+Vwv
	 U2Xm0MemLtAs79q8zGYTzY8sl8HvBNAgf0GLrx76cict/sxoZfMwI+YnGBOIOjgucgxa5
	 6bHvrxLRUEhDhUYqRXvWVUUKZ26+uZDuJR15F9MiJf7zVIbm9bssmDCwfQoIkn3WkS/UU
	 V60Gng8vNJq57MnyI3FSTlEvExXnlV7OrVJPy1ZOqiUS7OklPf5msLu487aezDcQbzE5r
	 13pHXzs7kyD6Yx557FJhHgqHQE7RRLDWp0ichCrFL5iNJBMpbuQ9+/TG+WqlNRIqVH5lj
	 cuFlYipNYrOAWpEvb3Rcu2citt9h9IQi3UKPIwlU3mku9poWlOopZepLAptU5eiRR+uPM
	 oNuQmqnvDJ+IO47vjZxYEb11K0u9rkD4BBBrPFlhoPMBPfSH1MGjYqagXvlaFrGfyxgAh
	 JUsRcjdGB0D4KLVxbjmlsV+YeKsKJcQa1HdHFKHFB9FnMIEOTCSD1ManFqGvjzvgYtVil
	 2GAeTzchwv8k5N7fcrSUW1v7ZzUy/STD0yZn4matwNKb7sJv2p4XcVdHqXM3gkg=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765447732;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=mmWFVtypNzq9EuifoL5h7yLYleyMTHCl6degh+7Fj9o=;
	b=VP1M3VJ3JkYAkTUuvjCRoSPQGgMYrmMeN2XGtzFmSMslRmhMF4bxwvZlg+1RH+SX8ckU
	 7Bt5Ta6qPY1Iv/fe5ykjE1/1VBYoe05iVfPf7GPDivEDEL54XaEeEhklOLE3qY2TCLK/h
	 PuvMCI4GMBUcFD8pX5kFzogH3JushzVxo3ptAaJGj2kDiZA1kFMxo4p3QhgwOFLMdn1HR
	 kqZ2ct6RuGMRhmGVsN+Er4WwbtjKlgyJWsE6KNxmYbjSsCBPbagWcBpNU0nCLM4q20cos
	 APQNJhg48hY64CONtcqOfYFmY4dr1RGalsuATYT/8LIJEEfiC9J1HVNpIntdRlSX3HOw7
	 bN9OnVMvvFSgOKksPuUhMOSCK1Do3eFF61E0Veh9qE/cYzizboiliNsmAqbf+JVt8xmF7
	 5RlOoHMH5+/bbmBx9aeWH4yx7BWXAXW8XUTfRKYaEBjmJ7R6+vQQZ0u5vALG4pQRqztTH
	 iKqhwXmhNqEfhfBSG6qxvJthDVA8LOCrOxwDy1N5bAKQuV7N99G7miiK8SyPiB0NPexew
	 1hNeOcJaNm+ryE1rm+0+zgRHfkeQen/DkES/QwgHVhOFIctjHWe00iw5cdj/U931fTvoi
	 KFwi3es4H32SZhP0mtKxGZNRDrwpR0iAFK0NRKLC3LdFhfbPTI8WVVHVMV0zh2Q=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765447732; bh=vNvER5SHN9QCPsBCQzwWLJw7VeUQAnvmR3PLG0GpD8U=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=w0mBdcMFiT0JlwhV6kzS58hM/U3YBGFzfEcSrGSsJEXEgvkxVB96GqLSFz/p8jHvU
	 qDl6YGbCM5Cwbk1gmD2tmrkxLvsumnQhlT+dhiM4vyy+XkcUH2yYh/ZImmdD4NHa63
	 Kx/EYHHW/PXj3iMDk3ctRLKg/+4GycdwpqSiYmZ8I3Zc+UiZGRXR5RPsK6P7B9FlOw
	 uelYznqrSaEHA48XebO0VoUnBZdp1JqUAJaHKAB0qieI7Ma0rUHIUvtNgfR1oN8nXS
	 JObZ0d5xUtBsFDj3WFB4z1WkKG2GcSiatA7vbq2PGdnIawJsQWNUqNff1A8CLJIudB
	 JhQRLl3AgmptQ==
MIME-Version: 1.0
Date: Thu, 11 Dec 2025 11:08:52 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>, =?UTF-8?Q?Roger_Pau_Monn?=
 =?UTF-8?Q?=C3=A9?= <roger.pau@citrix.com>, Bertrand Marquis
 <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Anthony
 PERARD <anthony.perard@vates.tech>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: Current Eclair analysis
In-Reply-To: <c0d5cf8c-cb57-47a5-a989-f65677e565aa@suse.com>
References: <7744f9e7-17da-4f48-837d-8fc087899af5@citrix.com>
 <c0d5cf8c-cb57-47a5-a989-f65677e565aa@suse.com>
Message-ID: <dab08dfc1de25d7573c401ecad8a1f21@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-12-11 11:00, Jan Beulich wrote:
> On 10.12.2025 19:14, Andrew Cooper wrote:
>> The Eclair step is now the dominating aspect of wallclock time.  While
>> the recent changes were a step in the right direction, we need some
>> adjustments.
> 
> One other question, related to the "dominating" aspect, but not to any
> of the points raised so far. Can scan results possibly be recorded
> somehow, somewhere, such that upon re-scanning the same tree (pre-push
> test followed by post-push test) the identical re-scan can be avoided?
> And perhaps even incrementally - if only .c files change within a (set
> of) commit(s), only re-scan those, rather than everything? Could be
> extended to .h files if dependencies were properly taken into account.
> 
> Jan

We support incremental analysis, but it requires non-trivial changes to 
the current Xen integration. If someone wants to invest time and/or 
resources in it, I can support the effort, but it requires a fair deal 
of rearrangements of scripting in order to avoid losing information

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 10:30:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 10:30:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183824.1506412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTdvf-0000vf-DL; Thu, 11 Dec 2025 10:29:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183824.1506412; Thu, 11 Dec 2025 10:29:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTdvf-0000uz-90; Thu, 11 Dec 2025 10:29:47 +0000
Received: by outflank-mailman (input) for mailman id 1183824;
 Thu, 11 Dec 2025 10:29:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Fhd1=6R=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vTdve-0000sD-7L
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 10:29:46 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4d7e50b4-d67c-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 11:29:41 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b735e278fa1so153121166b.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 02:29:41 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64982040d14sm2134346a12.5.2025.12.11.02.29.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 02:29:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4d7e50b4-d67c-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765448981; x=1766053781; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:subject:from:user-agent:mime-version:date:message-id:from:to
         :cc:subject:date:message-id:reply-to;
        bh=0dFtbPgS018TneGvw6TmMwgYf3+nEk6sgqMPx24LyAA=;
        b=TzpO7LasZFN/QRvYjrkNDvpEpIra9IfkeL2RVhhjKicbgwwba5olJhJLdACrcsnoNT
         7POn0XsTe8aAZ787HOGj9LUHjhSpeikViwEpC/kz3tx8dwawvJhbZjdp6/Z5yBTtBnu6
         3ZRnGTPkodm8N2UuVfL+LFPPLuGl1kWvwK7O9klv6KkYpcICS248/1O2TLAbXYjUl8Gm
         tQ0I0PqOkSwtNNok8MyO9IJ3qTno4UKJOKxvVsc2Tytl985ofgZIxb4Dy6iLMKCsjrje
         trbP41ovoAF3RKqXHGkUmCmLNqG8vfRluFRs1rP2pTrxP9Nhyponk7+Xv/CDalXfrC+o
         OqPA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765448981; x=1766053781;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:subject:from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=0dFtbPgS018TneGvw6TmMwgYf3+nEk6sgqMPx24LyAA=;
        b=PndZh1tSoBm0MU1HZ7+Q7mcPUSZd25zwde9JXjgpKg/IGRRbwcOuKNoOPpMTtCXjtQ
         lEiSIx+e0E/KtZbZlLMUC5YOA62gpi0V83Ht3LXc7SZDqD/bV0/Zt1I6oxk3HUdeP3tq
         ie6HOI67gQSRk2njtaiBrS3/kf0dfBthVz1ARXzRMMOQBkJtP/0YZuTZaJ67JnSlr6p9
         6XT56RG8B1Rj3YEZNgtrQRa2FYDsZ5abcvWRn1DHciX8mQLtYTRVzXnJ8c8F9qYFckYt
         ViJabzTJ6f4sVY8R/xztQic1/kmJTbkrieDw/S4JPQDCFYF3eoYjZtjWhavYFSu6CHov
         xL1g==
X-Forwarded-Encrypted: i=1; AJvYcCV5ZxlBVNCee3reiPaiIgTOsCLd1GT8+O0BRBk34DFEOTJBoVzhMQRiAY8EB6+aHHJPxT7NTTQbE9E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxTvX4oQP7V5pmD9D69znysP5iS+LaRp8tCgfXBIUC63CnMTfZh
	hQSEiRyzmqOz8w7vRYY8YbaAQx+JbUWb+GcsvLlb+wESWr0ex6XyXEsl
X-Gm-Gg: ASbGncu1Img4JZk+JrINA3QuPnyycL94eJWxq3m+K1a1C9nJEyGZKFR2zQ3NecZyzmd
	RdX5utmA7AsHmJBHeDLefgaxpCVVbvhQ26JzMQuIwnZiSE8X+hYVTO7yKgmbSLL9gGYhYbRt0ug
	zBClsqyCgmjsbs3VAXjvEBnMXTTfkWFtw28fUdvN+1zFYunnfHtn2w67EV8Cw2JUT3Xe3hTGytE
	u4D8uLAXKttVwUhNUkJcRxefHQR5WpLy62JqlKunEiSt3P9x5qn0bzaPkTGkooqh4QNvYfyk4a9
	ojaGfqKJ6zZp33RFiQbu+2MhgFSQQIbFUCaxwTTALD4UPsP2RpzQtKYaFcc1v2t7HmagpTclmAv
	zONZuU5wMFEW66smwhiOlAzPcZH+VmTq2Q5ED3OLAeA5FEa4D3liFVOUfIATUzLN+2vXYiYj5N+
	k43EGNHJfZqX8PD5ywEOmqiZd5thlja5sBmzl734HKlc2JpNwO6OsP1f3c1kKt
X-Google-Smtp-Source: AGHT+IGyDJ/V5v0DHgjHWU81DAHpLw4A9MDBZx0ADNMylxL8iTs0DNAdPLV8mfYTXfpFhD+zVOq4BQ==
X-Received: by 2002:a17:906:c151:b0:b73:5936:77fc with SMTP id a640c23a62f3a-b7ce8234ee8mr603939866b.13.1765448980446;
        Thu, 11 Dec 2025 02:29:40 -0800 (PST)
Message-ID: <c1ca8efb-3e17-45e2-ba90-a6f49616bb51@gmail.com>
Date: Thu, 11 Dec 2025 11:29:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v1 2/3] xen/riscv: add RISC-V legacy SBI extension support
 for guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1764582112.git.oleksii.kurochko@gmail.com>
 <f4e4dc9beef4618ffaabe1c6caec3e10cf78fd5d.1764582112.git.oleksii.kurochko@gmail.com>
 <c3d2a4c4-f591-4bff-b978-18b8c09cf512@suse.com>
Content-Language: en-US
In-Reply-To: <c3d2a4c4-f591-4bff-b978-18b8c09cf512@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/8/25 4:05 PM, Jan Beulich wrote:
> On 01.12.2025 11:24, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/include/asm/sbi.h
>> +++ b/xen/arch/riscv/include/asm/sbi.h
>> @@ -14,8 +14,15 @@
>>   
>>   #include <xen/cpumask.h>
>>   
>> -#define SBI_EXT_0_1_CONSOLE_PUTCHAR		0x1
>> -#define SBI_EXT_0_1_SHUTDOWN			0x8
>> +#define SBI_EXT_0_1_SET_TIMER           0x0
>> +#define SBI_EXT_0_1_CONSOLE_PUTCHAR     0x1
> Why the padding adjustment when ...
>
>> +#define SBI_EXT_0_1_CONSOLE_GETCHAR     0x2
>> +#define SBI_EXT_0_1_CLEAR_IPI           0x3
>> +#define SBI_EXT_0_1_SEND_IPI            0x4
>> +#define SBI_EXT_0_1_REMOTE_FENCE_I      0x5
>> +#define SBI_EXT_0_1_REMOTE_SFENCE_VMA   0x6
>> +#define SBI_EXT_0_1_REMOTE_SFENCE_VMA_ASID  0x7
> ... you immediately have one that doesn't fit?

IDK, the padding adjustment shouldn't be done in this way.
I will correct it.

>> --- /dev/null
>> +++ b/xen/arch/riscv/vsbi/vsbi-legacy-extension.c
>> @@ -0,0 +1,37 @@
>> +
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/lib.h>
>> +#include <xen/sched.h>
>> +
>> +#include <asm/processor.h>
>> +#include <asm/vsbi.h>
>> +
>> +static int vsbi_legacy_ecall_handler(struct vcpu *vcpu, unsigned long eid,
>> +                                     unsigned long fid,
>> +                                     struct cpu_user_regs *regs)
>> +{
>> +    int ret = 0;
>> +
>> +    switch ( eid )
>> +    {
>> +    case SBI_EXT_0_1_CONSOLE_PUTCHAR:
>> +        printk("%c", (char)regs->a0);
> This is guest output, so shouldn't use plain printk().

I think that I don't know what should be used instead. Could you suggest me something
or point to the code in other arch-s?

Or do you mean that guest_printk() should be used?

>> +        break;
>> +
>> +    case SBI_EXT_0_1_CONSOLE_GETCHAR:
>> +        regs->a0 = SBI_ERR_NOT_SUPPORTED;
> This will be overwritten with the return value you pass to the caller (i.e. 0),
> by that caller (i.e. vsbi_handle_ecall()).

Oh, thanks. It should be "ret = SBI_ERR_NOT_SUPPORTED;" here.


>
>> +        break;
>> +
>> +    default:
>> +        panic("%s: Unsupported ecall: FID: #%lx, EID: #%lx\n",
>> +              __func__, fid, eid);
> Please don't. domain_crash() may be okay to use here, but crashing the hypervisor
> because of unexpected guest input isn't okay.

|domain_crash()| is better. I also considered just returning|SBI_ERR_NOT_SUPPORTED|,
but it wasn’t too convenient for debugging which FID/EID the guest was called,
so I started using|panic()| instead.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 10:30:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 10:30:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183823.1506407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTdvf-0000sW-5N; Thu, 11 Dec 2025 10:29:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183823.1506407; Thu, 11 Dec 2025 10:29:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTdvf-0000sP-2E; Thu, 11 Dec 2025 10:29:47 +0000
Received: by outflank-mailman (input) for mailman id 1183823;
 Thu, 11 Dec 2025 10:29:46 +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
 <SRS0=QWGN=6R=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vTdve-0000sE-0Y
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 10:29:46 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4fc1296e-d67c-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 11:29:45 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-5943b62c47dso776337e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 02:29:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4fc1296e-d67c-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765448984; x=1766053784; darn=lists.xenproject.org;
        h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=D8H17ulhkEgslJAdnXMogvfprVdOXngzyHF6etvOG2k=;
        b=Rjl1p0SpdosA6OjP3TQ33/kwWS9kfdScx3aOEXICdIOkYuPur1kQkjGhBrKt8O6ASe
         vXT+KnmyVgQtfj6QZQa5UsF9TVuIccfMxeOQqFxsMLe8Tv1QU21/xoq+hmZz9uPObt06
         niyWBRif99DRiGnoQFMIv2kFyvjz/Ocqh79UMbBEHvyas1Khc1v3mhCedPuz9ZtvJJHY
         6I+ZJVrLN/9puWxmY8fhx+6b0kOxhIph4NmYWLKAsCKSMBV+ixuC+0YNygtMYI9874qq
         qb6+0VOxVJol+qUy67AsHHg7JaBI/BDSGGlCsA9MYEB7l6B5oT/ImXw3ovUvYr8RsLxT
         Mjeg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765448984; x=1766053784;
        h=to:subject:message-id:date:from:mime-version:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=D8H17ulhkEgslJAdnXMogvfprVdOXngzyHF6etvOG2k=;
        b=Wbo2rGgBlw6i3BNMYPWDtRoJm6xxPqOy8xJx2iYJuiXe8cQDFCm6pN35rihNiodJvR
         ztbWnVz/jUj1DrP/weOU82MXvY4x5JYJolaiwB20fmgR8WlYtBVu4mHnPOwfkOxMqJ7W
         nkvNgIEc/5a0mR05Yk8rhgUZM2cijBWMeDjaIznEw5A1MKWx5vJ6I8tyt65fsGiML1lb
         Sg/n2h9TJT2BzZlwQS2qoQ9fTlMslJDE/k/wt47z6SdMu85lF61pOHzww7GrDBil8ROW
         1o9sIl+R6dfUxmV9DQKPiF+5srUsa2GuIRmFEjX4hd95T8BxgDAmzIRdQ7gjmgY511R0
         /4zw==
X-Gm-Message-State: AOJu0Yz4lb57P/1ceSIizjPBcys0Id3dDAYymL5MS1yuCnr2tqyNQ5fQ
	nhSSZG4Ddggat6xyRqOeOnNC35qPm161HlO17OtOAQXppjbfzORQp1M0OXqf7QRe7EDGsUj2Pos
	9Iqu5ygiRoEab0yeHY8Bf4jqNyyINKIKBmpQxXVg=
X-Gm-Gg: AY/fxX5ZY5oEqtPlZH85A0dhkYRD6Fk7GDGk9dATgVL8KFdLs6B3lN1Jerj4jek+R3o
	8bJ0pUMHC4+pCTg4SShpXUxCAgscHPOsWEYtumyy4wtPilIhxjIxRp/gKo+3fFNWdClp8dpHGSP
	tH7/EuiHusWEyvg2H0xIeFnTqviJRvfS4KYTeC3ZZK+RcFB7B+BrU0dF0A1ZVngufNPaU/+u6rw
	2O60J13JoPHg4Sd9w9OFQo52aeB3Uua6f815nLrX9+wsxNU4P8b0eG3K1h+bedih8bK4JcmQNyW
	cpFakA==
X-Google-Smtp-Source: AGHT+IGZ+FjRzDf5bSv56dVqOshHOfALqgZ6MvexoSnKuv6KWdisPUBH0kkC7/Yht27JCm5linNCS3ILJnDhdBVbn9Y=
X-Received: by 2002:a05:6512:b20:b0:598:8f91:6d12 with SMTP id
 2adb3069b0e04-598ee4cb5aemr1998664e87.53.1765448983853; Thu, 11 Dec 2025
 02:29:43 -0800 (PST)
MIME-Version: 1.0
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 11 Dec 2025 12:29:32 +0200
X-Gm-Features: AQt7F2qErL4ON8m6tEuUXjZBl5Q0l7hmpTGVGsY-eC3CFABY5vP2IioCC2yEZ3g
Message-ID: <CAGeoDV_YS8hV2+FXVgXxvHLw=MQOAoJZwrP1Ypw8+ZUjKB9GSA@mail.gmail.com>
Subject: Strange symbols_lookup() behaviour in test-symbols on arm64 CI
To: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"

Hi all,

While working on an arm64 s2ram series for Xen I have hit what looks
like very strange behaviour in symbols_lookup() as exercised by test-symbols.

The series is in the branch referenced at [1]. All patches there except
the last one build and pass CI; adding only the last patch makes the CI
job referenced at [2] start failing.

Note that the tests in that job are built without CONFIG_SYSTEM_SUSPEND
enabled, so most of the code introduced by the s2ram branch is not
compiled at all for that configuration. That is why I initially did not
expect my series to affect this job.

To investigate, I tried to reproduce the issue locally. I downloaded the
xen-config artifact from the failing job [3] and used it to build Xen
with my local aarch64 cross compiler. With this local toolchain
I could not reproduce the failure, and the resulting .config changed slightly
compared to the job's config. The relevant part of the diff looks like this:

    diff --git a/xen/.config b/xen-config
    index 057553f510..44dcf6bacc 100644
    --- a/xen/.config
    +++ b/xen-config
    @@ -3,11 +3,11 @@
     # Xen/arm 4.22-unstable Configuration
     #
     CONFIG_CC_IS_GCC=y
    -CONFIG_GCC_VERSION=130300
    +CONFIG_GCC_VERSION=120201
     CONFIG_CLANG_VERSION=0
     CONFIG_LD_IS_GNU=y
     CONFIG_CC_HAS_ASM_INLINE=y
    -CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
    +CONFIG_GCC_ASM_GOTO_OUTPUT_BROKEN=y
     CONFIG_FUNCTION_ALIGNMENT_4B=y
     CONFIG_FUNCTION_ALIGNMENT=4
     CONFIG_ARM_64=y

So there is at least a difference in GCC version and asm-goto related
Kconfig options between the CI environment and my local one.

After that I tried rebuilding inside the same Docker image that GitLab
CI uses:

    registry.gitlab.com/xen-project/xen/alpine:3.18-arm64v8

When I build Xen in that container, using the same branch, the problem
reproduces in the same way as in the CI job.

Even more confusingly, adding extra prints in test_symbols just before
the calls to test_lookup() makes the problem disappear. This made me
suspect some undefined behaviour or logic issue that is very sensitive
to optimisation or layout changes.

At this point, to me it looks like something might be wrong in the
logic inside symbols_lookup() (or in how the test drives it), but I may
well be missing an important detail about the expected behaviour here or
about the toolchain assumptions.

Could someone familiar with symbols_lookup() and the test-symbols code
please take a look or suggest what else I should check? If there is a
maintainer who would be willing to own this issue, I would be happy to
provide more data or try additional experiments as needed.

Thanks in advance for any hints or guidance.

Best regards,
Mykola

[1] https://gitlab.com/xen-project/people/mykola_kvach/xen/-/commits/reg
[2] https://gitlab.com/xen-project/people/mykola_kvach/xen/-/jobs/12394355047
[3] https://gitlab.com/xen-project/people/mykola_kvach/xen/-/jobs/12394354611/artifacts/file/xen-config


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 10:31:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 10:31:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183840.1506428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTdxb-0002q4-O6; Thu, 11 Dec 2025 10:31:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183840.1506428; Thu, 11 Dec 2025 10:31:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTdxb-0002ps-LH; Thu, 11 Dec 2025 10:31:47 +0000
Received: by outflank-mailman (input) for mailman id 1183840;
 Thu, 11 Dec 2025 10:31:46 +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
 <SRS0=JdCA=6R=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vTdxZ-0002ow-VY
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 10:31:46 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9645615d-d67c-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 11:31:44 +0100 (CET)
Received: from DS7PR03CA0209.namprd03.prod.outlook.com (2603:10b6:5:3b6::34)
 by DM4PR12MB7550.namprd12.prod.outlook.com (2603:10b6:8:10e::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.9; Thu, 11 Dec
 2025 10:31:37 +0000
Received: from DS1PEPF00017091.namprd03.prod.outlook.com
 (2603:10b6:5:3b6:cafe::34) by DS7PR03CA0209.outlook.office365.com
 (2603:10b6:5:3b6::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Thu,
 11 Dec 2025 10:31:13 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS1PEPF00017091.mail.protection.outlook.com (10.167.17.133) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Thu, 11 Dec 2025 10:31:37 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 11 Dec
 2025 04:31:36 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9645615d-d67c-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KjVZvTLrdzmpR/9/RL/+fTRgosDYsIDbd4ievO+Z8r5wEZXikpkcZwZWxEa7HzEe9uPURz3xa6BQCwj4Q8x10YdbwJf8TaVPGiayP7cz/lMA83klWdWgIkjcf4BY/KRiDCy+WXDIQ0BRqBc4DeKSrlxXt+aVtuNKp06i/8suX3N+nIQg7A8//eXrcUNHozeGtfdWeSH0YapeWgls/ZHTpJoofnSQOCDRvXhEExGmrR2KwZF0TejQmOlUzbUuNa/GKxALbnpJ8CisQNcDU6/BB3uMviUb0GLb9QmfTIEKrTvd3TcMG1QsGNBfdA6n9tAZMVvYvt+5QifNLrUHtycPeg==
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=KrATn+ccNbKkWs0oIjMBYpxk6/j0tgAD1k9Q4EulALw=;
 b=kaLAy2B6skHqp37rGFBypPUAttpdgi92H4EJVEik6qQUCBAWv8FHGkYow1oAbeXl+e//52i0It/4HKfp4OZaBlELOP1wlXKo4dJIJnRAsnQ20MloWvRlTQUdAONsk6B966kJHMQiYSWlV5CZ4C2wkEwZIdgq0/l4z5RnYlZZ2BrCNJ44RNOTCFatGdVemtPvX5276HMTz4STvD9EtmsPjhQHJ5A5gsRgxGLssEMkTCzRZrw2/UVC4RLoprI1MOOCAwTZ9cuZd4FV5pOg3AneygJeCLmMtYj5cDzscYpUGkqBKeGmDz5H7bXUb00SBiwrWUTdNlFuXcjeXl507v792A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KrATn+ccNbKkWs0oIjMBYpxk6/j0tgAD1k9Q4EulALw=;
 b=CLayFUMwFtcNP1GLfuYKWtXqckeEjtF+wBcnQu0p7ySWq175iUxZebdrECPx8KZEqz7tV+bQFGgstpvmwgL4ZzWaY4iuBXsiKoOJLxzX+6guukYIqXDHIYtusImWT8ZQXOEKvxHzNA72jXgJXwVdOks6Kgh0SBFZTId/vKH/iEM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 11 Dec 2025 11:31:33 +0100
Message-ID: <DEVBH18RU4WL.2GFVGYVC8SWAC@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	<xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH 09/11] x86: Migrate spec_ctrl vendor checks to
 x86_vendor_is()
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
X-Mailer: aerc 0.20.1
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-10-alejandro.garciavallejo@amd.com>
 <73146271-c849-4d16-8eb8-80e7d59f42f2@suse.com>
In-Reply-To: <73146271-c849-4d16-8eb8-80e7d59f42f2@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PEPF00017091:EE_|DM4PR12MB7550:EE_
X-MS-Office365-Filtering-Correlation-Id: 06578e40-66d9-469e-7db6-08de38a07728
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?aTVJUkZNODVpWXlPZnFXZWVIdzFBaW9uZjE2VkxsT3krcVRBVE1aVG1uekFs?=
 =?utf-8?B?Qnd4Tjg0bHJrU2dKZDVUK093ZERGT2QzMlF0a3ZXNmlSUmI3cmpUR0NYTEoz?=
 =?utf-8?B?UlVaNXNEaFlnbXFja3ZoWXRDeHI3TTl6aG1kMjN0TFdTaHdZYWc3RE5OMnYx?=
 =?utf-8?B?YTkxUW5JVFRFODJ4aDQ1aDJOWU5EUFpDTkxoZkV2VldKempaZ0U3TzJNRTQ0?=
 =?utf-8?B?QXJtMjBudWw5OUtvaE1lMWtscE91dHIzRm1xRUdoTnh5b1VGeHpyTFdGOTZj?=
 =?utf-8?B?YmNESzRWTkFqN3pYV2ZhVkdKZGZrbHVTeU5FNHBQWHJSd1dLaSt1QW9XQnVq?=
 =?utf-8?B?cGl0ZVZscTlrcG1BOFZMWmRwVUcvbWpOaFlXS242Mi95YlF6cDYwbW1RNUd5?=
 =?utf-8?B?eTNJQnZmWEFneWgyVHJRektyOWNQSUpEQ3I2Z1N0Tnp3MTByMTJFRXI4Ny8r?=
 =?utf-8?B?K25OVnpTNzA2Y1Z1OWd1cGhDTlBKQkh5SmlhNGJLSFRlUzZpeVdOVTBtVGN3?=
 =?utf-8?B?V0svSnhXNS85ZFcrbS9HSkd3cWRnazZ0OVowWUN5NHgrZWszcHpseDlCdlhw?=
 =?utf-8?B?RjBialJDMzdnN3Frd1BmSWNncVNvL2tsM3I3WUg5OGxHNDVlN3pPL0MrcGxJ?=
 =?utf-8?B?T0d4b2dlaWRTSDBGTVlnRytUa1ZvU2lLd1E5aXdiNGQzdlJiSXphb0xkNFJt?=
 =?utf-8?B?NkhsdTNWVHhKWTdmdk00SHNBOXZyY0pZQ1ZQRVdyWUhvUTFBMFVTRzgybGtQ?=
 =?utf-8?B?RC94MklwUEhyNG5aQXVWdnFaUUh4a1c4OXIweGxUVm5ZU01SYjhWUEh1Vnhs?=
 =?utf-8?B?azNjZkxYQVBrTHFsbWlZMEhzOExTRWFPU3l4ZGdxWklhdmsyN001V3pEVGs0?=
 =?utf-8?B?SURvYWxyK25YYVBkSGJaZDhWc1NmS1lycTZlRmtHdkI1dU5YcCtTeWZJL2Jl?=
 =?utf-8?B?a3B3VnF4dkpOUlM1MXI2TGw3WnNocFkrNkJWZVhjaXVLNXEyVmsrNkJnZVU5?=
 =?utf-8?B?SE9USGROU2JGSmE1bEhpY0FDMGl2TjE1R3dCOWtBcWplTDJTNHBTVStUWnQ2?=
 =?utf-8?B?VWJWbUNIZmlpTmRqUWwxT2gzT0l6QVhnbzJNdXZqcXQ3MklmN2VuSDMwNGxW?=
 =?utf-8?B?NExtZWRTQnBSZVRSY1QrRTU1VTJLTzNxTnBrN3NGY2M1VXNtNHhiOGhIeHhZ?=
 =?utf-8?B?YWFmWSswb3pObjY2SGp5V2xzYW9PdVpaYUo3bCs3aU56cldXUDVMQTRwVkdl?=
 =?utf-8?B?TDMxd2prRUl5eXFNZzk2dUNnQWEzWDBoVVJyWWxQSDJMbzJLVWN6c3VaS280?=
 =?utf-8?B?MFV4TVdBV0JrcWNkZmNXQWk2MUgzTTBWN21BdWlGR1JNUE55STBXUmJSWS9M?=
 =?utf-8?B?TEN0UlZZZml2TjhQYmdvRE1iUG5lOHhZdzdrZVdWbmw1Q0MrcXY0cUkzTkFC?=
 =?utf-8?B?ajRZRGVIMmpNU01TcWZhdzA0bXlWaTdqSmhqK1pGUHJkMG9qeVRMTVZhc1lC?=
 =?utf-8?B?QlF4VTBYSEsxdk9VMUE1b1NJemRSQTZ3eStwU09JTWF2WVFJNjJEajlzdURv?=
 =?utf-8?B?ZUYwVU5jTUw2TTY3UkZVMTRmZ2M3dzNmMjZEOWVpVzY0TDV1Z1BDWFEvdnI3?=
 =?utf-8?B?T25BTml4aktpNjE5MXE3TEpRMWYxcUhyaEdZczNldS8vclhXcjVNTEE2TTZv?=
 =?utf-8?B?cFZpMFRQM1J2WTVIbWJhMERBbjN1bGtETHE1RytPKzFRaURmazBURXliTUJD?=
 =?utf-8?B?em5YR21mRTF3RzBqQ3AvOEpUSWVNMkxIVitiNW9UTm1sbkpOYmhXNTJsR3o2?=
 =?utf-8?B?Tksyb3F4c1dwRUwzWWtIcmN2K3RGK3ZTbXBsZDhhTXZzZy8wUlNMeWxaT0x5?=
 =?utf-8?B?REV5UUVPY3d1TUM5WEw1TmdXYWs2TDFqbEt3d2hoZ0VkakFMekl3ZXRTaFlT?=
 =?utf-8?B?YzBOQXhKaXJCR1hjOC80TVF0bzhHSU9DMVFPTFR6R0RacTdOMWNaWG82U1h2?=
 =?utf-8?B?RTdiSFQrMXZZZk9CNXFxdnY4SnAzRUVBaXVzZlFhdHVDaXRUNVZvWS96NE9W?=
 =?utf-8?B?aGFpRzFCMUtVcGFteHZHdTlXVzFEZk1QTzUrZmo3ODR1N0hnSDc3dTNHSkRn?=
 =?utf-8?Q?iFnk=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2025 10:31:37.7464
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 06578e40-66d9-469e-7db6-08de38a07728
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS1PEPF00017091.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7550

On Mon Dec 8, 2025 at 5:04 PM CET, Jan Beulich wrote:
> On 26.11.2025 17:44, Alejandro Vallejo wrote:
>> @@ -938,7 +938,7 @@ static bool __init retpoline_calculations(void)
>>   */
>>  static bool __init rsb_is_full_width(void)
>>  {
>> -    if ( boot_cpu_data.vendor !=3D X86_VENDOR_INTEL ||
>> +    if ( !x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) ||
>
> One other aspect: If already you touch lines still using the old (being
> phased out) field names, please rename at the same time. This may then
> also help with line length in some cases.
>
> Jan

Yes, of course. I didn't even notice the difference at first. On the note o=
n
length, I'm revising the idea, keeping the same principle but making it les=
s
verbose.

Seeing how both you and Andrew seem onboard with dropping cross-vendor supp=
ort
and having these turn into constants, I'm leaning into transforming everyth=
ing
to a single "cpu_vendor", both host checks and policy checks would become
something of the form:

    if ( cpu_vendor !=3D X86_VENDOR_INTEL )
      ...

    if ( cpu_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON))
      ...

where cpu_vendor would be defined as a runtime check on boot_cpu_data.vendo=
r=20
masked with X86_ENABLED_VENDORS when multiple vendors are compiled in, and
the single vendor compiled-in. Perhaps something like... (untested)

#define cpu_vendor \
    ((!IS_ENABLED(CONFIG_UNKNOWN_CPU_VENDOR) && X86_ENABLED_VENDORS &&
      (X86_ENABLED_VENDORS =3D=3D ISOLATE_LSB(X86_ENABLED_VENDORS)))
        ? X86_ENABLED_VENDORS
        : (boot_cpu_data.vendor & X86_ENABLED_VENDORS))

I _think_ it would have the same DCE implications, but it would be much nic=
er
to read at the callsites and cause far fewer line wraps.

This brings down complexity, allows for the switches to stay (DCE understan=
ds
unreachable labels) and improves the general code quality.

I'm busy atm chasing emulator woes, but a non-rfc series of this will reach
the mailing list at some point. I'll make sure to s/x86_vendor/vendor while=
 at
it.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 10:38:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 10:38:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183857.1506438 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTe4O-0003oZ-IV; Thu, 11 Dec 2025 10:38:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183857.1506438; Thu, 11 Dec 2025 10:38:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTe4O-0003oR-FU; Thu, 11 Dec 2025 10:38:48 +0000
Received: by outflank-mailman (input) for mailman id 1183857;
 Thu, 11 Dec 2025 10:38:47 +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
 <SRS0=BerU=6R=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vTe4N-0003oL-1u
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 10:38:47 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 91a58c2e-d67d-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 11:38:45 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 02B774EEBF88;
 Thu, 11 Dec 2025 11:38:43 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 91a58c2e-d67d-11f0-b15b-2bf370ae4941
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765449524;
	b=1B60xamV09W0Ps+3VZTcJdmns73IBm75IeDmQ5mGbG1sHUb4JpkMU0xSGcWUNdsxcTWB
	 fblknHC2DOHJAJhj7fBaYyfRAJsO7IPO34dZCptEBr0ngYWaYzE9CeA4MldJZnfCYxNmW
	 6+eqW6UCktEfnFbywcRvXmzla9OEDy3Ktk/2HFXyyVyZXKKClxMOYsg+4Ww94IBIGY8SL
	 mN6UHOjxAbGLDQqFo5qtKtCRSw0dtn85gEFz5dPeW9nadTT/V5Uvndc042Xxe0IgkCuC8
	 VBVdrHnlBn1pxmlDEMchprjjBBfdz/Immk8W+rLrXo6NkO87AJc9/JvM7HIC3lSnfbcHx
	 4DgpJgc3Qbf+7gzUBqtjqBAP6yOZJrrZtvQc8JzbpLHL/Xm7Cazq2/zGCJK6hl4ghL64H
	 HrghFUGZpfTfC6r6TFylU9Xz7CbaygmxYWqUPxb3JvzlxPfxiPCbCJ8SSW95s7niHFEpR
	 L6gM1Tm1gPHdjKlQO/5tp8+DovU9cu1vzef/WjhMYkSTwQBXgq9gqcwfVTtOz8Jq1SGcF
	 y3vJGoB24t+PbDcCDJuE3KwP8U5DVJJ/b+1hG4fLNCMsNQ/1kWHSlPH/vpSk6sPNt82qn
	 sfa2T6K9XoX1Lo+KrIRRmf2GjI4brR7Gl1c2K0Y9JbYPpFnYedh/Uw0mhlw/7j8=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765449524;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=QQUmeSUY54y6e/gZRXgXNlQ42fOtBeg2u5S4xEHZrW4=;
	b=095EPJGfEAx4Ar6A1+h800b3LXCu3/adQFroisRhHZ+XBfALx9UubVbDO4BcyOrnCImn
	 Eyqyj9fgUCkH05tnCTnCOMFPQQHcdDjgINHyjA0KqxiNnW3eTjolqamBzFWQuNbxqRswF
	 +ephyJ8lgvtvzUQn+0+UshqkOOerK05VzSi5uwWALw7qisyVNwR9s4mQbvTtK+zPGXC4u
	 nQ+XA7V9n1b/G0bJyYFCNx1LizaJIKBFH942bmITkb+OjX9tkKbdxp+9ikKlN9x0I7MUT
	 wjCof7MJW8BbziAUxEv8bgyfJC2HIMy7azDlTIi/qHF04RJ/IE5Gevrbbjif3xDMJ/IrE
	 VH7r47sjoJZxOE8f4OVxJJOM9i6NdXDxCkGd/PUgW1Z+A4Bn932HH85HHc5V7L4tE/2gz
	 6IahuPJKlm6AyWchdudTZZKh1H9FaZFny9zjsDymLR4fY3tEfz/bw7I6rPJh1mkR9vCHd
	 w0SBHPm0NY0Q6lN/7O87xoiNO8stC9KlWjB2nMktPeIZCpxKyikrJj3s1lpEqdpf9UpOu
	 DbBdRfguzdZAHP1EDiEJZ3MtMJYe40VtWDZxLTtyMkxqNZ6G6k/v10DFlA/v9bZ/AeDkT
	 OA55KfeMucoajMhjW+ulicBnsbOycSXeOrWIbrWtX1r3Eawok478Zuh/vM1UZ/o=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765449524; bh=FearIX+GF0kUzySgx1VItg3wefPuHp6k0C6M3N6ybrE=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=rJ7+Z1eG4qZYv4bl9ozfdATUrdFkvMJbSj2hdPlpBZCcRvjpoz9M0+0d3rXrNd0Ll
	 WZBuVbE4mLH5ZsHwNxSoKIJK4AokRSIarf8bcVRXeI7VnBQMXDSOhj9MLs8t1+8MJK
	 r/H4vy080jbQxxfnKi43hdK3txDwAIhRsu4iiaAYPGx/0d2lh6Qi4s6LF6FQmTzZTK
	 k9u6VvSaOUVS4iWMb0bgPR354Tk3MhlSqJUznPmiWBioPGPeCLCaxUEBldNTHGUpzv
	 zl3lOlFoVrWwYHGWYM0XAHF7a3JmDeA71ndNzRMJ6Nhcg9OcD5SDZBiq3Ka9JVPaib
	 mGWpYSofY0N0g==
MIME-Version: 1.0
Date: Thu, 11 Dec 2025 11:38:43 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn?=
 =?UTF-8?Q?=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
 <sstabellini@kernel.org>, "consulting @ bugseng . com"
 <consulting@bugseng.com>, Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 5/5] x86: Fix missing brackets in macros
In-Reply-To: <d2988b31-66e0-4a6b-8f77-4ae2cf2c4bd4@suse.com>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
 <20251210183019.2241560-6-andrew.cooper3@citrix.com>
 <5a4695fa-1520-4d52-adc3-72c159892e33@suse.com>
 <fdf95d1d02274a6442d4eb4c6b7284b8@bugseng.com>
 <d2988b31-66e0-4a6b-8f77-4ae2cf2c4bd4@suse.com>
Message-ID: <9aee3813bc96718ce0d772ead4f0578f@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-12-11 10:30, Jan Beulich wrote:
> On 11.12.2025 10:15, Nicola Vetrini wrote:
>> On 2025-12-11 09:36, Jan Beulich wrote:
>>> On 10.12.2025 19:30, Andrew Cooper wrote:
>>>> With the wider testing, some more violations have been spotted.  
>>>> This
>>>> addresses violations of Rule 20.7 which requires macro parameters to
>>>> be
>>>> bracketed.
>>>> 
>>>> No functional change.
>>>> 
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>> ---
>>>> CC: Jan Beulich <JBeulich@suse.com>
>>>> CC: Roger Pau Monné <roger.pau@citrix.com>
>>>> CC: Stefano Stabellini <sstabellini@kernel.org>
>>>> CC: consulting@bugseng.com <consulting@bugseng.com>
>>>> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>> ---
>>>>  xen/arch/x86/mm/shadow/multi.c     | 2 +-
>>>>  xen/arch/x86/mm/shadow/private.h   | 6 +++---
>>>>  xen/drivers/passthrough/vtd/dmar.h | 2 +-
>>>>  xen/include/xen/kexec.h            | 4 ++--
>>>>  4 files changed, 7 insertions(+), 7 deletions(-)
>>>> 
>>>> diff --git a/xen/arch/x86/mm/shadow/multi.c
>>>> b/xen/arch/x86/mm/shadow/multi.c
>>>> index 03be61e225c0..36ee6554b4c4 100644
>>>> --- a/xen/arch/x86/mm/shadow/multi.c
>>>> +++ b/xen/arch/x86/mm/shadow/multi.c
>>>> @@ -781,7 +781,7 @@ do {
>>>>                      \
>>>>          (_sl1e) = _sp + _i;
>>>>   \
>>>>          if ( shadow_l1e_get_flags(*(_sl1e)) & _PAGE_PRESENT )
>>>>   \
>>>>              {_code}
>>>>   \
>>>> -        if ( _done ) break;
>>>>   \
>>>> +        if ( (_done) ) break;
>>>>   \
>>> 
>>> I don't understand this: There are parentheses already from if()
>>> itself.
>> 
>> Yeah, syntactically there are, but those are parsed as part of the if,
>> rather than its condition; the AST node contained within does not have
>> parentheses around it.
> 
> I fear I don't follow. Besides us not using parentheses elsewhere when
> if() is used like this macros, the point of requiring parentheses is 
> (aiui)
> to make precedence explicit. There already is no ambiguity here due to 
> the
> syntactically require parentheses in if(). Why would a rule and/or the
> tool require redundant ones?
> 

this is parsed as (more or less) "if_stmt(integer_literal(0))" rather 
than "if_stmt(paren_expr(integer_literal(0)))" when the macro is invoked 
with 0 as parameter _done. Now, syntactically the parentheses are in the 
source code, so the letter of the rule is satisfied (as long as there is 
a single condition in the if condition), but the presence of those 
parentheses is lost when parsing. I see how this can be seen as a false 
positive, and we will definitely add some special handling so that cases 
like this are properly recognized, but for simplicity here I would add 
some extra parentheses, at least until the false positive is not 
resolved

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 10:50:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 10:50:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183870.1506449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTeFZ-0006d6-Ke; Thu, 11 Dec 2025 10:50:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183870.1506449; Thu, 11 Dec 2025 10:50:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTeFZ-0006cz-FF; Thu, 11 Dec 2025 10:50:21 +0000
Received: by outflank-mailman (input) for mailman id 1183870;
 Thu, 11 Dec 2025 10:50:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTeFY-0006cr-EN
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 10:50:20 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2eb516aa-d67f-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 11:50:18 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4779d47be12so7524995e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 02:50:18 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8b8a851sm5207531f8f.29.2025.12.11.02.50.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 02:50:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2eb516aa-d67f-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765450218; x=1766055018; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hZj0RITDx4r82StgH/0g+X+fv0iCmUnFptUDp5VTpN4=;
        b=YMyV9ZKJTr5BBYLNF/f/JHWwg0dxs5b/TLN30DkQqZWekNIoYwciP5S7JfcM+W0syC
         PVm99wGrTNP3duESLASLEJ43ns/k26apeIhc8cY7uqn8fC+KC2k7xLmPa/6mEffWJJ4z
         I9hwNtgLmvSzB6yvuscby8n1yitYTDhJG7UD95i94rYnYzRVhhXD8/KFJDE7rZtTQBnv
         kYjpdA8WtNOUUMfLR5++qCPeJAihLQXzHZpGfM9vsOPkpykA1omFqb/I5uYtuR7B7cqZ
         qcLpSfxLtsqM3uGhlvIJZM3Y1sh+SFv3EgNXD9ZxIvX90bTOEZyRbuZ/WGoq5KHZ3gTo
         58og==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765450218; x=1766055018;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hZj0RITDx4r82StgH/0g+X+fv0iCmUnFptUDp5VTpN4=;
        b=UnS/8pjgyJZnMWpLttGeWfvrDU1z/GCd3zimhD477mqUNlODfQHGxaz+zoEpqXVtjM
         QQ4m8RUbudMnGga46hBtxQk/HYJrB9Ei68Xf5rK4fYfzZWojDi1wwTOSLvhyUalaYdtX
         1SEtjzzmDJo+OMCocZhENiR5aa+Mx8mp3RsKxmeGhFSWbT6saQ71veAAluFb05E8O26G
         Jikv2fG1efos1VFPpg2JuU/bx9B9V08xpukJAf7RpR6WhHEEqQymvVWKcmZFTuYULHqO
         OkLFEvi8fGBkiPsSrUdhDYpSsvqJSxYhjKBgKrIbjBlOf9jW+avDmr9r5xWotCHZjp3b
         HYiw==
X-Gm-Message-State: AOJu0YxDSdh/H0g+qvtWCZuVW/CzfhGBzfQtANUB9BaGTQTlyrA8tEjA
	fasmFXt5nraINaML2crhw7lfDWRV9ij3Xlp3lp25o29U/sJYu33bIyjhYXaq970VLQ==
X-Gm-Gg: AY/fxX5i7TiJgn9/EC3iXZA0IaxWCAGJW45KZ9SnjcVlKy4Z+ucHha9vfcm0zx+mF82
	XMqItlKWO4yt+OifLDaEx/Ux/bedIFg3lnJfYUFwveeWxvxADgO9y5kkoHnRPKWPh7G8kkjO/GS
	V8cqD7yYn2sRonQxvkGqEcFVrifpjFrIS88tlghjw+JPpOfZeKA5QXJtmojBbXRli2wx3EhDt6Y
	lyoahHNiy05jSweMcJSFUV9RA8MIy5ta5moXuScfcQGOFAXIANJdasP/EaKW1o0Zbp4Rlba1GTq
	5lh4HA1kM/cMaS4nyzrI8gWfj8eJwA3I521W9zJjUKfhytrzsJE9PWKniqqJ42F9QZqmK2M6n1Q
	55IwjtE7NqyGf/XmXsh8Pajap8NXIBISNJTD2jWWfqNMrg+p1vB+IduLkmbe9KibMisz36FYjpv
	IzX52iK85yw5BVn97NjaWPYkhLypjJSK+Ib1haCzuT2eKhu8h4YWyDgZLYONtS8VEWi6mnnZHLh
	ccFiapKjme54w==
X-Google-Smtp-Source: AGHT+IEKIMTElX7KJAQqLhdb6vhLVglED2tCrt5CH/eubbsi+72iNDzig7F2cx56rJR5h8jSjkyqnA==
X-Received: by 2002:a05:600c:6098:b0:479:1ac2:f9b8 with SMTP id 5b1f17b1804b1-47a8384c0e6mr54629115e9.21.1765450217690;
        Thu, 11 Dec 2025 02:50:17 -0800 (PST)
Message-ID: <67d26857-6b7a-4b5d-8bdb-c973885926a0@suse.com>
Date: Thu, 11 Dec 2025 11:50:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Current Eclair analysis
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <7744f9e7-17da-4f48-837d-8fc087899af5@citrix.com>
 <c0d5cf8c-cb57-47a5-a989-f65677e565aa@suse.com>
 <dab08dfc1de25d7573c401ecad8a1f21@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <dab08dfc1de25d7573c401ecad8a1f21@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.12.2025 11:08, Nicola Vetrini wrote:
> On 2025-12-11 11:00, Jan Beulich wrote:
>> On 10.12.2025 19:14, Andrew Cooper wrote:
>>> The Eclair step is now the dominating aspect of wallclock time.  While
>>> the recent changes were a step in the right direction, we need some
>>> adjustments.
>>
>> One other question, related to the "dominating" aspect, but not to any
>> of the points raised so far. Can scan results possibly be recorded
>> somehow, somewhere, such that upon re-scanning the same tree (pre-push
>> test followed by post-push test) the identical re-scan can be avoided?
>> And perhaps even incrementally - if only .c files change within a (set
>> of) commit(s), only re-scan those, rather than everything? Could be
>> extended to .h files if dependencies were properly taken into account.
> 
> We support incremental analysis, but it requires non-trivial changes to 
> the current Xen integration. If someone wants to invest time and/or 
> resources in it, I can support the effort, but it requires a fair deal 
> of rearrangements of scripting in order to avoid losing information

What about the initial part of the question, scanning the exact same tree
a 2nd time? Is that merely a special case of "incremental", and hence would
require the same amount of effort?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 11:02:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 11:02:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183881.1506457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTeR9-00005V-HQ; Thu, 11 Dec 2025 11:02:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183881.1506457; Thu, 11 Dec 2025 11:02:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTeR9-00005O-Eu; Thu, 11 Dec 2025 11:02:19 +0000
Received: by outflank-mailman (input) for mailman id 1183881;
 Thu, 11 Dec 2025 11:02:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTeR8-00005I-Dx
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 11:02:18 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id daa0a1da-d680-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 12:02:16 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4779adb38d3so6552035e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 03:02:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a89d0e34fsm11675465e9.0.2025.12.11.03.02.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 03:02:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: daa0a1da-d680-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765450935; x=1766055735; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IZWMqVWenxDjosYfCNhiES1QudgsN2fStVx6QKswj+s=;
        b=aZPbIXFMO+AjbGJJcD04Q4TY8IZXB94CKRkU9BFsk9PtAzca5upiZUPlGnUeIK4FWh
         gZswoPgLtRfzeR46eJ/zQ9IlEbA7cWoYJogrjLPql6HceggfHB/GNjazwHon8fGxRdUB
         OV/QTIlGv1TxSH1S7CV4xHzSNOfs5vEXSWNhyXZdvK3/jKg+3ANlXET3bkQmVY8VrV6o
         htC1vNYcZU0IeTO22Sdv0eGvdFd50xJ925FnnAG1RzskPgObqkx50pmV0XPj58Mp9Bal
         BRz4mMx97mAJ6GcLMVaM//vLg0NcKiUzbMepTYHCnVbuDlllqHXjyQgnoC3fapTZL/b4
         9cRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765450935; x=1766055735;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IZWMqVWenxDjosYfCNhiES1QudgsN2fStVx6QKswj+s=;
        b=hPTWMZ11fCLB+/4/VpMQNlNma0C56Ce3FzvHUYq5HXfa1aBR/3Ht9Y6/5Bwien8yj6
         2twBdMv+qzXBKYlGNJIS2H0ux6bW0kzFjrY+HjqQzSHKTlseKNKmrebovl69RqhotCXU
         njKrfie8Ha5FCv7fxTy63zG7EB9RWZUM/qfk6WyUG97InRwJ+P0GmxC+zddpeX/XVFVS
         zseuRn24bUB7abSIjE4IwMQxdJQbBkvtnS0g/Wt7d7fUbMFGorx1H3+y79sJ+szXVJCC
         NGW8QMm9FM+pN9EiYNBQ35abYbqZZ4Obox4pSFaYntLyBX6LVBGSJBSoDSJJEARXLnL7
         Yt4w==
X-Forwarded-Encrypted: i=1; AJvYcCUYwuq3Pf9ZXOJMhKCaXRESdXEFv2VVMOoiVUPRVq0HUJXuySToO/1iOTInXjLu8Nn3A6GZtApr69c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZy4BpeJiig3u2Nazw9UWWPJSO8U6EO3Jw+Cu06jeTObITtANP
	QsBY0pQ8jdSIaw0Ae47k/cGBv5Dnmm9xR8CV+i1mD9VWGMRZHTcRmXnNhBKia96SZg==
X-Gm-Gg: AY/fxX7dGANWIdJnhu9XcyT+iknyonLl3OwskV9sN5k9JjfTapub1+zzBIMkEA3PZpH
	yAMPEtesIeupqj6EnY2gK9jozGqJlba51blOGsadg08biaSvhVz9Ua0FyHyQI7EBpWss/N7sH2V
	9UGZhuFKZgANeJYHym0a4hhrYxxhFBX1/X1Xl0qJQhc7qTRhieWjIwSn+y5F6iV/iuEU0q/69mc
	Rbl5At1QH7PJjaAWVJdZ5yJVRTrUJ1OIy3PcXzZNakz2W2dAOaVFx/NBFVVmKm7mG/q4o2Ajem7
	BMrT5SMdbGR8gzr33H2of6KBWo5m/8M4YKWnypqJf3v7U0I6RWkqySbfh1ORPHciH8x64+8x/dh
	IfvZ/oIReoFzN0qIu61oqrrmXJc/KN4Dlqo3Oio1aEf1g9nOz0KCxeV4yIi4ahTeSxGQpYlc79N
	GvwUAumZnvSePFx0LLzuPkl6F/ypwr2KBY0FLuGuJBE//ksXpBczIdiDfLdEFQVV8ohtYNt1Tb3
	04=
X-Google-Smtp-Source: AGHT+IFpHD5cdhCp8Z81Rz2Yd7LTHOUGi9B9EUgPqfN4ck7wysCwHzahm6gMJAQG+basb8hgxEigFQ==
X-Received: by 2002:a05:600c:45c4:b0:477:73e9:dc17 with SMTP id 5b1f17b1804b1-47a837eec21mr56833495e9.35.1765450935467;
        Thu, 11 Dec 2025 03:02:15 -0800 (PST)
Message-ID: <2c84660b-4333-42f9-b178-aab72be9a40d@suse.com>
Date: Thu, 11 Dec 2025 12:02:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/riscv: add RISC-V legacy SBI extension support
 for guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1764582112.git.oleksii.kurochko@gmail.com>
 <f4e4dc9beef4618ffaabe1c6caec3e10cf78fd5d.1764582112.git.oleksii.kurochko@gmail.com>
 <c3d2a4c4-f591-4bff-b978-18b8c09cf512@suse.com>
 <c1ca8efb-3e17-45e2-ba90-a6f49616bb51@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c1ca8efb-3e17-45e2-ba90-a6f49616bb51@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.12.2025 11:29, Oleksii Kurochko wrote:
> On 12/8/25 4:05 PM, Jan Beulich wrote:
>> On 01.12.2025 11:24, Oleksii Kurochko wrote:
>>> --- /dev/null
>>> +++ b/xen/arch/riscv/vsbi/vsbi-legacy-extension.c
>>> @@ -0,0 +1,37 @@
>>> +
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +
>>> +#include <xen/lib.h>
>>> +#include <xen/sched.h>
>>> +
>>> +#include <asm/processor.h>
>>> +#include <asm/vsbi.h>
>>> +
>>> +static int vsbi_legacy_ecall_handler(struct vcpu *vcpu, unsigned long eid,
>>> +                                     unsigned long fid,
>>> +                                     struct cpu_user_regs *regs)
>>> +{
>>> +    int ret = 0;
>>> +
>>> +    switch ( eid )
>>> +    {
>>> +    case SBI_EXT_0_1_CONSOLE_PUTCHAR:
>>> +        printk("%c", (char)regs->a0);
>> This is guest output, so shouldn't use plain printk().
> 
> I think that I don't know what should be used instead. Could you suggest me something
> or point to the code in other arch-s?
> 
> Or do you mean that guest_printk() should be used?

No direct replacement will do what you want, as they all prefix something to the
string passed (which isn't what you want). You may need to buffer characters and
emit them in batches (full lines unless overly long). For x86 see hvm_print_line(),
but I think Arm also has something like this.

>>> +    default:
>>> +        panic("%s: Unsupported ecall: FID: #%lx, EID: #%lx\n",
>>> +              __func__, fid, eid);
>> Please don't. domain_crash() may be okay to use here, but crashing the hypervisor
>> because of unexpected guest input isn't okay.
> 
> |domain_crash()| is better. I also considered just returning|SBI_ERR_NOT_SUPPORTED|,
> but it wasn’t too convenient for debugging which FID/EID the guest was called,
> so I started using|panic()| instead.

FTAOD - domain_crash() is acceptable here while things are still under development.
It shouldn't stay like this in the end though: Guests should not be punished like
this for something Xen hasn't implemented.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 11:15:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 11:15:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183894.1506479 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTedT-00024r-Nb; Thu, 11 Dec 2025 11:15:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183894.1506479; Thu, 11 Dec 2025 11:15:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTedT-00024k-Ke; Thu, 11 Dec 2025 11:15:03 +0000
Received: by outflank-mailman (input) for mailman id 1183894;
 Thu, 11 Dec 2025 11:15:01 +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 <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTedR-00024O-MC
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 11:15:01 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a1ed6326-d682-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 12:15:00 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-47775fb6c56so6798305e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 03:15:00 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a89d0e34fsm11969255e9.0.2025.12.11.03.14.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 03:14:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a1ed6326-d682-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765451700; x=1766056500; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hJ7CBsOyxvfGMpeVqKq+dXvv9lVQvXeRuBU8swUImrs=;
        b=JScMjsbr553BJOPoeUyMki+z663NhFFZPBD82GmyhZckmqxBI6ZA//Rb+s9Nzghk4u
         DJaneOnl4LP0coCW0mThxK9eZx6zWvi8FhO9EyXTc3z5FoxRDyMzUH/US//27X+S7gE3
         8VSFnfQsRCo5Yqxw3ouVeO6Gkpd7nFV/yEtituQ/t19zrlHrRgxNNrQ9NJ6f+KSr7v6Q
         Mw6n8JM2Ci7d9yfbCk9ZKU3Pp9Bficz2WNZiyCQFkK8jmetceeXU1GQvnji4umpktRWC
         cksTNYMcUrUKoc+U1hWe+8RO0lSIx63k9pdYdTeiKCmwjH3xQyUQ0fBTSlWGbqp1K2hY
         0AIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765451700; x=1766056500;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hJ7CBsOyxvfGMpeVqKq+dXvv9lVQvXeRuBU8swUImrs=;
        b=bgw21oK5OmpXTYU0+fAaU04UWUjhqXIZLx0uSAm6abXS2Bch1MWIhxdx7y2m0cjZv4
         4dDD8xRFhuutSEBZ59t0DtV+2gNhG7w9yRW2Y83EZOgdzsVSDio3QLeuiGu77cKqY6b0
         N7lNqVPZdQpWL2G/vEl7p4Iqj3LskuABnkqIwhG3oA35Ejl7B4SX5wN8aQK1bwVEZIJj
         1zYau5fQqZ/3bC1IrA2104GygEMhktfI9EQvK/9H0f5pw9XujyFK4XWKw536BpcK8knl
         DVtf3jfue/TtMTRpwJjka+KsqVar0ZTntY/b8KSEtRMDtlLpGfbtcKx6CSit9mhyxS2R
         LlyQ==
X-Gm-Message-State: AOJu0YzVzsMIyNw7kd/2GDGVEkLgVIVmX2O0APBxfq/7S2dD03ErWxAr
	yr8JRx3tpnBFROasbiwor/BRiBj3IDGJhjd8regY5EMJFbE4ZZlutzgRzhndHLH3aw==
X-Gm-Gg: AY/fxX4u9/02b/rosl6wRAGTs3h4hCBFz4KK4+JXhtkg68osqOFArYV7IH3m2xBNPmp
	fOVJeAfAp3Xk/ZQqYl9khPnHfOaSTYnvcc6TfECpJMBMI+hM+sjVhmPcKbOf2KOl9BQjl6BmQIQ
	PDpQTu3MFlC6ghoZaNdBVL3uCDbmEt61a8oZBDWFcG8as3UOIbF4J8AEKN9B8O+bYVikjbKqzE1
	QzrtdT26BcnsP2FFclbR2bDFRXrmuBnUMy0Ol6L7nJjDwBQP4kKkunPOySNjMolLqmn+/wVY9Ge
	+BIywfjDCF1pM4nr91ywHGtLHP5tW9wfENndOPiaof7cmr95fIRTVPtX0LiHRwvswgtltXEPob1
	0wFKDkAQDqkDFfDLGKBoxHXD526x2J5rQ6c3fWv9XWXNtWOksonNX8GoHFWTRUsSRk5ho2sDaRz
	X5ruebF0PjK2ydi6m/wpnYkMRWopQpBzQ4Bw6F42M+kgpGrUjk2AwPtu81PZ2f59R61Nhs77IxA
	+c=
X-Google-Smtp-Source: AGHT+IEOHzqPSer/rx4niglt5SXStyabJWh1CEjpno5Jvm9x1md36I6R4A0Z53p1p8X53VRxD48F/w==
X-Received: by 2002:a05:600c:4693:b0:471:989:9d7b with SMTP id 5b1f17b1804b1-47a8378cd86mr57507255e9.21.1765451699549;
        Thu, 11 Dec 2025 03:14:59 -0800 (PST)
Message-ID: <a5361a51-128d-47e0-b5ed-58bfd0d9e8ad@suse.com>
Date: Thu, 11 Dec 2025 12:14:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Strange symbols_lookup() behaviour in test-symbols on arm64 CI
To: Mykola Kvach <xakep.amatop@gmail.com>
References: <CAGeoDV_YS8hV2+FXVgXxvHLw=MQOAoJZwrP1Ypw8+ZUjKB9GSA@mail.gmail.com>
Content-Language: en-US
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAGeoDV_YS8hV2+FXVgXxvHLw=MQOAoJZwrP1Ypw8+ZUjKB9GSA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.12.2025 11:29, Mykola Kvach wrote:
> While working on an arm64 s2ram series for Xen I have hit what looks
> like very strange behaviour in symbols_lookup() as exercised by test-symbols.
> 
> The series is in the branch referenced at [1]. All patches there except
> the last one build and pass CI; adding only the last patch makes the CI
> job referenced at [2] start failing.
> 
> Note that the tests in that job are built without CONFIG_SYSTEM_SUSPEND
> enabled, so most of the code introduced by the s2ram branch is not
> compiled at all for that configuration. That is why I initially did not
> expect my series to affect this job.
> 
> To investigate, I tried to reproduce the issue locally. I downloaded the
> xen-config artifact from the failing job [3] and used it to build Xen
> with my local aarch64 cross compiler. With this local toolchain
> I could not reproduce the failure, and the resulting .config changed slightly
> compared to the job's config. The relevant part of the diff looks like this:
> 
>     diff --git a/xen/.config b/xen-config
>     index 057553f510..44dcf6bacc 100644
>     --- a/xen/.config
>     +++ b/xen-config
>     @@ -3,11 +3,11 @@
>      # Xen/arm 4.22-unstable Configuration
>      #
>      CONFIG_CC_IS_GCC=y
>     -CONFIG_GCC_VERSION=130300
>     +CONFIG_GCC_VERSION=120201
>      CONFIG_CLANG_VERSION=0
>      CONFIG_LD_IS_GNU=y
>      CONFIG_CC_HAS_ASM_INLINE=y
>     -CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
>     +CONFIG_GCC_ASM_GOTO_OUTPUT_BROKEN=y
>      CONFIG_FUNCTION_ALIGNMENT_4B=y
>      CONFIG_FUNCTION_ALIGNMENT=4
>      CONFIG_ARM_64=y
> 
> So there is at least a difference in GCC version and asm-goto related
> Kconfig options between the CI environment and my local one.
> 
> After that I tried rebuilding inside the same Docker image that GitLab
> CI uses:
> 
>     registry.gitlab.com/xen-project/xen/alpine:3.18-arm64v8
> 
> When I build Xen in that container, using the same branch, the problem
> reproduces in the same way as in the CI job.
> 
> Even more confusingly, adding extra prints in test_symbols just before
> the calls to test_lookup() makes the problem disappear. This made me
> suspect some undefined behaviour or logic issue that is very sensitive
> to optimisation or layout changes.

All symptoms described make me suspect you're hitting a problem we're
already in the process of hunting down. Can you please take [1], make
the small adjustment necessary to Arm's linking rule, and see whether
you get a build failure in the case where right now you get a boot time
crash? Of course no other changes to code or data layout should be done,
or else you may observe false negatives.

Jan

[1] https://lists.xen.org/archives/html/xen-devel/2025-12/msg00390.html


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 11:15:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 11:15:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183900.1506490 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTedy-0002WN-5S; Thu, 11 Dec 2025 11:15:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183900.1506490; Thu, 11 Dec 2025 11:15:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTedy-0002WG-2P; Thu, 11 Dec 2025 11:15:34 +0000
Received: by outflank-mailman (input) for mailman id 1183900;
 Thu, 11 Dec 2025 11:15:32 +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
 <SRS0=pO9S=6R=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vTedw-00024O-JE
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 11:15:32 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b395a1a4-d682-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 12:15:30 +0100 (CET)
Received: from BN9PR03CA0142.namprd03.prod.outlook.com (2603:10b6:408:fe::27)
 by CH3PR12MB8902.namprd12.prod.outlook.com (2603:10b6:610:17d::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.7; Thu, 11 Dec
 2025 11:15:25 +0000
Received: from BN2PEPF00004FBC.namprd04.prod.outlook.com
 (2603:10b6:408:fe:cafe::3b) by BN9PR03CA0142.outlook.office365.com
 (2603:10b6:408:fe::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.15 via Frontend Transport; Thu,
 11 Dec 2025 11:14:58 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN2PEPF00004FBC.mail.protection.outlook.com (10.167.243.182) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Thu, 11 Dec 2025 11:15:25 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 11 Dec
 2025 05:15:25 -0600
Received: from [10.252.147.171] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 11 Dec 2025 03:15:23 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b395a1a4-d682-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EGBmKUUlgi4ZzmhzgdT08XM8jBkLbFTF2ENHuqjxzuEuE4pKScSQCrcdWfjyDHTKeqkI8KYBMPq5aa4aEBzjkqOydCnixm+LbJ9R8aGQ7DTZQ8GBgLcouKvpdKeIbems1UkXjtWL8iMc2cGtFoWsvvgH9Djmg3i+maenz+YzAdvu6TLGk7wf9SrUSTzgg/uazhKeqQtp9l5x7dj+fc++OaH16R2uHfiuAKP6SDxBOvtFIQXGDnZWghGYBHUpLS1n18lMHLWz4zaYlZBWtyHF1nt0t6Py7w3gTy/Lkrelrd0BYykTK7fhp7AAjnHPQV1QCfYURFzApHC4tNC4FShKMg==
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=t2Av4SsL33QvZiSQ7fmjZAOUg8EApb7foKL41TwP6xI=;
 b=M2mqxrwtfRypbWRawsoAx5cPBgL5tc1cZbibonrxpuvXag0/6d+C3WEeUu9DULc/GjBdR6ZBD7cpa+F/tPfBlPrwsXqUS+lDvdVg4v1EAnPHv4HRiA/E2tOoUohLcVQ6uBRSgWG++nNYO4rAhfjmLnlkh8/TZKKLykoUNtKLPUkADx0/LB9VN2d1pSTXGVhfJT3/5xt4elj8MXSWy3xCPDajJ3MwfG25TBImFVFVgxZbb4mXhAnHFQo6GxZjsKpRTD1lmwx26iowRI/KYZvWnZnEJl00kf8ot0z8OqQMhyOblhw135jbe5M0kwqTSKNfl/ZC1Xuqwp090buVprJw+Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=t2Av4SsL33QvZiSQ7fmjZAOUg8EApb7foKL41TwP6xI=;
 b=B68lFICkj2a64GMVwY/Xg57ddkTt421QTEcLUyVJoAfffAYUm6N5PEbJTkJvdGVZYizMHCqIRmWGaT4i67CUpco+zc8lL/rGfqBW9Nuqru+30cEYEWG4FKqNdunWJJ4JRc6WLDj4YZ1saUorI/bdFklR2myIb+cQ3z0Xv0E6k8I=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <b687a13b-5d46-4cb6-b927-59d1917f7908@amd.com>
Date: Thu, 11 Dec 2025 12:15:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/libfdt: Fix comment following treewide __ASSEMBLY__
 cleanup
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>
References: <20251209132509.2095158-1-andrew.cooper3@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20251209132509.2095158-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF00004FBC:EE_|CH3PR12MB8902:EE_
X-MS-Office365-Filtering-Correlation-Id: 96d32b03-d5d6-486f-e6f6-08de38a69587
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UHY5Kysrc3ZJYnZRT1VZSlB5NHZUQWh5TW15bDhOZUxmbVFFQkpoQUdvZ0VS?=
 =?utf-8?B?ZnFkYzJlMis2SE9RY2JYVDZkZWU4eDM5WHhqaFQ1NkI5N0ZqRDhLWGVRRFdl?=
 =?utf-8?B?NEx6SFJST1RVZnhHUlFXRHFJQmZFRlc0Z3QwNnhUcVpBajl5S0VSazRlUUV2?=
 =?utf-8?B?SVJWamRibHdLWFkvdUpGQmZDbHIvY1lIY2k3OUhZd1YyOXFuamNzNVVXOVJo?=
 =?utf-8?B?cTJ1Uk4vbFVNelNUdTY0aVNJcFBvOHllZWt4alVrbmlpeWhzd2hHOVZmWHZT?=
 =?utf-8?B?NHk5R21WcDVtQi96Wm9wRnI5MXp4VjF4L2ZXZWwwczdEREdobG1WM29FNGlq?=
 =?utf-8?B?Ym9ORExtQlRPcEJvbTY0ZUVQc0NQc2piK2lUa0hibnhBN2dPN1BsbTFVWEg4?=
 =?utf-8?B?dTZUaUNZRGkvMzJ5MUlWQ3Vabm83TG1vUEdaWVg0aFJOejJqSUtrbUZFTUsx?=
 =?utf-8?B?eU9EWDIrM2xqNEE0K2pXRVI2cVVodDg2U0lSNG1tQlVKaWRST1VMbmI2MU5Q?=
 =?utf-8?B?R0tLVEc5cTBic0FHTXRuazQxSjQyN29laWZmZDRQNWdDVEFCK3lzeTVnK3RV?=
 =?utf-8?B?MEpsZWkxdjhoUVQ4MUlYOHo2Tm1YNWd1VGVxQXZmckVlc3RLeFJJNjZ3UEFv?=
 =?utf-8?B?RDdhanowSWQ4NE9LamNLMXJ1ZGZtMkRFV1JSYVl0R3RWbEErRVovR1JML2NP?=
 =?utf-8?B?cWttbUVBdHAzd3V5SXp0OUswU1lWN0hERldneVVzRzBBeHVHVzhTOVZMMmtu?=
 =?utf-8?B?eGJzUUJjN2d5d09jbE9LY1lVVDYreWZOK20vd2F5RlNBeHhsdmtNQ3BvUDds?=
 =?utf-8?B?ZmRkbjJHOUtIMUhpZDlaMTdGMmV5anhacjhsUDc5Qkh2SXB4ZUF1YlZEQ2hv?=
 =?utf-8?B?ejk4WFNYekZyVzBhZkFWeFhjYmhEeG1UbnR4eUhWT0R1QlN2UzhxeVdnNzd3?=
 =?utf-8?B?MVgyb1pjTHJuQUtUNzVFcE5vbW56NEF0S01xay9xclR4UlEvb1hwcDFKQUpI?=
 =?utf-8?B?U3V4a0h0M3JBbTRkL2x4SEVjTmFBbERYOFRmT0EybUhyYTIzdXZmT1dQZHpt?=
 =?utf-8?B?U0ZQd1p5L3M1TDB5THd4ZzNQUjBGQkJ6WkhTZVliRmJXL20xdWJYbDFPSmVi?=
 =?utf-8?B?VTZwTDg1c3dFUVlva3ptYy9uUnlXL1l0dTJtTUFSNjNtQU1ablptUjNWZEVv?=
 =?utf-8?B?OEJxcFJNZG9QeCtCOWV6WjJzZkRLSnRuZUtYc3dtN2pIQUFWQTZIaHk3eXhE?=
 =?utf-8?B?Wks2UWpnV2p3UkpoWGFUNDdJODJSL2RleUJIK1ZiMkhYVlVoam8ycWVhLzZM?=
 =?utf-8?B?UjhzQ3RXVG5MZjRzeGd3TDBlNS9RRVdOMlpNbmVtalFLZk5YWkJmRnRjdE1t?=
 =?utf-8?B?UG5GK0VGMzFUUitMcXNWVmU3bzUyT2JkUitZZk53R09tWlhaUGcrbnAxSFZH?=
 =?utf-8?B?aHpJTFozcXpLNGVOaGVzbGNpaUZkaDBwZW5IaDBLVStOQklrRHQzc3R5QjB3?=
 =?utf-8?B?SVVSMzBCTG1RSE9lUXFiR0VvSThpWXlMUGY3Zlk4QS9zR3FtYXJObUUydzF0?=
 =?utf-8?B?Z3lZOHovYjVhanBaYW96dldsZXRwOUJoOStjdVVYbkRJc0pZREh2dnFLOWVa?=
 =?utf-8?B?K1lnWms4cVRCYnF1RjZVTzBLUW1teEZMSDF3VUpLa3g4a3c4aHNFb0ZpZHZ3?=
 =?utf-8?B?cXJXUEJma0NzYUdxTzdnME1DUU9rdWhiUVk0eUlkMTkyZUZzdENlZGJOdFlY?=
 =?utf-8?B?azIwdjVQVS9uZGRpcERnWVo4NzRhK29Kb0p2OGlDZTNQQ3phVVJnK2doWHl0?=
 =?utf-8?B?TXBvT0pJVndBRU8xVzk5UlorNUQwOVg5QmIrakVSVUZMbFh2Q2U2anBsUGI4?=
 =?utf-8?B?ZHhqajZiYlVpQkV6LzlzWm9EdW1FVVhTSDZQM0dIekNqRG1abzlYZE9DT1JI?=
 =?utf-8?B?T2Zpd3k4SjU3eGNtdFFDSFMxMDZ0Y1NKMDdocGV3V1YzMFVKYnBBYTRHV0ta?=
 =?utf-8?B?SmxOV2xjcHc0Tm5sSnpJS2FDNWRwU3Z6cUdOK2FaVVJHakxuNjBwbVFVS2Fj?=
 =?utf-8?B?UU82S0ZWOFkwcGY5SUM5UVdpTWQ0QzAyVE04TWd0b1EzZlhUcGtFVTAwSnVm?=
 =?utf-8?Q?4S3Y=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2025 11:15:25.7207
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 96d32b03-d5d6-486f-e6f6-08de38a69587
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF00004FBC.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8902



On 09/12/2025 14:25, Andrew Cooper wrote:
> This one comment didn't match the #ifdef symbol, and escaped conversion.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 11:19:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 11:19:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183916.1506500 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTehG-0003Qb-Jf; Thu, 11 Dec 2025 11:18:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183916.1506500; Thu, 11 Dec 2025 11:18:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTehG-0003QU-Ga; Thu, 11 Dec 2025 11:18:58 +0000
Received: by outflank-mailman (input) for mailman id 1183916;
 Thu, 11 Dec 2025 11:18:57 +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
 <SRS0=pO9S=6R=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vTehF-0003QO-EJ
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 11:18:57 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2e65e2eb-d683-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 12:18:55 +0100 (CET)
Received: from CH0PR04CA0086.namprd04.prod.outlook.com (2603:10b6:610:74::31)
 by SN7PR12MB6861.namprd12.prod.outlook.com (2603:10b6:806:266::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.8; Thu, 11 Dec
 2025 11:18:51 +0000
Received: from CH1PEPF0000AD81.namprd04.prod.outlook.com
 (2603:10b6:610:74:cafe::3a) by CH0PR04CA0086.outlook.office365.com
 (2603:10b6:610:74::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.8 via Frontend Transport; Thu,
 11 Dec 2025 11:18:43 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH1PEPF0000AD81.mail.protection.outlook.com (10.167.244.89) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Thu, 11 Dec 2025 11:18:50 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 11 Dec
 2025 05:18:50 -0600
Received: from [10.252.147.171] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 11 Dec 2025 03:18:49 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2e65e2eb-d683-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=K0ZiDImPGVedUVVib8b6tCSQbGtoZ5zFVMgwN1VQABjZhVC2pacllxnrX+klkTnpWubZBUmfqnELGCnK1mNHkXWS8pd+RfAAgqt8nzhnLna/hJw/A/EYvjRyEmTxM/DmikOMcN4LOKr/2N+I6aJfLT4n1Tfmfoc4Id3riJv2zqTJcFz3C89o3YxG6BV1HkWrVFsGK+JFuDKMbp78IEqMdhUkFlN9NjtWyR/FoH4DVB+ZiXNzm2BAXp99uLn0X1XuvivD0g9XkTRCkekm66fXc+TIHvZofjqYXmJtOHDsbSLdj3+oyXDNLJTrAZA7AaCUWa1fztZjFJu7iv1+PW6gEw==
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=t+PJLbrxb8Mnsh35fCCRUAZoERxo5hSwy9Nf5x879Yk=;
 b=T1zwHHFoRS2i5JUzIcPxYi507EYowUtdh7Jpin0yyj4x9Yppc+itoofsRxfpd6mdwG/neA8tfx3SUOcUqRQLwlRDaqcXaBF7A0fO0j/NVYorps6LtZm4uZTxX+2By+TsbRATvaqLd3evQEg0z27KeVo+BbFm8YsZn09mS7SYwbDcullCg7+IKInlevJvToDk+hwD70Xu+3wnHrUp9RsOxw4uKrlU97KIlm/ioGzA3X2jWkqhFfvWu2aanMaN9NZZ5TordtUKjnPNKZ9xAptllJSeJyaVKTbbuZLTNuXX3+bueErXZyGWM53IPgRpLwnjIqhElfWoCqZtWnVKaLq/Yg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=t+PJLbrxb8Mnsh35fCCRUAZoERxo5hSwy9Nf5x879Yk=;
 b=LRblCR2sqCfk1DYWdgVPt2S09uNQvVMQuQZtWtxBMfCLr61P0KSjUreiby0pYKGtDgs/ayISDJAOIAbVGzMjFAkp1JCH3CfPcE7EdFkTgRkkc71iCMt5jooZkmO8jOOJZSg+w7fbXWczvkRZQxeIev3AVHpMyVz9bPYm3NeI08I=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <ae501ac4-ce18-4c0d-a607-6ff8e4178ca4@amd.com>
Date: Thu, 11 Dec 2025 12:18:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] Arm: actually put library code in a library
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>
References: <f46f89f6-242b-4433-958e-36088e567ccd@suse.com>
 <fc35728f-0fcd-4e29-bbc5-9410323a7a64@suse.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <fc35728f-0fcd-4e29-bbc5-9410323a7a64@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD81:EE_|SN7PR12MB6861:EE_
X-MS-Office365-Filtering-Correlation-Id: ed56e9ec-e5e5-4d48-66a4-08de38a70fd8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?U2xZbVYwUTlHZktlRkVRN0dielZsYzZhc0NQdnZjQnNsbnNOVmNSdEtlQmMy?=
 =?utf-8?B?MHNzdExRQVYwbnlXREloSVh5dERaVlBqRWlTVXZFbVZJeE9XT1VOa1I0MnNB?=
 =?utf-8?B?N3ZlSy80RjJjZ3A2U3lFMENsUXZUUTRhMVl3N3dzZCt1SWhVc09IbFd4cFlh?=
 =?utf-8?B?MWFhWktqRnlUQ3IvanB0TThRbmlkaGxyU2hFQUl6STRvem9SRjlnbWNMQTB0?=
 =?utf-8?B?UXJOM1YrdGFmKzVUbllQVHhtcEdHUS95eFdPd3A3MGRrS2laenVROGVpT2l4?=
 =?utf-8?B?bndjdmNJREN1OVBCU1l1aEl1Q3p3dHZjNGdZaUhUOWlGVDdLYkJrWlA4N0tE?=
 =?utf-8?B?NVVYWkxGY2dEVVV6MWNBUGduWGZBT3BkOXpmSHZOV1gxUGR2eGNLZnJHaU53?=
 =?utf-8?B?dUdmc24reG5HZHg1VjIvRlVTcjcxYUVhQVJDc0k5UWMrV0JhUmpUcFIwcENZ?=
 =?utf-8?B?ZmxvYlVIb2NxZCtxMEt6WFp1ODE4T1QxWWhyZlByVXF6QWZpdk9jTnV4YTZs?=
 =?utf-8?B?eGFaV3hURUEzVjV6ZUJlR3ZUcVR1YmJvRUFpanc0c3pRc1duTWIvN29QWk1p?=
 =?utf-8?B?T0xtR0NqRlpYdisvUXkxVldDZncyMGd0TUtnRVV1bllrUGtHRFFLQllMQmox?=
 =?utf-8?B?ZldEdUE0bjZucmJ3MmlyVHdBT3dKMWR6emN0a2N5TzVIWkV4OVFaZXBpZjJ3?=
 =?utf-8?B?Z3QvMU5CRTJpbkI5Y1VyYTQrTGxVSThtVmpHQjd3bHBXbFJ1OWpDYVMveW5o?=
 =?utf-8?B?ZWVTV056clhiNGFXWXowdVNwSEs1eStlVW56azFWWlRYL0tlcWJVUFc3eUJr?=
 =?utf-8?B?YTRwaGpncjBKazJVZldzYWtQS1dMZ2c2MHlKdUlPS3VVS2l4aUR5bEhPZDIy?=
 =?utf-8?B?RldpVHdtS2NwTjZwbGZyUXVjeWMyWGd6NnRnMURpd1VrS1BMRFFER0VkNHdQ?=
 =?utf-8?B?UXBObGVONXVlTEtFZEVrRzVWMW5WOFdrQmNscURLNEUvT3YzbW9UU05ESU1D?=
 =?utf-8?B?YkZQajFabys1R01KaG85VVJqQStDV0FiZVd2ZXJaWWkxS00yVzVvZkJEOGlm?=
 =?utf-8?B?UXdMWDhUazYwQnZ1aStzT3U0UlBpd1lpQk5KQ2JBL2FOdTBrN21FNE9LMksw?=
 =?utf-8?B?dmlVWWtERVRoT1JJNDVlWXBDMUxtTE5hdmZyUlRlYWtDakYzUW5DdEpYYnJw?=
 =?utf-8?B?MXZkWE1nQ2xKVG1iNW1pZXNRVUtsR1hrUVMySytyVWlxSHdSOVVZd0laZndU?=
 =?utf-8?B?NS9pOE9kM3VZQkFWUVBzRzFEbzR0Yk5ZY1hxNGV6cFEzSXZNK0NmbHU5b3JR?=
 =?utf-8?B?dG1NcjN0TUhra0d6Vi9BVTU2cVd1UVJiS09SdzNrby96aFJydjAzRjdEZnlZ?=
 =?utf-8?B?ckcrUVlyRGdGNEwraWVCdThiY3VtbmtIY2VidzJvbFRGbzYveWNKWGtzaXIr?=
 =?utf-8?B?b2YvWjBlQmptTk9RdVRWUVhLK3J4bmZScmQ4NHl5ZG5NOWpaRFFSSFRZcUxO?=
 =?utf-8?B?SVEyYzk3ZUpWb3NFRlJTTVNhSUtzZlcrekk2dnJsTkNPS2N6OGpRMk96bnd5?=
 =?utf-8?B?aGZ1Z2NWY0IyRGlycEJnRTB6bWcxVDhRb2wzN2tLYnM1N0VWUDNHbmZ4Y29U?=
 =?utf-8?B?bXJ3R1I1SzQ2MkdFN25Pc29wd3lOT2dPS1RhOVlUWWtjekRUZ2FsVVFJM3k3?=
 =?utf-8?B?VllDaDBsNDhrU3g1Ym9ZeVBzM2duNmJqR1pOREF0UmdVR3NnQmlhQ3U0bDc2?=
 =?utf-8?B?RlZhS2RFblJVTlZkVzZYYXVVeGpwaWVnVHFGcmFldE45M1kvK0Z2Nms3Y1JK?=
 =?utf-8?B?VDZkbnNna1c3S21ZblZFejRYMU1FUUhmUDBYamtpRkFLamhRUENqMVZhenZB?=
 =?utf-8?B?Q0RZeEgrUEc3Sm5EV084WjRubytHRkt1dTVyNEhIMU1yRjduazZWVFBWRkxJ?=
 =?utf-8?B?VWJFM3pEd0xyNERuQmR4cEFGc1dlVkNnM0hxbktCZjRTa1JhMmhCckxkUmxh?=
 =?utf-8?B?YW1WeTBScG5LM2hlSjJxRzdSOEtJZms4U0lwRSttMnBCZFNnak5VL1BFLzVI?=
 =?utf-8?B?RkswMU5SMGI1T3JIY0RkTmRRT0IzdFE1WFBMaTN2QkJNTTI5anAyLzkzdkZu?=
 =?utf-8?Q?8QwA=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2025 11:18:50.9462
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ed56e9ec-e5e5-4d48-66a4-08de38a70fd8
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000AD81.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB6861



On 08/12/2025 13:06, Jan Beulich wrote:
> Now that the build system supports it, build the $(ARCH)/lib/ directories
> actually into libraries, thus permitting unreferenced objects to be
> omitted.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 11:22:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 11:22:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183933.1506510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTel1-0004xD-4p; Thu, 11 Dec 2025 11:22:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183933.1506510; Thu, 11 Dec 2025 11:22:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTel1-0004x6-0n; Thu, 11 Dec 2025 11:22:51 +0000
Received: by outflank-mailman (input) for mailman id 1183933;
 Thu, 11 Dec 2025 11:22:49 +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
 <SRS0=81ZL=6R=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1vTekz-0004x0-Tj
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 11:22:49 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b92723cc-d683-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 12:22:48 +0100 (CET)
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by AS4PR03MB8256.eurprd03.prod.outlook.com (2603:10a6:20b:4ff::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.9; Thu, 11 Dec
 2025 11:22:43 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%5]) with mapi id 15.20.9412.005; Thu, 11 Dec 2025
 11:22:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b92723cc-d683-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jgO5tcuV3700cVRck17CoayPwYdTjyTuHbGY65V6oRD09rfY0MGE5ofWHPgLng8uWx9t80K2e0fYoHdPsqmOhNqqpYlRm2DV/kEYZA8+KLq6T/Tg6cHCz0wrx/jgjVV9mt/Gu1YxgTLdmQ2NqCRT04/zjJchcNpiySnCjUmoCYWr5kfk0VMpMn9oAhQduRQuX4iwDB2c+HbPcEWU+7BPpVX8cWbDM+Dor7vHTgEHr+M1BRVCy2LCVcd7N2vThpbbuD9Qj+AGrtJCX7CMYz5us//33ffL19WnXj9N3JpYffg1gt1/y+XLGdQNMGQKhchZS29N5hu6JEP6xCc/MFKvkQ==
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=NQbi58JXUzkDen+l0T90nYWviOnUj4sHZjCNCvpXQW8=;
 b=PzMX6dmyegxV6a75zqcRwbvQhbsQQjmiXG+br8AhZMXyI38H/01gJhftXSgeqD9TGuRJRVMR0ii78eQpydmIR3hmh7FUb8XyRv9jcSvuGjlEQvwituykD+B03NiDzGSEI5A3kOTnogI4SPOsLGQ2tZJjd6A4U5GZvlyTIYz0l3MtN9l0FhAGqjaIhf2uEfiMULFbV/605EOohX6rvSqzI8IKemqaAUlj1Ap8YSgzuu+FFZFxz14ZJMqPqgdVxUQpwKAE4l33k4hJ+LTKpkdgwbj2E/Ww1kz1YV9N9dKrELaiuo3TtfLlS8wc5zETccK1I/IZJmp1SaDQ5MdSKlJJNQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NQbi58JXUzkDen+l0T90nYWviOnUj4sHZjCNCvpXQW8=;
 b=pb0gUYje4T3v147LUDXNb2SuioSWyQQV8fn74nsTq1aHJ0iukH+oMYV7CESmEJiVfyMqM0Mp61bwf51OI8hPsvp2+LK9gV71ruWkxjbCFttY4njf3mnF0/qJrWMNUgo7MQ2HvWUjwY4agLMWPj3lwGFZjOAH4ZDYCNfTbiukPHCjf+lNz4D02TXbl8zNcmuF2ZfF4yrObNptL7IujKrfa8MHtb4Z/5yc45EZquRwrdk/oBJh/YlDfc01romMzR+pwwYxJG1RzUo8wS+uz9SvaKCVy8bB9Wm5RoTq3rSy8OOCHF6CqdoUretvpTOq7y+p8ViS5ufvZCeE7dYBmCibrg==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] misra: address Rule 11.3 for NextMemoryDescriptor macro
Thread-Topic: [PATCH] misra: address Rule 11.3 for NextMemoryDescriptor macro
Thread-Index: AQHcREbgd161cNZLPEqc4+KUMk5T6LUaVeOAgAAAj4CAAkHvgA==
Date: Thu, 11 Dec 2025 11:22:43 +0000
Message-ID: <9de12f57-e782-4ea7-9ee9-62114e9e709b@epam.com>
References:
 <78112778d6fd5f720f7102db7125c844b747a962.1761242341.git.dmytro_prokopchuk1@epam.com>
 <alpine.DEB.2.22.394.2512091651570.19429@ubuntu-linux-20-04-desktop>
 <alpine.DEB.2.22.394.2512091653450.19429@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2512091653450.19429@ubuntu-linux-20-04-desktop>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|AS4PR03MB8256:EE_
x-ms-office365-filtering-correlation-id: 0e17ed4f-fb67-4343-ceea-08de38a79a9b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|366016|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?NXNVakRrb2JVQ1pFMmNkUWdXN0hZanlkMHNFK25UWjNHakFoUGJXOHJMUVA2?=
 =?utf-8?B?L0Y1OHZOTVNmNnF3d0NmWEYvd0RFRXJhQjQ4M2hiTzEzK0ZkWWZCTGJNQTI4?=
 =?utf-8?B?ZXpxaDFnRHZXd1o3NGF6WUdXY1hNNEZwWXNTS2ExMVFLcmc3OTZMTGgyU1p4?=
 =?utf-8?B?T1VkWGNCUWhuV2NYbTkvQXJDd3BnWmdQNldRRXpqSW4vbVNhVXIyTk41QVdE?=
 =?utf-8?B?Y2w1NW4yUVRsZ3VXTlJHUDRtNHhXcm43Wkg4L0dRcmxRcjQ2RnBRaXZOZWJY?=
 =?utf-8?B?bmRnUW90enZOUzFsVFNBSXdTUlNxYVZ4bkJzdGtheWZQcklnNktBVjFHNmxB?=
 =?utf-8?B?TjJpTDR6Q0RQNmk2QjIzV3FoS0I2QjBYR00zL0IvNnA4QldqVXQyb1Vkdk9N?=
 =?utf-8?B?eXJHblRMTGw3RmxGM2plbkgyNnhaVVJvLy9tV0xtQVRieElpcVJYbjEwbjJG?=
 =?utf-8?B?ZTVxR3FwQ3lDZnNFbWpFS3dmZUJHanRscE1KNUlCbk1NcjF5YmZPOUUxQ0w5?=
 =?utf-8?B?QmI1dFB4WkZsVW5ud1VnRUJLRWRqKzN1QWxwUWMzWUozZ0J3NmdDWDJEbWw5?=
 =?utf-8?B?aDN4NmNDd0xyQ2ZiZjJpdThKckxmK0J3WUlYc0xFMzdYa05lYXI0SDIyWjZV?=
 =?utf-8?B?T3VuVnJyUTNiUlhGeDJkajhiY0ZJRWlGaVJ0dnBRSm1IM0JFWm5sZmNWM0Rz?=
 =?utf-8?B?SGx6NXowZi9ZaU5ubHZwdXFEVVNwRTlVdkpqcVVRTVJQZGJMWUl3Y0Jpa2tO?=
 =?utf-8?B?WllXTzN4d051S0JPRldrMVJPOWhKZ0pRK1J1NnMzK1VHNjdHeGhvYkdMWkJN?=
 =?utf-8?B?dTV4b1dsdVFYVFNucjJtdlQvTDV3NDRMUXZYaFYwdmU3OGU1SEM3dWRrNlVK?=
 =?utf-8?B?TFg5Tit3bUJiUlQwOTFWblpvSENzVHBTQ0tkUzVOakkwZllyY29xUzNqZWVp?=
 =?utf-8?B?QVpSVnBnSEVUZzE2Qjk0US9VYi94VzVhWnd0SFB6SEFBeTkvMFJjSkkwUHIx?=
 =?utf-8?B?ajNsT3QrNkt2a3lNaFE3S0dBSnhwSTFtbWJmWWdSV04rMkJsVC9HRUdYNDlR?=
 =?utf-8?B?MTh5ZjFHVVlSMFFOcHV4MzZKaHBVNWVYbDRVSXlXYWNjQ1owK29hUDhlVGt3?=
 =?utf-8?B?M3ZPQzlUdXVEbGIxazJCZDRCVXdLVGRmU0gwV0tNY3lJZGJ5ZHVCcU1KRm9U?=
 =?utf-8?B?b1BESzRERDFJZzFPUnVjY0ptYk5RWG5BS2RCakxJd1ppdzQwSHkwMW9aWHBy?=
 =?utf-8?B?Y1JWYm5ybm5LaThjR1dpQ3BhbjdDQWI4c0xxaWVYcnNBYnhWcG5IUXlkYk9q?=
 =?utf-8?B?bjIxa1lxMTBxdkRiaUN2eXJxVG9VbFFqbHFqbmwvTTRhRCtvY0c3OW4yNHQ2?=
 =?utf-8?B?SVNQeHZWL0IzaU1sNEI5RStVdDc5V0NnZXN6YTZtc1BFSmp3UksrYyt6UXc0?=
 =?utf-8?B?eXVFekhqdHp5aFpHQ05hWTVIekxEZzZpSGxnaEtsSXRQY2VGMm1pakNPOHBD?=
 =?utf-8?B?UmFyQitkUGx4UlJaV1lFbEZuWkdNTHBNSWl0REJOaGNMVjdaUUVLVUlBNHFX?=
 =?utf-8?B?dlY1TFhYVEFVOWJ0dE9VM1oyajY2cGh1Zm9lcnBwUVR2a1RGMmhxcWN0K2hT?=
 =?utf-8?B?ZEpuMnVKVk5JZTNJdGErZVE0VGpOM3NjQlNTRnIwdldmWFEydFUzc3NJM29r?=
 =?utf-8?B?bnBtLzZwbVNyeitFdWYyMGxhTTByWVljeE5qbDRLTkxyYk1PMVVTWTgzRngy?=
 =?utf-8?B?b1BnYm9JbjUvcktWVDFHRXRDNVlZMjhlTnRiV2lWS3JJRFhrYitEOXlJNjRk?=
 =?utf-8?B?MXpLZURuZVVjLzdNN2oyL0pqL09Bc05UcVo4UWRqd1NPMTlLUmNKRFFBc1Vm?=
 =?utf-8?B?T3NtaDV2eVovQ21PUGhneFNXaHVhZWpvUGZiblR1Z2N5c0pDUXRETDlWeTFh?=
 =?utf-8?B?T0N4dkh6Q0p0VnVOVjBaa1dhRTdOa2FiK3RsYmlpck5EcUF4Umd4WE9td000?=
 =?utf-8?B?TDRBVTI0Rm53PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?eWNpdzBCeE44K20rakR2ZmtpZXNheFAvM05sc1dFZ3lwSnhHYy9NZTJoYmJ4?=
 =?utf-8?B?Q1BZbmN6VnZ1dWllVXZaNy9PeVBCMTV5OHF6b3c3NGlIWjRHbjQwU0tFNlpn?=
 =?utf-8?B?TmFMaXd2QUl5M0RYakY1UHY0Q1JzOGo4Zi9qWER3Z00zMFFkZmo5QVpnL1E0?=
 =?utf-8?B?T0VXSmMrd1d5a3lUd1FubTZyOFYwVmxVd2RPdFhkOWdYSmVQa2Npa3pTSnVm?=
 =?utf-8?B?d1YxN0xnaWJDSThvOXMreUc1ZkZHMDhhQWN0SW1XdEJtVE9SSHNJTlQ2clA5?=
 =?utf-8?B?MmlGbEw4ZXpVd1ExNUl2enkwWVRnZnMyY2Foc1lyMExLc2I1ZnlmQVZnY3Iz?=
 =?utf-8?B?Umt6Z2RmbFZSRys3L2ZGaEthamVVR2g4c2pnSE1xZndOUmZpbE4rS0tuNkxm?=
 =?utf-8?B?KzlXVzgySFRMQ2t3QUx5NzYyUHhWbEc5NExVand4Nkp4QmtlSHhRVlBFbWtY?=
 =?utf-8?B?c01hemJ0VG9obzl0eWFGVzZXRmJrNDdvWUxYYnpSV0o1N1p4YWFTNjRIWkVs?=
 =?utf-8?B?eFc3TWV0TU1aMjVERm55UUZFK0hPaEFOYWpmYk9HWTE5cEVERTI0Rzd1NUkz?=
 =?utf-8?B?WXNTcU5NZm5yNGRpOVZBd0JoK25KQ2tMc3NJcDZRL0hESDFMSEc3Y1VIeGgz?=
 =?utf-8?B?ZzhCYy91MXlWMHpnWmZteG5DeGh0NDlTZElVRk9IOGZHVU5JdUF2T2xQdGs1?=
 =?utf-8?B?VWJWa0Q1VDNLayt3UmYwT1VkMElGVzhoV0creCt5NnR1bFFsMU0veFJOMHZ6?=
 =?utf-8?B?TGMreFlsMFZvQjVtd3gwUTVnUFMyblNJRmpJSHpURVV6SElTdGdpK3J5SDdN?=
 =?utf-8?B?czZ3OFR2NE1qVFovVlNYam9BdDZRRTBBbWpDU2NSUXYrOCtCR0VER2hLWVM4?=
 =?utf-8?B?dHR0a3lqVm1aRk9TSWV1bCtFLzVJT3VMTExTWnlZbEo4Mm1XZ1E4cFlOZkIx?=
 =?utf-8?B?ektoOTFmcmRGTi96ODFKYzBEaDVYaVI4SWpCQ0lrd1ZmcmRxS0lXRWlKaVRY?=
 =?utf-8?B?Y1VJeUVQcCszTzdJbmtacXgvUHlSdmlBV1dGRmQxdW9EWkJSdmJsZWFpOWdm?=
 =?utf-8?B?V1liQlBBcVBLVnpVYi9uZ3QvQzBmR0ZpbDhOY1BDdis3UU5FN2xVUW96cDcv?=
 =?utf-8?B?cDR3Y3ptNDJlTTBZcjBjcm8rNnphR0p5alAwNk1ybDZxWi9JS2c2RllSOHVt?=
 =?utf-8?B?UGxpOVAvUllEUzA1MUNiWExNdWZZRUNwM0hQdENvenMvSWh4OUVoTHRSYmV1?=
 =?utf-8?B?cmE4emZzM2k0aXZvNW5uRSs5R01xTlUxVEZNWlg2NVFjMmZOQjE4ekpqV3Vr?=
 =?utf-8?B?S3pPMEZsMjdiTk1WUmNLMXNWOWdRTFNlYXZ4QlFSd2NaNmhsR25kK1p0SEM0?=
 =?utf-8?B?RTJkdEc4Ukp2dmg0NGFBSk1QcnJ3OWlack1LLzY0TmJlazVoc2liMXZBN0JG?=
 =?utf-8?B?V3ptZkFSZWxxMXhBb3BEOTY2MkRZMWgyM014bDR2WVR2N3FkWDZmT3QxSWNm?=
 =?utf-8?B?cS9NeTFEeGdVN0VzTE9Danc0cHpmZnQ5WnUzTzFjVmgwYmhVRTNqS3IwNURT?=
 =?utf-8?B?NEN4RU1LZUsrU2g0ZENUS3RhNnl4OGVpbTBONS9ieTdMU0FHY1gzd1JQbUk2?=
 =?utf-8?B?ZEhUcGJiOUxRbkQvWnFRZDJnVmhkZHE1RjJDZWZaSDIya0pUQ0NiVVN3QkNK?=
 =?utf-8?B?OUJqZHprQW04eG5DTm5DSkNIZ2gzWHJ4Rm81bkthS0pXRCtUQnM1TTNwN1Zy?=
 =?utf-8?B?RjZ5N1J4R2VqVmlybUN3NmtsNUdETUxQamtoaDdtMGlKRVE4S25venRvNXVm?=
 =?utf-8?B?bEduWFE2Qi84MHVBQ0pETzM1YXJnMWlTbWNCb0lVcEFadGFvTG12K0dpZUNN?=
 =?utf-8?B?Y1ZhVjJDSEdnTHRnRnlTUXM0OG1lMk4wWDZuQ2F1SW5aNUEyeTd1QlRwcndJ?=
 =?utf-8?B?T0pzVVA0citDT2ZGbUo1TUlsY3laelJzcDVwLzV3ZENHZjNKNmtuaUJFV3NC?=
 =?utf-8?B?Uk80OXFrVWFKR2txTEd5Mk9wamdxVk85MTZlM2JlOHpKK0RrSGZYMGozWjJv?=
 =?utf-8?B?cUpjcWt0cTkybTVYSG0wdnJjMGlLd0JnMG10bmlLaW1mMHJOWlRnNDJTM1Fo?=
 =?utf-8?B?bXJ0ZUN4S2NGTWRVVGVuQXFNcmpQRHhGa05lVWlzVDNTVGtOblBoenVmY3Bv?=
 =?utf-8?B?RFE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <BAA5BCCCBF935C4087B53AF90FC6BC4F@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0e17ed4f-fb67-4343-ceea-08de38a79a9b
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Dec 2025 11:22:43.7555
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: VX0eG5L3vqkU15jjzYlXVDjxshELT8XXzsNQ07njGnag5W9VmNY+8urZMmm2kXIPWqjnoms21XiOs4GswVezRnMa3d1/IFsDhbA1LRS8/4E=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR03MB8256

DQoNCk9uIDEyLzEwLzI1IDAyOjU0LCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6DQo+IE9uIFR1
ZSwgOSBEZWMgMjAyNSwgU3RlZmFubyBTdGFiZWxsaW5pIHdyb3RlOg0KPj4gT24gVGh1LCAyMyBP
Y3QgMjAyNSwgRG15dHJvIFByb2tvcGNodWsxIHdyb3RlOg0KPj4+IEdpdmVuICdOZXh0TWVtb3J5
RGVzY3JpcHRvcigpJyBtYWNybyBpcyBjYXN0aW5nIChVSU5UOCAqKSBwb2ludGVyIHRvIHRoZQ0K
Pj4+IChFRklfTUVNT1JZX0RFU0NSSVBUT1IgKikgcG9pbnRlciwgd2hpY2ggaXMgbm90IGFsbG93
ZWQgYnkgdGhlIE1JU1JBIEMNCj4+PiBSdWxlIDExLjMgYXMgdGhleSBwb2ludGVkIHRvIHRoZSBk
aWZmZXJlbnQgb2JqZWN0cyB0eXBlcy4NCj4+Pg0KPj4+IFRoaXMgbWFjcm8gaXMgYSBwYXJ0IG9m
IHRoZSBFRkkgaW1wb3J0ZWQgY29kZSAoJ3hlbi9pbmNsdWRlL2VmaS8nKSBhbmQNCj4+PiBpcyBk
ZXZpYXRlZCB3aXRoIGEgU0FGIGNvbW1lbnQuDQo+Pj4NCj4+PiBTaWduZWQtb2ZmLWJ5OiBEbXl0
cm8gUHJva29wY2h1ayA8ZG15dHJvX3Byb2tvcGNodWsxQGVwYW0uY29tPg0KPj4NCj4+IFJldmll
d2VkLWJ5OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+DQo+Pg0K
Pj4gSSBzYXcgSmFuJ3MgY29tbWVudCBidXQgSSB0aGluayB0aGlzIGlzIE9LDQo+IA0KPiBJIHRh
a2UgaXQgYmFjayBJIHNhdyBEbXl0cm8gbWFuYWdlZCB0byBtYWtlIGEgbmV3ZXIgYW5kIGJldHRl
ciB2ZXJzaW9uDQo+IG9mIHRoaXMgZm9sbG93aW5nIEphbidzIGNvbW1lbnQuIEFsbCBnb29kLg0K
DQpZZXMsIHlvdSBhcmUgcmlnaHQuDQpUaGUgdjIgaXMgaGVyZToNCmh0dHBzOi8vcGF0Y2hldy5v
cmcvWGVuLzIxMmExYWM0ZWU1NjhmMDI3ZjZjYjdmOTQzN2FhNDJkMmYwYjZjNDEuMTc2MTU5OTIy
MS5naXQuZG15dHJvLl81RnByb2tvcGNodWsxQGVwYW0uY29tLw0KDQpEbXl0cm8uDQo=


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 11:35:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 11:35:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183948.1506519 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTex8-0006yk-8N; Thu, 11 Dec 2025 11:35:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183948.1506519; Thu, 11 Dec 2025 11:35:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTex8-0006yd-5p; Thu, 11 Dec 2025 11:35:22 +0000
Received: by outflank-mailman (input) for mailman id 1183948;
 Thu, 11 Dec 2025 11:35:20 +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
 <SRS0=81ZL=6R=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1vTex6-0006yX-PZ
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 11:35:20 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 77e75564-d685-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 12:35:19 +0100 (CET)
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by PAWPR03MB10182.eurprd03.prod.outlook.com (2603:10a6:102:334::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.6; Thu, 11 Dec
 2025 11:35:14 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%5]) with mapi id 15.20.9412.005; Thu, 11 Dec 2025
 11:35:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 77e75564-d685-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=V+hdc7BzcXkVIkdV4/n1HENa/HjssmWHAdwwooe/QcY3fVSa8KNNNwO2rOCDnAo/23Dl1X/cGdR22ywthu2DYUmh1n4u1l7V/3ZH7GCZosCm07FaQbtQv0I7fCt3J7PV9RTC1+dW6pz+8pvrkXTqhdrtsDa0L6uZkiorG7Xy1hlRRgbkyPOWzMSfLcmZC1ccfeTlBqXYbZ/56ve7/JcHYUHzhKyq7AjrA1ZLZlB2K2KraX5Wuxgu0iprwNExxubdzPL3dODOM/bmzHLSEe6gySvk5WeBflJ+d3P5da+Emox75jvTlYrLr8dXVZEJajY2HsIX9VpurBVRyaotM1wfWg==
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=UQxYZA1XYl4u5xI8IHObiHUg9/LsSLFTLPvB6sOqkzs=;
 b=vwsarTARZ5cSRlmHzkb8AEg2PSSeseEdQgFYP6P2qsKKjQh8VtNgnYrctRYR4wLyi8H2htjBzzu+tSb1uexpw+OxUV9B5aLRe8AfbE6pKBxpQm5hZfvTWymt7r2R5roLWyPrLLNNQ33woLghRBe8xqibGiiXOWWy2GJjH0CO6bNutUCFilRIj0f+QPBckhNiSPwX6hqD+hhdlNxnVzUgwNeicOb08qF3Z0JLgMxd7olo1y6ydEj6IKjsQINaCLJpuVdGyz6snq1YmrAAZI5GBSn1mh7CYUVi9XGXKYQEj8/UZr2UGBbOdaw77knlFtQMQZltU/WYp27GbTJj0GLV3g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=UQxYZA1XYl4u5xI8IHObiHUg9/LsSLFTLPvB6sOqkzs=;
 b=ISX9OuSxkcCGgWciMXiKLC5LF2ANIAep4GWwONpPAt8AoXXLFViiNQb4B5gD7AByugTs1TYTVRTE2j9L13R5m7H6hraCfQh9jiKbk6hfcuod1VcEKPD01QAAvf4k0nfwzJ/gXz3eO4ZfpP8uX6iSaWNi1lQo7jYONKYgnX0ltqDG+gvEr+aNQ03QQTbiSF2c+1wXUk8BkHkZ2/6Qlp1JL0iLnLg32sJpYD+uJ2jwRbtAKhyuXqTl3gnKzFyX9X6eQ8eM7zHZhuqf1s25vGVWNF8pb1JH1k7hs6frIESKSUXrDdXzbGnyFQNoeXZlII/2IZ0y14QM1x1P7/bg9sL+4g==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>
Subject: Re-send: [PATCH v3] xen/irq: Delete the pirq_cleanup_check() macro
Thread-Topic: Re-send: [PATCH v3] xen/irq: Delete the pirq_cleanup_check()
 macro
Thread-Index: AQHcFfWhxHP2kMnOQkiD7UseguEusLR0c44AgKiE8gA=
Date: Thu, 11 Dec 2025 11:35:12 +0000
Message-ID: <34f39f92-298d-41e3-b869-fa45ba2bdb09@epam.com>
References:
 <0959802e4fa73b848b2b9e47c57c6daf062e9630.1756149543.git.dmytro_prokopchuk1@epam.com>
 <1af4778e-8a2a-4fa5-a41d-0142947da137@suse.com>
In-Reply-To: <1af4778e-8a2a-4fa5-a41d-0142947da137@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|PAWPR03MB10182:EE_
x-ms-office365-filtering-correlation-id: c5c2bed8-a0d5-40b7-1307-08de38a9590f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|376014|1800799024|366016|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?c2xkcVl2VTNmb1hMMmx6enhQMmo2OU0zUTdjKzNrdHRRemp3SExnK1pqdDc4?=
 =?utf-8?B?Y1N0dDc2YWR0ZlFNNy9JUmtObk1NZVFzcGRqM1B4OWR5UkdEQW5BMWdOTS9z?=
 =?utf-8?B?OTlLOWZTSmJzV05CeUVST3Fwc2lCVFQ1STB1VzZPelNCNmJBTW1LTmQvVmtU?=
 =?utf-8?B?TjV2NHY4RkRoS01KY3pybjBoRTZ6eDV3ZktaM0M5UHp1YVlkSkkybkdCVnJY?=
 =?utf-8?B?TS9BSGxxK0Z1NjEvQ29KVVQ3ZkI5bWNKNXBSYjE2MlM3OVQzSU5aYXQ2enlt?=
 =?utf-8?B?b3c3UmloWnExZW9tV29JOEdPUUM0bUkySk5Wd0ZYTHZlb25xUGhFUGlDWEEw?=
 =?utf-8?B?T2l6OFVFVWdmMEpoeVpraW5hT2VneE8yLzg3SUx4eExsYlM1b0hESll1cmFw?=
 =?utf-8?B?UUhLaWNJN00yWUt0SUhSeW9WUWhhSkVJYmM0dGxUS2x5c0NISFloYWhmZ1ZG?=
 =?utf-8?B?VzM1Tkhnd3o1WW1pWFRvUUduUVVYSFBKSjMydlJnb0dNT29qMWJZaUE0YW9K?=
 =?utf-8?B?QWp2Y1lJVktUMGtwbXBkMFQxaDkzNytDeDV2ejQyVzlMdUFnemtHcnoyZGVh?=
 =?utf-8?B?NGJRSklnTXpBbVZPNEJaR0I1TU5lZlRNblpDSTRoRXFyWm42WkhzT09FVWlh?=
 =?utf-8?B?WHVhZGR0WVJ0U0VMKzJqRk9tRGJrdHY1Z00yUngzdVFnMGVEVkl0MHFnM0l5?=
 =?utf-8?B?ZzVxaElVQnlpaFBtQ2pUMGlUY1JPV0lWNkRMVGR4Vk9jYjFYRnMyK3BvSFZB?=
 =?utf-8?B?Unpxa2RpS285Wmo0UjJIZGVvQXBJdEwvazAwVElSRmtiS08zTnpzbnkvVDI1?=
 =?utf-8?B?b3BTL0dVWHZtVHc1M1JqcFd4K3pldWlLRVJ2dEk2QXg4MXNYQkJJQkcxQnhr?=
 =?utf-8?B?L2pJa3ZLUlBhYlFlNVVoVGQ2dkVtKzIwc1YzUDZ6L0NPZkE3SGZPaHlLdWEy?=
 =?utf-8?B?K1ZBUTRidEdtZjVxRDd2YlJ6TVYvSXdSaWEwUU9PZnlCVHZyQ2JrSWI0UXN3?=
 =?utf-8?B?enNDb1ovL1pMZ2ZXVXFlZ24yMEFyNXNsRmdCMDNCaUwwTU1HWHY3R0QwN3RT?=
 =?utf-8?B?Qnc5TDVJTW85ZmpxNlIyZXZYcnhCY2YrVlZFMWZHVS9tSHMzWnJOaERXOFNh?=
 =?utf-8?B?bldiek9oUjdYRlhZUUIrcVh2a0s1YnFwRUlMelFXMTB4TSs5WW5wQmxKTlZ3?=
 =?utf-8?B?YXpGd2Y5RXBsU29aaS9XaWFpZ0xlT05UempuN1RQcXpRcFdOVnp5K0xjcGNM?=
 =?utf-8?B?QXBpL3VNL1l0MDF4cmd3elpRNWJkY2Y4U1RjenFaYUpLa24xbkpENVRqMkYx?=
 =?utf-8?B?Um8yTElqZVFLNFlNTFFwTFhDVTBwT2Y0ZGRSYU9vdUVoUUpzZmhSTFJXcHNz?=
 =?utf-8?B?SVdwakE3RnVuR1pKWTZ6ZVUySTNibDRnK1ZOUm9IZGdtQTdvTmhRWnFhbTBK?=
 =?utf-8?B?ZHczMUN2V3Uya1ozalB0UFdWR3k4Q2xZN04yN2lmYzRaQzdlMUphVTRPa1c5?=
 =?utf-8?B?UU8zR3B2em8vc1JZYlR4MlJGSHdjbTBaUjdOVFhBTjYwRW9lS2VUZ1Ywdnk2?=
 =?utf-8?B?SE5heTRQbG9oRzNCSVdPSjhJRWYxQ1dMeHFLWnVtUFBCTmlHdTMxNzZtc05W?=
 =?utf-8?B?UlVDZVgwY0wySkQyTXVRTzdnOVBkT004SEkzSFVFTzZvaGFTQ3dLMU5RZFVW?=
 =?utf-8?B?TkVwNHhtUVpsUU5va3U4VnhoY2FyREF0SzlaK21vRFJuZFZxeHV2VmVYZUNa?=
 =?utf-8?B?aG5vblFxZ25LZ0k3Smx4cFJFZTVwT0Q0TXVKYWVQRWEwVDIvamZ5L2hoT2Vl?=
 =?utf-8?B?NzUwWStZSTIyTVAyUTlONlEyYnBSak92bVFFQUlzSEYxc2dPcGhTb2w5MVQx?=
 =?utf-8?B?WThjN0E1WmIyZUlHRzA0am5NeVByaitjRUpsSHB3YWVieEZyWWlxQXViRUd5?=
 =?utf-8?B?Z284a2xvdWo1dmVSQlBRL25OSDhPaHZNMFJkcFBwSXcxQm5PYW1XcG1mTkli?=
 =?utf-8?B?QnduekZUbzdxQTVTRDNaYU52SlFhay9kSlkzMFR6blJLZEUwd2R3Q0F2Qjc3?=
 =?utf-8?Q?EVbRFG?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?OGk1NDFBaS9JRitENDh2bGt5aU1pMDQzSmY4VWNQdGxwU3dyWGIyTGRhUWlK?=
 =?utf-8?B?czBCZkdFcURHd00vU21qQy9WdXlXZDd0Ym1Ga3d2K2hwRTBsdmRjTlp2aGRL?=
 =?utf-8?B?eDJySjdwNVU3eGk4OFkvNEZ4WTFTT3BQOC91cVhySlhyTjlmY1VIK3N0K0JR?=
 =?utf-8?B?U1RqQnZSb0VScW80V0hKdGt0K1FBZ3NxYXdLRXFmS0tmWkU5akZvblJaY1Ro?=
 =?utf-8?B?UTVOUTdreSt0ek15QzBFcWp0WGZUOGZoSEFQMzdvRzVIdlpnNVExcXlJMWV6?=
 =?utf-8?B?R3Q0akZDV1pJd0J5dWNxNzZ2dVpvTjVtQkw1SE9Za1NIMDRzcmVPdEI2bFBR?=
 =?utf-8?B?UjY0aW5aa2ZJaFhtTk93R0x5emw0WGhidzRPOTY3RFdxaXJWc2JQbzlvVE9R?=
 =?utf-8?B?RXVtdW1KaGJPSEdTUmx2SjdKb1Z1elQ1TkpxWC9NczdOWlhTWWcwbkpNUEdk?=
 =?utf-8?B?dWlFaWg1QjFnenE0cUFOcXlQQUNmYXdubjNBSXE4Zmh5cm5paWE1UXY4eTM3?=
 =?utf-8?B?a2JOOGFReFY5UVZVQ09jUnU5M05sWEMrQlp1WWFFdjVpS2VDb21sN3hOTjhC?=
 =?utf-8?B?dkRSd1JWb01WQ2xlVVFlRmxPcEg2bStvVG5SQUJFR2xGajlVVDNyM2tOc3BS?=
 =?utf-8?B?ZGU5cVNIMGRjR2dHaVhHK0VYTXpYa3VlSG00U015ODI5N2NTNjBOV3VNeUYr?=
 =?utf-8?B?aC80ZlZObmlaMEhaV1VaZ2ZrU3ZqWFBxNkYrS1ArdVFNby9VTHlnZE9GdFlZ?=
 =?utf-8?B?QURISWo3R3hHcHJEQ1BSNFFxdFh3VTlrdG9kRS9xQWtXaktuOVhvZFlpZy9y?=
 =?utf-8?B?Ujl1S2ZXZEdNdVRYcCt0STkwSXlhbURQOTdGT3BHdUVZY1V0NEpwbUhkSEZP?=
 =?utf-8?B?WmVucjhTUHgvZ05rV2luQkFOUzNTb1labXRKRDd5Nno2OGQyOTJwcEl5aERH?=
 =?utf-8?B?SkRPM1JXdHlnY2VLVHhKNHkxQTZXVlJNeFZzOXBxWTJDellJZ3VGYkNkQUx4?=
 =?utf-8?B?aUtiZ09Md1FERlJvSUs4UEwrYlo3NEt4NGIyVXNRM3BrbWVLeUVQWVZpMSs1?=
 =?utf-8?B?T2trNHVrWHlCK1FkdVRLRGFZclVtTHUxelpacWxoMi91cWF3ajVzRGRTT3pG?=
 =?utf-8?B?Q3paNTQyUFNZVWQ1eUFuQWJHa3ltcjVlU1hQaUNuRjNhMWtLaUg1Y2FNejJG?=
 =?utf-8?B?TDI2WDVzdllEVXczWW5MQUw5MmEwd3FVNEgzcDlNTjN1SFZBZGtKU29WSGU4?=
 =?utf-8?B?Wm1iSHhjNk9LRjJhVHdsSTB0TlpLRkx5MWtMWnJTTHUzR0Q3UGFWL1pJNzNT?=
 =?utf-8?B?VndaWDJvYi9jeE51QXFXcmorcVpIUUx1UDVoR1NCY01nZ0s4OVV6UkRmRXM5?=
 =?utf-8?B?THdTYUpxQzNtbHBGUHhRVFV1a2ovdkduMWtnNVFQUkNKZHVFaWxzcDVxSWFx?=
 =?utf-8?B?MXZGclY0bGpsREJqTThQZGFSU0Y1cDNXTjVYSjdCMm1mUlQ4UTBGMThyMGZX?=
 =?utf-8?B?QUFlQXhoWThBRkEyRlJacWZyVVRkanFKNGlGMk5NVzRHbDc3T0pva3prQm9j?=
 =?utf-8?B?WHhwZ2ZNeGdFcG5XTkcwOVhaazl1Z0xSeFQyWnpjK1NmbWd6czZjb2R0ZklS?=
 =?utf-8?B?b0hIa3lCcEQ1SjhBUno1QzJWanBXTjRUblM1aHJtc1VBQzZ6VUpsTWJzY2Vw?=
 =?utf-8?B?MlJiYVJSMFBxcXZsUzZMSnR1QXUzTTZFV3NLaE9ieWlNSGUyMzJqMEwzblVR?=
 =?utf-8?B?UjFMWWVEcTg0U0RCRi94RExtbTlaM0NXSFEyYUo0Ym80RnlMUmxIWC8zUkxD?=
 =?utf-8?B?UFN6L0pTQ3JtWFQ1V0I5TCtKTTFQcnNlMTJlY05UQ3MyUS9CVXFiN050a3Rw?=
 =?utf-8?B?S1VKV1R1em96M2hvTXlhVUpVRDd2NzRWcnowM3RRcVdFSU1sNHFRNnJNNWZ3?=
 =?utf-8?B?TWJTRnVtUjhpZ2doSi81TGlrb1dvaU8rc0hJN3VhcUR0dGhhY3FlR0JKRStl?=
 =?utf-8?B?VVg5NHJKdDljaUJHSy9nT2FmWVdidFFkTHJueFlNMHczWVB0YnhLUVlGNFlO?=
 =?utf-8?B?VHBTSFpVQlRJRHFzNno4S252ZFY0UWZkK1NHbVJpR2FVdzl6UnNZZHRaazZX?=
 =?utf-8?B?NkdRN05HRy9IeUR1aGJ4UDN0eTA4ZGFsQjFWOUlqam41elgvOWJMdm9TQ3dS?=
 =?utf-8?B?L2c9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <E33BF7857E410D4DBC8E1815DB7E73C3@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c5c2bed8-a0d5-40b7-1307-08de38a9590f
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Dec 2025 11:35:12.7546
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: tYMBkWTkPEAZSZzUv2zHOoTSaDUqF9ryjs4hoUv52lzppHa85+phYwDPG3wzjHHoaymaSoadI6nuxht9cs3jcGWc/y2A5PdLLQhsHcmreSY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB10182

DQoNCk9uIDgvMjYvMjUgMDk6MDcsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyNS4wOC4yMDI1
IDIxOjIyLCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiBGcm9tOiBBbmRyZXcgQ29vcGVy
IDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPg0KPj4NCj4+IE1JU1JBIFJ1bGUgNS41IG9iamVj
dHMgdG8gYSBtYWNybyBhbGlhc2luZyBhIGZ1bmN0aW9uLCB3aGljaCBpcyB3aGF0DQo+PiBwaXJx
X2NsZWFudXBfY2hlY2soKSBkb2VzLiBUaGUgbWFjcm8gd2FzIG9yaWdpbmFsbHkgaW50ZW5kZWQg
dG8gZW5zdXJlDQo+PiB0aGUgY29uZGl0aW9uICdpZiAoIXBpcnEtPmV2dGNobiknIGlzIGFsd2F5
cyBjaGVja2VkIGJlZm9yZSBpbnZva2luZw0KPj4gdGhlIGZ1bmN0aW9uLCBhdm9pZGluZyBlcnJv
cnMgYWNyb3NzIGNhbGwgc2l0ZXMuDQo+Pg0KPj4gVGhlcmUgYXJlIG9ubHkgYSBoYW5kZnVsIG9m
IHVzZXJzLCBzbyBleHBhbmQgaXQgaW5saW5lIHRvIGJlIHBsYWluDQo+PiByZWd1bGFyIEMuIERv
aW5nIHRoaXMgc2hvd3Mgb25lIHBhdGggbm93IG5lZWRpbmcgYnJhY2VzLCBhbmQgb25lIHBhdGgN
Cj4+IGluICdldnRjaG5fYmluZF9waXJxKCknIHdoZXJlIHRoZSBleHBhbmRlZCBmb3JtIHNpbXBs
aWVzIGJhY2sgdG8gbm8NCj4+IGRlbHRhLCBhcyBpdCBmb2xsb3dzIGFuIHVuY29uZGl0aW9uYWwg
Y2xlYXIgb2YgJ2luZm8tPmV2dGNobicuDQo+Pg0KPj4gV2hpbGUgdGhpcyBjb21wbGllcyB3aXRo
IE1JU1JBLCBpdCBzaGlmdHMgdGhlIHJlc3BvbnNpYmlsaXR5IHRvDQo+PiBkZXZlbG9wZXJzIHRv
IGNoZWNrICdpZiAoIXBpcnEtPmV2dGNobiknIGF0IGNhbGwgc2l0ZXMuDQo+Pg0KPj4gTm8gZnVu
Y3Rpb25hbCBjaGFuZ2VzLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+DQo+PiBTaWduZWQtb2ZmLWJ5OiBEbXl0cm8gUHJva29w
Y2h1ayA8ZG15dHJvX3Byb2tvcGNodWsxQGVwYW0uY29tPg0KPj4gLS0tDQo+PiBDaGFuZ2VzIGlu
IHYzOg0KPj4gLSBhZGRlZCBiYWNrIHdvcmRpbmcgZnJvbSB2MSwgb3JpZ2luYWxseSB3cml0dGVu
IGJ5IEFuZHJldy4NCj4gDQo+IFRoYW5rcy4gSnVzdCB0byBtZW50aW9uLCB0aG91Z2ggLSB5b3Ug
Y29waWVkIGl0IHZlcmJhdGltLCBpbmNsdWRpbmcgdGhlDQo+IHR5cG8gKHNpbXBsaWZpZXMpLiBD
YW4gc3VyZWx5IGJlIGFkanVzdGVkIHdoaWxlIGNvbW1pdHRpbmcsIGlmIGFuZCB3aGVuDQo+IHNv
bWVib2R5IGFja3MgdGhpcy4gKEkgdGhpbmsgaXQgaGFzIGJlY29tZSBzdWZmaWNpZW50bHkgY2xl
YXIgdGhhdCBJJ20NCj4gbm90IGdvaW5nIHRvLikNCj4gDQo+IEphbg0KDQpIaSBTdGVmYW5vLA0K
DQpwbGVhc2UsIHRha2UgYSBsb29rLiBNYXliZSB0aGlzIHBhdGNoIGlzIE9LIGZvciB5b3UgKGl0
IHJlcXVpcmVzIG1pbm9yIA0KdHlwbyBmaXgsIG1lbnRpb25lZCBieSBKYW4pPw0KDQpUaGFua3Ms
DQpEbXl0cm8u


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 11:44:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 11:44:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183959.1506529 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTf5q-0000S6-1W; Thu, 11 Dec 2025 11:44:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183959.1506529; Thu, 11 Dec 2025 11:44:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTf5p-0000Rz-V0; Thu, 11 Dec 2025 11:44:21 +0000
Received: by outflank-mailman (input) for mailman id 1183959;
 Thu, 11 Dec 2025 11:44:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QWGN=6R=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vTf5o-0000Rr-LM
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 11:44:20 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b9f7205e-d686-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 12:44:18 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-5958232f806so834191e87.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 03:44:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b9f7205e-d686-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765453458; x=1766058258; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=FbTkM9mI2GZAHrTJwctBAcXLDUNlEFZufu05iAXx5D0=;
        b=CjkKyB8zvs3HTuTEBtxw6ALqlkXgARTIJMrsA+KJ34Rguow4NimZVopTquTyB3yl71
         nCL5IFJ1Up05ymV0jWz8tTFrkZQqByxHe/OK0A2V/tzLv709kQrMxD7Kz2Fs0WoUSXtP
         lUOZjyegJfV0RgJFwKVO0/Gn+4Ok7nTXqqYyxoB23+kFs3z6SlX9zeYz9EoJ3zx0FAPE
         yBNkYaoagxEDbvGooN/S2rCya0XhZu2FkDFr3HKxn4WkUnJJxhapV+T5KxYXjAijHUVB
         kIQNq3IrVau2APdtsTU+WK9hTWxYNu6VRJCwbUSvt+rSftDDvXteSkyqkhTZE+6YRUtQ
         Y3QA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765453458; x=1766058258;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FbTkM9mI2GZAHrTJwctBAcXLDUNlEFZufu05iAXx5D0=;
        b=MsVq4/sYjK/r5svXUBzNB0TCcZ7Of46nYLhweHbR7CckixBKWtpG10rLBvRaY/PQyb
         SM7tpxf3le78xzeKLAwGrQKqLyyPvICOrcf49ImWPEdRUTcTNZLvlcPCGl8fvJUH19wK
         +vfIyKY5vBN3OsScMdkaOdHvCV1icxncR5mY6qvttpdC/yQn2Vu7wmVWphPpwO1aKOEe
         0i2eNWdfWjo4tYkNyvEnKKIA3b/54JEVQSwSBCuN1CEZPsec7qWbLS4NEjHc3lea2Bbm
         x2IOro2IJcyTyKnSQsiu4bvsJAjvJpwBPdEsIDKXVuSAcMsbsqG5b2/wHBaLWDvuzUo0
         N79A==
X-Gm-Message-State: AOJu0Ywu8lxYZXeiFt+FXbcyN+yveBTH8n1e1JRnZajbrdWbNSAx9ne3
	cg2R7Irb3xA5BFpGdTAy2iO4k1YSIpdwBKGf/fyP7rIX45iKH9PBOZJOF61kzRWdpgpJp3g3UsZ
	tyz5EgOPU6DkTDsnwwDkIhh6TNyxTQdE=
X-Gm-Gg: AY/fxX6Oeh+mqFuS29y06OuD6mxhPEUHPphR/tooHBvRGfWxgfMEtKbeNYtT4ckdRET
	4xSDFSpowJDs3TcekE4o4pN2k2F/oNpHJ6KJ9JWl48hLRm/EIA1IvMsOrzsfNbB1/GAUXGnxFdu
	uaYzOkOxcVdHAMeQ2mg1i5rH/j5NkAZgzaF7jnCjelCHqVdpRi96g2CEHrOFNuZl6aErYALyppt
	YriHa/ATtaviHT8CH7Kx5UjCF1PQLYFZ72MFExoMW0VyrahK9VMfJe+tzcu6KaXXHuEE0x4IL0+
	HDQGqA==
X-Google-Smtp-Source: AGHT+IEiMPvbHSJYCTU1c1g3W5XcayPjy7AXjWuAKntKvCfN+gDu5E1K8kB9Ao+ajitX+FKKM+6/8sKRMEhDnw4WuaU=
X-Received: by 2002:a05:6512:23a6:b0:594:3340:1b63 with SMTP id
 2adb3069b0e04-598ee50ce23mr2695723e87.49.1765453457412; Thu, 11 Dec 2025
 03:44:17 -0800 (PST)
MIME-Version: 1.0
References: <CAGeoDV_YS8hV2+FXVgXxvHLw=MQOAoJZwrP1Ypw8+ZUjKB9GSA@mail.gmail.com>
 <a5361a51-128d-47e0-b5ed-58bfd0d9e8ad@suse.com>
In-Reply-To: <a5361a51-128d-47e0-b5ed-58bfd0d9e8ad@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 11 Dec 2025 13:44:05 +0200
X-Gm-Features: AQt7F2qW2chFP4nyou5IXiVJh-6G32_l4ufLKZcivGbh8-z1e9J49Seg91667cs
Message-ID: <CAGeoDV-vfiKECmvWzJ4dnzicXDL7XJDxwEy_Z737k+234Gkzpg@mail.gmail.com>
Subject: Re: Strange symbols_lookup() behaviour in test-symbols on arm64 CI
To: Jan Beulich <jbeulich@suse.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: multipart/mixed; boundary="0000000000003274910645abaa9d"

--0000000000003274910645abaa9d
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Dec 11, 2025 at 1:15=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 11.12.2025 11:29, Mykola Kvach wrote:
> > While working on an arm64 s2ram series for Xen I have hit what looks
> > like very strange behaviour in symbols_lookup() as exercised by test-sy=
mbols.
> >
> > The series is in the branch referenced at [1]. All patches there except
> > the last one build and pass CI; adding only the last patch makes the CI
> > job referenced at [2] start failing.
> >
> > Note that the tests in that job are built without CONFIG_SYSTEM_SUSPEND
> > enabled, so most of the code introduced by the s2ram branch is not
> > compiled at all for that configuration. That is why I initially did not
> > expect my series to affect this job.
> >
> > To investigate, I tried to reproduce the issue locally. I downloaded th=
e
> > xen-config artifact from the failing job [3] and used it to build Xen
> > with my local aarch64 cross compiler. With this local toolchain
> > I could not reproduce the failure, and the resulting .config changed sl=
ightly
> > compared to the job's config. The relevant part of the diff looks like =
this:
> >
> >     diff --git a/xen/.config b/xen-config
> >     index 057553f510..44dcf6bacc 100644
> >     --- a/xen/.config
> >     +++ b/xen-config
> >     @@ -3,11 +3,11 @@
> >      # Xen/arm 4.22-unstable Configuration
> >      #
> >      CONFIG_CC_IS_GCC=3Dy
> >     -CONFIG_GCC_VERSION=3D130300
> >     +CONFIG_GCC_VERSION=3D120201
> >      CONFIG_CLANG_VERSION=3D0
> >      CONFIG_LD_IS_GNU=3Dy
> >      CONFIG_CC_HAS_ASM_INLINE=3Dy
> >     -CONFIG_CC_HAS_ASM_GOTO_OUTPUT=3Dy
> >     +CONFIG_GCC_ASM_GOTO_OUTPUT_BROKEN=3Dy
> >      CONFIG_FUNCTION_ALIGNMENT_4B=3Dy
> >      CONFIG_FUNCTION_ALIGNMENT=3D4
> >      CONFIG_ARM_64=3Dy
> >
> > So there is at least a difference in GCC version and asm-goto related
> > Kconfig options between the CI environment and my local one.
> >
> > After that I tried rebuilding inside the same Docker image that GitLab
> > CI uses:
> >
> >     registry.gitlab.com/xen-project/xen/alpine:3.18-arm64v8
> >
> > When I build Xen in that container, using the same branch, the problem
> > reproduces in the same way as in the CI job.
> >
> > Even more confusingly, adding extra prints in test_symbols just before
> > the calls to test_lookup() makes the problem disappear. This made me
> > suspect some undefined behaviour or logic issue that is very sensitive
> > to optimisation or layout changes.
>
> All symptoms described make me suspect you're hitting a problem we're
> already in the process of hunting down. Can you please take [1], make
> the small adjustment necessary to Arm's linking rule, and see whether
> you get a build failure in the case where right now you get a boot time
> crash? Of course no other changes to code or data layout should be done,
> or else you may observe false negatives.

I tested the issue with the provided patch, and it is still reproducible.

This is my working branch:

e8d5baab50 (HEAD -> reg) symbols: check table sizes don't change
between linking passes 2 and 3
e53439fdfc (xen_gitlab/reg) xen/arm: Add support for system suspend
triggered by hardware domain
eaa461f3b5 xen/arm: Implement PSCI SYSTEM_SUSPEND call (host interface)
4236fff9a4 xen/arm: Save/restore context on suspend/resume
a150f3d4bb xen/arm: Resume memory management on Xen resume

You can find the following line in the attached Xen boot log:

(XEN) [ 0.010785] Latest ChangeSet: Tue Dec 9 11:11:40 2025 +0100 git:e8d5b=
aab50

>
> Jan
>
> [1] https://lists.xen.org/archives/html/xen-devel/2025-12/msg00390.html

Best regards,
Mykola

--0000000000003274910645abaa9d
Content-Type: text/x-log; charset="US-ASCII"; name="boot.log"
Content-Disposition: attachment; filename="boot.log"
Content-Transfer-Encoding: base64
Content-ID: <f_mj1ddshw0>
X-Attachment-Id: f_mj1ddshw0

KFhFTikgQ2hlY2tpbmcgZm9yIGluaXRyZCBpbiAvY2hvc2VuCihYRU4pIEluaXRyZCAwMDAwMDAw
MGUyMGY0MDAwLTAwMDAwMDAwZWNlY2Q5ZTIKKFhFTikgUkFNOiAwMDAwMDAwMDAwMjAwMDAwIC0g
MDAwMDAwMDBlZmZmZmZmZgooWEVOKSBSQU06IDAwMDAwMDAxMDAwMDAwMDAgLSAwMDAwMDAwM2Zi
ZmZmZmZmCihYRU4pIFJBTTogMDAwMDAwMDNmYzUwMDAwMCAtIDAwMDAwMDAzZmZlZmZmZmYKKFhF
TikgCihYRU4pIE1PRFVMRVswXTogMDAwMDAwMDA0OTAwMDAwMCAtIDAwMDAwMDAwNDkxNmJmZmYg
WGVuICAgICAgICAgCihYRU4pIE1PRFVMRVsxXTogMDAwMDAwMDBlMjBlYTAwMCAtIDAwMDAwMDAw
ZTIwZjBmZmYgRGV2aWNlIFRyZWUgCihYRU4pIE1PRFVMRVsyXTogMDAwMDAwMDBlMjBmNDAwMCAt
IDAwMDAwMDAwZWNlY2Q5ZTIgUmFtZGlzayAgICAgCihYRU4pIE1PRFVMRVszXTogMDAwMDAwMDAw
MjAwMDAwMCAtIDAwMDAwMDAwMDVmZmZmZmYgS2VybmVsICAgICAgCihYRU4pIE1PRFVMRVs0XTog
MDAwMDAwMDAwNjAwMDAwMCAtIDAwMDAwMDAwMDYwMGZmZmYgWFNNIFBvbGljeSAgCihYRU4pICBS
RVNWRFswXTogMDAwMDAwMDBlMjBmNDAwMCAtIDAwMDAwMDAwZWNlY2Q5ZTIKKFhFTikgCihYRU4p
IAooWEVOKSBDb21tYW5kIGxpbmU6IHhlbi1sbGMtY29sb3JzPTAtLDQsMiBsbGMtY29sb3Jpbmc9
MSBkb20wX21lbT0yMDQ4TSBjb25zb2xlPWR0dWFydCBkdHVhcnQ9c2VyaWFsMiBkb20wX21heF92
Y3B1cz0yIGJvb3RzY3J1Yj0wIGxvZ2x2bD1hbGwgbWF4Y3B1cz0yIGhtcC11bnNhZmU9dHJ1ZSB4
c209ZHVtbXkgY29uc29sZV90aW1lc3RhbXBzPWJvb3Qgc3luY19jb25zb2xlPXllcyBwY2ktcGFz
c3Rocm91Z2g9eWVzIGlvbW11PW9uCihYRU4pIHBhcmFtZXRlciAieGVuLWxsYy1jb2xvcnMiIHVu
a25vd24hCihYRU4pIHBhcmFtZXRlciAibGxjLWNvbG9yaW5nIiB1bmtub3duIQooWEVOKSBbMDAw
MDAwMDMzZjRlNWQ4NF0gcGFyYW1ldGVyICJwY2ktcGFzc3Rocm91Z2giIHVua25vd24hCihYRU4p
IFswMDAwMDAwMzNmYWMxZDUxXSBEb21haW4gaGVhcCBpbml0aWFsaXNlZAooWEVOKSBbMDAwMDAw
MDMzZmFjMWU0Nl0gQm9vdGluZyB1c2luZyBEZXZpY2UgVHJlZQooWEVOKSBbMDAwMDAwMDMzZmFj
ODI1YV0gUGxhdGZvcm06IEdlbmVyaWMgU3lzdGVtCihYRU4pIFsgICAgMC4wMDAwMTZdIExvb2tp
bmcgZm9yIGR0dWFydCBhdCAic2VyaWFsMiIsIG9wdGlvbnMgIiIKWGVuIDQuMjItdW5zdGFibGUK
KFhFTikgWyAgICAwLjAwOTY4Ml0gWGVuIHZlcnNpb24gNC4yMi11bnN0YWJsZSAocm9vdEApIChn
Y2MgKEFscGluZSAxMi4yLjFfZ2l0MjAyMjA5MjQtcjEwKSAxMi4yLjEgMjAyMjA5MjQpIGRlYnVn
PXkgVGh1IERlYyAxMSAxMTozODo0MyBVVEMgMjAyNQooWEVOKSBbICAgIDAuMDEwNzg1XSBMYXRl
c3QgQ2hhbmdlU2V0OiBUdWUgRGVjIDkgMTE6MTE6NDAgMjAyNSArMDEwMCBnaXQ6ZThkNWJhYWI1
MAooWEVOKSBbICAgIDAuMDExNDIzXSBidWlsZC1pZDogZGNlNmQxODgyYTU3YzM0MGI5ZTRmM2Rk
OTk2YjZkZjgxYjFkNDQ1OQooWEVOKSBbICAgIDAuMDExOTcwXSBDb25zb2xlIG91dHB1dCBpcyBz
eW5jaHJvbm91cy4KKFhFTikgWyAgICAwLjAxMjM2N10gUHJvY2Vzc29yOiAwMDAwMDAwMDQxMmZk
MDUwOiAiQVJNIExpbWl0ZWQiLCB2YXJpYW50OiAweDIsIHBhcnQgMHhkMDUscmV2IDB4MAooWEVO
KSBbICAgIDAuMDEzMTEwXSA2NC1iaXQgRXhlY3V0aW9uOgooWEVOKSBbICAgIDAuMDEzNDEwXSAg
IFByb2Nlc3NvciBGZWF0dXJlczogMDAwMDAwMDAxMTExMjIyMiAwMDAwMDAwMDAwMDAwMDEwCihY
RU4pIFsgICAgMC4wMTM5OTVdICAgICBFeGNlcHRpb24gTGV2ZWxzOiBFTDM6NjQrMzIgRUwyOjY0
KzMyIEVMMTo2NCszMiBFTDA6NjQrMzIKKFhFTikgWyAgICAwLjAxNDYyNV0gICAgIEV4dGVuc2lv
bnM6IEZsb2F0aW5nUG9pbnQgQWR2YW5jZWRTSU1EIEdJQ3YzLVN5c1JlZwooWEVOKSBbICAgIDAu
MDE1MjEwXSAgIERlYnVnIEZlYXR1cmVzOiAwMDAwMDAwMDEwMzA1NDA4IDAwMDAwMDAwMDAwMDAw
MDAKKFhFTikgWyAgICAwLjAxNTc2NV0gICBBdXhpbGlhcnkgRmVhdHVyZXM6IDAwMDAwMDAwMDAw
MDAwMDAgMDAwMDAwMDAwMDAwMDAwMAooWEVOKSBbICAgIDAuMDE2MzUwXSAgIE1lbW9yeSBNb2Rl
bCBGZWF0dXJlczogMDAwMDAwMDAwMDEwMTEyMiAwMDAwMDAwMDEwMjEyMTIyCihYRU4pIFsgICAg
MC4wMTY5NTddICAgSVNBIEZlYXR1cmVzOiAgMDAwMDEwMDAxMDIxMTEyMCAwMDAwMDAwMDAwMTAw
MDAxCihYRU4pIFsgICAgMC4wMTc1MDVdIDMyLWJpdCBFeGVjdXRpb246CihYRU4pIFsgICAgMC4w
MTc4MDVdICAgUHJvY2Vzc29yIEZlYXR1cmVzOiAwMDAwMDAwMDEwMDAwMTMxOjAwMDAwMDAwMTAw
MTEwMTEKKFhFTikgWyAgICAwLjAxODM5MF0gICAgIEluc3RydWN0aW9uIFNldHM6IEFBcmNoMzIg
QTMyIFRodW1iIFRodW1iLTIgSmF6ZWxsZQooWEVOKSBbICAgIDAuMDE4OTc1XSAgICAgRXh0ZW5z
aW9uczogR2VuZXJpY1RpbWVyIFNlY3VyaXR5CihYRU4pIFsgICAgMC4wMTk0MjVdICAgRGVidWcg
RmVhdHVyZXM6IDAwMDAwMDAwMDQwMTAwODgKKFhFTikgWyAgICAwLjAxOTg1M10gICBBdXhpbGlh
cnkgRmVhdHVyZXM6IDAwMDAwMDAwMDAwMDAwMDAKKFhFTikgWyAgICAwLjAyMDMxMF0gICBNZW1v
cnkgTW9kZWwgRmVhdHVyZXM6IDAwMDAwMDAwMTAyMDExMDUgMDAwMDAwMDA0MDAwMDAwMAooWEVO
KSBbICAgIDAuMDIwOTE3XSAgICAgICAgICAgICAgICAgICAgICAgICAgMDAwMDAwMDAwMTI2MDAw
MCAwMDAwMDAwMDAyMTIyMjExCihYRU4pIFsgICAgMC4wMjE1MjVdICAgSVNBIEZlYXR1cmVzOiAw
MDAwMDAwMDAyMTAxMTEwIDAwMDAwMDAwMTMxMTIxMTEgMDAwMDAwMDAyMTIzMjA0MgooWEVOKSBb
ICAgIDAuMDIyMTkyXSAgICAgICAgICAgICAgICAgMDAwMDAwMDAwMTExMjEzMSAwMDAwMDAwMDAw
MDExMTQyIDAwMDAwMDAwMDEwMTExMjEKKFhFTikgWyAgICAwLjAyMjg2Nl0gVXNpbmcgU01DIENh
bGxpbmcgQ29udmVudGlvbiB2MS41CihYRU4pIFsgICAgMC4wMjMyODZdIFVzaW5nIFBTQ0kgdjEu
MQooWEVOKSBbICAgIDAuMDIzNTcxXSBTTVA6IEFsbG93aW5nIDIgQ1BVcwooWEVOKSBbICAgIDAu
MDIzODk0XSBlbmFibGVkIHdvcmthcm91bmQgZm9yOiBBUk0gZXJyYXR1bSAxNTMwOTIzCihYRU4p
IFsgICAgMC4wMjQ0MDhdIEdlbmVyaWMgVGltZXIgSVJROiBwaHlzPTMwIGh5cD0yNiB2aXJ0PTI3
IEZyZXE6IDI0MDAwIEtIegooWEVOKSBbICAgIDAuMDI1MTQzXSBHSUN2MyBpbml0aWFsaXphdGlv
bjoKKFhFTikgWyAgICAwLjAyNTQ3M10gICAgICAgZ2ljX2Rpc3RfYWRkcj0weDAwMDAwMGZlNjAw
MDAwCihYRU4pIFsgICAgMC4wMjU5MTZdICAgICAgIGdpY19tYWludGVuYW5jZV9pcnE9MjUKKFhF
TikgWyAgICAwLjAyNjI5OF0gICAgICAgZ2ljX3JkaXN0X3N0cmlkZT0wCihYRU4pIFsgICAgMC4w
MjY2NTBdICAgICAgIGdpY19yZGlzdF9yZWdpb25zPTEKKFhFTikgWyAgICAwLjAyNzAxMF0gICAg
ICAgcmVkaXN0cmlidXRvciByZWdpb25zOgooWEVOKSBbICAgIDAuMDI3MzkzXSAgICAgICAgIC0g
cmVnaW9uIDA6IDB4MDAwMDAwZmU2ODAwMDAgLSAweDAwMDAwMGZlNzgwMDAwCihYRU4pIFsgICAg
MC4wMjc5NzhdIEdJQ3YzOiA1MTIgbGluZXMsIChJSUQgMDIwMTc0M2IpLgooWEVOKSBbICAgIDAu
MDI4NDI3XSBHSUN2MzogQ1BVMDogRm91bmQgcmVkaXN0cmlidXRvciBpbiByZWdpb24gMCBAMDAw
MDBhMDA0MDAxYzAwMAooWEVOKSBbICAgIDAuMDI5MDY2XSBYU00gRnJhbWV3b3JrIHYxLjAuMSBp
bml0aWFsaXplZAooWEVOKSBbICAgIDAuMDI5NDc3XSB4c206IFBvbGljeSBsZW4gPSAweDAwMDAw
MDAwMDAwMTAwMDAgc3RhcnQgYXQgMHgwMDAwMDAwMDA2MDAwMDAwCihYRU4pIFsgICAgMC4wMzA3
OTZdIFVzaW5nIHNjaGVkdWxlcjogU01QIENyZWRpdCBTY2hlZHVsZXIgcmV2MiAoY3JlZGl0MikK
KFhFTikgWyAgICAwLjAzMTM1OF0gSW5pdGlhbGl6aW5nIENyZWRpdDIgc2NoZWR1bGVyCihYRU4p
IFsgICAgMC4wMzE3NTZdICBsb2FkX3ByZWNpc2lvbl9zaGlmdDogMTgKKFhFTikgWyAgICAwLjAz
MjExNV0gIGxvYWRfd2luZG93X3NoaWZ0OiAzMAooWEVOKSBbICAgIDAuMDMyNDUzXSAgdW5kZXJs
b2FkX2JhbGFuY2VfdG9sZXJhbmNlOiAwCihYRU4pIFsgICAgMC4wMzI4NThdICBvdmVybG9hZF9i
YWxhbmNlX3RvbGVyYW5jZTogLTMKKFhFTikgWyAgICAwLjAzMzI2M10gIHJ1bnF1ZXVlcyBhcnJh
bmdlbWVudDogc29ja2V0CihYRU4pIFsgICAgMC4wMzM2NjBdICBjYXAgZW5mb3JjZW1lbnQgZ3Jh
bnVsYXJpdHk6IDEwbXMKKFhFTikgWyAgICAwLjAzNDA4OF0gbG9hZCB0cmFja2luZyB3aW5kb3cg
bGVuZ3RoIDEwNzM3NDE4MjQgbnMKKFhFTikgWyAgICAwLjAzNDY5OF0gQWxsb2NhdGVkIGNvbnNv
bGUgcmluZyBvZiAxNiBLaUIuCihYRU4pIFsgICAgMC4wMzUxMTldIENQVTA6IEd1ZXN0IGF0b21p
Y3Mgd2lsbCB0cnkgMiB0aW1lcyBiZWZvcmUgcGF1c2luZyB0aGUgZG9tYWluCihYRU4pIFsgICAg
MC4wMzU4MDddIEJyaW5naW5nIHVwIENQVTEKKFhFTikgWyAgICAwLjAzNjE5NV0gR0lDdjM6IENQ
VTE6IEZvdW5kIHJlZGlzdHJpYnV0b3IgaW4gcmVnaW9uIDAgQDAwMDAwYTAwNDAwM2MwMDAKKFhF
TikgWyAgICAwLjAzNjgzMV0gQ1BVMTogR3Vlc3QgYXRvbWljcyB3aWxsIHRyeSA4IHRpbWVzIGJl
Zm9yZSBwYXVzaW5nIHRoZSBkb21haW4KKFhFTikgWyAgICAwLjAzNzQ2OV0gQnJvdWdodCB1cCAy
IENQVXMKKFhFTikgWyAgICAwLjAzNzc2OV0gQ1BVIDEgYm9vdGVkLgooWEVOKSBbICAgIDAuMDM4
MTY5XSBJL08gdmlydHVhbGlzYXRpb24gZGlzYWJsZWQKKFhFTikgWyAgICAwLjAzODU0M10gUDJN
OiA0MC1iaXQgSVBBIHdpdGggNDAtYml0IFBBIGFuZCAxNi1iaXQgVk1JRAooWEVOKSBbICAgIDAu
MDM5MDYxXSBQMk06IDMgbGV2ZWxzIHdpdGggb3JkZXItMSByb290LCBWVENSIDB4MDAwMDAwMDA4
MDBhMzU1OAooWEVOKSBbICAgIDAuMDM5NzAzXSBTY2hlZHVsaW5nIGdyYW51bGFyaXR5OiBjcHUs
IDEgQ1BVIHBlciBzY2hlZC1yZXNvdXJjZQooWEVOKSBbICAgIDAuMDQwMjc1XSBJbml0aWFsaXpp
bmcgQ3JlZGl0MiBzY2hlZHVsZXIKKFhFTikgWyAgICAwLjA0MDY3Ml0gIGxvYWRfcHJlY2lzaW9u
X3NoaWZ0OiAxOAooWEVOKSBbICAgIDAuMDQxMDMyXSAgbG9hZF93aW5kb3dfc2hpZnQ6IDMwCihY
RU4pIFsgICAgMC4wNDEzNzBdICB1bmRlcmxvYWRfYmFsYW5jZV90b2xlcmFuY2U6IDAKKFhFTikg
WyAgICAwLjA0MTc3NV0gIG92ZXJsb2FkX2JhbGFuY2VfdG9sZXJhbmNlOiAtMwooWEVOKSBbICAg
IDAuMDQyMTc5XSAgcnVucXVldWVzIGFycmFuZ2VtZW50OiBzb2NrZXQKKFhFTikgWyAgICAwLjA0
MjU3OF0gIGNhcCBlbmZvcmNlbWVudCBncmFudWxhcml0eTogMTBtcwooWEVOKSBbICAgIDAuMDQz
MDA1XSBsb2FkIHRyYWNraW5nIHdpbmRvdyBsZW5ndGggMTA3Mzc0MTgyNCBucwooWEVOKSBbICAg
IDAuMDQzNDg4XSBBZGRpbmcgY3B1IDAgdG8gcnVucXVldWUgMAooWEVOKSBbICAgIDAuMDQzODU1
XSAgRmlyc3QgY3B1IG9uIHJ1bnF1ZXVlLCBhY3RpdmF0aW5nCihYRU4pIFsgICAgMC4wNDQyODld
IEFkZGluZyBjcHUgMSB0byBydW5xdWV1ZSAwCihYRU4pIFsgICAgMC4wNDQ2NjZdIFVzaW5nIFND
TUkgd2l0aCBTTUMgSUQ6IDB4ODIwMDAwMTAKKFhFTikgWyAgICAwLjA0NTQ4MV0gYWx0ZXJuYXRp
dmVzOiBQYXRjaGluZyB3aXRoIGFsdCB0YWJsZSAwMDAwMGEwMDAwMmVlYWQwIC0+IDAwMDAwYTAw
MDAyZjAwMDAKKFhFTikgWyAgICAwLjA0NjU0Nl0gU0NNSTogZDAgaW5pdAooWEVOKSBbICAgIDAu
MDQ2OTM4XSAqKiogTE9BRElORyBET01BSU4gMCAqKioKKFhFTikgWyAgICAwLjA0NzI5MV0gTG9h
ZGluZyBkMCBrZXJuZWwgZnJvbSBib290IG1vZHVsZSBAIDAwMDAwMDAwMDIwMDAwMDAKKFhFTikg
WyAgICAwLjA0Nzg2MF0gTG9hZGluZyByYW1kaXNrIGZyb20gYm9vdCBtb2R1bGUgQCAwMDAwMDAw
MGUyMGY0MDAwCihYRU4pIFsgICAgMC4wNDg0MjJdIEdyYW50IHRhYmxlIHJhbmdlOiAweDAwMDAw
MDQ5MDAwMDAwLTB4MDAwMDAwNDkwNDAwMDAKKFhFTikgWyAgICAwLjA0ODk4NV0gQWxsb2NhdGlu
ZyAxOjEgbWFwcGluZ3MgdG90YWxsaW5nIDIwNDhNQiBmb3IgZG9tMDoKKFhFTikgWyAgICAwLjUy
MzA2NV0gQkFOS1swXSAweDAwMDAwMDYwMDAwMDAwLTB4MDAwMDAwZTAwMDAwMDAgKDIwNDhNQikK
KFhFTikgWyAgICAwLjUzNjU5NV0gQWxsb2NhdGluZyBQUEkgMTYgZm9yIGV2ZW50IGNoYW5uZWwg
aW50ZXJydXB0CihYRU4pIFsgICAgMC41MzcyNTVdIGQwOiBleHRlbmRlZCByZWdpb24gMDogMHgy
MDAwMDAtPjB4NDkwMDAwMDAKKFhFTikgWyAgICAwLjUzNzc1MF0gZDA6IGV4dGVuZGVkIHJlZ2lv
biAxOiAweDQ5MjAwMDAwLT4weDYwMDAwMDAwCihYRU4pIFsgICAgMC41MzgyNTldIGQwOiBleHRl
bmRlZCByZWdpb24gMjogMHgxMDAwMDAwMDAtPjB4M2ZjMDAwMDAwCihYRU4pIFsgICAgMC41Mzk5
MzNdIExvYWRpbmcgekltYWdlIGZyb20gMDAwMDAwMDAwMjAwMDAwMCB0byAwMDAwMDAwMDYwMDAw
MDAwLTAwMDAwMDAwNjQwMDAwMDAKKFhFTikgWyAgICAxLjE4NTAwMV0gTG9hZGluZyBkMCBpbml0
cmQgZnJvbSAwMDAwMDAwMGUyMGY0MDAwIHRvIDB4MDAwMDAwMDA2ODIwMDAwMC0weDAwMDAwMDAw
NzJmZDk5ZTMKKFhFTikgWyAgICAyLjkxMzE2M10gTG9hZGluZyBkMCBEVEIgdG8gMHgwMDAwMDAw
MDY4MDAwMDAwLTB4MDAwMDAwMDA2ODAwNWJhNgooWEVOKSBbICAgIDIuOTE0OTEwXSBJbml0aWFs
IGxvdyBtZW1vcnkgdmlycSB0aHJlc2hvbGQgc2V0IGF0IDB4NDAwMCBwYWdlcy4KKFhFTikgWyAg
ICAyLjkxNTc3OF0gCihYRU4pIFsgICAgMi45MTU5NTBdICoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKKFhFTikgWyAgICAyLjkxNjQyM10gUGFuaWMgb24gQ1BVIDA6CihY
RU4pIFsgICAgMi45MTY3MDhdIHRlc3Rfc3ltYm9sczogbm9uLXplcm8gb2Zmc2V0ICgweDI0KSB1
bmV4cGVjdGVkCihYRU4pIFsgICAgMi45MTcyMzNdICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKKFhFTikgWyAgICAyLjkxNzcwNV0gCihYRU4pIFsgICAgMi45MTc4Nzhd
IFJlYm9vdCBpbiBmaXZlIHNlY29uZHMuLi4K
--0000000000003274910645abaa9d--


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 12:00:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 12:00:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183982.1506540 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTfLL-0003jj-Ee; Thu, 11 Dec 2025 12:00:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183982.1506540; Thu, 11 Dec 2025 12:00:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTfLL-0003jc-BX; Thu, 11 Dec 2025 12:00:23 +0000
Received: by outflank-mailman (input) for mailman id 1183982;
 Thu, 11 Dec 2025 12:00:22 +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
 <SRS0=Fhd1=6R=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vTfLK-0003jW-D1
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 12:00:22 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f7cf9dbf-d688-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 13:00:21 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-59584301f0cso15902e87.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 04:00:21 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-598f2f45897sm817793e87.40.2025.12.11.04.00.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 04:00:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f7cf9dbf-d688-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765454420; x=1766059220; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=X5E+qVkbbRQT13XEsiZ2eZB+34yprU7q+ZJweXmIlWs=;
        b=OccqK5lBdbISMm8wlnM+SL/8k3XcH7RaMgrU7/hWWCl40KfHD4pUcI97HTfbniQL9k
         bBhPx9q5ehqcX8sI1fw6GwTcfm4gCLJkWBqGDmkyXz56ZbAJiPZqFihwp+jlhQtFHMDs
         8TqmrUuAmUc7Y6c3kb1Xro+FsphSd61puR83UHu4enfSWzKKXZBKNmiCZ9GXgLpROUZh
         B044d7t/1FnRn6Mm5POsqyJff6XV3RIydCoWFHyAw2qIxcRoTOoKGarQx+twQ896weOk
         fUjfdX/2xfDWzzSkIksVXvD0yxS0fkHaR7oV6IuTSDVJ9zgO+oWowT2hai2Ink6Caqin
         IIfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765454420; x=1766059220;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=X5E+qVkbbRQT13XEsiZ2eZB+34yprU7q+ZJweXmIlWs=;
        b=QdaJUxghZU/jXfPag4QilN90YLjISbqh7/DJ9T9JM4ZxGVNdx9RCksYq6sJOv0M8d9
         gyWCN8gN3MrkhSFOYQ77RHcQo1KVYxn3+nO0QAHmGxp30+QEt8HK7mCLQlq4apNyXbcc
         WMjiLJkxAHz067PZOLL1xdv0cJEoY8+8awTV4A2Tv7IFhlvtDDxax/nBREgxm8j6p5U/
         fw/aQsAAqTErSRBalQ6wsyP8dAU4miFqdpj0S1DqtqvjOUgHJ2TlOfQm9m8QOcqTPni9
         LQYuqC7GvqrvzoO88PpohA7yf8cx8nG73OiaLDkX5feKBhB19ll2vz2VChvJrDlC2LW5
         Pcwg==
X-Forwarded-Encrypted: i=1; AJvYcCXXW5HSAYVaWSa7Q57nBvwqx272hKL3TgcGmjwAQWDbcS6Syi5R39N8f2EDBalHHTuWc3NRCrs3hGo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YycsvszTlAvjYqiAY5NTWm1lGgfcKJRCGQAoeRgdss12f7qhcXI
	89UmUHmCI971w/QZcGKhId8fxWh2UKWcq5s5XrRHiRIAwS7V0uKzokGz
X-Gm-Gg: AY/fxX5TWoXAMxjut4IvF6ilaigEAD33H0mVbuIxhHLiY9FAHbEr6aupjkUyU8Xkvv8
	XV4JKLOp90Dz354dvq9cJL8IWhrxYGe1cQZVmGv/fygA6y+e2urQdBwFE8ZFe0VDhHsCdieKQiW
	ix9X4sypQDMEOl+ChdS3AmGHTJgJhNRy9KJprHi4rNtjVrJ5hQYstWkfg3SfyY3K+jzNkiGr4oi
	rVgv036XiSvCHwI/u4FhT6qO/tPmYlS/Zpe5Fg3OhilLwbi66+ffwbF1LJ1hjJplBIyQ/HRIOt3
	A9hb05GvHKQ8hKJNj58pHycQwa6PlkEV6mA2VjDiqRuVFSwVCrR6oVSYg1Y2ljaCLbsySt4quRD
	WoxTdyRALPAxtroguorQd3fBNC/iB1cG29Da1Zs5O+sYUxigH7rGqkLL90IoaRbFt92xVC0EoMI
	vdd/PDc29h1+xuk8dGvpGZ7ulzl8k2jBVdjDC7SqCCuIzlkAu2jt16jqxgLt0BBVdzABCkrLI=
X-Google-Smtp-Source: AGHT+IHnSgoNLgr7eJNNWgxqhfTAsNib7Ef8AC6oim8sLkydqQGxKgZyFPMVE3w10N9XxJ4jBI+fRw==
X-Received: by 2002:a05:6512:3f28:b0:594:5644:dba1 with SMTP id 2adb3069b0e04-598ee4712cfmr2027813e87.0.1765454420087;
        Thu, 11 Dec 2025 04:00:20 -0800 (PST)
Message-ID: <849f4eaf-3b45-4526-9ef1-4fb38015fdd5@gmail.com>
Date: Thu, 11 Dec 2025 13:00:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/3] xen/riscv: introduce vSBI extension framework
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1764582112.git.oleksii.kurochko@gmail.com>
 <3b67330dc4c1aa053eb15261a559e7b4eac3f493.1764582112.git.oleksii.kurochko@gmail.com>
 <df316e2f-9eb0-4bb8-96cd-e5e0c42d123e@suse.com>
 <02b72d6f-d95b-4caf-825a-15280902af27@gmail.com>
 <a6ab2189-bf24-4384-8b28-58729c7d0d9f@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <a6ab2189-bf24-4384-8b28-58729c7d0d9f@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/11/25 10:23 AM, Jan Beulich wrote:
> On 10.12.2025 18:03, Oleksii Kurochko wrote:
>> On 12/8/25 3:25 PM, Jan Beulich wrote:
>>> On 01.12.2025 11:24, Oleksii Kurochko wrote:
>>>> This commit introduces support for handling virtual SBI extensions in Xen.
>>>>
>>>> The changes include:
>>>> - Added new vsbi.c and vsbi.h files to implement virtual SBI extension
>>>>     handling.
>>>> - Modified traps.c to handle CAUSE_VIRTUAL_SUPERVISOR_ECALL by calling
>>>>     vsbi_handle_ecall() when the trap originates from VS-mode.
>>>> - Updated xen.lds.S to include a new .vsbi.exts section for virtual SBI
>>>>     extension data.
>>>> - Updated Makefile to include the new vsbi/ directory in the build.
>>>> - Add hstatus register to struct cpu_user_regs as it is needed for
>>>>     a check that CAUSE_VIRTUAL_SUPERVISOR_ECALL happens from VS-mode.
>>> I can spot the check, yes, but without the field ever being set how is one
>>> to determine whether that check actually makes sense?
>> But hstatus is set automatically when a trap occurs and will be copied in
>> handle_trap() in entry.S.
> Just that entry.S isn't even touched by this series. Did you perhaps omit an
> important part of the change?

Yes, it was omitted. I planned to introduce it as part of a larger update to
entry.S when jump (giving control) to guest support is implemented in the hypervisor.
Considering what is written here...

>
>> If you think it is better to introduce saving and restoring of hstatus in
>> handle_trap() now, or instead drop the handling of
>> “case CAUSE_VIRTUAL_SUPERVISOR_ECALL:” in do_trap(), please let me know.
> I think what I said above is quite clear: When you introduce a field that's
> supposed to be filled upon entry to the hypervisor, the entry code wants
> updating accordingly.

... I will prepare a patch that at least introduces the hstatus-related updates
in handle_trap() in entry.S.

>>>> --- a/xen/arch/riscv/traps.c
>>>> +++ b/xen/arch/riscv/traps.c
>>>> @@ -15,6 +15,7 @@
>>>>    #include <asm/processor.h>
>>>>    #include <asm/riscv_encoding.h>
>>>>    #include <asm/traps.h>
>>>> +#include <asm/vsbi.h>
>>>>    
>>>>    /*
>>>>     * Initialize the trap handling.
>>>> @@ -114,6 +115,13 @@ void do_trap(struct cpu_user_regs *cpu_regs)
>>>>    
>>>>        switch ( cause )
>>>>        {
>>>> +    case CAUSE_VIRTUAL_SUPERVISOR_ECALL:
>>>> +        if ( !(cpu_regs->hstatus & HSTATUS_SPV) )
>>>> +            panic("CAUSE_VIRTUAL_SUPERVISOR_ECALL came not from VS-mode\n");
>>> This might more naturally want to be BUG_ON()? Assuming of course the value
>>> in question is exclusively under hypervisor control. Otherwise panic() would
>>> also be wrong to use here.
>> Only hypervisor can access ->hstatus (of course, hart is changing it when a trap
>> happens, for example).
>> BUG_ON() is a good option for me.
> Just to clarify: "can access" != "under control". There's also the possibility
> that a guest could do something causing the hardware to raise a
> CAUSE_VIRTUAL_SUPERVISOR_ECALL trap without setting HSTATUS_SPV. That was the
> underlying question here.

It is impossible for a guest to do something like that, because when the guest
is running it is in VS or VU mode, and when a trap is taken into HS mode the
virtualization mode V is set to 0 and ,in addition, hstatus.SPV and
sstatus.SPP are set according to the table:


Previous Mode SPV SPP
    U-mode      0   0
    HS-mode     0   1
    VU-mode     1   0
    VS-mode     1   1

(the panic() message should use “guest mode” instead of “VS mode”)

>
>>>> --- /dev/null
>>>> +++ b/xen/arch/riscv/vsbi/vsbi.c
>>>> @@ -0,0 +1,46 @@
>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>>> +
>>>> +#include <xen/sched.h>
>>>> +
>>>> +#include <asm/processor.h>
>>>> +#include <asm/sbi.h>
>>>> +#include <asm/vsbi.h>
>>>> +
>>>> +extern const struct vsbi_ext _svsbi_exts[], _evsbi_exts[];
>>>> +
>>>> +const struct vsbi_ext *vsbi_find_extension(unsigned long ext_id)
>>> static?
>> It could be use not in vsbi.c (for example, in the next patches it is used for
>> SBI_EXT_BASE_PROBE_EXT), so it shouldn't be static.
> Okay. In RISC-V that's okay as long as it's not subject to Misra scanning. Yet
> still introducing a non-static function without callers from other CUs may
> warrant a remark in the description. Once RISC-V becomes subject to Misra scans,
> such will be problematic, after all.

I will add such a remark in the commit description.

>
>>> Also, again - is the ext_ prefix adding any value here?
>> Not really, I guess.
> Maybe, to still distinguish from "fid", use "eid" here then?

Makes sense to use eid. I will apply this change.


>
>>>> +{
>>>> +    const struct vsbi_ext *vsbi_ext;
>>>> +
>>>> +    for ( vsbi_ext = _svsbi_exts; vsbi_ext != _evsbi_exts; vsbi_ext++ )
>>>> +        if ( ext_id >= vsbi_ext->eid_start &&
>>>> +             ext_id <= vsbi_ext->eid_end )
>>>> +            return vsbi_ext;
>>> What if multiple entries have overlapping EID ranges?
>> Good question, I wasn't able to find that EID is always unique in SBI spec,
>> but, at the same time, if to look at all available extensions and their id(s),
>> they are always unique, so I expect that they will be always unique, otherwise,
>> it won't be possible which extension should be used.
> Then should there be a build-time (or if that's not easily possible, boot-
> time) check?

Considering that the .vsbi.ext section is filled dynamically, I think it would
be quite difficult to perform a build-time check without writing an additional
script to parse the .vsbi.ext entries and verify that there are no overlaps,
which seems excessive.

A boot-time check is much easier.

>
>>>> +void vsbi_handle_ecall(struct vcpu *vcpu, struct cpu_user_regs *regs)
>>>> +{
>>>> +    const unsigned long eid = regs->a7;
>>>> +    const unsigned long fid = regs->a6;
>>>> +    const struct vsbi_ext *ext = vsbi_find_extension(eid);
>>>> +    int ret;
>>>> +
>>>> +    if ( ext && ext->handle )
>>>> +        ret = ext->handle(vcpu, eid, fid, regs);
>>> Is a registration record NULL handler pointer actually legitimate / useful?
>>> (If there was range overlap checking I could see a reason to permit such.)
>> it is a good question, I think ext->handle = NULL should be impossible. At
>> least, at the moment I can't come up with the case where it is possible and
>> what will be a use case. I will drop ext->handle check.
>>
>>>> +    else
>>>> +    {
>>>> +        printk("Unsupported Guest SBI EID #%#lx, FID #%lu\n", eid, regs->a1);
>>> Are the #-es ahead of the %-s adding value here?
>> It is how SBI spec writes them. For example,
>>    9. Hart State Management Extension (EID #0x48534D "HSM") . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
>>    9.1. Function: Hart start (FID #0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
>>
>> So I thought that it would help to find stuff faster.
> Okay. Maybe mention such in the description?

Sure, but I think a comment above printk() will be enough.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 12:06:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 12:06:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1183993.1506550 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTfRa-0004Lx-2v; Thu, 11 Dec 2025 12:06:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1183993.1506550; Thu, 11 Dec 2025 12:06:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTfRZ-0004Lq-Vm; Thu, 11 Dec 2025 12:06:49 +0000
Received: by outflank-mailman (input) for mailman id 1183993;
 Thu, 11 Dec 2025 12:06:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QWGN=6R=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vTfRY-0004Lj-Q2
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 12:06:48 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dd9d0f0a-d689-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 13:06:46 +0100 (CET)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-37a33b06028so34991fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 04:06:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dd9d0f0a-d689-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765454806; x=1766059606; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZbGBt/2aTcUBzV2qgSvTqRAluVntdo6PYZ2c9n6/i7w=;
        b=Sw9bDDvcnoWqF2uY2hMDtfZzEZSuRUK7kOtpIMk1UWAZftRuH33vkFdHgu3Q0NYWH2
         m9je4frbIwdxMj8c0e80avk5zk3cp5UjJ8IXQLWEFn8yNvn2OcQBeneyaoR+Y+Fhs0WN
         m4x6NeYO+hLbPAMv2UlZ9j9LqR4Q7cqMNDJaRE8P2ix/QNx4rIV/31BPz6g7uutFH3UX
         cWyS/VgVZrEFGZVT4grJ6cc37QMuxtm4oaXE2dVrOMERP2KFgFT6a5sgzU6STFVirur+
         MoXyKytg8MgVv4NFgFCiSexL02Y/WWJOoiF0GskqcTbz34OMg9xZmNj/ANjltsr3TUNT
         2NwQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765454806; x=1766059606;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ZbGBt/2aTcUBzV2qgSvTqRAluVntdo6PYZ2c9n6/i7w=;
        b=QyTrdn1NmLL9FhL10v7Wfa5RWDXzo0xEmIFEbZMgzz2ZN7SI2FpaBc/v8yj1k6Yu9l
         akkG+c3D/ew3WbZcpAEMElEvHXGzb13D06zh6oKUyNpIIqU/FZMTCHiGYfNEjUhqm+pj
         JkiDlmsRM3+U7+V6s7J40XgKYJY2mtd+fKFbK5h2Kg6ycY0f3yaAV8pOx9Pu5DosQISF
         J4KO0uKVEJhaH+elm+b0LkXfXfiUhwsE9l/Wc7fnu9vfQbsMxiLL3/zzNtXp7xFi7HNi
         oxN0+9KEbPImJzZxhx2vsEns9dLs5zux2WtYTJznN+Yz1FyIxKkIZ3Hp3cuCw23tWNTF
         +Hiw==
X-Gm-Message-State: AOJu0YxTdLX+NwiYKPeAzG1hPLR+/s3lqC+ugbkwtjZZpXI4Si5mIzVB
	tsCltizjdbQvthib/tdoQbM+1fDcsDCaSf1ESB7cH/T+E9/1BIfpXbj1FADd7f7+QQU3MqLPcBM
	/keyy1aJtntKUiKyy42QTHXlbJcAwfwY=
X-Gm-Gg: AY/fxX4BhP7haYm2gKLjPr1KWPrVYJ7OX02LzWlgzZ3aHZBTiL4hWdHqJHctji5YzbD
	UUsLKh82xBWG8YWvudj/PahNQH5/aZbJwUmveCWMxcJn++CrKi4yczTHaktUF129P/y1NOBQ6bt
	vSppZSevPxN2wr10ouU3DvK0PCBz2G8x1hOgIfOBiBpiqMlbcMAP0GCrVq0CMusVmVEOS/ANOOd
	iZs6I5sZJGR/Of/iitH2Y1jrr/h6ladsaycARTZQ+RXQMQR8+TXvUCe0ozzFsDO6ZkTDWI=
X-Google-Smtp-Source: AGHT+IH6zI8Ba4uk5nIn6F60221uT6K0LkyrESf/Vcm3b57S6+vZt4VYeszWypxJIdqgAbLHeg1uw2kYSFXhRTkTu5E=
X-Received: by 2002:a05:6512:114f:b0:595:910c:8ee9 with SMTP id
 2adb3069b0e04-598ee4c1ceamr1643297e87.37.1765454805832; Thu, 11 Dec 2025
 04:06:45 -0800 (PST)
MIME-Version: 1.0
References: <CAGeoDV_YS8hV2+FXVgXxvHLw=MQOAoJZwrP1Ypw8+ZUjKB9GSA@mail.gmail.com>
 <a5361a51-128d-47e0-b5ed-58bfd0d9e8ad@suse.com> <CAGeoDV-vfiKECmvWzJ4dnzicXDL7XJDxwEy_Z737k+234Gkzpg@mail.gmail.com>
In-Reply-To: <CAGeoDV-vfiKECmvWzJ4dnzicXDL7XJDxwEy_Z737k+234Gkzpg@mail.gmail.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 11 Dec 2025 14:06:32 +0200
X-Gm-Features: AQt7F2qPD528PAzULfqjZ3MqN3_NgqidJlMwV6sr3WJA7osTIK_UTeGv28K50iU
Message-ID: <CAGeoDV8VZ1m6CQAkKK-9UDz4npXm2V+Up+BBo=+NyzgLJMW+3g@mail.gmail.com>
Subject: Re: Strange symbols_lookup() behaviour in test-symbols on arm64 CI
To: Jan Beulich <jbeulich@suse.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Dec 11, 2025 at 1:44=E2=80=AFPM Mykola Kvach <xakep.amatop@gmail.co=
m> wrote:
>
> On Thu, Dec 11, 2025 at 1:15=E2=80=AFPM Jan Beulich <jbeulich@suse.com> w=
rote:
> >
> > On 11.12.2025 11:29, Mykola Kvach wrote:
> > > While working on an arm64 s2ram series for Xen I have hit what looks
> > > like very strange behaviour in symbols_lookup() as exercised by test-=
symbols.
> > >
> > > The series is in the branch referenced at [1]. All patches there exce=
pt
> > > the last one build and pass CI; adding only the last patch makes the =
CI
> > > job referenced at [2] start failing.
> > >
> > > Note that the tests in that job are built without CONFIG_SYSTEM_SUSPE=
ND
> > > enabled, so most of the code introduced by the s2ram branch is not
> > > compiled at all for that configuration. That is why I initially did n=
ot
> > > expect my series to affect this job.
> > >
> > > To investigate, I tried to reproduce the issue locally. I downloaded =
the
> > > xen-config artifact from the failing job [3] and used it to build Xen
> > > with my local aarch64 cross compiler. With this local toolchain
> > > I could not reproduce the failure, and the resulting .config changed =
slightly
> > > compared to the job's config. The relevant part of the diff looks lik=
e this:
> > >
> > >     diff --git a/xen/.config b/xen-config
> > >     index 057553f510..44dcf6bacc 100644
> > >     --- a/xen/.config
> > >     +++ b/xen-config
> > >     @@ -3,11 +3,11 @@
> > >      # Xen/arm 4.22-unstable Configuration
> > >      #
> > >      CONFIG_CC_IS_GCC=3Dy
> > >     -CONFIG_GCC_VERSION=3D130300
> > >     +CONFIG_GCC_VERSION=3D120201
> > >      CONFIG_CLANG_VERSION=3D0
> > >      CONFIG_LD_IS_GNU=3Dy
> > >      CONFIG_CC_HAS_ASM_INLINE=3Dy
> > >     -CONFIG_CC_HAS_ASM_GOTO_OUTPUT=3Dy
> > >     +CONFIG_GCC_ASM_GOTO_OUTPUT_BROKEN=3Dy
> > >      CONFIG_FUNCTION_ALIGNMENT_4B=3Dy
> > >      CONFIG_FUNCTION_ALIGNMENT=3D4
> > >      CONFIG_ARM_64=3Dy
> > >
> > > So there is at least a difference in GCC version and asm-goto related
> > > Kconfig options between the CI environment and my local one.
> > >
> > > After that I tried rebuilding inside the same Docker image that GitLa=
b
> > > CI uses:
> > >
> > >     registry.gitlab.com/xen-project/xen/alpine:3.18-arm64v8
> > >
> > > When I build Xen in that container, using the same branch, the proble=
m
> > > reproduces in the same way as in the CI job.
> > >
> > > Even more confusingly, adding extra prints in test_symbols just befor=
e
> > > the calls to test_lookup() makes the problem disappear. This made me
> > > suspect some undefined behaviour or logic issue that is very sensitiv=
e
> > > to optimisation or layout changes.
> >
> > All symptoms described make me suspect you're hitting a problem we're
> > already in the process of hunting down. Can you please take [1], make
> > the small adjustment necessary to Arm's linking rule, and see whether
> > you get a build failure in the case where right now you get a boot time
> > crash? Of course no other changes to code or data layout should be done=
,
> > or else you may observe false negatives.
>
> I tested the issue with the provided patch, and it is still reproducible.

I also triggered a pipeline with the patch you provided on top of my
changes [1],
and it failed there as well. In fact, it exposed additional problems
in other jobs.

[1] https://gitlab.com/xen-project/people/mykola_kvach/xen/-/pipelines/2209=
153728

>
> This is my working branch:
>
> e8d5baab50 (HEAD -> reg) symbols: check table sizes don't change
> between linking passes 2 and 3
> e53439fdfc (xen_gitlab/reg) xen/arm: Add support for system suspend
> triggered by hardware domain
> eaa461f3b5 xen/arm: Implement PSCI SYSTEM_SUSPEND call (host interface)
> 4236fff9a4 xen/arm: Save/restore context on suspend/resume
> a150f3d4bb xen/arm: Resume memory management on Xen resume
>
> You can find the following line in the attached Xen boot log:
>
> (XEN) [ 0.010785] Latest ChangeSet: Tue Dec 9 11:11:40 2025 +0100 git:e8d=
5baab50
>
> >
> > Jan
> >
> > [1] https://lists.xen.org/archives/html/xen-devel/2025-12/msg00390.html
>
> Best regards,
> Mykola


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 12:29:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 12:29:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184014.1506560 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTfn5-0007ta-NY; Thu, 11 Dec 2025 12:29:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184014.1506560; Thu, 11 Dec 2025 12:29:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTfn5-0007tT-KV; Thu, 11 Dec 2025 12:29:03 +0000
Received: by outflank-mailman (input) for mailman id 1184014;
 Thu, 11 Dec 2025 12:29:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BerU=6R=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vTfn3-0007t7-Ar
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 12:29:01 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f79baa48-d68c-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 13:28:58 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id D49B44EEBF88;
 Thu, 11 Dec 2025 13:28:57 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f79baa48-d68c-11f0-9cce-f158ae23cfc8
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765456137;
	b=QC5oQGWpg2/sFEv949u5C92VkKNXIt3KIAXP/EEL66Udl0kf/HPfv5LjGArPvkYI9sKP
	 RuYEzDIM8aF6V3eWwbS+xxhHTEzFrwTATrFELcUwPTM+ddtez7lhHjrTAp9oFkmrqQh1z
	 389VuVrRAwS7USlM8jExrQ2WatypaaJVr2dUtBEGwe7cZjZJTTAHchBF9MUosOcN6g2ZN
	 dDtqAoG4Xx99udqCpryjFa8NPr65ERseqNnBwHxdWD4KW7/zGI4UsNe8aB8AoaSASqe+2
	 ieKhQ4P0iPtgJWVsiVrYFT/65m7yrJsPYwRJsq43i1T9uvoPnFtKQUufqTibYUj4/yASM
	 CRCAHmguvCc1sVUtQHS3gN3CDyIRbpAhmXGjN43RmlMaF8n4VfyFAwinQO6vN+v78TZea
	 9LQ6X7WN4Hn+wxaNzFR3PuWWBQUy0FiWwAXvpT8RuHJj6eDISQ781MxdWlnWwvwOD2D0q
	 DX6QV4NLm1lUtop3wr5CTEZXmDn4nTHfTG1V4iGsAbsDX9ZvxNvpwvAIaIbnsk9Zu8we2
	 xf44g7lkY8WXLlAzCjiXo5jhdaKVZhYAoXNzMeoCVnk3ewLegL2rfpCMt/KwBfE0FZ7s0
	 ln6k86LNeDuSOSmMuGPsPgXnPrr5502ezkKzhfsG10Xg+rcD9UeqZjeKGF+mBNA=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765456137;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=ntcThBm2kbHpwA1GB3ODhqy0ZvTWsayC/ODxlnyFoy0=;
	b=Gp2ZZ/bG01DthB3RhYIKfIAC1ZQ3xz2D3g6cDP7TlDwUfnE/4fhxBb0sdv4VGhNldgaz
	 VTzb+X/7+sHHX460+dAHfTb8lHDi01O93Op2CQFrDYm86cN5g1njWSUu6dXRmiNk/eODz
	 PsZ3CqHsb8hl8AAiQDM/iJ/55/5OweEXICVk9F4YoM3+Ul2dWGXbnDnF+GkedQvUg/TUi
	 YmDi7B41S2v/tuv6EGK3q+DH2sCSCTnqrvvf9tvuo2Jyi/z+CV5DrEKwxAPJRvwfMGqpF
	 qn5JAjNWc8OC2Exc9E0UjeAOjRy2Ljcna+93C+Xl13NkOKIXdKh9V1EeCcYnrtSdNbrWK
	 l6tRXHXqgytgB/bgijYENRQjjgZpWIEVDCbcEQIUIquRHRzmRl4xWexX5qgkuIl9NoACI
	 B917JO/L9F4JuoAci+3NxPTi9BhcoxTdAwdBSj+iTdq2hJf58zsOBjOQGZVvRWPSUydyd
	 UxGISxZ4I5ygi08n/7FTnU04VLS9M/ipwReDHPgHeA4ydb5gVHSRm3trRfBCKq2EEROr9
	 kb7fuhi/W8ErLXRdATu8g7veHp9Ox8qpADMlMqdNFLx8nTsCLChg9dVjdj02mEm6dy72B
	 xbEPu/gT96KwVmRh2z+4IE3OuOLVQm8lmGzeX21DnE5BEaU9QmWaZI9IfSBquC4=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765456137; bh=uBLOtjRDK76/mMampjfxIZozKTPIpAZxf9EgZxb2r0E=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=uJEJRcQlKdCVDhZXnxNHlRejsqGBTmztGAffwlyjAQaU4afPotWSw4Zn4l85PY82/
	 j6UwjHkNd2ar+DgZi+ndPdoBzx5Em/4zTpDErhIQrNRqtW0nsVQ0sriUbxXOSj0qXs
	 idChJw+S1HWY9US/Bv3BVbIhIyiUMlFZL3nfwA4f1KJTb3TAGIx9C4lHpEBvfskY7u
	 VRTBoDEeW/k2HZkUTx7ojnnoRgVK+v3upss/ccFHHm137V6RONk5LiM8wBOWApghgM
	 LCnRMEVXfpByOh604qLYIi0lkPVO21NMBCMhCMt3fcDSUkNlNMCI0r9CuP/5IROGkD
	 eZPhXQWM1BNfA==
MIME-Version: 1.0
Date: Thu, 11 Dec 2025 13:28:57 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper3
 <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "consulting @ bugseng . com"
 <consulting@bugseng.com>, Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 5/5] x86: Fix missing brackets in macros
In-Reply-To: <9aee3813bc96718ce0d772ead4f0578f@bugseng.com>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
 <20251210183019.2241560-6-andrew.cooper3@citrix.com>
 <5a4695fa-1520-4d52-adc3-72c159892e33@suse.com>
 <fdf95d1d02274a6442d4eb4c6b7284b8@bugseng.com>
 <d2988b31-66e0-4a6b-8f77-4ae2cf2c4bd4@suse.com>
 <9aee3813bc96718ce0d772ead4f0578f@bugseng.com>
Message-ID: <d447f57045f1a7463fcc14faf271be87@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-12-11 11:38, Nicola Vetrini wrote:
> On 2025-12-11 10:30, Jan Beulich wrote:
>> On 11.12.2025 10:15, Nicola Vetrini wrote:
>>> On 2025-12-11 09:36, Jan Beulich wrote:
>>>> On 10.12.2025 19:30, Andrew Cooper wrote:
>>>>> With the wider testing, some more violations have been spotted.  
>>>>> This
>>>>> addresses violations of Rule 20.7 which requires macro parameters 
>>>>> to
>>>>> be
>>>>> bracketed.
>>>>> 
>>>>> No functional change.
>>>>> 
>>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>>> ---
>>>>> CC: Jan Beulich <JBeulich@suse.com>
>>>>> CC: Roger Pau Monné <roger.pau@citrix.com>
>>>>> CC: Stefano Stabellini <sstabellini@kernel.org>
>>>>> CC: consulting@bugseng.com <consulting@bugseng.com>
>>>>> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>>> ---
>>>>>  xen/arch/x86/mm/shadow/multi.c     | 2 +-
>>>>>  xen/arch/x86/mm/shadow/private.h   | 6 +++---
>>>>>  xen/drivers/passthrough/vtd/dmar.h | 2 +-
>>>>>  xen/include/xen/kexec.h            | 4 ++--
>>>>>  4 files changed, 7 insertions(+), 7 deletions(-)
>>>>> 
>>>>> diff --git a/xen/arch/x86/mm/shadow/multi.c
>>>>> b/xen/arch/x86/mm/shadow/multi.c
>>>>> index 03be61e225c0..36ee6554b4c4 100644
>>>>> --- a/xen/arch/x86/mm/shadow/multi.c
>>>>> +++ b/xen/arch/x86/mm/shadow/multi.c
>>>>> @@ -781,7 +781,7 @@ do {
>>>>>                      \
>>>>>          (_sl1e) = _sp + _i;
>>>>>   \
>>>>>          if ( shadow_l1e_get_flags(*(_sl1e)) & _PAGE_PRESENT )
>>>>>   \
>>>>>              {_code}
>>>>>   \
>>>>> -        if ( _done ) break;
>>>>>   \
>>>>> +        if ( (_done) ) break;
>>>>>   \
>>>> 
>>>> I don't understand this: There are parentheses already from if()
>>>> itself.
>>> 
>>> Yeah, syntactically there are, but those are parsed as part of the 
>>> if,
>>> rather than its condition; the AST node contained within does not 
>>> have
>>> parentheses around it.
>> 
>> I fear I don't follow. Besides us not using parentheses elsewhere when
>> if() is used like this macros, the point of requiring parentheses is 
>> (aiui)
>> to make precedence explicit. There already is no ambiguity here due to 
>> the
>> syntactically require parentheses in if(). Why would a rule and/or the
>> tool require redundant ones?
>> 
> 
> this is parsed as (more or less) "if_stmt(integer_literal(0))" rather 
> than "if_stmt(paren_expr(integer_literal(0)))" when the macro is 
> invoked with 0 > as parameter _done. Now, syntactically the parentheses 
> are in the source code, so the letter of the rule is satisfied (as long 
> as there is a single
> condition in the if condition), but the presence of those parentheses 
> is lost when parsing. I see how this can be seen as a false positive, 
> and we will
> definitely add some special handling so that cases like this are 
> properly recognized, but for simplicity here I would add some extra 
> parentheses, at
> least until the false positive is not resolved

Actually giving this a closer look the tool is correct: the fully 
expanded code is:

  19562     }} if ( ({ (__done = done); }) ) break; 
increment_ptr_to_guest_entry(((void*)0)); } unmap_domain_page(_sp); } 
while
                                 <~~>

so the "done" argument ends up being expanded without parentheses, hence 
the report is correct and the extra parentheses are needed, but should 
be put into

/* 32-bit l1, on PAE or 64-bit shadows: need to walk both pages of 
shadow */
    791 #if GUEST_PAGING_LEVELS == 2 && SHADOW_PAGING_LEVELS > 2
    792 #define FOREACH_PRESENT_L1E(_sl1mfn, _sl1e, _gl1p, _done,  _code) 
       \
    793 do {                                                              
       \
    794     int __done = 0;                                               
       \
    795     _FOREACH_PRESENT_L1E(_sl1mfn, _sl1e, _gl1p,                   
       \
            
<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    796                          ({ (__done = _done); }), _code);         
       \

rather than at the level of the if, I think

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 12:50:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 12:50:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184025.1506569 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTg7a-0003TP-4C; Thu, 11 Dec 2025 12:50:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184025.1506569; Thu, 11 Dec 2025 12:50:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTg7a-0003TI-1e; Thu, 11 Dec 2025 12:50:14 +0000
Received: by outflank-mailman (input) for mailman id 1184025;
 Thu, 11 Dec 2025 12:50:12 +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
 <SRS0=oCI8=6R=gmail.com=samaan.dehghan@srs-se1.protection.inumbo.net>)
 id 1vTg7Y-0003TA-FD
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 12:50:12 +0000
Received: from mail-pj1-x102c.google.com (mail-pj1-x102c.google.com
 [2607:f8b0:4864:20::102c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id edb18851-d68f-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 13:50:11 +0100 (CET)
Received: by mail-pj1-x102c.google.com with SMTP id
 98e67ed59e1d1-3436d6ca17bso19293a91.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 04:50:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: edb18851-d68f-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765457410; x=1766062210; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5JhcjGGZKr5BHFycQfO4Gb8CtFfIXuan0DVFM27KhBo=;
        b=dDWKTUXg1EAtj1cC0fSoVfSmraLGcLWJM/ebePGdVlooKdBE9VRh5YpV1rA9ZmlrF+
         F38eyeNd6uThU4l+pGOAQpClDYi4hXciPhWc+6y4YSi33piIkMPoP3hjk7f5s8N76kO1
         1pba+QPO+H6wcD2+h/lLkOXb5e6h+At/m/H53aHpw2sXFMGpI7e6yIkMiPwsKxCS/GYd
         qarnLJj8iv/TGu1xDfCB6gwWXrGCcEDzN6YE49avPmk59OH77lseXOvNr4Dh1+9U8XAa
         gt3wPkCZjARh30WLqLdXpJk/YeUddMuJimnxsldrP7AGpyaz1vbj9w7rxBVNlc3hMljy
         cAQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765457410; x=1766062210;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=5JhcjGGZKr5BHFycQfO4Gb8CtFfIXuan0DVFM27KhBo=;
        b=oT4UlU1MBzpglzcMc5CBgCW+99YLeOrrtMbEpoxfjZrv1v1/82ZvqUWfo4VTFUfwFI
         DjmwD6vhYlRFmBk1tuQq0/pVBYSjGY+gk541Wvztd0RdqPhWY/k2Vvr6vEdZRDO1TCh5
         zCyirrV1pCnEQJgHqyM+gczaA9ZDdfRF8vQNO6VPzPt837SXKc3Ssnks5ZwRTduWPbtg
         QOOecUgmhvymate6r9msTq6+ihjwnvqhOhKewh2eWRS8hPSDx+rHlEM6Gm6DUsZshipv
         vDRQeQsgBpkyOpJsCBmL33uwTrJnJrLz6zj2zYi45IM2m5GyNbK5ObSPYpuvAicP+vJR
         ly7Q==
X-Gm-Message-State: AOJu0YwajtEjrraJkmme8IpBYd24iKipma3GdguhPEXlYxhU2G5F6E5a
	3wnbC4AlFrmXIbtVfhROFp+VzAPt8hGTHqGOICaS6ey/++gqrdnJgH6Lp0vu0G6d1OJIeem4coC
	xxD6d6K61sJcTksGMvsAlDKposaYBYg==
X-Gm-Gg: AY/fxX7CNCD9n24JztJcvsUg5EGLh0IZeGz6EtQaNDd7JpvYx4xBVsp5uJ4DZy6xin6
	4eoDQlZIGaT7YXHD8HISwrzNlf451FN3JfDMqEqYl0dvB24B6Pj0cwQhsTj6blUUwt/8rCtoovh
	BK0DNV7BgBqO6dAfnVqMO1gCRnwKFrtzCLa1sBlZV0yHAZ3Wlt3TgogHnUH4XeZANdK3s06gd8Q
	AxlH+o8G8yr6BiJMxU60EPpPx/Y+fOq9iyfYxYLrRvTDlRtk4hW+zAqNisb6c+83woNKEXxUFgk
	oTj8D1YxysxBHxbSsu8WLW9W
X-Google-Smtp-Source: AGHT+IH4lqo9+pDbLn9iRBGO+9A8b/7AK577rirzGk8YaMJxQyD8DbaOqHkCOkbkZnKATNL3eWXS59RPub7XRM8Dyqg=
X-Received: by 2002:a17:90b:4d8d:b0:341:b5a2:3e7b with SMTP id
 98e67ed59e1d1-34a72808b3amr5798503a91.4.1765457409717; Thu, 11 Dec 2025
 04:50:09 -0800 (PST)
MIME-Version: 1.0
References: <bd6686e7fc0756e929334792b94ddd66bde125c4.1765239102.git.samaan.dehghan@gmail.com>
 <bb575726fe0ac783121e563b1c92f81f51e41f75.1765420376.git.samaan.dehghan@gmail.com>
 <f49dd123-32ca-46b2-a00e-751267667bd2@xen.org>
In-Reply-To: <f49dd123-32ca-46b2-a00e-751267667bd2@xen.org>
From: Saman Dehghan <samaan.dehghan@gmail.com>
Date: Thu, 11 Dec 2025 06:49:58 -0600
X-Gm-Features: AQt7F2qP_dF3HszUaSGYMVzeB_qCi1GeW2WXoN_BFugRMkis-k8FYOWpYz7iJUI
Message-ID: <CAHFNDNgUNg2zTvxweZndgWwZ9EJjFJr3YB7Ouk-4x3RqcKRnPA@mail.gmail.com>
Subject: Re: [PATCH v2] xen/arm64: Add support Clang build on arm64
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Dec 11, 2025 at 3:35=E2=80=AFAM Julien Grall <julien@xen.org> wrote=
:
>
>
>
> On 11/12/2025 02:39, Saman Dehghan wrote:
> > This patch enables building Xen on arm64 architecture using the Clang c=
ompiler.
> > Changes include:
> > - Add explicit -march=3Darmv8 flag for arm64 builds.
> > - Add `__attribute__((target("fp-armv8")))` to `vfp_save_state` and
> >    `vfp_restore_state` functions when building with Clang to allow
> >    FP instructions despite `-mgeneral-regs-only`.
> >
> > Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>
> > ---
> >   README                   | 2 ++
> >   xen/arch/arm/arch.mk     | 1 +
> >   xen/arch/arm/arm64/vfp.c | 6 ++++++
> >   3 files changed, 9 insertions(+)
> >
> > diff --git a/README b/README
> > index 889a4ea906..67c1aa7fe6 100644
> > --- a/README
> > +++ b/README
> > @@ -45,6 +45,8 @@ provided by your OS distributor:
> >         - For ARM:
> >           - GCC 5.1 or later
> >           - GNU Binutils 2.25 or later
> > +        or
> > +        - Clang/LLVM 11 or later
>
> I forgot to ask. Is this cross-compiling or native? Or both?
>
> And OOI, how did you chose Clang 11?

Hi Julien,

To be consistent with minimum requirements for Clang/LLVM on x86.

~Saman

>
> Cheers,
>
> --
> Julien Grall
>


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 12:52:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 12:52:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184037.1506579 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTg9O-00043i-Jl; Thu, 11 Dec 2025 12:52:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184037.1506579; Thu, 11 Dec 2025 12:52:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTg9O-00043b-H9; Thu, 11 Dec 2025 12:52:06 +0000
Received: by outflank-mailman (input) for mailman id 1184037;
 Thu, 11 Dec 2025 12:52:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Fhd1=6R=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vTg9N-00043T-1r
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 12:52:05 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3084ef9a-d690-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 13:52:03 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-64951939e1eso87643a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 04:52:02 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa2e6dc1sm261121066b.17.2025.12.11.04.52.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 04:52:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3084ef9a-d690-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765457522; x=1766062322; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=gjHKG9zHoHi2T4haNYd1lNI7CXkznaRBQj6DUEU14rQ=;
        b=SiR60E7m3EIdK0ibBl95mscqPeSmeU2giQ34N/sIcNI/RnMw9BpXSe17qREe1DXxQj
         LGRG2+TcVyOzBRZrkRvbzZvU+UkKTqzjYd/unWSmxcWaZHOWXbV++93cl8ySwc3MYr1X
         melgHdfkqNI7HPPeg+DA4YIc7RtjRC04zqXWZoelZDLyvdfPtk3SDt2aZSYVIP0/+LOq
         5ayI1Cat/c/AZbM5WjQHPro7eKs8LZHb0glbcaB+9hPpUVrpNXJPW1ewA+FTmwDxcetC
         V4WcWmyYtfqj+8ltHozHmxCP17EvzRDfo3P2X6SMjEdMfV56Wt/69O5lJHq6daqY/Xj7
         A8uA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765457522; x=1766062322;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=gjHKG9zHoHi2T4haNYd1lNI7CXkznaRBQj6DUEU14rQ=;
        b=B/sKamnN2DEoETENg4ix4sb0rRieA6oSk6Cyzvzb8TynvM03qlvdJ6LL4MIReU6zsS
         PvkH9uoK5XiLmovMXVUvrzCcVnvfXQ0PiQr4wnDfAe36TcHjlA/hNyTCMrqg2b+VGiyp
         PeO6pkR9XwOBmv/GVjE/dRxyq4jRp5HQrT+EnVfYyysNNpNsOagtGUxU98fTpBiFx8Ey
         L6+xUlwBGnlcdHerCkaOy2im9SkdKwWCSRC7WS32rPyLI0mTuBGNUD0yr6dMX2UkFltt
         Cy3euloHAG5kloaeiRE6EwOtXxedlGyZHeZhKYP+kSmJY9lJ0NalhpZwVaQmIh1Ib0v9
         Zhqg==
X-Forwarded-Encrypted: i=1; AJvYcCVyZIzGBTMb+YYiLSNQWBC55Epys6ZncLPdNCvaPoHi/6ISq3AsnnQgYC3ui9jRXobW7ktnRzzxxyU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzXez+uwcalsZBprsabTUO87Kswjdm4xf8hATwf73Wpxb2cNwms
	M3PoRQGVeCzRO2It66DMg483N+V9Wm8kV8VB+mAWYTNI59BkVnZFMepV
X-Gm-Gg: AY/fxX7HHRijns+MlYD8cCFSP3GMvxR2zOMMvLNLu3zIbF7PVvvOBP2zNTWbsmjcOcQ
	U12sJWqYcG40W+9KPGfU9rV4kxvzSO/fYdNGw5bcwngD5lthKoNDRsCIVAeHpsHrZdC027gyKWP
	iW9Hq264DQl8pbJpCfW2pff13hN2cZBd8SoqcNWbyI3H0/Fn5fdHr+9gHNfp8KuvizG9KmIc9PJ
	art5Z+TcMdQ5x07F1jPtLPYHMk66cMAEu52+uHUcrINU96Rtmm0ZOFaT6RdiVZ4ejzzeQ3J8WCL
	BWHtk9lV4kTgQzUnlYWnUmi13xgxNV5HzWByPHY6f6UvIvvadJECmTVUN9+cAuiL9V+ChQPuWWb
	nelASmWFVD1QZ6MqQtph/dzPGTY4/gD3PuOYnSRUpalIx74YTxTqiXD0pj8oUNODdSX/Fj7RFG2
	GxxW92CmRf49QRnAIW7pF2pXWpQFFxpIXheSuKiUKav3bxX0NsXbXK/WsFAgLP
X-Google-Smtp-Source: AGHT+IH4Qx1hKOzoBZXyN5X3aBiQyqgoGQc2gf6Ni8y5zg8VdZmwAJ7TaV6EO1Ec0cVTzXzPMiRM2Q==
X-Received: by 2002:a17:907:75e1:b0:b7d:11ae:4006 with SMTP id a640c23a62f3a-b7d11ae4373mr20001966b.52.1765457521866;
        Thu, 11 Dec 2025 04:52:01 -0800 (PST)
Message-ID: <60e200ad-96d3-4384-b9a6-458256f87256@gmail.com>
Date: Thu, 11 Dec 2025 13:52:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/riscv: add RISC-V legacy SBI extension support
 for guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1764582112.git.oleksii.kurochko@gmail.com>
 <f4e4dc9beef4618ffaabe1c6caec3e10cf78fd5d.1764582112.git.oleksii.kurochko@gmail.com>
 <c3d2a4c4-f591-4bff-b978-18b8c09cf512@suse.com>
 <c1ca8efb-3e17-45e2-ba90-a6f49616bb51@gmail.com>
 <2c84660b-4333-42f9-b178-aab72be9a40d@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <2c84660b-4333-42f9-b178-aab72be9a40d@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/11/25 12:02 PM, Jan Beulich wrote:
> On 11.12.2025 11:29, Oleksii Kurochko wrote:
>> On 12/8/25 4:05 PM, Jan Beulich wrote:
>>> On 01.12.2025 11:24, Oleksii Kurochko wrote:
>>>> --- /dev/null
>>>> +++ b/xen/arch/riscv/vsbi/vsbi-legacy-extension.c
>>>> @@ -0,0 +1,37 @@
>>>> +
>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>>> +
>>>> +#include <xen/lib.h>
>>>> +#include <xen/sched.h>
>>>> +
>>>> +#include <asm/processor.h>
>>>> +#include <asm/vsbi.h>
>>>> +
>>>> +static int vsbi_legacy_ecall_handler(struct vcpu *vcpu, unsigned long eid,
>>>> +                                     unsigned long fid,
>>>> +                                     struct cpu_user_regs *regs)
>>>> +{
>>>> +    int ret = 0;
>>>> +
>>>> +    switch ( eid )
>>>> +    {
>>>> +    case SBI_EXT_0_1_CONSOLE_PUTCHAR:
>>>> +        printk("%c", (char)regs->a0);
>>> This is guest output, so shouldn't use plain printk().
>> I think that I don't know what should be used instead. Could you suggest me something
>> or point to the code in other arch-s?
>>
>> Or do you mean that guest_printk() should be used?
> No direct replacement will do what you want, as they all prefix something to the
> string passed (which isn't what you want). You may need to buffer characters and
> emit them in batches (full lines unless overly long). For x86 see hvm_print_line(),
> but I think Arm also has something like this.

I don’t recall anything like that for ARM. The only thing related to character
buffering that I remember is in vpl011_write_data_xen()
(https://elixir.bootlin.com/xen/v4.21.0/source/xen/arch/arm/vpl011.c#L76), but it
does not use the buf declared in struct domain_console. Instead, it provides a
separate structure for vpl011:
     struct vpl011_xen_backend {
         char in[SBSA_UART_FIFO_SIZE];
         char out[SBSA_UART_OUT_BUF_SIZE];
         XENCONS_RING_IDX in_cons, in_prod;
         XENCONS_RING_IDX out_prod;
     };

I don’t see that ARM uses struct domain_console.

By the way, I can’t find a counterpart of hvm_print_line() for reading a character(s).
Is domain_console->buf intended to be used only for writing characters?


>
>>>> +    default:
>>>> +        panic("%s: Unsupported ecall: FID: #%lx, EID: #%lx\n",
>>>> +              __func__, fid, eid);
>>> Please don't. domain_crash() may be okay to use here, but crashing the hypervisor
>>> because of unexpected guest input isn't okay.
>> |domain_crash()| is better. I also considered just returning|SBI_ERR_NOT_SUPPORTED|,
>> but it wasn’t too convenient for debugging which FID/EID the guest was called,
>> so I started using|panic()| instead.
> FTAOD - domain_crash() is acceptable here while things are still under development.
> It shouldn't stay like this in the end though: Guests should not be punished like
> this for something Xen hasn't implemented.

Agree, I will create a task in my Xen's repo to not forget to drop panic()/domain_crash().

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 12:53:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 12:53:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184047.1506590 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTgAb-0004ZZ-TX; Thu, 11 Dec 2025 12:53:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184047.1506590; Thu, 11 Dec 2025 12:53:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTgAb-0004ZS-Qf; Thu, 11 Dec 2025 12:53:21 +0000
Received: by outflank-mailman (input) for mailman id 1184047;
 Thu, 11 Dec 2025 12:53:20 +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
 <SRS0=oCI8=6R=gmail.com=samaan.dehghan@srs-se1.protection.inumbo.net>)
 id 1vTgAa-0004YM-9D
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 12:53:20 +0000
Received: from mail-pl1-x634.google.com (mail-pl1-x634.google.com
 [2607:f8b0:4864:20::634])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5ce116b0-d690-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 13:53:18 +0100 (CET)
Received: by mail-pl1-x634.google.com with SMTP id
 d9443c01a7336-297f35be2ffso622385ad.2
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 04:53:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ce116b0-d690-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765457596; x=1766062396; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tSU2plybhLrgyCN7UmWG+2960KnH0dAyA+3GYCfpQhE=;
        b=iA6SNDzQpmySuVes1yd1niVdYz2//SU+llsgSOiTuB8NTn+Gdo6eMEqqEc33B4o8No
         4aVhp82+B9OghwrYTR/FncfhYpWVaJQSO1szlXB9r4bP2JQTj00px+5D5BXUDXVjKruf
         HPq3SkV3UUS+GAfxDDe0vLtJDuTaryYrm7P25eQeGW7d0FpkrcF9SWNy70TBBGD2Lj8o
         qn2E/j7RW8e5XPerN7a6twKLfVbQegzK76ttKOSCVUWDca33QzDgz7RCac1JYwr7XgpL
         psR0ZPRvDcF1jnEWrgaZFWOJZcZR35YZpK7O7eTQ69AiKnZHe5GRoz+feH1EPimOBO52
         J2hg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765457596; x=1766062396;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=tSU2plybhLrgyCN7UmWG+2960KnH0dAyA+3GYCfpQhE=;
        b=XUan3tzm5iInJgoxw2N/s8cfjxz7ry557OJgKUK6ayQLjeqqhiT1iGO0RPTCKfup1e
         Hn34SUIEfAP2IDMxscTRZi/CjCeJkxP/8yfLDdSev1utE817XTWYzsr5CyzzN+ec+kwg
         xDK+OPICJ3Mq/GioJqKVFitIqvoE8qtVHXpABiYvIiHJcsBUt80eTAtfw6ohKyAWy474
         PzlaMJPheToGfvSxev3E+tLNmrA7ysIvnLxRsGa5tFAkQ9hGqVu7K6FA7xJGpI8eXoND
         bI+nrJk+nCwNatqrGOXGijElNDq/EfP6W9qHET7n5qCzNNP0qlYy7TKpE+4/GDWLnTDp
         nClg==
X-Gm-Message-State: AOJu0YxjF18lB7OXtFJwSpBHQEPknVXPFRgczVsHDIfMcoi0qq2eMAW4
	7gJmDYJLh79+2PTtY2HY66p4Iz7duB3PbY+VaHDbqsKp1Bhd1Mv++RrqlNanDzEKCnsrWLsw+Zn
	miyX1YL4kgTkk83iv6ftB+jLpONmmXw==
X-Gm-Gg: AY/fxX6Fh9visEoQTPTquKW+krq3Ulzoalb0lLXoMRI5/HzC0daTEVpI6IVE074HGw4
	TsTKCCpsAudm4YCOjlu3/GLyj7QvoirxjEMzUdH5OdJm0ihcYNR/CsjYBVBLwD6OeQjnVNnxYZQ
	45xqDF5ORWEu4/Nqc+KhJ2Kvy1RwrAA7Y5OpiE66L+5iGQ0yKzoNV7599ckANZVnVFsS1sXSFid
	eFi6yrGm4GPmiQLJwdcChjCjlapY0KIzQboRihpWyxMu1E4ixq75gUjflfagWPDHWCiudXihcug
	b0rETcf7rhYlgHhqetZO7nyO
X-Google-Smtp-Source: AGHT+IFUEUBOkjA3mCUzNTlRBT16P4XNRgwRuxDJ1n+ZVyV89wFdKoWb8TVyjpmZdom549cG2CdvMH0IxglPXZV0sr8=
X-Received: by 2002:a17:903:98d:b0:29e:9387:f2b7 with SMTP id
 d9443c01a7336-29ec229d253mr57583835ad.11.1765457596312; Thu, 11 Dec 2025
 04:53:16 -0800 (PST)
MIME-Version: 1.0
References: <bd6686e7fc0756e929334792b94ddd66bde125c4.1765239102.git.samaan.dehghan@gmail.com>
 <bb575726fe0ac783121e563b1c92f81f51e41f75.1765420376.git.samaan.dehghan@gmail.com>
 <ff441352-ee38-4357-9479-9398c7df356d@xen.org>
In-Reply-To: <ff441352-ee38-4357-9479-9398c7df356d@xen.org>
From: Saman Dehghan <samaan.dehghan@gmail.com>
Date: Thu, 11 Dec 2025 06:53:05 -0600
X-Gm-Features: AQt7F2ogxwumaI9N1aS8g7Y0ccorogLjZ0WcYzsKD__J15wB9qBGB7i-VaGlgOo
Message-ID: <CAHFNDNhVEdM9G3Lgx1mJfdKz2OntdVZ9Ja14GQHSjWvWOp09EA@mail.gmail.com>
Subject: Re: [PATCH v2] xen/arm64: Add support Clang build on arm64
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Dec 11, 2025 at 3:33=E2=80=AFAM Julien Grall <julien@xen.org> wrote=
:
>
> Hi Saman,
>
> A bit of process first. Usually, when sending a v2, a new thread is
> started (IOW, this is not sent in reply to v1).

Hi Julien,

Thanks :)

>
> On 11/12/2025 02:39, Saman Dehghan wrote:
> > This patch enables building Xen on arm64 architecture using the Clang c=
ompiler.
> > Changes include:
> > - Add explicit -march=3Darmv8 flag for arm64 builds.
> > - Add `__attribute__((target("fp-armv8")))` to `vfp_save_state` and
> >    `vfp_restore_state` functions when building with Clang to allow
> >    FP instructions despite `-mgeneral-regs-only`.
> >
> > Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>
> > ---
> >   README                   | 2 ++
> >   xen/arch/arm/arch.mk     | 1 +
> >   xen/arch/arm/arm64/vfp.c | 6 ++++++
> >   3 files changed, 9 insertions(+)
> >
> > diff --git a/README b/README
> > index 889a4ea906..67c1aa7fe6 100644
> > --- a/README
> > +++ b/README
> > @@ -45,6 +45,8 @@ provided by your OS distributor:
> >         - For ARM:
> >           - GCC 5.1 or later
> >           - GNU Binutils 2.25 or later
> > +        or
> > +        - Clang/LLVM 11 or later
> >         - For RISC-V 64-bit:
> >           - GCC 12.2 or later
> >           - GNU Binutils 2.39 or later
> > diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
> > index 9c4bedfb3b..bcf548069b 100644
> > --- a/xen/arch/arm/arch.mk
> > +++ b/xen/arch/arm/arch.mk
> > @@ -13,6 +13,7 @@ ifeq ($(CONFIG_MPU),y)
> >   CFLAGS-$(CONFIG_ARM_64) +=3D -march=3Darmv8-r
> >   else
> >   CFLAGS-$(CONFIG_ARM_64) +=3D -mcpu=3Dgeneric
> > +CFLAGS-$(CONFIG_ARM_64) +=3D -march=3Darmv8
> >   endif
> >   CFLAGS-$(CONFIG_ARM_64) +=3D -mgeneral-regs-only # No fp registers et=
c
> >   $(call cc-option-add,CFLAGS-$(CONFIG_ARM_64),CC,-mno-outline-atomics)
> > diff --git a/xen/arch/arm/arm64/vfp.c b/xen/arch/arm/arm64/vfp.c
> > index c4f89c7b0e..51fd2ddc54 100644
> > --- a/xen/arch/arm/arm64/vfp.c
> > +++ b/xen/arch/arm/arm64/vfp.c
> > @@ -46,6 +46,9 @@ static inline void restore_state(const uint64_t *fpre=
gs)
> >                    : : "Q" (*fpregs), "r" (fpregs));
> >   }
> >
> > +#if defined(CONFIG_CC_IS_CLANG)
> > +__attribute__((target("fp-armv8")))
> > +#endif
>
> Based on Jan's comment, I am a bit puzzled why adding #ifdef is
> sufficient. In fact, I do agree with Jan, my understanding of
> target(...) is this will impact the ABI.
>
> I haven't experienced any issue with the C side yet. But I know in the
> Rust world (they also have an LLVM backend), they decided to prevent
> enabling fp/neon [1] at the function level.
>
> Did you find any documentation that would suggest this is safe?
>
> Now regarding the issue you mentioned in v1:
>
>  > On top of those, `READ_SYSREG(FPSR)`, `READ_SYSREG(FPCR)`,
>  > `WRITE_SYSREG(v->arch.vfp.fpsr, FPSR)`and
>  > `WRITE_SYSREG(v->arch.vfp.fpcr, FPCR)` using FP.
>  > I think I cannot apply __attribute__ on statements.
>
> Do you mean the compiler will complain that you are trying to access
> FPCR/FPSR if you don't add the __atribute__ at the function level?
>
> If so, what you could possibly do is either rewriting the functions in
> assembly or open-code the "{WRITE, READ}_SYSREG()" and add a line
> ".arch_extension fp".

I couldn't find any documentation to suggest that it is safe. I will
do what you and Jan suggested and use ".arch_extension fp".

~Saman

>
> Cheers,
>
> [1] https://github.com/llvm/llvm-project/issues/110632
>
> --
> Julien Grall
>


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 12:57:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 12:57:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184058.1506600 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTgEZ-0005B1-Bz; Thu, 11 Dec 2025 12:57:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184058.1506600; Thu, 11 Dec 2025 12:57:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTgEZ-0005Au-9B; Thu, 11 Dec 2025 12:57:27 +0000
Received: by outflank-mailman (input) for mailman id 1184058;
 Thu, 11 Dec 2025 12:57:26 +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
 <SRS0=oCI8=6R=gmail.com=samaan.dehghan@srs-se1.protection.inumbo.net>)
 id 1vTgEY-0005Ao-80
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 12:57:26 +0000
Received: from mail-qv1-xf2d.google.com (mail-qv1-xf2d.google.com
 [2607:f8b0:4864:20::f2d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f05fd0b8-d690-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 13:57:25 +0100 (CET)
Received: by mail-qv1-xf2d.google.com with SMTP id
 6a1803df08f44-8823dfa84c5so279826d6.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 04:57:25 -0800 (PST)
Received: from localhost.localdomain
 (host-154-4.mdu.ilcmifre.champaign.il.us.clients.pavlovmedia.net.
 [66.253.154.4]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-8886eef8dcbsm22988176d6.37.2025.12.11.04.57.22
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Thu, 11 Dec 2025 04:57:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f05fd0b8-d690-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765457844; x=1766062644; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2kjup8IXurSGnJos/cvAZljvqR45Kt88E1lA50HDgVc=;
        b=K4OLfr8Uwz/YMAji2tPZ71jv8OydADlSUqXnJzXSYv7qwqhrfj0sdladJrbxH/n2QC
         tm67EzbURPFpTiHVXj1BIVBjLYOgKMpHJak22TwUSlXGhTQpqU4u33u2ZOTMYZk7JHji
         YD53KXmmqW0LRiHOs9wdZsj/6thyQ0M1M02w/4NMa/4ImUxSy2lXQBu6EQ+isi+boN8L
         63ZKyCkPOGPIIEFZOMmkNmLkgzjVSbS/OGQ1hMITn3eX4fLjc2ntUG3VfEV7e5vzG2Cy
         tdO0yEGvK9arr8Vd+2SGaZ8hUvSnjQF4X5EevnsvQXrh3PF1UY4r5P4MgBwJwmIIWVkt
         +Rlw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765457844; x=1766062644;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=2kjup8IXurSGnJos/cvAZljvqR45Kt88E1lA50HDgVc=;
        b=BVg6qAbat/9KzZrz8zmQTbMRiRXBangqc2SAgX4BA4zGWGCNZHrP3YKz6y5shi9eej
         t7aSUAt5fxNVkLMMexjUmmBFIC/T6R657N8HDVAWBUwCv/R7vW++zPVKQc1Bxq1TJ1nd
         MRkFaLwXz2iUYlMnSZ+pYbloV+aGDMnBHfXlNuOECjdDowmUJyO73aVVNr+BvUg9KRoD
         PIMslfte/UFVNwEmTeY+at2Zt/7cUBNroMZ/c9FgqmYbl/hBtywM7b4le5L/m2s0x1c+
         mL1TAcfCFmHObLZryaZtIIxIVyBYiaRk4ZX8H/I/gnGf6p97AAzMRyKWXNspwjLrN0et
         d9sQ==
X-Gm-Message-State: AOJu0YymFJXcapMPfcWX9GXx6CmvmGWbnTfoRL9QdDo8mgy/7Nzfp9iF
	oPJXLWHQgTBfVPqhxy8WulhOlThiWcEtUwgJjjNsJ9DVVsZMop5WnvRezOUufH4=
X-Gm-Gg: AY/fxX4q0b92hc0qvkYGmwvd8EiWAx9d3jZhcGz10A1xC1OtcC4R9HSwXWDWLBsTJkn
	2Bz8l7xYtL2f9qKXWZIlf9BtzkBptpmKHqEV655/5QBhQaifLk1owXNVeSlo4fnCHqHEL35U5/7
	bvMZ+7Rary600kEAmS5YAS57MXVelyn/QW46PpZMtnbKw1HvxYW6MnYedLI5Nn4xJzYg2JcuK2p
	P6E/kGrbmdViO4IxE52J8VCUNZ/5rFAovdQz9vGeuRr+IHsJSnWoF4fqiUTxhEJ9VINHkyxBc+M
	hS8zwab16wgOC0aVgTk7JS1XGTc+ikPMsxrZ7C9GNUk2KfjZ8+FB0HveE9zxWxYRLWmJWH0otNN
	EnFyCDungibTNSeInS895eVDY7RzlUHAb4oo0OZ/x0KpQfUg1fholcfEowf5iEGioougQfGqB+f
	cmn6BPG6kM52XanUION6UHh5MmUWV35au5Vz/bJjWvzGojvcA66nTMLKU9yhd/OAx6dootKk1JV
	3VAX8lJTn+9+YXLSO50JcjQKIW+4wgQ1aN2e4XyIN4XuLmYUFjFnCJ3BCneE5/M6hOGBNAlO/0Q
	MR2fuC5B
X-Google-Smtp-Source: AGHT+IFlbZxMZNSJQQ3a7Dp2bbpHm+8RnpjrSNjIidhmYd6RGT+TFyrPBZI/z1rvXEaZlhxJxorkog==
X-Received: by 2002:ad4:5cee:0:b0:880:22f3:3376 with SMTP id 6a1803df08f44-88863a215c6mr90575406d6.10.1765457843482;
        Thu, 11 Dec 2025 04:57:23 -0800 (PST)
From: Saman Dehghan <samaan.dehghan@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v3] xen/arm64: Add support Clang build on arm64
Date: Thu, 11 Dec 2025 06:57:17 -0600
Message-ID: <fbb12a9b0aede6dcb398a76018c274a5c76ba1fa.1765456914.git.samaan.dehghan@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <bb575726fe0ac783121e563b1c92f81f51e41f75.1765420376.git.samaan.dehghan@gmail.com>
References: <bb575726fe0ac783121e563b1c92f81f51e41f75.1765420376.git.samaan.dehghan@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch enables building Xen for the arm64 using the Clang/LLVM compiler.
Changes include:
- Add explicit -march=armv8 flag for arm64 builds.
- Introduce `READ_FP_SYSREG` and `WRITE_FP_SYSREG` to encapsulate the required
  `.arch_extension fp` directive for system fp register access.
- Add ".arch_extension fp" to the inline assembly for `save_state` and
  `restore_state`.

Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>
---
 README                   |  2 ++
 xen/arch/arm/arch.mk     |  1 +
 xen/arch/arm/arm64/vfp.c | 30 ++++++++++++++++++++++--------
 3 files changed, 25 insertions(+), 8 deletions(-)

diff --git a/README b/README
index 889a4ea906..67c1aa7fe6 100644
--- a/README
+++ b/README
@@ -45,6 +45,8 @@ provided by your OS distributor:
       - For ARM:
         - GCC 5.1 or later
         - GNU Binutils 2.25 or later
+        or
+        - Clang/LLVM 11 or later
       - For RISC-V 64-bit:
         - GCC 12.2 or later
         - GNU Binutils 2.39 or later
diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
index 9c4bedfb3b..bcf548069b 100644
--- a/xen/arch/arm/arch.mk
+++ b/xen/arch/arm/arch.mk
@@ -13,6 +13,7 @@ ifeq ($(CONFIG_MPU),y)
 CFLAGS-$(CONFIG_ARM_64) += -march=armv8-r
 else
 CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic
+CFLAGS-$(CONFIG_ARM_64) += -march=armv8
 endif
 CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only # No fp registers etc
 $(call cc-option-add,CFLAGS-$(CONFIG_ARM_64),CC,-mno-outline-atomics)
diff --git a/xen/arch/arm/arm64/vfp.c b/xen/arch/arm/arm64/vfp.c
index c4f89c7b0e..ea75c7a2b2 100644
--- a/xen/arch/arm/arm64/vfp.c
+++ b/xen/arch/arm/arm64/vfp.c
@@ -6,7 +6,8 @@
 
 static inline void save_state(uint64_t *fpregs)
 {
-    asm volatile("stp q0, q1, [%1, #16 * 0]\n\t"
+    asm volatile(".arch_extension fp\n\t"
+                 "stp q0, q1, [%1, #16 * 0]\n\t"
                  "stp q2, q3, [%1, #16 * 2]\n\t"
                  "stp q4, q5, [%1, #16 * 4]\n\t"
                  "stp q6, q7, [%1, #16 * 6]\n\t"
@@ -27,7 +28,8 @@ static inline void save_state(uint64_t *fpregs)
 
 static inline void restore_state(const uint64_t *fpregs)
 {
-    asm volatile("ldp q0, q1, [%1, #16 * 0]\n\t"
+    asm volatile(".arch_extension fp\n\t"
+                 "ldp q0, q1, [%1, #16 * 0]\n\t"
                  "ldp q2, q3, [%1, #16 * 2]\n\t"
                  "ldp q4, q5, [%1, #16 * 4]\n\t"
                  "ldp q6, q7, [%1, #16 * 6]\n\t"
@@ -46,6 +48,18 @@ static inline void restore_state(const uint64_t *fpregs)
                  : : "Q" (*fpregs), "r" (fpregs));
 }
 
+#define WRITE_FP_SYSREG(v, name) do {                               \
+    uint64_t _r = (v);                                              \
+    asm volatile(".arch_extension fp\n\t"                           \
+                 "msr "__stringify(name)", %0" : : "r" (_r));       \
+} while (0)
+
+#define READ_FP_SYSREG(name) ({                                     \
+    uint64_t _r;                                                    \
+    asm volatile(".arch_extension fp\n\t"                           \
+                 "mrs  %0, "__stringify(name) : "=r" (_r));         \
+    _r; })
+
 void vfp_save_state(struct vcpu *v)
 {
     if ( !cpu_has_fp )
@@ -56,10 +70,10 @@ void vfp_save_state(struct vcpu *v)
     else
         save_state(v->arch.vfp.fpregs);
 
-    v->arch.vfp.fpsr = READ_SYSREG(FPSR);
-    v->arch.vfp.fpcr = READ_SYSREG(FPCR);
+    v->arch.vfp.fpsr = READ_FP_SYSREG(FPSR);
+    v->arch.vfp.fpcr = READ_FP_SYSREG(FPCR);
     if ( is_32bit_domain(v->domain) )
-        v->arch.vfp.fpexc32_el2 = READ_SYSREG(FPEXC32_EL2);
+        v->arch.vfp.fpexc32_el2 = READ_FP_SYSREG(FPEXC32_EL2);
 }
 
 void vfp_restore_state(struct vcpu *v)
@@ -72,8 +86,8 @@ void vfp_restore_state(struct vcpu *v)
     else
         restore_state(v->arch.vfp.fpregs);
 
-    WRITE_SYSREG(v->arch.vfp.fpsr, FPSR);
-    WRITE_SYSREG(v->arch.vfp.fpcr, FPCR);
+    WRITE_FP_SYSREG(v->arch.vfp.fpsr, FPSR);
+    WRITE_FP_SYSREG(v->arch.vfp.fpcr, FPCR);
     if ( is_32bit_domain(v->domain) )
-        WRITE_SYSREG(v->arch.vfp.fpexc32_el2, FPEXC32_EL2);
+        WRITE_FP_SYSREG(v->arch.vfp.fpexc32_el2, FPEXC32_EL2);
 }
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 13:00:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 13:00:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184067.1506610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTgHV-0006wb-Ox; Thu, 11 Dec 2025 13:00:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184067.1506610; Thu, 11 Dec 2025 13:00:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTgHV-0006wU-Lb; Thu, 11 Dec 2025 13:00:29 +0000
Received: by outflank-mailman (input) for mailman id 1184067;
 Thu, 11 Dec 2025 13:00:28 +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
 <SRS0=Fhd1=6R=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vTgHU-0006wO-IM
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 13:00:28 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5d51683e-d691-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 14:00:27 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-64312565c10so70127a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 05:00:27 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-6498210fceasm2376551a12.24.2025.12.11.05.00.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 05:00:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5d51683e-d691-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765458027; x=1766062827; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=KQQgx4YpEOEzWKuIWcySB7cR0Hxy8vIMfoCjw7nek1g=;
        b=gTnflFOMfwQYu+U7FoRHVmQ1BGyKymzjyf/Vw82JqHM6AQvkVKXoHZUFJxHziUc+m1
         /TvwSFsH6Msc7IQ+ubXz8RP2JD4nuTVa6Ww2LITO5V2CrbbygeS5vP0Hai3x48Eq3ori
         fthQO7wIgia61k0hm1c4ueX+1UN8lsAJHCCELzVJKVG65UCG7rdeuyl7vLNJ0RRp0Mqm
         sr9iR2Cf/6iUqv3quq1JzuGkv0TjKtuT7zYroZ/tw6eJLdqOz+KOru7Qj3dWmRSOjq/P
         i1qfnaaepdKiBtEFiOmSWWabKaHRa8FfIPZjFiE4XZBPnV8/eKMuXoVcG4/r2xh+23z0
         BoVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765458027; x=1766062827;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=KQQgx4YpEOEzWKuIWcySB7cR0Hxy8vIMfoCjw7nek1g=;
        b=T5HQP4lj732g6OWV/w4njZazoIUMO+fV1MeVra+FIxwsuMwz60BZmqIn7aSUnaxDUI
         UGoIoQCh9gu7pnHztlDU8dtzpDph6dGnxMrPnIhoGevSwxp88+cz50hMxHUDNaWZxjF+
         krvIw9JfRN3zr8mERX/QGBSywMMVEYIO8ALjr55JZq9cxYwiOH+5ZfN+fu06BbNSnMW8
         9nl+16tRVfjmRb4eMQsBEZiSuf7a0BwtDJvpT11Pt+gC9lVgI4gpOo7zxPKZt7goR13C
         87t0jg74PhFW6pejDcpQSWOxkv9jDGQeLHSwHPZ9PA2sWxb1YuGiAmYlRK/NiJSHhm3C
         E62Q==
X-Forwarded-Encrypted: i=1; AJvYcCXI+FOI6idqQALqTWurVOPevUR+mw9e8mWEKMDgWtC4viELxamm7e/uzAHoU2/xWiqO/SweRl2GbmQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyeYLHz++M8EPZ7FWyHLxUNgED9UNOeGslJlXUc6ct5OlJJg9Y4
	VwWdjrQ3xAGXMI1tMZFnelcmfBhi56o3ZL0wdjoCbMz/3G/ovhOstOI1
X-Gm-Gg: AY/fxX53jeUH/S/YjAZL3XSMr7Gup7zpa7XEgiq/7wvRCcBO2GIk+gbJvd7aGTsg6Om
	qk2z/q4vMdtq5a5u111xahXacaby8f8wNFDn/GxVNP4qX+jlEuJi/m4DgJZDOPFwrteiZgg4GjK
	UUHrLFi2iEks7qi0aG7SquF3zwPPs5C+LPWg0MIxVIBjDTN+/BgwuJ+UQVb0sDzVgHO3d84Tv8N
	o2g8LqSE4JfyR110McG2KUqhQWwNR0z7y8etnGBFr5LX2MtTj5JmyghZSsvT58M9ZxzSQLscF7n
	2Da40kNr/fHSWCmXTYNoCDQSXJHYLfHfs5y90wCU8nP3wDqndlxnm6N522IdCz2AVgvhA0KjUo+
	kfpLExn7fS1W3tGxSTGpNh8UMumfs+zmtAIC5X5+UUFyhhx7Bis1WhjhhVBOvgTQxcU9pLclZW8
	wuB8f3YMQCcNDkkG74QD6oqJ0JMu4UFzPv33QTCBmEMXPAZVygGoaE0KX6YV3P
X-Google-Smtp-Source: AGHT+IHwDJn0nqacaVpE94+gAv01JJ6nXbCOPkl3t0cnwI32CixnsyeiJ62WAPZf2fAe2B0aTyW4hw==
X-Received: by 2002:a05:6402:440a:b0:649:83ec:759e with SMTP id 4fb4d7f45d1cf-64983ec77eamr2421511a12.33.1765458026462;
        Thu, 11 Dec 2025 05:00:26 -0800 (PST)
Message-ID: <b5aae12a-427f-4d11-b975-81fb1ce499c7@gmail.com>
Date: Thu, 11 Dec 2025 14:00:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 18/19] xen/riscv: add support of page lookup by GFN
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <48a58cde3de6a459885465c6d29d00d046ae4a37.1763986955.git.oleksii.kurochko@gmail.com>
 <69dce344-4dee-4778-99c2-0621c4e17cfc@suse.com>
 <86a87823-8b15-4897-9a97-ade444e2830d@gmail.com>
 <5fd516ed-c6db-4e7f-beea-a87c89faa6c0@suse.com>
 <1a729d7b-0a80-49bb-a91f-c212bffb9bc2@gmail.com>
 <fb5f995f-a0b9-4b7a-936c-6fd3585a52a4@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <fb5f995f-a0b9-4b7a-936c-6fd3585a52a4@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/11/25 10:34 AM, Jan Beulich wrote:
> On 10.12.2025 16:23, Oleksii Kurochko wrote:
>> On 12/9/25 4:49 PM, Jan Beulich wrote:
>>>>>> +static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
>>>>>> +                           p2m_type_t *t,
>>>>>> +                           unsigned int *page_order)
>>>>>> +{
>>>>>> +    unsigned int level = 0;
>>>>>> +    pte_t entry, *table;
>>>>>> +    int rc;
>>>>>> +    mfn_t mfn = INVALID_MFN;
>>>>>> +    P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
>>>>>> +
>>>>>> +    ASSERT(p2m_is_locked(p2m));
>>>>>> +
>>>>>> +    if ( t )
>>>>>> +        *t = p2m_invalid;
>>>>> The sole caller passes non-NULL right now. Are you having patches pending
>>>>> where NULL would be passed? Else, this being a static helper, I'd suggest
>>>>> to drop the check here (and the other one further down).
>>>> I don’t have any such call in pending patches. I saw that Arm has a case
>>>> where it is called with t = NULL (https://elixir.bootlin.com/xen/v4.21.0/source/xen/arch/arm/mem_access.c#L64),
>>>> so I decided to keep the check.
>>>>
>>>> What you wrote makes sense to me, and given that the mem_access code is
>>>> Arm-specific, RISC-V will probably never have the same situation.
>>>> However, it still seems reasonable to keep this check for flexibility,
>>>> so that we don’t risk a NULL-pointer dereference in the future or end up
>>>> needing to reintroduce the check (or providing an unused variable for a type)
>>>> later. Does that make sense?
>>> To a degree. The other perspective is that the check is dead code right now,
>>> and dead code is often disliked (e.g. by Misra). Introducing the check when
>>> it becomes necessary is pretty simple.
>> Similar check might be needed for p2m_get_page_from_gfn(), because in the pending
>> patches I have a call where t = NULL:
> My initial reaction would be "add the checking in that patch then".
>
>> unsigned long copy_to_guest_phys(struct domain *d, paddr_t gpa, void
>> *buf, unsigned int len) { - return -EINVAL; + /* XXX needs to handle
>> faults */ + paddr_t addr = gpa; + unsigned offset = PAGE_OFFSET(addr); +
>> + BUILD_BUG_ON((sizeof(addr)) < sizeof(vaddr_t)); +
>> BUILD_BUG_ON((sizeof(addr)) < sizeof(paddr_t)); + + printk(XENLOG_INFO
>> "copying d%d %#02lx-%#02lx to %#02lx-%#02lx\n", + d->domain_id,
>> (unsigned long)buf, (unsigned long)buf+len, addr, + addr+len); + + while
>> ( len ) + { + void *p; + unsigned size = min(len, (unsigned)PAGE_SIZE -
>> offset); + struct page_info *page; + + page =
>> p2m_get_page_from_gfn(p2m_get_hostp2m(d) , gaddr_to_gfn(addr), NULL); +
>> if ( page == NULL ) + return len; It now seems that I don’t actually
>> need p2m_get_page_from_gfn(), as it is no longer used. I could drop it
>> for now and reintroduce it later when it is truly needed by
>> copy_to_guest_phys() or get_page_from_gfn(). Is it acceptable to keep
>> p2m_get_page_from_gfn() as it is now, even without any current callers?
>> Would it be considered dead code?
> Sorry, as you may see your response was effectively unreadable. Looks
> like all newlines were zapped for whatever reason, and then new were
> ones inserted just to wrap the resulting long line.

Fully unreadable. I wrote there that in the copy_to_guest_phys() here
(https://gitlab.com/xen-project/people/olkur/xen/-/blob/riscv-next-upstreaming/xen/arch/riscv/guestcopy.c?ref_type=heads#L31)
there is a call of p2m_get_page_from_gfn() with t = NULL.

It now seems that I don’t actually need p2m_get_page_from_gfn(), as it
is no longer used in this patch series. I could drop it for now and
reintroduce it later when it is truly needed by copy_to_guest_phys() or
get_page_from_gfn(). Is it acceptable to keep p2m_get_page_from_gfn()
as it is now (with adding a NULL check pointer for 't' argument),
even without any current callers?
Would it be considered dead code?

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 13:35:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 13:35:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184093.1506619 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTgpM-0003G7-Fl; Thu, 11 Dec 2025 13:35:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184093.1506619; Thu, 11 Dec 2025 13:35:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTgpM-0003G0-Cm; Thu, 11 Dec 2025 13:35:28 +0000
Received: by outflank-mailman (input) for mailman id 1184093;
 Thu, 11 Dec 2025 13:35:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=W3S8=6R=gmail.com=nicola.vetrini@bugseng.com>)
 id 1vTgpL-0003Fu-VQ
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 13:35:27 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3fe04eda-d696-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 14:35:25 +0100 (CET)
Received: from nico-ideapad (opnsense-fib.sca.unipi.it [131.114.30.34])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id 5EF214EEBF88;
 Thu, 11 Dec 2025 14:35:23 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3fe04eda-d696-11f0-9cce-f158ae23cfc8
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=131.114.30.34
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765460124;
	b=FZwcZtGW6fqVB+LfSxYB2xUDksJsuYccbaVSX6gtI+D1ivS0cv7XMT55+gPxBRpRB+lT
	 y2r+q+0vA5r0340+6rZqT7kgiwA5kU26SxeHcj4kTY1ldI4Kbp0zSkBzP+gCW4/MWrZbj
	 SHaPFXDPlYe2lN8Kk4UFtIzYUik4+8Yq01IFqHzK0RO8yKn/lb717eWUwtUa3h1m8uagb
	 mQhWQBWNkNbU2dFG8hrh7emHl8WzyEF/9SfusnuO8Bnhf++oxoXr59Lxd+UG+J1rMBO0B
	 /Uk/mQ1JyUjWn8g5d4HlzZuDgKG4qjKYPVxVIHc2lcq3Ao/DqRw7xySe1MnwLblkZivjW
	 K7eQ0R+3x6dgahtCjJuSc+pfBqb3eunlob6uGcPtE+AKoXs8OWDVwhwrYGdArGgOdcXu6
	 bxHD3yrgQ1cbGUI4v1gff7i9bUYjXhLh7LSrceKvKnv1q5eKv5oO7ryaBqp6plyPT6HsS
	 pNSiUl6ln6+T8JO6akluTjhpl561uB3SKLpyqdlAB032h4DUtehkQjoq28Z1e4lXsm1Nj
	 fuQRze3S4K9PTbFWc9nG6FyyJIUUi4MxoL9NB+bcguZsk6NhJTRRnn1gsjJSF9XL6bWnh
	 JuiXA6hGTCj9wcQUo1QvJZAuv0DUCVg9e+1bAft5aKiNd1rzeEoitUPT6LIHUI8=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765460124;
	h=From:To:Cc:Subject:Date:Message-ID:X-Mailer:MIME-Version:
	 Content-Transfer-Encoding;
	bh=+rzCWH0Y8pEJlCjlb9auQTIKxJOMaugB4OTrhjuAe8s=;
	b=N7Oh0zL0ghcX//YogBtZWAj2SzLdbzFbPFz7O3JqyZ2UM0ZCodvBjs0OGWKBX2lN5mWv
	 q06wn7Ta3hqeQeuaFNAWyhHtM/TMqlGkUdLCYlyAJBbQqc3Spujg2vKHNDo1zw3GlewJ6
	 tdiGl/irpY1uxzD/4hxeSu6myYksGRy3LnARMwSb+Gs0MiosoKbaHYtdk4Y9zFAbH7l0X
	 k2GytqqJOlTvcA0yPnCsPMBbRJ5tU4geGIIGg4zOEibcIS8jCLe6b5HeVx9/ClEGUOiJa
	 XEGF0jc978Wyuoxuj2hTIjtP0m7CMXKEZlugYqAxd4zB8oql+5qVySdnI1AGF/c3RKBq/
	 PosOl0g8WjfCv0RvQM4z+Aj9d69GfGDZWEpH/gwPAkSwOn7/hwN17/dqEq6nu/jwSQH7t
	 QxfzrkEMY5wtW1rcR8TVHUCCMubVvlzmbOItbuYheoeJeHnLCGI5VXWEF0C+CH1PR2GX6
	 2eDS9uP0RQejp2Ztu3GDaaHIYX9FNfht4M3uAW3cJUAQKKHLketOe28S0KA3ScUKQZ44B
	 YErXyJMy/+7qBkkgJI6fu2nnD5tZLmnTWWwAuJs8eFE17v2jLK4fdheDcCsDH+/sG/Mg9
	 qsljVTFWXmkxyIiCEdhtToQz8yXk29XGpP7cnstlK9Zlyfvc1ttP1GaBIeIMuy4=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=131.114.30.34
From: Nicola Vetrini <nicola.vetrini@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>
Subject: [PATCH] automation/eclair: Run *-testing jobs only in some branches
Date: Thu, 11 Dec 2025 14:34:54 +0100
Message-ID: <cf852fe2b233bf98e57bcf82d4c9253b59aa17ab.1765459392.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Nicola Vetrini <nicola.vetrini@bugseng.com>

These jobs should not run in regular scans, but only in xen-project/people
repositories and branches to speed up pipeline execution.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
This should alleviate some of the recent delays of the ECLAIR pipelines
---
 automation/gitlab-ci/analyze.yaml | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/automation/gitlab-ci/analyze.yaml b/automation/gitlab-ci/analyze.yaml
index 5ddfe37903..88bc42f5c3 100644
--- a/automation/gitlab-ci/analyze.yaml
+++ b/automation/gitlab-ci/analyze.yaml
@@ -52,6 +52,8 @@ eclair-x86_64-testing:
   tags:
     - eclair-analysis-testing
   rules:
+    - if: $CI_PROJECT_PATH !~ /^xen-project\/people/.*$/
+      when: never
     - if: $ECLAIR_TESTING
       when: always
     - !reference [.eclair-analysis:triggered, rules]
@@ -110,6 +112,8 @@ eclair-ARM64-testing:
   tags:
     - eclair-analysis-testing
   rules:
+    - if: $CI_PROJECT_PATH !~ /^xen-project\/people/.*$/
+      when: never
     - if: $ECLAIR_TESTING
       when: always
     - !reference [.eclair-analysis:triggered, rules]
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 13:36:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 13:36:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184102.1506630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTgqm-0003lw-PN; Thu, 11 Dec 2025 13:36:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184102.1506630; Thu, 11 Dec 2025 13:36:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTgqm-0003lp-MZ; Thu, 11 Dec 2025 13:36:56 +0000
Received: by outflank-mailman (input) for mailman id 1184102;
 Thu, 11 Dec 2025 13:36:55 +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 <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTgql-0003li-Cr
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 13:36:55 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 74b9d251-d696-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 14:36:54 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-47796a837c7so904675e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 05:36:54 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8a70394sm5968122f8f.14.2025.12.11.05.36.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 05:36:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 74b9d251-d696-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765460213; x=1766065013; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KTZeg5HypZ4Bp6PChFcxsiqM2EBPg+SVu/ofl0NC9/Q=;
        b=adcAQVRIT0KONbakWE1Zsg+u2B/gJcqPoNAUAAHa/b3XZGfVLNS2NHxV5KbR2msbpG
         M+F7SXuoGU8ZW9iCyyU5f+E1sk0ijaSB+mbrb34TuLJKQctC5xlzka+9b+WxayhUw8dr
         EFWYJ0R4HUHjK/8H/GV+yOdulc9iEneFEh8yJfoUJ/u3wH/biGk6M7ylpkPelVfRXj7y
         rY2kyCBKfK96IBWqakKSfUknn6MilgB8QGEIgskmPx84F2ksbYLIzITNVju+s9AsgXQE
         Sk74cPEq7r/OHBCtzb2dDWuTFZjgkddUuEdI8ugq07lb5abrgreh5QxWVJvEtqAZ0ak7
         nsRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765460213; x=1766065013;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KTZeg5HypZ4Bp6PChFcxsiqM2EBPg+SVu/ofl0NC9/Q=;
        b=G5ABUBN6MIm+MoxLxnE9eGymjk+lZHJWBv252Tr6gJflO6HWjo3XhxSSErGIiEA+mY
         yzL9D/reOlIzzU5ahS8CSz9MmzjT8KkWL0hC6Rxm72Anv8ryi6wS0BAHjJKL9ozF1LEs
         JKQkyZxuWJhkRfvBT6hPu7yHSkfR902WaOiMpAmcE2XarRvfmzECshPym13mrukhkndw
         XViqsfMscqUxWHQXt9eqMvigrJcF3h8AQvLtY5CXu5p47UQA40VYwBpRk3Z6AtL8cAOg
         uyxM4VGz9rChqHBn+bUf9Vo33TwkVqSNpW0jli/ZFBTGaXo7rIr7nVQ8BfI4v63F+p45
         7T1w==
X-Forwarded-Encrypted: i=1; AJvYcCW4u+UKwd1JQHsGf3y+dMG6qxHrndnheQBO/40KRTGF9Pzn+RB1FvVNVGv/9Ke7nJ7KdFIPSxGghyg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx400AY/mKxFjhpLYeorXHP5CqKq9NBpNRKhX6MfyjCi0iRsPI4
	bphxqeeMX8Gp4EF5T+GD9f5Gjqu4mBGHzR/Xq5h5zeS+mAJRQ/g6h2qQfWiiZFpZ4g==
X-Gm-Gg: AY/fxX7YnVOk0NGbuXyyCOXNB/EXQgtNu3jrLNt4O8GH+e0A12EiwIpCGBTl887j39h
	Y6knyr1vVO6+wQSobl9ya6mI4h1opV7ijaPRC3t5XWXyqS0sK1R59W90jwU9vUCO4+VoFp+SA7P
	exXzz+GG0jNaZCBjUxZrOIh7f2Xx6YQfvEj8+3x3pHi0NhgL6M8UdAq3CoL8Kq40glSf4LqeH2E
	CAPGl7fjOOoeCaEshXL+MWbOac2l+ul8Fwi6aHdZmBzYdDCP/7WkDTtlLl+Sf9jIbo6CHZP1yAX
	2M/jXdVzaTRp8bMQJBa/hXVvVSxIRNc2oUGnYNQAcUaqTNe5IMiX8zoJoxZ4DGjKWbJNZuLC1bn
	3FLiPO049Umf4oj39Gm1WzNJ8jom9pWnG5Vmnv7p3xWPy49GkWctTFRuBTgViR3vSB8838I8q6i
	8vmZre8et1dR60azX3+gvCM8srfTt+x9Tjb3qO4GHn7kiyQ0XI30TVo0DDDcb4ChDreNRkefPyR
	bU=
X-Google-Smtp-Source: AGHT+IGkdUeOaUQU8ibeZSo5zB7V1Az3+Iq5PAzNy6omf8DMh0E9pALf2ssLJ2lmYPV+uy4hlZIREw==
X-Received: by 2002:a05:600c:8719:b0:456:1a69:94fa with SMTP id 5b1f17b1804b1-47a8379de7bmr54922285e9.13.1765460213539;
        Thu, 11 Dec 2025 05:36:53 -0800 (PST)
Message-ID: <741b29c1-f0e6-4ed6-9c72-eb5f08c095cd@suse.com>
Date: Thu, 11 Dec 2025 14:36:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/riscv: add RISC-V legacy SBI extension support
 for guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1764582112.git.oleksii.kurochko@gmail.com>
 <f4e4dc9beef4618ffaabe1c6caec3e10cf78fd5d.1764582112.git.oleksii.kurochko@gmail.com>
 <c3d2a4c4-f591-4bff-b978-18b8c09cf512@suse.com>
 <c1ca8efb-3e17-45e2-ba90-a6f49616bb51@gmail.com>
 <2c84660b-4333-42f9-b178-aab72be9a40d@suse.com>
 <60e200ad-96d3-4384-b9a6-458256f87256@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <60e200ad-96d3-4384-b9a6-458256f87256@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.12.2025 13:52, Oleksii Kurochko wrote:
> On 12/11/25 12:02 PM, Jan Beulich wrote:
>> On 11.12.2025 11:29, Oleksii Kurochko wrote:
>>> On 12/8/25 4:05 PM, Jan Beulich wrote:
>>>> On 01.12.2025 11:24, Oleksii Kurochko wrote:
>>>>> --- /dev/null
>>>>> +++ b/xen/arch/riscv/vsbi/vsbi-legacy-extension.c
>>>>> @@ -0,0 +1,37 @@
>>>>> +
>>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>>>> +
>>>>> +#include <xen/lib.h>
>>>>> +#include <xen/sched.h>
>>>>> +
>>>>> +#include <asm/processor.h>
>>>>> +#include <asm/vsbi.h>
>>>>> +
>>>>> +static int vsbi_legacy_ecall_handler(struct vcpu *vcpu, unsigned long eid,
>>>>> +                                     unsigned long fid,
>>>>> +                                     struct cpu_user_regs *regs)
>>>>> +{
>>>>> +    int ret = 0;
>>>>> +
>>>>> +    switch ( eid )
>>>>> +    {
>>>>> +    case SBI_EXT_0_1_CONSOLE_PUTCHAR:
>>>>> +        printk("%c", (char)regs->a0);
>>>> This is guest output, so shouldn't use plain printk().
>>> I think that I don't know what should be used instead. Could you suggest me something
>>> or point to the code in other arch-s?
>>>
>>> Or do you mean that guest_printk() should be used?
>> No direct replacement will do what you want, as they all prefix something to the
>> string passed (which isn't what you want). You may need to buffer characters and
>> emit them in batches (full lines unless overly long). For x86 see hvm_print_line(),
>> but I think Arm also has something like this.
> 
> I don’t recall anything like that for ARM. The only thing related to character
> buffering that I remember is in vpl011_write_data_xen()
> (https://elixir.bootlin.com/xen/v4.21.0/source/xen/arch/arm/vpl011.c#L76), but it
> does not use the buf declared in struct domain_console. Instead, it provides a
> separate structure for vpl011:
>      struct vpl011_xen_backend {
>          char in[SBSA_UART_FIFO_SIZE];
>          char out[SBSA_UART_OUT_BUF_SIZE];
>          XENCONS_RING_IDX in_cons, in_prod;
>          XENCONS_RING_IDX out_prod;
>      };
> 
> I don’t see that ARM uses struct domain_console.
> 
> By the way, I can’t find a counterpart of hvm_print_line() for reading a character(s).
> Is domain_console->buf intended to be used only for writing characters?

I don't think there's any particular intention, but of course you can use it
only for one of the two.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 13:40:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 13:40:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184114.1506639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTgua-0005Vz-6R; Thu, 11 Dec 2025 13:40:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184114.1506639; Thu, 11 Dec 2025 13:40:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTgua-0005Vs-3s; Thu, 11 Dec 2025 13:40:52 +0000
Received: by outflank-mailman (input) for mailman id 1184114;
 Thu, 11 Dec 2025 13:40:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTguZ-0005Vc-A9
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 13:40:51 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 00fa36ec-d697-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 14:40:49 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4779cc419b2so1184495e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 05:40:49 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a89f74291sm34846115e9.11.2025.12.11.05.40.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 05:40:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 00fa36ec-d697-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765460449; x=1766065249; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mRgjWfRt+yQTyUzxq7qqkKsCdvYmP/R7g/oEi38JTWA=;
        b=CetOPnFpNPWu2iWuSUUsGjAgLviDjfHp1SsXpx1/OUprPXiloUhij5H/BIE6IY5S2C
         HdpzaA20+Pqtqfta2xqkOYZ30eJRUQCZ4gS97FI6xIVI5seBJuEwbFv/sRTOgYDzxHlb
         HcAdgxFKGl904H8wO/f0JZxjQFeBk52jtEdKhu/DgRYFNSszzw0lIvHZpPmLDnjtoDyJ
         5YXFL9E3SyHL18WNJy+h8DUSCwKIfdVaoqo7QcF/M3Qc/ZrLkKgF7/2TR9suKHJ+y2Qc
         K4niQQWRIZVVD6IqgQ42j85puLlgblaFXcHGhzcI31JFChSkbUzDFpLkuwYkbXG5dVq3
         Dm9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765460449; x=1766065249;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mRgjWfRt+yQTyUzxq7qqkKsCdvYmP/R7g/oEi38JTWA=;
        b=xCkW5cNPzU4YLSOXjqQ9Foi5WWoOIBZoe65if6sY1luI/FZC0ndxJv8Gb5Q+uxoIrl
         IlkBDTLQxj/90PSfcR8V+fzIolz/2ffo+XjFsxXhhZyvX6ln8ddTZDlnh30PkSW2t58D
         hWCyNDuk+mN3JxodfIgz1Vxd3NBWFWzmEMJJq/ttU0C1uXHasn1FvOYsE91I9SrBLRU5
         C1n1prUif6LYPUzM9t07boQoe28fyGKu8dkSA7SiudcpEX58pCmpbRTpqv7jIVk5XRKE
         7AmZV0ijrrnBEfoMeOISOksnrpS6kaYqrWPGmP4OdeLzOWBDOV0LTd0Jvv1lXmqdetOi
         u3sw==
X-Forwarded-Encrypted: i=1; AJvYcCX7WbsXi930KALPtnAnQYOW9VZ1fDSkVcaJvWMZxug6zyleKuT1eG79NBFCeIpLgV9PnLzUQxUQyeA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx/n3Ej1JN6vysXzPW0z6I6/3jXGZnfkpGFD7SkOtsTovoxlWWY
	qtYVAQnK0AWiGWL6XbnBvFTl64aBLhZu0EBaFCxPh9DwbkhBiYGn5NzxoyNzxKUbag==
X-Gm-Gg: AY/fxX6UR5+1xPKG3nrwKY0VZFn8f4OZhqWwygXgbpmCkHSMiuiAX9H15Hjk7zwSOmo
	K2olYUuU3Nn2dguXIzl3UiRVtrAUN8d/dpnonLwflt1iRNQdHRiHAhGj+V+CO3aK+4i1HVai5aZ
	5IojxwulhBfc69zJawEND+AgiB24eyXtDYy0DQGtRDf1ZbpewQPkoyCO0f27+TLd2neetEEU8vK
	TE4sTADzfAgMGyn5gzuv+W9oxUe4QdMBpGPxX+sH2GoyIEeplNKX1AqcR8jDsWLoUn+rf1qoAwn
	5QkIsBifEMipGSGroLRi9P5mDK5v51UvzLeSqX5E3cIgyo/liDU5afMMCuPuZqch4Wpb+IF/dMG
	i1gpvPrcEf44sE8w8kuq6GSTnJwYerkbltWZK+AxP8TKKSNxJ3AAOLc/vuju2c5nY9J/G3SRQK+
	fEZ4VLqA+ttJZxA8S4pIopQPZVBCgbaTo3PX1kEhvra5d2KqmXeWDwTNuSQFBphdWDrNSdHRwMH
	EM=
X-Google-Smtp-Source: AGHT+IEKVrnSjn3BG/OOSrIx/841DXFAN4SifhkJjVT1vLxkRZL6YfvlhFEDSa+NeknkgeNb83aceA==
X-Received: by 2002:a05:600c:8288:b0:47a:7fd0:9efc with SMTP id 5b1f17b1804b1-47a8380c918mr72874925e9.15.1765460448867;
        Thu, 11 Dec 2025 05:40:48 -0800 (PST)
Message-ID: <18d40c29-4813-4673-9892-35f5df99fa0c@suse.com>
Date: Thu, 11 Dec 2025 14:40:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 18/19] xen/riscv: add support of page lookup by GFN
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <48a58cde3de6a459885465c6d29d00d046ae4a37.1763986955.git.oleksii.kurochko@gmail.com>
 <69dce344-4dee-4778-99c2-0621c4e17cfc@suse.com>
 <86a87823-8b15-4897-9a97-ade444e2830d@gmail.com>
 <5fd516ed-c6db-4e7f-beea-a87c89faa6c0@suse.com>
 <1a729d7b-0a80-49bb-a91f-c212bffb9bc2@gmail.com>
 <fb5f995f-a0b9-4b7a-936c-6fd3585a52a4@suse.com>
 <b5aae12a-427f-4d11-b975-81fb1ce499c7@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b5aae12a-427f-4d11-b975-81fb1ce499c7@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.12.2025 14:00, Oleksii Kurochko wrote:
> 
> On 12/11/25 10:34 AM, Jan Beulich wrote:
>> On 10.12.2025 16:23, Oleksii Kurochko wrote:
>>> On 12/9/25 4:49 PM, Jan Beulich wrote:
>>>>>>> +static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
>>>>>>> +                           p2m_type_t *t,
>>>>>>> +                           unsigned int *page_order)
>>>>>>> +{
>>>>>>> +    unsigned int level = 0;
>>>>>>> +    pte_t entry, *table;
>>>>>>> +    int rc;
>>>>>>> +    mfn_t mfn = INVALID_MFN;
>>>>>>> +    P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
>>>>>>> +
>>>>>>> +    ASSERT(p2m_is_locked(p2m));
>>>>>>> +
>>>>>>> +    if ( t )
>>>>>>> +        *t = p2m_invalid;
>>>>>> The sole caller passes non-NULL right now. Are you having patches pending
>>>>>> where NULL would be passed? Else, this being a static helper, I'd suggest
>>>>>> to drop the check here (and the other one further down).
>>>>> I don’t have any such call in pending patches. I saw that Arm has a case
>>>>> where it is called with t = NULL (https://elixir.bootlin.com/xen/v4.21.0/source/xen/arch/arm/mem_access.c#L64),
>>>>> so I decided to keep the check.
>>>>>
>>>>> What you wrote makes sense to me, and given that the mem_access code is
>>>>> Arm-specific, RISC-V will probably never have the same situation.
>>>>> However, it still seems reasonable to keep this check for flexibility,
>>>>> so that we don’t risk a NULL-pointer dereference in the future or end up
>>>>> needing to reintroduce the check (or providing an unused variable for a type)
>>>>> later. Does that make sense?
>>>> To a degree. The other perspective is that the check is dead code right now,
>>>> and dead code is often disliked (e.g. by Misra). Introducing the check when
>>>> it becomes necessary is pretty simple.
>>> Similar check might be needed for p2m_get_page_from_gfn(), because in the pending
>>> patches I have a call where t = NULL:
>> My initial reaction would be "add the checking in that patch then".
>>
>>> unsigned long copy_to_guest_phys(struct domain *d, paddr_t gpa, void
>>> *buf, unsigned int len) { - return -EINVAL; + /* XXX needs to handle
>>> faults */ + paddr_t addr = gpa; + unsigned offset = PAGE_OFFSET(addr); +
>>> + BUILD_BUG_ON((sizeof(addr)) < sizeof(vaddr_t)); +
>>> BUILD_BUG_ON((sizeof(addr)) < sizeof(paddr_t)); + + printk(XENLOG_INFO
>>> "copying d%d %#02lx-%#02lx to %#02lx-%#02lx\n", + d->domain_id,
>>> (unsigned long)buf, (unsigned long)buf+len, addr, + addr+len); + + while
>>> ( len ) + { + void *p; + unsigned size = min(len, (unsigned)PAGE_SIZE -
>>> offset); + struct page_info *page; + + page =
>>> p2m_get_page_from_gfn(p2m_get_hostp2m(d) , gaddr_to_gfn(addr), NULL); +
>>> if ( page == NULL ) + return len; It now seems that I don’t actually
>>> need p2m_get_page_from_gfn(), as it is no longer used. I could drop it
>>> for now and reintroduce it later when it is truly needed by
>>> copy_to_guest_phys() or get_page_from_gfn(). Is it acceptable to keep
>>> p2m_get_page_from_gfn() as it is now, even without any current callers?
>>> Would it be considered dead code?
>> Sorry, as you may see your response was effectively unreadable. Looks
>> like all newlines were zapped for whatever reason, and then new were
>> ones inserted just to wrap the resulting long line.
> 
> Fully unreadable. I wrote there that in the copy_to_guest_phys() here
> (https://gitlab.com/xen-project/people/olkur/xen/-/blob/riscv-next-upstreaming/xen/arch/riscv/guestcopy.c?ref_type=heads#L31)
> there is a call of p2m_get_page_from_gfn() with t = NULL.
> 
> It now seems that I don’t actually need p2m_get_page_from_gfn(), as it
> is no longer used in this patch series. I could drop it for now and
> reintroduce it later when it is truly needed by copy_to_guest_phys() or
> get_page_from_gfn(). Is it acceptable to keep p2m_get_page_from_gfn()
> as it is now (with adding a NULL check pointer for 't' argument),
> even without any current callers?
> Would it be considered dead code?

As said, as long as no Misra checks are run on the RISC-V part of the
tree, no dead code concerns really exist. As to the NULL check - if the
sole (future) caller passes NULL, then why have the parameter at all?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 13:51:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 13:51:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184123.1506650 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTh4O-0007MA-4A; Thu, 11 Dec 2025 13:51:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184123.1506650; Thu, 11 Dec 2025 13:51:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTh4O-0007M3-0K; Thu, 11 Dec 2025 13:51:00 +0000
Received: by outflank-mailman (input) for mailman id 1184123;
 Thu, 11 Dec 2025 13:50:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTh4M-0007Lv-Ci
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 13:50:58 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 69e11cb7-d698-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 14:50:55 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-477a219dbcaso926855e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 05:50:54 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a89f74284sm38766635e9.9.2025.12.11.05.50.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 05:50:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 69e11cb7-d698-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765461054; x=1766065854; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yqbuyMls0lEn6TGe32WmWYNn6RV6dK4qWWIuaZcgfPo=;
        b=aql1S+zzYKQ5uaP9n8trpn1DPb7j/R5/QE51jmBAvuqi7yKIRcGUB8ApfjkccipYVM
         A0ffU2dftu75uFlM2BKAmi+I3j5OwW333g0pbNbVDYUlaXLz/bl7GLdxsCn+efvG1cqm
         MSFP6FRLDIv55pv2HIOxvFEgIuI80na1Fr9OPE2Z+efW5Iy2pFiAsv/oTqFw6E5mEN9V
         snZN5F4WmaH8MopSezX6NH2EMmgH7gMuKTQ5lAepsMduZwbJs+Ew05n/WJKw/o9wURHZ
         xY59/aJdDeICeJ9I7J31CEF/VniVtHbb7sCzOqlHTy2Z9IdD7KbYwixoA2JG9tDLIOEp
         AxVQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765461054; x=1766065854;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yqbuyMls0lEn6TGe32WmWYNn6RV6dK4qWWIuaZcgfPo=;
        b=Pf9FGO5+gHC2xoQhczS171KQrQLCdUZf23SXnFXKuBI9Aoi1SSofB8ZwgD4fZFq1SA
         fUULErkE0Ry1VDol0AeAl5P/f9LbyIfaie51iepktIPvspjsb1TMf7hJmGxq5V/4VpVb
         DWCPDbiI8flw0ea+pYGdnms0r8XoZqY0Kx+i4AqEC8Ri7TfVPzhalMgd0DVemHd/eiGQ
         NEo2sptdTopcQE3fYPUT0baF2BN/iYnID+IKUX0qTzm0dL2fWBC0yxWPzeAkOzBEds56
         tvgmU8oLU29D5waGPfLLD7ZgIp17gAZmTYdsoUt1QpHNQYm4obRlfMG0lm2R+INRWJE5
         KdqA==
X-Forwarded-Encrypted: i=1; AJvYcCXCl5PFvYBhnVLKVHE+rNCKs2AIafAomkMqtsA+BjDHjVUNzIKTKD/gHnXaxjpuTQXrMv7QI2eohC8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwYFxwOBC0U37pD3qx0e+JNfSRwvsjj1vNN3U3xFpaV/b7U3+BW
	7uz0H2GODkBSmbE7zk3b4tE1uXqwyvR1qNTpzW3gKkxQcxRsWitPQLMwNGB+WpW4zA==
X-Gm-Gg: AY/fxX6aQV/tx7jmVg3kRKvYBG0QTVjRzLq+QFRr87m+OKup5KhuPa8nBGYihxju2R3
	pVMXzPcgs5GRX4lhqlEM7gUZBcJrGx6L9ZcMqvFE6VRdsxTGHxbcAaJCMITe50r4RLtXeLG//Y2
	u5X9Z7JlKRvDfFdVZ40/3H+0h2MkrZVXrn5RQV+S3+KefBA1axCiqCsYq+YDQBXYDdis/Qh5ywK
	fEyrZ0eEOm1iEEMIHV8Y84t4Zvfl/xF1UQXCvqmL4RZPleeMinU5sH7NDi1TQLNRbZeZKywHhDF
	dB+YOFU1L/7gV87PyRFyu1KtaH2N0AL/T+cucoiDokOEkTwETOeDYR2F3ppHStd01KKKuKjR8s2
	vXenKtDE3SrsEHZCcmB9m3RKj4mtUxe1W64kIqTM9IeyoCxkveaMQz5cfPRfkH8F9o/SjZcUUiS
	G95k8vIdQaR/FzWQWs31vte9ClfPhqhdZCTbdArFjQGk/A8M8JAMBcNUhkXBF2syJkZBgN3nL0G
	ug=
X-Google-Smtp-Source: AGHT+IEQ9Y9lObP7Dp6rCH5kOGQvXhWGCKIw2XZ6tvHEidq6/9J+oQ6dv/0hAY664RaiwN4zk/XXgw==
X-Received: by 2002:a05:600c:4e02:b0:471:1717:411 with SMTP id 5b1f17b1804b1-47a8384be88mr67694205e9.24.1765461054331;
        Thu, 11 Dec 2025 05:50:54 -0800 (PST)
Message-ID: <a9428da3-590b-4ca4-a3fe-8eeed5b0969a@suse.com>
Date: Thu, 11 Dec 2025 14:50:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/arm64: Add support Clang build on arm64
To: Saman Dehghan <samaan.dehghan@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <bb575726fe0ac783121e563b1c92f81f51e41f75.1765420376.git.samaan.dehghan@gmail.com>
 <fbb12a9b0aede6dcb398a76018c274a5c76ba1fa.1765456914.git.samaan.dehghan@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <fbb12a9b0aede6dcb398a76018c274a5c76ba1fa.1765456914.git.samaan.dehghan@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.12.2025 13:57, Saman Dehghan wrote:
> --- a/xen/arch/arm/arm64/vfp.c
> +++ b/xen/arch/arm/arm64/vfp.c
> @@ -6,7 +6,8 @@
>  
>  static inline void save_state(uint64_t *fpregs)
>  {
> -    asm volatile("stp q0, q1, [%1, #16 * 0]\n\t"
> +    asm volatile(".arch_extension fp\n\t"

This will take effect for the rest of the (generated) assembler file, which aiui
isn't what you want.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 14:06:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 14:06:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184139.1506660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vThJD-00012V-Gt; Thu, 11 Dec 2025 14:06:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184139.1506660; Thu, 11 Dec 2025 14:06:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vThJD-00012O-Cr; Thu, 11 Dec 2025 14:06:19 +0000
Received: by outflank-mailman (input) for mailman id 1184139;
 Thu, 11 Dec 2025 14:06:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pO9S=6R=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vThJB-00012I-V7
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 14:06:18 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 852beb5f-d69a-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 15:06:00 +0100 (CET)
Received: from MN2PR14CA0018.namprd14.prod.outlook.com (2603:10b6:208:23e::23)
 by IA1PR12MB7710.namprd12.prod.outlook.com (2603:10b6:208:422::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.9; Thu, 11 Dec
 2025 14:05:54 +0000
Received: from BL02EPF00029929.namprd02.prod.outlook.com
 (2603:10b6:208:23e:cafe::ea) by MN2PR14CA0018.outlook.office365.com
 (2603:10b6:208:23e::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.9 via Frontend Transport; Thu,
 11 Dec 2025 14:05:43 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BL02EPF00029929.mail.protection.outlook.com (10.167.249.54) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Thu, 11 Dec 2025 14:05:53 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 11 Dec
 2025 08:05:52 -0600
Received: from [10.252.147.171] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 11 Dec 2025 06:05:50 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 852beb5f-d69a-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JgXgfyXVJlcw7Q04LpcO/s4LfmVZXJCdSpGMrRRrYNE88URqwmurUIiWeym93N97T5fHRpiAfDqIWN0/8C4eFbyNSPyvHra5CItquc3T7xadOdTA6zRbC8D+haQRZ74PXw/PeuAZovoBW7dVDrGkYFkOx0MoktEmrxPDDYQQrWN0lSqiIE8WTk3CgVCA88dSEtC1U32De3eGrfXxo13CmTlkLo24Ij+JzpNFSazQ63ktkoWRHQPXU5HvL+0VHjX9OlDxRZxUN329odZnQspA393PLYdMExRBH37cX/WagQcItK0QMhJs5t3YFKArhPb/v+1cx67XADUL/k0VHF227A==
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=9z7rVePGX2ANfrB9anmYd/bg2v5tJQhI+VfolDuIvHM=;
 b=aapib2CJio6UIHLVGeCMRQVGoLW1yKJrUBpoJDSQPwVfZJdioD4D7DYixJls6Gga52nctUj+8LmEJAy11IKHJnLs0b/m6uib9AHZiJnaJX2m2Yvj6R8YfdfXmhe4Cs74u3Pk+oqnvRypyHyhDFXpU9CrMDa1gSXyXKALziNcABqIfRaaPAf74fmNeIvYXxohZMl0Nkpibv2xQ213eVBDx16okZKGKOT+ltxco3diFFjD2rOXskXEpm2Y6ndBzu/hrxMuEf8gxuHuhcZJIIwO0hUtH6y5Ybcha6ocu4JPoBdreektPu7J22x5P5RS11iTJMbd5ugMZlM2ScqPDGzDVA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9z7rVePGX2ANfrB9anmYd/bg2v5tJQhI+VfolDuIvHM=;
 b=S4/NsWzAOx3Ti+jlQdlzvB35mPkBY/ZbXebJF364kUO7x0zMGfXQnzeLRO2WEOlnhTGHl00h5R/Tton7GQV+DqmdqJ4b9pLPgA0A1pcO/YCchw+YZcTFjTsV+CEZ4n7WdUncsZkTFlzFAPZuVCWPtvtdUNy3gban+XRMR4GqgTM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <a9a36ee9-c513-40a1-8c37-c7ae12202c80@amd.com>
Date: Thu, 11 Dec 2025 15:05:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/6] arm/mpu: Implement free_init_memory for MPU systems
To: Harry Ramsey <harry.ramsey@arm.com>, <xen-devel@lists.xenproject.org>
CC: <Luca.Fancellu@arm.com>, Penny Zheng <Penny.Zheng@arm.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Wei Chen <wei.chen@arm.com>, Hari Limaye
	<hari.limaye@arm.com>
References: <20251128095859.11264-1-harry.ramsey@arm.com>
 <20251128095859.11264-4-harry.ramsey@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20251128095859.11264-4-harry.ramsey@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00029929:EE_|IA1PR12MB7710:EE_
X-MS-Office365-Filtering-Correlation-Id: 215e2122-5d8b-4443-70fd-08de38be6586
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|7416014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WXg0Vnd1cGdxaVAzUW12bk1KaEpKa1VFWmYzdGNueldxL1BPV0FyRFFuc1RS?=
 =?utf-8?B?TE5aZVFsaXAxV1IyaWQzNXFwZnZyWjRzOVNoUlJBQjR0S0tDZFVPOXJYWHd4?=
 =?utf-8?B?ZFBMN3orNGVIL2lOWjMwakhnMVAzZkI0SUJWV3EzS3pqTzFZVm54bm9HNXVz?=
 =?utf-8?B?LzhOaXJXSldWR2F0UXNaelZKdUw1RXd1YlJUVW5uN2VJcWFUZnFmd1g2WFha?=
 =?utf-8?B?cnNQN2tFVzVoUGcwNmFIbjgwU1hQZHV3WWNndG5ENXVrL1pBYWtNcSthRkNM?=
 =?utf-8?B?R2hYa0lZSGp3M1NJQjlyYUxKYTVsTkVweGVZcWxHbEFkUVFpcW1mSEdaUUpa?=
 =?utf-8?B?UXhxekpWNm1XSlIvWHdWM2h4VFZ3Q3QwY0llbi9aUytnNCthZEc0Q2E5aTQv?=
 =?utf-8?B?SThIUUZEMTRzVU14TjVpRFo0YVNSR1ZKRUREY0dsVXZFWVVBTk1VZUpQNTRT?=
 =?utf-8?B?b2hqWnhKcFlPUG0zM3JNOTJWVXRMVlYxWmtDMWM2MFZhODNyMHdrSHo1eVlO?=
 =?utf-8?B?akE4THA5aXdDMG5CWU1rTXpDVmFXdEo1MXBrVTZOOXUySXRMMWc1UnFoZ1BK?=
 =?utf-8?B?Q20rQW9IMXNvUWxubVJmKzdNUUc4UkZ0azh6UG1wSlV4YkY3Y0tyNDhzVkJh?=
 =?utf-8?B?MEJXbHIzcFUrR2hKK1hhUXk1akJpOThZWDUyNzFDeXRzb2tWc0VxK2FqQmtr?=
 =?utf-8?B?d3VxanNYOGZrRXZNQ0xBbVJRMm1lSDEwakdROXhYSnd3S2g1VlFPUXdSbGhI?=
 =?utf-8?B?ODErQzFIWlZFWXRSV0EyT2dFV0Fmbmx4Yy9ESnBMenAwOHUzZks1MVpWRDls?=
 =?utf-8?B?Qmd3NkUxWXBsWS8vODhjcEhhK25icjRJVllBR3VCbGN2NkV3RjUrclJDYmE4?=
 =?utf-8?B?bDhWL3ZaOUZuSWZMMy9HajJualZFSkRIZDFRZVV3Z0hKOU1SaTlROFdVVWtj?=
 =?utf-8?B?UzVFUkR4MUFlVFhUSzhvcjNwVlgyQTFnMWpneGErczA5c0hWMTRlNXJyeWIy?=
 =?utf-8?B?RHM4MVNYUlM2SWpLellHVDlJd1NZeXc2SXlRY1FNa2gxVnZXdXB3NCt3VlFx?=
 =?utf-8?B?aDV4NXA1Sm5Wa1BVZzVoVDNUUE5mV1l1NWN2MFdJWkNSenAvQ2R6cHlGajUy?=
 =?utf-8?B?RWpLcUVoa2xmZGgyclV2MHZJbEt0QTE0aFdlSkNPT2YweklxMGNBL3JSTjBT?=
 =?utf-8?B?Q3dscUIrNk0xK014UGZ4YWRrMTN5cDJ0ZlpGRElXWnM0TktTOTl4dktIMkJW?=
 =?utf-8?B?TXdHK2dFUVpmdldqeHlYVjZlaTVIdWxwdkowQjJBdVdMNzRaTXpsakZmVEVX?=
 =?utf-8?B?YjlMWW55bHp5aG1kZDFrV0x1bTFiUlNRbXVTaDJaOXdGZnNmQWpNeExDNyty?=
 =?utf-8?B?WEVkcFhKbkpRRTVnWmllUlVKcDJuT3U0Ty9hallvK09aV1lIZ1E2MW9HQ3FV?=
 =?utf-8?B?VEVFWjRtUVg3eDdHMmxVTHQxekk4UkhHMTRvRkZCcXhPRE5pTTh1YTBCTU9i?=
 =?utf-8?B?WitST01oczZ0U2FTS0lrTWc3cEFUaXUyeHJweVpFRGU4TC9EM2lVaTBBbnYv?=
 =?utf-8?B?QWpLVU03am5weTVoZVlzL2l0NHdOb1FybSs3NjJkNmtlQW0xNzBrc1dCVWFn?=
 =?utf-8?B?Mk5yYzlLMlpnbExHbXREcEdSQnh3L0MxZW5ZbTE4QXdHc1h6SnVBWmV2am56?=
 =?utf-8?B?S2t3VDFsbm9SUEJmVG1IdE45T1dYQktWQmpZMGRpeFY4VFo5L1Z2V3ZuUVRX?=
 =?utf-8?B?cXFjVExYYnUxTExPM3Nvc0xBbE53M0I2WXVOMmVVT3dvR3VQVy9MTEFta1hy?=
 =?utf-8?B?WExBVW1MamVWTzB2M21vWjVRUkhudi83S3gvUTVFVkNtK2lzN3VnS3VoRzc5?=
 =?utf-8?B?QytSMXVGRU9kc3VCb1FqUy9OVVBrSlBZYWl5WE1mdnJ4d2I0NWZyWnh1RG9D?=
 =?utf-8?B?bDJIR2gwZWVNNVdKWUdxcjduL1FNQVoreFNWN05TNUY3UkdKb0tKMHNmRkR3?=
 =?utf-8?B?NjRpWnRxbFB1YkpadWhrQlgyQloreHFOTElUMGJISXdhc0hqcVBncVVpZ3pQ?=
 =?utf-8?B?MGt0SDdrK1c3RUZVQkg0UjhKOWIrcTNFRDVEVEVkVWhkay9BYmhEMlVYZFhD?=
 =?utf-8?Q?+6EA=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(7416014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2025 14:05:53.1018
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 215e2122-5d8b-4443-70fd-08de38be6586
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00029929.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7710



On 28/11/2025 10:58, Harry Ramsey wrote:
> From: Penny Zheng <Penny.Zheng@arm.com>
> 
> Implement the function `free_init_memory` for MPU systems. In order to
> support this, the function `modify_xen_mappings` is implemented.
> 
> On MPU systems, we map the init text and init data sections using
> separate MPU memory regions. Therefore these are removed separately in
> `free_init_memory`.
> 
> Additionally remove warning messages from `is_mm_attr_match` as some
> permissions can now be updated by `xen_mpumap_update_entry`.
> 
> Signed-off-by: Penny Zheng <penny.zheng@arm.com>
> Signed-off-by: Wei Chen <wei.chen@arm.com>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Hari Limaye <hari.limaye@arm.com>
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
> ---
>  xen/arch/arm/include/asm/setup.h |  2 +
>  xen/arch/arm/mpu/mm.c            | 91 +++++++++++++++++++++++++-------
>  2 files changed, 73 insertions(+), 20 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
> index 1eaf13bd66..005cf7be59 100644
> --- a/xen/arch/arm/include/asm/setup.h
> +++ b/xen/arch/arm/include/asm/setup.h
> @@ -65,6 +65,8 @@ int map_irq_to_domain(struct domain *d, unsigned int irq,
>  int map_range_to_domain(const struct dt_device_node *dev,
>                          uint64_t addr, uint64_t len, void *data);
>  
> +extern const char __init_data_begin[], __bss_start[], __bss_end[];
> +
>  struct init_info
>  {
>      /* Pointer to the stack, used by head.S when entering in C */
> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
> index 29d8e7ff11..8446dddde8 100644
> --- a/xen/arch/arm/mpu/mm.c
> +++ b/xen/arch/arm/mpu/mm.c
> @@ -174,28 +174,13 @@ int mpumap_contains_region(pr_t *table, uint8_t nr_regions, paddr_t base,
>  static bool is_mm_attr_match(pr_t *region, unsigned int attributes)
>  {
>      if ( region->prbar.reg.ro != PAGE_RO_MASK(attributes) )
> -    {
> -        printk(XENLOG_WARNING
> -               "Mismatched Access Permission attributes (%#x instead of %#x)\n",
> -               region->prbar.reg.ro, PAGE_RO_MASK(attributes));
>          return false;
> -    }
>  
>      if ( region->prbar.reg.xn != PAGE_XN_MASK(attributes) )
> -    {
> -        printk(XENLOG_WARNING
> -               "Mismatched Execute Never attributes (%#x instead of %#x)\n",
> -               region->prbar.reg.xn, PAGE_XN_MASK(attributes));
>          return false;
> -    }
>  
>      if ( region->prlar.reg.ai != PAGE_AI_MASK(attributes) )
This check and ...

> -    {
> -        printk(XENLOG_WARNING
> -               "Mismatched Memory Attribute Index (%#x instead of %#x)\n",
> -               region->prlar.reg.ai, PAGE_AI_MASK(attributes));
>          return false;
> -    }
>  
>      return true;
>  }
> @@ -352,8 +337,33 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
>      {
>          if ( !is_mm_attr_match(&xen_mpumap[idx], flags) )
>          {
> -            printk("Modifying an existing entry is not supported\n");
> -            return -EINVAL;
> +            if ( rc == MPUMAP_REGION_INCLUSIVE )
> +            {
> +                printk(XENLOG_ERR
> +                       "Cannot modify partial region permissions\n");
> +                return -EINVAL;
> +            }
> +
> +            if ( xen_mpumap[idx].prlar.reg.ai != PAGE_AI_MASK(flags) )
this one are identical. Why do we duplicate it here? If this is because
is_mm_attr_match returns just bool, then maybe you want to introduce more
logical return values and parse them here. What you eventually do here is you
allow modifying regions for RO and XN. Therefore is_mm_attr_match could return
true on RO and XN but false on AI.

> +            {
> +                printk(XENLOG_ERR
> +                       "Modifying memory attribute is not supported\n");
> +                return -EINVAL;
> +            }
> +
> +            if ( xen_mpumap[idx].refcount != 0 )
> +            {
> +                printk(XENLOG_ERR
> +                       "Cannot modify memory permissions for a region mapped multiple time\n");
s/time/times/

> +                return -EINVAL;
> +            }
> +
> +            /* Set new permission */
> +            xen_mpumap[idx].prbar.reg.ro = PAGE_RO_MASK(flags);
> +            xen_mpumap[idx].prbar.reg.xn = PAGE_XN_MASK(flags);
> +
> +            write_protection_region(&xen_mpumap[idx], idx);
> +            return 0;
>          }
>  
>          /* Check for overflow of refcount before incrementing.  */
> @@ -499,8 +509,7 @@ void __init setup_mm_helper(void)
>  
>  int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
>  {
> -    BUG_ON("unimplemented");
> -    return -EINVAL;
> +    return xen_mpumap_update(s, e, nf);
>  }
>  
>  void dump_hyp_walk(vaddr_t addr)
> @@ -511,7 +520,49 @@ void dump_hyp_walk(vaddr_t addr)
>  /* Release all __init and __initdata ranges to be reused */
>  void free_init_memory(void)
>  {
> -    BUG_ON("unimplemented");
> +    unsigned long inittext_end = round_pgup((unsigned long)__init_data_begin);
Looking at the linker script, __init_data_begin is already page aligned.

> +    unsigned long len = __init_end - __init_begin;
> +    uint8_t idx;
> +    int rc;
> +
> +    rc = modify_xen_mappings((unsigned long)__init_begin, inittext_end,
> +                             PAGE_HYPERVISOR_RW);
So here you modify mapping of text section but...

> +    if ( rc )
> +        panic("Unable to map RW the init text section (rc = %d)\n", rc);
> +
> +    /*
> +     * From now on, init will not be used for execution anymore,
> +     * so nuke the instruction cache to remove entries related to init.
> +     */
> +    invalidate_icache_local();
> +
> +    /* Zeroing the memory before returning it */
> +    memset(__init_begin, 0, len);
here you zero the entire init. Is it because init.data is already RW, so you
don't need to modify the mappings? If so, more informative comments would be
welcome.

> +
> +    rc = destroy_xen_mappings((unsigned long)__init_begin, inittext_end);
> +    if ( rc )
> +        panic("Unable to remove init text section (rc = %d)\n", rc);
> +
> +    /*
> +     * The initdata and bss sections are mapped using a single MPU region, so
> +     * modify the start of this region to remove the initdata section.
> +     */
> +    spin_lock(&xen_mpumap_lock);
> +
> +    rc = mpumap_contains_region(xen_mpumap, max_mpu_regions,
> +                                (unsigned long)__init_data_begin,
> +                                (unsigned long)__bss_end,
> +                                &idx);
> +    if ( rc < MPUMAP_REGION_FOUND )
> +        panic("Unable to find bss data section (rc = %d)\n", rc);
> +
> +    /* bss data section is shrunk and now starts from __bss_start */
> +    pr_set_base(&xen_mpumap[idx], (unsigned long)__bss_start);
> +
> +    write_protection_region(&xen_mpumap[idx], idx);
> +    context_sync_mpu();
> +
> +    spin_unlock(&xen_mpumap_lock);
>  }
>  
>  void __iomem *ioremap_attr(paddr_t start, size_t len, unsigned int flags)

~Michal




From xen-devel-bounces@lists.xenproject.org Thu Dec 11 14:20:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 14:20:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184155.1506669 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vThWx-0004Ab-Kq; Thu, 11 Dec 2025 14:20:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184155.1506669; Thu, 11 Dec 2025 14:20:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vThWx-0004AU-IL; Thu, 11 Dec 2025 14:20:31 +0000
Received: by outflank-mailman (input) for mailman id 1184155;
 Thu, 11 Dec 2025 14:20:30 +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
 <SRS0=Fhd1=6R=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vThWw-0004AO-8W
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 14:20:30 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8b526447-d69c-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 15:20:29 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b7a02592efaso22361166b.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 06:20:29 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa5cf210sm286697066b.60.2025.12.11.06.20.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 06:20:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8b526447-d69c-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765462828; x=1766067628; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=V8J6AElJm49mGn7pfKTUapbD/RF7y6PHog29OIbazPg=;
        b=R/9JAFyH0etOO26Lg83SEsMnwSoLumZGnRimc20CWHPjxr/dzRdcpe9AGQSHPkwYaw
         /Cgt1K/YWMUcTCrujLwCeWWJZSW0VyYLF0POTBbBDHGUZUlPI67Jqw00J71vW9ou7KQP
         H/ipQcqzE7Zw+YEhlToCODtn0JbB8OLv10VYZEguu1iWREGLnChXqpaHWUF899whiBQo
         KHA/Thq2UImeTZKypk6VgrBblhUPS9EJuRbygJiqLr9z6dPXI0/CXxiS9rwkI2V+nrKh
         0ii4n+CEhNfTPVy3VhCKY+bQCkJ6Hwqa2EJbL21vkwYGeChdq55uABwbk23+DLP+91nG
         hGdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765462828; x=1766067628;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=V8J6AElJm49mGn7pfKTUapbD/RF7y6PHog29OIbazPg=;
        b=WtM9dCJfIayVW3mQugnfgBEkOPEoTmisrmLCjc6m1jdOQVOLnR9UiF8cz5nPxWDBOB
         e07VdYnGBiFMgevWVaC3YPDkXe1I4PtA+qxj2zUmjL1PzfMF5zpod4VHZIY/GDswdkcZ
         OG9zeI3FFbZYzKRgGJ3S6V0N0wGNWsXiGR8ZOljzuL6OQ2E9ZF/PS4n+0jKX6AhukKiL
         3k0qyuOk0g6wramLYWTewKGjSqCFxtYTJBSxTejIPbKlj09igK7XZEUICVYWa5fyZ5IY
         9R4JaFXGkhafASGZCxSCgBeeZWfhVd3Qx7HYunhFyvYXeC1Len+CWehe9cy5Ifkp1Xu8
         GN0Q==
X-Forwarded-Encrypted: i=1; AJvYcCWnaYEOyMPhU1CQ7yj8O2sJlOBpV3lvddZ6/YpVjQdWchbzXqXerRI9C/9sPJ0JvC5kzqZEjrhTWEA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwE9W9eO6lPz9Iu1aBklDdT+guwqgSxexhqXva+vYGkup3OTugc
	PpY4PjODpm6ZrUoGl+9+G7zQKZCOv8Ct7tAHfduATXXYo04yJxN5n6Qc
X-Gm-Gg: AY/fxX5gSIkdpYrEuw9LtkaEMkRfWF22vWLW9RLaukZno/rB5xWXWMaOfded1SUD1pm
	iEuWcOWsC1oWshTUuNWbf3llGpQcij08jaJkpPFkXpS9+n/A24XloUdtUZE5vrWYvqsXMCFA2PD
	WLkesIvzz/E2OipX16gd8QxSUjPGYdC685/VG5Cc9/MSpvHNUYO+YPe/4uHUboVBOcwBQPAScpp
	GGMiCj9j7Wb9MGXJ7kQ/smbe5Gl/zHC3TeXGSzNtLcbO+6K4KjdIX3RNfiYbHFDnOi/4ZD//Yil
	DqmXETmyc1japPCVuwxYzrfRQenxwN50vl+Iqe80nS02U4Rzayx74dtkkOjhWt8atdgPIyPG6bP
	AhidvjUwtpmCMZZOQFjfnS42TCpd/woyHsbUT0yELMhpzidbCMuQe/nkDngk1i2BJZZO0UpPhar
	yJgTI7qxRro2u6vWqHqWjvm/Sm3lQa11x/bfU3+TJW1FQiX1Zcq/yAMths2Oh5
X-Google-Smtp-Source: AGHT+IG67Tp++rQRVYC5U4WE9LoXeCigY6F22ljK6vYTvKt6oEfeWD+UjTOgmQW8DhSF1OzF++VCBw==
X-Received: by 2002:a17:906:6a1b:b0:b6d:5262:a615 with SMTP id a640c23a62f3a-b7ce841dd27mr709362966b.41.1765462828045;
        Thu, 11 Dec 2025 06:20:28 -0800 (PST)
Message-ID: <7908312c-f55e-4bd0-8af8-be59cda836ca@gmail.com>
Date: Thu, 11 Dec 2025 15:20:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 18/19] xen/riscv: add support of page lookup by GFN
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <48a58cde3de6a459885465c6d29d00d046ae4a37.1763986955.git.oleksii.kurochko@gmail.com>
 <69dce344-4dee-4778-99c2-0621c4e17cfc@suse.com>
 <86a87823-8b15-4897-9a97-ade444e2830d@gmail.com>
 <5fd516ed-c6db-4e7f-beea-a87c89faa6c0@suse.com>
 <1a729d7b-0a80-49bb-a91f-c212bffb9bc2@gmail.com>
 <fb5f995f-a0b9-4b7a-936c-6fd3585a52a4@suse.com>
 <b5aae12a-427f-4d11-b975-81fb1ce499c7@gmail.com>
 <18d40c29-4813-4673-9892-35f5df99fa0c@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <18d40c29-4813-4673-9892-35f5df99fa0c@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/11/25 2:40 PM, Jan Beulich wrote:
> On 11.12.2025 14:00, Oleksii Kurochko wrote:
>> On 12/11/25 10:34 AM, Jan Beulich wrote:
>>> On 10.12.2025 16:23, Oleksii Kurochko wrote:
>>>> On 12/9/25 4:49 PM, Jan Beulich wrote:
>>>>>>>> +static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
>>>>>>>> +                           p2m_type_t *t,
>>>>>>>> +                           unsigned int *page_order)
>>>>>>>> +{
>>>>>>>> +    unsigned int level = 0;
>>>>>>>> +    pte_t entry, *table;
>>>>>>>> +    int rc;
>>>>>>>> +    mfn_t mfn = INVALID_MFN;
>>>>>>>> +    P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
>>>>>>>> +
>>>>>>>> +    ASSERT(p2m_is_locked(p2m));
>>>>>>>> +
>>>>>>>> +    if ( t )
>>>>>>>> +        *t = p2m_invalid;
>>>>>>> The sole caller passes non-NULL right now. Are you having patches pending
>>>>>>> where NULL would be passed? Else, this being a static helper, I'd suggest
>>>>>>> to drop the check here (and the other one further down).
>>>>>> I don’t have any such call in pending patches. I saw that Arm has a case
>>>>>> where it is called with t = NULL (https://elixir.bootlin.com/xen/v4.21.0/source/xen/arch/arm/mem_access.c#L64),
>>>>>> so I decided to keep the check.
>>>>>>
>>>>>> What you wrote makes sense to me, and given that the mem_access code is
>>>>>> Arm-specific, RISC-V will probably never have the same situation.
>>>>>> However, it still seems reasonable to keep this check for flexibility,
>>>>>> so that we don’t risk a NULL-pointer dereference in the future or end up
>>>>>> needing to reintroduce the check (or providing an unused variable for a type)
>>>>>> later. Does that make sense?
>>>>> To a degree. The other perspective is that the check is dead code right now,
>>>>> and dead code is often disliked (e.g. by Misra). Introducing the check when
>>>>> it becomes necessary is pretty simple.
>>>> Similar check might be needed for p2m_get_page_from_gfn(), because in the pending
>>>> patches I have a call where t = NULL:
>>> My initial reaction would be "add the checking in that patch then".
>>>
>>>> unsigned long copy_to_guest_phys(struct domain *d, paddr_t gpa, void
>>>> *buf, unsigned int len) { - return -EINVAL; + /* XXX needs to handle
>>>> faults */ + paddr_t addr = gpa; + unsigned offset = PAGE_OFFSET(addr); +
>>>> + BUILD_BUG_ON((sizeof(addr)) < sizeof(vaddr_t)); +
>>>> BUILD_BUG_ON((sizeof(addr)) < sizeof(paddr_t)); + + printk(XENLOG_INFO
>>>> "copying d%d %#02lx-%#02lx to %#02lx-%#02lx\n", + d->domain_id,
>>>> (unsigned long)buf, (unsigned long)buf+len, addr, + addr+len); + + while
>>>> ( len ) + { + void *p; + unsigned size = min(len, (unsigned)PAGE_SIZE -
>>>> offset); + struct page_info *page; + + page =
>>>> p2m_get_page_from_gfn(p2m_get_hostp2m(d) , gaddr_to_gfn(addr), NULL); +
>>>> if ( page == NULL ) + return len; It now seems that I don’t actually
>>>> need p2m_get_page_from_gfn(), as it is no longer used. I could drop it
>>>> for now and reintroduce it later when it is truly needed by
>>>> copy_to_guest_phys() or get_page_from_gfn(). Is it acceptable to keep
>>>> p2m_get_page_from_gfn() as it is now, even without any current callers?
>>>> Would it be considered dead code?
>>> Sorry, as you may see your response was effectively unreadable. Looks
>>> like all newlines were zapped for whatever reason, and then new were
>>> ones inserted just to wrap the resulting long line.
>> Fully unreadable. I wrote there that in the copy_to_guest_phys() here
>> (https://gitlab.com/xen-project/people/olkur/xen/-/blob/riscv-next-upstreaming/xen/arch/riscv/guestcopy.c?ref_type=heads#L31)
>> there is a call of p2m_get_page_from_gfn() with t = NULL.
>>
>> It now seems that I don’t actually need p2m_get_page_from_gfn(), as it
>> is no longer used in this patch series. I could drop it for now and
>> reintroduce it later when it is truly needed by copy_to_guest_phys() or
>> get_page_from_gfn(). Is it acceptable to keep p2m_get_page_from_gfn()
>> as it is now (with adding a NULL check pointer for 't' argument),
>> even without any current callers?
>> Would it be considered dead code?
> As said, as long as no Misra checks are run on the RISC-V part of the
> tree, no dead code concerns really exist. As to the NULL check - if the
> sole (future) caller passes NULL, then why have the parameter at all?

Because there is another caller of p2m_get_page_from_gfn() — get_page_from_gfn(),
which also uses the 't' parameter, and at least in the common code there are
cases where 't' != NULL.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 14:26:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 14:26:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184165.1506680 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vThd0-0004nI-9N; Thu, 11 Dec 2025 14:26:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184165.1506680; Thu, 11 Dec 2025 14:26:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vThd0-0004n5-6G; Thu, 11 Dec 2025 14:26:46 +0000
Received: by outflank-mailman (input) for mailman id 1184165;
 Thu, 11 Dec 2025 14:26:44 +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 <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vThcy-0004lX-PT
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 14:26:44 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6a6bda6f-d69d-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 15:26:43 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-42e2d5e119fso91589f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 06:26:43 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8b8a841sm6258770f8f.30.2025.12.11.06.26.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 06:26:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a6bda6f-d69d-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765463203; x=1766068003; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fZp4IiWKF7UaTWegob4jF7jLgKPaDI3vdCpnzKVE20g=;
        b=dy73qHFpfczJwsF/638ANwLb/WDcvuM/r+r66158USehWyDmwP6lyJT4/DPfUoe2ui
         MaekhLDwO4miuLa4odDIpCCTx5jxcJudQ1XLKiG4LzOwl6bmoMmWYRuX8WE7lY9tG3b5
         h5xDvvGET2vsYnHh37oo+8dEGGwkhMt67pyiWCw28uHXCTFLm3n38+fLM0t4wyP9nt6t
         UPROFxUD0g9u3IhEQgaUupWiZddvruoyaYBJ5CR2d1Cl6w6CnSLE8H6XsSkGz2quMo0G
         Hamaji+VbZ/Zv7dhGIjFkTDCPuVU/dy3e5uN8V8dBk6ikdRFCzl/I5YM5fRusUVcYdOI
         2NMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765463203; x=1766068003;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fZp4IiWKF7UaTWegob4jF7jLgKPaDI3vdCpnzKVE20g=;
        b=FVJn2/dvoc+SipVVU7ixBV8rJM5tu0NMxJUWtle6eahCmlT+fd0W9LHsDdUZ4iBxp4
         4oMNgIiAIzKHhaVvYRY7GGQ0g7u1eZ8utmb+c6ugYOkXdZbFV1uXVy/IZW7k7JxPTHCO
         0+xl+JPxwsyg+kD3ZAPa8kGWHpu6WtTeXoVFIFU4l7q71IFQ6pBQKfK8sIP1DTH70Yci
         P+9mcaPEMUxcEaLlPyzZX0/W+PE4Mxeua1kq4CXRlUmSUT+s2bqnqefGKu5FmIGb+H3E
         td3E5R2W+gMypf6Q0udc7VWCe9MWUOXWbUrOVevcYTN3yWxIKzQspf/2+SGeCaFNY/0n
         8mhA==
X-Forwarded-Encrypted: i=1; AJvYcCXlaeWYEKTSSiVacBvycYwSBgxAZQAMB8beDhwCAYvTcwjTWheQgLzunJGH0t/qXuj5LmfW0M2ssno=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyULCGggog3eGbEzejGPOr9tigYnjrvdpoAaWyNG5hjV8Rhmck1
	MvwMMQtosD/fMCeSX+KCZkFeWgN6uAyOayx28oeoeV2OOPD+If65sZJc5TO48nmFvQ==
X-Gm-Gg: AY/fxX5WiOhB3i+eroHO/NWs0UIRoAR/PRjkdVMVai3Ygxe/iNHQknO+OrwqEGkKwxJ
	ncDRQB8b/1iIWECaTBkpk8oLYWgmkHVGwImUscKZN1rGE4OwX7xCO/2sB9pjJhg45Pd9XuA8zNC
	g/ZzQ9Ru+1agtUklLnd6uAY7t8iDCScEYc4zOqI3yRosnWCGi/zrRL9Orgy1z82o9xHcBB8JBzN
	XXpgIvmSc+RbdkwbJaV8is2WxIrdVTYiqUtNJ1KcjJ2GfAvSzlBtLvOdhaoxPeBhMFs8fqVIv6A
	ZRmhrsOsPN1Re9dhghXycpWACsHApSICVqhAlQX8GvsaQZXs+tK0Szza1mWsJLhEZmBlU1Cj+V3
	ttg3JsGnF+agGuBbjYBDARU17M5TpbtI93V0z8Gmr954K5JwJlS+qX4d1+SnS/136425uhetvB7
	VCxMSnfnUfmJbFAKrhlLn+0+rh0dqSd5CciEgcP1HNWONNyUMFWuQiwp/3/v9R1v8g5BHtp/+h5
	S4=
X-Google-Smtp-Source: AGHT+IEcsR+trNkRfiyWRvaIWyq8s4+r5BCw9DywXXEXV1RoIv6lMeLcrviM3zvLZiXZaK+xTOEtQQ==
X-Received: by 2002:a05:6000:2389:b0:42b:3bfc:d5dd with SMTP id ffacd0b85a97d-42fa3b1ec40mr7293752f8f.54.1765463202690;
        Thu, 11 Dec 2025 06:26:42 -0800 (PST)
Message-ID: <46fb3196-f5b0-4f45-899d-0f0fc80d02b2@suse.com>
Date: Thu, 11 Dec 2025 15:26:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251121132332.23514-2-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2025 14:23, Juergen Gross wrote:
> --- a/Config.mk
> +++ b/Config.mk
> @@ -159,6 +159,19 @@ define move-if-changed
>  	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
>  endef
>  
> +PATH_FILES := Paths
> +INC_FILES = $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
> +
> +include $(INC_FILES)

And now a failing build tells me why by a gut feeling I didn't like this.
Being placed here, it affects the hypervisor build as well. The hypervisor
build, in its _install rule, uses $(DEBUG_DIR), first in

	[ -d "$(D)$(DEBUG_DIR)" ] || $(INSTALL_DIR) $(D)$(DEBUG_DIR)

$(D) is an absolute directory (shorthand for $(DESTDIR)). $(DEBUG_DIR) as
set by Paths.mk is, too. Both point into the build tree. The two simply
shouldn't be glued together.

Note that the earlier

	[ -d $(D)$(BOOT_DIR) ] || $(INSTALL_DIR) $(D)$(BOOT_DIR)

continues to be working fine, as BOOT_DIR continues to be controlled by
config/StdGNU.mk. Its DEBUG_DIR isn't taking effect anymore, when for the
hypervisor build it should.

And of course behavior now differs between building xen/ in a tree where
tools/ was built before vs in an otherwise clean tree.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 14:27:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 14:27:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184175.1506690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vThda-0005NH-Mn; Thu, 11 Dec 2025 14:27:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184175.1506690; Thu, 11 Dec 2025 14:27:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vThda-0005NA-K3; Thu, 11 Dec 2025 14:27:22 +0000
Received: by outflank-mailman (input) for mailman id 1184175;
 Thu, 11 Dec 2025 14:27:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cEbC=6R=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vThdY-00055n-WC
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 14:27:21 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7d204eea-d69d-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 15:27:15 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SN7PR03MB7036.namprd03.prod.outlook.com (2603:10b6:806:32d::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Thu, 11 Dec
 2025 14:27:12 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Thu, 11 Dec 2025
 14:27:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7d204eea-d69d-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wqiq+BhO40xjTcUN8h/9DFw94D85s7FaPDlr46dV4LN3Wba2d7y5x+mLqgVh/lhG26QhJvxVx971FCss4lF3HkxeMtZXGCdiMacaNhGtNcIGvPJv/Feix/Gtn0ZAraAT0zZoOsQO9+qvIPq3rOX8pfUnxynygtHWll24eb7HQInByezS11TvxFsANucLHRj9qd351FaEGsgXzwRMg7+2dnzGAiVuL7VHOPT58VlI6dcuGyD/EAdLeukIfKH2/+vzf1ar0IqFGFnDnN7aGBhrBnIHl/9z5NMHLCAAPfcRbYuPylBxQEEGuAsrUWDVMzbdqDsdUwwrL9+7XE3FjtA1eg==
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=R7wf8aT5VdYTH0KwJsw0mmsingAtaUp/HW2l1zuI1TY=;
 b=IVcUgANbrbzVcISR1rv2NKPlnGZynywf32cGf/u6gPGeQiWiILwrbszwWsVMpqII1B6x5gYdBXoSggvGlNXwluuywy3gky/4pw+zy67fNv1o/pf1yAEE+S8quMtoFBWivSpKP639Xk1OlBN1a0FYgKqjRCL15qkLS3SRqUxfJhW7LbYFyvyr12oyw3DIlAKGOZznSuSqwwhi0mNyMfRHsPAAQFEhRTgFAJEQRcsgcln8wjYmoTTVn7cJlSHvd8sk3PnRFrLnPiR4nlPRvmh+vMNtegGDddGtz8V0LObtqZKtOkA9UJwSoJVnHfju7v/uIAlp+luActsBgIt9CigmMQ==
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=R7wf8aT5VdYTH0KwJsw0mmsingAtaUp/HW2l1zuI1TY=;
 b=btpNHNPRoYO3tbksEMJmty+QgLcZ531rnLic2raP+B9sGLtAjv5/+WauU/s0IN7mwyEXGcxiCNK68XCpse6cX7Z1qAmvGMUSnIgh+J6co/CVYCOmkBkNZwaxsThC7gjpBvpZtS8K3+X2dilsWee2xmqoX03Kq2mMrrxWznCk5DM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <8335c03a-0635-4a97-98d2-4f12ab352d5a@citrix.com>
Date: Thu, 11 Dec 2025 14:27:07 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Jan Beulich <JBeulich@suse.com>
Subject: Re: [PATCH] automation/eclair: Run *-testing jobs only in some
 branches
To: Nicola Vetrini <nicola.vetrini@gmail.com>, xen-devel@lists.xenproject.org
References: <cf852fe2b233bf98e57bcf82d4c9253b59aa17ab.1765459392.git.nicola.vetrini@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <cf852fe2b233bf98e57bcf82d4c9253b59aa17ab.1765459392.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LNXP265CA0017.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:5e::29) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SN7PR03MB7036:EE_
X-MS-Office365-Filtering-Correlation-Id: 7706bb25-6a2d-4cfa-276c-08de38c15f8d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QStpYmhDeStNK3ZPK2wvTkFMd3laNjJtSmJLdVptcFNnVTN4QmZnbVljd3Zt?=
 =?utf-8?B?Ry8xcjJTRkVUcWdsb2JKUGYxQXNCckV0aWU5M3Z1R1BCZTNOMmRRQ3lEV09i?=
 =?utf-8?B?eURJZlg4THp4VjFiK2ZzZitHdmxWSXZJVUVDQWNCTlhyemRSRkdMSEdsVFht?=
 =?utf-8?B?YUp1RHNwUm5IYzNYWk1YSTFoZWNibFFPaHVJRVhsMVlCNzIvYm9OeThQZC92?=
 =?utf-8?B?YUJIUndNd3h1WUtybkprZ0ZvMXczR3ZRdHNWR2wvcitBWjdBNnpaZzFNMExh?=
 =?utf-8?B?ZkN0eXlXRXJSVXp6Sy9BcUlkK1pQZ1NOdTJRY01CbjhFelJ2cVlzMk1QNXRC?=
 =?utf-8?B?bm4vRHNjVDVtT2svQTlwU0N2TjdCZGNqZmE3Mnh2a3BlWm5NTGtxRWpwbXJ1?=
 =?utf-8?B?NTNvZ2VVV044RlhDdHYvTXlVbmRTQ0RJK2FQUjJYU01zV3NGSS94V3dXRnlW?=
 =?utf-8?B?eXozbndXNVMweFpPVUdNTnJTb2IwSnFickVLMEtWN1F6T3FUcCtwN3BOank1?=
 =?utf-8?B?eGZzYlJKdUczMEVkeGNSYlFYRU9iY1M3Z0J1NHZZcGIrKzZVMVBhcTlKMjZo?=
 =?utf-8?B?NmJJTjBkbjZOekVxaUhXLzVIVUFsQzRrZVpsbUtiZm5kbG5acTV6b1l3VUFt?=
 =?utf-8?B?aFNGbnM1RmdBaHZlaE51ekJGTERhM1g0Wk9Rd0FyZXBKT2lNcDJNczVxWU1y?=
 =?utf-8?B?VGJQSWdpTktXZDFNZFhnWDZtQnF4ODlUOTBHalhnL1NtS1JKVjNiWGw0ZmMv?=
 =?utf-8?B?Vm5uSnVWWDNBUTA2V1NnazFtd1EyVFhicWtRRy9EL1NMNUs4VUdUSWQ0enFu?=
 =?utf-8?B?M2NuK283VlRCblZpOXM5TEpxYTlFTitzbzc0QXZFNllSNTZ3MVYrbHN2ckli?=
 =?utf-8?B?YWloeDFta2UyVUk5dmNJdnVQbEtlaU1qYVkxalE0SVBTS1dOck1kQVJ5b0ow?=
 =?utf-8?B?S2FzMVRZbDdVY2VKN0U2Q2ExSU1YamxlbHRLWWFyOVJjUXNiTFFtemlyWSsw?=
 =?utf-8?B?ay95YnZJbWYxQXFoVUhhVkdlT3hHTUFyZEdqS3ZabUkxRjdidHE3R0puSDNs?=
 =?utf-8?B?d2I3U3Y2bk9hRThrRlVQZlB5Vm4yU3RZZ1ZOVnY4SFF2SzdPdktIQVF6aWtz?=
 =?utf-8?B?Q0RHT1p6Yk53TWh0QlcrcWdqYkNGK1NPWWYzc1VtbXJXTXVUR2lnOXdPWmho?=
 =?utf-8?B?QXhtQjFFam1lVHNuUjBwYnVnczZjK01SVTF5alB1UGVyaHZLUFlDeDIrZ1Q3?=
 =?utf-8?B?SDBDNDM1N1VjSnQ0VStBREpZMFRaRWMwcHdnWkR5TVpyNHA3aG5GUHY5Z0Fy?=
 =?utf-8?B?RU42aXg2SmNFT0tDa1RuTjdHR1NTS2Z2SFZDTUVsMUk1REJ4Q1VqQ0JKV3Zz?=
 =?utf-8?B?YmtmSnpzNldTVFBGS2Q0UDNmU0RrbURGR0dDQmlGbnZZc25aWWFCaTUvS3No?=
 =?utf-8?B?Z0xyTHV5dXZ5RGR4QkwyRjdOTmNqZ2Y5SEJzaks3YmpVVTVSZ0FDMjN4OUlF?=
 =?utf-8?B?ZXFGT0hFdmtHUVI1dDRHMW80djkrMHQyN0J2eG00YTFlRmRIdjZWYzFLc1ZQ?=
 =?utf-8?B?a0ZVTVBWY1pNcUx5QW42QzUvN1g1Z1AzQlp5RktreXkrUStLa2hDSWdQM0gx?=
 =?utf-8?B?TThBakZBZENKN1UydXJCYjg1S0xrVVBxM1FnU0pLSnZKU2xsYXZUNzFzcE9D?=
 =?utf-8?B?ejY5b3lQM2MvdnJ5WEZwVjdjN0ErWnJ6UzBmNGtTS1lHM2p2RzRVS2FLZnlo?=
 =?utf-8?B?NkcyV0x2MElmcUFoK0pDb0YyVHJBUVVlVmI3L2t3blpRK2RzL3J4cklLeGZP?=
 =?utf-8?B?WGZYeXkzK3BLNUFOQUdFUENXSEF3ZWlDLzZrZFhGODBFOEtidWtxVE1wREt1?=
 =?utf-8?B?QWdPeWRVZTRSbmNlaFBuYW4zSVc1TUxWWGtPVjl1bVgzSG95NUZJblJJZmk5?=
 =?utf-8?B?YWhYdGxHK0p6Um9oKzdKZlZwVldRK3Q3TkZvM01YKzc0dGVBVnFheHd2alZB?=
 =?utf-8?B?c3lmd296SmxBPT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VUdmRCtGZ3hTdzlqdzJjcWhMaFR5czVCUnBsU3gybDhMQVdwaVFxWUtwZ3Zk?=
 =?utf-8?B?RXhiK0NKU0ZvclRxWDdwMTFrU3p4OUFJWWhFUU44anpBN3lGL0Mwd28rV05O?=
 =?utf-8?B?cG1LODkxT2xhczZEMFF1T25Pd3lQdDg4MURNeWRtaDh5NVMzT2YvZHBxazdz?=
 =?utf-8?B?czNkYmVqUWpzZW9lQUVvc3RGSDc5b0N2dllqaFNjYnhtcXBFWWRuT0JITUMr?=
 =?utf-8?B?b0x3bUdkWlJlN3RpVEhwT2lURWNnSkx0UnRzTjNVaHRVRG5IUGJLQzdaZGZG?=
 =?utf-8?B?MSt2cDJtbTdJT1lnQjM3Q2x1ZmcvNlBUbmx6UUR6K1lhZy93S2pvWXhkczdI?=
 =?utf-8?B?MXVkTVV5Y0h3N2hLT0xZeDVlKzdnUU4wVFhGTUs3Z2xkWExXbzdRSDJoZjc2?=
 =?utf-8?B?WHgxSHRoSkRJVlZ5R1YwanlZcUtWOW5pRmtDMHJ4RGswZlZ6WUVZdmZNQjJx?=
 =?utf-8?B?OG95Wk1PYVphckdkSEtDRmZrd2E5eWZ1ZHM0WDF4QytId3JHNGdnNGl3aWEr?=
 =?utf-8?B?cjR3N3JVUVRYTWZHQUd1V3R6L1FnSENvVUpoQmtIZGF3NEVWK3hJQ3RJWUJU?=
 =?utf-8?B?UWdVWVNRQnhOWkYzaHAxNXd0ZEM5R1VFZ0pFVTZQcjRPL1pMNTltT0lJVEN4?=
 =?utf-8?B?aEx4TFYxc3U2OGFLUmMxbDdGb29GWWFFOUN2REZVOWN3QjliTkpnU2FyekdM?=
 =?utf-8?B?ek1OKzdXRVpNaWNYWXFnSzFVQ1FWTzJwbnR4RlBzZzNYWXcvbFZ6TFlrTE54?=
 =?utf-8?B?WDJ2ejYwSFlvWTNvMWJDOWpzaVJ6alJNSFBBR0oydHNwUlBNL1Azbzl4WFNr?=
 =?utf-8?B?bStFaE1seFZJVXkvd21aK1FSd2dkWHZpZ2NKMXJzOTRhT0lEc3RUVjR4N29X?=
 =?utf-8?B?NGhkZERlemU1UlEySXQydkE5amRWS2hTVDEzQWZickxZVVRJQ2VPR1dBemIy?=
 =?utf-8?B?UlpBdW9QcmdwMGFmSllHbWR2ME1pbnhiUzRKQ05mK1d6WUV0c3ROM3AweXBq?=
 =?utf-8?B?cEdsZzc3Q2tZc0VwTG9TWERJT1h1bUxoV0FGWE94c2xSUGV4Mkd6bWp4MUVh?=
 =?utf-8?B?amMrMkV2Ukx5VnVsUmg5c1hOS1lSVitNb3JmMzF5Z3ZqNFJoV3JUVnFwbXMz?=
 =?utf-8?B?SlhaSW5GazU5Um43SHM4b3pzRUx3dEJxQ3dZMmdoaitGa0Y0dW9HNWluTndp?=
 =?utf-8?B?MjB4R3FFK3loa0FqRVpmanF2ZU1CZ2E5b2szSUFXcDhNZHAyZFhBeVdCRUd4?=
 =?utf-8?B?Z1NXdUdvbW1veW0xWXhVdlI4VkhkMWFwcytHNnREVWdsTmU3TmlnVFRQVGQ0?=
 =?utf-8?B?Ry9Ca2V4bmlCaERHTlBtVmpYS0REaHhET0JTZk82Yk1aaGxIaEwwTS9ON1Fj?=
 =?utf-8?B?SXNKdG8xM09OVDVkT2ZSVkIzM1ZDd09YR2k3T2lkU2JnbG5nMkhtdkJDWTJk?=
 =?utf-8?B?WWhuakVCSFhqYld4ZzFZU01ncG1TaG1Mdmh3UHlpS3dwcnk0VHQ3aEc0Szdt?=
 =?utf-8?B?SEZlTHJIWFExNXNVbGxhTFd2RTdFU0FhcHI5ZlhIOTh3ZUJZa1YzYjVjd0t0?=
 =?utf-8?B?bUV6RmZRbDRrTlJRS0FLbC9TZ1lQczN2RHpxRVlDaC96LzcvcDdaOFFjOGYx?=
 =?utf-8?B?SnBxaEo4U05vUHZGODdTZ3JNWWpwSmppUldKeW10UFpGT29EWlg5Sjcrejg2?=
 =?utf-8?B?TGhTNVNoVlU1SHpKdzR2TXdZVWVSRG13K0xuTk9INzM3c3lEU2l2RFZVYmJH?=
 =?utf-8?B?amovN01CT3YrS3gxU3FJZnZTNW5LdisrTkU3R1JEK3k0WjFXWWZESE10dUFz?=
 =?utf-8?B?SVFJS3E1VG9Kc0UzSkNXZW9TVm1PSkh4dmJJTDdoOFgvdWh1VU9VMEFTbXAx?=
 =?utf-8?B?YzhpNWRXQlc1czRYQy9tUTF2TzJKenJNWnFVOW1UU3VweGtKZDJSejNiTVZW?=
 =?utf-8?B?TVI3MWx2dFkrQVgxek1DUHNZV3VOQ2VnMXMzUG0rczVaTWQ0MHlrQktORlFN?=
 =?utf-8?B?RnpVK1JDOERUYWUwbnYzSGlLZHpid08wRm5BREZ2Tmg1bmcvMGZ1TzZhVlp2?=
 =?utf-8?B?MVRBNldWOFpYbCt4b0JEVW90U295UnJ2U1lTUi9lMzRIRDBrOU1kckJPbk1r?=
 =?utf-8?B?b1pRczhJR0NqNnB5RnAvOVZ0Vi9yRDBMdzg1b3NYcjc1UkJVdXBlODdsQ0dP?=
 =?utf-8?B?ZlE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7706bb25-6a2d-4cfa-276c-08de38c15f8d
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2025 14:27:11.8363
 (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: e97n8wmhtRT46Trn0KgUkULLlJcpo31EhH5tggt6uNUko/QoW8MPlskKz8Y+yj35GHJr10VR6yZohWinU0YEkqos4mZjxVCecMjl0QufC8E=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR03MB7036

On 11/12/2025 1:34 pm, Nicola Vetrini wrote:
> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>
> These jobs should not run in regular scans, but only in xen-project/people
> repositories and branches to speed up pipeline execution.
>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
> This should alleviate some of the recent delays of the ECLAIR pipelines
> ---
>  automation/gitlab-ci/analyze.yaml | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/automation/gitlab-ci/analyze.yaml b/automation/gitlab-ci/analyze.yaml
> index 5ddfe37903..88bc42f5c3 100644
> --- a/automation/gitlab-ci/analyze.yaml
> +++ b/automation/gitlab-ci/analyze.yaml
> @@ -52,6 +52,8 @@ eclair-x86_64-testing:
>    tags:
>      - eclair-analysis-testing
>    rules:
> +    - if: $CI_PROJECT_PATH !~ /^xen-project\/people/.*$/
> +      when: never
>      - if: $ECLAIR_TESTING
>        when: always
>      - !reference [.eclair-analysis:triggered, rules]
> @@ -110,6 +112,8 @@ eclair-ARM64-testing:
>    tags:
>      - eclair-analysis-testing
>    rules:
> +    - if: $CI_PROJECT_PATH !~ /^xen-project\/people/.*$/
> +      when: never
>      - if: $ECLAIR_TESTING
>        when: always
>      - !reference [.eclair-analysis:triggered, rules]

Thanks for the patch, but Gitlab thinks there's a syntax error.

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2209479095

The / after people needs escaping, like it's done elsewhere.  The result is:

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2209482948

which is looking far more healthy.

With that fixed, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
and I'll be taking this fairly promptly.


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 15:06:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 15:06:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184202.1506699 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTiFc-0002YS-IH; Thu, 11 Dec 2025 15:06:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184202.1506699; Thu, 11 Dec 2025 15:06:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTiFc-0002YL-Ff; Thu, 11 Dec 2025 15:06:40 +0000
Received: by outflank-mailman (input) for mailman id 1184202;
 Thu, 11 Dec 2025 15:06:39 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vTiFb-0002YF-5f
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 15:06:39 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vTiFa-004rBp-0W;
 Thu, 11 Dec 2025 15:06:38 +0000
Received: from [2a02:8012:3a1:0:cd49:6fb:8176:d6c5]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vTiFa-0042CT-0h;
 Thu, 11 Dec 2025 15:06:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=7oGugNeQGSVHLHIynhQHPt61cQYkZx2gTElAtH8wwjA=; b=rvU2MLVkWDh0POiiEAMRY5v5WN
	oT2a2V4A5b8eDmLzdf6Gl1QNbk/fJQ+ZCsU1NUFCtys1qjd6DG75WFKJ3oDX3F0JEhvvIEl2I0aQj
	KAzjI+4YLLHwucd3JLpYe5DrURO8X9bEjBQGtebE5nrl+7f9vOyBVmGuqdJcM0bQFW6s=;
Message-ID: <0350292a-c955-4ce9-9f04-59540e84a8da@xen.org>
Date: Thu, 11 Dec 2025 15:06:36 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/arm64: Add support Clang build on arm64
To: Saman Dehghan <samaan.dehghan@gmail.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <bd6686e7fc0756e929334792b94ddd66bde125c4.1765239102.git.samaan.dehghan@gmail.com>
 <bb575726fe0ac783121e563b1c92f81f51e41f75.1765420376.git.samaan.dehghan@gmail.com>
 <f49dd123-32ca-46b2-a00e-751267667bd2@xen.org>
 <CAHFNDNgUNg2zTvxweZndgWwZ9EJjFJr3YB7Ouk-4x3RqcKRnPA@mail.gmail.com>
Content-Language: en-US
From: Julien Grall <julien@xen.org>
In-Reply-To: <CAHFNDNgUNg2zTvxweZndgWwZ9EJjFJr3YB7Ouk-4x3RqcKRnPA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 11/12/2025 12:49, Saman Dehghan wrote:
>> And OOI, how did you chose Clang 11?
> 
> Hi Julien,
> 
> To be consistent with minimum requirements for Clang/LLVM on x86.

To double check did you try the version and confirm every works?

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 15:12:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 15:12:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184212.1506709 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTiKp-0004Fb-3r; Thu, 11 Dec 2025 15:12:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184212.1506709; Thu, 11 Dec 2025 15:12:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTiKp-0004FU-1E; Thu, 11 Dec 2025 15:12:03 +0000
Received: by outflank-mailman (input) for mailman id 1184212;
 Thu, 11 Dec 2025 15:12:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTiKo-0004FH-1E
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 15:12:02 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bb25fa2d-d6a3-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 16:11:56 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-42e2b80ab25so122117f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 07:11:55 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8b8a9b9sm6635315f8f.35.2025.12.11.07.11.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 07:11:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb25fa2d-d6a3-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765465915; x=1766070715; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ia6UJ3o+/01uClJbT4N8qtOQvah5/qXYZk9kkwy2Ibw=;
        b=X/PkuG59zDVnwoUor8f56DqAoWqDjpIiqvA46yQ5VVoyWK97CuMNL8wMOFb5mc/YGj
         ccYmlq148t6qfaoX3s5AsLQncmDiAERpzwDR2CQqk9zflJ34UcQXw3nfHCa1/jkwjTVm
         o4SgAozS9uK8urOZiRX51AU/BphvidxBVlzYL/XW1CxqXNlQW8TL2d+xkZmFUGnku65W
         DFnP+rSSC1EY/5OogqwImGcpKx0XsZ4uBwVodgcjEXsmNisY9NBhI00SIdZbFO8orgD9
         LQrc3aUsVUEYfKFSXO6fIJ11b3ID72sicabe4Csmy/XQiXdq6j/9EQLazuA3b6QydmUF
         +2XA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765465915; x=1766070715;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ia6UJ3o+/01uClJbT4N8qtOQvah5/qXYZk9kkwy2Ibw=;
        b=a1WX3zZeWFt0rGSQ995S0hyfLNABgrS/iEEdmid5BDlAv0RTBizK1rdpUsZ8FOeiDa
         IjzrmBt/Rvwb0Ub2F0Bfl/flfnXbcoqQCZ8JYZqc1REgIx8X1PdB7zXMNfCiiuPN37G9
         fyGJ6I1ikTnlUxF7lBefrvooHWHIfOHCkSc3H+HpwrfQZwwNm3gJDT1ceW9WtslbeSRu
         /I/lp8u3JnenpRLCY6I/K0Nucolf+09SZJabSbw8JJ3b+WKL+mshxbaib+AO2EPF2J1m
         uEnZUYaxDo2V2OR7o7Kc992Bj2Ke9BbD30TSWekdY5RTOxHC3yvSSLMPZjw4DWbA3mGf
         t6Sg==
X-Forwarded-Encrypted: i=1; AJvYcCWpdb4A9ZvVh/FKSj1+pCpCgdN2rbehtIepDotw16bNUWSiQqRol2KLFIAmCnoILpkaaDbh+eewd+k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxAu88wT/7KbMxaviC91acatLQQuQeTcUSfAMIVEfd+A+2ogE43
	q5zN7rgm32pFhGbKivwfke2Gatzujwq21h4ZrJnVY+uSFPi+sKVdKPTjyE0/gdi1jA==
X-Gm-Gg: AY/fxX48QRAKUx/nmlFjOfk1CArEi59krY5y1vBxnx3rF4eWZsPAYAValzwmcWN2rvL
	O8vV3iGhkUp3g6+tIONUQvvFHqJJy7DaYA5eaq23Saj7THze06gAHrV/z6iaNE2DhH0vAxdd2qL
	NLEYGBkX68qZ2mubXQzy54G/Obx/0zLiuX6bZXUGwXt82p3eeQKPaFfCY6qUDZOlonStSb0D3ZX
	5keH5lWpiIETZlAWFZLb90KJK8/OQPO1IcymI5KYINzyFE0tuqU7AJrhJSLRQOuNIYSOT3UwngJ
	+6xiF/+hmjAntrw01fcnr31Pj4v5EqBpWqz752KY5A7YEIsJPolWkxxSN62eOxQS2JUwB961pAQ
	wWSjOmUUxgx6wBNb7jpufcUW+nS88Xm0YFVhafxyAVHbQAMEnLRP5FpEGDqJuCDOxf77vlELhXQ
	gfKQi4xUAGOeGqU2M5FsggwhMyh27pAbSWU/mWil96HkJ4X0liig98k87bTkjbSws/CzxwgC/Mp
	+A=
X-Google-Smtp-Source: AGHT+IEhTXZeXDEVeWJ8Z0IURn6tacublJUxgScK5Qh36cagGZyCJ30A++0BvpWAyDy9ItCAvvteCA==
X-Received: by 2002:a05:6000:26cd:b0:42b:3cd2:e9bb with SMTP id ffacd0b85a97d-42fa3af89c6mr7222967f8f.32.1765465915050;
        Thu, 11 Dec 2025 07:11:55 -0800 (PST)
Message-ID: <5083ca7b-38ce-444a-80fd-bb4733e46ee5@suse.com>
Date: Thu, 11 Dec 2025 16:11:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
From: Jan Beulich <jbeulich@suse.com>
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
 <46fb3196-f5b0-4f45-899d-0f0fc80d02b2@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <46fb3196-f5b0-4f45-899d-0f0fc80d02b2@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.12.2025 15:26, Jan Beulich wrote:
> On 21.11.2025 14:23, Juergen Gross wrote:
>> --- a/Config.mk
>> +++ b/Config.mk
>> @@ -159,6 +159,19 @@ define move-if-changed
>>  	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
>>  endef
>>  
>> +PATH_FILES := Paths
>> +INC_FILES = $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
>> +
>> +include $(INC_FILES)
> 
> And now a failing build tells me why by a gut feeling I didn't like this.
> Being placed here, it affects the hypervisor build as well. The hypervisor
> build, in its _install rule, uses $(DEBUG_DIR), first in
> 
> 	[ -d "$(D)$(DEBUG_DIR)" ] || $(INSTALL_DIR) $(D)$(DEBUG_DIR)
> 
> $(D) is an absolute directory (shorthand for $(DESTDIR)). $(DEBUG_DIR) as
> set by Paths.mk is, too. Both point into the build tree. The two simply
> shouldn't be glued together.
> 
> Note that the earlier
> 
> 	[ -d $(D)$(BOOT_DIR) ] || $(INSTALL_DIR) $(D)$(BOOT_DIR)
> 
> continues to be working fine, as BOOT_DIR continues to be controlled by
> config/StdGNU.mk. Its DEBUG_DIR isn't taking effect anymore, when for the
> hypervisor build it should.
> 
> And of course behavior now differs between building xen/ in a tree where
> tools/ was built before vs in an otherwise clean tree.

Below is what I'm testing as a workaround, but I'm neither sure it's
reasonable to do something like this upstream, nor am I fully convinced of
its correctness just yet. The shim build looks to be working fine, which
is where I was concerned the most.

Jan

--- a/Config.mk
+++ b/Config.mk
@@ -191,7 +191,9 @@ endef
 PATH_FILES := Paths.mk
 INC_FILES = $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f))
 
+ifndef XEN_FULLVERSION
 -include $(INC_FILES)
+endif
 
 BUILD_MAKE_VARS = $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).in))
 



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 15:18:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 15:18:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184224.1506719 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTiR5-00050W-QA; Thu, 11 Dec 2025 15:18:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184224.1506719; Thu, 11 Dec 2025 15:18:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTiR5-00050P-NH; Thu, 11 Dec 2025 15:18:31 +0000
Received: by outflank-mailman (input) for mailman id 1184224;
 Thu, 11 Dec 2025 15:18:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BerU=6R=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vTiR4-00050J-06
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 15:18:30 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a2a9883d-d6a4-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 16:18:24 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 9FFD54EEBF88;
 Thu, 11 Dec 2025 16:18:22 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a2a9883d-d6a4-11f0-9cce-f158ae23cfc8
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765466303;
	b=IwnClSH2ERZzme6LFUkhSbXcD2vykIhdg+uE2hYbfgdLNP2AVQaDlu4KHijls8R84tYz
	 aUvW+iSvgE7cGqfiiXePPc1DRVyVVwdzTrUf3ECewrRz7RPtoKv4LcbtjCC3dZ1Ja1pqV
	 NSDBPtseXbxv1EGvz+Fs3q75Ww3w7qn4kY9jkBSIn579YLVdzJasAoXoYXOdmwEDrmslT
	 IFuEZVwEYjCDwM4TLK+OInvY1w78ziBcg8DO2yY02xDxsNUayjS4lN2oabdZu9+k08cv3
	 2tgBvleevvU+ALJBJwTvb62+mnAYgUwDhtFC3+p1MpA1U9B7E7wgvJCWGFHGrIdZLIcpB
	 nFS/AGtYMOjkZASkyxzWVKZv2iUtxRwTnU5TUAZacfha8OTZncfqWbL0Wf6o9/9bfixte
	 yQM5AOr6VxYR/+lfUmEzgXJKOEivmDenOFawboUrjdWZtKPd4U4eFj1iDibUucDCfasWk
	 LKNrHnr7o97YIoB1Ukg+G1fPpNgllmDOFb0oe+pWu/RUQdr2CwbTWlnHo5NStivDwFCHG
	 TqCxUB69PlAao6Ecp5AwXWEXxiBm3q7MFO6HkqMD8tV0cM3lxB2kbN4BGzwoKAVYbznlN
	 1+bUCXREvcZROe+PfO/QBZWT9ssLeLGnma7CkhMDfb1UCUUfM0mkDbE6GxFbXG8=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765466303;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=IgIn2ddkSJbd41T8gExz/vf+ehlQlgxRgDoZXDSPDWo=;
	b=2a2gZ2aOUPdJes1pDm5zDr6dkUVk+LlVhNjbvjZ7ORBxjJ60g7ul1HpyTYRTNoZ9yC7r
	 goBHTkq0oSG48OkPfSC9wgDj2NTfWPY/hBJqr0BJVSxVlpEb1G6GOVoOqG2Kk9aX5+z+2
	 Y1qiccTC9Ma9Je5JZ5GmMFXZQg74/92kTLbYN6Nu6/BjYzWhGhfSsOpO9u5u/xamvElCw
	 D/7sYFeCLPiG15dGd9ZYEXrm2bun2StsDcIvso/IAUPSJE/GbH7qEOT0pcPkQzHaOWpCM
	 mApBfOjHhd5Z7/9IqrNmGtBb8rLTLFWjhoK0WVd+qm0KpOCdulZT3w0szTuju/Cmc5OAG
	 C7gitTE+51v1dXkyLBVIwdf5sHel0UPiunRHQZ+SPLl46OPr42KW+WsEUkNxxPWLWyq05
	 Fo3IG7WIs8hPhqxl5vX9ZEABDpG8cb+mQHG1uSppJ5jBnRFW6oa8JHErrMAaSAgrHIXEm
	 gV9Dq2nNv/tzKWJduG1BGz56Djg6V7W/ff4RUV9OKDPCnswL3afX6oueFsFD/JEafdG0e
	 6vBQZVCB4ym4EB1ntlaPrvhk0sEj9OgC2w5wMw4pk/jTM7Z1uGWAMri7k2SPNvWdOYdxW
	 Dad1TPuY5SgdVGuHj/TXAzsYEpDnyOz1l4MbN/PjkspO5iMdPeziq67LCTyogDM=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765466303; bh=qk5+1cbZFi4Ga2kf47fLs9/D/yVTd57PjBrgnPoS41k=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=BrYAhEVsUQjqAh+JFT1AlmSQ9NJqXWCiKeGyf7gFA1QY4i7JaTfthNqz43UOIJiod
	 X4LjMgNGRTQnFeasRQLRiqhbp1lSJjsiaGkKxLao0LE/ZK9xLI2Mhnj2tXUJjuSj4A
	 WqTvN3oLlEbXqHA2jMhCCIWVnOvHBRf/iY4D5mLgWlqQodPR3NJpMN3Vw8hAivQaXY
	 RuqpqMffEe2Cj/myKGt1j+NlDJ/cUxCJxHuVOaW/N7/a/HInL4xvXS4clGPNwmau0k
	 GqtgTXcWY43YPzm0vUB/ZYPgTCkpnplnwH7+Z3H1u+rGIgbhvH4gwrmNIRlb6/MM1Q
	 Hy8Rl7KAzgb5Q==
MIME-Version: 1.0
Date: Thu, 11 Dec 2025 16:18:22 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Nicola Vetrini <nicola.vetrini@gmail.com>,
 xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Jan Beulich <JBeulich@suse.com>
Subject: Re: [PATCH] automation/eclair: Run *-testing jobs only in some
 branches
In-Reply-To: <8335c03a-0635-4a97-98d2-4f12ab352d5a@citrix.com>
References: <cf852fe2b233bf98e57bcf82d4c9253b59aa17ab.1765459392.git.nicola.vetrini@bugseng.com>
 <8335c03a-0635-4a97-98d2-4f12ab352d5a@citrix.com>
Message-ID: <d8d4165c1e8fc550d42b2930c8a176cd@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-12-11 15:27, Andrew Cooper wrote:
> On 11/12/2025 1:34 pm, Nicola Vetrini wrote:
>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> 
>> These jobs should not run in regular scans, but only in 
>> xen-project/people
>> repositories and branches to speed up pipeline execution.
>> 
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> ---
>> This should alleviate some of the recent delays of the ECLAIR 
>> pipelines
>> ---
>>  automation/gitlab-ci/analyze.yaml | 4 ++++
>>  1 file changed, 4 insertions(+)
>> 
>> diff --git a/automation/gitlab-ci/analyze.yaml 
>> b/automation/gitlab-ci/analyze.yaml
>> index 5ddfe37903..88bc42f5c3 100644
>> --- a/automation/gitlab-ci/analyze.yaml
>> +++ b/automation/gitlab-ci/analyze.yaml
>> @@ -52,6 +52,8 @@ eclair-x86_64-testing:
>>    tags:
>>      - eclair-analysis-testing
>>    rules:
>> +    - if: $CI_PROJECT_PATH !~ /^xen-project\/people/.*$/
>> +      when: never
>>      - if: $ECLAIR_TESTING
>>        when: always
>>      - !reference [.eclair-analysis:triggered, rules]
>> @@ -110,6 +112,8 @@ eclair-ARM64-testing:
>>    tags:
>>      - eclair-analysis-testing
>>    rules:
>> +    - if: $CI_PROJECT_PATH !~ /^xen-project\/people/.*$/
>> +      when: never
>>      - if: $ECLAIR_TESTING
>>        when: always
>>      - !reference [.eclair-analysis:triggered, rules]
> 
> Thanks for the patch, but Gitlab thinks there's a syntax error.
> 
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2209479095
> 
> The / after people needs escaping, like it's done elsewhere.  The 
> result is:
> 
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2209482948
> 
> which is looking far more healthy.
> 
> With that fixed, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
> and I'll be taking this fairly promptly.

Ah, right. Should have done a test run. Thanks for the fix

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 15:19:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 15:19:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184230.1506730 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTiRo-0005Ta-5M; Thu, 11 Dec 2025 15:19:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184230.1506730; Thu, 11 Dec 2025 15:19:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTiRo-0005TT-2Z; Thu, 11 Dec 2025 15:19:16 +0000
Received: by outflank-mailman (input) for mailman id 1184230;
 Thu, 11 Dec 2025 15:19:14 +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
 <SRS0=oCI8=6R=gmail.com=samaan.dehghan@srs-se1.protection.inumbo.net>)
 id 1vTiRm-0005NQ-H5
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 15:19:14 +0000
Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com
 [2607:f8b0:4864:20::102a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bf6b0b94-d6a4-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 16:19:13 +0100 (CET)
Received: by mail-pj1-x102a.google.com with SMTP id
 98e67ed59e1d1-343f52d15efso202322a91.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 07:19:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf6b0b94-d6a4-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765466351; x=1766071151; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VgnvydHMn/DtDaaMKTGqHvZwSDVEI6+CjInwhGJLJPg=;
        b=cbVmDIeoDn6OWHFpa00+DipeKUHEcU4b98ZUUdqOHPOOaC+GL8Kpfz2hBzKMwYW/Tz
         /kvPXmKNw641sdqigMsHLmOlGdnFHGrnallrBFTwiBOU16/MvxEwyLDC6hD1F7OQQb1b
         tcbfhICs3e2sOk5FsVN1N7EwNtf/rdRrtkcWIaZzVwiapinusduQSi5C48hJ4if/odNZ
         OLJE4sAtBX5OMwHbjW8h8FeQOkGjmFmjNNqc/z7SBzaetl9R+UXMTrCnjMoFaPl+uiDr
         LkCeNwv1tDvQJtIcZ3YM+T25rgnLAD8OWrmpnAC1L2hsF6gmPB8Z+U76jIgZM1wU6YzK
         pM/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765466351; x=1766071151;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=VgnvydHMn/DtDaaMKTGqHvZwSDVEI6+CjInwhGJLJPg=;
        b=mjp3SsXNmpwwClG+8dXhB7hlaCCXVE+JdJ4BnwGTVGBZDWHveLwvBP/wfJF+sUxKmU
         W1bDhZOuha0hPX0zUDWfDeGioBl5C+8GPGXR3mR4995cbtWGSCWhk17D8kdO13Bswmyd
         7SBnJ1Z1+TF+o0vyPUw/EceniuBy3mhWj5rGVuvRmwFICqcbRWNn1R2hr6gkzgzpYzHe
         ij4YyhVSltEziXHTDXjIYBGflGRzPJtrEBEpCT2GvRwZ2i4TxV9hwxeNRNa5gHqhnE/O
         41oUCjZ1lDNuAWrZOGVxfaPrcyKbswPP3rAtbC7Y6vlhTlJ6tKBhfoC2/2RFQAMR0Wwj
         ALdA==
X-Forwarded-Encrypted: i=1; AJvYcCWpC6r7LTlDxqWa1t4kUQeW7WDd2AkVG4tCYjknD615UfktvPqM4b88KkNkcQZrIcwg+zPne0LT+0E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzIWNoUJIBef2Glj20lubm8PpAzTB91IZGmpbUl/d2dLA21l1x6
	U/1NbEts7xrNkp0t3ISFl2Yo/S094wfs905gfZhhzX6YYKYC5h5QlLOoAKrSFeHeFDIbJLLc2Ex
	5WGdAxYUbnZ3kX/gq5Jy2TzXq9OdCqBZjrqgGqA==
X-Gm-Gg: AY/fxX7SNVPrPFVR1zwAdCsJ73oV6k0laTVjha8ffxh69DlgtAwsCoji5hxl/oLu+aL
	ROaeWcavfuHSmfyyFZJhr7NUZ1hXOmy8xNgymvvzUmUgHDB/sG2NeqGDlZvf5wZ7wnorUOheawY
	XGmWa1cwCK0sIReAAolvlLikJm/T4k81Jt5RK/2mRFWZOyqkDS5UnVc17/FZOGB0XjENjTgKhxZ
	rms8ls34zAF3qoyldkKzpjrTe6HMfDqmrcnh042rmtl6sYeYCme0msctDGGLpkEsOQemUXEUOPc
	1GGZRHBGFUjd492iPZ1B9Zib
X-Google-Smtp-Source: AGHT+IG/XTbUHh2o2Af4sBPcNHyuONDr2e/z4e4YrqCO1OeGIaQn1FGrZVdXLc4/KxZkUd7HdqBpMTW4VZVKW+iyBkI=
X-Received: by 2002:a17:90b:2e10:b0:33e:30e8:81cb with SMTP id
 98e67ed59e1d1-34a7281a4damr5233835a91.13.1765466351500; Thu, 11 Dec 2025
 07:19:11 -0800 (PST)
MIME-Version: 1.0
References: <bb575726fe0ac783121e563b1c92f81f51e41f75.1765420376.git.samaan.dehghan@gmail.com>
 <fbb12a9b0aede6dcb398a76018c274a5c76ba1fa.1765456914.git.samaan.dehghan@gmail.com>
 <a9428da3-590b-4ca4-a3fe-8eeed5b0969a@suse.com>
In-Reply-To: <a9428da3-590b-4ca4-a3fe-8eeed5b0969a@suse.com>
From: Saman Dehghan <samaan.dehghan@gmail.com>
Date: Thu, 11 Dec 2025 09:19:00 -0600
X-Gm-Features: AQt7F2qwLs9OmBRezSH_nPrSEL-HvmRPYyvejtm5pI_VyeLcgePSgPfpkZL2H5c
Message-ID: <CAHFNDNizky9Khek7uzbrSAcoZnJcA5SyGA0MbZSDKJbA45_0Zw@mail.gmail.com>
Subject: Re: [PATCH v3] xen/arm64: Add support Clang build on arm64
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Dec 11, 2025 at 7:50=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 11.12.2025 13:57, Saman Dehghan wrote:
> > --- a/xen/arch/arm/arm64/vfp.c
> > +++ b/xen/arch/arm/arm64/vfp.c
> > @@ -6,7 +6,8 @@
> >
> >  static inline void save_state(uint64_t *fpregs)
> >  {
> > -    asm volatile("stp q0, q1, [%1, #16 * 0]\n\t"
> > +    asm volatile(".arch_extension fp\n\t"
>
> This will take effect for the rest of the (generated) assembler file, whi=
ch aiui
> isn't what you want.

Thanks Jan, I also noticed I forgot ".arch_extension nofp" just after
sending the patch. Sorry about that.

~Saman

>
> Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 15:24:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 15:24:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184251.1506744 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTiWk-0007AG-OY; Thu, 11 Dec 2025 15:24:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184251.1506744; Thu, 11 Dec 2025 15:24:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTiWk-0007A9-L8; Thu, 11 Dec 2025 15:24:22 +0000
Received: by outflank-mailman (input) for mailman id 1184251;
 Thu, 11 Dec 2025 15:24:20 +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 <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTiWi-0007A2-Rk
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 15:24:20 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 76756e41-d6a5-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 16:24:19 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4775e891b5eso1179535e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 07:24:19 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a89f0e42asm39734945e9.14.2025.12.11.07.24.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 07:24:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 76756e41-d6a5-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765466659; x=1766071459; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YtZdzmzE9OpILgU3kkeKLX69OOmX8jNr4z0EvH/+k1U=;
        b=F3uxS4NOKQX+O/YiEPa+O0Jo0Sgkf8azhfnCk/pobAudlg7bcHvZ9dBJgnG7Cwz7go
         7Thxeme9w1IuDyvf6zEb8htDf0gxLhJF5S795lk3npyrgQNmA8KTgtKsAL3X0wEL84fF
         63UW/KdKKnUkDBMFiAwNZ3lgrSQYE+7/grmR57XfRfNM77b8krppLPfb+9WGPT4L07e3
         Tnkznqm876/ear6vl1qqDt3P2rGbqK66bump3VIgRTecDFCLffKuFWWbObMAmsknJ+eK
         RQHl0GvAeYgW2LeWkZdkeCxsigVgdumhY9rCTodFdezF1vmjoLax7vcVZnGu0gUxTJMz
         U1qQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765466659; x=1766071459;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YtZdzmzE9OpILgU3kkeKLX69OOmX8jNr4z0EvH/+k1U=;
        b=iLaF8dtXmJIa3L9ZIcnz6c1gz5OGsA9/Qgz6VwpgwNOAQ715pykSmWbjp7S6sEQ0YT
         NczwBvOPvaTINYk3CU90DaRflKY8j75kmZNbvbii3knoyUSJRU7np4YJxiRGE9mh2ODr
         Wns2YkHFKu91VER4YPvXzEyNjXG2UR7Z9gglIG8Sj3QTamGOUmu4tffLE4w5cbMxPHbn
         /2Lfb0va7bz3cb85ccWwC2j3Ebg+v/RL2XLmcr7sflSLFq2QqBqL9yJvoleVXPhwtAST
         dp4a9vEBnMo5NlMUzEjFYTeaJvWDxtsgXl4zs3hQN2nVdAwg36RmYMMePn7SDCUTsV3T
         qecw==
X-Gm-Message-State: AOJu0YyPiNDCE7UrgXxm/bQCOGyamrR12Fk5I5TJCLIZPkheYZKJFJ4W
	iezMYNh2J1ms/deZrB+Pqqh8ad1DDikd14UF3qD/v5yq+71TYbf1JI68Brf3cUBWAg==
X-Gm-Gg: AY/fxX4fnyAU7mLQeFmFXluxnCr2IYppItHY6b2FPOSfoHYxGRG3mPQvkSUCQAA2lXr
	nLCyIJo93+/2wHE7MRinpjjj3ibeR9i9iDTKqcTMzCMG8d9ll5JRKruXOujY19IRokRLBNsjUa7
	zZ7LBU8SlZpnC2LBXl1NICBoYmxJiuZaEM+VVw/S2jgXoF8pZ9mP+Ga61fHz7zqVNWl2c8sW5tN
	S72Eb2Fc2l8Mfpj5epoVK5f8ap99dwwlOPC8VUpg1yZ2KZBX2YPeOb92LWawSEzKhrAIdPHRDAi
	gYwxjDfdYcXYwmaEP6CcesnilJk0UggqV8bp66xrWt+ZXWWs3IMOCZ15delibOPmc2BSasEIm9u
	CzQ46e72Ow0DdqxTjey5BLIl3XRRrQGpUVork0fAiD55LOoVW88MMwAx0v6y6q4a9nUBIEUnJWU
	8ElkslRfo2l0VyZlbV+Yw7Bk5Fq1kg3VE5mK0E/vdloTkiJwhn/UewyZNlVvV2g7E2NpLYGpFZ7
	Ec=
X-Google-Smtp-Source: AGHT+IHubwD3X4RAJGz4e4Qtb3GuZAQUy2zU/qJjkr4Ylzrq5CpRSXlyzkvX3xC4Jr9hL0V1pqMrQQ==
X-Received: by 2002:a05:600c:630c:b0:477:9392:8557 with SMTP id 5b1f17b1804b1-47a83790ca0mr66474955e9.18.1765466658772;
        Thu, 11 Dec 2025 07:24:18 -0800 (PST)
Message-ID: <0f61c337-a359-44eb-a232-b166d82e7178@suse.com>
Date: Thu, 11 Dec 2025 16:24:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Strange symbols_lookup() behaviour in test-symbols on arm64 CI
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <CAGeoDV_YS8hV2+FXVgXxvHLw=MQOAoJZwrP1Ypw8+ZUjKB9GSA@mail.gmail.com>
 <a5361a51-128d-47e0-b5ed-58bfd0d9e8ad@suse.com>
 <CAGeoDV-vfiKECmvWzJ4dnzicXDL7XJDxwEy_Z737k+234Gkzpg@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAGeoDV-vfiKECmvWzJ4dnzicXDL7XJDxwEy_Z737k+234Gkzpg@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.12.2025 12:44, Mykola Kvach wrote:
> On Thu, Dec 11, 2025 at 1:15 PM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 11.12.2025 11:29, Mykola Kvach wrote:
>>> While working on an arm64 s2ram series for Xen I have hit what looks
>>> like very strange behaviour in symbols_lookup() as exercised by test-symbols.
>>>
>>> The series is in the branch referenced at [1]. All patches there except
>>> the last one build and pass CI; adding only the last patch makes the CI
>>> job referenced at [2] start failing.
>>>
>>> Note that the tests in that job are built without CONFIG_SYSTEM_SUSPEND
>>> enabled, so most of the code introduced by the s2ram branch is not
>>> compiled at all for that configuration. That is why I initially did not
>>> expect my series to affect this job.
>>>
>>> To investigate, I tried to reproduce the issue locally. I downloaded the
>>> xen-config artifact from the failing job [3] and used it to build Xen
>>> with my local aarch64 cross compiler. With this local toolchain
>>> I could not reproduce the failure, and the resulting .config changed slightly
>>> compared to the job's config. The relevant part of the diff looks like this:
>>>
>>>     diff --git a/xen/.config b/xen-config
>>>     index 057553f510..44dcf6bacc 100644
>>>     --- a/xen/.config
>>>     +++ b/xen-config
>>>     @@ -3,11 +3,11 @@
>>>      # Xen/arm 4.22-unstable Configuration
>>>      #
>>>      CONFIG_CC_IS_GCC=y
>>>     -CONFIG_GCC_VERSION=130300
>>>     +CONFIG_GCC_VERSION=120201
>>>      CONFIG_CLANG_VERSION=0
>>>      CONFIG_LD_IS_GNU=y
>>>      CONFIG_CC_HAS_ASM_INLINE=y
>>>     -CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
>>>     +CONFIG_GCC_ASM_GOTO_OUTPUT_BROKEN=y
>>>      CONFIG_FUNCTION_ALIGNMENT_4B=y
>>>      CONFIG_FUNCTION_ALIGNMENT=4
>>>      CONFIG_ARM_64=y
>>>
>>> So there is at least a difference in GCC version and asm-goto related
>>> Kconfig options between the CI environment and my local one.
>>>
>>> After that I tried rebuilding inside the same Docker image that GitLab
>>> CI uses:
>>>
>>>     registry.gitlab.com/xen-project/xen/alpine:3.18-arm64v8
>>>
>>> When I build Xen in that container, using the same branch, the problem
>>> reproduces in the same way as in the CI job.
>>>
>>> Even more confusingly, adding extra prints in test_symbols just before
>>> the calls to test_lookup() makes the problem disappear. This made me
>>> suspect some undefined behaviour or logic issue that is very sensitive
>>> to optimisation or layout changes.
>>
>> All symptoms described make me suspect you're hitting a problem we're
>> already in the process of hunting down. Can you please take [1], make
>> the small adjustment necessary to Arm's linking rule, and see whether
>> you get a build failure in the case where right now you get a boot time
>> crash? Of course no other changes to code or data layout should be done,
>> or else you may observe false negatives.
> 
> I tested the issue with the provided patch, and it is still reproducible.
> 
> This is my working branch:
> 
> e8d5baab50 (HEAD -> reg) symbols: check table sizes don't change
> between linking passes 2 and 3
> e53439fdfc (xen_gitlab/reg) xen/arm: Add support for system suspend
> triggered by hardware domain
> eaa461f3b5 xen/arm: Implement PSCI SYSTEM_SUSPEND call (host interface)
> 4236fff9a4 xen/arm: Save/restore context on suspend/resume
> a150f3d4bb xen/arm: Resume memory management on Xen resume
> 
> You can find the following line in the attached Xen boot log:
> 
> (XEN) [ 0.010785] Latest ChangeSet: Tue Dec 9 11:11:40 2025 +0100 git:e8d5baab50

But this means the build succeeded. Which in turn suggests you're observing
a different issue.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 15:24:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 15:24:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184257.1506754 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTiX4-0007UP-Uj; Thu, 11 Dec 2025 15:24:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184257.1506754; Thu, 11 Dec 2025 15:24:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTiX4-0007UI-Ru; Thu, 11 Dec 2025 15:24:42 +0000
Received: by outflank-mailman (input) for mailman id 1184257;
 Thu, 11 Dec 2025 15:24: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
 <SRS0=oCI8=6R=gmail.com=samaan.dehghan@srs-se1.protection.inumbo.net>)
 id 1vTiX3-0007A2-EC
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 15:24:41 +0000
Received: from mail-pj1-x1032.google.com (mail-pj1-x1032.google.com
 [2607:f8b0:4864:20::1032])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 82a6665c-d6a5-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 16:24:40 +0100 (CET)
Received: by mail-pj1-x1032.google.com with SMTP id
 98e67ed59e1d1-34aa62f9e74so237768a91.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 07:24:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 82a6665c-d6a5-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765466679; x=1766071479; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9rK+gF8ppzKcbsXv9Sn0J7iylIKfNWdUjRIPtDm19rk=;
        b=KQ+4nAIYdy9151dNQACQCD+XW3d28KcoCcQ3/zZFZmzHOX/RsqWpz5+HM4rqXutFwe
         UqCi90TpMojxYA/wy+ZR4Tx84kSDTh9tp+iZZqb2vZa9N49fqqY0LIImvZOOLwSFSbJ4
         nfZl0OIZgMTxwhkBDoW22go/Ptlokx8buaqs3ESa/5HjHImqnDAzH/2eAfd8rRFScI8/
         r8XMYqlt1HOBVvrhawz0JWNoaNW1nWUUTauBDl/G+cu4QuUQr5HqkgxZNmhLdhEa+V2V
         UEtYdaw8KLjF55gctwMBw7xRR4v0dkWakf8HkGrBsd20EF7I2Wk/wLJYaXCR0z6QU009
         Z8dQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765466679; x=1766071479;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=9rK+gF8ppzKcbsXv9Sn0J7iylIKfNWdUjRIPtDm19rk=;
        b=gqi0rwRhSwWtry3f7QKxhuCUCA3a9kpOpiHh6KkmDfvWC+jcmOeneBV+XufcNUb56D
         75CqGFGkcYGhnlNQPmLUNz7JyLypd4Ch2CnMbthrYoaQLYEye+OoA+4qBbW6EYvwTs7s
         H6BWw2gxPsnr5iis1lj6lui3MILortF+reaU03mbO0+CYdbYLMoihsSdtL9I7WdhjYph
         JcQPA7fl+roUJh0zWB3rKmSXm+h1q/g/Zpe1OaWOVJYaDCTpTZcC4XkKr1RCsgVEBi01
         DKnPDSKZXPlqcOs09d9DzWb8KxmzpBU2a4qF3NY+Doou2j2fSgfe+Vl42MuEMuHd/rj8
         7qjA==
X-Gm-Message-State: AOJu0Yygx6zEFb7avwGmEVPXIdORqsgqmdJ0A3Rk9+dJNsm8dGrnfR1F
	WaJgYJRav8RwjCEB5Q5hkylryCwjdonJ6TbnkH8kscbb0i2c/qmT/X03tbPIlVpDknTsKWBMC2V
	/xQhXWzp8ZZy4zu4T4+2H4Nn1jytULQ==
X-Gm-Gg: AY/fxX6qABY/5/cIhPPIMHRCNrQAQpWCXEdhq+q3Z+XM6yob4dtNqCAyOnlDkWnbBkG
	gOejKKPwihQJjekdDfNx7A4gefb9/qQz6g7sxYl9F15jZ9zl1tpOC71yRpoYdjJODNwB+0pn/iB
	udCp2wpnPvR1Z4A+Xcp6iIkNrtccaloB7NcQ50rgbx7Pgc3zQl8IKm76PIZNJ2IV+vWd93Lxd6N
	AQGdWFYJ8RNYtosB2DYT/NZbHD45djCmvwc6IPwu2VB5qO3rQO8Rc1njIDlyAsBbGmz+U4fIXFD
	N5r8DFqj5can/dfnGbUANlMeVQhSDkr+Puc=
X-Google-Smtp-Source: AGHT+IENJuLgGi/WJ4SgdXhBsxmIGQEPOCrEDDZFslbBA9aaZdKvvu1R17SCLvhJPzKMZzeyttJ11dbW/zBJl82YSpk=
X-Received: by 2002:a17:90b:2e08:b0:33f:ebc2:645 with SMTP id
 98e67ed59e1d1-34a7285cd0bmr6955657a91.20.1765466678971; Thu, 11 Dec 2025
 07:24:38 -0800 (PST)
MIME-Version: 1.0
References: <bd6686e7fc0756e929334792b94ddd66bde125c4.1765239102.git.samaan.dehghan@gmail.com>
 <bb575726fe0ac783121e563b1c92f81f51e41f75.1765420376.git.samaan.dehghan@gmail.com>
 <f49dd123-32ca-46b2-a00e-751267667bd2@xen.org> <CAHFNDNgUNg2zTvxweZndgWwZ9EJjFJr3YB7Ouk-4x3RqcKRnPA@mail.gmail.com>
 <0350292a-c955-4ce9-9f04-59540e84a8da@xen.org>
In-Reply-To: <0350292a-c955-4ce9-9f04-59540e84a8da@xen.org>
From: Saman Dehghan <samaan.dehghan@gmail.com>
Date: Thu, 11 Dec 2025 09:24:28 -0600
X-Gm-Features: AQt7F2pPw489SG45usGsani7h5aTrA-CKR3362cr66sV7v5CM_HB4Ja_Nl6Z6RY
Message-ID: <CAHFNDNgn9m-Jpf33k+=jwA9ENTs+77Kj-JK_2V_SeGFMbo+YmA@mail.gmail.com>
Subject: Re: [PATCH v2] xen/arm64: Add support Clang build on arm64
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Dec 11, 2025 at 9:06=E2=80=AFAM Julien Grall <julien@xen.org> wrote=
:
>
> Hi,
>
> On 11/12/2025 12:49, Saman Dehghan wrote:
> >> And OOI, how did you chose Clang 11?
> >
> > Hi Julien,
> >
> > To be consistent with minimum requirements for Clang/LLVM on x86.
>
> To double check did you try the version and confirm every works?

Hi Julien,

I compiled and booted Xen with Clang-{11 - 20} on both native and
CROSS_COMPILE=3Daarch64-linux-gnu-.

~Saman

>
> Cheers,
>
> --
> Julien Grall
>


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 15:31:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 15:31:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184280.1506764 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTidz-00015i-Kf; Thu, 11 Dec 2025 15:31:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184280.1506764; Thu, 11 Dec 2025 15:31:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTidz-00015Z-HA; Thu, 11 Dec 2025 15:31:51 +0000
Received: by outflank-mailman (input) for mailman id 1184280;
 Thu, 11 Dec 2025 15:31:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTidy-00015T-Ot
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 15:31:50 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 81f0bdce-d6a6-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 16:31:48 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-47796a837c7so2103215e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 07:31:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8b9b26fsm6880943f8f.40.2025.12.11.07.31.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 07:31:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 81f0bdce-d6a6-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765467108; x=1766071908; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Iyet7NxAy0x0B+xNbxswknYYUrTPd7LUjEqrxWTg5+I=;
        b=eMSnPFpkEgEWcX1GDz+rfZPyX9LPVBh63VRBnAij5b4+XkSXNmMJWPCyyGl2Rj8wu1
         k19Yzwk2dtGsPmgnqJr5FFDw/B//0WLaLeeqR1m2QSJVjkpnD8bSvLeWhGK2APODvaJ7
         cPn8owGBL+Nlx8uaDd7+hlf4ddhCRdXm00U+/Rkgi9WceschDIfu2t6LMed5J8GwZkUR
         WvHORlIFZxHlLhjNPe0pbyre5NFvbpWuC+zwr0FxeRrokHP7EBm4vNVaEfNGr9DZ7mhW
         EoIGV/PURLIjHDJmyQg6irjhs1QlD8WrtoRtt7HAG2LHw2h+WaonnFRRYahKgzUEC0Y4
         7KnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765467108; x=1766071908;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Iyet7NxAy0x0B+xNbxswknYYUrTPd7LUjEqrxWTg5+I=;
        b=f9kw+PlkhZPtqO7bMLdegzTQdeEq6yoZRYShIIV6c27qxrPgtEMn4VDChVDa2aS6YY
         xn2eVvqBBSHkT/PXddK6E415SfnYCMbvjCb/1eiipnLduW6D3ct7pvRTYm8S9gLwn6ga
         kxS37xj0zuNjtAIDDyPB26xgVmvcUPh5TmPx0WoV4IUPoVdfRLXGEw6cvjGZQpRe9flu
         3Fu1RDor0J38YYAV+/jOwzsX33IZcbf8KaZ235jZy7DfHjzztLCIKHZHyC4QA4y2yBli
         e6kbeAc2dYl9WEVjibD+93Rcm6CURTS63Bi3l9yXZIW0OZG/Iq8RKFq8tobinVHtcCNA
         5bfw==
X-Gm-Message-State: AOJu0YxRpg6HlAAKLC8I8UsEk875NOUgp6GPM3UXK8Eo6psZXThCKbXn
	5X0EpO5667B+PI0ZMPOjf1cWDqawDWnqYYnX1ey1jD8NLRYoIxlEN2h8tKR5mSuoWPBpmz3DwIR
	NVv0=
X-Gm-Gg: AY/fxX6joLo597m70JaQbnBDUkPJW0N50yzMILqeUR+7kcqYA2p0LqgB4gnYXvfb32z
	nGZb2YkD6kFZGwe2EKlekTPWhFJPSfhRbSoXEGaf4y1UYyx09yaGTENUO22Jtz3yenfR9ZOX9wf
	LA65h3OaW8UVqha0lgmPDForWdJp253w3hAQVDbxKrSHoMmjB96LbGUy8gO7fNjLxPWxUzADJ/D
	BaZAE5vE8Kc5YpOPD9kJI2GiVdxntWQcxyGDK+fC+1OKPqspqlejXkbAWfLSUth1cBYxmkhd/U9
	wcbbggpiWdJbNKTii4o5EtdPHSYVrl7Ga2GlPGta6eI7a09vlohnvZgc2hDAyzSjTbaxkbd5AWq
	aNDLT8HADenpcsLsKehhZhR9CnplsNd1aKktAPilvth2l3+Yan3PvrTC+uqj+O6xZMaJqTzwmAY
	Qcjxw62sUleEeekxKd5BocpHH/b1naDaQZqGtTwRM+hq1dEBlfT06RMaUM+kWdrBLzWW7EOFX4T
	8Q=
X-Google-Smtp-Source: AGHT+IGSIEK4jDuyKw5Q2F9JfPaXdFEYrbBq29UUrKpw+7Y7QTtoxJzTxlwMQSF1GJNnIRXtSSu9OA==
X-Received: by 2002:a05:600c:4f12:b0:477:97ca:b727 with SMTP id 5b1f17b1804b1-47a83806a32mr65386775e9.19.1765467107607;
        Thu, 11 Dec 2025 07:31:47 -0800 (PST)
Message-ID: <b4013cae-f27a-4c69-b136-d33db2d22725@suse.com>
Date: Thu, 11 Dec 2025 16:31:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Strange symbols_lookup() behaviour in test-symbols on arm64 CI
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <CAGeoDV_YS8hV2+FXVgXxvHLw=MQOAoJZwrP1Ypw8+ZUjKB9GSA@mail.gmail.com>
 <a5361a51-128d-47e0-b5ed-58bfd0d9e8ad@suse.com>
 <CAGeoDV-vfiKECmvWzJ4dnzicXDL7XJDxwEy_Z737k+234Gkzpg@mail.gmail.com>
 <CAGeoDV8VZ1m6CQAkKK-9UDz4npXm2V+Up+BBo=+NyzgLJMW+3g@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAGeoDV8VZ1m6CQAkKK-9UDz4npXm2V+Up+BBo=+NyzgLJMW+3g@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.12.2025 13:06, Mykola Kvach wrote:
> On Thu, Dec 11, 2025 at 1:44 PM Mykola Kvach <xakep.amatop@gmail.com> wrote:
>> I tested the issue with the provided patch, and it is still reproducible.
> 
> I also triggered a pipeline with the patch you provided on top of my
> changes [1],
> and it failed there as well. In fact, it exposed additional problems
> in other jobs.
> 
> [1] https://gitlab.com/xen-project/people/mykola_kvach/xen/-/pipelines/2209153728

These are the failures we're trying to hunt down.

Looking at one of the Arm build logs, I can't see any indication that you actually
extended the patch to Arm's linking rule. Hence my conclusion in the other reply
may be wrong - we simply still don't know what the situation is there.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 15:39:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 15:39:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184290.1506774 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTilA-00021P-5c; Thu, 11 Dec 2025 15:39:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184290.1506774; Thu, 11 Dec 2025 15:39:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTilA-00021I-2Y; Thu, 11 Dec 2025 15:39:16 +0000
Received: by outflank-mailman (input) for mailman id 1184290;
 Thu, 11 Dec 2025 15:39:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cEbC=6R=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vTil7-00021C-Om
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 15:39:13 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 87c0f35b-d6a7-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 16:39:08 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH3PR03MB7433.namprd03.prod.outlook.com (2603:10b6:610:19f::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Thu, 11 Dec
 2025 15:39:00 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Thu, 11 Dec 2025
 15:39:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 87c0f35b-d6a7-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vqDsP2c45MAwIkSfBEwckpRx+roO6YEBPj8+4P+ec1hrEHNx28bFLHerVcuM4uDq3fw+XRfQQpEIDBVZXM/FYAfXJVWonJKPPB0a0c0P0w3eRsjNZpoZJz2ugqiP7K1x95c//4zGKFEcgTvvJmmSaBBBKRa029BnIUhFvW03qlO4aOzcFqhDYw5Qinpuk2sajf16PoGm78xoEVA+MnTJjeDmm2QQmdgCzZnPRLPt0jVUeN9IXV2L7nxAAvfs1vxhyWb49nzc0kbdKF/i/2ttscQzJkf+S6fZanLtUmnc1TXdJivcaph27J889iavTekwb1PCr+46zY0rNMpwSax5mg==
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=V51oZObenhNA+VK60UT4VaWQgdqmHpRYGC1FTnHwq/o=;
 b=si/pzNrIs6iUHx5PD+1c5VpFoODYNjN0hs27wpIZ5mBtPW9AraEy1a9VPA6wqkzF+i4sbRH6FEmkDUloMFnQJRzcqrHyGOekfhEX/bw7TUDju/mXGB2V6siok2nCu47y307GxRQdFoIebvSXfpssHwCpEQV7fs5JxdprlTAvLe1UbwyqUxZC9Bd7yr9AMZzPBTnPA2sBBkandxY9e4Dxcp3rFUfv4u/HYP34giMeeysDnQ5ZU44TS34xhyoI0sXfRakm9QrBzhGJPLTXrHQdeIlbB2KNz0FnCvyjBZ/hAX66b0yL9wpyZcoGfzkwkkXWx1dx4CLd/RdCZ0vkhJPCgA==
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=V51oZObenhNA+VK60UT4VaWQgdqmHpRYGC1FTnHwq/o=;
 b=LOrsVovEILsQfUNEW+oUunbQzfTaOgPoZypOQlDRi+t9782Blyc7nn7hpYuskCXLTBhR1+hP+JSPAsgbFUIaVV10Ve0apnUmsGChDjUvQjhWUXyytVny7BndENKq5zpyZEPTgXepxieC9yerY2kliQRb2+rJSn8EJ4F6CSqaomM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <15659af8-4604-455a-b7de-91c4df213ab5@citrix.com>
Date: Thu, 11 Dec 2025 15:38:56 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Subject: Re: [RFC PATCH 09/11] x86: Migrate spec_ctrl vendor checks to
 x86_vendor_is()
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jan Beulich <jbeulich@suse.com>
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-10-alejandro.garciavallejo@amd.com>
 <73146271-c849-4d16-8eb8-80e7d59f42f2@suse.com>
 <DEVBH18RU4WL.2GFVGYVC8SWAC@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <DEVBH18RU4WL.2GFVGYVC8SWAC@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0285.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:195::20) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH3PR03MB7433:EE_
X-MS-Office365-Filtering-Correlation-Id: 83659308-ba41-4d6d-7c9c-08de38cb67ca
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?T3l4dEVWSC9qU1RzUmVWaUpJa05raE44ZERQNnY0S3E2ak44UjJWZDN2VUp5?=
 =?utf-8?B?OVdGelIwUzk2SGI2UmdmQUY5OERYcGVVMmxHb3FMUUJja3VXOWduOWpwRHhi?=
 =?utf-8?B?cmxRKzgxRVdPM3AzLzQ2bGhERk5heU9mVXIveHA5dXU0d0pFbWxlWnEySkov?=
 =?utf-8?B?UjN2UkhCVGdQVDBMcXd5ZVdDM0NoV3JDTVQwSFVXd0tpSjlOcVM1MG1XQjhn?=
 =?utf-8?B?TWMrZ0hoclN3cjhUOVRPK0d3MGw5RGd3MlJ2SXE5OStEcEVQMTRkdDF4M3NR?=
 =?utf-8?B?K0VaRlIvY09tcHkxQmpKUThMeks3dXYrSmRRZlpkdzNqQWNHd1BId0VXNFFF?=
 =?utf-8?B?d0c5VWFlSlk0czFlUi9JZG5wdVZUNWJaM2VET09MbWFmQlB6eTBWUk8vZDFq?=
 =?utf-8?B?WmJNV294TVp0TTdwRHNLMnZFT1poMXFrOVd5b1d2aEc2b2FhdFNxbXhuZzFi?=
 =?utf-8?B?S0xSZy9mRlJjTkdnV29YYkRCYStOT1Y4elRSL2NPdEtucUt5ZUhwSG5VSk9R?=
 =?utf-8?B?aEEyN1JIdkg3UjdSTTE5cDR3SlMyekY1b1ZNcmVKU1Nvbi8zZXh1b0VFVzJC?=
 =?utf-8?B?R3kzYnFRWTVQOGQ4Vi9jVG5QRThWWGF5QUY4NWdVVXJ1WksvSE5paUdOTXF5?=
 =?utf-8?B?Q0VDMnExT0ZtaTRqSjhYRGlycFF0ZHNkbjdwRVZ1L3Q0QXpES2xseEp4bDZC?=
 =?utf-8?B?Yk95aEVEMEJEQ0FrZVU0cms2U2dTRU4yQkM5TU1XcyticU1PQ3A1SDFxV0FK?=
 =?utf-8?B?bTFYajNHS1dHM1p0cTIzcHowa2xHZllMb00xS1BzNXBmdU82ZDNzRjFiVlJj?=
 =?utf-8?B?bDhwZ1p2WGZ5OEcxMTk2czQwQkQ3MXFxcm9Sa0pVUi9PaENGTGV1SzczOXNj?=
 =?utf-8?B?OHF3Q015MjVWb3BLS2RobExoNEduMVhoeWlwNzlCeHh6cVpIU01SQnlCWFRJ?=
 =?utf-8?B?dFlUbTV2S2g3ZVYwemFQQVNJRzdpV3Y3R0RPVXluUmN5ajJTSVhnamtSbFBF?=
 =?utf-8?B?VWZKQ1JOTUNFZWhDSWNMYnZYdXdmRFcrRkp2d0ZBSTdtWERNNVhlaThyRVdj?=
 =?utf-8?B?YXVHczNRdk16ZjZlZ3NieE5EZ1ZBdjd6QjBabEhublptYU5aM1J1bHcwWEpp?=
 =?utf-8?B?YVIrbDNYQWRUOWNFR0YrZHNGWHlXSmRrOHY2bFo0RGVCYmcweVNpMksvbitl?=
 =?utf-8?B?akRQNTZqc3Y2WkVKZGttdlpYeDJrcldmVUpyUHlUa1NMZ1hpUHA0eWJPYkxL?=
 =?utf-8?B?UGtQWW5UL1NHcmdZUThpT0Y3bEJyWjRuUE5zUHVjM081YmR5YnhuMFM4NkVI?=
 =?utf-8?B?amdpMFFEMHVVbkptaUVFR1pVSlZEeHU2TWwza1duRk9CdUtJMXBxV1VPQ05w?=
 =?utf-8?B?Z1AxR3QvZzI4eTU5V1VVOEpZR0V6WWpzcHNLV1JNZmdkQU1pZkJmU2VtQ20x?=
 =?utf-8?B?YVQ0K3pQM0R4OFB4c2Q3LzZuTEZ3SGoxWW1wNGFUUHgybGJvZmF0TDVzOThr?=
 =?utf-8?B?bUcyMnNadHpRVTh0NUlhbXZYRGVaYksrYVVQZGRVNzNqWnZpbEdQZ2VzaHRH?=
 =?utf-8?B?WDNoWnZoZmtZSjdJVi9EcWVDdnU5NlZQb0NwZ3lGUzZoUktJU1FQdDQ3cXVo?=
 =?utf-8?B?SkdYVkZ4TkFjNUlyZ1FkU1gxclB1d2N0bWdaUmV6bklURlFPN2xIbWhkUWdH?=
 =?utf-8?B?K2hEd2xNY2ZDMjhhRWkvZGNmRWRrTUNRYktJZG9ZU2dPZXp0bFRlaCtMdDVn?=
 =?utf-8?B?Z3JmSmFhcXVoOHdrMlNNQ2VQT0VaemdJUndRRmNrM093QWNwY1RZUVFuR1lI?=
 =?utf-8?B?MUsrSnB2WCtYYThRZ0dCcHZ4ei9SOCsxb3M3bFpPRG1Da2JEejhLUDhmUzBS?=
 =?utf-8?B?MzYvekx0VDhodGtnMi9RZFczQmxQSHVVbDZMVFQrNkVWM2FyNm0xKzBlRjVW?=
 =?utf-8?Q?X5z/Lp7V9sYKmARDlUW7+ViyKcID2yiY?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ekl5TmxESTh4amM1Q0RDZnNCWUY3RGN2cTFFeW9KMnFYTTFwNDc2VFMweWli?=
 =?utf-8?B?Vjk5M0xlV1JMNTZSdzVEZUs4a2tyM1V6V0ZqNlFzdTFXeVA0YUFwdGFGK0FY?=
 =?utf-8?B?SkpxaTRqTEpBQkxsQjNreDdFbXBvSk1zU1NxMVk3d01CNFRhMXJuc2l5dVpK?=
 =?utf-8?B?U3c2bHp4b1ZBUmJKNHhxN1MrQUZzSkhud0NSREJqWUZlTzRUQmhENlpvV0dW?=
 =?utf-8?B?VzhFMnI1OFlMdmdNRHU0ZGFxUUpTTFA4cVFqbFRqc1Q1VUsyZHRWcXh5M1li?=
 =?utf-8?B?bzBSS0g4NVZ1N2xxMy9tb2Q3QzdkVVZvRkRMeVRHS281NTZ5S1YwaGFEVDZY?=
 =?utf-8?B?aEFSeE9HS1MzT2hwSVdYOXJYbWV6Sy9tNUt6dldYNjl5QllUQWVyS09neTQ3?=
 =?utf-8?B?alBkZ3ZvQ05uRGxjQUhPQ2dteEJSSEJyWTNQTkJVT1F4U0NnYUp3bm1TQTZU?=
 =?utf-8?B?b05tN3BTdWw3RlhDT2tEcktqYVlSc3dkNDRlYkN6T0xIeWVBNDJ6OVJoNmZv?=
 =?utf-8?B?eUJrWWF1b3ljUlNZaWxJWDJvWUorWE1XQXhyK1VzVnpIdWNVY3E0d3hWZHFO?=
 =?utf-8?B?d0ZZSkZLZGZJZW1Wcit1RjFIa2Fua2d1eXN0U3JEUEM3YUNNY3RQSnRPWVVW?=
 =?utf-8?B?SHE1ZWZCVDRCaVFlNTMvQnRqKy9MNytSTlk1Mlh4NlNZOW45bHRkbW9qQ1VX?=
 =?utf-8?B?RVY0ZnJha3VSWUJ4c1JqTFpWODBXdUJHdlV6Z3pOdzBHQ2g0ejdlSWtvZHN4?=
 =?utf-8?B?VjNmYjVEOUFXZVUwbmRLNVMzUlZha0lsR1l1d09VOWVROHVRV3RSelNUeExj?=
 =?utf-8?B?VUZyTWgycUh0WGE5VGhycVBJaysrOHFybGFHVlFHakdIYmpGTkdkSGJmY1VK?=
 =?utf-8?B?TzZrNm9NQ0xOK2ZvMjgwSmhkTG9ib1VlVUNTMEFodnoyYmpnRXZ0WFNKYmhU?=
 =?utf-8?B?bXN5RDg4TjFkNUthd0J3K0pTVmZGUU8zQXBqYW4xU3R3Rm95ejAxcXpPMUpx?=
 =?utf-8?B?ZHhUM3JaQnRBT3VnYWt6MFRXdDdCNVRjUXptUGd6cS9CUHJVbWJvKzdoTUN6?=
 =?utf-8?B?dXdIejJBdmhFN29heUdTWmM2dXhSSC95TGkvUkR5dkkwSTRQMUhuMFNPMTEv?=
 =?utf-8?B?YllkSFY3bEpaKzlhd2JlZ29pc0NtMVV3Myt0YzlLYVZYbzc1OGFwRk9aaUZl?=
 =?utf-8?B?RjNyZHRUNzBtZ1BTY0tPcXljUHJDVzZNaGgxUUdaWGpZQVFRdVVQZzF1OUpp?=
 =?utf-8?B?NHo1MlZqN1lGZ05naDZjWXlYVEl1Z3dyNWs3SzY4STFla29ZVDJ3bTdIbzRz?=
 =?utf-8?B?dGRpZEVySkRFQXNvdEJDb3dHbEdVdFlWbUJNK1N5ZXRyZCtRcGlENzR1dXZV?=
 =?utf-8?B?dk0vUmlnRk5YZCtiMW9hSXlLV0o4a2VQMHZheCs5RUdHLzZ0cWhDWTZSVWxF?=
 =?utf-8?B?TlVVa29nSzA0WEplTC9LUzcrNGVxa2VHM1FBOWQ0ODI4VVE2eTBIVE5KRnl5?=
 =?utf-8?B?elhhSjZPRk5hVmR1cWxmbWlKdzY3TEYrRjlrN2hlR2xpcjV4UzJkQnJSOHBH?=
 =?utf-8?B?ZkJZWk9XekdWV2JaZ1VMV2xNeXNrMk9YUDBBVEEwbFBWeDdUTUlUYXV2b0Vm?=
 =?utf-8?B?NWFpU051TVBJR0tXVlh2aFFsL2FZOEZzdGlaamkwdUl1bm9JNzB1Q0hxcWNw?=
 =?utf-8?B?SzVoR29xZmNSR0pjYTBaUTRFUmFKYjNQTjdjU0pOZTFuVXkwN3Y3aEhRTnBn?=
 =?utf-8?B?Ty83a0VTK0Exd3hjR3JmcnpMQmZqd2ZJQkdud2ZkWkRMTFo2TUxxaEg2cExM?=
 =?utf-8?B?NllFWG5FOEtOY2hFdDgveDBtK05ReFZqOStaVFRheHJ2QnZObEU3SFZKZXJG?=
 =?utf-8?B?QzI4ak5XTGNacTlKT1V1bkhSRkVWbEhkYVF5amRGb0I0dVlUdnFXOHhqbVox?=
 =?utf-8?B?OEo0WmdjMUIxcm5JYW1BZTliQWpTWFJ3eWgrd1JGclZ2SVZZVnpudzUzQTV4?=
 =?utf-8?B?ajRoek9tZnoxSmxteEVNRzVWZkNVMmtWMTN4dTdBNjhNdUtJcFVNd2w0Z0x2?=
 =?utf-8?B?S1pGdlMwdVE0U3BQNEhVQWVVR09ka2Y5cUcwcnRjUDFZTzNkakMwR2ZubXow?=
 =?utf-8?B?WEsycE1jckUwRWdzZHdldmUyWkFCTzNCaytRZStaNWlRRm96aUJIeno4cFN3?=
 =?utf-8?B?OXc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 83659308-ba41-4d6d-7c9c-08de38cb67ca
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2025 15:39:00.5561
 (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: WK91mGF3QBvC9jgCqj+vtm2l1QKRoK/gmvO7vhQiPc2vnMdHCl6x7ka+HPhaPGg6L+bRKhvFnmY0KLmJ6ygPqy8v+MCRdCUb0P5McjbGiq0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR03MB7433

On 11/12/2025 10:31 am, Alejandro Vallejo wrote:
> Seeing how both you and Andrew seem onboard with dropping cross-vendor support

I found another cross-vendor dropping which you'll want to look into.

struct svm_vcpu contains three guest_sysenter_* MSRs.

In AMD CPUs, these MSRs only have 32 bits of storage, with the upper
halfs write-discard.  They are switched via VMLOAD/VMSAVE.

However, in the cross-vendor case, the upper halves are needed for 64bit
kernels setting up SYSENTER support.  Therefore, they're unconditionally
intercepted so we can avoid losing the upper half.

By dropping cross-vendor support, we can get rid of these fields, allow
the guest unconditional access, and simply the MSR intercept logic a little.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 15:54:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 15:54:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184307.1506783 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTizO-0004yb-Gk; Thu, 11 Dec 2025 15:53:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184307.1506783; Thu, 11 Dec 2025 15:53:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTizO-0004yU-DP; Thu, 11 Dec 2025 15:53:58 +0000
Received: by outflank-mailman (input) for mailman id 1184307;
 Thu, 11 Dec 2025 15:53:57 +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
 <SRS0=BerU=6R=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vTizN-0004yO-Mn
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 15:53:57 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 99623710-d6a9-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 16:53:56 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 16B5B4EEBC6E;
 Thu, 11 Dec 2025 16:53:55 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 99623710-d6a9-11f0-b15b-2bf370ae4941
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765468435;
	b=Rmxg0UOE7LDNSQ+OakoJd9aOn0bPQtNOD4WpxRgMHu3hEkJETn9FwZN2zaYTNyIlWNdA
	 KejWnRcHTXKe2OY9NElRklJljSB5rg9cyZ42Hh2R1lsDujEveX/cLkgy5BqREcChQAi9H
	 YNO33nJz5Zv9H/PcyDt651hl0LM0NDD0PJSzn2A0o8yFZpDvAcULl9LWBj3Fgx/UhttRS
	 6QmhlZHx1CXqBS9qKvKP3vV4Ju83LHDE+uJts4zFsH1jebaiCfjdc0o6j99FvXDEArtBp
	 xqUhpEqyYcQe1LYjNFgHjhzaGtYbqlq5xe2X8glJ5lAYP2Cn9IQ/pyC9uJJmMC3sXqHK9
	 o/HF9f4/3t1AaLxU8WGZNwGoHF3boEulvaDGXXY7UKxEWWyPZshtI9kwHmfCv3XFAddxC
	 rRuqrOLkzMmmiH71a3B8n3PgU6KFxjDt5zyKyrgC7WOZGcnEadU3FQ3QXXVMNyWM/DOcq
	 2521/Hszbm+tTEskw3LIygeEMoanmE0+zzGsUvBtLJzfCcYHWjRfElzHPk3pD7u46lv3M
	 wJopMlg31Ppy9jKs5wwfcIA3/uHxPJo4YcvLG7smB2RhGZNo31SJC5O3Ul300D16iXemz
	 zMe9CnW6wQnEJuFyLRtnzY6Whbycz1vq0d/ZZe/nfK6ghdsT4X82gH8BYm9xZf8=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765468435;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=edBA1z/pXzn+Zf6HmhT9Cd0ynY3hmVg0pQTsm5cTPDU=;
	b=vq5ZYyZnVsMrGdgCMEC72/TXeYjTBTj4Wcre3bJZAteqrHUgusel7dJEtXptfP3VIoLU
	 XYafCW4kj+hO/7o2zQ4ZDmODfprhcYQ/gGCGFaQlGPK0e1i81QprU6U8ivsokeypD80yX
	 kR2bZ2MBcpZ5QlFWYLxtSep4BXNGmdkj1v6XLXeJkmD2ODEPcsl6jWjFNH4x7cLgF2Ic9
	 pK05SuoqmUm7p/FkG5tu5rDgBKTH0cruw1q88BpA8dEwsbbpOJWUWqdWxxkuut2DioYyJ
	 bgZzr65Dh9IxqkDYoBmcNiGJACz5vQKHrmPODZhrWpgRpdhl3aABq3aqbwuD/7FrRWUzO
	 Gb5TSOrk7S+ap8CPIVrDTzLdNNAZEc/bbk2brl8++ppTpb9Fz/OgWN9krNZTyp+q9Fgi6
	 lvuJUR61fPpBNH3u6H5ITaixJgY9njBOr6eem1yYIl+wS4WMA326qeJdhVNoxAb1bF3QO
	 Q93VL4acXHOapF0sRNpqIJ5GogjNAB/qJuGj7IXZOFk8ldCW3Wr1dsKPAvAjLq/O4dBZa
	 I5kbYXYr63jgEPoBXrGyCRRTzFt5eyn1VgXAql7+64Fz5aOapEFGIJ+tzmGN+aegh4uYi
	 KqPUu9yyurAYIuQfgrT/wAgJRk2n/7nulcaB9k+yvKRfN6X1Tz1gyJTTNiU+i44=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765468435; bh=oU/w6HTpzx+EQXxcRLotoMULhpp17O+v8kCTC6xQbRs=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=smCjQA+qF/Jr01Lo8Ul4E7GkoZVmmMtpMcbEEYjLmJhtQ7aOVWy/3mYYyg0o4DcZn
	 jSel/rVyoxUrpbB6nkH3vhldPDIULMBt96e1Jun1dBmbY6ZotvvwSXltnOSZVg9haY
	 rEKpORnKF9Gb8nvEs/3yYx95FVqQ4bMbNPmdHFGI0hixM1jIl/NcYhORDpkYZhq4Jr
	 dtFd2hRjM7ACm7ySQiCTEJRDAAzZ6Tqvy62ZtiemFrRgPR1vPLQCUV4vxEVr99v3Ah
	 35CGE5cuW4vH9PiUxxqf+tKF02m9YsTNi2Tf6Bb88ertOE6n09DaUwsMnpiuCCQ1z+
	 i769F042tD1ig==
MIME-Version: 1.0
Date: Thu, 11 Dec 2025 16:53:55 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>, =?UTF-8?Q?Roger_Pau_Monn?=
 =?UTF-8?Q?=C3=A9?= <roger.pau@citrix.com>, Bertrand Marquis
 <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Anthony
 PERARD <anthony.perard@vates.tech>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: Current Eclair analysis
In-Reply-To: <67d26857-6b7a-4b5d-8bdb-c973885926a0@suse.com>
References: <7744f9e7-17da-4f48-837d-8fc087899af5@citrix.com>
 <c0d5cf8c-cb57-47a5-a989-f65677e565aa@suse.com>
 <dab08dfc1de25d7573c401ecad8a1f21@bugseng.com>
 <67d26857-6b7a-4b5d-8bdb-c973885926a0@suse.com>
Message-ID: <bbc741428e680a4b5b08442558f85941@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-12-11 11:50, Jan Beulich wrote:
> On 11.12.2025 11:08, Nicola Vetrini wrote:
>> On 2025-12-11 11:00, Jan Beulich wrote:
>>> On 10.12.2025 19:14, Andrew Cooper wrote:
>>>> The Eclair step is now the dominating aspect of wallclock time.  
>>>> While
>>>> the recent changes were a step in the right direction, we need some
>>>> adjustments.
>>> 
>>> One other question, related to the "dominating" aspect, but not to 
>>> any
>>> of the points raised so far. Can scan results possibly be recorded
>>> somehow, somewhere, such that upon re-scanning the same tree 
>>> (pre-push
>>> test followed by post-push test) the identical re-scan can be 
>>> avoided?
>>> And perhaps even incrementally - if only .c files change within a 
>>> (set
>>> of) commit(s), only re-scan those, rather than everything? Could be
>>> extended to .h files if dependencies were properly taken into 
>>> account.
>> 
>> We support incremental analysis, but it requires non-trivial changes 
>> to
>> the current Xen integration. If someone wants to invest time and/or
>> resources in it, I can support the effort, but it requires a fair deal
>> of rearrangements of scripting in order to avoid losing information
> 
> What about the initial part of the question, scanning the exact same 
> tree
> a 2nd time? Is that merely a special case of "incremental", and hence 
> would
> require the same amount of effort?
> 
> Jan

I originally misinterpreted your question, and in fact I had an internal 
discussion on this. What you are asking is not directly supported by 
eclair because ECLAIR acts based on compiler invocations triggered by 
the build system, so two different builds are entirely independent of 
each other, unless a correspondence between analyzed artifacts (analysis 
frames in ECLAIR jargon) is estabilished. Overall, in our opinion this 
is best done not internally by ECLAIR, but at a higher (or lower, 
depending on how you represent it) level, which is the build system 
level. The idea is basically as follows:

- set up ccache with a remote storage backend (one per machine where 
runners are hosted is probably the best approximation);
- let ccache be used transparently across multiple runs; it will trigger 
re-compilation only when the file is not already in its cache, and as a 
consequence trigger the analysis of that TU or program. Due to the 
dockerization of builds and how gitlab is set up this may require some 
fumbling with env vars to point to the right compilation cache, but 
should be doable without too much effort;
- For each run:
   - fetch the result from the base run (for some meaning of "base")
   - run an eclair incremental analysis using option +project. This runs 
the Xen build as usual, but using ccache (I think other projects such as 
Zephyr already do something similar in their CI);
   - load new results in the old database, substituting evidences related 
to the same TU (done with a specific eclair_report flag).

In essence this covers both usecases, but it requires a nontrivial 
amount of effort.

N.B. ECLAIR does not use ccache internally: its concept of incremental 
analysis is completely orthogonal to the one that ccache uses.


-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 15:57:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 15:57:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184319.1506794 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTj2g-0005Y4-Uy; Thu, 11 Dec 2025 15:57:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184319.1506794; Thu, 11 Dec 2025 15:57:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTj2g-0005Xx-Rc; Thu, 11 Dec 2025 15:57:22 +0000
Received: by outflank-mailman (input) for mailman id 1184319;
 Thu, 11 Dec 2025 15:57:21 +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
 <SRS0=QWGN=6R=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vTj2f-0005Xr-Oh
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 15:57:21 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 134eba78-d6aa-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 16:57:20 +0100 (CET)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-59577c4c7c1so217743e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 07:57:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 134eba78-d6aa-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765468640; x=1766073440; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=x7DxyWosZiBIBf/s9g2GEsaC4y+bKQLm7rfmOQBm8xI=;
        b=OwRQLvUdzob7bNin+KVG4dLfUg+TTeTSTSC8Gk4BC7DJrFtG2xiTqZUFCwUhrWMSZR
         P7d2246kp3pHPhVjxBenzKnGJHd7SZw+aneH1InIvtFp0VkdY5L2PymXc98UWBlRE3pu
         z5w23yyHRcf/37dDNfO+9bA4eJXomeln91EvamMODO9oduh6nEDPwu381BFmS6SbE2gz
         uNCYLTdgcgNzQI8MrFMThuXFBRVY3GmlpErlvZfsyR/a4jod7ATVIPlv23CGgLImLJlM
         A+fOGqIYnGGea5+AgIm8PWd1WbL7Fs+0JRywjACXkRq+xKPAC7cCBiDPKglmweCGPAFj
         9Jog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765468640; x=1766073440;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=x7DxyWosZiBIBf/s9g2GEsaC4y+bKQLm7rfmOQBm8xI=;
        b=FojHw4OC3TrBuZBns4944nD0ZDNdVhVYZAywzqt9nxC/5eR6C0fC1OVZhJ0HaYPkb3
         iyUXqeodMZdplBlo965ZonXQnPlwzxjxNvQ2d92D3Ye5aqd2Y6xTyXAtHuhDOCYEYyLX
         8RTGC1K4sNkUgOnBdHfrqcJuBcT3DqF0dzmvIDEen8W5K+CP/Y4jU/IirEiyUb5Yq7Xp
         6d4lGjvbXzQ+Exp6bMpSkZz85UHHgK9qJHVoSOmEG69ecOospjcbL/nxW+xcSe2WOqa+
         jqKzF8Vf5iiGbNxvN9vIsc3nCd7GYGnzpXGMY3Yq7PnMza4DVVEZNb3eRjDQSWFoYPvO
         G0lg==
X-Gm-Message-State: AOJu0YyR2QNMB+36y2N+qGJ2XrEv4t8aZPYFUT/QR5GZzAp1iN62TbGM
	Rd5Xbi3OseSeVzDmCsy0hS3Luk9ox0xYwJ/RHhRRn5D7iesJSf4KVzqag8Tg91PpciJbNDINuCK
	VLZYhhj75skuSUJV4PFibogBNPfouFBc=
X-Gm-Gg: AY/fxX7ffWJL2Z/cH+W9TCOD50Yo1r8s4DBbcGlqr8NF2Qk/N105iuY3CHKV4f6ULch
	nTFdAmWz0XBEfkTmkd9Ltb8vUyES0UOsUpCYhxefOuPJQuVExPX2+d2C78PiVAmSX1gW6P1C71+
	+VAaRbR670tF6csb+SKkcqEtJA7v9Ba0WRt3vuGgIYffdtuOKgP4tXzeyOlZ3NkITHzaM46XhiS
	20A1ZEjwGTYFjK3PyyUXK9qMhi4FjoHUAkFCjSnRaRSgM0uyp8tXmH8RHquUadDaUcwBkk=
X-Google-Smtp-Source: AGHT+IGbenj4InEqAbwtQZJUZ36sF5v0IlFWi9n96PncoN1i0BK28YWfSULcrjumRSuYs/TELgTYeq86xZ6l1Axb7Qc=
X-Received: by 2002:a2e:be0f:0:b0:37f:9fdb:9228 with SMTP id
 38308e7fff4ca-37fbfc033e7mr7602001fa.0.1765468639648; Thu, 11 Dec 2025
 07:57:19 -0800 (PST)
MIME-Version: 1.0
References: <CAGeoDV_YS8hV2+FXVgXxvHLw=MQOAoJZwrP1Ypw8+ZUjKB9GSA@mail.gmail.com>
 <a5361a51-128d-47e0-b5ed-58bfd0d9e8ad@suse.com> <CAGeoDV-vfiKECmvWzJ4dnzicXDL7XJDxwEy_Z737k+234Gkzpg@mail.gmail.com>
 <CAGeoDV8VZ1m6CQAkKK-9UDz4npXm2V+Up+BBo=+NyzgLJMW+3g@mail.gmail.com> <b4013cae-f27a-4c69-b136-d33db2d22725@suse.com>
In-Reply-To: <b4013cae-f27a-4c69-b136-d33db2d22725@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 11 Dec 2025 17:57:08 +0200
X-Gm-Features: AQt7F2pkdbqgpdcq1U54EXa16vswX2QYrzxM-kIhOKZnW6H2u8kdzEkWzqBlJFg
Message-ID: <CAGeoDV91W24tu6MOuM6a9B1jDjJ_8oNdsMYaxNA-ehbxn3xLoA@mail.gmail.com>
Subject: Re: Strange symbols_lookup() behaviour in test-symbols on arm64 CI
To: Jan Beulich <jbeulich@suse.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Dec 11, 2025 at 5:31=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 11.12.2025 13:06, Mykola Kvach wrote:
> > On Thu, Dec 11, 2025 at 1:44=E2=80=AFPM Mykola Kvach <xakep.amatop@gmai=
l.com> wrote:
> >> I tested the issue with the provided patch, and it is still reproducib=
le.
> >
> > I also triggered a pipeline with the patch you provided on top of my
> > changes [1],
> > and it failed there as well. In fact, it exposed additional problems
> > in other jobs.
> >
> > [1] https://gitlab.com/xen-project/people/mykola_kvach/xen/-/pipelines/=
2209153728
>
> These are the failures we're trying to hunt down.
>
> Looking at one of the Arm build logs, I can't see any indication that you=
 actually
> extended the patch to Arm's linking rule. Hence my conclusion in the othe=
r reply
> may be wrong - we simply still don't know what the situation is there.

You're right, I missed the necessary changes. Would this diff be sufficient=
?

diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 4a549a1ac0..8283f13aee 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -100,6 +100,7 @@ $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
                | $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
                > $(dot-target).2.S
        $(MAKE) $(build)=3D$(@D) $(dot-target).2.o
+       $(call compare-symbol-tables,$(dot-target).1.o,$(dot-target).2.o)
        $(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
            $(dot-target).2.o -o $@
        $(NM) -pa --format=3Dsysv $@ \


>
> Jan

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 15:59:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 15:59:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184325.1506803 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTj4l-0006Hw-8x; Thu, 11 Dec 2025 15:59:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184325.1506803; Thu, 11 Dec 2025 15:59:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTj4l-0006Hp-67; Thu, 11 Dec 2025 15:59:31 +0000
Received: by outflank-mailman (input) for mailman id 1184325;
 Thu, 11 Dec 2025 15:59:30 +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 <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTj4k-0006Hj-1O
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 15:59:30 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5f8b99e6-d6aa-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 16:59:28 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-477563e28a3so2179825e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 07:59:28 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a89d1e539sm16828955e9.0.2025.12.11.07.59.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 07:59:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5f8b99e6-d6aa-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765468768; x=1766073568; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rIM5pIC6+d2m2A5CyYzzyyTfrPXkEz89T6gtzuPITn8=;
        b=FFFkji26/If8xp+pXSC3yaPM9fgWx7/8kZ0LrP2afptPSK6K0yCs3zOjx7lrQikRne
         YmgekLCpp+1KkMKGMelAePV23v1NTFjjLSnTsp09LTNRQTffAlJa2MPjtDzQ3barxU8s
         jyIGuE8NbiwFtnIpgytwRa1b02bSu+YPkD9XAFqXiFTYBjEWevYXmkJZnYMcdp8KjtTP
         iXfNrcrHKflvrHc1YwRgC91DfS41h12XSo2jyUdIsF7F0DMeQFgPlJn8vvTTnlBBcck1
         wMllDlDecDt3z/0aTJHeW7bU+Mw/3oCBWwFHBeWwOL7CPveCuAqvHGQR3M7JIIrmYKwJ
         stXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765468768; x=1766073568;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rIM5pIC6+d2m2A5CyYzzyyTfrPXkEz89T6gtzuPITn8=;
        b=B7pFaKs/X2VVtULiFJLthKCGqqzHjMFOVjQ/vr8hTOZF0rztahnKV6aYbb0oC5R0V+
         6Kz7x5k9bGTWXCEzsPu16X7ySi/IGdWyOj4f9KMTxV5DvyHLyX4IRS7kacQ9GBQuEmFG
         54qT5sdt7wzhnFtHQbzOEORR/LW9pi8e+ibXZxToh5AqyMV7Vod+DBrTXORzKOFNBdD5
         fZBVy2dwOjxpy/mH2ICguXuAypsjaS0gbOFaO2VwDiPNwL58MiQi/adCSBTJjq7FtPtr
         q6OtXr6t9ZqAcqdNwc8/ekGTaXq1kTdj+A61C/f7c6FABJoUFHoZQ9D8kwB3hY9l2Zfp
         F4FQ==
X-Gm-Message-State: AOJu0Yw1NhcE9xUkWN+Ey6Jd0zPAyYCWck1t1sla/I90DQExApZ6WRMV
	iO4tgzWCRcTt5RkhOybNH0MKAcQKRxQTEwpgzPSjgrgEYxqdSxeOQE4KuKAhE4x1Eg==
X-Gm-Gg: AY/fxX4DhX7dQGKv7PhI6DISZjwJd0A8pqW/vyPi6V6wrkQYee3cHL+0ePzyJx1+mrx
	ykXCHGK4cTr7MEmmW/vqDi+C9kpcRvfeh8GfXg0xpzWWjizT8yZD45wqm88lz4Ybf8agQg/QHnJ
	+dduILxy5T5Q86XjNQLQU39Nyp3TxbbV9jxRildRQBZg/5O30l0S3XpUC7BDmRsNtB3MnFwtY8u
	vEg/rQEzmWEP39GTl09chnORY7+YqCC6nMGn3/E5qwOCMDmEMcC3gmFjp2hzXVhrFWs4t4Cxb8a
	A+bWgKsc4o9/YfWY777yJQKy/+cfRtE11jMC0s+2LzOW9C0lZ82WiXbuxrXsuacBQGaZqYqjXjl
	n477KbRx6m1IJyaAH8OSJdQU2ufUjGXiOeWbjBSEnYs1dEKiMXTClKBmlFsLwozHIeoSiX7iqpW
	qssxIzqUriaFPVI9uIqbvLzqcqe33obIJ7KNpzdn/LTE5JOHpTS2dB3VLroahntMa3sohp0PF0K
	SlBpc+Up/CMYw==
X-Google-Smtp-Source: AGHT+IGYDc0yNcU8555hDX6YydiVjHtHugd2qYJjgsWDW1LgL8iAs2bX9gDXzb6lvGA2cR5JUvJKuw==
X-Received: by 2002:a05:600c:3485:b0:479:2a78:4a2e with SMTP id 5b1f17b1804b1-47a89f9219cmr26910935e9.7.1765468767954;
        Thu, 11 Dec 2025 07:59:27 -0800 (PST)
Message-ID: <10aaed6d-6cb1-4bed-aa8c-5f9761f04fde@suse.com>
Date: Thu, 11 Dec 2025 16:59:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Strange symbols_lookup() behaviour in test-symbols on arm64 CI
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <CAGeoDV_YS8hV2+FXVgXxvHLw=MQOAoJZwrP1Ypw8+ZUjKB9GSA@mail.gmail.com>
 <a5361a51-128d-47e0-b5ed-58bfd0d9e8ad@suse.com>
 <CAGeoDV-vfiKECmvWzJ4dnzicXDL7XJDxwEy_Z737k+234Gkzpg@mail.gmail.com>
 <CAGeoDV8VZ1m6CQAkKK-9UDz4npXm2V+Up+BBo=+NyzgLJMW+3g@mail.gmail.com>
 <b4013cae-f27a-4c69-b136-d33db2d22725@suse.com>
 <CAGeoDV91W24tu6MOuM6a9B1jDjJ_8oNdsMYaxNA-ehbxn3xLoA@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAGeoDV91W24tu6MOuM6a9B1jDjJ_8oNdsMYaxNA-ehbxn3xLoA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.12.2025 16:57, Mykola Kvach wrote:
> On Thu, Dec 11, 2025 at 5:31 PM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 11.12.2025 13:06, Mykola Kvach wrote:
>>> On Thu, Dec 11, 2025 at 1:44 PM Mykola Kvach <xakep.amatop@gmail.com> wrote:
>>>> I tested the issue with the provided patch, and it is still reproducible.
>>>
>>> I also triggered a pipeline with the patch you provided on top of my
>>> changes [1],
>>> and it failed there as well. In fact, it exposed additional problems
>>> in other jobs.
>>>
>>> [1] https://gitlab.com/xen-project/people/mykola_kvach/xen/-/pipelines/2209153728
>>
>> These are the failures we're trying to hunt down.
>>
>> Looking at one of the Arm build logs, I can't see any indication that you actually
>> extended the patch to Arm's linking rule. Hence my conclusion in the other reply
>> may be wrong - we simply still don't know what the situation is there.
> 
> You're right, I missed the necessary changes. Would this diff be sufficient?

Yes, this looks to be what is needed.

Jan

> --- a/xen/arch/arm/Makefile
> +++ b/xen/arch/arm/Makefile
> @@ -100,6 +100,7 @@ $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
>                 | $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>                 > $(dot-target).2.S
>         $(MAKE) $(build)=$(@D) $(dot-target).2.o
> +       $(call compare-symbol-tables,$(dot-target).1.o,$(dot-target).2.o)
>         $(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
>             $(dot-target).2.o -o $@
>         $(NM) -pa --format=sysv $@ \
> 
> 
>>
>> Jan
> 
> Best regards,
> Mykola



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 16:06:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 16:06:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184339.1506814 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTjBG-0008NT-V5; Thu, 11 Dec 2025 16:06:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184339.1506814; Thu, 11 Dec 2025 16:06:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTjBG-0008NM-RP; Thu, 11 Dec 2025 16:06:14 +0000
Received: by outflank-mailman (input) for mailman id 1184339;
 Thu, 11 Dec 2025 16:06:13 +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
 <SRS0=QWGN=6R=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vTjBF-0008NF-0b
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 16:06:13 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4ee626e3-d6ab-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 17:06:10 +0100 (CET)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-37ce27af365so2618501fa.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 08:06:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4ee626e3-d6ab-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765469169; x=1766073969; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=Iw6Q0WtKGN+v4sotq/Wa9bg3qt5VJBTZHaZo2s/DpCo=;
        b=SpGi5c7E9pHVmr50q2RhRqf/6FJQggb0QKOTXbDS65c2oaSGKrdoU6z7zA+MXq8TXu
         70vHgu2LF5W0qh0cJqLUWw5KN2U6b25Xll0uOqDwTRu7xMIG+kZ+/5BB4LBv9ZvH5o+r
         ybjp0AuBRNsRFnKlUogaztNvW/Bo8JCCOLtWyO35bKI2MrRal6WOKwtiIGVp06AzyoiH
         SX1RL5T1sLVgBy0WoYTrwagwmNHjLXlBdYtqb5YNvhnbot1/qk5CymZm4WRDf5C8YFmg
         oneXGk0hT68UjzASo+FQqnLLAhQsWaDlurLx4Xlhn/8d4ErxGK/6HHXNF+Mw8hWcI/WV
         rnDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765469169; x=1766073969;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Iw6Q0WtKGN+v4sotq/Wa9bg3qt5VJBTZHaZo2s/DpCo=;
        b=NJg86lyNjgW/kD5nNMS68kzfh42oumKeghuGiqLCtc6rPtoCVB0SRp7AyhMw1VaFML
         sW6/V5U6Iw5SlOAaCAHyo17i7qlSW4+FWBUg2gydoTAagPtWS3eB4r0D2CcCDP8oodaf
         j3FmX3LKRh1kuMVcjUBaS1621uBHhPNCzxzE/FoUdI6OFxa5bUVhjMo7m8JNbWKb0AiF
         JtrvY6bzeeK4npHcSEiJs65xh/7RKem370+ChSGSPavxb1bk5H/C2VGD5J1IhXjV/p35
         g5AWs4WPOiX13DYlOc3kwaFn9/YLeNOZWO7s8FQlfT69hI9iW9wDCIKHELNARbOX8T7W
         H7ZA==
X-Gm-Message-State: AOJu0YwRXwTfxDRgZoAcwOl3yrHSbQIf8jfe2nMr1PxLPnSR7dupe0P0
	kJMe6lXzzjfsmQENdLIH9Whw+65M7/HPIYjVKZuZoRCxX04S14ErlfJMzZwAa6OwH0cFeEnHKgV
	QttRLYT0x8B2vnxeefufLY1V4csDJNNPNfPrqJso=
X-Gm-Gg: AY/fxX4XLEFY6Vg8benTe3NX3qOrFbBVrBtMbYzZmgeeuMBjY7W3+ZayX8zHxNkPPWB
	M8eAmFNBELaTPFf4hbVqrxJ5AaERBkYf4zIx3tOQmDk3zn3GOgukRCltsP/zyT1/UqKFAC8dx8r
	jBKAqTAdJ/L6lnuEl4x05nlRc5q9XhA1eQmYeufFTChDGGluTpOyCpPY8lkoTthus+i8uSiZ0KO
	M0mhQwsGmqNb8UmLKTJtNIBlYqoVRHAULtfSqQbKdA/rG2KWE00q67KU49l87wvrI6uxyo=
X-Google-Smtp-Source: AGHT+IGIcsO5/h043hViqLO9GzYt6zedoLnR7mhFsmtH4zMYTkU7hPVNF9PEnjbl5jLQQz6yeQL+zO8VNOQHy76lsS4=
X-Received: by 2002:a2e:bc20:0:b0:37a:8acb:a052 with SMTP id
 38308e7fff4ca-37fb2078d7dmr20016071fa.10.1765469169295; Thu, 11 Dec 2025
 08:06:09 -0800 (PST)
MIME-Version: 1.0
References: <CAGeoDV_YS8hV2+FXVgXxvHLw=MQOAoJZwrP1Ypw8+ZUjKB9GSA@mail.gmail.com>
 <a5361a51-128d-47e0-b5ed-58bfd0d9e8ad@suse.com> <CAGeoDV-vfiKECmvWzJ4dnzicXDL7XJDxwEy_Z737k+234Gkzpg@mail.gmail.com>
 <CAGeoDV8VZ1m6CQAkKK-9UDz4npXm2V+Up+BBo=+NyzgLJMW+3g@mail.gmail.com>
 <b4013cae-f27a-4c69-b136-d33db2d22725@suse.com> <CAGeoDV91W24tu6MOuM6a9B1jDjJ_8oNdsMYaxNA-ehbxn3xLoA@mail.gmail.com>
 <10aaed6d-6cb1-4bed-aa8c-5f9761f04fde@suse.com>
In-Reply-To: <10aaed6d-6cb1-4bed-aa8c-5f9761f04fde@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 11 Dec 2025 18:05:57 +0200
X-Gm-Features: AQt7F2pvOG2XUuWqudx8wK9ykn141dSgwjxIcpqSP6R5cXK4lmvaN8igMm1w1FU
Message-ID: <CAGeoDV_bTFNMS_XbEyfB0xNmpi=Yhr5VzszDBPTS5yYtjo1hnQ@mail.gmail.com>
Subject: Re: Strange symbols_lookup() behaviour in test-symbols on arm64 CI
To: Jan Beulich <jbeulich@suse.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: multipart/mixed; boundary="000000000000b2c9980645af5202"

--000000000000b2c9980645af5202
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Dec 11, 2025 at 5:59=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 11.12.2025 16:57, Mykola Kvach wrote:
> > On Thu, Dec 11, 2025 at 5:31=E2=80=AFPM Jan Beulich <jbeulich@suse.com>=
 wrote:
> >>
> >> On 11.12.2025 13:06, Mykola Kvach wrote:
> >>> On Thu, Dec 11, 2025 at 1:44=E2=80=AFPM Mykola Kvach <xakep.amatop@gm=
ail.com> wrote:
> >>>> I tested the issue with the provided patch, and it is still reproduc=
ible.
> >>>
> >>> I also triggered a pipeline with the patch you provided on top of my
> >>> changes [1],
> >>> and it failed there as well. In fact, it exposed additional problems
> >>> in other jobs.
> >>>
> >>> [1] https://gitlab.com/xen-project/people/mykola_kvach/xen/-/pipeline=
s/2209153728
> >>
> >> These are the failures we're trying to hunt down.
> >>
> >> Looking at one of the Arm build logs, I can't see any indication that =
you actually
> >> extended the patch to Arm's linking rule. Hence my conclusion in the o=
ther reply
> >> may be wrong - we simply still don't know what the situation is there.
> >
> > You're right, I missed the necessary changes. Would this diff be suffic=
ient?
>
> Yes, this looks to be what is needed.

Unfortunately, with this diff applied the issue is still reproducible
on my side.
Please see the attached logs for details.


Mykola

>
> Jan
>
> > --- a/xen/arch/arm/Makefile
> > +++ b/xen/arch/arm/Makefile
> > @@ -100,6 +100,7 @@ $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
> >                 | $(objtree)/tools/symbols $(all_symbols) --sysv --sort=
 \
> >                 > $(dot-target).2.S
> >         $(MAKE) $(build)=3D$(@D) $(dot-target).2.o
> > +       $(call compare-symbol-tables,$(dot-target).1.o,$(dot-target).2.=
o)
> >         $(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
> >             $(dot-target).2.o -o $@
> >         $(NM) -pa --format=3Dsysv $@ \
> >
> >
> >>
> >> Jan
> >
> > Best regards,
> > Mykola
>

--000000000000b2c9980645af5202
Content-Type: text/x-log; charset="US-ASCII"; name="boot.log"
Content-Disposition: attachment; filename="boot.log"
Content-Transfer-Encoding: base64
Content-ID: <f_mj1mmzle1>
X-Attachment-Id: f_mj1mmzle1

WGVuIDQuMjItdW5zdGFibGUKKFhFTikgWyAgICAwLjAwOTY4MV0gWGVuIHZlcnNpb24gNC4yMi11
bnN0YWJsZSAocm9vdEApIChnY2MgKEFscGluZSAxMi4yLjFfZ2l0MjAyMjA5MjQtcjEwKSAxMi4y
LjEgMjAyMjA5MjQpIGRlYnVnPXkgVGh1IERlYyAxMSAxNTo1NToyOCBVVEMgMjAyNQooWEVOKSBb
ICAgIDAuMDEwNzgzXSBMYXRlc3QgQ2hhbmdlU2V0OiBUaHUgRGVjIDExIDE3OjU0OjI4IDIwMjUg
KzAyMDAgZ2l0OjhkMDc1ZmQ2NmYKKFhFTikgWyAgICAwLjAxMTQyOV0gYnVpbGQtaWQ6IGJkNTU5
OTMzNzI3NDAwM2I1ODMyMjZkZTVjN2FlNjc2MWNiNTE0NTcKKFhFTikgWyAgICAwLjAxMTk3Nl0g
Q29uc29sZSBvdXRwdXQgaXMgc3luY2hyb25vdXMuCihYRU4pIFsgICAgMC4wMTIzNzRdIFByb2Nl
c3NvcjogMDAwMDAwMDA0MTJmZDA1MDogIkFSTSBMaW1pdGVkIiwgdmFyaWFudDogMHgyLCBwYXJ0
IDB4ZDA1LHJldiAweDAKKFhFTikgWyAgICAwLjAxMzExNl0gNjQtYml0IEV4ZWN1dGlvbjoKKFhF
TikgWyAgICAwLjAxMzQxNl0gICBQcm9jZXNzb3IgRmVhdHVyZXM6IDAwMDAwMDAwMTExMTIyMjIg
MDAwMDAwMDAwMDAwMDAxMAooWEVOKSBbICAgIDAuMDE0MDAxXSAgICAgRXhjZXB0aW9uIExldmVs
czogRUwzOjY0KzMyIEVMMjo2NCszMiBFTDE6NjQrMzIgRUwwOjY0KzMyCihYRU4pIFsgICAgMC4w
MTQ2MzFdICAgICBFeHRlbnNpb25zOiBGbG9hdGluZ1BvaW50IEFkdmFuY2VkU0lNRCBHSUN2My1T
eXNSZWcKKFhFTikgWyAgICAwLjAxNTIxNl0gICBEZWJ1ZyBGZWF0dXJlczogMDAwMDAwMDAxMDMw
NTQwOCAwMDAwMDAwMDAwMDAwMDAwCihYRU4pIFsgICAgMC4wMTU3NzFdICAgQXV4aWxpYXJ5IEZl
YXR1cmVzOiAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAKKFhFTikgWyAgICAwLjAx
NjM1Nl0gICBNZW1vcnkgTW9kZWwgRmVhdHVyZXM6IDAwMDAwMDAwMDAxMDExMjIgMDAwMDAwMDAx
MDIxMjEyMgooWEVOKSBbICAgIDAuMDE2OTY0XSAgIElTQSBGZWF0dXJlczogIDAwMDAxMDAwMTAy
MTExMjAgMDAwMDAwMDAwMDEwMDAwMQooWEVOKSBbICAgIDAuMDE3NTExXSAzMi1iaXQgRXhlY3V0
aW9uOgooWEVOKSBbICAgIDAuMDE3ODExXSAgIFByb2Nlc3NvciBGZWF0dXJlczogMDAwMDAwMDAx
MDAwMDEzMTowMDAwMDAwMDEwMDExMDExCihYRU4pIFsgICAgMC4wMTgzOTZdICAgICBJbnN0cnVj
dGlvbiBTZXRzOiBBQXJjaDMyIEEzMiBUaHVtYiBUaHVtYi0yIEphemVsbGUKKFhFTikgWyAgICAw
LjAxODk4MV0gICAgIEV4dGVuc2lvbnM6IEdlbmVyaWNUaW1lciBTZWN1cml0eQooWEVOKSBbICAg
IDAuMDE5NDMxXSAgIERlYnVnIEZlYXR1cmVzOiAwMDAwMDAwMDA0MDEwMDg4CihYRU4pIFsgICAg
MC4wMTk4NTldICAgQXV4aWxpYXJ5IEZlYXR1cmVzOiAwMDAwMDAwMDAwMDAwMDAwCihYRU4pIFsg
ICAgMC4wMjAzMTZdICAgTWVtb3J5IE1vZGVsIEZlYXR1cmVzOiAwMDAwMDAwMDEwMjAxMTA1IDAw
MDAwMDAwNDAwMDAwMDAKKFhFTikgWyAgICAwLjAyMDkyNF0gICAgICAgICAgICAgICAgICAgICAg
ICAgIDAwMDAwMDAwMDEyNjAwMDAgMDAwMDAwMDAwMjEyMjIxMQooWEVOKSBbICAgIDAuMDIxNTMx
XSAgIElTQSBGZWF0dXJlczogMDAwMDAwMDAwMjEwMTExMCAwMDAwMDAwMDEzMTEyMTExIDAwMDAw
MDAwMjEyMzIwNDIKKFhFTikgWyAgICAwLjAyMjE5OV0gICAgICAgICAgICAgICAgIDAwMDAwMDAw
MDExMTIxMzEgMDAwMDAwMDAwMDAxMTE0MiAwMDAwMDAwMDAxMDExMTIxCihYRU4pIFsgICAgMC4w
MjI4NzFdIFVzaW5nIFNNQyBDYWxsaW5nIENvbnZlbnRpb24gdjEuNQooWEVOKSBbICAgIDAuMDIz
MjkxXSBVc2luZyBQU0NJIHYxLjEKKFhFTikgWyAgICAwLjAyMzU3Nl0gU01QOiBBbGxvd2luZyAy
IENQVXMKKFhFTikgWyAgICAwLjAyMzg5OV0gZW5hYmxlZCB3b3JrYXJvdW5kIGZvcjogQVJNIGVy
cmF0dW0gMTUzMDkyMwooWEVOKSBbICAgIDAuMDI0NDEzXSBHZW5lcmljIFRpbWVyIElSUTogcGh5
cz0zMCBoeXA9MjYgdmlydD0yNyBGcmVxOiAyNDAwMCBLSHoKKFhFTikgWyAgICAwLjAyNTE0N10g
R0lDdjMgaW5pdGlhbGl6YXRpb246CihYRU4pIFsgICAgMC4wMjU0NzddICAgICAgIGdpY19kaXN0
X2FkZHI9MHgwMDAwMDBmZTYwMDAwMAooWEVOKSBbICAgIDAuMDI1OTIwXSAgICAgICBnaWNfbWFp
bnRlbmFuY2VfaXJxPTI1CihYRU4pIFsgICAgMC4wMjYzMDNdICAgICAgIGdpY19yZGlzdF9zdHJp
ZGU9MAooWEVOKSBbICAgIDAuMDI2NjU1XSAgICAgICBnaWNfcmRpc3RfcmVnaW9ucz0xCihYRU4p
IFsgICAgMC4wMjcwMTVdICAgICAgIHJlZGlzdHJpYnV0b3IgcmVnaW9uczoKKFhFTikgWyAgICAw
LjAyNzM5N10gICAgICAgICAtIHJlZ2lvbiAwOiAweDAwMDAwMGZlNjgwMDAwIC0gMHgwMDAwMDBm
ZTc4MDAwMAooWEVOKSBbICAgIDAuMDI3OTgyXSBHSUN2MzogNTEyIGxpbmVzLCAoSUlEIDAyMDE3
NDNiKS4KKFhFTikgWyAgICAwLjAyODQzMl0gR0lDdjM6IENQVTA6IEZvdW5kIHJlZGlzdHJpYnV0
b3IgaW4gcmVnaW9uIDAgQDAwMDAwYTAwNDAwMWMwMDAKKFhFTikgWyAgICAwLjAyOTA3MF0gWFNN
IEZyYW1ld29yayB2MS4wLjEgaW5pdGlhbGl6ZWQKKFhFTikgWyAgICAwLjAyOTQ4Ml0geHNtOiBQ
b2xpY3kgbGVuID0gMHgwMDAwMDAwMDAwMDEwMDAwIHN0YXJ0IGF0IDB4MDAwMDAwMDAwNjAwMDAw
MAooWEVOKSBbICAgIDAuMDMwODAxXSBVc2luZyBzY2hlZHVsZXI6IFNNUCBDcmVkaXQgU2NoZWR1
bGVyIHJldjIgKGNyZWRpdDIpCihYRU4pIFsgICAgMC4wMzEzNjJdIEluaXRpYWxpemluZyBDcmVk
aXQyIHNjaGVkdWxlcgooWEVOKSBbICAgIDAuMDMxNzYwXSAgbG9hZF9wcmVjaXNpb25fc2hpZnQ6
IDE4CihYRU4pIFsgICAgMC4wMzIxMjBdICBsb2FkX3dpbmRvd19zaGlmdDogMzAKKFhFTikgWyAg
ICAwLjAzMjQ1OF0gIHVuZGVybG9hZF9iYWxhbmNlX3RvbGVyYW5jZTogMAooWEVOKSBbICAgIDAu
MDMyODYzXSAgb3ZlcmxvYWRfYmFsYW5jZV90b2xlcmFuY2U6IC0zCihYRU4pIFsgICAgMC4wMzMy
NjhdICBydW5xdWV1ZXMgYXJyYW5nZW1lbnQ6IHNvY2tldAooWEVOKSBbICAgIDAuMDMzNjY1XSAg
Y2FwIGVuZm9yY2VtZW50IGdyYW51bGFyaXR5OiAxMG1zCihYRU4pIFsgICAgMC4wMzQwOTJdIGxv
YWQgdHJhY2tpbmcgd2luZG93IGxlbmd0aCAxMDczNzQxODI0IG5zCihYRU4pIFsgICAgMC4wMzQ3
MDNdIEFsbG9jYXRlZCBjb25zb2xlIHJpbmcgb2YgMTYgS2lCLgooWEVOKSBbICAgIDAuMDM1MTI0
XSBDUFUwOiBHdWVzdCBhdG9taWNzIHdpbGwgdHJ5IDQgdGltZXMgYmVmb3JlIHBhdXNpbmcgdGhl
IGRvbWFpbgooWEVOKSBbICAgIDAuMDM1ODEzXSBCcmluZ2luZyB1cCBDUFUxCihYRU4pIFsgICAg
MC4wMzYyMDJdIEdJQ3YzOiBDUFUxOiBGb3VuZCByZWRpc3RyaWJ1dG9yIGluIHJlZ2lvbiAwIEAw
MDAwMGEwMDQwMDNjMDAwCihYRU4pIFsgICAgMC4wMzY4MzhdIENQVTE6IEd1ZXN0IGF0b21pY3Mg
d2lsbCB0cnkgNyB0aW1lcyBiZWZvcmUgcGF1c2luZyB0aGUgZG9tYWluCihYRU4pIFsgICAgMC4w
Mzc0NzZdIEJyb3VnaHQgdXAgMiBDUFVzCihYRU4pIFsgICAgMC4wMzc3NzZdIENQVSAxIGJvb3Rl
ZC4KKFhFTikgWyAgICAwLjAzODE1MF0gSS9PIHZpcnR1YWxpc2F0aW9uIGRpc2FibGVkCihYRU4p
IFsgICAgMC4wMzg1MjRdIFAyTTogNDAtYml0IElQQSB3aXRoIDQwLWJpdCBQQSBhbmQgMTYtYml0
IFZNSUQKKFhFTikgWyAgICAwLjAzOTA0MV0gUDJNOiAzIGxldmVscyB3aXRoIG9yZGVyLTEgcm9v
dCwgVlRDUiAweDAwMDAwMDAwODAwYTM1NTgKKFhFTikgWyAgICAwLjAzOTY4M10gU2NoZWR1bGlu
ZyBncmFudWxhcml0eTogY3B1LCAxIENQVSBwZXIgc2NoZWQtcmVzb3VyY2UKKFhFTikgWyAgICAw
LjA0MDI1NF0gSW5pdGlhbGl6aW5nIENyZWRpdDIgc2NoZWR1bGVyCihYRU4pIFsgICAgMC4wNDA2
NTJdICBsb2FkX3ByZWNpc2lvbl9zaGlmdDogMTgKKFhFTikgWyAgICAwLjA0MTAxMl0gIGxvYWRf
d2luZG93X3NoaWZ0OiAzMAooWEVOKSBbICAgIDAuMDQxMzQ5XSAgdW5kZXJsb2FkX2JhbGFuY2Vf
dG9sZXJhbmNlOiAwCihYRU4pIFsgICAgMC4wNDE3NTRdICBvdmVybG9hZF9iYWxhbmNlX3RvbGVy
YW5jZTogLTMKKFhFTikgWyAgICAwLjA0MjE1OV0gIHJ1bnF1ZXVlcyBhcnJhbmdlbWVudDogc29j
a2V0CihYRU4pIFsgICAgMC4wNDI1NTddICBjYXAgZW5mb3JjZW1lbnQgZ3JhbnVsYXJpdHk6IDEw
bXMKKFhFTikgWyAgICAwLjA0Mjk4NF0gbG9hZCB0cmFja2luZyB3aW5kb3cgbGVuZ3RoIDEwNzM3
NDE4MjQgbnMKKFhFTikgWyAgICAwLjA0MzQ2N10gQWRkaW5nIGNwdSAwIHRvIHJ1bnF1ZXVlIDAK
KFhFTikgWyAgICAwLjA0MzgzNF0gIEZpcnN0IGNwdSBvbiBydW5xdWV1ZSwgYWN0aXZhdGluZwoo
WEVOKSBbICAgIDAuMDQ0MjY4XSBBZGRpbmcgY3B1IDEgdG8gcnVucXVldWUgMAooWEVOKSBbICAg
IDAuMDQ0NjQ0XSBVc2luZyBTQ01JIHdpdGggU01DIElEOiAweDgyMDAwMDEwCihYRU4pIFsgICAg
MC4wNDU0NTVdIGFsdGVybmF0aXZlczogUGF0Y2hpbmcgd2l0aCBhbHQgdGFibGUgMDAwMDBhMDAw
MDJlZWFkMCAtPiAwMDAwMGEwMDAwMmYwMDAwCihYRU4pIFsgICAgMC4wNDY1MTldIFNDTUk6IGQw
IGluaXQKKFhFTikgWyAgICAwLjA0NjkxMV0gKioqIExPQURJTkcgRE9NQUlOIDAgKioqCihYRU4p
IFsgICAgMC4wNDcyNjRdIExvYWRpbmcgZDAga2VybmVsIGZyb20gYm9vdCBtb2R1bGUgQCAwMDAw
MDAwMDAyMDAwMDAwCihYRU4pIFsgICAgMC4wNDc4MzNdIExvYWRpbmcgcmFtZGlzayBmcm9tIGJv
b3QgbW9kdWxlIEAgMDAwMDAwMDBlMjBmMjAwMAooWEVOKSBbICAgIDAuMDQ4Mzk1XSBHcmFudCB0
YWJsZSByYW5nZTogMHgwMDAwMDA0OTAwMDAwMC0weDAwMDAwMDQ5MDQwMDAwCihYRU4pIFsgICAg
MC4wNDg5NTddIEFsbG9jYXRpbmcgMToxIG1hcHBpbmdzIHRvdGFsbGluZyAyMDQ4TUIgZm9yIGRv
bTA6CihYRU4pIFsgICAgMC41MjExMjldIEJBTktbMF0gMHgwMDAwMDA2MDAwMDAwMC0weDAwMDAw
MGUwMDAwMDAwICgyMDQ4TUIpCihYRU4pIFsgICAgMC41MzQ2NTVdIEFsbG9jYXRpbmcgUFBJIDE2
IGZvciBldmVudCBjaGFubmVsIGludGVycnVwdAooWEVOKSBbICAgIDAuNTM1MzE1XSBkMDogZXh0
ZW5kZWQgcmVnaW9uIDA6IDB4MjAwMDAwLT4weDQ5MDAwMDAwCihYRU4pIFsgICAgMC41MzU4MTBd
IGQwOiBleHRlbmRlZCByZWdpb24gMTogMHg0OTIwMDAwMC0+MHg2MDAwMDAwMAooWEVOKSBbICAg
IDAuNTM2MzIwXSBkMDogZXh0ZW5kZWQgcmVnaW9uIDI6IDB4MTAwMDAwMDAwLT4weDNmYzAwMDAw
MAooWEVOKSBbICAgIDAuNTM3OTk0XSBMb2FkaW5nIHpJbWFnZSBmcm9tIDAwMDAwMDAwMDIwMDAw
MDAgdG8gMDAwMDAwMDA2MDAwMDAwMC0wMDAwMDAwMDY0MDAwMDAwCihYRU4pIFsgICAgMS4xNzUz
OTVdIExvYWRpbmcgZDAgaW5pdHJkIGZyb20gMDAwMDAwMDBlMjBmMjAwMCB0byAweDAwMDAwMDAw
NjgyMDAwMDAtMHgwMDAwMDAwMDcyZmQ5OWUzCihYRU4pIFsgICAgMi44OTc5MDRdIExvYWRpbmcg
ZDAgRFRCIHRvIDB4MDAwMDAwMDA2ODAwMDAwMC0weDAwMDAwMDAwNjgwMDViYTYKKFhFTikgWyAg
ICAyLjg5OTY1Nl0gSW5pdGlhbCBsb3cgbWVtb3J5IHZpcnEgdGhyZXNob2xkIHNldCBhdCAweDQw
MDAgcGFnZXMuCihYRU4pIFsgICAgMi45MDA1MjJdIAooWEVOKSBbICAgIDIuOTAwNjk1XSAqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCihYRU4pIFsgICAgMi45MDExNjdd
IFBhbmljIG9uIENQVSAwOgooWEVOKSBbICAgIDIuOTAxNDUyXSB0ZXN0X3N5bWJvbHM6IG5vbi16
ZXJvIG9mZnNldCAoMHgyNCkgdW5leHBlY3RlZAooWEVOKSBbICAgIDIuOTAxOTc3XSAqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCihYRU4pIFsgICAgMi45MDI0NTBdIAoo
WEVOKSBbICAgIDIuOTAyNjIzXSBSZWJvb3QgaW4gZml2ZSBzZWNvbmRzLi4uCgo=
--000000000000b2c9980645af5202
Content-Type: text/x-patch; charset="US-ASCII"; name="0001-arm-makefile-modifications.patch"
Content-Disposition: attachment; 
	filename="0001-arm-makefile-modifications.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_mj1mmzl40>
X-Attachment-Id: f_mj1mmzl40

RnJvbSA4ZDA3NWZkNjZmZWZkNDY1ODA0NDVhNzNhZTRkZTM3ZGY5NzAxMjI2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNeWtvbGEgS3ZhY2ggPG15a29sYV9rdmFjaEBlcGFtLmNvbT4K
RGF0ZTogVGh1LCAxMSBEZWMgMjAyNSAxNzo1NDoyOCArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIGFy
bSBtYWtlZmlsZSBtb2RpZmljYXRpb25zCgotLS0KIHhlbi9hcmNoL2FybS9NYWtlZmlsZSB8IDEg
KwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv
YXJtL01ha2VmaWxlIGIveGVuL2FyY2gvYXJtL01ha2VmaWxlCmluZGV4IDRhNTQ5YTFhYzAuLjgy
ODNmMTNhZWUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9NYWtlZmlsZQorKysgYi94ZW4vYXJj
aC9hcm0vTWFrZWZpbGUKQEAgLTEwMCw2ICsxMDAsNyBAQCAkKFRBUkdFVCktc3ltczogJChvYmp0
cmVlKS9wcmVsaW5rLm8gJChvYmopL3hlbi5sZHMKIAkJfCAkKG9ianRyZWUpL3Rvb2xzL3N5bWJv
bHMgJChhbGxfc3ltYm9scykgLS1zeXN2IC0tc29ydCBcCiAJCT4gJChkb3QtdGFyZ2V0KS4yLlMK
IAkkKE1BS0UpICQoYnVpbGQpPSQoQEQpICQoZG90LXRhcmdldCkuMi5vCisJJChjYWxsIGNvbXBh
cmUtc3ltYm9sLXRhYmxlcywgJChkb3QtdGFyZ2V0KS4xLm8sICQoZG90LXRhcmdldCkuMi5vKQog
CSQoTEQpICQoWEVOX0xERkxBR1MpIC1UICQob2JqKS94ZW4ubGRzICQ8ICQoYnVpbGRfaWRfbGlu
a2VyKSBcCiAJICAgICQoZG90LXRhcmdldCkuMi5vIC1vICRACiAJJChOTSkgLXBhIC0tZm9ybWF0
PXN5c3YgJEAgXAotLSAKMi40My4wCgo=
--000000000000b2c9980645af5202--


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 16:07:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 16:07:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184348.1506824 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTjCc-0000h5-DL; Thu, 11 Dec 2025 16:07:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184348.1506824; Thu, 11 Dec 2025 16:07:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTjCc-0000gy-AQ; Thu, 11 Dec 2025 16:07:38 +0000
Received: by outflank-mailman (input) for mailman id 1184348;
 Thu, 11 Dec 2025 16:07:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cEbC=6R=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vTjCa-0000P2-VC
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 16:07:36 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7fb0cb39-d6ab-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 17:07:32 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA5PR03MB8450.namprd03.prod.outlook.com (2603:10b6:806:474::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Thu, 11 Dec
 2025 16:07:28 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Thu, 11 Dec 2025
 16:07:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7fb0cb39-d6ab-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=X8rD7jFQ0uVDnEPxDCbT9LIBmStoQUlbuJMcYHduB0MX93x37buw04w8tLO86OJfSkPht0Ve0a0KMN8o8/Rx6oOSHPGh5V7aq4ifNgM0eJkegXy35YTtupSKGOF5GE5ih0tzhE2q3zFq75fMvgqfc2Dc19oMdIEssDtpiG6n2m16pNDFul6WFa8NVYLwCPTcC0ztAGh0EpkBAAu6SmNZ+s79PKuW3Z7JOM/mhBptkTQKGw5xw5+fYjNcDJsgVWEfHVM6ZSG6i6OJH3RtnvIDsW0i/AejALKUV5I7Vq7rokiO6gJLpjMmcQV/5qMDDrRt1utz7W/CqiqhYbR70WhBtg==
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=2dkC22Fapj8fe/Y/15LRmqOMgRTxVpOrZTEoC1V25/o=;
 b=rwNdMmM+zhtXJBTS+VChloQdA9InCQF9QthkTV2Wibt2uxL4DbvH6/blKHIhKsAW/Os4lOzofb43otn2d4BxilP3RFPj4zfbLQPV4a+rjWHDbWBpomPTGTjff6ug0szfwuq7BhA2/AhhbSQhWKPaYgu8hTXacn0/JaNlqRtznOnSTaqRcRCeM+uBsrZQDvsiMywUC0CLyiZnib88wC+9rPHGifmqyzA5F4IlnIPis5B5DRWwdbzPHS/pJMhp8NwHecxybFjPGJjnrXFkZIbOqose064WtJ+fgAm7R/OfsvMmo5MTTYw6CUC8B0rshDi0NdOTpIFIQCmVlhwjPPVuBg==
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=2dkC22Fapj8fe/Y/15LRmqOMgRTxVpOrZTEoC1V25/o=;
 b=EgG6JERK0TY800Y+OICqw/qKDlpZqPcKHfXYlxRoaFMtOr8r6bDwN+XuolN38hluG1JVjux0FSYTabsHZuvPzC/fPwVLzjLRoLfdmviDDDURg3o8TX8w0/2eRthMsIVuYI3jzeaSqkon2hbGiSCqLHCSRbQeSZ/rPYVCehji5t0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <712305da-b435-4f5e-8ed2-279e1f26e45b@citrix.com>
Date: Thu, 11 Dec 2025 16:07:25 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 xen-devel <xen-devel@lists.xenproject.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: Current Eclair analysis
To: Jan Beulich <jbeulich@suse.com>
References: <7744f9e7-17da-4f48-837d-8fc087899af5@citrix.com>
 <73559a38-d5c2-4e04-a6d1-24695573552d@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <73559a38-d5c2-4e04-a6d1-24695573552d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0153.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2c7::16) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA5PR03MB8450:EE_
X-MS-Office365-Filtering-Correlation-Id: 8a5c3562-6dfc-4809-06d8-08de38cf6203
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?M1l4MmlFdjFSZit2bTVyem81dGIwdlVqV1pEaCtNejdNdHRNL3Rpd2JjekVo?=
 =?utf-8?B?eEtLSHlaWXBjOGt4cVpJSC9qVFdIdXl0MTZTUStRbFhuM3pCbUhuTTBoc2FF?=
 =?utf-8?B?OVIweDBYcEpjTSszWHBCaVNrakU5dWtXN2x5SmZONFdxREpyWUhKTnp4OWJG?=
 =?utf-8?B?QVFLeFZ6SHpLeU9lem9BQjZibGhmV0JuQXpjM21BbStBMzVBeE5WK2JzY3ZR?=
 =?utf-8?B?UzFDaGpZTXZPSWxLaHRwZjhzSGtkcG42L3NTN1NrZVBwdElvZG1hUHNPTlpV?=
 =?utf-8?B?dFlpREtuQkd0ZTZWakUwUGtaaCtocnI4aUMveFBVRERiMHpxMisvNk4rYzE1?=
 =?utf-8?B?MHZDMUVCTEhjanF0K1hFWmFJSVlQRThYR1lJN2RnMGE5L053RGJ0SVhac2p1?=
 =?utf-8?B?Q01WRWxER1crOHcxdnN2OFFxQ3RWaWVLemVGTWNmdnJpMTVjUkJoRVNqSlU2?=
 =?utf-8?B?dXdOL2FwMFFwdmRxQzN4ZkZzZTR5MlN3Y2toRnFaaTZnRzArQkcwMVRhdk1v?=
 =?utf-8?B?RHA0MU12Z1pyWWlDTXBHVnRnRUNMZytHRmNNVENDUE52aTZvZ2sxK09WT0Iy?=
 =?utf-8?B?aGlIVmtOeEpZaHJ5RVZkQTZSY2dyd1JJd1V6SVBIOHR5bFMvdEFZVEk5S2hr?=
 =?utf-8?B?NlRja2NmTnkwSnE3d2VBSTNnVUU4SFM1bGtPdGN5TkRaUFBacld3Wm5FZXRI?=
 =?utf-8?B?Sk14NTcweEgwZzh4QUc5aGMzOWlvd2h6b3FVdVAyUFdQVkVwdnRTdWt0UDdF?=
 =?utf-8?B?UWwyTEhGL3kwKzRlYnNRa1FseVZVaGtEcFNwNVpUQ3FRaTdhNC9COXVyQlNi?=
 =?utf-8?B?YWU5bW8rMk1WQ3RSMzhXMWVSRm54cnJ1SUxrYUk3TW8vWElReFNjbTd6dWxF?=
 =?utf-8?B?ZzlxR3c1R1RPMFZPSUcyT1FKaHZiWDNaQzVLTXNwZVA5dzhUUGt4K2Zody9x?=
 =?utf-8?B?Tk5yRmxPZHdCQVBZTzg2SzJMM1cwWnZERndKdzZtbHhadStxNUVucjFWMCty?=
 =?utf-8?B?VHhqRzNFMWtjbnVhdGd0UlZ5b2R2ZFB2ZGVETk16Q2x6RkpkSWJJQjgxZE9R?=
 =?utf-8?B?RFA1SnJJNHArQnhBZWVnY0Nmb2V3Qll0YW9GSWd0bDByOFpIUXY2RVBnQWNh?=
 =?utf-8?B?a0Y2VXRWYnhQd0p4R0JJVklYQTlCcnhkYWZPblFyYzNzMm9TVk9CZ1JtTFFW?=
 =?utf-8?B?bHVIYWlRblIwN1M5T1EyckhObmZ4SE9TcHcxU2dFRzZVZmQvaTFiQ0YrTmMw?=
 =?utf-8?B?NlVLR3N4aVR5THNlVHZuaUlrZUNHOUYveE1uS1hyaDRaVzJ2S2p1MTFWQVBS?=
 =?utf-8?B?UkE4NkduRG5WdlZMR0RQcE42WEdxQ3Zsa3Q4dVVudk9vYS9Ockt0bStSL0VK?=
 =?utf-8?B?YkhVQ3BueGRqWlU2TjQ2bFhCeHhvc296bEhNQksvU2taSTZkbUc5Y2N1MHli?=
 =?utf-8?B?dGwwUXJySmJVVVV4WU0rQ095OWdORXBCTkdTQitNbXhnM2FSMUpYSkpZSllL?=
 =?utf-8?B?K2NuSHpXTlo1M1hJclY5ZENSNVgrYU1ROG01RHUwU0pzTVZzTzlUVVFZM2RL?=
 =?utf-8?B?Q3V1anliRU5nejdnTyttK2xyMVlrQXRyUE9xY2hkSnFQeTdGY3BUbzVkR1FN?=
 =?utf-8?B?bzU1OUtPbGY3QlE3NFRUTGdqMy9YNlUxb1VySHFsTkhiMkJpTUlqSzduVk1G?=
 =?utf-8?B?c20wMWVnQnozQ2hoY3NSNW52NGRTWlZJdEtjM3RWcHJwQmJCL0tVVy8yK3gv?=
 =?utf-8?B?RUNXemxMc29Oai9CZ0RoeDNzSmlIeTYvUVhheE9UZ0dTV0pFVERkT2FaVkVV?=
 =?utf-8?B?WkJjZ05FTGd1YnkrZG9HSmJDYjcvcGZ2cHhJeXFBV09xOVYzZmt3dUc2NkVv?=
 =?utf-8?B?SVFvZzhTbEV0V3l2MFd4dThrVGU5MUZQS0c1L29CY09nNkd3K0djKy9JM2k0?=
 =?utf-8?Q?8esoBAEb4nZ5sTg9p45pTm7kGfnxGCKv?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S00xcWhaNTRzczMxYldydGZmVGxlN2RrTDUyS0RON3RFM0FUcE9GWUtUeXVE?=
 =?utf-8?B?c3I0ejRFQ1NoSEhNTzVaVitCb1FkSnFxVmVPUFlmeVNVQWdpU1ZvYVdPZFFO?=
 =?utf-8?B?aEw2S3pOR3YveFZkcnR4cFRFWnlQaHBXeW1WTzNsRUl6bXRHcHQ4cUNNR05x?=
 =?utf-8?B?TXN4SzFSRVo2bXN4WCtET3lXRzNGcC9FTWdYUVBiRUIzdVRxTmtCMFdwTkFO?=
 =?utf-8?B?ZlpPRFFub3VyNEVTSkliUEEzeWl1b1JnWWxxT1d5NjBLMlZFU0ltYXVzQi9t?=
 =?utf-8?B?ZWtXc3pHUkVucVNqbTEwUHh5ZEVyeW9BZHd4emxYYkpEVHFScjZEeG8yd1pQ?=
 =?utf-8?B?ZmpwdjBiQk4rV0MxSzNONE01bURkcVZ3TEEwZGZMRG5sdEpSMmdVQmxwMHBB?=
 =?utf-8?B?VTJJRGNyMmRZUm1rNVNERlRGcHFkOXVZdU1UbDgrQWgvbUh1R2luU1BENE1t?=
 =?utf-8?B?M3A5YVB5T1BRRWlDZWhNeGtDa2R3L3dtbE5jeW5FRjc3YVlXWE5wUUk3Q2ov?=
 =?utf-8?B?Q3lxZkJUZDQvclBQaU9uaHUzVU9mWWk1T1NpMU5YbzlqQmNzSmpDNlJRNWdj?=
 =?utf-8?B?MmtZcFNSWmpWT3Z6YXIrejRtQTlFeUNISHRoeGYyRHo0emVqb1o3RlNDNGIr?=
 =?utf-8?B?QWh5MzUwdVlSQjF3Zk1sajFjdjdITmVYaTVvY3c2VXpFU0N1UnBLeFdpK0wr?=
 =?utf-8?B?V2gzOVFaWGY0RGRhVDl0L0xrOEd5NStDcGNST25yNnN0N21vaXBQQ1VBZHpM?=
 =?utf-8?B?alNUYTFYdXhTcUVvTFFOa3pKVGQ4WGpwTnozdVF2K0FQYlZXQmNLd3cxR1hH?=
 =?utf-8?B?NkVteGdnMTJDS1d0cUcxRDl4R3BNeDhGODNqZ1Yyc2tuT1hHYzZTZ0lXd29Z?=
 =?utf-8?B?RXhkRjlrd2VCc1dialVkVGxtbTRrdDJML1BvR1RWN3lmcXZmb09TSEFoVlJp?=
 =?utf-8?B?MmZpL2VTQ2cwMk9JczZaN2s2Zmtndmp3b3oxUGh2cWVaN1NkYk9ZU2JpTHNL?=
 =?utf-8?B?eElIV3Z5R0M5Ym5wdkYzQk04VEZGR2E5OFFya21QbDFQMHFmemZZVEQxa0hH?=
 =?utf-8?B?eTVQRzhWdmMxMHFlVmFuWUR1Q3Z3cHhiYXo0eTdsKytOOEdJenNzNGNTbVlQ?=
 =?utf-8?B?Y2tTVjB2YmMrWVVPMnB0OTZqemgvKzluTzBzQTBOSmR3MXJKNmV3NmFFbHo0?=
 =?utf-8?B?Y2VaUXR5d3Y5ckxpMUhURkxzWFYrNVdmVUx2OXozdlpHQVlxd2xRSi9WWHBI?=
 =?utf-8?B?Rm1NMThpNit6ZkV3WGphZG92WUhpejRmVHZGNGZ6dHJkTkNHa0srNERGSFFo?=
 =?utf-8?B?N3dXcGVsRFdKem1EN1EyeWVzV1BkTWFEeG9xSUcydXozMWo3WU1Wa2FNRzNx?=
 =?utf-8?B?bllmUXFQWXk5akE3bWpGd3EwSHY3dFBrbGlDSWZSMkVBOVc5QVdNUUt6NlRH?=
 =?utf-8?B?ZkFyUmRYZnRNdStZUkRVWlNCWlpFS3RHNDRCNE96a2NtaENEY0FpcnFIZDRV?=
 =?utf-8?B?MHE5UXhIc0JKeGIxejZhZzN3RGl0UkFta3REdktPQlY5YjZYaFdiRWpEUGt4?=
 =?utf-8?B?dHJUYzkybXRRZllpUE9VVU9BRDlscXFSSnRyNVlGTnU1QjV4NHAxckMrZjhU?=
 =?utf-8?B?RHhDaUg2ZTRvWjZVc2NGNW93QzRMT2pyMStlVXB3a2FYZjNaTkwyZ05xbXRu?=
 =?utf-8?B?T0M0RFJJcTluNVNWQjEvcERkc3dTOVpTU29nSG81eG9lWFdIOGZ2bFBDcC9D?=
 =?utf-8?B?cmNDZVRKRnNySkIzV2dWNk52NExVOVBIbmRjNWtkdW5ycVV5QjBkRWtiMHB6?=
 =?utf-8?B?V2IyeHp3WGM0Z0pDcm91U3liRW1nT2hPQm8zK09LODVXT0YzbUp4d3BWTFZl?=
 =?utf-8?B?ZTU5MHNQUjd2Tk93d0FqU0lobHlDR3ZHdTNJWWZDN3NNcnhBaFNCVEg1WWs4?=
 =?utf-8?B?MnA5N29nUDdTeDdGSTdkemVXUU80eDl1ZnY3RlYwTk0xMTBHODkwZkd1cHhK?=
 =?utf-8?B?MHZIR0xDVWp1amVPSVJrQkZaakY5dHRUWjZoWEZjeEtid0lhSzJTRjZWRnNk?=
 =?utf-8?B?cys2TVNxUTV0WHVtczhqazhhUG9iMHNIVndpdkVKV3JuUm9VYkNTbVhEazgx?=
 =?utf-8?B?OGZRcDJZdnpCNVVkOEVHbG5uZ1NRNGt5WCs4MWM4ZmF1bk8ySmJKQVZLWnVw?=
 =?utf-8?B?Z2c9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8a5c3562-6dfc-4809-06d8-08de38cf6203
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2025 16:07:28.8411
 (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: XwTVJjmiRKdfHLLW5ctsjs1e2U06Rej6oEMFgithwEnG4lQC4QkKKMKhBlfk0Bfbc4t9TotkhXyul94Kl7nqpndOl05j057KarIKN6rVfb0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PR03MB8450

On 11/12/2025 9:04 am, Jan Beulich wrote:
> On 10.12.2025 19:14, Andrew Cooper wrote:
>> The *-all targets want everything possible enabling. Ideally we want
>> something like Linux's COMPILE_TEST, but in the short term we can just
>> adjust the input Kconfig.
> Assuming the PV_SHIM_EXCLUSIVE negative dependencies get sorted, what's
> wrong with simply using allyesconfig there?

Off the top of my head, ARM have two different GICv2 implementations
which are currently mutually exclusive.

Linux uses COMPILE_TEST to include drivers which would otherwise be
excluded by base architecture or platform.  We've not got much of that,
but IOMMUs are one example we do have.

But more generally, "I want to compile all the code for CI" doesn't
necessary mean "with coverage, and sanitisers, and LTO, and everything
else we've not gotten to yet".

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 16:13:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 16:13:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184364.1506834 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTjIY-0002Nq-0J; Thu, 11 Dec 2025 16:13:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184364.1506834; Thu, 11 Dec 2025 16:13:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTjIX-0002Nj-Tl; Thu, 11 Dec 2025 16:13:45 +0000
Received: by outflank-mailman (input) for mailman id 1184364;
 Thu, 11 Dec 2025 16:13:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kPjJ=6R=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vTjIX-0002Nd-1B
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 16:13:45 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5c8c355d-d6ac-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 17:13:42 +0100 (CET)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-59584301f0cso277556e87.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 08:13:42 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8b85f38sm6591536f8f.28.2025.12.11.08.13.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Dec 2025 08:13:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c8c355d-d6ac-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765469622; x=1766074422; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=OZX/42ePBKrFZv//GJVfveONAsoCd6k5RJTSL9Z8Efk=;
        b=QofvJtjpCyNWDTy92QwBinyU8umg+zbRlLFcR2iISu/kFOiDiMIpFeggIsqLJCWDIf
         9wq+ZSKUxbW2LyFEHkxCH6FpPyCRXe7M1ZkP83gJbEvvlXNM9B6MtUMMrqKFI2G5MOLW
         ba8izWCjGP4QOcLZDjKesbnkr4ChWM3pTxy8Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765469622; x=1766074422;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OZX/42ePBKrFZv//GJVfveONAsoCd6k5RJTSL9Z8Efk=;
        b=sYchrqR4I9cGnZN7ZWLItMvvKFXmT0g7j1alcEvGq2Q87HVmWF+wHqekggonMTvzjm
         0aMrrKzcBMt4+BRVoYIehqbNOT2IPs00wHVzeQf1a7wkqHaJIj/w0UQuBJxg4WwcYD3J
         6hAqx3OO9Nu2TEs7Pq27ydnNYlL5ybxjrAHHRWEphVW5Vpp3eYxQbgVZPSA8jGmFLSQ6
         IyfbsHp3jeLg3D/d4z2XV0DOhZHQ4R8htybXIzytAbLjP5PXuyuBqjwhy/meUC/j7UjI
         dbKj2eLjATAUKgyoj3oUotoNR9pe7FOuuNfZVgLqnZeMXFlVo9/C4jS0iHm8Hr8vZ1zi
         +vtQ==
X-Gm-Message-State: AOJu0Yylc7Cr4yNUIYFWqz7P7wJVNSImWL+Zs2sp2/qrYYuPnS7atJVj
	ueTZyPcGtx1t/dXqzsZpRVJTwv+riyceuwwMEvGoT7CYowGjZQu5o0t6Udk0cG6hEGxHvaluI57
	khBYx
X-Gm-Gg: AY/fxX5YSsZjdN6P9NdSYUL0n4ve7fvDX8Edr+W1EatpYY+Atf2bWjWG8YfLI0Ul7pK
	VsBFeg8rsUa1q6434VVvzS6KhkEe3iFEUVaHbXwmHMTxuioxNmHX01o+qGY6l2cDAYGSFAkiqHv
	L6ZBE8s9iuM0UGYQrgWfaD6Nb7BeHktu9HRUFP1SejdtHOgdGY6Fm9lHryXAHQCJVWRV6vnAU1x
	PZZs+hIpdubUTjVD/cFEo3+f0BzkAQ94j+DnBIbGfqTujC5/ZvlZzjNGPeBuiIhcaKDWWTdjvqB
	Nm+l6YifiIs9Uu56Ivwzk43vUpgRdmGJtJm+RqHBmedmjzF64AiGvEDYplG53KAXt7cfPnxMxbl
	paEENAcJ3Q3WXyFuXyuCLzNaPjfIggK2OoGYDOYZfU0mqxC0g0hKbNELzkjabKOCtXXkKoAgh1u
	d5+xRWH8pe8AQENO5/1r9lcDEIpOiprbei/+bWWptlkU1MsYODpSST8HKziNb3uw==
X-Google-Smtp-Source: AGHT+IFUEm6d3s7aIBI42cNM5XQCaQXesj0bMNjt7uaEgGsy1tdL9eJfL57qGSOM0XpCF670XQX+5Q==
X-Received: by 2002:a05:651c:f17:b0:37f:b2d7:8a0e with SMTP id 38308e7fff4ca-37fb2d7bc42mr18063391fa.5.1765469621504;
        Thu, 11 Dec 2025 08:13:41 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH] CI/eclair: Rename the eclair-* jobs to *-all and *-amd
Date: Thu, 11 Dec 2025 16:13:39 +0000
Message-Id: <20251211161339.2296433-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The *-safety jobs are AMD's configuration specifically, and other
configurations will likely be different.

Give the un-suffixed job an *-all suffix to make it clearer what they're
doing.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 automation/gitlab-ci/analyze.yaml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/automation/gitlab-ci/analyze.yaml b/automation/gitlab-ci/analyze.yaml
index 20cabbe5f70c..37a941bebbae 100644
--- a/automation/gitlab-ci/analyze.yaml
+++ b/automation/gitlab-ci/analyze.yaml
@@ -39,7 +39,7 @@
       allow_failure: true
     - !reference [.eclair-analysis, rules]
 
-eclair-x86_64:
+eclair-x86_64-all:
   extends: .eclair-analysis:triggered
   variables:
     LOGFILE: "eclair-x86_64.log"
@@ -58,7 +58,7 @@ eclair-x86_64-testing:
       when: always
     - !reference [.eclair-analysis:triggered, rules]
 
-eclair-x86_64-safety:
+eclair-x86_64-amd:
   extends: eclair-x86_64
   tags:
     - eclair-analysis-safety
@@ -99,7 +99,7 @@ eclair-x86_64-safety:
       when: always
     - !reference [.eclair-analysis:triggered, rules]
 
-eclair-ARM64:
+eclair-ARM64-all:
   extends: .eclair-analysis:triggered
   variables:
     LOGFILE: "eclair-ARM64.log"
@@ -118,7 +118,7 @@ eclair-ARM64-testing:
       when: always
     - !reference [.eclair-analysis:triggered, rules]
 
-eclair-ARM64-safety:
+eclair-ARM64-amd:
   extends: eclair-ARM64
   tags:
     - eclair-analysis-safety

base-commit: abac3b76d20ebecb339cb41bb8982796bf1ce276
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 16:23:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 16:23:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184380.1506843 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTjSN-0004Jd-Tj; Thu, 11 Dec 2025 16:23:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184380.1506843; Thu, 11 Dec 2025 16:23:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTjSN-0004JW-QI; Thu, 11 Dec 2025 16:23:55 +0000
Received: by outflank-mailman (input) for mailman id 1184380;
 Thu, 11 Dec 2025 16:23:54 +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 <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTjSM-0004JQ-Ei
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 16:23:54 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c86b036e-d6ad-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 17:23:53 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-47755de027eso2370245e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 08:23:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8b8a851sm6945537f8f.29.2025.12.11.08.23.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 08:23:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c86b036e-d6ad-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765470232; x=1766075032; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Q4xW/aVp81xxlOlQp6Qu7w78OFuVlRLTp3quohIuhsw=;
        b=RSGndpbpZNGVvoPbmPyTuPrRJ6U2+4xa0mqQ6uzAy/MjxbMozFSitWvL4fszATGaG7
         LmVwL21WGRz90fRYJHr6Rzc17LdxDCHDrrAIm5TTm+rN+dXk3wcOYfQ9n+2GB2Xl2ShU
         fvoW+nvYM4XnHozIJ/3fFusq5pN31pi0xa1uKrJ5GY/YyNH9iza9XhYXugsY52kDruy0
         NG1tNe7zTMXFWMYBtEt20MUWgQDdggaKdX/jfjFJDjRKO2W5La2+LAAKgd04BjRQIObU
         uLkhccAk5XVKMyoSv1JPmeKhs722mmNYnf8jgnN6p50DPTtcORtGa84P19/9r48TKQt2
         IYaQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765470232; x=1766075032;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Q4xW/aVp81xxlOlQp6Qu7w78OFuVlRLTp3quohIuhsw=;
        b=K+uEJ3zGdFKCfxx1EYX/DRowDwTRdWAoH/MmoSOefYceHIAYdBLFkL/t6mAt/vfTi2
         1mIm/XspmH6Opbk3Kt+XgVL3wB9pwnKcviTdWQrK+xFA5jAK7HBKR/M7Pos9HaegWZWj
         RzajHP2KG08WtfDPT2tXrYr9O/0EmAWnqTgkolq2bM895u4+C2CFTr/I22pZxO2qnDzg
         cpvNaxHuQEqYkwS7qameHmHApjHTZ85v1f3agTqMWnd9lWSzjGjA10rqFxA9nnEr9DMS
         UQL2YVY+I95oLDsO0+HpDAc3CAHJNxCu7PIqYRFovXb7UncbxNV2ehEkMaL2MAD5hdMZ
         WkrA==
X-Gm-Message-State: AOJu0YyGEpsc2mKc6hKKXjl1Dd5U0zyIp7E+AjAmlUXmMcuZhNgGICqt
	BVReNnVGxo4dSCGpVDmFqxjwOGnYdFljlC13fIkzJRc47XpXdu0FY473EF3SpPq8Qg==
X-Gm-Gg: AY/fxX62QQhpp+LfKJGclQhSBW4fShEnyM194Awis2gSxY7bk0F0sicYmiDgF7Utt+5
	5+rCUZoZUuJo6tdBMIYuUHzwVEslmsfyBrBJuDAYvUGb8SbF3VlmE2rgxGn3fV+MKE1PGESTFXN
	uyGvn+H//YZdizSeYyFHqEY1Hib18YZ8BSIqTMoHiTrrYZhez79CdOMQBWuQnlfIrCJ2aLvZCy4
	wbSv72jXWFIlv6LQesOPqVHmDBdmrrIS1NFc8NSKY7vzn2v489nW24On7vfpZAGSBsgXHF6Bxds
	Ryn+84gZdb7XX1vJeDpscRFPjeCiemSnaZK7bhxgX5fu9DzJ4qdwl3TosPRPn14h5QmwQOVjMMB
	3g2oCx7dPkniviB0T3yN1az+jotbWZKuKAa8cXzFAuv4EF4JUlwfLT+ljWq3azQ5mzReWlHi8ri
	q0BqDOEv1Zj09aiIKWg1LHuUqqR0/OryIZqSJXR2+gRYU0lMapdrVS9l2XN9RXGLo2H77cViHUl
	3I=
X-Google-Smtp-Source: AGHT+IHG842eRlVSjDvL4qVp3+K4uuXsw6fyPdAHD/cGBWB2gmT0Tid3YC9I5J4I+zaw7G4cJXzgCg==
X-Received: by 2002:a05:600c:8b35:b0:46e:3d41:6001 with SMTP id 5b1f17b1804b1-47a83859055mr62020755e9.34.1765470232277;
        Thu, 11 Dec 2025 08:23:52 -0800 (PST)
Message-ID: <e38c24dd-1acc-4d9a-b6f6-5e1964753840@suse.com>
Date: Thu, 11 Dec 2025 17:23:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Strange symbols_lookup() behaviour in test-symbols on arm64 CI
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <CAGeoDV_YS8hV2+FXVgXxvHLw=MQOAoJZwrP1Ypw8+ZUjKB9GSA@mail.gmail.com>
 <a5361a51-128d-47e0-b5ed-58bfd0d9e8ad@suse.com>
 <CAGeoDV-vfiKECmvWzJ4dnzicXDL7XJDxwEy_Z737k+234Gkzpg@mail.gmail.com>
 <CAGeoDV8VZ1m6CQAkKK-9UDz4npXm2V+Up+BBo=+NyzgLJMW+3g@mail.gmail.com>
 <b4013cae-f27a-4c69-b136-d33db2d22725@suse.com>
 <CAGeoDV91W24tu6MOuM6a9B1jDjJ_8oNdsMYaxNA-ehbxn3xLoA@mail.gmail.com>
 <10aaed6d-6cb1-4bed-aa8c-5f9761f04fde@suse.com>
 <CAGeoDV_bTFNMS_XbEyfB0xNmpi=Yhr5VzszDBPTS5yYtjo1hnQ@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAGeoDV_bTFNMS_XbEyfB0xNmpi=Yhr5VzszDBPTS5yYtjo1hnQ@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.12.2025 17:05, Mykola Kvach wrote:
> On Thu, Dec 11, 2025 at 5:59 PM Jan Beulich <jbeulich@suse.com> wrote:
>> On 11.12.2025 16:57, Mykola Kvach wrote:
>>> On Thu, Dec 11, 2025 at 5:31 PM Jan Beulich <jbeulich@suse.com> wrote:
>>>> On 11.12.2025 13:06, Mykola Kvach wrote:
>>>>> On Thu, Dec 11, 2025 at 1:44 PM Mykola Kvach <xakep.amatop@gmail.com> wrote:
>>>>>> I tested the issue with the provided patch, and it is still reproducible.
>>>>>
>>>>> I also triggered a pipeline with the patch you provided on top of my
>>>>> changes [1],
>>>>> and it failed there as well. In fact, it exposed additional problems
>>>>> in other jobs.
>>>>>
>>>>> [1] https://gitlab.com/xen-project/people/mykola_kvach/xen/-/pipelines/2209153728
>>>>
>>>> These are the failures we're trying to hunt down.
>>>>
>>>> Looking at one of the Arm build logs, I can't see any indication that you actually
>>>> extended the patch to Arm's linking rule. Hence my conclusion in the other reply
>>>> may be wrong - we simply still don't know what the situation is there.
>>>
>>> You're right, I missed the necessary changes. Would this diff be sufficient?
>>
>> Yes, this looks to be what is needed.
> 
> Unfortunately, with this diff applied the issue is still reproducible
> on my side.
> Please see the attached logs for details.

IOW the build succeeded with the check added? You didn't provide the build log,
so I feel I should double check.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 16:31:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 16:31:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184394.1506855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTjZ9-0006DD-Jh; Thu, 11 Dec 2025 16:30:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184394.1506855; Thu, 11 Dec 2025 16:30:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTjZ9-0006D6-G8; Thu, 11 Dec 2025 16:30:55 +0000
Received: by outflank-mailman (input) for mailman id 1184394;
 Thu, 11 Dec 2025 16:30:54 +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
 <SRS0=QWGN=6R=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vTjZ7-0006D0-RC
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 16:30:53 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c289fb68-d6ae-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 17:30:52 +0100 (CET)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-37a2dced861so2442391fa.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 08:30:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c289fb68-d6ae-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765470652; x=1766075452; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=7GhOVjBwt0hZM5QsMUuQrRNzlS5ASNIGoZ7g1r4C1cY=;
        b=NCGOoTyz7gTI5/BRHAETPM2b++figHeIZRbkzkXUHOEZMblM2cXviK5/8GwBT2XpBK
         TcPekKk9Rw4qQ3U7SudTtFe6pMxoDTz3h01koedxb/5hA6i0tyhu4FBk0iw8fUhSPDbZ
         Qh+a14ipZP77Nh5wGOdOvt/NaV6N8OkvcnahRk/cL0+wZcR7QcucEShQfz00kgz7rapW
         ld474RrF4BAiYxR7VEr6ExOCKjb8l8ZATZGbiGjPhRAG4sxJ7efMT97ap+Aw5XX26+7y
         PyTHBwG8c6dyv8Q+u26A6eZaKqcBQGDcYiIa9a+ANJScz9KOQmZh2O4jwNvGeT4x3Wps
         cCXQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765470652; x=1766075452;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7GhOVjBwt0hZM5QsMUuQrRNzlS5ASNIGoZ7g1r4C1cY=;
        b=sccTdNMf3SnRg4TlFrsXHF5cQgmzYw37SDLTNqaSBtJicMV+kx3/udRHEQ5uPgIGrT
         3R2Od3Rfraz7+qAMA/gJhYQCYIiQiHDEFYZKd2EizjXi937BEIp811+ITfPVL/lPVIVu
         qaq5aG6dl7r/fiQRet4LVyLLXlkYWvw59sOFRgRjk4AgNP/mbuX/lLbvVld+MMe8wUYi
         MDJKImPiV/2iJB3ERPL9yRetVs6vABaOM2OGRmJpp2974xOlz0jvBBrH/6LGRblOw27M
         oeN3FQorfevrgSVOvjZiG1pn2yMEXbXqvXIPBF3KKpwRLVXxYsh7oW/jiQFNbSpdTstU
         CELw==
X-Gm-Message-State: AOJu0YzO7sJSKKBqbUAi+2EukreI71jTEPzxs2pF3ncPQ2y89g4aJk4p
	Av3HEcYGa/o5LxAllV5ZadUxD7t3q+vtCDy6gnHf+aiOwu0aLl2z55EGC23SmNxdl1ubJchnW7l
	Q/GjypShkjw3r4xKKpFIYXVDxFeFSZSo=
X-Gm-Gg: AY/fxX7nTGzFIgkkUTCb43JyTcSq97dECM+uLGDnXFNMP/eWuVC2JNqFvcuQ5+LA5qm
	238qyzzvAv1DrFluIA020OZ1U6733vOQpj23VHRUWtrqv+zNA/GIpnJz16J5TORKcRHnnzleit+
	tGXsrbQDLZZ9Gu0Lbx/yv5jZScCH2Y87R7MX+xjJofpbR60kkAWJeLac0+rbu0vtPM5I9iBhg8m
	DhzLxfptFQixyvmxS+tqkHn7+bgCNbugFPr2EHufMQYwPIWqK6E9XGkEqTp+RbHw4teDt8=
X-Google-Smtp-Source: AGHT+IGIFlcodlWh/8UHLe3l9mNgR+DmBVrqyBYTb3tPdbv+QMWDsX/c0T8a401eYq3XAkf4q8PRuT1FzBuf3IaLm+w=
X-Received: by 2002:a2e:bcc2:0:b0:37d:2f1c:56e2 with SMTP id
 38308e7fff4ca-37fbfb80a55mr7789471fa.19.1765470651680; Thu, 11 Dec 2025
 08:30:51 -0800 (PST)
MIME-Version: 1.0
References: <CAGeoDV_YS8hV2+FXVgXxvHLw=MQOAoJZwrP1Ypw8+ZUjKB9GSA@mail.gmail.com>
 <a5361a51-128d-47e0-b5ed-58bfd0d9e8ad@suse.com> <CAGeoDV-vfiKECmvWzJ4dnzicXDL7XJDxwEy_Z737k+234Gkzpg@mail.gmail.com>
 <CAGeoDV8VZ1m6CQAkKK-9UDz4npXm2V+Up+BBo=+NyzgLJMW+3g@mail.gmail.com>
 <b4013cae-f27a-4c69-b136-d33db2d22725@suse.com> <CAGeoDV91W24tu6MOuM6a9B1jDjJ_8oNdsMYaxNA-ehbxn3xLoA@mail.gmail.com>
 <10aaed6d-6cb1-4bed-aa8c-5f9761f04fde@suse.com> <CAGeoDV_bTFNMS_XbEyfB0xNmpi=Yhr5VzszDBPTS5yYtjo1hnQ@mail.gmail.com>
 <e38c24dd-1acc-4d9a-b6f6-5e1964753840@suse.com>
In-Reply-To: <e38c24dd-1acc-4d9a-b6f6-5e1964753840@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 11 Dec 2025 18:30:39 +0200
X-Gm-Features: AQt7F2reoMjrSfVUoS-ocvRhBGdDGdsODF7U0rVfCY4aClgMhlbSNfbpk-YNfjc
Message-ID: <CAGeoDV8QDBeqTPv30hcbd2giGRJp_1h+JgeGuTodhP3m8qHpHQ@mail.gmail.com>
Subject: Re: Strange symbols_lookup() behaviour in test-symbols on arm64 CI
To: Jan Beulich <jbeulich@suse.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: multipart/mixed; boundary="0000000000000e2de10645afabdb"

--0000000000000e2de10645afabdb
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Dec 11, 2025 at 6:23=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 11.12.2025 17:05, Mykola Kvach wrote:
> > On Thu, Dec 11, 2025 at 5:59=E2=80=AFPM Jan Beulich <jbeulich@suse.com>=
 wrote:
> >> On 11.12.2025 16:57, Mykola Kvach wrote:
> >>> On Thu, Dec 11, 2025 at 5:31=E2=80=AFPM Jan Beulich <jbeulich@suse.co=
m> wrote:
> >>>> On 11.12.2025 13:06, Mykola Kvach wrote:
> >>>>> On Thu, Dec 11, 2025 at 1:44=E2=80=AFPM Mykola Kvach <xakep.amatop@=
gmail.com> wrote:
> >>>>>> I tested the issue with the provided patch, and it is still reprod=
ucible.
> >>>>>
> >>>>> I also triggered a pipeline with the patch you provided on top of m=
y
> >>>>> changes [1],
> >>>>> and it failed there as well. In fact, it exposed additional problem=
s
> >>>>> in other jobs.
> >>>>>
> >>>>> [1] https://gitlab.com/xen-project/people/mykola_kvach/xen/-/pipeli=
nes/2209153728
> >>>>
> >>>> These are the failures we're trying to hunt down.
> >>>>
> >>>> Looking at one of the Arm build logs, I can't see any indication tha=
t you actually
> >>>> extended the patch to Arm's linking rule. Hence my conclusion in the=
 other reply
> >>>> may be wrong - we simply still don't know what the situation is ther=
e.
> >>>
> >>> You're right, I missed the necessary changes. Would this diff be suff=
icient?
> >>
> >> Yes, this looks to be what is needed.
> >
> > Unfortunately, with this diff applied the issue is still reproducible
> > on my side.
> > Please see the attached logs for details.
>
> IOW the build succeeded with the check added? You didn't provide the buil=
d log,
> so I feel I should double check.

I have now attached the corresponding build log.

>
> Jan

--0000000000000e2de10645afabdb
Content-Type: text/x-log; charset="US-ASCII"; name="build.log"
Content-Disposition: attachment; filename="build.log"
Content-Transfer-Encoding: base64
Content-ID: <f_mj1ni1s90>
X-Attachment-Id: f_mj1ni1s90

bWFrZSAtQyB4ZW4gaW5zdGFsbAptYWtlWzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy9idWlsZC94
ZW4nCiAgVVBEICAgICBpbmNsdWRlL3hlbi9jb21waWxlLmgKWGVuIDQuMjItdW5zdGFibGUKICBD
SEsgICAgIGluY2x1ZGUvaGVhZGVycysrLmNoawptYWtlWzJdOiBOb3RoaW5nIHRvIGJlIGRvbmUg
Zm9yICdpbmNsdWRlJy4KbWFrZVsyXTogJ2FyY2gvYXJtL2luY2x1ZGUvYXNtL2FzbS1vZmZzZXRz
LmgnIGlzIHVwIHRvIGRhdGUuCiAgQ0MgICAgICBhcmNoL2FybS9kb21haW5fYnVpbGQubwogIEND
ICAgICAgY29tbW9uL3ZlcnNpb24ubwogIENDICAgICAgYXJjaC9hcm0vc2V0dXAubwogIENDICAg
ICAgYXJjaC9hcm0vZWZpL2Jvb3QubwogIExEICAgICAgY29tbW9uL2J1aWx0X2luLm8KICBJTklU
X08gIGFyY2gvYXJtL2RvbWFpbl9idWlsZC5pbml0Lm8KICBJTklUX08gIGFyY2gvYXJtL2VmaS9i
b290LmluaXQubwogIExEICAgICAgYXJjaC9hcm0vZWZpL2J1aWx0X2luLm8KICBMRCAgICAgIGFy
Y2gvYXJtL2J1aWx0X2luLm8KICBMRCAgICAgIHByZWxpbmsubwouL3Rvb2xzL3N5bWJvbHMgIC0t
ZW1wdHkgPiAuLy54ZW4tc3ltcy4wLlMKbWFrZSAtZiAuL1J1bGVzLm1rIG9iaj0uIC4vLnhlbi1z
eW1zLjAubwogIENDICAgICAgLnhlbi1zeW1zLjAubwpsZCAgICAtRUwgLS1uby13YXJuLXJ3eC1z
ZWdtZW50cyAtLWZpeC1jb3J0ZXgtYTUzLTg0MzQxOSAtVCBhcmNoL2FybS94ZW4ubGRzIHByZWxp
bmsubyBcCiAgICAgIC4vLnhlbi1zeW1zLjAubyAtbyAuLy54ZW4tc3ltcy4wCm5tIC1wYSAtLWZv
cm1hdD1zeXN2IC4vLnhlbi1zeW1zLjAgXAoJfCAuL3Rvb2xzL3N5bWJvbHMgIC0tc3lzdiAtLXNv
cnQgXAoJPiAuLy54ZW4tc3ltcy4xLlMKbWFrZSAtZiAuL1J1bGVzLm1rIG9iaj0uIC4vLnhlbi1z
eW1zLjEubwogIENDICAgICAgLnhlbi1zeW1zLjEubwpsZCAgICAtRUwgLS1uby13YXJuLXJ3eC1z
ZWdtZW50cyAtLWZpeC1jb3J0ZXgtYTUzLTg0MzQxOSAtVCBhcmNoL2FybS94ZW4ubGRzIHByZWxp
bmsubyBcCiAgICAuLy54ZW4tc3ltcy4xLm8gLW8gLi8ueGVuLXN5bXMuMQpubSAtcGEgLS1mb3Jt
YXQ9c3lzdiAuLy54ZW4tc3ltcy4xIFwKCXwgLi90b29scy9zeW1ib2xzICAtLXN5c3YgLS1zb3J0
IFwKCT4gLi8ueGVuLXN5bXMuMi5TCm1ha2UgLWYgLi9SdWxlcy5tayBvYmo9LiAuLy54ZW4tc3lt
cy4yLm8KICBDQyAgICAgIC54ZW4tc3ltcy4yLm8KbG4gLWYgIC4vLnhlbi1zeW1zLjEubyAuLy5j
c3QuJCQ7IG9iamR1bXAgLXQgLi8uY3N0LiQkID4gIC4vLnhlbi1zeW1zLjEuby5zeW07IGxuIC1m
ICAuLy54ZW4tc3ltcy4yLm8gLi8uY3N0LiQkOyBvYmpkdW1wIC10IC4vLmNzdC4kJCA+ICAuLy54
ZW4tc3ltcy4yLm8uc3ltOyBybSAtZiAuLy5jc3QuJCQKZGlmZiAtdSAgLi8ueGVuLXN5bXMuMS5v
LnN5bSAgLi8ueGVuLXN5bXMuMi5vLnN5bQpsZCAgICAtRUwgLS1uby13YXJuLXJ3eC1zZWdtZW50
cyAtLWZpeC1jb3J0ZXgtYTUzLTg0MzQxOSAtVCBhcmNoL2FybS94ZW4ubGRzIHByZWxpbmsubyAt
LWJ1aWxkLWlkPXNoYTEgXAogICAgLi8ueGVuLXN5bXMuMi5vIC1vIHhlbi1zeW1zCm5tIC1wYSAt
LWZvcm1hdD1zeXN2IHhlbi1zeW1zIFwKCXwgLi90b29scy9zeW1ib2xzIC0tYWxsLXN5bWJvbHMg
LS14ZW5zeW1zIC0tc3lzdiAtLXNvcnQgXAoJPiB4ZW4tc3ltcy5tYXAKcm0gLWYgLi8ueGVuLXN5
bXMuWzAtOV0qCm9iamNvcHkgLU8gYmluYXJ5IC1TIHhlbi1zeW1zIHhlbgpsbiAtc2YgeGVuIHhl
bi5lZmkKWyAtZCAvYnVpbGQvZGlzdC9pbnN0YWxsL2Jvb3QgXSB8fCBpbnN0YWxsIC1kIC1tMDc1
NSAtcCAvYnVpbGQvZGlzdC9pbnN0YWxsL2Jvb3QKaW5zdGFsbCAtbTA2NDQgLXAgeGVuIC9idWls
ZC9kaXN0L2luc3RhbGwvYm9vdC94ZW4tNC4yMi11bnN0YWJsZQpsbiAtZiAtcyB4ZW4tNC4yMi11
bnN0YWJsZSAvYnVpbGQvZGlzdC9pbnN0YWxsL2Jvb3QveGVuLTQuMjIKbG4gLWYgLXMgeGVuLTQu
MjItdW5zdGFibGUgL2J1aWxkL2Rpc3QvaW5zdGFsbC9ib290L3hlbi00CmxuIC1mIC1zIHhlbi00
LjIyLXVuc3RhYmxlIC9idWlsZC9kaXN0L2luc3RhbGwvYm9vdC94ZW4KWyAtZCAiL2J1aWxkL2Rp
c3QvaW5zdGFsbC91c3IvbGliL2RlYnVnIiBdIHx8IGluc3RhbGwgLWQgLW0wNzU1IC1wIC9idWls
ZC9kaXN0L2luc3RhbGwvdXNyL2xpYi9kZWJ1ZwppbnN0YWxsIC1tMDY0NCAtcCB4ZW4tc3ltcyAv
YnVpbGQvZGlzdC9pbnN0YWxsL3Vzci9saWIvZGVidWcveGVuLXN5bXMtNC4yMi11bnN0YWJsZQpp
bnN0YWxsIC1tMDY0NCAtcCB4ZW4tc3ltcy5tYXAgL2J1aWxkL2Rpc3QvaW5zdGFsbC91c3IvbGli
L2RlYnVnL3hlbi1zeW1zLTQuMjItdW5zdGFibGUubWFwCmluc3RhbGwgLW0wNjQ0IC1wIC5jb25m
aWcgL2J1aWxkL2Rpc3QvaW5zdGFsbC9ib290L3hlbi00LjIyLXVuc3RhYmxlLmNvbmZpZwppbnN0
YWxsOiBjYW4ndCBwcmVzZXJ2ZSBvd25lcnNoaXAgb2YgJy9idWlsZC9kaXN0L2luc3RhbGwvYm9v
dC94ZW4tNC4yMi11bnN0YWJsZS5jb25maWcnOiBPcGVyYXRpb24gbm90IHBlcm1pdHRlZAppZiBb
IC1yIHhlbi5lZmkgLWEgLW4gJy91c3IvbGliNjQvZWZpJyBdOyB0aGVuIFwKCVsgLWQgL2J1aWxk
L2Rpc3QvaW5zdGFsbC91c3IvbGliNjQvZWZpIF0gfHwgaW5zdGFsbCAtZCAtbTA3NTUgLXAgL2J1
aWxkL2Rpc3QvaW5zdGFsbC91c3IvbGliNjQvZWZpOyBcCglpbnN0YWxsIC1tMDY0NCAtcCB4ZW4u
ZWZpIC9idWlsZC9kaXN0L2luc3RhbGwvdXNyL2xpYjY0L2VmaS94ZW4tNC4yMi11bnN0YWJsZS5l
Zmk7IFwKCWZvciB4IGluIG1hcCBlbGY7IGRvIFwKCQlpZiBbIC1lIHhlbi5lZmkuJHggXTsgdGhl
biBcCgkJCWluc3RhbGwgLW0wNjQ0IC1wIHhlbi5lZmkuJHggL2J1aWxkL2Rpc3QvaW5zdGFsbC91
c3IvbGliL2RlYnVnL3hlbi00LjIyLXVuc3RhYmxlLmVmaS4keDsgXAoJCWZpOyBcCglkb25lOyBc
CglsbiAtc2YgeGVuLTQuMjItdW5zdGFibGUuZWZpIC9idWlsZC9kaXN0L2luc3RhbGwvdXNyL2xp
YjY0L2VmaS94ZW4tNC4yMi5lZmk7IFwKCWxuIC1zZiB4ZW4tNC4yMi11bnN0YWJsZS5lZmkgL2J1
aWxkL2Rpc3QvaW5zdGFsbC91c3IvbGliNjQvZWZpL3hlbi00LmVmaTsgXAoJbG4gLXNmIHhlbi00
LjIyLXVuc3RhYmxlLmVmaSAvYnVpbGQvZGlzdC9pbnN0YWxsL3Vzci9saWI2NC9lZmkveGVuLmVm
aTsgXAoJaWYgWyAtbiAnL2Jvb3QvZWZpJyAtYSAtbiAnJyBdOyB0aGVuIFwKCQkgXAoJCWluc3Rh
bGwgLW0wNjQ0IC1wIHhlbi5lZmkgL2J1aWxkL2Rpc3QvaW5zdGFsbC9ib290L2VmaS9lZmkvL3hl
bi00LjIyLXVuc3RhYmxlLmVmaTsgXAoJZWxpZiBbICIvYnVpbGQvZGlzdC9pbnN0YWxsIiA9ICJk
aXN0L2luc3RhbGwiIF07IHRoZW4gXAoJCWVjaG8gJ0VGSSBpbnN0YWxsYXRpb24gb25seSBwYXJ0
aWFsbHkgZG9uZSAoRUZJX1ZFTkRPUiBub3Qgc2V0KScgPiYyOyBcCglmaTsgXApmaQptYWtlWzFd
OiBMZWF2aW5nIGRpcmVjdG9yeSAnL2J1aWxkL3hlbicK
--0000000000000e2de10645afabdb
Content-Type: text/x-log; charset="US-ASCII"; name="boot.log"
Content-Disposition: attachment; filename="boot.log"
Content-Transfer-Encoding: base64
Content-ID: <f_mj1nms4k1>
X-Attachment-Id: f_mj1nms4k1

KFhFTikgWzAwMDAwMDAwNDNkZTcxMjVdIERvbWFpbiBoZWFwIGluaXRpYWxpc2VkCihYRU4pIFsw
MDAwMDAwMDQzZGU3MjI4XSBCb290aW5nIHVzaW5nIERldmljZSBUcmVlCihYRU4pIFswMDAwMDAw
MDQzZGVkNWY2XSBQbGF0Zm9ybTogR2VuZXJpYyBTeXN0ZW0KKFhFTikgWyAgICAwLjAwMDAxN10g
TG9va2luZyBmb3IgZHR1YXJ0IGF0ICJzZXJpYWwyIiwgb3B0aW9ucyAiIgpYZW4gNC4yMi11bnN0
YWJsZQooWEVOKSBbICAgIDAuMDA5Njg1XSBYZW4gdmVyc2lvbiA0LjIyLXVuc3RhYmxlIChyb290
QCkgKGdjYyAoQWxwaW5lIDEyLjIuMV9naXQyMDIyMDkyNC1yMTApIDEyLjIuMSAyMDIyMDkyNCkg
ZGVidWc9eSBUaHUgRGVjIDExIDE2OjA4OjQxIFVUQyAyMDI1CihYRU4pIFsgICAgMC4wMTA3ODdd
IExhdGVzdCBDaGFuZ2VTZXQ6IFRodSBEZWMgMTEgMTc6NTQ6MjggMjAyNSArMDIwMCBnaXQ6OGQw
NzVmZDY2ZgooWEVOKSBbICAgIDAuMDExNDMyXSBidWlsZC1pZDogMjdkNTEyNDY4MGIxNzQ1N2Rm
NDc0YzE4ZjYyMTcyMzhkYTZlZTRlOAooWEVOKSBbICAgIDAuMDExOTc5XSBDb25zb2xlIG91dHB1
dCBpcyBzeW5jaHJvbm91cy4KKFhFTikgWyAgICAwLjAxMjM3N10gUHJvY2Vzc29yOiAwMDAwMDAw
MDQxMmZkMDUwOiAiQVJNIExpbWl0ZWQiLCB2YXJpYW50OiAweDIsIHBhcnQgMHhkMDUscmV2IDB4
MAooWEVOKSBbICAgIDAuMDEzMTIwXSA2NC1iaXQgRXhlY3V0aW9uOgooWEVOKSBbICAgIDAuMDEz
NDIwXSAgIFByb2Nlc3NvciBGZWF0dXJlczogMDAwMDAwMDAxMTExMjIyMiAwMDAwMDAwMDAwMDAw
MDEwCihYRU4pIFsgICAgMC4wMTQwMDVdICAgICBFeGNlcHRpb24gTGV2ZWxzOiBFTDM6NjQrMzIg
RUwyOjY0KzMyIEVMMTo2NCszMiBFTDA6NjQrMzIKKFhFTikgWyAgICAwLjAxNDYzNV0gICAgIEV4
dGVuc2lvbnM6IEZsb2F0aW5nUG9pbnQgQWR2YW5jZWRTSU1EIEdJQ3YzLVN5c1JlZwooWEVOKSBb
ICAgIDAuMDE1MjIwXSAgIERlYnVnIEZlYXR1cmVzOiAwMDAwMDAwMDEwMzA1NDA4IDAwMDAwMDAw
MDAwMDAwMDAKKFhFTikgWyAgICAwLjAxNTc3NV0gICBBdXhpbGlhcnkgRmVhdHVyZXM6IDAwMDAw
MDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMAooWEVOKSBbICAgIDAuMDE2MzYwXSAgIE1lbW9y
eSBNb2RlbCBGZWF0dXJlczogMDAwMDAwMDAwMDEwMTEyMiAwMDAwMDAwMDEwMjEyMTIyCihYRU4p
IFsgICAgMC4wMTY5NjddICAgSVNBIEZlYXR1cmVzOiAgMDAwMDEwMDAxMDIxMTEyMCAwMDAwMDAw
MDAwMTAwMDAxCihYRU4pIFsgICAgMC4wMTc1MTRdIDMyLWJpdCBFeGVjdXRpb246CihYRU4pIFsg
ICAgMC4wMTc4MTVdICAgUHJvY2Vzc29yIEZlYXR1cmVzOiAwMDAwMDAwMDEwMDAwMTMxOjAwMDAw
MDAwMTAwMTEwMTEKKFhFTikgWyAgICAwLjAxODQwMF0gICAgIEluc3RydWN0aW9uIFNldHM6IEFB
cmNoMzIgQTMyIFRodW1iIFRodW1iLTIgSmF6ZWxsZQooWEVOKSBbICAgIDAuMDE4OTg1XSAgICAg
RXh0ZW5zaW9uczogR2VuZXJpY1RpbWVyIFNlY3VyaXR5CihYRU4pIFsgICAgMC4wMTk0MzVdICAg
RGVidWcgRmVhdHVyZXM6IDAwMDAwMDAwMDQwMTAwODgKKFhFTikgWyAgICAwLjAxOTg2Ml0gICBB
dXhpbGlhcnkgRmVhdHVyZXM6IDAwMDAwMDAwMDAwMDAwMDAKKFhFTikgWyAgICAwLjAyMDMyMF0g
ICBNZW1vcnkgTW9kZWwgRmVhdHVyZXM6IDAwMDAwMDAwMTAyMDExMDUgMDAwMDAwMDA0MDAwMDAw
MAooWEVOKSBbICAgIDAuMDIwOTI3XSAgICAgICAgICAgICAgICAgICAgICAgICAgMDAwMDAwMDAw
MTI2MDAwMCAwMDAwMDAwMDAyMTIyMjExCihYRU4pIFsgICAgMC4wMjE1MzVdICAgSVNBIEZlYXR1
cmVzOiAwMDAwMDAwMDAyMTAxMTEwIDAwMDAwMDAwMTMxMTIxMTEgMDAwMDAwMDAyMTIzMjA0Mgoo
WEVOKSBbICAgIDAuMDIyMjAyXSAgICAgICAgICAgICAgICAgMDAwMDAwMDAwMTExMjEzMSAwMDAw
MDAwMDAwMDExMTQyIDAwMDAwMDAwMDEwMTExMjEKKFhFTikgWyAgICAwLjAyMjg3NF0gVXNpbmcg
U01DIENhbGxpbmcgQ29udmVudGlvbiB2MS41CihYRU4pIFsgICAgMC4wMjMyOTNdIFVzaW5nIFBT
Q0kgdjEuMQooWEVOKSBbICAgIDAuMDIzNTc5XSBTTVA6IEFsbG93aW5nIDIgQ1BVcwooWEVOKSBb
ICAgIDAuMDIzOTAxXSBlbmFibGVkIHdvcmthcm91bmQgZm9yOiBBUk0gZXJyYXR1bSAxNTMwOTIz
CihYRU4pIFsgICAgMC4wMjQ0MTZdIEdlbmVyaWMgVGltZXIgSVJROiBwaHlzPTMwIGh5cD0yNiB2
aXJ0PTI3IEZyZXE6IDI0MDAwIEtIegooWEVOKSBbICAgIDAuMDI1MTUwXSBHSUN2MyBpbml0aWFs
aXphdGlvbjoKKFhFTikgWyAgICAwLjAyNTQ4MF0gICAgICAgZ2ljX2Rpc3RfYWRkcj0weDAwMDAw
MGZlNjAwMDAwCihYRU4pIFsgICAgMC4wMjU5MjJdICAgICAgIGdpY19tYWludGVuYW5jZV9pcnE9
MjUKKFhFTikgWyAgICAwLjAyNjMwNV0gICAgICAgZ2ljX3JkaXN0X3N0cmlkZT0wCihYRU4pIFsg
ICAgMC4wMjY2NThdICAgICAgIGdpY19yZGlzdF9yZWdpb25zPTEKKFhFTikgWyAgICAwLjAyNzAx
N10gICAgICAgcmVkaXN0cmlidXRvciByZWdpb25zOgooWEVOKSBbICAgIDAuMDI3NDAwXSAgICAg
ICAgIC0gcmVnaW9uIDA6IDB4MDAwMDAwZmU2ODAwMDAgLSAweDAwMDAwMGZlNzgwMDAwCihYRU4p
IFsgICAgMC4wMjc5ODVdIEdJQ3YzOiA1MTIgbGluZXMsIChJSUQgMDIwMTc0M2IpLgooWEVOKSBb
ICAgIDAuMDI4NDM1XSBHSUN2MzogQ1BVMDogRm91bmQgcmVkaXN0cmlidXRvciBpbiByZWdpb24g
MCBAMDAwMDBhMDA0MDAxYzAwMAooWEVOKSBbICAgIDAuMDI5MDczXSBYU00gRnJhbWV3b3JrIHYx
LjAuMSBpbml0aWFsaXplZAooWEVOKSBbICAgIDAuMDI5NDg1XSB4c206IFBvbGljeSBsZW4gPSAw
eDAwMDAwMDAwMDAwMTAwMDAgc3RhcnQgYXQgMHgwMDAwMDAwMDA2MDAwMDAwCihYRU4pIFsgICAg
MC4wMzA4MDFdIFVzaW5nIHNjaGVkdWxlcjogU01QIENyZWRpdCBTY2hlZHVsZXIgcmV2MiAoY3Jl
ZGl0MikKKFhFTikgWyAgICAwLjAzMTM2NF0gSW5pdGlhbGl6aW5nIENyZWRpdDIgc2NoZWR1bGVy
CihYRU4pIFsgICAgMC4wMzE3NjFdICBsb2FkX3ByZWNpc2lvbl9zaGlmdDogMTgKKFhFTikgWyAg
ICAwLjAzMjEyMV0gIGxvYWRfd2luZG93X3NoaWZ0OiAzMAooWEVOKSBbICAgIDAuMDMyNDU5XSAg
dW5kZXJsb2FkX2JhbGFuY2VfdG9sZXJhbmNlOiAwCihYRU4pIFsgICAgMC4wMzI4NjRdICBvdmVy
bG9hZF9iYWxhbmNlX3RvbGVyYW5jZTogLTMKKFhFTikgWyAgICAwLjAzMzI2OF0gIHJ1bnF1ZXVl
cyBhcnJhbmdlbWVudDogc29ja2V0CihYRU4pIFsgICAgMC4wMzM2NjZdICBjYXAgZW5mb3JjZW1l
bnQgZ3JhbnVsYXJpdHk6IDEwbXMKKFhFTikgWyAgICAwLjAzNDA5NF0gbG9hZCB0cmFja2luZyB3
aW5kb3cgbGVuZ3RoIDEwNzM3NDE4MjQgbnMKKFhFTikgWyAgICAwLjAzNDcwNF0gQWxsb2NhdGVk
IGNvbnNvbGUgcmluZyBvZiAxNiBLaUIuCihYRU4pIFsgICAgMC4wMzUxMjVdIENQVTA6IEd1ZXN0
IGF0b21pY3Mgd2lsbCB0cnkgNyB0aW1lcyBiZWZvcmUgcGF1c2luZyB0aGUgZG9tYWluCihYRU4p
IFsgICAgMC4wMzU4MTNdIEJyaW5naW5nIHVwIENQVTEKKFhFTikgWyAgICAwLjAzNjIwMF0gR0lD
djM6IENQVTE6IEZvdW5kIHJlZGlzdHJpYnV0b3IgaW4gcmVnaW9uIDAgQDAwMDAwYTAwNDAwM2Mw
MDAKKFhFTikgWyAgICAwLjAzNjgzNl0gQ1BVMTogR3Vlc3QgYXRvbWljcyB3aWxsIHRyeSA4IHRp
bWVzIGJlZm9yZSBwYXVzaW5nIHRoZSBkb21haW4KKFhFTikgWyAgICAwLjAzNzQ3M10gQnJvdWdo
dCB1cCAyIENQVXMKKFhFTikgWyAgICAwLjAzNzc3M10gQ1BVIDEgYm9vdGVkLgooWEVOKSBbICAg
IDAuMDM4MTUxXSBJL08gdmlydHVhbGlzYXRpb24gZGlzYWJsZWQKKFhFTikgWyAgICAwLjAzODUy
NV0gUDJNOiA0MC1iaXQgSVBBIHdpdGggNDAtYml0IFBBIGFuZCAxNi1iaXQgVk1JRAooWEVOKSBb
ICAgIDAuMDM5MDQzXSBQMk06IDMgbGV2ZWxzIHdpdGggb3JkZXItMSByb290LCBWVENSIDB4MDAw
MDAwMDA4MDBhMzU1OAooWEVOKSBbICAgIDAuMDM5NjgzXSBTY2hlZHVsaW5nIGdyYW51bGFyaXR5
OiBjcHUsIDEgQ1BVIHBlciBzY2hlZC1yZXNvdXJjZQooWEVOKSBbICAgIDAuMDQwMjU0XSBJbml0
aWFsaXppbmcgQ3JlZGl0MiBzY2hlZHVsZXIKKFhFTikgWyAgICAwLjA0MDY1Ml0gIGxvYWRfcHJl
Y2lzaW9uX3NoaWZ0OiAxOAooWEVOKSBbICAgIDAuMDQxMDEyXSAgbG9hZF93aW5kb3dfc2hpZnQ6
IDMwCihYRU4pIFsgICAgMC4wNDEzNDldICB1bmRlcmxvYWRfYmFsYW5jZV90b2xlcmFuY2U6IDAK
KFhFTikgWyAgICAwLjA0MTc1NF0gIG92ZXJsb2FkX2JhbGFuY2VfdG9sZXJhbmNlOiAtMwooWEVO
KSBbICAgIDAuMDQyMTU5XSAgcnVucXVldWVzIGFycmFuZ2VtZW50OiBzb2NrZXQKKFhFTikgWyAg
ICAwLjA0MjU1N10gIGNhcCBlbmZvcmNlbWVudCBncmFudWxhcml0eTogMTBtcwooWEVOKSBbICAg
IDAuMDQyOTg0XSBsb2FkIHRyYWNraW5nIHdpbmRvdyBsZW5ndGggMTA3Mzc0MTgyNCBucwooWEVO
KSBbICAgIDAuMDQzNDY3XSBBZGRpbmcgY3B1IDAgdG8gcnVucXVldWUgMAooWEVOKSBbICAgIDAu
MDQzODM0XSAgRmlyc3QgY3B1IG9uIHJ1bnF1ZXVlLCBhY3RpdmF0aW5nCihYRU4pIFsgICAgMC4w
NDQyNjhdIEFkZGluZyBjcHUgMSB0byBydW5xdWV1ZSAwCihYRU4pIFsgICAgMC4wNDQ2NDRdIFVz
aW5nIFNDTUkgd2l0aCBTTUMgSUQ6IDB4ODIwMDAwMTAKKFhFTikgWyAgICAwLjA0NTQ1M10gYWx0
ZXJuYXRpdmVzOiBQYXRjaGluZyB3aXRoIGFsdCB0YWJsZSAwMDAwMGEwMDAwMmVlYWQwIC0+IDAw
MDAwYTAwMDAyZjAwMDAKKFhFTikgWyAgICAwLjA0NjUxN10gU0NNSTogZDAgaW5pdAooWEVOKSBb
ICAgIDAuMDQ2OTExXSAqKiogTE9BRElORyBET01BSU4gMCAqKioKKFhFTikgWyAgICAwLjA0NzI2
NF0gTG9hZGluZyBkMCBrZXJuZWwgZnJvbSBib290IG1vZHVsZSBAIDAwMDAwMDAwMDIwMDAwMDAK
KFhFTikgWyAgICAwLjA0NzgzNF0gTG9hZGluZyByYW1kaXNrIGZyb20gYm9vdCBtb2R1bGUgQCAw
MDAwMDAwMGUyMGY0MDAwCihYRU4pIFsgICAgMC4wNDgzOTVdIEdyYW50IHRhYmxlIHJhbmdlOiAw
eDAwMDAwMDQ5MDAwMDAwLTB4MDAwMDAwNDkwNDAwMDAKKFhFTikgWyAgICAwLjA0ODk1OF0gQWxs
b2NhdGluZyAxOjEgbWFwcGluZ3MgdG90YWxsaW5nIDIwNDhNQiBmb3IgZG9tMDoKKFhFTikgWyAg
ICAwLjUyMzE1MF0gQkFOS1swXSAweDAwMDAwMDYwMDAwMDAwLTB4MDAwMDAwZTAwMDAwMDAgKDIw
NDhNQikKKFhFTikgWyAgICAwLjUzNjY5NF0gQWxsb2NhdGluZyBQUEkgMTYgZm9yIGV2ZW50IGNo
YW5uZWwgaW50ZXJydXB0CihYRU4pIFsgICAgMC41MzczNTVdIGQwOiBleHRlbmRlZCByZWdpb24g
MDogMHgyMDAwMDAtPjB4NDkwMDAwMDAKKFhFTikgWyAgICAwLjUzNzg0OV0gZDA6IGV4dGVuZGVk
IHJlZ2lvbiAxOiAweDQ5MjAwMDAwLT4weDYwMDAwMDAwCihYRU4pIFsgICAgMC41MzgzNjBdIGQw
OiBleHRlbmRlZCByZWdpb24gMjogMHgxMDAwMDAwMDAtPjB4M2ZjMDAwMDAwCihYRU4pIFsgICAg
MC41NDAwMzJdIExvYWRpbmcgekltYWdlIGZyb20gMDAwMDAwMDAwMjAwMDAwMCB0byAwMDAwMDAw
MDYwMDAwMDAwLTAwMDAwMDAwNjQwMDAwMDAKKFhFTikgWyAgICAxLjE3NzYzMl0gTG9hZGluZyBk
MCBpbml0cmQgZnJvbSAwMDAwMDAwMGUyMGY0MDAwIHRvIDB4MDAwMDAwMDA2ODIwMDAwMC0weDAw
MDAwMDAwNzJmZDk5ZTMKKFhFTikgWyAgICAyLjkwMjQ1NV0gTG9hZGluZyBkMCBEVEIgdG8gMHgw
MDAwMDAwMDY4MDAwMDAwLTB4MDAwMDAwMDA2ODAwNWJhNgooWEVOKSBbICAgIDIuOTA0MjA2XSBJ
bml0aWFsIGxvdyBtZW1vcnkgdmlycSB0aHJlc2hvbGQgc2V0IGF0IDB4NDAwMCBwYWdlcy4KKFhF
TikgWyAgICAyLjkwNTA3M10gCihYRU4pIFsgICAgMi45MDUyNDZdICoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKFhFTikgWyAgICAyLjkwNTcxOF0gUGFuaWMgb24gQ1BV
IDA6CihYRU4pIFsgICAgMi45MDYwMDNdIHRlc3Rfc3ltYm9sczogbm9uLXplcm8gb2Zmc2V0ICgw
eDI0KSB1bmV4cGVjdGVkCihYRU4pIFsgICAgMi45MDY1MjhdICoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKFhFTikgWyAgICAyLjkwNzAwMV0gCihYRU4pIFsgICAgMi45
MDcxNzNdIFJlYm9vdCBpbiBmaXZlIHNlY29uZHMuLi4K
--0000000000000e2de10645afabdb--


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 16:41:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 16:41:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184410.1506863 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTjiu-0008F7-Hq; Thu, 11 Dec 2025 16:41:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184410.1506863; Thu, 11 Dec 2025 16:41:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTjiu-0008F0-En; Thu, 11 Dec 2025 16:41:00 +0000
Received: by outflank-mailman (input) for mailman id 1184410;
 Thu, 11 Dec 2025 16:40:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+yrZ=6R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTjit-0008Eu-4L
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 16:40:59 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2a7c206f-d6b0-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 17:40:56 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-42e29739ff1so169652f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 08:40:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8b96c70sm6556469f8f.37.2025.12.11.08.40.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 08:40:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2a7c206f-d6b0-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765471256; x=1766076056; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5KaDoxCSvdmlDJoT8nuQcfuXyWRNtWx1TF5sV5St6yE=;
        b=KiSWNnmQOqRbRIeqvvqQS47IE31iDp8+UcTrt7GEgy7ySzjYM9OVBvdm+3/Ye6kTvo
         XZAn99WPntTiWnpW+oOYbdLDNC+e2MRgYT0NzNYemd/vslT8iXFgZdocScAbAlSpZ2Hf
         8/b9EXGJ1F1RB9VxEB/acf1mYvmekUiTCaoJFRAHbQUSMA173myz0RjHykM3Rxgse1my
         DSBSRfyyE/etooSbSnzd3F8taSG/5Mv0i8s5tXzU34/HHRrBIcKpuPKF3RM9MElDDWN6
         9TGjr1hUmGgXy66MsjiR4c0e+V9069+1wNaFhHyqJ93xST6IAStLjIDa2CwylFUA1wCL
         UHxw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765471256; x=1766076056;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5KaDoxCSvdmlDJoT8nuQcfuXyWRNtWx1TF5sV5St6yE=;
        b=FOdP++NxNE/5bpuuJcDbqC15vYR2raeb90F9tixudhbZ7uRAT7nIJex+L5ohq1rpvg
         bwZ77G6Y2+M3L0BKuyRsYtGWgquICz5lXg/DpIzM00RRW5YDcb/Ho0rG/GCW4I5jDjRr
         zreqlWZUraKCY3IA2TEsFLWpIvVNmryhP+JtyWjhkHRltRB857X8mi9B1/UDPtNrZpDc
         KKX3HmLrBVjw/FYZSa8XMeQyTGwVXvwz0laA2/unrI3EfiPUobwcpHlLR0M62AszzENi
         nH1cLhla76yGiH7ooA3X0KrPFyxXNj129lQFvoVCT4jxdMqcQlIBtSmPIDGNf+0/ajVC
         x6yw==
X-Gm-Message-State: AOJu0Yw0Wv/06cfVEKBMenfXOf05QeIjH6rUK+KJS+oJtVmsybwUeoeB
	+xNMAhe0UiRPYdACaAz3RCWHo8wE+pHfu0YTmyOEHyZ36UPtV1L8TaNW3k8iJNY+lw==
X-Gm-Gg: AY/fxX43axvL/uek0yeekzIrhPPHlrwLERfGYsTjmZ9JuoHEBiBQNVhfKEKD4wyDD4X
	+4MH5Q9Kceckj6+rako3TEN33/t4qIwfSJbtHhlrmEL0ePyLWag3NMJgz6bhvjjvvHt8027Z43v
	k1vhBvpCzPvv/TUaje+Fg5IrXxwZBUfguP/BCcLhnzM3UCzuFk9/JwnEhU4YLFo+gvHoUnmYnQA
	WQtzNiXS2or9o7yvV4b82bIpb2BC306aJ/kHm8gSFr9Sjh4h4IOgG6jP0rnFEzNibnP+3301ApY
	0WbapYmxz4Tpo9MoSDOW+XtQ5sjKXUkxQgJRgSH3+70RhOjQcw88cxRD4vmKKRUat1MnEwqRoXw
	YKp3J8cwcyODcrmuSJAyD7/nuDoLRzDwYR4QcHq46hOP/eFsDyg4wNQ/K/e0RUSWfypgWVftjx5
	sLmOdXcvNTAJWEhpb/i61Ah9OHQH7bvXqAvCZbwgPlrFJ6rQx0KJclO0XV1sGUE5gDxlFIAdmOF
	nA=
X-Google-Smtp-Source: AGHT+IGWlB0L8bWSzwJmNiqJQnOy9IYrPSHX9HEIT09Osb5L4l/pRFz4u7vbODrteyUqZeKcSB4tGQ==
X-Received: by 2002:a05:6000:2211:b0:42b:3108:5671 with SMTP id ffacd0b85a97d-42fab285061mr3013198f8f.29.1765471256148;
        Thu, 11 Dec 2025 08:40:56 -0800 (PST)
Message-ID: <b30ecffe-f696-4777-8e85-2fe30407534d@suse.com>
Date: Thu, 11 Dec 2025 17:40:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Strange symbols_lookup() behaviour in test-symbols on arm64 CI
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <CAGeoDV_YS8hV2+FXVgXxvHLw=MQOAoJZwrP1Ypw8+ZUjKB9GSA@mail.gmail.com>
 <a5361a51-128d-47e0-b5ed-58bfd0d9e8ad@suse.com>
 <CAGeoDV-vfiKECmvWzJ4dnzicXDL7XJDxwEy_Z737k+234Gkzpg@mail.gmail.com>
 <CAGeoDV8VZ1m6CQAkKK-9UDz4npXm2V+Up+BBo=+NyzgLJMW+3g@mail.gmail.com>
 <b4013cae-f27a-4c69-b136-d33db2d22725@suse.com>
 <CAGeoDV91W24tu6MOuM6a9B1jDjJ_8oNdsMYaxNA-ehbxn3xLoA@mail.gmail.com>
 <10aaed6d-6cb1-4bed-aa8c-5f9761f04fde@suse.com>
 <CAGeoDV_bTFNMS_XbEyfB0xNmpi=Yhr5VzszDBPTS5yYtjo1hnQ@mail.gmail.com>
 <e38c24dd-1acc-4d9a-b6f6-5e1964753840@suse.com>
 <CAGeoDV8QDBeqTPv30hcbd2giGRJp_1h+JgeGuTodhP3m8qHpHQ@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAGeoDV8QDBeqTPv30hcbd2giGRJp_1h+JgeGuTodhP3m8qHpHQ@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.12.2025 17:30, Mykola Kvach wrote:
> I have now attached the corresponding build log.

Okay, so indeed not a table size change issue here. Then I fear some instrumenting
will be needed to at least know what exactly is going wrong. Alternatively you could
arrange for the intermediate binaries to not be deleted, and make them available
somehow / somewhere for me to see whether by inspection I can gain some clue.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 16:42:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 16:42:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184417.1506874 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTjkY-0000L5-Rm; Thu, 11 Dec 2025 16:42:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184417.1506874; Thu, 11 Dec 2025 16:42:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTjkY-0000Ky-Ow; Thu, 11 Dec 2025 16:42:42 +0000
Received: by outflank-mailman (input) for mailman id 1184417;
 Thu, 11 Dec 2025 16:42:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Fhd1=6R=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vTjkX-0000Kq-SP
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 16:42:41 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 67c98aee-d6b0-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 17:42:39 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-5943b62c47dso315915e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 08:42:39 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-598f2f37b02sm996042e87.20.2025.12.11.08.42.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Dec 2025 08:42:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 67c98aee-d6b0-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765471359; x=1766076159; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:subject:from:user-agent:mime-version:date:message-id:from:to
         :cc:subject:date:message-id:reply-to;
        bh=R3yR7kNyuezzbiEULFKfXlBwf+Npdb5YvHWOzk+SdQI=;
        b=Co9JItMIydyNG/JZDobZuWr/kxlGBOIm1uSOlnDuEne2CrC23gdLJRz7Ogp6JWcNqz
         VPr0vkoM3GMOFI5xyVLtDO3QhPgueEzLxyylfloAMavEcHyTJSL3A5tceU/QU/O0zf3P
         wrKxXBdgwqK6npsMN4Fthcvzj0rsgs2KUm7zFZpQp9pO46/qg++irUqRmcJ46WUZ30XY
         x1YjTg6/e7Al3igc4cHwg/jtlOX1wdQd0MGmbLK0YIylza4jhr2KM1d6TahSViEN1qxp
         rdoDcO9dlyzGSA5HjQDyY4ybpq3+IFNQ+3e8RxDExOC7SEbRJHzM3LkW8+2cdztSk4it
         u1fA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765471359; x=1766076159;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:subject:from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=R3yR7kNyuezzbiEULFKfXlBwf+Npdb5YvHWOzk+SdQI=;
        b=gAGOC+skh2uoyQosfqMm/b8Xi25XZQxb6+j/LnHatkTBTSvDfzA+y2tQhzrJsl2PAw
         hV+PdwBbWkAH20FRheUWJigJtgn35fqo66fZ9LXUz51qIeQFJEwF7eRq78Uu5hJd/kYJ
         3qVav7aOCPSSexIVVtY7UY1/mCD9D4WfZtvyKu1gcDXTlQ5LNr4a5R7FZqYWKCELSMrb
         jCymGf8RtaQXy+hWxLo6Haw0zGfN8gcecWgyTRvRXhea9MU1QvIZ+kbv2moG4qLzjwU9
         nOadFnvdnGyDIC2GX7yazNUKPZ7KEtdWQSA1X8r/n+Hs7KLbbR+KETdQh8Z8PawVtmqJ
         FdBQ==
X-Forwarded-Encrypted: i=1; AJvYcCWI5esb4AIij8c5YL5Gt4eP8d0fq/AQkcLmzWbN67Ta2d3H0cRDSWHtXGYwZHygaCAi2bsOu16H+JE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyAtfmZH6nXa01T9nQe7TKo6mdcqNCOLVG4HuSnxODNQUSyIZHx
	xxh4R3U4Cw0aNkgbi14oVA8vf92Rl6lZV9aKyJq7yeTg2RY634Yc/o0X
X-Gm-Gg: AY/fxX7A84MIh+J7M8pqraY0NQ7QG6TSsb7zvK/NsQeegnAn90vPfEJiJB/dHgXQTrw
	0Ki0cMVsPPQoF7k7aNGQMPu26K7ByovDjNSUIMJJfzU2yeRuLGyajLI8RGqrQmrFQEFpBLwIq7S
	4zzY7bVlYpXTofT0y1ejno55hE8UYMZejpaKG3YEaHO8c4nkDKxXIDyXq6SGgZwLPuXEWyuLwXo
	LqyD6lLxAecpIz07NTWGe985WFfBOfwYTYJ7wVvvWz9lEFWc3fZ79BN2qdkYW3x+4Mx4IC8SvbL
	x4D5+1UQpqOiTpJpCigEfIimY1PATU1JcoKc4d5ej5r9gszPNgtF6hJlYRczFfhWq0EeF0Ib2O+
	ucJE8RqbcKcickhy0/n+lUUMW5iiXyAfGe4A70DI6As+iYS2uns6+effQQF1FPm+zBAgW/xnI3+
	ifZKbngTao8n4GGGQswG9zrfXEXOjYS4/1b25WZRqjWcfx16OUOtXDpRhii+rc
X-Google-Smtp-Source: AGHT+IFMYIqs7RAPLPzyaYJ/Lzz1tnEHQ2NJQWeroQXEt8DlcOf2gS4JWWmW6/4aWIRIFOyVLJhB0Q==
X-Received: by 2002:a05:6512:e9d:b0:598:ef42:d59b with SMTP id 2adb3069b0e04-598ef42d9e6mr2481225e87.4.1765471358472;
        Thu, 11 Dec 2025 08:42:38 -0800 (PST)
Message-ID: <45231d95-1745-44a6-b364-e97f9f501e10@gmail.com>
Date: Thu, 11 Dec 2025 17:42:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v6 19/19] xen/riscv: introduce metadata table to store P2M
 type
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <2c41da84b3e7fb0f6e6c3c856bff6edaf9e1d505.1763986955.git.oleksii.kurochko@gmail.com>
 <889df78f-7196-4b44-9558-fb83f432e18a@suse.com>
 <36be69fb-9362-43a4-8308-1e62be60d27f@gmail.com>
 <621089a4-d946-46ce-a3cf-4d0938d4a39a@suse.com>
 <db24c624-0432-48ec-aecc-3efaa4973303@gmail.com>
 <6c78a029-7437-4256-afca-c5d39fbd3f8b@suse.com>
Content-Language: en-US
In-Reply-To: <6c78a029-7437-4256-afca-c5d39fbd3f8b@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/11/25 10:39 AM, Jan Beulich wrote:
> On 10.12.2025 13:44, Oleksii Kurochko wrote:
>> On 12/10/25 8:06 AM, Jan Beulich wrote:
>>> On 09.12.2025 18:09, Oleksii Kurochko wrote:
>>>> On 12/9/25 2:47 PM, Jan Beulich wrote:
>>>>> On 24.11.2025 13:33, Oleksii Kurochko wrote:
>>>>>> +            *md_pg = p2m_alloc_page(p2m);
>>>>>> +            if ( !*md_pg )
>>>>>> +            {
>>>>>> +                printk("%pd: can't allocate metadata page\n", p2m->domain);
>>>>>> +                domain_crash(p2m->domain);
>>>>>> +
>>>>>> +                return;
>>>>>> +            }
>>>>>> +        }
>>>>>> +    }
>>>>>> +
>>>>>> +    if ( *md_pg )
>>>>>> +        metadata = __map_domain_page(*md_pg);
>>>>>> +
>>>>>> +    if ( t >= p2m_first_external )
>>>>>> +    {
>>>>>> +        metadata[ctx->index].type = t;
>>>>>> +
>>>>>> +        t = p2m_ext_storage;
>>>>>> +    }
>>>>>> +    else if ( metadata )
>>>>>> +        metadata[ctx->index].type = p2m_invalid;
>>>>>> +
>>>>>> +    pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>>>>>> +
>>>>>> +    unmap_domain_page(metadata);
>>>>>>     }
>>>>> Just to mention (towards future work): Once a metadata page goes back to be
>>>>> entirely zero-filled, it could as well be hooked off and returned to the pool.
>>>>> Not doing so may mean detaining an unused page indefinitely.
>>>> Won’t that already happen when p2m_free_table() is called?
>>> Well, that's when both page table and metadata table are freed. But what if a
>>> leaf page table is moving back to holding all p2m_ram_rw mappings? Then the
>>> metadata page is unused, but will remain allocated.
>> Good point...
>>
>> This could be a rather expensive operation, since in the code:
>>     +    else if ( metadata )
>>     +        metadata[ctx->index].type = p2m_invalid;
>> we would have to check all other metadata entries to determine whether they are
>> (p2m_invalid) or not, and return the page to the pool.
>>
>> It would be nice to have something like metadata.used_entries_num, but the entire
>> page is used for type entries.
>> As an option, we could reserve 8 bits to store a counter of the number of used
>> entries in the metadata page, and then use metadata[0].used_entries_num to check
>> whether it is zero. If it is zero, we could simply return the metadata page to the
>> pool in the “else if (metadata)” case mentioned above.
>>
>> How bad is this idea? Any better suggestions?
> First, as said in my initial reply: This may not need taking care of right away.
> It will need keeping in mind, of course.

I am thinking if it won't be too intrusive, I think that I am okay to introduce that
now.

>
> As to suggestions - hardly any of the fields in struct page_info for the page
> can be used when the page is a metadata one. Simply record the count there?

I suppose that|union u| could be used.
The only thing that confuses me is the shadow paging implementation on x86.
In|struct page_info|, it has the following:
     /* Context-dependent fields follow... */
     union {

         /* Page is in use: ((count_info & PGC_count_mask) != 0). */
         struct {
             /* Type reference count and various PGT_xxx flags and fields. */
             unsigned long type_info;
         } inuse;

         /* Page is in use as a shadow: count_info == 0. */
         struct {
	   ....
         } sh;

         /* Page is on a free list: ((count_info & PGC_count_mask) == 0). */
         union {

So it seems that something in the shadow code must set|count_info| to zero for
shadow pages. But I cannot find where this happens. I would expect it to be done
in|shadow_alloc()|, when the page is taken from the free list. However, pages
from the free list donot have|count_info == 0| since|alloc_heap_pages() |initializes|count_info|.
What guarantees that|count_info| will be zero for shadow tables?

Interestingly, in the shadow p2m page free code, there is logic that resets
|count_info| to zero:
{
     struct domain *owner = page_get_owner(pg);

     /* Should still have no owner and count zero. */
     if ( owner || (pg->count_info & PGC_count_mask) )
     {
         printk(XENLOG_ERR
                "d%d: Odd p2m page %"PRI_mfn" d=%d c=%lx t=%"PRtype_info"\n",
                d->domain_id, mfn_x(page_to_mfn(pg)),
                owner ? owner->domain_id : DOMID_INVALID,
                pg->count_info, pg->u.inuse.type_info);
         pg->count_info &= ~PGC_count_mask;
         page_set_owner(pg, NULL);
     }
...

And another question: since|u.sh.*| is updated, it effectively overwrites
|u.inuse.type_info|. But|u.inuse.type_info| is used by|free_domheap_pages()|,
which is called from|shadow_free()|:
void free_domheap_pages(struct page_info *pg, unsigned int order)
{
...
                 if ( pg[i].u.inuse.type_info & PGT_count_mask )
                 {
                     printk(XENLOG_ERR
                            "pg[%u] MFN %"PRI_mfn" c=%#lx o=%u v=%#lx t=%#x\n",
                            i, mfn_x(page_to_mfn(pg + i)),
                            pg[i].count_info, pg[i].v.free.order,
                            pg[i].u.free.val, pg[i].tlbflush_timestamp);
                     BUG();
                 }
...

Why is it acceptable that|u.inuse.type_info| will likely not be zero, since
|u.sh.*| modifies the same union field, at least during shadow page allocation?



> Finally, as to "rather expensive": Scanning a 4k page to hold all zeroes can't
> be all that expensive? In any event that expensiveness needs weighing carefully
> against the risk of getting the counter maintenance wrong.

It depends on how often|p2m_set_type()| will be called.
In the worst case, it will require a loop that performs up to 512 iterations
to scan a 4 KB page (512 * sizeof(struct mt_d) = 4096), which I think could be
expensive if|p2m_set_type()| is invoked frequently.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 16:59:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 16:59:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184438.1506884 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTk0G-0002gF-4U; Thu, 11 Dec 2025 16:58:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184438.1506884; Thu, 11 Dec 2025 16:58:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTk0G-0002g8-1H; Thu, 11 Dec 2025 16:58:56 +0000
Received: by outflank-mailman (input) for mailman id 1184438;
 Thu, 11 Dec 2025 16:58:55 +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
 <SRS0=JdCA=6R=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vTk0F-0002g1-2g
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 16:58:55 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aabe4aa8-d6b2-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 17:58:53 +0100 (CET)
Received: from BYAPR06CA0058.namprd06.prod.outlook.com (2603:10b6:a03:14b::35)
 by CH3PR12MB9121.namprd12.prod.outlook.com (2603:10b6:610:1a1::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.8; Thu, 11 Dec
 2025 16:58:41 +0000
Received: from SJ1PEPF000026C5.namprd04.prod.outlook.com
 (2603:10b6:a03:14b:cafe::ce) by BYAPR06CA0058.outlook.office365.com
 (2603:10b6:a03:14b::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.7 via Frontend Transport; Thu,
 11 Dec 2025 16:58:37 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF000026C5.mail.protection.outlook.com (10.167.244.102) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Thu, 11 Dec 2025 16:58:38 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 11 Dec
 2025 10:58:36 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aabe4aa8-d6b2-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jnVTBTHV4tLYUa0hbc5OqZDb8giq4bG4OXwq7r30ManRqwN8LDEI+7TPvVghCf5fKYDZ0uTE62oZtSh1sTg8UsXqw9FUW7Tz1SSR8ocFanqW0kKLghmXSbO2bokUKl5d0teMrOO7vBtlEg5vAEekjKVIyE9a74WK5EZ83mj9uq2bY6Pq8+37nm+UYXZWQfSoPIiKuhAnbpWk6YSjqvmfo500y0OrlPDGkVSecB6z3EFZrDNaNEOAxrzk7kVlDDW7zH8+2EwsNAAirZTlBymIZnIN0iTYL4XJpX6ZFVOxJsGy+zveX+c9pdnPJKGRHg991o/oi+rYUQqrth9hzrEJQQ==
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=inpOtOOOx85Hkfv3AGqVmFHAJKG7KeiIe+lWCogNBos=;
 b=bKb3pK0ycDefy+IIUGBwhhvh1KuEOPaalXUQ2WpQzLTNvHRJlpxczG7Cvm1UdAIAB773gFegCkqyu0DPLTym25yaVYxUzBjrZjUn9g+439RXDJFxOPvgZXefnj9zTyPp4O/gDWxtREBJwpn2AEfF3PLEyRtc05B0MzWHvdfGsdjmOiLMOnHTv2zPR9Ds1fnTjaOyNo4WnIjoA8Z/f+FAJiO59ySIGWaqUs1g5Pxv4whzfrhnG7WSc1YYFylQDsnVRT1QiL0gW318GxwJ27DF5FaKeUa4U1codDeWdaN506ez+mWsDYbwvqw7YmW7ibxz04Jqavnwzk15itU7VCF/jg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=inpOtOOOx85Hkfv3AGqVmFHAJKG7KeiIe+lWCogNBos=;
 b=FkVTr4GG+BZKQbIC9LYtrSoCEfyp8c9MqL7PeDmA4mD12tKbs0p3pOphRJpP9NGmp8XTucu6w4v63tW9uN5w3pOE+6iBCiTFYOBLOqP70jntKay3Pd1ra91INWWGLAU7XoBgA11zkWw8LdElsZE2pgmxjBKnudADBj1m6wCo/XQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 11 Dec 2025 17:58:34 +0100
Message-ID: <DEVJPCRTRA9Z.2JNMRFAN47BU8@amd.com>
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>
CC: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	<xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH 09/11] x86: Migrate spec_ctrl vendor checks to
 x86_vendor_is()
X-Mailer: aerc 0.20.1
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-10-alejandro.garciavallejo@amd.com>
 <73146271-c849-4d16-8eb8-80e7d59f42f2@suse.com>
 <DEVBH18RU4WL.2GFVGYVC8SWAC@amd.com>
 <15659af8-4604-455a-b7de-91c4df213ab5@citrix.com>
In-Reply-To: <15659af8-4604-455a-b7de-91c4df213ab5@citrix.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000026C5:EE_|CH3PR12MB9121:EE_
X-MS-Office365-Filtering-Correlation-Id: cae362a6-6ffa-436b-fcc2-08de38d687d2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eitORUp6KzFLT3hwdG5nQkw4TXgxbjhiUm4rRGVLTU5rYXYrbTR4dXZxZ3dt?=
 =?utf-8?B?eFozNnc4RXlKZk96YWN3eUl0TEVFbU1DcDJ3ckM0UDhwelg1ZzFDMloxZjJW?=
 =?utf-8?B?WHY5Zm85TmxPMHhxbUgrMTN2U0lKL3BGRktveHVSR3IrNlVXcGpRMFdDSHNN?=
 =?utf-8?B?MXFmT3MrTytFRjUzbGYva3MrM29adkJWMzVDWGxpT2l1OStTYlR5RVpoZ21u?=
 =?utf-8?B?c3d0WlNVWXlTVWNka1VGNlVTNEZHN3E3WmV0UGJHaUFtNVJEcHJHZEhNVEdH?=
 =?utf-8?B?NllCbVBoZzVkYVAyU1BpVXZSUTN1Vm96bXVTanNLVXlTWlFFUWtLaWtlcm1I?=
 =?utf-8?B?TWRxR1pkMFppVlpZaGY2SzJ4ZHd3UGdwUzA5NUhSOUJXR2dsYlkvcVVJMFlI?=
 =?utf-8?B?OXVISUdWWkNqaXBXRmFocHpLZTNtNkVDcDBFcFhMdEZFRlRwT295R3hPcUxQ?=
 =?utf-8?B?SnRMeDJZRkh4T3h4OFlWcEtyY3NZMGpzWEp3WEhjaGY4Yno4TklFeWh5a1lU?=
 =?utf-8?B?YzBNMmxZK2MwVnVtcUh2TkFwTmFObFZXVU9aRnY4RlpodkxFdHBPQW50K3pO?=
 =?utf-8?B?THlkazdkTHQyYWErZkNpeEl2dkU1TWI1UXVieDE5cFNSVGtNQWhPbk1RWkty?=
 =?utf-8?B?UjdSeHM5SldqN293SkFEbHlUV1huSDdoUVpvSG1kQ0Z2bmRCN0JUMTNTbHU0?=
 =?utf-8?B?TllVY2lFOUdMcVpCNUY4V09tWmlmNHJ5a3Vlc1IrNmF6NC9FNkJ3Y2c5eEhw?=
 =?utf-8?B?eFdPRWdOazMveE95T21nWHUxSTd4Tk1KWUtOWE9CdVl3ZmVhOGxTd3BySDk5?=
 =?utf-8?B?NmdEemZaRWRLUndRQ1RhQThrQmVsMVYrZFVuWjJLWG9NTkIvd2p0ZEpzR2Zv?=
 =?utf-8?B?cVJuM0pnVXlvUE1yWkRCYjkzaVZYK1E5azhteHo5ZW9JTUZscUoxckp6U282?=
 =?utf-8?B?a2VmeFRmL2dwSU9meENObFE3Q1Fpd0VVVUU0M05oRFc5bGcvWkwxSDh5Zlg5?=
 =?utf-8?B?ZksvcDlFR2JzbnFUdGFIVktHK1hkQ25oQmVQWnNpb3g3cUNpUmVyVDBoVFN2?=
 =?utf-8?B?QXBzMlhwY1ZoWDM4Q3l0SDl2OXEwSGJSckdWYzhtUWNZVjZPbExaVlFCeVR5?=
 =?utf-8?B?RE03SktCYjV2VSs0ZThxc0V6bWFCcm1EZHdXSCtEMnR2YU05QkYrNHRtQ3F3?=
 =?utf-8?B?ZjAwOTYzSmg5UExJeDRGK2R4aTBUcFZCQi9kb254cStKMFJqazR2aE5CY2tq?=
 =?utf-8?B?WnVNY3NJanNsRnhMK0VVc2pQL2F2WkNBV2RsMVRhN3NyQi9jWTRYeXQwRitj?=
 =?utf-8?B?elh6dVRzZTlXWHJvdGpIYVkraktoak5kdU9BbHJJUlU0OFVOekJkMk56ZWJ2?=
 =?utf-8?B?MDJvOFZVQTlTTHVaUEZrc1NHaUNMYVpMRjlSeUhMcXI1YW1ib0VZbVNCUG0z?=
 =?utf-8?B?SGJ3bVQrdDQyZkdpbGUzYyswNTRtYkdrcmNkcG1wd2hEMCtDYy9lV29wWDl0?=
 =?utf-8?B?L2hYUXNIZU5QN0tQeFVyNDJZanVPUjB6TytsbXF3ekxHQnZuL0djNk13QzV5?=
 =?utf-8?B?YTg4M3BVUFRsOStla1h2RFVobmZWVk02MDVpeDVhTVh5TkNwUlJUbHRlSkZV?=
 =?utf-8?B?Slg0RmplL2xOVnBNMzlUVEp2UzhCQUhQODNlMEduUGcrc1QwNmxXdkE4U0Fq?=
 =?utf-8?B?UUhxME9wS1Nzenk5NmlITXpRNXU2WXFyZ3VBbUZEdG9oTHFMZkUzSS9PVzNR?=
 =?utf-8?B?ZVhJYTVuSWZaZDBpbFl2RHhCN1ZNa1VTTENTWlliM0QxTktXZUZ4OVR0ZjQy?=
 =?utf-8?B?UkRZZjV1K1hvWkJzYXcvZzlsMU4yYmpBZkxRZmhnWDcrZ2g3M2hZQWVwKzBF?=
 =?utf-8?B?Smk3L3BONTNzaVN1RDh1enVrZzdKcitxdWdQSTBFRGp2dm1Ba3F6NTk1dFFV?=
 =?utf-8?B?c1ZFQU5SNmFvdHFqREdVSGZDay9TT1p6TGVScStmWXd2QVA5MUFGODFVdVND?=
 =?utf-8?B?Zzg4cVI3NUhFUUdLYzNMWm5rYm56RnE0NUwzZFF6Q1U4UDh1OUE2Sk9EQmNq?=
 =?utf-8?B?YVQwallKMWNuUFh6VjhPTzVoY28rR1dMS01IaVhkVkZseS9hdkJ3c2RGVXM4?=
 =?utf-8?Q?/ZXA=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2025 16:58:38.4766
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cae362a6-6ffa-436b-fcc2-08de38d687d2
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000026C5.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9121

On Thu Dec 11, 2025 at 4:38 PM CET, Andrew Cooper wrote:
> On 11/12/2025 10:31 am, Alejandro Vallejo wrote:
>> Seeing how both you and Andrew seem onboard with dropping cross-vendor s=
upport
>
> I found another cross-vendor dropping which you'll want to look into.
>
> struct svm_vcpu contains three guest_sysenter_* MSRs.
>
> In AMD CPUs, these MSRs only have 32 bits of storage, with the upper
> halfs write-discard.=C2=A0 They are switched via VMLOAD/VMSAVE.
>
> However, in the cross-vendor case, the upper halves are needed for 64bit
> kernels setting up SYSENTER support.=C2=A0 Therefore, they're uncondition=
ally
> intercepted so we can avoid losing the upper half.
>
> By dropping cross-vendor support, we can get rid of these fields, allow
> the guest unconditional access, and simply the MSR intercept logic a litt=
le.
>
> ~Andrew

Sounds straightforward, I'll add it to the pile.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 17:59:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 17:59:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184465.1506894 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTkws-0002Nu-BW; Thu, 11 Dec 2025 17:59:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184465.1506894; Thu, 11 Dec 2025 17:59:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTkws-0002Nn-8d; Thu, 11 Dec 2025 17:59:30 +0000
Received: by outflank-mailman (input) for mailman id 1184465;
 Thu, 11 Dec 2025 17:59:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k3Jk=6R=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vTkwr-0002Nh-FI
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 17:59:29 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2006269c-d6bb-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 18:59:24 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 9AD8A6013A;
 Thu, 11 Dec 2025 17:59:22 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 25B01C4CEF7;
 Thu, 11 Dec 2025 17:59:21 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2006269c-d6bb-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765475962;
	bh=GaZVD9aPebWI0vMqK+aW1ruyJzrJ42dgK0w/aWYnols=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=kLHRuWjsWTd2PYDi8DZwgijvXU7gNR8iZYvjCCEQ44YbAIfYJgx34w4g2kTAk+hXH
	 7f8iR11YLbq7bYsnZZ0D4jYrj8Xt428immNV5nGwbjGUKQSpF4tIOheQ0rAO0zuoRK
	 hi7qpDmV36MaTcsPfIEtsiwaYVbL8LSbKb5eIDAdGX2OKWQDsTbSb9huEvq3nzraNQ
	 CASWT8mtCga4AO1T0Bfq+eTWHGSSXltFkM53f17ij7cMg0mqlhVqspQxugPqEQkLZI
	 Z5eipNmfx2vyGMIZef5YU3xA21vEvCEOpgUf5p85rlEkPFJLrmIDDo1t7nN/KsF+Op
	 hRriVdWcP4nDw==
Date: Thu, 11 Dec 2025 09:59:19 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Andrew Cooper <andrew.cooper3@citrix.com>
cc: Xen-devel <xen-devel@lists.xenproject.org>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    "consulting @ bugseng . com" <consulting@bugseng.com>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: Re: [PATCH] CI/eclair: Rename the eclair-* jobs to *-all and *-amd
In-Reply-To: <20251211161339.2296433-1-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2512110959140.17367@ubuntu-linux-20-04-desktop>
References: <20251211161339.2296433-1-andrew.cooper3@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-2087775641-1765475886=:17367"
Content-ID: <alpine.DEB.2.22.394.2512110958100.17367@ubuntu-linux-20-04-desktop>

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-2087775641-1765475886=:17367
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2512110958101.17367@ubuntu-linux-20-04-desktop>

On Thu, 11 Dec 2025, Andrew Cooper wrote:
> The *-safety jobs are AMD's configuration specifically, and other
> configurations will likely be different.
> 
> Give the un-suffixed job an *-all suffix to make it clearer what they're
> doing.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

This is straightforward:

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

I like this and I think we should also rename eclair-x86_64:on-schedule
and eclair-ARM64:on-schedule for extra clarity. For instance:

eclair-x86_64-allrules:on-schedule
eclair-ARM64-allrules:on-schedule

It could be in this patch but also in a different patch.


> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Jan Beulich <jbeulich@suse.com>
> CC: Julien Grall <julien@xen.org>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: consulting@bugseng.com <consulting@bugseng.com>
> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
>  automation/gitlab-ci/analyze.yaml | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/automation/gitlab-ci/analyze.yaml b/automation/gitlab-ci/analyze.yaml
> index 20cabbe5f70c..37a941bebbae 100644
> --- a/automation/gitlab-ci/analyze.yaml
> +++ b/automation/gitlab-ci/analyze.yaml
> @@ -39,7 +39,7 @@
>        allow_failure: true
>      - !reference [.eclair-analysis, rules]
>  
> -eclair-x86_64:
> +eclair-x86_64-all:
>    extends: .eclair-analysis:triggered
>    variables:
>      LOGFILE: "eclair-x86_64.log"
> @@ -58,7 +58,7 @@ eclair-x86_64-testing:
>        when: always
>      - !reference [.eclair-analysis:triggered, rules]
>  
> -eclair-x86_64-safety:
> +eclair-x86_64-amd:
>    extends: eclair-x86_64
>    tags:
>      - eclair-analysis-safety
> @@ -99,7 +99,7 @@ eclair-x86_64-safety:
>        when: always
>      - !reference [.eclair-analysis:triggered, rules]
>  
> -eclair-ARM64:
> +eclair-ARM64-all:
>    extends: .eclair-analysis:triggered
>    variables:
>      LOGFILE: "eclair-ARM64.log"
> @@ -118,7 +118,7 @@ eclair-ARM64-testing:
>        when: always
>      - !reference [.eclair-analysis:triggered, rules]
>  
> -eclair-ARM64-safety:
> +eclair-ARM64-amd:
>    extends: eclair-ARM64
>    tags:
>      - eclair-analysis-safety
> 
> base-commit: abac3b76d20ebecb339cb41bb8982796bf1ce276
> -- 
> 2.39.5
> 
--8323329-2087775641-1765475886=:17367--


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 18:00:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 18:00:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184481.1506904 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTkyE-0003y6-Nh; Thu, 11 Dec 2025 18:00:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184481.1506904; Thu, 11 Dec 2025 18:00:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTkyE-0003xx-Kj; Thu, 11 Dec 2025 18:00:54 +0000
Received: by outflank-mailman (input) for mailman id 1184481;
 Thu, 11 Dec 2025 18:00:53 +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
 <SRS0=cEbC=6R=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vTkyD-0002cg-0T
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 18:00:53 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 54f5c03e-d6bb-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 19:00:52 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA2PR03MB5851.namprd03.prod.outlook.com (2603:10b6:806:11b::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.15; Thu, 11 Dec
 2025 18:00:49 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Thu, 11 Dec 2025
 18:00:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54f5c03e-d6bb-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uTmbNME3kGphzMRd5l3dX9zA5avwkCiMIx6v1DEkKg77Qaarbys3YOOdRq669tflc0WqWrIF5cgQYi66QPAsF5fTu7WW6UELsYL1szg2hbOiRj2vdovhN+g4oyOK/TRTOWG1RGlxkoITRX60UkLF+ZgAWWMGnNf0+5vJv3rUJuFNj/JgAE6RlQ7Z//ksH6dVF3oBITRMnewK6l8NgB6Q1IlqN4EWEvB0k03z3th/sNSBL54EJnxL0C55q5vaL3k0BZmv8fdna5PfALkg5iT1mR6cqgRZH1CpfiEZ5J+b+N/jGGA9U8Tj/uFxISyz4V+cjxFbUtYGzC2uwwMHx3fLfA==
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=bO9ZNoyg/dO1UIM0jL1mnfdLsA+af6I1/SfRN24ERFE=;
 b=nWFQUWcLnjFNvYm6FPw1eZ0zVaa85cBGAzoRzi2TsCz4TUwg4grNhVh8m5rbjuamHfJWqPxxNyilvf5eaSaIY51QNHf4bwJUJEnaUmuSQtOWh4Mh0q+iOvF1UnmhcxfysBGBuWXZmhdKx3a+f/RwXBSPrBWYeQhmN5/MAHMejvlly5Y+NbmfT7+hOnKOlzCxLPPsl/EAMjKHL8+yFihZDiA8Lc16xRB08Dabjx0O6SGXLWluUQU3kihN72JMNKZIb1+ysrKFzzEIuDFVA3Q6MMrIMvnJmBGtQRN//01PxCcb3jRRRhvBdM8FvL93/dhW68pKR/f3IKhMtolMH6Et0Q==
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=bO9ZNoyg/dO1UIM0jL1mnfdLsA+af6I1/SfRN24ERFE=;
 b=zcy69nO/+f9zbjdn0mCtBFEPBrJ88/YsomAVSll6f00459O0eTGp2dfFA7s3eSMsynM2Kx0enyRglzfhgM+Kx68KqpuqafA/44rjUaSsSu1BuRvFj1y+q8kLCLVHcJhL1G6zt+67PI0aAm/G/u4UUtOXJS6KyNNC+ZJQoo53cZk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <03bbb773-cc02-408f-a01d-bb7f2447e57b@citrix.com>
Date: Thu, 11 Dec 2025 18:00:45 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "consulting @ bugseng . com"
 <consulting@bugseng.com>, Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: Re: [PATCH] CI/eclair: Rename the eclair-* jobs to *-all and *-amd
To: Stefano Stabellini <sstabellini@kernel.org>
References: <20251211161339.2296433-1-andrew.cooper3@citrix.com>
 <alpine.DEB.2.22.394.2512110959140.17367@ubuntu-linux-20-04-desktop>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <alpine.DEB.2.22.394.2512110959140.17367@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0667.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:316::20) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA2PR03MB5851:EE_
X-MS-Office365-Filtering-Correlation-Id: b475612e-7a9b-43f6-c719-08de38df371b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Ty8xeEpNcmpvc0VQVzhnT2ZRc1ZqOWRndi9DWFFtWFJXZVlaeXJlaDRCZ1ow?=
 =?utf-8?B?T2Voa1B0ZFE1S29uSCtUY1B4Um1Rd0Q3RC9RczNMMm5UUCtnaFlpUzdGMlRs?=
 =?utf-8?B?dmhWVVRpa2VSYytHTk1aRmdhLzlYVTQ5V2xzZjVpb25xR1FoYURiUzBLRzBo?=
 =?utf-8?B?bHB0UmtYOGtIS2V2SWFHMXR6RzkwMEJqdUpSYXVEY1M5aG1kQThNa0pMNlhS?=
 =?utf-8?B?UXliTnppdXBsekF1TzBYRWdQNHlDdWdKL2hYb29mUEJBaVVsY0wzVGtiOUVG?=
 =?utf-8?B?MjNYeTFZUHkwRkpzRkRvRHZJTUpYd21mUSs0YUt2SXZSR3doNVNzUXFLUUZl?=
 =?utf-8?B?S0puS0N0TjdkTU16a0o1Qm5id3JNZVhwQ3NyY2FUdG5FTk5WK2JYUTNTK1hY?=
 =?utf-8?B?TDltSUhiLzRCdytjVDJNeDAvb0pKVldPSEp0SVpST3c4YXNYUW55aXlxOWtN?=
 =?utf-8?B?RWRvM1Y3TEdxQ2FIc1NsZEp2SVFPSmU0a2oycXNqRFY5akV5UEllbWc0Qjlp?=
 =?utf-8?B?N2Z5V0lVckdUYkNKQWFnc0VtMW56aGR3UGxBTXNZRnNoQ3h0WUU3ZHBzMVBO?=
 =?utf-8?B?bGJJUElyVE9NNlVzNkNoK0ZPcTlKSWlGV0luRUdyTW9SNndkTDBrczF3MmJQ?=
 =?utf-8?B?TlFVd3J4SDJLaWJMeXVXTjZWV2c0Mm9ZeUY5YXd0akZ4ZUo1UzNCUGR6SXRJ?=
 =?utf-8?B?OUJmRkpydmlFVlhJLzJMekRDSlErbnd1V3hyakQ3cUYrdVVtS1dIY0NkMi93?=
 =?utf-8?B?SjNya1ZjdmRHT2dDV2RuVmJ6Uncyd2xHcThpM080MFhqRisvSkVFdmVSYTJJ?=
 =?utf-8?B?N2IvMnBmK0dNUkpLMEZaa0VIZ2NsUys4VWltQjFsNDVuN09tMkNOOCtudUNs?=
 =?utf-8?B?aDYrdmlxc3BZR2J3KzliOU5Wb0JmMVQwYnF6aTN5Smo4SVE3bVVaOWU0RXE2?=
 =?utf-8?B?cEFudkJwdXJlcVozUkRESENHMHFBS1pCSG5EV3YvbEpWMzE4SFh5WndtMlBk?=
 =?utf-8?B?Ynd1MWhFTy9palloNkxLL2hvVXRiMmdkV3UzelZFMHl3ZHF0SDlJdFdSalc5?=
 =?utf-8?B?aUdxeTFYMzd5T2VQKzFTYWlLUmxmSiswWVRjc0p4MGRzNlBSMndhb3UxSk1F?=
 =?utf-8?B?L0lwY0cwZ01FNHZ1UFByL2NlakhUcGFBUi8rczMzOW9RWHdobGQ5RVdBY1U4?=
 =?utf-8?B?RS9aR3krRXVGUEkwc1c5UStSd28zSHVzQi9ma1k5NVRYMjd4NWV5eThNakJX?=
 =?utf-8?B?aFY1bFJBWnNJdHUvWTRlU0Zmdk9JZml3cmZsNjl4UkVmcVI2Q1N0bndHNnJX?=
 =?utf-8?B?dGRsZkViOUdpdGpQdGgyek5KK2N2UXhYTnhocVloTkVRRm5uVkw3RUlzNWFJ?=
 =?utf-8?B?KzZyUkxLUEVFOE5EMUNUQkRqTUtEelVPYTBVZFdNRElnQ2hnYUVMR2tKVk9o?=
 =?utf-8?B?LzFYOTYwREJJL2E0YjE1SThtajhkVHVTVkZYVi9Zd1V5b2EvMmcvOUVEYnc3?=
 =?utf-8?B?Y2xHeEYvSWw2YktnSEhGbDZtYThmVmRXYU44N3RMZUw1dlBMYWZHRHlqdHc4?=
 =?utf-8?B?RHdSVzdmL2ZsT0FjT0szUjJlZTBRc3Z2V29lUzNJVlR4bEtpYVNMa2hodUJN?=
 =?utf-8?B?eUNvM2c5Nkh6RDdrdUJVSndib3NtbnFKNXJ5ZCttdzVXbHF4NkNZQnhFL2tT?=
 =?utf-8?B?eUJBQ2cxMk5oQ1l5Nk1HMktJaEFES25iSXU4RkpMVnJQeWdXRjJIZUpFR0Rq?=
 =?utf-8?B?cXZnS1NwMWYvaVdoQmJ0RmsrbUUwazlzWG11SUdyanJaeGIzWC9FRXhQVXFT?=
 =?utf-8?B?bjVaV21xRllLV1owQllCRWFQNncxVnZzTk80Y1BhSldyL2dRL053aERBbHJ6?=
 =?utf-8?B?dFdwajVkS21yWmFHTWxjeTZNYUUrc1lOY25jV3I2QnRISGFJdnkyVXhUb3JL?=
 =?utf-8?Q?ZhIZWYGRB4UDmyRcyKBH1N/wsTzYhJsV?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?K3BXcUJDdFZrTUk1eElnWEtEL1BoQ1lsbE05NXVNaDNMK3kxclRwVmsralpl?=
 =?utf-8?B?aTV4UHM2eVFHNXF5ZmJXWkFlZVVxZmw0eVVWbDFzeFI4NURIZkpnMlNjRlpw?=
 =?utf-8?B?a2tySlBSOXpJY3BKRXo1NjJMaUkwajRmelNYZlZCSUo0bzR0dUZpZG4rQkFp?=
 =?utf-8?B?Z2xlQmFyREtFWnY5RWpxQmFEcDZneTFsaVB3S1pBWGsrMkFwc3M2WHhWK290?=
 =?utf-8?B?c1AvNGZVUUdzTVQ4QVZzcC92Y0M3WkhOY3pRNGV5NTNiSXR5WjQ2WDVxcUNY?=
 =?utf-8?B?ZzR6Q0s1NkpRK01MQmVuMXhQZkczSVQvdktKQUIySVZXalZqV2RXc2paL2lq?=
 =?utf-8?B?WkpjNHR3dzNxcjNZeWpkbXFLcVMzL1JNUFNzNzEyUkRpRERRUHpSL2lIWEdI?=
 =?utf-8?B?ekoyVHdpQ0I5am1GYzZLd0FuU3MxS0hvU3ZXc2N3eGdwRU94Ty9ONkJ0S1RG?=
 =?utf-8?B?dE5BVHR2MW9OMll1WXJQMmRHcmlJazk3THNvSHQwQ3hrT3B4NjhQa2liMlY2?=
 =?utf-8?B?S1lBS1VxYWpvWVdSVFlGb2lITzFWdzByREwvYml5R0czS201ZVp5ZlhoMHIr?=
 =?utf-8?B?dUw1R2liTGxlTkcza280aHFwUGNud1FreVMyM0ZWM2RYcE9RWGFTcnJhZlpu?=
 =?utf-8?B?RjMvMHJwR0w4Uk80eDVmbWZMZjNxUjZqdExhcjV3WlJYOGNLdmpNWHJzNlZu?=
 =?utf-8?B?cjBMeUUvNGNOdlJJMjYxL0pNSGg4bCtmNGtZNG5OZ0pway82NHpKVUduQzdp?=
 =?utf-8?B?L3RYcjNqd0FqTC9SU25JQ2JqdW8rRE42dDlUME95My9rcS9Ib2N5bWZwMXdG?=
 =?utf-8?B?V2wwKzNSdUlJRHlTY0gydkl3Nk5jSFJqL3VhNXNiQ3VaczZ1OThpNFYxRExK?=
 =?utf-8?B?dTBFR3ZnS0VSNUMrZ1gwRStiYitTTjBuTDNXc09DK0s5R0cvMHkrZDBXdk9T?=
 =?utf-8?B?aDgva0QvOS9IZ0xOaithNXpYQW5ELy9OamVoN2VoeHIyLzAvYkdLb3J5ajNG?=
 =?utf-8?B?blduK3hNSXl3dnVaQU4yUFVDa01tQWs3Vzc5cm8zc3M1RzdFZUNPZmQwZy9a?=
 =?utf-8?B?YTdXTDgzRFQ0a2VmaC9taW4zd1ZtOWZvQUp2cmtBdzNPM1pVOFJnR3lYSVFY?=
 =?utf-8?B?TTkwVC9Od0lJbE5Idmk5MDk3Y0RLVjIzbVVjeWFtazBkK3ZHRXN4Z3ZVenBu?=
 =?utf-8?B?ZitRbndkd1hYLyt2Q25FRUdVcXhySkd0M1RxZUpUYTU1ZG1FZlZPNU5hckxu?=
 =?utf-8?B?ZEtQSCtlK2ZITndyckhGVmZoRnlLdTdhK1ZKRVd0d0hLT3FldmJPc0JuTXBK?=
 =?utf-8?B?SnZKdFB2aDhMOGd1UDJUN3g3bmhxcXBwN3NZbzZJRlBYSVIvWmxFUWt5QXg0?=
 =?utf-8?B?ZWEvb2E2dE13aTRtMjR5SXFBei9TVGxxNC9tQ0xhaHBpZUxlRGkvelpDL3Fl?=
 =?utf-8?B?dUdmZWtKVEQ0RDNKcEVldW9VNWRQT3FQaVdHRVNwTlFucEdjbkxFWVhtUzZq?=
 =?utf-8?B?VytuY3UrbG8vNWRXMDUwM3JzaGEzc1FvcXNaV0o4M21WWkx6WTdWNFBqMUNV?=
 =?utf-8?B?cHRnYUowZXJDb1hBR3l1NVJXRmhCcWRzTjFickhNL3lUQUp3ZCtHUHhjN0Zx?=
 =?utf-8?B?M2FsaHYxYnpBVFRVdW1kYjlyaVVDOFNPQVQ1Vi9NOHg1R3p5U0xvNDRXMmM4?=
 =?utf-8?B?eGJpUkRtOFVBdUVnN2JJd3IvK2RLQjdjNDVhajhsRFdzZ1B4TG8wTnpoWkpS?=
 =?utf-8?B?SWcrenZ3enlJTkhNRGhnRlNpRkN5VGlyamRWREJjMnlLMCtjaWd6cU1pWm01?=
 =?utf-8?B?dkEyWVpUcngxbm9INEhTUHg5eTJwMlNFakc4K3B4ZkdDbXFFZThDaVVveEN0?=
 =?utf-8?B?VUxYZHpONkMvSEFHN1JJMnBxN0JyUS92TDE2aVR4cUdyMjlpMGhsQ1NLc3Br?=
 =?utf-8?B?dnJYQURXNHVQTy9jRXBQQTQrQXovN0t4ZVJjemNTbjg4SFBQSjhuVUVVVlV3?=
 =?utf-8?B?SjQ4R0RzTVJVbkZjbE1oV3VhUjI5Mkt2RHlJUm5MTFFHeXBlakU1b1puSXI4?=
 =?utf-8?B?SzRVSTVNWmtveFh5ckJJRXpzNzB6ZlA0ajBnOFdkS1FkME9uMWRZVzFHNXY2?=
 =?utf-8?B?eFd0WXc5d2lSYlQyd2VWVTNlNFk5Qmg0U2d1VDNVRE1JdWthSEZHYlFPQ1JP?=
 =?utf-8?B?MXc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b475612e-7a9b-43f6-c719-08de38df371b
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2025 18:00:48.8171
 (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: hxcpYzZ5VsccRQnrUl3UDjwi8Am9qvFC6+jl5RMmulMBLTdiEgutZIoZE6VXLtxGEbPr1JoTJxqPubZ/vjnhW4fE8kmmjSYVsxUrkBlaWrM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5851

On 11/12/2025 5:59 pm, Stefano Stabellini wrote:
> On Thu, 11 Dec 2025, Andrew Cooper wrote:
>> The *-safety jobs are AMD's configuration specifically, and other
>> configurations will likely be different.
>>
>> Give the un-suffixed job an *-all suffix to make it clearer what they're
>> doing.
>>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> This is straightforward:
>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
>
> I like this and I think we should also rename eclair-x86_64:on-schedule
> and eclair-ARM64:on-schedule for extra clarity. For instance:
>
> eclair-x86_64-allrules:on-schedule
> eclair-ARM64-allrules:on-schedule
>
> It could be in this patch but also in a different patch.

Oh, that's easy enough to do.  I'll fold in.

Given allrules for that, do we want to make this allcode for clarity?

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 18:04:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 18:04:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184492.1506915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTl1y-0004Yv-6w; Thu, 11 Dec 2025 18:04:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184492.1506915; Thu, 11 Dec 2025 18:04:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTl1y-0004Yo-2v; Thu, 11 Dec 2025 18:04:46 +0000
Received: by outflank-mailman (input) for mailman id 1184492;
 Thu, 11 Dec 2025 18:04:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oCI8=6R=gmail.com=samaan.dehghan@srs-se1.protection.inumbo.net>)
 id 1vTl1w-0004Yg-EC
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 18:04:44 +0000
Received: from mail-qt1-x82a.google.com (mail-qt1-x82a.google.com
 [2607:f8b0:4864:20::82a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dd86614a-d6bb-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 19:04:41 +0100 (CET)
Received: by mail-qt1-x82a.google.com with SMTP id
 d75a77b69052e-4ee4c64190cso2611601cf.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 10:04:41 -0800 (PST)
Received: from wirelessprv-10-195-113-235.near.illinois.edu
 (mobile-130-126-255-145.near.illinois.edu. [130.126.255.145])
 by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-4f1bd6b504csm23434601cf.19.2025.12.11.10.04.38
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Thu, 11 Dec 2025 10:04:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dd86614a-d6bb-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765476280; x=1766081080; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=+vYfskH8zOcau01PfYhVtuVtrctZjdSbs9m0dZHvRNg=;
        b=BcN6o0v0V4ZV1XcIX7p9c/If2mqla1JowdrPoS62mCDqlKYCTkgCKwx5EwiAEoJS5k
         PjGAJmliTDcwY6z1/yTzOfFiTumUBtDEfOoB9KbsFOvn7Q3jrBfLzZYpjxq/AN/z4lXE
         6L/3XimOy5aM0Ko3Dthd6kPbeoC6MAMjnm4PGitO8mJp5hvHGxuCgAT9BkK0d2lIFoPX
         qO3AbsB1X+kOGzIQgBB5der9LluA0X6aXcBTIZcG4+RWxE9yMNXBxEfBA6i0VCPUHhYY
         OaA9cfAZXGgWZM7/h8a7jvISg06Vrji8rfCb9Ewx14kX+Qk/Z2upumMOj14EC6aDlG8Q
         5xFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765476280; x=1766081080;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+vYfskH8zOcau01PfYhVtuVtrctZjdSbs9m0dZHvRNg=;
        b=PK8SydZVvyjZo/aY15ScUTA8sTpq3F/EtztSp+tUZUHyizTsp4bSxLOuHYDVTKujQL
         bQ8Jalr6aVVIVCsWw+bGA6JjcRuj7nrochT6v1Cp2x2qpDNib2er6+sTsYIAVMmxtf8g
         45NNyCaIKiBYTyU69FQwBEOiHbFlPqUarYVBcw2eucRjh6pzoW+Vkv06LqF3+YUA25QB
         51tJ8TWFzoPCtfB5Nng05WupyMxBlSpWgiSTrlYbZTY9jBKRaMx9zeks4cjjrLPqQFXQ
         GFCpAqFRpktPA9ls+EE42/rt0tA6sZcYp4tU852Sch1C3MDCHjvIP0WywZTtfddGVCkd
         OJ3g==
X-Gm-Message-State: AOJu0YztHNc89d6Ol/2U00L0zGkqKMBBI4glbRyx9ynP4XIVaOSlBxCD
	7kgyPLFnUxv8DJgwzHSDB6OfNcjYuRaq1xMBsHnMKmnSQskzwqXejAAguLxTLk8=
X-Gm-Gg: AY/fxX5ZmayndShyu7IDDMfeHbWpy+GLmttmfo+5Si87Ec0u8qyR8NNOR47fhEb0/l+
	YF2yemYuvPB21UsTszHyN8iCe2nIc/8ipwKgm7gEc+GalwB9XhEHihzHT3vUbst2eD5Ap5gPfPo
	5fLHRiHlID7FOxVRMfsispat1VtpwqG4xbNmj5sEn94sgQ5YAu+HNx3bb0imty1Dj3yospcJ6RX
	74eTnZn9DDlK1Zq7exxweiSNCpvHG42P7vBkWYsQ5Mv6HtehXrfJIaPqL3/0JR+58oAMNBM6Q/6
	sRdx+LiMqQlz3mZWfQsJA84C1VYAJhurHh/Eb+f0xx5Lh+0kB0y3Tso3LVdShSoFV6lXXN166Tr
	0oDerJzSnFIt4o0bFNJDA/ttRD5F/+Y2b90b6RJ1XWz5tLRkcgVhamKHm6jfm8HbkwKF8rwQ2cZ
	oqz1IaWr9XJy7ZB2VImLL72RZTQ89GKfgWsBZd3EqQoNNYU0zrrq34T2JPJm/VfB8LgQ8pq4ctl
	U+5b2OcvR5SagPWm/4hW9mAQqKLT4R3ugau7Y0CFLrjFkcmVMhKUyVjZsjZAG4ziLa/grqUBt68
	U0vpYSwjOp98yfHrgQ==
X-Google-Smtp-Source: AGHT+IEuzUeFlSeeWruvyRUPMGsquOlx9fbmGJ6QYyIBtGJ3wM1PXPXuFYGbaYpCGdSvwxgae6RopA==
X-Received: by 2002:a05:622a:ca:b0:4ee:28b8:f110 with SMTP id d75a77b69052e-4f1b19d4bc0mr105700091cf.29.1765476280240;
        Thu, 11 Dec 2025 10:04:40 -0800 (PST)
From: Saman Dehghan <samaan.dehghan@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v4] xen/arm64: Add support Clang build on arm64
Date: Thu, 11 Dec 2025 12:04:34 -0600
Message-ID: <da1f2ca7a651a5c482a68f6a4377250fcbbce715.1765465950.git.samaan.dehghan@gmail.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch enables building Xen for the arm64 using the Clang/LLVM compiler.
Changes include:
- Add explicit -march=armv8 flag for arm64 builds.
- Introduce `READ_FP_SYSREG` and `WRITE_FP_SYSREG` to encapsulate the required
  `.arch_extension fp` directive for system fp register access.
- Add ".arch_extension fp" to the inline assembly for `save_state` and
  `restore_state`.

Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>
---
 README                   |  2 ++
 xen/arch/arm/arch.mk     |  1 +
 xen/arch/arm/arm64/vfp.c | 34 ++++++++++++++++++++++++++--------
 3 files changed, 29 insertions(+), 8 deletions(-)

diff --git a/README b/README
index 889a4ea906..67c1aa7fe6 100644
--- a/README
+++ b/README
@@ -45,6 +45,8 @@ provided by your OS distributor:
       - For ARM:
         - GCC 5.1 or later
         - GNU Binutils 2.25 or later
+        or
+        - Clang/LLVM 11 or later
       - For RISC-V 64-bit:
         - GCC 12.2 or later
         - GNU Binutils 2.39 or later
diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
index 9c4bedfb3b..bcf548069b 100644
--- a/xen/arch/arm/arch.mk
+++ b/xen/arch/arm/arch.mk
@@ -13,6 +13,7 @@ ifeq ($(CONFIG_MPU),y)
 CFLAGS-$(CONFIG_ARM_64) += -march=armv8-r
 else
 CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic
+CFLAGS-$(CONFIG_ARM_64) += -march=armv8
 endif
 CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only # No fp registers etc
 $(call cc-option-add,CFLAGS-$(CONFIG_ARM_64),CC,-mno-outline-atomics)
diff --git a/xen/arch/arm/arm64/vfp.c b/xen/arch/arm/arm64/vfp.c
index c4f89c7b0e..cd5c97cfd0 100644
--- a/xen/arch/arm/arm64/vfp.c
+++ b/xen/arch/arm/arm64/vfp.c
@@ -6,7 +6,8 @@
 
 static inline void save_state(uint64_t *fpregs)
 {
-    asm volatile("stp q0, q1, [%1, #16 * 0]\n\t"
+    asm volatile(".arch_extension fp\n\t"
+                 "stp q0, q1, [%1, #16 * 0]\n\t"
                  "stp q2, q3, [%1, #16 * 2]\n\t"
                  "stp q4, q5, [%1, #16 * 4]\n\t"
                  "stp q6, q7, [%1, #16 * 6]\n\t"
@@ -22,12 +23,14 @@ static inline void save_state(uint64_t *fpregs)
                  "stp q26, q27, [%1, #16 * 26]\n\t"
                  "stp q28, q29, [%1, #16 * 28]\n\t"
                  "stp q30, q31, [%1, #16 * 30]\n\t"
+                 ".arch_extension nofp\n\t"
                  : "=Q" (*fpregs) : "r" (fpregs));
 }
 
 static inline void restore_state(const uint64_t *fpregs)
 {
-    asm volatile("ldp q0, q1, [%1, #16 * 0]\n\t"
+    asm volatile(".arch_extension fp\n\t"
+                 "ldp q0, q1, [%1, #16 * 0]\n\t"
                  "ldp q2, q3, [%1, #16 * 2]\n\t"
                  "ldp q4, q5, [%1, #16 * 4]\n\t"
                  "ldp q6, q7, [%1, #16 * 6]\n\t"
@@ -43,9 +46,24 @@ static inline void restore_state(const uint64_t *fpregs)
                  "ldp q26, q27, [%1, #16 * 26]\n\t"
                  "ldp q28, q29, [%1, #16 * 28]\n\t"
                  "ldp q30, q31, [%1, #16 * 30]\n\t"
+                 ".arch_extension nofp\n\t"
                  : : "Q" (*fpregs), "r" (fpregs));
 }
 
+#define WRITE_FP_SYSREG(v, name) do {                   \
+     uint64_t _r = (v);                                 \
+     asm volatile(".arch_extension fp\n\t"              \
+                  "msr "__stringify(name)", %0\n\t"     \
+                  ".arch_extension nofp" : : "r" (_r)); \
+} while (0)
+
+#define READ_FP_SYSREG(name) ({                         \
+     uint64_t _r;                                       \
+     asm volatile(".arch_extension fp\n\t"              \
+                  "mrs  %0, "__stringify(name)"\n\t"    \
+                  ".arch_extension nofp" : "=r" (_r));  \
+_r; })
+
 void vfp_save_state(struct vcpu *v)
 {
     if ( !cpu_has_fp )
@@ -56,10 +74,10 @@ void vfp_save_state(struct vcpu *v)
     else
         save_state(v->arch.vfp.fpregs);
 
-    v->arch.vfp.fpsr = READ_SYSREG(FPSR);
-    v->arch.vfp.fpcr = READ_SYSREG(FPCR);
+    v->arch.vfp.fpsr = READ_FP_SYSREG(FPSR);
+    v->arch.vfp.fpcr = READ_FP_SYSREG(FPCR);
     if ( is_32bit_domain(v->domain) )
-        v->arch.vfp.fpexc32_el2 = READ_SYSREG(FPEXC32_EL2);
+        v->arch.vfp.fpexc32_el2 = READ_FP_SYSREG(FPEXC32_EL2);
 }
 
 void vfp_restore_state(struct vcpu *v)
@@ -72,8 +90,8 @@ void vfp_restore_state(struct vcpu *v)
     else
         restore_state(v->arch.vfp.fpregs);
 
-    WRITE_SYSREG(v->arch.vfp.fpsr, FPSR);
-    WRITE_SYSREG(v->arch.vfp.fpcr, FPCR);
+    WRITE_FP_SYSREG(v->arch.vfp.fpsr, FPSR);
+    WRITE_FP_SYSREG(v->arch.vfp.fpcr, FPCR);
     if ( is_32bit_domain(v->domain) )
-        WRITE_SYSREG(v->arch.vfp.fpexc32_el2, FPEXC32_EL2);
+        WRITE_FP_SYSREG(v->arch.vfp.fpexc32_el2, FPEXC32_EL2);
 }
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 18:05:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 18:05:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184499.1506924 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTl2j-00052M-Es; Thu, 11 Dec 2025 18:05:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184499.1506924; Thu, 11 Dec 2025 18:05:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTl2j-00052F-BM; Thu, 11 Dec 2025 18:05:33 +0000
Received: by outflank-mailman (input) for mailman id 1184499;
 Thu, 11 Dec 2025 18:05:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k3Jk=6R=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vTl2i-0004Yg-JB
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 18:05:32 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fa4b63f3-d6bb-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 19:05:30 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id BBF5A43A4D;
 Thu, 11 Dec 2025 18:05:28 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 60BC0C4CEF7;
 Thu, 11 Dec 2025 18:05:27 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fa4b63f3-d6bb-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765476328;
	bh=m+m5ZNqlIfNpAbyoWh1Xb1n97kLwDoBXWIvl+GxIZ60=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=XSrgyOapr7C4xF0mG+Xar2WZ7m8LSHZuAxEp4nIlcBRDVgvs203KUTS6PcheXdZcG
	 rMMjnxCmReyhlOTtp02Vf7S844QZcYe1tQL6tuxCd5KsbiwpfPYjBpSxAWCDde/8nW
	 qtqujEsJU5je2B5C8i9+RhaImFtxMPcXhPL71jMApbDrYuYdrbgfo7Ldpy7NaRh6s+
	 SY1hl0PfXyPLR1/VdyT/2WKncVODMjfvVSgXcMn46SdVl6sJ07ZkkyE3skPDX5hsnF
	 UrXcq36fDlIeJSHwd82BQWnDaPt4cCv4b+u2nflIQL0N6o+7ba+MmXiO+bubqctRTO
	 I8r9YVZjvMMxg==
Date: Thu, 11 Dec 2025 10:05:25 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Andrew Cooper <andrew.cooper3@citrix.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Xen-devel <xen-devel@lists.xenproject.org>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    "consulting @ bugseng . com" <consulting@bugseng.com>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: Re: [PATCH] CI/eclair: Rename the eclair-* jobs to *-all and *-amd
In-Reply-To: <03bbb773-cc02-408f-a01d-bb7f2447e57b@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2512111005140.17367@ubuntu-linux-20-04-desktop>
References: <20251211161339.2296433-1-andrew.cooper3@citrix.com> <alpine.DEB.2.22.394.2512110959140.17367@ubuntu-linux-20-04-desktop> <03bbb773-cc02-408f-a01d-bb7f2447e57b@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1279770711-1765476328=:17367"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1279770711-1765476328=:17367
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 11 Dec 2025, Andrew Cooper wrote:
> On 11/12/2025 5:59 pm, Stefano Stabellini wrote:
> > On Thu, 11 Dec 2025, Andrew Cooper wrote:
> >> The *-safety jobs are AMD's configuration specifically, and other
> >> configurations will likely be different.
> >>
> >> Give the un-suffixed job an *-all suffix to make it clearer what they're
> >> doing.
> >>
> >> No functional change.
> >>
> >> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > This is straightforward:
> >
> > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> >
> > I like this and I think we should also rename eclair-x86_64:on-schedule
> > and eclair-ARM64:on-schedule for extra clarity. For instance:
> >
> > eclair-x86_64-allrules:on-schedule
> > eclair-ARM64-allrules:on-schedule
> >
> > It could be in this patch but also in a different patch.
> 
> Oh, that's easy enough to do.  I'll fold in.
> 
> Given allrules for that, do we want to make this allcode for clarity?

I am happy with that, good idea
--8323329-1279770711-1765476328=:17367--


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 18:26:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 18:26:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184517.1506934 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlMT-00088W-0R; Thu, 11 Dec 2025 18:25:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184517.1506934; Thu, 11 Dec 2025 18:25:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlMS-00088P-Tr; Thu, 11 Dec 2025 18:25:56 +0000
Received: by outflank-mailman (input) for mailman id 1184517;
 Thu, 11 Dec 2025 18:25:56 +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
 <SRS0=cEbC=6R=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vTlMS-00088J-6E
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 18:25:56 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d38f474d-d6be-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 19:25:54 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS0PR03MB7725.namprd03.prod.outlook.com (2603:10b6:8:1f5::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Thu, 11 Dec
 2025 18:25:50 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Thu, 11 Dec 2025
 18:25:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d38f474d-d6be-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ES1xgBYfBnCaCp48HN6a4vFvgDhQAArzrR3m5QOQ6Gt0Zjn8w6k5fEHcUE/PHgt3LKiToc1egDPcxcDlw0Q0iBcaOsS9FssxyJ0RditSUAvkNn9Z1QKUaymXrJe8BwS5yXj3aYGkXp7e1P8EqBi0MkxWTYviRFIClNes9wIvcbEqNO1PocrgGyKXzgmFiQDmJb9+JfLWwgKezcfn6YNqt3wocEyJ+3UbofRIucw6ZRsoKvZqxinCOyC2Lh24RjGKKbvVXPRrkR+b8amkE1EqKiNRQpyU9/pIBMXdHcQ2S4CCT5rMoeD54d44miCj4/q5oLuKqQozSxUy9vFBocdEkQ==
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=9Igm2lSavKk9C4uIAnsibMCgx1OuyheeSx595p2OHjI=;
 b=WThrQZMs/tiKqaURku2diAYRHbmBCb0VW+PP0AySgVedMLQXmzs2Dyz2sRVvba60BFr+oIIfUjF9Pyl6t54iok0UpSkseAgKuaCFlDtp+X6ivZIbAoLmj2CYOXnrA0fHO1j3eCpPIF7yjHhAh0CAC4i8U2CVzrQ5qXjmPCZpFHPMhIkVr+MD09oJsuNLLYUB8GbJ2oo9Fpxf6+G7r2y7oDehXOE+AhjzLpzkEx73mATZ/IllJCfYZYLjHedSm0XR/uQeoLuwGHoMcTAOuPIbegJMZuCepW/4CwmL8J2HEeRPPcxlt7tbk2rw+spiLtuXu9V4qQeOeWwXTp/z8sUAmw==
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=9Igm2lSavKk9C4uIAnsibMCgx1OuyheeSx595p2OHjI=;
 b=TnTzIedtLuhdSBJeOq+enqkn+JQ0zORmMDrsk7GBL9O9Nw2rwA6aQ5iNiJkRmk4+F3z2JHs64tndUqlqkOgiL+qKet4n5ZwwrOC1oxzZMN5ccHjHnoso+KMgllwcZ7ttNCRpvRH14vHVrX2RlAZYZiKHGY62CbnoSxVmumSKgs0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <62ee89f5-b7dc-4168-8041-e5764e74e27f@citrix.com>
Date: Thu, 11 Dec 2025 18:25:46 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "consulting @ bugseng . com"
 <consulting@bugseng.com>, Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: Re: [PATCH] CI/eclair: Rename the eclair-* jobs to *-all and *-amd
To: Stefano Stabellini <sstabellini@kernel.org>
References: <20251211161339.2296433-1-andrew.cooper3@citrix.com>
 <alpine.DEB.2.22.394.2512110959140.17367@ubuntu-linux-20-04-desktop>
 <03bbb773-cc02-408f-a01d-bb7f2447e57b@citrix.com>
 <alpine.DEB.2.22.394.2512111005140.17367@ubuntu-linux-20-04-desktop>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <alpine.DEB.2.22.394.2512111005140.17367@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0098.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:c::14) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS0PR03MB7725:EE_
X-MS-Office365-Filtering-Correlation-Id: f999be4c-23be-41b4-b6c5-08de38e2b64b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NDlKdzVVNEV3bDg2NnNDMURuT3M1bkFrNmk4amI0Y0ZFMUYwQjR6a3Q0R3R4?=
 =?utf-8?B?L0EzOVdTZFZSb2NxZExuSk93dXA2SmtvUlBuNW1QYVFOUkcyMHg3TzFxaXcz?=
 =?utf-8?B?TnpMVlhpbEJsUThodlFMTm9Pd05KTnRoUXNLSElvWDNEVlBwZjZTeWlhTmgw?=
 =?utf-8?B?Y2E1M0JrdFRHK1VNb0xQYmNIekdnUjBPUGtHS1Q0WGg0cU1TbWp4S0RTblRH?=
 =?utf-8?B?OWdXNjR3NFM3eXYwYjJVaFRkMUF3Ry9mY2VzbmdETWpCZmRIUzMxS0lmUFFr?=
 =?utf-8?B?c0kxYkdTNjFSQmo2SUo5S3pDY3l3bDZnL1JjcHhFRHRNT0s2T2VRNUk0N3lH?=
 =?utf-8?B?RzJ2K1UzQk9IUFZVVWluU3h2MVpGNmpmN2x3UnNNdm1CUjdmWlJveSthM1FQ?=
 =?utf-8?B?TWZ2cmQ2TzdTdmx6cG04RGx6bXEzS1YvWFRGTXRTb0VUa21DS0cySnphTUZt?=
 =?utf-8?B?R05OUjFCYWNXWGk2c05JSXd6S0pnclAxaHduUFZJUmZ5K0hjTGgxbjJsSCtX?=
 =?utf-8?B?QjNZVHpPUUtJV2NWTlcrS0gxdFNYSnk2bVlMT3BRaDNldmlFYUlhblRsWnRU?=
 =?utf-8?B?VDNZanRBTHZwUTNKMFRoTytHSjVMMmJ6Vk5ma1l0NXhjR1oxNmtVblBKcEt3?=
 =?utf-8?B?T05zVFB5alRKcVVJLzZNNmRYNGNIOFBlNVR5Q0dzZk9kc0cvZkZqSElxRjFw?=
 =?utf-8?B?czhnejAzMVB4UUNHY1JXVzl1WTFSaG1zVExNNnVaOU55dTU0QWl0d2p2K2xP?=
 =?utf-8?B?cHF0WENkMDhuMWpLN05taDhuditERmdkc0dFWk5jVGpYQ0ZFZVRMV2paaW1a?=
 =?utf-8?B?ZGx5WEYxVnJDNHdhYVdEU0d3MVVzeW8zWFl2V3VHSWppVXJzRitSd0xoeWRE?=
 =?utf-8?B?QWVKekdCanFVajl3L3hjSkhudTlhTGFBSGFWd1ZKaXdmcENMOVZzbWNHYUJ4?=
 =?utf-8?B?M0JoT3dHcEdQM01hTGdVMmNTeXRqaWxFb1MwN1ZnZ0pXbEh5ZkNQbkFSK05C?=
 =?utf-8?B?OGFZNXZjSDRlUjVkSDUyZjl5eGo4eXFaS3N4WEU2SUFJRkVUYnV3U1BoUXA5?=
 =?utf-8?B?QnpFSk5oN1NObHdSdkI4ODg4Q1hHQzFVaUtnRHh5Y1J6ZWZCQTFZelNybGVr?=
 =?utf-8?B?Q2NkSk1DcUZNS1R6dllvdVhHWTZ0cUdSb1hORGcvbjRwWUNCSzVEM3dsYVR0?=
 =?utf-8?B?V01QZ1pBUVA0Y2hGNm1pdjJIa3ZjNVJ0LzFFUUhKYnp5N0RvRytMTlFnZXFj?=
 =?utf-8?B?dXBPNVVZUG1lSUpVa3hOcjF5TkhrNC9aOWJhazNDV2hGL2gvQllGZklMUnN2?=
 =?utf-8?B?eHJkVVVpby9SRkRWWm56SXJIdUQwSkhvN2FDTzlZZGlSV3JOYjJzUmVORlBK?=
 =?utf-8?B?bDhidmZabmdRU0tPaEdocUFneStjMUJkQjFBMmFYYUMxVWZ6ODFkWDM0WURh?=
 =?utf-8?B?b0ZXeXAyMVROOW1ERmpzN1B6WGZET3p0SUpwenlpTmpqYXhsUHIyNXJ1MTZl?=
 =?utf-8?B?R1NUMERDWUpDOExOeHFJbFdYNUdDYW40T04vWW1TZW02MnJEWmwzUDJjWUd1?=
 =?utf-8?B?OXZESDJtOFR3bmxDOGNqYXJNYVRWa0NLb25BVStkTHFaQm1jTGt3Z3JoMEZ6?=
 =?utf-8?B?NUlwcnNQV3B6YVA4NmZLUVZZT0tZa3JvQlpmV2hFVkFBcEhTUk16V2tuMGth?=
 =?utf-8?B?Z0s4bng4SmFtTFFUTWRQeE5xa1JZSnlzcTYzbnZ4eXM2SzdmMk43dThRenVH?=
 =?utf-8?B?U1hBRHhiN05vYmFYeENJNFg4VW0wZ1F2MVN3NUVsWElhZFFQZGsxKzJjZXQ5?=
 =?utf-8?B?dTZIRUlXcmZZT1lYWkl5TUp6SXA3K1JRMGErbDFnQWdJckFnRENRM1p2MnJ2?=
 =?utf-8?B?TTUzcFhEQWxDUTlmZysyVEFFbytCeXJPbjAvR1puRDRMYzBYY0k3K3JhRXA2?=
 =?utf-8?Q?mQuD3LTG+YsrToWJiT9fZ3s0uCU5scou?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?K09Pdms0UTJ0NCszS3E0ZGhDUHI1Um9GWmpPaVBRc28zbzZHb215aG55QXRa?=
 =?utf-8?B?N1Fnb1JLM1d4NTdUSHVlOUdwb0JyNWJjTWpCcFp1YkRxcS9WUFBkTHpYcGJn?=
 =?utf-8?B?Wk1hVDZGV3g0UEdjNC9ockt5YXozMUthUlVuK2dXQXV3NXlnTkNWLzYySmRY?=
 =?utf-8?B?WUlweDB3cXdrWHdOLzhVQVFyeWpxeEhGeG9Iek1rV1U2QmZSWGFsZmo5RW5v?=
 =?utf-8?B?YjJCTVlON3ZYZDNRNmE0TGRxMXNlWWFQSlI0ditvc2dLNTV6eUQyRHlDZm1V?=
 =?utf-8?B?VlFvL21uN2hNVmJ0TDVkdWVQYzdDdnJtZWZycEZNTlIwS25QQnNCUEN6cUhL?=
 =?utf-8?B?b0c4TWxKeC9kUTM5WkV1WXBSSnpQSUJuSEtJRWdMT2VFNEtlWktKTjJDUjZo?=
 =?utf-8?B?ZXp3MGN0Ym1IaVIrMzNKSXVuRnhRWE51bDIrVlF5cFVsNXRKQm5hT1NNRDQ3?=
 =?utf-8?B?OGdqNUMreDJBOEx2eWx0STVRbUFjSXVUN0RUZUR6M2QxR0JYZUh2cDJ0VkYr?=
 =?utf-8?B?K1VXemlJcHYveDh1MXJuemUvNTM5ZXBmTlFIK1FTeGRzbytpdFBSV3gvaDJl?=
 =?utf-8?B?M3VtQWg5c2w0a0VwZFJ1bDlvc09pald4bS9MNDlaVHN6Znd5dkhsZmpocWps?=
 =?utf-8?B?TmZsQndEUVlIRk9PTkFZWG9IbU5oWmFLa3ZqL1Q3cWR6WStVSTByUG9VaTBO?=
 =?utf-8?B?K1hjaXBnbjRWaXRzdDZuMDQ3eGM5VWNPNktWVDJUNk5kUTE0T3h4UVRkWWEw?=
 =?utf-8?B?NmI1Yk5FWCtRWjVwRjA0MjhQU25CYkdsU0NZRnVlY3V1MEgrY0QwUnZyVkk0?=
 =?utf-8?B?Y3AyR2w3eDdzNGF1THBBbXg2bjhQVUxOUDVvd05IWlR6RHVYSVJxY2R3TGsx?=
 =?utf-8?B?WENiZTh4RTJDaCtkL3k5NUxldTkvZUhnWTFXdWJwVlJWZWpEQ0NLZ1BYVno3?=
 =?utf-8?B?SERzSHV0Y2RKVi94WTMrSmY2MEg4NWtBbkd3TmM1RjV4cE00RFhUVnFQZktv?=
 =?utf-8?B?aUZ6Smh2eEk2Sk1nUHcvTDdmbGZsSTdJZU9ML1V5dk9lMnIveHpRaXNYT3dy?=
 =?utf-8?B?U3FKZldpYXphemc5K2gxaFlzN211Vm5FRjR5VG1mUzF5dVJKMTV4VjFhYTBG?=
 =?utf-8?B?dnYwMFFaN0hPa3lpc29vdEtnVVUxRDRwM0dhVEd3K0RLVUd5eEhkdWttVS9U?=
 =?utf-8?B?b1dzWTdjdFJLRlUzMDRlNC9UUEVMNHRXdnA1NmdLQk1waXJlYWJDWTl4TFdn?=
 =?utf-8?B?a1Z0MXI0VjZkZjVZZVdiRUNWVk9GRGd0eTY4SkpZUmQ1Rlpnc0NDcGZEMmZl?=
 =?utf-8?B?dVVzSGpMTnE4bW5xTUJnZ3pCVXVndGx1VzIyQ0o3OE1lYWd4NDZoZVUwNURL?=
 =?utf-8?B?c0x5dGV6T0p2cG5aUnVHMEluTjBXbGNDYmZCWkZDYVRkVUx1U20yOWpLenhV?=
 =?utf-8?B?MktUUjF1UU91UmRQbE41Rk1nekNVOHp1YTdWZGtjR015QU42NHRrOUtyc3R1?=
 =?utf-8?B?QlVZb3hLSzJkZmRmUWVXRWV3SDNlQWlVUFUybUJYZzBkQ015OXl6S1BqMG5X?=
 =?utf-8?B?N3NSRU50QkIxdlc2b1VTaHRvbXR3Yy9lTk04KzlMNlhzY0NXVGc2S09YenBs?=
 =?utf-8?B?cFkyaGRTQ2NZTnlJczVNLzloNm1RMWF3RnpiWlJXcm01ZXpKTkZKbEZoVk5a?=
 =?utf-8?B?ZjA5VUdYVnpNWldhQlNnOGhBZFRUcWxtd281dEdOQURuZStJMjc3OWd1U3pY?=
 =?utf-8?B?aUlaRng4MmRRUlFZWnlLblhmdFB6Q3oxdVk0R1krb2lSRXFFK2MwUTVMQTRH?=
 =?utf-8?B?a1ROZDlnVXFUQ284RGM2Q3JhK1QvNEtnamJDNFFaQmUrbHNqUW5TRFdONjVi?=
 =?utf-8?B?engzeVVaZks0WWJiUlE4TWtTYTJacFdlQWx4RnJITGFkVUllSmZXZkJ4Yjd2?=
 =?utf-8?B?R2dQVC9mYnprN1VFUUFvUXN1UGw0cHRQaEdBZ2Z2V1ZjUnJOZTRaVzZ1SWZJ?=
 =?utf-8?B?YWpyUGppMURNa2RrZUsrTGJpT1YvZWF4MTY2b3hpTWRPTFlCelNrbE93S3kz?=
 =?utf-8?B?SndZN1pzOWxTOWFpek5Kd0dNU1V2cFR3M1J5NG1wN3VLRmFDTXY1TXplVlA0?=
 =?utf-8?B?YSsyQXh6MzArejVGSlFMdFlUZXpiZnhSV2Fxd053NS9icjZHVTZ1OWNhN3Zw?=
 =?utf-8?B?L0E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f999be4c-23be-41b4-b6c5-08de38e2b64b
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2025 18:25:50.5947
 (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: +UMoo8oid+DnTmDaQXEY1Ua6pK0zmpFTuyVIdYvIkkSq0OGJY+9lGSsMLPaBkA5rs2v+/V9iGXyn4nJ87wK7evAnVEtq/49ZZ88C6KcGG8k=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB7725

On 11/12/2025 6:05 pm, Stefano Stabellini wrote:
> On Thu, 11 Dec 2025, Andrew Cooper wrote:
>> On 11/12/2025 5:59 pm, Stefano Stabellini wrote:
>>> On Thu, 11 Dec 2025, Andrew Cooper wrote:
>>>> The *-safety jobs are AMD's configuration specifically, and other
>>>> configurations will likely be different.
>>>>
>>>> Give the un-suffixed job an *-all suffix to make it clearer what they're
>>>> doing.
>>>>
>>>> No functional change.
>>>>
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> This is straightforward:
>>>
>>> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
>>>
>>> I like this and I think we should also rename eclair-x86_64:on-schedule
>>> and eclair-ARM64:on-schedule for extra clarity. For instance:
>>>
>>> eclair-x86_64-allrules:on-schedule
>>> eclair-ARM64-allrules:on-schedule
>>>
>>> It could be in this patch but also in a different patch.
>> Oh, that's easy enough to do.  I'll fold in.
>>
>> Given allrules for that, do we want to make this allcode for clarity?
> I am happy with that, good idea

Ok, I'll fold that in too.

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 18:37:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 18:37:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184533.1506944 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlY3-0001lG-3v; Thu, 11 Dec 2025 18:37:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184533.1506944; Thu, 11 Dec 2025 18:37:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlY3-0001l9-0k; Thu, 11 Dec 2025 18:37:55 +0000
Received: by outflank-mailman (input) for mailman id 1184533;
 Thu, 11 Dec 2025 18:37:53 +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
 <SRS0=k3Jk=6R=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vTlY1-0001l3-B0
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 18:37:53 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7ee3e966-d6c0-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 19:37:51 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 6615743E10;
 Thu, 11 Dec 2025 18:37:49 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 27845C4CEF7;
 Thu, 11 Dec 2025 18:37:48 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7ee3e966-d6c0-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765478269;
	bh=miMLHBUuiuz/joNDWhtdCtxriZ+b8d1UpNxlY0I02T8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=nRR9mvFXQ1rDsDqnG7gxkc5XTzXJ6UtqMoBrNpyHBvcQ02skZUWQOHdIaOQgWAihQ
	 bMiiXoT1qcrCzGNKpuq/iXaAycubXAPUQ80uN6iR6cmFwana6+vQFsbrqukwKT2/to
	 zETDWqhIJAJnBKZ0tvopGsAt1zdznGdb4MCYNpQ365iqgeyUoL5WGlPucnP5oUv1B7
	 Aep6H44QTneFuLDtXeyjSipZdv7YHDplXqCVTV/UFVaKJtwStrQyHXGLIZi0gBXyxL
	 v/tyH8SVYv1DmXvL1LNcF6igfep0r3gb4WkSZs/Srv5ZBrpL3ZX4ifwlf4f49D9l7M
	 bWp5E5JgXtz3w==
Date: Thu, 11 Dec 2025 10:37:46 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v3] xen/irq: Delete the pirq_cleanup_check() macro
In-Reply-To: <0959802e4fa73b848b2b9e47c57c6daf062e9630.1756149543.git.dmytro_prokopchuk1@epam.com>
Message-ID: <alpine.DEB.2.22.394.2512111037070.17367@ubuntu-linux-20-04-desktop>
References: <0959802e4fa73b848b2b9e47c57c6daf062e9630.1756149543.git.dmytro_prokopchuk1@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 25 Aug 2025, Dmytro Prokopchuk1 wrote:
> From: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> MISRA Rule 5.5 objects to a macro aliasing a function, which is what
> pirq_cleanup_check() does. The macro was originally intended to ensure
> the condition 'if (!pirq->evtchn)' is always checked before invoking
> the function, avoiding errors across call sites.
> 
> There are only a handful of users, so expand it inline to be plain
> regular C. Doing this shows one path now needing braces, and one path
> in 'evtchn_bind_pirq()' where the expanded form simplies back to no
> delta, as it follows an unconditional clear of 'info->evtchn'.
> 
> While this complies with MISRA, it shifts the responsibility to
> developers to check 'if (!pirq->evtchn)' at call sites.
> 
> No functional changes.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

> ---
> Changes in v3:
> - added back wording from v1, originally written by Andrew.
> 
> Link to v2:
> https://patchew.org/Xen/ce37bdf7b5189d314c0f41628dbfb3281358bcf4.1755361782.git.dmytro._5Fprokopchuk1@epam.com/
> 
> Link to v1:
> https://patchew.org/Xen/20250729223110.3404441-1-andrew.cooper3@citrix.com/
> ---
>  xen/arch/x86/irq.c                | 11 +++++++----
>  xen/common/event_channel.c        |  5 ++++-
>  xen/drivers/passthrough/x86/hvm.c |  9 ++++++---
>  xen/include/xen/irq.h             |  3 ---
>  4 files changed, 17 insertions(+), 11 deletions(-)
> 
> diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
> index 556134f85a..1ed85c0c11 100644
> --- a/xen/arch/x86/irq.c
> +++ b/xen/arch/x86/irq.c
> @@ -1325,7 +1325,8 @@ static void clear_domain_irq_pirq(struct domain *d, int irq, struct pirq *pirq)
>  static void cleanup_domain_irq_pirq(struct domain *d, int irq,
>                                      struct pirq *pirq)
>  {
> -    pirq_cleanup_check(pirq, d);
> +    if ( !pirq->evtchn )
> +        pirq_cleanup_check(pirq, d);
>      radix_tree_delete(&d->arch.irq_pirq, irq);
>  }
>  
> @@ -1383,7 +1384,7 @@ struct pirq *alloc_pirq_struct(struct domain *d)
>      return pirq;
>  }
>  
> -void (pirq_cleanup_check)(struct pirq *pirq, struct domain *d)
> +void pirq_cleanup_check(struct pirq *pirq, struct domain *d)
>  {
>      /*
>       * Check whether all fields have their default values, and delete
> @@ -2823,7 +2824,8 @@ int map_domain_emuirq_pirq(struct domain *d, int pirq, int emuirq)
>                  radix_tree_int_to_ptr(pirq));
>              break;
>          default:
> -            pirq_cleanup_check(info, d);
> +            if ( !info->evtchn )
> +                pirq_cleanup_check(info, d);
>              return err;
>          }
>      }
> @@ -2858,7 +2860,8 @@ int unmap_domain_pirq_emuirq(struct domain *d, int pirq)
>      if ( info )
>      {
>          info->arch.hvm.emuirq = IRQ_UNBOUND;
> -        pirq_cleanup_check(info, d);
> +        if ( !info->evtchn )
> +            pirq_cleanup_check(info, d);
>      }
>      if ( emuirq != IRQ_PT )
>          radix_tree_delete(&d->arch.hvm.emuirq_pirq, emuirq);
> diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
> index 67700b050a..a3d18bc464 100644
> --- a/xen/common/event_channel.c
> +++ b/xen/common/event_channel.c
> @@ -741,11 +741,14 @@ int evtchn_close(struct domain *d1, int port1, bool guest)
>              if ( !is_hvm_domain(d1) ||
>                   domain_pirq_to_irq(d1, pirq->pirq) <= 0 ||
>                   unmap_domain_pirq_emuirq(d1, pirq->pirq) < 0 )
> +            {
>                  /*
>                   * The successful path of unmap_domain_pirq_emuirq() will have
>                   * called pirq_cleanup_check() already.
>                   */
> -                pirq_cleanup_check(pirq, d1);
> +                if ( !pirq->evtchn )
> +                    pirq_cleanup_check(pirq, d1);
> +            }
>          }
>          unlink_pirq_port(chn1, d1->vcpu[chn1->notify_vcpu_id]);
>          break;
> diff --git a/xen/drivers/passthrough/x86/hvm.c b/xen/drivers/passthrough/x86/hvm.c
> index a2ca7e0e57..b73bb55055 100644
> --- a/xen/drivers/passthrough/x86/hvm.c
> +++ b/xen/drivers/passthrough/x86/hvm.c
> @@ -329,7 +329,8 @@ int pt_irq_create_bind(
>                  pirq_dpci->gmsi.gvec = 0;
>                  pirq_dpci->dom = NULL;
>                  pirq_dpci->flags = 0;
> -                pirq_cleanup_check(info, d);
> +                if ( !info->evtchn )
> +                    pirq_cleanup_check(info, d);
>                  write_unlock(&d->event_lock);
>                  return rc;
>              }
> @@ -536,7 +537,8 @@ int pt_irq_create_bind(
>                      hvm_irq_dpci->link_cnt[link]--;
>                  }
>                  pirq_dpci->flags = 0;
> -                pirq_cleanup_check(info, d);
> +                if ( !info->evtchn )
> +                    pirq_cleanup_check(info, d);
>                  write_unlock(&d->event_lock);
>                  xfree(girq);
>                  xfree(digl);
> @@ -693,7 +695,8 @@ int pt_irq_destroy_bind(
>           */
>          pt_pirq_softirq_reset(pirq_dpci);
>  
> -        pirq_cleanup_check(pirq, d);
> +        if ( !pirq->evtchn )
> +            pirq_cleanup_check(pirq, d);
>      }
>  
>      write_unlock(&d->event_lock);
> diff --git a/xen/include/xen/irq.h b/xen/include/xen/irq.h
> index 95034c0d6b..6071b00f62 100644
> --- a/xen/include/xen/irq.h
> +++ b/xen/include/xen/irq.h
> @@ -185,9 +185,6 @@ extern struct pirq *pirq_get_info(struct domain *d, int pirq);
>  
>  void pirq_cleanup_check(struct pirq *pirq, struct domain *d);
>  
> -#define pirq_cleanup_check(pirq, d) \
> -    (!(pirq)->evtchn ? pirq_cleanup_check(pirq, d) : (void)0)
> -
>  extern void pirq_guest_eoi(struct pirq *pirq);
>  extern void desc_guest_eoi(struct irq_desc *desc, struct pirq *pirq);
>  extern int pirq_guest_unmask(struct domain *d);
> -- 
> 2.43.0
> 


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 18:45:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 18:45:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184547.1506967 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfk-0003R0-HL; Thu, 11 Dec 2025 18:45:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184547.1506967; Thu, 11 Dec 2025 18:45:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfk-0003QY-AU; Thu, 11 Dec 2025 18:45:52 +0000
Received: by outflank-mailman (input) for mailman id 1184547;
 Thu, 11 Dec 2025 18:45:51 +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
 <SRS0=QWGN=6R=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vTlfj-0003I8-9j
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 18:45:51 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9d4f3a67-d6c1-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 19:45:50 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b727f452fffso71489766b.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 10:45:50 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-4.as6723.net. [185.5.253.4])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa5d0b0dsm345870466b.67.2025.12.11.10.45.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Dec 2025 10:45:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d4f3a67-d6c1-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765478750; x=1766083550; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MRsGxV9gXG/ZC0I4AbwNbd/2+lrn7b0mKg3wOgq8N30=;
        b=dixB5wl8ej22SEtNyazYU6wLrQaeyrDU9pmwBv8+s2mMJn3zCFWSkBL955w7JWR8R+
         rlUyN5RuxzEqoeyxL2PztYgl03jTFX/RG0ldrBQJ3xoWKAlNT8zg1C4cxfckLBF123CQ
         wldsMInItTSgpv9F9ocDZOl5rBhSz1poZaS6XieZ7OGOVQUWOAFv2owEEmQvOnPL6r64
         XsrMP0o0LrXXqUFNsrDB+2O1854iwSM/dtUmvvoAoNHsV5VLyypoUQdpdHQe6/FJal3m
         V3MhktAPWSAX/bFSK/+zZI3O+MCyo+P5bYLZYmy6IQPjtjCsePT0YEXOgz3C/pSGH09u
         cwDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765478750; x=1766083550;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=MRsGxV9gXG/ZC0I4AbwNbd/2+lrn7b0mKg3wOgq8N30=;
        b=LIkIyKn5D/1TLxcP80nmN0lzQ24DHvdtKaizuxofkYEJGoQD1zsthTZym1olzMBVMD
         sEscO4+p3AsgqoRwM/E1ED1WjI2zV1ZMKfj6pfVqUmEhgFd1wJD67ucpG6ogMOOTGvYt
         Q0AacwTL4+AkDILQcA1O9fDB2EvrjDgNPYmKn+yeEhBxBfLHQuyn7JbwqCT0z3hMUEdX
         npvxJCX0tWFZw0LF42S/t8ohDE6GaETbaRBLxkr5mGhT59N4XSPAuoBDLcLKWRtILTyX
         2TQMcm++VyaAGWzP4Wnpb3pDNGGGBPABoxRaYUuTIBhgLEJ5WdX47BVuW2s1isRjNm9S
         FC+g==
X-Gm-Message-State: AOJu0YwiUoMxaB2MtLzabWCFgcU1BnlFCeQObcpbFHQOXkDYKXJZmq9p
	TF+rVER4Yt7WfWb/ijtiSaYP+abqXq5HzDhkiYJyAQa3+yNXyqasu/HIH5n/8IfP
X-Gm-Gg: AY/fxX5GFBNYeoSEZgHcIzkVwTlQ+Xb6JHOpoTeofgnUSrPdsTF9NcgLCsTxe0WhAXH
	VH26eO46JJbQtRw6yR1TERGeI6VVK69pTj4auY6+Y23cIPdvbrSLFapHhyjjgO6qzdLbcgB5fSs
	kCDP0ZcDKXzDa1fZq9KTZXezwevnpNIephvImt7EtKGI604Suh1u1hJoefia9xJGQID7coB7C8Q
	k0G38eYwUeOdZD/1ggc1/HGRHz4MO2jmQyju0qjDEpebaOWJhnAyX5g7mfJ7KPZIoT1hlQtLc/1
	6vWuudZrj6iaUAcgZ+fIZ30b2x9CKKhpc0OdQlKC4hLhNiAy0N3Y7V5QFXWFOi4tRedWXxDV5of
	BTF9mFniKEp8igGqzYegYVoNG2nXl+CLqaMTEiBH+BWBSUCbCnJOxAypjBkLCVdhyMq3sMQJj5e
	fuwHhc5i5DBLClOoI0kKg19/hxIviwZt8hBEwdl6OZ
X-Google-Smtp-Source: AGHT+IEAHYkNBQOlPEi8KqOjFKwI0oh4hz5zxz+lP2CuRzm2gBo3f1ff4xjR6uEUqdSIRULlHee29Q==
X-Received: by 2002:a17:907:1c91:b0:b7a:71b7:2409 with SMTP id a640c23a62f3a-b7d02ae0bb0mr393064966b.15.1765478749417;
        Thu, 11 Dec 2025 10:45:49 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Mykola Kvach <xakep.amatop@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Saeed Nowshadi <saeed.nowshadi@xilinx.com>,
	Mykyta Poturai <mykyta_poturai@epam.com>
Subject: [PATCH v7 02/12] xen/arm: gic-v2: Implement GIC suspend/resume functions
Date: Thu, 11 Dec 2025 20:43:26 +0200
Message-ID: <fe8b4d92a8dfd7b4c40429d10233637a339ae8e6.1765472890.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1765472890.git.mykola_kvach@epam.com>
References: <cover.1765472890.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mirela Simonovic <mirela.simonovic@aggios.com>

System suspend may lead to a state where GIC would be powered down.
Therefore, Xen should save/restore the context of GIC on suspend/resume.

Note that the context consists of states of registers which are
controlled by the hypervisor. Other GIC registers which are accessible
by guests are saved/restored on context switch.

Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V7:
- Allocate one contiguous memory block for the GICv2 dist suspend context.
- gicv2_resume() no longer unconditionally re-enables the distributor/CPU interface;
  it now writes back the saved CTLR values as-is.
- gicv2_alloc_context() now returns 0 on success and panics on failure, since
  suspend context allocation is not recoverable.
---
 xen/arch/arm/gic-v2.c          | 126 +++++++++++++++++++++++++++++++++
 xen/arch/arm/gic.c             |  29 ++++++++
 xen/arch/arm/include/asm/gic.h |  12 ++++
 3 files changed, 167 insertions(+)

diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
index b23e72a3d0..0b2f7b3862 100644
--- a/xen/arch/arm/gic-v2.c
+++ b/xen/arch/arm/gic-v2.c
@@ -1098,6 +1098,123 @@ static int gicv2_iomem_deny_access(struct domain *d)
     return iomem_deny_access(d, mfn, mfn + nr);
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+/* This struct represent block of 32 IRQs */
+struct irq_block {
+    uint32_t icfgr[2]; /* 2 registers of 16 IRQs each */
+    uint32_t ipriorityr[8];
+    uint32_t isenabler;
+    uint32_t isactiver;
+    uint32_t itargetsr[8];
+};
+
+/* GICv2 registers to be saved/restored on system suspend/resume */
+struct gicv2_context {
+    /* GICC context */
+    struct cpu_ctx {
+        uint32_t ctlr;
+        uint32_t pmr;
+        uint32_t bpr;
+    } cpu;
+
+    /* GICD context */
+    struct dist_ctx {
+        uint32_t ctlr;
+        struct irq_block *irqs;
+    } dist;
+};
+
+static struct gicv2_context gic_ctx;
+
+static int gicv2_suspend(void)
+{
+    unsigned int i, blocks = DIV_ROUND_UP(gicv2_info.nr_lines, 32);
+
+    /* Save GICC configuration */
+    gic_ctx.cpu.ctlr = readl_gicc(GICC_CTLR);
+    gic_ctx.cpu.pmr = readl_gicc(GICC_PMR);
+    gic_ctx.cpu.bpr = readl_gicc(GICC_BPR);
+
+    /* Save GICD configuration */
+    gic_ctx.dist.ctlr = readl_gicd(GICD_CTLR);
+
+    for ( i = 0; i < blocks; i++ )
+    {
+        struct irq_block *irqs = gic_ctx.dist.irqs + i;
+        size_t j, off = i * sizeof(irqs->isenabler);
+
+        irqs->isenabler = readl_gicd(GICD_ISENABLER + off);
+        irqs->isactiver = readl_gicd(GICD_ISACTIVER + off);
+
+        off = i * sizeof(irqs->ipriorityr);
+        for ( j = 0; j < ARRAY_SIZE(irqs->ipriorityr); j++ )
+        {
+            irqs->ipriorityr[j] = readl_gicd(GICD_IPRIORITYR + off + j * 4);
+            irqs->itargetsr[j] = readl_gicd(GICD_ITARGETSR + off + j * 4);
+        }
+
+        off = i * sizeof(irqs->icfgr);
+        for ( j = 0; j < ARRAY_SIZE(irqs->icfgr); j++ )
+            irqs->icfgr[j] = readl_gicd(GICD_ICFGR + off + j * 4);
+    }
+
+    return 0;
+}
+
+static void gicv2_resume(void)
+{
+    unsigned int i, blocks = DIV_ROUND_UP(gicv2_info.nr_lines, 32);
+
+    gicv2_cpu_disable();
+    /* Disable distributor */
+    writel_gicd(0, GICD_CTLR);
+
+    for ( i = 0; i < blocks; i++ )
+    {
+        struct irq_block *irqs = gic_ctx.dist.irqs + i;
+        size_t j, off = i * sizeof(irqs->isenabler);
+
+        writel_gicd(0xffffffffU, GICD_ICENABLER + off);
+        writel_gicd(irqs->isenabler, GICD_ISENABLER + off);
+
+        writel_gicd(0xffffffffU, GICD_ICACTIVER + off);
+        writel_gicd(irqs->isactiver, GICD_ISACTIVER + off);
+
+        off = i * sizeof(irqs->ipriorityr);
+        for ( j = 0; j < ARRAY_SIZE(irqs->ipriorityr); j++ )
+        {
+            writel_gicd(irqs->ipriorityr[j], GICD_IPRIORITYR + off + j * 4);
+            writel_gicd(irqs->itargetsr[j], GICD_ITARGETSR + off + j * 4);
+        }
+
+        off = i * sizeof(irqs->icfgr);
+        for ( j = 0; j < ARRAY_SIZE(irqs->icfgr); j++ )
+            writel_gicd(irqs->icfgr[j], GICD_ICFGR + off + j * 4);
+    }
+
+    /* Make sure all registers are restored and enable distributor */
+    writel_gicd(gic_ctx.dist.ctlr, GICD_CTLR);
+
+    /* Restore GIC CPU interface configuration */
+    writel_gicc(gic_ctx.cpu.pmr, GICC_PMR);
+    writel_gicc(gic_ctx.cpu.bpr, GICC_BPR);
+
+    /* Enable GIC CPU interface */
+    writel_gicc(gic_ctx.cpu.ctlr, GICC_CTLR);
+}
+
+static void __init gicv2_alloc_context(void)
+{
+    uint32_t blocks = DIV_ROUND_UP(gicv2_info.nr_lines, 32);
+
+    gic_ctx.dist.irqs = xzalloc_array(struct irq_block, blocks);
+    if ( !gic_ctx.dist.irqs )
+        panic("Failed to allocate memory for GICv2 suspend context\n");
+}
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 #ifdef CONFIG_ACPI
 static unsigned long gicv2_get_hwdom_extra_madt_size(const struct domain *d)
 {
@@ -1302,6 +1419,11 @@ static int __init gicv2_init(void)
 
     spin_unlock(&gicv2.lock);
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+    /* Allocate memory to be used for saving GIC context during the suspend */
+    gicv2_alloc_context();
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
     return 0;
 }
 
@@ -1345,6 +1467,10 @@ static const struct gic_hw_operations gicv2_ops = {
     .map_hwdom_extra_mappings = gicv2_map_hwdom_extra_mappings,
     .iomem_deny_access   = gicv2_iomem_deny_access,
     .do_LPI              = gicv2_do_LPI,
+#ifdef CONFIG_SYSTEM_SUSPEND
+    .suspend             = gicv2_suspend,
+    .resume              = gicv2_resume,
+#endif /* CONFIG_SYSTEM_SUSPEND */
 };
 
 /* Set up the GIC */
diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index ee75258fc3..7727ffed5a 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -432,6 +432,35 @@ int gic_iomem_deny_access(struct domain *d)
     return gic_hw_ops->iomem_deny_access(d);
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+int gic_suspend(void)
+{
+    /* Must be called by boot CPU#0 with interrupts disabled */
+    ASSERT(!local_irq_is_enabled());
+    ASSERT(!smp_processor_id());
+
+    if ( !gic_hw_ops->suspend || !gic_hw_ops->resume )
+        return -ENOSYS;
+
+    return gic_hw_ops->suspend();
+}
+
+void gic_resume(void)
+{
+    /*
+     * Must be called by boot CPU#0 with interrupts disabled after gic_suspend
+     * has returned successfully.
+     */
+    ASSERT(!local_irq_is_enabled());
+    ASSERT(!smp_processor_id());
+    ASSERT(gic_hw_ops->resume);
+
+    gic_hw_ops->resume();
+}
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 static int cpu_gic_callback(struct notifier_block *nfb,
                             unsigned long action,
                             void *hcpu)
diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.h
index 8e713aa477..8e8f4ac4c5 100644
--- a/xen/arch/arm/include/asm/gic.h
+++ b/xen/arch/arm/include/asm/gic.h
@@ -280,6 +280,12 @@ extern int gicv_setup(struct domain *d);
 extern void gic_save_state(struct vcpu *v);
 extern void gic_restore_state(struct vcpu *v);
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+/* Suspend/resume */
+extern int gic_suspend(void);
+extern void gic_resume(void);
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 /* SGI (AKA IPIs) */
 enum gic_sgi {
     GIC_SGI_EVENT_CHECK,
@@ -423,6 +429,12 @@ struct gic_hw_operations {
     int (*iomem_deny_access)(struct domain *d);
     /* Handle LPIs, which require special handling */
     void (*do_LPI)(unsigned int lpi);
+#ifdef CONFIG_SYSTEM_SUSPEND
+    /* Save GIC configuration due to the system suspend */
+    int (*suspend)(void);
+    /* Restore GIC configuration due to the system resume */
+    void (*resume)(void);
+#endif /* CONFIG_SYSTEM_SUSPEND */
 };
 
 extern const struct gic_hw_operations *gic_hw_ops;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 18:45:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 18:45:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184546.1506959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfk-0003Lk-4s; Thu, 11 Dec 2025 18:45:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184546.1506959; Thu, 11 Dec 2025 18:45:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfk-0003LY-0Z; Thu, 11 Dec 2025 18:45:52 +0000
Received: by outflank-mailman (input) for mailman id 1184546;
 Thu, 11 Dec 2025 18:45:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QWGN=6R=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vTlfi-0003I9-Hb
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 18:45:50 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9bcab944-d6c1-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 19:45:48 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b76b5afdf04so81056866b.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 10:45:48 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-4.as6723.net. [185.5.253.4])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa5d0b0dsm345870466b.67.2025.12.11.10.45.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Dec 2025 10:45:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9bcab944-d6c1-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765478747; x=1766083547; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=aDNyNuv61rTQkRcvMIs1ekn0SWXLuqr0Rx/eBFoPIHY=;
        b=fP4WAbMXo5yR4S3go4lsuZhtx2TS0SFOW/N8XF4pnZLovGy6bopu2wD5VXsIhJ98i/
         vdHU9IA4nmhHNs+eZPw0Tfy59kHT+bL9ncnl0FRU6FpvBmpBMevONv116GErXvg0T+VM
         c0QdOA968Qk6YQ5bvPuqMSxPH2W1NV2KCrw+XjXCIdyBl8fV5IR/9vsz6CGPzk25HHW/
         uX8P6WTLa6saaGb7Egt7qaKY30fSo3ohJOoQRk6fxnAZbSzc8sIVOi9J3IE3wDAYEMTL
         m8K2p82aTIkTVVJX0Ld5v5L3RstJECAZ9qMfhe6IYlyHYGZDRKpkPcW87uFOLvAt8UXv
         CZTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765478747; x=1766083547;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aDNyNuv61rTQkRcvMIs1ekn0SWXLuqr0Rx/eBFoPIHY=;
        b=J9fAWJk7Ai/RtZGSqDzcA9NHDTGRzznJBvGaX5N6nhlONnxE/e/Jtc/G5uWsmje1+t
         UrFm+FPDWikq8IPLacbIZJv6xHMCECIMgERMfO4fIMfx8LVAU5EzvktI0B9vbZ3xYg4k
         ksbR79xVfBLEqC+AAYZ/JICNj9KgQogD6rGzBy+Q0R+i3Zs0FyE91Td9+XSqKJQn2DE0
         lVMouXf753CeCAzdltQ1Y/8j6JYz9f3wU+qMNcWdQ692NB7A69l9/EQPW5hTo/GUvooQ
         jiEqjzW2ho4DGYvEIuE59vg526ObP2rf1sci6nf3vJWzHEcrhjv4B/H3poyIGKjiCxmX
         dz3A==
X-Gm-Message-State: AOJu0YyZ97peVn4Q9ZF0TShxdmwp+HvQTsX+snwl43Rzv+T8VuOjQ2qb
	f269Xj46J+N8kNHG7NXGwN25XpTMszQwLOIOytE7af/3BlsZINRwRCze9qNOU28v
X-Gm-Gg: AY/fxX4hfC+KYNI4IR+pVzrYdfvE6JAnsfdC7u78jRVbJ+w9nlwa4uIay7Whokz07Fr
	/0wh2aekHKg7FrhWsh1BsGvERMDPXaKZQJuexrdJ9hJJBZkk5hJ8jWjXAPZEfaa21BzeD+xeyG9
	AJsH4mX4QScnVV4R+GDmPvdCDn20QX9NdXYhlVDvHXliRtK/DJSQpRmMjE4CyvVQSjqjFkGLxlQ
	8BjIjpDu/AL0GFX7GrAhxQcNQ03Qw/vKOZI03ENH/J2KS/CBmpKAbUx1KQQHRpfRQu6yCdtuKqQ
	UI4c5aU/r/KjBCNZpIkt+eX7dM82iEo7ZGQpGv4k22X1WFe/2N/FfyJ1v38V5KImyFB4hKL6qLg
	ysdv0slci+Gb4dIRxohpfZZVIhG7lroMXEiQVUtgwHcOLL1dXRj1raB1xuoP2dZXgLyzsDGvbN/
	L+QbkTrf7w5nZtMSJ8hPx9oFydohhKxZCQ4mCLs29/
X-Google-Smtp-Source: AGHT+IFm4NeTfQ9xmDk7GfTvvFZ9mCEEJhtzChUQNcs8E9MYwMmZt5mL0u7P9Pmlmjh5XlxyPuE1Gw==
X-Received: by 2002:a17:907:3cca:b0:b73:853d:540e with SMTP id a640c23a62f3a-b7ce841d73emr743131966b.30.1765478746840;
        Thu, 11 Dec 2025 10:45:46 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Mykola Kvach <xakep.amatop@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Rahul Singh <rahul.singh@arm.com>
Subject: [PATCH v7 00/12] Add initial Xen Suspend-to-RAM support on ARM64 
Date: Thu, 11 Dec 2025 20:43:24 +0200
Message-ID: <cover.1765472890.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

This is part 2 of version 7 of the ARM Xen system suspend/resume patch
series, based on earlier work by Mirela Simonovic and Mykyta Poturai.

The first part is here:
https://patchew.org/Xen/cover.1764755558.git.xakep.amatop@gmail.com/

NOTE: Most of the code is guarded by CONFIG_SYSTEM_SUSPEND, which can
currently only be selected when UNSUPPORTED is set, and thus the
functionality is neither enabled by default nor even built.

This version is ported to Xen master and includes extensive improvements
based on reviewer feedback. The patch series restructures code to improve
robustness, maintainability, and implements system Suspend-to-RAM support
on ARM64 hardware/control domains.

Key updates in this series:
 - Introduced architecture-specific suspend/resume infrastructure
 - Integrated GICv2/GICv3 suspend and resume, including memory-backed context
   save/restore with error handling
 - Added time and IRQ suspend/resume hooks, ensuring correct timer/interrupt
   state across suspend cycles
 - Implemented proper PSCI SYSTEM_SUSPEND invocation and version checks
 - Improved state management and recovery in error cases during suspend/resume
 - Added support for IPMMU-VMSA/SMMUv3 context save/restore
 - Added support for GICv3 eSPI registers context save/restore
 - Added support for ITS registers context save/restore
---

TODOs:
 - Enable "xl suspend" support on ARM
 - Properly disable Xen timer watchdog from relevant services (only init.d left)
 - Add suspend/resume CI test for ARM (QEMU if feasible)
---

Detailed changelogs can be found in each patch.

Changes in v7:
- Timer helper renamed/clarified; virtual/hyper/phys handling documented.
- GICv2 uses one context block; restore saved CTLR; panic on alloc failure.
- GICv3/eSPI/ITS always suspend/resume; restore LPI/eSPI; rdist timeout.
- IPMMU suspend context allocated before PCI setup.
- System suspend: control domain drives host suspend.
- Dropped v6 IRQ descriptor restore patches; use setup_irq and re-register
  local IRQs on resume instead.

For earlier changelogs, please refer to the previous cover letters.

Mirela Simonovic (6):
  xen/arm: Add suspend and resume timer helpers
  xen/arm: gic-v2: Implement GIC suspend/resume functions
  xen/arm: Resume memory management on Xen resume
  xen/arm: Save/restore context on suspend/resume
  xen/arm: Implement PSCI SYSTEM_SUSPEND call (host interface)
  xen/arm: Add support for system suspend triggered by control domain

Mykola Kvach (5):
  xen/arm: gic-v3: Implement GICv3 suspend/resume functions
  xen/arm: gic-v3: add ITS suspend/resume support
  xen/arm: tee: keep init_tee_secondary() for hotplug and resume
  xen/arm: ffa: fix notification SRI across CPU hotplug/suspend
  arm/smmu-v3: add suspend/resume handlers

Oleksandr Tyshchenko (1):
  iommu/ipmmu-vmsa: Implement suspend/resume callbacks

 xen/arch/arm/Kconfig                     |   1 +
 xen/arch/arm/Makefile                    |   1 +
 xen/arch/arm/arm64/head.S                | 112 ++++++++
 xen/arch/arm/gic-v2.c                    | 126 +++++++++
 xen/arch/arm/gic-v3-its.c                |  91 +++++++
 xen/arch/arm/gic-v3-lpi.c                |   3 +
 xen/arch/arm/gic-v3.c                    | 332 ++++++++++++++++++++++-
 xen/arch/arm/gic.c                       |  29 ++
 xen/arch/arm/include/asm/gic.h           |  12 +
 xen/arch/arm/include/asm/gic_v3_defs.h   |   1 +
 xen/arch/arm/include/asm/gic_v3_its.h    |  23 ++
 xen/arch/arm/include/asm/mm.h            |   2 +
 xen/arch/arm/include/asm/psci.h          |   1 +
 xen/arch/arm/include/asm/suspend.h       |  31 +++
 xen/arch/arm/include/asm/time.h          |   5 +
 xen/arch/arm/mmu/smpboot.c               |   2 +-
 xen/arch/arm/psci.c                      |  23 +-
 xen/arch/arm/suspend.c                   | 153 +++++++++++
 xen/arch/arm/tee/ffa_notif.c             |  63 ++++-
 xen/arch/arm/tee/tee.c                   |   2 +-
 xen/arch/arm/time.c                      |  44 ++-
 xen/arch/arm/vpsci.c                     |  12 +-
 xen/common/Kconfig                       |   5 +
 xen/common/domain.c                      |   7 +-
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 305 ++++++++++++++++++++-
 xen/drivers/passthrough/arm/smmu-v3.c    | 170 +++++++++---
 xen/drivers/passthrough/arm/smmu.c       |  10 +
 xen/include/xen/list.h                   |  14 +
 28 files changed, 1507 insertions(+), 73 deletions(-)
 create mode 100644 xen/arch/arm/suspend.c

-- 
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Dec 11 18:45:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 18:45:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184545.1506954 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfj-0003IW-R6; Thu, 11 Dec 2025 18:45:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184545.1506954; Thu, 11 Dec 2025 18:45:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfj-0003IP-Nz; Thu, 11 Dec 2025 18:45:51 +0000
Received: by outflank-mailman (input) for mailman id 1184545;
 Thu, 11 Dec 2025 18:45:50 +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
 <SRS0=QWGN=6R=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vTlfi-0003I8-Fb
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 18:45:50 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9c700df4-d6c1-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 19:45:49 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b770f4accc0so77284166b.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 10:45:49 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-4.as6723.net. [185.5.253.4])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa5d0b0dsm345870466b.67.2025.12.11.10.45.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Dec 2025 10:45:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9c700df4-d6c1-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765478748; x=1766083548; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tX1Fz0zPBQzk2eDKaQqJOs/xihDeP0j+jDiBR8XzM1w=;
        b=PEYCGL9+Lc2cDiL7DCeZT2XJ+aXRajwTTz+5n5r1AELWboYLg5NIxjTX+FQJpJ0wF7
         JUIjuav4iZ4Dw6gjnvwRVm7Egxjo96FnFXvXHrCpXMB37X7/kW7myUTsctO+7fDXagj3
         bhlxmVIZOGlxmzplc3KGkY7s1nR2FZBG0H+0f8PJBdYkzTlGRPclWETNaOs4ngR/s2TD
         mqNEcqQrW99fEm0l04Lq+o07aR8Wp3HAyMJJA5pm/YOgOr3hQY+4j46cM8Q5iPR9G3Ra
         BM92/TQsVnubz4bKNw3ePnZGdHbX39NzPDnVEkzBHUOItFt2figjR7qwYuO0x9iQbCIb
         O4Bg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765478748; x=1766083548;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=tX1Fz0zPBQzk2eDKaQqJOs/xihDeP0j+jDiBR8XzM1w=;
        b=c/mjExmCXfk54moZ8BHEJYAFlCpGyE3/YfwnrvepRdW7fze1PPJUABwi31o+tOVFxP
         9IrV3e6cV6e4zRb+ePsupfOPVndaRp/z2HO+Z2f5ESXZHQCmrlsDeQUtbE3/Gm78jUre
         NiM6IEKlSPiLwe9cIjYuCivyg+e8qiIJlKVza3seE35HM8WUfJS/Xiy9uXaLz1mkuTgg
         3ZUjuMWJryfgWsV6ishnDYNcz8XiofwBNcVpThuR/MgFhp60Dga/M7FzqtKosGaLTaOs
         jHUv6n9IDvxtn1SUGhwvUMhC+ZmrP3iM2x5MO4P76avZOqOeWJ9buUJ3ciBymE1tqS07
         qdPA==
X-Gm-Message-State: AOJu0YwvYVAlvW9Vm0CvUsVELFtDj34Rf2ZZNpFStDx+511cflSL1v10
	y7wNxuAhSxMt3sbrVgb2JP1ew/W/EiR1xd6ahds5JHMc0KMY7Gg4jSOPzYiPYLaQ
X-Gm-Gg: AY/fxX4NGDPWvtpEUBz0nMrglyUqx91wMJJJiOp6KRy3EuF38BjQlg1urnEVscJl5tB
	6z99nBim4rk5zgB/ejBs/D3wic2eZ/hJUgTSNF9dFgk8gngiHnba/adW6iUMmYZmHwdO8xkSTny
	MGIFgf0RNiMwv9SV0+tvYeEXhGJms0YYhyCtzRgQEQYhmRXdABFhALlQZDG06tW7ujPXgXIqEyU
	OyxltFiLcK2FZs5LI8vdtlY2eqznjaUo68llfcHcjrtFBF7LmgHabAU7q/keg4Qp1dd7rMt8ge4
	wRnfvUkVTSD/cLhfL+a59pzAEtaK2zMUKUm9TdPu8D4t9Ekz/uwNrvWjazY3AqxbyV9ljckxxo1
	bfqtQ07aiTPf2TEFC0Sel77F2Z1TisXDXQUNxoozVlpDWJEyD/zCJtltXrlFPgREROIdzxmS5z/
	8CKs3WHZBKp5dKXdPHknUj8/uJ1y9X8KOg70/F4f/6
X-Google-Smtp-Source: AGHT+IFtIgtxvZQd2O4KXziacvx35KTlgnY3AYtRsNoNXddsn3jOrLbe7ti6bJQfTJv3enbKUwDNPg==
X-Received: by 2002:a17:907:9718:b0:b5c:66ce:bfe6 with SMTP id a640c23a62f3a-b7ce84d963amr692216066b.55.1765478748133;
        Thu, 11 Dec 2025 10:45:48 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Mykola Kvach <xakep.amatop@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Saeed Nowshadi <saeed.nowshadi@xilinx.com>
Subject: [PATCH v7 01/12] xen/arm: Add suspend and resume timer helpers
Date: Thu, 11 Dec 2025 20:43:25 +0200
Message-ID: <6eb8f80c070f6b1198814df8d80dcc2e60d44ea8.1765472890.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1765472890.git.mykola_kvach@epam.com>
References: <cover.1765472890.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mirela Simonovic <mirela.simonovic@aggios.com>

Timer interrupts must be disabled while the system is suspended to prevent
spurious wake-ups. Suspending timers in Xen consists of disabling the
physical timer and the hypervisor timer on the current CPU. The virtual
timer does not need explicit handling here, as it is already disabled on
vCPU context switch and its state is restored per-vCPU on the next context
restore.

Resuming consists of raising TIMER_SOFTIRQ, which prompts the generic
timer code to reprogram the hypervisor timer with the correct timeout.

Xen does not use or expose the physical timer, so it remains disabled
across suspend/resume.

Introduce a new helper, disable_phys_hyp_timers(), to encapsulate disabling
of the physical and hypervisor timers.

Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V7:
  - Dropped EL1/EL2 wording; use "physical timer" and "hypervisor timer"
  - Renamed helper to disable_phys_hyp_timers() to reflect its actual scope
  - Clarified virtual timer handling (disabled on vCPU switch-out, restored on
    context restore) and added comments in suspend/resume paths
  - Added resume comment explaining which timers are restored by TIMER_SOFTIRQ
---
 xen/arch/arm/include/asm/time.h |  5 ++++
 xen/arch/arm/time.c             | 44 ++++++++++++++++++++++++++++-----
 2 files changed, 43 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/include/asm/time.h b/xen/arch/arm/include/asm/time.h
index 49ad8c1a6d..f4fd0c6af5 100644
--- a/xen/arch/arm/include/asm/time.h
+++ b/xen/arch/arm/include/asm/time.h
@@ -108,6 +108,11 @@ void preinit_xen_time(void);
 
 void force_update_vcpu_system_time(struct vcpu *v);
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+void time_suspend(void);
+void time_resume(void);
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 #endif /* __ARM_TIME_H__ */
 /*
  * Local variables:
diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
index 3710eab109..b90dc6c68c 100644
--- a/xen/arch/arm/time.c
+++ b/xen/arch/arm/time.c
@@ -306,6 +306,14 @@ static void check_timer_irq_cfg(unsigned int irq, const char *which)
 static DEFINE_PER_CPU_READ_MOSTLY(struct irqaction, irq_hyp);
 static DEFINE_PER_CPU_READ_MOSTLY(struct irqaction, irq_virt);
 
+/* Disable physical and hypervisor timers on the current CPU */
+static inline void disable_phys_hyp_timers(void)
+{
+    WRITE_SYSREG(0, CNTP_CTL_EL0);    /* Physical timer disabled */
+    WRITE_SYSREG(0, CNTHP_CTL_EL2);   /* Hypervisor's timer disabled */
+    isb();
+}
+
 /* Set up the timer interrupt on this CPU */
 void init_timer_interrupt(void)
 {
@@ -316,9 +324,7 @@ void init_timer_interrupt(void)
     WRITE_SYSREG64(0, CNTVOFF_EL2);     /* No VM-specific offset */
     /* Do not let the VMs program the physical timer, only read the physical counter */
     WRITE_SYSREG(CNTHCTL_EL2_EL1PCTEN, CNTHCTL_EL2);
-    WRITE_SYSREG(0, CNTP_CTL_EL0);    /* Physical timer disabled */
-    WRITE_SYSREG(0, CNTHP_CTL_EL2);   /* Hypervisor's timer disabled */
-    isb();
+    disable_phys_hyp_timers();
 
     hyp_action->name = "hyptimer";
     hyp_action->handler = htimer_interrupt;
@@ -343,9 +349,7 @@ void init_timer_interrupt(void)
  */
 static void deinit_timer_interrupt(void)
 {
-    WRITE_SYSREG(0, CNTP_CTL_EL0);    /* Disable physical timer */
-    WRITE_SYSREG(0, CNTHP_CTL_EL2);   /* Disable hypervisor's timer */
-    isb();
+    disable_phys_hyp_timers();
 
     release_irq(timer_irq[TIMER_HYP_PPI], NULL);
     release_irq(timer_irq[TIMER_VIRT_PPI], NULL);
@@ -385,6 +389,34 @@ void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds)
     /* XXX update guest visible wallclock time */
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+void time_suspend(void)
+{
+    /* CNTV already disabled by virt_timer_save() during vcpu context switch. */
+    disable_phys_hyp_timers();
+}
+
+void time_resume(void)
+{
+    /*
+     * Raising TIMER_SOFTIRQ triggers generic timer code to reprogram the
+     * hypervisor timer with the correct timeout (not known here).
+     *
+     * Xen doesn't use or expose the physical timer, so it remains disabled
+     * across suspend/resume.
+     *
+     * The virtual timer state is restored per-vCPU on the next context switch.
+     *
+     * No further action is needed to restore timekeeping after power down,
+     * since the system counter is unaffected. See ARM DDI 0487 L.a, D12.1.2
+     * "The system counter must be implemented in an always-on power domain."
+     */
+    raise_softirq(TIMER_SOFTIRQ);
+}
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 static int cpu_time_callback(struct notifier_block *nfb,
                              unsigned long action,
                              void *hcpu)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 18:45:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 18:45:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184548.1506984 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfn-0003zT-Sg; Thu, 11 Dec 2025 18:45:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184548.1506984; Thu, 11 Dec 2025 18:45:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfn-0003zK-Ok; Thu, 11 Dec 2025 18:45:55 +0000
Received: by outflank-mailman (input) for mailman id 1184548;
 Thu, 11 Dec 2025 18:45:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QWGN=6R=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vTlfm-0003I9-3B
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 18:45:54 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9e00d190-d6c1-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 19:45:51 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-6495c4577adso611014a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 10:45:51 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-4.as6723.net. [185.5.253.4])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa5d0b0dsm345870466b.67.2025.12.11.10.45.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Dec 2025 10:45:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9e00d190-d6c1-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765478751; x=1766083551; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EhE7q8NSEMoDW1qyGPa35+oWlUcqnOapH/rPEjyoD/A=;
        b=nf0yLhwri1OPMOZn9ELvUFlnbFmIMgiunksCSKPETK4r4I94B58PvYoCYozM5mDOw2
         EgWVbsP50653DI03suGDI/RmMtZQrJLA8U8WdrFMpzthnYdNQkAp87Cv69IUYaSx2c1I
         wgGibAp2AS0403dgqdLg/Us+ATzj4ERiJDDncUNn9jyFfN8EHVOre6P9c8kiCgEYHhlZ
         B4mhbKeov254MWKfkGdONwHGwQPQNipr6Pk2PsWcaxK48wQSK7WsaFtLm5CpXTvheWXf
         rql+/4eKOTAEDWpiyrk50PPDMvf3eziWL0QhatF87EvmHaUh1Fq6q5HJ08iizDku3KFH
         fr2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765478751; x=1766083551;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=EhE7q8NSEMoDW1qyGPa35+oWlUcqnOapH/rPEjyoD/A=;
        b=F7EcjmRgdTvxdCfqUxJnvV2r27Pv2wtsgIXrPO96r61UYzS+Hsyp9DUduxIzpI1p1m
         aiOhm85M1a8weCA7uZZZNSSfOWhRPwW+3G+MVw2qkz6f+G/1sFQX1tF9qgB+YOUNC3RR
         uM/MPCkYqQ/ARnMGHqz4rIX8tTFkKajUTknyk46HLbCdDr3Wg+Q77Q5AetnEzgntZ1q8
         rLLjQ5bwbgZpbjkENm7X8sPgc9zoFJ8hQPlKkF/aGQneGAv76spcxWvScNpXfA4A6mQQ
         iPCcjOMtqc3mmHaP6V7l6HvjYyCOMmF11R2C3GgC3dDp9R159/O9vm5jlokN/NQU5uZ4
         6Q1Q==
X-Gm-Message-State: AOJu0YyYwpwEbQqYRpYzcg54PWU7DwbWlDlawvk+u3IAD6Q6cUA++2Q2
	AEb+wBi7OMgn38f9hDZCu/+J2+LCKGJJ1qDgSWBRI6wp7zZ+EeqESIMrGkYmKq9I
X-Gm-Gg: AY/fxX50tEYlxEvAJXt4oHTwLN88F0e+AG5QCzlgIKB+KpHCVGQdhO3x8erZWsg8v1T
	Sn8CQcd1h1ACKNGPJmPM8rzqFOn3qhv1HFc5+B2M3WqOTZ4c4YlHEl5aM2IslJanVJWU1hQwfN0
	lsU3ougqua5bZoK6cyOdP170TuOOH6Ndzj63/Ic5jhRxrJg+piw+w8Fh3djtj4Ds935te0T1YrL
	/1HUmLKWnC4auH3RvfVVCRtihYkhhXzvTe4AEeSYJch1yUJo/sKpZf9HbvNW4F+f2A6gOAVpqvF
	Cy2fSeR3e+3bW9M6JPLZscSp08DQoj5l0GrV2mRHcr1scOxuDnWJASUr7iDpsLKb0D0MsSKDZ7p
	HlixeboIMMVSgwF3l2CmOdCbhUvVsD0TOdxcObyshusZvDVaDtIcPdmz22jsFbZo96ji2D17BNg
	PzDnW3pQbAvyQ6cF9YDQDB0PL9SXZzCuO37puP5W/C
X-Google-Smtp-Source: AGHT+IGcxLBqr3Vz1ok6ptsy7e2VcUY46QzsnsOsCXMZoVS/cKgBMR9zbKpr6lkMP6pdgI2BkNLDvA==
X-Received: by 2002:a17:907:97d6:b0:b73:74d6:d360 with SMTP id a640c23a62f3a-b7ce8477b36mr771357466b.40.1765478750723;
        Thu, 11 Dec 2025 10:45:50 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Mykola Kvach <xakep.amatop@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v7 03/12] xen/arm: gic-v3: Implement GICv3 suspend/resume functions
Date: Thu, 11 Dec 2025 20:43:27 +0200
Message-ID: <9f084beff76e40fed2138ba2d59145a96b930c63.1765472890.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1765472890.git.mykola_kvach@epam.com>
References: <cover.1765472890.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

System suspend may lead to a state where GIC would be powered down.
Therefore, Xen should save/restore the context of GIC on suspend/resume.

Note that the context consists of states of registers which are
controlled by the hypervisor. Other GIC registers which are accessible
by guests are saved/restored on context switch.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V7:
- restore LPI regs on resume
- add timeout during redist disabling
- squash with suspend/resume handling for GICv3 eSPI registers
- drop ITS guard paths so suspend/resume always runs; switch missing ctx
  allocation to panic
- trim TODO comments; narrow redistributor storage to PPI icfgr
- keep distributor context allocation even without ITS; adjust resume
  to use GENMASK(31, 0) for clearing enables
- drop storage of the SGI configuration register, as SGIs are always
  edge-triggered
---
 xen/arch/arm/gic-v3-lpi.c              |   3 +
 xen/arch/arm/gic-v3.c                  | 319 ++++++++++++++++++++++++-
 xen/arch/arm/include/asm/gic_v3_defs.h |   1 +
 3 files changed, 320 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/gic-v3-lpi.c b/xen/arch/arm/gic-v3-lpi.c
index de5052e5cf..61a6e18303 100644
--- a/xen/arch/arm/gic-v3-lpi.c
+++ b/xen/arch/arm/gic-v3-lpi.c
@@ -391,6 +391,9 @@ static int cpu_callback(struct notifier_block *nfb, unsigned long action,
     switch ( action )
     {
     case CPU_UP_PREPARE:
+        if ( system_state == SYS_STATE_resume )
+            break;
+
         rc = gicv3_lpi_allocate_pendtable(cpu);
         if ( rc )
             printk(XENLOG_ERR "Unable to allocate the pendtable for CPU%lu\n",
diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index bc07f97c16..dc5e58066d 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -1067,12 +1067,12 @@ out:
     return res;
 }
 
-static void gicv3_hyp_disable(void)
+static void gicv3_hyp_enable(bool enable)
 {
     register_t hcr;
 
     hcr = READ_SYSREG(ICH_HCR_EL2);
-    hcr &= ~GICH_HCR_EN;
+    hcr = enable ? (hcr | GICH_HCR_EN) : (hcr & ~GICH_HCR_EN);
     WRITE_SYSREG(hcr, ICH_HCR_EL2);
     isb();
 }
@@ -1179,7 +1179,7 @@ static void gicv3_disable_interface(void)
     spin_lock(&gicv3.lock);
 
     gicv3_cpu_disable();
-    gicv3_hyp_disable();
+    gicv3_hyp_enable(false);
 
     spin_unlock(&gicv3.lock);
 }
@@ -1915,6 +1915,311 @@ static bool gic_dist_supports_lpis(void)
     return (readl_relaxed(GICD + GICD_TYPER) & GICD_TYPE_LPIS);
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+/* This struct represent block of 32 IRQs */
+struct dist_irq_block {
+    uint32_t icfgr[2];
+    uint32_t ipriorityr[8];
+    uint64_t irouter[32];
+    uint32_t isactiver;
+    uint32_t isenabler;
+};
+
+struct redist_ctx {
+    uint32_t ctlr;
+    uint32_t icfgr; /* only PPIs stored */
+    uint32_t igroupr;
+    uint32_t ipriorityr[8];
+    uint32_t isactiver;
+    uint32_t isenabler;
+
+    uint64_t pendbase;
+    uint64_t propbase;
+};
+
+/* GICv3 registers to be saved/restored on system suspend/resume */
+struct gicv3_ctx {
+    struct dist_ctx {
+        uint32_t ctlr;
+        struct dist_irq_block *irqs, *espi_irqs;
+    } dist;
+
+    /* have only one rdist structure for last running CPU during suspend */
+    struct redist_ctx rdist;
+
+    struct cpu_ctx {
+        uint32_t ctlr;
+        uint32_t pmr;
+        uint32_t bpr;
+        uint32_t sre_el2;
+        uint32_t grpen;
+    } cpu;
+};
+
+static struct gicv3_ctx gicv3_ctx;
+
+static void __init gicv3_alloc_context(void)
+{
+    uint32_t blocks = DIV_ROUND_UP(gicv3_info.nr_lines, 32);
+
+    /* The spec allows for systems without any SPIs */
+    if ( blocks > 1 )
+    {
+        gicv3_ctx.dist.irqs = xzalloc_array(struct dist_irq_block, blocks - 1);
+        if ( !gicv3_ctx.dist.irqs )
+            panic("Failed to allocate memory for GICv3 suspend context\n");
+    }
+
+#ifdef CONFIG_GICV3_ESPI
+    if ( !gic_number_espis() )
+        return;
+
+    blocks = gic_number_espis() / 32;
+    gicv3_ctx.dist.espi_irqs = xzalloc_array(struct dist_irq_block, blocks);
+    if ( !gicv3_ctx.dist.espi_irqs )
+        panic("Failed to allocate memory for GICv3 eSPI suspend context\n");
+#endif
+}
+
+static int gicv3_disable_redist(void)
+{
+    void __iomem* waker = GICD_RDIST_BASE + GICR_WAKER;
+    s_time_t deadline;
+
+    /*
+     * Avoid infinite loop if Non-secure does not have access to GICR_WAKER.
+     * See Arm IHI 0069H.b, 12.11.42 GICR_WAKER:
+     *     When GICD_CTLR.DS == 0 and an access is Non-secure accesses to this
+     *     register are RAZ/WI.
+     */
+    if ( !(readl_relaxed(GICD + GICD_CTLR) & GICD_CTLR_DS) )
+        return 0;
+
+    deadline = NOW() + MILLISECS(1000);
+
+    writel_relaxed(readl_relaxed(waker) | GICR_WAKER_ProcessorSleep, waker);
+    while ( (readl_relaxed(waker) & GICR_WAKER_ChildrenAsleep) == 0 )
+    {
+        if ( NOW() > deadline )
+        {
+            printk("GICv3: Timeout waiting for redistributor to sleep\n");
+            return -ETIMEDOUT;
+        }
+        cpu_relax();
+        udelay(10);
+    }
+
+    return 0;
+}
+
+#define GET_SPI_REG_OFFSET(name, is_espi) \
+    ((is_espi) ? GICD_##name##nE : GICD_##name)
+
+static void gicv3_store_spi_irq_block(struct dist_irq_block *irqs,
+                                      unsigned int i, bool is_espi)
+{
+    void __iomem *base;
+    unsigned int irq;
+
+    base = GICD + GET_SPI_REG_OFFSET(ICFGR, is_espi) + i * sizeof(irqs->icfgr);
+    irqs->icfgr[0] = readl_relaxed(base);
+    irqs->icfgr[1] = readl_relaxed(base + 4);
+
+    base = GICD + GET_SPI_REG_OFFSET(IPRIORITYR, is_espi);
+    base += i * sizeof(irqs->ipriorityr);
+    for ( irq = 0; irq < ARRAY_SIZE(irqs->ipriorityr); irq++ )
+        irqs->ipriorityr[irq] = readl_relaxed(base + 4 * irq);
+
+    base = GICD + GET_SPI_REG_OFFSET(IROUTER, is_espi);
+    base += i * sizeof(irqs->irouter);
+    for ( irq = 0; irq < ARRAY_SIZE(irqs->irouter); irq++ )
+        irqs->irouter[irq] = readq_relaxed_non_atomic(base + 8 * irq);
+
+    base = GICD + GET_SPI_REG_OFFSET(ISACTIVER, is_espi);
+    base += i * sizeof(irqs->isactiver);
+    irqs->isactiver = readl_relaxed(base);
+
+    base = GICD + GET_SPI_REG_OFFSET(ISENABLER, is_espi);
+    base += i * sizeof(irqs->isenabler);
+    irqs->isenabler = readl_relaxed(base);
+}
+
+static void gicv3_restore_spi_irq_block(struct dist_irq_block *irqs,
+                                        unsigned int i, bool is_espi)
+{
+    void __iomem *base;
+    unsigned int irq;
+
+    base = GICD + GET_SPI_REG_OFFSET(ICFGR, is_espi) + i * sizeof(irqs->icfgr);
+    writel_relaxed(irqs->icfgr[0], base);
+    writel_relaxed(irqs->icfgr[1], base + 4);
+
+    base = GICD + GET_SPI_REG_OFFSET(IPRIORITYR, is_espi);
+    base += i * sizeof(irqs->ipriorityr);
+    for ( irq = 0; irq < ARRAY_SIZE(irqs->ipriorityr); irq++ )
+        writel_relaxed(irqs->ipriorityr[irq], base + 4 * irq);
+
+    base = GICD + GET_SPI_REG_OFFSET(IROUTER, is_espi);
+    base += i * sizeof(irqs->irouter);
+    for ( irq = 0; irq < ARRAY_SIZE(irqs->irouter); irq++ )
+        writeq_relaxed_non_atomic(irqs->irouter[irq], base + 8 * irq);
+
+    base = GICD + GET_SPI_REG_OFFSET(ICENABLER, is_espi) + i * 4;
+    writel_relaxed(GENMASK(31, 0), base);
+
+    base = GICD + GET_SPI_REG_OFFSET(ISENABLER, is_espi);
+    base += i * sizeof(irqs->isenabler);
+    writel_relaxed(irqs->isenabler, base);
+
+    base = GICD + GET_SPI_REG_OFFSET(ICACTIVER, is_espi) + i * 4;
+    writel_relaxed(GENMASK(31, 0), base);
+
+    base = GICD + GET_SPI_REG_OFFSET(ISACTIVER, is_espi);
+    base += i * sizeof(irqs->isactiver);
+    writel_relaxed(irqs->isactiver, base);
+}
+
+static int gicv3_suspend(void)
+{
+    unsigned int i;
+    void __iomem *base;
+    int ret;
+    struct redist_ctx *rdist = &gicv3_ctx.rdist;
+
+    /* Save GICC configuration */
+    gicv3_ctx.cpu.ctlr     = READ_SYSREG(ICC_CTLR_EL1);
+    gicv3_ctx.cpu.pmr      = READ_SYSREG(ICC_PMR_EL1);
+    gicv3_ctx.cpu.bpr      = READ_SYSREG(ICC_BPR1_EL1);
+    gicv3_ctx.cpu.sre_el2  = READ_SYSREG(ICC_SRE_EL2);
+    gicv3_ctx.cpu.grpen    = READ_SYSREG(ICC_IGRPEN1_EL1);
+
+    gicv3_disable_interface();
+
+    ret = gicv3_disable_redist();
+    if ( ret )
+        return out_enable_iface;
+
+    /* Save GICR configuration */
+    gicv3_redist_wait_for_rwp();
+
+    base = GICD_RDIST_SGI_BASE;
+
+    rdist->ctlr = readl_relaxed(base + GICR_CTLR);
+
+    /* Save priority on PPI and SGI interrupts */
+    for ( i = 0; i < NR_GIC_LOCAL_IRQS / 4; i++ )
+        rdist->ipriorityr[i] = readl_relaxed(base + GICR_IPRIORITYR0 + 4 * i);
+
+    rdist->isactiver = readl_relaxed(base + GICR_ISACTIVER0);
+    rdist->isenabler = readl_relaxed(base + GICR_ISENABLER0);
+    rdist->igroupr   = readl_relaxed(base + GICR_IGROUPR0);
+    rdist->icfgr     = readl_relaxed(base + GICR_ICFGR1);
+
+    rdist->propbase = readq_relaxed(base + GICR_PROPBASER);
+    rdist->pendbase = readq_relaxed(base + GICR_PENDBASER);
+
+    /* Save GICD configuration */
+    gicv3_dist_wait_for_rwp();
+    gicv3_ctx.dist.ctlr = readl_relaxed(GICD + GICD_CTLR);
+
+    for ( i = 1; i < DIV_ROUND_UP(gicv3_info.nr_lines, 32); i++ )
+        gicv3_store_spi_irq_block(gicv3_ctx.dist.irqs + i - 1, i, false);
+
+#ifdef CONFIG_GICV3_ESPI
+    for ( i = 0; i < gic_number_espis() / 32; i++ )
+        gicv3_store_spi_irq_block(gicv3_ctx.dist.espi_irqs + i, i, true);
+#endif
+
+    return 0;
+
+ out_enable_iface:
+    gicv3_hyp_enable(true);
+    WRITE_SYSREG(gicv3_ctx.cpu.ctlr, ICC_CTLR_EL1);
+    isb();
+
+    return ret;
+}
+
+static void gicv3_resume(void)
+{
+    int ret;
+    unsigned int i;
+    void __iomem *base;
+    struct redist_ctx *rdist = &gicv3_ctx.rdist;
+
+    writel_relaxed(0, GICD + GICD_CTLR);
+
+    for ( i = NR_GIC_LOCAL_IRQS; i < gicv3_info.nr_lines; i += 32 )
+        writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPR + (i / 32) * 4);
+
+    for ( i = 1; i < DIV_ROUND_UP(gicv3_info.nr_lines, 32); i++ )
+        gicv3_restore_spi_irq_block(gicv3_ctx.dist.irqs + i - 1, i, false);
+
+#ifdef CONFIG_GICV3_ESPI
+    for ( i = 0; i < gic_number_espis() / 32; i++ )
+        gicv3_restore_spi_irq_block(gicv3_ctx.dist.espi_irqs + i, i, true);
+#endif
+
+    writel_relaxed(gicv3_ctx.dist.ctlr, GICD + GICD_CTLR);
+    gicv3_dist_wait_for_rwp();
+
+    ret = gicv3_lpi_init_rdist(GICD_RDIST_BASE);
+    /*
+     * If LPIs are already enabled, assume firmware or the still-powered
+     * redistributor has valid PROPBASER/PENDBASER and skip reprogramming.
+     * Return -EBUSY so callers can ignore this case.
+     */
+    if ( ret && ret != -ENODEV && ret != -EBUSY )
+        panic("GICv3: Failed to re-initialize LPIs during resume\n");
+    else if ( ret == -EBUSY ) /* extra checks, just to be sure */
+    {
+        base = GICD_RDIST_BASE;
+        if ( readq_relaxed(base + GICR_PROPBASER) != rdist->propbase ||
+             readq_relaxed(base + GICR_PENDBASER) != rdist->pendbase )
+        {
+            panic("GICv3: LPIs already enabled with unexpected PROPBASER/PENDBASER during resume\n");
+        }
+    }
+
+    /* Restore GICR (Redistributor) configuration */
+    if ( gicv3_enable_redist() )
+        panic("GICv3: Failed to re-enable redistributor during resume\n");
+
+    base = GICD_RDIST_SGI_BASE;
+
+    writel_relaxed(GENMASK(31, 0), base + GICR_ICENABLER0);
+    gicv3_redist_wait_for_rwp();
+
+    for ( i = 0; i < NR_GIC_LOCAL_IRQS / 4; i++ )
+        writel_relaxed(rdist->ipriorityr[i], base + GICR_IPRIORITYR0 + i * 4);
+
+    writel_relaxed(rdist->isactiver, base + GICR_ISACTIVER0);
+    writel_relaxed(rdist->igroupr,   base + GICR_IGROUPR0);
+    writel_relaxed(rdist->icfgr,     base + GICR_ICFGR1);
+
+    gicv3_redist_wait_for_rwp();
+
+    writel_relaxed(rdist->isenabler, base + GICR_ISENABLER0);
+    writel_relaxed(rdist->ctlr, GICD_RDIST_BASE + GICR_CTLR);
+
+    gicv3_redist_wait_for_rwp();
+
+    WRITE_SYSREG(gicv3_ctx.cpu.sre_el2, ICC_SRE_EL2);
+    isb();
+
+    /* Restore CPU interface (System registers) */
+    WRITE_SYSREG(gicv3_ctx.cpu.pmr,   ICC_PMR_EL1);
+    WRITE_SYSREG(gicv3_ctx.cpu.bpr,   ICC_BPR1_EL1);
+    WRITE_SYSREG(gicv3_ctx.cpu.ctlr,  ICC_CTLR_EL1);
+    WRITE_SYSREG(gicv3_ctx.cpu.grpen, ICC_IGRPEN1_EL1);
+    isb();
+
+    gicv3_hyp_init();
+}
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 /* Set up the GIC */
 static int __init gicv3_init(void)
 {
@@ -1989,6 +2294,10 @@ static int __init gicv3_init(void)
 
     gicv3_hyp_init();
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+    gicv3_alloc_context();
+#endif
+
 out:
     spin_unlock(&gicv3.lock);
 
@@ -2028,6 +2337,10 @@ static const struct gic_hw_operations gicv3_ops = {
 #endif
     .iomem_deny_access   = gicv3_iomem_deny_access,
     .do_LPI              = gicv3_do_LPI,
+#ifdef CONFIG_SYSTEM_SUSPEND
+    .suspend             = gicv3_suspend,
+    .resume              = gicv3_resume,
+#endif
 };
 
 static int __init gicv3_dt_preinit(struct dt_device_node *node, const void *data)
diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/include/asm/gic_v3_defs.h
index c373b94d19..992c8f9c2f 100644
--- a/xen/arch/arm/include/asm/gic_v3_defs.h
+++ b/xen/arch/arm/include/asm/gic_v3_defs.h
@@ -94,6 +94,7 @@
 #define GICD_TYPE_LPIS               (1U << 17)
 
 #define GICD_CTLR_RWP                (1UL << 31)
+#define GICD_CTLR_DS                 (1U << 6)
 #define GICD_CTLR_ARE_NS             (1U << 4)
 #define GICD_CTLR_ENABLE_G1A         (1U << 1)
 #define GICD_CTLR_ENABLE_G1          (1U << 0)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 18:45:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 18:45:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184549.1506990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfo-000436-8z; Thu, 11 Dec 2025 18:45:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184549.1506990; Thu, 11 Dec 2025 18:45:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfo-00042t-1i; Thu, 11 Dec 2025 18:45:56 +0000
Received: by outflank-mailman (input) for mailman id 1184549;
 Thu, 11 Dec 2025 18:45:54 +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
 <SRS0=QWGN=6R=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vTlfm-0003I8-QQ
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 18:45:54 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9f5d2dff-d6c1-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 19:45:54 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-b736d883ac4so80879166b.2
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 10:45:54 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-4.as6723.net. [185.5.253.4])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa5d0b0dsm345870466b.67.2025.12.11.10.45.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Dec 2025 10:45:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9f5d2dff-d6c1-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765478753; x=1766083553; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Tm0K7gfsRpBFVrENvrubslPphiODpeHwAJ+aZ5FZLuc=;
        b=VAtN9ae8nNmfC4oN1F4H4AKYzL+oZDGTL4OYCeAN6OK5L+kxX9rFYbErtaowWWOSSB
         8Kz7BUIME292K5+MkMRQZXV8jn83caFqqXOHp3pnCP8UYUq76CHlkS/8TTz7+3IA/yyn
         Z1sN8+r/JuQqBAPTFBkU6ixyTEbH2amdkcP4KJLSDtNdqen968IkVBoyi/TUvk9OPtfV
         3AsiCRf7cIkswQMuSFsm8TqpH4IH/UEtDaLJpwBkvukyJA14wnUbzoz+iM5137PJufQ+
         POGOlFsg8gW/c3lgAXcqYWOsPnA5+JWHtmwDrwAxK209H2cWfQrXw7eBErMAYysJFNBA
         8aDQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765478753; x=1766083553;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Tm0K7gfsRpBFVrENvrubslPphiODpeHwAJ+aZ5FZLuc=;
        b=SkrsbzEl6ojawM3qN/is+iRHV9N+bEGRqXX9bNyUpv3f/8Vw9J6mUH0uvogTqQMM9k
         JjR86jA+OJn4F91qqFW6IwKLMdJbiELrey45c+K1+6Q4wLxGeor1DOjrpRCDQeDs3GvY
         GRJT8w0BNHk5AQgsfGgCutOHUlaNYP77pb/jS7lRqTjNhvyk3cVVvzfrE3f8Wc6qj8fa
         Z5V9dc5+HI3paMUdBgzg1WLQXd0gNEFQ7RCgxWe2lGIO2UHoHZMII2cMGz4i5vW0rtuJ
         DUsoeENc7XSNiozfjOOx2WjpD+AwEneNvWegUa13L2GSyFYb5KfZX4ZmNrADwWqunzF0
         upqA==
X-Gm-Message-State: AOJu0YzNotDLwY9yGqJhbjWVfUODzAhb4RCIGEqX6SDJjXJCnzrMPiTb
	i4QRSmQZ8/FtEHXsUzLTM41PrlJMo8k7TQCum7mwf8VpS1cJ/F5TkoU69+E1WVxJ
X-Gm-Gg: AY/fxX5pgfkAG4kAqGWrN9szAQ5Vtjaky5+jjLUYrVQFtSexOkZZhTp1npiuXYPMef7
	aTDivUBNKSx3H5aNfRyhE+edDGxhg0pEPQrP84Ucoxbd42LbK56lDX3aiRLDG6LnAAyYfYI6ANZ
	p6/jS4FmjQYRInjmbuYd8XS90RpOy8ysq9oD3D8YbKTStEiOG0wCaPc6Kn0JAgGMneOSsM8EhhV
	+u5mUoOIa9SNYgHZ/ZgT7tV6HvKBSBsGC99+R9PkDb5vbXwZLnDUo+6ZAilspjnk76Wzz+I7G7/
	KV6HvURiJQ474crDPSlRlU6fPOYu+8sRYRExqVMpPCK8cQbgQIGX1++xc42b7xbsveC2/j/0bxI
	Nhnj/gZXgkh8Et087grbsyQkQq++/d9QfMq//y7KfItiEZz8OqP13cFtPCm/O+W6uZK93lABLwj
	YMp1LryfGEuiWqV6E/cjbnNcHXggj0fBISSy8rIQQw7hP0leFijlU=
X-Google-Smtp-Source: AGHT+IE1B4v2NPTDPe7SduJz6oPKzgzBUZogvMigM1+f1OFVFif+aNHzSsolQ3PFCykuMUtOq1+ttg==
X-Received: by 2002:a17:907:9602:b0:b73:5acd:465e with SMTP id a640c23a62f3a-b7ce82322a4mr699424166b.11.1765478753252;
        Thu, 11 Dec 2025 10:45:53 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Mykola Kvach <xakep.amatop@gmail.com>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v7 05/12] xen/arm: tee: keep init_tee_secondary() for hotplug and resume
Date: Thu, 11 Dec 2025 20:43:29 +0200
Message-ID: <a4378a4679851d62dd9897f599ad92a63acea2f0.1765472890.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1765472890.git.mykola_kvach@epam.com>
References: <cover.1765472890.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

init_tee_secondary() was marked __init and freed after boot. Calling it
from the CPU hotplug/resume path then executed discarded code, which
could crash Xen. Drop __init so the TEE mediator secondary init can run
safely on hotplugged and resumed CPUs.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
 xen/arch/arm/tee/tee.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/tee/tee.c b/xen/arch/arm/tee/tee.c
index 8501443c8e..00e561fc78 100644
--- a/xen/arch/arm/tee/tee.c
+++ b/xen/arch/arm/tee/tee.c
@@ -128,7 +128,7 @@ static int __init tee_init(void)
 
 presmp_initcall(tee_init);
 
-void __init init_tee_secondary(void)
+void init_tee_secondary(void)
 {
     if ( cur_mediator && cur_mediator->ops->init_secondary )
         cur_mediator->ops->init_secondary();
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 18:45:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 18:45:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184550.1507004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfp-0004QG-Jn; Thu, 11 Dec 2025 18:45:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184550.1507004; Thu, 11 Dec 2025 18:45:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfp-0004Pq-D3; Thu, 11 Dec 2025 18:45:57 +0000
Received: by outflank-mailman (input) for mailman id 1184550;
 Thu, 11 Dec 2025 18:45:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QWGN=6R=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vTlfn-0003I9-3E
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 18:45:55 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9ec41371-d6c1-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 19:45:53 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-b73161849e1so115603166b.2
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 10:45:53 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-4.as6723.net. [185.5.253.4])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa5d0b0dsm345870466b.67.2025.12.11.10.45.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Dec 2025 10:45:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9ec41371-d6c1-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765478752; x=1766083552; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WjTxMfuV2ry3Bt7T4zhRYcS+sdtazS8raHtB9fvxlRg=;
        b=bSK4HOzoiDQFYjIoVqXY8kgjJzSpETDmYnfBEXRZvNANGQKTm9p0ywKqG6wUyFDTqS
         wBDtJSeHow1HjXEcDSyoeZvBNAIXwqPq61HriEpCSPxmsrLCQZVSjoo5KqLJt1GbgeXw
         TsLRJmHYbJlSR8R5GjwsqTzDiTK3Rahk2+LIZhVbwaW7lxCv4TGecUN6CSgkxIAfEx/7
         KaoTQ02/8T28EvCL+XR/kn4+18vqWAbOjbgU/k97Db5bDfYnRE2XnkJZYDI56HSvKo76
         UszKHjSy4dkLt3v6ubejN6jnP2ps4z/h5zJeg0L8gM6DYG76Oh1fedP0xAlKbRbRso8Z
         SC3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765478752; x=1766083552;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=WjTxMfuV2ry3Bt7T4zhRYcS+sdtazS8raHtB9fvxlRg=;
        b=KVOP8djSmzo9sUmMBYDQlvz0PxSDlCmVenS4PBmhEw1mGWrgrDtmj7cgekm71akmQ/
         ZjGzjQ4UynoIO5kHOvjkmwvaduXdBIhSg3NB43q2U0U6hTwkbDv6/flrqSoHCyTkWXBZ
         ULcBSoyddL73223FegwpQV51cgi5OYbVXQcbfnRYq5woCM0iWBbBGJrcsr3p+FdHv3Kz
         YR7B/ShCP0Ij745lBcDoQfQotCLHrOU4IK/pX/GijIVX/h3Sqf2Qi+ZBNh2BcZOtVtOu
         1Zghxh1uturvqe02uordyiqX4k3w8TcH3AIBANseOAYkdfWWdFbAX/pb4Ow+PIfMmubc
         xmPg==
X-Gm-Message-State: AOJu0Yy2ktTjTdAGe2B51dqscPixiUu3KJ2OOH+remT9PaGJML79Emyp
	v3F39tg9vgCqr17Gz80Kv8xrxsqf0Nr2/toVYRnhKPQALs3TFk+G6bX1jMVj6v6b
X-Gm-Gg: AY/fxX7DhzUGnnkieP3XiI24XtyGUa5CWywMOmm50EWvBX58bND16ZBqFnK9N9eFw0V
	cW5zmbpWUTmdVLZXd+JPewGNguKGH0UCMLgejP0B0f2BaEXWlDXwba2G7d5anyIFT24hMrAgtuH
	O2xSxWVRv/PC7nxI5BGb499NL9mL2U/n4GJ0egaHhaTdCW2y6eK0oNx6w/yczoJmnRCHw/zHl8O
	F77k1R3P0q3Lk7nBXhAGBjkRgGhiT75wDB7qcSgEkUU+HlrA2ia1Z4bS8jXyjRouJXVjo4QD+uk
	zUSZXYjGrhuuhsw9FvJkfxXXn7bN6kCM5iwoqD+nGdUSnM/F6bKVcx1+q5DmTCk+qRzpbqj16z6
	u6oBiNts5SB63xcq/JVOD/YylnSCBsH7LD5ugT7roF+1D7lGp4n9LDvRbIuG/ZLS2oTDLlSLvBL
	VW+et9th2N0mIcbAEzpVTP+lEnmfThvQQhgGLJLVN8
X-Google-Smtp-Source: AGHT+IFjRICZYFD+6bCjcyCTiWc0ssNriVYuF6uCkR9q+ZlpE+Pm25lA1i4Aqp+4yHS6qOgburziRw==
X-Received: by 2002:a17:907:9282:b0:b79:cef7:6574 with SMTP id a640c23a62f3a-b7ce822f461mr839551466b.4.1765478751978;
        Thu, 11 Dec 2025 10:45:51 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Mykola Kvach <xakep.amatop@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v7 04/12] xen/arm: gic-v3: add ITS suspend/resume support
Date: Thu, 11 Dec 2025 20:43:28 +0200
Message-ID: <2fade2b96128053fbe3ed59f1d5e3444b32b96c3.1765472890.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1765472890.git.mykola_kvach@epam.com>
References: <cover.1765472890.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Handle system suspend/resume for GICv3 with an ITS present so LPIs keep
working after firmware powers the GIC down. Snapshot the CPU interface,
distributor and last-CPU redistributor state, disable the ITS to cache its
CTLR/CBASER/BASER registers, then restore everything and re-arm the
collection on resume.

Add list_for_each_entry_continue_reverse() in list.h for the ITS suspend
error path that needs to roll back partially saved state.

Based on Linux commit: dba0bc7b76dc ("irqchip/gic-v3-its: Add ability to save/restore ITS state")
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
 xen/arch/arm/gic-v3-its.c             | 91 +++++++++++++++++++++++++++
 xen/arch/arm/gic-v3.c                 | 15 ++++-
 xen/arch/arm/include/asm/gic_v3_its.h | 23 +++++++
 xen/include/xen/list.h                | 14 +++++
 4 files changed, 140 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
index 34833166ad..08a3d8d1ef 100644
--- a/xen/arch/arm/gic-v3-its.c
+++ b/xen/arch/arm/gic-v3-its.c
@@ -1209,6 +1209,97 @@ int gicv3_its_init(void)
     return 0;
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+int gicv3_its_suspend(void)
+{
+    struct host_its *its;
+    int ret;
+
+    list_for_each_entry(its, &host_its_list, entry)
+    {
+        unsigned int i;
+        void __iomem *base = its->its_base;
+
+        its->suspend_ctx.ctlr = readl_relaxed(base + GITS_CTLR);
+        ret = gicv3_disable_its(its);
+        if ( ret )
+        {
+            writel_relaxed(its->suspend_ctx.ctlr, base + GITS_CTLR);
+            goto err;
+        }
+
+        its->suspend_ctx.cbaser = readq_relaxed(base + GITS_CBASER);
+
+        for (i = 0; i < GITS_BASER_NR_REGS; i++) {
+            uint64_t baser = readq_relaxed(base + GITS_BASER0 + i * 8);
+
+            if ( !(baser & GITS_VALID_BIT) )
+                continue;
+
+            its->suspend_ctx.baser[i] = baser;
+        }
+    }
+
+    return 0;
+
+ err:
+    list_for_each_entry_continue_reverse(its, &host_its_list, entry)
+        writel_relaxed(its->suspend_ctx.ctlr, its->its_base + GITS_CTLR);
+
+    return ret;
+}
+
+void gicv3_its_resume(void)
+{
+    struct host_its *its;
+    int ret;
+
+    list_for_each_entry(its, &host_its_list, entry)
+    {
+        void __iomem *base;
+        unsigned int i;
+
+        base = its->its_base;
+
+        /*
+         * Make sure that the ITS is disabled. If it fails to quiesce,
+         * don't restore it since writing to CBASER or BASER<n>
+         * registers is undefined according to the GIC v3 ITS
+         * Specification.
+         *
+         * Firmware resuming with the ITS enabled is terminally broken.
+         */
+        WARN_ON(readl_relaxed(base + GITS_CTLR) & GITS_CTLR_ENABLE);
+        ret = gicv3_disable_its(its);
+        if ( ret )
+            continue;
+
+        writeq_relaxed(its->suspend_ctx.cbaser, base + GITS_CBASER);
+
+        /*
+         * Writing CBASER resets CREADR to 0, so make CWRITER and
+         * cmd_write line up with it.
+         */
+        writeq_relaxed(0, base + GITS_CWRITER);
+
+        /* Restore GITS_BASER from the value cache. */
+        for (i = 0; i < GITS_BASER_NR_REGS; i++) {
+            uint64_t baser = its->suspend_ctx.baser[i];
+
+            if ( !(baser & GITS_VALID_BIT) )
+                continue;
+
+            writeq_relaxed(baser, base + GITS_BASER0 + i * 8);
+        }
+        writel_relaxed(its->suspend_ctx.ctlr, base + GITS_CTLR);
+    }
+
+    ret = gicv3_its_setup_collection(smp_processor_id());
+    if ( ret )
+        panic("GICv3: ITS: resume setup collection failed: %d\n", ret);
+}
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
 
 /*
  * Local variables:
diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index dc5e58066d..cde76b182f 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -857,7 +857,7 @@ static bool gicv3_enable_lpis(void)
     return true;
 }
 
-static int __init gicv3_populate_rdist(void)
+static int gicv3_populate_rdist(void)
 {
     int i;
     uint32_t aff;
@@ -927,7 +927,7 @@ static int __init gicv3_populate_rdist(void)
                     ret = gicv3_lpi_init_rdist(ptr);
                     if ( ret && ret != -ENODEV )
                     {
-                        printk("GICv3: CPU%d: Cannot initialize LPIs: %u\n",
+                        printk("GICv3: CPU%d: Cannot initialize LPIs: %d\n",
                                smp_processor_id(), ret);
                         break;
                     }
@@ -2096,9 +2096,13 @@ static int gicv3_suspend(void)
 
     gicv3_disable_interface();
 
+    ret = gicv3_its_suspend();
+    if ( ret )
+        goto out_enable_iface;
+
     ret = gicv3_disable_redist();
     if ( ret )
-        return out_enable_iface;
+        goto out_its_resume;
 
     /* Save GICR configuration */
     gicv3_redist_wait_for_rwp();
@@ -2133,6 +2137,9 @@ static int gicv3_suspend(void)
 
     return 0;
 
+ out_its_resume:
+    gicv3_its_resume();
+
  out_enable_iface:
     gicv3_hyp_enable(true);
     WRITE_SYSREG(gicv3_ctx.cpu.ctlr, ICC_CTLR_EL1);
@@ -2205,6 +2212,8 @@ static void gicv3_resume(void)
 
     gicv3_redist_wait_for_rwp();
 
+    gicv3_its_resume();
+
     WRITE_SYSREG(gicv3_ctx.cpu.sre_el2, ICC_SRE_EL2);
     isb();
 
diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include/asm/gic_v3_its.h
index fc5a84892c..492c468ae0 100644
--- a/xen/arch/arm/include/asm/gic_v3_its.h
+++ b/xen/arch/arm/include/asm/gic_v3_its.h
@@ -129,6 +129,13 @@ struct host_its {
     spinlock_t cmd_lock;
     void *cmd_buf;
     unsigned int flags;
+#ifdef CONFIG_SYSTEM_SUSPEND
+    struct suspend_ctx {
+        uint32_t ctlr;
+        uint64_t cbaser;
+        uint64_t baser[GITS_BASER_NR_REGS];
+    } suspend_ctx;
+#endif
 };
 
 /* Map a collection for this host CPU to each host ITS. */
@@ -204,6 +211,11 @@ uint64_t gicv3_its_get_cacheability(void);
 uint64_t gicv3_its_get_shareability(void);
 unsigned int gicv3_its_get_memflags(void);
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+int gicv3_its_suspend(void);
+void gicv3_its_resume(void);
+#endif
+
 #else
 
 #ifdef CONFIG_ACPI
@@ -271,6 +283,17 @@ static inline int gicv3_its_make_hwdom_dt_nodes(const struct domain *d,
     return 0;
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+static inline int gicv3_its_suspend(void)
+{
+    return 0;
+}
+
+static inline void gicv3_its_resume(void)
+{
+}
+#endif
+
 #endif /* CONFIG_HAS_ITS */
 
 #endif
diff --git a/xen/include/xen/list.h b/xen/include/xen/list.h
index 98d8482dab..87c940ac3b 100644
--- a/xen/include/xen/list.h
+++ b/xen/include/xen/list.h
@@ -535,6 +535,20 @@ static inline void list_splice_init(struct list_head *list,
          &(pos)->member != (head);                                        \
          (pos) = list_entry((pos)->member.next, typeof(*(pos)), member))
 
+/**
+ * list_for_each_entry_continue_reverse - iterate backwards from the given point
+ * @pos:    the type * to use as a loop cursor.
+ * @head:   the head for your list.
+ * @member: the name of the list_head within the struct.
+ *
+ * Start to iterate over list of given type backwards, continuing after
+ * the current position.
+ */
+#define list_for_each_entry_continue_reverse(pos, head, member)           \
+    for ((pos) = list_entry((pos)->member.prev, typeof(*(pos)), member);  \
+         &(pos)->member != (head);                                        \
+         (pos) = list_entry((pos)->member.prev, typeof(*(pos)), member))
+
 /**
  * list_for_each_entry_from - iterate over list of given type from the
  *                            current point
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 18:45:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 18:45:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184551.1507010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfq-0004aO-7M; Thu, 11 Dec 2025 18:45:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184551.1507010; Thu, 11 Dec 2025 18:45:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfq-0004Yl-0K; Thu, 11 Dec 2025 18:45:58 +0000
Received: by outflank-mailman (input) for mailman id 1184551;
 Thu, 11 Dec 2025 18:45:56 +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
 <SRS0=QWGN=6R=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vTlfo-0003I8-4x
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 18:45:56 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a01b52bc-d6c1-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 19:45:55 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-64198771a9bso828655a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 10:45:55 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-4.as6723.net. [185.5.253.4])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa5d0b0dsm345870466b.67.2025.12.11.10.45.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Dec 2025 10:45:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a01b52bc-d6c1-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765478754; x=1766083554; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rz0HDghJ0IsRbhxCGz59UWa71x4c1jNbwB3bP+NDcUo=;
        b=KWAP0RRJySseb9OVoG9E0sONatv2MyeoRDoINiWn5kEZFyOflwwtu+K24cGS/JGwvf
         cB8xYP4HD2EOYzynuOHeaH8kiaGE2IdFCM2e5wLBiK6aiGdL1c+DBCkmJWJPykI9c3+G
         UcMZBC+hp6K/wQKLiBiC9vz2ao0fc3zGUUK3BChJAAtS3Iclc9Ev10yHV8wZijQrWEgM
         O8D6KTkrvLytYSXbpFNYOZGQwOnj/IkfWcMhGf5Xck9SJYfZdxwvXF4uq38daF0dGiWn
         5VwB8ty8FJGzSqxuxPCnVYxQYP2r+U3SSMekclraC7LahhbOU6080hh9sW1nhKnSQt+0
         Lm+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765478754; x=1766083554;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=rz0HDghJ0IsRbhxCGz59UWa71x4c1jNbwB3bP+NDcUo=;
        b=mv/CYCTkYF9jRrfWz+mg5DrFKpbUa4utNb4yYurniQy6KS6xe3p3fu1Tn/BhSjeoO8
         hPuekvHJBta5NOwEpym5VtjUvwXZaO6Pya8ZA9uBUuVv2HRjBMT7YFCeRshAk8nrBm8f
         ILYjpjYMmttNYJ9NLZo8AdOy/5d0OimgDu9O7+ZGdEX4g0LtTCQRPrIilgAlVj7iyuaM
         d6kSBChLRk5WFFktDJVNSNcT9iaZa4KvoYq7OYjBknsHX5qhMBAHCgBJ6JQmwjdCcX36
         VeTl/YRNGIh82gAcZSQaz1ZfeBoMEMuoTHZAgaiBWEtQm8S5EuxwB27BE7C3VLGqkGyq
         PSMQ==
X-Gm-Message-State: AOJu0YzlWglAbmOLPGN6BCgVRHFkvRcJKSI75FU/eet+SPubCddsXWsq
	kYtkSrULFN+JEs/IBbY2iCv9hrmzAlqYkhRVdxkY+1IJauf5q8f4dUCEdj2BNOnG
X-Gm-Gg: AY/fxX4NhdNTr/e3Zgc7eNMFQOFtW8aNvrISRLSMFpBOgYNiBOy8Mtx+yJDGfOaPDk5
	gowerT8pXLspaPhdfAp3eVqx3c845Fgbhd7LpaCrnxlXolNjT9iSCRq6371Q7nAl5h+tKXDFulI
	9rh2CXQHeZ8cYwfGllARLcopXcKH9pRS23xWtYegrLC+AtSipkrAyLCW3ZPCyTYJY8VTOztnKLX
	AuHnO2365P1dlHVoyZ+/A9CfVQNkyE2z6ikLABRejusviHeSCG51ANFU9eY7H6KSzsqF0zcpZnb
	klkcZ9oKUmH6saCMa/H9kRv9rjGh60KUHCNED9mP7dYA/Qy037mL3rRvpodJiHjjd+/3T6zuR3t
	mYLcZkz5yuVxZOe9vslkBN3q/pgt9LTIv7VUWdRI6cK6Z6Tf8mr9CErSa8u44mYZlPv62RMpd2R
	+qmoSAQzpFaP7n7u3wBgIbVUVFl7TyGJGOj7gb+Yst
X-Google-Smtp-Source: AGHT+IFl62FZ0FgJSyr4XEZouQeIWhJVM6kfXy3OW7rtGR1k5t90f62MNqwbncILJbOinFyLpJdUeA==
X-Received: by 2002:a17:907:d10:b0:b73:210a:44e with SMTP id a640c23a62f3a-b7ce8414319mr770611666b.30.1765478754270;
        Thu, 11 Dec 2025 10:45:54 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Mykola Kvach <xakep.amatop@gmail.com>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v7 06/12] xen/arm: ffa: fix notification SRI across CPU hotplug/suspend
Date: Thu, 11 Dec 2025 20:43:30 +0200
Message-ID: <d08aa453e3302105648fd4b4f5872ee88f16c660.1765472890.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1765472890.git.mykola_kvach@epam.com>
References: <cover.1765472890.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

The FF-A notification SRI interrupt handler was not correctly tied to
CPU hotplug and suspend/resume. As a result, CPUs going offline and
back online could end up with stale or missing handlers, breaking
delivery of FF-A notifications.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
 xen/arch/arm/tee/ffa_notif.c | 63 ++++++++++++++++++++++++++++--------
 1 file changed, 50 insertions(+), 13 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
index 86bef6b3b2..84f5c6b43b 100644
--- a/xen/arch/arm/tee/ffa_notif.c
+++ b/xen/arch/arm/tee/ffa_notif.c
@@ -359,10 +359,28 @@ static int32_t ffa_notification_bitmap_destroy(uint16_t vm_id)
     return ffa_simple_call(FFA_NOTIFICATION_BITMAP_DESTROY, vm_id, 0, 0, 0);
 }
 
-void ffa_notif_init_interrupt(void)
+static DEFINE_PER_CPU_READ_MOSTLY(struct irqaction, sri_irq);
+
+static int request_sri_irq(void)
 {
     int ret;
+    struct irqaction *sri_action = &this_cpu(sri_irq);
+
+    sri_action->name = "FF-A notif";
+    sri_action->handler = notif_irq_handler;
+    sri_action->dev_id = NULL;
+    sri_action->free_on_release = 0;
+
+    ret = setup_irq(notif_sri_irq, 0, sri_action);
+    if ( ret )
+        printk(XENLOG_ERR "ffa: setup_irq irq %u failed: error %d\n",
+               notif_sri_irq, ret);
 
+    return ret;
+}
+
+void ffa_notif_init_interrupt(void)
+{
     if ( fw_notif_enabled && notif_sri_irq < NR_GIC_SGI )
     {
         /*
@@ -375,14 +393,36 @@ void ffa_notif_init_interrupt(void)
          * pending, while the SPMC in the secure world will not notice that
          * the interrupt was lost.
          */
-        ret = request_irq(notif_sri_irq, 0, notif_irq_handler, "FF-A notif",
-                          NULL);
-        if ( ret )
-            printk(XENLOG_ERR "ffa: request_irq irq %u failed: error %d\n",
-                   notif_sri_irq, ret);
+        request_sri_irq();
     }
 }
 
+static void deinit_ffa_notif_interrupt(void)
+{
+    if ( fw_notif_enabled && notif_sri_irq < NR_GIC_SGI )
+        release_irq(notif_sri_irq, NULL);
+}
+
+static int cpu_ffa_notif_callback(struct notifier_block *nfb,
+                             unsigned long action,
+                             void *hcpu)
+{
+    switch ( action )
+    {
+    case CPU_DYING:
+        deinit_ffa_notif_interrupt();
+        break;
+    default:
+        break;
+    }
+
+    return NOTIFY_DONE;
+}
+
+static struct notifier_block cpu_ffa_notif_nfb = {
+    .notifier_call = cpu_ffa_notif_callback,
+};
+
 void ffa_notif_init(void)
 {
     const struct arm_smccc_1_2_regs arg = {
@@ -391,7 +431,6 @@ void ffa_notif_init(void)
     };
     struct arm_smccc_1_2_regs resp;
     unsigned int irq;
-    int ret;
 
     /* Only enable fw notification if all ABIs we need are supported */
     if ( ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_CREATE) &&
@@ -407,13 +446,11 @@ void ffa_notif_init(void)
         notif_sri_irq = irq;
         if ( irq >= NR_GIC_SGI )
             irq_set_type(irq, IRQ_TYPE_EDGE_RISING);
-        ret = request_irq(irq, 0, notif_irq_handler, "FF-A notif", NULL);
-        if ( ret )
-        {
-            printk(XENLOG_ERR "ffa: request_irq irq %u failed: error %d\n",
-                   irq, ret);
+
+        if ( request_sri_irq() )
             return;
-        }
+
+        register_cpu_notifier(&cpu_ffa_notif_nfb);
         fw_notif_enabled = true;
     }
 }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 18:46:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 18:46:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184552.1507024 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfs-00052j-EQ; Thu, 11 Dec 2025 18:46:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184552.1507024; Thu, 11 Dec 2025 18:46:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfs-00052Y-9j; Thu, 11 Dec 2025 18:46:00 +0000
Received: by outflank-mailman (input) for mailman id 1184552;
 Thu, 11 Dec 2025 18:45:58 +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
 <SRS0=QWGN=6R=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vTlfq-0003I8-OZ
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 18:45:58 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a1a96d36-d6c1-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 19:45:57 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-b734fcbf1e3so90814766b.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 10:45:58 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-4.as6723.net. [185.5.253.4])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa5d0b0dsm345870466b.67.2025.12.11.10.45.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Dec 2025 10:45:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a1a96d36-d6c1-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765478757; x=1766083557; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YyX+DKhss3Tir9n7VoBzOtKgYwwNvTr5WMzP0cAUYTo=;
        b=SeqabM84oMlxwqvC9qGw216lkj/k6KV2LnAvS0TPSvHsyRLEN/t2xMUrxPRl8qqYnK
         o1hzMP15Q2yDfptcZKqlFrqVPiSNnyShUcryIaKEmqEsQZTImE3HgfQWMh4FbIuADwlK
         VynWznj/G9dqfOWi9DTiAVM76ItI21u1+dDa64zmEd/mGIuMg+X/HPppdNJWs8yaQctx
         OAoy69Hq+kEp87Ub/0kqNQQKm3TBk5sm3yNm0QFaisBE2sleRBSbNhmEySnP6fgKQaxB
         hq4CtStARO8ACsbW27XHsbkku3zm0O/71jywK6WT0hWkUBuWoEpLusFnt7yRlktkVIZ2
         1lGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765478757; x=1766083557;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=YyX+DKhss3Tir9n7VoBzOtKgYwwNvTr5WMzP0cAUYTo=;
        b=bb3ayGURspc+VaQNkBWEp5NQbkBdElX37swNx56XOe41UMlVoBWwl3KmagthXQtqRc
         zxvVewya7kspU/ly2blIoHACz61CHQqkxv/SmZH/bk/Yg5PNEc/uHMyDB5g5bixUCN3+
         4ODA0KqkQ8sPJdlSAryzNNVGvjH59D/jAYTvbGGUbryrBY3oOR4PhOJexpY3I6XeKQkR
         VFHT5qKCZOPwcgQzlHz0LrRuLBIMF9G44kojDrV3eIIqJAj+I9pK1GoWl27601E3OdN6
         T15FepqEPxp0pV0KBTYFnUS5YC9yg2CyXNJYQVPufM2FBvr9rhFT30wITEpFyrqDo3iZ
         9wDQ==
X-Gm-Message-State: AOJu0Yw9FNZwarjCXykUs1z4rZla+CjgaSezchPNPpP5xxM1Ocw70/uj
	pWtNBMjZnSjtTaSbGAPKTkqsSij+Y7FJriaX8vhIqfZMqJeaoPkGRxMCp0cmF5P4
X-Gm-Gg: AY/fxX5S3XQ9XxJ6wT/ztpgsEdWea2B38IJ/7aUdQkpYicv3disAl2aZLuHOna4e4by
	Fl5sWNHDLPVJnSlfp7WeMH1unMrE2NX1DmNnwac34criY3HeAQ/l6nU7yikr6qIXKen5rXeiW+b
	4pY2thGg7BUTZufzav042/m+OUn+7H1JgwafvbCaJXjDhEMnsKZUnvwJbdvGgCcSZyH+7lEA8Kj
	xLAQBvPVaSMUFBFJc8GYnAG5slwyZm7ULz/UOZfqVyPYf95rCpJMJgOJcOroM0KGjkzqZZeJpsO
	T1B1+82rgCpsTyIt5f5QzIfFGNcnIKu0pV+hrFsUSn2HFXVucCbqgjxax9psyTH4ES4uSe1Kj6o
	RR03HnDoTnUGeN/1xd5hUZ24OE7yhGE1q9+EbEwQIBkrJNCJKwco+XmbWHZvpoSifXfOgcM2H55
	16QuQVox02Z1uAQ31kBDKEVy0jXBqgk5679Prc1DVE
X-Google-Smtp-Source: AGHT+IHqZwnZeJZ9SiPy9sMGvjH5yQTECZVUy2zQSTwn/fCCIricEV1JkHIoYJqUXa8UozBVjbaDgw==
X-Received: by 2002:a17:907:6ea7:b0:b73:5c12:3f8a with SMTP id a640c23a62f3a-b7ce826e8b7mr710504466b.18.1765478756907;
        Thu, 11 Dec 2025 10:45:56 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Mykola Kvach <xakep.amatop@gmail.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Rahul Singh <rahul.singh@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Pranjal Shrivastava <praan@google.com>
Subject: [PATCH v7 08/12] arm/smmu-v3: add suspend/resume handlers
Date: Thu, 11 Dec 2025 20:43:32 +0200
Message-ID: <58c1873d355f5ea9b5182349895905d25cb57256.1765472890.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1765472890.git.mykola_kvach@epam.com>
References: <cover.1765472890.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Before we suspend SMMU, we want to ensure that all commands (especially
ATC_INV) have been flushed by the CMDQ, i.e. the CMDQs are empty.

The suspend callback configures the SMMU to abort new transactions,
disables the main translation unit and then drains the command queue
to ensure completion of any in-flight commands.

The resume callback performs a full device reset via 'arm_smmu_device_reset'
to bring the SMMU back to an operational state.

Link: https://lore.kernel.org/linux-iommu/20251117191433.3360130-1-praan@google.com	/
Based-on-patch-by: Pranjal Shrivastava <praan@google.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
 xen/drivers/passthrough/arm/smmu-v3.c | 170 ++++++++++++++++++++------
 1 file changed, 134 insertions(+), 36 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
index bf153227db..10c4c5dee0 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -1814,8 +1814,7 @@ static int arm_smmu_write_reg_sync(struct arm_smmu_device *smmu, u32 val,
 }
 
 /* GBPA is "special" */
-static int __init arm_smmu_update_gbpa(struct arm_smmu_device *smmu,
-                                       u32 set, u32 clr)
+static int arm_smmu_update_gbpa(struct arm_smmu_device *smmu, u32 set, u32 clr)
 {
 	int ret;
 	u32 reg, __iomem *gbpa = smmu->base + ARM_SMMU_GBPA;
@@ -1995,10 +1994,29 @@ err_free_evtq_irq:
 	return ret;
 }
 
+static int arm_smmu_enable_irqs(struct arm_smmu_device *smmu)
+{
+	int ret;
+	u32 irqen_flags = IRQ_CTRL_EVTQ_IRQEN | IRQ_CTRL_GERROR_IRQEN;
+
+	if ( smmu->features & ARM_SMMU_FEAT_PRI )
+		irqen_flags |= IRQ_CTRL_PRIQ_IRQEN;
+
+	/* Enable interrupt generation on the SMMU */
+	ret = arm_smmu_write_reg_sync(smmu, irqen_flags,
+				      ARM_SMMU_IRQ_CTRL, ARM_SMMU_IRQ_CTRLACK);
+	if ( ret )
+	{
+		dev_warn(smmu->dev, "failed to enable irqs\n");
+		return ret;
+	}
+
+	return 0;
+}
+
 static int __init arm_smmu_setup_irqs(struct arm_smmu_device *smmu)
 {
 	int ret, irq;
-	u32 irqen_flags = IRQ_CTRL_EVTQ_IRQEN | IRQ_CTRL_GERROR_IRQEN;
 
 	/* Disable IRQs first */
 	ret = arm_smmu_write_reg_sync(smmu, 0, ARM_SMMU_IRQ_CTRL,
@@ -2028,22 +2046,7 @@ static int __init arm_smmu_setup_irqs(struct arm_smmu_device *smmu)
 		}
 	}
 
-	if (smmu->features & ARM_SMMU_FEAT_PRI)
-		irqen_flags |= IRQ_CTRL_PRIQ_IRQEN;
-
-	/* Enable interrupt generation on the SMMU */
-	ret = arm_smmu_write_reg_sync(smmu, irqen_flags,
-				      ARM_SMMU_IRQ_CTRL, ARM_SMMU_IRQ_CTRLACK);
-	if (ret) {
-		dev_warn(smmu->dev, "failed to enable irqs\n");
-		goto err_free_irqs;
-	}
-
 	return 0;
-
-err_free_irqs:
-	arm_smmu_free_irqs(smmu);
-	return ret;
 }
 
 static int arm_smmu_device_disable(struct arm_smmu_device *smmu)
@@ -2057,7 +2060,7 @@ static int arm_smmu_device_disable(struct arm_smmu_device *smmu)
 	return ret;
 }
 
-static int __init arm_smmu_device_reset(struct arm_smmu_device *smmu)
+static int arm_smmu_device_reset(struct arm_smmu_device *smmu)
 {
 	int ret;
 	u32 reg, enables;
@@ -2163,17 +2166,9 @@ static int __init arm_smmu_device_reset(struct arm_smmu_device *smmu)
 		}
 	}
 
-	ret = arm_smmu_setup_irqs(smmu);
-	if (ret) {
-		dev_err(smmu->dev, "failed to setup irqs\n");
+	ret = arm_smmu_enable_irqs(smmu);
+	if ( ret )
 		return ret;
-	}
-
-	/* Initialize tasklets for threaded IRQs*/
-	tasklet_init(&smmu->evtq_irq_tasklet, arm_smmu_evtq_tasklet, smmu);
-	tasklet_init(&smmu->priq_irq_tasklet, arm_smmu_priq_tasklet, smmu);
-	tasklet_init(&smmu->combined_irq_tasklet, arm_smmu_combined_irq_tasklet,
-				 smmu);
 
 	/* Enable the SMMU interface, or ensure bypass */
 	if (disable_bypass) {
@@ -2181,20 +2176,16 @@ static int __init arm_smmu_device_reset(struct arm_smmu_device *smmu)
 	} else {
 		ret = arm_smmu_update_gbpa(smmu, 0, GBPA_ABORT);
 		if (ret)
-			goto err_free_irqs;
+			return ret;
 	}
 	ret = arm_smmu_write_reg_sync(smmu, enables, ARM_SMMU_CR0,
 				      ARM_SMMU_CR0ACK);
 	if (ret) {
 		dev_err(smmu->dev, "failed to enable SMMU interface\n");
-		goto err_free_irqs;
+		return ret;
 	}
 
 	return 0;
-
-err_free_irqs:
-	arm_smmu_free_irqs(smmu);
-	return ret;
 }
 
 static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu)
@@ -2558,10 +2549,23 @@ static int __init arm_smmu_device_probe(struct platform_device *pdev)
 	if (ret)
 		goto out_free;
 
+	ret = arm_smmu_setup_irqs(smmu);
+	if ( ret )
+	{
+		dev_err(smmu->dev, "failed to setup irqs\n");
+		goto out_free;
+	}
+
+	/* Initialize tasklets for threaded IRQs*/
+	tasklet_init(&smmu->evtq_irq_tasklet, arm_smmu_evtq_tasklet, smmu);
+	tasklet_init(&smmu->priq_irq_tasklet, arm_smmu_priq_tasklet, smmu);
+	tasklet_init(&smmu->combined_irq_tasklet, arm_smmu_combined_irq_tasklet,
+				smmu);
+
 	/* Reset the device */
 	ret = arm_smmu_device_reset(smmu);
 	if (ret)
-		goto out_free;
+		goto out_free_irqs;
 
 	/*
 	 * Keep a list of all probed devices. This will be used to query
@@ -2575,6 +2579,8 @@ static int __init arm_smmu_device_probe(struct platform_device *pdev)
 
 	return 0;
 
+out_free_irqs:
+	arm_smmu_free_irqs(smmu);
 
 out_free:
 	arm_smmu_free_structures(smmu);
@@ -2855,6 +2861,94 @@ static void arm_smmu_iommu_xen_domain_teardown(struct domain *d)
 	xfree(xen_domain);
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+static int arm_smmu_suspend(void)
+{
+	struct arm_smmu_device *smmu;
+	int ret = 0;
+
+	list_for_each_entry(smmu, &arm_smmu_devices, devices)
+	{
+		/* Abort all transactions before disable to avoid spurious bypass */
+		ret = arm_smmu_update_gbpa(smmu, GBPA_ABORT, 0);
+		if ( ret )
+			goto fail;
+
+		/* Disable the SMMU via CR0.EN and all queues except CMDQ */
+		ret = arm_smmu_write_reg_sync(smmu, CR0_CMDQEN, ARM_SMMU_CR0,
+					ARM_SMMU_CR0ACK);
+		if ( ret )
+		{
+			dev_err(smmu->dev, "Timed-out while disabling smmu\n");
+			goto fail;
+		}
+
+		/*
+		 * At this point the SMMU is completely disabled and won't access
+		 * any translation/config structures, even speculative accesses
+		 * aren't performed as per the IHI0070 spec (section 6.3.9.6).
+		 */
+
+		/* Wait for the CMDQs to be drained to flush any pending commands */
+		ret = queue_poll_cons(&smmu->cmdq.q, true, 0);
+		if ( ret )
+		{
+			dev_err(smmu->dev, "Draining queues timed-out\n");
+			goto fail;
+		}
+
+		/* Disable everything */
+		ret = arm_smmu_device_disable(smmu);
+		if ( ret )
+			goto fail;
+
+		dev_dbg(smmu->dev, "Suspended smmu\n");
+	}
+
+	return 0;
+
+ fail:
+	{
+		int rc;
+
+		/* Reset the device that failed as well as any already-suspended ones. */
+		rc = arm_smmu_device_reset(smmu);
+		if ( rc )
+			dev_err(smmu->dev, "Failed to reset during resume operation: %d\n", rc);
+
+		list_for_each_entry_continue_reverse(smmu, &arm_smmu_devices, devices)
+		{
+			rc = arm_smmu_device_reset(smmu);
+			if ( rc )
+				dev_err(smmu->dev, "Failed to reset during resume operation: %d\n", rc);
+		}
+	}
+
+	return ret;
+}
+
+static void arm_smmu_resume(void)
+{
+	int ret;
+	struct arm_smmu_device *smmu;
+
+	list_for_each_entry(smmu, &arm_smmu_devices, devices)
+	{
+		dev_dbg(smmu->dev, "Resuming device\n");
+
+		/*
+		* The reset will re-initialize all the base addresses, queues,
+		* prod and cons maintained within struct arm_smmu_device as well as
+		* re-enable the interrupts.
+		*/
+		ret = arm_smmu_device_reset(smmu);
+		if ( ret )
+			dev_err(smmu->dev, "Failed to reset during resume operation: %d\n", ret);
+	}
+}
+#endif
+
 static const struct iommu_ops arm_smmu_iommu_ops = {
 	.page_sizes		= PAGE_SIZE_4K,
 	.init			= arm_smmu_iommu_xen_domain_init,
@@ -2867,6 +2961,10 @@ static const struct iommu_ops arm_smmu_iommu_ops = {
 	.unmap_page		= arm_iommu_unmap_page,
 	.dt_xlate		= arm_smmu_dt_xlate,
 	.add_device		= arm_smmu_add_device,
+#ifdef CONFIG_SYSTEM_SUSPEND
+	.suspend		= arm_smmu_suspend,
+	.resume			= arm_smmu_resume,
+#endif
 };
 
 static __init int arm_smmu_dt_init(struct dt_device_node *dev,
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 18:46:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 18:46:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184553.1507028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfs-00056l-Rl; Thu, 11 Dec 2025 18:46:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184553.1507028; Thu, 11 Dec 2025 18:46:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfs-00054Y-JI; Thu, 11 Dec 2025 18:46:00 +0000
Received: by outflank-mailman (input) for mailman id 1184553;
 Thu, 11 Dec 2025 18:45:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QWGN=6R=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vTlfr-0003I9-0K
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 18:45:59 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a104575a-d6c1-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 19:45:56 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-b7a6e56193cso84167366b.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 10:45:56 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-4.as6723.net. [185.5.253.4])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa5d0b0dsm345870466b.67.2025.12.11.10.45.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Dec 2025 10:45:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a104575a-d6c1-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765478756; x=1766083556; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=k/YQHTjWfFNRfU47XoZ3xNzm7CYArEgw/v+Ue+GlOW0=;
        b=HbQimVh+9Ftqd8z0fD/kPvnVs7wrtno7QCfLdeRYtXvk6wptP9SaGD/jH+mQyHBNT6
         aVEzOKTWueF8Qkg/DrhmRm3s80abL1MViRV1fYVVUb+P1OFvSVpGbVLTiBmGbjs8WmEi
         hOU6+iVDKtowkvgxpIXvu/bqiqpKAbjh2MH8CIpwo0kIVC6+enM78LDuaD12v1+BkhM+
         sxqE+zX2ODk+PYagHiHNEaS26NY4P3lVaqEbqxPCZzd9kB8oCvRsiNnMQ2UMUkjz4+wW
         BMlYTL5SJj5D2iooiz6B/mji8VY7U0vW3aH5vUNs9NqIrnFvTVL5QsdpI4WNHo2v/5R4
         eQdw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765478756; x=1766083556;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=k/YQHTjWfFNRfU47XoZ3xNzm7CYArEgw/v+Ue+GlOW0=;
        b=ilRJX4An0otrYhMMgeNaAyRoB9s3OSUHDCpQ/h7JRKGc0z+J2ViejWrmtWN1UFLfyP
         4gps0uOn8sJDvtMlH1MjrjV2rjQFLvCP/7Z00xD9Jo9rKPfNvqTUDGtuR4x3vBVx/VN8
         vybtF/sqD1In7BUY5CQpm7sfxZuf7PBVPf5DiM1p/QQ/tr7cweVk0SmKebIgPbpjl3zp
         D6khscJat3px8F88VNRcyIEGYvLMuYd5xXrogIKSVrZzL7ZTe7ShI3mtPsHTQToTXxSX
         aXTR4ZvWeTW2nWzzTOnoCXshiqtDyMXdViEmFEKJ/hefSJiXJiESZwfpbxdgHS6jnCTu
         nxsw==
X-Gm-Message-State: AOJu0Ywy3gq5rKmjWEyPZRhWH4DdPZCdkPlNoY3IHqWeTxerYAHQQqvO
	igtP0xbW4L6nVx8JnzWCvZ6Jbt8LPZ2UjiSaJEjzoiP1fNT3AjJZL4/+WqqFz0ZX
X-Gm-Gg: AY/fxX5rr3sQ+gwmAG2faWeE7/qJimfg1/MWRB8D+kHyQggXE1D+ZNTdntADlyTSbY9
	j23CaXO9lMlR4wTUbLvTTAPu43/IGm6JQfXRk2d5nWBVTrukv1WWXnsXKQ2Zh5k8tH2Diqf9J71
	VaN04CeGfEWA3+evrLIPK23szIuKtrQmdyadHfNtwN4gNH1nAZGwPRjyrGWEe/L2WLlGKBk6Hm7
	pLwPx2tHf9dode0T4FY/hPyiLvRowwqMTdMWqw0hEt8Mldi5WvR/S6Q00iGhH6olVzhIr+P7vpI
	hWMnTIR0NCP4UvZUwRIAtD8duHwoTp1BBsCEHx4F2b0V9P1RR6QAM7BcGnEuuw3hdYB09DazAAx
	1iq0eP7UeIKjkCCq+NgEVGJgwtN6gmQvVoawi4IFgPNc0MwtfWIMHtBf4co0N9OJ5JtdAy/7WIv
	kVmLzuULxp9Gvs60ULLrHVmL6Y3XQDRd305975o6xL
X-Google-Smtp-Source: AGHT+IH85KHr2aOHxwE9RCp0pBn4R4LzUOG7kFSsLpxoAJMEMAJUDSPELOGwpr48HzXuALSeeczMXw==
X-Received: by 2002:a17:906:7316:b0:b76:3476:a83c with SMTP id a640c23a62f3a-b7ce84d9466mr815044466b.40.1765478755558;
        Thu, 11 Dec 2025 10:45:55 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Mykola Kvach <xakep.amatop@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v7 07/12] iommu/ipmmu-vmsa: Implement suspend/resume callbacks
Date: Thu, 11 Dec 2025 20:43:31 +0200
Message-ID: <220c777ee30fd35afeedefff5a73d62d6ea1e0ac.1765472890.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1765472890.git.mykola_kvach@epam.com>
References: <cover.1765472890.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

Store and restore active context and micro-TLB registers.

Tested on R-Car H3 Starter Kit.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V7:
- moved suspend context allocation before pci stuff
---
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 305 ++++++++++++++++++++++-
 1 file changed, 298 insertions(+), 7 deletions(-)

diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index ea9fa9ddf3..6765bd3083 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -71,6 +71,8 @@
 })
 #endif
 
+#define dev_dbg(dev, fmt, ...)    \
+    dev_print(dev, XENLOG_DEBUG, fmt, ## __VA_ARGS__)
 #define dev_info(dev, fmt, ...)    \
     dev_print(dev, XENLOG_INFO, fmt, ## __VA_ARGS__)
 #define dev_warn(dev, fmt, ...)    \
@@ -130,6 +132,24 @@ struct ipmmu_features {
     unsigned int imuctr_ttsel_mask;
 };
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+struct ipmmu_reg_ctx {
+    unsigned int imttlbr0;
+    unsigned int imttubr0;
+    unsigned int imttbcr;
+    unsigned int imctr;
+};
+
+struct ipmmu_vmsa_backup {
+    struct device *dev;
+    unsigned int *utlbs_val;
+    unsigned int *asids_val;
+    struct list_head list;
+};
+
+#endif
+
 /* Root/Cache IPMMU device's information */
 struct ipmmu_vmsa_device {
     struct device *dev;
@@ -142,6 +162,9 @@ struct ipmmu_vmsa_device {
     struct ipmmu_vmsa_domain *domains[IPMMU_CTX_MAX];
     unsigned int utlb_refcount[IPMMU_UTLB_MAX];
     const struct ipmmu_features *features;
+#ifdef CONFIG_SYSTEM_SUSPEND
+    struct ipmmu_reg_ctx *reg_backup[IPMMU_CTX_MAX];
+#endif
 };
 
 /*
@@ -547,6 +570,245 @@ static void ipmmu_domain_free_context(struct ipmmu_vmsa_device *mmu,
     spin_unlock_irqrestore(&mmu->lock, flags);
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+static DEFINE_SPINLOCK(ipmmu_devices_backup_lock);
+static LIST_HEAD(ipmmu_devices_backup);
+
+static struct ipmmu_reg_ctx root_pgtable[IPMMU_CTX_MAX];
+
+static uint32_t ipmmu_imuasid_read(struct ipmmu_vmsa_device *mmu,
+                                   unsigned int utlb)
+{
+    return ipmmu_read(mmu, ipmmu_utlb_reg(mmu, IMUASID(utlb)));
+}
+
+static void ipmmu_utlbs_backup(struct ipmmu_vmsa_device *mmu)
+{
+    struct ipmmu_vmsa_backup *backup_data;
+
+    dev_dbg(mmu->dev, "Handle micro-TLBs backup\n");
+
+    spin_lock(&ipmmu_devices_backup_lock);
+
+    list_for_each_entry( backup_data, &ipmmu_devices_backup, list )
+    {
+        struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(backup_data->dev);
+        unsigned int i;
+
+        if ( to_ipmmu(backup_data->dev) != mmu )
+            continue;
+
+        for ( i = 0; i < fwspec->num_ids; i++ )
+        {
+            unsigned int utlb = fwspec->ids[i];
+
+            backup_data->asids_val[i] = ipmmu_imuasid_read(mmu, utlb);
+            backup_data->utlbs_val[i] = ipmmu_imuctr_read(mmu, utlb);
+        }
+    }
+
+    spin_unlock(&ipmmu_devices_backup_lock);
+}
+
+static void ipmmu_utlbs_restore(struct ipmmu_vmsa_device *mmu)
+{
+    struct ipmmu_vmsa_backup *backup_data;
+
+    dev_dbg(mmu->dev, "Handle micro-TLBs restore\n");
+
+    spin_lock(&ipmmu_devices_backup_lock);
+
+    list_for_each_entry( backup_data, &ipmmu_devices_backup, list )
+    {
+        struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(backup_data->dev);
+        unsigned int i;
+
+        if ( to_ipmmu(backup_data->dev) != mmu )
+            continue;
+
+        for ( i = 0; i < fwspec->num_ids; i++ )
+        {
+            unsigned int utlb = fwspec->ids[i];
+
+            ipmmu_imuasid_write(mmu, utlb, backup_data->asids_val[i]);
+            ipmmu_imuctr_write(mmu, utlb, backup_data->utlbs_val[i]);
+        }
+    }
+
+    spin_unlock(&ipmmu_devices_backup_lock);
+}
+
+static void ipmmu_domain_backup_context(struct ipmmu_vmsa_domain *domain)
+{
+    struct ipmmu_vmsa_device *mmu = domain->mmu->root;
+    struct ipmmu_reg_ctx *regs = mmu->reg_backup[domain->context_id];
+
+    dev_dbg(mmu->dev, "Handle domain context %u backup\n", domain->context_id);
+
+    regs->imttlbr0 = ipmmu_ctx_read_root(domain, IMTTLBR0);
+    regs->imttubr0 = ipmmu_ctx_read_root(domain, IMTTUBR0);
+    regs->imttbcr  = ipmmu_ctx_read_root(domain, IMTTBCR);
+    regs->imctr    = ipmmu_ctx_read_root(domain, IMCTR);
+}
+
+static void ipmmu_domain_restore_context(struct ipmmu_vmsa_domain *domain)
+{
+    struct ipmmu_vmsa_device *mmu = domain->mmu->root;
+    struct ipmmu_reg_ctx *regs  = mmu->reg_backup[domain->context_id];
+
+    dev_dbg(mmu->dev, "Handle domain context %u restore\n", domain->context_id);
+
+    ipmmu_ctx_write_root(domain, IMTTLBR0, regs->imttlbr0);
+    ipmmu_ctx_write_root(domain, IMTTUBR0, regs->imttubr0);
+    ipmmu_ctx_write_root(domain, IMTTBCR,  regs->imttbcr);
+    ipmmu_ctx_write_all(domain,  IMCTR,    regs->imctr | IMCTR_FLUSH);
+}
+
+/*
+ * Xen: Unlike Linux implementation, Xen uses a single driver instance
+ * for handling all IPMMUs. There is no framework for ipmmu_suspend/resume
+ * callbacks to be invoked for each IPMMU device. So, we need to iterate
+ * through all registered IPMMUs performing required actions.
+ *
+ * Also take care of restoring special settings, such as translation
+ * table format, etc.
+ */
+static int __must_check ipmmu_suspend(void)
+{
+    struct ipmmu_vmsa_device *mmu;
+
+    if ( !iommu_enabled )
+        return 0;
+
+    printk(XENLOG_DEBUG "ipmmu: Suspending...\n");
+
+    spin_lock(&ipmmu_devices_lock);
+
+    list_for_each_entry( mmu, &ipmmu_devices, list )
+    {
+        if ( ipmmu_is_root(mmu) )
+        {
+            unsigned int i;
+
+            for ( i = 0; i < mmu->num_ctx; i++ )
+            {
+                if ( !mmu->domains[i] )
+                    continue;
+                ipmmu_domain_backup_context(mmu->domains[i]);
+            }
+        }
+        else
+            ipmmu_utlbs_backup(mmu);
+    }
+
+    spin_unlock(&ipmmu_devices_lock);
+
+    return 0;
+}
+
+static void ipmmu_resume(void)
+{
+    struct ipmmu_vmsa_device *mmu;
+
+    if ( !iommu_enabled )
+        return;
+
+    printk(XENLOG_DEBUG "ipmmu: Resuming...\n");
+
+    spin_lock(&ipmmu_devices_lock);
+
+    list_for_each_entry( mmu, &ipmmu_devices, list )
+    {
+        uint32_t reg;
+
+        /* Do not use security group function */
+        reg = IMSCTLR + mmu->features->control_offset_base;
+        ipmmu_write(mmu, reg, ipmmu_read(mmu, reg) & ~IMSCTLR_USE_SECGRP);
+
+        if ( ipmmu_is_root(mmu) )
+        {
+            unsigned int i;
+
+            /* Use stage 2 translation table format */
+            reg = IMSAUXCTLR + mmu->features->control_offset_base;
+            ipmmu_write(mmu, reg, ipmmu_read(mmu, reg) | IMSAUXCTLR_S2PTE);
+
+            for ( i = 0; i < mmu->num_ctx; i++ )
+            {
+                if ( !mmu->domains[i] )
+                    continue;
+                ipmmu_domain_restore_context(mmu->domains[i]);
+            }
+        }
+        else
+            ipmmu_utlbs_restore(mmu);
+    }
+
+    spin_unlock(&ipmmu_devices_lock);
+}
+
+static int ipmmu_alloc_ctx_suspend(struct device *dev)
+{
+    struct ipmmu_vmsa_backup *backup_data;
+    unsigned int *utlbs_val, *asids_val;
+    struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
+
+    utlbs_val = xzalloc_array(unsigned int, fwspec->num_ids);
+    if ( !utlbs_val )
+        return -ENOMEM;
+
+    asids_val = xzalloc_array(unsigned int, fwspec->num_ids);
+    if ( !asids_val )
+    {
+        xfree(utlbs_val);
+        return -ENOMEM;
+    }
+
+    backup_data = xzalloc(struct ipmmu_vmsa_backup);
+    if ( !backup_data )
+    {
+        xfree(utlbs_val);
+        xfree(asids_val);
+        return -ENOMEM;
+    }
+
+    backup_data->dev = dev;
+    backup_data->utlbs_val = utlbs_val;
+    backup_data->asids_val = asids_val;
+
+    spin_lock(&ipmmu_devices_backup_lock);
+    list_add(&backup_data->list, &ipmmu_devices_backup);
+    spin_unlock(&ipmmu_devices_backup_lock);
+
+    return 0;
+}
+
+#ifdef CONFIG_HAS_PCI
+static void ipmmu_free_ctx_suspend(struct device *dev)
+{
+    struct ipmmu_vmsa_backup *backup_data, *tmp;
+
+    spin_lock(&ipmmu_devices_backup_lock);
+
+    list_for_each_entry_safe( backup_data, tmp, &ipmmu_devices_backup, list )
+    {
+        if ( backup_data->dev == dev )
+        {
+            list_del(&backup_data->list);
+            xfree(backup_data->utlbs_val);
+            xfree(backup_data->asids_val);
+            xfree(backup_data);
+            break;
+        }
+    }
+
+    spin_unlock(&ipmmu_devices_backup_lock);
+}
+#endif /* CONFIG_HAS_PCI */
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 static int ipmmu_domain_init_context(struct ipmmu_vmsa_domain *domain)
 {
     uint64_t ttbr;
@@ -559,6 +821,9 @@ static int ipmmu_domain_init_context(struct ipmmu_vmsa_domain *domain)
         return ret;
 
     domain->context_id = ret;
+#ifdef CONFIG_SYSTEM_SUSPEND
+    domain->mmu->root->reg_backup[ret] = &root_pgtable[ret];
+#endif
 
     /*
      * TTBR0
@@ -615,6 +880,9 @@ static void ipmmu_domain_destroy_context(struct ipmmu_vmsa_domain *domain)
     ipmmu_ctx_write_root(domain, IMCTR, IMCTR_FLUSH);
     ipmmu_tlb_sync(domain);
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+    domain->mmu->root->reg_backup[domain->context_id] = NULL;
+#endif
     ipmmu_domain_free_context(domain->mmu->root, domain->context_id);
 }
 
@@ -1340,10 +1608,11 @@ static int ipmmu_add_device(u8 devfn, struct device *dev)
     struct iommu_fwspec *fwspec;
 
 #ifdef CONFIG_HAS_PCI
+    int ret;
+
     if ( dev_is_pci(dev) )
     {
         struct pci_dev *pdev = dev_to_pci(dev);
-        int ret;
 
         if ( devfn != pdev->devfn )
             return 0;
@@ -1371,6 +1640,15 @@ static int ipmmu_add_device(u8 devfn, struct device *dev)
         /* Let Xen know that the master device is protected by an IOMMU. */
         dt_device_set_protected(dev_to_dt(dev));
     }
+
+#ifdef CONFIG_SYSTEM_SUSPEND
+    if ( ipmmu_alloc_ctx_suspend(dev) )
+    {
+        dev_err(dev, "Failed to allocate context for suspend\n");
+        return -ENOMEM;
+    }
+#endif
+
 #ifdef CONFIG_HAS_PCI
     if ( dev_is_pci(dev) )
     {
@@ -1379,26 +1657,28 @@ static int ipmmu_add_device(u8 devfn, struct device *dev)
         struct pci_host_bridge *bridge;
         struct iommu_fwspec *fwspec_bridge;
         unsigned int utlb_osid0 = 0;
-        int ret;
 
         bridge = pci_find_host_bridge(pdev->seg, pdev->bus);
         if ( !bridge )
         {
             dev_err(dev, "Failed to find host bridge\n");
-            return -ENODEV;
+            ret = -ENODEV;
+            goto free_suspend_ctx;
         }
 
         fwspec_bridge = dev_iommu_fwspec_get(dt_to_dev(bridge->dt_node));
         if ( fwspec_bridge->num_ids < 1 )
         {
             dev_err(dev, "Failed to find host bridge uTLB\n");
-            return -ENXIO;
+            ret = -ENXIO;
+            goto free_suspend_ctx;
         }
 
         if ( fwspec->num_ids < 1 )
         {
             dev_err(dev, "Failed to find uTLB");
-            return -ENXIO;
+            ret = -ENXIO;
+            goto free_suspend_ctx;
         }
 
         rcar4_pcie_osid_regs_init(bridge);
@@ -1407,7 +1687,7 @@ static int ipmmu_add_device(u8 devfn, struct device *dev)
         if ( ret < 0 )
         {
             dev_err(dev, "No unused OSID regs\n");
-            return ret;
+            goto free_suspend_ctx;
         }
         reg_id = ret;
 
@@ -1422,7 +1702,7 @@ static int ipmmu_add_device(u8 devfn, struct device *dev)
         {
             rcar4_pcie_osid_bdf_clear(bridge, reg_id);
             rcar4_pcie_osid_reg_free(bridge, reg_id);
-            return ret;
+            goto free_suspend_ctx;
         }
     }
 #endif
@@ -1431,6 +1711,13 @@ static int ipmmu_add_device(u8 devfn, struct device *dev)
              dev_name(fwspec->iommu_dev), fwspec->num_ids);
 
     return 0;
+#ifdef CONFIG_HAS_PCI
+ free_suspend_ctx:
+#ifdef CONFIG_SYSTEM_SUSPEND
+    ipmmu_free_ctx_suspend(dev);
+#endif
+    return ret;
+#endif
 }
 
 static int ipmmu_iommu_domain_init(struct domain *d)
@@ -1492,6 +1779,10 @@ static const struct iommu_ops ipmmu_iommu_ops =
     .unmap_page      = arm_iommu_unmap_page,
     .dt_xlate        = ipmmu_dt_xlate,
     .add_device      = ipmmu_add_device,
+#ifdef CONFIG_SYSTEM_SUSPEND
+    .suspend         = ipmmu_suspend,
+    .resume          = ipmmu_resume,
+#endif
 };
 
 static __init int ipmmu_init(struct dt_device_node *node, const void *data)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 18:46:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 18:46:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184555.1507037 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlft-0005In-OC; Thu, 11 Dec 2025 18:46:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184555.1507037; Thu, 11 Dec 2025 18:46:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlft-0005GH-Ey; Thu, 11 Dec 2025 18:46:01 +0000
Received: by outflank-mailman (input) for mailman id 1184555;
 Thu, 11 Dec 2025 18:45:59 +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
 <SRS0=QWGN=6R=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vTlfr-0003I8-Of
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 18:45:59 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a24f9c8a-d6c1-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 19:45:59 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-640c6577120so745990a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 10:45:59 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-4.as6723.net. [185.5.253.4])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa5d0b0dsm345870466b.67.2025.12.11.10.45.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Dec 2025 10:45:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a24f9c8a-d6c1-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765478758; x=1766083558; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Wn2YE/N1073l2aBvkRQ/5nSVLZsSRqqVHeilL+wTO7s=;
        b=U2K1rrkP8HrRAsKbYGydTyb4MHfxJJMX2vqC62fUA0rEjBSDoPe3hP/Lw2ysqUn+Pb
         vlP/MgWQTsYAivoBfIP+3Ly25bW4QKD0aCoA1hkzFcoWLBcDkFZUaPRrk6Ufajo04is8
         C2N0MyubzOkCVMIaTe1d/PDGIRm9CGJOu6/vlRRGKRIoJeBwZkh3sz6hLc4q89q825SO
         h3IOjKDisWq/jutw+glsa8IZ14MB89eEsHOWdeh+BY1K4EKMUP5he1NgUCe0VcCQ80fk
         apgqG7RtiMb4b8wtKMp8R9SjiG8oHr6lA3dC5LmhPi7xbuHRugRbWdJ17E9BMc5F9nLe
         RggQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765478758; x=1766083558;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Wn2YE/N1073l2aBvkRQ/5nSVLZsSRqqVHeilL+wTO7s=;
        b=UxIW7P/YKIBLnJhn8cSehbj0mdQPpNy3B0O87EDoLMq5ngMYFloL65ZHcefuDP+Nri
         VFOBAqpjj6IdREzODk8FA4gxG9yVRlmbttv2AZB1ToH47tU97Z2cpiCBcokUP7q+jEWG
         qgm4oBAczrweZ0W7KkSOX2XJmXcZvcIeOaVcsw9QMDWJOAm6PYS3yDWkSYINsSYZuV2G
         dseqCcHbzwI8Bm64TuOxp1VHmm84j172X9CT+2KwWXSy8ZO2r8wJCuuyBttEmTNZVUfa
         OTeVo/Z6kwgpdHsUbvn9MnDdSj4clA+gi2+RMH3a61D8zIPauSlt4dZmf6z4gJUIw81x
         Juvw==
X-Gm-Message-State: AOJu0YxJ/86zoUuTO2PEe7N5iI8tqDwFSfJAuOrOJCsZjDuWZXK3GUVc
	yYFMIsCo4SW9k8HsG75E4nHZrMG6G7ANv9/ahRtS23fAjSXmSFPh4DymvQoS5BW0
X-Gm-Gg: AY/fxX5n77E9gqy2P20dmhlv55tB6jVKiOW3Qd6ewAkanOvgTy8frZbRaozvctTySaq
	zNHsEviaQyUvhngx+WhmGKm0ZZAVmjl40xyikW0KQsnOCMvxDSzwH+xploUKo8YgeyUgKKLwvxV
	R+Din+y/82CVd/75h50eYSjOP3dW8Hp3S3dN6jk1POO8DkjC7+QxCAOcAm+x9yUdLXskYu+952M
	9TwFlkgWIAkniooDbM1sUxKiQwHYfLQNzBGGPjmhFKEGReU7WUJCn7XWTKcPl9KtIIHCJjXf/He
	JTTYjPpvTpPGR2wV8brVRC6SMS4+ZbhjOYIK7oVvlref0b+guzIdEx5GaGNpFIMiCCjZnDLkKnR
	GM2svAZNONoEi80W8f7kycSO2uG2cDqfinKxprSgu1AhlL+Y5+8+dufx7ggr/JryoL+Pjvx2WrQ
	obrZjFQWQ+pyeJK9nY5DoGCEFnp4iXynvoXSC6zJ1l
X-Google-Smtp-Source: AGHT+IG/6t+gwx01s3fl4EBu4KpU0cbUis+6SFVAgfqdG0pLbcu3Q3IeGyxpzSPn7jghoibq6b4loQ==
X-Received: by 2002:a17:907:7f04:b0:b7a:2ba7:18be with SMTP id a640c23a62f3a-b7ce84cc764mr748318866b.62.1765478758172;
        Thu, 11 Dec 2025 10:45:58 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Mykola Kvach <xakep.amatop@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Saeed Nowshadi <saeed.nowshadi@xilinx.com>,
	Mykyta Poturai <mykyta_poturai@epam.com>
Subject: [PATCH v7 09/12] xen/arm: Resume memory management on Xen resume
Date: Thu, 11 Dec 2025 20:43:33 +0200
Message-ID: <b6c823f9c6a678018ab8790c419b8462838115d5.1765472890.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1765472890.git.mykola_kvach@epam.com>
References: <cover.1765472890.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mirela Simonovic <mirela.simonovic@aggios.com>

The MMU must be enabled during the resume path before restoring context,
as virtual addresses are used to access the saved context data.

This patch adds MMU setup during resume by reusing the existing
enable_secondary_cpu_mm function, which enables data cache and the MMU.
Before the MMU is enabled, the content of TTBR0_EL2 is changed to point
to init_ttbr (page tables used at runtime).

Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in v7:
- no functional changes, just moved commit
---
 xen/arch/arm/arm64/head.S | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
index 72c7b24498..596e960152 100644
--- a/xen/arch/arm/arm64/head.S
+++ b/xen/arch/arm/arm64/head.S
@@ -561,6 +561,30 @@ END(efi_xen_start)
 
 #endif /* CONFIG_ARM_EFI */
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+FUNC(hyp_resume)
+        /* Initialize the UART if earlyprintk has been enabled. */
+#ifdef CONFIG_EARLY_PRINTK
+        bl    init_uart
+#endif
+        PRINT_ID("- Xen resuming -\r\n")
+
+        bl    check_cpu_mode
+        bl    cpu_init
+
+        ldr   x0, =start
+        adr   x20, start             /* x20 := paddr (start) */
+        sub   x20, x20, x0           /* x20 := phys-offset */
+        ldr   lr, =mmu_resumed
+        b     enable_secondary_cpu_mm
+
+mmu_resumed:
+        b .
+END(hyp_resume)
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 /*
  * Local variables:
  * mode: ASM
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 18:46:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 18:46:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184556.1507051 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfv-0005ic-At; Thu, 11 Dec 2025 18:46:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184556.1507051; Thu, 11 Dec 2025 18:46:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfv-0005gO-2l; Thu, 11 Dec 2025 18:46:03 +0000
Received: by outflank-mailman (input) for mailman id 1184556;
 Thu, 11 Dec 2025 18:46:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QWGN=6R=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vTlfu-0003I9-Eg
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 18:46:02 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a334c430-d6c1-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 19:46:00 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-64198771a9bso828802a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 10:46:00 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-4.as6723.net. [185.5.253.4])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa5d0b0dsm345870466b.67.2025.12.11.10.45.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Dec 2025 10:45:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a334c430-d6c1-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765478760; x=1766083560; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OaZfuWRbnwPcnW+s48rbWKO1grkPvQJtBoI9rAf5Hcg=;
        b=C52yXMweSmOi7jHTFVsaG73CghSzs8FSjnivaGCnP3l+7OSj5weXg0khpS8ukU2zfZ
         qW632MP+HhJ2r6lqcq4E57g3TwtjNYVdzcg1lj8PK2o/wFH0hgVU7mh/WXpaew93YKiY
         Ie2ZbYcWO43g62MlkQuyHotyzvs0dBk0kcgG87d8iz9WIZFS3PCnnsohOtFk0ffjPTHe
         F5gh/7xTPntknn5A/9J3u4fQ2sL5GxZKPW53Nbfog7IlH24QyJcrf+rcF3nwo3aXAd3g
         vO3WSzMJe3QduB51qR/ceq6SWY/bSmUO790eqH/+g3TaeVtQyrSnn6j7YJvpGbSgpY4f
         Xg9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765478760; x=1766083560;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=OaZfuWRbnwPcnW+s48rbWKO1grkPvQJtBoI9rAf5Hcg=;
        b=d4XnlUPbEyPvZY9JUxUt+hJXd6pa+MR5zEOaoaRx9ugYn+M3vbuD3pO8wRUMMm4E59
         EXAEXaT/sG9EyzdAdD6MNMaKp1+HDcqrTAP2WMpXkyqpIP8q3kMFKnVYxBb9zQhK4FVA
         z5oI+6nioDiYXW+0JbTelbNpMgmadh3ok57JcFHB9Huj1MnfdKShqKNTZ3suNXggP4eG
         qjJb3d0ISK+lQbT1MJsIfAfBzXQ4dZ77L4IYfN7LPu00fgWRaadA9upFyeZ4VVFCrghy
         bOQl07/5/rhEbDWo70J57YI057vcT3SFSRCZlbXqXg7tTS3vX2dLo1CC3eQPqHLpgDE3
         X6pg==
X-Gm-Message-State: AOJu0YyoMWHl512sC4tv3c54pi+rSm7W6LtpdFA+/0f6lLXsHUGW+i5c
	+fjiYw+hSq2q8TvCOqrXN01jwYBl7/dV+sOHGOyBg9nDOKMBv1LrAHRJpCTaQZJu
X-Gm-Gg: AY/fxX5VyGaLQ3ufu/gDihPZIqZJaYr4pB2sA7XR1EPKeYu0GYKMe7j+R665L4JDaVo
	IZUCjo9d4T/ezqJjwCegPgfXvxPpqk8v7YN/+5aHqPpN7IL3tv4VLwWcOUwGkHa14lQ4np9nJ0s
	qsmx/r9L/AziSAIp7KagoUW+/havVOUG5uZSkhQ/bGWe3Ac9wif0fvJEGGKjP74qWpvMJaZzszR
	K5SCC5R0iglHT9+QQ7zWK8xq9qDjyaunWr4N1ekUtJy8rkyC3FQeyh3il0xDucngCkzVRb8skhd
	vqkhK2XWT+USQCToG54R+yK41qD5a1PKBWYUplkY6LawoiGpdo+XNzpsCXVjs9T+6ciecYVYqkg
	FMNMTiLIxOgwiMzRBDEfh9l5vnIxGykyq80Yip0WazmpQA8M2vG4SpNOGTEHAfWGB95K9nHO0Dw
	qGc+m3KveXc0zRqPN6/lzwa8OPK2dCr094lqRsg+3h
X-Google-Smtp-Source: AGHT+IFhllThVrkjPTfuO84mpaywMKGq1Skw0Lhon1pOtwVx4+wXl4IJijzRncp8fHZyY+VLi8RDGQ==
X-Received: by 2002:a17:907:940e:b0:b71:29f7:47dd with SMTP id a640c23a62f3a-b7ce8476094mr829779766b.46.1765478759399;
        Thu, 11 Dec 2025 10:45:59 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Mykola Kvach <xakep.amatop@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Saeed Nowshadi <saeed.nowshadi@xilinx.com>,
	Mykyta Poturai <mykyta_poturai@epam.com>
Subject: [PATCH v7 10/12] xen/arm: Save/restore context on suspend/resume
Date: Thu, 11 Dec 2025 20:43:34 +0200
Message-ID: <0dd3c42e1801674e19d2b3b3ca834b7bab62ca3f.1765472890.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1765472890.git.mykola_kvach@epam.com>
References: <cover.1765472890.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mirela Simonovic <mirela.simonovic@aggios.com>

The context of CPU general purpose and system control registers must be
saved on suspend and restored on resume. This is implemented in
prepare_resume_ctx and before the return from the hyp_resume function.
The prepare_resume_ctx must be invoked just before the PSCI system suspend
call is issued to the ATF. The prepare_resume_ctx must return a non-zero
value so that the calling 'if' statement evaluates to true, causing the
system suspend to be invoked. Upon resume, the context saved on suspend
will be restored, including the link register. Therefore, after
restoring the context, the control flow will return to the address
pointed to by the saved link register, which is the place from which
prepare_resume_ctx was called. To ensure that the calling 'if' statement
does not again evaluate to true and initiate system suspend, hyp_resume
must return a zero value after restoring the context.

Note that the order of saving register context into cpu_context structure
must match the order of restoring.

Support for ARM32 is not implemented. Instead, compilation fails with a
build-time error if suspend is enabled for ARM32.

Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in v7:
- no changes
---
 xen/arch/arm/Makefile              |  1 +
 xen/arch/arm/arm64/head.S          | 90 +++++++++++++++++++++++++++++-
 xen/arch/arm/include/asm/suspend.h | 26 +++++++++
 xen/arch/arm/suspend.c             | 14 +++++
 4 files changed, 130 insertions(+), 1 deletion(-)
 create mode 100644 xen/arch/arm/suspend.c

diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 7494a0f926..4a549a1ac0 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -51,6 +51,7 @@ obj-y += setup.o
 obj-y += shutdown.o
 obj-y += smp.o
 obj-y += smpboot.o
+obj-$(CONFIG_SYSTEM_SUSPEND) += suspend.o
 obj-$(CONFIG_SYSCTL) += sysctl.o
 obj-y += time.o
 obj-y += traps.o
diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
index 596e960152..c6594c0bdd 100644
--- a/xen/arch/arm/arm64/head.S
+++ b/xen/arch/arm/arm64/head.S
@@ -562,6 +562,52 @@ END(efi_xen_start)
 #endif /* CONFIG_ARM_EFI */
 
 #ifdef CONFIG_SYSTEM_SUSPEND
+/*
+ * int prepare_resume_ctx(struct cpu_context *ptr)
+ *
+ * x0 - pointer to the storage where callee's context will be saved
+ *
+ * CPU context saved here will be restored on resume in hyp_resume function.
+ * prepare_resume_ctx shall return a non-zero value. Upon restoring context
+ * hyp_resume shall return value zero instead. From C code that invokes
+ * prepare_resume_ctx, the return value is interpreted to determine whether
+ * the context is saved (prepare_resume_ctx) or restored (hyp_resume).
+ */
+FUNC(prepare_resume_ctx)
+        /* Store callee-saved registers */
+        stp     x19, x20, [x0], #16
+        stp     x21, x22, [x0], #16
+        stp     x23, x24, [x0], #16
+        stp     x25, x26, [x0], #16
+        stp     x27, x28, [x0], #16
+        stp     x29, lr, [x0], #16
+
+        /* Store stack-pointer */
+        mov     x2, sp
+        str     x2, [x0], #8
+
+        /* Store system control registers */
+        mrs     x2, VBAR_EL2
+        str     x2, [x0], #8
+        mrs     x2, VTCR_EL2
+        str     x2, [x0], #8
+        mrs     x2, VTTBR_EL2
+        str     x2, [x0], #8
+        mrs     x2, TPIDR_EL2
+        str     x2, [x0], #8
+        mrs     x2, MDCR_EL2
+        str     x2, [x0], #8
+        mrs     x2, HSTR_EL2
+        str     x2, [x0], #8
+        mrs     x2, CPTR_EL2
+        str     x2, [x0], #8
+        mrs     x2, HCR_EL2
+        str     x2, [x0], #8
+
+        /* prepare_resume_ctx must return a non-zero value */
+        mov     x0, #1
+        ret
+END(prepare_resume_ctx)
 
 FUNC(hyp_resume)
         /* Initialize the UART if earlyprintk has been enabled. */
@@ -580,7 +626,49 @@ FUNC(hyp_resume)
         b     enable_secondary_cpu_mm
 
 mmu_resumed:
-        b .
+        /* Now we can access the cpu_context, so restore the context here */
+        ldr     x0, =cpu_context
+
+        /* Restore callee-saved registers */
+        ldp     x19, x20, [x0], #16
+        ldp     x21, x22, [x0], #16
+        ldp     x23, x24, [x0], #16
+        ldp     x25, x26, [x0], #16
+        ldp     x27, x28, [x0], #16
+        ldp     x29, lr, [x0], #16
+
+        /* Restore stack pointer */
+        ldr     x2, [x0], #8
+        mov     sp, x2
+
+        /* Restore system control registers */
+        ldr     x2, [x0], #8
+        msr     VBAR_EL2, x2
+        ldr     x2, [x0], #8
+        msr     VTCR_EL2, x2
+        ldr     x2, [x0], #8
+        msr     VTTBR_EL2, x2
+        ldr     x2, [x0], #8
+        msr     TPIDR_EL2, x2
+        ldr     x2, [x0], #8
+        msr     MDCR_EL2, x2
+        ldr     x2, [x0], #8
+        msr     HSTR_EL2, x2
+        ldr     x2, [x0], #8
+        msr     CPTR_EL2, x2
+        ldr     x2, [x0], #8
+        msr     HCR_EL2, x2
+        isb
+
+        /*
+         * Since context is restored return from this function will appear
+         * as return from prepare_resume_ctx. To distinguish a return from
+         * prepare_resume_ctx which is called upon finalizing the suspend,
+         * as opposed to return from this function which executes on resume,
+         * we need to return zero value here.
+         */
+        mov x0, #0
+        ret
 END(hyp_resume)
 
 #endif /* CONFIG_SYSTEM_SUSPEND */
diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
index 313d03ea59..d3a88ea979 100644
--- a/xen/arch/arm/include/asm/suspend.h
+++ b/xen/arch/arm/include/asm/suspend.h
@@ -3,6 +3,8 @@
 #ifndef ARM_SUSPEND_H
 #define ARM_SUSPEND_H
 
+#include <asm/types.h>
+
 struct domain;
 struct vcpu;
 
@@ -14,6 +16,30 @@ struct resume_info {
 
 int arch_domain_resume(struct domain *d);
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+#ifdef CONFIG_ARM_64
+struct cpu_context {
+    register_t callee_regs[12];
+    register_t sp;
+    register_t vbar_el2;
+    register_t vtcr_el2;
+    register_t vttbr_el2;
+    register_t tpidr_el2;
+    register_t mdcr_el2;
+    register_t hstr_el2;
+    register_t cptr_el2;
+    register_t hcr_el2;
+} __aligned(16);
+#else
+#error "Define cpu_context structure for arm32"
+#endif
+
+extern struct cpu_context cpu_context;
+
+int prepare_resume_ctx(struct cpu_context *ptr);
+void hyp_resume(void);
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 #endif /* ARM_SUSPEND_H */
 
 /*
diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
new file mode 100644
index 0000000000..e38566b0b7
--- /dev/null
+++ b/xen/arch/arm/suspend.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <asm/suspend.h>
+
+struct cpu_context cpu_context = {};
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 18:46:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 18:46:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184558.1507064 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfx-0006E5-SZ; Thu, 11 Dec 2025 18:46:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184558.1507064; Thu, 11 Dec 2025 18:46:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlfx-0006DR-IT; Thu, 11 Dec 2025 18:46:05 +0000
Received: by outflank-mailman (input) for mailman id 1184558;
 Thu, 11 Dec 2025 18:46:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QWGN=6R=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vTlfv-0003I9-KF
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 18:46:03 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a3f6eb7e-d6c1-11f0-9cce-f158ae23cfc8;
 Thu, 11 Dec 2025 19:46:01 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b72b495aa81so81991966b.2
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 10:46:01 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-4.as6723.net. [185.5.253.4])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa5d0b0dsm345870466b.67.2025.12.11.10.45.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Dec 2025 10:46:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a3f6eb7e-d6c1-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765478761; x=1766083561; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=81pZ/JS38wYFIEh/dUJCFhVaISUWS/A04krI0+LMlhc=;
        b=kxgmo0qK7QjMeAxJbEdE7y0SawvyasAl4w5kAwni+EMdKbGLX/XuePL4LIl8mw7mi2
         7diYC3JXXTIyxf1RM2SfOLSmam6001DDmYeKTeu/ZV6nX7Luna6k/itBfpAXEUh09u4s
         I/AaMjFiHYvOegu1w5SaVRRU/KCAHAI0BIAaX97QEzLgw7IawEdib4FU6WbEw0zPsqTQ
         ebCG5wnWUCITEKWzm6y3sSWaZ3D+qfkX1K9KXDZVC8TmqV24P65o4cD0zTJXNBLxPwbQ
         phMCoaanZW4Z0K9VbOeUwTOnMjgcvfRsDEQt4n5UGHIpdnL3ONEgokE6YaUxBO6GG4Ef
         PfZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765478761; x=1766083561;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=81pZ/JS38wYFIEh/dUJCFhVaISUWS/A04krI0+LMlhc=;
        b=pivqI+ChjySGcTXJ5bbWuJJjJyJpYyYzirDcARCT4XS5ruU6eysQDLKk/PPk7S9M5f
         PQMK65kdOk7BGcIUysl9A9Nwk0Zwg8LkargOegmYmGvNhrkodiOigPvDWWlOuRI4HPvp
         eBLCuYvWQv6iDCB3DiE9ToA1Of/Jsmhasq6NkwV0XZCnlR/1z8R6k82etX0HFr7SBI2W
         09MVV7gDFA0LZNNYG73d43VZHeb8Ly1PN7ux14AOAcPnYRR1+ZVT8tsqdd4nsRzLroQk
         FFV8tUnxqM22c3k9LeF+FWI1WgfPmrNRigY3D7pnLK7eYMBaY7j5DZqzMi35rgl3o6Vv
         wDHw==
X-Gm-Message-State: AOJu0YyFc3yESkfyzXRRiGw9amjczz2a4UtSBSCMOP3myz5Y26FGt6fd
	49pz0rzlLymHCYNIs0g4fw31fJ1KGn7X9HHEKSJ+yL5tihJhqTpi/uty6oIv0dHn
X-Gm-Gg: AY/fxX6ghitdgONyjfccQfBDqOdfN9RFRuxGDslzp7ZNFgKgekqz+VIbLhL21rb6uJ2
	RYmfeXwidTfSOlUtOEA255ce7GL+SPNUvoHj/73Uj0DPsOHCFBsHZ7fUxFHuEPW8Xr7E64nBOht
	pLZtOLaBEsmlqjeZMahRfvG0p8W5boH7KkMZPyf2iO58kSRxfSH9vI76GMpyAx/E/nSOZzQS7OU
	0riPjCpMuzS5WAwNrpR/s8hAirr660vur+jvlx3ZcumRmYvJgO6xmNp3NtBZ6SXXA+lBmwiVRiO
	8rCj9BNAbuWL3ywwa6OHOFIqE1Pu9/jwYOf/BnjFUqulmKlFwrMhtokv+5JA9OQxI26KZkvO1a/
	U9KwX3LBp+BT7lRFn/SKNBUvz+N/wglRa09iuaC7xVqcNenlaM+LJ7uYWhZDQAvcBOvllnv55ui
	N93DcxJd8AX+OFALU8A3VPzP1g+giz/LAf3eO5mRht
X-Google-Smtp-Source: AGHT+IGCbNd/+PkXSwAoSrqHekaDi2vIULmpYvyFroTTVzA8/HLcn+jzgYkEFCZ7+nnOS/XPw90xzw==
X-Received: by 2002:a17:907:6e9f:b0:b72:c103:88db with SMTP id a640c23a62f3a-b7ce83464c0mr650886566b.9.1765478760742;
        Thu, 11 Dec 2025 10:46:00 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Mykola Kvach <xakep.amatop@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Saeed Nowshadi <saeed.nowshadi@xilinx.com>,
	Mykyta Poturai <mykyta_poturai@epam.com>
Subject: [PATCH v7 11/12] xen/arm: Implement PSCI SYSTEM_SUSPEND call (host interface)
Date: Thu, 11 Dec 2025 20:43:35 +0200
Message-ID: <0808318bbede4bee6f36c08b06e2c0bb22c07fe9.1765472890.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1765472890.git.mykola_kvach@epam.com>
References: <cover.1765472890.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mirela Simonovic <mirela.simonovic@aggios.com>

Invoke PSCI SYSTEM_SUSPEND to finalize Xen's suspend sequence on ARM64 platforms.
Pass the resume entry point (hyp_resume) as the first argument to EL3. The resume
handler is currently a stub and will be implemented later in assembly. Ignore the
context ID argument, as is done in Linux.

Only enable this path when CONFIG_SYSTEM_SUSPEND is set and
PSCI version is >= 1.0.

Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in v7:
- no changes
---
 xen/arch/arm/include/asm/psci.h |  1 +
 xen/arch/arm/psci.c             | 23 ++++++++++++++++++++++-
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/psci.h
index 48a93e6b79..bb3c73496e 100644
--- a/xen/arch/arm/include/asm/psci.h
+++ b/xen/arch/arm/include/asm/psci.h
@@ -23,6 +23,7 @@ int call_psci_cpu_on(int cpu);
 void call_psci_cpu_off(void);
 void call_psci_system_off(void);
 void call_psci_system_reset(void);
+int call_psci_system_suspend(void);
 
 /* Range of allocated PSCI function numbers */
 #define	PSCI_FNUM_MIN_VALUE                 _AC(0,U)
diff --git a/xen/arch/arm/psci.c b/xen/arch/arm/psci.c
index b6860a7760..c9d126b195 100644
--- a/xen/arch/arm/psci.c
+++ b/xen/arch/arm/psci.c
@@ -17,17 +17,20 @@
 #include <asm/cpufeature.h>
 #include <asm/psci.h>
 #include <asm/acpi.h>
+#include <asm/suspend.h>
 
 /*
  * While a 64-bit OS can make calls with SMC32 calling conventions, for
  * some calls it is necessary to use SMC64 to pass or return 64-bit values.
- * For such calls PSCI_0_2_FN_NATIVE(x) will choose the appropriate
+ * For such calls PSCI_*_FN_NATIVE(x) will choose the appropriate
  * (native-width) function ID.
  */
 #ifdef CONFIG_ARM_64
 #define PSCI_0_2_FN_NATIVE(name)    PSCI_0_2_FN64_##name
+#define PSCI_1_0_FN_NATIVE(name)    PSCI_1_0_FN64_##name
 #else
 #define PSCI_0_2_FN_NATIVE(name)    PSCI_0_2_FN32_##name
+#define PSCI_1_0_FN_NATIVE(name)    PSCI_1_0_FN32_##name
 #endif
 
 uint32_t psci_ver;
@@ -60,6 +63,24 @@ void call_psci_cpu_off(void)
     }
 }
 
+int call_psci_system_suspend(void)
+{
+#ifdef CONFIG_SYSTEM_SUSPEND
+    struct arm_smccc_res res;
+
+    if ( psci_ver < PSCI_VERSION(1, 0) )
+        return PSCI_NOT_SUPPORTED;
+
+    /* 2nd argument (context ID) is not used */
+    arm_smccc_smc(PSCI_1_0_FN_NATIVE(SYSTEM_SUSPEND), __pa(hyp_resume), &res);
+    return PSCI_RET(res);
+#else
+    dprintk(XENLOG_WARNING,
+            "SYSTEM_SUSPEND not supported (CONFIG_SYSTEM_SUSPEND disabled)\n");
+    return PSCI_NOT_SUPPORTED;
+#endif
+}
+
 void call_psci_system_off(void)
 {
     if ( psci_ver > PSCI_VERSION(0, 1) )
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 18:47:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 18:47:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184630.1507073 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlhR-0001Ne-FT; Thu, 11 Dec 2025 18:47:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184630.1507073; Thu, 11 Dec 2025 18:47:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlhR-0001NV-BJ; Thu, 11 Dec 2025 18:47:37 +0000
Received: by outflank-mailman (input) for mailman id 1184630;
 Thu, 11 Dec 2025 18:47:36 +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
 <SRS0=QWGN=6R=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vTlfy-0003I8-9B
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 18:46:06 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a4d50f04-d6c1-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 19:46:03 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-64979bee42aso645479a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 10:46:03 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-4.as6723.net. [185.5.253.4])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa5d0b0dsm345870466b.67.2025.12.11.10.46.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Dec 2025 10:46:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a4d50f04-d6c1-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765478762; x=1766083562; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RHRMDHeaPCNuYKtmY3W4kszvrqWpbqarndet93/8qB0=;
        b=EwzoleVNbhAM9jSH607I+GHKlq3z7YtVxbQJVYnqYZTENvDTPpWGxtLYlfDSu73/6h
         zJ8POyKGDzgT1BOLPb5/d64gMEIcQ3/n2z/QCcFjak5vlp7Qu6ozMMBdf/3NuvqG7BwV
         dcNjzMzVE2orQAKq3UTLwRXApDYPD+8Mf64SNpxGRTsGLg16iibZ/Uy5VnGEYBHasUBs
         0p8K/U2Ig4nhrKT5Xv2Fvo0l+YExKNz1/jR324hfMIvjem6i6v84ItLCNubgyFpRvZiu
         bl9ZPy8C+DZYDkx8dZL/w2ISKjRgW68yRKNPnPbRC5aOc4Gj0TEPAdHgQBAz4KXdqNGv
         KLPA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765478762; x=1766083562;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=RHRMDHeaPCNuYKtmY3W4kszvrqWpbqarndet93/8qB0=;
        b=oZtLcDvK9jsXHSB6qOTNw2/GiGrRhpSXNvjkhUhn0SB4akdSyrIoEF1FSzDW8y3JHg
         vhvIQMwTjVuNvQXrEBVk3n0AmHEkm0RIU2sAbnSGpd290QeycxQ6EX0pTY6uFggws96M
         uK/Ql+DEqdBcmdVi87Yry5cbyF1gIK9/kpAEl4r4hzj/15ebBIbUyd/NHmOcyQkvRPqD
         V4oHWILfNdJ6ESCntBlPx765SRiyB39JI6cwFgRvoMo1ckLUTnahX+oy3D3pNrH1RcTk
         Z4TPvKNb4GHSPq310pbv/jvt+23Go+8AQd6K/+NxXNnhiX/soA580IJZbCiNSML2TS2o
         xZlA==
X-Gm-Message-State: AOJu0YwhwKaAp5/QMHBLoNINiBt73U0IuvrZlflftbc8dku6iS2A8Iuf
	Qu4d8qLwXztzQgAkl6Bf5ErLkPGvbvhL+AFb+0MRAUyoplc8JyIXW68aj9mDLuMe
X-Gm-Gg: AY/fxX6an+i/JMPTbjGGfnvsiqkkDrk4suiXUXY2bmaNnjdn6VV6bUwyMKLb8G+dFXE
	w4W02rpjOZ+3/LRqPR+qgIJRXGljybb9MFuo56QIHO+fvy1wwdFnOqqKTDS3KAEcfD3Wjp66crY
	XHep2TDS5lWVeUDgqWMf2gJ+ARq2PJY1qOtd5apxPRb1kW3P4tQyZS1qZhemnZcEKzkQItqSKbV
	UEmAC54BxMXPGq5/oha1Hhrz0Iet2lrywRm8zHLYvR+uqW77s+hINgeYGiziRcnvemHEi4MgKql
	VNh3Cg6bOVF3iq+d7tPcK9eGF7bGfcrnV0YOR2OTEeJyR9mBj9R2Lp/GIKT0MUnq3VrICbCyS34
	03Xfhj+fTF1i6F2LZ+mRWH1DHTfA785HzXBhK+4JlkYCPdLBW18+YZwe+ko+nK3gmIyNgnGa8Rt
	m6fhqJPo4upN/LQoAQG8YIFY/mvBO5igAFP3tITmR3
X-Google-Smtp-Source: AGHT+IGVitvuV8prBdOMpYKRyd/3qrDnNbonRVxqr9ZG0MV5VKtiI2D+Iln3xxDRWYgevVysh/gGSg==
X-Received: by 2002:a17:907:608c:b0:b76:f090:777b with SMTP id a640c23a62f3a-b7ce82dd99dmr760281066b.22.1765478762150;
        Thu, 11 Dec 2025 10:46:02 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Mykola Kvach <xakep.amatop@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Rahul Singh <rahul.singh@arm.com>,
	Saeed Nowshadi <saeed.nowshadi@xilinx.com>,
	Mykyta Poturai <mykyta_poturai@epam.com>
Subject: [PATCH v7 12/12] xen/arm: Add support for system suspend triggered by control domain
Date: Thu, 11 Dec 2025 20:43:36 +0200
Message-ID: <66fffded45f39599c62a1e4dad83c34f9de51d7d.1765472890.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1765472890.git.mykola_kvach@epam.com>
References: <cover.1765472890.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mirela Simonovic <mirela.simonovic@aggios.com>

Trigger Xen suspend when the control domain initiates suspend via
SHUTDOWN_suspend. Redirect system suspend to CPU#0 to ensure the
suspend logic runs on the boot CPU, as required.

Introduce full suspend/resume infrastructure gated by CONFIG_SYSTEM_SUSPEND,
including logic to:
 - disable and enable non-boot physical CPUs
 - freeze and thaw domains
 - suspend and resume the GIC, timer, iommu and console
 - maintain system state before and after suspend

On boot, init_ttbr is normally initialized during secondary CPU hotplug.
On uniprocessor systems, this would leave init_ttbr uninitialized,
causing resume to fail. To address this, the boot CPU now sets init_ttbr
during suspend.

Select HAS_SYSTEM_SUSPEND for ARM_64.

Introduce CONFIG_HWDOM_SHUTDOWN_ON_SUSPEND (default y, disabled only on ARM_64
with SYSTEM_SUSPEND) so we skip hwdom_shutdown() for SHUTDOWN_suspend when the
hardware domain survives suspend. Non-ARM behaviour is unchanged, and the
ARM/system-suspend case no longer needs arch-specific checks in the code.

Note: the code is guarded by CONFIG_SYSTEM_SUSPEND, which is currently only
selected when UNSUPPORTED is set, and thus the functionality is neither enabled
by default nor even built.

Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V7:
- Control domain is responsible for host suspend
- Add an empty inline host_system_suspend() function when SYSTEM_SUSPEND
  config is disabled
- Use IS_ENABLED() for config checking instead of #ifdef
- Replace #ifdef checks in domain_shutdown() with IS_ENABLED() to simplify
  control flow.
- Factor hardware domain shutdown condition into a helper
  (need_hwdom_shutdown()) to avoid preprocessor directives inside the function.
- Squash with iommu suspend/resume commit
---
 xen/arch/arm/Kconfig               |   1 +
 xen/arch/arm/include/asm/mm.h      |   2 +
 xen/arch/arm/include/asm/suspend.h |   7 +-
 xen/arch/arm/mmu/smpboot.c         |   2 +-
 xen/arch/arm/suspend.c             | 139 +++++++++++++++++++++++++++++
 xen/arch/arm/vpsci.c               |  12 ++-
 xen/common/Kconfig                 |   5 ++
 xen/common/domain.c                |   7 +-
 xen/drivers/passthrough/arm/smmu.c |  10 +++
 9 files changed, 180 insertions(+), 5 deletions(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index cf6af68299..86fa0b762a 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -8,6 +8,7 @@ config ARM_64
 	depends on !ARM_32
 	select 64BIT
 	select HAS_FAST_MULTIPLY
+	select HAS_SYSTEM_SUSPEND if !MPU && UNSUPPORTED
 	select HAS_VPCI_GUEST_SUPPORT if PCI_PASSTHROUGH
 
 config ARM
diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index ec2d2dc537..e4e795fa1f 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -364,6 +364,8 @@ static inline void page_set_xenheap_gfn(struct page_info *p, gfn_t gfn)
     } while ( (y = cmpxchg(&p->u.inuse.type_info, x, nx)) != x );
 }
 
+void set_init_ttbr(lpae_t *root);
+
 #endif /*  __ARCH_ARM_MM__ */
 /*
  * Local variables:
diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
index d3a88ea979..2fb7cd8d56 100644
--- a/xen/arch/arm/include/asm/suspend.h
+++ b/xen/arch/arm/include/asm/suspend.h
@@ -38,7 +38,12 @@ extern struct cpu_context cpu_context;
 
 int prepare_resume_ctx(struct cpu_context *ptr);
 void hyp_resume(void);
-#endif /* CONFIG_SYSTEM_SUSPEND */
+void host_system_suspend(struct domain *d);
+
+#else /* !CONFIG_SYSTEM_SUSPEND */
+
+static inline void host_system_suspend(struct domain *d) { (void)d; }
+#endif
 
 #endif /* ARM_SUSPEND_H */
 
diff --git a/xen/arch/arm/mmu/smpboot.c b/xen/arch/arm/mmu/smpboot.c
index 37e91d72b7..ff508ecf40 100644
--- a/xen/arch/arm/mmu/smpboot.c
+++ b/xen/arch/arm/mmu/smpboot.c
@@ -72,7 +72,7 @@ static void clear_boot_pagetables(void)
     clear_table(boot_third);
 }
 
-static void set_init_ttbr(lpae_t *root)
+void set_init_ttbr(lpae_t *root)
 {
     /*
      * init_ttbr is part of the identity mapping which is read-only. So
diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
index e38566b0b7..c34b578e18 100644
--- a/xen/arch/arm/suspend.c
+++ b/xen/arch/arm/suspend.c
@@ -1,9 +1,148 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <asm/psci.h>
 #include <asm/suspend.h>
 
+#include <xen/console.h>
+#include <xen/cpu.h>
+#include <xen/iommu.h>
+#include <xen/llc-coloring.h>
+#include <xen/sched.h>
+#include <xen/tasklet.h>
+
 struct cpu_context cpu_context = {};
 
+/* Xen suspend. data identifies the domain that initiated suspend. */
+static void system_suspend(void *data)
+{
+    int status;
+    unsigned long flags;
+    struct domain *d = (struct domain *)data;
+
+    BUG_ON(system_state != SYS_STATE_active);
+
+    system_state = SYS_STATE_suspend;
+
+    printk("Xen suspending...\n");
+
+    freeze_domains();
+    scheduler_disable();
+
+    /*
+     * Non-boot CPUs have to be disabled on suspend and enabled on resume
+     * (hotplug-based mechanism). Disabling non-boot CPUs will lead to PSCI
+     * CPU_OFF to be called by each non-boot CPU. Depending on the underlying
+     * platform capabilities, this may lead to the physical powering down of
+     * CPUs.
+     */
+    status = disable_nonboot_cpus();
+    if ( status )
+    {
+        system_state = SYS_STATE_resume;
+        goto resume_nonboot_cpus;
+    }
+
+    time_suspend();
+
+    status = iommu_suspend();
+    if ( status )
+    {
+        system_state = SYS_STATE_resume;
+        goto resume_time;
+    }
+
+    console_start_sync();
+    status = console_suspend();
+    if ( status )
+    {
+        dprintk(XENLOG_ERR, "Failed to suspend the console, err=%d\n", status);
+        system_state = SYS_STATE_resume;
+        goto resume_end_sync;
+    }
+
+    local_irq_save(flags);
+    status = gic_suspend();
+    if ( status )
+    {
+        system_state = SYS_STATE_resume;
+        goto resume_irqs;
+    }
+
+    set_init_ttbr(xen_pgtable);
+
+    /*
+     * Enable identity mapping before entering suspend to simplify
+     * the resume path
+     */
+    update_boot_mapping(true);
+
+    if ( prepare_resume_ctx(&cpu_context) )
+    {
+        status = call_psci_system_suspend();
+        /*
+         * If suspend is finalized properly by above system suspend PSCI call,
+         * the code below in this 'if' branch will never execute. Execution
+         * will continue from hyp_resume which is the hypervisor's resume point.
+         * In hyp_resume CPU context will be restored and since link-register is
+         * restored as well, it will appear to return from prepare_resume_ctx.
+         * The difference in returning from prepare_resume_ctx on system suspend
+         * versus resume is in function's return value: on suspend, the return
+         * value is a non-zero value, on resume it is zero. That is why the
+         * control flow will not re-enter this 'if' branch on resume.
+         */
+        if ( status )
+            dprintk(XENLOG_WARNING, "PSCI system suspend failed, err=%d\n",
+                    status);
+    }
+
+    system_state = SYS_STATE_resume;
+    update_boot_mapping(false);
+
+    gic_resume();
+
+ resume_irqs:
+    local_irq_restore(flags);
+
+    console_resume();
+ resume_end_sync:
+    console_end_sync();
+
+    iommu_resume();
+
+ resume_time:
+    time_resume();
+
+ resume_nonboot_cpus:
+    /*
+     * The rcu_barrier() has to be added to ensure that the per cpu area is
+     * freed before a non-boot CPU tries to initialize it (_free_percpu_area()
+     * has to be called before the init_percpu_area()). This scenario occurs
+     * when non-boot CPUs are hot-unplugged on suspend and hotplugged on resume.
+     */
+    rcu_barrier();
+    enable_nonboot_cpus();
+    scheduler_enable();
+    thaw_domains();
+
+    system_state = SYS_STATE_active;
+
+    printk("Resume (status %d)\n", status);
+
+    domain_resume(d);
+}
+
+static DECLARE_TASKLET(system_suspend_tasklet, system_suspend, NULL);
+
+void host_system_suspend(struct domain *d)
+{
+    system_suspend_tasklet.data = (void *)d;
+    /*
+     * The suspend procedure has to be finalized by the pCPU#0 (non-boot pCPUs
+     * will be disabled during the suspend).
+     */
+    tasklet_schedule_on_cpu(&system_suspend_tasklet, 0);
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index c4d616ec68..891d9f2cb9 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -4,6 +4,7 @@
 #include <xen/types.h>
 
 #include <asm/current.h>
+#include <asm/suspend.h>
 #include <asm/vgic.h>
 #include <asm/vpsci.h>
 #include <asm/event.h>
@@ -210,6 +211,11 @@ static void do_psci_0_2_system_reset(void)
     domain_shutdown(d,SHUTDOWN_reboot);
 }
 
+static bool can_trigger_host_suspend(struct domain *d)
+{
+    return is_control_domain(d);
+}
+
 static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
 {
     int32_t rc;
@@ -221,8 +227,7 @@ static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
     if ( is_64bit_domain(d) && is_thumb )
         return PSCI_INVALID_ADDRESS;
 
-    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
-    if ( is_hardware_domain(d) )
+    if ( !IS_ENABLED(CONFIG_SYSTEM_SUSPEND) && can_trigger_host_suspend(d) )
         return PSCI_NOT_SUPPORTED;
 
     /* Ensure that all CPUs other than the calling one are offline */
@@ -249,6 +254,9 @@ static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
             "SYSTEM_SUSPEND requested, epoint=%#"PRIregister", cid=%#"PRIregister"\n",
             epoint, cid);
 
+    if ( can_trigger_host_suspend(d) )
+        host_system_suspend(d);
+
     return rc;
 }
 
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 401d5046f6..31f54def0b 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -137,6 +137,11 @@ config HAS_EX_TABLE
 config HAS_FAST_MULTIPLY
 	bool
 
+config HAS_HWDOM_SHUTDOWN_ON_SUSPEND
+	bool
+	default y
+	depends on !ARM_64 || !SYSTEM_SUSPEND
+
 config HAS_IOPORTS
 	bool
 
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 8f895108fd..b8a8c68428 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1324,6 +1324,11 @@ void __domain_crash(struct domain *d)
     domain_shutdown(d, SHUTDOWN_crash);
 }
 
+static inline bool need_hwdom_shutdown(uint8_t reason)
+{
+    return IS_ENABLED(CONFIG_HAS_HWDOM_SHUTDOWN_ON_SUSPEND) ||
+           reason != SHUTDOWN_suspend;
+}
 
 int domain_shutdown(struct domain *d, u8 reason)
 {
@@ -1340,7 +1345,7 @@ int domain_shutdown(struct domain *d, u8 reason)
         d->shutdown_code = reason;
     reason = d->shutdown_code;
 
-    if ( is_hardware_domain(d) )
+    if ( is_hardware_domain(d) && need_hwdom_shutdown(reason) )
         hwdom_shutdown(reason);
 
     if ( d->is_shutting_down )
diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/arm/smmu.c
index 22d306d0cb..45f29ef8ec 100644
--- a/xen/drivers/passthrough/arm/smmu.c
+++ b/xen/drivers/passthrough/arm/smmu.c
@@ -2947,6 +2947,13 @@ static void arm_smmu_iommu_domain_teardown(struct domain *d)
 	xfree(xen_domain);
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+static int arm_smmu_suspend(void)
+{
+	return -ENOSYS;
+}
+#endif
+
 static const struct iommu_ops arm_smmu_iommu_ops = {
     .page_sizes = PAGE_SIZE_4K,
     .init = arm_smmu_iommu_domain_init,
@@ -2960,6 +2967,9 @@ static const struct iommu_ops arm_smmu_iommu_ops = {
     .map_page = arm_iommu_map_page,
     .unmap_page = arm_iommu_unmap_page,
     .dt_xlate = arm_smmu_dt_xlate_generic,
+#ifdef CONFIG_SYSTEM_SUSPEND
+    .suspend = arm_smmu_suspend,
+#endif
 };
 
 static struct arm_smmu_device *find_smmu(const struct device *dev)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 11 18:56:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2025 18:56:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184710.1507084 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlq3-0003aZ-F3; Thu, 11 Dec 2025 18:56:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184710.1507084; Thu, 11 Dec 2025 18:56:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTlq3-0003aS-BV; Thu, 11 Dec 2025 18:56:31 +0000
Received: by outflank-mailman (input) for mailman id 1184710;
 Thu, 11 Dec 2025 18:56:29 +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
 <SRS0=QWGN=6R=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vTlq1-0003aM-U9
 for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 18:56:29 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 19a802df-d6c3-11f0-b15b-2bf370ae4941;
 Thu, 11 Dec 2025 19:56:28 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-59577c4c7c1so373225e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Dec 2025 10:56:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 19a802df-d6c3-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765479388; x=1766084188; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=m/Hj2LYdJG9idikz8lHiPRxzo/hY3J6vGgWG7i1vWCs=;
        b=GkhNtKr7NZGURI7mZ4FstnF1AVIhTTFjdBOo2k6jszrqYvT1jYzP4h9nOdrTGKzTRn
         cNFHRxZg4JKK1oB7wdf3J8WGnfP5usHEemdc79WtdN2tOw33zJTup3WZBGJjZC+y/OnQ
         4eURNrM38cf26NKQ+PkJSjhlZUR/60VRSytj0V6DFTzTa+unnv6tzLzIxnTzgtA5wGMK
         K5Jk1Hxc0qxiC1u70Tuukj5aRR9SjLqk0vvcBo6UTiNimNT4+yiI6AuaxJZ3Z4D74tC7
         OhxavHHZq0QWH4sn6LMMHtc7zccqZTAdI9OL0WtpCSlkwlhEPwvZkv+4/Vhey30Fe+Si
         SWtg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765479388; x=1766084188;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=m/Hj2LYdJG9idikz8lHiPRxzo/hY3J6vGgWG7i1vWCs=;
        b=T4iusfRcTyK5ZQAuGX5HhywvVn2weTlGYS/t9b624A+Q7OAkL6wpTrpmn6I7iLirzd
         3lvkegLsTn/ZCu+OuG5GBHkrKw5Ow0BmwbLuF+121g3hzW9linUhRiQav/b0KQ0ZGpm3
         KZBZOycGuPGS1k2LXlhlYZhw6Xur+ym6GC/kW3dPtVS32kbu+ENOuC7kn1jmho9wZuhj
         cB+KlwhWRjZP/JeG8rPStJbG72GC6cNkUCfDMRjTeQs+UxvvVYHgOVwV3bfKXCmhsGPA
         RKIUDgV9sW2S/X0Gb3UcbCH/0WnAcsCEQMG128NydS3XsEvgFqrQ8NsA1pHTBi71Hhki
         W5LQ==
X-Gm-Message-State: AOJu0YzO/bWRvTExZoZNHjD0GZBmISpvIy6AQAxGy2ZG4uIyesg6o6WR
	hN3T+Yi6t8lzV5LF68DT1LlYOMJ9sqvwh2tugnzc8qmTBlpLoeeAzMxF6EkwH3QksiQxRYu+RL6
	7vkLvIOHlpCmHs6czBzXQvk/CKIyGLbW4W1tOkCQ=
X-Gm-Gg: AY/fxX50LHS/mfG2ci54oMoHZzGKSQWKr+rs7UkLWmaYGnbIslLbZzG+qD82usTfsvA
	ElykjLnofGSVI0ZEKdIK9MQSGKoVLVKpwfRAOYFoQMGLqKe2gYbs8xJgcoUmtMIDUcw3OXG1s3p
	CMvWWeFZK9cOAY2u8tmXPhRFDtHybzmvvolyqubuS7KFgaTYSVEXm7bQ/iC3Gerbizv7KZQ7UQk
	oYoWvumTDLMhTrrXSMP0fLUKWCqH4fzLRoFrxd6xjUC8W8yG8mKXMPmo2FwFsjhRjd3
X-Google-Smtp-Source: AGHT+IF3K8r1RRaYmClqwQkjkXxzHhsv20K7mKcwFierz/m8fJoZRmHl0/E3lUz/ovcmlZbOA77TMYcEMJzIVjRsomo=
X-Received: by 2002:a2e:a803:0:b0:37e:5208:e2d7 with SMTP id
 38308e7fff4ca-37fbfe6293emr11153041fa.19.1765479387753; Thu, 11 Dec 2025
 10:56:27 -0800 (PST)
MIME-Version: 1.0
References: <e57133182b9bcecb519911c8b3f0d871955d6fef.1754540991.git.mykola_kvach@epam.com>
In-Reply-To: <e57133182b9bcecb519911c8b3f0d871955d6fef.1754540991.git.mykola_kvach@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 11 Dec 2025 20:56:16 +0200
X-Gm-Features: AQt7F2of81WKMe1uUDf8Tt45NXXqDTGZjRIvwpqbtNFeFbiujn71AnP1By7MG6E
Message-ID: <CAGeoDV-j4nu1JhHyLpeDoqZ6evsExGvJSws-MK09M4HbUam1BA@mail.gmail.com>
Subject: Ping: [PATCH v5] xen/char: implement suspend/resume calls for SCIF driver
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, 
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>, Mykola Kvach <mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Gentle ping on this series.
It has already received a few Acks/Reviews - could it be considered for mer=
ging,
or is there anything else I should address?

On Thu, Aug 7, 2025 at 8:16=E2=80=AFAM Mykola Kvach <xakep.amatop@gmail.com=
> wrote:
>
> From: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
>
> Implement suspend and resume callbacks for the SCIF UART driver,
> enabled when CONFIG_SYSTEM_SUSPEND is set. This allows proper
> handling of UART state across system suspend/resume cycles.
>
> Tested on Renesas R-Car H3 Starter Kit.
>
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> In patch v5, there are no changes at all;
> it was done just to trigger a review.
>
> In patch v4, enhance commit message, no functional changes
>
> In patch v2, I just added a CONFIG_SYSTEM_SUSPEND check around
> the suspend/resume functions in the SCIF driver.
> ---
>  xen/drivers/char/scif-uart.c | 40 ++++++++++++++++++++++++++++++++++--
>  1 file changed, 38 insertions(+), 2 deletions(-)
>
> diff --git a/xen/drivers/char/scif-uart.c b/xen/drivers/char/scif-uart.c
> index 757793ca45..888821a3b8 100644
> --- a/xen/drivers/char/scif-uart.c
> +++ b/xen/drivers/char/scif-uart.c
> @@ -139,9 +139,8 @@ static void scif_uart_interrupt(int irq, void *data)
>      }
>  }
>
> -static void __init scif_uart_init_preirq(struct serial_port *port)
> +static void scif_uart_disable(struct scif_uart *uart)
>  {
> -    struct scif_uart *uart =3D port->uart;
>      const struct port_params *params =3D uart->params;
>
>      /*
> @@ -155,6 +154,14 @@ static void __init scif_uart_init_preirq(struct seri=
al_port *port)
>
>      /* Reset TX/RX FIFOs */
>      scif_writew(uart, SCIF_SCFCR, SCFCR_RFRST | SCFCR_TFRST);
> +}
> +
> +static void scif_uart_init_preirq(struct serial_port *port)
> +{
> +    struct scif_uart *uart =3D port->uart;
> +    const struct port_params *params =3D uart->params;
> +
> +    scif_uart_disable(uart);
>
>      /* Clear all errors and flags */
>      scif_readw(uart, params->status_reg);
> @@ -271,6 +278,31 @@ static void scif_uart_stop_tx(struct serial_port *po=
rt)
>      scif_writew(uart, SCIF_SCSCR, scif_readw(uart, SCIF_SCSCR) & ~SCSCR_=
TIE);
>  }
>
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +
> +static void scif_uart_suspend(struct serial_port *port)
> +{
> +    struct scif_uart *uart =3D port->uart;
> +
> +    scif_uart_stop_tx(port);
> +    scif_uart_disable(uart);
> +}
> +
> +static void scif_uart_resume(struct serial_port *port)
> +{
> +    struct scif_uart *uart =3D port->uart;
> +    const struct port_params *params =3D uart->params;
> +    uint16_t ctrl;
> +
> +    scif_uart_init_preirq(port);
> +
> +    /* Enable TX/RX and Error Interrupts  */
> +    ctrl =3D scif_readw(uart, SCIF_SCSCR);
> +    scif_writew(uart, SCIF_SCSCR, ctrl | params->irq_flags);
> +}
> +
> +#endif /* CONFIG_SYSTEM_SUSPEND */
> +
>  static struct uart_driver __read_mostly scif_uart_driver =3D {
>      .init_preirq  =3D scif_uart_init_preirq,
>      .init_postirq =3D scif_uart_init_postirq,
> @@ -281,6 +313,10 @@ static struct uart_driver __read_mostly scif_uart_dr=
iver =3D {
>      .start_tx     =3D scif_uart_start_tx,
>      .stop_tx      =3D scif_uart_stop_tx,
>      .vuart_info   =3D scif_vuart_info,
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +    .suspend      =3D scif_uart_suspend,
> +    .resume       =3D scif_uart_resume,
> +#endif
>  };
>
>  static const struct dt_device_match scif_uart_dt_match[] __initconst =3D
> --
> 2.48.1
>


From xen-devel-bounces@lists.xenproject.org Fri Dec 12 01:35:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 01:35:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184810.1507093 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTs3Z-0002cw-4p; Fri, 12 Dec 2025 01:34:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184810.1507093; Fri, 12 Dec 2025 01:34:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTs3Z-0002cp-1p; Fri, 12 Dec 2025 01:34:53 +0000
Received: by outflank-mailman (input) for mailman id 1184810;
 Fri, 12 Dec 2025 01:34:51 +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
 <SRS0=aL34=6S=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vTs3X-0002cj-K1
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 01:34:51 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bee76aed-d6fa-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 02:34:49 +0100 (CET)
Received: from SA1P222CA0105.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c5::13)
 by CH3PR12MB7523.namprd12.prod.outlook.com (2603:10b6:610:148::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.10; Fri, 12 Dec
 2025 01:34:43 +0000
Received: from SA2PEPF00003F64.namprd04.prod.outlook.com
 (2603:10b6:806:3c5:cafe::e3) by SA1P222CA0105.outlook.office365.com
 (2603:10b6:806:3c5::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.10 via Frontend Transport; Fri,
 12 Dec 2025 01:34:43 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF00003F64.mail.protection.outlook.com (10.167.248.39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 01:34:43 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Thu, 11 Dec
 2025 19:34:42 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 11 Dec
 2025 19:34:42 -0600
Received: from [172.30.226.132] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 11 Dec 2025 17:34:40 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bee76aed-d6fa-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=re464mdR1BtVHLKKFJSY1GSMDU27ucY9+MEcXTzTWG7QqfbH2gnp09PAVT7HbuoGIrtJFWbIqa2Y4S7DrLUpvccPX6VqvuTqDLTkA50TI0tGe4yzxfYRmv3wiVD9J2opn421C24g0lFzUdwPXw8giqBmIjFiQGetWN9bRTsuDVggS03EVrv1KCbnWUd442LqL7cHOygtpjOITyX0F+qC3/pTufkFO9fhBnXySAXVcOrsInvjMiVPld+z7b3m4Xv85L0a3xCcg2pjVt0LKOM4J3cIh06MwWHXUBNFVJfuc+RiO3DDEkGpEMbua2Av0iSE2u8zyKnP7iZo/a4OOQ9E+g==
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=2tLlvn5bqm9GdUuvWheXY+BVx7twHKSUSsvq5c0iXHQ=;
 b=A3y2YSn/CRFo/4KLgc9e8rNt1szOEGZTcrT8Own5vWwFdOsU5NNpYXZzPP17esg+oItpbuLl6mDKtsESLt+gJ9SRgg3xhrCeDlDxaa3GMGmywx5kl+KoPY/+F2X+rmKR67NNuIdQtYQpptseGLcQzDChKlJ0G1cUmakwThHQU2p19DQ6feuCZii79o86O2nDPXnnCyt3cfKbRGGZyQYXyLdjqb+Mpz34cl4irrx6dtqDI1C6Qz4MjOvjsF82ouJ2tRY1QL5FXu276oZH1P/qOrJWlJKTed1gj8p4vk9IqHCDF2B6YJY3EVyS5LiuMttuS/Js3MyHNxhW/JQvSK9B+w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2tLlvn5bqm9GdUuvWheXY+BVx7twHKSUSsvq5c0iXHQ=;
 b=DsQerVc2XDO8o+IKJYdXT0St01VgYR9xgclfhEtLz734DttGcn+VtHsUPEdye/ywO0q9VnnY1cOtyYiJavwRcGg98iDfrNE1Ttl0v3zUKeyQS/jyfSSXVjOqHVIYmdunKtPztHsoYc2q3uWqHx+qgxhDTLF194YtR8lk65CiaEU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <fbe63318-b764-46ce-a377-dd4ce7229abe@amd.com>
Date: Thu, 11 Dec 2025 20:34:40 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: KEEP Re: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
CC: Victor Lira <victorm.lira@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, "Connor
 Davis" <connojdavis@gmail.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Grygorii Strashko <grygorii_strashko@epam.com>,
	<xen-devel@lists.xenproject.org>
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-3-jason.andryuk@amd.com>
 <ed620cd5-9630-4987-bd5c-9f69ae2c2609@citrix.com>
 <43d30e02-f818-4cf2-98c9-4182a2f65f64@amd.com>
 <13a270cd-b0bd-4565-9158-0e1728aef84e@citrix.com>
 <7514a67c-d140-43b6-bed0-3467530a086d@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <7514a67c-d140-43b6-bed0-3467530a086d@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB04.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003F64:EE_|CH3PR12MB7523:EE_
X-MS-Office365-Filtering-Correlation-Id: bef7a5cc-3cdb-45bb-ba02-08de391ea03b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013|7416014|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TW5MckFURWh2WElKTDFoaDk0K0hDQ3cvSU1UYlQ1TmlHN2djQzBicUp1b0tq?=
 =?utf-8?B?d1hqVjdjcnFLdzYrcUl1ZWFkWnhQcEVHVzFreHY0dmN1djBuU2NkMVJZQk94?=
 =?utf-8?B?dzNPZlRkVHNPSmlyK2NxMUdMZm9LZ3RDM3g3NE4rdGVWdmFVSGlFbnlkREI5?=
 =?utf-8?B?dnI4cHhmcTFoS0JhSGJIek1xNlFuNGQ3Z243OUJzQ2xxNWFOby9CNmNKQThM?=
 =?utf-8?B?SkdtcW9JSUlYWkZhUFdWTlEyV3J1WVZEckplQ0hnSGFLMUNzdXRGMCtPN2Vu?=
 =?utf-8?B?S3BrakNlN20rR2YvUnowTHBZZ2hRa1pyT2lYbHZlZXRYUmVRQURFMGh6b0sx?=
 =?utf-8?B?YkVEelc0V3Q5L0l1MDNreEZLcWtYOU5IS1VMQmlvZkVnS0g5ZkE2T0tBdEZB?=
 =?utf-8?B?THp5b29QR1lCZFFRRzJjYUZlc2owTlEwb0N4KzBnVmhSdnpLd2tCelU5Tklu?=
 =?utf-8?B?WVlsSVlXalNwOHdJY2FYbXVqSE5oRDR4YzNEZVpxM253bG9ZVVVzU1NkYkQ3?=
 =?utf-8?B?V2l3RFpkeGNwS2s2Y3J0Nm1hallsN2tHTmphaUJ1RnYxRWQwR3NYbTBIU3N2?=
 =?utf-8?B?YURoU2Y5SUZUamhIN283WnpFWU9SWTFGSDVvTVMrRzdMcVhmWWZPWEVQZ2ZK?=
 =?utf-8?B?OXFoMTFOdE9vZVhHWG9uUWhTbndwRUlab2VnOC91THNvUE9xSE90NnE0SlZ6?=
 =?utf-8?B?TnY3d3FmT3dld2VuWi9rWXhQL3c2S01IYi9qc2hqajRVT0hrM3Z1Q2puMHFh?=
 =?utf-8?B?Z09aK0dZekc2OVFiMGhRRDFuSDAxaUpNeUFCNE8rbmt0VXJYOEJHbWgwTkwy?=
 =?utf-8?B?czN2aEtZbjBxZmFGUWFYTFdFb3luU0s2cUwwSkQxS1hnaVIzU0VmNHVBVGo3?=
 =?utf-8?B?ZStDS2xoZERCNS91MHJnbkhSbFoxcjI5SWxzbC9WRUROaXNGa1EwamVCeDNa?=
 =?utf-8?B?QXJYL2JybTJ6NDdPT2IvVmlaeDZtTmtiNThKVEU2OGtHMU8zNC9FdjNmN2pY?=
 =?utf-8?B?SkxkNTkzeGRCOFoyTTFzemsvMHdCZG96LzZmbWdLNkpFWUlMQVpiZHBpaVJp?=
 =?utf-8?B?Vyt6elB5bTRoZjZsRDZOZU9QdWFpdjB3RlRRdUVrNEU5WkVLMUE0b1NlcXlY?=
 =?utf-8?B?UlFaallMaS9naTZMVFVCdytVYnI3K0czdlRDQ2Fndzd5VmVuUitPOGVVSWVW?=
 =?utf-8?B?eWw4aHB1WXpmUXI3cEFxcGRJTmU0NjA0eGxacUgxbnNEWHUyOC94aC90ZmM2?=
 =?utf-8?B?UjFwNS9CdjBxMS9FYmZ4Nzl6ZkdPV1FqeEtkV2M4cGRydVRaV293bmNVRVVw?=
 =?utf-8?B?YXQyYm1NbXF4NmhHVVRXOGlScnB1SHdoVyt2YzhDRGdPUHJvdnlwMENiOEFP?=
 =?utf-8?B?WC9UM2Nvay9HTmlVWXlyMzNSSUc4L3lYMjZMdm9iQU9pWEQ1NVI5U0oxYzhp?=
 =?utf-8?B?aFA1amMvVWMyTlA3YytHc2grS1d4TDdjTkxJRW5Samd6bjdkVmdmN1owSXcz?=
 =?utf-8?B?OUJhZkpSN2NCSjNiTGtFWTJQanZ3bnBhNWxzU0c1V2h0RXlEYWcxZVJEVVV0?=
 =?utf-8?B?TUxPL204Wll0cUMzVnVJUTV2RVlMcVVyOTJiNTNUWk12bE9zTGdYSUkvSEJJ?=
 =?utf-8?B?Ui9ycFVHVzR0NUZvQjdBcVlkQzQ1NDVsVWpzeThZMTZ1aCtsZXpLNVpRSUdH?=
 =?utf-8?B?a1U4V2s3dEd2cCtUOXVDRWhmOW4rajROYVRmZEdqVHNBRmxYS0c3cGJ1Mk1D?=
 =?utf-8?B?LzEwZHBzMGExbFlBSC9ibUFEUEhsaVBRWVdvWjdlWUVaNm1Ed0FZRXNuM3JU?=
 =?utf-8?B?ZlF3Vjc3NjBtbXc2bGtLeVRnYkZjV0NQcXp2UHIxWE5CT2hJUFNoVkVwbGhH?=
 =?utf-8?B?NlFpQkVUK0hGcUFqa2Z1RE80cjJJVEw3bXhBcWt1eHdxMW5oYjk5c2dUN1dh?=
 =?utf-8?B?NE1RZ1plSHc5UTNxSDBPR1ZCOTVJU25obWczZmt2WjhyZ3ZrWlAzNGZGYVg0?=
 =?utf-8?B?NnFTaEowem5oVFhuRG1UME5LS1dCeUhEV1I2Y1MvTlhsa3R2eXVCem9nVlNS?=
 =?utf-8?B?a0xqOVpnT3BkRVpzSS91YktYaE1ORmErZzdmNW1WRmRDdEVJUlJQMVk3c2Er?=
 =?utf-8?Q?tHyg=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013)(7416014)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 01:34:43.2523
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bef7a5cc-3cdb-45bb-ba02-08de391ea03b
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003F64.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7523

On 2025-12-11 03:29, Jan Beulich wrote:
> On 11.12.2025 03:47, Andrew Cooper wrote:
>> On 11/12/2025 1:28 am, Jason Andryuk wrote:
>>> On 2025-12-10 11:55, Andrew Cooper wrote:
>>>> On 09/12/2025 9:47 pm, Jason Andryuk wrote:
>>>>>           . = ALIGN(4);
>>>>>           __alt_instructions = .;
>>>>> -       *(.altinstructions)
>>>>> +       KEEP(*(.altinstructions))
>>>>>           __alt_instructions_end = .;
>>>>
>>>> Thinking about this, what we need is for there to be a reference tied to
>>>> the source location, referencing the replacement metadata and
>>>> replacement instructions.
>>>>
>>>> Looking at https://maskray.me/blog/2021-02-28-linker-garbage-collection
>>>> might be able to do this with .reloc of type none.  In fact,
>>>> BFD_RELOC_NONE seems to have been invented for precisely this purpose.
>>>>
>>>> This means that if and only if the source function gets included, so
>>>> does the metadata and replacement.
>>>
>>> With Jan's -Wa,--sectname-subst changes added to CFLAGS, this seems to
>>> work somewhat.  I'm trying to make the ALTERNATIVE place relocations
>>> against the .altinstructions.%%S and .altinstr_replacement sections:
>>>
>>> diff --git c/xen/arch/x86/include/asm/alternative.h
>>> w/xen/arch/x86/include/asm/alternative.h
>>> index 18109e3dc5..e871bfc04c 100644
>>> --- c/xen/arch/x86/include/asm/alternative.h
>>> +++ w/xen/arch/x86/include/asm/alternative.h
>>> @@ -90,18 +90,25 @@ extern void alternative_instructions(void);
>>>   /* alternative assembly primitive: */
>>>   #define ALTERNATIVE(oldinstr, newinstr, feature)                      \
>>>           OLDINSTR_1(oldinstr, 1)                                       \
>>> -        ".pushsection .altinstructions, \"a\", @progbits\n"           \
>>> +        ".reloc ., BFD_RELOC_NONE, 567f\n"                            \
>>> +        ".reloc ., BFD_RELOC_NONE, 568f\n"                            \
>>> +        ".pushsection .altinstructions.%%S, \"a\", @progbits\n"       \
>>> +        "567:\n"                                                      \
>>>           ALTINSTR_ENTRY(feature, 1)                                    \
>>>           ".section .discard, \"a\", @progbits\n"                       \
>>>           ".byte " alt_total_len "\n" /* total_len <= 255 */            \
>>>           DISCARD_ENTRY(1)                                              \
>>>           ".section .altinstr_replacement, \"ax\", @progbits\n"         \
>>> +        "568:\n"                                                      \
>>>           ALTINSTR_REPLACEMENT(newinstr, 1)                             \
>>>           ".popsection\n"
>>>
>>
>> There's already a symbol for the start of the replacement.  We only need
>> to introduce a symbol for the metadata.  Try something like this:
>>
>> diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/include/asm/alternative.h
>> index 18109e3dc594..a1295ed816f5 100644
>> --- a/xen/arch/x86/include/asm/alternative.h
>> +++ b/xen/arch/x86/include/asm/alternative.h
>> @@ -55,6 +55,10 @@ extern void alternative_instructions(void);
>>   
>>   #define as_max(a, b) "(("a") ^ ((("a") ^ ("b")) & -("AS_TRUE("("a") < ("b")")")))"
>>   
>> +#define REF(num)                                        \
>> +    ".reloc ., BFD_RELOC_NONE, .LXEN%=_alt" #num "\n\t" \
>> +    ".reloc ., BFD_RELOC_NONE, "alt_repl_s(num)  "\n\t"
> 
> Is it even worthwhile trying to further pursue this route if xen.efi can't
> be built with it?

The alternative is section groups?  I'm trying that, and it kinda works 
sometimes, but .attach_to_group fails when .init.text is involved.

Here's an example that I think would work, I could make it to 
--gc-sectrions:
group section [    3] `.group' [.text.vpmu_do_msr] contains 5 sections:
    [Index]    Name
    [   43]   .text.vpmu_do_msr
    [   44]   .rela.text.vpmu_do_msr
    [   45]   .altinstructions..text.vpmu_do_msr
    [   46]   .rela.altinstructions..text.vpmu_do_msr
    [   47]   .altinstr_replacement..text.vpmu_do_msr

But I don't make it that far.  Other files blow up with tons of:
{standard input}:9098: Warning: dwarf line number information for 
.init.text ignored
and
{standard input}:50083: Error: leb128 operand is an undefined symbol: 
.LVU4040

Line 9098 of apic.s is .loc below:
"""
         .section        .init.text
         .globl  setup_boot_APIC_clock
         .hidden setup_boot_APIC_clock
         .type   setup_boot_APIC_clock, @function
setup_boot_APIC_clock:
.LFB827:
         .loc 1 1150 1 is_stmt 1 view -0
         .cfi_startproc
         pushq   %rbp
"""

diff below.  Any ideas?

Thanks,
Jason

diff --git a/xen/arch/x86/include/asm/alternative.h 
b/xen/arch/x86/include/asm/alternative.h
index 18109e3dc5..8701d0e0a7 100644
--- a/xen/arch/x86/include/asm/alternative.h
+++ b/xen/arch/x86/include/asm/alternative.h
@@ -90,25 +90,31 @@ extern void alternative_instructions(void);
  /* alternative assembly primitive: */
  #define ALTERNATIVE(oldinstr, newinstr, feature)                      \
          OLDINSTR_1(oldinstr, 1)                                       \
-        ".pushsection .altinstructions, \"a\", @progbits\n"           \
+        ".attach_to_group %%S\n"                                      \
+        ".pushsection .altinstructions.%%S, \"a?\", @progbits\n"      \
          ALTINSTR_ENTRY(feature, 1)                                    \
-        ".section .discard, \"a\", @progbits\n"                       \
+        ".popsection\n"                                               \
+        ".pushsection .discard, \"a\", @progbits\n"                   \
          ".byte " alt_total_len "\n" /* total_len <= 255 */            \
          DISCARD_ENTRY(1)                                              \
-        ".section .altinstr_replacement, \"ax\", @progbits\n"         \
+        ".popsection\n"                                               \
+        ".pushsection .altinstr_replacement.%%S, \"ax?\", @progbits\n"\
          ALTINSTR_REPLACEMENT(newinstr, 1)                             \
          ".popsection\n"

  #define ALTERNATIVE_2(oldinstr, newinstr1, feature1, newinstr2, 
feature2) \
          OLDINSTR_2(oldinstr, 1, 2)                                    \
-        ".pushsection .altinstructions, \"a\", @progbits\n"           \
+        ".attach_to_group %%S\n"                                      \
+        ".pushsection .altinstructions.%%S, \"a?\", @progbits\n"      \
          ALTINSTR_ENTRY(feature1, 1)                                   \
          ALTINSTR_ENTRY(feature2, 2)                                   \
-        ".section .discard, \"a\", @progbits\n"                       \
+        ".popsection\n"                                               \
+        ".pushsection .discard, \"a\", @progbits\n"                   \
          ".byte " alt_total_len "\n" /* total_len <= 255 */            \
          DISCARD_ENTRY(1)                                              \
          DISCARD_ENTRY(2)                                              \
-        ".section .altinstr_replacement, \"ax\", @progbits\n"         \
+        ".popsection\n"                                               \
+        ".pushsection .altinstr_replacement.%%S, \"ax?\", @progbits\n"\
          ALTINSTR_REPLACEMENT(newinstr1, 1)                            \
          ALTINSTR_REPLACEMENT(newinstr2, 2)                            \
          ".popsection\n"


From xen-devel-bounces@lists.xenproject.org Fri Dec 12 01:39:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 01:39:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184819.1507104 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTs7r-0003Jq-LX; Fri, 12 Dec 2025 01:39:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184819.1507104; Fri, 12 Dec 2025 01:39:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTs7r-0003Jj-Ij; Fri, 12 Dec 2025 01:39:19 +0000
Received: by outflank-mailman (input) for mailman id 1184819;
 Fri, 12 Dec 2025 01:39:18 +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
 <SRS0=lRu3=6S=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vTs7q-0003Jd-Gu
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 01:39:18 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5e9d4f30-d6fb-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 02:39:17 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CO1PR03MB7985.namprd03.prod.outlook.com (2603:10b6:303:273::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Fri, 12 Dec
 2025 01:39:13 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Fri, 12 Dec 2025
 01:39:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e9d4f30-d6fb-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EpeNwRgksZkctc9y8FIeeSfss04i4IN5hrTZAGqG6IKJ5S0wzNgxnADIvgER9ibVZ0PTu8xJyzwJNbCvJSDDEQmFBvP9WJczu8d6fKtF2j53rEoGSLbv13G4TX4Az5ZrVPONEuTfIJiweTfevW3WJlrQ7nZ0OCiqfjYGbIe3tTjxwz7Axt6HnsnED0tCJNVDnEIfFDh8GzEvtHxPDpumL1Vw3vBCcVmdlqouTgatE+fCO+w86gIEYvoBsOTZcN597+83ozaorb8eZHvcXb9zppMXtMU+k4HMwrUEEeg3gDvEuFYBIb7VgAJw/qvwx9rGGZjFHtg0vCNJRXh1XnIuvQ==
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=JZALJNq0kxwBQQHPsocYIkfEBSpsgHPFBMF0u2aGVKQ=;
 b=cYMnJagWfOCKqxJi23PCGQshXy+oXfEeUnKDBU53uAFiYIBPB6ZyGkCURG1xFGJc141LyMCZ0p6OLoh6GdH8yYdqMJ9rxLd22oMoz7Gp+9jAdkl5bFs7vq2zQQER1/luatLkSX4b/tKQ8Ar69MK+LX0B2jAQojOC83jGDUuvHs6uFjw0NC1FyQJdiN+s8IFe2Jx1bGE8pHgPt4VOp++RkM7fHYA9+gJAX0R89xUSsiPPiafTlwAKP+ciXn2GUbDe9JxVJw0LYG0dvtt0Ev8tmlSjQikIepR7HusLKB9xfBQUDCYe2Rdu1eM9y35d8RUBL51FokU9lPTBPPPxPZeuSQ==
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=JZALJNq0kxwBQQHPsocYIkfEBSpsgHPFBMF0u2aGVKQ=;
 b=bFAFJr7ejK4SYFoxNi9ulczi5abe/6/wwCG5u1uOIxGZ6DyQWvo6nP/V5uhnMYUBz0FRAngc7HSO/MtzOtxKdw0AAV0Ap617WiYJE5sFSfY3+jWEsBBDim6lEaYr2CaP4XsUIWPoXTbU8brEzb3kFAahc8qBDK0S9FoeD7FfCy8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <86bd8cf4-7c54-4e54-b923-86c7ea1c3dd5@citrix.com>
Date: Fri, 12 Dec 2025 01:39:09 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich <JBeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH 2/5] x86: Name parameters in function declarations
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
 <20251210183019.2241560-3-andrew.cooper3@citrix.com>
 <d64b368566892cf39c90f25b1ac34692@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <d64b368566892cf39c90f25b1ac34692@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0673.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:351::8) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CO1PR03MB7985:EE_
X-MS-Office365-Filtering-Correlation-Id: 5365442e-725e-4555-a358-08de391f410b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QmpQMjFWRFRDS1RRaVJ4S25JNHdBV3V5VmhaSmR5OVlCWS9VVW1VMndwT1A1?=
 =?utf-8?B?bG1pbDZGeDBhSDNJbDJzYkZtZEFNem96ZTV1UzZNL0FObkw1aFE2a3FvMlRK?=
 =?utf-8?B?aW5XLzkzQmtZckZHMnM4cUUvblBSV3FNTmFUS2wyaXd0L01Vd015aUJIRUFU?=
 =?utf-8?B?VW4wTjJpeFh2NTNlTnViNW5QMGx5WjhtbllvZlIyVk5vcDhtUUp1ZUplQzdJ?=
 =?utf-8?B?T1c0M2d5YlhwamlUOHlWbVZkV0RSMHlIazE3YnlVaWlYdzk0ZHJOVmt5VmY5?=
 =?utf-8?B?QU1qRURGMUlySjRZdGdBb1hGbldCaHdwYkRVN0QvV0ZSSmxSZ09zMlhKV1B1?=
 =?utf-8?B?VU1tRzBWVkM0dkZNSWxObDJxb0ZsTWVnaUJKOGRJMHhEaWtJRXhycnVoaGRM?=
 =?utf-8?B?REIrVWlDY254N2FodUZmNEk4T2h6MTVVN2J4ZE5WREV2TUQ0cm5tN2ViYVZw?=
 =?utf-8?B?L0pWU2xnR2p5OXlrb0xPQkR0Lzl1aEs0RlBnTG5aaE1EellqdEtyTFJITmJH?=
 =?utf-8?B?NHR1djFZbUcycEJVSmdiZHVTQWM5R2xqVlhhTm8ybTVWZitoM2k4d3NOWGhD?=
 =?utf-8?B?RHpJYUZoTEJaUjVEVHZodEZmV3c1d1BoUHFMQkhwYTNkQkE4cVBlQnpFZUR2?=
 =?utf-8?B?ZUhTTmI0SmVPa1VKdnlVZlh4SXUyMWVXZ0ZQeFRqQ251UVcyUm9IY2xRdTlE?=
 =?utf-8?B?aWJmdEFPUFlXcGZBQVlLVldTN2lhSkpiaVB6ZiszdHh6Wm1jSFduampucFdr?=
 =?utf-8?B?VlIvdnl0SGhLRURadDZJaHAweUFMS2V5OE1NM3BLOXZzRmVLUmk2Y1JJRVhV?=
 =?utf-8?B?UVFSZDdKSXFZbDJKdmFxay9kSyt4V1ZFbHNyNW1kUGNlUzdXT016M1Zlb2ZJ?=
 =?utf-8?B?UlJkZlNwQkQ1SitsVjlwb0hUT1VBK0dFU0U1aUFhOU5vQU41eldsckxTRFR4?=
 =?utf-8?B?NUhIYWdDa3dzVWVpZnZwTDNhK1hnMC9XQ2J2a0prcGllL1lzbEFISElhNDcr?=
 =?utf-8?B?OVJ5ZEI5eFowQXNoNjV3M0xTeStVcUZ1SHJwMkJvVE5RckFOSWNvQ3E2cnhx?=
 =?utf-8?B?STVGOWRtR0lYSzh5SkFxd1lGYlowMkY3cVI5b1N4MVUrQVFWZjJsS2pUL1My?=
 =?utf-8?B?VEJGUVM4dktVNHR2eEF2eDFPYzN4RjFac0ZaeUtmYmYzZlhuRVVsSE5aMUc4?=
 =?utf-8?B?OVNUWElzN0Z2OFhYWlVGeW01NDYyS2txYUlXZzUrSEp3QkRUSkl2QVpDRE0y?=
 =?utf-8?B?V1k5TkplL3JINE9WdFYyM1NPdENLS2phWW55b2REZ3p0QzhQMUFHa1U0ZWps?=
 =?utf-8?B?K1FSbzdEaUhRRzYvYTQyOXFqT0FvNDFYOEl4b3lCWTArbmVDSDBWS2ZwdG1D?=
 =?utf-8?B?ZFBoU09ydW5lcEdGeTB2SGh5QXpMUk5rR0V0UmgyTnFQeE05KzBCZ1FMNVVa?=
 =?utf-8?B?SkRla0J5Qnc3Q3BUbjJ3MEUwdVZmZzRZc1E5N2RXdnZJaHk0M1RhTUxtR2Zy?=
 =?utf-8?B?NlFkMmQvck00eEQ0NVlzaXNrNUF2MzFGYTYvbzllOXUvcGNybDM0aWtYb2xL?=
 =?utf-8?B?SUlPMWVCRTRNQWFLZXhjdG0zQ2tRTlZYUVFDQkNISVBqeUZ6UWRmYU1iU3lN?=
 =?utf-8?B?Zm55MmpMK2k5VngyT3puc01qdGdyM2RqRDBEbEY1blhEN3ZoUmFFOUpaTXRj?=
 =?utf-8?B?R21DMVI1enNxZjdRR0RPTWFXOHlCSm9yQXozRXV0SG9CT3h3bXAvK1REZ1Rm?=
 =?utf-8?B?OFFRTmxjbEdrenVSZ29hcC90NWFBbHQ0R0NTd1ZwWXhaVU44bzgxbUpGR2Rm?=
 =?utf-8?B?d2RFUWxGaWl5MUhENldNNW1RUzZRb1RpcHd6a2Q3OXc5UjhoYUV6T3VZdWtz?=
 =?utf-8?B?M2lmWDU0SDJGYkhGdTYrL3RhZGQ1SUxGUzY4RCtXMHR4eVBpQzJFS2pMZWJv?=
 =?utf-8?Q?N8CmF1b1GSqiznOgUnV8fFakOy5T/W2E?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?V2NNVmFLb0ZXTVJmREROR3YvdnpWd3JsZGNHT016VXBYU2hyeGRRbllsU3dS?=
 =?utf-8?B?emlpZEpjK2F4bWNXTVUyamdrRDQ0bndQUGlFWU41Y05Xc0Q2eGxxN0R4cXkv?=
 =?utf-8?B?K1NiYmcvUUFWZGd2RHFkZkI0WnlTYWdJM0R1a1lIbDJMVFdhNjVlMEhhL3Vu?=
 =?utf-8?B?K3R0UTZyTWlldS8xeCtxZEdXR0pBODJvem1raExMdUp0TzdJeW00MFJKaFdv?=
 =?utf-8?B?aHNBZzJFdWU0SGZSdHdwRTlaWENDTmRiQ0k1Z3A2MzhoQ09IWkpON3JVNHMv?=
 =?utf-8?B?MUJMemhoUlpGeTg0ODZYeHAyekROTzBmbVRLelpDdWg0V3VadGtibUpWTlhT?=
 =?utf-8?B?K3A2aDA3WFJYWkZLSUE1T2tKdUo3V3M4OWEzNWV3MGJFRElNcnNNajVjZzh1?=
 =?utf-8?B?MWVmTC91YkJsQTNBSEE3OXo1MVhFK3dpQlc1TGttS0NRWTI3TDB6WXlYVDFP?=
 =?utf-8?B?cUxNeHhLWU9UNFAwdTk0cnBIckZKTFQwbUFyUWJDb0FOWGNIODdGdUozY2Jl?=
 =?utf-8?B?MGRiNnFxblNzVmQ2MXU2bGpXS2F5bEdKeDl2bnpHQmxRTTQzZGtHVkhQYzY1?=
 =?utf-8?B?TU90NWJIdVVyVk41TEZlMmNEbzUwcEp5M2RrNFltTmhjREs4M2l1Q0Nkcnc0?=
 =?utf-8?B?YTR6aGtDZGV5RnJaWkRGU1A2N0gvUVNtWlllUFN4bVlza3l5V1ducmFMUjYv?=
 =?utf-8?B?OCs3T3pOMTNhMHI5NjZTSUR2eFJiMzZ5SWF2bjk0NzlzT0Y4S0Q4WFNlSU5v?=
 =?utf-8?B?T0RaVEh1cGNqN2ZmYlNHVFN4TXhNc0RBVnFCbXozZUdnMU9iVldSeHJ2K294?=
 =?utf-8?B?YVVXczhObUJmQXRkWVZDYkU0OVRyK2hwbm14QWZ2TldmejZCbnVKNmxWb1NF?=
 =?utf-8?B?eU5PTklQV1VCSnllREpDa2RnUk9QZW12VTFzdE9wclJvU0tFWldkZHBlL1Zq?=
 =?utf-8?B?WFBQY3ptT1BFdjJUVXcwbnNwSDErQWk4bVY4c1lLV01YMCt6bXdkZVJGSTkx?=
 =?utf-8?B?cE1WRjZoRzVabEpnaFRKTWVCcEx1cDJZam1iaG5pMW02VWlnWUJmMEJ3K0NZ?=
 =?utf-8?B?S1R2LzNHeGU0cmZUYm92YXlwa0xsSVhQQ0Z2SnAvT1Nzd3U2UHEvNG1HaTF0?=
 =?utf-8?B?UVNQbVpRalViNVVSODlHZTdBeGNLSGk3M3JLRnM2QjdWNUtpZzFlMjM4VzRG?=
 =?utf-8?B?SFNrUDcvU0JUR3FhblIvc1EzQ0IzZ1hqOHBoVUNheExxSW5JT3VjZGhSWERq?=
 =?utf-8?B?eDBFc3IyOTJmbXljd2t0c0FwQ0FjWUpIMUtSdmNwZTl3WFdtZWZYS3hTMVBl?=
 =?utf-8?B?WExpa2wxSWNwbVJYZ3VWWE1QUTdvWW5kcG1CZWlJMEY0QWp0ZC9KZnVtRm5p?=
 =?utf-8?B?U0FPby8wWG1GU3B1YWR2YkFUMVFmQitRYk5LKzhQcXhYKzBMcm9VeXpWQmVH?=
 =?utf-8?B?VVNWbWZhOVBKbS9FVGp3b0o1L3FEN0V5Q2ZoVTJiK016UGM2c3VwSW16cTZK?=
 =?utf-8?B?L2JRd1dka2Y4TE9jUklvd0hqbW9FeWJrOVlsQ3d6dW9YRGlhUEkrdWo0SDJZ?=
 =?utf-8?B?RzE2cUpMUmpRYi9MSEVYQllpazRWTEk3Sy9xekhpangvVmlFOG8yZVBpSU40?=
 =?utf-8?B?ZEFSNVI0a08wbk5OMk9xS0Y2WmdmSnh3UXI3UEtRdWtYQ21lQ0VFek5ZeVgr?=
 =?utf-8?B?TTg3WkE1VTVnNzlHelo0WENrTldsY2VhT0E3N0c4Z0YvZ3pncno2eFFWMjJ4?=
 =?utf-8?B?NEtVNjNtckFJZ1JiVExqdFlkS0ZxUWxEU0g4T0ZUMEM5cWZ5WSt2TVhzc3Vy?=
 =?utf-8?B?UDVhTWJVT1Q5Wk5kOHZLUzNrWEM2U1lTWFJSQ3VxVDZYZFFpQmZZdkl1Q2hL?=
 =?utf-8?B?anMxVlBsQVhRQnJQZ3E4aGhIV1BTOWZRTTczcjEwMDNPODhzYXkyenEyRUxu?=
 =?utf-8?B?K1ZHWTZtcW5MeUh0Um5yYkhvTkN6S2hpYWdGQ1hoVUE5MHhUNjVCS1doQUxk?=
 =?utf-8?B?N1hYc3Q4SnhtcDRZZWhoRmlaa0NTMFdJU0k2TjZnWVpWeDlCMmx6ek5WUXUz?=
 =?utf-8?B?R3RSMWdyam13QWJOTTJYOUZzYmVjcmtwNVdaSThRWlVybE9pVnpZN3RrdG9l?=
 =?utf-8?B?YTNYVkwya3dZZWs3L1JjeDJEQnB1R0FrYXRid3NVSGUvZk15QXBKOExVRWVU?=
 =?utf-8?B?ZUE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5365442e-725e-4555-a358-08de391f410b
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 01:39:13.3110
 (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: MIEsIwSUUCNKjBfeqQ+mHuOF9z1fv5zlSupLRuXMAUgMZdhtDPb+PhYnAKufCSNHNGjWZqqi/XYyEUTXs/vWxTsPrrNGcikeNh39Vsv2yoA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB7985

On 10/12/2025 8:15 pm, Nicola Vetrini wrote:
> On 2025-12-10 19:30, Andrew Cooper wrote:
>> With the wider testing, some more violations have been spotted.  This
>> addresses violations of Rule 8.2 (parameters must be named).
>>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

Thanks.

>
> One nit below
>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> CC: consulting@bugseng.com <consulting@bugseng.com>
>> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> ---
>>  xen/arch/x86/mm/shadow/common.c | 8 ++++----
>>  xen/arch/x86/pv/emul-priv-op.c  | 2 +-
>>  xen/include/xen/livepatch.h     | 2 +-
>>  3 files changed, 6 insertions(+), 6 deletions(-)
>>
>> diff --git a/xen/arch/x86/mm/shadow/common.c
>> b/xen/arch/x86/mm/shadow/common.c
>> index 423764a32653..f2aee5be46a7 100644
>> --- a/xen/arch/x86/mm/shadow/common.c
>> +++ b/xen/arch/x86/mm/shadow/common.c
>> @@ -69,11 +69,11 @@ const uint8_t sh_type_to_size[] = {
>>
>>  DEFINE_PER_CPU(uint32_t,trace_shadow_path_flags);
>>
>> -static int cf_check sh_enable_log_dirty(struct domain *);
>> -static int cf_check sh_disable_log_dirty(struct domain *);
>> -static void cf_check sh_clean_dirty_bitmap(struct domain *);
>> +static int cf_check sh_enable_log_dirty(struct domain *d);
>> +static int cf_check sh_disable_log_dirty(struct domain *d);
>> +static void cf_check sh_clean_dirty_bitmap(struct domain *d);
>>
>> -static void cf_check shadow_update_paging_modes(struct vcpu *);
>> +static void cf_check shadow_update_paging_modes(struct vcpu *v);
>>
>>  /* Set up the shadow-specific parts of a domain struct at start of day.
>>   * Called for every domain from arch_domain_create() */
>> diff --git a/xen/arch/x86/pv/emul-priv-op.c
>> b/xen/arch/x86/pv/emul-priv-op.c
>> index 225d4cff03c1..08dec9990e39 100644
>> --- a/xen/arch/x86/pv/emul-priv-op.c
>> +++ b/xen/arch/x86/pv/emul-priv-op.c
>> @@ -40,7 +40,7 @@ struct priv_op_ctxt {
>>  };
>>
>>  /* I/O emulation helpers.  Use non-standard calling conventions. */
>> -void nocall load_guest_gprs(struct cpu_user_regs *);
>> +void nocall load_guest_gprs(struct cpu_user_regs *regs);
>>  void nocall save_guest_gprs(void);
>>
>>  typedef void io_emul_stub_t(struct cpu_user_regs *);
>> diff --git a/xen/include/xen/livepatch.h b/xen/include/xen/livepatch.h
>> index d074a5bebecc..3f5ad01f1bdd 100644
>> --- a/xen/include/xen/livepatch.h
>> +++ b/xen/include/xen/livepatch.h
>> @@ -62,7 +62,7 @@ struct livepatch_fstate {
>>      uint8_t insn_buffer[LIVEPATCH_OPAQUE_SIZE];
>>  };
>>
>> -int livepatch_op(struct xen_sysctl_livepatch_op *);
>> +int livepatch_op(struct xen_sysctl_livepatch_op *op);
>
> xen/common/livepatch.c:int livepatch_op(struct xen_sysctl_livepatch_op
> *livepatch)
>
> Shouldn't this decl also use "*op" as well? Might not be triggered in
> this configuration due to the absence of CONFIG_LIVEPATCH I think.

Yes, I've converted the main function to use op too.  It makes the patch
a bit larger, but it's a much better name to use in this context.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Dec 12 01:46:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 01:46:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184837.1507113 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTsER-0004wY-9B; Fri, 12 Dec 2025 01:46:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184837.1507113; Fri, 12 Dec 2025 01:46:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTsER-0004wR-6g; Fri, 12 Dec 2025 01:46:07 +0000
Received: by outflank-mailman (input) for mailman id 1184837;
 Fri, 12 Dec 2025 01:46:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lRu3=6S=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vTsEP-0004wL-Ns
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 01:46:05 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 49811056-d6fc-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 02:45:50 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS2PR03MB8136.namprd03.prod.outlook.com (2603:10b6:8:27b::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Fri, 12 Dec
 2025 01:45:46 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9388.013; Fri, 12 Dec 2025
 01:45:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 49811056-d6fc-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dbOmXo0uUIPup878Af0tckjzHnEt/5QaIA7fDryzFKcrKLRBfQWbn+R5QH8hbwi/Kuw9hYdhHVPLR3jIwrIjLH/fYkSwk2md0xKY9ty5o1XPGcIJha0G1rsgjTKih8w9QLemu/qedA7UrVpcmv3TIdwEk/tmvj4jxWApB13Ius+On7uKSqezfOuRvkiZtlPbiY009Cw2oq/Z3Uvb0epyvy7yf3ZXj58eNhmt0bUqmdwMwXvn/x8f+wT/5PSy1aKr5Fs8KL7ds1IaecuCg1dKL7mW6q9VbP/Njdh+uwb0VvEe4EUpFzatTEM+Xyrfkqnt5H6rDG82FNLmvSDXUO8mIw==
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=sQtZF6C/icLyIA+777VnvJNTfdqs3GXuUbkFxxOgwFs=;
 b=Bso70b40xYIHwh7sivAizL6kKye3KBrXKutb9ZhKD1YGGjMPGL8gWThRT1tgSZqzi+1khLPauXKNbhpgVhb46l7hC0klFDbS2lC06q7GDumw2j90bYnbeKo7y33AG//NPHiVxPEZkKmX0pCvAXvzFa4bN11TWRy0Mh7hNjUKh3TdIGYwy/qFyQLMHbUWm238I5WMlxVuxdw4mzqUM2Ma/GuXHU5yxxKooOfm5M2hPyTSktAftS6Cc0koiwE1L4uYo5Zx3qXRZ+B1OSV747AKRL6qOQeiajxKg7mpK2jWd0eTTqyFI+xT0f/HGVSArP9yzVfG2yb9FSwUV8mzka/sCA==
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=sQtZF6C/icLyIA+777VnvJNTfdqs3GXuUbkFxxOgwFs=;
 b=ck/lsG1exVp9o3b+XMYd4J2TFfqrmyahPQJ3ISSHnZS4q0RsTsOLdoh0dSCHwqZ/0LP+Ms/K+jWHfh/Rwme2WOuiYKpevo7ZOC+bud9oYXr1gFl1LKBDdqWPTyrq+NI5G+bZLamH1jpqebRkpUr/bkkOkEqKR4Jk5d9BeBhI2Mc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <75731067-89f7-4d8f-b6a3-05dc46c777b5@citrix.com>
Date: Fri, 12 Dec 2025 01:45:42 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "consulting @ bugseng . com" <consulting@bugseng.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 5/5] x86: Fix missing brackets in macros
To: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Jan Beulich <jbeulich@suse.com>
References: <20251210183019.2241560-1-andrew.cooper3@citrix.com>
 <20251210183019.2241560-6-andrew.cooper3@citrix.com>
 <5a4695fa-1520-4d52-adc3-72c159892e33@suse.com>
 <fdf95d1d02274a6442d4eb4c6b7284b8@bugseng.com>
 <d2988b31-66e0-4a6b-8f77-4ae2cf2c4bd4@suse.com>
 <9aee3813bc96718ce0d772ead4f0578f@bugseng.com>
 <d447f57045f1a7463fcc14faf271be87@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <d447f57045f1a7463fcc14faf271be87@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0366.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a3::18) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS2PR03MB8136:EE_
X-MS-Office365-Filtering-Correlation-Id: f197ca15-35e4-4afe-792e-08de39202b96
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dDVxdnU3Uzh5cWdlSUNnNjBrYWN1VVlXV2d5MGoyM2hlSFRjZno3UlFtakFl?=
 =?utf-8?B?K0VMVnZna01FbHdnZEVoa3ZoL1Z1aTd2UmU0ZXdqTEVmc24vcXBNVFlhWFE5?=
 =?utf-8?B?akVsT0xiV2dldUZYbmMwb0QrNFRPMEZodU5kVWJOUFNmM0c4dWdjNnVyT2tu?=
 =?utf-8?B?WkUxWk1wOWJmVGo0V2N0WnA3U2dZb2JaSncvaVpOejB0UXpXMERIanF1U1JT?=
 =?utf-8?B?TnJRZVE0WHgxVjEzMnQ4NmtpbEdjT3Y2L0pNRmltSUdIR1dVMjdPZEFKOERR?=
 =?utf-8?B?WktjV2UybTd4aC9xdWR2R0ZCdXRZMVd1akd2eHdXRC9kWUlhZmg4bkhNOG0r?=
 =?utf-8?B?cmQ1dWtrV0F3ZFhrbmpLb3FKdTZIRDhsWXYrOS9wVjIzdm9QUE5xZWhxNjgz?=
 =?utf-8?B?ZXBBWEd6V2J0aVRYcEh0MHdSQ3R3aVhQcFExRWh2cldHNFY1cEpBdkI3MVVP?=
 =?utf-8?B?TEhQTWIxb1VXdXIzV1p5WkRpTjNEYlR2MzVBazI0NWhkQUVuQ0ZDVXl5ZnlW?=
 =?utf-8?B?UVFReHg2YnZqdXhvblR0SEwySFNtbENkVk1zZ0VjVmlRcDAzcnlXRHM2ZTFC?=
 =?utf-8?B?RUdOOERMeGVhOVY3Q2o4UFRhdjVjQnlJRG5sajI5dTdkQU5mQTlGeFZ4eGFI?=
 =?utf-8?B?alNyWktvQkZnUUtVa0syVUZXY0t3RG9CVFJqeTd4S2ZvcEp2d285U0F4RUt4?=
 =?utf-8?B?QzNRQTIzQndJT3VnQ1NwZUpjODdZZDdMWTZwY0llUzIrTmlOTS9wbXVkRlp4?=
 =?utf-8?B?ZHRqQ0kvUVh5eW9xUWNpTHZqN1ZzWkJQM0Q4OS9vbVdialYxMmlSeTNtaGh3?=
 =?utf-8?B?SktyZjNBK2tkTTJsYmd2T3ZMM1JzcFhyaWFQN3ZpY0p0WWN6RjVpY3pGYU9K?=
 =?utf-8?B?ckg1ZmJ4ZFBlRVdlNU9DZzdmcmJTSi9ONHBBK2xZZ3A4TEZCZlp3S1hVbmtJ?=
 =?utf-8?B?Y1lLWFpCMFIxTVJJZUpFUTJqdnhNVzlWelA3TEp5ck8wTFZQbzdiYVJtY1dn?=
 =?utf-8?B?UEQyNWpPWGEvczNMN1BMWC9mYVpFVzFEbjI2UFZtbWtKejhDNmk5ZUxocFAw?=
 =?utf-8?B?SDZwemluR3hDZmhTcmQxWjgxTVlNZ1RxRnp6QlN6NGhrRlRDaDhPZW5iV0FE?=
 =?utf-8?B?bGg4S0JYekFaV3VMdSsyT1M3SlplYVhUS2c3RXloT3NUK3d0TW5YbGU4WThp?=
 =?utf-8?B?cHVJWGt5RGNLVEszYTVjL3BiU1FxeHZDVWZ5Zk5nN1BremVBYWx3M1VaU3dV?=
 =?utf-8?B?QkpZS0NwMDFEOHA4RzhncEVRUUMrNTUvbHZtam5sVUtvTG5xdFI3TjEvZ0gw?=
 =?utf-8?B?TWVEN0t4L001M1Q1TjV4Y2UvRmR1S2QzeTBJTS8rZDUvYkFRbmlwMmJUdjBq?=
 =?utf-8?B?QUJKV1lFSFhHZUtBQU9YRzgxUDkramxSNVVZRVh2c014K3N6YkppREpBZHlH?=
 =?utf-8?B?dTVpRkVMSGtIeW95UVNIZm9oU005VUx6eGRTQ0pHMGNYMzRHZkt6ejdrczFC?=
 =?utf-8?B?OGhPTmxqRjRCNnBhcWl2dHdlQjU0TW9QeW1yVTRsdkxjckF6VlJzam5nQXBZ?=
 =?utf-8?B?Mkd5NHBRd1BqdFJubWdIcmo2NFBmWWN2OWtRN1A3VVF5RHdMV1c4OXpPNGtF?=
 =?utf-8?B?VncvZnhnaHI2dWFmNUJINDhvNkhMeTliN3crVWlpa0tiRTFsdjk2bVF2bUsr?=
 =?utf-8?B?MndGWVR3aUltN1Z2bjM2WW9XK2NudzNpZEkwVEN3RjYrTjM1RlkvZHFYanNT?=
 =?utf-8?B?T3lPTXcwM0Rnd3p4azdxNFVzeVp5cFVvMWZJaVNielpOSFJpSWx2VnoyS0xD?=
 =?utf-8?B?ZnExNmNkSUxhZTdaTzEyNEZqN2pEZWxscmxVVHdtQktnVkhlT3hIVWFhaVFt?=
 =?utf-8?B?YjFibHlnRHZIMUV5dk1QS2swR1oyQnNhQnZOdm9CcW10aUU0SUxOeGtQRU9M?=
 =?utf-8?Q?BlStM/pOQEWNbzItAsOCveutUWWg5C2K?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OGhHbTJYNEROY1o4aFRmSVR4TkxUQTVBRUVkblgvbW83WWJmOC92UWVybnpQ?=
 =?utf-8?B?aEkrRU5QblRCZUNrVWE3RzBGeDN5czFieWFxWXVQM1hUdXNLVTc4YmdvZCth?=
 =?utf-8?B?S2ZnVjZTR3F2Mm5OZGc4Y1ZVWFdiSjMyVHc3djNqbFN3SU92c2FVN2IrNFBI?=
 =?utf-8?B?TEtQQmZrQjJhZDFTMVNXc0JrYkxTNnZWM2VOTXFzdEhrSVloSUlQZ3pjYzNt?=
 =?utf-8?B?aUFYUjRxaXZieFdqNUVaZUlnTWZZb0g2T3BJaHZ3N0Z4cnJXS0tuQ1RTTTVa?=
 =?utf-8?B?WmJPUHJ0bElmVWdvRjcxUGFVK1JkTUcyTHNlZEsyMTRya3J2QjJ5Zm9EcFNY?=
 =?utf-8?B?NFpPSVd3aFVOMzBaM2F5c3R4SDhFblYyMnhHTGdsby92U0RScUp0MEs0cjU2?=
 =?utf-8?B?NDZ4OXRxeTJjZG1qa20zT0pKSEx4Q1NONms4ZmhFdDdVL1JMbW00MnpLSnpC?=
 =?utf-8?B?QlBQSUxWeGhTeFFwZmlMMmJTdysxMUMzUEYwNVBGK2labytOWG9zaWFpSG10?=
 =?utf-8?B?ck4yQlNYVlErckRKam56am9WOXlHZmgrVmZFWStMZGduZmtialN3bmdIemx3?=
 =?utf-8?B?MkhMK1lIYm9CYmMxc0loR1Nud21KUmRYVnhxc0VpcXQ0RjBqNWdHaU5IaUI2?=
 =?utf-8?B?T3NtL2dWOUtJVmVSeDdCVjNVRnVyY3pCaXA4N0ExbkhWL2FxY1JlTEpYTDB4?=
 =?utf-8?B?dmRuZGZ0b0FUOEcxSm5LV2g4eklJN3lIQmVsdlFLVXRVUUhabCtKeDhmcDV6?=
 =?utf-8?B?QmpKSWg0b0dicXB3bVpBYms3bkFKaDF1YTFZejFUUnFtYjI0SVpONzRRcFJl?=
 =?utf-8?B?eU1UZWIxRlQrd3pTc0VDQUtMSVAwbWVWTFF6dXNQdUVKZzFpTXZPREhPbkla?=
 =?utf-8?B?RmhRcUdRUEFpK083R0lURHZ5Z0lzZ3BHT1JHNFJvV1hDTE9rNUJTWHltSFBT?=
 =?utf-8?B?OUNXaHppQVdqekJ1Tk9CcUlKU3RUVmg1dHQrMHNncHNJK0doaWNrRkRxUDVN?=
 =?utf-8?B?SlVIaXMyeXczUEhTSk5ZaDJ6anE4eTV0OTFTb0p1TEhoTHFWam9ZdnRpVCtp?=
 =?utf-8?B?aDR6OXI2dkRsb2Q2eE1Lb0FJb3BOMXkyZ3JmY3ZyRGRYRWVUVTBCTHlBbURE?=
 =?utf-8?B?WWhTaG9USFJNbC9UcXU2UHpvSVJHNjFTd1VpbnQwV1hKTGV1UXBYcmtrdzVm?=
 =?utf-8?B?Q0U4czlqUVZ1YlU3NzBVV0VObVk5S0w1WXBvZkFMcWhBaEpYM1dyVXQzdlQ3?=
 =?utf-8?B?RzNhNWhYR3dQWjhOZDVuODRhUDlqaExtbHpySlVGKzNQbkhsQWFjZTE1K0oz?=
 =?utf-8?B?QnpTYVRpeXp5bjRKSWFkRitVTXBsL3BqZ1M5aFk5VXhmcTVhSW5ROTlHQ21W?=
 =?utf-8?B?SHl5UE54Rm5wZzF0NWFsb2YrcmpBR2d5VHJEOWo4akk4Q2k3MVlkcFVkZXhn?=
 =?utf-8?B?OFlQWWo1R1V1dFU2Nk9najVnQkdlMVViTXl3NkVnQm9Lb1I2OUxHeThJNXpJ?=
 =?utf-8?B?emdGV1p3SFZHejg1TzJvR3gyd3BQLy8rYXBPN1MwbURUZDYzL2g1NC9zZXVX?=
 =?utf-8?B?NU1GYnZoaDhRc2gxTmF2dU00amVpaUwxY2xaZGRCWXRZTjl2anBGTDlRb01v?=
 =?utf-8?B?dW5rSTFGMWx5ZUtQZFpKdGRLNWFaTjZRZytIcUVlV0dzUHhVUWRKeU1YTjdw?=
 =?utf-8?B?QUc5dEhMVGpuc2FkMWVHa0trVUltVjBscWh6RGRENmsxOXJqemdJb2lXNEl5?=
 =?utf-8?B?c0VpcnBmb0lUNGlNUG0zV0Vvd2I4NmI5bkJRcEkybFNMUlRBM0IvUDhqaFFL?=
 =?utf-8?B?ZTRUWnMvRHlkVHVEZC9hY1M4WXBLazJuMnE1NDREMldYVFBtVXg4V0JKMXJw?=
 =?utf-8?B?WWpKTnJ1eEVKejk0WDB0R0FrVU1kcVFHV0lpeEJ0ZWVHTjljZERQVmcxeEw2?=
 =?utf-8?B?SFJPbjJScy9KV2RHR2g0WHRRRVhrSjhtbkpFdWNGMFExOXBRTHAvK1ZXT3hN?=
 =?utf-8?B?eGhnWXRFeU1Od0tZZHpjTnlKSzM3dVBqUXZpdm1yMHprSmVpOHNsaklMc3da?=
 =?utf-8?B?ZTNoMTM2OG81QU5pbnVYa29SU3cybEx0YXVBTTFRVHp1L0NWR205Y2FZcVg5?=
 =?utf-8?B?Qk5WL0txdTVVUCtKK2M0T0hJU3YrZEZjNGV6eEZHOGF0Z3NDQ0dWeG00SVZC?=
 =?utf-8?B?UUE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f197ca15-35e4-4afe-792e-08de39202b96
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 01:45:46.6839
 (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: G/n2q90maJFiWCwQ8qRx9S4Jw+95QkQl2nEq5s+pQwF9ZZK+BRueGwIEo14kXe3bdl+FhcFSESmySHTD5Id/liuVCW1GV8MXsGRNartzqaE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR03MB8136

On 11/12/2025 12:28 pm, Nicola Vetrini wrote:
> On 2025-12-11 11:38, Nicola Vetrini wrote:
>> On 2025-12-11 10:30, Jan Beulich wrote:
>>> On 11.12.2025 10:15, Nicola Vetrini wrote:
>>>> On 2025-12-11 09:36, Jan Beulich wrote:
>>>>> On 10.12.2025 19:30, Andrew Cooper wrote:
>>>>>> With the wider testing, some more violations have been spotted. 
>>>>>> This
>>>>>> addresses violations of Rule 20.7 which requires macro parameters to
>>>>>> be
>>>>>> bracketed.
>>>>>>
>>>>>> No functional change.
>>>>>>
>>>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>>>> ---
>>>>>> CC: Jan Beulich <JBeulich@suse.com>
>>>>>> CC: Roger Pau Monné <roger.pau@citrix.com>
>>>>>> CC: Stefano Stabellini <sstabellini@kernel.org>
>>>>>> CC: consulting@bugseng.com <consulting@bugseng.com>
>>>>>> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>>>> ---
>>>>>>  xen/arch/x86/mm/shadow/multi.c     | 2 +-
>>>>>>  xen/arch/x86/mm/shadow/private.h   | 6 +++---
>>>>>>  xen/drivers/passthrough/vtd/dmar.h | 2 +-
>>>>>>  xen/include/xen/kexec.h            | 4 ++--
>>>>>>  4 files changed, 7 insertions(+), 7 deletions(-)
>>>>>>
>>>>>> diff --git a/xen/arch/x86/mm/shadow/multi.c
>>>>>> b/xen/arch/x86/mm/shadow/multi.c
>>>>>> index 03be61e225c0..36ee6554b4c4 100644
>>>>>> --- a/xen/arch/x86/mm/shadow/multi.c
>>>>>> +++ b/xen/arch/x86/mm/shadow/multi.c
>>>>>> @@ -781,7 +781,7 @@ do {
>>>>>>                      \
>>>>>>          (_sl1e) = _sp + _i;
>>>>>>   \
>>>>>>          if ( shadow_l1e_get_flags(*(_sl1e)) & _PAGE_PRESENT )
>>>>>>   \
>>>>>>              {_code}
>>>>>>   \
>>>>>> -        if ( _done ) break;
>>>>>>   \
>>>>>> +        if ( (_done) ) break;
>>>>>>   \
>>>>>
>>>>> I don't understand this: There are parentheses already from if()
>>>>> itself.
>>>>
>>>> Yeah, syntactically there are, but those are parsed as part of the if,
>>>> rather than its condition; the AST node contained within does not have
>>>> parentheses around it.
>>>
>>> I fear I don't follow. Besides us not using parentheses elsewhere when
>>> if() is used like this macros, the point of requiring parentheses is
>>> (aiui)
>>> to make precedence explicit. There already is no ambiguity here due
>>> to the
>>> syntactically require parentheses in if(). Why would a rule and/or the
>>> tool require redundant ones?
>>>
>>
>> this is parsed as (more or less) "if_stmt(integer_literal(0))" rather
>> than "if_stmt(paren_expr(integer_literal(0)))" when the macro is
>> invoked with 0 > as parameter _done. Now, syntactically the
>> parentheses are in the source code, so the letter of the rule is
>> satisfied (as long as there is a single
>> condition in the if condition), but the presence of those parentheses
>> is lost when parsing. I see how this can be seen as a false positive,
>> and we will
>> definitely add some special handling so that cases like this are
>> properly recognized, but for simplicity here I would add some extra
>> parentheses, at
>> least until the false positive is not resolved
>
> Actually giving this a closer look the tool is correct:

Ah, and this adjustment wont fix the violation either.

> the fully expanded code is:
>
>  19562     }} if ( ({ (__done = done); }) ) break;
> increment_ptr_to_guest_entry(((void*)0)); } unmap_domain_page(_sp); }
> while
>                                 <~~>
>
> so the "done" argument ends up being expanded without parentheses,
> hence the report is correct and the extra parentheses are needed, but
> should be put into
>
> /* 32-bit l1, on PAE or 64-bit shadows: need to walk both pages of
> shadow */
>    791 #if GUEST_PAGING_LEVELS == 2 && SHADOW_PAGING_LEVELS > 2
>    792 #define FOREACH_PRESENT_L1E(_sl1mfn, _sl1e, _gl1p, _done, 
> _code)       \
>    793 do
> {                                                                    \
>    794     int __done =
> 0;                                                     \
>    795     _FOREACH_PRESENT_L1E(_sl1mfn, _sl1e,
> _gl1p,                         \
>           
> <~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>    796                          ({ (__done = _done); }),
> _code);               \
>
> rather than at the level of the if, I think
>

I hate these constructs with a passion, and from Matrix there's a
separate violation which has no viable fix with the construct staying
like this.

I experimented turning them into syntactically correct foreach_$FOO ( )
loops.  I gave up because it got unwieldy, but now it's the only way I
can see to fix the violation, so I guess I should try again.

I'll drop this one hunk from the patch and commit the rest of the fixes.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:06:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:06:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184892.1507172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuQI-0007Dy-Ge; Fri, 12 Dec 2025 04:06:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184892.1507172; Fri, 12 Dec 2025 04:06:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuQI-0007Dr-Dz; Fri, 12 Dec 2025 04:06:30 +0000
Received: by outflank-mailman (input) for mailman id 1184892;
 Fri, 12 Dec 2025 04:06:29 +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
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuQH-0007Dl-N1
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:06:29 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ee0cbd0d-d70f-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 05:06:27 +0100 (CET)
Received: from MN0PR04CA0028.namprd04.prod.outlook.com (2603:10b6:208:52d::27)
 by IA1PR12MB6017.namprd12.prod.outlook.com (2603:10b6:208:3d7::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.9; Fri, 12 Dec
 2025 04:06:21 +0000
Received: from BL02EPF00029927.namprd02.prod.outlook.com
 (2603:10b6:208:52d:cafe::45) by MN0PR04CA0028.outlook.office365.com
 (2603:10b6:208:52d::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.10 via Frontend Transport; Fri,
 12 Dec 2025 04:06:21 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF00029927.mail.protection.outlook.com (10.167.249.52) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:06:21 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:06:15 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ee0cbd0d-d70f-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DJ9golsnhrwVdhgGRiqsCiMP5QhzLOagVoErBH41484mASf7fLpgHu7HB4M40tQ10BP72vjL1McJEVhfGy6uC+x8Z8oETqgBUwMDA4KEpqOrKvOChBqWHHv4cZ1zfIGeOaTojjuqM+6ojOLPgYYw8FjEmaCRdT29qs0Ly6/+ZPD/ag0GTCQXNlOlN/bpp8Iu7eNWlr/jUO/sFYO/wDbzq29eJGFCbVvXmWLWk52L1T/TzBX9E87/UbDYWS8TMsikR6cHRUIaboahOUrADXSkjXhoIk46akuEcfPJtYfD77oEUf+5Ab9e1KC1Ag7kPBjwf+Qo3iGVS3hA1rBcrRY4zw==
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=b6B+fNWpx31hMHg3dP8sP4vDat2ye+/ctgcn3sOSvSs=;
 b=DLestk2Jkvz38DuUEH9UjsyFaHnfd70/Wcnjzf36408Ox59eeCxPU9rWq9//5T3mmHSNMN+xFU0+qApxFzihbAsqv9gQ1motKeTphVI70SdynbsjTGBrXQ/tn5tXulStKCFR9fmfECTb6bX4nFceh6os1q/hkL7OQO1xyobmNL+P4LJmHf2wBSTJMyP+MqUDOmbZgV4GKSeha2T1+CzfSm3MJqml9R4zbCeaQxjrfT+6Vdi7u/CpjxRVNpS4DyJWV0afxxK23pfO7P06sdNP3qVLps97UJbmD5Cw7PBbhfn3FOBiCg5k5lPs1RUBtQC5vfCdUjYkIKW1g2CF3+tQxw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=b6B+fNWpx31hMHg3dP8sP4vDat2ye+/ctgcn3sOSvSs=;
 b=Qi1Pqd5qXgzaeseBA0NPPKqIBIN6qoTL84jvpjQsicSGKJHTpWqCVuRCtOXRP9D+TM/O60NjUja9F49hNAAlKZhAuflsgERi9o10o5boQUI8LvGuHob6c0nBpaNOOggoKpaKfo7WeKfUJLsq6XQKRYAMSdeqQVjy7cy9MkGBpaQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>, <xen-devel@dornerworks.com>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>, "Jan
 Beulich" <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	"Juergen Gross" <jgross@suse.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, "Connor Davis" <connojdavis@gmail.com>, Oleksii
 Kurochko <oleksii.kurochko@gmail.com>, Nathan Studer
	<nathan.studer@dornerworks.com>, Stewart Hildebrand <stewart@stew.dk>, Dario
 Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>, Timothy
 Pearson <tpearson@raptorengineering.com>, "Meng Xu" <mengxu@cis.upenn.edu>,
	Jason Andryuk <jason.andryuk@amd.com>, Rahul Singh <rahul.singh@arm.com>
Subject: [PATCH v5 00/24] Disable domctl-op via CONFIG_MGMT_HYPERCALLS
Date: Fri, 12 Dec 2025 12:01:45 +0800
Message-ID: <20251212040209.1970553-1-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00029927:EE_|IA1PR12MB6017:EE_
X-MS-Office365-Filtering-Correlation-Id: 6bf46fcc-383c-4886-3c2e-08de3933cf1b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|7416014|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?RXtjU9ljONfId2jS8Nqu3vYqPdgPjzrfvTBDwIa8DfI59KtfbMGqefsS6pQF?=
 =?us-ascii?Q?dTOC6NUri47oJXg2sxa+JpmXvqNCwzk2HCGI647ZZbxPXIydtLBlcEVjr5RF?=
 =?us-ascii?Q?5MxYrXMmoOZ5ZfdhdWEqyp00MPAVAvnRbbz8n3xsqcRoY2NxgqHDW5E91Bg2?=
 =?us-ascii?Q?bb8WivK4KiwJuA6eTcynDTDcNN4n+zn/SVQsxBeRGj+L9ZQpOMKv+KB+FDDS?=
 =?us-ascii?Q?gPBQjdlT0QHZKU7TBQ7GD/SdE6KFTctO0FSrZDwA+DO0DP+6cy9GM1bp8EB9?=
 =?us-ascii?Q?8CiqmO2veYnqF1mdwIC8f4I/SMAXp36TrsHtVtnHg+FpKr1VHSoUmTc24zKE?=
 =?us-ascii?Q?nAw4DTXL7H90JrB8n0jyAd4HQPc+OYBdRh1fAFL9iSvPFTmIASBhC/+pCmVb?=
 =?us-ascii?Q?kgvPVwDrp39MsGyI6U7/bbNpPOZhg3kaNc8+D/Oj7P9s3w3aVppirjPy8HV2?=
 =?us-ascii?Q?GojIFUddhQgwK2307INpuRtvlV5Bq2ywMdUF9QgYXov0pkqtzRXrvoDqsGWa?=
 =?us-ascii?Q?zlupIwQHVUzwIfQeHusVPr7HZMG3+jfPyvOlrQ1bC3CN78jEY03Sntm3ePyv?=
 =?us-ascii?Q?NLfuc3yOEOo0unzE0yz5Du+CgZf33BnQ4R044rQDZEuj4DOQ/QEFbZC3qlGf?=
 =?us-ascii?Q?pL50g4A3IX04eRduTzXA9C42nZR6B4lQUULLZikN+/UMblAazsqrDbm7EmKU?=
 =?us-ascii?Q?6upjazGzFKPP0YalWZwo77kTIQGZEzTege/9pgPbOBULhVg4fMSp1TrHgcA6?=
 =?us-ascii?Q?qlnEDfC6YBUianHY1QIO8R/NzFyBgmriS1YuV63KtdninTGJ6VcyXa1yy67O?=
 =?us-ascii?Q?ZL2x7dtM2jXEgvl3MoIKZFQrNZrIsYMSOBTcMlXOSO1QQsCbQ/mnxKG1mkjq?=
 =?us-ascii?Q?8T/rL1QJl/Lqm9eRs5KpANS/HCtbZtp1xlxi4Jl0vbck2uKZpGkC8HDGDU7K?=
 =?us-ascii?Q?P9nA9Oi2dG720RWK9sqVo3O+YVwX0NKfuXNMyvPQrVu5wz5KVr1wVi6cvrzG?=
 =?us-ascii?Q?x4odiIqMcgXGMMEvGww3GXRyixQT/EeYVbfRRIhKA29JrBoOsxjEAhZLDJyh?=
 =?us-ascii?Q?bRkFqp3YiFpFWGSuOJvIDvBUjBE67etOeeOVWlx/hLdBwG9BAud0u1L1Q2Bb?=
 =?us-ascii?Q?9OY+t54J5kY4A2/KWqykCM6Y22YkxM5UTbnIlGCZQtODo2nuluAkOuIBQodG?=
 =?us-ascii?Q?98YJE5OETiLBT7V1kmD4+gcKupm2dBSUkz0JJDgK+eLRuyhpk4eBtVDVvQ4T?=
 =?us-ascii?Q?W/PAA3T31vjSoR4PDfAvyreWRdNgbjvHz5bfEtfaHNbyD8OPiLDWd624iOcM?=
 =?us-ascii?Q?Dj2cukPt+kIQCMDYm9Nutp5d24dX9y9tW0pew622KiEndd1n3MxxtiOKzGJX?=
 =?us-ascii?Q?/Gz6Q76qEVbdAU4TtUCYsYsszW+Oh6StEwnNKBxdDjpNBJfIQikNbIRVyTA6?=
 =?us-ascii?Q?Ws4tBNMeVuRRe+Zql8nM+BRuOkhBhmInmrs2+il3e+fyEMXv6GtR/DtEjbhj?=
 =?us-ascii?Q?Auc52x+Q4oC0lfVgUgXAPJ2dF0Xe68g9y0/Rx4ZelkDBGJ2apyafM7xEA6j6?=
 =?us-ascii?Q?ydL6j8N6Yc7kEsspREPUzrOA3I8y2JcuubI/UmPS?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:06:21.3489
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6bf46fcc-383c-4886-3c2e-08de3933cf1b
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00029927.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6017

It can be beneficial for some dom0less systems to further reduce Xen footprint
via disabling some hypercalls handling code, which may not to be used &
required in such systems.
We are introducing a new single Kconfig CONFIG_MGMT_HYPERCALLS to manage
such hypercalls.

We are trying to disable hypercalls in the following aspects:
- sysctl
- domctl
- hvm
- physdev
- platform
This patch serie is only focusing on domctl-op. Different aspects will be
covered in different patch serie.

Features, like VM event, or paging log-dirty support, which fully rely on
domctl-op, will be wrapped with CONFIG_MGMT_HYPERCALLS, to reduce Xen
footprint as much as possible.

It is derived from Stefano Stabellini's commit "xen: introduce kconfig options
to disable hypercalls"(
https://lore.kernel.org/xen-devel/20241219092917.3006174-1-Sergiy_Kibrik@epam.com)
---
This patch serie is based on "[PATCH v3 0/7] consolidate vm event subsystem"
---
The following commits are prerequisite, and could be committed independently:
- xen/xsm: remove redundant flask_iomem_mapping()
- xen/x86: library-fy cpuid-releated functions
- xen/arm: move dt_find_node_by_gpath() to passthrough/device_tree.c
- xen/sysctl: replace CONFIG_SYSCTL with CONFIG_MGMT_HYPERCALLS
---
Penny Zheng (24):
  xen/xsm: remove redundant flask_iomem_mapping()
  xen/x86: library-fy cpuid-releated functions
  xen/arm: move dt_find_node_by_gpath() to passthrough/device_tree.c
  xen/sysctl: replace CONFIG_SYSCTL with CONFIG_MGMT_HYPERCALLS
  xen/domctl: make MGMT_HYPERCALLS transiently def_bool
  xen/vm_event: make VM_EVENT depend on CONFIG_MGMT_HYPERCALLS
  xen/domctl: consolidate domain.c towards MGMT_HYPERCALLS
  xen/mem_sharing: make memory sharing depend on MGMT_HYPERCALLS
  xen/domctl: wrap domain_kill() with CONFIG_MGMT_HYPERCALLS
  xen/domctl: wrap vcpu_affinity_domctl() with CONFIG_MGMT_HYPERCALLS
  xen/domctl: wrap sched_adjust() with CONFIG_MGMT_HYPERCALLS
  xen/xsm: wrap xsm_irq{,iomem}_permission with CONFIG_MGMT_HYPERCALLS
  xen/domctl: wrap arch-specific domain_set_time_offset() with
    CONFIG_MGMT_HYPERCALLS
  xen/domctl: wrap xsm_set_target() with CONFIG_MGMT_HYPERCALLS
  xen/domctl: wrap pci-subset iommu-related domctl op with
    CONFIG_MGMT_HYPERCALLS
  xen/domctl: wrap device-tree-subset iommu-related domctl op with
    CONFIG_MGMT_HYPERCALLS
  xen/domctl: wrap iommu-related domctl op with CONFIG_MGMT_HYPERCALLS
  xen/domctl: wrap arch_{get,set}_paging_mempool_size() with
    CONFIG_MGMT_HYPERCALLS
  xen/domctl: make CONFIG_X86_PSR depend on CONFIG_MGMT_HYPERCALLS
  xen/x86: wrap x86-specific domctl-op with CONFIG_MGMT_HYPERCALLS
  xen/arm: wrap arm-specific domctl-op with CONFIG_MGMT_HYPERCALLS
  x86/hvm: domctl_lock synchronization only when MGMT_HYPERCALLS=y
  xen/domctl: wrap common/domctl.c with CONFIG_MGMT_HYPERCALLS
  xen: decouple PV_SHIM_EXCLUSIVE and MGMT_HYPERCALLS

 tools/fuzz/cpu-policy/Makefile               |   4 +-
 tools/fuzz/x86_instruction_emulator/Makefile |  11 +-
 tools/libs/guest/Makefile.common             |   4 +-
 tools/tests/cpu-policy/Makefile              |   3 +-
 tools/tests/x86_emulator/Makefile            |   3 +-
 xen/Kconfig.debug                            |   3 +-
 xen/arch/arm/Kconfig                         |   2 +-
 xen/arch/arm/Makefile                        |   4 +-
 xen/arch/arm/arm32/Makefile                  |   2 +-
 xen/arch/arm/arm64/Makefile                  |   2 +-
 xen/arch/arm/domain.c                        |   3 +
 xen/arch/arm/include/asm/tee/tee.h           |   2 +
 xen/arch/arm/mmu/p2m.c                       |   8 +
 xen/arch/arm/mpu/p2m.c                       |   2 +
 xen/arch/arm/tee/ffa.c                       |   4 +
 xen/arch/arm/tee/optee.c                     |   4 +
 xen/arch/arm/tee/tee.c                       |   2 +
 xen/arch/arm/time.c                          |   2 +
 xen/arch/ppc/stubs.c                         |   2 +
 xen/arch/riscv/stubs.c                       |   8 +-
 xen/arch/x86/Kconfig                         |   1 +
 xen/arch/x86/Makefile                        |   4 +-
 xen/arch/x86/configs/pvshim_defconfig        |   2 +-
 xen/arch/x86/domain.c                        |   2 +
 xen/arch/x86/domctl.c                        |   2 +-
 xen/arch/x86/emul-i8254.c                    |   2 +
 xen/arch/x86/hvm/Kconfig                     |   2 +
 xen/arch/x86/hvm/hvm.c                       |   7 +-
 xen/arch/x86/hvm/pmtimer.c                   |   2 +
 xen/arch/x86/include/asm/p2m.h               |   2 +-
 xen/arch/x86/include/asm/paging.h            |   3 +-
 xen/arch/x86/mm/p2m-pod.c                    |   2 +
 xen/arch/x86/mm/p2m.c                        |   2 +
 xen/arch/x86/mm/paging.c                     |   4 +
 xen/arch/x86/psr.c                           |  18 --
 xen/arch/x86/time.c                          |   2 +
 xen/common/Kconfig                           |  28 +-
 xen/common/Makefile                          |   6 +-
 xen/common/device-tree/device-tree.c         |  16 --
 xen/common/domain.c                          | 116 ++++----
 xen/common/page_alloc.c                      |   8 +-
 xen/common/perfc.c                           |   4 +-
 xen/common/sched/arinc653.c                  |  11 +-
 xen/common/sched/core.c                      |   8 +-
 xen/common/sched/cpupool.c                   |  16 +-
 xen/common/sched/credit.c                    |  10 +-
 xen/common/sched/credit2.c                   |  10 +-
 xen/common/sched/private.h                   |  10 +-
 xen/common/sched/rt.c                        |   4 +
 xen/common/spinlock.c                        |   4 +-
 xen/drivers/char/console.c                   |   4 +-
 xen/drivers/passthrough/amd/pci_amd_iommu.c  |  20 +-
 xen/drivers/passthrough/arm/ipmmu-vmsa.c     |  26 +-
 xen/drivers/passthrough/arm/smmu-v3.c        |   6 +
 xen/drivers/passthrough/arm/smmu.c           |  55 ++--
 xen/drivers/passthrough/device_tree.c        | 136 +++++----
 xen/drivers/passthrough/iommu.c              |   2 +
 xen/drivers/passthrough/pci.c                |  52 ++--
 xen/drivers/passthrough/vtd/iommu.c          |   6 +-
 xen/include/hypercall-defs.c                 |  14 +-
 xen/include/xen/device_tree.h                |  13 -
 xen/include/xen/domain.h                     |   4 -
 xen/include/xen/iommu.h                      |   2 +
 xen/include/xsm/dummy.h                      |  22 +-
 xen/include/xsm/xsm.h                        |  52 ++--
 xen/lib/Makefile                             |   5 +
 xen/lib/x86/Makefile                         |   4 +-
 xen/lib/x86/cpuid-cp2buf.c                   | 123 ++++++++
 xen/lib/x86/cpuid-cpfrbuf.c                  | 129 +++++++++
 xen/lib/x86/cpuid.c                          | 286 -------------------
 xen/lib/x86/cpupolicy-clr.c                  |  73 +++++
 xen/xsm/dummy.c                              |  20 +-
 xen/xsm/flask/hooks.c                        |  55 ++--
 73 files changed, 827 insertions(+), 665 deletions(-)
 create mode 100644 xen/lib/x86/cpuid-cp2buf.c
 create mode 100644 xen/lib/x86/cpuid-cpfrbuf.c
 create mode 100644 xen/lib/x86/cpupolicy-clr.c

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:06:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:06:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184893.1507182 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuQO-0007Sl-Tm; Fri, 12 Dec 2025 04:06:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184893.1507182; Fri, 12 Dec 2025 04:06:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuQO-0007Se-R2; Fri, 12 Dec 2025 04:06:36 +0000
Received: by outflank-mailman (input) for mailman id 1184893;
 Fri, 12 Dec 2025 04:06:35 +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
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuQN-0007Dl-F2
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:06:35 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ee7d1c40-d70f-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 05:06:27 +0100 (CET)
Received: from BL0PR02CA0036.namprd02.prod.outlook.com (2603:10b6:207:3c::49)
 by DM6PR12MB4369.namprd12.prod.outlook.com (2603:10b6:5:2a1::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.10; Fri, 12 Dec
 2025 04:06:23 +0000
Received: from BL02EPF00029929.namprd02.prod.outlook.com
 (2603:10b6:207:3c:cafe::62) by BL0PR02CA0036.outlook.office365.com
 (2603:10b6:207:3c::49) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.8 via Frontend Transport; Fri,
 12 Dec 2025 04:06:23 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF00029929.mail.protection.outlook.com (10.167.249.54) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:06:23 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:06:21 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ee7d1c40-d70f-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zEmg+qlR4vwHAlFTQZWsU29BYG8/cNr0ojahX31J3I3wVF+WlbPoWdn7TAkrnU1y5qEEXOyNMBD3wCO55G/KvfsJtxilFfkpJwZfZCFp8hNyCnj/8UAt99iROq7xNmi+p7cbZw43HlteW6OMHqxqeKM43+3uLeLethJ+rw8Zw6fmOz3cbsmT7v+q21Jn4ggvfcSWeqd+jfQ0arRdPsIgGsZ79M47hkjb0SjFFk6HMcGF3yOLoQPYhL7JFtyyfbRVoJN121eqGDqRjChV6Sqd7nE0eZzekdQqF1iQFTHKcgMq0onKYwO9a7EaonvBY6Xruf1kIMuSuRn/HrwZUc3D0A==
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=azldVw3LRxDX4G3fQuaEQzTV1XLt1yT4AZM75H1BB28=;
 b=ARNvnk9d4F9uds1dAreSI3YRxFT1IAiG8JU9eGOzazbF+zof3IAdstYFPZIVDdZH3wKA1aoTXG9DJTKnwxiZPEpiaocQKUZfuvs/wERYnLrkhAh9VFF81YPOEb4e2n5GXmXymYHcxEBtIE1AXytGGqz35mZllmKIhKuFT5wYPa1/ym+O5S4utNCCWJsOP/PbtSUSVG7bZMelm31T5csFhZEWPp9h5amPFyBB5JAqZoS/q2OZKdRrH3oQiIO8blsQpZgXtZi7u2PVBkbON1+pJ1qeqmQheMzybojI2PUt5nuwJewYXtDo5dEAFND9D2O+TT9Z2icgUtVChGSf5rWZDA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=azldVw3LRxDX4G3fQuaEQzTV1XLt1yT4AZM75H1BB28=;
 b=0lm3eOVd0OB0F9zGkoep50AKqNBHnnlBHX8lCWwbBvWEmoYLtmrI/1dT7UOEQvNMqeGkr5haDwcIeN5wOVtlOfh5RxyvAkrcnB0hBzhcimuQqUKB6EWJb1tqS1/DGXYC3WV4JmzxYZrhvhA0CdWGb3i3cw1Gw6x8LVJ1KhLCGxc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>, "Jan
 Beulich" <jbeulich@suse.com>
Subject: [PATCH v5 01/24] xen/xsm: remove redundant flask_iomem_mapping()
Date: Fri, 12 Dec 2025 12:01:46 +0800
Message-ID: <20251212040209.1970553-2-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00029929:EE_|DM6PR12MB4369:EE_
X-MS-Office365-Filtering-Correlation-Id: 11989606-9acf-4352-c2f8-08de3933d03b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?XyffYdFAjWaZeAtdmehN/8ApiLKC8aA1cYz22RAf+YW2QegRGtQHWy/xkvyJ?=
 =?us-ascii?Q?xiD8UvOFfe2yDBlD6RVX71vFaVJTHziF15Xie5xjW+3e5MfGwSLibi5HdaIN?=
 =?us-ascii?Q?ueO4kG4sENeBS86hjLExdNpF3hiKCpsuJIcDCfiBCHndiGqpyQF5NjwZrctW?=
 =?us-ascii?Q?qXBApIeEvRAfxODfLwFrPDZSfxz0Gfx8l2q/aBBKGeo9cOVji8r8U52qLbWb?=
 =?us-ascii?Q?iQEZ9JhExuHhWNCR1q+cunKYl15J6mBORukwajawRij3xg5D4p8XlaXXG0mM?=
 =?us-ascii?Q?8PAFOfBJbjFwkFl6nVerpAXmefU9fvduvVcaKCET6fQDOoPBvfOg1eFBU9kD?=
 =?us-ascii?Q?OAF/4u055LJiVorJgZZd0J26TxMO4/4mzep0qgCf72Pb7x/vRNKSD+tS6uCh?=
 =?us-ascii?Q?bi9M0+XVJ8Kib4xiJ8abQ0JMCs6dJnht7DoSRJH+h3VWDHbgVEE3b24+HUr+?=
 =?us-ascii?Q?A6yWZxVmd7BgAE6uKRzjTo+p6bnQje/OpBg8iI1HnnlJfA1oQA6UL5Kih9Po?=
 =?us-ascii?Q?4V+Xijmt9xTOLuYbkbHIaVqQvL/31LJDmLT1GJ5AXLSkULi9VNio9acoNOLr?=
 =?us-ascii?Q?K6CeBzwARkxSSc848+hBHLeEQxXpTST84zj+jbIAb2GI16PEwRGnZbXEqCIh?=
 =?us-ascii?Q?eh0PvWvLhNfIOwBPpj5Hk4DUT403YF14oA3iBqDtrn72FiSea8mmanDiCdlJ?=
 =?us-ascii?Q?p/TZHHRIk2RpOWtSTZvhNJ+wcQ1K7ZOXXdixfq1ZSQhaYl39tWzpi/TNiMAR?=
 =?us-ascii?Q?pVYaK7ydiU3Rxdf8ArIBMon//a5HeLili98Lnl9OFXvRF18XvrfLHK4om0Lf?=
 =?us-ascii?Q?jpYBAu7F0ocF9mLPLifV4W1udPOQBCW7A+/kJN6To/lh3V4uDI5D7fXO1RLv?=
 =?us-ascii?Q?kw8sIeXIaY+07LivDEFdzzgAeWerGzxPwXH4mitxl+B28LPWLEnwABp956z/?=
 =?us-ascii?Q?LSgz2a7ujqaMHQeZyUHd12xeuDJPYFoBIjLZFTT1N41PZoyXsZSNGaMe/L23?=
 =?us-ascii?Q?Ot871UgtDuOiwCTP1PK7xSNXelB4O/+eQe5/UNLxCrkCzk/6rcR+CnYruZX0?=
 =?us-ascii?Q?CCH+MMLeAPEBqH/2V/GsX+Iujv7N8K4h9BossNjF1UhfQg6cOXf3KMg3aCSD?=
 =?us-ascii?Q?Hp2v75LXulNdmz0rHDeD4Rop31yQZN8MLyJ+w4TAsQUSMs0quq1X2nCYu4JQ?=
 =?us-ascii?Q?Q7iB1CUEGQ8oKmsreySq2kYca6cJPJu34Vip7biIj22U2MHlsBzLhbGuhLuY?=
 =?us-ascii?Q?dWZHt0muXfo3yRvNtA5iSUAoEQeB94v92jG2CqM4ws1Ky3YY3xUPv68ANyx7?=
 =?us-ascii?Q?adiwe9q7/9W9btV6/u9xDyBAdEa00vgSHYpaTUdzGtY8RUmJBveZuC26lyfq?=
 =?us-ascii?Q?gC+v7myEmEpUwysSGvGxZu+zAs6LhkD3FlFgq6sy/IvkrruKHdzA27ubOqa9?=
 =?us-ascii?Q?Ad2rS3qLLYFDydbE/E+W2tGatu1BMlRgbmvPhmOuIGXeY2aC0IIsWh46TzlK?=
 =?us-ascii?Q?RZRf4J8XZRJwZrzqHoHSOmsrhJv+uFMtGaHy3VWP5NZERXvo70ARYDej0hwK?=
 =?us-ascii?Q?wcox8htgj8y6ZrT7fZ0=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:06:23.2523
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 11989606-9acf-4352-c2f8-08de3933d03b
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00029929.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4369

xsm_iomem_mapping() in flask policy seems redundant, as it only provides
an extra call layer by calling flask_iomem_permission(). It also has benefit
of making a cf_check disappearing too.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v2 -> v3:
- new commit
---
v4 -> v5:
- only folding redundant xsm_iomem_mapping() implementation
---
 xen/xsm/flask/hooks.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 9f3915617c..a43cd361a2 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1167,11 +1167,6 @@ static int cf_check flask_iomem_permission(
     return security_iterate_iomem_sids(start, end, _iomem_has_perm, &data);
 }
 
-static int cf_check flask_iomem_mapping(struct domain *d, uint64_t start, uint64_t end, uint8_t access)
-{
-    return flask_iomem_permission(d, start, end, access);
-}
-
 static int cf_check flask_pci_config_permission(
     struct domain *d, uint32_t machine_bdf, uint16_t start, uint16_t end,
     uint8_t access)
@@ -1945,7 +1940,7 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .unbind_pt_irq = flask_unbind_pt_irq,
     .irq_permission = flask_irq_permission,
     .iomem_permission = flask_iomem_permission,
-    .iomem_mapping = flask_iomem_mapping,
+    .iomem_mapping = flask_iomem_permission,
     .pci_config_permission = flask_pci_config_permission,
 
     .resource_plug_core = flask_resource_plug_core,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:06:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:06:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184895.1507194 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuQQ-0007j1-CV; Fri, 12 Dec 2025 04:06:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184895.1507194; Fri, 12 Dec 2025 04:06:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuQQ-0007i3-8A; Fri, 12 Dec 2025 04:06:38 +0000
Received: by outflank-mailman (input) for mailman id 1184895;
 Fri, 12 Dec 2025 04:06:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuQO-0007SS-Q2
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:06:37 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f18e1697-d70f-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 05:06:33 +0100 (CET)
Received: from MN2PR18CA0028.namprd18.prod.outlook.com (2603:10b6:208:23c::33)
 by LV2PR12MB5966.namprd12.prod.outlook.com (2603:10b6:408:171::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.10; Fri, 12 Dec
 2025 04:06:27 +0000
Received: from BL02EPF0002992B.namprd02.prod.outlook.com
 (2603:10b6:208:23c:cafe::37) by MN2PR18CA0028.outlook.office365.com
 (2603:10b6:208:23c::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.16 via Frontend Transport; Fri,
 12 Dec 2025 04:05:45 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0002992B.mail.protection.outlook.com (10.167.249.56) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:06:26 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:06:23 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f18e1697-d70f-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Y57Zy71ynCrEmBsD9ITzj6hCSJKrx1SYavN8zsaVdOXzULjUSIm4E7kd0ykIUDmYvkyPTsawp+FjoAkpOtk6+nMP4GaybLJK2ajWfGz62k15/bqjuXZ8dgSDm9E0JOtAnzzQ4Jzrcz5mG8v/b0GGyr0ZUr9QJPJHyFO58cfkDezwJuosB6/pKPNW3iAI1GwPgXVnEugRS9QTE13RW5cOL+X58sNsrxtinjbZ9rPa711TAWgjmRh8B1WHFm2RK3/n+E6ensJZk71kVS58Iab3Vb0taM7dRvlGJp4aZ8DQ0EqXsz3S3YEuTCzFzThFufVdY3rRxRJsDjJNE4hZsK6Bkw==
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=H8kEpXRvqr8MrFDJ2wvTbPkfdGzZSeSHrE84ezAGE34=;
 b=cRlOV7T6deCVtD57oWgGiiohhmc2lPcevD91OUNcbi48zKLcIfORq1sZFwplJQkgiEqU44vQvjSbSGSzssoRqojtur8pVI9mt8OmmmM3wHD7zfdoHfZUr0ZqMzCQkpY3ES5jJ095Ixae7O1KOoEF5hzw4U5Gtsj9TFQYwolBxn3ZuyXC4dfHsasQqgEncLXx7V9PWlZEQ/y22TLZ+lCZ6sAdqNkZFoopfiR/94JeKIpXgyfLd55zYH0sYU/RDgG/gDVnm75hDTu17aSodblaZ99QH+cv8Oy70N2PULGYhe/60GbD6p+fzCDTAuzbn42nj9NvO13oZMWBZCFkGG1uPQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=H8kEpXRvqr8MrFDJ2wvTbPkfdGzZSeSHrE84ezAGE34=;
 b=BkHokY3UPicgMmUoTB9iuxIKuPEpfKSNrqhClRMmtrQEkNZZJ5veUl81ty+CEjr93/o+8IeTpSqFGUXmv7yNnSLYNbpcULN8W/x1kV1GLo5m+Cg/PaCK27wlX7LkV61ou04FqVu6iF7JWIkw+0JhbmFzSLHvjM3OW9B8UchsoKc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Juergen Gross <jgross@suse.com>
Subject: [PATCH v5 02/24] xen/x86: library-fy cpuid-releated functions
Date: Fri, 12 Dec 2025 12:01:47 +0800
Message-ID: <20251212040209.1970553-3-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992B:EE_|LV2PR12MB5966:EE_
X-MS-Office365-Filtering-Correlation-Id: 3e1c4b18-f28b-459c-f07d-08de3933d237
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?VsTmTsMT1UqhEAvbB7kuSqxziCTbEhzS2Ur8SWFRVUEgxNukNu34feWmq7I/?=
 =?us-ascii?Q?DHeftFavsH7bFDVsLsEva2keOzvUnMp9bM7tI5JJJG6iJZZECQgVBOqkbOyK?=
 =?us-ascii?Q?62TKzaw5Y3Y1gWe+KHzeYTqSfvSN9rUeUyDDLPbGtL6nnJgIRSTt5CMoNniK?=
 =?us-ascii?Q?FY6jzLuVjwljDwvhgq2k5GUViPfIeGAE79m77IIk/w1NXPf94Rs7C0p3Jb4h?=
 =?us-ascii?Q?L5WjPgh3tg3JNnv3Df2QPNkSLtdRtokIXj/mrf4YgT+sBnTWlDxJTNtw0sdG?=
 =?us-ascii?Q?hlT5wfNsuxSWB0lN7e4x5mpMacRdh9v9M1j9xd0fHuFzTWnRW6V0kJACKE51?=
 =?us-ascii?Q?G7Gv/c4OHPjQmxwab6mmFrTAL9LfadF8XAB3Y9Djd0zIj4CpCGP6/A8IJMs2?=
 =?us-ascii?Q?Qg2RLyqVDtCXGWXQjpJGTEgYGxGSuz8SisRzLD+e+8vpm2xSbttETieg1Ljd?=
 =?us-ascii?Q?+ve9I5SnzlG4eLWE2iuxYe8x5qCCtgbBu5tG/Ko9Wn8IRnzF1F2GJSi1GWVx?=
 =?us-ascii?Q?10jSimavxd7egCp99SVx7Qy5FvoerYL/0s9z1JAJnJv8ulPZvKmx1RHRexwn?=
 =?us-ascii?Q?Ixdnp0tpIDN7xkfUkb2+45+c7g5omBQ5eV25vARZAy6l/aiM61HghmF/LjTs?=
 =?us-ascii?Q?K8YBne55wtsWJkGZEbUBtgcKFqN6A60+DpO3//Od24ULCWHT3vysjukSNeYQ?=
 =?us-ascii?Q?rthnEKH1TblNypRSr6ma5cGmj7Rkf50kiTRLZjYo4ipf0/ReDV0jp6knFlql?=
 =?us-ascii?Q?0BeDUFyv0drdjrpSD6Lt1V9wZXVZpLtXHIkob3oB3hfPWEwP5pMKEX46d1y4?=
 =?us-ascii?Q?TzLyWRpAtemrZVf2Al9ZK4KcvWHe0tL3lknhb6noGpIrkm2pO2hIqD6hcvcj?=
 =?us-ascii?Q?8fd4Yj6qiMQRW23yFw9sMrILWZLjdwdGWQzwRQIwkRnksrVbfw2dVJ2j42zM?=
 =?us-ascii?Q?iMIlPUpBX61hgJrsqvoaqjEt7lmUMXa209lG2rLYBAK7sVgbm2Rg5YdmCG7u?=
 =?us-ascii?Q?b9A1PNhv2kH2/VA9GNgs3vlnuCvQAh91OASjBZqCiS/dutkruN55Xwer85NV?=
 =?us-ascii?Q?Q3pGIz/oEj5fS7RtzQjLES6383NszXZlu8frfhitCs+QEDvh8w3kQUEcHxSV?=
 =?us-ascii?Q?eaziYlaXRUGgZZzkboZlKXfd/aBmOz7fP5ZkrY1GtoWokRZ6ouydkI0FiTOB?=
 =?us-ascii?Q?zrojSoMa0meLSTTH/grcB0VxEn7Qm2T2Z+g8SlHMVXLaCqWc8eEadlS2Jau4?=
 =?us-ascii?Q?2U0NRY/scSL1JdAM2qFlQwC8+tBSHL14pLYd8U5lFGhPs5Fx+EIV27X1fpOz?=
 =?us-ascii?Q?p8r54riuPanPEDnQ9V8+ub/gYt68H6AvQa7/wNFCUXNNnkXtnIFVSPDDDpEl?=
 =?us-ascii?Q?7YMoqlJfA8ZOwRUTzO78cCpEkQjiA9mzWfIwoB8N/bgmYsCmV8NxePR5wbkq?=
 =?us-ascii?Q?DvtbynuTfZTJQXXJ53QlpCb46JKalr83AUcmiRknPABGDoA7PjCpj812KyXw?=
 =?us-ascii?Q?5saKsEWx7+9xFQ3Hq35wGR7EvJ+c0f5Cytk+j9ysJPj+rv0X5yFFVroG5R1i?=
 =?us-ascii?Q?NJm3GGO0CZnyJZJmrPE=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:06:26.5742
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e1c4b18-f28b-459c-f07d-08de3933d237
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992B.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5966

There are some cpuid library functions only referenced in
XEN_DOMCTL-case, and shall be wrapped with CONFIG_MGMT_HYPERCALLS later,
otherwise they will become unreachable when MGMT_HYPERCALLS=n, and hence
violate Misra 2.1
For file cpupolicy-clr.c to contain cpupolicy clearing library function:
- x86_cpu_policy_clear_out_of_range_leaves
  - zero_leaves
For file cpuid-cp2buf.c to contain cpuid copy-to-buffer library function:
- x86_cpuid_copy_to_buffer
  - copy_leaf_to_buffer
For file cpuid-cpfrbuf.c to contain cpuid copy-from-buffer library function:
- x86_cpuid_copy_from_buffer
Sunmmerize all needed cpuid-library object file under a new variable
CPUID_OBJS in Makefile.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v4 -> v5:
- library-fy cpuid-releated functions
---
 tools/fuzz/cpu-policy/Makefile               |   4 +-
 tools/fuzz/x86_instruction_emulator/Makefile |  11 +-
 tools/libs/guest/Makefile.common             |   4 +-
 tools/tests/cpu-policy/Makefile              |   3 +-
 tools/tests/x86_emulator/Makefile            |   3 +-
 xen/lib/Makefile                             |   5 +
 xen/lib/x86/cpuid-cp2buf.c                   | 123 ++++++++
 xen/lib/x86/cpuid-cpfrbuf.c                  | 129 +++++++++
 xen/lib/x86/cpuid.c                          | 286 -------------------
 xen/lib/x86/cpupolicy-clr.c                  |  73 +++++
 10 files changed, 346 insertions(+), 295 deletions(-)
 create mode 100644 xen/lib/x86/cpuid-cp2buf.c
 create mode 100644 xen/lib/x86/cpuid-cpfrbuf.c
 create mode 100644 xen/lib/x86/cpupolicy-clr.c

diff --git a/tools/fuzz/cpu-policy/Makefile b/tools/fuzz/cpu-policy/Makefile
index 6e7743e0aa..543d265e62 100644
--- a/tools/fuzz/cpu-policy/Makefile
+++ b/tools/fuzz/cpu-policy/Makefile
@@ -22,7 +22,9 @@ CFLAGS += $(APPEND_CFLAGS) -Og
 
 vpath %.c ../../../xen/lib/x86
 
-afl-policy-fuzzer: afl-policy-fuzzer.o msr.o cpuid.o
+CPUID_OBJS := cpuid.o cpuid-cp2buf.o cpuid-cpfrbuf.o cpupolicy-clr.o
+afl-policy-fuzzer: afl-policy-fuzzer.o msr.o $(CPUID_OBJS)
+
 	$(CC) $(CFLAGS) $^ -o $@
 
 -include $(DEPS_INCLUDE)
diff --git a/tools/fuzz/x86_instruction_emulator/Makefile b/tools/fuzz/x86_instruction_emulator/Makefile
index 459743f4d9..7a0ca79db8 100644
--- a/tools/fuzz/x86_instruction_emulator/Makefile
+++ b/tools/fuzz/x86_instruction_emulator/Makefile
@@ -25,7 +25,8 @@ x86_emulate/%.h: x86_emulate ;
 	ln -nsf $< $@
 
 CFLAGS += $(CFLAGS_xeninclude) -D__XEN_TOOLS__ -iquote .
-cpuid.o: CFLAGS += -iquote $(XEN_ROOT)/xen/lib/x86
+CPUID_OBJS := cpuid.o cpuid-cp2buf.o cpuid-cpfrbuf.o cpupolicy-clr.o
+$(CPUID_OBJS): CFLAGS += -iquote $(XEN_ROOT)/xen/lib/x86
 
 GCOV_FLAGS := --coverage
 %-cov.o: %.c
@@ -49,16 +50,16 @@ $(filter x86_emulate/%.o,$(OBJS)): x86_emulate/%.o: x86_emulate/%.c $(private.h)
 $(patsubst %.o,%-cov.o,$(filter x86_emulate/%.o,$(OBJS))): x86_emulate/%-cov.o: x86_emulate/%.c $(private.h)
 	$(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_$*.o) $(GCOV_FLAGS) -c -o $@ $< $(APPEND_CFLAGS)
 
-x86-insn-fuzzer.a: $(OBJS) cpuid.o
+x86-insn-fuzzer.a: $(OBJS) $(CPUID_OBJS)
 	$(AR) rc $@ $^
 
-afl-harness: afl-harness.o $(OBJS) cpuid.o wrappers.o
+afl-harness: afl-harness.o $(OBJS) $(CPUID_OBJS) wrappers.o
 	$(CC) $(CFLAGS) $(addprefix -Wl$(comma)--wrap=,$(WRAPPED)) $^ -o $@
 
-afl-harness-cov: afl-harness-cov.o $(patsubst %.o,%-cov.o,$(OBJS)) cpuid.o wrappers.o
+afl-harness-cov: afl-harness-cov.o $(patsubst %.o,%-cov.o,$(OBJS)) $(CPUID_OBJS) wrappers.o
 	$(CC) $(CFLAGS) $(GCOV_FLAGS) $(addprefix -Wl$(comma)--wrap=,$(WRAPPED)) $^ -o $@
 
-libfuzzer-harness: $(OBJS) cpuid.o wrappers.o
+libfuzzer-harness: $(OBJS) $(CPUID_OBJS) wrappers.o
 	$(CC) $(CFLAGS) $(LIB_FUZZING_ENGINE) -fsanitize=fuzzer $(addprefix -Wl$(comma)--wrap=,$(WRAPPED)) $^ -o $@
 
 # Common targets
diff --git a/tools/libs/guest/Makefile.common b/tools/libs/guest/Makefile.common
index a026a2f662..7dee6c0e0b 100644
--- a/tools/libs/guest/Makefile.common
+++ b/tools/libs/guest/Makefile.common
@@ -35,7 +35,9 @@ OBJS-y += $(LIBELF_OBJS)
 ifeq ($(CONFIG_X86),y) # Add libx86 to the build
 vpath %.c ../../../xen/lib/x86
 
-OBJS-y                 += cpuid.o msr.o policy.o
+CPUID_OBJS := cpuid.o cpuid-cp2buf.o cpuid-cpfrbuf.o cpupolicy-clr.o
+OBJS-y                 += $(CPUID_OBJS)
+OBJS-y                 += msr.o policy.o
 endif
 
 # new domain builder
diff --git a/tools/tests/cpu-policy/Makefile b/tools/tests/cpu-policy/Makefile
index 24f87e2eca..f99a8b3ea2 100644
--- a/tools/tests/cpu-policy/Makefile
+++ b/tools/tests/cpu-policy/Makefile
@@ -46,7 +46,8 @@ vpath %.c ../../../xen/lib/x86
 
 %.o: Makefile
 
-test-cpu-policy: test-cpu-policy.o msr.o cpuid.o policy.o
+CPUID_OBJS := cpuid.o cpuid-cp2buf.o cpuid-cpfrbuf.o cpupolicy-clr.o
+test-cpu-policy: test-cpu-policy.o msr.o $(CPUID_OBJS) policy.o
 	$(CC) $^ -o $@ $(LDFLAGS)
 
 -include $(DEPS_INCLUDE)
diff --git a/tools/tests/x86_emulator/Makefile b/tools/tests/x86_emulator/Makefile
index 3e02580a35..2f2bf933d3 100644
--- a/tools/tests/x86_emulator/Makefile
+++ b/tools/tests/x86_emulator/Makefile
@@ -248,7 +248,8 @@ xop.h avx512f.h avx512fp16.h: simd-fma.c
 
 endif # 32-bit override
 
-OBJS := x86-emulate.o cpuid.o test_x86_emulator.o evex-disp8.o predicates.o wrappers.o
+CPUID_OBJS := cpuid.o cpuid-cp2buf.o cpuid-cpfrbuf.o cpupolicy-clr.o
+OBJS := x86-emulate.o $(CPUID_OBJS) test_x86_emulator.o evex-disp8.o predicates.o wrappers.o
 OBJS += x86_emulate/0f01.o x86_emulate/0fae.o x86_emulate/0fc7.o
 OBJS += x86_emulate/blk.o x86_emulate/decode.o x86_emulate/fpu.o x86_emulate/util.o
 
diff --git a/xen/lib/Makefile b/xen/lib/Makefile
index efca830d92..9b3e03a511 100644
--- a/xen/lib/Makefile
+++ b/xen/lib/Makefile
@@ -45,3 +45,8 @@ lib-$(CONFIG_X86) += xxhash64.o
 lib32-y := divmod.o
 lib32-$(CONFIG_64BIT) :=
 lib-y += $(lib32-y)
+
+libx86-y := x86/cpuid-cp2buf.o
+libx86-y += x86/cpuid-cpfrbuf.o
+libx86-y += x86/cpupolicy-clr.o
+lib-$(CONFIG_X86) += $(libx86-y)
diff --git a/xen/lib/x86/cpuid-cp2buf.c b/xen/lib/x86/cpuid-cp2buf.c
new file mode 100644
index 0000000000..144d915ad9
--- /dev/null
+++ b/xen/lib/x86/cpuid-cp2buf.c
@@ -0,0 +1,123 @@
+#include "private.h"
+
+#include <xen/lib/x86/cpu-policy.h>
+
+/*
+ * Copy a single cpuid_leaf into a provided xen_cpuid_leaf_t buffer,
+ * performing boundary checking against the buffer size.
+ */
+static int copy_leaf_to_buffer(uint32_t leaf, uint32_t subleaf,
+                               const struct cpuid_leaf *data,
+                               cpuid_leaf_buffer_t leaves,
+                               uint32_t *curr_entry, const uint32_t nr_entries)
+{
+    const xen_cpuid_leaf_t val = {
+        leaf, subleaf, data->a, data->b, data->c, data->d,
+    };
+
+    if ( *curr_entry == nr_entries )
+        return -ENOBUFS;
+
+    if ( copy_to_buffer_offset(leaves, *curr_entry, &val, 1) )
+        return -EFAULT;
+
+    ++*curr_entry;
+
+    return 0;
+}
+
+int x86_cpuid_copy_to_buffer(const struct cpu_policy *p,
+                             cpuid_leaf_buffer_t leaves, uint32_t *nr_entries_p)
+{
+    const uint32_t nr_entries = *nr_entries_p;
+    uint32_t curr_entry = 0, leaf, subleaf;
+
+#define COPY_LEAF(l, s, data)                                       \
+    ({                                                              \
+        int ret;                                                    \
+                                                                    \
+        if ( (ret = copy_leaf_to_buffer(                            \
+                  l, s, data, leaves, &curr_entry, nr_entries)) )   \
+            return ret;                                             \
+    })
+
+    /* Basic leaves. */
+    for ( leaf = 0; leaf <= MIN(p->basic.max_leaf,
+                                ARRAY_SIZE(p->basic.raw) - 1); ++leaf )
+    {
+        switch ( leaf )
+        {
+        case 0x4:
+            for ( subleaf = 0; subleaf < ARRAY_SIZE(p->cache.raw); ++subleaf )
+            {
+                COPY_LEAF(leaf, subleaf, &p->cache.raw[subleaf]);
+
+                if ( p->cache.subleaf[subleaf].type == 0 )
+                    break;
+            }
+            break;
+
+        case 0x7:
+            for ( subleaf = 0;
+                  subleaf <= MIN(p->feat.max_subleaf,
+                                 ARRAY_SIZE(p->feat.raw) - 1); ++subleaf )
+                COPY_LEAF(leaf, subleaf, &p->feat.raw[subleaf]);
+            break;
+
+        case 0xb:
+            for ( subleaf = 0; subleaf < ARRAY_SIZE(p->topo.raw); ++subleaf )
+            {
+                COPY_LEAF(leaf, subleaf, &p->topo.raw[subleaf]);
+
+                if ( p->topo.subleaf[subleaf].type == 0 )
+                    break;
+            }
+            break;
+
+        case 0xd:
+        {
+            uint64_t xstates = cpu_policy_xstates(p);
+
+            COPY_LEAF(leaf, 0, &p->xstate.raw[0]);
+            COPY_LEAF(leaf, 1, &p->xstate.raw[1]);
+
+            for ( xstates >>= 2, subleaf = 2;
+                  xstates && subleaf < ARRAY_SIZE(p->xstate.raw);
+                  xstates >>= 1, ++subleaf )
+                COPY_LEAF(leaf, subleaf, &p->xstate.raw[subleaf]);
+            break;
+        }
+
+        default:
+            COPY_LEAF(leaf, XEN_CPUID_NO_SUBLEAF, &p->basic.raw[leaf]);
+            break;
+        }
+    }
+
+    /* TODO: Port Xen and Viridian leaves to the new CPUID infrastructure. */
+    COPY_LEAF(0x40000000, XEN_CPUID_NO_SUBLEAF,
+              &(struct cpuid_leaf){ p->hv_limit });
+    COPY_LEAF(0x40000100, XEN_CPUID_NO_SUBLEAF,
+              &(struct cpuid_leaf){ p->hv2_limit });
+
+    /* Extended leaves. */
+    for ( leaf = 0; leaf <= MIN(p->extd.max_leaf & 0xffffUL,
+                                ARRAY_SIZE(p->extd.raw) - 1); ++leaf )
+        COPY_LEAF(0x80000000U | leaf, XEN_CPUID_NO_SUBLEAF, &p->extd.raw[leaf]);
+
+#undef COPY_LEAF
+
+    *nr_entries_p = curr_entry;
+
+    return 0;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/lib/x86/cpuid-cpfrbuf.c b/xen/lib/x86/cpuid-cpfrbuf.c
new file mode 100644
index 0000000000..41eb7ee250
--- /dev/null
+++ b/xen/lib/x86/cpuid-cpfrbuf.c
@@ -0,0 +1,129 @@
+#include "private.h"
+
+#include <xen/lib/x86/cpu-policy.h>
+
+int x86_cpuid_copy_from_buffer(struct cpu_policy *p,
+                               const cpuid_leaf_buffer_t leaves,
+                               uint32_t nr_entries, uint32_t *err_leaf,
+                               uint32_t *err_subleaf)
+{
+    unsigned int i;
+    xen_cpuid_leaf_t data;
+
+    if ( err_leaf )
+        *err_leaf = -1;
+    if ( err_subleaf )
+        *err_subleaf = -1;
+
+    /*
+     * A well formed caller is expected to pass an array with leaves in order,
+     * and without any repetitions.  However, due to per-vendor differences,
+     * and in the case of upgrade or levelled scenarios, we typically expect
+     * fewer than MAX leaves to be passed.
+     *
+     * Detecting repeated entries is prohibitively complicated, so we don't
+     * bother.  That said, one way or another if more than MAX leaves are
+     * passed, something is wrong.
+     */
+    if ( nr_entries > CPUID_MAX_SERIALISED_LEAVES )
+        return -E2BIG;
+
+    for ( i = 0; i < nr_entries; ++i )
+    {
+        struct cpuid_leaf l;
+
+        if ( copy_from_buffer_offset(&data, leaves, i, 1) )
+            return -EFAULT;
+
+        l = (struct cpuid_leaf){ data.a, data.b, data.c, data.d };
+
+        switch ( data.leaf )
+        {
+        case 0 ... ARRAY_SIZE(p->basic.raw) - 1:
+            switch ( data.leaf )
+            {
+            case 0x4:
+                if ( data.subleaf >= ARRAY_SIZE(p->cache.raw) )
+                    goto out_of_range;
+
+                array_access_nospec(p->cache.raw, data.subleaf) = l;
+                break;
+
+            case 0x7:
+                if ( data.subleaf >= ARRAY_SIZE(p->feat.raw) )
+                    goto out_of_range;
+
+                array_access_nospec(p->feat.raw, data.subleaf) = l;
+                break;
+
+            case 0xb:
+                if ( data.subleaf >= ARRAY_SIZE(p->topo.raw) )
+                    goto out_of_range;
+
+                array_access_nospec(p->topo.raw, data.subleaf) = l;
+                break;
+
+            case 0xd:
+                if ( data.subleaf >= ARRAY_SIZE(p->xstate.raw) )
+                    goto out_of_range;
+
+                array_access_nospec(p->xstate.raw, data.subleaf) = l;
+                break;
+
+            default:
+                if ( data.subleaf != XEN_CPUID_NO_SUBLEAF )
+                    goto out_of_range;
+
+                array_access_nospec(p->basic.raw, data.leaf) = l;
+                break;
+            }
+            break;
+
+        case 0x40000000:
+            if ( data.subleaf != XEN_CPUID_NO_SUBLEAF )
+                goto out_of_range;
+
+            p->hv_limit = l.a;
+            break;
+
+        case 0x40000100:
+            if ( data.subleaf != XEN_CPUID_NO_SUBLEAF )
+                goto out_of_range;
+
+            p->hv2_limit = l.a;
+            break;
+
+        case 0x80000000U ... 0x80000000U + ARRAY_SIZE(p->extd.raw) - 1:
+            if ( data.subleaf != XEN_CPUID_NO_SUBLEAF )
+                goto out_of_range;
+
+            array_access_nospec(p->extd.raw, data.leaf & 0xffff) = l;
+            break;
+
+        default:
+            goto out_of_range;
+        }
+    }
+
+    x86_cpu_policy_recalc_synth(p);
+
+    return 0;
+
+ out_of_range:
+    if ( err_leaf )
+        *err_leaf = data.leaf;
+    if ( err_subleaf )
+        *err_subleaf = data.subleaf;
+
+    return -ERANGE;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/lib/x86/cpuid.c b/xen/lib/x86/cpuid.c
index 6298d051f2..465bdee35a 100644
--- a/xen/lib/x86/cpuid.c
+++ b/xen/lib/x86/cpuid.c
@@ -2,13 +2,6 @@
 
 #include <xen/lib/x86/cpu-policy.h>
 
-static void zero_leaves(struct cpuid_leaf *l,
-                        unsigned int first, unsigned int last)
-{
-    if ( first <= last )
-        memset(&l[first], 0, sizeof(*l) * (last - first + 1));
-}
-
 unsigned int x86_cpuid_lookup_vendor(uint32_t ebx, uint32_t ecx, uint32_t edx)
 {
     switch ( ebx )
@@ -238,59 +231,6 @@ void x86_cpu_policy_fill_native(struct cpu_policy *p)
     x86_cpu_policy_recalc_synth(p);
 }
 
-void x86_cpu_policy_clear_out_of_range_leaves(struct cpu_policy *p)
-{
-    unsigned int i;
-
-    zero_leaves(p->basic.raw, p->basic.max_leaf + 1,
-                ARRAY_SIZE(p->basic.raw) - 1);
-
-    if ( p->basic.max_leaf < 4 )
-        memset(p->cache.raw, 0, sizeof(p->cache.raw));
-    else
-    {
-        for ( i = 0; (i < ARRAY_SIZE(p->cache.raw) &&
-                      p->cache.subleaf[i].type); ++i )
-            ;
-
-        zero_leaves(p->cache.raw, i, ARRAY_SIZE(p->cache.raw) - 1);
-    }
-
-    if ( p->basic.max_leaf < 7 )
-        memset(p->feat.raw, 0, sizeof(p->feat.raw));
-    else
-        zero_leaves(p->feat.raw, p->feat.max_subleaf + 1,
-                    ARRAY_SIZE(p->feat.raw) - 1);
-
-    if ( p->basic.max_leaf < 0xb )
-        memset(p->topo.raw, 0, sizeof(p->topo.raw));
-    else
-    {
-        for ( i = 0; (i < ARRAY_SIZE(p->topo.raw) &&
-                      p->topo.subleaf[i].type); ++i )
-            ;
-
-        zero_leaves(p->topo.raw, i, ARRAY_SIZE(p->topo.raw) - 1);
-    }
-
-    if ( p->basic.max_leaf < 0xd || !cpu_policy_xstates(p) )
-        memset(p->xstate.raw, 0, sizeof(p->xstate.raw));
-    else
-    {
-        /* This logic will probably need adjusting when XCR0[63] gets used. */
-        BUILD_BUG_ON(ARRAY_SIZE(p->xstate.raw) > 63);
-
-        /* First two leaves always valid.  Rest depend on xstates. */
-        i = max(2, 64 - __builtin_clzll(cpu_policy_xstates(p)));
-
-        zero_leaves(p->xstate.raw, i,
-                    ARRAY_SIZE(p->xstate.raw) - 1);
-    }
-
-    zero_leaves(p->extd.raw, (p->extd.max_leaf & 0xffff) + 1,
-                ARRAY_SIZE(p->extd.raw) - 1);
-}
-
 const uint32_t *x86_cpu_policy_lookup_deep_deps(uint32_t feature)
 {
     static const uint32_t deep_features[] = INIT_DEEP_FEATURES;
@@ -322,232 +262,6 @@ const uint32_t *x86_cpu_policy_lookup_deep_deps(uint32_t feature)
     return NULL;
 }
 
-/*
- * Copy a single cpuid_leaf into a provided xen_cpuid_leaf_t buffer,
- * performing boundary checking against the buffer size.
- */
-static int copy_leaf_to_buffer(uint32_t leaf, uint32_t subleaf,
-                               const struct cpuid_leaf *data,
-                               cpuid_leaf_buffer_t leaves,
-                               uint32_t *curr_entry, const uint32_t nr_entries)
-{
-    const xen_cpuid_leaf_t val = {
-        leaf, subleaf, data->a, data->b, data->c, data->d,
-    };
-
-    if ( *curr_entry == nr_entries )
-        return -ENOBUFS;
-
-    if ( copy_to_buffer_offset(leaves, *curr_entry, &val, 1) )
-        return -EFAULT;
-
-    ++*curr_entry;
-
-    return 0;
-}
-
-int x86_cpuid_copy_to_buffer(const struct cpu_policy *p,
-                             cpuid_leaf_buffer_t leaves, uint32_t *nr_entries_p)
-{
-    const uint32_t nr_entries = *nr_entries_p;
-    uint32_t curr_entry = 0, leaf, subleaf;
-
-#define COPY_LEAF(l, s, data)                                       \
-    ({                                                              \
-        int ret;                                                    \
-                                                                    \
-        if ( (ret = copy_leaf_to_buffer(                            \
-                  l, s, data, leaves, &curr_entry, nr_entries)) )   \
-            return ret;                                             \
-    })
-
-    /* Basic leaves. */
-    for ( leaf = 0; leaf <= MIN(p->basic.max_leaf,
-                                ARRAY_SIZE(p->basic.raw) - 1); ++leaf )
-    {
-        switch ( leaf )
-        {
-        case 0x4:
-            for ( subleaf = 0; subleaf < ARRAY_SIZE(p->cache.raw); ++subleaf )
-            {
-                COPY_LEAF(leaf, subleaf, &p->cache.raw[subleaf]);
-
-                if ( p->cache.subleaf[subleaf].type == 0 )
-                    break;
-            }
-            break;
-
-        case 0x7:
-            for ( subleaf = 0;
-                  subleaf <= MIN(p->feat.max_subleaf,
-                                 ARRAY_SIZE(p->feat.raw) - 1); ++subleaf )
-                COPY_LEAF(leaf, subleaf, &p->feat.raw[subleaf]);
-            break;
-
-        case 0xb:
-            for ( subleaf = 0; subleaf < ARRAY_SIZE(p->topo.raw); ++subleaf )
-            {
-                COPY_LEAF(leaf, subleaf, &p->topo.raw[subleaf]);
-
-                if ( p->topo.subleaf[subleaf].type == 0 )
-                    break;
-            }
-            break;
-
-        case 0xd:
-        {
-            uint64_t xstates = cpu_policy_xstates(p);
-
-            COPY_LEAF(leaf, 0, &p->xstate.raw[0]);
-            COPY_LEAF(leaf, 1, &p->xstate.raw[1]);
-
-            for ( xstates >>= 2, subleaf = 2;
-                  xstates && subleaf < ARRAY_SIZE(p->xstate.raw);
-                  xstates >>= 1, ++subleaf )
-                COPY_LEAF(leaf, subleaf, &p->xstate.raw[subleaf]);
-            break;
-        }
-
-        default:
-            COPY_LEAF(leaf, XEN_CPUID_NO_SUBLEAF, &p->basic.raw[leaf]);
-            break;
-        }
-    }
-
-    /* TODO: Port Xen and Viridian leaves to the new CPUID infrastructure. */
-    COPY_LEAF(0x40000000, XEN_CPUID_NO_SUBLEAF,
-              &(struct cpuid_leaf){ p->hv_limit });
-    COPY_LEAF(0x40000100, XEN_CPUID_NO_SUBLEAF,
-              &(struct cpuid_leaf){ p->hv2_limit });
-
-    /* Extended leaves. */
-    for ( leaf = 0; leaf <= MIN(p->extd.max_leaf & 0xffffUL,
-                                ARRAY_SIZE(p->extd.raw) - 1); ++leaf )
-        COPY_LEAF(0x80000000U | leaf, XEN_CPUID_NO_SUBLEAF, &p->extd.raw[leaf]);
-
-#undef COPY_LEAF
-
-    *nr_entries_p = curr_entry;
-
-    return 0;
-}
-
-int x86_cpuid_copy_from_buffer(struct cpu_policy *p,
-                               const cpuid_leaf_buffer_t leaves,
-                               uint32_t nr_entries, uint32_t *err_leaf,
-                               uint32_t *err_subleaf)
-{
-    unsigned int i;
-    xen_cpuid_leaf_t data;
-
-    if ( err_leaf )
-        *err_leaf = -1;
-    if ( err_subleaf )
-        *err_subleaf = -1;
-
-    /*
-     * A well formed caller is expected to pass an array with leaves in order,
-     * and without any repetitions.  However, due to per-vendor differences,
-     * and in the case of upgrade or levelled scenarios, we typically expect
-     * fewer than MAX leaves to be passed.
-     *
-     * Detecting repeated entries is prohibitively complicated, so we don't
-     * bother.  That said, one way or another if more than MAX leaves are
-     * passed, something is wrong.
-     */
-    if ( nr_entries > CPUID_MAX_SERIALISED_LEAVES )
-        return -E2BIG;
-
-    for ( i = 0; i < nr_entries; ++i )
-    {
-        struct cpuid_leaf l;
-
-        if ( copy_from_buffer_offset(&data, leaves, i, 1) )
-            return -EFAULT;
-
-        l = (struct cpuid_leaf){ data.a, data.b, data.c, data.d };
-
-        switch ( data.leaf )
-        {
-        case 0 ... ARRAY_SIZE(p->basic.raw) - 1:
-            switch ( data.leaf )
-            {
-            case 0x4:
-                if ( data.subleaf >= ARRAY_SIZE(p->cache.raw) )
-                    goto out_of_range;
-
-                array_access_nospec(p->cache.raw, data.subleaf) = l;
-                break;
-
-            case 0x7:
-                if ( data.subleaf >= ARRAY_SIZE(p->feat.raw) )
-                    goto out_of_range;
-
-                array_access_nospec(p->feat.raw, data.subleaf) = l;
-                break;
-
-            case 0xb:
-                if ( data.subleaf >= ARRAY_SIZE(p->topo.raw) )
-                    goto out_of_range;
-
-                array_access_nospec(p->topo.raw, data.subleaf) = l;
-                break;
-
-            case 0xd:
-                if ( data.subleaf >= ARRAY_SIZE(p->xstate.raw) )
-                    goto out_of_range;
-
-                array_access_nospec(p->xstate.raw, data.subleaf) = l;
-                break;
-
-            default:
-                if ( data.subleaf != XEN_CPUID_NO_SUBLEAF )
-                    goto out_of_range;
-
-                array_access_nospec(p->basic.raw, data.leaf) = l;
-                break;
-            }
-            break;
-
-        case 0x40000000:
-            if ( data.subleaf != XEN_CPUID_NO_SUBLEAF )
-                goto out_of_range;
-
-            p->hv_limit = l.a;
-            break;
-
-        case 0x40000100:
-            if ( data.subleaf != XEN_CPUID_NO_SUBLEAF )
-                goto out_of_range;
-
-            p->hv2_limit = l.a;
-            break;
-
-        case 0x80000000U ... 0x80000000U + ARRAY_SIZE(p->extd.raw) - 1:
-            if ( data.subleaf != XEN_CPUID_NO_SUBLEAF )
-                goto out_of_range;
-
-            array_access_nospec(p->extd.raw, data.leaf & 0xffff) = l;
-            break;
-
-        default:
-            goto out_of_range;
-        }
-    }
-
-    x86_cpu_policy_recalc_synth(p);
-
-    return 0;
-
- out_of_range:
-    if ( err_leaf )
-        *err_leaf = data.leaf;
-    if ( err_subleaf )
-        *err_subleaf = data.subleaf;
-
-    return -ERANGE;
-}
-
 /*
  * Local variables:
  * mode: C
diff --git a/xen/lib/x86/cpupolicy-clr.c b/xen/lib/x86/cpupolicy-clr.c
new file mode 100644
index 0000000000..de090a7c95
--- /dev/null
+++ b/xen/lib/x86/cpupolicy-clr.c
@@ -0,0 +1,73 @@
+#include "private.h"
+
+#include <xen/lib/x86/cpu-policy.h>
+
+static void zero_leaves(struct cpuid_leaf *l,
+                        unsigned int first, unsigned int last)
+{
+    if ( first <= last )
+        memset(&l[first], 0, sizeof(*l) * (last - first + 1));
+}
+
+void x86_cpu_policy_clear_out_of_range_leaves(struct cpu_policy *p)
+{
+    unsigned int i;
+
+    zero_leaves(p->basic.raw, p->basic.max_leaf + 1,
+                ARRAY_SIZE(p->basic.raw) - 1);
+
+    if ( p->basic.max_leaf < 4 )
+        memset(p->cache.raw, 0, sizeof(p->cache.raw));
+    else
+    {
+        for ( i = 0; (i < ARRAY_SIZE(p->cache.raw) &&
+                      p->cache.subleaf[i].type); ++i )
+            ;
+
+        zero_leaves(p->cache.raw, i, ARRAY_SIZE(p->cache.raw) - 1);
+    }
+
+    if ( p->basic.max_leaf < 7 )
+        memset(p->feat.raw, 0, sizeof(p->feat.raw));
+    else
+        zero_leaves(p->feat.raw, p->feat.max_subleaf + 1,
+                    ARRAY_SIZE(p->feat.raw) - 1);
+
+    if ( p->basic.max_leaf < 0xb )
+        memset(p->topo.raw, 0, sizeof(p->topo.raw));
+    else
+    {
+        for ( i = 0; (i < ARRAY_SIZE(p->topo.raw) &&
+                      p->topo.subleaf[i].type); ++i )
+            ;
+
+        zero_leaves(p->topo.raw, i, ARRAY_SIZE(p->topo.raw) - 1);
+    }
+
+    if ( p->basic.max_leaf < 0xd || !cpu_policy_xstates(p) )
+        memset(p->xstate.raw, 0, sizeof(p->xstate.raw));
+    else
+    {
+        /* This logic will probably need adjusting when XCR0[63] gets used. */
+        BUILD_BUG_ON(ARRAY_SIZE(p->xstate.raw) > 63);
+
+        /* First two leaves always valid.  Rest depend on xstates. */
+        i = max(2, 64 - __builtin_clzll(cpu_policy_xstates(p)));
+
+        zero_leaves(p->xstate.raw, i,
+                    ARRAY_SIZE(p->xstate.raw) - 1);
+    }
+
+    zero_leaves(p->extd.raw, (p->extd.max_leaf & 0xffff) + 1,
+                ARRAY_SIZE(p->extd.raw) - 1);
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:06:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:06:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184894.1507192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuQQ-0007gk-5x; Fri, 12 Dec 2025 04:06:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184894.1507192; Fri, 12 Dec 2025 04:06:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuQQ-0007gd-1t; Fri, 12 Dec 2025 04:06:38 +0000
Received: by outflank-mailman (input) for mailman id 1184894;
 Fri, 12 Dec 2025 04:06:36 +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
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuQO-0007Dl-FF
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:06:36 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f228ef1f-d70f-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 05:06:35 +0100 (CET)
Received: from MN2PR03CA0010.namprd03.prod.outlook.com (2603:10b6:208:23a::15)
 by IA0PPF7646FEBB5.namprd12.prod.outlook.com
 (2603:10b6:20f:fc04::bd3) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.6; Fri, 12 Dec
 2025 04:06:29 +0000
Received: from BL02EPF0002992C.namprd02.prod.outlook.com
 (2603:10b6:208:23a:cafe::c3) by MN2PR03CA0010.outlook.office365.com
 (2603:10b6:208:23a::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.16 via Frontend Transport; Fri,
 12 Dec 2025 04:06:14 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0002992C.mail.protection.outlook.com (10.167.249.57) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:06:29 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:06:26 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f228ef1f-d70f-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZaKiUXk4MzO/A9ATcrJfmwQ3GEdtj1ywfMcL6LVVRhblUcO6620R0y9c9M9O+FVNXSjzlVy6NPtCbf/0DnLFX3CScMmwXtxSZdEKWYmXPh2UJ0jZ0WoU8iI6Uhv/1NqH7/hAiHhwTDkbmT/od3Ewj0WWX/sYHa8cJJW+WAB+OY2TecutTdr+Q6SUyTbERQJIqZI0sjvuDiFqrBMgnycKheEzE5Unk7uq4h/ycMdQPg4j3X66fVc4iusOLCXR9YXbj3tpnrVbX/LnDA9trC4RKSTUt4tvQ77d7IbTzSZc/r/pQgFfQhKobifJev8VMvSUs0Gsrv77o8GKQI0fYT4/OA==
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=YXAQFART80WLThJjcvr6ZzdrnhTVp/Mdx6r3fmkmkIU=;
 b=FlfiKf8JIV23MnTnQeJIPecEzltaOXlsBZsX4bpBSTI6ewPNDgii+SQ7/CxdHvDjtCWw6ID6b6VpGmCGl0GNxE3/bAjL1AlydDGgcrLzySdjl7NE2yS0Y9YcfVKAbN5CERpPJOuKvXhwCDfpSgttL4WfzQVmYQ1CsZIPQck1/ZmP/HVeHS7gAJHaJmKPFb6pouRxeruglqAgKNqwdcbuo/IysYZ88rsgIK/c5W19TEDBm0sk7wU2VCJAFGWGBaLUP2E8r6xFH1Q46clnu4Jl32RsPpkx1izbSWgEpsTne/v3AGUNqzmLXHoaAigvkCIDaHGmQjjshuAFxxwHVdd4/Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YXAQFART80WLThJjcvr6ZzdrnhTVp/Mdx6r3fmkmkIU=;
 b=noXX+P9szPAnX6CGl130T2qdsUU3uY3gfPuYUzvWxcmLCjwAs3dVuDOsirCgCegTI3g9k02z7Buww7ycJFT7qr34LeL9Ksw9J30J/R9akKM1X63l/G6KNoLRnqmJUuBI5bjG4JMmUs8HStJ8MJwbCNYrzPMr/HQ/+PCbLX7z1tY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Michal
 Orzel" <michal.orzel@amd.com>, Penny Zheng <penny.zheng@amd.com>
Subject: [PATCH v5 03/24] xen/arm: move dt_find_node_by_gpath() to passthrough/device_tree.c
Date: Fri, 12 Dec 2025 12:01:48 +0800
Message-ID: <20251212040209.1970553-4-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992C:EE_|IA0PPF7646FEBB5:EE_
X-MS-Office365-Filtering-Correlation-Id: 4d6f502c-7898-45e6-ee24-08de3933d3ba
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?blVOFwB7jBrp8/v5J/AqmksMjwNkWafWx1jsI2HJ+4ceHP1ARRRevL+WZQsM?=
 =?us-ascii?Q?v600MmS7WMMWq/lll01Nm20Eb3HPvmYZb+syyuZ1TGmxqAUe0Sa0ES3Y+CAL?=
 =?us-ascii?Q?sG4d6588KCuchCYxLvsybAJI5O9YpGgF2YvOEo20os7+T4ulIVO3vlnP9PaK?=
 =?us-ascii?Q?/fblsC5M69KWLKf5gRfw/0wMM3jWdL/DfFVWyJ1VbOwjz8RIi2+j5BdVbFZU?=
 =?us-ascii?Q?IDsxKEO/I+6neewRxtOrWYalJNSUlQ4qh6VXVgyKL4aBwYASSgN90gBr9rW8?=
 =?us-ascii?Q?0LyGOdXN4Mi95LEaQ3gSl3Ouj8hOXK7dP9T/GJBXAb2rgP+Kin+kRZzu2SiN?=
 =?us-ascii?Q?NVuof9FVrYGCD3DgmV6jqyjJw6sLIr6etk0wwkHVUqgjHcxIEFGaM1V7JsNq?=
 =?us-ascii?Q?5on6UFUhuY7T7VX8OqMRA4FRi1QeVEdf3a/ubX/Hu/AAqMaZgVQJTuufG/ka?=
 =?us-ascii?Q?OReB4tURVhdasRahxiYbGNFbXixt1jMdphGb0n1KBOkjrNA9riOco4MfT08h?=
 =?us-ascii?Q?1fo7IVkhE8bQ6P1+qQTPNsrJOfYv0EsYo+mfZlfzGdo2HrguRBx0SuEbp2YG?=
 =?us-ascii?Q?0jdNysZyKxYS26x8JF9IP+9FhMf1+8Xj4Tn5jRRt7byPUYfxqhuTKW+cqdWT?=
 =?us-ascii?Q?YXrRNPS3xVzyxr6phzli24rwgusI/AWKELuABsrFdAIL42kmYRoWyN00iwfx?=
 =?us-ascii?Q?EWq0uqkb1+7rMN9ETPvl5Dwxmq992sQBH7P1bq2aNNVuealh5rTNxhEqna0r?=
 =?us-ascii?Q?MtL+QEhrPA6hBqTjG7sviaeLLMWG7MXTo5q0AD7Xo67Z1cW4HPMATpi0kjvi?=
 =?us-ascii?Q?w+QI7bBhodkAFk3yRhnJePy9oJJFTgenb67O5ujq7Z+xSSIxRBloPGguXNLs?=
 =?us-ascii?Q?WW0i2N7RM3yIj643AOLj4k9/3c9UT+SDCKoJynlwAakJVew/tCsM2hhu+bpt?=
 =?us-ascii?Q?8/+4uvccOV1J9+Z0Efkmc6dPblg+e9eHfcqikuC++itN5myhA6Irhr+OyJuK?=
 =?us-ascii?Q?7/4I3Z0yD5YxJ6BROt16+BbV74SCchzOGAfeFG0Jizz2B2Dki+bq1u7/tljG?=
 =?us-ascii?Q?VHXhGTJXZI6wKgxUHlPr/QhNb/jUvuJqG5RGVv2Qur4D/4Bgwd9qDYRCCQ8l?=
 =?us-ascii?Q?CkEOZ42E/pQ1EgZyKh2r0rfXREPNmWvQbhSdP+bY/MWZjr1fHnNUcIZ6EZFU?=
 =?us-ascii?Q?sU67F13TQiN54mTj9acx7kKR0iXy+1rVQ4cJzgeoRcUOGdG4fyEW9qEw1BbD?=
 =?us-ascii?Q?74jnt2cufx1aiC5chycW3+MYgXCuHgI4/k2gZ6VzAVRB22r+SkH2LmIeoxC3?=
 =?us-ascii?Q?DpfNZ7S33PixN9xxQZK4/sB+jbWxZTml6+9vjtqO1vj2aIaYu/MoMN92vec8?=
 =?us-ascii?Q?GKdD3p0Prcd3Wy5fpnDBnyizaxjtIOc0ar0RczK6N0q6ELHMseQxbwSvg6Ux?=
 =?us-ascii?Q?hkU1X8X7wuNKt6hyDKQ5QGRVGDdXoKnHlEwPlrWdgFE3JXKUdt5gynkQGs8u?=
 =?us-ascii?Q?HfkUQgd97+z2gKh9uupua5HJ2eMKjk/f8128c/hMDJZai8pdVc3QAQ0wLyGf?=
 =?us-ascii?Q?KtfFgHD6UOKAuABNXs0=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:06:29.1101
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4d6f502c-7898-45e6-ee24-08de3933d3ba
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992C.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PPF7646FEBB5

The common/device-tree/device-tree.c contains generic unflatten DT helpers API,
while dt_find_node_by_gpath() is specific for domctl (iommu) processing.
We move this function into drivers\passthrough\device_tree.c and make it
static, as it is used only there now.

Suggested-by: Grygorii Strashko <grygorii_strashko@epam.com>
Signed-off-by: Penny Zheng <penny.zheng@amd.com>
---
v4 -> v5:
- new commit
---
 xen/common/device-tree/device-tree.c  | 16 ---------------
 xen/drivers/passthrough/device_tree.c | 28 +++++++++++++++++++++++++++
 xen/include/xen/device_tree.h         | 13 -------------
 3 files changed, 28 insertions(+), 29 deletions(-)

diff --git a/xen/common/device-tree/device-tree.c b/xen/common/device-tree/device-tree.c
index 0b5375f151..d6cf417e94 100644
--- a/xen/common/device-tree/device-tree.c
+++ b/xen/common/device-tree/device-tree.c
@@ -371,22 +371,6 @@ struct dt_device_node *dt_find_node_by_path_from(struct dt_device_node *from,
     return np;
 }
 
-int dt_find_node_by_gpath(XEN_GUEST_HANDLE(char) u_path, uint32_t u_plen,
-                          struct dt_device_node **node)
-{
-    char *path;
-
-    path = safe_copy_string_from_guest(u_path, u_plen, PAGE_SIZE);
-    if ( IS_ERR(path) )
-        return PTR_ERR(path);
-
-    *node = dt_find_node_by_path(path);
-
-    xfree(path);
-
-    return (*node == NULL) ? -ESRCH : 0;
-}
-
 struct dt_device_node *dt_find_node_by_alias(const char *alias)
 {
     const struct dt_alias_prop *app;
diff --git a/xen/drivers/passthrough/device_tree.c b/xen/drivers/passthrough/device_tree.c
index f5850a2607..eb0c233977 100644
--- a/xen/drivers/passthrough/device_tree.c
+++ b/xen/drivers/passthrough/device_tree.c
@@ -16,6 +16,7 @@
  */
 
 #include <xen/device_tree.h>
+#include <xen/err.h>
 #include <xen/guest_access.h>
 #include <xen/iommu.h>
 #include <xen/lib.h>
@@ -318,6 +319,33 @@ int iommu_add_dt_device(struct dt_device_node *np)
     return rc;
 }
 
+/*
+ * dt_find_node_by_gpath - Same as dt_find_node_by_path but retrieve the
+ * path from the guest
+ *
+ * @u_path: Xen Guest handle to the buffer containing the path
+ * @u_plen: Length of the buffer
+ * @node: TODO
+ *
+ * Return 0 if succeed otherwise -errno
+ */
+static int dt_find_node_by_gpath(XEN_GUEST_HANDLE(char) u_path,
+                                 uint32_t u_plen,
+                                 struct dt_device_node **node)
+{
+    char *path;
+
+    path = safe_copy_string_from_guest(u_path, u_plen, PAGE_SIZE);
+    if ( IS_ERR(path) )
+        return PTR_ERR(path);
+
+    *node = dt_find_node_by_path(path);
+
+    xfree(path);
+
+    return (*node == NULL) ? -ESRCH : 0;
+}
+
 int iommu_do_dt_domctl(struct xen_domctl *domctl, struct domain *d,
                        XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
 {
diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h
index 06d7643622..241f269b57 100644
--- a/xen/include/xen/device_tree.h
+++ b/xen/include/xen/device_tree.h
@@ -550,19 +550,6 @@ static inline struct dt_device_node *dt_find_node_by_path(const char *path)
     return dt_find_node_by_path_from(dt_host, path);
 }
 
-/**
- * dt_find_node_by_gpath - Same as dt_find_node_by_path but retrieve the
- * path from the guest
- *
- * @u_path: Xen Guest handle to the buffer containing the path
- * @u_plen: Length of the buffer
- * @node: TODO
- *
- * Return 0 if succeed otherwise -errno
- */
-int dt_find_node_by_gpath(XEN_GUEST_HANDLE(char) u_path, uint32_t u_plen,
-                          struct dt_device_node **node);
-
 /**
  * dt_get_parent - Get a node's parent if any
  * @node: Node to get parent
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:06:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:06:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184896.1507212 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuQV-0008FX-Q4; Fri, 12 Dec 2025 04:06:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184896.1507212; Fri, 12 Dec 2025 04:06:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuQV-0008FQ-NK; Fri, 12 Dec 2025 04:06:43 +0000
Received: by outflank-mailman (input) for mailman id 1184896;
 Fri, 12 Dec 2025 04:06:42 +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
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuQU-0007Dl-NJ
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:06:42 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f6a96121-d70f-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 05:06:42 +0100 (CET)
Received: from BN9PR03CA0943.namprd03.prod.outlook.com (2603:10b6:408:108::18)
 by DM4PR12MB5866.namprd12.prod.outlook.com (2603:10b6:8:65::6) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.10; Fri, 12 Dec 2025 04:06:38 +0000
Received: from BL02EPF0002992D.namprd02.prod.outlook.com
 (2603:10b6:408:108:cafe::3a) by BN9PR03CA0943.outlook.office365.com
 (2603:10b6:408:108::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Fri,
 12 Dec 2025 04:06:33 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0002992D.mail.protection.outlook.com (10.167.249.58) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:06:37 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:06:34 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f6a96121-d70f-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=neiIUiL8+UYO6+/iz5uvzP81WNLMOtxqUO1/FCIpzC8bbvx6Mosx2HPRdvw3G8kOiTgXFKDlOWZKva9mxRORADMA2+mXKxm/kTA40aPWHraljd6C/9ivsSnZCUMoNpyCzKW6D3BXx3ebIqUlWefEoGbvH2OCJZE8EJLfP0kRv6FLL50S61LrD6UWa9rSFGFA1FsrwYByzkY3nlD2zveYWgMfOivXdpssztMny+MUZgfLKfkqL9YT0Ow+1Ccx/aecoW29O1VYjgniUevKPHo5UxzfUSpejazWTOj9fjA05muw1bqCuumz49fO7xYaVZThS7oj0wmG65i+DJk9jWu4zQ==
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=tU7WN++E8sGJQqM5bzkULDc4QRrCLty/nbwKRMgzHgo=;
 b=JTGtbPxCrtSAv18NAbG+gObbQ5fZrlC7YnSTWBVWYLCaMOgMbdAvfPuyXDcU5xnavVOkYr5ikqK1okDLLVEZEqs9RWqt9ioXd9MeEfCodDqY7HsAdTzQffNCzXpL5jFJq1zTDCLNa5ombuxFOFaRTzwS7rTe5Llbz0Jt+EsKvs4xUNUER041ltGaBS53IxSGIgKMojVISREDxZi6U0hPIe73CgYQXh95OBMi2rkrkJM15P9U3WL57xd0n/zuPU6sMa2q2Sh7X1uaBQNIRJ41aJMIWLog7wu8MuubHsltDpKyNvsTAJibdYSVySawX1/rXXvvKaiHZr22KFmYCtntWw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tU7WN++E8sGJQqM5bzkULDc4QRrCLty/nbwKRMgzHgo=;
 b=xZwjR93WzkxPezJuHGwgNlyfg0T6srouPfiRbORvmb7zK3naUgyrVjrtHnUxmGfaEyY/VCU14H2wtcFCD1/20+4kbnW9f9nw0U0Ss7GggDTrhdOumqT3G+6wU5kBE7uq3Trg3lJk4zsep9Aoa9IqD8QC647GEnaAO1HgytS6DMk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: [PATCH v5 05/24] xen/domctl: make MGMT_HYPERCALLS transiently def_bool
Date: Fri, 12 Dec 2025 12:01:50 +0800
Message-ID: <20251212040209.1970553-6-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992D:EE_|DM4PR12MB5866:EE_
X-MS-Office365-Filtering-Correlation-Id: bf747ca1-ffb7-4408-451d-08de3933d8bd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?fgQ+bFyE48U+ki6H4xhXvAV526BPcTEStVHotJakbpoBXhJCbD9QCaWXQvGD?=
 =?us-ascii?Q?yuRpCF4jzJnLANxTrqmcovkF/kjIeeiH2UYUfHRbOGWlJ8hqDQAxYPId70Wp?=
 =?us-ascii?Q?waQjXq03YgfgnZ37s1+4EgyPtAJ53Lofk+VEY0qc+EJ9i1Fo5Znb1kYICPdt?=
 =?us-ascii?Q?NfxXXxeIlTiIFQdlv149KCIhJ4YxcZpj3jSO1PbFdIMuXNua4Gg+TvHfhKDb?=
 =?us-ascii?Q?k+7td068mNfuR5I3ERmr4RenLfTVdBj8iPcRt19rj9Ne4DuKnt15KQDC8WXc?=
 =?us-ascii?Q?fEc+HF1ZBCjbl9juX2kErGhMUrDRaKwLLdq86txdMA5nmkqwa6kvLsT0Wfbi?=
 =?us-ascii?Q?1w/X1vkVcp7fvbhkKa6dvJgcpoEecyGk3x2jg8l1nNapXym+W4bZf1hQ1uWa?=
 =?us-ascii?Q?k1hc4l6472wYV217PBO+NaGgiZLclxfToe1HQisKh6h+r1HZJGSSf7POj+RY?=
 =?us-ascii?Q?MdqUKmSWESdONlePvpNjEfJne9Ri3oBOj1uwiXIl1vXI+MIwoqj2czv14Im9?=
 =?us-ascii?Q?nmBgeZ78/nYgl17+QQll6iVoBLJCBnDO2gZ5PtT1ijBTZeZJahfY8xRHvQtB?=
 =?us-ascii?Q?MQyiNdOxDVjqBAxj+17CwowQHR+ioo/6Jp+rfdk48UpE78bRHy9pptXQJ7kA?=
 =?us-ascii?Q?XCGnf4fIYJ2UIF+24djdIgDdn5j+ARpUXea79yfYRxzpOAKKLoFRqnOha5Sz?=
 =?us-ascii?Q?SalHQ6V+Ergcq+7FhP+Hvn2PjaukL4MLYfITC9RV+0Bi0aeNKGdaVo2CJ7wd?=
 =?us-ascii?Q?ts26gnuciX5sGuYSAM/5f12xpLOcdCiYKmszfF4timPECt48iipKLcOzESbl?=
 =?us-ascii?Q?nOLwcO/opQBXMl2Q3ELpRrgSxREKvyz8ZT3GQPteCNS/BWQyIjWpk5yu7mqp?=
 =?us-ascii?Q?WfUS9DSuA+S9l0TNCcJGZxOTJWvu585YaFFrzP1SDhbOIYcS+MV/5LeVvvNd?=
 =?us-ascii?Q?TUtqhCb4ebTTxPTkxBZu//E7SRU/3YP0O7ByCBNQ5zQhPtfvwrHqmVem2Wbp?=
 =?us-ascii?Q?Ib8yj5H4/bk9pAqXFpZcKvyThJ27U40m+TZWR2auW3oLnk4oP0wG0OOHY4D8?=
 =?us-ascii?Q?dIlBliOXhI/J9AJwk9WpzkLO5z9D4qqvV8Dp53ZYp8J30BPoHqdfz9c9xRnp?=
 =?us-ascii?Q?/Jmm1FTzyneIsNqKMs8leFafaGsMs5mbpykrdki6tD02O6vP4yEDnMtZqCVR?=
 =?us-ascii?Q?MgKjsROCO6x6mXdUrNKbcCkT/ARZ4ezyfPJblQIDyKqQUBoIokpgsTFyRB4a?=
 =?us-ascii?Q?OtX7HhaKLGtYRG4NT3j+bUpKe05dHwMAC/1VCGzz2+vVzSeMiLWgqHNFBqE+?=
 =?us-ascii?Q?bZ4Il7H3G/EL241jGdkyhXWT6a2bTgvZD45BbxF6Eh4BzKsf3ZrUNYeWb+Rs?=
 =?us-ascii?Q?E81t2hk7YHMIn7ujb7+KDYAUrrLwJw9MSbFhAybym956BP8rdUQQEGh2z1+L?=
 =?us-ascii?Q?2kRoQpNz8w8WfkbXPTWoRwh8udGVk4E/nS4qlDbYVaT4cCMn+fgIW7c7WWlr?=
 =?us-ascii?Q?FDKva19tZgAGR7uLCCnMAGg5y2Arb++GH0vcpb07KQ5qWtGYxdbXLXvj+cQV?=
 =?us-ascii?Q?5wlmtoe8eS+dlMNNLbE=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:06:37.5148
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bf747ca1-ffb7-4408-451d-08de3933d8bd
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992D.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5866

In order to asist in reviewing/developing disabling domctl-op patch serie,
we will transiently make MGMT_HYPERCALLS def_bool. And it will become
optional at the last of domctl-op patch serie, where common/domctl.o's
building as a whole becomes dependent upon that setting.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v2 -> v3:
- new commit
---
v4 -> v5:
- Remove "bool xxx" is to actually remove prompt
---
 xen/common/Kconfig | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 6709c3c95c..7f7ed62f78 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -652,9 +652,8 @@ menu "Supported hypercall interfaces"
 	visible if EXPERT
 
 config MGMT_HYPERCALLS
-	bool "Enable privileged hypercalls for system management"
+	def_bool y
 	depends on !PV_SHIM_EXCLUSIVE
-	default y
 	help
 	  This option shall only be disabled on some dom0less systems, or
 	  PV shim on x86, to reduce Xen footprint via managing unnessary
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:06:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:06:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184900.1507222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuQa-0000AA-2s; Fri, 12 Dec 2025 04:06:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184900.1507222; Fri, 12 Dec 2025 04:06:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuQZ-00009r-Vf; Fri, 12 Dec 2025 04:06:47 +0000
Received: by outflank-mailman (input) for mailman id 1184900;
 Fri, 12 Dec 2025 04:06:46 +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
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuQY-0007Dl-92
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:06:46 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f80a5b74-d70f-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 05:06:44 +0100 (CET)
Received: from MN2PR13CA0030.namprd13.prod.outlook.com (2603:10b6:208:160::43)
 by SJ2PR12MB9088.namprd12.prod.outlook.com (2603:10b6:a03:565::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.10; Fri, 12 Dec
 2025 04:06:35 +0000
Received: from BL02EPF0002992E.namprd02.prod.outlook.com
 (2603:10b6:208:160:cafe::25) by MN2PR13CA0030.outlook.office365.com
 (2603:10b6:208:160::43) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.5 via Frontend Transport; Fri,
 12 Dec 2025 04:06:35 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0002992E.mail.protection.outlook.com (10.167.249.59) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:06:34 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:06:29 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f80a5b74-d70f-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=j+Bk5g1smFpuH+rsKRCmiSYqFmsh+XtoGPX8fzgGiVGOd36/4nq+0TLoJZeIJvqziSVKSP4k405Sy2Mq96A313o0721jNbSDmYXPV1P6yt6h1YV7umE8O0VtiNibBi6P9Kv/FvlYRlEdEuQEFqOERLDdrbG9lhQTD9w+WI5y6jLVd2pifj+HTkHqkAhOSCCoUsxOb/GVHct+DEdNKkrd2vi5mXBZRjtaUmPKjbinfCAzD7ai9erb3g9UBneDgphAkkMRqg3+6jOJ0UEcHIO/Ly9FMQSLRqENTuBxeEmCOx2NhVX+w4iFg3tj+UJbsz0rJk/LHTgsYCbaXB7jGujUOA==
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=8Z2BxFgH8/sr6mg9dw32KzPvjL6Qcc2zUqQTjqKG13o=;
 b=sBO4suMoI49zisoHJMoykfUh7A8QVB5tOlk0PcCV7UmKfl5ASD2dSL5ud9n19727YoA6G7fqKEQtcXze4iER1LCQkhkOM6nydY7Rjle/QMpvbVLRA9jFhhBX/Z/poXm6Tk+YcrMGeNCdQsHE3ZflxSXj2ExtiHUTMhHiLDKYMFcDIaI2w5SrEusLx0/0DSjo5xSV23vhWtSBMPN25JS3HoMD0ANlsJImb+yrotir5pb5S0RWXRhv8L3mZyAvPLjBv5+sTXXzIb7acsolJ3fUrHiB0LYTJ0ggisz4lYMTBhnnkMisnpLmYOw9svkVFLp/R6kmEr/DgZIwUe9NRhsE5w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8Z2BxFgH8/sr6mg9dw32KzPvjL6Qcc2zUqQTjqKG13o=;
 b=fDE4OBLLG/bgCYVlxyh1q1QrCUq2eCJXdosZ6tfVUc2y0LCFpK/8lUTg+AnsLQRus9nXAruOF+PivV1YCymWoCfgQFyDDz6pm0GRwzO1l0i8NLVOkWz9Tr/MQGkG5kB3dtvOytkn94fcdCwtFo8zRb2cxnYOLuroAZze29sgCSQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>, <xen-devel@dornerworks.com>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>, Nathan Studer
	<nathan.studer@dornerworks.com>, Stewart Hildebrand <stewart@stew.dk>, "Dario
 Faggioli" <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George
 Dunlap <gwd@xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Alistair Francis <alistair.francis@wdc.com>
Subject: [PATCH v5 04/24] xen/sysctl: replace CONFIG_SYSCTL with CONFIG_MGMT_HYPERCALLS
Date: Fri, 12 Dec 2025 12:01:49 +0800
Message-ID: <20251212040209.1970553-5-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992E:EE_|SJ2PR12MB9088:EE_
X-MS-Office365-Filtering-Correlation-Id: b63b8be6-5bda-4ec7-9a56-08de3933d702
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|7416014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?qKZIFlBeM21V+mfnklC5MKCQCBvgSOJL0cSg12P4SELXeOO19cPjT/tFQUxP?=
 =?us-ascii?Q?aUgzwolTup4aVKE/f/+mplSABerBsrqts1YlmwLkL9w8ZgQ46EZHJGel30YM?=
 =?us-ascii?Q?C/KCFjTOVmh/ycGqBchzR+RUd+d29CylYNSdo4GuszeNltk1Hy5sVlD0OxFP?=
 =?us-ascii?Q?b6FU0tCYRhAWiIiSNuGOEU8aGlts9BM8SBm2G3u5egvcGgUHfdXJ2csIYyfA?=
 =?us-ascii?Q?bBSQgjF2BKpUVNk0CcX6AJFn3rPozqZRXyeR9oJ6avMuwcXH+FZijU5TvYOj?=
 =?us-ascii?Q?urgOlMFs8RT+8yaXxbniMT0K791sJ5XOaQmFZ0NKj3gn2YGi2WPuBcI5Su+W?=
 =?us-ascii?Q?0rwjFCZy9W8ml6CWNT3crpg6UllhZ/WUGZ+u6Z4AvjKAk0QxhUeHXjEZiD7B?=
 =?us-ascii?Q?Qa3Ep8k6vW0o3xBXskkKOOkgotB1+2sERHqDRN38lzWDmcygbwuOleCAUmqy?=
 =?us-ascii?Q?3cUmHB2WpYVPG49T1+eRFNeYqqNP3Zh1zXlPP15lQq+erEHBe5Nuvd/L1tEJ?=
 =?us-ascii?Q?Skupv/3aSDBd4X1ScUyOXGshFg98/tNOWu377+CIDHxHia8h9lK1Vs5R/Q8y?=
 =?us-ascii?Q?erswauBbmJTXSGpZj9Fc5fFWU/8IVXWVsCEArs3cDrCHli0337JABXJF8i/t?=
 =?us-ascii?Q?IlVjLVPmE2j/BTqD+C0LswfaWLYJ9T6smVX64+gZaVQLq2wYNH9VOh3KYmhl?=
 =?us-ascii?Q?Pdlt+/hiM5bIDqclfldtV9TY5f2qm9+Y87Ihzc0sFkUvzNzrcB4UlaDZxEX9?=
 =?us-ascii?Q?vfwjIHx7vH8mYzfEQpT4ZiTN6ozDtyk/pLSjHitqfB77Lx4iJtj3NAVneynI?=
 =?us-ascii?Q?EcJXTZaMX5UKqryioo9oDvbllZQOVYzvZVpBOtdxv127iBo8INGFrmdrRqn8?=
 =?us-ascii?Q?7BPeKonqFtw1BI7ZSCgzP7VpftZ40NiYA+FTR/qseLQpObTrZcp5MsOmZt5q?=
 =?us-ascii?Q?yEfux3RfoTID+nmBVZVmFjSbP4mOY7XXpcKMNcc8KKI6Pq935mATXjkogRog?=
 =?us-ascii?Q?TH9zEERC+TI4HQ4HbMKwItoVsw7IOjSgxVCb1YtNBU88FAliTWWtUelpPJ4Q?=
 =?us-ascii?Q?Gaqe1ukw7qciqLou8bWjxKTBJMUZn1Y7oVy0WRSopVlfsUUojnpZLYAfGPpg?=
 =?us-ascii?Q?+J1oWMj2Ynv4z+m4rmUpPTu5zZBrUsgX0j0Qf/FkMtdvcFEP9f9BVWq0NYKX?=
 =?us-ascii?Q?7ynnA+GX6eWkG9sZ/UYa4K+guHdZVtf6tDI2w5e7QO5fyKg5NQKTVZoXCU5N?=
 =?us-ascii?Q?WritO1Wv1ckALMhSQtTopm8+b226EaQ4RY0TiWFAF7TE/J1txgVJDNjwPbIQ?=
 =?us-ascii?Q?DQhelY/sVsQlmbip3mu9XdJevUizBwIKhnIk7XE+xfPax3I5kEnlWvEmcnS8?=
 =?us-ascii?Q?kOF+252CGXuxT5GWQxdPC2j6Mgc3vGctdvoJLVPPGVJG6vSTdLZJXHw80EIq?=
 =?us-ascii?Q?3Nx/gcra5g4tH3OYZAKB7NVsBiREgIlIrsokWmHNV6nf+gq5UDO/bd4M6c9A?=
 =?us-ascii?Q?drVaHIum0DnCSorF3NezXDDCFLxad9fFESqv23hQBytp5hLn4M/mdAR1k5Hi?=
 =?us-ascii?Q?KN2+eKFuKCVeSS7SWnc=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(7416014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:06:34.6140
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b63b8be6-5bda-4ec7-9a56-08de3933d702
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9088

Rename all the CONFIG_SYSCTL into CONFIG_MGMT_HYPERCALLS to help provide a
single option to manage all unnecessary hypercalls, including
sysctl, domctl, etc, in dom0less system and PV shim mode, which could also
make it easier to support randconfigs.
While doing the replacement, we fix some bugs on xsm system:
- wrap the whole xsm function to avoid bringing unreachable codes when
MGMT_DOMCTL=n
- add missing wrapping in include/xsm/dummy.h

Suggested-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Reviewed-by: Juergen Gross <jgross@suse.com>
Acked-by: Stewart Hildebrand <stewart@stew.dk> #ARINC 653
Acked-by: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>
---
 xen/Kconfig.debug                     |  2 +-
 xen/arch/arm/Makefile                 |  2 +-
 xen/arch/riscv/stubs.c                |  4 ++--
 xen/arch/x86/Makefile                 |  2 +-
 xen/arch/x86/configs/pvshim_defconfig |  2 +-
 xen/arch/x86/psr.c                    | 26 +++++++++++++-------------
 xen/common/Kconfig                    | 15 ++++++++-------
 xen/common/Makefile                   |  2 +-
 xen/common/page_alloc.c               |  8 ++++----
 xen/common/perfc.c                    |  4 ++--
 xen/common/sched/arinc653.c           | 10 +++++-----
 xen/common/sched/core.c               |  6 +++---
 xen/common/sched/cpupool.c            | 16 ++++++++--------
 xen/common/sched/credit.c             |  6 +++---
 xen/common/sched/credit2.c            |  6 +++---
 xen/common/sched/private.h            |  4 ++--
 xen/common/spinlock.c                 |  4 ++--
 xen/drivers/char/console.c            |  4 ++--
 xen/include/hypercall-defs.c          |  4 ++--
 xen/include/xsm/dummy.h               |  6 ++++++
 xen/include/xsm/xsm.h                 | 24 +++++++++---------------
 xen/xsm/dummy.c                       |  6 +++---
 xen/xsm/flask/hooks.c                 | 22 +++++++++++-----------
 23 files changed, 93 insertions(+), 92 deletions(-)

diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index d900d926c5..a69615cd63 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -37,7 +37,7 @@ config SELF_TESTS
 
 config COVERAGE
 	bool "Code coverage support"
-	depends on SYSCTL && !LIVEPATCH
+	depends on MGMT_HYPERCALLS && !LIVEPATCH
 	select SUPPRESS_DUPLICATE_SYMBOL_WARNINGS if !ENFORCE_UNIQUE_SYMBOLS
 	help
 	  Enable code coverage support.
diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 7494a0f926..069e2c532e 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -51,7 +51,7 @@ obj-y += setup.o
 obj-y += shutdown.o
 obj-y += smp.o
 obj-y += smpboot.o
-obj-$(CONFIG_SYSCTL) += sysctl.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += sysctl.o
 obj-y += time.o
 obj-y += traps.o
 obj-y += vcpreg.o
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index fe7d85ee1d..cb19a83280 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -267,7 +267,7 @@ unsigned long raw_copy_from_guest(void *to, const void __user *from,
     BUG_ON("unimplemented");
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 /* sysctl.c */
 
 long arch_do_sysctl(struct xen_sysctl *sysctl,
@@ -280,7 +280,7 @@ void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
 {
     BUG_ON("unimplemented");
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /* p2m.c */
 
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 66ce5ad3d7..1e2ce8e72c 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -67,7 +67,7 @@ obj-y += smpboot.o
 obj-y += spec_ctrl.o
 obj-y += srat.o
 obj-y += string.o
-obj-$(CONFIG_SYSCTL) += sysctl.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += sysctl.o
 obj-y += time.o
 obj-y += traps-setup.o
 obj-y += traps.o
diff --git a/xen/arch/x86/configs/pvshim_defconfig b/xen/arch/x86/configs/pvshim_defconfig
index 24f4e4857d..d1db94df78 100644
--- a/xen/arch/x86/configs/pvshim_defconfig
+++ b/xen/arch/x86/configs/pvshim_defconfig
@@ -25,4 +25,4 @@ CONFIG_PDX_NONE=y
 # CONFIG_INTEL_IOMMU is not set
 # CONFIG_DEBUG is not set
 # CONFIG_GDBSX is not set
-# CONFIG_SYSCTL is not set
+# CONFIG_MGMT_HYPERCALLS is not set
diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c
index cce7020868..80ce5804b4 100644
--- a/xen/arch/x86/psr.c
+++ b/xen/arch/x86/psr.c
@@ -135,7 +135,7 @@ static const struct feat_props {
      */
     enum psr_type alt_type;
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     /* get_feat_info is used to return feature HW info through sysctl. */
     bool (*get_feat_info)(const struct feat_node *feat,
                           uint32_t data[], unsigned int array_len);
@@ -422,7 +422,7 @@ static bool mba_init_feature(const struct cpuid_leaf *regs,
     return true;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static bool cf_check cat_get_feat_info(
     const struct feat_node *feat, uint32_t data[], unsigned int array_len)
 {
@@ -435,7 +435,7 @@ static bool cf_check cat_get_feat_info(
 
     return true;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /* L3 CAT props */
 static void cf_check l3_cat_write_msr(
@@ -448,14 +448,14 @@ static const struct feat_props l3_cat_props = {
     .cos_num = 1,
     .type[0] = PSR_TYPE_L3_CBM,
     .alt_type = PSR_TYPE_UNKNOWN,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .get_feat_info = cat_get_feat_info,
 #endif
     .write_msr = l3_cat_write_msr,
     .sanitize = cat_check_cbm,
 };
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 /* L3 CDP props */
 static bool cf_check l3_cdp_get_feat_info(
     const struct feat_node *feat, uint32_t data[], uint32_t array_len)
@@ -467,7 +467,7 @@ static bool cf_check l3_cdp_get_feat_info(
 
     return true;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static void cf_check l3_cdp_write_msr(
     unsigned int cos, uint32_t val, enum psr_type type)
@@ -483,7 +483,7 @@ static const struct feat_props l3_cdp_props = {
     .type[0] = PSR_TYPE_L3_DATA,
     .type[1] = PSR_TYPE_L3_CODE,
     .alt_type = PSR_TYPE_L3_CBM,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .get_feat_info = l3_cdp_get_feat_info,
 #endif
     .write_msr = l3_cdp_write_msr,
@@ -501,14 +501,14 @@ static const struct feat_props l2_cat_props = {
     .cos_num = 1,
     .type[0] = PSR_TYPE_L2_CBM,
     .alt_type = PSR_TYPE_UNKNOWN,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .get_feat_info = cat_get_feat_info,
 #endif
     .write_msr = l2_cat_write_msr,
     .sanitize = cat_check_cbm,
 };
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 /* MBA props */
 static bool cf_check mba_get_feat_info(
     const struct feat_node *feat, uint32_t data[], unsigned int array_len)
@@ -523,7 +523,7 @@ static bool cf_check mba_get_feat_info(
 
     return true;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static void cf_check mba_write_msr(
     unsigned int cos, uint32_t val, enum psr_type type)
@@ -561,7 +561,7 @@ static const struct feat_props mba_props = {
     .cos_num = 1,
     .type[0] = PSR_TYPE_MBA_THRTL,
     .alt_type = PSR_TYPE_UNKNOWN,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .get_feat_info = mba_get_feat_info,
 #endif
     .write_msr = mba_write_msr,
@@ -826,7 +826,7 @@ static struct psr_socket_info *get_socket_info(unsigned int socket)
     return socket_info + socket;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 int psr_get_info(unsigned int socket, enum psr_type type,
                  uint32_t data[], unsigned int array_len)
 {
@@ -858,7 +858,7 @@ int psr_get_info(unsigned int socket, enum psr_type type,
 
     return -EINVAL;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 int psr_get_val(struct domain *d, unsigned int socket,
                 uint32_t *val, enum psr_type type)
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 218ac3d549..6709c3c95c 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -508,7 +508,7 @@ config CRYPTO
 config LIVEPATCH
 	bool "Live patching support"
 	default X86
-	depends on "$(XEN_HAS_BUILD_ID)" = "y" && SYSCTL && HAS_VMAP
+	depends on "$(XEN_HAS_BUILD_ID)" = "y" && MGMT_HYPERCALLS && HAS_VMAP
 	select CC_SPLIT_SECTIONS
 	help
 	  Allows a running Xen hypervisor to be dynamically patched using
@@ -600,7 +600,7 @@ config DTB_FILE
 config TRACEBUFFER
 	bool "Enable tracing infrastructure" if EXPERT
 	default y
-	depends on SYSCTL
+	depends on MGMT_HYPERCALLS
 	help
 	  Enable tracing infrastructure and pre-defined tracepoints within Xen.
 	  This will allow live information about Xen's execution and performance
@@ -651,19 +651,20 @@ config SYSTEM_SUSPEND
 menu "Supported hypercall interfaces"
 	visible if EXPERT
 
-config SYSCTL
-	bool "Enable sysctl hypercall"
+config MGMT_HYPERCALLS
+	bool "Enable privileged hypercalls for system management"
 	depends on !PV_SHIM_EXCLUSIVE
 	default y
 	help
 	  This option shall only be disabled on some dom0less systems, or
-	  PV shim on x86, to reduce Xen footprint.
+	  PV shim on x86, to reduce Xen footprint via managing unnessary
+	  hypercalls, like sysctl, etc.
 
 endmenu
 
 config PM_OP
 	bool "Enable Performance Management Operation"
-	depends on ACPI && HAS_CPUFREQ && SYSCTL
+	depends on ACPI && HAS_CPUFREQ && MGMT_HYPERCALLS
 	default y
 	help
 	  This option shall enable userspace performance management control
@@ -671,7 +672,7 @@ config PM_OP
 
 config PM_STATS
 	bool "Enable Performance Management Statistics"
-	depends on ACPI && HAS_CPUFREQ && SYSCTL
+	depends on ACPI && HAS_CPUFREQ && MGMT_HYPERCALLS
 	default y
 	help
 	  Enable collection of performance management statistics to aid in
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 8486c0b510..4353ea59a4 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -51,7 +51,7 @@ obj-y += spinlock.o
 obj-$(CONFIG_STACK_PROTECTOR) += stack-protector.o
 obj-y += stop_machine.o
 obj-y += symbols.o
-obj-$(CONFIG_SYSCTL) += sysctl.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += sysctl.o
 obj-y += tasklet.o
 obj-y += time.o
 obj-y += timer.o
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 1f67b88a89..26615d1e97 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -602,7 +602,7 @@ out:
     return ret;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 void get_outstanding_claims(uint64_t *free_pages, uint64_t *outstanding_pages)
 {
     spin_lock(&heap_lock);
@@ -610,7 +610,7 @@ void get_outstanding_claims(uint64_t *free_pages, uint64_t *outstanding_pages)
     *free_pages = avail_heap_pages(MEMZONE_XEN + 1, NR_ZONES - 1, -1);
     spin_unlock(&heap_lock);
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static bool __read_mostly first_node_initialised;
 #ifndef CONFIG_SEPARATE_XENHEAP
@@ -1788,7 +1788,7 @@ int offline_page(mfn_t mfn, int broken, uint32_t *status)
     return 0;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 /*
  * Online the memory.
  *   The caller should make sure end_pfn <= max_page,
@@ -1873,7 +1873,7 @@ int query_page_offline(mfn_t mfn, uint32_t *status)
 
     return 0;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /*
  * This function should only be called with valid pages from the same NUMA
diff --git a/xen/common/perfc.c b/xen/common/perfc.c
index 0f3b89af2c..97a94ef1fc 100644
--- a/xen/common/perfc.c
+++ b/xen/common/perfc.c
@@ -149,7 +149,7 @@ void cf_check perfc_reset(unsigned char key)
     }
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static struct xen_sysctl_perfc_desc perfc_d[NR_PERFCTRS];
 static xen_sysctl_perfc_val_t *perfc_vals;
 static unsigned int      perfc_nbr_vals;
@@ -266,7 +266,7 @@ int perfc_control(struct xen_sysctl_perfc_op *pc)
 
     return rc;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /*
  * Local variables:
diff --git a/xen/common/sched/arinc653.c b/xen/common/sched/arinc653.c
index 8a4f4259d8..7d6c40d800 100644
--- a/xen/common/sched/arinc653.c
+++ b/xen/common/sched/arinc653.c
@@ -220,7 +220,7 @@ static void update_schedule_units(const struct scheduler *ops)
                       SCHED_PRIV(ops)->schedule[i].unit_id);
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 /**
  * This function is called by the adjust_global scheduler hook to put
  * in place a new ARINC653 schedule.
@@ -335,7 +335,7 @@ arinc653_sched_get(
 
     return 0;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /**************************************************************************
  * Scheduler callback functions                                           *
@@ -661,7 +661,7 @@ a653_switch_sched(struct scheduler *new_ops, unsigned int cpu,
     return &sr->_lock;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 /**
  * Xen scheduler callback function to perform a global (not domain-specific)
  * adjustment. It is used by the ARINC 653 scheduler to put in place a new
@@ -701,7 +701,7 @@ a653sched_adjust_global(const struct scheduler *ops,
 
     return rc;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /**
  * This structure defines our scheduler for Xen.
@@ -736,7 +736,7 @@ static const struct scheduler sched_arinc653_def = {
     .switch_sched   = a653_switch_sched,
 
     .adjust         = NULL,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .adjust_global  = a653sched_adjust_global,
 #endif
 
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index ec2448cfa1..88150432c3 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -2064,7 +2064,7 @@ long do_set_timer_op(s_time_t timeout)
     return 0;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 /* scheduler_id - fetch ID of current scheduler */
 int scheduler_id(void)
 {
@@ -2107,7 +2107,7 @@ long sched_adjust(struct domain *d, struct xen_domctl_scheduler_op *op)
     return ret;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 long sched_adjust_global(struct xen_sysctl_scheduler_op *op)
 {
     struct cpupool *pool;
@@ -2136,7 +2136,7 @@ long sched_adjust_global(struct xen_sysctl_scheduler_op *op)
 
     return rc;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static void vcpu_periodic_timer_work_locked(struct vcpu *v)
 {
diff --git a/xen/common/sched/cpupool.c b/xen/common/sched/cpupool.c
index f5459c2779..51ba3cb43d 100644
--- a/xen/common/sched/cpupool.c
+++ b/xen/common/sched/cpupool.c
@@ -241,12 +241,12 @@ struct cpupool *cpupool_get_by_id(unsigned int poolid)
     return __cpupool_get_by_id(poolid, true);
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static struct cpupool *cpupool_get_next_by_id(unsigned int poolid)
 {
     return __cpupool_get_by_id(poolid, false);
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 void cpupool_put(struct cpupool *pool)
 {
@@ -354,7 +354,7 @@ static struct cpupool *cpupool_create(unsigned int poolid,
 
     return ERR_PTR(ret);
 }
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 /*
  * destroys the given cpupool
  * returns 0 on success, 1 else
@@ -382,7 +382,7 @@ static int cpupool_destroy(struct cpupool *c)
     debugtrace_printk("cpupool_destroy(pool=%u)\n", c->cpupool_id);
     return 0;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /*
  * Move domain to another cpupool
@@ -572,7 +572,7 @@ static int cpupool_unassign_cpu_start(struct cpupool *c, unsigned int cpu)
     return ret;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static long cf_check cpupool_unassign_cpu_helper(void *info)
 {
     struct cpupool *c = info;
@@ -638,7 +638,7 @@ static int cpupool_unassign_cpu(struct cpupool *c, unsigned int cpu)
     }
     return continue_hypercall_on_cpu(work_cpu, cpupool_unassign_cpu_helper, c);
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /*
  * add a new domain to a cpupool
@@ -816,7 +816,7 @@ static void cpupool_cpu_remove_forced(unsigned int cpu)
     rcu_read_unlock(&sched_res_rculock);
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 /*
  * do cpupool related sysctl operations
  */
@@ -982,7 +982,7 @@ int cpupool_do_sysctl(struct xen_sysctl_cpupool_op *op)
 
     return ret;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 unsigned int cpupool_get_id(const struct domain *d)
 {
diff --git a/xen/common/sched/credit.c b/xen/common/sched/credit.c
index e9a91d11c3..e8fef6fb51 100644
--- a/xen/common/sched/credit.c
+++ b/xen/common/sched/credit.c
@@ -1256,7 +1256,7 @@ __csched_set_tslice(struct csched_private *prv, unsigned int timeslice_ms)
     prv->credit = prv->credits_per_tslice * prv->ncpus;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check
 csched_sys_cntl(const struct scheduler *ops,
                         struct xen_sysctl_scheduler_op *sc)
@@ -1299,7 +1299,7 @@ csched_sys_cntl(const struct scheduler *ops,
     out:
     return rc;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static void *cf_check
 csched_alloc_domdata(const struct scheduler *ops, struct domain *dom)
@@ -2290,7 +2290,7 @@ static const struct scheduler sched_credit_def = {
 
     .adjust         = csched_dom_cntl,
     .adjust_affinity= csched_aff_cntl,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .adjust_global  = csched_sys_cntl,
 #endif
 
diff --git a/xen/common/sched/credit2.c b/xen/common/sched/credit2.c
index 75316d42b7..307e63ebd8 100644
--- a/xen/common/sched/credit2.c
+++ b/xen/common/sched/credit2.c
@@ -3131,7 +3131,7 @@ csched2_aff_cntl(const struct scheduler *ops, struct sched_unit *unit,
         __clear_bit(__CSFLAG_pinned, &svc->flags);
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check csched2_sys_cntl(
     const struct scheduler *ops, struct xen_sysctl_scheduler_op *sc)
 {
@@ -3163,7 +3163,7 @@ static int cf_check csched2_sys_cntl(
 
     return 0;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static void *cf_check
 csched2_alloc_domdata(const struct scheduler *ops, struct domain *dom)
@@ -4248,7 +4248,7 @@ static const struct scheduler sched_credit2_def = {
 
     .adjust         = csched2_dom_cntl,
     .adjust_affinity= csched2_aff_cntl,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .adjust_global  = csched2_sys_cntl,
 #endif
 
diff --git a/xen/common/sched/private.h b/xen/common/sched/private.h
index d6884550cd..b7ff67200b 100644
--- a/xen/common/sched/private.h
+++ b/xen/common/sched/private.h
@@ -356,7 +356,7 @@ struct scheduler {
                                     struct sched_unit *unit,
                                     const struct cpumask *hard,
                                     const struct cpumask *soft);
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     int          (*adjust_global)  (const struct scheduler *ops,
                                     struct xen_sysctl_scheduler_op *sc);
 #endif
@@ -512,7 +512,7 @@ static inline int sched_adjust_dom(const struct scheduler *s, struct domain *d,
     return s->adjust ? s->adjust(s, d, op) : 0;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int sched_adjust_cpupool(const struct scheduler *s,
                                        struct xen_sysctl_scheduler_op *op)
 {
diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
index 0389293b09..9d08159615 100644
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -690,7 +690,7 @@ void cf_check spinlock_profile_reset(unsigned char key)
     spinlock_profile_iterate(spinlock_profile_reset_elem, NULL);
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 typedef struct {
     struct xen_sysctl_lockprof_op *pc;
     int                      rc;
@@ -750,7 +750,7 @@ int spinlock_profile_control(struct xen_sysctl_lockprof_op *pc)
 
     return rc;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 void _lock_profile_register_struct(
     int32_t type, struct lock_profile_qhead *qhead, int32_t idx)
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index a996051035..baed7121c3 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -371,7 +371,7 @@ static void conring_puts(const char *str, size_t len)
         conringc = conringp - conring_size;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 long read_console_ring(struct xen_sysctl_readconsole *op)
 {
     XEN_GUEST_HANDLE_PARAM(char) str;
@@ -414,7 +414,7 @@ long read_console_ring(struct xen_sysctl_readconsole *op)
 
     return 0;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 
 /*
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index cef08eeec1..4840de805b 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -194,7 +194,7 @@ kexec_op(unsigned long op, void *uarg)
 #ifdef CONFIG_IOREQ_SERVER
 dm_op(domid_t domid, unsigned int nr_bufs, xen_dm_op_buf_t *bufs)
 #endif
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 sysctl(xen_sysctl_t *u_sysctl)
 #endif
 #if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
@@ -277,7 +277,7 @@ physdev_op                         compat   do       hvm      hvm      do_arm
 #ifdef CONFIG_HVM
 hvm_op                             do       do       do       do       do
 #endif
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 sysctl                             do       do       do       do       do
 #endif
 #ifndef CONFIG_PV_SHIM_EXCLUSIVE
diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index e801dbcdba..df8d737c18 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -148,11 +148,13 @@ static XSM_INLINE int cf_check xsm_domctl_scheduler_op(
     return xsm_default_action(action, current->domain, d);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static XSM_INLINE int cf_check xsm_sysctl_scheduler_op(XSM_DEFAULT_ARG int cmd)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, NULL);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static XSM_INLINE int cf_check xsm_set_target(
     XSM_DEFAULT_ARG struct domain *d, struct domain *e)
@@ -180,6 +182,7 @@ static XSM_INLINE int cf_check xsm_domctl(
     }
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static XSM_INLINE int cf_check xsm_sysctl(XSM_DEFAULT_ARG int cmd)
 {
     XSM_ASSERT_ACTION(XSM_PRIV);
@@ -191,6 +194,7 @@ static XSM_INLINE int cf_check xsm_readconsole(XSM_DEFAULT_ARG uint32_t clear)
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, NULL);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static XSM_INLINE int cf_check xsm_alloc_security_domain(struct domain *d)
 {
@@ -485,11 +489,13 @@ static XSM_INLINE int cf_check xsm_resource_setup_misc(XSM_DEFAULT_VOID)
     return xsm_default_action(action, current->domain, NULL);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static XSM_INLINE int cf_check xsm_page_offline(XSM_DEFAULT_ARG uint32_t cmd)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, NULL);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static XSM_INLINE int cf_check xsm_hypfs_op(XSM_DEFAULT_VOID)
 {
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 2d831d7745..d20d4ae657 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -57,13 +57,15 @@ struct xsm_ops {
     int (*domain_create)(struct domain *d, uint32_t ssidref);
     int (*getdomaininfo)(struct domain *d);
     int (*domctl_scheduler_op)(struct domain *d, int op);
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     int (*sysctl_scheduler_op)(int op);
 #endif
     int (*set_target)(struct domain *d, struct domain *e);
     int (*domctl)(struct domain *d, unsigned int cmd, uint32_t ssidref);
+#ifdef CONFIG_MGMT_HYPERCALLS
     int (*sysctl)(int cmd);
     int (*readconsole)(uint32_t clear);
+#endif
 
     int (*evtchn_unbound)(struct domain *d, struct evtchn *chn, domid_t id2);
     int (*evtchn_interdomain)(struct domain *d1, struct evtchn *chn1,
@@ -140,7 +142,7 @@ struct xsm_ops {
     int (*resource_setup_gsi)(int gsi);
     int (*resource_setup_misc)(void);
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     int (*page_offline)(uint32_t cmd);
 #endif
     int (*hypfs_op)(void);
@@ -246,7 +248,7 @@ static inline int xsm_domctl_scheduler_op(
     return alternative_call(xsm_ops.domctl_scheduler_op, d, cmd);
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int xsm_sysctl_scheduler_op(xsm_default_t def, int cmd)
 {
     return alternative_call(xsm_ops.sysctl_scheduler_op, cmd);
@@ -265,23 +267,17 @@ static inline int xsm_domctl(xsm_default_t def, struct domain *d,
     return alternative_call(xsm_ops.domctl, d, cmd, ssidref);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int xsm_sysctl(xsm_default_t def, int cmd)
 {
-#ifdef CONFIG_SYSCTL
     return alternative_call(xsm_ops.sysctl, cmd);
-#else
-    return -EOPNOTSUPP;
-#endif
 }
 
 static inline int xsm_readconsole(xsm_default_t def, uint32_t clear)
 {
-#ifdef CONFIG_SYSCTL
     return alternative_call(xsm_ops.readconsole, clear);
-#else
-    return -EOPNOTSUPP;
-#endif
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static inline int xsm_evtchn_unbound(
     xsm_default_t def, struct domain *d1, struct evtchn *chn, domid_t id2)
@@ -601,14 +597,12 @@ static inline int xsm_resource_setup_misc(xsm_default_t def)
     return alternative_call(xsm_ops.resource_setup_misc);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int xsm_page_offline(xsm_default_t def, uint32_t cmd)
 {
-#ifdef CONFIG_SYSCTL
     return alternative_call(xsm_ops.page_offline, cmd);
-#else
-    return -EOPNOTSUPP;
-#endif
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static inline int xsm_hypfs_op(xsm_default_t def)
 {
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 96dc82ac2e..2c70b979d6 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -19,12 +19,12 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .domain_create                 = xsm_domain_create,
     .getdomaininfo                 = xsm_getdomaininfo,
     .domctl_scheduler_op           = xsm_domctl_scheduler_op,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .sysctl_scheduler_op           = xsm_sysctl_scheduler_op,
 #endif
     .set_target                    = xsm_set_target,
     .domctl                        = xsm_domctl,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .sysctl                        = xsm_sysctl,
     .readconsole                   = xsm_readconsole,
 #endif
@@ -98,7 +98,7 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .resource_setup_gsi            = xsm_resource_setup_gsi,
     .resource_setup_misc           = xsm_resource_setup_misc,
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .page_offline                  = xsm_page_offline,
 #endif
     .hypfs_op                      = xsm_hypfs_op,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index a43cd361a2..490823913e 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -626,7 +626,7 @@ static int cf_check flask_domctl_scheduler_op(struct domain *d, int op)
     }
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check flask_sysctl_scheduler_op(int op)
 {
     switch ( op )
@@ -641,7 +641,7 @@ static int cf_check flask_sysctl_scheduler_op(int op)
         return avc_unknown_permission("sysctl_scheduler_op", op);
     }
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static int cf_check flask_set_target(struct domain *d, struct domain *t)
 {
@@ -858,7 +858,7 @@ static int cf_check flask_domctl(struct domain *d, unsigned int cmd,
     }
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check flask_sysctl(int cmd)
 {
     switch ( cmd )
@@ -946,7 +946,7 @@ static int cf_check flask_readconsole(uint32_t clear)
 
     return domain_has_xen(current->domain, perms);
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static inline uint32_t resource_to_perm(uint8_t access)
 {
@@ -1203,12 +1203,12 @@ static int cf_check flask_resource_unplug_core(void)
     return avc_current_has_perm(SECINITSID_DOMXEN, SECCLASS_RESOURCE, RESOURCE__UNPLUG, NULL);
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int flask_resource_use_core(void)
 {
     return avc_current_has_perm(SECINITSID_DOMXEN, SECCLASS_RESOURCE, RESOURCE__USE, NULL);
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static int cf_check flask_resource_plug_pci(uint32_t machine_bdf)
 {
@@ -1273,7 +1273,7 @@ static int cf_check flask_resource_setup_misc(void)
     return avc_current_has_perm(SECINITSID_XEN, SECCLASS_RESOURCE, RESOURCE__SETUP, NULL);
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int cf_check flask_page_offline(uint32_t cmd)
 {
     switch ( cmd )
@@ -1288,7 +1288,7 @@ static inline int cf_check flask_page_offline(uint32_t cmd)
         return avc_unknown_permission("page_offline", cmd);
     }
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static inline int cf_check flask_hypfs_op(void)
 {
@@ -1884,12 +1884,12 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .domain_create = flask_domain_create,
     .getdomaininfo = flask_getdomaininfo,
     .domctl_scheduler_op = flask_domctl_scheduler_op,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .sysctl_scheduler_op = flask_sysctl_scheduler_op,
 #endif
     .set_target = flask_set_target,
     .domctl = flask_domctl,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .sysctl = flask_sysctl,
     .readconsole = flask_readconsole,
 #endif
@@ -1951,7 +1951,7 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .resource_setup_gsi = flask_resource_setup_gsi,
     .resource_setup_misc = flask_resource_setup_misc,
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .page_offline = flask_page_offline,
 #endif
     .hypfs_op = flask_hypfs_op,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:06:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:06:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184901.1507225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuQa-0000Du-BJ; Fri, 12 Dec 2025 04:06:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184901.1507225; Fri, 12 Dec 2025 04:06:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuQa-0000D3-7D; Fri, 12 Dec 2025 04:06:48 +0000
Received: by outflank-mailman (input) for mailman id 1184901;
 Fri, 12 Dec 2025 04:06:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuQY-0007SS-SA
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:06:46 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f86857ee-d70f-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 05:06:45 +0100 (CET)
Received: from MN2PR15CA0056.namprd15.prod.outlook.com (2603:10b6:208:237::25)
 by MN0PR12MB5905.namprd12.prod.outlook.com (2603:10b6:208:379::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.10; Fri, 12 Dec
 2025 04:06:40 +0000
Received: from BL02EPF0002992A.namprd02.prod.outlook.com
 (2603:10b6:208:237:cafe::6a) by MN2PR15CA0056.outlook.office365.com
 (2603:10b6:208:237::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.9 via Frontend Transport; Fri,
 12 Dec 2025 04:06:40 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0002992A.mail.protection.outlook.com (10.167.249.55) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:06:40 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:06:37 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f86857ee-d70f-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LkBDPd0DrInEZIiMaTSfRuvDKpsOIKzMdm4NphF7pR3oMV17ml4lsXsiuvxNQXwqE8f/ziAfp/ZUYWqkEVUc69eiNHLNUzL6SPPFqCgxMpNoF8jMijv5Rmi+NWvwGCCgdcYp5RmcfiHn/83E8+x68KNoNBWbCZIvC3TpYrno4d7Ji/gSp2dtctLvhMZMzukPRW5iyKN3aNI8ODJD5TPPbXMN0B7XOZU9M4aiz3IpYdsiZwcHyblCq4WMk2K/h+s++p6lkXAF6KqmNKewXza1pJGfzmhbTrRYHLMUzUQeBhJTZBUFeXJT8WHdINoV70SykLZyU0eh2BzjPOW7fMM6Ng==
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=HP0m5fEJkd3B7Qh6DPpCoP4ZtIZdbWL+1PtIZr2jEUk=;
 b=OwsdefG2j7Km19KVSBORyTs6cZqwU+QZizhjiuXaPLj/34xI+WQpCFAFzz2/9c9mEcLQHpOASImbKWn1C1QcIkRRyJtuWLQjFoBz21sRWoAmFlS90C0nhreaC7BAC7QfRJHqOalwgJHmOqKZlLJYATpYPH7Etl3Fo6hH/cfDBQvGWyse6EALAgZkCGrPIhP5z/ZFnWgA3IOU4fgCtvwx5L7LmNu++ekUEhU0pS+NxCWgLQ7CUsf5Z+pmMH1VwRU8lV78yMEblqFF0y+2bFG+NBpEMiwDiZxtcCpyyAQCd/51OcKJHdH0QEfzgv/Tt6jvfJQE+urz/y0Pk0Vl4dz4mQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HP0m5fEJkd3B7Qh6DPpCoP4ZtIZdbWL+1PtIZr2jEUk=;
 b=kQlNjhkfEiL59HQQ7uX4P1UU6jBrdRVBI62UtC4VkVTnhElfOghbwZZmcBmTQNmujRKcWvyZHi5KAss0xBOGY7FUyMTTMPPYFFFp5if4klFG54v5XpWpkCKfPHNV+VfYd0X14EFd5xCqoicQ71K91xtf5KycQz/G3wIp3IC2Qtw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: [PATCH v5 06/24] xen/vm_event: make VM_EVENT depend on CONFIG_MGMT_HYPERCALLS
Date: Fri, 12 Dec 2025 12:01:51 +0800
Message-ID: <20251212040209.1970553-7-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992A:EE_|MN0PR12MB5905:EE_
X-MS-Office365-Filtering-Correlation-Id: bae88c4b-a625-4fff-c781-08de3933da6b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?Hn4y3k0UCm1t6sEcbTQdXs//MY3R7Qtnfl5LpFFqxYXeG7PgnNNUU4wnxVaO?=
 =?us-ascii?Q?THzj7Bq0pX0aBrSBa0KJYTsaRONTF1jcFqn+Sbd0+lIwxG/PA2qhi9/z+PT/?=
 =?us-ascii?Q?kLAZRiY4SzytkF+hKZ0Yq/p4VN51q1uYaaXD/XofIqK2NpUVvF2zn+qVOLTw?=
 =?us-ascii?Q?T150pshWWiae+nZXGuIUN4UecrXezEpsoN+fnvXRowiVjd69h/q9eisY90E/?=
 =?us-ascii?Q?vl2ia0X5I9RRfrcIZTBPzfprQzid2hUKSHWu3VjSF2ckmwHfuI7t/EQCaYyL?=
 =?us-ascii?Q?qX9jOuXiiImSOE+RN8ogqq3fRCH13qozJYqHNHAl9aguw06GdbZ7C6q7Opt0?=
 =?us-ascii?Q?SKXn6MlqeZ804aoLQfoHJac2qWruUPE57h0typlMuxPTmPfRSvmU4++mw2yq?=
 =?us-ascii?Q?O0Zmsl0ycWjDx0oVSd+ZEy2CILNZLxEfcdDmQHb1zKsWKOOMIdHGRECwivCV?=
 =?us-ascii?Q?Saag2H5u8h6wZrPpRstiHrX0PRwjjOzfKmmC1ebFkBSq+sjMyMZUDdEpbfcD?=
 =?us-ascii?Q?nTmlaMzQoNwNktJ6Ulz65MFU0goJFPDMU8hn3MWSCV1OJnuqZOJ90Q/mUEL5?=
 =?us-ascii?Q?WjYrqy2dvIewjgcgtN5j2cQ3qm8zt9SweELn88xHipLc9LAqvXR1rcfRpmjp?=
 =?us-ascii?Q?szbWPXn9xp7Mif9TntwmaEnJrQscX2TMfnKhPnj23cbmR2ceBSRsnIczCqcn?=
 =?us-ascii?Q?UxMVEKC5/qMBoCHMsjVFQb/2SYbetagZ8735kHdi7U/svX+DsuzCuZS8CFXl?=
 =?us-ascii?Q?RUJ8tKOJWQtD6Yq7X5VlI3yIZhCQC57aMzBcMP45mQVO38KpYDo/LfOA1LEE?=
 =?us-ascii?Q?i/L/uGePIA/s5pGS3Eit1c4FetBciu+nNz1HKi4qz/PCRgYzys4BLkIC8i5j?=
 =?us-ascii?Q?JMZgDyN/PexEsezmhC+2dwEoM+QYK1mdVSiH13oic4gH1Cx8o0xrkS+wfDnJ?=
 =?us-ascii?Q?WxX6n+J5t1PisGJxWjFVlXiu/G64rUDs5MhTGbF4jtKSDL7A+zvL0n0IW4IC?=
 =?us-ascii?Q?24RH1lIRqyendUDCrl8R1XCBl+8gLkJfWDOxdopHkTp0nYgdlzbBgQOvMEW0?=
 =?us-ascii?Q?sfhCo+IKnmLLyXEt4Dgb5wuJne4T42kn5xZC9jyYVS7JIH2HhP4ntCU8V37z?=
 =?us-ascii?Q?X1cuJMqpW6unKmo5oTpHtcxS1+vSn/icoxiH6qQnkketDs5RnxsTYAxSYjYm?=
 =?us-ascii?Q?yI71R1sjSymCWE+2TwDIa5WHTQX77SzODPCD5NfWb3u9VJCKAkUbg/IgnIEk?=
 =?us-ascii?Q?V0PyAfL0ZB+h1yhTxHwO/8qYh9kOGflZASWPSmWlfi8Kophkr0f2N1Gcihvz?=
 =?us-ascii?Q?xuYYJIcl7xV/7nb5tXdKK0XKbol3neJ/aFyBzbcuzrPVYHetlgyCDJru78+Q?=
 =?us-ascii?Q?5DCdszniMCyPzigZ4Ba2i9PwVdn+Iu3HLwvs5S+PDBjeBjBPs/Do1K8JPu/3?=
 =?us-ascii?Q?MN/Jnhs8dGS7Y/LoNbxnVJmOLvAIzSkadH+k82Wn3EdII1LxK7Ttu8j25PGr?=
 =?us-ascii?Q?xGfdm2W7zETujWK0x1xgmjxx8tGGlwfSVgEz6NWNTKDwUbuKXIQLg8q4Iypv?=
 =?us-ascii?Q?FGBvixYYPmb/fP2c6KY=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:06:40.3381
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bae88c4b-a625-4fff-c781-08de3933da6b
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992A.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5905

VM event could only be enabled/disabled via vm_event domctl-op, so
CONFIG_VM_EVENT shall depend on CONFIG_MGMT_HYPERCALLS

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
v1 -> v2:
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
---
 xen/common/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 7f7ed62f78..2914508a8f 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -175,7 +175,7 @@ config LIBFDT
 
 config VM_EVENT
 	bool "Memory Access and VM events"
-	depends on HVM
+	depends on HVM && MGMT_HYPERCALLS
 	default X86
 	help
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:06:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:06:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184902.1507242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuQc-0000gJ-2d; Fri, 12 Dec 2025 04:06:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184902.1507242; Fri, 12 Dec 2025 04:06:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuQb-0000g6-TP; Fri, 12 Dec 2025 04:06:49 +0000
Received: by outflank-mailman (input) for mailman id 1184902;
 Fri, 12 Dec 2025 04:06:49 +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
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuQa-0007Dl-Vv
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:06:48 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fa09c7b2-d70f-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 05:06:48 +0100 (CET)
Received: from BL0PR02CA0015.namprd02.prod.outlook.com (2603:10b6:207:3c::28)
 by LV3PR12MB9437.namprd12.prod.outlook.com (2603:10b6:408:21d::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.9; Fri, 12 Dec
 2025 04:06:43 +0000
Received: from BL02EPF00029929.namprd02.prod.outlook.com
 (2603:10b6:207:3c:cafe::9e) by BL0PR02CA0015.outlook.office365.com
 (2603:10b6:207:3c::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.8 via Frontend Transport; Fri,
 12 Dec 2025 04:06:45 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF00029929.mail.protection.outlook.com (10.167.249.54) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:06:43 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:06:40 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fa09c7b2-d70f-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QGgh36HewgveIhSJU++TcdjVKNraelM3k76wzNfO8TBp0Ze3IEi8gmsaHHnNRk2hIfryPzJEfx3VRGabfwMniRtibZigKM03XwzTDZ4CqZWubcSZy/U2y/+gXbsoH4rhixRW7yLshNGTaQ9GqY1X5Q78VYyuhmiz0FSjvhkl4lVBHRzIJ0sKJ4aoMEsLveropRuZW39cZhu1H7MInPBTOTs7yUylAkcdXmmz7nDeBnYTjicyUal5mly4UQYQzZIVq0ywcYOQ2Gydlyf+ph8mPsbIwmqjz4bUyK5pVW3Io3I4EDFRNM4VyNoKZavGBwvsszTTSKSi0XZ+bVHL4uizBg==
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=zSnQFrn0+BNHOUVlVgs7xAwawlO9+RHttRTFHT2TiAk=;
 b=FybDXFltopW2HQ0CAbfhsT/jfWTIipOmoNZEwiyhrXrM3FjCeK838nyPEE85yiyo6oszQjBw+yDWLg79G+RPV4oSgpijatynQk3ylMH+zbX3aIw5eP9UdAJ2BpWZCZIFxD0MK3ZNouFTYW4VjA2Kv8c4booXEcxZT3hIvkno6K3FXDjGJQYCvxpT28hL82tVwHWgqri3/FPX5A4UQMB5z6RI6Vgc8yCE4TWyaIw1FHKaUcEfpLrqfqKPlZJgl736f/AZUCFy8bz5IPYsDBtVsR2wIuP9A7JdJX1+kaPncLk2sUbPLY5QhL9o7jGizYOc+Bd84xDNMRbnr+5jIqcvOQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zSnQFrn0+BNHOUVlVgs7xAwawlO9+RHttRTFHT2TiAk=;
 b=RaK6Kwizq+AaPl2RY3oggT0922Y0C/zu+BYVaekc1+X8rqtIbkEEG3/cnb0ofcSxnigrvgoaVCe6hnKSn0HTFB3/RoP4bPQJmUX53zh8lldGlCZ8j7CIhja3v8C6lDX6LQ2I7HXeWdh9ppKMmy/SZNF5zb0pmFX9mvsRjO/RbQ0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: [PATCH v5 07/24] xen/domctl: consolidate domain.c towards MGMT_HYPERCALLS
Date: Fri, 12 Dec 2025 12:01:52 +0800
Message-ID: <20251212040209.1970553-8-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00029929:EE_|LV3PR12MB9437:EE_
X-MS-Office365-Filtering-Correlation-Id: 2feafb55-1327-4aaf-ff01-08de3933dc1c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?wDv1/wjajMPCINF+B1yiOk8U9MdJyDoyBjz7dhHpUTeapHVhnhQcw1qfUqcT?=
 =?us-ascii?Q?xloY6kPS2VXeVOX4zl3U3dqc9w3wipcLuGElQHtsSBMF9URL2AdHAXlxBmt5?=
 =?us-ascii?Q?YZkVo989kCV50q+fPVDwf26jiw7DXQ36fWPOWZRKqukat5KL2EMBTB6NRM+v?=
 =?us-ascii?Q?P/Yehx03m0fFj9giA/fY/6dv/v/WJCYjK4LKeJlFqu38Hz0gB3+q2C2hYpIF?=
 =?us-ascii?Q?kj8nNri5GIkdCZqBqC/XPzxaht8XqW9dDyerYL6lddc7pMeWsVuX0ufV4Bn/?=
 =?us-ascii?Q?0AALrgu6056YjH0YhytDgTv5QRH1/Ok/AUAAv3FMXecOsNoiRD42S8orjmTK?=
 =?us-ascii?Q?D3eR664HF9fGWyuxDrTU1Ib3XpSFKuyFKPk4lnKL4hAX5X7Wu3YmzU6TMUvq?=
 =?us-ascii?Q?eZZfnGl1DpEe7EqbtLF8ywtFKawsrY55zNP6s72Hg5OKr2aMQr0/0y8h1kDx?=
 =?us-ascii?Q?a4L4B9FnZ38szhko7H6IvtPrKMOA/l9YUkHCCZOYfZUGM5eWViYL0qCl92Dq?=
 =?us-ascii?Q?vFOL9Wbv4D8Mgl1cYVAY4L3l+Rzcs5vDLAGHfs+AYoR5eM8sW+m7gyUamR2L?=
 =?us-ascii?Q?74lhK59dyT2EWCIBOXViySi7MqxVPIO3yuoeRDthJFEUsb1pe17EN7P0R4f0?=
 =?us-ascii?Q?Mu7xwHAeQ4cURgKo7iufstRPnWE0qTPbW21EALiAFW1gmlw23UYb3AcGDCc7?=
 =?us-ascii?Q?ePrFOUwSsXNn424KvvmYpcunlckpBW15UL2b1mJAZg9uLaUWugHXjXud29QJ?=
 =?us-ascii?Q?YY6/xTheGStPVbtM6LEga930goP3goCFpU4Qdv2bYiHl3RSQq/g9Lz6g28Q+?=
 =?us-ascii?Q?vGhg7ZM/pHFw5Xi16z6PgNwrZ5rOYfxt0e3BW2/yXTvvQQxBLtkimZYUUXaV?=
 =?us-ascii?Q?ArYFeJ6OrPOB0Y5jy1GEG2uiErBB2GsCUdkPJON0jNlNExjTeLGLg2+zM3NO?=
 =?us-ascii?Q?O+IpPGr9nRZyUFELOoAja0Y7PBASoDpkyhKxda6tgAdONS+7c/M1WEYW/ijZ?=
 =?us-ascii?Q?/YhXh9p5VyYiVUV5A+0v2yom7QeP3DffAn+7prUYxIeDPgz3VQlwVxMIkt3B?=
 =?us-ascii?Q?UurJSgwXfWLwAZkvl0HU9h/w9eOsp+m1PTvWh943tx5JRBV2Z9bxVz06K8UQ?=
 =?us-ascii?Q?TK8HMSgXupAVBjcoqaDbq5VF4QfvhIYN6oCO6FdDsr2IqrsDL2K2BTz0Rv9a?=
 =?us-ascii?Q?c1UqFxz9T/Tk+/27/r8nrFFZrKt61UOB5RVUlk34mst6a5jzr7rTnpuKNtsI?=
 =?us-ascii?Q?XPhsf6LqHj9KxyymhGHecloPlxmqR8jALM2zhMSDfiRQQ5EqRGoRkGMRufmu?=
 =?us-ascii?Q?VhJYGv7wNJZd7kD/Y+7CXB0FRwJRItFBdhp2qna9TH2uKPc/LYlvakr5y3FS?=
 =?us-ascii?Q?BwLDFCk9oee3Y+zbwg8fOgPTp0+bOBh3IJ3DuZKjcKAG7jDN8gD/dBXI6DTI?=
 =?us-ascii?Q?3Kw/MDuuTU4UmKpldMLVybMkWBKpCv7N/yvMfQa+070Qh/gJgF6+DRHihGfi?=
 =?us-ascii?Q?A6uD0yxvG8fpzLxVv1tjpEq7MSf1ClC/8QLHMU1aW0BVxRMhGaATha+J5Bku?=
 =?us-ascii?Q?a8jnG4g6MPFhILJsLbo=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:06:43.1849
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2feafb55-1327-4aaf-ff01-08de3933dc1c
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00029929.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9437

The following functions, scattered in common/domain.c, and are only referenced
and responsible for domctl-op:
- domain_pause_by_systemcontroller
- domain_resume
- domain_set_node_affinity
So they shall be wrapped with CONFIG_MGMT_HYPERCALLS. Otherwise it will
become unreachable codes when MGMT_HYPERCALLS=n, and hence violating Misra
rule 2.1.
Move them together to avoid scattering #ifdef. And add a leading blank before
label to conform to ./CODING_STYLE.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
v3 - v4:
- combine commit "xen/domctl: wrap domain_pause_by_systemcontroller() with MGMT_HYPERCALLS",
"xen/domctl: wrap domain_resume() with CONFIG_MGMT_HYPERCALLS", and
"xen/domctl: wrap domain_set_node_affinity() with CONFIG_MGMT_HYPERCALLS"
---
v4 -> v5:
- coding format correction and title refinement
---
 xen/common/domain.c | 114 ++++++++++++++++++++++----------------------
 1 file changed, 58 insertions(+), 56 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 93c71bc766..f24f3675aa 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1125,35 +1125,6 @@ void __init setup_system_domains(void)
 #endif
 }
 
-int domain_set_node_affinity(struct domain *d, const nodemask_t *affinity)
-{
-    /* Being disjoint with the system is just wrong. */
-    if ( !nodes_intersects(*affinity, node_online_map) )
-        return -EINVAL;
-
-    spin_lock(&d->node_affinity_lock);
-
-    /*
-     * Being/becoming explicitly affine to all nodes is not particularly
-     * useful. Let's take it as the `reset node affinity` command.
-     */
-    if ( nodes_full(*affinity) )
-    {
-        d->auto_node_affinity = 1;
-        goto out;
-    }
-
-    d->auto_node_affinity = 0;
-    d->node_affinity = *affinity;
-
-out:
-    spin_unlock(&d->node_affinity_lock);
-
-    domain_update_node_affinity(d);
-
-    return 0;
-}
-
 /* rcu_read_lock(&domlist_read_lock) must be held. */
 static struct domain *domid_to_domain(domid_t dom)
 {
@@ -1371,33 +1342,6 @@ int domain_shutdown(struct domain *d, u8 reason)
     return 0;
 }
 
-void domain_resume(struct domain *d)
-{
-    struct vcpu *v;
-
-    /*
-     * Some code paths assume that shutdown status does not get reset under
-     * their feet (e.g., some assertions make this assumption).
-     */
-    domain_pause(d);
-
-    spin_lock(&d->shutdown_lock);
-
-    d->is_shutting_down = d->is_shut_down = 0;
-    d->shutdown_code = SHUTDOWN_CODE_INVALID;
-
-    for_each_vcpu ( d, v )
-    {
-        if ( v->paused_for_shutdown )
-            vcpu_unpause(v);
-        v->paused_for_shutdown = 0;
-    }
-
-    spin_unlock(&d->shutdown_lock);
-
-    domain_unpause(d);
-}
-
 int vcpu_start_shutdown_deferral(struct vcpu *v)
 {
     if ( v->defer_shutdown )
@@ -1626,10 +1570,68 @@ static int _domain_pause_by_systemcontroller(struct domain *d, bool sync)
     return 0;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
+int domain_set_node_affinity(struct domain *d, const nodemask_t *affinity)
+{
+    /* Being disjoint with the system is just wrong. */
+    if ( !nodes_intersects(*affinity, node_online_map) )
+        return -EINVAL;
+
+    spin_lock(&d->node_affinity_lock);
+
+    /*
+     * Being/becoming explicitly affine to all nodes is not particularly
+     * useful. Let's take it as the `reset node affinity` command.
+     */
+    if ( nodes_full(*affinity) )
+    {
+        d->auto_node_affinity = 1;
+        goto out;
+    }
+
+    d->auto_node_affinity = 0;
+    d->node_affinity = *affinity;
+
+ out:
+    spin_unlock(&d->node_affinity_lock);
+
+    domain_update_node_affinity(d);
+
+    return 0;
+}
+
+void domain_resume(struct domain *d)
+{
+    struct vcpu *v;
+
+    /*
+     * Some code paths assume that shutdown status does not get reset under
+     * their feet (e.g., some assertions make this assumption).
+     */
+    domain_pause(d);
+
+    spin_lock(&d->shutdown_lock);
+
+    d->is_shutting_down = d->is_shut_down = 0;
+    d->shutdown_code = SHUTDOWN_CODE_INVALID;
+
+    for_each_vcpu ( d, v )
+    {
+        if ( v->paused_for_shutdown )
+            vcpu_unpause(v);
+        v->paused_for_shutdown = 0;
+    }
+
+    spin_unlock(&d->shutdown_lock);
+
+    domain_unpause(d);
+}
+
 int domain_pause_by_systemcontroller(struct domain *d)
 {
     return _domain_pause_by_systemcontroller(d, true /* sync */);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 int domain_pause_by_systemcontroller_nosync(struct domain *d)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:06:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:06:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184908.1507251 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuQi-0001KK-Aa; Fri, 12 Dec 2025 04:06:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184908.1507251; Fri, 12 Dec 2025 04:06:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuQi-0001K2-76; Fri, 12 Dec 2025 04:06:56 +0000
Received: by outflank-mailman (input) for mailman id 1184908;
 Fri, 12 Dec 2025 04:06:55 +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
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuQh-0007Dl-1C
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:06:55 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fd4c3b1a-d70f-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 05:06:53 +0100 (CET)
Received: from MN2PR15CA0061.namprd15.prod.outlook.com (2603:10b6:208:237::30)
 by DS7PR12MB6191.namprd12.prod.outlook.com (2603:10b6:8:98::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.11; Fri, 12 Dec
 2025 04:06:45 +0000
Received: from BL02EPF0002992A.namprd02.prod.outlook.com
 (2603:10b6:208:237:cafe::e6) by MN2PR15CA0061.outlook.office365.com
 (2603:10b6:208:237::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.9 via Frontend Transport; Fri,
 12 Dec 2025 04:06:43 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0002992A.mail.protection.outlook.com (10.167.249.55) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:06:45 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:06:43 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fd4c3b1a-d70f-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AhPEswa+DaHG6t5rhRU0PA3rjPDYep1s87M4wSZw5Q5WxKHC7BDs+cirkbolPU/yKMQYq7QmyPtw3TUkTksGwxXjIsC/iXvTM1p+eTFfYgItoZvcNR7ib/gAYLeY4NmybBXAYMdsvr6yxfqOFWQXknprMghtVMTj1SKa3zBRGWYg8nem5E5CQFxXGYyC+r49LUgXdl4VRtj02cIOQnuXuVbn6Kl6ofzKVk9kVa9uRw+7GBz7kScNIvHTR+qtjYDGYrYDkBZbp+y4NzlH05wd0LzCz9TAPW5GNmLBjn6Kv/9a2F9Q9V0IvKXSDULkEykWOaKTQ2D6QdQyhWMzZvxRjQ==
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=ynBWoLzkFEqy7wvBamCk0uYlCKmGseA6I5oKFUpt5OQ=;
 b=tbiaT06cLJg0wl3COzIrhXivF+IRHoLFdBPrfEs1QMAniunoQ5GuS1ndQBd3EPG91qwJ0aKi766pq/7XdXoy3VuJ50LwSRe3DU2uCCJcfOQEts0drf3Kp+Eah9WJHISzWg9JXG/nLdHH/2UUPW0rOKmRSnr/RptdnLdfdCuj9DhWkho2wKqyPpOiY80bYZMbt6CxTDuxJqcCFZOir9dBQ03NykB/J6on3f1qKNWfV9+Mu9kglzsGqHgeJ7XDyI1p5R63yAj477CTIMM6Bo3msX2LVIhzgLauvUncq++4YQ/4bgQWemEmjh0KJ0+Iz8Ubj8NVR14XaghyFetAfY1IXA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ynBWoLzkFEqy7wvBamCk0uYlCKmGseA6I5oKFUpt5OQ=;
 b=qoqBbbyuhqri/5tNAc0pGgFw0T9m+95RgcBQ4imXdbgfcRX9vaR2R0hrXALTCQ8xtbcNHyXfJ4zp1A7PCK0/v6+Lh5bN8dYRYfosO7F0MJ0W4Rt+n8wQkXQ2eqvBm0ALAYZ0gCfHoMJksMHIJVKQKW660FOm099D3kileQ9CaVU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v5 08/24] xen/mem_sharing: make memory sharing depend on MGMT_HYPERCALLS
Date: Fri, 12 Dec 2025 12:01:53 +0800
Message-ID: <20251212040209.1970553-9-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992A:EE_|DS7PR12MB6191:EE_
X-MS-Office365-Filtering-Correlation-Id: b545f5a8-0cec-4de3-d4d6-08de3933dd69
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?F+ruPS8dlHJTXFzBbKnOyVLsN8ZUci95mNNmMWSZP79sDELRB72xvuk0+UHr?=
 =?us-ascii?Q?q2e5u72lr+Ip6AsrE+YMDlJreYGVc6XpA2qDVUfdI6LTRB8fA2lfPh6XLt6Q?=
 =?us-ascii?Q?wf+tzAUK4n+vzDfT5WgQH2HIBDmO2brM36csA1zmyqVsK/eet9imL95it34K?=
 =?us-ascii?Q?5dlZcd92jjiCXEpwfVDA/tlC+4p3NUaZsRopMMKXNp46iWJal50drya8Su0t?=
 =?us-ascii?Q?w9y+mTXjSzUx5U4Ll6YD1S8ecvUikdGvKMTT6HKv+fHTIfNYmi1abcZbO0HO?=
 =?us-ascii?Q?+UyZJPSKmMkwNXLeiTi3Fm+PBncVctsBW7XPHJlaiP+9+MhoMThaA9rlWbDw?=
 =?us-ascii?Q?EaT3/3447BkovAyKULXG9EWy9sycEcw4RMv5e/krrxWbKmw1wWKpwg5UrYr7?=
 =?us-ascii?Q?9bPUnpVxoYN1YBPwBhBGm2/c8paY8rc6C9Q51DyoCe7afwSr7R5gAeyUvJ9d?=
 =?us-ascii?Q?DTRpT/sp6EomRp5JIYFj4aeAhCbhjs+YQiUBKrPJgCJ2sEY16adnMIC1ClTD?=
 =?us-ascii?Q?enXEsFCY/VVd1dGMU6cZLWMjFwH/CvWvOtvZGbb4yb9SN199AUVtMPG58Cp4?=
 =?us-ascii?Q?15QaeK2CUktUPSim+oPyKNXl5ozyE5ARWNvPK7W2qAX2l+op1kp+krN5jo5v?=
 =?us-ascii?Q?DA3IC3bNTP3RkdFEk/COvZGEi7NiVCFAKfHXsIEL5nBDKYQMtPhw6W2y9Pvw?=
 =?us-ascii?Q?Se9Fi01YQaQzqvakvzkVjSdxbQ0DZaX3nCVW/xc736aSy6CE7i/h2FAhNyPi?=
 =?us-ascii?Q?MAK9O9DOQ4/u3ZTZQvgHJ9lF2AqzcjyPyMwsbDHlU83L7yd/q3lhj/K53ySv?=
 =?us-ascii?Q?4gQcIEsuYNtzPLH8hJ4K15Uj5Ooy8vEVwzTK0byOZNNs+8TVLPG+Qgnymeh3?=
 =?us-ascii?Q?tRwqewRQEJ1naR9Ns0suMJwqj3nKGviU0pG9QYqy53Q6G1SE/NU/GDgSC+7P?=
 =?us-ascii?Q?MCO89xPwTTmCmwKINULf+VF31buPYl7h7WvzeG0boKPpFh+qM9SyA0GL8Shp?=
 =?us-ascii?Q?vblghyDyO4R/fzcXje54PtUY2RLKQVozGtO4XMA4r+mL0X6fHggs6JCL+ZG/?=
 =?us-ascii?Q?7RvqHkAN4f/csB4D7QLSff+f5KnLI1+ASK4ruyj6IQ4SPCiviRAt0hRX7+xQ?=
 =?us-ascii?Q?wYD57WffL4c8IEJrcPVi0zv3Ofi6fRk9dI7cIvl0GcTxwkh3RSSPK281hZHL?=
 =?us-ascii?Q?KKSOALj3w0iq0gz63RVI9ih1ERxlc6SZlAJjFiemQFrQG7024drB4s90qx1V?=
 =?us-ascii?Q?CuIKHvdByUCUvoWQc5ezacr8S3b9n15MZ1uC0qyivB4FnPo7g0FwVPA0FHBb?=
 =?us-ascii?Q?BiO62YnR69raRIqvfdB+FQldbaGz9HDEob290azRdpGJFajSou4W3VsHXJfH?=
 =?us-ascii?Q?vmWC2IGTfr6GqNt6yN4xPG1aBsr1tCcXUCofH6kLRsIogUxZXoXTu/zlINh7?=
 =?us-ascii?Q?akt5MPBPNop8dhn3Ss3zvUIuFjb7nTIq4evtaodjbNJGjCmIB6tV5WN7VrQK?=
 =?us-ascii?Q?fmXSJ5YtKPVXEcPWKR+OjUAp/xQaVgCt3NFKHaXNrRqXywgJVl1Ej31KyueQ?=
 =?us-ascii?Q?svNN309XjRKs92+IYMs=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:06:45.3581
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b545f5a8-0cec-4de3-d4d6-08de3933dd69
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992A.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6191

The enabling bit (d->arch.hvm.mem_sharing.enabled) for memory sharing could
only be enabled via domctl-op, so we shall make memory sharing feature
depend on MGMT_HYPERCALLS.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- new commit
---
 xen/arch/x86/hvm/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index 25eb3e374f..df9bea65b0 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -79,5 +79,6 @@ config MEM_PAGING
 config MEM_SHARING
 	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
 	depends on INTEL_VMX
+	depends on MGMT_HYPERCALLS
 
 endif
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:06:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:06:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184914.1507262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuQl-0001p1-Qr; Fri, 12 Dec 2025 04:06:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184914.1507262; Fri, 12 Dec 2025 04:06:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuQl-0001om-Ma; Fri, 12 Dec 2025 04:06:59 +0000
Received: by outflank-mailman (input) for mailman id 1184914;
 Fri, 12 Dec 2025 04:06:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuQk-0007SS-7t
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:06:58 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ffc3d82d-d70f-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 05:06:56 +0100 (CET)
Received: from MN2PR03CA0019.namprd03.prod.outlook.com (2603:10b6:208:23a::24)
 by CYXPR12MB9320.namprd12.prod.outlook.com (2603:10b6:930:e6::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.8; Fri, 12 Dec
 2025 04:06:52 +0000
Received: from BL02EPF0002992C.namprd02.prod.outlook.com
 (2603:10b6:208:23a:cafe::6c) by MN2PR03CA0019.outlook.office365.com
 (2603:10b6:208:23a::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.16 via Frontend Transport; Fri,
 12 Dec 2025 04:06:51 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0002992C.mail.protection.outlook.com (10.167.249.57) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:06:51 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:06:49 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ffc3d82d-d70f-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PIeq9S8OHBwMPG4YYGbZplRdCWcpHxME9wXmHt2J2j8iI574QDOj2lLMt+XPSgaI2lAuIevYCQlC32s+gF2UJXW75MDDN31NnkolavnIvvhbPZu7c3dyS81+kJ16BwzBgBGfWKt347Sh2s/XTB1v7EraAKAjga64MLPgfHJL8laVDyXU8jkkNDpSBbyrR1xDedVstwTHV76tlDb61ysdG23tu4tGqno4hG9FdlcKhEPAXfA123tm5IGbuMUSwxIz8eEnEvAK3l2AHagdW+MVzso1hMBYMgbsy/oxyuiDX0jklL29GbewEd++1cIpY2ASgzH1pAgO9iS7ulO9n4C3QQ==
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=ujDe1zt9QHrXlG7ZNmi2RWPU8HuKyDN6Q+EP1SD7HV8=;
 b=KgxNpuyFTmyd6rWJNY2v4i8E2A1lUBNCP59bvRAnx1aH686HlfTaX15lwvkOjbfXubs9rvvcVPAOxSlBfbN6PTJytnnH4+ZbE7tKi1eY0GFNXc8zePSLoTmDYpbLV9DDSyd1U9TDVAhKNRJvXT5pQ6lxN5877STaGm4+BxJOCx4tcHWBEMNtpfHiE5dHJ2558N8+ogV9a9B86m3bk77hC6i4U++o+vR8kEEyuHLyqjb7FZisG8SWT5Eqk+SCr+ATUNREcIi8TAYWdGaHpB/ANZ+3ghz1/6inlyAyjulqTs7MHl+bZ1kdL/UkoUdW83kl96vnIqapl2wEoPPDKxoa7g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ujDe1zt9QHrXlG7ZNmi2RWPU8HuKyDN6Q+EP1SD7HV8=;
 b=1S0uPclOCCh4MrRqmYxA3CcUQLd9k8jytQ5kHGDcTfWgNXwwdkK/RHX8jhyvsbXu23gketArFG3MyJLhL+QbqhZV9v8CCYFIKJ067OdpqJbBepQ9RH24assbcPV2HzXF0O4CqGFvhQouhlEQv0B5PbWIoHugtM2pK7BVl1YeyzI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Dario Faggioli <dfaggioli@suse.com>, Juergen Gross
	<jgross@suse.com>, George Dunlap <gwd@xenproject.org>
Subject: [PATCH v5 10/24] xen/domctl: wrap vcpu_affinity_domctl() with CONFIG_MGMT_HYPERCALLS
Date: Fri, 12 Dec 2025 12:01:55 +0800
Message-ID: <20251212040209.1970553-11-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992C:EE_|CYXPR12MB9320:EE_
X-MS-Office365-Filtering-Correlation-Id: 5473bb78-81e1-4d8a-4371-08de3933e134
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?GdMJX9nOr9p/IVlXpJBxx4QGFkKdUpsrOzs7FiwNxbHyzitE3PB27ZnD84eA?=
 =?us-ascii?Q?J68wd6V+awla9zm8VBuj0ni50y3URty53b7W0kFuZDsK9uD0K90OoJjUAeTa?=
 =?us-ascii?Q?Zr30l60GN1gCS9npeg34lWsqPfcUjDNcPD7KwEHGy0oE4MzADTNlXI1dDY9I?=
 =?us-ascii?Q?SXAtbP9dgPBaIDnidbZdVQ5HUVoyPbHgteeZI5oy/oVujQDLhCGXDCNMNh/r?=
 =?us-ascii?Q?YQ9fkaAmV0Pn5RETxXOcycKMn58l4tvsu/zo7fC8AGKGytT5dZctuigv7xd9?=
 =?us-ascii?Q?RDsm8hl5DD1fdQuNLTJuKPVke4b2TOVyKKszoFXaEnC6yvnGMFJbEvJswsWi?=
 =?us-ascii?Q?zQLkL+xtgogAAnCEnC2Gjc0NZgBreL/pF7SMiWtdobnQ6PPDK358P0TKvOqb?=
 =?us-ascii?Q?njJbqFB+vqRRzZ1TNJb7SUzowsn2y7o+LUJD4eA99VSnARfGosGAIHC2h3L0?=
 =?us-ascii?Q?dUI31110FJp/SkRAmyFKxyXOFllwpcYFm5vtKfEOFmeMfijKkMAHvIMf/JFS?=
 =?us-ascii?Q?MLQ3AXCAO7FQMSwiRxkGKj4qK/IysBi20uG5O9hgvL/GUwepEX0sYstEXGgQ?=
 =?us-ascii?Q?qtDYB+Jw6a0uJ93Gxyhr6AMCuLYRB4/ZhixYUjvWMzbHUBU/N16neMnexM8x?=
 =?us-ascii?Q?MfDfE9+w6NdiAzrqkDD2ZT/7Fq9HAqPJnE+6NU8snZnIwmLRls6P0xRKJCuH?=
 =?us-ascii?Q?nLdG2X4+p4dkD07MeFU+Z5UeomQMQ3/jNmKRJJSedHQ7WelnSyNLK9lYufCX?=
 =?us-ascii?Q?ADG1wqfh3GVsYCnDMhnwuyfu5XG7VSFGDtxfMVgm0HVEhjxGymyzQ0siBpJf?=
 =?us-ascii?Q?4DSvnN0Y6o+xl7n/f6s6HrwweUi5PHUx/xCglGKdizvoqeou1R5QGN6tepZB?=
 =?us-ascii?Q?U5CrM5vd2Kh18gxqIEVjKIvMkQSA/TEiTjvzY920zWJJrkSSJ/ipp4vWUMId?=
 =?us-ascii?Q?Ow0wsFohKiC/Y0X8u+9+3WYSor3CC3yVFatvm2RuZkGkRSX+bkuy9e2DSLjS?=
 =?us-ascii?Q?0fLrB8b3ScW5fbtVYRIVCiKHevj8KSJB9+tz7V99mpL9RezAw7Mg/60Eu1TS?=
 =?us-ascii?Q?HZyKgqz5C9qRfVz/42byMl4i0IkUhdbt5VpoVymEmyEvRu2x/4rDMnZWqod1?=
 =?us-ascii?Q?zuGWR8RqWUeLVq7VFfOnQtkSF1STKl+2l16GES9gmehNeSf6wOkMJLLd/S11?=
 =?us-ascii?Q?ia07cGZxBCs1AtOBCnvjIIxqvHUPQ4NeDXaMS2lgFpoRRnyMQQ5eZsfHH/L2?=
 =?us-ascii?Q?Yjm2HkTZZXSHSglxZDASbHM7DuUibxNqWqUNE9yizENS9cFn+kQcdzf1xmlX?=
 =?us-ascii?Q?AKM2hnl9xlWM8C9bJ/88zlaeyjB3Di42NzXnHzG2uDrr1ZhWQ7ZtMCcal7Qh?=
 =?us-ascii?Q?3NnJ31lkPXFMR8/S879hKjSSNcGm19b+ejghJ1au2FedDbrO/O+pzn62ERrK?=
 =?us-ascii?Q?QQ5L/FBeUBBey1Uwti3Fh2u8H94qZRhsgNTCbHmA+n+Q/trURhQ/7Vl1j/dp?=
 =?us-ascii?Q?oUTQ5g1/LY+bnfBfmQVitVqLuDfsVSwIvHMIBo0LWhCeI8kdzgNxj+8hxW4I?=
 =?us-ascii?Q?vaikI92vicy9QvaJBVI=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:06:51.7157
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5473bb78-81e1-4d8a-4371-08de3933e134
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992C.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYXPR12MB9320

Function vcpu_affinity_domctl() is responsible for
XEN_DOMCTL_{getvcpuaffinity,setvcpuaffinity} domctl-op, and shall be
wrapped with CONFIG_MGMT_HYPERCALLS. Otherwise it will become unreachable
codes when MGMT_HYPERCALLS=n, and hence violating Misra rule 2.1.
Tracking its calling chain, vcpuaffinity_params_invalid() also needs
wrapping too

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
- wrap XEN_DOMCTL_{getvcpuaffinity,setvcpuaffinity}-case transiently
---
v2 -> v3:
- adapt to changes of "remove vcpu_set_soft_affinity()"
- address "violating Misra rule 2.1" in commit message
- remove transient wrapping around XEN_DOMCTL_{getvcpuaffinity,setvcpuaffinity}-case
---
v3 -> v4
- wrap vcpuaffinity_params_invalid()
---
 xen/common/sched/core.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 88150432c3..83e34e7c05 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -1678,6 +1678,7 @@ int vcpu_temporary_affinity(struct vcpu *v, unsigned int cpu, uint8_t reason)
     return ret;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static inline
 int vcpuaffinity_params_invalid(const struct xen_domctl_vcpuaffinity *vcpuaff)
 {
@@ -1798,6 +1799,7 @@ int vcpu_affinity_domctl(struct domain *d, uint32_t cmd,
 
     return ret;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 bool alloc_affinity_masks(struct affinity_masks *affinity)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:07:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:07:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184930.1507272 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuR5-0003TA-1Z; Fri, 12 Dec 2025 04:07:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184930.1507272; Fri, 12 Dec 2025 04:07:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuR4-0003Sn-Ub; Fri, 12 Dec 2025 04:07:18 +0000
Received: by outflank-mailman (input) for mailman id 1184930;
 Fri, 12 Dec 2025 04:07:18 +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
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuQv-0007Dl-HN
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:07:09 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0694f9dc-d710-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 05:07:08 +0100 (CET)
Received: from BL6PEPF00013E03.NAMP222.PROD.OUTLOOK.COM
 (2603:10b6:22e:400:0:1001:0:1b) by DS0PR12MB7581.namprd12.prod.outlook.com
 (2603:10b6:8:13d::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.9; Fri, 12 Dec
 2025 04:07:05 +0000
Received: from BL02EPF0002992D.namprd02.prod.outlook.com
 (2a01:111:f403:f901::7) by BL6PEPF00013E03.outlook.office365.com
 (2603:1036:903:4::4) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.6 via Frontend Transport; Fri,
 12 Dec 2025 04:07:04 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0002992D.mail.protection.outlook.com (10.167.249.58) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:07:04 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:07:00 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0694f9dc-d710-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NZ+qB7M/0kWyDnqtMp+52AMOynrx+ou5I1Zrye/gf3TSsbMZxigs5fz9koZ0zHFZo3Bq7X03OjSOLAbF/9eVNtvyI3u3vwBbGyarFOZxZtR210i0HoLZWnDRnALl07qWI4c0RosbtVIFnbNrGQgC91zt1Sb2LR4w7aX4OQg86V+G+E5NImj9lrZPamNN0CnE9aEB/bH6rsZs45IPaZBthhMwxwQqxGPERfiO9Hh2T963+5ICZ8Lrv5BuAYGWfNja1A5B78HgDn0FWigwmGU1BnnjGcZ8fEUXhhWrH73TvRA+XV/NJH/xP1ftsKY1YttL+PT1RWHqCJdviXK3yWy0AA==
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=AaFTmwwa+bCWw5fIRu939ZdZxVXEUY/bAtUkbevuahw=;
 b=wtHiJYXoADm4R7IdCDEJYLlTmYiw2xUAMcRhVJ9DBLDwO2/AS+lXO2rzIpQmk4a/iITXzsJLuyHoMoF2WLikBzTSZhfdtjZJpyX9Wijw31baYwWis+FK4K4kx6HsRIWGfLKdnFUcIJvGvKH0Jb24MH4Tt/RiujWkXsu8hqn40Y5CgteBs4LTlvyr/OB/RqcZZKQdWUDWhMJD+eqRsrMUp43KYcJcGKD4GnEvH56PbgbHSjumuPMr7IXAZcPZzMnDV+gQPTFdjbyeaEEVSaPwUPMxZUwD31TeZR+vn9FTX90O2IMgzg0Rpw1y1C7UOPNbCKvjQIE6EoYL8uG/ihF0Hg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AaFTmwwa+bCWw5fIRu939ZdZxVXEUY/bAtUkbevuahw=;
 b=4jHXxCbanqOsIC7IqIEYm/3iayFMDKZDB0WfdhFF0RnQsg3RJoK1pUgkDqexMNlnRBqjMQVlncRPHdxbyXsXysjUHwtajzKpTTXCVf1N4zx3RaI08uLY2twz6B5tOwMVzyGLeUwCh8JbYxRrx911HxRBaOyA50BBO82lwbb90PE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v5 14/24] xen/domctl: wrap xsm_set_target() with CONFIG_MGMT_HYPERCALLS
Date: Fri, 12 Dec 2025 12:01:59 +0800
Message-ID: <20251212040209.1970553-15-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992D:EE_|DS0PR12MB7581:EE_
X-MS-Office365-Filtering-Correlation-Id: a7ab0564-45bc-4511-0d69-08de3933e90d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?iiNG/nOgPcMeRolsMbGR+XbiDHx/ywyWcVxO4YBwi+hHf/0AEXyiEvDxA/l8?=
 =?us-ascii?Q?g42hb0UPIkvcjFnprJetbFj5QJCl9nCK8x9k4Ygn0sUCIjCUn0whCZM4Jn0x?=
 =?us-ascii?Q?w8zoMfTNoMpRCZ2XJvvr+K52sZ4vkg9ebl0QJZAhyGpqLcJpn5XiqoUcPXss?=
 =?us-ascii?Q?j3OfN01Wc8xriCk6C+ja03UTCd8UNl4NZif+CfPvFkka0vSVK41T1aUum7Nv?=
 =?us-ascii?Q?3SHB4c107khKBukiewkG8ltWs5yt0irNGSSsixr7bSur+Ipl2/IIpPoAXUcv?=
 =?us-ascii?Q?tYwSY3EX9jAvV1AgPIp1UU8Z7KbAyTmtbrRzG/wO2Sk5UDStRCQAFF1Z88ia?=
 =?us-ascii?Q?a+ECMbLPrEiIG8t69d8Jbf4RdNFwBwsgz/g/b192zAedcFS78qpjFv2208+L?=
 =?us-ascii?Q?Pmn3y8FPdlmLoOt/PuMnBmzNu+1MAnAabKqZla3FD7pIzcusYM4FIt5aNLoj?=
 =?us-ascii?Q?OI+MolcZYB5FpKnP8ttRtLLTm7ZOOB55J8zg8dgYEY/s4fMLCc8VInBW3j4+?=
 =?us-ascii?Q?s2gdmE/gqYjb8FTMBFrUq5j7+k265czLo7te9S/n/3NRRzdDuXziCPxx+kj8?=
 =?us-ascii?Q?Byd7mCmPj6kCaBQvPyz/frESWohOasf3xS2/wpo8t3NxqKfzDBRKCaeHGmkg?=
 =?us-ascii?Q?1pUxyyYnvTI8DWZlE7zwjgpvj/eE18o+8AWqq3ZeKhlmdMmUXSH0AhhJoRc5?=
 =?us-ascii?Q?XbtJgsOT9kThPTU1miuoSdJxmgXs2SOCkqA7JdguSysa8PJyK4ZSwLVnLwjJ?=
 =?us-ascii?Q?D12kRFOiYT8w43pVovgOnpiphEnnSdA+GfN8AargJYVY4PONFH2lmhneqYhg?=
 =?us-ascii?Q?CnnlhyRmn5dEUWl60+zkyMkEybN0JmiZEDtxwGQSz9LyFndqGx4zfP3dTh/U?=
 =?us-ascii?Q?nNA2aRjaxj7I4NAJILEyz+e0CpD5R6muh3N8oe3Ma7l6nZeNHRVGfMgwljd9?=
 =?us-ascii?Q?90KvITKCs/pycLMg1xRXcmoiRGtC82Fsogsfi5J5JQFXO2aAO8TydvGJwayO?=
 =?us-ascii?Q?MoQslAxQ/Dl4iTyQcWP2B/1un6Dgv/Sv3AGQ9FKWsZDeAj3TrZFj6i0t8aTg?=
 =?us-ascii?Q?N3CLNz+iOUfrImFMMWFOsfyT4R8KauQc/9vIed7keATpPvniH3T5S4KgjIiv?=
 =?us-ascii?Q?bA3jQVjWii/9p0/ttql4VO8VSiVUrbY0k/ZBo79Oe9lqETkk69Cl0vZzP8TM?=
 =?us-ascii?Q?Sj1Dvx1goA7ljGwNEpfi7JeSleYi2CT/E+Z1GOdzCRmmoUvfn+fr3SIdas0H?=
 =?us-ascii?Q?rjxwnbthh/HGulEsPTNvTpP8C28RlLFU+SKAet3jSS2hnym5I0P7sl6HQVu/?=
 =?us-ascii?Q?neYcWZez6P+UOuIDC0PCKANvzvYcAEjzgD/1L+556smsjr+dP34nJCXU0++S?=
 =?us-ascii?Q?rT+TiOobtD6yz5ihBzBr3qtK+CFRVvGMfgliu9jJ9VPGmFSQPVuV34QsIYfz?=
 =?us-ascii?Q?UQz9Mte5T7MG3UPbdDm4+nTf3au4lgEiXzTbCg6CIpMuzIQLyDhwzUEArMq5?=
 =?us-ascii?Q?FGa5rMM4kh43Q0hWz1vzOdSlGsoPXIg+UpAMW+Lwx8TolncgWSJp31vVVDMz?=
 =?us-ascii?Q?0QtSayxMxkX91/fk3DQ=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:07:04.8831
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a7ab0564-45bc-4511-0d69-08de3933e90d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992D.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7581

Function xsm_set_target() is only invoked under XEN_DOMCTL_set_target
domctl-op, and shall be wrapped with CONFIG_MGMT_HYPERCALLS. Otherwise
it will become unreachable codes when MGMT_HYPERCALLS=n, and hence violating
Misra 2.1.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
---
v2 -> v3
- wrap the whole inline function xsm_set_target()
- add missing wrapping in xsm/dummy.h
- address "violating Misra rule 2.1" in commit message
---
 xen/include/xsm/dummy.h | 2 ++
 xen/include/xsm/xsm.h   | 4 +++-
 xen/xsm/dummy.c         | 2 +-
 xen/xsm/flask/hooks.c   | 4 ++--
 4 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index 535de82f62..92291ac9e5 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -158,12 +158,14 @@ static XSM_INLINE int cf_check xsm_sysctl_scheduler_op(XSM_DEFAULT_ARG int cmd)
 }
 #endif /* CONFIG_MGMT_HYPERCALLS */
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static XSM_INLINE int cf_check xsm_set_target(
     XSM_DEFAULT_ARG struct domain *d, struct domain *e)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, NULL);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static XSM_INLINE int cf_check xsm_domctl(
     XSM_DEFAULT_ARG struct domain *d, unsigned int cmd, uint32_t ssidref)
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 786cfd7ac4..b76eb22429 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -59,8 +59,8 @@ struct xsm_ops {
 #ifdef CONFIG_MGMT_HYPERCALLS
     int (*domctl_scheduler_op)(struct domain *d, int op);
     int (*sysctl_scheduler_op)(int op);
-#endif
     int (*set_target)(struct domain *d, struct domain *e);
+#endif
     int (*domctl)(struct domain *d, unsigned int cmd, uint32_t ssidref);
 #ifdef CONFIG_MGMT_HYPERCALLS
     int (*sysctl)(int cmd);
@@ -257,11 +257,13 @@ static inline int xsm_sysctl_scheduler_op(xsm_default_t def, int cmd)
 }
 #endif
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int xsm_set_target(
     xsm_default_t def, struct domain *d, struct domain *e)
 {
     return alternative_call(xsm_ops.set_target, d, e);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static inline int xsm_domctl(xsm_default_t def, struct domain *d,
                              unsigned int cmd, uint32_t ssidref)
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index b216894579..f6986dd2bb 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -21,8 +21,8 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
 #ifdef CONFIG_MGMT_HYPERCALLS
     .domctl_scheduler_op           = xsm_domctl_scheduler_op,
     .sysctl_scheduler_op           = xsm_sysctl_scheduler_op,
-#endif
     .set_target                    = xsm_set_target,
+#endif
     .domctl                        = xsm_domctl,
 #ifdef CONFIG_MGMT_HYPERCALLS
     .sysctl                        = xsm_sysctl,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index d480009142..9c1298697c 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -641,7 +641,6 @@ static int cf_check flask_sysctl_scheduler_op(int op)
         return avc_unknown_permission("sysctl_scheduler_op", op);
     }
 }
-#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static int cf_check flask_set_target(struct domain *d, struct domain *t)
 {
@@ -666,6 +665,7 @@ static int cf_check flask_set_target(struct domain *d, struct domain *t)
                                  &dsec->target_sid);
     return rc;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static int cf_check flask_domctl(struct domain *d, unsigned int cmd,
                                  uint32_t ssidref)
@@ -1888,8 +1888,8 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
 #ifdef CONFIG_MGMT_HYPERCALLS
     .domctl_scheduler_op = flask_domctl_scheduler_op,
     .sysctl_scheduler_op = flask_sysctl_scheduler_op,
-#endif
     .set_target = flask_set_target,
+#endif
     .domctl = flask_domctl,
 #ifdef CONFIG_MGMT_HYPERCALLS
     .sysctl = flask_sysctl,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:07:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:07:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184932.1507276 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuR5-0003Vd-Aq; Fri, 12 Dec 2025 04:07:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184932.1507276; Fri, 12 Dec 2025 04:07:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuR5-0003V2-5e; Fri, 12 Dec 2025 04:07:19 +0000
Received: by outflank-mailman (input) for mailman id 1184932;
 Fri, 12 Dec 2025 04:07:18 +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
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuQm-0007Dl-9E
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:07:00 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0103ecba-d710-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 05:06:59 +0100 (CET)
Received: from MN2PR18CA0004.namprd18.prod.outlook.com (2603:10b6:208:23c::9)
 by CH1PPFDA34A4201.namprd12.prod.outlook.com
 (2603:10b6:61f:fc00::625) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.11; Fri, 12 Dec
 2025 04:06:55 +0000
Received: from BL02EPF0002992B.namprd02.prod.outlook.com
 (2603:10b6:208:23c:cafe::70) by MN2PR18CA0004.outlook.office365.com
 (2603:10b6:208:23c::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.11 via Frontend Transport; Fri,
 12 Dec 2025 04:06:55 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0002992B.mail.protection.outlook.com (10.167.249.56) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:06:54 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:06:51 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0103ecba-d710-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jYbrfidpstbGB/dQZ5QhMngzbvTifHfAIeqsJXA5zTzi03v/0aNMUXlaAM+A1usA4gaCDFs7oGcWwaYrAP7RImQF6QDzo0zaHYC9Z1lHgwnv0gbZIGRwV2A8G5CmUNlmI/cSWGx1ZLkjTRPtz8qixT+zOu3jLRkHG+mVa1F5/sM0tyQvuefu694j/BRqHKUkzYWgwqLLAvrJQGVqfXWj8lqZ8HD68NOgpUnNrTwnJ4oe4uMsC69K/qwOcCchqk87lnYkRnnD8rjqA1z4GSWeA+VxCwJRBigj0UeN5Zy9ZnbBh2psETK2E4tKZBO92X8qA/811wUviotFW/JWG9WHaQ==
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=fc4GOUXjj8Gz2F+R05siesUERkmjkVYJyAi/lfHSPH0=;
 b=ZrSWCzmsPRKbVX1Z3TthvNNRmUMsUrnbLE7Ujb2mHaQihQEGtgwCWNgkf7VgkBr9VCHHLGkTPNfeYeD91Z7CkJXDOqu3LQAu3zsAMzq1OxEA/GHeMc56b+EP9Sd0lLODz++10HpIyxTeXTvm1IWE+jVcjeK9m36yanvFXKnP/iLduly2Z8imtYi8xmwGaYZjPpYM/6XJ8Fn/KtRC6JR1e0UJXZXwoivW2uG5GwLaYbmfMIMcNQSdVfkCKXmdQHMU2OTaZ51ipQpcvegBUCN99A34oFpgFMXtvyp7QStoOleS9h4EjjXiKPK7fP9MNIjev4wQYL+6ExsVCoX6KC0MuQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fc4GOUXjj8Gz2F+R05siesUERkmjkVYJyAi/lfHSPH0=;
 b=21/Ci0CLAcN8zX0dmRBq0bhOSevsDRaK9kITT4HDT40WlhsOb0SgGVDixOBQpr+t54Mts2us9ZfD0wGEeDa4rs+AwhhofQ78ufDqjcOgysHBeGIvSf6Vzg75yOmJjSiSvrh7H1N4RrSZVTCg/yqnUUR1lpSo+29i3LD2n0lppWs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>, <xen-devel@dornerworks.com>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Nathan Studer <nathan.studer@dornerworks.com>,
	"Stewart Hildebrand" <stewart@stew.dk>, Dario Faggioli <dfaggioli@suse.com>,
	"Juergen Gross" <jgross@suse.com>, George Dunlap <gwd@xenproject.org>, Meng
 Xu <mengxu@cis.upenn.edu>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 11/24] xen/domctl: wrap sched_adjust() with CONFIG_MGMT_HYPERCALLS
Date: Fri, 12 Dec 2025 12:01:56 +0800
Message-ID: <20251212040209.1970553-12-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992B:EE_|CH1PPFDA34A4201:EE_
X-MS-Office365-Filtering-Correlation-Id: 12511625-b345-4a06-0d10-08de3933e324
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?b676qOjQKf2WL139nWI0Emx8+eUygDt5T7LEEL3S6w5nYRdzBNLHEDuA5EC3?=
 =?us-ascii?Q?3UIxHMDgT3EKPRVEK+0XrpDZotg7wtQ/esKj5AieoBCrhBuKsn5Pj0Gu8IDs?=
 =?us-ascii?Q?0QvnsER7G1JX+x/kF1fLTULezhbC6+R6rcGDsMFGAkL0me4rhWR0MlRd8kzk?=
 =?us-ascii?Q?IXOkf5Ll6oVnNeYSDBQnivWd95DjOs255Mel1STrTgF32DrIC1BebfnSa3CW?=
 =?us-ascii?Q?2j8AjEdXINB5ZvATEXrVewFn9IzPCLMMqX/ZXFtB3do8dGgNoNS1Dnbx6CSj?=
 =?us-ascii?Q?xZq44VgoOoOlTeGVRWlOGo33AkFafg52uW1Gan5EKQnTT1rAKFrbRtvy3t6s?=
 =?us-ascii?Q?jJVg7whRktNscbqqeyOx+Klut5aH0H8gOOfNBiTikR4w9i8proaXbLqmg+E8?=
 =?us-ascii?Q?7TtZMswI2jLMFMXI8BOKaeNhcla6G8TVoOVaiyCvtsxXL/QlvLFwaEYQyVTQ?=
 =?us-ascii?Q?Ww4Axz//hvhsbQ8x8Sq/MPa1KKSDpg9KaBbwJpkuk/jwCk+ufqkJeqh0WqJK?=
 =?us-ascii?Q?F6MW25ID4zHLbHmJiMAfKpUTlrGv29hzpv0L7eiMI//8M07H9mp66OS7aoN4?=
 =?us-ascii?Q?EbhXGHgMVOiD00y4ctrzVkR52SKZmur1xfKjvsUJfKRsn9pnFxpjmdXm6c2M?=
 =?us-ascii?Q?zaperFsfkOhRWvPEtdccdKCC2b6eR3RAz6ZXgl0yGZZW0jmARY7VUzCRtS8e?=
 =?us-ascii?Q?z3KWINXIiBUWjRaM5ZBkuJsNeyzmOJjv+xGDrxDhFnFk9GTOEO3xc+Qh6Wy1?=
 =?us-ascii?Q?KLsrWvVKkMO764AOiTeUIhYdssH0vCuSV3a4/fnhqtKfMliZgF15NwzStgLh?=
 =?us-ascii?Q?5/zOVEn0azUwldKF7q/DH1CLUwHudoCVmURR/jF/eSNht1nsvZvC6tByeo+H?=
 =?us-ascii?Q?+TjDC296OnDkOROo/b1JGUcNruZJ7CpCSTwbBnRiBGbvMnESfgQK/Ihb146F?=
 =?us-ascii?Q?ggxV8w2ZitnKKomTii7aoSxW667lgEtG/rkTSFOBcpZEbnwTmB4jR55qUBhh?=
 =?us-ascii?Q?0MOZyLnH5rySVcwahlY1wbiuMaVtZXPqr7fz6WSpwLtfYUSJZ3GIaItYV+ul?=
 =?us-ascii?Q?zrd7U9gCzLw8sdNNsPOuT2RwpTrGrMmhGy7nuNMC/qxzcob56r7MlSggCkql?=
 =?us-ascii?Q?LTSxM9qiZfFuEbdg524hNIGKF4dFerASfaTmSwJhogHEn0JggKVHBkBUvpAm?=
 =?us-ascii?Q?4RBgM7EJiGkIEj49sN3hiMTcvg15utgejCrCQXGRC4RT5eNSsHM4A6CF/y9p?=
 =?us-ascii?Q?RF7W+ez/5DEGr4NdG6NrCsKxERhe2u5ZwfYMe/PSbiGMexhTrykArSRQ6bvM?=
 =?us-ascii?Q?we4ZJv+Sp29weB594D1xwlE8mVC2tgKqFEANmTHU2sOII46gqGkA1y6WCJVt?=
 =?us-ascii?Q?iSOvtAWBeZo7TiRnijxuQ8Mn0cZHBHSklsoAO4DDqJYUnK19KDhTinkap8zV?=
 =?us-ascii?Q?cBVHLmFXBIvejacS5smejCmcGqr3GnFCGeQmlSCo0yNdRDMB6SVC+uOijDFG?=
 =?us-ascii?Q?3B0bAgXs35lTnAeBm02dItkANZOQtaz9o6R6r6Y85aTkUGTfX158ixLikvMq?=
 =?us-ascii?Q?6gZvrAqwtYaFrSO05A8=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(36860700013)(7416014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:06:54.9656
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 12511625-b345-4a06-0d10-08de3933e324
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992B.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PPFDA34A4201

Function sched_adjust() is responsible for XEN_DOMCTL_scheduler_op domctl-op,
so it could be wrapped with CONFIG_MGMT_HYPERCALLS.
Tracing its calling chain, the following functions shall be wrapped with
CONFIG_MGMT_HYPERCALLS too:
- sched_adjust_dom()
- scheduler-specific .adjust() callback
- xsm_sysctl_scheduler_op()
Otherwise all these functions will become unreachable when MGMT_HYPERCALLS=n,
and hence violating Misra rule 2.1.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Reviewed-by: Juergen Gross <jgross@suse.com>
---
v1 -> v2:
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
- wrap XEN_DOMCTL_scheduler_op-case transiently
---
v2 -> v3
- add missing wrapping in xsm/dummy.h
- move and get away with just a single #ifdef
- address "violating Misra rule 2.1" in commit message
- remove transient wrapping around XEN_DOMCTL_scheduler_op-case
---
 xen/common/sched/arinc653.c | 1 -
 xen/common/sched/core.c     | 2 --
 xen/common/sched/credit.c   | 4 +++-
 xen/common/sched/credit2.c  | 4 +++-
 xen/common/sched/private.h  | 8 ++++----
 xen/common/sched/rt.c       | 4 ++++
 xen/include/xsm/dummy.h     | 2 ++
 xen/include/xsm/xsm.h       | 4 ++--
 xen/xsm/dummy.c             | 2 +-
 xen/xsm/flask/hooks.c       | 4 ++--
 10 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/xen/common/sched/arinc653.c b/xen/common/sched/arinc653.c
index 7d6c40d800..5a6f8c8642 100644
--- a/xen/common/sched/arinc653.c
+++ b/xen/common/sched/arinc653.c
@@ -735,7 +735,6 @@ static const struct scheduler sched_arinc653_def = {
 
     .switch_sched   = a653_switch_sched,
 
-    .adjust         = NULL,
 #ifdef CONFIG_MGMT_HYPERCALLS
     .adjust_global  = a653sched_adjust_global,
 #endif
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 83e34e7c05..0943cb1e97 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -2072,7 +2072,6 @@ int scheduler_id(void)
 {
     return operations.sched_id;
 }
-#endif
 
 /* Adjust scheduling parameter for a given domain. */
 long sched_adjust(struct domain *d, struct xen_domctl_scheduler_op *op)
@@ -2109,7 +2108,6 @@ long sched_adjust(struct domain *d, struct xen_domctl_scheduler_op *op)
     return ret;
 }
 
-#ifdef CONFIG_MGMT_HYPERCALLS
 long sched_adjust_global(struct xen_sysctl_scheduler_op *op)
 {
     struct cpupool *pool;
diff --git a/xen/common/sched/credit.c b/xen/common/sched/credit.c
index e8fef6fb51..54a4def362 100644
--- a/xen/common/sched/credit.c
+++ b/xen/common/sched/credit.c
@@ -1183,6 +1183,7 @@ csched_unit_yield(const struct scheduler *ops, struct sched_unit *unit)
     set_bit(CSCHED_FLAG_UNIT_YIELD, &svc->flags);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check
 csched_dom_cntl(
     const struct scheduler *ops,
@@ -1227,6 +1228,7 @@ csched_dom_cntl(
 
     return rc;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static void cf_check
 csched_aff_cntl(const struct scheduler *ops, struct sched_unit *unit,
@@ -2288,9 +2290,9 @@ static const struct scheduler sched_credit_def = {
     .wake           = csched_unit_wake,
     .yield          = csched_unit_yield,
 
-    .adjust         = csched_dom_cntl,
     .adjust_affinity= csched_aff_cntl,
 #ifdef CONFIG_MGMT_HYPERCALLS
+    .adjust         = csched_dom_cntl,
     .adjust_global  = csched_sys_cntl,
 #endif
 
diff --git a/xen/common/sched/credit2.c b/xen/common/sched/credit2.c
index 307e63ebd8..b73dd3c548 100644
--- a/xen/common/sched/credit2.c
+++ b/xen/common/sched/credit2.c
@@ -2909,6 +2909,7 @@ static void cf_check csched2_unit_migrate(
         sched_set_res(unit, get_sched_res(new_cpu));
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check
 csched2_dom_cntl(
     const struct scheduler *ops,
@@ -3114,6 +3115,7 @@ csched2_dom_cntl(
 
     return rc;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static void cf_check
 csched2_aff_cntl(const struct scheduler *ops, struct sched_unit *unit,
@@ -4246,9 +4248,9 @@ static const struct scheduler sched_credit2_def = {
     .wake           = csched2_unit_wake,
     .yield          = csched2_unit_yield,
 
-    .adjust         = csched2_dom_cntl,
     .adjust_affinity= csched2_aff_cntl,
 #ifdef CONFIG_MGMT_HYPERCALLS
+    .adjust         = csched2_dom_cntl,
     .adjust_global  = csched2_sys_cntl,
 #endif
 
diff --git a/xen/common/sched/private.h b/xen/common/sched/private.h
index b7ff67200b..3b35002c5d 100644
--- a/xen/common/sched/private.h
+++ b/xen/common/sched/private.h
@@ -349,14 +349,14 @@ struct scheduler {
     void         (*migrate)        (const struct scheduler *ops,
                                     struct sched_unit *unit,
                                     unsigned int new_cpu);
-    int          (*adjust)         (const struct scheduler *ops,
-                                    struct domain *d,
-                                    struct xen_domctl_scheduler_op *op);
     void         (*adjust_affinity)(const struct scheduler *ops,
                                     struct sched_unit *unit,
                                     const struct cpumask *hard,
                                     const struct cpumask *soft);
 #ifdef CONFIG_MGMT_HYPERCALLS
+    int          (*adjust)         (const struct scheduler *ops,
+                                    struct domain *d,
+                                    struct xen_domctl_scheduler_op *op);
     int          (*adjust_global)  (const struct scheduler *ops,
                                     struct xen_sysctl_scheduler_op *sc);
 #endif
@@ -506,13 +506,13 @@ static inline void sched_adjust_affinity(const struct scheduler *s,
         s->adjust_affinity(s, unit, hard, soft);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int sched_adjust_dom(const struct scheduler *s, struct domain *d,
                                    struct xen_domctl_scheduler_op *op)
 {
     return s->adjust ? s->adjust(s, d, op) : 0;
 }
 
-#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int sched_adjust_cpupool(const struct scheduler *s,
                                        struct xen_sysctl_scheduler_op *op)
 {
diff --git a/xen/common/sched/rt.c b/xen/common/sched/rt.c
index 7b1f64a779..a42040b259 100644
--- a/xen/common/sched/rt.c
+++ b/xen/common/sched/rt.c
@@ -1362,6 +1362,7 @@ out:
     unit_schedule_unlock_irq(lock, unit);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 /*
  * set/get each unit info of each domain
  */
@@ -1471,6 +1472,7 @@ rt_dom_cntl(
 
     return rc;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /*
  * The replenishment timer handler picks units
@@ -1572,7 +1574,9 @@ static const struct scheduler sched_rtds_def = {
     .insert_unit    = rt_unit_insert,
     .remove_unit    = rt_unit_remove,
 
+#ifdef CONFIG_MGMT_HYPERCALLS
     .adjust         = rt_dom_cntl,
+#endif
 
     .pick_resource  = rt_res_pick,
     .do_schedule    = rt_schedule,
diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index df8d737c18..6e8a6a2858 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -141,12 +141,14 @@ static XSM_INLINE int cf_check xsm_getdomaininfo(
     return xsm_default_action(action, current->domain, d);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static XSM_INLINE int cf_check xsm_domctl_scheduler_op(
     XSM_DEFAULT_ARG struct domain *d, int cmd)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 #ifdef CONFIG_MGMT_HYPERCALLS
 static XSM_INLINE int cf_check xsm_sysctl_scheduler_op(XSM_DEFAULT_ARG int cmd)
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index d20d4ae657..b3bec66e7e 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -56,8 +56,8 @@ struct xsm_ops {
                                 struct xen_domctl_getdomaininfo *info);
     int (*domain_create)(struct domain *d, uint32_t ssidref);
     int (*getdomaininfo)(struct domain *d);
-    int (*domctl_scheduler_op)(struct domain *d, int op);
 #ifdef CONFIG_MGMT_HYPERCALLS
+    int (*domctl_scheduler_op)(struct domain *d, int op);
     int (*sysctl_scheduler_op)(int op);
 #endif
     int (*set_target)(struct domain *d, struct domain *e);
@@ -242,13 +242,13 @@ static inline int xsm_get_domain_state(xsm_default_t def, struct domain *d)
     return alternative_call(xsm_ops.get_domain_state, d);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int xsm_domctl_scheduler_op(
     xsm_default_t def, struct domain *d, int cmd)
 {
     return alternative_call(xsm_ops.domctl_scheduler_op, d, cmd);
 }
 
-#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int xsm_sysctl_scheduler_op(xsm_default_t def, int cmd)
 {
     return alternative_call(xsm_ops.sysctl_scheduler_op, cmd);
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 2c70b979d6..2c878999a3 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -18,8 +18,8 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .security_domaininfo           = xsm_security_domaininfo,
     .domain_create                 = xsm_domain_create,
     .getdomaininfo                 = xsm_getdomaininfo,
-    .domctl_scheduler_op           = xsm_domctl_scheduler_op,
 #ifdef CONFIG_MGMT_HYPERCALLS
+    .domctl_scheduler_op           = xsm_domctl_scheduler_op,
     .sysctl_scheduler_op           = xsm_sysctl_scheduler_op,
 #endif
     .set_target                    = xsm_set_target,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 490823913e..669b04f8ea 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -609,6 +609,7 @@ static int cf_check flask_getdomaininfo(struct domain *d)
     return current_has_perm(d, SECCLASS_DOMAIN, DOMAIN__GETDOMAININFO);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check flask_domctl_scheduler_op(struct domain *d, int op)
 {
     switch ( op )
@@ -626,7 +627,6 @@ static int cf_check flask_domctl_scheduler_op(struct domain *d, int op)
     }
 }
 
-#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check flask_sysctl_scheduler_op(int op)
 {
     switch ( op )
@@ -1883,8 +1883,8 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .security_domaininfo = flask_security_domaininfo,
     .domain_create = flask_domain_create,
     .getdomaininfo = flask_getdomaininfo,
-    .domctl_scheduler_op = flask_domctl_scheduler_op,
 #ifdef CONFIG_MGMT_HYPERCALLS
+    .domctl_scheduler_op = flask_domctl_scheduler_op,
     .sysctl_scheduler_op = flask_sysctl_scheduler_op,
 #endif
     .set_target = flask_set_target,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:07:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:07:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184934.1507284 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuR5-0003Zz-PI; Fri, 12 Dec 2025 04:07:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184934.1507284; Fri, 12 Dec 2025 04:07:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuR5-0003Xv-EM; Fri, 12 Dec 2025 04:07:19 +0000
Received: by outflank-mailman (input) for mailman id 1184934;
 Fri, 12 Dec 2025 04:07:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuQt-0007SS-RG
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:07:07 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0453d223-d710-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 05:07:05 +0100 (CET)
Received: from MN0PR04CA0023.namprd04.prod.outlook.com (2603:10b6:208:52d::28)
 by BL3PR12MB6548.namprd12.prod.outlook.com (2603:10b6:208:38f::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.9; Fri, 12 Dec
 2025 04:06:56 +0000
Received: from BL02EPF00029927.namprd02.prod.outlook.com
 (2603:10b6:208:52d:cafe::92) by MN0PR04CA0023.outlook.office365.com
 (2603:10b6:208:52d::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.10 via Frontend Transport; Fri,
 12 Dec 2025 04:06:52 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF00029927.mail.protection.outlook.com (10.167.249.52) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:06:56 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:06:54 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0453d223-d710-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qJiM+dMh7WnjmBQhDbAkFciZGYsNZYcOCSKvbNBt1FO8eGD8ucFq6iQG6+PIw+4o2rQU6IgzOmpUBlTxvr/ZfqURCkvG0W6xFqf5WjOQQDGDsqBiuKjjapCn5KwAgWLIQ/P3sHY/HBAeA5h3uQUAQ/P12G2wbuk4ogsG/3lZEROVm8jY/ZxB3/cr/ZH4GlfmBXruMb31NvD62Kv4FiYOI1/QY9TRMlwQt3EZyFxFioJNI9Fo4nEzdQGmC2rN04LTh0sJm4MDhsxiB271MIRC5SBTzzZU+z22u0546yGho1pPxePuDFN/Jzq6qEVPSuKPT6gGHAr9XtV8Ok+Vup8mEQ==
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=g0u0YW906Vw5GXiM5PY9h0Wf3UJFla0tEJDdVcSp3lE=;
 b=Dw60RjpX5S9GwIUn8C5ZfhsmKrL6Blc3EwEGN79ItRu1xeSnmGqamBDzGd6ju8AysriYYYsX6pAv/7sc707s9ddAtgpcvrTHIN3aRggEZeXbL3tvJa+/0QgQBgBRVXbGjQHW5jQQEXsbNwePFoy37UXVQCL79+FIPR0ZlyC3IDlL+Lh02D3egHnxrf6Jvo7Zn3JvUnKY/xn5liz9jZsEhedZTjomlAL9GE8TxGy7drTzK4ZHd6ZOxMAR8dr/PFgzjW4USspaMpprLqd9hXf5AGNfwDlx0ot3wY7Kips97D8pmqiP63okzvRIltVUzWNV73xdVuQd+DrCzTHrX4bgjQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=g0u0YW906Vw5GXiM5PY9h0Wf3UJFla0tEJDdVcSp3lE=;
 b=helEOfrOaM1HjCeoHRliPxw8puJONZy6KxqNopC4v5p2QWenxUJh97s6wADlEfIlCWc0cHeGEIT8b4mfhjcZBZwXeFUqumt6+VLfwg13WYcGCdiFkNRKCQHrRxIjdIcU9RJ9jtQL+MWUxFP1U6Hlk4vVkUIcLM3iU04C60bGqz8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v5 12/24] xen/xsm: wrap xsm_irq{,iomem}_permission with CONFIG_MGMT_HYPERCALLS
Date: Fri, 12 Dec 2025 12:01:57 +0800
Message-ID: <20251212040209.1970553-13-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00029927:EE_|BL3PR12MB6548:EE_
X-MS-Office365-Filtering-Correlation-Id: 01171621-f024-448d-8d41-08de3933e41b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?fyenozwvsp+ObbL4ki3Q+89vSRgYXgcRquCi9tmOJm4Rp00eLJrN6pVM9r32?=
 =?us-ascii?Q?gzbMH0P361YfLWKAiUNDulwdmASEwW2YDtXFhWWfooCZLmNDdcWJ60kp1bVv?=
 =?us-ascii?Q?Kb1CREipdXXBfJHeRHZvTvNmUuFjFJ3fjS1L/YOvID64e+W2UXhtS5XGNYN+?=
 =?us-ascii?Q?t1IoHPRBhuk9X79skMvSUa5mX2ZXBQ60lrj3RQZiKJ6ifiCOe+i4J/Z1aFbt?=
 =?us-ascii?Q?lbvnAqwE2tXKjRpeoDNg3A32TqsQkQB/HglrLg+pV1aB3YF5nugbjzz842Vx?=
 =?us-ascii?Q?JzR+Ll3WHma5bWgq603L4uZ5o64c3IQ+L/S0rm+ql1TZ/4w5Xyme8+MlozPu?=
 =?us-ascii?Q?zwapI+CS0yL7epFebNVEz4mlVUMmfq2dNaFkk1vsJIDoZk+YYr98XqdN7Anh?=
 =?us-ascii?Q?eS0h1Lfxw0HXvSrQQhqjuYWcWYasFfXfczR6po6vyaHDtcxjE9ydg90k/ICu?=
 =?us-ascii?Q?UezU9Q8RLzUbfGjslnDrIG+PCk0PaKsbuVWyx7+RIg81k5+L5ycNGuMxSLuQ?=
 =?us-ascii?Q?7Yj2kCl57szU14c2db9m4Cj/DjC/FCQShJPEoY6Iwk/xon7Ye3g3ihv0+MCC?=
 =?us-ascii?Q?oAfh7k8v6qO/qZWuJsSWwAh1N+xLnSVCIH89veT4IqMCo7n/XwFyH0B5rSjn?=
 =?us-ascii?Q?V8ehT0o3GUlWM3MvDZazkJnb5W82DG/3Mv72zvdjNGFMyoCA59BuID6bvofE?=
 =?us-ascii?Q?Kbp3+dUCj0WQNSypH4VAfczika2QUlPXZfCguQE4gnnAozeGwSqo1IeEEEgk?=
 =?us-ascii?Q?/Pnc9Gxk7Qwui1MH6LHTBt14D5Ur1kmX33IhhbX5SziFlLBTU+nc7o8WIixh?=
 =?us-ascii?Q?q44mG7BN68nzbBLjz0Tjki//fXVftP4fBvD35hHgZlHg5P1bNBsmEu7j5BsY?=
 =?us-ascii?Q?QVN3v3XQOai0rDGn2aEN3zA3ZHNB+9J6JNFPWcu4nFeTjj0GpydLl0I0Sx+f?=
 =?us-ascii?Q?UVA66tF6Is4csnb9+0P1aPmQiSj10MLSHn/27OoLEmHJsrxf8ymdAWDfXkGr?=
 =?us-ascii?Q?jTm7rXHLnoPiq7JmvXWwbEI3rUpvYw0viQIA6pG8+DF6tqJnCYh8FCRKoT1B?=
 =?us-ascii?Q?kPVuquMAn5i/LiTlb7/tJ8X4rLs2Vb8dBfIfvJGKKdWNNCusaAZvjRSGUf5U?=
 =?us-ascii?Q?nts0w7Fwq8klKFu0Y5yraqMDkSuZ6hPfYsa6+CnzVIBQ3u5T07GU4rGLgt13?=
 =?us-ascii?Q?eEoO7+PtNa5E8Vk/s93V0QZmgGwNC5QMGQ1+j9I8rbkiuH2aPJKW2zsyUCeJ?=
 =?us-ascii?Q?cpoqtO8Lz7V4Hx8lZeGN+/STc+DQcJ5ho3B8bDIeZoPUhQLGWkl/EeRSKCMQ?=
 =?us-ascii?Q?2jpvWr+4Fzf/aNsX1FGac2FEsjRr3PnDWiAxLJEale7+iySPwWjs+anrbudO?=
 =?us-ascii?Q?oC7SsidXems15FeIwgIv0yWp2xYiZqDxlyXUPc1b9WUy551gd5JfbC/KDLMK?=
 =?us-ascii?Q?YVzBRW1BIBwiw/aMXT343xtSiEQXK9V+Q7Z0GEKwbzE5Tm8LJv+rvfl/cElI?=
 =?us-ascii?Q?i0CrXHoKb4wEE9E5KA6pbWyRMn8HoClqM/7CJZjT0KvXPP4PKR37rc5KzpS5?=
 =?us-ascii?Q?7IuTOhPuYc+A8GV3hGA=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:06:56.5962
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 01171621-f024-448d-8d41-08de3933e41b
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00029927.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6548

Function xsm_irq{,iomem}_permission() is invoked only under
XEN_DOMCTL_irq{,iomem}_permission domctl-op, and shall be wrapped with
CONFIG_MGMT_HYPERCALLS. Otherwise it will become unreanchable when
MGMT_HYPERCALLS=n, and hence violating Misra rule 2.1.
In flask policy, flask_iomem_permission() is also invoked for
xsm_iomem_mapping(), which is needed in vpci support. So we shall
exclude wrapping for flask_iomem_permission()

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
---
v2 -> v3
- add missing wrapping in xsm/dummy.h
- adapt to the commit of "remove redundant xsm_iomem_mapping()"
- address "violating Misra rule 2.1" in commit message
---
v4 -> v5:
- include changes for xsm_iomem_permission()
---
 xen/include/xsm/dummy.h | 2 ++
 xen/include/xsm/xsm.h   | 4 ++++
 xen/xsm/dummy.c         | 2 ++
 xen/xsm/flask/hooks.c   | 4 ++++
 4 files changed, 12 insertions(+)

diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index 6e8a6a2858..535de82f62 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -564,6 +564,7 @@ static XSM_INLINE int cf_check xsm_unmap_domain_irq(
     return xsm_default_action(action, current->domain, d);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static XSM_INLINE int cf_check xsm_irq_permission(
     XSM_DEFAULT_ARG struct domain *d, int pirq, uint8_t allow)
 {
@@ -577,6 +578,7 @@ static XSM_INLINE int cf_check xsm_iomem_permission(
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static XSM_INLINE int cf_check xsm_iomem_mapping(
     XSM_DEFAULT_ARG struct domain *d, uint64_t s, uint64_t e, uint8_t allow)
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index b3bec66e7e..786cfd7ac4 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -115,9 +115,11 @@ struct xsm_ops {
     int (*unmap_domain_irq)(struct domain *d, int irq, const void *data);
     int (*bind_pt_irq)(struct domain *d, struct xen_domctl_bind_pt_irq *bind);
     int (*unbind_pt_irq)(struct domain *d, struct xen_domctl_bind_pt_irq *bind);
+#ifdef CONFIG_MGMT_HYPERCALLS
     int (*irq_permission)(struct domain *d, int pirq, uint8_t allow);
     int (*iomem_permission)(struct domain *d, uint64_t s, uint64_t e,
                             uint8_t allow);
+#endif
     int (*iomem_mapping)(struct domain *d, uint64_t s, uint64_t e,
                          uint8_t allow);
     int (*pci_config_permission)(struct domain *d, uint32_t machine_bdf,
@@ -501,6 +503,7 @@ static inline int xsm_unbind_pt_irq(
     return alternative_call(xsm_ops.unbind_pt_irq, d, bind);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int xsm_irq_permission(
     xsm_default_t def, struct domain *d, int pirq, uint8_t allow)
 {
@@ -512,6 +515,7 @@ static inline int xsm_iomem_permission(
 {
     return alternative_call(xsm_ops.iomem_permission, d, s, e, allow);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static inline int xsm_iomem_mapping(
     xsm_default_t def, struct domain *d, uint64_t s, uint64_t e, uint8_t allow)
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 2c878999a3..b216894579 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -73,8 +73,10 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .unmap_domain_irq              = xsm_unmap_domain_irq,
     .bind_pt_irq                   = xsm_bind_pt_irq,
     .unbind_pt_irq                 = xsm_unbind_pt_irq,
+#ifdef CONFIG_MGMT_HYPERCALLS
     .irq_permission                = xsm_irq_permission,
     .iomem_permission              = xsm_iomem_permission,
+#endif
     .iomem_mapping                 = xsm_iomem_mapping,
     .pci_config_permission         = xsm_pci_config_permission,
     .get_vnumainfo                 = xsm_get_vnumainfo,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 669b04f8ea..d480009142 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1111,12 +1111,14 @@ static int cf_check flask_unbind_pt_irq(
     return current_has_perm(d, SECCLASS_RESOURCE, RESOURCE__REMOVE);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check flask_irq_permission(
     struct domain *d, int pirq, uint8_t access)
 {
     /* the PIRQ number is not useful; real IRQ is checked during mapping */
     return current_has_perm(d, SECCLASS_RESOURCE, resource_to_perm(access));
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 struct iomem_has_perm_data {
     uint32_t ssid;
@@ -1938,8 +1940,10 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .unmap_domain_irq = flask_unmap_domain_irq,
     .bind_pt_irq = flask_bind_pt_irq,
     .unbind_pt_irq = flask_unbind_pt_irq,
+#ifdef CONFIG_MGMT_HYPERCALLS
     .irq_permission = flask_irq_permission,
     .iomem_permission = flask_iomem_permission,
+#endif
     .iomem_mapping = flask_iomem_permission,
     .pci_config_permission = flask_pci_config_permission,
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:07:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:07:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184936.1507296 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuR7-00042R-23; Fri, 12 Dec 2025 04:07:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184936.1507296; Fri, 12 Dec 2025 04:07:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuR6-00040M-Tf; Fri, 12 Dec 2025 04:07:20 +0000
Received: by outflank-mailman (input) for mailman id 1184936;
 Fri, 12 Dec 2025 04:07:18 +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
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuR3-0007Dl-Hn
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:07:17 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0a16e5a8-d710-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 05:07:15 +0100 (CET)
Received: from MN2PR18CA0028.namprd18.prod.outlook.com (2603:10b6:208:23c::33)
 by LV2PR12MB5967.namprd12.prod.outlook.com (2603:10b6:408:170::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.10; Fri, 12 Dec
 2025 04:07:08 +0000
Received: from BL02EPF0002992B.namprd02.prod.outlook.com
 (2603:10b6:208:23c:cafe::cd) by MN2PR18CA0028.outlook.office365.com
 (2603:10b6:208:23c::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.16 via Frontend Transport; Fri,
 12 Dec 2025 04:06:26 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0002992B.mail.protection.outlook.com (10.167.249.56) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:07:08 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:07:04 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0a16e5a8-d710-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gsNyCEzohz8CMJNuL4TOZkuIiofjscEIcwtI5iziUnUXi8D4x95qvGyd5M8J3VMoBiQXmia/cQ4S4MeRD7r8HluNQ5opTUgX1LK3jB9xvfIICBcHAljLefZp2j5gEKHxBhgkJ/u55Gs+fRM6YYh13LTsGE4XvuzL2UL183c8/ec4MMzafJcaZV0YgBqxrlGvg1pZkcbsBahlS5Xk1eir2LCNDrOeabkLjrE2uetiC1H35/qkX+j65kXn1TnFPDOoaU3e6P8M715+4w1TgFRS3dzELWSk+4q3XjByWNp0bfnytmqPVZ2cdT7SrK8Qri/HwpAFA4heqqaXLC8RztakYA==
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=cNBo7HSAOiqoWr9Mm1NZh1/tC7tfzjVGKDQZ3VmVKG8=;
 b=bMrTH1W+vNCL0oR3vOw7g0f80gqUhDIE0KS7oGzOOnbSrLDjrr6IV6jxro8GmepPID3+1ByHaWpLOT3FKQDV2sy08vRYe7VVQf0MBrxfrrhiqh3N0PS+hToa2pPhbMqhX4ASxDXvD1+o/ErgXyR0dhuGTdyyh0yP21Z3dGHtkTxnnkTQgUiwvMxIHy+tItLK59nhm2lnPdBJtHIYOJ/0MkesBfkq3O66/0JOPqrHfEeR2sJVafc7NeUXNj0c8MkNrQqHLFYRjODNJN22hGMPz5StKcoc8p+/s6/OPrPt9VYA32C/x7Z6AYqU/Y/6wbYU9Feu69gswe3L7SRj6VLrSw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cNBo7HSAOiqoWr9Mm1NZh1/tC7tfzjVGKDQZ3VmVKG8=;
 b=aARwx1DW+p38jQJvCTMnMb+TKB6+7okiUek6yMJFp1TqQs6GJ7rdCXl3sbObPS8Rsph/ufMQDf5l8L2JYZ4FKdoR3hixliBAVkDz5lqA4CHVMURhH0XS4wu+zyQZIfLJFviRM7EEDQ24VBW+1JGxxqnSnLpnF1uX5UyPP4nmFZQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Michal
 Orzel" <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Rahul Singh <rahul.singh@arm.com>, Jan Beulich
	<jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v5 16/24] xen/domctl: wrap device-tree-subset iommu-related domctl op with CONFIG_MGMT_HYPERCALLS
Date: Fri, 12 Dec 2025 12:02:01 +0800
Message-ID: <20251212040209.1970553-17-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992B:EE_|LV2PR12MB5967:EE_
X-MS-Office365-Filtering-Correlation-Id: 4a1d4b4d-448c-459b-8195-08de3933eaf0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|7416014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?5lGE+8orBaQ8sgNMHsWNFAbX0o0vp8qN6cWsynigwHhj9v7oAvw90N4sC51C?=
 =?us-ascii?Q?f6Yh/MOHkZmCCuppwAyciunQa+AU2ui5BoU8zqYhLsbAhrRFjLdW7JWt04yA?=
 =?us-ascii?Q?YnDf6L+ULYde3kJR8aM5FXhGyei3xFr8fbqaC7zIRa3BAu0Ts3BvYCNg8XSy?=
 =?us-ascii?Q?XoqSKBnwZ9Y/rH9k+1yWpmo15+JFicxrOsa7ll0J5zVRxb/otNwV3WIgptQr?=
 =?us-ascii?Q?lgMWdc15APjre0KLmY7kJchLwwBkwln/UQ5Wn1Czk7PsHe6DHiWQP+oPDaYv?=
 =?us-ascii?Q?PC108mVHWSo6tJFjCnLkpxdOXmz64Wt04VKt3rBJQ+636nZYZKb4w+q9y6bH?=
 =?us-ascii?Q?h3lRwrMTQD3KSDiuGFGKhOJuUZHzxYo8S93nzsqc09W/wyi2Mz151AcR3zeK?=
 =?us-ascii?Q?mIy7Aar7cmkBbwvyQsPnvX/UNrvB08rrFdFGVdb5RTZWl4rKIo0z+CiLeG8E?=
 =?us-ascii?Q?gq2jEfdAXcqP4HO1/ajIH2T5tzDeaZpd5l0kPD+wdgl8ZKm8wY2PikY+czfT?=
 =?us-ascii?Q?7NLY/lh4sRFDUMIyE8+/H0axdEGBTh+4YE5aXtgxrspTd2pHhRjMqoKxPQuf?=
 =?us-ascii?Q?Y2O2XGkRqdvsXfEqoyMGkWgjSSkOaFNL8dQlVCKX+mlzU16h8GYl2V4GurEf?=
 =?us-ascii?Q?3CcXfKGIGbkcPzl46p5vyyDBKt1MGlcZ8hoHZyv/66JZtosYBcFyosjATRlm?=
 =?us-ascii?Q?dHbuqWJNZQHtqxAfPOcXN3c63XmU67erZtVf3PURn+DpyTLakiTn0V7uI92x?=
 =?us-ascii?Q?jbNpGs6Pa3Ath8Km7qDV9UWQ9DiPcp1U5VLFHiUk/Ms/YRXu5DEMBG0Vrs09?=
 =?us-ascii?Q?0pS8ueLY7P6AaWrAjIn2JjMvx76Lpcl4k3ZPdP3Q52wKVfclnsM9ZSMFjNJw?=
 =?us-ascii?Q?07z7FDJdW/0m+SrQMEklrciXyiujIPuBWMI3138Uf7cZ9yqb2uGe2keHo/JH?=
 =?us-ascii?Q?oj8J2CpvUMiT76DB65DU+thDqGefBHjGmioFBxMymnoeJbAZtVrkyVJmtoNb?=
 =?us-ascii?Q?G5y7wmOs3DvIvbOrNiLGFjBq7G13k0kl3G8TZ6FuXAsVbjtS3ZolKzMN6h39?=
 =?us-ascii?Q?MjF5jwG0QDbErKywc3WDx/f0nPPSXndWhRx5DJCOaVrph9hsM138YINjdzlL?=
 =?us-ascii?Q?pEd1m0hj1fvktZq4UwoMW0kUYC4RyYkEMcQSLkFkb9DLnXYRRCxWmiUrUNV5?=
 =?us-ascii?Q?n+ueCM8AbRklt0+0mWVxmutcM0LX/VWhEgjwE90NuqLbOTf03L5W5E6vxLo9?=
 =?us-ascii?Q?hTZqAjAfHFl7CrE+iQhg/0ZccDynduPsam1NsVyTHyVK16KdYhek0xUb/WwA?=
 =?us-ascii?Q?2o9PUxU7wDIm4Imjzwk9LJXU/UAAN3mmPE5ptsdc/Ox+YgJDnfmADGBJdUe+?=
 =?us-ascii?Q?RNn0X6KSqGRCd06OJoEPdYpAHsja2OiulBykR8sPRyL70RrsjOlDBGewQSvZ?=
 =?us-ascii?Q?nbMN3xMijA7tMLOxxEZxRIB7iyjMrYL5fiT39uTkRIKlnQYwa1rK590CuXaa?=
 =?us-ascii?Q?yOWCN0+S7MxYtqAAGIk+Awio79HhRjEQWGxuxOZjn0M0c+tbML86b9VWGG08?=
 =?us-ascii?Q?FR6fk6glZNC228aMzGs=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(7416014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:07:08.0565
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4a1d4b4d-448c-459b-8195-08de3933eaf0
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992B.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5967

Function iommu_do_dt_domctl() is the main entry for all device-tree-subset
iommu-related domctl-op, and shall be wrapped with CONFIG_MGMT_HYPERCALLS.
Tracking its calling chain, the following functions shall all be wrapped
with CONFIG_MGMT_HYPERCALLS:
- make PCI_PASSTHROUGH depend on MGMT_HYPERCALLS
- iommu_do_dt_domctl
  - xsm_assign_dtdevice
  - xsm_deassign_dtdevice
  - iommu_deassign_dt_device
    - arm_smmu_reassign_dev
      - arm_smmu_deassign_dev
        - arm_smmu_detach_dev
          - arm_smmu_domain_remove_master
    - ipmmu_reassign_device
      - ipmmu_deassign_device
        - ipmmu_detach_device
  - iommu_remove_dt_device
    - iommu_dt_device_is_assigned_locked
  - dt_find_node_by_gpath
Otherwise all the functions will become unreachable when MGMT_HYPERCALLS=n,
and hence violating Misra rule 2.1
Move codes closer to avoid scattering #ifdef

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4
- split into PCI related subset and DT subset
- Move codes closer to avoid scattering #ifdef
---
v4 -> v5:
- wrap arm_smmu_deassign_dev() declaration with MGMT_HYPERCALLS
- zap the hooks in xen/iommu.h right away
---
 xen/arch/arm/Kconfig                     |   2 +-
 xen/drivers/passthrough/arm/ipmmu-vmsa.c |  26 +++---
 xen/drivers/passthrough/arm/smmu-v3.c    |   6 ++
 xen/drivers/passthrough/arm/smmu.c       |  55 ++++++------
 xen/drivers/passthrough/device_tree.c    | 108 ++++++++++++-----------
 xen/include/xen/iommu.h                  |   2 +-
 xen/include/xsm/dummy.h                  |   6 +-
 xen/include/xsm/xsm.h                    |  12 +--
 xen/xsm/dummy.c                          |   6 +-
 xen/xsm/flask/hooks.c                    |  12 +--
 10 files changed, 127 insertions(+), 108 deletions(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index cf6af68299..5a5d7810c8 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -270,7 +270,7 @@ source "arch/arm/firmware/Kconfig"
 
 config PCI_PASSTHROUGH
 	bool "PCI passthrough" if EXPERT
-	depends on ARM_64 && HAS_PASSTHROUGH
+	depends on ARM_64 && HAS_PASSTHROUGH && MGMT_HYPERCALLS
 	help
 	  This option enables PCI device passthrough
 
diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index ea9fa9ddf3..b1fc14bc32 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -739,16 +739,6 @@ static int ipmmu_attach_device(struct ipmmu_vmsa_domain *domain,
     return 0;
 }
 
-static void ipmmu_detach_device(struct ipmmu_vmsa_domain *domain,
-                                struct device *dev)
-{
-    struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
-    unsigned int i;
-
-    for ( i = 0; i < fwspec->num_ids; ++i )
-        ipmmu_utlb_disable(domain, fwspec->ids[i]);
-}
-
 static int ipmmu_init_platform_device(struct device *dev,
                                       const struct dt_phandle_args *args)
 {
@@ -1138,7 +1128,9 @@ static void ipmmu_free_root_domain(struct ipmmu_vmsa_domain *domain)
     xfree(domain);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int ipmmu_deassign_device(struct domain *d, struct device *dev);
+#endif
 
 static int ipmmu_assign_device(struct domain *d, u8 devfn, struct device *dev,
                                uint32_t flag)
@@ -1254,6 +1246,17 @@ out:
     return ret;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
+static void ipmmu_detach_device(struct ipmmu_vmsa_domain *domain,
+                                struct device *dev)
+{
+    struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
+    unsigned int i;
+
+    for ( i = 0; i < fwspec->num_ids; ++i )
+        ipmmu_utlb_disable(domain, fwspec->ids[i]);
+}
+
 static int ipmmu_deassign_device(struct domain *d, struct device *dev)
 {
     struct ipmmu_vmsa_xen_domain *xen_domain = dom_iommu(d)->arch.priv;
@@ -1309,6 +1312,7 @@ static int ipmmu_reassign_device(struct domain *s, struct domain *t,
 
     return 0;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static int ipmmu_dt_xlate(struct device *dev,
                           const struct dt_phandle_args *spec)
@@ -1487,7 +1491,9 @@ static const struct iommu_ops ipmmu_iommu_ops =
     .teardown        = ipmmu_iommu_domain_teardown,
     .iotlb_flush     = ipmmu_iotlb_flush,
     .assign_device   = ipmmu_assign_device,
+#ifdef CONFIG_MGMT_HYPERCALLS
     .reassign_device = ipmmu_reassign_device,
+#endif
     .map_page        = arm_iommu_map_page,
     .unmap_page      = arm_iommu_unmap_page,
     .dt_xlate        = ipmmu_dt_xlate,
diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
index bf153227db..1d85341e72 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -1490,8 +1490,10 @@ static bool arm_smmu_sid_in_range(struct arm_smmu_device *smmu, u32 sid)
 static struct arm_smmu_device *arm_smmu_get_by_dev(const struct device *dev);
 static int arm_smmu_assign_dev(struct domain *d, u8 devfn, struct device *dev,
 			       u32 flag);
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn,
 				 struct device *dev);
+#endif
 
 static int arm_smmu_add_device(u8 devfn, struct device *dev)
 {
@@ -2759,6 +2761,7 @@ out:
 	return ret;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn, struct device *dev)
 {
 	struct iommu_domain *io_domain = arm_smmu_get_domain(d, dev);
@@ -2826,6 +2829,7 @@ static int arm_smmu_reassign_dev(struct domain *s, struct domain *t,
 
 	return 0;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static int arm_smmu_iommu_xen_domain_init(struct domain *d)
 {
@@ -2862,7 +2866,9 @@ static const struct iommu_ops arm_smmu_iommu_ops = {
 	.teardown		= arm_smmu_iommu_xen_domain_teardown,
 	.iotlb_flush		= arm_smmu_iotlb_flush,
 	.assign_device		= arm_smmu_assign_dev,
+#ifdef CONFIG_MGMT_HYPERCALLS
 	.reassign_device	= arm_smmu_reassign_dev,
+#endif
 	.map_page		= arm_iommu_map_page,
 	.unmap_page		= arm_iommu_unmap_page,
 	.dt_xlate		= arm_smmu_dt_xlate,
diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/arm/smmu.c
index 22d306d0cb..a75ec08633 100644
--- a/xen/drivers/passthrough/arm/smmu.c
+++ b/xen/drivers/passthrough/arm/smmu.c
@@ -894,8 +894,10 @@ static int register_smmu_master(struct arm_smmu_device *smmu,
 /* Forward declaration */
 static int arm_smmu_assign_dev(struct domain *d, u8 devfn,
 			       struct device *dev, u32 flag);
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn,
 				 struct device *dev);
+#endif
 
 /*
  * The driver which supports generic IOMMU DT bindings must have this
@@ -1699,21 +1701,6 @@ static int arm_smmu_domain_add_master(struct arm_smmu_domain *smmu_domain,
 	return 0;
 }
 
-static void arm_smmu_domain_remove_master(
-				const struct arm_smmu_domain *smmu_domain,
-				struct arm_smmu_master_cfg *cfg)
-{
-	uint32_t i, idx;
-	struct arm_smmu_device *smmu = smmu_domain->smmu;
-	struct arm_smmu_s2cr *s2cr = smmu->s2crs;
-	const struct iommu_fwspec *fwspec = arm_smmu_get_fwspec(cfg);
-
-	for_each_cfg_sme(cfg, i, idx, fwspec->num_ids) {
-		s2cr[idx] = s2cr_init_val;
-		arm_smmu_write_s2cr(smmu, idx);
-	}
-}
-
 static int arm_smmu_attach_dev(struct iommu_domain *domain, struct device *dev)
 {
 	int ret;
@@ -1761,16 +1748,6 @@ static int arm_smmu_attach_dev(struct iommu_domain *domain, struct device *dev)
 	return arm_smmu_domain_add_master(smmu_domain, cfg);
 }
 
-static void arm_smmu_detach_dev(struct iommu_domain *domain, struct device *dev)
-{
-	struct arm_smmu_domain *smmu_domain = domain->priv;
-	struct arm_smmu_master_cfg *cfg = find_smmu_master_cfg(dev);
-
-	if (cfg)
-		arm_smmu_domain_remove_master(smmu_domain, cfg);
-
-}
-
 #if 0 /*
        * Xen: The page table is shared with the processor, therefore
        * helpers to implement separate is not necessary.
@@ -2849,6 +2826,31 @@ out:
 	return ret;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
+static void arm_smmu_domain_remove_master(
+                                const struct arm_smmu_domain *smmu_domain,
+                                struct arm_smmu_master_cfg *cfg)
+{
+        uint32_t i, idx;
+        struct arm_smmu_device *smmu = smmu_domain->smmu;
+        struct arm_smmu_s2cr *s2cr = smmu->s2crs;
+        const struct iommu_fwspec *fwspec = arm_smmu_get_fwspec(cfg);
+
+        for_each_cfg_sme(cfg, i, idx, fwspec->num_ids) {
+                s2cr[idx] = s2cr_init_val;
+                arm_smmu_write_s2cr(smmu, idx);
+        }
+}
+
+static void arm_smmu_detach_dev(struct iommu_domain *domain, struct device *dev)
+{
+        struct arm_smmu_domain *smmu_domain = domain->priv;
+        struct arm_smmu_master_cfg *cfg = find_smmu_master_cfg(dev);
+
+        if (cfg)
+                arm_smmu_domain_remove_master(smmu_domain, cfg);
+
+}
 static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn,
 				 struct device *dev)
 {
@@ -2918,6 +2920,7 @@ static int arm_smmu_reassign_dev(struct domain *s, struct domain *t,
 
 	return 0;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static int arm_smmu_iommu_domain_init(struct domain *d)
 {
@@ -2956,7 +2959,9 @@ static const struct iommu_ops arm_smmu_iommu_ops = {
     .teardown = arm_smmu_iommu_domain_teardown,
     .iotlb_flush = arm_smmu_iotlb_flush,
     .assign_device = arm_smmu_assign_dev,
+#ifdef CONFIG_MGMT_HYPERCALLS
     .reassign_device = arm_smmu_reassign_dev,
+#endif
     .map_page = arm_iommu_map_page,
     .unmap_page = arm_iommu_unmap_page,
     .dt_xlate = arm_smmu_dt_xlate_generic,
diff --git a/xen/drivers/passthrough/device_tree.c b/xen/drivers/passthrough/device_tree.c
index bdbae0f8bf..bcc4f44a71 100644
--- a/xen/drivers/passthrough/device_tree.c
+++ b/xen/drivers/passthrough/device_tree.c
@@ -60,6 +60,14 @@ fail:
     return rc;
 }
 
+int iommu_dt_domain_init(struct domain *d)
+{
+    INIT_LIST_HEAD(&dom_iommu(d)->dt_devices);
+
+    return 0;
+}
+
+#ifdef CONFIG_MGMT_HYPERCALLS
 int iommu_deassign_dt_device(struct domain *d, struct dt_device_node *dev)
 {
     const struct domain_iommu *hd = dom_iommu(d);
@@ -102,14 +110,6 @@ static bool iommu_dt_device_is_assigned_locked(const struct dt_device_node *dev)
     return assigned;
 }
 
-int iommu_dt_domain_init(struct domain *d)
-{
-    INIT_LIST_HEAD(&dom_iommu(d)->dt_devices);
-
-    return 0;
-}
-
-#ifdef CONFIG_MGMT_HYPERCALLS
 int iommu_release_dt_devices(struct domain *d)
 {
     const struct domain_iommu *hd = dom_iommu(d);
@@ -213,51 +213,6 @@ int iommu_add_dt_pci_sideband_ids(struct pci_dev *pdev)
 }
 #endif /* CONFIG_HAS_PCI */
 
-int iommu_remove_dt_device(struct dt_device_node *np)
-{
-    const struct iommu_ops *ops = iommu_get_ops();
-    struct device *dev = dt_to_dev(np);
-    int rc;
-
-    ASSERT(rw_is_locked(&dt_host_lock));
-
-    if ( !iommu_enabled )
-        return 1;
-
-    if ( !ops )
-        return -EOPNOTSUPP;
-
-    spin_lock(&dtdevs_lock);
-
-    if ( iommu_dt_device_is_assigned_locked(np) )
-    {
-        rc = -EBUSY;
-        goto fail;
-    }
-
-    if ( !ops->remove_device )
-    {
-        rc = -EOPNOTSUPP;
-        goto fail;
-    }
-
-    /*
-     * De-register the device from the IOMMU driver.
-     * The driver is responsible for removing is_protected flag.
-     */
-    rc = ops->remove_device(0, dev);
-
-    if ( !rc )
-    {
-        ASSERT(!dt_device_is_protected(np));
-        iommu_fwspec_free(dev);
-    }
-
- fail:
-    spin_unlock(&dtdevs_lock);
-    return rc;
-}
-
 int iommu_add_dt_device(struct dt_device_node *np)
 {
     const struct iommu_ops *ops = iommu_get_ops();
@@ -321,6 +276,52 @@ int iommu_add_dt_device(struct dt_device_node *np)
     return rc;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
+int iommu_remove_dt_device(struct dt_device_node *np)
+{
+    const struct iommu_ops *ops = iommu_get_ops();
+    struct device *dev = dt_to_dev(np);
+    int rc;
+
+    ASSERT(rw_is_locked(&dt_host_lock));
+
+    if ( !iommu_enabled )
+        return 1;
+
+    if ( !ops )
+        return -EOPNOTSUPP;
+
+    spin_lock(&dtdevs_lock);
+
+    if ( iommu_dt_device_is_assigned_locked(np) )
+    {
+        rc = -EBUSY;
+        goto fail;
+    }
+
+    if ( !ops->remove_device )
+    {
+        rc = -EOPNOTSUPP;
+        goto fail;
+    }
+
+    /*
+     * De-register the device from the IOMMU driver.
+     * The driver is responsible for removing is_protected flag.
+     */
+    rc = ops->remove_device(0, dev);
+
+    if ( !rc )
+    {
+        ASSERT(!dt_device_is_protected(np));
+        iommu_fwspec_free(dev);
+    }
+
+ fail:
+    spin_unlock(&dtdevs_lock);
+    return rc;
+}
+
 /*
  * dt_find_node_by_gpath - Same as dt_find_node_by_path but retrieve the
  * path from the guest
@@ -459,3 +460,4 @@ int iommu_do_dt_domctl(struct xen_domctl *domctl, struct domain *d,
 
     return ret;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
index 6ca4190eb9..e5e9f98201 100644
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -331,9 +331,9 @@ struct iommu_ops {
     int (*remove_device)(uint8_t devfn, device_t *dev);
     int (*assign_device)(struct domain *d, uint8_t devfn, device_t *dev,
                          uint32_t flag);
+#ifdef CONFIG_MGMT_HYPERCALLS
     int (*reassign_device)(struct domain *s, struct domain *t,
                            uint8_t devfn, device_t *dev);
-#ifdef CONFIG_MGMT_HYPERCALLS
 #ifdef CONFIG_HAS_PCI
     int (*get_device_group_id)(uint16_t seg, uint8_t bus, uint8_t devfn);
 #endif /* HAS_PCI */
diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index 07d69e3725..90fe741fb4 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -431,9 +431,8 @@ static XSM_INLINE int cf_check xsm_deassign_device(
 }
 
 #endif /* CONFIG_HAS_PCI */
-#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
+#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY
 static XSM_INLINE int cf_check xsm_assign_dtdevice(
     XSM_DEFAULT_ARG struct domain *d, const char *dtpath)
 {
@@ -448,7 +447,8 @@ static XSM_INLINE int cf_check xsm_deassign_dtdevice(
     return xsm_default_action(action, current->domain, d);
 }
 
-#endif /* HAS_PASSTHROUGH && HAS_DEVICE_TREE_DISCOVERY */
+#endif /* CONFIG_HAS_DEVICE_TREE_DISCOVERY */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
 static XSM_INLINE int cf_check xsm_resource_plug_core(XSM_DEFAULT_VOID)
 {
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index b331e81f9d..90349d02c2 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -131,12 +131,12 @@ struct xsm_ops {
     int (*assign_device)(struct domain *d, uint32_t machine_bdf);
     int (*deassign_device)(struct domain *d, uint32_t machine_bdf);
 #endif /* CONFIG_HAS_PCI */
-#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
+#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY
     int (*assign_dtdevice)(struct domain *d, const char *dtpath);
     int (*deassign_dtdevice)(struct domain *d, const char *dtpath);
-#endif
+#endif /* CONFIG_HAS_DEVICE_TREE_DISCOVERY */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
     int (*resource_plug_core)(void);
     int (*resource_unplug_core)(void);
@@ -553,9 +553,8 @@ static inline int xsm_deassign_device(
     return alternative_call(xsm_ops.deassign_device, d, machine_bdf);
 }
 #endif /* CONFIG_HAS_PCI */
-#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
+#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY
 static inline int xsm_assign_dtdevice(
     xsm_default_t def, struct domain *d, const char *dtpath)
 {
@@ -568,7 +567,8 @@ static inline int xsm_deassign_dtdevice(
     return alternative_call(xsm_ops.deassign_dtdevice, d, dtpath);
 }
 
-#endif /* HAS_PASSTHROUGH && HAS_DEVICE_TREE_DISCOVERY */
+#endif /* CONFIG_HAS_DEVICE_TREE_DISCOVERY */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
 static inline int xsm_resource_plug_pci(xsm_default_t def, uint32_t machine_bdf)
 {
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index c693e77a7d..1ac4f719ad 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -87,12 +87,12 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .assign_device                 = xsm_assign_device,
     .deassign_device               = xsm_deassign_device,
 #endif /* CONFIG_HAS_PCI */
-#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
+#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY
     .assign_dtdevice               = xsm_assign_dtdevice,
     .deassign_dtdevice             = xsm_deassign_dtdevice,
-#endif
+#endif /* CONFIG_HAS_DEVICE_TREE_DISCOVERY */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
     .resource_plug_core            = xsm_resource_plug_core,
     .resource_unplug_core          = xsm_resource_unplug_core,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index c772f79e16..9c800b574e 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1461,9 +1461,8 @@ static int cf_check flask_deassign_device(
     return avc_current_has_perm(rsid, SECCLASS_RESOURCE, RESOURCE__REMOVE_DEVICE, NULL);
 }
 #endif /* CONFIG_HAS_PCI */
-#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
+#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY
 static int flask_test_assign_dtdevice(const char *dtpath)
 {
     uint32_t rsid;
@@ -1524,7 +1523,8 @@ static int cf_check flask_deassign_dtdevice(
     return avc_current_has_perm(rsid, SECCLASS_RESOURCE, RESOURCE__REMOVE_DEVICE,
                                 NULL);
 }
-#endif /* HAS_PASSTHROUGH && HAS_DEVICE_TREE_DISCOVERY */
+#endif /* CONFIG_HAS_DEVICE_TREE_DISCOVERY */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
 static int cf_check flask_platform_op(uint32_t op)
 {
@@ -1996,12 +1996,12 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .assign_device = flask_assign_device,
     .deassign_device = flask_deassign_device,
 #endif /* CONFIG_HAS_PCI */
-#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
+#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY
     .assign_dtdevice = flask_assign_dtdevice,
     .deassign_dtdevice = flask_deassign_dtdevice,
-#endif
+#endif /* CONFIG_HAS_DEVICE_TREE_DISCOVERY */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
     .platform_op = flask_platform_op,
 #ifdef CONFIG_X86
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:07:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:07:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184952.1507312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuRA-0004nO-SM; Fri, 12 Dec 2025 04:07:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184952.1507312; Fri, 12 Dec 2025 04:07:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuRA-0004n7-M5; Fri, 12 Dec 2025 04:07:24 +0000
Received: by outflank-mailman (input) for mailman id 1184952;
 Fri, 12 Dec 2025 04:07:23 +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
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuQv-0007Dl-8y
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:07:09 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 05557dea-d710-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 05:07:06 +0100 (CET)
Received: from BL6PEPF00013E03.NAMP222.PROD.OUTLOOK.COM
 (2603:10b6:22e:400:0:1001:0:1b) by DS0PR12MB7584.namprd12.prod.outlook.com
 (2603:10b6:8:13b::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.9; Fri, 12 Dec
 2025 04:07:02 +0000
Received: from BL02EPF0002992D.namprd02.prod.outlook.com
 (2a01:111:f403:f901::7) by BL6PEPF00013E03.outlook.office365.com
 (2603:1036:903:4::4) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.6 via Frontend Transport; Fri,
 12 Dec 2025 04:07:02 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0002992D.mail.protection.outlook.com (10.167.249.58) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:07:02 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:06:56 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 05557dea-d710-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ULoZrgPWshFwCo6OOQyEa0aQRZE/nkE8TFL2gsqqBd/h/IqJLlKYtnQeOLnIldbEeoHt3nS65/bGIYM3qdtw6AUb7/moehVAsr2R82at+ditstBHPGhYtjZLpJBmHfXf/AL+nuIpxC5mYmTXV7JVpNH0kZW3cVdYlz6LySVPLQ47QXwlKjHcU/OuB9hKvJFZctMEg8uVCh0DFrJIUna2ur6qDNxdcsDhBlhYsXYflhmPzkLThg0lyukE8CjLYyx6or1OQhm37hWGqWmmx0i79o2MSR87BLmRwKz/ToVkVE7H1Virobj1zabkwIciCzECyk2ZJ9mmx0vZEN9tKm7tuQ==
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=4hSsMPp+Gwf1XzRD1dfz9efboZW2JkZdEhihPPv5904=;
 b=EXdvIzbXbPVbF8gjLe3Why7kHaO0q/Sv8khXRBsh1mDGe0zfmiwyaGk8jLhDB3kSNtb28MnuHyxOI5ZRhOPvln8iLUdiBJIEBz54j7WoWPYpbs8eDUk5Sz/mAP6Be0TgPF+P+fwSOOT2aCJ5ksTysCySU8rUzSwtl5N9WmYB0JqYAGO40cG5odlqc5BkeOJrFN05rQxoDaDZ1MRsE/VBKjiO0M0xD+F6LxKe3DZNn2DEZ7Ai6Ynj8uuhL3zut/tV4N3cExLk7XMrCO0phObY/xAL+aPYQ6vSbKVo3GhxLDXqD0zqm4t2RyAHivA1IHaplZPJF/uIilMWpzfksc+yPw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4hSsMPp+Gwf1XzRD1dfz9efboZW2JkZdEhihPPv5904=;
 b=PauBnWC7ULFfbbZDHXHlmt9iWR1LQDV2M0y9Vx7pmhXzl6xYrFOxuSxaioHykfrvREzkv5Ua1/u+00YvNNe80DB1d0m92w5qPh18zPxeTv3CEq2+owOblk1cuUXQuoJcAoXY59SGf1rUrLgu+wtIgeGt4WQyQNZTaNAU+C7VMUs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Michal
 Orzel" <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>,
	"Oleksii Kurochko" <oleksii.kurochko@gmail.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v5 13/24] xen/domctl: wrap arch-specific domain_set_time_offset() with CONFIG_MGMT_HYPERCALLS
Date: Fri, 12 Dec 2025 12:01:58 +0800
Message-ID: <20251212040209.1970553-14-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992D:EE_|DS0PR12MB7584:EE_
X-MS-Office365-Filtering-Correlation-Id: 1039f12a-7642-4c66-3cff-08de3933e77a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?3vP0vjNDnEG0Z5iKSakAYxSdaUel/3wafOwfiyLrcQBFOm3SbT1Aw0x3CyQJ?=
 =?us-ascii?Q?Ogh1JnPm3/Uv4nJOKyCSrW+UpRtqNZdA8lywBPAqzIMc6DYkWVXRYCNQC/kc?=
 =?us-ascii?Q?od5gMLM9WZMEjRkFYGKo266qRQVTRvn0JQzQ15r6RcNjStA3IRDGJuO/fRmv?=
 =?us-ascii?Q?2FeD4ncUqERq840Zi88ZbTRtJ+HQxuolG9gjENtOonqtCdXUWxwl3/vKxpQZ?=
 =?us-ascii?Q?yc2g/g5hw9H/NqJ/nUrQgqEClyfMopDzvCpI4PdIjL+tFNBFuTvUI/qXG0Bp?=
 =?us-ascii?Q?dR08PU/9PTi9J0v4pm6h3jtdhGHlpqbZPgS3nVzIOtOg0BwjqpyyW55P9ewD?=
 =?us-ascii?Q?h2F1EIXqSjmSc2YzXwgdzwtkn1Nxr1+s1TFCqvldrQFNytMPbk0qWhV6TfNH?=
 =?us-ascii?Q?6mtqG1wh1Ee91EyXmADRwGvEFLijgbgnj3oQh6+oNSZ5scPSEK/rB6es/F8j?=
 =?us-ascii?Q?5ZL2H7mV2pCReQC1jkk7ANnAf+xlsEN4uqrMj0H0YVKCht4nSJibepmF9YsB?=
 =?us-ascii?Q?TnrXt45aAVNDVPH0jjuxWYX+skyrNNvyyu07L9Q7MpytjUWoqrzHBBxOSEkl?=
 =?us-ascii?Q?n4Gfia93+okn+Q+JVpp3pzLzo77928KfYQLrorOrjl0VQp3JTehOnenLYFNl?=
 =?us-ascii?Q?5V6Kv88HtJcefwYXV92ALICnE604dEKuMtIcCz6R8VipF83qGtAwoYAcgNtg?=
 =?us-ascii?Q?Oib1SislO8jNjg3+V7P/hEDcMGAZXjsqU5dR1AayIEWDEyJhTLcmAaK7zZay?=
 =?us-ascii?Q?6gWtickPqOPjdrSkAqzd9K6IosMdtIE6bfVQ2iNNwXSncFRsoLznuvBpQfZZ?=
 =?us-ascii?Q?Exid2ONlWEZmJ1rD6GSmG7MMuAakNmfZnxS/6bHWsBfgi2eHeXdvhIg0klUa?=
 =?us-ascii?Q?2oAVUMMI3JL/frG8hhr+mzKhdS/FB3qiT8jAuzPtLLDMs8ZpWIlr+YBE9/yT?=
 =?us-ascii?Q?B4ZOE3bMhw1ZBrlOu8Mh55sJKJO6ZCbF5AVK/wgbudFwm9q1jDD+rMGUkZxn?=
 =?us-ascii?Q?wHeg58wxkQiDT6c+0VphnHGzG49mKvERTRrl6GHP3Dp4pRrv8aW64vrLjyXc?=
 =?us-ascii?Q?b6qU9U1p/Wb43Si7zOqMzsDSFQ7/Hf9rY2+iV9AureqVIV8YvYHtK2oGTbit?=
 =?us-ascii?Q?qi32InTggpVehnOU3eQFX9qq2Xdg+cPpYl41R/tqklDz9FrtHH2gcytYYHKa?=
 =?us-ascii?Q?hTQT8p7g/Uk5GVntgcaNb1eaajdogz9FIBH4sbd7vsYtYl3gnkHQ+AQhZJLO?=
 =?us-ascii?Q?RzXueJLQz3UqM+wDz/yV+uVARAoLtEBiHhJWbCFxWG4hnQBGA/5vNnhCmRW9?=
 =?us-ascii?Q?Ilvge8cpGUZIXl8DloJMhm5PCD0KQxxSexUjimGN5dJAF0V9oJN/1KoJbnqT?=
 =?us-ascii?Q?UjW2VcZVLhBCAVweHRAZsPL8qco0/cL+MxuTZ2RKnvcdQkt6NJoy77P1oP8i?=
 =?us-ascii?Q?tjmYBsTmKJF4p+9NlMc3Bpfghxd7wTocRG5i+nlfyNonDtCZk4S3qwEHP1rD?=
 =?us-ascii?Q?HUV7kNA+AANkAZdYOBFwTHA2bn3osX+o5ZYH+5QdnXkMtJ3NvB8l5wWYfHNu?=
 =?us-ascii?Q?K7BVc/F45JTEG3cmyAI=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026)(7416014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:07:02.2425
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1039f12a-7642-4c66-3cff-08de3933e77a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992D.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7584

Arch-specific domain_set_time_offset() is responisble for
XEN_DOMCTL_settimeoffset domctl-op, and shall be wrapped with
CONFIG_MGMT_HYPERCALLS. Otherwise it will become unreachable when
MGMT_HYPERCALLS=n, and hence violating Misra rule 2.1.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Jan Beulich <jbeulich@suse.com> # x86
---
v1 -> v2:
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
- wrap XEN_DOMCTL_settimeoffset-case transiently
---
v2 -> v3:
- add back stub wrapping for riscv
- address "violating Misra rule 2.1" in commit message
- remove transient wrapping around XEN_DOMCTL_settimeoffset-case
---
 xen/arch/arm/time.c    | 2 ++
 xen/arch/riscv/stubs.c | 2 ++
 xen/arch/x86/time.c    | 2 ++
 3 files changed, 6 insertions(+)

diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
index 3710eab109..a40b233f9d 100644
--- a/xen/arch/arm/time.c
+++ b/xen/arch/arm/time.c
@@ -378,12 +378,14 @@ void force_update_vcpu_system_time(struct vcpu *v)
     update_vcpu_system_time(v);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds)
 {
     d->time_offset.seconds = time_offset_seconds;
     d->time_offset.set = true;
     /* XXX update guest visible wallclock time */
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static int cpu_time_callback(struct notifier_block *nfb,
                              unsigned long action,
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index c2e6af2c43..a8a0b4156a 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -31,10 +31,12 @@ void send_timer_event(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds)
 {
     BUG_ON("unimplemented");
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /* domctl.c */
 
diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c
index ece9ae0b34..8ba2dd9395 100644
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -1841,6 +1841,7 @@ static void update_domain_rtc(void)
     rcu_read_unlock(&domlist_read_lock);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds)
 {
     d->time_offset.seconds = time_offset_seconds;
@@ -1849,6 +1850,7 @@ void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds)
         rtc_update_clock(d);
     update_domain_wallclock_time(d);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 int cpu_frequency_change(u64 freq)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:07:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:07:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184955.1507322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuRC-0005Ai-9i; Fri, 12 Dec 2025 04:07:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184955.1507322; Fri, 12 Dec 2025 04:07:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuRC-00059Q-36; Fri, 12 Dec 2025 04:07:26 +0000
Received: by outflank-mailman (input) for mailman id 1184955;
 Fri, 12 Dec 2025 04:07:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuR1-0007SS-S2
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:07:15 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 09083059-d710-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 05:07:12 +0100 (CET)
Received: from BL6PEPF00013DF6.NAMP222.PROD.OUTLOOK.COM
 (2603:10b6:22e:400:0:1001:0:a) by SN7PR12MB8817.namprd12.prod.outlook.com
 (2603:10b6:806:347::8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.8; Fri, 12 Dec
 2025 04:07:05 +0000
Received: from BL02EPF0002992D.namprd02.prod.outlook.com
 (2a01:111:f403:f901::7) by BL6PEPF00013DF6.outlook.office365.com
 (2603:1036:903:4::4) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.9 via Frontend Transport; Fri,
 12 Dec 2025 04:07:05 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0002992D.mail.protection.outlook.com (10.167.249.58) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:07:05 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:07:02 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 09083059-d710-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cSwyoK6vazECKfMyXZQGuDC8+bn0B4xzcPRjoXZfQw9L3nOZToKxM7KXmpuLC9bCHE6QqWDk1+NKScTXoAKPiWqgQdm8P1pnsaPoiFjcQIoK7c1f5do0AXKa3VQfqrPHGMeS2AxSOXTbEwKBFrHrzWI5Il4khX+VAXE5dGgfZJ8xyB3BgCmpoVOhzD98mmBTnE/DvzgDZKejs35i7hQHDFeKVzB/EnfU1vDg6iQBcbfpRBeClSjNWy1KIddBvx340ycqWnqGltj3Byuiql0DMgjIIjSE+yM4LxPINcHIk127wm2m5unOksbX2IfhSaomYEuGgvW+cSxfo0Bh7EsHSw==
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=xmIanaYhA7lDAz9D81o3iTrsQ8uyDXNxse6wMqaVzko=;
 b=o+bWDfhxjXEqIHWbMahNQ7M9b6CLibDZZ5zI0gO3k80JsKmHzQ+kVxyJM1Bua7VVjn74apTBzUUsC+KDC9G11FsGMqTAMWeDNrwvypd/PZyszJk56POBu4mW24D6SXhPZwDL4VRFUvk01VixBfndse6SsQl78Ijzh5MYWFXmXv78uFHTnMNCyb2/aVvwR6UIykg+fqSbPbrAkQZTooMOMuzpM9q/baym8pTpxDiA5Pza464RW6pl7GwxD9+TubuvlaXUhWQD9KP/WXk6Q9EJNB8hlmHn51xUWIK9kNi/C2AtAwpq8uoPzbBP+e5xo5UJqouUpIOCFd6RX9rErvOlrQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xmIanaYhA7lDAz9D81o3iTrsQ8uyDXNxse6wMqaVzko=;
 b=Dvv5OaP55+WM7ZMnpMz6QgFeXM5xnVnh9Vg6BgM5CUps8KNdj5NTwqUSC2cQgwbV6Pb8ZcmFvN+08B6iq3K400B5DnkHXBci6r+oJqqxmFSf9kdcb8133faWdiEDJqMvVysGRBdyyf7cmLryF3ykzxWXUwkghZbjB6KWqa4EIW0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>, "Daniel P.
 Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v5 15/24] xen/domctl: wrap pci-subset iommu-related domctl op with CONFIG_MGMT_HYPERCALLS
Date: Fri, 12 Dec 2025 12:02:00 +0800
Message-ID: <20251212040209.1970553-16-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992D:EE_|SN7PR12MB8817:EE_
X-MS-Office365-Filtering-Correlation-Id: e734c53d-e29d-4e7a-cd37-08de3933e947
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?/uQVslx0txzvGNuWuq0JWftz3WmeCtox+1jBeK384hLA+smeI4SABYyAc9PE?=
 =?us-ascii?Q?YHLnv1MkDYfxGz+WF81ADQD1qTEO5Zmj4dhT9K04H91PalkM2KXX/u9DHCMC?=
 =?us-ascii?Q?LgIBZ8q9OWEIDjuGUqghoElbYJv20MmfBP+ZADaWCbd9zcdvkKfYnJgaZixM?=
 =?us-ascii?Q?J6N2QaY4KlO+xnorkRzQ4uutUIHPn0fA0pYTSrRR1ORjViqFqH/r7Uunv4H2?=
 =?us-ascii?Q?eY9nsywhmxFOa4aOcXKP/d1QlQNCzIAlN/h5yO8qMJm8iKo/ngTOeotfiZX0?=
 =?us-ascii?Q?TVnaKKwsQ5p8IHUGlPlVueL92iBgOE1oF3eu38METRuTKOZ/6AJAN5VbNBBf?=
 =?us-ascii?Q?TXWMzoCZBflcye0WWsKf+Gdkrp5iopCXyF4u5Bde79fkBQ92hJZHh0oSZVIe?=
 =?us-ascii?Q?3ogQbC5zxmqUWGQbvF5oGUTzQWUg5NAZXQ9xVW+OfCt38zRjBkBWwYNhEgU8?=
 =?us-ascii?Q?tLMbRWVW9ILHvk91UlhBR4JV+kgfF9SEaOciPMKe5zGV/ZQhKvykYXl6GPSh?=
 =?us-ascii?Q?6PxgG0FfXUGMOiL/Qfu0Jwh+vJpTKQ5NWLE01klO1kOmM6XQNrs7p1R+ZTqf?=
 =?us-ascii?Q?hU2Ja+BMcEgaYe3tALxXF/i9ze8+TnqmqOraMhR0vJKJToGNCzVIMIj4j1hf?=
 =?us-ascii?Q?AfmkDdI0eGzsYZIKkwdjzQnpliI7kom56qETgZP6D6ctdakWgiuarsHEy1wf?=
 =?us-ascii?Q?EcYz4ts2wu2t0tvcvCeTLIGKLvXEF/zrAEDfud5HzkOwoSlYJEn4xoHGgXjO?=
 =?us-ascii?Q?EGrmJ0XEAffAlGH2c18SWtHLkLsAJczUvj0bxwShV1udqpSBv3wL42loMau7?=
 =?us-ascii?Q?y9+W71o5Exa5yhY4AHGyhCeFB5+ahQVmbUcRUy71n3myte2VqR4eQ8KIlgnj?=
 =?us-ascii?Q?iztcbQAK1fMLwoZSx/q0PP1iPZyCkCwfqGLk0WW8BZO0wOo9hPpPkW/k0fE/?=
 =?us-ascii?Q?khh/NcJ7n0SiWZnsi5K/M5REVX9FmCCcNIbCkv51043PKfnpvVlg4WYgescY?=
 =?us-ascii?Q?P4pBj8m2P2shNxqANdZ4SbT0g4EGp/1OGVZsggf+/yQ5amX/FEkRI7TM7Vx0?=
 =?us-ascii?Q?953VWwwBvWsSXLORLL8CYXlUmErfO9TnS/gXqCPfS7WeJvKUXeCsNaIXTAwm?=
 =?us-ascii?Q?8BUpQWof0Y7h/na3sxzbeJxEaJIXtWW7WwRkJA0cKA1cgO/n4z6rDxaUFtir?=
 =?us-ascii?Q?lrF3Nkm3WW20gIWGTcxontNQxHw77IAHntTsKKj7HWRVMLXEPa+IaSNyHF6+?=
 =?us-ascii?Q?tCYRWtdtNliwdMOleNmz4qA74TAF8TfUgPkWf3wv4mHLxYl64z66wlMzamhp?=
 =?us-ascii?Q?oiOT0lB87WrwtRFd0AY0+UQc1wR7oRm93atAw7i4IIrCD0F71POt9IM+8LTu?=
 =?us-ascii?Q?zZWv9P5Qj8g/ygBXQASwkcHk4G8AvN7R/nmat/mIijRrw0hZB2E4Tvz/xudg?=
 =?us-ascii?Q?WM1DXKOQq/K4+v2V9N6qUvldf/SVmGeyuJpnfZbazmcLTn10cjBGB2B8S6TT?=
 =?us-ascii?Q?2Qn4/IvwuAWCi3bBn/bKt8iwquJfyh66xM4/LXBwYsBGEVwSfeyP5zfqrlit?=
 =?us-ascii?Q?yK2WpBaVvS5cEzrfVrM=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:07:05.2674
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e734c53d-e29d-4e7a-cd37-08de3933e947
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992D.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB8817

Function iommu_do_pci_domctl() is the main entry for pci-subset
iommu-related domctl-op, and shall be wrapped with CONFIG_MGMT_HYPERCALLS.
Tracking its calling chain, the following functions shall all be wrapped
with CONFIG_MGMT_HYPERCALLS:
- iommu_do_pci_domctl
  - iommu_get_device_group
    - xsm_get_device_group
    - iommu_ops.get_device_group_id
      - amd_iommu_group_id/intel_iommu_group_id
  - device_assigned
  - xsm_assign_device
  - assign_device
    - iommu_ops.assign_device
      - intel_iommu_assign_device/amd_iommu_assign_device
  - xsm_deassign_device
  - deassign_device
    - iommu_ops.reassign_device
      - reassign_device_ownership/reassign_device
Otherwise all the functions will become unreachable when MGMT_HYPERCALLS=n,
and hence violating Misra rule 2.1

The PCI-part in ARM, (regarding codes under HAS_PCI), will be taken care of
later when guarding PCI_PASSTHROUGH with MGMT_HYPERCALLS, as the Kconfig
select chain in ARM is as follows:
HAS_VPCI_GUEST_SUPPORT if PCI_PASSTHROUGH -> HAS_VPCI -> HAS_PCI
So making PCI_PASSTHROUGH depend on MGMT_HYPERCALLS will recursively leading
HAS_PCI depend on MGMT_HYPERCALLS too in ARM.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
- wrap XEN_DOMCTL_assign_device{test_assign_device,deassign_device,
 get_device_group}-case transiently
---
v2 -> v3:
- make PCI_PASSTHROUGH(, then HAS_VPCI_GUEST_SUPPORT) depend on MGMT_HYPERCALLS
- add wrapping for iommu_remove_dt_device/iommu_dt_device_is_assigned_locked/
arm_smmu_detach_dev/arm_smmu_domain_remove_master
- fold commit
"xen/xsm: wrap xsm-iommu-related functions with CONFIG_MGMT_HYPERCALLS" in
- fix overly long #ifdef
- add missing wrapping in xsm/dummy.h
- address "violating Misra rule 2.1" in commit message
- remove transient wrapping of
XEN_DOMCTL_assign_device{test_assign_device,deassign_device,get_device_group}-case
---
v3 -> v4:
- move codes to wrap with a single #ifdef
- split into PCI related subset and DT subset
---
v4 -> v5:
- Hook .get_device_group_id should be properly dealt with in xen/iommu.h
right away
- Add description for how PCI-part will be dealt in ARM
---
 xen/drivers/passthrough/amd/pci_amd_iommu.c | 20 ++++----
 xen/drivers/passthrough/pci.c               | 52 +++++++++++----------
 xen/drivers/passthrough/vtd/iommu.c         |  6 ++-
 xen/include/xen/iommu.h                     |  2 +
 xen/include/xsm/dummy.h                     |  6 ++-
 xen/include/xsm/xsm.h                       | 12 +++--
 xen/xsm/dummy.c                             |  6 ++-
 xen/xsm/flask/hooks.c                       | 12 +++--
 8 files changed, 70 insertions(+), 46 deletions(-)

diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/passthrough/amd/pci_amd_iommu.c
index 3a14770855..576b36af92 100644
--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
+++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
@@ -461,6 +461,7 @@ static void amd_iommu_disable_domain_device(const struct domain *domain,
         spin_unlock_irqrestore(&iommu->lock, flags);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check reassign_device(
     struct domain *source, struct domain *target, u8 devfn,
     struct pci_dev *pdev)
@@ -551,6 +552,14 @@ static int cf_check amd_iommu_assign_device(
     return rc;
 }
 
+static int cf_check amd_iommu_group_id(u16 seg, u8 bus, u8 devfn)
+{
+    unsigned int bdf = PCI_BDF(bus, devfn);
+
+    return (bdf < ivrs_bdf_entries) ? get_dma_requestor_id(seg, bdf) : bdf;
+}
+#endif /* CONFIG_MGMT_HYPERCALLS */
+
 static void cf_check amd_iommu_clear_root_pgtable(struct domain *d)
 {
     struct domain_iommu *hd = dom_iommu(d);
@@ -698,13 +707,6 @@ static int cf_check amd_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
     return 0;
 }
 
-static int cf_check amd_iommu_group_id(u16 seg, u8 bus, u8 devfn)
-{
-    unsigned int bdf = PCI_BDF(bus, devfn);
-
-    return (bdf < ivrs_bdf_entries) ? get_dma_requestor_id(seg, bdf) : bdf;
-}
-
 #include <asm/io_apic.h>
 
 static void amd_dump_page_table_level(struct page_info *pg, int level,
@@ -772,14 +774,16 @@ static const struct iommu_ops __initconst_cf_clobber _iommu_ops = {
     .quarantine_init = amd_iommu_quarantine_init,
     .add_device = amd_iommu_add_device,
     .remove_device = amd_iommu_remove_device,
-    .assign_device  = amd_iommu_assign_device,
     .teardown = amd_iommu_domain_destroy,
     .clear_root_pgtable = amd_iommu_clear_root_pgtable,
     .map_page = amd_iommu_map_page,
     .unmap_page = amd_iommu_unmap_page,
     .iotlb_flush = amd_iommu_flush_iotlb_pages,
+#ifdef CONFIG_MGMT_HYPERCALLS
+    .assign_device  = amd_iommu_assign_device,
     .reassign_device = reassign_device,
     .get_device_group_id = amd_iommu_group_id,
+#endif
     .enable_x2apic = iov_enable_xt,
     .update_ire_from_apic = amd_iommu_ioapic_update_ire,
     .update_ire_from_msi = amd_iommu_msi_msg_update_ire,
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 422e45f5a6..8ab229bfe7 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -878,6 +878,7 @@ int pci_remove_device(u16 seg, u8 bus, u8 devfn)
     return ret;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 /* Caller should hold the pcidevs_lock */
 static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
                            uint8_t devfn)
@@ -946,7 +947,6 @@ static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
     return ret;
 }
 
-#ifdef CONFIG_MGMT_HYPERCALLS
 int pci_release_devices(struct domain *d)
 {
     int combined_ret;
@@ -1484,6 +1484,7 @@ static int iommu_remove_device(struct pci_dev *pdev)
     return iommu_call(hd->platform_ops, remove_device, devfn, pci_to_dev(pdev));
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int device_assigned(u16 seg, u8 bus, u8 devfn)
 {
     struct pci_dev *pdev;
@@ -1648,30 +1649,6 @@ static int iommu_get_device_group(
     return i;
 }
 
-void iommu_dev_iotlb_flush_timeout(struct domain *d, struct pci_dev *pdev)
-{
-    pcidevs_lock();
-
-    disable_ats_device(pdev);
-
-    ASSERT(pdev->domain);
-    if ( d != pdev->domain )
-    {
-        pcidevs_unlock();
-        return;
-    }
-
-    pdev->broken = true;
-
-    if ( !d->is_shutting_down && printk_ratelimit() )
-        printk(XENLOG_ERR "dom%d: ATS device %pp flush failed\n",
-               d->domain_id, &pdev->sbdf);
-    if ( !is_hardware_domain(d) )
-        domain_crash(d);
-
-    pcidevs_unlock();
-}
-
 int iommu_do_pci_domctl(
     struct xen_domctl *domctl, struct domain *d,
     XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
@@ -1805,6 +1782,31 @@ int iommu_do_pci_domctl(
 
     return ret;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
+
+void iommu_dev_iotlb_flush_timeout(struct domain *d, struct pci_dev *pdev)
+{
+    pcidevs_lock();
+
+    disable_ats_device(pdev);
+
+    ASSERT(pdev->domain);
+    if ( d != pdev->domain )
+    {
+        pcidevs_unlock();
+        return;
+    }
+
+    pdev->broken = true;
+
+    if ( !d->is_shutting_down && printk_ratelimit() )
+        printk(XENLOG_ERR "dom%d: ATS device %pp flush failed\n",
+               d->domain_id, &pdev->sbdf);
+    if ( !is_hardware_domain(d) )
+        domain_crash(d);
+
+    pcidevs_unlock();
+}
 
 struct segment_iter {
     int (*handler)(struct pci_dev *pdev, void *arg);
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index 90f36ac22b..ad2e657bca 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -2742,6 +2742,7 @@ static int __init cf_check vtd_setup(void)
     return ret;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check reassign_device_ownership(
     struct domain *source,
     struct domain *target,
@@ -2937,6 +2938,7 @@ static int cf_check intel_iommu_group_id(u16 seg, u8 bus, u8 devfn)
 
     return PCI_BDF(bus, devfn);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static int __must_check cf_check vtd_suspend(void)
 {
@@ -3245,14 +3247,16 @@ static const struct iommu_ops __initconst_cf_clobber vtd_ops = {
     .add_device = intel_iommu_add_device,
     .enable_device = intel_iommu_enable_device,
     .remove_device = intel_iommu_remove_device,
-    .assign_device  = intel_iommu_assign_device,
     .teardown = iommu_domain_teardown,
     .clear_root_pgtable = iommu_clear_root_pgtable,
     .map_page = intel_iommu_map_page,
     .unmap_page = intel_iommu_unmap_page,
     .lookup_page = intel_iommu_lookup_page,
+#ifdef CONFIG_MGMT_HYPERCALLS
+    .assign_device  = intel_iommu_assign_device,
     .reassign_device = reassign_device_ownership,
     .get_device_group_id = intel_iommu_group_id,
+#endif
     .enable_x2apic = intel_iommu_enable_eim,
     .disable_x2apic = intel_iommu_disable_eim,
     .update_ire_from_apic = io_apic_write_remap_rte,
diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
index 37c4a1dc82..6ca4190eb9 100644
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -333,9 +333,11 @@ struct iommu_ops {
                          uint32_t flag);
     int (*reassign_device)(struct domain *s, struct domain *t,
                            uint8_t devfn, device_t *dev);
+#ifdef CONFIG_MGMT_HYPERCALLS
 #ifdef CONFIG_HAS_PCI
     int (*get_device_group_id)(uint16_t seg, uint8_t bus, uint8_t devfn);
 #endif /* HAS_PCI */
+#endif /* MGMT_HYPERCALLS */
 
     void (*teardown)(struct domain *d);
 
diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index 92291ac9e5..07d69e3725 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -407,7 +407,8 @@ static XSM_INLINE int cf_check xsm_get_vnumainfo(
     return xsm_default_action(action, current->domain, d);
 }
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_MGMT_HYPERCALLS)
+#ifdef CONFIG_HAS_PCI
 static XSM_INLINE int cf_check xsm_get_device_group(
     XSM_DEFAULT_ARG uint32_t machine_bdf)
 {
@@ -429,7 +430,8 @@ static XSM_INLINE int cf_check xsm_deassign_device(
     return xsm_default_action(action, current->domain, d);
 }
 
-#endif /* HAS_PASSTHROUGH && HAS_PCI */
+#endif /* CONFIG_HAS_PCI */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
 static XSM_INLINE int cf_check xsm_assign_dtdevice(
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index b76eb22429..b331e81f9d 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -125,11 +125,13 @@ struct xsm_ops {
     int (*pci_config_permission)(struct domain *d, uint32_t machine_bdf,
                                  uint16_t start, uint16_t end, uint8_t access);
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_MGMT_HYPERCALLS)
+#ifdef CONFIG_HAS_PCI
     int (*get_device_group)(uint32_t machine_bdf);
     int (*assign_device)(struct domain *d, uint32_t machine_bdf);
     int (*deassign_device)(struct domain *d, uint32_t machine_bdf);
-#endif
+#endif /* CONFIG_HAS_PCI */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
     int (*assign_dtdevice)(struct domain *d, const char *dtpath);
@@ -532,7 +534,8 @@ static inline int xsm_pci_config_permission(
     return alternative_call(xsm_ops.pci_config_permission, d, machine_bdf, start, end, access);
 }
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_MGMT_HYPERCALLS)
+#ifdef CONFIG_HAS_PCI
 static inline int xsm_get_device_group(xsm_default_t def, uint32_t machine_bdf)
 {
     return alternative_call(xsm_ops.get_device_group, machine_bdf);
@@ -549,7 +552,8 @@ static inline int xsm_deassign_device(
 {
     return alternative_call(xsm_ops.deassign_device, d, machine_bdf);
 }
-#endif /* HAS_PASSTHROUGH && HAS_PCI) */
+#endif /* CONFIG_HAS_PCI */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
 static inline int xsm_assign_dtdevice(
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index f6986dd2bb..c693e77a7d 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -81,11 +81,13 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .pci_config_permission         = xsm_pci_config_permission,
     .get_vnumainfo                 = xsm_get_vnumainfo,
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_MGMT_HYPERCALLS)
+#ifdef CONFIG_HAS_PCI
     .get_device_group              = xsm_get_device_group,
     .assign_device                 = xsm_assign_device,
     .deassign_device               = xsm_deassign_device,
-#endif
+#endif /* CONFIG_HAS_PCI */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
     .assign_dtdevice               = xsm_assign_dtdevice,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 9c1298697c..c772f79e16 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1388,7 +1388,8 @@ static int cf_check flask_mem_sharing(struct domain *d)
 }
 #endif
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_MGMT_HYPERCALLS)
+#ifdef CONFIG_HAS_PCI
 static int cf_check flask_get_device_group(uint32_t machine_bdf)
 {
     uint32_t rsid;
@@ -1459,7 +1460,8 @@ static int cf_check flask_deassign_device(
 
     return avc_current_has_perm(rsid, SECCLASS_RESOURCE, RESOURCE__REMOVE_DEVICE, NULL);
 }
-#endif /* HAS_PASSTHROUGH && HAS_PCI */
+#endif /* CONFIG_HAS_PCI */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
 static int flask_test_assign_dtdevice(const char *dtpath)
@@ -1988,11 +1990,13 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .remove_from_physmap = flask_remove_from_physmap,
     .map_gmfn_foreign = flask_map_gmfn_foreign,
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_MGMT_HYPERCALLS)
+#ifdef CONFIG_HAS_PCI
     .get_device_group = flask_get_device_group,
     .assign_device = flask_assign_device,
     .deassign_device = flask_deassign_device,
-#endif
+#endif /* CONFIG_HAS_PCI */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
     .assign_dtdevice = flask_assign_dtdevice,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:07:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:07:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1184964.1507332 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuRF-0005l8-RL; Fri, 12 Dec 2025 04:07:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1184964.1507332; Fri, 12 Dec 2025 04:07:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuRF-0005km-MS; Fri, 12 Dec 2025 04:07:29 +0000
Received: by outflank-mailman (input) for mailman id 1184964;
 Fri, 12 Dec 2025 04:07:28 +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
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuQj-0007Dl-4x
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:06:57 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fea1d79d-d70f-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 05:06:55 +0100 (CET)
Received: from MN2PR03CA0001.namprd03.prod.outlook.com (2603:10b6:208:23a::6)
 by BL3PR12MB9049.namprd12.prod.outlook.com (2603:10b6:208:3b8::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.11; Fri, 12 Dec
 2025 04:06:49 +0000
Received: from BL02EPF0002992C.namprd02.prod.outlook.com
 (2603:10b6:208:23a:cafe::98) by MN2PR03CA0001.outlook.office365.com
 (2603:10b6:208:23a::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.16 via Frontend Transport; Fri,
 12 Dec 2025 04:06:49 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0002992C.mail.protection.outlook.com (10.167.249.57) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:06:49 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:06:45 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fea1d79d-d70f-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sz8JwfxmHzsdSuAgQaHd56ckYEGXu9kU0BFgiJyz0PrX9Xcu21TE7B81XtIiHXutqZIWLyB+W1FzqkvUCBc1kBR9109P5v4G22z5BS5ciuVQVDwRzofOblFRI+U+s5V2FmjmMJ8aG14aA4JQGBZgUqEjirdUwB1qBBC/1IDvVvUsUaqQH+/jtUG46p7Kty3QUhRBc1EL7PdSj1srhWhOHxNRuL2cuZ2ZJttwkIq69Ou4PCmg8zrTOmCbwLfeRNLuiNGSoaBMCVJQTDNLvMItXDj2ijEvm2nBXmU3Y/GdWM5cJ9fIaoewoKVWUglPyYBxX/0zLDaUP4+hqC1/t2kCHA==
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=JzuQmmqlcML7KE9IskVKiovSk6+95AR+dO+1iepoyl0=;
 b=giH5Tn3F1XMSzSldZf93Mb6oXxg29RgczuH5F8J0Zmhd9ufse8rpeqAc+bB9XtrBauUws86dFtZbYXaeUIqjTp7jchM03scQFoo73xSr0x4rmOSILPTWHNkznMHK3E1KwqkJQPbKVlCOAK76HqDbQtYzoYYT6q0AYZnVmVlc0g5LEmGRF5Sm8lWSFQ+9ReXmdwPOFiASUDq9yL06HHpceB2t5ISTJNQtBsa5B0UGZQ9RgJCLSA+v3NRugqyhcNt18FCQNzFDnK99i2C74ZZxcIzOW138aim3qfxGNL5lRxuLeBKqBYUNMlqKLoqQ3YgJQ32mxUaT+Bsqmf3ZoRtwCw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JzuQmmqlcML7KE9IskVKiovSk6+95AR+dO+1iepoyl0=;
 b=48Z0FePR27lT0PdMyFRis0wDVpn6WP5iiEGP89SVz19u/NJN88Y+0xL1wBGfbs/GVFxil24DxWhEVbGw5L+v+R3AuFpSTuL/ffRjMCaKnb8+HFjX7z98qW0VvAXGZS2/+MUOiSjwaKvdYHz+3TH7fRjzHF1o4GrUOYNX8xRq3qI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Michal
 Orzel" <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, "Connor
 Davis" <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v5 09/24] xen/domctl: wrap domain_kill() with CONFIG_MGMT_HYPERCALLS
Date: Fri, 12 Dec 2025 12:01:54 +0800
Message-ID: <20251212040209.1970553-10-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992C:EE_|BL3PR12MB9049:EE_
X-MS-Office365-Filtering-Correlation-Id: 40b072cd-f243-42e9-00d8-08de3933dfe2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|7416014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?6D3R8FBVf97GIx5nNLvqOt56sTW5Q1K9hRfM8Iull8jf22GG2deaqPIgode2?=
 =?us-ascii?Q?KKR1RBK+RBZDvb5lYfwBCjlgWk11V4EtCbqb/SWzi2itMNPyBx/uLIAHGo0b?=
 =?us-ascii?Q?jwY6NZ2N5GKKpownrvCYbeajZxqh+iy/UeLINmzNPC5uIvQLIEzAwwdei8N4?=
 =?us-ascii?Q?so7wsJOLADJn5El6sPX2sJRjHjEHBt7iDqa6oKUjvxt29scZReI3vF2/5Q2D?=
 =?us-ascii?Q?dCYfkZYnICB3kGHCtVrH4pPkf6SqcxUvSkG8RcFdeoDfnW0+WGW2GlGHUQyn?=
 =?us-ascii?Q?PKYOMPnYlugKLkUapP9zeiztMKBn8YqXefZaobNaeMzoMcCaaSA6XEO0ZEnq?=
 =?us-ascii?Q?Im+5BuMcgspFHMJsgPT1YYH1hBo0CrGW125boR/LLmd1ke0cAofqYlYCOfjX?=
 =?us-ascii?Q?IZBKvmmzalSO4f4xWWC8TuqmDbehCvlHBbIMbPz127K41IiIE8wDdEc9Vb7i?=
 =?us-ascii?Q?P9tyI1gIK04aFRKQFJSCgoLDiY4P8Gv+sL3lt35v1YE/Zk3072FC22ODgXyi?=
 =?us-ascii?Q?P6YPKnZ62G/xZ1Hizb9poQ6MkFzfRokiBERKHzFqMxmE2UtPNjzMUOf/JIM+?=
 =?us-ascii?Q?0BRmSP2vn3ao1xkPVy0NT3lsdlKpIMICTRijJuLI4DLd3+Mh3YllIWBmbJsd?=
 =?us-ascii?Q?YkNXDUlezv4J3CjlDKyNDTtAehmCJ4Ttqt6Sk3yQi1Cp/kdbrNoYZCqGRp5g?=
 =?us-ascii?Q?s1fMZXY1Xyf4IA/QGdlbnyoThjTBWkpN/BaQUL7t6jnyRLQprcVIcw3BEGNs?=
 =?us-ascii?Q?rDqzPLB9EeHodDKbNvzHxjkwAX/244aWgLyXryapgGrBcWWdRHtjAY6SlH25?=
 =?us-ascii?Q?hPVmgVipMb3vEhDwROSMELDfydzB0MEtICa1o5mKbE533dCXkQdrvGTEKbwB?=
 =?us-ascii?Q?KfCWP6hP9Wgusr6bxX3BxP6ITY4+U4GUX8UCdRaRmKtBcg7oUDVH80uk1ctI?=
 =?us-ascii?Q?zXMkeiv3WkSeh7M61XRKgQAmFKcj5YMhVOiwlOrEJ+phtHCwEXchklrsAZ1N?=
 =?us-ascii?Q?pM1v5eVbOriPzWlpgJ/m96gWfGEUAUdlPKWUkyZC9ogAdpp0nd1phq1B5OcD?=
 =?us-ascii?Q?FOWpHmsD5MDRter2C9cSF/wtUERo47YeYK6I9CWyHqTd6HNGrigLmV869u47?=
 =?us-ascii?Q?iTAjevdZnltkL04ZLynP9EoHQwSnXhbuvLn9PbkjKsRJQapzACOBHMXYoPuG?=
 =?us-ascii?Q?6lFf9i/KWR7Uzt3+l4x5DhfMpQa7RQIXsXjd/TUHHkLULmBte9xfshM8sTEF?=
 =?us-ascii?Q?konOtjMaFcmjZ1TC3aXYdp4+XuolaOQcOOQLfwJ/6WZkomvaqAaWPNxZrj1d?=
 =?us-ascii?Q?u/WlYBoob7SVUZ4vHaLEFBlJYBogHDw+E8EIQ3TZAR9iHoICtg3Z0YYl9Fkv?=
 =?us-ascii?Q?5RDCHHAKo8Ub3u/9j+DfypmE3sWqGnnrBqW9dJOzhUAZzOr7sAJyRGHqKgxC?=
 =?us-ascii?Q?RARGMifHZWm/lZpGbYHqCnUfQUu0g+YkmmWajiyGcvNjaLv3rJ1dpba8VHZm?=
 =?us-ascii?Q?WF32oJZK9OZdvFDrAN2yBPQoo5V51ymu8/K2UbMJeOM2IX0Pkq7W0Ek4nUwx?=
 =?us-ascii?Q?k5lL9KYyFpJxj4jNMYA=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(7416014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:06:49.5061
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 40b072cd-f243-42e9-00d8-08de3933dfe2
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992C.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB9049

Function domain_kill() is responsible for killing domain and relinquish
domain-held resources. and it is only invoked under
XEN_DOMCTL_destroydomain-case. So it shall be wrapped with
CONFIG_MGMT_HYPERCALLS.
Tracking its calling chain, the following functions could also be wrapped with
CONFIG_MGMT_HYPERCALLS:
- domain_relinquish_resource
  - pci_release_device
  - paging_teardown
    - p2m_pod_empty_cache
  - relinquish_memory
  - pit_deinit
  - iommu_release_dt_devices
  - tee_relinquish_resources
    - ffa_relinquish_resources/optee_relinquish_resources
  - relinquish_p2m_mapping
  - p2m_clear_root_pages
Otherwise all these functions will become unreachable codes when
MGMT_HYPERCALLS=n, and hence violating Misra rule 2.1.
The reason why {arch_}domain_teardown() is not wrapped is that it is also used
on the failure path of domain_create(). And the exclusion of
paging_final_teardown() is blocked by domain_destroy(), which will be
triggered when d->refcnt equals zero.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
v1 -> v2:
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
- wrap XEN_DOMCTL_destroydomain-case transiently
---
v2 -> v3:
- add back stub wrapping in ppc/riscv
- address "violating Misra rule 2.1" in commit message
- remove transient wrapping around XEN_DOMCTL_destroydomain-case
---
v3 -> v4:
- remove diff in mem_sharing.c
- add description for some functions to aid review
---
 xen/arch/arm/domain.c                 | 3 +++
 xen/arch/arm/include/asm/tee/tee.h    | 2 ++
 xen/arch/arm/mmu/p2m.c                | 4 ++++
 xen/arch/arm/mpu/p2m.c                | 2 ++
 xen/arch/arm/tee/ffa.c                | 4 ++++
 xen/arch/arm/tee/optee.c              | 4 ++++
 xen/arch/arm/tee/tee.c                | 2 ++
 xen/arch/ppc/stubs.c                  | 2 ++
 xen/arch/riscv/stubs.c                | 2 ++
 xen/arch/x86/domain.c                 | 2 ++
 xen/arch/x86/emul-i8254.c             | 2 ++
 xen/arch/x86/mm/p2m-pod.c             | 2 ++
 xen/arch/x86/mm/p2m.c                 | 2 ++
 xen/arch/x86/mm/paging.c              | 2 ++
 xen/common/domain.c                   | 2 ++
 xen/drivers/passthrough/device_tree.c | 2 ++
 xen/drivers/passthrough/pci.c         | 2 ++
 17 files changed, 41 insertions(+)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 47973f99d9..049cc8923b 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -959,6 +959,7 @@ int arch_vcpu_reset(struct vcpu *v)
     return 0;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int relinquish_memory(struct domain *d, struct page_list_head *list)
 {
     struct page_info *page, *tmp;
@@ -1110,6 +1111,8 @@ int domain_relinquish_resources(struct domain *d)
 
 #undef PROGRESS
 
+#endif /* CONFIG_MGMT_HYPERCALLS */
+
 void arch_dump_domain_info(struct domain *d)
 {
     p2m_dump_info(d);
diff --git a/xen/arch/arm/include/asm/tee/tee.h b/xen/arch/arm/include/asm/tee/tee.h
index 15d664e28d..f4187c5dc3 100644
--- a/xen/arch/arm/include/asm/tee/tee.h
+++ b/xen/arch/arm/include/asm/tee/tee.h
@@ -40,12 +40,14 @@ struct tee_mediator_ops {
     int (*domain_teardown)(struct domain *d);
     void (*free_domain_ctx)(struct domain *d);
 
+#ifdef CONFIG_MGMT_HYPERCALLS
     /*
      * Called during domain destruction to relinquish resources used
      * by mediator itself. This function can return -ERESTART to indicate
      * that it does not finished work and should be called again.
      */
     int (*relinquish_resources)(struct domain *d);
+#endif
 
     /* Handle SMCCC call for current domain. */
     bool (*handle_call)(struct cpu_user_regs *regs);
diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
index 51abf3504f..30d6071e91 100644
--- a/xen/arch/arm/mmu/p2m.c
+++ b/xen/arch/arm/mmu/p2m.c
@@ -1243,6 +1243,7 @@ static void p2m_invalidate_table(struct p2m_domain *p2m, mfn_t mfn)
     p2m->need_flush = true;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 /*
  * The domain will not be scheduled anymore, so in theory we should
  * not need to flush the TLBs. Do it for safety purpose.
@@ -1262,6 +1263,7 @@ void p2m_clear_root_pages(struct p2m_domain *p2m)
 
     p2m_write_unlock(p2m);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /*
  * Invalidate all entries in the root page-tables. This is
@@ -1556,6 +1558,7 @@ int p2m_init(struct domain *d)
     return 0;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 /*
  * The function will go through the p2m and remove page reference when it
  * is required. The mapping will be removed from the p2m.
@@ -1626,6 +1629,7 @@ int relinquish_p2m_mapping(struct domain *d)
 
     return rc;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /*
  * Clean & invalidate RAM associated to the guest vCPU.
diff --git a/xen/arch/arm/mpu/p2m.c b/xen/arch/arm/mpu/p2m.c
index f7fb58ab6a..c44297a9e3 100644
--- a/xen/arch/arm/mpu/p2m.c
+++ b/xen/arch/arm/mpu/p2m.c
@@ -57,10 +57,12 @@ bool p2m_resolve_translation_fault(struct domain *d, gfn_t gfn)
 
 void p2m_flush_vm(struct vcpu *v) {}
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int relinquish_p2m_mapping(struct domain *d)
 {
     return 0;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 void p2m_domain_creation_finished(struct domain *d) {}
 
diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 1d0239cf69..f9ba9b60bf 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -469,10 +469,12 @@ static void ffa_free_domain_ctx(struct domain *d)
     XFREE(d->arch.tee);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int ffa_relinquish_resources(struct domain *d)
 {
     return 0;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static void ffa_init_secondary(void)
 {
@@ -623,7 +625,9 @@ static const struct tee_mediator_ops ffa_ops =
     .domain_init = ffa_domain_init,
     .domain_teardown = ffa_domain_teardown,
     .free_domain_ctx = ffa_free_domain_ctx,
+#ifdef CONFIG_MGMT_HYPERCALLS
     .relinquish_resources = ffa_relinquish_resources,
+#endif
     .handle_call = ffa_handle_call,
 };
 
diff --git a/xen/arch/arm/tee/optee.c b/xen/arch/arm/tee/optee.c
index 5151bd90ed..1ed0fd231d 100644
--- a/xen/arch/arm/tee/optee.c
+++ b/xen/arch/arm/tee/optee.c
@@ -632,6 +632,7 @@ static void free_optee_shm_buf_pg_list(struct optee_domain *ctx,
                  cookie);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int optee_relinquish_resources(struct domain *d)
 {
     struct arm_smccc_res resp;
@@ -693,6 +694,7 @@ static int optee_relinquish_resources(struct domain *d)
 
     return 0;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 #define PAGELIST_ENTRIES_PER_PAGE                       \
     ((OPTEE_MSG_NONCONTIG_PAGE_SIZE / sizeof(u64)) - 1)
@@ -1727,7 +1729,9 @@ static const struct tee_mediator_ops optee_ops =
     .probe = optee_probe,
     .domain_init = optee_domain_init,
     .domain_teardown = optee_domain_teardown,
+#ifdef CONFIG_MGMT_HYPERCALLS
     .relinquish_resources = optee_relinquish_resources,
+#endif
     .handle_call = optee_handle_call,
 };
 
diff --git a/xen/arch/arm/tee/tee.c b/xen/arch/arm/tee/tee.c
index 8501443c8e..a8e160700f 100644
--- a/xen/arch/arm/tee/tee.c
+++ b/xen/arch/arm/tee/tee.c
@@ -65,6 +65,7 @@ int tee_domain_teardown(struct domain *d)
     return cur_mediator->ops->domain_teardown(d);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int tee_relinquish_resources(struct domain *d)
 {
     if ( !cur_mediator )
@@ -72,6 +73,7 @@ int tee_relinquish_resources(struct domain *d)
 
     return cur_mediator->ops->relinquish_resources(d);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 uint16_t tee_get_type(void)
 {
diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index 9953ea1c6c..4d03a927ee 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -229,10 +229,12 @@ int arch_vcpu_reset(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int domain_relinquish_resources(struct domain *d)
 {
     BUG_ON("unimplemented");
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 void arch_dump_domain_info(struct domain *d)
 {
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index cb19a83280..c2e6af2c43 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -203,10 +203,12 @@ int arch_vcpu_reset(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int domain_relinquish_resources(struct domain *d)
 {
     BUG_ON("unimplemented");
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 void arch_dump_domain_info(struct domain *d)
 {
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 5e37bfbd17..b103301d7a 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -2289,6 +2289,7 @@ void sync_vcpu_execstate(struct vcpu *v)
            read_atomic(&v->dirty_cpu) != dirty_cpu);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int relinquish_memory(
     struct domain *d, struct page_list_head *list, unsigned long type)
 {
@@ -2613,6 +2614,7 @@ int domain_relinquish_resources(struct domain *d)
 
     return 0;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 void arch_dump_domain_info(struct domain *d)
 {
diff --git a/xen/arch/x86/emul-i8254.c b/xen/arch/x86/emul-i8254.c
index 144aa168a3..f106ab794c 100644
--- a/xen/arch/x86/emul-i8254.c
+++ b/xen/arch/x86/emul-i8254.c
@@ -651,6 +651,7 @@ void pit_init(struct domain *d)
     pit_reset(d);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 void pit_deinit(struct domain *d)
 {
     PITState *pit = domain_vpit(d);
@@ -664,6 +665,7 @@ void pit_deinit(struct domain *d)
         destroy_periodic_time(&pit->pt0);
     }
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /*
  * Local variables:
diff --git a/xen/arch/x86/mm/p2m-pod.c b/xen/arch/x86/mm/p2m-pod.c
index 05633fe2ac..4e915808f4 100644
--- a/xen/arch/x86/mm/p2m-pod.c
+++ b/xen/arch/x86/mm/p2m-pod.c
@@ -366,6 +366,7 @@ void p2m_pod_get_mem_target(const struct domain *d, xen_pod_target_t *target)
     pod_unlock(p2m);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int p2m_pod_empty_cache(struct domain *d)
 {
     struct p2m_domain *p2m = p2m_get_hostp2m(d);
@@ -409,6 +410,7 @@ int p2m_pod_empty_cache(struct domain *d)
     unlock_page_alloc(p2m);
     return p2m->pod.count ? -ERESTART : 0;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 int
 p2m_pod_offline_or_broken_hit(struct page_info *p)
diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c
index 2763f9a6be..a5db8e6d4a 100644
--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
@@ -2097,6 +2097,7 @@ int xenmem_add_to_physmap_one(
     return rc;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 /*
  * Remove foreign mappings from the p2m, as that drops the page reference taken
  * when mapped.
@@ -2160,6 +2161,7 @@ int relinquish_p2m_mapping(struct domain *d)
 
     return rc;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 void p2m_log_dirty_range(struct domain *d, unsigned long begin_pfn,
                          unsigned long nr, uint8_t *dirty_bitmap)
diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
index 65455a6867..116389d4e9 100644
--- a/xen/arch/x86/mm/paging.c
+++ b/xen/arch/x86/mm/paging.c
@@ -768,6 +768,7 @@ void paging_vcpu_teardown(struct vcpu *v)
         shadow_vcpu_teardown(v);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 /* Call when destroying a domain */
 int paging_teardown(struct domain *d)
 {
@@ -794,6 +795,7 @@ int paging_teardown(struct domain *d)
 
     return rc;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /* Call once all of the references to the domain have gone away */
 void paging_final_teardown(struct domain *d)
diff --git a/xen/common/domain.c b/xen/common/domain.c
index f24f3675aa..6819494649 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1221,6 +1221,7 @@ int rcu_lock_live_remote_domain_by_id(domid_t dom, struct domain **d)
     return 0;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int domain_kill(struct domain *d)
 {
     int rc = 0;
@@ -1271,6 +1272,7 @@ int domain_kill(struct domain *d)
 
     return rc;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 
 void __domain_crash(struct domain *d)
diff --git a/xen/drivers/passthrough/device_tree.c b/xen/drivers/passthrough/device_tree.c
index eb0c233977..bdbae0f8bf 100644
--- a/xen/drivers/passthrough/device_tree.c
+++ b/xen/drivers/passthrough/device_tree.c
@@ -109,6 +109,7 @@ int iommu_dt_domain_init(struct domain *d)
     return 0;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int iommu_release_dt_devices(struct domain *d)
 {
     const struct domain_iommu *hd = dom_iommu(d);
@@ -137,6 +138,7 @@ int iommu_release_dt_devices(struct domain *d)
 
     return 0;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static int iommu_dt_xlate(struct device *dev,
                           const struct dt_phandle_args *iommu_spec,
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 52c22fa50c..422e45f5a6 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -946,6 +946,7 @@ static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
     return ret;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int pci_release_devices(struct domain *d)
 {
     int combined_ret;
@@ -1004,6 +1005,7 @@ int pci_release_devices(struct domain *d)
 
     return combined_ret;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 #define PCI_CLASS_BRIDGE_HOST    0x0600
 #define PCI_CLASS_BRIDGE_PCI     0x0604
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:17:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:17:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185018.1507341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTub4-00013l-Rh; Fri, 12 Dec 2025 04:17:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185018.1507341; Fri, 12 Dec 2025 04:17:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTub4-00013e-OT; Fri, 12 Dec 2025 04:17:38 +0000
Received: by outflank-mailman (input) for mailman id 1185018;
 Fri, 12 Dec 2025 04:17:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuRH-0007SS-0h
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:07:31 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11f87d82-d710-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 05:07:27 +0100 (CET)
Received: from BL0PR02CA0011.namprd02.prod.outlook.com (2603:10b6:207:3c::24)
 by LV8PR12MB9110.namprd12.prod.outlook.com (2603:10b6:408:18b::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.7; Fri, 12 Dec
 2025 04:07:22 +0000
Received: from BL02EPF00029929.namprd02.prod.outlook.com
 (2603:10b6:207:3c:cafe::38) by BL0PR02CA0011.outlook.office365.com
 (2603:10b6:207:3c::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.8 via Frontend Transport; Fri,
 12 Dec 2025 04:07:25 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF00029929.mail.protection.outlook.com (10.167.249.54) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:07:22 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:07:20 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11f87d82-d710-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WUFHwTMtB18A/9HHDSu44CHTGVdTGTHU52FAVUDuVaQAKWhdkXdGC2t//RIrxNjcrpiQDr9oVlaHzHKeALYQ+ufISxtut9Wn6v0mNnlRTERA7U9LAzG7ykWnVFXp+F67h2ANWWhFxc3e1d9v+qNyiyT9Xkh7Jq4XM6RR65V4gnXc+V2GxLT0dAPLEqQ8UW/QTtlTdZChpphzdQI0nSoObPoEfpeE0KjjbRxeNceFOw8f6gEnI5iYqPlgv6Iaa4/pDDMSao2+Hj7NqadEYJLPFG5Cdl6Dd81CnAKcP82fb2KNk1SmRbHrKhNF+blWJbu8jIKDO38a60+oyDmbDw7dPw==
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=8CDjhjNeGSnpu7WULKozeSHXwJMukMwEQH7YbEo2lUA=;
 b=aUerMAYA4jPiclG9rauJ8U7CyfHEElt3Qy9OoiyGiOX12Oj2gu5gk/SRxXYkacw2rM03Jm/6Ba7Pk3daL+zvLT6K1wQSPNJhCmmGS5/WXOQMRlh0l6g/PP7usv4F02bBvt0b/fn0rJQn9b9dHoc5Ub4TLmVx54/M+Y2Oy8e3gqWCw2vealf4FKjy5Ez8jTSqU1KhCsfb4edF2ll0566zEB0ODD95h/V6lCkzH5R0uBZyLVV6G1vHXPgLXgDj8n/KqB5vOeNhh2rheTTkM4GRCaU1jUHXvDh2EWBORtlf9VvtLME6tRxP0EbpRRCEFNpSBQcTfokeDIoloHKQ7J9xLA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8CDjhjNeGSnpu7WULKozeSHXwJMukMwEQH7YbEo2lUA=;
 b=UNcmC38UBQZaRFtC6ZU2lrVxsaokTG1Ry5tLKouM/GnlDfhY8Wxg8r/Eezu9x5lj52/g66U7Z1ClGFh28YS9mzOg2QiKIcbSPM+3si3MtK33iEGts7jTAzKMSzF2tehTZrHzP1LESwBIwSUFpXFK7cOimZqMdwDuj1kVHqOok8c=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v5 22/24] x86/hvm: domctl_lock synchronization only when MGMT_HYPERCALLS=y
Date: Fri, 12 Dec 2025 12:02:07 +0800
Message-ID: <20251212040209.1970553-23-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00029929:EE_|LV8PR12MB9110:EE_
X-MS-Office365-Filtering-Correlation-Id: 523a287a-b7b2-435c-2d9a-08de3933f3cc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?1VoL6zvcy2WF1CMSaBoMno598uddqzaj7gPi/wDN6rLfFyIO17+1aNB7Vi01?=
 =?us-ascii?Q?UNYA9r7CTUVA7IHlXmNl/ayRMDBoYQdAqksqiEN1aKn7+1K3mgq6rEFP0svQ?=
 =?us-ascii?Q?XtJRJiF0xX2UpiZVMR0We6TmqhA/NHGgUo9SVG9yg/qWxBu/LSXD+JzgdodJ?=
 =?us-ascii?Q?MpzmJJ2gd37v+WjaK1s7n6m+53/0bSzLUi9DD6IWGqZ39XnnHvnECXUNjc2E?=
 =?us-ascii?Q?Sv3mctO49uFFDBl54KDVB4bCWCkfzIfHEeJAO8ji5vE0P66GoN0xK936PtKj?=
 =?us-ascii?Q?2aDNEU7MKW9AVAn6+Hv+7SUn7XtGKgVRK8byz4D+v6fub7Jyez69IB1ev6vG?=
 =?us-ascii?Q?YXtdCkDS7NIXlF6/YYgwqDvGcxFpjQFzHsJi3WPZlz3W0AIWdDV2FQYdE0Cw?=
 =?us-ascii?Q?Ch4uJazb4S3s7wyTmmIrKFvebjntYJBHFkIE1ADE4vYuuXIyX0ibj1j8b/FC?=
 =?us-ascii?Q?It+XDF9Iztk1ytqysiUH5p7JqIC3MkGC0OByfVoaYErhLzRXFic+uh7jlFt5?=
 =?us-ascii?Q?0aOT7OGhpLHu9hN4zH1xF9UNMWjl1GMv7IgfLvhkpa9677yb0VCp7xR8uznP?=
 =?us-ascii?Q?8ydBQj859vccqees4TTIgiWJVpheh9OzGME2JsCOpFZPxqq51vU77EFXihRH?=
 =?us-ascii?Q?x74mkLxoqWB7aDeH6IWcORo5CdamlsJZSoADVY+njHBNZd9B8HAiHdy7+2Pp?=
 =?us-ascii?Q?lojh1dyivOQ3xIi4qmUYy9tytL5HcJQ5z0IST48iYNrJM73B7yq3bVAar1ll?=
 =?us-ascii?Q?VT72zb2KzuMTC+iQqEunMYWSvVOlmkVKWK3g1xHtZskfsurw9mJgc9JsBaJF?=
 =?us-ascii?Q?UIjPWKXTC+493jpYfSTp0sI0DaASLMr6NMmU2x3uz8hW5UMQc4iY6QCmYpIa?=
 =?us-ascii?Q?dmmODf/OTNGxUkRbQmHR15t+9i8uQmTeixR0lZFNoIeaaVGXRDraZ1kKtrV8?=
 =?us-ascii?Q?TfI2IUQmCOj2IMCdmKuvZF8SXe76ERPjFvb1pwXGzsHOsajgFJlXbqmJcInv?=
 =?us-ascii?Q?hEPFkDV/5y9ZJvSP2hn2hsMrDx0u6DEgfR+Dd3P2bG9fngvujVA1P11gEUY3?=
 =?us-ascii?Q?jE2x4iq58wvD9hUAoBzJYl8LGTVEBstwcx2DNY73U/I9tNtLkkx5gbcqccCI?=
 =?us-ascii?Q?Xv6Kv8Vu6uZgC+nE8YVedPgKMkTyuid+yeLUDIoxk/p33AmYjRGGC1mT2vQn?=
 =?us-ascii?Q?OXi94iIld67ZL7d4X2FS7NcyGUpvM1cDYFQZkXrEik1vsBb5u94hB3k1d1EN?=
 =?us-ascii?Q?A3SKdCd8TNkdEi6WK0CzkdxNcVCgUT5oVUfYJ8qFxATG/pDXdMDFhelY1HYv?=
 =?us-ascii?Q?HqeoNzpc6Nr7hVC7LHjqrVolq3KRrH3HiuWV+Uyw4H5bX3s7EKPPwcEpOeA3?=
 =?us-ascii?Q?vPj3kCyURtfICH1zBP9VebWlJYfDeZFD/CVJePrLF1qFadp8PL8r6VYTSjH3?=
 =?us-ascii?Q?XUEQCOU83rv76I8+1ycAUt3e42A6m9ZC4U054iDILuVD1aP6eW64XlaA0NVE?=
 =?us-ascii?Q?haCiwYjU9yLrAmqKBXUYm+8QHV+3UG1B1pMOTwxEis7cvzDMpuR/VAYRpWAC?=
 =?us-ascii?Q?VyfT5BuiEywWm8pCCGo=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:07:22.9192
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 523a287a-b7b2-435c-2d9a-08de3933f3cc
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00029929.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9110

Helper domctl_lock_{acquire,release}() is domctl_lock, which HVM_PARAM_IDENT_PT
uses to ensure synchronization on potential domctl-op altering guest state.
So it is only needed when MGMT_HYPERCALLS=y.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
v3 -> v4:
- new commit
---
v4 -> v5:
- refine title and commit message
---
 xen/arch/x86/hvm/hvm.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index ce75fb7839..b52dd8f1c4 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -4272,7 +4272,7 @@ static int hvm_set_param(struct domain *d, uint32_t index, uint64_t value)
          * the domctl_lock.
          */
         rc = -ERESTART;
-        if ( !domctl_lock_acquire() )
+        if ( IS_ENABLED(CONFIG_MGMT_HYPERCALLS) && !domctl_lock_acquire() )
             break;
 
         rc = 0;
@@ -4282,7 +4282,8 @@ static int hvm_set_param(struct domain *d, uint32_t index, uint64_t value)
             paging_update_cr3(v, false);
         domain_unpause(d);
 
-        domctl_lock_release();
+        if ( IS_ENABLED(CONFIG_MGMT_HYPERCALLS) )
+            domctl_lock_release();
         break;
     case HVM_PARAM_DM_DOMAIN:
         /* The only value this should ever be set to is DOMID_SELF */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:17:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:17:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185026.1507352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTubG-0001Q0-7V; Fri, 12 Dec 2025 04:17:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185026.1507352; Fri, 12 Dec 2025 04:17:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTubG-0001Pt-4f; Fri, 12 Dec 2025 04:17:50 +0000
Received: by outflank-mailman (input) for mailman id 1185026;
 Fri, 12 Dec 2025 04:17:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuRG-0007SS-0i
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:07:30 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11be36f9-d710-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 05:07:27 +0100 (CET)
Received: from BL0PR02CA0013.namprd02.prod.outlook.com (2603:10b6:207:3c::26)
 by DS7PR12MB6285.namprd12.prod.outlook.com (2603:10b6:8:96::8) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.11; Fri, 12 Dec 2025 04:07:18 +0000
Received: from BL02EPF00029929.namprd02.prod.outlook.com
 (2603:10b6:207:3c:cafe::37) by BL0PR02CA0013.outlook.office365.com
 (2603:10b6:207:3c::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.8 via Frontend Transport; Fri,
 12 Dec 2025 04:07:20 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF00029929.mail.protection.outlook.com (10.167.249.54) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:07:18 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:07:15 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11be36f9-d710-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xtJBKnUIRPK6mTgGDpg11uAgkOTxIDKcTltV0NRSu6LOnebC6K+Jnn3pmA+JzFAz1fM9YHPGgeCUtMj2EKr4ocCAyPJW447VWU0svziDVlLz3DqrZOhaEb0R1V7AoRvzelOxV9uDmGme1kjJzJ2IBxxjJrYW3kX9mSlUJjws8hzsR2BiKnH149Cn/kZFLbtvIZHOJfnWpMVsVZWZWbctudmixUnxbIgoqKSF1tD5Z6wJdD0Fnq3GcwD3XGX90VOmthxCD4LNxhVUDmdSkzImSbJ2mY1CXNbqgRccmOAr2ylx+P0iSrJxsYIT4jEHkALUOzDRAc7ZITcd28/Jg/Bhdw==
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=hazNCar4WYebJf7A/BJnz7JkBCn0HLXqiGSPgIqEUcQ=;
 b=n9iLfnpBV0w7C2gdPIXoe6zCM439OMhchlhHmmQV2rbjHjsFiPJagRou5A+5YQMoFFbl/aLWYeg9iz0oDyUFHMWwh9J4vF1GaBthMjBnfkhV0Fjv6RZOePZK+Nwn6dgXL4EktskuXyR4nQPhMZPCEJXl+4+b53TRcmQ7/mpfyeV//CG5sAxsEIiOzwIMAVgpjPdeT/QUjUqMmAv7qTKa8T1skmQnqu5s/L1Y6nIcjK0ROZNlpG5V0XZCw5nCchVuAK/FEKpLhWn8aRE5drx5QTUoMBYPJVEfywWg9aTTE55w/lF7n+zxjcgIYauiR+3RkZEkqJ0NgHtw3T3D08ocUA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hazNCar4WYebJf7A/BJnz7JkBCn0HLXqiGSPgIqEUcQ=;
 b=CvrvAb/3XyOccrQKIhu/Z5sOQAKjUDCxqI8RGR5SamhlyEvSq4TKl4FfjalvfiZIazFPDWN33eR2vU6JqI5X+WaTxlWtNXtPyNOo+MRQ5q4tXodSzFrYb5Aw9wwKpNPN098olRIFB2LF2/9G6iHkAxvh+T/jhnoX1lx8PAi8v3M=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
Subject: [PATCH v5 20/24] xen/x86: wrap x86-specific domctl-op with CONFIG_MGMT_HYPERCALLS
Date: Fri, 12 Dec 2025 12:02:05 +0800
Message-ID: <20251212040209.1970553-21-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00029929:EE_|DS7PR12MB6285:EE_
X-MS-Office365-Filtering-Correlation-Id: 5ad07a58-0817-41de-3aca-08de3933f128
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?19M4b/V/O+JwWRuGFBwJOYqBVNgGTQ6qqjVal6tOoexGgtw20Tbfapt5mj3/?=
 =?us-ascii?Q?aHGFgm98eIZ7pUhTovwopu53Ox2p9uuvIaKKo+rBHLv41+Nwh4Rz/DTTIY7u?=
 =?us-ascii?Q?uVUJcADa+67db6RFCfCzNTksn6lsmafm8A5p421zmHxpT755C4heIOpgW/yF?=
 =?us-ascii?Q?WNa6FhZkjcwESUeYGE+1lp1od3kAZEQFTU0NfUpgFCD5deB/RxTHz94nS8nZ?=
 =?us-ascii?Q?hKdXTyW6DtaK0xUtoBTqsjbht6hyMAiw+Fdz7wDzO+FGvF4Fc2HJU1o+gafU?=
 =?us-ascii?Q?MSNl6PDM4KTC6ie5Buyb/RzUGxdkV6amtXvedW1wpiGctwZg/yYSy7PTbh6X?=
 =?us-ascii?Q?2RefDan7aUXP8OtZ0JaPok+RUizFZDddZiBa7NH7QSQXXj9cuBPr/8vNJ5UF?=
 =?us-ascii?Q?wpgNtGbbJFsBhZEKqxBsbqavC2UfQuGN679BPcyT5xRgrfYjA5qfNEoTG+Dj?=
 =?us-ascii?Q?Yd+yZh/fEtsla7J6F+4d0xyZKxrBfBAP9Tht2LNHwIuBx3awCMdj0TxoDmQF?=
 =?us-ascii?Q?6VZ9CKT4VbUwOzlsX4fwm3HxfnMKhsLlqMr3N9uVUJveLZkHVj5UQRxsPi08?=
 =?us-ascii?Q?8JubafIZFEYv7dCGQ3LLLau5VwKb4kjyZ4LRoSLxIJupdO5fVDwNXxcYvB0h?=
 =?us-ascii?Q?Ue3qX21GokgXBBDcso63RcXVn5cfzgMoiXjuSo+abXfX+3Pr2bwwi8KbdD6W?=
 =?us-ascii?Q?mlScpPtJok6wXhV+klRYFvRiSflfIth5yXwOsot5ItPvUFHfLwfNGjeQbZ7F?=
 =?us-ascii?Q?xNDTN9SI2AjOc9TGcN7eKgriSizes641g3naNa+IiKCsio9S/hb9MqZrxzq0?=
 =?us-ascii?Q?c28THroTXl2H4ZLhPpjOtkKzKHbymPpaQ7Hh9J02HQu92Lc7jLIiogsd2fb2?=
 =?us-ascii?Q?fryYweELVXOGwH0bDtZD0rnC9soHWl75j2VAhuW2Ey24vKLxZRcDifnOIMzd?=
 =?us-ascii?Q?5stAWIh5NBf58l1LxPt5Ie1RajlpeG2DJnnZo9oT4U+4ogmrZ4dR4WVZjAGQ?=
 =?us-ascii?Q?75MIiGLB/k1+lHZ4bopTEdkGhQlAtd06mf8reqo+ZNQVnEFyu/n1NmnyzyJ3?=
 =?us-ascii?Q?TDNeScr/rlTp80BsGSNCdewpJ5TxbbhNbvrszOw+aHB8NRxDWMwWIIWqqdJg?=
 =?us-ascii?Q?aGFXEMkmJHdJymYPL8oSgC/5W22OC9tdRGiKtzvuEOos+TcRlFQbcp+Xlunb?=
 =?us-ascii?Q?sy+o38dqV5NqvYuIM+zL9ZoUmqjgBmgX7w0GAI0UEYKYM1Lk7zDloNMVIFyB?=
 =?us-ascii?Q?mCIsu0l9ay4iulbgRfQbqdbaOiNnKQAtij4cWiEiLormwBQR2u7dVkQ2PIKS?=
 =?us-ascii?Q?IBbj4FJqcQ05KDABAQv8+jUwyAG9eptCFtMUwxChyZDe73gWvVeONENS7jIx?=
 =?us-ascii?Q?QssfZ2iakd3LvX1Hz7W0vKz/OlbrThP5L1ER8yMw1TbtC5JdztVma13yI0L0?=
 =?us-ascii?Q?oAVW3BNjwOgKAj0XNaDQ+B7MorMIVglXb05+ptAYA/BQvCRt6T6F7FhEUv3V?=
 =?us-ascii?Q?QCHTAHpgpCplWakiYUp/9MtZyS8cZjGs9EOB1Ti4Y9VQ38DVOo3dqCTFOyBL?=
 =?us-ascii?Q?wEbyWP8PqvaATxnGGgk=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:07:18.4887
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5ad07a58-0817-41de-3aca-08de3933f128
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00029929.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6285

Function arch_do_domctl() is responsible for arch-specific domctl-op,
and shall be wrapped with CONFIG_MGMT_HYPERCALLS
We focus on x86 implementation here only. Tracking its calling chain and the
following functions shall be wrapped with CONFIG_MGMT_HYPERCALLS too.
Otherwise they will all become unreachable when MGMT_HYPERCALLS=n, and hence
violating Misra Rule 2.1.
- hvm_acpi_power_button
- hvm_acpi_sleep_button
- hvm_debug_op
- make P2M_AUDIT depend on CONFIG_MGMT_HYPERCALLS
- make PG_log_dirty depend on CONFIG_MGMT_HYPERCALLS
- make policy.o/msr.o depend on CONFIG_MGMT_HYPERCALLS
- make cpuid-cp2buf.o/cpuid-cpfrbuf.o/cpupolicy-clr.o depend on CONFIG_MGMT_HYPERCALLS
- make HAS_SOFT_RESET depend on CONFIG_MGMT_HYPERCALLS
- make VMTRACE depend on CONFIG_MGMT_HYPERCALLS
- paging_domctl_cont
We put the guardian in Makefile for the arch-specific domctl.o compilation.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- split out xsm parts
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
- wrap default-case and arch_get_domain_info() transiently
---
v2 -> v3:
- add missing guardian in arm/Makefile
- cover RTIT_CTL{,STATUS}_MASK #define-s
- add missing guardian for .vmtrace_output_position
- guard the whole static inline function
- address "violating Misra rule 2.1" in commit message
- remove transient wrapping around default-case and arch_get_domain_info()
---
v3 -> v4:
- make HAS_SOFT_RESET depend on CONFIG_MGMT_HYPERCALLS
- make VMTRACE depend on CONFIG_MGMT_HYPERCALLS
- seperate depends on condition for future convenience
- split arch-specific domctl-op into x86 and arm
---
v4 -> v5:
- do not undo imply and add "depends on MGMT_HYPERCALLS" in option
- use IS_ENABLED(...) to avoid too long line
- move paging_domctl_cont hypercall-def closer to avoid scattering #ifdef
---
 xen/Kconfig.debug                 | 1 +
 xen/arch/x86/Makefile             | 2 +-
 xen/arch/x86/hvm/Kconfig          | 1 +
 xen/arch/x86/hvm/hvm.c            | 2 ++
 xen/arch/x86/hvm/pmtimer.c        | 2 ++
 xen/arch/x86/include/asm/p2m.h    | 2 +-
 xen/arch/x86/include/asm/paging.h | 3 ++-
 xen/common/Kconfig                | 1 +
 xen/include/hypercall-defs.c      | 8 ++++----
 xen/lib/Makefile                  | 6 +++---
 xen/lib/x86/Makefile              | 4 ++--
 11 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index a69615cd63..c078c6bf2e 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -15,6 +15,7 @@ if DEBUG || EXPERT
 
 config GDBSX
 	bool "Guest debugging with gdbsx"
+	depends on MGMT_HYPERCALLS
 	depends on X86
 	default y
 	help
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 1e2ce8e72c..d389787bb3 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -80,7 +80,7 @@ obj-$(CONFIG_VM_EVENT) += vm_event.o
 obj-y += xstate.o
 
 ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
-obj-y += domctl.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
 obj-y += platform_hypercall.o
 obj-$(CONFIG_COMPAT) += x86_64/platform_hypercall.o
 endif
diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index df9bea65b0..1989808810 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -54,6 +54,7 @@ config HVM_FEP
 config ALTP2M
 	bool "Alternate P2M support" if EXPERT
 	depends on INTEL_VMX
+	depends on MGMT_HYPERCALLS
 	default y
 	help
 	  Alternate-p2m allows a guest to manage multiple p2m guest physical
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 5d297fb42a..ce75fb7839 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -5208,6 +5208,7 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
     return rc;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int hvm_debug_op(struct vcpu *v, int32_t op)
 {
     int rc = 0;
@@ -5250,6 +5251,7 @@ int hvm_debug_op(struct vcpu *v, int32_t op)
 
     return rc;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 #ifdef CONFIG_VM_EVENT
 void hvm_toggle_singlestep(struct vcpu *v)
diff --git a/xen/arch/x86/hvm/pmtimer.c b/xen/arch/x86/hvm/pmtimer.c
index 87a7a01c9f..f080f7561d 100644
--- a/xen/arch/x86/hvm/pmtimer.c
+++ b/xen/arch/x86/hvm/pmtimer.c
@@ -56,6 +56,7 @@ static void pmt_update_sci(PMTState *s)
         hvm_isa_irq_deassert(s->vcpu->domain, SCI_IRQ);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 void hvm_acpi_power_button(struct domain *d)
 {
     PMTState *s = &d->arch.hvm.pl_time->vpmt;
@@ -81,6 +82,7 @@ void hvm_acpi_sleep_button(struct domain *d)
     pmt_update_sci(s);
     spin_unlock(&s->lock);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /* Set the correct value in the timer, accounting for time elapsed
  * since the last time we did that. */
diff --git a/xen/arch/x86/include/asm/p2m.h b/xen/arch/x86/include/asm/p2m.h
index 9016e88411..3574e2eecd 100644
--- a/xen/arch/x86/include/asm/p2m.h
+++ b/xen/arch/x86/include/asm/p2m.h
@@ -20,7 +20,7 @@
 #include <asm/page.h>    /* for pagetable_t */
 
 /* Debugging and auditing of the P2M code? */
-#if !defined(NDEBUG) && defined(CONFIG_HVM)
+#if !defined(NDEBUG) && defined(CONFIG_HVM) && defined(CONFIG_MGMT_HYPERCALLS)
 #define P2M_AUDIT     1
 #else
 #define P2M_AUDIT     0
diff --git a/xen/arch/x86/include/asm/paging.h b/xen/arch/x86/include/asm/paging.h
index 0c06b0a7a8..b95d80e75a 100644
--- a/xen/arch/x86/include/asm/paging.h
+++ b/xen/arch/x86/include/asm/paging.h
@@ -57,7 +57,8 @@
 #endif
 #if defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
 /* Enable log dirty mode */
-#define PG_log_dirty   (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)
+#define PG_log_dirty   IS_ENABLED(CONFIG_MGMT_HYPERCALLS) &&                \
+                        (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)
 #else
 #define PG_log_dirty   0
 #endif
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 2914508a8f..64023703ae 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -157,6 +157,7 @@ config HAS_SCHED_GRANULARITY
 
 config HAS_SOFT_RESET
 	bool
+	depends on MGMT_HYPERCALLS
 
 config HAS_STACK_PROTECTOR
 	bool
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index 4840de805b..a08e80ed59 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -196,10 +196,10 @@ dm_op(domid_t domid, unsigned int nr_bufs, xen_dm_op_buf_t *bufs)
 #endif
 #ifdef CONFIG_MGMT_HYPERCALLS
 sysctl(xen_sysctl_t *u_sysctl)
-#endif
 #if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
 paging_domctl_cont(xen_domctl_t *u_domctl)
 #endif
+#endif
 #ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl(xen_domctl_t *u_domctl)
 platform_op(xen_platform_op_t *u_xenpf_op)
@@ -279,6 +279,9 @@ hvm_op                             do       do       do       do       do
 #endif
 #ifdef CONFIG_MGMT_HYPERCALLS
 sysctl                             do       do       do       do       do
+#if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
+paging_domctl_cont                 do       do       do       do       -
+#endif
 #endif
 #ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl                             do       do       do       do       do
@@ -298,8 +301,5 @@ dm_op                              compat   do       compat   do       do
 hypfs_op                           do       do       do       do       do
 #endif
 mca                                do       do       -        -        -
-#if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
-paging_domctl_cont                 do       do       do       do       -
-#endif
 
 #endif /* !CPPCHECK */
diff --git a/xen/lib/Makefile b/xen/lib/Makefile
index 9b3e03a511..26c6a0de33 100644
--- a/xen/lib/Makefile
+++ b/xen/lib/Makefile
@@ -46,7 +46,7 @@ lib32-y := divmod.o
 lib32-$(CONFIG_64BIT) :=
 lib-y += $(lib32-y)
 
-libx86-y := x86/cpuid-cp2buf.o
-libx86-y += x86/cpuid-cpfrbuf.o
-libx86-y += x86/cpupolicy-clr.o
+libx86-$(CONFIG_MGMT_HYPERCALLS) := x86/cpuid-cp2buf.o
+libx86-$(CONFIG_MGMT_HYPERCALLS) += x86/cpuid-cpfrbuf.o
+libx86-$(CONFIG_MGMT_HYPERCALLS) += x86/cpupolicy-clr.o
 lib-$(CONFIG_X86) += $(libx86-y)
diff --git a/xen/lib/x86/Makefile b/xen/lib/x86/Makefile
index 780ea05db1..89fb4bba27 100644
--- a/xen/lib/x86/Makefile
+++ b/xen/lib/x86/Makefile
@@ -1,3 +1,3 @@
 obj-y += cpuid.o
-obj-y += msr.o
-obj-y += policy.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += msr.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += policy.o
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:18:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:18:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185030.1507362 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTubU-0001su-HY; Fri, 12 Dec 2025 04:18:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185030.1507362; Fri, 12 Dec 2025 04:18:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTubU-0001sn-Dg; Fri, 12 Dec 2025 04:18:04 +0000
Received: by outflank-mailman (input) for mailman id 1185030;
 Fri, 12 Dec 2025 04:18:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuR5-0007SS-2S
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:07:19 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0bc92d6a-d710-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 05:07:17 +0100 (CET)
Received: from MN2PR13CA0019.namprd13.prod.outlook.com (2603:10b6:208:160::32)
 by IA1PR12MB6433.namprd12.prod.outlook.com (2603:10b6:208:3af::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.11; Fri, 12 Dec
 2025 04:07:13 +0000
Received: from BL02EPF0002992E.namprd02.prod.outlook.com
 (2603:10b6:208:160:cafe::3d) by MN2PR13CA0019.outlook.office365.com
 (2603:10b6:208:160::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.5 via Frontend Transport; Fri,
 12 Dec 2025 04:07:12 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0002992E.mail.protection.outlook.com (10.167.249.59) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:07:13 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:07:10 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0bc92d6a-d710-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=l7LOjONY4qCNiahorfmtjP0XCQF6vZrEmf+CX1qJjQ2vkUdbSJrFFnvemCYLXyKUKCAXXsgr3ew401BZesTL+bmQcTSoimFmfjtp+XfAQwbN2hENL6N9T+2Y5H4YwWBmEZrQKRLaPeJivIwbaZcGDubX6EG+kB0+WT2MbzTdO6/65Ct+r9QJUoSY+rwD8TcWlRExbPudThQx+rHTg2ivqePYOeAeMPTUbH8rrg+VQ9ODBp32oGxO9CKDsR2AKjj53KSqiJJ2ph6v2Gs9u+Wb0wZCXccZ2QR6UlPWMOnZu3nmXrYnjy+s30Wop29qYpMl/NPYaxUYSldYoLVBngwQRA==
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=KWivIiaybYPw5jJB/DQbmVNl+SgpVQga3F7RYOvVWbg=;
 b=wBbOaIVxSbPMJOkpVNWYqRTzlv1KNP4fyl33Te5mezJzJBgwdUQGOuz6ojSB61pMwKUTD3F5TKtpgim9MGcJLJUTpuORXW+Wf7xfrhQPt9E5ufL5PWGm7e5hlbAqmy9uoRh8VTCLKxdsEVD5cLm/duYI2ck2GsIluifJarE2/zLG9uA6QNN7PTSDV+Jr6xrzWKzquSa0wKdWn4JISuy9KMEqHKcOJ67RRysIHaFt3KHqlgypTYpMyOzKqpcKo32ASqLmX78/BsB14xo2W3btjprkXPZJMA9Xe/qOrbKlp8Zbp9c925KD3TJ4K/He+F8anG0koHkpVemRba/WxJMKlg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KWivIiaybYPw5jJB/DQbmVNl+SgpVQga3F7RYOvVWbg=;
 b=axOPZe+729JHE4Ru9hz5LCC49PSmleOo/4SNcGB2YWA18YsrVeYHUOob5LzVvUHUj3RV8rBZNFEzeOjVv7H/JPX/IxweT5+gZvNSHJrZvsQmxl+vnYD2dvsxBYR2TP8VVW6yBd11FvrqKA05DtT2RxOEQwYtAs6aFV2QMfiCaFg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Michal
 Orzel" <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v5 18/24] xen/domctl: wrap arch_{get,set}_paging_mempool_size() with CONFIG_MGMT_HYPERCALLS
Date: Fri, 12 Dec 2025 12:02:03 +0800
Message-ID: <20251212040209.1970553-19-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992E:EE_|IA1PR12MB6433:EE_
X-MS-Office365-Filtering-Correlation-Id: 4e96c102-530e-48e3-6435-08de3933edea
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?DcrRkvywtYBRp4zrTmFAaqy4gazQVJwM9qHe8YDM7bDHYqEJhAWlqZ5ZyYXl?=
 =?us-ascii?Q?cH/fCdc8r8Wq/dUyU8ykVNY+2zyRLjIGM4uTMHJFbgvGxKptTRn0kik/DK72?=
 =?us-ascii?Q?uzm0PKdhLWrz8GlNuBHK1z9lIRM5JkyV7Y7PLErc14g99O7O3G9K0yAapmKs?=
 =?us-ascii?Q?EXi/gwVTbhiEzutkk8u+7mCOWGZQ9RIsTU4MfubPReRa+Eu2eW+hXuwQ4eP2?=
 =?us-ascii?Q?Njx2P8IUkMVHXQ3tjFVruiZR/yHnipIPgiJyfJXUXkKCDgmcoPAR2tXYxcaB?=
 =?us-ascii?Q?YqptIRGOSMXTEF0A08uj4i7pKjsSPKtcwqqMxwva/Z6ZWg78kb9mm8J01uyr?=
 =?us-ascii?Q?ytfyNH89jCAVL2sbWQ01TPErW26l70XREk2weDcJo/QfYflnKTksb64bqQzQ?=
 =?us-ascii?Q?ZYHiBckcmRG4zCTXJXfYMQJWjdwcTKkQMENupfoW509uXBno5xTeNGpjDkG+?=
 =?us-ascii?Q?fc8Mo4LmcjZWgNPu7Lqv2ari+72kHOOJNlC6z6dkQkwN+a5RI6lKTUlcYJHO?=
 =?us-ascii?Q?0yDsbQSjj+t+X0p7IiEEnpq71kvN/aCHKiDeEac7w+51jy+Hx377nRSHKFMc?=
 =?us-ascii?Q?C2XFc6+3JZ0NPDiPN3DxPi4CJYv4G6w3he7vbidpSGMFWetpyoU58kljI0Jf?=
 =?us-ascii?Q?rgJ2aZzEGDCzMQdJYFW9/8GqDBtMJYh7ZiGcQtXCkVGB9g5KTMyxSONz+ACA?=
 =?us-ascii?Q?1wvA+ybFmI+EOjUOFr9n3n/uIkd5aTdkJjw1QSKWYTsZq31DPusuavg9HT6J?=
 =?us-ascii?Q?NaPZhquCEnncEkpalecmSZ8eYY4moR4AaOcPQ96e8qBq1AFiRc+gDJbISPXJ?=
 =?us-ascii?Q?oJGO21TlUam54F6btKGycd22Q254ZDYbH77h8sM4tOXoZIt1urNQQ5NKv9V9?=
 =?us-ascii?Q?UDHAUM8HjXd7pBBNU29bGw6QXQzgy8W9YcnDq6Ty7naw6OLgmKscaf/+73jM?=
 =?us-ascii?Q?kIOXk/qmG3/GdknJ+klorn6lMCTe6O3cKxxJiAUDe+lzVQZGzF6Xx7BL4l4p?=
 =?us-ascii?Q?oUovR30S9IgK242R+1fiwThG+ZvlYjXrWBfrJmz2zbs2dQl+0vcQRTyLBWir?=
 =?us-ascii?Q?9Fr4lJw69aXIgPoDWN0EVH8fheKqmLXC+87GPn25BNu2GJ85Q/goHwWlVgEV?=
 =?us-ascii?Q?lwF97DKEp4+WzOFM7IICtf45qFdDCTgAOVnCQ41nWFyz2XgNNBfnAUdTIdFG?=
 =?us-ascii?Q?4ElFnh6SFSR5T3DuAMn6zqPfDuXrLEOjv23jniAStqsjWCQrpGHwWVwrWgig?=
 =?us-ascii?Q?YBF7Ngphd9FfjWG2iH3Y7FjQjC7fEWrCwBNTT/77Gaa0iJ+OZtYfiTXzwwZ4?=
 =?us-ascii?Q?N5IiXfsdJp31I6u8jmSshk4tyglUJhCg18rzD1TIA7tvsr+eykIodaBlYSMz?=
 =?us-ascii?Q?j2ZaRxJam8G6vdMBGOoq5OFbs231SZVQ1EFN2xWyT/S3Nfekdm7uVz55D+q4?=
 =?us-ascii?Q?yWYTCBG8pv782UqZ2aV0Kmabt1FpFUV6i+iZXYeiEj+AS5c9VScw2f4L1wLc?=
 =?us-ascii?Q?H5g8Y78NoHRw3KinzwI9OxiQFWRkpTMegz8ePCHKeADzzquRF4iHZjB8jeks?=
 =?us-ascii?Q?FIrEz40B9vGsmWhsDTE=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:07:13.0491
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4e96c102-530e-48e3-6435-08de3933edea
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6433

Arch-specific arch_{get,set}_paging_mempool_size() is responsible for
XEN_DOMCTL_{get,set}_paging_mempool_size domctl-op, and shall be wrapped
with CONFIG_MGMT_HYPERCALLS. Otherwise it will become unreachable codes when
MGMT_HYPERCALLS=n, and hence violating Misra 2.1.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com> # x86
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v1 -> v2:
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
- wrap XEN_DOMCTL_{get,set}_paging_mempool_size-case transiently
---
v2 -> v3
- address "violating Misra rule 2.1" in commit message
- remove transient wrapping around XEN_DOMCTL_{get,set}_paging_mempool_size-case
---
 xen/arch/arm/mmu/p2m.c   | 4 ++++
 xen/arch/x86/mm/paging.c | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
index 30d6071e91..4caa5844e4 100644
--- a/xen/arch/arm/mmu/p2m.c
+++ b/xen/arch/arm/mmu/p2m.c
@@ -58,12 +58,14 @@ static void p2m_free_page(struct domain *d, struct page_info *pg)
     }
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 /* Return the size of the pool, in bytes. */
 int arch_get_paging_mempool_size(struct domain *d, uint64_t *size)
 {
     *size = (uint64_t)ACCESS_ONCE(d->arch.paging.p2m_total_pages) << PAGE_SHIFT;
     return 0;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /*
  * Set the pool of pages to the required number of pages.
@@ -122,6 +124,7 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
     return 0;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
 {
     unsigned long pages = size >> PAGE_SHIFT;
@@ -140,6 +143,7 @@ int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
 
     return rc;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 int p2m_teardown_allocation(struct domain *d)
 {
diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
index 116389d4e9..c6e3996093 100644
--- a/xen/arch/x86/mm/paging.c
+++ b/xen/arch/x86/mm/paging.c
@@ -949,6 +949,7 @@ int __init paging_set_allocation(struct domain *d, unsigned int pages,
 }
 #endif
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int arch_get_paging_mempool_size(struct domain *d, uint64_t *size)
 {
     unsigned long pages;
@@ -991,6 +992,7 @@ int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
 
     return preempted ? -ERESTART : rc;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /*
  * Local variables:
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:19:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:19:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185062.1507372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuch-0002zW-QU; Fri, 12 Dec 2025 04:19:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185062.1507372; Fri, 12 Dec 2025 04:19:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuch-0002zP-NM; Fri, 12 Dec 2025 04:19:19 +0000
Received: by outflank-mailman (input) for mailman id 1185062;
 Fri, 12 Dec 2025 04:19:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuRE-0007SS-0U
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:07:28 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1066ae0a-d710-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 05:07:25 +0100 (CET)
Received: from MN0PR04CA0007.namprd04.prod.outlook.com (2603:10b6:208:52d::12)
 by MW4PR12MB7215.namprd12.prod.outlook.com (2603:10b6:303:228::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.7; Fri, 12 Dec
 2025 04:07:21 +0000
Received: from BL02EPF00029927.namprd02.prod.outlook.com
 (2603:10b6:208:52d:cafe::39) by MN0PR04CA0007.outlook.office365.com
 (2603:10b6:208:52d::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.10 via Frontend Transport; Fri,
 12 Dec 2025 04:07:16 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF00029927.mail.protection.outlook.com (10.167.249.52) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:07:20 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:07:18 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1066ae0a-d710-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=F63U58GLzrSm2svauWHsgSCeWYaKea507E/O+sXglWb6LoH+6Pe8wOEuVOTTsP7pM9TQnVRU9yU128/KcNac0WIbX9W0lPJecD14lumlRkHTCG2A4SL6Co4grOl3z1cSI8mEOSQCNfs+wEoU6XrmwHUP4gRQtGB8Snyy4geaqDQOmKspVw0YnI+/mW8okyXWwqoQqYRfarkLCN9m7czPUGSK6mBjGPQPamw18oPtsxZLtxFd2gMnrY1VrVyUueGIu8DD6II29ArJ5CuP/Lr8ekbMqeCXArxaKwsXMEkF1pWmcS4mcUdtrUG3ugiQXxJViKkd7kOz8HbuqGxjD/JmqQ==
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=csNyOjSkFIvdqjgNPlKK9D9XWEr0x478Jq7b5iigMd0=;
 b=Dwsyj7xoy083IjYLAOKtf8GWarVQqFJoCRFlQ2U97pltRpVU242bvw4hFSUz+D5NsZ9NceazQd5y2zyDuSytKmc+yIc7jQOvu/ovVCsAHbybSrEnx2fI7Dga7JP0KolCb122v5tb/EW6NqNFdrUAGzr14mab3O87WtYdisb9akUwARuDNCL8SAcmpACFfT8z8JMzDq7gxjk8H9TgXgn70EgoT09QsNS++rX8y9sHW3p76lmWNvQbJldwJBEYOfbc+RCskWBaHG8Zh7Ok73II9Oz0uXTdkj07KQYHn9tdcXrH4ech113hUhPvq7+jiF3YJKT5dqj1cZgL2N/IioT/2A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=csNyOjSkFIvdqjgNPlKK9D9XWEr0x478Jq7b5iigMd0=;
 b=jB3hcoMn3ErSlfRVBJtgJabk0WKG/ALH86Sc2OWJXqUYRN/hs4wbCsH1zElFGU9/95M7RlkhfZqY2faZmP2Z8sYow1SBMc+g5jwUHvYiqihxxXxoYWEBgdI91XCwcQwp6zUmFXGjIoQtc/a38XktLwEevXtVdX8UsOwBibvSoI0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Michal
 Orzel" <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v5 21/24] xen/arm: wrap arm-specific domctl-op with CONFIG_MGMT_HYPERCALLS
Date: Fri, 12 Dec 2025 12:02:06 +0800
Message-ID: <20251212040209.1970553-22-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00029927:EE_|MW4PR12MB7215:EE_
X-MS-Office365-Filtering-Correlation-Id: 281e453a-6b7b-4635-b539-08de3933f2a0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?r/qOcL7v8Hm9P3PdLZFYd+gNEfgS7g9XS5PEtgCXOgbLqdziGlshv+4IZQPP?=
 =?us-ascii?Q?IY3jSJbEDsmGzLHQvYNcTx0WrXqtcY1qp2h/nwU/Db3loARoLI0cDrG6kkcB?=
 =?us-ascii?Q?PdtSPjtFv0lzxmkkGm510vAGHF3oJMpx/0ZlTpKzdXe3QDs8UjTEgCYq16Ya?=
 =?us-ascii?Q?pUx3ufN5i3IRcfyyVZvfvPsnYUdbPScRiCAgDrHoY3AlxxodP7uQiiF8jLJD?=
 =?us-ascii?Q?5OKoPk6CXeYcOqvTXqxEvLaDOyVecg1jt27iu0Koiw7chCP9D39v2uyrib/k?=
 =?us-ascii?Q?mhpKvLzFb2Icw5QpP1iEAxcSPBsAzQjI/ugEkPSzTKywCOODIVbgH+6ZfBhG?=
 =?us-ascii?Q?sPNDjf4XGkola4+yn/bQvPe0l4FqDdS7JKfGINYSZMucK1OpYAFjGVEQ+Oy1?=
 =?us-ascii?Q?tRWvY0pTSTz/5luK0KnV24kIdT95kGa/tEqtEsw0Gv7JORjSz3OigIVedkyx?=
 =?us-ascii?Q?qc3/egDGw0aDB4YC+iXfIrJZ8ithL1bfUXdVxnOW8xCAzkPeqI8+B63rseYQ?=
 =?us-ascii?Q?8hPmya2cFx2D7nV1S7+OIEzFZ+gLEdpyiYlY0ux3qoNbZ3rLkzwPKZCwsBS2?=
 =?us-ascii?Q?9naNOF6Kz95W0OLcCe2pWnBKqNpgyF/4xLqsK9NXsl6aFNHmfd3biRSyuXbN?=
 =?us-ascii?Q?6Rl0xKXRPfNXErDGa5x3UKswn3QmTLzhXEVjWKHe9T7m2H5+iXf0aZmDaABu?=
 =?us-ascii?Q?uh3H6BAW1XtNmblV70rBXUxPnr52l/ritZ9fiAixvIqnGR+3RZR3ss4XhsKM?=
 =?us-ascii?Q?24C974xPSHcnav21ItmuRo1LHlBYiJolUkQdsoDvdHZ4988iCJNPJXyfiqEQ?=
 =?us-ascii?Q?RfVJLa6zPGdBaZohN4THrNhkbdB3joFtPsZRGA8QEOiOiQeichENQ8c3+QLh?=
 =?us-ascii?Q?0oh6oiMN1vZzTTz/zdvNI1sRfB4OsGscbTaqT6nU5snAeZ4qdN0uRncfoq79?=
 =?us-ascii?Q?pELXHqpRqqu7VXj0qM/8wMxzTThL8ySW3drz55qsBTCbPm7iC9x9dScyiNDr?=
 =?us-ascii?Q?MYQ75luJuCiyE2/BMI6MNMJG5luPKfmmYnjHOOZCBMAPaGVXDnJhZiW3shIr?=
 =?us-ascii?Q?/sB9uYSDrAUFc9yQzqohOC/6osaPrxFi+0G7IA/3EepaFJ0b8tvQYqKMDEoH?=
 =?us-ascii?Q?s1MvOf8xvwzt43KIolS0SnJOFOYdV6bI06wUvyXRvT9i++UirrBcRMfbuVOe?=
 =?us-ascii?Q?XMKXtRwpiesk612+gK4Uy0MVdzgdS0oq3IQzQ3WxEVNwfu4LiXfS/zjgdsZ2?=
 =?us-ascii?Q?jxE7Px7sIFhIqP0iJbAU0I2BSOyBEj9UtjEc0KPSFjP42YGMNxmZxWSfUsPl?=
 =?us-ascii?Q?bNGdXwUKFUPt1Ox8o88vjtsumEaZDAFLB+802o7cBT/p/79znttHNhQX5v9J?=
 =?us-ascii?Q?6dlq3ywq2NAYLU4/lykVZXtnZhAYcaD/jYosrtccnExpv2K7R/H/jxS2mooN?=
 =?us-ascii?Q?WbUkW3oCzWMHD5aA1MV1OKgwYbElIDa3NuNa741xGOV8IpLy3JSuhs2w2Va+?=
 =?us-ascii?Q?7b1yqN8WvDLF5LFF5RtiIvhRDWHeKsPceFXQHpQmAd1l3Dw29JlGRTQkp10H?=
 =?us-ascii?Q?Z6yqXyW2q5T6d1wWYIw=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:07:20.9563
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 281e453a-6b7b-4635-b539-08de3933f2a0
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00029927.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7215

Function arch_do_domctl() is responsible for arch-specific domctl-op,
and shall be wrapped with CONFIG_MGMT_HYPERCALLS
Guard arm-specific domctl.o compilation with CONFIG_MGMT_HYPERCALLS. Otherwise
the whole file will become unreachable when MGMT_HYPERCALLS=n, and hence
violating Misra Rule 2.1.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- split arch-specific domctl-op into x86 and arm
---
 xen/arch/arm/Makefile       | 2 +-
 xen/arch/arm/arm32/Makefile | 2 +-
 xen/arch/arm/arm64/Makefile | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 069e2c532e..91ac4d6e32 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -20,7 +20,7 @@ obj-$(CONFIG_IOREQ_SERVER) += dm.o
 obj-$(CONFIG_DOM0LESS_BOOT) += dom0less-build.init.o
 obj-y += domain.o
 obj-y += domain_build.init.o
-obj-y += domctl.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
 obj-y += efi/
 obj-y += gic.o
diff --git a/xen/arch/arm/arm32/Makefile b/xen/arch/arm/arm32/Makefile
index 531168f58a..f8cbf14211 100644
--- a/xen/arch/arm/arm32/Makefile
+++ b/xen/arch/arm/arm32/Makefile
@@ -4,7 +4,7 @@ obj-$(CONFIG_MPU) += mpu/
 
 obj-y += cache.o
 obj-$(CONFIG_EARLY_PRINTK) += debug.o
-obj-y += domctl.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
 obj-y += domain.o
 obj-y += entry.o
 obj-y += head.o
diff --git a/xen/arch/arm/arm64/Makefile b/xen/arch/arm/arm64/Makefile
index 6491c5350b..6b77a15abe 100644
--- a/xen/arch/arm/arm64/Makefile
+++ b/xen/arch/arm/arm64/Makefile
@@ -6,7 +6,7 @@ obj-y += cache.o
 obj-y += cpufeature.o
 obj-$(CONFIG_HARDEN_BRANCH_PREDICTOR) += bpi.o
 obj-$(CONFIG_EARLY_PRINTK) += debug.o
-obj-y += domctl.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
 obj-y += domain.o
 obj-y += entry.o
 obj-y += head.o
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:20:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:20:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185098.1507383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTueE-0004sn-8t; Fri, 12 Dec 2025 04:20:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185098.1507383; Fri, 12 Dec 2025 04:20:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTueE-0004sg-52; Fri, 12 Dec 2025 04:20:54 +0000
Received: by outflank-mailman (input) for mailman id 1185098;
 Fri, 12 Dec 2025 04:20:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuR9-0007SS-W3
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:07:23 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0dc838d4-d710-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 05:07:20 +0100 (CET)
Received: from BL6PEPF00013DF6.NAMP222.PROD.OUTLOOK.COM
 (2603:10b6:22e:400:0:1001:0:a) by SN7PR12MB7024.namprd12.prod.outlook.com
 (2603:10b6:806:26e::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.10; Fri, 12 Dec
 2025 04:07:15 +0000
Received: from BL02EPF0002992D.namprd02.prod.outlook.com
 (2a01:111:f403:f901::7) by BL6PEPF00013DF6.outlook.office365.com
 (2603:1036:903:4::4) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.9 via Frontend Transport; Fri,
 12 Dec 2025 04:07:15 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0002992D.mail.protection.outlook.com (10.167.249.58) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:07:15 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:07:13 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0dc838d4-d710-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=V3ciX5dAa8hy/uKpXcvJ9R7gitR7SbT1ON+BeJlOBWYYeuLgurJqTE3JedvjNr3zabJNr9vggqLLysGqYBIWh8e/7yh5Huho69Zzhr61sp+NgHnZnAqCgD+8OCcLM+f5tenyFhHkmdPaRDU5oRS2nNKu0lwq+q5N5ufJ3OcGkoofS8zm4zypbZUDZScMWSHRf+vEdilzSfe+Aj0d7WXyBGyRN8sCdV7iODyuW+Ltr5ceVUTNFWc8ob6IhxTbC3lUKIK6l4MJ+F5x8+Q/CKJOkPduVaj5+QFCFV8+ezfOHFofxODkUHHLH7c1UofaERvo5fEF4C2TVk++D7bs4and/Q==
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=bok7u4Xk+jAmguRQIjJccc8H+q65eQAsNIZzfh2MqlE=;
 b=cCFp8sjOt1LCv7XzUtvVrpVfJN94VB/njYCzbUODW63OdI4myJSVFo5z9OQj2OWCNDRKQ+QiEWiep1i7sp7ZKwzQmSAGrdeMHFLcg5c+1cMuEP2giR8RkdXblMqzeE+hLTcwX6XgnX9oCoowel6cJjxY9aqQ/CBKDVcTLkrsujC2jeWW3iNA5x7ui9QVR9qVWMNxN78uLXYGJIc2/h6+F9EtVPW2YwJdy1zD9/woypQ4sTQOxbxjOStfSMy8QTHSLroOz97rV9qFLhEMZUJ2RSAxI8bAoBkh3bzG+MAMVQK9eoFz79UwmTLtVZwjeMoAq6A0Y8diMqOiNhaY5C3yzA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bok7u4Xk+jAmguRQIjJccc8H+q65eQAsNIZzfh2MqlE=;
 b=GLBqMJsqin5zj2KHy7h1FlcaXLqQE0DotDng18986AtjJpKeBJGQDvxVUp7bAjPoFTnhKoU9bsH+V/p0RMAaun/O8jWJ/EJ8WiwT2JJnOzdxg2tt8BgcPQDq2RE/O5/TccIh5bLiH9Dwtif13Ff/Krb2bzyz153p5F8vePPiF0c=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 19/24] xen/domctl: make CONFIG_X86_PSR depend on CONFIG_MGMT_HYPERCALLS
Date: Fri, 12 Dec 2025 12:02:04 +0800
Message-ID: <20251212040209.1970553-20-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992D:EE_|SN7PR12MB7024:EE_
X-MS-Office365-Filtering-Correlation-Id: 7476f342-3dce-4a7c-3216-08de3933ef4a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?Isybgq6zQ/gc6+xvCSAVR4BfFBhR+gMUr6fU3zXpogbveAe8Zl4/juwFpU/y?=
 =?us-ascii?Q?dIagsKBq/LDXKdIQdbnIOjScmMsIccQ+rhPsPhtQIsltNww9tj/aq9EN/dzI?=
 =?us-ascii?Q?8dFelrXLhcYT4xclmsH4jlTNVyfRnbsf08s+v1pvclZV6SNnuv9nMwazQDZj?=
 =?us-ascii?Q?phtngG9sCoSCu6wKFkR1utbPwXTm4dE7WRWIIyTHw4D00htKWzmGIHlvCASF?=
 =?us-ascii?Q?4dbUT37/IudSKQFawWZNYo4lxxuQYaI6SVu+e0Xdj3hYHLLx4TTiKd2mLh5W?=
 =?us-ascii?Q?pkvc0pKS+tJAE8jHxWyr6J1pHGXIKm9kDGvInqK0SeADwk6J670NS4CO2Uc/?=
 =?us-ascii?Q?P1mmrSaFgxT0+02yZaG5Tlj0XwcM17TJnqwHPELbrFU9anomG9n36O7ifRey?=
 =?us-ascii?Q?4UcaRI0o+3GBEpu/VDgVPt0mlJLkfLQDnnlTtrTZAQCdsNDsQzkQXwVGdYos?=
 =?us-ascii?Q?WRcw/Voaa4pzbVlYOph4MhEPzt8hKMriPRXQtgMKrRJwoJPh+GCo5lr8yTd/?=
 =?us-ascii?Q?JSHhsgYdAQud9dtgHkMy2LAo+GccY17Luk4dAer7MuKk6LfZaYEOAr8uvg6k?=
 =?us-ascii?Q?8ubvy3IQm/U8EueUXYDvjuvsbCuIDGQEBnSlSCc3gq4WWDRX+5w0yeUpEGxN?=
 =?us-ascii?Q?N2Dk1cFcKMkUZk4sCsH/Iqmkbikp/7W0V8li1DSJArHTMLYJ2wX7rZHf515d?=
 =?us-ascii?Q?BVSJprigu5wmfnXUr94l+W4OX80s9gMOpvAJpfYfczS1B7AxUZkvvF5HZ+s9?=
 =?us-ascii?Q?KIcRBKwtQJS6zIeKYSGdAWrGM/9fFo2uNuRLTWWYAqrWirjSHpVy7mI6e4eK?=
 =?us-ascii?Q?PuaVU2dXalXkGoBSkOmjy7H8B0sTP8WBK//8GLgSpVAGyKR7Hi9LeONzSFKk?=
 =?us-ascii?Q?FKUm/4F/x/+eSHcFgyGAkX14Edd3wfAqG5bXXKQnFg7r1ALy/C2vrNMOHYg1?=
 =?us-ascii?Q?QY4pHPEtYd2iKwxMRu7lFmn0M7IQTy01H3D79o3Km0lY7ihTOYwdQXY3xa2i?=
 =?us-ascii?Q?q58vmwE9D2EVxJWfetwMeQrKav2s7WHuNiG2r0si1Saypkjg491HFi0zY+BK?=
 =?us-ascii?Q?Qy0aOmppn9Z1j+Sjnm5pNcoqswyjptFp+a/QtwCisGTJHOBj8TWQOeP+lunK?=
 =?us-ascii?Q?bQWPBEsR0eJRpBIMLsZybOq1WLOr1nPMpFTRKN3tRQY/Y9C2tIKKnKVyuh7p?=
 =?us-ascii?Q?oILDwSMDtSZ60vBb2A2/HyWn1ehF2xEv7xQoyYmBz7hgr1/K/kri8tdPUSMI?=
 =?us-ascii?Q?K5G6s45GrKBMcEdrAXeyFIKTsGdpUFJdZpDT7qJDzQ1A0VvDWWVmZac/Mxm/?=
 =?us-ascii?Q?xmCDF+cRCiDKlZLhQNBZTotulJXjEOulBzVifl7BHbPjhdNbyNc9KNCYhW3Y?=
 =?us-ascii?Q?/B3mLG6e94oAgX+/KiimXksqVntp/gwqcuG/FkNhYRqzHodWxnYbLZL492e9?=
 =?us-ascii?Q?iSWWSRaeZAyiEdZfNJQva8OOZCezCGlkUKaQcmz/QWDwJIzz9MyF7oXOS+6e?=
 =?us-ascii?Q?Ek/R6wSA20jy2OUGpTreomS7UpAKBGKo/xutf/XbIKDiAQGh3f8LMuWPwGma?=
 =?us-ascii?Q?ozaKIG1Pzr2DGNhmZKo=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:07:15.3519
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7476f342-3dce-4a7c-3216-08de3933ef4a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992D.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7024

Users control/monitor Intel Platform Shared Resource (PSR) through
related domctl-op or sysctl-op, so CONFIG_X86_PSR can be put under
MGMT_HYPERCALLS. With this change, we could remove MGMT_HYPERCALLS-wrapping
in psr.c.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
v1 -> v2:
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
---
 xen/arch/x86/Kconfig |  1 +
 xen/arch/x86/psr.c   | 18 ------------------
 2 files changed, 1 insertion(+), 18 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index c808c989fc..8368c6ecf0 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -191,6 +191,7 @@ config TBOOT
 config X86_PSR
 	bool "Platform Shared Resource support" if EXPERT
 	default INTEL
+	depends on MGMT_HYPERCALLS
 	help
 	  Support of Platform Shared Resource technology, which is basis for
 	  monitoring and control of resources like cache and memory bandwidth.
diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c
index 80ce5804b4..4f2c2d0042 100644
--- a/xen/arch/x86/psr.c
+++ b/xen/arch/x86/psr.c
@@ -135,11 +135,9 @@ static const struct feat_props {
      */
     enum psr_type alt_type;
 
-#ifdef CONFIG_MGMT_HYPERCALLS
     /* get_feat_info is used to return feature HW info through sysctl. */
     bool (*get_feat_info)(const struct feat_node *feat,
                           uint32_t data[], unsigned int array_len);
-#endif
 
     /* write_msr is used to write out feature MSR register. */
     void (*write_msr)(unsigned int cos, uint32_t val, enum psr_type type);
@@ -422,7 +420,6 @@ static bool mba_init_feature(const struct cpuid_leaf *regs,
     return true;
 }
 
-#ifdef CONFIG_MGMT_HYPERCALLS
 static bool cf_check cat_get_feat_info(
     const struct feat_node *feat, uint32_t data[], unsigned int array_len)
 {
@@ -435,7 +432,6 @@ static bool cf_check cat_get_feat_info(
 
     return true;
 }
-#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /* L3 CAT props */
 static void cf_check l3_cat_write_msr(
@@ -448,14 +444,11 @@ static const struct feat_props l3_cat_props = {
     .cos_num = 1,
     .type[0] = PSR_TYPE_L3_CBM,
     .alt_type = PSR_TYPE_UNKNOWN,
-#ifdef CONFIG_MGMT_HYPERCALLS
     .get_feat_info = cat_get_feat_info,
-#endif
     .write_msr = l3_cat_write_msr,
     .sanitize = cat_check_cbm,
 };
 
-#ifdef CONFIG_MGMT_HYPERCALLS
 /* L3 CDP props */
 static bool cf_check l3_cdp_get_feat_info(
     const struct feat_node *feat, uint32_t data[], uint32_t array_len)
@@ -467,7 +460,6 @@ static bool cf_check l3_cdp_get_feat_info(
 
     return true;
 }
-#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static void cf_check l3_cdp_write_msr(
     unsigned int cos, uint32_t val, enum psr_type type)
@@ -483,9 +475,7 @@ static const struct feat_props l3_cdp_props = {
     .type[0] = PSR_TYPE_L3_DATA,
     .type[1] = PSR_TYPE_L3_CODE,
     .alt_type = PSR_TYPE_L3_CBM,
-#ifdef CONFIG_MGMT_HYPERCALLS
     .get_feat_info = l3_cdp_get_feat_info,
-#endif
     .write_msr = l3_cdp_write_msr,
     .sanitize = cat_check_cbm,
 };
@@ -501,14 +491,11 @@ static const struct feat_props l2_cat_props = {
     .cos_num = 1,
     .type[0] = PSR_TYPE_L2_CBM,
     .alt_type = PSR_TYPE_UNKNOWN,
-#ifdef CONFIG_MGMT_HYPERCALLS
     .get_feat_info = cat_get_feat_info,
-#endif
     .write_msr = l2_cat_write_msr,
     .sanitize = cat_check_cbm,
 };
 
-#ifdef CONFIG_MGMT_HYPERCALLS
 /* MBA props */
 static bool cf_check mba_get_feat_info(
     const struct feat_node *feat, uint32_t data[], unsigned int array_len)
@@ -523,7 +510,6 @@ static bool cf_check mba_get_feat_info(
 
     return true;
 }
-#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static void cf_check mba_write_msr(
     unsigned int cos, uint32_t val, enum psr_type type)
@@ -561,9 +547,7 @@ static const struct feat_props mba_props = {
     .cos_num = 1,
     .type[0] = PSR_TYPE_MBA_THRTL,
     .alt_type = PSR_TYPE_UNKNOWN,
-#ifdef CONFIG_MGMT_HYPERCALLS
     .get_feat_info = mba_get_feat_info,
-#endif
     .write_msr = mba_write_msr,
     .sanitize = mba_sanitize_thrtl,
 };
@@ -826,7 +810,6 @@ static struct psr_socket_info *get_socket_info(unsigned int socket)
     return socket_info + socket;
 }
 
-#ifdef CONFIG_MGMT_HYPERCALLS
 int psr_get_info(unsigned int socket, enum psr_type type,
                  uint32_t data[], unsigned int array_len)
 {
@@ -858,7 +841,6 @@ int psr_get_info(unsigned int socket, enum psr_type type,
 
     return -EINVAL;
 }
-#endif /* CONFIG_MGMT_HYPERCALLS */
 
 int psr_get_val(struct domain *d, unsigned int socket,
                 uint32_t *val, enum psr_type type)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:21:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:21:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185120.1507391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuew-0005VU-GI; Fri, 12 Dec 2025 04:21:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185120.1507391; Fri, 12 Dec 2025 04:21:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuew-0005VN-DN; Fri, 12 Dec 2025 04:21:38 +0000
Received: by outflank-mailman (input) for mailman id 1185120;
 Fri, 12 Dec 2025 04:21:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuRM-0007SS-1B
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:07:36 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 131bd19d-d710-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 05:07:29 +0100 (CET)
Received: from MN2PR13CA0032.namprd13.prod.outlook.com (2603:10b6:208:160::45)
 by DS0PR12MB9273.namprd12.prod.outlook.com (2603:10b6:8:193::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.10; Fri, 12 Dec
 2025 04:07:26 +0000
Received: from BL02EPF0002992E.namprd02.prod.outlook.com
 (2603:10b6:208:160:cafe::23) by MN2PR13CA0032.outlook.office365.com
 (2603:10b6:208:160::45) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.5 via Frontend Transport; Fri,
 12 Dec 2025 04:07:25 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0002992E.mail.protection.outlook.com (10.167.249.59) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:07:25 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:07:23 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 131bd19d-d710-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AcMTWT6ISmCZi5Ug52edbR8PVxaoQG+2zw9cYTzyHjR8veFPvJy5MpRRVM0iPhdwPfeECrvf0R6eKrYWsvZOEPMtfc7eryWH1gvcJvz5gQKX+KVEn+bsMBuopalbSsRG25QPB/a9WC3G5JD1v35n8n9Xucf/yH9tFTZJePXquHf12RGhCEGqTX6aY3RnjKMXEIO4HJnC801JismKvTwv/ardH1t14o2cZ7On/1AKBIOoEfNx9XQhdaU/cfYgYHM+IcOaW3BUBj8j7GcTcsVF1LFEsBo3TOKbPo26qg6sZAW0XsZ/ORmkzM5unUptJiogzHAsinqEDHncH95Fvz/GtQ==
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=odExyTV3fsgU5LF6NYJiZ8Pw/V9R8W68o6yrCIsvmNc=;
 b=waBsqy8Ct1czB8sbu2zV1pV/bxd3D7qYm0BRiVQFqmnbdJWDSMilQXUBdcplaSrhCdU3l9ts8JflBY3G0PeZ7g0cYM34DhctBXFaNG+wqV7/wmAzjFnoPqniodTJqQPtjDbIsoFJ68V2qcFrfe32zgDfwwxhr7/xBpEsCur1YEsPtB0aqunW6kgD2PWQFQr1GS1cvtDpWyrpsJPhZ9AaAh/1Uc5PlLB68tbcKW1xvzfG2+NbV8G4+4VkMezZ+uT53xalNQSqBBvbs6BWYCeNcR82lsNlx+xFNKDfo2EQyfavRNWGGbgZiPa8YWk0/lTOGavnt0WPdFf91rLzfPVN1Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=odExyTV3fsgU5LF6NYJiZ8Pw/V9R8W68o6yrCIsvmNc=;
 b=pNS9YKdLcdiKV8qJ1RCDB00lPol9sS04W6aJGYSyKBua/Q5MgziXsQiXAexcWSYfPyRPykB3sfPI5pW7gq4AmVwBq4kfa2wos6YFOxadDzjPOGg7y8a+TX0/zXYaseiVbkIqLlGPhChjcLXrc2ZyAKd2zZ3fhwP0HARL32Db3j8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: [PATCH v5 23/24] xen/domctl: wrap common/domctl.c with CONFIG_MGMT_HYPERCALLS
Date: Fri, 12 Dec 2025 12:02:08 +0800
Message-ID: <20251212040209.1970553-24-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992E:EE_|DS0PR12MB9273:EE_
X-MS-Office365-Filtering-Correlation-Id: a286bc90-480c-411f-d09c-08de3933f599
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?P4Ttmj+kvtCIrhUAdK4KFavOuDhm5MTMUzmBFdhIr0/t8mSuENMtaVacmNMV?=
 =?us-ascii?Q?DWhLN3yrwzP03DmNwuoNDFckHA/qOO7BKXTLpBJ8ydVk3jysK6lD4namwDPt?=
 =?us-ascii?Q?u3vk8UwjcQTROGFitkawFPtZFSOyAxOn7Fe0MMLtJchNIAVhQ5aQkbFwOqaI?=
 =?us-ascii?Q?fuYijCbhzgIBO0Mi6wJqFahX+7j8cpgGPmxvso4YTBe+AA8glmMIkfA82rV4?=
 =?us-ascii?Q?ULs+yOBrgFcgDGZCJSMs/iSOEbmZ0Wej2NBx1djET0Z0Y1p4yTGQHXAv13MY?=
 =?us-ascii?Q?0DU5uScu4c0IAVjIy91rVBYXkp3cOggz0eKGL2DoVlYQIc/azIaJObLnAuuY?=
 =?us-ascii?Q?VZsAx3Tos01PSYQNqmgW9zz1xGu7tKf86aN9i14mrIW6Uv3AmB0s4CmsjtCH?=
 =?us-ascii?Q?vil5S90Q/hk2BQz4t8R3TtywVQSSjMBxH4Jn4+EH+hF9BEjHSbzWHWmQaYCG?=
 =?us-ascii?Q?dhaPE0fTgCM/ek6J+iokCE+B7X8CJBIc1EbFQRtidYJVBHxw/ZHkTg+cYaUv?=
 =?us-ascii?Q?t8Hfc4htJb1khJs4zvLPZQWobq15mLBZ24jleEpFkX/gGpzkOuUGrsgjStEL?=
 =?us-ascii?Q?5NDkuJvHJT9JFKVHB1uTbU7Zz+iG+HbYkrbb+4zKWkn2ZTG7QUpvpTZczPiW?=
 =?us-ascii?Q?NuhXl74dFc4uOsnvH06DEgwbRotKgAWOs9NMgYtLy45sulycbfZhQHXfGZhG?=
 =?us-ascii?Q?rQrxQI5S1pSNWtON64fd83dy/zqEFT/4/ePAbHBhjXxrfoQE5xMKoyyIQbdz?=
 =?us-ascii?Q?wljDAO3CRAqp79Y71halTQsRLLBbxa919wMSouuz0zo24GWDwyhGvm/zw4Ng?=
 =?us-ascii?Q?Naa03izfoVmk+xdoXUY6SxkY27iKxEeictdQ48VrwAl/T7Z+1oFOI+Wn4wTe?=
 =?us-ascii?Q?O7uwgiMPkUNM5FA6sc4nptijBXmoSNh8h4qohOSo1U0s216u9dr+fYLbaeRx?=
 =?us-ascii?Q?2Rw/SN2DDxBDg0lhqvRcHTKoCAII7yo+H9P6MPxnMicL/Zy+apIU8d5TSasf?=
 =?us-ascii?Q?ykrEEIU3lqJY4lPIasroZ/pYsp8fLjX/o1P5gBs9fkP7l7zh5B0zQJzMxtOB?=
 =?us-ascii?Q?zNZgTj1wl0pW7mgCTxSDBy8u0PKlYSXUHLYKL1bPjTf6Sa/CWLlqtMEDApP+?=
 =?us-ascii?Q?u+WUBP6MYtI+b0GowqqPqDD9TSTO8xTb+BY6j+A1roy9k1c6fyFuOp8YPZMP?=
 =?us-ascii?Q?tPgh/AbWNvJOb/QUP6EYjQMXaL3EoYl6GZqUkuXQ80iecaEWV2naLWFCPjV+?=
 =?us-ascii?Q?0Nroj2qPQfHx2tU25SWHtOqzGtSw+DtBCQKMIaHB0909ue9XSoeko7ucnCtd?=
 =?us-ascii?Q?qzEIbkB0VbQXQrhhUfYiurn3uJFQUDZTnmPQimT3B8blCJ9JcooHIu64c048?=
 =?us-ascii?Q?a1Gh4ynsz/Y0n73XbWur3iS6EjR5eT9jYbSnhQhxJbuUMtlHdTPg1qGQIIkI?=
 =?us-ascii?Q?TbJAH2ELrHq5bmUqF7DBq5Q65LZJqKjr/DDWLgXR5nrmodR3LM5Krp82maz1?=
 =?us-ascii?Q?Qi5f+USm+a3YCsDZCl6jzt2Ug5mVnGKcLdbAGrw97RkBQElerakpKolHWUYZ?=
 =?us-ascii?Q?pEVgh9ROzVWpzho2QGw=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:07:25.9387
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a286bc90-480c-411f-d09c-08de3933f599
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB9273

Wrap domctl hypercall def and domctl.o with CONFIG_MGMT_HYPERCALLS.
Make CONFIG_MGMT_HYPERCALLS optional and expand help message

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- remove stub in common/domctl.c
- combine the original commit of "xen/domctl: provide stub for
 domctl_lock_{acquire,release}"
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
---
v2 -> v3:
- add pitfall warnning in Kconfig help
---
v3 -> v4:
- refine help message
---
- change to "say Y" to keep consistent
- add back default y
---
 xen/common/Kconfig           | 16 ++++++++++++----
 xen/common/Makefile          |  2 +-
 xen/include/hypercall-defs.c |  6 ++++--
 3 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 64023703ae..d59e108652 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -653,12 +653,20 @@ menu "Supported hypercall interfaces"
 	visible if EXPERT
 
 config MGMT_HYPERCALLS
-	def_bool y
+	bool "Enable privileged hypercalls for system management"
 	depends on !PV_SHIM_EXCLUSIVE
+	default y
 	help
-	  This option shall only be disabled on some dom0less systems, or
-	  PV shim on x86, to reduce Xen footprint via managing unnessary
-	  hypercalls, like sysctl, etc.
+	  Management hypercalls provide the means for dom0 to manage the
+	  overall Xen system and other domains, including sysctl, domctl, etc.
+	  In a dom0less or pv-shim build, they can be omitted to cut down
+	  on the Xen binary's size. However, this comes at the loss of
+	  significant runtime functionality.
+	  So be cautious to disable it, as admins will face missing a few basic
+	  hypercalls like listdomains, getdomaininfo, etc, hence leading to
+	  have an impact on device-passthrough and DM.
+
+	  Unless you know what you are doing, say Y.
 
 endmenu
 
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 4353ea59a4..9f59f141a8 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -71,7 +71,7 @@ obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo un
 obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o memory.o multicall.o xlat.o)
 
 ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
-obj-y += domctl.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
 endif
 
 obj-$(CONFIG_COVERAGE) += coverage/
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index a08e80ed59..c9ee5de99e 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -199,9 +199,11 @@ sysctl(xen_sysctl_t *u_sysctl)
 #if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
 paging_domctl_cont(xen_domctl_t *u_domctl)
 #endif
-#endif
 #ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl(xen_domctl_t *u_domctl)
+#endif
+#endif
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 platform_op(xen_platform_op_t *u_xenpf_op)
 #endif
 #ifdef CONFIG_HVM
@@ -282,10 +284,10 @@ sysctl                             do       do       do       do       do
 #if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
 paging_domctl_cont                 do       do       do       do       -
 #endif
-#endif
 #ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl                             do       do       do       do       do
 #endif
+#endif
 #ifdef CONFIG_KEXEC
 kexec_op                           compat   do       -        -        -
 #endif
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:21:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:21:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185123.1507397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuew-0005Yl-Pa; Fri, 12 Dec 2025 04:21:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185123.1507397; Fri, 12 Dec 2025 04:21:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuew-0005Yg-LZ; Fri, 12 Dec 2025 04:21:38 +0000
Received: by outflank-mailman (input) for mailman id 1185123;
 Fri, 12 Dec 2025 04:21:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuS0-0007SS-UV
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:08:16 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2e1a4448-d710-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 05:08:15 +0100 (CET)
Received: from MN2PR03CA0005.namprd03.prod.outlook.com (2603:10b6:208:23a::10)
 by IA1PR12MB8539.namprd12.prod.outlook.com (2603:10b6:208:446::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.10; Fri, 12 Dec
 2025 04:08:10 +0000
Received: from BL02EPF0002992C.namprd02.prod.outlook.com
 (2603:10b6:208:23a:cafe::76) by MN2PR03CA0005.outlook.office365.com
 (2603:10b6:208:23a::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.16 via Frontend Transport; Fri,
 12 Dec 2025 04:08:10 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0002992C.mail.protection.outlook.com (10.167.249.57) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:08:10 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:07:25 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2e1a4448-d710-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cVVKg9/Kw+eVhdLtv02KYsLTdREQg1Ub5VkLEvgEFLpzxTCwhh1a1Z8nZVBwMKEO89kM2WlEyC7+oMvMU0GzBtQnxuk0xpAo0yQ3M58YJ0G/zQEmJjLJQ/VvI+XEkp7WvNsRvZin+5U02boWFX4KMK9ZvUkiNYV5itTFjGo1+rY8LzVLzjsL7tkU8Z36kon8Km075JVafMWARgTMtVJJcP/+h66PRjfOh8YaQkGlDwWyIRWEY1CMsA3H8/UkjrNjoxZvVeMT+fzbLmABiLRywQrAlRxaYpE2K9h5BymEGLd5RA+Kw90jR46gBOFGSf471EHARmkUq/qsxSXMoGnvxA==
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=VeiH6+Z+OiU86ZAPkaW9D/QiTAcCg9U2zSCm9FXdi9c=;
 b=qjaA8sHQQEWvZyy86FUol40iRgxZem9iIWkDs+hByDnTGAHgkd6dv9Eqa4aeDoR7Z7UHgGHyNH9579zAtZqqnddiK2gsK0rhq/i6496wMLbhBKxxcEK1fbf4g5v7slKCyE1wRm2R+AY/4FwHsnftwZHKYh/nAOtf14SyfVDmSB3296QTCMHBmbV4qlrJS29Ktg2TGeGN0TjebDDY22QXOop2IRtL9eZC1ogFuAxYgxFGIXBkI3Rpd1prPJ7d/cPbUjj/rkwGmXMiEDUKXINioXRJJC8wlTTCbolqv4ZsSQiFQlWtdVfTpyvlpp43pSr9qFayVvNKg9lKMgQM9frd5w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VeiH6+Z+OiU86ZAPkaW9D/QiTAcCg9U2zSCm9FXdi9c=;
 b=QPZNRx1SRupFBknzoILKF7cKFZ4GSynxCUPNyjkZ7TjoqdAhNznvKTZmFmNdVYr0G2KpH6Xn4IjQi5SgdASR3eu5SH4l8RblxLvpYftIehWg86W0URjznYQjHAzrj93+B/xFiisVu6ALvsWuATmeRBQaPfVMXD8hskM+J3zG7KA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: [PATCH v5 24/24] xen: decouple PV_SHIM_EXCLUSIVE and MGMT_HYPERCALLS
Date: Fri, 12 Dec 2025 12:02:09 +0800
Message-ID: <20251212040209.1970553-25-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992C:EE_|IA1PR12MB8539:EE_
X-MS-Office365-Filtering-Correlation-Id: 12e54e11-07f3-4ca9-8203-08de3934100b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?ecAJNwxNGcDDb9CMM7azRAkbgy+3eWiEClL37IOGhg+xlVo8XQI/By1gOnnQ?=
 =?us-ascii?Q?CErzSgrznXStZfBOl2Cx2W1/JXEM23o1Gvcec9VS5H5eGPnttMvgyOEAYgVb?=
 =?us-ascii?Q?190PK2DOxRTyiIJPmb19zY43Q1hxc5d6AW3mCCL0ke720XGb51rqdzvWVZb+?=
 =?us-ascii?Q?hN14ef57IKOyKRfPjTJ/paqa7ENWkfI07jh6uANd9+YV08ZICfcYSDbNRX1N?=
 =?us-ascii?Q?f8nywZChj5zCLneFJsVtv6LlpvmsWECtazcPQBaFKkJpfYoxVjlH4jtRpzO2?=
 =?us-ascii?Q?thLrJSTtmE5BkAcztjEfK7HYLs+fYdVrBD7QuqK56jGTn1++2hqmYW4pM/Fw?=
 =?us-ascii?Q?r4F72grAt7hNXghMhS25lPehO5f+aiIWrkJMw7XViu1P+CewzuS8dxlEGtZq?=
 =?us-ascii?Q?50qVrn6gqOv6glm6pHbAlbbbYZZT5SMkA+TM6mEkgJyWn2Xcj1/e6OG0uPeI?=
 =?us-ascii?Q?tAnqGDTUwRFMEMklMGc6dQKZYoji4tRbMRfSlDUUBuLZCSItwCalPJvoPFaw?=
 =?us-ascii?Q?MvSiRtXuzO+eGFYepQGHMBwBkR2PxsJP0/JKjn2udguuoDdyr74FzYHHSc26?=
 =?us-ascii?Q?D8j1EchzJBFWGOapV+qyCg8prAzO7gE81VvwJ+LlDkKQq0z2lCML4LxUtwn+?=
 =?us-ascii?Q?CPN9xupDWGfRDhpLHEA+/hKBZX2wCDnoGVy5DjMvB/gQh3OgvRigz35rZr6R?=
 =?us-ascii?Q?SfjbctRg3Wg4NS1+WfgewblaZ0fVqnuK4iuF0LRT8Q7qaq9q1tHKP5dn4xeB?=
 =?us-ascii?Q?y7PV0A1eQUniHGRlfhj3eJqAYmJImwomi7yTIWkPjIbMqxMUgb/xmT+NzTI7?=
 =?us-ascii?Q?6yyrMNEDjrKlG4rSwWoNSUPlcGw6W5k1Uireh4ePffC06H2AhzxgUF7odiSH?=
 =?us-ascii?Q?/NnxipMXUHdRzgIRV2UITgjU5gBinsz/624WffQvIkIdxfMpjR7XTf7GsJ+M?=
 =?us-ascii?Q?GTdAdrDsirEWl0KnDDqtSm9FqUM7x5xP1ddYOcmOtMce/0KoiP9bmi3Eq6Qj?=
 =?us-ascii?Q?RYVj8wOYlX3xp8AbpzdS7OQKTf29Mr31/H0hVV0TcnzB0+9lBwPNq7Ap8QWq?=
 =?us-ascii?Q?IT9JXhaK6WP7g2srCwetA6kQDq7UJAeTF1+KRLPxRzlICKvp41BMSMCAQ7FN?=
 =?us-ascii?Q?0u7Ub98/S50tyB9JEtgk+7KBXd0hfgbh++ECByHRIus8D8qBGmTm/tjlrJFC?=
 =?us-ascii?Q?5gPg1qZ3wA//iWbJxK0FBwI9/cG+CrAG3EkiPZ0HQXtCLuJk1pG5cBEor0YW?=
 =?us-ascii?Q?QoLUXS/U2twbuYDZ7b3vgRiD/IAQQLL+nBZyzKbwN9aetPbSlnpjfIXCwxgG?=
 =?us-ascii?Q?EE+8RKke0y7Daq9LAKkak6EjgNqvaVFAryHIjPSQ2TVOh83zuKjOrBLP9D9O?=
 =?us-ascii?Q?Awz3oTYtr4GD1pub0l0YqJgSzFxA1P79FI22biwvuqbnYIljeGmyMo+xn7po?=
 =?us-ascii?Q?IIEhTUniDzoJLQIIk/gFRjoxk31GxOD8ObjJBBm/GINARUu7n3hU24CAkJ74?=
 =?us-ascii?Q?IxGD/T7luILwINCGUOYcDcTT+UAOF6+TdaZIt8/g82btrvY2AN/fi2SmPGsR?=
 =?us-ascii?Q?LoQVc4asJRXQ5M0xOMQ=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:08:10.3112
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 12e54e11-07f3-4ca9-8203-08de3934100b
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992C.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8539

We try to decouple PV_SHIM_EXCLUSIVE and MGMT_HYPERCALLS, including getting
rid of "depends on !PV_SHIM_EXCLUSIVE" (and related Makefile constructs)
regarding features guarded under MGMT_HYPERCALLS.
There is little possibility that random config may pick MGMT_HYPERCALLS=y
and PV_SHIM_EXCLUSIVE=y, so we need to add !defined(CONFIG_PV_SHIM_EXCLUSIVE)
constriction on paging_domctl() under XEN_DOMCTL_shadow_op-case to avoid
undefined error.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- new commit
---
v4 -> v5:
- Remove unrelated changes on CONFIG_HVM
- add !defined(CONFIG_PV_SHIM_EXCLUSIVE) constriction on paging_domctl() under
XEN_DOMCTL_shadow_op-case
- refine title and commit message
---
 xen/arch/x86/Makefile        | 2 +-
 xen/arch/x86/domctl.c        | 2 +-
 xen/common/Kconfig           | 1 -
 xen/common/Makefile          | 4 +---
 xen/include/hypercall-defs.c | 4 ----
 xen/include/xen/domain.h     | 4 ----
 6 files changed, 3 insertions(+), 14 deletions(-)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index d389787bb3..03650049ce 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -31,6 +31,7 @@ obj-bin-y += dmi_scan.init.o
 obj-y += domain.o
 obj-bin-y += dom0_build.init.o
 obj-y += domain_page.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
 obj-y += e820.o
 obj-y += emul-i8254.o
 obj-y += extable.o
@@ -80,7 +81,6 @@ obj-$(CONFIG_VM_EVENT) += vm_event.o
 obj-y += xstate.o
 
 ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
-obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
 obj-y += platform_hypercall.o
 obj-$(CONFIG_COMPAT) += x86_64/platform_hypercall.o
 endif
diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 6153e3c07e..235fd3b60f 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -216,7 +216,7 @@ long arch_do_domctl(
     {
 
     case XEN_DOMCTL_shadow_op:
-#ifdef CONFIG_PAGING
+#if defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
         ret = paging_domctl(d, &domctl->u.shadow_op, u_domctl, 0);
         if ( ret == -ERESTART )
             return hypercall_create_continuation(
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index d59e108652..f57a5f00a3 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -654,7 +654,6 @@ menu "Supported hypercall interfaces"
 
 config MGMT_HYPERCALLS
 	bool "Enable privileged hypercalls for system management"
-	depends on !PV_SHIM_EXCLUSIVE
 	default y
 	help
 	  Management hypercalls provide the means for dom0 to manage the
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 9f59f141a8..a0b0705f72 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) += device.o
 obj-$(CONFIG_DEVICE_TREE_PARSE) += device-tree/
 obj-$(CONFIG_IOREQ_SERVER) += dm.o
 obj-y += domain.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
 obj-y += domid.o
 obj-y += event_2l.o
 obj-y += event_channel.o
@@ -70,9 +71,6 @@ obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo un
 
 obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o memory.o multicall.o xlat.o)
 
-ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
-obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
-endif
 
 obj-$(CONFIG_COVERAGE) += coverage/
 obj-y += sched/
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index c9ee5de99e..e7209f8b63 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -199,10 +199,8 @@ sysctl(xen_sysctl_t *u_sysctl)
 #if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
 paging_domctl_cont(xen_domctl_t *u_domctl)
 #endif
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl(xen_domctl_t *u_domctl)
 #endif
-#endif
 #ifndef CONFIG_PV_SHIM_EXCLUSIVE
 platform_op(xen_platform_op_t *u_xenpf_op)
 #endif
@@ -284,10 +282,8 @@ sysctl                             do       do       do       do       do
 #if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
 paging_domctl_cont                 do       do       do       do       -
 #endif
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl                             do       do       do       do       do
 #endif
-#endif
 #ifdef CONFIG_KEXEC
 kexec_op                           compat   do       -        -        -
 #endif
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 8aab05ae93..11d2505420 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -185,11 +185,7 @@ struct vnuma_info {
     struct xen_vmemrange *vmemrange;
 };
 
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 void vnuma_destroy(struct vnuma_info *vnuma);
-#else
-static inline void vnuma_destroy(struct vnuma_info *vnuma) { ASSERT(!vnuma); }
-#endif
 
 extern bool vmtrace_available;
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 04:21:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 04:21:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185128.1507412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuf0-00060p-5s; Fri, 12 Dec 2025 04:21:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185128.1507412; Fri, 12 Dec 2025 04:21:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTuf0-00060h-2R; Fri, 12 Dec 2025 04:21:42 +0000
Received: by outflank-mailman (input) for mailman id 1185128;
 Fri, 12 Dec 2025 04:21:40 +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
 <SRS0=oKBw=6S=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vTuR4-0007Dl-Hl
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 04:07:18 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0b4ef203-d710-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 05:07:16 +0100 (CET)
Received: from MN2PR03CA0023.namprd03.prod.outlook.com (2603:10b6:208:23a::28)
 by SJ2PR12MB7961.namprd12.prod.outlook.com (2603:10b6:a03:4c0::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.10; Fri, 12 Dec
 2025 04:07:10 +0000
Received: from BL02EPF0002992C.namprd02.prod.outlook.com
 (2603:10b6:208:23a:cafe::4b) by MN2PR03CA0023.outlook.office365.com
 (2603:10b6:208:23a::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.16 via Frontend Transport; Fri,
 12 Dec 2025 04:07:10 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0002992C.mail.protection.outlook.com (10.167.249.57) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 04:07:10 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 11 Dec 2025 22:07:08 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b4ef203-d710-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Y22ncfmGuzHS5u8OlZfjFOS6MDtHiCpYOJWA5h/xwYeF7WiNNOTcZksDZqhy65fpUSTBYynpauHJpGUVWnCbugZxyzIo8n8P6E/wTMDrN9ledKND7M2KRTwSNWDBaJ2W3WNB+KNfznK91ILsB8EjOpp+MMo+trqH0iFQsiCRE9jMf+o6Ux5luUJCl4wGhHS88E1UE1P4v28PuI8i+m3uG1sCVI/AZR9SMZbQB9XxKN+vuYJ+s7SGHYIZHiKdmzmr4+nCiodKDGzEyj/WG8u6losT/DJxy6Nz48A6wf6DzepQ1gS6NivxeJjBoBzxHwr6HiIERXVc56OI+jzdAp2b/g==
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=WGbm9eEkFpZ2F/oXAGCX6J/TUQbFlJ+O3rJBuFWng2A=;
 b=yxmA6svWd6gpND2dDB8PdEZtJLjk5tTOrXHme7u30jzfRp7BV11LzLdUGpqCp4iJ16ripO/0NJUfE3MMjt2JUpKeuAz6r5Az5haki0Ixmim0riPAVRUoyIoCncQ9rHdFm+YaN6t/5CF56Yr2ijYTXTryocWfLYBYllPbcViY2dJITidQtj/KyZ3sLErVUQ4aInhLPNLHdKvjQoXgN5t2c7lEpGl/WSzucF+gH1yrPOnWBlchCIIOJAUNCnD2LXx8oPEniifJ3P0U0Rol+2J5gXwTkF98ZJ//pFPAGkjR+tMJXKBLvj+0tKjfFBlrjeOpk7GOEQ/NG1F80qDa5YjvXA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WGbm9eEkFpZ2F/oXAGCX6J/TUQbFlJ+O3rJBuFWng2A=;
 b=TfDnfCqzL2tSC6LO+uExolq1IFKjKrZNpiZIYlW8qXOith/5J2SqEyx0LA1Iq5/yR2Dn2hi11CzzAllWu0PH8gMFQtbKSuFT2Wi1FdH5h/y3T/OyzxZRJIBG69GYjJTJnsFJ8YrcrfsauaOnWEMK+Jffybh4mid+x+VqIzgN+C8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v5 17/24] xen/domctl: wrap iommu-related domctl op with CONFIG_MGMT_HYPERCALLS
Date: Fri, 12 Dec 2025 12:02:02 +0800
Message-ID: <20251212040209.1970553-18-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992C:EE_|SJ2PR12MB7961:EE_
X-MS-Office365-Filtering-Correlation-Id: 1fa4527f-c77d-42f8-ee1a-08de3933ec1d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?oLX0rDCLn7HgUiE8PVrwL+tHuKGUtebiKCfYJZdxH6ilD4jnk73DcSwiPb0Y?=
 =?us-ascii?Q?1jaetEhji6NWGwuygttMHNF60aJZOm/aEHPX0ti5E5DxXCD5d+4e9kF0D5zQ?=
 =?us-ascii?Q?7jYKrMwnKYeLpKmRn1S+Sa+L9yaGXECf0wHxEXd35FLuBZKJhq2ewq2tIVn0?=
 =?us-ascii?Q?mes2EuHibC//5gRVchXyovyOUgwMhpzM/tDYy7Ia7ExnZqsco9UWHbwkxwXf?=
 =?us-ascii?Q?GVBaRRm2bYVCFsw76Wnqk17wb0IqWCrLT+BbfsoakjDCF9Sf8D/sJjenNmkI?=
 =?us-ascii?Q?lW3g0UO56aLWO9A8GYO3SUP9CYdRZ0En51zhbRXKP/QVAkdbxLIyySXdkmm7?=
 =?us-ascii?Q?SskaKwK8izoJImeXfPls/IyEvmpcDF9ud4nmPI6XWskf5Ckz6KHx40BQqDtY?=
 =?us-ascii?Q?jzNVpfIMR32Xvu3iSFQBZ/2ScMub+gbfz0fDtjyTBw+qBkHkrxB6J0hvx/lM?=
 =?us-ascii?Q?+nxSXapJJJaaf4u3RMiuJT3TKhIzKTwZYmiW91PM/IO+H3H8KuhDHHv/VylM?=
 =?us-ascii?Q?WHunNKyk/fHinwUm/9cQiFmSGJ07u7qg0WqVK43ZOsTZCBAAz/DwRQtXh4Gb?=
 =?us-ascii?Q?uLvHlnxqcv/xf6YDNdGg3CmEkYYimHxT57gN9D/3nACYbXvXqsXnEVGm10fM?=
 =?us-ascii?Q?G3TcNEZD7kIm2dfQWPDbTAXAbxoMBBaHZ69nX8c127lwSqHdf9sg2qIR1vSl?=
 =?us-ascii?Q?KS914j3H+dKdlchyO8Uu8SL/K8lFauFOuetZhwFpUE8y8uG86Pjz/Riw16be?=
 =?us-ascii?Q?yKxSpfCQzlSZomRNF45IpQZqu490RrXYP16ngSm9bp926df/TPLhbxhve3Zw?=
 =?us-ascii?Q?uAi/oGSBacoLVQuhMz5Z0DLP3MzQY65f/dvhiEFTUMUEFcR/8+z/6gvQFfC0?=
 =?us-ascii?Q?hz9aTVCH4HDKfvB8KzeY7T9VvRuk1Nddi/N9A4DcIaJQR2Q/xQjnOqT7NFEE?=
 =?us-ascii?Q?ARqhJ4/vnd/Fm+ulupbbxkpkOoiMDDuEucIWbpOB+msy05LGNYLjf3mUoXY0?=
 =?us-ascii?Q?Z+/+qdUTVsHgldBzIf0O5lN5UsIsR/lSdrcftwvpKq+XamimOY4Euj8NArAz?=
 =?us-ascii?Q?sNOI8r/4QiH+y5JnYDnhqlmQ8jKf7dH1I4ay3cwppp9xU/EeEcm6J9XP9Ep1?=
 =?us-ascii?Q?TrEdaxGefePRz2S/PrZqDVraZszyNZhhoUYuCFc4VueKfchAkMD+7VGBDdqc?=
 =?us-ascii?Q?7GQL/RW58mF2g7gRIVYC4h2AZ5diPvEAJqSYcJLHdSZ6fjahM7/VIjcM0tb2?=
 =?us-ascii?Q?e6xZN5SaWCso/+tP+DVAmL80r4b7AfD5N+8g6fUm7+dIVM19FfAQ5G/oYsbx?=
 =?us-ascii?Q?9W8W8YPkZGcZOFuvDKnJCru4/rpDt2iax5nhyyM1uM3pbyIYT+PcWePgwAb/?=
 =?us-ascii?Q?AiR+VLh36zygqwsyu3Mu1gjhzcPA0giaj+oboM5PLAdAwhrrVXTJOA7DSMDi?=
 =?us-ascii?Q?07m4CwWqfNLN5mKLlc5s1T0ER1SA31R0JRk+bMzQXyFYcmp2Hnfzlc+TcLQy?=
 =?us-ascii?Q?l6Q+RNjYAxNih081WpJeJPQnXNZ+e1q2ygqbxweyfaQph423b1w7jKoWQGlL?=
 =?us-ascii?Q?iuaNOwN1FdMkpYeOiJQ=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 04:07:10.0262
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1fa4527f-c77d-42f8-ee1a-08de3933ec1d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992C.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB7961

Function iommu_do_domctl() is the main entry for all iommu-related domctl-op,
and shall be wrapped with CONFIG_MGMT_HYPERCALLS.
Otherwise it will become unreachable when MGMT_HYPERCALLS=n, and hence
violating Misra rule 2.1

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- new commit
---
v4 -> v5:
- fix typo
---
 xen/drivers/passthrough/iommu.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
index c9425d6971..8812e38174 100644
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -625,6 +625,7 @@ void iommu_resume(void)
         iommu_vcall(iommu_get_ops(), resume);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int iommu_do_domctl(
     struct xen_domctl *domctl, struct domain *d,
     XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
@@ -645,6 +646,7 @@ int iommu_do_domctl(
 
     return ret;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 void iommu_crash_shutdown(void)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 08:52:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 08:52:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185249.1507475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTysO-0005OM-7C; Fri, 12 Dec 2025 08:51:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185249.1507475; Fri, 12 Dec 2025 08:51:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTysO-0005OF-3B; Fri, 12 Dec 2025 08:51:48 +0000
Received: by outflank-mailman (input) for mailman id 1185249;
 Fri, 12 Dec 2025 08:51:46 +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
 <SRS0=lMNX=6S=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vTysM-0005Nq-E4
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 08:51:46 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c90603ff-d737-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 09:51:44 +0100 (CET)
Received: from PH7PR17CA0023.namprd17.prod.outlook.com (2603:10b6:510:324::24)
 by BY5PR12MB4211.namprd12.prod.outlook.com (2603:10b6:a03:20f::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.12; Fri, 12 Dec
 2025 08:51:39 +0000
Received: from SN1PEPF0002BA4C.namprd03.prod.outlook.com
 (2603:10b6:510:324:cafe::b7) by PH7PR17CA0023.outlook.office365.com
 (2603:10b6:510:324::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.11 via Frontend Transport; Fri,
 12 Dec 2025 08:51:35 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SN1PEPF0002BA4C.mail.protection.outlook.com (10.167.242.69) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.8 via Frontend Transport; Fri, 12 Dec 2025 08:51:38 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 12 Dec
 2025 02:51:38 -0600
Received: from [10.252.147.171] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 12 Dec 2025 00:51:36 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c90603ff-d737-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Cbj3Aj6BHe9PF6DdBH6CjzwcBHTv3NgV8xHo2H2eIGNNFmSt1RRUJ278OXjw//Cj8T0C2RYnQF5OzYy2BS5qZaJB+qcLSd0x3/tkJ/ECczszIjpyEWW5ZNo/Z2RbZSfUuXxgyvLV2k+DRe1+WVN0k+79feOyNaeer0uLI/6VdHWowdBeg1xX6mCzpO1dbuE4s4uWyyn2KkkwGxbRllQYGtTZBNvP309Boapyx/dSZScYtaML8+dCOCSisRT/4f00fLRxNLraDOGGKzYgywoTI9uClkpFbhURhIKMUv/mytCTqsaMsUbMWyO4Q4wvOjcDv0gB0GMfXN0NQZmPJ0Ny+g==
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=Z5Gt2GpPwSuWo/dyEEr9k8WDRXQN5i2t44W7FjbTCDg=;
 b=bkVhard4anDccWMCd7tyqEQRzwFusSo2w8e3KX4o87XVPk/z4GSpqulDXd+zd7QZSzOPX7LBz6gmY9REMQ1ZhGVWIVaKuJeywW6WRHYnOSCzQOEsDw3EVHrvFQOViiwUWL9BavPLWsaKDo6EdrRU7zr9OIhPaK9qIXEJd6sRbLwQXV73ix3Bc4RDAQjs1aMg4b/PeiVnSL1i7l2vmSws1VatJimX/NDyRzYrYOaeukF+Bb0FDpbmqq1Dzp9E99NNSLryr/EEJdnr7gow5EDAHs71AE8/RG66p4AsjmrFSfIIfbtn6179fBKo4FXYamjSV0Nb16QIzQH01rIZDFp4Lg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Z5Gt2GpPwSuWo/dyEEr9k8WDRXQN5i2t44W7FjbTCDg=;
 b=a0PviNBxk4Zut/+4h6utRIo1IY7fbMxj4xVi3VF2kvwXL3eJosvUAB/OeePvcjHe2FfWV/jhdnSmU/qqnWqtF2Tsp52hMYab/Sdqr0M876k1Q3hjgq+1ZYsqX9NPtLGFVItX2VJvyPXoKifY+VKuAaR339DmhZGOERRzXvKJMt4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <ff935ee4-29f2-4f1c-835a-d821bcec79ed@amd.com>
Date: Fri, 12 Dec 2025 09:51:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Ping: [PATCH v5] xen/char: implement suspend/resume calls for
 SCIF driver
To: Mykola Kvach <xakep.amatop@gmail.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Oleksandr Andrushchenko
	<oleksandr_andrushchenko@epam.com>, Mykola Kvach <mykola_kvach@epam.com>
References: <e57133182b9bcecb519911c8b3f0d871955d6fef.1754540991.git.mykola_kvach@epam.com>
 <CAGeoDV-j4nu1JhHyLpeDoqZ6evsExGvJSws-MK09M4HbUam1BA@mail.gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <CAGeoDV-j4nu1JhHyLpeDoqZ6evsExGvJSws-MK09M4HbUam1BA@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA4C:EE_|BY5PR12MB4211:EE_
X-MS-Office365-Filtering-Correlation-Id: 0ae5d773-b35c-46a8-abc8-08de395ba9b0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZHNodU1oc1B6cW9kcGQrbW9CSXp3QnA4dEpXbFhINnVIaHNFN0ZIaFBXdThW?=
 =?utf-8?B?TlA0bDdZMVV1Q3V4S3pmRXFJSDFNOUVKcWU1R1ozbTVNSnB0WkllbjVWZnM0?=
 =?utf-8?B?bW5saEI5L1pJTWFiMk1GQVBQSldDbmlPQ0kvaEpLWEF5R2FCMDV5QVM5Y0pw?=
 =?utf-8?B?RDhLVVNSVFlBYW16OWZDa0RabWZzdkVVbXVQMjh3OE85UVNmTUpwd1pkWDRv?=
 =?utf-8?B?blpMZVVTV2V6THZpTHRhK01KeGJNaU5ub0pEWmYyQWlVZ090TkVhanBiUkNF?=
 =?utf-8?B?Snl4SklVd3FhWVc5WlhTRWEya2F0WFFzc2JnTGhYSGR4V1FMVi9HdWFhR1JN?=
 =?utf-8?B?WWZ6bS9RYXpLblorMG1mQzZQWVRwaGZvNkZyNHR6dG9UNEJUZUhpOFJLZGVt?=
 =?utf-8?B?Q0lXbjc4UGVrMjVxWWJUR005VVJSeDJjN01zVmtSNlA5WUlqam9nNjZBUGYr?=
 =?utf-8?B?V1QwL0I0QmNJUHdpUEJoR3VhSFY5SjVUZTh2TTdQdlVUeTk3ZDdKeXFxb1Qz?=
 =?utf-8?B?MmpydERISUhOV0xLTGZlMURTd2hBYmNLbFNZQldzdkZ0WWNwTXNBQlh4Szdk?=
 =?utf-8?B?ejd0RDMwWERIMWhpSlcyZXZPSDlFczVYMWRvU0pvOVBtMHNac3NEd2JwYW5P?=
 =?utf-8?B?T1FidXJoMXBMWXZMSmNlbkVRT0FBMXFuSHp5L2x3Y2pLNzdkZkpEZHl0VklF?=
 =?utf-8?B?dTdxUUNBOFZ0Rk1nVjBkdE8xcU1XbnBqaXEraWlhT1ZBc0VUREVYYTBkUFFj?=
 =?utf-8?B?K0VmdktIaXJkSjRUTzVjS3NwL3Zyblg2c2ZLNFArdE5kOC93Sm5hZEpidURz?=
 =?utf-8?B?aGtKbDVyVUFSbEh4dDR1MGRybVg2NXh1SitRN3NkeDF5WWhqUWJhNHVOcmtq?=
 =?utf-8?B?TjUvR1ZTNVVMZ2VMc2NjbXlHbVRId2p3eVk4eGE5WnBvNEFHUDJCYmxUK2hH?=
 =?utf-8?B?YVkwRlYrbHlRZllTTkF4bzY5dGg2dE9naHhlMzNtTUJ3SXdVQ2V6NjFMbXdY?=
 =?utf-8?B?blJab2lENTVIZ3FIT01NV3ptYmQ0Q1E4TElpNkt6QmZUL2xCOHlCSVhGM1Rr?=
 =?utf-8?B?Z0dmbDIwLzl2NDArcmxIVDQ3WFU2Z2JNanJNd0Q5eWpiN1p6azlNRHo4UjZ2?=
 =?utf-8?B?NFVoaTFsZTNJOEdibW91anRxSTlnUXJPZGJYM3Fwa1c3aGFXeXBPSU9mdlZ0?=
 =?utf-8?B?TUhyZW5IOURMWWxNcFEwY3FqY01YZ0diMjV2Y3RlOFM5aU5GMXBXVkw5VlVa?=
 =?utf-8?B?c0pqdWVpalZMdkEvWFI1dXhIQlVWVEdGMlVhUTRRSzRYRmdtczNtUGxjOXJ6?=
 =?utf-8?B?WDh6SUM0enBjbm5ITUhmZ0h3alhFUkhHeDlIT01oN0ZxazZjdVQrZTJDa2VR?=
 =?utf-8?B?bHhMKzJIYldPbDNzTDRMVUZnV3U2VHQ1dnNKNGliNXplOUxKb1lwS1U1dUE5?=
 =?utf-8?B?dHN5a3hUMWdrYmxmQjZHay82V3U3YTF6VFRrTUJUWThUK1lGa3NLUFJzSEZY?=
 =?utf-8?B?RGlLUS9ya1FiSmVWVUVkMVBwVjRqV01Kdnl6M2JFbVJ1Tm83VVR6d0pieWpy?=
 =?utf-8?B?dlVhUjl6MDhDa3NHd2J5b1dtbHZaTEVmcmlydVFlWUI1ek0zcnM0SWliZSsr?=
 =?utf-8?B?Nzc1QVh3eXErc0lnQWhydnBaZzlmQVVwNmlOdlo5WFFLQ0hSWVdMdmJldStX?=
 =?utf-8?B?eXZRbmJzaTR3WTVjbHhoMW5yN04ybjNDVHZUdHVPMm9Wd3d5WlpQdWJ5M29T?=
 =?utf-8?B?c21naVNIdXdxZXlKWGh4aElCWjNuaG9MMkU0N1B0VkRYbDBYNm5ENzA3SE5M?=
 =?utf-8?B?Q0REUm9XTEdnd09acUZ4WjRqSWRtVmJBdk96ZkJheUlzaGRxY1JHbHVYNjND?=
 =?utf-8?B?SitZSEVkRUVIcmp5cGprTUd2WkpKYVFNYmlKK1dhTG0xanUvdUtzcmJvaHVS?=
 =?utf-8?B?ZTRJOGRiMmhRTUJXWEJXbmF1b0F2OWNIcnBCa01sRkVlOHkvRWtaNWdaWUZ5?=
 =?utf-8?B?WllPc0JJYjNlcmd3dDg1RWRnV0VFMjNqZGFiMUZMS2NxNWxUbGtsdHpPQTF6?=
 =?utf-8?B?c1JuYXp1VXJqTTVpQ0lLN0JHV3o2cm9pMEVKeEIxVERsZ3dzSk1aaC9wdGVn?=
 =?utf-8?Q?ZF0A=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 08:51:38.4228
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0ae5d773-b35c-46a8-abc8-08de395ba9b0
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF0002BA4C.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4211



On 11/12/2025 19:56, Mykola Kvach wrote:
> Gentle ping on this series.
> It has already received a few Acks/Reviews - could it be considered for merging,
> or is there anything else I should address?
I'll commit it shortly.

~Michal



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 09:22:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 09:22:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185262.1507488 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTzMF-0001CP-HR; Fri, 12 Dec 2025 09:22:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185262.1507488; Fri, 12 Dec 2025 09:22:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTzMF-0001CI-EY; Fri, 12 Dec 2025 09:22:39 +0000
Received: by outflank-mailman (input) for mailman id 1185262;
 Fri, 12 Dec 2025 09:22:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NHsq=6S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTzME-0001CC-4w
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 09:22:38 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1617789b-d73c-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 10:22:31 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4779aa4f928so11520395e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 01:22:31 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8b8a9b9sm11433321f8f.35.2025.12.12.01.22.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 12 Dec 2025 01:22:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1617789b-d73c-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765531351; x=1766136151; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qC5qYzjhF3rNhucKeYg8dmw7RVlCEPC7+UWDNTJKXys=;
        b=b4ekwd52mH+tRXZltAuXFSstn6SeEUyLbL0EASzsXgg+/WMErx7zne392WRrTkqQTv
         vktsxOznZevJCCBuvTcMp+H90cN2QUCMM7zGaQRMhiAlkpP8c5ita0DKIyWPcGqIrlPJ
         v7YtE17rRaOjCRu9mDdCGl+As+qRkjvPDwIPzj++RLPvnUBvTR9TWOxoo1hIeNs3rROT
         /pxJAuu1CTszikE7ElsJF5XkeWOv9esI5zCB7d+s2Jj11+0L2SePfHgkoI7+HUnORg0Q
         KNhhnOmgHUtHFGioM7vl1oztJhKvtNOQlKZx/Qk+BnDgYPLvh6hQcreGz8pR5qxUx5LU
         MOJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765531351; x=1766136151;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qC5qYzjhF3rNhucKeYg8dmw7RVlCEPC7+UWDNTJKXys=;
        b=jypglzpPyCIp3Xa+0SLnOmnNQUnd7pRVZpsGI09BuwcUH87iAbmVdaXBhkIwQt7Wtg
         mQ6U7MuVfOTszcgyL30FZs6GOaou1IoYqvu9mmOTa1nAgWe0Bxs1PdKptsi95vINprgf
         QUqVAsFD5UhNU9zbh6nPTNVWuxSrKCJAbOBImTRpz2e+H7PtfxXVTcAU8bHSlL9QV3zi
         A7E8vB+MImP/Yjv7wwPiPszmnx1hcCCX6YHNdx88AGc3/9NLQobOPzUiTWZgL6JWfw/I
         i82YRgS4zD5cHtBmHkYvDl+urag7T1oBedd/m8nUybzgG9ALgiSiKxPlViAAcgVKzhbz
         Nifg==
X-Forwarded-Encrypted: i=1; AJvYcCVAWkn6lVFw9KrlKuB5t4AIx+3huJGARVdDMfwmaSR6tYJV6O6OFprVEoWCPs8fqgq3S97R14lyaz4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxtGv2BcA/OdIUA7Y42I3Bm0fmEK0NkcZ671erPwqtO6xE2sUJl
	NmOlXhvJyXWXVK1ufE461x9LWo6/xI/fAkKv3WmXfIzLLShU/qPi03uNszszQEzlqw==
X-Gm-Gg: AY/fxX6hz6L6jIJhrprAzVbFaqpy9G6T/HmAh+IbTBR8aQc0tLlcQ2AE1yr+vI/5ni6
	ORMhQom1Dy6UeXlJxBm5PcdUet6VUCphrPX/xtYX1BFyNYLomF9l5FZViar1QUOwam+upj7RWlV
	XLiPwtNi8RmRA98HXOfL4LIGwrINSE5ZENhWrMPvugWqiTTDu7Q2RJsR2Yj67H99GUOB3mifjCr
	9jDLv8qGZMA/AUt90YO4g5A7VPBOB1EutsNJv7nkVmp6q0usWpppyapQdiYO4fobeMHzhYSIsQ1
	vCFu3Mw8/jFVYpdzO6qF+DNdoKTZB53lHQ7F7LWYv3J9CC1rrgsdfw3cBGOmT6yLO9bNumBJjIF
	N2tDrUOevXKgywSfZK+q104SwIf26yxLInLwdG4j26LcJGjv/Cxi4vYTtlSD+ifDnshydYtqp0r
	YLUbfaF5/4AN8C5GYd4JqEpriwgWmToi/lNgMh7PTh2glHnsmwN0e6wCkeK6ZIzyq89TDxfv/Bd
	A4=
X-Google-Smtp-Source: AGHT+IHRSYanXXCGIKWxRZGgtf8O7pMfqBmmypiOxpy2ktP/A+YZUe86Rpioo4Hp9ot/3Ai8E4CXRw==
X-Received: by 2002:a05:600c:3486:b0:46e:4a30:2b0f with SMTP id 5b1f17b1804b1-47a8f90c46dmr14367445e9.29.1765531351210;
        Fri, 12 Dec 2025 01:22:31 -0800 (PST)
Message-ID: <f55d729e-e25a-408e-91ae-355033eaedde@suse.com>
Date: Fri, 12 Dec 2025 10:22:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 08/24] xen/mem_sharing: make memory sharing depend on
 MGMT_HYPERCALLS
To: Penny Zheng <Penny.Zheng@amd.com>, Tamas K Lengyel <tamas@tklengyel.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
 <20251212040209.1970553-9-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251212040209.1970553-9-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2025 05:01, Penny Zheng wrote:
> The enabling bit (d->arch.hvm.mem_sharing.enabled) for memory sharing could
> only be enabled via domctl-op, so we shall make memory sharing feature
> depend on MGMT_HYPERCALLS.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

Tamas,

this is something that rather you should ack (or reject). (Penny, you would
have wanted to Cc Tamas here right away, no matter what F: entries in
./MAINTAINERS would say.)

Thanks, Jan

> --- a/xen/arch/x86/hvm/Kconfig
> +++ b/xen/arch/x86/hvm/Kconfig
> @@ -79,5 +79,6 @@ config MEM_PAGING
>  config MEM_SHARING
>  	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
>  	depends on INTEL_VMX
> +	depends on MGMT_HYPERCALLS
>  
>  endif



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 09:24:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 09:24:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185269.1507499 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTzO3-0001hg-St; Fri, 12 Dec 2025 09:24:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185269.1507499; Fri, 12 Dec 2025 09:24:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTzO3-0001hZ-PC; Fri, 12 Dec 2025 09:24:31 +0000
Received: by outflank-mailman (input) for mailman id 1185269;
 Fri, 12 Dec 2025 09:24:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NHsq=6S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vTzO2-0001hT-Gm
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 09:24:30 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5b9246eb-d73c-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 10:24:28 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-477b198f4bcso7468405e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 01:24:28 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a906fae81sm5151455e9.2.2025.12.12.01.24.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 12 Dec 2025 01:24:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5b9246eb-d73c-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765531468; x=1766136268; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MNBSMiP4wnU7GtU8DXqTAJdFHX+OfSGNVckZFn44WxY=;
        b=FrkN1tscWjm4RcybTWkmBXos7GOLGdz+HZSm6yCX2mFptbPjHq/Z6A6LF10nAF4DYn
         vNLSwKXrgYbvf4hQFnJL1sue1qlw0fA7zUXslLkCOxYPna2F0t3ldRfyhWWEGxqIVLZC
         PVse49vJR5XUpHFgJ+YV2rOvkK+OiikNL03391jY0DH9j3ejgXE2nG8IMUdFS/OzzBGi
         e0R6VY4SmLz4bf5tC+YAF35ypuGQEl2td9jt6UByvXT9WJExkS96JAAbe4MfHhydbqb/
         w4ENhMa7oPKqSl8gHGD8NGBqAdOoJMV7PJEKaB8Zpw1+x2SHrpyacBdG1GHbOupjmUyx
         JyMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765531468; x=1766136268;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MNBSMiP4wnU7GtU8DXqTAJdFHX+OfSGNVckZFn44WxY=;
        b=OhzAGabAkktDRLlBjhvCNRItwB7SwVKZG9GZupB63jujU9hLzXci1nGxlSYpRNJwUj
         Td3ySY7Gdd7+zjfJmYUYBzP+cYH+o3MpfV0pUdHklDj5e1huZ3VSwZgZxnK/ZJgYX402
         iEczKOsu2FEvvxegSbvI1a1n6mpUb4mKL5mA1UFJZR7H5NyjlZmPFVB7kyXrud/Zup1O
         rhA2G62daie7FD0gEP14e39QTe2aQrqTNU93eehsYDAluxmQEzhD2xwlaBhUBiFjpqKa
         NG8GdN9/zPqW+4ck6XJoJd9TYpuNwyu+v859W6hj25EJGA10qcdewuHQ9rHE9cBZ76DV
         z6Vw==
X-Forwarded-Encrypted: i=1; AJvYcCXyuOsuKtcjBYGc83x0T4dlci1c5qBOQsPfPTuHl8d9kmhwx33WE8dZsHmw6dg64OAFlJOQJxKtmJQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwXQqQQ3xJtNFLKX2wfsZFiVaffowy3zpIBKNiTXNQOg/n5zQTn
	+zRLcN5sj/xxSM35mRwa+XI5gcy9akBa7AqD06g7aG31XajlbFpN8MsJY5QNLLTd8Q==
X-Gm-Gg: AY/fxX7MYDe8TaDuJO/rzxK5gZzGXmAEig2RL0H7/6pae4Fa6uW58hXJEvnRVvoUDxT
	zyBO1LdLm5dF+P6p3qdtsPkDrpa54p1ku+StkXok2zyIvkibCUxEehlysWhXGnFWt9Cn8fzKGPs
	N26x5uQ+thp/ufvVGEGr+v44Xo9cIZbB5vFWUq3fIm9NUyYf3e7mc78ja1nGKdJIcvw9aQcCxK0
	dZ6+SUOD+/vp8AaVFiJuq7JSWpU9IbVy4Je2+Ky4wx4hvLiWNgKAeSAX6xpfNoGocphDRDpybXi
	i0r7PlLWxeQSEm5YeoLgR4kL8a4c5KIwsuDpmzwRMqZD51RWC6K3Ud1VAxXd3GdeKcaCPxgZ9bo
	kVxp8obZr4mFDQ9afTAWuZ5E/xq2JFp/F8jQKEMvtYPG0fw0Qzc1ZwLuN2HUbqJ2poOrtzqSkan
	1TBYeH2KDlOSoNCM4ARfdUOKvivIhd7sjYs6/CxZnSUjTSi9Bem5VIErH5N+Kez7e+N7JJqkwmi
	6o=
X-Google-Smtp-Source: AGHT+IEgzk77lFO2Ly6hkNahzjPJrK+14Hvmb9omTBa1ZS32sPDAlYC7vOg3/xSF6sM48zk5nuGpyQ==
X-Received: by 2002:a05:600c:1994:b0:477:952d:fc00 with SMTP id 5b1f17b1804b1-47a8f8c0a28mr11649975e9.12.1765531467787;
        Fri, 12 Dec 2025 01:24:27 -0800 (PST)
Message-ID: <c40b079e-cbeb-431a-9c1d-9425d75258fa@suse.com>
Date: Fri, 12 Dec 2025 10:24:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 16/24] xen/domctl: wrap device-tree-subset
 iommu-related domctl op with CONFIG_MGMT_HYPERCALLS
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Rahul Singh <rahul.singh@arm.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
 <20251212040209.1970553-17-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251212040209.1970553-17-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2025 05:02, Penny Zheng wrote:
> Function iommu_do_dt_domctl() is the main entry for all device-tree-subset
> iommu-related domctl-op, and shall be wrapped with CONFIG_MGMT_HYPERCALLS.
> Tracking its calling chain, the following functions shall all be wrapped
> with CONFIG_MGMT_HYPERCALLS:
> - make PCI_PASSTHROUGH depend on MGMT_HYPERCALLS
> - iommu_do_dt_domctl
>   - xsm_assign_dtdevice
>   - xsm_deassign_dtdevice
>   - iommu_deassign_dt_device
>     - arm_smmu_reassign_dev
>       - arm_smmu_deassign_dev
>         - arm_smmu_detach_dev
>           - arm_smmu_domain_remove_master
>     - ipmmu_reassign_device
>       - ipmmu_deassign_device
>         - ipmmu_detach_device
>   - iommu_remove_dt_device
>     - iommu_dt_device_is_assigned_locked
>   - dt_find_node_by_gpath
> Otherwise all the functions will become unreachable when MGMT_HYPERCALLS=n,
> and hence violating Misra rule 2.1
> Move codes closer to avoid scattering #ifdef
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 10:02:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 10:02:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185290.1507512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTzy7-0007ZY-KT; Fri, 12 Dec 2025 10:01:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185290.1507512; Fri, 12 Dec 2025 10:01:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vTzy7-0007ZR-HH; Fri, 12 Dec 2025 10:01:47 +0000
Received: by outflank-mailman (input) for mailman id 1185290;
 Fri, 12 Dec 2025 10:01:46 +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
 <SRS0=lELV=6S=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vTzy6-0007ZL-Hw
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 10:01:46 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8f95a131-d741-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 11:01:43 +0100 (CET)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by DB5PR03MB10097.eurprd03.prod.outlook.com
 (2603:10a6:10:4a7::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.10; Fri, 12 Dec
 2025 10:01:39 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873%3]) with mapi id 15.20.9412.005; Fri, 12 Dec 2025
 10:01:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f95a131-d741-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yIJVfLFIGCnObSVbjndoEKpPEyIpSkaWEG4rtepdiGu9nzss7DtD0D/O/W6wt2SqrOlw7RjyCcrYPj7Wuf1stN97tcVP/PJIR+NA85Pwu8u6uvQRRzviQv8I7LALkQwFx1WTjMA2Knc+d5Rxf8KvDUqFVdrZz3mhIRi+dmuIMJy/Q7GDL5OOEBGPfmq/N30EeK2MZaH/jrWURoIX9V7wzPEvKUg9jLK/Onc/S0dvt2Jpi4A2BJyDQnz4Sg0osXlufPH8Xij9QTvL2rsT8a9nbB14mUuTH5CRxz3RaKvgSHsG52Now3HZKE/+dGOP22+NfSIS7/cpIDGm5GjyARBnpQ==
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=mPuWIy/T7UiUAJC/3wAm/ckHpnwrVOgpYzB70m31Vh0=;
 b=XVsZT657sO/km6nTf90xlkaUL/TuXH0jWvkI10rdvHyy7MoLBcQENAVJy9rmIrBU50Y1VoJzqahA2dx7CkWGJmsGpp2Kpnndx170+rKkhtCKzOChJ8W7Cb5u2O2pfxzFvImAtE5k5CZkayECxeRsXNfGamWONcAuD8HmVWCeTzHAMFR51xMurGzMxizNNy4cQixjK7TpnAy8f7j3rhGcR2wCDvVtfa6fto4w81vauUHtz9zx4AK1GzsWmFq14Z6CXDqgzuMzQxHnHrKV5blccglxbXCB3mdxF3FBggQnqt5pVKbeew7uU8YUIWWfDY0Xjfw+X5ZsyeaJdpqhjpkC/w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mPuWIy/T7UiUAJC/3wAm/ckHpnwrVOgpYzB70m31Vh0=;
 b=kLYln+qOQIG6qWme2JT5sASEcdzHrTQpzogdcuY0clfrQYf0uFEfkyd3qMlNncpHAcq2TtxO4m5VODVZNOw2N8ASRmewpeyTSy5iFFDic1a0p1E8FkQHtsAKOrJoUnBjDqnBWOlsNgNh1ryTXnD2nC877vJHOLN3SFkTUVxpF2JNGkfHcEF2XWYyaIEpHoZ4sb3zFw/TYPnVQ14ZiuekBPJnx8z7hUFiexylXuE4+IGlLpGzgX/lKD3cLGabYiUkg3CkktrvZARVdijDqO7YeETdePFAfglgPI1P7Jtnn1LAaTKNGWoCwADArs1r4LfaKGXI+9cPWwOXIfloM/jgog==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Julien Grall <julien@xen.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v4 4/8] arm/irq: Migrate IRQs from dyings CPUs
Thread-Topic: [PATCH v4 4/8] arm/irq: Migrate IRQs from dyings CPUs
Thread-Index: AQHcU8JYvjT2yDm5JUiekiWBeQTl27T1L7qAgCjFXQA=
Date: Fri, 12 Dec 2025 10:01:39 +0000
Message-ID: <5569161c-2edc-4409-901d-d65493f12496@epam.com>
References: <cover.1762939773.git.mykyta_poturai@epam.com>
 <6371ac96102f48b55ffd884656770187ed3a7f84.1762939773.git.mykyta_poturai@epam.com>
 <8099d0ed-74bd-4c98-9441-296daf76c41e@xen.org>
In-Reply-To: <8099d0ed-74bd-4c98-9441-296daf76c41e@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB10110:EE_|DB5PR03MB10097:EE_
x-ms-office365-filtering-correlation-id: 3872cc3d-d264-4f3f-0e51-08de39657193
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?cWYvWGVxWDRzMGMxTmRuU1pFVElhblozUFFmUnFTejV3SEdrSWN0U0NuQ0NV?=
 =?utf-8?B?bDBRSndqc1pqbGs4ajg1VDNZY1A1N2IxeE5KNUFtS3ZpQzR3cE1pTXVNRlhl?=
 =?utf-8?B?WC80Uy9xcllFRTBzNFpjOGp6cTVnUTBDUzNWcHpvTUtadDVXdEpFWXo1RUlC?=
 =?utf-8?B?MHhXckdlOXN2eGJObmJVWmgwOVpRRndyS3NTZTJjV3ZQMWdyMGJKRE5UV24z?=
 =?utf-8?B?c2tLYTVpdjZLSEJSaDJnQ0pnNWE4ZnAvSFhXMmllVFVLOHUzRjd6eVdoVHhF?=
 =?utf-8?B?eUxyT0tMSFQyVG5rU0pjd2ZlTXdnTktSQkZJNmxxKzBTR1FDSmdCTFROc2Jn?=
 =?utf-8?B?elZaSmJpazk1V1Jaa1dObitkM1RDcGVoZWNaK25QSzJlV2tYVmJYN21MVk1l?=
 =?utf-8?B?UW01aHRmMW9PWjhEUzJSK21yaU50T2xqcWhTakF4SGRqbjhWZ1pEM0l6dGlM?=
 =?utf-8?B?bG80OGZhK2tOVkIyd0pNcGxqdS9pVEYrRU9OQ3pZLzY1STZldDZJNndIb0xh?=
 =?utf-8?B?VWpNVnRpSjZxRm9QbkxCZ0RmZlBYdm81Z1N4RUIrdUlLM1NwMTg2eEEwend6?=
 =?utf-8?B?LzBkeXcvNTJqdDJFYlJtTzdNSml3NTMzeEpYUkhDVHhOcjJJT3RhQzhvcFZV?=
 =?utf-8?B?MERzVEtOcFZ4L293VmlNdHlSOGdZRjRnV05FeU00Z05qZFQ4MlMwYjUrK0ls?=
 =?utf-8?B?b3d0TWcwVWI0UVJMVng2bzU1cFI2NHY4c2xpREtUVEdJOHNwV1FIeTlqYTlt?=
 =?utf-8?B?V0doTExTY1JBZG5oR0k1Mzk2VlhWVnhMaklvMzlVSTl4anFINDFOZHlZb0FR?=
 =?utf-8?B?RGZuT0JLcysrQ0Y3TDNvaytadjhMVy84RmFZTHJkUFBGQmlObVF3NGx6KzMz?=
 =?utf-8?B?SjIrR2NrTmsvNzVqQkNpdUVYZ2tIc3BYTWF0Z1B0d2NmRmYvRzlsUk5XM3NC?=
 =?utf-8?B?M0NPOERma1ZsdEgrbldmOFYycmhGMndzWm01SXR6dm84UEtTallmbjZHZ0sv?=
 =?utf-8?B?RmJESkxNNi9seHNvemxqU3lraEh3c3NDbDQ1eEJqTE0yZU1RUXB1Rk5GeXM5?=
 =?utf-8?B?VnA0K2V0N2NjOWxJVGE4Ni9OdkdvQmJ6SWl4MDRRUXQ1K1BUbDRMWnhXZThr?=
 =?utf-8?B?bTN2anlyWm42OU1KcUVYeFBRK1BSdXloN1EwRjUvZHJPVGkzZEJiYmVha1ZI?=
 =?utf-8?B?T29OREYydmpSdlhLSGducTBrUkhqSGtxU0xEaUlVazduMHQyMUk4cXAvSWo4?=
 =?utf-8?B?WlUxUVYwenZsVVNGSmZjMW9lWDlNMFUwZngzZ0srL2RHQVRKSmxKMVNxMm9n?=
 =?utf-8?B?RmZLU2xwQ2tVSFM3MUVIc0FkOGVqby82OEcvMlNBUkhIZ1pJTFhCNGhXRVRZ?=
 =?utf-8?B?bDB1K3d5U3FDVzhPdG9mNy9KR2dqTXRRVDdYNEV3MFd6WEU4M2tWRWtDVVVP?=
 =?utf-8?B?SzIvS2lNV2tOMVY1b0hITEN6THdrUWY3UjFhcVF0RjZGVi8ybjErQytTYmUv?=
 =?utf-8?B?REhWS0piZlErSkx5aWdZTiszVURhQzIrTkpIaWlZVzdnU29HKy9oVHdpODJZ?=
 =?utf-8?B?MTE3QmwrUStUVmQzbTI4S1lLTTdGUmoyc2ozNTkwZXArT3NldXh6MUZqcFBK?=
 =?utf-8?B?UDFVYkQ0Qzl0VjJmUEtjUXBkUmh1dHY1KzZ5TnBQcWV0RlEvNU90R1B4c09i?=
 =?utf-8?B?WkNGVEY4RWxkaWhXY0tIZ0tQTkpITTZFdHF1b0FkVG4vLysrcGtFOUZiRVNQ?=
 =?utf-8?B?UVc3Yjk0cFFXTlhVdlYzZjBPUEYzU09kSkM3V1pwQUpWeW5MbkFkNjQ4NTJP?=
 =?utf-8?B?enV0emFlT1dBa0tOb0YrNG5hVW5pNldGL1JVN3JNZDNiRFVGdU5qMTVuSjU3?=
 =?utf-8?B?bGF1dlpHTU1SUzM3UW1oN1lwQjFWRG9jUFpFRDU4aXFPNnR2aGkrdTVXZnh4?=
 =?utf-8?B?QnQ2ZDBSbG0zMGU5VU1RalhCV3Q2ZzNHNHNnTXZnMWtBOTRJTEc5OUNVQXdS?=
 =?utf-8?B?SkdNemtWUzIzMXl2Y1VsR2h2dlkwYm9lcktKbWt6RnR3VWk0RHVZMkNjd0JM?=
 =?utf-8?Q?IuKjUM?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ZEduUnFHa2pNWHYxVE1peUdiUVRhZTdkeEszSkR1RmVUaFV6MENuYjZyK0Jz?=
 =?utf-8?B?dmVicStoc2t1MXNjM0ZDL2xEamRrUytvS0dsRjFIVkFZODZrQUMwcVdTV3ox?=
 =?utf-8?B?VFNtczJ1NWM5RHJFNE9MdUxWUGkyUHk0NytLMC9naXdLc2h5WjBDYnU0ZmNn?=
 =?utf-8?B?VDJveEh5eXdFekpOMFgxQnJNaDgwUjVyd2lrUjladFpYaW9IdTFhNldYRkFI?=
 =?utf-8?B?QldFUGhQcDFvRGErWjRiUHdNNVFvN3BmYkpxQVdzOWN1eUltMkhRU2N4S1Iw?=
 =?utf-8?B?MXducCtsUi9HRHpJNTBDSTBWZVFtWDIvTXJUTFh6cE1qYVhRSUJqeXg5b3Bx?=
 =?utf-8?B?ZGg3dm00MjlVcjVzRFZjdmJCa3MvaUtzMTF0cDdGRUNkZVVDT2U0MTBIbzFO?=
 =?utf-8?B?S1pkR2VhdnFPRjRLVnN5YlY2TmFrMTlHQkViUXBaWkovQU9tOEh2bzVGRWx6?=
 =?utf-8?B?dXFBYllWVEdsYW9rUFV3WVJZOUZaM0pPU2dGTnFWMWowbmE5RUpWZEcwL3Qv?=
 =?utf-8?B?ZlJ4b3VnYjRNd29JVDZRWE5Ja1JxQUtQd211NVltR1ppS0FPRHAvYk1uc0N2?=
 =?utf-8?B?ZGpuZEwvM3EwVTJsSFEzWVozUVZDZkZZNHovSUZJQ1lONzMxM1JGa3VJM0ZE?=
 =?utf-8?B?aFQ4aG5KTlJ6d2ptb25PUFU4TDhBSkgxWmdPS2pqWGFtSmd5bUhkRTZRdkZ3?=
 =?utf-8?B?Um10ZzlydmlqelduYzZLVmFEYmU2NGFvKytIT2tSZWEweUNzdFdHMS9pVGRm?=
 =?utf-8?B?L0oyTUc5eWFTR3RDZlQ4VXpKSFZyK3RIUEZKdC9LR3JsOS9hYXFoRG1saXl1?=
 =?utf-8?B?Yy9TZno5ZzEzRHZucXVaS0kwcUxHWTRlbXdYT0w4R3FHdm1HSlNCN0ZGZlVN?=
 =?utf-8?B?MlVmbndRQ3I4cTNpcE5ZQVQrVFVEV1k2bzZWbzdxR0F6bUs5bTIySm9EdmFz?=
 =?utf-8?B?QVRjc0hnc1hyTGVmLzlPR0NOb0ErVk1pZ3ptekYwTjVoZ3Flem9zQys2QXdW?=
 =?utf-8?B?Zzc4dnVEKzI2bVpRYVRWRU9tL3JtNzNkcmZBTWVwVzJiQUIwZktNZzRwNTJO?=
 =?utf-8?B?ZmpKZ2dkbWhrUUU5dzVCZHpiZDVPQmliU3BwK2ZmUE1yYWFveDNXc3Nmb0kr?=
 =?utf-8?B?ZEh1MkFUaDhNZTZiZU9WZkRJaFdKeDJHOFJONG1RWXRzNWJCckhneWJDSGEy?=
 =?utf-8?B?L250Z3dtdEo1QmIxQVNpRStlcDFPLzd5cDhXL1R5MU1BRVhueGtocGVrM1FY?=
 =?utf-8?B?MjhacWxoK2RncUpjYjE4aEI2SXFmMGtGc3BCeWVabVF5cjYrM2p2dysyTkVC?=
 =?utf-8?B?L29oUzQ1bmtLSjgzN0ZDUDlvS3hnaisxS2NRMGoxSDk0UnhBRFQybU9JOUdQ?=
 =?utf-8?B?MFBPQ3pETkdMQzdacUp0c1lQbDAyWDVkcjgrRTBKS050RlR0SmhTM0ZnWHJj?=
 =?utf-8?B?MTVDVjB5cmhnY0ZuVVRqUmE0UWVLOEJYWEE3Z3dwcUF2SlhlZlpUZDBCRVBz?=
 =?utf-8?B?bndtZnRYTzFlazF1NHNybXFRaE5LeTNJT292VEJ4UE82Y3EvempEMGxzaVNa?=
 =?utf-8?B?L3Zsd2xWelA5OVgyTytubWtydTRseU1MTlpEaERCWFF1QW1qeFowMFVybnZp?=
 =?utf-8?B?amFTK1JZWUN1WlczYW5aY1FUVG93K2c2eDdJUndUR2VYVE5EVGQ1VjlhNWE3?=
 =?utf-8?B?UTVlYnBrWmJMU29BdXFWbTF5TjUwUXorWDcrZDdsckttbW5YSkhxdHRkeTZi?=
 =?utf-8?B?Ly9ETU1obmhlY3ZhUE1ESTJqNnNEYWY4SmdHakdZUnNiZEJGMHVaMXlBVDBP?=
 =?utf-8?B?TmZkNys2SjFDRnRUbkN6TUQyN1cvY2JZWG5oN2djNkZpdFRXL1BDRG81a1g5?=
 =?utf-8?B?V0g5MElVTGVCUVkyQjY1VnNTSVFSaDVjN3lBNWwraTAzVDB5Vks0RnZiSjl6?=
 =?utf-8?B?L2NhRDJmemxHK2FiSHFFK1JPMUpIdHpHOEM1dklyNGV4TmRMWW5zSFAycTRh?=
 =?utf-8?B?d3RyV0RWRWUvVzMwRkZVTEFVYzQrSHFxUjVmVzNZSjV6NkpMT1phWHZsUjM2?=
 =?utf-8?B?VjFMQ0hWS3JOVTRsUDV0MUhibTBpRjM4aC94L3RwdnJYZHJSSUVyUWdwQ2k0?=
 =?utf-8?B?QXA3NmRBVkZKdmNIeXVOOHY2Yk8xRjMrWTUxZjJSbVB2S3h6TGJubDk4allS?=
 =?utf-8?B?K1E9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <AE22B0E72ABA99489FE6F6F9E5EDBDD0@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3872cc3d-d264-4f3f-0e51-08de39657193
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Dec 2025 10:01:39.2790
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 9mfsmIBbL9BlhNdMsJDDAbMT+OxIeEVExCU9+P14sseMqPByVgcHzMBLUDT/zn1sPveL/Ctd8KsWmCx4i1g32g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR03MB10097

T24gMTYuMTEuMjUgMTM6MjQsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGksDQo+IA0KPiBPbiAx
Mi8xMS8yMDI1IDEwOjUxLCBNeWt5dGEgUG90dXJhaSB3cm90ZToNCj4+IE1vdmUgSVJRcyBmcm9t
IGR5aW5nIENQVSB0byB0aGUgb25saW5lIG9uZXMuDQo+PiBHdWVzdC1ib3VuZCBJUlFzIGFyZSBh
bHJlYWR5IGhhbmRsZWQgYnkgc2NoZWR1bGVyIGluIHRoZSBwcm9jZXNzIG9mDQo+PiBtb3Zpbmcg
dkNQVXMgdG8gYWN0aXZlIHBDUFVzLCBzbyB3ZSBvbmx5IG5lZWQgdG8gaGFuZGxlIElSUXMgdXNl
ZCBieSBYZW4NCj4+IGl0c2VsZi4NCj4+DQo+PiBJZiBJUlEgaXMgdG8gYmUgbWlncmF0ZWQsIGl0
J3MgYWZmaW5pdHkgaXMgc2V0IHRvIGEgbWFzayBvZiBhbGwgb25saW5lDQo+PiBDUFVzLiBXaXRo
IGN1cnJlbnQgR0lDIGltcGxlbWVudGF0aW9uLCB0aGlzIG1lYW5zIHRoZXkgYXJlIHJvdXRlZCB0
byBhDQo+PiByYW5kb20gb25saW5lIENQVS4gVGhpcyBtYXkgY2F1c2UgZXh0cmEgbW92ZXMgaWYg
bXVsdGlwbGUgY29yZXMgYXJlDQo+PiBkaXNhYmxlZCBpbiBzZXF1ZW5jZSwgYnV0IHNob3VsZCBw
cmV2ZW50IGFsbCBpbnRlcnJ1cHRzIGZyb20gcGlsaW5nIHVwDQo+PiBvbiBDUFUwIGluIGNhc2Ug
b2YgcmVwZWF0ZWQgdXAtZG93biBjeWNsZXMgb24gZGlmZmVyZW50IGNvcmVzLg0KPiANCj4gV291
bGRuJ3QgdGhleSBldmVudHVhbGx5IGFsbCBtb3ZlIHRvIENQVTAgaW4gdGhlIGNhc2Ugb2Ygc3Vz
cGVuZC9yZXN1bWUgDQo+IG9yIGlmIGFsbCB0aGUgQ1BVcyBidXQgQ1BVMCBhcmUgdHVybmVkIG9m
ZiBhbmQgdGhlbiBvZmY/IElmIHNvLCANCj4gc2hvdWxkbid0IHdlIHRyeSB0byByZWJhbGFuY2Ug
dGhlIGludGVycnVwdHM/DQo+IA0KDQpJbiBjYXNlIG9mIGRpc2FibGluZy9lbmFibGluZyBhbGwg
Y29yZXMgaW4gYSBzZXF1ZW5jZSwgeWVzLiBUaGlzIHdhcyANCmRlc2lnbmVkIHdpdGggdGhlIGlk
ZWEgb2YgYWNoaWV2aW5nIHNvbWUgYmFsYW5jaW5nIHdoZW4gDQplbmFibGluZy9kaXNhYmxpbmcg
c29tZSBjb3JlcyBmb3IgcG93ZXIgc2F2aW5nIHJlYXNvbnMuIEkgYWdyZWUgdGhhdCANCnByb3Bl
ciBiYWxhbmNpbmcgc2hvdWxkIGJlIGltcGxlbWVudGVkLCBidXQgaXQgaXMgYSBjb21wbGV4IHRh
c2sgb24gaXRzIA0Kb3duIGFuZCByZXF1aXJlcyBhIHN1YnN0YW50aWFsIGFtb3VudCBvZiB0ZXN0
aW5nIG9uIGRpZmZlcmVudCBoYXJkd2FyZSANCnRvIHByb3ZlIGl0IGlzIGNsb3NlIHRvIG9wdGlt
YWwuIFNvIEkgdGhpbmsgaW1wbGVtZW50aW5nIGl0IGlzIG91dCBvZiANCnNjb3BlIGZvciB3aGF0
IEnigJltIHRyeWluZyB0byBkbyBoZXJlLg0KDQpJZiB0aGlzIHdvdWxkIGJlIG9rYXksIEkgY2Fu
IGltcGxlbWVudCBhIHJlbGF0aXZlbHkgc2ltcGxlIHNvbHV0aW9uIG9mIA0KanVzdCBhZGRpbmcg
b25saW5lZCBDUFVzIGJhY2sgdG8gdGhlIGFmZmluaXR5IG1hc2sgZm9yIG5vdy4gSSB0aGluayBp
dCANCnNob3VsZCBpbXByb3ZlIHRoZSBzaXR1YXRpb24gZm9yIHRoZSDigJxzd2l0Y2hpbmcgYWxs
IGNvcmVz4oCdIGNhc2UuDQoNCj4+DQo+PiBJUlFzIGZyb20gQ1BVIDAgYXJlIG5ldmVyIG1pZ3Jh
dGVkLCBhcyBkeWluZyBDUFUgMCBtZWFucyB3ZSBhcmUgZWl0aGVyDQo+PiBzaHV0dGluZyBkb3du
IGNvbXBlbGV0ZWx5IG9yIGVudGVyaW5nIHN5c3RlbSBzdXNwZW5kLg0KPiANCj4gSSBjYW4ndCBm
aW5kIGEgcGxhY2Ugd2hlcmUgX19jcHVfZGlzYWJsZSgpIGlzIGNhbGxlZCBvbiBDUFUwLiBEbyB5
b3UgDQo+IGhhdmUgYW55IHBvaW50ZXI/IEluIGFueSBjYXNlLCBJIGFtIG5vdCBzdXJlIEkgd2Fu
dCB0byBiYWtlIHRoYXQgDQo+IGFzc3VtcHRpb24gaW4gbW9yZSBwbGFjZXMgb2YgdGhlIGNvZGUu
DQo+IA0KDQpJIGFzc3VtZSBpdCB3b3VsZCBiZSBjYWxsZWQgd2hlbiBzdXNwZW5kIGlzIGltcGxl
bWVudGVkLiBJbiBhbnkgY2FzZSwgSSANCndpbGwgcmV3b3JrIHRoaXMgdG8gcmVwbGFjZSB0aGUg
aGFyZCBjaGVjayBmb3IgQ1BVIDAgd2l0aCB0aGUg4oCcaXMgaXQgdGhlIA0KbGFzdCBDUFUgb25s
aW5l4oCdIG9uZS4NCg0KPj4NCj4+IENvbnNpZGVyaW5nIHRoYXQgYWxsIFhlbi11c2VkIElSUXMg
YXJlIGN1cnJlbnRseSBhbGxvY2F0ZWQgZHVyaW5nIGluaXQNCj4+IG9uIENQVSAwLCBhbmQgc2V0
dXBfaXJxIHVzZXMgc21wX3Byb2Nlc3Nvcl9pZCBmb3IgdGhlIGluaXRpYWwgYWZmaW5pdHkuDQo+
IA0KPiBMb29raW5nIGF0IHRoZSBTTU1VIGRyaXZlciwgd2Ugc2VlbXMgdG8gcmVxdWVzdCBJUlFz
IGF0IHRoZSB0aW1lIHRoZSANCj4gZGV2aWNlIGlzIGF0dGFjaGVkLiBTbyBhcmUgeW91IHN1cmUg
YWJvdXQgdGhpcz8NCj4gDQoNCkluZGVlZCwgSSBoYXZlIG1pc3NlZCB0aGF0IG9uZS4gSSB3aWxs
IHJlbW92ZSB0aG9zZSBzdGF0ZW1lbnRzIHRoZW4uDQoNCj4+IFRoaXMgY2hhbmdlIGlzIG5vdCBz
dHJpY3RseSByZXF1aXJlZCBmb3IgY29ycmVjdCBvcGVyYXRpb24gZm9yIG5vdywgYnV0DQo+PiBp
dCBzaG91bGQgZnV0dXJlLXByb29mIGNwdSBob3RwbHVnIGFuZCBzeXN0ZW0gc3VzcGVuZCBzdXBw
b3J0IGluIGNhc2UNCj4+IHNvbWUga2luZCBpZiBJUlEgYmFsYW5jaW5nIGlzIGltcGxlbWVudGVk
IGxhdGVyLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IE15a3l0YSBQb3R1cmFpIDxteWt5dGFfcG90
dXJhaUBlcGFtLmNvbT4NCj4+DQo+PiB2My0+djQ6DQo+PiAqIHBhdGNoIGludHJvZHVjZWQNCj4+
IC0tLQ0KPj4gICB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vaXJxLmggfCAgMiArKw0KPj4gICB4
ZW4vYXJjaC9hcm0vaXJxLmMgICAgICAgICAgICAgfCAzOSArKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrDQo+PiAgIHhlbi9hcmNoL2FybS9zbXBib290LmMgICAgICAgICB8ICAyICsr
DQo+PiAgIDMgZmlsZXMgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKQ0KPj4NCj4+IGRpZmYgLS1n
aXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vaXJxLmggYi94ZW4vYXJjaC9hcm0vaW5jbHVk
ZS8gDQo+PiBhc20vaXJxLmgNCj4+IGluZGV4IDA5Nzg4ZGJmZWIuLjZlNmUyN2JiODAgMTAwNjQ0
DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vaXJxLmgNCj4+ICsrKyBiL3hlbi9h
cmNoL2FybS9pbmNsdWRlL2FzbS9pcnEuaA0KPj4gQEAgLTEyNiw2ICsxMjYsOCBAQCBib29sIGly
cV90eXBlX3NldF9ieV9kb21haW4oY29uc3Qgc3RydWN0IGRvbWFpbiAqZCk7DQo+PiAgIHZvaWQg
aXJxX2VuZF9ub25lKHN0cnVjdCBpcnFfZGVzYyAqaXJxKTsNCj4+ICAgI2RlZmluZSBpcnFfZW5k
X25vbmUgaXJxX2VuZF9ub25lDQo+PiArdm9pZCBldmFjdWF0ZV9pcnFzKHVuc2lnbmVkIGludCBm
cm9tKTsNCj4+ICsNCj4+ICAgI2VuZGlmIC8qIF9BU01fSFdfSVJRX0ggKi8NCj4+ICAgLyoNCj4+
ICAgICogTG9jYWwgdmFyaWFibGVzOg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pcnEu
YyBiL3hlbi9hcmNoL2FybS9pcnEuYw0KPj4gaW5kZXggMjhiNDAzMzFmNy4uYjM4M2Q3MTkzMCAx
MDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS9pcnEuYw0KPj4gKysrIGIveGVuL2FyY2gvYXJt
L2lycS5jDQo+PiBAQCAtMTU4LDYgKzE1OCw0NSBAQCBzdGF0aWMgaW50IGluaXRfbG9jYWxfaXJx
X2RhdGEodW5zaWduZWQgaW50IGNwdSkNCj4+ICAgICAgIHJldHVybiAwOw0KPj4gICB9DQo+PiAr
c3RhdGljIHZvaWQgZXZhY3VhdGVfaXJxKGludCBpcnEsIHVuc2lnbmVkIGludCBmcm9tKQ0KPiAN
Cj4gQW55IHJlYXNvbiB3aHkgdGhlICdpcnEnIGlzIHNpZ25lZD8NCj4gDQo+PiArew0KPj4gKyAg
ICBzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MgPSBpcnFfdG9fZGVzYyhpcnEpOw0KPj4gKyAgICB1bnNp
Z25lZCBsb25nIGZsYWdzOw0KPj4gKw0KPj4gKyAgICAvKiBEb24ndCBtb3ZlIGlycXMgZnJvbSBD
UFUgMCBhcyBpdCBpcyBhbHdheXMgbGFzdCB0byBiZSBkaXNhYmxlZCAqLw0KPiANCj4gUGVyIGFi
b3ZlLCBJIGFtIG5vdCBjb252aW5jZWQgdGhhdCB3ZSBzaG91bGQgc3BlY2lhbCBjYXNlIENQVSAw
LiBCdXQgaWYgDQo+IHdlIGRvLCB0aGVuIHNob3VsZG4ndCB0aGlzIGJlIHBhcnQgb2YgZXZhY3Vh
dGVfaXJxcygpIHNvIHdlIGRvbid0IA0KPiBwb2ludGxlc3NseSBnbyB0aHJvdWdoIGFsbCB0aGUg
SVJRcz8NCj4gDQo+PiArICAgIGlmICggZnJvbSA9PSAwICkNCj4+ICsgICAgICAgIHJldHVybjsN
Cj4+ICsNCj4+ICsgICAgQVNTRVJUKCFjcHVtYXNrX2VtcHR5KCZjcHVfb25saW5lX21hcCkpOw0K
Pj4gKyAgICBBU1NFUlQoIWNwdW1hc2tfdGVzdF9jcHUoZnJvbSwgJmNwdV9vbmxpbmVfbWFwKSk7
DQo+PiArDQo+PiArICAgIHNwaW5fbG9ja19pcnFzYXZlKCZkZXNjLT5sb2NrLCBmbGFncyk7DQo+
PiArICAgIGlmICggbGlrZWx5KCFkZXNjLT5hY3Rpb24pICkNCj4+ICsgICAgICAgIGdvdG8gb3V0
Ow0KPj4gKw0KPj4gKyAgICBpZiAoIGxpa2VseSh0ZXN0X2JpdChfSVJRX0dVRVNULCAmZGVzYy0+
c3RhdHVzKSB8fA0KPj4gKyAgICAgICAgICAgICAgICB0ZXN0X2JpdChfSVJRX01PVkVfUEVORElO
RywgJmRlc2MtPnN0YXR1cykpICkNCj4+ICsgICAgICAgIGdvdG8gb3V0Ow0KPj4gKw0KPj4gKyAg
ICBpZiAoIGNwdW1hc2tfdGVzdF9jcHUoZnJvbSwgZGVzYy0+YWZmaW5pdHkpICkNCj4+ICsgICAg
ICAgIGlycV9zZXRfYWZmaW5pdHkoZGVzYywgJmNwdV9vbmxpbmVfbWFwKTsNCj4gDQo+IEkgdGhp
bmsgaXQgd291bGQgYmUgd29ydGggZXhwbGFpbmluZyB3aHkgd2UgYXJlIHJvdXRpbmcgdG8gYW55
IENQVSANCj4gb25saW5lIHJhdGhlciB0aGFuIGNoZWNraW5nIHdoZXRoZXIgdGhlIGFmZmluaXR5
IGhhcyBvdGhlciBvbmxpbmUgQ1BVcy4NCj4gDQo+IEp1c3QgdG8gbm90ZSwgSSBkb24ndCBoYXZl
IHN0cm9uZyBvcGluaW9uIGVpdGhlciB3YXkuIEl0IG1haW5seSBuZWVkcyB0byANCj4gYmUgZG9j
dW1lbnRlZC4NCj4gDQo+PiArDQo+PiArb3V0Og0KPj4gKyAgICBzcGluX3VubG9ja19pcnFyZXN0
b3JlKCZkZXNjLT5sb2NrLCBmbGFncyk7DQo+PiArICAgIHJldHVybjsNCj4+ICt9DQo+PiArDQo+
PiArdm9pZCBldmFjdWF0ZV9pcnFzKHVuc2lnbmVkIGludCBmcm9tKQ0KPj4gK3sNCj4+ICsgICAg
aW50IGlycTsNCj4gID4gKz4gKyAgICBmb3IgKCBpcnEgPSBOUl9MT0NBTF9JUlFTOyBpcnEgPCBO
Ul9JUlFTOyBpcnErKyApDQo+PiArICAgICAgICBldmFjdWF0ZV9pcnEoaXJxLCBmcm9tKTsNCj4+
ICsNCj4+ICsgICAgZm9yICggaXJxID0gRVNQSV9CQVNFX0lOVElEOyBpcnEgPCBFU1BJX01BWF9J
TlRJRDsgaXJxKysgKQ0KPiANCj4gQUZBSUNULCBpcnFfdG9fZGVzYygpIHdvdWxkIG5vdCBiZSBh
YmxlIHRvIGNvcGUgd2l0aCBFU1BJIGludGVycnVwdHMgDQo+IHdoZW4gQ09ORklHX0dJQ1YzX0VT
UEkgaXMgbm90IHNldC4gSGFzIHRoaXMgYmVlbiB0ZXN0ZWQ/DQo+IA0KPj4gKyAgICAgICAgZXZh
Y3VhdGVfaXJxKGlycSwgZnJvbSk7DQo+PiArfQ0KPj4gKw0KPj4gICBzdGF0aWMgaW50IGNwdV9j
YWxsYmFjayhzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5mYiwgdW5zaWduZWQgbG9uZyANCj4+IGFj
dGlvbiwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqaGNwdSkNCj4+ICAgew0K
Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9zbXBib290LmMgYi94ZW4vYXJjaC9hcm0vc21w
Ym9vdC5jDQo+PiBpbmRleCA3ZjNjZmE4MTJlLi40NmIyNDc4M2RkIDEwMDY0NA0KPj4gLS0tIGEv
eGVuL2FyY2gvYXJtL3NtcGJvb3QuYw0KPj4gKysrIGIveGVuL2FyY2gvYXJtL3NtcGJvb3QuYw0K
Pj4gQEAgLTQyNSw2ICs0MjUsOCBAQCB2b2lkIF9fY3B1X2Rpc2FibGUodm9pZCkNCj4+ICAgICAg
IHNtcF9tYigpOw0KPj4gKyAgICBldmFjdWF0ZV9pcnFzKGNwdSk7DQo+IA0KPiBJIHRoaW5rIGl0
IHdvdWxkIGJlIHdvcnRoIGV4cGxhaW5pbmcgd2h5IGV2YWN1YXRlX2lycXMoKSBpcyBjYWxsZWQg
dGhpcyANCj4gbGF0ZSBpbiB0aGUgcHJvY2Vzcy4NCj4gDQo+ICA+ICs+ICAgICAgIC8qIFJldHVy
biB0byBjYWxsZXI7IGV2ZW50dWFsbHkgdGhlIElQSSBtZWNoYW5pc20gd2lsbCANCj4gdW53aW5k
IGFuZCB0aGUNCj4+ICAgICAgICAqIHNjaGVkdWxlciB3aWxsIGRyb3AgdG8gdGhlIGlkbGUgbG9v
cCwgd2hpY2ggd2lsbCBjYWxsIA0KPj4gc3RvcF9jcHUoKS4gKi8NCj4+ICAgfQ0KPiANCj4gQ2hl
ZXJzLA0KPiANCg0KLS0gDQpNeWt5dGE=


From xen-devel-bounces@lists.xenproject.org Fri Dec 12 10:25:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 10:25:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185308.1507522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU0Km-0002Fh-C7; Fri, 12 Dec 2025 10:25:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185308.1507522; Fri, 12 Dec 2025 10:25:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU0Km-0002Fa-8a; Fri, 12 Dec 2025 10:25:12 +0000
Received: by outflank-mailman (input) for mailman id 1185308;
 Fri, 12 Dec 2025 10:25:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qjHH=6S=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vU0Kl-0002FU-AJ
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 10:25:11 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d50a62ad-d744-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 11:25:08 +0100 (CET)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-37d056f5703so9572361fa.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 02:25:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d50a62ad-d744-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765535107; x=1766139907; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4t0sEBE/3L5xc3QWbh+63uPdRQYdNbNFipf8kPWUPEw=;
        b=Mr9/DeCCRK/3l/CWb85libfWR7NPLwKtkJ+kL0ZGGdTUhRjxgOmMKFPaWgFEMyf/V6
         KiZk6nsKyf99AGjSW29lkbpaxYLm9jdXH4eK6KPZc+I6xkTsYPDvyiaVT7BD3bgIQ/TX
         xyoYruBsYHYNgydQtsLdQAuGrjhbTrtZ8aAZxOBAfAsba2x1jv90qrr5B28a3GH9lSkj
         icMhO7AK9ZI/rHMos11F/DGtdHgiH7R22ygrHQclZTxO6y3pS/FfRppybOeOGSk0NkqZ
         hltr2/wRP97CRz+mc8zjJMDzOMkUb/aaaQYBqsxAuE/Y0nOju5OqdTSq/fBQCHyWDP9e
         MkJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765535107; x=1766139907;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=4t0sEBE/3L5xc3QWbh+63uPdRQYdNbNFipf8kPWUPEw=;
        b=VFsIKxFYEOQD7teXN2jlkOBDN0hqXwekb+AfQZnQxOUCNlWxxKL+p7d0xrkRTdnJMJ
         f0EssGLbgFO4MKSRFllImp0g4Qp6HI78jQJmizlbdmnN8048QRIUDD4dDXBHrydx/+rA
         Of2yYU/7jkuvaJIR0HZImp25V4M15kS2JV4XaMAgr59zZtxmibxOiV2x5B6IvkDrFCCb
         cXGli3ySHjSEQzhU6zJgwpU0AkcZ/R9iqgmitaNExTkXKc4YzPdorzd2i8vIQSb14/7e
         Yqk9SUXIg9oMJlo+WqmfivweCu8qeMCNmLVnoWtpounTTQhL/F2c25FyfGJPPwL+UbCs
         Ntnw==
X-Gm-Message-State: AOJu0YxHSutlOrmDNs/6e3498XDOqM4Ps0HraQ9k3XQKCoJe1oiH7V89
	fESHmOp4AvXJsOgHMUnm4UzGtEEsZNnHVAhhljTHAmk4RppItDFMyIy0u5jOapF/uNlgDBIntD+
	tuRt37ZgsBewxvynhZiKsWGZOjjtF/9cxSISs
X-Gm-Gg: AY/fxX77uVVcDm54hp7/XiAbYGKw4uPydfVrMz21p5JbvIXT1OdDMgSTbeU2P7HzHvo
	W2+L6RXf0cYPmojEebU1hmy/PRyGICldgIey55U3/7oES/2Ue4UhbumnjIGVuK/62TN2iEp/blR
	EGcCMRomxw8j4DeqYbo69SXN0+Eevs6i+1fyCyfBfyweTv2r3QLHvFakors7y5AdZ4KtsWSIL8a
	CFJajuWL+iKCrDjdPZ54/apK8Be8mg/4onkMmBhRSt7GNOomV1BClPdEvPnRe3Wkfysqg9VgSld
	Dhs=
X-Google-Smtp-Source: AGHT+IFpqn8xQYNelV+017Usbw3t7tjlAVPbTp70tYZ2yUoZtXO+WTkv/mKSUKTt5uf2lh2wePrN8NGUezQy3rK8WR0=
X-Received: by 2002:a2e:be9a:0:b0:37a:3963:ce8f with SMTP id
 38308e7fff4ca-37fd1f982e3mr4899531fa.33.1765535107283; Fri, 12 Dec 2025
 02:25:07 -0800 (PST)
MIME-Version: 1.0
References: <e57133182b9bcecb519911c8b3f0d871955d6fef.1754540991.git.mykola_kvach@epam.com>
 <CAGeoDV-j4nu1JhHyLpeDoqZ6evsExGvJSws-MK09M4HbUam1BA@mail.gmail.com> <ff935ee4-29f2-4f1c-835a-d821bcec79ed@amd.com>
In-Reply-To: <ff935ee4-29f2-4f1c-835a-d821bcec79ed@amd.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 12 Dec 2025 12:24:56 +0200
X-Gm-Features: AQt7F2oTU0DYVSj01ua4go3ZQG49JOtnpfpMwZDerIafnjMKBZ40pz_VTNkqhsQ
Message-ID: <CAGeoDV9jDboEtcZvEGDr_-=a+ricDSD_vwdSz-5=uotoqBv8UQ@mail.gmail.com>
Subject: Re: Ping: [PATCH v5] xen/char: implement suspend/resume calls for
 SCIF driver
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>, Mykola Kvach <mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Dec 12, 2025 at 10:51=E2=80=AFAM Orzel, Michal <michal.orzel@amd.co=
m> wrote:
>
>
>
> On 11/12/2025 19:56, Mykola Kvach wrote:
> > Gentle ping on this series.
> > It has already received a few Acks/Reviews - could it be considered for=
 merging,
> > or is there anything else I should address?
> I'll commit it shortly.

Thank you!


Best regards,
Mykola

>
> ~Michal
>


From xen-devel-bounces@lists.xenproject.org Fri Dec 12 10:43:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 10:43:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185326.1507532 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU0c1-0005I9-Lo; Fri, 12 Dec 2025 10:43:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185326.1507532; Fri, 12 Dec 2025 10:43:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU0c1-0005I2-In; Fri, 12 Dec 2025 10:43:01 +0000
Received: by outflank-mailman (input) for mailman id 1185326;
 Fri, 12 Dec 2025 10:43:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nb96=6S=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vU0c0-0005Hv-ER
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 10:43:00 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 509aae9d-d747-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 11:42:54 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by VI1PR03MB10157.eurprd03.prod.outlook.com (2603:10a6:800:1c6::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.7; Fri, 12 Dec
 2025 10:42:46 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9412.005; Fri, 12 Dec 2025
 10:42:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 509aae9d-d747-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=J2UUHKDyKxykGYlUT+RSSpD049Ww3PakOZrdSCwTYiEtZrgpWRAIAbYx8w/RVhhRuEalQ4jt5r6vZV4FH7vkdaxOa+V6yS4aGAl83lBu028LP//1lDnM44He9jxiW/sgCk6tYDukD3ngaX7rHjmy3OZRwUqY/RUP6AS9idE7Acdzj7tiF/+AjwdHnXwv/2O5FAT1cRDz/w3qpjTqzWHkpC6bhEDNpCXQvS6xTWDfVm4WpMNJUcTCfkaMxhhyVm5r5Z40LU57UoxFKRffxC4W9pBwIfgPKA+XJJZPWLE+3ZPa8AyokonOhfMcezVq8VkfAjkyBUnlAOmMo72ODCGzeA==
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=mKoF8jsSm5qGPJmylvxaCTX2wl326sDA8irhOg3O5MU=;
 b=mHq6ilUesAv0sTW+Vj9x7Zlfev56S+zrjxd7Aa5hWBQC6+c8aU6EGynJPmEpXG2Ga62hKePW9r2nBXjAdXp3PaUe4TikF/l7Jbmukj9vleEG9bcl7iNJb1cbn6pjv6KcyljqXlUvSsdWX68BWnWrmKZfTMcdx1iDZ/4AK//BNQVmSRr8JcmG39qF/FFD1fSXxWb1Dr/pWFJwDEw/1UUJF5XO/Bzi45SUnAQqID2OJI1nef6l6FFUyXLo3OapdNQl7wTroxPz9rPseMkYQRHXzahB88gUmF2xdR/mytNqhKVJG/Wt/VkUVcCD0l5Me0w7woseBn1atjvskpBJszNODw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mKoF8jsSm5qGPJmylvxaCTX2wl326sDA8irhOg3O5MU=;
 b=Jqf08GGmNSk+tc23q+nm9+rSWONBTgw7oBKealceYBGNq9/aIEi/Zp29i2GjrMKHageiH9jJ8UwWzTeeZF8rru3hIDQvy4onFCRMyXwOUWLrhz3UMyW24XJ+JHcvpKnyKSExGjwh201bpg9dWbfLw4DnH0tKZz8ksWN2Jpxk8H6VyQAFp1RXzaE1F5zg0GZTB6//M29kFec+dI6psYLtYVxrWkmigFFn/4tzQUHY1dVV2IL+Dnn3AcMS1c71rz/JtVgcu88eCHOwiki0q1y9+TAFWDw/3DtUTqWgoNxrLRGNCMEc9ZiD6px/DVlyVGAtSRkgtYYCQn4ne1iuhjAo/Q==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <b162424a-0ef1-46a6-bb3e-85aab5bb5a4f@epam.com>
Date: Fri, 12 Dec 2025 12:42:45 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: Victor Lira <victorm.lira@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-3-jason.andryuk@amd.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20251209214728.278949-3-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FRYP281CA0003.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10::13)
 To AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|VI1PR03MB10157:EE_
X-MS-Office365-Filtering-Correlation-Id: e7a9aba7-94bd-45c2-7c6b-08de396b3029
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|1800799024|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?aC8ydE13VkRTMUJvdFczdDBWTHZHeXZWSVBJeEdtR1hJak1ZSUNEcFVhTXhK?=
 =?utf-8?B?N0FJVXM3V0NQaU9DVytXeEtCZk9RKzgwM2FibmJRdnVQYUQ3RFRRbGttTWdY?=
 =?utf-8?B?SVd2Y2dxSlAxZHA4Z0pPTEkyaDNBc3R1NXNIcG5zT1p1bHNhRis5VUdLNllG?=
 =?utf-8?B?TDR3c1NpbGpCazFyZzl4YTdRTkFETXJrZFZGeG9uUy9TTE1hRmhZdUVqdXMr?=
 =?utf-8?B?WkZoTmxVbWNWKzFRZldNMmc0QTRJd1pFUHhpQmU5OE5oeDNiMXRLQ0t3UWly?=
 =?utf-8?B?cWdYTEhIeDVhTjYrRktrcTJvZU96dHRIYTdpTm1KTDljVzJsWXdJZ0h6UFpH?=
 =?utf-8?B?TC8yTXJsVUFqSi9YOWFSaFNrNUZxT2FMZ25xRUZ2VEpleDluVk0vVlhUenpB?=
 =?utf-8?B?RnVwTCtzMmxFaHM3Z0JTVTBrUWJuNW03dk5vcDlCSnpkbHFrRjVlT05zVkdQ?=
 =?utf-8?B?RW9DQjJpaUh4cWJyNk9OOHJ1ZnhxNmp6OGpvVkZpM1JVU2xRUENuVURLQ3hU?=
 =?utf-8?B?YVg2VGxmd2xlTnB4Q0s2SHFqb0tNUzRlbk1TSVU3bTFncy9Gck53RDFueG5x?=
 =?utf-8?B?RktZZ0xDeitCT052Z2hyMkVHOEdGZEJ1cUozVEJRQXhuRlJaeXVVY1J4eitE?=
 =?utf-8?B?aUVNaXBMcnpCa05VckhlbFdacU01SlRjRzNVVUJ4MmJMTXVBRjFmeXhUaU9p?=
 =?utf-8?B?UVdGaUZ2TCtxeS9jT2pCNlUwUEhNbitlSVBJU3o1UVJMZWM4SjB0bDZHTC9U?=
 =?utf-8?B?Ny9mZW51Y21RbVhGbUEvdjhwRzlCN3NqU3puL2h3elQrM2xwT3o0VjZtTy9k?=
 =?utf-8?B?d2VPMTZiZVlNVlltOGRjU0lIMEpad0hCTmdMUXBncXBuN2d1eU9vNXdvR0FY?=
 =?utf-8?B?QVRFRnJCQS9TM3hzQ0dBc25teVhuaTRZOERMbGlqa2ZOVHN3dnVIQk9ZS3pt?=
 =?utf-8?B?WUpRaG1EWDE4R1FqR2o0czFIYXpheldyck9ZeC91cDVSTGlYekI0NUxFaHBV?=
 =?utf-8?B?N2VSNFd2YUdiTEVkcTVJMk9WYjh0emdmMXFsTmtMcStzR1NlRDNBWEJ1akU0?=
 =?utf-8?B?ZFV5L045ZnpQM0FDMDMvd1BvTEdObWd6ZExTRFJFOE1ibWJwbk1iaVdjTjBP?=
 =?utf-8?B?SkZmWHlsellSSGE0bnk0ZUJLZjM1MHhZZitpWERGRHpwYUpRcldnT1ZzOUw2?=
 =?utf-8?B?MkdsZ1JnT25rUXZDY2ZpMDFXZFhDcTFPRU9HN3BwbExPV3czNzFseHVhSUFu?=
 =?utf-8?B?VmVhSWJnc3lDZ0RkRE94VGpBbnp1NFQ1MXVjbDh1Z0IwU1YvRFUvNytmNlJG?=
 =?utf-8?B?UlpCMVFKS2Y5SWllTUt1MTBmMC8ydGgzenVGWUVSMGRGUUQwTkZSTmdVMlFX?=
 =?utf-8?B?aGU3QVZ6cXN3UUNrY2JqWS81cWE0NGErQmxPOWx4M3NyWC93eGZEa2dlNFRJ?=
 =?utf-8?B?NlgxYWtUdTdEZjRxNHV1emdrSFB0dDdlazdWQkZZTW01TU5Zdm9sL0Q0MUFK?=
 =?utf-8?B?NUZCOENJZFJUbmw2U01iN1ZJTmUwZ3VYT1oxMDVFZFllV3N4aHBRck4rblQ2?=
 =?utf-8?B?eGpMdng2cFFWZjhiV0dyMzAzV25FNStnU0lXaGdWZFB5dDB5bEZHNVFlNWZL?=
 =?utf-8?B?eUcrczNqWC9sUXRLQWRRbko4YVdwT3k2OGRRQzllTDhFOGJKV2J4RDZ2NXlO?=
 =?utf-8?B?L2NDNVJ5cEo2djY1a0tkeDBwMjBkeFpoVXJIekpFc2UwWVJRUHpnWGExckhj?=
 =?utf-8?B?eDJ5RWQzL1V3NkdvK21neXdiam5VMWRhKy9nL09IeFNvVWRvcSttUmU5SUxO?=
 =?utf-8?B?YkJENEI4VFlyL2xwTmlLWTBxZ0V5bHdEYmN0MEtrcHg2NWxiREFjbE0vQjkv?=
 =?utf-8?B?cGd1U1JteVhmR0RNSkQxRzRZS3Rma25OVGM3UVVpVE1yWUdnR0RLdTlDUUVs?=
 =?utf-8?B?K0JxN0IwVWJ1U21QTzdrK1NWRmFCaGdpWnpIcFJFbjBhUXVLYmNoTjg4dmwz?=
 =?utf-8?B?UkE2aUI0S0dRPT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TXJwSVhsb1daL1hLRS9IdlBTbzErM3BNazFIS1NBaG5GeFY4anRyZjdpdTVT?=
 =?utf-8?B?TTNoOHU0ZWluSytmSkFtcTlJSzFhdEhkWDdrT01JV1FqRWVFamtOelZzd3Z1?=
 =?utf-8?B?Qy9DbWV1dmpISGh4VXJ3NTIyRGhBbUs4OHRjY1Fib1pTVHBqRjdLNDE1NEZk?=
 =?utf-8?B?emRMNWJFVjV1UjR6OHZWT0k2U2VRVEtNVkI4b2FwWE9jUGNydzJHK2c3bTNu?=
 =?utf-8?B?VEZQajlMSTdsdnJ6RzYrT3lyR3o5QzVuYndHVk9MNzBSVlhlWU0zWVJ4WGFi?=
 =?utf-8?B?dkdVSmJJdUVRSjZ0Rk5QQTRUS2prM1c2T1VHR3hWVXQrL0xPWjlGZWtseWoz?=
 =?utf-8?B?VjdENFNjcElsTHVIUG5Ya0NHRFRJSEkrOE1vdjY2OSt0cTN0VitZOGJMNjJB?=
 =?utf-8?B?U2lZVzkwTWxpOW1iM25ncEFNM1ZMYTdDQmJxR1grY3Z6RjRDbkIxMjN1Tzhq?=
 =?utf-8?B?dXMyMFBUQ1hUK1FML28rb0VSQWdMSUl0TE0rRGE4YmJrUktOck4vMVlVL0Zy?=
 =?utf-8?B?Zkdod0FCSHZmYjlSSE96eU9pVmZyWUx4RUIzdnB1dkp4dTEwamVGdmpDVlpW?=
 =?utf-8?B?Mm5KOXVJenlkSnhxeE94N1VMSkI4amlwWkdQK0IvMlIrYk5CTVVFVEhpQmhs?=
 =?utf-8?B?cnk5YUFWaWlyeDErVnpnTXJHM1Q4ZUlLbmJyRlN3MThWYTRRd1gzWjJoYkc0?=
 =?utf-8?B?Mzg0SnVRa0JJWUNyMEMxZGdTZjM3RkxXZmgxZXRHZEs4U3I0N01mZHFtZWMx?=
 =?utf-8?B?TXJkUk9wUjY1OXU5N1FTT0ovd0VBOGlVSVUrS3JhSGQ0Y0JtdkNRZ3BKbitk?=
 =?utf-8?B?WE4zSVFIYlN0Y3RJMHZFcGdPODFDMEhvdEV2QUdYZXF4YXFnczh2VVRWNlFu?=
 =?utf-8?B?cmptTEl3Qis1eWRQYVp0a0x4Z0FMN016NzFwSWFQOGxDSFVoVjVZVlRsZUlj?=
 =?utf-8?B?QjdjaWhSK0hnaXNoUW51OEt0MjNXYmtsUWtDY2tuNDdFL3krYThMdUNKTnNC?=
 =?utf-8?B?U21BUi9RT0dzeDBKNVJHZ1hWRkZBTWR2ak9JYUlwN1I2OVZkWmV3eUFtUjdR?=
 =?utf-8?B?TWlGc2hFeWdKdGpDVG56UzdOd1krSS9iWW1RbDMzVkNydEtqdzVDSTJxUGJl?=
 =?utf-8?B?T1dCck9hODZZWkNuSDJqV01Mc09hU1c2cmRHN1lrdzlYS1AxVjBPYjFKNG55?=
 =?utf-8?B?RmxDa1hrQk5BTWtBQndPbldNRi9wTFBiajJqMFZ1SkdOcDg3cnhwRnd1RFA0?=
 =?utf-8?B?blVwOTdlQjRxbDdwQk1PajFxNU42eG5pTjVBOTVUNXkyTWdobm8yanB0dVlY?=
 =?utf-8?B?ZXhodnpWN0dCQ0tLenZaTGs1eGFjcUptcWhLaGtVME5oTVZ3Wnc0NWNrblVq?=
 =?utf-8?B?bVJnT1QxVTI0V3JRR1RjaWxldWUvTjIwV3BkV0VuNUJ6NStsemVXU3JMMEZm?=
 =?utf-8?B?THFPUm5peTJUbkhJVkNrV3E1OU9zUnNTNURUd1RHVHZIcDZQUThSRlRGZXZt?=
 =?utf-8?B?d0pqNDZmWS9QRTRhTHQwMkw5N3NDdTVBYWxZQlhpbjVuQzArTGMzR0FxM2Iw?=
 =?utf-8?B?SExpVGJySEZjdWFQRmlUZytjb0c4M25ZUkliTDZndE9zOHZMdmxjK2xYeXhM?=
 =?utf-8?B?MGNGOUpPY2p4ZEQxdU15cnpvdk9tRzVUS3dycU50UG5kN091MG53SnNPSjNp?=
 =?utf-8?B?djNoTVA0N1lpV2pVbERRcjdHSnZEMDJ6UHcxUTN4N0RTbXcyWUc3R1NiTWhw?=
 =?utf-8?B?Y0NlUjVFU3RUSkNCYmR6Q2NjUUhaNkphc3dWQ3dWVVJTRldGRFVFbHo4NXU2?=
 =?utf-8?B?UHdub0FUbnF5K0JodFMra2ZmYjZKeEJZNWRwazhLUlNoa2MrdnhyU1hSd1hO?=
 =?utf-8?B?V29vUFh5aE1ybWhtY2NtMVdGVlZBNzI2c2JmVzQxa1B4bXlSU3QrNkxrUXpp?=
 =?utf-8?B?eW92ci8zbDdySFhRZGlacXBUWFM4OFpGTkNMekdUK0xFblZpVGt0NElzeEpM?=
 =?utf-8?B?RUUrcDNlcmlKRkhOL09RbFpydTZQUDVZdTJSNC9Xd2JFOGxlZjNadlg4L3Zt?=
 =?utf-8?B?QnhvRjRDRnBRMmJsNDB1akFrRCsyUHFReU1nNk9XM290TlU4RlpRelpFQW5R?=
 =?utf-8?B?djhpVWFSTittRjJSSnZtZDdoa083Z09ZNkVwRTQ2dDgyRThSUzQyWGlzZjVS?=
 =?utf-8?B?Qmc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e7a9aba7-94bd-45c2-7c6b-08de396b3029
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 10:42:46.6441
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Yyu9nmtLuJGK9RAoXNwPLLB1Z+duKOTJtGizBlx8uVb8E3/Q2ZiYDr87Uy2r85ViAvwtj3hX2KZQnyi0DPVqms5VHPCXIT3r2hI+VPsjo8g=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB10157

Hi Jason,

On 09.12.25 23:47, Jason Andryuk wrote:
> Add a new Kconfig CONFIG_GC_SECTIONS to control linking with
> --gc-sections.  --gc-sections witll garbage collect unused sections.
> Combined with CONFIG_CC_SPLIT_SECTIONS, this will remove unreachable
> code and data.
> 
> Linker scripts need to add KEEP() assorted places to retain
> appropriate data - especially the arrays created by the linker script.
> 
> This has some affect, but it is inomplete.  In a test where memory_add()
> is unreachable, it is still included.  I'm not sure, but it seems that
> alternatives keep a relocation reference to it.
> 
> Only ELF xen is supported.  xen.efi fails to link with many undefined
> references when using --gc-sections.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> ---
> v1:
> Add Kconfig
> select CC_SPLIT_SECTIONS
> remove KEEP from .fixup
> Add KEEP to .text.entry.* (Only needed with Jan's "common: honor
> CONFIG_CC_SPLIT_SECTIONS also for assembly functions" ?)
> Add ARM, RISC-V and PPC
> 
> Pipeline passes:
> https://gitlab.com/xen-project/people/jandryuk-amd/xen/-/pipelines/2205223331
> 
> It defaults CONFIG_GC_SECTIONS=y and adds --print-gc-sections
> 

[...]

> ---
>   xen/Makefile              |  3 +++
>   xen/arch/arm/Makefile     |  6 +++---
>   xen/arch/arm/xen.lds.S    | 22 +++++++++++-----------
>   xen/arch/ppc/Makefile     |  6 +++---
>   xen/arch/ppc/xen.lds.S    | 14 +++++++-------
>   xen/arch/riscv/Makefile   |  6 +++---
>   xen/arch/riscv/xen.lds.S  | 14 +++++++-------
>   xen/arch/x86/Makefile     |  6 +++---
>   xen/arch/x86/xen.lds.S    | 34 +++++++++++++++++-----------------
>   xen/common/Kconfig        |  9 +++++++++
>   xen/include/xen/xen.lds.h | 20 ++++++++++----------
>   11 files changed, 76 insertions(+), 64 deletions(-)
> 
> diff --git a/xen/Makefile b/xen/Makefile
> index e6cf287425..aeb5dcf2ee 100644
> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -469,10 +469,13 @@ all-symbols-$(CONFIG_FAST_SYMBOL_LOOKUP) += --sort-by-name
>   
>   include $(srctree)/arch/$(SRCARCH)/arch.mk
>   
> +XEN_FINAL_LDFLAGS-$(CONFIG_GC_SECTIONS) := --gc-sections
> +
>   # define new variables to avoid the ones defined in Config.mk
>   export XEN_CFLAGS := $(CFLAGS)
>   export XEN_AFLAGS := $(AFLAGS)
>   export XEN_LDFLAGS := $(LDFLAGS)
> +export XEN_FINAL_LDFLAGS := $(LDFLAGS) $(XEN_FINAL_LDFLAGS-y)
>   export CFLAGS_UBSAN
>   
>   endif # need-config

[...]

> diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
> index 2d5f1c516d..178af612a2 100644
> --- a/xen/arch/arm/xen.lds.S
> +++ b/xen/arch/arm/xen.lds.S
> @@ -63,7 +63,7 @@ SECTIONS
>   
>          . = ALIGN(4);
>          __proc_info_start = .;
> -       *(.proc.info)
> +       KEEP(*(.proc.info))
>          __proc_info_end = .;
>     } :text
>   
> @@ -103,7 +103,7 @@ SECTIONS
>     . = ALIGN(8);
>     .arch.info : {
>         _splatform = .;
> -      *(.arch.info)
> +      KEEP(*(.arch.info))
>         _eplatform = .;
>     } :text
>   
> @@ -116,7 +116,7 @@ SECTIONS
>     . = ALIGN(8);
>     .teemediator.info : {
>         _steemediator = .;
> -      *(.teemediator.info)
> +      KEEP(*(.teemediator.info))
>         _eteemediator = .;
>     } :text
>   
> @@ -127,7 +127,7 @@ SECTIONS
>          *(.init.text)
>          _einittext = .;
>          . = ALIGN(PAGE_SIZE);        /* Avoid mapping alt insns executable */
> -       *(.altinstr_replacement)
> +       KEEP(*(.altinstr_replacement))
>     } :text
>     . = ALIGN(PAGE_SIZE);
>     __init_data_begin = .;
> @@ -137,18 +137,18 @@ SECTIONS
>   
>          . = ALIGN(POINTER_ALIGN);
>          __setup_start = .;
> -       *(.init.setup)
> +       KEEP(*(.init.setup))
>          __setup_end = .;
>   
>          __initcall_start = .;
> -       *(.initcallpresmp.init)
> +       KEEP(*(.initcallpresmp.init))
>          __presmp_initcall_end = .;
> -       *(.initcall1.init)
> +       KEEP(*(.initcall1.init))
>          __initcall_end = .;

Wouldn't it be reasonable to do the same here for "initcall/setup" as was done for
"schedulers_array"?


[...]

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 13:22:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 13:22:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185384.1507563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU36R-0000YL-SX; Fri, 12 Dec 2025 13:22:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185384.1507563; Fri, 12 Dec 2025 13:22:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU36R-0000YB-Nb; Fri, 12 Dec 2025 13:22:35 +0000
Received: by outflank-mailman (input) for mailman id 1185384;
 Fri, 12 Dec 2025 13:22:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qjHH=6S=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vU36Q-0000XM-TL
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 13:22:35 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d71dc3f-d75d-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 14:22:32 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-6499159273dso1451200a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 05:22:32 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-4.as6723.net. [185.5.253.4])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-649820f77fbsm5168260a12.19.2025.12.12.05.22.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Dec 2025 05:22:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d71dc3f-d75d-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765545751; x=1766150551; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yIP3SfEKENNmXaK6cHV/ouukhRUCsSHaHnKoL4OIvAA=;
        b=CVWgNP9MYTNAln43hXyW0NyKhfhKrhIdb/VPg+SAaU5kOKneLF6Z2rPNFjWDJIE1nK
         /d/YvfdqoX2Mg8Draw9hjU1Xa5Rl1Z5KuboQPflm79Xu8wBZg8Q2RRZeQaZEbdy4S2Bc
         cvyHqB9wILQFtt/YIju2+toCO1Z5cOIj/7ldFT4r24U+wMMNoit4M4hExEISCmrnaGv4
         S7c8XW26yVviWfG/Hvzcf9gvdbSgEf1LivYz927Z2IEfMdnFE/rzibmKwBBpM0cpC04b
         jK/7g/RL9syBloBVn4J6+ugPq0hGa54AF3seeSTX477AE8r4KxHLx9KsTplVJ9NbEKJO
         MZ6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765545751; x=1766150551;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=yIP3SfEKENNmXaK6cHV/ouukhRUCsSHaHnKoL4OIvAA=;
        b=asunE2j6YRADy3UEG0GjPRGcNx5R6NdMwZPtoCYrqMbWlc6Gn6c5qIofjXVWtk82+T
         PFHum9EXZJ5agrvIEEtU4FYvXMi90wDay5FnASIXGRo/jINwUbUh7qyi7rLIMZsJ0ID6
         TNaWzeIO5o1Myo+vyjtQEJ/Va2rHBW7Yg1xyuw3WF2Vonb1/g8kKjZR8Nj862o3+CsNR
         qUy8Hz+AmXuUAsiUqVQJfyRqkKw/l3SJ+bGw0oVwW+M32CoUdulxuWVAQs3wpd5oHRE8
         ZjLxeMLz4z6woumg+p6O0kMzrE7/hAc5Zn4lAYZ5++cEu0p1ppbwwUeEhiezar3KFudZ
         5Z6w==
X-Gm-Message-State: AOJu0Yx4PswePOWdcVsH+W2br2gRsZgf7TSn+jGiGnopBPgkEYWO9+mN
	HF0Nf6BE7/j5Syds5N/IcBnUrZR8ekT5u/oIe8a3XFBSd4uMhO+6TOiAwQ75sh+c
X-Gm-Gg: AY/fxX6OdcSFSxlzuXl4hZNFnsQHpGESCm/CLGLc6pDcWmpIsuO/sduqDZ194a3MGeE
	cQmPTB99Vc6nuXRnabcYX+bliKGBgEPwvB7rBsjmxBstAXWUcBzwGh5dEVnwgPYNWvh3Xw/xaiL
	tTQiHJcW1VQu901ZB/DumELrnQjls7smuFJDAj1W9CTOFGVUlBLWVGIWrFmxtCg9h4E8LeA6tN0
	0+uOLGi/teMSluovDO66ItjGB1MvZj8+KKkQWULn3b/JLQgsZYqj6jL+CXOFehl6ff3T1zk+K8L
	2XIF2GFxNjujwg68t7NTMemwSQ/FB2+w6TbqwRaL8iQs0yr+pgl6dySQVCAi8HUOXcZfG5HGmt3
	jvS6G/wxtc6mM2VrRUvHvoUs1Kf2rCfmS35l/WLfgHaAb4THqHe0/XIUsjRWp4IBW5kFcAGtztn
	fEd+XGo9EYWp8LA/oaLPhBpz0Og7sfAt2yS9HeN9Bp
X-Google-Smtp-Source: AGHT+IFcSgWpsZtXTMwLskLJqr7Z8qqlgxwtEsEtGFnFRCUSxymEjlxdaSAwWlxEKroRl0M366aZSw==
X-Received: by 2002:a05:6402:2709:b0:647:54f9:cce6 with SMTP id 4fb4d7f45d1cf-6499b182ee4mr1997508a12.12.1765545751057;
        Fri, 12 Dec 2025 05:22:31 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v16 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
Date: Fri, 12 Dec 2025 15:18:18 +0200
Message-ID: <f1d118552f84e2b894ec7163000f6dba98d0e3fa.1765533584.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1765533584.git.mykola_kvach@epam.com>
References: <cover.1765533584.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Add support for the PSCI SYSTEM_SUSPEND function in the vPSCI interface,
allowing guests to request suspend via the PSCI v1.0+ SYSTEM_SUSPEND call
(both 32-bit and 64-bit variants).

Implementation details:
- Add SYSTEM_SUSPEND function IDs to PSCI definitions
- Trap and handle SYSTEM_SUSPEND in vPSCI
- Allow only non-hardware domains to invoke SYSTEM_SUSPEND; return
  PSCI_NOT_SUPPORTED for the hardware domain to avoid halting the system
  in hwdom_shutdown() via domain_shutdown
- Require all secondary VCPUs of the calling domain to be offline before
  suspend, as mandated by the PSCI specification

The arch_domain_resume() function is an architecture-specific hook that is
invoked during domain resume to perform any necessary setup or restoration
steps required by the platform. arch_domain_resume() stays int to propagate
errno-style detail into common logging; preserving the integer keeps the
reason visible and leaves room for future arch-specific failures or richer
handling.

The new vpsci_vcpu_up_prepare() helper is called on the resume path to set up
the vCPU context (such as entry point, some system regs and context ID) before
resuming a suspended guest. This keeps ARM/vPSCI-specific logic out of common
code and avoids intrusive changes to the generic resume flow.

Usage:

For Linux-based guests, suspend can be initiated with:
    echo mem > /sys/power/state
or via:
    systemctl suspend

Resuming the guest is performed from control domain using:
      xl resume <domain>

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V16:
- Refactor error handling in domain_resume: move logging to generic code,
  use explicit return code checking.
- Make context clearing conditional on success in arch_domain_resume.
- The 'int' return type is retained for arch_domain_resume for consistency
  with other arch hooks and to allow for specific negative error codes.
---
 xen/arch/arm/domain.c                 |  39 +++++++++
 xen/arch/arm/include/asm/domain.h     |   2 +
 xen/arch/arm/include/asm/perfc_defn.h |   1 +
 xen/arch/arm/include/asm/psci.h       |   2 +
 xen/arch/arm/include/asm/suspend.h    |  27 ++++++
 xen/arch/arm/include/asm/vpsci.h      |   5 +-
 xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-----
 xen/common/domain.c                   |  10 +++
 xen/include/xen/suspend.h             |  25 ++++++
 9 files changed, 205 insertions(+), 22 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/suspend.h
 create mode 100644 xen/include/xen/suspend.h

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 47973f99d9..f903e7d4f0 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -12,6 +12,8 @@
 #include <xen/softirq.h>
 #include <xen/wait.h>
 
+#include <public/sched.h>
+
 #include <asm/arm64/sve.h>
 #include <asm/cpuerrata.h>
 #include <asm/cpufeature.h>
@@ -24,10 +26,12 @@
 #include <asm/platform.h>
 #include <asm/procinfo.h>
 #include <asm/regs.h>
+#include <asm/suspend.h>
 #include <asm/firmware/sci.h>
 #include <asm/tee/tee.h>
 #include <asm/vfp.h>
 #include <asm/vgic.h>
+#include <asm/vpsci.h>
 #include <asm/vtimer.h>
 
 #include "vpci.h"
@@ -851,6 +855,41 @@ void arch_domain_creation_finished(struct domain *d)
     p2m_domain_creation_finished(d);
 }
 
+int arch_domain_resume(struct domain *d)
+{
+    int rc;
+    struct resume_info *ctx = &d->arch.resume_ctx;
+
+    if ( !d->is_shutting_down || d->shutdown_code != SHUTDOWN_suspend )
+    {
+        dprintk(XENLOG_WARNING,
+                "%pd: Invalid domain state for resume: is_shutting_down=%u, shutdown_code=%u\n",
+                d, d->is_shutting_down, d->shutdown_code);
+        return -EINVAL;
+    }
+
+    /*
+     * It is still possible to call domain_shutdown() with a suspend reason
+     * via some hypercalls, such as SCHEDOP_shutdown or SCHEDOP_remote_shutdown.
+     * In these cases, the resume context will be empty.
+     * This is not expected to cause any issues, so we just notify about the
+     * situation and return without error, allowing the existing logic to
+     * proceed as expected.
+     */
+    if ( !ctx->wake_cpu )
+    {
+        dprintk(XENLOG_INFO, "%pd: Wake CPU pointer context was not provided\n",
+                d);
+        return 0;
+    }
+
+    rc = vpsci_vcpu_up_prepare(ctx->wake_cpu , ctx->ep, ctx->cid);
+    if ( !rc )
+        memset(ctx, 0, sizeof(*ctx));
+
+    return rc;
+}
+
 static int is_guest_pv32_psr(uint32_t psr)
 {
     switch (psr & PSR_MODE_MASK)
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index 758ad807e4..66b1246892 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -5,6 +5,7 @@
 #include <xen/timer.h>
 #include <asm/page.h>
 #include <asm/p2m.h>
+#include <asm/suspend.h>
 #include <asm/vfp.h>
 #include <asm/mmio.h>
 #include <asm/gic.h>
@@ -126,6 +127,7 @@ struct arch_domain
     void *sci_data;
 #endif
 
+    struct resume_info resume_ctx;
 }  __cacheline_aligned;
 
 struct arch_vcpu
diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/include/asm/perfc_defn.h
index effd25b69e..8dfcac7e3b 100644
--- a/xen/arch/arm/include/asm/perfc_defn.h
+++ b/xen/arch/arm/include/asm/perfc_defn.h
@@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system_reset")
 PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
 PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
 PERFCOUNTER(vpsci_features,            "vpsci: features")
+PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
 
 PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
 
diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/psci.h
index 4780972621..48a93e6b79 100644
--- a/xen/arch/arm/include/asm/psci.h
+++ b/xen/arch/arm/include/asm/psci.h
@@ -47,10 +47,12 @@ void call_psci_system_reset(void);
 #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
 #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
 #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
+#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
 
 #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
 #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
 #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
+#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
 
 /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
 #define PSCI_0_2_AFFINITY_LEVEL_ON      0
diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
new file mode 100644
index 0000000000..313d03ea59
--- /dev/null
+++ b/xen/arch/arm/include/asm/suspend.h
@@ -0,0 +1,27 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef ARM_SUSPEND_H
+#define ARM_SUSPEND_H
+
+struct domain;
+struct vcpu;
+
+struct resume_info {
+    register_t ep;
+    register_t cid;
+    struct vcpu *wake_cpu;
+};
+
+int arch_domain_resume(struct domain *d);
+
+#endif /* ARM_SUSPEND_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/asm/vpsci.h
index 0cca5e6830..d790ab3715 100644
--- a/xen/arch/arm/include/asm/vpsci.h
+++ b/xen/arch/arm/include/asm/vpsci.h
@@ -23,12 +23,15 @@
 #include <asm/psci.h>
 
 /* Number of function implemented by virtual PSCI (only 0.2 or later) */
-#define VPSCI_NR_FUNCS  12
+#define VPSCI_NR_FUNCS  14
 
 /* Functions handle PSCI calls from the guests */
 bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
 bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid);
 
+int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
+                          register_t context_id);
+
 #endif /* __ASM_VPSCI_H__ */
 
 /*
diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index 7ba9ccd94b..c4d616ec68 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -10,32 +10,16 @@
 
 #include <public/sched.h>
 
-static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
-                            register_t context_id)
+int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
+                          register_t context_id)
 {
-    struct vcpu *v;
-    struct domain *d = current->domain;
-    struct vcpu_guest_context *ctxt;
     int rc;
+    struct domain *d = v->domain;
     bool is_thumb = entry_point & 1;
-    register_t vcpuid;
-
-    vcpuid = vaffinity_to_vcpuid(target_cpu);
-
-    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
-        return PSCI_INVALID_PARAMETERS;
-
-    /* THUMB set is not allowed with 64-bit domain */
-    if ( is_64bit_domain(d) && is_thumb )
-        return PSCI_INVALID_ADDRESS;
-
-    if ( !test_bit(_VPF_down, &v->pause_flags) )
-        return PSCI_ALREADY_ON;
+    struct vcpu_guest_context *ctxt;
 
     if ( (ctxt = alloc_vcpu_guest_context()) == NULL )
-        return PSCI_DENIED;
-
-    vgic_clear_pending_irqs(v);
+        return -ENOMEM;
 
     memset(ctxt, 0, sizeof(*ctxt));
     ctxt->user_regs.pc64 = (u64) entry_point;
@@ -76,8 +60,37 @@ static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
     free_vcpu_guest_context(ctxt);
 
     if ( rc < 0 )
+        return rc;
+
+    return 0;
+}
+
+static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
+                            register_t context_id)
+{
+    struct vcpu *v;
+    struct domain *d = current->domain;
+    int rc;
+    bool is_thumb = entry_point & 1;
+    register_t vcpuid;
+
+    vcpuid = vaffinity_to_vcpuid(target_cpu);
+
+    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
+        return PSCI_INVALID_PARAMETERS;
+
+    /* THUMB set is not allowed with 64-bit domain */
+    if ( is_64bit_domain(d) && is_thumb )
+        return PSCI_INVALID_ADDRESS;
+
+    if ( !test_bit(_VPF_down, &v->pause_flags) )
+        return PSCI_ALREADY_ON;
+
+    rc = vpsci_vcpu_up_prepare(v, entry_point, context_id);
+    if ( rc )
         return PSCI_DENIED;
 
+    vgic_clear_pending_irqs(v);
     vcpu_wake(v);
 
     return PSCI_SUCCESS;
@@ -197,6 +210,48 @@ static void do_psci_0_2_system_reset(void)
     domain_shutdown(d,SHUTDOWN_reboot);
 }
 
+static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
+{
+    int32_t rc;
+    struct vcpu *v;
+    struct domain *d = current->domain;
+    bool is_thumb = epoint & 1;
+
+    /* THUMB set is not allowed with 64-bit domain */
+    if ( is_64bit_domain(d) && is_thumb )
+        return PSCI_INVALID_ADDRESS;
+
+    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
+    if ( is_hardware_domain(d) )
+        return PSCI_NOT_SUPPORTED;
+
+    /* Ensure that all CPUs other than the calling one are offline */
+    domain_lock(d);
+    for_each_vcpu ( d, v )
+    {
+        if ( v != current && is_vcpu_online(v) )
+        {
+            domain_unlock(d);
+            return PSCI_DENIED;
+        }
+    }
+    domain_unlock(d);
+
+    rc = domain_shutdown(d, SHUTDOWN_suspend);
+    if ( rc )
+        return PSCI_DENIED;
+
+    d->arch.resume_ctx.ep = epoint;
+    d->arch.resume_ctx.cid = cid;
+    d->arch.resume_ctx.wake_cpu = current;
+
+    gprintk(XENLOG_DEBUG,
+            "SYSTEM_SUSPEND requested, epoint=%#"PRIregister", cid=%#"PRIregister"\n",
+            epoint, cid);
+
+    return rc;
+}
+
 static int32_t do_psci_1_0_features(uint32_t psci_func_id)
 {
     /* /!\ Ordered by function ID and not name */
@@ -214,6 +269,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
     case PSCI_0_2_FN32_SYSTEM_OFF:
     case PSCI_0_2_FN32_SYSTEM_RESET:
     case PSCI_1_0_FN32_PSCI_FEATURES:
+    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
+    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
     case ARM_SMCCC_VERSION_FID:
         return 0;
     default:
@@ -344,6 +401,23 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
         return true;
     }
 
+    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
+    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
+    {
+        register_t epoint = PSCI_ARG(regs, 1);
+        register_t cid = PSCI_ARG(regs, 2);
+
+        if ( fid == PSCI_1_0_FN32_SYSTEM_SUSPEND )
+        {
+            epoint &= GENMASK(31, 0);
+            cid &= GENMASK(31, 0);
+        }
+
+        perfc_incr(vpsci_system_suspend);
+        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid));
+        return true;
+    }
+
     default:
         return false;
     }
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 93c71bc766..09ad0a26ee 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -26,6 +26,7 @@
 #include <xen/hypercall.h>
 #include <xen/delay.h>
 #include <xen/shutdown.h>
+#include <xen/suspend.h>
 #include <xen/percpu.h>
 #include <xen/multicall.h>
 #include <xen/rcupdate.h>
@@ -1374,6 +1375,7 @@ int domain_shutdown(struct domain *d, u8 reason)
 void domain_resume(struct domain *d)
 {
     struct vcpu *v;
+    int rc;
 
     /*
      * Some code paths assume that shutdown status does not get reset under
@@ -1383,6 +1385,13 @@ void domain_resume(struct domain *d)
 
     spin_lock(&d->shutdown_lock);
 
+    rc = arch_domain_resume(d);
+    if ( rc )
+    {
+        printk("%pd: Failed to resume domain (ret %d)\n", d, rc);
+        goto fail;
+    }
+
     d->is_shutting_down = d->is_shut_down = 0;
     d->shutdown_code = SHUTDOWN_CODE_INVALID;
 
@@ -1393,6 +1402,7 @@ void domain_resume(struct domain *d)
         v->paused_for_shutdown = 0;
     }
 
+ fail:
     spin_unlock(&d->shutdown_lock);
 
     domain_unpause(d);
diff --git a/xen/include/xen/suspend.h b/xen/include/xen/suspend.h
new file mode 100644
index 0000000000..528879c2a9
--- /dev/null
+++ b/xen/include/xen/suspend.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef XEN_SUSPEND_H
+#define XEN_SUSPEND_H
+
+#if __has_include(<asm/suspend.h>)
+#include <asm/suspend.h>
+#else
+static inline int arch_domain_resume(struct domain *d)
+{
+    return 0;
+}
+#endif
+
+#endif /* XEN_SUSPEND_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 13:22:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 13:22:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185382.1507542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU36I-0008V3-DL; Fri, 12 Dec 2025 13:22:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185382.1507542; Fri, 12 Dec 2025 13:22:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU36I-0008Uw-9u; Fri, 12 Dec 2025 13:22:26 +0000
Received: by outflank-mailman (input) for mailman id 1185382;
 Fri, 12 Dec 2025 13:22:24 +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 <SRS0=NHsq=6S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vU36G-0008Uq-Bg
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 13:22:24 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 938263db-d75d-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 14:22:15 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-477b5e0323bso5409945e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 05:22:15 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f49da20sm31058195e9.5.2025.12.12.05.22.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 12 Dec 2025 05:22:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 938263db-d75d-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765545735; x=1766150535; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=x0M381zZWIz+mEVFbM/UVlN+M9YheMvDpDXDv6hXtbI=;
        b=bkVM+V2sl8FSRhu2KRaNZQbxwmIkrQ6vIqSOaNYSuRtqCnxXstao8GCSqFXOL0Xy85
         kwOyM3DlQ4+T5lJ9FWVvK9tZZeFFWRl6ESnK3BH7BGnyDnDbZGmTYPoUT561i5fXndJ6
         rtiHiv/OpiY7GQFZRfe9C1giT5EX9o117jaTZK7CnUz7cJZbOn+XXYVetatruI6G3mxa
         BNA5JsLYCRDQAEF4Nu7imvxVm8YnjqcsX9XpMUTaI8WfhMhxPa1egb/TfUDS9cxmm/N9
         rHrimMknmurWy+MyybvmyIpIG8gf+9RYHj/9jaaWf15QMPgbxRNtV5dkoqMJG9LKU2FU
         VrZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765545735; x=1766150535;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=x0M381zZWIz+mEVFbM/UVlN+M9YheMvDpDXDv6hXtbI=;
        b=L8pzS2eG5jSV1epsJmWUdNRsXpOUp+ap8ztLUQ/IzGp7F/5kM9DA9ezfeZRxK3nVuG
         9sm1prAHbJjSZuLjZiKi58Qbl0eniHiiKYljlhqoJ/BXNsyStNZTa41W5GTtKnzRwmy3
         Vt4iMvENkw6Jzj5+9yxPUwqnsjtMCzYahLQxCts5m3hjioZpkCQr661dYqGCcEboPL5C
         0gIf0ENvKU/JJWdeiOeK8/O1GXUIwwJsiflr+UomQOSNqjDk5pplFST+HM4p5NUHk+5S
         IsKyu3YP29/G7O1Pxto0laoYaM+fhRvxQb3DEQJuvlVV+4/IzIVqDY8v1E25RfVMZdVw
         WgGA==
X-Forwarded-Encrypted: i=1; AJvYcCUXilEUFbMr1yjUmJIP5uRvjtr/jcHPikGIWzZCeuYeEoPhE0PHJqeG+xj/o1GBtMWdjPSbGvCurQ0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyfvDAVJLlBbz3g9DDpPkmaCVIlPxQzEjg30EZCUybhRpZrIKcO
	CgQ/pTuP+ZTnYvq3kBi+umfwQ4od5xfRcjQ1tisxbwypfgLptXUglbokj/45csRfLw==
X-Gm-Gg: AY/fxX7s1xZq1WjVyTUP2FNYt4mBDA9+i5+lRsxwXZTH4yNHRbr/+QCMbN3mjR1Pja3
	X8CrGFL6UvuYMh7SbGg06tux/3tP9apg7ILcojFB2M70rRszrg0Qd/R0hYwgyqo4Ihyidc8cPmQ
	/0A/uMybACXxaYjEugVj4OviGCL+VaA4tX3zY1r8CbOj1wRJG1xRiEZj6Iw468mRNQpo32QXQWA
	OvC5zANmUyXHPzEvweLXLL/mNL76n9poqT2Je7zL3Z8N8Neo2iOrIyuNeUu4zGlAjy3RjCajc3y
	spXA1rpi+P5bh1lNrlHYzI+E/YS03rnPKAvP6XaVmsiKkQeY8bHtiHRwSGjafK1ITqg7LX8bTxb
	zHCrHG2KH5EcNyoCdJB+PcS4D/P1neSlAv4l8auAejouUvMvrjR0K1nRX85CuEKokDGaPJd5CxH
	w/Uz3akvSyqZvJGeQwrH1AZTGVaTMTY/sgPWqg29qcJkc3lGvYRBFSDpHOccUkR5BEqbxLfpyVU
	KmBmO5DdbTglQ==
X-Google-Smtp-Source: AGHT+IG+BHySZRWbxYV8Woz7twcKuKlaHUpKMvt/xd8XDMIjeLe2TvaKdaqLP4/6i/S/qSDFQkSC0Q==
X-Received: by 2002:a05:600c:6d5:b0:475:d7fd:5c59 with SMTP id 5b1f17b1804b1-47a89ee31b7mr37404885e9.16.1765545734961;
        Fri, 12 Dec 2025 05:22:14 -0800 (PST)
Message-ID: <83eedd0c-dcaf-4e28-ac0f-f4991f053350@suse.com>
Date: Fri, 12 Dec 2025 14:22:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: KEEP Re: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Victor Lira <victorm.lira@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-3-jason.andryuk@amd.com>
 <ed620cd5-9630-4987-bd5c-9f69ae2c2609@citrix.com>
 <43d30e02-f818-4cf2-98c9-4182a2f65f64@amd.com>
 <13a270cd-b0bd-4565-9158-0e1728aef84e@citrix.com>
 <7514a67c-d140-43b6-bed0-3467530a086d@suse.com>
 <fbe63318-b764-46ce-a377-dd4ce7229abe@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <fbe63318-b764-46ce-a377-dd4ce7229abe@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2025 02:34, Jason Andryuk wrote:
> The alternative is section groups?  I'm trying that, and it kinda works 
> sometimes, but .attach_to_group fails when .init.text is involved.
> 
> Here's an example that I think would work, I could make it to 
> --gc-sectrions:
> group section [    3] `.group' [.text.vpmu_do_msr] contains 5 sections:
>     [Index]    Name
>     [   43]   .text.vpmu_do_msr
>     [   44]   .rela.text.vpmu_do_msr
>     [   45]   .altinstructions..text.vpmu_do_msr
>     [   46]   .rela.altinstructions..text.vpmu_do_msr
>     [   47]   .altinstr_replacement..text.vpmu_do_msr
> 
> But I don't make it that far.  Other files blow up with tons of:
> {standard input}:9098: Warning: dwarf line number information for 
> .init.text ignored
> and
> {standard input}:50083: Error: leb128 operand is an undefined symbol: 
> .LVU4040
> 
> Line 9098 of apic.s is .loc below:
> """
>          .section        .init.text
>          .globl  setup_boot_APIC_clock
>          .hidden setup_boot_APIC_clock
>          .type   setup_boot_APIC_clock, @function
> setup_boot_APIC_clock:
> .LFB827:
>          .loc 1 1150 1 is_stmt 1 view -0
>          .cfi_startproc
>          pushq   %rbp
> """
> 
> diff below.  Any ideas?

I haven't looked into this in detail yet, but ...

> --- a/xen/arch/x86/include/asm/alternative.h
> +++ b/xen/arch/x86/include/asm/alternative.h
> @@ -90,25 +90,31 @@ extern void alternative_instructions(void);
>   /* alternative assembly primitive: */
>   #define ALTERNATIVE(oldinstr, newinstr, feature)                      \
>           OLDINSTR_1(oldinstr, 1)                                       \
> -        ".pushsection .altinstructions, \"a\", @progbits\n"           \
> +        ".attach_to_group %%S\n"                                      \
> +        ".pushsection .altinstructions.%%S, \"a?\", @progbits\n"      \

... wouldn't you need another .attach_to_group here and ...

>           ALTINSTR_ENTRY(feature, 1)                                    \
> -        ".section .discard, \"a\", @progbits\n"                       \
> +        ".popsection\n"                                               \
> +        ".pushsection .discard, \"a\", @progbits\n"                   \
>           ".byte " alt_total_len "\n" /* total_len <= 255 */            \
>           DISCARD_ENTRY(1)                                              \
> -        ".section .altinstr_replacement, \"ax\", @progbits\n"         \
> +        ".popsection\n"                                               \
> +        ".pushsection .altinstr_replacement.%%S, \"ax?\", @progbits\n"\

... here? Or alternatively use the 'G' section flag to the specify the group
name?

As to debug info, I wonder whether playing with groups behind the back of the
compiler is going to work well. Iirc it groups sections itself, too. Did you
look at the generated assembly with this in mind?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 12 13:22:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 13:22:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185385.1507572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU36T-0000mo-6V; Fri, 12 Dec 2025 13:22:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185385.1507572; Fri, 12 Dec 2025 13:22:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU36T-0000mh-2T; Fri, 12 Dec 2025 13:22:37 +0000
Received: by outflank-mailman (input) for mailman id 1185385;
 Fri, 12 Dec 2025 13:22:35 +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
 <SRS0=qjHH=6S=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vU36R-0008Uq-Hm
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 13:22:35 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9f0bcfb2-d75d-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 14:22:35 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-6492e25cd7eso1872107a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 05:22:35 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-4.as6723.net. [185.5.253.4])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-649820f77fbsm5168260a12.19.2025.12.12.05.22.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Dec 2025 05:22:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9f0bcfb2-d75d-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765545754; x=1766150554; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=k/JxxBDY+KhwZWz0jMdNpGTqDW+EDXqjFu4woHI4vHE=;
        b=DNXwvC4jLM4vanJFth/ZnjL9qjzqtLyIuNvOn5eNmbf0UMcUTzSG6DE+1FRv4JA90p
         HDBhyk01sROPNFc76SavRbCD2zmVpNUouqC/6UuNSHlCErH/1zCG5/g39uXDsRzd3Yen
         tehBYr335T7B4DBQJ5axEy8CndrQO/wc5suve4ush9UvL/lUCoveqpdnKjoLN8jP3iX2
         LQ0rPPW7A1dfid43Zamy5hHnTzRZkWwPqV3L9jUtLaIr7mX7iKsom9drwKgW7TUZGAoj
         70RvWvWBjSyhW0WmHbXGvikuozqf2Vj7qFHwrZDWNDysf5vr6KLOt7U/ITjxJiDIDC+W
         k26g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765545754; x=1766150554;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=k/JxxBDY+KhwZWz0jMdNpGTqDW+EDXqjFu4woHI4vHE=;
        b=IyWO5C6M8uc3y66oQM8/tkhXltKuzjEqdYfREyhy2DktwsGIubBGSnLTUps0ne7JaO
         nWXBxiBiH8M6t4GIPFyKIrkOjogA/0PLBPDVUgVi6Dli4azjA582Gt2gDXvhGFWXis0x
         uhh+XJlLAt2tHYbL1IPjiwQFg0Yt1lOpjBkU/6mCrjKIJP7dl6hB6G6EwJUuiInfXFR3
         fbQSpkJxvzC2VeloEUoXc0e9kr2nDt6jmGzHnSm47AjhpwNwHpn0G0DIk6FO6tzxAhJ4
         WBYFj+pv1nrE1k9BAV6iLMd71jiMcPGWKGJp10V3ob92Q0r4QLlXQp8UjgiZIaYP0c4J
         4bAg==
X-Gm-Message-State: AOJu0YzZXTu5gpadlAJ/9if0B2JQIC81x6BTXkIVy5G3KckUv1h/3RP+
	xcig8DuU5YvwUFXtUOXsY9DPONImFKyNeU9UjJ1bKEdjEZT9p5OZ1Ka4F53gNl4N
X-Gm-Gg: AY/fxX7mM7JU6XFW8jFoNA08/3zmdKemTmrSuCG6AEbKBIuSvRzLOdRpG1iudUkTR3l
	ry6e6b1fnX2G41QuS/+zmNooGjeqFu91PolkKsBLDHGGkj7JK3ZgGqh9Wm5f71hgyJ9uZtvJ4YO
	c3seGt0zuy1Bcmr3vZO0W9wRCEYa9Em0VK0GsUQVAitweHPS2ChGyKukI16Oi1VaZA0uAlJvcA2
	BiEgFxt29lyNJ/OHmBeStfTVTM9nMDxB8GJSEW9E3myCNoVA9UTs4PJXhb3ljzuZWOnEpQQmF12
	MS1JpBrzVl3VzdTu2ZU83BjufDYOPiEMIsrYgUeT1N/ZH1SEPToFJWb5okUu2Shavl9qmuG54Fc
	5Hx8vMvGGUBC6NDYD1ctSmZyDj99jb/5+nWcPlO/RmLqqBFy4GsdQaJQ3UzuGuHGUoDUl2rAxOU
	qBpXgTobVpi5Ut8hbl0zb86vCmUlZE21kznauQJIjPqeYJKrkoX2A=
X-Google-Smtp-Source: AGHT+IHW97mlKs9EpH2a0rHl3ZPaJyK7IC/0kwYJdly5+rJ0Mh+pxexntuj7EYdwZbQkAhbB0Vpdbw==
X-Received: by 2002:a05:6402:254a:b0:647:9352:ce7 with SMTP id 4fb4d7f45d1cf-6499afaf5c4mr2131235a12.13.1765545753636;
        Fri, 12 Dec 2025 05:22:33 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v16 3/4] SUPPORT.md: Document PSCI SYSTEM_SUSPEND support for guests
Date: Fri, 12 Dec 2025 15:18:20 +0200
Message-ID: <b50be85919d2f92c210a3fda8c4198e7f01fe6e5.1765533584.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1765533584.git.mykola_kvach@epam.com>
References: <cover.1765533584.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Add a new entry under the "Virtual Hardware, Hypervisor" section
documenting support for the optional PSCI SYSTEM_SUSPEND function
exposed to guests.

This function is available via the virtual PSCI interface and allows
guest domains (domUs) to initiate system suspend operations.

The feature is currently marked as "Tech Preview".

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Acked-by: Julien Grall <jgrall@amazon.com>
---
Changes in V16:
- no changes.
---
 SUPPORT.md | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/SUPPORT.md b/SUPPORT.md
index d441bccf37..8e7ab7cb3e 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -962,8 +962,9 @@ Emulated PSCI interface exposed to guests. We support all mandatory
 functions of PSCI 1.1. See below for the list of optional PSCI call
 implemented and their status.
 
-   Status, Mandatory: Supported
-   Status, MIGRATE_INFO_TYPE: Supported
+    Status, Mandatory: Supported
+    Status, MIGRATE_INFO_TYPE: Supported
+    Status, SYSTEM_SUSPEND: Tech Preview
 
 ## Virtual Hardware, QEMU
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 13:22:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 13:22:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185387.1507591 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU36V-0001Gc-KH; Fri, 12 Dec 2025 13:22:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185387.1507591; Fri, 12 Dec 2025 13:22:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU36V-0001GT-HI; Fri, 12 Dec 2025 13:22:39 +0000
Received: by outflank-mailman (input) for mailman id 1185387;
 Fri, 12 Dec 2025 13:22:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qjHH=6S=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vU36T-0000XM-Em
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 13:22:37 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9f853638-d75d-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 14:22:35 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-64979bee42aso1708755a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 05:22:35 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-4.as6723.net. [185.5.253.4])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-649820f77fbsm5168260a12.19.2025.12.12.05.22.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Dec 2025 05:22:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9f853638-d75d-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765545755; x=1766150555; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yDGYl4MwmHHOZvcQHRUCvu0R6OsEkqD5kONUFPAiJAw=;
        b=I+pOhUiSR6le9Q8CTIxXO417o7SX6ye+yqlL4pCROeerUXnieXVNH9/xpcLDJCUHop
         wfpWqGI7qR7F5+iB3ecwMMKm//DWx1Za7Er+tU0C2+Va2VQlKW1B9vSa+FeeHwz8JSUe
         yteOqA8fMpViW2oW8jVu0tiHUlgR8+N2ZVQrVJGr0wSkvinn6mlb1EmUfOaIEIxdI53w
         8CrRJFN7LtA14vSPW4XlqrZ84r0buDuLISAH+BzM21zsQYY23e/0nooAgfOocASYl0cz
         H08HxT9OsGShIQw6LeG9QL/Qcin7PhGK+NkElIeJB21HCmILBT/wCvazm96HwpttjST/
         h2Kw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765545755; x=1766150555;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=yDGYl4MwmHHOZvcQHRUCvu0R6OsEkqD5kONUFPAiJAw=;
        b=TUovP2NydlEdxwab7j439Va0m+6XHjrQz0P7Yjc7leicqB++irR/VVwBPidXWT78ui
         2wJUi3huu3nmrqVS7vgDb26vrwC1n0Sjghm7vyfF3L9MhunPiWU9Veq0oghNG0FqXMcG
         SYF+wiMWTqIZ5MdFLMJ2Acg/Xue0WvF1JOjZdf88h7Rg+w3MXom+KseFox5gvHQpTZVI
         de/jelo1qLRRotWrFekTtWQq1A2TQWRP93ut//GnxV/Jwv4SaBAZb80aRTo/q6tmijBZ
         MnECRxTrfZbSi89cE/U4beJY+OfOmsE0Hv+NU4sBdNzVWnr9+zjoI4VbufuECpgXDDrq
         iMnA==
X-Gm-Message-State: AOJu0Yw3huBV+PHI7BlZNhhCx6EUrfiaAQnpuHMfLIk3fJ1VabhfjTs+
	2S4ZeLVXteErJCKASK2snpx6TYLHhYk0kvYX+diV4YsgCxp98pQ9ud3+ffbxUBJI
X-Gm-Gg: AY/fxX5l7Yp+8IZxnWzHSuu7+og+BBc9SXa3aUjGBnfbZFo7poVL1yDsglm/HW8MJFl
	BHxos2s3GFhD6OfvjEHaGWSWStFUDrx1WQrUPi/tJUJAWlBVbkKEbSJG1a2T28P9nZJx6sqpSz3
	bZNta0UH8p1a+oE3HbkTIxdm19Y1ecnwWJlMANWcbZanfTO7wkvYLF24GKvBleYdqp1HiTVT0bu
	JrjiSrtPwxMjUAAhz2KpWkGl3OJhv6WiJgzhlO8/AzmMA0nB++F5n88WcxzZtrQurq4k0sHsBhg
	XGlLjAAP6Ma5u0NB8h591P5VN5iVMRmcetwS1YsGUfWTHGjm3PiZ4diNEHxzHqq0HTZ0Um3WsxS
	XaRcG/gdAkodIFya37kvdpOPAzM4owd4stuOpq4ht3MvjWH5QoDkAym77N/0ENjOKe/SlIuNb3p
	skXz6viCFxDScHzKcRRH09udyfxIJaJjrOCRkdqQNEaC0TBKpw9f0=
X-Google-Smtp-Source: AGHT+IHPoA+7SlbyI79X70bXXauxfU4pvexgeUSee3mEG4eYs8eIhbd3Lcy8ZlmOC4qy2+TQsEHf9g==
X-Received: by 2002:a05:6402:2341:b0:647:b4cf:b4ff with SMTP id 4fb4d7f45d1cf-6499b1c27c0mr2279714a12.17.1765545754612;
        Fri, 12 Dec 2025 05:22:34 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v16 4/4] CHANGELOG: Document guest suspend/resume to RAM support on Arm
Date: Fri, 12 Dec 2025 15:18:21 +0200
Message-ID: <7cca9767665b9ab2e3e5cd28cdb61fda3018a7b5.1765533584.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1765533584.git.mykola_kvach@epam.com>
References: <cover.1765533584.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Mention the newly added support for guest suspend and resume to/from
RAM via vPSCI on Arm platforms.

This support is limited to non-hardware domain guests.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v16:
- cosmetic changes after review.
---
 CHANGELOG.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3aaf598623..724eeae454 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 ### Changed
 
 ### Added
+ - On Arm:
+   - Support for guest suspend and resume to/from RAM via vPSCI.
+     Applies only to non-hardware domain guests.
 
 ### Removed
  - On x86:
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 13:22:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 13:22:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185386.1507577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU36T-0000pp-ET; Fri, 12 Dec 2025 13:22:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185386.1507577; Fri, 12 Dec 2025 13:22:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU36T-0000op-9R; Fri, 12 Dec 2025 13:22:37 +0000
Received: by outflank-mailman (input) for mailman id 1185386;
 Fri, 12 Dec 2025 13:22:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qjHH=6S=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vU36R-0000XM-Id
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 13:22:35 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9df72b55-d75d-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 14:22:33 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-64979bee42aso1708711a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 05:22:33 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-4.as6723.net. [185.5.253.4])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-649820f77fbsm5168260a12.19.2025.12.12.05.22.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Dec 2025 05:22:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9df72b55-d75d-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765545752; x=1766150552; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SjKcgpgVhPtaCMEXLSjgtM5Jeo9qa3Adh6wKPCR5tAQ=;
        b=X3g0mvrZzxMpipSENyD51oNnAWI4TK7ED7YAX0Uj+fSLIl3I1IOOeM0in5Bx0C7PCJ
         z8SrZXKoy6lmoWJha9RCWHWsiIRiCtL60ZMBoDeVxtuLsxz/C9SENiOCVd4/9u7gN4e7
         zeGAtu5oRp1sDUU9mM5P7HRg+dcMjjY/WlQodaiKI1FvjZ4fDoN9LPTOUE5x/uB/sx4L
         9mhepllWSO7TbAle0XGgmaNFZpMbJU0CirK3eomTI5HrZ/k/RIAbWclG+fwRvD+dm03U
         PTJZBlMygPfmi36b78ho/TvUh7Ukx7uZo+fzgWDkAzouo+wROuKN5imsT6oMH0Lc+Loj
         BHAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765545752; x=1766150552;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=SjKcgpgVhPtaCMEXLSjgtM5Jeo9qa3Adh6wKPCR5tAQ=;
        b=X5jaz7hpM8TCv+d5Whqd42nasoHa4xW79sCU6cSi2BLtVBHj7zZ7B2ZYxMRiFnn2g2
         Ja0YAExZAKdqbblltThM1a5j7jbnRTA5Mdajw7ussbySGZ2V2ioIHVhEjwE5yDJVBz0y
         ePdGMXYWht1cQj0oHsy5STD9gBRrNcEjx2wtoCb6EiFm7zkGHXKSLv8EN6Yv54kqcREN
         J3gEW7jyeAUbUHIbtCMEy4XdXzWmOPL6fDjitJo0LhlI0ReYVZKm+D6fdqbqB+Wnk7y3
         65JaEBeWyhUMf5X7ziMxQeHljnx4JKS+ENawzIt3Sw9wOCPXEZVZAepUDw6qYeyxxcrM
         Nprg==
X-Gm-Message-State: AOJu0YyNtZcttryARMzSpGiLJJtnRwwA9wpIIvfyEl/8DZQRLdQUjDor
	CW0xJd4CUsU7xBRms3Yz3iOT/n+YP4Ep9mMU9E5UwS+tYzhe/jqps/w4wIwE6dZA
X-Gm-Gg: AY/fxX6KiERxQWnrdxegDfvgU5gd0dcKAympvsHrw4fMOuSSTRmOuQMAVU0kroj02q0
	8lK07hCheyHdrYQBl0X6Vs9XQjgajZzmJzmMzUqXLSJSN3qpBmjNG3nSYo6kdVM8Cp9q7Ifo6Oa
	8qCwirJMFmCW9du1sDT01wALA4yY0jtsOHxA3VAzxQ5anN0YmWsVlbB/h11Gv/ZWiU79d/CSoPd
	Us/QTynEx1Owon2EASpAx4auLIqvlPM9me+mY0ryl6IB5jx+8bHwSznSAnnDxWFwCO6QMfa+PyY
	Q39e92WjRIVdrZQlowHd0PF3Ru9o245rXImU4hIxXASmlyUa2/Ec3hIx4Ed7UB4GFOgu23qCcJ1
	oial/uJNUFNiP3nG/IxPwgRSU4bXWiPpZXNUATUEXDbJawTX0OMhYx3EIHvSpE3IbqngLMzbgJz
	W+yroJX/6WjA9COEbzetyuJ0GlkBNOYhwWJlscaRlDmzlkkIeqhuo=
X-Google-Smtp-Source: AGHT+IG8C9rI5U+m+A9wSFp7RpN80ekmEr/smPOOiIk91E1+Hg5S/5fApusnrdGUTrWDuvO/5JDKHA==
X-Received: by 2002:a17:906:c154:b0:b79:ff73:f3b4 with SMTP id a640c23a62f3a-b7d235c843amr209089966b.13.1765545751932;
        Fri, 12 Dec 2025 05:22:31 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v16 2/4] tools/xl: Allow compilation of 'xl resume' command on Arm
Date: Fri, 12 Dec 2025 15:18:19 +0200
Message-ID: <673b2f721b93d8d154f3290797dcbb99f9d46104.1765533584.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1765533584.git.mykola_kvach@epam.com>
References: <cover.1765533584.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

The "xl resume" command was previously excluded from Arm builds because
system suspend/resume (e.g., SYSTEM_SUSPEND via vPSCI) was not
implemented. On x86, this command is used for resume.

This change enables compilation of `xl resume` on Arm regardless of the
underlying implementation status, making the tool available for testing
and future feature support. The relevant libxl infrastructure and handler
functions are already present and usable.

Note: This does not imply full system suspend/resume support on Arm.
      The `xl suspend` command still does not work on Arm platforms.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Acked-by: Anthony PERARD <anthony.perard@vates.tech>
---
Changes in v16:
- no chnages
---
 tools/include/libxl.h     |  1 -
 tools/xl/xl.h             |  4 ++--
 tools/xl/xl_cmdtable.c    |  4 ++--
 tools/xl/xl_migrate.c     |  2 +-
 tools/xl/xl_saverestore.c |  2 +-
 tools/xl/xl_vmcontrol.c   | 12 ++++++------
 6 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index bc35e412da..14b9e4a859 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -1145,7 +1145,6 @@ typedef struct libxl__ctx libxl_ctx;
  * restoring or migrating a domain. In this case the related functions
  * should be expected to return failure. That is:
  *  - libxl_domain_suspend
- *  - libxl_domain_resume
  *  - libxl_domain_remus_start
  */
 #if defined(__arm__) || defined(__aarch64__)
diff --git a/tools/xl/xl.h b/tools/xl/xl.h
index 9000df00de..63db30a6eb 100644
--- a/tools/xl/xl.h
+++ b/tools/xl/xl.h
@@ -65,7 +65,7 @@ static const char migrate_permission_to_go[]=
     "domain is yours, you are cleared to unpause";
 static const char migrate_report[]=
     "my copy unpause results are as follows";
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
   /* followed by one byte:
    *     0: everything went well, domain is running
@@ -130,8 +130,8 @@ int main_migrate_receive(int argc, char **argv);
 int main_save(int argc, char **argv);
 int main_migrate(int argc, char **argv);
 int main_suspend(int argc, char **argv);
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 int main_resume(int argc, char **argv);
-#endif
 int main_dump_core(int argc, char **argv);
 int main_pause(int argc, char **argv);
 int main_unpause(int argc, char **argv);
diff --git a/tools/xl/xl_cmdtable.c b/tools/xl/xl_cmdtable.c
index 06a0039718..bcb2d233cc 100644
--- a/tools/xl/xl_cmdtable.c
+++ b/tools/xl/xl_cmdtable.c
@@ -198,12 +198,12 @@ const struct cmd_spec cmd_table[] = {
       "Suspend a domain to RAM",
       "<Domain>",
     },
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
     { "resume",
       &main_resume, 0, 1,
       "Resume a domain from RAM",
       "<Domain>",
     },
-#endif
     { "dump-core",
       &main_dump_core, 0, 1,
       "Core dump a domain",
@@ -548,7 +548,7 @@ const struct cmd_spec cmd_table[] = {
       "                        checkpoint must be disabled.\n"
       "-p                      Use COLO userspace proxy."
     },
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
     { "devd",
       &main_devd, 0, 1,
       "Daemon that listens for devices and launches backends",
diff --git a/tools/xl/xl_migrate.c b/tools/xl/xl_migrate.c
index b8594f44a5..4b4a379aa1 100644
--- a/tools/xl/xl_migrate.c
+++ b/tools/xl/xl_migrate.c
@@ -767,7 +767,7 @@ int main_remus(int argc, char **argv)
     close(send_fd);
     return EXIT_FAILURE;
 }
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
 
 /*
diff --git a/tools/xl/xl_saverestore.c b/tools/xl/xl_saverestore.c
index 953d791d1a..747094ec7b 100644
--- a/tools/xl/xl_saverestore.c
+++ b/tools/xl/xl_saverestore.c
@@ -270,7 +270,7 @@ int main_save(int argc, char **argv)
     return EXIT_SUCCESS;
 }
 
-#endif /* LIBXL_HAVE_NO_SUSPEND_RESUME */
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
 
 
diff --git a/tools/xl/xl_vmcontrol.c b/tools/xl/xl_vmcontrol.c
index c813732838..93766f631b 100644
--- a/tools/xl/xl_vmcontrol.c
+++ b/tools/xl/xl_vmcontrol.c
@@ -38,11 +38,6 @@ static void suspend_domain(uint32_t domid)
     libxl_domain_suspend_only(ctx, domid, NULL);
 }
 
-static void resume_domain(uint32_t domid)
-{
-    libxl_domain_resume(ctx, domid, 1, NULL);
-}
-
 int main_suspend(int argc, char **argv)
 {
     int opt;
@@ -55,6 +50,12 @@ int main_suspend(int argc, char **argv)
 
     return EXIT_SUCCESS;
 }
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
+
+static void resume_domain(uint32_t domid)
+{
+    libxl_domain_resume(ctx, domid, 1, NULL);
+}
 
 int main_resume(int argc, char **argv)
 {
@@ -68,7 +69,6 @@ int main_resume(int argc, char **argv)
 
     return EXIT_SUCCESS;
 }
-#endif
 
 static void pause_domain(uint32_t domid)
 {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 13:22:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 13:22:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185383.1507551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU36O-0000IS-JP; Fri, 12 Dec 2025 13:22:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185383.1507551; Fri, 12 Dec 2025 13:22:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU36O-0000IL-GO; Fri, 12 Dec 2025 13:22:32 +0000
Received: by outflank-mailman (input) for mailman id 1185383;
 Fri, 12 Dec 2025 13:22:32 +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
 <SRS0=qjHH=6S=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vU36O-0008Uq-4J
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 13:22:32 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9caa8426-d75d-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 14:22:31 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b770f4accc0so212953266b.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 05:22:31 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-4.as6723.net. [185.5.253.4])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-649820f77fbsm5168260a12.19.2025.12.12.05.22.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Dec 2025 05:22:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9caa8426-d75d-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765545750; x=1766150550; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=mNBx5LMsdfUd9qe82mIgOXRSWoojK++pTVS48n0owKo=;
        b=VtggWk2FvbgMoEUbCzUQO/99FI1cQ3VY2+dzn3s4Cs1tAOL8du3G1jsnXCAYX9beFO
         iA2IlMKDtC/DA2BAxVysBpoJghvN0fcneqMWwbc3beioE6GJ/UjcBdluo6Rf+6He9lT7
         Pnu7IhEL3Z647UAbE7oQFel0FmlpkQoYXXrHtbySq9RaQw8YrQfle01fz4VQ+/J6EgP7
         yleQsfylI68WTRFmcFUBz6BNFjxpczOxNKV58LYAAntoo/gAsHs0rewSIu2Mjw+jXg4C
         gLKSc8fK0ccH6kY96jelqEM2ONX/EovJgvno5nUfYiPBs1A5lf0xuVzxUzI4vQyNvx7p
         aydg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765545750; x=1766150550;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mNBx5LMsdfUd9qe82mIgOXRSWoojK++pTVS48n0owKo=;
        b=gnEqWYup0irIJcakHisrRGIuHINc3AM/OZujr/rxem/dKMD4YruumvETJhwDldcpdD
         iOKlL/gNgXxERAuFZf2uB02MjMQ78zOMO9+6EtMGCVnGvAo2ji1u+d4t6n2eknKi/nXe
         4ADrOqpe4RDAvJMRXt1v7+1Nj76aKUat/NF+1vpG1RKYbMDdqUL9kJQ7IT0QwaIXaVih
         H3NnQtshIY6fytNwdQFf8NYok6RTGisnEr6oJ5KujJ5Nxn4b9fviVFxqi+48YxS7YqPe
         k0TxEdCLvMTiAdvxrmqRpQosk0L14QW9IVCDE0AiIzDJLzk5cM6hFJiMzCkFpcCe5E9v
         xzUQ==
X-Gm-Message-State: AOJu0YxumzZtNC5ZBLEomboGOwuGvlSfcvozWeVFHn/er1Cmgc9+arp9
	BZEa0Yww+oD1ZLW13eiRwu+0qcv1Fo4GIs46ZIP7o0WB4pWPR8htrXpz7vqN9vFW
X-Gm-Gg: AY/fxX7u8rbHRPmK2+U/gQGWH8IFM2lfage0w3Zh/TdPSJm+FqoOqe1jDhxZtn99szg
	8PbHpqaUfBdD2uYVNbnxoQHMwjrq0swZstFw6XIz93pDj/QITgDg7c945U51EvmAE6kYLIaN/xt
	cncAlyCyIXjfjWhbWTSk9l+Ph23jHzHuyZzc1gIDazJUU88EUP45Up18tv8i676YcvhRQjlbi+Z
	KYgCbleXQMIO54Mqn9Lm00YkmIm0c+M636X5escYL2Z6rdPoolvkVd5ci5OmslO5IXrI7zVN5YJ
	Hveg6GbieaDJSDde7FJdl7KeUnHYzP3PeicjOWzTKqaRjZdipXB2VctmKia5beDLaH6qjDpH+h9
	jrKM3JIy+oNtil7eNCINbC+Y13SSjpovk6Mh41l1l4S7cgbmNcXMB5GTxZMoTzFKhTw1oZRqhg2
	yXX63zVDVyBsUJqMXu57djqRvRYF/w5ZjRflwOOAKV
X-Google-Smtp-Source: AGHT+IFAlzjqS91Cy2pbsy0MFORcZJ2T6CMF3MLzqOAFGy+vzxTyxAi0J7KoHKbKGMgOUWVKt50d9A==
X-Received: by 2002:a17:907:8694:b0:b73:1e09:7377 with SMTP id a640c23a62f3a-b7d23aa5631mr200765166b.58.1765545749714;
        Fri, 12 Dec 2025 05:22:29 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v16 0/4] Enable guest suspend/resume support on ARM via vPSCI
Date: Fri, 12 Dec 2025 15:18:17 +0200
Message-ID: <cover.1765533584.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

This patch series introduces the initial support for guest suspend
and resume on ARM platforms using the PSCI SYSTEM_SUSPEND interface. The main
goal is to allow ARM guests to request suspension using PSCI and be resumed
by the control domain (e.g., via "xl resume").


Background

The PSCI SYSTEM_SUSPEND call is part of the PSCI v1.0+ specification and is
used by guests to enter the deepest possible power state. On Xen/ARM, we
emulate this interface in the virtual PSCI (vPSCI) layer for guests.

This series includes:

1. A new vPSCI implementation of the PSCI SYSTEM_SUSPEND function for guests
2. Documentation updates to SUPPORT.md to reflect PSCI and vPSCI support status
3. Enabling "xl resume" command compilation for ARM, which was previously disabled


Usage

For Linux-based guests:
  - Suspend can be triggered using: "echo mem > /sys/power/state" or "systemctl suspend"
  - Resume can be performed from control domain using: "xl resume <domain>"

For more information, refer to the official Linux kernel documentation on power management.

Note that currently, SYSTEM_SUSPEND is supported only for guest domains (not for
the hardware domain).
---

This is the first part of previous patch series and originally consist only
with necessary changes needed for guest domain suspend.

The second part can be found here:
    https://patchew.org/Xen/cover.1765472890.git.mykola._5Fkvach@epam.com/
---

Changes in V16:
- Refactor error handling in domain_resume: move logging to generic code,
  use explicit return code checking.
- Make context clearing conditional on success in arch_domain_resume.

Mykola Kvach (4):
  xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
  tools/xl: Allow compilation of 'xl resume' command on Arm
  SUPPORT.md: Document PSCI SYSTEM_SUSPEND support for guests
  CHANGELOG: Document guest suspend/resume to RAM support on Arm

 CHANGELOG.md                          |   3 +
 SUPPORT.md                            |   5 +-
 tools/include/libxl.h                 |   1 -
 tools/xl/xl.h                         |   4 +-
 tools/xl/xl_cmdtable.c                |   4 +-
 tools/xl/xl_migrate.c                 |   2 +-
 tools/xl/xl_saverestore.c             |   2 +-
 tools/xl/xl_vmcontrol.c               |  12 +--
 xen/arch/arm/domain.c                 |  39 +++++++++
 xen/arch/arm/include/asm/domain.h     |   2 +
 xen/arch/arm/include/asm/perfc_defn.h |   1 +
 xen/arch/arm/include/asm/psci.h       |   2 +
 xen/arch/arm/include/asm/suspend.h    |  27 ++++++
 xen/arch/arm/include/asm/vpsci.h      |   5 +-
 xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-----
 xen/common/domain.c                   |  10 +++
 xen/include/xen/suspend.h             |  25 ++++++
 17 files changed, 223 insertions(+), 37 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/suspend.h
 create mode 100644 xen/include/xen/suspend.h

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 15:25:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 15:25:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185488.1507602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU51H-0001un-Tq; Fri, 12 Dec 2025 15:25:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185488.1507602; Fri, 12 Dec 2025 15:25:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU51H-0001ug-Qx; Fri, 12 Dec 2025 15:25:23 +0000
Received: by outflank-mailman (input) for mailman id 1185488;
 Fri, 12 Dec 2025 15:25:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JhEj=6S=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vU51G-0001ua-J1
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 15:25:22 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c49cd990-d76e-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 16:25:20 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-6418738efa0so2629306a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 07:25:19 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64982040e2bsm5517984a12.6.2025.12.12.07.25.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 12 Dec 2025 07:25:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c49cd990-d76e-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765553119; x=1766157919; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=qsx71SfY8ENXmCY+aS8orXuS6MifDjwJC6JXAXxzUfg=;
        b=Ofqz/ZPaa8rrYbU4foK5Kld2Ex5zQcgpfVeRrygfPm8hCpTN3XxpfKNHs4QDon+kN+
         sDxzJbQQ0kUrnb06zqHCPhzQEU8G7Zj2aM10rZ5xITePJOhMxubnOAqIApxInwMJGKCx
         fluIe4gXeH4aIOw8LlBQoHf3mJSAXtUFfCO6osOUz2lvTgVKOv+wfYx4K7uL+x+FNIOL
         ta09JWl6xZif+CI1vx0jVkCdYWjrwVYVZXqqlWd03XpyIWPuvjLNwUasZRyKPpg5KXr+
         kAj4ac2tGAfHR/O0Se+autlbXCDIvBhtTyjfYD/cZ4LlUbgPNPPcYDTCO18LbvXmsLGJ
         LUKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765553119; x=1766157919;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=qsx71SfY8ENXmCY+aS8orXuS6MifDjwJC6JXAXxzUfg=;
        b=jCqFLTZF7qBL5NtqsYfbtghTgZ/4YuhsgHp89Ej4Rkw0rqymII78ysXD6SxlRh+y2c
         Fz1Fxb1ZQNHm7H4a7zf69WWvBYjxjO7t4vYWixpKjhPTwnd3k5qXNaAY0b6J4TsPW8V5
         9MVCUJBBSgMVFtoAOiu1/bQg+FOLY9dFDkNklAuBvW6mGKZY/xkP8pD4oglfKx4lLL93
         bHYNAEqzz6/KJtUYTmIhXq/+iQUgGo4qWa6MuiGNu3IGKSrMeKvSAy+xCM2ogHf8naNw
         vdZHqpfOZi/foyH9YfHdQpTpCVITG2tFZEVbrYF04O5ymeNkPH6IT+yYfFFyb0iZsHRC
         QSmg==
X-Forwarded-Encrypted: i=1; AJvYcCVmyqh5MPpGGIjREvzmG2XP84B04DWBiApMi5+M28SsScUmZQMRQN5xhAVVmhexZeRqaMCZoquC0ek=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyMXDOaiyWHFlOrBL+47fVj9xsBvSQk4TVsE8KxZOyh6fAoAfE5
	wlC+XfGaiCGyCL859NDR6zpiLaTsW8mrUmNTfFVOpjnUVYe3FL4/bpZg
X-Gm-Gg: AY/fxX78Pj85eMXcTATb5fsJCBsXSOyYBORVfV/6nBsw795rmUGJ4qxRPLGfxbYk1di
	Dyg6jMjaq6ulHO5YIiZ1CG0e0q4I78thTuIYdH4rY4RFKG3LofWKNaO8Z7rl3lrbmof2C0o+q2H
	XLWsgAudoL9o2RxQd1odQv57XcfFgqtj9aALH4tVGgcVIuVJs/3fqooAoAg0bQ54NfStT45PVEe
	9CKM4BvBhmebpZCBHwX2f5SfPOGUf8xRWmrLVCIvl2kCpZ/mFs3TdA67Wa1f5A3VluMHxkmgW6q
	FJaMMX+UJvI9lg3xDikljVw0bj4YNB+x/E+qNvNuRsnhRU8RNe94ufmhVovJeDw58T/4pOASuRe
	QWbaIJKNwMo9yR5/9oIyNfaSyI3K50OIc/nslkAo4t91OXzBF81wkZ4ddzrHunj5Lq3CWijzzFq
	yq0sgljbt7bqDPyk2V7ynGHQNgc0aIyoWJ5vPrvOwDnsk7JCj0t3LhCUqRZezg
X-Google-Smtp-Source: AGHT+IGp2DjCLvtutjD4U7N8WcKeRA8y6iGg1Yzc39Atqf8sU3QphKZmY0xKmSCu6+K5otLdCdNjPQ==
X-Received: by 2002:a17:907:608d:b0:b77:1d75:8b78 with SMTP id a640c23a62f3a-b7d23cb3a2fmr259807166b.53.1765553118314;
        Fri, 12 Dec 2025 07:25:18 -0800 (PST)
Message-ID: <5154e129-675b-4027-b97f-257559c7ea50@gmail.com>
Date: Fri, 12 Dec 2025 16:25:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/3] xen/riscv: add RISC-V virtual SBI base extension
 support for guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1764582112.git.oleksii.kurochko@gmail.com>
 <d17dcac47752681eed6703360389dd542433ab3e.1764582112.git.oleksii.kurochko@gmail.com>
 <275721bc-07c2-4f69-93c2-e6d3022fee4f@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <275721bc-07c2-4f69-93c2-e6d3022fee4f@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/8/25 4:15 PM, Jan Beulich wrote:
> On 01.12.2025 11:24, Oleksii Kurochko wrote:
>> --- /dev/null
>> +++ b/xen/arch/riscv/vsbi/vsbi-base-extension.c
>> @@ -0,0 +1,52 @@
>> +
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/lib.h>
>> +#include <xen/sched.h>
>> +
>> +#include <asm/processor.h>
>> +#include <asm/sbi.h>
>> +#include <asm/vsbi.h>
>> +
>> +extern unsigned long __ro_after_init sbi_spec_version;
>> +extern long __ro_after_init sbi_fw_id;
>> +extern long __ro_after_init sbi_fw_version;
>> +
>> +static int vsbi_base_ecall_handler(struct vcpu *vcpu, unsigned long eid,
>> +                                   unsigned long fid,
>> +                                   struct cpu_user_regs *regs)
>> +{
>> +    int ret = 0;
>> +    struct sbiret sbi_ret;
>> +
>> +    switch ( fid ) {
>> +    case SBI_EXT_BASE_GET_SPEC_VERSION:
>> +        regs->a1 = sbi_spec_version;
> Wouldn't this need to be the minimum of what firmware supports and what Xen
> supports / knows about? (Assuming backward compatibility among the spec
> versions of course.)

The base extension is mandatory (according to the spec), and based on some Linux
commits from contributors to the OpenSBI spec, it is also intended to allow
backward compatibility and probing of future extensions (although I was not able
to find this explicitly stated in the spec).

However, none of this guarantees that everything else is backward compatible.
For example, the entire v0.1 SBI has been moved to the legacy extension, which
is now an optional extension. This is technically a backwards-incompatible
change because the legacy extension is optional, and v0.1 of the SBI does not
allow probing.

Regarding what should be written to|regs->a1|, I think you are right: it should
be the minimum of what the firmware provides and what Xen supports. Otherwise,
if|sbi_spec_version| is set to 2.0 and we return 2.0 to the guest, the guest might
try to probe the DBGN (which Xen does not currently support) extension and use
it instead of the legacy extension for the early console.


>> +        break;
>> +    case SBI_EXT_BASE_GET_IMP_ID:
>> +        regs->a1 = sbi_fw_id;
>> +        break;
>> +    case SBI_EXT_BASE_GET_IMP_VERSION:
>> +        regs->a1 = sbi_fw_version;
> Same concern here, but see also below.

For SBI_EXT_BASE_GET_IMP_ID, I think we want to return XEN id which is according
to OpenSBI spec is 7.

Something similar for SBI_EXT_BASE_GET_IMP_VERSION, maybe we want to return Xen
version code (XEN_FULLVERSION).

>
>> +        break;
>> +    case SBI_EXT_BASE_GET_MVENDORID:
>> +    case SBI_EXT_BASE_GET_MARCHID:
>> +    case SBI_EXT_BASE_GET_MIMPID:
>> +        sbi_ret = sbi_ecall(SBI_EXT_BASE, fid, 0, 0, 0, 0, 0, 0);
> This may be okay to do for the hardware domain, but hardly for DomU-s.

I don’t see an issue with returning the vendor, microarchitecture, and
processor ID. This is essentially what other hypervisors do.

What would be better to return? Returning 0 could be an option, and according
to the RISC-V spec:
   This register must be readable in any implementation, but a value of 0 can
   be returned to indicate the field is not implemented.

So returning 0 would simply indicate that the field is not provided for case
of DomUs, and provide it for hardware domain.

Would it be better?

>
> Same concern for SBI_EXT_BASE_GET_IMP_ID.
>
>> +        ret = sbi_ret.error;
>> +        regs->a1 = sbi_ret.value;
>> +        break;
>> +    case SBI_EXT_BASE_PROBE_EXT:
>> +        regs->a1 = vsbi_find_extension(regs->a0) ? 1 : 0;
> At least for hwdom doesn't this also need combining virtual and
> underlying physical lookup, if for some extensions you may pass the
> requests down to the physical one (as done above)?

I think I understand your intention, but I am not 100% sure that we need to
perform a physical lookup. There may be implementation-specific cases where
a call is emulated by the hypervisor instead of being passthroughed to
OpenSBI.
In other words, it could be the case that an extension is fully emulated
without requiring support for the corresponding physical extension.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 15:39:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 15:39:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185501.1507613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU5F2-0003xI-8R; Fri, 12 Dec 2025 15:39:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185501.1507613; Fri, 12 Dec 2025 15:39:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU5F2-0003xB-4H; Fri, 12 Dec 2025 15:39:36 +0000
Received: by outflank-mailman (input) for mailman id 1185501;
 Fri, 12 Dec 2025 15:39:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aL34=6S=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vU5F1-0003x5-CI
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 15:39:35 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bea2a205-d770-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 16:39:29 +0100 (CET)
Received: from DM6PR07CA0102.namprd07.prod.outlook.com (2603:10b6:5:337::35)
 by IA1PR12MB8191.namprd12.prod.outlook.com (2603:10b6:208:3f3::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.11; Fri, 12 Dec
 2025 15:39:22 +0000
Received: from DS1PEPF00017098.namprd05.prod.outlook.com
 (2603:10b6:5:337:cafe::20) by DM6PR07CA0102.outlook.office365.com
 (2603:10b6:5:337::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.10 via Frontend Transport; Fri,
 12 Dec 2025 15:39:02 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS1PEPF00017098.mail.protection.outlook.com (10.167.18.102) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 15:39:22 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 12 Dec
 2025 09:39:21 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 12 Dec
 2025 09:39:21 -0600
Received: from [172.30.226.132] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 12 Dec 2025 07:39:20 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bea2a205-d770-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Is5GG6cH/9n+QESLq/HPDUgA4kB1XvF2cLtbEF67vE0zxK75DwOvvjV1gNanlP+WCYBYBup5M5a56cqqWLJ2DV9KPIw85rujaWTNQZh9R7K9VGAHxF0wMU7JKesPyQsGw2dXrOu6IYWeKtqc8Lwbp0edmJJ7+9pjTdkla+xk544jX9/MVNMFRXGH6G2lRpIVw10OFHXt5WpRKGFPn2/mSk3weeQ0EAI1Tlapw3Ului7yXtiZ+mPzJVSapnDiqLfr3F2JpZqFS1rUnpCi9RiWXk1RQ//995FA4Y/7S4McOvV0NSKRklrs7Ikx9msqsmbHe8ZklU1/QbN5plpwWYfIGg==
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=saytSzNsWVJpn/J2fhxZt8d5gzmsd3ZyUq/odixdtog=;
 b=TeJVpYFPXL6skHpXvMCic+IH9rMR82yPXyOXIRlynW1txknkBUTU7La+xQv9xig55D2GAiQXdn/6GbcA4jVRmA5Rgu4WVEUzQNz2pIUbrwFfdTqLn/GNoNsbs+4Ndwwy7zlYKgThgR8OvpifSrsj6iuGbRdjSckXMVTq7kB4df3gKQw983roR4/C6ZszPyS0bS+U7STewMg1qhiWk5EqOV7UGZW3ru3PrPns8vLuqoVnGH6uW/UL0RDcmrP/di+9fo3vZjzhb0fftZxgnqXMcd95Z6qJ0UOR4bdorAwbCBq7s0VCt7sr10g15dsyYvXKNpO3qB6TLtCkUtPuQfdDvw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=saytSzNsWVJpn/J2fhxZt8d5gzmsd3ZyUq/odixdtog=;
 b=Wme9MgnAom2h4+WHWY2FYdAAshOWSl5o+clipUC/JIKc4FnCcaV8phd/gl+QilM0LByDOgaEsQwlhaFdifAmmCth/En8RMpkYjBobMINjDYTyslBrHRs+E8p/b3O6OjPJGlVdSebAvclKFu3Ng8PUn9xJtNh2r9FkBssYCzZCsE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <bf2d3cfd-373e-4ef5-9734-91f911d988cb@amd.com>
Date: Fri, 12 Dec 2025 10:39:20 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: KEEP Re: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
To: Andrew Cooper <andrew.cooper3@citrix.com>,
	<xen-devel@lists.xenproject.org>
CC: Victor Lira <victorm.lira@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, "Connor
 Davis" <connojdavis@gmail.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Grygorii Strashko <grygorii_strashko@epam.com>
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-3-jason.andryuk@amd.com>
 <ed620cd5-9630-4987-bd5c-9f69ae2c2609@citrix.com>
 <43d30e02-f818-4cf2-98c9-4182a2f65f64@amd.com>
 <13a270cd-b0bd-4565-9158-0e1728aef84e@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <13a270cd-b0bd-4565-9158-0e1728aef84e@citrix.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PEPF00017098:EE_|IA1PR12MB8191:EE_
X-MS-Office365-Filtering-Correlation-Id: 53ebdecb-db70-405f-8747-08de39949f51
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|7416014|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?S0p6bEErS253UUNkY202UTlKQWp2dG1hOE1XaTQ4YWJlcWtFcWVyYWZKSkFO?=
 =?utf-8?B?RFZJUHprbmhjeXQyNTBHaFBTWHlGVERVS3NVK3JPSXFrbGF3OC92ODVSVTc0?=
 =?utf-8?B?N1h2RjBDc2gvVllrN3R4b3MvWVd1RTEycEJ5eWN5Z1d1L0VlK2Q2ZFhjRXFK?=
 =?utf-8?B?em9JbElSS0IxVG9LNElScC9CbkJuMnJJVEllVUl2VEtxeGxaNmJJdG1rTWp2?=
 =?utf-8?B?cE50amVtTVRMZGEzZVV2Z09YRktBK2dCbTdoaXlYNHNYYmswMWZITHlxZ05Q?=
 =?utf-8?B?bFBOdDRiZ0RpMlBucmtMK202eHVSOVQ2YkQrUTdMOUtYVE8zVTBRNld3N3lT?=
 =?utf-8?B?LzZoQzNMSmVzL3l6NU91YUc3cGs4N3gxNlAxMGlpSENBWjVNcmNOOHVLd2dL?=
 =?utf-8?B?RDlZbHRacldmSEJIU2ROeGF3VE1uakx6a1ZjM1AvSklOMXN3VVVoZmVOUGlY?=
 =?utf-8?B?TnRpN1RsYVR6M2FnUDgxRTlHUGdVMWM1c2g2aG10VDlyYXRXekYrL3lCVkds?=
 =?utf-8?B?aEJpdldQRmVQbTc3KzN3eno0dzN6aUY2RTA2cU10b2loMDNNYUlJVzRROGxj?=
 =?utf-8?B?VlBlNXpTbUQ2dnowME1rMGNSRXVHVnJGY3lmNHorYm1ObHVJY25XRHdNNU13?=
 =?utf-8?B?Z1VoZGtidlM3VzRqd0tWVWZYd1dJZks5VDd1c3ljWUVCam5qY29DSnpFQ0lx?=
 =?utf-8?B?NDdNQ1JNaHhqeUpvdEhDZ0EyWjZKT0pUS0JYRnVpWVFHWW4wN1VWS3R6VXFT?=
 =?utf-8?B?UXFKZkhZN1lGZVUrUm8ycTVBSUxLMFJLTkxoaGxjR2NIWnlBVEZjL1ZYOXJi?=
 =?utf-8?B?S2lHaXA2YjkrZkRMWllGVzUzR1RyU0tBZmFxMENaWGsvcWNnSXlUa285NVNQ?=
 =?utf-8?B?Zjl1NXFjcTF1YkI4Zm5udmJTWjNBdy9aaTQrVThyQ2liZ1dpeDBYSTFhMEUx?=
 =?utf-8?B?MDlaM3VlNkdKZHpXeUFtbnYxSmhrWFloL0dBaWtMZFlPNkZOZ3JPL3dxNmp6?=
 =?utf-8?B?UnlIb0xVOW83VVI1SlphS1hGekRXSHhTcXAwQlVNakZ0azdMV3Z2a1hvVmla?=
 =?utf-8?B?UnFOUVVTUmZreFZ0SzNBK29MVzcvUUdacFQyZDZObEtFNlRaUXkzRklHd1VL?=
 =?utf-8?B?RmtPR2IxOTFBcjM1WUFiVHJ2YzBUKzBZZktaUlpMb3ZPeDJHczZob25nRzFu?=
 =?utf-8?B?VmpnOWsrWGJRM1FwN2w1TkdOTlRSOHFRNyszc0FJSE9FMDlUVGxwelpMYS9G?=
 =?utf-8?B?MU1Pa2JNSDBuZldDamFGUzdOeFlMVmVhVHVkdG56ZVJyNjIvNXZiZUtpUDBi?=
 =?utf-8?B?QkNMZWhkWDRKcSsxTFRHc25uR29MUzRFNE55cW1USVkwbXNTYUdiZExvL01L?=
 =?utf-8?B?WTlrNE9xYmh3bzlVYysxL2FEZ0wyVy9iNWcwc0V3UlRtMVZCUGhqV0tqZ216?=
 =?utf-8?B?NmZIWTJQZGpLb0V6enVhVXRPeEF4T2pZVkRNRit3QjRIYm9UNXg4STBjTnI2?=
 =?utf-8?B?QUpqV2ZObUFIMGR3ZENDQ01OSEFyU0JLNENmWDZzc3hkMmVHSWgyS2o3SWNu?=
 =?utf-8?B?cDRCeVNZWkY4Nmh6eFVpM0Z0ci93RlpESEFjYnBBaXVYbk5PMURTOVVQRXVn?=
 =?utf-8?B?YTBXNnJVVmtNWEVFT2sraGNEcWhVbDhtTmZoQ0g4QWczSDcyQkt4Vm1CWTg1?=
 =?utf-8?B?ckJqd0tMdS82eVhsWWw4eVZXb202dFZBVkpucFNGdnQxeHlpZ3Y0N1BOS1hT?=
 =?utf-8?B?cWVXUE84N2F5MEZDbXNhcGxlcm5qY0NIekhXZTZDaThlMGNnMXFZL1FnU3Uv?=
 =?utf-8?B?anNpd0JydldTOXROMkFIa3JjZnVtNDNCeUlaL2xOUGxNcFg2bXEzVE5MNGoz?=
 =?utf-8?B?dEJRWUp1SHAxd3VCdEkrenc4VVRQTUpmVGdKMzF2SGxBL1BBUlJLK3dyVXFP?=
 =?utf-8?B?ZUcvSEV1eFdpbzVVQjVEa0xmeVVCQXUzY0lNblFnTGRRbTNLRVlSNnJ0TWF6?=
 =?utf-8?B?bmptSXpXNFBzVXJDOUI4bTRqVUI1dWRDK0N5eGVPRnJQYVdrc2NuT3htQUJE?=
 =?utf-8?B?Q2lPek9ud0hMaWZnRFFESnpDaEdKK2FzeTVZWU8ycko0ZjhxbXNzbE1VTWIx?=
 =?utf-8?Q?9Kb0=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(7416014)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 15:39:22.3302
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 53ebdecb-db70-405f-8747-08de39949f51
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS1PEPF00017098.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8191

On 2025-12-10 21:47, Andrew Cooper wrote:
> On 11/12/2025 1:28 am, Jason Andryuk wrote:

>> +        "567:\n"                                                      \

> which also avoids the timebomb of using blind numbers and hoping for no
> collision.

Timebomb?  The bomb already went off!  That's why it's not 1.  :(

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Fri Dec 12 15:48:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 15:48:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185514.1507622 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU5Nw-0005iN-2V; Fri, 12 Dec 2025 15:48:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185514.1507622; Fri, 12 Dec 2025 15:48:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU5Nv-0005iG-W4; Fri, 12 Dec 2025 15:48:47 +0000
Received: by outflank-mailman (input) for mailman id 1185514;
 Fri, 12 Dec 2025 15:48:47 +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
 <SRS0=aL34=6S=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vU5Nv-0005iA-1H
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 15:48:47 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0a1bb3ee-d772-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 16:48:45 +0100 (CET)
Received: from CH2PR10CA0028.namprd10.prod.outlook.com (2603:10b6:610:4c::38)
 by SA1PR12MB7104.namprd12.prod.outlook.com (2603:10b6:806:29e::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.11; Fri, 12 Dec
 2025 15:48:40 +0000
Received: from CH2PEPF00000142.namprd02.prod.outlook.com
 (2603:10b6:610:4c:cafe::4d) by CH2PR10CA0028.outlook.office365.com
 (2603:10b6:610:4c::38) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.8 via Frontend Transport; Fri,
 12 Dec 2025 15:48:36 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH2PEPF00000142.mail.protection.outlook.com (10.167.244.75) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 15:48:40 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 12 Dec
 2025 09:48:40 -0600
Received: from [172.30.226.132] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 12 Dec 2025 07:48:38 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0a1bb3ee-d772-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yqBwcgbh7wbkBRKhShzeZV4n3NTv3a9A6GIVmABJMpRkKQ5QQ8jwfJJSajV8WRuqF6oaGemQSBxq/uTuh4CA1hFvD5xtwmAioYErc9tIdKNZGDuRMuW5zihOKL4hgR5ZPagd3yuBxHTHJ0qaJ38XU+zaG6HtNyILxp6g/1R9JoH/R7j+DpxwooOsjq6FHDrhe+1m3YDVXlVxsCOx8jT7W15slMIt/gWTSz0JLWuDMJFopaeuSAybBBSPpFIPV+67PRNI6EnTgteEIMaHnVQXbNQ7az70IL9v5/7Ue6/P3bAU8d25j9zaa3NJ5BDp49pQ/U4p34USNtGRTqTvSQ5F9Q==
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=rGED0SPw2F+RX+4VLZMafAG3AQ7Q0Z6jdtZk+j+A/Co=;
 b=Zlia2y3jUsVhEjMogSiSurTevvu5YiDIaLEMyxXeeXvrh+zHJ+Gi1hKYvGiOcgT+HB2CewqFgBEj5+OxG8ikXDKoxUDWcj5tSENAACitjCPvYXvi+c9eWjwUZcGgRk1m8rNukLqKMOhYydSh2AkrWK1AA+NoYBU9GHStu/NRk5AnZxa1ToPFOfMKscosJ2X5O1cUaBh6GCh/M7f2HQAbXL/p8Uwys5lYmaAprMxSN9tMAOR74fnlN0Ns3OvEmH2d5Da0HOoaBMKdGmZhfrR1jcNLQg0npw7Sz4cVf/vZQ70+99QVoxP0TW914MT+itX1jcKyGcfCxrH8kn/w2mwrCA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rGED0SPw2F+RX+4VLZMafAG3AQ7Q0Z6jdtZk+j+A/Co=;
 b=iHpgV0o6+khV81U4azRAnplaKyie/jXQE/rtXQPJ+luV/jUmbEwbXNXnRmRGAROg4kFaWiRaIpqM6BMAE1SuTOIEZYemQCc8855W+rLPJPlmBnodu6RVsZ4prXU69Exr1AIjeran7prSY8niJXUi9Yd0YeoifpovhFA91guKiHM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <c2d3da12-7bcb-4a61-a495-a09c4d4123c4@amd.com>
Date: Fri, 12 Dec 2025 10:48:38 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: KEEP Re: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
To: Jan Beulich <jbeulich@suse.com>
CC: Victor Lira <victorm.lira@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, "Connor
 Davis" <connojdavis@gmail.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Grygorii Strashko <grygorii_strashko@epam.com>,
	<xen-devel@lists.xenproject.org>, Andrew Cooper <andrew.cooper3@citrix.com>
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-3-jason.andryuk@amd.com>
 <ed620cd5-9630-4987-bd5c-9f69ae2c2609@citrix.com>
 <43d30e02-f818-4cf2-98c9-4182a2f65f64@amd.com>
 <13a270cd-b0bd-4565-9158-0e1728aef84e@citrix.com>
 <7514a67c-d140-43b6-bed0-3467530a086d@suse.com>
 <fbe63318-b764-46ce-a377-dd4ce7229abe@amd.com>
 <83eedd0c-dcaf-4e28-ac0f-f4991f053350@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <83eedd0c-dcaf-4e28-ac0f-f4991f053350@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF00000142:EE_|SA1PR12MB7104:EE_
X-MS-Office365-Filtering-Correlation-Id: ec372efb-1cb1-46ed-81c4-08de3995ec00
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|1800799024|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eXdYOVJjMVhBZjR0VkNsUHhIZHFjdm4vKzRjd3E2c1VZSVJtYWEyUFNXa2lT?=
 =?utf-8?B?ZWVhQzVPSGd3TU5VckxZZmIweHkzUno4UUhheHp0MWVuQUFkSjJMalQwZERV?=
 =?utf-8?B?djF2NmdOSW02UW55YlhuSXBLL01MZUdTaEUxVVcxKzRIdm5iY3AwUmdHRDF2?=
 =?utf-8?B?VUxpbUhIZjk5TngwSFpvTWxoYStrcGM1TDBGOUZIdlBjN2FScHZjZ1NZUDEz?=
 =?utf-8?B?dGFMbGJCMGRRb1k5MFprQW8yVUtZdnc0UUJkcmR1RmNVa0hwOWtNT3g2SmFN?=
 =?utf-8?B?cVBpTG95d3FHUkNsdmEzbjR1RVhnbUJIb2FIazUxL0Q0RkxnRGFzZlFveEZS?=
 =?utf-8?B?OVNybTVSTlJHSm1tTmtMeVF0Z1cvdnpoRFB0dkZKaXBTMHVQc1lyZ0p5S1Bw?=
 =?utf-8?B?akdtYjVpaWloNjRxNVN2Y1p5NEkrYlVIRkVnVS8ySXZsN1YybWJjZXkvemxq?=
 =?utf-8?B?TXR3eWJ1L3d3OXZMbDJqUVJBQXJBaS9mNDl6Wll6U1pFZTl5Y3FMdDNLMzln?=
 =?utf-8?B?YlVXditmMlVHcytFcXViQzdqZ2VWZjZUSGR2blBYNGFLdkMvUlBBSUt4cUhl?=
 =?utf-8?B?QWNBQnVTc1pOemxyU3JKZC80ZG1EV0MyQ3M0WVZRV1pHS1VMbEp6cWE3NmFa?=
 =?utf-8?B?VjY5Y3dINXBoR3hjdUNHaFlEUUI3ZCtWdlo0SE1QWTdaZkdGUHZVQVhsTENn?=
 =?utf-8?B?L2tNUW1vSUdzQ0NrQTlybzdKRHhqWVF5aGRCL2p4NS94SitsRWhPQSszYlRz?=
 =?utf-8?B?L1RzTXZFRzJlUlRrSk9YTENkUWtMcmNOaElYZ0kxTVh6Q2VIMEU0Mk1USEN1?=
 =?utf-8?B?eHk1aTBlOU5renF6QWxIN1VIY2Q0djh0dGJ0Ukg0MXJQU2MzY3Z0U2FaTWtY?=
 =?utf-8?B?TVVkMUtmcjZoeDAwUThDZ3M0TzdDU2Y2b2d5M1MxOCs4TmxVSHhDR2M2Vmx3?=
 =?utf-8?B?SHZzK1BxekpWKzZVZWd4MVpaa3BDYk92bVBPL0loQy9VeTR6bWRSa0I4bjZP?=
 =?utf-8?B?QVBNVG5YOGhDRTExdlZTSWVGREdrL21iY0hvRnJoZHdRNzEwUFdkeGs2Z2s5?=
 =?utf-8?B?L0s5M0RlR1F6OWNKbll0YSs1U2Z5RlhaRGZXdWpVbHJQRzRpdkwveDdoUVF0?=
 =?utf-8?B?MG1nM0JNTHVXRmFpQ0lITmZPa0xmU1lOUmtOa3d5d2lWLzByTWcxWWZ3RlAy?=
 =?utf-8?B?SjlrU2s4N08xYi9CUERnVFMrTzZjQktwOW8wNjVSTnJtUXU1d29rRGtlRHB4?=
 =?utf-8?B?RzM2Tk9VR21CSFJyL3NxMTZMWjlhR1EzZ2w0QkM5QUFveDdTL1Z1dnIzZ2l4?=
 =?utf-8?B?L2hMVHVUMWlMcjlMYW9JWDN4YXhpYVhScnlHck1VVW15bWhXU2pnb0U3dzh1?=
 =?utf-8?B?cnZEaG0wQVdmYWpSUkdsNTdVdXZWVTQ3TDRLeEVkeEJZZjQvSFpuNm4zTmVR?=
 =?utf-8?B?Ui9YVWFuUkZvdEh6TWx2Z3lDeWorTjRpVFNvNHVqeFVQWGJCQXp0dGcvcnBI?=
 =?utf-8?B?OTJuRTc1eXhZcEJUMnZqcmhDYzlpdDBNbGxnWFdsZVZia3RWOG42T2pqSDlw?=
 =?utf-8?B?NWVmbUNvR0dqNjB0dFprUnk0Y1dweFZycHUvUzkxc2xrWGl4YXBBSUovOURo?=
 =?utf-8?B?SCtCTHkvcnZ3QW5FemMxVWU5ZytUUVB4blVYbyttS3JJZmpGOFF6eGdvL0Zu?=
 =?utf-8?B?YXZDZ2EzRXFKeTQyRDBieXJCSkk4T3FUY0FuamZqUUMybllseVkrQ3UzWmNB?=
 =?utf-8?B?OWkvK2ZXUkhFM2M0M25rYUJib25lYzQ3SC9BTUVUNGU5cVBRaFlxNTBHdWps?=
 =?utf-8?B?QmRkV0dha3FPOTFuZEpxSDhuU21Rdi9ubDBGNGxjbjluT2UwRkhHQjgxTkJQ?=
 =?utf-8?B?bWhJc0dhSGppaHA0dDF5YU1lSkVrbUJuVjlYd3I0V051RERFMWF5V0tlRmt4?=
 =?utf-8?B?SGRNQ0hidnlTTnJHTFJQTkErT2xacnQyZ1J3TEZiT3pVWW16eEljVUxBMlJw?=
 =?utf-8?B?T0xXRnAvQ2JHSTdYOW5xQXgyS2RoSndSQlVqa21IaWQzd2pnQ2kxbENIUlBp?=
 =?utf-8?B?QUpaM1c3ZlVyR2E4dXVuUkJpbDZzditnV21NMUFJLzUrSDJqV3R2eTZtUlpK?=
 =?utf-8?Q?fYwY=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 15:48:40.4934
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ec372efb-1cb1-46ed-81c4-08de3995ec00
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF00000142.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7104

On 2025-12-12 08:22, Jan Beulich wrote:
> On 12.12.2025 02:34, Jason Andryuk wrote:
>> The alternative is section groups?  I'm trying that, and it kinda works
>> sometimes, but .attach_to_group fails when .init.text is involved.
>>
>> Here's an example that I think would work, I could make it to
>> --gc-sectrions:
>> group section [    3] `.group' [.text.vpmu_do_msr] contains 5 sections:
>>      [Index]    Name
>>      [   43]   .text.vpmu_do_msr
>>      [   44]   .rela.text.vpmu_do_msr
>>      [   45]   .altinstructions..text.vpmu_do_msr
>>      [   46]   .rela.altinstructions..text.vpmu_do_msr
>>      [   47]   .altinstr_replacement..text.vpmu_do_msr
>>
>> But I don't make it that far.  Other files blow up with tons of:
>> {standard input}:9098: Warning: dwarf line number information for
>> .init.text ignored
>> and
>> {standard input}:50083: Error: leb128 operand is an undefined symbol:
>> .LVU4040
>>
>> Line 9098 of apic.s is .loc below:
>> """
>>           .section        .init.text
>>           .globl  setup_boot_APIC_clock
>>           .hidden setup_boot_APIC_clock
>>           .type   setup_boot_APIC_clock, @function
>> setup_boot_APIC_clock:
>> .LFB827:
>>           .loc 1 1150 1 is_stmt 1 view -0
>>           .cfi_startproc
>>           pushq   %rbp
>> """
>>
>> diff below.  Any ideas?
> 
> I haven't looked into this in detail yet, but ...
> 
>> --- a/xen/arch/x86/include/asm/alternative.h
>> +++ b/xen/arch/x86/include/asm/alternative.h
>> @@ -90,25 +90,31 @@ extern void alternative_instructions(void);
>>    /* alternative assembly primitive: */
>>    #define ALTERNATIVE(oldinstr, newinstr, feature)                      \
>>            OLDINSTR_1(oldinstr, 1)                                       \
>> -        ".pushsection .altinstructions, \"a\", @progbits\n"           \
>> +        ".attach_to_group %%S\n"                                      \
>> +        ".pushsection .altinstructions.%%S, \"a?\", @progbits\n"      \
> 
> ... wouldn't you need another .attach_to_group here and ...
> 
>>            ALTINSTR_ENTRY(feature, 1)                                    \
>> -        ".section .discard, \"a\", @progbits\n"                       \
>> +        ".popsection\n"                                               \
>> +        ".pushsection .discard, \"a\", @progbits\n"                   \
>>            ".byte " alt_total_len "\n" /* total_len <= 255 */            \
>>            DISCARD_ENTRY(1)                                              \
>> -        ".section .altinstr_replacement, \"ax\", @progbits\n"         \
>> +        ".popsection\n"                                               \
>> +        ".pushsection .altinstr_replacement.%%S, \"ax?\", @progbits\n"\
> 
> ... here? Or alternatively use the 'G' section flag to the specify the group
> name?

The '?' flag puts the new section in the previous group, so it doesn't 
have to be specified.  I have used 'G' and %%S with similar results. 
The example vpmu output above shows that is working.  I can't get to 
linking with --gc-sections yes to see if %%S is no longer necessary with 
proper groups.

The problem is "the current function" needs to be assigned to the same 
group, and that is what I hoped to address with .attach_to_group.  From 
what I can tell, the function-section is not assigned to a group without 
.attach_to_group.

> As to debug info, I wonder whether playing with groups behind the back of the
> compiler is going to work well. Iirc it groups sections itself, too. Did you
> look at the generated assembly with this in mind?

The generated assembly differs only by the presence of .attach_to_group 
for build vs. doesn't build.  Is the debug information expected to 
differ according to groups?  (This is all new to me).  I have more to 
look into, I figured I'd post what I have in case anyone had seen it before.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Fri Dec 12 15:54:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 15:54:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185521.1507631 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU5Tn-0007EK-Lw; Fri, 12 Dec 2025 15:54:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185521.1507631; Fri, 12 Dec 2025 15:54:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU5Tn-0007ED-Ip; Fri, 12 Dec 2025 15:54:51 +0000
Received: by outflank-mailman (input) for mailman id 1185521;
 Fri, 12 Dec 2025 15:54:50 +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
 <SRS0=aL34=6S=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vU5Tl-0007E7-Us
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 15:54:49 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e224c1c6-d772-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 16:54:48 +0100 (CET)
Received: from CY8PR19CA0038.namprd19.prod.outlook.com (2603:10b6:930:6::26)
 by DS0PR12MB8503.namprd12.prod.outlook.com (2603:10b6:8:15a::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.11; Fri, 12 Dec
 2025 15:54:39 +0000
Received: from CY4PEPF0000E9D1.namprd03.prod.outlook.com
 (2603:10b6:930:6:cafe::72) by CY8PR19CA0038.outlook.office365.com
 (2603:10b6:930:6::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.11 via Frontend Transport; Fri,
 12 Dec 2025 15:54:34 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000E9D1.mail.protection.outlook.com (10.167.241.136) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 15:54:38 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 12 Dec
 2025 09:54:38 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 12 Dec
 2025 07:54:38 -0800
Received: from [172.30.226.132] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 12 Dec 2025 07:54:35 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e224c1c6-d772-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=M7XCwrYS51FqlVwtAf9x152Po4YEsM7fyQHE2QpbPXskOHsVJvsw+xvpLt8u8YC8PBkLS/e+ov/aLlcfLBy6lLe2ihvZFYRtrqtOnqMT4hnMqKq990Px95evCqqdQVm8XOYRUY99ogMYvyculXaBIlmmX116OLlZghKUMNUN8vkQ//m5imwOP7D1TdPwbF0hFd9rkMBuhF8eaTI0cj87ZZUVehRnV+xQMbyZS02fDhtIvHdzHG/4zkEkXTxs4Ops9NTIgn/M5p/nERgNmhw0ZBebcv2bLNmXN55N7a9YruFLhiyhulgeYpxSUuDf5Y+wbbLs4UO/jZp0tOn1lTBYMA==
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=01jBEKH/XDWcfVq8+WPJkmX/jFaIwXfoYHW2nOowWog=;
 b=Ayo8wd0tjdZfjPkknKQSk87/8PExsnESO3RyVP+b3eElCfusk60FJjIV7lM4peP9wcjZleudJudfD5RXEc6TAaVG7P7OrITdu7a78KouPTQYzHA1/sPILIkreoiVar2DGWjvhFnRKTBXmSa4SKZVslaGNMee6Luca21myBIPd23d1qxtnM/Vi2vmkOTyE44dqJ+bX4c07HZfy62tZU4cuV6yHVdZV7XI0rxfNbL8h/nuN9yetblZOHIwh2YwQ+jllh+76c+oTyxXXuMrDyZlEmrq+EfcmofQLWXGc2WAWS0C6GIyvpww3DY8Cfi9S8/k5r63ajL4mi17R4xfw8xeIA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=01jBEKH/XDWcfVq8+WPJkmX/jFaIwXfoYHW2nOowWog=;
 b=Fm1B8Chf0Uyxvs0ELHT0bmwOvKZFH33j2+LhJvTk3m/WbT3wEbTJgsPnOd1keRsNFmEQPv+N5JQSe+5FajCWMLSgoBql69PQuV3T45tIjqzY1i2aPY680WdIQptMptVf395VYB0g9kS/ik4NTrd1HkSSxPZHqeMdkzljy0pHVHk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <a36141ad-cde0-49be-88f9-0f17cdf04ecf@amd.com>
Date: Fri, 12 Dec 2025 10:54:30 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	<xen-devel@lists.xenproject.org>
CC: Victor Lira <victorm.lira@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, "Connor
 Davis" <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-3-jason.andryuk@amd.com>
 <b162424a-0ef1-46a6-bb3e-85aab5bb5a4f@epam.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <b162424a-0ef1-46a6-bb3e-85aab5bb5a4f@epam.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D1:EE_|DS0PR12MB8503:EE_
X-MS-Office365-Filtering-Correlation-Id: 621d195e-c035-4fc4-eb25-08de3996c1ad
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|7416014|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OG91UklXMlpoVXF2MmNMb3IvYjlQVnY4NFNIdVFBeEpxd3hkRzRRaGFvbnM5?=
 =?utf-8?B?bnI4WjZaZkdJMDIrOWZ5WTdTQkdCb01tbGp1eFBCNms3elY0djI5bml2SjRK?=
 =?utf-8?B?cmc3ekN3YkR6cGsrN2JXeE9uTWUwWmtIYlNUUlNDL0k0cXoxUklzRGhOa3Iw?=
 =?utf-8?B?SkhTNkk1RWk3bEpuZUplRlFhWW9NUjEzTCtVRmx3RFdKUTRNWlZPdkdTWlh5?=
 =?utf-8?B?K0NBQ2theG44eGJ4dW9nUkluQmU5MGpESHpySTJkR1RMN0wweERRNU1yRFRI?=
 =?utf-8?B?Tklra1NLYys5SzhvNi9yclVKZXNGcWlVMGRocGt3VGtIWWhmaDBtSGpkRm9D?=
 =?utf-8?B?THJkSUh2ckZtRklRZzY5MDF3cC9yV01WWk05Q3lKVzk5Z2s0dDZNb1pWZ0V3?=
 =?utf-8?B?blEvT1pIYVdrSWZPTEVtTmVCTC80ckg5SjNJSHJzaHNRUHRRWHo5VStPTVda?=
 =?utf-8?B?NW1HN2dqOERQQ3lJMEJIRjlmcFJKV2krRGM3OGhOcm9jc2FFcTVuQi9BSWtF?=
 =?utf-8?B?a21IbHNMbHRUOERMWmhFZERXVFNzM3BBUUlWWXpkUTByaXRFbTVJdUNJaGVN?=
 =?utf-8?B?S0VIbkVYZE9tS0lqU09NWW50OFZpdGlld284QW1LN2g2NUh3MTVmS2E3MG9C?=
 =?utf-8?B?cVFOaTFFck1mc2ppWFFoQnpMZ1p2RFVaYWNmRmQ3bnhHa01XaWZncllkMndD?=
 =?utf-8?B?YlZhT3h4b05qR3JJMi9qZzZFYnhEcWlReG1nck8xcDk5T0VQcXRNNlZEajlh?=
 =?utf-8?B?aDRnQmJyanVxUUlLMEtKb3o5NkZsdFdhSE52QTRiZXhaeG9pM3RqYnRkSHQw?=
 =?utf-8?B?WXppVEppUjgra1FZWlhrMjJTREZDY2x5b015dWRybXJWQ1BaQzcwMS9wMGVv?=
 =?utf-8?B?Z1FmcnplVjdXUHVSUXVHczdpZ0ZwQURZMmw5bEZuT3Z4QndnL2FZNFYyY1E4?=
 =?utf-8?B?L2QrOE1pQjRsSHhpdlZQOWdXUm5qdFBJYTZRY29YL084WHBLbzJPdHdXY2tQ?=
 =?utf-8?B?aVM3RDBDYWNwRm9JREd5Sm5XcnMra2laSzVZMTgyZXdqN2ZOUmQ5ZklvMnp0?=
 =?utf-8?B?Nm0rMHRkWkcweVBUQ2pPY2RaVnNCRTlxWGVZNEh2alVTZi9TejltbVJNZlBK?=
 =?utf-8?B?SHBzVGQ5bms3a0dZS2dKOUdTVDExNFVRSEFHenk4Mk41VzNLVmwwRWs0QWR3?=
 =?utf-8?B?Z2tFZ2V6Y0JmRnFxaHdqTmU2SlkrVExOdEg1N0pNaDIrMHNZVnJLYXI4Mi8v?=
 =?utf-8?B?bTFtdXQrbWFqZ2tiOTQ5UnBjRnp2V2d6ZU5ua1NMemU0bEdrYkQzTUVlY3h3?=
 =?utf-8?B?ODhKdjE5cVgxbUp3VXdpbGlPNXA5TXU5K2VrQjNxa2JyLzRuZmdDSlBlZ1Jt?=
 =?utf-8?B?bFBlSmJvK0JBakllSnU5ZEsxZ3BUWUhnVjlyU2o0SkEyTkhQcHVNNXlocXFH?=
 =?utf-8?B?S2JIZFI5QXZ3bW15RDBiRXlLbE1qOEJ6VGpVS1gyQmxBTmF5d2pEa2ZmMlBh?=
 =?utf-8?B?OVJReXJua2tudVB0ai84ejFvQjg1Y0ZXVmRLQTJ2aERCWGxyNmVERHczVnJE?=
 =?utf-8?B?aGc3ZXc2SUhDelNOWWhGSWJnUnp0Y3ZJWFpmMXN2TSttVGRxd0pBUEFiOUFQ?=
 =?utf-8?B?b0FLNVJEMkxETWxsMitJcmltSDZJbmkrL3JMSlpDY0NLTHBvc0o3clZkNFFr?=
 =?utf-8?B?T1U3WXM5MjFXU0RKVHduUGgrRFBqYm9WUEZsZDM2MUZ5SG44QzVxbUh5SXhl?=
 =?utf-8?B?cmtoemQ4ZE1Dd1VvQWhJbnNjNlY1eDhKRlFQcS9jL1NxRUVwbXQyYW5XQmpI?=
 =?utf-8?B?bnhsVDF2ZDY2U3NKZHNUVzNLbmczOU03ZVh3bXVYcEV1cThFV0xCY0J6OXc2?=
 =?utf-8?B?K0NobDFDL0NPMHJndzR4ODZiQW9Ba0V1UlF6S2xpRTJVZkVYWnJ6SzVKUDVU?=
 =?utf-8?B?dy95b0s4OWNZK1JONVNzYXNoeU1DdU5Dazd0QUtaMjYzNE9jeTZDV0FEd2hK?=
 =?utf-8?B?Z29FUmthRXN6elV3Sm0wMzdpWVltckM5N2VnK0RobUJuVmxMcEovTGZaSEw1?=
 =?utf-8?B?NUxoUWJwYmw0NkNxckswcmMrdFRlWmNrK2gvK0VmU3h4K0NzVlZKQlFmOC9T?=
 =?utf-8?Q?kSN8=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(7416014)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 15:54:38.9573
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 621d195e-c035-4fc4-eb25-08de3996c1ad
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9D1.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8503

On 2025-12-12 05:42, Grygorii Strashko wrote:
> 
> Wouldn't it be reasonable to do the same here for "initcall/setup" as 
> was done for
> "schedulers_array"?

Hi Grygorii,

Yes, I think you are correct.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Fri Dec 12 16:02:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 16:02:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185533.1507642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU5am-0001BO-Fy; Fri, 12 Dec 2025 16:02:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185533.1507642; Fri, 12 Dec 2025 16:02:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU5am-0001BH-D8; Fri, 12 Dec 2025 16:02:04 +0000
Received: by outflank-mailman (input) for mailman id 1185533;
 Fri, 12 Dec 2025 16:02:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SbWK=6S=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vU5ak-0001BB-Dn
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 16:02:02 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e2331c7f-d773-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 17:01:56 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-477563e28a3so10801475e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 08:01:56 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8b8a851sm13189447f8f.29.2025.12.12.08.01.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Dec 2025 08:01:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e2331c7f-d773-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765555316; x=1766160116; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=WgquLcWeZX/YUNccTWEytnXurSVltOmOgVqyteSCsmU=;
        b=mUkydGeWKOL0U5bmeZUNMOnXgWSjp7bHYcb4EAeAbXDRg+LvKIT8bOt1A/Ymx16GmC
         QNBaTCDPFDoPaFg2LBvIJdEC1V/IXqsHp3xqyLFrsnU0k1jIEkLVom2DvBjs0ta9j2ub
         aVMqQYTOpF6mHkYMzcwsUKTLlgKGumuRuXCsU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765555316; x=1766160116;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WgquLcWeZX/YUNccTWEytnXurSVltOmOgVqyteSCsmU=;
        b=vr2mdZnSEmXaVvgDzEq7nxFvSpEeMya3t54KufHrUSiQGf2l9N79XxYEmMfSIGXU0c
         9PkYrXW3/CvCSj/dfMvX2bSP0jAQXX00db4h3Hjd7xgHgmSFbSBobvyXA0kqQqVsEVg7
         xrXpJq16LCvbPZYOkFBqpUZOUg+V3CuEp0TW1vvIa+o0HDTVBA4YJcTlnlrjxVeaAXQ9
         LakX9ynrIDQf+KIBu5exKKiQ4+BqWdpx1z2EcZHHSr6lB+ee1G1rlgZkd2t4KQ0+Im2E
         H2/vVt3R8rPKXzpTca5oX1iEHMSkMu3TF0YEtoZwx2oDvyaz8wJIo2zz+9B41dxCWR2H
         RtXQ==
X-Gm-Message-State: AOJu0YwWiCN8G4UxJFmzGDroo20OP64wEh87C7kCh6tR8/hXQp9ENptc
	wVb9fj9D78HPyMvNZmFKr5AfKzdf1CaSA2RJWK2amMTNmvUmfBDt5izz1PcDilu3qBDgckjsPYs
	zoqkf
X-Gm-Gg: AY/fxX6lCgG6aJf1RWc0qujd+u4HzmFnu+7S+pNEQkViPPQEqjI7pmKoqoutKKXJgQG
	MCM4zMbXPVw2HSz8I/w8XUrROQKry24qmQkVU6ZTr9INnJ1hLM58yqJQIA4fnTQ/YjMxcti4aGC
	q+9rFMp3j21X0iKGOzXBDVkKCUyU/iCmz66hGfzUU1emmbM8Dfadc/W1B0b4aXb18+/lsGfcRag
	+BP4n/EJyCNxumXivlOSI56hKBTOZdP9Iqfyd3ithMMmDtXmMLpnYQgI9GNcM+gIeB8bBDTdFM6
	yWgQbZ4n2oGWB+l9OII35VMcleG4tzM8MpJI408Y6saCtlLSogDQNKPMIRRH1a+3oNB5J0hHx1i
	mcEgu8Kv2tusMdikjOXgDdFMV/b2a71uX0O5tobg75juU4ECo47LatLj2Navx5s4aywqWKZTRdA
	EOT/4/m+m4Yx7OEG/ghqHActjoKliuf3G0pLMjD5olcDb2RjwS5cW30oglkEAlog==
X-Google-Smtp-Source: AGHT+IHahVC1TzJEZwQHoPfg5P/QdOES3ScQKlwW02CsNY1AmLGvuZ4HgoRaOJwx5JJp0VexzlnQdQ==
X-Received: by 2002:a7b:c4da:0:b0:477:14ba:28da with SMTP id 5b1f17b1804b1-47a89da4761mr46373975e9.5.1765555315729;
        Fri, 12 Dec 2025 08:01:55 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] x86/shadow: Drop SHADOW_AUDIT_ENABLE indirection
Date: Fri, 12 Dec 2025 16:01:53 +0000
Message-Id: <20251212160153.2485230-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Simply define shadow_audit_enable to be false for the !SHADOW_AUDIT case.

Change the variable to be a bool, and __read_mostly as it's only enabled by
debugkey.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/mm/shadow/common.c  | 8 ++++----
 xen/arch/x86/mm/shadow/multi.c   | 2 +-
 xen/arch/x86/mm/shadow/private.h | 5 ++---
 3 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index f2aee5be46a7..e78aac415077 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -126,7 +126,7 @@ void shadow_vcpu_init(struct vcpu *v)
 }
 
 #if SHADOW_AUDIT
-int shadow_audit_enable = 0;
+bool __read_mostly shadow_audit_enable;
 
 static void cf_check shadow_audit_key(unsigned char key)
 {
@@ -1453,7 +1453,7 @@ static void sh_hash_audit_bucket(struct domain *d, int bucket)
     struct page_info *sp, *x;
 
     if ( !(SHADOW_AUDIT & (SHADOW_AUDIT_HASH|SHADOW_AUDIT_HASH_FULL)) ||
-         !SHADOW_AUDIT_ENABLE )
+         !shadow_audit_enable )
         return;
 
     sp = d->arch.paging.shadow.hash_table[bucket];
@@ -1522,7 +1522,7 @@ static void sh_hash_audit(struct domain *d)
 {
     int i;
 
-    if ( !(SHADOW_AUDIT & SHADOW_AUDIT_HASH_FULL) || !SHADOW_AUDIT_ENABLE )
+    if ( !(SHADOW_AUDIT & SHADOW_AUDIT_HASH_FULL) || !shadow_audit_enable )
         return;
 
     for ( i = 0; i < SHADOW_HASH_BUCKETS; i++ )
@@ -3188,7 +3188,7 @@ void shadow_audit_tables(struct vcpu *v)
     unsigned int mask;
 
     if ( !(SHADOW_AUDIT & (SHADOW_AUDIT_ENTRIES | SHADOW_AUDIT_ENTRIES_FULL)) ||
-         !SHADOW_AUDIT_ENABLE )
+         !shadow_audit_enable )
         return;
 
     if ( SHADOW_AUDIT & SHADOW_AUDIT_ENTRIES_FULL )
diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c
index 03be61e225c0..2106643651d9 100644
--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -314,7 +314,7 @@ static void sh_audit_gw(struct vcpu *v, const walk_t *gw)
     struct domain *d = v->domain;
     mfn_t smfn;
 
-    if ( !(SHADOW_AUDIT_ENABLE) )
+    if ( !shadow_audit_enable )
         return;
 
 #if GUEST_PAGING_LEVELS >= 4 /* 64-bit only... */
diff --git a/xen/arch/x86/mm/shadow/private.h b/xen/arch/x86/mm/shadow/private.h
index 1ef908a380de..0e63ebea4e17 100644
--- a/xen/arch/x86/mm/shadow/private.h
+++ b/xen/arch/x86/mm/shadow/private.h
@@ -33,11 +33,10 @@
 
 #ifdef NDEBUG
 #define SHADOW_AUDIT                   0
-#define SHADOW_AUDIT_ENABLE            0
+#define shadow_audit_enable        false
 #else
 #define SHADOW_AUDIT                0x15  /* Basic audit of all */
-#define SHADOW_AUDIT_ENABLE         shadow_audit_enable
-extern int shadow_audit_enable;
+extern bool shadow_audit_enable;
 #endif
 
 /******************************************************************************
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 16:06:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 16:06:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185543.1507651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU5et-0001ir-Ve; Fri, 12 Dec 2025 16:06:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185543.1507651; Fri, 12 Dec 2025 16:06:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU5et-0001ik-T0; Fri, 12 Dec 2025 16:06:19 +0000
Received: by outflank-mailman (input) for mailman id 1185543;
 Fri, 12 Dec 2025 16:06:19 +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
 <SRS0=SbWK=6S=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vU5et-0001ie-JK
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 16:06:19 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7e594cf8-d774-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 17:06:18 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4779cc419b2so15599515e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 08:06:18 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f8f3894sm38530395e9.15.2025.12.12.08.06.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Dec 2025 08:06:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7e594cf8-d774-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765555578; x=1766160378; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=Ilh1940cXuR+im2NE2+oUxOQVII3GAVTO2GQRPcJ7uA=;
        b=O1pql3mvvaVZWn27YFGgpZp1MEeo2qWBZBu/UCMf9uaNbzAQVzSx05OSkF6vO1/CLA
         9sq2GyFAYq50ZzM7arD2r0WzStGAOHVMabc64xiNwWRphyR4DJMEzyYmGAdyzB2FThvv
         mf0bMfXRgi1H7AZqWM9NNE3hOBAkZhQqPIyUc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765555578; x=1766160378;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ilh1940cXuR+im2NE2+oUxOQVII3GAVTO2GQRPcJ7uA=;
        b=hOVknMx3ztwHtfkzrUKy1X6+ZFF423fj7IVMs3FbYyVBspWyxQm7vQN3yyRAdO9DrU
         +BqcDy2dXlbWysZJszwK8mNBSw73gGqCj9M4E6H+83JQ0Ag1PjGNDrKNVV+P0xXTI0AQ
         P0QmqV5bcM8OYPMw6GDh6uKvuxfXdqG1YMELW2a8F3FalMPVEzdQXBfP3FY2qFMh9A1C
         TKzs/7o+RXZomRq+WEFzMK7Wc5m6FSfId48Mq+xdqjChp69GgvFFwiFsKcO9v7z9uKZE
         TzO7x2m6A56FBF+kgsIuecbabG4hRsnkKLhOEB+ydU3qWl0aG8CmHa/hN2AtEUmQ/TSz
         6u7A==
X-Gm-Message-State: AOJu0YwZIZH/cSiprIDeAvLwJxY/0Wg6v8ZIVmVTpD14+TY/RWYJ+Jdi
	XrV1CtqNs0mv27HDYlHupUe7Aiys25lWyQ+9zeVk6rZ80bE+pXS4w8CaMqVKCfQmOWmK7MMOY8K
	gxQR3
X-Gm-Gg: AY/fxX6MXsPVg0V8IPJCx/7MST5CxVBZm2KcnAf/8ERAusUWpcIHHZw/x1wyVraiD+c
	taus/SSfLJt8U65EpwiUmuHsUQeCkRYUlKFPMnTPSlxghF7PVSVCH9Vz8agIXOoN/jz7xcuz7+w
	eoh36zgRXmMjiAyljtEvOUS/SnrETmPbUGOiiLsMLpl03Rckpj1ebSe98ihj4kLOsOxYc5QIwfN
	+JdJJ2gN3cyR0zAt2hqwLKZKURMUjdAsERIrCUDqjfx2Tlbkso90fmCaY9C3b4XyTcnn+ZT89kB
	jVEQB14AQOR5NJNluCxl51fFIw11Bw58lk4rlAqznXc2BfJwGJMiyxoNOnAeBE/FvfzLukFTDKY
	nzdaOu8NCiKNa64mfg2OarpJGABhE8epA2rWS4TA3LbEsYHGLvYmHE5u1R8MEKg4o5iQs7xJle+
	FnrYYkXBQ5/vIYpgOGmTtbwi/i8K+9YHhFQyI1KOx0dQhc87Smte5yw3KuVd6Vu5R+e9nu9cl0
X-Google-Smtp-Source: AGHT+IGE0sVGOy54GyGnv76mv0eFlPZ/uPMhlDveanIeu0bgHvAEf/xJVeqbj+zk5DK9JT0EWPrKeA==
X-Received: by 2002:a05:600c:3146:b0:479:3a88:de5f with SMTP id 5b1f17b1804b1-47a8f9174f3mr23757785e9.36.1765555577682;
        Fri, 12 Dec 2025 08:06:17 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH] x86/shadow: Move GUEST_PTE_SIZE defines into types.h
Date: Fri, 12 Dec 2025 16:06:15 +0000
Message-Id: <20251212160615.2486055-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

GUEST_PTE_SIZE are only used by multi.c, but private.h gets used by code that
doesn't have GUEST_PAGING_LEVELS defined.  Eclair notes that this is a
violation of MISRA Rule 20.9.

Move it into types.h with the rest of the level-dependent logic lives.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/mm/shadow/private.h | 7 -------
 xen/arch/x86/mm/shadow/types.h   | 7 +++++++
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/mm/shadow/private.h b/xen/arch/x86/mm/shadow/private.h
index 1ef908a380de..bc99e00100f7 100644
--- a/xen/arch/x86/mm/shadow/private.h
+++ b/xen/arch/x86/mm/shadow/private.h
@@ -121,13 +121,6 @@ enum {
 };
 
 
-/* Size (in bytes) of a guest PTE */
-#if GUEST_PAGING_LEVELS >= 3
-# define GUEST_PTE_SIZE 8
-#else
-# define GUEST_PTE_SIZE 4
-#endif
-
 /******************************************************************************
  * Auditing routines
  */
diff --git a/xen/arch/x86/mm/shadow/types.h b/xen/arch/x86/mm/shadow/types.h
index d700d8d64c8a..13d13c52c007 100644
--- a/xen/arch/x86/mm/shadow/types.h
+++ b/xen/arch/x86/mm/shadow/types.h
@@ -18,6 +18,13 @@
 #define SHADOW_PAGING_LEVELS 3
 #endif
 
+/* Size (in bytes) of a guest PTE */
+#if GUEST_PAGING_LEVELS >= 3
+# define GUEST_PTE_SIZE 8
+#else
+# define GUEST_PTE_SIZE 4
+#endif
+
 /*
  * Define various types for handling pagetabels, based on these options:
  * SHADOW_PAGING_LEVELS : Number of levels of shadow pagetables
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 16:31:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 16:31:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185555.1507661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU63C-0006Bb-Rr; Fri, 12 Dec 2025 16:31:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185555.1507661; Fri, 12 Dec 2025 16:31:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU63C-0006BU-PN; Fri, 12 Dec 2025 16:31:26 +0000
Received: by outflank-mailman (input) for mailman id 1185555;
 Fri, 12 Dec 2025 16:31:26 +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
 <SRS0=JhEj=6S=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vU63C-0006BO-7I
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 16:31:26 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ffeaefcc-d777-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 17:31:24 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b76b5afdf04so262533066b.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 08:31:24 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa51754dsm622749966b.42.2025.12.12.08.31.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 12 Dec 2025 08:31:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ffeaefcc-d777-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765557084; x=1766161884; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to
         :cc:subject:date:message-id:reply-to;
        bh=jvKp9TljLAXn1f5nWZJFoBGlgtdsyUZLz01HqZ1Isqo=;
        b=maCFJUzmKIpxy58tkZoD67h92veFsh7bXXR4/ruZvcetyGl1ISUu9Luh+LI2GZqOtt
         h054aECT7uMk9RzMlqX7j0WciSpbJR5JdwnSQKNZSIdGRAkdsWFUkSXVouLxk+XTs7tF
         R4uVJRiG+byYtSGiIapmNCUd3bTBYjcG7swWrE/DGqpGmfZF+MNEw5aduKpMGXy6V1Yz
         jGszRRS4Ua2TUAtWrHlfo/IUnqx72IX45K5gJc7SA3Bh3jWFplbI/J68xcVt8VFWJ6g5
         KsQAkx16y+IX0jhW/PliYuUOFAx/ZJlCvAdZRV/zFy0v3GGw9qopb2xtQzDLSoqehnLs
         i9Qw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765557084; x=1766161884;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=jvKp9TljLAXn1f5nWZJFoBGlgtdsyUZLz01HqZ1Isqo=;
        b=HyM1nKXY0kvOvonGyKzx5VfwmaKluVnTVMJ5MvuZrOx6Fj6xaVmhllsQ0pv90qUygK
         rpTjcMtLayAdr76LS9q43zmRcKVq7Le4NHqHK6q/Je5hCKBFxfdsfaLuzwZkHwgQjxiH
         DxSKYdOcHtI65S6KVLFs80hWC0hciyP72RltbP2HK6tyyfUQ/aegG6ydbI3E5OD8aM3D
         lFeLqbHNcR6U0DSum5FgtjtTO9H5t4Ci0CDkmqfPRXBzNxfCtXedT1xogmDX6fDd4l01
         IVIKmRo/C1IvVXi7sr+zPJkjciJSOPqxfL1GQx55VmnVPLKZs0mpuwh/hVqLz1lGmz8n
         d73A==
X-Forwarded-Encrypted: i=1; AJvYcCWC+DHnAafLRyer15mB0mg94D6bUvaD7HH2FTR+Aw1L3iXFff+4I0CmrZHc9KMiBsg4wJHt5HqRWjc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwgkQLURyqEODIcjk1tsqz3NCBUDWWyG85fUSxpsXxHomCURcTG
	VPlMuYSBTgAOhW8HddZFvWbM3OOKgsMHtwofaP8QkT+efIYu0WWxAguW
X-Gm-Gg: AY/fxX5Pg47IW+GUMFGnNAIPvTrpEB2RH7MOZZBIm3TonYX0Q3uQVfr410O/6IilEdw
	yZnni/jHUCsqOC0yPiinFr2TM3JyCfa1NLtMqE5N3frIVkr5LOYaCtw4miUveVoe2ntwKNvHv+e
	xmibRXcrXeDJv7LIv32TOBm2h650h4bKVh8wVz1SZnjSfv5B75avRhNbagGjWGxOjybbqoXrMxh
	sxGZwbzTV6mqyHpFYJDuTRqlCyWurB//UupTSOlJ0f7s1unxFK0amGQjulsINFL3cwCt2YTe8Bf
	4jNKumzv/vfpdUN/ohEoDxYatCCqKACjMVphaK9mxdY9lYpWp7PSrk9V71wl90gSVJ3wbEohrRQ
	Jb8SWPodB/trumHl6DqcE7mblL4ARMJpxwo0QU5QgJyE1SrjzRNxpRlOHD+MOVuyTdDplNeCKF4
	oPZBNgQrXd6Ex9CQomhH6YN/ucD5f51zBgcl6CyzJ48nh4ctELbByOdTGRR56vXnl/IK0LP+U=
X-Google-Smtp-Source: AGHT+IFNT6lKz4U6/bCSbYWIXznTxQpb7xfEzHXr9YduNTPEuMTJNyRC9ZIAWfGi4lJN0fc6b+AcEg==
X-Received: by 2002:a17:907:d22:b0:b76:b76e:112a with SMTP id a640c23a62f3a-b7d235c7f18mr248045466b.11.1765557083664;
        Fri, 12 Dec 2025 08:31:23 -0800 (PST)
Message-ID: <23de700d-7ffc-44ac-a8fe-22e69aaaaebf@gmail.com>
Date: Fri, 12 Dec 2025 17:31:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/3] xen/riscv: add RISC-V virtual SBI base extension
 support for guests
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1764582112.git.oleksii.kurochko@gmail.com>
 <d17dcac47752681eed6703360389dd542433ab3e.1764582112.git.oleksii.kurochko@gmail.com>
 <275721bc-07c2-4f69-93c2-e6d3022fee4f@suse.com>
 <5154e129-675b-4027-b97f-257559c7ea50@gmail.com>
Content-Language: en-US
In-Reply-To: <5154e129-675b-4027-b97f-257559c7ea50@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/12/25 4:25 PM, Oleksii Kurochko wrote:
> On 12/8/25 4:15 PM, Jan Beulich wrote:
>> On 01.12.2025 11:24, Oleksii Kurochko wrote:
>>> --- /dev/null
>>> +++ b/xen/arch/riscv/vsbi/vsbi-base-extension.c
>>> @@ -0,0 +1,52 @@
>>> +
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +
>>> +#include <xen/lib.h>
>>> +#include <xen/sched.h>
>>> +
>>> +#include <asm/processor.h>
>>> +#include <asm/sbi.h>
>>> +#include <asm/vsbi.h>
>>> +
>>> +extern unsigned long __ro_after_init sbi_spec_version;
>>> +extern long __ro_after_init sbi_fw_id;
>>> +extern long __ro_after_init sbi_fw_version;
>>> +
>>> +static int vsbi_base_ecall_handler(struct vcpu *vcpu, unsigned long 
>>> eid,
>>> +                                   unsigned long fid,
>>> +                                   struct cpu_user_regs *regs)
>>> +{
>>> +    int ret = 0;
>>> +    struct sbiret sbi_ret;
>>> +
>>> +    switch ( fid ) {
>>> +    case SBI_EXT_BASE_GET_SPEC_VERSION:
>>> +        regs->a1 = sbi_spec_version;
>> Wouldn't this need to be the minimum of what firmware supports and 
>> what Xen
>> supports / knows about? (Assuming backward compatibility among the spec
>> versions of course.)
>
> The base extension is mandatory (according to the spec), and based on 
> some Linux
> commits from contributors to the OpenSBI spec, it is also intended to 
> allow
> backward compatibility and probing of future extensions (although I 
> was not able
> to find this explicitly stated in the spec).
>
> However, none of this guarantees that everything else is backward 
> compatible.
> For example, the entire v0.1 SBI has been moved to the legacy 
> extension, which
> is now an optional extension. This is technically a 
> backwards-incompatible
> change because the legacy extension is optional, and v0.1 of the SBI 
> does not
> allow probing.
>
> Regarding what should be written to|regs->a1|, I think you are right: 
> it should
> be the minimum of what the firmware provides and what Xen supports. 
> Otherwise,
> if|sbi_spec_version| is set to 2.0 and we return 2.0 to the guest, the 
> guest might
> try to probe the DBGN (which Xen does not currently support) extension 
> and use
> it instead of the legacy extension for the early console.

I think we could still introduce the following in Xen:
   #define XEN_SBI_VERSION_MAJOR 0
   #define XEN_SBI_VERSION_MINOR 2
and pass it to the guest as:
   regs-> a1 = (XEN_SBI_VERSION_MAJOR << SBI_SPEC_VERSION_MAJOR_SHIFT) | XEN_SBI_VERSION_MINOR;

IMO, this should be sufficient because:
1. We can fully emulate the base extension in Xen without calling into OpenSBI.
    This covers the case where OpenSBI might return version 0.1,which is unlikely, as all
    boards with hypervisor extension support at least 0.2, and in practice even 2.0, while we
    report 0.2 to the guest.
2. Even if OpenSBI returns, for example, version 2.0 and we tell the guest that we support
    0.2, it should still be fine, as the base extension is at least backward compatible.

In other words, I think we should care only about what Xen supports and provide it to a
guest. Any concerns about that?

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 18:34:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 18:34:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185631.1507672 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU7xf-0005MC-Bl; Fri, 12 Dec 2025 18:33:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185631.1507672; Fri, 12 Dec 2025 18:33:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU7xf-0005M5-8h; Fri, 12 Dec 2025 18:33:51 +0000
Received: by outflank-mailman (input) for mailman id 1185631;
 Fri, 12 Dec 2025 18:33:50 +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
 <SRS0=hjY0=6S=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vU7xe-0005Lz-7I
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 18:33:50 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1861b2ba-d789-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 19:33:47 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 08802401A6;
 Fri, 12 Dec 2025 18:33:46 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0B7BDC4CEF1;
 Fri, 12 Dec 2025 18:33:44 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1861b2ba-d789-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765564425;
	bh=XS5oCiBPDCx8tX6GkXq9S00KHdapehlxPEv7bTdgvDc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=cpoJMSu5GKVIew++G0K3inCZZvZFIbrlyKd3oIFPuG2H+p34FF9lMwwHML4X57Iwa
	 XHdr8dA/kAZkTIJY2a3xIdmw81JREMIOY0JLPM7p7J1x0Cu0TYd/6bHWtjZeze9Mgo
	 NA9iiRpfhQQ2bbnZKV3FAEDkuDPplgaLyPBVnFR7LxfJfld183GVPC5X8TEt+YT9uR
	 yCV0LCStM+Ilu8rBH8s2gE5KofhR+u6SGLKSGiiGH6+73wLQ6fy2xMil7eqymyG84z
	 dkLMN7qljZ8bA8SaERMtO1h4lvKhGb50bAZvC1gbhY8yViX7vEf0Y/z9Es3GE71cEB
	 z7W2BwxrDFJSQ==
Date: Fri, 12 Dec 2025 10:33:41 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Andrew Cooper <andrew.cooper3@citrix.com>
cc: Xen-devel <xen-devel@lists.xenproject.org>, 
    Jan Beulich <JBeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    "consulting @ bugseng . com" <consulting@bugseng.com>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: Re: [PATCH] x86/shadow: Move GUEST_PTE_SIZE defines into types.h
In-Reply-To: <20251212160615.2486055-1-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2512121033340.381016@ubuntu-linux-20-04-desktop>
References: <20251212160615.2486055-1-andrew.cooper3@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 12 Dec 2025, Andrew Cooper wrote:
> GUEST_PTE_SIZE are only used by multi.c, but private.h gets used by code that
> doesn't have GUEST_PAGING_LEVELS defined.  Eclair notes that this is a
> violation of MISRA Rule 20.9.
> 
> Move it into types.h with the rest of the level-dependent logic lives.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


From xen-devel-bounces@lists.xenproject.org Fri Dec 12 19:00:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 19:00:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185679.1507702 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU8NS-0001u4-U5; Fri, 12 Dec 2025 19:00:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185679.1507702; Fri, 12 Dec 2025 19:00:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU8NS-0001tx-Qc; Fri, 12 Dec 2025 19:00:30 +0000
Received: by outflank-mailman (input) for mailman id 1185679;
 Fri, 12 Dec 2025 19:00:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SbWK=6S=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vU8NQ-0001RM-TG
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 19:00:28 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d04402f7-d78c-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 20:00:24 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-47a8195e515so13564425e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 11:00:23 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f4af065sm16863975e9.6.2025.12.12.11.00.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Dec 2025 11:00:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d04402f7-d78c-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765566023; x=1766170823; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=w511yEjjVrOY9NceOMj6iRd3o8y/UWDDT7EpJJDbvwU=;
        b=YCpfeaDvGsEfMGwmcvAKcGj0BItayP6Sbn/vV5g9dkbkx2Cr6r/P9LSEZl/PFhVPEM
         7EWb7JjDllcz6YQ4sdpMQIqyAod3zypoG+joSlzK5WJCc9F4brD7w8CkkVPFa4LAXXAa
         TK1CI3jLTzYMfLMLacHVzb0S6KKrHAOIR0/Ls=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765566023; x=1766170823;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=w511yEjjVrOY9NceOMj6iRd3o8y/UWDDT7EpJJDbvwU=;
        b=pOzasc3ZZV2zdPHZIKf8HXRTmZzdMhkXH/8WmBtAqWYMv3N94Cj7Enw1JDcdQnPlgO
         ReWRe6TajyDLZPWdwWMBMupPKg10NsNdMgcFDi1HiqwMORs00pacPKxMwM77UELdzXR1
         bUqQYdy7P8+7bdkEr9h70xFJdO/KYYRmf2S8+ZHZGTDupyt9WmKlHGQgcXj2i46OHSxn
         f4K3Z8iciDuGaR5Nsgi9UYB9WqdObpA6bfARNqV2Tb3vGdvCwNruvyxnE4+bprrV+kh8
         cDZVehOEYFzplRtvOwfpnzKHWFZXDoiVsfAwOxNqW+4ekWMXnHhnlYlnPVdjaWY5QPBP
         wL1g==
X-Gm-Message-State: AOJu0Yw6V8qzEg7PFLqF3z+XT9iNHMIkmhCBq/l7+pDOzvJxTndsJz+L
	wtCK24QdrAw74pzQgtBR10AjswI5ZmGtsxCBwl+h9pz5Ap63YjrbrW76VM7oSWv2vx4+KrFOfEu
	p2dUX
X-Gm-Gg: AY/fxX4u1LQLoVjtYRtNazCPce0EcS9XAo/4Ru0c2wlvqBccuItvcUjoihcECHWQUHE
	/hkYK+eTdPkF2QsycWLw0Yzqhe8GCT+bU8YDPeFP2GwlBT3OXDSCwIsMREI7k7bJfewJZvokhDP
	rGookv97jDoDWZlpclQXn0mdg2SikQ3QUGhm64LIJkwqnDLvZoeZ7+vVC+9rqXJ9nBdxn0qUaIR
	Tqmv5fOw17zeeZlWB0lcG34J3usamV22l5P6SzEwsPPVqXzfi/C7uxF2gbngmYfOxNNBDHW/NUk
	drBtXnmw47KjZCrkDqF/iHP45kFxylziOd57P5DS747jSadYZ6FWuXB5/zfk0TviSqEebvTY2Vj
	2KwIEBCUnFSOqQH17dr/9MHZb/dFTLflV3C+gsWvgfKT4YBF28RjEzDcBoBn1KRHsR5qpFVyf0t
	j4y9aLp0Fk+fZKtdIygF6pHGTzbd1RPLj623iAE67PGcde6nFGrguKUkEGUBfzUg==
X-Google-Smtp-Source: AGHT+IGJ0Fp5oDLzFajLYS6RonQsRV9QLA/st6RyYYqIHytlOOpLrwW3ZK1p9DWX/KRqV8jHeHiPjQ==
X-Received: by 2002:a05:600c:46cf:b0:477:a3d1:aafb with SMTP id 5b1f17b1804b1-47a8f90d757mr32908855e9.29.1765566022977;
        Fri, 12 Dec 2025 11:00:22 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 0/5] x86/svm: Untangle the remaining global svm/ headers
Date: Fri, 12 Dec 2025 19:00:15 +0000
Message-Id: <20251212190020.2570076-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This turned out to be a little easier than I was expecting.

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2212088192

Andrew Cooper (5):
  x86/svm: Move asm/hvm/svm/svm.h up one directory
  x86/svm: Move svm_intercept_msr() into svm.h
  x86/svm: Introduce svm-types.h
  x86/svm: Merge nestedsvm.h into svm-types.h
  x86/svm: Merge vmcb.h into svm-types.h

 xen/arch/x86/cpu-policy.c                     |  2 +-
 xen/arch/x86/cpu/vpmu_amd.c                   |  5 +-
 xen/arch/x86/domain.c                         |  2 +-
 xen/arch/x86/hvm/svm/asid.c                   |  2 +-
 xen/arch/x86/hvm/svm/emulate.c                |  3 +-
 xen/arch/x86/hvm/svm/intr.c                   |  1 -
 xen/arch/x86/hvm/svm/nestedsvm.c              |  3 +-
 xen/arch/x86/hvm/svm/svm.c                    |  3 +-
 xen/arch/x86/hvm/svm/vmcb.c                   |  3 +-
 xen/arch/x86/include/asm/hvm/domain.h         |  2 +-
 .../asm/hvm/{svm/nestedsvm.h => svm-types.h}  | 76 +++++++++++++------
 xen/arch/x86/include/asm/hvm/{svm => }/svm.h  |  8 ++
 xen/arch/x86/include/asm/hvm/svm/vmcb.h       | 63 ---------------
 xen/arch/x86/include/asm/hvm/vcpu.h           |  3 +-
 xen/arch/x86/spec_ctrl.c                      |  2 +-
 15 files changed, 73 insertions(+), 105 deletions(-)
 rename xen/arch/x86/include/asm/hvm/{svm/nestedsvm.h => svm-types.h} (52%)
 rename xen/arch/x86/include/asm/hvm/{svm => }/svm.h (86%)
 delete mode 100644 xen/arch/x86/include/asm/hvm/svm/vmcb.h


base-commit: e6836f213f0f9d3aeaf7c89ce1e20716795b37bd
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 19:00:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 19:00:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185678.1507692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU8NR-0001gM-Nk; Fri, 12 Dec 2025 19:00:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185678.1507692; Fri, 12 Dec 2025 19:00:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU8NR-0001gF-K3; Fri, 12 Dec 2025 19:00:29 +0000
Received: by outflank-mailman (input) for mailman id 1185678;
 Fri, 12 Dec 2025 19:00:27 +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
 <SRS0=SbWK=6S=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vU8NP-0000Sh-U3
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 19:00:27 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d226ec3b-d78c-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 20:00:27 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4775ae5684fso7525235e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 11:00:27 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f4af065sm16863975e9.6.2025.12.12.11.00.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Dec 2025 11:00:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d226ec3b-d78c-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765566026; x=1766170826; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3gL+Enjh91ePnBSDyCGD4ymXdSwQiUrx66mBkDlBghw=;
        b=GAFgkIia8SGUHqHwjLo+MgDEwXal1n2rn4xQnVEP/wlD6MAG+lQMzpdqnwQkpSM4iO
         yAXbRf4NQDzbHAsVzTETCvf5Ce+Zu3OZ45TER36Wa4s6h7OMW9VsyzrCNzPkCjh+EVYO
         +NCJBwQ2a6CXhHxxaVQ6FftiRXMnqKOSEGDkg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765566026; x=1766170826;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=3gL+Enjh91ePnBSDyCGD4ymXdSwQiUrx66mBkDlBghw=;
        b=mwdwKQj+EEtvswWe7Zgq2oV5YaL08os/GuGmv2fBYo8AIj2T3vpu/ynrZvyvGpeeCM
         kTLjESoSk4CN7oehUv14jVXJfxpJHia1ftYDYJEWJYP1C1jk1mofAKPmNyJPfMwRNBdy
         JhHwNWm8x5om9jYDGNh94Tfm459cvC9ncFlvrtm4aMBfSBzIyHBAgbP8YM7feFpCuBp3
         jXhnGjLfqc4CRUkc1U5SmM3Ih8LQkpsly+8BOAn27RPyjXBxP5MddhV8sT3uruxuGnRS
         0m0HmrYZFPR0f5up7y3/wYujed10w9fa+dLaherUSYMQQd47i4wQy6hDOCSgZtTua5Hr
         /zVA==
X-Gm-Message-State: AOJu0YxV73jFkpboNCfwC1fRiuCKaZKz6KKpxY94Rb94BULCxttP4YaJ
	yFxL5JWezLFGqPGZv89KJPw6ZiQ8o79/Py0hBQ/RiicpxZPGhgUYHmBNAvnEX1iK+rpURkRhXUN
	JoUKj
X-Gm-Gg: AY/fxX4bunJgHR6GqwEhAm8wtmMgflRl5dCirhkwIk9+n8PGJUl52/z470kpecb44QQ
	d3iadd2qst3kBbSDCCrJcluiEqhHdOzskbpaF4waKMIT7SmpQ+7WzXGS+TOSM+bgb1aO/Rjk0yo
	yIDSU4O2z6fRCGy6JW3YvlY+LYxW2h3fSw82CBi5T3yR/uCeiMu4raaO5qAbccdX38qlrXGf4dW
	JOI4wtmHHIAAKGCMFJDT79ODPuoJqPIKpMi6sPvFi/yB4H4v9IKCtqSyEHvnAw6HoLVpSoIZ3fU
	xJ95dU5jYYMRLq3OoTX7IfYpSNYl/1h1zTJHwzdbkcPAuzRmqfU8lWg0GdgHP9cPSD4R1aCwetc
	Tp7cRl98pg3XNhgm2pe6BFkZvwNO91cARmtc1oBGWZLdZA0/4bluQRb621Rm+bWyAkKAcl7Rs3A
	KnM5pFQlGU+2A2HdEmif8HqSHeOwPKw+W7tnpM54yjZlRAcjHpzumiiQ4Rn3oOXw==
X-Google-Smtp-Source: AGHT+IF2YyM3Nge3Hk1arDdyHtK4rfPZSN3vZVo2Suz25mW45G2SMbhU6hQaVB1ugtxKdC1Uludk7w==
X-Received: by 2002:a05:600c:1992:b0:477:1ae1:fa5d with SMTP id 5b1f17b1804b1-47a8f9055camr31813165e9.20.1765566026207;
        Fri, 12 Dec 2025 11:00:26 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 5/5] x86/svm: Merge vmcb.h into svm-types.h
Date: Fri, 12 Dec 2025 19:00:20 +0000
Message-Id: <20251212190020.2570076-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251212190020.2570076-1-andrew.cooper3@citrix.com>
References: <20251212190020.2570076-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

While doing so, make some style fixes to comments/etc.

This removes the include/asm/hvm/svm/ subdirectory.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/hvm/svm-types.h | 32 +++++++++++++-
 xen/arch/x86/include/asm/hvm/svm/vmcb.h  | 55 ------------------------
 2 files changed, 31 insertions(+), 56 deletions(-)
 delete mode 100644 xen/arch/x86/include/asm/hvm/svm/vmcb.h

diff --git a/xen/arch/x86/include/asm/hvm/svm-types.h b/xen/arch/x86/include/asm/hvm/svm-types.h
index 637b94fa37da..051b235d8f69 100644
--- a/xen/arch/x86/include/asm/hvm/svm-types.h
+++ b/xen/arch/x86/include/asm/hvm/svm-types.h
@@ -7,7 +7,37 @@
 
 #include <xen/types.h>
 
-#include <asm/hvm/svm/vmcb.h>
+struct svm_domain {
+    union {
+        uint64_t raw[2];
+        struct {
+            uint64_t length;
+            uint64_t status;
+        };
+    } osvw;
+};
+
+struct svm_vcpu {
+    struct vmcb_struct *vmcb;
+    unsigned long *msrpm;
+    uint64_t vmcb_pa;
+    int     launch_core;
+
+    uint8_t vmcb_sync_state; /* enum vmcb_sync_state */
+
+    /* VMCB has a cached instruction from #PF/#NPF Decode Assist? */
+    uint8_t cached_insn_len; /* Zero if no cached instruction. */
+
+    /*
+     * Upper four bytes are undefined in the VMCB, therefore we can't use the
+     * fields in the VMCB. Write a 64bit value and then read a 64bit value is
+     * fine unless there's a VMRUN/VMEXIT in between which clears the upper
+     * four bytes.
+     */
+    uint64_t guest_sysenter_cs;
+    uint64_t guest_sysenter_esp;
+    uint64_t guest_sysenter_eip;
+};
 
 struct nestedsvm {
     uint64_t ns_msr_hsavepa; /* MSR HSAVE_PA value */
diff --git a/xen/arch/x86/include/asm/hvm/svm/vmcb.h b/xen/arch/x86/include/asm/hvm/svm/vmcb.h
deleted file mode 100644
index d1e200df564c..000000000000
--- a/xen/arch/x86/include/asm/hvm/svm/vmcb.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * vmcb.h: VMCB related definitions
- * Copyright (c) 2005-2007, Advanced Micro Devices, Inc
- * Copyright (c) 2004, Intel Corporation.
- *
- */
-#ifndef __ASM_X86_HVM_SVM_VMCB_H__
-#define __ASM_X86_HVM_SVM_VMCB_H__
-
-#include <xen/types.h>
-
-struct svm_domain {
-    /* OSVW MSRs */
-    union {
-        uint64_t raw[2];
-        struct {
-            uint64_t length;
-            uint64_t status;
-        };
-    } osvw;
-};
-
-struct svm_vcpu {
-    struct vmcb_struct *vmcb;
-    u64    vmcb_pa;
-    unsigned long *msrpm;
-    int    launch_core;
-
-    uint8_t vmcb_sync_state; /* enum vmcb_sync_state */
-
-    /* VMCB has a cached instruction from #PF/#NPF Decode Assist? */
-    uint8_t cached_insn_len; /* Zero if no cached instruction. */
-
-    /* Upper four bytes are undefined in the VMCB, therefore we can't
-     * use the fields in the VMCB. Write a 64bit value and then read a 64bit
-     * value is fine unless there's a VMRUN/VMEXIT in between which clears
-     * the upper four bytes.
-     */
-    uint64_t guest_sysenter_cs;
-    uint64_t guest_sysenter_esp;
-    uint64_t guest_sysenter_eip;
-};
-
-#endif /* ASM_X86_HVM_SVM_VMCS_H__ */
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * tab-width: 4
- * indent-tabs-mode: nil
- * End:
- */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 19:00:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 19:00:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185681.1507722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU8NU-0002LO-Gq; Fri, 12 Dec 2025 19:00:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185681.1507722; Fri, 12 Dec 2025 19:00:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU8NU-0002KP-Cg; Fri, 12 Dec 2025 19:00:32 +0000
Received: by outflank-mailman (input) for mailman id 1185681;
 Fri, 12 Dec 2025 19:00:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SbWK=6S=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vU8NS-0001RM-Tc
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 19:00:30 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d0a28a71-d78c-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 20:00:24 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-47a80d4a065so11245315e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 11:00:24 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f4af065sm16863975e9.6.2025.12.12.11.00.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Dec 2025 11:00:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d0a28a71-d78c-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765566024; x=1766170824; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mMX8hclgzHMMe8+a0wYX8Wx4IbGSejxjaqyDoIvWwPA=;
        b=kaZ0ayhnpFJgL8Vaa6OAtDUaM/Yow9rOkofS+C9pZaC6ONQlL8sms5qSwqo12RXhM9
         Sl06VfP/W9AvhYnXVqpCfwCP3cLkulA7hE9WnfDPsk9kK/taFp767mpd4NVRapXor0Nw
         lP0CzTMLsVoO93VWS3byFQGOKFE6PPDJHos9Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765566024; x=1766170824;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=mMX8hclgzHMMe8+a0wYX8Wx4IbGSejxjaqyDoIvWwPA=;
        b=HOt2A+PnyXcwEz3LHvpVZwGSx8muG7uXArhBdLbxWMejypKeCMw0hFQTW3B3a8hNrZ
         QenrObA0mPxJ2xn48yDyY6bFB/XjtMW7qSC7Bj1SIwSfbxKmWePOoDoKgW+UJiclCsX9
         nUt66ZC4MjZiG4SyugnPRH8jEbTr1C35QzGbuHYGFCJRDc2dQvR2NlgTZv1E6zjYbzC/
         p/SNPWN0wk/QUzgEAkyxlZNG8k9JC7hIGz6L/Z6QPNfCwDMdIA2vl2qR/kUU9bmy7hNi
         pUC/AIRgyOl/5b/ugrV6RzakhOdCdLz5v9OW9x7hhACd02MkL036xl+/4mAdXX3ayHzR
         umug==
X-Gm-Message-State: AOJu0YxcGnmN6l39pZHhUGBODRgCj6wqXEGBCqVPohuAnQUPm44BATo0
	J5SAvvvSXDhmCE69P2ndTqQ3m4bxquckEPv48y43bdcLP7Q666LKTGhvAIl9uVRVp34fBjxboU+
	msZn7
X-Gm-Gg: AY/fxX6XwD0vOaQ1miyb+FnY80SyhIwjtHX4RdFqxPNXMQeSP7VCOPg9U9dGOiGjrt5
	bOdmMNRDdzjCRFz4CHaaQe67ypQNviuRidH2ZlOAjHaD7xYM3/Lq5UwrSzQf+GUVkx6YTxvp3co
	Uu0qE6iryYTAk7AiAd3qJD38uKVNNATUmqCnZIZaJawG08w1FDENCal7o3sIVTpTBmrgmvyePIn
	2f68UPrRonJ6ZguBtcO6iQQ/I4eOSesXTN+rn7V2hm6kD0hHoNkkLUL9axLnMUZfqwy0cez0EUI
	pvXSVQimn8GniZALQ08euRwwzThaioWDrzqlbgz/gQK/fOXpcr08JZT3OM7zCWpE9kTDHZLN9bN
	U/6kEvo6oPhOTJIOyBdY7erEnMVqb2I+ult/u1a67R+hI4fDUPZwF9cmyZ5p5G2WmDzbAaiK1XC
	ouI9/jZSAWD8jze0LdYOGOvP793zU8WBTkC4NImDlAwZmrfhYMXw6QAGvFbuLuvg==
X-Google-Smtp-Source: AGHT+IHFvn0wOVqXzITgjJLH/rXW3nvF60trf6a8xKufUBoAf80GilgiecqjjBzI8Ji1FcpYs0vvxw==
X-Received: by 2002:a05:600c:34cd:b0:475:daba:d03c with SMTP id 5b1f17b1804b1-47a8f8c1d1amr32991535e9.13.1765566023636;
        Fri, 12 Dec 2025 11:00:23 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 1/5] x86/svm: Move asm/hvm/svm/svm.h up one directory
Date: Fri, 12 Dec 2025 19:00:16 +0000
Message-Id: <20251212190020.2570076-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251212190020.2570076-1-andrew.cooper3@citrix.com>
References: <20251212190020.2570076-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... in preparation to remove the svm/ directory entirely.

intr.c doesn't need to include svm.h at all.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/cpu-policy.c                    | 2 +-
 xen/arch/x86/domain.c                        | 2 +-
 xen/arch/x86/hvm/svm/asid.c                  | 2 +-
 xen/arch/x86/hvm/svm/emulate.c               | 2 +-
 xen/arch/x86/hvm/svm/intr.c                  | 1 -
 xen/arch/x86/hvm/svm/nestedsvm.c             | 2 +-
 xen/arch/x86/hvm/svm/svm.c                   | 2 +-
 xen/arch/x86/hvm/svm/vmcb.c                  | 2 +-
 xen/arch/x86/include/asm/hvm/{svm => }/svm.h | 0
 xen/arch/x86/spec_ctrl.c                     | 2 +-
 10 files changed, 8 insertions(+), 9 deletions(-)
 rename xen/arch/x86/include/asm/hvm/{svm => }/svm.h (100%)

diff --git a/xen/arch/x86/cpu-policy.c b/xen/arch/x86/cpu-policy.c
index 0a7ef15f7210..372d11f2ff20 100644
--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -9,7 +9,7 @@
 #include <asm/amd.h>
 #include <asm/cpu-policy.h>
 #include <asm/hvm/nestedhvm.h>
-#include <asm/hvm/svm/svm.h>
+#include <asm/hvm/svm.h>
 #include <asm/intel-family.h>
 #include <asm/msr-index.h>
 #include <asm/paging.h>
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index b15120180993..7632d5e2d62d 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -48,7 +48,7 @@
 #include <asm/guest-msr.h>
 #include <asm/hvm/hvm.h>
 #include <asm/hvm/nestedhvm.h>
-#include <asm/hvm/svm/svm.h>
+#include <asm/hvm/svm.h>
 #include <asm/hvm/viridian.h>
 #include <asm/i387.h>
 #include <asm/idt.h>
diff --git a/xen/arch/x86/hvm/svm/asid.c b/xen/arch/x86/hvm/svm/asid.c
index 0e115243a3af..53aa5d05125f 100644
--- a/xen/arch/x86/hvm/svm/asid.c
+++ b/xen/arch/x86/hvm/svm/asid.c
@@ -6,7 +6,7 @@
 
 #include <asm/amd.h>
 #include <asm/hvm/nestedhvm.h>
-#include <asm/hvm/svm/svm.h>
+#include <asm/hvm/svm.h>
 
 #include "svm.h"
 #include "vmcb.h"
diff --git a/xen/arch/x86/hvm/svm/emulate.c b/xen/arch/x86/hvm/svm/emulate.c
index d8aa45590885..be3a710fa53d 100644
--- a/xen/arch/x86/hvm/svm/emulate.c
+++ b/xen/arch/x86/hvm/svm/emulate.c
@@ -11,7 +11,7 @@
 #include <asm/msr.h>
 #include <asm/hvm/emulate.h>
 #include <asm/hvm/hvm.h>
-#include <asm/hvm/svm/svm.h>
+#include <asm/hvm/svm.h>
 #include <asm/hvm/svm/vmcb.h>
 
 #include "svm.h"
diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
index 931973a9fad4..702c071e8962 100644
--- a/xen/arch/x86/hvm/svm/intr.c
+++ b/xen/arch/x86/hvm/svm/intr.c
@@ -17,7 +17,6 @@
 #include <asm/hvm/hvm.h>
 #include <asm/hvm/io.h>
 #include <asm/hvm/vlapic.h>
-#include <asm/hvm/svm/svm.h>
 #include <asm/hvm/nestedhvm.h> /* for nestedhvm_vcpu_in_guestmode */
 #include <asm/vm_event.h>
 #include <xen/event.h>
diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
index 63ed6c86b775..5718ca7f7f0f 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -6,7 +6,7 @@
  */
 
 #include <asm/hvm/support.h>
-#include <asm/hvm/svm/svm.h>
+#include <asm/hvm/svm.h>
 #include <asm/hvm/svm/vmcb.h>
 #include <asm/hvm/nestedhvm.h>
 #include <asm/paging.h> /* paging_mode_hap */
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 15d45cbb57c5..86a030b02c27 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -26,7 +26,7 @@
 #include <asm/hvm/monitor.h>
 #include <asm/hvm/nestedhvm.h>
 #include <asm/hvm/support.h>
-#include <asm/hvm/svm/svm.h>
+#include <asm/hvm/svm.h>
 #include <asm/hvm/svm/vmcb.h>
 #include <asm/i387.h>
 #include <asm/idt.h>
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index 7bde6e98ce03..463e527a7d98 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -15,7 +15,7 @@
 #include <xen/softirq.h>
 
 #include <asm/guest-msr.h>
-#include <asm/hvm/svm/svm.h>
+#include <asm/hvm/svm.h>
 #include <asm/hvm/svm/vmcb.h>
 #include <asm/msr-index.h>
 #include <asm/p2m.h>
diff --git a/xen/arch/x86/include/asm/hvm/svm/svm.h b/xen/arch/x86/include/asm/hvm/svm.h
similarity index 100%
rename from xen/arch/x86/include/asm/hvm/svm/svm.h
rename to xen/arch/x86/include/asm/hvm/svm.h
diff --git a/xen/arch/x86/spec_ctrl.c b/xen/arch/x86/spec_ctrl.c
index e71f62c60186..dd0413e1fc13 100644
--- a/xen/arch/x86/spec_ctrl.c
+++ b/xen/arch/x86/spec_ctrl.c
@@ -11,7 +11,7 @@
 #include <xen/warning.h>
 
 #include <asm/amd.h>
-#include <asm/hvm/svm/svm.h>
+#include <asm/hvm/svm.h>
 #include <asm/intel-family.h>
 #include <asm/microcode.h>
 #include <asm/msr.h>
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 19:00:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 19:00:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185680.1507707 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU8NT-0001xE-8n; Fri, 12 Dec 2025 19:00:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185680.1507707; Fri, 12 Dec 2025 19:00:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU8NT-0001w0-1l; Fri, 12 Dec 2025 19:00:31 +0000
Received: by outflank-mailman (input) for mailman id 1185680;
 Fri, 12 Dec 2025 19:00:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SbWK=6S=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vU8NR-0001RM-TQ
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 19:00:29 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d10319c6-d78c-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 20:00:25 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4779a637712so11208865e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 11:00:25 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f4af065sm16863975e9.6.2025.12.12.11.00.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Dec 2025 11:00:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d10319c6-d78c-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765566024; x=1766170824; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4dLK03IrT6Fyyeaqxy4fKDrRO6QQiKG3aEO82LTQDBc=;
        b=D0DFeOHz+JHF3DSVjfwdtjAHxp43jPaDtEPIoZ3hM3QLFnKLlR1XlWQ/mmvEQPdUJl
         z2KWJGjHcGjXRJsvuMzjhjYW8QujwBFcA33KVvqrEUCGwvTtcKH2RDIKr5Jmk/ybBwFc
         IC2oepPvhDgl51/njtYsfKCj1+BjbEHvMysnQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765566024; x=1766170824;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=4dLK03IrT6Fyyeaqxy4fKDrRO6QQiKG3aEO82LTQDBc=;
        b=fDzDeWnBWXZXdWNr9yPC5WrOjRNAaktsf8JO6XCFGRTjXzK8gBtIqoJmc945sKJ0/1
         dp/esJM/gVa+L7PMofx1NvvFzMog/od1dgxdeZJyIQusQGPA+NL4T3mF6oA50PUazDTB
         ZVWNnYsryMchAxilY9T0811iY4Atuxxp9afw+zNRGk9ebHr43drqYRgIaut5+XW5zqW2
         xHp+F0LHwMYTJgXYNkafnJvTkfn6ZyESh28qCmYx1VLsVt/6oxdJ/SoWzH1jE+yYt+qx
         Y4OxdZO/d2Q/zI0OjlytypK7edrfdZtF6EmHNQCHv+TVIEhojMTILmzynDSEKSLWzD/E
         9BhA==
X-Gm-Message-State: AOJu0YwQ9Es3a0Xaagw2VD+LPsCgVOJW7kevZ1kAPIogLuTF8ILAvBMc
	2zFGvQRa3Lk7zv4M3riMdvAfVDkJ9CE4uI1ph6K39xOXLbhsbJwhT0XVLj3RGrRGty7EZwpMK0b
	d8Ah7
X-Gm-Gg: AY/fxX4ar+fMqZisuIeL5Ln7Hw5RpojRu7JTwLTqUsVHsFeNDVYbWKxvCTMQjpDax7x
	BDYBtqjrSuH58QVdNypGBVjTNSZuiE8THxAa6hai9ouAoIOCy3/ZiyyiguFSPDlnO40cPYmfFTl
	UDb6LG6C6QYs8WeOA44HWL+KGyq4Q+Kos4Mqn5iT6b4qCRZkQwTzdHpraE6D7g01zRyHSYhPwsA
	I5moabl0mjFjsxouoQ+sdTnobz5u5RGwidVlB54XyFxW8Fsmy2oPu5IhHFrbx5MpJkBsSXNQdas
	TJlop0LkDJP+uL5NDv4rFU+lIb10RFJz3SQ6x/8SDRnfeipR0cwQyuXS3u7aKqZKcTHhD2hMOJA
	Px4Q779SnJYdUiZ9WU5QCQccqpDefy0klfDjyDKyI5uT6juvtBDh6g2N33G0CZ4HwueRyslw3lb
	Ss56L2MK2tqASKdxLpLHh6eEV0ATtEw8LnCHL/B5b4Xi/gct6bYcHYCR8hg72cIQ==
X-Google-Smtp-Source: AGHT+IFSu+4j4uKTL7ZzLVe4hYU2KGDe/v8kpe17wS59/wud3nTCjaYW2CY1kTFKgicub3chQXPY0Q==
X-Received: by 2002:a05:600c:8b67:b0:471:14af:c715 with SMTP id 5b1f17b1804b1-47a8f8a6d83mr25900215e9.3.1765566024307;
        Fri, 12 Dec 2025 11:00:24 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 2/5] x86/svm: Move svm_intercept_msr() into svm.h
Date: Fri, 12 Dec 2025 19:00:17 +0000
Message-Id: <20251212190020.2570076-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251212190020.2570076-1-andrew.cooper3@citrix.com>
References: <20251212190020.2570076-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The single user of svm_intercept_msr() outside of the main svm logic is in
vpmu_amd.c.  Currently the declaration is picked up transitively through
xen/sched.h, so include asm/hvm/svm.h explicitly.

Sort the headers while doing so.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/cpu/vpmu_amd.c             | 5 ++++-
 xen/arch/x86/include/asm/hvm/svm.h      | 8 ++++++++
 xen/arch/x86/include/asm/hvm/svm/vmcb.h | 8 --------
 3 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/cpu/vpmu_amd.c b/xen/arch/x86/cpu/vpmu_amd.c
index a6117dfebf2a..fa157d45dd01 100644
--- a/xen/arch/x86/cpu/vpmu_amd.c
+++ b/xen/arch/x86/cpu/vpmu_amd.c
@@ -13,10 +13,13 @@
 #include <xen/err.h>
 #include <xen/sched.h>
 #include <xen/xenoprof.h>
+
 #include <asm/apic.h>
-#include <asm/vpmu.h>
 #include <asm/hvm/save.h>
+#include <asm/hvm/svm.h>
 #include <asm/hvm/vlapic.h>
+#include <asm/vpmu.h>
+
 #include <public/pmu.h>
 
 #define MSR_F10H_EVNTSEL_GO_SHIFT   40
diff --git a/xen/arch/x86/include/asm/hvm/svm.h b/xen/arch/x86/include/asm/hvm/svm.h
index 4eeeb25da90c..a6d7e4aed3b1 100644
--- a/xen/arch/x86/include/asm/hvm/svm.h
+++ b/xen/arch/x86/include/asm/hvm/svm.h
@@ -57,4 +57,12 @@ static inline bool cpu_has_svm_feature(unsigned int feat)
 #define cpu_has_svm_sss       cpu_has_svm_feature(SVM_FEATURE_SSS)
 #define cpu_has_svm_spec_ctrl cpu_has_svm_feature(SVM_FEATURE_SPEC_CTRL)
 
+#define MSR_INTERCEPT_NONE    0
+#define MSR_INTERCEPT_READ    1
+#define MSR_INTERCEPT_WRITE   2
+#define MSR_INTERCEPT_RW      (MSR_INTERCEPT_WRITE | MSR_INTERCEPT_READ)
+void svm_intercept_msr(struct vcpu *v, uint32_t msr, int flags);
+#define svm_disable_intercept_for_msr(v, msr) svm_intercept_msr((v), (msr), MSR_INTERCEPT_NONE)
+#define svm_enable_intercept_for_msr(v, msr) svm_intercept_msr((v), (msr), MSR_INTERCEPT_RW)
+
 #endif /* __ASM_X86_HVM_SVM_H__ */
diff --git a/xen/arch/x86/include/asm/hvm/svm/vmcb.h b/xen/arch/x86/include/asm/hvm/svm/vmcb.h
index 41bcc9f0d862..d1e200df564c 100644
--- a/xen/arch/x86/include/asm/hvm/svm/vmcb.h
+++ b/xen/arch/x86/include/asm/hvm/svm/vmcb.h
@@ -42,14 +42,6 @@ struct svm_vcpu {
     uint64_t guest_sysenter_eip;
 };
 
-#define MSR_INTERCEPT_NONE    0
-#define MSR_INTERCEPT_READ    1
-#define MSR_INTERCEPT_WRITE   2
-#define MSR_INTERCEPT_RW      (MSR_INTERCEPT_WRITE | MSR_INTERCEPT_READ)
-void svm_intercept_msr(struct vcpu *v, uint32_t msr, int flags);
-#define svm_disable_intercept_for_msr(v, msr) svm_intercept_msr((v), (msr), MSR_INTERCEPT_NONE)
-#define svm_enable_intercept_for_msr(v, msr) svm_intercept_msr((v), (msr), MSR_INTERCEPT_RW)
-
 #endif /* ASM_X86_HVM_SVM_VMCS_H__ */
 
 /*
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 19:00:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 19:00:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185677.1507681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU8NQ-0001Sq-BM; Fri, 12 Dec 2025 19:00:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185677.1507681; Fri, 12 Dec 2025 19:00:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU8NQ-0001Sj-8b; Fri, 12 Dec 2025 19:00:28 +0000
Received: by outflank-mailman (input) for mailman id 1185677;
 Fri, 12 Dec 2025 19:00:26 +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
 <SRS0=SbWK=6S=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vU8NO-0000Sh-MF
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 19:00:26 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d1647683-d78c-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 20:00:25 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso15142255e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 11:00:25 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f4af065sm16863975e9.6.2025.12.12.11.00.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Dec 2025 11:00:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d1647683-d78c-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765566025; x=1766170825; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MVb9ekhD4Wc0C53D3BLiFybhruazQrTOGwycCd8VZjI=;
        b=vQHkVPmuXe+07aEa+5KlAoVUhkUDDCVP9QmqrO39t6ykjUGMUgJpNl2gKGJST4eORv
         qRggq52lKiUmpCeNSMK97W2fGDiGVN+AEwwDHWu7gzRfBGlNGLA+B2/vg33DUjW1oHGm
         6Jhucz3IJG3iTwVITkPEOwB6If46sACXv4gS0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765566025; x=1766170825;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=MVb9ekhD4Wc0C53D3BLiFybhruazQrTOGwycCd8VZjI=;
        b=GjuuRqA3hLQM3oKYs+8Ftls6piopu5XjAC2fYtIjAKdNIEUJcDYh2lwx2OJ5TwZsmo
         QCWoh5fews5bVvzT6rXNjYylCUsA2v6zDUKeTfYmEO7Qkh8nkBZBVHikWrZ+1LZhyW7u
         BWtFLed+UTYjl+o7HvUDWxQk/H8vWOjGMXcbYpjx/GMWUR9gqZ43GbOY+FTv/nnqHVaJ
         5YNCEYPlVeZVRIPW3AClGylSRPjgq+vdXbO4vRcpxNYe4Tb5qmxfYND/RlHGdf00Bl5K
         D5BK2CnxTA53N18MGOlLVs1b9OCwF0a71AXtOUzJz2MO4z5CAOrqxtFbdkYibB74cVfY
         LPow==
X-Gm-Message-State: AOJu0YwNEv6sBM4QOaLDVmPvyGj7q45LV/bVLPSYsEITg/98W/Lv1G3A
	R//YppDBLVnT2JUzkuVpfoxgCay5ItgUNqY3G3+t+OK3WO5VBlCeV7dYe/RlbSS5bp7RAnzss7k
	4CZt1
X-Gm-Gg: AY/fxX6S0USIIPlnlvXR7YsGimjExTsQVNzPo4aVaqe2YKm/lf0HEfLBLLp776q1oEP
	OGHAMqg6Dtb1jYvc99bLTl53p+G9v6WnlHKLG3f0ghU12Daxr/bkIyIVXwu2G8EOT2rWiykQq/T
	me4vIvEsCznD2kFEuKPnwe53QH/oaabXfTl8S5y5/pQ2Y549XSXm59HxsD3uMGdE4iMqo5CMoVL
	9mGLPnfeErNt83IKpTOlzo5SQuQthjWnafLJBZ2Vu3ODAD6s+Q3Edq3DdHYn5q8O3Qbsb0XPXDR
	u/fYzOcWUFSFA7fnkAeUheaGHr1ZA51H4fSblug3DAmKFLyAs7qUFTppGLo5AvHdTR3Q+I7+Nxf
	P4pACSCdeb6OpoHnx2/8Yd18CrIoDp+9jYJODBtm6ZFrjZdw/TAcXM0cN/jPuz8cZYRdUcPfPYp
	rSeS0PvWpPPzFU5eO76xBMn8JFcyQac/kAs11oAVanVNgfvhcODl9IQ32Gf5ek+g==
X-Google-Smtp-Source: AGHT+IEI+vKlzk2aTjGDWjBJULU4xgcp9jDk3EiraNPCvv45g3F7X85rp1tka0ppu18c6q/8apu/QQ==
X-Received: by 2002:a05:600c:4e45:b0:477:9d88:2da6 with SMTP id 5b1f17b1804b1-47a8faaf533mr26206265e9.0.1765566024938;
        Fri, 12 Dec 2025 11:00:24 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 3/5] x86/svm: Introduce svm-types.h
Date: Fri, 12 Dec 2025 19:00:18 +0000
Message-Id: <20251212190020.2570076-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251212190020.2570076-1-andrew.cooper3@citrix.com>
References: <20251212190020.2570076-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In order to reduce the header tangle around xen/sched.h, we need to split
types away from other declarations.

Introduce a new svm/svm-types.h to do this, including it from hvm/domain.h and
hvm/vcpu.h, and dropping all other inclusions of svm/vmcb.h and
svm/nestedhvm.h

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/hvm/svm/emulate.c           |  1 -
 xen/arch/x86/hvm/svm/nestedsvm.c         |  1 -
 xen/arch/x86/hvm/svm/svm.c               |  1 -
 xen/arch/x86/hvm/svm/vmcb.c              |  1 -
 xen/arch/x86/include/asm/hvm/domain.h    |  2 +-
 xen/arch/x86/include/asm/hvm/svm-types.h | 11 +++++++++++
 xen/arch/x86/include/asm/hvm/vcpu.h      |  3 +--
 7 files changed, 13 insertions(+), 7 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/hvm/svm-types.h

diff --git a/xen/arch/x86/hvm/svm/emulate.c b/xen/arch/x86/hvm/svm/emulate.c
index be3a710fa53d..1f5436c8ea5d 100644
--- a/xen/arch/x86/hvm/svm/emulate.c
+++ b/xen/arch/x86/hvm/svm/emulate.c
@@ -12,7 +12,6 @@
 #include <asm/hvm/emulate.h>
 #include <asm/hvm/hvm.h>
 #include <asm/hvm/svm.h>
-#include <asm/hvm/svm/vmcb.h>
 
 #include "svm.h"
 #include "vmcb.h"
diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
index 5718ca7f7f0f..a63ec613465f 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -7,7 +7,6 @@
 
 #include <asm/hvm/support.h>
 #include <asm/hvm/svm.h>
-#include <asm/hvm/svm/vmcb.h>
 #include <asm/hvm/nestedhvm.h>
 #include <asm/paging.h> /* paging_mode_hap */
 #include <asm/event.h> /* for local_event_delivery_(en|dis)able */
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 86a030b02c27..1208999454d3 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -27,7 +27,6 @@
 #include <asm/hvm/nestedhvm.h>
 #include <asm/hvm/support.h>
 #include <asm/hvm/svm.h>
-#include <asm/hvm/svm/vmcb.h>
 #include <asm/i387.h>
 #include <asm/idt.h>
 #include <asm/iocap.h>
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index 463e527a7d98..cbee10d0463d 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -16,7 +16,6 @@
 
 #include <asm/guest-msr.h>
 #include <asm/hvm/svm.h>
-#include <asm/hvm/svm/vmcb.h>
 #include <asm/msr-index.h>
 #include <asm/p2m.h>
 #include <asm/spec_ctrl.h>
diff --git a/xen/arch/x86/include/asm/hvm/domain.h b/xen/arch/x86/include/asm/hvm/domain.h
index 83be2bd1c29c..be1a0d8c5b9f 100644
--- a/xen/arch/x86/include/asm/hvm/domain.h
+++ b/xen/arch/x86/include/asm/hvm/domain.h
@@ -15,7 +15,7 @@
 
 #include <asm/hvm/io.h>
 #include <asm/hvm/vmx/vmcs.h>
-#include <asm/hvm/svm/vmcb.h>
+#include <asm/hvm/svm-types.h>
 
 #ifdef CONFIG_MEM_SHARING
 struct mem_sharing_domain
diff --git a/xen/arch/x86/include/asm/hvm/svm-types.h b/xen/arch/x86/include/asm/hvm/svm-types.h
new file mode 100644
index 000000000000..1c26daa981a7
--- /dev/null
+++ b/xen/arch/x86/include/asm/hvm/svm-types.h
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * SVM types needed to form struct domain/vcpu.
+ */
+#ifndef X86_SVM_TYPES_H
+#define X86_SVM_TYPES_H
+
+#include <asm/hvm/svm/vmcb.h>
+#include <asm/hvm/svm/nestedsvm.h>
+
+#endif /* X86_SVM_TYPES_H */
diff --git a/xen/arch/x86/include/asm/hvm/vcpu.h b/xen/arch/x86/include/asm/hvm/vcpu.h
index eae9ac53767b..836138a4a677 100644
--- a/xen/arch/x86/include/asm/hvm/vcpu.h
+++ b/xen/arch/x86/include/asm/hvm/vcpu.h
@@ -12,8 +12,7 @@
 #include <asm/hvm/vlapic.h>
 #include <asm/hvm/vmx/vmcs.h>
 #include <asm/hvm/vmx/vvmx.h>
-#include <asm/hvm/svm/vmcb.h>
-#include <asm/hvm/svm/nestedsvm.h>
+#include <asm/hvm/svm-types.h>
 #include <asm/mtrr.h>
 #include <public/hvm/ioreq.h>
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 19:00:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 19:00:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185682.1507732 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU8NW-0002cl-0Y; Fri, 12 Dec 2025 19:00:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185682.1507732; Fri, 12 Dec 2025 19:00:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU8NV-0002cU-T7; Fri, 12 Dec 2025 19:00:33 +0000
Received: by outflank-mailman (input) for mailman id 1185682;
 Fri, 12 Dec 2025 19:00:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SbWK=6S=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vU8NT-0001RM-Tp
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 19:00:31 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d1c553f4-d78c-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 20:00:26 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-477aa218f20so10887735e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 11:00:26 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f4af065sm16863975e9.6.2025.12.12.11.00.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Dec 2025 11:00:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d1c553f4-d78c-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765566025; x=1766170825; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ps58niqN4uMF+QvTxFnqL3rpQIPJOM5Dbdsk2f6ndKM=;
        b=rQXKKXrnffc6Em9tBU9yy6CYBh7ISw/GtOIjhTsmK353I9psGFLgQ2UQNqlGlqxyNM
         Ejov3SUypcYXuxPFYA3tr9gi+FSp5BA3lEb0H2SVUCB2P7MRef7zFZYoaCnLSO12WrkD
         XtRJDwzCojFzlxhz8cdoSWcvh7ViNlvU7VPGo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765566025; x=1766170825;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ps58niqN4uMF+QvTxFnqL3rpQIPJOM5Dbdsk2f6ndKM=;
        b=IM/yqLOmfYxhWfu7qgeG3s9zZ5fgqqdoNVYKQHZHKD8kEQbYVyD0Vu6ntNI6EjUE0h
         Y+qAIhDMK6VCjeeAUrHvkhNF9X+uE40ssRnYAGfR5uAfmCAeLCHixQKTu/Ks6tMhzC8Y
         oUZZOZzoeyHo1yr5oZnpX8e0hCeKkCLqt5I/hyrp/RZYreAIQtblz6pxsW/P9L4uFomK
         BB3x24ZrtyIoV3y7g4vFt9/W5+IyknaVMJpMy1latkmPljDwZ6ROfjF/90IwbNXIjWe7
         FQUbDLpXrnFPyMFI52M4kBB0wi7VjycdtP0tTqX/AKOD8zIxz7zkwf+GfLTVZMuVINCg
         k/0Q==
X-Gm-Message-State: AOJu0Yx0DLKMfddJkXJOrhQUsHJapgkyVJxi1zVRzAuiTEqVrMqeX3g0
	UBidWjj2AiiePmLyDBp28/bYDUlkWGJWtqW1Qmh8AE4lrQwU1URwGvNYc0CLQAUiWsc7nrhC6JZ
	WnQaJ
X-Gm-Gg: AY/fxX4EQgBWlrQ3Pwt80A3VCWoksBeBzXmWICHvsJchdZqcKa1FTTe/2s1qvMQpncn
	ydIgkyzGLCMx+xvVudmOGHimL2k5vK+k1l1RnwDshGH2dWYAc/9xRN4OxtzvxHdjf55pWctnECI
	h7y3JGpfd9kL3Y2TCIFKtwzvwIcPFimp2c9z6VwvOka1+bklwpP5dzhp4LrFlcG9XED9T0dTtud
	pktuWdbgWBEhiEO2pHXJqcTrtOxNhwJkQlNBFEJfTAOs0gECKagSVlAJ0q7Dz64EDvSy8U5ZsWZ
	TA4/+XI4Kxfv5JM4jhtNbpWELGsy3oAq2LZWzl1JiT6P/1BqqJyW0ehZ1TBfMPiTQeDoVE1cjaq
	eXz1Olcsx6CoVO0rLIpvmcFhwvXdVvqHyOEsP0pyxrX37eP4PdYCM6VYK6AHjSzlU1weIGrSUDJ
	Srojgc9uLIMQtecpJpFLfV46PXxqC/bLNIJl6rH9Y4O7XmYVngJQpaBJSrJHwIwh8z6F5rL86i
X-Google-Smtp-Source: AGHT+IF2qe996kPERecRDoM8QDX/3zB5zvYJGrTiyLOU8tcL3/NKmQ859lEMGlquUYzV+H9OAcEtvA==
X-Received: by 2002:a05:600c:3e1a:b0:477:afc5:fb02 with SMTP id 5b1f17b1804b1-47a8f9051c4mr34560195e9.21.1765566025573;
        Fri, 12 Dec 2025 11:00:25 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 4/5] x86/svm: Merge nestedsvm.h into svm-types.h
Date: Fri, 12 Dec 2025 19:00:19 +0000
Message-Id: <20251212190020.2570076-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251212190020.2570076-1-andrew.cooper3@citrix.com>
References: <20251212190020.2570076-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

While doing so, move the ns_gif field to beside ns_hap_enabled to remove 7
padding bytes, and make some style fixes to comments/etc.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/hvm/svm-types.h     | 66 +++++++++++++++-
 xen/arch/x86/include/asm/hvm/svm/nestedsvm.h | 79 --------------------
 2 files changed, 65 insertions(+), 80 deletions(-)
 delete mode 100644 xen/arch/x86/include/asm/hvm/svm/nestedsvm.h

diff --git a/xen/arch/x86/include/asm/hvm/svm-types.h b/xen/arch/x86/include/asm/hvm/svm-types.h
index 1c26daa981a7..637b94fa37da 100644
--- a/xen/arch/x86/include/asm/hvm/svm-types.h
+++ b/xen/arch/x86/include/asm/hvm/svm-types.h
@@ -5,7 +5,71 @@
 #ifndef X86_SVM_TYPES_H
 #define X86_SVM_TYPES_H
 
+#include <xen/types.h>
+
 #include <asm/hvm/svm/vmcb.h>
-#include <asm/hvm/svm/nestedsvm.h>
+
+struct nestedsvm {
+    uint64_t ns_msr_hsavepa; /* MSR HSAVE_PA value */
+
+    /*
+     * l1 guest physical address of virtual vmcb used by prior VMRUN.  Needed
+     * for VMCB Cleanbit emulation.
+     */
+    uint64_t ns_ovvmcb_pa;
+
+    /* Cached real intercepts of the l2 guest */
+    uint32_t ns_cr_intercepts;
+    uint32_t ns_dr_intercepts;
+    uint32_t ns_exception_intercepts;
+    uint32_t ns_general1_intercepts;
+    uint32_t ns_general2_intercepts;
+
+    /* Cached real MSR permission bitmaps of the l2 guest */
+    unsigned long *ns_cached_msrpm;
+    /* Merged MSR permission bitmap */
+    unsigned long *ns_merged_msrpm;
+
+    /* guest physical address of virtual io permission map */
+    paddr_t ns_iomap_pa, ns_oiomap_pa;
+    /* Shadow io permission map */
+    unsigned long *ns_iomap;
+
+     /*
+      * Cached guest_cr[0] of l1 guest while l2 guest runs.  Needed to handle
+      * FPU context switching.
+      */
+    uint64_t ns_cr0;
+
+    /*
+     * Cache guest cr3/host cr3 the guest sets up for the l2 guest.
+     * Used by Shadow-on-Shadow and Nested-on-Nested.
+     * ns_vmcb_guestcr3: in l2 guest physical address space and points to
+     *     the l2 guest page table
+     * ns_vmcb_hostcr3: in l1 guest physical address space and points to
+     *     the l1 guest nested page table
+     */
+    uint64_t ns_vmcb_guestcr3, ns_vmcb_hostcr3;
+    uint32_t ns_asid;
+
+    bool ns_gif;
+    bool ns_hap_enabled;
+
+    /* Only meaningful when vmexit_pending flag is set */
+    struct {
+        uint64_t exitcode;  /* native exitcode to inject into l1 guest */
+        uint64_t exitinfo1; /* additional information to the exitcode */
+        uint64_t exitinfo2; /* additional information to the exitcode */
+    } ns_vmexit;
+
+    union {
+        uint32_t bytes;
+        struct {
+            uint32_t rflagsif:1;
+            uint32_t vintrmask:1;
+            uint32_t reserved:30;
+        } fields;
+    } ns_hostflags;
+};
 
 #endif /* X86_SVM_TYPES_H */
diff --git a/xen/arch/x86/include/asm/hvm/svm/nestedsvm.h b/xen/arch/x86/include/asm/hvm/svm/nestedsvm.h
deleted file mode 100644
index 205989e80095..000000000000
--- a/xen/arch/x86/include/asm/hvm/svm/nestedsvm.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * nestedsvm.h: Nested Virtualization
- * Copyright (c) 2011, Advanced Micro Devices, Inc
- *
- */
-#ifndef __ASM_X86_HVM_SVM_NESTEDSVM_H__
-#define __ASM_X86_HVM_SVM_NESTEDSVM_H__
-
-#include <xen/types.h>
-
-struct nestedsvm {
-    bool ns_gif;
-    uint64_t ns_msr_hsavepa; /* MSR HSAVE_PA value */
-
-    /* l1 guest physical address of virtual vmcb used by prior VMRUN.
-     * Needed for VMCB Cleanbit emulation.
-     */
-    uint64_t ns_ovvmcb_pa;
-
-    /* Cached real intercepts of the l2 guest */
-    uint32_t ns_cr_intercepts;
-    uint32_t ns_dr_intercepts;
-    uint32_t ns_exception_intercepts;
-    uint32_t ns_general1_intercepts;
-    uint32_t ns_general2_intercepts;
-
-    /* Cached real MSR permission bitmaps of the l2 guest */
-    unsigned long *ns_cached_msrpm;
-    /* Merged MSR permission bitmap */
-    unsigned long *ns_merged_msrpm;
-
-    /* guest physical address of virtual io permission map */
-    paddr_t ns_iomap_pa, ns_oiomap_pa;
-    /* Shadow io permission map */
-    unsigned long *ns_iomap;
-
-    uint64_t ns_cr0; /* Cached guest_cr[0] of l1 guest while l2 guest runs.
-                      * Needed to handle FPU context switching */
-
-    /* Cache guest cr3/host cr3 the guest sets up for the l2 guest.
-     * Used by Shadow-on-Shadow and Nested-on-Nested.
-     * ns_vmcb_guestcr3: in l2 guest physical address space and points to
-     *     the l2 guest page table
-     * ns_vmcb_hostcr3: in l1 guest physical address space and points to
-     *     the l1 guest nested page table
-     */
-    uint64_t ns_vmcb_guestcr3, ns_vmcb_hostcr3;
-    uint32_t ns_asid;
-
-    bool ns_hap_enabled;
-
-    /* Only meaningful when vmexit_pending flag is set */
-    struct {
-        uint64_t exitcode;  /* native exitcode to inject into l1 guest */
-        uint64_t exitinfo1; /* additional information to the exitcode */
-        uint64_t exitinfo2; /* additional information to the exitcode */
-    } ns_vmexit;
-    union {
-        uint32_t bytes;
-        struct {
-            uint32_t rflagsif: 1;
-            uint32_t vintrmask: 1;
-            uint32_t reserved: 30;
-        } fields;
-    } ns_hostflags;
-};
-
-#endif /* ASM_X86_HVM_SVM_NESTEDSVM_H__ */
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * tab-width: 4
- * indent-tabs-mode: nil
- * End:
- */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 19:10:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 19:10:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185741.1507743 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU8Wu-0006Go-Tq; Fri, 12 Dec 2025 19:10:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185741.1507743; Fri, 12 Dec 2025 19:10:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU8Wu-0006Gh-P2; Fri, 12 Dec 2025 19:10:16 +0000
Received: by outflank-mailman (input) for mailman id 1185741;
 Fri, 12 Dec 2025 19:10:15 +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
 <SRS0=tg47=6S=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1vU8Wt-0006Gb-Gg
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 19:10:15 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2f143f7a-d78e-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 20:10:13 +0100 (CET)
Received: from BN9PR03CA0258.namprd03.prod.outlook.com (2603:10b6:408:ff::23)
 by SJ2PR12MB8718.namprd12.prod.outlook.com (2603:10b6:a03:540::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.11; Fri, 12 Dec
 2025 19:10:09 +0000
Received: from BN2PEPF000055DB.namprd21.prod.outlook.com
 (2603:10b6:408:ff:cafe::3f) by BN9PR03CA0258.outlook.office365.com
 (2603:10b6:408:ff::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.11 via Frontend Transport; Fri,
 12 Dec 2025 19:10:08 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN2PEPF000055DB.mail.protection.outlook.com (10.167.245.5) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9434.0 via Frontend Transport; Fri, 12 Dec 2025 19:10:08 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 12 Dec
 2025 13:10:07 -0600
Received: from xsjvictlira01-ubuntu-0.mshome.net (10.180.168.240) by
 satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17 via Frontend Transport; Fri, 12 Dec 2025 11:10:07 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2f143f7a-d78e-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pLj2xpWHe5i6sdZ6x36wEogxqr4G1Xs0mO0Ju494WrRCUJC/Bb0e4bXRcOHv1NL4jMS4h5sXlHsrJX3XBWVQKfFNKUC3MAtdRjHqdTinA9JvuC17YFANQNPfrKa1xZ7I5q5JmaQbT1udmYAjm7jzTdijGc2sWdrSQwQ0RleUMVuoF+uRg4fW2hOrv6arGnlpKTlaXRbziuu2wOMOdBBohlRwiisaVAxTDbkT+Jg93WFKNZt3k0mMjF3EDtngsfAleEyU8pIT7tWdM2cVuNsquNQwYBMojQPHyPDGBGnFgXTu+PJ0SV0Xn3yUMIq7qunrXyeR7xmnfGJebY4r5i7HAQ==
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=0xvDFOX2ecMw9DO6uw62pl9vqwUUDOfta6wzTOha7sc=;
 b=qSfoGT2yhiUbBLf5iGGOH1vd4rTE74EhqczLH47QkD2Ik8VTlVBKU4siAWuWrvyRxBWXEPPWI66LtzT/38m1wnvRkRq3+aalr7iOIN494ydQyQbvBwzmaIaRzXu/OFMlaXpMcVNYZySLDu5ISGcCt8iRgU4l2lDiC9gPeg89eM0dTZH9Mi/UA0qeh6vAR3OTW0C6WhR4a2BUoltmCfzeyGbH25xtFZg1WcJyLrXz95vYzkIWgOA1MlTQpAn2UUAfoFV+2h+JHrmH6v8yuJp+NjFyoZu9Br+hg2/UFbgdSj4HcppkFpatD5MsCZ0ZxrKv0TJTrwoyT483lEkgiZSk0Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0xvDFOX2ecMw9DO6uw62pl9vqwUUDOfta6wzTOha7sc=;
 b=AxyWHE3WWK/2yOvYcvaD6N8sS7hS3xINzwBHeJR86XOgPu2NhwklrZNadP6UarQbxHgFZ1coitzPH2q9Fmcwwld6aR46YaoYnfzWNXS7+pdvOYncG9M+oXG8DoGj0igry2joksJtWXQxsS8BZ1M7X1mrPNS4+1K0MyLJvHPlTGM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Victor Lira <victorm.lira@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Victor Lira <victorm.lira@amd.com>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: [XEN PATCH v2] automation: edit pipeline to prevent running non-selected jobs
Date: Fri, 12 Dec 2025 19:08:50 +0000
Message-ID: <20251212190850.1357779-2-victorm.lira@amd.com>
X-Mailer: git-send-email 2.51.GIT
In-Reply-To: <20251212190850.1357779-1-victorm.lira@amd.com>
References: <20251212190850.1357779-1-victorm.lira@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000055DB:EE_|SJ2PR12MB8718:EE_
X-MS-Office365-Filtering-Correlation-Id: 1361b30a-64bc-4d80-b6cb-08de39b210e7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?dFFzjNoWoZNCJhpTLJaHyt/Ugx1OYdGNiQS75JXSPZ4OsEKBMOkOQfPZwwqe?=
 =?us-ascii?Q?nvR7Wjfla268rdXwPa48+YATIbYrJRrWjldjhYByaixG/UuyIOx2f2SXT/GN?=
 =?us-ascii?Q?JG4GoLxdShlaftLAV2D+TloVV7fbSG9Nb79MtOEQ0FmMNoC0lbneOGTW2qQC?=
 =?us-ascii?Q?MwUDxw9CiG8UOMIiWdPeiIC4XuLZwCGgYOVcc2Y0u4E6oy9sQ7/yKUhXw4CI?=
 =?us-ascii?Q?XC8pfBVXuKHvDjyUPwDJOtP62YyydH8+HzalPIWucKtAODR2IqLpSjF65qj6?=
 =?us-ascii?Q?L/xrGPno+FtclPJL5GRk1ka+QU40KONvBXdTDWExdBN85zt755hrUP+J306y?=
 =?us-ascii?Q?J//WbEJc3BAm+r6DzVCiZ2rfRyj9rd3nZjT+pdoGvEOlOzRHFoh1C5tBIUun?=
 =?us-ascii?Q?t1JTO95rrMc46gBgsiZOMGbrHpMa94coJQmYOz/kpUlHggSlCi/W9nu98VwB?=
 =?us-ascii?Q?NyZMBySf8KG1eHfECSlEYqOGisb+OuJwT3gC9sJFQCl7aRwZRnjf8RYRrt7W?=
 =?us-ascii?Q?G+1STzTnZMdw5qiHm9pSfdyoy4YewcEZHhWVNDNY/KLM8TgwVDmRQWwKmzvB?=
 =?us-ascii?Q?joPh1CWdSKUZJeJu6BZvrXFTj79n01D5Gl2mdr3k1Ff/Khyc4VjOdDZoHz9/?=
 =?us-ascii?Q?FfCClK+TpQDHQnG+dAjBYQjgQSQMWQDIR/rIkHZ0SslEJN5CeTBG9jzGLUhV?=
 =?us-ascii?Q?js0flRLBDozRrTLIw37veoDbjkD4nDRNVu/meWXZwRaYlhjPZUZsWdIylIAw?=
 =?us-ascii?Q?B3oFuS1RJWTHbLzwRCPjSw17Vj7tkDUMgtR4E6YQWQq7XXE91WuZkgH+vofs?=
 =?us-ascii?Q?EtzFch05H2jP44iS4uGXmkfttLGpgf1F3yO/pot2Hk/2xLaLyivLZ26AlrKJ?=
 =?us-ascii?Q?ctv9LRmMz1pQVOBUpKHOzdt8yUBDpOAGuQXYB1q7u6K0PgVJEQW86m2b9pZ2?=
 =?us-ascii?Q?Gwzjt70w4Y8lgD+rqntzzJOxECLEgRrAQapzcmEF5Sjc1WZELQbiDNnzl/kn?=
 =?us-ascii?Q?jcOoRBApCWlgHA5VKw9T6/I/Ilc/Go6gHLnfakhzPe0adKGQcwEUqLvQVbgr?=
 =?us-ascii?Q?SAOHwUuiwAnf+J3/NUPKkTw3gyRHn93P2zyiax9vOCCPXb2h+vazeeWrwQvl?=
 =?us-ascii?Q?ekPIctHJRHHCKAgp1y4GwJPMb7NOZUBVs6UFy8/Nt2Q6AIgbRS7TqJLswqls?=
 =?us-ascii?Q?dlmrBqxhJbBOrTxf31lNmcHVolG5714KT71NlPDZON0LD3HImz9DptFKCUZV?=
 =?us-ascii?Q?IXa6wNPo4kiHwWtoGc7rONtW2a1AcnJ3CGsD3iIVMqfdUM+CVwiJCVz/WRFa?=
 =?us-ascii?Q?glzr1ZyVaPoM3uR+LnaIzOgls/dCZazeEOj7cEwJ0FHKZGl60lcUSJpzrOVg?=
 =?us-ascii?Q?JN5fsw9DRCppRN97dA3faaeQDtQsyb0J8RU4b8szGn68R5i18VSDv0yVrK+B?=
 =?us-ascii?Q?CpvjJ54+IiYk0SCSpH0dDk9RBpHjGjuqGVutiXk97r2XAVmJWp8QCGvyJcX5?=
 =?us-ascii?Q?EoiWzItScnj5W8xgypYCBlAjJLtRzvxUeaG1kxre2gZeAxJkUAyGfV/Efo3c?=
 =?us-ascii?Q?yOJ+lZ2d2hotwjNtJnDW3HD28oPve/aRkBDEW57s?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700013)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 19:10:08.3347
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1361b30a-64bc-4d80-b6cb-08de39b210e7
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000055DB.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8718

Filtering jobs using the selected jobs regex is missing for
qemu-export + yocto jobs when running regular pipelines and eclair jobs
when running scheduled pipelines.

First, set a default value for the selected jobs regex to remove the
need to always check if the variable is empty.

Then add the missing rules to filter out those jobs.

Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
changes v2:
  - rebase onto staging

with SELECTED_JOBS_ONLY="/alpine-3.18-gcc$/" ...
before push: https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2212050840
after push: https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2212063969
before schedule: https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2212068543
after schedule: https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2212066703

Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Doug Goldstein <cardoe@cardoe.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
---
 .gitlab-ci.yml                    | 1 +
 automation/gitlab-ci/analyze.yaml | 5 +++--
 automation/gitlab-ci/build.yaml   | 9 ++++++---
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7974ac4e82..64bed300a6 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,6 +2,7 @@ variables:
   XEN_REGISTRY: registry.gitlab.com/xen-project/xen
   SELECTED_JOBS_ONLY:
     description: "Regex to select only some jobs, must be enclosed with /. For example /job1|job2/"
+    value: "/.*/"

 workflow:
   name: "$CI_PIPELINE_SCHEDULE_DESCRIPTION"
diff --git a/automation/gitlab-ci/analyze.yaml b/automation/gitlab-ci/analyze.yaml
index e9a8f9d544..a472692fcb 100644
--- a/automation/gitlab-ci/analyze.yaml
+++ b/automation/gitlab-ci/analyze.yaml
@@ -31,8 +31,7 @@
   rules:
     - if: $CI_PIPELINE_SOURCE == "schedule"
       when: never
-    - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
-    - if: $SELECTED_JOBS_ONLY
+    - if: $CI_JOB_NAME !~ $SELECTED_JOBS_ONLY
       when: never
     - if: $WTOKEN && $CI_PROJECT_PATH =~ /^xen-project\/people\/.*$/
       when: manual
@@ -172,6 +171,8 @@ eclair-ARM64-amd:
   rules:
     - if: $CI_PIPELINE_SOURCE != "schedule"
       when: never
+    - if: $CI_JOB_NAME !~ $SELECTED_JOBS_ONLY
+      when: never
     - !reference [.eclair-analysis, rules]

 eclair-x86_64-allrules:on-schedule:
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 4cb52fe597..e9e04e37d4 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -226,6 +226,9 @@
       - binaries/
     when: always
   needs: []
+  rules:
+    - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
+      when: manual

 .yocto-test-arm64:
   extends: .yocto-test
@@ -261,6 +264,9 @@
 .test-jobs-artifact-common:
   stage: build
   needs: []
+  rules:
+    - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
+      when: on_success

 # Arm test artifacts

@@ -468,20 +474,17 @@ yocto-qemuarm64:
   extends: .yocto-test-arm64
   variables:
     YOCTO_BOARD: qemuarm64
-  when: manual

 yocto-qemuarm:
   extends: .yocto-test-arm64
   variables:
     YOCTO_BOARD: qemuarm
     YOCTO_OUTPUT: --copy-output
-  when: manual

 yocto-qemux86-64:
   extends: .yocto-test-x86-64
   variables:
     YOCTO_BOARD: qemux86-64
-  when: manual

 # Cppcheck analysis jobs

--
2.51.GIT


From xen-devel-bounces@lists.xenproject.org Fri Dec 12 19:10:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 19:10:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185742.1507753 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU8Wz-0006V4-45; Fri, 12 Dec 2025 19:10:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185742.1507753; Fri, 12 Dec 2025 19:10:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU8Wy-0006Ux-Vw; Fri, 12 Dec 2025 19:10:20 +0000
Received: by outflank-mailman (input) for mailman id 1185742;
 Fri, 12 Dec 2025 19:10:19 +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
 <SRS0=tg47=6S=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1vU8Wx-0006Gb-Li
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 19:10:19 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2f3c2ba0-d78e-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 20:10:13 +0100 (CET)
Received: from BN9PR03CA0801.namprd03.prod.outlook.com (2603:10b6:408:13f::26)
 by SJ2PR12MB9116.namprd12.prod.outlook.com (2603:10b6:a03:557::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.11; Fri, 12 Dec
 2025 19:10:07 +0000
Received: from BN2PEPF000055DE.namprd21.prod.outlook.com
 (2603:10b6:408:13f:cafe::57) by BN9PR03CA0801.outlook.office365.com
 (2603:10b6:408:13f::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.11 via Frontend Transport; Fri,
 12 Dec 2025 19:10:07 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN2PEPF000055DE.mail.protection.outlook.com (10.167.245.8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9434.0 via Frontend Transport; Fri, 12 Dec 2025 19:10:07 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Fri, 12 Dec
 2025 13:10:07 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 12 Dec
 2025 13:10:06 -0600
Received: from xsjvictlira01-ubuntu-0.mshome.net (10.180.168.240) by
 satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17 via Frontend Transport; Fri, 12 Dec 2025 11:10:06 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2f3c2ba0-d78e-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SzapfaXFRGmbGGMwqm67bzxY/yWUYVUh03KW3aAt/qYiW2v04G3IZFDUjg9x2zyGaFQd1pFH3YJOsk8KHp6d6sI7qnL2hEIT/AhSw0rA9pD9DHwrA98ZMX6eu6FFOA/ixSn4VImfv+/6m/kO0lOmCMA2PEecO4eFiJ2qEs5kit7L71PFHBGd3m+lSnctaOcWWYCZ05R5HllcnGSaTKdAgKy1X/Y1o9EpTACck1TqAVBGiHacL42ZIz+DG74GsGsi09csPCABWgxHB32JLilDr37QpD2Y17P9PmrjaVv21aza7gSwZrh8gIpH33unv6y5VR4bxk8IZKSa5rIqEbHiwg==
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=i5tuI9cTDNV2ao972PUUR5cIDDmH4wbVtD/kZ/f3hR4=;
 b=rGkpBCAeAP3o8IBmSusxvWFlrIv68S8U0MlqE1jItbNvSnITKp2HWoPk8MzgkfSlEncnA+tEgyZmfDywPvCbp44WS/+jfFOdOyW7TwUISBKg/zxmbDFEE3GSgZtEyJeCFbfE/houtJ2mHeOn1AYN45Zykdp6xzcJwffLReiaFImVYhF3tiXgdBpkzjZxS3KE5sUG50q5vth5Lzaa3kiU9c2NguxrxlWHoo1eAfxM3AffQmyLI9OYaZnrGzhjcqUUtsxvWcGIZjni08arJQK/W5KB548rr5hCHApp0PbORy3ZWR+2l4OacKwtMssmqdCHRSwCY50SH8zgWrZE1fc5wg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=i5tuI9cTDNV2ao972PUUR5cIDDmH4wbVtD/kZ/f3hR4=;
 b=f+z1T0y6brIe4vpgLLZk/SwyXgwCGlA2b72kDoEwGFFQtIVYSYQUMoQ19WUySq/ozsuGeFMqJUEfCTjh0mHhPRxF1DPq3KLEC2AxfFcfzmWFJZ1ItY02byEsYph3Fsf7D0xuTVGEafb2Q8IisRm/hb9xPt3HWBkZ97HxSPs0CCc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Victor Lira <victorm.lira@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Victor Lira <victorm.lira@amd.com>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: [XEN PATCH v1] automation: prevent eclair-ARM64-amd from running by mistake
Date: Fri, 12 Dec 2025 19:08:49 +0000
Message-ID: <20251212190850.1357779-1-victorm.lira@amd.com>
X-Mailer: git-send-email 2.51.GIT
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB03.amd.com: victorm.lira@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000055DE:EE_|SJ2PR12MB9116:EE_
X-MS-Office365-Filtering-Correlation-Id: b38e9510-0f75-4f2d-fa7e-08de39b21046
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?TDo30LIlwOWNHMhTgQPRO646Jsp8FxRwj4g80W99/cN3ipWTDek+fJy+FpHo?=
 =?us-ascii?Q?256YkPouGPvH4NAZLTHBNlqyBw3heHCkuTQz9Lt0zPS3HtrVEIZIzF2swEwO?=
 =?us-ascii?Q?CJKr+HZkual7+8E6D2ZETMA/yzXErWkIIKqTm5DZNoj6JDkG3PT5JRX5hRPE?=
 =?us-ascii?Q?4GxvkZco5RWwQaO/N6/dFFnKRUqtdZHCqkIwkZR2OHaKmx2xyEJ4WVOBroSH?=
 =?us-ascii?Q?mvIcIPEFQklEi50NM+o/owyPGW6r/n8oeNRz+3HW+Zc+8OS80lX70Ui7colI?=
 =?us-ascii?Q?HMjELaMxg3N4Ca0ZYHVOzOphWiWH3yslxxNlLxa/3bHrYWSSeoDAtF+O10Y+?=
 =?us-ascii?Q?Hj+EsgdniOZwp8c7Lq4ICTMSLgTYFAWnn0l86gFM1oLl2pX9Q30S5ZgQaqOr?=
 =?us-ascii?Q?lYNE7nD8IjlBCCpa4C5ybYMSdIvTS63cuSZaGd2jESM7IrQvAYh+jFx8vFU4?=
 =?us-ascii?Q?Wm3TcJiSpZBNr4Nkx88M7pWSY5oxOaC37LZ5MnRqVoLFbPu/CN95ihKiyzg0?=
 =?us-ascii?Q?nSVXve8ly+0LCnZKV8zntaIy6oTEjv86NjIBOGIbr2BM57njbDvJdsfvJpNa?=
 =?us-ascii?Q?omApmXcrwO2/qwueUVT0eXkIFX88z6hCznnGNVI1AdptJFZE/rF8US9ypmFm?=
 =?us-ascii?Q?/+9yU7U6PCax1OwfvrSDGuU7CllMggf2h5pI8RkUSUx/czcKaqO47KeHDwAW?=
 =?us-ascii?Q?YYtE8eXvBGI+2euOLX2wvRYjI3Jr/+kIX4XF5mqiYkaqR5W5J4pmO6VEObMZ?=
 =?us-ascii?Q?4bSADsIK0xp+7YMhGc+q6z1kR3LodhnSkikKz4W3LKH8U6BsWteuZ58uufrT?=
 =?us-ascii?Q?bYClKBFyjtieZh7Vr2M0QpimgTRBG4+a0t0Qd/5FYiunbsBobWqFMDcMoMc5?=
 =?us-ascii?Q?51IwlEqnaradZu8sIscHHL0+YAI1MBxZUe5yIZSjdbYoyoh8l03Ym4nXUFG8?=
 =?us-ascii?Q?GIEJlJUrS3jezhB6Lfenn+dsz+XWOaHKJYzFq1N+W1PwKqWIPHIm4Vqr8so6?=
 =?us-ascii?Q?LOy1lTBYdC72c5QsOiO2Y9RUXmZmZxsKm2t6f5lzMr0WqP8+7/ku5mZU2HLG?=
 =?us-ascii?Q?SQ9HLtIES03yg6CNE2hPhNpHn9NgPCYKD4DDlXTpZQcl7ihZwNW9cA7OeC7w?=
 =?us-ascii?Q?9qBKvCU8PUIkbijya63cOiY1toqhDNPtlzAxKk2qTgN+SAd6XD05igsPfkCK?=
 =?us-ascii?Q?Pt9BsfFs/mVnmAIj9S3bHpcwhzSKiindpWGYvxLfYkJtkGtDyEc5dhSdwj2w?=
 =?us-ascii?Q?Po2Lu/Kov2S5uOJlfnyoRIGg35epe3AFqQlIo1Lvu+p1pJvvz1dBI0qYhSZT?=
 =?us-ascii?Q?DUK5UBTJLRYjJORkAOQJ3vPcN/LM1Dbxy8p3mDWYB+1pcp/fvSVytqAV/6yv?=
 =?us-ascii?Q?R44l8XhMKmEO0h9pEyRC477JqW5z0bQth/kBJiLRFUNmOiVozRzxO0HBQ06W?=
 =?us-ascii?Q?/hOgv1W6I3/S4WutsI9ORJ2rnzWsaYfCVY/1WGg0Dd7diwfJVTZlyo1nhoPl?=
 =?us-ascii?Q?wl42ZZ8hIU2aemqPPC5dxMoiEAkdgGKto4ocuPQBm9gsjXs4/dwUCep3fj8J?=
 =?us-ascii?Q?ppOXCqWZBmCgG93OyeU=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 19:10:07.2812
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b38e9510-0f75-4f2d-fa7e-08de39b21046
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000055DE.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9116

It seems unintentional that this job references .eclair-analysis
instead of .eclair-analysis:triggered which does not apply the rules
from that template. One effect is that it runs always instead of
manually in my xen-project/people repo.

Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Doug Goldstein <cardoe@cardoe.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
---
 automation/gitlab-ci/analyze.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/automation/gitlab-ci/analyze.yaml b/automation/gitlab-ci/analyze.yaml
index 286faffeb3..e9a8f9d544 100644
--- a/automation/gitlab-ci/analyze.yaml
+++ b/automation/gitlab-ci/analyze.yaml
@@ -165,7 +165,7 @@ eclair-ARM64-amd:
   rules:
     - if: $ECLAIR_SAFETY
       when: always
-    - !reference [.eclair-analysis, rules]
+    - !reference [.eclair-analysis:triggered, rules]

 .eclair-analysis:on-schedule:
   extends: .eclair-analysis
--
2.51.GIT


From xen-devel-bounces@lists.xenproject.org Fri Dec 12 20:08:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 20:08:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185784.1507763 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU9Qm-0006pG-9o; Fri, 12 Dec 2025 20:08:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185784.1507763; Fri, 12 Dec 2025 20:08:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vU9Qm-0006p9-5U; Fri, 12 Dec 2025 20:08:00 +0000
Received: by outflank-mailman (input) for mailman id 1185784;
 Fri, 12 Dec 2025 20:07:58 +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
 <SRS0=Y5vH=6S=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vU9Qk-0006p3-5q
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 20:07:58 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3ef4a917-d796-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 21:07:55 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 3FDF14EEBFD6;
 Fri, 12 Dec 2025 21:07:54 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3ef4a917-d796-11f0-b15b-2bf370ae4941
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765570074;
	b=LxU0+FscHcftBD/PEnA28C7HlRr1SZ9lPA8/j0pS0ASKyGPRE3iSVsnZnHTuiusr0HJS
	 JiDk1R8bmdhHLguH1BvUJChWgnITozZ0eH17jYJjdI9ZaW6KIjH+h4bEkIFN0BbYmsdB4
	 4spjXQejUPoGNFn5ib/Hi+Z3tDWNXeIuIC+2kxJWOtedd713XKx1Q5xr2huO/v7KHb0I4
	 XgrSVkVWc8Nrnzrz4YG/ereP3/b7Bi9VY9NyyXPbBLDw43BhCWaySta2qnUV2Fh9oZY/3
	 7xMQ3vM7WeYrGxrsAIUx2tT5k2HkDk5qG9hJmsMW2v4w7yZrcEl4/8D6RFfGC62FHy9oe
	 3gErFKbNmXRx1P/MVIiy0G4d3RW/DItVkGEHrgWkDz4F9c2KlQZOYTLmA7pww1R6pCubY
	 es34CTc3QFhYrVuOXoMvdg8C1jNEmE5Q4mQ187SORO82EcATzzejpqnNZhuWXCINZS5yp
	 bixnMwehelBYy5voiZmf0t0whbMwJJSJ1o6LBriY2HfvJP3VhTHHfugwmKTcnNAIgrbw8
	 kyWmI9lgRd9ZW8jdM/wTF8QLSESKwdYd9uxTXO7pLjHzOiGqWzc6veK8L3Fm5ZfoIuZBi
	 LFS1ATDQDTt7SaB190cRrkZR2ILOpExuwAoTBpEyKSi6tpLk1cSanLq8NDyRcpU=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765570074;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=v5iqwXf/fqUGGuVi6Y7XXvEbRJ2bSxhNLCtCvK5BzFc=;
	b=FXNQCrzbwJmfBrJJeYAqdHPYQhK2GzJdalx8+ZCU4SVwFmSEJNTwLGpIKH3iqRlHyyQz
	 VDFWEgoQ4HoMQm1I8zIitqe0r/roVF3OtYSFtBaZ7fGHU35MWnQoosTLfTuk0ZlxEYNyv
	 1KP/FyftZYIyrB1tt3aScU3x+Fz1Vs1lwcbwasijbJOZmQrZaQmaYa8J2I+FGuPho5h0i
	 Z0lL7BZwFGQiq425gO9TZZrIp68rs4d1UWBApkPUHmPeoWs7Az50j40kF6cgMMEpry6kP
	 swnkBkqn7g2FuFuvblmlIUq9SOGBn1zb55vH3SHmWbzCVXbDtwuisaH6bfqxvbLMAuAHl
	 ++sPaAvp93M/TjhxZgfiqhcytkKrDvx5fq8L1DQKmDE8WCB6xn0vwMMlrE+u2HwVs38kt
	 AuUDCg4q6+IIObfPJpUKDGUeBS8wNdzs3AdSJxBydDxjpt9WQI3IijEP3JsDe7YmK97Wi
	 8hho3XfjPY5l5PCutr6GfqQksDtO19vxaKjJ1H7gDdkfz+m9bbPCIPEkvUGxzmnAEDYUe
	 su/uNAs0zRoTzoDnVDtivyiCKM664ryClHXBCLg9FMesu/w0FiJrIL5m33l4byOcGDpGd
	 XfeIc6c5TRAcG4qpjUdJv1KuKM/YJ/ICqAxNf1RwJJqwegd6V5wYzk+acB/1pWY=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765570074; bh=Pxt73kFK8GqZjvH/ghjfpPJADZRK9/umb+Xf28kUMHo=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=LJWycPNAj6CKI8FrNDkTJ5HBjhpftXHBNdeBOip5tc9hCVj3XmcLDzCSJe/4OIJKX
	 n020cSa8qlgZYL0ULunJMwPzYt3erYu7NdSUrpdGJ8CAW6hFZ4+QMuhkbZjP0+YnvZ
	 XXsZ/xBrqAtVtl0EawYiqPMLITU+7cYjznnZveOO5E13pMuUWAXkytZzFAKHRAYz3o
	 o0yr5jFtVJJle7PHivAy/PczbViiJrqllKTmll81ZHwFr40RIXAVh/I/Z+BEt4cbul
	 2EO6e0LcvpBMB1k6y/uejRW+tST7xHlWsRyo24N/XNJpFTTWxHl6lj/fC2Zqo0aRZY
	 mFxHDCcYJbjzA==
MIME-Version: 1.0
Date: Fri, 12 Dec 2025 21:07:54 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Victor Lira <victorm.lira@amd.com>
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v1] automation: prevent eclair-ARM64-amd from running
 by mistake
In-Reply-To: <20251212190850.1357779-1-victorm.lira@amd.com>
References: <20251212190850.1357779-1-victorm.lira@amd.com>
Message-ID: <d5f7b40d6fa93c7484a78de93ed5581c@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2025-12-12 20:08, Victor Lira wrote:
> It seems unintentional that this job references .eclair-analysis
> instead of .eclair-analysis:triggered which does not apply the rules
> from that template. One effect is that it runs always instead of
> manually in my xen-project/people repo.
> 

Indeed it was a typo. Maybe add a Fixes tag to 2d9908a1d0d3 ? Other than 
that

> Signed-off-by: Victor Lira <victorm.lira@amd.com>
Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
> Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Cc: Doug Goldstein <cardoe@cardoe.com>
> Cc: Stefano Stabellini <sstabellini@kernel.org>
> ---
>  automation/gitlab-ci/analyze.yaml | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/automation/gitlab-ci/analyze.yaml 
> b/automation/gitlab-ci/analyze.yaml
> index 286faffeb3..e9a8f9d544 100644
> --- a/automation/gitlab-ci/analyze.yaml
> +++ b/automation/gitlab-ci/analyze.yaml
> @@ -165,7 +165,7 @@ eclair-ARM64-amd:
>    rules:
>      - if: $ECLAIR_SAFETY
>        when: always
> -    - !reference [.eclair-analysis, rules]
> +    - !reference [.eclair-analysis:triggered, rules]
> 
>  .eclair-analysis:on-schedule:
>    extends: .eclair-analysis
> --
> 2.51.GIT

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Fri Dec 12 21:02:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 21:02:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185811.1507772 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUAH5-0006t2-6G; Fri, 12 Dec 2025 21:02:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185811.1507772; Fri, 12 Dec 2025 21:02:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUAH5-0006sv-2O; Fri, 12 Dec 2025 21:02:03 +0000
Received: by outflank-mailman (input) for mailman id 1185811;
 Fri, 12 Dec 2025 21:02:01 +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
 <SRS0=7oZ6=6S=tutanota.de=torsten.oehlenschlager@srs-se1.protection.inumbo.net>)
 id 1vUAH3-0006sp-OF
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 21:02:01 +0000
Received: from mail.w13.tutanota.de (mail.w13.tutanota.de [185.205.69.213])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ccfbd694-d79d-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 22:01:59 +0100 (CET)
Received: from tutadb.w10.tutanota.de (w10.api.tuta.com [IPv6:fd:ac::d:10])
 by mail.w13.tutanota.de (Postfix) with ESMTP id F3012EE60988
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 22:01:58 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ccfbd694-d79d-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1765573318;
	s=s1; d=tutanota.de;
	h=From:From:To:To:Subject:Subject:Content-Description:Content-ID:Content-Type:Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:In-Reply-To:MIME-Version:MIME-Version:Message-ID:Message-ID:Reply-To:References:Sender;
	bh=8TNNbGS4SlRE8tnfQkt9yF/hi7qgkssIVVtcVelpxnE=;
	b=tS64eeYfKTXLJQPNhtZkDEUZkGbmtHEfOvjGhibHW8d8BsR4R9YsONbfbkccIG36
	ND+wAiP3ec0jtKlzS5byVid53+kW0PECm18xT+NQUAQzqeSXQUubsMsvUyCSkYUQb9I
	CFS0uwJ7dFvGsAyS2Swb4MvJaBi3aBzyFgp6lnvTLyLxAw+Mm68IHFw3yE8YDMtv9dK
	3NBoWM22pHnLgch85fkEM0ub3jRS60yBxlK2O3s/jQFJeJ+l3QzlWiHHfT8SWxtWjzA
	RwGHRI15PcsjeUZtJpFxORJeKFThxJTpGWZ1vJpk5YdLT9vJdHrQ/31II1JA5MWcV7c
	AksM6EQI4g==
Date: Fri, 12 Dec 2025 22:01:58 +0100 (CET)
From: torsten.oehlenschlager@tutanota.de
To: Xen Devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper3 <andrew.cooper3@citrix.com>,
	Sstabellini <sstabellini@kernel.org>, Jbeulich <jbeulich@suse.com>,
	Julien <julien@xen.org>
Message-ID: <OgJMhRT--F-9@tutanota.de>
Subject: [PATCH] xen/domain: enable VCPUOP_register_runstate_phys_area
 hypercall
MIME-Version: 1.0
Content-Type: multipart/alternative; 
	boundary="----=_Part_158966_818997258.1765573318990"
Feedback-ID: 011d5ed05728e58e5db284b86eb700e945cf629bed5c7c39853a6d350729b3e9f5cb022cdd0f4650868659d87b16d2f26197404a7fa7c230a23c8b7e8d6dfcd12a91a98cb923aa405ecf29ac953b9df678:TurnOnPrivacy!:tutamail

------=_Part_158966_818997258.1765573318990
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

ice@blossom ...............................................................=
...........................................................................=
....................................=E2=80=A6/xen =F0=9F=8C=B8 enable-runst=
ate-phys-area ?
=E2=9D=AF cat 0001-xen-domain-enable-VCPUOP_register_runstate_phys_area.pat=
ch
>From 416992b30258d34b7cc7bc4f7875719f47618147 Mon Sep 17 00:00:00 2001
From: melanie <torsten.oehlenschlager@tutanota.de>
Date: Fri, 12 Dec 2025 20:55:50 +0000
Subject: [PATCH] xen/domain: enable VCPUOP_register_runstate_phys_area
hypercall

The XENFEAT_runstate_phys_area feature is unconditionally advertised to
guests via XENVER_get_features ( see xen/common/kernel.c ),=C2=A0 but the
corresponding VCPUOP_register_runstate_phys_area hypercall was disabled
with a placeholder check that always returned -ENOSYS!

Remove the dead code to enable the hypercall,=C2=A0 making the implementati=
on
consistent with the advertised feature.

Signed-off-by: melanie <torsten.oehlenschlager@tutanota.de>
---
xen/common/domain.c | 4 ----
1 file changed, 4 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 93c71bc766..3ae8d41cf2 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -2284,10 +2284,6 @@ long common_vcpu_op(int cmd, struct vcpu *v, XEN_GUE=
ST_HANDLE_PARAM(void) arg)
=C2=A0=C2=A0=C2=A0=C2=A0 {
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct vcpu_register_runst=
ate_memory_area area;

-=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 rc =3D -ENOSYS;
-=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( 0 /* TODO: Dom's XENFEAT_r=
unstate_phys_area setting */ )
-=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 break;
-
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 rc =3D -EFAULT;
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( copy_from_guest(&area=
.addr.p, arg, 1) )
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 br=
eak;
--

--=20

------=_Part_158966_818997258.1765573318990
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<html>
  <head>
    <meta http-equiv=3D"content-type" content=3D"text/html; charset=3DUTF-8=
">
  </head>
  <body>
<div dir=3D"auto">ice@blossom .............................................=
...........................................................................=
......................................................=E2=80=A6/xen =F0=9F=
=8C=B8 enable-runstate-phys-area ?<br></div><div dir=3D"auto">=E2=9D=AF cat=
 0001-xen-domain-enable-VCPUOP_register_runstate_phys_area.patch<br></div><=
div dir=3D"auto">From 416992b30258d34b7cc7bc4f7875719f47618147 Mon Sep 17 0=
0:00:00 2001<br></div><div dir=3D"auto">From: melanie &lt;<a href=3D"mailto=
:torsten.oehlenschlager@tutanota.de" rel=3D"noopener noreferrer" target=3D"=
_blank">torsten.oehlenschlager@tutanota.de</a>&gt;<br></div><div dir=3D"aut=
o">Date: Fri, 12 Dec 2025 20:55:50 +0000<br></div><div dir=3D"auto">Subject=
: [PATCH] xen/domain: enable VCPUOP_register_runstate_phys_area<br></div><d=
iv dir=3D"auto">hypercall<br></div><div dir=3D"auto"><br></div><div dir=3D"=
auto">The XENFEAT_runstate_phys_area feature is unconditionally advertised =
to<br></div><div dir=3D"auto">guests via XENVER_get_features ( see xen/comm=
on/kernel.c ),&nbsp; but the<br></div><div dir=3D"auto">corresponding VCPUO=
P_register_runstate_phys_area hypercall was disabled<br></div><div dir=3D"a=
uto">with a placeholder check that always returned -ENOSYS!<br></div><div d=
ir=3D"auto"><br></div><div dir=3D"auto">Remove the dead code to enable the =
hypercall,&nbsp; making the implementation<br></div><div dir=3D"auto">consi=
stent with the advertised feature.<br></div><div dir=3D"auto"><br></div><di=
v dir=3D"auto">Signed-off-by: melanie &lt;<a href=3D"mailto:torsten.oehlens=
chlager@tutanota.de" rel=3D"noopener noreferrer" target=3D"_blank">torsten.=
oehlenschlager@tutanota.de</a>&gt;<br></div><div dir=3D"auto">---<br></div>=
<div dir=3D"auto">xen/common/domain.c | 4 ----<br></div><div dir=3D"auto">1=
 file changed, 4 deletions(-)<br></div><div dir=3D"auto"><br></div><div dir=
=3D"auto">diff --git a/xen/common/domain.c b/xen/common/domain.c<br></div><=
div dir=3D"auto">index 93c71bc766..3ae8d41cf2 100644<br></div><div dir=3D"a=
uto">--- a/xen/common/domain.c<br></div><div dir=3D"auto">+++ b/xen/common/=
domain.c<br></div><div dir=3D"auto">@@ -2284,10 +2284,6 @@ long common_vcpu=
_op(int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)<br></div><di=
v dir=3D"auto">&nbsp;&nbsp;&nbsp;&nbsp; {<br></div><div dir=3D"auto">&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct vcpu_register_runstate_me=
mory_area area;<br></div><div dir=3D"auto"><br></div><div dir=3D"auto">-&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rc =3D -ENOSYS;<br></div><div dir=
=3D"auto">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( 0 /* TODO: Dom's=
 XENFEAT_runstate_phys_area setting */ )<br></div><div dir=3D"auto">-&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br></di=
v><div dir=3D"auto">-<br></div><div dir=3D"auto">&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp; rc =3D -EFAULT;<br></div><div dir=3D"auto">&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( copy_from_guest(&amp;area.addr=
.p, arg, 1) )<br></div><div dir=3D"auto">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br></div><div dir=3D"auto">--=
<br></div><div dir=3D"auto"><br></div><div dir=3D"auto">-- <br></div>  </bo=
dy>
</html>

------=_Part_158966_818997258.1765573318990--


From xen-devel-bounces@lists.xenproject.org Fri Dec 12 21:13:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 21:13:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185826.1507782 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUARV-0000GC-39; Fri, 12 Dec 2025 21:12:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185826.1507782; Fri, 12 Dec 2025 21:12:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUARV-0000G5-0X; Fri, 12 Dec 2025 21:12:49 +0000
Received: by outflank-mailman (input) for mailman id 1185826;
 Fri, 12 Dec 2025 21:12:47 +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
 <SRS0=lRu3=6S=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vUART-0000Fz-FK
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 21:12:47 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4d9510dd-d79f-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 22:12:46 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ2PR03MB7528.namprd03.prod.outlook.com (2603:10b6:a03:556::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.11; Fri, 12 Dec
 2025 21:12:42 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9412.011; Fri, 12 Dec 2025
 21:12:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4d9510dd-d79f-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Q32111bqaIcV9eKI5dAHPO7KreHGEC5tgz08wWrWHvVLdTIqG0ZBHq/ikn8AwcB1z0+p8cDRSlP1vh9WMq2byaK58aVRsGHoI3EXf0K9OmJA/et9N7zsXqMjBZZ1iDoaLEh2JQEhBixOdRULg3Ixe1hLQ2avCoTKQbD1u/aM2x9rFGSlBunOpgncuBwfhlxIXd18B/POWOmd0gvDb4MQ/9JVoLvO1RtX0x1Sj9qaNkNkUs/rvawG6ImJ8Nw2ZswNoRiIUNSJHXilS8lWuCGtVsJyuhId7QbnK8x+AJ6ME3OsONpBlsyMIsVkanu1EHEcQj5w0tKI+Ghs+1nQDggIZw==
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=dVBwWYq2HDV0bnDUqtE04AmAVbf+BYRgICXr/GJJVEY=;
 b=K+A/P7xGILhUX+mBWXIc6zeOmEsB8P+LI3rPaO0ffVuHmzfjXcy/e0RdfFrSxWRF8dIXFu0u7uLHP4eNPKGNrMCKuPXXk2xTM2+S9xbv0IDfGa87yN8LVU3tg2B6E3TJDoZRtdIhhlmDvLbGPeA/w8R/zxZNejeu9jfYgb1wncCImfNmD1LYbDtkuUlwFNTQlrDL0L+gdqvZvMaQ//YmAhB/QxD6SuTHZVywWE3qmd7HYjFmM8BgfKLEqfxsK/qScOPWRbAzIQoA7vFHFYNcyfTwxksUU25mkM4jiNQ/wtnR5No2uIHvnaD5goIlAmhnrVP6UwavBX3PIX7i7BDFkw==
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=dVBwWYq2HDV0bnDUqtE04AmAVbf+BYRgICXr/GJJVEY=;
 b=Jdc3h9G/bY3OH4O63RlGT/BU+xfzc31mIJMtDYETcOiiq0B2E9GpbiQPaglXDx70F5P+ZF3WXVFBFv8IrUqxG8jGY9NBGC3JQOxDiXadz6pw7O9MUaD85VN99B4CYdMrevJHcA37d7s5cwBblmgVUALeuMnOTyJZmFh9I1LLf6o=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <dd3225bd-d416-4b61-8e5b-0a0637b0193e@citrix.com>
Date: Fri, 12 Dec 2025 21:12:38 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 01/12] Add Alpine 3.22 containers
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
 <08274c26cc710d3bfa87a66431f441b5703df272.1764866136.git-series.marmarek@invisiblethingslab.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <08274c26cc710d3bfa87a66431f441b5703df272.1764866136.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P302CA0011.GBRP302.PROD.OUTLOOK.COM
 (2603:10a6:600:2c2::7) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SJ2PR03MB7528:EE_
X-MS-Office365-Filtering-Correlation-Id: 06bcbf31-c2c5-4d84-0f84-08de39c32fe5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?aGlCV09iTkJOQW1ocTVrVCtwdWUrcTAxVDRYeWtQbmkyMDNGOWJ3M1dNaEZT?=
 =?utf-8?B?a2U3MU4vOWpaMHVNYkMrMU1VeDFJRWxMZ0dVbXNQeEd6ZkR6dCszTmY3TWlt?=
 =?utf-8?B?ZnBqSTNISXdycGloZkdhd3kvNW5mK3hHUmZMNVVwM1NJRlVJRzFmbXJmL2tW?=
 =?utf-8?B?Vmc1cllMdDJjL0o4QUc5MzhWQXdyVGdrQXNwVHQvWlUwSEpycjRZZW53NUp2?=
 =?utf-8?B?SFJFYkk3bWY1YTRWb2pESyt3aW9UMHpEYTJhcmZ4dU5STGVkeHgweXlFejJw?=
 =?utf-8?B?Y29Hdjc0N1YrZmVHZzRLU3NRVGRxdVZ6TCtja3BaZVRQcjVGcGltNWkxdnhM?=
 =?utf-8?B?NmJqTk5xVms1cHFLcXlQMW1PT3BOMnFpZm5sV29oeGxQRXFpcXR5V2FFeUNE?=
 =?utf-8?B?S1V6bzZjV1NXWXF6OSs3cGc4WTV2eG5sM3lBc3A3QkJMaDdHRHB1Tk1iN0VZ?=
 =?utf-8?B?RUc2d1IyQmp1Q0JMM2U4NjR6SFBNaHZFOTJPbHpVOXkwRFJpd0pRTVRKZVJv?=
 =?utf-8?B?b2JZN2srVTdyY2J5cG13SlVJODNmTXNUcEovZWVwMy90V1h2WGNaR3lNeVZ5?=
 =?utf-8?B?bmhhU1hJelkxL1BtQ0JEUnNzMVBmM3JZR1U4Y1JRVkREQjJ4SzJqekZydGtO?=
 =?utf-8?B?MFNyYkZRbGRFQk9VTjEzbHB1OXBEVmtlY3F5WlVJZnRBUjZUellKcmcrRFdM?=
 =?utf-8?B?TWF4d3RENmRhQlVSWWpocVBJOTdRUXFaWEtrQUJqQTFwWjBNZWxBRFNPNjhm?=
 =?utf-8?B?ZkwvN201SFFZalk1S2wrbHFKQ0lqS04weGVDbHkvcUF5Ny9sSmhnMHIyZUJV?=
 =?utf-8?B?dkZZMXVMVlBXQ3FrVnRKK1RGbzNWS0FFTVRrZUNRekNueXVYNVpCNnVMcXR5?=
 =?utf-8?B?YVZTcHNhemEvSURzWUx0YjZJL3p2RXU1N1lXMjlLb2xPczVWcHJ0UlZYTnRn?=
 =?utf-8?B?RkxSbGZaR2VWSGVqQlJjZVdjVXV3RGlZVTdQUEtzUmp6VjJCYVRYSEJ4N3gz?=
 =?utf-8?B?elc1SnJibGkrN0lYN25ZQlNSbG5IaVE5azIrQ1V3NFdlSHNJQ1RwWXNyS04x?=
 =?utf-8?B?dzd1b1M0YkNQS0pLSFArR2cvK1Qyb2lKejhIVndwa1hESmVDd0dZMkt3cUk0?=
 =?utf-8?B?a0dFWEVtL1ExYlVSSm5UT1RTR250NkhpQVQ2LzZNb1FxK1Nodm9Iem5sTHNW?=
 =?utf-8?B?WVBQQUtQUkpuUkI2L0dTMnU5SkVVaGoyWUlwdUVVY2ZkbGVTWUtwVlFtVmZt?=
 =?utf-8?B?K3V3NHBMdjZjSG5BamQwdTI2cnZta2E4clBaOEV1bzlIY1lxTGlYVUJVTENR?=
 =?utf-8?B?SXZReDhVOEFlWklVdFIzU210aG9aQ2o5bEVFVVV0WGV6YnBmdEl3U3dUazN4?=
 =?utf-8?B?WHNpUldZUnFrZjkxVGlIOUlrcTBtaldyaXU4cEdLWFpLU2NVV2kwQS9ydlR5?=
 =?utf-8?B?Tjg0dTJlVFlQZC96TW44NVN1L3JkRnZSSzR5NVVYSjNZWWloMW9SdnVnUFNN?=
 =?utf-8?B?OVJacTFxU3doZmQrOHpXekVVNUU1UlpDSDJSK0I5ZkE3UlJLN29pdlQvY0ds?=
 =?utf-8?B?bXlkNlBaYmZiQnYxOTFrVTdjYm5vcSsrS1VRR2dXT0llTTh2aWFiL0UwTTdp?=
 =?utf-8?B?Q0UrTEl2azcxZG1QaEFSSzFrZ0RpSDMwZVJuSkhEWm5FQ0UyTFB2RTc0ZG9w?=
 =?utf-8?B?eUtSbSs2Q2dNdld0TW1aTWFpbXl5TjRqYUROR2ZnVDllNzlRU3dzcjFlNFk1?=
 =?utf-8?B?NmF0T25iMU90VG5XZEt0NWJkMDdaUGJwZkFZb1hiaTZXK0dCUExETXl4ZXFD?=
 =?utf-8?B?SEN6NncrSTZDOFVpTTVMMU9XTUV6bjJBYURzblozVDZEWlhDUXhSR2hhSllD?=
 =?utf-8?B?c0I5clhBYlpVRkdvYm9pM084SlhlRUZxNmQybkxvc0hkS2hHY0cvUkpINjQ0?=
 =?utf-8?Q?2WPlgukY7qjB2RP5awR/7t7xzU+KGtDy?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RG1FSnFrdlBnMFFXK1I4VGwvRnQxcGJpaEJNRHlnKzJqUGJoa08yWUVQYXh4?=
 =?utf-8?B?MENNWlpId2l4ejZwdVVkbmpEYlloVkxSNlBRVnF0OHBuTEk3OVpoUXlySlNZ?=
 =?utf-8?B?Yjc1WE1SRzBQMkF5RUpqTCt3M3d4SitCak4yTHNrWVczbjhmOGUvS1BUQmZs?=
 =?utf-8?B?cWtzOXBsZDFPVjBmV3pPUmd0ckovc1h4VVh0bkhiN0JwcHVCUDJkQ000eUtB?=
 =?utf-8?B?VjhSbUEzRzc3YmJMeWFDdTE1MVZZNHhUemxESks4STBmMmFrSk9PNVVvTE5V?=
 =?utf-8?B?MFU2bHlPRUZ6WUwyYmhVZ2hPUlJnTkhrKzZiOVNqSWR5cG1mRGQxMHluNWw1?=
 =?utf-8?B?MW5ydXpZcDBnR2oyQ1RZNCtDMFhjT0RBbDRRRUpRL3I1RjFUUEN0dzFIMDZH?=
 =?utf-8?B?Rnp4OWFXQ1hTTWZlZEU2Z3krZFZUc2d2NytGOURlT3VHK0tJYng4d1I4WFN3?=
 =?utf-8?B?aWwweXNmWHZyQ2VoZ3hZUzRQaXh2bkFLWmZKb0cwYjVKc0xYRG9PRmlhckJz?=
 =?utf-8?B?TDRBeitaNktXV1k0WFFseUwraDUrT0dYVGV4aFliV0w2SWo1OHNGeU12aHQ4?=
 =?utf-8?B?R0VzRnV4RnkrUkY5amFGTDlYSEc5QjEvVkE4SHcxS05tUUJ0L253RHNHMlls?=
 =?utf-8?B?V3pZUThQS242ZDZUeUpiYTJBWkV2RERvblBSQWNQaldsQ1FyS2xYeEdDaDVN?=
 =?utf-8?B?bHVzSnc5UHNnTW9PeWZsalFnb1lEZENDeVExMnk0YUlVV29iYnlkdXA3MlVi?=
 =?utf-8?B?MnJhUm0yc2lQQnVTYU1hQU5IeXE2NzBtazh2R0tjWWFOUkppRWsvbW03QXBi?=
 =?utf-8?B?aUNqaVZ2MFBORTZiYjlYemFFeW5jTzRpNUVYakFSSis5eWJXaGRpQU40WFFr?=
 =?utf-8?B?KzZ2VUIrOThEdjNIeFh0ZEoxY1UwS0RQRk9mZTlsbk1pVUE4RUVJbTV5UVp0?=
 =?utf-8?B?ZnFOYXBSK2tRbkJzOW5UY3hHRitrMXdmeWNaRXRtd0k3bmo3WDJNSFZBOG9y?=
 =?utf-8?B?dlhlTGdMdFdKMXV6NUdtbkpKT3VhS1I3SCtPelB4SGs1akpQZ3BBOWhyazFw?=
 =?utf-8?B?eTZReitacDZZV3F4ZytGYjIvUHZBNU10QWRCZlBQalJYelNrQjVFbC95ejB6?=
 =?utf-8?B?NjNGRXNURnY0QjdDSHh1VHRLem5BZGJsUDRIVnlEQ3pLUlpNa2V4cTFUd0Z4?=
 =?utf-8?B?RTl0MWxsQ0tlckkyZUREdzJFOWcyeVJocnRQMHM4YXBmSHF4c3NUNStVZnZt?=
 =?utf-8?B?T3NScjdmeC9EVm9oVFdmYXBxTlRmK0xZU2FBL0RvbU5MSEUxU1ZKRFNpaXI4?=
 =?utf-8?B?MWdzL3lVQUpnMGhkSzJOTFpxVnIvNVR1dk9zWTlKYkxoclVxZ3F1VkJ1cktP?=
 =?utf-8?B?R3Q2UHJrZEZ3ZHdiMnBhVW95bkE0b2kvRThSYTRWdmE4MDRVeW1abkFFZ3N4?=
 =?utf-8?B?em1ReG5WNXVLb0FYS1dqKzIyWUw1akVnRDcvNGllelFtcGFXb1ZjTlR0ZUhq?=
 =?utf-8?B?ekxjdHBPNkFPL2RBNFV2eHFZZDdNRnZsWk9zWjEzZmFBaGN1dWN0dTRGVGtC?=
 =?utf-8?B?dnhoOGw1QVEvazFUZ1lHeVBGYUprQzkwRnZuaFJpT3VTRnlMdXRTZk5GbnFP?=
 =?utf-8?B?bnM1ekdaNElEdGVydHpZM3dCTzRSb3A0WEdzRGh0cVlybkx1NTFwWE4xazQ0?=
 =?utf-8?B?UkYzWTZhK3kwQ0RpdjhTZEpYMklLRmQ3ei9sc2dwVEhyeWszOUV3RmpGREhX?=
 =?utf-8?B?TSt2NE9aaDFSZkFZZFZNczc3VVgyTzZ4NFFZYnUxZHFxa1ZETEg5dVBVUVQr?=
 =?utf-8?B?M2xjcFFvb0RBOU1QZUFObDZqbEIra25xVUx6anRLaERLUXpjUlVVTndYTlov?=
 =?utf-8?B?Z2wyRFdkaWJWQllIcHFyQ2taeExaVlFMR0tuRC95Mkg5M1djRU9vL20ySVRM?=
 =?utf-8?B?TmRDMnlVWW5ydXN2UXFodDJKS2pMSnc3Q1ZnRElqOWxpZGNmQTRQeDhjY25R?=
 =?utf-8?B?NXZTLytFaXA4ZlBOQk1sQVVvZHNDSXI1REtkQXZsdnNyT011WTR1bWY2aFZp?=
 =?utf-8?B?Ky9nSUxoVmFyUXVjQUxNbUg3SXFKZTdlZTQ4NXVIOHYrMFJCeC8zL2tUK00r?=
 =?utf-8?B?WkJsSlBFdkJreHQ2KzBSRmdWYWNvT3ZzTEdham9DNnVNYXBDNzNwMkpaaVJm?=
 =?utf-8?B?Z2c9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 06bcbf31-c2c5-4d84-0f84-08de39c32fe5
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 21:12:41.9748
 (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: ZVgDS28c5vb9Bvi5ulW43pqpvRad+CRzPXKV6f9B6cNke+9Df6ysBIe2LUgxDnTIqDjcRT2arwrPidaSxbRZWSrDQHBPG6ofdHLJzUMHoxw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7528

On 04/12/2025 4:37 pm, Marek Marczykowski-Górecki wrote:
> Add it in all variants:
> - base container
> - build container
> - initramfs archive
>
> libdw used to be part of libelf in Alpine 3.18, but it's a separate
> package in 3.22.

I think this ...

>
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> ---
>  .gitlab-ci.yml                             | 14 +++++++-
>  containerize                               |  4 ++-
>  images/alpine/3.22-arm64-base.dockerfile   |  6 +++-
>  images/alpine/3.22-arm64-build.dockerfile  | 31 +++++++++++++++++-
>  images/alpine/3.22-x86_64-base.dockerfile  |  6 +++-
>  images/alpine/3.22-x86_64-build.dockerfile | 43 +++++++++++++++++++++++-
>  scripts/alpine-rootfs.sh                   |  4 ++-
>  7 files changed, 108 insertions(+)
>  create mode 100644 images/alpine/3.22-arm64-base.dockerfile
>  create mode 100644 images/alpine/3.22-arm64-build.dockerfile
>  create mode 100644 images/alpine/3.22-x86_64-base.dockerfile
>  create mode 100644 images/alpine/3.22-x86_64-build.dockerfile
>
> diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
> index 6fa1d56..c9c0d43 100755
> --- a/scripts/alpine-rootfs.sh
> +++ b/scripts/alpine-rootfs.sh
> @@ -40,6 +40,10 @@ case $UNAME in
>              # QEMU
>              libelf
>              )

... wants to be a comment here too.  I can fix on commit.

~Andrew

> +        if ! grep -q VERSION_ID=3.18 /etc/os-release; then
> +            # QEMU
> +            PKGS+=( libdw )
> +        fi
>          ;;
>  
>      aarch64)



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 21:15:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 21:15:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185834.1507793 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUAUK-0000q2-Ii; Fri, 12 Dec 2025 21:15:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185834.1507793; Fri, 12 Dec 2025 21:15:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUAUK-0000pv-EV; Fri, 12 Dec 2025 21:15:44 +0000
Received: by outflank-mailman (input) for mailman id 1185834;
 Fri, 12 Dec 2025 21:15:43 +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
 <SRS0=lRu3=6S=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vUAUJ-0000pp-He
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 21:15:43 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b5e78f0e-d79f-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 22:15:42 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ2PR03MB7528.namprd03.prod.outlook.com (2603:10b6:a03:556::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.11; Fri, 12 Dec
 2025 21:15:37 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9412.011; Fri, 12 Dec 2025
 21:15:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b5e78f0e-d79f-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=K25BhInNeNgBelBb28XZr2693MOT3aICgPrIjYoSORPflIoqw7qr7R4ChqA/0lOFsdgP5EZPifi+15X0yDHzzVnuTPj+OFB37FqyfA1e9ugfFFRLbub4OrO0s6JKUZhD4pvsSQPXlsKtB9BK1FEHMwOvztvoH+gtaKP0ui8/sam9K24emALCESUT1fxQchSSdYX6LioIh3lxGBoRCVhtzwVgvwOBr8QtiVLVzUfa9xoYL6IzCI4Atj/K7PA9m8I81H+/JHhGhGdhCP4DPj4AQxDdjBGGjwL5lQ4OM3mKosq+LSBrRx06qWqA7G/zDsrBKTO2kisrpg6nhcJLrOvs7A==
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=wFH4s3tUUxz4h9SeXgeyUMc4m57oNKgi5cUchcLDEbw=;
 b=FNxqSgjgAD5NP2RRYjX5FdmC5Vfkg+D2JKHpz3mq5HjhGO/j22WoBnZCvu3ljz0+qmGDQfcxcyOoKX9RTmsP0/uaZ4oilc2APaEBqqbcxDI2hhXjx4aulRdUVzh1eUXclaI5mu5Ke9fEhluOdFMV7AHdtfI3/NR3y92Ktsco4bkOmpBrN4Y8kEZ9JsI+ryYQyDlBMlY28nojqf102WWpQRygVrq8zzV5WRFhcqmuXCfxFcaU6sudvSfJN3paoPsJqFiB/vfpVQUEI8IDKHIBY1Bw3VsV1v/81xLV1p/dBKO+pTlMBb9XnOlvearfrIsgWWwuRNicdSxOhqhdgt99hQ==
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=wFH4s3tUUxz4h9SeXgeyUMc4m57oNKgi5cUchcLDEbw=;
 b=FJxxvW7WiHtPE867/ut9ViC9kR0QN2prODEp+1JsjgrJn9vDA8WeGHgZJTd64eS2oNAlN02UL2rATW8IAV1BbkgmZT4gprJerwDsr3hl+/xZtKFJxMMbFtPktM9N0nZjc8oAHK3vB3vZfdeLpIU26cxB3T8igENKC9ECdQ75QU0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <f79a31b6-9153-47c1-b1c9-21f5aa5c5a8f@citrix.com>
Date: Fri, 12 Dec 2025 21:15:34 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 02/12] Switch Linux builds to use Alpine 3.22 container
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
 <b1d58190ac7e2b65f80542685191944b83338960.1764866136.git-series.marmarek@invisiblethingslab.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <b1d58190ac7e2b65f80542685191944b83338960.1764866136.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0518.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:272::11) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SJ2PR03MB7528:EE_
X-MS-Office365-Filtering-Correlation-Id: 73c870a1-2bea-4951-4285-08de39c398a8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MHI5MGFGUGwxZTA1QlJZb245WVNpSXZDTjY5RzFuUHRNajVFT01yVlBpYlhw?=
 =?utf-8?B?UmZmbmxodE1PTjU0dzVBOHd4bkZqVU4yRzJYeDFtZ24yUmE4MEJQR2hnelUx?=
 =?utf-8?B?S0g4UHNVN3o0UzIxMDNzbnR3Um9JYUZicUpsRlpiRlJ1NU94WEdxTVp5Qmo0?=
 =?utf-8?B?Sm8wS1dVOE9ZMFhGcGFIbnJ0VHBKS050SVQ5K1hBKzdCK29LZUVENTkvNFd0?=
 =?utf-8?B?Mm5hd1hOVHdVcHlTUG5ocHZqVWFjQ3h1VmVNTDE2bCtuKzJHYzZLSSsvR0Q5?=
 =?utf-8?B?RTJPV29abmVEMDFjcjBQYng3VnIvOFY1QVltZEc2VU0vZ0J4WWVJdjIwekFD?=
 =?utf-8?B?UE9MM3VCNHdxc043TER5a0dKMzhOQXQrWERBYmxJVGVLMk5EcEorN1Irdm42?=
 =?utf-8?B?QnloYnc3d2xyR2VjMnE1d0RQeW5yM1NLOUYvd05LMWhEK091MHlrRFVxdVZr?=
 =?utf-8?B?ZGJzSlFoblFNS01ocnFPS3kwNVZkZW9KUmI0L1VFcWhIWENzK0pnOXZEamZx?=
 =?utf-8?B?Sm1GMW5WT0RtLzQ2U1BoSVVDTVhYS0Y3NXAyNVZvTS9lMnFUYURXUytSN2Rj?=
 =?utf-8?B?MDR1L3U2NjF5dWsyelFtQlZqdnI1Wk1McHlDem9md0VjTEJWV3kwWXpNcUZI?=
 =?utf-8?B?RXdpU0dXTnluWmtkdGRGOTNQUG5NaDJsWmZsNDYzSjRMOHR6bTRjVEVlNTVJ?=
 =?utf-8?B?S1ZNb2g0VkhFWTA1emc2aC9FNXQyOWtCaWxVekJmbi9ibWhuU2N3RlVxb3Fy?=
 =?utf-8?B?dzlpbUc2UWVML29JV2IvalVCRUxDYlJoNVIzU3E3YzBsNHlmL3V6YVhZanpO?=
 =?utf-8?B?eWJUeEl2ekgxRGo5bFN3ODJTY3d2MjJJWDhzVHkzNFhMUnkwREI4UGFtcGI3?=
 =?utf-8?B?WG1pT3B2UTFZczRxR2JCcXVMRDdtUWhONDg0aE51N2JqNDFsK3J4OENENkwx?=
 =?utf-8?B?MEV2UDdsbWdqaGZzaWtDbXdsMkc1Y2FaUG5hck9xcTk0MElpLzBaY0tFM3VG?=
 =?utf-8?B?WXY1VC84QVFBdysyNjRpMTkvL0FISmZ3d0s5YU5GcnpKMUEybWREMW5pZ0Ew?=
 =?utf-8?B?bmc2TUVhMUFpNTNYaEJpYUNQQ2lENzdTUjRqN3FjcjJJQ0JYbzdKZk9Xb3BW?=
 =?utf-8?B?TC9iV2ljKy9YV1Z4NkZseXVyRHExaVJYakRHK0cweGJGcjlwdHpGbUcxTnlB?=
 =?utf-8?B?ektQZWU4VWdmVzdJVVhhY0NRZVRwSGVaTzN2a0VNVTEvMklhTzZhdU4rMzNU?=
 =?utf-8?B?QmtZdU1sRVJpVmVJQUxQa2l3OUpQL2pQeDB2YXRMRmxkditqNDJVdUNCdENm?=
 =?utf-8?B?dGNqMUxnTVFnZFZmSGpud05ORkVzbDhQTlY5ait1NW9xbllDeElEenErN085?=
 =?utf-8?B?d3pTUkhTbmUwdkczb3cxQW1vUUk0SndyTGJKV0luM3Robi8razExVEdnLzdI?=
 =?utf-8?B?V3YvV0Y5ajJwakpEcFl5VWltWjMxYXhaV0JJOFptWmg4WEJBRm4vd0lMNDky?=
 =?utf-8?B?L2dhY3Y3OHMzZUlBSHJ4VW9Hd3RsN3RUdXpNWWE1aVhYZ1VxcFRORUtNczNp?=
 =?utf-8?B?ZmxyNU52MVg1Rm1KNmVEdUtPUW5IcDZJVG8wdEEwU0VwZGptd2M1QUNNaVg0?=
 =?utf-8?B?SzBadUFpNUdhR3JOQmxmdVhoZGhTM1FNR0publlLYXp1Sk9INy9OYkIzUkFS?=
 =?utf-8?B?czdHRmNhWlFCc2k5VXNkUDdVdFZCejZBRlFBbUxPbEF5dHZJMUIvTXNyY3Iw?=
 =?utf-8?B?WTkxK3RiZEx3cVJ3SitPQ2UxU0g4ZkpzRWxROXlLQ2Jza2NvVnBIN3I3cko4?=
 =?utf-8?B?cXZOZU1qVDJ2SE9iUjc5MEFXVzdpWFZKQ25GSEFEai9BMlptMm1yU0N4THRn?=
 =?utf-8?B?WmRhRGJBOE4xQTBOSFZQTkVpNEIrT0Rla2VMU0gwVVdnY0NFQnU4K3kyRkI1?=
 =?utf-8?Q?flM48WpQa6egUNVcTMkv+GHBKV+4aPLa?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RkMwbUpGNk41akZzdHhscjRRaXZxUEh1eEc4SWl3L1NVenV4bmRJeUp0KzYy?=
 =?utf-8?B?U2s1K2JLMGR0aERGUG9iMGZRYm1HMG9jWE53Zlhocmt4eVdnOCtXOStBZXhP?=
 =?utf-8?B?NTdaMDRwQlJMQU80YjdxdHRsNXVFUm53ZXN3TTdiTnQ2RXEwOWtBeDdRWloy?=
 =?utf-8?B?Um16T1hvM1AyVWFSdlY4cGhXMWRnaldHbzNZRmkvYTgwOFVvdjVtdHBOQ2xE?=
 =?utf-8?B?RFJmSzZ0SnpBY0lqYnpsN0k2WWgxbFE5VU5lZXVhY25JNTVsbHFuVXFVUjlx?=
 =?utf-8?B?Y1BLNFA4clBFTmUzUXRjS09YOGhUUzVIdUR6ak01UmdmZ20wTXNsNnpRY2RZ?=
 =?utf-8?B?TGhRa3RWY1VGOXlOdFJVVlh2WUdJR3J2N3YrS1BDNGxUeFh3U2s3WVdwV0Fv?=
 =?utf-8?B?WHEzd2xucENRUXN0RjduSVVPd0g5Zkc5UGxWM29SUHN5WHBVZkE1cjBvc0wx?=
 =?utf-8?B?a0pvbG1Wb3BIL2w2YUp3WUFUc1FrZ3d6K1F1Z3lWS0l1MHVhWm9mZE1iekRi?=
 =?utf-8?B?MStKaW9FR2gzY1EyV2RoYWVQRENDajVQOWdrMmVQWEswK0M2cFhReHJpclJi?=
 =?utf-8?B?ZExPVHFmMmcvZVkrT0dzTHpRbzBvNCsxaHlnZWJxM3I1M3NmcG5MeEFjVkJm?=
 =?utf-8?B?VVRHTVNma25GUW5xK244aXdUMGtRaXhYKzkxbXQyTVdVVHlZZi8wNlZPenNw?=
 =?utf-8?B?Q2Q2VGprUHh1SlFBRitBWlZiT3RHU08zRnVWSkljbjRITzU5SDNXZG44c2FK?=
 =?utf-8?B?NWFMNTRTVDNmSGZyOGFDckFIcytXUGgyTWNaVnEvVHFmeWdYWFpqdkRDZkhX?=
 =?utf-8?B?cFB6L0hjNmk5MlpWNnJ5WG1EcTJXL09XVC9aVS9qOGJ1Ym1kWVh5V3hFczVB?=
 =?utf-8?B?dEd2bkxFdUNhMEV1R1VLRW1OTmJRaFA2YUVIV2hIb1lMRTQyeEdDeDJWOVVo?=
 =?utf-8?B?YjJyQWM1S3EydmtOQ1JzYXZ6RnpoY0krSTZnZDB3WkhkUkorQWNsYWlwbG11?=
 =?utf-8?B?MU9abHVLZVcyYjZRMFltd1JjOUVwZlhheC9pQlZjM3YvbXpWL1YyaE43Q21R?=
 =?utf-8?B?RFgwL1NidlZEWVVzSms5MUh5czV6VmREZWw1M2xPdVZNQXMrM2w3aWV3ZlR2?=
 =?utf-8?B?VE9IUnlkSzd5Vmp1bDltMGxPNHFZaVZ1VENIR0ZBUE5xeHN5UDZ0QWFiL1RJ?=
 =?utf-8?B?R2N2eVdEbmZNd0RVaERWUVplYUhTWmQ1QUhzTDhIanQ3WXZzRmV3VkttZGxH?=
 =?utf-8?B?cWFwUDBidTlkcStPNm1WKzRSZGQzMUpxd05iYkV2V1VFRTZQVXpIMldHUWpV?=
 =?utf-8?B?SlFkWWNHV3FVcXN3V3V3ZnQ2U01OSkI5RlNnTnd1Z1d1NnBkNng3VDl5QkNn?=
 =?utf-8?B?NWdTSzE2dUYwU21EVEgyY1FGQ0RsV2tROC9sdnRrcVo0cTA0c3V2UCt0Nisz?=
 =?utf-8?B?MDB3eHpSVUhpSlRweWlnOFBpdjRMdHNIS01rTGU4czZralA3SDQyVFBVTWFF?=
 =?utf-8?B?UjhaMjVJQ0pPNE5oRk5ROS8yU0FmaHFSZXFMOXV2WWRSK29ZdjRpZVJoVXUr?=
 =?utf-8?B?NjdxTnJvSmZGRCtFcmFoWkFORmJoYzN2ZUFiS2RoNkNNVnl2TzRsMmNwZmJN?=
 =?utf-8?B?aklLNGlWQ3F1OFRqN1ZLK1F6MmdzSzd4UVhmQVc4Z3RmbXVPSUtmajR4RGJy?=
 =?utf-8?B?aUFnS2FKaDZFTDdaSGRVcktYazRIdHR4aEx1SFNVdWlBc0dxaTYxYjZLbDNw?=
 =?utf-8?B?NzVpWWppbFJUSkVUanlhNUhBWDZQd2hiQ01LTXhRMFJReHNuY3BDSGZZTkVF?=
 =?utf-8?B?c3cwTjJReXoxQ1E4R1ZWMW8vN0J2SDd0VGVocmxjUi96b05QZVM5dk5Xa1NO?=
 =?utf-8?B?NHZ1bVFlS1VzN2ZwZVBQK0NJdk9JajZqd0hGOEgxbWVxc3NIcnMrVUFWOW1m?=
 =?utf-8?B?MXczRmNGamNvRExqVFR6Q1FHNFQrRzI5SnFlU0hpNGFEM214NExzR0xxaGtE?=
 =?utf-8?B?bGJmUU9IcmhaK3dZK1VUSzBFTHZURXFTTkJpM1pOZktmMTFhTU9KeU8xL0Vx?=
 =?utf-8?B?QkFORzNWenhpSmszWnBudUorWlNuSFRyb0cyWUpWSzRLL2JZcVpFV0Nrc2FZ?=
 =?utf-8?B?Qk1XRENzYlI4dXl0VkxZeXlud05la0xuTGlFWHNoRVRxR2ZYbVBjOXduQ1Zl?=
 =?utf-8?B?SFE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 73c870a1-2bea-4951-4285-08de39c398a8
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 21:15:37.7269
 (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: xeYwJBfjnist6eJBI2P3HIwn816KJsMT9g4KYVudG4dUZerjcEdWn/C5zQPnnyA+6RwmKKYr3WGYQ2/cVNMGaDrz3jBVMry54Jf+Fqillbk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7528

On 04/12/2025 4:37 pm, Marek Marczykowski-Górecki wrote:
> Slowly phase out 3.18 one.
>
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> ---
>  .gitlab-ci.yml | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 17d25ce..36622c7 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -21,14 +21,14 @@ stages:
>    tags:
>      - arm64
>    variables:
> -    CONTAINER: alpine:3.18-arm64-build
> +    CONTAINER: alpine:3.22-arm64-build
>  
>  .x86_64-artifacts:
>    extends: .artifacts
>    tags:
>      - x86_64
>    variables:
> -    CONTAINER: alpine:3.18-x86_64-build
> +    CONTAINER: alpine:3.22-x86_64-build
>  
>  #
>  # ARM64 artifacts

Just to double check.  This should be safe because it gets us a newer
build environment for Linux, but the resulting kernel and modules are
not tied the alpine runtime.

i.e. I can commit this to test-artefacts and it won't break Xen's CI ?

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Dec 12 21:32:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 21:32:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185855.1507803 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUAke-00045A-1e; Fri, 12 Dec 2025 21:32:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185855.1507803; Fri, 12 Dec 2025 21:32:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUAkd-000453-Tn; Fri, 12 Dec 2025 21:32:35 +0000
Received: by outflank-mailman (input) for mailman id 1185855;
 Fri, 12 Dec 2025 21:32:35 +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
 <SRS0=vPyE=6S=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vUAkc-00044x-RI
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 21:32:34 +0000
Received: from fout-b7-smtp.messagingengine.com
 (fout-b7-smtp.messagingengine.com [202.12.124.150])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1081d8bf-d7a2-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 22:32:32 +0100 (CET)
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfout.stl.internal (Postfix) with ESMTP id 7DCE91D00112;
 Fri, 12 Dec 2025 16:32:30 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Fri, 12 Dec 2025 16:32:30 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 12 Dec 2025 16:32:29 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1081d8bf-d7a2-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1765575150;
	 x=1765661550; bh=p/wZERNdh5bjulE/fxRfnW/S7pEeyAkpaDPTdkEdhUc=; b=
	rUcvKBOe+bFbPa8dBHKeZXo8bWqrH23uFugmpHpzMBcDjj9wcSMmsKxD1S1qppGw
	+zf5GCXDfc1jgeAqY8p0Rmy/CblXAhVAuGb5a7TlooflRRUtbzymz3n5lu0ZYCr7
	IcyYxJhO7f0TnO4Bh3RARIT1D1m3Kw+4nbk/Y7I/DFk2fFF3puoDBzpKMtemjPFW
	zkJeyrX315BB0rBXHysJ39vYAjCbV5WabIQAeoLqHi3eewad9DXJHaauP/r3qxhg
	Yc/gDf9okAQArD5YHMdmqRlWtoGxJ1HFxRKe7ZMoI81OMPQSLzhxeChrTamvdk1I
	5P+urR8xy9wequHBL8/tEw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
	1765575150; x=1765661550; bh=p/wZERNdh5bjulE/fxRfnW/S7pEeyAkpaDP
	TdkEdhUc=; b=Wh4qzdXg19WaNbR3/oDqwGehKI6E+b3gfZOL3DjltkJBuswaciT
	l/Rj6oZ+mWvj+xy/CibIkWst15rNAWFdoxWd8+hUwwCLvFyAcihWXMoP8H8IyA6l
	IhogyBMoieVQ9O5dzBeJ1yu6sSqTGwWGiAXkJcWJttEAv++8KySzpnmLOgyNWTin
	n5IUyCWPMmmPbB+nJW1tTcyv4NHsUkryfBASXftEGlzguCtV7CTE0PjzwgWy/zZP
	CnDURmVqxZN46YR/bf0VfWDDu/8SbMfAPcRyxDgKB/iFDHWcvsV+31I6r3NhL0sn
	SfCC62A8Xct5GMLYIqMS92BB1blIGjDhjNw==
X-ME-Sender: <xms:7ok8aYpo22LXAO3t-t68sBKtqbK7WxfuwdBwRIm6_YAdJ09ksVyxBQ>
    <xme:7ok8aVo_vqWyu8SGbDFOQjrd8DG56al_Vh45qCNudGFGj-El_Rpn-OllWO85TwQV9
    Q6t6xcr18WKsYV7R4OGtr8b33sbTY4cfp3ScrsT6IKkXK16>
X-ME-Received: <xmr:7ok8aSPjzV9t5kO31_6uiGbEhNR3ut976Oc-6_BEx4gKKW-fRIqSHudnY0OplnyfQfaGw-i-pKaO5F2dyaBRDccbUkn4t-WigvI>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvledviecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgudelteef
    vefhfeehieetleeihfejhfeludevteetkeevtedtvdegueetfeejudenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghi
    thhrihigrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnh
    hprhhojhgvtghtrdhorhhgpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhn
    vghlrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:7ok8aew1H1z5HMPEULur1IEFWlhNim_MgiT4m8_EOIDlM_NW05ZuTQ>
    <xmx:7ok8aTszjU5NvdHdrWSOAcjOXZbDaE26Ey4UBoULApYfvmvwDV8A-w>
    <xmx:7ok8af4fIAGMuyl9uYI7C4xdjfbO2sFAtJwrGgaw87uXwfnQ-WWhbA>
    <xmx:7ok8aaTmfqGqMhklvGV6oHjWq-VGXcGxn2ksuyaE_ve9YG2t5HuN8Q>
    <xmx:7ok8acgXDIpyuKlL0Yk57rzvBCjd0DZCoVVHjju5wUPqim3q37wzSEnJ>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 12 Dec 2025 22:32:27 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 01/12] Add Alpine 3.22 containers
Message-ID: <aTyJ6yyR1U1C2PLI@mail-itl>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
 <08274c26cc710d3bfa87a66431f441b5703df272.1764866136.git-series.marmarek@invisiblethingslab.com>
 <dd3225bd-d416-4b61-8e5b-0a0637b0193e@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="LvivmXX/wf7Sej/c"
Content-Disposition: inline
In-Reply-To: <dd3225bd-d416-4b61-8e5b-0a0637b0193e@citrix.com>


--LvivmXX/wf7Sej/c
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 12 Dec 2025 22:32:27 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 01/12] Add Alpine 3.22 containers

On Fri, Dec 12, 2025 at 09:12:38PM +0000, Andrew Cooper wrote:
> On 04/12/2025 4:37 pm, Marek Marczykowski-G=C3=B3recki wrote:
> > Add it in all variants:
> > - base container
> > - build container
> > - initramfs archive
> >
> > libdw used to be part of libelf in Alpine 3.18, but it's a separate
> > package in 3.22.
>=20
> I think this ...
>=20
> >
> > Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblething=
slab.com>
> > ---
> >  .gitlab-ci.yml                             | 14 +++++++-
> >  containerize                               |  4 ++-
> >  images/alpine/3.22-arm64-base.dockerfile   |  6 +++-
> >  images/alpine/3.22-arm64-build.dockerfile  | 31 +++++++++++++++++-
> >  images/alpine/3.22-x86_64-base.dockerfile  |  6 +++-
> >  images/alpine/3.22-x86_64-build.dockerfile | 43 ++++++++++++++++++++++=
+-
> >  scripts/alpine-rootfs.sh                   |  4 ++-
> >  7 files changed, 108 insertions(+)
> >  create mode 100644 images/alpine/3.22-arm64-base.dockerfile
> >  create mode 100644 images/alpine/3.22-arm64-build.dockerfile
> >  create mode 100644 images/alpine/3.22-x86_64-base.dockerfile
> >  create mode 100644 images/alpine/3.22-x86_64-build.dockerfile
> >
> > diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
> > index 6fa1d56..c9c0d43 100755
> > --- a/scripts/alpine-rootfs.sh
> > +++ b/scripts/alpine-rootfs.sh
> > @@ -40,6 +40,10 @@ case $UNAME in
> >              # QEMU
> >              libelf
> >              )
>=20
> ... wants to be a comment here too.=C2=A0 I can fix on commit.

+1=20

> ~Andrew
>=20
> > +        if ! grep -q VERSION_ID=3D3.18 /etc/os-release; then
> > +            # QEMU
> > +            PKGS+=3D( libdw )
> > +        fi
> >          ;;
> > =20
> >      aarch64)
>=20

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--LvivmXX/wf7Sej/c
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmk8iesACgkQ24/THMrX
1yz5JAf/bUQskNY10T13wDPfkLedOBjwBu6b3cfEWmmtmyKy8504fHOb4nnQZ4Wg
g/vH946GWYnAbJoNc+QYSZfY8c0C1m2R+g8MJUDuM6eqLb8sU6QqEaw6ZJBz9rpD
tb1gGVUoO1sXrLlM87SO2Old4sBx4o+Sfa1/U35CJf/JmUKYbDtgzytgDm68CU29
MKiMFqY3raQwEUT/XmZA6X0PKQczJyIu1mlpneXmHokTfjhSlWmGyGYrVGV3tkfK
80Tyn6QBRs4+fCI6ZoYMBZN0CBMqKzoU8B+x+m2qBfmgAEIrLa1EXLMchPUbE7CF
mq5ZCcg8CNyhZPnFkGcVrAIHJvOBIg==
=IR37
-----END PGP SIGNATURE-----

--LvivmXX/wf7Sej/c--


From xen-devel-bounces@lists.xenproject.org Fri Dec 12 21:34:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 21:34:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185863.1507811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUAmI-0004a3-AV; Fri, 12 Dec 2025 21:34:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185863.1507811; Fri, 12 Dec 2025 21:34:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUAmI-0004Zw-7Z; Fri, 12 Dec 2025 21:34:18 +0000
Received: by outflank-mailman (input) for mailman id 1185863;
 Fri, 12 Dec 2025 21:34:17 +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
 <SRS0=vPyE=6S=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vUAmH-0004Zq-0K
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 21:34:17 +0000
Received: from fout-b7-smtp.messagingengine.com
 (fout-b7-smtp.messagingengine.com [202.12.124.150])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4e84ea0d-d7a2-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 22:34:15 +0100 (CET)
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfout.stl.internal (Postfix) with ESMTP id B0D351D0001D;
 Fri, 12 Dec 2025 16:34:14 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-03.internal (MEProxy); Fri, 12 Dec 2025 16:34:14 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 12 Dec 2025 16:34:13 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4e84ea0d-d7a2-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1765575254;
	 x=1765661654; bh=2+YzOw1U5rJDpRAuNhuLJtLfCR/ST+UE/HlgIi/6LxU=; b=
	ohd4LqndH+u44ivtlPFshgkg1MMqXG9E4x3gSFxQHOtgnhFybPK+yxI+2LmHNnPQ
	16UOM/FW9Xptb31ks0ZuzgCSwhUyu9YzZDcB87SokR5t7MoH9VSpNy2T7+s5Gcke
	KWZ3QXcUnyo68ro+RTJs0aGF89S/hZQBjWmOubS1OFGJzIQmXZ4mSkCWR67qAkFi
	IeW3bRlpCtFLG8zqn4Bp3DqCXOa3Zbmlz3yP19H3+DFPHUOR+3Mj5PvEwTxTBIBj
	0frdaeZN8QqYRM1WkcIQKDMbOkssAujsy4R8FVPuYbBwIytHSmUwn3Tm4u1RrpuV
	g1l+6iU9nXE0ko8eOswYug==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
	1765575254; x=1765661654; bh=2+YzOw1U5rJDpRAuNhuLJtLfCR/ST+UE/Hl
	gIi/6LxU=; b=jJm9xSMbxK77UHy4sTkOte7Kpl29DGyfn8gsc48Ve0Hcwp5VS4m
	vGaUIHgaIYoCptmexrSymNDmPYw7HCnINRlmlJzI+UdNnYq47Llce7kYP4COi96X
	/Q/K0lY4byUyO439vHVd2CpLT1LYjFK38c0tnXS2BZkZ9fo2RQ09hjplwdP6leC9
	63zajC/TKSk0pIflX8dreiNa8lwkFyDa+uxgGxoz1TsJlsxBaZOCPdvwexsulkd+
	GcjXXGVmW2kv8LD2fSnfrWZwDUP576CjwHxvXm1GXNW+OcUNCSScha3XnJbAd+OO
	6U/bpdInsHihuoK4GmeDxXSeXrqaXlNXJpA==
X-ME-Sender: <xms:Voo8aWxhP7WKLS0kTbmjsKEIXy1BYAEAbOD-2PeyCwUJsxooMhUmjA>
    <xme:Voo8aZRDQvjSk4T6g45AatZCbkH7rPxH2ZPD_4e7sVR1B_eXkqdo48BMPRreX5Q-A
    5HhXUWrExngpJED4p5mHsPZq5Sqo8lvUaTCNoOjwHGUVoX9cA>
X-ME-Received: <xmr:Voo8adXLR09nGY3bLpZAPQZq8TAesOSprGNawVKH8d7ijcRNIwbPznlDAL_PMM_G-Gui_Jv8-dz9YHh85XG1QgRBamFE-LFG1R0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvledvjecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgudelteef
    vefhfeehieetleeihfejhfeludevteetkeevtedtvdegueetfeejudenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghi
    thhrihigrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnh
    hprhhojhgvtghtrdhorhhgpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhn
    vghlrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:Voo8abY1L7oNqzIv-S4V2DN6E0ln7H9mIz0ruNV-2fwRdV_a6cNBdw>
    <xmx:Voo8aT2YZLVV8LDdRxHxyUuPLhUR8fvILW8WJV0wg6jfEa3h9M_E3g>
    <xmx:Voo8adjtbSnu2r71dLL53ObjSH2QGnJKN2Zd3ztooDer87w9ASk94Q>
    <xmx:Voo8aXZoiYIj5txYLEn8Wf0Y1aWIhoEoEwgwAB5NlKRxh14sgQjjDg>
    <xmx:Voo8aZq7sXf_OlhQTJOdbTFdNzQawCobD3jB0OSch7d5IadN4JEs1T_0>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 12 Dec 2025 22:34:11 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 02/12] Switch Linux builds to use Alpine 3.22 container
Message-ID: <aTyKU-KyOhMuvvuf@mail-itl>
References: <cover.fb9bd2be49ef9017f3552508f8c59849b8c0086f.1764866136.git-series.marmarek@invisiblethingslab.com>
 <b1d58190ac7e2b65f80542685191944b83338960.1764866136.git-series.marmarek@invisiblethingslab.com>
 <f79a31b6-9153-47c1-b1c9-21f5aa5c5a8f@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="Hdu4f8EpiRufg3m4"
Content-Disposition: inline
In-Reply-To: <f79a31b6-9153-47c1-b1c9-21f5aa5c5a8f@citrix.com>


--Hdu4f8EpiRufg3m4
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 12 Dec 2025 22:34:11 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 02/12] Switch Linux builds to use Alpine 3.22 container

On Fri, Dec 12, 2025 at 09:15:34PM +0000, Andrew Cooper wrote:
> On 04/12/2025 4:37 pm, Marek Marczykowski-G=C3=B3recki wrote:
> > Slowly phase out 3.18 one.
> >
> > Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblething=
slab.com>
> > ---
> >  .gitlab-ci.yml | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> > index 17d25ce..36622c7 100644
> > --- a/.gitlab-ci.yml
> > +++ b/.gitlab-ci.yml
> > @@ -21,14 +21,14 @@ stages:
> >    tags:
> >      - arm64
> >    variables:
> > -    CONTAINER: alpine:3.18-arm64-build
> > +    CONTAINER: alpine:3.22-arm64-build
> > =20
> >  .x86_64-artifacts:
> >    extends: .artifacts
> >    tags:
> >      - x86_64
> >    variables:
> > -    CONTAINER: alpine:3.18-x86_64-build
> > +    CONTAINER: alpine:3.22-x86_64-build
> > =20
> >  #
> >  # ARM64 artifacts
>=20
> Just to double check.=C2=A0 This should be safe because it gets us a newer
> build environment for Linux, but the resulting kernel and modules are
> not tied the alpine runtime.

Yes, they shouldn't be specific to alpine runtime, and I'm pretty sure
we already mix Alpine and Debian here without issues.

> i.e. I can commit this to test-artefacts and it won't break Xen's CI ?

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--Hdu4f8EpiRufg3m4
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmk8ilMACgkQ24/THMrX
1yx6pAgAiF/mE+3d3tFQZ5VFlIDm/gPYUV/K/0fYDvc96EnVoPZKShv7i84C9jAX
ve4kN4ahq+HmvXWA7T6ZfCHmHt1A7cLbvlcKRmrSWLZHkR17vKRG9WK6KUNaOdh1
T5GAz8awhsBfMObbtP/UkuLctugTpfZxqnWxCFA5n5+AUXZ68x20aXBrSSsP06EI
FmSNQLsrA4iHflUBfFaOidvd1+U9fanlJXMdeApwkur9IeJbIGcENZHRy/WMATvP
bCWo1G4rP5WFrPukwRu4+3G5iD7fdYD2zQLwVZPzbdmFUM4L8pCU4nfAXELaUqHW
up8CRN4TWsCOHknyTH8niI+U6bGDvA==
=8/la
-----END PGP SIGNATURE-----

--Hdu4f8EpiRufg3m4--


From xen-devel-bounces@lists.xenproject.org Fri Dec 12 22:20:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 22:20:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185897.1507837 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUBVA-0004RB-50; Fri, 12 Dec 2025 22:20:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185897.1507837; Fri, 12 Dec 2025 22:20:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUBVA-0004Qr-0j; Fri, 12 Dec 2025 22:20:40 +0000
Received: by outflank-mailman (input) for mailman id 1185897;
 Fri, 12 Dec 2025 22:20:39 +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
 <SRS0=SbWK=6S=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vUBV9-0004Ar-3i
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 22:20:39 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c97c5cb0-d7a8-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 23:20:38 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4779adb38d3so13644855e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 14:20:38 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fb38a977esm6314350f8f.12.2025.12.12.14.20.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Dec 2025 14:20:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c97c5cb0-d7a8-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765578038; x=1766182838; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UtChIVPu0BlsEPgndceh88YwfrCdmpi/AIn67jRojGc=;
        b=ZeLVW29nqfNc0g+8SmI+MvE2OTKMfYqyEm2ijOS3d70zG0A8a6etKYlqWLIOoE/2ur
         ZoC/AaTf0+lk4B4CxT5jghPil8U1k+NrlnyNSJTVEa5rHJnZdIJqTTTfIZtKDPpOtmob
         y7VJxOCg7kMCsO5lUbO7tyB5AtntewqGu6EuM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765578038; x=1766182838;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=UtChIVPu0BlsEPgndceh88YwfrCdmpi/AIn67jRojGc=;
        b=MhyJoMQZIai/i3U+gRu576cx9nqGjY3pJTcVaFqV+MXcVPHPt3ogrcirnEPHFFxQKq
         GtP4CFpcRRtnt446nuFnfolfPtxjB/YVElXDZrBj/Qk3rZebZTBCbxa9n0xXs5FXgmrP
         4LRFU+IbYtZ/ZJ/4NoUaTgQKVHBKFyOV7oHXgNutD96BXyKAEw7Raw1djKjGvaSrh0il
         O801uQK7KawvGa1I8+6W+xpexWfh5o+oGDFXBluCfpiSh8zQAOhx5ZkEe2Em2MSacbIS
         4QCdu7yWe/ham2nqQ81nZy06mZ7q6tuWRf8q/vJh8FdJLDhXC/gBz5YkIqsjLv9ERBDU
         xaQw==
X-Gm-Message-State: AOJu0YxTxoJtwlurUOjsCoMWKf8h8le+Gq7CVN3ppAq3CsgsX668FTNZ
	pad/vtRYC7j0GaQL86v+E5g98ABEuTSdp0rPnOMndAuKnhnT5MDGVX0V8yAJjF930bihOHI4V20
	bpHFs
X-Gm-Gg: AY/fxX7omZbKMwTj56+mQ8kD4VtZQAL6wL7a7ytnNLP4SF4BRppN4VPk96vN3u2z5b3
	ekuIpgI4wxwNp5INjoh4XV3kal0LBKKIevv9UtEIVkik0/Jo55VzD+5g3JaE/2Af1XIYZ0YlbAT
	GdUIjLoJJ7iZqDxyTMkE1cquIN77dKVzOAis5AcEwcU1aKhECMGxXTnThGD7WLGquReWiI/v5DL
	BcGSTqqPukZ9Abczk2i4NgDD/+XJsU5Cd49IE09/mOHCBXl9eELC7ONghIdLZuHdVv7kgPO0lSQ
	ygL10g1DdabrKgvjU+ns5Y+R11o/0jeROp3RQtps8CV/s6Bmu7wj/kzO4XLcwZClUCO+AryDqhu
	EjEFZNfsEzfnAUKW51TkwmLs3wTlKRcRdT28dZKb0/QYqvFxnxonyXpoRRGLQronXDOI+P2C3Mj
	hAGm5MPkXJYMzB47eCXRp1EyoecUqFJB7rSbkWd1gLOPUflZlcyKxSX4UPg2JPmw==
X-Google-Smtp-Source: AGHT+IEEhwGOvC1NWFj0FHtn2MKgrphtOCvdtqOghBBeK7Hvaw39jEigq6qqiNLqGTLTDh/euTzATA==
X-Received: by 2002:a05:600c:8115:b0:47a:7fd0:9eea with SMTP id 5b1f17b1804b1-47a8f8a9c1bmr38046705e9.3.1765578037115;
        Fri, 12 Dec 2025 14:20:37 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 3/5] x86: Address MIRSA R8.3 (declaration/definition mismatch) issues
Date: Fri, 12 Dec 2025 22:20:30 +0000
Message-Id: <20251212222032.2640580-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251212222032.2640580-1-andrew.cooper3@citrix.com>
References: <20251212222032.2640580-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

These are mostly name mismatches, but a couple have type alias mismatches too.

For shadow_put_top_level() and is_patch(), the declaration name is the better
choice so change the name in the function.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/include/asm/hypercall.h |  4 ++--
 xen/arch/x86/include/asm/pv/mm.h     |  4 ++--
 xen/arch/x86/include/asm/shadow.h    |  2 +-
 xen/arch/x86/mm.c                    |  4 ++--
 xen/arch/x86/mm/shadow/common.c      |  8 ++++----
 xen/arch/x86/mm/shadow/multi.h       |  4 ++--
 xen/arch/x86/mm/shadow/private.h     | 10 +++++-----
 xen/common/kimage.c                  |  2 +-
 xen/common/livepatch.c               | 14 +++++++-------
 xen/include/xen/livepatch.h          |  2 +-
 10 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/xen/arch/x86/include/asm/hypercall.h b/xen/arch/x86/include/asm/hypercall.h
index f6e9e2313b3c..bf2f0e169aef 100644
--- a/xen/arch/x86/include/asm/hypercall.h
+++ b/xen/arch/x86/include/asm/hypercall.h
@@ -22,8 +22,8 @@
 void pv_hypercall(struct cpu_user_regs *regs);
 #endif
 
-void pv_ring1_init_hypercall_page(void *ptr);
-void pv_ring3_init_hypercall_page(void *ptr);
+void pv_ring1_init_hypercall_page(void *p);
+void pv_ring3_init_hypercall_page(void *p);
 
 /*
  * Both do_mmuext_op() and do_mmu_update():
diff --git a/xen/arch/x86/include/asm/pv/mm.h b/xen/arch/x86/include/asm/pv/mm.h
index 182764542c1f..a5745908206a 100644
--- a/xen/arch/x86/include/asm/pv/mm.h
+++ b/xen/arch/x86/include/asm/pv/mm.h
@@ -18,7 +18,7 @@ int pv_set_gdt(struct vcpu *v, const unsigned long frames[],
                unsigned int entries);
 void pv_destroy_gdt(struct vcpu *v);
 
-bool pv_map_ldt_shadow_page(unsigned int off);
+bool pv_map_ldt_shadow_page(unsigned int offset);
 bool pv_destroy_ldt(struct vcpu *v);
 
 int validate_segdesc_page(struct page_info *page);
@@ -40,7 +40,7 @@ static inline int pv_set_gdt(struct vcpu *v, const unsigned long frames[],
 { ASSERT_UNREACHABLE(); return -EINVAL; }
 static inline void pv_destroy_gdt(struct vcpu *v) { ASSERT_UNREACHABLE(); }
 
-static inline bool pv_map_ldt_shadow_page(unsigned int off) { return false; }
+static inline bool pv_map_ldt_shadow_page(unsigned int offset) { return false; }
 static inline bool pv_destroy_ldt(struct vcpu *v)
 { ASSERT_UNREACHABLE(); return false; }
 
diff --git a/xen/arch/x86/include/asm/shadow.h b/xen/arch/x86/include/asm/shadow.h
index 9a8d1b8353cd..60589c3cacee 100644
--- a/xen/arch/x86/include/asm/shadow.h
+++ b/xen/arch/x86/include/asm/shadow.h
@@ -63,7 +63,7 @@ int shadow_enable(struct domain *d, u32 mode);
 
 /* Enable VRAM dirty bit tracking. */
 int shadow_track_dirty_vram(struct domain *d,
-                            unsigned long first_pfn,
+                            unsigned long begin_pfn,
                             unsigned int nr_frames,
                             XEN_GUEST_HANDLE(void) guest_dirty_bitmap);
 
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index b929d15d0050..0d0d5292953b 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -4566,7 +4566,7 @@ static int __do_update_va_mapping(
 }
 
 long do_update_va_mapping(
-    unsigned long va, u64 val64, unsigned long flags)
+    unsigned long va, uint64_t val64, unsigned long flags)
 {
     int rc = __do_update_va_mapping(va, val64, flags, current->domain);
 
@@ -4578,7 +4578,7 @@ long do_update_va_mapping(
 }
 
 long do_update_va_mapping_otherdomain(
-    unsigned long va, u64 val64, unsigned long flags, domid_t domid)
+    unsigned long va, uint64_t val64, unsigned long flags, domid_t domid)
 {
     struct domain *pg_owner;
     int rc;
diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index f2aee5be46a7..f9310d008de6 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -751,7 +751,7 @@ void shadow_promote(struct domain *d, mfn_t gmfn, unsigned int type)
     TRACE_SHADOW_PATH_FLAG(TRCE_SFLAG_PROMOTE);
 }
 
-void shadow_demote(struct domain *d, mfn_t gmfn, u32 type)
+void shadow_demote(struct domain *d, mfn_t gmfn, unsigned int type)
 {
     struct page_info *page = mfn_to_page(gmfn);
 
@@ -2615,11 +2615,11 @@ pagetable_t sh_set_toplevel_shadow(struct vcpu *v,
  * Helper invoked when releasing of a top-level shadow's reference was
  * deferred in sh_set_toplevel_shadow() above.
  */
-void shadow_put_top_level(struct domain *d, pagetable_t old_entry)
+void shadow_put_top_level(struct domain *d, pagetable_t old)
 {
-    ASSERT(!pagetable_is_null(old_entry));
+    ASSERT(!pagetable_is_null(old));
     paging_lock(d);
-    sh_put_ref(d, pagetable_get_mfn(old_entry), 0);
+    sh_put_ref(d, pagetable_get_mfn(old), 0);
     paging_unlock(d);
 }
 
diff --git a/xen/arch/x86/mm/shadow/multi.h b/xen/arch/x86/mm/shadow/multi.h
index 0e938594345a..fc86d7a8d9cd 100644
--- a/xen/arch/x86/mm/shadow/multi.h
+++ b/xen/arch/x86/mm/shadow/multi.h
@@ -89,11 +89,11 @@ SHADOW_INTERNAL_NAME(sh_paging_mode, GUEST_LEVELS);
 #if SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC
 extern void
 SHADOW_INTERNAL_NAME(sh_resync_l1, GUEST_LEVELS)
-     (struct vcpu *v, mfn_t gmfn, mfn_t snpmfn);
+     (struct vcpu *v, mfn_t gl1mfn, mfn_t snpmfn);
 
 extern int
 SHADOW_INTERNAL_NAME(sh_safe_not_to_sync, GUEST_LEVELS)
-     (struct vcpu*v, mfn_t gmfn);
+     (struct vcpu*v, mfn_t gl1mfn);
 
 extern int
 SHADOW_INTERNAL_NAME(sh_rm_write_access_from_sl1p, GUEST_LEVELS)
diff --git a/xen/arch/x86/mm/shadow/private.h b/xen/arch/x86/mm/shadow/private.h
index bc99e00100f7..12cfb52f095b 100644
--- a/xen/arch/x86/mm/shadow/private.h
+++ b/xen/arch/x86/mm/shadow/private.h
@@ -364,11 +364,11 @@ bool  shadow_hash_delete(struct domain *d,
                          unsigned long n, unsigned int t, mfn_t smfn);
 
 /* shadow promotion */
-void shadow_promote(struct domain *d, mfn_t gmfn, u32 type);
-void shadow_demote(struct domain *d, mfn_t gmfn, u32 type);
+void shadow_promote(struct domain *d, mfn_t gmfn, unsigned int type);
+void shadow_demote(struct domain *d, mfn_t gmfn, unsigned int type);
 
 /* Shadow page allocation functions */
-bool __must_check shadow_prealloc(struct domain *d, unsigned int shadow_type,
+bool __must_check shadow_prealloc(struct domain *d, unsigned int type,
                                   unsigned int count);
 mfn_t shadow_alloc(struct domain *d,
                     u32 shadow_type,
@@ -392,11 +392,11 @@ int sh_validate_guest_entry(struct vcpu *v, mfn_t gmfn, void *entry, u32 size);
  * Returns non-zero if we need to flush TLBs.
  * level and fault_addr desribe how we found this to be a pagetable;
  * level==0 means we have some other reason for revoking write access. */
-extern int sh_remove_write_access(struct domain *d, mfn_t readonly_mfn,
+extern int sh_remove_write_access(struct domain *d, mfn_t gmfn,
                                   unsigned int level,
                                   unsigned long fault_addr);
 #else
-static inline int sh_remove_write_access(struct domain *d, mfn_t readonly_mfn,
+static inline int sh_remove_write_access(struct domain *d, mfn_t gmfn,
                                          unsigned int level,
                                          unsigned long fault_addr)
 {
diff --git a/xen/common/kimage.c b/xen/common/kimage.c
index 9961eac187e9..e1aec5a18a54 100644
--- a/xen/common/kimage.c
+++ b/xen/common/kimage.c
@@ -66,7 +66,7 @@
 static int kimage_is_destination_range(struct kexec_image *image,
                                        paddr_t start, paddr_t end);
 static struct page_info *kimage_alloc_page(struct kexec_image *image,
-                                           paddr_t dest);
+                                           paddr_t destination);
 
 static struct page_info *kimage_alloc_zeroed_page(unsigned memflags)
 {
diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c
index d0da2aa28132..7446533c8cfb 100644
--- a/xen/common/livepatch.c
+++ b/xen/common/livepatch.c
@@ -107,7 +107,7 @@ static int verify_payload(const struct xen_sysctl_livepatch_upload *upload, char
     return 0;
 }
 
-bool is_patch(const void *ptr)
+bool is_patch(const void *addr)
 {
     const struct payload *data;
     bool r = false;
@@ -115,12 +115,12 @@ bool is_patch(const void *ptr)
     rcu_read_lock(&rcu_payload_lock);
     list_for_each_entry_rcu ( data, &payload_list, list )
     {
-        if ( (ptr >= data->rw_addr &&
-              ptr < (data->rw_addr + data->rw_size)) ||
-             (ptr >= data->ro_addr &&
-              ptr < (data->ro_addr + data->ro_size)) ||
-             (ptr >= data->text_addr &&
-              ptr < (data->text_addr + data->text_size)) )
+        if ( (addr >= data->rw_addr &&
+              addr < (data->rw_addr + data->rw_size)) ||
+             (addr >= data->ro_addr &&
+              addr < (data->ro_addr + data->ro_size)) ||
+             (addr >= data->text_addr &&
+              addr < (data->text_addr + data->text_size)) )
         {
             r = 1;
             break;
diff --git a/xen/include/xen/livepatch.h b/xen/include/xen/livepatch.h
index 3f5ad01f1bdd..45c8924f3412 100644
--- a/xen/include/xen/livepatch.h
+++ b/xen/include/xen/livepatch.h
@@ -89,7 +89,7 @@ enum va_type {
  * Function to secure the allocate pages (from arch_livepatch_alloc_payload)
  * with the right page permissions.
  */
-int arch_livepatch_secure(const void *va, unsigned int pages, enum va_type types);
+int arch_livepatch_secure(const void *va, unsigned int pages, enum va_type type);
 
 void arch_livepatch_init(void);
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 22:20:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 22:20:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185898.1507852 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUBVB-0004pv-I6; Fri, 12 Dec 2025 22:20:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185898.1507852; Fri, 12 Dec 2025 22:20:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUBVB-0004pn-ER; Fri, 12 Dec 2025 22:20:41 +0000
Received: by outflank-mailman (input) for mailman id 1185898;
 Fri, 12 Dec 2025 22:20:39 +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
 <SRS0=SbWK=6S=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vUBV9-0004Ar-T6
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 22:20:39 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c994d10b-d7a8-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 23:20:38 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-42b47f662a0so944756f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 14:20:38 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fb38a977esm6314350f8f.12.2025.12.12.14.20.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Dec 2025 14:20:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c994d10b-d7a8-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765578038; x=1766182838; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OyZGG1ygUMUNjDL5OLP0NhL/jpu/4gZZc2fwoRc5MXU=;
        b=u1mps+EnvP7auSoNtrTmBX76G4QcGPBLsxbSDde9BQC3JJ3kxBiHxUHGFQVoZ1c3m9
         rU8XkZj5/mHHzyjuALzcsBHp2z3/43pFSmq/Po3I+dJD59FsTEuwfCRwXTf5ZhiIBFL5
         Flm5jNW3ES5C9LExzBizYK0YZgQfON/0W2L8s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765578038; x=1766182838;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=OyZGG1ygUMUNjDL5OLP0NhL/jpu/4gZZc2fwoRc5MXU=;
        b=LL3tPG1453s2cvJI1/UFRKNN6n2u41Zv71JrBeDXtg8iUGqNJwQ3lsdDjTCDewpA4z
         cRCJD9cPj6DXvza4SF3ITz9pNjGU5ej2ezn/Gzq1iW2KGoQhEoOylS1FmQXwE1a6rO4C
         Qj0TtAClKsb9tWtZeZBoWWTy4hBD29LE3CNgZN+hm3Hb0uK8/WBHdkXdqz2Psh6CG3+o
         yiRBDT5kagr8PScTYmdVtgetyyKcozac12nFuZOU0Oto+q44n+hiR46CklmrOU/zCmPz
         k7JQYBrikExVX8/EFIY5m08m3Y9KVFoq/c8aQeNUHtF7yhnmc7BjCv0qpwUsCPzcCXAL
         mMdQ==
X-Gm-Message-State: AOJu0Yx8YWZgBozPSwi+JTdGdquzRn7c1oekFHyIGc3mgY0c24bMBPoy
	cjA6YmAkZiRrP1z1GteMk2XCFPOgAQ/FlxZYnwwLkOoImgYSDl8MHsn3vlh5YTnmagW70+eEev4
	M9C+/
X-Gm-Gg: AY/fxX7CHElMNz04rhxsllb6t3uQLsJXHLGeMsNK4SKCme8jqoRzLLVpu2P9micfyda
	7g5Cw/EBZXeltH5pMANKQKKPJb6QApqYZRP+/FX7Yxgg/PW7557X9uQ6lM4kevrVG+ndrlveaCi
	LM0/Eev9vrH7rUBYhPqN6cFuK2TzpnQOshh0xJzCifh0cBeJw8SOJTU3rJgDbpydvu8oYuzYPaS
	N3atoIYHh/64gcoq6koo3cejxtFb7NVIYT4PFDBLQp2H0wpTxYXJpKu4sOCpCZ542vnqN5p/UnI
	Yri+mdWnACCBMtE5obsgnjRMWdrA/+GKqxfCDvGPH7UZJa7I5vojopQ954y41/BP3Xtmt+aqDbU
	i7Z2P61ZxpMJlbPZTtB9xwSB4jW7YZq9Py07kWD1tikwuvFQIrMHNYEbzXoLN+rSyFyQq8zuHoj
	huTNgWn9WzQ+z99hC8YTy50jMFGlNmhnMab6d2Tnm23wqNL6KLgSM9yx2ddD0J9g==
X-Google-Smtp-Source: AGHT+IEZaNzPYFn3TDq7ikgSgUJ4bznYDpM+vmENe+1Wa9S5DEc+y3RDl3/Lc8P+ud530mgQw3Zj+Q==
X-Received: by 2002:a5d:64c3:0:b0:429:eb80:11f5 with SMTP id ffacd0b85a97d-42fab27d472mr7902693f8f.26.1765578037746;
        Fri, 12 Dec 2025 14:20:37 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 4/5] x86: Address MIRSA R8.4 (declaration visibility) issues
Date: Fri, 12 Dec 2025 22:20:31 +0000
Message-Id: <20251212222032.2640580-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251212222032.2640580-1-andrew.cooper3@citrix.com>
References: <20251212222032.2640580-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

set_guest_*_trapbounce() are only called from assembly so gain asmlinkage to
identify them.

xen_msr_s_cet_value() is called by assembly and C, so asmlinkage isn't
appropriate.  Make the declaration unconditional, which silences the
complaint.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/pv/traps.c | 4 ++--
 xen/arch/x86/setup.c    | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/pv/traps.c b/xen/arch/x86/pv/traps.c
index c3c0976c440f..26a468108a77 100644
--- a/xen/arch/x86/pv/traps.c
+++ b/xen/arch/x86/pv/traps.c
@@ -99,7 +99,7 @@ void pv_inject_event(const struct x86_event *event)
  * Called from asm to set up the MCE trapbounce info.
  * Returns false no callback is set up, else true.
  */
-bool set_guest_machinecheck_trapbounce(void)
+bool asmlinkage set_guest_machinecheck_trapbounce(void)
 {
     struct vcpu *curr = current;
     struct trap_bounce *tb = &curr->arch.pv.trap_bounce;
@@ -114,7 +114,7 @@ bool set_guest_machinecheck_trapbounce(void)
  * Called from asm to set up the NMI trapbounce info.
  * Returns false if no callback is set up, else true.
  */
-bool set_guest_nmi_trapbounce(void)
+bool asmlinkage set_guest_nmi_trapbounce(void)
 {
     struct vcpu *curr = current;
     struct trap_bounce *tb = &curr->arch.pv.trap_bounce;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 44da5efa1d20..27c63d1d97c9 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -877,6 +877,8 @@ static void noreturn init_done(void)
     startup_cpu_idle_loop();
 }
 
+unsigned int xen_msr_s_cet_value(void); /* To avoid ifdefary, and placate MISRA */
+
 #if defined(CONFIG_XEN_SHSTK) || defined(CONFIG_XEN_IBT)
 /*
  * Used by AP and S3 asm code to calcualte the appropriate MSR_S_CET setting.
@@ -888,8 +890,6 @@ unsigned int xen_msr_s_cet_value(void)
     return ((cpu_has_xen_shstk ? CET_SHSTK_EN | CET_WRSS_EN : 0) |
             (cpu_has_xen_ibt   ? CET_ENDBR_EN : 0));
 }
-#else
-unsigned int xen_msr_s_cet_value(void); /* To avoid ifdefary */
 #endif
 
 /* Reinitalise all state referring to the old virtual address of the stack. */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 22:20:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 22:20:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185895.1507822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUBV8-0004B4-Lm; Fri, 12 Dec 2025 22:20:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185895.1507822; Fri, 12 Dec 2025 22:20:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUBV8-0004Ax-IM; Fri, 12 Dec 2025 22:20:38 +0000
Received: by outflank-mailman (input) for mailman id 1185895;
 Fri, 12 Dec 2025 22:20:38 +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
 <SRS0=SbWK=6S=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vUBV8-0004Ar-80
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 22:20:38 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c8a54e1b-d7a8-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 23:20:37 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4777771ed1aso13726785e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 14:20:37 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fb38a977esm6314350f8f.12.2025.12.12.14.20.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Dec 2025 14:20:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c8a54e1b-d7a8-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765578036; x=1766182836; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=F3V4XDxkbSr0Ri1dePMHKcN9nqU1osBYWUXVUX5x7JY=;
        b=VwqSdAFF8r/XsSv8x9La1UigKqTwKVtAo3RBoX4XUkYLZXEAnq1WW4I0pkSsBxQbEP
         GivZDn12ktjteTtu2goG4l0eTYwcrfOtYivn2cRhzcPWxg1DOCR8i9jfALjRneNDRz5X
         9MhdWVzNskhzdd50xZrNoqbeIU+3/HCct1O5A=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765578036; x=1766182836;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=F3V4XDxkbSr0Ri1dePMHKcN9nqU1osBYWUXVUX5x7JY=;
        b=d8DlOjfOgOJWu27OsHGSqNRt57rbWh31zZUEOO8GJ/kSfI5VY8RBGK3kxztN5p6XN5
         2JYlns8rNB8gg9H46cjfI5G4553bj8aNUo/Pt0m89P3OYjL4z9o/zgR/LJnNBi0EMvsD
         1RpEF5QYa+rh7Mbgl1GMOFjlKNorZbbiqgxPXniNObI7bG1X5c1ENgBJVJlcIk511aDt
         Q+DnrTqnjspL2K0+4/8jGK6sb9CBnObu7d++q4zqCiGws/j9eUKZUaWdfyHttNeGtvAi
         iLPBnnv3+QnMg6R581XDNEsiwX/xOQBTZznIZ8tnMo3krCF0Mrqtxdo66wWTOkFygA/l
         En0Q==
X-Gm-Message-State: AOJu0YyMGQImAAtpera07aVmEQzq8QZtNyfJrL1xZw7OWu9d/rE5AlOE
	s6hpurugg4ylshyGeQOO9VMGt8ECZLLaDx5O479kgz/tUo9elnLXvzKIpWUx/GSc4W40njxbVlB
	JD4VL
X-Gm-Gg: AY/fxX4iN4aeKGM8Y2Z5S0b90SPUf0Qshxg7u2eTzZR20DMWk6IDokd+lsslA7ifyiP
	M7Ba9nort8ziK0mavVKelOfKonWOpMiA9d9Pwk8DemT6aWkRWCExGFEbif1BYw8falw8fpw2bsA
	lm39RARdYoDPa3jn66T2cYrVfAhOpMJbHVnOGaNlT0WJ0Y2V3LjoEneHwW9+3ayrun5SnoOwCu2
	bvBYotrkzcJsMzhR161lPkS+3QRs4cQ5BnQ86Aws5PyHKkW/mUWwZGkw0SM61ljYvIUp88ZCCLH
	xhdr/PqaxZEEwHLYgwERcJ/eYQNvNOSgW33Pm2ogfifVS/wg2gCsOA+KaH3En1sRmxBcFccLq7M
	ceqGot1rm/0UzxKc7EawpYYM/qIeyDFXJSW0M2jofBdjYyttP+0It24Wie9F3H49ccV43CM5stB
	49voY4NXzQv7m+h9ZA056HfLD6rW2apta8e6BrV4tweAtsKXeT8RPqQjlzwjy6Bw==
X-Google-Smtp-Source: AGHT+IGy3sxQvwG5V1weoi6H6NHr3oODD+Ye2meubDsh3LN/IRVDmCJMkKKdO37X3muwaN49CuEqjw==
X-Received: by 2002:a05:6000:2f81:b0:42b:3062:c647 with SMTP id ffacd0b85a97d-42fb44b7718mr3433452f8f.21.1765578036153;
        Fri, 12 Dec 2025 14:20:36 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 2/5] x86/pv: Change type of do_update_descriptor()'s desc parameter
Date: Fri, 12 Dec 2025 22:20:29 +0000
Message-Id: <20251212222032.2640580-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251212222032.2640580-1-andrew.cooper3@citrix.com>
References: <20251212222032.2640580-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The automatically generated hypercall dispatch logic looks like:

    case __HYPERVISOR_update_descriptor: \
        ret = do_update_descriptor((uint64_t)(a1), (seg_desc_t)(a2)); \
        break; \

but seg_desc_t is a union and Eclair considers this to be a violation of MISRA
Rule 1.1.  There's also a Rule 8.3 violation for the parameter name mismatch.

Instead of playing games trying to change seg_desc_t to be a struct, or to
alter the AWK generator to know that seg_desc_t is magic and needs braces
rather than brackets, just switch the type to be a plain uint64_t.

The size is fixed by the x86 architecture, so it is never going to change.
This even lets us simplify compat_update_descriptor() a little.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/pv/descriptor-tables.c | 10 ++++------
 xen/include/hypercall-defs.c        |  2 +-
 2 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/pv/descriptor-tables.c b/xen/arch/x86/pv/descriptor-tables.c
index 26f7d18b11b5..8a32b9ae5ced 100644
--- a/xen/arch/x86/pv/descriptor-tables.c
+++ b/xen/arch/x86/pv/descriptor-tables.c
@@ -179,11 +179,8 @@ int compat_set_gdt(
 int compat_update_descriptor(
     uint32_t pa_lo, uint32_t pa_hi, uint32_t desc_lo, uint32_t desc_hi)
 {
-    seg_desc_t d;
-
-    d.raw = ((uint64_t)desc_hi << 32) | desc_lo;
-
-    return do_update_descriptor(pa_lo | ((uint64_t)pa_hi << 32), d);
+    return do_update_descriptor(pa_lo | ((uint64_t)pa_hi << 32),
+                                desc_lo | ((uint64_t)desc_hi << 32));
 }
 
 #endif /* CONFIG_PV32 */
@@ -288,9 +285,10 @@ int validate_segdesc_page(struct page_info *page)
     return i == 512 ? 0 : -EINVAL;
 }
 
-long do_update_descriptor(uint64_t gaddr, seg_desc_t d)
+long do_update_descriptor(uint64_t gaddr, uint64_t desc)
 {
     struct domain *currd = current->domain;
+    seg_desc_t d = { .raw = desc };
     gfn_t gfn = gaddr_to_gfn(gaddr);
     mfn_t mfn;
     seg_desc_t *entry;
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index cef08eeec1b8..5782cdfd1496 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -184,7 +184,7 @@ mca(xen_mc_t *u_xen_mc)
 set_trap_table(const_trap_info_t *traps)
 set_gdt(xen_ulong_t *frame_list, unsigned int entries)
 set_callbacks(unsigned long event_address, unsigned long failsafe_address, unsigned long syscall_address)
-update_descriptor(uint64_t gaddr, seg_desc_t desc)
+update_descriptor(uint64_t gaddr, uint64_t desc)
 update_va_mapping(unsigned long va, uint64_t val64, unsigned long flags)
 update_va_mapping_otherdomain(unsigned long va, uint64_t val64, unsigned long flags, domid_t domid)
 #endif
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 22:20:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 22:20:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185899.1507862 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUBVC-00054N-QT; Fri, 12 Dec 2025 22:20:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185899.1507862; Fri, 12 Dec 2025 22:20:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUBVC-00054E-Mx; Fri, 12 Dec 2025 22:20:42 +0000
Received: by outflank-mailman (input) for mailman id 1185899;
 Fri, 12 Dec 2025 22:20:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SbWK=6S=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vUBVB-0004B7-2H
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 22:20:41 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c81f5f06-d7a8-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 23:20:36 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-4308d81fdf6so27997f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 14:20:36 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fb38a977esm6314350f8f.12.2025.12.12.14.20.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Dec 2025 14:20:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c81f5f06-d7a8-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765578035; x=1766182835; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=J2jJNF67fYLAyfN83jmoeM9RIevMWPKAhBdSFpC71yw=;
        b=pgR+EcEU1qStJe87n/w/E6h26NFxaqHq7JTRmf2Uvrd9Yu9KGtf0fx1vM0BTEKwgnJ
         kbhbx1JqIDX0Cq2wSw8e6ETSpB2EOPTl/NkHFHdMIgGGqwf6+kIwsgxjZpQLvy2fQnT2
         byidWRDoiy58Z/7fmjzlI+qWKwaR5oIZKj4DQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765578035; x=1766182835;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=J2jJNF67fYLAyfN83jmoeM9RIevMWPKAhBdSFpC71yw=;
        b=MDDZFXnOM6oCyCutLeldTNApXG82kowL+N6/ycwtExOIGDkvHCszTiRca96T5jAfz8
         xJf9cTYAiLZxl+fjowfKoPKn87ZUwEovVBANddzXjgi8XB7se/F9k++8PUxA0FqZHuDy
         qeTiPnNIQWr7fRXUsbYYkJ5m9FS/C1Djp/mptisNmBykmKBNF1Of6utaucfHaiEO3t73
         wynWZ0qEQK8EnW0Y+td53ei6WaxdiSCXKRqIVlxsGWS6+tc+Dg1mYUdZxgYqd1wQtGeC
         4UT/P/IJfj953ive/qGeEQSehLFUmXfm3nMHI/iZW/x1tQGMSQ4nCrBkU8yKL519rguP
         BrbA==
X-Gm-Message-State: AOJu0Yx/p/jFaQ+JhmsHXRF0aip4B6h/U1wy4V4/5zOuoIkx188dJHKP
	xAbLm1XhGodZC9WDNPyG+fS2bEDxKPbVIu0okii4THLKiUhfyDhENYTHGlIhL3hYUTokIlCLt/g
	+KTPH
X-Gm-Gg: AY/fxX6ZQmk1TR35a3ZNMbycmVkre/OARMiIwqy0k289tTM8wewjIU1Yx6O2LOkhXgN
	J04j/1OkUD3ddFanR5riO/jdCJuPEAUI9ESTF97Y8zxJxYYZs7FBRsh9GyKN2LIEpOen9f8l8l2
	+puVTC4HbAQIFymVBpWY7Mk1py8NwZWHaqsf9I0e7LL/tXxPMJLNp8AUAacPS+37tkexQQaeY4v
	neDMvkk7aPiGQqGNQOG9zeP98Oc8kColKXKRytGYC8Q2BrVXbBdiYH6kKQoQnxNlTSwcRHlpqol
	3wAGSbmzy/D1qzmXss89flgiQCNLcld3bi4eGpnsGCh99c5V0+UFTzftfWH+KTctXQQDQrGbZ6j
	FRHQ1ZFu+8xVtD0yCyD9sE7mw3khNiN17nYzr384RgsIuZbzJwCTkK1VSzf6BIzAbYUpl2n+ydd
	EYiEmy5Eg/tSCp3HQHd0cm+w1yKZTtHfDY9Q7SPAXil++1vEyaEmldWSHxwiLqTQ==
X-Google-Smtp-Source: AGHT+IHO5r/jR4Vcpk95h9FsfiDZDba+aLvhZPBUi02jL0KsDN0U1YAhQvWJeaQkVM0/BNpFgfil0Q==
X-Received: by 2002:a05:6000:2c12:b0:42b:3bee:a7ff with SMTP id ffacd0b85a97d-42fb44c1629mr3889464f8f.24.1765578034809;
        Fri, 12 Dec 2025 14:20:34 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 0/5] x86: More misc MISRA fixes
Date: Fri, 12 Dec 2025 22:20:27 +0000
Message-Id: <20251212222032.2640580-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Andrew Cooper (5):
  x86/pv: Address MISRA C:2012 Rule 4.1
  x86/pv: Change type of do_update_descriptor()'s desc parameter
  x86: Address MIRSA R8.3 (declaration/definition mismatch) issues
  x86: Address MIRSA R8.4 (declaration visibility) issues
  RFC x86/shadow: Deviate multi.h as being included multiple times

 xen/arch/x86/include/asm/hypercall.h |  4 ++--
 xen/arch/x86/include/asm/pv/mm.h     |  4 ++--
 xen/arch/x86/include/asm/shadow.h    |  2 +-
 xen/arch/x86/mm.c                    |  4 ++--
 xen/arch/x86/mm/shadow/common.c      |  8 ++++----
 xen/arch/x86/mm/shadow/multi.h       |  6 ++++--
 xen/arch/x86/mm/shadow/private.h     | 10 +++++-----
 xen/arch/x86/pv/descriptor-tables.c  | 10 ++++------
 xen/arch/x86/pv/emul-inv-op.c        |  2 +-
 xen/arch/x86/pv/traps.c              |  4 ++--
 xen/arch/x86/setup.c                 |  4 ++--
 xen/common/kimage.c                  |  2 +-
 xen/common/livepatch.c               | 14 +++++++-------
 xen/include/hypercall-defs.c         |  2 +-
 xen/include/xen/livepatch.h          |  2 +-
 15 files changed, 39 insertions(+), 39 deletions(-)

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 22:20:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 22:20:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185896.1507831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUBV9-0004OT-ST; Fri, 12 Dec 2025 22:20:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185896.1507831; Fri, 12 Dec 2025 22:20:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUBV9-0004OM-Ok; Fri, 12 Dec 2025 22:20:39 +0000
Received: by outflank-mailman (input) for mailman id 1185896;
 Fri, 12 Dec 2025 22:20:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SbWK=6S=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vUBV8-0004B7-U8
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 22:20:38 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c88f7c69-d7a8-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 23:20:36 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-477619f8ae5so13255675e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 14:20:36 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fb38a977esm6314350f8f.12.2025.12.12.14.20.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Dec 2025 14:20:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c88f7c69-d7a8-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765578036; x=1766182836; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lk1vumcas+/1y9PUhtuUtgDptTJz0Re2iVdDmKM7JLI=;
        b=IrjQIX+y9N6iCmPqQyOMBTsT+t+qkmIQDEGVrqdDOGXuCJzhEyz8TH/80dZh3lKwe2
         Foqt8maa90hqS54Yiq6B0/jiFnG6u3oCkC+3vYzTTa88WUUpfkTFi4KYTZP+Cw50puWw
         H4rs37U58dsqkchc3+durPA6Yrk/BbV7lmcTg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765578036; x=1766182836;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=lk1vumcas+/1y9PUhtuUtgDptTJz0Re2iVdDmKM7JLI=;
        b=cwlpxCk02kdZiFySXDyU/W5AqxhWQufZ3GDE2dKk14mZ/e7O65V0W1u9Io+Oegm6C/
         Y2WIrRanxKThbEGMxWCz3tExfTOgCUj8FMXqwvT/w0BbCWvy3tko31XQA11g0HCKNVvr
         YawLMd03Obp3AUIxoGOQoI8g8t5wBkHAFTOf3vDZzIOcDhkJebgbfRd/Jx9ZWboOJ8UT
         1+zGmAaBUIoLVzow+PAH1WL9OBbcVbe3IvDhMYgVEFtfv3/GDypPIw9ZLRFj+kR0JvQN
         deDjURYZQHAPQv85MtMrX0Ngo+0waZyqQYdnSTLPcAJ6DNDVQPNlheMZJRr11SW+S5hd
         ElZg==
X-Gm-Message-State: AOJu0YzYR/NwO6/p7xA8F5oijrzEeUHaeINOn0+1fFtxTyJYtXtaMNcj
	GUBDCJYgd+e9Sh65h0r1zoFN++AosH/DqvmHBdbZfWluBVDCYz0c6cUCtcCgQjv3A0gRdhBBcGZ
	PfVBS
X-Gm-Gg: AY/fxX6wCt5c4dmFqLw6fKnyz1q8yAVbv/yhp1UTyao85fIBlODIl198QcaOovAjyKL
	FnJ5FFwCJw+908vHhg8RJZPhPoH2IbqRYallHqz1XzKfmlBmo148bCZSfDQR2y/1ITryFntN2nO
	V06/CTOfmcyezkUvnKPKLAkDq/UcMWi+Kqlx3NJZXffHh749vccz0Ld1icSqgXUM9VrnfteMD6r
	QBePYFdW+n8vRka2YrRbaVAuOWLLDDVoZzYHDMT74gFYjX5vygD5aESc4Cb5flHWDrU3TaouOc+
	Vr8OxRLA8N6Qw+DSdyiy0FGYkQKCl6wzII8JVBLQ4JBZ4EMQASdO1hfIN1SWz/VUVgAYCk6kAac
	0MyJ23b/VX5Q1/qZZgpn5shnWhWptzDfER3eOp58zurE1VabVlWPWycPIfIHx8zMmRyzgHOc50L
	OyuaTwKsfoAaxkjG47Y24E+ItMEdmdVi9AbcbaS89z6HZKtsHO+aOyCBYMWqEgFyP5APJ3BYpc
X-Google-Smtp-Source: AGHT+IHALu6Z7/VnodTlATGTGQ18GFcE3sMMz9/GJ9gae0SF9SorA1BzU5rp+fHqfAF+ylxPSIeSxA==
X-Received: by 2002:a05:600c:444a:b0:479:3876:22a8 with SMTP id 5b1f17b1804b1-47a8f8c2e5cmr41340905e9.16.1765578035380;
        Fri, 12 Dec 2025 14:20:35 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 1/5] x86/pv: Address MISRA C:2012 Rule 4.1
Date: Fri, 12 Dec 2025 22:20:28 +0000
Message-Id: <20251212222032.2640580-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251212222032.2640580-1-andrew.cooper3@citrix.com>
References: <20251212222032.2640580-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

MISRA doesn't like mixing hexadecimal escape sequences with ASCII text.  Use
the same workaround as in commit cd5048353725 ("xen: address MISRA C:2012 Rule
4.1").

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/pv/emul-inv-op.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/pv/emul-inv-op.c b/xen/arch/x86/pv/emul-inv-op.c
index 314ebd01cb34..346ac1124d7b 100644
--- a/xen/arch/x86/pv/emul-inv-op.c
+++ b/xen/arch/x86/pv/emul-inv-op.c
@@ -26,7 +26,7 @@ static int emulate_forced_invalid_op(struct cpu_user_regs *regs)
         pv_inject_page_fault(0, eip + sizeof(sig) - rc);
         return EXCRET_fault_fixed;
     }
-    if ( memcmp(sig, "\xf\xbxen", sizeof(sig)) )
+    if ( memcmp(sig, "\xf\xb" "xen", sizeof(sig)) )
         return 0;
     eip += sizeof(sig);
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 22:20:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 22:20:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185900.1507866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUBVD-00057y-4l; Fri, 12 Dec 2025 22:20:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185900.1507866; Fri, 12 Dec 2025 22: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 <xen-devel-bounces@lists.xenproject.org>)
	id 1vUBVC-000574-WF; Fri, 12 Dec 2025 22:20:43 +0000
Received: by outflank-mailman (input) for mailman id 1185900;
 Fri, 12 Dec 2025 22:20:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SbWK=6S=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vUBVB-0004B7-9A
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 22:20:41 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ca0a9fd6-d7a8-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 23:20:39 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-477770019e4so16863965e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 14:20:39 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fb38a977esm6314350f8f.12.2025.12.12.14.20.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Dec 2025 14:20:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ca0a9fd6-d7a8-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765578039; x=1766182839; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tfkvTJmyvWd8Ib+Znwac2Y3alEgJkpaVp966xVhqbZ8=;
        b=pge0gbyCPLoRblFKpyNGnKUO5Z3hD0UMKep1KgtwH6U1SPSSVodKO2hqMlQdXokUal
         crtVMYacsSoKrvxWp0yGgQVSxV65sT5En84f/hxCup0FaVIztU+UTlDreoPpED5hyGr7
         yAZykkXpdFmZe+JcLQyIy29hxB2K/+TVm/28k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765578039; x=1766182839;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=tfkvTJmyvWd8Ib+Znwac2Y3alEgJkpaVp966xVhqbZ8=;
        b=F2Q7wJa7eBTlIr5vEbOFVVPjKLjCJvtvzuSp2TtKg+0Qd1nw6orT6o6xk8XKleED/n
         W3UHWmy4pJ2Mq7Y7T431c3YvRANhrCJj9C42FFU4O/lDKu7Psas4QrNpZOJbrIpwougk
         jD5PUSzgl0HBzw6BxQb7JA+fa8g8b6XZYS2RQgY/gcIl2aX27hVnbnbFsDKSMhpBEpHY
         s6b0/wW2zaNfkpXQyZSGSuri6CBvUMKKQangmFz6NhPHV7k3ysMp7De0mQ5avmrTvMyi
         cEoclUICMOL+RSGD4gkw1tgpkKIPMdYo6u9slsSFd8p1doMPUp/UVaTcKxpzp+2/jnHk
         2LtQ==
X-Gm-Message-State: AOJu0Yx/3WvS3EDIeKa6KrDzh2x90gt3Y+4HILYJhDz6ebW+aZfzJhrJ
	vvEtnPzlj/M0XiexmJqo4BIrDA2UL7V6+HoEmsmjfdU+DFbodZaZE1B7NMLcXm4IB8CipUW0Oq9
	MYgts
X-Gm-Gg: AY/fxX7ZDWS5uqsBHvpu2ZBhCSXXeErT3De5AIWDw+tppQnfeRtYYdox7sb6dDd3Lfm
	UVTBq2WPHyJPPy3xoVkcsqKN5S6whXbxu578KBs99FNMlTSVXf0JHhClD8f8sLsvpMKidlXCN/K
	yWlzNVc5evYIoiJm2/8BOB9+Qf1ZFClRWyeiR9DQPKqamlJdMAFPxmeT7IODFi2xr//Qw/2wo0P
	VxIq1eVvWHR5ZVqgizow7aSSCt96LAlGE9YcBFjwexReHoApSRlRMpxzzEm6hBCbefxn0ri/5/E
	c0rmha9S9f1EfKVfFMkyqMaNx3pTWMoKBN/N4TwIY2cXWdXmn3AzlWMl1XBY39/0JFId7xDKojE
	rAOZ6xAjKU7ZIypnhmZQWpuBbWV2CB8bfWurR0JzWwBZQ6Ry1b2uifiQkYo2V/2KKXqrdvQ+Y72
	DTsasxIqC3ANdZi//HyVaowxf6p3EtahXlV9Z7kUK7jfOf3CMnBd1vqPfMd90Hmw==
X-Google-Smtp-Source: AGHT+IHdF9m62eD1Ikz/kZO9MXFgP9h75erp/0VVpujT6Tox93FPGCENjkQEcOL6RQPreOyqY88KTg==
X-Received: by 2002:a05:600c:468c:b0:477:7f4a:44b0 with SMTP id 5b1f17b1804b1-47a8f9142bcmr38481295e9.33.1765578038633;
        Fri, 12 Dec 2025 14:20:38 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH RFC 5/5] x86/shadow: Deviate multi.h as being included multiple times
Date: Fri, 12 Dec 2025 22:20:32 +0000
Message-Id: <20251212222032.2640580-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251212222032.2640580-1-andrew.cooper3@citrix.com>
References: <20251212222032.2640580-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This resolves the Eclair complaint about a MISRA D4.10 violation.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>

RFC - this doesn't actually squash the violation, despite being the requisite
magic string.  I suspect the Eclair config needs tweaking to allow the magic
anchor string to be after the SDPX tag.
---
 xen/arch/x86/mm/shadow/multi.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/arch/x86/mm/shadow/multi.h b/xen/arch/x86/mm/shadow/multi.h
index fc86d7a8d9cd..b4a6cf1362a6 100644
--- a/xen/arch/x86/mm/shadow/multi.h
+++ b/xen/arch/x86/mm/shadow/multi.h
@@ -2,6 +2,8 @@
 /******************************************************************************
  * arch/x86/mm/shadow/multi.h
  *
+ * This file is intended to be included multiple times.
+ *
  * Shadow declarations which will be multiply compiled.
  * Parts of this code are Copyright (c) 2006 by XenSource Inc.
  * Parts of this code are Copyright (c) 2006 by Michael A Fetterman
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 22:30:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 22:30:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185954.1507882 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUBeP-0000HI-2H; Fri, 12 Dec 2025 22:30:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185954.1507882; Fri, 12 Dec 2025 22:30:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUBeO-0000HB-V5; Fri, 12 Dec 2025 22:30:12 +0000
Received: by outflank-mailman (input) for mailman id 1185954;
 Fri, 12 Dec 2025 22:30:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aL34=6S=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vUBeN-0000H3-Ac
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 22:30:11 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 182822b0-d7aa-11f0-9cce-f158ae23cfc8;
 Fri, 12 Dec 2025 23:30:00 +0100 (CET)
Received: from SA1P222CA0080.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:35e::17)
 by DS7PR12MB5840.namprd12.prod.outlook.com (2603:10b6:8:7b::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.11; Fri, 12 Dec
 2025 22:29:54 +0000
Received: from SA2PEPF00003AE4.namprd02.prod.outlook.com
 (2603:10b6:806:35e:cafe::71) by SA1P222CA0080.outlook.office365.com
 (2603:10b6:806:35e::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.10 via Frontend Transport; Fri,
 12 Dec 2025 22:29:50 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF00003AE4.mail.protection.outlook.com (10.167.248.4) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 22:29:53 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 12 Dec
 2025 16:29:52 -0600
Received: from fedora.mshome.net (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 12 Dec 2025 14:29:52 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 182822b0-d7aa-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vDU8hHS28m1eVw5uuC8VnZaGVl3UmFtePs9HnkOfftetiTLQDBdhqu356oN6qMsD5e9tjcZiTaAqAxuss9ArX57u1/R6qVdZ9q7LLLVpMqOK7oluOLqlubed5nRrsZPoHXTuuPF6pRdOrZCriSoKKM4ZjMMgTElU0w00u0gDw+ZGSYgJTPK9v9gQICfraD+8c5kECfyu6zQ4PotNDpKV+Oha8GDXaB5pcPQqxE+iId7rRuzVOdaOi5lcIBMdPZEUljbSldt5GQUBswynBp+GClsiFNnqexA9ifdHZoPEipLp1x+l5c2054GffaYnef6J1yBqjx1VJCh3f9O6Nd1fKg==
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=SHt93iO4Bir86TPYeBqDCrXpSjAw0WEGbKSHRnGDY7k=;
 b=s4REc3b5A4oUyHrmj3lSvYltTp6LRjsRhOJ6AHQ41P02Z1Jcq+flp7PjOfhtFQfuA7YrZwNXsc9AET8iE+9APKhOxq+oDY3Ap4Acjq5KEQA1FDS1ED6oJ7A3ScGAAmZ6YECeqHPO7mG17+UaOOLGdigKBmCUsclaEO0gMQ6820CGfQfyEXBWYs1X1j1by3cqliezQwJll9s7uKnGeFI4iy9A6NkcGp7IfBXx32fhjkUQSr+r7j0prmGO/qT5aJVFH6XFupLWBPEqtb8JGLv0FOmWT/H9cK8xWQJ5k57pS37JH3Kv5DHh5rRVMG44xv7kS76gpXMSDS8920rqrdJO2w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SHt93iO4Bir86TPYeBqDCrXpSjAw0WEGbKSHRnGDY7k=;
 b=XqzdT5+cTaGMLVWcNEIsGBqPg3SJZuivl4YB+GpWk+k6p4AUjWMnrwb6cAoNwvyqvbbEaNRITejBCbn12iLg8Nl8HXID81cRLbz6HyjzEwWh34OODOV0IKsCAR+E74p7o5i4Sdg5CS7LKzbWWAmyP0wetUOw8SDdKu7DTNVoF1k=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] xen/x86: Pass TPM ACPI table to PVH dom0
Date: Fri, 12 Dec 2025 17:29:49 -0500
Message-ID: <20251212222949.626539-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003AE4:EE_|DS7PR12MB5840:EE_
X-MS-Office365-Filtering-Correlation-Id: 113dfd83-3fff-4456-dab4-08de39cdf88f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?JBVeJ346g2O8kfTT17JjvlIQ75LLkXQCKBQZTiPrRC0AyWllgSZtW34cj0/k?=
 =?us-ascii?Q?jHoM8No4pzF3KjMhwb835kt5bDNA+DWOxbC0YTogqNjNjLbarMLt47jKPdHc?=
 =?us-ascii?Q?UDEyyS2xgviyIH3XacRx5oe0MQ3Nfk+lDw+SFeUtUAybgtJh96WAycBS2fp4?=
 =?us-ascii?Q?uz4sEutmhq7153SFtkXLhvwA9oyoxlNwKnoVMARJsZRHy4hhWBzxA9U2Cjbo?=
 =?us-ascii?Q?DmwamxXBGizFC4FtFQadAyJCU6Se9sOffPuhZsqJw96w0Q8iX8mkJPtBMqN0?=
 =?us-ascii?Q?5H45wiHLAExByKD84p97F1fkreyJG8d24sj/3HPT12sSQabZD1fA/eMeuzIU?=
 =?us-ascii?Q?Y6VJip7PrdvaJs4Vww5fkARFY4z+ld68Y0GMexLoqtLpzBgeIOQA82KfJVEj?=
 =?us-ascii?Q?YSkLMiI62IU8wIZeGqLXfOkQk7+/0RQIkoDQeBmvjm3eQOsyAkI5h5XjTI+Q?=
 =?us-ascii?Q?7I6U7/bhGSU41Cr3ATUElXdx0R8rSLKTu5K7Ms5REVAFphPjigVMtMpR/xJK?=
 =?us-ascii?Q?3pJPXxeox7gIbuCjL1++eK56A0+Xz9CzEeOnlUtMWCioleNRIDQFu1JXTgf2?=
 =?us-ascii?Q?zifQM8K+aaQeMFM/MyO7wxSssg+CvPmeU00PfqE/53rcZl+JGiEaAFz/tt/j?=
 =?us-ascii?Q?fpIzwOO0gzSicCJ4WUrqZ8oKbTDSmg+cOR96vTlmyysGH5xbW3q/bj63MdNv?=
 =?us-ascii?Q?McsONVTrpoqknnsoI+lY65HCtuEgsZj2LudGgo2ak3zhhUHHjq953C70opaA?=
 =?us-ascii?Q?MWJPGDoLxdj98s/OqxRyW0xI3VmxzhMeCohIiC/iJ3dlwgaW6qS0jsZ2ntvx?=
 =?us-ascii?Q?jnSZ5hV97OFgoSaGZGJN29fcbh1pa0JUoB1XC5Vh8HW/aNW5wOOhkCGnw/V4?=
 =?us-ascii?Q?9+npOaQiaC3JlZo6bw+94p/af95UMeDIdFbFhm6ulMdZEi1McqF5gIjUX6+s?=
 =?us-ascii?Q?9nHwGS6a2tDQhD5t4tWRof4pUfi7G4bLCNyS4mdQIaBC9nYIIKHvEhoINseN?=
 =?us-ascii?Q?gZg2a5SWDAiHxim8kDjShrXcENPG119fP8XTOqwYgy0QZjKhME9YqDLN84mj?=
 =?us-ascii?Q?qPdVuxMtWzaWtXkU6sOLjc1kBd0ZLMCbfXes5hbhPga+hnRRA6DWKKCszKT+?=
 =?us-ascii?Q?EVLUuo8nIXkaxf6ziN6LdRHolYGUbu37HusyNwh9eNAFGdVrqLvG2hjcYvz0?=
 =?us-ascii?Q?dzR/RqYVj4/FN8FQD1KK1J+YjFMxIS5QNFCBPH3bP5LGUy4f4qVgyOiK/QSa?=
 =?us-ascii?Q?KnVBI8xN/oXVxCVY/ZX2NtYx8WgZ3zBVCP8YAhByJUxjU0uaSimJOqZDeICu?=
 =?us-ascii?Q?9RjyA8LhnOfMTP7ZbVx9cN32UtoLKq4cobP/2v75SCdrVZtN3D7+fIvfrmZM?=
 =?us-ascii?Q?5gDKDzMXwS6boq0vPtcet4c0Yh0iNpeM51A9n8+mZAxXLLgSJEV//JFpwZNR?=
 =?us-ascii?Q?kd/L/PQB52lLlcGh6ba2kEvNO2uG2XcaGfF1Hxe6TPIR6SolAy2cfoC0sWCb?=
 =?us-ascii?Q?H+KvU6c7ZOoRPjXLpPm1iiAtSjIUkBU/3KnohogG7p2+Ft5Ft5YTNICKOFdp?=
 =?us-ascii?Q?+nuoEUjUfvLAGKMoyJA=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 22:29:53.3795
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 113dfd83-3fff-4456-dab4-08de39cdf88f
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003AE4.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5840

Pass the TPM2 ACPI table so that the device can be found by a PVH dom0.

Otherwise dom0 shows:
tpm_tis MSFT0101:00: [Firmware Bug]: failed to get TPM2 ACPI table
tpm_tis MSFT0101:00: probe with driver tpm_tis failed with error -22

TCPA is "Trusted Computing Platform Alliance table", but it is really
the table for a TPM 1.2.  Use that as the comment as it's more
identifiable for readers.

While doing this, move ACPI_SIG_WPBT to alpabetize the entries.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
Only TPM2 has been tested.

AIUI, a TPM 1.2 is probed without the ACPI entry, so it is usable.
But since I know the table exists, I added it.
---
 xen/arch/x86/hvm/dom0_build.c | 2 +-
 xen/include/acpi/actbl3.h     | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index 5ac2cf8394..7eccadf7aa 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -1013,7 +1013,7 @@ static bool __init pvh_acpi_table_allowed(const char *sig,
         ACPI_SIG_DSDT, ACPI_SIG_FADT, ACPI_SIG_FACS, ACPI_SIG_PSDT,
         ACPI_SIG_SSDT, ACPI_SIG_SBST, ACPI_SIG_MCFG, ACPI_SIG_SLIC,
         ACPI_SIG_MSDM, ACPI_SIG_WDAT, ACPI_SIG_FPDT, ACPI_SIG_S3PT,
-        ACPI_SIG_VFCT,
+        ACPI_SIG_TCPA, ACPI_SIG_TPM2, ACPI_SIG_VFCT,
     };
     unsigned int i;
 
diff --git a/xen/include/acpi/actbl3.h b/xen/include/acpi/actbl3.h
index 6858d3e60f..b8db95a18b 100644
--- a/xen/include/acpi/actbl3.h
+++ b/xen/include/acpi/actbl3.h
@@ -78,8 +78,10 @@
 #define ACPI_SIG_CSRT           "CSRT"	/* Core System Resources Table */
 #define ACPI_SIG_MATR           "MATR"	/* Memory Address Translation Table */
 #define ACPI_SIG_MSDM           "MSDM"	/* Microsoft Data Management Table */
-#define ACPI_SIG_WPBT           "WPBT"	/* Windows Platform Binary Table */
+#define ACPI_SIG_TCPA           "TCPA"	/* TPM 1.2 Table */
+#define ACPI_SIG_TPM2           "TPM2"	/* TPM 2.0 Table */
 #define ACPI_SIG_VFCT           "VFCT"	/* AMD Video BIOS */
+#define ACPI_SIG_WPBT           "WPBT"	/* Windows Platform Binary Table */
 
 /*
  * All tables must be byte-packed to match the ACPI specification, since
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 12 22:38:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 22:38:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185963.1507892 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUBmg-0001Hp-Qu; Fri, 12 Dec 2025 22:38:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185963.1507892; Fri, 12 Dec 2025 22:38:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUBmg-0001Hi-Nl; Fri, 12 Dec 2025 22:38:46 +0000
Received: by outflank-mailman (input) for mailman id 1185963;
 Fri, 12 Dec 2025 22:38:45 +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
 <SRS0=lRu3=6S=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vUBmf-0001Hc-GR
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 22:38:45 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4fd7e4ce-d7ab-11f0-b15b-2bf370ae4941;
 Fri, 12 Dec 2025 23:38:43 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MW5PR03MB6959.namprd03.prod.outlook.com (2603:10b6:303:1aa::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.11; Fri, 12 Dec
 2025 22:38:39 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9412.011; Fri, 12 Dec 2025
 22:38:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4fd7e4ce-d7ab-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ju9yW6IKlmtkTJggnwIaRgD3LAVBiXBcHhG6RDftfL+eSLdzqog66Ov8xFTlbXyCfQjI6taOPYySF8HKmaXqmN5gfpGV78O6l1g8fqsI8L4+wIi2i2xrcxBtU5t8oY8NJhHtciJRvViMBVZM8sMcdrLswfsyaNLc+YwyyRb6IrgnnKWv8W4vmep5aDNAM/X/HF+VYVZ1DfJrobUJIl+NUqbUtDUndBkeWBpBrYlYvmmu15NuQ4+zAIGcpu5AreqcHtXRghEj15GWoGx0urPJM/yWB1I4L5XbdVUAFt7ZG6lfrW9HejAaa1SxuRU+mTUgOd3eVBGoX9bHh/z40t+Wrg==
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=XKxoDeCLIIv4KuqdgwkOoCM77j3A0fZ5TNsr5D/DBAs=;
 b=jFih39WwRcPgp3FIaaMFGmkneQZan/U1LeGYEQXx4CDHp2XyqydBwb21BcvEjGcbp50V89jaYMVlBCSJ2s3sT6qh4owp1iA/cyeIR6fPQ4tNNon0V/Cc10Nzure6+DrrBL5Y8fy423k1p9XNUJAHkOPzJJHTT8leWRnjQ+37nPiZkTYOaNG6KeN4jBb8t/FpX9hkF7eykgzmGdZMkU/KUi1XVi1e5JBE0P+m9NuSakct/5wWF4QgxSjhj7s4tIDWOslDZLCuiVYW2G3UYhCebjdrJB4YdsNj/VW5ZdK8GmQKkpHcUC2fGsXVjPArGseWboLn2z1ctwIfJRWdJkoDcA==
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=XKxoDeCLIIv4KuqdgwkOoCM77j3A0fZ5TNsr5D/DBAs=;
 b=GInbYEhVJdOFgJqzWN6QQclpqXvC5rAdiMtgTCML0x5+I2vVvU7tEuw5Nx0LWZXFb9CzIcz79OAh1td6dvhbMDc3bgZZgA5MJdES4ouisL5r3pFZI1HwrN7jgz7zxnLwi5l3pWjnbtdUkT7u1ODBqAg1oEmlrBAtR0VHEvRmHJg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <4c548455-ea55-430d-9fe7-6a6cf21eec38@citrix.com>
Date: Fri, 12 Dec 2025 22:38:36 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Daniel Smith <dpsmith@apertussolutions.com>,
 "krystian.hebel@3mdeb.com" <krystian.hebel@3mdeb.com>,
 Sergii Dmytruk <sergii.dmytruk@3mdeb.com>,
 Ross Philipson <ross.philipson@oracle.com>
Subject: Re: [PATCH] xen/x86: Pass TPM ACPI table to PVH dom0
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20251212222949.626539-1-jason.andryuk@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251212222949.626539-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0174.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18a::17) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|MW5PR03MB6959:EE_
X-MS-Office365-Filtering-Correlation-Id: 71d35991-bc18-4043-b0b9-08de39cf3211
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cFl4N2kwWEV4YnRkYy94dTcxS1hkTkRKdFNsbjdkU05UUUhTVDYwRStJRksw?=
 =?utf-8?B?d3IzaUdXM01sVDdZNnI5SHp0MEtsM1lTZkxBK1RpNjV6MlVlUmJidnNNVlFy?=
 =?utf-8?B?aklCSFYzQi8rUDRkUDFaMzNPeFo2Y2JINWJOWnV1ZjRueEpjemRnNmhLaVFB?=
 =?utf-8?B?Z1l3QTB4djdJWnVjNE5oTGI1Z0xtK1VTUDhISFpHYSs5Z3JseTNma2pLQkJZ?=
 =?utf-8?B?bnovS2dDZ29IMm5Fai9WdzgrVHJCdjgyYmZVZmV3SENxTGhDc0U3ek40WGN1?=
 =?utf-8?B?ajQyd29tZDBmNnVFZ0RydU1PaTJLM1NBYjd5VlhVNkx1Y2E5dzhxNXJyMGE5?=
 =?utf-8?B?U2JkSXRkclp0L0FYbTYrT25EdnV6SjZzZTNLR2NMWUgycVViZHB1b0NRZkl4?=
 =?utf-8?B?dTk2UTBWZUxwZVNsM0kzbTNiaU82b3hzdVZ5V1VuakZTSVhhM2hLSWVkYVp3?=
 =?utf-8?B?TTJPRTIwT0txNGdOVGJhanYvUkw1VFl4V3VJTk4yTlRPVldrV1dwcU5hdVVZ?=
 =?utf-8?B?UHhaZkhrRGQ4emVpMjRUS2JFNTROUlNUNmNDckg5dHVvQ0RnT2JCRmVGQzhR?=
 =?utf-8?B?eC96Nng5Z0hybGJTb2g1Rjd4aUw4ZW4xQzBaY01QK2FITHVDM3ZCcUdJS3FS?=
 =?utf-8?B?QjVkbHVsYUVNcU8ydE5yTEExdmswZ05yeUlCQ2lmRXQraldQRnZKTnJZTlN4?=
 =?utf-8?B?ZDRkeFhyeUIweDhYVVVqT29nUkVlazNBdmgxaTlIWTJadVIrY3duWW0xYlpv?=
 =?utf-8?B?ZDJwY3Q1eDhqTGVGeE5JSDVCUFNOS25Db1FaN0hGcFpKMjd6R3Vxejl0M24r?=
 =?utf-8?B?bXl3QTd3aW9Nb3VRaExONisxZjVwN3ZJOVZISHRxOG1nd201b1JCVjdnOXVs?=
 =?utf-8?B?Zml4L1R2QktYckZ6VThzeWFDMFUzZVl1UFplSU5oQi9jU0tWUEE5R25hZTY1?=
 =?utf-8?B?d2VJaE1kVHIyeDVxRm1FemVxUk9nYU9tbmR0dnYrQlZrNThHbXZrd01lK3I3?=
 =?utf-8?B?ZTFxeWNET2MzaytFQkNadW13bHZQTzNFRlZYYkZWWG90dENudkQ1aHhzZXRF?=
 =?utf-8?B?RFZxSDVZV3VYK2haRFpJNmlGSzhLdE5sNWNzbkRQK1lNWndPLy8vYVo0anZ2?=
 =?utf-8?B?dG9QRzZvb0hjakppT1FPMmFRSkE0NnFrREYrUVdPcmZheGNLUUpCbElleUJM?=
 =?utf-8?B?b052dnhjSk1raWIyVlpwMDNxc3lmcUZFQVBkWVFpU1h5UmN3bk5hc2phMzcz?=
 =?utf-8?B?emRqak9INDRvYTVXMStrTU9CODErMEFNSFZJV0V3NXdWYU5yTXRMUUMxM00x?=
 =?utf-8?B?bHhYMUZmV1ZPWGJBbjFaWEhFaURHQks2eWZWSER3bnJmNWdtWGIzVm0xU1hU?=
 =?utf-8?B?aHRLWnMrSXY0M1BXY29qakxtWURyTllZTkRXZlA0aC8xblM5aGd0eE5mK0Mx?=
 =?utf-8?B?OHNYZFIxNnhQbTRGdEk5ZnEzQ3ZDSnF1cnlBY0x6U1A4OHVvR3FhM0x3cy9G?=
 =?utf-8?B?N1hyUXE5M1FlenhsSXgrUnYrMzBlWGFPVXNZL205SkxVTnAwNytXYnVxNVpo?=
 =?utf-8?B?aFhWUWxqa1lWZnVrUHUzN01PMkFtMStUNGM2TmtzUUN3b3ZpMXA2dTJnUmF3?=
 =?utf-8?B?RkVTQ0pydEF3UElBUEF4bzV2UW9JTGhkM2FGSURSSWVneEZlSVIyanhUY292?=
 =?utf-8?B?NW8zYjhGUkduSDRxVzFmMm5iaitjYndtaXlDa2YvRGVkejdXU2tNQnkyaTdk?=
 =?utf-8?B?aFJhdnpOOHErVmFYUXYxMjhTNkVaNXZFdytSRjl5M0s2MTExYkVKVXNJNHBD?=
 =?utf-8?B?d29UMDNPekk3ay90UFB0ekppUWpuWjA5UDNpeGpzOEduellkUFhjU1VqeXRE?=
 =?utf-8?B?MjM2aE00bUNWMjJ0b1NGYlNMbUxpOFlzMUQ1YzZObUJDUlZ4S3hZVWFGZEk5?=
 =?utf-8?Q?mXpJIaBbLv8gYcAJstJowyYa+LgXK42w?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aU1KNXVJVFVGVFhlK09sc0hnQ0NSRW1NUHVGQTBPbDM0TnJQUmFsc3FzN0p3?=
 =?utf-8?B?ZVkvMEhNVUZoMHdvdE1HWHhibGtOeU1qbEZLVC9OaEt1eFFmTDZ2WHNvZkVN?=
 =?utf-8?B?TEdiNHMvalk0d0hydkhBeExWTWoxR3QzQjAzK3Bja0ZoQUZDRUlFYlN2OElN?=
 =?utf-8?B?Z0IyQlViRk9hT3VBbUNlMFBqcUIraHVVVXlIN2JzL1RhWTVTbGRZMWRIcm5H?=
 =?utf-8?B?YjFXTlM1bk1VNWZpOGpZZVFmeGpvbjF2Rld4dTVMcU9WUGREYlcrYkFRTURJ?=
 =?utf-8?B?NjQvbXNGbEJHWVMyTTFla2t5YVo4cFdYVU1yeWthandMNTBuYkZDWXBsRmZy?=
 =?utf-8?B?eVZsNlhIclRMaGpWV1QybnVabE5leG1qa201bHVEYXJxcTR1ZElaQXAzenRD?=
 =?utf-8?B?bnNtSlIyR21la3VXdVp3UVZlT1pwNmV3dkV5ZE5kSW56Z2YvVzh2eTFOcWp0?=
 =?utf-8?B?dlNRR0xvS3VyMFZBVmttK2lncEtyMlhuMTBvUXhEQVIwMGc4d3J0MjcweUhr?=
 =?utf-8?B?UW82UlBJSXhDVUpWK0ZLVzRzaW95b2V6RVpPaXFnR0ZPeE9pb1BWN205Wndv?=
 =?utf-8?B?ME1HS3l2cEVaM0I0VmE5M014NHFFUWc3RnVCR3B3L2tZV0xsOW1tMmRQRUpH?=
 =?utf-8?B?b3RldW9LaUovZk4rdnJYNGkrZEI5M1NxY2VuYkpTWUJBcUJUMDA2ZGxGNXJY?=
 =?utf-8?B?Q2p5T0ZTVS9ZTE8rc1VXVm1pTHhaeUtBejUwT2wxWm94b0duWTk4Y2R4Tzgr?=
 =?utf-8?B?NDMxSHNlWFZFWFo1b2F2VG00WTk2Nlhwa2t2NFo5bUhWdGR5MjJsUEh3MkE0?=
 =?utf-8?B?MzJBRTJoZ0JGODk0b3VnVFNSVjhTcEJzQThrOGZ4WlVWRStmMmNIcVBDaHJi?=
 =?utf-8?B?czU3bnFFSkZNRFBrSlp5SWN3TG5UZVB2Vm9zak9ZZGxsTEVLYkJlMzhQcGZq?=
 =?utf-8?B?NTByS3RWcjJmWThsZDNZZXNOd2labE8wenBBd1c5ZlU4VGZGRmpyRTRvQ09W?=
 =?utf-8?B?UHlsNko4WllHRU5PaTRETjhjN0kxa0VuMDhiYmFPYkJWYXA5UXFsUGgrMUpo?=
 =?utf-8?B?aDhKSWdteHV4djYxWmdHQ1lFSngwYXNlZjJFb1VNN0Y2RCs0eUNsc3I5SmpR?=
 =?utf-8?B?YndDdjdKMmZhRk5VUkRKRWY5Y3dBditJdFp1RFBaaitKejdmU0lZN0RnNXQw?=
 =?utf-8?B?UGZCczNnbDBaM2V3YnVSVTRpU2tLS2lGQktRWFVLL3FHL3A2enNFNHplSXhy?=
 =?utf-8?B?NFFSV2Q5WTFGL3FMNlBKSHNNYjVvZDZObG9DRkpRenhNVG1LR2ZMZzVGU2Ju?=
 =?utf-8?B?cFJ1UVVuRFh5VE1hODF6aisxL1lZOXRHODViMkVvQ3VieGRvZzNTUHpSZFd3?=
 =?utf-8?B?TnNlNUFpZlY1ck5YelB0VTZ5RGs4Ty9QS1JOR1dZdURna3BZcXRORVR5a25y?=
 =?utf-8?B?ZVBxS0xsZXhDa1VGSk1KbFM1S3JCRlpQTUVMbWpyMTRpaEhldVFDWjNyMDN6?=
 =?utf-8?B?TFQ5WTgyV0N4a0NMc3QraDQrZk5DMWRHZ09qVzlxanM3TWIyOTJxZXk2b2ZN?=
 =?utf-8?B?Rk84cVVuR2xsN3pmQWNrZnBLSi9Jck8wNCtURkJETFpkVWdOTEJ3eTJDbGZo?=
 =?utf-8?B?K1J0WG1jWUNyUVk3ZWk0cnNnZG5kRzBHM3J2SW9DOTFWc3Jad1pzTWhzUnJR?=
 =?utf-8?B?MGJpQzBSQkxqMVllTnhBV09KMmQvbG9TV0NmQmI4M3lTajcraFdSdCtoSklO?=
 =?utf-8?B?UkkxcXlsUkpKQTBSdmFOTmxUdnEwSVV2UVFtT2NMM0ZMbzVIaTg4ejhxMEVM?=
 =?utf-8?B?aW9iRzZNNEhlb0pLeXp5emw1SjFJZzd1SmNLK1J0UDYxMlNneUx1QUlkRTBv?=
 =?utf-8?B?WnMyZExBd3ZiVnNUOTVGUmdDZ0gyV29KdVBNTnpOS2YrUXRJZ1RjN2pIMlF6?=
 =?utf-8?B?ek9TM3J2TnVaNmVvZFloNzE4SEl6bCtvdHh6SzJkdUVKTjBORUZYVkZRME40?=
 =?utf-8?B?RFp5OWM4TFIzOWFZalpOMEVtZkU3M3ZBMTNiK1hiVmtnUk03d01RZGpSOC9W?=
 =?utf-8?B?M25zdkpXSmZVN0lwZUtUd3VzTklybzRlcGg1VkdqNHFsZXJ2SW1mTlpYdElW?=
 =?utf-8?B?Y0tScE9CYmxkUGdzQ1RRU2lWd1MzQjFmOFFYRmpKc09teWp0bzQrS1pRTy9l?=
 =?utf-8?B?cVE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 71d35991-bc18-4043-b0b9-08de39cf3211
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 22:38:39.5841
 (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: ytXAjoEgOq80ida7IwqYz1037Qs14rNt+rX7oqwYdgmbCwAxr2dyBB4HmTFBOznkA2InOj2P51nGaXJnTR2vgB+DS09rTAYhGxKcEzm+6Eo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR03MB6959

On 12/12/2025 10:29 pm, Jason Andryuk wrote:
> Pass the TPM2 ACPI table so that the device can be found by a PVH dom0.
>
> Otherwise dom0 shows:
> tpm_tis MSFT0101:00: [Firmware Bug]: failed to get TPM2 ACPI table
> tpm_tis MSFT0101:00: probe with driver tpm_tis failed with error -22
>
> TCPA is "Trusted Computing Platform Alliance table", but it is really
> the table for a TPM 1.2.  Use that as the comment as it's more
> identifiable for readers.
>
> While doing this, move ACPI_SIG_WPBT to alpabetize the entries.

It's probably worth stating that this brings PVH dom0 more in line with
PV dom0.

> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

> ---
> Only TPM2 has been tested.
>
> AIUI, a TPM 1.2 is probed without the ACPI entry, so it is usable.
> But since I know the table exists, I added it.

Yeah - I'd have asked you to do this if you hadn't already.

That said, it highlights that the Trenchboot series needs to grow the
ability to hide the TPM from dom0, both the APCI tables and blind probing.

I presume that tboot already does this, because I'm sure it's been
tested, right...?

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Dec 12 23:58:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Dec 2025 23:58:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1185994.1507909 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUD1H-00057q-FY; Fri, 12 Dec 2025 23:57:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1185994.1507909; Fri, 12 Dec 2025 23:57:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUD1H-00057j-Cp; Fri, 12 Dec 2025 23:57:55 +0000
Received: by outflank-mailman (input) for mailman id 1185994;
 Fri, 12 Dec 2025 23:57:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tg47=6S=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1vUD1G-00057d-Ns
 for xen-devel@lists.xenproject.org; Fri, 12 Dec 2025 23:57:54 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 58ecdafe-d7b6-11f0-9cce-f158ae23cfc8;
 Sat, 13 Dec 2025 00:57:43 +0100 (CET)
Received: from CH5PR02CA0006.namprd02.prod.outlook.com (2603:10b6:610:1ed::16)
 by DS7PR12MB6262.namprd12.prod.outlook.com (2603:10b6:8:96::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.10; Fri, 12 Dec 2025 23:57:36 +0000
Received: from CH2PEPF0000009B.namprd02.prod.outlook.com
 (2603:10b6:610:1ed:cafe::82) by CH5PR02CA0006.outlook.office365.com
 (2603:10b6:610:1ed::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.12 via Frontend Transport; Fri,
 12 Dec 2025 23:57:30 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH2PEPF0000009B.mail.protection.outlook.com (10.167.244.23) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 23:57:35 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 12 Dec
 2025 17:57:35 -0600
Received: from xsjvictlira01-ubuntu-0.mshome.net (10.180.168.240) by
 satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17 via Frontend Transport; Fri, 12 Dec 2025 15:57:34 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 58ecdafe-d7b6-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YFP9ydVNOzEA+S+lEy2I6x9a1oQxdmU/JPsP30RpxHd170EpP1aJsI+6l32+b5yvk1xVnFVv+nwPWFbv0UvZX4WbWSHbEQpNMC4pazj7Gq4lZtqYq12D01Z2Q2nI+lxw5GTMDpEVXHTfEaEwIEfIINIWCz2PEA3QxDgShxw4ZNk4ah0FtVJA5nEbZJzEita4lsIcg43lWIQffPlPPeq7hOwqVwSEPYHo0ZVlddHE7hlcW2U/p9MIGO9yQ7vwwSZtalrQwnxXO8jyEx/xI+T4BIO2PbOxPbKC2xuMnY6hI7lhhdhBb8DVM6xz9y54SITUnFxyWe0JXiYzC4g6rJtU1A==
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=BmXjRzinjcL1ebSRx8JkIRIIdbtFwIRfI39UPTEn6NE=;
 b=loWW2BdjFe8gZdvfSSKtE5PKLi3Arw79wiJMbS9k/zCOrbTM4Tfy41xfqOq2VpBlZ/SwB5sq7Z5a5bK9++39d/7jZXB99m/AQ4kxawJ7ebdYNxnNuv/zkHQUnWsZYHXuGet9TJTmMakh9VEROQZ8fHFWAC/B4UOunlQ5wkDHUUn1LZJnzz7AeTLiqxofd9cFDqqZT/kB0pizt9zukY/dJJ3Oc9XnYZVmVYaelaLuXz/D5vEHpoDMK3JcqWc0jQoQ25SW0QzuP/fJYwCULlV8cLXShWB8F+7dKqSAGeGMQF5sxIuucgAWjgRECN804jkjhVrLdWf6dH9LZ72eABdtug==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BmXjRzinjcL1ebSRx8JkIRIIdbtFwIRfI39UPTEn6NE=;
 b=ej9khcbRtdSEGtLFL6huAhf/Zib4bhVSOVx7YPk/6IdPE52PpNvKrcHLICBsSY5v6U+9lRU85TT+zrmgEEMTPbfHHORqbPNI4V+hLNBJqEzAMznKaLv9NNnGzIr1IuXz80YJ7cAsKnfBrwbRM0H1jiB8Dp84+Pni1ZgQkuyFQIg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Victor Lira <victorm.lira@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Victor Lira <victorm.lira@amd.com>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: [XEN PATCH v1] automation: edit pipeline to fix blocked status
Date: Fri, 12 Dec 2025 23:57:27 +0000
Message-ID: <20251212235727.1377099-1-victorm.lira@amd.com>
X-Mailer: git-send-email 2.51.GIT
In-Reply-To: <20251212190850.1357779-2-victorm.lira@amd.com>
References: <20251212190850.1357779-2-victorm.lira@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF0000009B:EE_|DS7PR12MB6262:EE_
X-MS-Office365-Filtering-Correlation-Id: b8a4a793-d18f-4d9c-36d5-08de39da3925
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?1jwPweIPzFdMhz9fiWjqqece2xRq5IxtDGWQPAa0KE6gibTkgjZd+Gfc9rRa?=
 =?us-ascii?Q?80RO9YvdOu7jtVJKFZUuAaZ2MfipY+x3g4aRpmY6OKtZVjfQLJEhRWsKH4pq?=
 =?us-ascii?Q?Or2sFnN3YW9wGIateIC0TyaOtSWTlrAYh+aXwgVDuSUY4nwGS13kAF4xDYod?=
 =?us-ascii?Q?fODSHK7sHmO8j6gFhuYCuXKoM5KjwIMM5GukRh7NL0nqCOkDmjqUdnOI3zyX?=
 =?us-ascii?Q?cKJ7htbD//1wKOcFFYipOyOyZr787GVIjC8Nm+IuPy/VMqcw8ufFtLOp+72v?=
 =?us-ascii?Q?HB5iNqlLjRJZaEWmE+xmfJIbevEKM65+EYi52AgQgf17ifPoaSenrs9JDEWC?=
 =?us-ascii?Q?WG95z6wUfVq2cZHOFhyHzjx/PkXr4qcCpySdY8fuEpuNSJKRgrlLbgR1bQvQ?=
 =?us-ascii?Q?Bgs+JU0xDXFzm6PwcIetp0veqQT6M805deX2FfeLnedwec9UCF4RwlR8Dxtp?=
 =?us-ascii?Q?6rcFU2EYcc0tQ4yof8v4wu5f+64t/G1t1Kmkf4dtD7AKhJFJUwaka64shTod?=
 =?us-ascii?Q?gaoHqvXuNAZy+kaOamIZ+ydHX95QQfGEbYKMSQ9o5DyQuF7WOg1iJ8plGufB?=
 =?us-ascii?Q?NTtX8p5jqwwEpA9CUMVUNapLzztw2WGy/kfvthctKEA3yaI4WSAmkdwEDIDQ?=
 =?us-ascii?Q?hZY3369dExqqcO954RHOWopwiZX4x+gJYubBUfxONSi13tzJULHXmwG94kHO?=
 =?us-ascii?Q?dqu7gA+OQq9hov3rASYlGDnUztctUJwRlhK3xdHc9c9tgMxjype2Alzu9/Ex?=
 =?us-ascii?Q?xvZTLc94a7DrWjLG1I8geuHBLSZI/b72o6IIZX1Yq1zVxG+oH2sWWh9vvUSc?=
 =?us-ascii?Q?j5oP3gWttLIX6lrvBP1M/zo9sWz/MYmk5maRr4SCP8a4ckOpQWjv06a/ZZaC?=
 =?us-ascii?Q?+pgBRHZL24GP+9cX9Krjod89IeCMEDO0q4R9xljoWSQTjb2pdKWAju3EQzZC?=
 =?us-ascii?Q?ItiiiANzxD7ABKmVgl/gycTNERMWugrH/cUCgXayiOHuqIAkzSNnRpvwDi+q?=
 =?us-ascii?Q?wksfdNalMsK95q/wgWH8xln5doxOh7rzaYcjI3APi0q5T9BkJAOYWVH0cf44?=
 =?us-ascii?Q?quoFy9zFQt/mBSnhaW0JiUjVz+xIkDEO0xay5RaKzow4PtXMVMeal3iyVTVZ?=
 =?us-ascii?Q?ld2CEqNH9S3dyMhkQaFcrMG14GV3fr2bpSXORk1malou9exqu1qvli0/nfuw?=
 =?us-ascii?Q?5m8h5r74iDs2xOuGB/2N8sHOcyUt5gDBwF/lHD3a7l2Ptx+pTQixmYp0U2b9?=
 =?us-ascii?Q?A/u46NUKohQ9MW3wIsPOgaBPlx5seVua3ZNA3YcyQX4vvWLxKgr+fC4S480G?=
 =?us-ascii?Q?2xHt7iVi9wDpWCtDmzUbFrTAmu0SB8z+fDj0auMk8KblDukbNoHpfrjmkssu?=
 =?us-ascii?Q?aenHy2MX+qXFGQgqFQbTn0e/yRfUfhsi8XOUF9Xoa3VqBEyEQWLFJZnTsr7M?=
 =?us-ascii?Q?OFMRKBD4QVNbDQmt5vcfpZXIGCRhoUmmvMgqTv82YaXWxzgN8+EVYRzRpeq/?=
 =?us-ascii?Q?03QJMClHpkgvUlTD/i7B7Wh+mKtaTyijhujLX+dSk++g7hpGzBNtcqkMTKXT?=
 =?us-ascii?Q?r6XoarsNj/C0Igqi8fs=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700013)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 23:57:35.7030
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b8a4a793-d18f-4d9c-36d5-08de39da3925
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF0000009B.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6262

The original yocto config had a hidden default of allow_failure: true for the
manual job while the hidden default for rules is false. This causes the
stages with manual jobs to show as blocked.

Set it explicitly to true to avoid the analyze and build stages being shown as
blocked.

Fixes: 485ab1b5db0f358625fafe2df4e41e3ef008aed8
Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2212386023
(stuck because of hardware jobs)

Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Doug Goldstein <cardoe@cardoe.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
---
 automation/gitlab-ci/build.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index e9e04e37d4..f7e032320a 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -229,6 +229,7 @@
   rules:
     - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
       when: manual
+      allow_failure: true

 .yocto-test-arm64:
   extends: .yocto-test
--
2.51.GIT


From xen-devel-bounces@lists.xenproject.org Sat Dec 13 00:21:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Dec 2025 00:21:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186005.1507920 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUDOC-0001kC-5B; Sat, 13 Dec 2025 00:21:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186005.1507920; Sat, 13 Dec 2025 00:21:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUDOC-0001k5-2P; Sat, 13 Dec 2025 00:21:36 +0000
Received: by outflank-mailman (input) for mailman id 1186005;
 Sat, 13 Dec 2025 00:21:34 +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
 <SRS0=XKAJ=6T=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1vUDOA-0001jz-L2
 for xen-devel@lists.xenproject.org; Sat, 13 Dec 2025 00:21:34 +0000
Received: from sender4-op-o12.zoho.com (sender4-op-o12.zoho.com
 [136.143.188.12]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ac867d3d-d7b9-11f0-b15b-2bf370ae4941;
 Sat, 13 Dec 2025 01:21:32 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1765585286539823.6498816067525;
 Fri, 12 Dec 2025 16:21:26 -0800 (PST)
Received: by mail-ot1-f45.google.com with SMTP id
 46e09a7af769-7c6da42fbd4so894569a34.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Dec 2025 16:21:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ac867d3d-d7b9-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1765585288; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Cw3bX0mrOpW1ENyuax8uYZVvUxa2aqXZtF/VQWG3IU990K6B0mJV+Yo9mNjsBNPktbQdeQG8vS0Nh09uolw+bpQMfB4sED1QCrOU8WKDxG16rU/XYcWtfCnqM0uCKi3/iA80TybdrGMwkPhxeyc6jeZnuugSYurGybfKW2U0930=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1765585288; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; 
	bh=6UKyMjBm/KA3X23N94H3JmDIPbxhK7G8MuncgybTHaM=; 
	b=XffCxOoeGVQqZQahPdTUhaHW5uDVLU4KazMFv8nbkxXZGBHAXhsdS7yrz4VXayPLa4I5PMwdw9ckks2AJXp3ZLOWcVkhqei68SWPlfXZoslwvGflLyU6RHgAwrGIDR5ejdrx1oIW36iCE/eiYjd+1vB9kjDFCizyCZbZy6EoXyQ=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=tklengyel.com;
	spf=pass  smtp.mailfrom=tamas@tklengyel.com;
	dmarc=pass header.from=<tamas@tklengyel.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1765585288;
	s=zmail; d=tklengyel.com; i=tamas@tklengyel.com;
	h=MIME-Version:References:In-Reply-To:From:From:Date:Date:Message-ID:Subject:Subject:To:To:Cc:Cc:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=6UKyMjBm/KA3X23N94H3JmDIPbxhK7G8MuncgybTHaM=;
	b=IJo29Get54TbVlvL/oZqqguZrA53NSClDNsAVMhICI1mBqX9JZK9/EGNv7/Oh3Qv
	gXCGyInxsjE9DPEnHdoEw2mbcSZXSUFPKbtNWs17vnAlWgeF0lVyQrJZc2OX7AepJyI
	TX7R5wt/lmHQH1bP4lZq61FHjFrPYENkSptRkKqU=
X-Forwarded-Encrypted: i=1; AJvYcCUfeW5QUKZmzok+6dATleuz9WVX9GvZjVuzCRBpWr0w9EGyY2FxRkas57N0KW6vYSMy4FAx53AGU34=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxAT50g0Tui4AWK7rp/ne9zFMYLDuMzxiZyVDktK7/pxy0Nj+Y4
	VILWeaO8/vlyw+YImmZOdVmv8UMc3RUzwoKH0R0e717ANwlA+DtUcBAL8mkad0OPM0WOVM3ecOz
	fkgdnhuz7/4CnMfRg/gu3Yp/2YdU4EIw=
X-Google-Smtp-Source: AGHT+IET+jpYygZ4B+R6X3+pl4mxnl7ymXRUBVL2WDbKAdBVaEALFQoQvTp2COMQDKFqp1vUwbigsY/GzuEQskZFumI=
X-Received: by 2002:a05:6808:1a1d:b0:450:3cbb:f1e2 with SMTP id
 5614622812f47-455ac98a755mr1811054b6e.46.1765585285287; Fri, 12 Dec 2025
 16:21:25 -0800 (PST)
MIME-Version: 1.0
References: <20251212040209.1970553-1-Penny.Zheng@amd.com> <20251212040209.1970553-9-Penny.Zheng@amd.com>
 <f55d729e-e25a-408e-91ae-355033eaedde@suse.com>
In-Reply-To: <f55d729e-e25a-408e-91ae-355033eaedde@suse.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Fri, 12 Dec 2025 19:20:49 -0500
X-Gmail-Original-Message-ID: <CABfawh=WGft2pF3tKGyevPY7i5tM7W6_of6RahrGvku6FRsreA@mail.gmail.com>
X-Gm-Features: AQt7F2pOWGWm2OYUrVvYThEWKde72aA3R3NhM5nWdJgICpd-uxcYWDws8qAGQ4I
Message-ID: <CABfawh=WGft2pF3tKGyevPY7i5tM7W6_of6RahrGvku6FRsreA@mail.gmail.com>
Subject: Re: [PATCH v5 08/24] xen/mem_sharing: make memory sharing depend on MGMT_HYPERCALLS
To: Jan Beulich <jbeulich@suse.com>
Cc: Penny Zheng <Penny.Zheng@amd.com>, ray.huang@amd.com, grygorii_strashko@epam.com, 
	Andrew Cooper <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Dec 12, 2025 at 4:23=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 12.12.2025 05:01, Penny Zheng wrote:
> > The enabling bit (d->arch.hvm.mem_sharing.enabled) for memory sharing c=
ould
> > only be enabled via domctl-op, so we shall make memory sharing feature
> > depend on MGMT_HYPERCALLS.
> >
> > Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

Acked-by: Tamas K Lengyel <tamas@tklengyel.com>

>
> Tamas,
>
> this is something that rather you should ack (or reject). (Penny, you wou=
ld
> have wanted to Cc Tamas here right away, no matter what F: entries in
> ./MAINTAINERS would say.)
>
> Thanks, Jan

Thanks, seems fine to me.

Tamas


From xen-devel-bounces@lists.xenproject.org Sat Dec 13 01:31:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Dec 2025 01:31:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186035.1507930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUETH-00030F-0m; Sat, 13 Dec 2025 01:30:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186035.1507930; Sat, 13 Dec 2025 01:30:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUETG-000308-TV; Sat, 13 Dec 2025 01:30:54 +0000
Received: by outflank-mailman (input) for mailman id 1186035;
 Sat, 13 Dec 2025 01:30:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aO9D=6T=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1vUETF-000302-Mi
 for xen-devel@lists.xenproject.org; Sat, 13 Dec 2025 01:30:53 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 581388b0-d7c3-11f0-9cce-f158ae23cfc8;
 Sat, 13 Dec 2025 02:30:46 +0100 (CET)
Received: from BL1PR13CA0003.namprd13.prod.outlook.com (2603:10b6:208:256::8)
 by SA5PPFEC2853BA9.namprd12.prod.outlook.com
 (2603:10b6:80f:fc04::8e9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.9; Sat, 13 Dec
 2025 01:30:38 +0000
Received: from BL02EPF0001A0FA.namprd03.prod.outlook.com
 (2603:10b6:208:256:cafe::9a) by BL1PR13CA0003.outlook.office365.com
 (2603:10b6:208:256::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.5 via Frontend Transport; Sat,
 13 Dec 2025 01:30:38 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BL02EPF0001A0FA.mail.protection.outlook.com (10.167.242.101) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Sat, 13 Dec 2025 01:30:37 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 12 Dec
 2025 19:30:37 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 12 Dec
 2025 19:30:37 -0600
Received: from xsjvictlira01-ubuntu-0.mshome.net (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17 via Frontend Transport; Fri, 12 Dec 2025 17:30:37 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 581388b0-d7c3-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wqTungroLBtN+QooGCK7e4tg757DBivz3Tvr7q45uHN+SYYIxTDxbsxWb1kDYpA8TkphJrcHWmgTJZS+w/hl1RPj52Zl7tnnROBN7yZA7H8rOXbAZet7WfTdCpRzyxeYzTpaGrSpEBhDNYlTY4HSnFANlVSeiXFkQsKxTOBRnE2RkQCBN8Ic/jNUC4052GIrUb5PNMKDq3zy0h26LYTCi566duCca7mS4O46i+tllqawssCVJtW0bbSOY0bPbDgwkKHfGRDVbNiHPHBdBMDamVzHqJH1ofDKigZd2UuKkUQNpfUNndOOMwFClztKeLT5AMZGnNK5uIncnRZTbDMtJg==
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=WJdGCH4izyTSU4OZpCLzbXqEW3naQ64qURwgV6ErX7Y=;
 b=EXIwHKJnxcaszidyKkWm7quzWJN2BnwRFvTEP3cJKHmJP4FOW4/QOvHD17brh8NA1YWTmGTe8Flt9WrEk1RlRm3GOXTx3R0awnd7MsNUVUiliYIqUToCFzkU0658UMxtYB7IZrmHNSOZdISMLFBUGIhzqHLX7DS2UGZj8UOh/8QMa3oHF8rhD1FZ0X1MPx2zxDazTJk7Xve1anfIhYWolQ1FT1RjySW8NCLDGoicg9s9CDWzN/6SwSwDMKHjCdeE3IckpGKPqgxNrTjPkpjD3dffjNrFo0zWlHbpCCaaVWmHRC2PQpcEnnJoGdC1NzlVh6Tv0TqZUntPDs3PdloVEg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WJdGCH4izyTSU4OZpCLzbXqEW3naQ64qURwgV6ErX7Y=;
 b=03MUB3YiIJIU0H7tMaeOPsQ3Xtjh3NiMaGEdyEP4r+JufQx3bqaQDUBIIuyeSakGA2bmUVlBbMbiZLzJ6ZMl1uI4uNGfCP1v7bpUz739kwqmU9VOEbAspgPjJg18wYM+7aiRmjmIOKJlRhvD4wDKSHVjl6YnQZCbInQ7BC7bMUg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Victor Lira <victorm.lira@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Victor Lira <victorm.lira@amd.com>
Subject: [XEN PATCH v1] automation: edit pipeline to fix hardware jobs running by mistake
Date: Sat, 13 Dec 2025 01:30:28 +0000
Message-ID: <20251213013028.1382461-1-victorm.lira@amd.com>
X-Mailer: git-send-email 2.51.GIT
In-Reply-To: <20251212235727.1377099-1-victorm.lira@amd.com>
References: <20251212235727.1377099-1-victorm.lira@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A0FA:EE_|SA5PPFEC2853BA9:EE_
X-MS-Office365-Filtering-Correlation-Id: 122b9c37-f124-48eb-a019-08de39e7386f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?VgCBJAADhSNVLZk40WfsbsApLFF2CE6oKkmqk4E5YwZiIvO4+ov42yYSPmis?=
 =?us-ascii?Q?Q2KccRk/MlMe/xZa1wweIR1FurMIiy94xL093ATaH9WD7ICzV0dXLjkpsFG8?=
 =?us-ascii?Q?XBD3LYwTZD/fcfqXmdb7sZNvwrGb+4FflmodlR3Wkh9qQL8wgfXGDBt1eoUQ?=
 =?us-ascii?Q?4rBxBudP2YzFisHUi6S7ybUaxF0NJq32o3LZh8JIZM2n9NMAxvAjq9dtjkiu?=
 =?us-ascii?Q?IgINlX9UaIDJZ0ESjXI1CjofOucE+rY5Pmc7GuLa9SfNez4l2QEuMvH0Di2M?=
 =?us-ascii?Q?bCyD74kcxp8Ouyrx6OsKP7HjULLU1vmmSVFLffDcb1h3zUdoY1qfKlnPr9i9?=
 =?us-ascii?Q?NFhwIba2q8L5X+nBV1yZg8Ui32vEKduv5MCCnBLUZyqpPRZ+Ul2PEAkVdSgT?=
 =?us-ascii?Q?ki1voX3gmZgXAh5lhSdRRtIyD/OIw8VFO8tfHI9fLUPlzpdapw4PyaOOIO90?=
 =?us-ascii?Q?PaIk0PGWTeWMAGK7uW9Qdqd8Nj7PCZiCKA6cuudzwAK286ZEg1o6FNxBtjja?=
 =?us-ascii?Q?+lbYlgCLOkj3G9A5NcS4Avsx56Lt5QKINCIORUgMhY96MTNTFOYLEsw/TP8E?=
 =?us-ascii?Q?NDbDpXlqSUrYA0cuRlk+NPNkf4DGR6u7xl+O7wNOiaa/vdd0fGw96DPe9HYQ?=
 =?us-ascii?Q?QYC8TTcgc0g24Rak7krSFnQKrzJ8cBUChDvaYssiOsccG3YfZQjEvFssbZzZ?=
 =?us-ascii?Q?HwTPKkUpwv9uTmd9ASzW3wATn1X1kqDV13fr6MXSHd527tkH/yF00EIeV3K5?=
 =?us-ascii?Q?Jx76/aSObycEIaF7Cm5S5iR93DD1s4X9z1l9uU6MNyz88wk79PGV1chciare?=
 =?us-ascii?Q?DW5bywGRGudIpU68C67SNizoWLsG0xwPfm07oL0x4wWP/St5EA+/hYB6obkE?=
 =?us-ascii?Q?roxrdFIucQn2zO1u2px69xYmE8fY2bYm0ibsj32jaer3LQACFCciIFYnv3/6?=
 =?us-ascii?Q?bIdt4ZLv5wpFP+kXNGapA7iSpNPCAZltZNddusfED256wY7wK9MEOpE4vkbk?=
 =?us-ascii?Q?MLyGCuPq0TwqQtt5LzElLp/+rhMzLQVrR9hqo/ddjERpIZy+qJzK68AIILbX?=
 =?us-ascii?Q?Rhz5dN92U2FkLzKSU8ZIAH73zCQW2G0aZJb5g8ruERZTq5MSHQJIhS1+t1OR?=
 =?us-ascii?Q?AZwxJje0/IWS47oPaRdtChSwzmhVZ9XTSYo3GkUPfT14++n1GQlv8aYYfTJi?=
 =?us-ascii?Q?a1eOb7smVDDaZGHRtxHAyDOepXsvdgrieJxDMvyxJYuydDfjufd3Zj2Hz0MM?=
 =?us-ascii?Q?rBVl4iIgVkgygAwQJJs0J1YVPdICdz63/5OlT0Vew+Sxmump6ZrTPX3ucyKA?=
 =?us-ascii?Q?TW7sgODbT5U9lMAIgEXL9I63fnKrjE6oodBXyyzzH3GdNrycasL+WpuT1Bim?=
 =?us-ascii?Q?BcVnLrJqFNwC5TS/TwYNY5wuOqzH+sfegU2gafrKpPuQiuzW7f6sZT2wY+9a?=
 =?us-ascii?Q?h7vtVv8jsZVsZgN1N6oSG6lW6AoCLNNyUU3Eqb2zi61cZJKsI/jGLDoE7nDM?=
 =?us-ascii?Q?MqAKZM9HT6KYVpqNI4XO9Xm4PbE86Mcp9wj5UJwklKDDySPao8tTAgt1ClsN?=
 =?us-ascii?Q?p2GTi7O9pU3r15ZnHW3RrVGSAOd1MC2+gtsu9k97?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Dec 2025 01:30:37.9814
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 122b9c37-f124-48eb-a019-08de39e7386f
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A0FA.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPFEC2853BA9

The selected jobs regex was assumed to be possibly empty in some places
and setting a default value for the regex caused the hardware jobs to
bypass some rules checks.

To fix this, adjust the rules to remove the check for empty and
instead just match the regex.

Fixes: 485ab1b5db0f358625fafe2df4e41e3ef008aed8
Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines/2212446508
https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2212446409
---
 automation/gitlab-ci/build.yaml |  7 ++-----
 automation/gitlab-ci/test.yaml  | 27 +++++++++++----------------
 2 files changed, 13 insertions(+), 21 deletions(-)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index f7e032320a..a6fc55c2d5 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -13,11 +13,8 @@
     when: always
   needs: []
   rules:
-  - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
-    when: always
-  - if: $SELECTED_JOBS_ONLY
-    when: never
-  - when: on_success
+    - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
+      when: on_success

 .gcc-tmpl:
   variables: &gcc
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 8d8f62c8d0..338fc99a8a 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -2,10 +2,8 @@
   stage: test
   image: ${XEN_REGISTRY}/${CONTAINER}
   rules:
-  - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
-  - if: $SELECTED_JOBS_ONLY
-    when: never
-  - when: on_success
+  - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
+    when: on_success

 .arm64-test-needs: &arm64-test-needs
   - project: xen-project/hardware/test-artifacts
@@ -113,10 +111,9 @@
       - '*.dtb'
     when: always
   rules:
-    - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
-    - if: $SELECTED_JOBS_ONLY
-      when: never
-    - if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
+    - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY && $XILINX_JOBS == "true"
+          && $CI_COMMIT_REF_PROTECTED == "true"
+      when: on_success
   tags:
     - xilinx

@@ -134,10 +131,9 @@
       - '*.log'
     when: always
   rules:
-    - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
-    - if: $SELECTED_JOBS_ONLY
-      when: never
-    - if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
+    - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY && $XILINX_JOBS == "true"
+          && $CI_COMMIT_REF_PROTECTED == "true"
+      when: on_success
   tags:
     - xilinx

@@ -157,10 +153,9 @@
       - '*.log'
     when: always
   rules:
-    - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
-    - if: $SELECTED_JOBS_ONLY
-      when: never
-    - if: $QUBES_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
+    - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY && $QUBES_JOBS == "true"
+          && $CI_COMMIT_REF_PROTECTED == "true"
+      when: on_success
   tags:
     - qubes-hw2

--
2.51.GIT


From xen-devel-bounces@lists.xenproject.org Sat Dec 13 01:40:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Dec 2025 01:40:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186045.1507940 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUEcO-0005D4-R1; Sat, 13 Dec 2025 01:40:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186045.1507940; Sat, 13 Dec 2025 01:40:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUEcO-0005Cx-OE; Sat, 13 Dec 2025 01:40:20 +0000
Received: by outflank-mailman (input) for mailman id 1186045;
 Sat, 13 Dec 2025 01:40:19 +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
 <SRS0=Uk1a=6T=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vUEcN-0005Cr-AQ
 for xen-devel@lists.xenproject.org; Sat, 13 Dec 2025 01:40:19 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ad741737-d7c4-11f0-b15b-2bf370ae4941;
 Sat, 13 Dec 2025 02:40:18 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 967F560197;
 Sat, 13 Dec 2025 01:40:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9F75BC4CEF5;
 Sat, 13 Dec 2025 01:40:15 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ad741737-d7c4-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765590016;
	bh=sJ4RR/YDaD3uR8Zhckm1hynsY52H0lkF9ncPKODrChw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=MX03DpFKucfStOaSk+0mDtjqljCddhjtWLsEfEQFgBXf/6DGi3EhQpW4ZSc6Ye5tM
	 j6TrQeYmGUXy1PncRIedhU4zoLGSmeEQq7NJkybDNEWfZkrTSHKeCRlNYds4+1s1vK
	 F6OEvyzE7iZedgkz076CgxF0WVkRl4+sAMC7MMV8qCIGL+TynwnwVYluJrTIkkEZNI
	 G2R+Qqow8NwIZrRqqC+6dBvUiqCEaboXTW7m2y0wR1NWKuK5s040GSEoHLN2ADJd2T
	 hB46r15hBkJCJHj2VhqKuF982xraRJSprC3N9MCt+cxaeoIvUHoEtTwyni/alDFiqh
	 kvy2fv9R40mQw==
Date: Fri, 12 Dec 2025 17:40:14 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Victor Lira <victorm.lira@amd.com>
cc: xen-devel@lists.xenproject.org, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v1] automation: edit pipeline to fix blocked status
In-Reply-To: <20251212235727.1377099-1-victorm.lira@amd.com>
Message-ID: <alpine.DEB.2.22.394.2512121740040.381016@ubuntu-linux-20-04-desktop>
References: <20251212190850.1357779-2-victorm.lira@amd.com> <20251212235727.1377099-1-victorm.lira@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 12 Dec 2025, Victor Lira wrote:
> The original yocto config had a hidden default of allow_failure: true for the
> manual job while the hidden default for rules is false. This causes the
> stages with manual jobs to show as blocked.
> 
> Set it explicitly to true to avoid the analyze and build stages being shown as
> blocked.
> 
> Fixes: 485ab1b5db0f358625fafe2df4e41e3ef008aed8
> Signed-off-by: Victor Lira <victorm.lira@amd.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


From xen-devel-bounces@lists.xenproject.org Sat Dec 13 01:40:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Dec 2025 01:40:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186046.1507950 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUEcY-0005UX-67; Sat, 13 Dec 2025 01:40:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186046.1507950; Sat, 13 Dec 2025 01:40:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUEcY-0005UQ-3E; Sat, 13 Dec 2025 01:40:30 +0000
Received: by outflank-mailman (input) for mailman id 1186046;
 Sat, 13 Dec 2025 01:40:28 +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
 <SRS0=Uk1a=6T=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vUEcW-0005Cr-QJ
 for xen-devel@lists.xenproject.org; Sat, 13 Dec 2025 01:40:28 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b3a8bb7c-d7c4-11f0-b15b-2bf370ae4941;
 Sat, 13 Dec 2025 02:40:28 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 64391600AA;
 Sat, 13 Dec 2025 01:40:27 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C98D3C4CEF1;
 Sat, 13 Dec 2025 01:40:26 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b3a8bb7c-d7c4-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765590027;
	bh=DCSgugzk5Z0QBFh8mdWZMPlnXeIyKxVPOwV/MY0A10U=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=NFTjaofucD8tkfHftidBTyZPJKBYjAvI6YoSpKmwp6lsONDoVkJnRtRNdUMq7NS3D
	 TZJjv8BrL0fhMnGCVMOjosBJ79E8CU1llFGVkrB2wD0LuwOPVb1gtn+P6JmT5Gv3Pm
	 5PpQqsd8iL7fy/9UrqPC7REHusPTvAJ0OctimazKS2HU+lVjvpyYqZtg1vpnBFNfqo
	 GSeTgZtrsxdPd3+ReV3a6w+nyTS5hgIf2FuaOeSx9Q2ivKybbm3V0Tfm0Un4VebmQv
	 1W59ffHqBMUFbvC+P65O/ZVhDgQmvDKcAOKL8xalbwVr7eDGjvwvvHRb3HWxsQMpPV
	 FlHI6EamgXu4g==
Date: Fri, 12 Dec 2025 17:40:25 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Victor Lira <victorm.lira@amd.com>
cc: xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH v1] automation: edit pipeline to fix hardware jobs
 running by mistake
In-Reply-To: <20251213013028.1382461-1-victorm.lira@amd.com>
Message-ID: <alpine.DEB.2.22.394.2512121740190.381016@ubuntu-linux-20-04-desktop>
References: <20251212235727.1377099-1-victorm.lira@amd.com> <20251213013028.1382461-1-victorm.lira@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Sat, 13 Dec 2025, Victor Lira wrote:
> The selected jobs regex was assumed to be possibly empty in some places
> and setting a default value for the regex caused the hardware jobs to
> bypass some rules checks.
> 
> To fix this, adjust the rules to remove the check for empty and
> instead just match the regex.
> 
> Fixes: 485ab1b5db0f358625fafe2df4e41e3ef008aed8
> Signed-off-by: Victor Lira <victorm.lira@amd.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


From xen-devel-bounces@lists.xenproject.org Sat Dec 13 06:50:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Dec 2025 06:50:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186158.1507984 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUJSR-0001VH-G8; Sat, 13 Dec 2025 06:50:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186158.1507984; Sat, 13 Dec 2025 06:50:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUJSR-0001V9-Bk; Sat, 13 Dec 2025 06:50:23 +0000
Received: by outflank-mailman (input) for mailman id 1186158;
 Sat, 13 Dec 2025 06:50:22 +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
 <SRS0=q/lp=6T=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vUJSP-0001V3-M0
 for xen-devel@lists.xenproject.org; Sat, 13 Dec 2025 06:50:22 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fd6e601f-d7ef-11f0-b15b-2bf370ae4941;
 Sat, 13 Dec 2025 07:50:20 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 275454EEBFCB;
 Sat, 13 Dec 2025 07:50:19 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fd6e601f-d7ef-11f0-b15b-2bf370ae4941
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765608619;
	b=Mq8/saNTi5ZQ0TnuA1dxDNy19HFA8gUqH01wGZe8LH2P3f4Mbd7hgIIz9XkGXPIrDs4h
	 qoQurCCztGf2lpmQru/Qi/jGGuYwTIO8Xe6rmf32qiOHDQcs4/uZ2qdd01lv0i9tiCqFW
	 g0YoxV3ZnyG1lkgAv8ZEqyPTbv9gu4+7qDT+G2e8t/38DJWhyA2bF4xvU1/yB2NCmByXn
	 11JiZzGsPh6sv9mc8Fq/wuhwi/zvE0QwUjLAQ4x2O4/AF6ndDhoajuz+iJR/3gf9id9zg
	 hKIrFnVBm2H4Y2/u7j/E8CWUVEwaWKF1WdGHUGMTtcd+9pwcSUYJwMeRTzSIaVYXaZZp9
	 iNDR7X8ZMzvREKaQMRvHM79+5d9PGRopi6EGlQw0yX5NqOMo0wXOTVFpZvJlPGoDjDy+U
	 oTTv2s+kx9ojAvqD9OPP8a2tJ+BAlHyoG6Q1xRsIHrSzMcLcF9onY88Qpij2Dz2ikIMu/
	 JsWLE6TmnN4jjjtR7Sca1W4febt7hYvJ+NMOPhUknyYeD27woauR1wdBKS6d5EohDSqJK
	 TaCbGKysuUVHVcVZJl27evy1UJ3GdEvVavF4cOszR5WKZYWPcG5lqWdnDlewD1pG6NKYd
	 +sHl14pJ3gj/5pL4kYQwBCYknEEdCFiJOmybkysGdcB4b/MuiVPsdjx9It19qy0=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765608619;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=xUSZZ9ZWr3mxeEuducDwLLd7vdvK4q2XQsMO9gasaTc=;
	b=3+MKi/tT9DLOEviP6jAb5k8Syu380TA5KFhZtq0iLloaqqUtxPshYHrDlBa3F/P0JSn3
	 EMf25i6/nG4lgOgWhuHpn22rKdcC7d1ko6Ye1+c7lya05ZHjlhF6Ma6anxxCQBSdDVUHL
	 GGXYMyvjdvR2j19xhZhGB84sKwVsW67c4KS5lVZy2k/ZdqixNLHKQVSU8ZHsqffvPV4ay
	 iGRvMm9gMJZn4LM+GhqohkV5Wse5tmPVjUaZM5lXWjPvxFp1ufBEnpuu1saD/rAbhItGw
	 RQR5GxIQnTNllDmnBW/aUNC4ZpJuEfMoGApVN5XYLkpBNerNVyazva0xa+ierKd9Zv21v
	 bBKXjJCyEj+PTca+YvaZqweYWolxpKEaqDqq2Wst7ZEBvT4vBqOjSTSK1RF6BlNaFx4n2
	 84GtEPNZKgQlCDa7iRdxGF+ew5SmgkIn6slxIpV/IaRufaaZezulft/Zc9+MLqTXxxhfh
	 3HZPsYzIcbnBrE96EqNcTt4U10dPgMEL5ucDSGbQYm3t5Grw5ljwufJUjgJGQICqhI3gZ
	 tWVk5WrlVYfLQKLJczepevOgvUN7SeGTzjQDqyavpkJdnY+98Ox6PyXoZIjQobJtlISoX
	 PCi1sDvJv0n0JHCw+5QoAU8kFm7Q7e3hwOQjUzECU+3RefczAO4fNt19Mi8/ND4=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765608619; bh=7aKcHDBa7WodqsMDmzVcBkCWc/TgihyyAthJJBbrFGE=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=jC54wA6211TOMYIBRwctckn82HSDMk1xRvEhNuAp+wuoQCXeTUuImSbmIItxRO4gv
	 wpyUp9oqjHT3epJMze7fQMkZT3WcIXNIyZN8nq9iM36hZ92jQQMtMyYbOoBX35+Nih
	 LDzF0/xmhbRaSSfRya2bfZIluAbtc2xZAQm6xZVH3OfTdLAsRV8KM54RyNT1vVDfjz
	 xpY4YjZSQILABeOnXMLjxf5uAWeZPml6V75lxJJReKkQ45+VLuD4gbmj6g4djd6VBh
	 pnG2izK4qwq5RcB/DqiqUjoiXkAfWcVSK3ZS9OvVHBpP99g7SowB6LLEld6G7ZmhyU
	 CWUrl9OFzMAyQ==
MIME-Version: 1.0
Date: Sat, 13 Dec 2025 07:50:19 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Victor Lira <victorm.lira@amd.com>
Cc: xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH v1] automation: edit pipeline to fix hardware jobs
 running by mistake
In-Reply-To: <20251213013028.1382461-1-victorm.lira@amd.com>
References: <20251212235727.1377099-1-victorm.lira@amd.com>
 <20251213013028.1382461-1-victorm.lira@amd.com>
Message-ID: <7cfe8502c0d32bfc8f167694f182e738@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2025-12-13 02:30, Victor Lira wrote:
> The selected jobs regex was assumed to be possibly empty in some places
> and setting a default value for the regex caused the hardware jobs to
> bypass some rules checks.
> 
> To fix this, adjust the rules to remove the check for empty and
> instead just match the regex.
> 
> Fixes: 485ab1b5db0f358625fafe2df4e41e3ef008aed8

nit: the format should be
Fixes: 485ab1b5db0f ("automation: edit pipeline to prevent running 
non-selected jobs")

> Signed-off-by: Victor Lira <victorm.lira@amd.com>
> ---
> https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines/2212446508
> https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2212446409
> ---
>  automation/gitlab-ci/build.yaml |  7 ++-----
>  automation/gitlab-ci/test.yaml  | 27 +++++++++++----------------
>  2 files changed, 13 insertions(+), 21 deletions(-)
> 
> diff --git a/automation/gitlab-ci/build.yaml 
> b/automation/gitlab-ci/build.yaml
> index f7e032320a..a6fc55c2d5 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -13,11 +13,8 @@
>      when: always
>    needs: []
>    rules:
> -  - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
> -    when: always
> -  - if: $SELECTED_JOBS_ONLY
> -    when: never
> -  - when: on_success
> +    - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
> +      when: on_success
> 
>  .gcc-tmpl:
>    variables: &gcc
> diff --git a/automation/gitlab-ci/test.yaml 
> b/automation/gitlab-ci/test.yaml
> index 8d8f62c8d0..338fc99a8a 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -2,10 +2,8 @@
>    stage: test
>    image: ${XEN_REGISTRY}/${CONTAINER}
>    rules:
> -  - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
> -  - if: $SELECTED_JOBS_ONLY
> -    when: never
> -  - when: on_success
> +  - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
> +    when: on_success
> 
>  .arm64-test-needs: &arm64-test-needs
>    - project: xen-project/hardware/test-artifacts
> @@ -113,10 +111,9 @@
>        - '*.dtb'
>      when: always
>    rules:
> -    - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
> -    - if: $SELECTED_JOBS_ONLY
> -      when: never
> -    - if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
> +    - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY && $XILINX_JOBS == 
> "true"
> +          && $CI_COMMIT_REF_PROTECTED == "true"
> +      when: on_success
>    tags:
>      - xilinx
> 
> @@ -134,10 +131,9 @@
>        - '*.log'
>      when: always
>    rules:
> -    - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
> -    - if: $SELECTED_JOBS_ONLY
> -      when: never
> -    - if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
> +    - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY && $XILINX_JOBS == 
> "true"
> +          && $CI_COMMIT_REF_PROTECTED == "true"
> +      when: on_success
>    tags:
>      - xilinx
> 
> @@ -157,10 +153,9 @@
>        - '*.log'
>      when: always
>    rules:
> -    - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
> -    - if: $SELECTED_JOBS_ONLY
> -      when: never
> -    - if: $QUBES_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
> +    - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY && $QUBES_JOBS == "true"
> +          && $CI_COMMIT_REF_PROTECTED == "true"
> +      when: on_success
>    tags:
>      - qubes-hw2
> 
> --
> 2.51.GIT

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Sat Dec 13 06:52:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Dec 2025 06:52:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186166.1507993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUJU9-00024B-Ou; Sat, 13 Dec 2025 06:52:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186166.1507993; Sat, 13 Dec 2025 06:52:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUJU9-000243-MH; Sat, 13 Dec 2025 06:52:09 +0000
Received: by outflank-mailman (input) for mailman id 1186166;
 Sat, 13 Dec 2025 06:52:08 +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
 <SRS0=q/lp=6T=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vUJU8-00023W-5d
 for xen-devel@lists.xenproject.org; Sat, 13 Dec 2025 06:52:08 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d4d5365-d7f0-11f0-b15b-2bf370ae4941;
 Sat, 13 Dec 2025 07:52:07 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 72AF04EEBFCB;
 Sat, 13 Dec 2025 07:52:06 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d4d5365-d7f0-11f0-b15b-2bf370ae4941
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765608726;
	b=3xY0sUr0OOhD9U3KEFIP449sBL95zxAPi++AYzcj0hyu/th6oWo/FKdX785q4co15UW+
	 3QHmkwXqP84381cLV+BMBYe+bF4le8jrU0T1MqY7eTdt8ArIW+muDQwXBrGr5zePM68VL
	 dD5Yh7Ah4dNvVwAIhi/E0aMcdbSVJLa83kY4yahBhfwm9P0TlU2lBcB8G0Fc+6DOLIoKm
	 2qgOvf9udJLcKa9V+zoXYmpb6QaIEd1wYqqZ0aw5jvoWNRAmbBLZCJOLLMZ7l79BTywVu
	 RjD00Pg8CPu6NXEsURlBD5Te/dau87YT8nrXHq2UevGsOXbCZ0VmCoAoZZ1cFA1wWjqtN
	 14ZMw7vlwfLPOYCB48j04KR5biCmcRVeGOcHzg1Bp1l4/7RMB/Yd7RpWEbc3B/AJN0Xxd
	 bKfqq7/hLFSzUehXmiBvc4BjZMt6WUjIbi/xFBSJfa6F10+O5C0shttKPlr+eE/SulbrU
	 YhcUrDpVreFeG4uzme3+OK5QWmfhm5UjxDYXp0N4szYnuuheHwfuZ9UI7HRY5d6rCa9D1
	 g0/zjBzWVXfHqxlLmloM3uPCbhlr5Sw9HPcy1LpXxAxubxbgxc1rumprskAq/3+TVf1lM
	 Ysabw54bKVch6tAP42W5BWWA9W+Ev/ME7ymZJCdVP5JEP1bDRWR9vRrsI4E0fP4=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765608726;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=6B0h6GcE1DzTz+ueOBRGU0cA7XtqcKZu7VR6ldWdmnE=;
	b=47qi4WoPPiv0RE2VmeD8dkeX2GBqCZI+9TSabVZReBg0rjc52j+L0EK4tcqX5t8RUC6L
	 99uT9ehkAp53M8SRLEeq+sfPCK7NFfoY3d3dksw/fCyeze/GFy9ojo7CMNBGUqvelNcL1
	 aujY+pXw8R65xCMtCaLdcB6+Cnbm6B9+nOb5jHeKaNiU/BHj2SLPyyTAGUEnjojFQcdaq
	 ggyUC9X2Dh3JgZ2xfeDkAv7sqPJsNsxI1T30XEohyZT8e9/2+WCN6Lymva3yKx/9bgcRm
	 A7S8fmT/dCHs1LpCX8Z5U/PtzvIxpK33eiA16jFafuC9RSH5iyQY7K95C9YpJM6ff9ETs
	 sNvGDv6lf6TQZ0ivf4aCw721GET9QVxK0/peO8YPFPukRkVTR8nRAnJSFGtFuOi7jA2ez
	 EcfsF1iHDC0Nw0Qty9xpf8gpWjXxS5axnl6THrom9TwqvRtq9DINvPMSNqEXEcdKHLlMa
	 D3gX0UeQFm6teT9xB3qIWewYY5rvbpnt7/1Ld8ighFNVv2h1TJAERJAvAiSp4t9swMxhf
	 CEvT/vjAqI2ca9tJEdUMWSBzoTWfViqTiQcJGf8+1Gb479JW5jUQ4yyf0sppE96hnbAP8
	 lWrCV7ttR5SR4wmc+j5t6nknnatwxznXNsjeAyArhYGKdfbIKZWkhpyGNT8HhqE=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765608726; bh=J/E5f6JxbhkB6fyiwvQs060/jJRF0mRCGZWa5J5sz1w=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=LnMwCNfEzBA38Ju6paqn2mQk05O6EugJKFAxWmjnGqbRqF9w5VRniCOra5usu8iUp
	 eO18k2iF4E5d/Q1XCys1bNmvPXRF94Z9xP4gy1ts+ptDWH9ju3WbKMwwd16p7MFvDo
	 0jTca2xba5FYHb3v3sEuokX++t+qQZJSVhhjIGP6jGpp7YxQZGB4/GXIMEstq2+v/v
	 wX/qwdsvN+LidokA/zsETHB8zk1A/mY2Zov1lZB1EXeSNYNZx1fIWhGioooub6Qpnz
	 cvFP1C5REnCjvnAB+2dJ5etywceWg6q1Qoc4iJdwfbTv1ncYvBWArCgWeT9Vczn5dX
	 We1wtPK/vFwyw==
MIME-Version: 1.0
Date: Sat, 13 Dec 2025 07:52:06 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
 <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH 1/5] x86/pv: Address MISRA C:2012 Rule 4.1
In-Reply-To: <20251212222032.2640580-2-andrew.cooper3@citrix.com>
References: <20251212222032.2640580-1-andrew.cooper3@citrix.com>
 <20251212222032.2640580-2-andrew.cooper3@citrix.com>
Message-ID: <968b6e74bfd94ad6ad6465f8ef6e8d49@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-12-12 23:20, Andrew Cooper wrote:
> MISRA doesn't like mixing hexadecimal escape sequences with ASCII text. 
>  Use
> the same workaround as in commit cd5048353725 ("xen: address MISRA 
> C:2012 Rule
> 4.1").
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: consulting@bugseng.com <consulting@bugseng.com>
> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
>  xen/arch/x86/pv/emul-inv-op.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/xen/arch/x86/pv/emul-inv-op.c 
> b/xen/arch/x86/pv/emul-inv-op.c
> index 314ebd01cb34..346ac1124d7b 100644
> --- a/xen/arch/x86/pv/emul-inv-op.c
> +++ b/xen/arch/x86/pv/emul-inv-op.c
> @@ -26,7 +26,7 @@ static int emulate_forced_invalid_op(struct 
> cpu_user_regs *regs)
>          pv_inject_page_fault(0, eip + sizeof(sig) - rc);
>          return EXCRET_fault_fixed;
>      }
> -    if ( memcmp(sig, "\xf\xbxen", sizeof(sig)) )
> +    if ( memcmp(sig, "\xf\xb" "xen", sizeof(sig)) )
>          return 0;
>      eip += sizeof(sig);

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Sat Dec 13 06:59:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Dec 2025 06:59:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186176.1508003 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUJaq-0002yU-ET; Sat, 13 Dec 2025 06:59:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186176.1508003; Sat, 13 Dec 2025 06:59:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUJaq-0002yN-BW; Sat, 13 Dec 2025 06:59:04 +0000
Received: by outflank-mailman (input) for mailman id 1186176;
 Sat, 13 Dec 2025 06:59:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=q/lp=6T=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vUJao-0002yH-E0
 for xen-devel@lists.xenproject.org; Sat, 13 Dec 2025 06:59:02 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 32b91ab9-d7f1-11f0-9cce-f158ae23cfc8;
 Sat, 13 Dec 2025 07:58:59 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id AD3434EEBFCB;
 Sat, 13 Dec 2025 07:58:57 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 32b91ab9-d7f1-11f0-9cce-f158ae23cfc8
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765609137;
	b=ee1JvJ7YL0fGuUmGoCwjCyjvrZNhektGjWZn+qhio6HvWbe6OuIXStYPtCzebHxJlhoU
	 5jOYV4SGVvuVAclgYTXsYfPYYw0REMX5A8vEBvsM5IBHrBXIJ0CPJGSkN3KtUtbRh6WFa
	 cUQ8dr6es+45PTv0TisikotuMSdnH3ZVtXm6gfxIV0/VJDdN6VmQBq/t28TWcAos4Sv84
	 i0wShnUaea8Px+qrVkU5sgzhONQ0IPtFC90uSr20da5eKWlfoYmdX3/UsiQ+YURncVziA
	 l5O9raLVuQCUaZcaUIkMT4Z5+PjGSiJME6lraf84EV7zMo0g9S/ByZ6+dXVIxwO9ziePV
	 b9Uw6m3OxlJKmu1lmW8lOEcxkFezFk2+oED3qHYvSnl6pNa3A6dLo2TWwftubPthOCYz7
	 I53M0uoS2qEKsr23DKGyBZqUtj3FZhIEqejBSmWaBZeMvIOHJPQh4jAlf3Jodtm2J37/V
	 nnxMBFOsCYjqtDwCpFJazmeoA/TVW/OdInoYVDOAzfZS4a2sOIIMzOBl1yKpDE2EkdU5X
	 d/QI1RolzwSwgeT7IVOElroNTtz2VXoqKo0S3XUBZPr/abSjM/DEw+UkOEKLho2F3RhUR
	 lEqfFKqloqtCX/2iPBfVAVUfeVetjYhbHpuEq58++FBGQQizGDsOhz0KE9xVICI=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765609137;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=Pcx8SiybhlyKkT/ZaGb4kPqoouWaFapIw9UHGFrMoEU=;
	b=4J3J0Hq/lyslM/YXaloWADT3iX/+ebnXrBK4OCUQ5zseCvWyNO49o53hWobL8w0kYjDQ
	 +vZFeWP2lSvQk5MnThWh+w4uDoXwIV96+d1APva8zjeV4H21YrCevj06ke4WH7Mo1PN02
	 1/OyGu0kWcyQppo+zCCr0dyF8s5vPZP7r50EDVftY/RVjaMCViYCUOg0PQZBToPJXFH1j
	 t+dtfI9shJhqrCxKPoSZc02EuNM43GjbTgqh1DA3XgJkgQ5mvxxTGYx7bFq0TXHg+mSdi
	 ax/9RB4e/bgyA2X3PnR1sEfmHFGX2C7/dZ0qS91apu2WdIaxXr9UVXVkay+ArKYe5M67s
	 yphHrjdVu88Ig9zCtukaKOvY6Gt0z4vuhmyCXbN1tySI4j21Pp5Q0/HtR5CZDmtjaU6Da
	 fbUPkQkKzyYA53ShXL2bwyTroH9CQi/8HLjfATs0hWpmt1CCN7zsp+MJwjlH/GDETsNRi
	 XskLhCGHRA394kT3/pwHNJb+zjDEBjrrFU79yCop1MJ+Z10HrPl8YstmfW9ISqeC3Ro1l
	 W05q0ZfNelOh2GaDzZk8FpEDOtF/hEv3XLWxeqhHNRkdydZm9OUnuYnRqd/ttc/tGBsr9
	 pd5FBOrqCdSihhoNUVhbd+TycIKrN5pmLj5LCjv2BTLfz9y7TwC2vYzEKxWZjb0=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765609137; bh=lAL3siz0ooYXY+hDQpQsUtV99kmjC4wXOBwu24AIX0M=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=LhUaMYCAJe9AiF0hc3hLGUflYCxG2wtrVVYRKKMP+aguDau0rOTPfoA5qRuH+6jeu
	 eTj2W0vvWp5X25REf7GS69ysd+QOKrSY2iSq6Uc3ZZj9YFol9xWNoefL84RKdidYIS
	 E7rWRdyIBFMNRINZ37Nurp2h0LKlWUNdjFlYs1IK0xovBlGBNex9iPlin3Lqz16c2f
	 Tzjnt+HYN0FxVlK1+IPwFi6Sh6d8eSvxpiVPVnMumWWCHshX/WcHas8qvm2yziyNSP
	 23cu3ls16k047uvAwG/BsqUJttAVyXvj7xz+njvHlANRA3OfXyFA1M152AYitSIENJ
	 /Ken8Y9LCHTEg==
MIME-Version: 1.0
Date: Sat, 13 Dec 2025 07:58:57 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
 <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH 3/5] x86: Address MIRSA R8.3 (declaration/definition
 mismatch) issues
In-Reply-To: <20251212222032.2640580-4-andrew.cooper3@citrix.com>
References: <20251212222032.2640580-1-andrew.cooper3@citrix.com>
 <20251212222032.2640580-4-andrew.cooper3@citrix.com>
Message-ID: <a965c6d701243f840ad67e7916118450@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

s/MIRSA/MISRA/ in the subject, here and in patch 4

On 2025-12-12 23:20, Andrew Cooper wrote:
> These are mostly name mismatches, but a couple have type alias 
> mismatches too.
> 
> For shadow_put_top_level() and is_patch(), the declaration name is the 
> better
> choice so change the name in the function.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: consulting@bugseng.com <consulting@bugseng.com>
> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
>  xen/arch/x86/include/asm/hypercall.h |  4 ++--
>  xen/arch/x86/include/asm/pv/mm.h     |  4 ++--
>  xen/arch/x86/include/asm/shadow.h    |  2 +-
>  xen/arch/x86/mm.c                    |  4 ++--
>  xen/arch/x86/mm/shadow/common.c      |  8 ++++----
>  xen/arch/x86/mm/shadow/multi.h       |  4 ++--
>  xen/arch/x86/mm/shadow/private.h     | 10 +++++-----
>  xen/common/kimage.c                  |  2 +-
>  xen/common/livepatch.c               | 14 +++++++-------
>  xen/include/xen/livepatch.h          |  2 +-
>  10 files changed, 27 insertions(+), 27 deletions(-)
> 
> diff --git a/xen/arch/x86/include/asm/hypercall.h 
> b/xen/arch/x86/include/asm/hypercall.h
> index f6e9e2313b3c..bf2f0e169aef 100644
> --- a/xen/arch/x86/include/asm/hypercall.h
> +++ b/xen/arch/x86/include/asm/hypercall.h
> @@ -22,8 +22,8 @@
>  void pv_hypercall(struct cpu_user_regs *regs);
>  #endif
> 
> -void pv_ring1_init_hypercall_page(void *ptr);
> -void pv_ring3_init_hypercall_page(void *ptr);
> +void pv_ring1_init_hypercall_page(void *p);
> +void pv_ring3_init_hypercall_page(void *p);
> 
>  /*
>   * Both do_mmuext_op() and do_mmu_update():
> diff --git a/xen/arch/x86/include/asm/pv/mm.h 
> b/xen/arch/x86/include/asm/pv/mm.h
> index 182764542c1f..a5745908206a 100644
> --- a/xen/arch/x86/include/asm/pv/mm.h
> +++ b/xen/arch/x86/include/asm/pv/mm.h
> @@ -18,7 +18,7 @@ int pv_set_gdt(struct vcpu *v, const unsigned long 
> frames[],
>                 unsigned int entries);
>  void pv_destroy_gdt(struct vcpu *v);
> 
> -bool pv_map_ldt_shadow_page(unsigned int off);
> +bool pv_map_ldt_shadow_page(unsigned int offset);
>  bool pv_destroy_ldt(struct vcpu *v);
> 
>  int validate_segdesc_page(struct page_info *page);
> @@ -40,7 +40,7 @@ static inline int pv_set_gdt(struct vcpu *v, const 
> unsigned long frames[],
>  { ASSERT_UNREACHABLE(); return -EINVAL; }
>  static inline void pv_destroy_gdt(struct vcpu *v) { 
> ASSERT_UNREACHABLE(); }
> 
> -static inline bool pv_map_ldt_shadow_page(unsigned int off) { return 
> false; }
> +static inline bool pv_map_ldt_shadow_page(unsigned int offset) { 
> return false; }
>  static inline bool pv_destroy_ldt(struct vcpu *v)
>  { ASSERT_UNREACHABLE(); return false; }
> 
> diff --git a/xen/arch/x86/include/asm/shadow.h 
> b/xen/arch/x86/include/asm/shadow.h
> index 9a8d1b8353cd..60589c3cacee 100644
> --- a/xen/arch/x86/include/asm/shadow.h
> +++ b/xen/arch/x86/include/asm/shadow.h
> @@ -63,7 +63,7 @@ int shadow_enable(struct domain *d, u32 mode);
> 
>  /* Enable VRAM dirty bit tracking. */
>  int shadow_track_dirty_vram(struct domain *d,
> -                            unsigned long first_pfn,
> +                            unsigned long begin_pfn,
>                              unsigned int nr_frames,
>                              XEN_GUEST_HANDLE(void) 
> guest_dirty_bitmap);
> 
> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
> index b929d15d0050..0d0d5292953b 100644
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -4566,7 +4566,7 @@ static int __do_update_va_mapping(
>  }
> 
>  long do_update_va_mapping(
> -    unsigned long va, u64 val64, unsigned long flags)
> +    unsigned long va, uint64_t val64, unsigned long flags)
>  {
>      int rc = __do_update_va_mapping(va, val64, flags, 
> current->domain);
> 
> @@ -4578,7 +4578,7 @@ long do_update_va_mapping(
>  }
> 
>  long do_update_va_mapping_otherdomain(
> -    unsigned long va, u64 val64, unsigned long flags, domid_t domid)
> +    unsigned long va, uint64_t val64, unsigned long flags, domid_t 
> domid)
>  {
>      struct domain *pg_owner;
>      int rc;
> diff --git a/xen/arch/x86/mm/shadow/common.c 
> b/xen/arch/x86/mm/shadow/common.c
> index f2aee5be46a7..f9310d008de6 100644
> --- a/xen/arch/x86/mm/shadow/common.c
> +++ b/xen/arch/x86/mm/shadow/common.c
> @@ -751,7 +751,7 @@ void shadow_promote(struct domain *d, mfn_t gmfn, 
> unsigned int type)
>      TRACE_SHADOW_PATH_FLAG(TRCE_SFLAG_PROMOTE);
>  }
> 
> -void shadow_demote(struct domain *d, mfn_t gmfn, u32 type)
> +void shadow_demote(struct domain *d, mfn_t gmfn, unsigned int type)
>  {
>      struct page_info *page = mfn_to_page(gmfn);
> 
> @@ -2615,11 +2615,11 @@ pagetable_t sh_set_toplevel_shadow(struct vcpu 
> *v,
>   * Helper invoked when releasing of a top-level shadow's reference was
>   * deferred in sh_set_toplevel_shadow() above.
>   */
> -void shadow_put_top_level(struct domain *d, pagetable_t old_entry)
> +void shadow_put_top_level(struct domain *d, pagetable_t old)
>  {
> -    ASSERT(!pagetable_is_null(old_entry));
> +    ASSERT(!pagetable_is_null(old));
>      paging_lock(d);
> -    sh_put_ref(d, pagetable_get_mfn(old_entry), 0);
> +    sh_put_ref(d, pagetable_get_mfn(old), 0);
>      paging_unlock(d);
>  }
> 
> diff --git a/xen/arch/x86/mm/shadow/multi.h 
> b/xen/arch/x86/mm/shadow/multi.h
> index 0e938594345a..fc86d7a8d9cd 100644
> --- a/xen/arch/x86/mm/shadow/multi.h
> +++ b/xen/arch/x86/mm/shadow/multi.h
> @@ -89,11 +89,11 @@ SHADOW_INTERNAL_NAME(sh_paging_mode, GUEST_LEVELS);
>  #if SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC
>  extern void
>  SHADOW_INTERNAL_NAME(sh_resync_l1, GUEST_LEVELS)
> -     (struct vcpu *v, mfn_t gmfn, mfn_t snpmfn);
> +     (struct vcpu *v, mfn_t gl1mfn, mfn_t snpmfn);
> 
>  extern int
>  SHADOW_INTERNAL_NAME(sh_safe_not_to_sync, GUEST_LEVELS)
> -     (struct vcpu*v, mfn_t gmfn);
> +     (struct vcpu*v, mfn_t gl1mfn);
> 
>  extern int
>  SHADOW_INTERNAL_NAME(sh_rm_write_access_from_sl1p, GUEST_LEVELS)
> diff --git a/xen/arch/x86/mm/shadow/private.h 
> b/xen/arch/x86/mm/shadow/private.h
> index bc99e00100f7..12cfb52f095b 100644
> --- a/xen/arch/x86/mm/shadow/private.h
> +++ b/xen/arch/x86/mm/shadow/private.h
> @@ -364,11 +364,11 @@ bool  shadow_hash_delete(struct domain *d,
>                           unsigned long n, unsigned int t, mfn_t smfn);
> 
>  /* shadow promotion */
> -void shadow_promote(struct domain *d, mfn_t gmfn, u32 type);
> -void shadow_demote(struct domain *d, mfn_t gmfn, u32 type);
> +void shadow_promote(struct domain *d, mfn_t gmfn, unsigned int type);
> +void shadow_demote(struct domain *d, mfn_t gmfn, unsigned int type);
> 
>  /* Shadow page allocation functions */
> -bool __must_check shadow_prealloc(struct domain *d, unsigned int 
> shadow_type,
> +bool __must_check shadow_prealloc(struct domain *d, unsigned int type,
>                                    unsigned int count);
>  mfn_t shadow_alloc(struct domain *d,
>                      u32 shadow_type,
> @@ -392,11 +392,11 @@ int sh_validate_guest_entry(struct vcpu *v, mfn_t 
> gmfn, void *entry, u32 size);
>   * Returns non-zero if we need to flush TLBs.
>   * level and fault_addr desribe how we found this to be a pagetable;
>   * level==0 means we have some other reason for revoking write access. 
> */
> -extern int sh_remove_write_access(struct domain *d, mfn_t 
> readonly_mfn,
> +extern int sh_remove_write_access(struct domain *d, mfn_t gmfn,
>                                    unsigned int level,
>                                    unsigned long fault_addr);
>  #else
> -static inline int sh_remove_write_access(struct domain *d, mfn_t 
> readonly_mfn,
> +static inline int sh_remove_write_access(struct domain *d, mfn_t gmfn,
>                                           unsigned int level,
>                                           unsigned long fault_addr)
>  {
> diff --git a/xen/common/kimage.c b/xen/common/kimage.c
> index 9961eac187e9..e1aec5a18a54 100644
> --- a/xen/common/kimage.c
> +++ b/xen/common/kimage.c
> @@ -66,7 +66,7 @@
>  static int kimage_is_destination_range(struct kexec_image *image,
>                                         paddr_t start, paddr_t end);
>  static struct page_info *kimage_alloc_page(struct kexec_image *image,
> -                                           paddr_t dest);
> +                                           paddr_t destination);
> 
>  static struct page_info *kimage_alloc_zeroed_page(unsigned memflags)
>  {
> diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c
> index d0da2aa28132..7446533c8cfb 100644
> --- a/xen/common/livepatch.c
> +++ b/xen/common/livepatch.c
> @@ -107,7 +107,7 @@ static int verify_payload(const struct 
> xen_sysctl_livepatch_upload *upload, char
>      return 0;
>  }
> 
> -bool is_patch(const void *ptr)
> +bool is_patch(const void *addr)
>  {
>      const struct payload *data;
>      bool r = false;
> @@ -115,12 +115,12 @@ bool is_patch(const void *ptr)
>      rcu_read_lock(&rcu_payload_lock);
>      list_for_each_entry_rcu ( data, &payload_list, list )
>      {
> -        if ( (ptr >= data->rw_addr &&
> -              ptr < (data->rw_addr + data->rw_size)) ||
> -             (ptr >= data->ro_addr &&
> -              ptr < (data->ro_addr + data->ro_size)) ||
> -             (ptr >= data->text_addr &&
> -              ptr < (data->text_addr + data->text_size)) )
> +        if ( (addr >= data->rw_addr &&
> +              addr < (data->rw_addr + data->rw_size)) ||
> +             (addr >= data->ro_addr &&
> +              addr < (data->ro_addr + data->ro_size)) ||
> +             (addr >= data->text_addr &&
> +              addr < (data->text_addr + data->text_size)) )
>          {
>              r = 1;
>              break;
> diff --git a/xen/include/xen/livepatch.h b/xen/include/xen/livepatch.h
> index 3f5ad01f1bdd..45c8924f3412 100644
> --- a/xen/include/xen/livepatch.h
> +++ b/xen/include/xen/livepatch.h
> @@ -89,7 +89,7 @@ enum va_type {
>   * Function to secure the allocate pages (from 
> arch_livepatch_alloc_payload)
>   * with the right page permissions.
>   */
> -int arch_livepatch_secure(const void *va, unsigned int pages, enum 
> va_type types);
> +int arch_livepatch_secure(const void *va, unsigned int pages, enum 
> va_type type);
> 
>  void arch_livepatch_init(void);

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Sat Dec 13 07:05:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Dec 2025 07:05:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186190.1508013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUJgY-0004cN-6Z; Sat, 13 Dec 2025 07:04:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186190.1508013; Sat, 13 Dec 2025 07:04:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUJgY-0004cG-3z; Sat, 13 Dec 2025 07:04:58 +0000
Received: by outflank-mailman (input) for mailman id 1186190;
 Sat, 13 Dec 2025 07:04:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=q/lp=6T=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vUJgX-0004cA-58
 for xen-devel@lists.xenproject.org; Sat, 13 Dec 2025 07:04:57 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 06fdac60-d7f2-11f0-9cce-f158ae23cfc8;
 Sat, 13 Dec 2025 08:04:54 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 08F094EEBFCB;
 Sat, 13 Dec 2025 08:04:54 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 06fdac60-d7f2-11f0-9cce-f158ae23cfc8
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765609494;
	b=HcU7iz3PF8B4ljCkfL93UMPliDf/lpvsiIo0HEVmGC2l1ljes2Z517CsmTMeCK9EDiNG
	 wvl9UqTtN6PMIfSuDc4goT6O4XcLwX0A3Z8xG6ljig47++7wJ9hxT4E4bHSx2CtyY82rZ
	 jy1gHWABmueo6lHel2SvD9erg6s3ttcpu6pg1zu46B8nlfBor2tyOQYo/FXxo3tYEVz0e
	 T7SysxHHwwv1ck+EwtvhdxBqLMI73hpLIgMENtqXGKpqaaGMeSc/wGpxSPEToG7Y1p4rz
	 gnmUm8J8KLdtIl043RSNtpKfuGhlTy5jS4dCzfJArGM3kgkwGnEom0SOr+RL4I3ga4tYe
	 Y1yBUVWRvOD8tk6cEoGAryH2WVa0aQn8diYtmSwFeqnK2sqZjrU1C5zp25pAVzIikPUop
	 eHfSTb876wgv9QVQ+xxDBRErfCGeczH0jndoNu+tzYhXjPpRt9dhKgrCvdvTx5LK/E0LH
	 K0Mn/yproQ6jm2XjvOGqjGeICPIQ+1kx9oWwvlnODEnLJemt/Svf+OddlnOkSQYM2OMN6
	 oJHgr6HnPhdgs4/xYWBGybKWMmDP5D/Qh0G5LAZzD9thhgzVr42l0DktHy9EsraroC6Uv
	 I0DYlP4JoHcle0SlEWxIrh7iFzw6sGXqyB3BgPyx1Ar8wbdlRSS509u8ACfsrCA=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765609494;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=QE0VF2Mh/n3CA5johqzBBgR7JTADL/vP3EQMxSVaNbg=;
	b=NtlqIo2uvWPNjAK2UqleS7zLM+Zunp0qTXCxZpIoPOmefU5dlBYt/pKGH9JuUngdvE9m
	 TVcpEUVVqtRXoP7M6suzT9si8M3WXhdwbPQ8j+YysgDx4qQ/x2o9ni6biFV+sPkj6y0g+
	 az7DTipq1ThfdG/YhDt2hE49S9YbId9SCK01KsAbyWodpeiOznAyMuS+ZGg76kxq9yAd5
	 elzICafbyBYIBKZv+Zy5JOfRXyV72vlSHdlLZbEdzrc6i19Nl+KMC+r23jYoYob1PqmH+
	 MIWdg4d8TQv8ar4wsX/DgjOEZ6Lqx109aDYt1JzXphYS+lPNyZqP9gVq9jepen0gdUqlW
	 R/FqG/C7ahNeH631lkrRbtxix7OpV2g7SUJiaw+rVdSs+FYsdeLDKbY1jxFSB1Kwur9tY
	 9uVdEQyZAB30V3eqE00CV4qv6kbJcpHFVwRrH3NRJFO0ccVpHrN91pQ6WajUOMranWH/w
	 jN5r3tOWM6kZSKa/LigJ6CuiDpiEp4KN73+URVQBwuqELpsVJZlNa5nlikPuSwECEnVUE
	 NOCGKK8YBMJCMySIfm8Sk4dn/NbNpGkCPMfxNq+SxuE27l3sRt9hGe8Vi2hRArwMUXLJH
	 oj8plv0yDLsYeY6QtaSfxzYAKMgsqh5cmXcJ7eSEy+rnLomphga7SmFYTfEjAy0=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765609494; bh=0ssRfds6/C1Cb2ZTSetpFwHpTxsLK7pKRqlvVrqsrQM=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=bMKyNTkVZ7AeOtRrZOqd2ZGpLRk56vRUNs+h8dWa3n3RNkKLn7XyboVRLvEZ/OUf2
	 wPypFqKRiaBiHQmV7efaHzwdGnV5DraV5qWNY27Va/59iLe5JkXzJiF53lzvX8T46q
	 d0SaRcAcrL1q5l3q/XQDHVWSZJecA35rj8mrHxCYLsml8137U3bdh/Hcp45lyOLG4I
	 2TnDkwKG4pDHfucw0jBIvxxwXKnYYgch+PS0wNo4j0GQlj1vs37N2JwLdWBj+oda+t
	 ErvgzxKUbkanIJ3RZx9gP7SkTLv1M26sSunm0pTrvTon3kt1Ec3Z7ioOjybaVZW6JM
	 rU8B4/7ZgSAaA==
MIME-Version: 1.0
Date: Sat, 13 Dec 2025 08:04:54 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
 <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH RFC 5/5] x86/shadow: Deviate multi.h as being included
 multiple times
In-Reply-To: <20251212222032.2640580-6-andrew.cooper3@citrix.com>
References: <20251212222032.2640580-1-andrew.cooper3@citrix.com>
 <20251212222032.2640580-6-andrew.cooper3@citrix.com>
Message-ID: <ad38f82d4eb581d622cd5e76c6b352f9@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-12-12 23:20, Andrew Cooper wrote:
> This resolves the Eclair complaint about a MISRA D4.10 violation.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: consulting@bugseng.com <consulting@bugseng.com>
> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> RFC - this doesn't actually squash the violation, despite being the 
> requisite
> magic string.  I suspect the Eclair config needs tweaking to allow the 
> magic
> anchor string to be after the SDPX tag.
> ---

I think it's just a matter of positioning. The location of the violation 
is at line 11 (the first non-comment statement of the file, and the 
string is matched in a range of -4 lines from that point:

-config=MC3A2.D4.10,reports+={safe, "first_area(text(^/\\* This file is 
intended to be included multiple times\\. \\*/$, begin-4))"}

so I think moving it just below the copyright lines or increasing the 
range should do the trick.

>  xen/arch/x86/mm/shadow/multi.h | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/xen/arch/x86/mm/shadow/multi.h 
> b/xen/arch/x86/mm/shadow/multi.h
> index fc86d7a8d9cd..b4a6cf1362a6 100644
> --- a/xen/arch/x86/mm/shadow/multi.h
> +++ b/xen/arch/x86/mm/shadow/multi.h
> @@ -2,6 +2,8 @@
>  
> /******************************************************************************
>   * arch/x86/mm/shadow/multi.h
>   *
> + * This file is intended to be included multiple times.
> + *
>   * Shadow declarations which will be multiply compiled.
>   * Parts of this code are Copyright (c) 2006 by XenSource Inc.
>   * Parts of this code are Copyright (c) 2006 by Michael A Fetterman

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Sun Dec 14 08:05:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 14 Dec 2025 08:05:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186353.1508023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUh6Y-0007g9-Nh; Sun, 14 Dec 2025 08:05:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186353.1508023; Sun, 14 Dec 2025 08:05:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUh6Y-0007g2-KY; Sun, 14 Dec 2025 08:05:22 +0000
Received: by outflank-mailman (input) for mailman id 1186353;
 Sun, 14 Dec 2025 08:05:21 +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 <SRS0=boK8=6U=kernel.org=mingo@srs-se1.protection.inumbo.net>)
 id 1vUh6X-0007fU-Bq
 for xen-devel@lists.xenproject.org; Sun, 14 Dec 2025 08:05:21 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a17bd8e1-d8c3-11f0-b15b-2bf370ae4941;
 Sun, 14 Dec 2025 09:05:19 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id DA6166016F;
 Sun, 14 Dec 2025 08:05:17 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 66711C4CEF1;
 Sun, 14 Dec 2025 08:05:12 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a17bd8e1-d8c3-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765699517;
	bh=ihizdAs5xDOev8/N37y8juDMqohuVvatea37UyTaRi8=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=Kty6VVwzTJtdeGkn/OL/sk2f7Vfnpv82H2rJ71SoVx5wLW/jb8lxm2RuFqMqpcEHB
	 9/ooTAhhdffBRwzl0rkjmLIVGEm8RBGaGHTqlxjBo6IhmNSozd/xIqpYfSV3HiEEuF
	 r9Ae5LH2yKrVwPDJsSlCF5IKvD6QnlpE6J1sYr19zntuAY/UyUwqETaiphNCCl6Fg0
	 OIfJqqcMaGaTZTfwoSpZdnCgyFEicpt76KiSaP7TH5N3yFXQRgkZp5SQtveJKUU8O8
	 qy/urqiNHzU11rrcFzoWeK/Trun7TjKtaJPlRq9DNhHOtzui8DMkvIIYEGKRnYClqr
	 1Dx2GzcDYarcA==
Date: Sun, 14 Dec 2025 09:05:09 +0100
From: Ingo Molnar <mingo@kernel.org>
To: Juergen Gross <jgross@suse.com>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
	virtualization@lists.linux.dev, kvm@vger.kernel.org,
	linux-hwmon@vger.kernel.org, linux-block@vger.kernel.org,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	xen-devel@lists.xenproject.org, Jean Delvare <jdelvare@suse.com>,
	Guenter Roeck <linux@roeck-us.net>,
	Denis Efremov <efremov@linux.com>, Jens Axboe <axboe@kernel.dk>
Subject: Re: [PATCH 0/5] x86: Cleanups around slow_down_io()
Message-ID: <aT5vtaefuHwLVsqy@gmail.com>
References: <20251126162018.5676-1-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20251126162018.5676-1-jgross@suse.com>


* Juergen Gross <jgross@suse.com> wrote:

> While looking at paravirt cleanups I stumbled over slow_down_io() and
> the related REALLY_SLOW_IO define.
>
> Especially REALLY_SLOW_IO is a mess, which is proven by 2 completely
> wrong use cases.
>
> Do several cleanups, resulting in a deletion of REALLY_SLOW_IO and the
> io_delay() paravirt function hook.
>
> Patches 2 and 3 are not changing any functionality, but maybe they
> should? As the potential bug has been present for more than a decade
> now, I went with just deleting the useless "#define REALLY_SLOW_IO".
> The alternative would be to do something similar as in patch 5.
>
> Juergen Gross (5):
>   x86/paravirt: Replace io_delay() hook with a bool
>   hwmon/lm78: Drop REALLY_SLOW_IO setting
>   hwmon/w83781d: Drop REALLY_SLOW_IO setting
>   block/floppy: Don't use REALLY_SLOW_IO for delays
>   x86/io: Remove REALLY_SLOW_IO handling
>
>  arch/x86/include/asm/floppy.h         | 27 ++++++++++++++++++++++-----
>  arch/x86/include/asm/io.h             | 12 +++++-------
>  arch/x86/include/asm/paravirt.h       | 11 +----------
>  arch/x86/include/asm/paravirt_types.h |  3 +--
>  arch/x86/kernel/cpu/vmware.c          |  2 +-
>  arch/x86/kernel/kvm.c                 |  8 +-------
>  arch/x86/kernel/paravirt.c            |  3 +--
>  arch/x86/xen/enlighten_pv.c           |  6 +-----
>  drivers/block/floppy.c                |  2 --
>  drivers/hwmon/lm78.c                  |  5 +++--
>  drivers/hwmon/w83781d.c               |  5 +++--
>  11 files changed, 39 insertions(+), 45 deletions(-)

I think we should get rid of *all* io_delay hacks, they might have been
relevant in the days of i386 systems, but we don't even support i386
CPUs anymore. Should it cause any regressions, it's easy to bisect to.
There's been enough changes around all these facilities that the
original timings are probably way off already, so we've just been
cargo-cult porting these to newer kernels essentially.

Thanks,

	Ingo


From xen-devel-bounces@lists.xenproject.org Sun Dec 14 19:09:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 14 Dec 2025 19:09:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186581.1508034 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUrTF-0005IC-8E; Sun, 14 Dec 2025 19:09:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186581.1508034; Sun, 14 Dec 2025 19:09:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUrTF-0005I4-2O; Sun, 14 Dec 2025 19:09:29 +0000
Received: by outflank-mailman (input) for mailman id 1186581;
 Sun, 14 Dec 2025 19:09:27 +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
 <SRS0=gOt9=6U=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1vUrTD-0005Hy-Ky
 for xen-devel@lists.xenproject.org; Sun, 14 Dec 2025 19:09:27 +0000
Received: from mail-yx1-xb12e.google.com (mail-yx1-xb12e.google.com
 [2607:f8b0:4864:20::b12e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6692b9c2-d920-11f0-b15b-2bf370ae4941;
 Sun, 14 Dec 2025 20:09:26 +0100 (CET)
Received: by mail-yx1-xb12e.google.com with SMTP id
 956f58d0204a3-644715aad1aso3074732d50.0
 for <xen-devel@lists.xenproject.org>; Sun, 14 Dec 2025 11:09:23 -0800 (PST)
Received: from [10.138.34.110]
 (h96-60-249-169.cncrtn.broadband.dynamic.tds.net. [96.60.249.169])
 by smtp.gmail.com with ESMTPSA id
 00721157ae682-78e748f11bcsm20211997b3.23.2025.12.14.11.09.20
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 14 Dec 2025 11:09:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6692b9c2-d920-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765739362; x=1766344162; darn=lists.xenproject.org;
        h=autocrypt:subject:from:to:content-language:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sHsmvouw1GUY2Na/GRJumR5j2oHQXkqYBmjJr6zeSro=;
        b=LZclABvluhBXMxcBRvD9c+Xoi/RWLCEUwvPnqU+eR2hrccMebdxz0+kF6qtzPsGCAl
         g+DuP8nRrj8jEz5iOlLD+oLCIQfuQv8QlyzLkd5VuTRv/tI07FQc9mno5XBAAqq89gX4
         HJ+n3DczBLq0bpWH+WMDqEIhp42wxsMYSPzyrYe2nHkRwSVKmht3ZbBXtMhMHi21APfK
         dEgHc6J4s7VhaNcKwNsgC5RS9JTyXWO6w1JdamCEOiIEa++41snfzkkQpFKvJR+LplHf
         Xu33VGXxxrWwNSET3uWyz/gzWg1NpyCQL/MYbzWJYNpVYVdQ/HexQX1I2iGoUAImApjh
         GANQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765739362; x=1766344162;
        h=autocrypt:subject:from:to:content-language:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sHsmvouw1GUY2Na/GRJumR5j2oHQXkqYBmjJr6zeSro=;
        b=BA72vogk7eaxY6IJ+NQ+XVDqalDY7J7ohFKNXhLCcEbfgioX1e87FoULJ8KpE7zyZp
         lScTEpjRfsNDvb69NSBnnhkJlMi1Eo9IUUZgput1Mqz0BQKBRu5P0K83SaDwYO/DRLtm
         kYDgF3gllFEWDSL8NeUpEllStiZ3dwya4Y9l96vbJmOR7XQvCZ3HBykUtsFxXvarLMKx
         Oipd9rBHRQJcHVS2CZ4p5SWaOAdx9Khs07EngQ0PyZo30cq9asNMUwNGgNPu4ouMYeUs
         QocoslmFzmwtpQd05wG9A7LzL+Y1XbL9ITDtMou06WIB3JJfaJ0xA3zRj5XGCfRup11O
         GEag==
X-Gm-Message-State: AOJu0YylFOx6D63F+ZCMXHZ1NE7caHPoiPcBNTwG6IDGvI523oVkMmtZ
	m/JDubZh0WqgN9hcVSOjXoJqiVk+xGeBYH7UFfJK25Gx9S8Y6I5GXajdFVWKlA==
X-Gm-Gg: AY/fxX78DOclrUTdPiXHdRBKvunQUZATtRbmNs/naa5ScthQqlELF15NtC66WDddb8i
	QiYF4fQIgzPVm8Uh356/FAz2eEAxv58fecAKZU42Fqf9xMAru2NInNRxblxsMGTWpVSTujALnBf
	DCSZbhFHsgQAc1t4euZTZZpdmD4DXdnqTtLH8yb3MZHZtpay++PoXL1IRKSoOULN33VtcE0D/zu
	0KERfCJXOT21ftbnIOihmEFxht6t73qtr3tx5TZXHPeQuqE82/5ZNgqYRppxuwmciiIC7N0SqXv
	G9G8simfSzkpXYM4PkyJ7EDNbRygXKdxXcYJZIeSc8t7UwrlWUCZJQ3DqjlzJdvovJNijUgrFe8
	Ra/tcHZLGJTDPpg8YGuBIjzl9T/9a357FwH9o9J4jxdThRbesuqcHOblO5D1qekxqHrnkRXIETx
	TQBw2MJZjPYPJ0dyRBGQnl2Lz1geWN1ECothKynF8PB1LQZIjwH84JSBVTbLKSIHAwge18/rYIH
	/TVDxAmA/Ug04sxNRXfePCtf1s=
X-Google-Smtp-Source: AGHT+IEo2w/EjqQb6LQebQ9r2dNCJnNa9cXwxu1wguXZT1JXBl29K9T1UzOx0RYDMH2YNLixlzCwMg==
X-Received: by 2002:a05:690e:1245:b0:644:770b:bc61 with SMTP id 956f58d0204a3-6447a4ff3e0mr9730250d50.19.1765739362452;
        Sun, 14 Dec 2025 11:09:22 -0800 (PST)
Message-ID: <e06eb432-289b-447a-8c3d-43da4705b4e9@gmail.com>
Date: Sun, 14 Dec 2025 14:09:15 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Xen developer discussion <xen-devel@lists.xenproject.org>
From: Demi Marie Obenour <demiobenour@gmail.com>
Subject: Undefined behavior in libxenvchan
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------tfQz4FjQpw0RFhGotPZlV0F7"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------tfQz4FjQpw0RFhGotPZlV0F7
Content-Type: multipart/mixed; boundary="------------iZ07t0VeTzD5IDBbhLWPy0bI";
 protected-headers="v1"
Message-ID: <e06eb432-289b-447a-8c3d-43da4705b4e9@gmail.com>
Date: Sun, 14 Dec 2025 14:09:15 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Xen developer discussion <xen-devel@lists.xenproject.org>
From: Demi Marie Obenour <demiobenour@gmail.com>
Subject: Undefined behavior in libxenvchan
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT

--------------iZ07t0VeTzD5IDBbhLWPy0bI
Content-Type: multipart/mixed; boundary="------------yqtMAX3P0fjQfLI0EHZQKsWF"

--------------yqtMAX3P0fjQfLI0EHZQKsWF
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

I noticed that libxenvchan has undefined behavior: it passes pointers
to guest memory to memcpy() even though they can be concurrently
changed.

Would it make sense to reuse some of Xen's copy_from_guest() code
instead?  There might be a licensing problem (GPL vs LGPL), though.
I think the only approach that isn't UB and has decent performance
is to do the whole copy in assembly.
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------yqtMAX3P0fjQfLI0EHZQKsWF
Content-Type: application/pgp-keys; name="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49y
B+l2nipdaq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYf
bWpr/si88QKgyGSVZ7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/
UorR+FaSuVwT7rqzGrTlscnTDlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7M
MPCJwI8JpPlBedRpe9tfVyfu3euTPLPxwcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9H
zx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR6h3nBc3eyuZ+q62HS1pJ5EvU
T1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl5FMWo8TCniHynNXs
BtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2Bkg1b//r
6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nS
m9BBff0Nm0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQAB
zTxEZW1pIE9iZW5vdXIgKElUTCBFbWFpbCBLZXkpIDxhdGhlbmFAaW52aXNpYmxl
dGhpbmdzbGFiLmNvbT7CwY4EEwEIADgWIQR2h02fEza6IlkHHHGyiLVf/5wiwQUC
X6YJvQIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCyiLVf/5wiwWRhD/0Y
R+YYC5Kduv/2LBgQJIygMsFiRHbR4+tWXuTFqgrxxFSlMktZ6gQrQCWe38WnOXkB
oY6n/5lSJdfnuGd2UagZ/9dkaGMUkqt+5WshLFly4BnP7pSsWReKgMP7etRTwn3S
zk1OwFx2lzY1EnnconPLfPBc6rWG2moA6l0WX+3WNR1B1ndqpl2hPSjT2jUCBWDV
rGOUSX7r5f1WgtBeNYnEXPBCUUM51pFGESmfHIXQrqFDA7nBNiIVFDJTmQzuEqIy
Jl67pKNgooij5mKzRhFKHfjLRAH4mmWZlB9UjDStAfFBAoDFHwd1HL5VQCNQdqEc
/9lZDApqWuCPadZN+pGouqLysesIYsNxUhJ7dtWOWHl0vs7/3qkWmWun/2uOJMQh
ra2u8nA9g91FbOobWqjrDd6x3ZJoGQf4zLqjmn/P514gb697788e573WN/MpQ5XI
Fl7aM2d6/GJiq6LC9T2gSUW4rbPBiqOCeiUx7Kd/sVm41p9TOA7fEG4bYddCfDsN
xaQJH6VRK3NOuBUGeL+iQEVF5Xs6Yp+U+jwvv2M5Lel3EqAYo5xXTx4ls0xaxDCu
fudcAh8CMMqx3fguSb7Mi31WlnZpk0fDuWQVNKyDP7lYpwc4nCCGNKCj622ZSocH
AcQmX28L8pJdLYacv9pU3jPy4fHcQYvmTavTqowGnM08RGVtaSBNYXJpZSBPYmVu
b3VyIChsb3ZlciBvZiBjb2RpbmcpIDxkZW1pb2Jlbm91ckBnbWFpbC5jb20+wsF4
BBMBAgAiBQJafgNKAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCyiLVf
/5wiwYa/EACv8a2+MMou9cSCNoZBQaU+fTmyzft9hUE+0d5W2UY1RY3OsjFIzm9R
/4SVccfsqOYLEo+S0vQMIIIqFEq3FCpXXwPzyimotps05VA8U3Bd7yseojFygOgK
sAMOAee2RCaDDOnoJue01dfZMzzHPO/TVdp3OvnpWipfv5G1Xg96rwbhMLE3tg6N
xwAHa31Bv4/Xq8CJOoIWvx6fcmZQpz01/lSvsYn0KrfEbTKkuUf0vM9JrCTCP2oz
VNN5BYzqaq2M4r+jmSyeXLim922VOWqGkUEQ85BSEemqrRS06IU6NtEMsF8EWt/b
hWjk/9GDKTcnpdJHTrMxTspExBiNrvpI2t+YPU5B/dJJAUxvmhFrbSIbdB8umBZs
I3AMYrEmpAbh5x7jEjoskUC7uN3o9vpg1oCLS2ePDLtAtyBtbHnkA4xGD7ar8mem
xpH9lY/i+sC6CyyIUWcUDnnagKyJP0m9ks0GLsTeOCA0bft2XA6rD6aaCnMUsndT
ctrab42CV5XypjmC4U1rPJ8JQJUh1/3P48/8sMH+3krxpJ06KNWNFaUbaMTGiltZ
7x9DngklSYrX0T+2G4kVXNmjaljwkoLahwLla2gUWwBSyofXdqyhQdwZsp01KXNQ
UCyT/Pg+aDcm/E7OMV3d4lf7g/CSxiX2GSEe6BlhSz+Lmd7ZJ3g32M1ARGVtaSBN
YXJpZSBPYmVub3VyIChJVEwgRW1haWwgS2V5KSA8ZGVtaUBpbnZpc2libGV0aGlu
Z3NsYWIuY29tPsLBjgQTAQgAOBYhBHaHTZ8TNroiWQcccbKItV//nCLBBQJgOEV+
AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJELKItV//nCLBKwoP/1WSnFdv
SAD0g7fD0WlF+oi7ISFT7oqJnchFLOwVHK4Jg0e4hGn1ekWsF3Ha5tFLh4V/7UUu
obYJpTfBAA2CckspYBqLtKGjFxcaqjjpO1I2W/jeNELVtSYuCOZICjdNGw2Hl9yH
KRZiBkqc9u8lQcHDZKq4LIpVJj6ZQV/nxttDX90ax2No1nLLQXFbr5wb465LAPpU
lXwunYDij7xJGye+VUASQh9datye6orZYuJvNo8Tr3mAQxxkfR46LzWgxFCPEAZJ
5P56Nc0IMHdJZj0Uc9+1jxERhOGppp5jlLgYGK7faGB/jTV6LaRQ4Ad+xiqokDWp
mUOZsmA+bMbtPfYjDZBz5mlyHcIRKIFpE1l3Y8F7PhJuzzMUKkJi90CYakCV4x/a
Zs4pzk5E96c2VQx01RIEJ7fzHF7lwFdtfTS4YsLtAbQFsKayqwkGcVv2B1AHeqdo
TMX+cgDvjd1ZganGlWA8Sv9RkNSMchn1hMuTwERTyFTr2dKPnQdA1F480+jUap41
ClXgn227WkCIMrNhQGNyJsnwyzi5wS8rBVRQ3BOTMyvGM07j3axUOYaejEpg7wKi
wTPZGLGH1sz5GljD/916v5+v2xLbOo5606j9dWf5/tAhbPuqrQgWv41wuKDi+dDD
EKkODF7DHes8No+QcHTDyETMn1RYm7t0RKR4zsFNBFp+A0oBEAC9ynZI9LU+uJkM
eEJeJyQ/8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd
8xD57ue0eB47bcJvVqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPp
I4gfUbVEIEQuqdqQyO4GAe+MkD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalq
l1/iSyv1WYeC1OAs+2BLOAT2NEggSiVOtxEfgewsQtCWi8H1SoirakIfo45Hz0tk
/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJriwoaRIS8N2C8/nEM53jb1sH
0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcNfRAIUrNlatj9Txwi
vQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6dCxN0GNA
ORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog
2LNtcyCjkTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZA
grrnNz0iZG2DVx46x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJ
ELKItV//nCLBwNIP/AiIHE8boIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwj
jVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGjgn0TPtsGzelyQHipaUzEyrsceUGWYoKX
YyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8frRHnJdBcjf112PzQSdKC6kqU0
Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2E0rW4tBtDAn2HkT9
uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHMOBvy3Ehz
fAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVss
Z/rYZ9+51yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aW
emLLszcYz/u3XnbOvUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPt
hZlDnTnOT+C+OTsh8+m5tos8HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj
6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E+MYSfkEjBz0E8CLOcAw7JIwAaeBTzsFN
BGbyLVgBEACqClxh50hmBepTSVlan6EBq3OAoxhrAhWZYEwN78k+ENhK68KhqC5R
IsHzlL7QHW1gmfVBQZ63GnWiraM6wOJqFTL4ZWvRslga9u28FJ5XyK860mZLgYhK
9BzoUk4s+dat9jVUbq6LpQ1Ot5I9vrdzo2p1jtQ8h9WCIiFxSYy8s8pZ3hHh5T64
GIj1m/kY7lG3VIdUgoNiREGf/iOMjUFjwwE9ZoJ26j9p7p1U+TkKeF6wgswEB1T3
J8KCAtvmRtqJDq558IU5jhg5fgN+xHB8cgvUWulgK9FIF9oFxcuxtaf/juhHWKMO
RtL0bHfNdXoBdpUDZE+mLBUAxF6KSsRrvx6AQyJs7VjgXJDtQVWvH0PUmTrEswgb
49nNU+dLLZQAZagxqnZ9Dp5l6GqaGZCHERJcLmdY/EmMzSf5YazJ6c0vO8rdW27M
kn73qcWAplQn5mOXaqbfzWkAUPyUXppuRHfrjxTDz3GyJJVOeMmMrTxH4uCaGpOX
Z8tN6829J1roGw4oKDRUQsaBAeEDqizXMPRc+6U9vI5FXzbAsb+8lKW65G7JWHym
YPOGUt2hK4DdTA1PmVo0DxH00eWWeKxqvmGyX+Dhcg+5e191rPsMRGsDlH6KihI6
+3JIuc0y6ngdjcp6aalbuvPIGFrCRx3tnRtNc7He6cBWQoH9RPwluwARAQABwsOs
BBgBCgAgFiEEdodNnxM2uiJZBxxxsoi1X/+cIsEFAmbyLVgCGwICQAkQsoi1X/+c
IsHBdCAEGQEKAB0WIQSilC2pUlbVp66j3+yzNoc6synyUwUCZvItWAAKCRCzNoc6
synyU85gD/0T1QDtPhovkGwoqv4jUbEMMvpeYQf+oWgm/TjWPeLwdjl7AtY0G9Ml
ZoyGniYkoHi37Gnn/ShLT3B5vtyI58ap2+SSa8SnGftdAKRLiWFWCiAEklm9FRk8
N3hwxhmSFF1KR/AIDS4g+HIsZn7YEMubBSgLlZZ9zHl4O4vwuXlREBEW97iL/FSt
VownU2V39t7PtFvGZNk+DJH7eLO3jmNRYB0PL4JOyyda3NH/J92iwrFmjFWWmmWb
/Xz8l9DIs+Z59pRCVTTwbBEZhcUc7rVMCcIYL+q1WxBG2e6lMn15OQJ5WfiE6E0I
sGirAEDnXWx92JNGx5l+mMpdpsWhBZ5iGTtttZesibNkQfd48/eCgFi4cxJUC4PT
UQwfD9AMgzwSTGJrkI5XGy+XqxwOjL8UA0iIrtTpMh49zw46uV6kwFQCgkf32jZM
OLwLTNSzclbnA7GRd8tKwezQ/XqeK3dal2n+cOr+o+Eka7yGmGWNUqFbIe8cjj9T
JeF3mgOCmZOwMI+wIcQYRSf+e5VTMO6TNWH5BI3vqeHSt7HkYuPlHT0pGum88d4a
pWqhulH4rUhEMtirX1hYx8Q4HlUOQqLtxzmwOYWkhl1C+yPObAvUDNiHCLf9w28n
uihgEkzHt9J4VKYulyJM9fe3ENcyU6rpXD7iANQqcr87ogKXFxknZ97uEACvSucc
RbnnAgRqZ7GDzgoBerJ2zrmhLkeREZ08iz1zze1JgyW3HEwdr2UbyAuqvSADCSUU
GN0vtQHsPzWl8onRc7lOPqPDF8OO+UfN9NAfA4wl3QyChD1GXl9rwKQOkbvdlYFV
UFx9u86LNi4ssTmU8p9NtHIGpz1SYMVYNoYy9NU7EVqypGMguDCL7gJt6GUmA0sw
p+YCroXiwL2BJ7RwRqTpgQuFL1gShkA17D5jK4mDPEetq1d8kz9rQYvAR/sTKBsR
ImC3xSfn8zpWoNTTB6lnwyP5Ng1bu6esS7+SpYprFTe7ZqGZF6xhvBPf1Ldi9UAm
U2xPN1/eeWxEa2kusidmFKPmN8lcT4miiAvwGxEnY7Oww9CgZlUB+LP4dl5VPjEt
sFeAhrgxLdpVTjPRRwTd9VQF3/XYl83j5wySIQKIPXgT3sG3ngAhDhC8I8GpM36r
8WJJ3x2yVzyJUbBPO0GBhWE2xPNIfhxVoU4cGGhpFqz7dPKSTRDGq++MrFgKKGpI
ZwT3CPTSSKc7ySndEXWkOYArDIdtyxdE1p5/c3aoz4utzUU7NDHQ+vVIwlnZSMiZ
jek2IJP3SZ+COOIHCVxpUaZ4lnzWT4eDqABhMLpIzw6NmGfg+kLBJhouqz81WITr
EtJuZYM5blWncBOJCoWMnBEcTEo/viU3GgcVRw=3D=3D
=3Dx94R
-----END PGP PUBLIC KEY BLOCK-----

--------------yqtMAX3P0fjQfLI0EHZQKsWF--

--------------iZ07t0VeTzD5IDBbhLWPy0bI--

--------------tfQz4FjQpw0RFhGotPZlV0F7
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEopQtqVJW1aeuo9/sszaHOrMp8lMFAmk/C1wACgkQszaHOrMp
8lNJdw//Qo8qhQ1SDCtb5Qe8yVIt8+ybrrsPU1rKEr8T9Wg4Pw3BfzISeIvrMcfr
hg8IWLAWy+f/YEPu8WeDSTkaTnwuQ99cUZ10jDbnFEUnTSaEqLwbPzBu/L+sbg8m
dfczK+Jt/ESY8KRo13vke6+sm4yx89WPJKAjxe3BxM7EKvqFpL0PpqFWyR4P/YLc
0zwbs1bbi074KI+PnGLQcST5KX8K6mP1iTlL1ykX7QCZBjfn684rAAa20wezeI5b
CAt5NW9MQRVhOehIA+xa9h0dE1nKVmK9D6WTqGGwPK1sObgm2vrj5G6UH6nFHlfK
/lG6ai4M9IdfLjK1tiKg2P8b7Jr4PR/T86bemG4fT0h6BVRoxZud7APRzA2V/Pjb
s26D7eArCEMlx7A5vSLghShpJMc134vXI/quG7nlzFiFM7LvRy0sYOGJnSIZZbpF
92YMJMPjSzukM3IMp2mPocLBwlo5kohzuk7ut69h58XMutNuelGHN2nXAYp8Og8G
epF29ERqMF6X/CXuqc2rMIoA2T7ekpFZEvdKv5GxBOafu2eQDhJ4EWWoNEBwX4hG
O4o2lmrtqtIWNqcAo1inz5AWb+TY/9Y1Q1ShXY7uuIORyHEzA7vv6hg64QWhNdFV
6oPYnGwhJsRM23gA3Y85gXdCjoHQZdTcZvy77dCErGCJ1fZ1Eu0=
=hJk5
-----END PGP SIGNATURE-----

--------------tfQz4FjQpw0RFhGotPZlV0F7--


From xen-devel-bounces@lists.xenproject.org Sun Dec 14 22:51:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 14 Dec 2025 22:51:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186593.1508044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUuvS-000786-8F; Sun, 14 Dec 2025 22:50:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186593.1508044; Sun, 14 Dec 2025 22:50:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUuvS-00077z-5C; Sun, 14 Dec 2025 22:50:50 +0000
Received: by outflank-mailman (input) for mailman id 1186593;
 Sun, 14 Dec 2025 22:50:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=h2nc=6U=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vUuvQ-00077s-9t
 for xen-devel@lists.xenproject.org; Sun, 14 Dec 2025 22:50:48 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 52e405db-d93f-11f0-9cce-f158ae23cfc8;
 Sun, 14 Dec 2025 23:50:45 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA0PR03MB5514.namprd03.prod.outlook.com (2603:10b6:806:b0::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Sun, 14 Dec
 2025 22:50:41 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9412.011; Sun, 14 Dec 2025
 22:50:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 52e405db-d93f-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=POyerOVFp9Z/EorRvkCPkMn+DhvxUPk15ruCf3ccJpzdTIXHEqKELbFhUyt6BHO1nApnpU9/KnULBOVxKq3Wf+Ym9n8lUe3PHQqqc0T9fxRAl5/djx6duG0Dh2AyLPWpcIjzFyl7lfL/VvZhmv9kac6DALsacSgmWtcM97iQ+XLi8EROXMvAXNY27kljr8oXSO6X3ldBxkr63Drv3vSSnO7H9FB/giTop8LFNFgznJy12evP7o4ENLocREoEercYkLwGefSW8DkGU3dfROpbYAWmBE46uXSwDac0dyL92QyXknKOnqHdjFtD2u3mhCFI/tzoUV15aI8LcUabfqpn0w==
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=D0wnGqpTRdLHwdi/rtzktp+W+Cx0CT0bsqk74y8suo0=;
 b=I3BrN1sTkKcBBGh3U3nbKBfUzJW/lxRr1C9BUyRpAUwcvF1v8cD+4ITUx40fidxS8is+8TFM2b/C53qez1khLphnfOcZBD9GjW78wNCPBOtY5j4Rw+0p+TWgyQiJpDInhZl/sQpKBMXL6DfqNkyuSlhmc1GwMNSF/1lGNl2nTNImiNEFl9RrDVzr5zPZEvIE8f1tbLRIu+69BhdDVfOr0YMtwHS8JHpKeIcMyogQfrXHhW4+MLbGslqJAGlWE5QpVSC6/puCLCBJfb1iLONNRCVECp5LG3I9c+AC+4CRoLWbl6+RfJa7LyiK68LN29nXskA7xqHtVTd0lF1tKeK9nA==
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=D0wnGqpTRdLHwdi/rtzktp+W+Cx0CT0bsqk74y8suo0=;
 b=rKetC6iErSGGJX2l6LBhVVqJAiuh/3ErfxwhsHvpFe8aIRI+noCuYzuabCxmPrVY7eYIb3gmJhkukZrHVbI9oZUjcogiva4U7tstrNEEFHDEJkSEnpn6bWP0kUJcCukuR+1IM4VrGHy3HfROUHchimuhsKQAkiJFzSKZ7/Ccp/Q=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e0c8ffb0-a916-4c78-bd5f-010b9a7a8bc3@citrix.com>
Date: Sun, 14 Dec 2025 22:50:37 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: Undefined behavior in libxenvchan
To: Demi Marie Obenour <demiobenour@gmail.com>,
 Xen developer discussion <xen-devel@lists.xenproject.org>
References: <e06eb432-289b-447a-8c3d-43da4705b4e9@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <e06eb432-289b-447a-8c3d-43da4705b4e9@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0045.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ac::21) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA0PR03MB5514:EE_
X-MS-Office365-Filtering-Correlation-Id: 12f5c5f7-db5b-45fa-7951-08de3b6334de
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YVhmMkFkZUE3ZTJEZUVjbzBDOFhOSE91bzlRZXIxbWhLOG9kYnkxOHBsb3BJ?=
 =?utf-8?B?c1BYaWpkeUR6SGNKQVhiSTNtMXVkT2JBTm9hRm5iTlFYa0wrV1ZSaVVpbTRY?=
 =?utf-8?B?bWlYaEg5R0JsNnlsN2NnbXVZckZSOEdHbHE3ejZNUnVTaTM3N25tL3VuYm5E?=
 =?utf-8?B?KzBpa20ramhleFg4enZibFZZN1U0WUsxS0hqRVNHbWorUDdMVnM0c0U2dktR?=
 =?utf-8?B?YyswSEx2MHFoL2lGeVExc1kxMndRQWcwL3JVRVRrQVVJL1QyMHNYbGc4UU1z?=
 =?utf-8?B?VXBBUFZLVjNOY28wWjlwWnhJUDd1R3EwY2wrNUl0WjVuWVZaK3pmdFdmbUkv?=
 =?utf-8?B?bFJpdFdWMDFFY256QVhsRTdrWGRqS2gvblBYaWlDRFgxdWgyNC9PdUFEVDJ5?=
 =?utf-8?B?azVDb2xITnRxSWhiK3UwaUI0T1RzRjd0RVFHdjVOWi9PelNKN0l6aUUvZkV5?=
 =?utf-8?B?UHg5UUNiRHd1elB2YUR6bkNSK1NFb3krRERoYXRhQ2s2RnVUeDdBeHpqVEMx?=
 =?utf-8?B?SkFhYlYyQm9HeEZydjdVQ2xLMnlhMU5CYTR0eGhFRXJVeXFJL05mMlZzcjJh?=
 =?utf-8?B?TWRmNkJRZVRQSTh6QXl0WnJHNEJ2Z2VCRW0zSFFMM2k1dXpFbGJtLzV1Z1dp?=
 =?utf-8?B?eGgwNVVTVGpNalcrdjB5U05aME9ySy9SU09jT2pYa2JnUGI0QUhPOTE4L2hy?=
 =?utf-8?B?VHdybVNhRDc1UFdzLy9UVjRiZXZkS1RNaXkvQVl4Zkd3Qk5Yd2RqMGg4RnlH?=
 =?utf-8?B?M2tQT3RCY2V3ejJMSVViSFd6Y2pRdG1aaUk1VkpKM3NIc0tLaUlZZWQzQ0Jy?=
 =?utf-8?B?NGpXc3NYVVE1d2t3djFLeStNcjUrZy82OTJtemxaZUxTVUMrbDZPSHgwbHd3?=
 =?utf-8?B?clg2dHlDNHJTeG5kWHd3bmt5TjBKb0dybC84NzloZGVTbFZSZDV0NWJJQVA1?=
 =?utf-8?B?L3BlNTQ3Wjh4Y1JjUzBKa01mYjBRaVc4S0xXT2lDd3FYcEpjdUI5WVpydlNT?=
 =?utf-8?B?WWMvTEMyTEtIbU40MEt1a3R3WXJXOE9EUk5FTllSaEJxOWZmckZJSm5veCtX?=
 =?utf-8?B?RG9udmxUM29oZEpGTGFnMCtuS1I3SjVsdHJQUHdPaUJUVXZrUFNsZjRZM0pm?=
 =?utf-8?B?QWJZSHhlanY5SG01N0dHbHJLNEMyQUsyTWpHMUpPVXVRczh1Zy82clo3ZXB4?=
 =?utf-8?B?RUdKT3k3SENoWGZDS2tjUWk0U0JoWU10Wmw5V01GcmFXa3lGQ2w0bGNUMkdw?=
 =?utf-8?B?QXJMTEZkay9LQTRwN0NLT04zWnA1ZnNIY3JGaFpaMGZ6bHc2VksyUTczL3ph?=
 =?utf-8?B?TUNXejBHU0NZZVVpMUZxK1dGMVdRMUlOK3gzWW9NbkZWUXNkbzBud1V0elow?=
 =?utf-8?B?TGZsMnVPdURzNkNVZzBsOHMzV09kYlhqWE04M3JIS3lKZHl4SFpIbGlMWCtX?=
 =?utf-8?B?VnBzQjVpdEN6T3JjZ0xlZjl3VlFOcDFoQWZLOFU4WWNHR2NmaFlLTFlGRGpD?=
 =?utf-8?B?cFB1eE42YUNZZzBUbDhwaSs4UTZvRms1SXpIYUJHNVc5NjRNZkZ3T0dmYTFm?=
 =?utf-8?B?K0VBblRPMVRscFRHckhsS2s0RWdFVXU0b2NUYmkxWVBaaFl0dVVvejhhUVF1?=
 =?utf-8?B?d2RDWVNBckpCU1pOQzE5enZUUWllRnNDa0p1L3ZQYzViU1NwMnFxbEVMQzk3?=
 =?utf-8?B?WC9OZXpuUlhZdzdiV2dkbUtqdTRTdzFnUXk1WDVrMXgvY1FaNWRqdWIxdVBt?=
 =?utf-8?B?SGl4b2JzOTNLdEVIblJGcUEwbm5nS2t4MEJlWHd0bXVTYmpjNlhQSXBTY3FQ?=
 =?utf-8?B?STkxamd2SXJsUHFIdndXTU1lM21sV25yb0FBUEQ2blV4RkdrcU9lcGJqQ2Zy?=
 =?utf-8?B?cEw5c1ltcWw4ZFhMSmJPK3dVck1vUzNOZm9wQUZyanNLNjN2eXJ2d2Q3S3J6?=
 =?utf-8?Q?BRXWVPB1BewazPX8+KUx38KwI77Gd0XZ?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YkMvRGRjSDljU05zRjRQVm9WQTFmbnRHd2dNUEQyUjg4cVphdmdaRllTeUw3?=
 =?utf-8?B?L2w4WG9NWGUzMG9heWhlMEp3RTVpUkcvVlR2am5EWDg4NCtZVWJmclIzVDc3?=
 =?utf-8?B?UGY5TG9qamNFWUZnSXJFS1M5Q2dCOGhwSUMvM2RBWWpTUGQvZTBGc251TVBz?=
 =?utf-8?B?Zk1tVEN5WElMRUcwTkFaSlF6Q2hYYWtTRHFYVU55QXJRdnRqWDg5Sm8vT0h1?=
 =?utf-8?B?RzRmcW1QVTVjMVpIVEs2aWYvVXFwMGNCbTRLZjY4am5nNitYNFl3aEp6YklU?=
 =?utf-8?B?dHF4R21KVjVSZkh3N00vVTYyaXJBbHBDN292cG5SSXcwdG1DTjBncGFzZURr?=
 =?utf-8?B?OFJMTnRZSk0zUGplL0RNQ3N1YXpSdU8vZ3JmOG1oTVBvTnp5dWhMOS9ibnV4?=
 =?utf-8?B?OXhaSlFjTm85NEMvc1p2dXdvNnFQUk0rZW83Q1NHbXB6cWVDc2NOU3dIWmRE?=
 =?utf-8?B?QzhCNmVHcDZaSkRzeVFjZkhROEhYbVYwTEZqVm1WVmwvVVhpSTQxeXZlT0g2?=
 =?utf-8?B?dUJ3VUpWUkVUSUpFbkpaUG1DWFdKa0U1ek9SUkYzbnh3TXpBNmF5dERmWHha?=
 =?utf-8?B?ZExkeU53OW1hdzlwQ2RFSXZzQTZtVGVIZWFUSnhHZnVqbHVQeXQ0TWxacTlw?=
 =?utf-8?B?TjNWWXJML0RsODFsNndEeWR2cWRKZGI5bGZtdStXYll2SWFMSnVPdGpseWNn?=
 =?utf-8?B?RGF5MC9LcTFxYTlOL3VMMEJwSCtLSTB4TXlaRFhWZ0l5QjBVRmxkQURWMlFQ?=
 =?utf-8?B?TSt6OHdmUHUyUWJneVVLSGg1M1RWVGJ6b2JpV0pQSmJoQVg4VkczNU5BRXVj?=
 =?utf-8?B?aTNRdnhqd2xIaC80VFhZZCtET0duc1NKQklJYXhSREgxWHY0NStHR0F4UWEy?=
 =?utf-8?B?dlQ3Yk8yYXBTMW9BZmcrSUM0Uk8yV3llWDh4TVBrTFFFQ1ZSSVJJQzF6MEh3?=
 =?utf-8?B?K1RsdHpOck4yblBlQkNycC9BcnIrYkMzWXBMR0Y5S2J6eFJPWGVpN1BVQ0hy?=
 =?utf-8?B?MzFxZkFMM2lnTWVUK3ZGZ1ZmM0dMNTFZbXIwWlNOTFo3SUVhWmNKK3JQK1M0?=
 =?utf-8?B?QkZReG9QOVA1Ym8vUEZVK3Bnck5mMTFIbndWeUsvcUZHalBZa0lkc0gvYjVa?=
 =?utf-8?B?TlVSc2JLdCtRb1BmRlhtSnF0MUJMbDNKWmpuKzhjZnZXUTdUL3JidzczTGNy?=
 =?utf-8?B?SGdUb0RLZkZuUDJkeHFtNDQ3ekJnL2RHQUlIMXlxV3dCdzJyVVROQ29zUVVR?=
 =?utf-8?B?ZktDbDUrZWJ1Ni9SSWxmdytPT1NtRmg1TFhKKzh5emc2c0dVczlmREtsY3hk?=
 =?utf-8?B?eTQvOTY1dnd4YkNBUVp3aGtnZC9TdUZQV05JaWVNZWRXdDhoL3VaVG9MckFv?=
 =?utf-8?B?dW1oUm9wQS9FSlBHTWNCcHhxS2RmWWt1dWlRNjQ5ekpRU2FrSkNFNFY4bVF1?=
 =?utf-8?B?VDBick1neWRIOHNkb3NYaGRLUjVjbU12KzRwSTF6c2lFWlhqcEs4NTQ4TVRm?=
 =?utf-8?B?bVIvKzhJeml6WkhTditMREpaTytnM3FmcFR6VzVISG5XWjIxdmx4SHNjSWFY?=
 =?utf-8?B?NTVoWTgyZlo4V1I2VFEyc3JXRG1uRko3OVJaTnorNlRKZ3hpRVlzbmpFTUM3?=
 =?utf-8?B?RXVXY1hGQjdKbU14LzFGVHlyMHpVcVpTQ1hEbFBqQnNsMVdsSHZOaVkxVGw3?=
 =?utf-8?B?clFtY1ZQN1pSVEhJVEJHSUxXQ2d4VDJmQ3ZTRTVXeDYvdzQyWEtsd1ZUNXBV?=
 =?utf-8?B?cmQwY2p0MVJNZEVvMi81dnkrb2JjYVh1UU5CWjFiWTBrZkJUZjc2amZYSXlu?=
 =?utf-8?B?QW9UV2w3SmEzK1BoYWZnZWpBUVJkdDA4UGV1SG9INHFocGNWbFJ1U0VKcGFG?=
 =?utf-8?B?bGNpaWVKdCtUa2V5V3pLTDE1VldQeWZlVDBXVGN6Y0p5OFU5bDZYdEJ0ZnlB?=
 =?utf-8?B?aWl0eHkyYTR5UGR6STFjaU9SK0tmOHRvZEpaRTNTQ3l1SkZGV2pxUStKWHVn?=
 =?utf-8?B?clVFYzVKdVJWNHVYZkhWMFNUN2lvbzRra1RGbEpja1MzMDZVelBaOE9nU1BS?=
 =?utf-8?B?RE5UV0d3bmtoenpydFdKQ04yVktQbW9KVzd3bWZBZnlZR0ZiY1ZNbHZIeEx6?=
 =?utf-8?B?RjNjVjZxMmwydC8rNk5LaU53bG5wbXU0TTJRZytSTDJFbVFxNW5yd1MwTDB3?=
 =?utf-8?B?WGc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 12f5c5f7-db5b-45fa-7951-08de3b6334de
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2025 22:50:40.9608
 (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: xhs6f4NLiBOWixLWWxnB1xLL5IzTl9rawsm8GJlJ52RnP5/u/vbz3LTqOxA8v4+3lw865qrxNQBs4bXRUycJk4Ij3bgJ7/1wcH8mxhH25MI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR03MB5514

On 14/12/2025 7:09 pm, Demi Marie Obenour wrote:
> I noticed that libxenvchan has undefined behavior: it passes pointers
> to guest memory to memcpy() even though they can be concurrently
> changed.
>
> Would it make sense to reuse some of Xen's copy_from_guest() code
> instead?  There might be a licensing problem (GPL vs LGPL), though.
> I think the only approach that isn't UB and has decent performance
> is to do the whole copy in assembly.

memcpy() is well defined.

The problem is the potential for creating TOCTOU races if suitable
barriers aren't used, due to the compiler being able to optimise through
memcpy().

Xen's copy to/from guest are not appropriate in userspace.  They're
guarding against pagefaults and address ranges not belonging to the
target context.

If more compiler/smp barriers are needed, then that's the appropriate fix.

~Andrew


From xen-devel-bounces@lists.xenproject.org Sun Dec 14 23:08:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 14 Dec 2025 23:08:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186607.1508054 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUvCG-0000fz-Mb; Sun, 14 Dec 2025 23:08:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186607.1508054; Sun, 14 Dec 2025 23:08:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUvCG-0000fs-Jd; Sun, 14 Dec 2025 23:08:12 +0000
Received: by outflank-mailman (input) for mailman id 1186607;
 Sun, 14 Dec 2025 23:08:11 +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
 <SRS0=gOt9=6U=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1vUvCF-0000fm-Bv
 for xen-devel@lists.xenproject.org; Sun, 14 Dec 2025 23:08:11 +0000
Received: from mail-yw1-x112e.google.com (mail-yw1-x112e.google.com
 [2607:f8b0:4864:20::112e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c17dd66a-d941-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 00:08:09 +0100 (CET)
Received: by mail-yw1-x112e.google.com with SMTP id
 00721157ae682-78e7ba9fc29so6912097b3.2
 for <xen-devel@lists.xenproject.org>; Sun, 14 Dec 2025 15:08:09 -0800 (PST)
Received: from [10.138.34.110]
 (h96-60-249-169.cncrtn.broadband.dynamic.tds.net. [96.60.249.169])
 by smtp.gmail.com with ESMTPSA id
 00721157ae682-78e74a5720dsm21665797b3.55.2025.12.14.15.08.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 14 Dec 2025 15:08:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c17dd66a-d941-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765753688; x=1766358488; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xz5AT5E7PdUn5FDAEek/PmY6JH046NMyi/36cLm39nY=;
        b=lnHj7duxBSHSsaEDdSfHQfcyudBz4SLSYLUYyySXwBjs6X4J+LI/fA3FMP9p2QqFnE
         n4EMONOzeRolVcCIOnBram4Lb6NPouMbn76kr1tzqwN0cjs0GBG5k12i3h0JQsMGhv6R
         oMRh5KVJV604bH5fyQpH9CliiE2Zne7MaqIDRuix+oTVI31z9WePrXoe1DIdyC5pkiO9
         gRvfa50z6RV/ADDMRqglM8ILbSQl21srjU5VhOxwLtkLuIw3t/wo1jnNls19966uhqeJ
         qiP4/IrnXt8/8x2gwraOeDZXjHh+nnNPYvYIzPEpboJjQeij84NFQ/OuPKhUs1ZAfes8
         UySw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765753688; x=1766358488;
        h=in-reply-to:autocrypt:from:content-language:references:to:subject
         :user-agent:mime-version:date:message-id:x-gm-gg:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=xz5AT5E7PdUn5FDAEek/PmY6JH046NMyi/36cLm39nY=;
        b=Vvvve/FnVJJtTjOCEnkAp+ElbPcMbn6+fz+tn8dBoqqARXmv6lVGHea7tyZUHYESe3
         qeeM55xgmv3mdQ+QDzbKDE3U+Kv4g+ZQIHRvawsN+4HS//9E2RD8zCKTwG5yQOZmL6Ow
         keAFJdXl5SQLtZpDckvztCej1WRpakUz5NEsk9rwj18plo+CRS5FsO2kGjvzJSEZdOM/
         c6/nLVJhPaeYPN++ZVZgjmOTeqhMgHQTBqO9d2acZl4DhF+NLQrZQpXIglq5BVVwwIMn
         UOs5bYOkQDGS//1kvthT8auiR0Ha4UpYOURx3jeKtnwa+4KF0pbZxGgAX88hHv7zOR/L
         415w==
X-Forwarded-Encrypted: i=1; AJvYcCWvbwevjx/M39ZFn+m+N6kM0354MqvPcQEKqWcqn+uG/VNtJKTRI9fm2FlzlHEXX6Sw34KScqo7UiI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yynso6xhWoQOh5OtE+ipJEX3RCcaatbxrMJ17dIDZyxLw/i+nZa
	CrFgZmxN3DpoVeqMFmitF0pLMyoHoNxRwCSt+nFzIUvsl4J/+0iwBkqjxlsAlg==
X-Gm-Gg: AY/fxX6TQlDCTEw4cEdNy9DaG+DNE/eiAYryXUZ8KgpL8g4QcKsuoUGgXwfm0P7mN91
	q9loLQnuC94XP77UYy/DqxRAm2sMZDjUhATDRrXjy2ioLG6qV+5C7tvWkFzf1DuE4BU35Rr0V5R
	tG11EoM2KY32PvB6gap+tn2TGUkUsezuxOIhkUlYc6bJhEExxTNXYT3oGPgSWDdkDcuK8U+eb2h
	YasZnKdg3cmIFA3SvNdf/RM2j5jmAQsfpvuIRMBDzr7r4PQb7ODK7S2mKXIvifD9foWzvAtuLJ3
	1oGRaYEY/2v9NYtIm6CSHTSxnB7jBDXcRzhQACYpzxR8/378+q4Rdb9kPYf5H9vZqdZv89TPQtN
	qGxQXcr6GJ8gtOO5JJEZh1Uh5F6Bh8dYglLpW4FDdZ5nUz2EHZ5oSMwCoqHw3sZR0h9o2c9PjwC
	1AzGpoFwne60b7IyX//wXP7H2uZKg1UCfwW5nQtYFnVTX3WgY5dyANZQYDJu21vPuOXbvwzZIU6
	poRuBFB0w41jRJPnUyJFtCeXac=
X-Google-Smtp-Source: AGHT+IFohaIoSK4RVDlzqQPed98O6NAxkA2OAbid2xR+bnuT7BHLx43M4w68xDqFO+MFIlp22zkBAg==
X-Received: by 2002:a05:690c:6608:b0:788:19b3:3fa1 with SMTP id 00721157ae682-78e66da5319mr79618377b3.25.1765753688346;
        Sun, 14 Dec 2025 15:08:08 -0800 (PST)
Message-ID: <bdf22b1a-49b5-43d4-8dfc-178c0076c917@gmail.com>
Date: Sun, 14 Dec 2025 18:08:02 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Undefined behavior in libxenvchan
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen developer discussion <xen-devel@lists.xenproject.org>
References: <e06eb432-289b-447a-8c3d-43da4705b4e9@gmail.com>
 <e0c8ffb0-a916-4c78-bd5f-010b9a7a8bc3@citrix.com>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <e0c8ffb0-a916-4c78-bd5f-010b9a7a8bc3@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------JDNLkLZWI0Rao0smnehzQPSv"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------JDNLkLZWI0Rao0smnehzQPSv
Content-Type: multipart/mixed; boundary="------------JPTnifCSlcuAvZk8qEyXYfqg";
 protected-headers="v1"
Message-ID: <bdf22b1a-49b5-43d4-8dfc-178c0076c917@gmail.com>
Date: Sun, 14 Dec 2025 18:08:02 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Undefined behavior in libxenvchan
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen developer discussion <xen-devel@lists.xenproject.org>
References: <e06eb432-289b-447a-8c3d-43da4705b4e9@gmail.com>
 <e0c8ffb0-a916-4c78-bd5f-010b9a7a8bc3@citrix.com>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <e0c8ffb0-a916-4c78-bd5f-010b9a7a8bc3@citrix.com>

--------------JPTnifCSlcuAvZk8qEyXYfqg
Content-Type: multipart/mixed; boundary="------------8aBSZbtxbYCUMAJMN0XBNP1b"

--------------8aBSZbtxbYCUMAJMN0XBNP1b
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On 12/14/25 17:50, Andrew Cooper wrote:
> On 14/12/2025 7:09 pm, Demi Marie Obenour wrote:
>> I noticed that libxenvchan has undefined behavior: it passes pointers
>> to guest memory to memcpy() even though they can be concurrently
>> changed.
>>
>> Would it make sense to reuse some of Xen's copy_from_guest() code
>> instead?  There might be a licensing problem (GPL vs LGPL), though.
>> I think the only approach that isn't UB and has decent performance
>> is to do the whole copy in assembly.
>=20
> memcpy() is well defined.

Rich Felker wrote otherwise on the musl mailing list.  Specifically,
it is undefined behavior if the data is changed while memcpy() is
accessing it, either for reading or for writing.

> The problem is the potential for creating TOCTOU races if suitable
> barriers aren't used, due to the compiler being able to optimise throug=
h
> memcpy().

The concern here is about races in memcpy() itself.

> Xen's copy to/from guest are not appropriate in userspace.=C2=A0 They'r=
e
> guarding against pagefaults and address ranges not belonging to the
> target context.
>=20
> If more compiler/smp barriers are needed, then that's the appropriate f=
ix.

Rich Felker suggested to use an open-coded memcpy() that used volatile
accesses.
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------8aBSZbtxbYCUMAJMN0XBNP1b
Content-Type: application/pgp-keys; name="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49y
B+l2nipdaq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYf
bWpr/si88QKgyGSVZ7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/
UorR+FaSuVwT7rqzGrTlscnTDlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7M
MPCJwI8JpPlBedRpe9tfVyfu3euTPLPxwcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9H
zx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR6h3nBc3eyuZ+q62HS1pJ5EvU
T1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl5FMWo8TCniHynNXs
BtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2Bkg1b//r
6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nS
m9BBff0Nm0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQAB
zTxEZW1pIE9iZW5vdXIgKElUTCBFbWFpbCBLZXkpIDxhdGhlbmFAaW52aXNpYmxl
dGhpbmdzbGFiLmNvbT7CwY4EEwEIADgWIQR2h02fEza6IlkHHHGyiLVf/5wiwQUC
X6YJvQIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCyiLVf/5wiwWRhD/0Y
R+YYC5Kduv/2LBgQJIygMsFiRHbR4+tWXuTFqgrxxFSlMktZ6gQrQCWe38WnOXkB
oY6n/5lSJdfnuGd2UagZ/9dkaGMUkqt+5WshLFly4BnP7pSsWReKgMP7etRTwn3S
zk1OwFx2lzY1EnnconPLfPBc6rWG2moA6l0WX+3WNR1B1ndqpl2hPSjT2jUCBWDV
rGOUSX7r5f1WgtBeNYnEXPBCUUM51pFGESmfHIXQrqFDA7nBNiIVFDJTmQzuEqIy
Jl67pKNgooij5mKzRhFKHfjLRAH4mmWZlB9UjDStAfFBAoDFHwd1HL5VQCNQdqEc
/9lZDApqWuCPadZN+pGouqLysesIYsNxUhJ7dtWOWHl0vs7/3qkWmWun/2uOJMQh
ra2u8nA9g91FbOobWqjrDd6x3ZJoGQf4zLqjmn/P514gb697788e573WN/MpQ5XI
Fl7aM2d6/GJiq6LC9T2gSUW4rbPBiqOCeiUx7Kd/sVm41p9TOA7fEG4bYddCfDsN
xaQJH6VRK3NOuBUGeL+iQEVF5Xs6Yp+U+jwvv2M5Lel3EqAYo5xXTx4ls0xaxDCu
fudcAh8CMMqx3fguSb7Mi31WlnZpk0fDuWQVNKyDP7lYpwc4nCCGNKCj622ZSocH
AcQmX28L8pJdLYacv9pU3jPy4fHcQYvmTavTqowGnM08RGVtaSBNYXJpZSBPYmVu
b3VyIChsb3ZlciBvZiBjb2RpbmcpIDxkZW1pb2Jlbm91ckBnbWFpbC5jb20+wsF4
BBMBAgAiBQJafgNKAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCyiLVf
/5wiwYa/EACv8a2+MMou9cSCNoZBQaU+fTmyzft9hUE+0d5W2UY1RY3OsjFIzm9R
/4SVccfsqOYLEo+S0vQMIIIqFEq3FCpXXwPzyimotps05VA8U3Bd7yseojFygOgK
sAMOAee2RCaDDOnoJue01dfZMzzHPO/TVdp3OvnpWipfv5G1Xg96rwbhMLE3tg6N
xwAHa31Bv4/Xq8CJOoIWvx6fcmZQpz01/lSvsYn0KrfEbTKkuUf0vM9JrCTCP2oz
VNN5BYzqaq2M4r+jmSyeXLim922VOWqGkUEQ85BSEemqrRS06IU6NtEMsF8EWt/b
hWjk/9GDKTcnpdJHTrMxTspExBiNrvpI2t+YPU5B/dJJAUxvmhFrbSIbdB8umBZs
I3AMYrEmpAbh5x7jEjoskUC7uN3o9vpg1oCLS2ePDLtAtyBtbHnkA4xGD7ar8mem
xpH9lY/i+sC6CyyIUWcUDnnagKyJP0m9ks0GLsTeOCA0bft2XA6rD6aaCnMUsndT
ctrab42CV5XypjmC4U1rPJ8JQJUh1/3P48/8sMH+3krxpJ06KNWNFaUbaMTGiltZ
7x9DngklSYrX0T+2G4kVXNmjaljwkoLahwLla2gUWwBSyofXdqyhQdwZsp01KXNQ
UCyT/Pg+aDcm/E7OMV3d4lf7g/CSxiX2GSEe6BlhSz+Lmd7ZJ3g32M1ARGVtaSBN
YXJpZSBPYmVub3VyIChJVEwgRW1haWwgS2V5KSA8ZGVtaUBpbnZpc2libGV0aGlu
Z3NsYWIuY29tPsLBjgQTAQgAOBYhBHaHTZ8TNroiWQcccbKItV//nCLBBQJgOEV+
AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJELKItV//nCLBKwoP/1WSnFdv
SAD0g7fD0WlF+oi7ISFT7oqJnchFLOwVHK4Jg0e4hGn1ekWsF3Ha5tFLh4V/7UUu
obYJpTfBAA2CckspYBqLtKGjFxcaqjjpO1I2W/jeNELVtSYuCOZICjdNGw2Hl9yH
KRZiBkqc9u8lQcHDZKq4LIpVJj6ZQV/nxttDX90ax2No1nLLQXFbr5wb465LAPpU
lXwunYDij7xJGye+VUASQh9datye6orZYuJvNo8Tr3mAQxxkfR46LzWgxFCPEAZJ
5P56Nc0IMHdJZj0Uc9+1jxERhOGppp5jlLgYGK7faGB/jTV6LaRQ4Ad+xiqokDWp
mUOZsmA+bMbtPfYjDZBz5mlyHcIRKIFpE1l3Y8F7PhJuzzMUKkJi90CYakCV4x/a
Zs4pzk5E96c2VQx01RIEJ7fzHF7lwFdtfTS4YsLtAbQFsKayqwkGcVv2B1AHeqdo
TMX+cgDvjd1ZganGlWA8Sv9RkNSMchn1hMuTwERTyFTr2dKPnQdA1F480+jUap41
ClXgn227WkCIMrNhQGNyJsnwyzi5wS8rBVRQ3BOTMyvGM07j3axUOYaejEpg7wKi
wTPZGLGH1sz5GljD/916v5+v2xLbOo5606j9dWf5/tAhbPuqrQgWv41wuKDi+dDD
EKkODF7DHes8No+QcHTDyETMn1RYm7t0RKR4zsFNBFp+A0oBEAC9ynZI9LU+uJkM
eEJeJyQ/8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd
8xD57ue0eB47bcJvVqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPp
I4gfUbVEIEQuqdqQyO4GAe+MkD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalq
l1/iSyv1WYeC1OAs+2BLOAT2NEggSiVOtxEfgewsQtCWi8H1SoirakIfo45Hz0tk
/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJriwoaRIS8N2C8/nEM53jb1sH
0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcNfRAIUrNlatj9Txwi
vQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6dCxN0GNA
ORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog
2LNtcyCjkTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZA
grrnNz0iZG2DVx46x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJ
ELKItV//nCLBwNIP/AiIHE8boIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwj
jVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGjgn0TPtsGzelyQHipaUzEyrsceUGWYoKX
YyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8frRHnJdBcjf112PzQSdKC6kqU0
Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2E0rW4tBtDAn2HkT9
uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHMOBvy3Ehz
fAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVss
Z/rYZ9+51yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aW
emLLszcYz/u3XnbOvUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPt
hZlDnTnOT+C+OTsh8+m5tos8HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj
6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E+MYSfkEjBz0E8CLOcAw7JIwAaeBTzsFN
BGbyLVgBEACqClxh50hmBepTSVlan6EBq3OAoxhrAhWZYEwN78k+ENhK68KhqC5R
IsHzlL7QHW1gmfVBQZ63GnWiraM6wOJqFTL4ZWvRslga9u28FJ5XyK860mZLgYhK
9BzoUk4s+dat9jVUbq6LpQ1Ot5I9vrdzo2p1jtQ8h9WCIiFxSYy8s8pZ3hHh5T64
GIj1m/kY7lG3VIdUgoNiREGf/iOMjUFjwwE9ZoJ26j9p7p1U+TkKeF6wgswEB1T3
J8KCAtvmRtqJDq558IU5jhg5fgN+xHB8cgvUWulgK9FIF9oFxcuxtaf/juhHWKMO
RtL0bHfNdXoBdpUDZE+mLBUAxF6KSsRrvx6AQyJs7VjgXJDtQVWvH0PUmTrEswgb
49nNU+dLLZQAZagxqnZ9Dp5l6GqaGZCHERJcLmdY/EmMzSf5YazJ6c0vO8rdW27M
kn73qcWAplQn5mOXaqbfzWkAUPyUXppuRHfrjxTDz3GyJJVOeMmMrTxH4uCaGpOX
Z8tN6829J1roGw4oKDRUQsaBAeEDqizXMPRc+6U9vI5FXzbAsb+8lKW65G7JWHym
YPOGUt2hK4DdTA1PmVo0DxH00eWWeKxqvmGyX+Dhcg+5e191rPsMRGsDlH6KihI6
+3JIuc0y6ngdjcp6aalbuvPIGFrCRx3tnRtNc7He6cBWQoH9RPwluwARAQABwsOs
BBgBCgAgFiEEdodNnxM2uiJZBxxxsoi1X/+cIsEFAmbyLVgCGwICQAkQsoi1X/+c
IsHBdCAEGQEKAB0WIQSilC2pUlbVp66j3+yzNoc6synyUwUCZvItWAAKCRCzNoc6
synyU85gD/0T1QDtPhovkGwoqv4jUbEMMvpeYQf+oWgm/TjWPeLwdjl7AtY0G9Ml
ZoyGniYkoHi37Gnn/ShLT3B5vtyI58ap2+SSa8SnGftdAKRLiWFWCiAEklm9FRk8
N3hwxhmSFF1KR/AIDS4g+HIsZn7YEMubBSgLlZZ9zHl4O4vwuXlREBEW97iL/FSt
VownU2V39t7PtFvGZNk+DJH7eLO3jmNRYB0PL4JOyyda3NH/J92iwrFmjFWWmmWb
/Xz8l9DIs+Z59pRCVTTwbBEZhcUc7rVMCcIYL+q1WxBG2e6lMn15OQJ5WfiE6E0I
sGirAEDnXWx92JNGx5l+mMpdpsWhBZ5iGTtttZesibNkQfd48/eCgFi4cxJUC4PT
UQwfD9AMgzwSTGJrkI5XGy+XqxwOjL8UA0iIrtTpMh49zw46uV6kwFQCgkf32jZM
OLwLTNSzclbnA7GRd8tKwezQ/XqeK3dal2n+cOr+o+Eka7yGmGWNUqFbIe8cjj9T
JeF3mgOCmZOwMI+wIcQYRSf+e5VTMO6TNWH5BI3vqeHSt7HkYuPlHT0pGum88d4a
pWqhulH4rUhEMtirX1hYx8Q4HlUOQqLtxzmwOYWkhl1C+yPObAvUDNiHCLf9w28n
uihgEkzHt9J4VKYulyJM9fe3ENcyU6rpXD7iANQqcr87ogKXFxknZ97uEACvSucc
RbnnAgRqZ7GDzgoBerJ2zrmhLkeREZ08iz1zze1JgyW3HEwdr2UbyAuqvSADCSUU
GN0vtQHsPzWl8onRc7lOPqPDF8OO+UfN9NAfA4wl3QyChD1GXl9rwKQOkbvdlYFV
UFx9u86LNi4ssTmU8p9NtHIGpz1SYMVYNoYy9NU7EVqypGMguDCL7gJt6GUmA0sw
p+YCroXiwL2BJ7RwRqTpgQuFL1gShkA17D5jK4mDPEetq1d8kz9rQYvAR/sTKBsR
ImC3xSfn8zpWoNTTB6lnwyP5Ng1bu6esS7+SpYprFTe7ZqGZF6xhvBPf1Ldi9UAm
U2xPN1/eeWxEa2kusidmFKPmN8lcT4miiAvwGxEnY7Oww9CgZlUB+LP4dl5VPjEt
sFeAhrgxLdpVTjPRRwTd9VQF3/XYl83j5wySIQKIPXgT3sG3ngAhDhC8I8GpM36r
8WJJ3x2yVzyJUbBPO0GBhWE2xPNIfhxVoU4cGGhpFqz7dPKSTRDGq++MrFgKKGpI
ZwT3CPTSSKc7ySndEXWkOYArDIdtyxdE1p5/c3aoz4utzUU7NDHQ+vVIwlnZSMiZ
jek2IJP3SZ+COOIHCVxpUaZ4lnzWT4eDqABhMLpIzw6NmGfg+kLBJhouqz81WITr
EtJuZYM5blWncBOJCoWMnBEcTEo/viU3GgcVRw=3D=3D
=3Dx94R
-----END PGP PUBLIC KEY BLOCK-----

--------------8aBSZbtxbYCUMAJMN0XBNP1b--

--------------JPTnifCSlcuAvZk8qEyXYfqg--

--------------JDNLkLZWI0Rao0smnehzQPSv
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEopQtqVJW1aeuo9/sszaHOrMp8lMFAmk/Q1QACgkQszaHOrMp
8lPvPg/9H2pCTVZf9AMv5qv5O6NQduLkwkD9cMBoAU4EchEa3knBIrcTloHjp1by
EVQJMkKuTcc0JnLJQ5zmSHxJwCEzQl8+twATk1klyfZCmsUKY2aVym7T0kWwO25p
Hrgl4isTSDuTWftz1716QyqiR1/Hhf8o9wC/GIko/qTir6oIdciTuIZggaQl1duT
gzndCmfu6ZKLupXhLNT8lGiwIPSr4qPzs8sypHMMd6jGCUAd0hiA54r/AFSubygt
Lu4sa/k+kbE63O5deSfM4FvKYsWMZS7km2jykksakbxgv/rvggwd+sAyJ1TRo5lw
8BTBjWLQ2rSUbCsm1dMMDO75qPaeoaOfcLJuVIY8gqipy2jH2iEX7mpd49YzOMF8
jhcel0TT/lERh002C+TEBxmvXpFypNwBJCLc+EaQqMYA+LayPrJZCpGhwDZMouFQ
nZMvqUwz9eYw5trmk19ruQgsIvglY4v9lfZMNqPKwVN7g1Os5yWWDeFhnVFtNi2T
NFnR5vFZYvBjLKFMXVZcXWsr03Xf4nYw8+c+SG8mIBWLA+yqnEzhm+bXtJPr0tvz
nIB+/rGt3uqQse4DF+C1nFgz5i5968QJb3/WCKh1k3Ofj9O3X4oAoip0KNdUA8wW
d4m3O4Vt9DS4VCoPVyK5wT3dFGYdayHVC2n1ED+InoPeeSej4LA=
=HTmP
-----END PGP SIGNATURE-----

--------------JDNLkLZWI0Rao0smnehzQPSv--


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 02:55:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 02:55:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186624.1508064 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUykP-0003jH-8c; Mon, 15 Dec 2025 02:55:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186624.1508064; Mon, 15 Dec 2025 02:55:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vUykP-0003j9-3S; Mon, 15 Dec 2025 02:55:41 +0000
Received: by outflank-mailman (input) for mailman id 1186624;
 Mon, 15 Dec 2025 02:55:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1wHW=6V=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vUykM-0003j3-RP
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 02:55:39 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8540231f-d961-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 03:55:32 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 BY5PR12MB4179.namprd12.prod.outlook.com (2603:10b6:a03:211::8) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.13; Mon, 15 Dec 2025 02:55:28 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2%2]) with mapi id 15.20.9412.011; Mon, 15 Dec 2025
 02:55:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8540231f-d961-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=c/oUorB/KBFZUZDGoc7O0trP/EwvV+oyRn3NMsJwYAGEQXXHXQW8f1zNPJb3br8VlzEPcuLC4TpYAuV6rdB1Ta7l2qVDNkw3/bRUfnfp8bK1oduNsCONbTmomVpTzKzNtT3CvlVnz3FC9Gp5KL17QFeGIT2xRHzWMO1ZkH6+nA6ZoPAJq9boxioXnt9FAfuI88mUG0Gy6Bjgn177AiuHM8co6RddoMXL8AiaGB0tsFJJcqq1OMyjzutlCOp3Xb/UX/shwfUrenG952qeFRhMI4SYgiFSFrnqluQ5fq8zv4WI4GssRP/YxIyG76KwX5YZ38bBJQM6hlK+mSAE+bbJZA==
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=7aYH7xpLOjT2tSF/DsD4mrXbdt6UPreNAV6Bv98K7Q8=;
 b=BGMQDSsNwhZ72PtrXbfz5ruh6x+uSdon/bMsT56zJeXMmrmLTBlzzkZ7W2QgPuprjfLJzcn3wmdUFR7+HVF+kPBXA8cN5JwJdeSVCOz7Ed1qCzSyfsUkDd5IjrCJGMoR3evZQ821j2uCTwb31oc1asqWrs/SZRf8Uam9KMcdhIXYdv40UvPdkjbhRPbyyNM+5fZiGEGI/fPLylkO4Gs4qLeaKk/NDUB7gHsvnKuxbPCmb0dRiJwYZi9INi6+geilZjON0gaqhmPwzlzFz+20SjCQQvRq++XBAaKeKz7ytlTxsuSEztQQ1ufKNKgrfNa4nZI00bQRzOod/6738GHy/Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7aYH7xpLOjT2tSF/DsD4mrXbdt6UPreNAV6Bv98K7Q8=;
 b=Y1SI1MV93RCE9Ar94NUzAKmyQ7Pdyuw2vEkupLotGEQe6gF3/vyx5rAw3bdbRGPLo/gTFEZKLyUe2aK3aXNX6Fsst/ymrOK9du4U8HttXJuLsptJKPMyiyD58cWkkfCnVfXQQmXPInYYR3iDPWwy0UO8dqjMht0bml7ZlpJwDY4=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Tamas K Lengyel <tamas@tklengyel.com>, Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "grygorii_strashko@epam.com"
	<grygorii_strashko@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v5 08/24] xen/mem_sharing: make memory sharing depend on
 MGMT_HYPERCALLS
Thread-Topic: [PATCH v5 08/24] xen/mem_sharing: make memory sharing depend on
 MGMT_HYPERCALLS
Thread-Index: AQHcaxy9v3+S12G4xUGmXYJrOTKsybUdu3KAgAD6/oCAA0++kA==
Date: Mon, 15 Dec 2025 02:55:28 +0000
Message-ID:
 <DM4PR12MB845194CD0ED12B741E714A4DE1ADA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
 <20251212040209.1970553-9-Penny.Zheng@amd.com>
 <f55d729e-e25a-408e-91ae-355033eaedde@suse.com>
 <CABfawh=WGft2pF3tKGyevPY7i5tM7W6_of6RahrGvku6FRsreA@mail.gmail.com>
In-Reply-To:
 <CABfawh=WGft2pF3tKGyevPY7i5tM7W6_of6RahrGvku6FRsreA@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-12-15T02:55:15.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|BY5PR12MB4179:EE_
x-ms-office365-filtering-correlation-id: f02dd58e-28ce-4118-bdf0-08de3b856745
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?c281NWZReXA1aUlueCtIcXJQQ1NaNEJIcDBNV0N2bVdoLzl3a3paVmRKcGZY?=
 =?utf-8?B?VWZNcUUvaWpoTEE1cmhSMEMxWis1WUFIWjhFNmtZWExsdW1GODl5S0Z1NWI1?=
 =?utf-8?B?eHZ1YXU4Ni9RWWZlQmtmUWxiaGhNS09SZEhycEQ2NWF5MnBPNmpsODVtV1Jw?=
 =?utf-8?B?alhjeXBMNTJpQ2RVUklPOUVaRDM3UEkxOFBBQndQQ2ZaR3FZSlFtSGhreTN3?=
 =?utf-8?B?NlBhTWxDSTRBcWxqekhXT2NuZnE1TVhYbk1FYU5JMnRJOUl1c2FHQlZOSlZW?=
 =?utf-8?B?SGtCQU0wQmlqSWl6OUFJRnh3WjBYRE4wOGtGTjNQSXVnamZZRXN5WlRzVkk4?=
 =?utf-8?B?Q0YzWjIxTnlOc2IwRG8rOWRkSCtNY21WMnpGMkxkU2x5MzhHdTZJc09WZnZM?=
 =?utf-8?B?U0RPc2FSam9kY3pKWEhqdU5NU1NCVFR6S0NhajRGMWxFcXdkS1lEczRpM2VJ?=
 =?utf-8?B?aGNVQmZoWFBWN2M3blRMcmdLQ2tPUFdQUWRsaDkvanpoaWFoZFQ5a2lEYmYr?=
 =?utf-8?B?UXZoM1ZYUTZRa3RLaTRlWHVmL1VFcm1zQTRxOHI5OThGT0w5OG1XWklCSjdu?=
 =?utf-8?B?TjlzN3crdGg5WG1RaHg2aEw1eU9FYms3SDhxTjl6clpBRDV2OThXZHk4eStz?=
 =?utf-8?B?TVhHcnpZc1hBZGFzNVpobWVYcHpSekJwMzZ4dzdDeFVJTnV5bERDM3RJSXla?=
 =?utf-8?B?WEZpejd6THJqdEtiVHRnVmVnaGZrQzlEQ0RzV2hUeFFtTlZVK0JRc0R5L2FF?=
 =?utf-8?B?TWd2UzBRS1NwallqUGtFdllqTEVNa3Q3STQvYVdYZmd4cW1PUlRtK3VzenZj?=
 =?utf-8?B?NTNkQS9wWnM2T0RUSFVOTElYaERTTHR1TmY0V2ZEU0dTUVdmaHR3T3RrU0JB?=
 =?utf-8?B?VGY0S3UyUUZ6L0ZyQkFsTGFQL2hCbnBVdWtzWGpMUzhObGFDKzA2YlNUNXJr?=
 =?utf-8?B?d0NTcGFmZ0dqeDduSTRra0JBV0tRUEpScXZGcEF6SG02bjgyd1BEd25MNVRm?=
 =?utf-8?B?Y0VzVW5oUlVEM2lxc09JZDRDS3VXQWtwOStHVzg5TUZHT3I0alNnQ0hDUWJH?=
 =?utf-8?B?NktEbkYyb2x3cjNoSTNoQmZBN1hPZmUySE5mTy9RVnlqck5kNUZON3J4NW9p?=
 =?utf-8?B?Y014K0QvdGd1ZnV1em5pZXJlU2hGSFpDTTJSOXBJYUlFcDhKczI0SkY5aVJD?=
 =?utf-8?B?ZnN5WTBSVkVpTlZjVUhUcEdmMk53SFVRYkczQ0ptR05wQlhtTDBwazZQdEx0?=
 =?utf-8?B?OWlrOWNZanJXUitMbEpRcEhTL01FU3FmL2hLZ1g2MWtOd2wyZVpNTjRqODVh?=
 =?utf-8?B?aGZPU2J4R0czTWRzZnAyL1krbk43cGtneEhleXhndVI3NERIYUxIenNUOXNB?=
 =?utf-8?B?Vnl3SW0vcTVwVk85aE92UDlqVGh1aDdVYjFyUmc0N1ViVzZ6TWkzaDM2K0R2?=
 =?utf-8?B?YWNmbFJCWkZab2ZFaVFiRyt2cHdoZFB2QzJCRWVmNVFKTVMyd3lGdmtaaTMy?=
 =?utf-8?B?YlJNRHloeUN3a3JRQUJxQTRIS2hFRHFZU2VEMVNpWE52blN5VlJxNUFSTlVC?=
 =?utf-8?B?Q3F6eU5vUHJLUy9UQ2JaUnNBNk9lSmgvdTRuRXJpWVhrTWpPVEZZUGxnNkJH?=
 =?utf-8?B?QXBKMy9jU2toRnRUUEQ2ZkdNZzBPNHFpSm5aa2llczBEanY2aDZaUXNHbHZB?=
 =?utf-8?B?dEY3V2h0SEVZdFlzTVhPTW5xUUNBMlY0OVZDK0U2RU53aFFVMGNsL1h4R3hP?=
 =?utf-8?B?Y0FFTHFRYTZpbjFseER5NVNaMklIaGFmdFRvR3orTzJsMGlWSXFubmd0SS96?=
 =?utf-8?B?dS8rZThUNUJ4MlUxUEFDNy9Db2hnbS9tUHgwc1VMLzV3a3dhbGxrSTgxOWcy?=
 =?utf-8?B?YlZ1Y0d5T0VrVlV5LzhPd3VNcndXbVVJUmxMQ0lEWXNzSk81aGI4WGVjbWU5?=
 =?utf-8?B?ODEreEt6bUpaUjdFTmxNcGZJdGN3eE9TVm9DRVJidjVZQmdPS09nRGhBWXB3?=
 =?utf-8?B?VzJQMzhXVDRRY3o4WENPMDZlTy91RWtBYzJzK1hGY2JnYnlQSnVMc1lVR0FH?=
 =?utf-8?Q?JpC9qv?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?TGlHc2ZjMmw0T1MzQTB4UHY2RjNqSWtUWSszSTdrTEduUXl2VHpXWngwL3dv?=
 =?utf-8?B?YkRxVTNRZEZpTFFxeGVMK0RZWHNISWs2MG5lUnRESkwrb1JZelY2RU9NdEov?=
 =?utf-8?B?empIeWdNUzRqd2NwdU1hWlpqV1ZwUjkrRmN1NlB5bENNcWk1aERBRGtpZjRx?=
 =?utf-8?B?cnlKK09Tb2N2NEhMQ1VnSUZZWGh0ZmtrZHUvYlczMm5qa3ZkcEFjVEhpeU0y?=
 =?utf-8?B?ZU9scTlpaGZZMzRMYnR5MGZOVWdhTWJNRER0R2MxSnAzdWJDVzZuWjE5ZHdK?=
 =?utf-8?B?V2tWc0J5RDNTY1VFSzVhb0NVbDNPamZVYWE4ZjFYcHFNdXVMMllKVkF0ZmFk?=
 =?utf-8?B?K3JPbFB1NmJUUU5WazcvYkl6R3NIRk0rUm8yRFhoMW05Y0U4VFQvSlkvWnFC?=
 =?utf-8?B?aVFZTjEyY1VwbDZod0xubFVGcDFYZEtFaE16ckMvczFBcVZsVHpzazQxdkJy?=
 =?utf-8?B?SVcrZk84a0hLc0pyY1JQVFcxR3pETmQ4L2cyeGZMSFgzekdTTzZBblZNY24w?=
 =?utf-8?B?T0ZvcElaRmpjbUJKUGs3cFNtY1c1MGRJbS9SMkNtQ3FySHpjc0dmL1RqSFpU?=
 =?utf-8?B?VmRjYVI5bVJCQ00ydDVXeUtDbDBzczk0Ykl4Skw0MG5yY0hBUEtJcEplVnBJ?=
 =?utf-8?B?VjkvSXl6L1FKek9URzdNYjg2KzFkZDBwd3BTRzU2OUFmUENDbHpoaXc0blRK?=
 =?utf-8?B?bmhJR3h2WTNvaHhQcURpVUZQdHZ5MUVNa09rc1pmNS9rRXVmUGp3MmVlZ3Ri?=
 =?utf-8?B?MlVYY2lPcmxLRk90bkxSSk1pVEt2azRDM3grWmxwSUl1Zk4wQm5aYlhoR21L?=
 =?utf-8?B?c0swY3p0cmdFWU9sc2hzS3JDaEZUVG5CNDBOSmRmaVlOcFltOUhzbzd2NXNV?=
 =?utf-8?B?TlkyRnRJbTJ1S042dHg2ZXEzcXNMRFNuMU00bDJrNm5VUzUvUG42RmYzamxr?=
 =?utf-8?B?RElEYTA5N3BZMEFjNnQ0MCtqc08yNnRlZG1pdENhb0dvZUl5N05kUXRDRHBO?=
 =?utf-8?B?b1Z1ZHRIOUpvNFZIMk52aXZtMjFkZEZnQlNwdnZtR1VjS0t6NHRiTUU4YTdX?=
 =?utf-8?B?K1cvQ1F3QXE0enQ0ZEdIRUFzbXVmTENXVmRIZDRmNTU4QlczNkZ1S0hNc1pV?=
 =?utf-8?B?T01YbnMwQnVmRmZHcWxYZG90bE9uelpBVVBmQ2gzdnIvSVVZWXFKN0N6aUR0?=
 =?utf-8?B?cjBJbXJPTmltWXZFbXJVSmNqeFNMRkg2L05wSnMrZDNLOHQ2cmxFK243Ky9S?=
 =?utf-8?B?cTJCUkR4V2JrVHIxN2JHZTdERVRTOGxlcW5DZHhVTnd5Z2FEMyswUFE1TjVm?=
 =?utf-8?B?NTU1VDV2eVBLS1dsLy8wd1NSK0crTTRVN3crcUJQNE9DMVBWTDFwMmx6VURZ?=
 =?utf-8?B?R3UwTnhTUTh1SUtiZEtUcEdkdHArT2VCbWNLc0RaT2hCTk1yOFU5THRYaDF3?=
 =?utf-8?B?bk41ODE3YkxEWTlBckJyMXdqbFkvSzM4ZXVLSzd5M2lqSDZTZEZmdTFBc0R3?=
 =?utf-8?B?ZXNrYzB6RkwwN0dWcituQUxEVE1sUGVSTUZNZm5VeGNPMGtFNlh4RW9DK2I2?=
 =?utf-8?B?bEJFTW4ybVBFdVpydU0yQXBDaUw4WFpuU2V3TGpiaHd3b29jMGh2bDFNam01?=
 =?utf-8?B?VFRWVXJOU1UvSmxUUEhVVnV1bnZqSmxwV3FOaXpTY1pVQWNhaVVWSDRYbFZD?=
 =?utf-8?B?ZmREQitFVHR0Ry9nekR0K0I0bFdzWFhHY21SUFdnYlQ2YVVOWFhvTXZBRU9v?=
 =?utf-8?B?UWNwRDVKTjNEZmtwcG9uREFtVm1NVlFpaWFXbUJXVFN0aDFDTThxQm5pbytn?=
 =?utf-8?B?UUo4UVdoM0lYNkdkNUNpTlBwbUh5U0pmclVwWG5iamk5VksyMGZUYlZ6WGgw?=
 =?utf-8?B?WWZZbUxaVUVlOWZ4MS9CWmdkMm9yY3VpVm5NbGdyMjB4UmJ4dUJmZzBHNWEv?=
 =?utf-8?B?OEFXSlVGTUJQalRLRTd3a242ZEpTWUx3WFM5ZGROejEwYlA1alBGNk5LZnpK?=
 =?utf-8?B?bDlSL0FqUGdmVFRqcXp2bDFudmRORGVzdmpyRFAzYVd3SE1pZTBqRU9WR1h3?=
 =?utf-8?B?TThodk1HZEdIcEpLT1dlVUN4OW9oeTVSNURaR1MzRXV0dEZCUnR2MUJadzhR?=
 =?utf-8?Q?E6FA=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f02dd58e-28ce-4118-bdf0-08de3b856745
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Dec 2025 02:55:28.2209
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ZZ+0nh1Nx5S5psP2YXlZ/X05UkoXWudDktC8y2Kw936LmEgnVrgYlxgrKIj1SzHEIqZEdh+zwiZNqdQVtRPAow==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4179

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBUYW1hcyBL
IExlbmd5ZWwgPHRhbWFzQHRrbGVuZ3llbC5jb20+DQo+IFNlbnQ6IFNhdHVyZGF5LCBEZWNlbWJl
ciAxMywgMjAyNSA4OjIxIEFNDQo+IFRvOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+
DQo+IENjOiBQZW5ueSwgWmhlbmcgPHBlbm55LnpoZW5nQGFtZC5jb20+OyBIdWFuZywgUmF5DQo+
IDxSYXkuSHVhbmdAYW1kLmNvbT47IGdyeWdvcmlpX3N0cmFzaGtvQGVwYW0uY29tOyBBbmRyZXcg
Q29vcGVyDQo+IDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPjsgUm9nZXIgUGF1IE1vbm7DqSA8
cm9nZXIucGF1QGNpdHJpeC5jb20+OyB4ZW4tDQo+IGRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn
DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjUgMDgvMjRdIHhlbi9tZW1fc2hhcmluZzogbWFrZSBt
ZW1vcnkgc2hhcmluZyBkZXBlbmQNCj4gb24gTUdNVF9IWVBFUkNBTExTDQo+DQo+IE9uIEZyaSwg
RGVjIDEyLCAyMDI1IGF0IDQ6MjPigK9BTSBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+
IHdyb3RlOg0KPiA+DQo+ID4gT24gMTIuMTIuMjAyNSAwNTowMSwgUGVubnkgWmhlbmcgd3JvdGU6
DQo+ID4gPiBUaGUgZW5hYmxpbmcgYml0IChkLT5hcmNoLmh2bS5tZW1fc2hhcmluZy5lbmFibGVk
KSBmb3IgbWVtb3J5DQo+ID4gPiBzaGFyaW5nIGNvdWxkIG9ubHkgYmUgZW5hYmxlZCB2aWEgZG9t
Y3RsLW9wLCBzbyB3ZSBzaGFsbCBtYWtlIG1lbW9yeQ0KPiA+ID4gc2hhcmluZyBmZWF0dXJlIGRl
cGVuZCBvbiBNR01UX0hZUEVSQ0FMTFMuDQo+ID4gPg0KPiA+ID4gU2lnbmVkLW9mZi1ieTogUGVu
bnkgWmhlbmcgPFBlbm55LlpoZW5nQGFtZC5jb20+DQo+DQo+IEFja2VkLWJ5OiBUYW1hcyBLIExl
bmd5ZWwgPHRhbWFzQHRrbGVuZ3llbC5jb20+DQoNClRoeA0KDQo+DQo+ID4NCj4gPiBUYW1hcywN
Cj4gPg0KPiA+IHRoaXMgaXMgc29tZXRoaW5nIHRoYXQgcmF0aGVyIHlvdSBzaG91bGQgYWNrIChv
ciByZWplY3QpLiAoUGVubnksIHlvdQ0KPiA+IHdvdWxkIGhhdmUgd2FudGVkIHRvIENjIFRhbWFz
IGhlcmUgcmlnaHQgYXdheSwgbm8gbWF0dGVyIHdoYXQgRjoNCj4gPiBlbnRyaWVzIGluIC4vTUFJ
TlRBSU5FUlMgd291bGQgc2F5LikNCj4gPg0KPiA+IFRoYW5rcywgSmFuDQo+DQo+IFRoYW5rcywg
c2VlbXMgZmluZSB0byBtZS4NCj4NCj4gVGFtYXMNCg==


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 06:37:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 06:37:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186640.1508074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV2Cj-0006xm-F1; Mon, 15 Dec 2025 06:37:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186640.1508074; Mon, 15 Dec 2025 06:37:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV2Cj-0006xe-Aq; Mon, 15 Dec 2025 06:37:09 +0000
Received: by outflank-mailman (input) for mailman id 1186640;
 Mon, 15 Dec 2025 06:37:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AJJs=6V=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vV2Ch-0006xY-Ke
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 06:37:07 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 759d0d20-d980-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 07:37:00 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-6495c4577adso4411847a12.3
 for <xen-devel@lists.xenproject.org>; Sun, 14 Dec 2025 22:37:00 -0800 (PST)
Received: from ?IPV6:2003:e5:8704:4800:66fd:131f:60bd:bc29?
 (p200300e58704480066fd131f60bdbc29.dip0.t-ipconnect.de.
 [2003:e5:8704:4800:66fd:131f:60bd:bc29])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa29beabsm1330300666b.4.2025.12.14.22.36.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 14 Dec 2025 22:36:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 759d0d20-d980-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765780619; x=1766385419; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=Flsp6Ih3FlMEVzRadHwRQZrT6qbOt0qkn7I0oYf7Qcc=;
        b=f0SGEv7w27Z7+L9BmYnfLjLbpsAaIbN6oQ36lAtktOGa/Tu9o7GAC8VQwlmOVbVFQs
         aNZni0xQ8nN/6mAnD/zCshlbix9SALtV4wdSw0Gtlp3+vOzLxwpRUZCsU/YhZbDEzvqJ
         ZT9rPSWO7Ec1rnQAS+nf3Guvy2J5q+eV4rFBuJ1NWM8i3VjHIJXRnk3tJg+uY5hlBXtB
         vOetMYX+u4mzZ8kDdqGFvfbqgRudF+Qbt8iPLK1FrBvQ3U3gbypj9BoesjuW1kMrbK56
         68zq23XbTm35X/AHTSH7dvEmPk5T8Xa3qeh9SbG7kDaLfthnLgv22I0VSKI1ASuUtoTs
         UE3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765780620; x=1766385420;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Flsp6Ih3FlMEVzRadHwRQZrT6qbOt0qkn7I0oYf7Qcc=;
        b=boBaKJ0FzwjIgWHfnifZ0wEUXxsVLeM6kFu4/ZCD3Yt2ZLR5t413OC9oc30vBmEVcN
         jNfTnjV4WnVAYXP6PU39bwl1diCFALAgLUD7TGiCgYsdJTgkfdyNE6bUkL13giGHFKiE
         uCd5RaRsr/S+br7Izm6NS8jHekmGQpfyCxLloAGdmVMnV/OVJU3AMLNIA/c1TLSRnIOO
         0kgjdmJcl0FR51OKcdsOwudYyiY755VorbmGaUWsRQ6x0FbZg0Rh6BM55BRDjupO5Vak
         IXm0SIqLVNcEve9TDY+iLbgTc62D7kkVKd4pa1L7VB45Ry+sWmTAXWef6Pn2KDgSVr29
         FbdQ==
X-Forwarded-Encrypted: i=1; AJvYcCW7vf0G+1r+v3wqISHCyM+ZagZT2XFuQ2xcXwUlyNZS5Itv+Wf0cxy82czuyjQXeGZ77/QhGAI8SSc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzApMqsHDCj0udLCahU0yDsv1xG8en/cxG1zZVvTPs4jxn+K92N
	CMUshgBzf3zK0ynV88l3wYgQlaf0yC5y5PABKskGqFjkTXnr9lKR5CFSc7vTXN66WWc=
X-Gm-Gg: AY/fxX4LaqIJpuJqzAenQyaNTr1dH5U8SBJvRpyJJHhjRE6WsFuwuIC/035am4QB3qp
	3V0hlrT04hwbSFUpwvdVrl/jbjlRb3p/vw6Y32ocZcgkExWcElEtP6oX4+iVftONtWFWdXe+cmw
	fLbiZSpDj+ktObFy5bRFeAZm1mcxui9lQoHDw51/rQkfUHdK2I4oD+jaR9kr6qiYlLffPaXQUj+
	ZlcaNvx1ZgJDLLGUDqP2Tq37EJwUxqA9Fa7SuRINVqVwkez9lqRHB3UdqCidS5tfY3YiOnO5e2v
	edptH+MSxnswBIYQ4Bo35bRf1VyXzeXz6jAcopmasOvkRRjtrGWdyAygRiLO2opnKjfSA1wrz3H
	OHiEpnxniKAZzVd++0UmsixDe7WNeJvS3d72T4J/NjryHlYkBaJKl4tB7ImJFgKy+NqJ8823Dl/
	cpgM+L8mtyMSFugJVOg+6MbBOHDStrY865CiR8S+JJG4BLJjalcEeMfRq66XuWEdedndASQoMUN
	csVdNnJVWXpDkQdE6FDoP9e8heHxSwVvvDqdhM=
X-Google-Smtp-Source: AGHT+IGo/GqgVXtCzeCvo1UWjbyI/0K/pid4ihpAfElEjp1P5X9LqCIs4JAGA1cU0Oaa8OlI6Xu5Vg==
X-Received: by 2002:a17:907:9617:b0:b73:8f33:eed3 with SMTP id a640c23a62f3a-b7d23a9c866mr953872766b.26.1765780619499;
        Sun, 14 Dec 2025 22:36:59 -0800 (PST)
Message-ID: <bff8626d-161e-4470-9cbd-7bbda6852ec3@suse.com>
Date: Mon, 15 Dec 2025 07:36:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/5] x86: Cleanups around slow_down_io()
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
 virtualization@lists.linux.dev, kvm@vger.kernel.org,
 linux-hwmon@vger.kernel.org, linux-block@vger.kernel.org,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, Ajay Kaher <ajay.kaher@broadcom.com>,
 Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Paolo Bonzini
 <pbonzini@redhat.com>, Vitaly Kuznetsov <vkuznets@redhat.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, Jean Delvare <jdelvare@suse.com>,
 Guenter Roeck <linux@roeck-us.net>, Denis Efremov <efremov@linux.com>,
 Jens Axboe <axboe@kernel.dk>
References: <20251126162018.5676-1-jgross@suse.com>
 <aT5vtaefuHwLVsqy@gmail.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <aT5vtaefuHwLVsqy@gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------3mgjNgxNLw3aXEpCS8syparo"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------3mgjNgxNLw3aXEpCS8syparo
Content-Type: multipart/mixed; boundary="------------uocwPUAwg06DHItKBfr8MkI0";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
 virtualization@lists.linux.dev, kvm@vger.kernel.org,
 linux-hwmon@vger.kernel.org, linux-block@vger.kernel.org,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, Ajay Kaher <ajay.kaher@broadcom.com>,
 Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Paolo Bonzini
 <pbonzini@redhat.com>, Vitaly Kuznetsov <vkuznets@redhat.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, Jean Delvare <jdelvare@suse.com>,
 Guenter Roeck <linux@roeck-us.net>, Denis Efremov <efremov@linux.com>,
 Jens Axboe <axboe@kernel.dk>
Message-ID: <bff8626d-161e-4470-9cbd-7bbda6852ec3@suse.com>
Subject: Re: [PATCH 0/5] x86: Cleanups around slow_down_io()
References: <20251126162018.5676-1-jgross@suse.com>
 <aT5vtaefuHwLVsqy@gmail.com>
In-Reply-To: <aT5vtaefuHwLVsqy@gmail.com>

--------------uocwPUAwg06DHItKBfr8MkI0
Content-Type: multipart/mixed; boundary="------------0K40Sw4HjMWfuWdkxRcyXR0R"

--------------0K40Sw4HjMWfuWdkxRcyXR0R
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMTQuMTIuMjUgMDk6MDUsIEluZ28gTW9sbmFyIHdyb3RlOg0KPiANCj4gKiBKdWVyZ2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+IHdyb3RlOg0KPiANCj4+IFdoaWxlIGxvb2tpbmcg
YXQgcGFyYXZpcnQgY2xlYW51cHMgSSBzdHVtYmxlZCBvdmVyIHNsb3dfZG93bl9pbygpIGFu
ZA0KPj4gdGhlIHJlbGF0ZWQgUkVBTExZX1NMT1dfSU8gZGVmaW5lLg0KPj4NCj4+IEVzcGVj
aWFsbHkgUkVBTExZX1NMT1dfSU8gaXMgYSBtZXNzLCB3aGljaCBpcyBwcm92ZW4gYnkgMiBj
b21wbGV0ZWx5DQo+PiB3cm9uZyB1c2UgY2FzZXMuDQo+Pg0KPj4gRG8gc2V2ZXJhbCBjbGVh
bnVwcywgcmVzdWx0aW5nIGluIGEgZGVsZXRpb24gb2YgUkVBTExZX1NMT1dfSU8gYW5kIHRo
ZQ0KPj4gaW9fZGVsYXkoKSBwYXJhdmlydCBmdW5jdGlvbiBob29rLg0KPj4NCj4+IFBhdGNo
ZXMgMiBhbmQgMyBhcmUgbm90IGNoYW5naW5nIGFueSBmdW5jdGlvbmFsaXR5LCBidXQgbWF5
YmUgdGhleQ0KPj4gc2hvdWxkPyBBcyB0aGUgcG90ZW50aWFsIGJ1ZyBoYXMgYmVlbiBwcmVz
ZW50IGZvciBtb3JlIHRoYW4gYSBkZWNhZGUNCj4+IG5vdywgSSB3ZW50IHdpdGgganVzdCBk
ZWxldGluZyB0aGUgdXNlbGVzcyAiI2RlZmluZSBSRUFMTFlfU0xPV19JTyIuDQo+PiBUaGUg
YWx0ZXJuYXRpdmUgd291bGQgYmUgdG8gZG8gc29tZXRoaW5nIHNpbWlsYXIgYXMgaW4gcGF0
Y2ggNS4NCj4+DQo+PiBKdWVyZ2VuIEdyb3NzICg1KToNCj4+ICAgIHg4Ni9wYXJhdmlydDog
UmVwbGFjZSBpb19kZWxheSgpIGhvb2sgd2l0aCBhIGJvb2wNCj4+ICAgIGh3bW9uL2xtNzg6
IERyb3AgUkVBTExZX1NMT1dfSU8gc2V0dGluZw0KPj4gICAgaHdtb24vdzgzNzgxZDogRHJv
cCBSRUFMTFlfU0xPV19JTyBzZXR0aW5nDQo+PiAgICBibG9jay9mbG9wcHk6IERvbid0IHVz
ZSBSRUFMTFlfU0xPV19JTyBmb3IgZGVsYXlzDQo+PiAgICB4ODYvaW86IFJlbW92ZSBSRUFM
TFlfU0xPV19JTyBoYW5kbGluZw0KPj4NCj4+ICAgYXJjaC94ODYvaW5jbHVkZS9hc20vZmxv
cHB5LmggICAgICAgICB8IDI3ICsrKysrKysrKysrKysrKysrKysrKystLS0tLQ0KPj4gICBh
cmNoL3g4Ni9pbmNsdWRlL2FzbS9pby5oICAgICAgICAgICAgIHwgMTIgKysrKystLS0tLS0t
DQo+PiAgIGFyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0LmggICAgICAgfCAxMSArLS0t
LS0tLS0tLQ0KPj4gICBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oIHwg
IDMgKy0tDQo+PiAgIGFyY2gveDg2L2tlcm5lbC9jcHUvdm13YXJlLmMgICAgICAgICAgfCAg
MiArLQ0KPj4gICBhcmNoL3g4Ni9rZXJuZWwva3ZtLmMgICAgICAgICAgICAgICAgIHwgIDgg
Ky0tLS0tLS0NCj4+ICAgYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0LmMgICAgICAgICAgICB8
ICAzICstLQ0KPj4gICBhcmNoL3g4Ni94ZW4vZW5saWdodGVuX3B2LmMgICAgICAgICAgIHwg
IDYgKy0tLS0tDQo+PiAgIGRyaXZlcnMvYmxvY2svZmxvcHB5LmMgICAgICAgICAgICAgICAg
fCAgMiAtLQ0KPj4gICBkcml2ZXJzL2h3bW9uL2xtNzguYyAgICAgICAgICAgICAgICAgIHwg
IDUgKysrLS0NCj4+ICAgZHJpdmVycy9od21vbi93ODM3ODFkLmMgICAgICAgICAgICAgICB8
ICA1ICsrKy0tDQo+PiAgIDExIGZpbGVzIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKyksIDQ1
IGRlbGV0aW9ucygtKQ0KPiANCj4gSSB0aGluayB3ZSBzaG91bGQgZ2V0IHJpZCBvZiAqYWxs
KiBpb19kZWxheSBoYWNrcywgdGhleSBtaWdodCBoYXZlIGJlZW4NCj4gcmVsZXZhbnQgaW4g
dGhlIGRheXMgb2YgaTM4NiBzeXN0ZW1zLCBidXQgd2UgZG9uJ3QgZXZlbiBzdXBwb3J0IGkz
ODYNCj4gQ1BVcyBhbnltb3JlLiBTaG91bGQgaXQgY2F1c2UgYW55IHJlZ3Jlc3Npb25zLCBp
dCdzIGVhc3kgdG8gYmlzZWN0IHRvLg0KPiBUaGVyZSdzIGJlZW4gZW5vdWdoIGNoYW5nZXMg
YXJvdW5kIGFsbCB0aGVzZSBmYWNpbGl0aWVzIHRoYXQgdGhlDQo+IG9yaWdpbmFsIHRpbWlu
Z3MgYXJlIHByb2JhYmx5IHdheSBvZmYgYWxyZWFkeSwgc28gd2UndmUganVzdCBiZWVuDQo+
IGNhcmdvLWN1bHQgcG9ydGluZyB0aGVzZSB0byBuZXdlciBrZXJuZWxzIGVzc2VudGlhbGx5
Lg0KDQpGaW5lIHdpdGggbWUuDQoNCldoaWNoIHBhdGggdG8gcmVtb3ZhbCBvZiBpb19kZWxh
eSB3b3VsZCB5b3UgKGFuZCBvdGhlcnMpIHByZWZlcj8NCg0KMS4gUmlwcGluZyBpdCBvdXQg
aW1tZWRpYXRlbHkuDQoNCjIuIEhpZGluZyBpdCBiZWhpbmQgYSBkZWZhdWx0LW9mZiBjb25m
aWcgb3B0aW9uIGZvciBhIGZldyBrZXJuZWwgdmVyc2lvbnMNCiAgICBiZWZvcmUgcmVtb3Zp
bmcgaXQuDQoNCjMuIFVzaW5nIENPTkZJR19JT19ERUxBWV9OT05FIGFzIHRoZSBkZWZhdWx0
IGlvX2RlbGF5X3R5cGUgYmVmb3JlIHJpcHBpbmcgaXQNCiAgICBvdXQuDQoNCjQuIFVzaW5n
IENPTkZJR19JT19ERUxBWV9OT05FIGFzIHRoZSBkZWZhdWx0IGlvX2RlbGF5X3R5cGUgYmVm
b3JlIGhpZGluZyBpdA0KICAgIGJlaGluZCBhIGRlZmF1bHQtb2ZmIGNvbmZpZyBvcHRpb24s
IHRoZW4gcmlwIGl0IG91dCBsYXRlci4NCg0KSW4gY2FzZXMgMi00IEknZCBzdGlsbCBsaWtl
IHRvIGhhdmUgcGF0Y2ggMSBvZiBteSBzZXJpZXMgYXBwbGllZCwgYXMgaXQgd2lsbA0KbWFr
ZSBwYXJhdmlydCByZXdvcmsgZWFzaWVyLg0KDQoNCkp1ZXJnZW4NCg==
--------------0K40Sw4HjMWfuWdkxRcyXR0R
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------0K40Sw4HjMWfuWdkxRcyXR0R--

--------------uocwPUAwg06DHItKBfr8MkI0--

--------------3mgjNgxNLw3aXEpCS8syparo
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmk/rIkFAwAAAAAACgkQsN6d1ii/Ey+O
KAf/RhuC6z7N89eI1LFebQgpxz6ipUoaEJLE3iPD9BIa8MC4hAK9upc0Be1ulp8clrSuz3rdpIw7
3FUaPR9cZlvGMCV4Z+IHHjhwmCaWOcpppBqiVsNGhvT47rDwA2VkaikY3Ehl9quAQpn1CC1hhkJ1
01WuZBXoh2YzULEZSQtLiB/SNUhY/giSrXVDYqFcRdmTVicw/Obw/Xlvx6pXR3h7j5JxemXi9/Fj
iKUX4frjdzsmdQotNBCZcdFf37mdeUIi3KWRenk5jma77pmhc8v1kpf/IJcf8U5SvVaz2LnLN+pw
GgFVUcHrV+iMB8ern+6AKait3RZBMNm2dCjJdLk6bg==
=WEIE
-----END PGP SIGNATURE-----

--------------3mgjNgxNLw3aXEpCS8syparo--


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 08:20:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 08:20:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186659.1508084 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV3oj-0005gd-Tp; Mon, 15 Dec 2025 08:20:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186659.1508084; Mon, 15 Dec 2025 08:20:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV3oj-0005gW-Qm; Mon, 15 Dec 2025 08:20:29 +0000
Received: by outflank-mailman (input) for mailman id 1186659;
 Mon, 15 Dec 2025 08:20:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV3oj-0005gQ-3N
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 08:20:29 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e87a2398-d98e-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 09:20:25 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4777771ed1aso23563935e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 00:20:25 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f4f4150sm173924275e9.11.2025.12.15.00.20.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 00:20:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e87a2398-d98e-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765786825; x=1766391625; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/YFLV4pXe8bVfA8YZOHvsyj2Qk1hXDlSxSc6Pp20XXE=;
        b=GB1mKjISO7liKO/LrUIvcwct4Pm+ZzNhRWfstjRSw2wtu8JTr1c2yRQUZprc9rzd0J
         SzDVSXcwMZGw9ZvEYU4509mAfDAScmPhvQWE+N7JBUSas7ntOGFy7NRr/AtF+2p4HWdA
         9gapziJ6X9CSI7n/+ZW5SpeDGNP4XkFfzAFa4SteC/7rOLODCDW0M8yKGkpIl9qG0KEn
         H4fwnnE8HxHQD9u3DmY6BDUFxxCh4geN99JLGSbCP4kZCppg0WTNguwoCsP6OPajv7aD
         03raVGyon2E4LlsVk+csbeySvVqkuiXTJESYjfeu9uo9cMntjb2TGgFQq+0PgxV8FTsA
         zR+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765786825; x=1766391625;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/YFLV4pXe8bVfA8YZOHvsyj2Qk1hXDlSxSc6Pp20XXE=;
        b=u9PX57RFulp+9p2a7fjDuxvW5rukA5Z4mhyj9ChxGu7zsbhHgxjQLzIwwj35azxMLh
         KV1pXdoLWBOHO/bdHxeHalVwhT5jHnwgWFVG/gF5FVWe8NO58qAVfUzwvfDVqpLKUaiP
         BxUHnb4atv1FIsLyUJBq1CiGtks6w1rvRnWndxJzsivigtAZia8XpYcqGekI/FwkgKwE
         nCu5QMwwHgv/vzwmx14QQV1ovQZJsql+iRUraJlyPYLGbr+WTh0B/dD+teUXnVyJN8OZ
         Gc217m6Lh7k0pOOEmswGBMQw+Dud0C9jaD1g+nhyVOMInaemNx1qgJPrUrpBc+DlS6ZG
         S44w==
X-Forwarded-Encrypted: i=1; AJvYcCVX1x47HavxWLLG/7n1rCYhHbXu2XodwdOzmcBo5u1ikKmtGFmrz604ij0e/nhya8SzPymLHzJHNKM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyvmheHrST5MGTP4esRdjXrWWrJsQHZ/UVkqQBwLgC5vvUa95fe
	9YQwm1wKY0lALsEVwg3J/jddxlxL4sKcITEn8i7xIbHPnFsKPYx1YrosAsaB5vX/Uw==
X-Gm-Gg: AY/fxX4v8sqyDjDz1zKy/xXM4FIez76NPYvkhW/wxMo6bvaXH2piAqhVzVixFkG8hrC
	YQky4UGgq6ytyn30drEdMtQ7OO1KAYNomBPbP3YVm1vAVgAw2jcrC/cJbmjc20xJkGBHfi1N9NZ
	bs8ooLzbw3JX/epvxbx49jV/Yynpo0cJy8z6Mc5dG9ynxsdtQ1gW1LZYtHX4aDNMJXE+AfOmvay
	NUrlqjHzdVuB9Kron6nuqEjV9odL+o6B13oYqcFUE3PZF1LA78hGoLwqhhNPT8hIXVB2ZiII2kS
	7LTYUuIuuqqSXyGIjXu6RHTMgf69pBFr2K1e77wWSaVpOhCktnuS+Je8IXeJIbBxg+nhsuwqmSk
	Xh8j6vFIhWEdnN9ql/Tocim6MyZTZ2OJEowCSfFO4xMqHh0ieosEP8yP9/EmeF7V5cpQ4RlJ72V
	6l/QtxbqAVuW5aiohIEGH2XxW2zxyGh2SBdp67VSDScoaDSJe+augMMMte9k7RPJmY3kJ3ozvm5
	3k=
X-Google-Smtp-Source: AGHT+IGPuKuMhgkWI4sdTPj+9tnZuwqtwO1lXKRFKdFUBAhGxcvAcyo58BBgpsKTQ9N5ppQatTJdzA==
X-Received: by 2002:a05:600c:1d2a:b0:477:9a28:b09a with SMTP id 5b1f17b1804b1-47a8f7039c3mr104435225e9.0.1765786825162;
        Mon, 15 Dec 2025 00:20:25 -0800 (PST)
Message-ID: <3cf7d382-3a05-401b-8483-41aa436079c5@suse.com>
Date: Mon, 15 Dec 2025 09:20:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/3] xen/riscv: add RISC-V virtual SBI base extension
 support for guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1764582112.git.oleksii.kurochko@gmail.com>
 <d17dcac47752681eed6703360389dd542433ab3e.1764582112.git.oleksii.kurochko@gmail.com>
 <275721bc-07c2-4f69-93c2-e6d3022fee4f@suse.com>
 <5154e129-675b-4027-b97f-257559c7ea50@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5154e129-675b-4027-b97f-257559c7ea50@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.12.2025 16:25, Oleksii Kurochko wrote:
> On 12/8/25 4:15 PM, Jan Beulich wrote:
>> On 01.12.2025 11:24, Oleksii Kurochko wrote:
>>> --- /dev/null
>>> +++ b/xen/arch/riscv/vsbi/vsbi-base-extension.c
>>> @@ -0,0 +1,52 @@
>>> +
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +
>>> +#include <xen/lib.h>
>>> +#include <xen/sched.h>
>>> +
>>> +#include <asm/processor.h>
>>> +#include <asm/sbi.h>
>>> +#include <asm/vsbi.h>
>>> +
>>> +extern unsigned long __ro_after_init sbi_spec_version;
>>> +extern long __ro_after_init sbi_fw_id;
>>> +extern long __ro_after_init sbi_fw_version;
>>> +
>>> +static int vsbi_base_ecall_handler(struct vcpu *vcpu, unsigned long eid,
>>> +                                   unsigned long fid,
>>> +                                   struct cpu_user_regs *regs)
>>> +{
>>> +    int ret = 0;
>>> +    struct sbiret sbi_ret;
>>> +
>>> +    switch ( fid ) {
>>> +    case SBI_EXT_BASE_GET_SPEC_VERSION:
>>> +        regs->a1 = sbi_spec_version;
>> Wouldn't this need to be the minimum of what firmware supports and what Xen
>> supports / knows about? (Assuming backward compatibility among the spec
>> versions of course.)
> 
> The base extension is mandatory (according to the spec), and based on some Linux
> commits from contributors to the OpenSBI spec, it is also intended to allow
> backward compatibility and probing of future extensions (although I was not able
> to find this explicitly stated in the spec).
> 
> However, none of this guarantees that everything else is backward compatible.
> For example, the entire v0.1 SBI has been moved to the legacy extension, which
> is now an optional extension. This is technically a backwards-incompatible
> change because the legacy extension is optional, and v0.1 of the SBI does not
> allow probing.
> 
> Regarding what should be written to|regs->a1|, I think you are right: it should
> be the minimum of what the firmware provides and what Xen supports. Otherwise,
> if|sbi_spec_version| is set to 2.0 and we return 2.0 to the guest, the guest might
> try to probe the DBGN (which Xen does not currently support) extension and use
> it instead of the legacy extension for the early console.
> 
> 
>>> +        break;
>>> +    case SBI_EXT_BASE_GET_IMP_ID:
>>> +        regs->a1 = sbi_fw_id;
>>> +        break;
>>> +    case SBI_EXT_BASE_GET_IMP_VERSION:
>>> +        regs->a1 = sbi_fw_version;
>> Same concern here, but see also below.
> 
> For SBI_EXT_BASE_GET_IMP_ID, I think we want to return XEN id which is according
> to OpenSBI spec is 7.
> 
> Something similar for SBI_EXT_BASE_GET_IMP_VERSION, maybe we want to return Xen
> version code (XEN_FULLVERSION).
> 
>>
>>> +        break;
>>> +    case SBI_EXT_BASE_GET_MVENDORID:
>>> +    case SBI_EXT_BASE_GET_MARCHID:
>>> +    case SBI_EXT_BASE_GET_MIMPID:
>>> +        sbi_ret = sbi_ecall(SBI_EXT_BASE, fid, 0, 0, 0, 0, 0, 0);
>> This may be okay to do for the hardware domain, but hardly for DomU-s.
> 
> I don’t see an issue with returning the vendor, microarchitecture, and
> processor ID. This is essentially what other hypervisors do.
> 
> What would be better to return? Returning 0 could be an option, and according
> to the RISC-V spec:
>    This register must be readable in any implementation, but a value of 0 can
>    be returned to indicate the field is not implemented.
> 
> So returning 0 would simply indicate that the field is not provided for case
> of DomUs, and provide it for hardware domain.
> 
> Would it be better?
> 
>>
>> Same concern for SBI_EXT_BASE_GET_IMP_ID.
>>
>>> +        ret = sbi_ret.error;
>>> +        regs->a1 = sbi_ret.value;
>>> +        break;
>>> +    case SBI_EXT_BASE_PROBE_EXT:
>>> +        regs->a1 = vsbi_find_extension(regs->a0) ? 1 : 0;
>> At least for hwdom doesn't this also need combining virtual and
>> underlying physical lookup, if for some extensions you may pass the
>> requests down to the physical one (as done above)?
> 
> I think I understand your intention, but I am not 100% sure that we need to
> perform a physical lookup. There may be implementation-specific cases where
> a call is emulated by the hypervisor instead of being passthroughed to
> OpenSBI.
> In other words, it could be the case that an extension is fully emulated
> without requiring support for the corresponding physical extension.

I don't have sufficient RISC-V knowledge to further comment on this. My main
concern is that we have to present (a) a consistent picture to both hwdom
and DomU-s while (b) presenting a properly virtualized view to DomU-s (i.e.
abstracting away hardware implementation details). In particular for DomU-s
you will already now need to think of what happens if a guest is migrated:
Data returned from vSBI probably shouldn't change across migration, or else
you may confuse the guest.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 08:27:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 08:27:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186668.1508094 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV3vR-0006UC-JY; Mon, 15 Dec 2025 08:27:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186668.1508094; Mon, 15 Dec 2025 08:27:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV3vR-0006U5-GU; Mon, 15 Dec 2025 08:27:25 +0000
Received: by outflank-mailman (input) for mailman id 1186668;
 Mon, 15 Dec 2025 08:27:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AJJs=6V=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vV3vQ-0006Tz-KL
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 08:27:24 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e0b07247-d98f-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 09:27:22 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id F3673336AF;
 Mon, 15 Dec 2025 08:27:20 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id ABC183EA63;
 Mon, 15 Dec 2025 08:27:18 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id N2AAJ2bGP2nxVQAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 15 Dec 2025 08:27:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e0b07247-d98f-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1765787241; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=D1PdhQq0nBnBcE4r6WkXIXGsHurVAm+uRoVHZnq7238=;
	b=DdqbTRt9mhUwvQFkLZ7Lv1xTepgxpApbXxc3dyfkCV1zTa8YlL4VXizbUVIrd5CnikZtqz
	DYCI4iKlXEPLtBCZ2lhvBt40qs6FrJw3G+eba1AAHW5bZR59AxejJKkjGynQjweQ8V/WFs
	XOo8n+/QGs/IytB8fDvXfderPttfQUw=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1765787241; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=D1PdhQq0nBnBcE4r6WkXIXGsHurVAm+uRoVHZnq7238=;
	b=DdqbTRt9mhUwvQFkLZ7Lv1xTepgxpApbXxc3dyfkCV1zTa8YlL4VXizbUVIrd5CnikZtqz
	DYCI4iKlXEPLtBCZ2lhvBt40qs6FrJw3G+eba1AAHW5bZR59AxejJKkjGynQjweQ8V/WFs
	XOo8n+/QGs/IytB8fDvXfderPttfQUw=
Message-ID: <e1fc4cbd-0a7a-4453-bc0c-f9aba15c8150@suse.com>
Date: Mon, 15 Dec 2025 09:27:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 00/21] paravirt: cleanup and reorg
To: linux-kernel@vger.kernel.org, x86@kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 loongarch@lists.linux.dev, linuxppc-dev@lists.ozlabs.org,
 linux-riscv@lists.infradead.org, kvm@vger.kernel.org
Cc: Andy Lutomirski <luto@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
 Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
 Dave Hansen <dave.hansen@linux.intel.com>, "H. Peter Anvin" <hpa@zytor.com>,
 "K. Y. Srinivasan" <kys@microsoft.com>,
 Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
 Dexuan Cui <decui@microsoft.com>, Peter Zijlstra <peterz@infradead.org>,
 Will Deacon <will@kernel.org>, Boqun Feng <boqun.feng@gmail.com>,
 Waiman Long <longman@redhat.com>, Jiri Kosina <jikos@kernel.org>,
 Josh Poimboeuf <jpoimboe@kernel.org>,
 Pawan Gupta <pawan.kumar.gupta@linux.intel.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, Ajay Kaher <ajay.kaher@broadcom.com>,
 Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Russell King
 <linux@armlinux.org.uk>, Catalin Marinas <catalin.marinas@arm.com>,
 Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Paul Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>,
 Albert Ou <aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>,
 Juri Lelli <juri.lelli@redhat.com>,
 Vincent Guittot <vincent.guittot@linaro.org>,
 Dietmar Eggemann <dietmar.eggemann@arm.com>,
 Steven Rostedt <rostedt@goodmis.org>, Ben Segall <bsegall@google.com>,
 Mel Gorman <mgorman@suse.de>, Valentin Schneider <vschneid@redhat.com>,
 linux-arm-kernel@lists.infradead.org, Paolo Bonzini <pbonzini@redhat.com>,
 Vitaly Kuznetsov <vkuznets@redhat.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Daniel Lezcano <daniel.lezcano@linaro.org>, Oleg Nesterov <oleg@redhat.com>
References: <20251127070844.21919-1-jgross@suse.com>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20251127070844.21919-1-jgross@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------YyphMvfItp3TyHBNEvp0WSxz"
X-Spamd-Result: default: False [-3.70 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SIGNED_PGP(-2.00)[];
	SUSPICIOUS_RECIPS(1.50)[];
	MIME_BASE64_TEXT_BOGUS(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	NEURAL_HAM_SHORT(-0.20)[-0.999];
	MIME_BASE64_TEXT(0.10)[];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	FREEMAIL_CC(0.00)[kernel.org,linutronix.de,redhat.com,alien8.de,linux.intel.com,zytor.com,microsoft.com,infradead.org,gmail.com,oracle.com,lists.xenproject.org,broadcom.com,armlinux.org.uk,arm.com,xen0n.name,linux.ibm.com,ellerman.id.au,csgroup.eu,dabbelt.com,eecs.berkeley.edu,ghiti.fr,linaro.org,goodmis.org,google.com,suse.de,lists.infradead.org,epam.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCVD_TLS_ALL(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	ARC_NA(0.00)[];
	HAS_ATTACHMENT(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com];
	TO_DN_SOME(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	R_RATELIMIT(0.00)[to_ip_from(RLfdszjqhz8kzzb9uwpzdm8png)];
	TO_MATCH_ENVRCPT_SOME(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[];
	RCPT_COUNT_GT_50(0.00)[56];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	TAGGED_RCPT(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.com:mid]
X-Spam-Level: 
X-Spam-Flag: NO
X-Spam-Score: -3.70

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------YyphMvfItp3TyHBNEvp0WSxz
Content-Type: multipart/mixed; boundary="------------dmv0z0qelhOAJxC2cC0LuZyw";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org, x86@kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 loongarch@lists.linux.dev, linuxppc-dev@lists.ozlabs.org,
 linux-riscv@lists.infradead.org, kvm@vger.kernel.org
Cc: Andy Lutomirski <luto@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
 Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
 Dave Hansen <dave.hansen@linux.intel.com>, "H. Peter Anvin" <hpa@zytor.com>,
 "K. Y. Srinivasan" <kys@microsoft.com>,
 Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
 Dexuan Cui <decui@microsoft.com>, Peter Zijlstra <peterz@infradead.org>,
 Will Deacon <will@kernel.org>, Boqun Feng <boqun.feng@gmail.com>,
 Waiman Long <longman@redhat.com>, Jiri Kosina <jikos@kernel.org>,
 Josh Poimboeuf <jpoimboe@kernel.org>,
 Pawan Gupta <pawan.kumar.gupta@linux.intel.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, Ajay Kaher <ajay.kaher@broadcom.com>,
 Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Russell King
 <linux@armlinux.org.uk>, Catalin Marinas <catalin.marinas@arm.com>,
 Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Paul Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>,
 Albert Ou <aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>,
 Juri Lelli <juri.lelli@redhat.com>,
 Vincent Guittot <vincent.guittot@linaro.org>,
 Dietmar Eggemann <dietmar.eggemann@arm.com>,
 Steven Rostedt <rostedt@goodmis.org>, Ben Segall <bsegall@google.com>,
 Mel Gorman <mgorman@suse.de>, Valentin Schneider <vschneid@redhat.com>,
 linux-arm-kernel@lists.infradead.org, Paolo Bonzini <pbonzini@redhat.com>,
 Vitaly Kuznetsov <vkuznets@redhat.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Daniel Lezcano <daniel.lezcano@linaro.org>, Oleg Nesterov <oleg@redhat.com>
Message-ID: <e1fc4cbd-0a7a-4453-bc0c-f9aba15c8150@suse.com>
Subject: Re: [PATCH v4 00/21] paravirt: cleanup and reorg
References: <20251127070844.21919-1-jgross@suse.com>
In-Reply-To: <20251127070844.21919-1-jgross@suse.com>

--------------dmv0z0qelhOAJxC2cC0LuZyw
Content-Type: multipart/mixed; boundary="------------vwtdjJ2TzsEgHt1ivKzjZJmN"

--------------vwtdjJ2TzsEgHt1ivKzjZJmN
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

QXQgbGVhc3QgZm9yIHBhdGNoZXMgMS0xMjogUGluZz8NCg0KV291bGQgYmUgbmljZSB0byBo
YXZlIHNvbWUgZmVlZGJhY2sgZm9yIDEzLTIxLCB0b28gKHBhdGNoIDIxIG5lZWRzIGFuDQp1
cGRhdGUsIHRob3VnaCkuDQoNCg0KSnVlcmdlbg0KDQpPbiAyNy4xMS4yNSAwODowOCwgSnVl
cmdlbiBHcm9zcyB3cm90ZToNCj4gU29tZSBjbGVhbnVwcyBhbmQgcmVvcmcgb2YgcGFyYXZp
cnQgY29kZSBhbmQgaGVhZGVyczoNCj4gDQo+IC0gVGhlIGZpcnN0IDIgcGF0Y2hlcyBzaG91
bGQgYmUgbm90IGNvbnRyb3ZlcnNpYWwgYXQgYWxsLCBhcyB0aGV5DQo+ICAgIHJlbW92ZSBq
dXN0IHNvbWUgbm8gbG9uZ2VyIG5lZWRlZCAjaW5jbHVkZSBhbmQgc3RydWN0IGZvcndhcmQN
Cj4gICAgZGVjbGFyYXRpb25zLg0KPiANCj4gLSBUaGUgM3JkIHBhdGNoIGlzIHJlbW92aW5n
IENPTkZJR19QQVJBVklSVF9ERUJVRywgd2hpY2ggSU1PIGhhcw0KPiAgICBubyByZWFsIHZh
bHVlLCBhcyBpdCBqdXN0IGNoYW5nZXMgYSBjcmFzaCB0byBhIEJVRygpICh0aGUgc3RhY2sN
Cj4gICAgdHJhY2Ugd2lsbCBiYXNpY2FsbHkgYmUgdGhlIHNhbWUpLiBBcyB0aGUgbWFpbnRh
aW5lciBvZiB0aGUgbWFpbg0KPiAgICBwYXJhdmlydCB1c2VyIChYZW4pIEkgaGF2ZSBuZXZl
ciBzZWVuIHRoaXMgY3Jhc2gvQlVHKCkgdG8gaGFwcGVuLg0KPiANCj4gLSBUaGUgNHRoIHBh
dGNoIGlzIGp1c3QgYSBtb3ZlbWVudCBvZiBjb2RlLg0KPiANCj4gLSBJIGRvbid0IGtub3cg
Zm9yIHdoYXQgcmVhc29uIGFzbS9wYXJhdmlydF9hcGlfY2xvY2suaCB3YXMgYWRkZWQsDQo+
ICAgIGFzIGFsbCBhcmNocyBzdXBwb3J0aW5nIGl0IGRvIGl0IGV4YWN0bHkgaW4gdGhlIHNh
bWUgd2F5LiBQYXRjaA0KPiAgICA1IGlzIHJlbW92aW5nIGl0Lg0KPiANCj4gLSBQYXRjaGVz
IDYtMTQgYXJlIHN0cmVhbWxpbmluZyB0aGUgcGFyYXZpcnQgY2xvY2sgaW50ZXJmYWNlcyBi
eQ0KPiAgICB1c2luZyBhIGNvbW1vbiBpbXBsZW1lbnRhdGlvbiBhY3Jvc3MgYXJjaGl0ZWN0
dXJlcyB3aGVyZSBwb3NzaWJsZQ0KPiAgICBhbmQgYnkgbW92aW5nIHRoZSByZWxhdGVkIGNv
ZGUgaW50byBjb21tb24gc2NoZWQgY29kZSwgYXMgdGhpcyBpcw0KPiAgICB3aGVyZSBpdCBz
aG91bGQgbGl2ZS4NCj4gDQo+IC0gUGF0Y2hlcyAxNS0yMCBhcmUgbW9yZSBsaWtlIFJGQyBt
YXRlcmlhbCBwcmVwYXJpbmcgdGhlIHBhcmF2aXJ0DQo+ICAgIGluZnJhc3RydWN0dXJlIHRv
IHN1cHBvcnQgbXVsdGlwbGUgcHZfb3BzIGZ1bmN0aW9uIGFycmF5cy4NCj4gICAgQXMgYSBw
cmVyZXF1aXNpdGUgZm9yIHRoYXQgaXQgbWFrZXMgbGlmZSBpbiBvYmp0b29sIG11Y2ggZWFz
aWVyDQo+ICAgIHdpdGggZHJvcHBpbmcgdGhlIFhlbiBzdGF0aWMgaW5pdGlhbGl6ZXJzIG9m
IHRoZSBwdl9vcHMgc3ViLQ0KPiAgICBzdHJ1Y3R1cmVzLCB3aGljaCBpcyBkb25lIGluIHBh
dGNoZXMgMTUtMTcuDQo+ICAgIFBhdGNoZXMgMTgtMjAgYXJlIGRvaW5nIHRoZSByZWFsIHBy
ZXBhcmF0aW9ucyBmb3IgbXVsdGlwbGUgcHZfb3BzDQo+ICAgIGFycmF5cyBhbmQgdXNpbmcg
dGhvc2UgYXJyYXlzIGluIG11bHRpcGxlIGhlYWRlcnMuDQo+IA0KPiAtIFBhdGNoIDIxIGlz
IGFuIGV4YW1wbGUgaG93IHRoZSBuZXcgc2NoZW1lIGNhbiBsb29rIGxpa2UgdXNpbmcgdGhl
DQo+ICAgIFBWLXNwaW5sb2Nrcy4NCj4gDQo+IENoYW5nZXMgaW4gVjI6DQo+IC0gbmV3IHBh
dGNoZXMgMTMtMTggYW5kIDIwDQo+IC0gY29tcGxldGUgcmV3b3JrIG9mIHBhdGNoIDIxDQo+
IA0KPiBDaGFuZ2VzIGluIFYzOg0KPiAtIGZpeGVkIDIgaXNzdWVzIGRldGVjdGVkIGJ5IGtl
cm5lbCB0ZXN0IHJvYm90DQo+IA0KPiBDaGFuZ2VzIGluIFY0Og0KPiAtIGZpeGVkIG9uZSBi
dWlsZCBpc3N1ZQ0KPiANCj4gSnVlcmdlbiBHcm9zcyAoMjEpOg0KPiAgICB4ODYvcGFyYXZp
cnQ6IFJlbW92ZSBub3QgbmVlZGVkIGluY2x1ZGVzIG9mIHBhcmF2aXJ0LmgNCj4gICAgeDg2
L3BhcmF2aXJ0OiBSZW1vdmUgc29tZSB1bm5lZWRlZCBzdHJ1Y3QgZGVjbGFyYXRpb25zDQo+
ICAgIHg4Ni9wYXJhdmlydDogUmVtb3ZlIFBBUkFWSVJUX0RFQlVHIGNvbmZpZyBvcHRpb24N
Cj4gICAgeDg2L3BhcmF2aXJ0OiBNb3ZlIHRodW5rIG1hY3JvcyB0byBwYXJhdmlydF90eXBl
cy5oDQo+ICAgIHBhcmF2aXJ0OiBSZW1vdmUgYXNtL3BhcmF2aXJ0X2FwaV9jbG9jay5oDQo+
ICAgIHNjaGVkOiBNb3ZlIGNsb2NrIHJlbGF0ZWQgcGFyYXZpcnQgY29kZSB0byBrZXJuZWwv
c2NoZWQNCj4gICAgYXJtL3BhcmF2aXJ0OiBVc2UgY29tbW9uIGNvZGUgZm9yIHBhcmF2aXJ0
X3N0ZWFsX2Nsb2NrKCkNCj4gICAgYXJtNjQvcGFyYXZpcnQ6IFVzZSBjb21tb24gY29kZSBm
b3IgcGFyYXZpcnRfc3RlYWxfY2xvY2soKQ0KPiAgICBsb29uZ2FyY2gvcGFyYXZpcnQ6IFVz
ZSBjb21tb24gY29kZSBmb3IgcGFyYXZpcnRfc3RlYWxfY2xvY2soKQ0KPiAgICByaXNjdi9w
YXJhdmlydDogVXNlIGNvbW1vbiBjb2RlIGZvciBwYXJhdmlydF9zdGVhbF9jbG9jaygpDQo+
ICAgIHg4Ni9wYXJhdmlydDogVXNlIGNvbW1vbiBjb2RlIGZvciBwYXJhdmlydF9zdGVhbF9j
bG9jaygpDQo+ICAgIHg4Ni9wYXJhdmlydDogTW92ZSBwYXJhdmlydF9zY2hlZF9jbG9jaygp
IHJlbGF0ZWQgY29kZSBpbnRvIHRzYy5jDQo+ICAgIHg4Ni9wYXJhdmlydDogSW50cm9kdWNl
IG5ldyBwYXJhdmlydC1iYXNlLmggaGVhZGVyDQo+ICAgIHg4Ni9wYXJhdmlydDogTW92ZSBw
dl9uYXRpdmVfKigpIHByb3RvdHlwZXMgdG8gcGFyYXZpcnQuYw0KPiAgICB4ODYveGVuOiBE
cm9wIHhlbl9pcnFfb3BzDQo+ICAgIHg4Ni94ZW46IERyb3AgeGVuX2NwdV9vcHMNCj4gICAg
eDg2L3hlbjogRHJvcCB4ZW5fbW11X29wcw0KPiAgICBvYmp0b29sOiBBbGxvdyBtdWx0aXBs
ZSBwdl9vcHMgYXJyYXlzDQo+ICAgIHg4Ni9wYXJhdmlydDogQWxsb3cgcHYtY2FsbHMgb3V0
c2lkZSBwYXJhdmlydC5oDQo+ICAgIHg4Ni9wYXJhdmlydDogU3BlY2lmeSBwdl9vcHMgYXJy
YXkgaW4gcGFyYXZpcnQgbWFjcm9zDQo+ICAgIHg4Ni9wdmxvY2tzOiBNb3ZlIHBhcmF2aXJ0
IHNwaW5sb2NrIGZ1bmN0aW9ucyBpbnRvIG93biBoZWFkZXINCj4gDQo+ICAgYXJjaC9LY29u
ZmlnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsNCj4gICBhcmNo
L2FybS9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiAg
IGFyY2gvYXJtL2luY2x1ZGUvYXNtL3BhcmF2aXJ0LmggICAgICAgICAgICAgICB8ICAyMiAt
LQ0KPiAgIGFyY2gvYXJtL2luY2x1ZGUvYXNtL3BhcmF2aXJ0X2FwaV9jbG9jay5oICAgICB8
ICAgMSAtDQo+ICAgYXJjaC9hcm0va2VybmVsL01ha2VmaWxlICAgICAgICAgICAgICAgICAg
ICAgIHwgICAxIC0NCj4gICBhcmNoL2FybS9rZXJuZWwvcGFyYXZpcnQuYyAgICAgICAgICAg
ICAgICAgICAgfCAgMjMgLS0NCj4gICBhcmNoL2FybTY0L0tjb25maWcgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDEgKw0KPiAgIGFyY2gvYXJtNjQvaW5jbHVkZS9hc20vcGFy
YXZpcnQuaCAgICAgICAgICAgICB8ICAxNCAtDQo+ICAgYXJjaC9hcm02NC9pbmNsdWRlL2Fz
bS9wYXJhdmlydF9hcGlfY2xvY2suaCAgIHwgICAxIC0NCj4gICBhcmNoL2FybTY0L2tlcm5l
bC9wYXJhdmlydC5jICAgICAgICAgICAgICAgICAgfCAgMTEgKy0NCj4gICBhcmNoL2xvb25n
YXJjaC9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiAgIGFyY2gv
bG9vbmdhcmNoL2luY2x1ZGUvYXNtL3BhcmF2aXJ0LmggICAgICAgICB8ICAxMyAtDQo+ICAg
Li4uL2luY2x1ZGUvYXNtL3BhcmF2aXJ0X2FwaV9jbG9jay5oICAgICAgICAgIHwgICAxIC0N
Cj4gICBhcmNoL2xvb25nYXJjaC9rZXJuZWwvcGFyYXZpcnQuYyAgICAgICAgICAgICAgfCAg
MTAgKy0NCj4gICBhcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcGFyYXZpcnQuaCAgICAgICAg
ICAgfCAgIDMgLQ0KPiAgIGFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9wYXJhdmlydF9hcGlf
Y2xvY2suaCB8ICAgMiAtDQo+ICAgYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3Nl
dHVwLmMgICAgICAgIHwgICA0ICstDQo+ICAgYXJjaC9yaXNjdi9LY29uZmlnICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxICsNCj4gICBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNt
L3BhcmF2aXJ0LmggICAgICAgICAgICAgfCAgMTQgLQ0KPiAgIGFyY2gvcmlzY3YvaW5jbHVk
ZS9hc20vcGFyYXZpcnRfYXBpX2Nsb2NrLmggICB8ICAgMSAtDQo+ICAgYXJjaC9yaXNjdi9r
ZXJuZWwvcGFyYXZpcnQuYyAgICAgICAgICAgICAgICAgIHwgIDExICstDQo+ICAgYXJjaC94
ODYvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICstDQo+ICAg
YXJjaC94ODYvZW50cnkvZW50cnlfNjQuUyAgICAgICAgICAgICAgICAgICAgIHwgICAxIC0N
Cj4gICBhcmNoL3g4Ni9lbnRyeS92c3lzY2FsbC92c3lzY2FsbF82NC5jICAgICAgICAgfCAg
IDEgLQ0KPiAgIGFyY2gveDg2L2h5cGVydi9odl9zcGlubG9jay5jICAgICAgICAgICAgICAg
ICB8ICAxMSArLQ0KPiAgIGFyY2gveDg2L2luY2x1ZGUvYXNtL2FwaWMuaCAgICAgICAgICAg
ICAgICAgICB8ICAgNCAtDQo+ICAgYXJjaC94ODYvaW5jbHVkZS9hc20vaGlnaG1lbS5oICAg
ICAgICAgICAgICAgIHwgICAxIC0NCj4gICBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc2h5cGVy
di5oICAgICAgICAgICAgICAgfCAgIDEgLQ0KPiAgIGFyY2gveDg2L2luY2x1ZGUvYXNtL3Bh
cmF2aXJ0LWJhc2UuaCAgICAgICAgICB8ICAyOSArKw0KPiAgIGFyY2gveDg2L2luY2x1ZGUv
YXNtL3BhcmF2aXJ0LXNwaW5sb2NrLmggICAgICB8IDE0NiArKysrKysrKw0KPiAgIGFyY2gv
eDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0LmggICAgICAgICAgICAgICB8IDMzMSArKysrKy0t
LS0tLS0tLS0tLS0NCj4gICBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF9hcGlfY2xv
Y2suaCAgICAgfCAgIDEgLQ0KPiAgIGFyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0X3R5
cGVzLmggICAgICAgICB8IDI2OSArKysrKysrLS0tLS0tLQ0KPiAgIGFyY2gveDg2L2luY2x1
ZGUvYXNtL3BndGFibGVfMzIuaCAgICAgICAgICAgICB8ICAgMSAtDQo+ICAgYXJjaC94ODYv
aW5jbHVkZS9hc20vcHRyYWNlLmggICAgICAgICAgICAgICAgIHwgICAyICstDQo+ICAgYXJj
aC94ODYvaW5jbHVkZS9hc20vcXNwaW5sb2NrLmggICAgICAgICAgICAgIHwgIDg5ICstLS0t
DQo+ICAgYXJjaC94ODYvaW5jbHVkZS9hc20vc3BpbmxvY2suaCAgICAgICAgICAgICAgIHwg
ICAxIC0NCj4gICBhcmNoL3g4Ni9pbmNsdWRlL2FzbS90aW1lci5oICAgICAgICAgICAgICAg
ICAgfCAgIDEgKw0KPiAgIGFyY2gveDg2L2luY2x1ZGUvYXNtL3RsYmZsdXNoLmggICAgICAg
ICAgICAgICB8ICAgNCAtDQo+ICAgYXJjaC94ODYva2VybmVsL01ha2VmaWxlICAgICAgICAg
ICAgICAgICAgICAgIHwgICAyICstDQo+ICAgYXJjaC94ODYva2VybmVsL2FwbV8zMi5jICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxIC0NCj4gICBhcmNoL3g4Ni9rZXJuZWwvY2FsbHRo
dW5rcy5jICAgICAgICAgICAgICAgICAgfCAgIDEgLQ0KPiAgIGFyY2gveDg2L2tlcm5lbC9j
cHUvYnVncy5jICAgICAgICAgICAgICAgICAgICB8ICAgMSAtDQo+ICAgYXJjaC94ODYva2Vy
bmVsL2NwdS92bXdhcmUuYyAgICAgICAgICAgICAgICAgIHwgICAxICsNCj4gICBhcmNoL3g4
Ni9rZXJuZWwva3ZtLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTMgKy0NCj4gICBh
cmNoL3g4Ni9rZXJuZWwva3ZtY2xvY2suYyAgICAgICAgICAgICAgICAgICAgfCAgIDEgKw0K
PiAgIGFyY2gveDg2L2tlcm5lbC9wYXJhdmlydC1zcGlubG9ja3MuYyAgICAgICAgICB8ICAy
NiArLQ0KPiAgIGFyY2gveDg2L2tlcm5lbC9wYXJhdmlydC5jICAgICAgICAgICAgICAgICAg
ICB8ICA0MiArLS0NCj4gICBhcmNoL3g4Ni9rZXJuZWwvdHNjLmMgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgMTAgKy0NCj4gICBhcmNoL3g4Ni9rZXJuZWwvdnNtcF82NC5jICAgICAg
ICAgICAgICAgICAgICAgfCAgIDEgLQ0KPiAgIGFyY2gveDg2L2xpYi9jYWNoZS1zbXAuYyAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMSAtDQo+ICAgYXJjaC94ODYvbW0vaW5pdC5jICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxIC0NCj4gICBhcmNoL3g4Ni94ZW4vZW5s
aWdodGVuX3B2LmMgICAgICAgICAgICAgICAgICAgfCAgODIgKystLS0NCj4gICBhcmNoL3g4
Ni94ZW4vaXJxLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjAgKy0NCj4gICBh
cmNoL3g4Ni94ZW4vbW11X3B2LmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMDAgKyst
LS0tDQo+ICAgYXJjaC94ODYveGVuL3NwaW5sb2NrLmMgICAgICAgICAgICAgICAgICAgICAg
IHwgIDExICstDQo+ICAgYXJjaC94ODYveGVuL3RpbWUuYyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAyICsNCj4gICBkcml2ZXJzL2Nsb2Nrc291cmNlL2h5cGVydl90aW1lci5j
ICAgICAgICAgICAgfCAgIDIgKw0KPiAgIGRyaXZlcnMveGVuL3RpbWUuYyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMiArLQ0KPiAgIGluY2x1ZGUvbGludXgvc2NoZWQvY3B1
dGltZS5oICAgICAgICAgICAgICAgICB8ICAxOCArDQo+ICAga2VybmVsL3NjaGVkL2NvcmUu
YyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICsNCj4gICBrZXJuZWwvc2NoZWQv
Y3B1dGltZS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTMgKw0KPiAgIGtlcm5lbC9z
Y2hlZC9zY2hlZC5oICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArLQ0KPiAgIHRv
b2xzL29ianRvb2wvYXJjaC94ODYvZGVjb2RlLmMgICAgICAgICAgICAgICB8ICAgOCArLQ0K
PiAgIHRvb2xzL29ianRvb2wvY2hlY2suYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICA3
OCArKysrLQ0KPiAgIHRvb2xzL29ianRvb2wvaW5jbHVkZS9vYmp0b29sL2NoZWNrLmggICAg
ICAgICB8ICAgMiArDQo+ICAgNjYgZmlsZXMgY2hhbmdlZCwgNjYxIGluc2VydGlvbnMoKyks
IDgyNiBkZWxldGlvbnMoLSkNCj4gICBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vaW5j
bHVkZS9hc20vcGFyYXZpcnQuaA0KPiAgIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9p
bmNsdWRlL2FzbS9wYXJhdmlydF9hcGlfY2xvY2suaA0KPiAgIGRlbGV0ZSBtb2RlIDEwMDY0
NCBhcmNoL2FybS9rZXJuZWwvcGFyYXZpcnQuYw0KPiAgIGRlbGV0ZSBtb2RlIDEwMDY0NCBh
cmNoL2FybTY0L2luY2x1ZGUvYXNtL3BhcmF2aXJ0X2FwaV9jbG9jay5oDQo+ICAgZGVsZXRl
IG1vZGUgMTAwNjQ0IGFyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL3BhcmF2aXJ0X2FwaV9j
bG9jay5oDQo+ICAgZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvcG93ZXJwYy9pbmNsdWRlL2Fz
bS9wYXJhdmlydF9hcGlfY2xvY2suaA0KPiAgIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL3Jp
c2N2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0X2FwaV9jbG9jay5oDQo+ICAgY3JlYXRlIG1vZGUg
MTAwNjQ0IGFyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0LWJhc2UuaA0KPiAgIGNyZWF0
ZSBtb2RlIDEwMDY0NCBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydC1zcGlubG9jay5o
DQo+ICAgZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0
X2FwaV9jbG9jay5oDQo+IA0KDQo=
--------------vwtdjJ2TzsEgHt1ivKzjZJmN
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------vwtdjJ2TzsEgHt1ivKzjZJmN--

--------------dmv0z0qelhOAJxC2cC0LuZyw--

--------------YyphMvfItp3TyHBNEvp0WSxz
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmk/xmYFAwAAAAAACgkQsN6d1ii/Ey/P
nAf+Lyp90BcZbjyFdqh1h33G0Yhk4IoRkWvYHwyHlyXo/RJu1/DT3tR31UtdoAxXicV5RSwgcedk
iUyeBignFMYMWXdt4YU4kBI8wWwrvoeYkAeRgbppgUFF5uk1IXCtih7aAGdz7epM9Wh7vvINWV02
6xHmwWRAvpldD6h2wfEupMcVV+X7Mf0DM5+N6D4IKDM6wthepUbp+0kDl6Iy38tVD4+oZgKGT8ID
aJ8ucRl0IPUKDf+tKzRx/0c+eMwqWkOCiqMfGcSG0BypXEkRkl9XiqC4kedCYElYhAJ8m7rNyxCw
OIxbjQQTSqWCtfOeXpGcg4fhi4zbQsAWJMq8wOpgGQ==
=cQgu
-----END PGP SIGNATURE-----

--------------YyphMvfItp3TyHBNEvp0WSxz--


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 08:28:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 08:28:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186679.1508103 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV3wE-00072c-0Y; Mon, 15 Dec 2025 08:28:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186679.1508103; Mon, 15 Dec 2025 08:28:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV3wD-00072V-U3; Mon, 15 Dec 2025 08:28:13 +0000
Received: by outflank-mailman (input) for mailman id 1186679;
 Mon, 15 Dec 2025 08:28:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV3wC-0006Tz-Es
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 08:28:12 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fd7ecdab-d98f-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 09:28:10 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-477b198f4bcso24919085e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 00:28:10 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f4b1347sm190739325e9.8.2025.12.15.00.28.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 00:28:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fd7ecdab-d98f-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765787290; x=1766392090; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6qRfA0WPGABEWDzgLPF/qpTfW0+fzLNFTO1YVf/Np+I=;
        b=KcOyTKyRPVhdUUbjOv6e5TAvcyL+mnwY9iCWspg7NuUwCNRXAXkvrUCq+DQnbOL2Fx
         xxOFfOzYiCH/lr79yh+wJhdHnapBhZXX6ZOamRgBvZvw5cv8wJZr1QtnVH8WnzLF8O9A
         1lKkH6KW+V0b/xtM+rIn/cMVXxZS8aO7jNy0sKvPn1bRzUSFGHvz98UGBfke7+9tUgJ1
         1gFD/frzLSEi9Hrpuzvphx+A6i3zQA/Isji3qLPXCkA2hdGCMxWp45apUxszePSs16Ru
         FP6RACUNdCoESps8zSLyjKMO0VRpcyM5++w75bUgn932kykZLG0TSuzH1bYELPmjQuuJ
         IMEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765787290; x=1766392090;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6qRfA0WPGABEWDzgLPF/qpTfW0+fzLNFTO1YVf/Np+I=;
        b=C/uIqXSbHK7k3oGhSIcLNIASoeYu9xZIgMJxEqCQy0IwhIQTerBuK7cK7S8G4xd7ya
         jn+8g9GkHu5xwWSoIK+Ihs8y5t5WV12mGkdf/8D00564ZAbVaSOOTlppZDVCQHW9GCUi
         p4x9M7vRmPJdcQTAqx82TFrcR1/vOuv0EmJvdWuRtUZ/vGyDe3PSYiDu4fBB0qTTYA/N
         5l+DPOzWmr1ZsVE0s0SXe/0GWLVLv6PDNzsUifsKs3MdoS8JmgCQdIdTAb5FMTyCEuOt
         +BUnvZyEBpkEkL0Dzf1H1wCOQOqvSCX4pGY+vD7u08ljDf/mNQw1gAsR4FFqhD3UzbE3
         wjEQ==
X-Forwarded-Encrypted: i=1; AJvYcCXecGl1r87RIAbd42PRW4cilROOdipo0zW7CGW8AHjn/2qiAXHd6Ddv0AnXd0Gv0zQYyPYwbX8ZctI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxj+s/tZ6mvAbMY6sqwXu08CP6PflIoyf74DcmbgoVMa+WEHm5i
	hlIf9xPXmZS0/hDUZU8XyASeUb6IxIXaymQWz43AOvrqnrglzHB0lsNWmadMXAWnnw==
X-Gm-Gg: AY/fxX5f7u6En/x5J3fBVYdNN7bfH1IIc6y4UBR1q0Nk5bCHGFwQv332xexPg4w1RFZ
	pSAHDAQVXC7KtOopMzIequIfeQ9Rf/JyiFyFLG4l1rmc2DaG3sqHa4h3Pn9anOkK+kS+QM9sCT3
	E9d6LErQ8Oq4DYX/xI++ZZyI1Es9Tfvtg5mgsC6E6Sn/Yd/HH1R3XJXxulcy+/umnRZ45z6SkjF
	4B50W2pWgyIDBcUFeqCsvb/RlGzmrAykQ1US1iwLlUI6rhIMsQXertcuwD/TWksp0M0GmpmdWh5
	Qx5Cvmza1h2/w5sisjeXQeuiZ3vNOPdhkWRUJXw9CUbCGZt4QD0Ig8OzJktzsLKSNeCgwZMzT/o
	gmzyL3XQaYtqFM9TA9ZDHdjKNdIj7hb1HyHsgfAUoVvEVdXEDYPrur9H/NdRrSWey+9zL/CXYyH
	05bkOl0kwrlOkgdeoQEDn7V3E4qvUINwiCA5EGkaS9xHlnAQ92T5+Xcu1iB9gXOBkyvT7E8L0jB
	UY=
X-Google-Smtp-Source: AGHT+IEByL7kP3Wvh6M8xfn0pW1etVB54Rs+TC9RMmqiJXlKqwZuyCMIQfWlM8eyXSNCRPvYXjtHFw==
X-Received: by 2002:a05:600c:4e47:b0:477:3e0b:c0e3 with SMTP id 5b1f17b1804b1-47a8f9155c6mr79820335e9.32.1765787289983;
        Mon, 15 Dec 2025 00:28:09 -0800 (PST)
Message-ID: <becae376-2d01-4019-919d-c6840c6d4506@suse.com>
Date: Mon, 15 Dec 2025 09:28:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 19/19] xen/riscv: introduce metadata table to store P2M
 type
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
 <2c41da84b3e7fb0f6e6c3c856bff6edaf9e1d505.1763986955.git.oleksii.kurochko@gmail.com>
 <889df78f-7196-4b44-9558-fb83f432e18a@suse.com>
 <36be69fb-9362-43a4-8308-1e62be60d27f@gmail.com>
 <621089a4-d946-46ce-a3cf-4d0938d4a39a@suse.com>
 <db24c624-0432-48ec-aecc-3efaa4973303@gmail.com>
 <6c78a029-7437-4256-afca-c5d39fbd3f8b@suse.com>
 <45231d95-1745-44a6-b364-e97f9f501e10@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <45231d95-1745-44a6-b364-e97f9f501e10@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.12.2025 17:42, Oleksii Kurochko wrote:
> On 12/11/25 10:39 AM, Jan Beulich wrote:
>> On 10.12.2025 13:44, Oleksii Kurochko wrote:
>>> On 12/10/25 8:06 AM, Jan Beulich wrote:
>>>> On 09.12.2025 18:09, Oleksii Kurochko wrote:
>>>>> On 12/9/25 2:47 PM, Jan Beulich wrote:
>>>>>> On 24.11.2025 13:33, Oleksii Kurochko wrote:
>>>>>>> +            *md_pg = p2m_alloc_page(p2m);
>>>>>>> +            if ( !*md_pg )
>>>>>>> +            {
>>>>>>> +                printk("%pd: can't allocate metadata page\n", p2m->domain);
>>>>>>> +                domain_crash(p2m->domain);
>>>>>>> +
>>>>>>> +                return;
>>>>>>> +            }
>>>>>>> +        }
>>>>>>> +    }
>>>>>>> +
>>>>>>> +    if ( *md_pg )
>>>>>>> +        metadata = __map_domain_page(*md_pg);
>>>>>>> +
>>>>>>> +    if ( t >= p2m_first_external )
>>>>>>> +    {
>>>>>>> +        metadata[ctx->index].type = t;
>>>>>>> +
>>>>>>> +        t = p2m_ext_storage;
>>>>>>> +    }
>>>>>>> +    else if ( metadata )
>>>>>>> +        metadata[ctx->index].type = p2m_invalid;
>>>>>>> +
>>>>>>> +    pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>>>>>>> +
>>>>>>> +    unmap_domain_page(metadata);
>>>>>>>     }
>>>>>> Just to mention (towards future work): Once a metadata page goes back to be
>>>>>> entirely zero-filled, it could as well be hooked off and returned to the pool.
>>>>>> Not doing so may mean detaining an unused page indefinitely.
>>>>> Won’t that already happen when p2m_free_table() is called?
>>>> Well, that's when both page table and metadata table are freed. But what if a
>>>> leaf page table is moving back to holding all p2m_ram_rw mappings? Then the
>>>> metadata page is unused, but will remain allocated.
>>> Good point...
>>>
>>> This could be a rather expensive operation, since in the code:
>>>     +    else if ( metadata )
>>>     +        metadata[ctx->index].type = p2m_invalid;
>>> we would have to check all other metadata entries to determine whether they are
>>> (p2m_invalid) or not, and return the page to the pool.
>>>
>>> It would be nice to have something like metadata.used_entries_num, but the entire
>>> page is used for type entries.
>>> As an option, we could reserve 8 bits to store a counter of the number of used
>>> entries in the metadata page, and then use metadata[0].used_entries_num to check
>>> whether it is zero. If it is zero, we could simply return the metadata page to the
>>> pool in the “else if (metadata)” case mentioned above.
>>>
>>> How bad is this idea? Any better suggestions?
>> First, as said in my initial reply: This may not need taking care of right away.
>> It will need keeping in mind, of course.
> 
> I am thinking if it won't be too intrusive, I think that I am okay to introduce that
> now.
> 
>>
>> As to suggestions - hardly any of the fields in struct page_info for the page
>> can be used when the page is a metadata one. Simply record the count there?
> 
> I suppose that|union u| could be used.
> The only thing that confuses me is the shadow paging implementation on x86.
> In|struct page_info|, it has the following:
>      /* Context-dependent fields follow... */
>      union {
> 
>          /* Page is in use: ((count_info & PGC_count_mask) != 0). */
>          struct {
>              /* Type reference count and various PGT_xxx flags and fields. */
>              unsigned long type_info;
>          } inuse;
> 
>          /* Page is in use as a shadow: count_info == 0. */
>          struct {
> 	   ....
>          } sh;
> 
>          /* Page is on a free list: ((count_info & PGC_count_mask) == 0). */
>          union {
> 
> So it seems that something in the shadow code must set|count_info| to zero for
> shadow pages. But I cannot find where this happens. I would expect it to be done
> in|shadow_alloc()|, when the page is taken from the free list. However, pages
> from the free list donot have|count_info == 0| since|alloc_heap_pages() |initializes|count_info|.
> What guarantees that|count_info| will be zero for shadow tables?

This is all a little (or maybe even pretty) subtle. On x86 PGC_state_inuse is 0.
Together with logic guaranteeing that PGC_need_scrub would be clear by the time
a page is handed to the caller, what alloc_heap_pages() does is actually to
clear the field.

> Interestingly, in the shadow p2m page free code, there is logic that resets
> |count_info| to zero:

Yes, because iirc there used to be a strict requirement that pages need to be
handed back to the allocator the way they came out of it: With .count_info
clear. mark_page_free() documents / handles a couple of special cases now.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 09:00:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 09:00:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186691.1508115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV4Qy-0003g1-Du; Mon, 15 Dec 2025 09:00:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186691.1508115; Mon, 15 Dec 2025 09:00:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV4Qy-0003fu-9t; Mon, 15 Dec 2025 09:00:00 +0000
Received: by outflank-mailman (input) for mailman id 1186691;
 Mon, 15 Dec 2025 08:59:59 +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 <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV4Qx-0003fo-Gf
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 08:59:59 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6e386bdf-d994-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 09:59:58 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-477770019e4so31925295e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 00:59:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47bd2aab5b5sm1813795e9.5.2025.12.15.00.59.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 00:59:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6e386bdf-d994-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765789197; x=1766393997; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=72OPFhWon9kXoIauxRwR1Xkd54AI2MBkQuX1waJPnt4=;
        b=Gk9t0pmWQqBJE6Zag9cmB63w9k3wUbajqbHH6g69+EyEqzcGbp4hMuGqACDmiqU1qB
         WZpGA1gg0r7PGncfNtPLzNFhw7p7d/OvDhlzrfwS4zmK5wYarp03cnKbp/iFL2BZEK1E
         G4ItdV2wtaxtItqoiy5hgTmvSoR68rjkxy5ul6dRHBG8pwEJirwPEq7oW1ZTD77DYgbu
         nXMrLveinuYitG146FE8FJ6o5fn8xoyEZCxDySe4JRu+HqVy0KXTx2W7fVTnR2dhSWQt
         Z5l2dV1+udxPyXSk/QKRwvMrnRkcFAEKAAELvrKz0eAv3v+4/QBgezXjHCxkrOtXgHa0
         kaPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765789197; x=1766393997;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=72OPFhWon9kXoIauxRwR1Xkd54AI2MBkQuX1waJPnt4=;
        b=G+WDmunb6aNLCAQofbbK+C6C4oHUiKnGP72XM8gRu0wL6wdXAJINDJuFSZpL37dBa1
         xptpJnUZZ4NRRelA7Aa/0+D/7+f0v9B6++2rEFL4ttUHhGMrr3k4GmYrJhTeaNuBdxHU
         slLh2yZj2ohL2QmPMAbvpz7YPJcruYZJbvcZANtMH5nIRJB8D1BhlUDct4U7BfWF6cGN
         G84tz9YBpSxRNf4DAgYg+dHLXM7QSqeGWMcCfc4dWhGNPnt/jNLV9TnyIrXdmkwWVOxC
         uEqYRDQje0B9MQ9UdNocR3qEtJoeJ0o7Lv7GRSToy9hpVlJiqTlPvFqJJSiyAVPtEfSK
         qo+A==
X-Forwarded-Encrypted: i=1; AJvYcCWJd4mEeCEARVb1wJSaCeUbvngi8KvnKlPTnjCo6dFmmKrN1ewlGeTpWHmW4fFdVDI7J4vkpBMUXE8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx/szuBHFyQnyCnjmAXOrn6kBqvEh2C/iwpFlKtmggPGm2tBo95
	q9E15LDzcEf61AOweaHvEtIHAIZd2Os7ylxlGdpXEb5jpp7BMf4Fz8ohHf+uVOZtpw==
X-Gm-Gg: AY/fxX6k0SaU9mVH6edxo5rgxczBvNAMzVK135YO2Wm1Q6u9Bjt5LrYTtXVaOCQ/KLY
	66lpcfXqZu3eqJvzryX+G0tSK69+pBlViSD+mlk5NfHelxiiib2sFGf+sog/k2dNvMmwcQZdPld
	mXecOTJ8QKOYSZR4us8kMCUaNiTHs/It6y5aa7slXzueGf6qxZ0D66rr3+yQk+f26aLxsTc4Qe/
	G/2ibj3JnOD6kYpxxC8LU3DumN0GBuNo/e41rWfbl0qWmG35/7BXXhppD9fV5YyejK8cctdDXTa
	td8ps5Dgq42j+dOSCqorHPAzz5QMp2k/9Sv3AeAq71408UefE3Q6dAyXdg9JskFZQY+MaJ8YtTb
	LKcjWLBc985oxyqLEfTnQWaMk1YHpfG1sGG1MuO2SciuDwgHfFMlDPsoRjQvDwW7E76IluD+WPK
	D/OFwHhbOHcNzD79Hwq0Y80BgUjX2TymwQZeBu2D/9ghSC/YqrA1R348X48Uw/9YxL7+T1hUYEd
	vE=
X-Google-Smtp-Source: AGHT+IEWkjr/yMbQZ11FRxIPuaPgvXEE7kWLlUguvX5EU1Obn2SGT+6EZRea6meYGrKNKaeOKoqGRA==
X-Received: by 2002:a05:600c:4f4a:b0:477:28c1:26ce with SMTP id 5b1f17b1804b1-47a8f8a717dmr109516885e9.7.1765789196903;
        Mon, 15 Dec 2025 00:59:56 -0800 (PST)
Message-ID: <f1bd1d10-c3a0-4dfa-88aa-f14a5bf88308@suse.com>
Date: Mon, 15 Dec 2025 09:59:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: KEEP Re: [PATCH 2/2] xen: Add CONFIG_GC_SECTIONS
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Victor Lira <victorm.lira@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
References: <20251209214728.278949-1-jason.andryuk@amd.com>
 <20251209214728.278949-3-jason.andryuk@amd.com>
 <ed620cd5-9630-4987-bd5c-9f69ae2c2609@citrix.com>
 <43d30e02-f818-4cf2-98c9-4182a2f65f64@amd.com>
 <13a270cd-b0bd-4565-9158-0e1728aef84e@citrix.com>
 <7514a67c-d140-43b6-bed0-3467530a086d@suse.com>
 <fbe63318-b764-46ce-a377-dd4ce7229abe@amd.com>
 <83eedd0c-dcaf-4e28-ac0f-f4991f053350@suse.com>
 <c2d3da12-7bcb-4a61-a495-a09c4d4123c4@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c2d3da12-7bcb-4a61-a495-a09c4d4123c4@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2025 16:48, Jason Andryuk wrote:
> On 2025-12-12 08:22, Jan Beulich wrote:
>> On 12.12.2025 02:34, Jason Andryuk wrote:
>>> The alternative is section groups?  I'm trying that, and it kinda works
>>> sometimes, but .attach_to_group fails when .init.text is involved.
>>>
>>> Here's an example that I think would work, I could make it to
>>> --gc-sectrions:
>>> group section [    3] `.group' [.text.vpmu_do_msr] contains 5 sections:
>>>      [Index]    Name
>>>      [   43]   .text.vpmu_do_msr
>>>      [   44]   .rela.text.vpmu_do_msr
>>>      [   45]   .altinstructions..text.vpmu_do_msr
>>>      [   46]   .rela.altinstructions..text.vpmu_do_msr
>>>      [   47]   .altinstr_replacement..text.vpmu_do_msr
>>>
>>> But I don't make it that far.  Other files blow up with tons of:
>>> {standard input}:9098: Warning: dwarf line number information for
>>> .init.text ignored
>>> and
>>> {standard input}:50083: Error: leb128 operand is an undefined symbol:
>>> .LVU4040
>>>
>>> Line 9098 of apic.s is .loc below:
>>> """
>>>           .section        .init.text
>>>           .globl  setup_boot_APIC_clock
>>>           .hidden setup_boot_APIC_clock
>>>           .type   setup_boot_APIC_clock, @function
>>> setup_boot_APIC_clock:
>>> .LFB827:
>>>           .loc 1 1150 1 is_stmt 1 view -0
>>>           .cfi_startproc
>>>           pushq   %rbp
>>> """
>>>
>>> diff below.  Any ideas?
>>
>> I haven't looked into this in detail yet, but ...
>>
>>> --- a/xen/arch/x86/include/asm/alternative.h
>>> +++ b/xen/arch/x86/include/asm/alternative.h
>>> @@ -90,25 +90,31 @@ extern void alternative_instructions(void);
>>>    /* alternative assembly primitive: */
>>>    #define ALTERNATIVE(oldinstr, newinstr, feature)                      \
>>>            OLDINSTR_1(oldinstr, 1)                                       \
>>> -        ".pushsection .altinstructions, \"a\", @progbits\n"           \
>>> +        ".attach_to_group %%S\n"                                      \
>>> +        ".pushsection .altinstructions.%%S, \"a?\", @progbits\n"      \
>>
>> ... wouldn't you need another .attach_to_group here and ...
>>
>>>            ALTINSTR_ENTRY(feature, 1)                                    \
>>> -        ".section .discard, \"a\", @progbits\n"                       \
>>> +        ".popsection\n"                                               \
>>> +        ".pushsection .discard, \"a\", @progbits\n"                   \
>>>            ".byte " alt_total_len "\n" /* total_len <= 255 */            \
>>>            DISCARD_ENTRY(1)                                              \
>>> -        ".section .altinstr_replacement, \"ax\", @progbits\n"         \
>>> +        ".popsection\n"                                               \
>>> +        ".pushsection .altinstr_replacement.%%S, \"ax?\", @progbits\n"\
>>
>> ... here? Or alternatively use the 'G' section flag to the specify the group
>> name?
> 
> The '?' flag puts the new section in the previous group, so it doesn't 
> have to be specified.  I have used 'G' and %%S with similar results. 
> The example vpmu output above shows that is working.  I can't get to 
> linking with --gc-sections yes to see if %%S is no longer necessary with 
> proper groups.

Oh, sorry - I had managed to overlook the use of '?' above.

> The problem is "the current function" needs to be assigned to the same 
> group, and that is what I hoped to address with .attach_to_group.  From 
> what I can tell, the function-section is not assigned to a group without 
> .attach_to_group.
> 
>> As to debug info, I wonder whether playing with groups behind the back of the
>> compiler is going to work well. Iirc it groups sections itself, too. Did you
>> look at the generated assembly with this in mind?
> 
> The generated assembly differs only by the presence of .attach_to_group 
> for build vs. doesn't build.  Is the debug information expected to 
> differ according to groups?  (This is all new to me).  I have more to 
> look into, I figured I'd post what I have in case anyone had seen it before.

Hmm, looking at a random example, .debug_info (and other Dwarf sections) is
still monolithic with -ffunction-sections. I'm having a hard time seeing
how that would work nicely. And while I'm sure I saw gcc emit section
groups in certain cases (e.g. while building tools/), I can't observe it
doing so there, so that must also depend on something I haven't figured out
yet.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 09:26:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 09:26:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186700.1508123 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV4q1-0008QC-Ck; Mon, 15 Dec 2025 09:25:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186700.1508123; Mon, 15 Dec 2025 09:25:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV4q1-0008Q5-9r; Mon, 15 Dec 2025 09:25:53 +0000
Received: by outflank-mailman (input) for mailman id 1186700;
 Mon, 15 Dec 2025 09:25:52 +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 <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV4q0-0008Pz-C9
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 09:25:52 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0ba1fe7c-d998-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 10:25:50 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-477b198f4bcso25473215e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 01:25:50 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f7037casm63551785e9.15.2025.12.15.01.25.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 01:25:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ba1fe7c-d998-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765790750; x=1766395550; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YWk0EIbt82JQ1964f4M96lQ0hioHPVaulROOQ/otUgg=;
        b=CNy0yX+AIC/7pB9GaGceHaWOkJ0LdD/vTN1MqDuGy1f2VWjIONY/A8c3GSZK2EdAky
         Pw9/mfKt3bC3Ik0SV4BbTztl1DvRuo7Mw91qvQ3GrumQOQHn3enGQG4+140p0x6E9xeQ
         hl5Un7zg2pOrN/k1jcm7KmmkJuoPil2n0m/aGfUNWcqOviJx2xm1yfUOzM0ehkQCsEA0
         OjLztc3/e5K4CSRqV5igL4vgWJcQO1DwHFXpNkKq2uwgDedIK1xgPlr5iDMvv3B1P/wc
         TC3+V8UNJDzvLrklNkIx+IdkbWKNBZrEvuqSFX2atUjYi/EZ4S2fwvdN1Z4MSHDla7/u
         4U+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765790750; x=1766395550;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YWk0EIbt82JQ1964f4M96lQ0hioHPVaulROOQ/otUgg=;
        b=tSENDaeAXnu1//r8w1GAXIRWT6tug8eqhCV8X3hNpI/2ScqGDNfr3WZP+6Ac2V8pkv
         vOfG/08f+KVPA8uFgJbGfsNG4ZD/ztob385VWXorGM6vU2iRc1NjNBwXmAWgBfZVSAk5
         SnS+qtMVXc7/Y50/5y4izHUciM20gLjLB6OddTXAbLQ2imH0AYxZxkknRpe5lVJaqgtD
         jfRc8a6qHshi/SdJTHYqSlsBYar7Eduu85XP2O84d9IPOIsQPDPW8z5D5e0+V5Yn6HoJ
         HfzgSTB27f0+r+xNLb5WVTCL58d6jYcrkEv7duufJvxkbcmZhw3z0Z8wDnkukI0qmkSG
         iodw==
X-Forwarded-Encrypted: i=1; AJvYcCUpxRBIjUdUgq+Go1IchwM1See65JE4sQh2Y6teGHd5iuob9waCWE14wnw5oFBcHrR11eC0U0RAax8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzzKb1S27eX3MncygOU0P5GK6VyH1YWOUigxt7voUKVnHRvEKq1
	qV0dRDmTyMlnNmIhi7WpzUNXSY2y+8uK+22by0p6yYgzQM26Zy9cm1tji+3oVKmTnQ==
X-Gm-Gg: AY/fxX56klAg8Nv4IJR416GH5znEugHCgE3EBnb1YC2/WMAdIuL/y85QqObZntWIXe6
	MKWNTJU39aXjwWmw8nMS1YhD1CUj42iES+jEVD9AtAZp4Jrw3KHRSEXpd5eOGWB5kfeYI7Q6uBp
	03MIDqa8H5Vp9t9EYa9aaUKPyL9iFeKXArdsQtR6yJWwY50hCnSVJckX9ZfIe8s7f3+U+L9yi1W
	PuOVqvztSXRdvzMFgpuo+9ZvvemkZ4uOGI5MZeW3PSFk7fqiXYeq6YEl4Z1fS5fChTrKg595bHq
	XP4uvqkaPDzaYqJJBP+3flMaov8PpMBfLfU/ZuaaVg0EzhT+yhYORGPhL2+KvnEtcesycJDwr9r
	20GfwisGRc3elSjmn3u57TT71zomCRPysBHTxQ7tGycpq1zZ9iYaNm7xwMsnbF18sxTf5m8UhFP
	CPQW6pExJNZ4KbCks4kKuAqU4GuZfuL7+bzf/FF01gcXQ1d5M9f3L9ToPdcfF33TiBKtLCAa+0/
	D8=
X-Google-Smtp-Source: AGHT+IF1kY+et7A0eINI32lT7R4Cp9IIw7Bkrws9ZmETX4My62fVEix+Hc34r5GnRwJ8JNgORLUfkA==
X-Received: by 2002:a05:600c:6095:b0:471:9da:5252 with SMTP id 5b1f17b1804b1-47a8f90db57mr110265785e9.29.1765790749773;
        Mon, 15 Dec 2025 01:25:49 -0800 (PST)
Message-ID: <1d285717-e4ac-442e-b63b-14c99925418b@suse.com>
Date: Mon, 15 Dec 2025 10:25:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/shadow: Drop SHADOW_AUDIT_ENABLE indirection
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251212160153.2485230-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251212160153.2485230-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2025 17:01, Andrew Cooper wrote:
> Simply define shadow_audit_enable to be false for the !SHADOW_AUDIT case.
> 
> Change the variable to be a bool, and __read_mostly as it's only enabled by
> debugkey.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>

However, any tidying of shadow code reminds me that I still have a series
pending [1]. Iirc you did look at v1 and/or v2, but v3 has been sitting
largely unresponded to for two and a half years (one patch went in with
Roger's ack, and one other patch was ack-ed by him but apparently wants
other stuff to go in first). Can we please see about having that make some
progress as well?

Jan

[1] https://lists.xen.org/archives/html/xen-devel/2023-05/msg01140.html


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 09:33:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 09:33:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186714.1508134 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV4ww-00020M-5p; Mon, 15 Dec 2025 09:33:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186714.1508134; Mon, 15 Dec 2025 09:33:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV4ww-00020F-2u; Mon, 15 Dec 2025 09:33:02 +0000
Received: by outflank-mailman (input) for mailman id 1186714;
 Mon, 15 Dec 2025 09:33:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV4wv-000209-8F
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 09:33:01 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0b2dda51-d999-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 10:32:59 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4779ce2a624so36171725e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 01:32:59 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f3240fasm180321395e9.0.2025.12.15.01.32.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 01:32:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b2dda51-d999-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765791178; x=1766395978; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/E4FB7x/uTf8pnNGSlOKXsHWWuP5IaAQChJaRB6VYKA=;
        b=QmmFnswiDQewDJO8JSFT6xHy8g/LZrcPWezqv3oFaVgPkxucDKqXPm0K2X7UQONnbp
         RmGl+MLuuWN7mI5KKlnjxcvdUggc5Ub4Y5SXUR4FyDVWPDNddTwsJKnUFU26PHGm+BS3
         d1WigUbQ/DtRy5IFlp8pT2t1FkmL4LxWOq5F/g35jfNRm3fVIxxmKMWMQoNput2IR2XI
         Fm9LEQJBYy6fOHHgNBuR4gLv6TKPXydbHX46KIOYAhts9Y71AD5/i7nhJ4NhcRxGEkJ1
         8X5E/tSvv75BlDdpGlhNRPMkrE4My45SFcMlnzE22yP9GmzTbjsjLOHBRNngYU4POHs+
         01eg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765791178; x=1766395978;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/E4FB7x/uTf8pnNGSlOKXsHWWuP5IaAQChJaRB6VYKA=;
        b=gTYfWtkiiS4+mYQbpXHMlg7AV0ayTsx/WJ8BP32yTvsqoez03PgDmbI0/xYhayUVfR
         gjPR4GlIHcA5Y9NprcdCDnlVbqZ//2lHp3CSablLrBHcZa2ZdHuSMgo0gmWOvIvMoE8N
         /JZ12xfJwJyOhGT12UiSPgOxLbYoIEmIuykddxIdmb2PxlpdtRrV+LvVELtzO+ydPC+O
         KLJuEqsmTeYtxpFh9TL7JIQz2q3edPCwI4FBkpr3GOoz9Cf153FC++z80DM71GFMcQbe
         tprxJUSnpL4O6pauUN+NYswXdjwAuNzuR0xfSPQIqYJwR7Y9guWBCQ7gJ4jyDv1OHVS8
         52CA==
X-Forwarded-Encrypted: i=1; AJvYcCUWWOXTe4Dn0WA10zIFAZTAYJdk2JGdnPW8l5EX3FJnm+PsJ8NcBPdilZo3p+CKpcmxF5Xz8y17G0Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzpAqmKhktHnZpCBVp4UDdfny3659DsL+hyCeeOp0vU6SfYrodB
	1sPvTIiIASr2bEZGrnPqvIN/ctgnYyucD3cOW1OZqIeWErJe2EM6h1ReKsY6l9IP/Q==
X-Gm-Gg: AY/fxX7h+Em1z9XIJ/CEsIou/mkfYyWKzjgW7MzX0kNDEqahQYFnRPdwLi5ahgHVohl
	u29SB0RkKnTxXG5tKQRV1Ix4ZhZnhZmAV6hmYWfmJNcG5PrLPLMkjbob9RT2DeQZvKBPvVPZAN5
	C0qpR5vsB/9UffiviVwQbOZLtYmd/wiTlV5v99fJv//jiO+27gLGYXu0Yxwp2ueMjtcSFIBcK+Q
	xJUQ9PItw/lWlMdjUdUsHB/yLzfSN+rtv34rQY66g6HI8qiqHp9mGBlUpX7PvSOpXFBilGZuwMl
	+nr+uLNkgffcmtsKvUkCziE+3lwAnJN67sMK3P7Pzum7vHTUz1PDxOI14fGUYZQ05qU5TJ9KCJ6
	1ehxDWi64iKtz8GMzGfv6N0dUMUDeoAtKjkW0fUxzavkgyy/jjDGAMNOaiq+v2d2T+UDU/mW4Nn
	xUxGmhZ5gcLp5i1m+SJeoICLOLpkVqpGOPX7pnHpPk6wfRBZtHt5H/OA9VPR5PbpEVBqTby6BDo
	Hk=
X-Google-Smtp-Source: AGHT+IFkOW5eH4a+B0qNFOruyjS05RwtJuCaBXHcjZI8kHXUe/cM0K4QtOoGv/cXIu9LhU/hAWu74Q==
X-Received: by 2002:a05:600c:4751:b0:479:3a87:2090 with SMTP id 5b1f17b1804b1-47a8f916cfbmr93027855e9.37.1765791178376;
        Mon, 15 Dec 2025 01:32:58 -0800 (PST)
Message-ID: <fa50aa9f-2b65-41ef-a88e-a073c9902439@suse.com>
Date: Mon, 15 Dec 2025 10:33:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/shadow: Move GUEST_PTE_SIZE defines into types.h
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "consulting @ bugseng . com" <consulting@bugseng.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251212160615.2486055-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251212160615.2486055-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2025 17:06, Andrew Cooper wrote:
> GUEST_PTE_SIZE are only used by multi.c, but private.h gets used by code that
> doesn't have GUEST_PAGING_LEVELS defined.  Eclair notes that this is a
> violation of MISRA Rule 20.9.
> 
> Move it into types.h with the rest of the level-dependent logic lives.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Okay with me, yet I wonder if we shouldn't go a step further and simply drop
the constant, replacing uses of it by sizeof(guest_intpte_t).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 09:42:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 09:42:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186723.1508144 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV55Y-000407-W0; Mon, 15 Dec 2025 09:41:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186723.1508144; Mon, 15 Dec 2025 09:41:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV55Y-000400-SL; Mon, 15 Dec 2025 09:41:56 +0000
Received: by outflank-mailman (input) for mailman id 1186723;
 Mon, 15 Dec 2025 09:41:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV55X-0003zu-9c
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 09:41:55 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4963720e-d99a-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 10:41:53 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4779adb38d3so24559355e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 01:41:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f4bebf4sm64334105e9.8.2025.12.15.01.41.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 01:41:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4963720e-d99a-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765791712; x=1766396512; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HD9BBJU0e1MmcNRgmpeJcbkLD64hxkGHNzeKFm27JsE=;
        b=RtCbit1/7ZyqMG9+NqA9vSBb6ntHMYznkk5u9D99vYDY2lTh35NegmRMagshXNJRgD
         U0ijXe77G5iOkF9O47FQDhyVc9wFCzrA12tBEpOliRahH3LDCAcrRUv4G/Hm7G3x9j7k
         qDENHXM7GRQ2GXUpoLpNNw0urEaqvLZUYkjJQKTnClOTzLocA+lqK9i5gN7C+LOGxCgc
         AUv7oCr6FPFMdLZ9r7nOymZdR4mk6TLhNj1bbA3bS1EdLiluTDVUQonkfCnxRcAkwnFa
         r/Vn0isEitxaDjmmOmt22OhAgrS14nga8R18uQWJ5Mzm5riHmF87Bx9+vimjbYpoR/tm
         DD0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765791712; x=1766396512;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HD9BBJU0e1MmcNRgmpeJcbkLD64hxkGHNzeKFm27JsE=;
        b=RFqdk5m9lmATCGUTiAdAklAnxDw0fdQ3VxZ5/QTOPjC/1mzYVhCjCQZlE59W2ra1Lc
         E4GJWBoT1fC2h8kVi159WTxY5yN5O1ElXk9p+zB1eh8VHOATCSykxu8/mI4JLZ60vNTx
         fYFWK/1r2ZT/EKBm5nMohAwYCwCT2yIaue4Q2lKNRsbGJDdtYQhXBMi5D4CTwAUNBH4X
         6vyMEZHhfssp5pnGH0bwm30hCfqFb50vjiO4kEC5/l9q1O1drNUKkikOvbRHDgK+ROOH
         2RGVcZ0l8o4M5zZhxzEKqyfgps1nkrd0aO30aVpCy22K7O2lLBzob7c0Jbvn00dRWKxe
         5ibg==
X-Forwarded-Encrypted: i=1; AJvYcCXSDaVoYz5oxBVR2Ja9v+Sbbzwum6BobZkHcwfEf+WQkvKsFJqpiiU8DAlMTpFWSsC7ckFjBZ7hRnk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzxXK3RlCOd45bU593o53Ry5S7EaR4tWY6v7ARoNa5crKFT4HOW
	iVYUq2/EgqxRm+wRzn3GS+BEc3PZNwxlto7fTn0qKu3QUwifUb/3ra22L4DxIWWFpg==
X-Gm-Gg: AY/fxX7KH8uBZCMeGrAT7/G5oMb69ppQveyeCKw3rsYvILNaZfAKpJq+bAsYs+9RgBR
	bn+xF2At9JrvqvlesgKRFAyQoUTwQbDi3P/r2/UtwtyALR/4ArnqnaIChl6HSqjEGWEWy1Aw6C3
	C34mP1bnTglxCuRMA74LM26Mupx+61S09mXOGvKkhrcpF3bkVp7xNehnEBE304/dSbdhcE6k12R
	fw1R/tXm6hH9IycPg7lHjJwYzLXqzajJuGysFtwN1TRppx6LmlzUMigrqfPEBoU9rGjmt/yyBZk
	l5dAaQkGfSQ13hPTk3n2vxLnwCerriFt1A+8ONVUPZndKCDN8Dn9ZTM7ifCSOT9zEmqbJzK5HPp
	KQbXnuECxcFcEDBc0iW6zUPyk8cLPBqW+Swy16d6yp859/+Cs89WSpJxWOFkhGECHoP7wPmbSME
	KIufbNfdGJiQPUaaJpwmDNknsFGyCI3PmAQAaT1myDZjhKcId/s3d02GhefpDWQEbaoL6+Sl586
	BA=
X-Google-Smtp-Source: AGHT+IFc9/2z0Ls5hD05ZsromCvWsGeCSIMIITkL3humZFikzdcshM0+ed+f35gs3VvK33y4cLsfkg==
X-Received: by 2002:a05:600c:524c:b0:477:73cc:82c2 with SMTP id 5b1f17b1804b1-47a8f8c4334mr103126545e9.9.1765791712297;
        Mon, 15 Dec 2025 01:41:52 -0800 (PST)
Message-ID: <7beb1c09-dcbf-4cc8-ae90-cd9151ca97e1@suse.com>
Date: Mon, 15 Dec 2025 10:41:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Undefined behavior in libxenvchan
To: Demi Marie Obenour <demiobenour@gmail.com>
References: <e06eb432-289b-447a-8c3d-43da4705b4e9@gmail.com>
 <e0c8ffb0-a916-4c78-bd5f-010b9a7a8bc3@citrix.com>
 <bdf22b1a-49b5-43d4-8dfc-178c0076c917@gmail.com>
Content-Language: en-US
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen developer discussion <xen-devel@lists.xenproject.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <bdf22b1a-49b5-43d4-8dfc-178c0076c917@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.12.2025 00:08, Demi Marie Obenour wrote:
> On 12/14/25 17:50, Andrew Cooper wrote:
>> On 14/12/2025 7:09 pm, Demi Marie Obenour wrote:
>>> I noticed that libxenvchan has undefined behavior: it passes pointers
>>> to guest memory to memcpy() even though they can be concurrently
>>> changed.
>>>
>>> Would it make sense to reuse some of Xen's copy_from_guest() code
>>> instead?  There might be a licensing problem (GPL vs LGPL), though.
>>> I think the only approach that isn't UB and has decent performance
>>> is to do the whole copy in assembly.
>>
>> memcpy() is well defined.
> 
> Rich Felker wrote otherwise on the musl mailing list.  Specifically,
> it is undefined behavior if the data is changed while memcpy() is
> accessing it, either for reading or for writing.

Aren't you talking about undefined-ness beyond what the C spec uses the
term for? Of course it is always unpredictable what the result of a
function will be when you fiddle with its source behind its back. But
that's not of concern as far as safety is concerned (while the
correctness issue that results is solely a problem for the party doing
the undue modifications).

What we need to guarantee is that whatever copy is made of whatever
in-flight data, any sanity and consistency checking as well as subsequent
use would take only the one, exact same copy of source data. Which, as
Andrew said, may require some extra barriers, while using memcpy() for
the mechanical copying ought to be okay.

Jan

>> The problem is the potential for creating TOCTOU races if suitable
>> barriers aren't used, due to the compiler being able to optimise through
>> memcpy().
> 
> The concern here is about races in memcpy() itself.
> 
>> Xen's copy to/from guest are not appropriate in userspace.  They're
>> guarding against pagefaults and address ranges not belonging to the
>> target context.
>>
>> If more compiler/smp barriers are needed, then that's the appropriate fix.
> 
> Rich Felker suggested to use an open-coded memcpy() that used volatile
> accesses.



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 09:46:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 09:46:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186732.1508154 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV59d-0004h4-FT; Mon, 15 Dec 2025 09:46:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186732.1508154; Mon, 15 Dec 2025 09:46:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV59d-0004gx-CD; Mon, 15 Dec 2025 09:46:09 +0000
Received: by outflank-mailman (input) for mailman id 1186732;
 Mon, 15 Dec 2025 09:46:08 +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 <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV59c-0004gm-23
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 09:46:08 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e0b7955c-d99a-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 10:46:06 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-42fbc305552so1505692f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 01:46:06 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-430f280cf05sm13848537f8f.7.2025.12.15.01.46.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 01:46:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e0b7955c-d99a-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765791966; x=1766396766; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kDG5BCQ/JRgGD6HuKS9/Op4F9K+3rC/MJt9KqbnAoKc=;
        b=f299eAvF3x+b8cRs0DkTehCov8BjrATpIQr85jj7DjZIjRM3aFA3rzmzf6VSiRVlLS
         M3XXnulkwyyk4d2KoTKf+rEIilXLN592dtd9ZoJnS/+99b+q6EPHXZ2aHFTGNMPITIb+
         LVS7ncjFWEZiuhjpOQsT5P1wzCzkXI4AgIj/xsi7ewlTD9R9B2EkP75nOzekQfPJ07Il
         1cdQlzOl4VYDRHMMXBVqC8Y9SrhEC3GgyCt/PfM4TCjl1UMvwG2t+xPdX4Y1NJiTU+5u
         uPlzEE9k5hjilZ4x49vajFM2DtIck3G7D7h5WcfIFCF3PbTvdPU2LsfXqMen/CdtUw9B
         yoFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765791966; x=1766396766;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kDG5BCQ/JRgGD6HuKS9/Op4F9K+3rC/MJt9KqbnAoKc=;
        b=CNH0iS+1FHnfB5LU1yY6JfFzJ3WfMXInn0DFdOcF/a4xDHPb97DqTmSvdXTd7luCwX
         rL3XtC4xaHmD7ex9jWTsXIU+w983wDKbHKnqJPwtkGkw4ws4fDYzizZQ2PYwM+UgMLzI
         Nbkm6dgxahK6FrY/0iWovx1zYW0B7ZsE9Hlq9tbhhv6dkwbUcA+FXVmRvv2HPSFuM1/M
         asPSlQdl9qHjDNyxoRfjfbHYAOcmjBfKPYecx5UmQfI8ikCu59i3tzorcAwLs0IKMlDE
         7W+A1Sajjlynep6nOOKipg7K6ulvoL+Y7k57gMzDLwzdtLz5GRdyPfBnD6jos67hwulQ
         NleQ==
X-Forwarded-Encrypted: i=1; AJvYcCVkapYy1P9854hE3paIRRstAjf0Du2HCidDZWlCQVhHeErcW+NsHgbawp9aYpe9+1gWx0v6IuHKKSs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxKg8Y0EjPQt5x2OIeA5XUiDRkGAm6a++UU6Mi14gzstkvd5w8w
	EQcJuMpLS6WkA2FAgRA8OH1XFX3VVAHiaeyd86Pvqs0ak7Zr/YYZ/ZCKBfahDRbPow==
X-Gm-Gg: AY/fxX4sIvP7MAbyQIZ1Po09fWoISsTXw+NmAmLPycMpBxEENSUwRnvMgQDvTbAN5eU
	VfAVPfZpe/6he/meGDPaQPrjs9X0SmGq59NYLxSbnS9/I8+fOscPnz2UoUMDYtAmfni1sNf1iZt
	9Nc3ZRNtsO5CdKKKQoNcmPXCW+vrPrktbPYv0/yNBdaUJ49VjP01AF3i26QHIeQXteOgqd+/pEZ
	a5y5KAs3fv779Y7aBPhTeUzD1JVvnobL14sJqMPyXoPpow6VHI3qDrjpHTa2X4R9K4EDWO2I6Nn
	CTuizzhu+1qX6xnmhRoCmm1BHEn8MR2tds0rslZ8LdZi6lHi0RsDXDOKOZ/x0CVZ3PVwsoRH/JM
	gsCc5v5OPcZSuPTcMg2vwdT6RWPQI+9lgBPqiyhi7M1LahG2YZZqREOvWIbp8Davn2HlI2mERBZ
	LlE+qevyONxgwFTuLz50fxJ7/drPQN3Q/4N9lTh72VHzxT0YTDtNAYG93LEu/6EdDZSO2VARmfN
	i4=
X-Google-Smtp-Source: AGHT+IGkkmXl7OUDHfby41M3u0pPpwH4QdM18eq26Cf6ZjN4eW14Q9bij+W9Mx9bXQ4NVCeh5f8qXA==
X-Received: by 2002:a05:6000:240a:b0:430:f494:6a9c with SMTP id ffacd0b85a97d-430f4946d3amr5295965f8f.17.1765791966065;
        Mon, 15 Dec 2025 01:46:06 -0800 (PST)
Message-ID: <1646c1ef-ec42-4148-94e1-24b8874a1cfc@suse.com>
Date: Mon, 15 Dec 2025 10:46:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/x86: Pass TPM ACPI table to PVH dom0
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20251212222949.626539-1-jason.andryuk@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251212222949.626539-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2025 23:29, Jason Andryuk wrote:
> Pass the TPM2 ACPI table so that the device can be found by a PVH dom0.
> 
> Otherwise dom0 shows:
> tpm_tis MSFT0101:00: [Firmware Bug]: failed to get TPM2 ACPI table
> tpm_tis MSFT0101:00: probe with driver tpm_tis failed with error -22
> 
> TCPA is "Trusted Computing Platform Alliance table", but it is really
> the table for a TPM 1.2.  Use that as the comment as it's more
> identifiable for readers.

Not sure about this particular aspect - this and ...

> --- a/xen/include/acpi/actbl3.h
> +++ b/xen/include/acpi/actbl3.h
> @@ -78,8 +78,10 @@
>  #define ACPI_SIG_CSRT           "CSRT"	/* Core System Resources Table */
>  #define ACPI_SIG_MATR           "MATR"	/* Memory Address Translation Table */
>  #define ACPI_SIG_MSDM           "MSDM"	/* Microsoft Data Management Table */
> -#define ACPI_SIG_WPBT           "WPBT"	/* Windows Platform Binary Table */
> +#define ACPI_SIG_TCPA           "TCPA"	/* TPM 1.2 Table */
> +#define ACPI_SIG_TPM2           "TPM2"	/* TPM 2.0 Table */

... the TPM2 comment bring us out of sync with what Linux has there.

Jan

>  #define ACPI_SIG_VFCT           "VFCT"	/* AMD Video BIOS */
> +#define ACPI_SIG_WPBT           "WPBT"	/* Windows Platform Binary Table */
>  
>  /*
>   * All tables must be byte-packed to match the ACPI specification, since



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 10:15:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 10:15:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186742.1508169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV5c1-000137-N6; Mon, 15 Dec 2025 10:15:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186742.1508169; Mon, 15 Dec 2025 10:15:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV5c1-000130-IS; Mon, 15 Dec 2025 10:15:29 +0000
Received: by outflank-mailman (input) for mailman id 1186742;
 Mon, 15 Dec 2025 10:15:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV5c0-00012u-Mg
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 10:15:28 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f973e9b9-d99e-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 11:15:26 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-430f57cd471so637420f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 02:15:26 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-430f280cf05sm13999882f8f.7.2025.12.15.02.15.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 02:15:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f973e9b9-d99e-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765793726; x=1766398526; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pQjvX/81CH6ZZnSTvWZRPbFFMm1X0PFLak+jNLSdFyY=;
        b=Y8R2PNoDhPmH3E+hTcqOz9i+tCw4UYsul6rcyOuv/q/vOLzIPLkwa3Wtln6z4af3G7
         QkJMgCiXh7aF9tdnkFimueUcAlOBxS7Jq41OtMUetpA+n/88mbycd88zv/EFo1YP/lLx
         /xLe/vkVwPgiJEXtUqrQRnv5HZf6ckR0ixbjC2YUoVVQ16AqdYLHOVHaXVygzDGNKlEe
         lWNTlql1wqN76cGVbqBs7v2uT6fusw4lpm8QE47GatbV88on1AMsjoW5a9/03E+jntc5
         044dntiD5OxPWNAS+sVFZg2Qqx6otk+Ko2kyZ7UgJeaiuwhmzjCekalm3/jPqVQ9kb+4
         xU4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765793726; x=1766398526;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pQjvX/81CH6ZZnSTvWZRPbFFMm1X0PFLak+jNLSdFyY=;
        b=rlh5ZqRRCxQ60BCMgZbdlVx+4wwyBrWI1YAZtVCT+WLpsRgfABTfk4ZdboYBLGh6KU
         Qs5wCEQGCNXYzPHlNt3aTTZSqvf6MqFsk6197NXlurwXzDF2nd4ah+7fOq1XCTziJ3p+
         AQ8mBd7naf6aU6OwKxP52EthMLEAf0R+11k19QTPAto8a0hkqUPvchji6tbcgSfkkrq3
         XJkIRN9RCzZRTtT9DOy4IYlCzhBjpfXwrShXrjtx4qK31XrQ48V/nOHHKBqXAKn7kuzd
         tB6YhDBQsNS6Jy7wQuSTKLxukAxt6hwi5doCeH+2pIZT6SDUPpDBM7AReGHNQQeeJOsN
         wyrA==
X-Forwarded-Encrypted: i=1; AJvYcCWLU3clJj2/6gEsrAS3eJfCc0W6G97pBBRspRDuqFrf6hMK1WcwKyWrceg6dSLvyvZtyDwXTWNoxPQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyAhBiP6g/a1dS2SEvY/JsPsj3Jb+DxU9MKPHC7wuqnGeNncSX0
	gMR85GvqgY6p0MjnBAhqyjucY7Pr6k4MHJaTaciDEKSf2JwKB5XFN5YDZRzd1FFN2g==
X-Gm-Gg: AY/fxX6ZRdMqa+4yJFJxDM7EZn0PCeESCRQd6toEVP4SyLSLZG4DAVZwLIHA7u4l6nb
	S6amiRTBt2IJ9Il2bKxgKHKcYzXUwjeUeVQ1DDPOuWry94mfHxPCV4xZuln1Vq5j5jaHWqgxNJ+
	lFhkcrQx/cf9knvPXN8yXxsM2NaW/lw27PzZwkiZqSZKG9T4rD0WBEzePRQhs3R5DXV2a7nf22/
	LfRb0snfjWQ4FlVwgOFSpTu7i4BLeFrhJ/g63lM/DtHxOubkWG7XtaLncPheqOQY2g7PnN2YMTe
	bIG8o4GyoOy5lYpsRebfMh1tVjop1Sube2HzBcTndevoJtJR8//aN6/x0RVJdqTac/FyQaHfd7Y
	t0NuoqqgkQMpLH1lSfqgbRKUgi8vEMhBn/p4dejHcolDvHPHMJlVVoNaugdT9BZVN9wUmUmqZw8
	6r1ZXFXpQYd6wyU/FyhUWW13UHKgPJguYtEkKBHDTbaeT2SclE0lCCAsq2+/vvZ4uqeD6+G3qJx
	WQ=
X-Google-Smtp-Source: AGHT+IHXJsC1EWtpqMaqNYFrKONJpF3BkaEpTZKV0YT+tlJDGaA2LeTm8reGVNJyjRQXxFx+E4WBYw==
X-Received: by 2002:a05:6000:2207:b0:430:f255:14a2 with SMTP id ffacd0b85a97d-430f255183fmr7043939f8f.54.1765793725629;
        Mon, 15 Dec 2025 02:15:25 -0800 (PST)
Message-ID: <73cbf642-aa89-49a9-a3e4-61ed08c9bc99@suse.com>
Date: Mon, 15 Dec 2025 11:15:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/5] x86: More misc MISRA fixes
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "consulting @ bugseng . com" <consulting@bugseng.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251212222032.2640580-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251212222032.2640580-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2025 23:20, Andrew Cooper wrote:
> Andrew Cooper (5):
>   x86/pv: Address MISRA C:2012 Rule 4.1
>   x86/pv: Change type of do_update_descriptor()'s desc parameter
>   x86: Address MIRSA R8.3 (declaration/definition mismatch) issues
>   x86: Address MIRSA R8.4 (declaration visibility) issues

Acked-by: Jan Beulich <jbeulich@suse.com>
(with the title typos taken care of, preferably)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 10:23:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 10:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186758.1508182 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV5ja-0002qw-Iq; Mon, 15 Dec 2025 10:23:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186758.1508182; Mon, 15 Dec 2025 10:23:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV5ja-0002qp-Fr; Mon, 15 Dec 2025 10:23:18 +0000
Received: by outflank-mailman (input) for mailman id 1186758;
 Mon, 15 Dec 2025 10:23:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV5jZ-0002qj-H1
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 10:23:17 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11003f70-d9a0-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 11:23:15 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-47a95efd2ceso14226025e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 02:23:15 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f8d9c6fsm180249775e9.11.2025.12.15.02.23.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 02:23:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11003f70-d9a0-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765794195; x=1766398995; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jzipzRjZMJr0h/zZDIKRjPbFO+AxhNe4a0hJfCy0BxQ=;
        b=POT8J+cWMM3VtfphdstAr3y6bDW9TcMDsAvz/slmd+kwHR13b8pKUbcXko8poOJewL
         iYtRgNxu3kcBqQ1XdiP/KATYvrUYeiJQ6GlxZlJg5kvWin7Ex18ooA+3Yex54W7w8I9g
         1SUWspDh6niWzo1YvgDC0AMBEqeTqQGUe2zfwOV8vYtZkXXaBUG9QDQwez8+bEDyvtb5
         IUxo45GNZwY21USaru8GImIc9Jk3dTmoDd+St780ccDRdMxPQ2fZ19ft/jEzEfWOvwdb
         NLKtxXWxlJJtUHiq4m++YaWuD0IeUKxFlF+2C36pSD0yYtBq3aO9jwb/NJ0l1LubWPpr
         OOyA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765794195; x=1766398995;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jzipzRjZMJr0h/zZDIKRjPbFO+AxhNe4a0hJfCy0BxQ=;
        b=ftzXCHoeu7ssY9D8ZmxsCAfHlj9O8kB0vj2Dg/Etd4BMQzRmA8QGcm+QeQKVEuOWuG
         Xal/IPldO2/fSpbdg1ptrYsSXmMSa/Kn0DDob+dz8OBMvDigVhyC+LD3sszZgT/tmXsB
         fe1ej15ZhiTzpdemi4mGDVcHt+s2ZPQFI0PRUR3c541qAPabLLRNe4/UuiKmmqt6/KBV
         WbNZrmZ3o895PpJj1+L3eVH4U9yw374yzL2TYVqQ0glP61tbB7Ebc3hl8me5LH1ASExf
         f3soM7vYCX0/hjpZ+aZyp2wdNF3VvK/70v+cex8fI/aWXJVCONtzrpynXfAlkp3euHBV
         hMLg==
X-Forwarded-Encrypted: i=1; AJvYcCV6glEvV/mFJL1VTxudEC6g6MoiOF7N14Dp5LVYSS4ny1ikt4xNSxQzQV22rmM4orSNCYKPZjvkDhU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYxZJ7LXRQKp1zV2R84JfwFbbikj10UxzkqvjwghlanDyl1g5a
	la3NJeE01mC2VAQ+vGkXqMD4VNtP62xJdFAQ9cH3sGy7hP1hPnrGBEh8aSg50SILcA==
X-Gm-Gg: AY/fxX4UyWKO+mrnR8PU6lfLwIBztXUO5SvAaTmPHqB0hZn+rR9Ngh9qdXjD/g1PxaP
	/eoF+PosIJg6FLHAxbK+DlS1O0J10+SSdiFGZWuU8AFjn/pwyCY4PkhyGv3h64T1iLhuyq+zZA5
	Q0MB1LCHxy2hI0MvD6QUIQDYw689P/o5NT4pgPS2pulqQC+IutMsD2AMptTQYCR+xAXQguy3b/E
	cR8JwdFVgL4vx8zby4ZfDxqCl64cIcwNbgANcOugzJpZnx+DLjGAgc66iNSB7rgxkpb0Azketd2
	wVbNwYzci8xW3zdQTwYfuv1876jyywrd0onEyDGWUUKgSZIdspFvZ9kADN7x2a7Vpx86u8EqEIO
	dRgawCLB9Yj287SRTvIf/OQH/SyOijcq+ejr/ECqSv9gDksfy/eYJwZFI2hlEaOs1BKbezWsSLs
	BlGaor+40aDHg4chszRmt+/VTVGiNc5+gHUoJvHTT+rho3cw14eDcicM0I3Spo2kO7yPc/k7FRk
	a1WforIyqNbsQ==
X-Google-Smtp-Source: AGHT+IH1jBA7Jaw5eL5OdcSjLKGBMpTwpTHDMIqIJVMvGY3XR8404EHf2nlkFUbjf+r3t+VT9N4E1g==
X-Received: by 2002:a05:600d:1a:b0:47a:9569:7872 with SMTP id 5b1f17b1804b1-47a95697b90mr65697455e9.36.1765794194549;
        Mon, 15 Dec 2025 02:23:14 -0800 (PST)
Message-ID: <99ac8c7d-92af-4544-b55b-f128f40867a2@suse.com>
Date: Mon, 15 Dec 2025 11:23:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/5] x86/svm: Untangle the remaining global svm/ headers
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251212190020.2570076-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251212190020.2570076-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2025 20:00, Andrew Cooper wrote:
> This turned out to be a little easier than I was expecting.
> 
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2212088192
> 
> Andrew Cooper (5):
>   x86/svm: Move asm/hvm/svm/svm.h up one directory
>   x86/svm: Move svm_intercept_msr() into svm.h
>   x86/svm: Introduce svm-types.h
>   x86/svm: Merge nestedsvm.h into svm-types.h
>   x86/svm: Merge vmcb.h into svm-types.h

Acked-by: Jan Beulich <jbeulich@suse.com>
ideally with svm/svm-types.h in patch 3's description corrected to hvm/svm-types.h.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 10:40:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 10:40:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186767.1508191 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV5zV-0004hB-Sz; Mon, 15 Dec 2025 10:39:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186767.1508191; Mon, 15 Dec 2025 10:39:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV5zV-0004h4-QE; Mon, 15 Dec 2025 10:39:45 +0000
Received: by outflank-mailman (input) for mailman id 1186767;
 Mon, 15 Dec 2025 10:39:44 +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
 <SRS0=szLt=6V=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vV5zU-0004gy-Bb
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 10:39:44 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5d660169-d9a2-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 11:39:42 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-b79e7112398so675608766b.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 02:39:42 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64982040d14sm13187434a12.5.2025.12.15.02.39.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 02:39:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5d660169-d9a2-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765795182; x=1766399982; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=DOfKKSrtAb6cFI3nSoQHjwPgBGIIiKulvgsgTHtlZ/U=;
        b=dSFoAGHQR6TeSCbImy7SLosXwJBOogJE0qaHAH3ZAvkLdZqeOon1/zpW2ruT6ee66f
         t4OLwCIK3uKcSlF4T+MVtwWZVrHrizI2rWUtLB0Iqk+5fZ436XHq/cLCpM8LQvblPdOX
         7f5jIMkLDR0gAe6s8mqFdOu1K+Eg+LNilMA/uHIM4TpM3j5Ib+ZajwDN04JkELPC02wn
         cMRoHbXUi3s1sJt+WpCE39D75dc2ectyrU7bx6J/k0FYKvBICUvfscW+XcwyHwefzcDv
         sqbTBr/qMTgNBT5U0INDtjiSsKswXzVwUOeNYhiWr4jo4ngV58CvE7HztuqZJpqQSrtv
         /mDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765795182; x=1766399982;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=DOfKKSrtAb6cFI3nSoQHjwPgBGIIiKulvgsgTHtlZ/U=;
        b=r71PU53qL5KKoERBlSsgwx/JK4k9r0Hqzx0ZzyTJWUuCC2fm99HV8ZQapk5lvPSz8G
         x1qmSGUyMd1MWdoUY9ky2EBfDICyS/5yhyVAcl9wbuckRLYroHgROJROsOX88GpyaCom
         bOqcrEtuupbiP343fyJYlenZwss5N2kNOYuYfGHFoNJ7bQt2Uz4oO61djoZl3s/KGjxY
         EwnpCwxk1qhG4zjlN/K95eZuU4g5C1SbWOcvr9mjBHBU26UtlvgTpQWJGrUOfjgRz9py
         P7K3ExK91xMCDsh14F27fQlUPQS59+Ip9vQVCndqZfZclU7iFpTu/HBgbTHXB1hgCb+e
         MGRQ==
X-Forwarded-Encrypted: i=1; AJvYcCWO2xr9yrddZyA0zleW/ud22V32RgESxenkUovICGLfHlUQBFRYAWrWs4Vfmb1HqUy23w/4QvvcUZ8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzmfbuv8zjI1cRlpgRkvNArC6T+rCwlTpiOOe7Ha6VxBoML2CQW
	j2eOsN/mgzv3PdoWO3C9YX75W4gBBKdYjpmiA6bcPBqf6kPX6j4SP5OZ
X-Gm-Gg: AY/fxX4DC9s1ffazPDWCgrgdEtuWvPfyyLP3V9Y+mcJuBB28eSXGHXAvdweKtbZehTo
	+A+FMmHASuaEwtX3+FmwXBPKdanpDC9+B3vj/AFuEycbjzGzFFfgQ9KadoUIGDpebExEkLu71uL
	T2rTS/qbBBGD7C5L3XOPhoWh4UWTUmtanGx1YRhTKsYdHIRmHRURL3R3VSpp1WYaE4tYlfHMjvc
	u8glh1UB7+uHttbIEQ0h7xXn0W2b4BzUrwpvJmyLQFo07N4nLHVZPgk2Ihje8v75SecN5ycqJii
	zpzmKQaVncU/YDcigqm9qggiaPa2dpi3lfG8Gpy9zaFB9/NFIOE7CsPLlBYz/amDcc/pOzu4KsX
	QbM/pfcOcJdk+itO26vpjnaivxehUgC/Ex5Mq8TeXyzY+hfXJIHN2n7ZNWsMjld/JMcRaVjZAKC
	AI/+Zz7UmoVnRRK7CymckQRxsTR+l+HNyuWZhS0qFFLxVHlHPKezQ+YY7eiCAR
X-Google-Smtp-Source: AGHT+IG5ns1IG1SNSU8dw7wognIV4X9ExgF6x/eT1TeQJceAvXLLdVQVUupWbY5KrfkrOO5/ouJbfQ==
X-Received: by 2002:a17:907:7e97:b0:b74:983b:4056 with SMTP id a640c23a62f3a-b7d235c8495mr1011544866b.8.1765795181479;
        Mon, 15 Dec 2025 02:39:41 -0800 (PST)
Message-ID: <4162d1b6-ea66-4a90-95fe-11d0f7c1897f@gmail.com>
Date: Mon, 15 Dec 2025 11:39:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/3] xen/riscv: add RISC-V virtual SBI base extension
 support for guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1764582112.git.oleksii.kurochko@gmail.com>
 <d17dcac47752681eed6703360389dd542433ab3e.1764582112.git.oleksii.kurochko@gmail.com>
 <275721bc-07c2-4f69-93c2-e6d3022fee4f@suse.com>
 <5154e129-675b-4027-b97f-257559c7ea50@gmail.com>
 <3cf7d382-3a05-401b-8483-41aa436079c5@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <3cf7d382-3a05-401b-8483-41aa436079c5@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/15/25 9:20 AM, Jan Beulich wrote:
> On 12.12.2025 16:25, Oleksii Kurochko wrote:
>> On 12/8/25 4:15 PM, Jan Beulich wrote:
>>> On 01.12.2025 11:24, Oleksii Kurochko wrote:
>>>> --- /dev/null
>>>> +++ b/xen/arch/riscv/vsbi/vsbi-base-extension.c
>>>> @@ -0,0 +1,52 @@
>>>> +
>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>>> +
>>>> +#include <xen/lib.h>
>>>> +#include <xen/sched.h>
>>>> +
>>>> +#include <asm/processor.h>
>>>> +#include <asm/sbi.h>
>>>> +#include <asm/vsbi.h>
>>>> +
>>>> +extern unsigned long __ro_after_init sbi_spec_version;
>>>> +extern long __ro_after_init sbi_fw_id;
>>>> +extern long __ro_after_init sbi_fw_version;
>>>> +
>>>> +static int vsbi_base_ecall_handler(struct vcpu *vcpu, unsigned long eid,
>>>> +                                   unsigned long fid,
>>>> +                                   struct cpu_user_regs *regs)
>>>> +{
>>>> +    int ret = 0;
>>>> +    struct sbiret sbi_ret;
>>>> +
>>>> +    switch ( fid ) {
>>>> +    case SBI_EXT_BASE_GET_SPEC_VERSION:
>>>> +        regs->a1 = sbi_spec_version;
>>> Wouldn't this need to be the minimum of what firmware supports and what Xen
>>> supports / knows about? (Assuming backward compatibility among the spec
>>> versions of course.)
>> The base extension is mandatory (according to the spec), and based on some Linux
>> commits from contributors to the OpenSBI spec, it is also intended to allow
>> backward compatibility and probing of future extensions (although I was not able
>> to find this explicitly stated in the spec).
>>
>> However, none of this guarantees that everything else is backward compatible.
>> For example, the entire v0.1 SBI has been moved to the legacy extension, which
>> is now an optional extension. This is technically a backwards-incompatible
>> change because the legacy extension is optional, and v0.1 of the SBI does not
>> allow probing.
>>
>> Regarding what should be written to|regs->a1|, I think you are right: it should
>> be the minimum of what the firmware provides and what Xen supports. Otherwise,
>> if|sbi_spec_version| is set to 2.0 and we return 2.0 to the guest, the guest might
>> try to probe the DBGN (which Xen does not currently support) extension and use
>> it instead of the legacy extension for the early console.
>>
>>
>>>> +        break;
>>>> +    case SBI_EXT_BASE_GET_IMP_ID:
>>>> +        regs->a1 = sbi_fw_id;
>>>> +        break;
>>>> +    case SBI_EXT_BASE_GET_IMP_VERSION:
>>>> +        regs->a1 = sbi_fw_version;
>>> Same concern here, but see also below.
>> For SBI_EXT_BASE_GET_IMP_ID, I think we want to return XEN id which is according
>> to OpenSBI spec is 7.
>>
>> Something similar for SBI_EXT_BASE_GET_IMP_VERSION, maybe we want to return Xen
>> version code (XEN_FULLVERSION).
>>
>>>> +        break;
>>>> +    case SBI_EXT_BASE_GET_MVENDORID:
>>>> +    case SBI_EXT_BASE_GET_MARCHID:
>>>> +    case SBI_EXT_BASE_GET_MIMPID:
>>>> +        sbi_ret = sbi_ecall(SBI_EXT_BASE, fid, 0, 0, 0, 0, 0, 0);
>>> This may be okay to do for the hardware domain, but hardly for DomU-s.
>> I don’t see an issue with returning the vendor, microarchitecture, and
>> processor ID. This is essentially what other hypervisors do.
>>
>> What would be better to return? Returning 0 could be an option, and according
>> to the RISC-V spec:
>>     This register must be readable in any implementation, but a value of 0 can
>>     be returned to indicate the field is not implemented.
>>
>> So returning 0 would simply indicate that the field is not provided for case
>> of DomUs, and provide it for hardware domain.
>>
>> Would it be better?
>>
>>> Same concern for SBI_EXT_BASE_GET_IMP_ID.
>>>
>>>> +        ret = sbi_ret.error;
>>>> +        regs->a1 = sbi_ret.value;
>>>> +        break;
>>>> +    case SBI_EXT_BASE_PROBE_EXT:
>>>> +        regs->a1 = vsbi_find_extension(regs->a0) ? 1 : 0;
>>> At least for hwdom doesn't this also need combining virtual and
>>> underlying physical lookup, if for some extensions you may pass the
>>> requests down to the physical one (as done above)?
>> I think I understand your intention, but I am not 100% sure that we need to
>> perform a physical lookup. There may be implementation-specific cases where
>> a call is emulated by the hypervisor instead of being passthroughed to
>> OpenSBI.
>> In other words, it could be the case that an extension is fully emulated
>> without requiring support for the corresponding physical extension.
> I don't have sufficient RISC-V knowledge to further comment on this. My main
> concern is that we have to present (a) a consistent picture to both hwdom
> and DomU-s while (b) presenting a properly virtualized view to DomU-s (i.e.
> abstracting away hardware implementation details). In particular for DomU-s
> you will already now need to think of what happens if a guest is migrated:
> Data returned from vSBI probably shouldn't change across migration, or else
> you may confuse the guest.

Okay, now I see more sense in applying your suggestions.

I’ve changed the implementation for all EIDs except|SBI_*_PROBE_EXT| for now.
It still seems unnecessary to perform a physical lookup. In particular, doing a
physical lookup for hwdom in the following way:
     case SBI_EXT_BASE_PROBE_EXT:
         regs.a1 = vsbi_find_extension(regs->a0) ? 1 : 0;

         if ( regs->a1 && is_hardware_domain(vcpu->domain) )
         {
             sbi_ret = sbi_ecall(SBI_EXT_BASE,
                                 SBI_EXT_BASE_PROBE_EXT,
                                 regs->a0, 0, 0, 0, 0, 0);
             regs->a1 = !sbi_ret.error && sbi_ret.value;
         }

         break;

would only result in extra SBI ecall traps into Xen. Eventually, this would lead
to adding support for a new|VSBI_EXT(...)|, which, in the hwdom case, would simply
forward the call to SBI. Once such a|VSBI_EXT()| is provided,|vsbi_find_extension() |would handle everything, and there would be no need for the|is_hardware_domain() |check anymore.

In other words, this approach might help identify which extensions would be useful
to implement in Xen for hwdom. However, I don’t see much value in this kind of
detection logic. If an extension is needed for hwdom, it seems simpler to just
provide a|VSBI_EXT(...)| implementation for it.
That said, I’m generally okay with keeping the|is_hardware_domain()| handling for
|SBI_EXT_BASE_PROBE_EXT|. Just let me know if you still think it would be useful.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 11:00:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 11:00:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186776.1508202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV6Jc-00007I-Be; Mon, 15 Dec 2025 11:00:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186776.1508202; Mon, 15 Dec 2025 11:00:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV6Jc-00007A-97; Mon, 15 Dec 2025 11:00:32 +0000
Received: by outflank-mailman (input) for mailman id 1186776;
 Mon, 15 Dec 2025 11:00:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=m1E3=6V=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vV6Ja-000074-Td
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 11:00:30 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 443d8b06-d9a5-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 12:00:28 +0100 (CET)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-37fd6e91990so19076151fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 03:00:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 443d8b06-d9a5-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765796428; x=1766401228; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FTBLPqPGIRbACnY00LVcERO0/OxxlHHMe3kOX8QKx6Y=;
        b=R24WvzvFURh4MjggnqAg4XFm3DaQQMafHyGVx7wnm6MK4UW1ugk8gyjGL2jtE8x6Tg
         7uBfMzyS3xfgBfPzGUFYgA70TRwQcv6gwIOdYKh6O2Fkg6QNy/kpOhZCKIYNOKa+JUDN
         qd2Mhbn9GlYjBJNWHRcJ6G5XwKeGDPzrFeOSiYwoB7POY8eeggBl4oqvjd6ugs9V2Th5
         Px6hOPtov9vaQOrsotSUMhPVraRKHpxqJUMU65lSGjxs4RUsuw9bx8KTCTrXhn2djMpZ
         W0G2F4ydofv5K1Naeggljyvr5sFe6GSVMYv96PPIGASxtgD8hQ/vgaI8j8bdeg17ehLs
         fCNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765796428; x=1766401228;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=FTBLPqPGIRbACnY00LVcERO0/OxxlHHMe3kOX8QKx6Y=;
        b=TeCD58nDsXn9Wh4GGM7I+VAiYOOECAHyBSbvJ2QrRsEgo9tVg/w1dNOTsgFalrZAfr
         igPKrZ6/nHPS/TB3i0tn68eFZyQFhEgrANild3tpaLKCGFE/XzpPDlLvoGD9xti1zND8
         e7ajriH2yEEhiSC7GvBrPryzBe/COLI39YirsneyEBW8NixbgBtus437UI+75m9PKota
         vyhLx5R11ZKoRixqf2ImXGSauNCOgau8IwJKcCOnIATpVr4INQbFUL7DO7JO+Xcewsm1
         9nP3m5TiHuCTjnYVsqeCSPUx+O+URwRw6Tf6QeMw0BovryBKeTv8lwloMkg3SxUcRuWE
         E1wg==
X-Gm-Message-State: AOJu0YxmJE3vAjgg11Upke9GlcSFIgatepniCMOaVhCO6VTRlO+ZqhTz
	HcLnRnsaQikebFi9caqiKG2a0WSvcC92bU+7k8R3oF9f6/WElDAm9E3d7pC7wrqvI2dyF45C+2b
	rQsTsquYLIsQipX4i5hTDmiMNsb2TsHk=
X-Gm-Gg: AY/fxX7N5ZwdO0deOr5xtdUtwzwfwmblf4cfuLVmvo3QFsKLw/Bsyfkvdd479+05CkC
	13cf2O48jiazTDmU1H9AUXnNj9wPP51ygP1Nt9+z2Avsz5uPIf6SLKMhJVG14oIlT5fSWdemSbF
	3vvMyufD21MSmRWif+HHTu3Ifc7FnLhB+WHiDpLlaxXZ8UoGWYEFWPms9LDXyXT6XUBZoX+6+y9
	Cwlpnijm81x2ULzwQwCTTU107LUyJVDTk31brOJyz5eoj+o15dVeQLSWdpu5uSB4JIr
X-Google-Smtp-Source: AGHT+IFCN37rT0N5fWwrYDPT4prXTH+lsvxB6zobuTj9rCtkYva3S9uoWF83f7ADpIJi0hJkkwmbsR5MBAmmYRTRcic=
X-Received: by 2002:a05:651c:1542:b0:37f:c5ca:a6bd with SMTP id
 38308e7fff4ca-37fd08a6a5cmr33851681fa.29.1765796427793; Mon, 15 Dec 2025
 03:00:27 -0800 (PST)
MIME-Version: 1.0
References: <CAGeoDV_YS8hV2+FXVgXxvHLw=MQOAoJZwrP1Ypw8+ZUjKB9GSA@mail.gmail.com>
 <a5361a51-128d-47e0-b5ed-58bfd0d9e8ad@suse.com> <CAGeoDV-vfiKECmvWzJ4dnzicXDL7XJDxwEy_Z737k+234Gkzpg@mail.gmail.com>
 <CAGeoDV8VZ1m6CQAkKK-9UDz4npXm2V+Up+BBo=+NyzgLJMW+3g@mail.gmail.com>
 <b4013cae-f27a-4c69-b136-d33db2d22725@suse.com> <CAGeoDV91W24tu6MOuM6a9B1jDjJ_8oNdsMYaxNA-ehbxn3xLoA@mail.gmail.com>
 <10aaed6d-6cb1-4bed-aa8c-5f9761f04fde@suse.com> <CAGeoDV_bTFNMS_XbEyfB0xNmpi=Yhr5VzszDBPTS5yYtjo1hnQ@mail.gmail.com>
 <e38c24dd-1acc-4d9a-b6f6-5e1964753840@suse.com> <CAGeoDV8QDBeqTPv30hcbd2giGRJp_1h+JgeGuTodhP3m8qHpHQ@mail.gmail.com>
 <b30ecffe-f696-4777-8e85-2fe30407534d@suse.com>
In-Reply-To: <b30ecffe-f696-4777-8e85-2fe30407534d@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 15 Dec 2025 13:00:16 +0200
X-Gm-Features: AQt7F2pEQl0RqqALirVjfzhzolZMNop7ibVcfVghXzlY7STaWF1mR5uqdCabJew
Message-ID: <CAGeoDV8US=pPHN-jYCKDLJpjJGwLg7jm2FaBCRwv-zmQ3rUUkw@mail.gmail.com>
Subject: Re: Strange symbols_lookup() behaviour in test-symbols on arm64 CI
To: Jan Beulich <jbeulich@suse.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Dec 11, 2025 at 6:40=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 11.12.2025 17:30, Mykola Kvach wrote:
> > I have now attached the corresponding build log.
>
> Okay, so indeed not a table size change issue here. Then I fear some inst=
rumenting
> will be needed to at least know what exactly is going wrong. Alternativel=
y you could
> arrange for the intermediate binaries to not be deleted, and make them av=
ailable
> somehow / somewhere for me to see whether by inspection I can gain some c=
lue.

I prepared a small patch to keep the intermediate artifacts instead of
deleting them.

It removes two cleanup commands:
    xen/arch/arm/Makefile: drops rm -f $(@D)/.$(@F).[0-9]* (keeps
.xen-syms.* intermediates)
    xen/scripts/Kbuild.include: drops rm -f $(@D)/.cst.$$$$ (keeps
.cst.<pid> used by compare-symbol-tables)

Should I gather any other files/logs that would be useful?



Mykola

>
> Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 11:07:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 11:07:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186783.1508212 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV6Qj-0000q8-1O; Mon, 15 Dec 2025 11:07:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186783.1508212; Mon, 15 Dec 2025 11:07:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV6Qi-0000q1-Uo; Mon, 15 Dec 2025 11:07:52 +0000
Received: by outflank-mailman (input) for mailman id 1186783;
 Mon, 15 Dec 2025 11:07:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WtO4=6V=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vV6Qg-0000ps-P6
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 11:07:50 +0000
Received: from mail-oo1-xc2a.google.com (mail-oo1-xc2a.google.com
 [2607:f8b0:4864:20::c2a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 481877be-d9a6-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 12:07:45 +0100 (CET)
Received: by mail-oo1-xc2a.google.com with SMTP id
 006d021491bc7-65727896f35so1628440eaf.2
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 03:07:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 481877be-d9a6-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1765796864; x=1766401664; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=b3ie6mkJXake+dGXC7wEuSw0D+J7MaJwU+4ZglpUrr8=;
        b=WWAljKS0pc/cjwtljgpuN7x4gaZ6JUsxgFB3KBdcvwDwn2992/H1+4R0YtpCBdHVx4
         XvMP5g0Zgp3vsPUnVUwS/FQ2AXI1s3dLr5rS2HBAuReKzJ1Z4z2RX6aAzRJh6jgIGzJp
         mZlwaoAFdDiZ2SJ4y14IvS509rdPZmKvWKOMITdHtwQGDukG1k3dGYpUdkWXjO9PTshV
         dLmgzr+YDT/1uvTFG6+MLWdHO3gYkbJYLTbMtV6U7owtMmDuloR/uTRxXZXhcQlRzw+O
         Jgg86+MCobB9AOXhfdWfN76ikxia/vCIlWzrSe3whUvDlQdyG2dU2LFxcWV6I9Bf4N6u
         VHTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765796864; x=1766401664;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=b3ie6mkJXake+dGXC7wEuSw0D+J7MaJwU+4ZglpUrr8=;
        b=r9DLPabYRlF4V/XYg+YoHf5f0OQg3wQf0hXYCZFrCqMfitQcCTDKhCaSNkLbqxEBZ4
         382QESLMWavXQgKp60yNd9P/K2K0Gp1DquSSO8t3DdsiPAlg4XWbYItm1wypyyq3HYKF
         VotCLcLb5NjsQJNNauVPBdzOnhCiThJoNU5if/KZHSPFChQzDb5QCJdO1gFhep0kSoeO
         S/FRsVh53ulV40e8vM4D9GCV2u1Ouli7vYH+cawaSTmwJVTJyt41XJAgwWaYzq0HrZGa
         ZEGbdrWWR9u9tGjPxlp4NU5PJt1ZmoKIavE0rkMxo0A8AcSV2RHb1TbOQUVmV+fna3mw
         uMMQ==
X-Gm-Message-State: AOJu0Yzi2aOJaQJJUL7JImbSx5QKyyI4AVGxs9UIHTteKuZwXHYGoeMv
	qqJIez3+XAQvl/hZv4jsMjPKuomc5hXciGLdCQ4iy8XtuRtAJfFTBkLKId52/O2bkf8F/fcRVSH
	2GSj6mm1R+etRo7d8j9GG0AkWgRYJaasplrPHgras5w==
X-Gm-Gg: AY/fxX5TX4+0rNuH1TdEUNOD4uvZx0qinW6y9IsXZr/EPg77FDeE4wmEuVhr2YivTmX
	xylbmPhPInqphXvBeI3nmNMOJWhy1pyyQVOSnHQJ347Y01u1fEqSROS6bmrT6p5kUxrPrhgg3bU
	21IZEhTPBXI4VpvCx6zGiTVxXPY2phsZBvZpcSWVpm3uin6OLRy3xxj/hH1z85tPStvEbNs/nlu
	AVg0ftmyPFUEU3Q67DXQ5gaGN4I5H4AHx/fX/qxQafjrsiQjyMDyaXWXTqDjvmhlHVuKgWcJxt7
	Q8AzJqn/O8QlqBKCTtRzxXi9jg==
X-Google-Smtp-Source: AGHT+IFNPn3XKyJlrKL84DFskB97NvCL6Dm5zMdbv78TDP5kUPwSkLIR8UiPvDpMSr4febpnksovq4dtsOHRLv8Zi90=
X-Received: by 2002:a05:6820:220e:b0:659:9a49:8fc8 with SMTP id
 006d021491bc7-65b45288874mr5298203eaf.65.1765796863968; Mon, 15 Dec 2025
 03:07:43 -0800 (PST)
MIME-Version: 1.0
References: <cover.1764930353.git.bertrand.marquis@arm.com>
 <697ab9880767b75c9964ae900a43fd4e065fc502.1764930353.git.bertrand.marquis@arm.com>
 <CAHUa44E+Cgs6WeuSyYi=r1BCzaYN+f9MBoSudyLxkU2LeGxzXg@mail.gmail.com>
 <C518918D-1CAF-49D6-BC94-CACEF409E46A@arm.com> <CAHUa44Ff=rzsd-3MtjB4YoT4=e_Xbgy0Yss=TSe=2=X77XQcXA@mail.gmail.com>
In-Reply-To: <CAHUa44Ff=rzsd-3MtjB4YoT4=e_Xbgy0Yss=TSe=2=X77XQcXA@mail.gmail.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Mon, 15 Dec 2025 12:07:31 +0100
X-Gm-Features: AQt7F2rEkF0jluTUWzBmWuUgl6H6lmJVxHi2HsnPgcgFDDcTubgokG_QTJ8lB_c
Message-ID: <CAHUa44G4jGt=DbSV3+Z0v_g-vX2gLQX1UEReHObp28yprGptdA@mail.gmail.com>
Subject: Re: [PATCH v1 03/12] xen/arm: ffa: Fix is_64bit init
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Tue, Dec 9, 2025 at 11:41=E2=80=AFAM Jens Wiklander
<jens.wiklander@linaro.org> wrote:
>
> Hi Bertrand,
>
> On Tue, Dec 9, 2025 at 11:11=E2=80=AFAM Bertrand Marquis
> <Bertrand.Marquis@arm.com> wrote:
> >
> > Hi Jens,
> >
> > > On 9 Dec 2025, at 10:05, Jens Wiklander <jens.wiklander@linaro.org> w=
rote:
> > >
> > > Hi Bertrand,
> > >
> > > On Fri, Dec 5, 2025 at 11:37=E2=80=AFAM Bertrand Marquis
> > > <bertrand.marquis@arm.com> wrote:
> > >>
> > >> is_64bit_domain(d) is not set during domain_init as the domain field=
 is
> > >> only set when loading the domain image which is done after executing
> > >> domain_init.
> > >>
> > >> Fix the implementation to set is_64bit when version gets negotiated.
> > >> is_64bit is only used during partition_info_get once a domain is add=
ed
> > >> in the list of domains having ffa support. It must only be accessed =
when
> > >> the rwlock is taken (which is the case).
> > >>
> > >> is_64bit must not be used without the rwlock taken and other places =
in
> > >> the code needing to test 64bit support of the current domain will ha=
ve
> > >> to use calls to is_64bit_domain instead of the field from now on.
> > >>
> > >> Fixes: 09a201605f99 ("xen/arm: ffa: Introduce VM to VM support")
> > >> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> > >> ---
> > >> Changes in v1:
> > >> - patch introduced
> > >> ---
> > >> xen/arch/arm/tee/ffa.c         | 9 ++++++++-
> > >> xen/arch/arm/tee/ffa_private.h | 5 +++++
> > >> 2 files changed, 13 insertions(+), 1 deletion(-)
> > >>
> > >> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> > >> index aadd6c21e7f2..0f6f837378cc 100644
> > >> --- a/xen/arch/arm/tee/ffa.c
> > >> +++ b/xen/arch/arm/tee/ffa.c
> > >> @@ -180,6 +180,14 @@ static bool ffa_negotiate_version(struct cpu_us=
er_regs *regs)
> > >>             goto out_handled;
> > >>         }
> > >>
> > >> +        /*
> > >> +         * We cannot set is_64bit during domain init because the fi=
eld is not
> > >> +         * yet initialized.
> > >> +         * This field is only used during partinfo_get with the rwl=
ock taken
> > >> +         * so there is no ordering issue with guest_vers.
> > >> +         */
> > >> +        ctx->is_64bit =3D is_64bit_domain(d);
> > >
> > > This should only be assigned under the rwlock. But do we need the
> > > is_64bit field at all? Why can't we always use is_64bit_domain()
> > > instead?
> >
> > As we take it after when needed, setting it here should be ok but i can=
 move this
> > inside the rwlock section to be more coherent.

It's not needed since this field is initialized before it can be found
in the list. I'm OK with either way.

Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

> >
> > The field is needed when creating the list of partitions. To use is_64b=
it_domain, I
> > would to get access to the foreign domain description which i try to pr=
event to not
> > create a way for a guest to block other guests by doing partinfo_get. T=
his is why
> > i store the information i need for foreign guests in the ctx instead of=
 using RCU
> > to get access to the domain descriptor.
>
> Got it, thanks for the explanation.
>
> Cheers,
> Jens
>
> >
> > Cheers
> > Bertrand
> >
> > >
> > > Cheers,
> > > Jens
> > >
> > >> +
> > >>         /*
> > >>          * A successful FFA_VERSION call does not freeze negotiation=
. Guests
> > >>          * are allowed to issue multiple FFA_VERSION attempts (e.g. =
probing
> > >> @@ -433,7 +441,6 @@ static int ffa_domain_init(struct domain *d)
> > >>
> > >>     ctx->ffa_id =3D ffa_get_vm_id(d);
> > >>     ctx->num_vcpus =3D d->max_vcpus;
> > >> -    ctx->is_64bit =3D is_64bit_domain(d);
> > >>
> > >>     /*
> > >>      * ffa_domain_teardown() will be called if ffa_domain_init() ret=
urns an
> > >> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_p=
rivate.h
> > >> index 4e4ac7fd7bc4..2daa4589a930 100644
> > >> --- a/xen/arch/arm/tee/ffa_private.h
> > >> +++ b/xen/arch/arm/tee/ffa_private.h
> > >> @@ -344,6 +344,11 @@ struct ffa_ctx {
> > >>     /* FF-A Endpoint ID */
> > >>     uint16_t ffa_id;
> > >>     uint16_t num_vcpus;
> > >> +    /*
> > >> +     * Must only be accessed with the ffa_ctx_list_rwlock taken as =
it set
> > >> +     * when guest_vers is set and other accesses could see a partia=
lly set
> > >> +     * value.
> > >> +     */
> > >>     bool is_64bit;
> > >>
> > >>     /*
> > >> --
> > >> 2.51.2
> >
> >


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 11:10:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 11:10:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186796.1508221 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV6TP-0002Mm-Gj; Mon, 15 Dec 2025 11:10:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186796.1508221; Mon, 15 Dec 2025 11:10:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV6TP-0002Mf-EB; Mon, 15 Dec 2025 11:10:39 +0000
Received: by outflank-mailman (input) for mailman id 1186796;
 Mon, 15 Dec 2025 11:10:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KDTI=6V=bounce.vates.tech=bounce-md_30504962.693feca6.v1-1d6d433eef254cd493bc0de009543574@srs-se1.protection.inumbo.net>)
 id 1vV6TO-0002MZ-5L
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 11:10:38 +0000
Received: from mail187-17.suw11.mandrillapp.com
 (mail187-17.suw11.mandrillapp.com [198.2.187.17])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id abb1b6fb-d9a6-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 12:10:32 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-17.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4dVHRB5pl4zRKLm2x
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 11:10:30 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 1d6d433eef254cd493bc0de009543574; Mon, 15 Dec 2025 11:10:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: abb1b6fb-d9a6-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1765797030; x=1766067030;
	bh=/Tm/lFWw+bkeb39/Gt2gOUv2ZUxIQfzM1PDhJKKT2Kk=;
	h=From:Subject:Message-Id:To:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=e7GwnWoGVGtYfYvLapEbWCHrR8eAexcKKSFgUybrXUDj+luKSTAGzfOA+H6w1d/FK
	 flddhbU3Shn8GU2blIVQx+zvlrX8rSi2uIw2kM+Zli/AZ5DDPMZqY9eYKZHAi6e7qc
	 v7g09K8WEX4RrM8MwQJnESVv3LdO9FRvn61IX+RecxarabLmK/H1Wv6j8Jibv5zT0n
	 Xx5HXHc+A/nkHkfXvw1YCNLlGEtInphwSaSKUaPGWy/01pt8HKyJNts7V6NTREVQvH
	 dDjbKVwFCxk4uKL+p22+a7b0/IZ/CwGp1ze4cKectywDB35/lq27gRk9gotVtAFeSW
	 RVh4WnWQ7TqUA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1765797030; x=1766057530; i=teddy.astie@vates.tech;
	bh=/Tm/lFWw+bkeb39/Gt2gOUv2ZUxIQfzM1PDhJKKT2Kk=;
	h=From:Subject:Message-Id:To:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=laH1Y+sts92S9ULMmr5MqzbpzNahwJHCJ3Tzv2TQr6qN3Ecq5ypJLMt54e+eRrnVV
	 r8YCYXJbLkbKEgtlAJz73IbsLPTndahhkcbJSDthfUp5h5+Jc9agA9i/VmR6Gp9yDc
	 6slIEl7mLalZIGk4MEilXCnQ4vnxUr5WoXNweKO7k1gXTSaxOnraIUB2NQxRS1ImDg
	 vt4vaUd/e/pOxU87MVe1qsgQyeQ/tTXjS/WpZslPMD7xP4rUJ3fSNbDLPw+Jcr7Ooe
	 rnKtAFWVcG4ENHaKE91Vt11iOpJqfQnQsIwURD8+NsKpc4AcBmFyV2FITXAcWUS2wG
	 WJl3o17X1Yq1w==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20Undefined=20behavior=20in=20libxenvchan?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1765797029663
Message-Id: <55fa8ac0-c00a-4b64-abaa-c2cf088aec4e@vates.tech>
To: "Demi Marie Obenour" <demiobenour@gmail.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Xen developer discussion" <xen-devel@lists.xenproject.org>
References: <e06eb432-289b-447a-8c3d-43da4705b4e9@gmail.com> <e0c8ffb0-a916-4c78-bd5f-010b9a7a8bc3@citrix.com> <bdf22b1a-49b5-43d4-8dfc-178c0076c917@gmail.com>
In-Reply-To: <bdf22b1a-49b5-43d4-8dfc-178c0076c917@gmail.com>
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.1d6d433eef254cd493bc0de009543574?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251215:md
Date: Mon, 15 Dec 2025 11:10:30 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 15/12/2025 =C3=A0 00:08, Demi Marie Obenour a =C3=A9crit=C2=A0:
> On 12/14/25 17:50, Andrew Cooper wrote:
>> On 14/12/2025 7:09 pm, Demi Marie Obenour wrote:
>>> I noticed that libxenvchan has undefined behavior: it passes pointers
>>> to guest memory to memcpy() even though they can be concurrently
>>> changed.
>>>
>>> Would it make sense to reuse some of Xen's copy_from_guest() code
>>> instead?  There might be a licensing problem (GPL vs LGPL), though.
>>> I think the only approach that isn't UB and has decent performance
>>> is to do the whole copy in assembly.
>>
>> memcpy() is well defined.
> 
> Rich Felker wrote otherwise on the musl mailing list.  Specifically,
> it is undefined behavior if the data is changed while memcpy() is
> accessing it, either for reading or for writing.
> 
>> The problem is the potential for creating TOCTOU races if suitable
>> barriers aren't used, due to the compiler being able to optimise through
>> memcpy().
> 
> The concern here is about races in memcpy() itself.
> 
>> Xen's copy to/from guest are not appropriate in userspace.=C2=A0 They're
>> guarding against pagefaults and address ranges not belonging to the
>> target context.
>>
>> If more compiler/smp barriers are needed, then that's the appropriate fi=
x.
> 
> Rich Felker suggested to use an open-coded memcpy() that used volatile
> accesses.

Do you mean that if a libc uses something like this as a memcpy.

void *memcpy(
     void *restrict dest_str,
     const void *restrict src_str,
     size_t n)
{
     const char *src =3D src_str;
     char *dest =3D dest_str;
     size_t i =3D 0;

     while (i < n)
     {
         dest[i] =3D src[i];
         i++;
     }

     return dest_str;
}

that the compiler is free to optimize inside this function in ways that 
conflict with the "actual volatile-ness" of dest/src ?

Anything said regarding regarding TOCTOU can also happens from within 
the memcpy (even though most memcpy() implementations and what compiler 
would emit here is very unlikely unaffected by this).

Unfortunately, there is no available volatile memcpy in C, LLVM has a 
volatile memcpy, but not usable from C, Rust exposes it through 
"unstable" volatile_copy_non_overlapping, which got discussed in [1], 
there is also something regarding "atomic memcpy" [2], but I don't know 
the exact status of all this.

[1] 
https://doc.rust-lang.org/stable/core/intrinsics/fn.volatile_copy_nonoverla=
pping_memory.html

[2] https://github.com/rust-lang/rfcs/pull/3301

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Dec 15 11:12:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 11:12:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186804.1508231 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV6VW-0002uD-Rw; Mon, 15 Dec 2025 11:12:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186804.1508231; Mon, 15 Dec 2025 11:12:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV6VW-0002u6-PD; Mon, 15 Dec 2025 11:12:50 +0000
Received: by outflank-mailman (input) for mailman id 1186804;
 Mon, 15 Dec 2025 11:12:49 +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 <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV6VV-0002ts-Bn
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 11:12:49 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fced034c-d9a6-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 12:12:48 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4779adb38d3so25405875e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 03:12:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-430f36b6a19sm13969345f8f.38.2025.12.15.03.12.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 03:12:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fced034c-d9a6-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765797167; x=1766401967; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=aacpoZ2jpiz5UpdoKXX6zRtFGImATanKcxyLMZHZvuI=;
        b=ejnGbboogKHSfMZO49vefEE2dciWDN9qGx6TKbBhDhHNxTRvnKE3KUcqNXhil84mGD
         rnjDoMXhhH0MMbCIXE8jI+yDE3Rk8v5scj2aDvs8egJfUWivQ75zwF41FEcacCRjXxrV
         dWebSTVYarKXEFqGXiZgszm4tvB9y395eYTvD7FeWeJNH2vZqOMeSNfUXrzmtXHntXpV
         MMXzVpE+xzwU/HMy74ndJXQnFzahv7O/NEHeBrOJ/Kb5n996XCRQlkJ5YDgOLadP43NQ
         tomQat65GWwz0+MjfKfEHRxcDJDDX57VM+GdxyFSnHDVWFPcT3bSVFeif/xDPF9028+W
         TnGA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765797167; x=1766401967;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=aacpoZ2jpiz5UpdoKXX6zRtFGImATanKcxyLMZHZvuI=;
        b=pj1lCriGyUIcvcjf4niiNL/9mrUBRSIeDwuLg6CTrMAD5VptR8Yg47pw+FTdKRbxw3
         iE5SM+HYh4GuWrj6qrWusQSSjcO4YCKyuqWFkVR8MQZaEbVC2/EBiaYCb7+Ri/buhdw7
         6yKH8tzLmMdnhwkzspbN8HyNtvNjgYGfJfHLz4DozUXoBzZMaNZeMB41S+eD6kwMtyVT
         595JuiF1m8FrWDKJdZHbyXiuAy1rWi6iFIp2lKceVop8RTt92ROvKzZF4E0HQpNVCvcd
         esY6vrOSPKCFKDp1yVlots3KUthU1gYhBbPswETvsr0xI1DcmegQYTQCMcHiWlbkfbsm
         Xz8Q==
X-Gm-Message-State: AOJu0YxmZZUC8+r/DHnVC+ow5KoRV2kBH/t/dHV6rYS44omxrbHB31Xw
	u2HlG8cDuYkIsrmT104mzAEZ5FNfr4ej0qkE4epGEbf4BH3kGk5USx32BG+E6RqS8w==
X-Gm-Gg: AY/fxX6nPfJok7WJZMfe2eQUYEZKRZ4KrWB+yfm0O+v90zcU+1GZG6gUSjIQkSSgucg
	UREXxtKRhc+2iqq0HWN94dks29BFX6xlnbdyyZANfVTEizAgpADfFb7XFCdF5GJNCLwg1RcCAD6
	lfgXxLS7sKyJk3TR60yezO/to46Iz0YlK1gbiALMjRvIcpuLI3I+kDfJO7AzkhnsyLYhsojQjyy
	N+11K1t8fXpjC1JHOcU/eyBEWMTv9ft3pShoMSQGpNDg8wpAIIvnpVsAhcClHYuvqBspsbP6jGs
	+Q+DCnx+02yO8J8+AkHMCBU8EH9axcIR+/wXsvKbDTAlJ8kNRXBH/2hm6ggV+/1TofCVU0CL+4b
	vCYRbn14P4s2abKGOQngcyTurLdmCHi95ca0ruXFh73ZvwiZY8q+te6x3gxQVB+WOYMbOSDEDkN
	646wXdIzfhh9foL2TJe5sfYlGY3w9QIEO+dlrBEmYuWAloBVicsAnp8Kxi7ed6FYaSFyqRV/ZFn
	6M=
X-Google-Smtp-Source: AGHT+IEPkoM0pzpW0npa5/v/o/UPPNqF6BuNZ2xerPghQXaulscgJOy7dsXq8wenwqQmFoK5xxRkcw==
X-Received: by 2002:a05:600c:a08e:b0:479:2651:3f9c with SMTP id 5b1f17b1804b1-47a8f8c57e2mr98529185e9.14.1765797167437;
        Mon, 15 Dec 2025 03:12:47 -0800 (PST)
Message-ID: <6ca4dfe1-09f2-4fc2-b74a-2ad95ebbbddd@suse.com>
Date: Mon, 15 Dec 2025 12:12:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: Xen 4.17.6 released
To: xen-announce@lists.xenproject.org
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

All,

we're pleased to announce the release of another bug fixing Xen version.

Xen 4.17.6 is available from its git repository
http://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=refs/heads/stable-4.17
(tag RELEASE-4.17.6) or (eventually) from the XenProject download page
https://xenproject.org/resources/downloads/ (after entering 4.17 in the search
box there).

We recommend all users of the 4.17 stable series to update to this final point
release; the branch is being closed.

Regards, Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 11:14:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 11:14:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186828.1508254 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV6XF-0003vo-Ey; Mon, 15 Dec 2025 11:14:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186828.1508254; Mon, 15 Dec 2025 11:14:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV6XF-0003vh-CA; Mon, 15 Dec 2025 11:14:37 +0000
Received: by outflank-mailman (input) for mailman id 1186828;
 Mon, 15 Dec 2025 11:14:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV6XD-0003Bh-KX
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 11:14:35 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3bf7a7f5-d9a7-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 12:14:33 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso33258705e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 03:14:33 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f38a4b7sm183059865e9.3.2025.12.15.03.14.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 03:14:33 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3bf7a7f5-d9a7-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765797273; x=1766402073; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=gmAt/U7s8ajYKUtdK3YePFRZxAxQbYMNfJ6Il/WbG1g=;
        b=IbKHbKl20u2UI0+J1loBI+rWzHib9GwRLDbcae73ClcNN0X7EZ7tj5Zj5d0wbupXH7
         ius1zoedkuzRSmvfMn1mHIVdvOWOotOUmkjCcoTeMW/6imsBIXzjvEFdjytscu74VlFF
         Y45vFFd8fBRjx//3HE6ylC5eOEaFuSiTZzOkQFYB9/F+Pvzwbd+heA4BHRlFKB2CXlRD
         oXjm2mo39q8F+hETJ+nQxCIyF+DylODU1Exfcua2AmlyHkgjmKQWTPOGw10L5ch4xyfo
         a3WtYHA3T+u0RPdo9CVUbtsc00Gg9KRxbPCKwgf4FkX5oDIeUpfg6q9z2txfavXIlNTp
         JeSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765797273; x=1766402073;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=gmAt/U7s8ajYKUtdK3YePFRZxAxQbYMNfJ6Il/WbG1g=;
        b=hoXNo4Wob1j8k5R0zYqiL4hqvCKZCH9LsUn5oA82Xz+pwo9hdrPsXv41UoPM0kflTT
         naR7uH7GpwSAPYAfFPLZJ9OpnfXpvj73NzdFFGubT3XaM1hTRIrKDVZJLzGR7aPjddzq
         O91VNM9M86XCIO3fhrA4FmPqE6b7Sk02/gHytsP3FE4TocBqarH+4Bum3NOQJK3L8xdq
         H6Q/X7nZ7oJi1hFFmgDtEsXxNViu2GMSLf7w2Cymdkb8TTnh007ylqiCD2bm2NOLWLDr
         f2h+5udEOuilIxZoi5D6EPAw/okC7EZpBIbt2lRDc+GhNkGS9DI0plOt63hgB0baGVTZ
         ou4g==
X-Gm-Message-State: AOJu0YxsWYYx/09cBgxFwNIFQclOoCOLgNAPimTDd/UQAi3gpAvsNX/N
	WiqvQvXkanp8BbEmt3OPn3pk8kpE66wxBfKDG6HqTRO4XCXxA+NQkN9RL+UXxlcXABmAJvoQQ6U
	BIsE=
X-Gm-Gg: AY/fxX4mxwXVOxidLrZGQsIun/siZf/E58pvo6hzgf8y0yIhqnCfRAOeDLrIyMoP8sa
	PxCfguNdRsL41gx0SO6Qtq8JduXvYXofzvbQ6kBa/SBBJVpnGNoKZmpUHQDZLHPRS8YAu9syLru
	/CKRFvIqUIrTgKPh1QnOMllQyQVsz+XKR3w+Qs7JQTn4KP21jpI3c2GqqafJwD0T4lQb9Z1oyFw
	chrtJ5v9BVhfSAhqX9r5eGrNS0Yd4ByriWxEEmLkIR9jVwQeUS/XCK4KszuKYsMan0eIvwwGqk6
	j3K0k6B5te7wLY2ZTlnP54lhoi0HeWh0hrVTsNCuk9gsEVq7KPOA19bkPSXSzCz+KVf9mrFw1jp
	uyw5oLFM20ECJjzyqW3RHqkj6Pd+nrnRCq+p3ShRWfKZePPFkJPlx5/VBQnAqsqTu3yoBSKQGv4
	/zpJSEXrEasGima4zNkI+vv3yQM1BTVQhxXK7hEkge1XhVrgs/Go90Cr/EWkKL2oissdiyubxIw
	ME=
X-Google-Smtp-Source: AGHT+IHGqqNaRNA2IYV7APZVS4yndWsBWRa2PdRykLtTL7GBOhMQ3kXbVU4PzZAZ7+hn44bVzXe2Gw==
X-Received: by 2002:a05:600c:c0d2:10b0:477:9cec:c83e with SMTP id 5b1f17b1804b1-47a89d9c2f9mr114007055e9.1.1765797273320;
        Mon, 15 Dec 2025 03:14:33 -0800 (PST)
Message-ID: <6706eff3-bdb2-452c-8ed9-131d6bc9b8da@suse.com>
Date: Mon, 15 Dec 2025 12:14:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] bump default SeaBIOS version to 1.17.0
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

It has been around for a while.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/Config.mk
+++ b/Config.mk
@@ -218,7 +218,7 @@ MINIOS_UPSTREAM_URL ?= https://xenbits.x
 MINIOS_UPSTREAM_REVISION ?= 6732fd42d8eb8d0af9f5eb54aca17f4c250213a8
 
 SEABIOS_UPSTREAM_URL ?= https://xenbits.xen.org/git-http/seabios.git
-SEABIOS_UPSTREAM_REVISION ?= rel-1.16.3
+SEABIOS_UPSTREAM_REVISION ?= rel-1.17.0
 
 ETHERBOOT_NICS ?= rtl8139 8086100e
 


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 11:18:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 11:18:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186845.1508264 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV6aV-0004xT-S1; Mon, 15 Dec 2025 11:17:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186845.1508264; Mon, 15 Dec 2025 11:17:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV6aV-0004xM-PM; Mon, 15 Dec 2025 11:17:59 +0000
Received: by outflank-mailman (input) for mailman id 1186845;
 Mon, 15 Dec 2025 11:17:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gbMu=6V=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vV6aU-0004xE-0P
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 11:17:58 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b218bff6-d9a7-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 12:17:52 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Mon, 15 Dec
 2025 11:17:50 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9412.011; Mon, 15 Dec 2025
 11:17:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b218bff6-d9a7-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qpPSNcj6KZztH+Jsgqy6fsRckw8biz2GFyPPw7EEQcu4SXZchIa7K/ixJfOk/7eFS4Gl8F0vwfMsqUCwQGqG5BBsE1s998xtcM7Mgv/tdLqHGbvcVH4JE7gjR2/CzdqWbzw7CBDXmJpIBJSI84DvdFVpXziLQrxoIE3q3zi42txnmvmNdnUrf9e978V6LGz0/Kr44b9+Yk02mDdE3VVjBI/TAD5XDD8H450qrPo/0ZO6VRyZR7+XT4JGgiucy3auyDA5lK4aBHMBno0qc2yK3eRTgy3MA5+ohzIqpEl/j6UgrVhczJyKTVYEZaT2OxXDTCKrl1y5qWVFkVSZ4cLhlw==
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=3c7qUlPwz5yf7dO72+gmd4RiEGc368cmvpJzp9y5GXg=;
 b=JnWwcDYGS8Ng2wn+0kVc2FnOyJeVd9ffW+U00fM8DFWbe3QAi7TcERXylhtxOSYzuMilEFpe20XpRYV4b40TpVbGiRPKcUzEkWvd0LAL6NplBMh7irp6fVEMEmxz/V0jIzPK8VxwWbKT2yQVC9SxwehGBzL3TWqIkNAZoKgbtwXS4zqdsEZrLuEPGR6cEleJF6+1YocQoMxoDdJ5HcJvCOPsTvh19LlHH6pqSC0ZHzsO8KRjqMKa729llTeKV6ZHkETE+Lph2DVSaOm7TmtuN419SusWt9fvA92thKD15/ejfU7Ws5PCzaDI12xeQAA9bZNyTPMadkW5G/HS0VgHwg==
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=3c7qUlPwz5yf7dO72+gmd4RiEGc368cmvpJzp9y5GXg=;
 b=wOEatHp6VUWVk0Ls1xEdEYUtfsBEQkNwTokP8lP5L0W3xJLOqlKtHQHWAVMAOKnFDlX2Vvr0Q08AY0ZLzVGgFCFoHGGi/e5+Ds05nbzDHXkQKrcCdwCUFnksGWZS7u+7XUZFJ0hPhcX2++yUM8f8YRoECRItqZsgJdGkSRWRBiI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <fba355ae-210d-4462-833c-dfaa739234bc@citrix.com>
Date: Mon, 15 Dec 2025 11:17:46 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [PATCH] bump default SeaBIOS version to 1.17.0
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <6706eff3-bdb2-452c-8ed9-131d6bc9b8da@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <6706eff3-bdb2-452c-8ed9-131d6bc9b8da@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0375.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18e::20) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS7PR03MB5608:EE_
X-MS-Office365-Filtering-Correlation-Id: 746a3a8f-2ed8-471f-ab47-08de3bcb9513
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SDV0bUZKUkpzazkrS0tGakhmU25YcW9mbU1IMGdBZnZGYVRaMWNBcU93enlS?=
 =?utf-8?B?M0lvZlZjeVpLUnVPWjNGWnl1WVp6bDA4dzdCV0NyYVZsMmU0TWRPSlJLa0lO?=
 =?utf-8?B?QTV0TDU3alNMWGwxanRKSGZzL2dPL0R0bU5DNlQrUmtxaE91V0ppRW9LQXFV?=
 =?utf-8?B?UmRtUGVZa29aSXdkRmpXS1RuUVNENEs3UDlodllxdkI1NTFCQkZxOWhGUXQr?=
 =?utf-8?B?cE1BVzNYK0oyRW1xSkNWMlhCUjRpRmxyTTh1SXZ5QU5VMFQ2UDVRL3RIR3dV?=
 =?utf-8?B?ZHBubUxDSXRmeEZNTXFjc0U4ZWJ0N25pRFVVT250Q0pPdzcvOTR1cDVtcjN1?=
 =?utf-8?B?dlQ2c2docFo1aUJiQjNvbW85MVRxV2VuL0ZzcENjbWkzR3FlNldoV21QSGZn?=
 =?utf-8?B?dUYweHBRaWxkUFVDYmM0ZDU5ZzJBcEozdzNMN3lOWDNTQ1U3bjMzMkxJNFdq?=
 =?utf-8?B?ZmZ1QTRFbzQ4Y1dLWENUM1huMnRkR3NZMTQ3SzBPbkdiaDdHaWszc2xYelRP?=
 =?utf-8?B?ZVhuWDZYYWhvVmQ0Q3JGd25lY0cwTFZacW1hdlRLVnhhd2ZqQ0FBVGV6bTFT?=
 =?utf-8?B?dTRGbjlSdjNPVzdXcFVMa2ZaT0VFVW5VUHNObE9GMDhKQ2lpbS9tamFpdTNZ?=
 =?utf-8?B?RUJYSnIzY25tMkptVmRmeTZGU0xRd3VLUy9wc3pVTWpjSmtGbjRiRkhRdVg1?=
 =?utf-8?B?d3kxK2lrUkQxRmpVWW5weDFnVkdjbHNHbG95L2o3ZEp2eDlLbHJZYTljdXZ4?=
 =?utf-8?B?YWMwNUp1WXhpNnB2Q1BMNGdQK3pVQ3Z4NmUrUXVBOTY2bllKT3VVbmZvemdu?=
 =?utf-8?B?bVBXYmhBcDVnbVlGSkVHT1M4dXh6SzMwQkpvdmlKNU0veWlieWdDbGc5U1Vp?=
 =?utf-8?B?dndSa0Jld29mSFdRYTBsVWJSYkU2dU9JNDVteDYwc2hhNTVVTDVSa3pPd251?=
 =?utf-8?B?bmY1WnRCTTRPcGlkRmhTRGtBVXplZ3R3cDdrM3JrWmxFY2FkaGI0a1FiRFJh?=
 =?utf-8?B?WjBrckIyRS9sRDZiMUNOV090eXNqN01nVmIrTDFWRTdIY3MrYmxoNVFlNk9X?=
 =?utf-8?B?ZGlIRWJMcTNyWlp4b0Y5UzcvekxDRzdNRUpsNHBmU1ovTENNcGMzYjlPYzdN?=
 =?utf-8?B?L1MvWU1MK2xXd1ppTnVqQUZDdDI3MXYxMnFZM3JoVnJNUGdNWjA5emJXL1dV?=
 =?utf-8?B?SXR2Y3h1RGV0Z3NwQjEwZlo5eGZpc0ZBb0VVSTBEbFJOd2RJdG9SemtRTmFL?=
 =?utf-8?B?cHpQNCtYUE1pNzlQNXgrM1hYT0o1RklUY05ETHBOYW9jZ1FKS1hwRy9hd1Zr?=
 =?utf-8?B?U2FxZUJhSUxvbENZb08vM3ZKOWhqdFhyLytJWTFJTmF2TGJrcXBHU3dpQ0c3?=
 =?utf-8?B?MmNiR1NXdGlTRm11aFFhS1d5Zml4ZnhuVENPS3ZydE9UZEFuSDBuV3Y5UlBO?=
 =?utf-8?B?WXJaaVU4NU1BSDBrbmphdW9mM0RPSXNmQVJqNkZOV201RXdQNExTVmhua1Vw?=
 =?utf-8?B?ajc2Tnh2TDlJaWVESnl5dWlkUCt3Mm5BSUlCQkk5RExVTTdnRHpMRWoydVRs?=
 =?utf-8?B?NW1lWjRyOHc5a0ZUaVRUZmtMZWszZGdoQ3RXTXFuWVVLWUE4Tkc4NndwY0Vz?=
 =?utf-8?B?ZEtPTzMwQSsxczdiRkpZS3ZFaFZDZUMvaWdxT2tmWjdFaGlEeXltN2hkNkRt?=
 =?utf-8?B?R1kwbXVVdjlwK1MyU0VpdnVWNVljVldNWkFsSWdWOHpZYzlRUHpCejBwSkNO?=
 =?utf-8?B?OEZOaDVNUXU4NEhGVHhhTmRaR3cyY3I4T1RLL0ZjR2JiYldISnBSR2JJV3h0?=
 =?utf-8?B?VitQUjRDZ2RPcHRzU2dwUXVsZWNVS0d3MGJsdWFEc2Q3b0ljNW11dDI3cHRY?=
 =?utf-8?B?S0pLeGpBeHBvMWF1aVQxeFp4SWIwUTdZbVE3ejYyRlcyWlpYbFNTREJ5c2o3?=
 =?utf-8?Q?PefzahGTE1B1WO1rJrG1u819FRtfNijp?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MXlQUTBXS2krWGVMTHNGVG9QQXEzdkxLeGV5S09oL2owSThTdGMvenJYUnNy?=
 =?utf-8?B?NDc3TnIyTnc4VklmSDZYMzFtaGsvMHR4a3BpRkxla2FINVd3eEwxWmpWWTNl?=
 =?utf-8?B?bzk3L0ZHWHBhU0NQb09reFpXa1ZsaERDSjNkUlkxTFk4a1QvUVdoR3Nhcld4?=
 =?utf-8?B?d1oyVzVMYnMxMkhwWURvOE5LVG42YzRWbk15dW44ZmlDaUd3NU1JZkh6WEov?=
 =?utf-8?B?b2tKUFNOQnlBS2VuOUM1MzFNaUZSbkNFYVBxc3NyZVpRcTBuMzZFWHk4ZkpQ?=
 =?utf-8?B?cE03OFphMlZaU0pLMjRzRTcrZVpNYWRlVjV0TFZZdSt0clJ2Q2pQK3U1aWZv?=
 =?utf-8?B?eURTcHg2K2RTNFhubnFpc1J4bFd5ZUZQeXVITVMvSW5PTFNGYytEU1ZpOEFD?=
 =?utf-8?B?STRiNk4vTFc3bUVPUG5QQTZFZCtLdnZobDhLNHlRUlhyV3NnUXlyaWRFR3Zy?=
 =?utf-8?B?V2d5WmVSeFEwOTBIRGJHemJqK2lXYUpHRks0aVpzdCtzcWJkcHNuU2syQ3po?=
 =?utf-8?B?dEVJekpDN292R25ON25JQjRYOGlVWEFtTEpWWGt2RXNTK0JpRzBNQjEweFpS?=
 =?utf-8?B?N1Bqd1VlbFpqOU9qU1BFUktzRHlxaUNNN2VnNVpWMlM4TG5lSlh0dzFnRXgv?=
 =?utf-8?B?b01qWXlrNFRQSURyQW42UEdubVg5SHJCa2lZcis4eCs5Y0hISXU2L2dvSko0?=
 =?utf-8?B?a1hDU1hvMlVKMGlUb1RDSkVyd1F1NWJ0U1JQaFp6eGlrY0Y5YUZZNHBoSjJw?=
 =?utf-8?B?NXJZQlI4cEFvZjZBTUR1N1I2KzZ0cTNXL29TdnVrMk5HZkRhNVJPUDZDWVJE?=
 =?utf-8?B?RDV2ZWsvRXF0MThwRHkyeTNZQ0NOU2VYMjkwQ3pLY1UxelQwKy9xTnloSXJH?=
 =?utf-8?B?NEhhRUhVSEdEUE9RKzkzV3BLa1dDakRFc0gwSTRQMnUzMWZnWXpNS0J0SFc4?=
 =?utf-8?B?SXV3bFl5UUxkZ3FiY25CcHFYYlhOa282K3BCcElNQUNCTmpjRjNKbkRvSG5r?=
 =?utf-8?B?ZGFpYnRNM0NqK05mbFRUbHJYL0FVZm1DdGlxakRYTzFCYjBZdURXVzVqMkJE?=
 =?utf-8?B?NmYwRDFGdXBYVTl5YXZBNzJmV0pmZ1Bla1NxSy8zMjFqK01od21oS1RxRCtL?=
 =?utf-8?B?TkFFQzNKaS9UM3VnaVZGOVZaTGpIRzVUdU5zenhURzhKZTBMNFlzcDRUQW5q?=
 =?utf-8?B?VUkvTUhzV3l1TzRVZUV1WE9OQ09MMDExQ0I2ZklVM2FLL3lRNk1Hb1RLRFNa?=
 =?utf-8?B?dzJITUlZMjFkVG8yeVRWcXBqLzJ5UTJ0MXZDYjFodnRHbUlLU2NkOUpobTNC?=
 =?utf-8?B?TW9GdFNqQjFmUDVBTTZDMnIxU2xldEdURGhPd0dveUEwVmRGbUsyV3A1dTl6?=
 =?utf-8?B?anpaVDNVV3NsSmQ1YkdlU1Y0bFFFRTVvQWxkRlBZODBVQkcwTkNGUmJRQ3E2?=
 =?utf-8?B?cDZXb3JUUVlCZHg0RXk0TXFhUmh5RTIwQnVxMTNuVk9JUHZmOGJnSnlIYzNz?=
 =?utf-8?B?Z255UlgyZTV1ZjZlRk1WbDVxK0pFUjl1aU5nQXI4dnkzY1pkSEFpS3BNOExS?=
 =?utf-8?B?cFc1Z1QrbVNPMU91cGgrUzZLcWlBZnNSOWI5LzdtQWh1L3Y1cFlQVVpHWW0z?=
 =?utf-8?B?WmNreEU0aWhwMEpUVmVZV08wcnVndVF1U3hHR2lMTE12ZVRnRmNBZ2JWUVMv?=
 =?utf-8?B?cjZEMHZtN0xTRlBGNTFQd2NxZStxTVVZSW9DNnd3SXpsY0FvZ2VicGovbGxZ?=
 =?utf-8?B?QXliUFk2bWs1RDJ5MzhNWVF4OTY0emZjTlBFdjg0R1k3ZVRaN2JUYkdxK2lv?=
 =?utf-8?B?N3p4TlU2N3I5QUdFNURLaUY3UnNVMVAvSktacVFzMlI3cjMyVzVvRWNrcHE0?=
 =?utf-8?B?NDZMdzFoSXFHRXJMWkkrK3JsWXV2WTdKZ0lnVGRac3VhSldMSDliOWx2STRK?=
 =?utf-8?B?cVJxVHA0c2ZRZW1MNnU0aVFFczVpUnR6Q1FORjNSYkFNQ2lnNW1uZGtUT3hO?=
 =?utf-8?B?OFJaT0FmTGJiTnZJQ2k2aTQrQktoS1FIVzdjWk1sMEZ3WkVZR2pjbXhLdGRn?=
 =?utf-8?B?UHZjNEF6WjNXTHZMV3RnbFQvbFFadGxMcE1jbDZ3MUowejB6VDJXbmhTcEZT?=
 =?utf-8?B?bEZYYlo1UHJhZFF4TTd6UklRQmNWRW9qczJiMUFpb29WZ2FlWDJyc2N4eXFp?=
 =?utf-8?B?clE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 746a3a8f-2ed8-471f-ab47-08de3bcb9513
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Dec 2025 11:17:50.0670
 (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: G+nD4rwAirDudxfOzoGP36Ve/AwWRmI4Vv0jLDpJwSb+uCklQF2NanRSzqRlC4F3JUFswsnOYdL72l0aIapt+9XRX4359Msy8n91R8fIJBc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5608

On 15/12/2025 11:14 am, Jan Beulich wrote:
> It has been around for a while.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Be aware that I don't think we've got any Gitlab CI coverage of BIOS HVM
domains right now.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 11:22:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 11:22:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186858.1508274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV6ez-0006bK-EZ; Mon, 15 Dec 2025 11:22:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186858.1508274; Mon, 15 Dec 2025 11:22:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV6ez-0006bD-BT; Mon, 15 Dec 2025 11:22:37 +0000
Received: by outflank-mailman (input) for mailman id 1186858;
 Mon, 15 Dec 2025 11:22:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV6ey-0006b6-Su
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 11:22:36 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5aa8f0e6-d9a8-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 12:22:34 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4775ae77516so39895805e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 03:22:34 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-430f280cf05sm14325637f8f.7.2025.12.15.03.22.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 03:22:33 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5aa8f0e6-d9a8-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765797754; x=1766402554; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=E6ecNVDx5cKZgYNiucWxMmPj27MWUWFlvdwvFFUmg2Q=;
        b=ONcqOWqgQYs9aIrsybml/2wMpbKiwPRw06v2T39Bkv7+xQvNNukKNcN3JVbSLd2qOF
         xPK2NUIsshbA/S7e2xAXVho18cvF2TpQnTrTpboZXQMiM44azsZsa1Dw3y5uC+mpb87X
         BKfz3MB4UQ+vgEri/tox8+kJwo2kG3Ic2bL84fsPuY+F8jj1FSHw4d2Fwzb1czxuOsI1
         eVWyTNd0axnItv5fJ5uQxZwKtgsuE07XO2FO1KmhVk02DuNASPrZQl2gTvg/nTX/Z0eG
         ybD1T6gkykLfBS5DamnJmmZxIe6pDUvSuYfAb4WYNGrpjxOy0otQdzfsx6LZw8YbxZVA
         1rRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765797754; x=1766402554;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=E6ecNVDx5cKZgYNiucWxMmPj27MWUWFlvdwvFFUmg2Q=;
        b=htexOa2UFIzUwfAn3TAK1pu/eSQUrv5ppb+CaFjevPrrKd6i2NViRUaktbrTfO/VT+
         6yhUWRRhcVVg8XJoJtJl5fkOv2TMSnfIVF59T86c35JMPnaugLO4JiwsgQVvPI+G4zav
         Bin5VKUCRMlnPWj9a61RoIdCgd4ItmUjPjOJeb0Nbgr9XE1vnu6AYCzv9hvdZ3wvx3Nq
         Bobf7LS22tNqSXFvGy9/7ZZwacmCsGljSs+9yCjPwo1+N4rsddYzjDGiHUfC4zGFPGo1
         sca/aVU320u4RjjHeL3c4fTql+VXwnISgK76nVXcLHMW7oVGehSsz0OyVSScm9mPMZxn
         Dq+w==
X-Gm-Message-State: AOJu0YwOhMlXSMiwNiM3ji+71yQsMxxQ2Qb4f0k044frxss6qPRPkxBo
	LgII3H0QSwSABDoKcekb8M2H40H0Cd71OxcnXCBQUON9Jkm3kyOpnL0jdu6KbYknXWnBWUf5y6H
	IWl4=
X-Gm-Gg: AY/fxX6lzN6d6/frlt/EcKQFnRgWSv2Z6GZUS1FHNNNx6mDm/C/v3F7c1Sp4VTfLPo9
	2qT8LKUabBZYZmIL3B/0RsbZMUWl2hoc8NOupSppqSufQyKAfCdFUfqfBBwDsSMPTct/eOve/E8
	77fDdbffahFjk2ZfvSx5Hci8AbaXwTAheYxm2U5iIjAVboaVUYpq66Krw1uAtB1jx5Kq/mrs3mE
	8wXF4ikCa+G+JqKPELuStd3/2cvC1fEDFZDaBcNElVtJ2jm63z+rxWIJgAbp1wmC4pEe5KMLUqG
	flU1AwfSXTqqXeGpnbSp09KnmUmevB7PYpH1n+8rpEchyFhyEg1hJTEwYLP2uizU47ToYuikAVG
	i59BDcdeao/uxhnpE3slCTvfa86vB7AyFb8gvfkSsrwdDbQuCd8TIM3dPCL8BNBKHsMWYGo1YRJ
	k3EJzsVDDP8MEp0Px4pWL6T6SbfDWdiram81zRhYT6iEGHWKZ2oDAf2iZ/YXMM1RnN+DMKJ8CoA
	SI=
X-Google-Smtp-Source: AGHT+IGsfs18BTY962kdWMC9vUh322OWY14p+hlpUqhMB7W5BadHwwEkFjkJekg8hhu+t7fU1UbAIA==
X-Received: by 2002:a05:600c:6994:b0:45d:5c71:769a with SMTP id 5b1f17b1804b1-47a8f90cb38mr95398455e9.26.1765797754221;
        Mon, 15 Dec 2025 03:22:34 -0800 (PST)
Message-ID: <7d254163-ac13-4c58-bcb5-aaff2e892e15@suse.com>
Date: Mon, 15 Dec 2025 12:22:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] memory: overlapping XENMAPSPACE_gmfn_range requests
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Overlapping requests may need processing backwards, or else the intended
effect wouldn't be achieved (and instead some pages would be moved more
than once).

Also covers XEN_DMOP_relocate_memory, where the potential issue was first
noticed.

Fixes: a04811a315e0 ("mm: New XENMEM space, XENMAPSPACE_gmfn_range")
Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Of course an alternative would be to simply reject overlapping requests.
Then we should reject all overlaps though, I think. But since the code
change didn't end up overly intrusive, I thought I would go the "fix it"
route first.

In-place moves (->idx == ->gpfn) are effectively no-ops, but we don't look
to short-circuit them for XENMAPSPACE_gmfn, so they're not short-circuited
here either.

--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -849,7 +849,7 @@ int xenmem_add_to_physmap(struct domain
                           unsigned int start)
 {
     unsigned int done = 0;
-    long rc = 0;
+    long rc = 0, adjust = 1;
     union add_to_physmap_extra extra = {};
     struct page_info *pages[16];
 
@@ -884,8 +884,25 @@ int xenmem_add_to_physmap(struct domain
         return -EOVERFLOW;
     }
 
-    xatp->idx += start;
-    xatp->gpfn += start;
+    /*
+     * Overlapping ranges need processing backwards when destination is above
+     * source.
+     */
+    if ( xatp->gpfn > xatp->idx &&
+         unlikely(xatp->gpfn < xatp->idx + xatp->size) )
+    {
+        adjust = -1;
+
+        /* Both fields store "next item to process". */
+        xatp->idx += xatp->size - start - 1;
+        xatp->gpfn += xatp->size - start - 1;
+    }
+    else
+    {
+        xatp->idx += start;
+        xatp->gpfn += start;
+    }
+
     xatp->size -= start;
 
 #ifdef CONFIG_HAS_PASSTHROUGH
@@ -903,8 +920,8 @@ int xenmem_add_to_physmap(struct domain
         if ( rc < 0 )
             break;
 
-        xatp->idx++;
-        xatp->gpfn++;
+        xatp->idx += adjust;
+        xatp->gpfn += adjust;
 
         if ( extra.ppage )
             ++extra.ppage;
@@ -927,7 +944,10 @@ int xenmem_add_to_physmap(struct domain
 
         this_cpu(iommu_dont_flush_iotlb) = 0;
 
-        ret = iommu_iotlb_flush(d, _dfn(xatp->idx - done), done,
+        if ( likely(adjust > 0) )
+            adjust = done;
+
+        ret = iommu_iotlb_flush(d, _dfn(xatp->idx - adjust), done,
                                 IOMMU_FLUSHF_modified);
         if ( unlikely(ret) && rc >= 0 )
             rc = ret;
@@ -941,7 +961,7 @@ int xenmem_add_to_physmap(struct domain
         for ( i = 0; i < done; ++i )
             put_page(pages[i]);
 
-        ret = iommu_iotlb_flush(d, _dfn(xatp->gpfn - done), done,
+        ret = iommu_iotlb_flush(d, _dfn(xatp->gpfn - adjust), done,
                                 IOMMU_FLUSHF_added | IOMMU_FLUSHF_modified);
         if ( unlikely(ret) && rc >= 0 )
             rc = ret;


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 11:27:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 11:27:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186867.1508283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV6ji-0007CO-Ut; Mon, 15 Dec 2025 11:27:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186867.1508283; Mon, 15 Dec 2025 11:27:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV6ji-0007CH-SC; Mon, 15 Dec 2025 11:27:30 +0000
Received: by outflank-mailman (input) for mailman id 1186867;
 Mon, 15 Dec 2025 11:27:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV6jh-0007CB-Dn
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 11:27:29 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 08ec0941-d9a9-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 12:27:27 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-47aa03d3326so3115845e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 03:27:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f4f4150sm182118715e9.11.2025.12.15.03.27.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 03:27:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 08ec0941-d9a9-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765798047; x=1766402847; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hR3Nt6TKd4sOlm7Y8Qhpv1OXx0NlAD/Ebw9cfGcp60k=;
        b=JdcjgR6Vsa4B7rTIGBtOLc23SC97Z/TbdKxXLP4vmC1Mj2wYxE2nmWXH5QahAcbqs/
         dK/J2DMKS4nHtox5fK8pxGBTDAqh9qH/tpqOsGpGg0sRolQRakhw1XMIXKaxpRTjHOgX
         x+F3IuDDMyfdNezSjAIvyO6OohCRSTokwqKCjPtB6gt+GaxEqWSSFKb3NYJEyDj9N6hQ
         MgXzcAp6SoJFbZmtWUrCZApcEPOTMRKkZ5Wnbz7t/OMiaCxIew2gXtLUVBX2iD1hJFg+
         T2YK3fFWBOIQb+B3NmEPbPIajreAXXBOf9AlDUo/IF0Sf4d+JeedBPT4ML1Z5JF+DkFn
         yMJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765798047; x=1766402847;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hR3Nt6TKd4sOlm7Y8Qhpv1OXx0NlAD/Ebw9cfGcp60k=;
        b=L7HCaXL3fDDEBiXMDCBcEcGQbrwgjQXRWP74/H8bOLD1NmukhzXOqSZTBoTIRNerpH
         uOQ17YCxT3ojLIgqX9IDKP9J8hq53z/lHQHd5O5LNT+gw3R1tc+WMsx6+bh4SYyJ/jrq
         PnucJs2OapkSxOz7Qp6b9QhvIxs/XtFVuX2UvdMGI1H67fjUmr5ngMW8Ehq1GFhFYIEZ
         S3FUPSDTdtYXYEnuxghoIkLq3WvkPunbz/CIF86mygw4M0ucUOFo3xIrqUkUcH15znLO
         ZU+MmakHYgUbpOCdKqyi7PE11GlSbGUZYhO4qXzA6U7HeFJd5PSQhPNatixOfhcZOxYv
         22Tw==
X-Gm-Message-State: AOJu0Yyth203yum4dMBzzTxUBC/fbWhOr3rZ7b3GVf6NiWG/MhMS6pIP
	XWVnJvMhU32GOnLK8JTvIjsXTFavD86HoPwARHT2cH7XcxmA6exFGAW7ZoZ6W8dRrQ==
X-Gm-Gg: AY/fxX5OheDgEpLHLwxP5s9HOXOYNc5Qki5cQ5bB0o7C/gOemX2l9oTGE8X43NiSjMF
	T/EBx3AtooHSlDMjDoC7A2l3KZgNA+uPPlyVMBL0ZTjczeFD2ZlbO4oolCsk+cLSmWgmxO7F5+v
	ioM9htGBQZNyb9id93vBUnZE7sMREYLSDQnsdzXz02HTPY5D8beXuxaCvE0zThh65DA5Oy37FWB
	e+KuEDEskbNIgw0h9LmpN/NgfitSODA0hLErOUgBXfEQdltc/H9MSq3nVV9rxD0vPhrmxmqrwRk
	kyKXMagsdw709vNGew8fxPW2hAIGx3V51lHScyAH8cUs7/8nmUBWw1SyB0Lhqc8WNWNI3xH4fd/
	y094qhTw4tfgMo9OF+N1nxB+hCuiGwPnZCG8sleF3EhSByRdPqxprRNM03cbrq1z7hkdGeBKNTq
	9bw6XcZ1lDnSyI6ifJY11/YWGSwLALpXe/NkJ1Mil8Ne0uf5hruEsWVpAmqx0dvJuKzU+csNt8U
	Vk=
X-Google-Smtp-Source: AGHT+IGUshkBKTpJBopfZ6Lp5ob3D2AwraG7cALw4mTcqBkwkuPjhCmd0LhtfmTD0gfb2i11/HALDA==
X-Received: by 2002:a05:600d:844f:10b0:477:9cdb:e336 with SMTP id 5b1f17b1804b1-47a90019d50mr82836815e9.21.1765798046683;
        Mon, 15 Dec 2025 03:27:26 -0800 (PST)
Message-ID: <35819233-07ba-4e00-8939-74b2f4454250@suse.com>
Date: Mon, 15 Dec 2025 12:27:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Strange symbols_lookup() behaviour in test-symbols on arm64 CI
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <CAGeoDV_YS8hV2+FXVgXxvHLw=MQOAoJZwrP1Ypw8+ZUjKB9GSA@mail.gmail.com>
 <a5361a51-128d-47e0-b5ed-58bfd0d9e8ad@suse.com>
 <CAGeoDV-vfiKECmvWzJ4dnzicXDL7XJDxwEy_Z737k+234Gkzpg@mail.gmail.com>
 <CAGeoDV8VZ1m6CQAkKK-9UDz4npXm2V+Up+BBo=+NyzgLJMW+3g@mail.gmail.com>
 <b4013cae-f27a-4c69-b136-d33db2d22725@suse.com>
 <CAGeoDV91W24tu6MOuM6a9B1jDjJ_8oNdsMYaxNA-ehbxn3xLoA@mail.gmail.com>
 <10aaed6d-6cb1-4bed-aa8c-5f9761f04fde@suse.com>
 <CAGeoDV_bTFNMS_XbEyfB0xNmpi=Yhr5VzszDBPTS5yYtjo1hnQ@mail.gmail.com>
 <e38c24dd-1acc-4d9a-b6f6-5e1964753840@suse.com>
 <CAGeoDV8QDBeqTPv30hcbd2giGRJp_1h+JgeGuTodhP3m8qHpHQ@mail.gmail.com>
 <b30ecffe-f696-4777-8e85-2fe30407534d@suse.com>
 <CAGeoDV8US=pPHN-jYCKDLJpjJGwLg7jm2FaBCRwv-zmQ3rUUkw@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAGeoDV8US=pPHN-jYCKDLJpjJGwLg7jm2FaBCRwv-zmQ3rUUkw@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.12.2025 12:00, Mykola Kvach wrote:
> On Thu, Dec 11, 2025 at 6:40 PM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 11.12.2025 17:30, Mykola Kvach wrote:
>>> I have now attached the corresponding build log.
>>
>> Okay, so indeed not a table size change issue here. Then I fear some instrumenting
>> will be needed to at least know what exactly is going wrong. Alternatively you could
>> arrange for the intermediate binaries to not be deleted, and make them available
>> somehow / somewhere for me to see whether by inspection I can gain some clue.
> 
> I prepared a small patch to keep the intermediate artifacts instead of
> deleting them.
> 
> It removes two cleanup commands:
>     xen/arch/arm/Makefile: drops rm -f $(@D)/.$(@F).[0-9]* (keeps
> .xen-syms.* intermediates)

This alone should be sufficient.

>     xen/scripts/Kbuild.include: drops rm -f $(@D)/.cst.$$$$ (keeps
> .cst.<pid> used by compare-symbol-tables)

These can be easily re-created from the ones retained above. (They might be
of immediate interest - and hence worth keeping - if the comparisons failed,
but you said the build works fine for you even with these comparisons added.)

Jan

> Should I gather any other files/logs that would be useful?
> 
> 
> 
> Mykola
> 
>>
>> Jan



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 11:40:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 11:40:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186888.1508314 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV6vi-00011Q-5J; Mon, 15 Dec 2025 11:39:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186888.1508314; Mon, 15 Dec 2025 11:39:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV6vi-00011J-2F; Mon, 15 Dec 2025 11:39:54 +0000
Received: by outflank-mailman (input) for mailman id 1186888;
 Mon, 15 Dec 2025 11:39:52 +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 <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV6vg-000111-Jy
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 11:39:52 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c4a75df9-d9aa-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 12:39:51 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-477a2ab455fso36896905e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 03:39:51 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f768936sm187043035e9.6.2025.12.15.03.39.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 03:39:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c4a75df9-d9aa-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765798791; x=1766403591; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TB8O3jxwzRMTmvvjsIUJXyYUoGfXC+KyhHVWQllhLFQ=;
        b=T3L+ij5uzinJ/MW1pTVBE/bC53p1lWlFEVPHpw7KZocC/VcwplzAn9j5kBU8uQvq4x
         K/SZmYeCQbZ3zmjsRbNHx7pGXtfJ/57JVYmlUQC9Dl3o4GEeM5ZY3ZRJFtv4ts7oA+hy
         oZsuoT1Knl5T3Y7/TQFbMtk0B68qYrb2J8rmlDTcNoaREl3dThXSZSGLiKtu+05Wax9a
         MNlCz80oDet/TH5wHrY6PpkysnyUHaiio6Rk9w4UxCeCKEtDGvj5aksLJwDyDja48H9C
         ekxloMFzPSKuSkNv9jRWu+efEScdfGRhWbaRocrYcPh6S0Ab2X6FhXPlm20Y3yM44NEK
         197Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765798791; x=1766403591;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TB8O3jxwzRMTmvvjsIUJXyYUoGfXC+KyhHVWQllhLFQ=;
        b=Bj7e6xsMaM6zwg1jOknqXokHVdIp6RhpZxpyGvq3WGlb5WznRFx9Zjevlkdx97G2m5
         7WEhJt9ufxwtBgwOq0YMWzELkh7S93l97YslTPqx+ZN/AaxzaQ/dIdR2FIyiADe0M8ah
         ZvSLRWXRR1hC7d5ubAkOOfK/qib45Mk1+s/moLMsLLWRE12nSGIj62AtRNctQR7t2nxW
         qIpEs2PzYWziwLD1Nqn2882V9fqe80ouzFTrVtzLsvRdgL5H9QtcAHnxQUu8EW5b7qpW
         RBOQa+qNzt5vud6oPPhS33MQ8rQDjFi2mm+n+PFixmMk5nrNObekDOsCr3svMr9UuEq4
         KQNw==
X-Forwarded-Encrypted: i=1; AJvYcCU3zuGtnZxPgechk6azgJVqsuUoBN1SdKIWoPQ49Vt+bcL7nFbnpqBEaT21BPr0BBVaAPfXvdCugUY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxflJnPyQ/tfxmg6AzraBQbV3n+hiAvalAOeZkSAn0h4cwJXqQu
	4dpYQX2/GrOLIuuChOSQfm2u03l306SV9rN/htAL0PHCJktQ3JErRJsAHKbVgkSCgA==
X-Gm-Gg: AY/fxX7eR7xTrI5atqVNSP1BzHL8FosXSCRGBSAWDfsAnL+hTsUOqF5OHLnzOLXywaP
	3EXgvpJfYFGTXLEoAEurVMswi+zs9Ghf7gvjHMes3fu9I9068fk7+UKPcaU75nvCmGuIDmDFWBg
	eRnsYfqB8IaxOICHFe2ZRsBhZ54CUNHl/QL30xhyoCJqFGPhIiDa9gIfIDzN32R6IcDA37spDae
	VL1JHWW+gNhErZ7yZa/ZsbiOZzJuq0S7HwU3VywMHDJUbre4D5XWTdYwBM9HqHKlQH/nLgQqBqZ
	V48lSGsXOy83n3GS57QiS+XFyg1jTIA38QoFvlVSiJtoZP2J0MrhFbb9TrCiwg8AS4MjX4aelcR
	ORTjdJW9RiF2lxFQBt9RzcBw841H+pyffs3Z7t34oalAzQADl9swkJoG0GvH5EBVkZfwNkvgMUz
	Nd+PeHyZbIex9IJsdQPriTATYE834fwp3z8i6/s8dFwBZaCeCCReZNWWUpwwhJ0KSMuZiVZB49E
	uc=
X-Google-Smtp-Source: AGHT+IEUqfBqHZWS+uHbOB/MXsBcDZav7xn/SeGDlXV9FdOkfisLCJCysf4V/2x5PVF/vbUw/REIIg==
X-Received: by 2002:a05:600c:4e93:b0:477:63b5:6f39 with SMTP id 5b1f17b1804b1-47a8f90453fmr86822775e9.19.1765798791087;
        Mon, 15 Dec 2025 03:39:51 -0800 (PST)
Message-ID: <59fc7f4c-b3f9-4a5e-b438-7989c4cd7c02@suse.com>
Date: Mon, 15 Dec 2025 12:39:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 04/12] xen/arm: gic-v3: add ITS suspend/resume support
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1765472890.git.mykola_kvach@epam.com>
 <2fade2b96128053fbe3ed59f1d5e3444b32b96c3.1765472890.git.mykola_kvach@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2fade2b96128053fbe3ed59f1d5e3444b32b96c3.1765472890.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.12.2025 19:43, Mykola Kvach wrote:
> --- a/xen/include/xen/list.h
> +++ b/xen/include/xen/list.h
> @@ -535,6 +535,20 @@ static inline void list_splice_init(struct list_head *list,
>           &(pos)->member != (head);                                        \
>           (pos) = list_entry((pos)->member.next, typeof(*(pos)), member))
>  
> +/**
> + * list_for_each_entry_continue_reverse - iterate backwards from the given point
> + * @pos:    the type * to use as a loop cursor.
> + * @head:   the head for your list.
> + * @member: the name of the list_head within the struct.
> + *
> + * Start to iterate over list of given type backwards, continuing after
> + * the current position.
> + */
> +#define list_for_each_entry_continue_reverse(pos, head, member)           \
> +    for ((pos) = list_entry((pos)->member.prev, typeof(*(pos)), member);  \
> +         &(pos)->member != (head);                                        \
> +         (pos) = list_entry((pos)->member.prev, typeof(*(pos)), member))
> +
>  /**
>   * list_for_each_entry_from - iterate over list of given type from the
>   *                            current point

While not said so anywhere, I understand this is taken from Linux. Maybe we
should indeed take it verbatim (as far as possible, i.e. without the use of
list_entry_is_head() which we don't have yet), but I'd like to point out
that in the comment "continuing after the current position" is ambiguous.
In list order, what is meant is "before the current position"; "after" is
correct only when considering iteration direction. Personally I would much
prefer if this was disambiguated.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 11:49:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 11:49:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186895.1508324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV74n-0002uL-Te; Mon, 15 Dec 2025 11:49:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186895.1508324; Mon, 15 Dec 2025 11:49:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV74n-0002uE-R5; Mon, 15 Dec 2025 11:49:17 +0000
Received: by outflank-mailman (input) for mailman id 1186895;
 Mon, 15 Dec 2025 11:49:16 +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 <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV74m-0002u8-8u
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 11:49:16 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 13739411-d9ac-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 12:49:13 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-47798ded6fcso20868535e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 03:49:13 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f49da20sm181447205e9.5.2025.12.15.03.49.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 03:49:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 13739411-d9ac-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765799353; x=1766404153; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LytDBX+HvWp8PceFA9W1rsQIAKVTDSBgA37g9exLRas=;
        b=DUwsLVCLvnoHTi3dpfqx1Camb5d/BvRIR6ylKHFvjbteTrFq3X5DaZ/jyRJCbQXz9O
         e5uF7SARwvsDM2giga0YkmlwbR2evfCA/KSRA2abznqFjWZ+IFyDt0l31THUlQ3Vtyri
         sM6kGlzsHnPVT8i1n8zlhX33OmtemA8P5Es8HhtElnjKG37Cn5Dj/VZIrpQfxlPN2jJh
         dWoofuN8rjWudLjLbMUT6zQjpb+o5RamU8lZf2D9VRjBR0KQhMr1VDUdD1ERDK9aTO3K
         kz9q1R1oTplYK1VJ+cO5zaCc8WdNPSMCmNjHaXrLW0mLpBTO4TZV+st8MzfGnajtfxFK
         I07w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765799353; x=1766404153;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LytDBX+HvWp8PceFA9W1rsQIAKVTDSBgA37g9exLRas=;
        b=OfQc7VOloLlpE/qeGLME2ZxXgyIq15GD1F1i7c2uK0bFoJ/+sD7ht5C8N2McuSiv6h
         pbwgLrGUya4sI0D77bYfdZF6SaiTQQWBbY6Cdl9ifg5+q5GWUc/j8CxPiwo+nlGFgY4X
         JPxkYHBmN6b2RE77FkAlM0YzsIlLEcgeygm3A5bCd7tiZ6ts/LAZn0/lONPboblFFoYL
         my79RXYLxmyqAOGtfJyJL8L8ggrGH9Q/8NvWQ0OtNeq+Gr/AIe1af8m5Gz22cOG8lu0k
         cqUssaeE/TdHQrlJdw1q3eTLZT3Vp3mkbznz6+kNm67IGIf9ULLLAWcwZ9dS2AKKa6fM
         YLWQ==
X-Forwarded-Encrypted: i=1; AJvYcCXA3XuXo4nEiSJMdQ+bCmi5Xn6peeRZkFPTFPcpbm5/ES+Tv6dG/s0WGsjsiMawH0tiRL0tWcY9Rfc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyd/egQGseH+aD9oMl4+ZTaJT/3ufWOLfp/lUBCacDvO1DVjBmx
	g95RnWggEkC8KEjAT1GmnRviNqX4mhYRd29hveK9H7AbTWOai1N5fN4S13+TQ8meWA==
X-Gm-Gg: AY/fxX54kXLEz6wdIa/1MQwq6Bf+tOfXsqrQNkcJ1tRaFYkXVgpfF/WM//EPkWdup17
	hgGALDvBuNPb6kSb5igRvMwMCYTpdJmYeZMrwdFNCglHjq827kObnai+pyCzLrf0wJXAAplu5JW
	R3M/1a89uAvWuNaMVo8O3zF5p58gx0JUyNPcL1F0IAeCzG9uY9+Y+56jBS6KepBMGFN1KtQAvtQ
	U9KS+h7/nTNWpJ5lO5fJIBdIi0HLtqL4cPp6xvCdUsfdFopr5EUSV2Ir+mB4vgt1n6QlNbjyWl2
	ZpQvuuU0RHFhUtX0gT2lEDqejfAir/pHbYU95birgospHntCb679D5JmS7BXerNCtG3Y63kIqiw
	L5Y/EJhm/cJtwetHQcxYs/jHAWLU/0MtPp4aWCkhlIB6iSyUFmwyHE7rVedKY6mruq0EgUzAR6g
	jb7VFjIKDIXedMtDI5g3muzIBOtimnopU65BV+CI0lfD9tdz7sHVU5BrDQWG0RuMh0GVl2AZfWg
	nKc42k8bw7whg==
X-Google-Smtp-Source: AGHT+IGX2G4JM+jjUaLmFnmcP9FZn4jxx01nQcjQD94IPAlHqBA7mewTHWnE6edTRIwzH1an32h9rQ==
X-Received: by 2002:a05:600c:8b83:b0:477:7ae0:cd6e with SMTP id 5b1f17b1804b1-47a8f8a88f6mr105361555e9.5.1765799352768;
        Mon, 15 Dec 2025 03:49:12 -0800 (PST)
Message-ID: <5bfbdbc6-c1ea-4aa6-acf0-1516b226f3c2@suse.com>
Date: Mon, 15 Dec 2025 12:49:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 12/12] xen/arm: Add support for system suspend
 triggered by control domain
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Rahul Singh <rahul.singh@arm.com>, Saeed Nowshadi
 <saeed.nowshadi@xilinx.com>, Mykyta Poturai <mykyta_poturai@epam.com>,
 xen-devel@lists.xenproject.org
References: <cover.1765472890.git.mykola_kvach@epam.com>
 <66fffded45f39599c62a1e4dad83c34f9de51d7d.1765472890.git.mykola_kvach@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <66fffded45f39599c62a1e4dad83c34f9de51d7d.1765472890.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.12.2025 19:43, Mykola Kvach wrote:
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -137,6 +137,11 @@ config HAS_EX_TABLE
>  config HAS_FAST_MULTIPLY
>  	bool
>  
> +config HAS_HWDOM_SHUTDOWN_ON_SUSPEND
> +	bool
> +	default y
> +	depends on !ARM_64 || !SYSTEM_SUSPEND

As written, this would want to be "def_bool y". However, I think I indicated
previously that imo it would be nice if we could stop adding more "depends on"
referencing particular architectures. Instead "select" or "imply" from
xen/arch/<arch>/Kconfig appears more desirable to use in such cases. That way
each arch can control what it wants without needing to touch common code.

As an aside, in the context of PV_SHIM_EXCLUSIVE it was also said several
times that negative dependencies aren't very nice to have. Here we have no
prompt, so the "allyesconfig" concern doesn't apply, but I still thought I'd
mention this.

> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1324,6 +1324,11 @@ void __domain_crash(struct domain *d)
>      domain_shutdown(d, SHUTDOWN_crash);
>  }
>  
> +static inline bool need_hwdom_shutdown(uint8_t reason)

Personally I think "want" would better express things, but I don't really
mind "need".

> +{
> +    return IS_ENABLED(CONFIG_HAS_HWDOM_SHUTDOWN_ON_SUSPEND) ||
> +           reason != SHUTDOWN_suspend;
> +}

Seeing this in use, I wonder if HAS_ is really suitable here.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 11:51:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 11:51:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186907.1508334 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV76n-0004QI-B6; Mon, 15 Dec 2025 11:51:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186907.1508334; Mon, 15 Dec 2025 11:51:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV76n-0004QB-7g; Mon, 15 Dec 2025 11:51:21 +0000
Received: by outflank-mailman (input) for mailman id 1186907;
 Mon, 15 Dec 2025 11:51:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AJJs=6V=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vV76l-0004Q5-OI
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 11:51:19 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de
 [2a07:de40:b251:101:10:150:64:2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5d2b465a-d9ac-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 12:51:17 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 546C25BD26;
 Mon, 15 Dec 2025 11:51:16 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id DBACD3EA63;
 Mon, 15 Dec 2025 11:51:15 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id OVl8MzP2P2kPEAAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 15 Dec 2025 11:51:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5d2b465a-d9ac-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1765799476; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=zofGwPLby7nvfeoCr3/JFRizKbFgb4qmHExK0anYVbc=;
	b=j/l6OXtnPlyFD+aK0AfVx+S/6mNNID4/6LFos7reMAxgwuGGFpOs7Lz/3OgUBgT/659Mh0
	KmJfnQDMMqsW/C3DvVBMU406jezgjktFIjGNr7uejhhLZP3cm++683/uZ/pgBkqNYB8t4s
	dknWjtRlk2r9Vir12LPzyzfQIJTQx1U=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1765799476; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=zofGwPLby7nvfeoCr3/JFRizKbFgb4qmHExK0anYVbc=;
	b=j/l6OXtnPlyFD+aK0AfVx+S/6mNNID4/6LFos7reMAxgwuGGFpOs7Lz/3OgUBgT/659Mh0
	KmJfnQDMMqsW/C3DvVBMU406jezgjktFIjGNr7uejhhLZP3cm++683/uZ/pgBkqNYB8t4s
	dknWjtRlk2r9Vir12LPzyzfQIJTQx1U=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	xen-devel@lists.xenproject.org,
	kernel test robot <lkp@intel.com>
Subject: [PATCH] x86/xen: Fix sparse warning in enlighten_pv.c
Date: Mon, 15 Dec 2025 12:51:12 +0100
Message-ID: <20251215115112.15072-1-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: NO
X-Spam-Score: -2.80
X-Spam-Level: 
X-Spamd-Result: default: False [-2.80 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-0.997];
	MIME_GOOD(-0.10)[text/plain];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_HAS_DN(0.00)[];
	MIME_TRACE(0.00)[0:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:mid,imap1.dmz-prg2.suse.org:helo];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCPT_COUNT_SEVEN(0.00)[11];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	TO_DN_SOME(0.00)[];
	RCVD_TLS_ALL(0.00)[]

The sparse tool issues a warning for arch/x76/xen/enlighten_pv.c:

   arch/x86/xen/enlighten_pv.c:120:9: sparse: sparse: incorrect type
     in initializer (different address spaces)
     expected void const [noderef] __percpu *__vpp_verify
     got bool *

This is due to the percpu variable xen_in_preemptible_hcall being
exported via EXPORT_SYMBOL_GPL() instead of EXPORT_PER_CPU_SYMBOL_GPL().

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202512140856.Ic6FetG6-lkp@intel.com/
Fixes: fdfd811ddde3 ("x86/xen: allow privcmd hypercalls to be preempted")
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/xen/enlighten_pv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 4806cc28d7ca..b74ff8bc7f2a 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -108,7 +108,7 @@ static int xen_cpu_dead_pv(unsigned int cpu);
  * calls.
  */
 DEFINE_PER_CPU(bool, xen_in_preemptible_hcall);
-EXPORT_SYMBOL_GPL(xen_in_preemptible_hcall);
+EXPORT_PER_CPU_SYMBOL_GPL(xen_in_preemptible_hcall);
 
 /*
  * In case of scheduling the flag must be cleared and restored after
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 11:55:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 11:55:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186916.1508344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV7AW-0004zF-PZ; Mon, 15 Dec 2025 11:55:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186916.1508344; Mon, 15 Dec 2025 11:55:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV7AW-0004z7-MX; Mon, 15 Dec 2025 11:55:12 +0000
Received: by outflank-mailman (input) for mailman id 1186916;
 Mon, 15 Dec 2025 11:55:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV7AW-0004z1-1A
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 11:55:12 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e7cc04e4-d9ac-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 12:55:09 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4779aa4f928so42424725e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 03:55:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8b9b26fsm31252679f8f.40.2025.12.15.03.55.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 03:55:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e7cc04e4-d9ac-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765799709; x=1766404509; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sjuHSq8h84FCm+1YVHRK6Isnwzx1r6c6eHy4YXikf4Y=;
        b=caTc5gPLn7OqJ0lGEzKByw6rG5s35w8zDghmdEIrFPW5E2mcLe2ZtmbPTz7m9132pI
         auAjSYmOszJ245cCNIqA5lO2uESu4j/rrMzYvesgfslwlSw3D/whJg1dGNct7/M5/whn
         wtDHHGdYf+A44UfvnnLSqEK3thOLgtyXxcNoRu8IdLAMZK9/czRv6o24860yKiDMDEnD
         DGz97lpMQKzyNzNBtIO0RL/eIxUWBRpZx7ToM3UTLwO1nbVsNMuV1hFWJWWUAJAPcHvI
         CcfNraDl7qKG54Th8djERQHL49x7Oq+dZodpZAQsEb6hvHe2zDFdheY6RH/OcyDfzQD7
         wrGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765799709; x=1766404509;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sjuHSq8h84FCm+1YVHRK6Isnwzx1r6c6eHy4YXikf4Y=;
        b=ubTd7QyIPpwXWAXLkwLdLSSOgm77ec7q//4v7sHYwWalb269cfX+1GCAmCp1xZ2LHq
         WmkZfifiHd0dK5hWrnIiUJJ7ZxA2mNfaS7aiZoCZ+3ehudZ6OQJQUafgCzGMvYSDIzBp
         Nj7mudA+maeluC7RGQ+8h9IxO8juFXYrbX5qpCcfxSEYt1rGDcRBZZ1J4lly0Wrrk9AF
         5GqjTGRoKc+IJjDyr7GmgTm+7bdubMaUZ6z4MQJTOK0d5SUccSABQ3Gxiez14xHK/6UC
         uBZJr0hYltXqY8n5uWKgRb940RWnEB+9qfU7FmNMdxilHVbRMGawBAGvefGQXH69STZ4
         V3hg==
X-Forwarded-Encrypted: i=1; AJvYcCWe1kSXqN99BHpVw/rZPnMzdZGeEURSU9ouzF0vaMJwea4uUzUL5+Wu0FX+wnGdGYUJisioCZSxzwI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwMLxX8iixatlrJe1cd5PQN2ubammyU6zMKKCxyIMpbVv4+d+5J
	1QFpJFCalYGY1fIsXMqgxVVJmtLnb14+qN7szg61sjgVMeow9aNOuIZsOmwM2oNnKA==
X-Gm-Gg: AY/fxX4L2ge3AfIl+FPTLzeidXqWV0cO7XE5kYUFBSbsPfn1Rlo2e6GvZ1MuIYy6Bmy
	7sVrydwtAfBRXJsQg+e9jLyPi+c+iH29GEQTC6ya+lSpLnkkpHnVNCOD5AMBDQTuLJXy/ZLZA8K
	pAOdSo1bX1O3W9fE0x7iT8OE6JUicgExgJOab8EWwAv7qEHot4xhbZEY3yVGws8PPJGz8x2Kza5
	ApX0dfzE2bhvEfCUYAhUv64A4pTqB/5ZPSV9xaP63R+ep3CGArZ5uUIk8BzH997jTSxwE5+N4/E
	5ZCKtMlh8aRYG+GLcbhDpRi4z40WmVmnTv4/ntA3nUtOyAmpJVDJD/BJKqot8zG5mNjjS7eLQHc
	XN9PfEAlKM9W1dc91UPwkemAPHePydXHvfRsATbLPR7eJgUe99OOt3jiHQSQH/QVcBf6YvinMl+
	0eB51NN/N1MZwSve6eH7E45hg2uJOZHlKR9ssHyFNMwt+BABxXeMQfA2+LVPBVJJu/ms7LvC2AI
	30=
X-Google-Smtp-Source: AGHT+IF6ktL+2lwO6UtDjZzMOBi4xITykOt045Q+rt88fJt49UF4+ujnM0F7GaymLPJE3W7FFOCs2g==
X-Received: by 2002:a05:600c:1c9d:b0:477:9cc3:7971 with SMTP id 5b1f17b1804b1-47a8f903800mr100886385e9.20.1765799709061;
        Mon, 15 Dec 2025 03:55:09 -0800 (PST)
Message-ID: <807efc08-b805-4a33-8001-ef0ab70f7d05@suse.com>
Date: Mon, 15 Dec 2025 12:55:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 00/24] Disable domctl-op via CONFIG_MGMT_HYPERCALLS
To: Penny Zheng <Penny.Zheng@amd.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>, Dario Faggioli <dfaggioli@suse.com>,
 George Dunlap <gwd@xenproject.org>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Meng Xu <mengxu@cis.upenn.edu>, Jason Andryuk <jason.andryuk@amd.com>,
 Rahul Singh <rahul.singh@arm.com>, xen-devel@lists.xenproject.org,
 xen-devel@dornerworks.com
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251212040209.1970553-1-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2025 05:01, Penny Zheng wrote:
> It can be beneficial for some dom0less systems to further reduce Xen footprint
> via disabling some hypercalls handling code, which may not to be used &
> required in such systems.
> We are introducing a new single Kconfig CONFIG_MGMT_HYPERCALLS to manage
> such hypercalls.
> 
> We are trying to disable hypercalls in the following aspects:
> - sysctl
> - domctl
> - hvm
> - physdev
> - platform
> This patch serie is only focusing on domctl-op. Different aspects will be
> covered in different patch serie.
> 
> Features, like VM event, or paging log-dirty support, which fully rely on
> domctl-op, will be wrapped with CONFIG_MGMT_HYPERCALLS, to reduce Xen
> footprint as much as possible.
> 
> It is derived from Stefano Stabellini's commit "xen: introduce kconfig options
> to disable hypercalls"(
> https://lore.kernel.org/xen-devel/20241219092917.3006174-1-Sergiy_Kibrik@epam.com)
> ---
> This patch serie is based on "[PATCH v3 0/7] consolidate vm event subsystem"
> ---
> The following commits are prerequisite, and could be committed independently:
> - xen/xsm: remove redundant flask_iomem_mapping()
> - xen/x86: library-fy cpuid-releated functions
> - xen/arm: move dt_find_node_by_gpath() to passthrough/device_tree.c
> - xen/sysctl: replace CONFIG_SYSCTL with CONFIG_MGMT_HYPERCALLS
> ---
> Penny Zheng (24):
>   xen/xsm: remove redundant flask_iomem_mapping()
>   xen/x86: library-fy cpuid-releated functions
>   xen/arm: move dt_find_node_by_gpath() to passthrough/device_tree.c
>   xen/sysctl: replace CONFIG_SYSCTL with CONFIG_MGMT_HYPERCALLS

>From past discussion I would have concluded that this is what wants doing first.
Is there a reason this isn't the first patch (and hence it's unclear whether it
could go in as soon as you managed to chase the - apparently - one missing ack)?

As to missing ack-s - may I once again point out that it is on you to chase them?
(Daniel, first and foremost to you: Hint, hint.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 12:14:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 12:14:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186945.1508354 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV7TA-0008Qd-Dm; Mon, 15 Dec 2025 12:14:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186945.1508354; Mon, 15 Dec 2025 12:14:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV7TA-0008QW-B4; Mon, 15 Dec 2025 12:14:28 +0000
Received: by outflank-mailman (input) for mailman id 1186945;
 Mon, 15 Dec 2025 12:14:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV7T9-0008QP-7r
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 12:14:27 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9845c305-d9af-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 13:14:24 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-42fb3801f7eso1631505f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 04:14:24 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8b8a97esm34375300f8f.31.2025.12.15.04.14.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 04:14:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9845c305-d9af-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765800864; x=1766405664; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZB1WBJ6vDK63my/LFq96eNx+2B218Aztxa04KQZUL5Y=;
        b=GcreQUqXLmdiNxcH8ACmmQ47IZU/0b5y5zq1vrav/1ybssCuQSdEipcRXhy9jxJnYh
         M076/BbfLb2BuUIM0cp+09669Le1FrHWMyaMXAhYdY8UYenhF0Dx95r0UyXg1a01yCfl
         dm4U0e8XzcMNEJBasSJ2nm/HaqplW5er2JPICSVnKySPuMtcZf/0Gk2x/f6bj+9bge/E
         HyRQYpcEogkkqq7AwFYUgIZUUY6DQMpR1hkuXzcW1OHooARdXgHSGhWJdcz/eH/Cu0lE
         B1n0GwXbUaSGhaBQW5ujPb7F4I/loaSX6ghMOG7I9rQ2LosaJi8Y6dvkzUpHNxotkJU9
         fPwQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765800864; x=1766405664;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZB1WBJ6vDK63my/LFq96eNx+2B218Aztxa04KQZUL5Y=;
        b=AOc2yNSz15Yuortj+SH6RWZVoGYwKzzv+feiKslrgPQKStkdFoSQMTAcelyMtmFrgI
         PmF/8nMB9aGJJLyHOJAgaNW9NoYeCiXA9W4MA4NW9xST5lf4jtvUmXTlDS3THxYRKo4u
         iNi+HaLxwDWtS+GgecKZj9XTEKTXYAgxMdo71h2P35vH5rffJTWRUy9AKYbjuVrL8J9P
         1ZQ1zMr8IMuuUOAwiELPg8e/uGckKqIVYWvNr9lY7jBDMETqQ+YleoTe25aZNTtCz25g
         Bs+zP2Pl+WDBz9pbYCrVK3XVI0XcXwXfd1/IXGXNXb/B+wHt23aKv6+HsL8Dc3lwod55
         U5hA==
X-Forwarded-Encrypted: i=1; AJvYcCWi9clXMPn4DGUWQRHZawcjOSTPVVQ9oga66v8CxYpc/GaDkii3Do7B7usy7sH6XEiN8bvkU2lfLCU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyqG82V17+azzuJGkoMgd6Nxb7xgQcx056wz7hJoq1Qya2WwauK
	3fqpxrDhpTT4ESsKvHmLYwjjRvSLS0/kb34sEp9Tr7IN01EvwbzzaH1nrvIXGk9sxA==
X-Gm-Gg: AY/fxX5+Qt9rWLfFJmfMi9mjvfIp6TYwitab7wIT4qpMTxgXydL0YIUO8//9i3wqlOo
	11gtu47Jt+P7wSJcnPdzWwP53l+9K25RnXpVa8BixO5c3yCUGv+aX2+WyMseLR6DwYQWCNX9glH
	7XZWMbz2A+8ElhGomNO7jIVCJxsSikmewGkN/fWCs+rVM/gMx+brNypPZ7HQh2HIpbLrJFoxTZR
	2vo+3JMvUsBfU8GNGCr/n0FkKKASoQ+smvuLU1lAAE0rHJfq8nrhQAS2KijeqJEm3p8vwKTMdKD
	doWTlTMcYXuypvm1/ZShYZMQzuVbuyoMyDirpJBrEWKI3RjHSoqY3LICeP3DoFP/0UL0g9fGQ69
	ld0uGSblmTGllvCack6MwWXT/zUuugVgfPhyzwUoMJe2JAUMPq4IXCEqtEwA2x0oLmAk4KBo/QG
	DfEFGx2AYM4GuRT63lwfvUIK7hn0hkbIo39dJkra4jEhAu4idpCDXnFuWJBe+FAlY+c+Iu5uQs2
	HnvGED/3MYoOw==
X-Google-Smtp-Source: AGHT+IEacf+dUgs31kkUmRiOeY74zlLEC2GenZ4gBnfTgsMeNTJsPYfTExy8+VOJ3B0lEZpW7815nQ==
X-Received: by 2002:a05:6000:4202:b0:431:1ae:a3be with SMTP id ffacd0b85a97d-43101aeac36mr1343285f8f.3.1765800864092;
        Mon, 15 Dec 2025 04:14:24 -0800 (PST)
Message-ID: <e09ed373-47a4-4afc-84df-b66184ea424a@suse.com>
Date: Mon, 15 Dec 2025 13:14:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 02/24] xen/x86: library-fy cpuid-releated functions
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
 <20251212040209.1970553-3-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251212040209.1970553-3-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2025 05:01, Penny Zheng wrote:
> There are some cpuid library functions only referenced in
> XEN_DOMCTL-case, and shall be wrapped with CONFIG_MGMT_HYPERCALLS later,
> otherwise they will become unreachable when MGMT_HYPERCALLS=n, and hence
> violate Misra 2.1

At this point of the series there's no MGMT_HYPERCALLS yet (see also my reply
to the cover letter).

> For file cpupolicy-clr.c to contain cpupolicy clearing library function:
> - x86_cpu_policy_clear_out_of_range_leaves
>   - zero_leaves
> For file cpuid-cp2buf.c to contain cpuid copy-to-buffer library function:
> - x86_cpuid_copy_to_buffer
>   - copy_leaf_to_buffer
> For file cpuid-cpfrbuf.c to contain cpuid copy-from-buffer library function:
> - x86_cpuid_copy_from_buffer
> Sunmmerize all needed cpuid-library object file under a new variable
> CPUID_OBJS in Makefile.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> ---
> v4 -> v5:
> - library-fy cpuid-releated functions
> ---
>  tools/fuzz/cpu-policy/Makefile               |   4 +-
>  tools/fuzz/x86_instruction_emulator/Makefile |  11 +-
>  tools/libs/guest/Makefile.common             |   4 +-
>  tools/tests/cpu-policy/Makefile              |   3 +-
>  tools/tests/x86_emulator/Makefile            |   3 +-
>  xen/lib/Makefile                             |   5 +
>  xen/lib/x86/cpuid-cp2buf.c                   | 123 ++++++++
>  xen/lib/x86/cpuid-cpfrbuf.c                  | 129 +++++++++
>  xen/lib/x86/cpuid.c                          | 286 -------------------
>  xen/lib/x86/cpupolicy-clr.c                  |  73 +++++
>  10 files changed, 346 insertions(+), 295 deletions(-)
>  create mode 100644 xen/lib/x86/cpuid-cp2buf.c
>  create mode 100644 xen/lib/x86/cpuid-cpfrbuf.c
>  create mode 100644 xen/lib/x86/cpupolicy-clr.c

This looks to be doing at least three things in one go. If all of them would be
simple (including them being a reasonably small diff), that may be fine. But
the diffstat above says otherwise, so I may I ask that this be split in three,
maybe even four pieces (one per function moving to a new file, and maybe one
doing prep work in the Makefile-s touched)?

The filenames also aren't very descriptive. cp-from-buffer.c, cp-to-buffer.c,
and cp-clear.c maybe? Albeit the last one is where I'm the least convinced
that splitting out and making a library function is actually a good idea. Note
how I also didn't mention that function as a possible candidate for library-
fying. I'll try to not forget to bring this up with the x86 maintainers later
in the day.

> --- a/tools/libs/guest/Makefile.common
> +++ b/tools/libs/guest/Makefile.common
> @@ -35,7 +35,9 @@ OBJS-y += $(LIBELF_OBJS)
>  ifeq ($(CONFIG_X86),y) # Add libx86 to the build
>  vpath %.c ../../../xen/lib/x86
>  
> -OBJS-y                 += cpuid.o msr.o policy.o
> +CPUID_OBJS := cpuid.o cpuid-cp2buf.o cpuid-cpfrbuf.o cpupolicy-clr.o
> +OBJS-y                 += $(CPUID_OBJS)
> +OBJS-y                 += msr.o policy.o
>  endif

Why the mismatched padding on the := line?

> --- a/xen/lib/Makefile
> +++ b/xen/lib/Makefile
> @@ -45,3 +45,8 @@ lib-$(CONFIG_X86) += xxhash64.o
>  lib32-y := divmod.o
>  lib32-$(CONFIG_64BIT) :=
>  lib-y += $(lib32-y)
> +
> +libx86-y := x86/cpuid-cp2buf.o
> +libx86-y += x86/cpuid-cpfrbuf.o
> +libx86-y += x86/cpupolicy-clr.o
> +lib-$(CONFIG_X86) += $(libx86-y)

Why the intermediate libx86-y? And why is this not being done in xen/lib/x86/Makefile
anyway?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 12:36:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 12:36:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186961.1508383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV7oW-0003Di-A5; Mon, 15 Dec 2025 12:36:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186961.1508383; Mon, 15 Dec 2025 12:36:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV7oW-0003Db-7E; Mon, 15 Dec 2025 12:36:32 +0000
Received: by outflank-mailman (input) for mailman id 1186961;
 Mon, 15 Dec 2025 12:36:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV7oU-0003DV-E9
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 12:36:30 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id acfc827d-d9b2-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 13:36:28 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso34223905e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 04:36:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f74b188sm181728595e9.1.2025.12.15.04.36.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 04:36:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: acfc827d-d9b2-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765802187; x=1766406987; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=B/oOzBNP94ATPgqbCzP8hqLZxp+F1vd9DS5/mPewKHY=;
        b=aHoQDs3KogjATDQEbQsi5zDMyXtvs0ooGkUDBmFOrN78NSfm1yKkrD+cr6NEAVoS/X
         s9XdY5SERELXpVs9NPpg9TPwEbs8+WkHuMYz22Cuj7+i1pyScCwhE+c1uG+w8wAWN3M8
         mlVW6hU5bCRRlAn4ClNlqAfMuZW6strdADROH0v3aUtDw1YT237sCVzMYuSnUQFtUse0
         QvkqLyAyGg8vjWM4DuH7IUoaGEE1+eaLOfG/d8ro7pFm5elaOrwj7VJH5r2CidRTia9u
         Ka9iec99vVLgB7EjiCn/Y3qUTV+llMy4uAeH0VYD1QXfF2DpJF4FbORo2gEXxIL+RxIn
         7uyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765802187; x=1766406987;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=B/oOzBNP94ATPgqbCzP8hqLZxp+F1vd9DS5/mPewKHY=;
        b=dGv7NqteYut5+O+tEo9794bI2jaVOPyD/5z8/GgnKM35u8iwuyLzOPMsso+Ewt41ET
         yuu2eV8+yZ/9eO43nLlDgDtLMh0uqfCl1JRpZ5dIuxxqfoJIWvSe/mWw/cDrDj0eRdrC
         loX/Tf5m7jLDPdhx3cbYitNGJrlavQW3gXk7+xRjDpr7zDNM40V8qd2LQSUQXo3E0lco
         pF9hvIDeaJCbPQeoqfIhfL9H+BlZ0pteLXVCLWqi/hpGRnRW4QuIzraDX21+Sn9ChFIm
         iUQdglaIZBMXGp7L8uGKzI2dR7jeEtX/2Uj1jP5LAoU11wYHi5dowaKSL/vD74XpHyAA
         hxHg==
X-Forwarded-Encrypted: i=1; AJvYcCUtcUQVjXD+qf5Vao9tOXI1vu18FISa7reKLl1kbfRrsAGyf6QKv2B3/Z521ugv0JKWlYCaKOlodk4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwUyyhtrGSioapK2C6fVEfkrIhrZL5eSqF0KyJrS1+ZE9VMQbTp
	245aZRxcMYQaAJ6jNyNRvVGI/wLxIPul5yygLbXaPpruCJLo2/hL11i7ns7Cng3mEA==
X-Gm-Gg: AY/fxX78wnEOeJK/RTkhyQwmU3Nt2cIe0uzOxm62IcATRCYEL0ZHEzTbUfbTSSeT65s
	1wv9dRfFW3oJfk2R28UTy6tN6hKF/OYTa17vis8EJ+YsNVvfSlR4EJVf6UVHtiZT1Q46/T9Ra2I
	w4bvZP91Fk7iWTpQTV5LTO6YZ1t4kMNTbNCeg1kGDlRrFphXbouSmlfj13rceuDtXLUX1oe+xy3
	37kHTU7ZWxIozF6T3c8K9VyJBHHshYmLzDrXc5OpC1qQnci0nnRIY5STqYSXLlkK4WwemDOM9iI
	Kj3eU7X8AlBgdZrrDnqy/Vg1+y2E5Xx3QqOBHaYP9PI2ZqckstZaYp5gkCi/KKIT6wj4Q4+CmZi
	6Aw9DiplcmAV/rfU+HG3DdqoA6lUJFeYN7uF1jgUiUKOkebCufhAcgU3O1FPzHK5sY6ixr6yXna
	JbWcHvvVlINgwhcMlBUjFjAzZfT8MjttF9yV66gixoFN11XykJivnv6Y3hWVwqzcLBfQ2wEaaVO
	bQ=
X-Google-Smtp-Source: AGHT+IFccOlg+ZJ236QvUjEBB6N6Gg28/1v0FtPJNg4q2WpQpJsc9hgdwNu3THcR75GkCVA+LWvynw==
X-Received: by 2002:a05:600c:6208:b0:46f:a2ba:581f with SMTP id 5b1f17b1804b1-47a8f2c9fa3mr115450485e9.16.1765802187320;
        Mon, 15 Dec 2025 04:36:27 -0800 (PST)
Message-ID: <2e9b0bb4-ca33-4996-9804-5859310d4ae6@suse.com>
Date: Mon, 15 Dec 2025 13:36:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 15/24] xen/domctl: wrap pci-subset iommu-related domctl
 op with CONFIG_MGMT_HYPERCALLS
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
 <20251212040209.1970553-16-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251212040209.1970553-16-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2025 05:02, Penny Zheng wrote:
> --- a/xen/include/xen/iommu.h
> +++ b/xen/include/xen/iommu.h
> @@ -333,9 +333,11 @@ struct iommu_ops {
>                           uint32_t flag);
>      int (*reassign_device)(struct domain *s, struct domain *t,
>                             uint8_t devfn, device_t *dev);
> +#ifdef CONFIG_MGMT_HYPERCALLS
>  #ifdef CONFIG_HAS_PCI
>      int (*get_device_group_id)(uint16_t seg, uint8_t bus, uint8_t devfn);
>  #endif /* HAS_PCI */
> +#endif /* MGMT_HYPERCALLS */

I remain concerned of the former two hooks staying around for x86, despite
them now being NULL when !MGMT_HYPERCALLS. Imo, to play safe, they will
want to be guarded (transiently) with

#if defined(CONFIG_MGMT_HYPERCALLS) || defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 12:38:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 12:38:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186968.1508394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV7qr-0003rn-No; Mon, 15 Dec 2025 12:38:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186968.1508394; Mon, 15 Dec 2025 12:38:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV7qr-0003rg-Jr; Mon, 15 Dec 2025 12:38:57 +0000
Received: by outflank-mailman (input) for mailman id 1186968;
 Mon, 15 Dec 2025 12:38:57 +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 <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV7qr-0003ra-55
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 12:38:57 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 05304f6a-d9b3-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 13:38:56 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-42e2e3c0dccso1790750f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 04:38:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-430f38d01d6sm14264042f8f.8.2025.12.15.04.38.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 04:38:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 05304f6a-d9b3-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765802335; x=1766407135; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5nla8UoluNpOGuoTN7ASOb5gf+87bQhrOoW9Cgp0pWY=;
        b=C11sChJEnv0/4RHPv9W/ECJG9hFSrtKtJgNzwNmYcS+RopMMFGVJ7C6uIom/lnzcxr
         vdejFaqVSSzVKwmGGM2Sxhd31SshGmPmWOyHi4eHx3TBpApwD4xkwZn5mU9bE65PEXSi
         uhkBHAY50ynJVdx/OzvbJuPlOVmIU/Y5GDtbSnjsn4D0z79G4NvANcecAsDiuF0692CZ
         jfLCwdgEJ+2xUno0Pj4/O6JBV+qPiXMfNc+M+mcJ7h72ApDWM1wFWLnvvpEpVjFmN+Pi
         EzZEYl+QAsy+mclMhsPOES1Zg+Jf5CSSAbbc8N7JAgrBSpz1WV6hWx00x1M0FEJF5Z9K
         98gw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765802335; x=1766407135;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5nla8UoluNpOGuoTN7ASOb5gf+87bQhrOoW9Cgp0pWY=;
        b=KZnlCSYu9Ip01Lm5OBWmd/NLEb1hENGnNuQS7jgCaMZ2H4K7YFvCgmaHaWODmPjwk+
         k58qfmUnTMcqtNTHc24wgFrxkum2bJAIuRS+vha9Fb9Jcd75j/EUbosX5Bnqw58usd3y
         Nuu8waSyu7A8Jl36BguFXbv42p3PfSTq+480vG1/TAu7cBDCE0lx0bATl3MphIMZC81j
         oTHQCK9iRvKwuCCAlSHy6U3ja15W9oj5/r/6Cb05cMm7R9WlPVGhjhf69FL5r6M/ibiZ
         aH2eYcUfJKZHyGdAKH4PgyZDOcWBq/bwLFhhGa/gDjpzfgN/HpaGlqgvcM4tdzoGaVyA
         LbAw==
X-Forwarded-Encrypted: i=1; AJvYcCXGKkVMLFhaZoxLx3wgL1Idqj1leD6C9yZxdd/1lwupPSLeN2WKqOV/DVl0eMo6N8bytlk9INgRGOA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyMgd0GUprn5oKFUsynt3elEoyKzlt3csIJciiSLTq3aeaKXsJa
	baQgxKHjeaRY17jen8XOf0ALPSrGHvAabLKGpVrN4FNUCB03ASnySzYX9RNqE+AtXA==
X-Gm-Gg: AY/fxX4QnR/bYxlSFq91BFIudDG2mBvLJXOQEvjBEm8ibKI/IflQ5fndd3wIuoyEnHI
	OQNTL2eu98JzEefWPikNRIziA55z0VLTiSeLpK7SuMP4XEqBL5fKWLG0nGf/ZIQFWgcC7nQF+YC
	7B0REOtUcQ8p7FwP4KhxbyMCGnLWRjc/1+JoJiDP6J6pZ00O9tF79BEiacRaQLiSIapnhQa541o
	X0EqWmgxQaI60n3URoLQNLnN0dL9ljqHoQuugjh+sfeDeuo7Y19Y5kNihoxHoVWcb4qKwZrgJuO
	XJQ405KubIi14vkQJrHHXGEEcMUqmEJOEwjgUrdwxTjB7Sx644R8H8K5MBTIghoJCxlSWwLzT9h
	FjEnBaaGvXwxk2aeaeWoYmxMc7uUlXroF/KoPn8v4SXHi2JaXAOtqt+YAzkMG6+kwx5x/m0pT7T
	VcLyXeaiJ2MhRuJIcST04qnegAWxPg0eHLbGQO/ah0EmZlnko3vTgU2uE92Mm4QrKyI6X2sx5OW
	Bw=
X-Google-Smtp-Source: AGHT+IHKpsr/G28KMuWC6I5qU7xwsSG47M352qdnc0PnoTgfDmaLxIN5WiAA8P9oLQMs6NN5Ovvuew==
X-Received: by 2002:a05:6000:604:b0:42b:3155:21da with SMTP id ffacd0b85a97d-42fb44a3a65mr11141848f8f.2.1765802335301;
        Mon, 15 Dec 2025 04:38:55 -0800 (PST)
Message-ID: <8d66f6b1-c3cf-4bb0-8065-5c007ad2e2f1@suse.com>
Date: Mon, 15 Dec 2025 13:38:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 15/24] xen/domctl: wrap pci-subset iommu-related domctl
 op with CONFIG_MGMT_HYPERCALLS
From: Jan Beulich <jbeulich@suse.com>
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
 <20251212040209.1970553-16-Penny.Zheng@amd.com>
 <2e9b0bb4-ca33-4996-9804-5859310d4ae6@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2e9b0bb4-ca33-4996-9804-5859310d4ae6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.12.2025 13:36, Jan Beulich wrote:
> On 12.12.2025 05:02, Penny Zheng wrote:
>> --- a/xen/include/xen/iommu.h
>> +++ b/xen/include/xen/iommu.h
>> @@ -333,9 +333,11 @@ struct iommu_ops {
>>                           uint32_t flag);
>>      int (*reassign_device)(struct domain *s, struct domain *t,
>>                             uint8_t devfn, device_t *dev);
>> +#ifdef CONFIG_MGMT_HYPERCALLS
>>  #ifdef CONFIG_HAS_PCI
>>      int (*get_device_group_id)(uint16_t seg, uint8_t bus, uint8_t devfn);
>>  #endif /* HAS_PCI */
>> +#endif /* MGMT_HYPERCALLS */
> 
> I remain concerned of the former two hooks staying around for x86, despite
> them now being NULL when !MGMT_HYPERCALLS. Imo, to play safe, they will
> want to be guarded (transiently) with
> 
> #if defined(CONFIG_MGMT_HYPERCALLS) || defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)

Looking at the next patch - not just transiently. The .assign_device hook
stays present there (for presumably a good reason), yet for x86 it shouldn't
exist anymore when !MGMT_HYPERCALLS.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 12:41:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 12:41:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186977.1508403 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV7sl-0005Kh-1Z; Mon, 15 Dec 2025 12:40:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186977.1508403; Mon, 15 Dec 2025 12:40:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV7sk-0005Ka-Ut; Mon, 15 Dec 2025 12:40:54 +0000
Received: by outflank-mailman (input) for mailman id 1186977;
 Mon, 15 Dec 2025 12:40:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV7sk-0005KU-AM
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 12:40:54 +0000
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com
 [2a00:1450:4864:20::432])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4a7c36b4-d9b3-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 13:40:52 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-42e2d52c24dso1741367f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 04:40:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-430f7994b58sm10659991f8f.22.2025.12.15.04.40.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 04:40:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4a7c36b4-d9b3-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765802452; x=1766407252; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JmcgfpJRZFoiyLu/clKtiuyuaQ7lTkrN7ZB7rumvucE=;
        b=bKMVcrk0vNAJDC7nQ8r0mm88NRTpcufIEVyFHUCJ3k/Yf/Jq8z2a1dNT3G1lFBa2P5
         n3CBSwoYIEuUAK4D2i8vw73qQyJo49VRK3Glk13rVRiJvmpWoWfOsCJ1UcJyxdu6YMRG
         Pape/RxMSvG8vQ7t8YOMqFkXVWe3MQyCZVdMQwytoXcz+YdsO8jM7LfxaBMYptDXnFSy
         hAZ7iwPhTkQ8plkfKNnjqpIagMj17KE8cCQZ7K30qbNVdhh4ZaXNHHfO1+5hrV3dqqH6
         mTarNnui5DlxMHr9T7yj9ONaV+4jOIMds+2UKe6nrIG8NEGxgJB1Tziczv7+peIqAI5P
         VXJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765802452; x=1766407252;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JmcgfpJRZFoiyLu/clKtiuyuaQ7lTkrN7ZB7rumvucE=;
        b=MHAS0KKaJ+HrGvK3BfO9uDL1wDZxMxwDYnGPx/TU/SN59Fdkf6cH185Xg94HEyftbG
         pqhJvdTTs1P9sTK/kt1GK7PQysHhZjX0oIivAiKug8vINW8tkUo+84W8j0pXv8tTE0n3
         9EkeDg4Kyhx9oDRohwoqKJVKUaxibp/UX7ehvyluCDeYVRXUhnxPyngyP5iy9VGevdGN
         YhA9CoZCzsw9QC+LR6fnZ6p6rCJponjRyn+Ud3HqHwD6JXCs2Xk5UFQSZLhXSUD11Y+f
         Q8e+AfFGH1i4ROiaM8TbwvXjLoM6Zxx6ZvioFIsHfVYKjYp8OIhaKYmlf62kqYyEtRGc
         aTtw==
X-Forwarded-Encrypted: i=1; AJvYcCU80tt+5Sxo9mM7m7dAPExMX/n+lKMYGLTU2yrxflu+ty2gR+ZHB7SDKtzKrD8U2S5sG1boywRuKS0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzlYBb+EySlVxD+C2acV9R7PSQy4kYWBVdsC0lTWPOo9kYMMYJZ
	plQVOgGFtWHB5i3jqJpIZhWsr7JNZooIgWBRqDeA5GIyTDf39A6N0w3JJITITNf1Sw==
X-Gm-Gg: AY/fxX7TOu+z35yBNPt3gW41teCas1/UsDL7aVZV9vlqZTBYORGD9QYU1+G+Xna9l8P
	TKW2JmqbjBd//PdZBZs7FQ/qUkgrMyQXvQSrs4u8geAIlvSFmRoO3o9WRWm6mN7nznm6ar7GY/E
	CG6EjSNKMHCZxk/TICJc04RmOEnaszlQRG7pG36hGUszVuCa9y0fVt3hhyZ1z90uJryQSh9mFmU
	wffoRdiljYcMmWaJvpxXS6ta1+iA1yKFZcWvt8fCiIMQ6UrAsLQBw0ffZ4a9Uszaxjh3BikMqYn
	yowKh9nEMKRjH8jgyvHkJ5/0Dl9m49zgxH6zPMzRf6dWMkiq495n7VpArE43f/0EzbKn9JTFYo2
	yxERFng6BRoX0Qk9GhV0GKem+K2NElfDb8+DMhmvvAcQwDcRMOAfr8PbkJ9SQblsEOlRuq/1U5A
	mGQYwBhyvDZhw5yHzV2DT/uiWBxOkgoex+pL5dXtYgTRdF2S+VaqRaLqX/JraPTHzBX0i9nRCrG
	aI=
X-Google-Smtp-Source: AGHT+IGlp94ZRfcspCZKfR8Hmcg1yzbltLQhIBilZSm6XGKowhJ24nUbrQC1sJcPy67wr87Ta/cNJw==
X-Received: by 2002:a05:6000:2405:b0:430:f23f:4bc5 with SMTP id ffacd0b85a97d-430f23f511fmr7961754f8f.45.1765802451659;
        Mon, 15 Dec 2025 04:40:51 -0800 (PST)
Message-ID: <725e7bbe-a64d-45de-92a4-d8134f4b457a@suse.com>
Date: Mon, 15 Dec 2025 13:40:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 17/24] xen/domctl: wrap iommu-related domctl op with
 CONFIG_MGMT_HYPERCALLS
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
 <20251212040209.1970553-18-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251212040209.1970553-18-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2025 05:02, Penny Zheng wrote:
> Function iommu_do_domctl() is the main entry for all iommu-related domctl-op,
> and shall be wrapped with CONFIG_MGMT_HYPERCALLS.
> Otherwise it will become unreachable when MGMT_HYPERCALLS=n, and hence
> violating Misra rule 2.1
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 12:46:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 12:46:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1186991.1508415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV7y6-000606-Oz; Mon, 15 Dec 2025 12:46:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1186991.1508415; Mon, 15 Dec 2025 12:46:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV7y6-0005zz-KD; Mon, 15 Dec 2025 12:46:26 +0000
Received: by outflank-mailman (input) for mailman id 1186991;
 Mon, 15 Dec 2025 12:46:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gbMu=6V=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vV7y5-0005zt-SG
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 12:46:25 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0d64a0e9-d9b4-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 13:46:20 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH0PR03MB6065.namprd03.prod.outlook.com (2603:10b6:610:bc::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Mon, 15 Dec
 2025 12:46:15 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9412.011; Mon, 15 Dec 2025
 12:46:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0d64a0e9-d9b4-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HLt3EYGkni1/baWVB0bj6BB6BTRqVkKw3hQL/4dBK4TqMsmlHmuCN+roDGYV3CbSNNOcPKOteYiE3pSE5Odj2MazhsleV60tUJNVCzTSV7b1Ew311AqhgbhMbNSPiwoiIX6I+aZeI1QGk2Zl3CmzlqUWo7O7TMZW30IujrxT/UXBIs3z3jb0fTYcckSYxhaQA7p1R1mzd8hGUxWALgT3Rh7NOVIuvJRCOPRP1VGsaRv2zfKEk3/EpFZ+SIWEsLD3LmIzPxmfTyZ9/R62RJCyIyJdxZUaO7ZnDAznyE0zUYk6SCJKMpeX95ezDHkGqYiFBDqKTSI58JJcbFPIv0wcxQ==
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=JnBSn4xaXsptV87b7mB+Mcy023n3BNvH3quts1eun5k=;
 b=mV0L3Atwo4GSbQqwpdpQoj4lRVRCRExUP+euO0EeAi/FlElIJNy3mSE76u8opsi76rvgq/QfE0f6WBdiXFrhaEUZ8xMnuT85askQqUshYQW+ZEK1Jphs4T2AZtLsLLLDRiGHupWKVcAibY6J5khgasmsdMgI8kmKEtG/piI5FMpQjXeqwyqenTqzrK+olMfJFPrHuLCdoGRFCJVH7SYv6Y4X2NoSjZFTa8GN/4d9cHj7ZzP4TCnbqY9t21eLCEEI7DRw50+1t0IQS8qh7WskqBJYwRZqj1kn9N2Ce/hg+SapD5fFndzH8hnOHBXWP7laHqn0pi/j8A+MrYm/oUXxwA==
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=JnBSn4xaXsptV87b7mB+Mcy023n3BNvH3quts1eun5k=;
 b=k9HbhEdkZPqA8pCfz3qtkTelV31c01cVK46yevsieJSZH1YjN2upKO4qHpVKFhbVUtOfYWDqvXc2ixSngz0u911DC1rm+fkROED7qZ5XsBZBmDEmbiu9qp91adwEdnwHxcQ+Nd8lGyiOJXl1GGoC4wwV69kLexzKZKPZiJoNXPc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <8038ba8e-ea1f-4005-94ab-56e4ab5f7062@citrix.com>
Date: Mon, 15 Dec 2025 12:46:11 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [PATCH] memory: overlapping XENMAPSPACE_gmfn_range requests
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <7d254163-ac13-4c58-bcb5-aaff2e892e15@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <7d254163-ac13-4c58-bcb5-aaff2e892e15@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0014.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ad::8) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH0PR03MB6065:EE_
X-MS-Office365-Filtering-Correlation-Id: 68f7b0b7-fd98-4a59-8a53-08de3bd7ef15
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MnBvRzNRR0pSRFZNTEVEMnNxN2d5WldVSlVRcFFXSGhxNEo1TUs2OHd5aDVy?=
 =?utf-8?B?V1NJdnJjVzZFRGlNMnFEbVpwY3ptcG9BME1GNWdpVy9Cc1FUT3U0VEhjcytB?=
 =?utf-8?B?YzJUWjIvVmZuSU1sUFZ0MW9CNzFkeURSWDVWazF4OEo1OEJNTTFyTEo5bjRN?=
 =?utf-8?B?NDRGNFByUDBrUlVFOUxsdVZtN1hjZmZwSHRvZ20wcHdOTVh5eVFrcDhKUVlO?=
 =?utf-8?B?TXhOQmdYYWYvMHBjeFovOHAvMWlIa0xQaE5DTGhOVWV2NnN3UkJmdFRSczNO?=
 =?utf-8?B?MGk1WHd3VWNONG1lVTBtRlRBL0pSRGdiNGF6MXZoQUZTcnVGYzF3VlJnMmd2?=
 =?utf-8?B?SVM0dlpjR3M3OGVvZzlxd2x4RFZrcDZOS2s5M1ZXR2ptK2lRUUhxRS9KRmV4?=
 =?utf-8?B?eDJqeTJpQnltYnRtbUdMRXU3L0tTTkFBL2t1MXMxUCtvL3NIWUFtbEUxSUpX?=
 =?utf-8?B?SjlUQXFCZm9xZ3Y2MHlXa29kcWJkeWZEYzJ4RDRhSGRvQTFpelZtd1FMeEJE?=
 =?utf-8?B?YlM2QnBNWVpCbUlGdkZSMkgxQ3BOK0NzZDJVZVhEaUpvb3Jja0Q5YkdxL0xK?=
 =?utf-8?B?cEdTN2dYMHkzQVQrN1dMWm16KzRHc2RyRDNydDlIY002Q0ZVM2Q2MWRYK2Zp?=
 =?utf-8?B?VHNqcWU3L1RDdkFPTDRBZjRnSkNJUHNRUXpld0NQeUNpMEJSdVlPWFhleDV0?=
 =?utf-8?B?Q3NCeXoxSDcyQm1XWnp2TlkvNEdIamVCSDAxMHF2SkxsdTQ3UVRyNXFLZ3JK?=
 =?utf-8?B?bzE0UnlwMXlwaFEwMjd6dmtGWXhLRjJpK1NlUXMxRytCSms3UnBBKzZ3TkJu?=
 =?utf-8?B?QTFpSk52dHNoQ25LRHhrRzFTVWhNQUxPYSt3VGluNEpvQ3JSY2lMUWZaQnQ5?=
 =?utf-8?B?bjYzZWpMaDFrM2JobzIybEU4RHRIMWJ5RGtMM080VlVyTnJFZHpwdU5ZTTNl?=
 =?utf-8?B?L3Ztak1pWndzblU2ZGlPaWRhaW9oMjdsUVQrdEZEV2cvUUdFQ01YVi9maFFr?=
 =?utf-8?B?YjgvTHVkTjdIZllhQTA2eHdlMHgyVXdyczV1QXZtZkx2SXFreXU2YWlXWHUz?=
 =?utf-8?B?ZWUrMmRBeFdrcGxBVGs3Q3k1a2VyazJ5YU5WcE5MVFlEaFdwcFBpWDhVZzNx?=
 =?utf-8?B?dTdxRHNucjZkMGFITlBsRjQzdk9hbFV4L29uZGMyd0xrVHh2WFVON3RUN0ZB?=
 =?utf-8?B?NFMvUWdpaTJBeFQxSXVYRXo1UHhIcFErZThVOGkvWWVNdHk3Mk0zUnB4U3FV?=
 =?utf-8?B?UTJQZkt0TjdkbzVCeUVIZXdoSFZramVjVE0zTWVRZytXQWhaTWp3MUZBTXU2?=
 =?utf-8?B?cE50QW4xdGNCeVBRU2piaFVPVlpHcUo5Q0xxMnVkZWFHM2Q0bVVmQlptZVdY?=
 =?utf-8?B?Q0dmdEp0QnRJempSaHJzUUlXeEc5RWV4cmxBWStMcVNoZUx0Tmx0RnpxMjZV?=
 =?utf-8?B?UVJZSGhVZGxLSkROZkhHNkF3YU5uUkVwS0UwQWpyOGs3dlc1a3BuQWQ1MSs3?=
 =?utf-8?B?ODBvRW5FUStycEJOT2pMQ29CQS9OTVN4ek9Xb2ZKaHNocHZ2cXJ1SW15NGpq?=
 =?utf-8?B?SDdMT1JpMHVhV2JDU1lKRHlsazlVWWpjbjE4TUY3S1JmQkZCYXJXcng5N3hV?=
 =?utf-8?B?OGU5QllnUlhaNTBsM3FTb1ZJVlVBR1VKTkUvK2U3My9pOTk1bXY1TnJETGp3?=
 =?utf-8?B?QWVqbjgxeGlZaTFucTJ2Y3BINVI2L2g4c0I1Q2RJbkZxa3Zia2ZRaWpnOG5M?=
 =?utf-8?B?YllQZzFDc2U5dXRBWmlBRlRPaUtDNUVQRThwMHhSNDJCUlA4b3JET3RhZ2pU?=
 =?utf-8?B?N21SejA0eVg1amJUamt4VlBRNkg4Q1FzYTlMK3NZV25YNnA2NlA3T0FoVVlJ?=
 =?utf-8?B?eEdHU3ZQbDVwY2pxVVRtcDR6RGU3YjB4M2E1d0tXSWVHa3RaL05mMDNpemdy?=
 =?utf-8?Q?jmA3h/U9EkICgSBcLPzeVk7UiULGbYvl?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UWRKbUFpSkJ0UWF1V3VXTXkxaEhrTmFrQ1hNY2NpOHkwUk13ZjBxcWdoUEhF?=
 =?utf-8?B?UGRBS0VibDVSMnJwMmJyQXp3VXBHMCt3MWRRMC9FR2t4YndHekxaS0FrMHg3?=
 =?utf-8?B?QkhwUkpvdVBxTjZqenV4YzlUSzExelAyRU9CWHVBTTdaNEc3aFE4M083NjVZ?=
 =?utf-8?B?TXhVdzN2Y0NweWNUMUlGWlR6d1E5UXdNYVpFYW5acUhBOE9KSUwrSEVPWkEw?=
 =?utf-8?B?V3ZNeXZES3NwNHdtNUc3SkJjWWdCMitXUXB2SEx2REZjcDJUVmJMSlJTaUNy?=
 =?utf-8?B?M3h0QVA4eHZoUjV1dGxUZ2JXT2orL0Vjak5BZE5QaDU0U3VYR21ETlRIN3o1?=
 =?utf-8?B?YWpGRmdUL0xRN09OWE1OZTFkVU1Oem00cGVNWnlBL3BMYnB0WW1Ed0VYS2g3?=
 =?utf-8?B?ZUUraUljaFo1Rk0xcWN4MkVScHZzazZmVmc0M0tvQS9yVXpVVEF4NE9MZmdK?=
 =?utf-8?B?M0FLKzZuMVExVkFLU0Y3QVNwV25oalkrTFFlbXBiQmt4Um84RTd3ajdWdTRr?=
 =?utf-8?B?cmRBdElnWXhFMDdkd01JTmlaS2MxMnlUVnUxR0Q5MlBRVGdVUERtWDBjRTRC?=
 =?utf-8?B?OTFGemVGMllNVmRTbHhOMVduNWZKT3FjdGN2UVo5MkVTOWRuNEVlcklCTE8r?=
 =?utf-8?B?TC9odkhOa3lrMG80WUM1RW41L0ZwRkJCSUdnbmVwMzErSmVkQ2FzOERMcUNK?=
 =?utf-8?B?SzZqd3F3alBIVUlnbUs5ak44QnozdlA2TVJmK1NMeUpQTGFYZ2F3cVN0S1BO?=
 =?utf-8?B?b0lPS3ZaNk9jUzVNSHc5THBTSER1Y05hUHhKRWEwQ0pMVVZpbUFpcXdQWW5r?=
 =?utf-8?B?QzhqYnBPTi9ONHJ6TzFKQjJvVWM4U2Izdm14Vkx0Q2RSQVJMc0Q3QktiOHMv?=
 =?utf-8?B?bW54ZzJDZXZvamRURFVXc3N1cThhM2tqWTRnYVg5alJmSGNPbjRJRkxlK2Ji?=
 =?utf-8?B?TjBDUFJpVDh5VEltR3FlU0JjY0lqdnBaWmwyTExGVzhSR0tlK1BXcGpNeXlp?=
 =?utf-8?B?Q0hsZEozSldCeDAvTWdpbjBCRVNHMzgrZVZsLzZobTBoUHNPSDBPUFJhN3A1?=
 =?utf-8?B?UUVWajhnSHdyTzNNMVFxV010MDVKSnR6S2g1c0hpeGFBek1oMlR1alZFR1JX?=
 =?utf-8?B?c25ncGxqcHlVWTRyMTEzSXRLdm16WHR2OG00eHFIVU05RlBvOXVJUmZ3K2NB?=
 =?utf-8?B?VVdYT0lnY1VPY3NqZ3NNci9xRkorekY5SmRpZERYRm53cEQ4YzlFVEppdTBT?=
 =?utf-8?B?TENSL2tYRUJuM0xVSExSZmFzcDlHQmJOMUFGbkhzZXpaUUMwUWY3K2U1SjBX?=
 =?utf-8?B?UE9KZHFsanhOcjdWbHhGSHFORmE3N2FaWjIwR1hKalNQWkdoNXA0dUFoOGw0?=
 =?utf-8?B?aE1MTXJnbnYyZlBBMVp6WWtRdEN2L0dyN1RtSEtPdGUweW9WUDV1V2Z5bWx1?=
 =?utf-8?B?dEltamVKVzFjMXJyeUxqN08weDlmYnkxcXJCV2wwSE9ZNkFVdjFmSGdScjQx?=
 =?utf-8?B?ZDFxd1lWeU5WNE9sUTRiaFI3RkM4OGJZN1owZXhpc3RHUWh6ZnZNS1hwN2ls?=
 =?utf-8?B?QlNiV0Q2U0ZNZFVNWTJPUW5kWFFhQjFmMjlJK3hPQlBTS3dRd0xjdDcxaUZ5?=
 =?utf-8?B?YXNQU2tiQTB2aVNqaHpjSlREL2lnSDFxMUNwOWJDdmxhSVRKMXV2L2hacjla?=
 =?utf-8?B?aHFnNlpvZzd0c1d3ekRCb0FUTGVuQU9DT1hQbU5YdTFrdkhBQkREQjhZTW9j?=
 =?utf-8?B?SXk2WW16RmFpdzYvdnByQWkwU2lLUkpYZGpTdlpPQU5tSmtIVDZIZm1adWVB?=
 =?utf-8?B?VGp3V0ZXSjBVdUY0ZVdEYm9SQmVrZEI2RGdXNnpTa1JIN2lraXQ2UW1RSmdD?=
 =?utf-8?B?MVBpSjBWeFgvR2t2QjVxOVBaR2o5UnE1SXhYN0JtcVptZFJuYVNWWkVTMkx0?=
 =?utf-8?B?L1pUK2k1K3B5NVMrcVRXRExwdksvODBiQThQQ1N3Q2VRTmEvWWtzZURuZXBp?=
 =?utf-8?B?Tm1WSVJDZ2pIVEN5Y2ZWZ2dHeGdkVmc0WHpmdXJkUC9KZ3c3Z1ExbkxtZXJX?=
 =?utf-8?B?VDJWSWpWZUY1MGlNcnFwNXlsejYxemZWOGowRnpwcXA4eE5Eb3lHVGgxL2ly?=
 =?utf-8?B?ektucUNqNitkYzdNa3J3ZWMrM1l4ZXFZRXRqZmk3K2hNK3FVRFROY3JLbW1T?=
 =?utf-8?B?Ymc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 68f7b0b7-fd98-4a59-8a53-08de3bd7ef15
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Dec 2025 12:46:14.9929
 (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: BVorWi5EQQ2XmxjCdIvqGmcGhpBLw++s8pGgAm0WG7HwZ8ULVoCVH3ou/cgb9ur5ziuz6N92MgXvn78PxcZzNNZiCvI08gweS7IpvHjofsY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB6065

On 15/12/2025 11:22 am, Jan Beulich wrote:
> Overlapping requests may need processing backwards, or else the intended
> effect wouldn't be achieved (and instead some pages would be moved more
> than once).
>
> Also covers XEN_DMOP_relocate_memory, where the potential issue was first
> noticed.
>
> Fixes: a04811a315e0 ("mm: New XENMEM space, XENMAPSPACE_gmfn_range")
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Of course an alternative would be to simply reject overlapping requests.
> Then we should reject all overlaps though, I think. But since the code
> change didn't end up overly intrusive, I thought I would go the "fix it"
> route first.
>
> In-place moves (->idx == ->gpfn) are effectively no-ops, but we don't look
> to short-circuit them for XENMAPSPACE_gmfn, so they're not short-circuited
> here either.

Maybe we should short-circuit them.  I can't think of anything good that
will come of having redundant TLB/IOTLB flushing.  At the best it's a
waste of time, and at the worst it covers up bugs.

>
> --- a/xen/common/memory.c
> +++ b/xen/common/memory.c
> @@ -849,7 +849,7 @@ int xenmem_add_to_physmap(struct domain
>                            unsigned int start)
>  {
>      unsigned int done = 0;
> -    long rc = 0;
> +    long rc = 0, adjust = 1;
>      union add_to_physmap_extra extra = {};
>      struct page_info *pages[16];
>  
> @@ -884,8 +884,25 @@ int xenmem_add_to_physmap(struct domain
>          return -EOVERFLOW;
>      }
>  
> -    xatp->idx += start;
> -    xatp->gpfn += start;
> +    /*
> +     * Overlapping ranges need processing backwards when destination is above
> +     * source.
> +     */
> +    if ( xatp->gpfn > xatp->idx &&
> +         unlikely(xatp->gpfn < xatp->idx + xatp->size) )
> +    {
> +        adjust = -1;
> +
> +        /* Both fields store "next item to process". */
> +        xatp->idx += xatp->size - start - 1;
> +        xatp->gpfn += xatp->size - start - 1;
> +    }
> +    else
> +    {
> +        xatp->idx += start;
> +        xatp->gpfn += start;
> +    }

These fields get written back during continuations.

XEN_DMOP_relocate_memory will corrupt itself, given the expectation that
'done' only moves forwards.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 12:50:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 12:50:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187000.1508424 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV81o-0007lO-5t; Mon, 15 Dec 2025 12:50:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187000.1508424; Mon, 15 Dec 2025 12:50:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV81o-0007lH-2l; Mon, 15 Dec 2025 12:50:16 +0000
Received: by outflank-mailman (input) for mailman id 1187000;
 Mon, 15 Dec 2025 12:50:15 +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 <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV81n-0007lB-3j
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 12:50:15 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9911ad26-d9b4-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 13:50:13 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-477619f8ae5so26381525e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 04:50:13 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f6f118esm72255745e9.3.2025.12.15.04.50.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 04:50:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9911ad26-d9b4-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765803013; x=1766407813; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=V0a7lLUjSX3NokxNjCBEIrxQK10UTN7G3Brkr3DLc8M=;
        b=grR5rY+4/B1KwwHKfQ0wurzoxgKWReIYAZYStAIijaCQ0Rabzr7IVtFBkr4ICyHTR5
         LNfYAVR5tM2xbtR6sPRUKsqMtPyuY56TLwabh62IKMzOv2XZZ5VizevvxqoQ1vf2ingF
         gvNVIJ988x17kFP6908IEDp9i/BdpUEaevYlf/pVcHeJQ0utSdo67Uhrr9SQfFYV9gIP
         AZzDr8NoYhu9wG8gemUpHewLfX+tOa/zJ9YVO3sUh9Lm0PStplIt6unRcH45ocT9P66u
         raZeVEbcnx169Sh+Dgm+CkuA5PQkL3tDCss+kSQKqMsOrPbKk2H8p7N/et6q6g7DDnia
         mHpw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765803013; x=1766407813;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=V0a7lLUjSX3NokxNjCBEIrxQK10UTN7G3Brkr3DLc8M=;
        b=F70wlnTCZWqf4z2cyrAYaZlHigDdU8+SjUyMgExlGB2lgfT3JUG1WgfA6hTGMOjEYK
         Sge0dyL5EJNCTmBRgZj+qNfvJ+roftNzQWq8PcG2kgcrjY84Nior4W6WebOyXwP+kMGo
         VKbefyPDa4cwCE1kwpsH+hbRCWf5dbxfxFXOND885RH+I6TbO35UrbOvsmySL+DWVwvF
         uapP4DjqFeN1TPH0Aqdy+hBsvJlgWy8KnWZBqcMwx44pVbXejveUkKTkHncUg7R744fY
         b43Vxuny/BOAJBQIhCkP0RdT1TOlTaCoQ6gau7zgviUYZCiaf6srZ6N7ElXLUUEo8MIT
         fAYQ==
X-Forwarded-Encrypted: i=1; AJvYcCXBOg715KdEkgQNyzYalspnTs2asJ8NO4n/X0mIcDIykyalgqyeQyJi70scxdN2LFw/d+/8xrYpPjw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxoS9If9sJN0u97emSW406MvoL4DIGyeGBKn3TpJqtjV+5EwUJF
	0jizklBtl69oN2dBfg9p0DEjD10GEdLuDR/rhdv/abzMGA3DAo4lYSuK/Zcw7FnKWA==
X-Gm-Gg: AY/fxX52N978pbM2CAY9ZuZbWggk1d7pMx+lDRIUDVwzwGKmJ9vdqhCE/prE9K/C0SO
	mJDPafUDF5Y9UNY4vOmsvEmmi2vJ0iVDnd8Qgk8MnsJsUe+0A8JTZD5BzmU+d33Oxsh1EyJLx15
	wK1ChFobrGe5ftke7kbG5rmZ4idwQ9C86Y4SloqwzA8vJEIJq3niXilbmBWP7m//X+Pc0IGAprh
	Xl7monJYPFU4flq+FaVI558D+CEpWqYg9i4M7DOJXWD4Vc9NEUTyL4lcqKk+ln99nsV4zmJMkl9
	cnXCZkM67J1LMiguWpqK8wtApuqHRPPfIL0n3jIOWedddXY05Zfw4EN5ewgbD0rIi4NFZrBbycI
	wE0xO/NwL6pGp20szczijPMjuhqE6SpLLMwkLrokgHoyoq+VrmstpmmvE5iF5fHPssSEXuigumb
	XvzC+kJXeUp19hd7Phhe3sffirco0f+9IGc3FkFO2PSyrzxzAjqJVnEvleStdPAOEsvhfHpKH/r
	fMl1QLj1rWIwA==
X-Google-Smtp-Source: AGHT+IFYRxoTB1iC7pB0YZasPGJqVkoqcihp+HiAGE2Dtc2YP3aSSyNv2pCx3u0zCi3p0J6rZ/KxqA==
X-Received: by 2002:a05:600d:8449:b0:477:79f8:daa8 with SMTP id 5b1f17b1804b1-47a908011f8mr90939105e9.17.1765803012872;
        Mon, 15 Dec 2025 04:50:12 -0800 (PST)
Message-ID: <5d4df3f0-1391-4063-ba48-684ca5058af3@suse.com>
Date: Mon, 15 Dec 2025 13:50:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 20/24] xen/x86: wrap x86-specific domctl-op with
 CONFIG_MGMT_HYPERCALLS
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
 <20251212040209.1970553-21-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251212040209.1970553-21-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2025 05:02, Penny Zheng wrote:
> --- a/xen/arch/x86/include/asm/paging.h
> +++ b/xen/arch/x86/include/asm/paging.h
> @@ -57,7 +57,8 @@
>  #endif
>  #if defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
>  /* Enable log dirty mode */
> -#define PG_log_dirty   (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)
> +#define PG_log_dirty   IS_ENABLED(CONFIG_MGMT_HYPERCALLS) &&                \
> +                        (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)

This needs wrapping in parentheses, at which point indentation of the 2nd line
will then also be correct.

> --- a/xen/include/hypercall-defs.c
> +++ b/xen/include/hypercall-defs.c
> @@ -196,10 +196,10 @@ dm_op(domid_t domid, unsigned int nr_bufs, xen_dm_op_buf_t *bufs)
>  #endif
>  #ifdef CONFIG_MGMT_HYPERCALLS
>  sysctl(xen_sysctl_t *u_sysctl)
> -#endif
>  #if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
>  paging_domctl_cont(xen_domctl_t *u_domctl)
>  #endif
> +#endif

/* CONFIG_MGMT_HYPERCALLS */ please (as soon as #if-s nest or there's other
complexity).

> @@ -279,6 +279,9 @@ hvm_op                             do       do       do       do       do
>  #endif
>  #ifdef CONFIG_MGMT_HYPERCALLS
>  sysctl                             do       do       do       do       do
> +#if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
> +paging_domctl_cont                 do       do       do       do       -
> +#endif
>  #endif
>  #ifndef CONFIG_PV_SHIM_EXCLUSIVE
>  domctl                             do       do       do       do       do

Hmm, paging_domctl_cont ahead of domctl isn't very nice. Of course much depends
on how all of this will look by the end of the series.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 13:45:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 13:45:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187012.1508433 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV8su-00067U-0x; Mon, 15 Dec 2025 13:45:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187012.1508433; Mon, 15 Dec 2025 13:45:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV8st-00067N-UQ; Mon, 15 Dec 2025 13:45:07 +0000
Received: by outflank-mailman (input) for mailman id 1187012;
 Mon, 15 Dec 2025 13:45:06 +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
 <SRS0=3rAy=6V=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vV8ss-000679-2d
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 13:45:06 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 41bd9432-d9bc-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 14:45:03 +0100 (CET)
Received: from CH0PR03CA0004.namprd03.prod.outlook.com (2603:10b6:610:b0::9)
 by DS2PR12MB9800.namprd12.prod.outlook.com (2603:10b6:8:2b5::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Mon, 15 Dec
 2025 13:45:00 +0000
Received: from CH3PEPF0000000F.namprd04.prod.outlook.com
 (2603:10b6:610:b0:cafe::2b) by CH0PR03CA0004.outlook.office365.com
 (2603:10b6:610:b0::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.13 via Frontend Transport; Mon,
 15 Dec 2025 13:45:00 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CH3PEPF0000000F.mail.protection.outlook.com (10.167.244.40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9434.6 via Frontend Transport; Mon, 15 Dec 2025 13:44:59 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Mon, 15 Dec
 2025 07:44:59 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 15 Dec
 2025 07:44:59 -0600
Received: from [10.252.147.171] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 15 Dec 2025 07:44:57 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 41bd9432-d9bc-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ji/2chMew3h7Y8Vy6FOfcCxoAfDqpHNLYKC+RFEGYIokwi1v1AeWzq5k56XKd87M0xP6BW5lgiwcPt3fVqVY7BB4n+DiMk7KDpLSos+/Jroav7gQ0GXg1LcHzKushSXZFjX0qaDTGdAwOkIEBSmZFyzcWSek2xQqEbqETf1R+TYb+Ng0JS+rkTJZPq8+QjMfc23vYLi7AxmCuKkXd8w6lbQO4qUbpZFV2FNIUOhcyaICJOEE+t+KC8whl7lm6+cXXedn/8bcBeRxvyIUBL9QqvltRyZQ6jZkXjf2NRqK4TSEBpN6uJkML6YfGQV2lzgPNnvY8MPWLER+XYXaIU89IA==
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=SPLzV0a4mDRe2usJmIZFfJD9N2c/94KRAVWb9iAi4yI=;
 b=hSilpwngvi8dp+N8hXz+nKG/ex/KxcU/wId9QQyQiAds1SJ2VHQxN9tp/uwHwSG3VGqSX57VMH7024H6aPF0JuYAXziHc2WkG+7milJLleEGYMsT1UmF+M5OGBhpYIMnAoie3hSTDiwv2a1bgDI6NDGO52wOZcxiJAJ69RThB0KFTo3B9+6ffX5sNgVO2eX5RQtfeBzCON7UMX9pvDlVD2Q3GkKGkT1eGcL2BYgPwiYJ42c5qdHdJyImiccKqjw5m33F9CGGkPKJxUIvHgb/kQNk/nmw6/5y5UT3ZZaiEf7CgESdDvEjpBX7SZ911HuZNQbGVuym+yPAlUZYYjedCw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SPLzV0a4mDRe2usJmIZFfJD9N2c/94KRAVWb9iAi4yI=;
 b=1b/heCFtG+iykOdR3COpKtoXkKPq/PxuOWTJD+3/EfnBmFtSUfWbua1ZZpBzlPqsVxp7vb/X9Y3i+OJDHGZdHmb8xt0JScNaTktfbpl+CIyawgs2Qc3YZJkzsp2n6nkEJsenn8CTpK/4yPwlZajztsYZycgabMZXHQz8xQ3f29I=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <d0460e29-153e-4fc2-9744-95a2183fb31b@amd.com>
Date: Mon, 15 Dec 2025 14:44:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/6] arm: Use secure hypervisor timer in MPU system
To: Harry Ramsey <harry.ramsey@arm.com>, <xen-devel@lists.xenproject.org>
CC: <Luca.Fancellu@arm.com>, Penny Zheng <Penny.Zheng@arm.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Wei Chen <wei.chen@arm.com>
References: <20251128095859.11264-1-harry.ramsey@arm.com>
 <20251128095859.11264-6-harry.ramsey@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20251128095859.11264-6-harry.ramsey@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PEPF0000000F:EE_|DS2PR12MB9800:EE_
X-MS-Office365-Filtering-Correlation-Id: d7946584-59aa-460f-f782-08de3be0243d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?a2Uzb01iUDQzeFJpRTFwN2lwNVJCRUtaRmdSMWZvaExXbUQyQTkyNEF4NVVC?=
 =?utf-8?B?M3JZcGc1NEEwWjdnNVAxNzZDR29PdU14NHlXdzQwK2VMWkhweWJRS1RFUS9z?=
 =?utf-8?B?V2pKNmFzbWNPczVwOGhuRHZrc2dWcEYydThpcmw1aUlqekc2T2EwbHBmTWl2?=
 =?utf-8?B?ZEFadXQ1OWQxRi82K0Mwd3F3eFduajc2b1phRTVXblVKaU45SHk3VlptYzRa?=
 =?utf-8?B?L0t4SDA4NW9UTC8yM0RYbUQxSmRGczNoZEpqQlgwcEdwZGtKaTVmWnk3WlRK?=
 =?utf-8?B?NjRqSVhydElMTTVqV2FtSWhsUklPOTBkYm53NHY2eDA3TUh5eWtxK1EvQS9a?=
 =?utf-8?B?MHNtbDN0S0Q0VTRUMWpLQ1U3YWhqeE40MnM1YXk2MVUxNnB4bGxNRTJZZHdl?=
 =?utf-8?B?SkxwM2pWNFRESzR3L2diWW9FOUE3L1FjVGhVVEZjdlU3VUZYSDlZV0ZWY09q?=
 =?utf-8?B?bHc1TDJBcGRZbnB0QnEyY1dldXAwcGlZYWErQTVGeWpQWU02bzRjZDBlWHpD?=
 =?utf-8?B?RVFIZjNMa29iK1NwbmszM2UrbGNKZHZTTlh2cGhBM0lqenNmeW83NlpqTklY?=
 =?utf-8?B?cEtQaUNNWHhwc2JBbzBBWkhNd2JUQklzVnJsTk55d1praktkWGVtY3o5dXFw?=
 =?utf-8?B?WHVYS2YrL1ZiQ3hZN3JQS1dEUjg1UDJqVlFHSWNPc1hUTWlyWlVvb0VxQnAz?=
 =?utf-8?B?T01pOC83UnZyaE1QOW9GS3NBQ29xaFdRR2xLZHNOb3F3dHlMeVp0U1ZWN3Zq?=
 =?utf-8?B?SFRkSE9CaUs5cjNkWmhQWmMxR1QzUkdmUktxWlowSUdvYmV5WGUzT0lnckEx?=
 =?utf-8?B?K3VGR1RaYzRWQXBGb3phcm5CWTZzcXVnWDU3bDVmZGVucHh5bElpTTlHN2RE?=
 =?utf-8?B?UTMxVm5LWEFmVHYxWWF2ZHY1Q2dIRWdoK25qai9uL3ZhNm10cVNxdjBweVQ1?=
 =?utf-8?B?VzVxYW1IVXQwKy81UVJsQ0hTd2xQVTZJcldGOHR4N0EvaEtPL1hrSEM5bVMw?=
 =?utf-8?B?RU5PcStLeWJpZUtPYnNCVHpGa3BObHk2WDR4WDZNeUVyTXZBOVJpYm5IL3Fn?=
 =?utf-8?B?L0t2M1YyM2hwZW9heElGL1ROZlpqRENXYkFrOUtZelBMMWxRM3dGbnljU2Y0?=
 =?utf-8?B?UGxvNFV3NkZnTlA4YXprRVZiNk13L2R0MUgvbnlIdFVWbS9wRkdGTXpkME5I?=
 =?utf-8?B?akszZVltWnRocjFHSDJnNlR4WkhJSENGUWE3elRBamVLWmpUUm1kSkVtZStv?=
 =?utf-8?B?bmo5RkZXeklFRXdHOGc0MEdycFhvTFY5ZmlBM3FKVlJTVllzN3lZQUozNEd4?=
 =?utf-8?B?Skhnb1VZVGhxQlZLMElXQVJrcFY3VXlFa1M0bWdocVhFRHJ2TjVRWWZHQUFF?=
 =?utf-8?B?WEdnOHZrNWhQbUNZRXB2TStuK2RIOEYwSkhxSC9BUFpmLzZ3c005SUxpT2VL?=
 =?utf-8?B?WWF5a1huZjVyTEt0d1o2a2JkRzlsS1RHcDBacEhTb0t3eWYwKzB3RXhOam5h?=
 =?utf-8?B?djZvd0xJZGxFMEYrRWpTVXMrbU9pUXpad1hZY21ncjMwd0dqTllrVXRyWUhz?=
 =?utf-8?B?R1d1OWtnQ0hoQ2Y2VWFsZUJMODdCWkFkaHh4dnkzaitIZVZJQkFtVmlGR2tE?=
 =?utf-8?B?bURuS1c2WEtaZFYrLzB4VzUrNmhuWTN2bjBoc3pDakNnMENzZTFISkdnR0RI?=
 =?utf-8?B?NFA3Z0Q0NnhzWHNiSWtLRTVSN1NQdURxYTJZYTJjK1RKT1g4K1NncVVJdm1s?=
 =?utf-8?B?a2l3YzlVL2hKNE4waDMvaERIZytBbkFSNnNwQTE3cUg0eEwyMmFIS3IwK2dl?=
 =?utf-8?B?dWtGN3gyY1JkTTNBNldzcG5QcDBUTTVBSVdranR2R2grRFh1NFF0cWEwK0Jl?=
 =?utf-8?B?U1FXMFpsMFgzdG5DMkNJM1N5a1Z5T054NXdWdmxmS3orb3J3TnlDSmJsY3JE?=
 =?utf-8?B?OTRXcmlqa1VxUEJFRHZoNCs4dldSY0EwamY0Z2xza29Gb1Q3OFJ4bE9xQmo1?=
 =?utf-8?B?VzJZVThic2FKWEh5RitQVEJ1WXU4TzFTUjhrdzE3elBxUmQ2RWVvMlM0QXBl?=
 =?utf-8?B?cWRhWHV4Z29GY1Nhb09wZmhJTHJad3plc216aTYyMjQvc1ZiMURuRUd6L3A4?=
 =?utf-8?Q?G+5Y=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Dec 2025 13:44:59.9399
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d7946584-59aa-460f-f782-08de3be0243d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH3PEPF0000000F.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR12MB9800



On 28/11/2025 10:58, Harry Ramsey wrote:
> From: Penny Zheng <Penny.Zheng@arm.com>
> 
> As MPU systems only have one secure state, we have to use secure EL2
> hypervisor timer for Xen in secure EL2.
> 
> In this patch, we introduce a new Kconfig option ARM_SECURE_STATE
> and a set of secure hypervisor timer registers CNTHPS_*_EL2.
> We alias CNTHP_*_EL2 to CNTHPS_*_EL2 to keep the timer code
> flow unchanged.
> 
> Signed-off-by: Penny Zheng <penny.zheng@arm.com>
> Signed-off-by: Wei Chen <wei.chen@arm.com>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
> ---
>  xen/arch/arm/Kconfig                     |  5 +++++
>  xen/arch/arm/include/asm/arm64/sysregs.h | 12 ++++++++++++
>  2 files changed, 17 insertions(+)
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index cf6af68299..a5c111e08e 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -91,6 +91,7 @@ config MMU
>  
>  config MPU
>  	bool "MPU" if UNSUPPORTED
> +	select ARM_SECURE_STATE if ARM_64
>  	select STATIC_MEMORY
>  	help
>  	  Memory Protection Unit (MPU). Select if you plan to run Xen on ARMv8-R
> @@ -223,6 +224,10 @@ config HARDEN_BRANCH_PREDICTOR
>  
>  	  If unsure, say Y.
>  
> +config ARM_SECURE_STATE
> +	bool "Xen will run in Arm Secure State"
> +	default n
No need, n is a default. I don't think this should be a selectable option.

> +
>  config ARM64_PTR_AUTH
>  	def_bool n
>  	depends on ARM_64
> diff --git a/xen/arch/arm/include/asm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
> index 7440d495e4..29caad7155 100644
> --- a/xen/arch/arm/include/asm/arm64/sysregs.h
> +++ b/xen/arch/arm/include/asm/arm64/sysregs.h
> @@ -462,6 +462,18 @@
>  #define ZCR_ELx_LEN_SIZE             9
>  #define ZCR_ELx_LEN_MASK             0x1ff
>  
> +#ifdef CONFIG_ARM_SECURE_STATE
> +/*
> + * The Armv8-R AArch64 architecture always executes code in Secure
> + * state with EL2 as the highest Exception.
s/Exception/exception level/

> + *
> + * Hypervisor timer registers for Secure EL2.
> + */
> +#define CNTHP_TVAL_EL2  CNTHPS_TVAL_EL2
TVAL is not used in Xen, so you can drop it

> +#define CNTHP_CTL_EL2   CNTHPS_CTL_EL2
> +#define CNTHP_CVAL_EL2  CNTHPS_CVAL_EL2
EL1 will still use the NS EL1 timer (CNTP)?

> +#endif
> +
>  #define REGION_TEXT_PRBAR       0x38    /* SH=11 AP=10 XN=00 */
>  #define REGION_RO_PRBAR         0x3A    /* SH=11 AP=10 XN=10 */
>  #define REGION_DATA_PRBAR       0x32    /* SH=11 AP=00 XN=10 */

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 13:51:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 13:51:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187026.1508443 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV8zC-0007qD-Oj; Mon, 15 Dec 2025 13:51:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187026.1508443; Mon, 15 Dec 2025 13:51:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV8zC-0007q6-MJ; Mon, 15 Dec 2025 13:51:38 +0000
Received: by outflank-mailman (input) for mailman id 1187026;
 Mon, 15 Dec 2025 13:51:37 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1vV8zB-0007q0-Rw
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 13:51:37 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vV8zB-00B7yS-1F;
 Mon, 15 Dec 2025 13:51:37 +0000
Received: from [2a01:cb15:80df:da00:8c91:1441:8140:73df] (helo=l14.home)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vV8zB-007Yk3-0i;
 Mon, 15 Dec 2025 13:51:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	Message-ID:Date:Subject:Cc:To:From;
	bh=e12dchVFz9MNJ7K2j8AuX0whONk3kd5v2l187O07Ymg=; b=c3mHbiXM1S6J9p+h/+eVwzSav8
	xiWIzqVeDe2w6/T+FzErCbgJSAalzwHo4V9wZnxJYvzIDdtASfhP598LMIXSpIgle7ka3XYwUpWoD
	Bk+WgZCwOInMgy4zjkIdu+OKTZL2MnCZRu3bdQ3tCjg2PcmwLS97Ehg0HG+sjUK/8avU=;
From: Anthony PERARD <anthony@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [XEN PATCH] libxl: Fix device_add QMP calls with QEMU 9.2 and newer
Date: Mon, 15 Dec 2025 14:51:24 +0100
Message-ID: <20251215135124.11410-1-anthony@xenproject.org>
X-Mailer: git-send-email 2.47.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Anthony PERARD <anthony.perard@vates.tech>

QEMU used to ignore JSON types and do conversion string <-> integer
automatically for the command "device_add", but that was removed in
QEMU 9.2 (428d1789df91 ("docs/about: Belatedly document tightening of
QMP device_add checking")).

Fixes: 9718ab394d5d ("libxl_usb: Make libxl__device_usbctrl_add uses ev_qmp")
Fixes: 40c7eca10a82 ("libxl_usb: Make libxl__device_usbdev_add uses ev_qmp")
Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---

Notes:
    I've check other `device_add` call site which are for PCI devices and
    CPUs, and they both are already correct.

 tools/libs/light/libxl_usb.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/tools/libs/light/libxl_usb.c b/tools/libs/light/libxl_usb.c
index c5ae59681c..4e7c409fe6 100644
--- a/tools/libs/light/libxl_usb.c
+++ b/tools/libs/light/libxl_usb.c
@@ -367,10 +367,10 @@ static int libxl__device_usbctrl_add_hvm(libxl__egc *egc, libxl__ev_qmp *qmp,
     case 3:
         libxl__qmp_param_add_string(gc, &qmp_args,
                                     "driver", "nec-usb-xhci");
-        libxl__qmp_param_add_string(gc, &qmp_args, "p2",
-                                    GCSPRINTF("%d", usbctrl->ports));
-        libxl__qmp_param_add_string(gc, &qmp_args, "p3",
-                                    GCSPRINTF("%d", usbctrl->ports));
+        libxl__qmp_param_add_integer(gc, &qmp_args, "p2",
+                                     usbctrl->ports);
+        libxl__qmp_param_add_integer(gc, &qmp_args, "p3",
+                                     usbctrl->ports);
         break;
     default:
         abort(); /* Should not be possible. */
@@ -411,10 +411,10 @@ static int libxl__device_usbdev_add_hvm(libxl__egc *egc, libxl__ev_qmp *qmp,
         GCSPRINTF("xenusb-%d.0", usbdev->ctrl));
     libxl__qmp_param_add_string(gc, &qmp_args, "port",
         GCSPRINTF("%d", usbdev->port));
-    libxl__qmp_param_add_string(gc, &qmp_args, "hostbus",
-        GCSPRINTF("%d", usbdev->u.hostdev.hostbus));
-    libxl__qmp_param_add_string(gc, &qmp_args, "hostaddr",
-        GCSPRINTF("%d", usbdev->u.hostdev.hostaddr));
+    libxl__qmp_param_add_integer(gc, &qmp_args, "hostbus",
+                                 usbdev->u.hostdev.hostbus);
+    libxl__qmp_param_add_integer(gc, &qmp_args, "hostaddr",
+                                 usbdev->u.hostdev.hostaddr);
 
     return libxl__ev_qmp_send(egc, qmp, "device_add", qmp_args);
 }
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:02:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:02:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187035.1508454 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV99H-0001C5-KG; Mon, 15 Dec 2025 14:02:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187035.1508454; Mon, 15 Dec 2025 14:02:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV99H-0001By-Hi; Mon, 15 Dec 2025 14:02:03 +0000
Received: by outflank-mailman (input) for mailman id 1187035;
 Mon, 15 Dec 2025 14:02:03 +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 <SRS0=AJJs=6V=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vV99H-0001Br-1O
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:02:03 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a0e2fff0-d9be-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 15:02:01 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 91C535BDB0;
 Mon, 15 Dec 2025 14:01:59 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 5C8233EA63;
 Mon, 15 Dec 2025 14:01:59 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id P8jFFNcUQGnxCAAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 15 Dec 2025 14:01:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a0e2fff0-d9be-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1765807320; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=dNwTyCCp+f4prVtY6C2cOfFvQebZh66No6E4JXFnYr8=;
	b=MuIdn3I+zzGB0N72psSXxAUkTzXWpikTkbDTlXrpI7BPqNKcCS9X1emI4nRciVhEL3NedR
	mCL3ZBO5yX+zFWfm9c3TUSp5qO5yzRQX68gV7hUYD1PWTUYoD8DNcWVjSb0gZYm0q5qXbV
	EXJ1hCqIp1z97pGxMYIU7xLzNcq1w8c=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=Fc7IFZ+b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1765807319; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=dNwTyCCp+f4prVtY6C2cOfFvQebZh66No6E4JXFnYr8=;
	b=Fc7IFZ+bHdnG+h2GUEO6XgVg1maOvLSWVRTNmiinfLHaTG/nAUgNK/94bWv7RKPEiWlC81
	BUywXMPjiTVO6KM7WnEjYB82AEN5PCIQmVEiEJbdgtiqdiY4wotmuSRKz166tL/1qUkZu1
	m+6RhBd3U1ODPbZnBf0d7lRRCEwhi8k=
Message-ID: <0e5e9673-bd12-4da8-b02f-970aeb5fccb5@suse.com>
Date: Mon, 15 Dec 2025 15:01:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] libxl: Fix device_add QMP calls with QEMU 9.2 and
 newer
To: Anthony PERARD <anthony@xenproject.org>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20251215135124.11410-1-anthony@xenproject.org>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20251215135124.11410-1-anthony@xenproject.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------zEaJ60rfyop1eZriIbqJGNy4"
X-Spamd-Result: default: False [-5.41 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	SIGNED_PGP(-2.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MIME_BASE64_TEXT_BOGUS(1.00)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	NEURAL_HAM_SHORT(-0.20)[-0.997];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MIME_BASE64_TEXT(0.10)[];
	MX_GOOD(-0.01)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	TO_DN_SOME(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	MID_RHS_MATCH_FROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	RCPT_COUNT_THREE(0.00)[3];
	HAS_ATTACHMENT(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:dkim,suse.com:mid,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns]
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spam-Level: 
X-Rspamd-Queue-Id: 91C535BDB0
X-Spam-Flag: NO
X-Spam-Score: -5.41

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------zEaJ60rfyop1eZriIbqJGNy4
Content-Type: multipart/mixed; boundary="------------oFBPdpP20JDp3eHMWzpS90Ss";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Anthony PERARD <anthony@xenproject.org>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
Message-ID: <0e5e9673-bd12-4da8-b02f-970aeb5fccb5@suse.com>
Subject: Re: [XEN PATCH] libxl: Fix device_add QMP calls with QEMU 9.2 and
 newer
References: <20251215135124.11410-1-anthony@xenproject.org>
In-Reply-To: <20251215135124.11410-1-anthony@xenproject.org>

--------------oFBPdpP20JDp3eHMWzpS90Ss
Content-Type: multipart/mixed; boundary="------------O7TPid0clUfBJRuN2S3WMZbi"

--------------O7TPid0clUfBJRuN2S3WMZbi
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMTUuMTIuMjUgMTQ6NTEsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBGcm9tOiBBbnRo
b255IFBFUkFSRCA8YW50aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD4NCj4gDQo+IFFFTVUgdXNl
ZCB0byBpZ25vcmUgSlNPTiB0eXBlcyBhbmQgZG8gY29udmVyc2lvbiBzdHJpbmcgPC0+IGlu
dGVnZXINCj4gYXV0b21hdGljYWxseSBmb3IgdGhlIGNvbW1hbmQgImRldmljZV9hZGQiLCBi
dXQgdGhhdCB3YXMgcmVtb3ZlZCBpbg0KPiBRRU1VIDkuMiAoNDI4ZDE3ODlkZjkxICgiZG9j
cy9hYm91dDogQmVsYXRlZGx5IGRvY3VtZW50IHRpZ2h0ZW5pbmcgb2YNCj4gUU1QIGRldmlj
ZV9hZGQgY2hlY2tpbmciKSkuDQo+IA0KPiBGaXhlczogOTcxOGFiMzk0ZDVkICgibGlieGxf
dXNiOiBNYWtlIGxpYnhsX19kZXZpY2VfdXNiY3RybF9hZGQgdXNlcyBldl9xbXAiKQ0KPiBG
aXhlczogNDBjN2VjYTEwYTgyICgibGlieGxfdXNiOiBNYWtlIGxpYnhsX19kZXZpY2VfdXNi
ZGV2X2FkZCB1c2VzIGV2X3FtcCIpDQo+IFNpZ25lZC1vZmYtYnk6IEFudGhvbnkgUEVSQVJE
IDxhbnRob255LnBlcmFyZEB2YXRlcy50ZWNoPg0KDQpSZXZpZXdlZC1ieTogSnVlcmdlbiBH
cm9zcyA8amdyb3NzQHN1c2UuY29tPg0KDQoNCkp1ZXJnZW4NCg==
--------------O7TPid0clUfBJRuN2S3WMZbi
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------O7TPid0clUfBJRuN2S3WMZbi--

--------------oFBPdpP20JDp3eHMWzpS90Ss--

--------------zEaJ60rfyop1eZriIbqJGNy4
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmlAFNYFAwAAAAAACgkQsN6d1ii/Ey/d
3wf+MG+mfXolYj9i9WF7MNVF12dn8nh5ZQE2L/xtUWalaOfzwxdcaP4JfIDgIHFZCUmXLrzFlBCl
psELKjGI5ViOJkzLHpamADp1UhODokw0PmQVXIpdmVrXoQu55cp+5kNMs+XDbpsl/L9SUUTLRuH9
+xFInDi4B94F+VT74rr6qPrWsWQ+S91agqii92Dnb4Ondpe+A5++ZGehZBMZSk+9ldSiUxn/6OMQ
dVUT+zzxZqHK+c16IdwHyfOCesyDpfvOsGbvDBnE25gQhHjhoE7fqO7mSotZZph4x+rjDJBAmtX4
aqm2l0OEiVh4h1E2fMofywbh00JetSHGJsHLcfiy6Q==
=4WuR
-----END PGP SIGNATURE-----

--------------zEaJ60rfyop1eZriIbqJGNy4--


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:10:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:10:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187044.1508464 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9Gx-0001tK-D8; Mon, 15 Dec 2025 14:09:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187044.1508464; Mon, 15 Dec 2025 14:09:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9Gx-0001tD-9b; Mon, 15 Dec 2025 14:09:59 +0000
Received: by outflank-mailman (input) for mailman id 1187044;
 Mon, 15 Dec 2025 14:09:58 +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
 <SRS0=Pjwr=6V=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vV9Gw-0001t7-Ca
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:09:58 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bb7ca1b2-d9bf-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 15:09:56 +0100 (CET)
Received: from BN1PR13CA0004.namprd13.prod.outlook.com (2603:10b6:408:e2::9)
 by MW6PR12MB8663.namprd12.prod.outlook.com (2603:10b6:303:240::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Mon, 15 Dec
 2025 14:09:50 +0000
Received: from BN1PEPF00004684.namprd03.prod.outlook.com
 (2603:10b6:408:e2:cafe::58) by BN1PR13CA0004.outlook.office365.com
 (2603:10b6:408:e2::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Mon,
 15 Dec 2025 14:09:39 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN1PEPF00004684.mail.protection.outlook.com (10.167.243.90) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9434.6 via Frontend Transport; Mon, 15 Dec 2025 14:09:50 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 15 Dec
 2025 08:09:49 -0600
Received: from [172.24.22.120] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 15 Dec 2025 06:09:48 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb7ca1b2-d9bf-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zRVdAHsnFuOPy5DZKpGyPLpLXmLfd2GC0iENr9Utj2K1guss+X+7t75KxvDvqp2hXcn16tgy5rAENRteK9+dbE8QvJPig18mQrTrsRMAUy0pGe6VvHMGEZWwQZonDLI/0KnXQNVP2Bg/i0HydqUi0Cz8WrYDTPGRl0SU1tZVTifFVq/bd17wb3TEbMQlU/7+AWwhjR55Wrf+rTuE53+soWpKiHhwDzlU+JHODUq3X80cgpEqOVg5IxeyBgWBhtNk7L+gDDOXS0/8JvxVp4AOMCyh5D01rP4+I612Q3Ga93aQhnL2Zm1uNOKnwhjESq8F/hEMdHGd+EsdK3AAlBXOQw==
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=v5Ngp4Cw/KVUFwKUdgTxgebpD/pZuZwpDbwRoLX/T8c=;
 b=qOKvbrlojbGOeqz7GfQaqHtVJiyzKV1siHONy3Tb8f9Mp1sW9sa5H5P/e1Gtd/7rKVcu5TpA/7CMl1aOqemULTma241QNW6lAfmGVmuL28LvZDcYRBFPoH4rEfVQKL1lB+a4JX8EyQZWjlHkehQlZyvBPpHdqbctZ/IminNW97HaAwQvkOLnCNlTCej9ka6DEw388TfeMrYchYzK6klx/wtaRg8yvasE+nN7c98iLQjsyODEmt/v7y+TCcpojTboAoTqJJmQg1zpag/alzU+F1UIWiISEoDIHwQ5KXxlMU3SYdLwMnbg0XJpV8FDivGII5nsD9Lla1EaCQ0nbQT7ow==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=v5Ngp4Cw/KVUFwKUdgTxgebpD/pZuZwpDbwRoLX/T8c=;
 b=d2O3DS1E6Njo6M7BfgFIhJFfskOiajkKibIfjLG2e8UPgKQ0Silxujaw+HkzkKMRkrpHXhmBayQvfyZx6vrhumVsUXuWEF8Ur9AKF2aj8MvOOC0FKvqSa2pjzQdUIcJ7hHIJrTiEzgmJtpdgFUlZk+EvQFki60XjlIVPe5n5fm0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <fee2760b-e49b-4025-9e97-040de2b28372@amd.com>
Date: Mon, 15 Dec 2025 09:09:47 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/x86: Pass TPM ACPI table to PVH dom0
To: Andrew Cooper <andrew.cooper3@citrix.com>,
	<xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Daniel Smith <dpsmith@apertussolutions.com>,
	"krystian.hebel@3mdeb.com" <krystian.hebel@3mdeb.com>, Sergii Dmytruk
	<sergii.dmytruk@3mdeb.com>, Ross Philipson <ross.philipson@oracle.com>
References: <20251212222949.626539-1-jason.andryuk@amd.com>
 <4c548455-ea55-430d-9fe7-6a6cf21eec38@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <4c548455-ea55-430d-9fe7-6a6cf21eec38@citrix.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004684:EE_|MW6PR12MB8663:EE_
X-MS-Office365-Filtering-Correlation-Id: 008976ca-a902-4ee7-d397-08de3be39c6d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VStzaGN0VEJuUTZicm1LNk1tYXBBSFU5dFRLUDZ0dG44VWM1WitTZHVLRkdU?=
 =?utf-8?B?d01nU2lmdVJnUGdXVmJXcVp1UStGeGxOUEw1dHBTOEVWd0s3OHZFNVU4Q0xU?=
 =?utf-8?B?N05RQ3Q3Yy84WDhldzNrb2ZCcG1tOU5iVk1RN1g3VjV0bTFiS1FyUXFTMWU2?=
 =?utf-8?B?NHhzUndGU2cvQ2Z6RVZSaVN0TnlsNVRRb1FRMWxSMWExWjNaQkxpWnI5ZHpn?=
 =?utf-8?B?b2FEdVRlUThBVWdJOWI4NkVRSW9YU2JhOCtWTlJqdTIyb014QWRyQy84UEdr?=
 =?utf-8?B?a2E1Q1NLZ29wS2t0U2Q4RS9Ebk4yVEV6WjdNaks4ZHp0LzhMMGxMaS9ZZ1Zv?=
 =?utf-8?B?NGlkSVRZUkRWMEZYVXNQYjd3WXUydlo3VitwNUJLbENlTzV1SmRCRXNKc0h5?=
 =?utf-8?B?YUt3RkxRc2J1UGZhMDUzWEFCdURqZWJCZGdjVzFkbEF0NjFlRmJCRGVVejha?=
 =?utf-8?B?SFZ2dXB5ZWpXUnpGSGtDakdqZWJPV01NbUFTdDYvTGJQaDlTemxjWVd5cHVs?=
 =?utf-8?B?K3Z1cDQ4QTdaNEJCR0hZNnZOK29ReU9Iblg3MitWVjlQU0lZaVVvVEt0SkRw?=
 =?utf-8?B?NHE3Ukg5ODRXcEMxVkYzNmJDWEJNRUhBcHlnN2k3OHpjckRiYWFiWXY4WE9n?=
 =?utf-8?B?YXdzd25sR3pteDdQZ1Bud3BURWxSRkNwczBkcXBwUXpPUHBEbnFsN29WR3lY?=
 =?utf-8?B?ZmozRStFV3dmckF3VE9wRWU3cEdDQWpzSEM5b0JQRDFjbUxHUm8vblNGNUZS?=
 =?utf-8?B?aUpONnhSOHFoREFpNW9pNFdEcFpYeFhYMHB3NlNGeUJLVW9NTjNvd0p6bVJp?=
 =?utf-8?B?d3QxZU1ITk9WQ2ovWU5hVDUzaFNsUVdxR29pYWd2NDNKQ05MdnI0M205ME9N?=
 =?utf-8?B?QzUwM3MvdXVUQnVIcE5PSFBVUWFiYmQwTmM4eG1JanRpa3BLTGwvQ1QxK2w4?=
 =?utf-8?B?MUxwUzVaN1N1blVLb0Vsa1NPOWZhSWlUdUdLZFdZS1MrWVp5WWhRN2pWZm9Z?=
 =?utf-8?B?dmFhd0FCVkVrN1kxTXFQMDBvZEhWMW1NSXRNbGUxL3E2ekdwOG80QzVzdlQv?=
 =?utf-8?B?NUdvTHJoSGpOYzFPTlplUEpKMlM3cmxJV0ZvOVArKytJOVRxRkhXenRIMndr?=
 =?utf-8?B?Z0Jxd0JFZFhDQzU4a1hGQThsTGVqM1VySERXZTRzb1RPb0RCblRpeVNUK01V?=
 =?utf-8?B?ajlacFNXQ0o1TXl2ZWhSQ1pTTCtrbFhIRUtTaXZkK0s4dnorWXFhdmlzMHRF?=
 =?utf-8?B?NlhsZDlzMWNxeG9palBjbTdCM0FOdUMxcFFLSmdPN3VLNUJxNENuSzN5d3RQ?=
 =?utf-8?B?b3NWUjFtZVh6WEszK1M4UTF3MXh2L3BlVGhvZVlPb0YvVXoxVU5uRGV6SndN?=
 =?utf-8?B?OWxoOCt2dEcwVjA2MVJBM3pjWDl4dHZ4SUY3UUpmU0E3U2NkaEYySXFMWnpm?=
 =?utf-8?B?OGVGcWpsSHQrLzNpY1JXcnRGQlhCUnhIdjFFS2R3NFhuL3lSM1E3SXVUS2Fx?=
 =?utf-8?B?VVVOTTJsaVJOeThwMEJoSXE5WXR4TDBKTVlycXZINXlCSzMrVENON1UwN3RH?=
 =?utf-8?B?NDFkM1l6Z3lkUUpFajhMajdtZGZJUEpZTXpicGlOZzUrdDFYOHNVcnNDWWxl?=
 =?utf-8?B?bXhIWkhEV2hNM3VaYlMvQWZ4TlI1NXl3WmhadVkyd3BuZG96MGpLQ0hMK1VD?=
 =?utf-8?B?WDlvOE85YzIzRXlsNFBCVTBFYmRMa3ZJYzFhbHg3MHNldm1IUDF6Q3lHVlVL?=
 =?utf-8?B?cHBXbGtMRHFHRTk1b055bUVQbWw5Z2EvTUVYR3dacEVqNExIRDloYVk1eCsr?=
 =?utf-8?B?VmJGblM3dnFKaktVV0RpWEkxVHhhclhmMEU3eVFQTU84K092Wk40RWtYdUs3?=
 =?utf-8?B?TXNPS3pIeWhFamFLbFVwMFBGeFFJRW9ZaTFLNnpjNXNYckp3YkZ6MmVaR0U3?=
 =?utf-8?B?dW9DYVp3aitPUWl5UzhtM3hvUWVKZm1QUVJzZk92eXBVdGVXZE9rZWgrVFBC?=
 =?utf-8?B?K3EyR0dkRWo4WE5Va2lXSGhYdjlpQkNlYzZDY01JVTVGOGhKQndrbE8wWExQ?=
 =?utf-8?B?UEJhN01DMTN1YmpqQmt4UGJLa0hTYTU1YWNDZWRZcURqWWI3OC9YOUFsOHZR?=
 =?utf-8?Q?eO2Q=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Dec 2025 14:09:50.0815
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 008976ca-a902-4ee7-d397-08de3be39c6d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004684.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8663

On 2025-12-12 17:38, Andrew Cooper wrote:
> On 12/12/2025 10:29 pm, Jason Andryuk wrote:
>> Pass the TPM2 ACPI table so that the device can be found by a PVH dom0.
>>
>> Otherwise dom0 shows:
>> tpm_tis MSFT0101:00: [Firmware Bug]: failed to get TPM2 ACPI table
>> tpm_tis MSFT0101:00: probe with driver tpm_tis failed with error -22
>>
>> TCPA is "Trusted Computing Platform Alliance table", but it is really
>> the table for a TPM 1.2.  Use that as the comment as it's more
>> identifiable for readers.
>>
>> While doing this, move ACPI_SIG_WPBT to alpabetize the entries.
> 
> It's probably worth stating that this brings PVH dom0 more in line with
> PV dom0.

"This exposes TPM event log tables on PVH dom0, bring it in line with a 
PV dom0."

>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> 
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Thanks!

>> ---
>> Only TPM2 has been tested.
>>
>> AIUI, a TPM 1.2 is probed without the ACPI entry, so it is usable.
>> But since I know the table exists, I added it.
> 
> Yeah - I'd have asked you to do this if you hadn't already.
> 
> That said, it highlights that the Trenchboot series needs to grow the
> ability to hide the TPM from dom0, both the APCI tables and blind probing.
> 
> I presume that tboot already does this, because I'm sure it's been
> tested, right...?

Tested which way?  This has *not* been tested with tboot, but I think 
it's orthogonal.

After tboot launches Xen, tboot is dormant until Xen calls back into 
tboot for shutdown.  Control of the TPM passes to Xen/Dom0.  This is 
expected with DRTM and TPMs.  The TPM locality differentiates TPM 
accesses inside and outside the measured launch environment.

The TPM ACPI table specifies the location of the TPM Event Log - a 
reserved RAM region.  There are other ACPI PNP devices to specify the 
TPM device itself.  Those are in DSDT or SSDT (I think), so distinct 
from the event log table - the subject of this patch.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:10:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:10:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187046.1508474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9H7-00036u-K0; Mon, 15 Dec 2025 14:10:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187046.1508474; Mon, 15 Dec 2025 14:10:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9H7-00036l-GC; Mon, 15 Dec 2025 14:10:09 +0000
Received: by outflank-mailman (input) for mailman id 1187046;
 Mon, 15 Dec 2025 14:10:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV9H6-00036K-Dc
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:10:08 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bbd21ad0-d9bf-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 15:09:56 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-477b198f4bcso28222425e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 06:09:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f8e9115sm191173085e9.12.2025.12.15.06.09.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 06:09:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bbd21ad0-d9bf-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765807796; x=1766412596; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IkzkyO8rsnWrEYhYiX/uJfUzaY1Qiyu6dEUX9CxH620=;
        b=gZO37MprNycINCsbGY8lwdiyIus+VHNFiRYSsDyA4ototoMCkE14D26arJXrg/B1yM
         VkhdoNjWlcAFFyNsCaiEKRJW+OiHHI5KVkbKH+MMPOXzVNyuePqRAv7TwJc7yjMAbzDu
         GlEr0IxekESKxqgwoyHwoVF/bjNbzLhmYV9bkEE+ptczpMzmnANnGjueIk7tnq5dKyWx
         KiDQJqxG9bIcm+0866sUjoz0NRLh51CH6Bi5AGeJijuRD+RPyQy5BRIDIrNr3sPKVstC
         pnxAHMUGul6DBDAvrkQD6tgYNh75Y4ahkwpqYr3smc/SvhTsqGsqdje0Sw6Rkergd781
         Ivtg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765807796; x=1766412596;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IkzkyO8rsnWrEYhYiX/uJfUzaY1Qiyu6dEUX9CxH620=;
        b=xKkRdTZufN06ItcrzOxbEm3zs+sLgnQ6NQ/C2ejCXA85UrnR5LMd0E1wvaQPpHkSob
         /sEok8azrz3vNzUjwU+jhwCGWUadg2+V1aioUQJjUNhXooLNpG/RfqSmKBOR6MR9YJKN
         I9Lpq+yqk0P2if0L2mWX7BlSkFmvD/OVqzujK2tfBcHPh13mhGiv249zyCylFp2p9ANz
         FOT7UVlTsGYaPKsROr6hIar0653ESDMiHjX7svwajw5fnNcyD7/jyQh5W+i98mOg34M4
         VE5mCl3vjLEUnvCxRM3/GFKB8Qr43I3N8AgaEw501v+KZlDjons0fWpV01Ms/C5yMZ5C
         4qbg==
X-Forwarded-Encrypted: i=1; AJvYcCXxKwwejSlxL1RuJAT+WtwE2XXxxENsXskxIRuxgRpCY7NuSqpb8BQuHZRiwgHLQLrg85GhlIkHoJ8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxU7SCyxV8hofagr1jMgVd6SiM31yPreZ8FPfdjAtFVBYQgeYuB
	t68OW+fAwP2Rbu8FFgVVJE2RmrYyOzOD7BghgWdCKoyzJAi9LwWWgQormsmG2u8VXQ==
X-Gm-Gg: AY/fxX5bvqPDu+D5UdwSUZu8ISsPFHC3VOERf7AsTlAlSCyOFYUkG3IIWNUetbaJdSS
	XvdKftHmfuAG2LJUry6bPVC0VmQw5gXVffVTp3QOMLIoDOvA1F567FhPn5JZ+SAGm0Z5b4Kbcep
	eBf8irhsULFsxHP+THoxSU0r4b9YZrbFokR3bFO3tVZIhGmWt35rPxpJPCK8kWkRgQQ88kWxlby
	AFiQ4PV8Va/6QnZ5A7+E55U6pq1x3si1sttkkBeTc8zdHAh1bcMv9mom5RxNzVRDCu39+0VUWOc
	X/R5FMXAOzgaIqK7kh0V99mGOPlXh4uee1nuVdRY/ksIngnhj+CQf5DrlqDbvJULVOz3OFVqJIj
	7t0tK2cJh0L51S/jL8D5V9r9TsQMj2QH3N5cx8uxIGO3aSagLy9lddvet2+KsxBwnbkhsbI/YnK
	+rXVo3HsRTbl9ikNugY+uBjN7FeCPC3gC+Zhf2iPu/auTATLtI7CMyupcAXDRebt0vBt8uX+J5i
	LU=
X-Google-Smtp-Source: AGHT+IEK6EPC7YSjjl5gIkpXsJ8eA+ROk66oIRuZnKJ6wp8efiRqLqkGUm6jCOAPnGNTsp2ihz0dOQ==
X-Received: by 2002:a05:600d:105:b0:47a:97c7:f08b with SMTP id 5b1f17b1804b1-47a97c7f1a9mr41033765e9.31.1765807795448;
        Mon, 15 Dec 2025 06:09:55 -0800 (PST)
Message-ID: <091bafe9-ba7f-413a-a740-7856b79f9307@suse.com>
Date: Mon, 15 Dec 2025 15:09:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 02/24] xen/x86: library-fy cpuid-releated functions
From: Jan Beulich <jbeulich@suse.com>
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
 <20251212040209.1970553-3-Penny.Zheng@amd.com>
 <e09ed373-47a4-4afc-84df-b66184ea424a@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e09ed373-47a4-4afc-84df-b66184ea424a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.12.2025 13:14, Jan Beulich wrote:
> On 12.12.2025 05:01, Penny Zheng wrote:
>> There are some cpuid library functions only referenced in
>> XEN_DOMCTL-case, and shall be wrapped with CONFIG_MGMT_HYPERCALLS later,
>> otherwise they will become unreachable when MGMT_HYPERCALLS=n, and hence
>> violate Misra 2.1
> 
> At this point of the series there's no MGMT_HYPERCALLS yet (see also my reply
> to the cover letter).
> 
>> For file cpupolicy-clr.c to contain cpupolicy clearing library function:
>> - x86_cpu_policy_clear_out_of_range_leaves
>>   - zero_leaves
>> For file cpuid-cp2buf.c to contain cpuid copy-to-buffer library function:
>> - x86_cpuid_copy_to_buffer
>>   - copy_leaf_to_buffer
>> For file cpuid-cpfrbuf.c to contain cpuid copy-from-buffer library function:
>> - x86_cpuid_copy_from_buffer
>> Sunmmerize all needed cpuid-library object file under a new variable
>> CPUID_OBJS in Makefile.
>>
>> Suggested-by: Jan Beulich <jbeulich@suse.com>
>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
>> ---
>> v4 -> v5:
>> - library-fy cpuid-releated functions
>> ---
>>  tools/fuzz/cpu-policy/Makefile               |   4 +-
>>  tools/fuzz/x86_instruction_emulator/Makefile |  11 +-
>>  tools/libs/guest/Makefile.common             |   4 +-
>>  tools/tests/cpu-policy/Makefile              |   3 +-
>>  tools/tests/x86_emulator/Makefile            |   3 +-
>>  xen/lib/Makefile                             |   5 +
>>  xen/lib/x86/cpuid-cp2buf.c                   | 123 ++++++++
>>  xen/lib/x86/cpuid-cpfrbuf.c                  | 129 +++++++++
>>  xen/lib/x86/cpuid.c                          | 286 -------------------
>>  xen/lib/x86/cpupolicy-clr.c                  |  73 +++++
>>  10 files changed, 346 insertions(+), 295 deletions(-)
>>  create mode 100644 xen/lib/x86/cpuid-cp2buf.c
>>  create mode 100644 xen/lib/x86/cpuid-cpfrbuf.c
>>  create mode 100644 xen/lib/x86/cpupolicy-clr.c
> 
> This looks to be doing at least three things in one go. If all of them would be
> simple (including them being a reasonably small diff), that may be fine. But
> the diffstat above says otherwise, so I may I ask that this be split in three,
> maybe even four pieces (one per function moving to a new file, and maybe one
> doing prep work in the Makefile-s touched)?
> 
> The filenames also aren't very descriptive. cp-from-buffer.c, cp-to-buffer.c,
> and cp-clear.c maybe? Albeit the last one is where I'm the least convinced
> that splitting out and making a library function is actually a good idea. Note
> how I also didn't mention that function as a possible candidate for library-
> fying. I'll try to not forget to bring this up with the x86 maintainers later
> in the day.

Having discussed this, we thought we might as well aim for proper library
fication (longer term, i.e. not something we'd ask you to do). Therefore
splitting by function is generally okay, but the filenames really want to be
sufficiently descriptive. For x86_cpu_policy_clear_out_of_range_leaves() this
may very well mean cp-clear-out-of-range-leaves.c (not sure whether
shortening to e.g. cp-clear-oor-leaves.c would make sense).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:11:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:11:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187067.1508484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9Iq-0003wd-0V; Mon, 15 Dec 2025 14:11:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187067.1508484; Mon, 15 Dec 2025 14:11:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9Ip-0003wW-Tu; Mon, 15 Dec 2025 14:11:55 +0000
Received: by outflank-mailman (input) for mailman id 1187067;
 Mon, 15 Dec 2025 14:11:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV9Io-0003wM-4F
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:11:54 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 00e101b7-d9c0-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 15:11:52 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4777771ed1aso26635305e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 06:11:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-430f1fa232csm15343605f8f.6.2025.12.15.06.11.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 06:11:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 00e101b7-d9c0-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765807911; x=1766412711; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Rua8TyvBHPfiCCfpfnlGRR0IiDMfB1BUicr1d2iJq+Q=;
        b=asPbtzJ79SCiTVSrw0A/vTfN8xWir1oz4YBz+sb7lCaQHK9tq/Y2OO22+q9Ui6Dgeg
         Yd9Isa/VBQHuCZXsxKihPtcOmO7j723pcEn6Dd/5GXbr5AwRKvR1W6Due21NmrEbFrCo
         sKA1RwSq4pbyNK2mPQLf2G9/lCaN/XLrfW9IWcga73G0HnACq+J8tOZFjmrHmIUG6a1T
         HkW2CEVFghgulzdcX2n0CdRNSkiuDUk02n5VmRDsnIXi6a1QONrhWALWe9560BpS+BKT
         gYN/j2WO/JvYvsLbq0LQvmey+qMokZtnmW0GbEU1sqQmsmf1qfF8brX5E7MPN3kT+Vqc
         Clxg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765807911; x=1766412711;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Rua8TyvBHPfiCCfpfnlGRR0IiDMfB1BUicr1d2iJq+Q=;
        b=aGOX9O0MgRdXUA321qRIpePp/yvQHV7+Ew7ZsXAVVaABAy2LSRyH5ZyWjmEGPP4axp
         HjFLgKVVUo4/O/ElOwmuXngLxQreQzbjHOXVnARHhaDkXeh0hw1rj6tQjPAVfdhXJsmo
         5hI289NvnqEVm7H/ngrqdfR7WTpOcDfHt/rJwzUMx3kcNj9gx9oHAttFBDq4V9KvKgCq
         5laaXRAMHNCGo6FVdqDzbXn5w5QJGQWl0uKeruok3R+2uQyFsr+Y3JG5TDI7syDk3kO9
         QqTEcqjsRQ3uPcSkxzEHiAudkROt8On+JAwCjrs2yV0ipxLbE9cnXOHiyage4o9+1AGp
         aExA==
X-Forwarded-Encrypted: i=1; AJvYcCW0fFMFCu9TCOphemk+xbha9YzBNR9w5EqaNDfqL1hYY0xby982S4cRrR4t9Bx+2fdn9oKk47v29RI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZjq4ImHcyo9Qx8W76efpd/TX4NA1Z+IxGkxqmmGhvNsT7/yRi
	ci80XGv1UhvVlD9/d34FY6pZ2GJ+XDh0736R3yJcXlAqXVDPbm6roSFSLRuMICO/Yg==
X-Gm-Gg: AY/fxX6cZJfvLK7Ws0+ZlyPQnndr4s08LedbMzTeqGE/0qhUk1eaQO5d0RhxJ7ZLk1D
	bF4zEjqB0+AG7VTYTOlr6Xg3y1LC3RKYUTjnCfZKmWN4hh1ZBLEfEB5xCMNYGe04r77+dbvOZhM
	vbks5WvguZfrUcdL/9bRILXr5CaqyDfmoLIzTrT20CIMwbydkALUPdfEe8oEcBuzjbFOBzcMHRB
	aIS7ECC9dbXfhtUkscDxZJeYR1YeD32WXNEo2vcldkLWVi68egD8Gvll1XIID8MglAYGxlgEKqn
	g/08uiQwNJK2C8stfCPYJ2L3kk0S2ciqK51LbIw+bfAMrz3s1KfIzk/jEgYelVIwMs3yMjtdF3U
	HjhYGuPcxc7aMlPLbQ+oM8+Pu75R5YxYiF+b+pHrrSb7RyZUlQ0p3PvIq9T+CMkl18yDlcwp5t/
	OpzAnwbyeAEK1pwLE0Mxrjd9QzoEnBJHjl2MN91u6tiqCfVvpO7GVDWseP/DgaJ5moKBkFw2I5o
	dQ=
X-Google-Smtp-Source: AGHT+IFelnAXioZPsFx84Nz1O+B+BVYB70gu7qbELOL/ukfRvpA6J6nCI9N4mq1JgqaOtZD5PSEkqQ==
X-Received: by 2002:a05:6000:1865:b0:430:fd84:3171 with SMTP id ffacd0b85a97d-430fd8433afmr3405024f8f.22.1765807911523;
        Mon, 15 Dec 2025 06:11:51 -0800 (PST)
Message-ID: <92e6ecac-7a5f-4831-8116-0c34856f1175@suse.com>
Date: Mon, 15 Dec 2025 15:11:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] libxl: Fix device_add QMP calls with QEMU 9.2 and
 newer
To: Anthony PERARD <anthony@xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20251215135124.11410-1-anthony@xenproject.org>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251215135124.11410-1-anthony@xenproject.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.12.2025 14:51, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
> 
> QEMU used to ignore JSON types and do conversion string <-> integer
> automatically for the command "device_add", but that was removed in
> QEMU 9.2 (428d1789df91 ("docs/about: Belatedly document tightening of
> QMP device_add checking")).

And older qemu accepts integers as well?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:14:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:14:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187077.1508494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9L6-0004Td-Bl; Mon, 15 Dec 2025 14:14:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187077.1508494; Mon, 15 Dec 2025 14:14:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9L6-0004TW-8m; Mon, 15 Dec 2025 14:14:16 +0000
Received: by outflank-mailman (input) for mailman id 1187077;
 Mon, 15 Dec 2025 14:14:15 +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
 <SRS0=Pjwr=6V=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vV9L5-0004TP-63
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:14:15 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 554e8335-d9c0-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 15:14:13 +0100 (CET)
Received: from BN1PR14CA0022.namprd14.prod.outlook.com (2603:10b6:408:e3::27)
 by CH1PR12MB9598.namprd12.prod.outlook.com (2603:10b6:610:2ae::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Mon, 15 Dec
 2025 14:13:53 +0000
Received: from BN1PEPF00004686.namprd03.prod.outlook.com
 (2603:10b6:408:e3:cafe::7e) by BN1PR14CA0022.outlook.office365.com
 (2603:10b6:408:e3::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.13 via Frontend Transport; Mon,
 15 Dec 2025 14:13:50 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN1PEPF00004686.mail.protection.outlook.com (10.167.243.91) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9434.6 via Frontend Transport; Mon, 15 Dec 2025 14:13:53 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Mon, 15 Dec
 2025 08:13:53 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 15 Dec
 2025 08:13:52 -0600
Received: from [172.24.22.120] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 15 Dec 2025 06:13:52 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 554e8335-d9c0-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZbdDwErGSIjzvPbvT8pWvS654xT8JYeoW/BcsozctwtcuiIG4McXiRs6heCHMFmLpznoXR+QmNtJYzAj3smmNe76Fg6WzFaRH+dJmwbGNqTBOqx0tDmk/kimdhz++EQBZ/ZlC7Qg2ZqVUvSy0gE5DwE2aedD+ivpsJ17jbJE26Uil38x4cmIADbV/3PcSXnK0mCnm7m6ulF4ZTQMI/q8vqoP/MTpwOvdghGptdZcZTuvWCfEVOgdSHFlhiOx3qHxRztCY3OCg/PRAb5xVPchcBl1pGD+yKM/UZzLvSUPaCmdVr++4bhzZdBQNMkOJRiGwAD5KaSfmSzezyR3TFSNxA==
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=BN5GeH/d3wf/S3L0KfK6Vn3S2aK2/XrzNkj5xe4a8ho=;
 b=JwxWbn3uNerQIq+KqZ+dM8jBvDEC2iebTTkPrwvWhLxLUIVe1KK5sCI3K7+sy9ITCMfEl6kF0JAVQogjRH78zUYb/k9dq8xcd2Sz1i5IKd1/WWetSHJRrR4qFNqV/IxinA94sEKbcb10ns8U3W21KvQUvP3ONUez6NEyxjMLb4WtOUxSBrTf5dpZtzKPeJP3MA7GIVApzzbiP39umx6p7382ukcGQ0V7kKpOle8QVjBxzrMCs/zf1vyKlNybE7xtLXbzDd1Rzq3NZ+7pP0uto0QITb/+oeOKv2XXcr7Iy0uocg7YODC4VVP97DIC0Io4n/Q+pUP+luzQt5PWrH+Lfg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BN5GeH/d3wf/S3L0KfK6Vn3S2aK2/XrzNkj5xe4a8ho=;
 b=ggx32q5ui5t18iP1u17Xf047E6dn0Me3FgnAqUShczKK3YERgve111bJFsbVt0WxLP1/ZHdPtmO+Ty1tAElw39QZg6Zga2HFoiL4HUSERWZmQDlb+gFv3QiAG2yEm9diSPu2R0XCSSLqdRNP+DV9ahvr2OhP22KnEseIaPUf5UA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <5b1d19ce-0d69-4df6-8507-f5cac1ccd5ab@amd.com>
Date: Mon, 15 Dec 2025 09:13:51 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/x86: Pass TPM ACPI table to PVH dom0
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	<xen-devel@lists.xenproject.org>
References: <20251212222949.626539-1-jason.andryuk@amd.com>
 <1646c1ef-ec42-4148-94e1-24b8874a1cfc@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <1646c1ef-ec42-4148-94e1-24b8874a1cfc@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004686:EE_|CH1PR12MB9598:EE_
X-MS-Office365-Filtering-Correlation-Id: 1a6ac46c-1ece-487d-f34e-08de3be42d65
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?S2pYeFhDREtQazkwcTlGb3JON2VYbU93SGgzSTlSS3BwOHJxMC9rdkVpWVRq?=
 =?utf-8?B?MGRFT3BUU2trM1llbFJpTkowank0dHVDYS9IaGZ1WHA2cm5zeC9FRDV3N0o5?=
 =?utf-8?B?YlkvUnVuSzBlRmJLeXlSRUxSaTNHUndCZjFZSFpQVW9Sdm5XUVJ6NUdEL2E3?=
 =?utf-8?B?SmdLY2FCN3B2elZXZWkrbTZzK3YyTno1VGhFakZMNmdscGVNaU4yeEMveTBG?=
 =?utf-8?B?SWxUeDVYelJSUlBkSXEvUkFMcllOdkxVaGg3em8vN2VhTHYzNFRORDB4WVd6?=
 =?utf-8?B?aHE1SzJjNStlY0Rjb243dFkwY0VJTi9LS3d3cmkveUkvUmM1RCtySWFCNUlC?=
 =?utf-8?B?TUlSVUtHUWVud3F6aksyVVlzaGRHbEFCdEo0NTY2eWY0djk2U0syNTY5Qk9X?=
 =?utf-8?B?M0QrcEZMY3FsZkZiWE43TWE1ZkZKWUpQdk9WdzdKK1hVdWtBZEhobjR4OGdq?=
 =?utf-8?B?VHc0VnRocjZic0JLUERrN0JNMzhPNm5tK3pTTTZqSmt6NWNCNTM0eU9heExE?=
 =?utf-8?B?QzQrT1loOTNUUWRraXJ3Y3dPOEVueDZKWXBrMlFXZXBVOGdlUE9YdGxqem1a?=
 =?utf-8?B?aStCUkxEL1dzeHRIcW5mSmNtWHhWWmtwQmkrOHk1cW5ldlcxTU5PVVFsNDM5?=
 =?utf-8?B?Qk9MSWVxc1ZkOGU5YnNpVTgva2lMVVZ6S1Y1MzNCbWplY0JTWUM1R1h4VGN1?=
 =?utf-8?B?aXZRUEZrUG5xM3RNMTE5cjBpZnZnT0NpWXBwNVpqcHBSODBaZTRROVRWekVh?=
 =?utf-8?B?cTVmU054dytpTkVqZk1NbVBsNTFSSWxqVkpSK0E5NEk5MW9Oaktja25tT1dO?=
 =?utf-8?B?eDR3SmVqem9KcE5GelpNc0ljSSttVXhoMHRZV0ZWZ002bFJFN2ZiQmRrRTdq?=
 =?utf-8?B?ekxHdWRrYzU4c1hJUHJXQVFiQjhiUTYxS1FvQ084S0F1UG8zSmZzODYzMVFG?=
 =?utf-8?B?bSsyT1ZONWw3WVRjZTdaSUZNY0lQY1djdzJRaEc0UmtMZEtkaWV4clZyQVZJ?=
 =?utf-8?B?SDF3K2c2Wk9LV0pMQkR5N3VBMitzeUZ1TURVTEJkbG14VSt6cGh6b3FCekg4?=
 =?utf-8?B?TU9FNGRyQmQ5R1cwcG0vQjZCSnFGZG5iaGF4UlZCSDB1eit0ZFE5MW5mQmJ1?=
 =?utf-8?B?TnpjNHBDSFpidHlVbXlZbXdUODFLbVBUZW9DUmthRE4yd3NYT0RLekRZclBI?=
 =?utf-8?B?SGgvcTZFWUJ6V01HWDF1U1ZHNTRuUHJROWpDRURvNWdVNVFHa0FFcjAvbXN5?=
 =?utf-8?B?YzVPQytQOXBHVTVlNWJuL3ZYRjJIU0NPMlBWeDVVSittN0lkMUlmSmQwNTg5?=
 =?utf-8?B?NS90RXdwOHB5ajliRXpXRVE2M3diT2NtVTA4TE9ySVlRZEJUY0lkWlo2eEtQ?=
 =?utf-8?B?UXRONGlqcytQMENKZ1drUWMyZmV6QzlPdm9tUFkwVFNSbVp6azAzbU1IaGZH?=
 =?utf-8?B?ZjZFOWpqc2oyalE2NmU2NVRicmViUE04N0w2bEthVzVkM0ZsS3V3SEZjcnJ1?=
 =?utf-8?B?ajFzSW1KTDE2ZlZZOG54TDRaQVRvam1DZFFvVEdQUzZzZjVFM1VZNjFFQ3hG?=
 =?utf-8?B?ajBSeU5qZk5JZXFXQytaYU4yYVhoZmVmTk1KMHZ6MDFEZUVvbFg0dlJSemtl?=
 =?utf-8?B?Mm1kNWk5U05VZW94YzIvSjBnMGVoSzJ4VUprNjVJelp5S3M5K0VabWwxMkV4?=
 =?utf-8?B?bmFueFhHVHQwSkFKWTU3bE4rMjBoa1ZDaGZlTllMUlQ3c0xNeUJPNVp1MDZp?=
 =?utf-8?B?aU9qbWFiQ2ViZnlma05hMHBheXJYWmJIMmxBQ2twV2p2NTJVK2xIRDQ1L2dh?=
 =?utf-8?B?K3Y3a2c3TXZGZm8wbkpEdzkwaEozWjdhdkRsOXZvRWlNS0lCeWpCSTVTOGdu?=
 =?utf-8?B?WG5BN2pCMXUram9aVVdRc2YrQlBqcEdGTEJCUENOUmJubkUxMERMbnl5ZC9i?=
 =?utf-8?B?QjFNdkFkd3JpMkZuOVJ1RlREeUp2OVZyaG81a1dRQk0yZ2M5dzlZQ0QwZHBm?=
 =?utf-8?B?S1pqckpWZ2x4K1h4MURKVUJPSUh1RTBDZWY2MVVIZWlrTW5Wd0RBNHpacFY4?=
 =?utf-8?B?bForYUZ0WGtXN1Fhc1NZS1hTNFhuRWkxR29CNi9YUXl0V0FhWi9ySjVSc3J1?=
 =?utf-8?Q?X2/8=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Dec 2025 14:13:53.2979
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1a6ac46c-1ece-487d-f34e-08de3be42d65
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004686.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PR12MB9598

On 2025-12-15 04:46, Jan Beulich wrote:
> On 12.12.2025 23:29, Jason Andryuk wrote:
>> Pass the TPM2 ACPI table so that the device can be found by a PVH dom0.
>>
>> Otherwise dom0 shows:
>> tpm_tis MSFT0101:00: [Firmware Bug]: failed to get TPM2 ACPI table
>> tpm_tis MSFT0101:00: probe with driver tpm_tis failed with error -22
>>
>> TCPA is "Trusted Computing Platform Alliance table", but it is really
>> the table for a TPM 1.2.  Use that as the comment as it's more
>> identifiable for readers.
> 
> Not sure about this particular aspect - this and ...
> 
>> --- a/xen/include/acpi/actbl3.h
>> +++ b/xen/include/acpi/actbl3.h
>> @@ -78,8 +78,10 @@
>>   #define ACPI_SIG_CSRT           "CSRT"	/* Core System Resources Table */
>>   #define ACPI_SIG_MATR           "MATR"	/* Memory Address Translation Table */
>>   #define ACPI_SIG_MSDM           "MSDM"	/* Microsoft Data Management Table */
>> -#define ACPI_SIG_WPBT           "WPBT"	/* Windows Platform Binary Table */
>> +#define ACPI_SIG_TCPA           "TCPA"	/* TPM 1.2 Table */
>> +#define ACPI_SIG_TPM2           "TPM2"	/* TPM 2.0 Table */
> 
> ... the TPM2 comment bring us out of sync with what Linux has there.

I'm fine with copying these from the Linux version to keep them in sync. 
  I should have realized this was an imported header when adding the 
entries.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:17:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:17:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187086.1508503 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9Nt-00051y-OY; Mon, 15 Dec 2025 14:17:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187086.1508503; Mon, 15 Dec 2025 14:17:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9Nt-00051r-Lz; Mon, 15 Dec 2025 14:17:09 +0000
Received: by outflank-mailman (input) for mailman id 1187086;
 Mon, 15 Dec 2025 14:17:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV9Nt-00051l-5I
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:17:09 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bc848ca8-d9c0-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 15:17:07 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4779adb38d3so27039075e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 06:17:06 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f38a455sm186533825e9.1.2025.12.15.06.17.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 06:17:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bc848ca8-d9c0-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765808226; x=1766413026; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7xVD0Xnb81MH+uApkWmpkt4aDsnULLzH8Qt19fhs1Uc=;
        b=RRM9EDNJTLUgJSflne472p7wKSVykOZFEbDa0bJKQsH5fAppGxEXZ7YCWKPIldLN2V
         0sGQ1+/1qbaFjMPUPukUKa3AyQ5+R45TPYnH3rgNHnuY0qgusb4MtCXIBNJOQw8ZD4AR
         ynHuj5Kx7wyK4EBeGFe5ldxpTzeGA0xazXKg5syJn7/3lyP0v3rfpCEI+t7bPuC4KVWn
         oqH/cIsPqhagq7NXOwkQAP+soTDeWti+UpjJWBokySDOLi+Z0etrssh4RSUUGsafgH+z
         mXDiqDywhz8ZvT1+FM72oelRLOs4Bum/u7eG+Q5cB5GwYDo/uY8XiNbM30lz8kxCSzN9
         et0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765808226; x=1766413026;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7xVD0Xnb81MH+uApkWmpkt4aDsnULLzH8Qt19fhs1Uc=;
        b=krw8TIq9R4dZHkzXUwN2WNqFyycbYonBrbrkbkgxOqfvzEHsLSFkURnrhJTOAlccMU
         O6Wak5f4ROwSif13n35mTRK77Syf/adFlnUDhwUJ2opiwkc1rOudcO0kAWXKvWrmyrAX
         gQNV9KSrJ0ct7z+Mje8pAaXvhy/RWIPQ7TpgwxSGcCKUhOaNxRQLC2eIrL/dFhwkhBQZ
         LVxSPIy+pwKIw+xaN3uvPEL9FBAkxhZk1EIwz7a9M7MxAbfLglML9Y6a7Rup1IWWNkio
         6qXG1Lb1U+pHJxq5dfZTEaPWtd1c/uU/D5S+Hd3Kcf3aXHYY5LmPyxq1mM3CZA5rOmhh
         0ITQ==
X-Forwarded-Encrypted: i=1; AJvYcCU2TqJ6cfI4xKHStsVKS6Nn85SkplvQv6V7jwayWH5Wv9Wjm0YLoWSkPPq6u4eUJDcZ8LPv3E3uNuU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxCeTYHG2BVF6VwmGQU7CVc6jyS7ZZGewI8lHsJjaVTgzpiGlWN
	da6FHPgfb6lR7BCqeVdruCPF5Cp19oWMvNcsib5Q9EBZyb7fIa7W7e0ydXXK7OVCfg==
X-Gm-Gg: AY/fxX6F+0eupmqgvZGYTrEeeci+cFUEQyyTcY2kvq7g0m+CKOeJN6qs/xcMQwwlRMY
	NldnFTsjytsQA/Bnslnn1+jxGhpquW2yzreY55vMhGvjEa4wPTMKkp3XgtnxMx8Csm5P+tuRgDt
	ZybxanUEv8IgMr5P3pOWsF3HitYoVAkYw9LQ4dTWyMHCYXHheTW8j3MhTHQ61p8Tq2WU7h9+DwT
	7uITSzy/F1wBHLjxRan8obJtPcFYL998zn8HOw3GDqk/okVie3yV32r23NcAKKY/xAY4lDnAKps
	2ovfzUpTjNtdVZElHdnD/wsREOJWuIFDYLvGEtBKpsvYzHhSxSx2n7TOYZIGomTnjUfc/YXbk35
	POW2FcBlDwU348SSNqsTY35gsPTDRLtMxcGurZKIrMt+g0wUMAU+XNvVms2HMyKubDR/PRcgyZG
	lCI7Ms4jdSIc8miB72K9MH9dcuJNiHdDbaRD9WH43G0D5hD4jefhL6d+aqeFwarFVScBTnnLQWl
	m0=
X-Google-Smtp-Source: AGHT+IEBP2Q46RzHGMHgABBFVwnVzVa1ELRQtgUNT/CfiNyKt39PcEcMlYz5BoTVM1NMs6Ke5fXs8w==
X-Received: by 2002:a05:600c:a009:b0:46f:d682:3c3d with SMTP id 5b1f17b1804b1-47a8f8c4b8emr117469695e9.13.1765808226155;
        Mon, 15 Dec 2025 06:17:06 -0800 (PST)
Message-ID: <1ce5a050-929c-48e4-8645-7310a07279cc@suse.com>
Date: Mon, 15 Dec 2025 15:17:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] memory: overlapping XENMAPSPACE_gmfn_range requests
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <7d254163-ac13-4c58-bcb5-aaff2e892e15@suse.com>
 <8038ba8e-ea1f-4005-94ab-56e4ab5f7062@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <8038ba8e-ea1f-4005-94ab-56e4ab5f7062@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.12.2025 13:46, Andrew Cooper wrote:
> On 15/12/2025 11:22 am, Jan Beulich wrote:
>> Overlapping requests may need processing backwards, or else the intended
>> effect wouldn't be achieved (and instead some pages would be moved more
>> than once).
>>
>> Also covers XEN_DMOP_relocate_memory, where the potential issue was first
>> noticed.
>>
>> Fixes: a04811a315e0 ("mm: New XENMEM space, XENMAPSPACE_gmfn_range")
>> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Of course an alternative would be to simply reject overlapping requests.
>> Then we should reject all overlaps though, I think. But since the code
>> change didn't end up overly intrusive, I thought I would go the "fix it"
>> route first.
>>
>> In-place moves (->idx == ->gpfn) are effectively no-ops, but we don't look
>> to short-circuit them for XENMAPSPACE_gmfn, so they're not short-circuited
>> here either.
> 
> Maybe we should short-circuit them.  I can't think of anything good that
> will come of having redundant TLB/IOTLB flushing.  At the best it's a
> waste of time, and at the worst it covers up bugs.

I can do so (in a prereq change). In fact I first had the short-circuiting,
but then remembered that in (somewhat) similar situations elsewhere you
didn't like me doing such.

>> --- a/xen/common/memory.c
>> +++ b/xen/common/memory.c
>> @@ -849,7 +849,7 @@ int xenmem_add_to_physmap(struct domain
>>                            unsigned int start)
>>  {
>>      unsigned int done = 0;
>> -    long rc = 0;
>> +    long rc = 0, adjust = 1;
>>      union add_to_physmap_extra extra = {};
>>      struct page_info *pages[16];
>>  
>> @@ -884,8 +884,25 @@ int xenmem_add_to_physmap(struct domain
>>          return -EOVERFLOW;
>>      }
>>  
>> -    xatp->idx += start;
>> -    xatp->gpfn += start;
>> +    /*
>> +     * Overlapping ranges need processing backwards when destination is above
>> +     * source.
>> +     */
>> +    if ( xatp->gpfn > xatp->idx &&
>> +         unlikely(xatp->gpfn < xatp->idx + xatp->size) )
>> +    {
>> +        adjust = -1;
>> +
>> +        /* Both fields store "next item to process". */
>> +        xatp->idx += xatp->size - start - 1;
>> +        xatp->gpfn += xatp->size - start - 1;
>> +    }
>> +    else
>> +    {
>> +        xatp->idx += start;
>> +        xatp->gpfn += start;
>> +    }
> 
> These fields get written back during continuations.

I double-checked yet again, but no, I don't think so.

> XEN_DMOP_relocate_memory will corrupt itself, given the expectation that
> 'done' only moves forwards.

This, otoh, I really need to fix.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:33:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:33:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187095.1508514 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9dQ-0008C1-2T; Mon, 15 Dec 2025 14:33:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187095.1508514; Mon, 15 Dec 2025 14:33:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9dP-0008Bu-VA; Mon, 15 Dec 2025 14:33:11 +0000
Received: by outflank-mailman (input) for mailman id 1187095;
 Mon, 15 Dec 2025 14:33:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV9dO-0008Bm-Eh
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:33:10 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f7a484a7-d9c2-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 15:33:05 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4775e891b5eso15629825e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 06:33:05 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8b8a97esm35190534f8f.31.2025.12.15.06.33.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 06:33:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f7a484a7-d9c2-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765809184; x=1766413984; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TMD7lQhrWjDvpZcq77Oqn+f4GeDE5Pb+lzzDOBJD86A=;
        b=dF96lLlc+Aqy11hz5x3j+m6PvDQpv5UW2k6MdyvwjzH7+IGM8mKMO66nGOlpGMJYTP
         tYrfp9nHyMC+scB96ux47yft0yReHYilQQB8qLBwUARLjQpPiPGfCgvvVa4MPpZPJ3Bl
         Vqs9q54HLE+UMCION65N1kvEaR3u+Dm7USAgGXDssAA21TDIjzeVT5kccwXTHRufYDaO
         x5FLOVSlIQw9AY/ppF8sLInSOz+xJ27lqETKp62Q0+ucn9J/nBiHUc28kaxGW4gVsOYm
         C6tyl3hKJvulo+W+BSZ5VzmBwXaVBCiBjbTTn1/d5y7rOiuVZ64Gpd/6bRtYRKzaXZEz
         NORA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765809184; x=1766413984;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TMD7lQhrWjDvpZcq77Oqn+f4GeDE5Pb+lzzDOBJD86A=;
        b=lFgyFzt9n1nCLjEAK7Rg5ouzS+7SnO2kmVhtkPA9ze/Ie169lO1J2kAAQOcYfaMPwo
         adNfT0t/PLwxympyN83mwIhvaq6g8N4qpfLIO+jHHSr7LHLdzQXwYIdMLhS4C7UzTKga
         sORIBXzZYQlaequB449+2c2jSTFll6oLvgVkPyP7BAs2ZpsGMCd9SUBnGAR36MZuEqbR
         37AR9Enwee7kz8T8iGOZTP/5JkWmO9iFMyZT8x6Zm7aE4b1cSHLA/VW1VqMTcZQQ4MB3
         RkMAjQXE97h6sHGgmMlUJC4dXykC1fkG5lco3+7ihMbkwKZSIHLxwPkCpNSDtJl4J1hk
         dUlA==
X-Forwarded-Encrypted: i=1; AJvYcCWCri4u90zL9+f+QMO9WPZHwveRPm1Xm92upbQfBW0XpTXCPI43IOZJow1ho41w9Afqe7vLmCOt9JI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyg7EYqxDJmfyBk9+P/aJ1WAZro9QYY+NM37u/Zf/ZFeyhKlmpW
	nl3MBM/Sy/c2b11dA8W3b2zFzAVX3ZQg+KovLNWhDUdHPeIVYHdgNz2z7X5TMPUaVw==
X-Gm-Gg: AY/fxX7mkd5gCapmXMLbZHIyejo6AyMO3KJ7kPTasuCyz+maHSU/P61EWO5DIU6H+vm
	/T6b22ydUl/rExyYXJe/YdtXkec0HFnjuS25NdamZpnmhblUjfwYfCl00jbzc7b0gKIMt9yLTYJ
	dsNdFB6NK1UJSuwxUdUwzFCf09/ZE9Fi88/ktZvMiF9WxQeQ5YYlE5x/gY2mpI6wHrqYTTr5fuq
	KPy3xU5iszLV6fRUIjc5e72H7+mVYPGSIAlUgazLCAi3gqgcuyJKzEsqpGoCPhLm2v5zd15PG/f
	/T2sPkhTW2Wimbrkan4qWqleyIKPslEQOnccgJtSKeRQRH8CkHmqvyYdaojwGP2gmUPUsXiBWFx
	/hsYB9oUtzgkzorLuPOtKoeBIorlvXk3ynAgZ5CevluSfw6Lnll3evlUEk3xeunittGTopDrQ43
	fXvvJnI76ldaGvgd209ne7cKJu7t/XmqYYOXY0wSgwVEAWlymH+2EOvCYYycrq19pKR3dcjY8cY
	zWamd9Jar8G+Q==
X-Google-Smtp-Source: AGHT+IGExVobOqU5RgOo5uxwiOsWDqR42oPc1CwwyDN+GE0nluLliI5rT4x5ZBMrXRmtqqvgEMyfzg==
X-Received: by 2002:a05:6000:178a:b0:431:35a:4aa3 with SMTP id ffacd0b85a97d-431035a4e21mr104019f8f.18.1765809184409;
        Mon, 15 Dec 2025 06:33:04 -0800 (PST)
Message-ID: <23f85e06-4d63-47c4-b232-8469ccb66126@suse.com>
Date: Mon, 15 Dec 2025 15:33:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 20/24] xen/x86: wrap x86-specific domctl-op with
 CONFIG_MGMT_HYPERCALLS
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
 <20251212040209.1970553-21-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251212040209.1970553-21-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2025 05:02, Penny Zheng wrote:
> ---
> v4 -> v5:
> - do not undo imply and add "depends on MGMT_HYPERCALLS" in option
> - use IS_ENABLED(...) to avoid too long line

Coming back to this patch when looking at patch 24, I have to add: I don't
understand this. We ...

> --- a/xen/arch/x86/include/asm/paging.h
> +++ b/xen/arch/x86/include/asm/paging.h
> @@ -57,7 +57,8 @@
>  #endif
>  #if defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
>  /* Enable log dirty mode */
> -#define PG_log_dirty   (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)
> +#define PG_log_dirty   IS_ENABLED(CONFIG_MGMT_HYPERCALLS) &&                \
> +                        (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)
>  #else
>  #define PG_log_dirty   0
>  #endif

... already have an #if here, so mixing #if and IS_ENABLED() doesn't look
like a good idea to me. To deal with the line length issue, all you need to
do is split the line:

#if defined(CONFIG_PAGING) && defined(CONFIG_MGMT_HYPERCALLS) && \
    !defined(CONFIG_PV_SHIM_EXCLUSIVE)

. The alternative could be

#define PG_log_dirty   (IS_ENABLED(CONFIG_PAGING) &&             \
                        IS_ENABLED(CONFIG_MGMT_HYPERCALLS) &&    \
                        !IS_ENABLED(CONFIG_PV_SHIM_EXCLUSIVE) && \
                        (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift))

, just that then PG_log_dirty likely can't be used in #if anymore (see the
related comment on patch 24 that I'm in the process of writing).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:36:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:36:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187108.1508523 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9gM-0000NO-Fw; Mon, 15 Dec 2025 14:36:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187108.1508523; Mon, 15 Dec 2025 14:36:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9gM-0000NH-DI; Mon, 15 Dec 2025 14:36:14 +0000
Received: by outflank-mailman (input) for mailman id 1187108;
 Mon, 15 Dec 2025 14:36:13 +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 <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vV9gL-0000Mt-1Z
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:36:13 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 620d0544-d9c3-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 15:36:03 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-477a219dbcaso30964065e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 06:36:03 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f8d9d63sm193080465e9.9.2025.12.15.06.36.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 06:36:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 620d0544-d9c3-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765809363; x=1766414163; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8HNE3KsT10Gu8iGQa33UkZvAqiC6P+LoVYYfSwcllDE=;
        b=AkHwR3avq1j8XKLgRg/i7sENjgSvIAb0brrogoeUcbXzn6HfipcFopz+E7wVWCuTIz
         SmKbljJtkutAgiPyAg2X62sZD7y7VhLQHCJTGUqhUcoKZV2gFmteBJ1AJ4t2cJ0U8Tuv
         FH++6ncdTw3wxrKn2MUOL3/gzZu5AiYWI7UGuN5xvkjNI5FzqF3heL3X/6BDl7t3aG0n
         LE6+V2fnGGZP8zjAsEexG9y6/2jyDtL3E8fwX6/f9N7sjhB+rZCSWmc/CNLeEBYLrlo3
         RixV8d9VpMGWUIv7uXWQoLFJdQAVnO6aMVjt485EDCP2/3NaZa9zwwtmMTvYjo9KNYe2
         E6GA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765809363; x=1766414163;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8HNE3KsT10Gu8iGQa33UkZvAqiC6P+LoVYYfSwcllDE=;
        b=ie97i582m7U2HowtSurNIGXkBuZ0DANPZWJpvWFUSKFM0BlFw5fStnrq1N1oEWR2DI
         LK5KEkW7g7uyRVpspsCQ75XJp5x1B3WYNPqSfMJCW2Em0d1YId+dMQM3eCEQOkfcr83J
         w8FPlO/CWJLffKhctblEjFdkhhK77GHYAj/oGajURlt6L43LxvNOYsk60AZfAgbXBjox
         eiciNzVOigX5As8Ms0f4FikCyYfC0pYGFLgUaD94dWyPcnRb1pIl5+M8/mPZGAj5mECx
         //ASwSanHFBD1Z2icIzqjEv+4kIOB7RMgBIVX6T3lPnevA8X61OL1vTFyTCo9cnw2Kwu
         CCrA==
X-Forwarded-Encrypted: i=1; AJvYcCVUdY59GbIpmzcPQVJN9rwe9mhXlxFSjF4Yc0bre3ChPEVkEhPaAnbKp8zl6h0raDj+9A6c4mSUU7A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyRlKg6dSMh0MUgAHazdL5a89iujS5Hz/MMlihXY1UU7h8HPYZw
	PhcjsSFov5EklnOWKZBJ0go6qteuBlAF3e91WkPjgW3imhtRzAgsCwV45U5SFwi0DQ==
X-Gm-Gg: AY/fxX4F6iMT+v7QTAmFUSHIUzu1a1l98XCH7D3LcR0UxGPVyTGNcHIQdrL61yVDMRF
	dFyca96pSYQtrhPVa5lTSoVs/owjJcFjde1az2cvjgx4kLL044SddSVTwuzZpP+gkWTF52bG6SC
	itMaLG8a7Y5/MiTys9BYC6EK1RM+jUySIkqzYnl9GrQ8k1QnzgaQ3FoHB4bqGI8mKmA/rtBswhc
	NTcTB0ibe88ulDhIp6cZdvKgLwSziv7UGA5x3G9sqp4dmw3rOfHzfdAHK5Es3o4x3PR9tK1pz79
	B2ClNmKXsZ05JzDKBpJOvc5sFD9ZEjwD4whXjsbE/BwZIIS09c5Yy2r/GI/M3W4tbrkAkUSnf75
	QHcH3VBZFwOoMe2LaEG1ewoVVEQxNRx8OjWnFlGaGut9k936NWFjBB7j/pBSJi1U4lvoNLTp+V0
	VjjwdFG8xDoFOtQ7I0n8XzvOGP09R86gShjW9stiKHNZGMJKcQCBXBLE9CaXLF/+gNBPiyf8yKZ
	PA=
X-Google-Smtp-Source: AGHT+IHPJYeHA6Wt1nPml8ZSR5yFRkW9b9B83xaqda6JWPzwd7/5FpwFoz/k2hvX0pIWW/6hLbQkJg==
X-Received: by 2002:a05:600c:828f:b0:477:5af7:6fa with SMTP id 5b1f17b1804b1-47a8f90cf2dmr100589275e9.32.1765809363093;
        Mon, 15 Dec 2025 06:36:03 -0800 (PST)
Message-ID: <bdeda156-8492-44de-8092-1bb4e585445e@suse.com>
Date: Mon, 15 Dec 2025 15:36:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 24/24] xen: decouple PV_SHIM_EXCLUSIVE and
 MGMT_HYPERCALLS
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
 <20251212040209.1970553-25-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251212040209.1970553-25-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2025 05:02, Penny Zheng wrote:
> --- a/xen/arch/x86/domctl.c
> +++ b/xen/arch/x86/domctl.c
> @@ -216,7 +216,7 @@ long arch_do_domctl(
>      {
>  
>      case XEN_DOMCTL_shadow_op:
> -#ifdef CONFIG_PAGING
> +#if defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
>          ret = paging_domctl(d, &domctl->u.shadow_op, u_domctl, 0);
>          if ( ret == -ERESTART )
>              return hypercall_create_continuation(

This, in the end, is open-coded PG_log_dirty afaict. Question then is why
not use PG_log_dirty here. If there is a good reason not to, it may want
spelling out in at least the description, maybe even a code comment here.

> --- a/xen/common/Makefile
> +++ b/xen/common/Makefile
> @@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) += device.o
>  obj-$(CONFIG_DEVICE_TREE_PARSE) += device-tree/
>  obj-$(CONFIG_IOREQ_SERVER) += dm.o
>  obj-y += domain.o
> +obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
>  obj-y += domid.o
>  obj-y += event_2l.o
>  obj-y += event_channel.o
> @@ -70,9 +71,6 @@ obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo un
>  
>  obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o memory.o multicall.o xlat.o)
>  
> -ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
> -obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
> -endif
>  
>  obj-$(CONFIG_COVERAGE) += coverage/
>  obj-y += sched/

Nit: One of the two blank lines then wants to also go away.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:41:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:41:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187118.1508535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9l5-00028Q-0U; Mon, 15 Dec 2025 14:41:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187118.1508535; Mon, 15 Dec 2025 14:41:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9l4-00028J-Sx; Mon, 15 Dec 2025 14:41:06 +0000
Received: by outflank-mailman (input) for mailman id 1187118;
 Mon, 15 Dec 2025 14:41:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1vV9l3-00027r-CL
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:41:05 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vV9l1-00B90L-38;
 Mon, 15 Dec 2025 14:41:04 +0000
Received: from [2a01:cb15:80df:da00:8c91:1441:8140:73df] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vV9l1-00Cvvu-2w;
 Mon, 15 Dec 2025 14:41:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=JejpsEBmLp12AlNzg72HBm8/yAdsIEbrYfmd9RT0urk=; b=Mz69207VEgClo/HFb+b8/puazJ
	ND355deS5bM8Xgcd/EyXaiDDLLurj7hc8KL+P/jtH+ACW92w2J7ShhBI0TdOAUsGZxaAmW085UwQH
	YzGiCI5WLJAzRXezsxgMPABOKQ8D1Ul6pmDes1wVMKVhWNj/Co/sCQHDlmx2yPbfTfUg=;
Date: Mon, 15 Dec 2025 15:41:02 +0100
From: Anthony PERARD <anthony@xenproject.org>
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH] libxl: Fix device_add QMP calls with QEMU 9.2 and
 newer
Message-ID: <aUAd_r3VN0kTVriG@l14>
References: <20251215135124.11410-1-anthony@xenproject.org>
 <92e6ecac-7a5f-4831-8116-0c34856f1175@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <92e6ecac-7a5f-4831-8116-0c34856f1175@suse.com>

On Mon, Dec 15, 2025 at 03:11:53PM +0100, Jan Beulich wrote:
> On 15.12.2025 14:51, Anthony PERARD wrote:
> > From: Anthony PERARD <anthony.perard@vates.tech>
> > 
> > QEMU used to ignore JSON types and do conversion string <-> integer
> > automatically for the command "device_add", but that was removed in
> > QEMU 9.2 (428d1789df91 ("docs/about: Belatedly document tightening of
> > QMP device_add checking")).
> 
> And older qemu accepts integers as well?

As the QEMU document explains about the removed feature is that they
should. We already have two users of `device_add` which use integers for
some arguments. And just to be sure, I've just tested with QEMU 8.0, the
patch works fine.

Cheers,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:50:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:50:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187127.1508544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tS-00038n-OX; Mon, 15 Dec 2025 14:49:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187127.1508544; Mon, 15 Dec 2025 14:49:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tS-00038g-Kq; Mon, 15 Dec 2025 14:49:46 +0000
Received: by outflank-mailman (input) for mailman id 1187127;
 Mon, 15 Dec 2025 14:49:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pAKg=6V=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vV9tR-00038W-4c
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:49:45 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 49bf56d9-d9c5-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 15:49:42 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2EF80497;
 Mon, 15 Dec 2025 06:49:34 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.46.206])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 492613F694;
 Mon, 15 Dec 2025 06:49:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 49bf56d9-d9c5-11f0-9cce-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 00/12] xen/arm: ffa: FF-A v1.2 support
Date: Mon, 15 Dec 2025 15:49:17 +0100
Message-ID: <cover.1765807707.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This series updates Xen’s FF-A mediator on Arm to implement the FF-A
v1.2 interface while keeping existing v1.0/v1.1 guests working.

Patches 1–7 rework the low-level plumbing:

  1) add the FF-A v1.2 function IDs and probe the new ABIs
  2) track per-VM FFA_VERSION state and enforce negotiation
  3) Fix is_64bit initialisation
  4) harden RX/TX mapping and validation
  5) rework SPMC RX/TX buffer management so access is serialized and
     RX buffers are always released back to the SPMC
  6) rework VM RX/TX buffer to have generic acquire/release function
     equivalent to SPMC access functions
  7) switch the mediator to spec-compliant signed 32-bit status codes

Patches 8–11 update the data structures and direct-call paths:

  8) add ffa_uuid helpers and rework partition-info handling
  9) add FFA_RUN support
  10) add the v1.1/v1.2 SEND2 header layout
  11) add MSG_SEND_DIRECT_REQ2/RESP2 support and marshal the extended
     register set for v1.2 guests

Patch 12 tightens the dispatcher and advertises FF-A v1.2:

  - reject SMCCC64 calls from AArch32 guests
  - expose RX/TX capacity fields
  - bump Xen's FF-A version to 1.2 once the implementation is complete

v1.0/v1.1 guests continue to use the v1.1 ABI without behaviour changes,
while v1.2 guests can negotiate the wider ABI and use RUN, SEND2, and
DIRECT_REQ2/RESP2 with the extended register set.

This serie was validated through gitlab-ci here:
https://gitlab.com/xen-project/people/bmarquis/xen-ffa-research/-/tree/ffa-v1.2/v2
Build pipeline for the serie:
https://gitlab.com/xen-project/people/bmarquis/xen-ffa-research/-/pipelines/2215466965

Changes since v1:
- Rebase on staging
- Remove invalid ASSERT in patch 5
- Add extra comment to use ACCESS_ONCE for guest_vers in patch 2
- Add Jens R-b in other patches

Changes since v0:
- Rework version negotiation to prevent concurrency issues
- Introduce patch 3 to fix an init bug
- Introduce patch 5 to make VM RX/TX buffer acquire/release working in
  the same way as SPMC RX/TX buffers
- minor fixes described in each patch changelog


Bertrand Marquis (12):
  xen/arm: ffa: add FF-A v1.2 function IDs
  xen/arm: ffa: per-VM FFA_VERSION negotiation state
  xen/arm: ffa: Fix is_64bit init
  xen/arm: ffa: harden RX/TX mapping
  xen/arm: ffa: rework SPMC RX/TX buffer management
  xen/arm: ffa: rework VM RX/TX buffer management
  xen/arm: ffa: use signed 32-bit status codes
  xen/arm: ffa: add UUID helpers for partition info
  xen/arm: ffa: Add FFA_RUN support
  xen/arm: ffa: add v1.2 SEND2 header layout
  xen/arm: ffa: add MSG_SEND_DIRECT_REQ2 support
  xen/arm: ffa: advertise FF-A v1.2

 xen/arch/arm/include/asm/tee/ffa.h |   3 +-
 xen/arch/arm/tee/ffa.c             | 202 ++++++++++++++++------
 xen/arch/arm/tee/ffa_msg.c         | 232 +++++++++++++++++++------
 xen/arch/arm/tee/ffa_notif.c       |  14 +-
 xen/arch/arm/tee/ffa_partinfo.c    | 263 +++++++++++++++++------------
 xen/arch/arm/tee/ffa_private.h     | 154 +++++++++++------
 xen/arch/arm/tee/ffa_rxtx.c        | 237 +++++++++++++++++++++-----
 xen/arch/arm/tee/ffa_shm.c         |  52 +++---
 8 files changed, 827 insertions(+), 330 deletions(-)

-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:50:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:50:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187129.1508554 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9ti-0003RC-0C; Mon, 15 Dec 2025 14:50:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187129.1508554; Mon, 15 Dec 2025 14:50:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9th-0003QU-RZ; Mon, 15 Dec 2025 14:50:01 +0000
Received: by outflank-mailman (input) for mailman id 1187129;
 Mon, 15 Dec 2025 14:50:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pAKg=6V=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vV9tg-00038W-Sl
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:50:00 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 53d1d595-d9c5-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 15:49:58 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 05410497;
 Mon, 15 Dec 2025 06:49:51 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.46.206])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 27E293F694;
 Mon, 15 Dec 2025 06:49:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 53d1d595-d9c5-11f0-9cce-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 01/12] xen/arm: ffa: add FF-A v1.2 function IDs
Date: Mon, 15 Dec 2025 15:49:18 +0100
Message-ID: <7718cc9bbd5ba3be37e15cf5e605ac9af7d3b6e8.1765807707.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1765807707.git.bertrand.marquis@arm.com>
References: <cover.1765807707.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Bring the FF-A headers up to the v1.2 baseline and fix the function-number
range used for ABI discovery:

- update FFA_FNUM_MAX_VALUE so the FF-A function-number window covers the
  full v1.2 range, and derive the ABI bitmap bounds from
  FFA_FNUM_MIN_VALUE/FFA_FNUM_MAX_VALUE instead of hard-coding
  FFA_ERROR/FFA_MSG_SEND2
- define the new v1.2 function IDs; CONSOLE_LOG_32/64 and
  PARTITION_INFO_GET_REGS are added for ABI discovery even though they are
  not implemented yet
- extend the firmware ABI table to probe RUN and
  MSG_SEND_DIRECT_REQ2/RESP2
- while there, fix an off-by-one in ffa_fw_supports_fid(): the computed bit
  index must be strictly smaller than FFA_ABI_BITMAP_SIZE, so use >= in the
  bounds check
- Also fix comment as call IDs reserved for FF-A are from 0x60 to 0xEF

Keep FFA_MY_VERSION at 1.1 for now; we only advertise v1.2 once the
implementation is fully compliant.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
---
Changes in v2:
- Add Jens R-b
Changes in v1:
- Add CONSOLE_LOG_64 and rename CONSOLE_LOG to CONSOLE_LOG_32
- Set MAX value to 0x8E which is the highest abi value available in 1.2
- Mention in ffa_private.h comment that SMCCC is actually reserving 0x60
  to 0xEF included for FF-A (and fix previous FF which was wrong).
---
 xen/arch/arm/include/asm/tee/ffa.h |  3 ++-
 xen/arch/arm/tee/ffa.c             |  4 ++++
 xen/arch/arm/tee/ffa_private.h     | 21 +++++++++++++--------
 3 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/xen/arch/arm/include/asm/tee/ffa.h b/xen/arch/arm/include/asm/tee/ffa.h
index 24cd4d99c8f9..7acb541d1ff0 100644
--- a/xen/arch/arm/include/asm/tee/ffa.h
+++ b/xen/arch/arm/include/asm/tee/ffa.h
@@ -15,8 +15,9 @@
 #include <asm/smccc.h>
 #include <asm/types.h>
 
+/* FF-A Function ID range (AArch32 function number field) as of FF-A v1.2 */
 #define FFA_FNUM_MIN_VALUE              _AC(0x60,U)
-#define FFA_FNUM_MAX_VALUE              _AC(0x86,U)
+#define FFA_FNUM_MAX_VALUE              _AC(0x8E,U)
 
 static inline bool is_ffa_fid(uint32_t fid)
 {
diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 1d0239cf6950..2b4e24750d52 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -11,6 +11,8 @@
  *               https://developer.arm.com/documentation/den0077/a
  * FF-A-1.1-REL0: FF-A specification version 1.1 available at
  *                https://developer.arm.com/documentation/den0077/e
+ * FF-A-1.2-REL0: FF-A specification version 1.2 available at
+ *                https://developer.arm.com/documentation/den0077/j
  * TEEC-1.0C: TEE Client API Specification version 1.0c available at
  *            https://globalplatform.org/specs-library/tee-client-api-specification/
  *
@@ -102,6 +104,8 @@ static const struct ffa_fw_abi ffa_fw_abi_needed[] = {
     FW_ABI(FFA_MSG_SEND_DIRECT_REQ_32),
     FW_ABI(FFA_MSG_SEND_DIRECT_REQ_64),
     FW_ABI(FFA_MSG_SEND2),
+    FW_ABI(FFA_MSG_SEND_DIRECT_REQ2),
+    FW_ABI(FFA_RUN),
 };
 
 /*
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 6dbdb200d840..8d01da0009d3 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -15,6 +15,7 @@
 #include <xen/spinlock.h>
 #include <xen/time.h>
 #include <xen/types.h>
+#include <asm/tee/ffa.h>
 
 /* Error codes */
 #define FFA_RET_OK                      0
@@ -42,6 +43,7 @@
 
 #define FFA_VERSION_1_0         MAKE_FFA_VERSION(1, 0)
 #define FFA_VERSION_1_1         MAKE_FFA_VERSION(1, 1)
+#define FFA_VERSION_1_2         MAKE_FFA_VERSION(1, 2)
 /* The minimal FF-A version of the SPMC that can be supported */
 #define FFA_MIN_SPMC_VERSION    FFA_VERSION_1_1
 
@@ -270,21 +272,24 @@
 #define FFA_RX_ACQUIRE                  0x84000084U
 #define FFA_SPM_ID_GET                  0x84000085U
 #define FFA_MSG_SEND2                   0x84000086U
+#define FFA_CONSOLE_LOG_32              0x8400008AU
+#define FFA_CONSOLE_LOG_64              0xC400008AU
+#define FFA_PARTITION_INFO_GET_REGS     0x8400008BU
+#define FFA_MSG_SEND_DIRECT_REQ2        0xC400008DU
+#define FFA_MSG_SEND_DIRECT_RESP2       0xC400008EU
 
 /**
  * Encoding of features supported or not by the fw in a bitmap:
- * - Function IDs are going from 0x60 to 0xFF
+ * - Function IDs are going from 0x60 to 0xEF in SMCCC standard
  * - A function can be supported in 32 and/or 64bit
  * The bitmap has one bit for each function in 32 and 64 bit.
  */
 #define FFA_ABI_ID(id)        ((id) & ARM_SMCCC_FUNC_MASK)
 #define FFA_ABI_CONV(id)      (((id) >> ARM_SMCCC_CONV_SHIFT) & BIT(0,U))
 
-#define FFA_ABI_MIN           FFA_ABI_ID(FFA_ERROR)
-#define FFA_ABI_MAX           FFA_ABI_ID(FFA_MSG_SEND2)
-
-#define FFA_ABI_BITMAP_SIZE   (2 * (FFA_ABI_MAX - FFA_ABI_MIN + 1))
-#define FFA_ABI_BITNUM(id)    ((FFA_ABI_ID(id) - FFA_ABI_MIN) << 1 | \
+#define FFA_ABI_BITMAP_SIZE   (2 * (FFA_FNUM_MAX_VALUE - FFA_FNUM_MIN_VALUE \
+                               + 1))
+#define FFA_ABI_BITNUM(id)    ((FFA_ABI_ID(id) - FFA_FNUM_MIN_VALUE) << 1 | \
                                FFA_ABI_CONV(id))
 
 /* Constituent memory region descriptor */
@@ -549,9 +554,9 @@ static inline int32_t ffa_hyp_rx_release(void)
 
 static inline bool ffa_fw_supports_fid(uint32_t fid)
 {
-    BUILD_BUG_ON(FFA_ABI_MIN > FFA_ABI_MAX);
+    BUILD_BUG_ON(FFA_FNUM_MIN_VALUE > FFA_FNUM_MAX_VALUE);
 
-    if ( FFA_ABI_BITNUM(fid) > FFA_ABI_BITMAP_SIZE)
+    if ( FFA_ABI_BITNUM(fid) >= FFA_ABI_BITMAP_SIZE)
         return false;
     return test_bit(FFA_ABI_BITNUM(fid), ffa_fw_abi_supported);
 }
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:50:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:50:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187130.1508564 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tj-0003qL-5y; Mon, 15 Dec 2025 14:50:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187130.1508564; Mon, 15 Dec 2025 14:50:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tj-0003pr-2e; Mon, 15 Dec 2025 14:50:03 +0000
Received: by outflank-mailman (input) for mailman id 1187130;
 Mon, 15 Dec 2025 14:50:01 +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
 <SRS0=pAKg=6V=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vV9th-0003Ov-Na
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:50:01 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 54a551e0-d9c5-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 15:50:00 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 68A98FEC;
 Mon, 15 Dec 2025 06:49:52 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.46.206])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7767D3F694;
 Mon, 15 Dec 2025 06:49:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54a551e0-d9c5-11f0-b15b-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 02/12] xen/arm: ffa: per-VM FFA_VERSION negotiation state
Date: Mon, 15 Dec 2025 15:49:19 +0100
Message-ID: <359051357e82739378c2ebfb5461d27951d42e7b.1765807707.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1765807707.git.bertrand.marquis@arm.com>
References: <cover.1765807707.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Track FF-A version negotiation per VM and enforce that no FF-A ABI
(other than FFA_VERSION) is processed before a guest has selected a
version.

Each ffa_ctx gains a dedicated guest_vers_lock, a negotiated version
(guest_vers) and a guest_vers_tmp:
- guest_vers is the version negotiated or 0 if no version has been
  negotiated. This must be used with ACCESS_ONCE when reading it without
  the spinlock taken.
- guest_vers_tmp stores the version currently requested by a VM.

The version requested is the one actually negotiated once a call
different from FFA_VERSION is done to allow several attempts and as
requested by FF-A specification.
We always return our implementation version FFA_MY_VERSION, even if the
version requested was different, as requested by FF-A specification.

Any call other than FFA_VERSION is rejected until a version has been
requested.

Update all places in the code where guest_vers is used to use
ACCESS_ONCE.

This prevents partially initialised contexts from using the mediator
and complies with the FF-A 1.2 FFA_VERSION semantics.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v2:
- add comment on top of guest_vers to instruct to always use ACCESS_ONCE
  to access it.
Changes in v1:
- remove the guest_vers_negotiated and use guest_vers = 0 as condition
  for a version being negotiated instead
- introduce guest_vers_tmp to store a requested version until it is
  becoming the one negotiated.
- remove not needed if negotiated condition.
- use ACCESS_ONCE when reading guest_vers and use guest_vers == 0 as
  condition for a version being negotiated.
- Update FF-A version handling comment in ffa_private.h
---
 xen/arch/arm/tee/ffa.c          | 101 +++++++++++++++++++++++++-------
 xen/arch/arm/tee/ffa_msg.c      |   2 +-
 xen/arch/arm/tee/ffa_partinfo.c |   4 +-
 xen/arch/arm/tee/ffa_private.h  |  27 +++++++--
 xen/arch/arm/tee/ffa_shm.c      |   3 +-
 5 files changed, 106 insertions(+), 31 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 2b4e24750d52..aadd6c21e7f2 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -158,31 +158,38 @@ static bool ffa_abi_supported(uint32_t id)
     return !ffa_simple_call(FFA_FEATURES, id, 0, 0, 0);
 }
 
-static void handle_version(struct cpu_user_regs *regs)
+static bool ffa_negotiate_version(struct cpu_user_regs *regs)
 {
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
-    uint32_t vers = get_user_reg(regs, 1);
-    uint32_t old_vers;
+    uint32_t fid = get_user_reg(regs, 0);
+    uint32_t in_vers = get_user_reg(regs, 1);
+    uint32_t out_vers = FFA_MY_VERSION;
 
-    /*
-     * Guest will use the version it requested if it is our major and minor
-     * lower or equals to ours. If the minor is greater, our version will be
-     * used.
-     * In any case return our version to the caller.
-     */
-    if ( FFA_VERSION_MAJOR(vers) == FFA_MY_VERSION_MAJOR )
+    spin_lock(&ctx->guest_vers_lock);
+
+    /* If negotiation already published, continue without handling. */
+    if ( ACCESS_ONCE(ctx->guest_vers) )
+        goto out_continue;
+
+    if ( fid != FFA_VERSION )
     {
-        spin_lock(&ctx->lock);
-        old_vers = ctx->guest_vers;
+        if ( !ctx->guest_vers_tmp )
+        {
+            out_vers = 0;
+            goto out_handled;
+        }
 
-        if ( FFA_VERSION_MINOR(vers) > FFA_MY_VERSION_MINOR )
-            ctx->guest_vers = FFA_MY_VERSION;
-        else
-            ctx->guest_vers = vers;
-        spin_unlock(&ctx->lock);
+        /*
+         * A successful FFA_VERSION call does not freeze negotiation. Guests
+         * are allowed to issue multiple FFA_VERSION attempts (e.g. probing
+         * several minor versions). Negotiation becomes final only when a
+         * non-VERSION ABI is invoked, as required by the FF-A specification.
+         * Finalize negotiation: publish guest_vers once, then never change.
+         */
+        ACCESS_ONCE(ctx->guest_vers) = ctx->guest_vers_tmp;
 
-        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !old_vers )
+        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
         {
             /* One more VM with FF-A support available */
             inc_ffa_vm_count();
@@ -190,8 +197,48 @@ static void handle_version(struct cpu_user_regs *regs)
             list_add_tail(&ctx->ctx_list, &ffa_ctx_head);
             write_unlock(&ffa_ctx_list_rwlock);
         }
+
+        goto out_continue;
     }
-    ffa_set_regs(regs, FFA_MY_VERSION, 0, 0, 0, 0, 0, 0, 0);
+
+    /*
+     * guest_vers_tmp stores the version selected by the guest (lower minor may
+     * require reduced data structures). However, the value returned to the
+     * guest via FFA_VERSION is always FFA_MY_VERSION, the implementation
+     * version, as required by FF-A. The two values intentionally differ.
+     */
+
+    /*
+     * Return our highest implementation version on request different than our
+     * major and mark negotiated version as our implementation version.
+     */
+    if ( FFA_VERSION_MAJOR(in_vers) != FFA_MY_VERSION_MAJOR )
+    {
+        ctx->guest_vers_tmp = FFA_MY_VERSION;
+        goto out_handled;
+    }
+
+    /*
+     * Use our minor version if a greater minor was requested or the requested
+     * minor if it is lower than ours was requested.
+     */
+    if ( FFA_VERSION_MINOR(in_vers) > FFA_MY_VERSION_MINOR )
+        ctx->guest_vers_tmp = FFA_MY_VERSION;
+    else
+        ctx->guest_vers_tmp = in_vers;
+
+out_handled:
+    spin_unlock(&ctx->guest_vers_lock);
+    if ( out_vers )
+        ffa_set_regs(regs, out_vers, 0, 0, 0, 0, 0, 0, 0);
+    else
+        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+    return true;
+
+out_continue:
+    spin_unlock(&ctx->guest_vers_lock);
+
+    return false;
 }
 
 static void handle_features(struct cpu_user_regs *regs)
@@ -274,10 +321,17 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     if ( !ctx )
         return false;
 
+    /* A version must be negotiated first */
+    if ( !ACCESS_ONCE(ctx->guest_vers) )
+    {
+        if ( ffa_negotiate_version(regs) )
+            return true;
+    }
+
     switch ( fid )
     {
     case FFA_VERSION:
-        handle_version(regs);
+        ffa_set_regs(regs, FFA_MY_VERSION, 0, 0, 0, 0, 0, 0, 0);
         return true;
     case FFA_ID_GET:
         ffa_set_regs_success(regs, ffa_get_vm_id(d), 0);
@@ -371,6 +425,11 @@ static int ffa_domain_init(struct domain *d)
     d->arch.tee = ctx;
     ctx->teardown_d = d;
     INIT_LIST_HEAD(&ctx->shm_list);
+    spin_lock_init(&ctx->lock);
+    spin_lock_init(&ctx->guest_vers_lock);
+    ctx->guest_vers = 0;
+    ctx->guest_vers_tmp = 0;
+    INIT_LIST_HEAD(&ctx->ctx_list);
 
     ctx->ffa_id = ffa_get_vm_id(d);
     ctx->num_vcpus = d->max_vcpus;
@@ -452,7 +511,7 @@ static int ffa_domain_teardown(struct domain *d)
     if ( !ctx )
         return 0;
 
-    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && ctx->guest_vers )
+    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && ACCESS_ONCE(ctx->guest_vers) )
     {
         dec_ffa_vm_count();
         write_lock(&ffa_ctx_list_rwlock);
diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index c20c5bec0f76..2c2ebc9c5cd6 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -113,7 +113,7 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
     }
 
     dst_ctx = dst_d->arch.tee;
-    if ( !dst_ctx->guest_vers )
+    if ( !ACCESS_ONCE(dst_ctx->guest_vers) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
         goto out_unlock;
diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index fa56b1587e3b..ec5a53ed1cab 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -238,7 +238,7 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
      * use the v1.0 structure size in the destination buffer.
      * Otherwise use the size of the highest version we support, here 1.1.
      */
-    if ( ctx->guest_vers == FFA_VERSION_1_0 )
+    if ( ACCESS_ONCE(ctx->guest_vers) == FFA_VERSION_1_0 )
         dst_size = sizeof(struct ffa_partition_info_1_0);
     else
         dst_size = sizeof(struct ffa_partition_info_1_1);
@@ -250,7 +250,7 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
          * FF-A v1.0 has w5 MBZ while v1.1 allows
          * FFA_PARTITION_INFO_GET_COUNT_FLAG to be non-zero.
          */
-        if ( ctx->guest_vers == FFA_VERSION_1_0 ||
+        if ( ACCESS_ONCE(ctx->guest_vers) == FFA_VERSION_1_0 ||
                 flags != FFA_PARTITION_INFO_GET_COUNT_FLAG )
         {
             ret = FFA_RET_INVALID_PARAMETERS;
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 8d01da0009d3..8ef214344711 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -355,12 +355,6 @@ struct ffa_ctx {
      * Global data accessed with lock locked.
      */
     spinlock_t lock;
-    /*
-     * FF-A version negotiated by the guest, only modifications to
-     * this field are done with the lock held as this is expected to
-     * be done once at init by a guest.
-     */
-    uint32_t guest_vers;
     /* Number of 4kB pages in each of rx/rx_pg and tx/tx_pg */
     unsigned int page_count;
     /* Number of allocated shared memory object */
@@ -368,6 +362,27 @@ struct ffa_ctx {
     /* Used shared memory objects, struct ffa_shm_mem */
     struct list_head shm_list;
 
+    /*
+     * FF-A version handling
+     * guest_vers is the single published negotiated version. It is 0 until
+     * negotiation completes, after which it is set once and never changes.
+     * Negotiation uses guest_vers_tmp under guest_vers_lock; when a
+     * non-VERSION ABI is invoked, Xen finalizes negotiation by publishing
+     * guest_vers using ACCESS_ONCE() store.
+     * Readers use ACCESS_ONCE(guest_vers) != 0 to detect availability and
+     * can consume guest_vers without barriers because it never changes once
+     * published.
+     */
+    spinlock_t guest_vers_lock;
+    /*
+     * Published negotiated version. Zero means "not negotiated yet".
+     * Once non-zero, it never changes.
+     * Must always be accessed using ACCESS_ONCE().
+     */
+    uint32_t guest_vers;
+    /* Temporary version used during negotiation under guest_vers_lock */
+    uint32_t guest_vers_tmp;
+
     /*
      * Rx buffer, accessed with rx_lock locked.
      * rx_is_free is used to serialize access.
diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index d628c1b70609..dad3da192247 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -495,7 +495,8 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     if ( frag_len > ctx->page_count * FFA_PAGE_SIZE )
         goto out_unlock;
 
-    ret = read_mem_transaction(ctx->guest_vers, ctx->tx, frag_len, &trans);
+    ret = read_mem_transaction(ACCESS_ONCE(ctx->guest_vers), ctx->tx,
+                               frag_len, &trans);
     if ( ret )
         goto out_unlock;
 
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:50:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:50:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187131.1508569 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tj-0003tm-GC; Mon, 15 Dec 2025 14:50:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187131.1508569; Mon, 15 Dec 2025 14:50:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tj-0003tE-A4; Mon, 15 Dec 2025 14:50:03 +0000
Received: by outflank-mailman (input) for mailman id 1187131;
 Mon, 15 Dec 2025 14:50:02 +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
 <SRS0=pAKg=6V=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vV9th-0003Ov-Uo
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:50:01 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 555d1f67-d9c5-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 15:50:01 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B94041655;
 Mon, 15 Dec 2025 06:49:53 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.46.206])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D7B503F694;
 Mon, 15 Dec 2025 06:49:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 555d1f67-d9c5-11f0-b15b-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 03/12] xen/arm: ffa: Fix is_64bit init
Date: Mon, 15 Dec 2025 15:49:20 +0100
Message-ID: <983cdb4effeaa0d72ff02f3a7b561f1570646ea0.1765807707.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1765807707.git.bertrand.marquis@arm.com>
References: <cover.1765807707.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

is_64bit_domain(d) is not set during domain_init as the domain field is
only set when loading the domain image which is done after executing
domain_init.

Fix the implementation to set is_64bit when version gets negotiated.
is_64bit is only used during partition_info_get once a domain is added
in the list of domains having ffa support. It must only be accessed when
the rwlock is taken (which is the case).

is_64bit must not be used without the rwlock taken and other places in
the code needing to test 64bit support of the current domain will have
to use calls to is_64bit_domain instead of the field from now on.

Fixes: 09a201605f99 ("xen/arm: ffa: Introduce VM to VM support")
Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
---
Changes in v2:
- add Jens R-b
Changes in v1:
- patch introduced
---
 xen/arch/arm/tee/ffa.c         | 9 ++++++++-
 xen/arch/arm/tee/ffa_private.h | 5 +++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index aadd6c21e7f2..0f6f837378cc 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -180,6 +180,14 @@ static bool ffa_negotiate_version(struct cpu_user_regs *regs)
             goto out_handled;
         }
 
+        /*
+         * We cannot set is_64bit during domain init because the field is not
+         * yet initialized.
+         * This field is only used during partinfo_get with the rwlock taken
+         * so there is no ordering issue with guest_vers.
+         */
+        ctx->is_64bit = is_64bit_domain(d);
+
         /*
          * A successful FFA_VERSION call does not freeze negotiation. Guests
          * are allowed to issue multiple FFA_VERSION attempts (e.g. probing
@@ -433,7 +441,6 @@ static int ffa_domain_init(struct domain *d)
 
     ctx->ffa_id = ffa_get_vm_id(d);
     ctx->num_vcpus = d->max_vcpus;
-    ctx->is_64bit = is_64bit_domain(d);
 
     /*
      * ffa_domain_teardown() will be called if ffa_domain_init() returns an
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 8ef214344711..96794ecebe4b 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -344,6 +344,11 @@ struct ffa_ctx {
     /* FF-A Endpoint ID */
     uint16_t ffa_id;
     uint16_t num_vcpus;
+    /*
+     * Must only be accessed with the ffa_ctx_list_rwlock taken as it set
+     * when guest_vers is set and other accesses could see a partially set
+     * value.
+     */
     bool is_64bit;
 
     /*
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:50:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:50:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187132.1508583 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tm-0004sH-Vf; Mon, 15 Dec 2025 14:50:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187132.1508583; Mon, 15 Dec 2025 14:50:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tm-0004rp-QV; Mon, 15 Dec 2025 14:50:06 +0000
Received: by outflank-mailman (input) for mailman id 1187132;
 Mon, 15 Dec 2025 14:50:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pAKg=6V=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vV9tl-00038W-1G
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:50:05 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 564167ba-d9c5-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 15:50:03 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2711F497;
 Mon, 15 Dec 2025 06:49:55 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.46.206])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 33BD23F694;
 Mon, 15 Dec 2025 06:50:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 564167ba-d9c5-11f0-9cce-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 04/12] xen/arm: ffa: harden RX/TX mapping
Date: Mon, 15 Dec 2025 15:49:21 +0100
Message-ID: <5c8d22e3c3db0a62aa14f000fe4867614bc78456.1765807707.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1765807707.git.bertrand.marquis@arm.com>
References: <cover.1765807707.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Harden the RX/TX mapping paths and keep signed FF-A return codes
end-to-end.

Reject zero-length mappings and insist on page-aligned RX/TX buffer
addresses before touching the P2M. The unmap plumbing is switched to
use the same signed helpers so dispatcher error handling is consistent
across map and unmap operations.

This avoids partially mapped or silently truncated buffers and makes the
mediator behaviour match the FF-A error model more closely.

Prevent concurrent usage of rx or tx buffer during map or unmap by
holding the rx_lock and tx_lock.

While there also introduce a domain_rxtx_init to properly initialize the
rxtx buffers spinlocks.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
---
Changes in v2:
- add Jens R-b
Changes in v1:
- take the rx_lock and tx_lock during rxtx_map and rxtx_unmap to prevent
  concurrent calls using the rx or tx buffer during mapping.
- properly clean rx/tx buffer related context entries during domain_init
---
 xen/arch/arm/tee/ffa.c         |  4 ++
 xen/arch/arm/tee/ffa_private.h |  5 ++-
 xen/arch/arm/tee/ffa_rxtx.c    | 68 +++++++++++++++++++++++++++-------
 3 files changed, 62 insertions(+), 15 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 0f6f837378cc..497ada8264e0 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -451,6 +451,10 @@ static int ffa_domain_init(struct domain *d)
     if ( ret )
         return ret;
 
+    ret = ffa_rxtx_domain_init(d);
+    if ( ret )
+        return ret;
+
     return ffa_notif_domain_init(d);
 }
 
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 96794ecebe4b..0bb5a84553ce 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -439,10 +439,11 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs);
 
 bool ffa_rxtx_init(void);
 void ffa_rxtx_destroy(void);
+int32_t ffa_rxtx_domain_init(struct domain *d);
 void ffa_rxtx_domain_destroy(struct domain *d);
-uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
+int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
 			     register_t rx_addr, uint32_t page_count);
-uint32_t ffa_handle_rxtx_unmap(void);
+int32_t ffa_handle_rxtx_unmap(void);
 int32_t ffa_rx_acquire(struct domain *d);
 int32_t ffa_rx_release(struct domain *d);
 
diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
index a40e5b32e3a5..5776693bb3f0 100644
--- a/xen/arch/arm/tee/ffa_rxtx.c
+++ b/xen/arch/arm/tee/ffa_rxtx.c
@@ -41,10 +41,10 @@ static int32_t ffa_rxtx_unmap(uint16_t id)
     return ffa_simple_call(FFA_RXTX_UNMAP, ((uint64_t)id) << 16, 0, 0, 0);
 }
 
-uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
+int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
 			     register_t rx_addr, uint32_t page_count)
 {
-    uint32_t ret = FFA_RET_INVALID_PARAMETERS;
+    int32_t ret = FFA_RET_INVALID_PARAMETERS;
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
     struct page_info *tx_pg;
@@ -66,20 +66,30 @@ uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
         rx_addr &= UINT32_MAX;
     }
 
-    if ( page_count > FFA_MAX_RXTX_PAGE_COUNT )
+    if ( page_count > FFA_MAX_RXTX_PAGE_COUNT || !page_count )
     {
         printk(XENLOG_ERR "ffa: RXTX_MAP: error: %u pages requested (limit %u)\n",
                page_count, FFA_MAX_RXTX_PAGE_COUNT);
         return FFA_RET_INVALID_PARAMETERS;
     }
 
+    if ( !IS_ALIGNED(tx_addr, FFA_PAGE_SIZE) ||
+         !IS_ALIGNED(rx_addr, FFA_PAGE_SIZE) )
+        return FFA_RET_INVALID_PARAMETERS;
+
+    spin_lock(&ctx->rx_lock);
+    spin_lock(&ctx->tx_lock);
+
     /* Already mapped */
     if ( ctx->rx )
-        return FFA_RET_DENIED;
+    {
+        ret = FFA_RET_DENIED;
+        goto err_unlock_rxtx;
+    }
 
     tx_pg = get_page_from_gfn(d, gfn_x(gaddr_to_gfn(tx_addr)), &t, P2M_ALLOC);
     if ( !tx_pg )
-        return FFA_RET_INVALID_PARAMETERS;
+        goto err_unlock_rxtx;
 
     /* Only normal RW RAM for now */
     if ( t != p2m_ram_rw )
@@ -167,6 +177,10 @@ uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
     ctx->tx_pg = tx_pg;
     ctx->page_count = page_count;
     ctx->rx_is_free = true;
+
+    spin_unlock(&ctx->tx_lock);
+    spin_unlock(&ctx->rx_lock);
+
     return FFA_RET_OK;
 
 err_unmap_rx:
@@ -177,24 +191,32 @@ err_put_rx_pg:
     put_page(rx_pg);
 err_put_tx_pg:
     put_page(tx_pg);
+err_unlock_rxtx:
+    spin_unlock(&ctx->tx_lock);
+    spin_unlock(&ctx->rx_lock);
 
     return ret;
 }
 
-static uint32_t  rxtx_unmap(struct domain *d)
+static int32_t rxtx_unmap(struct domain *d)
 {
     struct ffa_ctx *ctx = d->arch.tee;
+    int32_t ret = FFA_RET_OK;
+
+    spin_lock(&ctx->rx_lock);
+    spin_lock(&ctx->tx_lock);
 
     if ( !ctx->page_count )
-        return FFA_RET_INVALID_PARAMETERS;
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto err_unlock_rxtx;
+    }
 
     if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
     {
-        uint32_t ret;
-
         ret = ffa_rxtx_unmap(ffa_get_vm_id(d));
         if ( ret != FFA_RET_OK )
-            return ret;
+            goto err_unlock_rxtx;
     }
 
     unmap_domain_page_global(ctx->rx);
@@ -208,10 +230,14 @@ static uint32_t  rxtx_unmap(struct domain *d)
     ctx->page_count = 0;
     ctx->rx_is_free = false;
 
-    return FFA_RET_OK;
+err_unlock_rxtx:
+    spin_unlock(&ctx->tx_lock);
+    spin_unlock(&ctx->rx_lock);
+
+    return ret;
 }
 
-uint32_t ffa_handle_rxtx_unmap(void)
+int32_t ffa_handle_rxtx_unmap(void)
 {
     return rxtx_unmap(current->domain);
 }
@@ -272,6 +298,22 @@ out:
     return ret;
 }
 
+int32_t ffa_rxtx_domain_init(struct domain *d)
+{
+    struct ffa_ctx *ctx = d->arch.tee;
+
+    spin_lock_init(&ctx->rx_lock);
+    spin_lock_init(&ctx->tx_lock);
+    ctx->rx = NULL;
+    ctx->tx = NULL;
+    ctx->rx_pg = NULL;
+    ctx->tx_pg = NULL;
+    ctx->page_count = 0;
+    ctx->rx_is_free = false;
+
+    return 0;
+}
+
 void ffa_rxtx_domain_destroy(struct domain *d)
 {
     rxtx_unmap(d);
@@ -298,7 +340,7 @@ void ffa_rxtx_destroy(void)
 
 bool ffa_rxtx_init(void)
 {
-    int e;
+    int32_t e;
 
     /* Firmware not there or not supporting */
     if ( !ffa_fw_supports_fid(FFA_RXTX_MAP_64) )
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:50:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:50:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187133.1508589 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tn-0004vP-7L; Mon, 15 Dec 2025 14:50:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187133.1508589; Mon, 15 Dec 2025 14:50:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tn-0004uJ-1i; Mon, 15 Dec 2025 14:50:07 +0000
Received: by outflank-mailman (input) for mailman id 1187133;
 Mon, 15 Dec 2025 14:50:05 +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
 <SRS0=pAKg=6V=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vV9tl-0003Ov-0B
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:50:05 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 5709fbfe-d9c5-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 15:50:04 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 843C2FEC;
 Mon, 15 Dec 2025 06:49:56 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.46.206])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 963F53F694;
 Mon, 15 Dec 2025 06:50:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5709fbfe-d9c5-11f0-b15b-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 05/12] xen/arm: ffa: rework SPMC RX/TX buffer management
Date: Mon, 15 Dec 2025 15:49:22 +0100
Message-ID: <9810a2728cfd8541d6aa680c7af7728324e6a1dd.1765807707.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1765807707.git.bertrand.marquis@arm.com>
References: <cover.1765807707.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Rework how Xen accesses the RX/TX buffers shared with the SPMC so that
ownership and locking are handled centrally.

Move the SPMC RX/TX buffer bases into ffa_rxtx.c as ffa_spmc_rx/ffa_spmc_tx,
protect them with dedicated ffa_spmc_{rx,tx}_lock spinlocks and expose
ffa_rxtx_spmc_{rx,tx}_{acquire,release}() helpers instead of the global
ffa_rx/ffa_tx pointers and ffa_{rx,tx}_buffer_lock.

The RX helpers now always issue FFA_RX_RELEASE when we are done
consuming data from the SPMC, so partition-info enumeration and shared
memory paths release the RX buffer on all exit paths. The RX/TX mapping
code is updated to use the descriptor offsets (rx_region_offs and
tx_region_offs) rather than hard-coded structure layout, and to use the
TX acquire/release helpers instead of touching the TX buffer directly.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v2:
- remove invalid ASSERT in SPMC RX/TX acquire as it is expected that the
  buffer are already taken and the spinlock is here to serialize.
Changes in v1:
- modify share_shm function to use a goto and have one place to release
  the spmc tx buffer instead of doing it directly in the if error
  condition.
- fix rx_acquire and tx_acquire to not release the spinlock as this is
  expected to be done only in release to ensure no parallel usage.
---
 xen/arch/arm/tee/ffa.c          |  22 +-----
 xen/arch/arm/tee/ffa_partinfo.c |  40 +++++-----
 xen/arch/arm/tee/ffa_private.h  |  18 ++---
 xen/arch/arm/tee/ffa_rxtx.c     | 126 +++++++++++++++++++++++++-------
 xen/arch/arm/tee/ffa_shm.c      |  29 +++++---
 5 files changed, 149 insertions(+), 86 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 497ada8264e0..43af49d1c011 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -48,8 +48,8 @@
  *     notification for secure partitions
  *   - doesn't support notifications for Xen itself
  *
- * There are some large locked sections with ffa_tx_buffer_lock and
- * ffa_rx_buffer_lock. Especially the ffa_tx_buffer_lock spinlock used
+ * There are some large locked sections with ffa_spmc_tx_lock and
+ * ffa_spmc_rx_lock. Especially the ffa_spmc_tx_lock spinlock used
  * around share_shm() is a very large locked section which can let one VM
  * affect another VM.
  */
@@ -108,20 +108,6 @@ static const struct ffa_fw_abi ffa_fw_abi_needed[] = {
     FW_ABI(FFA_RUN),
 };
 
-/*
- * Our rx/tx buffers shared with the SPMC. FFA_RXTX_PAGE_COUNT is the
- * number of pages used in each of these buffers.
- *
- * The RX buffer is protected from concurrent usage with ffa_rx_buffer_lock.
- * Note that the SPMC is also tracking the ownership of our RX buffer so
- * for calls which uses our RX buffer to deliver a result we must call
- * ffa_rx_release() to let the SPMC know that we're done with the buffer.
- */
-void *ffa_rx __read_mostly;
-void *ffa_tx __read_mostly;
-DEFINE_SPINLOCK(ffa_rx_buffer_lock);
-DEFINE_SPINLOCK(ffa_tx_buffer_lock);
-
 LIST_HEAD(ffa_ctx_head);
 /* RW Lock to protect addition/removal and reading in ffa_ctx_head */
 DEFINE_RWLOCK(ffa_ctx_list_rwlock);
@@ -617,7 +603,7 @@ static bool ffa_probe_fw(void)
                    ffa_fw_abi_needed[i].name);
     }
 
-    if ( !ffa_rxtx_init() )
+    if ( !ffa_rxtx_spmc_init() )
     {
         printk(XENLOG_ERR "ffa: Error during RXTX buffer init\n");
         goto err_no_fw;
@@ -631,7 +617,7 @@ static bool ffa_probe_fw(void)
     return true;
 
 err_rxtx_destroy:
-    ffa_rxtx_destroy();
+    ffa_rxtx_spmc_destroy();
 err_no_fw:
     ffa_fw_version = 0;
     bitmap_zero(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index ec5a53ed1cab..145b869957b0 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -77,28 +77,24 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
 {
     int32_t ret;
     uint32_t src_size, real_sp_count;
-    void *src_buf = ffa_rx;
+    void *src_buf;
     uint32_t count = 0;
 
-    /* Do we have a RX buffer with the SPMC */
-    if ( !ffa_rx )
-        return FFA_RET_DENIED;
-
     /* We need to use the RX buffer to receive the list */
-    spin_lock(&ffa_rx_buffer_lock);
+    src_buf = ffa_rxtx_spmc_rx_acquire();
+    if ( !src_buf )
+        return FFA_RET_DENIED;
 
     ret = ffa_partition_info_get(uuid, 0, &real_sp_count, &src_size);
     if ( ret )
         goto out;
 
-    /* We now own the RX buffer */
-
     /* Validate the src_size we got */
     if ( src_size < sizeof(struct ffa_partition_info_1_0) ||
          src_size >= FFA_PAGE_SIZE )
     {
         ret = FFA_RET_NOT_SUPPORTED;
-        goto out_release;
+        goto out;
     }
 
     /*
@@ -114,7 +110,7 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
     if ( real_sp_count > (FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE) / src_size )
     {
         ret = FFA_RET_NOT_SUPPORTED;
-        goto out_release;
+        goto out;
     }
 
     for ( uint32_t sp_num = 0; sp_num < real_sp_count; sp_num++ )
@@ -127,7 +123,7 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
             if ( dst_buf > (end_buf - dst_size) )
             {
                 ret = FFA_RET_NO_MEMORY;
-                goto out_release;
+                goto out;
             }
 
             memcpy(dst_buf, src_buf, MIN(src_size, dst_size));
@@ -143,10 +139,8 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
 
     *sp_count = count;
 
-out_release:
-    ffa_hyp_rx_release();
 out:
-    spin_unlock(&ffa_rx_buffer_lock);
+    ffa_rxtx_spmc_rx_release();
     return ret;
 }
 
@@ -378,7 +372,7 @@ static void uninit_subscribers(void)
         XFREE(subscr_vm_destroyed);
 }
 
-static bool init_subscribers(uint16_t count, uint32_t fpi_size)
+static bool init_subscribers(void *buf, uint16_t count, uint32_t fpi_size)
 {
     uint16_t n;
     uint16_t c_pos;
@@ -395,7 +389,7 @@ static bool init_subscribers(uint16_t count, uint32_t fpi_size)
     subscr_vm_destroyed_count = 0;
     for ( n = 0; n < count; n++ )
     {
-        fpi = ffa_rx + n * fpi_size;
+        fpi = buf + n * fpi_size;
 
         /*
          * We need to have secure partitions using bit 15 set convention for
@@ -433,7 +427,7 @@ static bool init_subscribers(uint16_t count, uint32_t fpi_size)
 
     for ( c_pos = 0, d_pos = 0, n = 0; n < count; n++ )
     {
-        fpi = ffa_rx + n * fpi_size;
+        fpi = buf + n * fpi_size;
 
         if ( FFA_ID_IS_SECURE(fpi->id) )
         {
@@ -455,10 +449,14 @@ bool ffa_partinfo_init(void)
     uint32_t fpi_size;
     uint32_t count;
     int e;
+    void *spmc_rx;
 
     if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) ||
-         !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32) ||
-         !ffa_rx || !ffa_tx )
+         !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32))
+        return false;
+
+    spmc_rx = ffa_rxtx_spmc_rx_acquire();
+    if (!spmc_rx)
         return false;
 
     e = ffa_partition_info_get(NULL, 0, &count, &fpi_size);
@@ -475,10 +473,10 @@ bool ffa_partinfo_init(void)
         goto out;
     }
 
-    ret = init_subscribers(count, fpi_size);
+    ret = init_subscribers(spmc_rx, count, fpi_size);
 
 out:
-    ffa_hyp_rx_release();
+    ffa_rxtx_spmc_rx_release();
     return ret;
 }
 
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 0bb5a84553ce..4c97041829a9 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -416,10 +416,6 @@ struct ffa_ctx {
     unsigned long *vm_destroy_bitmap;
 };
 
-extern void *ffa_rx;
-extern void *ffa_tx;
-extern spinlock_t ffa_rx_buffer_lock;
-extern spinlock_t ffa_tx_buffer_lock;
 extern DECLARE_BITMAP(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
 
 extern struct list_head ffa_ctx_head;
@@ -437,8 +433,13 @@ int ffa_partinfo_domain_init(struct domain *d);
 bool ffa_partinfo_domain_destroy(struct domain *d);
 void ffa_handle_partition_info_get(struct cpu_user_regs *regs);
 
-bool ffa_rxtx_init(void);
-void ffa_rxtx_destroy(void);
+bool ffa_rxtx_spmc_init(void);
+void ffa_rxtx_spmc_destroy(void);
+void *ffa_rxtx_spmc_rx_acquire(void);
+void ffa_rxtx_spmc_rx_release(void);
+void *ffa_rxtx_spmc_tx_acquire(void);
+void ffa_rxtx_spmc_tx_release(void);
+
 int32_t ffa_rxtx_domain_init(struct domain *d);
 void ffa_rxtx_domain_destroy(struct domain *d);
 int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
@@ -568,11 +569,6 @@ static inline int32_t ffa_simple_call(uint32_t fid, register_t a1,
     return ffa_get_ret_code(&resp);
 }
 
-static inline int32_t ffa_hyp_rx_release(void)
-{
-    return ffa_simple_call(FFA_RX_RELEASE, 0, 0, 0, 0);
-}
-
 static inline bool ffa_fw_supports_fid(uint32_t fid)
 {
     BUILD_BUG_ON(FFA_FNUM_MIN_VALUE > FFA_FNUM_MAX_VALUE);
diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
index 5776693bb3f0..63203b22b84c 100644
--- a/xen/arch/arm/tee/ffa_rxtx.c
+++ b/xen/arch/arm/tee/ffa_rxtx.c
@@ -30,6 +30,20 @@ struct ffa_endpoint_rxtx_descriptor_1_1 {
     uint32_t tx_region_offs;
 };
 
+/*
+ * Our rx/tx buffers shared with the SPMC. FFA_RXTX_PAGE_COUNT is the
+ * number of pages used in each of these buffers.
+ * Each buffer has its own lock to protect from concurrent usage.
+ *
+ * Note that the SPMC is also tracking the ownership of our RX buffer so
+ * for calls which uses our RX buffer to deliver a result we must do an
+ * FFA_RX_RELEASE to let the SPMC know that we're done with the buffer.
+ */
+static void *ffa_spmc_rx __read_mostly;
+static void *ffa_spmc_tx __read_mostly;
+static DEFINE_SPINLOCK(ffa_spmc_rx_lock);
+static DEFINE_SPINLOCK(ffa_spmc_tx_lock);
+
 static int32_t ffa_rxtx_map(paddr_t tx_addr, paddr_t rx_addr,
                             uint32_t page_count)
 {
@@ -126,8 +140,9 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
                      sizeof(struct ffa_address_range) * 2 >
                      FFA_MAX_RXTX_PAGE_COUNT * FFA_PAGE_SIZE);
 
-        spin_lock(&ffa_tx_buffer_lock);
-        rxtx_desc = ffa_tx;
+        rxtx_desc = ffa_rxtx_spmc_tx_acquire();
+        if ( !rxtx_desc )
+            goto err_unmap_rx;
 
         /*
          * We have only one page for each so we pack everything:
@@ -144,7 +159,7 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
                                              address_range_array[1]);
 
         /* rx buffer */
-        mem_reg = ffa_tx + sizeof(*rxtx_desc);
+        mem_reg = (void *)rxtx_desc + rxtx_desc->rx_region_offs;
         mem_reg->total_page_count = 1;
         mem_reg->address_range_count = 1;
         mem_reg->reserved = 0;
@@ -154,7 +169,7 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
         mem_reg->address_range_array[0].reserved = 0;
 
         /* tx buffer */
-        mem_reg = ffa_tx + rxtx_desc->tx_region_offs;
+        mem_reg = (void *)rxtx_desc + rxtx_desc->tx_region_offs;
         mem_reg->total_page_count = 1;
         mem_reg->address_range_count = 1;
         mem_reg->reserved = 0;
@@ -165,7 +180,7 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
 
         ret = ffa_rxtx_map(0, 0, 0);
 
-        spin_unlock(&ffa_tx_buffer_lock);
+        ffa_rxtx_spmc_tx_release();
 
         if ( ret != FFA_RET_OK )
             goto err_unmap_rx;
@@ -319,49 +334,108 @@ void ffa_rxtx_domain_destroy(struct domain *d)
     rxtx_unmap(d);
 }
 
-void ffa_rxtx_destroy(void)
+void *ffa_rxtx_spmc_rx_acquire(void)
+{
+    spin_lock(&ffa_spmc_rx_lock);
+
+    if ( ffa_spmc_rx )
+        return ffa_spmc_rx;
+
+    return NULL;
+}
+
+void ffa_rxtx_spmc_rx_release(void)
+{
+    int32_t ret;
+
+    ASSERT(spin_is_locked(&ffa_spmc_rx_lock));
+
+    /* Inform the SPMC that we are done with our RX buffer */
+    ret = ffa_simple_call(FFA_RX_RELEASE, 0, 0, 0, 0);
+    if ( ret != FFA_RET_OK )
+        printk(XENLOG_DEBUG "Error releasing SPMC RX buffer: %d\n", ret);
+
+    spin_unlock(&ffa_spmc_rx_lock);
+}
+
+void *ffa_rxtx_spmc_tx_acquire(void)
 {
-    bool need_unmap = ffa_tx && ffa_rx;
+    spin_lock(&ffa_spmc_tx_lock);
 
-    if ( ffa_tx )
+    if ( ffa_spmc_tx )
+        return ffa_spmc_tx;
+
+    return NULL;
+}
+
+void ffa_rxtx_spmc_tx_release(void)
+{
+    ASSERT(spin_is_locked(&ffa_spmc_tx_lock));
+
+    spin_unlock(&ffa_spmc_tx_lock);
+}
+
+void ffa_rxtx_spmc_destroy(void)
+{
+    bool need_unmap;
+
+    spin_lock(&ffa_spmc_rx_lock);
+    spin_lock(&ffa_spmc_tx_lock);
+    need_unmap = ffa_spmc_tx && ffa_spmc_rx;
+
+    if ( ffa_spmc_tx )
     {
-        free_xenheap_pages(ffa_tx, 0);
-        ffa_tx = NULL;
+        free_xenheap_pages(ffa_spmc_tx, 0);
+        ffa_spmc_tx = NULL;
     }
-    if ( ffa_rx )
+    if ( ffa_spmc_rx )
     {
-        free_xenheap_pages(ffa_rx, 0);
-        ffa_rx = NULL;
+        free_xenheap_pages(ffa_spmc_rx, 0);
+        ffa_spmc_rx = NULL;
     }
 
     if ( need_unmap )
         ffa_rxtx_unmap(0);
+
+    spin_unlock(&ffa_spmc_tx_lock);
+    spin_unlock(&ffa_spmc_rx_lock);
 }
 
-bool ffa_rxtx_init(void)
+bool ffa_rxtx_spmc_init(void)
 {
     int32_t e;
+    bool ret = false;
 
     /* Firmware not there or not supporting */
     if ( !ffa_fw_supports_fid(FFA_RXTX_MAP_64) )
         return false;
 
-    ffa_rx = alloc_xenheap_pages(get_order_from_pages(FFA_RXTX_PAGE_COUNT), 0);
-    if ( !ffa_rx )
-        return false;
+    spin_lock(&ffa_spmc_rx_lock);
+    spin_lock(&ffa_spmc_tx_lock);
 
-    ffa_tx = alloc_xenheap_pages(get_order_from_pages(FFA_RXTX_PAGE_COUNT), 0);
-    if ( !ffa_tx )
-        goto err;
+    ffa_spmc_rx = alloc_xenheap_pages(
+                            get_order_from_pages(FFA_RXTX_PAGE_COUNT), 0);
+    if ( !ffa_spmc_rx )
+        goto exit;
 
-    e = ffa_rxtx_map(__pa(ffa_tx), __pa(ffa_rx), FFA_RXTX_PAGE_COUNT);
+    ffa_spmc_tx = alloc_xenheap_pages(
+                            get_order_from_pages(FFA_RXTX_PAGE_COUNT), 0);
+    if ( !ffa_spmc_tx )
+        goto exit;
+
+    e = ffa_rxtx_map(__pa(ffa_spmc_tx), __pa(ffa_spmc_rx),
+                     FFA_RXTX_PAGE_COUNT);
     if ( e )
-        goto err;
+        goto exit;
+
+    ret = true;
 
-    return true;
+exit:
+    spin_unlock(&ffa_spmc_tx_lock);
+    spin_unlock(&ffa_spmc_rx_lock);
 
-err:
-    ffa_rxtx_destroy();
+    if ( !ret )
+        ffa_rxtx_spmc_destroy();
 
-    return false;
+    return ret;
 }
diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index dad3da192247..e275d3769d9b 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -286,9 +286,8 @@ static void init_range(struct ffa_address_range *addr_range,
 }
 
 /*
- * This function uses the ffa_tx buffer to transmit the memory transaction
- * descriptor. The function depends ffa_tx_buffer_lock to be used to guard
- * the buffer from concurrent use.
+ * This function uses the ffa_spmc tx buffer to transmit the memory transaction
+ * descriptor.
  */
 static int share_shm(struct ffa_shm_mem *shm)
 {
@@ -298,17 +297,22 @@ static int share_shm(struct ffa_shm_mem *shm)
     struct ffa_address_range *addr_range;
     struct ffa_mem_region *region_descr;
     const unsigned int region_count = 1;
-    void *buf = ffa_tx;
     uint32_t frag_len;
     uint32_t tot_len;
     paddr_t last_pa;
     unsigned int n;
     paddr_t pa;
+    int32_t ret;
+    void *buf;
 
-    ASSERT(spin_is_locked(&ffa_tx_buffer_lock));
     ASSERT(shm->page_count);
 
+    buf = ffa_rxtx_spmc_tx_acquire();
+    if ( !buf )
+        return FFA_RET_NOT_SUPPORTED;
+
     descr = buf;
+
     memset(descr, 0, sizeof(*descr));
     descr->sender_id = shm->sender_id;
     descr->handle = shm->handle;
@@ -340,7 +344,10 @@ static int share_shm(struct ffa_shm_mem *shm)
     tot_len = ADDR_RANGE_OFFSET(descr->mem_access_count, region_count,
                                 region_descr->address_range_count);
     if ( tot_len > max_frag_len )
-        return FFA_RET_NOT_SUPPORTED;
+    {
+        ret = FFA_RET_NOT_SUPPORTED;
+        goto out;
+    }
 
     addr_range = region_descr->address_range_array;
     frag_len = ADDR_RANGE_OFFSET(descr->mem_access_count, region_count, 1);
@@ -360,7 +367,12 @@ static int share_shm(struct ffa_shm_mem *shm)
         init_range(addr_range, pa);
     }
 
-    return ffa_mem_share(tot_len, frag_len, 0, 0, &shm->handle);
+    ret = ffa_mem_share(tot_len, frag_len, 0, 0, &shm->handle);
+
+out:
+    ffa_rxtx_spmc_tx_release();
+
+    return ret;
 }
 
 static int read_mem_transaction(uint32_t ffa_vers, const void *buf, size_t blen,
@@ -579,10 +591,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     if ( ret )
         goto out;
 
-    /* Note that share_shm() uses our tx buffer */
-    spin_lock(&ffa_tx_buffer_lock);
     ret = share_shm(shm);
-    spin_unlock(&ffa_tx_buffer_lock);
     if ( ret )
         goto out;
 
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:50:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:50:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187135.1508595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tn-00054r-S7; Mon, 15 Dec 2025 14:50:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187135.1508595; Mon, 15 Dec 2025 14:50:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tn-000539-HD; Mon, 15 Dec 2025 14:50:07 +0000
Received: by outflank-mailman (input) for mailman id 1187135;
 Mon, 15 Dec 2025 14:50:06 +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
 <SRS0=pAKg=6V=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vV9tm-0003Ov-Az
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:50:06 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 57da5539-d9c5-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 15:50:05 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id DB1E9497;
 Mon, 15 Dec 2025 06:49:57 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.46.206])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 000E93F694;
 Mon, 15 Dec 2025 06:50:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 57da5539-d9c5-11f0-b15b-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 06/12] xen/arm: ffa: rework VM RX/TX buffer management
Date: Mon, 15 Dec 2025 15:49:23 +0100
Message-ID: <df23dc90ab0d174a5d02d02d513061639e4325f9.1765807707.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1765807707.git.bertrand.marquis@arm.com>
References: <cover.1765807707.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Rework access to VM RX/TX buffer to use acquire/release functions
equivalent to the ones used for the SPMC RX/TX buffers and remove all
direct access to ctx->tx or ctx->rx by giving back the buffer pointer
and size back in acquire.

This design ensures that rx or page_count is not accessed without the
lock held and limit direct usage of the context rx/tx buffer info to
ffa_rxtx.c

Modify msg, partinfo and shm code to use the new RX/TX buffer
acquire/release functions and remove all direct accesses to rx/tx and
page_count so that any access is done only with the lock taken.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
---
Changes in v2:
- add Jens R-b
Changes in v1:
- patch introduced
---
 xen/arch/arm/tee/ffa.c          |  2 +-
 xen/arch/arm/tee/ffa_msg.c      | 32 ++++++++++++------------
 xen/arch/arm/tee/ffa_partinfo.c |  8 +++---
 xen/arch/arm/tee/ffa_private.h  |  6 +++--
 xen/arch/arm/tee/ffa_rxtx.c     | 43 ++++++++++++++++++++++++++++-----
 xen/arch/arm/tee/ffa_shm.c      | 18 +++++++-------
 6 files changed, 72 insertions(+), 37 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 43af49d1c011..69a5e1e876ce 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -345,7 +345,7 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
         ffa_handle_partition_info_get(regs);
         return true;
     case FFA_RX_RELEASE:
-        e = ffa_rx_release(d);
+        e = ffa_rx_release(ctx);
         break;
     case FFA_MSG_SEND_DIRECT_REQ_32:
     case FFA_MSG_SEND_DIRECT_REQ_64:
diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index 2c2ebc9c5cd6..d60eed6d8811 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -94,6 +94,8 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
     struct domain *dst_d;
     struct ffa_ctx *dst_ctx;
     struct ffa_part_msg_rxtx *dst_msg;
+    void *rx_buf;
+    size_t rx_size;
     int err;
     int32_t ret;
 
@@ -120,20 +122,19 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
     }
 
     /* This also checks that destination has set a Rx buffer */
-    ret = ffa_rx_acquire(dst_d);
+    ret = ffa_rx_acquire(dst_ctx , &rx_buf, &rx_size);
     if ( ret )
         goto out_unlock;
 
     /* we need to have enough space in the destination buffer */
-    if ( (dst_ctx->page_count * FFA_PAGE_SIZE -
-          sizeof(struct ffa_part_msg_rxtx)) < src_msg->msg_size )
+    if ( (rx_size - sizeof(struct ffa_part_msg_rxtx)) < src_msg->msg_size )
     {
         ret = FFA_RET_NO_MEMORY;
-        ffa_rx_release(dst_d);
+        ffa_rx_release(dst_ctx);
         goto out_unlock;
     }
 
-    dst_msg = dst_ctx->rx;
+    dst_msg = rx_buf;
 
     /* prepare destination header */
     dst_msg->flags = 0;
@@ -142,7 +143,7 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
     dst_msg->send_recv_id = src_msg->send_recv_id;
     dst_msg->msg_size = src_msg->msg_size;
 
-    memcpy(dst_ctx->rx + sizeof(struct ffa_part_msg_rxtx),
+    memcpy(rx_buf + sizeof(struct ffa_part_msg_rxtx),
            src_buf + src_msg->msg_offset, src_msg->msg_size);
 
     /* receiver rx buffer will be released by the receiver*/
@@ -159,17 +160,20 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
 {
     struct domain *src_d = current->domain;
     struct ffa_ctx *src_ctx = src_d->arch.tee;
+    const void *tx_buf;
+    size_t tx_size;
     struct ffa_part_msg_rxtx src_msg;
     uint16_t dst_id, src_id;
     int32_t ret;
 
     BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx) >= FFA_PAGE_SIZE);
 
-    if ( !spin_trylock(&src_ctx->tx_lock) )
-        return FFA_RET_BUSY;
+    ret = ffa_tx_acquire(src_ctx, &tx_buf, &tx_size);
+    if ( ret != FFA_RET_OK )
+        return ret;
 
     /* create a copy of the message header */
-    memcpy(&src_msg, src_ctx->tx, sizeof(src_msg));
+    memcpy(&src_msg, tx_buf, sizeof(src_msg));
 
     src_id = src_msg.send_recv_id >> 16;
     dst_id = src_msg.send_recv_id & GENMASK(15,0);
@@ -182,10 +186,8 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
 
     /* check source message fits in buffer */
     if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx) ||
-            src_msg.msg_size == 0 ||
-            src_msg.msg_offset > src_ctx->page_count * FFA_PAGE_SIZE ||
-            src_msg.msg_size > (src_ctx->page_count * FFA_PAGE_SIZE -
-                                src_msg.msg_offset) )
+            src_msg.msg_size == 0 || src_msg.msg_offset > tx_size ||
+            src_msg.msg_size > (tx_size - src_msg.msg_offset) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
         goto out;
@@ -206,12 +208,12 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
     else if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
     {
         /* Message for a VM */
-        ret = ffa_msg_send2_vm(dst_id, src_ctx->tx, &src_msg);
+        ret = ffa_msg_send2_vm(dst_id, tx_buf, &src_msg);
     }
     else
         ret = FFA_RET_INVALID_PARAMETERS;
 
 out:
-    spin_unlock(&src_ctx->tx_lock);
+    ffa_tx_release(src_ctx);
     return ret;
 }
diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index 145b869957b0..16c905cb12b8 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -224,6 +224,7 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
         get_user_reg(regs, 4),
     };
     uint32_t dst_size = 0;
+    size_t buf_size;
     void *dst_buf, *end_buf;
     uint32_t ffa_vm_count = 0, ffa_sp_count = 0;
 
@@ -268,12 +269,11 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
     }
 
     /* Get the RX buffer to write the list of partitions */
-    ret = ffa_rx_acquire(d);
+    ret = ffa_rx_acquire(ctx, &dst_buf, &buf_size);
     if ( ret != FFA_RET_OK )
         goto out;
 
-    dst_buf = ctx->rx;
-    end_buf = ctx->rx + ctx->page_count * FFA_PAGE_SIZE;
+    end_buf = dst_buf + buf_size;
 
     /* An entry should be smaller than a page */
     BUILD_BUG_ON(sizeof(struct ffa_partition_info_1_1) > FFA_PAGE_SIZE);
@@ -304,7 +304,7 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
 
 out_rx_release:
     if ( ret )
-        ffa_rx_release(d);
+        ffa_rx_release(ctx);
 out:
     if ( ret )
         ffa_set_regs_error(regs, ret);
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 4c97041829a9..904ad1df733b 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -445,8 +445,10 @@ void ffa_rxtx_domain_destroy(struct domain *d);
 int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
 			     register_t rx_addr, uint32_t page_count);
 int32_t ffa_handle_rxtx_unmap(void);
-int32_t ffa_rx_acquire(struct domain *d);
-int32_t ffa_rx_release(struct domain *d);
+int32_t ffa_rx_acquire(struct ffa_ctx *ctx, void **buf, size_t *buf_size);
+int32_t ffa_rx_release(struct ffa_ctx *ctx);
+int32_t ffa_tx_acquire(struct ffa_ctx *ctx, const void **buf, size_t *buf_size);
+int32_t ffa_tx_release(struct ffa_ctx *ctx);
 
 void ffa_notif_init(void);
 void ffa_notif_init_interrupt(void);
diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
index 63203b22b84c..7d8bb4f4d031 100644
--- a/xen/arch/arm/tee/ffa_rxtx.c
+++ b/xen/arch/arm/tee/ffa_rxtx.c
@@ -257,10 +257,9 @@ int32_t ffa_handle_rxtx_unmap(void)
     return rxtx_unmap(current->domain);
 }
 
-int32_t ffa_rx_acquire(struct domain *d)
+int32_t ffa_rx_acquire(struct ffa_ctx *ctx, void **buf, size_t *buf_size)
 {
     int32_t ret = FFA_RET_OK;
-    struct ffa_ctx *ctx = d->arch.tee;
 
     spin_lock(&ctx->rx_lock);
 
@@ -278,21 +277,22 @@ int32_t ffa_rx_acquire(struct domain *d)
 
     if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
     {
-        ret = ffa_simple_call(FFA_RX_ACQUIRE, ffa_get_vm_id(d), 0, 0, 0);
+        ret = ffa_simple_call(FFA_RX_ACQUIRE, ctx->ffa_id, 0, 0, 0);
         if ( ret != FFA_RET_OK )
             goto out;
     }
     ctx->rx_is_free = false;
+    *buf = ctx->rx;
+    *buf_size = ctx->page_count * FFA_PAGE_SIZE;
 out:
     spin_unlock(&ctx->rx_lock);
 
     return ret;
 }
 
-int32_t ffa_rx_release(struct domain *d)
+int32_t ffa_rx_release(struct ffa_ctx *ctx)
 {
     int32_t ret = FFA_RET_DENIED;
-    struct ffa_ctx *ctx = d->arch.tee;
 
     spin_lock(&ctx->rx_lock);
 
@@ -301,7 +301,7 @@ int32_t ffa_rx_release(struct domain *d)
 
     if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
     {
-        ret = ffa_simple_call(FFA_RX_RELEASE, ffa_get_vm_id(d), 0, 0, 0);
+        ret = ffa_simple_call(FFA_RX_RELEASE, ctx->ffa_id, 0, 0, 0);
         if ( ret != FFA_RET_OK )
             goto out;
     }
@@ -313,6 +313,37 @@ out:
     return ret;
 }
 
+int32_t ffa_tx_acquire(struct ffa_ctx *ctx, const void **buf, size_t *buf_size)
+{
+    int32_t ret = FFA_RET_DENIED;
+
+    if ( !spin_trylock(&ctx->tx_lock) )
+        return FFA_RET_BUSY;
+
+    if ( !ctx->page_count )
+        goto err_unlock;
+
+    if ( !ctx->tx )
+        goto err_unlock;
+
+    *buf = ctx->tx;
+    *buf_size = ctx->page_count * FFA_PAGE_SIZE;
+    return FFA_RET_OK;
+
+err_unlock:
+    spin_unlock(&ctx->tx_lock);
+
+    return ret;
+}
+
+int32_t ffa_tx_release(struct ffa_ctx *ctx)
+{
+    ASSERT(spin_is_locked(&ctx->tx_lock));
+
+    spin_unlock(&ctx->tx_lock);
+    return FFA_RET_OK;
+}
+
 int32_t ffa_rxtx_domain_init(struct domain *d)
 {
     struct ffa_ctx *ctx = d->arch.tee;
diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index e275d3769d9b..b862578c553c 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -460,6 +460,8 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     struct ffa_mem_transaction_int trans;
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
+    const void *tx_buf;
+    size_t tx_size;
     struct ffa_shm_mem *shm = NULL;
     register_t handle_hi = 0;
     register_t handle_lo = 0;
@@ -498,16 +500,14 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
         goto out_set_ret;
     }
 
-    if ( !spin_trylock(&ctx->tx_lock) )
-    {
-        ret = FFA_RET_BUSY;
+    ret = ffa_tx_acquire(ctx, &tx_buf, &tx_size);
+    if ( ret != FFA_RET_OK )
         goto out_set_ret;
-    }
 
-    if ( frag_len > ctx->page_count * FFA_PAGE_SIZE )
+    if ( frag_len > tx_size )
         goto out_unlock;
 
-    ret = read_mem_transaction(ACCESS_ONCE(ctx->guest_vers), ctx->tx,
+    ret = read_mem_transaction(ACCESS_ONCE(ctx->guest_vers), tx_buf,
                                frag_len, &trans);
     if ( ret )
         goto out_unlock;
@@ -535,7 +535,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     if ( trans.mem_access_offs + trans.mem_access_size > frag_len )
         goto out_unlock;
 
-    mem_access = ctx->tx + trans.mem_access_offs;
+    mem_access = tx_buf + trans.mem_access_offs;
 
     dst_id = ACCESS_ONCE(mem_access->access_perm.endpoint_id);
     if ( !FFA_ID_IS_SECURE(dst_id) )
@@ -558,7 +558,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
         goto out_unlock;
     }
 
-    region_descr = ctx->tx + region_offs;
+    region_descr = tx_buf + region_offs;
     range_count = ACCESS_ONCE(region_descr->address_range_count);
     page_count = ACCESS_ONCE(region_descr->total_page_count);
 
@@ -605,7 +605,7 @@ out:
     if ( ret )
         free_ffa_shm_mem(d, shm);
 out_unlock:
-    spin_unlock(&ctx->tx_lock);
+    ffa_tx_release(ctx);
 
 out_set_ret:
     if ( ret == 0)
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:50:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:50:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187137.1508613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tq-0005qy-07; Mon, 15 Dec 2025 14:50:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187137.1508613; Mon, 15 Dec 2025 14:50:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tp-0005qb-SE; Mon, 15 Dec 2025 14:50:09 +0000
Received: by outflank-mailman (input) for mailman id 1187137;
 Mon, 15 Dec 2025 14:50:07 +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
 <SRS0=pAKg=6V=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vV9tn-0003Ov-KL
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:50:07 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 58ac9a9d-d9c5-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 15:50:07 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 4B70C1655;
 Mon, 15 Dec 2025 06:49:59 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.46.206])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5BB703F694;
 Mon, 15 Dec 2025 06:50:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 58ac9a9d-d9c5-11f0-b15b-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 07/12] xen/arm: ffa: use signed 32-bit status codes
Date: Mon, 15 Dec 2025 15:49:24 +0100
Message-ID: <fa64cec364a243fd43326665ebeac5e5a795958b.1765807707.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1765807707.git.bertrand.marquis@arm.com>
References: <cover.1765807707.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The FF-A spec defines return status values as signed 32-bit integers.
Align the Xen mediator with this requirement by:

- switching the FF-A helpers (ffa_handle_mem_reclaim(), partition info
  init, notification ops, dispatcher glue, etc.) to int32_t return types
  so callers cannot silently truncate negative values
- masking SMCCC responses/exits in ffa_get_version(),
  ffa_get_ret_code() and ffa_set_regs_error() to 32 bits before storing
  them in guest registers
- updating notifier, shared-memory reclaim, partition-info and
  dispatcher call sites to use the new prototypes so the entire FF-A
  path propagates spec-compliant 32-bit signed error codes

While there, tidy up the FF-A notification helpers by using GENMASK(15, 0)
for endpoint extraction and fix the secure-endpoint check in
ffa_handle_notification_set() to apply the mask to the endpoint ID before
calling FFA_ID_IS_SECURE(), instead of testing the wrong halfword of
src_dst.

Fixes: 911b305e7bdab ("xen/arm: ffa: Enable VM to VM without firmware")
Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
---
Changes in v2:
- no changes
Changes in v1:
- add Jens R-b
---
 xen/arch/arm/tee/ffa.c          | 12 +++++++-----
 xen/arch/arm/tee/ffa_notif.c    | 14 +++++++-------
 xen/arch/arm/tee/ffa_partinfo.c |  4 ++--
 xen/arch/arm/tee/ffa_private.h  | 21 +++++++++++----------
 xen/arch/arm/tee/ffa_shm.c      |  4 ++--
 5 files changed, 29 insertions(+), 26 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 69a5e1e876ce..2c09d10ae6a1 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -129,12 +129,14 @@ static bool ffa_get_version(uint32_t *vers)
         .a1 = FFA_MY_VERSION,
     };
     struct arm_smccc_1_2_regs resp;
+    int32_t ret;
 
     arm_smccc_1_2_smc(&arg, &resp);
-    if ( resp.a0 == FFA_RET_NOT_SUPPORTED )
+    ret = resp.a0 & GENMASK_ULL(31, 0);
+    if ( ret == FFA_RET_NOT_SUPPORTED )
         return false;
 
-    *vers = resp.a0;
+    *vers = resp.a0 & GENMASK_ULL(31, 0);
 
     return true;
 }
@@ -310,7 +312,7 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     uint32_t fid = get_user_reg(regs, 0);
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
-    int e;
+    int32_t e;
 
     if ( !ctx )
         return false;
@@ -382,8 +384,8 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
 
     default:
         gprintk(XENLOG_ERR, "ffa: unhandled fid 0x%x\n", fid);
-        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
-        return true;
+        e = FFA_RET_NOT_SUPPORTED;
+        break;
     }
 
     if ( e )
diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
index 86bef6b3b2ab..37b05747cd21 100644
--- a/xen/arch/arm/tee/ffa_notif.c
+++ b/xen/arch/arm/tee/ffa_notif.c
@@ -19,7 +19,7 @@
 static bool __ro_after_init fw_notif_enabled;
 static unsigned int __ro_after_init notif_sri_irq;
 
-int ffa_handle_notification_bind(struct cpu_user_regs *regs)
+int32_t ffa_handle_notification_bind(struct cpu_user_regs *regs)
 {
     struct domain *d = current->domain;
     uint32_t src_dst = get_user_reg(regs, 1);
@@ -27,7 +27,7 @@ int ffa_handle_notification_bind(struct cpu_user_regs *regs)
     uint32_t bitmap_lo = get_user_reg(regs, 3);
     uint32_t bitmap_hi = get_user_reg(regs, 4);
 
-    if ( (src_dst & 0xFFFFU) != ffa_get_vm_id(d) )
+    if ( (src_dst & GENMASK(15, 0)) != ffa_get_vm_id(d) )
         return FFA_RET_INVALID_PARAMETERS;
 
     if ( flags )    /* Only global notifications are supported */
@@ -40,14 +40,14 @@ int ffa_handle_notification_bind(struct cpu_user_regs *regs)
     return FFA_RET_NOT_SUPPORTED;
 }
 
-int ffa_handle_notification_unbind(struct cpu_user_regs *regs)
+int32_t ffa_handle_notification_unbind(struct cpu_user_regs *regs)
 {
     struct domain *d = current->domain;
     uint32_t src_dst = get_user_reg(regs, 1);
     uint32_t bitmap_lo = get_user_reg(regs, 3);
     uint32_t bitmap_hi = get_user_reg(regs, 4);
 
-    if ( (src_dst & 0xFFFFU) != ffa_get_vm_id(d) )
+    if ( (src_dst & GENMASK(15, 0)) != ffa_get_vm_id(d) )
         return FFA_RET_INVALID_PARAMETERS;
 
     if ( FFA_ID_IS_SECURE(src_dst >> 16) && fw_notif_enabled )
@@ -106,7 +106,7 @@ void ffa_handle_notification_get(struct cpu_user_regs *regs)
         return;
     }
 
-    if ( (recv & 0xFFFFU) != ffa_get_vm_id(d) )
+    if ( (recv & GENMASK(15, 0)) != ffa_get_vm_id(d) )
     {
         ffa_set_regs_error(regs, FFA_RET_INVALID_PARAMETERS);
         return;
@@ -162,7 +162,7 @@ void ffa_handle_notification_get(struct cpu_user_regs *regs)
     ffa_set_regs(regs, FFA_SUCCESS_32, 0, w2, w3, w4, w5, w6, w7);
 }
 
-int ffa_handle_notification_set(struct cpu_user_regs *regs)
+int32_t ffa_handle_notification_set(struct cpu_user_regs *regs)
 {
     struct domain *d = current->domain;
     uint32_t src_dst = get_user_reg(regs, 1);
@@ -173,7 +173,7 @@ int ffa_handle_notification_set(struct cpu_user_regs *regs)
     if ( (src_dst >> 16) != ffa_get_vm_id(d) )
         return FFA_RET_INVALID_PARAMETERS;
 
-    if ( FFA_ID_IS_SECURE(src_dst >> 16) && fw_notif_enabled )
+    if ( FFA_ID_IS_SECURE(src_dst & GENMASK(15, 0)) && fw_notif_enabled )
         return ffa_simple_call(FFA_NOTIFICATION_SET, src_dst, flags, bitmap_lo,
                                bitmap_hi);
 
diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index 16c905cb12b8..c9faf5415853 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -448,7 +448,7 @@ bool ffa_partinfo_init(void)
     bool ret = false;
     uint32_t fpi_size;
     uint32_t count;
-    int e;
+    int32_t e;
     void *spmc_rx;
 
     if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) ||
@@ -515,7 +515,7 @@ static void vm_destroy_bitmap_init(struct ffa_ctx *ctx,
     }
 }
 
-int ffa_partinfo_domain_init(struct domain *d)
+int32_t ffa_partinfo_domain_init(struct domain *d)
 {
     unsigned int count = BITS_TO_LONGS(subscr_vm_destroyed_count);
     struct ffa_ctx *ctx = d->arch.tee;
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 904ad1df733b..c274177029de 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -31,9 +31,9 @@
 
 /* FFA_VERSION helpers */
 #define FFA_VERSION_MAJOR_SHIFT         16U
-#define FFA_VERSION_MAJOR_MASK          0x7FFFU
+#define FFA_VERSION_MAJOR_MASK          GENMASK(14, 0)
 #define FFA_VERSION_MINOR_SHIFT         0U
-#define FFA_VERSION_MINOR_MASK          0xFFFFU
+#define FFA_VERSION_MINOR_MASK          GENMASK(15, 0)
 #define MAKE_FFA_VERSION(major, minor)  \
         ((((major) & FFA_VERSION_MAJOR_MASK) << FFA_VERSION_MAJOR_SHIFT) | \
          ((minor) & FFA_VERSION_MINOR_MASK))
@@ -426,10 +426,10 @@ extern atomic_t ffa_vm_count;
 
 bool ffa_shm_domain_destroy(struct domain *d);
 void ffa_handle_mem_share(struct cpu_user_regs *regs);
-int ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags);
+int32_t ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags);
 
 bool ffa_partinfo_init(void);
-int ffa_partinfo_domain_init(struct domain *d);
+int32_t ffa_partinfo_domain_init(struct domain *d);
 bool ffa_partinfo_domain_destroy(struct domain *d);
 void ffa_handle_partition_info_get(struct cpu_user_regs *regs);
 
@@ -455,11 +455,11 @@ void ffa_notif_init_interrupt(void);
 int ffa_notif_domain_init(struct domain *d);
 void ffa_notif_domain_destroy(struct domain *d);
 
-int ffa_handle_notification_bind(struct cpu_user_regs *regs);
-int ffa_handle_notification_unbind(struct cpu_user_regs *regs);
+int32_t ffa_handle_notification_bind(struct cpu_user_regs *regs);
+int32_t ffa_handle_notification_unbind(struct cpu_user_regs *regs);
 void ffa_handle_notification_info_get(struct cpu_user_regs *regs);
 void ffa_handle_notification_get(struct cpu_user_regs *regs);
-int ffa_handle_notification_set(struct cpu_user_regs *regs);
+int32_t ffa_handle_notification_set(struct cpu_user_regs *regs);
 
 #ifdef CONFIG_FFA_VM_TO_VM
 void ffa_raise_rx_buffer_full(struct domain *d);
@@ -525,9 +525,10 @@ static inline void ffa_set_regs(struct cpu_user_regs *regs, register_t v0,
 }
 
 static inline void ffa_set_regs_error(struct cpu_user_regs *regs,
-                                      uint32_t error_code)
+                                      int32_t error_code)
 {
-    ffa_set_regs(regs, FFA_ERROR, 0, error_code, 0, 0, 0, 0, 0);
+    ffa_set_regs(regs, FFA_ERROR, 0, error_code & GENMASK_ULL(31, 0), 0, 0, 0,
+                 0, 0);
 }
 
 static inline void ffa_set_regs_success(struct cpu_user_regs *regs,
@@ -542,7 +543,7 @@ static inline int32_t ffa_get_ret_code(const struct arm_smccc_1_2_regs *resp)
     {
     case FFA_ERROR:
         if ( resp->a2 )
-            return resp->a2;
+            return resp->a2 & GENMASK_ULL(31, 0);
         else
             return FFA_RET_NOT_SUPPORTED;
     case FFA_SUCCESS_32:
diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index b862578c553c..8282bacf85d3 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -626,14 +626,14 @@ static struct ffa_shm_mem *find_shm_mem(struct ffa_ctx *ctx, uint64_t handle)
     return NULL;
 }
 
-int ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags)
+int32_t ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags)
 {
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
     struct ffa_shm_mem *shm;
     register_t handle_hi;
     register_t handle_lo;
-    int ret;
+    int32_t ret;
 
     if ( !ffa_fw_supports_fid(FFA_MEM_RECLAIM) )
         return FFA_RET_NOT_SUPPORTED;
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:50:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:50:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187138.1508620 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tq-0005uw-Lk; Mon, 15 Dec 2025 14:50:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187138.1508620; Mon, 15 Dec 2025 14:50:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tq-0005tz-7Y; Mon, 15 Dec 2025 14:50:10 +0000
Received: by outflank-mailman (input) for mailman id 1187138;
 Mon, 15 Dec 2025 14:50:09 +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
 <SRS0=pAKg=6V=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vV9tp-0003Ov-3d
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:50:09 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 598bf526-d9c5-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 15:50:08 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B004A497;
 Mon, 15 Dec 2025 06:50:00 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.46.206])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BD48A3F694;
 Mon, 15 Dec 2025 06:50:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 598bf526-d9c5-11f0-b15b-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 08/12] xen/arm: ffa: add UUID helpers for partition info
Date: Mon, 15 Dec 2025 15:49:25 +0100
Message-ID: <671ef6011b32690bf5d5f9b4826e593ae5114378.1765807707.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1765807707.git.bertrand.marquis@arm.com>
References: <cover.1765807707.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce struct ffa_uuid together with nil/equality/set helpers, and
use it end-to-end in the partition-info plumbing.

The SP and VM enumeration paths now build UUIDs from the guest
registers, call a new ffa_copy_info() helper and ensure non-nil UUID
queries only return matching SP entries, relying on firmware UUID
filtering. VM entries are skipped because we do not track per-VM UUIDs.

Count requests and subscriber initialisation are updated accordingly so
firmware is always called with an explicit UUID. This keeps count and
listing requests aligned with the FF-A v1.1 rules while preserving the
Linux compatibility workaround for v1.2 requesters.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
---
Changes in v2:
- add Jens R-b
Changes in v1:
- Use GENMASK in ffa_partition_info_get instead of explicit values.
- Use ACCESS_ONCE to read guest_vers
- use is_64bit_domain to get current domain 32/64 bit support
---
 xen/arch/arm/tee/ffa_partinfo.c | 209 ++++++++++++++++++++------------
 xen/arch/arm/tee/ffa_private.h  |  21 ++++
 2 files changed, 154 insertions(+), 76 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index c9faf5415853..bf906ed0c88f 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -33,7 +33,7 @@ static uint16_t subscr_vm_created_count __read_mostly;
 static uint16_t *subscr_vm_destroyed __read_mostly;
 static uint16_t subscr_vm_destroyed_count __read_mostly;
 
-static int32_t ffa_partition_info_get(uint32_t *uuid, uint32_t flags,
+static int32_t ffa_partition_info_get(struct ffa_uuid uuid, uint32_t flags,
                                       uint32_t *count, uint32_t *fpi_size)
 {
     struct arm_smccc_1_2_regs arg = {
@@ -41,15 +41,12 @@ static int32_t ffa_partition_info_get(uint32_t *uuid, uint32_t flags,
         .a5 = flags,
     };
     struct arm_smccc_1_2_regs resp;
-    uint32_t ret;
+    int32_t ret;
 
-    if ( uuid )
-    {
-        arg.a1 = uuid[0];
-        arg.a2 = uuid[1];
-        arg.a3 = uuid[2];
-        arg.a4 = uuid[3];
-    }
+    arg.a1 = uuid.val[0] & GENMASK(31, 0);
+    arg.a2 = (uuid.val[0] >> 32) & GENMASK(31, 0);
+    arg.a3 = uuid.val[1] & GENMASK(31, 0);
+    arg.a4 = (uuid.val[1] >> 32) & GENMASK(31, 0);
 
     arm_smccc_1_2_smc(&arg, &resp);
 
@@ -63,7 +60,26 @@ static int32_t ffa_partition_info_get(uint32_t *uuid, uint32_t flags,
     return ret;
 }
 
-static int32_t ffa_get_sp_count(uint32_t *uuid, uint32_t *sp_count)
+static int32_t ffa_copy_info(void **dst, void *dst_end, const void *src,
+                             uint32_t dst_size, uint32_t src_size)
+{
+    uint8_t *pos = *dst;
+    uint8_t *end = dst_end;
+
+    if ( pos > end - dst_size )
+        return FFA_RET_NO_MEMORY;
+
+    memcpy(pos, src, MIN(dst_size, src_size));
+
+    if ( dst_size > src_size )
+        memset(pos + src_size, 0, dst_size - src_size);
+
+    *dst = pos + dst_size;
+
+    return FFA_RET_OK;
+}
+
+static int32_t ffa_get_sp_count(struct ffa_uuid uuid, uint32_t *sp_count)
 {
     uint32_t src_size;
 
@@ -71,8 +87,8 @@ static int32_t ffa_get_sp_count(uint32_t *uuid, uint32_t *sp_count)
                                   sp_count, &src_size);
 }
 
-static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
-                                   void *dst_buf, void *end_buf,
+static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_count,
+                                   void **dst_buf, void *end_buf,
                                    uint32_t dst_size)
 {
     int32_t ret;
@@ -120,17 +136,18 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
         /* filter out SP not following bit 15 convention if any */
         if ( FFA_ID_IS_SECURE(fpi->id) )
         {
-            if ( dst_buf > (end_buf - dst_size) )
-            {
-                ret = FFA_RET_NO_MEMORY;
-                goto out;
-            }
+            /*
+             * If VM is 1.0 but firmware is 1.1 we could have several entries
+             * with the same ID but different UUIDs. In this case the VM will
+             * get a list with several time the same ID.
+             * This is a non-compliance to the specification but 1.0 VMs should
+             * handle that on their own to simplify Xen implementation.
+             */
 
-            memcpy(dst_buf, src_buf, MIN(src_size, dst_size));
-            if ( dst_size > src_size )
-                memset(dst_buf + src_size, 0, dst_size - src_size);
+            ret = ffa_copy_info(dst_buf, end_buf, src_buf, dst_size, src_size);
+            if ( ret )
+                goto out;
 
-            dst_buf += dst_size;
             count++;
         }
 
@@ -144,69 +161,90 @@ out:
     return ret;
 }
 
-static int32_t ffa_get_vm_partinfo(uint32_t *vm_count, void *dst_buf,
-                                   void *end_buf, uint32_t dst_size)
+static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t *vm_count,
+                                   void **dst_buf, void *end_buf,
+                                   uint32_t dst_size)
 {
-    struct ffa_ctx *curr_ctx = current->domain->arch.tee;
+    struct domain *d = current->domain;
+    struct ffa_ctx *curr_ctx = d->arch.tee;
     struct ffa_ctx *dest_ctx;
     uint32_t count = 0;
     int32_t ret = FFA_RET_OK;
+    /*
+     * We do not have UUID info for VMs so use the 1.0 structure so that we set
+     * UUIDs to zero using memset
+     */
+    struct ffa_partition_info_1_0 info;
 
     /*
-     * There could potentially be a lot of VMs in the system and we could
-     * hold the CPU for long here.
-     * Right now there is no solution in FF-A specification to split
-     * the work in this case.
-     * TODO: Check how we could delay the work or have preemption checks.
+     * We do not have protocol UUIDs for VMs so if a request has non Nil UUID
+     * we must return an empty list.
      */
-    read_lock(&ffa_ctx_list_rwlock);
-    list_for_each_entry(dest_ctx, &ffa_ctx_head, ctx_list)
+    if ( !ffa_uuid_is_nil(uuid) )
+    {
+        *vm_count = 0;
+        return FFA_RET_OK;
+    }
+
+    /*
+     * Workaround for Linux FF-A Driver not accepting to have its own
+     * entry in the list before FF-A v1.2 was supported.
+     * This workaround is generally acceptable for other implementations
+     * as the specification was not completely clear on wether or not
+     * the requester endpoint information should be included or not
+     */
+    if ( ACCESS_ONCE(curr_ctx->guest_vers) >= FFA_VERSION_1_2 )
+    {
+        /* Add caller VM information */
+        info.id = curr_ctx->ffa_id;
+        info.execution_context = curr_ctx->num_vcpus;
+        info.partition_properties = FFA_PART_VM_PROP;
+        if ( is_64bit_domain(d) )
+            info.partition_properties |= FFA_PART_PROP_AARCH64_STATE;
+
+        ret = ffa_copy_info(dst_buf, end_buf, &info, dst_size, sizeof(info));
+        if ( ret )
+            return ret;
+
+        count++;
+    }
+
+    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
     {
         /*
-         * Do not include an entry for the caller VM as the spec is not
-         * clearly mandating it and it is not supported by Linux.
+         * There could potentially be a lot of VMs in the system and we could
+         * hold the CPU for long here.
+         * Right now there is no solution in FF-A specification to split
+         * the work in this case.
+         * TODO: Check how we could delay the work or have preemption checks.
          */
-        if ( dest_ctx != curr_ctx )
+        read_lock(&ffa_ctx_list_rwlock);
+        list_for_each_entry(dest_ctx, &ffa_ctx_head, ctx_list)
         {
-            /*
-             * We do not have UUID info for VMs so use
-             * the 1.0 structure so that we set UUIDs to
-             * zero using memset
-             */
-            struct ffa_partition_info_1_0 info;
+            /* Ignore the caller entry as it was already added */
+            if ( dest_ctx == curr_ctx )
+                continue;
 
-            if  ( dst_buf > (end_buf - dst_size) )
-            {
-                ret = FFA_RET_NO_MEMORY;
-                goto out;
-            }
-
-            /*
-             * Context might has been removed since we go it or being removed
-             * right now so we might return information for a VM not existing
-             * anymore. This is acceptable as we return a view of the system
-             * which could change at any time.
-             */
             info.id = dest_ctx->ffa_id;
             info.execution_context = dest_ctx->num_vcpus;
             info.partition_properties = FFA_PART_VM_PROP;
             if ( dest_ctx->is_64bit )
                 info.partition_properties |= FFA_PART_PROP_AARCH64_STATE;
 
-            memcpy(dst_buf, &info, MIN(sizeof(info), dst_size));
-
-            if ( dst_size > sizeof(info) )
-                memset(dst_buf + sizeof(info), 0,
-                       dst_size - sizeof(info));
+            ret = ffa_copy_info(dst_buf, end_buf, &info, dst_size,
+                                sizeof(info));
+            if ( ret )
+            {
+                read_unlock(&ffa_ctx_list_rwlock);
+                return ret;
+            }
 
-            dst_buf += dst_size;
             count++;
         }
+        read_unlock(&ffa_ctx_list_rwlock);
     }
-    *vm_count = count;
 
-out:
-    read_unlock(&ffa_ctx_list_rwlock);
+    *vm_count = count;
 
     return ret;
 }
@@ -217,17 +255,18 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
     uint32_t flags = get_user_reg(regs, 5);
-    uint32_t uuid[4] = {
-        get_user_reg(regs, 1),
-        get_user_reg(regs, 2),
-        get_user_reg(regs, 3),
-        get_user_reg(regs, 4),
-    };
+    struct ffa_uuid uuid;
     uint32_t dst_size = 0;
     size_t buf_size;
     void *dst_buf, *end_buf;
     uint32_t ffa_vm_count = 0, ffa_sp_count = 0;
 
+    ffa_uuid_set(&uuid,
+             get_user_reg(regs, 1),
+             get_user_reg(regs, 2),
+             get_user_reg(regs, 3),
+             get_user_reg(regs, 4));
+
     /*
      * If the guest is v1.0, he does not get back the entry size so we must
      * use the v1.0 structure size in the destination buffer.
@@ -260,10 +299,23 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
         }
 
         /*
-         * Do not count the caller VM as the spec is not clearly mandating it
-         * and it is not supported by Linux.
+         * We do not have protocol UUIDs for VMs so if a request has non Nil
+         * UUID we must return a vm_count of 0
          */
-        ffa_vm_count = get_ffa_vm_count() - 1;
+        if ( ffa_uuid_is_nil(uuid) )
+        {
+            ffa_vm_count = get_ffa_vm_count();
+
+            /*
+             * Workaround for Linux FF-A Driver not accepting to have its own
+             * entry in the list before FF-A v1.2 was supported.
+             * This workaround is generally acceptable for other implementations
+             * as the specification was not completely clear on wether or not
+             * the requester endpoint information should be included or not
+             */
+            if ( ACCESS_ONCE(ctx->guest_vers) < FFA_VERSION_1_2 )
+                ffa_vm_count -= 1;
+        }
 
         goto out;
     }
@@ -290,17 +342,15 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
 
     if ( ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
     {
-        ret = ffa_get_sp_partinfo(uuid, &ffa_sp_count, dst_buf, end_buf,
+        ret = ffa_get_sp_partinfo(uuid, &ffa_sp_count, &dst_buf, end_buf,
                                   dst_size);
 
         if ( ret )
             goto out_rx_release;
-
-        dst_buf += ffa_sp_count * dst_size;
     }
 
-    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
-        ret = ffa_get_vm_partinfo(&ffa_vm_count, dst_buf, end_buf, dst_size);
+    ret = ffa_get_vm_partinfo(uuid, &ffa_vm_count, &dst_buf, end_buf,
+                              dst_size);
 
 out_rx_release:
     if ( ret )
@@ -309,7 +359,13 @@ out:
     if ( ret )
         ffa_set_regs_error(regs, ret);
     else
+    {
+        /* Size should be 0 on count request and was not supported in 1.0 */
+        if ( flags || ACCESS_ONCE(ctx->guest_vers) == FFA_VERSION_1_0 )
+            dst_size = 0;
+
         ffa_set_regs_success(regs, ffa_sp_count + ffa_vm_count, dst_size);
+    }
 }
 
 static int32_t ffa_direct_req_send_vm(uint16_t sp_id, uint16_t vm_id,
@@ -450,6 +506,7 @@ bool ffa_partinfo_init(void)
     uint32_t count;
     int32_t e;
     void *spmc_rx;
+    struct ffa_uuid nil_uuid = { .val = { 0ULL, 0ULL } };
 
     if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) ||
          !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32))
@@ -459,7 +516,7 @@ bool ffa_partinfo_init(void)
     if (!spmc_rx)
         return false;
 
-    e = ffa_partition_info_get(NULL, 0, &count, &fpi_size);
+    e = ffa_partition_info_get(nil_uuid, 0, &count, &fpi_size);
     if ( e )
     {
         printk(XENLOG_ERR "ffa: Failed to get list of SPs: %d\n", e);
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index c274177029de..fb5212bd2820 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -307,6 +307,10 @@ struct ffa_mem_region {
     struct ffa_address_range address_range_array[];
 };
 
+struct ffa_uuid {
+    uint64_t val[2];
+};
+
 struct ffa_ctx_notif {
     /*
      * True if domain is reported by FFA_NOTIFICATION_INFO_GET to have
@@ -581,4 +585,21 @@ static inline bool ffa_fw_supports_fid(uint32_t fid)
     return test_bit(FFA_ABI_BITNUM(fid), ffa_fw_abi_supported);
 }
 
+static inline bool ffa_uuid_is_nil(struct ffa_uuid id)
+{
+    return id.val[0] == 0 && id.val[1] == 0;
+}
+
+static inline bool ffa_uuid_equal(struct ffa_uuid id1, struct ffa_uuid id2)
+{
+    return id1.val[0] == id2.val[0] && id1.val[1] == id2.val[1];
+}
+
+static inline void ffa_uuid_set(struct ffa_uuid *id, uint32_t val0,
+                                uint32_t val1, uint32_t val2, uint32_t val3)
+{
+    id->val[0] = ((uint64_t)val1 << 32U) | val0;
+    id->val[1] = ((uint64_t)val3 << 32U) | val2;
+}
+
 #endif /*__FFA_PRIVATE_H__*/
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:50:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:50:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187141.1508634 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tt-0006Zu-Ql; Mon, 15 Dec 2025 14:50:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187141.1508634; Mon, 15 Dec 2025 14:50:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tt-0006Zd-Mj; Mon, 15 Dec 2025 14:50:13 +0000
Received: by outflank-mailman (input) for mailman id 1187141;
 Mon, 15 Dec 2025 14:50:12 +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
 <SRS0=pAKg=6V=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vV9tr-0003Ov-VB
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:50:11 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 5b33f6d5-d9c5-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 15:50:11 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 72A61165C;
 Mon, 15 Dec 2025 06:50:03 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.46.206])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 8A8883F694;
 Mon, 15 Dec 2025 06:50:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5b33f6d5-d9c5-11f0-b15b-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 10/12] xen/arm: ffa: add v1.2 SEND2 header layout
Date: Mon, 15 Dec 2025 15:49:27 +0100
Message-ID: <db3fb6650fd701b81f416da34bab40792da52693.1765807707.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1765807707.git.bertrand.marquis@arm.com>
References: <cover.1765807707.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Teach the SEND2 path about the distinct FF-A v1.1 and v1.2 RX/TX header
layouts so we can propagate the 128-bit UUIDs introduced in v1.2.

VM-to-VM SEND2 calls now build the larger v1.2 header, zeroing the UUID
fields for v1.1 senders, and the dispatcher validates messages using
the v1.1 header layout to keep legacy guests working.

While there, make the code more robust by checking that the send is not
trying to send a message to himself.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
---
Changes in v2:
- add Jens R-b
Changes in v1:
- Mention self send check in commit message
- check header size depending on sender FF-A version and make sure 1.2
  has enough space for 1.2 header
- Simplify the code by setting uuid field of the header to Nil-UUID when
  testing the caller version and remove the need to pass the context to
  the send2_vm function
- Use ACCESS_ONCE when reading sender ffa version
---
 xen/arch/arm/tee/ffa_msg.c | 58 ++++++++++++++++++++++++++++++--------
 1 file changed, 47 insertions(+), 11 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index 5a4cb1bb8295..c3552a3ae36d 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -13,7 +13,7 @@
 #include "ffa_private.h"
 
 /* Encoding of partition message in RX/TX buffer */
-struct ffa_part_msg_rxtx {
+struct ffa_part_msg_rxtx_1_1 {
     uint32_t flags;
     uint32_t reserved;
     uint32_t msg_offset;
@@ -21,6 +21,16 @@ struct ffa_part_msg_rxtx {
     uint32_t msg_size;
 };
 
+struct ffa_part_msg_rxtx_1_2 {
+    uint32_t flags;
+    uint32_t reserved;
+    uint32_t msg_offset;
+    uint32_t send_recv_id;
+    uint32_t msg_size;
+    uint32_t reserved2;
+    uint64_t uuid[2];
+};
+
 static void ffa_finish_direct_req_run(struct cpu_user_regs *regs,
                                       struct arm_smccc_1_2_regs *req)
 {
@@ -105,11 +115,11 @@ out:
 }
 
 static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
-                                struct ffa_part_msg_rxtx *src_msg)
+                                struct ffa_part_msg_rxtx_1_2 *src_msg)
 {
     struct domain *dst_d;
     struct ffa_ctx *dst_ctx;
-    struct ffa_part_msg_rxtx *dst_msg;
+    struct ffa_part_msg_rxtx_1_2 *dst_msg;
     void *rx_buf;
     size_t rx_size;
     int err;
@@ -143,7 +153,7 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
         goto out_unlock;
 
     /* we need to have enough space in the destination buffer */
-    if ( (rx_size - sizeof(struct ffa_part_msg_rxtx)) < src_msg->msg_size )
+    if ( (rx_size - sizeof(struct ffa_part_msg_rxtx_1_2)) < src_msg->msg_size )
     {
         ret = FFA_RET_NO_MEMORY;
         ffa_rx_release(dst_ctx);
@@ -155,11 +165,14 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
     /* prepare destination header */
     dst_msg->flags = 0;
     dst_msg->reserved = 0;
-    dst_msg->msg_offset = sizeof(struct ffa_part_msg_rxtx);
+    dst_msg->msg_offset = sizeof(struct ffa_part_msg_rxtx_1_2);
     dst_msg->send_recv_id = src_msg->send_recv_id;
     dst_msg->msg_size = src_msg->msg_size;
+    dst_msg->reserved2 = 0;
+    dst_msg->uuid[0] = src_msg->uuid[0];
+    dst_msg->uuid[1] = src_msg->uuid[1];
 
-    memcpy(rx_buf + sizeof(struct ffa_part_msg_rxtx),
+    memcpy(rx_buf + sizeof(struct ffa_part_msg_rxtx_1_2),
            src_buf + src_msg->msg_offset, src_msg->msg_size);
 
     /* receiver rx buffer will be released by the receiver*/
@@ -178,11 +191,17 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
     struct ffa_ctx *src_ctx = src_d->arch.tee;
     const void *tx_buf;
     size_t tx_size;
-    struct ffa_part_msg_rxtx src_msg;
+    /*
+     * src_msg is interpreted as v1.2 header, but:
+     * - for v1.1 guests, uuid[] is ignored and may contain payload bytes
+     * - for v1.2 guests, uuid[] carries the FF-A v1.2 UUID fields
+     */
+    struct ffa_part_msg_rxtx_1_2 src_msg;
     uint16_t dst_id, src_id;
     int32_t ret;
 
-    BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx) >= FFA_PAGE_SIZE);
+    BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx_1_1) >= FFA_PAGE_SIZE);
+    BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx_1_2) >= FFA_PAGE_SIZE);
 
     ret = ffa_tx_acquire(src_ctx, &tx_buf, &tx_size);
     if ( ret != FFA_RET_OK )
@@ -194,15 +213,32 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
     src_id = src_msg.send_recv_id >> 16;
     dst_id = src_msg.send_recv_id & GENMASK(15,0);
 
-    if ( src_id != ffa_get_vm_id(src_d) )
+    if ( src_id != ffa_get_vm_id(src_d) ||
+         dst_id == ffa_get_vm_id(src_d) )
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out;
+    }
+
+    if ( ACCESS_ONCE(src_ctx->guest_vers) < FFA_VERSION_1_2 )
+    {
+        if (src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx_1_1))
+        {
+            ret = FFA_RET_INVALID_PARAMETERS;
+            goto out;
+        }
+        /* Set uuid to Nil UUID for v1.1 guests */
+        src_msg.uuid[0] = 0;
+        src_msg.uuid[1] = 0;
+    }
+    else if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx_1_2) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
         goto out;
     }
 
     /* check source message fits in buffer */
-    if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx) ||
-            src_msg.msg_size == 0 || src_msg.msg_offset > tx_size ||
+    if ( src_msg.msg_size == 0 || src_msg.msg_offset > tx_size ||
             src_msg.msg_size > (tx_size - src_msg.msg_offset) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:50:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:50:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187144.1508643 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tv-0006rS-5q; Mon, 15 Dec 2025 14:50:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187144.1508643; Mon, 15 Dec 2025 14:50:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tv-0006r1-2F; Mon, 15 Dec 2025 14:50:15 +0000
Received: by outflank-mailman (input) for mailman id 1187144;
 Mon, 15 Dec 2025 14:50:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pAKg=6V=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vV9tt-00038W-EG
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:50:13 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 5a6ca86e-d9c5-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 15:50:10 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 1B5EFFEC;
 Mon, 15 Dec 2025 06:50:02 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.46.206])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2F4BD3F694;
 Mon, 15 Dec 2025 06:50:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5a6ca86e-d9c5-11f0-9cce-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 09/12] xen/arm: ffa: Add FFA_RUN support
Date: Mon, 15 Dec 2025 15:49:26 +0100
Message-ID: <74e819101a77d27da29eed023cd71505e55bd9a4.1765807707.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1765807707.git.bertrand.marquis@arm.com>
References: <cover.1765807707.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add FFA_RUN support and remove mention that YIELD and INTERRUPT are not
supported in the comment as we will now return them.

Make FFA_FEATURE answer supported for RUN, YIELD and INTERRUPT.

Share the SMCCC plumbing used by SEND_DIRECT and RUN via a common
ffa_finish_direct_req_run() helper so canonical success and error cases
are handled in one place.

The dispatcher now routes FFA_RUN through ffa_handle_run(), and direct
requests bail out early if a guest targets itself or a non-secure
endpoint. This simplifies the direct path while adding support for
INTERRUPT or YIELD answers from secure world.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
---
Changes in v2:
- add Jens R-b
Changes in v1:
- Rework commit message to clearly mention that we add FFA_RUN support
- Remove mentions of FFA_MSG_YIELD/INTERRUPT/RUN not being supported
- Report YIELD, INTERRUPT an RUN as supported in ffa_features handling
---
 xen/arch/arm/tee/ffa.c         |   9 ++-
 xen/arch/arm/tee/ffa_msg.c     | 111 ++++++++++++++++++++++++---------
 xen/arch/arm/tee/ffa_private.h |   1 +
 3 files changed, 87 insertions(+), 34 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 2c09d10ae6a1..0f07efe5a7b3 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -24,9 +24,6 @@
  * o FFA_MEM_DONATE_* and FFA_MEM_LEND_* - Used when tranferring ownership
  *   or access of a memory region
  * o FFA_MSG_SEND2 and FFA_MSG_WAIT - Used for indirect messaging
- * o FFA_MSG_YIELD
- * o FFA_INTERRUPT - Used to report preemption
- * o FFA_RUN
  *
  * Limitations in the implemented FF-A interfaces:
  * o FFA_RXTX_MAP_*:
@@ -266,6 +263,9 @@ static void handle_features(struct cpu_user_regs *regs)
     case FFA_MSG_SEND_DIRECT_REQ_32:
     case FFA_MSG_SEND_DIRECT_REQ_64:
     case FFA_MSG_SEND2:
+    case FFA_RUN:
+    case FFA_INTERRUPT:
+    case FFA_MSG_YIELD:
         ffa_set_regs_success(regs, 0, 0);
         break;
     case FFA_MEM_SHARE_64:
@@ -353,6 +353,9 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     case FFA_MSG_SEND_DIRECT_REQ_64:
         ffa_handle_msg_send_direct_req(regs, fid);
         return true;
+    case FFA_RUN:
+        ffa_handle_run(regs, fid);
+        return true;
     case FFA_MSG_SEND2:
         e = ffa_handle_msg_send2(regs);
         break;
diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index d60eed6d8811..5a4cb1bb8295 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -21,42 +21,74 @@ struct ffa_part_msg_rxtx {
     uint32_t msg_size;
 };
 
-void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
+static void ffa_finish_direct_req_run(struct cpu_user_regs *regs,
+                                      struct arm_smccc_1_2_regs *req)
 {
-    struct arm_smccc_1_2_regs arg = { .a0 = fid, };
     struct arm_smccc_1_2_regs resp = { };
-    struct domain *d = current->domain;
-    uint32_t src_dst;
     uint64_t mask;
 
-    if ( smccc_is_conv_64(fid) )
+    arm_smccc_1_2_smc(req, &resp);
+
+    switch ( resp.a0 )
+    {
+    case FFA_ERROR:
+    case FFA_SUCCESS_32:
+    case FFA_SUCCESS_64:
+    case FFA_MSG_SEND_DIRECT_RESP_32:
+    case FFA_MSG_SEND_DIRECT_RESP_64:
+    case FFA_MSG_YIELD:
+    case FFA_INTERRUPT:
+        break;
+    default:
+        /* Bad fid, report back to the caller. */
+        ffa_set_regs_error(regs, FFA_RET_ABORTED);
+        return;
+    }
+
+    if ( smccc_is_conv_64(resp.a0) )
         mask = GENMASK_ULL(63, 0);
     else
         mask = GENMASK_ULL(31, 0);
 
+    ffa_set_regs(regs, resp.a0, resp.a1 & mask, resp.a2 & mask, resp.a3 & mask,
+                 resp.a4 & mask, resp.a5 & mask, resp.a6 & mask,
+                 resp.a7 & mask);
+}
+
+void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
+{
+    struct arm_smccc_1_2_regs arg = { .a0 = fid, };
+    struct domain *d = current->domain;
+    uint32_t src_dst;
+    uint64_t mask;
+    int32_t ret;
+
     if ( !ffa_fw_supports_fid(fid) )
     {
-        resp.a0 = FFA_ERROR;
-        resp.a2 = FFA_RET_NOT_SUPPORTED;
+        ret = FFA_RET_NOT_SUPPORTED;
         goto out;
     }
 
     src_dst = get_user_reg(regs, 1);
-    if ( (src_dst >> 16) != ffa_get_vm_id(d) )
+    if ( (src_dst >> 16) != ffa_get_vm_id(d) ||
+         (src_dst & GENMASK(15,0)) == ffa_get_vm_id(d) )
     {
-        resp.a0 = FFA_ERROR;
-        resp.a2 = FFA_RET_INVALID_PARAMETERS;
+        ret = FFA_RET_INVALID_PARAMETERS;
         goto out;
     }
 
     /* we do not support direct messages to VMs */
     if ( !FFA_ID_IS_SECURE(src_dst & GENMASK(15,0)) )
     {
-        resp.a0 = FFA_ERROR;
-        resp.a2 = FFA_RET_NOT_SUPPORTED;
+        ret = FFA_RET_NOT_SUPPORTED;
         goto out;
     }
 
+    if ( smccc_is_conv_64(fid) )
+        mask = GENMASK_ULL(63, 0);
+    else
+        mask = GENMASK_ULL(31, 0);
+
     arg.a1 = src_dst;
     arg.a2 = get_user_reg(regs, 2) & mask;
     arg.a3 = get_user_reg(regs, 3) & mask;
@@ -65,27 +97,11 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
     arg.a6 = get_user_reg(regs, 6) & mask;
     arg.a7 = get_user_reg(regs, 7) & mask;
 
-    arm_smccc_1_2_smc(&arg, &resp);
-    switch ( resp.a0 )
-    {
-    case FFA_ERROR:
-    case FFA_SUCCESS_32:
-    case FFA_SUCCESS_64:
-    case FFA_MSG_SEND_DIRECT_RESP_32:
-    case FFA_MSG_SEND_DIRECT_RESP_64:
-        break;
-    default:
-        /* Bad fid, report back to the caller. */
-        memset(&resp, 0, sizeof(resp));
-        resp.a0 = FFA_ERROR;
-        resp.a1 = src_dst;
-        resp.a2 = FFA_RET_ABORTED;
-    }
+    ffa_finish_direct_req_run(regs, &arg);
+    return;
 
 out:
-    ffa_set_regs(regs, resp.a0, resp.a1 & mask, resp.a2 & mask, resp.a3 & mask,
-                 resp.a4 & mask, resp.a5 & mask, resp.a6 & mask,
-                 resp.a7 & mask);
+    ffa_set_regs_error(regs, ret);
 }
 
 static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
@@ -217,3 +233,36 @@ out:
     ffa_tx_release(src_ctx);
     return ret;
 }
+
+void ffa_handle_run(struct cpu_user_regs *regs, uint32_t fid)
+{
+    struct arm_smccc_1_2_regs arg = { .a0 = fid, };
+    uint32_t dst = get_user_reg(regs, 1);
+    int32_t ret;
+
+    if ( !ffa_fw_supports_fid(fid) )
+    {
+        ret = FFA_RET_NOT_SUPPORTED;
+        goto out;
+    }
+
+    /*
+     * We do not support FFA_RUN to VMs.
+     * Destination endpoint ID is in bits [31:16], bits[15:0] contain the
+     * vCPU ID.
+     */
+    if ( !FFA_ID_IS_SECURE(dst >> 16) )
+    {
+        ret = FFA_RET_NOT_SUPPORTED;
+        goto out;
+    }
+
+    arg.a1 = dst;
+
+    ffa_finish_direct_req_run(regs, &arg);
+
+    return;
+
+out:
+    ffa_set_regs_error(regs, ret);
+}
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index fb5212bd2820..1fbd3fc3a696 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -475,6 +475,7 @@ static inline void ffa_raise_rx_buffer_full(struct domain *d)
 
 void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid);
 int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs);
+void ffa_handle_run(struct cpu_user_regs *regs, uint32_t fid);
 
 #ifdef CONFIG_FFA_VM_TO_VM
 static inline uint16_t get_ffa_vm_count(void)
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:50:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:50:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187149.1508655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tx-0007Nj-PH; Mon, 15 Dec 2025 14:50:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187149.1508655; Mon, 15 Dec 2025 14:50:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vV9tx-0007NA-F5; Mon, 15 Dec 2025 14:50:17 +0000
Received: by outflank-mailman (input) for mailman id 1187149;
 Mon, 15 Dec 2025 14:50:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pAKg=6V=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vV9tw-00038W-EW
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:50:16 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 5cd05a89-d9c5-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 15:50:14 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2D31D497;
 Mon, 15 Dec 2025 06:50:06 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.46.206])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 47E563F694;
 Mon, 15 Dec 2025 06:50:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5cd05a89-d9c5-11f0-9cce-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 12/12] xen/arm: ffa: advertise FF-A v1.2
Date: Mon, 15 Dec 2025 15:49:29 +0100
Message-ID: <c82eb4cc26d0f7db9a54b746eb251a25471e7324.1765807707.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1765807707.git.bertrand.marquis@arm.com>
References: <cover.1765807707.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Expose the RX/TX MAP capacity field only once a guest has
negotiated FF-A v1.2.

While there, drop the stale <asm/tee/ffa.h> include.

To comply with the wider v1.2 register ABI, zero registers x8–x17 when
responding to a v1.2 VM. The dispatcher also rejects SMCCC64 calls from
AArch32 guests.

Finally, bump Xen's FF-A version to 1.2.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
---
Changes in v2:
- add Jens R-b
Changes in v1:
- Remove advertising of YIELD/INTERRUPT/RUN which has now moved to patch
  adding FFA_RUN support and adapt commit message
- Use ACCESS_ONCE to read guest_vers
- Use is_64bit_domain instead of ctx->is_64bit
---
 xen/arch/arm/tee/ffa.c         | 19 +++++++++++++++++--
 xen/arch/arm/tee/ffa_private.h | 29 ++++++++++++++++++++---------
 2 files changed, 37 insertions(+), 11 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 2c6443a7f6a4..ed18e76080d0 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -65,7 +65,6 @@
 #include <asm/event.h>
 #include <asm/regs.h>
 #include <asm/smccc.h>
-#include <asm/tee/ffa.h>
 #include <asm/tee/tee.h>
 
 #include "ffa_private.h"
@@ -296,7 +295,16 @@ static void handle_features(struct cpu_user_regs *regs)
          * differs from FFA_PAGE_SIZE (SZ_4K).
          */
         BUILD_BUG_ON(PAGE_SIZE != FFA_PAGE_SIZE);
-        ffa_set_regs_success(regs, 0, 0);
+
+        /*
+         * From FFA v1.2, we can give the maximum number of pages we support
+         * for the RX/TX buffers.
+         */
+        if ( ACCESS_ONCE(ctx->guest_vers) < FFA_VERSION_1_2 )
+            ffa_set_regs_success(regs, 0, 0);
+        else
+            ffa_set_regs_success(regs, FFA_MAX_RXTX_PAGE_COUNT << 16, 0);
+
         break;
     case FFA_FEATURE_NOTIF_PEND_INTR:
         ffa_set_regs_success(regs, GUEST_FFA_NOTIF_PEND_INTR_ID, 0);
@@ -329,6 +337,13 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     if ( !ctx )
         return false;
 
+    if ( !is_64bit_domain(d) && smccc_is_conv_64(fid) )
+    {
+        /* 32bit guests should only use 32bit convention calls */
+        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+        return true;
+    }
+
     /* A version must be negotiated first */
     if ( !ACCESS_ONCE(ctx->guest_vers) )
     {
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 1fbd3fc3a696..282c105f3bce 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -53,7 +53,7 @@
  * that particular guest or SP.
  */
 #define FFA_MY_VERSION_MAJOR    1U
-#define FFA_MY_VERSION_MINOR    1U
+#define FFA_MY_VERSION_MINOR    2U
 #define FFA_MY_VERSION          MAKE_FFA_VERSION(FFA_MY_VERSION_MAJOR, \
                                                  FFA_MY_VERSION_MINOR)
 
@@ -519,14 +519,25 @@ static inline void ffa_set_regs(struct cpu_user_regs *regs, register_t v0,
                                 register_t v4, register_t v5, register_t v6,
                                 register_t v7)
 {
-        set_user_reg(regs, 0, v0);
-        set_user_reg(regs, 1, v1);
-        set_user_reg(regs, 2, v2);
-        set_user_reg(regs, 3, v3);
-        set_user_reg(regs, 4, v4);
-        set_user_reg(regs, 5, v5);
-        set_user_reg(regs, 6, v6);
-        set_user_reg(regs, 7, v7);
+    struct domain *d = current->domain;
+    struct ffa_ctx *ctx = d->arch.tee;
+    int i;
+
+    set_user_reg(regs, 0, v0);
+    set_user_reg(regs, 1, v1);
+    set_user_reg(regs, 2, v2);
+    set_user_reg(regs, 3, v3);
+    set_user_reg(regs, 4, v4);
+    set_user_reg(regs, 5, v5);
+    set_user_reg(regs, 6, v6);
+    set_user_reg(regs, 7, v7);
+
+    if ( ctx && ACCESS_ONCE(ctx->guest_vers) >= FFA_VERSION_1_2 &&
+         is_64bit_domain(d) )
+    {
+        for (i = 8; i <= 17; i++)
+            set_user_reg(regs, i, 0);
+    }
 }
 
 static inline void ffa_set_regs_error(struct cpu_user_regs *regs,
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 14:58:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 14:58:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187242.1508665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVA1v-0002En-JO; Mon, 15 Dec 2025 14:58:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187242.1508665; Mon, 15 Dec 2025 14:58:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVA1v-0002Eg-Cv; Mon, 15 Dec 2025 14:58:31 +0000
Received: by outflank-mailman (input) for mailman id 1187242;
 Mon, 15 Dec 2025 14:58:30 +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
 <SRS0=pAKg=6V=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vV9tt-0003Ov-9Q
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 14:50:13 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 5bff03ce-d9c5-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 15:50:12 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id C8A6D1684;
 Mon, 15 Dec 2025 06:50:04 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.46.206])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id DFF4B3F694;
 Mon, 15 Dec 2025 06:50:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5bff03ce-d9c5-11f0-b15b-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 11/12] xen/arm: ffa: add MSG_SEND_DIRECT_REQ2 support
Date: Mon, 15 Dec 2025 15:49:28 +0100
Message-ID: <41e25208492954f7e74cb8aaae0eed7b53af8b64.1765807707.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1765807707.git.bertrand.marquis@arm.com>
References: <cover.1765807707.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Extend the direct-request path so FF-A v1.2 guests can issue
FFA_MSG_SEND_DIRECT_REQ2 and receive the matching RESP2.

The handler now marshals registers x8–x17, and
ffa_finish_direct_req_run() copies back the 17-register response used by
FFA_MSG_SEND_DIRECT_RESP2. The new opcode is exposed via FFA_FEATURES
and gated on guests that negotiated v1.2.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
---
Changes in v2:
- add Jens R-b
Changes in v1:
- use ACCESS_ONCE to read guest_vers
---
 xen/arch/arm/tee/ffa.c     | 20 +++++++++++++++++++
 xen/arch/arm/tee/ffa_msg.c | 39 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 0f07efe5a7b3..2c6443a7f6a4 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -237,6 +237,8 @@ out_continue:
 static void handle_features(struct cpu_user_regs *regs)
 {
     uint32_t a1 = get_user_reg(regs, 1);
+    struct domain *d = current->domain;
+    struct ffa_ctx *ctx = d->arch.tee;
     unsigned int n;
 
     for ( n = 2; n <= 7; n++ )
@@ -268,6 +270,16 @@ static void handle_features(struct cpu_user_regs *regs)
     case FFA_MSG_YIELD:
         ffa_set_regs_success(regs, 0, 0);
         break;
+    case FFA_MSG_SEND_DIRECT_REQ2:
+        if ( ACCESS_ONCE(ctx->guest_vers) >= FFA_VERSION_1_2 )
+        {
+            ffa_set_regs_success(regs, 0, 0);
+        }
+        else
+        {
+            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+        }
+        break;
     case FFA_MEM_SHARE_64:
     case FFA_MEM_SHARE_32:
         /*
@@ -353,6 +365,14 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     case FFA_MSG_SEND_DIRECT_REQ_64:
         ffa_handle_msg_send_direct_req(regs, fid);
         return true;
+    case FFA_MSG_SEND_DIRECT_REQ2:
+        if ( ACCESS_ONCE(ctx->guest_vers) >= FFA_VERSION_1_2 )
+        {
+            ffa_handle_msg_send_direct_req(regs, fid);
+            return true;
+        }
+        e = FFA_RET_NOT_SUPPORTED;
+        break;
     case FFA_RUN:
         ffa_handle_run(regs, fid);
         return true;
diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index c3552a3ae36d..4e26596461a9 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -49,6 +49,30 @@ static void ffa_finish_direct_req_run(struct cpu_user_regs *regs,
     case FFA_MSG_YIELD:
     case FFA_INTERRUPT:
         break;
+    case FFA_MSG_SEND_DIRECT_RESP2:
+        /*
+         * REQ2 / RESP2 use a 17-register payload (x1–x17). Copy all of them
+         * back to the guest context.
+         */
+        set_user_reg(regs, 0, resp.a0);
+        set_user_reg(regs, 1, resp.a1);
+        set_user_reg(regs, 2, resp.a2);
+        set_user_reg(regs, 3, resp.a3);
+        set_user_reg(regs, 4, resp.a4);
+        set_user_reg(regs, 5, resp.a5);
+        set_user_reg(regs, 6, resp.a6);
+        set_user_reg(regs, 7, resp.a7);
+        set_user_reg(regs, 8, resp.a8);
+        set_user_reg(regs, 9, resp.a9);
+        set_user_reg(regs, 10, resp.a10);
+        set_user_reg(regs, 11, resp.a11);
+        set_user_reg(regs, 12, resp.a12);
+        set_user_reg(regs, 13, resp.a13);
+        set_user_reg(regs, 14, resp.a14);
+        set_user_reg(regs, 15, resp.a15);
+        set_user_reg(regs, 16, resp.a16);
+        set_user_reg(regs, 17, resp.a17);
+        return;
     default:
         /* Bad fid, report back to the caller. */
         ffa_set_regs_error(regs, FFA_RET_ABORTED);
@@ -107,6 +131,21 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
     arg.a6 = get_user_reg(regs, 6) & mask;
     arg.a7 = get_user_reg(regs, 7) & mask;
 
+    if ( fid == FFA_MSG_SEND_DIRECT_REQ2 )
+    {
+        /* 17 registers are used for REQ2 */
+        arg.a8 = get_user_reg(regs, 8);
+        arg.a9 = get_user_reg(regs, 9);
+        arg.a10 = get_user_reg(regs, 10);
+        arg.a11 = get_user_reg(regs, 11);
+        arg.a12 = get_user_reg(regs, 12);
+        arg.a13 = get_user_reg(regs, 13);
+        arg.a14 = get_user_reg(regs, 14);
+        arg.a15 = get_user_reg(regs, 15);
+        arg.a16 = get_user_reg(regs, 16);
+        arg.a17 = get_user_reg(regs, 17);
+    }
+
     ffa_finish_direct_req_run(regs, &arg);
     return;
 
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 15:03:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 15:03:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187267.1508684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVA6z-00045x-E1; Mon, 15 Dec 2025 15:03:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187267.1508684; Mon, 15 Dec 2025 15:03:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVA6z-00045m-A2; Mon, 15 Dec 2025 15:03:45 +0000
Received: by outflank-mailman (input) for mailman id 1187267;
 Mon, 15 Dec 2025 15:03:44 +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
 <SRS0=lpeD=6V=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vVA6y-0003s4-IA
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 15:03:44 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 3f78f34e-d9c7-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 16:03:43 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id E12E5FEC;
 Mon, 15 Dec 2025 07:03:35 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C274B3F73B;
 Mon, 15 Dec 2025 07:03:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3f78f34e-d9c7-11f0-b15b-2bf370ae4941
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v6 01/14] powerpc/64s: Do not re-activate batched TLB flush
Date: Mon, 15 Dec 2025 15:03:10 +0000
Message-ID: <20251215150323.2218608-2-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251215150323.2218608-1-kevin.brodsky@arm.com>
References: <20251215150323.2218608-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Alexander Gordeev <agordeev@linux.ibm.com>

Since commit b9ef323ea168 ("powerpc/64s: Disable preemption in hash
lazy mmu mode") a task can not be preempted while in lazy MMU mode.
Therefore, the batch re-activation code is never called, so remove it.

Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Reviewed-by: Ryan Roberts <ryan.roberts@arm.com>
Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com>
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/powerpc/include/asm/thread_info.h |  2 --
 arch/powerpc/kernel/process.c          | 25 -------------------------
 2 files changed, 27 deletions(-)

diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
index b0f200aba2b3..97f35f9b1a96 100644
--- a/arch/powerpc/include/asm/thread_info.h
+++ b/arch/powerpc/include/asm/thread_info.h
@@ -154,12 +154,10 @@ void arch_setup_new_exec(void);
 /* Don't move TLF_NAPPING without adjusting the code in entry_32.S */
 #define TLF_NAPPING		0	/* idle thread enabled NAP mode */
 #define TLF_SLEEPING		1	/* suspend code enabled SLEEP mode */
-#define TLF_LAZY_MMU		3	/* tlb_batch is active */
 #define TLF_RUNLATCH		4	/* Is the runlatch enabled? */
 
 #define _TLF_NAPPING		(1 << TLF_NAPPING)
 #define _TLF_SLEEPING		(1 << TLF_SLEEPING)
-#define _TLF_LAZY_MMU		(1 << TLF_LAZY_MMU)
 #define _TLF_RUNLATCH		(1 << TLF_RUNLATCH)
 
 #ifndef __ASSEMBLER__
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
index a45fe147868b..a15d0b619b1f 100644
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -1281,9 +1281,6 @@ struct task_struct *__switch_to(struct task_struct *prev,
 {
 	struct thread_struct *new_thread, *old_thread;
 	struct task_struct *last;
-#ifdef CONFIG_PPC_64S_HASH_MMU
-	struct ppc64_tlb_batch *batch;
-#endif
 
 	new_thread = &new->thread;
 	old_thread = &current->thread;
@@ -1291,14 +1288,6 @@ struct task_struct *__switch_to(struct task_struct *prev,
 	WARN_ON(!irqs_disabled());
 
 #ifdef CONFIG_PPC_64S_HASH_MMU
-	batch = this_cpu_ptr(&ppc64_tlb_batch);
-	if (batch->active) {
-		current_thread_info()->local_flags |= _TLF_LAZY_MMU;
-		if (batch->index)
-			__flush_tlb_pending(batch);
-		batch->active = 0;
-	}
-
 	/*
 	 * On POWER9 the copy-paste buffer can only paste into
 	 * foreign real addresses, so unprivileged processes can not
@@ -1369,20 +1358,6 @@ struct task_struct *__switch_to(struct task_struct *prev,
 	 */
 
 #ifdef CONFIG_PPC_BOOK3S_64
-#ifdef CONFIG_PPC_64S_HASH_MMU
-	/*
-	 * This applies to a process that was context switched while inside
-	 * arch_enter_lazy_mmu_mode(), to re-activate the batch that was
-	 * deactivated above, before _switch(). This will never be the case
-	 * for new tasks.
-	 */
-	if (current_thread_info()->local_flags & _TLF_LAZY_MMU) {
-		current_thread_info()->local_flags &= ~_TLF_LAZY_MMU;
-		batch = this_cpu_ptr(&ppc64_tlb_batch);
-		batch->active = 1;
-	}
-#endif
-
 	/*
 	 * Math facilities are masked out of the child MSR in copy_thread.
 	 * A new task does not need to restore_math because it will
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 15:03:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 15:03:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187266.1508675 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVA6w-0003sH-6g; Mon, 15 Dec 2025 15:03:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187266.1508675; Mon, 15 Dec 2025 15:03:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVA6w-0003sA-2s; Mon, 15 Dec 2025 15:03:42 +0000
Received: by outflank-mailman (input) for mailman id 1187266;
 Mon, 15 Dec 2025 15:03:40 +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
 <SRS0=lpeD=6V=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vVA6u-0003s4-7x
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 15:03:40 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 3c28c2a7-d9c7-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 16:03:38 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 52D58497;
 Mon, 15 Dec 2025 07:03:30 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2EB8D3F73B;
 Mon, 15 Dec 2025 07:03:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3c28c2a7-d9c7-11f0-b15b-2bf370ae4941
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v6 00/14] Nesting support for lazy MMU mode
Date: Mon, 15 Dec 2025 15:03:09 +0000
Message-ID: <20251215150323.2218608-1-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

When the lazy MMU mode was introduced eons ago, it wasn't made clear
whether such a sequence was legal:

	arch_enter_lazy_mmu_mode()
	...
		arch_enter_lazy_mmu_mode()
		...
		arch_leave_lazy_mmu_mode()
	...
	arch_leave_lazy_mmu_mode()

It seems fair to say that nested calls to
arch_{enter,leave}_lazy_mmu_mode() were not expected, and most
architectures never explicitly supported it.

Nesting does in fact occur in certain configurations, and avoiding it
has proved difficult. This series therefore enables lazy_mmu sections to
nest, on all architectures.

Nesting is handled using a counter in task_struct (patch 8), like other
stateless APIs such as pagefault_{disable,enable}(). This is fully
handled in a new generic layer in <linux/pgtable.h>; the arch_* API
remains unchanged. A new pair of calls, lazy_mmu_mode_{pause,resume}(),
is also introduced to allow functions that are called with the lazy MMU
mode enabled to temporarily pause it, regardless of nesting.

An arch now opts in to using the lazy MMU mode by selecting
CONFIG_ARCH_LAZY_MMU; this is more appropriate now that we have a
generic API, especially with state conditionally added to task_struct.

---

Background: Ryan Roberts' series from March [1] attempted to prevent
nesting from ever occurring, and mostly succeeded. Unfortunately, a
corner case (DEBUG_PAGEALLOC) may still cause nesting to occur on arm64.
Ryan proposed [2] to address that corner case at the generic level but
this approach received pushback; [3] then attempted to solve the issue
on arm64 only, but it was deemed too fragile.

It feels generally difficult to guarantee that lazy_mmu sections don't
nest, because callers of various standard mm functions do not know if
the function uses lazy_mmu itself.

The overall approach in v3/v4 is very close to what David Hildenbrand
proposed on v2 [4].

Unlike in v1/v2, no special provision is made for architectures to
save/restore extra state when entering/leaving the mode. Based on the
discussions so far, this does not seem to be required - an arch can
store any relevant state in thread_struct during arch_enter() and
restore it in arch_leave(). Nesting is not a concern as these functions
are only called at the top level, not in nested sections.

The introduction of a generic layer, and tracking of the lazy MMU state
in task_struct, also allows to streamline the arch callbacks - this
series removes 67 lines from arch/.

Patch overview:

* Patch 1: cleanup - avoids having to deal with the powerpc
  context-switching code

* Patch 2-4: prepare arch_flush_lazy_mmu_mode() to be called from the
  generic layer (patch 9)

* Patch 5: documentation clarification (not directly related to the
  changes in this series)

* Patch 6-7: new API + CONFIG_ARCH_LAZY_MMU

* Patch 8: ensure correctness in interrupt context

* Patch 9: nesting support

* Patch 10-13: replace arch-specific tracking of lazy MMU mode with
  generic API

* Patch 14: basic tests to ensure that the state added in patch 9 is
  tracked correctly

This series has been tested by running the mm kselftests on arm64 with
DEBUG_VM, DEBUG_PAGEALLOC, KFENCE and KASAN. Extensive testing on
powerpc was also kindly provided by Venkat Rao Bagalkote [5]. It was
build-tested on other architectures (with and without XEN_PV on x86).

- Kevin

[1] https://lore.kernel.org/all/20250303141542.3371656-1-ryan.roberts@arm.com/
[2] https://lore.kernel.org/all/20250530140446.2387131-1-ryan.roberts@arm.com/
[3] https://lore.kernel.org/all/20250606135654.178300-1-ryan.roberts@arm.com/
[4] https://lore.kernel.org/all/ef343405-c394-4763-a79f-21381f217b6c@redhat.com/
[5] https://lore.kernel.org/all/94889730-1AEF-458F-B623-04092C0D6819@linux.ibm.com/
---
Changelog

v5..v6:

- Rebased on v6.19-rc1
- Overall: no functional change
- Patch 5: new patch clarifying that generic code may not sleep while in lazy
  MMU mode [Alexander Gordeev]
- Patch 6: added description for the ARCH_HAS_LAZY_MMU_MODE option
  [Anshuman Khandual]
- Patch 9: rename in_lazy_mmu_mode() to is_lazy_mmu_mode_active() [Alexander]
- Patch 14: new patch with basic KUnit tests [Anshuman]
- Collected R-b/A-b/T-b tags

v5: https://lore.kernel.org/all/20251124132228.622678-1-kevin.brodsky@arm.com/

v4..v5:

- Rebased on mm-unstable
- Patch 3: added missing radix_enabled() check in arch_flush()
  [Ritesh Harjani]
- Patch 6: declare arch_flush_lazy_mmu_mode() as static inline on x86
  [Ryan Roberts]
- Patch 7 (formerly 12): moved before patch 8 to ensure correctness in
  interrupt context [Ryan]. The diffs in in_lazy_mmu_mode() and
  queue_pte_barriers() are moved to patch 8 and 9 resp.
- Patch 8:
  * Removed all restrictions regarding lazy_mmu_mode_{pause,resume}().
    They may now be called even when lazy MMU isn't enabled, and
    any call to lazy_mmu_mode_* may be made while paused (such calls
    will be ignored). [David, Ryan]
  * lazy_mmu_state.{nesting_level,active} are replaced with
    {enable_count,pause_count} to track arbitrary nesting of both
    enable/disable and pause/resume [Ryan]
  * Added __task_lazy_mmu_mode_active() for use in patch 12 [David]
  * Added documentation for all the functions [Ryan]
- Patch 9: keep existing test + set TIF_LAZY_MMU_PENDING instead of
  atomic RMW [David, Ryan]
- Patch 12: use __task_lazy_mmu_mode_active() instead of accessing
  lazy_mmu_state directly [David]
- Collected R-b/A-b tags

v4: https://lore.kernel.org/all/20251029100909.3381140-1-kevin.brodsky@arm.com/

v3..v4:

- Patch 2: restored ordering of preempt_{disable,enable}() [Dave Hansen]
- Patch 5 onwards: s/ARCH_LAZY_MMU/ARCH_HAS_LAZY_MMU_MODE/ [Mike Rapoport]
- Patch 7: renamed lazy_mmu_state members, removed VM_BUG_ON(),
  reordered writes to lazy_mmu_state members [David Hildenbrand]
- Dropped patch 13 as it doesn't seem justified [David H]
- Various improvements to commit messages [David H]

v3: https://lore.kernel.org/all/20251015082727.2395128-1-kevin.brodsky@arm.com/

v2..v3:

- Full rewrite; dropped all Acked-by/Reviewed-by.
- Rebased on v6.18-rc1.

v2: https://lore.kernel.org/all/20250908073931.4159362-1-kevin.brodsky@arm.com/

v1..v2:
- Rebased on mm-unstable.
- Patch 2: handled new calls to enter()/leave(), clarified how the "flush"
  pattern (leave() followed by enter()) is handled.
- Patch 5,6: removed unnecessary local variable [Alexander Gordeev's
  suggestion].
- Added Mike Rapoport's Acked-by.

v1: https://lore.kernel.org/all/20250904125736.3918646-1-kevin.brodsky@arm.com/
---
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Andreas Larsson <andreas@gaisler.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jann Horn <jannh@google.com>
Cc: Juergen Gross <jgross@suse.com>
Cc: "Liam R. Howlett" <Liam.Howlett@oracle.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Venkat Rao Bagalkote <venkat88@linux.ibm.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Will Deacon <will@kernel.org>
Cc: Yeoreum Yun <yeoreum.yun@arm.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: linuxppc-dev@lists.ozlabs.org
Cc: sparclinux@vger.kernel.org
Cc: xen-devel@lists.xenproject.org
Cc: x86@kernel.org
---
Alexander Gordeev (1):
  powerpc/64s: Do not re-activate batched TLB flush

Kevin Brodsky (13):
  x86/xen: simplify flush_lazy_mmu()
  powerpc/mm: implement arch_flush_lazy_mmu_mode()
  sparc/mm: implement arch_flush_lazy_mmu_mode()
  mm: clarify lazy_mmu sleeping constraints
  mm: introduce CONFIG_ARCH_HAS_LAZY_MMU_MODE
  mm: introduce generic lazy_mmu helpers
  mm: bail out of lazy_mmu_mode_* in interrupt context
  mm: enable lazy_mmu sections to nest
  arm64: mm: replace TIF_LAZY_MMU with is_lazy_mmu_mode_active()
  powerpc/mm: replace batch->active with is_lazy_mmu_mode_active()
  sparc/mm: replace batch->active with is_lazy_mmu_mode_active()
  x86/xen: use lazy_mmu_state when context-switching
  mm: Add basic tests for lazy_mmu

 arch/arm64/Kconfig                            |   1 +
 arch/arm64/include/asm/pgtable.h              |  41 +----
 arch/arm64/include/asm/thread_info.h          |   3 +-
 arch/arm64/mm/mmu.c                           |   8 +-
 arch/arm64/mm/pageattr.c                      |   4 +-
 .../include/asm/book3s/64/tlbflush-hash.h     |  20 +--
 arch/powerpc/include/asm/thread_info.h        |   2 -
 arch/powerpc/kernel/process.c                 |  25 ---
 arch/powerpc/mm/book3s64/hash_tlb.c           |  10 +-
 arch/powerpc/mm/book3s64/subpage_prot.c       |   4 +-
 arch/powerpc/platforms/Kconfig.cputype        |   1 +
 arch/sparc/Kconfig                            |   1 +
 arch/sparc/include/asm/tlbflush_64.h          |   5 +-
 arch/sparc/mm/tlb.c                           |  14 +-
 arch/x86/Kconfig                              |   1 +
 arch/x86/boot/compressed/misc.h               |   1 +
 arch/x86/boot/startup/sme.c                   |   1 +
 arch/x86/include/asm/paravirt.h               |   1 -
 arch/x86/include/asm/pgtable.h                |   1 +
 arch/x86/include/asm/thread_info.h            |   4 +-
 arch/x86/xen/enlighten_pv.c                   |   3 +-
 arch/x86/xen/mmu_pv.c                         |   6 +-
 fs/proc/task_mmu.c                            |   4 +-
 include/linux/mm_types_task.h                 |   5 +
 include/linux/pgtable.h                       | 158 +++++++++++++++++-
 include/linux/sched.h                         |  45 +++++
 mm/Kconfig                                    |  19 +++
 mm/Makefile                                   |   1 +
 mm/kasan/shadow.c                             |   8 +-
 mm/madvise.c                                  |  18 +-
 mm/memory.c                                   |  16 +-
 mm/migrate_device.c                           |   8 +-
 mm/mprotect.c                                 |   4 +-
 mm/mremap.c                                   |   4 +-
 mm/tests/lazy_mmu_mode_kunit.c                |  71 ++++++++
 mm/userfaultfd.c                              |   4 +-
 mm/vmalloc.c                                  |  12 +-
 mm/vmscan.c                                   |  12 +-
 38 files changed, 380 insertions(+), 166 deletions(-)
 create mode 100644 mm/tests/lazy_mmu_mode_kunit.c


base-commit: 8f0b4cce4481fb22653697cced8d0d04027cb1e8
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 15:03:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 15:03:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187268.1508693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVA74-0004MP-Jm; Mon, 15 Dec 2025 15:03:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187268.1508693; Mon, 15 Dec 2025 15:03:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVA74-0004MI-HG; Mon, 15 Dec 2025 15:03:50 +0000
Received: by outflank-mailman (input) for mailman id 1187268;
 Mon, 15 Dec 2025 15:03:49 +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
 <SRS0=lpeD=6V=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vVA73-0003s4-T9
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 15:03:49 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 42ca2869-d9c7-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 16:03:49 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 80DEC1655;
 Mon, 15 Dec 2025 07:03:41 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5F7113F73B;
 Mon, 15 Dec 2025 07:03:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 42ca2869-d9c7-11f0-b15b-2bf370ae4941
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v6 02/14] x86/xen: simplify flush_lazy_mmu()
Date: Mon, 15 Dec 2025 15:03:11 +0000
Message-ID: <20251215150323.2218608-3-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251215150323.2218608-1-kevin.brodsky@arm.com>
References: <20251215150323.2218608-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

arch_flush_lazy_mmu_mode() is called when outstanding batched
pgtable operations must be completed immediately. There should
however be no need to leave and re-enter lazy MMU completely. The
only part of that sequence that we really need is xen_mc_flush();
call it directly.

Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Ryan Roberts <ryan.roberts@arm.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/x86/xen/mmu_pv.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
index 2a4a8deaf612..7a35c3393df4 100644
--- a/arch/x86/xen/mmu_pv.c
+++ b/arch/x86/xen/mmu_pv.c
@@ -2139,10 +2139,8 @@ static void xen_flush_lazy_mmu(void)
 {
 	preempt_disable();
 
-	if (xen_get_lazy_mode() == XEN_LAZY_MMU) {
-		arch_leave_lazy_mmu_mode();
-		arch_enter_lazy_mmu_mode();
-	}
+	if (xen_get_lazy_mode() == XEN_LAZY_MMU)
+		xen_mc_flush();
 
 	preempt_enable();
 }
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 15:03:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 15:03:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187269.1508704 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVA7A-0004fn-Sf; Mon, 15 Dec 2025 15:03:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187269.1508704; Mon, 15 Dec 2025 15:03:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVA7A-0004fe-Oc; Mon, 15 Dec 2025 15:03:56 +0000
Received: by outflank-mailman (input) for mailman id 1187269;
 Mon, 15 Dec 2025 15:03:55 +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
 <SRS0=lpeD=6V=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vVA79-0003s4-Pw
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 15:03:55 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 46293ded-d9c7-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 16:03:55 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 1DD31165C;
 Mon, 15 Dec 2025 07:03:47 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id F099A3F73B;
 Mon, 15 Dec 2025 07:03:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 46293ded-d9c7-11f0-b15b-2bf370ae4941
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v6 03/14] powerpc/mm: implement arch_flush_lazy_mmu_mode()
Date: Mon, 15 Dec 2025 15:03:12 +0000
Message-ID: <20251215150323.2218608-4-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251215150323.2218608-1-kevin.brodsky@arm.com>
References: <20251215150323.2218608-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Upcoming changes to the lazy_mmu API will cause
arch_flush_lazy_mmu_mode() to be called when leaving a nested
lazy_mmu section.

Move the relevant logic from arch_leave_lazy_mmu_mode() to
arch_flush_lazy_mmu_mode() and have the former call the latter. The
radix_enabled() check is required in both as
arch_flush_lazy_mmu_mode() will be called directly from the generic
layer in a subsequent patch.

Note: the additional this_cpu_ptr() and radix_enabled() calls on the
arch_leave_lazy_mmu_mode() path will be removed in a subsequent
patch.

Acked-by: David Hildenbrand <david@redhat.com>
Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com>
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 .../powerpc/include/asm/book3s/64/tlbflush-hash.h | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
index 146287d9580f..2d45f57df169 100644
--- a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
+++ b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
@@ -41,7 +41,7 @@ static inline void arch_enter_lazy_mmu_mode(void)
 	batch->active = 1;
 }
 
-static inline void arch_leave_lazy_mmu_mode(void)
+static inline void arch_flush_lazy_mmu_mode(void)
 {
 	struct ppc64_tlb_batch *batch;
 
@@ -51,12 +51,21 @@ static inline void arch_leave_lazy_mmu_mode(void)
 
 	if (batch->index)
 		__flush_tlb_pending(batch);
+}
+
+static inline void arch_leave_lazy_mmu_mode(void)
+{
+	struct ppc64_tlb_batch *batch;
+
+	if (radix_enabled())
+		return;
+	batch = this_cpu_ptr(&ppc64_tlb_batch);
+
+	arch_flush_lazy_mmu_mode();
 	batch->active = 0;
 	preempt_enable();
 }
 
-#define arch_flush_lazy_mmu_mode()      do {} while (0)
-
 extern void hash__tlbiel_all(unsigned int action);
 
 extern void flush_hash_page(unsigned long vpn, real_pte_t pte, int psize,
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 15:04:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 15:04:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187275.1508713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVA7L-00058a-6R; Mon, 15 Dec 2025 15:04:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187275.1508713; Mon, 15 Dec 2025 15:04:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVA7L-00058T-3h; Mon, 15 Dec 2025 15:04:07 +0000
Received: by outflank-mailman (input) for mailman id 1187275;
 Mon, 15 Dec 2025 15:04:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lpeD=6V=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vVA7K-0004yw-3T
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 15:04:06 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 49760d09-d9c7-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 16:04:00 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id ABDB91684;
 Mon, 15 Dec 2025 07:03:52 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 8D5F43F73B;
 Mon, 15 Dec 2025 07:03:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 49760d09-d9c7-11f0-9cce-f158ae23cfc8
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v6 04/14] sparc/mm: implement arch_flush_lazy_mmu_mode()
Date: Mon, 15 Dec 2025 15:03:13 +0000
Message-ID: <20251215150323.2218608-5-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251215150323.2218608-1-kevin.brodsky@arm.com>
References: <20251215150323.2218608-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Upcoming changes to the lazy_mmu API will cause
arch_flush_lazy_mmu_mode() to be called when leaving a nested
lazy_mmu section.

Move the relevant logic from arch_leave_lazy_mmu_mode() to
arch_flush_lazy_mmu_mode() and have the former call the latter.

Note: the additional this_cpu_ptr() call on the
arch_leave_lazy_mmu_mode() path will be removed in a subsequent
patch.

Acked-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/sparc/include/asm/tlbflush_64.h | 2 +-
 arch/sparc/mm/tlb.c                  | 9 ++++++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/arch/sparc/include/asm/tlbflush_64.h b/arch/sparc/include/asm/tlbflush_64.h
index 8b8cdaa69272..925bb5d7a4e1 100644
--- a/arch/sparc/include/asm/tlbflush_64.h
+++ b/arch/sparc/include/asm/tlbflush_64.h
@@ -43,8 +43,8 @@ void flush_tlb_kernel_range(unsigned long start, unsigned long end);
 
 void flush_tlb_pending(void);
 void arch_enter_lazy_mmu_mode(void);
+void arch_flush_lazy_mmu_mode(void);
 void arch_leave_lazy_mmu_mode(void);
-#define arch_flush_lazy_mmu_mode()      do {} while (0)
 
 /* Local cpu only.  */
 void __flush_tlb_all(void);
diff --git a/arch/sparc/mm/tlb.c b/arch/sparc/mm/tlb.c
index a35ddcca5e76..7b5dfcdb1243 100644
--- a/arch/sparc/mm/tlb.c
+++ b/arch/sparc/mm/tlb.c
@@ -59,12 +59,19 @@ void arch_enter_lazy_mmu_mode(void)
 	tb->active = 1;
 }
 
-void arch_leave_lazy_mmu_mode(void)
+void arch_flush_lazy_mmu_mode(void)
 {
 	struct tlb_batch *tb = this_cpu_ptr(&tlb_batch);
 
 	if (tb->tlb_nr)
 		flush_tlb_pending();
+}
+
+void arch_leave_lazy_mmu_mode(void)
+{
+	struct tlb_batch *tb = this_cpu_ptr(&tlb_batch);
+
+	arch_flush_lazy_mmu_mode();
 	tb->active = 0;
 	preempt_enable();
 }
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 15:04:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 15:04:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187277.1508724 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVA7N-0005OJ-ES; Mon, 15 Dec 2025 15:04:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187277.1508724; Mon, 15 Dec 2025 15:04:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVA7N-0005OC-Ar; Mon, 15 Dec 2025 15:04:09 +0000
Received: by outflank-mailman (input) for mailman id 1187277;
 Mon, 15 Dec 2025 15:04:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lpeD=6V=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vVA7L-0004yw-Vd
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 15:04:07 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 4cda7d9d-d9c7-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 16:04:06 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 4B751168F;
 Mon, 15 Dec 2025 07:03:58 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2A0493F73B;
 Mon, 15 Dec 2025 07:04:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4cda7d9d-d9c7-11f0-9cce-f158ae23cfc8
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v6 05/14] mm: clarify lazy_mmu sleeping constraints
Date: Mon, 15 Dec 2025 15:03:14 +0000
Message-ID: <20251215150323.2218608-6-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251215150323.2218608-1-kevin.brodsky@arm.com>
References: <20251215150323.2218608-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The lazy MMU mode documentation makes clear that an implementation
should not assume that preemption is disabled or any lock is held
upon entry to the mode; however it says nothing about what code
using the lazy MMU interface should expect.

In practice sleeping is forbidden (for generic code) while the lazy
MMU mode is active: say it explicitly.

Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 include/linux/pgtable.h | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
index 652f287c1ef6..1abc4a1c3d72 100644
--- a/include/linux/pgtable.h
+++ b/include/linux/pgtable.h
@@ -225,11 +225,15 @@ static inline int pmd_dirty(pmd_t pmd)
  * up to date.
  *
  * In the general case, no lock is guaranteed to be held between entry and exit
- * of the lazy mode. So the implementation must assume preemption may be enabled
- * and cpu migration is possible; it must take steps to be robust against this.
- * (In practice, for user PTE updates, the appropriate page table lock(s) are
- * held, but for kernel PTE updates, no lock is held). Nesting is not permitted
- * and the mode cannot be used in interrupt context.
+ * of the lazy mode. (In practice, for user PTE updates, the appropriate page
+ * table lock(s) are held, but for kernel PTE updates, no lock is held).
+ * The implementation must therefore assume preemption may be enabled upon
+ * entry to the mode and cpu migration is possible; it must take steps to be
+ * robust against this. An implementation may handle this by disabling
+ * preemption, as a consequence generic code may not sleep while the lazy MMU
+ * mode is active.
+ *
+ * Nesting is not permitted and the mode cannot be used in interrupt context.
  */
 #ifndef __HAVE_ARCH_ENTER_LAZY_MMU_MODE
 static inline void arch_enter_lazy_mmu_mode(void) {}
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 15:04:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 15:04:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187280.1508734 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVA7S-0005mg-Lg; Mon, 15 Dec 2025 15:04:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187280.1508734; Mon, 15 Dec 2025 15:04:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVA7S-0005mZ-Iq; Mon, 15 Dec 2025 15:04:14 +0000
Received: by outflank-mailman (input) for mailman id 1187280;
 Mon, 15 Dec 2025 15:04:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lpeD=6V=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vVA7R-0004yw-RI
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 15:04:13 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 502e50a2-d9c7-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 16:04:11 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id DD0151691;
 Mon, 15 Dec 2025 07:04:03 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BAB283F73B;
 Mon, 15 Dec 2025 07:04:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 502e50a2-d9c7-11f0-9cce-f158ae23cfc8
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v6 06/14] mm: introduce CONFIG_ARCH_HAS_LAZY_MMU_MODE
Date: Mon, 15 Dec 2025 15:03:15 +0000
Message-ID: <20251215150323.2218608-7-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251215150323.2218608-1-kevin.brodsky@arm.com>
References: <20251215150323.2218608-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Architectures currently opt in for implementing lazy_mmu helpers by
defining __HAVE_ARCH_ENTER_LAZY_MMU_MODE.

In preparation for introducing a generic lazy_mmu layer that will
require storage in task_struct, let's switch to a cleaner approach:
instead of defining a macro, select a CONFIG option.

This patch introduces CONFIG_ARCH_HAS_LAZY_MMU_MODE and has each
arch select it when it implements lazy_mmu helpers.
__HAVE_ARCH_ENTER_LAZY_MMU_MODE is removed and <linux/pgtable.h>
relies on the new CONFIG instead.

On x86, lazy_mmu helpers are only implemented if PARAVIRT_XXL is
selected. This creates some complications in arch/x86/boot/, because
a few files manually undefine PARAVIRT* options. As a result
<asm/paravirt.h> does not define the lazy_mmu helpers, but this
breaks the build as <linux/pgtable.h> only defines them if
!CONFIG_ARCH_HAS_LAZY_MMU_MODE. There does not seem to be a clean
way out of this - let's just undefine that new CONFIG too.

Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Reviewed-by: Ryan Roberts <ryan.roberts@arm.com>
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/arm64/Kconfig                                 | 1 +
 arch/arm64/include/asm/pgtable.h                   | 1 -
 arch/powerpc/include/asm/book3s/64/tlbflush-hash.h | 2 --
 arch/powerpc/platforms/Kconfig.cputype             | 1 +
 arch/sparc/Kconfig                                 | 1 +
 arch/sparc/include/asm/tlbflush_64.h               | 2 --
 arch/x86/Kconfig                                   | 1 +
 arch/x86/boot/compressed/misc.h                    | 1 +
 arch/x86/boot/startup/sme.c                        | 1 +
 arch/x86/include/asm/paravirt.h                    | 1 -
 include/linux/pgtable.h                            | 2 +-
 mm/Kconfig                                         | 7 +++++++
 12 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 93173f0a09c7..3fb4603c0e16 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -35,6 +35,7 @@ config ARM64
 	select ARCH_HAS_KCOV
 	select ARCH_HAS_KERNEL_FPU_SUPPORT if KERNEL_MODE_NEON
 	select ARCH_HAS_KEEPINITRD
+	select ARCH_HAS_LAZY_MMU_MODE
 	select ARCH_HAS_MEMBARRIER_SYNC_CORE
 	select ARCH_HAS_MEM_ENCRYPT
 	select ARCH_SUPPORTS_MSEAL_SYSTEM_MAPPINGS
diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
index 64d5f1d9cce9..f7d66c261347 100644
--- a/arch/arm64/include/asm/pgtable.h
+++ b/arch/arm64/include/asm/pgtable.h
@@ -80,7 +80,6 @@ static inline void queue_pte_barriers(void)
 	}
 }
 
-#define  __HAVE_ARCH_ENTER_LAZY_MMU_MODE
 static inline void arch_enter_lazy_mmu_mode(void)
 {
 	/*
diff --git a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
index 2d45f57df169..565c1b7c3eae 100644
--- a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
+++ b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
@@ -24,8 +24,6 @@ DECLARE_PER_CPU(struct ppc64_tlb_batch, ppc64_tlb_batch);
 
 extern void __flush_tlb_pending(struct ppc64_tlb_batch *batch);
 
-#define __HAVE_ARCH_ENTER_LAZY_MMU_MODE
-
 static inline void arch_enter_lazy_mmu_mode(void)
 {
 	struct ppc64_tlb_batch *batch;
diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype
index 4c321a8ea896..f399917c17bd 100644
--- a/arch/powerpc/platforms/Kconfig.cputype
+++ b/arch/powerpc/platforms/Kconfig.cputype
@@ -93,6 +93,7 @@ config PPC_BOOK3S_64
 	select IRQ_WORK
 	select PPC_64S_HASH_MMU if !PPC_RADIX_MMU
 	select KASAN_VMALLOC if KASAN
+	select ARCH_HAS_LAZY_MMU_MODE
 
 config PPC_BOOK3E_64
 	bool "Embedded processors"
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index a630d373e645..2bad14744ca4 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -112,6 +112,7 @@ config SPARC64
 	select NEED_PER_CPU_PAGE_FIRST_CHUNK
 	select ARCH_SUPPORTS_SCHED_SMT if SMP
 	select ARCH_SUPPORTS_SCHED_MC  if SMP
+	select ARCH_HAS_LAZY_MMU_MODE
 
 config ARCH_PROC_KCORE_TEXT
 	def_bool y
diff --git a/arch/sparc/include/asm/tlbflush_64.h b/arch/sparc/include/asm/tlbflush_64.h
index 925bb5d7a4e1..4e1036728e2f 100644
--- a/arch/sparc/include/asm/tlbflush_64.h
+++ b/arch/sparc/include/asm/tlbflush_64.h
@@ -39,8 +39,6 @@ static inline void flush_tlb_range(struct vm_area_struct *vma,
 
 void flush_tlb_kernel_range(unsigned long start, unsigned long end);
 
-#define __HAVE_ARCH_ENTER_LAZY_MMU_MODE
-
 void flush_tlb_pending(void);
 void arch_enter_lazy_mmu_mode(void);
 void arch_flush_lazy_mmu_mode(void);
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 80527299f859..2427a66cb0fe 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -808,6 +808,7 @@ config PARAVIRT
 config PARAVIRT_XXL
 	bool
 	depends on X86_64
+	select ARCH_HAS_LAZY_MMU_MODE
 
 config PARAVIRT_DEBUG
 	bool "paravirt-ops debugging"
diff --git a/arch/x86/boot/compressed/misc.h b/arch/x86/boot/compressed/misc.h
index fd855e32c9b9..4f86c5903e03 100644
--- a/arch/x86/boot/compressed/misc.h
+++ b/arch/x86/boot/compressed/misc.h
@@ -11,6 +11,7 @@
 #undef CONFIG_PARAVIRT
 #undef CONFIG_PARAVIRT_XXL
 #undef CONFIG_PARAVIRT_SPINLOCKS
+#undef CONFIG_ARCH_HAS_LAZY_MMU_MODE
 #undef CONFIG_KASAN
 #undef CONFIG_KASAN_GENERIC
 
diff --git a/arch/x86/boot/startup/sme.c b/arch/x86/boot/startup/sme.c
index e7ea65f3f1d6..b76a7c95dfe1 100644
--- a/arch/x86/boot/startup/sme.c
+++ b/arch/x86/boot/startup/sme.c
@@ -24,6 +24,7 @@
 #undef CONFIG_PARAVIRT
 #undef CONFIG_PARAVIRT_XXL
 #undef CONFIG_PARAVIRT_SPINLOCKS
+#undef CONFIG_ARCH_HAS_LAZY_MMU_MODE
 
 /*
  * This code runs before CPU feature bits are set. By default, the
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index b5e59a7ba0d0..13f9cd31c8f8 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -526,7 +526,6 @@ static inline void arch_end_context_switch(struct task_struct *next)
 	PVOP_VCALL1(cpu.end_context_switch, next);
 }
 
-#define  __HAVE_ARCH_ENTER_LAZY_MMU_MODE
 static inline void arch_enter_lazy_mmu_mode(void)
 {
 	PVOP_VCALL0(mmu.lazy_mode.enter);
diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
index 1abc4a1c3d72..d46d86959bd6 100644
--- a/include/linux/pgtable.h
+++ b/include/linux/pgtable.h
@@ -235,7 +235,7 @@ static inline int pmd_dirty(pmd_t pmd)
  *
  * Nesting is not permitted and the mode cannot be used in interrupt context.
  */
-#ifndef __HAVE_ARCH_ENTER_LAZY_MMU_MODE
+#ifndef CONFIG_ARCH_HAS_LAZY_MMU_MODE
 static inline void arch_enter_lazy_mmu_mode(void) {}
 static inline void arch_leave_lazy_mmu_mode(void) {}
 static inline void arch_flush_lazy_mmu_mode(void) {}
diff --git a/mm/Kconfig b/mm/Kconfig
index bd0ea5454af8..62073bd61544 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -1464,6 +1464,13 @@ config PT_RECLAIM
 config FIND_NORMAL_PAGE
 	def_bool n
 
+config ARCH_HAS_LAZY_MMU_MODE
+	bool
+	help
+	  The architecture uses the lazy MMU mode. This allows changes to
+	  MMU-related architectural state to be deferred until the mode is
+	  exited. See <linux/pgtable.h> for details.
+
 source "mm/damon/Kconfig"
 
 endmenu
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 15:04:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 15:04:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187286.1508744 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVA7Z-0006M3-VV; Mon, 15 Dec 2025 15:04:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187286.1508744; Mon, 15 Dec 2025 15:04:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVA7Z-0006Lq-S3; Mon, 15 Dec 2025 15:04:21 +0000
Received: by outflank-mailman (input) for mailman id 1187286;
 Mon, 15 Dec 2025 15:04:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lpeD=6V=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vVA7Y-0004yw-Nl
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 15:04:20 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 53931571-d9c7-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 16:04:17 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 953FD1692;
 Mon, 15 Dec 2025 07:04:09 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 57F423F73B;
 Mon, 15 Dec 2025 07:04:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 53931571-d9c7-11f0-9cce-f158ae23cfc8
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v6 07/14] mm: introduce generic lazy_mmu helpers
Date: Mon, 15 Dec 2025 15:03:16 +0000
Message-ID: <20251215150323.2218608-8-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251215150323.2218608-1-kevin.brodsky@arm.com>
References: <20251215150323.2218608-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The implementation of the lazy MMU mode is currently entirely
arch-specific; core code directly calls arch helpers:
arch_{enter,leave}_lazy_mmu_mode().

We are about to introduce support for nested lazy MMU sections.
As things stand we'd have to duplicate that logic in every arch
implementing lazy_mmu - adding to a fair amount of logic
already duplicated across lazy_mmu implementations.

This patch therefore introduces a new generic layer that calls the
existing arch_* helpers. Two pair of calls are introduced:

* lazy_mmu_mode_enable() ... lazy_mmu_mode_disable()
    This is the standard case where the mode is enabled for a given
    block of code by surrounding it with enable() and disable()
    calls.

* lazy_mmu_mode_pause() ... lazy_mmu_mode_resume()
    This is for situations where the mode is temporarily disabled
    by first calling pause() and then resume() (e.g. to prevent any
    batching from occurring in a critical section).

The documentation in <linux/pgtable.h> will be updated in a
subsequent patch.

No functional change should be introduced at this stage.
The implementation of enable()/resume() and disable()/pause() is
currently identical, but nesting support will change that.

Most of the call sites have been updated using the following
Coccinelle script:

@@
@@
{
...
- arch_enter_lazy_mmu_mode();
+ lazy_mmu_mode_enable();
...
- arch_leave_lazy_mmu_mode();
+ lazy_mmu_mode_disable();
...
}

@@
@@
{
...
- arch_leave_lazy_mmu_mode();
+ lazy_mmu_mode_pause();
...
- arch_enter_lazy_mmu_mode();
+ lazy_mmu_mode_resume();
...
}

A couple of notes regarding x86:

* Xen is currently the only case where explicit handling is required
  for lazy MMU when context-switching. This is purely an
  implementation detail and using the generic lazy_mmu_mode_*
  functions would cause trouble when nesting support is introduced,
  because the generic functions must be called from the current task.
  For that reason we still use arch_leave() and arch_enter() there.

* x86 calls arch_flush_lazy_mmu_mode() unconditionally in a few
  places, but only defines it if PARAVIRT_XXL is selected, and we
  are removing the fallback in <linux/pgtable.h>. Add a new fallback
  definition to <asm/pgtable.h> to keep things building.

Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/arm64/mm/mmu.c                     |  8 +++----
 arch/arm64/mm/pageattr.c                |  4 ++--
 arch/powerpc/mm/book3s64/hash_tlb.c     |  8 +++----
 arch/powerpc/mm/book3s64/subpage_prot.c |  4 ++--
 arch/x86/include/asm/pgtable.h          |  1 +
 fs/proc/task_mmu.c                      |  4 ++--
 include/linux/pgtable.h                 | 29 +++++++++++++++++++++----
 mm/kasan/shadow.c                       |  8 +++----
 mm/madvise.c                            | 18 +++++++--------
 mm/memory.c                             | 16 +++++++-------
 mm/migrate_device.c                     |  8 +++----
 mm/mprotect.c                           |  4 ++--
 mm/mremap.c                             |  4 ++--
 mm/userfaultfd.c                        |  4 ++--
 mm/vmalloc.c                            | 12 +++++-----
 mm/vmscan.c                             | 12 +++++-----
 16 files changed, 83 insertions(+), 61 deletions(-)

diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
index 9ae7ce00a7ef..76d359f02982 100644
--- a/arch/arm64/mm/mmu.c
+++ b/arch/arm64/mm/mmu.c
@@ -801,7 +801,7 @@ int split_kernel_leaf_mapping(unsigned long start, unsigned long end)
 		return -EINVAL;
 
 	mutex_lock(&pgtable_split_lock);
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	/*
 	 * The split_kernel_leaf_mapping_locked() may sleep, it is not a
@@ -823,7 +823,7 @@ int split_kernel_leaf_mapping(unsigned long start, unsigned long end)
 			ret = split_kernel_leaf_mapping_locked(end);
 	}
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	mutex_unlock(&pgtable_split_lock);
 	return ret;
 }
@@ -884,10 +884,10 @@ static int range_split_to_ptes(unsigned long start, unsigned long end, gfp_t gfp
 {
 	int ret;
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 	ret = walk_kernel_page_table_range_lockless(start, end,
 					&split_to_ptes_ops, NULL, &gfp);
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 
 	return ret;
 }
diff --git a/arch/arm64/mm/pageattr.c b/arch/arm64/mm/pageattr.c
index f0e784b963e6..508986608b49 100644
--- a/arch/arm64/mm/pageattr.c
+++ b/arch/arm64/mm/pageattr.c
@@ -110,7 +110,7 @@ static int update_range_prot(unsigned long start, unsigned long size,
 	if (WARN_ON_ONCE(ret))
 		return ret;
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	/*
 	 * The caller must ensure that the range we are operating on does not
@@ -119,7 +119,7 @@ static int update_range_prot(unsigned long start, unsigned long size,
 	 */
 	ret = walk_kernel_page_table_range_lockless(start, start + size,
 						    &pageattr_ops, NULL, &data);
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 
 	return ret;
 }
diff --git a/arch/powerpc/mm/book3s64/hash_tlb.c b/arch/powerpc/mm/book3s64/hash_tlb.c
index 21fcad97ae80..787f7a0e27f0 100644
--- a/arch/powerpc/mm/book3s64/hash_tlb.c
+++ b/arch/powerpc/mm/book3s64/hash_tlb.c
@@ -205,7 +205,7 @@ void __flush_hash_table_range(unsigned long start, unsigned long end)
 	 * way to do things but is fine for our needs here.
 	 */
 	local_irq_save(flags);
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 	for (; start < end; start += PAGE_SIZE) {
 		pte_t *ptep = find_init_mm_pte(start, &hugepage_shift);
 		unsigned long pte;
@@ -217,7 +217,7 @@ void __flush_hash_table_range(unsigned long start, unsigned long end)
 			continue;
 		hpte_need_flush(&init_mm, start, ptep, pte, hugepage_shift);
 	}
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	local_irq_restore(flags);
 }
 
@@ -237,7 +237,7 @@ void flush_hash_table_pmd_range(struct mm_struct *mm, pmd_t *pmd, unsigned long
 	 * way to do things but is fine for our needs here.
 	 */
 	local_irq_save(flags);
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 	start_pte = pte_offset_map(pmd, addr);
 	if (!start_pte)
 		goto out;
@@ -249,6 +249,6 @@ void flush_hash_table_pmd_range(struct mm_struct *mm, pmd_t *pmd, unsigned long
 	}
 	pte_unmap(start_pte);
 out:
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	local_irq_restore(flags);
 }
diff --git a/arch/powerpc/mm/book3s64/subpage_prot.c b/arch/powerpc/mm/book3s64/subpage_prot.c
index ec98e526167e..07c47673bba2 100644
--- a/arch/powerpc/mm/book3s64/subpage_prot.c
+++ b/arch/powerpc/mm/book3s64/subpage_prot.c
@@ -73,13 +73,13 @@ static void hpte_flush_range(struct mm_struct *mm, unsigned long addr,
 	pte = pte_offset_map_lock(mm, pmd, addr, &ptl);
 	if (!pte)
 		return;
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 	for (; npages > 0; --npages) {
 		pte_update(mm, addr, pte, 0, 0, 0);
 		addr += PAGE_SIZE;
 		++pte;
 	}
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	pte_unmap_unlock(pte - 1, ptl);
 }
 
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
index e33df3da6980..2842fa1f7a2c 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -118,6 +118,7 @@ extern pmdval_t early_pmd_flags;
 #define __pte(x)	native_make_pte(x)
 
 #define arch_end_context_switch(prev)	do {} while(0)
+static inline void arch_flush_lazy_mmu_mode(void) {}
 #endif	/* CONFIG_PARAVIRT_XXL */
 
 static inline pmd_t pmd_set_flags(pmd_t pmd, pmdval_t set)
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index 81dfc26bfae8..480db575553e 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -2739,7 +2739,7 @@ static int pagemap_scan_pmd_entry(pmd_t *pmd, unsigned long start,
 		return 0;
 	}
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	if ((p->arg.flags & PM_SCAN_WP_MATCHING) && !p->vec_out) {
 		/* Fast path for performing exclusive WP */
@@ -2809,7 +2809,7 @@ static int pagemap_scan_pmd_entry(pmd_t *pmd, unsigned long start,
 	if (flush_end)
 		flush_tlb_range(vma, start, addr);
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	pte_unmap_unlock(start_pte, ptl);
 
 	cond_resched();
diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
index d46d86959bd6..116a18b7916c 100644
--- a/include/linux/pgtable.h
+++ b/include/linux/pgtable.h
@@ -235,10 +235,31 @@ static inline int pmd_dirty(pmd_t pmd)
  *
  * Nesting is not permitted and the mode cannot be used in interrupt context.
  */
-#ifndef CONFIG_ARCH_HAS_LAZY_MMU_MODE
-static inline void arch_enter_lazy_mmu_mode(void) {}
-static inline void arch_leave_lazy_mmu_mode(void) {}
-static inline void arch_flush_lazy_mmu_mode(void) {}
+#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
+static inline void lazy_mmu_mode_enable(void)
+{
+	arch_enter_lazy_mmu_mode();
+}
+
+static inline void lazy_mmu_mode_disable(void)
+{
+	arch_leave_lazy_mmu_mode();
+}
+
+static inline void lazy_mmu_mode_pause(void)
+{
+	arch_leave_lazy_mmu_mode();
+}
+
+static inline void lazy_mmu_mode_resume(void)
+{
+	arch_enter_lazy_mmu_mode();
+}
+#else
+static inline void lazy_mmu_mode_enable(void) {}
+static inline void lazy_mmu_mode_disable(void) {}
+static inline void lazy_mmu_mode_pause(void) {}
+static inline void lazy_mmu_mode_resume(void) {}
 #endif
 
 #ifndef pte_batch_hint
diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
index 29a751a8a08d..c1433d5cc5db 100644
--- a/mm/kasan/shadow.c
+++ b/mm/kasan/shadow.c
@@ -305,7 +305,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep, unsigned long addr,
 	pte_t pte;
 	int index;
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_pause();
 
 	index = PFN_DOWN(addr - data->start);
 	page = data->pages[index];
@@ -319,7 +319,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep, unsigned long addr,
 	}
 	spin_unlock(&init_mm.page_table_lock);
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_resume();
 
 	return 0;
 }
@@ -471,7 +471,7 @@ static int kasan_depopulate_vmalloc_pte(pte_t *ptep, unsigned long addr,
 	pte_t pte;
 	int none;
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_pause();
 
 	spin_lock(&init_mm.page_table_lock);
 	pte = ptep_get(ptep);
@@ -483,7 +483,7 @@ static int kasan_depopulate_vmalloc_pte(pte_t *ptep, unsigned long addr,
 	if (likely(!none))
 		__free_page(pfn_to_page(pte_pfn(pte)));
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_resume();
 
 	return 0;
 }
diff --git a/mm/madvise.c b/mm/madvise.c
index b617b1be0f53..6bf7009fa5ce 100644
--- a/mm/madvise.c
+++ b/mm/madvise.c
@@ -453,7 +453,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
 	if (!start_pte)
 		return 0;
 	flush_tlb_batched_pending(mm);
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 	for (; addr < end; pte += nr, addr += nr * PAGE_SIZE) {
 		nr = 1;
 		ptent = ptep_get(pte);
@@ -461,7 +461,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
 		if (++batch_count == SWAP_CLUSTER_MAX) {
 			batch_count = 0;
 			if (need_resched()) {
-				arch_leave_lazy_mmu_mode();
+				lazy_mmu_mode_disable();
 				pte_unmap_unlock(start_pte, ptl);
 				cond_resched();
 				goto restart;
@@ -497,7 +497,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
 				if (!folio_trylock(folio))
 					continue;
 				folio_get(folio);
-				arch_leave_lazy_mmu_mode();
+				lazy_mmu_mode_disable();
 				pte_unmap_unlock(start_pte, ptl);
 				start_pte = NULL;
 				err = split_folio(folio);
@@ -508,7 +508,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
 				if (!start_pte)
 					break;
 				flush_tlb_batched_pending(mm);
-				arch_enter_lazy_mmu_mode();
+				lazy_mmu_mode_enable();
 				if (!err)
 					nr = 0;
 				continue;
@@ -556,7 +556,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
 	}
 
 	if (start_pte) {
-		arch_leave_lazy_mmu_mode();
+		lazy_mmu_mode_disable();
 		pte_unmap_unlock(start_pte, ptl);
 	}
 	if (pageout)
@@ -675,7 +675,7 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr,
 	if (!start_pte)
 		return 0;
 	flush_tlb_batched_pending(mm);
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 	for (; addr != end; pte += nr, addr += PAGE_SIZE * nr) {
 		nr = 1;
 		ptent = ptep_get(pte);
@@ -724,7 +724,7 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr,
 				if (!folio_trylock(folio))
 					continue;
 				folio_get(folio);
-				arch_leave_lazy_mmu_mode();
+				lazy_mmu_mode_disable();
 				pte_unmap_unlock(start_pte, ptl);
 				start_pte = NULL;
 				err = split_folio(folio);
@@ -735,7 +735,7 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr,
 				if (!start_pte)
 					break;
 				flush_tlb_batched_pending(mm);
-				arch_enter_lazy_mmu_mode();
+				lazy_mmu_mode_enable();
 				if (!err)
 					nr = 0;
 				continue;
@@ -775,7 +775,7 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr,
 	if (nr_swap)
 		add_mm_counter(mm, MM_SWAPENTS, nr_swap);
 	if (start_pte) {
-		arch_leave_lazy_mmu_mode();
+		lazy_mmu_mode_disable();
 		pte_unmap_unlock(start_pte, ptl);
 	}
 	cond_resched();
diff --git a/mm/memory.c b/mm/memory.c
index 2a55edc48a65..ee15303c4041 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -1256,7 +1256,7 @@ copy_pte_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma,
 	spin_lock_nested(src_ptl, SINGLE_DEPTH_NESTING);
 	orig_src_pte = src_pte;
 	orig_dst_pte = dst_pte;
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	do {
 		nr = 1;
@@ -1325,7 +1325,7 @@ copy_pte_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma,
 	} while (dst_pte += nr, src_pte += nr, addr += PAGE_SIZE * nr,
 		 addr != end);
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	pte_unmap_unlock(orig_src_pte, src_ptl);
 	add_mm_rss_vec(dst_mm, rss);
 	pte_unmap_unlock(orig_dst_pte, dst_ptl);
@@ -1842,7 +1842,7 @@ static unsigned long zap_pte_range(struct mmu_gather *tlb,
 		return addr;
 
 	flush_tlb_batched_pending(mm);
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 	do {
 		bool any_skipped = false;
 
@@ -1874,7 +1874,7 @@ static unsigned long zap_pte_range(struct mmu_gather *tlb,
 		direct_reclaim = try_get_and_clear_pmd(mm, pmd, &pmdval);
 
 	add_mm_rss_vec(mm, rss);
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 
 	/* Do the actual TLB flush before dropping ptl */
 	if (force_flush) {
@@ -2813,7 +2813,7 @@ static int remap_pte_range(struct mm_struct *mm, pmd_t *pmd,
 	mapped_pte = pte = pte_alloc_map_lock(mm, pmd, addr, &ptl);
 	if (!pte)
 		return -ENOMEM;
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 	do {
 		BUG_ON(!pte_none(ptep_get(pte)));
 		if (!pfn_modify_allowed(pfn, prot)) {
@@ -2823,7 +2823,7 @@ static int remap_pte_range(struct mm_struct *mm, pmd_t *pmd,
 		set_pte_at(mm, addr, pte, pte_mkspecial(pfn_pte(pfn, prot)));
 		pfn++;
 	} while (pte++, addr += PAGE_SIZE, addr != end);
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	pte_unmap_unlock(mapped_pte, ptl);
 	return err;
 }
@@ -3174,7 +3174,7 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
 			return -EINVAL;
 	}
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	if (fn) {
 		do {
@@ -3187,7 +3187,7 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
 	}
 	*mask |= PGTBL_PTE_MODIFIED;
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 
 	if (mm != &init_mm)
 		pte_unmap_unlock(mapped_pte, ptl);
diff --git a/mm/migrate_device.c b/mm/migrate_device.c
index 23379663b1e1..0346c2d7819f 100644
--- a/mm/migrate_device.c
+++ b/mm/migrate_device.c
@@ -271,7 +271,7 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
 	ptep = pte_offset_map_lock(mm, pmdp, start, &ptl);
 	if (!ptep)
 		goto again;
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 	ptep += (addr - start) / PAGE_SIZE;
 
 	for (; addr < end; addr += PAGE_SIZE, ptep++) {
@@ -313,7 +313,7 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
 			if (folio_test_large(folio)) {
 				int ret;
 
-				arch_leave_lazy_mmu_mode();
+				lazy_mmu_mode_disable();
 				pte_unmap_unlock(ptep, ptl);
 				ret = migrate_vma_split_folio(folio,
 							  migrate->fault_page);
@@ -356,7 +356,7 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
 			if (folio && folio_test_large(folio)) {
 				int ret;
 
-				arch_leave_lazy_mmu_mode();
+				lazy_mmu_mode_disable();
 				pte_unmap_unlock(ptep, ptl);
 				ret = migrate_vma_split_folio(folio,
 							  migrate->fault_page);
@@ -485,7 +485,7 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
 	if (unmapped)
 		flush_tlb_range(walk->vma, start, end);
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	pte_unmap_unlock(ptep - 1, ptl);
 
 	return 0;
diff --git a/mm/mprotect.c b/mm/mprotect.c
index 283889e4f1ce..c0571445bef7 100644
--- a/mm/mprotect.c
+++ b/mm/mprotect.c
@@ -233,7 +233,7 @@ static long change_pte_range(struct mmu_gather *tlb,
 		is_private_single_threaded = vma_is_single_threaded_private(vma);
 
 	flush_tlb_batched_pending(vma->vm_mm);
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 	do {
 		nr_ptes = 1;
 		oldpte = ptep_get(pte);
@@ -379,7 +379,7 @@ static long change_pte_range(struct mmu_gather *tlb,
 			}
 		}
 	} while (pte += nr_ptes, addr += nr_ptes * PAGE_SIZE, addr != end);
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	pte_unmap_unlock(pte - 1, ptl);
 
 	return pages;
diff --git a/mm/mremap.c b/mm/mremap.c
index 672264807db6..8275b9772ec1 100644
--- a/mm/mremap.c
+++ b/mm/mremap.c
@@ -260,7 +260,7 @@ static int move_ptes(struct pagetable_move_control *pmc,
 	if (new_ptl != old_ptl)
 		spin_lock_nested(new_ptl, SINGLE_DEPTH_NESTING);
 	flush_tlb_batched_pending(vma->vm_mm);
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	for (; old_addr < old_end; old_ptep += nr_ptes, old_addr += nr_ptes * PAGE_SIZE,
 		new_ptep += nr_ptes, new_addr += nr_ptes * PAGE_SIZE) {
@@ -305,7 +305,7 @@ static int move_ptes(struct pagetable_move_control *pmc,
 		}
 	}
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	if (force_flush)
 		flush_tlb_range(vma, old_end - len, old_end);
 	if (new_ptl != old_ptl)
diff --git a/mm/userfaultfd.c b/mm/userfaultfd.c
index e6dfd5f28acd..b11f81095fa5 100644
--- a/mm/userfaultfd.c
+++ b/mm/userfaultfd.c
@@ -1103,7 +1103,7 @@ static long move_present_ptes(struct mm_struct *mm,
 	/* It's safe to drop the reference now as the page-table is holding one. */
 	folio_put(*first_src_folio);
 	*first_src_folio = NULL;
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	while (true) {
 		orig_src_pte = ptep_get_and_clear(mm, src_addr, src_pte);
@@ -1140,7 +1140,7 @@ static long move_present_ptes(struct mm_struct *mm,
 			break;
 	}
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	if (src_addr > src_start)
 		flush_tlb_range(src_vma, src_start, src_addr);
 
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index ecbac900c35f..1dea299fbb5a 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -108,7 +108,7 @@ static int vmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
 	if (!pte)
 		return -ENOMEM;
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	do {
 		if (unlikely(!pte_none(ptep_get(pte)))) {
@@ -134,7 +134,7 @@ static int vmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
 		pfn++;
 	} while (pte += PFN_DOWN(size), addr += size, addr != end);
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	*mask |= PGTBL_PTE_MODIFIED;
 	return 0;
 }
@@ -366,7 +366,7 @@ static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
 	unsigned long size = PAGE_SIZE;
 
 	pte = pte_offset_kernel(pmd, addr);
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	do {
 #ifdef CONFIG_HUGETLB_PAGE
@@ -385,7 +385,7 @@ static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
 		WARN_ON(!pte_none(ptent) && !pte_present(ptent));
 	} while (pte += (size >> PAGE_SHIFT), addr += size, addr != end);
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	*mask |= PGTBL_PTE_MODIFIED;
 }
 
@@ -533,7 +533,7 @@ static int vmap_pages_pte_range(pmd_t *pmd, unsigned long addr,
 	if (!pte)
 		return -ENOMEM;
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	do {
 		struct page *page = pages[*nr];
@@ -555,7 +555,7 @@ static int vmap_pages_pte_range(pmd_t *pmd, unsigned long addr,
 		(*nr)++;
 	} while (pte++, addr += PAGE_SIZE, addr != end);
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	*mask |= PGTBL_PTE_MODIFIED;
 
 	return err;
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 670fe9fae5ba..ab7ca55ca0f3 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -3516,7 +3516,7 @@ static bool walk_pte_range(pmd_t *pmd, unsigned long start, unsigned long end,
 		return false;
 	}
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 restart:
 	for (i = pte_index(start), addr = start; addr != end; i++, addr += PAGE_SIZE) {
 		unsigned long pfn;
@@ -3557,7 +3557,7 @@ static bool walk_pte_range(pmd_t *pmd, unsigned long start, unsigned long end,
 	if (i < PTRS_PER_PTE && get_next_vma(PMD_MASK, PAGE_SIZE, args, &start, &end))
 		goto restart;
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	pte_unmap_unlock(pte, ptl);
 
 	return suitable_to_scan(total, young);
@@ -3598,7 +3598,7 @@ static void walk_pmd_range_locked(pud_t *pud, unsigned long addr, struct vm_area
 	if (!spin_trylock(ptl))
 		goto done;
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	do {
 		unsigned long pfn;
@@ -3645,7 +3645,7 @@ static void walk_pmd_range_locked(pud_t *pud, unsigned long addr, struct vm_area
 
 	walk_update_folio(walk, last, gen, dirty);
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	spin_unlock(ptl);
 done:
 	*first = -1;
@@ -4244,7 +4244,7 @@ bool lru_gen_look_around(struct page_vma_mapped_walk *pvmw)
 		}
 	}
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	pte -= (addr - start) / PAGE_SIZE;
 
@@ -4278,7 +4278,7 @@ bool lru_gen_look_around(struct page_vma_mapped_walk *pvmw)
 
 	walk_update_folio(walk, last, gen, dirty);
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 
 	/* feedback from rmap walkers to page table walkers */
 	if (mm_state && suitable_to_scan(i, young))
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 15:04:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 15:04:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187290.1508754 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVA7d-0006hQ-CJ; Mon, 15 Dec 2025 15:04:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187290.1508754; Mon, 15 Dec 2025 15:04:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVA7d-0006hB-7o; Mon, 15 Dec 2025 15:04:25 +0000
Received: by outflank-mailman (input) for mailman id 1187290;
 Mon, 15 Dec 2025 15:04:24 +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
 <SRS0=lpeD=6V=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vVA7c-0003s4-2M
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 15:04:24 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 56fc9542-d9c7-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 16:04:23 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 52004497;
 Mon, 15 Dec 2025 07:04:15 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 134D63F73B;
 Mon, 15 Dec 2025 07:04:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 56fc9542-d9c7-11f0-b15b-2bf370ae4941
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org,
	"David Hildenbrand (Red Hat)" <david@kernel.org>
Subject: [PATCH v6 08/14] mm: bail out of lazy_mmu_mode_* in interrupt context
Date: Mon, 15 Dec 2025 15:03:17 +0000
Message-ID: <20251215150323.2218608-9-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251215150323.2218608-1-kevin.brodsky@arm.com>
References: <20251215150323.2218608-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The lazy MMU mode cannot be used in interrupt context. This is
documented in <linux/pgtable.h>, but isn't consistently handled
across architectures.

arm64 ensures that calls to lazy_mmu_mode_* have no effect in
interrupt context, because such calls do occur in certain
configurations - see commit b81c688426a9 ("arm64/mm: Disable barrier
batching in interrupt contexts"). Other architectures do not check
this situation, most likely because it hasn't occurred so far.

Let's handle this in the new generic lazy_mmu layer, in the same
fashion as arm64: bail out of lazy_mmu_mode_* if in_interrupt().
Also remove the arm64 handling that is now redundant.

Both arm64 and x86/Xen also ensure that any lazy MMU optimisation is
disabled while in interrupt (see queue_pte_barriers() and
xen_get_lazy_mode() respectively). This will be handled in the
generic layer in a subsequent patch.

Acked-by: David Hildenbrand (Red Hat) <david@kernel.org>
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/arm64/include/asm/pgtable.h |  9 ---------
 include/linux/pgtable.h          | 17 ++++++++++++++++-
 2 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
index f7d66c261347..bf9178902bdb 100644
--- a/arch/arm64/include/asm/pgtable.h
+++ b/arch/arm64/include/asm/pgtable.h
@@ -94,26 +94,17 @@ static inline void arch_enter_lazy_mmu_mode(void)
 	 * keeps tracking simple.
 	 */
 
-	if (in_interrupt())
-		return;
-
 	set_thread_flag(TIF_LAZY_MMU);
 }
 
 static inline void arch_flush_lazy_mmu_mode(void)
 {
-	if (in_interrupt())
-		return;
-
 	if (test_and_clear_thread_flag(TIF_LAZY_MMU_PENDING))
 		emit_pte_barriers();
 }
 
 static inline void arch_leave_lazy_mmu_mode(void)
 {
-	if (in_interrupt())
-		return;
-
 	arch_flush_lazy_mmu_mode();
 	clear_thread_flag(TIF_LAZY_MMU);
 }
diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
index 116a18b7916c..dddde6873d1e 100644
--- a/include/linux/pgtable.h
+++ b/include/linux/pgtable.h
@@ -233,26 +233,41 @@ static inline int pmd_dirty(pmd_t pmd)
  * preemption, as a consequence generic code may not sleep while the lazy MMU
  * mode is active.
  *
- * Nesting is not permitted and the mode cannot be used in interrupt context.
+ * The mode is disabled in interrupt context and calls to the lazy_mmu API have
+ * no effect.
+ *
+ * Nesting is not permitted.
  */
 #ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
 static inline void lazy_mmu_mode_enable(void)
 {
+	if (in_interrupt())
+		return;
+
 	arch_enter_lazy_mmu_mode();
 }
 
 static inline void lazy_mmu_mode_disable(void)
 {
+	if (in_interrupt())
+		return;
+
 	arch_leave_lazy_mmu_mode();
 }
 
 static inline void lazy_mmu_mode_pause(void)
 {
+	if (in_interrupt())
+		return;
+
 	arch_leave_lazy_mmu_mode();
 }
 
 static inline void lazy_mmu_mode_resume(void)
 {
+	if (in_interrupt())
+		return;
+
 	arch_enter_lazy_mmu_mode();
 }
 #else
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 15:07:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 15:07:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187326.1508771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVAAT-0000C3-2s; Mon, 15 Dec 2025 15:07:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187326.1508771; Mon, 15 Dec 2025 15:07:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVAAS-0000BG-SM; Mon, 15 Dec 2025 15:07:20 +0000
Received: by outflank-mailman (input) for mailman id 1187326;
 Mon, 15 Dec 2025 15:07:19 +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
 <SRS0=lpeD=6V=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vVA8A-0003s4-30
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 15:04:58 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 6b45298b-d9c7-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 16:04:57 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 62D991713;
 Mon, 15 Dec 2025 07:04:49 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 41F803F73B;
 Mon, 15 Dec 2025 07:04:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6b45298b-d9c7-11f0-b15b-2bf370ae4941
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v6 14/14] mm: Add basic tests for lazy_mmu
Date: Mon, 15 Dec 2025 15:03:23 +0000
Message-ID: <20251215150323.2218608-15-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251215150323.2218608-1-kevin.brodsky@arm.com>
References: <20251215150323.2218608-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add basic KUnit tests for the generic aspects of the lazy MMU mode:
ensure that it appears active when it should, depending on how
enable/disable and pause/resume pairs are nested.

Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 mm/Kconfig                     | 12 ++++++
 mm/Makefile                    |  1 +
 mm/tests/lazy_mmu_mode_kunit.c | 71 ++++++++++++++++++++++++++++++++++
 3 files changed, 84 insertions(+)
 create mode 100644 mm/tests/lazy_mmu_mode_kunit.c

diff --git a/mm/Kconfig b/mm/Kconfig
index 62073bd61544..ac48deb44884 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -1471,6 +1471,18 @@ config ARCH_HAS_LAZY_MMU_MODE
 	  MMU-related architectural state to be deferred until the mode is
 	  exited. See <linux/pgtable.h> for details.
 
+config LAZY_MMU_MODE_KUNIT_TEST
+	tristate "KUnit tests for the lazy MMU mode" if !KUNIT_ALL_TESTS
+	depends on ARCH_HAS_LAZY_MMU_MODE
+	depends on KUNIT
+	default KUNIT_ALL_TESTS
+	help
+	  Enable this option to check that the lazy MMU mode interface behaves
+	  as expected. Only tests for the generic interface are included (not
+	  architecture-specific behaviours).
+
+	  If unsure, say N.
+
 source "mm/damon/Kconfig"
 
 endmenu
diff --git a/mm/Makefile b/mm/Makefile
index 2d0570a16e5b..9175f8cc6565 100644
--- a/mm/Makefile
+++ b/mm/Makefile
@@ -147,3 +147,4 @@ obj-$(CONFIG_SHRINKER_DEBUG) += shrinker_debug.o
 obj-$(CONFIG_EXECMEM) += execmem.o
 obj-$(CONFIG_TMPFS_QUOTA) += shmem_quota.o
 obj-$(CONFIG_PT_RECLAIM) += pt_reclaim.o
+obj-$(CONFIG_LAZY_MMU_MODE_KUNIT_TEST) += tests/lazy_mmu_mode_kunit.o
diff --git a/mm/tests/lazy_mmu_mode_kunit.c b/mm/tests/lazy_mmu_mode_kunit.c
new file mode 100644
index 000000000000..2720eb995714
--- /dev/null
+++ b/mm/tests/lazy_mmu_mode_kunit.c
@@ -0,0 +1,71 @@
+// SPDX-License-Identifier: GPL-2.0-only
+#include <kunit/test.h>
+#include <linux/pgtable.h>
+
+static void expect_not_active(struct kunit *test)
+{
+	KUNIT_EXPECT_FALSE(test, is_lazy_mmu_mode_active());
+}
+
+static void expect_active(struct kunit *test)
+{
+	KUNIT_EXPECT_TRUE(test, is_lazy_mmu_mode_active());
+}
+
+static void lazy_mmu_mode_active(struct kunit *test)
+{
+	expect_not_active(test);
+
+	lazy_mmu_mode_enable();
+	expect_active(test);
+
+	{
+		/* Nested section */
+		lazy_mmu_mode_enable();
+		expect_active(test);
+
+		lazy_mmu_mode_disable();
+		expect_active(test);
+	}
+
+	{
+		/* Paused section */
+		lazy_mmu_mode_pause();
+		expect_not_active(test);
+
+		{
+			/* No effect (paused) */
+			lazy_mmu_mode_enable();
+			expect_not_active(test);
+
+			lazy_mmu_mode_disable();
+			expect_not_active(test);
+
+			lazy_mmu_mode_pause();
+			expect_not_active(test);
+
+			lazy_mmu_mode_resume();
+			expect_not_active(test);
+		}
+
+		lazy_mmu_mode_resume();
+		expect_active(test);
+	}
+
+	lazy_mmu_mode_disable();
+	expect_not_active(test);
+}
+
+static struct kunit_case lazy_mmu_mode_test_cases[] = {
+	KUNIT_CASE(lazy_mmu_mode_active),
+	{}
+};
+
+static struct kunit_suite lazy_mmu_mode_test_suite = {
+	.name = "lazy_mmu_mode",
+	.test_cases = lazy_mmu_mode_test_cases,
+};
+kunit_test_suite(lazy_mmu_mode_test_suite);
+
+MODULE_DESCRIPTION("Tests for the lazy MMU mode");
+MODULE_LICENSE("GPL");
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 15:07:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 15:07:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187325.1508764 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVAAS-00008f-PN; Mon, 15 Dec 2025 15:07:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187325.1508764; Mon, 15 Dec 2025 15:07:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVAAS-00008Y-Lo; Mon, 15 Dec 2025 15:07:20 +0000
Received: by outflank-mailman (input) for mailman id 1187325;
 Mon, 15 Dec 2025 15:07:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lpeD=6V=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vVA7o-0004yw-GH
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 15:04:36 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 5dcfa142-d9c7-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 16:04:34 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id BB8BF169E;
 Mon, 15 Dec 2025 07:04:26 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7E8EC3F73B;
 Mon, 15 Dec 2025 07:04:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5dcfa142-d9c7-11f0-9cce-f158ae23cfc8
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org,
	"David Hildenbrand (Red Hat)" <david@kernel.org>
Subject: [PATCH v6 10/14] arm64: mm: replace TIF_LAZY_MMU with is_lazy_mmu_mode_active()
Date: Mon, 15 Dec 2025 15:03:19 +0000
Message-ID: <20251215150323.2218608-11-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251215150323.2218608-1-kevin.brodsky@arm.com>
References: <20251215150323.2218608-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The generic lazy_mmu layer now tracks whether a task is in lazy MMU
mode. As a result we no longer need a TIF flag for that purpose -
let's use the new is_lazy_mmu_mode_active() helper instead.

The explicit check for in_interrupt() is no longer necessary either
as is_lazy_mmu_mode_active() always returns false in interrupt
context.

Acked-by: David Hildenbrand (Red Hat) <david@kernel.org>
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/arm64/include/asm/pgtable.h     | 19 +++----------------
 arch/arm64/include/asm/thread_info.h |  3 +--
 2 files changed, 4 insertions(+), 18 deletions(-)

diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
index 7f528c36d53c..445e18e92221 100644
--- a/arch/arm64/include/asm/pgtable.h
+++ b/arch/arm64/include/asm/pgtable.h
@@ -62,28 +62,16 @@ static inline void emit_pte_barriers(void)
 
 static inline void queue_pte_barriers(void)
 {
-	unsigned long flags;
-
-	if (in_interrupt()) {
-		emit_pte_barriers();
-		return;
-	}
-
-	flags = read_thread_flags();
-
-	if (flags & BIT(TIF_LAZY_MMU)) {
+	if (is_lazy_mmu_mode_active()) {
 		/* Avoid the atomic op if already set. */
-		if (!(flags & BIT(TIF_LAZY_MMU_PENDING)))
+		if (!test_thread_flag(TIF_LAZY_MMU_PENDING))
 			set_thread_flag(TIF_LAZY_MMU_PENDING);
 	} else {
 		emit_pte_barriers();
 	}
 }
 
-static inline void arch_enter_lazy_mmu_mode(void)
-{
-	set_thread_flag(TIF_LAZY_MMU);
-}
+static inline void arch_enter_lazy_mmu_mode(void) {}
 
 static inline void arch_flush_lazy_mmu_mode(void)
 {
@@ -94,7 +82,6 @@ static inline void arch_flush_lazy_mmu_mode(void)
 static inline void arch_leave_lazy_mmu_mode(void)
 {
 	arch_flush_lazy_mmu_mode();
-	clear_thread_flag(TIF_LAZY_MMU);
 }
 
 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
diff --git a/arch/arm64/include/asm/thread_info.h b/arch/arm64/include/asm/thread_info.h
index a803b887b0b4..e7cd017b07c8 100644
--- a/arch/arm64/include/asm/thread_info.h
+++ b/arch/arm64/include/asm/thread_info.h
@@ -84,8 +84,7 @@ void arch_setup_new_exec(void);
 #define TIF_SME_VL_INHERIT	28	/* Inherit SME vl_onexec across exec */
 #define TIF_KERNEL_FPSTATE	29	/* Task is in a kernel mode FPSIMD section */
 #define TIF_TSC_SIGSEGV		30	/* SIGSEGV on counter-timer access */
-#define TIF_LAZY_MMU		31	/* Task in lazy mmu mode */
-#define TIF_LAZY_MMU_PENDING	32	/* Ops pending for lazy mmu mode exit */
+#define TIF_LAZY_MMU_PENDING	31	/* Ops pending for lazy mmu mode exit */
 
 #define _TIF_SIGPENDING		(1 << TIF_SIGPENDING)
 #define _TIF_NEED_RESCHED	(1 << TIF_NEED_RESCHED)
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 15:07:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 15:07:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187336.1508784 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVAAb-0000hV-6e; Mon, 15 Dec 2025 15:07:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187336.1508784; Mon, 15 Dec 2025 15:07:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVAAb-0000hL-3z; Mon, 15 Dec 2025 15:07:29 +0000
Received: by outflank-mailman (input) for mailman id 1187336;
 Mon, 15 Dec 2025 15:07:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lpeD=6V=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vVA7v-0004yw-IL
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 15:04:43 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 61200597-d9c7-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 16:04:40 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 5B0D916A3;
 Mon, 15 Dec 2025 07:04:32 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3A02B3F73B;
 Mon, 15 Dec 2025 07:04:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61200597-d9c7-11f0-9cce-f158ae23cfc8
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v6 11/14] powerpc/mm: replace batch->active with is_lazy_mmu_mode_active()
Date: Mon, 15 Dec 2025 15:03:20 +0000
Message-ID: <20251215150323.2218608-12-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251215150323.2218608-1-kevin.brodsky@arm.com>
References: <20251215150323.2218608-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

A per-CPU batch struct is activated when entering lazy MMU mode; its
lifetime is the same as the lazy MMU section (it is deactivated when
leaving the mode). Preemption is disabled in that interval to ensure
that the per-CPU reference remains valid.

The generic lazy_mmu layer now tracks whether a task is in lazy MMU
mode. We can therefore use the generic helper
is_lazy_mmu_mode_active() to tell whether a batch struct is active
instead of tracking it explicitly.

Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com>
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/powerpc/include/asm/book3s/64/tlbflush-hash.h | 9 ---------
 arch/powerpc/mm/book3s64/hash_tlb.c                | 2 +-
 2 files changed, 1 insertion(+), 10 deletions(-)

diff --git a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
index 565c1b7c3eae..6cc9abcd7b3d 100644
--- a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
+++ b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
@@ -12,7 +12,6 @@
 #define PPC64_TLB_BATCH_NR 192
 
 struct ppc64_tlb_batch {
-	int			active;
 	unsigned long		index;
 	struct mm_struct	*mm;
 	real_pte_t		pte[PPC64_TLB_BATCH_NR];
@@ -26,8 +25,6 @@ extern void __flush_tlb_pending(struct ppc64_tlb_batch *batch);
 
 static inline void arch_enter_lazy_mmu_mode(void)
 {
-	struct ppc64_tlb_batch *batch;
-
 	if (radix_enabled())
 		return;
 	/*
@@ -35,8 +32,6 @@ static inline void arch_enter_lazy_mmu_mode(void)
 	 * operating on kernel page tables.
 	 */
 	preempt_disable();
-	batch = this_cpu_ptr(&ppc64_tlb_batch);
-	batch->active = 1;
 }
 
 static inline void arch_flush_lazy_mmu_mode(void)
@@ -53,14 +48,10 @@ static inline void arch_flush_lazy_mmu_mode(void)
 
 static inline void arch_leave_lazy_mmu_mode(void)
 {
-	struct ppc64_tlb_batch *batch;
-
 	if (radix_enabled())
 		return;
-	batch = this_cpu_ptr(&ppc64_tlb_batch);
 
 	arch_flush_lazy_mmu_mode();
-	batch->active = 0;
 	preempt_enable();
 }
 
diff --git a/arch/powerpc/mm/book3s64/hash_tlb.c b/arch/powerpc/mm/book3s64/hash_tlb.c
index 787f7a0e27f0..fbdeb8981ae7 100644
--- a/arch/powerpc/mm/book3s64/hash_tlb.c
+++ b/arch/powerpc/mm/book3s64/hash_tlb.c
@@ -100,7 +100,7 @@ void hpte_need_flush(struct mm_struct *mm, unsigned long addr,
 	 * Check if we have an active batch on this CPU. If not, just
 	 * flush now and return.
 	 */
-	if (!batch->active) {
+	if (!is_lazy_mmu_mode_active()) {
 		flush_hash_page(vpn, rpte, psize, ssize, mm_is_thread_local(mm));
 		put_cpu_var(ppc64_tlb_batch);
 		return;
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 15:07:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 15:07:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187354.1508793 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVAAs-0001Rg-DI; Mon, 15 Dec 2025 15:07:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187354.1508793; Mon, 15 Dec 2025 15:07:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVAAs-0001RZ-AS; Mon, 15 Dec 2025 15:07:46 +0000
Received: by outflank-mailman (input) for mailman id 1187354;
 Mon, 15 Dec 2025 15:07:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lpeD=6V=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vVA7j-0004yw-52
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 15:04:31 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 5a5f0f8b-d9c7-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 16:04:28 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 0C467169C;
 Mon, 15 Dec 2025 07:04:21 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C3A423F73B;
 Mon, 15 Dec 2025 07:04:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5a5f0f8b-d9c7-11f0-9cce-f158ae23cfc8
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org,
	"David Hildenbrand (Red Hat)" <david@kernel.org>
Subject: [PATCH v6 09/14] mm: enable lazy_mmu sections to nest
Date: Mon, 15 Dec 2025 15:03:18 +0000
Message-ID: <20251215150323.2218608-10-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251215150323.2218608-1-kevin.brodsky@arm.com>
References: <20251215150323.2218608-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Despite recent efforts to prevent lazy_mmu sections from nesting, it
remains difficult to ensure that it never occurs - and in fact it
does occur on arm64 in certain situations (CONFIG_DEBUG_PAGEALLOC).
Commit 1ef3095b1405 ("arm64/mm: Permit lazy_mmu_mode to be nested")
made nesting tolerable on arm64, but without truly supporting it:
the inner call to leave() disables the batching optimisation before
the outer section ends.

This patch actually enables lazy_mmu sections to nest by tracking
the nesting level in task_struct, in a similar fashion to e.g.
pagefault_{enable,disable}(). This is fully handled by the generic
lazy_mmu helpers that were recently introduced.

lazy_mmu sections were not initially intended to nest, so we need to
clarify the semantics w.r.t. the arch_*_lazy_mmu_mode() callbacks.
This patch takes the following approach:

* The outermost calls to lazy_mmu_mode_{enable,disable}() trigger
  calls to arch_{enter,leave}_lazy_mmu_mode() - this is unchanged.

* Nested calls to lazy_mmu_mode_{enable,disable}() are not forwarded
  to the arch via arch_{enter,leave} - lazy MMU remains enabled so
  the assumption is that these callbacks are not relevant. However,
  existing code may rely on a call to disable() to flush any batched
  state, regardless of nesting. arch_flush_lazy_mmu_mode() is
  therefore called in that situation.

A separate interface was recently introduced to temporarily pause
the lazy MMU mode: lazy_mmu_mode_{pause,resume}(). pause() fully
exits the mode *regardless of the nesting level*, and resume()
restores the mode at the same nesting level.

pause()/resume() are themselves allowed to nest, so we actually
store two nesting levels in task_struct: enable_count and
pause_count. A new helper is_lazy_mmu_mode_active() is introduced to
determine whether we are currently in lazy MMU mode; this will be
used in subsequent patches to replace the various ways arch's
currently track whether the mode is enabled.

In summary (enable/pause represent the values *after* the call):

lazy_mmu_mode_enable()		-> arch_enter()	    enable=1 pause=0
    lazy_mmu_mode_enable()	-> ø		    enable=2 pause=0
	lazy_mmu_mode_pause()	-> arch_leave()     enable=2 pause=1
	lazy_mmu_mode_resume()	-> arch_enter()     enable=2 pause=0
    lazy_mmu_mode_disable()	-> arch_flush()     enable=1 pause=0
lazy_mmu_mode_disable()		-> arch_leave()     enable=0 pause=0

Note: is_lazy_mmu_mode_active() is added to <linux/sched.h> to allow
arch headers included by <linux/pgtable.h> to use it.

Acked-by: David Hildenbrand (Red Hat) <david@kernel.org>
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/arm64/include/asm/pgtable.h |  12 ----
 include/linux/mm_types_task.h    |   5 ++
 include/linux/pgtable.h          | 114 +++++++++++++++++++++++++++++--
 include/linux/sched.h            |  45 ++++++++++++
 4 files changed, 157 insertions(+), 19 deletions(-)

diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
index bf9178902bdb..7f528c36d53c 100644
--- a/arch/arm64/include/asm/pgtable.h
+++ b/arch/arm64/include/asm/pgtable.h
@@ -82,18 +82,6 @@ static inline void queue_pte_barriers(void)
 
 static inline void arch_enter_lazy_mmu_mode(void)
 {
-	/*
-	 * lazy_mmu_mode is not supposed to permit nesting. But in practice this
-	 * does happen with CONFIG_DEBUG_PAGEALLOC, where a page allocation
-	 * inside a lazy_mmu_mode section (such as zap_pte_range()) will change
-	 * permissions on the linear map with apply_to_page_range(), which
-	 * re-enters lazy_mmu_mode. So we tolerate nesting in our
-	 * implementation. The first call to arch_leave_lazy_mmu_mode() will
-	 * flush and clear the flag such that the remainder of the work in the
-	 * outer nest behaves as if outside of lazy mmu mode. This is safe and
-	 * keeps tracking simple.
-	 */
-
 	set_thread_flag(TIF_LAZY_MMU);
 }
 
diff --git a/include/linux/mm_types_task.h b/include/linux/mm_types_task.h
index a82aa80c0ba4..11bf319d78ec 100644
--- a/include/linux/mm_types_task.h
+++ b/include/linux/mm_types_task.h
@@ -88,4 +88,9 @@ struct tlbflush_unmap_batch {
 #endif
 };
 
+struct lazy_mmu_state {
+	u8 enable_count;
+	u8 pause_count;
+};
+
 #endif /* _LINUX_MM_TYPES_TASK_H */
diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
index dddde6873d1e..2f0dd3a4ace1 100644
--- a/include/linux/pgtable.h
+++ b/include/linux/pgtable.h
@@ -236,39 +236,139 @@ static inline int pmd_dirty(pmd_t pmd)
  * The mode is disabled in interrupt context and calls to the lazy_mmu API have
  * no effect.
  *
- * Nesting is not permitted.
+ * The lazy MMU mode is enabled for a given block of code using:
+ *
+ *   lazy_mmu_mode_enable();
+ *   <code>
+ *   lazy_mmu_mode_disable();
+ *
+ * Nesting is permitted: <code> may itself use an enable()/disable() pair.
+ * A nested call to enable() has no functional effect; however disable() causes
+ * any batched architectural state to be flushed regardless of nesting. After a
+ * call to disable(), the caller can therefore rely on all previous page table
+ * modifications to have taken effect, but the lazy MMU mode may still be
+ * enabled.
+ *
+ * In certain cases, it may be desirable to temporarily pause the lazy MMU mode.
+ * This can be done using:
+ *
+ *   lazy_mmu_mode_pause();
+ *   <code>
+ *   lazy_mmu_mode_resume();
+ *
+ * pause() ensures that the mode is exited regardless of the nesting level;
+ * resume() re-enters the mode at the same nesting level. Any call to the
+ * lazy_mmu_mode_* API between those two calls has no effect. In particular,
+ * this means that pause()/resume() pairs may nest.
+ *
+ * is_lazy_mmu_mode_active() can be used to check whether the lazy MMU mode is
+ * currently enabled.
  */
 #ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
+/**
+ * lazy_mmu_mode_enable() - Enable the lazy MMU mode.
+ *
+ * Enters a new lazy MMU mode section; if the mode was not already enabled,
+ * enables it and calls arch_enter_lazy_mmu_mode().
+ *
+ * Must be paired with a call to lazy_mmu_mode_disable().
+ *
+ * Has no effect if called:
+ * - While paused - see lazy_mmu_mode_pause()
+ * - In interrupt context
+ */
 static inline void lazy_mmu_mode_enable(void)
 {
-	if (in_interrupt())
+	struct lazy_mmu_state *state = &current->lazy_mmu_state;
+
+	if (in_interrupt() || state->pause_count > 0)
 		return;
 
-	arch_enter_lazy_mmu_mode();
+	VM_WARN_ON_ONCE(state->enable_count == U8_MAX);
+
+	if (state->enable_count++ == 0)
+		arch_enter_lazy_mmu_mode();
 }
 
+/**
+ * lazy_mmu_mode_disable() - Disable the lazy MMU mode.
+ *
+ * Exits the current lazy MMU mode section. If it is the outermost section,
+ * disables the mode and calls arch_leave_lazy_mmu_mode(). Otherwise (nested
+ * section), calls arch_flush_lazy_mmu_mode().
+ *
+ * Must match a call to lazy_mmu_mode_enable().
+ *
+ * Has no effect if called:
+ * - While paused - see lazy_mmu_mode_pause()
+ * - In interrupt context
+ */
 static inline void lazy_mmu_mode_disable(void)
 {
-	if (in_interrupt())
+	struct lazy_mmu_state *state = &current->lazy_mmu_state;
+
+	if (in_interrupt() || state->pause_count > 0)
 		return;
 
-	arch_leave_lazy_mmu_mode();
+	VM_WARN_ON_ONCE(state->enable_count == 0);
+
+	if (--state->enable_count == 0)
+		arch_leave_lazy_mmu_mode();
+	else /* Exiting a nested section */
+		arch_flush_lazy_mmu_mode();
+
 }
 
+/**
+ * lazy_mmu_mode_pause() - Pause the lazy MMU mode.
+ *
+ * Pauses the lazy MMU mode; if it is currently active, disables it and calls
+ * arch_leave_lazy_mmu_mode().
+ *
+ * Must be paired with a call to lazy_mmu_mode_resume(). Calls to the
+ * lazy_mmu_mode_* API have no effect until the matching resume() call.
+ *
+ * Has no effect if called:
+ * - While paused (inside another pause()/resume() pair)
+ * - In interrupt context
+ */
 static inline void lazy_mmu_mode_pause(void)
 {
+	struct lazy_mmu_state *state = &current->lazy_mmu_state;
+
 	if (in_interrupt())
 		return;
 
-	arch_leave_lazy_mmu_mode();
+	VM_WARN_ON_ONCE(state->pause_count == U8_MAX);
+
+	if (state->pause_count++ == 0 && state->enable_count > 0)
+		arch_leave_lazy_mmu_mode();
 }
 
+/**
+ * lazy_mmu_mode_resume() - Resume the lazy MMU mode.
+ *
+ * Resumes the lazy MMU mode; if it was active at the point where the matching
+ * call to lazy_mmu_mode_pause() was made, re-enables it and calls
+ * arch_enter_lazy_mmu_mode().
+ *
+ * Must match a call to lazy_mmu_mode_pause().
+ *
+ * Has no effect if called:
+ * - While paused (inside another pause()/resume() pair)
+ * - In interrupt context
+ */
 static inline void lazy_mmu_mode_resume(void)
 {
+	struct lazy_mmu_state *state = &current->lazy_mmu_state;
+
 	if (in_interrupt())
 		return;
 
-	arch_enter_lazy_mmu_mode();
+	VM_WARN_ON_ONCE(state->pause_count == 0);
+
+	if (--state->pause_count == 0 && state->enable_count > 0)
+		arch_enter_lazy_mmu_mode();
 }
 #else
 static inline void lazy_mmu_mode_enable(void) {}
diff --git a/include/linux/sched.h b/include/linux/sched.h
index d395f2810fac..f2fc6584c790 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1419,6 +1419,10 @@ struct task_struct {
 
 	struct page_frag		task_frag;
 
+#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
+	struct lazy_mmu_state		lazy_mmu_state;
+#endif
+
 #ifdef CONFIG_TASK_DELAY_ACCT
 	struct task_delay_info		*delays;
 #endif
@@ -1702,6 +1706,47 @@ static inline char task_state_to_char(struct task_struct *tsk)
 	return task_index_to_char(task_state_index(tsk));
 }
 
+#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
+/**
+ * __task_lazy_mmu_mode_active() - Test the lazy MMU mode state for a task.
+ * @tsk: The task to check.
+ *
+ * Test whether @tsk has its lazy MMU mode state set to active (i.e. enabled
+ * and not paused).
+ *
+ * This function only considers the state saved in task_struct; to test whether
+ * current actually is in lazy MMU mode, is_lazy_mmu_mode_active() should be
+ * used instead.
+ *
+ * This function is intended for architectures that implement the lazy MMU
+ * mode; it must not be called from generic code.
+ */
+static inline bool __task_lazy_mmu_mode_active(struct task_struct *tsk)
+{
+	struct lazy_mmu_state *state = &tsk->lazy_mmu_state;
+
+	return state->enable_count > 0 && state->pause_count == 0;
+}
+
+/**
+ * is_lazy_mmu_mode_active() - Test whether we are currently in lazy MMU mode.
+ *
+ * Test whether the current context is in lazy MMU mode. This is true if both:
+ * 1. We are not in interrupt context
+ * 2. Lazy MMU mode is active for the current task
+ *
+ * This function is intended for architectures that implement the lazy MMU
+ * mode; it must not be called from generic code.
+ */
+static inline bool is_lazy_mmu_mode_active(void)
+{
+	if (in_interrupt())
+		return false;
+
+	return __task_lazy_mmu_mode_active(current);
+}
+#endif
+
 extern struct pid *cad_pid;
 
 /*
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 15:08:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 15:08:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187371.1508804 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVAB9-000299-RH; Mon, 15 Dec 2025 15:08:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187371.1508804; Mon, 15 Dec 2025 15:08:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVAB9-00028y-NW; Mon, 15 Dec 2025 15:08:03 +0000
Received: by outflank-mailman (input) for mailman id 1187371;
 Mon, 15 Dec 2025 15:08:02 +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
 <SRS0=lpeD=6V=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vVA80-0003s4-Bb
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 15:04:48 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 6485c11d-d9c7-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 16:04:45 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 12E5216F2;
 Mon, 15 Dec 2025 07:04:38 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id CA2463F73B;
 Mon, 15 Dec 2025 07:04:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6485c11d-d9c7-11f0-b15b-2bf370ae4941
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org,
	"David Hildenbrand (Red Hat)" <david@kernel.org>
Subject: [PATCH v6 12/14] sparc/mm: replace batch->active with is_lazy_mmu_mode_active()
Date: Mon, 15 Dec 2025 15:03:21 +0000
Message-ID: <20251215150323.2218608-13-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251215150323.2218608-1-kevin.brodsky@arm.com>
References: <20251215150323.2218608-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

A per-CPU batch struct is activated when entering lazy MMU mode; its
lifetime is the same as the lazy MMU section (it is deactivated when
leaving the mode). Preemption is disabled in that interval to ensure
that the per-CPU reference remains valid.

The generic lazy_mmu layer now tracks whether a task is in lazy MMU
mode. We can therefore use the generic helper
is_lazy_mmu_mode_active() to tell whether a batch struct is active
instead of tracking it explicitly.

Acked-by: David Hildenbrand (Red Hat) <david@kernel.org>
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/sparc/include/asm/tlbflush_64.h | 1 -
 arch/sparc/mm/tlb.c                  | 9 +--------
 2 files changed, 1 insertion(+), 9 deletions(-)

diff --git a/arch/sparc/include/asm/tlbflush_64.h b/arch/sparc/include/asm/tlbflush_64.h
index 4e1036728e2f..6133306ba59a 100644
--- a/arch/sparc/include/asm/tlbflush_64.h
+++ b/arch/sparc/include/asm/tlbflush_64.h
@@ -12,7 +12,6 @@ struct tlb_batch {
 	unsigned int hugepage_shift;
 	struct mm_struct *mm;
 	unsigned long tlb_nr;
-	unsigned long active;
 	unsigned long vaddrs[TLB_BATCH_NR];
 };
 
diff --git a/arch/sparc/mm/tlb.c b/arch/sparc/mm/tlb.c
index 7b5dfcdb1243..3a852071d260 100644
--- a/arch/sparc/mm/tlb.c
+++ b/arch/sparc/mm/tlb.c
@@ -52,11 +52,7 @@ void flush_tlb_pending(void)
 
 void arch_enter_lazy_mmu_mode(void)
 {
-	struct tlb_batch *tb;
-
 	preempt_disable();
-	tb = this_cpu_ptr(&tlb_batch);
-	tb->active = 1;
 }
 
 void arch_flush_lazy_mmu_mode(void)
@@ -69,10 +65,7 @@ void arch_flush_lazy_mmu_mode(void)
 
 void arch_leave_lazy_mmu_mode(void)
 {
-	struct tlb_batch *tb = this_cpu_ptr(&tlb_batch);
-
 	arch_flush_lazy_mmu_mode();
-	tb->active = 0;
 	preempt_enable();
 }
 
@@ -93,7 +86,7 @@ static void tlb_batch_add_one(struct mm_struct *mm, unsigned long vaddr,
 		nr = 0;
 	}
 
-	if (!tb->active) {
+	if (!is_lazy_mmu_mode_active()) {
 		flush_tsb_user_page(mm, vaddr, hugepage_shift);
 		global_flush_tlb_page(mm, vaddr);
 		goto out;
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 15:08:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 15:08:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187375.1508809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVABA-0002Bf-53; Mon, 15 Dec 2025 15:08:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187375.1508809; Mon, 15 Dec 2025 15:08:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVAB9-0002Am-VD; Mon, 15 Dec 2025 15:08:03 +0000
Received: by outflank-mailman (input) for mailman id 1187375;
 Mon, 15 Dec 2025 15:08:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lpeD=6V=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vVA85-0004yw-W7
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 15:04:54 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 67f3d97b-d9c7-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 16:04:51 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id C3DCB16F3;
 Mon, 15 Dec 2025 07:04:43 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 858633F73B;
 Mon, 15 Dec 2025 07:04:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 67f3d97b-d9c7-11f0-9cce-f158ae23cfc8
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org,
	"David Hildenbrand (Red Hat)" <david@kernel.org>
Subject: [PATCH v6 13/14] x86/xen: use lazy_mmu_state when context-switching
Date: Mon, 15 Dec 2025 15:03:22 +0000
Message-ID: <20251215150323.2218608-14-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251215150323.2218608-1-kevin.brodsky@arm.com>
References: <20251215150323.2218608-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

We currently set a TIF flag when scheduling out a task that is in
lazy MMU mode, in order to restore it when the task is scheduled
again.

The generic lazy_mmu layer now tracks whether a task is in lazy MMU
mode in task_struct::lazy_mmu_state. We can therefore check that
state when switching to the new task, instead of using a separate
TIF flag.

Acked-by: David Hildenbrand (Red Hat) <david@kernel.org>
Reviewed-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/x86/include/asm/thread_info.h | 4 +---
 arch/x86/xen/enlighten_pv.c        | 3 +--
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h
index e71e0e8362ed..0067684afb5b 100644
--- a/arch/x86/include/asm/thread_info.h
+++ b/arch/x86/include/asm/thread_info.h
@@ -100,8 +100,7 @@ struct thread_info {
 #define TIF_FORCED_TF		24	/* true if TF in eflags artificially */
 #define TIF_SINGLESTEP		25	/* reenable singlestep on user return*/
 #define TIF_BLOCKSTEP		26	/* set when we want DEBUGCTLMSR_BTF */
-#define TIF_LAZY_MMU_UPDATES	27	/* task is updating the mmu lazily */
-#define TIF_ADDR32		28	/* 32-bit address space on 64 bits */
+#define TIF_ADDR32		27	/* 32-bit address space on 64 bits */
 
 #define _TIF_SSBD		BIT(TIF_SSBD)
 #define _TIF_SPEC_IB		BIT(TIF_SPEC_IB)
@@ -114,7 +113,6 @@ struct thread_info {
 #define _TIF_FORCED_TF		BIT(TIF_FORCED_TF)
 #define _TIF_BLOCKSTEP		BIT(TIF_BLOCKSTEP)
 #define _TIF_SINGLESTEP		BIT(TIF_SINGLESTEP)
-#define _TIF_LAZY_MMU_UPDATES	BIT(TIF_LAZY_MMU_UPDATES)
 #define _TIF_ADDR32		BIT(TIF_ADDR32)
 
 /* flags to check in __switch_to() */
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 4806cc28d7ca..98dbb6a61087 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -426,7 +426,6 @@ static void xen_start_context_switch(struct task_struct *prev)
 
 	if (this_cpu_read(xen_lazy_mode) == XEN_LAZY_MMU) {
 		arch_leave_lazy_mmu_mode();
-		set_ti_thread_flag(task_thread_info(prev), TIF_LAZY_MMU_UPDATES);
 	}
 	enter_lazy(XEN_LAZY_CPU);
 }
@@ -437,7 +436,7 @@ static void xen_end_context_switch(struct task_struct *next)
 
 	xen_mc_flush();
 	leave_lazy(XEN_LAZY_CPU);
-	if (test_and_clear_ti_thread_flag(task_thread_info(next), TIF_LAZY_MMU_UPDATES))
+	if (__task_lazy_mmu_mode_active(next))
 		arch_enter_lazy_mmu_mode();
 }
 
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 15:33:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 15:33:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187435.1508824 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVAZD-0007Sg-Rn; Mon, 15 Dec 2025 15:32:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187435.1508824; Mon, 15 Dec 2025 15:32:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVAZD-0007SZ-PA; Mon, 15 Dec 2025 15:32:55 +0000
Received: by outflank-mailman (input) for mailman id 1187435;
 Mon, 15 Dec 2025 15:32:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=53Et=6V=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vVAZD-0007SQ-8F
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 15:32:55 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 506df4cb-d9cb-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 16:32:50 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4779a637712so24361045e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 07:32:50 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-430f6a42c8csm12367656f8f.16.2025.12.15.07.32.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 15 Dec 2025 07:32:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 506df4cb-d9cb-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765812769; x=1766417569; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=tWfExaDqsghC/g9mOl/LeYRBxy2Sr9vZUZj145GUV9I=;
        b=Jss7NUyXdZbIIgUvEFFIF87isYrYm0MRlmJKFkHCjF/NxvDnccnNYfb2sAQBvrf7AT
         G3r+LgUgGd4fFAi2XU/YhNbzUskPSazJKcF5BQ+iW24YOOzj4u8CLITu6JmEt+iVyKyp
         31bBgX4nYSUklKMCBgp6/uA/ZrmJLwzBkVEB8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765812769; x=1766417569;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tWfExaDqsghC/g9mOl/LeYRBxy2Sr9vZUZj145GUV9I=;
        b=NdmiNzATA0/ierQQVXuInYYQdJrQ3Vs9EgWrM4kQeSTCzM8y1ltHBCODe0QkqIMgo8
         VAK0uavvkIqwTE+R4+D5Wm64U83io7vWwQMaUtYF0cMiCxUNa6ceXr8DfqKBj11LmQBf
         ZG/Cs79Vrg5VvCjKKTyRwqpBnkIuSUDrwr4C+PRaa47/896uopzWByUdy/G2C/fQ4Ip9
         lIJlhTpqYoLXsvxBe3Y8P87KrhrLAMiopTGmus4W5If0exN7jDFX9pSSTjey2IHeSYW1
         K4gie8U5HEpLoQSn/PHUMCopJnH/AhnEBq8/XMi6OMNqKZfTeWSR5MGdC10frLxGAmBw
         mTSQ==
X-Gm-Message-State: AOJu0Yxea+ftiU6sqx7EyJ6Yvwgd1+jleUX8H18U7w4TpPd50poIIZn5
	v1WI5svaNiA9Tvz3Pez0HicRveGzHvJe+l7qNGtKq1coJaIBAykNuDbAJkHjTcVjcoPtUn3U52w
	62rLG
X-Gm-Gg: AY/fxX62Bs50er2fsuQlOVrVv2l+hPqwMhK1n3FHAlVXQKVKEw7b28r9vLp+6+bLCO6
	G1eW0EDY3LU1y+dH2yq++usieSbamQO3MQgNlx+rnieKjVcDDUxJP73WgkUxpenJJsmzNXXt6nv
	fsQxg1R4yoO3+iudZDpYzd7mE29iPK3Sw0uY6vhCJgmeSe3j5Z7gEQfZamwqlk4yyOqAUtrp/fw
	OASRdc0X55LhgVBGEhIeYLGj9wxwKXNufeP3jA6RxYAHdP0cSuITeRp8/D378De6CN95hIut10W
	M0PQejv2NttE9q6iMEyD+CE6SGGHt/flnAI0qFH4GKJU1JU4PprY4g2XA1R0df7e9KvP7pgeccy
	iAW6GxVF9LUtzq/DVBiDD4+fsCREp8cTgXErqlAkp5suQv+my7Sl33YvK10fvQxmXP6esqx62cN
	fScXKVMppDOEkW3uybyb6g1x+23TQ+JahW3TlkTuMjYF74iY848YbHLJKZhFJn6w==
X-Google-Smtp-Source: AGHT+IHiZNUCGoXP38X0ID+QXAPimIRxmAwySmxrbkelNr7NNi1ANhIHMy2ZDYXh2xRrOjimFLFUag==
X-Received: by 2002:a05:600c:1994:b0:477:952d:fc00 with SMTP id 5b1f17b1804b1-47a8f8c0a28mr109337795e9.12.1765812768446;
        Mon, 15 Dec 2025 07:32:48 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2] x86/ucode: Adjust parse_ucode() to match other list handling
Date: Mon, 15 Dec 2025 15:32:45 +0000
Message-Id: <20251215153245.2675388-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

parse_ucode() is abnormal compared to similar parsing elsewhere in Xen.

Invert the ucode_mod_forced check with respect to the "scan" and integer
handling, so we can warn the user when we've elected to ignore the parameters,
and yield -EINVAL for any unrecognised list element.

Rewrite the ucode= command line docs for clarity.

No practical change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

v2:
 * Rebase by a year.
 * Explain how to use scan= for EFI.
---
 docs/misc/xen-command-line.pandoc | 66 ++++++++++++++++++++-----------
 xen/arch/x86/cpu/microcode/core.c | 22 +++++++----
 2 files changed, 57 insertions(+), 31 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index e92b6d55b556..2b4f80c234e1 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2752,34 +2752,52 @@ performance.
    Alternatively, selecting `tsx=1` will re-enable TSX at the users own risk.
 
 ### ucode
-> `= List of [ <integer> | scan=<bool>, nmi=<bool>, digest-check=<bool> ]`
+> `= List of [ <integer>, scan=<bool>, nmi=<bool>, digest-check=<bool> ]`
 
     Applicability: x86
     Default: `scan` is selectable via Kconfig, `nmi,digest-check`
 
-Controls for CPU microcode loading. For early loading, this parameter can
-specify how and where to find the microcode update blob. For late loading,
-this parameter specifies if the update happens within a NMI handler.
-
-'integer' specifies the CPU microcode update blob module index. When positive,
-this specifies the n-th module (in the GrUB entry, zero based) to be used
-for updating CPU micrcode. When negative, counting starts at the end of
-the modules in the GrUB entry (so with the blob commonly being last,
-one could specify `ucode=-1`). Note that the value of zero is not valid
-here (entry zero, i.e. the first module, is always the Dom0 kernel
-image). Note further that use of this option has an unspecified effect
-when used with xen.efi (there the concept of modules doesn't exist, and
-the blob gets specified via the `ucode=<filename>` config file/section
-entry; see [EFI configuration file description](efi.html)).
-
-'scan' instructs the hypervisor to scan the multiboot images for an cpio
-image that contains microcode. Depending on the platform the blob with the
-microcode in the cpio name space must be:
-  - on Intel: kernel/x86/microcode/GenuineIntel.bin
-  - on AMD  : kernel/x86/microcode/AuthenticAMD.bin
-When using xen.efi, the `ucode=<filename>` config file setting takes
-precedence over `scan`. The default value for `scan` is set with
-`CONFIG_UCODE_SCAN_DEFAULT`.
+Controls for CPU microcode loading.
+
+In order to load microcode at boot, Xen needs to find a suitable update
+amongst the modules provided by the bootloader.  Two kinds of microcode update
+are supported:
+
+ 1. Raw microcode containers.  The format of the container is CPU vendor
+    specific.
+
+ 2. CPIO archive.  This is Linux's preferred mechanism, and involves having
+    the raw containers expressed as files
+    (e.g. `kernel/x86/microcode/{GenuineIntel,AuthenticAMD}.bin`) in a CPIO
+    archive, typically prepended to the initrd.
+
+The `<integer>` and `scan=<bool>` options are mutually exclusive and select
+between these two options.  Further restrictions exist for booting xen.efi
+(see below).
+
+ *  The `<integer>` option nominates a specific multiboot module as a raw
+    container (option 1 above).  Valid options start from 1 (module 0 is
+    always the dom0 kernel).  A negative number may be used, and will
+    back-reference from the end of the module list.  i.e. `ucode=-1` will
+    nominate the final multiboot module.
+
+ *  The `scan=` option causes Xen to search all modules in order to find the
+    first CPIO archive containing the appropriate file (option 2 above).  The
+    default for this option can be chosen at build time via
+    `CONFIG_UCODE_SCAN_DEFAULT`.
+
+When booting xen.efi natively, the concept of multiboot modules doesn't exist.
+Instead:
+
+ *  In the [EFI configuration file](efi.html), `ucode=<filename>` can be used
+    to identify a file as a raw container (option 1 above).  Use of this
+    mechanism will disable both `<integer>` and `scan=`.
+
+ *  If `ucode=<filename>` in the EFI configuration file is not used, it is
+    still possible to use `scan=` to search all modules.  The order of module
+    is undefined, but there is only a single `ramdisk=<filename>`
+    configuration option available.  The use of `<integer>` for xen.efi is
+    always undefined.
 
 'nmi' determines late loading is performed in NMI handler or just in
 stop_machine context. In NMI handler, even NMIs are blocked, which is
diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index fe47c3a6c18d..87ab623bf9e6 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -115,11 +115,6 @@ void __init microcode_set_module(unsigned int idx)
     ucode_mod_forced = 1;
 }
 
-/*
- * The format is '[<integer>|scan=<bool>, nmi=<bool>]'. Both options are
- * optional. If the EFI has forced which of the multiboot payloads is to be
- * used, only nmi=<bool> is parsed.
- */
 static int __init cf_check parse_ucode(const char *s)
 {
     const char *ss;
@@ -134,13 +129,24 @@ static int __init cf_check parse_ucode(const char *s)
             ucode_in_nmi = val;
         else if ( (val = parse_boolean("digest-check", s, ss)) >= 0 )
             opt_digest_check = val;
-        else if ( !ucode_mod_forced ) /* Not forced by EFI */
+        else if ( (val = parse_boolean("scan", s, ss)) >= 0 )
         {
-            if ( (val = parse_boolean("scan", s, ss)) >= 0 )
+            if ( ucode_mod_forced )
+                printk(XENLOG_WARNING
+                       "Ignoring ucode=%.*s setting; overridden by EFI\n",
+                       (int)(ss - s), s);
+            else
             {
                 opt_scan = val;
                 opt_mod_idx = 0;
             }
+        }
+        else if ( isdigit(s[0]) || s[0] == '-' )
+        {
+            if ( ucode_mod_forced )
+                printk(XENLOG_WARNING
+                       "Ignoring ucode=%.*s setting; overridden by EFI\n",
+                       (int)(ss - s), s);
             else
             {
                 const char *q;
@@ -155,6 +161,8 @@ static int __init cf_check parse_ucode(const char *s)
                     opt_scan = false;
             }
         }
+        else
+            rc = -EINVAL;
 
         s = ss + 1;
     } while ( *ss );
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 16:37:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 16:37:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187445.1508834 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVBZY-0007Ek-9u; Mon, 15 Dec 2025 16:37:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187445.1508834; Mon, 15 Dec 2025 16:37:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVBZY-0007Ed-69; Mon, 15 Dec 2025 16:37:20 +0000
Received: by outflank-mailman (input) for mailman id 1187445;
 Mon, 15 Dec 2025 16:37:18 +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 <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vVBZW-0007ET-Lq
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 16:37:18 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 50ced49f-d9d4-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 17:37:16 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-42f9ece6387so1481942f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 08:37:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-430f984a268sm10384018f8f.1.2025.12.15.08.37.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 08:37:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 50ced49f-d9d4-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765816635; x=1766421435; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=s6kU7Hc5AETBlewka46/PlUa4wWZ7ukkAJTBWrTSqSQ=;
        b=cRM8A+3HikN61aSzIMOU5tBEg2M6SQakplx9O37/Fx+vAy6E6kAown4P3g7YLrAqtE
         TC6+qRcD3Xat90/TKECo1uvlJjY8At2Qmap1NuymT3jFUZ0Q7w/iZYZAYo1vUyKwOVGB
         Hcpio8zWRezsLZGp4zH313MTCD6bpuAJlct96Cb1TPjnuuSvD20crti2a0Rf/KELGRIz
         N0hscn0T+AGmhIYLtCbf2uEs/35AiRaPYQsbnwTYQb8PnENM8zWHIEu3aS3yNR0XwIJN
         Q41P8jGHUh+PL05zm8AB81yebXJ3Px9f2f5QlxT9J1YpMNe7BaXNy5aWYs78IXf9d/IT
         51PA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765816635; x=1766421435;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=s6kU7Hc5AETBlewka46/PlUa4wWZ7ukkAJTBWrTSqSQ=;
        b=XFQOmwgomcan0JAHnxqF4GQduyWvhzXsvi2721N62yf9sOz6uQgXc+XbO2n1eF/F5Z
         Be2I+c7N464LiH7DDc/RjgccXyxDbdyj79FV1tG/VfOQ8jbVeCose3F9PewQweJLkmE0
         PJ4lmRCso1SbkKfsVjKFQQNf7eDH2FmJvHOkbo7sXZv3F37MqlXO8qNBZgJrz2gjB0Ck
         csESwL+2/o40w97O8NesmFFyfMFRuWjnmBDr54ocXy5zBZvZRigwVJvd9G9Vf+R0upfu
         1tB2EmZanezbtlxk5qOjlt+SYCeKWVaeHXsGO6cyWUCqwiAtcJkC8GaZ+9ghzCvUV5iw
         0StA==
X-Forwarded-Encrypted: i=1; AJvYcCWZomN4Hb/mPaN+Ku/yAWKZcEeN0N1k3DOQlGq5XD8pajZkjXtakj3UGQ5Z/Tnma3GY6k1xm/GSZ6k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy/5sr2IXRUnIW0qugA8WofRAqW5gvIUROgn3JOWBBqHIZ+UQYG
	Ll4uMjqBLte65JIxrrBsEqEZnp/cdX81WoqEQJDQBpJ4OyFnFPCvSynW9jXQ2q3wZw==
X-Gm-Gg: AY/fxX6B2AcdcPQ9YRcE9KmneKLJlok/4/U+DrvEZCCwnxIsvtXr2y6EMjtn7o53l3I
	KDaDtTxWXoM1u3IcTuzCAIJNhi0bDFWxmPO6v53UaylO3eXfeDtTcgt+SnuCPRRK6fyIjge2Uqr
	zy5n0E9YUcjLJaot8LSMtT78BzRC9QHuG/Uij6L1Xy5IyENMvseSBG4QFhCYeqfZ2JvC70SIzom
	OPnRjMNgZeKldOjr61OUHzhfLD/Dd8W+/3SDSRjPYFsJLOAaomnwLLFgEZ67Wia8qkQYZjqJebn
	AUPUaTZgaUSuaA4dHZlRM/l9U5Fy2glAFAH60hFbO+8QNrSP6LQm4vLdbmZPCH1uTd/Ft0oebYN
	KyXB7I9sDbGIpIygEaR8VMxb0FMn8uMYuUNqUKcU67Vkg6uJv2rBbb1odPG88nF3HxMk/4CL+yA
	RE7UHvCitjZ5NAj6J6Yq92/yyq2+9U5it3605Q3LRutYFyu6RC10IzFsItUywwIXLEQDTzRrgSr
	4Q=
X-Google-Smtp-Source: AGHT+IGwUU3Q5x8MjB31DFPb6NrOEDp1e0e5AJrUHBFP+RDuLG/Kz6Eq8qJxZRA0HM59DdDhkU4fOQ==
X-Received: by 2002:a5d:5d09:0:b0:3ec:db87:e5f4 with SMTP id ffacd0b85a97d-42fb44762cbmr11160923f8f.7.1765816635576;
        Mon, 15 Dec 2025 08:37:15 -0800 (PST)
Message-ID: <dbd26a5e-d6d3-42c8-b1f9-325be2f807ff@suse.com>
Date: Mon, 15 Dec 2025 17:37:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] memory: overlapping XENMAPSPACE_gmfn_range requests
From: Jan Beulich <jbeulich@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <7d254163-ac13-4c58-bcb5-aaff2e892e15@suse.com>
 <8038ba8e-ea1f-4005-94ab-56e4ab5f7062@citrix.com>
 <1ce5a050-929c-48e4-8645-7310a07279cc@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1ce5a050-929c-48e4-8645-7310a07279cc@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.12.2025 15:17, Jan Beulich wrote:
> On 15.12.2025 13:46, Andrew Cooper wrote:
>> On 15/12/2025 11:22 am, Jan Beulich wrote:
>>> Overlapping requests may need processing backwards, or else the intended
>>> effect wouldn't be achieved (and instead some pages would be moved more
>>> than once).
>>>
>>> Also covers XEN_DMOP_relocate_memory, where the potential issue was first
>>> noticed.
>>>
>>> Fixes: a04811a315e0 ("mm: New XENMEM space, XENMAPSPACE_gmfn_range")
>>> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>> ---
>>> Of course an alternative would be to simply reject overlapping requests.
>>> Then we should reject all overlaps though, I think. But since the code
>>> change didn't end up overly intrusive, I thought I would go the "fix it"
>>> route first.
>>>
>>> In-place moves (->idx == ->gpfn) are effectively no-ops, but we don't look
>>> to short-circuit them for XENMAPSPACE_gmfn, so they're not short-circuited
>>> here either.
>>
>> Maybe we should short-circuit them.  I can't think of anything good that
>> will come of having redundant TLB/IOTLB flushing.  At the best it's a
>> waste of time, and at the worst it covers up bugs.
> 
> I can do so (in a prereq change).

Or rather not. In looking more closely while actually trying to carry this out,
I had to realize that such a request e.g. has the side effect of unsharing the
source page (i.e. implicitly also allocating it). We would also take away from
the caller certain error indicators or state changes (e.g. a p2m_ram_logdirty
-> p2m_ram_rw type change; see also Roger's "x86/hvm: be more strict with
XENMAPSPACE_gmfn source types").

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 16:47:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 16:47:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187459.1508844 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVBjS-0000ei-9X; Mon, 15 Dec 2025 16:47:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187459.1508844; Mon, 15 Dec 2025 16:47:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVBjS-0000eb-6N; Mon, 15 Dec 2025 16:47:34 +0000
Received: by outflank-mailman (input) for mailman id 1187459;
 Mon, 15 Dec 2025 16:47:33 +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
 <SRS0=CXo8=6V=daemonizer.de=maxi@srs-se1.protection.inumbo.net>)
 id 1vVBjR-0000eV-2p
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 16:47:33 +0000
Received: from mx1.somlen.de (breeze.somlen.de [2a00:1828:a019::100:0])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bf5b5ef7-d9d5-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 17:47:31 +0100 (CET)
Received: by mx1.somlen.de with ESMTPSA id 32C1D5030C2;
 Mon, 15 Dec 2025 17:47:30 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf5b5ef7-d9d5-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=daemonizer.de;
	s=202303; t=1765817250;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=lmCc9H/h+2w6XJOSeUk5bHT5eGN+hX+DOKaNBuFwzJc=;
	b=LSBwna1tze02XaoOVKVjStv/Dmg37YjVGWswI3CQBULMzCzxttr8TPmI7RQsczoSWJv55y
	bwH0nyVvQIAefZSKN6TdK1P+qG3A15n6J4VIzXCjxFY9bcDezBmpwswiyafZDL1Vo/KDdp
	0kyoL+4Au9pbYGmuUSyg/bgQCVU6IzrMDuAre1QrMOmf9+1W1AZkfk1CDfQ5UhsVK3vOTk
	02eQABXMyPOu0APVT7rJzKuxRHz+QUhQdGaZ/LCW1Ma9+Wrv35MdLk5WUphq6yECsmfxCA
	uNmJdHehGXz4XqRLDHouJdSOPN53HHHcBxHz/kEQ1VirsWdHNSXbfGooH8AIpw==
From: Maximilian Engelhardt <maxi@daemonizer.de>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, Anthony PERARD <anthony@xenproject.org>
Subject:
 Re: [XEN PATCH] libxl: Fix device_add QMP calls with QEMU 9.2 and newer
Date: Mon, 15 Dec 2025 17:47:24 +0100
Message-ID: <3949153.VdNmn5OnKV@localhost>
In-Reply-To: <20251215135124.11410-1-anthony@xenproject.org>
References: <20251215135124.11410-1-anthony@xenproject.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="utf-8"

On Monday, 15 December 2025 14:51:24 CET Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
> 
> QEMU used to ignore JSON types and do conversion string <-> integer
> automatically for the command "device_add", but that was removed in
> QEMU 9.2 (428d1789df91 ("docs/about: Belatedly document tightening of
> QMP device_add checking")).
> 
> Fixes: 9718ab394d5d ("libxl_usb: Make libxl__device_usbctrl_add uses
> ev_qmp")
> Fixes: 40c7eca10a82 ("libxl_usb: Make libxl__device_usbdev_add
> uses ev_qmp")
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

I can confirm with this patch usb passthrough works on the debian xen 4.20 
package.

Tested-by: Maximilian Engelhardt <maxi@daemonizer.de>




From xen-devel-bounces@lists.xenproject.org Mon Dec 15 16:54:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 16:54:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187468.1508854 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVBpf-0002B7-UY; Mon, 15 Dec 2025 16:53:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187468.1508854; Mon, 15 Dec 2025 16:53:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVBpf-0002B0-Rd; Mon, 15 Dec 2025 16:53:59 +0000
Received: by outflank-mailman (input) for mailman id 1187468;
 Mon, 15 Dec 2025 16:53:58 +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
 <SRS0=zPqY=6V=arm.com=YeoReum.Yun@srs-se1.protection.inumbo.net>)
 id 1vVBpe-0002Au-Hk
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 16:53:58 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a462befd-d9d6-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 17:53:55 +0100 (CET)
Received: from DUZPR01CA0069.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:3c2::12) by VI1PR08MB10173.eurprd08.prod.outlook.com
 (2603:10a6:800:1cb::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Mon, 15 Dec
 2025 16:53:46 +0000
Received: from DU6PEPF0000B61F.eurprd02.prod.outlook.com
 (2603:10a6:10:3c2:cafe::ba) by DUZPR01CA0069.outlook.office365.com
 (2603:10a6:10:3c2::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.13 via Frontend Transport; Mon,
 15 Dec 2025 16:53:43 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU6PEPF0000B61F.mail.protection.outlook.com (10.167.8.134) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.4
 via Frontend Transport; Mon, 15 Dec 2025 16:53:45 +0000
Received: from GV1PR08MB10521.eurprd08.prod.outlook.com
 (2603:10a6:150:163::20) by DU0PR08MB9050.eurprd08.prod.outlook.com
 (2603:10a6:10:47a::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Mon, 15 Dec
 2025 16:52:42 +0000
Received: from GV1PR08MB10521.eurprd08.prod.outlook.com
 ([fe80::d430:4ef9:b30b:c739]) by GV1PR08MB10521.eurprd08.prod.outlook.com
 ([fe80::d430:4ef9:b30b:c739%3]) with mapi id 15.20.9412.011; Mon, 15 Dec 2025
 16:52:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a462befd-d9d6-11f0-b15b-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=Uqgjc6EJPcuU47SZIzC8zdoCw+Surzn0qG4wAuNOPzg5fMbTPMt4Oe4W5kB07UbSsRRqGD2xjl7DsK8VTtljMety8Wq8Ay8mA73ifPTXY8sE/nwHkLM4Q50tqkfYzLPFMFuFDB6pYwvLVsWuRcCNoO+vPv6szVhK9r6kC2AuNHq+LvTIy1j6Q5bFWdnY72VoQJpE+7kjAl9lC8BCnQ5iguiHGw87zZCv4xyEcOe7Dq2DjDCL3VPXNo2qil2ZKl+0Dw6SsOF6KePMvnThEhP8YHdzuJLA68XtojvJy9A36e8Pd1w/F6qYBlq5MJR6QSZ47gykH06RP6NDgxulRWhEkg==
ARC-Message-Signature: i=2; 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=8/W6l29RwKRvQiKjOmlgFycm7Qo8+6A28MW3ffQAxVM=;
 b=AJXsYXpvlpwfCvh8d6jYBF00xh6SYRiRI43JwODw3HPcA8ZspLglhyBIkhH/rnQZ7bI9VX/CMI3+Mqv8uumdAmD8lBsyGEcer0UksZvZ8o6BafqQ0jZ+xYejQ2KcDPz5cWp4OFFmJHiaCc9akXquv+aw4EJxrSo+KnI3FA+lhq2qCPphv8w1ng07zC+6Vm2j0zIE8aSDm+d4KiOBeYItnGKmcyYVRgiiYKmA0IhfKHdJRAd7y4irtg3RC1hpNGrE+smbUZO0va3WGQS+1VU37mdbg/nEswz+9L2ll/sbeQX0B1tiemch83XxUa7/WErZE/43tNWXkpgu0jhNADkXKQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=kvack.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8/W6l29RwKRvQiKjOmlgFycm7Qo8+6A28MW3ffQAxVM=;
 b=NpuIhWv2/SYwyoTwxqJEp+LUttli+ls7ALljKOwrYVUwynwm7TJf6lumJIiBTKkQ64YLOB57iiENePt8zXny5gLV1Vmm9zAUEqb9FEtkGAkucnUNgEbpdx+2wdq7nJMQY8D9EbCarF6hai4J88xVxCJxHCpAwiuIF/txKOjyYbI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LgddzwHmxbJSjKxG0hhVuK+odF1FC/zGMr5Rfr3WOvKhRVqG1YtcjvjwIn/2aUQ9f/k6fjZao+EqMjdRylwcLu/aensvxftZaEIdFGQ6Nt6A9Fm2q043hWOUaKBRPREEpZ4rZoZAtDJn1QcqMIkv/hOUoh2IHrDOI0vFd7wof6F4hMuka2GIissipp6NjAN87vWjJFCtFdlRZ3y6a1jUx7wtCpRhFJjtRXy1n5eJ65l/bxWNV8jc9qiZsVgoNSaINWYrywU9o7XDDp9XdcxPeoeBsVsf0jhwDY4KxJtgEBqF7QOa9CFsIdMZMyAydegHcUcTyrE5AoDI+iH2MS/s9A==
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=8/W6l29RwKRvQiKjOmlgFycm7Qo8+6A28MW3ffQAxVM=;
 b=uYSUo8FEDj+a84PWVNUzr+egX2mNotnRPqbY8QbuV7gvrefO7noRRMijbo1S6m62kBzPaWkZ+qUjWTTGAiOA3mAd0QUYaOKePolGXgmd0viAZmr09/cTQxaCUrdEA+PZ7GaaYy4D1KQO8S93CdIRmERw6XRCc+5DluOfG3fqvDf59fI5BPqX4N+Dx/42bc27wviqUnGTXMwP36iiW2JP7A3jOz6kaUG2+VdZy4VFh73g7JjDQ4RADvVsOtzreQM0kseTsc2nU+N3WWLHetLpLinmoizMBy6suEXsrEB0zB0QhigjbjJJP5tBKbBqnFDf9QNWG3LYUNF+OWqJIX+zoQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8/W6l29RwKRvQiKjOmlgFycm7Qo8+6A28MW3ffQAxVM=;
 b=NpuIhWv2/SYwyoTwxqJEp+LUttli+ls7ALljKOwrYVUwynwm7TJf6lumJIiBTKkQ64YLOB57iiENePt8zXny5gLV1Vmm9zAUEqb9FEtkGAkucnUNgEbpdx+2wdq7nJMQY8D9EbCarF6hai4J88xVxCJxHCpAwiuIF/txKOjyYbI=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Date: Mon, 15 Dec 2025 16:52:38 +0000
From: Yeoreum Yun <yeoreum.yun@arm.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>, Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
	linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: Re: [PATCH v6 00/14] Nesting support for lazy MMU mode
Message-ID: <aUA81joXQL0ZyIgm@e129823.arm.com>
References: <20251215150323.2218608-1-kevin.brodsky@arm.com>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20251215150323.2218608-1-kevin.brodsky@arm.com>
X-ClientProxiedBy: LO4P123CA0323.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:197::22) To GV1PR08MB10521.eurprd08.prod.outlook.com
 (2603:10a6:150:163::20)
MIME-Version: 1.0
X-MS-TrafficTypeDiagnostic:
	GV1PR08MB10521:EE_|DU0PR08MB9050:EE_|DU6PEPF0000B61F:EE_|VI1PR08MB10173:EE_
X-MS-Office365-Filtering-Correlation-Id: 3616d0f9-d03f-4f6b-ac15-08de3bfa82c0
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|7416014|366016|1800799024;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?pzhAZZwGWJzd2xgVNmW9IljA9Y8eJspiViZIWh6wHso8M5V9/hP7Xp48c6Ra?=
 =?us-ascii?Q?murX1T0Nm5N6sBhlON20saGNVE0yQ+0f/J+Lcxt5eri1wjvvuKwkcA4oiusq?=
 =?us-ascii?Q?2ez1Oac5wCVJyffTzfVq4TdrsfTDPWHW4zw2MiN1jb9ETKs8t/nbI0Uaj39B?=
 =?us-ascii?Q?dlPXBismRRnq2mE9U8l/EDCxNF2WjNbG8CgQGtr2lh00hZ30d21r/8kdoq2e?=
 =?us-ascii?Q?CwJZlp0VrX+ZTikjw4ERtV6JYLGisV0+GWJhBIpU8Q5NoQVWOUdgcDKkNHYX?=
 =?us-ascii?Q?HIVj+9F981bg5UBbLvSGkPFayNb5O40vkUwzFnL1Nf9kXfiaFKpz3rXrlA/p?=
 =?us-ascii?Q?jDA4zYQ82Jwim4mJZV2Q5HsbAUW0o/hN160zyj1z/VfjF8E+qIz+d6Mp2mYb?=
 =?us-ascii?Q?3zr1qFp1XkB0HF0rKyfJ1NTyHh42cmXEiIcq003tQnD0zMHjWLOyMcXANGj0?=
 =?us-ascii?Q?0NBK3ojJWHyhw2pmfLSR2QeI+qccGWQO0zbEE5DUTTwHffx0Z0vM94ac6TSZ?=
 =?us-ascii?Q?2eBoMq83Ph9aP0MMvnmzVeENVhBl3tFTgeR5p2/gFKTu0LkU7hsM1eWkbNmc?=
 =?us-ascii?Q?F2id7OZvf7zFKs1O/y7nVAIJmzVV3N65FT3n9A9YrzymzniP08mIp97wWGOm?=
 =?us-ascii?Q?EZnxGXeLFH682OCh3gSADulUaQLL8UI8PLYmDoW5iTBggZVm4pV/zqr4yntD?=
 =?us-ascii?Q?TB80oSc4RgD+HomIFBGWaolGPFL8TcTIKpVrBAUpVCKDLJ1H0odbJcq57jY9?=
 =?us-ascii?Q?c7l0SofUCSXzngkfyLeDSjgnDqltndsRpOU3zgTz/vRJaQdZ0EbnwX8WYw1O?=
 =?us-ascii?Q?JP1/fEhKzf5YduAEFKWnUFBypkzrK10v8AgOI1rMogxC556pGVR0GyBT0Zl8?=
 =?us-ascii?Q?BhRiMi+GbHkUvF/pGJ/xWhjxJrnxo2wirvryxRf9hbmTocovqYzpifI1rIi+?=
 =?us-ascii?Q?Lk/PrRzzzFrcw+o//Ase3h2KsPspnPC2lKQM8C4BLKzXiLIw509uFs5a/m1D?=
 =?us-ascii?Q?WqeUFnDMtWAg6Xv/4jw86H7C5dDwOw5hmUiMCalw66ZsCsrKXn9pKfQPvoKe?=
 =?us-ascii?Q?6Z35SCVmCCoe1LyodWNCtA0e7vpAwocZiOQy09qNA4wP0VntCqCQ0/mLxKAx?=
 =?us-ascii?Q?nR7gkjYXj+JryIT62NAECTn0xX1XRmJ75XR6VqFngmLbTt+V6DeLGGHX90k5?=
 =?us-ascii?Q?M7ZafmVH2s9oHVJ/b8UH7B+DFRw8KL6CHwBp2iz+gbmowpWZxrzp9vk1FMcq?=
 =?us-ascii?Q?5IzCNCJRiYJVIDJ7UmAeFaPspDSiolfGm+xtJnx4+eFpMhTSPu3aLfbcl+Ff?=
 =?us-ascii?Q?GsOjb9kYEvH3pa0NbRUz9TMVAp9R0OML2c4W30fw0qbipdW/zqUw0G2f34G1?=
 =?us-ascii?Q?rlYW8EogCxnxi9U3JdpgOZ4HIVNgi5D38Z8K1SQIGNb4t/TZ0rLDCwD2U71B?=
 =?us-ascii?Q?u8vnrfFpxrmwbR2ySerVrklJPeZZS6ci7U3xsxkvb8teDnhabwpnsA=3D=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR08MB10521.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9050
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF0000B61F.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	5e434924-911d-4672-46f7-08de3bfa5caf
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|35042699022|7416014|376014|1800799024|82310400026|36860700013|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?zuqIIqd/l6AydQr35yD1higpmzfOYfxMiv0s0sjNB0C69/59KEUtQcn6Y4tk?=
 =?us-ascii?Q?kpq+VTZCvX1H6Sm907dbj9V6quSESqUZjE7tJC6Q+2m2r7NYDp9kJnIEAAAX?=
 =?us-ascii?Q?Au/+FYYkkQuwFxHYvEe7nl5T28DdBkunZr5Ozu0gu1WI5597losXFe/FfL3h?=
 =?us-ascii?Q?SQU2hLrugc/J90/pyGL77BQVta35FER4E8OdBKxYOc/lWGCq5IsJDA+LrQmw?=
 =?us-ascii?Q?vZs/9i9r7R5DULAh7PjN+MD/s6CkRYEiNzUsy1o9lyhSoK2xCyMGIlMDR/Jo?=
 =?us-ascii?Q?JfUTpLi2Ef6Zr/Y6/4edzjBSXBYJOHZxLAlIUG3r59LRE4CQl9Q/l5Jxu9gA?=
 =?us-ascii?Q?43o+Myp2Uur9GS+LMBnuB4cJkF98AHGFjWtNnRMJbOD78rwiJhtatFBKlzVV?=
 =?us-ascii?Q?+RgRge0bj+f7gIUBzJjGHcuw1NbeI0UMiohF88IGb3RhulDOU4Xpn9AeQgxl?=
 =?us-ascii?Q?TFKLiTXg0aUi54PB7FEowDoN3vUCnQFdBtlDOhmXcn0772K4Jgha7yzH6Zbe?=
 =?us-ascii?Q?VlLDIEaBGJqvxzQ5cnyYkvo+Kcp0/s5jHe2qd2h9kUKd28xSQrmPzB72MuLP?=
 =?us-ascii?Q?BuBPOxiOKfdCczAiwd7YUiwoXLT3P7xtiwVIPsvcyhoLR6KwciiT3LbDRzlF?=
 =?us-ascii?Q?Q6Hx1OtbZSU45PhANkTvRTF/X/s+coGONUEvnCG1pQ2FqQMpTB89neNLxsrp?=
 =?us-ascii?Q?Bw2JZ6eVUVZItYDJzEVoYa+ECDg/UE685eL9KYCK8uiszLHH+9yx/Y0X/90D?=
 =?us-ascii?Q?2qwbpVUDBndTbjfdRWeJqcXg3r8BdhKgjvXUHF3vN1LKA2u4SFLVEJ2S3iq1?=
 =?us-ascii?Q?X9sibqtpfT6yGV8UJ8gb8vd9d8oyr/rblzdLv0t4+KXisTusdPG0SqwdP7Yw?=
 =?us-ascii?Q?0k1zK7nasZGL+aCznnwIAwv5mT5SGRTMv2e+U2CkeUPyQIvbmJBF95PfQtiv?=
 =?us-ascii?Q?bp12wiF+ooP57r293Fl4KEs4whV3msj79dLqc0KEBdJvL8a1p0+TSddM86U5?=
 =?us-ascii?Q?Dx3R14HLdneaU2UmKiXlo5O7AyKS6sERQoD8RU4KNQSZVR/VJ8IpOD23NlTA?=
 =?us-ascii?Q?SA70gv1XYFAiVPpm8jUPCcYy7dyUgzPlM6TEYp0LQeM0BKlj40Dn/YOI46aT?=
 =?us-ascii?Q?Fv+QDdfum4ocCI79mRSwRJN4Qhu+wH7yTffOc5PcPFMesGYRd7AtmW6iDoFV?=
 =?us-ascii?Q?XgoJC0HQyPpaan/86/mLqbwcxv6qrGB0ccm5gUb9YRK1697OgN8MVK5fpANr?=
 =?us-ascii?Q?OhCmXyjy1av7ICNDLvaHuvhzcNbT8UYXjMklkgeTYMS2huHqZFYXQFGtPhBR?=
 =?us-ascii?Q?+xPHxrJv5oB6Qu2ZNLRHhpP9lRJxdU0SsW05hWEqSyhLGqkwaFeYw47ZU375?=
 =?us-ascii?Q?e+vuJLXDQobAvxzb200y3amBjOAfFa54DJbY1/ZfUVIKRH0DUujc6QCQiPQ8?=
 =?us-ascii?Q?pHA/NDTgwFmdBdgHmnticDCye9KiQlUikslfu0iyOwMtc5NfQHwYGcB2L4dT?=
 =?us-ascii?Q?P9Zc7MkwYT9kNo3PyDkq/nUhj5rYrjnX5Ma0Y7P4qgTe3FTAqh9oNuXYivLv?=
 =?us-ascii?Q?zhldyvx8Xjc48g6TL+M=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(35042699022)(7416014)(376014)(1800799024)(82310400026)(36860700013)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Dec 2025 16:53:45.3928
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3616d0f9-d03f-4f6b-ac15-08de3bfa82c0
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU6PEPF0000B61F.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB10173

> When the lazy MMU mode was introduced eons ago, it wasn't made clear
> whether such a sequence was legal:
>
> 	arch_enter_lazy_mmu_mode()
> 	...
> 		arch_enter_lazy_mmu_mode()
> 		...
> 		arch_leave_lazy_mmu_mode()
> 	...
> 	arch_leave_lazy_mmu_mode()
>
> It seems fair to say that nested calls to
> arch_{enter,leave}_lazy_mmu_mode() were not expected, and most
> architectures never explicitly supported it.
>
> Nesting does in fact occur in certain configurations, and avoiding it
> has proved difficult. This series therefore enables lazy_mmu sections to
> nest, on all architectures.
>
> Nesting is handled using a counter in task_struct (patch 8), like other
> stateless APIs such as pagefault_{disable,enable}(). This is fully
> handled in a new generic layer in <linux/pgtable.h>; the arch_* API
> remains unchanged. A new pair of calls, lazy_mmu_mode_{pause,resume}(),
> is also introduced to allow functions that are called with the lazy MMU
> mode enabled to temporarily pause it, regardless of nesting.
>
> An arch now opts in to using the lazy MMU mode by selecting
> CONFIG_ARCH_LAZY_MMU; this is more appropriate now that we have a
> generic API, especially with state conditionally added to task_struct.
>
> ---
>
> Background: Ryan Roberts' series from March [1] attempted to prevent
> nesting from ever occurring, and mostly succeeded. Unfortunately, a
> corner case (DEBUG_PAGEALLOC) may still cause nesting to occur on arm64.
> Ryan proposed [2] to address that corner case at the generic level but
> this approach received pushback; [3] then attempted to solve the issue
> on arm64 only, but it was deemed too fragile.
>
> It feels generally difficult to guarantee that lazy_mmu sections don't
> nest, because callers of various standard mm functions do not know if
> the function uses lazy_mmu itself.
>
> The overall approach in v3/v4 is very close to what David Hildenbrand
> proposed on v2 [4].
>
> Unlike in v1/v2, no special provision is made for architectures to
> save/restore extra state when entering/leaving the mode. Based on the
> discussions so far, this does not seem to be required - an arch can
> store any relevant state in thread_struct during arch_enter() and
> restore it in arch_leave(). Nesting is not a concern as these functions
> are only called at the top level, not in nested sections.
>
> The introduction of a generic layer, and tracking of the lazy MMU state
> in task_struct, also allows to streamline the arch callbacks - this
> series removes 67 lines from arch/.
>
> Patch overview:
>
> * Patch 1: cleanup - avoids having to deal with the powerpc
>   context-switching code
>
> * Patch 2-4: prepare arch_flush_lazy_mmu_mode() to be called from the
>   generic layer (patch 9)
>
> * Patch 5: documentation clarification (not directly related to the
>   changes in this series)
>
> * Patch 6-7: new API + CONFIG_ARCH_LAZY_MMU
>
> * Patch 8: ensure correctness in interrupt context
>
> * Patch 9: nesting support
>
> * Patch 10-13: replace arch-specific tracking of lazy MMU mode with
>   generic API
>
> * Patch 14: basic tests to ensure that the state added in patch 9 is
>   tracked correctly
>
> This series has been tested by running the mm kselftests on arm64 with
> DEBUG_VM, DEBUG_PAGEALLOC, KFENCE and KASAN. Extensive testing on
> powerpc was also kindly provided by Venkat Rao Bagalkote [5]. It was
> build-tested on other architectures (with and without XEN_PV on x86).
>
> - Kevin
>
> [1] https://lore.kernel.org/all/20250303141542.3371656-1-ryan.roberts@arm.com/
> [2] https://lore.kernel.org/all/20250530140446.2387131-1-ryan.roberts@arm.com/
> [3] https://lore.kernel.org/all/20250606135654.178300-1-ryan.roberts@arm.com/
> [4] https://lore.kernel.org/all/ef343405-c394-4763-a79f-21381f217b6c@redhat.com/
> [5] https://lore.kernel.org/all/94889730-1AEF-458F-B623-04092C0D6819@linux.ibm.com/
> ---
> Changelog
>
> v5..v6:
>
> - Rebased on v6.19-rc1
> - Overall: no functional change
> - Patch 5: new patch clarifying that generic code may not sleep while in lazy
>   MMU mode [Alexander Gordeev]
> - Patch 6: added description for the ARCH_HAS_LAZY_MMU_MODE option
>   [Anshuman Khandual]
> - Patch 9: rename in_lazy_mmu_mode() to is_lazy_mmu_mode_active() [Alexander]
> - Patch 14: new patch with basic KUnit tests [Anshuman]
> - Collected R-b/A-b/T-b tags
>
> v5: https://lore.kernel.org/all/20251124132228.622678-1-kevin.brodsky@arm.com/
>
> v4..v5:
>
> - Rebased on mm-unstable
> - Patch 3: added missing radix_enabled() check in arch_flush()
>   [Ritesh Harjani]
> - Patch 6: declare arch_flush_lazy_mmu_mode() as static inline on x86
>   [Ryan Roberts]
> - Patch 7 (formerly 12): moved before patch 8 to ensure correctness in
>   interrupt context [Ryan]. The diffs in in_lazy_mmu_mode() and
>   queue_pte_barriers() are moved to patch 8 and 9 resp.
> - Patch 8:
>   * Removed all restrictions regarding lazy_mmu_mode_{pause,resume}().
>     They may now be called even when lazy MMU isn't enabled, and
>     any call to lazy_mmu_mode_* may be made while paused (such calls
>     will be ignored). [David, Ryan]
>   * lazy_mmu_state.{nesting_level,active} are replaced with
>     {enable_count,pause_count} to track arbitrary nesting of both
>     enable/disable and pause/resume [Ryan]
>   * Added __task_lazy_mmu_mode_active() for use in patch 12 [David]
>   * Added documentation for all the functions [Ryan]
> - Patch 9: keep existing test + set TIF_LAZY_MMU_PENDING instead of
>   atomic RMW [David, Ryan]
> - Patch 12: use __task_lazy_mmu_mode_active() instead of accessing
>   lazy_mmu_state directly [David]
> - Collected R-b/A-b tags
>
> v4: https://lore.kernel.org/all/20251029100909.3381140-1-kevin.brodsky@arm.com/
>
> v3..v4:
>
> - Patch 2: restored ordering of preempt_{disable,enable}() [Dave Hansen]
> - Patch 5 onwards: s/ARCH_LAZY_MMU/ARCH_HAS_LAZY_MMU_MODE/ [Mike Rapoport]
> - Patch 7: renamed lazy_mmu_state members, removed VM_BUG_ON(),
>   reordered writes to lazy_mmu_state members [David Hildenbrand]
> - Dropped patch 13 as it doesn't seem justified [David H]
> - Various improvements to commit messages [David H]
>
> v3: https://lore.kernel.org/all/20251015082727.2395128-1-kevin.brodsky@arm.com/
>
> v2..v3:
>
> - Full rewrite; dropped all Acked-by/Reviewed-by.
> - Rebased on v6.18-rc1.
>
> v2: https://lore.kernel.org/all/20250908073931.4159362-1-kevin.brodsky@arm.com/
>
> v1..v2:
> - Rebased on mm-unstable.
> - Patch 2: handled new calls to enter()/leave(), clarified how the "flush"
>   pattern (leave() followed by enter()) is handled.
> - Patch 5,6: removed unnecessary local variable [Alexander Gordeev's
>   suggestion].
> - Added Mike Rapoport's Acked-by.
>
> v1: https://lore.kernel.org/all/20250904125736.3918646-1-kevin.brodsky@arm.com/
> ---
> Cc: Alexander Gordeev <agordeev@linux.ibm.com>
> Cc: Andreas Larsson <andreas@gaisler.com>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Anshuman Khandual <anshuman.khandual@arm.com>
> Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
> Cc: Borislav Petkov <bp@alien8.de>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
> Cc: Dave Hansen <dave.hansen@linux.intel.com>
> Cc: David Hildenbrand <david@redhat.com>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: David Woodhouse <dwmw2@infradead.org>
> Cc: "H. Peter Anvin" <hpa@zytor.com>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: Jann Horn <jannh@google.com>
> Cc: Juergen Gross <jgross@suse.com>
> Cc: "Liam R. Howlett" <Liam.Howlett@oracle.com>
> Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
> Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Cc: Michal Hocko <mhocko@suse.com>
> Cc: Mike Rapoport <rppt@kernel.org>
> Cc: Nicholas Piggin <npiggin@gmail.com>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
> Cc: Ryan Roberts <ryan.roberts@arm.com>
> Cc: Suren Baghdasaryan <surenb@google.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Venkat Rao Bagalkote <venkat88@linux.ibm.com>
> Cc: Vlastimil Babka <vbabka@suse.cz>
> Cc: Will Deacon <will@kernel.org>
> Cc: Yeoreum Yun <yeoreum.yun@arm.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Cc: linuxppc-dev@lists.ozlabs.org
> Cc: sparclinux@vger.kernel.org
> Cc: xen-devel@lists.xenproject.org
> Cc: x86@kernel.org
> ---
> Alexander Gordeev (1):
>   powerpc/64s: Do not re-activate batched TLB flush
>
> Kevin Brodsky (13):
>   x86/xen: simplify flush_lazy_mmu()
>   powerpc/mm: implement arch_flush_lazy_mmu_mode()
>   sparc/mm: implement arch_flush_lazy_mmu_mode()
>   mm: clarify lazy_mmu sleeping constraints
>   mm: introduce CONFIG_ARCH_HAS_LAZY_MMU_MODE
>   mm: introduce generic lazy_mmu helpers
>   mm: bail out of lazy_mmu_mode_* in interrupt context
>   mm: enable lazy_mmu sections to nest
>   arm64: mm: replace TIF_LAZY_MMU with is_lazy_mmu_mode_active()
>   powerpc/mm: replace batch->active with is_lazy_mmu_mode_active()
>   sparc/mm: replace batch->active with is_lazy_mmu_mode_active()
>   x86/xen: use lazy_mmu_state when context-switching
>   mm: Add basic tests for lazy_mmu
>
>  arch/arm64/Kconfig                            |   1 +
>  arch/arm64/include/asm/pgtable.h              |  41 +----
>  arch/arm64/include/asm/thread_info.h          |   3 +-
>  arch/arm64/mm/mmu.c                           |   8 +-
>  arch/arm64/mm/pageattr.c                      |   4 +-
>  .../include/asm/book3s/64/tlbflush-hash.h     |  20 +--
>  arch/powerpc/include/asm/thread_info.h        |   2 -
>  arch/powerpc/kernel/process.c                 |  25 ---
>  arch/powerpc/mm/book3s64/hash_tlb.c           |  10 +-
>  arch/powerpc/mm/book3s64/subpage_prot.c       |   4 +-
>  arch/powerpc/platforms/Kconfig.cputype        |   1 +
>  arch/sparc/Kconfig                            |   1 +
>  arch/sparc/include/asm/tlbflush_64.h          |   5 +-
>  arch/sparc/mm/tlb.c                           |  14 +-
>  arch/x86/Kconfig                              |   1 +
>  arch/x86/boot/compressed/misc.h               |   1 +
>  arch/x86/boot/startup/sme.c                   |   1 +
>  arch/x86/include/asm/paravirt.h               |   1 -
>  arch/x86/include/asm/pgtable.h                |   1 +
>  arch/x86/include/asm/thread_info.h            |   4 +-
>  arch/x86/xen/enlighten_pv.c                   |   3 +-
>  arch/x86/xen/mmu_pv.c                         |   6 +-
>  fs/proc/task_mmu.c                            |   4 +-
>  include/linux/mm_types_task.h                 |   5 +
>  include/linux/pgtable.h                       | 158 +++++++++++++++++-
>  include/linux/sched.h                         |  45 +++++
>  mm/Kconfig                                    |  19 +++
>  mm/Makefile                                   |   1 +
>  mm/kasan/shadow.c                             |   8 +-
>  mm/madvise.c                                  |  18 +-
>  mm/memory.c                                   |  16 +-
>  mm/migrate_device.c                           |   8 +-
>  mm/mprotect.c                                 |   4 +-
>  mm/mremap.c                                   |   4 +-
>  mm/tests/lazy_mmu_mode_kunit.c                |  71 ++++++++
>  mm/userfaultfd.c                              |   4 +-
>  mm/vmalloc.c                                  |  12 +-
>  mm/vmscan.c                                   |  12 +-
>  38 files changed, 380 insertions(+), 166 deletions(-)
>  create mode 100644 mm/tests/lazy_mmu_mode_kunit.c
>
>
> base-commit: 8f0b4cce4481fb22653697cced8d0d04027cb1e8
> --
> 2.51.2

All of these look good to me.

Reviewed-by: Yeoreum Yun <yeoreum.yun@arm.com>

--
Sincerely,
Yeoreum Yun


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 16:55:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 16:55:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187477.1508864 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVBqn-0002fJ-6r; Mon, 15 Dec 2025 16:55:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187477.1508864; Mon, 15 Dec 2025 16:55:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVBqn-0002fC-3b; Mon, 15 Dec 2025 16:55:09 +0000
Received: by outflank-mailman (input) for mailman id 1187477;
 Mon, 15 Dec 2025 16:55:07 +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 <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vVBql-0002ee-Pw
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 16:55:07 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ca82eb5a-d9d6-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 17:54:59 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-47755de027eso25695695e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 08:54:59 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f718279sm69921395e9.19.2025.12.15.08.54.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 08:54:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ca82eb5a-d9d6-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765817699; x=1766422499; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lDZKaTx1zWUxx3w8S0Bvlet6BEaZTayv8riYm07q4pE=;
        b=TfHHTWwXzIxKdufWuJTSjWYj7IoPMZSBHz1qBE7xjJ1cIbgNL5n4Fl70d+/cLaCw+Q
         PQ4BB1Lfw/G+XldtsmoxCobWrSvux/+11204Od2YwaMB0O8ugaPtCWs0E8zVig48FB8I
         MFSRvCyDEQ9MJxvoZssmGBlmaasOYJ1PGZAsU8oH0DiTcgTYULC2xOOkVpKyjDdH0Vs5
         el0cZo4ea5uIBCNUT5Kv4iqVn8DFUTINp9JbFzcpuuBcOomuCRKqozjK86ShI/hsCWKB
         rVF2j2CEFOPyWrOjs6F9wC8tW93BL3QK1X8Cbqjui3QGMRITIxRXflQEISDRlOYmYuUi
         50jQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765817699; x=1766422499;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lDZKaTx1zWUxx3w8S0Bvlet6BEaZTayv8riYm07q4pE=;
        b=k1kwp1YQeZBRKaeaOcfNzqlRchQppkNLZlbrCHx7Am84GNp+P5fkyQ3M6k9fPwhde6
         UBWmvNVc4T7EAbhXlEzmQle9Gw63eybzd4whMZEj+V7Gj5RNUYYakrvsA5ZJxpewXecr
         EXqjJ3mDRn/EKd4XRVcdLoqahUkCV1oK1px9JtQZBk1za972PK/eW6JyMU2AjNRJYyes
         +ZMCUdILyE+OrlcA9WEgzh5iw4UREmYwTtGclace5KwWQWfCpd4j87XUGmWmWJI+EIOZ
         tdTWOtgJx1YxSsXkGA4Kf0Ao4LSv8f18g9SiF2c3/I15SRjhqJRdAtwTwh3bKGZ/8o3v
         Z1MQ==
X-Forwarded-Encrypted: i=1; AJvYcCVFyJ5aP6T4qlTP9e6CDCpbD5Re3Rh7dzj8uJclEZk+hx6148meZMjyYet2UohcxtFB6isSz2gc1OM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyaVAtKZDyWa8kjpYFGI7etfYTduCH2ZN2chSQ4b/0NFOakAoap
	uYwUrIFm154mODKMpjTQT+DBuN7Sp7HdOUfmIrWFzYlRZHOtPt0cSZYloFFciFo1fw==
X-Gm-Gg: AY/fxX6iBTzgBVXh3V/v9MPvp2jx9TOjybIJuOXYgycdWSqNs6Xg4dsgEsvXndQA6yT
	KSCp+QIsgsebMwEkcoIbN7xD/ZFH9HgdsGRMo0JeFfd8R2SKmlcvtUME4hMv7yw8wFGZOv9njTT
	p+mRhauisIl8+mKyx7xIlOLQunJLBpSLrGHZ1hWvL0ukc1QJokGwwDBlLVESOX4xU5eoCn+v/Yy
	9k4OyZhcho2aK0WBqLokTWF6Nz5Ol8za2IxE9JytxU4wrlR9cumELDY/8G7xt/7oOys8LZ/UtfB
	2qosUApEbfMl3k+vmuO2XRQTA/f764dm07zMluLCd+ntsZM7zUg+OMexqIEsHx4YRATXLtGIGEz
	m2wcCGHItuxDu8a6weftt9HZFCyOlhBRhvRWVEvaIPmI40w77oauAzohPFJu1wnKS4Flr0+Zo/7
	kBP9C0quP0VhaEALQLp4mPB36Sgtw8hr4x5SJfGuPOxPEGqhBS9kg1zg4Uy+/GgDslY4ecSTbDY
	K8=
X-Google-Smtp-Source: AGHT+IEAGCtyC9+i9cDXcpF59QG8txdDD4ECMiy3kXemRCCyH+aqI3u12iQQyjFLrLl58kPVauy4SA==
X-Received: by 2002:a05:600c:3491:b0:476:4efc:8ed4 with SMTP id 5b1f17b1804b1-47a96a2e1f8mr77485165e9.11.1765817698785;
        Mon, 15 Dec 2025 08:54:58 -0800 (PST)
Message-ID: <737b4297-2844-4fc8-99c4-a3c1cf206580@suse.com>
Date: Mon, 15 Dec 2025 17:55:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/domain: enable VCPUOP_register_runstate_phys_area
 hypercall
To: torsten.oehlenschlager@tutanota.de
Cc: Andrew Cooper3 <andrew.cooper3@citrix.com>,
 Sstabellini <sstabellini@kernel.org>, Julien <julien@xen.org>,
 Xen Devel <xen-devel@lists.xenproject.org>
References: <OgJMhRT--F-9@tutanota.de>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <OgJMhRT--F-9@tutanota.de>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.12.2025 22:01, torsten.oehlenschlager@tutanota.de wrote:
> ice@blossom ..............................................................................................................................................................................…/xen 🌸 enable-runstate-phys-area ?
> ❯ cat 0001-xen-domain-enable-VCPUOP_register_runstate_phys_area.patch

I don't quite understand what this is.

> From 416992b30258d34b7cc7bc4f7875719f47618147 Mon Sep 17 00:00:00 2001
> From: melanie <torsten.oehlenschlager@tutanota.de>
> Date: Fri, 12 Dec 2025 20:55:50 +0000
> Subject: [PATCH] xen/domain: enable VCPUOP_register_runstate_phys_area
> hypercall
> 
> The XENFEAT_runstate_phys_area feature is unconditionally advertised to
> guests via XENVER_get_features ( see xen/common/kernel.c ),  but the
> corresponding VCPUOP_register_runstate_phys_area hypercall was disabled
> with a placeholder check that always returned -ENOSYS!

Well, no. The check you remove ...

> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -2284,10 +2284,6 @@ long common_vcpu_op(int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
>      {
>          struct vcpu_register_runstate_memory_area area;
> 
> -        rc = -ENOSYS;
> -        if ( 0 /* TODO: Dom's XENFEAT_runstate_phys_area setting */ )
> -            break;

... is dead code, yes, but it certainly didn't cause the function to
return -ENOSYS. See commit 48a3fd14327f ("domain: expose newly introduced
hypercalls as XENFEAT"), which in a change like this the description surely
should have referenced.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 17:00:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 17:00:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187495.1508874 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVBwC-0004U0-Vc; Mon, 15 Dec 2025 17:00:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187495.1508874; Mon, 15 Dec 2025 17:00:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVBwC-0004Tt-SE; Mon, 15 Dec 2025 17:00:44 +0000
Received: by outflank-mailman (input) for mailman id 1187495;
 Mon, 15 Dec 2025 17:00:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0ibL=6V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vVBwC-0004Tn-2j
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 17:00:44 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 969aaf36-d9d7-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 18:00:41 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-47a95efd2ceso18154695e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 09:00:41 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-430f639c132sm13567146f8f.35.2025.12.15.09.00.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 09:00:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 969aaf36-d9d7-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765818041; x=1766422841; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hhVDKiBBRCs0p9ctqMfDm6ayoFlhICw0kQHUDdjJieM=;
        b=dsBcvCOEYZW0KS23ZqkByKbnrgiFEe3eYdeTzjvW+vJqDWovXwSG4972n+o0Z2F4pQ
         qguwlWLpPdggjT5xSfmfL3O/awq2CFTo+3+SUo0S8TIQqcJWw215PopiP3P4/QOe179L
         jRdb9b9fgdya+zy59pl+qdZcJdmVg2Ozr5pbb7C2I78CWfkdl09vmC5Hb5vSi/2wbRgM
         GocJ6CDNOPBA3480VW41MgpCvIhyjCq6Q+ZkUPHfofpEgjzY13v35RxvKIHI5o0qjbgw
         QmpvltX2VqN4RzpG8Dm0d9+KhEdx2K/6qPpFE27GMaZFmOeri864iKEhjeTEXBGhgmXa
         n1jw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765818041; x=1766422841;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hhVDKiBBRCs0p9ctqMfDm6ayoFlhICw0kQHUDdjJieM=;
        b=MY6DQntWDe3Cw52s0ddiGPrSjQNaOC/YrG6O8KazFRvLZo24eORjqdCl1NAJYxRkXB
         7YxOV60tvxSTecNDpKZCiX68sOFn2aeTWD1wt24qPZl2o7itsyOPhpEbvqo4njO2K9bv
         GWuG73mHP6PGtZJ+QJyEb2i8wAn48Qfm7lddy15DYosPVEe0xUZbJKlToo6gsDQp9QKs
         f/7fdVLhr5ZmUH7sxXUrJByvWbH10C+Ge5DXQGQbyBjFjlLjnHo8L8YJQLbMBkClMnAU
         6UXWKNiZeuR17ItcUJ3SNRX8g6RuUy9h5jYkzPU8ybYhuiriHdji3prtJVsnkzAKQPXj
         mibw==
X-Forwarded-Encrypted: i=1; AJvYcCXQ8T0XgfUFpgjBKUE7cLkloSxDcwV/g6EeGUhv108qC6hM8bElpH3JwDCwCnOdjDy55AZbkgvkdEI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzKTDl/UTagUtPcfW6q18Y/79iW26/KktdUBeLzR3uFs9ebEud8
	50uF9Ym4gXqmIiQUl79CR2MPvUuUgLh2YwphUVJT9r01KeSg3k0yNug2HD7uORxdCQ==
X-Gm-Gg: AY/fxX4obDWfzIarJCcaMwNx2dMesAZXKsK3isgN7zu6sceo1TYM4yJyGZluJy88hoz
	IEh4epc0Zu4QZN/MUYHFbxZPtnT4ErX1wbAVc48GVaSFAjscRCwwOXXaNhnrM79u+Ndvuh9Qfk5
	i1vuJvgpDocM2JmJYqKkk8ir5z4LSzkYfqSd/7Hjpt3WZYnl//SUVXK0KRZuyHzNCaNOMwKUtCV
	ZzUtRGaT67txHIMzPCfx9Lm4DP53asT/c+vkvAim+577NGAvTuza/yH9vtM9PafGt4sC8Wzv4GU
	I7ImzeILG1K6jaYlQ6f+d/0w3xjDjuEeXU++yifcukGy8/ie2GxBSEPA3oDrguIcQw6lnzM9rou
	9PAT5uvOiVG6LUMBhwEyrQe57NhkaI8hJSwNZOtMoRXKUdrFUNCkaX6uKJngV6y5c38U8ggOBnA
	tUvFatpZ9eAiL3kakJORM5lGlGfxJYXnmLLXE6DNHzVI9EXJoWGN6kuilrFQtQqUqtRSjgKYhB7
	fI=
X-Google-Smtp-Source: AGHT+IGOZUmESHwEmMO9Ne3aLJtxpBy1yi9TiruzsqJ6PuDoeCUcuEK7qdNEhIcQ4BXj9x/maQHb4A==
X-Received: by 2002:a05:600c:5296:b0:46f:c55a:5a8d with SMTP id 5b1f17b1804b1-47a8f89ba4amr100738765e9.4.1765818041122;
        Mon, 15 Dec 2025 09:00:41 -0800 (PST)
Message-ID: <b14362f4-aaa2-4ded-943f-4ad4a246f521@suse.com>
Date: Mon, 15 Dec 2025 18:00:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/ucode: Adjust parse_ucode() to match other list
 handling
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251215153245.2675388-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251215153245.2675388-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.12.2025 16:32, Andrew Cooper wrote:
> parse_ucode() is abnormal compared to similar parsing elsewhere in Xen.
> 
> Invert the ucode_mod_forced check with respect to the "scan" and integer
> handling, so we can warn the user when we've elected to ignore the parameters,
> and yield -EINVAL for any unrecognised list element.
> 
> Rewrite the ucode= command line docs for clarity.
> 
> No practical change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Jan Beulich <jbeulich@suse.com>
albeit I'm not quite happy with ...

> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -2752,34 +2752,52 @@ performance.
>     Alternatively, selecting `tsx=1` will re-enable TSX at the users own risk.
>  
>  ### ucode
> -> `= List of [ <integer> | scan=<bool>, nmi=<bool>, digest-check=<bool> ]`
> +> `= List of [ <integer>, scan=<bool>, nmi=<bool>, digest-check=<bool> ]`

... this change when ...

>      Applicability: x86
>      Default: `scan` is selectable via Kconfig, `nmi,digest-check`
>  
> -Controls for CPU microcode loading. For early loading, this parameter can
> -specify how and where to find the microcode update blob. For late loading,
> -this parameter specifies if the update happens within a NMI handler.
> -
> -'integer' specifies the CPU microcode update blob module index. When positive,
> -this specifies the n-th module (in the GrUB entry, zero based) to be used
> -for updating CPU micrcode. When negative, counting starts at the end of
> -the modules in the GrUB entry (so with the blob commonly being last,
> -one could specify `ucode=-1`). Note that the value of zero is not valid
> -here (entry zero, i.e. the first module, is always the Dom0 kernel
> -image). Note further that use of this option has an unspecified effect
> -when used with xen.efi (there the concept of modules doesn't exist, and
> -the blob gets specified via the `ucode=<filename>` config file/section
> -entry; see [EFI configuration file description](efi.html)).
> -
> -'scan' instructs the hypervisor to scan the multiboot images for an cpio
> -image that contains microcode. Depending on the platform the blob with the
> -microcode in the cpio name space must be:
> -  - on Intel: kernel/x86/microcode/GenuineIntel.bin
> -  - on AMD  : kernel/x86/microcode/AuthenticAMD.bin
> -When using xen.efi, the `ucode=<filename>` config file setting takes
> -precedence over `scan`. The default value for `scan` is set with
> -`CONFIG_UCODE_SCAN_DEFAULT`.
> +Controls for CPU microcode loading.
> +
> +In order to load microcode at boot, Xen needs to find a suitable update
> +amongst the modules provided by the bootloader.  Two kinds of microcode update
> +are supported:
> +
> + 1. Raw microcode containers.  The format of the container is CPU vendor
> +    specific.
> +
> + 2. CPIO archive.  This is Linux's preferred mechanism, and involves having
> +    the raw containers expressed as files
> +    (e.g. `kernel/x86/microcode/{GenuineIntel,AuthenticAMD}.bin`) in a CPIO
> +    archive, typically prepended to the initrd.
> +
> +The `<integer>` and `scan=<bool>` options are mutually exclusive and select
> +between these two options.  Further restrictions exist for booting xen.efi
> +(see below).

... then you say verbally that the two are exclusive of one another. That's
what the | there was intended to indicate. IOW I would prefer that line to
be left alone, but I'm not intending to insist.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 17:08:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 17:08:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187507.1508884 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVC3b-0005Si-N0; Mon, 15 Dec 2025 17:08:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187507.1508884; Mon, 15 Dec 2025 17:08:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVC3b-0005Sb-K4; Mon, 15 Dec 2025 17:08:23 +0000
Received: by outflank-mailman (input) for mailman id 1187507;
 Mon, 15 Dec 2025 17:08:23 +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
 <SRS0=gbMu=6V=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vVC3a-0005SV-Tb
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 17:08:22 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a8b3be5d-d9d8-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 18:08:21 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA2PR03MB5769.namprd03.prod.outlook.com (2603:10b6:806:11b::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.11; Mon, 15 Dec
 2025 17:08:17 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9412.011; Mon, 15 Dec 2025
 17:08:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8b3be5d-d9d8-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=H64hlM7XUCLVua85T/FkxDRCWDQ8ZnctBhSte/jJKTMe7boGhVpOOLxPnZltfdGi8tcgzqvO0pyi8m1lJEHyQp8SULY+Q1swas9yZGDoWu1LLNbAXrM+5y8mkgyyUgdS/2WM0+FPxq96acaA5GIsWM99zNwfngMMQ8pZ0f6uTNubEs1PPt0JH+40YXuMTkvEw22+J3nKxZnUphGOaLlh3f2bQUGT83rllRKIXVoMTYMGgrZxghJmK4jC0Ctr6mKRSNOor7Res61X1El1/jEVN0ZIr7IkxJnaiKTojk3tREmJKxI4q70q4vVZ3SKpzzDG0+G2jxwrDDlqoQ0agOgn8A==
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=w/PkPy5oGpKPCENYhicY2DpHfY5ZU+4J8Ci1LC+baXI=;
 b=WEejFWHWILAZmeGpNuoJnZi8S4CDoaqY66cNyBp8/cTpuSrsfJdaSfEs6RkIWAp0XPm0UzKG0SUDEaDdYQB358xtid5TRXmMNRDBgglWNuuOeHwCWR1pS2u5OwJqpt9hens1g57UnDsZYcivkXbaElVQAwE5cHGKeDfRIAGq3L1dwwFaEq8a5YhCWUtdmOka8Sekg7lAPO18QnEZmg+2NApiLle5ly1C0IsPgEcGDR+QJyvnhkyMZVOWikAer+5XBzt3AkudBv9AZDArjhTVi/gFNSxjuQPuXRLsJlP0aB+RlucZO28MjzBwXv/VSbQVXqYiVZGmjzRpALZIBM4Qyg==
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=w/PkPy5oGpKPCENYhicY2DpHfY5ZU+4J8Ci1LC+baXI=;
 b=RH5tBVwzbcbuGXwNuwq0RLEAsBONM6zENKGhUm0t/6lgP4wJZWL5Amcu1jfdfozwGTSz0sz9kD6NzmmcHpsmgX1TuMTD8Dk1xiy/070/MJ7BH/Pm7wm63u/w5lAoM0ypbGvpUfp3pa1oTJbXQ3TlAWc1PY4uVdK5J87dxVZQyBg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b6dc5f41-9504-44d2-ad17-72d0b20f1434@citrix.com>
Date: Mon, 15 Dec 2025 17:08:13 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2] x86/ucode: Adjust parse_ucode() to match other list
 handling
To: Jan Beulich <jbeulich@suse.com>
References: <20251215153245.2675388-1-andrew.cooper3@citrix.com>
 <b14362f4-aaa2-4ded-943f-4ad4a246f521@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <b14362f4-aaa2-4ded-943f-4ad4a246f521@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P123CA0025.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600::13)
 To CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA2PR03MB5769:EE_
X-MS-Office365-Filtering-Correlation-Id: 03ae536a-b06d-47cb-7ab1-08de3bfc8a00
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WE05bnVaV0NJOFhUVUhhcXJpZDJpdElLZEhKUDVFRFRrMTRjV3h1OVJ0OVlu?=
 =?utf-8?B?MWh4RS81Nkhzb080QnEwRHM0cEl5SDBMZlErRGorL1VaMnl2S05lYWkyYUpV?=
 =?utf-8?B?QXROWFJEMTkrSG82d0k4VkMrV3dZd0oxanMrZnJzL0MxWnN4V2o0TTB1UDJr?=
 =?utf-8?B?N2E2bTRWQzBaOUkveExUdW94Wmc2ZERkeSt4SnovTHMrTkpZdE5GOThnTzlo?=
 =?utf-8?B?bFhQRENJaEFCMDVEbmxXV0M3U1pEQTF5Syt5azVYU2thWGNWeUNJNUo1QUU5?=
 =?utf-8?B?UnFHRmxsTndVZEw0R3hZdU1ZRmZSRXZvaEI3dm9IME5NMUxMdEkwcUo4cmlC?=
 =?utf-8?B?V2ExNFplOXlBU1k3aDBFQUhNQ3c3azNoUGRUQytpWmRRdm9oaXBmY28vb3h0?=
 =?utf-8?B?MlU3WGdXUUdOK1BlU0dZdXRzclZqVkVja2VKVTRaS3VQOXIxQXVGa290OEdr?=
 =?utf-8?B?eFZGWEtrMzdHamVlYldxTmgxU25JUW1XQWtJOCsrMnprQ29iK1Q0c0EySVRC?=
 =?utf-8?B?VzZNdHV5MDZtaFIvSGkzQjdKZCs5Ymk4OEcycjR6NTUzTTZtMUlLcTZxNldl?=
 =?utf-8?B?RW5DZTFRNk1RTE8rLzhBeW1GNzlaUjUxd29DMDd1Zjhvenhxczk4UXFINmZx?=
 =?utf-8?B?US83TTZqUnZBYUduMzdtT2dZd2lwTmxCK0JaUVBkc05tUEkxM2k2Rkd6ak1J?=
 =?utf-8?B?QkVYejF4dFBGVlh0TmV6YnZrcEhRTEpkaFpOVjZReXhXRnpLQUVpZ0s3cWZL?=
 =?utf-8?B?N0FOM2QrY05NUlVNVnlsNmtHVEcvRWMwQkpQNnVZV1RPTHpZNUM0RERaRUto?=
 =?utf-8?B?Y1VTRjA5N2oyaFhwNURxcDRzczQrSmtJUHlOYmMrN3luMTVnakQvTzc4S29w?=
 =?utf-8?B?VEN0V0M4TElJcHZmVWZtUmxZSHVxOVY2RkU4cEFTM1FuVVg3ZDM5cU5FWG01?=
 =?utf-8?B?RGowVkw1L2RVSFV3YjZQeG1yUHdPaHNyOFFjWjhNdXhwWHBGL3YxOXBVU21B?=
 =?utf-8?B?OXhVOGVGUkg5SVBsVWJrYUprbDZxRmNONWtvOHJIVGt6Vk5pZWd4Qm8zZU1u?=
 =?utf-8?B?bkhnT21RaDcxcndjRUVKbVZxRm1LNTY1anZiYXp2TkdYVmRwM1ZZRUdjVzdX?=
 =?utf-8?B?MkovME9EeUx1VWtRR2hqcW5mRFc3Mm1odkxxTFh0OWxWZG8zVFRscFluZnNI?=
 =?utf-8?B?OXFQYTJjN3RwSU5HZ3pVZ2dRUnpGZ2ZKV0FYOGZvQ3JWZ2lkNkloeUVsUkJG?=
 =?utf-8?B?ZVJwWi9CeC96QTdnRTgyWDhramlMdmQ0Z0lKNnBrT1JLQjh5aHRpSkloVVBv?=
 =?utf-8?B?MmNtbXg4a3NrQjNyY0JXV3Z5bzV5SGJUc3NLMmhxM0VWRUk3MThLWUE5NVdS?=
 =?utf-8?B?ajJMT0xmY09BQWFWRXhvdXRMQ3N2aFp3dlZXZUVXdmQ1bU5WajNXbWQ5R2hi?=
 =?utf-8?B?SVFtL3NtZVB0NzNpckhXYXk5VHRQVWpodVdyVEI4QUROVHhpejduSlFKWWZq?=
 =?utf-8?B?NzZ4dTNuTVVuaEgvcEpyRXNBbFl1QU1mQkQ3UUJUc2lTNVgwMUoydjFNcHlW?=
 =?utf-8?B?eERjSkxXbGxKQysrempTK2F4S2xKOWdzcE9saFdaM1krdmZVQXRoUXo2TC9U?=
 =?utf-8?B?V3U3V3YvdVJLRmFWQUVPMEw0SGpvSzBaeS92d1dwanF6b1RkaGx5c1lHQVU4?=
 =?utf-8?B?cXljd24zUVNvQVVDb0EraTdaYWtHRHlaMnUwWGE4SEVVWE1mbjFHZ2F3a2Er?=
 =?utf-8?B?d1R4VDNsUWFKRmhYa09PNHZ1cDBWdVI2N2VTbGtXNTlOVWFpR0h1aUFYMjhv?=
 =?utf-8?B?RjhLdGZaS1N5ZjFWZllkRFBoRnRJUjRnQzRJSkxlWmNnaFVwODJFQmRJNXZB?=
 =?utf-8?B?a1dsbHlaYmVXN0taR1ljaklqcjdiZzJvV0lrc3dOaXQ1SktkKzdneldTTWpr?=
 =?utf-8?Q?bpC0YIRVxNKU9zLMaR0zCnQ8tsAZRkoi?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RUcyV254SU9zVHFEbGpjek5wRnVEUXM3TW9WY3FWUkpUb2kxdkZ5UFpxby85?=
 =?utf-8?B?ajZLcWFhWHdwZjFCZUUxR1l2ekN4dXFBWi9JRDZCdGVCS3pVNFFkMnlDb2tv?=
 =?utf-8?B?VXphaGtIdWFsTG5vWVRua3RJaDQ2MkRTNXViZi82VmF2Y1Vvb1czU2FseFhh?=
 =?utf-8?B?VG4zL3RRTHg1M1h6UGZhY2M4cWtNZlhTekNqSS9uQTdPZGc5ZEc5SHc2SzdM?=
 =?utf-8?B?ZnBBTjN2UXB4bGNNbGJoRnRRajdKbm5yYUNaYVJZVXk2Sm5iRnBwOGRLZnBX?=
 =?utf-8?B?Uy9jR0I1ektpZWQ4RFBTdTJoUUtFR1psNU0zS0hHd0FKRllKeHBFVHA3UzZB?=
 =?utf-8?B?TXZOblVkQlZVSm5SYVhiQ0RkM0l1WmJmbURJZTQ5WEsrUnc1aHFjY1VsZktp?=
 =?utf-8?B?dTNJNjlzU3JuVFlqc2JQaU1FNEUvbWMyWU5xYy9kNEtQMW1hNDd4WkpZWlJn?=
 =?utf-8?B?QlJtam1wc0o5MytOdmVnRUl0d3FiazVxZy9wamlaYXE3c3ZpUi9lU01UVUp1?=
 =?utf-8?B?WXhoa3RsODZLL2hWelcwWDBqbkRiWjBVME80WE1QaGxkajk4VmUyV3M3WVh3?=
 =?utf-8?B?d1VSRWNzckliVm05WjVyWHFPR2hSVHVUcE9MdjJ5bS8rS3doYTNjWjZaUjVj?=
 =?utf-8?B?UDlPeGE5LzdsWVFObUo2MHdnUEpPU3I2cEdhK1FzWnpvY2taWVhSVEt6ZW9E?=
 =?utf-8?B?U1ZNRjdNYy9vR21TYWI0YWJxU2dLblBxcFhZYnZWK3Fpa0xCOTdST0RXUjJH?=
 =?utf-8?B?UEdSR3ZrSmpMdjRQdWVpdTdJLzI3TWVyWTVSMFVQQ29zZXdUTnJrY0pIaGQz?=
 =?utf-8?B?azBscTRKdWdNVTZHd1luV0k3OC9BS1Vud1hqZjBGMWVVeWFpRzFrc3d0U1po?=
 =?utf-8?B?bnh2SFdpL3Rab2tqWU84d3BOSTd6U1VhT0ZFdTV0U0hkdUFmQnVHclpvODBi?=
 =?utf-8?B?bHF1YVFBT3JVa1p0UDhlaTFCME5mRzBGQ2JyaWMvR1FMU0kxdSs1R2M1b29L?=
 =?utf-8?B?TXhyMkxac2F3ZTB5SXFEN01FNzBqSWFmQnNWSTU4L3BZOU0rQUE5ajljRjhS?=
 =?utf-8?B?ZlZWZnhGK1p5SHNJK0NlWjV5bGJFb3VFSHVjZzFwVmNTNGhkenVuWGd0ZG5u?=
 =?utf-8?B?WjR1NC9IWDh1SHlQYmcwZzhHK1Y0QU9Uai9qNllpT3pyb2tQWnpNRG4wSnpL?=
 =?utf-8?B?V2YwNzh3MnlYYTExclovaXppVzV1ZGQ1Q3Z4Rm1OQmtBM2N2emhFblBackhz?=
 =?utf-8?B?Mm1UU1BzU3dvTW1mQVliRzhzOW1TQ1NMUEdTWXJFcEVZa0t1cWo3SWZHeGh4?=
 =?utf-8?B?N2htY0NTRFZCdi9nbFNROFpUaEUwWHZjdFNINUpMa1puaktNREtGU3RzWnVM?=
 =?utf-8?B?MFB2QlNTTlFGT2pWZFMzcFdna3hWbVdISTRtUzN0eWtPNlA3RXZKMGs4L1ps?=
 =?utf-8?B?dFNyL0Q3OFBXblI4TEdKWkRJbmNvK1pIeEM1aS91NHh2WG1SVU94cXRLU3lB?=
 =?utf-8?B?RzBaSlI5RXJyb1JFaUEvK2g5RzZJVHk0dUptUWJpN2duNkg0b2x0YUV0eVZk?=
 =?utf-8?B?SjdCS1pqWloreWxCSGRaeDMyZXE1d2poN1Y4WmNhZ0xKSFExWUNKL3FBUmhY?=
 =?utf-8?B?SXY2T3kyNHFGR2w1dDJWL1RXUlY1bmJBajNkUmFOWnpZYlZjdVQ3THorVEF6?=
 =?utf-8?B?Y2pNK3l1UHdMUXJnL0FqRUtSMmNGU3loY014YnQ3MHZJNFJtZ3JXKzV6L3p3?=
 =?utf-8?B?YXlwenJkSTU2K2VsZXFrRlRGSndGRVE1TGl6VDVoZlpzc0MrK0orRkpQU1RX?=
 =?utf-8?B?QVIwbU14RUJ4cnczQUFlQkJGZlNzNXJxOGlXbWxYQTh1TnowUDNVN042bTRm?=
 =?utf-8?B?bmhqTlJtK256anRRaHlDY0tIcTB6SEJYSHpKNTZFWTBtTUI4bElmWldHeFZs?=
 =?utf-8?B?bUp6QVUzT3RqenFwbjVBeGJsbCtkSVRBQ256VXcwMkg2OVU5UGdnNlZZeUls?=
 =?utf-8?B?RFhLbjJqTkQxVUZLR2lRVXcxZm0yWkl1Sng0VjEyQk8rS25mK2dDdFkvVW5J?=
 =?utf-8?B?ZjdZQnBTNjlvOXRXbWl0Z1FOUUw1SCtSaGFJSllyU2tublV1SUZRS09USCsr?=
 =?utf-8?B?VEQxTHllQ0VTVWtlRWtRQ29paVJ6VXdNOEV4UXFpdTBsZEJNQS96d0FIeUYv?=
 =?utf-8?B?aUE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 03ae536a-b06d-47cb-7ab1-08de3bfc8a00
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Dec 2025 17:08:16.6932
 (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: LNKU11E9MYxlv6EKvcKeNBclQPSQIwNuQ1q7D2ENgfXVX2JjZTgDXBY1ptnOENGZSAtyIKV5P7ZcMahxDnacZrI8JAb7Jd6s3X0SgNAgrxU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5769

On 15/12/2025 5:00 pm, Jan Beulich wrote:
> On 15.12.2025 16:32, Andrew Cooper wrote:
>> parse_ucode() is abnormal compared to similar parsing elsewhere in Xen.
>>
>> Invert the ucode_mod_forced check with respect to the "scan" and integer
>> handling, so we can warn the user when we've elected to ignore the parameters,
>> and yield -EINVAL for any unrecognised list element.
>>
>> Rewrite the ucode= command line docs for clarity.
>>
>> No practical change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> albeit I'm not quite happy with ...
>
>> --- a/docs/misc/xen-command-line.pandoc
>> +++ b/docs/misc/xen-command-line.pandoc
>> @@ -2752,34 +2752,52 @@ performance.
>>     Alternatively, selecting `tsx=1` will re-enable TSX at the users own risk.
>>  
>>  ### ucode
>> -> `= List of [ <integer> | scan=<bool>, nmi=<bool>, digest-check=<bool> ]`
>> +> `= List of [ <integer>, scan=<bool>, nmi=<bool>, digest-check=<bool> ]`
> ... this change when ...
>
>>      Applicability: x86
>>      Default: `scan` is selectable via Kconfig, `nmi,digest-check`
>>  
>> -Controls for CPU microcode loading. For early loading, this parameter can
>> -specify how and where to find the microcode update blob. For late loading,
>> -this parameter specifies if the update happens within a NMI handler.
>> -
>> -'integer' specifies the CPU microcode update blob module index. When positive,
>> -this specifies the n-th module (in the GrUB entry, zero based) to be used
>> -for updating CPU micrcode. When negative, counting starts at the end of
>> -the modules in the GrUB entry (so with the blob commonly being last,
>> -one could specify `ucode=-1`). Note that the value of zero is not valid
>> -here (entry zero, i.e. the first module, is always the Dom0 kernel
>> -image). Note further that use of this option has an unspecified effect
>> -when used with xen.efi (there the concept of modules doesn't exist, and
>> -the blob gets specified via the `ucode=<filename>` config file/section
>> -entry; see [EFI configuration file description](efi.html)).
>> -
>> -'scan' instructs the hypervisor to scan the multiboot images for an cpio
>> -image that contains microcode. Depending on the platform the blob with the
>> -microcode in the cpio name space must be:
>> -  - on Intel: kernel/x86/microcode/GenuineIntel.bin
>> -  - on AMD  : kernel/x86/microcode/AuthenticAMD.bin
>> -When using xen.efi, the `ucode=<filename>` config file setting takes
>> -precedence over `scan`. The default value for `scan` is set with
>> -`CONFIG_UCODE_SCAN_DEFAULT`.
>> +Controls for CPU microcode loading.
>> +
>> +In order to load microcode at boot, Xen needs to find a suitable update
>> +amongst the modules provided by the bootloader.  Two kinds of microcode update
>> +are supported:
>> +
>> + 1. Raw microcode containers.  The format of the container is CPU vendor
>> +    specific.
>> +
>> + 2. CPIO archive.  This is Linux's preferred mechanism, and involves having
>> +    the raw containers expressed as files
>> +    (e.g. `kernel/x86/microcode/{GenuineIntel,AuthenticAMD}.bin`) in a CPIO
>> +    archive, typically prepended to the initrd.
>> +
>> +The `<integer>` and `scan=<bool>` options are mutually exclusive and select
>> +between these two options.  Further restrictions exist for booting xen.efi
>> +(see below).
> ... then you say verbally that the two are exclusive of one another. That's
> what the | there was intended to indicate. IOW I would prefer that line to
> be left alone, but I'm not intending to insist.

You said that last time around, but it's still not how the parsing works.

ucode=1,1,1,scan,scan,scan,2 is legal.  The latest takes priority and
cancels prior selections.

The reality is that | used in this context is meaningless when there's a
comma separated loop around the whole thing.

If you don't like "mutually exclusive", what else do you suggest?

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 18:18:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 18:18:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187526.1508894 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVD94-0006Yh-MU; Mon, 15 Dec 2025 18:18:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187526.1508894; Mon, 15 Dec 2025 18:18:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVD94-0006Ya-Jo; Mon, 15 Dec 2025 18:18:06 +0000
Received: by outflank-mailman (input) for mailman id 1187526;
 Mon, 15 Dec 2025 18:18:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/3S1=6V=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1vVD92-0006YU-TU
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 18:18:05 +0000
Received: from mail-yx1-xb132.google.com (mail-yx1-xb132.google.com
 [2607:f8b0:4864:20::b132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 63ceb8e4-d9e2-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 19:18:01 +0100 (CET)
Received: by mail-yx1-xb132.google.com with SMTP id
 956f58d0204a3-6446ba3d337so2816538d50.1
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 10:18:01 -0800 (PST)
Received: from [10.138.34.110]
 (h96-60-249-169.cncrtn.broadband.dynamic.tds.net. [96.60.249.169])
 by smtp.gmail.com with ESMTPSA id
 956f58d0204a3-64477d39b01sm6664950d50.1.2025.12.15.10.17.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 10:17:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 63ceb8e4-d9e2-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765822680; x=1766427480; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4T6Um4lvSDWXSiTLwQULM2DnvvxOhPlCCys0EY44KiA=;
        b=D/cYtU+4gRUB7wtzehYsJqjoJin/912UWygUQyZNg/BmJU/UGkoQu/z0mnVbB2e8p/
         tdU/R9S9UhWer3Cb6/hglK2acTd+lPj5SYj3UXQORv/1AB76iICmjlOkb0LWd6XexxFK
         /F+I6UCXi+S/gpd2IDLOxYhY5rpc5wC2UBfZSc9xmPbEaYWlkxo9pD3Fz6+uBsm1+TLG
         H08xEytZMW4vedhq1wxA3+1jmCThfXnfSR5oHSMmSQ810Jh0fiHFBoDUBP/ZrXJePfGG
         2I2UQn+66mrB39w4sYIjVXT7FYRQCACq6ms22e6geZblq2H4+7SLEUudaDnps1fbqecK
         fFhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765822680; x=1766427480;
        h=in-reply-to:autocrypt:from:content-language:references:to:subject
         :user-agent:mime-version:date:message-id:x-gm-gg:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=4T6Um4lvSDWXSiTLwQULM2DnvvxOhPlCCys0EY44KiA=;
        b=pR7COojngtPfsl4NCiSf2KnD2nGv1MNjF8CgjAIvYo/ZJDBu5aUWIht71vfY0K1yGB
         eNyjtQk+llTbD2MTIEHRtDUINeDfM6HWlW7AL5+8U0w1FS9Ppz8HSH5hp+GLZomxS+BA
         oPBorI132IBcKtYqFiV+Rps+qt5ydJ3dQoT8qkqqrZA/qKSQjO+LIyfThZFRXQhPmT49
         ab7T+5GRT1mCZh9sDu8p4y1H08OgasEoytvs6n5T/Gjm2W7na/JFpWrdA7BcfzKr8K2i
         RK90hQpjco10IruYDw5zez+XenKNV+viurB99KGxj1veUhJQyV2qpnOKzTnDmNEWrrU/
         fYsw==
X-Forwarded-Encrypted: i=1; AJvYcCV6TcJrRHRMpI3c/fQNKBC82y0Ast7LYZab1GMAEGLwcNsOj7WKMHpMoI/yXf8CCSYANakbD1H87C8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzxzy64sRApvSjYUL9f+vm6SBTa9eOLoQfYktNUBe5FfET5ULj4
	Yq3TSM8Y5MT1+IK6JliY6oB2jHeacdL1EmkNKoPdMndP3epqbe4ZFAEEgJ+eV/Go
X-Gm-Gg: AY/fxX5auciMeXsOUbn4eZWfTgpe95XjG7whTfp7nfszM2OoTWofAJvdPICuiLUqkHG
	SWUsYcMAD+i3YpL1q9vGbqc9xnx4OJtjBoBPNjrlw5gN0TPLl/0As/di/zm7+NEiIO9fWfkqZP9
	KBF3Y0Uwcw8mNLZ1GXkM+YGa4CHmIdL3wBdJqekCJkjTrs9zxCFvU8n7XacMEg+QAr2BXWwB2Jd
	00JUympWYTXWP/lqyyK8JipRCsccnJPatV3gR0s0Go0iPaYqmqH6/ZFaz8CYF7DK1+IRCdi0+9A
	vRZZjBggkGzra6msni4pV4vD4u7NZ/kG0yamKycqDE8XgTE6yc/iv8xIejeUaQQ0tJDEDorf76y
	iONW/V2I0nMFGz6NscQ4Alf38t6WndLSmwU4jbOrfmNwv5xH1EgxytaKxH8Hzp5snrABFMVGiUB
	cLDFrBylzwoK/MKj9hbKgpRRHJ+gyw8l4zz44iIC7bP9Sgai3KiNv+8DPpBJaByyARljMfzb5II
	XoAOtkiZ2dJU5A5iwRI3QjajRw=
X-Google-Smtp-Source: AGHT+IEZMKInhnTkFKqSbHUlzyCurSKb8DW0sZshkjVXXfvNuLVaH1C8iPy8MEEQmSZiWzvixrDXyw==
X-Received: by 2002:a05:690e:128b:b0:644:60d9:867a with SMTP id 956f58d0204a3-6455567df26mr7859202d50.95.1765822679986;
        Mon, 15 Dec 2025 10:17:59 -0800 (PST)
Message-ID: <7ae50910-4a5e-4fb5-925f-5e34698fce27@gmail.com>
Date: Mon, 15 Dec 2025 13:17:43 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Undefined behavior in libxenvchan
To: Teddy Astie <teddy.astie@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen developer discussion <xen-devel@lists.xenproject.org>
References: <e06eb432-289b-447a-8c3d-43da4705b4e9@gmail.com>
 <e0c8ffb0-a916-4c78-bd5f-010b9a7a8bc3@citrix.com>
 <bdf22b1a-49b5-43d4-8dfc-178c0076c917@gmail.com>
 <55fa8ac0-c00a-4b64-abaa-c2cf088aec4e@vates.tech>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <55fa8ac0-c00a-4b64-abaa-c2cf088aec4e@vates.tech>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------rbCdLIhQWcASyY4TWZ9tgPdY"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------rbCdLIhQWcASyY4TWZ9tgPdY
Content-Type: multipart/mixed; boundary="------------cjUfmsjDNZJY9rS0pFGMrBlU";
 protected-headers="v1"
Message-ID: <7ae50910-4a5e-4fb5-925f-5e34698fce27@gmail.com>
Date: Mon, 15 Dec 2025 13:17:43 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Undefined behavior in libxenvchan
To: Teddy Astie <teddy.astie@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen developer discussion <xen-devel@lists.xenproject.org>
References: <e06eb432-289b-447a-8c3d-43da4705b4e9@gmail.com>
 <e0c8ffb0-a916-4c78-bd5f-010b9a7a8bc3@citrix.com>
 <bdf22b1a-49b5-43d4-8dfc-178c0076c917@gmail.com>
 <55fa8ac0-c00a-4b64-abaa-c2cf088aec4e@vates.tech>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <55fa8ac0-c00a-4b64-abaa-c2cf088aec4e@vates.tech>

--------------cjUfmsjDNZJY9rS0pFGMrBlU
Content-Type: multipart/mixed; boundary="------------WWYajQBTOOVsdoHRgBvxOUa1"

--------------WWYajQBTOOVsdoHRgBvxOUa1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On 12/15/25 06:10, Teddy Astie wrote:
> Le 15/12/2025 =C3=A0 00:08, Demi Marie Obenour a =C3=A9crit=C2=A0:
>> On 12/14/25 17:50, Andrew Cooper wrote:
>>> On 14/12/2025 7:09 pm, Demi Marie Obenour wrote:
>>>> I noticed that libxenvchan has undefined behavior: it passes pointer=
s
>>>> to guest memory to memcpy() even though they can be concurrently
>>>> changed.
>>>>
>>>> Would it make sense to reuse some of Xen's copy_from_guest() code
>>>> instead?  There might be a licensing problem (GPL vs LGPL), though.
>>>> I think the only approach that isn't UB and has decent performance
>>>> is to do the whole copy in assembly.
>>>
>>> memcpy() is well defined.
>>
>> Rich Felker wrote otherwise on the musl mailing list.  Specifically,
>> it is undefined behavior if the data is changed while memcpy() is
>> accessing it, either for reading or for writing.
>>
>>> The problem is the potential for creating TOCTOU races if suitable
>>> barriers aren't used, due to the compiler being able to optimise thro=
ugh
>>> memcpy().
>>
>> The concern here is about races in memcpy() itself.
>>
>>> Xen's copy to/from guest are not appropriate in userspace.=C2=A0 They=
're
>>> guarding against pagefaults and address ranges not belonging to the
>>> target context.
>>>
>>> If more compiler/smp barriers are needed, then that's the appropriate=
 fix.
>>
>> Rich Felker suggested to use an open-coded memcpy() that used volatile=

>> accesses.
>=20
> Do you mean that if a libc uses something like this as a memcpy.
>=20
> void *memcpy(
>      void *restrict dest_str,
>      const void *restrict src_str,
>      size_t n)
> {
>      const char *src =3D src_str;
>      char *dest =3D dest_str;
>      size_t i =3D 0;
>=20
>      while (i < n)
>      {
>          dest[i] =3D src[i];
>          i++;
>      }
>=20
>      return dest_str;
> }
>=20
> that the compiler is free to optimize inside this function in ways that=
=20
> conflict with the "actual volatile-ness" of dest/src ?

Correct.

> Anything said regarding regarding TOCTOU can also happens from within=20
> the memcpy (even though most memcpy() implementations and what compiler=
=20
> would emit here is very unlikely unaffected by this).
>=20
> Unfortunately, there is no available volatile memcpy in C, LLVM has a=20
> volatile memcpy, but not usable from C, Rust exposes it through=20
> "unstable" volatile_copy_non_overlapping, which got discussed in [1],=20
> there is also something regarding "atomic memcpy" [2], but I don't know=
=20
> the exact status of all this.
>=20
> [1]=20
> https://doc.rust-lang.org/stable/core/intrinsics/fn.volatile_copy_nonov=
erlapping_memory.html
>=20
> [2] https://github.com/rust-lang/rfcs/pull/3301
>=20
> Teddy

The C standard expects one to write an open-coded loop and to
not use libc memcpy().
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------WWYajQBTOOVsdoHRgBvxOUa1
Content-Type: application/pgp-keys; name="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49y
B+l2nipdaq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYf
bWpr/si88QKgyGSVZ7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/
UorR+FaSuVwT7rqzGrTlscnTDlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7M
MPCJwI8JpPlBedRpe9tfVyfu3euTPLPxwcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9H
zx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR6h3nBc3eyuZ+q62HS1pJ5EvU
T1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl5FMWo8TCniHynNXs
BtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2Bkg1b//r
6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nS
m9BBff0Nm0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQAB
zTxEZW1pIE9iZW5vdXIgKElUTCBFbWFpbCBLZXkpIDxhdGhlbmFAaW52aXNpYmxl
dGhpbmdzbGFiLmNvbT7CwY4EEwEIADgWIQR2h02fEza6IlkHHHGyiLVf/5wiwQUC
X6YJvQIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCyiLVf/5wiwWRhD/0Y
R+YYC5Kduv/2LBgQJIygMsFiRHbR4+tWXuTFqgrxxFSlMktZ6gQrQCWe38WnOXkB
oY6n/5lSJdfnuGd2UagZ/9dkaGMUkqt+5WshLFly4BnP7pSsWReKgMP7etRTwn3S
zk1OwFx2lzY1EnnconPLfPBc6rWG2moA6l0WX+3WNR1B1ndqpl2hPSjT2jUCBWDV
rGOUSX7r5f1WgtBeNYnEXPBCUUM51pFGESmfHIXQrqFDA7nBNiIVFDJTmQzuEqIy
Jl67pKNgooij5mKzRhFKHfjLRAH4mmWZlB9UjDStAfFBAoDFHwd1HL5VQCNQdqEc
/9lZDApqWuCPadZN+pGouqLysesIYsNxUhJ7dtWOWHl0vs7/3qkWmWun/2uOJMQh
ra2u8nA9g91FbOobWqjrDd6x3ZJoGQf4zLqjmn/P514gb697788e573WN/MpQ5XI
Fl7aM2d6/GJiq6LC9T2gSUW4rbPBiqOCeiUx7Kd/sVm41p9TOA7fEG4bYddCfDsN
xaQJH6VRK3NOuBUGeL+iQEVF5Xs6Yp+U+jwvv2M5Lel3EqAYo5xXTx4ls0xaxDCu
fudcAh8CMMqx3fguSb7Mi31WlnZpk0fDuWQVNKyDP7lYpwc4nCCGNKCj622ZSocH
AcQmX28L8pJdLYacv9pU3jPy4fHcQYvmTavTqowGnM08RGVtaSBNYXJpZSBPYmVu
b3VyIChsb3ZlciBvZiBjb2RpbmcpIDxkZW1pb2Jlbm91ckBnbWFpbC5jb20+wsF4
BBMBAgAiBQJafgNKAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCyiLVf
/5wiwYa/EACv8a2+MMou9cSCNoZBQaU+fTmyzft9hUE+0d5W2UY1RY3OsjFIzm9R
/4SVccfsqOYLEo+S0vQMIIIqFEq3FCpXXwPzyimotps05VA8U3Bd7yseojFygOgK
sAMOAee2RCaDDOnoJue01dfZMzzHPO/TVdp3OvnpWipfv5G1Xg96rwbhMLE3tg6N
xwAHa31Bv4/Xq8CJOoIWvx6fcmZQpz01/lSvsYn0KrfEbTKkuUf0vM9JrCTCP2oz
VNN5BYzqaq2M4r+jmSyeXLim922VOWqGkUEQ85BSEemqrRS06IU6NtEMsF8EWt/b
hWjk/9GDKTcnpdJHTrMxTspExBiNrvpI2t+YPU5B/dJJAUxvmhFrbSIbdB8umBZs
I3AMYrEmpAbh5x7jEjoskUC7uN3o9vpg1oCLS2ePDLtAtyBtbHnkA4xGD7ar8mem
xpH9lY/i+sC6CyyIUWcUDnnagKyJP0m9ks0GLsTeOCA0bft2XA6rD6aaCnMUsndT
ctrab42CV5XypjmC4U1rPJ8JQJUh1/3P48/8sMH+3krxpJ06KNWNFaUbaMTGiltZ
7x9DngklSYrX0T+2G4kVXNmjaljwkoLahwLla2gUWwBSyofXdqyhQdwZsp01KXNQ
UCyT/Pg+aDcm/E7OMV3d4lf7g/CSxiX2GSEe6BlhSz+Lmd7ZJ3g32M1ARGVtaSBN
YXJpZSBPYmVub3VyIChJVEwgRW1haWwgS2V5KSA8ZGVtaUBpbnZpc2libGV0aGlu
Z3NsYWIuY29tPsLBjgQTAQgAOBYhBHaHTZ8TNroiWQcccbKItV//nCLBBQJgOEV+
AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJELKItV//nCLBKwoP/1WSnFdv
SAD0g7fD0WlF+oi7ISFT7oqJnchFLOwVHK4Jg0e4hGn1ekWsF3Ha5tFLh4V/7UUu
obYJpTfBAA2CckspYBqLtKGjFxcaqjjpO1I2W/jeNELVtSYuCOZICjdNGw2Hl9yH
KRZiBkqc9u8lQcHDZKq4LIpVJj6ZQV/nxttDX90ax2No1nLLQXFbr5wb465LAPpU
lXwunYDij7xJGye+VUASQh9datye6orZYuJvNo8Tr3mAQxxkfR46LzWgxFCPEAZJ
5P56Nc0IMHdJZj0Uc9+1jxERhOGppp5jlLgYGK7faGB/jTV6LaRQ4Ad+xiqokDWp
mUOZsmA+bMbtPfYjDZBz5mlyHcIRKIFpE1l3Y8F7PhJuzzMUKkJi90CYakCV4x/a
Zs4pzk5E96c2VQx01RIEJ7fzHF7lwFdtfTS4YsLtAbQFsKayqwkGcVv2B1AHeqdo
TMX+cgDvjd1ZganGlWA8Sv9RkNSMchn1hMuTwERTyFTr2dKPnQdA1F480+jUap41
ClXgn227WkCIMrNhQGNyJsnwyzi5wS8rBVRQ3BOTMyvGM07j3axUOYaejEpg7wKi
wTPZGLGH1sz5GljD/916v5+v2xLbOo5606j9dWf5/tAhbPuqrQgWv41wuKDi+dDD
EKkODF7DHes8No+QcHTDyETMn1RYm7t0RKR4zsFNBFp+A0oBEAC9ynZI9LU+uJkM
eEJeJyQ/8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd
8xD57ue0eB47bcJvVqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPp
I4gfUbVEIEQuqdqQyO4GAe+MkD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalq
l1/iSyv1WYeC1OAs+2BLOAT2NEggSiVOtxEfgewsQtCWi8H1SoirakIfo45Hz0tk
/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJriwoaRIS8N2C8/nEM53jb1sH
0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcNfRAIUrNlatj9Txwi
vQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6dCxN0GNA
ORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog
2LNtcyCjkTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZA
grrnNz0iZG2DVx46x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJ
ELKItV//nCLBwNIP/AiIHE8boIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwj
jVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGjgn0TPtsGzelyQHipaUzEyrsceUGWYoKX
YyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8frRHnJdBcjf112PzQSdKC6kqU0
Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2E0rW4tBtDAn2HkT9
uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHMOBvy3Ehz
fAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVss
Z/rYZ9+51yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aW
emLLszcYz/u3XnbOvUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPt
hZlDnTnOT+C+OTsh8+m5tos8HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj
6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E+MYSfkEjBz0E8CLOcAw7JIwAaeBTzsFN
BGbyLVgBEACqClxh50hmBepTSVlan6EBq3OAoxhrAhWZYEwN78k+ENhK68KhqC5R
IsHzlL7QHW1gmfVBQZ63GnWiraM6wOJqFTL4ZWvRslga9u28FJ5XyK860mZLgYhK
9BzoUk4s+dat9jVUbq6LpQ1Ot5I9vrdzo2p1jtQ8h9WCIiFxSYy8s8pZ3hHh5T64
GIj1m/kY7lG3VIdUgoNiREGf/iOMjUFjwwE9ZoJ26j9p7p1U+TkKeF6wgswEB1T3
J8KCAtvmRtqJDq558IU5jhg5fgN+xHB8cgvUWulgK9FIF9oFxcuxtaf/juhHWKMO
RtL0bHfNdXoBdpUDZE+mLBUAxF6KSsRrvx6AQyJs7VjgXJDtQVWvH0PUmTrEswgb
49nNU+dLLZQAZagxqnZ9Dp5l6GqaGZCHERJcLmdY/EmMzSf5YazJ6c0vO8rdW27M
kn73qcWAplQn5mOXaqbfzWkAUPyUXppuRHfrjxTDz3GyJJVOeMmMrTxH4uCaGpOX
Z8tN6829J1roGw4oKDRUQsaBAeEDqizXMPRc+6U9vI5FXzbAsb+8lKW65G7JWHym
YPOGUt2hK4DdTA1PmVo0DxH00eWWeKxqvmGyX+Dhcg+5e191rPsMRGsDlH6KihI6
+3JIuc0y6ngdjcp6aalbuvPIGFrCRx3tnRtNc7He6cBWQoH9RPwluwARAQABwsOs
BBgBCgAgFiEEdodNnxM2uiJZBxxxsoi1X/+cIsEFAmbyLVgCGwICQAkQsoi1X/+c
IsHBdCAEGQEKAB0WIQSilC2pUlbVp66j3+yzNoc6synyUwUCZvItWAAKCRCzNoc6
synyU85gD/0T1QDtPhovkGwoqv4jUbEMMvpeYQf+oWgm/TjWPeLwdjl7AtY0G9Ml
ZoyGniYkoHi37Gnn/ShLT3B5vtyI58ap2+SSa8SnGftdAKRLiWFWCiAEklm9FRk8
N3hwxhmSFF1KR/AIDS4g+HIsZn7YEMubBSgLlZZ9zHl4O4vwuXlREBEW97iL/FSt
VownU2V39t7PtFvGZNk+DJH7eLO3jmNRYB0PL4JOyyda3NH/J92iwrFmjFWWmmWb
/Xz8l9DIs+Z59pRCVTTwbBEZhcUc7rVMCcIYL+q1WxBG2e6lMn15OQJ5WfiE6E0I
sGirAEDnXWx92JNGx5l+mMpdpsWhBZ5iGTtttZesibNkQfd48/eCgFi4cxJUC4PT
UQwfD9AMgzwSTGJrkI5XGy+XqxwOjL8UA0iIrtTpMh49zw46uV6kwFQCgkf32jZM
OLwLTNSzclbnA7GRd8tKwezQ/XqeK3dal2n+cOr+o+Eka7yGmGWNUqFbIe8cjj9T
JeF3mgOCmZOwMI+wIcQYRSf+e5VTMO6TNWH5BI3vqeHSt7HkYuPlHT0pGum88d4a
pWqhulH4rUhEMtirX1hYx8Q4HlUOQqLtxzmwOYWkhl1C+yPObAvUDNiHCLf9w28n
uihgEkzHt9J4VKYulyJM9fe3ENcyU6rpXD7iANQqcr87ogKXFxknZ97uEACvSucc
RbnnAgRqZ7GDzgoBerJ2zrmhLkeREZ08iz1zze1JgyW3HEwdr2UbyAuqvSADCSUU
GN0vtQHsPzWl8onRc7lOPqPDF8OO+UfN9NAfA4wl3QyChD1GXl9rwKQOkbvdlYFV
UFx9u86LNi4ssTmU8p9NtHIGpz1SYMVYNoYy9NU7EVqypGMguDCL7gJt6GUmA0sw
p+YCroXiwL2BJ7RwRqTpgQuFL1gShkA17D5jK4mDPEetq1d8kz9rQYvAR/sTKBsR
ImC3xSfn8zpWoNTTB6lnwyP5Ng1bu6esS7+SpYprFTe7ZqGZF6xhvBPf1Ldi9UAm
U2xPN1/eeWxEa2kusidmFKPmN8lcT4miiAvwGxEnY7Oww9CgZlUB+LP4dl5VPjEt
sFeAhrgxLdpVTjPRRwTd9VQF3/XYl83j5wySIQKIPXgT3sG3ngAhDhC8I8GpM36r
8WJJ3x2yVzyJUbBPO0GBhWE2xPNIfhxVoU4cGGhpFqz7dPKSTRDGq++MrFgKKGpI
ZwT3CPTSSKc7ySndEXWkOYArDIdtyxdE1p5/c3aoz4utzUU7NDHQ+vVIwlnZSMiZ
jek2IJP3SZ+COOIHCVxpUaZ4lnzWT4eDqABhMLpIzw6NmGfg+kLBJhouqz81WITr
EtJuZYM5blWncBOJCoWMnBEcTEo/viU3GgcVRw=3D=3D
=3Dx94R
-----END PGP PUBLIC KEY BLOCK-----

--------------WWYajQBTOOVsdoHRgBvxOUa1--

--------------cjUfmsjDNZJY9rS0pFGMrBlU--

--------------rbCdLIhQWcASyY4TWZ9tgPdY
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEopQtqVJW1aeuo9/sszaHOrMp8lMFAmlAUNMACgkQszaHOrMp
8lPGHw//Ta90z2foEZ/QV7+dc0C6RoQBykusZGXR1Ij8xL5INMfq1WUA3quULxK1
S8ofDDFoNWUEm5DnhhoR++YDBoQN6T6R8tAAsTY1bgBE02mLK1jTLaAVPlt3A5DE
LEYSQOEpDOqFgFf0t1zZRkqAJiwvG2gt4g8ikyxaRLtdXcb/fqjjvjC5o+f6/kXL
JIkFPdb7qFtTvhlYkPjyzZZZRCF7q7M3KYqSJ78PnGzWlMPA4XKo3ZXqQWmaEBHl
25Oz+cqTqSR5R2SfJ8nd+cIpDf9jpGfk0W+F/BY4WVHgRawuZC5qQWh+FwSwOpi0
uAZ6ng7shm+7iQ/tQf7Pej4wtEYfIqd71III/t7/tF7S9yu4dn38SPq0TrAE4rkR
jqhOpZQW7kIfTNykcFetM/AYu9YtAUrFSbolw2n4dtyIftmo9ZHB77s8Bu8c/xQZ
lqzVEaxjDp8InXTs3nYaFhRF/jYTe1zfKr0tyDM7bKRrqktq4nKDIueV2h/8OdEK
PEzlK0e6MY3eD3OxOIH4tDPWDZ/vCBIAEVDWaMQTcz5xwhmsGPdNyqMlDXefgmBC
dxE3UBE5vV9Ul+cBMjwbukFPJ78CyJi/AjmuJiO1os0u4HFw796Yy7Oa0kkaFTau
88A2eqPpDf4B+A03ANLpOkW2P3XsnvfWx7wqWfQu4JmcU79HX2A=
=Qhj6
-----END PGP SIGNATURE-----

--------------rbCdLIhQWcASyY4TWZ9tgPdY--


From xen-devel-bounces@lists.xenproject.org Mon Dec 15 19:11:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 19:11:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187540.1508903 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVDyj-0005mh-Ky; Mon, 15 Dec 2025 19:11:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187540.1508903; Mon, 15 Dec 2025 19:11:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVDyj-0005ma-IM; Mon, 15 Dec 2025 19:11:29 +0000
Received: by outflank-mailman (input) for mailman id 1187540;
 Mon, 15 Dec 2025 19:11:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6GmU=6V=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1vVDyh-0005mU-7C
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 19:11:27 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d6450c00-d9e9-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 20:11:21 +0100 (CET)
Received: from pps.filterd (m0333521.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 5BFFNWE32465365; Mon, 15 Dec 2025 19:10:36 GMT
Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta03.appoci.oracle.com [138.1.37.129])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4b0y28ap06-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 15 Dec 2025 19:10:36 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 5BFHcduh024791; Mon, 15 Dec 2025 19:10:35 GMT
Received: from bl0pr03cu003.outbound.protection.outlook.com
 (mail-eastusazon11012036.outbound.protection.outlook.com [52.101.53.36])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 4b0xk9abek-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 15 Dec 2025 19:10:35 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by IA1PR10MB7333.namprd10.prod.outlook.com (2603:10b6:208:3fa::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Mon, 15 Dec
 2025 19:10:28 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::312:449b:788f:ae0e]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::312:449b:788f:ae0e%6]) with mapi id 15.20.9412.011; Mon, 15 Dec 2025
 19:10:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d6450c00-d9e9-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=
	corp-2025-04-25; bh=pCivCSrwTAv2vF1zDUek5czQH4e16qJplgshxD5vjZQ=; b=
	DtL2/xv/RdPVhaGI28isZBYgWxJ/9fyKr+p7QS6x6wwpRzPxK00BOXF0jXBYg19X
	WUD3c0MPDLroDMMKs6YFlvMbjmSYI+WT6KsDyW6FIe9x+iRdpKARYlqIy1jldpc5
	iigLkH/U5i3x6tQT/cKRbGkzoytLw8FF+vd6TCe58W/STPj1lE0NRclOOHX//Mvw
	Cmhhke/fkpMGtlgNstLIOwDCEu880wxbPnP6MswiLQx2LVilV9NM5q7D7ABA1WT0
	AFe8e8hxZjlIrJ8lMMgDfS0ti/JRQdr/L0WmRR5Vkth1ddQgIIG+XWG+loyQXq/i
	5WIvPExWo8WP3U2U1uNYBw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=G9kdvjgdH+XIU39mvhvDRjXYeUo3D3smWIPvDzljvrxUlRJnMe3VCxUNwp091MLUstaOXgDc1zkSmKtuyVkfREorPaeGfB0m94aYdZ6Nw+vmWP356KVgjOzYOkPrSxpDZ7lkdioIklQ1is2AaRnbLSXIFS0qcp9ZEMk0gn5KkawH/hWGasjnXJbzDksCw7Vy2JLgHe6k3nDr+g7VrmC6fO0BkILPKsGsSkavOwZ0K4FYi6QYrjeXcg7gTeUQH5SOr3hB05Xd5u+Fa9opd8WoAeEPjb11pjipo/8NBwAQRHZp4esVtVUBRQwy5D3kQZT4V9PQw8dJ+4hOTzD/Xj5PaQ==
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=pCivCSrwTAv2vF1zDUek5czQH4e16qJplgshxD5vjZQ=;
 b=LRjBz0FkyaM2VUs/Q1AKndA/1TulmC8VE7hxe4BNQcBmD4Uz/IKnwvEYDqotGP+GqjndvAHWUhwZCQKK1HccE4ar1Etjipm0qWFC4FGaKyYC+c+Dnqv4RCYy9yQOuxa/LabnOXM54OhmJH7MDJfjK0+fPJKyYwBZIvygv7p5kWq4RSNuFOARDx8G08t7wuGvmKHdw5sKfRAujFo0inuwuhuqAN5b//BH+luTbZjgs/95XuPRnkrXO4729iEydpA5xMmIHbNgpivuCa3UTfRf9/x/YqrI/GQL5rEWWxEcP1lxXqNVWJ2y9DhSgrg8SrWry74wb7m+iAkVQig9cr9SGA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pCivCSrwTAv2vF1zDUek5czQH4e16qJplgshxD5vjZQ=;
 b=uJ8A8x523HoiLmO7WiwDmkYemgh1EyZtJkEBIIrwE5BHHtMEaX6ZqoKkj5cgBlhnRU8QEwQdpPMcDXdEiNVxjd2sBKZu1luFpp2g7+9MoqtdGepns4oamwGqnZ8rJKBUs0gAQtu4h0FAOjUMHS6YcC4Q90TFGdLBtlivwbt0caU=
Message-ID: <ace2b760-9cfc-4919-86c5-da22a3d110be@oracle.com>
Date: Mon, 15 Dec 2025 14:10:24 -0500
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 15/21] x86/xen: Drop xen_irq_ops
To: Juergen Gross <jgross@suse.com>, linux-kernel@vger.kernel.org,
        x86@kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>, Josh Poimboeuf <jpoimboe@kernel.org>,
        Peter Zijlstra <peterz@infradead.org>, xen-devel@lists.xenproject.org
References: <20251127070844.21919-1-jgross@suse.com>
 <20251127070844.21919-16-jgross@suse.com>
Content-Language: en-US
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <20251127070844.21919-16-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PH7P223CA0010.NAMP223.PROD.OUTLOOK.COM
 (2603:10b6:510:338::19) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BLAPR10MB5009:EE_|IA1PR10MB7333:EE_
X-MS-Office365-Filtering-Correlation-Id: 47b32e18-2a25-45f8-b5b6-08de3c0d9bf0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QWZHdk9xeHE3ZTNPeUdwNXBILzMxdFVzbkZuS3BQbCs3L01CMjJyNjIvVVp2?=
 =?utf-8?B?SldzY0QxQWtaSGN6aDhBYXplMitveThoUG9OVll5ZDdyWTFCVi9pbDNlUlU2?=
 =?utf-8?B?WjlrbFlVRU5UYWQvWER4K3h6MlNsMllzYkgveS93TStMajk5Y1N0dlFZNWF0?=
 =?utf-8?B?RUdoNEppelMwL2hqRFlBa1duTytQNmhIeWpBZDV1WTdPaGVicjZtQ0ZZdlU1?=
 =?utf-8?B?MDlBUjhkSG9kM0Y5SXROR1JXT2NldUZuYmtlcUZrZVoya29SalZlUHQ2RFZL?=
 =?utf-8?B?c1ROelJ4VXRCdGppa043VGZDdCtCa3Radk0ycCt6VFBlS2NoNUsrbWpsandi?=
 =?utf-8?B?OEV0Y0UybEZ6UTJPaUVIcmpaSjdWUUhOS0k4SnJ6UnJhSVNHQ1ZXbHQzQkxC?=
 =?utf-8?B?VVVSVSt6Qjd1VGdBY2JFaWZJWWpYOVNXQWE0RlUzcHZXNHVvdTZGL21LWUl4?=
 =?utf-8?B?NC96a3pCS3R3aHZjc01JUGRRb3NrZEQrVm16Zk1CRW1uWlI5WExOV0pkaEx4?=
 =?utf-8?B?U2hjQWE3bUlDejM4Q1FrbXRtc0RUT3VHUXFwNW5rUFVvWVAwdWl2TStsYVJ3?=
 =?utf-8?B?UURaS1h0TXhQaS9wVjFpWm1kRUxhMXNMVC9vZnZHU0czS0dNTjl4cXB2YnEx?=
 =?utf-8?B?Mno0d1ZyNk9yVnFheVJ5RXdVTFRTZk9KWTV2OWx6ZEs4Q1B3UDBnc1lGQy9P?=
 =?utf-8?B?L2J4ME1BZ2ZRRVdSRElKemtMVUhtVVNXMktDcTdtT3JQNTZ4bEMwTmM4eC9i?=
 =?utf-8?B?RERMTkpzd085ZHhMbkQ2TGRaeTBZUnBjZEQwR0greURWYnhNSUdlVmFFSWds?=
 =?utf-8?B?SHF1M2gvMzRMOTlqeVhIbDFmMG5hMVhPWHFIR0NmeVBXN251aW5xUEUrMjZu?=
 =?utf-8?B?Rjg2bDR5SmhSNmk1aGFSQm1tSFhqSElseVl3Q0VKQ2IwVDNWZHRRUnlwK2Vq?=
 =?utf-8?B?dVBIVW5YQnhYeHhxblI0eWxuUDJxU3p1ZmswNmgwKzFYbm51MXkxajlvN3ZD?=
 =?utf-8?B?THo3V3U3ME85eHZxRlNoaGR6dDcwUUNKQzJZTSt5aG5SNzN4SHF0TkQweXpV?=
 =?utf-8?B?Tm1LT2dHYkdBazNrdXBKUHhQUnBTUXdVZ0VBaStzd2lkU2JydmVGQWlmV3Bz?=
 =?utf-8?B?bGVmaldiTytDSmR3Wi9keklleExSOFFBUUx1UCtrNFR2dnJrN0czU3d1Q2FF?=
 =?utf-8?B?cmoyb3RTL2hDQ1pYbVFJMkdiWVlOZGtwZ2dlbnV3TTl4Uys3MEwybENUaldZ?=
 =?utf-8?B?TWRDcnNGUlJwY2tKbmRtSXUxRE1iUFdabitUWDF2UzdqZnBqZ2hNSUQzS0Jx?=
 =?utf-8?B?c0E3OWVNK2ZVTEJ4SEN1TjY2YnpxdTgwMkJXWnprc0IzS240UldRa1RWVXRv?=
 =?utf-8?B?d3oyam5WQTB3SDRyWnFkS1RLUCt6SiszdlFEL0dWMGlqRU5mR3BQTDVEalNl?=
 =?utf-8?B?OXVaenhaL3QwYVhEYnJjTGU1M0JQMTU4aDNVTmFEeG5acTRFUHByeWptN3FN?=
 =?utf-8?B?SlZmMzZHM2pxRzJySUphSWZrdmMxdGN4S1F5cmNXZk5xSVhhVFNBZGg3b21u?=
 =?utf-8?B?N1ZGM1FuYkR2eGYxMFFEN3Q2dzdyWXN6SDljOC9lUzJmaVFCdk5MdUxKWVl1?=
 =?utf-8?B?U0RYcUR3VDFubmVxdS9FWFdzczA5V2tGQTRENTU5N0tib3NQeFp4SXJOMDBz?=
 =?utf-8?B?WGZkUnlMNzlsaUsvZjdnbHdnMExWS3JjQys4RlpzckpoMkcrRFQrOHcwMVF6?=
 =?utf-8?B?ZlVMb2swZEhZSHZ2YStZZTE1REVpZFFJUmNxWGlibzVEWjdRaU02VUFwZ205?=
 =?utf-8?B?c2xmdkloV2tvYkFWaE5tWk8wSzdrSm9lVmFtS2R4aUhFWW9LL1kycm5Oangw?=
 =?utf-8?B?b1pZd2xIOEkzVktxenR2WHJ3VStsTHQrNDhtb2poL3ZuMTVWV28zLzFYMk5l?=
 =?utf-8?Q?bKlf3+/2tI3/WYS+QEg5uwXGueZ0Vllf?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RFJibjk4NXhqMUNtemFXOThJS2hUMEVXSEk1Qk0vQzlSS0lYTWptNmlTV2N4?=
 =?utf-8?B?NzF3UjBKZFpXeUtMaVlDeEZwSEpUS09lV3h3cGlCOUl3MDdHaU1yTm5OWngy?=
 =?utf-8?B?Vmc3SFliY0hseldPQlFSbENPTDBmNGE2WmRYZGlaVTFIbGNyT2JUdFJMbEFI?=
 =?utf-8?B?VUhrUjJwcVJ3RWpyc3MvMHMyZEZHRGhjbi90Q0V2ZnlScjBJV252SE5xc3Nq?=
 =?utf-8?B?L3J5QXRoVGVtWWFYSDc1YlF4M2s1M0IxZGdBZElKYy9ReXZWVUVGeUJMSFlz?=
 =?utf-8?B?aHNYekFNM3FKd1NlZkxuMnFkUlNiTmY0WENCQ2lQYWRScW05ZG1aYVgrY3Fm?=
 =?utf-8?B?ajFDUTlLa3BKbFg5dEhOc3cvMTBEU2Z6YzVZcEVqM2VkbmxDN09zUk9zM3k5?=
 =?utf-8?B?NHViRTdhU28vNEt2Q0FMemdEdUh1dWxJZTEveWsyQmdlQXlTUnhVWlBISDdi?=
 =?utf-8?B?NGVZTGZOdWlmM01pZ0Jud2VEUmFKOXNnWUlXRTdyRG5jTWdhSkU4NXNXdWF2?=
 =?utf-8?B?ZDR4ZXFDdTVtV3FXYU9YVEJJM3ZBUmJ5WlJQdXhHelUzVVJOQmMwaTVoeFg5?=
 =?utf-8?B?T1VOYjlSN0lQZ1M5YUpkNVVObEh1Tmp0TE9GYnROeTF2NVM0S1FhblJyTnV4?=
 =?utf-8?B?akRCL25FTjhPUndEbmRTeFJPU0ozdjBBTGppUTFFQklZN2VoVGFkUTYzQy91?=
 =?utf-8?B?aWZ6MmF4TllSaWhWZW55UGRiRTUwRERtTGFwclQrK3ZrR29jQU5oajZEVDV6?=
 =?utf-8?B?R3l3cHhldEZXUER0Y01nREJ1V01OWm9XVE56OVBMSG5mT2ZmZ21WK3h4ZDRk?=
 =?utf-8?B?VWc5NXU0TityWnVuR3o0aUpkWW5HQUJZUmJGbHFZNi9DTjFQVWdvQVdSdTVY?=
 =?utf-8?B?ZVNHbXpvb1I0RGhYajNkbUs1RGl3eDA3VWJiK0ZWTFhiYkxiUzIzSTZaWnBn?=
 =?utf-8?B?b0Yxd3FqeEJhQnpYL2h2aWlTY0VkM0dBY2NmQzBkSFNJVmNBVzh5UGhRZVhH?=
 =?utf-8?B?aXpjeTR1ZzBOLzc2OXBRZkUxWElsSDlYRWFlSUZLWXJHVHVRc0dIRnJjNmNP?=
 =?utf-8?B?cmdwbERjdHZZWUsvT3FmNXlPM1NiYzg5SnpaMzc1c1d0UlFxRU5XbEx6OTRS?=
 =?utf-8?B?dHFPQWZ3U3Y3bzMrb2FQZkswQVRuU1lSL1p2YXZPSmQ1a050VlhCK2JDMzBC?=
 =?utf-8?B?UEdjQWhUY3dZT0lVTjgxSjBjOXorOFd1Z0svNGpqZGM4U1Y0elpCaC9iUHRZ?=
 =?utf-8?B?dUc3eWVKcmJqU285TEdWSXo2SFhHRDZ3UUQ1ZDNJTWhxZys1bXROazE3d1VG?=
 =?utf-8?B?cU16bkg4M3lqSW5UNzBKMXhJOGphVFFMOG9PZDhNYno0eFloS1dLdkZnNkpz?=
 =?utf-8?B?VVZUVGpDT0dvM3QrRjZnd2xKVzVSaXR2QlpWS1NpRHRYZ2lCQ2ZxU2J5ZjRi?=
 =?utf-8?B?ZC9JUUZMcVVQNGhDcGpoLzh1SWl4NjFDcTFpeXg4d1IySko3K2dVcVpCcjc1?=
 =?utf-8?B?SUQwRkpxKzBkWnJWL25UbE85N05zSzMySDBaanY1TG9pNVllQ2FOWXlINmwx?=
 =?utf-8?B?MVZxQVg3RzZPQVJtT0tUWjhqLzYxNnpqaFRMdWlPT2lpaWVrTXZyNWN3MXIz?=
 =?utf-8?B?R3JId0FPM012a3ZqUktWOThkdGNjWTc0K09Ja1J3YXpXQ1lIS2NyVlVQQnht?=
 =?utf-8?B?dUkzV0RMdlc1b2h5UzZReW1vM3dKOXB3d0J2WW9FcHRibTJkQjJnOEdSY3FH?=
 =?utf-8?B?cWR4bmpNaXJjV0FjNW4yNlp5UkNwMkYwZTk3ZzQ5d2MrL2dQdlRtcWdWcEdR?=
 =?utf-8?B?dzU3WFROOTl4Q3E1WXU1VHM1MlhsdmZUZitNb1FzUHpXNm9NRitRSm5jbjJI?=
 =?utf-8?B?eGw0RUluZEV5d2dUNTFuUENVY1hZRG1iSnJEcExLRlFFV2lrUFlFejU3UGNO?=
 =?utf-8?B?RnBtMUdNRjluWWdSbHFQcFJwdHN2cStCRi9KUTNmc2I1OFpSUXFKWitzbDVh?=
 =?utf-8?B?Mkp1NHdZQ0JnRHd4R1lzQnlSREJvZTdHaGEwdXZUSXF3T3VTY2cxVXA5Mjdu?=
 =?utf-8?B?VE90eXJ4L1p3NFhIQnhDa2hibWd1UWkvM0JPK2wzY2pYcCt4Ym9RT1NHRWph?=
 =?utf-8?B?ZDRJcVp0d3VvWk81eUJPSG0yUWlFM2pvM0M2bW1GL25PNGtrcVRnMlI1OWw2?=
 =?utf-8?B?ZXc9PQ==?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	wLasl/F8R1XZxT7kKPsr4Bm/8/CPq8+3HNrHt237a6CCZFo5Y4FXn8j1n/+i/UjUm1J4aGCx2G6v9fACJrvSypD7yLarYEanueV7AJ7Ir08j1yQhv5/EtS7twugqIrIhKGU+XRjFnb3RaKzCpmVHiWAljSxkfoJ6NlAPxqRSayETnR+bI8fbFjzcpU7zWRtkj8ey05DwsD6ABYlSzfVp6kOF66ESNAUZp5BVfqeoBtk0hRtuZfc7I0qL0vDn/2Ll9zfNZGWHfp6UlYEJzHFT38xho2PeT03WpF+rvu/rQ8R7y7vaFFh3NPiSFEYT/qM7Dpqq0gK3gBV3E/J2Ume5cfIq68efR5H74DkkcpUHh9oj878TEUGmcljIQ0IpOkheyvYo3pS+bbURwKXqlXAD4LX56sokibyOQAgXA0j1sMjGBQcxGvIkR5xx8/VBhVz7EeBGBLZvlsJRc1z+ic+TVp7PfOpGhZt4vPz3FutIB5FLtVfxHne9j54e/EFOC5KqWZIWM1Y+APpWwcFZrQdsO62h5gJH6IVcevkliM51fFrjYuG25l6Keg3xSj5oaMUhyo+j37ZnFf3fxMxXfDmmizNziEMZpG8ftYIgjyxo9UU=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 47b32e18-2a25-45f8-b5b6-08de3c0d9bf0
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Dec 2025 19:10:28.3517
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: AjcxbltqvSuVuK+KVJBvxQtnEbTY+RVdgIyWiRSs2uyw9y4KvLYBuO7U8YSmNbCEpgmXdMHvznKL0xogRjs/24j1jazU/0XGsYPhZ6F8auI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB7333
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-12-15_04,2025-12-15_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 spamscore=0
 bulkscore=0 suspectscore=0 phishscore=0 mlxlogscore=999 malwarescore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2510240000
 definitions=main-2512150166
X-Proofpoint-GUID: ztFGM9eb2EJUWqfGEhVjUQ9OUyXV5d7Z
X-Proofpoint-ORIG-GUID: ztFGM9eb2EJUWqfGEhVjUQ9OUyXV5d7Z
X-Authority-Analysis: v=2.4 cv=fOQ0HJae c=1 sm=1 tr=0 ts=69405d2c b=1 cx=c_pps
 a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10
 a=wP3pNCr1ah4A:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=iox4zFpeAAAA:8 a=yPCof4ZbAAAA:8 a=AoAeTN9Xs-P516mdDt0A:9 a=QEXdDO2ut3YA:10
 a=WzC6qhA0u3u7Ye7llzcV:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE1MDE2NiBTYWx0ZWRfXxnydIKyYcgwj
 /3r2U5xvfgW1ox0FEuUk+zTEj5Sce95gul+1VGXwtInoQ+RZvQzh0NyvVg4bWC6/hQB28y1ROWZ
 IUK4GbEQtz5Y2EYKYZyMdsV3i2GiSCMURZ7xUFsAJJgkO2s5aoGQ87pJCNlRF1VokMZjgtZ3IDt
 ywWfPZbJJSZAYyhPdzgbxQbhz1IWxWf3JEpuonzhYTxf4i3Ok/CRB9anMsypcA/C2XxbSy+/7uG
 RxYPqgl0aPE2GMyFKY6cRn2Ur+lIHSgpMnkFKgNxuE3JnWsWbgy5V4QR07FQsdALP+kN1H+TNiE
 q9bT78xT7bk8z3PJEh2idtX2pwnXK2HVYGTiPpSXOtIh9GhIRtWBtXzZCt3oyqZ6IHRKJ3gW7cB
 Y9hm8YSMVuVJ6c++jZ1hx5tNrcLesw==


On 11/27/25 2:08 AM, Juergen Gross wrote:
> Instead of having a pre-filled array xen_irq_ops for Xen PV paravirt
> functions, drop the array and assign each element individually.
>
> This is in preparation of reducing the paravirt include hell by
> splitting paravirt.h into multiple more fine grained header files,
> which will in turn require to split up the pv_ops vector as well.
> Dropping the pre-filled array makes life easier for objtool to
> detect missing initializers in multiple pv_ops_ arrays.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>


Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 19:15:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 19:15:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187550.1508913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVE26-0006L9-3Z; Mon, 15 Dec 2025 19:14:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187550.1508913; Mon, 15 Dec 2025 19:14:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVE26-0006L2-0K; Mon, 15 Dec 2025 19:14:58 +0000
Received: by outflank-mailman (input) for mailman id 1187550;
 Mon, 15 Dec 2025 19:14:57 +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
 <SRS0=6GmU=6V=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1vVE25-0006Kw-Dh
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 19:14:57 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 54c9d847-d9ea-11f0-b15b-2bf370ae4941;
 Mon, 15 Dec 2025 20:14:55 +0100 (CET)
Received: from pps.filterd (m0246629.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 5BFJC7JH2885738; Mon, 15 Dec 2025 19:14:33 GMT
Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta03.appoci.oracle.com [138.1.37.129])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4b1015tm4v-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 15 Dec 2025 19:14:32 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 5BFHWgZk024823; Mon, 15 Dec 2025 19:14:32 GMT
Received: from ch5pr02cu005.outbound.protection.outlook.com
 (mail-northcentralusazon11012041.outbound.protection.outlook.com
 [40.107.200.41])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 4b0xk9af25-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 15 Dec 2025 19:14:32 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by CH3PR10MB7808.namprd10.prod.outlook.com (2603:10b6:610:1ba::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Mon, 15 Dec
 2025 19:14:29 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::312:449b:788f:ae0e]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::312:449b:788f:ae0e%6]) with mapi id 15.20.9412.011; Mon, 15 Dec 2025
 19:14:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54c9d847-d9ea-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=
	corp-2025-04-25; bh=Vjb5lhhVrSYvN17SAYzLSKWeOVy4KIGYjZGrKUtjRhY=; b=
	BFi/98btISljahesY6J7e/l1gFc/HZMN4XYE5DMf58aa4iMHuYsmBPT6Wb1xyFdX
	iHQ6XKB6B+qeVVT5HuTK/pEEzOnfIjMGK1caLU5O5d1dvXCgaDXsg71DiRWux8A6
	iDzlv7r+E98hhV0MPzCibtnGgQ10Bim7rKvqGqtYsAr2CEHDazi7GtY+bh9yCup/
	EY1I3oSK4ryPZIgcmv9PIHIvaWEEbO98poFMojzro535+yF86CGH10LieeSv2UKz
	fJKNM9LqvacDikMn1YQ3ycpPZmfVpbI+bR74jVbnmLGbiEWyyVMjHeZ9CZDlxY71
	KfaTmveCuF4QUFkN1xAF8A==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Yig/kDIHDBweHrJvekw1kA3l+XfLQoJx3MAUPK1FpJjoynKwlAOcTZKe0EiadMd0OEcPxDs6Gh61cq7RE4c/WTPlH7370Zbf4Ut3UFbUc9VoUTmjDbGc2oTuiAyYnIezdVCv87XU56fZei2SpNb9J6p6K+PP0uNwqxsEGGYj41WrUAB83uJ3pWAN5naJvitE2aoD4CNLHitbG3O99SFohs/SBlcDNJ1QQiGQHdUoLhahDF1q1uCyzb/LsaKotRpw8JalLAs1DHYDxXRUIBOs4JlIE+BaLM1qYCT+0OdQqAG6IY3KfY0koj8FXQLjTOuwNWdOvro0uvS2Hub6O58seA==
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=Vjb5lhhVrSYvN17SAYzLSKWeOVy4KIGYjZGrKUtjRhY=;
 b=Yf8TnNRAw0t+fSs06pnXS5d4nYpgy5pdGrMYAZzGjCDvtNkaD6pR3biFnwSXJ9FP9uUm27f34nJsNpVV2imqDXv/r6eSCJszzB2lTxJxYV/D8mUDIm8/ujZNjKnw92K/aypdS1Jx0RiPL9Rdq1EUFn1RLgonNy5SCU8F56ldDo9Und+WXw10yCv3XkbUBv9XvNOkxrGAHoNnTNPlvBlyChgNnBIliN73c3ujv+iDc699FEMwn7HfVy5yEqJnwF3wzrghgPRavjmTVt3uT+MbOpUaU4Aejl6+VxBc6VCeiRtyxgCoY/bZlD0fzNy16F9k9mEefLH9iomLWgqpK+tHGA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Vjb5lhhVrSYvN17SAYzLSKWeOVy4KIGYjZGrKUtjRhY=;
 b=YCwgKt/PzGmg+bIqIsarI3vr77yebjbKmnMFSQyCPHwR5I5+gCixNzPfrdrmHFvOukuA7N0YT1w5zajrvKkZYxEJ7suv4Lf0JNGcVxubBYWeRhApE25pJQYmyjUuyBfw1Qv2Ipt4Zaj9F4y8ahUfuyLbWTKL58kiJJLgvSEl3L0=
Message-ID: <4c295607-909e-4a7e-abde-60a71c88702e@oracle.com>
Date: Mon, 15 Dec 2025 14:14:25 -0500
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 16/21] x86/xen: Drop xen_cpu_ops
To: Juergen Gross <jgross@suse.com>, linux-kernel@vger.kernel.org,
        x86@kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>, Josh Poimboeuf <jpoimboe@kernel.org>,
        Peter Zijlstra <peterz@infradead.org>, xen-devel@lists.xenproject.org
References: <20251127070844.21919-1-jgross@suse.com>
 <20251127070844.21919-17-jgross@suse.com>
Content-Language: en-US
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <20251127070844.21919-17-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PH8PR05CA0022.namprd05.prod.outlook.com
 (2603:10b6:510:2cc::10) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BLAPR10MB5009:EE_|CH3PR10MB7808:EE_
X-MS-Office365-Filtering-Correlation-Id: cda93cc0-f5e9-43f5-9172-08de3c0e2bcc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?R1VJR3dQTXNnbVNiUGZ5MUcyelBLSGJqSHI2WnpjamtKM1BYZS9uYlg5bmRj?=
 =?utf-8?B?NDh1THoyQ2VZVHo3TVYvb2lReTVuSUFvNW9UblAwbDJFQ3R0SVBmV1MxSjFG?=
 =?utf-8?B?TFpUM0Erd1pTejZ5ajhSSDFicjFkQVVxV3hHZnVwTm8zUWFMSzJBcnpDMzJr?=
 =?utf-8?B?TEpRWUVhUmpuQUJ2QzZpWFlCUDBMMG5US2F1RDcvKzhxbEQxbVZFRGJ5akhh?=
 =?utf-8?B?V1Q5MWc4YnZoNlUzZitXV2NvNzI0czFDemNiZ3IxVkJJV1YxMUo4UlJhT25T?=
 =?utf-8?B?S3F1a2k1b3ZRa2hOQ2NRTkJKeFd1T0VxZjFJYlVrQzNqcldGKzdRNmNxS2U3?=
 =?utf-8?B?SVRnOTN5ZTZYbmxIWG55cXZhWnVScldPY3MyWUNoK1F4VWZudGlzNUFTUTZo?=
 =?utf-8?B?ZloxMHFHcE43dVBhSmdaN0doRExkcVdJdzFUNWIzb0JFNVpUdi9ud21zTE5D?=
 =?utf-8?B?YityaTBGdFdHb0ZKWklWTlNtcHZ4NnNic2RpK25QWWRxa1N3Vm9MRjRKMmdw?=
 =?utf-8?B?U0N1QnNzOVltbllzZDlQdS9GRCtOa0VzK2tmY3N2L1dRTEpCaUpvdjh3NGVV?=
 =?utf-8?B?SnRkNFhtUGhqTzVqMXJnbzc0SG5ualZjb1dQbU9mOEREUi9JanlneHpZbnoz?=
 =?utf-8?B?OHJPSmQ3cHZmd1NLZ2NSalQrWjQraE8yYVN3ZnhBNG43dUx1eXJyWEVGVmoz?=
 =?utf-8?B?aHF5a2MzR0Q4QjlzZGMwL29xWVNIRjZQRTVUKzJ3MXFZOHR1eGx5Z0hHUHEv?=
 =?utf-8?B?SUhxV2txcnByTjdsNXM4R0Y5Y2Q0a2ZrSXBjSGVPNEZzVUtLV2Nlc1YwNXVt?=
 =?utf-8?B?YnlEWDBuL2krMHNEMnBBY016aytuaS9rOERjYnZCTmJ6c3ZWamhjZVBiTUtS?=
 =?utf-8?B?Q1NmdXNhSU5FaXFIamJyMVUyd0E4VXZRODl4Y2VSN3NvZDNQZzA4bGxJQjlM?=
 =?utf-8?B?SkVBTk9ndk9hTVR6U0lOR0lNMXJXdGgweGVuYnB4Zm1sNlhkNTErbG5saVlw?=
 =?utf-8?B?Z1ZqUXFabXFzUFlidTZNZkVvRm9Lc3dXUHFtV05LOVQ1b2ZXWTZjcERpTDF5?=
 =?utf-8?B?cURXS0JSVlRYRXNiaWpuSVdhblQ1RXViRUlDbG9QUFlLVzJzTnBIQklMSzZn?=
 =?utf-8?B?cWxoM0Y5TUNleWJxaUJNUS9HcXVhVjF4eHpSUElvY2dMdFZWL1ZtRzcyQW4x?=
 =?utf-8?B?cHNJd2tSc0dQdkwySzJUZGtPby94TU1XVktYTkpnbklmV1VaRkRyUzdTMU9l?=
 =?utf-8?B?bE9kL2R3dlVwNXZuR3dsTEYzaVhNV1Bta1drbUtmNlZzQ0VSL0JUcFdrK1dU?=
 =?utf-8?B?UStxemtZbG5RenA2UDdOalh4T3RjUnA3VkNLTU1xSUJWOHhIMlNKdnkweE4z?=
 =?utf-8?B?YTB4eHN5dHBEbGsrMzN3ZEsrakxGc3hmYlcxekIvWDdxRnZzeTNnYmxQV2g4?=
 =?utf-8?B?TVplUjZTamlXN29FVWxITnVZMmZGWlVtZ2hJbmZpY2pzRFZGRVFVTkFWNERO?=
 =?utf-8?B?dk9oMkNENVZSWkNCdTJkZUoxbXlScURXREFsZklnb2tENTdSNTRHa2FBTnpT?=
 =?utf-8?B?V0sxaGwzd2QyUkNzcHJnbno0MnVSZUNqUEJNVU0rUlBhcXVwRnU3a0V6eHNz?=
 =?utf-8?B?Sk15TWRYbHk1N1pyci8vanpUZkp5ekNsMnk1MHdZcXNJQmZ2bE9POGp4clZw?=
 =?utf-8?B?S0NXclU0dlNqSzZXZExvY2xFTFNGa0ZCajlReHFLWC93ZE1Zbk9nUHIwTGpB?=
 =?utf-8?B?VDYybXdYOCsyQmVFRG5hU2lnM2ViaklYZGxZV3NOVXdKeVdkZXlvWUdzS2RR?=
 =?utf-8?B?RzdkMjB4T2VxZUZJWXgvQkxTOEVHQSt3WklpRVFOTVRFUjVHKzJYNjVuTnJ4?=
 =?utf-8?B?Q0hVaUFMTFIyekdLcmIwcDJObHBzN3BvWlJxL3BkdnBESGdvRXYyUmtqNHpn?=
 =?utf-8?Q?MfVktfPm9AOCpZ5AU0Jsslhgm7Sfi1vp?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TlBzcUY5aDgyYXY4OVpPUzZrZVl2aEhaSEUxMW5zakVkblNzdURvcWRKSGJR?=
 =?utf-8?B?T1ZTYjBDTzNGUmtOOFlvNW9vbElOaCtydGdpWmxQRmJjUFAzYnV3aDJyc3hL?=
 =?utf-8?B?THBYMUpEbWJEYW1qRWtFNC82OE9JMjdRRUl2RFh5aDhUbUt0NXpJcFFXYVhG?=
 =?utf-8?B?aUJnTnhoY1RZU3hCRmM0dUV3RzIvUlp3WkhGZ3EvVTdVU052QTE4cFJGalIr?=
 =?utf-8?B?RXJxNDd4SjQzaWtwdUphamRRdmxVOWZXVXRiYlVKaFNqaW1TNHZHcng0My9T?=
 =?utf-8?B?Qkt1ME9BRGxNQnBNRUJMenp3QlAxcW5yUitpVzYzV2RQdWcydW5mengwbWlR?=
 =?utf-8?B?WlNQVmJMa0d5UXFMRG1xcDFNTnhYQlVWVmdzS3Y2ejhZYVpyckJnTFF4V3JR?=
 =?utf-8?B?TEtvUElxMm9xbS9sb3JtVFFEdmhhdnBnVEs4dklCSXNIS1dLTHJ2dSsrenc3?=
 =?utf-8?B?RFJVM3kwc2hyR3A2UHpGa3BFWFVMQ2tpWUNuWUdENU5UVFZhczVHSmJaSzIv?=
 =?utf-8?B?bWYrZTV4QUpnN3hTL3pCK3lDbkNuZFB3Sk9zdy9sa0o5QnMxbHoxdjJmeFEx?=
 =?utf-8?B?SndsSTFXWTdncW5PdW03aWJTNVFubWN4VmZZdlVFSytIY2RjNXlXRHVDKzds?=
 =?utf-8?B?ZW5wdVdzN3RJTlFIQ0YxQWgzSmlZamNPL2FUazM3NXBEQzJ5RnB3MzVuc1pa?=
 =?utf-8?B?QmFjN05OL25QTHU4VUYyUjBEbXZSTVRyM2ZTZnVKOUhvNjlqQS92VFk1MXNu?=
 =?utf-8?B?TlVPVnJ3T1lrcUxsWlRFY1JQVVhiMGFMSmxjUUFXbDBOakRYS0wrOFY0TElz?=
 =?utf-8?B?VWVBa0MwUmczQmRtNDc5TldMOFBrbzU1S2cxUS9iTmhhb3d0YzMyTm1KMGJr?=
 =?utf-8?B?MkkwdlFXS0JxLzREdVllT3UxTnI3TVV4VHBESWM3enJvaWJwVVVPeU9VTVNW?=
 =?utf-8?B?MVBjaGNCekVhVEQ5eDlNNlcyYktyODA5R0Nrb3ZPWktFNVo2M1dTS2ZNcXUz?=
 =?utf-8?B?YS9USHlxekhpaitidVY5TS83TEw3Z2JsUVM1MjBEYU52bWRZWERHNWpUY3g0?=
 =?utf-8?B?Y1J6bzh0WFppVDJRdmFYL05DMlFaUzBhak5TVUMvTzhqUzExdU9rL1ZsTDM0?=
 =?utf-8?B?U1NxQmlkdEdLRFBaOFVaQXlORnAwTVBQZ1lSaWpmSUJDOC9VdEQ2UzJiWmFx?=
 =?utf-8?B?R2hnMmN3TVVVUjhXQUZmS0E2T3dRRENGTldpaTREZk5ObDZmRE5PVm9xRnlY?=
 =?utf-8?B?RnJ4RElIQWtCV2hseFBXMnozMktRZUdya0xqYnJvRUFqelRmc2F5TEFoNkIz?=
 =?utf-8?B?eTdneFRxZ05FejhqU2wrcFppL3VQKzZRYVFWa2JKcFc1U1FVcU9qSmJDVlNT?=
 =?utf-8?B?YTJ4NU9EWnpBbGYvR3U3allRWkwvQnI4M3owVlpCTFlLa0VIT0gvcjc2QUtu?=
 =?utf-8?B?aWdlVDZOb2h5VkdWL1hxamFnMyszTzFscUVJZlBMaE5rcXZKZEVzUkJ6eWlI?=
 =?utf-8?B?ak1SaG1mU0hRdkhNaVZYN2NLWk9Ldi9IRFlSNUZxTDNuaVFuS1lBWmt5eUVD?=
 =?utf-8?B?OHphNldJc3ZsUDZzTU1XVCsvT0lGNjlLT2k2Y1Zwb1hWMXlqSGp3aGVMUDhy?=
 =?utf-8?B?VEVoTDdDcEtweTJBbit3cm5YSXlpbUhBSGRkZ1R3UFR0NzdtTXdRc3Erdm81?=
 =?utf-8?B?R0x5VUZsK1E3dTFqZzFmS3RuR0lXS1ZkSE85U3VZMnA2TFJvU2JFekt6akN5?=
 =?utf-8?B?Vk9PVXMxUXoyYXIya3pabVhUaExKM2NuMkxpZnhWZHFFTDBhYnRIbURhbkZE?=
 =?utf-8?B?Wm0wRTk1N0I1L3JwQkNPMU1oV1hBOFRWVmtVSlZ1RVd6V2dYZHlrS0pCV1h0?=
 =?utf-8?B?UUlSbEVjMWN5QzFLa2JpM2Q4YXh0bGJpWkNVSkZIQmQ2OHkzMXRSK003RzBW?=
 =?utf-8?B?K3IwdDZYOHc0RWtWb2dSbTAwYmdtaEdIWnQ3QXB1QWdhMC9jWDJoNnRITi82?=
 =?utf-8?B?NUg1R0QvcXlpdjV0RUI0b0pmRUJUVFFkZjVRTjV3b2UyS2hIN3ZYMVdOV2ZQ?=
 =?utf-8?B?OURWR2syaFZ2UHFIT0Uzc0tyV2ZmZDdsQTJzcjVrcjNIbHd6SlJ0NlRUZlpk?=
 =?utf-8?B?OURuRUJMdGg2UE5PZWtoVlRsQ0ZaMkNDM29RVnpZemJkZ3R0em9MZlFMeWUr?=
 =?utf-8?B?YUE9PQ==?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	7fYA+9dm/d+AcrfuNdF2OrGQ+Nm8e/MkSLJuijJjR1J6yvnK/s7yvQs6bIy4VzJgR+RBjUhzMDNHUcZat3W7DbeWHaRv2oNKlacAtKlT6ygKrDBoq4UH6TVndnfeYORs3xJc9hWDonETl6g53bCLxyNmJa0ymcKM8983zVPjRQ4iT+Ceh7sKFyPbQqDA8hseUoEgd44o8elNmFOvLdg6l7/LSDLHDRbTNn9NbkHTwmWpaAO9qaKGGLQHk91oMMbQKJQgwpFXuBi4ZkAOCtPqJ/ZV8gM5gH1hgQxMXYA4t+uxxz62DIl3kwaYnIuQ+jB3MjMrqXVXdELgOqfU6Xau53yzN76sqfHShJ2eNk19FJ84dMjwToKayX0SLGKTpwR/aQu6buixOFNHUnruf3gFlnTnC90jIa5xnkwHTCVJUYXxj+ywUGhsl7vqokIspzGgkTyAEYCescMJ3mrt693rAmSpghkVixDq54Tgvy0+k4p6VUTejEWj3TvwZ1stX1ECKA2tf1W5yeDqNP9NjCWayPiBSZVthK9sfN02zMDMKcWhIO2XmiY0ymepJw8O1zYQjWGQUtrE+zpupPDtELdXMYA2kD3warayLIN3BV8fJLA=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cda93cc0-f5e9-43f5-9172-08de3c0e2bcc
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Dec 2025 19:14:29.6584
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: TbGwWgTW0wHp9eQD59pGvq8cVdfYD0r4L/WiF9TVixE/699BNrARsFubVKbwUwt4b79FCYY8ml6WnpAFkCRqAmdRfG18VXV0kQx4xPvPoNk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB7808
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-12-15_04,2025-12-15_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 spamscore=0
 bulkscore=0 suspectscore=0 phishscore=0 mlxlogscore=999 malwarescore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2510240000
 definitions=main-2512150167
X-Proofpoint-GUID: F3uIxiesGuJExbanj64mEUtItBN9MDy5
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE1MDE2NiBTYWx0ZWRfX7iXNK/6O/4OC
 d03hbKNC3nwjpYr/0l0vzJr6/owPZCakaC7W32tOjydCOaKXRUUbvkpv/Re05VT6iMywtzQAnWV
 qmWa0VqEKVfXWgpBMugzVbDf3FBQlT+rhNBQs1bp9qNwcVwbs29yhLZutGDqUtJs+nruuMhCycu
 USiF8o8r+e1z5UlxidhTDjOawmKZsMsHMqkbQT3E9adAGuIihBLhHXn80gGrjptLmxwA5Izj7yE
 BRmukVKuFUamVgUAtWSwGwlvE0+Uqk9+xGDI1IKefkpKozfL2iJSTn3h0NJhk/qT1m8T++oaEjy
 6bm0uvXrcm40Vt7nBqmUVs8+x/a98djekpRxg6zS6c83s8DUNr0NpMTMQ9wzz+tYSho9094znsw
 3QFGj3/RnhDNksoOEUVmmd4aPWhypw==
X-Authority-Analysis: v=2.4 cv=GbUaXAXL c=1 sm=1 tr=0 ts=69405e18 b=1 cx=c_pps
 a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10
 a=wP3pNCr1ah4A:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=iox4zFpeAAAA:8 a=yPCof4ZbAAAA:8 a=AoAeTN9Xs-P516mdDt0A:9 a=QEXdDO2ut3YA:10
 a=WzC6qhA0u3u7Ye7llzcV:22
X-Proofpoint-ORIG-GUID: F3uIxiesGuJExbanj64mEUtItBN9MDy5


On 11/27/25 2:08 AM, Juergen Gross wrote:
> Instead of having a pre-filled array xen_cpu_ops for Xen PV paravirt
> functions, drop the array and assign each element individually.
>
> This is in preparation of reducing the paravirt include hell by
> splitting paravirt.h into multiple more fine grained header files,
> which will in turn require to split up the pv_ops vector as well.
> Dropping the pre-filled array makes life easier for objtool to
> detect missing initializers in multiple pv_ops_ arrays.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>


Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>



From xen-devel-bounces@lists.xenproject.org Mon Dec 15 19:17:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 19:17:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187564.1508923 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVE4B-0006wX-JV; Mon, 15 Dec 2025 19:17:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187564.1508923; Mon, 15 Dec 2025 19:17:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVE4B-0006wQ-Gd; Mon, 15 Dec 2025 19:17:07 +0000
Received: by outflank-mailman (input) for mailman id 1187564;
 Mon, 15 Dec 2025 19:17:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6GmU=6V=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1vVE4A-0006wK-E7
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 19:17:06 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a2b71a54-d9ea-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 20:17:03 +0100 (CET)
Received: from pps.filterd (m0246631.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 5BFJC4R52829840; Mon, 15 Dec 2025 19:16:29 GMT
Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com
 (iadpaimrmta03.appoci.oracle.com [130.35.103.27])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4b0xx2amsp-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 15 Dec 2025 19:16:29 +0000 (GMT)
Received: from pps.filterd
 (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])
 by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 5BFIu3H1016271; Mon, 15 Dec 2025 19:16:28 GMT
Received: from sa9pr02cu001.outbound.protection.outlook.com
 (mail-southcentralusazon11013016.outbound.protection.outlook.com
 [40.93.196.16])
 by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id
 4b0xkjur5j-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 15 Dec 2025 19:16:28 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by SA1PR10MB997714.namprd10.prod.outlook.com (2603:10b6:806:4be::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Mon, 15 Dec
 2025 19:16:26 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::312:449b:788f:ae0e]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::312:449b:788f:ae0e%6]) with mapi id 15.20.9412.011; Mon, 15 Dec 2025
 19:16:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a2b71a54-d9ea-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=
	corp-2025-04-25; bh=NVvlulGnb00WGz8Xc+pdA69EVbuXg0CXQLYZMVrzRRs=; b=
	gzrz3+YoeRRzlokv7uPI87yz9VgBfM9qqWKVCZZeDG+UiV88OLtMcVPxZ+ii3j3B
	hnqUUQq3DLRM5/FlZOsLuqs332ZJ7DU4ywx3fDv9dPup2jhooOq7IXBc7yB2pFrf
	fhExo8DIJwZIXA3KBZSRahRgVKZ7r72wEIcNupsGQIdJRHpeZWsxvyeMRGLIs9MM
	+k1u2rG1ihjXrDOqk8iQV8bI8y4K81xau9pd0YxhH4Qgv4Rcqwll2hfCZUmiBp++
	zvCfy5JcC21aIjc34VI5Ev2Twvi8fG5An7wEb0WWLOGFbpj1UuxEA6VB3Rbme/xC
	hT9q8x/k0QRW2iuA3rG6oA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=im82GQ3UbkVi+ymL0ZbhBjHRXswHFT8SJiD70aXos3Gj6xK6seagwt0bsRWrhB5P6hcXZ0Ceh3bDI0jbTCobOu6fzecGN/wRsPi/ft+pBIa3Yg8NSI1nkmjnc8EBUOPaLdjWGnbix2M29dX35u2unq4w5nh2Jr2vapqG2IkKKhOyKFybn9pRxWzKHvzrS4nyIrWzbHl5mwhiCXywBiHpHwf+IkM1y7fV1xu01vCBtwT23U32rq55zxN/BK/oOJgQRtM+CoffqQCnTrT3t+YcUoiXkIb9LvPnphScqybpImBV3YvH/vpF31g03s3/pYBXRHSv8bsGshSB0dtdWsPzYg==
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=NVvlulGnb00WGz8Xc+pdA69EVbuXg0CXQLYZMVrzRRs=;
 b=RgA+ERlbg9Jn7Gafqm7aCf/IFA4+cHL4eZaleU+0jNSovnFdul6c5IJ7rREj1sTVhPE4DTe68M2qwo/e1TGW+txfx/W+nRu1MtLJnt1IfmB310PnBSWHZceeFCU2PCR9a0uWgLd10XKAn9iVRmWlHmD93O4+zp+W8klMrDSJn2R0h2yzK69YXOdm76P+KFMYy/q1aHJEsaXX4cZkDCC0tnvJ9/wPOCqd7uknk01OR8R4nkmn7Q57Sgdcvz6EqZncFG/YdiCny0K1GIn7S+0BYjjKymrrtzUji35M7G0SJzS2XUSngtFIiSbUmVIyhRX+uIH89RELkLN5mB14TOtbPA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NVvlulGnb00WGz8Xc+pdA69EVbuXg0CXQLYZMVrzRRs=;
 b=zT53sqh2Zio7KDnveAc7G2lBF3U4CkVBvKTfm1YwPS/QS6ffUWi/U7yu/Hj2MtmRaA6tNu26JXOcLesvEiHytM092wsjSUYkNy94D4TWJCddbCZ95R9XdbMKMoJjxagsW7M779vCR9SVIdnjLAfmh9o0IcgxFzax9rc6E2LX0JA=
Message-ID: <62b8753a-8dfa-461d-b81e-d7a605c7ee82@oracle.com>
Date: Mon, 15 Dec 2025 14:16:21 -0500
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 17/21] x86/xen: Drop xen_mmu_ops
To: Juergen Gross <jgross@suse.com>, linux-kernel@vger.kernel.org,
        x86@kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>, Josh Poimboeuf <jpoimboe@kernel.org>,
        Peter Zijlstra <peterz@infradead.org>, xen-devel@lists.xenproject.org
References: <20251127070844.21919-1-jgross@suse.com>
 <20251127070844.21919-18-jgross@suse.com>
Content-Language: en-US
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <20251127070844.21919-18-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PH8PR05CA0003.namprd05.prod.outlook.com
 (2603:10b6:510:2cc::24) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BLAPR10MB5009:EE_|SA1PR10MB997714:EE_
X-MS-Office365-Filtering-Correlation-Id: 72b4d673-c17f-4fe2-73f7-08de3c0e7094
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|7416014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WU1iRDBhMTRyTTlIQzgxZkVUSXdKcFE3OERRMzcrMEpxRVJsRUl4QlFpZzlj?=
 =?utf-8?B?STRsaU9OY2xOam5kaUR3RWpaazZUT3lldGI2dUdsbG90K3cyajJ5OGhWTUZK?=
 =?utf-8?B?MjNBRzlyRlFGTUNoNFJyQUdOTkZGcWxNSCtnTGNhUldqUjVQb2xVbDF2WEZ2?=
 =?utf-8?B?bjJHbnFEQjF6NU9ZSFlvL0kwMzYzbDRCNDhTVXRPaFFzN2k4bVlad0IxRFlK?=
 =?utf-8?B?Z0xYejN5RXdWc2o0cHA4bzV5TVQ0QjRzMURUZys0OFZLaEVsdnEvbFJDdExz?=
 =?utf-8?B?dUl4cFFaTU5xMlVteUZmMytkWWJsZDdHNWZPRktyeTQ4SzBqczhWanhhMCth?=
 =?utf-8?B?WHVjbG5Wc3pVY1Q2bFRDaEF2K3ZHSTJzQVdlWVdZUDdGcEk4a09qNEJmTzFE?=
 =?utf-8?B?Ly9qd3ZRZk5WZTREMGx6NDFNbXZockMxY0FoZGV0L1NrUTZLb2xFSXA1RHJK?=
 =?utf-8?B?bDJFZ1NTcFdXOUdRUTBJTEhTYVJhWWFSRUtqeWpRaWlKcE0xSWgwUEZmbVkz?=
 =?utf-8?B?bFAzOUk4SG8yYmFqS3o3Zld6aVFmWXBQSnhsSHlGRkxwdjErVXRLSzhNeC9u?=
 =?utf-8?B?MHBnMnZlUVZFMVZMV2YwKy9vOUpKV09OUmZvelNmTjZ0YlVhci9hZHI4YkVV?=
 =?utf-8?B?Sldmd3lUK29jb2RlOWw4WE9nRTRldUF2anh3czRLUWtFNUVTdGFPbVdVNFR5?=
 =?utf-8?B?WDU0TDNhUjZIYTlVVDRyNDNJdGpDcE1RbEUxYlpNZGw0UUZJOE1TU3dBNnBP?=
 =?utf-8?B?WGliU0VwT2VYZVVlRU44bVMzUU05Uk5iWnB2cTUzN0VDdUV2alFHTHVQTWRG?=
 =?utf-8?B?V2VpeGhVTmhWMXdnZHJsSGNxaTkzWUZ5UFJFTmkvUFhVWFJJalp6NEpvNEow?=
 =?utf-8?B?Z3BEN1FTbmRMZlBmR09PYjgzRGU2MTZXMnpLVDBMN2cyakNteXUyRGU0MzJs?=
 =?utf-8?B?YVJZYzJJMVFGdndoMlhGWDVXOWJGOGxvTm1tUitQODVRbFBOSlNUL1oyeUhO?=
 =?utf-8?B?MVg4aUdadXR6dFNKbDN6OS90UGhBbFZsc3R5SEFxQU1iajlNamNuL0FaeUh2?=
 =?utf-8?B?cGdVZWoxRnZsZkVoUlRnWTdCMWF5cG5TS3lGY2ozLzB0aEN5bSt3ek1GU2VN?=
 =?utf-8?B?TE9YWEUvWEZkaWRDWktlemp6eFUxZFRBaExTaEVBamxpb2VZSFVSN1U4alFh?=
 =?utf-8?B?RGZpTVRaV3gxeVpkUVFwdUprc1JmWjBnYkJOVkluT1dBNmJMMUxpbEM4T1dM?=
 =?utf-8?B?dnR5Y1QrN0ZWdnd4TlhiZndTRy9MRGtWSWU4SnhBR2JJK1BMVC9QenhnS2xD?=
 =?utf-8?B?REtMVFNyQ2R2cHd3Skc3ZUkyL1J2bTBMRlM5KzVOSUVkQXBCdG9wNTNiSWZJ?=
 =?utf-8?B?Z3ZDa0VEMWFETi9JYkNudWdCRlR3VkdyZG5FY1g3Y2ZUWXdUSU9qQ0J4Y3d6?=
 =?utf-8?B?dEFOdzdpTUhvRFVkNjhKdER2R0ZNWWlhUnVMUUZ1ZSs3dzdseUlvVDY5VW5p?=
 =?utf-8?B?cGVPOFdqSEpHTFhMK1JkMUVRMjd0elVPTW5rR3I1L2djL2hwdGhMNyt4Yk82?=
 =?utf-8?B?aE1DT0FZUUFNcFFMbXBpUGRnOWk3aEoySkprbzJnWGRlU053OVJlL293RjVz?=
 =?utf-8?B?Z2hUZnRtN1FQVTBzajFvSURDbkUwa29USkFBb29xTk1MKzk5czZqQVQrY3B6?=
 =?utf-8?B?aE1jMEM1NDRMN0pscTlLTy9XT2pHM2MyRW5EcUM1TGd0RVFwUVN4OTVrdDdM?=
 =?utf-8?B?MkxHMm1UN3lMQm5Xa0daTWJsTTU3NzlhNmVQOGk3ODZFZGxFejJ0TTNZNlRz?=
 =?utf-8?B?LzBMSng1ZHp4VW5rMUxJT2hSY0tzR2VIWHBkNEt6bktzcWZESUl0emp3Uklx?=
 =?utf-8?B?cDh6SUU0VlRTbFhOOFVFcVhKa29PT3dOWWd4ZUxxZDJBT1hzTWxtc0RpazVw?=
 =?utf-8?Q?skjZ+IPNOzo5BJDKCPtVANpiTeJUcJaw?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eUlHeVBKNytGUGpqbkRJd2tNNGZEQ2FVdC9idDU1TUJFZnI4clVqVTJrSm9B?=
 =?utf-8?B?VTJBaGxQTkV5RG5BNmQ2N0lnVGlyTHFiYVBnYzJzM2NZSXl4aHZSY1dtTUJ2?=
 =?utf-8?B?NEFFMG1VUnJWNlhFZDhxclo2TXFZY01OYytYRjlMYUpiZDY2Zk5DdlFVZnB5?=
 =?utf-8?B?dGpBOExSUjFTdTNuWjNubVdzUWxJNmR1RXFEaXJLcTk2VlA3Z0tEcU5panRo?=
 =?utf-8?B?S3dSc1JKQTBML2lScjBrTG52NFk0UmdmQ1U0NFM5SFdpQnVmMm52YldPQXdL?=
 =?utf-8?B?QzhRenNjTGl1S0VOQWtBWGtKQk1nWUN0RE40RUdZS0xVOEwwbVVSTmZoRHJL?=
 =?utf-8?B?QWYvejc4bGlJM1g2Sm9tREN6K3MzYjVZNW04eHA4QkNLR3d2ZUhvTVc5TXRS?=
 =?utf-8?B?U2VSS2xRNUR4bFNWUkRQQUVxZllYSGQ2KzUxY1RZbk9tclpvenN3ZXVnamdo?=
 =?utf-8?B?WFlIV3BHUFdFNE5TSFQ2Nnd6TFV6SjZZOGpqUXhlSFhHMGFwYTFreWJQbk5E?=
 =?utf-8?B?bEZpY3FOeWZGNk5CNnFTQkw0T3NGbmhFYlMyMEE4OExIaS8rUTE5MFBVem13?=
 =?utf-8?B?SDUzL0k5RC9CeXpTNGQwc0dua08yQ1I2N3I4MW9YelNicXhjUGQ0VUd2UnJM?=
 =?utf-8?B?Vzl5VjIxWFlQd1diaThBTWFTWHBPeHhQaDkzY3JqWnI2VHVWeUpFN0RIMFZm?=
 =?utf-8?B?bUJRNkdPUGpXdnFsQllHM05ON2djZDhMVG83ZGh6S0V2TEs0Wm9yMFpvN0Ew?=
 =?utf-8?B?USs4ZjNweGxzSnBNajdiSHNRL3JsRjlTc1lzYUZWR0o5NWkrYU1QY2FiQkov?=
 =?utf-8?B?cUtjaHROK3I5WG9UaGRLVkNQeFdqejVCaGlURU9QdVQ1dmorSy9wUGhUQnVO?=
 =?utf-8?B?L0NzNkhDdFZBR2dYbkdtWXdHYnZvL2ZDdFNLeG9FS0p2V0svalhCL3N4dU5N?=
 =?utf-8?B?bkZrdkxDOGVoWWZxK29PV1RjVHAwZlNsV1VXc2cxMnNhdE56WWRyemhhcGw0?=
 =?utf-8?B?M1BXT2xCMWJmRTR5YW9Md09OL2J3YytvZEZNeGp0aTlhQmpSOEtCc2xMYkRl?=
 =?utf-8?B?NXV1OHFjZkY4Yi9tK0s0YmZRUVdIZlJqTWovdzN1aXBZT3crT0VDcGc1RlF2?=
 =?utf-8?B?SlVyWjF3RE9lRWtiWGowVWVwV1VJRTE0UXlRbE5GN0NnZlY5NkZKRjJVellt?=
 =?utf-8?B?N3FmV2xnOHpvNzV4VUNYTkk0ZVowRUptaGdOZWlNUDUvZFVwTnVOci9KSHcx?=
 =?utf-8?B?ZW9iUmZkSlZXSVlQN0l3dTVMdWFUYzFWbmNKMW04cnB4S214MEk0d09LNGZL?=
 =?utf-8?B?VS9aY3JXZjZkUVJHT2xJWmNGc1JZVnV0aXNZcmdBUzh0SWdsSENNbU1iRkds?=
 =?utf-8?B?bWFoQ0FleW4wMUF3cXFsVGdseS9VNHJOamIzUkhTSE04eDg2bkVjUUdSU0FY?=
 =?utf-8?B?T2NNYjRWcXh4ZXgxQmd6MW1lWC9jWWlWdnAwYU5rVXdES0ZDVnlrbVRXTitq?=
 =?utf-8?B?c08ycG9PN1B2bC9KaE0wTXhuclB1eDMzOXE3dlZoRnhJL2RvZHRVbDJaUzBu?=
 =?utf-8?B?QjdaRGFWdk1oTWdXbUo4TWxlYzlxRVJ4VE01OWN5WXZDN2tzakd2NTBBWU4z?=
 =?utf-8?B?Tk55M1ZTUGZDS2ZLRmtZSHlNUUZQRGJHMTFoemZ1eXMzc09VL2FxbFlHK0pi?=
 =?utf-8?B?MkJwT0ZSRWZwbkNZVlhZYVl0MDkyTE10S3phZGJrZGZoTm9ONGdFQ01UK0ht?=
 =?utf-8?B?L01MMFZPVnpab1luUFdGbFJZdXc3RUVSNExvVE9KeDYrVGdFL2pvREtidVBp?=
 =?utf-8?B?bmVDT3ZNRmo1Vys2QUNBSUxFcVJjNFVjUU1wSlNhUUJiK0VXZTk2ZDVHcnlU?=
 =?utf-8?B?bFg2cDJ4WnV6NFBSZXVLT3k2WmhyQXJIYWltd2tMOFhLNE9nTkVZdW5CUUZG?=
 =?utf-8?B?TFY3QVlhOGJmSHBIU0hLbmoreEZOalZrZDZpd3FYYW5VaFpQVEV2RHJoMjdx?=
 =?utf-8?B?SjNmaDFoUUU2NlhVZS9BdDg2TzV0UmNPS1ZETEorVGRzR0MwMTYrNnV4emlU?=
 =?utf-8?B?UnloeldWTGdTcjhmai9KQkFtL24yMWZQTUxIRTZTUTgzbnAzVStHR0Q0WG95?=
 =?utf-8?B?UCtrMW5BbzNvckUzWDhDaEk1UGx2VzNWNEtVSjJOTENkNWpXVVRUYUdZVWJY?=
 =?utf-8?B?dUE9PQ==?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	2Dhwxd/b3NjYDOXQ2xEXQVWPX7vVheRksaZYLNCWFXuxXAKRLiDgMY+j4Z3ems+tSGui8zvV8gxZWvod4jocLeKhxIpo5O2SBjSLGi/W9HYfge0HutrBQftRS8JLznGsk5HpeLmCR9ZGRUooC71cfknJfUzX1jm9GyJpddGflPiTmBiWvCFXlT0jMmClOsBOmKHm3NUx9odEUDJGlkJuOwv7hZvSNMu8dJF7iP2s7scBznnNtJ0uevdAbXXJUHh9aF7XdqjSgZaGUEnoFTtTLF9MJFN9rZC6rwm/p+hCPBXo02CIKQbuJrGgUX6YXhfCjvQHSDvVoh+Hp1y4ZAJEruLtT717ALWZultGi1XYlZXbBz5BLw1q3xnWWMeJkYdMZoLRPQGldw8egTLsPqXMJg6+koYEEZ4ywiIRQ48WuA06ZIi8H+hSoxjr2O2JLt3hj3j+ebsi4htxgh4h6zPFIamepLEd87Q6l6pK0xEu1VgZGDRuTXoliBti3IZ/COsL0KcgAK87yeXDZ6K23oaSgKAQGqqdGkFi8YO0F6V/+3RL+2EQkryUG/TaSRRFd3Oy7drctQx8nBVXRp8J0eB8HUJEzihR1i5vWn5JvNyBTbs=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 72b4d673-c17f-4fe2-73f7-08de3c0e7094
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Dec 2025 19:16:25.0751
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vLlF5NdvkTU3J6hS3aaPQTNLrpgkuIZ3Hl8GmECvJZ8JLJWSHPfasHAT/UbAtJainMMnVr0m4acsv2y3nzK/2MAtQOepZY0k7qTID1eWlxw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB997714
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-12-15_04,2025-12-15_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 adultscore=0 mlxscore=0
 suspectscore=0 phishscore=0 malwarescore=0 spamscore=0 mlxlogscore=999
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2510240000
 definitions=main-2512150167
X-Authority-Analysis: v=2.4 cv=B8W0EetM c=1 sm=1 tr=0 ts=69405e8d b=1 cx=c_pps
 a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10
 a=wP3pNCr1ah4A:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=iox4zFpeAAAA:8 a=yPCof4ZbAAAA:8 a=AoAeTN9Xs-P516mdDt0A:9 a=QEXdDO2ut3YA:10
 a=WzC6qhA0u3u7Ye7llzcV:22 cc=ntf awl=host:12110
X-Proofpoint-ORIG-GUID: el2lVPxbrbOMN_pQkdt_HP742zF0Xc-s
X-Proofpoint-GUID: el2lVPxbrbOMN_pQkdt_HP742zF0Xc-s
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE1MDE2NiBTYWx0ZWRfX4ezvgOGqE5Ul
 2ovmL8kx5qmgLDrxZnZWY0igeKxtS0+Nr5FY0jP/0klFPt+uvQmRmPCPVhFrtN5MXSgpm/UzPdc
 TGQMjIRS40GeiuK7UE1mDPD35oBmnHhem6XFhfut0EPLYHuZuTfkauvugtc3k7vQOZ2qNGr5aqp
 8/vq1qpfSGivs+8oWo8pl0piRhU3XhwsfrJ4jqArrcBoXZ1+6zR3Yo91WB9ULm4a5SwaHW0+Ijr
 38b4Azb/q1buPoI6TbCFfjU4AjjjAVIEZMgqXy4TYg4ImvwRWGnFdXvaIcf0jcoi1pMS94cD8Hr
 RZJ8zQvdNDy246RIayXWcnfDqx+DGO3dAD71+l+gYelVQyAmk5VXHEzbY+mPZhsneheoNr3qRac
 Oj7jevoYGiheGSQ8IpVkBoeRSzSiJ/O/UQRCjVocq9cJgXAzd3M=


On 11/27/25 2:08 AM, Juergen Gross wrote:
> Instead of having a pre-filled array xen_mmu_ops for Xen PV paravirt
> functions, drop the array and assign each element individually.
>
> This is in preparation of reducing the paravirt include hell by
> splitting paravirt.h into multiple more fine grained header files,
> which will in turn require to split up the pv_ops vector as well.
> Dropping the pre-filled array makes life easier for objtool to
> detect missing initializers in multiple pv_ops_ arrays.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>


Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>




From xen-devel-bounces@lists.xenproject.org Mon Dec 15 19:30:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2025 19:30:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187573.1508934 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVEH6-0001Sj-KX; Mon, 15 Dec 2025 19:30:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187573.1508934; Mon, 15 Dec 2025 19:30:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVEH6-0001Sc-Hr; Mon, 15 Dec 2025 19:30:28 +0000
Received: by outflank-mailman (input) for mailman id 1187573;
 Mon, 15 Dec 2025 19:30:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6GmU=6V=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1vVEH5-0001SW-7k
 for xen-devel@lists.xenproject.org; Mon, 15 Dec 2025 19:30:27 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7f9dc211-d9ec-11f0-9cce-f158ae23cfc8;
 Mon, 15 Dec 2025 20:30:23 +0100 (CET)
Received: from pps.filterd (m0333521.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 5BFJCG1R2854637; Mon, 15 Dec 2025 19:30:07 GMT
Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta03.appoci.oracle.com [138.1.37.129])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4b0y28aq8b-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 15 Dec 2025 19:30:07 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 5BFI7WqT024713; Mon, 15 Dec 2025 19:30:06 GMT
Received: from bn1pr04cu002.outbound.protection.outlook.com
 (mail-eastus2azon11010020.outbound.protection.outlook.com [52.101.56.20])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 4b0xk9aypc-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 15 Dec 2025 19:30:06 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by DS0PR10MB6869.namprd10.prod.outlook.com (2603:10b6:8:136::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Mon, 15 Dec
 2025 19:30:02 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::312:449b:788f:ae0e]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::312:449b:788f:ae0e%6]) with mapi id 15.20.9412.011; Mon, 15 Dec 2025
 19:30:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7f9dc211-d9ec-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=
	corp-2025-04-25; bh=G4Te4BEmegoyq/QJD9RdTuKf2jsNZuNz/mwX+Tm6LJo=; b=
	UwW/lftgc5k7dgvuDt7SlnZjWyXr9UqMN+yZXyfc/nWzUHEo7TduS7ZBU4AkukeP
	34xcPQ+kzUaYz21wXgNh33mtqoHi4o4H5OCeaW4W1eYobztVcuR6z8V40Umcb3Z2
	ysDjWt/9axwA1TEc64gyN20q5Ofk30ztucz3Opy+UXFDFbVzwOnuBO3Yq0CUx4Ng
	lG25B4IaMDzs6rbhpE6t6KeeIEwAwRwIC/NpnkF6U4ubHR5iOWJ8scyXEqmxEC2D
	fdEoMDUtmf84zyTH1dWlg3Ui06MRK1s4CFU1xohpCAozt3Cn27U1Z91Px2jV2M7/
	Ea3pbfnh5etsDKIQ/5vSvw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yltADPkiFEBtpvisHb6zgY38VC+draL7rdrj+XiqSs9S2PubNeddo1sEMypYoHDVM0Bo/c2m2HX3gLll46CPXoCvIcuINGwCWZ6DcyVij4WSHGNxdiKoeFhx9wn0Xy8N9JcV5ULc+pjeWYMcHymKTGPMoEd0FHAJ6XgchCJJaO4ZeWkujXscMb8UNiS+lnKyl4F9Q4QBEJO0cDfRt4tPREhViFntiVvGPKte0O6ZfYQBgOoK9H5qZoXEEF/IvlZNg2AxrLTSBZdj7lg6gYm+Cmizluqiyeb4rdS+U0X9crjkjcpQYRw3WKk4YVTfNM49dOpFawr0FMRiCBIoY6GbJg==
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=G4Te4BEmegoyq/QJD9RdTuKf2jsNZuNz/mwX+Tm6LJo=;
 b=df45QB0AX/tB30gRnGMEXqqAxDPevSSBLEdlfaMFeY5K/uBMOZliRnkqvlY8LQENFSxN78o7v0d/4uYz4ykoAqJi5z/NYP1iKYF+be5kyHHMLCIbWy4GeM8J/Zeff4VOFc6ktAmRe2LCR2g3l67vh3wCL8hJJSficB+Fh7iZ8o4oyy8LkyMaiCE8JbPEZ4a2vEMCc0TC5m4eykThrsl78pYy8V+iW8/wDmV4vChXoRdYym0v9/hVmMNyZ6TaWNGkLSUOlQsjupFCl1zcZBe50BhhAvqbCiy5p8vEWLwsqNp/fO4Awq3BgqTJiyfg8AIX9sekvd8yh28YoOorCicOLQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=G4Te4BEmegoyq/QJD9RdTuKf2jsNZuNz/mwX+Tm6LJo=;
 b=nCLDW9yTlW6mKV16ItaTi2KbuHL5BBjuQ0lAV0/66pmQMPIVwBb7w0Zvu0vqz7g2yzThYXVv5aBCbk7J1AorB+p2usn+Kwb+NU+jv52QEYhJkUyjYRnR7RwWAnz09jVmCooKumXuZ4LmiYpIx2ufetJQfiVjeN6aB2jkh0CoJUA=
Message-ID: <fe4f5cce-a82e-4216-868e-eb906edc53d1@oracle.com>
Date: Mon, 15 Dec 2025 14:29:59 -0500
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: Fix sparse warning in enlighten_pv.c
To: Juergen Gross <jgross@suse.com>, linux-kernel@vger.kernel.org,
        x86@kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org,
        kernel test robot <lkp@intel.com>
References: <20251215115112.15072-1-jgross@suse.com>
Content-Language: en-US
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
In-Reply-To: <20251215115112.15072-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PH8P221CA0039.NAMP221.PROD.OUTLOOK.COM
 (2603:10b6:510:346::14) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BLAPR10MB5009:EE_|DS0PR10MB6869:EE_
X-MS-Office365-Filtering-Correlation-Id: 41a6aa42-6264-48b4-7ec7-08de3c1057c8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Njl3QWtYN2xKL0pmOENkNE1vcXhMNXd1Nml0YUxtUjQ2RTV1cHhsZlJqYzRs?=
 =?utf-8?B?VmpxR1VoUE9jb3AxeTM2eWxlbFFtZ3dSMXpkMmV5cVVUNVA2UytIcU1lZFlm?=
 =?utf-8?B?ZE1sTHZGUGlXb2lKaWlJTzA2VWtlRHN3V29lUVp3b0wxWlZhZ0JOcWwrTmk0?=
 =?utf-8?B?QUhJTUJYdmZCV3lONENIcDd1YktMbU13OWpDNG4xS3p5K0lub1VPVHZ5SHlD?=
 =?utf-8?B?NFVIQjY3enVOTEFOV1A2MGRCZGZsWTVBTGhlMHY1TnRSWlFJczcwMitueTFY?=
 =?utf-8?B?OVdqbEg4dFZjQlZKM0hCL2FYR3J1MklRS003aGxaZi9zbk5vWFRQZnNWWlQx?=
 =?utf-8?B?cXlqcncrNDY2YjZVbE5LWER2UW9kdU9IQVEzNllNMzJTTEFSazhIUzN3eEdY?=
 =?utf-8?B?WkR6KzlMbDZiVExzOTEvdmo1SWlLd3gxMnY1Uy94UVlNZll5ODF5aTlYeFdE?=
 =?utf-8?B?VnlBTnBORDJpd2txVG92NE1zQWkrYmFvRGl4NWZIbzhZV2VIenE1VDRsc1lK?=
 =?utf-8?B?ckxGakN2T3dPbFc1K1J5MjdiTVdLWlZacFFWRDVnU2VoTlNreVVrcHN5bHJ0?=
 =?utf-8?B?a2RJYlBwd2cyUk1hWkhyYTZ6OUs0WUdGTFBwQ3M5V25pT0wxOXhmZmk5c3BX?=
 =?utf-8?B?bnFDRWQ1ZkVXUzlXWjBIVTdzSURSUzYvdmFidno4R3J0Q1NQMjVlTHhNdG1j?=
 =?utf-8?B?N0d6SHdmT2Vna3JWLzl5S3hSWmNZQldPSUliMzkxQXQrYjc0RDBPTTNhaVZV?=
 =?utf-8?B?QmNrbnpudlRieWwzeW92MWg0ZHlBcjlEL2hmL0ozZXJJaFo4NlpsTlBadkNy?=
 =?utf-8?B?Sm5PYXNCdUs2RkdZemplL0JRODNadnVBbUhyc29aTzQrTDFhQjBJd0o5alor?=
 =?utf-8?B?L1RJQm9FSkc2NVhDMlk2NDB0ZWVuak1rSnAxem5vU3Q1bXYxMHhYMmhNZ1RZ?=
 =?utf-8?B?djJxQTdyQmYyS0Q4UllwOXRCcExlMENVUllXSlFDaENaU0ZndTZBb1NBVTcz?=
 =?utf-8?B?YTEwekQrNzJXL2xSM1VMaDFobVQ3dTRJRHF3ZmZzM3hrck93RXAzaCtuNmFB?=
 =?utf-8?B?ZHNFeUFXR3lkcXUrY0EvVVp2OStlQTBza1gxUENvbjJ2SmxON2hRYnAzVmJz?=
 =?utf-8?B?ZkEySFNDTXlTeFZIWHhtalBnVGZaL2dzU0p6d3RrL0g2ZVpsTjJEbTZzd0lm?=
 =?utf-8?B?NnQ3blU2OUpPL3JoNlNQcjdYS3NqZDdOWVkwbU5HbnByM2Z5R3BWSTd2eHVJ?=
 =?utf-8?B?K0lUUnFRZ1VRdkhUSThRc2E4amU2RjgvNHpYSlNQL3lnRFhnRGE3SmQ3WGVv?=
 =?utf-8?B?bk9hSjJFbS8zTEFNRFNSRWMyM0QrU2VNQXNRVU5uKzFJVzZlQkYzUEFpd0R5?=
 =?utf-8?B?R1BSMm1PckJCVHdKMFRoR2ZWWnNRdGhWNjV3UkJnQUlUbzFRMnp5L2NhVmlJ?=
 =?utf-8?B?cTcrVTRCeFF3cUlEUHdCNXpyN2pXT1lpRTNubTZFR09QdW5qKzNnSVNHc0U3?=
 =?utf-8?B?bERVOW5EenhUTDk3b0ZzazU2cWZzLzZrYTljS3ZDR05PeGZ2cjRZVTJaR2tp?=
 =?utf-8?B?a0tUazVBckU1R2RvOGFLN1Voc2F3eWpoQ1JNdWJ3R0pwV2Zvc1ZWQTFoOXBC?=
 =?utf-8?B?Y3R6RGJweVoydSt4R2o1WEYwazVGcWZBVWVQYkkrdlBZOW5IdVREVFR1L2pV?=
 =?utf-8?B?dStxOG9DM0dEQUI0UXRLajBWNjErRzRTSGd1bVR4UXBMYXQ2ZXQyMER4eHBK?=
 =?utf-8?B?cG5OQm5yTWx1bkg4Yzk5RHMydys0VFV3NFN3WmN6T25XT3ZiVGdTUjAveitk?=
 =?utf-8?B?bG9CV1R4KzJDb2U5RTBSQXh0UUxzV1FKc1JkTHRTT3p2Ky9VN28yV0F4K0lj?=
 =?utf-8?B?UW4yMkhjWW5yOHk5ZER4Q3U4dWdva3VMN1VMMVludEo2bmx6UVF5Nk1HMHJL?=
 =?utf-8?B?MmpadWJFcXkzUkZxOFZRQ0ZISHJicVB5T3Zja0hHaTVpT1pGRjYvQmFQd09I?=
 =?utf-8?B?S2Z4QS9BTTVnPT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?blFOREFGanlmdUNGaG4zZFRiTndaQ3VCZXdVSVVENENWRWNTME9QbzRRQ2R6?=
 =?utf-8?B?dFZZVE5GU2dPNERHNFQ0UkpyYVNtR1lGZGRReDVEQmY1TnBPOE9zRVBNL1E1?=
 =?utf-8?B?dWJ3R1pSREIxT3IrREpiZWhMQlE4SkVIelQzRHNzZTRsRUIrTW54MEZzMmQv?=
 =?utf-8?B?THplZGV1MXVMTGYvZi8rV1dTbld4ZVg3cUJqTkgxZkFUSEQ0Ry8yT1BkdW9v?=
 =?utf-8?B?QlFFYkhYZXFDemYzbnZnVGxYSTFNNzgweVBNYXNUcDM2ODkrWWZLMnIxTy9K?=
 =?utf-8?B?VXp4aFNJRW0rNWJYdHdkUkRiQU02LzJIVjZUb1h0Wm40U25UdEV1WmNUZm05?=
 =?utf-8?B?VmFuQlUweGI1R1YxRzVNSUlOUjFMaVJDaDdDdmpTQTZTNXN4ZkVqUFZOMm9w?=
 =?utf-8?B?MnphbmNlK1h4WFh6eGh5N3I5REdTazYxREc4RVhEZlZncVVFbnpkQm1TeWx1?=
 =?utf-8?B?TEFSalAyVE1QZ044VXdwZDNiOTUrYlhCSE91OEFveW5kck8zUCtWZjZzc2s1?=
 =?utf-8?B?UmZ5djBQU0RxZTB4SnMvSEpsM0wzTnV3WWw3NTFQc21XM2tYUEVBQ2VPRTdY?=
 =?utf-8?B?VG9LNU9WdjZGRG5aT2svd2xRT3JYQlRyRG16VURHRlMyMFBxcTVWTm8wVkRz?=
 =?utf-8?B?bVNnalhyT1VCeHVnQU1GY1lEZHZVWDYzSS9VU1VNV1QreWdEV092VFVJR3Zs?=
 =?utf-8?B?bGlHSDZiWGI2WkprNXZQMGZtcXhTV3BGbFBCMExrdFJlREZUMmUva3VXRmlU?=
 =?utf-8?B?STNJNE16eDdqR0xCZDNtcG9hbEVKS25nK0U0WWxpTDllYm1aN1FJTnpoNTZU?=
 =?utf-8?B?MTZvMkZ2NTVScmx6N2tMQlJSZUltTFd2VzVtV1M5S2NIUndiZVlqdWY4Mkxj?=
 =?utf-8?B?eHJJMXBtTWprTml4cXQ0Zk1lT2FKSllxbkQ0aGdiYkh3VS9QaklnMGxBdS9D?=
 =?utf-8?B?UTNiQkVjRk12ekllSmVsai83SDB5bWVmM3RpcUpNK1cwQWZ3VTJES3FoTzJV?=
 =?utf-8?B?SWhhVmpjSFJVZ0llRVVsYmlvMHRFa2M1a2xoUTdURHJLcE80SnZ0Z1phcFdq?=
 =?utf-8?B?ZzU4TlRIUjc4bE5zOHVta3dXUEhobTE1N0FvSWVtMkNlanhJaHBPbFU3Qits?=
 =?utf-8?B?VW9iYkt6eWQ2ZjZwRDhJYUNTeW9VMHVlaUhqZnBEOTQvbE1nRnlkMW1POXB0?=
 =?utf-8?B?amp5Y0lMZVFzc3FqZ2JTZ2VpeDN1OHV5L3Z5bFNRZS9OWXFNTGUzM3VTdkJm?=
 =?utf-8?B?eGhYWWlpdTVuMElNa2lva0lHYjAyRnJVN3pDclFGblRGOHNRb2haUUNHVUR5?=
 =?utf-8?B?TkR4MGV1TVBSanR0ZDRaOXN2aEZCU2RSbitUUGNCZWhSdmNTWEFqcU5wcGpB?=
 =?utf-8?B?NyszbjZpZXV4TUFzVWpSZk9lWXNpU0tYQ0c0K1N3bjBoNFhQaUQ2SGdycE1j?=
 =?utf-8?B?YkVuV2Zud3BjeTBSdVpMcXp5S0RUOVVCYjFBMmcrRzdkamZ0RWtPNEF2Z0ox?=
 =?utf-8?B?U0dHSm51VVdSYVB4aXpHYkhYc2ZOMVY5dm1NdnFReGZJY242VlpNMmZlazRo?=
 =?utf-8?B?RU9jKzBCM3VQZEx0OHN1NS9KNkFFcmNsVjVvTHNXeVRkN2ZYd3hBbFNJV0JJ?=
 =?utf-8?B?NXRRZFdKUXd4MVZRd3FvMGdiek5iVWg3aDNxVGRyb2R0aVFDS3dpaTNUZXRV?=
 =?utf-8?B?TWtEMGxiWDVYc1NWcWl0LzJVaU9NeVJUdVBQdUQ4QjhUTUUvUk9MZ2V5MjFt?=
 =?utf-8?B?bVFURzRQdVJ3cmFxQmNlZE9iZWVrMG53eWpGNkxpSFZxeHlNSXNsYlZtTGZY?=
 =?utf-8?B?SFFXNkQyalhZcVVpT3FUc0dJcW53OUNzVktVcHRvbXl5UHpDUjV0WGdvZytX?=
 =?utf-8?B?TTl2Q1FySnVjR09rN0MzajVGZlRrY3ZVOEZwTUJHakxKSmxPdGpna24vRlB5?=
 =?utf-8?B?TjlSTmNCT3NrWE16TnBJWXdGdkJsc09KenE4WEV0M1VGN1lhYTZFWFZTbDRt?=
 =?utf-8?B?U2tZa0xjYzBlbnBQSHB6dUJJeWhTbUZHZHNLZWs2L1d3dzZsK2xud0FPWkVR?=
 =?utf-8?B?UFZ4Wk1CWld5djVDVHR4amMyNFlTZmNtNkQyQzI3bFpvNjRBWHBmSkpCOVcx?=
 =?utf-8?B?WUx3bFFBK2J6bUtPTlZIM2RBenU3MnNTdWJJdityQ1p6QTB6alVLblR0bTBW?=
 =?utf-8?B?OFE9PQ==?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	mlDujJumNhpKb67u7kJgOkXjn+gLlDFFDGB5ewlDSEM89+umKkDk5OtzsIrCANJF9yordOND4AeduJ5Xz9rX9cMfS5xMX16C4Coz29IXq1iLTgIIOX1HPY1qlqCr2hmlxaB/8GQg2cGND/lvZCLCefNDoGvnIDdPI1CD5IJi2Yl0OZHgsEmPWMRU8w8LLuX/vYxmRBRVGXUlozDX8+AdzvMq3RDExoI0hK5i623hnQdILiXZdMhu33/ZKwscolZpAK2NVPebnFCmZujy8cuOhVcLAw9uRfYG9rYiX+K6MN152aLaQCVWwmOGDimxzDOjIkVS0jB4jfsrtpINDaJKLpNZchx4464V49SHxgeER3Y3ZlYdRg5Pw0wpEBALUYrZPwUQh4OoTlQuX/hMJOPeKBa8KmP+hIrFA+jbn5703XTiOwiz6lU128ew0HLMQMl5JnPZHovcPPaWU3PQWv62uEu7sLYKQB9d9xNQo8brIITNMNJh8fY1/iVI2E1MvX5f833MAmC6O1tW9tN4hzQDsWqVMxw+Wv5WZEa3gCn3SZy6MdjouzZr2FUskPeF/gIZig96RC/QriBvOJWW/FPFSdf/ZuqxzMLhbYd3EI8gm4w=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 41a6aa42-6264-48b4-7ec7-08de3c1057c8
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Dec 2025 19:30:02.4741
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 76bLTu24/qgS+CRJ72A7lcDujrDu90CH0+ayvxc55NVd1VrCPUXfsGpiW4Zv2kl/5m4PcEdEikZaH9GCbt7PTC1KdnQzGxniKpUEBi5NfXE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB6869
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-12-15_04,2025-12-15_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 spamscore=0
 bulkscore=0 suspectscore=0 phishscore=0 mlxlogscore=999 malwarescore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2510240000
 definitions=main-2512150169
X-Proofpoint-GUID: 4WvBGC5IZip0cTnrUz4SuoDm1m43lELl
X-Proofpoint-ORIG-GUID: 4WvBGC5IZip0cTnrUz4SuoDm1m43lELl
X-Authority-Analysis: v=2.4 cv=fOQ0HJae c=1 sm=1 tr=0 ts=694061bf b=1 cx=c_pps
 a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10
 a=wP3pNCr1ah4A:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=VwQbUJbxAAAA:8 a=QyXUC8HyAAAA:8 a=iox4zFpeAAAA:8 a=yPCof4ZbAAAA:8
 a=pgsPH99h-XJVn1JYbbAA:9 a=QEXdDO2ut3YA:10 a=WzC6qhA0u3u7Ye7llzcV:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE1MDE2OSBTYWx0ZWRfX2US/eezg0OTu
 eThP0MJgpYM2NtNEeGK/miAAz2iD8ED40iGUv0S0FZPk3E57/ugJhMORfzidAdB1ib4nEHOrjuP
 sbV7LBIV2fb1FhO0nxJdGXgyVG+pHdOIhgs0pl9Htw6KwwXiWX1qqFdi2VfvY9nK6CaDPHunP+T
 xChgVbSEinVF2tJfaMqYmk6td1cZdra/tNluT/VdWm7Nr72pME41trYkH6yL2OlW9Q/ar318ZhG
 IG4IaDxrGlMelYP8SvMYBkxurMnCTaAUmCiMFgRUSLYR9JRJjQSUiaDXV81edSQxbx8pNxmdLLv
 z89Q/v2ufgr4qrn52Eb85DzhCcF823c5IuHNgTjRMJT0pVa14DTdCV2Ft9jnmZ9TlelBo2M7iri
 /IirJee5RBvuxqg65TPxQVnQbBvpBA==



On 12/15/25 6:51 AM, Juergen Gross wrote:
> The sparse tool issues a warning for arch/x76/xen/enlighten_pv.c:
> 
>     arch/x86/xen/enlighten_pv.c:120:9: sparse: sparse: incorrect type
>       in initializer (different address spaces)
>       expected void const [noderef] __percpu *__vpp_verify
>       got bool *
> 
> This is due to the percpu variable xen_in_preemptible_hcall being
> exported via EXPORT_SYMBOL_GPL() instead of EXPORT_PER_CPU_SYMBOL_GPL().
> 
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202512140856.Ic6FetG6-lkp@intel.com/
> Fixes: fdfd811ddde3 ("x86/xen: allow privcmd hypercalls to be preempted")
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>




From xen-devel-bounces@lists.xenproject.org Tue Dec 16 00:12:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 00:12:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187590.1508944 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVIfN-0001aV-1d; Tue, 16 Dec 2025 00:11:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187590.1508944; Tue, 16 Dec 2025 00:11:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVIfM-0001aO-U6; Tue, 16 Dec 2025 00:11:48 +0000
Received: by outflank-mailman (input) for mailman id 1187590;
 Tue, 16 Dec 2025 00:11:46 +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
 <SRS0=rZqM=6W=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vVIfK-0001ZT-9N
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 00:11:46 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cb387576-da13-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 01:11:39 +0100 (CET)
Received: from nico.tail79467d.ts.net (93-44-185-214.ip98.fastwebnet.it
 [93.44.185.214]) (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id 3AA8E4EE7F04;
 Tue, 16 Dec 2025 01:11:35 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cb387576-da13-11f0-b15b-2bf370ae4941
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=93.44.185.214
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765843898;
	b=jFOprYsa4t6Yr1bge1vwFGIjjFV6q+SMisTuFubh+YEf6xFtZtRgsggfwLQbbLqt0nvz
	 TaERSrLSnx3Oj2CRBq6xiFkR6w8jxAngBxmLNomPVZ4g8IFMRGlxCQ7siDz9wqHYCWytA
	 gU/zavhefXG+05BJQ8ZXLVDh2lAxJRjyJbiV/3gApyJzqm6Y72dtFqJhMkne1fLhrJWcG
	 u3ZzW3b+NonVbCg5wFIEPIPOwjc2Gfco2vow+lnlVIujQRprVXXLew/TWtaGiQiJvXIcl
	 Tbf6+oBwH5/5yDhO2rNdu0uNSfouDL7mfRMzWbkGbvi/juX9XkJoJR4C77Zj9PuuU3gAI
	 AlxKCk5qSjD2ZWU3q+2DbYm0SFI8lFoDSyZGn4OQ3cGlyxDWXYsConYu4vx1PDScZtUZ6
	 GuQue9TFR7EKLW7Jq4PD54Iza+m1f4RmJZR3zAAYJd/apSfKigwNrXZEYid+2Qb19daeG
	 wVXHzFjDImGDX4H0hAcHeEL928HYHrzanI7p/lkpc/kO25mUnSD3e3QfBnR4B8Nkjk0fN
	 Btz6Cgivm7dyWzK9QmvFKwofxc44JzECbKZ1sC/CMV9A2Wk8Rn+GM+zlmbPKRajCaS5rH
	 Md0KhkShqKGckflByruBE/AplXEDTaNoPoYFHZHeHqoqCofFcUID6IhcmwYuQvo=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765843898;
	h=DKIM-Signature:From:To:Cc:Subject:Date:Message-ID:X-Mailer:
	 MIME-Version:Content-Transfer-Encoding;
	bh=0wvIjzYU8DB2Ky+MSUIQO68qxDoQ24PdTMnMJPEjtu4=;
	b=MMd+Y0/Lse0S3beJlRb7zw6gxooMGCB/+jJhmEcJcTDxF5k8iy70czCfKB9Lwoiwd1RN
	 3760l8b4EKQh4uyJgNeXqPWlPuO8GllypYeGIS0jN0bmpP9CT/o8WlQbbhpl2C3uN5WLs
	 sqJFAJt4FzqFlvQc2iv8S6yWxt4ificOePwJcKHyMXMDBFWSY0HtQ9YKXntHAt7XXreCx
	 UfgmyIUklbMjWvKweTwuXDMUDBvOS1oR7dwhZCCjR6o2Gb4u+zJ6et46Qojcl1YcMmuE3
	 NJE3QEb6TqOCFTyWZv/qAZjuYU2/Jb/8MgFGfxdUKsZw9ubCqZCemeRLlRbOkSWoEOLNI
	 nNxHoro9jQvehlJZqbLRolFhqQQw1Y+gfQCIkuHDT1gibv+KjE5qZeZDtHWoP4k7+iAey
	 zCwkLbEMEl9CeHFS2eWzKfViQ8xjJx24DTQ4UgTFWGDH8fBHaxy4JTh5Ha2Txz72gH3RU
	 5hS9eU8oTyH9kSPTX5hIkpTy3kuZF9BbFu2rOFLQzjV24bDjSIY+zbGeMreC+zS3tSgdY
	 vevFEgYza7cf/epsIP18RraZIigpxISf29VFIlZN+XrdKWgFWmCoWXadTl7YPldTzxm1a
	 M0cpH7xumMEcOwSpsJIL/rxJC03ntMmsUtfSt+AYRUVUs1TrtXVDAm0Cu34G240=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=93.44.185.214
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765843898; bh=+zYNMMj0QZZurjKyyiRrhQ4bPdUSpZuE+qDfLVgXSsE=;
	h=From:To:Cc:Subject:Date:From;
	b=hdLtm8b6Hm/hUpbnS+TvP3ISFL0ZU/i0Mf6Nod+/UoK5OV1/E+p5VD8ZVFSGgYfN5
	 aPjCEmXXVGfDnXIXviPHIjPhC0+C40SYbnvdEgSRR1MoodBB6957zZMwwsGJoq5ZlD
	 VYWC1TUhbB5CXK4mW6hozB/EbfqywaTA4cViQOvAdO4Pv0yfjOa80zHhjSYIraM624
	 VhaEorOM5A/owzZ3O6dxOe8Dq7/5BUdzjA44Vui7Ary6s4Cnvw7n1PFI+49jMjErw0
	 SFN23n5NRVmhi71aTfZQBAPGQOV/LjJ7NqIA7pm/IBpVDvQKfGPZzq6BczWD5r1+VR
	 bXRLL51IS7Y9g==
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org,
	consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [XEN PATCH] misra: add deviation of Rule 5.6 for shadow paging code
Date: Tue, 16 Dec 2025 01:11:29 +0100
Message-ID: <e408b8bb6e64e7fbe709ae8a26efa7c247a3f999.1765843801.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The rule headline states: "A typedef name shall be a unique identifier".

in x86/mm/shadow/multi.c the typedef names for `guest_va_t` and `guest_pa_t`
are deliberately reused multiple times due to the file being included with
different GUEST_PAGING_LEVELS. As a result, a deviation for the rule is
introduced.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
CI pipeline: https://gitlab.com/xen-project/people/bugseng/xen/-/pipelines/2216437709
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 5 +++++
 docs/misra/deviations.rst                        | 2 ++
 2 files changed, 7 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 219ba6993b90..86e782da3f12 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -143,6 +143,11 @@ number of guest paging levels."
 -config=MC3A2.R5.6,reports+={deliberate,"any_area(any_loc(file(^xen/arch/x86/include/asm/guest_pt\\.h$)))&&any_area(any_loc(text(^.*(guest_intpte_t|guest_l[12]e_t).*$)))"}
 -doc_end
 
+-doc_begin="On X86 shadow paging code, the types \"guest_(va|pa)_t\" are deliberately
+defined multiple times, depending on the number of guest paging levels."
+-config=MC3A2.R5.6,reports+={deliberate,"any_area(any_loc(file(^xen/arch/x86/mm/shadow/multi\\.c$)))&&any_area(any_loc(text(^typedef.*guest_(va|pa)_t.*$)))"}
+-doc_end
+
 -doc_begin="The following files are imported from the gnu-efi package."
 -file_tag+={adopted_r5_6,"^xen/include/efi/.*$"}
 -file_tag+={adopted_r5_6,"^xen/arch/.*/include/asm/.*/efibind\\.h$"}
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index b3431ef24e26..7f877142109d 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -187,6 +187,8 @@ Deviations related to MISRA C:2012 Rules:
      - Tagged as `deliberate` for ECLAIR. Such types are:
          - guest_intpte_t
          - guest_l[12]e_t
+         - guest_va_t
+         - guest_pa_t
 
    * - R5.6
      - Some files are not subject to respect MISRA rules at
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 00:23:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 00:23:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187600.1508953 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVIqO-0003Bm-Vv; Tue, 16 Dec 2025 00:23:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187600.1508953; Tue, 16 Dec 2025 00:23:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVIqO-0003Bf-TQ; Tue, 16 Dec 2025 00:23:12 +0000
Received: by outflank-mailman (input) for mailman id 1187600;
 Tue, 16 Dec 2025 00:23:11 +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
 <SRS0=rZqM=6W=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vVIqN-0003BG-Mf
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 00:23:11 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 62809d7d-da15-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 01:23:03 +0100 (CET)
Received: from nico.tail79467d.ts.net (93-44-185-214.ip98.fastwebnet.it
 [93.44.185.214]) (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id 29B0A4EE7F07;
 Tue, 16 Dec 2025 01:22:58 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 62809d7d-da15-11f0-b15b-2bf370ae4941
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=93.44.185.214
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765844582;
	b=zGEHrltTWPdDbRAyM6K9wDWxymADggaZG6fzIlglH3wVm2cDicyRDsoy4aRu7e4wvrJR
	 Oo+B5a29gWH9Wy4V2a2pCjmxNdsoyBZr8s7H8GsyzubrPIUJmUf7LTjDApK/V0r07/dZw
	 Od+HwCZ9HIOXnzbmxiyunn5ht2L/Ajpb2Wj3zD3w3EYLewfSg2ZUkkLMLdxbD8zenvNVm
	 2qHkDZqGqVKBjmk5bjN99Eu6OXAgwDivs+LYv2R7TPBkBdSxjRI+X6QOcwZlg5uHKjr0E
	 2rhij/E181VVbAjZufGM1+8HQrfYakyidiAWLCIgBzObiNnTUdC+/Z+wWaF30cToPgx6n
	 XP+FKKOAom/ahwS92iZyI3+LrbigxEs27AqSI4t5OPip+Qpnftx6ItAStpSs1WyFnWpbh
	 E8XY8x1y9lJv0gvUso4vJ35aY7ZxjtJvqSauUyUWL1ZX62tv2ZnOqaT4lZIS/kCgM8Kxc
	 1+UlR3bf045s7/wy07CkBbP+uoDlu0IpLZsjwwmAlfz7erIHcrxPQUd+E5+MVoEu0RbzG
	 hTMQQdRtA/Dl0W4to26NLmSDXqNHHgHCF42Pgfen+Bl3Fajdmz9nPmuZvlKz+tWIbPrh9
	 k6sLRntbm+jWTgCQhDbk2deOtkMs7Wi+tDQ2JZpVMq57Fw+tOdK3QvGsuF6M8zY=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765844582;
	h=DKIM-Signature:From:To:Cc:Subject:Date:Message-ID:X-Mailer:
	 MIME-Version:Content-Transfer-Encoding;
	bh=WdMNly/zURqI76BJfEXjjsKvFJGrqlZNOGTi8OcXOMc=;
	b=FQNFurfwHEJjYRx2/nhtDdDi/KucWaSEzfj8kdVM4Ni8HXIhCbbZq0jH+fkADEKRuMAC
	 N30bTlpyerOqupty8VsEdbpKXVjJxDLwlmPusb3cETP+PXihAFkAnUTUdKIvQ5N+EpMvX
	 X8u++BT5Uo8F36ETZGmC1ZRI1el5yUxJL0BkVDZ94iedbKeK59n2AyKeqEV9SDtaGZZmJ
	 oPu0H2APuLRrQRjMz7kSSXa1pHMlzkWqBYSQsarayG/jtThaFYYvowYK85ZMdIuO8VNkK
	 LMhrd4hYCnpAsyyyljJCBoGvMnmf2gtmd3/I+2nSxC6Jo1ST6dhkoeqLCWsM0XS2TGlKL
	 uTunqVVybwYzA2RPw335L/EmbKH3cfqdCvOxuNO90kXTs2w28eV0n3pLz7Kjs+RhEeQps
	 aPEEMQsXjqxlw66hVQthmfQZjaR7Q5mt3oaCgtAInTfYFxlD6LRInNA6ftjh6NCk7Q7yx
	 8e73ezul493qbHZ27/kvBDq8b6cW20LPpOGWSOgt8HH/LKZpXN2PHIRwuTQkMcbHp3dmH
	 iokswVA9kBelk7ae+3wwhKT95PuFWNJUyyQpZuUQ3y+/1DppPuTyzqlfieL/LMkFEx4Km
	 a0mI45OkGuBvvN65ysN0xA0iJnZK4ta599rpOaXD9Ll+Ph5eywn4/F3Triwx5qM=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=93.44.185.214
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765844582; bh=me4e3FkuyO3ZIHzqKYFSvYGmfLuhj2voW8l2K91NigU=;
	h=From:To:Cc:Subject:Date:From;
	b=C47mmfJQ2BLJZ/Xn9eKB72bAl9gKtxuoBIXwp8NX8weY+XutFlTYz1MFlB0JLWT3Y
	 CsBzdyM0+dM8ZItoUbLCjuoiJkYxNf6v2inIzMYO4GtNG+JktRmQUc3fNE91AdQfnC
	 XvzkiImrGjxTULaM8PapsQKzLzXLqlgwSw7w2UDNhHNQuoG7L/Xh2bc0zAvDRESsTR
	 xlv/QMTnYqEs6kKjVNwUsu+/YtR3NkBrBarnCCnhGWrIYRLtVZf1HXD9GYLvE4o6Ur
	 UCbtrp9KYV+HwMcE+7ScLuRxtQo+TpUuxBBKrjphRdsGj+fzwfnxbBqRFdfHHk/ABQ
	 m7RyLyNpbmnMw==
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org,
	consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [XEN PATCH] misra: extend toolchain assumption about source character set
Date: Tue, 16 Dec 2025 01:22:55 +0100
Message-ID: <5351e65c12a4fcc0a27b5e18102030ccf20bd28a.1765844467.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Similar to the ARM64 compiler, the same assumptions can be made about
the X86_64 toolchain.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 automation/eclair_analysis/ECLAIR/toolchain.ecl | 1 +
 docs/misra/C-language-toolchain.rst             | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/automation/eclair_analysis/ECLAIR/toolchain.ecl b/automation/eclair_analysis/ECLAIR/toolchain.ecl
index 842f8377e561..4bc88aa02942 100644
--- a/automation/eclair_analysis/ECLAIR/toolchain.ecl
+++ b/automation/eclair_analysis/ECLAIR/toolchain.ecl
@@ -210,6 +210,7 @@ ext_sizeof_alignof_void_type"
 
 -doc_begin="See Section \"1.1 Character sets\" of "CPP_MANUAL".  We assume the locale is not restricting any UTF-8 characters being part of the source character set."
 -config=STD.charset,behavior={c99, GCC_ARM64, "utf8"}
+-config=STD.charset,behavior={c99, GCC_X86_64, "utf8"}
 -doc_end
 
 -doc_begin="See Section \"4.3 Identifiers\" of "GCC_MANUAL"."
diff --git a/docs/misra/C-language-toolchain.rst b/docs/misra/C-language-toolchain.rst
index cb81f5c09872..ec0c9953be1c 100644
--- a/docs/misra/C-language-toolchain.rst
+++ b/docs/misra/C-language-toolchain.rst
@@ -400,7 +400,7 @@ The table columns are as follows:
      - See Section "4.15 Architecture" of GCC_MANUAL and Section "3.1.2 Data Representation" of X86_64_ABI_MANUAL.
 
    * - Character not in the basic source character set is encountered in a source file, except in an identifier, a character constant, a string literal, a header name, a comment, or a preprocessing token that is never converted to a token
-     - ARM64
+     - ARM64, X86_64
      - UTF-8
      - See Section "1.1 Character sets" of CPP_MANUAL.
        We assume the locale is not restricting any UTF-8 characters being part of the source character set.
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 05:17:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 05:17:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187615.1508964 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVNQi-0002lh-Md; Tue, 16 Dec 2025 05:17:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187615.1508964; Tue, 16 Dec 2025 05:17:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVNQi-0002lQ-Gn; Tue, 16 Dec 2025 05:17:00 +0000
Received: by outflank-mailman (input) for mailman id 1187615;
 Tue, 16 Dec 2025 05:16:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4lhm=6W=gmail.com=ritesh.list@srs-se1.protection.inumbo.net>)
 id 1vVNQh-0002lK-Gu
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 05:16:59 +0000
Received: from mail-pf1-x42e.google.com (mail-pf1-x42e.google.com
 [2607:f8b0:4864:20::42e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7014f142-da3e-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 06:16:56 +0100 (CET)
Received: by mail-pf1-x42e.google.com with SMTP id
 d2e1a72fcca58-7ba55660769so3234708b3a.1
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 21:16:56 -0800 (PST)
Received: from dw-tp ([203.81.242.64]) by smtp.gmail.com with ESMTPSA id
 41be03b00d2f7-c0c25a87487sm14064659a12.7.2025.12.15.21.16.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 15 Dec 2025 21:16:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7014f142-da3e-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765862214; x=1766467014; darn=lists.xenproject.org;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:from:to:cc:subject:date:message-id:reply-to;
        bh=xjD+cNbyJGOMAKpBo5e8LJBh9aFpu4/6uuuLCwZXOF0=;
        b=ZUNvAxA/vJRzB2TXHETPULp2O1/+D2Kf4cRC+JA0JZSsRilCh548D3/sCbzW25Agh+
         SlE1NDxzphXoQbGf1UrwrnYLVtu0ijh6uD6eMb+2yBAIvASX4ss6ID+hNGgSFD56Vhne
         MDwNRkjFWuMxwgslVhT5qCq6vANxIO/xmwF0amz+SUxm8BPE7ZKNNETEmO0guXcRp58K
         cdTfhMe6MpooyEEfxQedpSt8V5R5S5/H2r/IFWLMYhxqUmoWTnp6yMWa6Pk+C3PXRcl5
         K0edBnJCWt4DFFlHBYMWWq5y2UJwykD8kI/Vz2zUl9c7AodPeM3AF5GQqttHreRj003P
         x46w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765862214; x=1766467014;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=xjD+cNbyJGOMAKpBo5e8LJBh9aFpu4/6uuuLCwZXOF0=;
        b=J7Ho8d9eNypBoJT1SYCk3TacAjfccmXL4cDu2pKs20muMIMhSc2YhNoRf0gXdioOba
         TmjgKVDKMM/Fr50bwS3Y3Awka92jErUzqpNsPypbBf1Own6BP1i8qD+UwELBIogpmkN/
         DzbR0jcO9JiT0mDjg0s+mxPx8u1BrEVIKnJiMNKR5GS/Xt0seS6yS1vPwPVeP0qPR0bB
         rWlF7JFTgi/tJD+VSjgq78BGYihhPDD9aBmUHQDOCxj4mNJfOYkhpAbf5HMqTZC10Ow6
         myHN2RCSxxRa+cg+51fvxLSc3CG+pl1jVq4dstimJmspFNLScXqglJ8CCmNE1VRwUere
         DeOg==
X-Forwarded-Encrypted: i=1; AJvYcCWQ5wESi2S81YoIP5bczmUUzpnjUIrp1P1wr7fH5l1yQiWU1yZ+iA+aacDczowAptyrA7s7wmFoe4M=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw5CV1NQBVSLwvhjBPurANIoixCOPdcGdXKkp4ZNIx0ZIjJzG4L
	TKGOl5GQfzQR7xUarrYyGR9Peff6cdVkSid84sSGn+9GRftAQu8QT6OA
X-Gm-Gg: AY/fxX5Dtp5NOmg5c8/jXx2PYQ4KGlrD2bjNZ9ipByizhwnRXHR2RVB3zKLdh0yn/r+
	pSHtj9gAGWZxUlmqk96X2Ij5NTvcro4MASAyHSv5dcNooS4yd9dx0uBJ7fet3LP/i2JILx5KS9X
	YBJ/D+vNoH0h2tLaXXoAwypwba20gOZwJNj3rGQaf5pCOghlLHMRjtwY1+qGMdY5xjY2wceET0G
	l14NI/z/qBe/3UqUKpbvYz+bN7JywhhWTtysTt3CxOFJYu85itekDPXB/ryzhypNDZ8C7iXoNEe
	LvtR1zJ60b4SDzxttSkQuKbqz/x9FTH6eJFD5voLTHvK0HR+T5L5RMM7a0mBp1CoIYulzxloyH1
	SmYGQsCYEn8K/lfjF3SqUUgAJ9M0LDpNYM3K1dOYVjEb/lZ7eVDpWXMkHglPB1tiJxyhf5HeXBp
	toxrMB
X-Google-Smtp-Source: AGHT+IFRNBpu36xO7SS++RmJSf+Yd0YivNXXnhzhZN3Px6CmR0fp7AX2KZRojw083jfNpLsrb718Lg==
X-Received: by 2002:a05:6a20:5491:b0:366:14b0:4b05 with SMTP id adf61e73a8af0-369afc00407mr13380900637.65.1765862214371;
        Mon, 15 Dec 2025 21:16:54 -0800 (PST)
From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Kevin Brodsky <kevin.brodsky@arm.com>, 
	Alexander Gordeev <agordeev@linux.ibm.com>, Andreas Larsson <andreas@gaisler.com>, 
	Andrew Morton <akpm@linux-foundation.org>, Anshuman Khandual <anshuman.khandual@arm.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov <bp@alien8.de>, 
	Catalin Marinas <catalin.marinas@arm.com>, Christophe Leroy <christophe.leroy@csgroup.eu>, 
	Dave Hansen <dave.hansen@linux.intel.com>, David Hildenbrand <david@redhat.com>, 
	"David S. Miller" <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>, 
	"H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>, 
	Juergen Gross <jgross@suse.com>, "Liam R. Howlett" <Liam.Howlett@oracle.com>, 
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>, Madhavan Srinivasan <maddy@linux.ibm.com>, 
	Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>, Mike Rapoport <rppt@kernel.org>, 
	Nicholas Piggin <npiggin@gmail.com>, Peter Zijlstra <peterz@infradead.org>, 
	Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>, 
	Thomas Gleixner <tglx@linutronix.de>, Venkat Rao Bagalkote <venkat88@linux.ibm.com>, 
	Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>, 
	linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, 
	sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
Subject: Re: [PATCH v6 03/14] powerpc/mm: implement arch_flush_lazy_mmu_mode()
In-Reply-To: <20251215150323.2218608-4-kevin.brodsky@arm.com>
Date: Tue, 16 Dec 2025 10:44:45 +0530
Message-ID: <87345b6m9m.ritesh.list@gmail.com>
References: <20251215150323.2218608-1-kevin.brodsky@arm.com> <20251215150323.2218608-4-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Type: text/plain

Kevin Brodsky <kevin.brodsky@arm.com> writes:

> Upcoming changes to the lazy_mmu API will cause
> arch_flush_lazy_mmu_mode() to be called when leaving a nested
> lazy_mmu section.
>
> Move the relevant logic from arch_leave_lazy_mmu_mode() to
> arch_flush_lazy_mmu_mode() and have the former call the latter. The
> radix_enabled() check is required in both as
> arch_flush_lazy_mmu_mode() will be called directly from the generic
> layer in a subsequent patch.
>
> Note: the additional this_cpu_ptr() and radix_enabled() calls on the
> arch_leave_lazy_mmu_mode() path will be removed in a subsequent
> patch.
>
> Acked-by: David Hildenbrand <david@redhat.com>
> Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com>
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
>  .../powerpc/include/asm/book3s/64/tlbflush-hash.h | 15 ++++++++++++---
>  1 file changed, 12 insertions(+), 3 deletions(-)

Sorry I was away for a while. 

Thanks for taking care of the radix path as we had discussed previously
here [1]. 

[1]: https://lore.kernel.org/all/87jz044xn4.ritesh.list@gmail.com/

The change looks good to me. So, please feel free to add:

Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 07:56:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 07:56:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187626.1508973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVPuV-0004yI-CW; Tue, 16 Dec 2025 07:55:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187626.1508973; Tue, 16 Dec 2025 07:55:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVPuV-0004yB-9q; Tue, 16 Dec 2025 07:55:55 +0000
Received: by outflank-mailman (input) for mailman id 1187626;
 Tue, 16 Dec 2025 07:55:53 +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 <SRS0=t3Kb=6W=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vVPuT-0004y5-Gr
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 07:55:53 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a45e52a0-da54-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 08:55:52 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4779cb0a33fso51524985e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 15 Dec 2025 23:55:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f6e5baasm243042955e9.13.2025.12.15.23.55.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Dec 2025 23:55:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a45e52a0-da54-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765871751; x=1766476551; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RlPtpsfMLI3vNX0v+D09nikJBlZj/5sGKY+71A649M0=;
        b=T37IHYCbMQtagagP6JrPzX9sJnQlhKDC4S/AGRbUNIm1ywkWMWtlCxETnXGtC7vIin
         +RW/9ce3Z9uTiMVJIo70kjmhA9WtoFFDt3LMcjWquZJvjpPvHvzaIWOmYwGPubSug5vj
         YULhu3Re750Efm7LOa9BOlDbLFDY5zG0jQ1KxhXnIOyl6VofkKaGzGeHBDfdteHdMMVw
         Ay/KClcsvnwLpT8i+4e5PYXAW/768m+lE2+FMOvV5BjKSPJo4mZzbs4jRe4+UTdEZYfB
         HqZPdIwBb8E0vxeKtXCslyiyiuFTqi0T+d8RaeboYgoFoxE2HFxwZptFp9ppiEjpss5b
         yRgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765871751; x=1766476551;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RlPtpsfMLI3vNX0v+D09nikJBlZj/5sGKY+71A649M0=;
        b=NK/cjHKCmICRNxBw6Vop9fLL8ataBqoSzl4rihOCKw5ggRhvMoXe8eLUmm5q8SPjRD
         YNgwNyE4hIsnlh7r9iysmgwin9ul3sSfZf8w0gfGEIilWEqWz0F6A1DgCXcL2ClDGQgx
         2PoGm2644RCt9gPWO35Bvs+wZQqdvIkLpMiEeq6F2YPH3PIrNeBqq3vRZUgEuWa9V91B
         CDdONgyPWdT+mFc4UDPzxFOYcqqyVLboegDy9Pi6WUEf599iZvHgcFpFT79PUiIBmsgS
         5DGAEp6+tAzJGVwQMkabMOTGywCo2kAkdDbNBEoP6UJ5n1KA/PtXra1bSDo4WLr8SPJA
         ZCVQ==
X-Forwarded-Encrypted: i=1; AJvYcCXXgcHTQsKihZyviFnxHq2s6Fskf2/jV3QFhAfVy8ICC2yzAHqPvwb+uN4UUirvkM2qM2yfLzREYwk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwJO4wu/WHaxIhZ/DzqH/2hRyZLrymXCfrBAKjGmCXoX8xHQREm
	75ahu2xTfWPKJS9iWkrMag9LYnGKbBAu4nqibldOjIPA4o2HhAF4OpyXzi+R5SvgNA==
X-Gm-Gg: AY/fxX7YEqOmzVKPbj19+mB9z1zMjv7eREfU7rM3pcI9KnWQHff2RLW5zM9EpQ522C/
	kyBsRmzyNcvg3hM+/QvLuxRNB4J4DDhPTlUa6GeRk085CBhROAFi0+uW68zA58Mzt6mFD4eyyFa
	NbMj46ui1BWhBlNolBRww6ca+eWHIoMH2gmE5Whf9qu1LYqQlikb6Wgltn21z/dQDx5/6gfecXk
	eBJdUwWe/DcHfg3nXoPPb4/0Z7T5d7YxNwD8tWsGd0Tsz5ijCLh4ROA/zpoGKO8L0d1Dpg2GH+L
	maDCtwwBIOMF4X82hZNn0q6Efm/BOHMuVwblgGbnNO9FYUP4Nnp+xeAo4PCwUFOUM6EanSJkp1u
	/RQAc9VTg7+HdK0xSLpBm9OBtOwm3luhxo8qUWxk5Vig0RMQS+C3wHNfyJVkXMy6/0O2BhcYlxa
	7Nv76+HtWhk003dHdl01wacbgBFknaXiC+oggiamP838UPCxBD03bSiwt8XHQWN4PwgV6O46Uq0
	9c=
X-Google-Smtp-Source: AGHT+IFIWEVxfsS5q4qSBoHiHXIOmMdHqkp+2xTLVG0cMIds/QRKNPQVl0ahq5KcAQ/DpDNUlwNAQw==
X-Received: by 2002:a05:600c:470e:b0:471:13fa:1b84 with SMTP id 5b1f17b1804b1-47a8f8c0527mr153840435e9.12.1765871751317;
        Mon, 15 Dec 2025 23:55:51 -0800 (PST)
Message-ID: <2a661e47-78f1-4569-9ed9-b4c3e62af646@suse.com>
Date: Tue, 16 Dec 2025 08:55:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/ucode: Adjust parse_ucode() to match other list
 handling
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251215153245.2675388-1-andrew.cooper3@citrix.com>
 <b14362f4-aaa2-4ded-943f-4ad4a246f521@suse.com>
 <b6dc5f41-9504-44d2-ad17-72d0b20f1434@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b6dc5f41-9504-44d2-ad17-72d0b20f1434@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.12.2025 18:08, Andrew Cooper wrote:
> On 15/12/2025 5:00 pm, Jan Beulich wrote:
>> On 15.12.2025 16:32, Andrew Cooper wrote:
>>> parse_ucode() is abnormal compared to similar parsing elsewhere in Xen.
>>>
>>> Invert the ucode_mod_forced check with respect to the "scan" and integer
>>> handling, so we can warn the user when we've elected to ignore the parameters,
>>> and yield -EINVAL for any unrecognised list element.
>>>
>>> Rewrite the ucode= command line docs for clarity.
>>>
>>> No practical change.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Acked-by: Jan Beulich <jbeulich@suse.com>
>> albeit I'm not quite happy with ...
>>
>>> --- a/docs/misc/xen-command-line.pandoc
>>> +++ b/docs/misc/xen-command-line.pandoc
>>> @@ -2752,34 +2752,52 @@ performance.
>>>     Alternatively, selecting `tsx=1` will re-enable TSX at the users own risk.
>>>  
>>>  ### ucode
>>> -> `= List of [ <integer> | scan=<bool>, nmi=<bool>, digest-check=<bool> ]`
>>> +> `= List of [ <integer>, scan=<bool>, nmi=<bool>, digest-check=<bool> ]`
>> ... this change when ...
>>
>>>      Applicability: x86
>>>      Default: `scan` is selectable via Kconfig, `nmi,digest-check`
>>>  
>>> -Controls for CPU microcode loading. For early loading, this parameter can
>>> -specify how and where to find the microcode update blob. For late loading,
>>> -this parameter specifies if the update happens within a NMI handler.
>>> -
>>> -'integer' specifies the CPU microcode update blob module index. When positive,
>>> -this specifies the n-th module (in the GrUB entry, zero based) to be used
>>> -for updating CPU micrcode. When negative, counting starts at the end of
>>> -the modules in the GrUB entry (so with the blob commonly being last,
>>> -one could specify `ucode=-1`). Note that the value of zero is not valid
>>> -here (entry zero, i.e. the first module, is always the Dom0 kernel
>>> -image). Note further that use of this option has an unspecified effect
>>> -when used with xen.efi (there the concept of modules doesn't exist, and
>>> -the blob gets specified via the `ucode=<filename>` config file/section
>>> -entry; see [EFI configuration file description](efi.html)).
>>> -
>>> -'scan' instructs the hypervisor to scan the multiboot images for an cpio
>>> -image that contains microcode. Depending on the platform the blob with the
>>> -microcode in the cpio name space must be:
>>> -  - on Intel: kernel/x86/microcode/GenuineIntel.bin
>>> -  - on AMD  : kernel/x86/microcode/AuthenticAMD.bin
>>> -When using xen.efi, the `ucode=<filename>` config file setting takes
>>> -precedence over `scan`. The default value for `scan` is set with
>>> -`CONFIG_UCODE_SCAN_DEFAULT`.
>>> +Controls for CPU microcode loading.
>>> +
>>> +In order to load microcode at boot, Xen needs to find a suitable update
>>> +amongst the modules provided by the bootloader.  Two kinds of microcode update
>>> +are supported:
>>> +
>>> + 1. Raw microcode containers.  The format of the container is CPU vendor
>>> +    specific.
>>> +
>>> + 2. CPIO archive.  This is Linux's preferred mechanism, and involves having
>>> +    the raw containers expressed as files
>>> +    (e.g. `kernel/x86/microcode/{GenuineIntel,AuthenticAMD}.bin`) in a CPIO
>>> +    archive, typically prepended to the initrd.
>>> +
>>> +The `<integer>` and `scan=<bool>` options are mutually exclusive and select
>>> +between these two options.  Further restrictions exist for booting xen.efi
>>> +(see below).
>> ... then you say verbally that the two are exclusive of one another. That's
>> what the | there was intended to indicate. IOW I would prefer that line to
>> be left alone, but I'm not intending to insist.
> 
> You said that last time around, but it's still not how the parsing works.
> 
> ucode=1,1,1,scan,scan,scan,2 is legal.  The latest takes priority and
> cancels prior selections.
> 
> The reality is that | used in this context is meaningless when there's a
> comma separated loop around the whole thing.
> 
> If you don't like "mutually exclusive", what else do you suggest?

I'm happy with mutually exclusive. What I said I don't like is the dropping
of the |, expressing the same "mutually exclusive" in a non-verbal way. Imo
those short forms aren't supposed to describe how parsing works, but how the
options are intended to be used.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 08:23:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 08:23:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187649.1508984 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVQKe-00010k-Qo; Tue, 16 Dec 2025 08:22:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187649.1508984; Tue, 16 Dec 2025 08:22:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVQKe-00010d-Nx; Tue, 16 Dec 2025 08:22:56 +0000
Received: by outflank-mailman (input) for mailman id 1187649;
 Tue, 16 Dec 2025 08:22:55 +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
 <SRS0=5a7Y=6W=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1vVQKd-00010X-Jt
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 08:22:55 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6b213a29-da58-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 09:22:54 +0100 (CET)
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by AS8PR03MB9487.eurprd03.prod.outlook.com (2603:10a6:20b:5a6::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Tue, 16 Dec
 2025 08:22:51 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%5]) with mapi id 15.20.9412.011; Tue, 16 Dec 2025
 08:22:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6b213a29-da58-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PPrx3SmYCoWqrdsfMTh/RvXObrc+qMDlT1SIioxlqOwUgCUWXNxinm/XnvG+LyVjSmzQpxeBKnSYG88QrjjQBI0MVkyL6B3o57WAL2LiULGdE9eFbSky97/YxX8Z+q/d+G58dcbvF7uz2Xk6Rf437HjgBCQBhyJi5SuBOTTleK2Cy4zmoOLtu2yNiOfsKusZhHz8JsNUMTI21vE16FZofKPhju/Kk2t2QP9k9xG9OlSJGSWQjcdMLcNBVjIK3Jy7CQ4/sanj8gG4r83xfGVlBtrB9abO1i0LgVWicmZUDkPZsh5V3QwHcCm6XytujcKZ9qSvAHjKK9MAmKig2BTZvg==
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=ex/UrxMpgu7R1i1jcVvwwCh0n4O5CLU0y5hO4NKliXU=;
 b=L9nwKS7Y6W9jyWA/Bx825p0AFo3JvtiHl5NhNYQ/4WWsNtClECUCYtBF1H28Sh/lk/DIXp6mveGjmNZB9WLSG7+k762ufhoG9bX+fqIF/SzLs4AUwrxy/OGcJBsOnxEtEXBTAmTfpXYKZLp5jkCwz4T7VeeLa584vDK72+6vW0sXBQEIRtc4N4I9ZKNzc9pz5a21l7NoxD3mufHdCKKfq69oiHay1xTnm38AHGmioeivg/7bJ4SjP9US2pL41czXAC4RnqvhnjM5nwA7wfH/hswWmvgt11q90EL2RvAM62Ex7Rv5nSBIIXocXDJ9MSedYLHjIfpo9hIZ1PFSA9gtPQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ex/UrxMpgu7R1i1jcVvwwCh0n4O5CLU0y5hO4NKliXU=;
 b=BgtJaVnLYBF5GQjuSqLSOZbi0/5wUEGK+dLVEAJyppk97BA8TvmrpNmTmbhfMQeLGhcqMpTMTpsW225bOG2jFC5fMZQAR93sGiM9SrdSgT31Q8HEu4EWYMZf4r7+N/kt/1ieQ8MivBZLnMwn2KIlRDqnRcg0SSfLA58Bx0DPMrPI+c9BiSdTZMduXb5CqjDvtczk4W364F20JciH9EoANXt+vK/m3oOzPHoG5P8ysQLWSpsYxD+jJef11ePt6Bh/9Mg8VJJFmI1P9BitI/bmSFzgQlFgf9lQDtOWCKSNrDNq2A/QB3KRTJ8gE5N08+3uiM/lK6t/cPscyYIz5ZzqzQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2] gic: Replace BUG() with ASSERT_UNREACHABLE() in LPI paths
Thread-Topic: [PATCH v2] gic: Replace BUG() with ASSERT_UNREACHABLE() in LPI
 paths
Thread-Index: AQHcbmUrcEwVn+26xE+Vc6oA3vTwfQ==
Date: Tue, 16 Dec 2025 08:22:50 +0000
Message-ID:
 <1c846d023255a7a7a9ce533cde0a8db3c26eb855.1765811852.git.dmytro_prokopchuk1@epam.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|AS8PR03MB9487:EE_
x-ms-office365-filtering-correlation-id: eda8d98c-cbac-4aa8-ff6b-08de3c7c4db1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?9slgr4YWA3qJbHxtUyu1c/+i+2DvCElWz4ej6Aoa+LLklh/CRgWTfD1yde?=
 =?iso-8859-1?Q?wkM7Cyl3tqGyT+v2iXfXqBC7m8qPyOTMPgTKJhyCe20BbrKnpnfu2UvKsw?=
 =?iso-8859-1?Q?TVy9xJWlNq9meVyR/WxUi6FlU73BTBoutWhZZgprMYR2j+nG5lUOdw4e01?=
 =?iso-8859-1?Q?y8jmsDo3pVlWIzEJUpPVkvbabj2UvXua/GoChbr7ROEbhEI+vRJ3H5kmYh?=
 =?iso-8859-1?Q?tJm15u3yk02bIgDqmxsJBVDVv5HkF1bT1cti0Ppb/OuW8UZEmSCjwInW+w?=
 =?iso-8859-1?Q?5iiop2zmAmclrkF+vZ5tqX8V3vB2RrQPJsxqSPLc2VYlSAKZ2H1oml2xOF?=
 =?iso-8859-1?Q?R240I6XQFPU6ZsSjpuQaPaO7tNFszoHrYWyloFCBdJgb0MGus5wbEIoIYa?=
 =?iso-8859-1?Q?5Y6ExrqLWOTFf3gbEDBgIStxENJBloCq7foTQOPlIiqRZWvbXRBoTb7f/v?=
 =?iso-8859-1?Q?6yYOxZBImmTJm4eDd9/v0Id+dea5HQpENhIUBwh7TO7E61unb140kuHpFP?=
 =?iso-8859-1?Q?l9AlrYdUzVTj6SdMKQ4g4CIMMwCdsqWt6G9IvQ2cpqibag50zAdxI1Kevf?=
 =?iso-8859-1?Q?K3qO4NIf+7MvqHpArGTlcXBsrmvg5j15fahL4pFeq9vYcNPy22s7SCBfTU?=
 =?iso-8859-1?Q?4018iW3IV91bQcqWDqySw9MBeDDh0zszUZ6DAh+prQSilqXxQ3ECtxPbKi?=
 =?iso-8859-1?Q?nW3LoJF9tyMJnzrErbZb+MWi2YPqmTS3/ngbC33XBKg3FLwJ0laj8WfJF6?=
 =?iso-8859-1?Q?FCPipV+mEakSy/8T2fBpjeAwcR6VocHzWkCzTAJ9KXjIlBwCtCDL9zEj9X?=
 =?iso-8859-1?Q?0V5NqPVosTH8L31w0tPMtaoRwosxTmVyXCBfPt8EOG6dh6l5EXzVQ+fV71?=
 =?iso-8859-1?Q?4hpHpliRvplbM4tUDuB1+ZXouN2s/ATWgUOk6eo3uDL25bmABGkTfggBkN?=
 =?iso-8859-1?Q?3DYEYFVSvhqAo732AzoIp3Teewi00m3mvzagvUVvpQgpsyyQZKKmjh8H40?=
 =?iso-8859-1?Q?3T/sS2BihBsvO6i8D44hKA72uNPr4vG+SudbuR6CvK9uLvku7f6tvuQK5d?=
 =?iso-8859-1?Q?4473EHw7drKgvAxAuJkQPkCelI3g9ZfrkNqInSMFE8dIuA4QmehM7I4JtK?=
 =?iso-8859-1?Q?qDOGAiVuN/Cws2rdTrrd/N50OvjsRLmzuxOW00j8nRWJUwxKfyxVAlbBI0?=
 =?iso-8859-1?Q?nHWG7vH+3/ylg4GwvyS7hyIkM/9K6bYb/sS5UQJ5tzOSzhlpHLRcSXZ34B?=
 =?iso-8859-1?Q?G0YxEy+HuGvCr9N3jwq33kLgKpfXhz1FFQUDGkWuOoAPKb+AP1bVMYylGp?=
 =?iso-8859-1?Q?xU7Nc2u+ClXRracWUvSeFV/d3k7yU0wYhIcHFb4v4h3mHYDHtWgxT8KBhi?=
 =?iso-8859-1?Q?fSEIdIWevweUzZVrezlaXxryu5Bbyhm8Blnfqjt0OuuFy47GR6G4tfzIqn?=
 =?iso-8859-1?Q?DMxC/tQjGb4mXKC5nB7rogaiUIcAvRwrcPtQqh9I73qqlFsrPwiWosofb7?=
 =?iso-8859-1?Q?Nz+NwGj1eVZ4Tpyn2a/cDDmf+4vEuo/6qt6nOBmGlZRw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?10vt0dhtT/eGgb5d36TmLhU9WZBSiAzEHGyyREKH1Vcp9sR2Ohjg4eAzex?=
 =?iso-8859-1?Q?8jf+5TFs43cpqDzQUyviQCods8mgyWJZ+bE84L9vOn1lnmENX5OV+yubTf?=
 =?iso-8859-1?Q?U/7mpvdZ3D5s+wxwCexC70ZHe0PChnFxz+i2mGfJKBWce1B9jDY4VoFZRQ?=
 =?iso-8859-1?Q?5y2UXeaUJ8H4NptOvElY+iJdzLfcqI1gUEz+LXEEXAHP5l71kH/dTH5FHR?=
 =?iso-8859-1?Q?IPs8J6yGf+n/cJ9ouLNYvTPkj+CGRKSO6b8VZAcVKxFxtj8t+n58d0EMPv?=
 =?iso-8859-1?Q?z7S1cv5rzbzD5m8A3EuhfgJ9DsEuD4VHhAG/kzw+YDUseWEuCpRZ+Ok0xS?=
 =?iso-8859-1?Q?pilS8G+07oYfs2ZTK2MjNcA6WgSqd8n5TxoUHfNOv9SyWOgdpVFKs6MHFA?=
 =?iso-8859-1?Q?dBVnIPC9ITIyxAiVJnh5I2zUwCKd1j8IaMIt2vFchdA7H7jOsaXG7juMnP?=
 =?iso-8859-1?Q?GNuCqX1TUL42YjrCDmk5nsMrQvCVPzC0NA8Da3lG1sTRGGg1q7w+GTW0lo?=
 =?iso-8859-1?Q?csMxBEVk47WyfmkUfiV6x0S8Oh0G9cusGbvsWXekXV9o70lsJLCg+CK4oH?=
 =?iso-8859-1?Q?CxlpFg/SjnV+lJcSPc1Is4eJdKBOUpeSHzpcZL1mWgDl/XfxeVYCciPbOS?=
 =?iso-8859-1?Q?IDbZRdwNPq2RTm7Ga+/VnxSq0PsLP7aX7Bgh5YIdybAl17J+++MPq4rkz8?=
 =?iso-8859-1?Q?WdhWTisI6mzO8DX3Qlfnou4bfOWdMGt/fe8GnJk7XoR1xW2Ycg6ejo+BDh?=
 =?iso-8859-1?Q?xavYhp5neIa80VdzEtILfmdXX4yLNSTQt87yGa+NXhyA2nMyLD53pvrBPH?=
 =?iso-8859-1?Q?aMG98/VWsBAjgNKfJcBPJ/6FSkQL0F93enNbRy9uZpn/1d8TSCn8AIoppc?=
 =?iso-8859-1?Q?RZN/lbCdOfPb24Lo2UOt3mv0sywHVrfQ4OQb2vDlfSA028proZrxleBxAP?=
 =?iso-8859-1?Q?AmVMClAawsWFttQg42iYtNZQpjOjeM5X2dpKDHuNl03msK0UJ7KaDhgnZC?=
 =?iso-8859-1?Q?0ApmcH4J7JmMDssKry79dvte47YaWAn7V5+5JaaBJkKSdYRKvUf/Y0wsbG?=
 =?iso-8859-1?Q?9L3MOiQ1g/ezcvF29CHp3r7UP8Ydoezbp/aGjyHGVcMyt0LXSxxnRYnu/T?=
 =?iso-8859-1?Q?JzmSz75dZig7MqUVeOdVz2IKwmZH1T54XQC6SP0yIlH5sK64pC0vgJGuWx?=
 =?iso-8859-1?Q?0lvnCzl1OH2nXEKCqg78BC5sVmz2bnm9umkicNIzVR1eSupoLek8igJWKq?=
 =?iso-8859-1?Q?MmPqoUMkyLtUfGcQd8JX3Ltez9Xkor1t/MhTRwb7B26WcrF2qQ0tmBXtra?=
 =?iso-8859-1?Q?wfsH3HzrECto+rtLakuNGwD3SErL9z2fgv7DvVALIsmDmTMbk/QRTX3h0o?=
 =?iso-8859-1?Q?vax6ziJLAnOMqMfNYLa5JgJoQgxEvFwz31i0O2J8/ZF7higdg49LdGJOKN?=
 =?iso-8859-1?Q?7vsI/8NDCboUh/4s32Ybfx0YlbJMpxeH1yHmr4kmQZ+X8klzGKYl8/mP/L?=
 =?iso-8859-1?Q?G7YuS4gIaDgrT+jmG8/4H4HF76pNzkgWXMTWmSiY5Mr7HSxYVl2h/KAz+e?=
 =?iso-8859-1?Q?fXgBBDelFn3HJhl2pJF2vdth+iHUKOMd10ERzhpyysGROurLzQN2v8k0mt?=
 =?iso-8859-1?Q?mmwN8k/3cLXXpZ2CS0QfIVn6m9ty/TsDmrBHaNhqeW0XwG6AyQZrn1Fw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: eda8d98c-cbac-4aa8-ff6b-08de3c7c4db1
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Dec 2025 08:22:50.9093
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: +T+GuAy9pSgAxFjWC9Lq92QlWD1zt4I1UUSdRgydjSN5ztXb9k2C1vkzZkOxi00sp+6ZPpgme1JYVmAkHV1v9u6SvasP+Vppp3YbP8cN0sA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9487

MISRA C Rule 2.1 states: "A project shall not contain unreachable code."
The GIC LPI driver callbacks violate this due to the use of the BUG()
macro, which causes the function to never return.

Swap BUG() for ASSERT_UNREACHABLE() to satisfy the rule without needing
an additional deviation.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Changes in v2:
- replace the BUG with ASSERT_UNRECHEABLE
- drop SAF-based deviation

Link to v1:
https://patchew.org/Xen/b26772df8733dbd1ce6ea14a6e8b73f278db3a3d.1759174857=
.git.dmytro._5Fprokopchuk1@epam.com/

Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/2215606139
---
 xen/arch/arm/gic-v2.c                 | 2 +-
 xen/arch/arm/include/asm/gic_v3_its.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
index b23e72a3d0..db8bc310ab 100644
--- a/xen/arch/arm/gic-v2.c
+++ b/xen/arch/arm/gic-v2.c
@@ -1308,7 +1308,7 @@ static int __init gicv2_init(void)
 static void gicv2_do_LPI(unsigned int lpi)
 {
     /* No LPIs in a GICv2 */
-    BUG();
+    ASSERT_UNREACHABLE();
 }
=20
 static const struct gic_hw_operations gicv2_ops =3D {
diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include/a=
sm/gic_v3_its.h
index fc5a84892c..09c1538b75 100644
--- a/xen/arch/arm/include/asm/gic_v3_its.h
+++ b/xen/arch/arm/include/asm/gic_v3_its.h
@@ -232,7 +232,7 @@ static inline unsigned int vgic_v3_its_count(const stru=
ct domain *d)
 static inline void gicv3_do_LPI(unsigned int lpi)
 {
     /* We don't enable LPIs without an ITS. */
-    BUG();
+    ASSERT_UNREACHABLE();
 }
=20
 static inline int gicv3_lpi_init_rdist(void __iomem * rdist_base)
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 08:25:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 08:25:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187657.1508994 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVQNB-0001WS-5k; Tue, 16 Dec 2025 08:25:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187657.1508994; Tue, 16 Dec 2025 08:25:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVQNB-0001WL-3F; Tue, 16 Dec 2025 08:25:33 +0000
Received: by outflank-mailman (input) for mailman id 1187657;
 Tue, 16 Dec 2025 08:25:31 +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 <SRS0=t3Kb=6W=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vVQN9-0001WD-Oy
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 08:25:31 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c3982ae7-da58-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 09:25:22 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4779ce2a624so47385725e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 00:25:22 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f4a3e9fsm228021635e9.6.2025.12.16.00.25.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Dec 2025 00:25:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3982ae7-da58-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765873522; x=1766478322; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zTOoM9o/HE5483B7mrP5RncqiAifKbRJpXOBMlfbm+U=;
        b=BRDk5d4qHjba4voPsWGTVd5EYl0oN8ELCgoqL9FND3TLr4YvhHIVsjhvBQWnR9B8El
         ZRp8xM3TC5AcA0jahzApZc7E8wpDsbOhAut1CaaV8ufT/hHwd0XfL+SI9i9HA6/t3z60
         nGXNdAIDv/tYPeVW9YhtW1rMev78SK9eDpXXAZ0UKuoUKqzjiI/Xtn18yXIyUDd60Gna
         HToVOFisbsEx1F4qqvDl8Ve2blJukf/Cy44cgr8cWQCNRHg+mohCYWNysOuXJoiyOpLF
         NZvyyTdIjWNkU9oXmzip4zc2nWNayj5UucZXBUex5ZsNsxCuzqCij2qzoew0zYCWKg3+
         8hNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765873522; x=1766478322;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zTOoM9o/HE5483B7mrP5RncqiAifKbRJpXOBMlfbm+U=;
        b=lmJ3THlIzGVteNGjr5EitStUamWcQaLa7fiRBJNCkTQMYwIe69VXkfQHrdCyjPSYNb
         eALob3pFgqYFBt3nslwsOcJqcYTCuk8Ly7WxLJ0pClhpoD316Lq3+/9mTzNzM+/RNueI
         /BIQ149SEv3555r+wG2br0/sEl6WhPwEH4paqUSiae3wrNQyZKfv3OtYM5nO9/rqEpUq
         xy+oF6a54fzGXpXMqFLO8fJTtV9PrSfUggO65qVzG9HXWrXtlgHCtqHmYMMyIypCjc0D
         OxMJMPWx1xFs0feMGw9CNV6VjxC9WlstxgEoCZWxPJwIX/7oz1e7dicDZ/cLjy72/vg3
         crBA==
X-Forwarded-Encrypted: i=1; AJvYcCXdPQufmOnQIMAX25N5EAIlHE4nEmbSWCfZuAd9rhZSwx0oyZIhgfTECzYOvlDQ5AOD5SwTmVe5v4o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxTExuQD0PmCkIH3sGVzIJ+ljPLbz8dVQiY68fLQwoGZmBnAeIb
	NSjXap9ydvdsp39wTZHtIjuii5qGCZUPxFzfPPcNeDTvNmAP4fOCblmFjEb8XIInNw==
X-Gm-Gg: AY/fxX4KcezGnwGyP9a3Wu2u9FStcNbZmwOojQYF2SPdIu4XF2ejQvuXGv9WWnOkU/g
	F3rFnImKJtBwuwrRbphaLJJLQDvYJv/yNOyN9Q1dRHyd3Rbzu/1/rbmh6ykhHnOZZUAk+E7htOt
	rhxExornOH2HBRAmiZ3yM/ew0Ctbo0AW6CKIIQwoj4lPJHrl8MqKv0BlXb7xOAkLproBs9uhIcu
	uEsjQtI0Hn4HQ4sQWdHe5j+cnM1xpPqigpSKCcZfRqqQucjziZozVTbXv+BEDX/m2alcieIg0Kp
	fIgLW2bLUu4azoXIydp+dR0VcjNtTlZgd2+XvcDWnj8CMticn70dPd43V2Z3LKoSBXC18c4yKPm
	WpgOm+SzhH2Wjyml9bVXZJbd8b+sAxRkR0TEQf+6sVkZ6EQ/vn9UGyOai3+gSPvTqeMP5xPaQxB
	iYBejB0Qf05gtsRC6evKcfAJid5z2I6zzuZVNFegIBwQtj8qCGupMn3ck7cbvzSdqxUQD1ZbFFJ
	ss=
X-Google-Smtp-Source: AGHT+IEwa4Hae501B8Tm73STwUjOp3n2DrA4tXKCDk5ynJnGFhsb1Hj4dlOuZ6Mi53OF8Q+T2iywhw==
X-Received: by 2002:a05:600c:3104:b0:477:fcb:2256 with SMTP id 5b1f17b1804b1-47a8f906dd3mr141019145e9.17.1765873521739;
        Tue, 16 Dec 2025 00:25:21 -0800 (PST)
Message-ID: <33b7f29a-c699-4b2e-86b5-92c6fbb1caf3@suse.com>
Date: Tue, 16 Dec 2025 09:25:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] misra: add deviation of Rule 5.6 for shadow paging
 code
To: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: sstabellini@kernel.org, consulting@bugseng.com,
 Doug Goldstein <cardoe@cardoe.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 xen-devel@lists.xenproject.org
References: <e408b8bb6e64e7fbe709ae8a26efa7c247a3f999.1765843801.git.nicola.vetrini@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e408b8bb6e64e7fbe709ae8a26efa7c247a3f999.1765843801.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.12.2025 01:11, Nicola Vetrini wrote:
> The rule headline states: "A typedef name shall be a unique identifier".
> 
> in x86/mm/shadow/multi.c the typedef names for `guest_va_t` and `guest_pa_t`
> are deliberately reused multiple times due to the file being included with
> different GUEST_PAGING_LEVELS. As a result, a deviation for the rule is
> introduced.
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

Looks plausible, yet I wonder if we wouldn't better do away with guest_pa_t.
It has one single use (the per-CPU trace_emulate_write_val), and judging
from the involved logic as well as other naming (e.g. the .write_val.l1 field
used in sh_trace_emulate()) it's really guest_l1e_t that's meant there.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 08:38:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 08:38:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187666.1509004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVQZt-0003Nh-8z; Tue, 16 Dec 2025 08:38:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187666.1509004; Tue, 16 Dec 2025 08:38:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVQZt-0003Na-5Z; Tue, 16 Dec 2025 08:38:41 +0000
Received: by outflank-mailman (input) for mailman id 1187666;
 Tue, 16 Dec 2025 08:38:39 +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
 <SRS0=Qh75=6W=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vVQZr-0003NU-DU
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 08:38:39 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9c8750df-da5a-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 09:38:36 +0100 (CET)
Received: from BN9PR03CA0682.namprd03.prod.outlook.com (2603:10b6:408:10e::27)
 by DS0PR12MB7969.namprd12.prod.outlook.com (2603:10b6:8:146::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Tue, 16 Dec
 2025 08:38:32 +0000
Received: from BN1PEPF00006003.namprd05.prod.outlook.com
 (2603:10b6:408:10e:cafe::46) by BN9PR03CA0682.outlook.office365.com
 (2603:10b6:408:10e::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.13 via Frontend Transport; Tue,
 16 Dec 2025 08:38:32 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN1PEPF00006003.mail.protection.outlook.com (10.167.243.235) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9434.6 via Frontend Transport; Tue, 16 Dec 2025 08:38:32 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 16 Dec
 2025 02:38:31 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 16 Dec
 2025 00:38:31 -0800
Received: from [10.252.147.171] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 16 Dec 2025 00:38:30 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9c8750df-da5a-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BoeEgqMTyW4EIgTYRkS9/PX0x7JxXXXinxLj7LQ5gBJjN58K2mzpkMgum3HWOOJBzxCxx57H8ed/XhJHFjmpWZdE9wpDsEBkB5QMNPBII7Sstb+ZBIgfNMdUfe++Jjn3cVr+phuvrGEclBkL76iUVqU0YEDr9d9M0OF3srzlBNU6DnqXRZ5XPS8xyaJgdm44TOzUOOJSkdEpgW+UybWF7KajCl4xb5+zHs57QKernIM6Zn3Qj3FtC+D/9D3el8VO8s/qdsnKuWabQhm1eTWT6VlKqM8EHPuqayZ+3p7WLgmr4N/AbHmoi41bUJhw3+gEKb41/kf3fAnpEEk2nJ6iVg==
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=dDCsW65i7qm+NHFKpRQwMSiyGeC4ZTpkMdoTaSGsOOw=;
 b=UQQ3XPPkQpnl1z95RwZngyPowOniTUbw0Xtomas0bixtYRJG8WLisP4rjm3WP7r6aHmeYkbg8SAsfh+a4vhOcoUPoh3vyFXO1No1EKrDB2jvfGwT+fCX59bRNy4tAuXDJSRGbGWbX71/F/umE9Y7OW4rcXXA54vQQWQ/aetLDCJ9w4yXnRr2k7mF3Ex9mKMkJ22WZlzfx0u28nfMtrGM2zwDNDs3t97U3jIlUKOJ3uKIZgvOrPtrZbSPkBLtazuB+j31aa4QIqf3wONXbOriuHGZhrTLRIWfomPcaAJUHjosMAK0MBuG/jfAPN4Vv25REGaYebWxlTVuCj+7/kTd6A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dDCsW65i7qm+NHFKpRQwMSiyGeC4ZTpkMdoTaSGsOOw=;
 b=PI5BOUvwZLwoiuLoUUYcafafyKhuJ7kg8ksHbjpNycbQPkX9gEAGtNz9CykuijAgi/abjNdks0U4EyMNYe4i3qzgHoTAoByRhNj7FcrrHPeOx/WdkoCqjLgOZELpMX1c9LKlXoNEk8/bLdmTJuuPk8OArrqoDv5v9BmNf/aTJg0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <bfe096e0-c908-468f-a916-b1981a6e159d@amd.com>
Date: Tue, 16 Dec 2025 09:38:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] gic: Replace BUG() with ASSERT_UNREACHABLE() in LPI
 paths
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>
References: <1c846d023255a7a7a9ce533cde0a8db3c26eb855.1765811852.git.dmytro_prokopchuk1@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <1c846d023255a7a7a9ce533cde0a8db3c26eb855.1765811852.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00006003:EE_|DS0PR12MB7969:EE_
X-MS-Office365-Filtering-Correlation-Id: ac8ecc91-1c39-4f20-df6b-08de3c7e7ed5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cHlNVnBhSy9jWHMrZ2t2NEgvS3MvK0ZvaUZ0b2x3bXJaalQ2U3VTQUlzcXRP?=
 =?utf-8?B?N3g4Q2ZDM0o2NTkzYjN5RFlqL0pMb1ZvaTZOc2JrSWlpZ2Z1TEdEbVJNV0Z4?=
 =?utf-8?B?QUVLYzZDUG1MOGtNeTkwM2txeTREK3pMazdSZHFFWUlJdG4zQkFXUG12U3U4?=
 =?utf-8?B?bEhpYnhsK2JSanlIeFp4NmpaRHh3eFVCemtQS3NOVit4a0MwY2hGMGhFeFI5?=
 =?utf-8?B?VjRGS25vMWFjc3ZXMEdEb3Vsd0tOM2NDRjZIQStFeHVoMW5aam5HdG1DT2RH?=
 =?utf-8?B?NnhQVjMzMGVxa21ac3RFdHNONExqVUhXVk5tSis4M1l4cUE0SlRlTzhlVzBn?=
 =?utf-8?B?b1krUHVWbGlVZzBLRGtEMG5FY01lV1pGSnJUVWYzN0tuamhIUWJoRm5LL1lu?=
 =?utf-8?B?ejl1QjFIVlplVTFYMUlSaytRYTM5SkJjLy9nTG9YWXBRa0NPdzFFM3hGQWFm?=
 =?utf-8?B?UGlTd3ljb3crRDAwRXFpelFQWmtKczB0VVhBRHk5RnAxZlNuenVHeFRILytz?=
 =?utf-8?B?MDFPRW9VMUhUUnBCaTRXTExNZUlMOUVoU2EvbFZOSUhKaGsxc2s2VFFvQnJB?=
 =?utf-8?B?YnF4TngwZVhVd3JwR0FPVXFGN0pRT1VOYkdpVmRSYWhIeEpHYmlQLzV0RXVR?=
 =?utf-8?B?emNkK25uTzUxSjdqRVBjRWFQZ2I2Ukd6T3BBR0s1TlBDcVdkaVVYOENpVHBI?=
 =?utf-8?B?cHJrQnVVWUtaNWtRNVpBSGNpY29peG9sRHBTeFhJdEloRkxrUDZkREdMRlFv?=
 =?utf-8?B?dU8yRXo3V0hJSGM4cERMVWJINHY0T1ZkQjFLNkd2OFVBOXNFYTN2Z1c5QmRZ?=
 =?utf-8?B?ZkdmcHFyd05vUlBid0tMdUZOeFJWRTJ1QURqNDAvQytFNUhNMmQ0SHJ1aUJP?=
 =?utf-8?B?eXRkZFRhRk5FSkprS0twdXR3cy9SWDh0SHJ4KzNEVVhHK09qT1dBa0hxYVNO?=
 =?utf-8?B?UkQ1T2pDeWhwRmpmY0pVd0R4Y0VWZUV2S3p4NVJhK0xIZjM5cmZrYjY3T2Nu?=
 =?utf-8?B?dFJPNTdncTJkY3dvelNIYURVQ1dXL3ZqQjMvaEVRQjZzOGZ1MjRWS3NxK0pW?=
 =?utf-8?B?dmtCVkl1eGVudjBlTExob09NMlRRMFppRmlMNGl3emVqSjdIY2ozYlNYQ1hB?=
 =?utf-8?B?K3VSdGxabzJnWllCc2VqRjJvZEVYcE00bHJEbitqYW5ZSXFLZ0NBVU96M0Q0?=
 =?utf-8?B?TG5tenNkYUQ2UmM0NFo0bHZFZmRFQmhtekdoMEhPNGlJZitSWmpEUk5ybVBF?=
 =?utf-8?B?OG80QWwyeTJxd2xPMWs3aklyKzhCMlpQelhIdS85cVFLT3Q4T1JSMkxmNHpa?=
 =?utf-8?B?SWpPWG01aFpoQWluRjM4TlhHRm56NFpRNG0vQS9lOHdNM1NtbE50aWF0NzNs?=
 =?utf-8?B?emVkcDB4NytBL1R6RDBVL2c2OC9ocGxGUzdNd1owVXVnYnR5K1J5UVlNY0Z5?=
 =?utf-8?B?NzlkTjRLam9qZ2RQN2tUM1g2QWhtQUkwRFhnbkxDOFVabmNKT3dWcWFPczh5?=
 =?utf-8?B?YWhyVkEzVWl1ZzdmeHc3OEcvb0R2QmROUk9md0pQZzZZT2FSQld3U1dXdUYy?=
 =?utf-8?B?MDgwSFdaVldEc3c3UTlmUkMrKzJCQWlHUVBobGNMVTg5QjRkYjhSUEQxL3lC?=
 =?utf-8?B?SnZPTzNSUUYxZTRCNkNYSDc3K2UvOWJJMTZUOHlxZjhaNVgrQ3JoU21YOENK?=
 =?utf-8?B?OGtsUEQ5K29sZ3htcUc5dHZUQ0FRZTVYWEU1TTIwWTVYaWJ1RGsvYWY3bE1I?=
 =?utf-8?B?cGJjNURBZTUxeFVJZXEwSnVkVUoxazlBcTVhcHJoc3ZsM2xSQ3M4SHZMVUxo?=
 =?utf-8?B?Z3NxbEFscVJtVEMyYUlMSjNGMi9jc1ZyU0NYRWJDb21LclRVYzZhMmxlTFNU?=
 =?utf-8?B?YVVObkdsckxkT05zUTVDMkNuTlpaU3VZNUtlUlArZ3JMWHRXeTE1YjQycGhv?=
 =?utf-8?B?NmN2UlJsR0w3ZEQxMXhwNGdNb3V6S2UrNzZST0x2T09uL0ZXQUhzNzF3TDB5?=
 =?utf-8?B?WE1QRHhrMWloVURWRWE1ZXJkRXdGMEx1anZBOGhUZXNUTXdKM2FjM2FxdnIx?=
 =?utf-8?B?T0RmSFQrN0w1VlViWmZObkpDTk4xUU5CMHdNQ09rQStsTmo5ZHN4VnE3WDVC?=
 =?utf-8?Q?WRM8=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2025 08:38:32.4265
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ac8ecc91-1c39-4f20-df6b-08de3c7e7ed5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00006003.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7969



On 16/12/2025 09:22, Dmytro Prokopchuk1 wrote:
> MISRA C Rule 2.1 states: "A project shall not contain unreachable code."
> The GIC LPI driver callbacks violate this due to the use of the BUG()
> macro, which causes the function to never return.
> 
> Swap BUG() for ASSERT_UNREACHABLE() to satisfy the rule without needing
> an additional deviation.
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 09:00:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 09:00:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187674.1509015 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVQua-0006nQ-3g; Tue, 16 Dec 2025 09:00:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187674.1509015; Tue, 16 Dec 2025 09:00:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVQuZ-0006n2-T7; Tue, 16 Dec 2025 09:00:03 +0000
Received: by outflank-mailman (input) for mailman id 1187674;
 Tue, 16 Dec 2025 09:00:02 +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 <SRS0=t3Kb=6W=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vVQuX-0006HB-UL
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 09:00:01 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 99ba3239-da5d-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 09:59:59 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-430f57cd471so1240741f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 00:59:59 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fb38a977esm26912733f8f.12.2025.12.16.00.59.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Dec 2025 00:59:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 99ba3239-da5d-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765875599; x=1766480399; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=3M8ozC3JRR+KOHCxSo2Ll0hGU7TXZiWZErP1o5EVc2g=;
        b=gN8ypqsDej16EoWbqq7jfmC7IktuTAkOhVXs+xBHdvpQ6b9KerrnrDJ3CuybhMKcVu
         FkLWR4ct6OYqNywvcJfrFoRHlp6xj7xxG6gDmpDsS64xiQ2+cFpAVerWIVgOuaBsKI46
         KcVlGdGia+5IfxNpOdLEAyD5PHnV0YZ5fW/BUVVWG2I0acjC9rwjKkaWVdBRLeGQVnTf
         Dgc5AcRHs+SvoysN7bcNbxD/rlKyyZ2X5sSiQYBoQ+CZbciySWQhaikkMuGdlNC+pwsJ
         1odJ7DTUta7I3HYPjEVXKj1otkIta+igixpctxpJUyaoNq/Mxno449LS5q01xHYH/kVT
         0I4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765875599; x=1766480399;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=3M8ozC3JRR+KOHCxSo2Ll0hGU7TXZiWZErP1o5EVc2g=;
        b=WM+6UyXuZPmqU6kl1NI/CleW8MeeMPVr+SUuArZ4Vbi7zQCWKod/wlT8qexVrlYVYL
         cMzafE52UV2v8mPl/yFCOMIHAVxqJr5rIoZ5LRzzUJrff6YaI6LtnAf7Wcjdv+a49FFi
         MZjUUIxn2irIxGZ4/s8bcbFQaUQ6Zqt36Km36cglzgJSnvv4vXOR8OCKUJ1u1VHtC96A
         hMyhTFMUBsUMxDiwqzzleKwpB6yRP1+4L5muvjXerlr6S+IWeSd3AfKsqKjz8saa5Q3r
         W/q7sEUbCyF5QrSlnxmrl4gkAQlZZQZF42u7oWV12OsCm5EOCchMJ7IzTGnJbiNcAXjW
         EcfA==
X-Gm-Message-State: AOJu0YwamNd0AbUtFWtQVUnXh9C4v0Sumg6cLIMlm0Xuwi7mExYd9LKM
	ni2XMmaKoeiQIdOxLFc31dLZuzb4uvk6XGawH1aV3zwbHxEM3PRSlVHtvfGeXJrTNJi87KcHB8g
	zE6A=
X-Gm-Gg: AY/fxX5vI7neeD+fU8heS33pu3jo+5Sv3yy4uDVkA7tIISVF1dw1d4HSNtJFGy45jXk
	lmczNX1IY0tvvAHqq/P2uYVLrWNr+ILLfXfHplmA/ksiArRQwVO2/B99sxpIiVS6awY0RdvWz07
	G/9cNyb5En5kVIT086a3E6HjZ2irGoQwmDQxxJlpCQ4nJL9XNDiGaWTTDqJbL60xBhszvAmPeUN
	XPV/dZ4zew3cimk5TOoFEzM29zaC/LBx7ClqdyeLGAUBYcZyDPFyK/iBb9QpuL4jr9WnXrYFYXj
	yhydstmeCzkyN5pbgxKIxb5RLNAYU3tA/dm087d/QQ9GBr+gj91qcxPjv0uxj6icsi/I+mPD8ft
	mMeEjucm4EKe6kTB9VXKhPAq9yS/7sHfHA0TR1bLCj6Xq3iQdONKpu4l0g8DLuHx5NjvHKoEz/h
	12jjILHqhcRNT1lvZdRiG7+ui2z+cFEmWWowXeHfrRm/LRpp6DpEDL4iNNQBaN5pIorgO/6fRAJ
	Z7owaMder9gzg==
X-Google-Smtp-Source: AGHT+IFqTCKNv7wfnLpR5PwMUoEM/cFZNXvABK816Ek/yMTSHE8IGScgH9uPyx9vX7jO0SEzutf2Qw==
X-Received: by 2002:a05:6000:186d:b0:431:5ca:c1b7 with SMTP id ffacd0b85a97d-43105cac2d6mr1531919f8f.23.1765875598973;
        Tue, 16 Dec 2025 00:59:58 -0800 (PST)
Message-ID: <0b15a3fb-6ce4-4bf7-a235-073742fff35d@suse.com>
Date: Tue, 16 Dec 2025 09:59:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v3 0/2] x86/AMD: deal with RDSEED issues
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Both patches also want 'x86/CPU: extend is_forced_cpu_cap()'s "reach"' in
place.

1: disable RDSEED on Fam17 model 47 stepping 0
2: disable RDSEED on problematic Zen5

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 09:00:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 09:00:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187686.1509023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVQvK-0007mL-EY; Tue, 16 Dec 2025 09:00:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187686.1509023; Tue, 16 Dec 2025 09:00:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVQvK-0007mD-Bm; Tue, 16 Dec 2025 09:00:50 +0000
Received: by outflank-mailman (input) for mailman id 1187686;
 Tue, 16 Dec 2025 09:00:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=t3Kb=6W=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vVQvJ-0007Zr-AQ
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 09:00:49 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b61e41ef-da5d-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 10:00:47 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-47796a837c7so31421065e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 01:00:47 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47bd9916e2fsm4597785e9.5.2025.12.16.01.00.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Dec 2025 01:00:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b61e41ef-da5d-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765875646; x=1766480446; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=d4tQcge0hF7MWF0aMXeEVsKhmfL0PvFJFpDgzrjSnCU=;
        b=RLQ2jya3Z97dPpBroM6VAAyyCyJFKzKK8rgpnDLnNIs+fbnh3wAYlraWKjq9lRpkEm
         Hd9KHUtmgZD1TtqWlXX0H2xkwH8d6o6QDOyZ+WUlgEbO0jX1FbWt/AtIqTi6zOizN75B
         W2bjFZnp6gvPqlbg47FFp8YlFKxIgBpvhvn+QE/pYnnqomvlxMu6lgBKriypbsKq9Du6
         Hok4ClTkXT8Qvv2kGmYlsX3WDMKZgH2R0iLjvWAw7YF5KML1V73zj/KN3LYooNFjlVwZ
         r/M7vr3cuHv1fnnXTHOLjYp9vzayjdb9zm0ZCiT/cVp+K3VuruwRLj78GnJr8FlH11k8
         R7Mg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765875647; x=1766480447;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=d4tQcge0hF7MWF0aMXeEVsKhmfL0PvFJFpDgzrjSnCU=;
        b=w1fk8GdKe3jb5awki204KKlxcyY9gYSXCv4Ks2i8JGARjRRT7LrbzupSnxyzFG+CE2
         GHBBYjqcDDHxUigo5wcN3sMVwXgnxC/OlTA86R5u/4biEnHNrJ/1C0jHfF+QmPPAL4KA
         ohZ+OFUv1PIf3BwWNmG0+fD3gmZzV7mqphiECrse52Z5qKaGA/Y1KA9+whPsIN3K+th7
         RWIYvStTvGrLC05G/H8932atW3JiRVjSUQLtOr+n8s/OhMeHoF5TFikfukxqV0JtFhFa
         uwtv3c/Mmu7yzAjwJgAJXjynfr8dM3VFw3JPIVPZwnn+tke0Y1td4r/ZuF9QeavrldZT
         XKWw==
X-Gm-Message-State: AOJu0YzJlF4gLq/+rpEmknN58Z8YibEXwmfqqdiQ+O4j96j7hli3BVgi
	rDvvxVgCzUcLIYEjXv1hAcyhn447lTNmAomoTjnWVDFy3iNnWfA//W+nSvBhBDns/5HBPpc2guv
	jOhQ=
X-Gm-Gg: AY/fxX6RDldowu3qvJO3NROqNezLE+s2SOGtfrAyKjFna0NX7QD8m7NawqOlNW3oRUs
	9KFBA23L2Ma5vGJvWUm29FawEY3twdlWDlk9aKljcykGpyQuSwaa9PcD15dsrGDyCyXJG3Qeeu6
	Wrh8d+YPVeIAlHNuGYajpCJqtmNZxHp6LO6BbXy/u7UoqHacsRWpmo3rgS0Nx1Z7wCUyUocakWL
	H8Rr0xlhIW1gWiy/h2EVuM2/3MB89B547fJmt/7UAY85VdlktruVQ57J0lEo/OYHuvuNbBy575e
	JbaOS3rSJBF2abW7115Zka21RQ1wVgVw/Nzqo85ujUIamnY7IpNdxbzDrgp7It3dQJIm2LP0UaT
	balaI87/9ifSdwa1STy/1ilkw2Mo8Juss8sfRmR8iPwWL7+PoEiDxs0Cfyg3xEU7Or5B5V3IdPu
	4KYJ2LrMVHzs+f9GKarqg/ZpqnfO19zwiVHbQdSjBOaJgNLCPuFlHiJH+yrH+sdZSe0mfFK2Sq/
	eY=
X-Google-Smtp-Source: AGHT+IGJHL5RLd30zf0JSbGYinJ6vL5i0Ozc8VdPFHpxIIiHs/t4bj/S/D6w9NJT4fiiOfTueJnCjw==
X-Received: by 2002:a05:600c:64ce:b0:479:1348:c61e with SMTP id 5b1f17b1804b1-47a8f907f4amr129494445e9.20.1765875646501;
        Tue, 16 Dec 2025 01:00:46 -0800 (PST)
Message-ID: <87fb2107-d1f7-4cca-8efa-0b0c685f3e4c@suse.com>
Date: Tue, 16 Dec 2025 10:00:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v3 1/2] x86/AMD: disable RDSEED on Fam17 model 47 stepping 0
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <0b15a3fb-6ce4-4bf7-a235-073742fff35d@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <0b15a3fb-6ce4-4bf7-a235-073742fff35d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

This particular variant has an error that causes RDSEED to always return
0xffffffff, while RDRAND works correctly.

Inspired by Linux commit 5b937a1ed64ebeba8876e398110a5790ad77407c
("x86/rdrand: Disable RDSEED on AMD Cyan Skillfish").

Like for RDRAND, permit a command line override to be used to keep
RDSEED enabled.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Teddy Astie <teddy.astie@vates.tech>
---
Considering how it is described, I didn't think probing RDSEED (like we
do for RDRAND) would be necessary.

Am I going too far in also updating cpuidmask_defaults here, or is us
not doing so for the RDRAND disabling actually an oversight?

Using warning_add() may not be quite appropriate, as we don't really
mean the admin to possibly override this with "cpuid=rdseed" (that's
only a last resort, in case the issue is yet more limited in scope). But
mere printk() would feel like hiding the information in the middle of
lots of other output.
---
v2: Correctly check model, not (again) family.

--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -1102,6 +1102,24 @@ static void cf_check init_amd(struct cpu
 		}
 		break;
 
+	case 0x17:
+		/*
+		 * Fam17 model 47 stepping 0 has an error that causes RDSEED to
+		 * always return 0xffffffff (while RDRAND works correctly).
+		 */
+		if (c == &boot_cpu_data &&
+		    c->model == 0x47 && c->stepping == 0 &&
+		    cpu_has(c, X86_FEATURE_RDSEED) &&
+		    !is_forced_cpu_cap(X86_FEATURE_RDSEED)) {
+			static const char __initconst text[] =
+				"RDSEED is unreliable on this hardware; disabling its exposure\n";
+
+			setup_clear_cpu_cap(X86_FEATURE_RDSEED);
+			cpuidmask_defaults._7ab0 &= ~cpufeat_mask(X86_FEATURE_RDSEED);
+			warning_add(text);
+		}
+		break;
+
 	case 0x19:
 		/*
 		 * Zen3 (Fam19h model < 0x10) parts are not susceptible to
--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -123,6 +123,10 @@ static void __init cf_check _parse_xen_c
     else if ( feat == X86_FEATURE_RDRAND &&
               (cpuid_ecx(1) & cpufeat_mask(X86_FEATURE_RDRAND)) )
         setup_force_cpu_cap(X86_FEATURE_RDRAND);
+    else if ( feat == X86_FEATURE_RDSEED &&
+              cpuid_eax(0) >= 7 &&
+              (cpuid_count_ebx(7, 0) & cpufeat_mask(X86_FEATURE_RDSEED)) )
+        setup_force_cpu_cap(X86_FEATURE_RDSEED);
 }
 
 static int __init cf_check parse_xen_cpuid(const char *s)



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 09:01:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 09:01:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187694.1509034 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVQvl-0008Cf-NV; Tue, 16 Dec 2025 09:01:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187694.1509034; Tue, 16 Dec 2025 09:01:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVQvl-0008CY-J3; Tue, 16 Dec 2025 09:01:17 +0000
Received: by outflank-mailman (input) for mailman id 1187694;
 Tue, 16 Dec 2025 09:01:15 +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 <SRS0=t3Kb=6W=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vVQvj-0006HB-SB
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 09:01:15 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c2368090-da5d-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 10:01:07 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-42b3d7c1321so2627273f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 01:01:07 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-430f675c2basm17111163f8f.18.2025.12.16.01.01.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Dec 2025 01:01:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c2368090-da5d-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765875667; x=1766480467; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=p5fvghTusZQ3e6eOiSVcHZYMJoDMt1aEyAtEMdEqUNc=;
        b=FExVUzDIeJEO4pm8HqIxmDiiM9ndXBlgNlKYftZR+nHrKplf7Bz9UY20JBjNMHZSf1
         ClcTc3W7bfZ4MQoBq/mw5ijhSQ0oeffavqRTyGlOcA3M+Mbwrzzo2vKIm9hDrGzjTIX/
         FyMp44C0FRzgsBGazlTQZb3oVDyBrlKhR93INUvsAt5GyEyS8bjbyKoCaWTGV6UbYZ3s
         O68kopLYtDxrV2g3jb1OQALDbu+eR3nzHpnQvrF5XeVn+yTecbgYKeRZb7smXunZbaxJ
         aeF/tUMOG1xFM7+y+e8b4mcgyseYKzq2jotNr5ZOfuhlrW17SjIVcodJGT6AhHuNy4bR
         sAlw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765875667; x=1766480467;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=p5fvghTusZQ3e6eOiSVcHZYMJoDMt1aEyAtEMdEqUNc=;
        b=kO3+luvWggrQ+B1wqjpMwfZAHPCtTe1I7EJ8fSoFFDq5C4cm67byTySXybToijVWvt
         4pfa9K0zd75f0sR1ypFThDvP2rPG1/bvWEAJ2XMEUDpwEM0YMUOT/T3cWUoFpXdnPl6d
         0k6fM++dLzLRKYEgRjiNyXNOD3VX3PDSxYElcJI1f61bvyi32a1C+TVwq1pxB/zDZArs
         lpThMdDSVb1Q+GQO9Fi6DoTWLSgYLQZ2AuMI0/u76CgFjAC3u4nq71SwN7vj/b7f0eys
         E51XgBXR6r4HyWZKLmObFaCyFChWfk4f8/KSWQ5CfGdTEKMf74crVyk7g/Ol6sFxvrvr
         ne9g==
X-Gm-Message-State: AOJu0Yy5adrGpwDP2b27LN8ap93KwmSAbvIOVLaf7f5TAWOTsZEwia+8
	O5TSy+pv6AhQ/1sYY67E7DD/tuse0fO6MpQ5MudU/8uX6I8dhbvn/z8TMprC0IprG969zfMQKrb
	A7UU=
X-Gm-Gg: AY/fxX7P+/5eNMJXo8/auBi37SwAz3yb6GVqJTuxCBBdk5YwxrZFoKpMOIjvDLF9qgY
	5kKcf3JHXlmNw5Aol3pNQ2l+7GkvWs04Hdubv4k6+dh6za+Z6FW50bcaa1VZ2ams/KJsPL5gJph
	iqaIwQS2fK9TFbzYIPbGKBftusbPtWc6UGT2XZnODJ9WNZtPtBs8ezWllLrtxm/tD9inbDJAsfI
	htTRw720OhgfT5497pNbJLlEXkKbjIF3wTxTg7mvOY8ooONeH/XZhhGy2uFlJ4vRhZjAQHYd8M2
	zQo9OoARJ/fKf2JsYuOX9PIFvUChFrZlEU+OYm8TnF+FzBr8w9CSGZkrAdEmnZs0r5iDyGx6PLE
	hz14t5sunvIyl0I13i1QG9DjQkPdeP4dIgTvTxWJ5vyp3AJ3d4dTclFfqRSQOxFdzI0VHwqXW61
	Orp0y4NS9Fo473MFyEmHeX4PPC0JvACylb8XPiZByXlqGA4rzMgvmBr8guy3NQXYUzdQVSCrs09
	PY=
X-Google-Smtp-Source: AGHT+IGOWytMuuVl22+958E0JD29pFC8dqjbSrmT0TG1eNwORc1Xjn9lKqBEYJwIrl+ZQs7jm2XVIA==
X-Received: by 2002:a05:6000:2909:b0:42f:9f4d:a4b2 with SMTP id ffacd0b85a97d-42fb44ba720mr14081823f8f.19.1765875666553;
        Tue, 16 Dec 2025 01:01:06 -0800 (PST)
Message-ID: <05012660-b93f-4439-a383-ff6e8e8d9566@suse.com>
Date: Tue, 16 Dec 2025 10:01:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v3 2/2] x86/AMD: disable RDSEED on problematic Zen5
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <0b15a3fb-6ce4-4bf7-a235-073742fff35d@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <0b15a3fb-6ce4-4bf7-a235-073742fff35d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

This particular variant has an error that causes 16- and 32-bit forms of
RDSEED to frequently return 0 while still signaling success (CF=1). Refer
to AMD-SB-7055 / CVE-2025-62626.

Relevant data taken from Linux commits 607b9fb2ce24 ("x86/CPU/AMD: Add
RDSEED fix for Zen5") and e1a97a627cd0 ("x86/CPU/AMD: Add additional fixed
RDSEED microcode revisions").

Like for the other RDSEED issue, the same command line override can be
used to keep RDSEED enabled.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
See "x86/AMD: disable RDSEED on Fam17 model 47 stepping 0" for pending
opens.

The choice of using AVX-IFMA to tell Zen6 from Zen5 is somewhat arbitrary;
a few other features could equally(?) well be used.

I will admit that I was on the edge of switching to a table-based
approach. (I'm also not happy with the case 0x44 layout, but keeping the
"break" on the earlier line triggers [imo bogusly] gcc's "misleading
indentation" warning. We could of course move yet farther away from the
Linux originals and use switch(curr_rev >> 8), like we do in
zenbleed_use_chickenbit() and amd_check_entrysign().)
---
v3: Incorporate another Linux commit. Cover Zen6, assuming it is
    universally unaffected.
v2: New.

--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -863,6 +863,28 @@ static void cf_check fam17_disable_c6(vo
 	wrmsrl(MSR_AMD_CSTATE_CFG, val & mask);
 }
 
+static noinline bool __init zen5_rdseed_good(const struct cpuinfo_x86 *c)
+{
+    unsigned int curr_rev = this_cpu(cpu_sig).rev, fixed_rev = ~0;
+
+    switch ( c->model )
+    {
+    case 0x02: if ( c->stepping == 1 ) fixed_rev = 0x0b00215a; break;
+    case 0x08: if ( c->stepping == 1 ) fixed_rev = 0x0b008121; break;
+    case 0x11: if ( c->stepping == 0 ) fixed_rev = 0x0b101054; break;
+    case 0x24: if ( c->stepping == 0 ) fixed_rev = 0x0b204037; break;
+    case 0x44: if ( c->stepping == 0 ) fixed_rev = 0x0b404035;
+               if ( c->stepping == 1 ) fixed_rev = 0x0b404108;
+               break;
+    case 0x60: if ( c->stepping == 0 ) fixed_rev = 0x0b600037; break;
+    case 0x68: if ( c->stepping == 0 ) fixed_rev = 0x0b608038; break;
+    case 0x70: if ( c->stepping == 0 ) fixed_rev = 0x0b700037; break;
+    default:   if ( cpu_has_avx_ifma ) fixed_rev = 0 /* Zen6 */; break;
+    }
+
+    return curr_rev >= fixed_rev;
+}
+
 static bool zenbleed_use_chickenbit(void)
 {
     unsigned int curr_rev;
@@ -1130,6 +1152,28 @@ static void cf_check init_amd(struct cpu
 		    !cpu_has(c, X86_FEATURE_BTC_NO))
 			setup_force_cpu_cap(X86_FEATURE_BTC_NO);
 		break;
+
+	case 0x1a:
+		/*
+		 * Zen5 have an error that causes the 16- and 32-bit forms of
+		 * RDSEED to frequently return 0 while signaling success (CF=1).
+		 * Sadly at the time of writing the fixed microcode revision is
+		 * known for only two of the models.
+		 */
+		if (c == &boot_cpu_data &&
+		    cpu_has(c, X86_FEATURE_RDSEED) &&
+		    !is_forced_cpu_cap(X86_FEATURE_RDSEED)) {
+			static const char __initconst text[] =
+				"RDSEED32 is unreliable on this hardware; disabling its exposure\n";
+
+			if (zen5_rdseed_good(c))
+				break;
+
+			setup_clear_cpu_cap(X86_FEATURE_RDSEED);
+			cpuidmask_defaults._7ab0 &= ~cpufeat_mask(X86_FEATURE_RDSEED);
+			warning_add(text);
+		}
+		break;
 	}
 
 	display_cacheinfo(c);



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 09:15:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 09:15:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187710.1509043 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVR9V-0001hz-SA; Tue, 16 Dec 2025 09:15:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187710.1509043; Tue, 16 Dec 2025 09:15:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVR9V-0001hs-P7; Tue, 16 Dec 2025 09:15:29 +0000
Received: by outflank-mailman (input) for mailman id 1187710;
 Tue, 16 Dec 2025 09:15:28 +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
 <SRS0=Qh75=6W=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vVR9T-0001hm-Vz
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 09:15:28 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bfb24594-da5f-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 10:15:23 +0100 (CET)
Received: from SN6PR08CA0027.namprd08.prod.outlook.com (2603:10b6:805:66::40)
 by IA4PR12MB9761.namprd12.prod.outlook.com (2603:10b6:208:550::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Tue, 16 Dec
 2025 09:15:18 +0000
Received: from SA2PEPF00003AE9.namprd02.prod.outlook.com
 (2603:10b6:805:66:cafe::fa) by SN6PR08CA0027.outlook.office365.com
 (2603:10b6:805:66::40) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.13 via Frontend Transport; Tue,
 16 Dec 2025 09:15:17 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF00003AE9.mail.protection.outlook.com (10.167.248.9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9434.6 via Frontend Transport; Tue, 16 Dec 2025 09:15:17 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 16 Dec
 2025 03:15:17 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 16 Dec
 2025 03:15:17 -0600
Received: from [10.252.147.171] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 16 Dec 2025 03:15:15 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bfb24594-da5f-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cA+FifzoZdwOprvsodYyQre5YZznY8uqrrIlMWDR66kuoVWJ89gzpr5g07zSsb1G7juwsJs7mqe7vVJWbCzO9MmEDGv7zhSdrkbc99dTQNl46LlipaH6wGfQs6fEQannFKzGSSGSJMvXbqOVTyihtflKJsi3GLWxdbZYfjyjNBNq0Wt9ll55z5usdY5z+eUzsilRnGIPoCnVYrOOUiGWMXViUElvSqFd3zG/JG0ASh2geka6KbgQu49H4d/MZi5rPgzjRXAiil+dnSf4eQER7Dp4BLoswUqa+58tQ8hG21pdjuT2tJkWPfAOX0h6l97Z7N12iZlz+Ptvpfr5gPUODg==
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=28XlIN6rS34M0VPAhyL4saGIQkng15I5dxuQ2Uigr+k=;
 b=R6euw/8pQvbGlAmybZ1vBbgc9bz2it9Tp/V2URbXJc08kUHg2UsHxxbmfAISa/CPIcie9qkGAYnGionPNkU/jFqHaOuFiBtf4K36pOCj4L/HtpWq8/ZqIRVAU9dBj6I+ArSVxXOIy6x+U8tsDAvDPgr2B5WB32lo1zS4I61Du2u2RgzzZy+gJhxGVF0s2eQlZuCQnL/vJfruSqvxbaA2DzMUTjZzQJS8PI/dM1j7uuYgquDq9PfRIhwm8QSjewOn84wW7bAZX2cJVepybwm8GP+01JZeCCO91L0HGLpVLmq853lEhIBV7XEfoeDtsksUqULs5QKLNSt8tx6zNeE4sw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=28XlIN6rS34M0VPAhyL4saGIQkng15I5dxuQ2Uigr+k=;
 b=EtqeE0O5IT9oS6lS6vt+VMrIOUXhmbyczQ3GrxSYuKHOI1vr8hkf8dx8t+bFywP2inBRieJk56b5FxhDHSOfIlVin6Z2Om5xqb/gfiOfQzGBKC/NOsxhsWzTMHNnPuAYbND/Bh5aFVJaMg31cIY3Pu2bpIKUAbV1eeZfG8OTTHI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <6acc279f-15d8-43c5-b676-7312de3dde5e@amd.com>
Date: Tue, 16 Dec 2025 10:15:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/6] arm/mpu: Introduce modify_after_init_mappings
To: Harry Ramsey <harry.ramsey@arm.com>, <xen-devel@lists.xenproject.org>
CC: <Luca.Fancellu@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Hari Limaye
	<hari.limaye@arm.com>
References: <20251128095859.11264-1-harry.ramsey@arm.com>
 <20251128095859.11264-5-harry.ramsey@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20251128095859.11264-5-harry.ramsey@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003AE9:EE_|IA4PR12MB9761:EE_
X-MS-Office365-Filtering-Correlation-Id: 008a8b85-e4af-4ff2-4825-08de3c83a147
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?T25WRG1WM0V5MTFrcHdRY0s0VnRJOU9ndisxcGExSFc1WUh5b0hnaHdFcncw?=
 =?utf-8?B?TUUyVlE5T2ZLSjlVSzF5ZFNGRGt2N3Y4dnJHR2Npci8yMDNrTGxET2pRUW9q?=
 =?utf-8?B?M0dLY21rbWhVS1padFRUbXZEUCsxcmtrdVFKdjQ3RVNUYjFjU0pzMittR3Ew?=
 =?utf-8?B?MmtFQk9QcnpCS3V1cS9hRDJMbTJGQlp4eDR6NVhHL0dNL0FjbEo3VHl4Q3Jm?=
 =?utf-8?B?K2dvclVZY0w2VzgrWjNXK2haWFpGUGxWVDliOUo0Y0RveUUzOWNweTU5NzB0?=
 =?utf-8?B?NEpIbUNRek1IWWE1SFNrMi92Qzc3WVpuOHhOZHNxQWdsajJCbUhDVVl2ZldQ?=
 =?utf-8?B?bGZFMmNxbEUwRkJzSHVNUmJiWFdURDhKWWRMTjVNMVkwZ3VlN3NjRFhpMmJx?=
 =?utf-8?B?UnA5K01KUnM1QXhVWUpsUWtsL1lYVlRJRFJsbXhKbFVHVjZDK0twSzRxcnUv?=
 =?utf-8?B?YVdXVWExUDBjM2V4OUErbEJLTWlTU3I4eEdaZzY3dWxDL1pzTk5VOFBGR1dN?=
 =?utf-8?B?TDZNTkZvRi9HbnBMaFNianRUQUZ4Ykx5T0ZBc3kvRUl4TWt1aWt2N092Qnpt?=
 =?utf-8?B?YXdFcWJWOUdJeFBBUWxmZFRSUlFwMEQrckxyQ3VqNHN6ejJVeVZ5cDdMNEYw?=
 =?utf-8?B?TUlnQ1Vjc0J2Q044Z2FFbTZkVXhwOGdIbktzb09WYmJweEJscjJzam93ZzRh?=
 =?utf-8?B?OVY5ODhHVXlqMlM3d0d3WFpFUFQ3N0JFeDhNNUloUW5OT0VFWnd1dGVLeVcr?=
 =?utf-8?B?TWs3allZRmdSRkVIYmRoZkU3a2pyK2ZsZ1Bic3czV085N3BkRC9HWGo1U0Nw?=
 =?utf-8?B?eHhtTEhyaUNVZ0VYK25DaXZVK0FSZldybDBIV3VDaHVZamdMMzlWWmZpSG9s?=
 =?utf-8?B?emZGdHV5MEc4MXBCVjd5dDZKTDR0UHpsZktBNUNZdzhJaGtoTnZ5WlpGb3o4?=
 =?utf-8?B?cmF6dS9vOXNEYjZyWVQwZk5PaHE4UmFOcmVKa3I4eExwbXpBbGN1cXFrV09H?=
 =?utf-8?B?c2VSTWhHY2xCRm1VK25xYmRYVDArVW9KSVNnT1cvTndKWTRLSTRyNS9NUzZy?=
 =?utf-8?B?ajdCTWVRV3hselN3SXNVVDBZTnlwUU5DR1hPWGxxUC9nK3oyRFY5Rk5QcExv?=
 =?utf-8?B?RmE3WnZ6UjkwQk1oODk5TW5NeFN4WFNQTy9JaFlEOVpHb2YvdXE2Z3d2Ui9J?=
 =?utf-8?B?TVd1aEhlT09qZS9jWmFJY0o0M2dPSDBRSFhmbTBIdStsVlU3M2JZYVJxVnhJ?=
 =?utf-8?B?S2JjZ3dtbm9rdDVLbllncExlaEhpdENDeXpPSVNTL0RGRE4wZWlhU20wUElQ?=
 =?utf-8?B?a0k1NXJ0Y3ZVOEQ2UjU3RytCTXdyL1YrcHNMVlVoakFQeWM4VURuenAwQVVB?=
 =?utf-8?B?T0VTVGc4bjVIMG1lZnp6Y0pFNGNGQVloZElZWHZtOGoyc2Y5eW5ycUNBdWNR?=
 =?utf-8?B?elViNk9aeG0yUnJQdnIrT21WVDRPRlgwcVJsS2pTaEY0VUlNTzJBVWVUaWdI?=
 =?utf-8?B?eC9COHZnRHN6Z2NPSVpodXRBWEhDRUJEdzNqNGpvWmpOeUZHVloyRUZSekVm?=
 =?utf-8?B?aEE3RWRLVzl4RDdZMjZHWjYrcDdEc2NYUDN2K2RtZFNXWjZ2Z1E0WjM2NmxR?=
 =?utf-8?B?MXNoS2R0MDdheUlzQkNobytpVmM5WHRWMnlrRnAzUDJSQ0p5aUJZMS9NVGcw?=
 =?utf-8?B?MUVWR1pMcU91cjhuQzhVQ1VXWjhOcWNwME9VZDVPRVV2VkJCdWZxRU9SVExL?=
 =?utf-8?B?cFkrTGlYVGRlRzJBcmJuSENGZC9DNDJWUjRmOVhyWVFldCsxSXdTU09JeXo3?=
 =?utf-8?B?MlAwZEROaDR0QUE5Q2NualR6QkRQR3NicEIxdnJJcXJiY1Jla0o5cDdjb3hY?=
 =?utf-8?B?WUNSQy9oQitCd1RDNkFkdklrbkZ4QnJGT05QMHdneGpkK2xOV2lNNXdobEEr?=
 =?utf-8?B?ODJ2SEM2ektiaXhrMUVrYVJ5MGRlOWViNnBGMCt5NlU1VE52dWw0UXVneXhU?=
 =?utf-8?B?RDNVbzFHNFMyaHI4OGpwdjhmZGNNRTRpZWVyYVoyNjFaV1IvWDAxZ1ZYVERw?=
 =?utf-8?B?Uk5RWWZnNFY3ekgveVBIR29TTVRhYnNNWnFJK3ZRZ2tqb1VJOEZNeXhIWG84?=
 =?utf-8?Q?6voc=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2025 09:15:17.6746
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 008a8b85-e4af-4ff2-4825-08de3c83a147
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003AE9.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA4PR12MB9761



On 28/11/2025 10:58, Harry Ramsey wrote:
> From: Luca Fancellu <luca.fancellu@arm.com>
> 
> During `init_done`, Xen sets the permissions of all symbols marked with
> __ro_after_init to be read-only. Currently this is achieved by calling
> `modify_xen_mappings` and will shrink the RW mapping on one side and
> extend the RO mapping on the other.
Can you be more specific about the sides you mention? How did you deduce it?
I assume you are talking about MMU part.

> 
> This does not work on MPU systems at present because part-region
> modification is not supported. Therefore introduce the function
What else is in that region?
Wouldn't it be better to have one region for this __ro_after_init so that we
don't need to shrink/extend the mappings? Is it done because of number of
regions limitation?

~Michal

> `modify_after_init_mappings` for MMU and MPU, to handle the divergent
> approaches to setting permissions of __ro_after_init symbols.
> 
> As the new function is marked with __init, it needs to be called before
> `free_init_memory`.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Hari Limaye <hari.limaye@arm.com>
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
> ---
>  xen/arch/arm/include/asm/setup.h |  3 +++
>  xen/arch/arm/mmu/setup.c         | 15 ++++++++++++
>  xen/arch/arm/mpu/mm.c            |  2 +-
>  xen/arch/arm/mpu/setup.c         | 40 ++++++++++++++++++++++++++++++++
>  xen/arch/arm/setup.c             | 15 ++----------
>  5 files changed, 61 insertions(+), 14 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
> index 005cf7be59..899e33925c 100644
> --- a/xen/arch/arm/include/asm/setup.h
> +++ b/xen/arch/arm/include/asm/setup.h
> @@ -78,6 +78,9 @@ struct init_info
>  paddr_t consider_modules(paddr_t s, paddr_t e, uint32_t size, paddr_t align,
>                           int first_mod);
>  
> +/* Modify some mappings after the init is done */
> +void modify_after_init_mappings(void);
> +
>  #endif
>  /*
>   * Local variables:
> diff --git a/xen/arch/arm/mmu/setup.c b/xen/arch/arm/mmu/setup.c
> index 9b874f8ab2..d042f73597 100644
> --- a/xen/arch/arm/mmu/setup.c
> +++ b/xen/arch/arm/mmu/setup.c
> @@ -213,6 +213,21 @@ void __init remove_early_mappings(void)
>      BUG_ON(rc);
>  }
>  
> +void __init modify_after_init_mappings(void)
> +{
> +    /*
> +     * We have finished booting. Mark the section .data.ro_after_init
> +     * read-only.
> +     */
> +    int rc = modify_xen_mappings((unsigned long)&__ro_after_init_start,
> +                                 (unsigned long)&__ro_after_init_end,
> +                                 PAGE_HYPERVISOR_RO);
> +
> +    if ( rc )
> +        panic("Unable to mark the .data.ro_after_init section read-only (rc = %d)\n",
> +              rc);
> +}
> +
>  /*
>   * After boot, Xen page-tables should not contain mapping that are both
>   * Writable and eXecutables.
> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
> index 8446dddde8..f95ba7c749 100644
> --- a/xen/arch/arm/mpu/mm.c
> +++ b/xen/arch/arm/mpu/mm.c
> @@ -32,7 +32,7 @@ DECLARE_BITMAP(xen_mpumap_mask, MAX_MPU_REGION_NR) \
>  /* EL2 Xen MPU memory region mapping table. */
>  pr_t __cacheline_aligned __section(".data") xen_mpumap[MAX_MPU_REGION_NR];
>  
> -static DEFINE_SPINLOCK(xen_mpumap_lock);
> +DEFINE_SPINLOCK(xen_mpumap_lock);
>  
>  static void __init __maybe_unused build_assertions(void)
>  {
> diff --git a/xen/arch/arm/mpu/setup.c b/xen/arch/arm/mpu/setup.c
> index ec264f54f2..55317ee318 100644
> --- a/xen/arch/arm/mpu/setup.c
> +++ b/xen/arch/arm/mpu/setup.c
> @@ -8,11 +8,14 @@
>  #include <xen/pfn.h>
>  #include <xen/types.h>
>  #include <xen/sizes.h>
> +#include <xen/spinlock.h>
>  #include <asm/setup.h>
>  
>  static paddr_t __initdata mapped_fdt_base = INVALID_PADDR;
>  static paddr_t __initdata mapped_fdt_limit = INVALID_PADDR;
>  
> +extern spinlock_t xen_mpumap_lock;
> +
>  void __init setup_pagetables(void) {}
>  
>  void * __init early_fdt_map(paddr_t fdt_paddr)
> @@ -106,6 +109,43 @@ void __init copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
>          panic("Unable to unmap range for copy_from_paddr\n");
>  }
>  
> +void __init modify_after_init_mappings(void)
> +{
> +    int rc;
> +    uint8_t idx_rodata;
> +    uint8_t idx_rwdata;
> +
> +    spin_lock(&xen_mpumap_lock);
> +
> +    rc = mpumap_contains_region(xen_mpumap, max_mpu_regions,
> +                                (unsigned long)_srodata,
> +                                (unsigned long)_erodata,
> +                                &idx_rodata);
> +
> +    if ( rc < MPUMAP_REGION_FOUND )
> +        panic("Unable to find rodata section (rc = %d)\n", rc);
> +
> +    rc = mpumap_contains_region(xen_mpumap, max_mpu_regions,
> +                                (unsigned long)__ro_after_init_start,
> +                                (unsigned long)__init_begin,
> +                                &idx_rwdata);
> +
> +    if ( rc < MPUMAP_REGION_FOUND )
> +        panic("Unable to find rwdata section (rc = %d)\n", rc);
> +
> +    /* Shrink rwdata section to begin at __ro_after_init_end */
> +    pr_set_base(&xen_mpumap[idx_rwdata], (unsigned long)__ro_after_init_end);
> +
> +    /* Extend rodata section to end at __ro_after_init_end */
> +    pr_set_limit(&xen_mpumap[idx_rodata], (unsigned long)__ro_after_init_end);
> +
> +    write_protection_region(&xen_mpumap[idx_rwdata], idx_rwdata);
> +    write_protection_region(&xen_mpumap[idx_rodata], idx_rodata);
> +    context_sync_mpu();
> +
> +    spin_unlock(&xen_mpumap_lock);
> +}
> +
>  void __init remove_early_mappings(void)
>  {
>      int rc = destroy_xen_mappings(round_pgdown(mapped_fdt_base),
> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> index 7ad870e382..6310a47d68 100644
> --- a/xen/arch/arm/setup.c
> +++ b/xen/arch/arm/setup.c
> @@ -66,23 +66,12 @@ domid_t __read_mostly max_init_domid;
>  
>  static __used void noreturn init_done(void)
>  {
> -    int rc;
> -
>      /* Must be done past setting system_state. */
>      unregister_init_virtual_region();
>  
> -    free_init_memory();
> +    modify_after_init_mappings();
>  
> -    /*
> -     * We have finished booting. Mark the section .data.ro_after_init
> -     * read-only.
> -     */
> -    rc = modify_xen_mappings((unsigned long)&__ro_after_init_start,
> -                             (unsigned long)&__ro_after_init_end,
> -                             PAGE_HYPERVISOR_RO);
> -    if ( rc )
> -        panic("Unable to mark the .data.ro_after_init section read-only (rc = %d)\n",
> -              rc);
> +    free_init_memory();
>  
>      startup_cpu_idle_loop();
>  }



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 09:16:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 09:16:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187721.1509054 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVRAI-0002D6-9K; Tue, 16 Dec 2025 09:16:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187721.1509054; Tue, 16 Dec 2025 09:16:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVRAI-0002Cx-5x; Tue, 16 Dec 2025 09:16:18 +0000
Received: by outflank-mailman (input) for mailman id 1187721;
 Tue, 16 Dec 2025 09:16:17 +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 <SRS0=t3Kb=6W=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vVRAH-0001hm-3B
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 09:16:17 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dfb899af-da5f-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 10:16:16 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-47789cd2083so22689415e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 01:16:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f38a4b7sm234170925e9.3.2025.12.16.01.16.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Dec 2025 01:16:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dfb899af-da5f-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765876575; x=1766481375; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=s5hCMzenBF5ebVm3dyMjQFGef3YOiYb+traO6lD0OEQ=;
        b=V4dCM5X+ch6VhW742ItBKEyIvaXrt0BOLfxiLXUTOEt5EeWshYeND+F+BbQ6K6HOHu
         SkZH/oKiEIa34fBWE+Pp7dLwh6daHCB6QRRaxlzYlYqM//lJ4JquWaRilCDNFFA/TnzK
         VEmCzCGLcH1KbZEIBCsDDnDTnFtWNMUUxgVd2zZOfXQYBULjZi++Z55+fGpPBQperkyn
         R0O6F5hZoxu4AbIUOR9WrbF1LvHta6ji/6wV/jQ5zdIHbapbCtPjME2fm8xA4CD8jyhE
         tedT1L4XShdZdfwoe9xhw+XzPWzs0OOD1l636cYnTIvGfUPc1D2PpDMeQGdeMDGp+a42
         zJGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765876575; x=1766481375;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=s5hCMzenBF5ebVm3dyMjQFGef3YOiYb+traO6lD0OEQ=;
        b=myI9rPZtuV6pgL4ibMtAUSqCEkGqfWq4/56W3+vpqGisyV6ZWwyizOY7PJIKPy6GbD
         PvWKn6atM+zQ05zmmqOIf1Bv0a94pyZcZtVyMgJdFkthqmkrg5S0XfplpFnOj8SqEDEn
         7kivqrTx+x7Kzj4m9OEKuH0dlUTP/fTEfZSYpci3VMYyVZR4lNqDpC46gRIGskQJoAQs
         i7ikCrWpg1dZvbQqbRsfrAq5x4AemwtDivzN+5KPoSAlvU574OJ9zVYoH713e1I/lHij
         dS6lk7BJiQvrsONKkftKobdkSyKqUWXqDQMnX5F6OCUtU3EXXZ7FjcLhRdlYTETYWYD7
         3vPg==
X-Gm-Message-State: AOJu0YwGTwh5nGM6NpD6Y8y8irhoYW/jWxSqnaPakosoUoEi0Vgew4tf
	g7Q3mBcgEXOaz5+O+4LbDzmPEQX9tL5eyDZrn+q0r9zvlKlTgdhs8tWAHFxzd/f9iUlm2n+NB04
	J/UQ=
X-Gm-Gg: AY/fxX7qT7C/3yi1fDy9H3SRmjupiZPLJ3H/E7KzzlZqhzb9WTq0CImp48DGu0961by
	X3h4DrYmCPEqYw/mp2MbPyUOnxHoa7JOfpo/GAr2KNr1m97zzZGdg+z2cmpqywS2WA4zWdqoW4X
	YhsO+ISmcpTK2cvP3JpDk6xiJx6iJtKeCiF2otiR7bgfk1ZKJGYW1Hhp1eLt03vmdCqkmPo1Y7I
	0/G5iFMZZ51hLmNeg+xvBkHNn+5OdFL72MkQNC3r2nESkaVZYWP8hYviBmJGetWldkFL0JxbGaM
	JA/oq02zSVf+tGNbjno/4RRHImYSbzQeYhBLGoTCxYOb8QAwVQj8MaP2aQk2F9Y+TSX/RDkiVja
	fV94VF5mIAvLduKzPGpngpWuWlhQ6nmlt1t8DLElDeLCLTemwXghe1nfZzOLJrCUN13hakZQpyK
	COJCSMKUwBoYBvEdyVU5mHv99nG7MAootFLJCUd9ViWyFfg2fRGx1yvR0HrFGXOzmiy86RO+jfq
	xw=
X-Google-Smtp-Source: AGHT+IGrUMqyj65tthSJPw0901Leq0emVkxJFLRqu3t8KkTflM+tulub1xHC6t3ai/XTATMW5K+Mnw==
X-Received: by 2002:a05:600c:46cf:b0:475:dd8d:2f52 with SMTP id 5b1f17b1804b1-47a8f9155bamr133211325e9.32.1765876575430;
        Tue, 16 Dec 2025 01:16:15 -0800 (PST)
Message-ID: <f73aa7e9-c176-40c3-b5f5-81c69cb219ac@suse.com>
Date: Tue, 16 Dec 2025 10:16:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v3 0/3] x86: move more stuff to lib/
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

1: move / split usercopy.c to / into arch-specific library
2: move mem{cpy,set}.S to arch-specific library
3: move {clear_,copy_,scrub-}page.S to arch-specific library

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 09:17:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 09:17:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187735.1509063 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVRBi-0002xN-IV; Tue, 16 Dec 2025 09:17:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187735.1509063; Tue, 16 Dec 2025 09:17:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVRBi-0002xG-Fv; Tue, 16 Dec 2025 09:17:46 +0000
Received: by outflank-mailman (input) for mailman id 1187735;
 Tue, 16 Dec 2025 09:17:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=t3Kb=6W=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vVRBh-0002x8-Fo
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 09:17:45 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 13bb2a9d-da60-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 10:17:43 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-47775fb6c56so34496735e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 01:17:43 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47bd994a221sm5168825e9.7.2025.12.16.01.17.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Dec 2025 01:17:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 13bb2a9d-da60-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765876663; x=1766481463; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mT5y1doBjol1xTeNjUjhfdne9i1b4Rk9NW6N2DKeGyU=;
        b=X26opvL3kwXVy/rjEeV0cxxEP4a1p45wAZfizDK4XtgPlOVa4MCFGqayLmgytUBCzx
         zyKKvt+TZwONTdkE7Xz/o3sEVzbSAmrdi/7nIL01kSeeCb5PHvOdYgBAODeQVaxlDbJo
         7rgGYQ0AVhqsMLf3ZMBjJsvy5SF3i3z3bAn1HVOzJwfTZtNpH2QTOamQ1pF3GS8/+E76
         e2m7Ydo9C3M5VwzaLGOHKJEH1d3BsndNMmhnMoyIZYgn6wsKOhMGcfHWIK89vjOHG4WQ
         HKDy6b2ODZ9McAH3hIy5tSRWpV1KC+KE0i9XAhAnqGYT6LAXrcE+l5CPEtVmV7+CMsAL
         5v1g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765876663; x=1766481463;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mT5y1doBjol1xTeNjUjhfdne9i1b4Rk9NW6N2DKeGyU=;
        b=kxKot6muW219uo3IGTaP34O+mla8Nd41mlCvXXkmWcHQqyR8hILHE77t546LHlshJn
         KKdxpS64k1iaf86LKneWsLQGdh0O0qEcXKIffiSNIRRlKkiOkj5D4YWdsiy2Aoyp42y4
         eft7nOEJuUmNUQrb51rFdoywcYK1V0BH6IjoA5VQWrbp+UYqiy3b4bjy0UoU8xSw4yJY
         cdPBHH0cZXTkdQTjCFqWbw4IADY3yJdC/YdjLbGD/Md5/R46DVL+zAPlbYjoMr8nC2JI
         MXlPo8IE/YtEbsiZ1dk0aSyKYKZmJG+0C44UrQGCftngjsgtOhXSsdz0teLsqR+7C2S3
         5gdw==
X-Gm-Message-State: AOJu0YwCKjekaJfOPCMtlvItClNhIsiBsEDMA8U+dw7iYb+5M26Q+oC8
	I6pCWabqf6yJKjHG9nwIbvKfqNSVqd6cxMigc0dVGVyJnqzP0wGBHpRYz6SLyqFqhg19XyzVvpD
	8gKI=
X-Gm-Gg: AY/fxX4O8SrJE6zyA6k6QOwxxsS6X21GcjYOIeNxHGeVpCd4zVrytnkzWgogHXmfjhk
	+n3c69yiuGlccjsvCAaVmxfMfwU2KmEU3HCWna/QyGRAElWbEK/nFgEDCtpZ9/I+r/pNod9xS1m
	tb/NiDt94ZfE5x1UhOpz0We8YpF2+6qB0P7bd2oRxHn6cZttOC+zD2oOUC7NOZN+5N8DeVs09e8
	LyR4bK5Uk17R4gLXxjzw+IAoK0TjmSyOOKUl/K6E7A+QJe8fRy7jpS9N93bUEkFVgnJDF+OIqEU
	Jr7+Q3JSd39DoaN7D0GjEYoyOPJUY/6W3rPGhdJrcPvB/yQZK/5TIyBkdhmmQbVhCZGBmloVj7X
	Ym2taCvvb6jXaO0SldDTMlf1XCvdZRmRhTI4RXAptvMlWUR57lauU0GRQuJCRiEZ1Rk4XWo9eph
	pCEjndMA3fMe02CgjBo0YlLwgH5oXyexbdRIa9y8VEHcAEwUeW2X8pW+abEZ4Y7fiiMiX4V2WLE
	FU=
X-Google-Smtp-Source: AGHT+IFIlf8eBMdfZOOTZiCrgCkemefiQIJq7j4U0mcKyHYM+8dGEgWaODE39483yOnu0bMm6VNQVA==
X-Received: by 2002:a05:600c:8184:b0:46e:6d5f:f68 with SMTP id 5b1f17b1804b1-47bda6f331emr1503905e9.12.1765876662662;
        Tue, 16 Dec 2025 01:17:42 -0800 (PST)
Message-ID: <0ba4df43-e071-4705-a18e-d41636946d3a@suse.com>
Date: Tue, 16 Dec 2025 10:17:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v3 1/3] x86: move / split usercopy.c to / into arch-specific
 library
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <f73aa7e9-c176-40c3-b5f5-81c69cb219ac@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f73aa7e9-c176-40c3-b5f5-81c69cb219ac@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The file wasn't correctly named for our purposes anyway. Split it into its
"guest" and "unsafe" parts, thus allowing the latter to not be linked in
at all (for presently having no caller). The building of the "guest" part
can then (later) become conditional upon PV=y.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v3: Retain xen/sched.h #include.
---
 xen/arch/x86/Makefile                         |  4 ----
 xen/arch/x86/lib/Makefile                     |  2 ++
 xen/arch/x86/{usercopy.c => lib/copy-guest.c} | 12 ++--------
 xen/arch/x86/lib/copy-unsafe.c                | 22 +++++++++++++++++++
 4 files changed, 26 insertions(+), 14 deletions(-)
 rename xen/arch/x86/{usercopy.c => lib/copy-guest.c} (94%)
 create mode 100644 xen/arch/x86/lib/copy-unsafe.c

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 61e2293a467e..dfb258d7ac1c 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -72,7 +72,6 @@ obj-y += time.o
 obj-y += traps-setup.o
 obj-y += traps.o
 obj-$(CONFIG_INTEL) += tsx.o
-obj-y += usercopy.o
 obj-y += x86_emulate.o
 obj-$(CONFIG_TBOOT) += tboot.o
 obj-y += hpet.o
@@ -93,9 +92,6 @@ hostprogs-y += efi/mkreloc
 
 $(obj)/efi/mkreloc: HOSTCFLAGS += -I$(srctree)/include
 
-# Allows usercopy.c to include itself
-$(obj)/usercopy.o: CFLAGS-y += -iquote .
-
 ifneq ($(CONFIG_HVM),y)
 $(obj)/x86_emulate.o: CFLAGS-y += -Wno-unused-label
 endif
diff --git a/xen/arch/x86/lib/Makefile b/xen/arch/x86/lib/Makefile
index ddf7e19bdc1d..8fe2dfd88553 100644
--- a/xen/arch/x86/lib/Makefile
+++ b/xen/arch/x86/lib/Makefile
@@ -1 +1,3 @@
+lib-y += copy-guest.o
+lib-y += copy-unsafe.o
 lib-y += generic-hweightl.o
diff --git a/xen/arch/x86/usercopy.c b/xen/arch/x86/lib/copy-guest.c
similarity index 94%
rename from xen/arch/x86/usercopy.c
rename to xen/arch/x86/lib/copy-guest.c
index a24b52cc66c1..73284b3f14be 100644
--- a/xen/arch/x86/usercopy.c
+++ b/xen/arch/x86/lib/copy-guest.c
@@ -1,4 +1,4 @@
-/* 
+/*
  * User address space access functions.
  *
  * Copyright 1997 Andi Kleen <ak@muc.de>
@@ -6,8 +6,8 @@
  * Copyright 2002 Andi Kleen <ak@suse.de>
  */
 
-#include <xen/lib.h>
 #include <xen/sched.h>
+
 #include <asm/uaccess.h>
 
 #ifndef GUARD
@@ -139,14 +139,6 @@ unsigned int copy_from_guest_pv(void *to, const void __user *from,
     return n;
 }
 
-# undef GUARD
-# define GUARD UA_DROP
-# define copy_to_guest_ll copy_to_unsafe_ll
-# define copy_from_guest_ll copy_from_unsafe_ll
-# undef __user
-# define __user
-# include __FILE__
-
 #endif /* GUARD(1) */
 
 /*
diff --git a/xen/arch/x86/lib/copy-unsafe.c b/xen/arch/x86/lib/copy-unsafe.c
new file mode 100644
index 000000000000..a51500370fb1
--- /dev/null
+++ b/xen/arch/x86/lib/copy-unsafe.c
@@ -0,0 +1,22 @@
+/*
+ * "Unsafe" access functions.
+ */
+
+#include <asm/uaccess.h>
+
+#define GUARD UA_DROP
+#define copy_to_guest_ll copy_to_unsafe_ll
+#define copy_from_guest_ll copy_from_unsafe_ll
+#undef __user
+#define __user
+#include "copy-guest.c"
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 09:18:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 09:18:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187737.1509074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVRC1-0003Jb-R5; Tue, 16 Dec 2025 09:18:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187737.1509074; Tue, 16 Dec 2025 09:18:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVRC1-0003JU-Mz; Tue, 16 Dec 2025 09:18:05 +0000
Received: by outflank-mailman (input) for mailman id 1187737;
 Tue, 16 Dec 2025 09:18:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=t3Kb=6W=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vVRC0-0002x8-Gu
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 09:18:04 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1f4279c6-da60-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 10:18:02 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-430fbb6012bso1540944f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 01:18:02 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42fa8b9b750sm33747905f8f.42.2025.12.16.01.18.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Dec 2025 01:18:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1f4279c6-da60-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765876682; x=1766481482; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=h64sTDLguGxk8lP/Vg5Q4BOrQyBRO8zqvkCiMvX5SkE=;
        b=DCYV9XdnnkjvQLj1XegC1ZNBcfauGowunyvupf0VVS6KyiFBCnUoGSITCnOzZwUjIe
         MNMj+0t4iGPrflDpvcsjJvh89J3A1oXCw0rOLweRhnsVTjP+xGfWRxRpzNLdX/LYFGbC
         AFsMC68ehbnXrFgvJ4SzTqxHE/eGoqtzpn3y+7TIUWgGHMSGrRVA5GVwJcTioxGrao9T
         kKTqv/CRutMnBKApDHLeYr+7VdoICSunb3o8gtvg0g/6O5I9lG1dcuYfMEV5540/M6Ka
         Yj5oke6ois3VF5o7W1rI8Z+HYN39stp8/IVG50wuzjRFIqkCswRlRp80odTfiAKbwkit
         a0Ww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765876682; x=1766481482;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=h64sTDLguGxk8lP/Vg5Q4BOrQyBRO8zqvkCiMvX5SkE=;
        b=LV3ZRcEONY51JHENZffl6y31jF5CDHTdESIkHhLbGVYDsN8Y2tzd51vQKdju5PrIl8
         et8EIZP3Vnr++4LAeOAwi0SENQrnay25qviebcZ8wUwqj6U4NQveVI3qsLa3DgkT1ACn
         nGtR4cmrto3sbm6FKqXrW+Zw2+88u2481j3ll/FT/4aGhtHYEHy2ddcEakcUtWzKNBeb
         VMOPzsX5kdUwlq0/6C9VhPu3kvhPIM0juoCW1D97O+keS2uw0zdh/bVJC/NLTWZfWnzj
         Odp8pQMavI2na9vV5H8Bcmaq1803uxNrAdbuMJm3/HwJpshrtTT1enTDyCXL/jfZgKl0
         ntuQ==
X-Gm-Message-State: AOJu0Yze0PyPQ5C+mF9D4TngatUi7SYFUMXu5ZiFFJzyKzOzOGkdbxYz
	Q3jQPqdemdHxNE/EjSGpDOE+IOXNcwBYXSvqtac7JNCBBmhK1IOxMuamon85sN1T3PVsemIkGYf
	2eQw=
X-Gm-Gg: AY/fxX5b56UlAYx+mPZTqA1hG6RJxk2NBIB0bZsXN5003vNhAYqwlxISd0KU1LoC/qK
	KV8W0X5g5bNDEIsYuAb4bHkUa/R08OMwv0z+j4g8i2f3hTxXDmCUI06LDKDaNDMHEAthNQ9TRZY
	MplNLSirANcDGe3KnJZQJvownUY9eaWER8ZysQSLyqHYB3l0Ei6n0yURStz9G0eTHre00Ebw1bZ
	ProY/wO9hcQzsQNVAZ93vbUtK4dIDtbDv80deDV3F4VvB6ie+JGw3jgTsAgAOP2/zfET8c17UCY
	h/gTHXd+nXtPhmaYASPhSqmY9LM3rBasyR8d0ZIBEvrOB1/AroROdr8A6Ya9VmlszrX5FTNEFn3
	FiB6cd94xvXaUzFYY++rVdix3hbmOta9MFeFOxWpSzHBuX+Sx5gvG7Y3bg2qVy3S5tGV0IHFbPx
	PiVEMFwpM3btOwLEaP6SehuxvCfM0sain7wll48wgNIAn4ieuLjJ5Xv+CGkkLgkelU665YFwkPD
	NY=
X-Google-Smtp-Source: AGHT+IFAY6FsHV3I9WPbISaGV1wLqBZ/XPu/1Ydb3y0EhUes/HrpQ4m7WNEmIXHmQDezrbkDlFI4Ig==
X-Received: by 2002:a5d:5f92:0:b0:430:f6c0:6c5a with SMTP id ffacd0b85a97d-430f6c06ce4mr8796492f8f.22.1765876681942;
        Tue, 16 Dec 2025 01:18:01 -0800 (PST)
Message-ID: <8b856e83-5da0-4e96-a4b3-0561becc57ca@suse.com>
Date: Tue, 16 Dec 2025 10:18:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v3 2/3] x86: move mem{cpy,set}.S to arch-specific library
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <f73aa7e9-c176-40c3-b5f5-81c69cb219ac@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f73aa7e9-c176-40c3-b5f5-81c69cb219ac@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

If not these, what else are library functions.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v3: New.
---
 xen/arch/x86/Makefile           | 2 --
 xen/arch/x86/lib/Makefile       | 2 ++
 xen/arch/x86/{ => lib}/memcpy.S | 0
 xen/arch/x86/{ => lib}/memset.S | 0
 4 files changed, 2 insertions(+), 2 deletions(-)
 rename xen/arch/x86/{ => lib}/memcpy.S (100%)
 rename xen/arch/x86/{ => lib}/memset.S (100%)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index dfb258d7ac1c..43117c88e59d 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -48,8 +48,6 @@ obj-$(CONFIG_RETURN_THUNK) += indirect-thunk.o
 obj-$(CONFIG_PV) += ioport_emulate.o
 obj-y += irq.o
 obj-$(CONFIG_KEXEC) += machine_kexec.o
-obj-y += memcpy.o
-obj-y += memset.o
 obj-y += mm.o x86_64/mm.o
 obj-$(CONFIG_VM_EVENT) += monitor.o
 obj-y += mpparse.o
diff --git a/xen/arch/x86/lib/Makefile b/xen/arch/x86/lib/Makefile
index 8fe2dfd88553..a5169f5e19c1 100644
--- a/xen/arch/x86/lib/Makefile
+++ b/xen/arch/x86/lib/Makefile
@@ -1,3 +1,5 @@
 lib-y += copy-guest.o
 lib-y += copy-unsafe.o
 lib-y += generic-hweightl.o
+lib-y += memcpy.o
+lib-y += memset.o
diff --git a/xen/arch/x86/memcpy.S b/xen/arch/x86/lib/memcpy.S
similarity index 100%
rename from xen/arch/x86/memcpy.S
rename to xen/arch/x86/lib/memcpy.S
diff --git a/xen/arch/x86/memset.S b/xen/arch/x86/lib/memset.S
similarity index 100%
rename from xen/arch/x86/memset.S
rename to xen/arch/x86/lib/memset.S



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 09:18:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 09:18:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187749.1509084 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVRCV-0003tL-36; Tue, 16 Dec 2025 09:18:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187749.1509084; Tue, 16 Dec 2025 09:18:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVRCV-0003tE-07; Tue, 16 Dec 2025 09:18:35 +0000
Received: by outflank-mailman (input) for mailman id 1187749;
 Tue, 16 Dec 2025 09:18:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=t3Kb=6W=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vVRCT-0002x8-JZ
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 09:18:33 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 30a19a6c-da60-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 10:18:31 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4779cb0a33fso52498065e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 01:18:31 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-430f268d459sm18845621f8f.32.2025.12.16.01.18.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Dec 2025 01:18:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 30a19a6c-da60-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765876711; x=1766481511; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ANz5oLAgLPEi3G+5B2ZyA8WOqvy5xevNUG2OWEhCbwY=;
        b=PPfvHidQJIoBmUeoAqBeZxEJiE/oxXNh/hSGi/t14kMPFSrdBS/vKpte/CVJJMgpon
         fEseWGHIVCHW9U0ERB4WhKyneJxLMiyzA0/m3qeCjTpJez2zE+iVh4T6C0M+0/LRCBVi
         iTLGYB94F/lzjws69BP49jKuPF0cX704v6DmE8TmuB86S9O08zYBezyQ4HbrU4tT6RMu
         mQiuf3T2jqJXjlV7HQuWY5z48zkVYK7PL3Z8L50bwmSTxGGWs3mKfyYdAhN8X2QWMEnW
         spUg3pmItvJM9g0e0pcKV/9aMtAvsfqS9Vxjf7PfRR5AYN5m0Yzf8ttb/PMbIyfU+J+F
         Reig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765876711; x=1766481511;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ANz5oLAgLPEi3G+5B2ZyA8WOqvy5xevNUG2OWEhCbwY=;
        b=e73cEF25hpY8XoRrEGTqKv2MUD2U4ARTkhryPQSwOGmN3CNPNyBjpAeO1PkGt4LC+V
         4tfb/D7lmwQkn4Ngt204W6FpIwacrCFwqVqPiaW2/TcP4r+pSGBUDIblTI7UNL1hqBCL
         o95tY/zx6lDbPrxZPpCt6hgKdlXL7sDyLpHwEeLFCjlZZbkDLOVioqhS4MMye2do+d9C
         bwao2Wm9xf09gYxF9MR27N5qjcWe7wIK8Cugido17RpsjGh9GvoLcEYQx3ARSOflc9oF
         OEwCKhHfs1Tm3f3Q3tKl/kFF/ZebQ1nqXY0QN40R5lR3Z5LBJ9H2RFrIO8kREUF6S7+y
         C23w==
X-Gm-Message-State: AOJu0YxDyNXi5dryGLt1UVcqm89trx2loh7MMVYOJgAaXcuk1wVDTtkh
	dmrmbHV28ikzBDAEAV/GP/k+1z1i4VRW/pfSyU/94PecGSVuX0dQsCulXzVyZPQfEQUP1ptei4f
	2pnM=
X-Gm-Gg: AY/fxX7mo1bMmuKi0Px8RIhB/2eQ6E7fuDCkTyRWPYtVRJ9n3dDEGFFxub91wWJRdE8
	wSmSHiEPODzDfAYJBrXSs4gVEaJ0zUI1j9rgGgZGBF/VLrCA02NwI61lVTP7nq5ESwAV/qFmBO2
	bv4vAbN1AJu7ENzP7hlWWJwZ9+U162boYCgvu9zOHEQV9QyyCmAZUuR+1qRNOVuLA60z6Rk+xyc
	rOIWEW0SyXsI/4aBh7SxOj1OT+lAiSCeoTM0WkB9ZxtuLesAu2gq+1fx0CQhDy1Vi3c9Vr0MAST
	HsOqFMFJCsv3zeaYRo4ZyAV8rMjP9XtOHbpXTKExhWgkG8meDyLSvg5zDPZ/saVytQuPEkri1wg
	IItJcP1G/v0mkYbOKQpUAAeHXCkA+99ReYNFUsn6kSOpe75TGTLcaWkDV86fC4xZ0KVn6XNhSA8
	5zdgxBssn2Zqn4yLvpTt/toxr9GXo2zYMeZA/mcMmRQIm3iIkhTT26WoVtFTvBZiXVqhH15Iv58
	RqQceLj2MMRrw==
X-Google-Smtp-Source: AGHT+IFWoWq4Un9AFPJHFLLN+PMuHGfqC0Of2ZBbcCiWWbTfmMIxvPsUEbP9C7XLINEzD6HPIVC/TA==
X-Received: by 2002:a05:600c:45c9:b0:46e:35a0:3587 with SMTP id 5b1f17b1804b1-47a8f90c516mr143378485e9.27.1765876711194;
        Tue, 16 Dec 2025 01:18:31 -0800 (PST)
Message-ID: <2c224d52-6f3f-4fa9-abd5-dc7ea13b3402@suse.com>
Date: Tue, 16 Dec 2025 10:18:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v3 3/3] x86: move {clear_,copy_,scrub-}page.S to arch-specific
 library
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <f73aa7e9-c176-40c3-b5f5-81c69cb219ac@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f73aa7e9-c176-40c3-b5f5-81c69cb219ac@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

These are pretty similar to the standard library memset() / memcpy().

Switch to building scrub-page.S unconditionally; the linker will simply
not pick it up when not needed.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v3: New.
---
While moving I noticed that the files here have .file at the top, while
mem{cpy,set}.S don't. There not being any static symbols, likely we could
omit the directives here, too? Or should mem{cpy,set}.S gain them?
---
 xen/arch/x86/Makefile                           | 3 ---
 xen/arch/x86/lib/Makefile                       | 3 +++
 xen/arch/x86/{clear_page.S => lib/clear-page.S} | 0
 xen/arch/x86/{copy_page.S => lib/copy-page.S}   | 0
 xen/arch/x86/{ => lib}/scrub-page.S             | 0
 5 files changed, 3 insertions(+), 3 deletions(-)
 rename xen/arch/x86/{clear_page.S => lib/clear-page.S} (100%)
 rename xen/arch/x86/{copy_page.S => lib/copy-page.S} (100%)
 rename xen/arch/x86/{ => lib}/scrub-page.S (100%)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 43117c88e59d..1fc651146f10 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -17,8 +17,6 @@ obj-y += apic.o
 obj-y += bhb-thunk.o
 obj-y += bitops.o
 obj-bin-y += bzimage.init.o
-obj-bin-y += clear_page.o
-obj-bin-y += copy_page.o
 obj-y += cpu-policy.o
 obj-y += cpuid.o
 obj-$(CONFIG_PV) += compat.o
@@ -57,7 +55,6 @@ obj-y += pci.o
 obj-y += physdev.o
 obj-$(CONFIG_COMPAT) += x86_64/physdev.o
 obj-$(CONFIG_X86_PSR) += psr.o
-obj-bin-$(CONFIG_DEBUG) += scrub-page.o
 obj-y += setup.o
 obj-y += shutdown.o
 obj-y += smp.o
diff --git a/xen/arch/x86/lib/Makefile b/xen/arch/x86/lib/Makefile
index a5169f5e19c1..b9a65c662a56 100644
--- a/xen/arch/x86/lib/Makefile
+++ b/xen/arch/x86/lib/Makefile
@@ -1,5 +1,8 @@
+lib-y += clear-page.o
 lib-y += copy-guest.o
+lib-y += copy-page.o
 lib-y += copy-unsafe.o
 lib-y += generic-hweightl.o
 lib-y += memcpy.o
 lib-y += memset.o
+lib-y += scrub-page.o
diff --git a/xen/arch/x86/clear_page.S b/xen/arch/x86/lib/clear-page.S
similarity index 100%
rename from xen/arch/x86/clear_page.S
rename to xen/arch/x86/lib/clear-page.S
diff --git a/xen/arch/x86/copy_page.S b/xen/arch/x86/lib/copy-page.S
similarity index 100%
rename from xen/arch/x86/copy_page.S
rename to xen/arch/x86/lib/copy-page.S
diff --git a/xen/arch/x86/scrub-page.S b/xen/arch/x86/lib/scrub-page.S
similarity index 100%
rename from xen/arch/x86/scrub-page.S
rename to xen/arch/x86/lib/scrub-page.S



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 09:26:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 09:26:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187765.1509093 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVRKN-0005br-V3; Tue, 16 Dec 2025 09:26:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187765.1509093; Tue, 16 Dec 2025 09:26:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVRKN-0005bk-SC; Tue, 16 Dec 2025 09:26:43 +0000
Received: by outflank-mailman (input) for mailman id 1187765;
 Tue, 16 Dec 2025 09:26:42 +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
 <SRS0=Qh75=6W=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vVRKM-0005be-81
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 09:26:42 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 513aeb9e-da61-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 10:26:36 +0100 (CET)
Received: from CH2PR04CA0002.namprd04.prod.outlook.com (2603:10b6:610:52::12)
 by PH0PR12MB5680.namprd12.prod.outlook.com (2603:10b6:510:146::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Tue, 16 Dec
 2025 09:26:29 +0000
Received: from CH2PEPF0000013B.namprd02.prod.outlook.com
 (2603:10b6:610:52:cafe::ec) by CH2PR04CA0002.outlook.office365.com
 (2603:10b6:610:52::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.13 via Frontend Transport; Tue,
 16 Dec 2025 09:26:29 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CH2PEPF0000013B.mail.protection.outlook.com (10.167.244.68) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9412.4 via Frontend Transport; Tue, 16 Dec 2025 09:26:29 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 16 Dec
 2025 03:26:28 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 16 Dec
 2025 01:26:28 -0800
Received: from [10.252.147.171] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 16 Dec 2025 01:26:27 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 513aeb9e-da61-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tie2pdiHibN+I12iHa4Cr+Snnc9C2ZjG1Ew46DD1Mk3qJwPVk16Xn+9Ba1QCVgL8yoxwRll7/q77DbIRtw7aH3dr9C4dAyCm8clhNqzofX4E2WH2QcapGzGtgv1OztkI4Nmkdbsx6x+ANcVDVP7anz17aEvoeWZ79mgAyZ7VKfz1rrG9Tlc9nhv6mkeuaV4mmZfJnH5azQF3GeUVzmkLt4+NMxci3ZDQuNkDgjkrg3pWsefT6CJl1ai501ST47Xe/WqM/Wew/99Fm1iR3PQxf5/qeYSAoD5V0ywd+BECwRjREOWgNcZrVr8k0CeS9LT4FjD6UvIYyBVm3trHnnjCZA==
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=f0zSox3Fcge1kaCdDnHEiRUV5iYkipp7h6L5uMIJHGk=;
 b=JW8lhtYTg8nUyXEIrBoQ0M4mzx11pjygND/QpB9iDGLfkELJ+URNeHwaIxiJ4eEfg0GI9jT4robdB5RLyA2NAaZb+gPktJB7svwzLgaMbSjIsT70VkLjsbzkTaAw8MEBB2PRhhrYxaaXoiFhebS23GXI0TZOLFpbRpf04Rvecu0GgcvFQtgblZCZ6AuI2uXbToSYI6R5wMFlmABraXA7VBDxQMEQzGSIbLXsLlbQgsF9g4d3iW4SkItR+wz38DEIlKA4p2rlli/cP04Frci+aarDqc7J5I4aCFRyR7p01Q71jsTBUzuq5DVLJyGgedfAcFMoAezouwTlXnErC9Qs2Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=f0zSox3Fcge1kaCdDnHEiRUV5iYkipp7h6L5uMIJHGk=;
 b=3RN4VUOYTswxGqGO3Ommqgvj8bMs9oVA41k40QdQbV3KcZERVx+I4I6O7RYs3msJnf/zxGORC0ay2aaRI0mqJo+fRO8cyyij+TWjMpQNchL/RAAXmsrp3S4LERhSWy+bTuYYRawEChrZDadr9Viabr6ZLMCvZQzONaIpdHq7s/I=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <4c3f8be6-2525-4387-9dc4-b5dfdbf41a77@amd.com>
Date: Tue, 16 Dec 2025 10:26:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 6/6] arm/mpu: Map domain page in AArch64 MPU systems
To: Harry Ramsey <harry.ramsey@arm.com>, <xen-devel@lists.xenproject.org>
CC: <Luca.Fancellu@arm.com>, Penny Zheng <Penny.Zheng@arm.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Wei Chen <wei.chen@arm.com>
References: <20251128095859.11264-1-harry.ramsey@arm.com>
 <20251128095859.11264-7-harry.ramsey@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20251128095859.11264-7-harry.ramsey@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF0000013B:EE_|PH0PR12MB5680:EE_
X-MS-Office365-Filtering-Correlation-Id: 4fafb017-81ac-4f3b-d7c6-08de3c853184
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Rlg1L0FQa2wvUWZMQjJmYURYYnRwRU5td1hFbnZwTGdESnYzYnFJOXlwbGxp?=
 =?utf-8?B?R293OGxSelkrVG1FWVZFTThlVDNhamZ2SWJ5TDhEb2MzNElzQURKVThacHhE?=
 =?utf-8?B?SWlQZWNJOEFPVkxtcWZHZmQyUU5halpES0pWSUZDOEM0My9jRStHa2ZZSnBG?=
 =?utf-8?B?MGVwSVkrVWhaQnZianozZXU4OCs1K09VNHk1R2h4dmgvWHVuNjI1bmlTSklP?=
 =?utf-8?B?ZDZraitzWng3RDFTdzFVSXFiU0JDV1N4Wll4cWIyWlB4a0Jxa0ZHWmlXYUtY?=
 =?utf-8?B?RERzVWJyM0NBdExmRzg4SXc2YlVmbHdoT3pVNi8zMnNFdWV6Myt0cVV5Y1g0?=
 =?utf-8?B?dEwwem5yaUYyOTlUMERnYnQ1QVJicUpFZVE2L3VMeE12TGJUcDB5Yjk4ZER1?=
 =?utf-8?B?b1VnWjhsOGR4dEVZb1J4WHR1TGRBb3pIUnA1U2tKczFIZUxtOHcwM1BMVHFn?=
 =?utf-8?B?Y29GN2Y1MC9pamt2VUViNk84SUcwQ1VaekplSFhjL2R4NVRKb0ttdDFaMDFW?=
 =?utf-8?B?aVBKSXZ4engzUFVJUStMd3M1TEwwSUNqeTN3TEx0amQ3S0REdmxVL2tEZ1JK?=
 =?utf-8?B?QkNUT1hTTjM5ejVZYWpwR3B2cDRSMWVJK0pQbExUVWJlbmd4cFM1cUdHQUtW?=
 =?utf-8?B?VWo0dEViekp3MUVFZDZnODloc01GNEwwL292a2RvVXkwWWd0bHFVSjJJa05j?=
 =?utf-8?B?STg2ZFlLbzJPOERxc2M1Z05xa1MvNjdXVjFQTGo0TWNrWkZ2TnJ3SnUxZm1F?=
 =?utf-8?B?ZE9YeCt2bXd4eHNFVlJIcHY3alJCRE5NeUp5d29QT1BxTnVMOTdtZ09DSlFT?=
 =?utf-8?B?Z1dhQXhxT01EVEhTVVdOelBhWFNoNXBoL2UzRDRrUEtPSEgrbEN5TXlBanVH?=
 =?utf-8?B?dkpVTWd2Q0ZGWkl6WXdOTDFDSDdhRHlTYmtSU1B5MFBrc0RKVHZlTzYycWhM?=
 =?utf-8?B?VHEwVDNONzBGb0xvK2pWaWJoRlRaWDhxOFlCclYwRDB4Zmc2YXphTzZHNk5K?=
 =?utf-8?B?TXRacWZvL2N6WVg3L3BBbnVCRjYyakJMVVVpMUtJaXFjWk16aWxrTVhyS2pC?=
 =?utf-8?B?eUVSaGJuMnJUZEJvMkhValJ1ekc2VlA5SkdkeUVIREN2UG8yUHI3UjNOZW9q?=
 =?utf-8?B?blJHSmpVaWFoTlhRTmJ2MWhMRlVWRll1aXZySGRkUWp0Y1JQdFVQR2ZKaFZU?=
 =?utf-8?B?bUpyK2RjaXd1U1JmTGROYnNKZXgrMjA0cC9hVGxvei9NMUFNbnpPNnVJZWxv?=
 =?utf-8?B?NkNGRmV0T2hDTGFQZlVZVmxlSnFXN2lNWERMcnJodCsxWEVIZVorbVJqTHBM?=
 =?utf-8?B?bW9jTXlnT00zWFJPeEVVRzlQckhpcUhYNGRYUnpON2ROKzBvR08yVk14cnpr?=
 =?utf-8?B?RnFxbVR2clphV0Z6dWZHSFNjSEtFNlZudktIa3h6VTRXR2FXdWJ3ZEx0VkJK?=
 =?utf-8?B?ajFBUmdPOWxvUTlobkgyVzdPUUFtdEVTOUhRUFVNaHNJLzZaa2l5TW5QQ3dm?=
 =?utf-8?B?SnBtOUcvOFRnUzRVaVIxR2RpcWJHeCtkNlBiclYyNUR5VHFhMFZubWc3MXZx?=
 =?utf-8?B?OHVuT3BzeFNNc0FJdXNjdDRIMjVPS3NlODV3bzNUMkNaSk1uZ2FFcEN2a2lI?=
 =?utf-8?B?TWd2K2RQbVBpVlpaTGZnTkcxdmN2Qi9zR3M4SVNzb25kT252RkdQc2F5RUZv?=
 =?utf-8?B?SXZ2OU5YcDJYSjR5UFYyb09ZSzZ3Q0xnUXIrR1FYZjdZMndLbUNkWmpJYXRG?=
 =?utf-8?B?STBsYkZzTXgxenpJakxxaldYdmtocFdkNW1QTXIxc1N6TE53d3UrZngwait4?=
 =?utf-8?B?RlBhK0FnWGR3MGdFdCtGcXpyU0cxOEEzcHdQVnZFM0pKS1pTZXl2NU5tQWlz?=
 =?utf-8?B?bEtETTg4cUlqTW9UR093Ylc4S3VUYmd4V096QnBmaGc3Q3BjWStsRUJqdk1o?=
 =?utf-8?B?S0pTWE55SXVzbDgyZC8vS25ySVJubkUrbzA5d3BmcklEbmFXSnBpTFc5REJ3?=
 =?utf-8?B?S1hHQ3RNUkVEaVdOdmdKWm1Jb1A1aWljWWUzTFAxcGY1K0ZaTmVIQlZJSjd6?=
 =?utf-8?B?R2dBU2dGTmF2Sm1QRFN2V3VDSWdtOHF4eUdpVHdvMDZ2YzhyUjhqZXhpdTdV?=
 =?utf-8?Q?iMzw=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2025 09:26:29.1973
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4fafb017-81ac-4f3b-d7c6-08de3c853184
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF0000013B.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB5680



On 28/11/2025 10:58, Harry Ramsey wrote:
> From: Penny Zheng <Penny.Zheng@arm.com>
> 
> In MPU systems, we implement map_domain_page()/unmap_domain_page()
> through mapping the domain page with a MPU region on demand.
What prevents you from implementing the remaining few helpers?

~Michal

> 
> Signed-off-by: Penny Zheng <penny.zheng@arm.com>
> Signed-off-by: Wei Chen <wei.chen@arm.com>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
> ---
>  xen/arch/arm/Kconfig           |  1 +
>  xen/arch/arm/mpu/Makefile      |  1 +
>  xen/arch/arm/mpu/domain-page.c | 53 ++++++++++++++++++++++++++++++++++
>  3 files changed, 55 insertions(+)
>  create mode 100644 xen/arch/arm/mpu/domain-page.c
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index a5c111e08e..dac9a16c28 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -91,6 +91,7 @@ config MMU
>  
>  config MPU
>  	bool "MPU" if UNSUPPORTED
> +	select ARCH_MAP_DOMAIN_PAGE if ARM_64
>  	select ARM_SECURE_STATE if ARM_64
>  	select STATIC_MEMORY
>  	help
> diff --git a/xen/arch/arm/mpu/Makefile b/xen/arch/arm/mpu/Makefile
> index 4963c8b550..940297af3f 100644
> --- a/xen/arch/arm/mpu/Makefile
> +++ b/xen/arch/arm/mpu/Makefile
> @@ -1,5 +1,6 @@
>  obj-$(CONFIG_ARM_32) += arm32/
>  obj-$(CONFIG_ARM_64) += arm64/
> +obj-$(CONFIG_ARM_64) += domain-page.o
>  obj-y += mm.o
>  obj-y += p2m.o
>  obj-y += setup.init.o
> diff --git a/xen/arch/arm/mpu/domain-page.c b/xen/arch/arm/mpu/domain-page.c
> new file mode 100644
> index 0000000000..9248053ff5
> --- /dev/null
> +++ b/xen/arch/arm/mpu/domain-page.c
> @@ -0,0 +1,53 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/bug.h>
> +#include <xen/domain_page.h>
> +#include <xen/mm.h>
> +#include <xen/mm-frame.h>
> +#include <xen/types.h>
> +
> +void *map_domain_page_global(mfn_t mfn)
> +{
> +    BUG_ON("unimplemented");
> +    return NULL;
> +}
> +
> +/* Map a page of domheap memory */
> +void *map_domain_page(mfn_t mfn)
> +{
> +    paddr_t pa = mfn_to_maddr(mfn);
> +
> +    if ( map_pages_to_xen((unsigned long)pa, mfn, 1, PAGE_HYPERVISOR_RW) )
> +        return NULL;
> +
> +    return maddr_to_virt(pa);
> +}
> +
> +/* Release a mapping taken with map_domain_page() */
> +void unmap_domain_page(const void *ptr)
> +{
> +    paddr_t base = virt_to_maddr(ptr);
> +
> +    if ( destroy_entire_xen_mapping(base) )
> +        panic("Failed to unmap domain page\n");
> +}
> +
> +mfn_t domain_page_map_to_mfn(const void *ptr)
> +{
> +    BUG_ON("unimplemented");
> +    return INVALID_MFN;
> +}
> +
> +void unmap_domain_page_global(const void *va)
> +{
> +    BUG_ON("unimplemented");
> +}
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 09:30:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 09:30:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187777.1509103 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVROA-0007T8-Ct; Tue, 16 Dec 2025 09:30:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187777.1509103; Tue, 16 Dec 2025 09:30:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVROA-0007T1-9v; Tue, 16 Dec 2025 09:30:38 +0000
Received: by outflank-mailman (input) for mailman id 1187777;
 Tue, 16 Dec 2025 09:30:37 +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
 <SRS0=Zuqr=6W=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1vVRO9-0007Sv-91
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 09:30:37 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dc23acc0-da61-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 10:30:29 +0100 (CET)
Received: from AM0PR02CA0127.eurprd02.prod.outlook.com (2603:10a6:20b:28c::24)
 by DU0PR08MB9936.eurprd08.prod.outlook.com (2603:10a6:10:400::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Tue, 16 Dec
 2025 09:30:25 +0000
Received: from AM1PEPF000252DA.eurprd07.prod.outlook.com
 (2603:10a6:20b:28c:cafe::31) by AM0PR02CA0127.outlook.office365.com
 (2603:10a6:20b:28c::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.13 via Frontend Transport; Tue,
 16 Dec 2025 09:30:25 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM1PEPF000252DA.mail.protection.outlook.com (10.167.16.52) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.6
 via Frontend Transport; Tue, 16 Dec 2025 09:30:25 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by DU0PR08MB9936.eurprd08.prod.outlook.com (2603:10a6:10:400::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Tue, 16 Dec
 2025 09:29:21 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9434.001; Tue, 16 Dec 2025
 09:29:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dc23acc0-da61-11f0-b15b-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=qHzo3AsXP4hVWgWG5mosbCqVw8WTd4JzJTl6DNzIA5aKZ1Y34aYPCsZ26aRH4CN4wj3K++vkPMjvUl6yHAriofsBFR0rpyQ2oBlogVKf5D+WKKRuZLDY0RSEPCiooz9zhcmZhRw6y2n0jkm5G5JgEfRQpiNbmMHmvq2iemGGrEhjf1k2gB9OZ7VtSjIu3XIpnfys4Xn++y0SoXMycMOodGZyUuxWlVWztzrFkUn/xneBAggBuE86qVc6I3pUkMWklf2ZEj28q97YJ1sghLAaSXDj+CKSFHoaKnRoF53KbIeVr14dLP0PSPIRCfgbBr5k/n70WivtB/k6J/oYQY3yXQ==
ARC-Message-Signature: i=2; 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=MSlHZH+vS7UzWlI+EqG1o8eEAyY7aZm/bknkgNVQPyQ=;
 b=I6Qk/KWNrI3+Czppu9tXi6oaESKnMCMOShkJHTHbxroUaEUYbc5XbJT8AWn9VYArx6B7J2sqn0z9H/9C+ZrtBQkk2EZ9nRz5pKvqVX8georlOW7Fb4F5KbgynifAMbbrSDStdJTEa14pU1+oA+Wapn6hpfxumDBj2PcYLQe0xMnOfnpFC6R5L669n2Xj1ZK6zeFY1hu+8r/ZFiZETgOP7F9nPpAGhX2aZsWlUn9FHGvc5QJybZFCuZXWeYnIMCV6ySe7ySMmDHdOBUj23o3T7Aruod3ecO20PWVonjm7q2C+f6G/g8I5NtF6RPr4pxztMrBxjoMZGjv6pbvRzQT1CQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MSlHZH+vS7UzWlI+EqG1o8eEAyY7aZm/bknkgNVQPyQ=;
 b=RUNT4xWsE7jLK6oZUtzuEFs982vJJVf23xFIUQuTRsWqQL0j9k4HnvkSA59ao4M+yWHVZEaW2FKMKP4k+/2LHh1wbuRa9iAhXiiMowX6BzcUm6+9lzxkNh9ali3wBlcIn4nKSytoRQd0UBiEWCvvjHeK0AZuCLbIo3wWV6bHRCA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GBG/lWKKUX4EFlmh1q6Bb6PqBwp73vKsdyrHuc37c9RQgO0xq4gEVYq9kNBrDCuQHCZXU2W5DVK5WKb3LLRNO/a8etOzjm/oUE83VdUXzM07omr8lnAQguH6PdeVgrh4OCePS7iQwFxYIg/70ZWTDKQQAG2b6p0bkSR5oV363ism8DeEltUN47ieZ39SucEYAAk/S3Gi7OvsZ+PPmZA0OUU051FNweShe5vdPWwqOl40LdaUmTPWEJG6/ehbmXR8lkv8AO6QBly2qpLLPL823OOfmwYH/kUuy3g8E3FUB/B7AYnAHnY0jEDawEn96k/bX+bN6iiRspclJly1JoFgPg==
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=MSlHZH+vS7UzWlI+EqG1o8eEAyY7aZm/bknkgNVQPyQ=;
 b=zR0UvaCRRKkpJNKTSNmccvQ7n3auh7A+Tj2RamQUKLXVaErcCt1e5oMN3f2qfY24RKlpCRrWR0vOaDtx5sCGHliGCP+lcvnWY6bPpQQGX4KW3RVGuNRQC4RQ8xvPTmysePBmfy6xr41nnyLcS/LAw6OJlwnLvfWCY9RtePbyyvUS9nUmFl79T0GvPlzVqRhkCcXJNLO73bij5EAcIl0Mf1lUueO2k+pA/RPpXhfxfE0y3Es5LhKlBEWjmE0sZoKtWzf4IcZSgBRunlJHW9+EC9zeBTKTaTOJBiaRUNduFqRvf7nPapnWCf/5rPtiDEoze+pbrWq2GL6JCk26uDqi+w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MSlHZH+vS7UzWlI+EqG1o8eEAyY7aZm/bknkgNVQPyQ=;
 b=RUNT4xWsE7jLK6oZUtzuEFs982vJJVf23xFIUQuTRsWqQL0j9k4HnvkSA59ao4M+yWHVZEaW2FKMKP4k+/2LHh1wbuRa9iAhXiiMowX6BzcUm6+9lzxkNh9ali3wBlcIn4nKSytoRQd0UBiEWCvvjHeK0AZuCLbIo3wWV6bHRCA=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Orzel, Michal" <Michal.Orzel@amd.com>
CC: Harry Ramsey <Harry.Ramsey@arm.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Penny Zheng <Penny.Zheng@arm.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Wei Chen <Wei.Chen@arm.com>
Subject: Re: [PATCH 6/6] arm/mpu: Map domain page in AArch64 MPU systems
Thread-Topic: [PATCH 6/6] arm/mpu: Map domain page in AArch64 MPU systems
Thread-Index: AQHcbm4YR0/90zis5Uafj3gh5AdGL7Uj/+kA
Date: Tue, 16 Dec 2025 09:29:21 +0000
Message-ID: <CC6759B6-0341-4E8E-A038-7B50B22FFD89@arm.com>
References: <20251128095859.11264-1-harry.ramsey@arm.com>
 <20251128095859.11264-7-harry.ramsey@arm.com>
 <4c3f8be6-2525-4387-9dc4-b5dfdbf41a77@amd.com>
In-Reply-To: <4c3f8be6-2525-4387-9dc4-b5dfdbf41a77@amd.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|DU0PR08MB9936:EE_|AM1PEPF000252DA:EE_|DU0PR08MB9936:EE_
X-MS-Office365-Filtering-Correlation-Id: a2840836-5ea5-43cd-2d03-08de3c85be4e
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?OyU2qOD11d9z12FfG0bxlPG9BCF5+DFNO6ZUg1p14rr3kP1seOhf1GsUY9fC?=
 =?us-ascii?Q?vp+pxRS6g6Suq94z6EyhiOko6OTlPeoWRU9fEQ0YibMQWWafjf7N2Uq7F7kq?=
 =?us-ascii?Q?uzhWHmCNN/xO1Q1bzwvflS0y7T35HxYer1kJWlCylqDgyCYIsDdJSnCh5ELD?=
 =?us-ascii?Q?EmWiKFi83M8uJmmKN80qCoSXMPacLxX6OLllTX9qc2NGki6gFNSi3o4Fnlmn?=
 =?us-ascii?Q?Vmd8HDW4fho23ngoNPXy/jINxenSlTdTAVqXlTjIuD3sto4Ly40fL44CWDPf?=
 =?us-ascii?Q?MSPIU8XDOvPgsOdZNsvRS2VImgeK3JGic2MKhthiSlX9scUFgEaAFQ3JkEMX?=
 =?us-ascii?Q?Lq8lNtO+bcaxDxbecv6P7dxcu2LJ6oR4L3EPz2aUvUwQRkafEGFgRdqVsRRH?=
 =?us-ascii?Q?PFi9aRutJJ21IFd7cBKZZQ3PKUA76hc/P2egG3evyGxQcPuglrWMzzr0v4Ph?=
 =?us-ascii?Q?BWHkTvL6qRTqIvvOh1FDgP5xdCPRt9gvxZfS9Kz/jCEEwd3PqAr4qv+n288g?=
 =?us-ascii?Q?iMG20tMlippvNgRckp5q/FixBjqRQEG+wNaxnOyYJwMFrEqxjQ/g4/42ST69?=
 =?us-ascii?Q?CJ4gztGMdiv8b5KEXFr9xykM7aYvTRJjmVkuwURWyJkHnpri0J2D5Scaxq/s?=
 =?us-ascii?Q?lxru+OygOHUphPQd7QasQxcNIEueB2zYnjl2v2kWSfAuAy6/bjzVEl2p4yRx?=
 =?us-ascii?Q?4uLvIbbmMHRcS3R5cpew7rvfy0eFd4p1fitJ3T4fSnF0SEdS314rLE3bOVBB?=
 =?us-ascii?Q?rfjOTT1SUA+0QY1ZRMsyPEeVj09YZDvCE0/h+D5PLeomDqieMjeAMIBB5C4U?=
 =?us-ascii?Q?+uhmxxhRjvwSy8hjYSjexMeKcY12T6g2ZVXdXyo/v9IZo6uFPF9MImtofGc9?=
 =?us-ascii?Q?K+7BloQYGjMitShd1q1USWZTnT4lP/LrCktWs4a7Ubm1Y5vl7Lmp8TlyIu9R?=
 =?us-ascii?Q?W4mjUKMjT8m4SqUjNMdoCvI3hqzArbWZ28r5Df/E1nbiKxqz9IFk+0OKh1oS?=
 =?us-ascii?Q?j834IFJKDn8ZzhdHQrSW7+fDSloYU1EbLicLXnHrroQqAwOAqYm/N6iyTOyM?=
 =?us-ascii?Q?F9W76YwCuDbUDB717yIL35kA3q7TEL7hEwXgd9XHAxRWz9C39SvzCk3WNMsZ?=
 =?us-ascii?Q?/4oC0ucsxeFW2krQOmF1svmujgALELEp5LNs+N1Ij1FSHMuwaHGmFJD3fbZD?=
 =?us-ascii?Q?ny47nQ4MbMeJiE2669F+oYvveLaJSOQZx7R5rebch8KTGuPKb/WD+L6NNqcC?=
 =?us-ascii?Q?30TVa3xtLRi7T0qnLjbl8UfaGTIccJnw0PQrOLVAdglhl4Y6EFqBqtWujijT?=
 =?us-ascii?Q?daVbEsv3/h42SqfcvTNGgXjeo8ZWvUhz0PEJUbE/mzv4LITGbwsK9pBcZeIC?=
 =?us-ascii?Q?4KDvL1nBeTQ3UI16hUOkdBsXEgx0Xv6jKs4dE651nghi6ESLu/6DYjns4CtU?=
 =?us-ascii?Q?28zlh/s1DpnaFEqy4A5ib8KR9gr4NOQwxvNwVld3taqebuZUeHk9O9BM4RXr?=
 =?us-ascii?Q?060HvAful1tJbkkDphzTe1CiKOwUlIyl3KC3?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <C04EEDFD17E3B84FB820892A192D36F3@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9936
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM1PEPF000252DA.eurprd07.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	06162555-a1d5-4523-269b-08de3c8597fd
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|82310400026|14060799003|376014|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?+d4SHMrfIBO0oARBU+JmD8MJHzMpPbFPMy0hOG00tl1JhjqxDd5XczhvN1Aw?=
 =?us-ascii?Q?N2t+Z3fHNsnhNisw2yNOm5BzbVdtPxv/VKbWr3bmiHWG2mhp7fgqh40hzWwi?=
 =?us-ascii?Q?IAH/VS3wQTV/rJ4kH+14Ijlqvyq4xNRwaFA0yD1GPOT7oq8PVJfchZ1TpDU8?=
 =?us-ascii?Q?of2u2/l01K6c7f8YFMLD15hSC9dIAb4v6ACrhOkFkS90QLXDgR1SW7TeDd/P?=
 =?us-ascii?Q?NlKVL4YGmDonFdfvgrQbtRbm8SvWPXQH2cwR/rhPttntk31vnhs5Hz8ACVNN?=
 =?us-ascii?Q?ZaEWIVZRJT29oNfdrfpcf6Ce3wvejOOecT7eJWfhzVoAuRe7m7yFKJNhKWyq?=
 =?us-ascii?Q?zeQ6ENiFmt/3GKFS6Yx90+BCuWGb/0HVBzTXJHuZmmwvOt4EPV2/GOME5Dwl?=
 =?us-ascii?Q?hrIsAXrPh2Odaei7S1kDTsFxtP1/7gaNqwgjoMxPq7T5CQdeOW5UlyZmbAAU?=
 =?us-ascii?Q?KB8ckIJXYyPLiRH9ypkyEZKlUbrQ0HVkUlYL7/j13quBrPH+rZtTeaz9zszd?=
 =?us-ascii?Q?J18bAOprpi0u41mjoKrE9HnqnhSqqS/UFuwHJiMhhVaG7V6I45J2/tweksWB?=
 =?us-ascii?Q?Bszi0fI6zrHuCZ9lRFE+9ul9dI3PU1Lvg/wUY06elnohfxY3rKCqIMr+uItM?=
 =?us-ascii?Q?4tcI2WgtDztehxkUmR5c8hSUYLM3eluw49t5o2bCebBq9jJCqkLlu9DXQApz?=
 =?us-ascii?Q?G2ahDf1E2yHRp2aFeFOzOre+Sg9o3NndEv2mhV3OTAzRl70Z6AhZuRX8ORnV?=
 =?us-ascii?Q?T4mmbEdIkzJ0YoQqtJEGHwC0icccMQscUeu8ADG9/ed8/QGS76Pjp93GEqrX?=
 =?us-ascii?Q?3qHJKjwyHInhTHbEeU5RB4oYFkod5xggkavUXD3i7Sv2K/b3L7ZCzMPO+zI2?=
 =?us-ascii?Q?SaSgNATR9e4HMJ0i8iJshTMNM1nxF01GfW/p3Z0VPY7mteviCwW7hprlH0J7?=
 =?us-ascii?Q?/hZxTF5dnq0HQH7GxoXmjhf5VmiRZnB89rMfGlxY1wyp30JkjXZ4B1CM9AcT?=
 =?us-ascii?Q?7IHqOXTFyMabr5NVFt9RGxoHcLS3MIJi8VVuIUlG15lm6iP3bhyIuC8HrcgT?=
 =?us-ascii?Q?R1vmASmldEcpZbyxYTFx07SPcy5p1rrhbpBuU56xp66P9oHAA52Vu71dS2a5?=
 =?us-ascii?Q?aeccx7NBfCjaASZWb/hlgJPgx7heHYpKTf+r/EM5RvcPPUGyv4z/zJ8g3c8V?=
 =?us-ascii?Q?3FUhr33SnKaEka/GO8utOwl6+jOyMuEFCgNeBMY6rf2KQ2ccLrXMBLGR7bZb?=
 =?us-ascii?Q?gt2rCIg2tKRMm1ZG7Mpq0sC+5oFv/HDpMbPqgjeSJsIZ9jU2yiEHI7BFcT/s?=
 =?us-ascii?Q?PJi4h9MVOYp/mej+cLysXR9gRdwwx9JgizESomH0dB31B2sdxOrhS9zNUnX6?=
 =?us-ascii?Q?hcbWdUvXqwHHmdebOCS8v3iddpIiIzV6GE/JDCaPV75WaNTOr9El5amrpLfm?=
 =?us-ascii?Q?G0aNg80I2Uoppfk4BUKRr/x6G45D++3fPwhBg0HCjOpm/y9+rfHKCd4yYLv/?=
 =?us-ascii?Q?tFnoQab2xhpcvlTjZ2nsVf4lz8SkshXgXt0ER/vn1KjxNo1y14JHL4SoZMPM?=
 =?us-ascii?Q?WREFEHpX5GIFm3Zsdzo=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(82310400026)(14060799003)(376014)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2025 09:30:25.3357
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a2840836-5ea5-43cd-2d03-08de3c85be4e
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM1PEPF000252DA.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9936

Hi Michael,

> On 16 Dec 2025, at 09:26, Orzel, Michal <Michal.Orzel@amd.com> wrote:
>=20
>=20
>=20
> On 28/11/2025 10:58, Harry Ramsey wrote:
>> From: Penny Zheng <Penny.Zheng@arm.com>
>>=20
>> In MPU systems, we implement map_domain_page()/unmap_domain_page()
>> through mapping the domain page with a MPU region on demand.
> What prevents you from implementing the remaining few helpers?

Only the fact that they are not used at this stage, otherwise we would have=
 seen
a panic while running Linux.

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 09:32:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 09:32:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187787.1509114 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVRPt-0007zu-OE; Tue, 16 Dec 2025 09:32:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187787.1509114; Tue, 16 Dec 2025 09:32:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVRPt-0007zn-Kg; Tue, 16 Dec 2025 09:32:25 +0000
Received: by outflank-mailman (input) for mailman id 1187787;
 Tue, 16 Dec 2025 09:32:24 +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
 <SRS0=Qh75=6W=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vVRPs-0007zh-Jc
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 09:32:24 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1fae6003-da62-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 10:32:23 +0100 (CET)
Received: from SJ0PR05CA0202.namprd05.prod.outlook.com (2603:10b6:a03:330::27)
 by MN2PR12MB4109.namprd12.prod.outlook.com (2603:10b6:208:1d9::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Tue, 16 Dec
 2025 09:32:18 +0000
Received: from SJ1PEPF000026C7.namprd04.prod.outlook.com
 (2603:10b6:a03:330:cafe::82) by SJ0PR05CA0202.outlook.office365.com
 (2603:10b6:a03:330::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Tue,
 16 Dec 2025 09:32:14 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF000026C7.mail.protection.outlook.com (10.167.244.104) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9434.6 via Frontend Transport; Tue, 16 Dec 2025 09:32:18 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 16 Dec
 2025 03:32:18 -0600
Received: from [10.252.147.171] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 16 Dec 2025 03:32:16 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1fae6003-da62-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VIM/MQjA07To1ao8Ri4hM8YMsmug2BsBskKz4yBiBBCDeNdIBTPlyZHwLIbADFqo18ABlRuKPO72VeZhQe4CtOfxgeuLW7ZLYX+SRIVxZioAsSoFHPvu6/CJwz8QBeL4O98Pe7cw7lUN/AKrbSRVpr5MtMwqreb3GwzE5+2lFS3d3qRYMmmetQHJMEpjjY38CVSb2TinznFlvxWvNO1jKNICJ5jvJU4qJ6c5ZjTOrSvRS9DGOe837IgkGUPIFAA/ecJ9GHv25z7UkEq1BUZg7tn5D18WkmGjSp9YSbFKpbPjNQfVZGbJPRDW1J6uhM5ZMlyBvUiv1mIOVtaJ93bzmQ==
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=8+jxIl3GbyN6QxwQhAttbcHLSXFZooGin5+HOWX9JdM=;
 b=fiVJ4NNUc69sNe3kyhk/x9MBYAfvhwcyCpRMZUGX5RHTfKXRqrueXjZIAzVGHcL0pEw8Vl9YgGqO+m7E1/ZWtmzni49pWrQLC+JgidAiglkwPeC58uN7QtxivT3V8gtb9nLE+EHZ278tkcxPi6KIR2mhVcL4lXM8UIRa3h/Cv2PftN2DNSP4LrZku76mxw/IPWtlod9oe8PTEE2LotwAqUYll78Qf4HWA6yNabuNJZKZcSCEnkR8Zh+kTCzBreZ/tcAnhNtQPdgxQq7sWAaxsuHnp+kX6XK8qT7/I5VhzkU9iCOvMNmNqMugg1NM6TmESGJqNaYI9Yrwi4QDaHRzmw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8+jxIl3GbyN6QxwQhAttbcHLSXFZooGin5+HOWX9JdM=;
 b=t4MEKqDtIIQtcLMsBEv/0yIGUMzYWeIDknDPK6Y6kgX38aqR8nUC7W9SFnpZj9SG/Gq5FUFzrtMxZ7QPQAleddsPmMLUyScQRXwGmE55DpUm18UC8KFq4CWBpUkLsvT0eQClze2E5aHTwyF2AkGEgXCYPrt8OV1WMLUE7QqhfEI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <53055cb0-c71f-4134-9ca2-359d96f438ca@amd.com>
Date: Tue, 16 Dec 2025 10:32:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 6/6] arm/mpu: Map domain page in AArch64 MPU systems
To: Luca Fancellu <Luca.Fancellu@arm.com>
CC: Harry Ramsey <Harry.Ramsey@arm.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Penny Zheng <Penny.Zheng@arm.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Wei Chen <Wei.Chen@arm.com>
References: <20251128095859.11264-1-harry.ramsey@arm.com>
 <20251128095859.11264-7-harry.ramsey@arm.com>
 <4c3f8be6-2525-4387-9dc4-b5dfdbf41a77@amd.com>
 <CC6759B6-0341-4E8E-A038-7B50B22FFD89@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <CC6759B6-0341-4E8E-A038-7B50B22FFD89@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000026C7:EE_|MN2PR12MB4109:EE_
X-MS-Office365-Filtering-Correlation-Id: 278c9a15-bbe2-4782-e000-08de3c8601c3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NHZjdk5xcndiOVFsRVE2djdzazVOS2I5c05wdTRxV0FYdzVkTGVuRjI2SS9m?=
 =?utf-8?B?SSt5UExKc3p5aWhEMkRBNTlTc0JmOXo0OXlacHczeTBtczZZWGcyY3hVbmxQ?=
 =?utf-8?B?SEV0M2xQYVR5dVVhamhGSHl3MUpXaTRZWFdSbWMwUHlZblRXRFB5L0xISXcw?=
 =?utf-8?B?cVBVbFVpZGMrbU9scWVSbDVFVExWM3VEVWRnZjZwY3BzNmYvaWJ5MzgvM0x1?=
 =?utf-8?B?dC9NQ0lBYmFSUW1leWtzWWZFYnFxVjFjd2FsZXhSRkRDaGs0RC9zYjNJbkpk?=
 =?utf-8?B?L3VPVGlCQ1hhMzNtRnVvUklWQzNZeWhwNDZndkpGU1dLZGdXWndvQ2t4M3Y0?=
 =?utf-8?B?WHBRMjJSeC9weFZ1NzFhWXVVTU44T3JRcE0wajhWR1p1NmdGRHNDU2FnZ2tM?=
 =?utf-8?B?R1JiMGFTbHFyQ2JCZG03dlpOZGRuZCtJaU9mR0h4eEhhWGVyUUMxSUhkbmYz?=
 =?utf-8?B?a1RlNWxObG5VSmNQWEJMMVBkOWN1SGZMTHlzeXBtaW54aW53K01ueHdaSGdo?=
 =?utf-8?B?YUN0Z0FEd0pxNkZrRHlwY0hKMDdPRXlsMzlyZzFUUWJ6N3FJRWUxb01VdGNY?=
 =?utf-8?B?S2x5MU1xemxwazUxUzdUSThWcTltNXRBYk80dS92bWhiTkV1WkhVOUllRjlK?=
 =?utf-8?B?RVpBaURmZEwzQXlFRzI1akhPR3ZLbjFPWEoxQndmZExITkJqNi9OTXJLRHU4?=
 =?utf-8?B?cTRNWmlwQmtyK1JGekFRak1GKzhHcWtRbVdiUjdxVjhOMDMyTHdoNFBOcVpo?=
 =?utf-8?B?QXViNTMrZnBBU1I0U0NCN1QrcFJad05yNkM1N2I5VE5ReXZRcEhhTG00Rzlz?=
 =?utf-8?B?ak1kWGVGRkZLQWFmOHF3L2Z4TnFhRGZ0R1ltY1N3RWhGTGFxdk44b1ZvQnVt?=
 =?utf-8?B?VHZPcGRtRlNzNUZGTjJSZGNXazh4ZVl3MEF3QkFTcWJZcGZCdVpMME04RDlC?=
 =?utf-8?B?Q0lQRkw5OEhSeDZzMnl0QzVuSC9KZlQ0bVFNVnlnamhRQ3ZUNHM3Q2w1bkMr?=
 =?utf-8?B?dnh5SW9tWGZ5eVBqb0kvN0s3MkV5bCtwOWF2M1p0K2pnTDhRSUU4WHVmQUxK?=
 =?utf-8?B?SWNySWUrMUgreGZrdEZZSERpUy9Odlo5VVFwRWxQT1o3bEY5NUcrdTBXeDZL?=
 =?utf-8?B?dldtV2hiRGw0c2Y3czNxZHdkSW81Vi9jUGc4NUhUUWRlTE1tZGZ5b3VGSnZL?=
 =?utf-8?B?VTN3ZG9FdVhITDdnVjhjN3NkVWRFYUV1aXJ5Z0V2dlBUWnV3ZnF6L0RFTVha?=
 =?utf-8?B?NnBadHVsWmNkamZTUjVZbms0OFhiZWtTalhYemNvajg4ZFRzOHAwcUJ1ZWZY?=
 =?utf-8?B?TVdIZ0kvbytnR0daeWNSbEdJSVBkS2VNMVJNaGExZmYxT1prNnJtNmJySnNL?=
 =?utf-8?B?L2FqSlhpOVBLWnBaMS80T0tJLzVKbW1QNzFVZ0dYTHYvelQ3NEs2WU5sc1NX?=
 =?utf-8?B?R1psQkpCUHUrV3NhTlZGU2F1VVRHVVZtcjhiWHBoMUJpaStnUFcxaTVpQjhq?=
 =?utf-8?B?b0R1VUltK0pubmtwK3hFaFY0TDlQbW15RzA1R1cvYWhVQXdGd2RFV0dnQUVU?=
 =?utf-8?B?NVVPbTBUUUhvdk51QkxISnFsdC9KMHZhNldLckJ3NE05MHFuU1NHLzg5NDRq?=
 =?utf-8?B?ZjZnZzlqQjBydVN2U3FFc2x0OWVsdjMrK1RLTnljYmNHWGxrZTlpcTFjVGhW?=
 =?utf-8?B?bFJneUM0RDdUWktvbHBwSS9Fd3hzYVhaTU9tOWc1VnA3MVlvczh0dzB0elZ3?=
 =?utf-8?B?VTdMMTN2R0dFZ1VLU2pzd2k3Z1k0ZVRBWVBva01NRWU0cWNCM0NSOGUvU2lp?=
 =?utf-8?B?cWNIMHkrQUFGSi9HQjFSUTcrenJiNldIOS9IYXgwLzRsbHMrRG9pNy81L1JQ?=
 =?utf-8?B?SU5XNVMxaFBkY0w5WTRTSjVwblp0akQva3pjSGZJSW02cktGMUhIcnQ1S01K?=
 =?utf-8?B?L0RRK3hFNnVxMHpBSGtFRUxGUTFoLytaOXlNVFM5aXBxRVJMQkpNcGZsYzgv?=
 =?utf-8?B?LzdoSDNxTmh3Vi9wbjZCQmFPeDRISVRKdHBPRUZLZ01PRXVIVFMxWVBTbUs2?=
 =?utf-8?B?YlhoYU9VRlFHSzNma3d1SE0wY3dTaTVUcFo1aDhnNG14R2dkQXQyaFdycEtk?=
 =?utf-8?Q?hY0U=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2025 09:32:18.5282
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 278c9a15-bbe2-4782-e000-08de3c8601c3
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000026C7.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4109



On 16/12/2025 10:29, Luca Fancellu wrote:
> Hi Michael,
> 
>> On 16 Dec 2025, at 09:26, Orzel, Michal <Michal.Orzel@amd.com> wrote:
>>
>>
>>
>> On 28/11/2025 10:58, Harry Ramsey wrote:
>>> From: Penny Zheng <Penny.Zheng@arm.com>
>>>
>>> In MPU systems, we implement map_domain_page()/unmap_domain_page()
>>> through mapping the domain page with a MPU region on demand.
>> What prevents you from implementing the remaining few helpers?
> 
> Only the fact that they are not used at this stage, otherwise we would have seen
> a panic while running Linux.
Sure but it looks like that they would also be a few-liners hence there is a
feeling that they could all be done in one go for completeness sake.

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 09:58:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 09:58:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187805.1509136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVRpC-0003Mv-Up; Tue, 16 Dec 2025 09:58:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187805.1509136; Tue, 16 Dec 2025 09:58:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVRpC-0003Mn-RC; Tue, 16 Dec 2025 09:58:34 +0000
Received: by outflank-mailman (input) for mailman id 1187805;
 Tue, 16 Dec 2025 09:58:33 +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
 <SRS0=Zuqr=6W=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1vVRpB-0003MB-IB
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 09:58:33 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c780dbc7-da65-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 10:58:32 +0100 (CET)
Received: from DUZPR01CA0289.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4b7::20) by DB9PR08MB6619.eurprd08.prod.outlook.com
 (2603:10a6:10:257::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Tue, 16 Dec
 2025 09:58:29 +0000
Received: from DU2PEPF00028D09.eurprd03.prod.outlook.com
 (2603:10a6:10:4b7:cafe::b0) by DUZPR01CA0289.outlook.office365.com
 (2603:10a6:10:4b7::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Tue,
 16 Dec 2025 09:58:41 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU2PEPF00028D09.mail.protection.outlook.com (10.167.242.169) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.6
 via Frontend Transport; Tue, 16 Dec 2025 09:58:29 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by AM9PR08MB6257.eurprd08.prod.outlook.com (2603:10a6:20b:2d4::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Tue, 16 Dec
 2025 09:57:26 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9434.001; Tue, 16 Dec 2025
 09:57:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c780dbc7-da65-11f0-b15b-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=h2FPB82m1u4u7FSjE+ZxwcZGI1KHXxJdsYeMPicQJIMoNdkZ0DgcYayhPbiDflMD5WVryfXQrXIoEOuasgllLFSPMH3Dt3ZGTbvXbwQr+5+71qnb3VYvzOfJPLP9/MT/h3TmKgC8ZVJVZXSk7GJvtNCAarCE2/YmVa+yAMEOivd9Tn6mUGjnP2d1CcdQcixk+EUgEnX9PBsyhxj6FV5g5iwmytUC5ZItsIzqNDioxNC68vUXjUHAdDsmnb6sqTtNeGSrI3SurVShkmtqg4xELCPt/oTXwvul8Ny/kOmeTD9H8cZymbIPmeMSJCckpaYxY+g1S5/85PeIaya2hzStjA==
ARC-Message-Signature: i=2; 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=u1bmVrLVopNDImED7cXFe6GHn6MJWyZPipjvJyan0Wo=;
 b=YvckqS0WBbdaACrrjRQQnaKdGuIf9Qh6bnk4iABzLJ/AWUmZ9bCoTJsIxai5XkKp5mOXQ8Sw4FOEbJd3aoNTDEN4UxEEuIFhI66HsV/deTdyN86MkFhLWP23EdNhLpFuK6DtCpbwD6mTdaKD7JHAfPibV8n5F1pw5OPPF2ZNkgCC1LRq/Zek0L8sgtNqlFd8kCMOHkQYOfd8NuiW70g7vLvXJL482TcJ/2Dfz3ibb5yiSvLnEqHA7cVBbRl8EGlRxVWrEchZtYfYSpcMHeu+nAIs8cahs9OHBDyLghIHPYfwnOl5lt4YIgDlX2rqmse+Ba2tPm6FBjSjXGHNRWssjw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=u1bmVrLVopNDImED7cXFe6GHn6MJWyZPipjvJyan0Wo=;
 b=OA7RSpMe4Re98A3cterN4XTmCU+YXwwn65NfpkhQT7rYwD4HCkyY82CzYPH2pwokIwoRG7gSbKqQQcOKHQsWmLHr8d+p7OvmnrXZCUIJbm0fDWJVQXMcgcwh0/bT0lCH6l7yWXvIBNMHFSqrOzLObvwz7PsbOwGC3mlI/II3ujM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jwuRb5v+9WrsViFeV1iPwA905jvaqj9rui9RpYwKribVbKc5hUwswns1Fu0kHRnIxFRN8pOvLDHHQwZj7+IrD69wJU9/Xq2E6xknbTWtec+kZ1wvw7vDryIICjWXxAkPf4iyjRo977HA5Nhch2N5iW3gW9wq9HBTTTPHLKOinembcT0uWdZ0ryyFNClr4GovI3AHErutL+7nzCtExkGzhwiPg6E8ktoI1UNSUzMmMzbDxESTiCLGAjNaamAlToGPsXiQGBPmPfyx6qIEp2yWb1IRjB3rE/QF7AOwzJmYvwi0ASdBCOOH7tzdpR1Gr0oJ0IVOmR7vBKBsexOPM95FdA==
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=u1bmVrLVopNDImED7cXFe6GHn6MJWyZPipjvJyan0Wo=;
 b=wk1v+Vite67Kzi+IuSk51DKTC3Ae8GxmfK98cLdoirbuw+IZYwMC3wSfyEYG9DOuyseA3Qn5LmWlnUVdy4dqnI3dDNtv6mxxqpH9PJFdu/Mgq6UC49X4ifHdvMl8vq/OpGAX9ZYk2z47tMEfrMMJTMVW/uS4Focd/r9MZUGJfD2YixQD6CTeOyONL6GKifC5wrSwWLk0RDVdCPQixnq6yRyGGHmOpXvQ6nKsrqK53ZE0MH1EQB7B+e2icaGD+4SVSqLY32oGqoQUECot/u3SKXUI9ehFMAzdMBRj2yOFUMtxyLSMulZeecfXze0LllJAtP41AaJtMHrbgoGOqgYRNA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=u1bmVrLVopNDImED7cXFe6GHn6MJWyZPipjvJyan0Wo=;
 b=OA7RSpMe4Re98A3cterN4XTmCU+YXwwn65NfpkhQT7rYwD4HCkyY82CzYPH2pwokIwoRG7gSbKqQQcOKHQsWmLHr8d+p7OvmnrXZCUIJbm0fDWJVQXMcgcwh0/bT0lCH6l7yWXvIBNMHFSqrOzLObvwz7PsbOwGC3mlI/II3ujM=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Orzel, Michal" <Michal.Orzel@amd.com>
CC: Harry Ramsey <Harry.Ramsey@arm.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Penny Zheng <Penny.Zheng@arm.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Wei Chen <Wei.Chen@arm.com>
Subject: Re: [PATCH 6/6] arm/mpu: Map domain page in AArch64 MPU systems
Thread-Topic: [PATCH 6/6] arm/mpu: Map domain page in AArch64 MPU systems
Thread-Index: AQHcbm4YR0/90zis5Uafj3gh5AdGL7Uj/+kAgAAA9gCAAAbjgA==
Date: Tue, 16 Dec 2025 09:57:25 +0000
Message-ID: <3907164B-3808-4A8C-A86E-F7D9CF8F1221@arm.com>
References: <20251128095859.11264-1-harry.ramsey@arm.com>
 <20251128095859.11264-7-harry.ramsey@arm.com>
 <4c3f8be6-2525-4387-9dc4-b5dfdbf41a77@amd.com>
 <CC6759B6-0341-4E8E-A038-7B50B22FFD89@arm.com>
 <53055cb0-c71f-4134-9ca2-359d96f438ca@amd.com>
In-Reply-To: <53055cb0-c71f-4134-9ca2-359d96f438ca@amd.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|AM9PR08MB6257:EE_|DU2PEPF00028D09:EE_|DB9PR08MB6619:EE_
X-MS-Office365-Filtering-Correlation-Id: 229551c7-aeeb-4e46-e2c5-08de3c89a9ec
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?cTExM3ZLaVBFbTNGSUJRVWRvLzM5OVkrZlpUMllmakZmRzZOUjltcjlsQnZq?=
 =?utf-8?B?ZkdOZTl4VVZLUUdoQU1kRHhyNUpUS2FkbTBjYzJucWVQMGFTOXdTQ0x5T3Yr?=
 =?utf-8?B?Ky93UUtXQUY0ZlJUb2J0SVdnOGJwTUxYbFIzejh0ZGdtNDVPbDNlV3FmRXlP?=
 =?utf-8?B?cnVZdklkMXlhVnIwdXJKZER5clFyNlBKaVpCbkluY0t6NWRYMzlKeGROMTJU?=
 =?utf-8?B?aW1xcHhHa1NTSW1neFBFUm5oa2ZzQkczY0VhNFZ1UDZCM0dVQ2dQOTMzWWhH?=
 =?utf-8?B?czdBdUIxUEVidzlWQklCVWk4SUFnSlIyc1FkZGNKenhRa0o1VFVvRDgxeEoy?=
 =?utf-8?B?cGpqMkhEem9ZTUoxbS9OWndKM0JMVFdwZUhrVk9uWElIMDMxMk9JUVRtV1V5?=
 =?utf-8?B?WS9iZ3oxdTFxbWZpQStKdEFWTWJ3NFZMY1g0bHpuZEgrbkcyZHBGWjIwbVdr?=
 =?utf-8?B?YVdvS2Z2UXJHVEI0OGVnM1h1Q0lveUxHVENhQ3F0V05GY0ZGdVEySU1TL3Nt?=
 =?utf-8?B?RGlDNWJhdFlrSVlIMW1DMkZDYmhGc2tiMjl5c2tmNGN2RmdmVVY3eXVNZVdk?=
 =?utf-8?B?Z05GZktPVWk0OGZ4RzNISG80UklxU0FjWXVBcWVzZmVMMFZnTnBDSWd5RUQy?=
 =?utf-8?B?NGxhbUZLNUx3T0RjcjdpamxFYlNiVHUvTVdFOCt5VlFzQVMzRWQ2NzNkNVZS?=
 =?utf-8?B?ZUdzSXRkZithSG9OaWhoNWluZFMzTCtOcGpGTEYvbnRmTUp0QlN3eTNBaGZs?=
 =?utf-8?B?cy9CVllTU1N6azhHZDNLalNwNEV0VWxKV2JmSnJTZS9LU0RiM0hIMnorV3VL?=
 =?utf-8?B?bHZLZlpjd1d6YWVha3ZrcG9jT3BLb2d6QjdUZXJDOWJOUTVjdnVzMVFDWWNj?=
 =?utf-8?B?cnFsL2pBRHU0bXFndWMzQlAydzEvNXV4TXMvM0ZZUlhDN29TUVVjUktodlh2?=
 =?utf-8?B?aHlvVmRnMmtKZFRmWUFqbEpHbE9RSThLUmg0RkQyL2VpOGwrTW1Yb1JHaTJt?=
 =?utf-8?B?Y2VMUmpTUU9rUDNJQ29QamVPSHhCd0xIQWdabXpRS1dUUWpQV20yVTVZWlJx?=
 =?utf-8?B?bnNNR3JMS3M1ak56UGpRaEc3cmZZUUl5bHBwNlQ5WGNUVHJ0NUhvcTZ2TzFo?=
 =?utf-8?B?WWxOYTJBYVdleWt2bWx0cDRTK1BNZWNRT0RRcEhLSHU3bHpGamtoRGlKQjRn?=
 =?utf-8?B?S2NtTkxJWTFrdEs1ZFB4WktRRlpCNFI3aEJMbUt1TVB3YkpscDA3NllFUTVY?=
 =?utf-8?B?L2JKQmJJK3AxSXpMU1VuTWRoTUltUHRCdGxubEhMeWJpSWpDQXlPVkNmcVBM?=
 =?utf-8?B?N0pzTVk5M2Y5dG5XaEJtakxuWTVLYkU4d1UyN3plWkhqbkhLN1FLVzRMd1R5?=
 =?utf-8?B?NHZUSU1HUW9NRU9lbURVRitMelVXa0lLNkpKSjBjVTllNnNkQzk0V2tCQ1I5?=
 =?utf-8?B?b3orSS9iMVVsR1V4cXlyZG1FZUVGY3NydGJ4MXNnSTJUYkVob0JtTVZUa0hN?=
 =?utf-8?B?VlpvU2R0ZVFETXlwSlpUd1NQRnQvbzhEOG5SdEZEcHdudFJXYWNhQ09zaUlQ?=
 =?utf-8?B?VkpXbVRzMUVIbmlpaS95ZkIwcTRWWGNTeDRIL0ZZVkFoZlU5WUQ5eDdIM05G?=
 =?utf-8?B?NmJMaUh3aWpEb0xaL3pqMm11d05IOVQwd2RZSmZDblhILzNPa3RLSUszeVlr?=
 =?utf-8?B?Uy9FQktVdStPUTFwa2pmQW9KMDNHWDZVeWVqdWhoNEwzZmJjMm02a0EzazBG?=
 =?utf-8?B?NEpPNmN2aW5wbUtvT2U5ZzlpRGdxYzcwWVVOMDJuNFd4WVhsRWYyOUt1MDV0?=
 =?utf-8?B?cmRubE5tZThaQS91UVpVa0lkVUNDRmtGRVNhOU1ZbHo5YmdmdC9YRUFtNnh0?=
 =?utf-8?B?UERzRVZ0NVhUS0tFbzYwZ1A2TjhsY1c1QnF6ZE1Ca21FZDBKNGhsRVlIOVpF?=
 =?utf-8?B?YmQxRUJrKzIwazl4ek92QzZTaVdiVWRadDVvZVE0cmFWS2o2ZHQzT1V6bkp5?=
 =?utf-8?B?Ui9HSzNaTFQ5QkY1RThnQkNCYzE0S0hiZ1FhN0hVS0UwSmN1NXNudTJUYWg3?=
 =?utf-8?Q?vr6+v2?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <1B56ED2C7DEF1F428733D7800BDBD15D@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6257
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU2PEPF00028D09.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	9e1ee472-cdca-4544-65e6-08de3c89843f
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|14060799003|82310400026|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Wlo0a1RTOE4vRGRkcTBpNmM4a0hBdTZBYThxci9qNm9LRnorS05NS2YvTi9T?=
 =?utf-8?B?dHRCQkRLejQ3OVVBMHFUZWRpTXZlQVU3QU5kSFF0NFlWamx3NTZUaWR0R1Rh?=
 =?utf-8?B?NmFhWCtiOG4zTG5ENjZFWTByMGo3WkVnQ1BCRzVJdUh2eW1uaGNQY2tZdVh4?=
 =?utf-8?B?bmFHVStsbkZ0QjN0NmxJRzRkYlFwa3lsSWhvclpXMzFsQlV6RUgxdm9BdE1W?=
 =?utf-8?B?RlJRYzFjZTgwWTNzY0oxdEdQSFZYVkdUU25oZ3hvNkt0UWs5QjhlczFJV0pl?=
 =?utf-8?B?b01obmdpTjZ6Q1lLVHRaeUNpcTNsYW9FbjhQMlVSS21ieitLSTQ5WkZ1TUdq?=
 =?utf-8?B?TG1VeHVET3M3eHI2OUlMSTBYemxYZnMrbXZkc2dKQi8yTWxxNDVVOEZuV3Fh?=
 =?utf-8?B?Rm1Bc0xqdWtwYTliaUZZUktlR2NVU1hWN0ZQaTZYeExZQUt4VzNCd0R0dDFG?=
 =?utf-8?B?YlZpZEpLTG9RaUR2d3c2WURuWkpnQTJpc2tnR2liSC95cWpINCt4R2dmMUhr?=
 =?utf-8?B?K3o0d28yZzlGSFF0OUpQci9ybCtZNXhENmFYV0xVRkJpMlZNK2k0Y3d4bklG?=
 =?utf-8?B?WU1JTTFKaDFNVXN5NjBRaGwxYnQ4cVdLUmU2cWxybkl4aDJLbUZINUJNNkJs?=
 =?utf-8?B?bzFteWQ3T0FNSXVMUXU3KzJDL2JMZThxRktJVWRRUzRXZmx0N1BUS1MxK3p6?=
 =?utf-8?B?MjBFY1lHS3JOaC96Qi9NZ1ZIYkx1d2o3LzBOanRUcmsvSUU2UDhXTXR6SWtl?=
 =?utf-8?B?WEwrOUE2WS9nUVBiQUxaWkIyMndzZnFFQnl0S0s0ZWNFbks2RmtaRG5zNXR4?=
 =?utf-8?B?Z1BrdXQwQTRJaUtIbDhIWWk2bTRrd2Fid2N1amdLL0o5WERGNHMrd0R6VUlh?=
 =?utf-8?B?R0o1WStvOERPVjAxYnM3Yjkvdmh6cng2MGRvQkk0NDVHcldBWVg2SVFGK2Ux?=
 =?utf-8?B?bGtGK05La0hwUXhaRzFlRmlPbnR3SFI5STZvd2xURFBKK3dsd3pWbkxsWXBM?=
 =?utf-8?B?RCtWY2hDQ3dXbStFQmhSdmdTQTIxYkxzNHgrZDhQVStXalNNM05OMDVFS0tT?=
 =?utf-8?B?UTYvWURES3IwVmRWaDlNVXVxdWVpZzBmYm5DOGJYR2FJNHBZWGMrS2VMVGlQ?=
 =?utf-8?B?VHNEcXBJWDVpU2ZYczNlS2I4UmJrYVllVUlIWEpISVBHWWsxOVlVU3lnVU9X?=
 =?utf-8?B?dmlNem1UZU1lVGNZTEs4STZpU3dZUnNmcFhzeE9PWWxmdDBqRVB0cmVxaWxm?=
 =?utf-8?B?dHo5cFdaWUFxY2sxOXR4VXp6aVZUYUlPbE9COGwzTzFDSFVMMjBIK3hKZzNJ?=
 =?utf-8?B?eXJOWU5WWUR0SEZuV0xPcWJGVWNrQi81bVdNZ3M4NUxaenNNZ1RxVWVic085?=
 =?utf-8?B?K0l5WHNWL0pkazkrT1dBdTczQVZpTVFZVVo4aGxlUmZRcm5TL25ETUZBbkVU?=
 =?utf-8?B?bzNNL203V0NMSWlDSEVYZGlwQ1ZlclFCb3pRNUw5V1pZMmpCbzNWeXA5OXpx?=
 =?utf-8?B?Y2Y2MjhYcU0wYjVCVFhhd1diNmdMdXNzWEw5Q1h6VnphUEg0bFd3dStNZHlV?=
 =?utf-8?B?YnpKWStNclphS1ZYYWNtMXlsS3puMUFsK2dKU3NFdXdPNFRuTlU1L0xJNFZz?=
 =?utf-8?B?OGg3Z2EzRFhCZGFLc0QybE9CT2RxdERIWnU4QzJhNWtsQ09NbGRVVzA5VWxT?=
 =?utf-8?B?SGVKdy90RDU5aVVTRzEzY0NCcDdiSzZCQmhmQm5yR1grOXBHKzFIZ3kzeW9V?=
 =?utf-8?B?WkJpYk5nNzV3L0FSNjRSSytVbUVwM1F6eU96L1M4Q1BaYzZjSkoxODZoMjVD?=
 =?utf-8?B?RzZEMmZvSjAwalc0ZW14Yk9rdEdkNkduWDhOUUZEb0VNVDRsWVRGeWtxNDAw?=
 =?utf-8?B?eVNGYlVCeTdpR0dOZlNCeXRlQnpCcXkvcU1rUkRZVHVOS2tIU3Nxc3hjUWVP?=
 =?utf-8?B?MVBRVnRTYkdDVXg0VUp3a09XK0tVOTI5M1QzYXp0alErN3JrUlQrUU8vdEZZ?=
 =?utf-8?B?UHNpTWJjdFJYa1hXWVNSZ3M0d21vWmtmTVpIZVJZUlErdHVTR3FhVW9xUExp?=
 =?utf-8?B?QkVrbXNGdng2MmFJdFVyQkZUUVoydmt2V1V3YnMxZ1VqRHd2U3h6RFQ2Z1N2?=
 =?utf-8?Q?BQdQ=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(14060799003)(82310400026)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2025 09:58:29.1268
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 229551c7-aeeb-4e46-e2c5-08de3c89a9ec
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU2PEPF00028D09.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6619

DQoNCj4gT24gMTYgRGVjIDIwMjUsIGF0IDA5OjMyLCBPcnplbCwgTWljaGFsIDxNaWNoYWwuT3J6
ZWxAYW1kLmNvbT4gd3JvdGU6DQo+IA0KPiANCj4gDQo+IE9uIDE2LzEyLzIwMjUgMTA6MjksIEx1
Y2EgRmFuY2VsbHUgd3JvdGU6DQo+PiBIaSBNaWNoYWVsLA0KPj4gDQo+Pj4gT24gMTYgRGVjIDIw
MjUsIGF0IDA5OjI2LCBPcnplbCwgTWljaGFsIDxNaWNoYWwuT3J6ZWxAYW1kLmNvbT4gd3JvdGU6
DQo+Pj4gDQo+Pj4gDQo+Pj4gDQo+Pj4gT24gMjgvMTEvMjAyNSAxMDo1OCwgSGFycnkgUmFtc2V5
IHdyb3RlOg0KPj4+PiBGcm9tOiBQZW5ueSBaaGVuZyA8UGVubnkuWmhlbmdAYXJtLmNvbT4NCj4+
Pj4gDQo+Pj4+IEluIE1QVSBzeXN0ZW1zLCB3ZSBpbXBsZW1lbnQgbWFwX2RvbWFpbl9wYWdlKCkv
dW5tYXBfZG9tYWluX3BhZ2UoKQ0KPj4+PiB0aHJvdWdoIG1hcHBpbmcgdGhlIGRvbWFpbiBwYWdl
IHdpdGggYSBNUFUgcmVnaW9uIG9uIGRlbWFuZC4NCj4+PiBXaGF0IHByZXZlbnRzIHlvdSBmcm9t
IGltcGxlbWVudGluZyB0aGUgcmVtYWluaW5nIGZldyBoZWxwZXJzPw0KPj4gDQo+PiBPbmx5IHRo
ZSBmYWN0IHRoYXQgdGhleSBhcmUgbm90IHVzZWQgYXQgdGhpcyBzdGFnZSwgb3RoZXJ3aXNlIHdl
IHdvdWxkIGhhdmUgc2Vlbg0KPj4gYSBwYW5pYyB3aGlsZSBydW5uaW5nIExpbnV4Lg0KPiBTdXJl
IGJ1dCBpdCBsb29rcyBsaWtlIHRoYXQgdGhleSB3b3VsZCBhbHNvIGJlIGEgZmV3LWxpbmVycyBo
ZW5jZSB0aGVyZSBpcyBhDQo+IGZlZWxpbmcgdGhhdCB0aGV5IGNvdWxkIGFsbCBiZSBkb25lIGlu
IG9uZSBnbyBmb3IgY29tcGxldGVuZXNzIHNha2UuDQoNCnllYWggYnV0IHdlIGRvbuKAmXQgaGF2
ZSB0aGUgY29uZmlkZW5jZSBpdCB3b3JrcyBiZWNhdXNlIHdlIGNhbuKAmXQgdGVzdA0KDQpDaGVl
cnMsDQpMdWNhDQoNCg==


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 10:08:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 10:08:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187814.1509145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVRyg-0005Bc-Q2; Tue, 16 Dec 2025 10:08:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187814.1509145; Tue, 16 Dec 2025 10:08:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVRyg-0005BV-NS; Tue, 16 Dec 2025 10:08:22 +0000
Received: by outflank-mailman (input) for mailman id 1187814;
 Tue, 16 Dec 2025 10:08:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jT/p=6W=bounce.vates.tech=bounce-md_30504962.69412f8d.v1-74f08a6edcc549c793f4b5dd515270bb@srs-se1.protection.inumbo.net>)
 id 1vVRyf-0005BP-6s
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 10:08:21 +0000
Received: from mail186-20.suw21.mandrillapp.com
 (mail186-20.suw21.mandrillapp.com [198.2.186.20])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 22688576-da67-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 11:08:15 +0100 (CET)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-20.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4dVt0s4B7NzFCWtpf
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 10:08:13 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 74f08a6edcc549c793f4b5dd515270bb; Tue, 16 Dec 2025 10:08:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 22688576-da67-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1765879693; x=1766149693;
	bh=F9FK6axYLMyEWWB4TkV/gZ+MceqbjwNwadiM4VDNDkU=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=zSBuNerVNUE9UmTKEa2o7Kn3B5RX6fbnqpyKoPWKxGa1/V+T9gfYM22ipWLDQQpJp
	 6HpVVVJJoLzHmU5W0hmoZcBIAWICcYvbmDoVwpGCgBATUiRTNalvHMaES5zMU2wH4e
	 nvy0tobQxmwraq7hAvJPYhwcQTSco+cSVz5cxO8Ey7gtq0uHtc1fjyOueXatFf6McJ
	 2kww/Uf4RFuOBIe8R72oLoS33r8WLr8Cehq4f6/9BoBofwa1/uYBNtYetY9/9aRFQX
	 u/P2ka9IeTMIng+Qb6TVhZ6PNGWpoNbreYg+orRt0LGz6U2vWE/jbXHD/zuojJynVo
	 xAP6BQpWBW1RQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1765879693; x=1766140193; i=teddy.astie@vates.tech;
	bh=F9FK6axYLMyEWWB4TkV/gZ+MceqbjwNwadiM4VDNDkU=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=jiMMyQjaneDlfTb6P9TZx2PuZ7XNL238+TRzL3TSUuG5F8rwVOUFteoIu6PyQPabJ
	 6bqAQrFASAM5hHIxFD96mg0cm1Tp8j+EcgTtZCIG+ki+JtTIIO2bl6ZcNqbBL1Kutm
	 NGUXmmzOz4G+76RtGfRIAR7zPlkEFone7qmSfFt8gs2/OaHekB3ZRadWJLh1zejAIV
	 d5iSmh3jBrg0SrDNB/fcfc04+lrqA9m2PyJA2qJuswOBB8/H16WIzwV/SxJd1oxanr
	 TkORmOPgWTojw+T1z0Auky06ldq/4hM0oWxjs0SZR1MLhfraPiXB1w65e3qIA41iv0
	 zLkQV4szMhy6Q==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v3=202/2]=20x86/AMD:=20disable=20RDSEED=20on=20problematic=20Zen5?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1765879692590
Message-Id: <c4f7c28c-c5da-4c52-b243-a07dea8bf201@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>, xen-devel@lists.xenproject.org
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
References: <0b15a3fb-6ce4-4bf7-a235-073742fff35d@suse.com> <05012660-b93f-4439-a383-ff6e8e8d9566@suse.com>
In-Reply-To: <05012660-b93f-4439-a383-ff6e8e8d9566@suse.com>
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.74f08a6edcc549c793f4b5dd515270bb?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251216:md
Date: Tue, 16 Dec 2025 10:08:13 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 16/12/2025 =C3=A0 10:03, Jan Beulich a =C3=A9crit=C2=A0:
> This particular variant has an error that causes 16- and 32-bit forms of
> RDSEED to frequently return 0 while still signaling success (CF=3D1). Ref=
er
> to AMD-SB-7055 / CVE-2025-62626.
> 
> Relevant data taken from Linux commits 607b9fb2ce24 ("x86/CPU/AMD: Add
> RDSEED fix for Zen5") and e1a97a627cd0 ("x86/CPU/AMD: Add additional fixe=
d
> RDSEED microcode revisions").
> 
> Like for the other RDSEED issue, the same command line override can be
> used to keep RDSEED enabled.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> See "x86/AMD: disable RDSEED on Fam17 model 47 stepping 0" for pending
> opens.
> 
> The choice of using AVX-IFMA to tell Zen6 from Zen5 is somewhat arbitrary=
;
> a few other features could equally(?) well be used.
> 
> I will admit that I was on the edge of switching to a table-based
> approach. (I'm also not happy with the case 0x44 layout, but keeping the
> "break" on the earlier line triggers [imo bogusly] gcc's "misleading
> indentation" warning. We could of course move yet farther away from the
> Linux originals and use switch(curr_rev >> 8), like we do in
> zenbleed_use_chickenbit() and amd_check_entrysign().)
> ---
> v3: Incorporate another Linux commit. Cover Zen6, assuming it is
>      universally unaffected.
> v2: New.
> 
> --- a/xen/arch/x86/cpu/amd.c
> +++ b/xen/arch/x86/cpu/amd.c
> @@ -863,6 +863,28 @@ static void cf_check fam17_disable_c6(vo
>   =09wrmsrl(MSR_AMD_CSTATE_CFG, val & mask);
>   }
>   
> +static noinline bool __init zen5_rdseed_good(const struct cpuinfo_x86 *c=
)
> +{
> +    unsigned int curr_rev =3D this_cpu(cpu_sig).rev, fixed_rev =3D ~0;
> +
> +    switch ( c->model )
> +    {
> +    case 0x02: if ( c->stepping =3D=3D 1 ) fixed_rev =3D 0x0b00215a; bre=
ak;
> +    case 0x08: if ( c->stepping =3D=3D 1 ) fixed_rev =3D 0x0b008121; bre=
ak;
> +    case 0x11: if ( c->stepping =3D=3D 0 ) fixed_rev =3D 0x0b101054; bre=
ak;
> +    case 0x24: if ( c->stepping =3D=3D 0 ) fixed_rev =3D 0x0b204037; bre=
ak;
> +    case 0x44: if ( c->stepping =3D=3D 0 ) fixed_rev =3D 0x0b404035;
> +               if ( c->stepping =3D=3D 1 ) fixed_rev =3D 0x0b404108;
> +               break;
> +    case 0x60: if ( c->stepping =3D=3D 0 ) fixed_rev =3D 0x0b600037; bre=
ak;
> +    case 0x68: if ( c->stepping =3D=3D 0 ) fixed_rev =3D 0x0b608038; bre=
ak;
> +    case 0x70: if ( c->stepping =3D=3D 0 ) fixed_rev =3D 0x0b700037; bre=
ak;
> +    default:   if ( cpu_has_avx_ifma ) fixed_rev =3D 0 /* Zen6 */; break=
;
> +    }
> +
> +    return curr_rev >=3D fixed_rev;
> +}
> +
>   static bool zenbleed_use_chickenbit(void)
>   {
>       unsigned int curr_rev;
> @@ -1130,6 +1152,28 @@ static void cf_check init_amd(struct cpu
>   =09=09    !cpu_has(c, X86_FEATURE_BTC_NO))
>   =09=09=09setup_force_cpu_cap(X86_FEATURE_BTC_NO);
>   =09=09break;
> +
> +=09case 0x1a:
> +=09=09/*
> +=09=09 * Zen5 have an error that causes the 16- and 32-bit forms of
> +=09=09 * RDSEED to frequently return 0 while signaling success (CF=3D1).
> +=09=09 * Sadly at the time of writing the fixed microcode revision is
> +=09=09 * known for only two of the models.

Is it still two models ?

> +=09=09 */
> +=09=09if (c =3D=3D &boot_cpu_data &&
> +=09=09    cpu_has(c, X86_FEATURE_RDSEED) &&
> +=09=09    !is_forced_cpu_cap(X86_FEATURE_RDSEED)) {
> +=09=09=09static const char __initconst text[] =3D
> +=09=09=09=09"RDSEED32 is unreliable on this hardware; disabling its expo=
sure\n";
> +
> +=09=09=09if (zen5_rdseed_good(c))
> +=09=09=09=09break;
> +
> +=09=09=09setup_clear_cpu_cap(X86_FEATURE_RDSEED);
> +=09=09=09cpuidmask_defaults._7ab0 &=3D ~cpufeat_mask(X86_FEATURE_RDSEED)=
;
> +=09=09=09warning_add(text);
> +=09=09}
> +=09=09break;

Do we still want to disable if we are running in a hypervisor; we can 
expect the host to emulate the instructions to workaround the issue ?

>   =09}
>   
>   =09display_cacheinfo(c);
> 
> 



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Tue Dec 16 10:37:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 10:37:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187826.1509157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVSQk-0000ml-Vc; Tue, 16 Dec 2025 10:37:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187826.1509157; Tue, 16 Dec 2025 10:37:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVSQk-0000me-R8; Tue, 16 Dec 2025 10:37:22 +0000
Received: by outflank-mailman (input) for mailman id 1187826;
 Tue, 16 Dec 2025 10:37:22 +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 <SRS0=t3Kb=6W=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vVSQk-0000mY-Eu
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 10:37:22 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3362f5df-da6b-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 11:37:20 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-42e33956e76so2071541f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 02:37:20 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-430f7475895sm16087765f8f.33.2025.12.16.02.37.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Dec 2025 02:37:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3362f5df-da6b-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765881440; x=1766486240; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hO0F1xOUvtlwJl1z+INLlQfmgAbeX/EB504Kr7PQQqs=;
        b=ZF/+SixYi/nJrCAKyTCHnp7L7uJh15lybHIKSRVGL5V+9qLYY8rXr9BG93LfJp63m+
         HkeFPkp9rnyggNx/a0ZqEnAY2UAZzrbimDqXSl5P6h4uUl6HWQsWJTJ+gEpWo6bgT82z
         omXXJ0dJ/8IL5IZHy6yCzYN2sPrXQiKa1OuvfDa0LQT4FnxlI/0p5HJzEao3H2NvtKf1
         MJSJOuASekVkRJm9sxw0loyzSeFs60GfDXHgzZL1vJOJeo9eHs43T/AH2pZYNZ6+etBr
         uitCCc9sHcJaxZ/ATSbr/qIUpnE/A3DQCg1iDr9EG+aY+LQfFLbBHrWElkpXke7Z3Qs+
         7yWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765881440; x=1766486240;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hO0F1xOUvtlwJl1z+INLlQfmgAbeX/EB504Kr7PQQqs=;
        b=M/mKY4jJWsjgz1kh3hMaFFm3jkwIPFXfwx2p23hPUBQHSJHAq/0A4LlwjAm+KEeShb
         NDaiYitlaQ0lH8OCgjEU+87FEjWsU8889eMCRn7aWHX5hXmAY330Y7aWKYjrnUW1Vz0M
         61Je5UHd4BikWLbPtDgvfxdSf4+gxy3lKSc7CuEwqgmXTsvDYLGb7/wx+JACpl0erSMt
         2TdZYRnp8MWMUr4JZmuTF/fx9s4AOQZIxFnIsmX5k2SauomeXamIfgkC62o1AcyBHPxu
         CDbycIt7RQfouCEfGpWK9lAZqOO78gZnMEZ902CBECW6GybBCh4XL3Z9bsQYJvmWkzjl
         tjPQ==
X-Forwarded-Encrypted: i=1; AJvYcCUsE5DzPeiiO8CL3KCDnC7iY8zPyAYBvUpmHmNPExKQF4HuJAXQQH6QYpyIbTniHWwdW7Mso7uTczI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx3n2IFIj9rvV2v9jHQv7JkDvpgrrQ52z/p6s7RSTpYNthZIVKg
	s0e47ekFJA0VQPfDgWUjWz5M/3T2/uWpHtS7GcZSsC6Nsgl7bV2MpyTvxOBXGME2Ow==
X-Gm-Gg: AY/fxX4M8+TuFHYvx28Ou6nK6thbD3UhNSdASFVVuMSaWUk2GDRkZM2X6CshaXu+4xr
	KLsOvNOuElAN/QHP75EdvSwW/82EbVN4EhxaD2yRKwGdOgD/gZx0o0ryoHOEWu4PhZsKBcUFy+a
	8NOD/B0W4K4T0YrpWnBs51M4z10ccM7NkcC6P75Ck+LuBhhiCYP7fPFZYOMjNT/+r5m6PWpt91V
	wL9ar498Subn9XKUD69Az08fAe3TBUpxP75sINzvlHyRvrZFNRtOcd+j/zeUOF1ksaSsLUdY2lO
	dw7GBPap5DvHbHvxBJfpKQR+qK3PUtAZELRKV1AnlCNFN2LEaXAvAA9yGeDmm624dM6cFXFz1hI
	pbIuwLBv+VlI3bX7BrjtzP87qmMZFRzpbdrOsC/+AUSI9uPqCsLX4Tl7xLC89S2nOmCcgd62vwi
	CI6hv8sQmIXDtUz58voIeD6kWfnwqeatD1Ui7oGO1t3DA+jgzlq2NT59YmFY9ZzyImAwKOwU7wk
	z8=
X-Google-Smtp-Source: AGHT+IGbQVFaZKgEom16huaPISPOZJNwrs7f32fclSfNAyWLlKJ28snWspLYmjYlrsW2W7YWlZcjTQ==
X-Received: by 2002:a05:6000:2305:b0:431:32f:314b with SMTP id ffacd0b85a97d-431032f34cemr2595467f8f.9.1765881440234;
        Tue, 16 Dec 2025 02:37:20 -0800 (PST)
Message-ID: <342a49c9-6b83-4605-a5e7-b2f7fbdac269@suse.com>
Date: Tue, 16 Dec 2025 11:37:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/2] x86/AMD: disable RDSEED on problematic Zen5
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <0b15a3fb-6ce4-4bf7-a235-073742fff35d@suse.com>
 <05012660-b93f-4439-a383-ff6e8e8d9566@suse.com>
 <c4f7c28c-c5da-4c52-b243-a07dea8bf201@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c4f7c28c-c5da-4c52-b243-a07dea8bf201@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 16.12.2025 11:08, Teddy Astie wrote:
> Le 16/12/2025 à 10:03, Jan Beulich a écrit :
>> @@ -1130,6 +1152,28 @@ static void cf_check init_amd(struct cpu
>>   		    !cpu_has(c, X86_FEATURE_BTC_NO))
>>   			setup_force_cpu_cap(X86_FEATURE_BTC_NO);
>>   		break;
>> +
>> +	case 0x1a:
>> +		/*
>> +		 * Zen5 have an error that causes the 16- and 32-bit forms of
>> +		 * RDSEED to frequently return 0 while signaling success (CF=1).
>> +		 * Sadly at the time of writing the fixed microcode revision is
>> +		 * known for only two of the models.
> 
> Is it still two models ?

Oops - s/two/some/. Thanks for noticing.

>> +		 */
>> +		if (c == &boot_cpu_data &&
>> +		    cpu_has(c, X86_FEATURE_RDSEED) &&
>> +		    !is_forced_cpu_cap(X86_FEATURE_RDSEED)) {
>> +			static const char __initconst text[] =
>> +				"RDSEED32 is unreliable on this hardware; disabling its exposure\n";
>> +
>> +			if (zen5_rdseed_good(c))
>> +				break;
>> +
>> +			setup_clear_cpu_cap(X86_FEATURE_RDSEED);
>> +			cpuidmask_defaults._7ab0 &= ~cpufeat_mask(X86_FEATURE_RDSEED);
>> +			warning_add(text);
>> +		}
>> +		break;
> 
> Do we still want to disable if we are running in a hypervisor; we can 
> expect the host to emulate the instructions to workaround the issue ?

That would only work if we knew the host intercepts that insn. We don't
ourselves, so I can't see us legitimately expecting anyone else to do so. Plus
while I'm aware RDSEED can be intercepted on VMX, I'm unaware of there being
equivalent functionality on SVM (PM vol 3 does not yield any hit when searching
for RDSEED).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 12:09:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 12:09:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187862.1509178 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVTrF-00033p-Dl; Tue, 16 Dec 2025 12:08:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187862.1509178; Tue, 16 Dec 2025 12:08:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVTrF-00033i-AL; Tue, 16 Dec 2025 12:08:49 +0000
Received: by outflank-mailman (input) for mailman id 1187862;
 Tue, 16 Dec 2025 12:08:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1bw3=6W=siemens.com=haseeb.ashraf@srs-se1.protection.inumbo.net>)
 id 1vVTrD-00033c-H4
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 12:08:47 +0000
Received: from TYDPR03CU002.outbound.protection.outlook.com
 (mail-japaneastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c405::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f4b9160a-da77-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 13:08:41 +0100 (CET)
Received: from TYZPR06MB4580.apcprd06.prod.outlook.com (2603:1096:400:123::12)
 by SEYPR06MB5695.apcprd06.prod.outlook.com (2603:1096:101:bc::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Tue, 16 Dec
 2025 12:08:33 +0000
Received: from TYZPR06MB4580.apcprd06.prod.outlook.com
 ([fe80::6e63:c82c:d0d5:eaeb]) by TYZPR06MB4580.apcprd06.prod.outlook.com
 ([fe80::6e63:c82c:d0d5:eaeb%4]) with mapi id 15.20.9434.001; Tue, 16 Dec 2025
 12:08:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f4b9160a-da77-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PJLqNjOS4FCMgd2i5XsOk/hTEWt/eXoGv1f5d+Xrb3l3TwPyagdPMyb0ZpzTubmp8RaR0+mGQEo5hz120uDzW4bLQnO1pR6efR17cSBzhJ22J/HC8bC3yuL5iCvXn4xASgqiR90imKjSya2A0bFVQCNjGq6j74xr7HRigQp+WVRlx7VmwQ1a7PzpEon64TToBWKu0kMGLKeY7cYKnXHqHfJyaxBhAdme+oZs3wwul1cm6S+OL4mM50Lr7PkqaNoLz1/bXo4fd9HOhO0bouoRZrA5ScNC//JqeqGm0VwMKEX77Onx2nwiMJa3HWuKHaEVCgTtsDf39wmeEPnG0vf8kA==
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=IT7uAHagASG+WfEcAHmRSeDoL/5ZllQjf5VVCGHdvZQ=;
 b=Z7hV2aIc8pHvVqTCLgdXl6eJoJRcLanfpiWRIVYyTwlBz4DMjgJ9nQJI6N9P9Yo50NXWRamfDb/t/bfOPmrMu79jmnasZAKocbYK9brO1Wy7CvZA4oBP6wlG2jpQN+Fq4d7bNkQGxtpJZNSe22LvQjm2mJzGtSMBs1Upsc34H/kuf5z/zxyb8gsqHlJFE4D1wO0zr6mqJeuhOCtkiUhT+PGDpFxBRx8qd/mrFK4/FsXcdqCg0QDisyNYBADCHtGV9mmXcNeVKdju4gObQMZwp7FGQmabsCklFyUF0tuJJEplHGrl5T01zr24Vr2vSHUzYkuN1Kz7/H4kZtD1vioz+Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com;
 dkim=pass header.d=siemens.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siemens.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IT7uAHagASG+WfEcAHmRSeDoL/5ZllQjf5VVCGHdvZQ=;
 b=InAoM/UQ6TxDdFZOZPtTOaNpk0Re7/BkfjserXQp9Nw51SMwXlyVDfNBdwzx8RarLj9pUKXd1E4vEfRAU/ajrmilFgUD/RLDFQTX8dnlXDDD49yavGjBcJ/u/zo7tnXYDg+3N7pKa51b7+PUqNv5aQabf7h7r8YZNwcgPI48Yg11LRiBUiWFNeg3a3GPoXUqXZwJb4w8ZGS5AdvfS1Vf0QqQXi5m4E/sg/CjZ7SFUVHcVJNEOcZSXxTvVAQp3KcjVGoB7ZmZMOFMdVx4U/zDOyDFrzUGPDSbEB2u8CHXAeP0SB7URUaDvjbprAovhPn+wm5S8FLvldTKWHe+9pnxjQ==
From: "Ashraf, Haseeb" <haseeb.ashraf@siemens.com>
To: Haseeb Ashraf <haseebashraf091@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Julien
 Grall <julien@xen.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, "Driscoll, Dan"
	<dan.driscoll@siemens.com>, "Ahsan Khawaja, Noor" <noor.ahsan@siemens.com>,
	"Arslan, Fahad" <fahad.arslan@siemens.com>, "Bachtel, Andrew"
	<andrew.bachtel@siemens.com>
Subject: Re: [PATCH 0/3] xen/arm{32,64}: perform IPA-based TLBI when IPA is
Thread-Topic: [PATCH 0/3] xen/arm{32,64}: perform IPA-based TLBI when IPA is
Thread-Index: AQHcaEpRSCjrYdYkH06BEtnycvkPLLUkOFKP
Date: Tue, 16 Dec 2025 12:08:33 +0000
Message-ID:
 <TYZPR06MB4580CBD5DF15805985A70453E6AAA@TYZPR06MB4580.apcprd06.prod.outlook.com>
References: <cover.1765197209.git.haseeb.ashraf@siemens.com>
In-Reply-To: <cover.1765197209.git.haseeb.ashraf@siemens.com>
Accept-Language: en-US
Content-Language: en-US
X-Mentions: julien@xen.org
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_Enabled=True;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_SiteId=38ae3bcd-9579-4fd4-adda-b42e1495d55a;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_SetDate=2025-12-16T12:08:32.638Z;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_Name=C1
 -
 Restricted;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_ContentBits=1;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_Method=Standard;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=siemens.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: TYZPR06MB4580:EE_|SEYPR06MB5695:EE_
x-ms-office365-filtering-correlation-id: b1588c3d-b4b4-4dd8-f347-08de3c9bd58e
x-ms-exchange-atpmessageproperties: SA
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|39142699007|31052699007|8096899003|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?uadtVCrsnt5HxP8PE+/4xRBYPnYy5fNSd4gdydSY6QL9szs6oXEOJubD9b?=
 =?iso-8859-1?Q?EUsfy8bW2oZXU9i07/0iUCokWRhNx/9yW/rnWivkV5bj8HXDr6TYYqSme7?=
 =?iso-8859-1?Q?j+JQ158jQmf+RlbFlfgRo62fPTEhgXxywEIZLYCTezZ2XB/p2U/uvMvSlr?=
 =?iso-8859-1?Q?TmrcPLnF+PDjwG1iMeyUNLpkoDN+E/8F9bDzeN3HZVDAOLQAuwiDvpIE83?=
 =?iso-8859-1?Q?94OOQgZ/9NqqyhpUmp/xQU4DxVZAvv8Il1EIHf6DITPece2jkpNSeN29+B?=
 =?iso-8859-1?Q?+iLHcdX/5fYE43WoEXPB+0wh4W60RUp88/JRV0GW0qLjFg5alpBZn2CIFC?=
 =?iso-8859-1?Q?b03AJazq0ksXSFOYYJgVJ9OSTp8SKbJwgbilUZ5vU9pGqxa9XgvICbcr1a?=
 =?iso-8859-1?Q?qX9zSPoZVpuFj6G4lftyDChWLYvgUB9xiXtE6TNXo9ZAD2FYuNolly7P1b?=
 =?iso-8859-1?Q?UM/Inktu5lrLlCq7qux5yvpNvg+K7JM0RkZWK8r44IFzFJTcGaFAG8sbrb?=
 =?iso-8859-1?Q?fxRnpzBQzKMv7hf2pdPSmB4vY5FAAHhzPG1Ba5FxrtNV3AfR/FlQb7sdyt?=
 =?iso-8859-1?Q?p75IxQqu2e/qvSL8yqjB+a+ghfWPYMD52O6QQBnoJ3wnIG80qebF2iXPXk?=
 =?iso-8859-1?Q?5FcRRlNqfxlP2B5LIsiovWEYcydmFqlLnKk4efoD7tMUJox+lgQ6R+C/0x?=
 =?iso-8859-1?Q?Nqhh0BCmh99XLcoO5d8hgtapzDrAUrq/vvDzR4oP7v3yyoaH75Do6OW/59?=
 =?iso-8859-1?Q?2mWdYqTPpwGGZnjlzBaZvWA9AZAF4NGCH4VvlMjtBY/+ukwwKOPIrZKRFx?=
 =?iso-8859-1?Q?9KblT88UlQn3TSNsdNnEdUBsEthB8TEiMjIbu8QXwOCR3slnqbPCO1X9LF?=
 =?iso-8859-1?Q?pMb+6DuRdlnySlAUz2VoCeLxE1ACT97ej0vSnJqUJrmnc5NoUc+C9sBcRw?=
 =?iso-8859-1?Q?SCMtKIY6iMFaIm4PL0sAKVOQr6kEnLihBwowUHIwycvRgElY+ulnmIGdbe?=
 =?iso-8859-1?Q?ZdX2Wcy6r2ZmmFuK9/mMJ0yglyILIrkouCVic1p6TW77DJI2xyPxknsI2P?=
 =?iso-8859-1?Q?6BQ/L0YCuZtEqGckBa1KW5UFr7RF3XUKA0GdOYgYKfRGNyXmAtriWpp5gX?=
 =?iso-8859-1?Q?0lqce4MYq/dtqwiryxhFY3y3Jh3RS9JitbKozoTwqLncjfwyEoe/mqkOio?=
 =?iso-8859-1?Q?mAgfNY2EQ33014WL+GfZ7iFewpCgnC1sK5iTWsX4Q661WmsKtmL6geyJwQ?=
 =?iso-8859-1?Q?x6y7vM8j9fsto9tNta1dGRAV7NqVdkMs9JUhTULlt4T08pSyMP2zkE3KzG?=
 =?iso-8859-1?Q?T8cIrR7Fido1lVj7oJCd91r5JKjRh9Cl+4rlNSUO5V/2RBumkqbz37mTTm?=
 =?iso-8859-1?Q?adzygKzMngm14oRDQkbqyCzM+oCN0HvBwO/6KK9XEMuORknQfYyouFxOgV?=
 =?iso-8859-1?Q?MNDkgjwJ/wze/sa+bppFkmShYzBeZEzWPnSe1S5lN4rDKW/p625rYNGRys?=
 =?iso-8859-1?Q?bqBIJh1SHFpX3/9M8AHJH9vPUfpl5RNr1jYvxybtSVAaEr7l+OrSxi4jq9?=
 =?iso-8859-1?Q?9CfB0cSQPcQGhQWOUPFKpXMSwnRn?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYZPR06MB4580.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(39142699007)(31052699007)(8096899003)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?O4ENd5HOaXdMnuAT9tGqvTAvZGd62pZypg1/7fwcxw9M+md+P2C7t1togt?=
 =?iso-8859-1?Q?qmgBhJswIQ/H6dN6V9iHH6nFKcqpNdTCnRg7rRS6L5uNMxhdQ90uSXZS3E?=
 =?iso-8859-1?Q?AekW715y3elXSmXYx1D7O9KV6jYyQ3oZZqbE6eMJ5eOMSL+nSATq8AwXsN?=
 =?iso-8859-1?Q?4ICZMBaB4t+WdEIm4QTPLwnIRxAprlXBpR9p4CZRVfD4xfHWd+eduZCKiU?=
 =?iso-8859-1?Q?8TO8/vpug41V2DlzxNpWnZC2MVBf/7AzPgo2UorcCutXq/QhOLLj8iztWB?=
 =?iso-8859-1?Q?UPlByhzjlgEVGzqbDWDB8yjCrZ5bhNw30oikSuNjrhmIjULQomzOLcvBNl?=
 =?iso-8859-1?Q?1PPW/YeAGsR9/ESv8CYK3jpvUs5IOwgnbS1RfM0OJp+VuDTit6b7NIjNKH?=
 =?iso-8859-1?Q?N3vQ/2GqwpIixjDTc4o2sfYFz7NbCDGLcZL5tp7eN8b13YYJ8u4ZDiGOVe?=
 =?iso-8859-1?Q?eerzqKX5nGMIdxEnAkJiME4nbVYtcBipLfiCz5/puw3lyjS6h0O0kV1lZY?=
 =?iso-8859-1?Q?uqEOmA/p1pjrFyJxM7YOXaOQJQ5678HaFEusdAlVTOsZO+1hgxc7XVZ66R?=
 =?iso-8859-1?Q?IWyBxaRx69RapfeAOqGNKfeEnL/h2uAvjI5XSFxtaqx8vD06G0oCm9DmJ4?=
 =?iso-8859-1?Q?v0PXIECJypSC16jdTxKnSskGRwHC0nZweRrZyoW08a7hmiRQVOF9cVLSRF?=
 =?iso-8859-1?Q?H7LMaEd2O5nTGqGTV7/26V0Yb3dYyjFEdeN9RKiO1FLu40RwQGY/GGVIE0?=
 =?iso-8859-1?Q?I6Tzd9YSzNqA5OWssM+8mnTjTv7nZc61Ga7q/xqEgG1uTbwLhdpPpqyoE9?=
 =?iso-8859-1?Q?nK+wcOEWf4wITIqxnmFpKaF1io+ZrJPf9ddgGj1uSPsQTknI1Tvl7S8nge?=
 =?iso-8859-1?Q?C8pA2dDfvUr4Y7HOyby7V8G6DtMEI1Z75dEjVoNkQXDCcWLtDTEtPnlV6Z?=
 =?iso-8859-1?Q?+NlqTr3f+pRI2KBzvEqZ1nB2FbybJEkG26g7Tt49VHz2Prcx69SPYJbpPf?=
 =?iso-8859-1?Q?ofDIwVsxUUKIlP0551h0VeF8fUxhyyZEevB1nr1z69XaoMSkbDTUZtjBJg?=
 =?iso-8859-1?Q?+XFMxnPz1yC1TbVybVSfiAOEYuj4Un8yHwrGbm9pTWl3y8QA9WyUsBRSZN?=
 =?iso-8859-1?Q?p1y32KSEzZxVBwYEKFF8bDIW+Akz++2hFCBgnnTzUGhchMJ26/hNTbYQdo?=
 =?iso-8859-1?Q?3Qt3fF1NLhohFblIe4PeDfmHT/kl4RCMTCtRctxXXRCP7PGce3tqmHyrIO?=
 =?iso-8859-1?Q?kDY1p9pt4oHPHdvH3Dl6NiQ74Jjp0ocYBlmF9rRlC8GmcQdHojPz05OV/v?=
 =?iso-8859-1?Q?oSrQFGTQVVMrf2H2lfd+W6Nfngk+ehMHT5keQ8GZPAdlweJOW3deQWSVfz?=
 =?iso-8859-1?Q?kee7JS0bB0WS8vM90dr82ohcA5kV+/ON18l9BNkE0RKFnrGNX8Ibhs8Gbb?=
 =?iso-8859-1?Q?Mqvp+qzQYSDaz93zxssdGton/lGUdv4OJ1gz+ptgnOdGOqX5wZRYBjQ7MQ?=
 =?iso-8859-1?Q?80SLWl+cZNHmjEbfIrTaXtzH4G8+jTRQuK+UlUNUifMOSi1KJSdazl3w5I?=
 =?iso-8859-1?Q?hpASBEFI1ffXVbH8vtESHL/XxcU+rDjeLfEXQFy/DD0S/rPplxokEwB1Bd?=
 =?iso-8859-1?Q?kvogfq7zqZRzHEoqfqVLiiT5OY4jraNRvK?=
Content-Type: multipart/alternative;
	boundary="_000_TYZPR06MB4580CBD5DF15805985A70453E6AAATYZPR06MB4580apcp_"
MIME-Version: 1.0
X-OriginatorOrg: siemens.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: TYZPR06MB4580.apcprd06.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b1588c3d-b4b4-4dd8-f347-08de3c9bd58e
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Dec 2025 12:08:33.3014
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 2Iya8r0DbpJiPUZluDgnnqWDoOX9NwQo17GookYyDTNv8/nAHu+bFrfjuXZEkUF4fKIAmvm2dI7YN/MBrvBsg/pVjZyLWCC/oP6XwGyPeqw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEYPR06MB5695

--_000_TYZPR06MB4580CBD5DF15805985A70453E6AAATYZPR06MB4580apcp_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi @Julien Grall<mailto:julien@xen.org>,

Bringing up this patch series. Please have a look at it, and let me if ther=
e is any comment on v3 of this series.

Thanks & Regards,
Haseeb

--_000_TYZPR06MB4580CBD5DF15805985A70453E6AAATYZPR06MB4580apcp_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Hi <a class=3D"tWKOu mention ms-bgc-nlr ms-fcl-b" id=3D"OWAAM423234" href=
=3D"mailto:julien@xen.org">
@Julien Grall</a>,</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Bringing up this patch series. Please have a look at it, and let me if ther=
e is any comment on v3 of this series.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Thanks &amp; Regards,</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Haseeb</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);">
<span style=3D"font-family: Arial, Helvetica, sans-serif; color: rgb(0, 0, =
0);"></span></div>
</body>
</html>

--_000_TYZPR06MB4580CBD5DF15805985A70453E6AAATYZPR06MB4580apcp_--


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 12:31:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 12:31:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187875.1509187 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVUCh-0006nY-0O; Tue, 16 Dec 2025 12:30:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187875.1509187; Tue, 16 Dec 2025 12:30:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVUCg-0006nR-Tw; Tue, 16 Dec 2025 12:30:58 +0000
Received: by outflank-mailman (input) for mailman id 1187875;
 Tue, 16 Dec 2025 12:30:57 +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
 <SRS0=ZKfF=6W=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vVUCf-0006nL-5x
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 12:30:57 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1115d1a9-da7b-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 13:30:56 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BN8PR03MB5042.namprd03.prod.outlook.com (2603:10b6:408:da::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Tue, 16 Dec
 2025 12:30:53 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9434.001; Tue, 16 Dec 2025
 12:30:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1115d1a9-da7b-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ioX7ikABXUafH64y9ZwnXUIpdaFmfGNte1/+h8O2T4sHIdUXTsT9t/46r3uI6bKS5QpNvjFkCR5X4/U2IdY9/KNXI2EU1zirQq3kw+7naOUIaFVhSI+2fW+BuToX1HZZSqNUgoPLGTbVyFV62xJMLFHWgeLtv4X1f0xL2EeQu07Mcd9GuFK/4MxLDZcqa/WTNdW6wf6cPlgH7MzAvoQFi7mas5YMOV2dBFyOpCLvvwZTqaeM2tb4phD653niTfkXz7nrR0gq2CeTbA4qPWTBtDRmh9Ulr6W2+REJgeBt6axFB56vOOu2NARoW6EvqDlDOvrY7nNpIwBSkEjyA0HYKg==
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=iw9q8K6aiI8GanyDXrZ3nNcVUx+ko9jl9O8GIHCy95c=;
 b=U7c3UrZrgfBktBOJ/LXZwpsW+zzbtROqK7sqk9AY4JZMozqnbWitgSt31umu9LYQB50BwfLT+gRBrPYZCUQTORF7VXpDOr3fLgq8z88YihgqOyt1MQXSUZC5+Pm3TxNhcKJQ2X46DeyEgqmoi7Toeh3FCCZfbaP0qi5xjyTJzThSwH2DeMUOhkPkZjmWogTk3jKU5ftprV41sSkoiebyhS5iSI5sN2TjuhtYXyMC5EVLsz7E/AIV4KymSBInUp70N4VO8s7iherkhO0Hp9TsIdyXh5ztdm5g0QmMcUnXT7yL34+izR9/IL2tkwp5oubV3NZDZLiNwpTOnFCPecFVPA==
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=iw9q8K6aiI8GanyDXrZ3nNcVUx+ko9jl9O8GIHCy95c=;
 b=mzEtf7O5G+c+X/b0cxQqUIvW/96WKjPdE/1o9bb3CME7biX+W915bCB0SLkA6ACd9mlq1pnp9HrFOB4n9RdRfzUpwjnMGvhv2ql8xzFIiH+TH2SH3T3Lv97VLhlccjXmqnPOxW9zYfN97qocKXA3xplPqJjN+IUFRE+lMayzCUM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <f98a660b-5fc9-45d0-92ba-12e0638d3e62@citrix.com>
Date: Tue, 16 Dec 2025 12:30:50 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v3 0/3] x86: move more stuff to lib/
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f73aa7e9-c176-40c3-b5f5-81c69cb219ac@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <f73aa7e9-c176-40c3-b5f5-81c69cb219ac@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0697.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:37b::12) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BN8PR03MB5042:EE_
X-MS-Office365-Filtering-Correlation-Id: 05253f14-d243-4d4d-ec4c-08de3c9ef423
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SGUzNnRNL3ZRSXJtZ3pSQ01CZFloMzNoekpPbzIvYVZTMWVib2dkN0h2Ym8z?=
 =?utf-8?B?ZmRSeFliNTNRNG5OZEtXbnVpa240S21kOU1WRi9HdFp1U3hnNmhLSXRiRjRS?=
 =?utf-8?B?bWJtRVdMNytQNElYMlQzb2ZFTjhsaFA1eHBObkV6ZTBWM3dxb2xnc0d3Smlh?=
 =?utf-8?B?eXZ2Uk9ZNXJZaXg3WUJ4dkROZk1LYUhBazBSa0ZvWWVMSGZLcGNieklMY0JI?=
 =?utf-8?B?c0hWRmpXNlIzNE1sZ0JIZDNGeGRiUkRqeXF4VVg0QlFvQkkzMnNTa2lzTGtO?=
 =?utf-8?B?clpaeWxXMG5Xd0JhTUVMSHgxendBOXpGL01uR0ZDaGhXcGVWUXoyZWVEeEZL?=
 =?utf-8?B?dTIybzNudVZrcXc5VkhlU3B2alVGbENxWm9oM1YwS0s2LzdhVHJidUVIdjVG?=
 =?utf-8?B?eXVhQ3hPcXkvTTBNUDNpTG9JTVNVQk9JM3lsR3diZUVpOExFam5zTk5LZUZs?=
 =?utf-8?B?OTRZNll0NVhkQ0NBWVlveXF0UDFLNlJoWHliY2FrWlduOENKdFNWSkRuK3dC?=
 =?utf-8?B?cWY5N05FUlRLVzRDUUJKTkZiemNIcWtaZDgvOUNnNGZzNThrenF3eWJlVHdv?=
 =?utf-8?B?TmRyTUZOMldSSWV3UGhnM1ZkTnA4VG4xeFBzWWk3RGV4RFA0SmRaRjBFSHhH?=
 =?utf-8?B?SDdWL3ZzRlZyQ3AyUzBsUUlHTkJ6ZTBJSitwSmt6bmtDSnBwQXU5ZEduTEN0?=
 =?utf-8?B?RXFJbDhGdER0RFNRcGw0UTBUSmFxL2FoTHpzQ25XZFZXSUFvVTJ2MGp3Sklt?=
 =?utf-8?B?UFc3bSt5cmVHV3RTZ0FwcWtYYXhVQ281blM0dS9ncENwUUVOVnhnNkRFVzBm?=
 =?utf-8?B?c0hLbE81dStLY29VdU5PMk5laWFkMmQ5bEFrbkxjMlVDZ242bzcwcVU3TVRO?=
 =?utf-8?B?amxLNmtydnpTVEE3QWlzZndmVjF6djhPL1hGQTU0ZmUwamF5Szh5ZXlsb0wz?=
 =?utf-8?B?QmtHbmUvMUY4OHFyQ1R6SWpQQzVHT09kelRYV012OVJoNHUzR1hTd0o5VklG?=
 =?utf-8?B?UUJPM3ZXSkRmRGZpd1oxTFpvSlFuckZYU2FtTVNLOFNGSFlSRTBONmZlcTlM?=
 =?utf-8?B?SXZhV1pDbUNFaDk2NXN4UEM2SFN0U0Z4aXJPWXJhb21nK0J1RHJVd1FzNk9I?=
 =?utf-8?B?M0JDbUxWV1JBNk54eDltQUQvVjNsNkREZlBsd3EwMVpOYnVlWDBadmcwNnc3?=
 =?utf-8?B?SXhCRVhDV1YwOFpRejZqUW5OaEttSkZ1T1RsVThkcEtGc2p1MHBUVWEvU3lR?=
 =?utf-8?B?Z0xmcVBpK004NVBTWVczRzFYTG5Qc0VGRmlzWU1EQk5LQWxZNG5OaXFtcFlK?=
 =?utf-8?B?TW5TcENiQU1Eb2UwaEE5UkptL3lpMHgzSUZUWHUxRGd2YnRCQ2U0THdWcXdY?=
 =?utf-8?B?VW1kcVZHOHJLV2JTSzM5RTYxT2d4M21nVWJIMHo1QVJOOGVRZnZpT0tBQlg1?=
 =?utf-8?B?VlpMYjV2MjdpVkNwTDVUajRSblRhNFEyZkRDbGNSREIwa0dYL05EWnZqMkxT?=
 =?utf-8?B?MXpmMGp3TEh6QWtqZml6RkdFb0NyT0NlSXBZVjFQV1U4WHNTWEMyTS83c2h3?=
 =?utf-8?B?dFAvbHl5UjY4cU9MaTNwMzRtc3FNWkh2dk10bVlOSUFhNzJaRlY1Zi9OWXl5?=
 =?utf-8?B?dVNld29tRGFPT3E2bmt3WnhJMXpETkZsUmpuM3hjVmFzMXBYaHpXZWFsNVNh?=
 =?utf-8?B?MTgrZXZXTUhaL1Q2SEVNL1NRdTZoSzVBMkFrYTV1L2hDMmxjL1JYcGtQVW1K?=
 =?utf-8?B?OVRLSEwyVFJUKzVjR1RtVS9aTmNCQmtrazEzdlBaY1dqdnlNSS8rV3dTaFVs?=
 =?utf-8?B?eHdyUGI1RmF6ZVRBbjJvbGVabHlELy9td3lPMG5Ud0RrOXFNM05SQlQzbWZT?=
 =?utf-8?B?RWRFQjZNM25XWW80d0xpc1RabEhIeUN0dzFaaG9hbmhrenVKbjNDZXp5czFO?=
 =?utf-8?Q?i+sKQ05x3tYJ5MpqPneJ24ubf3tm2kOv?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZHRKZXZqM1Q0a2gxY0dCS2s0SzFpNTdmcVdxUi9valozZ3dsVGwvd2lTZjc5?=
 =?utf-8?B?UjUxbWgvNmVZVE4xbGZaaEV3Q0tuc21DQ20wZU1sQUxraGVJajZpZzRRTm9o?=
 =?utf-8?B?Q29XbndnT1pOR2xZejBxQVdLNFdHWVFvRGpWelVQdlhVUzJuMXRUdFR3Z2h4?=
 =?utf-8?B?S0pCOXpla043RVlIL1R2ZndFK2xDUERFZkNYZUZkR2NmQjJwMTFoNG4yNXE2?=
 =?utf-8?B?UC9QcUd1UVJ6Y1ZnTHF0NjJmMGgrTnNwSXJsd0g4Z01PUGdhU2JjUnc5SmRJ?=
 =?utf-8?B?NEM2c1NNTjc2b2pwQjRFUVp4VEVJSDliWDVnOXF2ZUY5T2xmb1hxZS9ETVVP?=
 =?utf-8?B?V2V0a2lqaDJhc1dkeUlub2xuUVJwTTBmNktNTXZaOWZvLzk1QUtSVkEzZDQz?=
 =?utf-8?B?YW5nb2wxWS9NVEIvdEhsQXhpSEwxamxHY2FjSWk1YjhBYS9mR2gzUUxDUUw3?=
 =?utf-8?B?ZkxpZWhuWUliYVNyZmpiNWJTVmdNM1dNMjRsUFovSFdKQzBTR2EzUGk4UXM1?=
 =?utf-8?B?T291S2ExREZRY0hCK2tTa3dhamZjRit0K0Y3eGxBNWVMS2Y5TWU3VDdCNXAr?=
 =?utf-8?B?T3JQYTdjUTVUNjhJeENhRFpXdnlCSFUrY0ZEZUVDUUVrMnNVOGpQVnBmY0NC?=
 =?utf-8?B?WktPdCtNVS9DL25IUFhPYU9Fa05xN2dmR3NmMjBWN3dCcVJ4YXZiYThUcmgx?=
 =?utf-8?B?UEtLVVA3d3hSNFlIelZTTXY1OVNXcDdFMTF5Wk9DMTV6Rmo1aGN5SThLMjFE?=
 =?utf-8?B?RU5aM0grcm42Ui95ZlpQcUhSRExpcTcxbG82bHRVVzhhVUtXMGFDd3Q4UWJo?=
 =?utf-8?B?ei94TXlTTWM2THBOTHl5cVpDcWV2ZDdJbFdpTG5uNjBvMlR4ZWhFeVJsNlB1?=
 =?utf-8?B?RjR0QVNlM3RBMEJRbzdtcHNkbEdqa0hkSFRITi9mRXdhSHJNdzR0YjdzTUN4?=
 =?utf-8?B?KzByVTFWVEZwNXo0SHdESVJqMWtrc1o0OE41VzZNamdJM3FrcThodllnWm5M?=
 =?utf-8?B?RENNN0xKRkhZR2J4emt0NG1yZDF0VUoxelpJaVZiK09hUThseVQ3QWJwOHAr?=
 =?utf-8?B?RnlMaFY4aDJ2VjlBNGpYR1FYaDFNSjlZY1B6MkFKa3Y1aTNHbFhNSGdWZzNw?=
 =?utf-8?B?SU55YysxOHd4WUF5dWp1WDZSMHBIZ3JXaThOTm9zeTl6K0YwbHVYMkFpem4r?=
 =?utf-8?B?UDZTN0pXZlRqOWMzNGJRcFBjVElZZW5UN21KczJDcmhzU052SUxJSnBUcFIx?=
 =?utf-8?B?UEkrYmE3NXpKU1k0cm9wQnVSNzB3NC9HK2pLK1NmWEEreW9oT3NzVVRvMDdp?=
 =?utf-8?B?WlpzZ1YvNVRvckRIcEJxcHMxYkp1dHJKV0VwUFVYaXI2R05ZNEtaUXJDSG1p?=
 =?utf-8?B?dGFWNzhnM0NQU0UxY1A2ZVppK1VIbmhlVkEvNHlaVGk4MlVKQ1oxanhCbytD?=
 =?utf-8?B?UDlTR1pJWEZjOGZiWFVFTUEzcVF5VXNHV0x0d0lMM1hNeEc3S0hyZUFDeDRS?=
 =?utf-8?B?OU95K3V2NGtZb0ZqTlEya0x4VG9GYjN0akV4SEZhWER2ejVyQzYrMXYwMldN?=
 =?utf-8?B?OTRyYUErQnk3bGVueC93aGZwN25XMFZhV2hKQ3RsR0FYa21QSHpMRGdXMnBJ?=
 =?utf-8?B?M1M2M1crMTgwNTdpNHFqY0FlZ1BOM21VK1FvMWlXZ1NsWkk1cm51encrZ3VC?=
 =?utf-8?B?Q1doaTBRVEtnY29uSkpZSmZUWXBFRksxbEtFRm5acDR3ZmJoOWd0QmEyNFRv?=
 =?utf-8?B?SXo3NVIzaGtxOGZMOTlKQUxxSFkvK08xNlJyVDFsV2NLZ3JqVXdpczZHNnoz?=
 =?utf-8?B?RWkwV01oK1pZdkdNOWx3eEJRZW53SXg0WHJ3YmZvT0x3bzlORUE4Z1czdjNI?=
 =?utf-8?B?OHp1bU16UUR2Q0wwbzYyd21DV0lqaHdWV0s5cTdBU3FwQ24zYnFYTEZBR0l0?=
 =?utf-8?B?eWpCTmdZV1R2aElPMVBJLzJDV1JKTmMyaFZoZXZiMi9adFVpKzZoWFNkZEt1?=
 =?utf-8?B?N3JSWWQzV0E1L09BRmIxQ1U0SG0ycm5JMnhSSTV3UnB5eVdTVzhEbnNwQitr?=
 =?utf-8?B?VzY4cVo2a0lOczc2NHlSQXpHeWllUkVwbDA5K3lCTTRWeHpMYnZTdUdmbmlq?=
 =?utf-8?B?WkgwNkZyVFVOTkxZK2MrODhGc1I3MFVmak80aG00Y2JjcnVHSFRacThuWHpJ?=
 =?utf-8?B?K3N6YmYxUWJweHJMK3hLTXdZU05Xc1E2NURnQ045ZVBBa3NSWUlEaUxHOTVW?=
 =?utf-8?B?RG5QTGJ1RW55dUtHcTFqa3QzS2ZlNDl2S21BSW05ZEZXN292YXo5MDFkU3d2?=
 =?utf-8?B?OVd6RFl6NEo4aGVlMVJiK3RVQmJrS0VGdDJDZjY4Y2d5OUxXUkE5dz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 05253f14-d243-4d4d-ec4c-08de3c9ef423
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2025 12:30:53.3882
 (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: BSR1zCqfx0Z6lnPj5wIPCXZzlEbqTrK6yd1PVnuPA0+PXbwh/XC3tYWeZOfN7QyM+EhIyGI/Ofjt2tuLyksdNU5WeW7PLP9GLNUnZ/NbqB8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR03MB5042

On 16/12/2025 9:16 am, Jan Beulich wrote:
> 1: move / split usercopy.c to / into arch-specific library
> 2: move mem{cpy,set}.S to arch-specific library
> 3: move {clear_,copy_,scrub-}page.S to arch-specific library

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 13:06:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 13:06:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187898.1509199 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVUkz-0002MD-JF; Tue, 16 Dec 2025 13:06:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187898.1509199; Tue, 16 Dec 2025 13:06:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVUkz-0002M6-FB; Tue, 16 Dec 2025 13:06:25 +0000
Received: by outflank-mailman (input) for mailman id 1187898;
 Tue, 16 Dec 2025 13:06:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=t3Kb=6W=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vVUky-0002M0-Cl
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 13:06:24 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 04d313a6-da80-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 14:06:22 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4775e891b5eso20200825e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 05:06:22 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47a8f8d9d63sm243066755e9.9.2025.12.16.05.06.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Dec 2025 05:06:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 04d313a6-da80-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765890381; x=1766495181; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Kp1cnEA5HitlHjXnCpnBn4gBxDoIZjFOgdevQLKhA+8=;
        b=S/gU8lsdFqnyXWeBGV2Wld9Rbum3l+4JSfU+9SgfmwyV6TmRgbLstnrPH2gFz1RaY5
         zYcmVhkj1SttRUGZyoBWVDbVH6JpZOb5iOnsMcrzhS82AZ6SGklL+1FLCYhce4k3ZmrO
         AsXg4OExRRcremEu+Ly5WIsBGR1g06akWlhqCs3Fg5v/wQagb6BIwkjFBHXPlxoTZsME
         uLcjbPLQI6FOqtcsp/mM57EP83wSdYLkXJHiXHbzqEhTI/UoxxRuJOnvqKsZflsTwOXT
         v5mu1vUU9v0h/yaROvbRmybq5U9ypULQOH+l0k6qcLg4QWZickxwk0PTyhr4ff747iua
         pIqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765890381; x=1766495181;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Kp1cnEA5HitlHjXnCpnBn4gBxDoIZjFOgdevQLKhA+8=;
        b=BtwOYFF7J2I4SITSaNiT/dXcpmdT7+yzsQSD9U9vxmj4iIQnyXVuFVkl0u3Rex0Mrr
         FqiAZjBm9tNKaT1FJdsVwXEF+23vjvduAg6nH9dqFTDIZhcRSttUPeoZGCxy50RIUNI3
         +pGJMas9q9OD8x7lUMmpfkP/Ic0Soti5icgCzmydHGDSuQURlaHIYYgWuDxstV/XM9e5
         mXGfCEVCJX82iTNaUVpwSgs44hi6hRAX3tqpN9/DYRONUYOhkdMHmV1MentQz8T3rjRo
         9tRks2I5LF0YoQqT4FQ6fxoL/JYNIySGaH0QXNbmcDscOTre8m0XGvETcROHph8Y2yC1
         +n7w==
X-Forwarded-Encrypted: i=1; AJvYcCVwbFIUTRir6KJpG1/qYWte3QK1DCO2NOjjc+eudxUS8UCP1kDiX5xOi95ycNlLlNAGf1YHtLixKm0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw5yE82q+7EjF/UW2dFkKCNVdI8Jwu/EJPtVgnRcwrMYTZeyuxy
	+WMeWc3NBBE1Rr6m0an29s9jaoIKDxBGW/2nkQACABM1G2vIARTvSrQFYQbSbmMKNw==
X-Gm-Gg: AY/fxX7LvkVF+6t4i9k8D7cnvFg3s15Y+xbGMUOUlFsCRFZ60aC7F7UG6MlSaFqbGm3
	5BtrSmhvAsNg0wj37gYlMJkJNkidb/JuJB28C1TkLnjgg1Gb8Euqa9RRC/REw1giSVW5qkbCdDG
	vDK8wt8851wGWoUn3mjGC7GanXrUQ1BkdnHu4nkn/a51DisSBA969uw3jBKrk6ERNuoi4xKPMDp
	T4jhM+SOFnMEJ32jD6UNPeIpk2LcFDj1/yfYA7ljDubCoZBFj0gnRKbtaugpJasE1dmngl5vRoF
	IxDAOnozV5Y4MXplWvxsuLHk4IEW62SoPyniUoLYoPjx8rr4SUFzgME72IDdOJn8X/en5XsKUtK
	2ybK4CRXeN5FWu0IxVoVe6t8UvloaZLnveDyAjoB++GbwZT/Mk6VcKb+pcVLUJn7kgwVKVROicQ
	dQhizJ8HnIVBzhJrDeSY4pgpV1+bXLBLWSkFhYYCOW5oe/VY6gMg7146Yyx0sRNe65uP1xGTQMH
	0Y=
X-Google-Smtp-Source: AGHT+IEjz+VsHX0DWY0YMxs00kCh7SKwC4J4zN9E/+67A+nK0KK8piLGd+zJlTv/0GvGBhx2IKYfOA==
X-Received: by 2002:a05:600c:1c2a:b0:477:6d96:b3c8 with SMTP id 5b1f17b1804b1-47a8f905313mr157001805e9.23.1765890381531;
        Tue, 16 Dec 2025 05:06:21 -0800 (PST)
Message-ID: <4c95724c-7f88-4ade-9624-b7ea6589d69b@suse.com>
Date: Tue, 16 Dec 2025 14:06:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 02/24] xen/x86: library-fy cpuid-releated functions
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
 <20251212040209.1970553-3-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251212040209.1970553-3-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2025 05:01, Penny Zheng wrote:
> --- a/tools/fuzz/cpu-policy/Makefile
> +++ b/tools/fuzz/cpu-policy/Makefile
> @@ -22,7 +22,9 @@ CFLAGS += $(APPEND_CFLAGS) -Og
>  
>  vpath %.c ../../../xen/lib/x86
>  
> -afl-policy-fuzzer: afl-policy-fuzzer.o msr.o cpuid.o
> +CPUID_OBJS := cpuid.o cpuid-cp2buf.o cpuid-cpfrbuf.o cpupolicy-clr.o

While I agree all three are needed here, ...

> --- a/tools/fuzz/x86_instruction_emulator/Makefile
> +++ b/tools/fuzz/x86_instruction_emulator/Makefile
> @@ -25,7 +25,8 @@ x86_emulate/%.h: x86_emulate ;
>  	ln -nsf $< $@
>  
>  CFLAGS += $(CFLAGS_xeninclude) -D__XEN_TOOLS__ -iquote .
> -cpuid.o: CFLAGS += -iquote $(XEN_ROOT)/xen/lib/x86
> +CPUID_OBJS := cpuid.o cpuid-cp2buf.o cpuid-cpfrbuf.o cpupolicy-clr.o

... none of them look to be needed e.g. here, and ...

> --- a/tools/libs/guest/Makefile.common
> +++ b/tools/libs/guest/Makefile.common
> @@ -35,7 +35,9 @@ OBJS-y += $(LIBELF_OBJS)
>  ifeq ($(CONFIG_X86),y) # Add libx86 to the build
>  vpath %.c ../../../xen/lib/x86
>  
> -OBJS-y                 += cpuid.o msr.o policy.o
> +CPUID_OBJS := cpuid.o cpuid-cp2buf.o cpuid-cpfrbuf.o cpupolicy-clr.o

... only two of them look to be needed e.g. here.

Reason I was looking here again is that while talking of the split with the
other x86 maintainers, we also discussed the option of moving what is being
split out underneath xen/arch/x86/lib/. The way that may want doing, to some
degree, depends on whether all "interested" parties want all the functions,
which clearly isn't the case.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 13:12:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 13:12:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187911.1509207 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVUr9-0003zD-94; Tue, 16 Dec 2025 13:12:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187911.1509207; Tue, 16 Dec 2025 13:12:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVUr9-0003z6-6S; Tue, 16 Dec 2025 13:12:47 +0000
Received: by outflank-mailman (input) for mailman id 1187911;
 Tue, 16 Dec 2025 13:12:45 +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
 <SRS0=Zuqr=6W=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1vVUr7-0003z0-Ft
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 13:12:45 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e72d65f5-da80-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 14:12:43 +0100 (CET)
Received: from DUZPR01CA0132.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4bc::22) by PAXPR08MB7490.eurprd08.prod.outlook.com
 (2603:10a6:102:2b7::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Tue, 16 Dec
 2025 13:12:36 +0000
Received: from DB1PEPF00050A00.eurprd03.prod.outlook.com
 (2603:10a6:10:4bc:cafe::5) by DUZPR01CA0132.outlook.office365.com
 (2603:10a6:10:4bc::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Tue,
 16 Dec 2025 13:12:55 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF00050A00.mail.protection.outlook.com (10.167.242.42) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.6
 via Frontend Transport; Tue, 16 Dec 2025 13:12:34 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by AS8PR08MB6118.eurprd08.prod.outlook.com (2603:10a6:20b:29b::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Tue, 16 Dec
 2025 13:11:31 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9434.001; Tue, 16 Dec 2025
 13:11:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e72d65f5-da80-11f0-b15b-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=NKCkjD6hsOeqbxrM4LWAU1eiTlzPKAkbtSNrrrL20d92BIqmXNFLjwxcleeecw7px7hkDkW1tujmEcrj0F6l04HWPNNd+YWSddggRY/Q6gHWRP+6wxduozfHZOYat6meUUhiQiGPdkB90tadZSQ3b0vyMdKGjLYCdJHiw2apomrXMmYYPnvntfTH7EmqQ4+g4e7C1lA/fSDJsk59zU0dxE9ylo969kAj04L77KzJZdKEW2hwWqZzu2v3WfJop2X6hmXRFvNpIJQpp/r/Nzk9lA5hj4agj16uagWeJLdWkOXXR/iZcsAHNmIZOqt1EQ5+jtQuL1KTJx9FI6UHaDc56g==
ARC-Message-Signature: i=2; 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=uoI7B1/zU8kBCvCQKWt8vAlsd5wE3WnTXgvKAvfMKkI=;
 b=ALvWPqP8wPjGHUoROcFKpDhZomx7ax+AnIaxEvep570p8Z491R/+ikuPzWtRNLMTPRy+PeyAV3J06tlzD+VaL0Rba6y6CQVGWH4A9LHBGOl7XaNBMr6b/vW2ajRNgMpy2stjUOF/8lyZFe/oY2dh8/tcPkg3N83dQCrMcrruJ3sy/gz5ioaU4MpIGDkmhXJBoqckShvWd89m6M+fDO0712qsFwppo9ITfyXvrCGiGGS8QBhz3YE4d6Z0t7jw4vbnoOWEYrpI6/anSV1sqOocZX957WFbUwT4h7BmVvnDSdnBM4QQWWcITt9wYIWuzbeGfsx6sZ5jHyhJaCuCVfp4rg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uoI7B1/zU8kBCvCQKWt8vAlsd5wE3WnTXgvKAvfMKkI=;
 b=Zbnqq+4aGAQ/VhdbyNhn4c+0nD3zWPelCR/n8IKzRBXflNYMl0jlvQc4wGaRTKWWuQjlpTxPCOGQexTkNdm79mguQ7QeW25uwrW4iqDitp/K2521FuhmlZVXG6B2dxAaqKFQ3P6eZjp0wmDJCDQl/guVhwgFfSK+R1HSHfOMeNY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kbaC0e/Ze0Ciav8HyeHfG7NAVGzNnLGifAqihBvU2j/UJzsZeNV22MgjgVCI8lJFn2npjZedkNIA11e2qH0ZUERBASFD68iyYkmsf0/E07lr2lJbR8YCKEa8WCi9TliPqpy3oQm6oZdksFe7Pj8MQz1jIVJ6LQAFnnZKu1Iq7s2VFbD412wqIRrbVJe8gxxFr7SSlGeWGRecyHXID/bcfZCQtTOlXQkusgezC68ii9zmcoRutU7cSc76gmJJKteiyL2R9yQlbRMKojvGpYmdN7JcjVw07KKBWmKxoU59O4gP5BkN1tt2nNvLR2vjG5NzLIGfLzy18LFxI86vwC078Q==
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=uoI7B1/zU8kBCvCQKWt8vAlsd5wE3WnTXgvKAvfMKkI=;
 b=ia8wqr+i8RVj4Tvy+Up64GTaW9sEVJ7Kgd3v4DWKkmX3dubygNeCvIGpWOMhRgu6sAM97d4+t3+2b4TxL+MPKDDEpvY/PyFv+4t59inOnswtZukgrkVOe+iBxpVco9deEefFT0aD/n753htZ4HR58Ll1wQCzuOMBosPGUU7mpAla2gL4N/PUBRHq4B0QWBnxkN9xfDCYFVLERXw3NQlGXk/kTUblUYHaxRFAqdi0VDppl+yF29+zJsjtj511ctUnTTa+xwE4mBy+k1ggmP0MCf5cM/8gGqrhy2CHHYlYOHfI9zlxNUh7PtsdvK/slzXpXSrfPd2tpMpwf4sUcNr9Cw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uoI7B1/zU8kBCvCQKWt8vAlsd5wE3WnTXgvKAvfMKkI=;
 b=Zbnqq+4aGAQ/VhdbyNhn4c+0nD3zWPelCR/n8IKzRBXflNYMl0jlvQc4wGaRTKWWuQjlpTxPCOGQexTkNdm79mguQ7QeW25uwrW4iqDitp/K2521FuhmlZVXG6B2dxAaqKFQ3P6eZjp0wmDJCDQl/guVhwgFfSK+R1HSHfOMeNY=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Orzel, Michal" <Michal.Orzel@amd.com>
CC: Harry Ramsey <Harry.Ramsey@arm.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Hari Limaye <Hari.Limaye@arm.com>
Subject: Re: [PATCH 4/6] arm/mpu: Introduce modify_after_init_mappings
Thread-Topic: [PATCH 4/6] arm/mpu: Introduce modify_after_init_mappings
Thread-Index: AQHcbmyFulGILbBE7ECsCvfNrhQ4ULUkPf8A
Date: Tue, 16 Dec 2025 13:11:30 +0000
Message-ID: <1D457431-73BE-4FA6-A27C-7D130CB9EA53@arm.com>
References: <20251128095859.11264-1-harry.ramsey@arm.com>
 <20251128095859.11264-5-harry.ramsey@arm.com>
 <6acc279f-15d8-43c5-b676-7312de3dde5e@amd.com>
In-Reply-To: <6acc279f-15d8-43c5-b676-7312de3dde5e@amd.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|AS8PR08MB6118:EE_|DB1PEPF00050A00:EE_|PAXPR08MB7490:EE_
X-MS-Office365-Filtering-Correlation-Id: 11249669-e151-4b3c-daa7-08de3ca4c740
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?Z2FiMlA5b3h2Q0tsbHV5K3psazNZTS9Ob0NMRzQwRFNwc00xUDd5bnZiU09z?=
 =?utf-8?B?K2xPQmxyRmhlUVBaaWlVOHdiRktiWU1iNHN2bVhhaFpEbE5vL1pRS0RSUVc1?=
 =?utf-8?B?T3o5bDZMZ3VvcVlMcjFOYTh4enFmZ1pXMUZMenNxTW9yazROc0JiK25Jb24x?=
 =?utf-8?B?T05waWpOcXl4OXVneHFRT2tneTJRQkJZRW9FQU84VFpXUjhkN0NBSFlHM283?=
 =?utf-8?B?Q1JNclVlZk13cHhubmQwMHF4QmZKQ1RMN2Y1d3QzdFEvU1lLZmtsTG92aHRz?=
 =?utf-8?B?Q3hReU9ub2xVWkJxZnd1cmVhT05CNEk4YTk0K2xZcDZZMjF5d0kydkN6V29j?=
 =?utf-8?B?d0I3eFJOZm44TkJxcDZFUENxeWVBaDJWbUVsUTFqVjJMbXowemNGdHRlYXIw?=
 =?utf-8?B?RFV4R3F5S2grNDNiOFpqWE1pRHdFV2lDYXlST2MwS1FOS2FScVd0eUVZYSs1?=
 =?utf-8?B?eVlVNHVjMUZFckFiZDQ2OUxNL3pYaEk0TjNkck1RL1orK084OXRIekVZRzBK?=
 =?utf-8?B?VGVQVzdqT25EeUNNM1hncXdZZ2pLQ2wwM2Fpdk5QWjRzckMvOXBBTkVTSGxV?=
 =?utf-8?B?N2tGa1krL1huSThrQXhFbXUyS2s1cHV1WXZhalBGTkcyd0JBTVBycXZYZzJ5?=
 =?utf-8?B?UWh2Y2o2UjlBNTJ0YTRwTFNWWmEwbDBlSzZHRTMwOUVXY1h6Wm1kYVZBb1ZJ?=
 =?utf-8?B?MTFnSys1QW54STlGRFFvdXhwenR1OXA0Z2dzam9IcnJ0ZjBPU0Uyc2RFQTFH?=
 =?utf-8?B?NThRNnB3ak1hREtGMnRUS1hqeWZ3NFlhbC9ML0pVVElrQmFLWE5XRndjRk9t?=
 =?utf-8?B?aVhYVXh6QmxDVmJhWVFGODBKbmY3RWxLNUhDbG1WbEFWcElXczdxc3U5U2c0?=
 =?utf-8?B?bWhXOEc2TU1rUXBrSllGckhBSDMyMUVkbklKcktvVDk5UXpOREU0aUw4SUU2?=
 =?utf-8?B?NGVJUFdrYTI1cFBxV29ERkFpcVlvajNLc0d0SzBtOUk3SVEyRkdDM2hQdzhG?=
 =?utf-8?B?YUpKZEMxeWdEbHNHd1FyT3NBUDljRmdDRTFqbmlnYUROMlZFZ01hZjdzQzVx?=
 =?utf-8?B?azhHcVJJY04rSXpWN0JNbkM1czAzdWp2bFZkcEZiM2lITVFpeWpuNDN4MUR2?=
 =?utf-8?B?WUV5OUNjQzI5NkVZS1NQSCtkVG1BdEU5RVBxMmVqTkh0bThaVGZVYUU4SUJa?=
 =?utf-8?B?dEV4Uy9IdWw1c1VoTHBsNkNTdXVJTm5KVEFJUHJBa1B5bGlQRHl3RituMGRZ?=
 =?utf-8?B?bmNJQWRtUTgwdDBTRS9vUXlKc1RjcmgrY2dOVWprU01odkt0Szhva28xV09F?=
 =?utf-8?B?OGJad2NuRFRVQklXWWZrS3p3U2p0WnNtVHJUWmVOd2lKb0VFU01nRFIzN1Zm?=
 =?utf-8?B?SDRMRWdGY1cyRzAvcXJ4bDVoc3pIRms2U3pTSnJmRkJkZEpZNkhxZHI2SFJP?=
 =?utf-8?B?TGZ4em8vN3BLNXNpVTlsN1E0SzdyeDhzM2ptcjlEM0p6cjE4U3JnSWxoMkwz?=
 =?utf-8?B?d0E4dHM0aytGbmJrZlF5dVlNTnhXZmlKNHBqU0crYTBaWThueDQvanNpYmIr?=
 =?utf-8?B?SmhEQy80Y2J4QXJMLzRuOERad0RkQ2h0djMrWVZFcjJLZ1Fqa3FmQUlkRWpY?=
 =?utf-8?B?b2tndTBVODhFUWs0cVRkeWVvaE1jN1hUMFY0Vm95em1PWFQ3RURWcHdwSUxO?=
 =?utf-8?B?a3BmMkJQRHVZaHRDd3hKaVJCdnRKdFlxbVo0Wm5WQnMvN2hvdjN2QjByZzNs?=
 =?utf-8?B?dGdBK0xmSjZuWTliWkpwaVFCeVhSaDF0TmxMMkp1eUFSaHh3TzhGZVRQNkdq?=
 =?utf-8?B?bThOT0EwQzEwQU9xeURzMTllbG54MmdQVkI2Y2Q0dGs0b2xJRVJJYzQ0bzAr?=
 =?utf-8?B?bTA3dEdydkdWMU0zUGdJb3MxQmU2UWNqNW9YdFpJL05ibFpoUVNib0x4cldl?=
 =?utf-8?B?Y3Y1S2w3N291R04xNFkvNjlCSmwvMEh6dzhYM2hoUjZvTmgybGVzK1VsaHZC?=
 =?utf-8?B?TUtjNjZ5SUx5ZmZNbGZwdnVNUjFyanl1U0xMRU9MZi95N2t5S3hDeWNCQllp?=
 =?utf-8?Q?fAR7Ai?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <1E9F3E102B95344C910DF712133C84F7@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6118
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF00050A00.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	c3da79cf-de0e-4288-a7a3-08de3ca4a125
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|36860700013|14060799003|82310400026|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YVZHeUZvOW12dEp2ckh1M0dDeGxDZDIxVC9uMU9zM2lVMW1XcmlKZWVLQmNJ?=
 =?utf-8?B?YVZCdldaTHFGRVJNZGNYODZybm5lZlF2K1B3MnNZd1l2aWc5Z1FZMkJNODZa?=
 =?utf-8?B?aG51bDJXR2U1c1NQR3N2b2xad0phaExXeDR5VnROeExXVGpEa3JvMWpVN2xP?=
 =?utf-8?B?eDVTK0c1eUlHMEFXZVZMa09ZUmk5TTVkV0VoSzI2anF1MmZWK0ZBQlJyVnl1?=
 =?utf-8?B?Q2lyVzUxWEFGcHJoa3VRUHN5c0RRQU5QbmZ2eGFzUEdqYTlwUElRa1ZXZmhY?=
 =?utf-8?B?OExPVHZpZmcwQndOU3JtNWMzbUFnR3I5Mm5lZ1poaFloWlBMakM5ZmpSOW01?=
 =?utf-8?B?L0NiRmYxVVY1NGY0UUpDUU9mUGNON1RYVmNHcGF2VkZVTEpXODlqcUt4cmtU?=
 =?utf-8?B?SWhrWWJteGZqUit1bVVSZTUxSGtsMzFGYWwxMytEUVRKdWY3RjBYV3hMMGFS?=
 =?utf-8?B?ekp3RlZzeERiRnRzNTNreXM4c0lrWmFRZ3RyejB6bXQrcCtLNmdHYTBabW5D?=
 =?utf-8?B?K1h1NHBRUHhHcmtiWmdJQlZBVlpuZThrZ1VNdzhJejRwUkhFMVI2ZjNReG54?=
 =?utf-8?B?aWJhWE9VanpHZDVnQ3VnckRkTHFDRUVucWd5bVBRNEsxK1djb2tSVFpiNFhI?=
 =?utf-8?B?dE0vaVgyK3ViYjdUWDNLVVNUa0paRHZENERpbFJBbzF3Q0YzUXo2cFhlMjdT?=
 =?utf-8?B?bU5qNlI4ZEoyNDUxQ28ycXhhVEY3NVRFKytlK2FwdHN1NHg4cTZvVHVRUzRr?=
 =?utf-8?B?TGF3VkpLNTBSTkVYTGVhV2pZUmdyM0pFU1UvK0tIVnlmTEM2ZldhTFBmQzhl?=
 =?utf-8?B?a081K21aekNxMC9JSnNLeFBTczBXaUJPZWkvM2RRT29QcitLUkQvcDEwMldl?=
 =?utf-8?B?ZnU1Z0lqalM3T2hsWjJ5cUVpaVVFOUtoenVPVVZQY1VaSkZXNW5kaXNSeUlh?=
 =?utf-8?B?L3lpNXJ5U1FnNkdwQzd5UVhaRzRRVkFGWktVRmNUQ20zUHFFOGRkL2dickor?=
 =?utf-8?B?aGV4K0JMSjE0M2h5RHBOa0tnOWFlRmhMc083dzh0a2NVbCtWUmY3VjlOaVdT?=
 =?utf-8?B?dEhxQ0hmR0NyZkNqWTdnMEY0L1BKRFliY21UVm82SUM5MXJWNzdPMlA2bnR3?=
 =?utf-8?B?ZDFuelBva0NTbU4venBrQmhlb1hldGZHbXZyM3FyWDYvdDhxYzQzdmlNNWdt?=
 =?utf-8?B?eW9ZTWYvTlpDejVadzA2K1RqRzVLbUpmVFF3TnVhUjZrejg0T2ozcnJxR0lX?=
 =?utf-8?B?Q0k2N0V4VmpkV3NWZmN2cVc4OVUrWndoRHBmMWpGTlRpQndxd2pRZ0wxd2xx?=
 =?utf-8?B?MlVWN2E2NzNHMW5KeitlQnA2Q095SGdsK2JDTTA0WlpSOEZrbVRzNWRxY3Jp?=
 =?utf-8?B?bnVMbTI4ZTYzY1NUYlZCc0V2VXViYnhZaWM1MG1sbS84Vk1HcVE1TVZMV29E?=
 =?utf-8?B?bEJJL3BaOER6VktBMmlYbHNKL1pEaEo5bzNiSmdFYlZaMjBQMVdiZytnMXZT?=
 =?utf-8?B?VmMzR3hTajdHcU9QdzFnTGJybXdTdEt5S2VPUk5zSU42SGsyWStYeDFOSTBq?=
 =?utf-8?B?Y3d6dTUvZmlqWGorRlF0bjNOU2NJazMzdFd5U2VVR2tDejVnYk85WEVybGdp?=
 =?utf-8?B?L0srcThvaHpEK0JGRjlQTmJGUWV0N3N4ajdhamFpd2JKbUltME5uQzV4eGwr?=
 =?utf-8?B?NmFNcUNRUURKOHZDY1ZJRlJ3aUtMSndQSTd2MWpqWnlZSkhtNmJ1UlJRNjlr?=
 =?utf-8?B?QmtGaG9PUWRTcXJaOFhwZTdZK3hydmhnb0dqaWpZWWJaNWJBL0RKZEN5MVkv?=
 =?utf-8?B?OW5Fck9lWUxiVzB0a1RVZUovZ05TZGRIMVN6SGFyUS8wV0VSQ3RpNDhGaXJL?=
 =?utf-8?B?VGMxL3pYMXNzNHhsejlySEFXNGg0UkhueHZkc2RNT3ZyYlp1VkNmOXlZdWVT?=
 =?utf-8?B?b0c0Ujdqd3l0SFBnMzZrTnVHeXRjL2lvSzl0cUpNenQ4d3hORlhPWDZxWTU1?=
 =?utf-8?B?Y2p3a2Z1ZVZQb05VRTBHZHRyZEdweFJMOURXa3NVL2RKdWphSmZhbmxsUUg0?=
 =?utf-8?B?QzRPNXRmT2ZQZ0Exd2tGSjY0WVE3ZUw5WEkrRVl0bHhXek5TWHlTUEpYM2RK?=
 =?utf-8?Q?aLy4=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(36860700013)(14060799003)(82310400026)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2025 13:12:34.7333
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 11249669-e151-4b3c-daa7-08de3ca4c740
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF00050A00.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7490

SGkgTWljaGFlbCwNCg0KPiBPbiAxNiBEZWMgMjAyNSwgYXQgMDk6MTUsIE9yemVsLCBNaWNoYWwg
PE1pY2hhbC5PcnplbEBhbWQuY29tPiB3cm90ZToNCj4gDQo+IA0KPiANCj4gT24gMjgvMTEvMjAy
NSAxMDo1OCwgSGFycnkgUmFtc2V5IHdyb3RlOg0KPj4gRnJvbTogTHVjYSBGYW5jZWxsdSA8bHVj
YS5mYW5jZWxsdUBhcm0uY29tPg0KPj4gDQo+PiBEdXJpbmcgYGluaXRfZG9uZWAsIFhlbiBzZXRz
IHRoZSBwZXJtaXNzaW9ucyBvZiBhbGwgc3ltYm9scyBtYXJrZWQgd2l0aA0KPj4gX19yb19hZnRl
cl9pbml0IHRvIGJlIHJlYWQtb25seS4gQ3VycmVudGx5IHRoaXMgaXMgYWNoaWV2ZWQgYnkgY2Fs
bGluZw0KPj4gYG1vZGlmeV94ZW5fbWFwcGluZ3NgIGFuZCB3aWxsIHNocmluayB0aGUgUlcgbWFw
cGluZyBvbiBvbmUgc2lkZSBhbmQNCj4+IGV4dGVuZCB0aGUgUk8gbWFwcGluZyBvbiB0aGUgb3Ro
ZXIuDQo+IENhbiB5b3UgYmUgbW9yZSBzcGVjaWZpYyBhYm91dCB0aGUgc2lkZXMgeW91IG1lbnRp
b24/IEhvdyBkaWQgeW91IGRlZHVjZSBpdD8NCj4gSSBhc3N1bWUgeW91IGFyZSB0YWxraW5nIGFi
b3V0IE1NVSBwYXJ0Lg0KDQpZb3UgYXJlIHJpZ2h0LCB0aGlzIHNlbnRlbmNlIGlzIGEgYml0IG1p
c2xlYWRpbmcuDQpTbyB3aGF0IHdhcyB3cml0dGVuIGhlcmUgd2FzIG1lYW50IHRvIHNheSB0aGF0
IG9uIE1QVSBtb2RpZnlfeGVuX21hcHBpbmdzDQpzaG91bGQgc2hyaW5rIHRoZSBSVyBtYXBwaW5n
IHJlZ2lvbiBhbmQgZXh0ZW5kIHRoZSBSTyBtYXBwaW5nIHJlZ2lvbiBiZWNhdXNlDQphcyBvZiBu
b3cgdGhleSBhcmUgZGVjbGFyZWQgbGlrZSB0aGlzIGluIHhlbi5sZHMuUzoNCg0KcmVhZCBvbmx5
IGRhdGE6DQorLS0tLS0tLS0tLS0tLS0tLS0tKw0KfCBfc3JvZGF0YSAgICAgICAgIHwNCnwgX2Vy
b2RhdGEgICAgICAgICB8DQorLS0tLS0tLS0tLS0tLS0tLS0tLSsNCg0KUlcgZGF0YToNCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQp8IF9fcm9fYWZ0ZXJfaW5pdF9zdGFydCB8DQp8IF9f
cm9fYWZ0ZXJfaW5pdF9lbmQgIHwNCnwgX19pbml0X2JlZ2luICAgICAgICAgICAgICB8DQorLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KDQpBbmQgaW4gaGVhZC5TIHdlIG1hcCBsaWtlIHRo
aXM6DQoNCi8qIFhlbiByZWFkLW9ubHkgZGF0YSBzZWN0aW9uLiAqLw0KbGRyIHgxLCA9X3Nyb2Rh
dGENCmxkciB4MiwgPV9lcm9kYXRhDQpwcmVwYXJlX3hlbl9yZWdpb24geDAsIHgxLCB4MiwgeDMs
IHg0LCB4NSwgYXR0cl9wcmJhcj1SRUdJT05fUk9fUFJCQVINCg0KLyogWGVuIHJlYWQtb25seSBh
ZnRlciBpbml0IGFuZCBkYXRhIHNlY3Rpb24uIChSVyBkYXRhKSAqLw0KbGRyIHgxLCA9X19yb19h
ZnRlcl9pbml0X3N0YXJ0DQpsZHIgeDIsID1fX2luaXRfYmVnaW4NCnByZXBhcmVfeGVuX3JlZ2lv
biB4MCwgeDEsIHgyLCB4MywgeDQsIHg1DQoNCk5vdywgYmVjYXVzZSAoX19yb19hZnRlcl9pbml0
X3N0YXJ0LCBfX3JvX2FmdGVyX2luaXRfZW5kKSBuZWVkcyB0byBiZWNvbWUgUk8sDQppdCBtZWFu
cyB0aGF0IFJPIHNlY3Rpb24gd2lsbCBiZSBleHRlbmRlZCB0byAoX3Nyb2RhdGEsIF9fcm9fYWZ0
ZXJfaW5pdF9lbmQpIGFuZA0KUlcgc2VjdGlvbiB3aWxsIGJlIHNocmlua2VkIHRvIChfX3JvX2Fm
dGVyX2luaXRfZW5kLCBfX2luaXRfYmVnaW4pOg0KDQpyZWFkIG9ubHkgZGF0YSByZWdpb246DQor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQp8IF9zcm9kYXRhICAgICAgICAgICAgICAgICAg
fA0KfCBfX3JvX2FmdGVyX2luaXRfZW5kIHwNCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsN
Cg0KUlcgZGF0YSByZWdpb246DQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KfCBfX3Jv
X2FmdGVyX2luaXRfZW5kICB8DQp8IF9faW5pdF9iZWdpbiAgICAgICAgICAgICAgfA0KKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCg0KU28gd2hhdCB3ZeKAmXZlIGRvbmUgaXMgdGFraW5n
IChfX3JvX2FmdGVyX2luaXRfc3RhcnQsIF9fcm9fYWZ0ZXJfaW5pdF9lbmQpIGZyb20NCnRoZSBS
VyByZWdpb24gYW5kIGF0dGFjaCBpdCB0byB0aGUgUk8gcmVnaW9uLg0KDQo+IA0KPj4gDQo+PiBU
aGlzIGRvZXMgbm90IHdvcmsgb24gTVBVIHN5c3RlbXMgYXQgcHJlc2VudCBiZWNhdXNlIHBhcnQt
cmVnaW9uDQo+PiBtb2RpZmljYXRpb24gaXMgbm90IHN1cHBvcnRlZC4gVGhlcmVmb3JlIGludHJv
ZHVjZSB0aGUgZnVuY3Rpb24NCj4gV2hhdCBlbHNlIGlzIGluIHRoYXQgcmVnaW9uPw0KPiBXb3Vs
ZG4ndCBpdCBiZSBiZXR0ZXIgdG8gaGF2ZSBvbmUgcmVnaW9uIGZvciB0aGlzIF9fcm9fYWZ0ZXJf
aW5pdCBzbyB0aGF0IHdlDQo+IGRvbid0IG5lZWQgdG8gc2hyaW5rL2V4dGVuZCB0aGUgbWFwcGlu
Z3M/IElzIGl0IGRvbmUgYmVjYXVzZSBvZiBudW1iZXIgb2YNCj4gcmVnaW9ucyBsaW1pdGF0aW9u
Pw0KDQpTbyBpZiB3ZSBkbyBpbiB0aGlzIHdheSB3ZSB3YXN0ZSBvbmUgcmVnaW9uLCBiZWNhdXNl
IHdlIHdpbGwgaGF2ZSAyIHJlZ2lvbiBkZWNsYXJlZA0KUk8gdGhhdCBhcmUgYWxzbyBjb250aWd1
b3VzLCBzbyBlYXNpbHkgbWVyZ2VhYmxlLCBsaWtlIGhvdyB3ZSBhcmUgZG9pbmcgYWJvdmUgYnkN
CkV4dGVuZGluZy9zaHJpbmtpbmcuDQoNCkNoZWVycywNCkx1Y2ENCg0K


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 13:42:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 13:42:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187923.1509218 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVVJO-00080g-9h; Tue, 16 Dec 2025 13:41:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187923.1509218; Tue, 16 Dec 2025 13:41:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVVJO-00080Z-60; Tue, 16 Dec 2025 13:41:58 +0000
Received: by outflank-mailman (input) for mailman id 1187923;
 Tue, 16 Dec 2025 13:41:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=JXU2=6W=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vVVJN-00080T-Hd
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 13:41:57 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fb41b3d8-da84-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 14:41:53 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id DCB9F5BCDC;
 Tue, 16 Dec 2025 13:41:52 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 1793F3EA63;
 Tue, 16 Dec 2025 13:41:52 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id ug7mA6BhQWmEHwAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 16 Dec 2025 13:41:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb41b3d8-da84-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1765892512; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=Kst14HrOHOUE5u6TMXwha6+cn8BnRd3Oo7OuhXwUE9I=;
	b=nwkDB4XJwqJ5qg8riyEUZwJ05UQqY+ll/6mkuKlVY7KytI0cCnU9IrZbiJq0/yhm5ZnQD8
	vp9oDeShUgYaPH7GYSu59SUTywMJ1jjetdQCLuE/Anm/9dvdMV/rytY7xz7XBHbLGJNsdY
	Qp+UFjHGULvUo/2u0S8ZGvTzquVnO6I=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1765892512; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=Kst14HrOHOUE5u6TMXwha6+cn8BnRd3Oo7OuhXwUE9I=;
	b=nwkDB4XJwqJ5qg8riyEUZwJ05UQqY+ll/6mkuKlVY7KytI0cCnU9IrZbiJq0/yhm5ZnQD8
	vp9oDeShUgYaPH7GYSu59SUTywMJ1jjetdQCLuE/Anm/9dvdMV/rytY7xz7XBHbLGJNsdY
	Qp+UFjHGULvUo/2u0S8ZGvTzquVnO6I=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	virtualization@lists.linux.dev,
	kvm@vger.kernel.org,
	linux-block@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	xen-devel@lists.xenproject.org,
	Denis Efremov <efremov@linux.com>,
	Jens Axboe <axboe@kernel.dk>
Subject: [PATCH v2 0/5] x86: Cleanups around slow_down_io()
Date: Tue, 16 Dec 2025 14:41:44 +0100
Message-ID: <20251216134150.2710-1-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-2.80 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-0.992];
	MIME_GOOD(-0.10)[text/plain];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	RCPT_COUNT_TWELVE(0.00)[20];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.com:mid];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	TO_DN_SOME(0.00)[];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Level: 
X-Spam-Flag: NO
X-Spam-Score: -2.80

While looking at paravirt cleanups I stumbled over slow_down_io() and
the related REALLY_SLOW_IO define.

Do several cleanups, resulting in a deletion of REALLY_SLOW_IO and the
io_delay() paravirt function hook.

Patch 4 is removing the config options for selecting the default delay
mechanism and sets the default to "no delay". This is in preparation of
removing the io_delay() functionality completely, as suggested by Ingo
Molnar.

Patch 5 is adding an additional config option allowing to avoid
building io_delay.c (default is still to build it).

Changes in V2:
- patches 2 and 3 of V1 have been applied
- new patches 4 and 5

Juergen Gross (5):
  x86/paravirt: Replace io_delay() hook with a bool
  block/floppy: Don't use REALLY_SLOW_IO for delays
  x86/io: Remove REALLY_SLOW_IO handling
  x86/io_delay: Switch io_delay() default mechanism to "none"
  x86/io_delay: Add config option for controlling build of io_delay.

 arch/x86/Kconfig                      |  8 +++
 arch/x86/Kconfig.debug                | 30 ----------
 arch/x86/include/asm/floppy.h         | 31 ++++++++--
 arch/x86/include/asm/io.h             | 17 +++---
 arch/x86/include/asm/paravirt.h       | 11 +---
 arch/x86/include/asm/paravirt_types.h |  3 +-
 arch/x86/kernel/Makefile              |  3 +-
 arch/x86/kernel/cpu/vmware.c          |  2 +-
 arch/x86/kernel/io_delay.c            | 81 +--------------------------
 arch/x86/kernel/kvm.c                 |  8 +--
 arch/x86/kernel/paravirt.c            |  3 +-
 arch/x86/kernel/setup.c               |  4 +-
 arch/x86/xen/enlighten_pv.c           |  6 +-
 drivers/block/floppy.c                |  2 -
 14 files changed, 55 insertions(+), 154 deletions(-)

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 13:42:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 13:42:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187924.1509229 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVVJS-0008EO-HG; Tue, 16 Dec 2025 13:42:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187924.1509229; Tue, 16 Dec 2025 13:42:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVVJS-0008EF-Cs; Tue, 16 Dec 2025 13:42:02 +0000
Received: by outflank-mailman (input) for mailman id 1187924;
 Tue, 16 Dec 2025 13:42:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=JXU2=6W=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vVVJR-00080T-3c
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 13:42:01 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fea8dddc-da84-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 14:41:59 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 02B875BCD9;
 Tue, 16 Dec 2025 13:41:59 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 4FDEA3EA63;
 Tue, 16 Dec 2025 13:41:58 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id jRe6EaZhQWmJHwAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 16 Dec 2025 13:41:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fea8dddc-da84-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1765892519; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=AR9YJoS/ZrGpIqMtjrLccD/9zZj/TpZQABpLh6glIqg=;
	b=DkVkBcd5mBJQwy0RPRVIJHi8UZSzCLnz2M6ZC+CBmmUp2O9YgvKple7Q3Z5ycz/89MNVQv
	tySgursow+vR91U+STvdo4ph0OZfaipg9r6mNnD5zxK7T9zfi+j6nLzNrgot4OneY02lFm
	VO9LaqLa5t9rEqzYanEyIbB8A3jUldk=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1765892519; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=AR9YJoS/ZrGpIqMtjrLccD/9zZj/TpZQABpLh6glIqg=;
	b=DkVkBcd5mBJQwy0RPRVIJHi8UZSzCLnz2M6ZC+CBmmUp2O9YgvKple7Q3Z5ycz/89MNVQv
	tySgursow+vR91U+STvdo4ph0OZfaipg9r6mNnD5zxK7T9zfi+j6nLzNrgot4OneY02lFm
	VO9LaqLa5t9rEqzYanEyIbB8A3jUldk=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	virtualization@lists.linux.dev,
	kvm@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 1/5] x86/paravirt: Replace io_delay() hook with a bool
Date: Tue, 16 Dec 2025 14:41:45 +0100
Message-ID: <20251216134150.2710-2-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251216134150.2710-1-jgross@suse.com>
References: <20251216134150.2710-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-6.80 / 50.00];
	REPLY(-4.00)[];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-0.989];
	MIME_GOOD(-0.10)[text/plain];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	RCPT_COUNT_TWELVE(0.00)[17];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	R_RATELIMIT(0.00)[to_ip_from(RLfdszjqhz8kzzb9uwpzdm8png)];
	TO_DN_SOME(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo]
X-Spam-Level: 
X-Spam-Flag: NO
X-Spam-Score: -6.80

The io_delay() paravirt hook is in no way performance critical and all
users setting it to a different function than native_io_delay() are
using an empty function as replacement.

This enables to replace the hook with a bool indicating whether
native_io_delay() should be called.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/include/asm/io.h             |  7 +++++--
 arch/x86/include/asm/paravirt.h       | 11 +----------
 arch/x86/include/asm/paravirt_types.h |  3 +--
 arch/x86/kernel/cpu/vmware.c          |  2 +-
 arch/x86/kernel/kvm.c                 |  8 +-------
 arch/x86/kernel/paravirt.c            |  3 +--
 arch/x86/xen/enlighten_pv.c           |  6 +-----
 7 files changed, 11 insertions(+), 29 deletions(-)

diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
index ca309a3227c7..0448575569b9 100644
--- a/arch/x86/include/asm/io.h
+++ b/arch/x86/include/asm/io.h
@@ -245,9 +245,14 @@ extern void io_delay_init(void);
 #if defined(CONFIG_PARAVIRT)
 #include <asm/paravirt.h>
 #else
+#define call_io_delay() true
+#endif
 
 static inline void slow_down_io(void)
 {
+	if (!call_io_delay())
+		return;
+
 	native_io_delay();
 #ifdef REALLY_SLOW_IO
 	native_io_delay();
@@ -256,8 +261,6 @@ static inline void slow_down_io(void)
 #endif
 }
 
-#endif
-
 #define BUILDIO(bwl, type)						\
 static inline void out##bwl##_p(type value, u16 port)			\
 {									\
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index b5e59a7ba0d0..0ab798d234cc 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -53,16 +53,7 @@ static inline u64 paravirt_steal_clock(int cpu)
 void __init paravirt_set_cap(void);
 #endif
 
-/* The paravirtualized I/O functions */
-static inline void slow_down_io(void)
-{
-	PVOP_VCALL0(cpu.io_delay);
-#ifdef REALLY_SLOW_IO
-	PVOP_VCALL0(cpu.io_delay);
-	PVOP_VCALL0(cpu.io_delay);
-	PVOP_VCALL0(cpu.io_delay);
-#endif
-}
+#define call_io_delay() pv_info.io_delay
 
 void native_flush_tlb_local(void);
 void native_flush_tlb_global(void);
diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
index 3502939415ad..b4c15856eab5 100644
--- a/arch/x86/include/asm/paravirt_types.h
+++ b/arch/x86/include/asm/paravirt_types.h
@@ -36,6 +36,7 @@ struct pv_info {
 #ifdef CONFIG_PARAVIRT_XXL
 	u16 extra_user_64bit_cs;  /* __USER_CS if none */
 #endif
+	bool io_delay;
 
 	const char *name;
 };
@@ -51,8 +52,6 @@ struct pv_lazy_ops {
 
 struct pv_cpu_ops {
 	/* hooks for various privileged instructions */
-	void (*io_delay)(void);
-
 #ifdef CONFIG_PARAVIRT_XXL
 	unsigned long (*get_debugreg)(int regno);
 	void (*set_debugreg)(int regno, unsigned long value);
diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
index cb3f900c46fc..47db25d63c8d 100644
--- a/arch/x86/kernel/cpu/vmware.c
+++ b/arch/x86/kernel/cpu/vmware.c
@@ -338,7 +338,7 @@ arch_initcall(activate_jump_labels);
 static void __init vmware_paravirt_ops_setup(void)
 {
 	pv_info.name = "VMware hypervisor";
-	pv_ops.cpu.io_delay = paravirt_nop;
+	pv_info.io_delay = false;
 
 	if (vmware_tsc_khz == 0)
 		return;
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index df78ddee0abb..24e403cdce69 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -74,12 +74,6 @@ DEFINE_PER_CPU_DECRYPTED(struct kvm_steal_time, steal_time) __aligned(64) __visi
 static int has_steal_clock = 0;
 
 static int has_guest_poll = 0;
-/*
- * No need for any "IO delay" on KVM
- */
-static void kvm_io_delay(void)
-{
-}
 
 #define KVM_TASK_SLEEP_HASHBITS 8
 #define KVM_TASK_SLEEP_HASHSIZE (1<<KVM_TASK_SLEEP_HASHBITS)
@@ -313,7 +307,7 @@ static void __init paravirt_ops_setup(void)
 	pv_info.name = "KVM";
 
 	if (kvm_para_has_feature(KVM_FEATURE_NOP_IO_DELAY))
-		pv_ops.cpu.io_delay = kvm_io_delay;
+		pv_info.io_delay = false;
 
 #ifdef CONFIG_X86_IO_APIC
 	no_timer_check = 1;
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index ab3e172dcc69..8ee952e7e7d4 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -113,6 +113,7 @@ struct pv_info pv_info = {
 #ifdef CONFIG_PARAVIRT_XXL
 	.extra_user_64bit_cs = __USER_CS,
 #endif
+	.io_delay = true,
 };
 
 /* 64-bit pagetable entries */
@@ -120,8 +121,6 @@ struct pv_info pv_info = {
 
 struct paravirt_patch_template pv_ops = {
 	/* Cpu ops. */
-	.cpu.io_delay		= native_io_delay,
-
 #ifdef CONFIG_PARAVIRT_XXL
 	.cpu.cpuid		= native_cpuid,
 	.cpu.get_debugreg	= pv_native_get_debugreg,
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 4806cc28d7ca..a43b525f25cd 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1046,10 +1046,6 @@ static void xen_update_io_bitmap(void)
 }
 #endif
 
-static void xen_io_delay(void)
-{
-}
-
 static DEFINE_PER_CPU(unsigned long, xen_cr0_value);
 
 static unsigned long xen_read_cr0(void)
@@ -1209,6 +1205,7 @@ void __init xen_setup_vcpu_info_placement(void)
 
 static const struct pv_info xen_info __initconst = {
 	.extra_user_64bit_cs = FLAT_USER_CS64,
+	.io_delay = false,
 	.name = "Xen",
 };
 
@@ -1253,7 +1250,6 @@ static const typeof(pv_ops) xen_cpu_ops __initconst = {
 		.invalidate_io_bitmap = xen_invalidate_io_bitmap,
 		.update_io_bitmap = xen_update_io_bitmap,
 #endif
-		.io_delay = xen_io_delay,
 
 		.start_context_switch = xen_start_context_switch,
 		.end_context_switch = xen_end_context_switch,
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 13:49:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 13:49:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187947.1509237 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVVQI-0000qz-9Z; Tue, 16 Dec 2025 13:49:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187947.1509237; Tue, 16 Dec 2025 13:49:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVVQI-0000qs-6p; Tue, 16 Dec 2025 13:49:06 +0000
Received: by outflank-mailman (input) for mailman id 1187947;
 Tue, 16 Dec 2025 13:49:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=vxAe=6W=kernel.org=mingo@srs-se1.protection.inumbo.net>)
 id 1vVVQG-0000qm-UQ
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 13:49:04 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fa351610-da85-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 14:49:02 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 6B2DA41674;
 Tue, 16 Dec 2025 13:49:00 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 72A5DC4CEF1;
 Tue, 16 Dec 2025 13:48:55 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fa351610-da85-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765892940;
	bh=ENgGIlHWOI7j9oryiinlH9PuwlxwZFPAtyFI4Y4Ygjg=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=m/6CcZAuqci8q2SjaET3oYExJ5pIDzG6Bkyn9xx/jiXVDV8WBhO9pvXiR2VCyDMlJ
	 emucJpSeQwx5SJHGvWj3ddQOJu5Q4IUGGhmBK9Xrw1iQcs8BQyTsJzY68+xLDGPcWo
	 UTPttdG/15a2H1fpDb9ly8akJ+ncJkijB6d7fIUQVqxM+VX8iQsipyINC7FjrtdVkT
	 XoSSMnlcrtxgAcTz7t6uMJkcSKzInRgepKxiXP3eNJ01tvTMFIUz0rpXxYZA81e/BT
	 4cqROLpKbIdz4FufnE1FjO7Eylum1Ia/Gu4gURVn1g9V+Rm/7wjKcGGF2eD/Blqsph
	 Tz7xB1aE1TW3g==
Date: Tue, 16 Dec 2025 14:48:52 +0100
From: Ingo Molnar <mingo@kernel.org>
To: =?iso-8859-1?Q?J=FCrgen_Gro=DF?= <jgross@suse.com>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
	virtualization@lists.linux.dev, kvm@vger.kernel.org,
	linux-hwmon@vger.kernel.org, linux-block@vger.kernel.org,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	xen-devel@lists.xenproject.org, Jean Delvare <jdelvare@suse.com>,
	Guenter Roeck <linux@roeck-us.net>,
	Denis Efremov <efremov@linux.com>, Jens Axboe <axboe@kernel.dk>
Subject: Re: [PATCH 0/5] x86: Cleanups around slow_down_io()
Message-ID: <aUFjRDqbfWMsXvvS@gmail.com>
References: <20251126162018.5676-1-jgross@suse.com>
 <aT5vtaefuHwLVsqy@gmail.com>
 <bff8626d-161e-4470-9cbd-7bbda6852ec3@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <bff8626d-161e-4470-9cbd-7bbda6852ec3@suse.com>


* Jrgen Gro <jgross@suse.com> wrote:

> > CPUs anymore. Should it cause any regressions, it's easy to bisect to.
> > There's been enough changes around all these facilities that the
> > original timings are probably way off already, so we've just been
> > cargo-cult porting these to newer kernels essentially.
>
> Fine with me.
>
> Which path to removal of io_delay would you (and others) prefer?
>
> 1. Ripping it out immediately.

I'd just rip it out immediately, and see who complains. :-)

Whatever side effects it still may have, I very strongly doubt it has
anything to do with the original purpose of IO delays...

> In cases 2-4 I'd still like to have patch 1 of my series applied, as it will
> make paravirt rework easier.

Sure.

Thanks,

	Ingo



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 13:56:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 13:56:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187958.1509247 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVVWx-0002NQ-UT; Tue, 16 Dec 2025 13:55:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187958.1509247; Tue, 16 Dec 2025 13:55:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVVWx-0002NJ-Rp; Tue, 16 Dec 2025 13:55:59 +0000
Received: by outflank-mailman (input) for mailman id 1187958;
 Tue, 16 Dec 2025 13:55:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=JXU2=6W=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vVVWw-0002ND-Ua
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 13:55:58 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f1c7291e-da86-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 14:55:56 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-b713c7096f9so776076266b.3
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 05:55:56 -0800 (PST)
Received: from ?IPV6:2003:e5:8704:4800:66fd:131f:60bd:bc29?
 (p200300e58704480066fd131f60bdbc29.dip0.t-ipconnect.de.
 [2003:e5:8704:4800:66fd:131f:60bd:bc29])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa56a7f9sm1664639666b.51.2025.12.16.05.55.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Dec 2025 05:55:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f1c7291e-da86-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765893356; x=1766498156; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=MZJ3FETBXD9TS3o6//ymZAuDIhX6kGuwiVGP8SgrP7s=;
        b=B9gqbeaHgWeNkk/nbezib5VaAYCoD9r9lbI6pNlcxR6tSFy+FK3qWQEwIX+OrmuVAA
         qveYn8JR+/AHzLVke9Ko4p3HDPajGfWeNtfsV9AoPIGF+t7DpNtSfQpmugprWB1kWCnK
         i9ypWJamlo2fZxXm/mNjI9NNigfuKwYwy5EBiMXnmEWVH0k3z4yAGjuZ8O6fZnL7jULX
         4CWXlk1tTvGILeyhJE/CdMuhkI2c9TNAZEgzzxcibb51ZPTJ9DBG5s2ItJv7L9+qetxQ
         ygzMv65Y0MV2hl/B6aWXeWmPefmQWja4he+Bz+4yNMUYtAlk9om8TvKk95/FY0WfcWFw
         n7KA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765893356; x=1766498156;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=MZJ3FETBXD9TS3o6//ymZAuDIhX6kGuwiVGP8SgrP7s=;
        b=rrFgvmbkKbpN5/ogInRjbPZiWGN8BQ+7eD9yZl+Z17DoGtWEq1sm66JqALtggOH+iA
         ZnX/K+vr+P9UycfTsNOnRr3RNExKUQzBHuhxR7KOswq1TqJTkWp6dCJaau3ajXuyllcP
         adWwevbqpYiuqdSmlHL4SzY3GEPbq0cTAac+krp8jo03Rs5vpLrdoqqGlrQqNpw8f6/K
         gffQBYHgoapkCUvKjKZEMv/H7KGLOxWL5L3aebPWC4bOPmfUp87efeyV65tJbAFCjwM5
         061AuDgcoP3lKv2X2moPUWLrz5ZI4boUrdwebLApZpaRdwPbSQ4nBEhDDHNlEWaPk/0u
         QYcg==
X-Forwarded-Encrypted: i=1; AJvYcCUbdbfMWR00fg/U9wLOqylyUdgG3apTcNPhFwRbvbdbblxhI+JWfmx6QYxNc1KWIEQAVhtTGIjq55E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxMmSi1AmAe1x1EWfKDa8CYEPPW6UtIw6SRdf1Rajj9xzHKaZ2F
	bJE6BAq8j/Ex+DThQcjUw8BrTpnYV8MH7URu5YGWQnS1CT/ziBHjvWlTYRGclpsMx+c=
X-Gm-Gg: AY/fxX53HJBlSQFAI9UfH6W08mpDMGgDQHsjCJbNJnAUzCNqgdBJvYpzH0+LLMi4ERd
	Voa1nmKOBe0OIdGm4GtDc4r2dUIkfWkOir9ctx64w4TBY75rL8Vn6hAbdbuYnA/QRuUAQPyecPX
	4ZI0luXzSm9iBLdgnIRx+l19JadvqulmPtayhJrQc+am9/M1zItoNe0KK3AASc3mEmfuJqcKuxs
	Zdn38mYRJAtolBOylWRKr/pwf1Li7Xzobqv6Q8FbcSPpgLTwpNFeSjjER6gCNQ24A4Dv3n8HOUm
	XPskGe/6yRJvBcQq6eLFWBTbjGEfjgmcDZjeunzXMT1CamSJk9BVGDOq+XQ2uI/MXsKawxChxBE
	pLuSvUMKYfjj9bc7mGUIMMXiAaQY3o91yUOP8osTfR1bkp5SG6VQeVH/Pk9A/6AtlexSwit3N5e
	hSgTdmsLO8SAEHdsgLlGnL1mo+/SVrSRN5Q9rKgIpEGPQhlLrjpyvMc3r3gGuiJNtkl4Lnn6yrZ
	w7O+irRTr4NUGU7YtsMemhQfZ6IePxgFM2NfMDHyrH+RgwUbw==
X-Google-Smtp-Source: AGHT+IHzZQ3OEAigaywtzQ9r+hHh1OJDEQW4HOx/O5epDoa3HSt7OtaAwfQ43xfhubj1spEkYKExSg==
X-Received: by 2002:a17:906:9fc8:b0:b79:f4e4:b55d with SMTP id a640c23a62f3a-b7d23a64a76mr1505380966b.51.1765893356035;
        Tue, 16 Dec 2025 05:55:56 -0800 (PST)
Message-ID: <b969cff5-be11-4fd3-8356-95185ea5de4c@suse.com>
Date: Tue, 16 Dec 2025 14:55:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/5] x86: Cleanups around slow_down_io()
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
 virtualization@lists.linux.dev, kvm@vger.kernel.org,
 linux-hwmon@vger.kernel.org, linux-block@vger.kernel.org,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, Ajay Kaher <ajay.kaher@broadcom.com>,
 Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Paolo Bonzini
 <pbonzini@redhat.com>, Vitaly Kuznetsov <vkuznets@redhat.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, Jean Delvare <jdelvare@suse.com>,
 Guenter Roeck <linux@roeck-us.net>, Denis Efremov <efremov@linux.com>,
 Jens Axboe <axboe@kernel.dk>
References: <20251126162018.5676-1-jgross@suse.com>
 <aT5vtaefuHwLVsqy@gmail.com> <bff8626d-161e-4470-9cbd-7bbda6852ec3@suse.com>
 <aUFjRDqbfWMsXvvS@gmail.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <aUFjRDqbfWMsXvvS@gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------hG03P9e82QtHWkQdCpdPIljK"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------hG03P9e82QtHWkQdCpdPIljK
Content-Type: multipart/mixed; boundary="------------FRi08TqW3WbnvLOkdi4sn1XX";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
 virtualization@lists.linux.dev, kvm@vger.kernel.org,
 linux-hwmon@vger.kernel.org, linux-block@vger.kernel.org,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, Ajay Kaher <ajay.kaher@broadcom.com>,
 Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Paolo Bonzini
 <pbonzini@redhat.com>, Vitaly Kuznetsov <vkuznets@redhat.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, Jean Delvare <jdelvare@suse.com>,
 Guenter Roeck <linux@roeck-us.net>, Denis Efremov <efremov@linux.com>,
 Jens Axboe <axboe@kernel.dk>
Message-ID: <b969cff5-be11-4fd3-8356-95185ea5de4c@suse.com>
Subject: Re: [PATCH 0/5] x86: Cleanups around slow_down_io()
References: <20251126162018.5676-1-jgross@suse.com>
 <aT5vtaefuHwLVsqy@gmail.com> <bff8626d-161e-4470-9cbd-7bbda6852ec3@suse.com>
 <aUFjRDqbfWMsXvvS@gmail.com>
In-Reply-To: <aUFjRDqbfWMsXvvS@gmail.com>

--------------FRi08TqW3WbnvLOkdi4sn1XX
Content-Type: multipart/mixed; boundary="------------yS0Z00x0XwA0tB4BnEYEOAIQ"

--------------yS0Z00x0XwA0tB4BnEYEOAIQ
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMTYuMTIuMjUgMTQ6NDgsIEluZ28gTW9sbmFyIHdyb3RlOg0KPiANCj4gKiBKw7xyZ2Vu
IEdyb8OfIDxqZ3Jvc3NAc3VzZS5jb20+IHdyb3RlOg0KPiANCj4+PiBDUFVzIGFueW1vcmUu
IFNob3VsZCBpdCBjYXVzZSBhbnkgcmVncmVzc2lvbnMsIGl0J3MgZWFzeSB0byBiaXNlY3Qg
dG8uDQo+Pj4gVGhlcmUncyBiZWVuIGVub3VnaCBjaGFuZ2VzIGFyb3VuZCBhbGwgdGhlc2Ug
ZmFjaWxpdGllcyB0aGF0IHRoZQ0KPj4+IG9yaWdpbmFsIHRpbWluZ3MgYXJlIHByb2JhYmx5
IHdheSBvZmYgYWxyZWFkeSwgc28gd2UndmUganVzdCBiZWVuDQo+Pj4gY2FyZ28tY3VsdCBw
b3J0aW5nIHRoZXNlIHRvIG5ld2VyIGtlcm5lbHMgZXNzZW50aWFsbHkuDQo+Pg0KPj4gRmlu
ZSB3aXRoIG1lLg0KPj4NCj4+IFdoaWNoIHBhdGggdG8gcmVtb3ZhbCBvZiBpb19kZWxheSB3
b3VsZCB5b3UgKGFuZCBvdGhlcnMpIHByZWZlcj8NCj4+DQo+PiAxLiBSaXBwaW5nIGl0IG91
dCBpbW1lZGlhdGVseS4NCj4gDQo+IEknZCBqdXN0IHJpcCBpdCBvdXQgaW1tZWRpYXRlbHks
IGFuZCBzZWUgd2hvIGNvbXBsYWlucy4gOi0pDQoNCkkgZmlndXJlZCB0aGlzIG1pZ2h0IGJl
IGEgbGl0dGxlIGJpdCB0b28gZXZpbC4gOi0pDQoNCkkndmUganVzdCBzZW50IFYyIGRlZmF1
bHRpbmcgdG8gaGF2ZSBubyBkZWxheSwgc28gYW55b25lIGhpdCBieSB0aGF0DQpjYW4gc3Rp
bGwgZml4IGl0IGJ5IGFwcGx5aW5nIHRoZSAiaW9fZGVsYXkiIGJvb3QgcGFyYW1ldGVyLg0K
DQpJJ2xsIGRvIHRoZSByaXBwaW5nIG91dCBmb3Iga2VybmVsIDYuMjEgKG9yIHdoYXRldmVy
IGl0IHdpbGwgYmUgY2FsbGVkKS4NCg0KDQpKdWVyZ2VuDQo=
--------------yS0Z00x0XwA0tB4BnEYEOAIQ
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------yS0Z00x0XwA0tB4BnEYEOAIQ--

--------------FRi08TqW3WbnvLOkdi4sn1XX--

--------------hG03P9e82QtHWkQdCpdPIljK
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmlBZOoFAwAAAAAACgkQsN6d1ii/Ey+V
iAf9FVH0m3WXq4l8yruW3PIrj/mjEvEM0IMwcDdtj9CEaAkBhowu/FSHdVIyNNCmcOIhub1YYs58
8e0wwRGHAZxOjVI7ZUIP5hNH+RB6Ik5O9yIXDAPxEHK37EzMNPO738A0hnpG2OkugrM7UyfNxUW1
4otNpUsQ++CCamX/83gfOtKTuYymcyuj2gkrzfk+cth1IGIAvMhATN/sNlyllO5SKBnPaA9ER5HZ
sT3BHMoYq2FX2moh+Jgd0CFRwLE1R77KuxuUJIzYXv/MN8KQEiCekVCFrMD248e2p1696V47/OAQ
g2SQKlCrh1VZssHgMaSBE7Jx4c4xoejF5eVgLw+oww==
=CbB/
-----END PGP SIGNATURE-----

--------------hG03P9e82QtHWkQdCpdPIljK--


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 14:10:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 14:10:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187971.1509258 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVVlH-0005Rm-6q; Tue, 16 Dec 2025 14:10:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187971.1509258; Tue, 16 Dec 2025 14:10:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVVlH-0005Rf-42; Tue, 16 Dec 2025 14:10:47 +0000
Received: by outflank-mailman (input) for mailman id 1187971;
 Tue, 16 Dec 2025 14:10:45 +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
 <SRS0=5yu6=6W=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vVVlF-0005RY-LN
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 14:10:45 +0000
Received: from mail-ot1-x331.google.com (mail-ot1-x331.google.com
 [2607:f8b0:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 02510caa-da89-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 15:10:44 +0100 (CET)
Received: by mail-ot1-x331.google.com with SMTP id
 46e09a7af769-7cae2330765so3064507a34.0
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 06:10:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 02510caa-da89-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1765894242; x=1766499042; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vLkVLQ6doUJPusiJJnRT8V1HK2AOLoVVOlX6ZU4PdHw=;
        b=PQOBm6I6BrE1PRBg9b8kb/Rnr3MfV7ysIpKRg6MqG5b6suzOvsLY3EnnFE9uhXqhuH
         ArfTQKD6GOHL0dmupQFhB3zaDy0P4MA82xMRl31BuwwyvdN4ZWvXC1nmmyMWWeEsBAfz
         W1oUYcVOoCa+E27fRSC9SAoei/2u/+MlIEZX/WyPehahyA5yEPO0ZQjZ8GPmlUrTylbM
         JvIDy+atL67olIHAsrGA9x/z6bOwV0jye9k3LmJM1qNtNR9Gw7y/9V7Zeqb/+xwvHuxD
         u0sd+SYM5i0s5v0CEHVHP7uX1C/G4rW6BDQLy6D0W2xVct6uD/Oug/3SdnBjEk0TJqCS
         QP2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765894242; x=1766499042;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=vLkVLQ6doUJPusiJJnRT8V1HK2AOLoVVOlX6ZU4PdHw=;
        b=m4uqxaDgUvneZtBZzm8qdKyR43Zrix/6PrmpCaymFZltEBGYYHz09GkVkCceoT9HJl
         r34UWLHtXbMVhM2k2Gxwnbcm8MfGQGkk41J5/nL3wHd7zsFpS/8IhxcLzfkVjvnk+kEo
         FKQ68Njm7cFXlK5fk40rAV+TK9PqJ7LEc6gzl+BypcC5/Np3EnbkYseIdfyMxERmOf33
         la5MPPgjfqmDF2W3Ryms8Mg4kO6wtUkrZEg9UgycJ0kCYm3WhCQbzBkSWLwcKLuy10nv
         ZjSym0ZG7G866Y+qLTZsE01x0pIMQEXG06gCpo/Lo4liN7xM/MIFcMNnoh3XlRw+HcwI
         PgcA==
X-Gm-Message-State: AOJu0Yz9IU0iFKWyFr2joQGKhdq7AFx/686C1R+lAw5GzK4p2rYiY1hF
	GfxrxtJmaNywRCisWT3UyuxP8tvn2xv1rHA694k3YKNoR2rreD+khhu6/GauP4YzuLd5xBPPsmS
	DZngMTDhYXiFQtS6SxJniy5avX12xxUIutGnMD6a4Jg==
X-Gm-Gg: AY/fxX6k36/g4rHV+mtiSq3dO91RC3umRU080FtpHjWceb+0+99AXX5X0pQCqAyH/u5
	z/lfTXg0kH8JSMsof7dd3NOZdyeCpyxbXVHCP6QCGOT+M5Z+nOiIiDsZWx72rwmBNNWAqSQoZU6
	hRphGCYMbi/e/+83zVPXkGKLyHgNLnBMf9mcIhEvM5+J9HcTg/5S1JJcuJDyre4Cv0Oeq8wFUK1
	Tlj8F9gFfoWOuHAXO86KLAddUs/cW9miia2sZz3o43ZhfNiaiuqX3fvYjnClSiI13vkeXPZIrtF
	013PB0cLHMT6V3/rRBL79SejpQ==
X-Google-Smtp-Source: AGHT+IHAyEscQmKKdMyqUaJxLIVgjYDwUMG5rpQkwLwzo6H2cDNOx8H90JKkVvdN7RRqgrdA4e4C+SYFMKGu/9ZhG28=
X-Received: by 2002:a05:6820:1612:b0:659:9a49:8eec with SMTP id
 006d021491bc7-65b45269409mr7634862eaf.32.1765894242455; Tue, 16 Dec 2025
 06:10:42 -0800 (PST)
MIME-Version: 1.0
References: <cover.1765807707.git.bertrand.marquis@arm.com> <359051357e82739378c2ebfb5461d27951d42e7b.1765807707.git.bertrand.marquis@arm.com>
In-Reply-To: <359051357e82739378c2ebfb5461d27951d42e7b.1765807707.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 16 Dec 2025 15:10:30 +0100
X-Gm-Features: AQt7F2ojS9F7rVIhUmFMpfzy5sqGJYtnsD_rANtwkt8iNn1U4RpL2pZUvq6IwwM
Message-ID: <CAHUa44F3nUBjUX+HyDA6w2L6gGx9zScfgSCOtmE8H6k4g5_sPg@mail.gmail.com>
Subject: Re: [PATCH v2 02/12] xen/arm: ffa: per-VM FFA_VERSION negotiation state
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Mon, Dec 15, 2025 at 3:50=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Track FF-A version negotiation per VM and enforce that no FF-A ABI
> (other than FFA_VERSION) is processed before a guest has selected a
> version.
>
> Each ffa_ctx gains a dedicated guest_vers_lock, a negotiated version
> (guest_vers) and a guest_vers_tmp:
> - guest_vers is the version negotiated or 0 if no version has been
>   negotiated. This must be used with ACCESS_ONCE when reading it without
>   the spinlock taken.
> - guest_vers_tmp stores the version currently requested by a VM.
>
> The version requested is the one actually negotiated once a call
> different from FFA_VERSION is done to allow several attempts and as
> requested by FF-A specification.
> We always return our implementation version FFA_MY_VERSION, even if the
> version requested was different, as requested by FF-A specification.
>
> Any call other than FFA_VERSION is rejected until a version has been
> requested.
>
> Update all places in the code where guest_vers is used to use
> ACCESS_ONCE.
>
> This prevents partially initialised contexts from using the mediator
> and complies with the FF-A 1.2 FFA_VERSION semantics.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes in v2:
> - add comment on top of guest_vers to instruct to always use ACCESS_ONCE
>   to access it.
> Changes in v1:
> - remove the guest_vers_negotiated and use guest_vers =3D 0 as condition
>   for a version being negotiated instead
> - introduce guest_vers_tmp to store a requested version until it is
>   becoming the one negotiated.
> - remove not needed if negotiated condition.
> - use ACCESS_ONCE when reading guest_vers and use guest_vers =3D=3D 0 as
>   condition for a version being negotiated.
> - Update FF-A version handling comment in ffa_private.h
> ---
>  xen/arch/arm/tee/ffa.c          | 101 +++++++++++++++++++++++++-------
>  xen/arch/arm/tee/ffa_msg.c      |   2 +-
>  xen/arch/arm/tee/ffa_partinfo.c |   4 +-
>  xen/arch/arm/tee/ffa_private.h  |  27 +++++++--
>  xen/arch/arm/tee/ffa_shm.c      |   3 +-
>  5 files changed, 106 insertions(+), 31 deletions(-)

Looks good.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 2b4e24750d52..aadd6c21e7f2 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -158,31 +158,38 @@ static bool ffa_abi_supported(uint32_t id)
>      return !ffa_simple_call(FFA_FEATURES, id, 0, 0, 0);
>  }
>
> -static void handle_version(struct cpu_user_regs *regs)
> +static bool ffa_negotiate_version(struct cpu_user_regs *regs)
>  {
>      struct domain *d =3D current->domain;
>      struct ffa_ctx *ctx =3D d->arch.tee;
> -    uint32_t vers =3D get_user_reg(regs, 1);
> -    uint32_t old_vers;
> +    uint32_t fid =3D get_user_reg(regs, 0);
> +    uint32_t in_vers =3D get_user_reg(regs, 1);
> +    uint32_t out_vers =3D FFA_MY_VERSION;
>
> -    /*
> -     * Guest will use the version it requested if it is our major and mi=
nor
> -     * lower or equals to ours. If the minor is greater, our version wil=
l be
> -     * used.
> -     * In any case return our version to the caller.
> -     */
> -    if ( FFA_VERSION_MAJOR(vers) =3D=3D FFA_MY_VERSION_MAJOR )
> +    spin_lock(&ctx->guest_vers_lock);
> +
> +    /* If negotiation already published, continue without handling. */
> +    if ( ACCESS_ONCE(ctx->guest_vers) )
> +        goto out_continue;
> +
> +    if ( fid !=3D FFA_VERSION )
>      {
> -        spin_lock(&ctx->lock);
> -        old_vers =3D ctx->guest_vers;
> +        if ( !ctx->guest_vers_tmp )
> +        {
> +            out_vers =3D 0;
> +            goto out_handled;
> +        }
>
> -        if ( FFA_VERSION_MINOR(vers) > FFA_MY_VERSION_MINOR )
> -            ctx->guest_vers =3D FFA_MY_VERSION;
> -        else
> -            ctx->guest_vers =3D vers;
> -        spin_unlock(&ctx->lock);
> +        /*
> +         * A successful FFA_VERSION call does not freeze negotiation. Gu=
ests
> +         * are allowed to issue multiple FFA_VERSION attempts (e.g. prob=
ing
> +         * several minor versions). Negotiation becomes final only when =
a
> +         * non-VERSION ABI is invoked, as required by the FF-A specifica=
tion.
> +         * Finalize negotiation: publish guest_vers once, then never cha=
nge.
> +         */
> +        ACCESS_ONCE(ctx->guest_vers) =3D ctx->guest_vers_tmp;
>
> -        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !old_vers )
> +        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
>          {
>              /* One more VM with FF-A support available */
>              inc_ffa_vm_count();
> @@ -190,8 +197,48 @@ static void handle_version(struct cpu_user_regs *reg=
s)
>              list_add_tail(&ctx->ctx_list, &ffa_ctx_head);
>              write_unlock(&ffa_ctx_list_rwlock);
>          }
> +
> +        goto out_continue;
>      }
> -    ffa_set_regs(regs, FFA_MY_VERSION, 0, 0, 0, 0, 0, 0, 0);
> +
> +    /*
> +     * guest_vers_tmp stores the version selected by the guest (lower mi=
nor may
> +     * require reduced data structures). However, the value returned to =
the
> +     * guest via FFA_VERSION is always FFA_MY_VERSION, the implementatio=
n
> +     * version, as required by FF-A. The two values intentionally differ=
.
> +     */
> +
> +    /*
> +     * Return our highest implementation version on request different th=
an our
> +     * major and mark negotiated version as our implementation version.
> +     */
> +    if ( FFA_VERSION_MAJOR(in_vers) !=3D FFA_MY_VERSION_MAJOR )
> +    {
> +        ctx->guest_vers_tmp =3D FFA_MY_VERSION;
> +        goto out_handled;
> +    }
> +
> +    /*
> +     * Use our minor version if a greater minor was requested or the req=
uested
> +     * minor if it is lower than ours was requested.
> +     */
> +    if ( FFA_VERSION_MINOR(in_vers) > FFA_MY_VERSION_MINOR )
> +        ctx->guest_vers_tmp =3D FFA_MY_VERSION;
> +    else
> +        ctx->guest_vers_tmp =3D in_vers;
> +
> +out_handled:
> +    spin_unlock(&ctx->guest_vers_lock);
> +    if ( out_vers )
> +        ffa_set_regs(regs, out_vers, 0, 0, 0, 0, 0, 0, 0);
> +    else
> +        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> +    return true;
> +
> +out_continue:
> +    spin_unlock(&ctx->guest_vers_lock);
> +
> +    return false;
>  }
>
>  static void handle_features(struct cpu_user_regs *regs)
> @@ -274,10 +321,17 @@ static bool ffa_handle_call(struct cpu_user_regs *r=
egs)
>      if ( !ctx )
>          return false;
>
> +    /* A version must be negotiated first */
> +    if ( !ACCESS_ONCE(ctx->guest_vers) )
> +    {
> +        if ( ffa_negotiate_version(regs) )
> +            return true;
> +    }
> +
>      switch ( fid )
>      {
>      case FFA_VERSION:
> -        handle_version(regs);
> +        ffa_set_regs(regs, FFA_MY_VERSION, 0, 0, 0, 0, 0, 0, 0);
>          return true;
>      case FFA_ID_GET:
>          ffa_set_regs_success(regs, ffa_get_vm_id(d), 0);
> @@ -371,6 +425,11 @@ static int ffa_domain_init(struct domain *d)
>      d->arch.tee =3D ctx;
>      ctx->teardown_d =3D d;
>      INIT_LIST_HEAD(&ctx->shm_list);
> +    spin_lock_init(&ctx->lock);
> +    spin_lock_init(&ctx->guest_vers_lock);
> +    ctx->guest_vers =3D 0;
> +    ctx->guest_vers_tmp =3D 0;
> +    INIT_LIST_HEAD(&ctx->ctx_list);
>
>      ctx->ffa_id =3D ffa_get_vm_id(d);
>      ctx->num_vcpus =3D d->max_vcpus;
> @@ -452,7 +511,7 @@ static int ffa_domain_teardown(struct domain *d)
>      if ( !ctx )
>          return 0;
>
> -    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && ctx->guest_vers )
> +    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && ACCESS_ONCE(ctx->guest_vers)=
 )
>      {
>          dec_ffa_vm_count();
>          write_lock(&ffa_ctx_list_rwlock);
> diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
> index c20c5bec0f76..2c2ebc9c5cd6 100644
> --- a/xen/arch/arm/tee/ffa_msg.c
> +++ b/xen/arch/arm/tee/ffa_msg.c
> @@ -113,7 +113,7 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, cons=
t void *src_buf,
>      }
>
>      dst_ctx =3D dst_d->arch.tee;
> -    if ( !dst_ctx->guest_vers )
> +    if ( !ACCESS_ONCE(dst_ctx->guest_vers) )
>      {
>          ret =3D FFA_RET_INVALID_PARAMETERS;
>          goto out_unlock;
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index fa56b1587e3b..ec5a53ed1cab 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -238,7 +238,7 @@ void ffa_handle_partition_info_get(struct cpu_user_re=
gs *regs)
>       * use the v1.0 structure size in the destination buffer.
>       * Otherwise use the size of the highest version we support, here 1.=
1.
>       */
> -    if ( ctx->guest_vers =3D=3D FFA_VERSION_1_0 )
> +    if ( ACCESS_ONCE(ctx->guest_vers) =3D=3D FFA_VERSION_1_0 )
>          dst_size =3D sizeof(struct ffa_partition_info_1_0);
>      else
>          dst_size =3D sizeof(struct ffa_partition_info_1_1);
> @@ -250,7 +250,7 @@ void ffa_handle_partition_info_get(struct cpu_user_re=
gs *regs)
>           * FF-A v1.0 has w5 MBZ while v1.1 allows
>           * FFA_PARTITION_INFO_GET_COUNT_FLAG to be non-zero.
>           */
> -        if ( ctx->guest_vers =3D=3D FFA_VERSION_1_0 ||
> +        if ( ACCESS_ONCE(ctx->guest_vers) =3D=3D FFA_VERSION_1_0 ||
>                  flags !=3D FFA_PARTITION_INFO_GET_COUNT_FLAG )
>          {
>              ret =3D FFA_RET_INVALID_PARAMETERS;
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index 8d01da0009d3..8ef214344711 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -355,12 +355,6 @@ struct ffa_ctx {
>       * Global data accessed with lock locked.
>       */
>      spinlock_t lock;
> -    /*
> -     * FF-A version negotiated by the guest, only modifications to
> -     * this field are done with the lock held as this is expected to
> -     * be done once at init by a guest.
> -     */
> -    uint32_t guest_vers;
>      /* Number of 4kB pages in each of rx/rx_pg and tx/tx_pg */
>      unsigned int page_count;
>      /* Number of allocated shared memory object */
> @@ -368,6 +362,27 @@ struct ffa_ctx {
>      /* Used shared memory objects, struct ffa_shm_mem */
>      struct list_head shm_list;
>
> +    /*
> +     * FF-A version handling
> +     * guest_vers is the single published negotiated version. It is 0 un=
til
> +     * negotiation completes, after which it is set once and never chang=
es.
> +     * Negotiation uses guest_vers_tmp under guest_vers_lock; when a
> +     * non-VERSION ABI is invoked, Xen finalizes negotiation by publishi=
ng
> +     * guest_vers using ACCESS_ONCE() store.
> +     * Readers use ACCESS_ONCE(guest_vers) !=3D 0 to detect availability=
 and
> +     * can consume guest_vers without barriers because it never changes =
once
> +     * published.
> +     */
> +    spinlock_t guest_vers_lock;
> +    /*
> +     * Published negotiated version. Zero means "not negotiated yet".
> +     * Once non-zero, it never changes.
> +     * Must always be accessed using ACCESS_ONCE().
> +     */
> +    uint32_t guest_vers;
> +    /* Temporary version used during negotiation under guest_vers_lock *=
/
> +    uint32_t guest_vers_tmp;
> +
>      /*
>       * Rx buffer, accessed with rx_lock locked.
>       * rx_is_free is used to serialize access.
> diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
> index d628c1b70609..dad3da192247 100644
> --- a/xen/arch/arm/tee/ffa_shm.c
> +++ b/xen/arch/arm/tee/ffa_shm.c
> @@ -495,7 +495,8 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
>      if ( frag_len > ctx->page_count * FFA_PAGE_SIZE )
>          goto out_unlock;
>
> -    ret =3D read_mem_transaction(ctx->guest_vers, ctx->tx, frag_len, &tr=
ans);
> +    ret =3D read_mem_transaction(ACCESS_ONCE(ctx->guest_vers), ctx->tx,
> +                               frag_len, &trans);
>      if ( ret )
>          goto out_unlock;
>
> --
> 2.51.2
>


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 14:13:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 14:13:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187985.1509267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVVns-00062T-Ot; Tue, 16 Dec 2025 14:13:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187985.1509267; Tue, 16 Dec 2025 14:13:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVVns-00062M-MG; Tue, 16 Dec 2025 14:13:28 +0000
Received: by outflank-mailman (input) for mailman id 1187985;
 Tue, 16 Dec 2025 14:13:27 +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
 <SRS0=5yu6=6W=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vVVnr-00062G-2f
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 14:13:27 +0000
Received: from mail-oo1-xc36.google.com (mail-oo1-xc36.google.com
 [2607:f8b0:4864:20::c36])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 62421e21-da89-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 15:13:25 +0100 (CET)
Received: by mail-oo1-xc36.google.com with SMTP id
 006d021491bc7-657c68a08a7so2576472eaf.1
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 06:13:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 62421e21-da89-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1765894404; x=1766499204; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LXRI1eebYRn+2Qk3nBtJwQJTZ8gFLuVutX9DwNG0k0k=;
        b=wfIQYKqB7Gv34N5Xwwqx2IqWrWygIqQ9Udi/bATT/8c9WLIzHUUMqQl/C1lXVfJH3+
         mBCM1fS09Xsb2O+XVDKr/p25hie8deUCgqjd2BxJ+IzgFuU1ervLty5nGdvAoQWUwO7d
         x0Oil6Tz569FZX7re/W8WhkLQlQbxHe17/xAjpMUy736FWYVTrJgxxj3obm1kHvt8fCT
         Y+n8ufIHfCeyeBpTWe2tifJJXLKyOAQliAONZdvcgrRY2wMvIQLfwbiydXoolEC4stqI
         KMsIgXoPL8TLnT464P1jl4EKj//+Gf9Aj1ZrruhskSa26+vmvqlnsdotdnC+tZriAtBT
         kLYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765894404; x=1766499204;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=LXRI1eebYRn+2Qk3nBtJwQJTZ8gFLuVutX9DwNG0k0k=;
        b=PTH3TaE20MZLUDADzSPsSCWx10on8gAwodh4VurQfzIH72s2Yr3FrOfVgOtjeePj9H
         OWvgcnYshqfHG9prOpVcyQL9gZLE81rOrX+RnuYB4yBX4DS/r+woX83TD6FtUCcm3KjE
         M7enuXPjFz/4iYkZIAUmofQWZZymVtaYuB0GDW6BjRaaCc+K8hrCqx+SSp0xTZFRCP41
         JQTOg9qNsTHSb6mzV60PFDf+a+dmYsg8gyrTZP60H7PyW9i4Pe+pxyayTxMjfcOaPNOy
         9Mwl1PrcgLfZ6tT1yC7gid1zo2VAUX1Va+dAI1z3ckckHYHvd7bhMj+k7/wU5U1o2kbd
         ENAA==
X-Gm-Message-State: AOJu0YzGQ0hS6Y0GTl/RdzTYLAag9ZRHtVtN7Gg6V+/mwPDFTmN6NW6B
	R+4ZZP6Xrv5GNqB+o16du7WhvjxUKtIOxCnpwq52TaTkdnrA53lMsOTcf/ftLra7UyV3/KG+1eG
	9OOF4vI6aF2J5xDRncLpsh5WqTHdJd/x29VBCvxzUAw==
X-Gm-Gg: AY/fxX7+gs9hLlUSpZROisey14/xreyA5+rrlSF/JLHcDX8vNO0RmAxro5pJTFweiHr
	XFRSlk1wOw2xQ3TmjyF8FznIvc4H7VIEOF97uT4KYHcuQvJzSlhz5WNo6olcvqrRx7wyWIBoPd8
	pn2tkwIe3sA0YFoI3UBh8f0BpjBpXk8RLMk247gsx+NFjgvL17Z/cWsHZaL8ZYkuFNJVKQ7SrQI
	QETc8qLRJhmK7107pwJunM1GeQ6sf+RwAGSFuTeGtQ67wRTznl3Ey1GUoov7Xzu+aYy9tbOGvv1
	rkeSl9zCPkyTkX6tmrn89oJs/Q==
X-Google-Smtp-Source: AGHT+IE5A4uCkCHs8HojYgpnu+J9zDD3F/rTy6+M3e9gxXItkHcTd2166JhojdlNBhC5GTMGsN7c01hCv44QaOQdlFA=
X-Received: by 2002:a05:6820:2004:b0:659:9a49:8f8a with SMTP id
 006d021491bc7-65b4576fe5emr6496267eaf.79.1765894403467; Tue, 16 Dec 2025
 06:13:23 -0800 (PST)
MIME-Version: 1.0
References: <cover.1765807707.git.bertrand.marquis@arm.com> <9810a2728cfd8541d6aa680c7af7728324e6a1dd.1765807707.git.bertrand.marquis@arm.com>
In-Reply-To: <9810a2728cfd8541d6aa680c7af7728324e6a1dd.1765807707.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 16 Dec 2025 15:13:09 +0100
X-Gm-Features: AQt7F2qouo3NKMyoZ7MQRVt2y4LkpWNqR0zLf1RRO_JuSI_klzZKdcGrUsSMyYg
Message-ID: <CAHUa44EvoYsgDA9FCofp0=Y1E=vvkURFMgWhagUoujHGsidVAg@mail.gmail.com>
Subject: Re: [PATCH v2 05/12] xen/arm: ffa: rework SPMC RX/TX buffer management
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Mon, Dec 15, 2025 at 3:50=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Rework how Xen accesses the RX/TX buffers shared with the SPMC so that
> ownership and locking are handled centrally.
>
> Move the SPMC RX/TX buffer bases into ffa_rxtx.c as ffa_spmc_rx/ffa_spmc_=
tx,
> protect them with dedicated ffa_spmc_{rx,tx}_lock spinlocks and expose
> ffa_rxtx_spmc_{rx,tx}_{acquire,release}() helpers instead of the global
> ffa_rx/ffa_tx pointers and ffa_{rx,tx}_buffer_lock.
>
> The RX helpers now always issue FFA_RX_RELEASE when we are done
> consuming data from the SPMC, so partition-info enumeration and shared
> memory paths release the RX buffer on all exit paths. The RX/TX mapping
> code is updated to use the descriptor offsets (rx_region_offs and
> tx_region_offs) rather than hard-coded structure layout, and to use the
> TX acquire/release helpers instead of touching the TX buffer directly.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes in v2:
> - remove invalid ASSERT in SPMC RX/TX acquire as it is expected that the
>   buffer are already taken and the spinlock is here to serialize.
> Changes in v1:
> - modify share_shm function to use a goto and have one place to release
>   the spmc tx buffer instead of doing it directly in the if error
>   condition.
> - fix rx_acquire and tx_acquire to not release the spinlock as this is
>   expected to be done only in release to ensure no parallel usage.
> ---
>  xen/arch/arm/tee/ffa.c          |  22 +-----
>  xen/arch/arm/tee/ffa_partinfo.c |  40 +++++-----
>  xen/arch/arm/tee/ffa_private.h  |  18 ++---
>  xen/arch/arm/tee/ffa_rxtx.c     | 126 +++++++++++++++++++++++++-------
>  xen/arch/arm/tee/ffa_shm.c      |  29 +++++---
>  5 files changed, 149 insertions(+), 86 deletions(-)

Looks good.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 497ada8264e0..43af49d1c011 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -48,8 +48,8 @@
>   *     notification for secure partitions
>   *   - doesn't support notifications for Xen itself
>   *
> - * There are some large locked sections with ffa_tx_buffer_lock and
> - * ffa_rx_buffer_lock. Especially the ffa_tx_buffer_lock spinlock used
> + * There are some large locked sections with ffa_spmc_tx_lock and
> + * ffa_spmc_rx_lock. Especially the ffa_spmc_tx_lock spinlock used
>   * around share_shm() is a very large locked section which can let one V=
M
>   * affect another VM.
>   */
> @@ -108,20 +108,6 @@ static const struct ffa_fw_abi ffa_fw_abi_needed[] =
=3D {
>      FW_ABI(FFA_RUN),
>  };
>
> -/*
> - * Our rx/tx buffers shared with the SPMC. FFA_RXTX_PAGE_COUNT is the
> - * number of pages used in each of these buffers.
> - *
> - * The RX buffer is protected from concurrent usage with ffa_rx_buffer_l=
ock.
> - * Note that the SPMC is also tracking the ownership of our RX buffer so
> - * for calls which uses our RX buffer to deliver a result we must call
> - * ffa_rx_release() to let the SPMC know that we're done with the buffer=
.
> - */
> -void *ffa_rx __read_mostly;
> -void *ffa_tx __read_mostly;
> -DEFINE_SPINLOCK(ffa_rx_buffer_lock);
> -DEFINE_SPINLOCK(ffa_tx_buffer_lock);
> -
>  LIST_HEAD(ffa_ctx_head);
>  /* RW Lock to protect addition/removal and reading in ffa_ctx_head */
>  DEFINE_RWLOCK(ffa_ctx_list_rwlock);
> @@ -617,7 +603,7 @@ static bool ffa_probe_fw(void)
>                     ffa_fw_abi_needed[i].name);
>      }
>
> -    if ( !ffa_rxtx_init() )
> +    if ( !ffa_rxtx_spmc_init() )
>      {
>          printk(XENLOG_ERR "ffa: Error during RXTX buffer init\n");
>          goto err_no_fw;
> @@ -631,7 +617,7 @@ static bool ffa_probe_fw(void)
>      return true;
>
>  err_rxtx_destroy:
> -    ffa_rxtx_destroy();
> +    ffa_rxtx_spmc_destroy();
>  err_no_fw:
>      ffa_fw_version =3D 0;
>      bitmap_zero(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index ec5a53ed1cab..145b869957b0 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -77,28 +77,24 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, ui=
nt32_t *sp_count,
>  {
>      int32_t ret;
>      uint32_t src_size, real_sp_count;
> -    void *src_buf =3D ffa_rx;
> +    void *src_buf;
>      uint32_t count =3D 0;
>
> -    /* Do we have a RX buffer with the SPMC */
> -    if ( !ffa_rx )
> -        return FFA_RET_DENIED;
> -
>      /* We need to use the RX buffer to receive the list */
> -    spin_lock(&ffa_rx_buffer_lock);
> +    src_buf =3D ffa_rxtx_spmc_rx_acquire();
> +    if ( !src_buf )
> +        return FFA_RET_DENIED;
>
>      ret =3D ffa_partition_info_get(uuid, 0, &real_sp_count, &src_size);
>      if ( ret )
>          goto out;
>
> -    /* We now own the RX buffer */
> -
>      /* Validate the src_size we got */
>      if ( src_size < sizeof(struct ffa_partition_info_1_0) ||
>           src_size >=3D FFA_PAGE_SIZE )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
> -        goto out_release;
> +        goto out;
>      }
>
>      /*
> @@ -114,7 +110,7 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, ui=
nt32_t *sp_count,
>      if ( real_sp_count > (FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE) / src_siz=
e )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
> -        goto out_release;
> +        goto out;
>      }
>
>      for ( uint32_t sp_num =3D 0; sp_num < real_sp_count; sp_num++ )
> @@ -127,7 +123,7 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, ui=
nt32_t *sp_count,
>              if ( dst_buf > (end_buf - dst_size) )
>              {
>                  ret =3D FFA_RET_NO_MEMORY;
> -                goto out_release;
> +                goto out;
>              }
>
>              memcpy(dst_buf, src_buf, MIN(src_size, dst_size));
> @@ -143,10 +139,8 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, u=
int32_t *sp_count,
>
>      *sp_count =3D count;
>
> -out_release:
> -    ffa_hyp_rx_release();
>  out:
> -    spin_unlock(&ffa_rx_buffer_lock);
> +    ffa_rxtx_spmc_rx_release();
>      return ret;
>  }
>
> @@ -378,7 +372,7 @@ static void uninit_subscribers(void)
>          XFREE(subscr_vm_destroyed);
>  }
>
> -static bool init_subscribers(uint16_t count, uint32_t fpi_size)
> +static bool init_subscribers(void *buf, uint16_t count, uint32_t fpi_siz=
e)
>  {
>      uint16_t n;
>      uint16_t c_pos;
> @@ -395,7 +389,7 @@ static bool init_subscribers(uint16_t count, uint32_t=
 fpi_size)
>      subscr_vm_destroyed_count =3D 0;
>      for ( n =3D 0; n < count; n++ )
>      {
> -        fpi =3D ffa_rx + n * fpi_size;
> +        fpi =3D buf + n * fpi_size;
>
>          /*
>           * We need to have secure partitions using bit 15 set convention=
 for
> @@ -433,7 +427,7 @@ static bool init_subscribers(uint16_t count, uint32_t=
 fpi_size)
>
>      for ( c_pos =3D 0, d_pos =3D 0, n =3D 0; n < count; n++ )
>      {
> -        fpi =3D ffa_rx + n * fpi_size;
> +        fpi =3D buf + n * fpi_size;
>
>          if ( FFA_ID_IS_SECURE(fpi->id) )
>          {
> @@ -455,10 +449,14 @@ bool ffa_partinfo_init(void)
>      uint32_t fpi_size;
>      uint32_t count;
>      int e;
> +    void *spmc_rx;
>
>      if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) ||
> -         !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32) ||
> -         !ffa_rx || !ffa_tx )
> +         !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32))
> +        return false;
> +
> +    spmc_rx =3D ffa_rxtx_spmc_rx_acquire();
> +    if (!spmc_rx)
>          return false;
>
>      e =3D ffa_partition_info_get(NULL, 0, &count, &fpi_size);
> @@ -475,10 +473,10 @@ bool ffa_partinfo_init(void)
>          goto out;
>      }
>
> -    ret =3D init_subscribers(count, fpi_size);
> +    ret =3D init_subscribers(spmc_rx, count, fpi_size);
>
>  out:
> -    ffa_hyp_rx_release();
> +    ffa_rxtx_spmc_rx_release();
>      return ret;
>  }
>
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index 0bb5a84553ce..4c97041829a9 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -416,10 +416,6 @@ struct ffa_ctx {
>      unsigned long *vm_destroy_bitmap;
>  };
>
> -extern void *ffa_rx;
> -extern void *ffa_tx;
> -extern spinlock_t ffa_rx_buffer_lock;
> -extern spinlock_t ffa_tx_buffer_lock;
>  extern DECLARE_BITMAP(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
>
>  extern struct list_head ffa_ctx_head;
> @@ -437,8 +433,13 @@ int ffa_partinfo_domain_init(struct domain *d);
>  bool ffa_partinfo_domain_destroy(struct domain *d);
>  void ffa_handle_partition_info_get(struct cpu_user_regs *regs);
>
> -bool ffa_rxtx_init(void);
> -void ffa_rxtx_destroy(void);
> +bool ffa_rxtx_spmc_init(void);
> +void ffa_rxtx_spmc_destroy(void);
> +void *ffa_rxtx_spmc_rx_acquire(void);
> +void ffa_rxtx_spmc_rx_release(void);
> +void *ffa_rxtx_spmc_tx_acquire(void);
> +void ffa_rxtx_spmc_tx_release(void);
> +
>  int32_t ffa_rxtx_domain_init(struct domain *d);
>  void ffa_rxtx_domain_destroy(struct domain *d);
>  int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
> @@ -568,11 +569,6 @@ static inline int32_t ffa_simple_call(uint32_t fid, =
register_t a1,
>      return ffa_get_ret_code(&resp);
>  }
>
> -static inline int32_t ffa_hyp_rx_release(void)
> -{
> -    return ffa_simple_call(FFA_RX_RELEASE, 0, 0, 0, 0);
> -}
> -
>  static inline bool ffa_fw_supports_fid(uint32_t fid)
>  {
>      BUILD_BUG_ON(FFA_FNUM_MIN_VALUE > FFA_FNUM_MAX_VALUE);
> diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
> index 5776693bb3f0..63203b22b84c 100644
> --- a/xen/arch/arm/tee/ffa_rxtx.c
> +++ b/xen/arch/arm/tee/ffa_rxtx.c
> @@ -30,6 +30,20 @@ struct ffa_endpoint_rxtx_descriptor_1_1 {
>      uint32_t tx_region_offs;
>  };
>
> +/*
> + * Our rx/tx buffers shared with the SPMC. FFA_RXTX_PAGE_COUNT is the
> + * number of pages used in each of these buffers.
> + * Each buffer has its own lock to protect from concurrent usage.
> + *
> + * Note that the SPMC is also tracking the ownership of our RX buffer so
> + * for calls which uses our RX buffer to deliver a result we must do an
> + * FFA_RX_RELEASE to let the SPMC know that we're done with the buffer.
> + */
> +static void *ffa_spmc_rx __read_mostly;
> +static void *ffa_spmc_tx __read_mostly;
> +static DEFINE_SPINLOCK(ffa_spmc_rx_lock);
> +static DEFINE_SPINLOCK(ffa_spmc_tx_lock);
> +
>  static int32_t ffa_rxtx_map(paddr_t tx_addr, paddr_t rx_addr,
>                              uint32_t page_count)
>  {
> @@ -126,8 +140,9 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t =
tx_addr,
>                       sizeof(struct ffa_address_range) * 2 >
>                       FFA_MAX_RXTX_PAGE_COUNT * FFA_PAGE_SIZE);
>
> -        spin_lock(&ffa_tx_buffer_lock);
> -        rxtx_desc =3D ffa_tx;
> +        rxtx_desc =3D ffa_rxtx_spmc_tx_acquire();
> +        if ( !rxtx_desc )
> +            goto err_unmap_rx;
>
>          /*
>           * We have only one page for each so we pack everything:
> @@ -144,7 +159,7 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t =
tx_addr,
>                                               address_range_array[1]);
>
>          /* rx buffer */
> -        mem_reg =3D ffa_tx + sizeof(*rxtx_desc);
> +        mem_reg =3D (void *)rxtx_desc + rxtx_desc->rx_region_offs;
>          mem_reg->total_page_count =3D 1;
>          mem_reg->address_range_count =3D 1;
>          mem_reg->reserved =3D 0;
> @@ -154,7 +169,7 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t =
tx_addr,
>          mem_reg->address_range_array[0].reserved =3D 0;
>
>          /* tx buffer */
> -        mem_reg =3D ffa_tx + rxtx_desc->tx_region_offs;
> +        mem_reg =3D (void *)rxtx_desc + rxtx_desc->tx_region_offs;
>          mem_reg->total_page_count =3D 1;
>          mem_reg->address_range_count =3D 1;
>          mem_reg->reserved =3D 0;
> @@ -165,7 +180,7 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t =
tx_addr,
>
>          ret =3D ffa_rxtx_map(0, 0, 0);
>
> -        spin_unlock(&ffa_tx_buffer_lock);
> +        ffa_rxtx_spmc_tx_release();
>
>          if ( ret !=3D FFA_RET_OK )
>              goto err_unmap_rx;
> @@ -319,49 +334,108 @@ void ffa_rxtx_domain_destroy(struct domain *d)
>      rxtx_unmap(d);
>  }
>
> -void ffa_rxtx_destroy(void)
> +void *ffa_rxtx_spmc_rx_acquire(void)
> +{
> +    spin_lock(&ffa_spmc_rx_lock);
> +
> +    if ( ffa_spmc_rx )
> +        return ffa_spmc_rx;
> +
> +    return NULL;
> +}
> +
> +void ffa_rxtx_spmc_rx_release(void)
> +{
> +    int32_t ret;
> +
> +    ASSERT(spin_is_locked(&ffa_spmc_rx_lock));
> +
> +    /* Inform the SPMC that we are done with our RX buffer */
> +    ret =3D ffa_simple_call(FFA_RX_RELEASE, 0, 0, 0, 0);
> +    if ( ret !=3D FFA_RET_OK )
> +        printk(XENLOG_DEBUG "Error releasing SPMC RX buffer: %d\n", ret)=
;
> +
> +    spin_unlock(&ffa_spmc_rx_lock);
> +}
> +
> +void *ffa_rxtx_spmc_tx_acquire(void)
>  {
> -    bool need_unmap =3D ffa_tx && ffa_rx;
> +    spin_lock(&ffa_spmc_tx_lock);
>
> -    if ( ffa_tx )
> +    if ( ffa_spmc_tx )
> +        return ffa_spmc_tx;
> +
> +    return NULL;
> +}
> +
> +void ffa_rxtx_spmc_tx_release(void)
> +{
> +    ASSERT(spin_is_locked(&ffa_spmc_tx_lock));
> +
> +    spin_unlock(&ffa_spmc_tx_lock);
> +}
> +
> +void ffa_rxtx_spmc_destroy(void)
> +{
> +    bool need_unmap;
> +
> +    spin_lock(&ffa_spmc_rx_lock);
> +    spin_lock(&ffa_spmc_tx_lock);
> +    need_unmap =3D ffa_spmc_tx && ffa_spmc_rx;
> +
> +    if ( ffa_spmc_tx )
>      {
> -        free_xenheap_pages(ffa_tx, 0);
> -        ffa_tx =3D NULL;
> +        free_xenheap_pages(ffa_spmc_tx, 0);
> +        ffa_spmc_tx =3D NULL;
>      }
> -    if ( ffa_rx )
> +    if ( ffa_spmc_rx )
>      {
> -        free_xenheap_pages(ffa_rx, 0);
> -        ffa_rx =3D NULL;
> +        free_xenheap_pages(ffa_spmc_rx, 0);
> +        ffa_spmc_rx =3D NULL;
>      }
>
>      if ( need_unmap )
>          ffa_rxtx_unmap(0);
> +
> +    spin_unlock(&ffa_spmc_tx_lock);
> +    spin_unlock(&ffa_spmc_rx_lock);
>  }
>
> -bool ffa_rxtx_init(void)
> +bool ffa_rxtx_spmc_init(void)
>  {
>      int32_t e;
> +    bool ret =3D false;
>
>      /* Firmware not there or not supporting */
>      if ( !ffa_fw_supports_fid(FFA_RXTX_MAP_64) )
>          return false;
>
> -    ffa_rx =3D alloc_xenheap_pages(get_order_from_pages(FFA_RXTX_PAGE_CO=
UNT), 0);
> -    if ( !ffa_rx )
> -        return false;
> +    spin_lock(&ffa_spmc_rx_lock);
> +    spin_lock(&ffa_spmc_tx_lock);
>
> -    ffa_tx =3D alloc_xenheap_pages(get_order_from_pages(FFA_RXTX_PAGE_CO=
UNT), 0);
> -    if ( !ffa_tx )
> -        goto err;
> +    ffa_spmc_rx =3D alloc_xenheap_pages(
> +                            get_order_from_pages(FFA_RXTX_PAGE_COUNT), 0=
);
> +    if ( !ffa_spmc_rx )
> +        goto exit;
>
> -    e =3D ffa_rxtx_map(__pa(ffa_tx), __pa(ffa_rx), FFA_RXTX_PAGE_COUNT);
> +    ffa_spmc_tx =3D alloc_xenheap_pages(
> +                            get_order_from_pages(FFA_RXTX_PAGE_COUNT), 0=
);
> +    if ( !ffa_spmc_tx )
> +        goto exit;
> +
> +    e =3D ffa_rxtx_map(__pa(ffa_spmc_tx), __pa(ffa_spmc_rx),
> +                     FFA_RXTX_PAGE_COUNT);
>      if ( e )
> -        goto err;
> +        goto exit;
> +
> +    ret =3D true;
>
> -    return true;
> +exit:
> +    spin_unlock(&ffa_spmc_tx_lock);
> +    spin_unlock(&ffa_spmc_rx_lock);
>
> -err:
> -    ffa_rxtx_destroy();
> +    if ( !ret )
> +        ffa_rxtx_spmc_destroy();
>
> -    return false;
> +    return ret;
>  }
> diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
> index dad3da192247..e275d3769d9b 100644
> --- a/xen/arch/arm/tee/ffa_shm.c
> +++ b/xen/arch/arm/tee/ffa_shm.c
> @@ -286,9 +286,8 @@ static void init_range(struct ffa_address_range *addr=
_range,
>  }
>
>  /*
> - * This function uses the ffa_tx buffer to transmit the memory transacti=
on
> - * descriptor. The function depends ffa_tx_buffer_lock to be used to gua=
rd
> - * the buffer from concurrent use.
> + * This function uses the ffa_spmc tx buffer to transmit the memory tran=
saction
> + * descriptor.
>   */
>  static int share_shm(struct ffa_shm_mem *shm)
>  {
> @@ -298,17 +297,22 @@ static int share_shm(struct ffa_shm_mem *shm)
>      struct ffa_address_range *addr_range;
>      struct ffa_mem_region *region_descr;
>      const unsigned int region_count =3D 1;
> -    void *buf =3D ffa_tx;
>      uint32_t frag_len;
>      uint32_t tot_len;
>      paddr_t last_pa;
>      unsigned int n;
>      paddr_t pa;
> +    int32_t ret;
> +    void *buf;
>
> -    ASSERT(spin_is_locked(&ffa_tx_buffer_lock));
>      ASSERT(shm->page_count);
>
> +    buf =3D ffa_rxtx_spmc_tx_acquire();
> +    if ( !buf )
> +        return FFA_RET_NOT_SUPPORTED;
> +
>      descr =3D buf;
> +
>      memset(descr, 0, sizeof(*descr));
>      descr->sender_id =3D shm->sender_id;
>      descr->handle =3D shm->handle;
> @@ -340,7 +344,10 @@ static int share_shm(struct ffa_shm_mem *shm)
>      tot_len =3D ADDR_RANGE_OFFSET(descr->mem_access_count, region_count,
>                                  region_descr->address_range_count);
>      if ( tot_len > max_frag_len )
> -        return FFA_RET_NOT_SUPPORTED;
> +    {
> +        ret =3D FFA_RET_NOT_SUPPORTED;
> +        goto out;
> +    }
>
>      addr_range =3D region_descr->address_range_array;
>      frag_len =3D ADDR_RANGE_OFFSET(descr->mem_access_count, region_count=
, 1);
> @@ -360,7 +367,12 @@ static int share_shm(struct ffa_shm_mem *shm)
>          init_range(addr_range, pa);
>      }
>
> -    return ffa_mem_share(tot_len, frag_len, 0, 0, &shm->handle);
> +    ret =3D ffa_mem_share(tot_len, frag_len, 0, 0, &shm->handle);
> +
> +out:
> +    ffa_rxtx_spmc_tx_release();
> +
> +    return ret;
>  }
>
>  static int read_mem_transaction(uint32_t ffa_vers, const void *buf, size=
_t blen,
> @@ -579,10 +591,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs=
)
>      if ( ret )
>          goto out;
>
> -    /* Note that share_shm() uses our tx buffer */
> -    spin_lock(&ffa_tx_buffer_lock);
>      ret =3D share_shm(shm);
> -    spin_unlock(&ffa_tx_buffer_lock);
>      if ( ret )
>          goto out;
>
> --
> 2.51.2
>


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 14:27:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 14:27:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1187998.1509277 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVW1B-0007wz-TI; Tue, 16 Dec 2025 14:27:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1187998.1509277; Tue, 16 Dec 2025 14:27:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVW1B-0007ws-QS; Tue, 16 Dec 2025 14:27:13 +0000
Received: by outflank-mailman (input) for mailman id 1187998;
 Tue, 16 Dec 2025 14:27:13 +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
 <SRS0=Qh75=6W=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vVW1A-0007wm-MA
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 14:27:13 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4a51f19d-da8b-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 15:27:04 +0100 (CET)
Received: from BY1P220CA0022.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:5c3::14)
 by MW4PR12MB6950.namprd12.prod.outlook.com (2603:10b6:303:207::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Tue, 16 Dec
 2025 14:26:57 +0000
Received: from SJ1PEPF00001CDF.namprd05.prod.outlook.com
 (2603:10b6:a03:5c3:cafe::ac) by BY1P220CA0022.outlook.office365.com
 (2603:10b6:a03:5c3::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.13 via Frontend Transport; Tue,
 16 Dec 2025 14:27:09 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF00001CDF.mail.protection.outlook.com (10.167.242.7) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9434.6 via Frontend Transport; Tue, 16 Dec 2025 14:26:56 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Tue, 16 Dec
 2025 08:26:56 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 16 Dec
 2025 08:26:56 -0600
Received: from [10.252.147.171] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 16 Dec 2025 08:26:54 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4a51f19d-da8b-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kF4ojAzgewFwDFQ1CtUEjbNVok7/Ds/LtMQuz03DhMF5dyc3UFHQpTTQXWJXhZpTxj8iYK4fPUPSt5rky3iTNr30eyLm4IH23YJ3+PL4kiJtdAXIg/C/CPaLMBtOYebMdpDnFKPB1WGyqW2UAf6hVJv7F0Lkla1i+HqW3yeCVXQFT/i/eP6wm6A1+Z2yeUrg/ZDJZdbNwdrhleGpZCc5H6u06dW029DojkxmxJTM/e0186wkrbdR0Dunik6/ebNGKiaWwW9U+wHRXCPvljFHNVBsTbsff1HAe8cKsNmgGaNN9XSolO6kpnjVjN3KS28XRh3Eqvv4wjoqGDq5oRq3uA==
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=YPOSsHYRCeBUlJrwrhpOq3UFJCjDGk8epb5FVMtbQKY=;
 b=iUGEAIggxCJlL81EmVqTzR0y6dHYG1j/ccYTkf4wFjmHBJaiFvgKM5EEmOfE7WB0XDHfckzUos7J9tZnh4EeG4+6vafg3CiICNe8DS48QROk5Zq7tWEUzBbgGu1xmiwMb9UPzGXguioqTSBsox2XrcoEHAWpjqC+5OoGy61ZCbN5MTWpWKcwAaoqA9hqAnj+AGxep/MF/dJcEZOBsx0eTUyM4OEGyQUOQ9AnoESMtUdvRaT7LicW5tqaoLqFYGNbiz2Bqk1wk3f4f9gsZCPiPwp9IncfGWqEP1iLsL5D4iAXAzYRgnvwDIQclFGPGCZuQvRMfqgWLZOcVjcHBJ5QUw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YPOSsHYRCeBUlJrwrhpOq3UFJCjDGk8epb5FVMtbQKY=;
 b=F/yDb5nxcHhyNQgZ8+w/Q8v5tCSIXLTy3aUnWTrYUg0jg/vE5ABMS2L3la5x80wkyI/76witTwDIKF+KcUHNxeePA+MN9eIZRxFI75R1xVispGBSXJeHIAI2/0AVpdhpfuAf8VGJvd+B7cjGEk6PKiLVQUJh+saZ6hhGzPgfZJg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <52071968-d222-4bfe-ac8e-4e8cb7f3bc1f@amd.com>
Date: Tue, 16 Dec 2025 15:26:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/6] arm/mpu: Introduce modify_after_init_mappings
To: Luca Fancellu <Luca.Fancellu@arm.com>
CC: Harry Ramsey <Harry.Ramsey@arm.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Hari Limaye <Hari.Limaye@arm.com>
References: <20251128095859.11264-1-harry.ramsey@arm.com>
 <20251128095859.11264-5-harry.ramsey@arm.com>
 <6acc279f-15d8-43c5-b676-7312de3dde5e@amd.com>
 <1D457431-73BE-4FA6-A27C-7D130CB9EA53@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <1D457431-73BE-4FA6-A27C-7D130CB9EA53@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CDF:EE_|MW4PR12MB6950:EE_
X-MS-Office365-Filtering-Correlation-Id: 6c1828b4-6446-40f1-27fa-08de3caf2ae8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Z29vNlgyelJRdlZvSFc5NktJMUFmUU5qWkpEMVZ4djRvQXpOaG9kc2JSM205?=
 =?utf-8?B?Ky95QlRHZ0ZZV2FvS2VoYXlaa3NkTURvK3dNcDNGVHVGb0VlQmoxbmxaTWwx?=
 =?utf-8?B?MHJlR2RDV2hpbmFER0JxT0szYWNSK0lIakJnV0tXdFpiTkR2QS9vZ2hBOGN2?=
 =?utf-8?B?b2pzSGZVN0cvT0N0Wm9kZHZCNjI3elN1RWdrZjM3S2xOTFhFdVN0SkZoS1hv?=
 =?utf-8?B?UFYrZUpvNzVIWTQ4WVhyZGNnRDNXSlJ2VXNxWVdjQ1kvbHh6RlJoSk9QSXkx?=
 =?utf-8?B?OG5IUnROWkZ1NUJwalRZQkhERFpPMVUyVFY1V0xEZjJEUjZRVk4vNzdjWnhB?=
 =?utf-8?B?L1ArT0NybXk0QUpGalJUVWEyeS8zNWk4MmNvWko0Z3JESTdzelYyTGF4Nkw3?=
 =?utf-8?B?UlVRMDZKb1I5ZWJVd2lRakxxc3d4U3VtSE5GKzNDWUo4U2VMa3E2RWtBVitE?=
 =?utf-8?B?dGNKakNNY0RzYzdBcUx3RitrQ3ZjNFZJdTdHeFpjYzJqb2c5YUhuZGVraS8v?=
 =?utf-8?B?dG8xS3dPYWNWTU9IMThhVkNXeEovU2RIS2hacnRVV2RJUFQ1d1ljTU9mNVdU?=
 =?utf-8?B?cWgxYVNYQ2FCUlhSMTdMSDJHQ3dMYTVodXZ0a21sZGdVN3o0U2RWWXNlTUw3?=
 =?utf-8?B?UUV0RFVLTW9JOUt0RXdyNmd4R245TUFnZkwvbXYvTGR0cWpPUG1rUU8xTW1J?=
 =?utf-8?B?VVgrc21lelM1Qk9pSVpDeEZ5MEx2WVB3d3V3UUZ4M29DVGtpQzVGeFZhbkY2?=
 =?utf-8?B?b3F6Nk9FdFJzSCtLSHcwdWJ0WHhHdDVETThhbVNVVHRCSThpNk12YnJFcXJF?=
 =?utf-8?B?ejduZHJPY01SMzBiOHBEWGhKSkJvOXdKTHNlU1o5RHVSMk1FeVJwZ2NuYVIx?=
 =?utf-8?B?c3JKTWZzbkxiUlFBZVViTUlUSlR0dkNoZ3dJYXZmREU2ZUwvTFhzRElkUEtJ?=
 =?utf-8?B?cnROUGV1OW1iTXJmazg2cHZGN2ZYMEVCckxoTEtMR3ZqTThYa0NUYVpybytD?=
 =?utf-8?B?MFh2UTB5SExZUzBJT0x5V3QxNDc5ZUdKeklkTGV2MnFhQVRTSUdpUStvTzhI?=
 =?utf-8?B?VUdqK2R2SE9iMklHNW56VGxHdmxkdkI2MlRyY2xJS3ZMN0RxQWV6NG14Lzg1?=
 =?utf-8?B?MEpmUkJPM2hOMHZ5aUhWTzFzZTdyQ0NyMGk1TnV4cmxDWEhLc2oxTjdJd05k?=
 =?utf-8?B?YWNzVVZWVEp5REk2YTNUY1R2U1BsbTRTNXA3VVQzTVVSN2tTRkE2YW5tbVJ0?=
 =?utf-8?B?MjBPK29UVUMxUkIxOTVJeFVCeU5OSXdPdlNjRHM3OUdOT0lTZFZVTDl1NUNj?=
 =?utf-8?B?Sko4QzM2NmIxT1h2SGdsMU5qWUxQOWlscGhiRHVQUWlIMnA2TnJuanRZci8y?=
 =?utf-8?B?cTQxNTZrS3MrWEh1TXlMMUk2S0Q5WGF3b2FVNjVpSlZKYzVGc21nOW9Rb1FN?=
 =?utf-8?B?TXlITnl6S1ZINE0wak0zMmQ1MkhHbU5lNU5tdTZTbC9KVmF6dUN1ZFZBTWxr?=
 =?utf-8?B?UHZhcmZxMjBDcklvaWZTY0M4bzY1b3BnUk1nMmJOY29ubEpZMlBRUUdQMi9M?=
 =?utf-8?B?YWs3bmMrZFhoejZkVysvcG9qc2ZUTGl5djZjTFFXV0lkMlVlamxJM05DdUdi?=
 =?utf-8?B?aTRFWjVXby9JenMzVHE0bVUrL1VtRi95Sk9Hd3oyelNmZ3ArTzFlRStuRU5U?=
 =?utf-8?B?TlNHWDZNYmpPQURud1FKczVVWUs0eDdjZUVuZ1Q4OGtLWkJQMDZlV3BDdVZQ?=
 =?utf-8?B?U21nVEdtZFRXNlZTcUUzNjdpcmw2b0d5M29tS20xTW9INlg3c1NVODFSRzVX?=
 =?utf-8?B?VWZDME1XcURnNHNtek1HR3BaVWROTE1ycjVuNWhjK00yb3FtbzFqME80L1V5?=
 =?utf-8?B?L1BOWTlXMG5EQVhOMHJIaGJWNWo3NFJMaXJTSW9oblBpU2JMakZMQzF5VGVp?=
 =?utf-8?B?eUxUNjNNTm9RK3hCejdSSEtxNTNBTlhkbTVXU1Zid25WYUVLRHNEVkNnVmlr?=
 =?utf-8?B?TFZuZGpvMlUyQ3M5ZzMvdis5ZEpaK3E2WFhSa1hUU3ZrR2hUSlBwVm9MTnZm?=
 =?utf-8?B?OWdLYS84TmNLTkpEellNbEN4K0JreVpLQk9rSEZRWFhEZU1nK3BySi96RThK?=
 =?utf-8?Q?zA4Q=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2025 14:26:56.8652
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6c1828b4-6446-40f1-27fa-08de3caf2ae8
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00001CDF.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6950



On 16/12/2025 14:11, Luca Fancellu wrote:
> Hi Michael,
> 
>> On 16 Dec 2025, at 09:15, Orzel, Michal <Michal.Orzel@amd.com> wrote:
>>
>>
>>
>> On 28/11/2025 10:58, Harry Ramsey wrote:
>>> From: Luca Fancellu <luca.fancellu@arm.com>
>>>
>>> During `init_done`, Xen sets the permissions of all symbols marked with
>>> __ro_after_init to be read-only. Currently this is achieved by calling
>>> `modify_xen_mappings` and will shrink the RW mapping on one side and
>>> extend the RO mapping on the other.
>> Can you be more specific about the sides you mention? How did you deduce it?
>> I assume you are talking about MMU part.
> 
> You are right, this sentence is a bit misleading.
> So what was written here was meant to say that on MPU modify_xen_mappings
> should shrink the RW mapping region and extend the RO mapping region because
> as of now they are declared like this in xen.lds.S:
> 
> read only data:
> +------------------+
> | _srodata         |
> | _erodata         |
> +-------------------+
> 
> RW data:
> +---------------------------+
> | __ro_after_init_start |
> | __ro_after_init_end  |
> | __init_begin              |
> +---------------------------+
> 
> And in head.S we map like this:
> 
> /* Xen read-only data section. */
> ldr x1, =_srodata
> ldr x2, =_erodata
> prepare_xen_region x0, x1, x2, x3, x4, x5, attr_prbar=REGION_RO_PRBAR
> 
> /* Xen read-only after init and data section. (RW data) */
> ldr x1, =__ro_after_init_start
> ldr x2, =__init_begin
> prepare_xen_region x0, x1, x2, x3, x4, x5
> 
> Now, because (__ro_after_init_start, __ro_after_init_end) needs to become RO,
> it means that RO section will be extended to (_srodata, __ro_after_init_end) and
> RW section will be shrinked to (__ro_after_init_end, __init_begin):
> 
> read only data region:
> +--------------------------+
> | _srodata                  |
> | __ro_after_init_end |
> +--------------------------+
> 
> RW data region:
> +---------------------------+
> | __ro_after_init_end  |
> | __init_begin              |
> +---------------------------+
> 
> So what we’ve done is taking (__ro_after_init_start, __ro_after_init_end) from
> the RW region and attach it to the RO region.
> 
>>
>>>
>>> This does not work on MPU systems at present because part-region
>>> modification is not supported. Therefore introduce the function
>> What else is in that region?
>> Wouldn't it be better to have one region for this __ro_after_init so that we
>> don't need to shrink/extend the mappings? Is it done because of number of
>> regions limitation?
> 
> So if we do in this way we waste one region, because we will have 2 region declared
> RO that are also contiguous, so easily mergeable, like how we are doing above by
> Extending/shrinking.
Ok, that makes more sense. I thought the descrption in commit msg was somehow
about MMU. It's not ideal to depend on the regions layout but I guess it's ok
if we don't want to waste regions.

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 15:00:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 15:00:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188017.1509288 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVWXf-00051g-Fr; Tue, 16 Dec 2025 15:00:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188017.1509288; Tue, 16 Dec 2025 15:00:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVWXf-00051Z-Cy; Tue, 16 Dec 2025 15:00:47 +0000
Received: by outflank-mailman (input) for mailman id 1188017;
 Tue, 16 Dec 2025 15:00:46 +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
 <SRS0=QDvS=6W=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1vVWXd-00051T-VD
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 15:00:45 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id fecab05c-da8f-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 16:00:44 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 43436FEC;
 Tue, 16 Dec 2025 07:00:36 -0800 (PST)
Received: from [10.1.29.144] (unknown [10.1.29.144])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5F9BB3F73B;
 Tue, 16 Dec 2025 07:00:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fecab05c-da8f-11f0-b15b-2bf370ae4941
Message-ID: <4954f4f7-d256-4cad-914e-c828c717a9b4@arm.com>
Date: Tue, 16 Dec 2025 15:00:40 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH V2] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
Content-Language: en-GB
To: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Luca Fancellu <Luca.Fancellu@arm.com>
Cc: Julien Grall <julien@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <20251203185817.3722903-1-oleksandr_tyshchenko@epam.com>
 <6e83d3bc-c49c-49f4-9dbd-e994e53a62a7@xen.org>
 <44f6cb05-33c3-4937-b508-7616c36d0e4d@epam.com>
 <9FB64A3E-D05F-49B0-B979-25894D25BBD9@arm.com>
 <fc04150e-7f5e-480f-a31b-0eeaee1247b6@epam.com>
From: Harry Ramsey <harry.ramsey@arm.com>
In-Reply-To: <fc04150e-7f5e-480f-a31b-0eeaee1247b6@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 04/12/2025 13:37, Oleksandr Tyshchenko wrote:
> Thank you very much for offering to test this on Arm32 platforms.
>
> The primary goal of the test is to confirm that the new, calculated DTB
> buffer size of 3072 bytes is sufficient for a worst-case Arm32 dom0less
> guest. The expected result is that Xen boots successfully, and the
> regular dom0less guest is created without any panics.
>
> The ideal test configuration would be a dom0less guest with the
> following configuration:
> - The vCPU count set to the maximum for Arm32, which is 8, the vCPU
> nodes should ideally contain "clock-frequency" property.
> - Any other features that add nodes to the guest device tree enabled
> (e.g., hypervisor, reserved-memory, pl011 nodes are present, etc), to
> create the largest possible "base" FDT size.
>
> The test would involve applying the current patch, and the diff below:
>
> diff --git a/xen/common/device-tree/dom0less-build.c
> b/xen/common/device-tree/dom0less-build.c
> index 38a5830813..e95f42d1e1 100644
> --- a/xen/common/device-tree/dom0less-build.c
> +++ b/xen/common/device-tree/dom0less-build.c
> @@ -577,6 +577,9 @@ static int __init prepare_dtb_domU(struct domain *d,
> struct kernel_info *kinfo)
>        if ( ret < 0 )
>            goto err;
>
> +    printk("Final compacted FDT size is: %d bytes\n",
> fdt_totalsize(kinfo->fdt));
> +    printk("Predefined FDT size is: %d bytes\n", DOMU_DTB_SIZE);
> +
>        return 0;
>
>      err:
>
>
> Please let me know what you get. Thanks again.

I have tested this and can confirm it boots into Linux with an 8-core 
setup. Here are the values I got:
(XEN) Final compacted FDT size is: 1127 bytes
(XEN) Predefined FDT size is: 3072 bytes

Tested-by: Harry Ramsey <harry.ramsey@arm.com>

Thanks,
Harry Ramsey


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 15:33:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 15:33:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188043.1509298 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVX3D-0000VK-RI; Tue, 16 Dec 2025 15:33:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188043.1509298; Tue, 16 Dec 2025 15:33:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVX3D-0000VD-O1; Tue, 16 Dec 2025 15:33:23 +0000
Received: by outflank-mailman (input) for mailman id 1188043;
 Tue, 16 Dec 2025 15:33:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=TkDs=6W=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1vVX3B-0000UO-Mc
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 15:33:21 +0000
Received: from mail.zytor.com (terminus.zytor.com [2607:7c80:54:3::136])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8b50a8e1-da94-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 16:33:19 +0100 (CET)
Received: from ehlo.thunderbird.net (c-76-133-66-138.hsd1.ca.comcast.net
 [76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 5BGFWClL2179001
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Tue, 16 Dec 2025 07:32:13 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8b50a8e1-da94-11f0-9cce-f158ae23cfc8
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 5BGFWClL2179001
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025112201; t=1765899134;
	bh=YwoMyqqb7FoPpi5NJyyaera2Ovv71yIWvzL6plb5cBY=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=iPE0VLcTgNWTSt5Tet9JM219GeC7iYNuOcfvkIUd5nEKG/cdvOJwPNBuC1E+DFzIi
	 SHqu/oogV01S+Vdi/eeDP9MVA/VMd+IORcg8rzelWylaDU7RwlyiRxoXkzNUdlA+49
	 9a2JqdulmrlQrzXpJXZcHiVRWtWWYGm4vTlgsvktLtFFJNi1LESdKBVzyuTMqbcRTd
	 bM2x846MlS7boYnZ7dfj6rnowELPFA5PBJghox2dJ8Bq8DfbpSSEai1LJie29QbzBq
	 ekqe/HtqGC1nCUgMXLOxWd2SgknFZP/ynGzpZ0XgkulTqNVUOmsDcdrJ8/SaabjQy9
	 7VLOQi94US1rA==
Date: Tue, 16 Dec 2025 07:32:09 -0800
From: "H. Peter Anvin" <hpa@zytor.com>
To: =?ISO-8859-1?Q?J=FCrgen_Gro=DF?= <jgross@suse.com>,
        Ingo Molnar <mingo@kernel.org>
CC: linux-kernel@vger.kernel.org, x86@kernel.org,
        virtualization@lists.linux.dev, kvm@vger.kernel.org,
        linux-hwmon@vger.kernel.org, linux-block@vger.kernel.org,
        Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        Ajay Kaher <ajay.kaher@broadcom.com>,
        Alexey Makhalov <alexey.makhalov@broadcom.com>,
        Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
        Paolo Bonzini <pbonzini@redhat.com>,
        Vitaly Kuznetsov <vkuznets@redhat.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        xen-devel@lists.xenproject.org, Jean Delvare <jdelvare@suse.com>,
        Guenter Roeck <linux@roeck-us.net>, Denis Efremov <efremov@linux.com>,
        Jens Axboe <axboe@kernel.dk>
Subject: Re: [PATCH 0/5] x86: Cleanups around slow_down_io()
User-Agent: K-9 Mail for Android
In-Reply-To: <b969cff5-be11-4fd3-8356-95185ea5de4c@suse.com>
References: <20251126162018.5676-1-jgross@suse.com> <aT5vtaefuHwLVsqy@gmail.com> <bff8626d-161e-4470-9cbd-7bbda6852ec3@suse.com> <aUFjRDqbfWMsXvvS@gmail.com> <b969cff5-be11-4fd3-8356-95185ea5de4c@suse.com>
Message-ID: <14EF14B1-8889-4037-8E7B-C8446299B1E9@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On December 16, 2025 5:55:54 AM PST, "J=C3=BCrgen Gro=C3=9F" <jgross@suse=
=2Ecom> wrote:
>On 16=2E12=2E25 14:48, Ingo Molnar wrote:
>>=20
>> * J=C3=BCrgen Gro=C3=9F <jgross@suse=2Ecom> wrote:
>>=20
>>>> CPUs anymore=2E Should it cause any regressions, it's easy to bisect =
to=2E
>>>> There's been enough changes around all these facilities that the
>>>> original timings are probably way off already, so we've just been
>>>> cargo-cult porting these to newer kernels essentially=2E
>>>=20
>>> Fine with me=2E
>>>=20
>>> Which path to removal of io_delay would you (and others) prefer?
>>>=20
>>> 1=2E Ripping it out immediately=2E
>>=20
>> I'd just rip it out immediately, and see who complains=2E :-)
>
>I figured this might be a little bit too evil=2E :-)
>
>I've just sent V2 defaulting to have no delay, so anyone hit by that
>can still fix it by applying the "io_delay" boot parameter=2E
>
>I'll do the ripping out for kernel 6=2E21 (or whatever it will be called)=
=2E
>
>
>Juergen

Ok, I'm going to veto ripping it out from the real-mode init code, because=
 I actually know why it is there :) =2E=2E=2E and that code is pre-UEFI leg=
acy these days anyway=2E

Other places=2E=2E=2E I don't care :)


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 15:34:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 15:34:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188052.1509309 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVX4O-0000yW-4k; Tue, 16 Dec 2025 15:34:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188052.1509309; Tue, 16 Dec 2025 15:34:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVX4O-0000yP-0Z; Tue, 16 Dec 2025 15:34:36 +0000
Received: by outflank-mailman (input) for mailman id 1188052;
 Tue, 16 Dec 2025 15:34:35 +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 <SRS0=t3Kb=6W=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vVX4N-0000yE-3v
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 15:34:35 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b8808e10-da94-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 16:34:33 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-430fbb6012bso1877175f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 07:34:33 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-430f280cf30sm22244277f8f.3.2025.12.16.07.34.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Dec 2025 07:34:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b8808e10-da94-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765899273; x=1766504073; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=jyDu0R0y4CDkRDP5L5H78hsWRDWuuN5pDC8niur8NqU=;
        b=W1E3pJ+e+fcQ0HxV/0XugWEOH+H5O/acOJUL+Dw87M/eQCL0Jmt1SqQmy4fMozKYtO
         pYY54WSzojpvY5UmD6rOG8YdQAnwRfdX3Fc7cYcQqwV/jl77cTBkVgK6tRvlw2Ku7R9C
         vQjff2CGmofiHx74ecvFMB4Extnq/rhP8XFMmaAYRl191ilX0no6TNpZy1d/xCsR0JH8
         wzD9ur6ofDhZOfxgrWG0U85Gbj3ld141XOofcRJfbqAkByuOZDEu0VDczwem/MIYqV40
         BJu1wIvP2RlSDfS/oyvGtPYS+zgPjYIZ3Hsva8eaXb7kgn6YWPHJ40dHneW05wUu04+n
         0LQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765899273; x=1766504073;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=jyDu0R0y4CDkRDP5L5H78hsWRDWuuN5pDC8niur8NqU=;
        b=QYzxHfeXH8M/KH8rROSeBMrXpqXq+J5YEQqPY7Spmcp+As+78EGrAw8eYXvo4JOvpI
         pk4aazAXDGVGgtWsOe38143wwMNRjpwk11t4QAEm3GwBjczCwP+4dJvB482S36WBMM1l
         /DqbY3w3nw32Ron2NuvoYeQYBNVr4a2GEnjmMEM27uzMLMje0+0qcEFAPTEACpcHHEOC
         nMjoZK8kgzEhFQPpWCf6XWNUUjyecf7BJNIPWCAWANVf98gE9QENahGjYA4jFSdMh4Fu
         jpHa/j+L1BEaAUfHBtICFUIfoeMeNGfxjUgi1UayJhvsXQ1uG7RGTSg84vaM+Wbyt7a8
         FSYw==
X-Gm-Message-State: AOJu0YzcMkuDtAX3HfE5Iq3IgwtkEtlW04A0ygBtZyHVHk5jNfikoxgX
	yNvECIfYR2TgG5f21u/INZy8zUiOUZEl78u9w4718PwEz9NPkSbmblZP1eYo0hGNCJRgrzQUPzQ
	8Y0M=
X-Gm-Gg: AY/fxX4W16eE7xkpKwZ3PErECL0LNTA66J42Ku9CG/wt/3Y0i3neO25lDxDc7FACFdI
	ceMePUhPRALfWzRUExExJuLR3Cq+oOdS1qCVykEpQuWWnNoZIqLhR1ih/B3SfWTmMitetdLfG7W
	NS84BH6zQ9gMGcrkmKScay/QtV8RWdFY9q/Bpvy4T3urt8NRr/L8uDFGCB+q6qIFzv9Br/ahpBB
	Pl4xidzpow0Dj3HL6ohisfVrfbbG6682B+sJTW7efsXC/70zDuEkO6x9hrRcL+ktN/3l00QbzF9
	kGLKlaV6XTSAmpgPPYnZkX/2VjNeNs7ZST5Qljsy4+l3n14T2dMBREn7hYA5XFpBGVz2uUPFIt1
	PGAdLLZ/GCpinEAgtsh0wHY6ByUzipC3mlN3CexVkETCvemcKCyaZxhK2kzLO7afYdIEHo9lBZF
	eEbooV6Lyr80KpWFMuXBju6YwekdnmO3VG2cC3zQE1avFvZOC3SRHfafqUsb0tBeIYz+jBOe+34
	VfmtmhhMb+Pmw==
X-Google-Smtp-Source: AGHT+IHgzKOlvuGH7oSiMlgU6C9MhgTzDE/90ysOqJCszb1WGVRDV4uetG+4V22jNd+ncOlSMYumlw==
X-Received: by 2002:a05:6000:250c:b0:431:8f8:7f2e with SMTP id ffacd0b85a97d-43108f8814emr1840184f8f.33.1765899272872;
        Tue, 16 Dec 2025 07:34:32 -0800 (PST)
Message-ID: <0cdf924a-2e9b-4997-a01d-6d8b2f711104@suse.com>
Date: Tue, 16 Dec 2025 16:34:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] tools/fuzz: use vpath uniformly for access to hypervisor
 library code
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

It's not quite clear why for libelf and the emulator we use symlink-ing,
while elsewhere we use vpath. Do so for these two as well, thus also
eliminating the need for custom -iquote options and custom cleaning.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Of course for the emulator fuzzer we could go farther and use vpath also
for the references into the test harness dir as well as the core emulator
one.

--- a/tools/fuzz/libelf/Makefile
+++ b/tools/fuzz/libelf/Makefile
@@ -1,17 +1,15 @@
 XEN_ROOT = $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
+vpath %.c $(XEN_ROOT)/xen/common/libelf
+
 LIBELF_OBJS := libelf-tools.o libelf-loader.o libelf-dominfo.o
 
-CFLAGS += -iquote ../../../xen/common/libelf
 $(LIBELF_OBJS): CFLAGS += -Wno-pointer-sign
 $(LIBELF_OBJS): CFLAGS += -DFUZZ_NO_LIBXC $(CFLAGS_xeninclude)
 
 libelf-fuzzer.o: CFLAGS += $(CFLAGS_xeninclude)
 
-$(LIBELF_OBJS:.o=.c): libelf-%.c: ../../../xen/common/libelf/libelf-%.c FORCE
-	ln -nsf $< $@
-
 libelf.a: libelf-fuzzer.o $(LIBELF_OBJS)
 	$(AR) rc $@ $^
 
@@ -30,7 +28,7 @@ distclean: clean
 
 .PHONY: clean
 clean:
-	rm -f *.o .*.d *.a *-libelf-fuzzer $(LIBELF_OBJS:.o=.c)
+	rm -f *.o .*.d *.a *-libelf-fuzzer
 
 .PHONY: install
 install: all
--- a/tools/fuzz/x86_instruction_emulator/Makefile
+++ b/tools/fuzz/x86_instruction_emulator/Makefile
@@ -9,8 +9,7 @@ x86-insn-fuzz-all:
 endif
 
 # Add libx86 to the build
-%.c: $(XEN_ROOT)/xen/lib/x86/%.c FORCE
-	ln -nsf $< $@
+vpath %.c $(XEN_ROOT)/xen/lib/x86
 
 x86_emulate: FORCE
 	mkdir -p $@
@@ -25,7 +24,6 @@ x86_emulate/%.h: x86_emulate ;
 	ln -nsf $< $@
 
 CFLAGS += $(CFLAGS_xeninclude) -D__XEN_TOOLS__ -iquote .
-cpuid.o: CFLAGS += -iquote $(XEN_ROOT)/xen/lib/x86
 
 GCOV_FLAGS := --coverage
 %-cov.o: %.c
@@ -72,7 +70,7 @@ distclean: clean
 clean:
 	rm -f *.a *.o $(DEPS_RM) *.gcda *.gcno *.gcov
 	rm -f afl-harness afl-harness-cov libfuzzer-harness
-	rm -rf x86_emulate x86-emulate.c x86-emulate.h wrappers.c cpuid.c
+	rm -rf x86_emulate x86-emulate.c x86-emulate.h wrappers.c
 
 .PHONY: install
 install: all


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 15:37:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 15:37:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188061.1509318 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVX6k-0001ZF-GG; Tue, 16 Dec 2025 15:37:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188061.1509318; Tue, 16 Dec 2025 15:37:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVX6k-0001Z8-DW; Tue, 16 Dec 2025 15:37:02 +0000
Received: by outflank-mailman (input) for mailman id 1188061;
 Tue, 16 Dec 2025 15:37:01 +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
 <SRS0=ZKfF=6W=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vVX6j-0001Z1-Fw
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 15:37:01 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0f0e40c3-da95-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 16:37:00 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MN2PR03MB5024.namprd03.prod.outlook.com (2603:10b6:208:1a6::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Tue, 16 Dec
 2025 15:36:56 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9434.001; Tue, 16 Dec 2025
 15:36:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0f0e40c3-da95-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XAnfHnzBJ3cjt0EGGTSzF7nSZVACC+wKkfdtHiLEYPdPs1COxhgHxGdul6CSjXpBONOAp9RQgFBYjQOa8q2vF025fniK20Xb2xg9FFoZOmeoYDwrh4CATPctihNy0ObD/A3K0e4RcSA92DCY7Arcq4UjmJENI8DPZqqD9PD/pfemsqGCK/yLMIfLmoDrARZX5jO2M4KfiY2490ZHc/rgINAMj3qlVS7nxSkpIAiVkRrElxEtn6kdp9nS7KAxQsaN4YdON0JsKrXo5rz55WDm9xY7JzrO5jF4JyV4wik3Yve3WBqGy8xzrGfi5HYAceBTG6JJ5Rt0lkI4SwDipGo8RQ==
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=QwNH+EgGkiVUKYSzGCZiKqOjMVsa/2NoBF/nwuuvZMs=;
 b=ssyseutOvhyGkFX60et91aApMYyCsuO60Od+ijvHRoDllbf5ShHELWM/rCi4jJ+9NYqwTRygAr0axnYi2ZlzKUsXC5+cpsafBqdA7ri7Tx00fxNj8Ct8PROMRYbdIgB21zob1aceV02YNO5xTV553ENK35w9+k2oxESRszWYVdkWO11QfPT6PVR4lhHIomEk+c6rjVeV1LOCmFumTiAXsyKVz88EUd879VUamwcLs7HfWGnKve8fRNGu19J1NzHNIclt+XuAIy0idfLYwN9YfSaSl8w0pBqNehxMKfH76QnqD5h9lQKU4+/x1AsfRxnm+mcSYUemO323SzUxvXX4pQ==
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=QwNH+EgGkiVUKYSzGCZiKqOjMVsa/2NoBF/nwuuvZMs=;
 b=jhoH4tMDbYaLvHytgITPm9yyN+LyhfBANI3w1tGKTX+/6N3T63zqLDDSGuqYO4AEG9MCFivWEwwum6bdb9Q68HFf5s/9Y/Umx7DV2wFThiDn8IQ5N5xelLuOwRW4YvqFYzlGhsWZqL0HmGA1JfuFRNijWBznqtKVD8rsJEGfryI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <6ec91521-454e-4631-bf14-f23973222d95@citrix.com>
Date: Tue, 16 Dec 2025 15:36:53 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] tools/fuzz: use vpath uniformly for access to hypervisor
 library code
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <0cdf924a-2e9b-4997-a01d-6d8b2f711104@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <0cdf924a-2e9b-4997-a01d-6d8b2f711104@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0137.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:193::16) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|MN2PR03MB5024:EE_
X-MS-Office365-Filtering-Correlation-Id: 49467f11-8610-4e7e-2b2a-08de3cb8f1b9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Q0tvTHVJNnpYbW5YcDJ4d1ozZGdCeHZQdTFSQTFTMktZcTJROTlyQi9tRDVG?=
 =?utf-8?B?OWRRcWNKV1RuNGU1b29xSGRsb215YkM4Z3FadjBsY2V5UTBXQW9nanBiUVJZ?=
 =?utf-8?B?NHB3TVkzbmdZdmtDUVNsaS9DQnBXZEJaUGV1YThRZE9BREpkWXdpcFUwakVD?=
 =?utf-8?B?U3BWaElyekZyTTQwdGRVWEFaUytLdnlhWUt3VFM4ZTczTVZWd2tNbE5VWmdJ?=
 =?utf-8?B?cldHeUU1bjVPOFp0WENBeVdEZzkrdUp2aVJ6MVBYTUVxMVlKeUdWUzlyNXhK?=
 =?utf-8?B?MzVIRUFyU3NWdnhWdU5DeS9YNW9mUGdRQURKdmx6TFdmcnB4cnJSTEN6QUh0?=
 =?utf-8?B?SFJoQ3R0VUIxNWlBTkRITFc4VHJBSUdWalBCQW5XSjY2dlhORE9oUG1YVWo3?=
 =?utf-8?B?UnVQNkFERXQ1V0xkdy9ORml6WFEzWSt6eGxwdHFickgvWU1ZbjlIdmJXUkhS?=
 =?utf-8?B?aHd1N2dnN3c4ZTE4RUJXMmRWZ2pjL1ZVckVtTU41SXFXbzRwbzlmclljazM5?=
 =?utf-8?B?RUlVUk44UTNsaVNzdW11SW0ramUxWFlaRVBNU05RdHZTVU1VcmNQQ1JWd2hC?=
 =?utf-8?B?NVg5WlQzeGJMS1pjK3NMb21CTm1TUUF4WkZHZlFEQ2h6UXdSM1FPbTNvY0k5?=
 =?utf-8?B?N2YzcmgyN0k3cmtSamQ0U0hMNnZ2TVJjVTZYV2VCeFNNMS9WRkFSYUkwRnBh?=
 =?utf-8?B?bXpHa3ptdUVFNXhqeVNoRmtLallLZVFrVGcrd1lZekpJbE93aElySXFFeUxG?=
 =?utf-8?B?aWVBVVBVNWluOVVhVkthbloyR3FIWWtwa2NEeTVYNGxxbDRla2xpWkxwUkhE?=
 =?utf-8?B?ZWcxQXZOWWNNeEdEMDBFcE9GL1gzQlgxOVg5ZnRtbHhQaWl4alljVTFDc280?=
 =?utf-8?B?eDcxaXV0WVcxOHdZRW5xeENBRXpheE9UWnVYL09tUEgwMVk2aHFpR0NGSUlL?=
 =?utf-8?B?OFVCbXN2Z01ldDZyS1ZXNmJqeXlaUWYxQkl4bmxKeEt0NDY1S3BuYzIvSG1L?=
 =?utf-8?B?K3JEc3h2N01hMzF5eUo1a3o3bUVZazdoUVBNdSs5YndhekNMLzVpdHp4bGp6?=
 =?utf-8?B?WCtXN0x5STFNMnRJQk1MbHVPbzVaK0pFQ1BwUW5lbVcycmd4Q3V4TmhkRnlx?=
 =?utf-8?B?bW9LV1R3R244c243U2VxcDA1U011eDNTQVdZVVpqUlY5MzhqMVZHaTR6SVk5?=
 =?utf-8?B?TTJYa2QvcWJjOEMzSmZMaVFRYkNkVWg1NG1jNCtOTERNUW82RE1obFY2VTAw?=
 =?utf-8?B?OHdWbnVTNU91bkNFTkJHNEFkRFRuODk5c0RJV2g0K2pVVmFSRGVkOXpMalVx?=
 =?utf-8?B?UjVST2c2TUdCZFJJRVdrWW5vWmQ3YnVkVHl3NDhXdXE5UXdJRkoyTVo5alNW?=
 =?utf-8?B?M2dzeEtNVG5qcUlRVXJGNCtKVW4wMHVYaHg0am44cm5yV2JSblduckx6VGxj?=
 =?utf-8?B?TGVYT2hHZWh5T3I3NFhyVldRSXQzMis4Q1F6cXNQdEdZdmt1azdteEkrelp6?=
 =?utf-8?B?Wm5zd1FJMk1FRUROVVM1dStWNGpxVkdsQ0ZJL3QySkpjNWhnVGJTY0xvZk9W?=
 =?utf-8?B?d1Y1cXVKckt5UlF1d3RCeVB1VkFrVEw0bDgrWWN5TWN4ZVhkeWJGZVpzVnRB?=
 =?utf-8?B?MnRQL3ZZY3lBcW9CSGFUcGVDMDZhOVZGcEIxWnFMbDRZbkxock0rMHl2NGVW?=
 =?utf-8?B?NFQ2QzR2c0plcUdqMU92Zko4a3JveFVpaXYvRlNSdVphVXV0NmFrVzI5YW1y?=
 =?utf-8?B?aGpHUm1tSGNka2dzZGtBalZtMWNBczJienQ4d3JmdmxoLzJoQ2N6QmFYRjkw?=
 =?utf-8?B?Zlc3WGxOazFHRXpYaTdKS04zUUtOVDdIQjJkenRTd3BZRnE5ajh1d1BBMGJD?=
 =?utf-8?B?a0ZHTys4c2R1clp3WXdVOCtNdlZHbHE3SEh1a2NZcmxCUFcxUC90b1I1eW1F?=
 =?utf-8?Q?koWBu2wp+Hyj7IAGhCF2oLHP/0cJ+cx9?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cHNqZmliRHpidXZNc1ZEN2I1aFpPcUt4N0V4Y1dZL2ZrQ1RvMTRDT1NLeGEz?=
 =?utf-8?B?QmNWMlBTaXpTNllRU2xWbWw5a2FBR1hDcGtXcFA4bTlXSlRmWGo1cWszOG1X?=
 =?utf-8?B?Y1BxWE1OcHNjZ1lOTkZneWFqODhJNisrejlZWXFSRVpQdmFsQnBRbU5oWkJp?=
 =?utf-8?B?dzFoUS9kbE12QWxXOFFiTldaOEFmSjVGbzJlQnFIWm42YWs0djIrNlBoaFNX?=
 =?utf-8?B?NTZhVUo4N3lmRGxwY0h6VzdKWjNoZ0lNK3hIOXlPMnJ6VHVjYklkZHYrWGlh?=
 =?utf-8?B?OHNrK0p5dkd2M1RZeHhYTzdocEx0WTRQanJWVGpReCtjNzdOWjQxTlVydk40?=
 =?utf-8?B?eU54UmNZQ1B0V3hVSGluQ2pwREhkcFlSOHZ2dStvZ0hJdDdOUW1LRWJZMjE5?=
 =?utf-8?B?RmJtdTFFeXFNSjFnUGZESVIyTlFicURIclR1TEVGM1lrM2VWWFAvT3RSOWM3?=
 =?utf-8?B?MEluRVAvYjlrODlmTVR4azFwZjExWVMwalltL1IzdGdWL3RwMEd5eElHUkpm?=
 =?utf-8?B?Y0lKYUVjdFl2Rmp5TW1rQUFqK3paZXVlTnkxbzI4NXAzSkhKakJVaVp0TWtM?=
 =?utf-8?B?OHBSNytkK0QyQVM0WmdJcU5hUlNPVDkvdFJhWTcwY0RZaVRiT2QzSUpLQUx6?=
 =?utf-8?B?QVlwZXA4SjY4WElWV3YzWklkNmV2OUs2dkNHV3ZweUdrWU9JUDRaR1ZqN1c0?=
 =?utf-8?B?QzRlZ0xod1hYY0FqRGxoTXJ3V3JBMXZpRXRlbEtTTk9aRFl1VDM5ZHhzY2tz?=
 =?utf-8?B?U3hmdHl1TWYrSUpOejFUbUtsMXZ0ZGxkektKQnNRZWEzSlhtb2d6ZUU5TjVT?=
 =?utf-8?B?bDhJSnRKWCtGMmI2VWRiOFZPLzcxWkUyeFZOVVZGR2ZyeGFiK1NoOThOT3Ro?=
 =?utf-8?B?UjhLODRpejhRMmFhdWk0eUJmNFl1NllRSlNMbncvWmxHYStJQ1gwTTVCb3Zz?=
 =?utf-8?B?SWVLZmd3RFpSV1pZaFJQaXJnSjBpSnI4b245U0UwZVR6c2UxSHM0L1ZNdEFh?=
 =?utf-8?B?dHdwczUxaHZDdk5FdnNZdG5ydW5uODR0MzJpSS9vQkJaSlFaL1ZySnIwaFRR?=
 =?utf-8?B?RVVuQSs0cStzOUZBOHNVUVdtbmowcGhqSlE4SEgzMjlJUmJNNUt6M0tGNnI0?=
 =?utf-8?B?eGw4ai9Eb05WeGVxbFMzazI4UjV5WUVIbzBsZlA2U1N1Z3dGd2x1M0NoU0NG?=
 =?utf-8?B?N0J1VmdBK0kyblVxUkNyWTYyeUJoWXpNdklvTm9HSHlsVy82WXp0RTVkQ0Nq?=
 =?utf-8?B?UjBwK0xoR2F1ZHRmdTd1N2x1dTRoSGdQWGZtNkNvSDBxUzdtRzArSWNBeFpy?=
 =?utf-8?B?U1ZZWHpXbkJQOVArZStkMncyZHFIT0NxVkJ2VmJEZ1haSEpxOGcxc1hzRS9T?=
 =?utf-8?B?emtuQ1F4UVVSWW93M2ZzN1g3cHpaRGwwNjErVnV4c3pybGlJemwxWUZ4dXdU?=
 =?utf-8?B?cVF3THBZQm05YXhmbWRPeVhuMWF4Wk5GL1dPYnBqcTJ2VWdZQ0dvbEY0SzRo?=
 =?utf-8?B?VEpXQmRXaEZUZFVOeDlpd3NYN0ttWUM3MjlWT3FpZkNiZGhUT3RIRlRiM24r?=
 =?utf-8?B?cWxuL29lRU5obDM2WWc2U1VsTnIzS0ZIYno4cXpwa2h3RklaejR3Zms4cmpS?=
 =?utf-8?B?YitxM1lQdHpzSEZ2amhLRk5sUlZESlp1VWxUd0VLcktpOFljaWt4MkU4elIv?=
 =?utf-8?B?bUIvRFQvREJHUmxZeUFNRTlwWHljS00vZ0dRdHNTd1hDM3IrSThJcW9ZZ0pw?=
 =?utf-8?B?NGYwUkloSXdjbGo0M2pjeXgrNWxHSEZOSU5Rc2l4YlZNajM5dmtaeXQxbWto?=
 =?utf-8?B?QTZzMXZGMEY4WUpCdDM2cW5JYUh0VGJMdU1yNDE3anpHVDl4K1dwRDc4aVRz?=
 =?utf-8?B?bDVzK2FFblI0RitkeXpXYmFESEQvSkdJQ0xnMjIxUkE5YnFjcC9icmZUZVZv?=
 =?utf-8?B?VGxjWDBzT2tVNkptMUJvZEQ2RTMwMHRaTFNhM251SERaWDdsSEFzZjgxL1pI?=
 =?utf-8?B?MldHWTdaQWxJMWtGb0F3SllJcTdham1EMkg2NlRzTzV6N2EreG9tMWxTOVlo?=
 =?utf-8?B?NS9YRFdMcGl3UWlBbWU2SElvdmlWYU9FYmFBeHNhbURhMlYvN3pqcVlWWW1h?=
 =?utf-8?B?QnRMRUw1Rmo3QkJoQk55OGU1aUZvZFVkUE5jeXJ0MUVoQ1c3QWxnT3laczcv?=
 =?utf-8?B?bWd2NmZoemNCU0VJS05ZcHZ6V2xhRllKWk93d1BFbkFLVHp6Q1VHbkFOTW5K?=
 =?utf-8?B?MWVRWHR0MW10OWlmVnNPaXVQeVg0RFNzU09lem51VjkrMVdxcmowSWE4S2JX?=
 =?utf-8?B?WGd1T2g2WUt3UUV5a2M5ZHVHREdkZUxkMFJrZW1nd0lYQ1dkaHJLZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 49467f11-8610-4e7e-2b2a-08de3cb8f1b9
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2025 15:36:56.2357
 (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: b/BVGRSf6enKdK5LlCnbYltfrdurjsuxZw5kHbT5Cv8tMkd1TeS/lqfkrQWUFA5rH9oNR9+sLj1LmENUb+B/Uq/B+8HLT/6ONmPCEVILU08=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5024

On 16/12/2025 3:34 pm, Jan Beulich wrote:
> It's not quite clear why for libelf and the emulator we use symlink-ing,
> while elsewhere we use vpath. Do so for these two as well, thus also
> eliminating the need for custom -iquote options and custom cleaning.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

> ---
> Of course for the emulator fuzzer we could go farther and use vpath also
> for the references into the test harness dir as well as the core emulator
> one.

Doing everything consistently sounds like a good thing.


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:32:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:32:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188084.1509358 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVXyc-00025f-AA; Tue, 16 Dec 2025 16:32:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188084.1509358; Tue, 16 Dec 2025 16:32:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVXyc-00025U-5u; Tue, 16 Dec 2025 16:32:42 +0000
Received: by outflank-mailman (input) for mailman id 1188084;
 Tue, 16 Dec 2025 16:32:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=M6n8=6W=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vVXya-0001QJ-Pi
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:32:40 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d618581b-da9c-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 17:32:39 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso48128635e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:32:39 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47bd994a221sm12994765e9.7.2025.12.16.08.32.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:32:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d618581b-da9c-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765902758; x=1766507558; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=W6MmJLh1zedBGYOEKBR6Zhdpkfv4rz6s7azRwwDKfXc=;
        b=jm7sYpSWm9Y3wA3bkW2SyZQG/aiMPdq03oVTFZNBk3DQxRod5tsc0nSyF5qLpE0Ju4
         6VFqC8wF1RhkiDS/YuumhK8qiErcym33bBTV4GYWEr+8h0uzxC/z2Wr7KwV/ohLAuAhl
         FyIZQ+3T8eCHTBHQsSIMyeiEjzORwZB62UeiQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765902758; x=1766507558;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=W6MmJLh1zedBGYOEKBR6Zhdpkfv4rz6s7azRwwDKfXc=;
        b=CfCkNHaS/FnPgvfgVmfb6ixMRU4V134ubp8LiHnqkOnmIiLIv91Z9if2ZCEdDQmPfS
         e1S7MuOuiTd13BR+CCf5vgPaHK0SnSD3Rx3psqdeElDv0LoCBDk4GRhNBtwk1e5vl81w
         KGIVM7xmHPVvWkZUbSNWVYtD6dqByssmYkRFK3/V6BM7fiGL66suOdFaBLDOWwDrMHij
         bfpefYEOLH/AbiZqYMvuVQn2sqVd6dsE+7Oz31Whz5wmX5Zo6T2uawBP2reE1e7Gnfc1
         iEVp0GtqG2rVln/R9LvUq7ZNdd2M0XfFt3BYuypQOazrLwvT7DUbCyfUHD8xSQMEvAWJ
         Gdlg==
X-Gm-Message-State: AOJu0Yxe+xPLKtmgr+fVg4VxU/waGHIaiXKAdLiFJs/BblRDS8YbezYx
	fEOHpTiMhs330rbnCumXXkTOlWPrWzch3QK3tq874D3gOvjERW+O3MnN4M2Adb1q1s1ZXDhCV1w
	fNA8w
X-Gm-Gg: AY/fxX6t8hnXQVyWMkqyiRcvOQAjyovOE37ylLKQvDmf6ip1qaVqSQ5J/o3hY7wmCgb
	bRwXPn5ZqPhejraismbYopLbBrg3p9VlSnxw73JO35bxepFf0YQQVhFbD8c7qiYw+Bv2EjTmRjn
	HqNgIK62LQKyWqQHmmBGyvPS42tq3nqrGXTNL3dvhkOSnoMAtFb31jV9+kK7ZIqmVC54V1y4pFI
	TF8OC/YFtsJ9cS4avnlFbVGF2LrwuhhPAI1tMRYrdFJJt0Wf+nzptdy16NjTfrcmaPyDGkXNYQg
	/VLUOHxoVGIGiq4iVoffka9upKASOrqNB3Cj2Iwr1e30Y5Hsvi83GfVtqLTny81eZ+MwKcgcfjs
	Jvqe95kIqL4Q0AzF9QfrYlDDwBjeCmTxCTK2/KevXxH326jZ1tP2JQ/b0FA/XzYBgsg4pNMtdF8
	D3/swLc8CF6OAbZw7QoJ6Cb2Fgc6ChbjljmcX+JxVKDXXK1EwXL3O7VF6qqYreag==
X-Google-Smtp-Source: AGHT+IEGipICJb4JSzbzK0o4frKIyWRr5GCOORTNhsNH3E1yt67Zo6pTCUJjYuMnO0Bux+AQ/LiqiA==
X-Received: by 2002:a05:600c:3ba3:b0:477:a219:cdc3 with SMTP id 5b1f17b1804b1-47a8f1c33c5mr186972085e9.12.1765902757451;
        Tue, 16 Dec 2025 08:32:37 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 2/4] tools/libxc: Delete ENOSYS squashing in xc_domain_claim_pages()
Date: Tue, 16 Dec 2025 16:32:28 +0000
Message-Id: <20251216163230.2768186-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251216163230.2768186-1-andrew.cooper3@citrix.com>
References: <20251216163230.2768186-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It's not acceptable to hide this from the caller; the effect of doing so is to
break an atomicity expectation.

Only the caller can know what the appropriate safety action is in the case
that the claim hypercall isn't available.

Fixes: fc67e9dc0c1f ("xc: use XENMEM_claim_pages hypercall during guest creation.")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
---
 tools/libs/ctrl/xc_domain.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/tools/libs/ctrl/xc_domain.c b/tools/libs/ctrl/xc_domain.c
index 2ddc3f4f426d..01c0669c8863 100644
--- a/tools/libs/ctrl/xc_domain.c
+++ b/tools/libs/ctrl/xc_domain.c
@@ -1074,7 +1074,6 @@ int xc_domain_claim_pages(xc_interface *xch,
                                uint32_t domid,
                                unsigned long nr_pages)
 {
-    int err;
     struct xen_memory_reservation reservation = {
         .nr_extents   = nr_pages,
         .extent_order = 0,
@@ -1082,13 +1081,7 @@ int xc_domain_claim_pages(xc_interface *xch,
         .domid        = domid
     };
 
-    set_xen_guest_handle(reservation.extent_start, HYPERCALL_BUFFER_NULL);
-
-    err = xc_memory_op(xch, XENMEM_claim_pages, &reservation, sizeof(reservation));
-    /* Ignore it if the hypervisor does not support the call. */
-    if (err == -1 && errno == ENOSYS)
-        err = errno = 0;
-    return err;
+    return xc_memory_op(xch, XENMEM_claim_pages, &reservation, sizeof(reservation));
 }
 
 int xc_domain_populate_physmap(xc_interface *xch,
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:32:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:32:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188085.1509367 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVXyd-0002KB-Go; Tue, 16 Dec 2025 16:32:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188085.1509367; Tue, 16 Dec 2025 16:32:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVXyd-0002K4-Dr; Tue, 16 Dec 2025 16:32:43 +0000
Received: by outflank-mailman (input) for mailman id 1188085;
 Tue, 16 Dec 2025 16:32:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=M6n8=6W=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vVXyb-0001QJ-UE
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:32:41 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d6a46efb-da9c-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 17:32:40 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-47bdbc90dcaso633435e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:32:40 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47bd994a221sm12994765e9.7.2025.12.16.08.32.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:32:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d6a46efb-da9c-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765902759; x=1766507559; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5gXaR4CNMM1JwOw0eyl/FJQAxgRZwy+cxNH9Xft08So=;
        b=ACFzqlCgx0ER4aD7erwshX4ntmHMalZjwi/sS91C+cpNqVNoB3LjFkWXSUsYd2WMH/
         +FeyG08KWecYL545rouMkAoYIt7So6do9l70zv4D6w667atP1ReerjpBy2/5qiBdpWhO
         Zy2GwahPt+n78WHSlS7lGeW0Ok5LiWWbcZyac=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765902759; x=1766507559;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=5gXaR4CNMM1JwOw0eyl/FJQAxgRZwy+cxNH9Xft08So=;
        b=MyLQbXlMU3/5UViUlLm9iOF86SW2FblYNEHZ/8aYT2FWlc0yD24GxEazoBZ7X/0uAa
         FkXYlOHsx2d8P0xg6a9oPZ8mXfsnCluZZsLyK6t7iiipXmTan6NtfH6ryca6LW+pOmsw
         +UdEtETg8bFcnR7M1iFNIMsbpB9Y1HkPmVNsJx9tg21axX/Z4PqPhsHE2VOOBHlGO9yy
         0DRSKMU7gnJO4HiAkcICSXj+ecNbQcqf6RMbp8OYNW9ePBnxmuqk4xN4NVjmlv6rLUyf
         49L7GNjZ7Q5In6bFwx38XfASq87fpUdHdS9yXhAmoeU0+keYz/95EXZdV7RPdfmQlX0t
         p9ZQ==
X-Gm-Message-State: AOJu0YxN9DsDPJDb2FM3oddVe3AU46XKgumvkuMTlpft2gO4TZTQALCm
	9BulJt1qPnWTnJxCNSrbRgnmKMSaWuGEUOyz5FaNBAJPCIC4+PnNM0gGHkt9Y8VBKzWN8ZjuWxw
	73N4w
X-Gm-Gg: AY/fxX5x94Bbh0G2kPbUGyOAob+6AiiKgthee5oXkNsYwhLZt8kxflOJdFCZ/OldHEt
	SUZUcC3A/KFpmhdCXQhKhEN1wS9XC9NGJL5JLNZJtOYr3jSv3JtsX/w5LItt0WTvgIrrMyZ1FIT
	Ul4qVZ+CzAAdMbSxp802A154vmWyjd4AOuTUT+wYx47yrc3UkqaY0fVDmvgiYanNE4xNFpAlA4X
	X3/0e0xl1cRaipklWloz0sji4gKv5TvUYPAEZeETYhJSJglMz4MT6HTJApoWWp2y5yzd09I1Vlk
	9YLQH3gHZSG8EB3sZ9Ak5cZ1XkUq4HhgvEaLTibCPKTrcxBtKtSQf/5bz4j8qi2+hKENL7puuRj
	NqrAzDlr1CzuD3bT5qTwRzfddnvduU5TFyFI9WRioqqnEVKqNgWeRpPBUkgO563M2uwbyFjwOvr
	MrLuxtVg1eRfUN46DSXoAQXVOvRitsu8jTotu0I/y1MmzhY2/o+pp7gnvPlDXgzQ==
X-Google-Smtp-Source: AGHT+IHs5rK2CgHB0hILBdJRVro1dQCu5BQib4zZRP6eGKEUwzYltfCTDPzhWnlri2qpScjrghDDVA==
X-Received: by 2002:a05:600c:5252:b0:477:76cb:4812 with SMTP id 5b1f17b1804b1-47a8f708ebamr151546015e9.0.1765902759242;
        Tue, 16 Dec 2025 08:32:39 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 4/4] tools/tests: Memory Claims
Date: Tue, 16 Dec 2025 16:32:30 +0000
Message-Id: <20251216163230.2768186-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251216163230.2768186-1-andrew.cooper3@citrix.com>
References: <20251216163230.2768186-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add some basic testing of the memory claims mechainsm.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
---
 tools/tests/Makefile                   |   1 +
 tools/tests/mem-claim/.gitignore       |   1 +
 tools/tests/mem-claim/Makefile         |  38 +++++
 tools/tests/mem-claim/test-mem-claim.c | 190 +++++++++++++++++++++++++
 4 files changed, 230 insertions(+)
 create mode 100644 tools/tests/mem-claim/.gitignore
 create mode 100644 tools/tests/mem-claim/Makefile
 create mode 100644 tools/tests/mem-claim/test-mem-claim.c

diff --git a/tools/tests/Makefile b/tools/tests/Makefile
index e566bd169952..6477a4386dda 100644
--- a/tools/tests/Makefile
+++ b/tools/tests/Makefile
@@ -3,6 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk
 
 SUBDIRS-y :=
 SUBDIRS-y += domid
+SUBDIRS-y += mem-claim
 SUBDIRS-y += paging-mempool
 SUBDIRS-y += pdx
 SUBDIRS-y += rangeset
diff --git a/tools/tests/mem-claim/.gitignore b/tools/tests/mem-claim/.gitignore
new file mode 100644
index 000000000000..cfcee00b819b
--- /dev/null
+++ b/tools/tests/mem-claim/.gitignore
@@ -0,0 +1 @@
+test-mem-claim
diff --git a/tools/tests/mem-claim/Makefile b/tools/tests/mem-claim/Makefile
new file mode 100644
index 000000000000..76ba3e3c8bef
--- /dev/null
+++ b/tools/tests/mem-claim/Makefile
@@ -0,0 +1,38 @@
+XEN_ROOT = $(CURDIR)/../../..
+include $(XEN_ROOT)/tools/Rules.mk
+
+TARGET := test-mem-claim
+
+.PHONY: all
+all: $(TARGET)
+
+.PHONY: clean
+clean:
+	$(RM) -- *.o $(TARGET) $(DEPS_RM)
+
+.PHONY: distclean
+distclean: clean
+	$(RM) -- *~
+
+.PHONY: install
+install: all
+	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
+	$(INSTALL_PROG) $(TARGET) $(DESTDIR)$(LIBEXEC)/tests
+
+.PHONY: uninstall
+uninstall:
+	$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/$(TARGET)
+
+CFLAGS += $(CFLAGS_xeninclude)
+CFLAGS += $(CFLAGS_libxenctrl)
+CFLAGS += $(APPEND_CFLAGS)
+
+LDFLAGS += $(LDLIBS_libxenctrl)
+LDFLAGS += $(APPEND_LDFLAGS)
+
+%.o: Makefile
+
+$(TARGET): test-mem-claim.o
+	$(CC) -o $@ $< $(LDFLAGS)
+
+-include $(DEPS_INCLUDE)
diff --git a/tools/tests/mem-claim/test-mem-claim.c b/tools/tests/mem-claim/test-mem-claim.c
new file mode 100644
index 000000000000..78eae9091f52
--- /dev/null
+++ b/tools/tests/mem-claim/test-mem-claim.c
@@ -0,0 +1,190 @@
+#include <err.h>
+#include <errno.h>
+#include <inttypes.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/mman.h>
+
+#include <xenctrl.h>
+#include <xenforeignmemory.h>
+#include <xengnttab.h>
+#include <xen-tools/common-macros.h>
+
+static unsigned int nr_failures;
+#define fail(fmt, ...)                          \
+({                                              \
+    nr_failures++;                              \
+    (void)printf(fmt, ##__VA_ARGS__);           \
+})
+
+static xc_interface *xch;
+static uint32_t domid = -1;
+
+static xc_physinfo_t physinfo;
+
+static struct xen_domctl_createdomain create = {
+    .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
+    .max_vcpus = 1,
+    .max_grant_frames = 1,
+    .grant_opts = XEN_DOMCTL_GRANT_version(1),
+
+    .arch = {
+#if defined(__x86_64__) || defined(__i386__)
+        .emulation_flags = XEN_X86_EMU_LAPIC,
+#endif
+    },
+};
+
+static void run_tests(void)
+{
+    int rc;
+
+    /*
+     * Check that the system is quiescent.  Outstanding claims is a global
+     * field.
+     */
+    rc = xc_physinfo(xch, &physinfo);
+    if ( rc )
+        return fail("Failed to obtain physinfo: %d - %s\n",
+                    errno, strerror(errno));
+
+    printf("Free pages: %"PRIu64", Oustanding claims: %"PRIu64"\n",
+           physinfo.free_pages, physinfo.outstanding_pages);
+
+    if ( physinfo.outstanding_pages )
+        return fail("  Test needs running on a quiescent system\n");
+
+    /*
+     * We want any arbitrary domain.  Start with HVM/HAP, falling back to
+     * HVM/Shadow and then to PV.  The dom0 running this test case is one of
+     * these modes.
+     */
+#if defined(__x86_64__) || defined(__i386__)
+    if ( !(physinfo.capabilities & XEN_SYSCTL_PHYSCAP_hap) )
+        create.flags &= ~XEN_DOMCTL_CDF_hap;
+
+    if ( !(physinfo.capabilities & (XEN_SYSCTL_PHYSCAP_hap|XEN_SYSCTL_PHYSCAP_shadow)) ||
+         !(physinfo.capabilities & XEN_SYSCTL_PHYSCAP_hvm) )
+    {
+        create.flags &= ~XEN_DOMCTL_CDF_hvm;
+        create.arch.emulation_flags = 0;
+    }
+#endif
+
+    rc = xc_domain_create(xch, &domid, &create);
+    if ( rc )
+        return fail("  Domain create failure: %d - %s\n",
+                    errno, strerror(errno));
+
+    rc = xc_domain_setmaxmem(xch, domid, -1);
+    if ( rc )
+        return fail("  Failed to set maxmem: %d - %s\n",
+                    errno, strerror(errno));
+
+    printf("  Created d%u\n", domid);
+
+    /*
+     * Creating a domain shouldn't change the claim.  Check it's still 0.
+     */
+    rc = xc_physinfo(xch, &physinfo);
+    if ( rc )
+        return fail("  Failed to obtain physinfo: %d - %s\n",
+                    errno, strerror(errno));
+
+    if ( physinfo.outstanding_pages )
+        return fail("  Unexpected outstanding claim of %"PRIu64" pages\n",
+                    physinfo.outstanding_pages);
+
+    /*
+     * Set a claim for 4M.  This should be the only claim in the system, and
+     * show up globally.
+     */
+    rc = xc_domain_claim_pages(xch, domid, 4*1024*1024/4096);
+    if ( rc )
+        return fail("  Failed to claim 4M of RAM: %d - %s\n",
+                    errno, strerror(errno));
+
+    rc = xc_physinfo(xch, &physinfo);
+    if ( rc )
+        return fail("  Failed to obtain physinfo: %d - %s\n",
+                    errno, strerror(errno));
+
+    if ( physinfo.outstanding_pages != 4*1024*1024/4096 )
+        return fail("  Expected claim to be 4M, got %"PRIu64" pages\n",
+                    physinfo.outstanding_pages);
+
+    /*
+     * Allocate 2M of RAM to the domain.  This should be deducted from global
+     * claim.
+     */
+    xen_pfn_t ram[] = { 0 };
+    rc = xc_domain_populate_physmap_exact(
+        xch, domid, ARRAY_SIZE(ram), 9, 0, ram);
+    if ( rc )
+        return fail("  Failed to populate physmap domain: %d - %s\n",
+                    errno, strerror(errno));
+
+    rc = xc_physinfo(xch, &physinfo);
+    if ( rc )
+        return fail("  Failed to obtain physinfo: %d - %s\n",
+                    errno, strerror(errno));
+
+    if ( physinfo.outstanding_pages != 2*1024*1024/4096 )
+        return fail("  Expected claim to be 2M, got %"PRIu64" pages\n",
+                    physinfo.outstanding_pages);
+
+    /*
+     * Destroying the domain should release the outstanding 2M claim.
+     */
+    rc = xc_domain_destroy(xch, domid);
+
+    /* Cancel the cleanup path, even in the case of an error. */
+    domid = -1;
+
+    if ( rc )
+        return fail("  Failed to destroy domain: %d - %s\n",
+                    errno, strerror(errno));
+
+    rc = xc_physinfo(xch, &physinfo);
+    if ( rc )
+        return fail("  Failed to obtain physinfo: %d - %s\n",
+                    errno, strerror(errno));
+
+    if ( physinfo.outstanding_pages )
+        return fail("  Expected no outstanding claim, got %"PRIu64" pages\n",
+                    physinfo.outstanding_pages);
+}
+
+int main(int argc, char **argv)
+{
+    int rc;
+
+    printf("Memory claims tests\n");
+
+    xch = xc_interface_open(NULL, NULL, 0);
+
+    if ( !xch )
+        err(1, "xc_interface_open");
+
+    run_tests();
+
+    if ( (int)domid >= 0 )
+    {
+        rc = xc_domain_destroy(xch, domid);
+        if ( rc )
+            fail("  Failed to destroy domain: %d - %s\n",
+                 errno, strerror(errno));
+    }
+
+    return !!nr_failures;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:32:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:32:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188083.1509340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVXya-0001bf-3H; Tue, 16 Dec 2025 16:32:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188083.1509340; Tue, 16 Dec 2025 16:32:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVXyZ-0001aX-Ut; Tue, 16 Dec 2025 16:32:39 +0000
Received: by outflank-mailman (input) for mailman id 1188083;
 Tue, 16 Dec 2025 16:32:39 +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
 <SRS0=M6n8=6W=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vVXyZ-0001Pz-8N
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:32:39 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d5f8a76a-da9c-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 17:32:38 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-47798ded6fcso31265585e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:32:38 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47bd994a221sm12994765e9.7.2025.12.16.08.32.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:32:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d5f8a76a-da9c-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765902758; x=1766507558; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=snhnKxagIbQr19lSVEDCo+bKb0pwUs/EFkhnzt3TEJw=;
        b=JftgUmZIq4XX379CGQfilend91sx/9l2hy4U7Jk71q11prXYucvcq6+BRWUFfIAex0
         sf08Ghr3E33v5xOjBK0t7QUagrPWpgH/whTiHiOI0le/zb9+3BnY611B5sSFFUYZpmro
         wCdTNg/+a8V7nG/b9mRaU6eSyw6vsZQ6xn0f8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765902758; x=1766507558;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=snhnKxagIbQr19lSVEDCo+bKb0pwUs/EFkhnzt3TEJw=;
        b=bkxx7Uaiaj4gmA2lS46f15qnnMpwpFgXXM0Hz0IhbB3vOmS0QxbHfbAEyOiCFMLV73
         ZWqkH/nI69eeaAayyiMxklMyxiQidEYAS1FkB/9yO5v93UJZvV4zukMVwD/rUr4/2xTm
         9d9mmXhNlSzIzXwQ0DtN2C1s1QTcmuHFfZ3MUTfwOyzxU2QHBif1iPTSnD+CIw/H5vZn
         LuHNXGho4vssHjj5sldrkYQCuXr56rnGCuFWvyiTAlD+RRMtO7w4YZxCY+UukwKu65I/
         oOqhzKgHIcTbs+eUwiy2dwkbIztzLVoHpgXvPIJaP5JLfioA8GFsFE+/7D3RK6JTEhvd
         ZE6A==
X-Gm-Message-State: AOJu0Yw+DVAhviThKIVyD41kVtZoUaRln4Dneero7R3DKsdh7eXItnO3
	saKrtZEHZS2vRM7u2H7MgvROrDv4wTg7Y77+NC+Jxu7qLJ8ZVxQsdp4py7KZCJKVfkjS8ncT+N4
	+GC7c
X-Gm-Gg: AY/fxX4Sshvjcv34y58gJjSqE7WPELsaRV6NmXVauu3aocxPM4bVcHzlo2LT3lFwJAW
	2PpZHhZlL43U0AKSu2IE2joWq9ObO3SKQXgd3z1W9KYXnLXL9Az/CHmhMNpFqAz4qjnl87O6pSI
	d0B99Go5NrBK3JlwGD8YB8z8zpB//Cz5zVf/K9pKGaRx5Gsk/7sFujK6MzNMFzikC7Q6VZaUgBo
	KlOF+Azioz94h6QqbxRkslnRn3+1riFtdNqt99/aVxWEkelm7UM/TOi3yx2KJBzXhTOP5Nmb/IT
	ePo4irImIZ1TISNs8T5ESyMHMFQ/KnmxQ5dT7vcrDG2fwOHZKoD9gtJ6P0qy1k7XV1FhRhGiUX0
	dqEaZ/CWHK4hGK3wpxC/4vOLGPV/+8Bx3ZwMCCgaVBbxKmGagXgwxC+R4Qok/bu3d65tqX4CLMn
	2oG/WYxofPM7y+b6hHWJH7D9wLnvfzOKunpYsaNJq1B/enPo26cSRmnan51673OQ==
X-Google-Smtp-Source: AGHT+IEbflKNlKyo/6l8Gv/3P7NCIjBvrKq+UBG5fId11wBHJqrSBQTJC4+ks2VcgDEeYEnN86Yi2g==
X-Received: by 2002:a05:600c:8284:b0:477:8b2e:aa7d with SMTP id 5b1f17b1804b1-47a8f90e53cmr151427135e9.30.1765902758134;
        Tue, 16 Dec 2025 08:32:38 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 3/4] tools/tests: Sort Makefile
Date: Tue, 16 Dec 2025 16:32:29 +0000
Message-Id: <20251216163230.2768186-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251216163230.2768186-1-andrew.cooper3@citrix.com>
References: <20251216163230.2768186-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... and split the x86 group away from the common group.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
---
 tools/tests/Makefile | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/tools/tests/Makefile b/tools/tests/Makefile
index ac5737364623..e566bd169952 100644
--- a/tools/tests/Makefile
+++ b/tools/tests/Makefile
@@ -3,17 +3,18 @@ include $(XEN_ROOT)/tools/Rules.mk
 
 SUBDIRS-y :=
 SUBDIRS-y += domid
+SUBDIRS-y += paging-mempool
+SUBDIRS-y += pdx
+SUBDIRS-y += rangeset
 SUBDIRS-y += resource
+SUBDIRS-y += vpci
+SUBDIRS-y += xenstore
+
 SUBDIRS-$(CONFIG_X86) += cpu-policy
 SUBDIRS-$(CONFIG_X86) += tsx
 ifneq ($(clang),y)
 SUBDIRS-$(CONFIG_X86) += x86_emulator
 endif
-SUBDIRS-y += xenstore
-SUBDIRS-y += pdx
-SUBDIRS-y += rangeset
-SUBDIRS-y += vpci
-SUBDIRS-y += paging-mempool
 
 .PHONY: all clean install distclean uninstall
 all clean distclean install uninstall: %: subdirs-%
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:32:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:32:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188081.1509328 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVXyZ-0001Qg-Eb; Tue, 16 Dec 2025 16:32:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188081.1509328; Tue, 16 Dec 2025 16:32:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVXyZ-0001QY-9t; Tue, 16 Dec 2025 16:32:39 +0000
Received: by outflank-mailman (input) for mailman id 1188081;
 Tue, 16 Dec 2025 16:32:38 +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
 <SRS0=M6n8=6W=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vVXyY-0001Pz-2V
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:32:38 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d4e66c2f-da9c-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 17:32:37 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4779adb38d3so36946905e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:32:37 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47bd994a221sm12994765e9.7.2025.12.16.08.32.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:32:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d4e66c2f-da9c-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765902756; x=1766507556; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mgFzPujzf54tak0q7FrhW+uWSwtYPNMPJZRSoWURja8=;
        b=OdyqZT5RzzYpa+v0CIyxPoR0KCYb6eADDuSyJn44qjmFeB44qDrjt3uIXYucZlY5Pw
         mlL241m5tyJHkSOK7A3bbRa6POZoTYtPw57y4yKYfy5BIUa3M/S2rH4n13jauqcXpEM5
         lPf6OttoPeaRqnaIj0LYyZdfQceFY5TD1iPD0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765902756; x=1766507556;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=mgFzPujzf54tak0q7FrhW+uWSwtYPNMPJZRSoWURja8=;
        b=v9z8L4mTk+lnvL4MnPrv3/JgNkL4ZDyPkvDjFke3BL53BOfjNGQcWD6uqLMW7vnABv
         GYso1fLCGzmLDNxrXZHW1tgioWaYgoT2gLLBrmSkaiQgo39pdMgBEap08igu1Q6OvR7h
         1VMkKQ3arJeKQSDngfcm4ULORNesnr85qd6PaeJYcitNcnRJKPQ9h4jvShVtVMOWwT4e
         A2gE6cLa5MqJKb+lpKVGwk3Zoapm48SrbI9jFaF0wvuvqRZk8xLK9xbJmX+KIkiWhRSO
         iRfItzY9gmVUzF3WIZO4RJxMrxjFU1O+qYTRipd+tAynIP5e7uPLnIR3ZUdIIAoCJLpi
         CMOg==
X-Gm-Message-State: AOJu0YwrAGhXUFFIjJ3YuHDPp9FX+kPRr9qNXP5MgwLS28snQnV8QW7b
	6fvyNN87kx7r1tdqbW8IFd31NlQ4bbUjGbYEwuT0lfb/X8KZLPjyixUg7bB+/J+jytTIXuhbjIt
	OkwR1
X-Gm-Gg: AY/fxX5akFu8Qu8wVFcoHxPKs4kSpWQXofZ6y4Qe7uAHx1UiyiJ/QhJN9Vz2tiVMOtz
	JPZ54cuGuHZYh3e86ExNukMFcQda1S9C9cQwdAGNF5anKSQnwhd9LCRybCixbNldAR3ebydze3s
	AORQbG4RWPhUBy7r1/WtuEWOj55RwY7tN6BgWoL2SKzMQHja1n3HypI8BJc893bM+Im8JjBueH3
	JJtXw4iwTO3n4Oh4trfY+IyMn34OcrYcZWDm1o5X6EF0Of1rrN/vZO2zbcv5t8sCQ0rGy0DzEDt
	z45X2lfgzzwzdXq2WloHck6huYpPI5ZzznwPHy7e15koPv5VJWxRH1ssQ5W0WOhq1Qgi08GFnjD
	1BvuwIUYt90STnhwCi91YtAoqX1duZhojA0Dkibe50cB9Rjo4ujVZH6Zk7VGvXBktt4xs3euzoZ
	yN4Ym9VBpkYHwM3gsaVrMxyd5Imz5oGJM9HlHR8o9dqk+i/wgqFnrz4r/wOPgd8g==
X-Google-Smtp-Source: AGHT+IF8/pq5lRwmiKyouqxflWlhNHwkTUT8LmvNn8ZyikT3BUT1yxWKWhQ3I1pXvzHrRZJwrUXG3w==
X-Received: by 2002:a05:600c:4e91:b0:477:641a:1402 with SMTP id 5b1f17b1804b1-47a8f8ab745mr156950825e9.4.1765902756170;
        Tue, 16 Dec 2025 08:32:36 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 1/4] xen/domain: Disallow XENMEM_claim_pages on dying domains
Date: Tue, 16 Dec 2025 16:32:27 +0000
Message-Id: <20251216163230.2768186-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251216163230.2768186-1-andrew.cooper3@citrix.com>
References: <20251216163230.2768186-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

XENMEM_claim_pages can be issued on a domain in the later stages of
domain_kill().  In that case, the claimed memory is leaked, as there's no way
to subsequently release the claim.

Claims are intended for use during domain construction; to reserve sufficient
RAM to construct the domain fully.  There's no legitimate reason to be calling
it on a dying domain.

Fixes: 65c9792df600 ("mmu: Introduce XENMEM_claim_pages (subop of memory ops)")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
---
 xen/common/memory.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/common/memory.c b/xen/common/memory.c
index 3688e6dd5032..ae805ccbe4d1 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -1681,6 +1681,9 @@ long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 
         rc = xsm_claim_pages(XSM_PRIV, d);
 
+        if ( !rc && d->is_dying )
+            rc = -EINVAL;
+
         if ( !rc )
             rc = domain_set_outstanding_pages(d, reservation.nr_extents);
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:32:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:32:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188082.1509332 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVXyZ-0001SG-Ky; Tue, 16 Dec 2025 16:32:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188082.1509332; Tue, 16 Dec 2025 16:32:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVXyZ-0001Ra-Gn; Tue, 16 Dec 2025 16:32:39 +0000
Received: by outflank-mailman (input) for mailman id 1188082;
 Tue, 16 Dec 2025 16:32:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=M6n8=6W=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vVXyY-0001QJ-DF
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:32:38 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d4527952-da9c-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 17:32:36 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-47789cd2083so25845165e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:32:36 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47bd994a221sm12994765e9.7.2025.12.16.08.32.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:32:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d4527952-da9c-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1765902755; x=1766507555; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=AzlUr9Z7O7FkvFve9JYZC9mC2bZxc1cQwAvhgbd09v0=;
        b=UY/v+r+mFCGtri1065aVCTHkm4BFg09sn2mLCsqVvD0zGvH3S9DlOqRE48eo7Qp8/h
         L3Tn/0/T9Zl15u8e2Jo0zKoO27RHyd3wpXO9Cu1wRbdnl1iU5adkw755IX5jArf7VZQp
         6yg/kvi5nzihSX8DvysNqJcWlnUtU97J/FURw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765902755; x=1766507555;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AzlUr9Z7O7FkvFve9JYZC9mC2bZxc1cQwAvhgbd09v0=;
        b=b/Qc/E8/ZQGuy072+BC87aK0Rxu+oebLfHLfgxXpvuBclqg4jK8Iqln7Cpp7TCBwDw
         G3Sq/covGdVhCxuVVV6t3YgmNDRaDTOMOoQaXGXDipGbYwMKRfep/Qk20RipfCoaEaUZ
         xEOaI7OQZDCLkbv26bScPsoFZoQEFtyL/5aXrEvxEB1kigZ3Dqr0Y9bTFA+lUjq+somS
         WfiT4cbHgiwmrXf5nF/xBFtLWRK7SjcU0d5cg7jHu02q46rriH6RG9F6yEciPeONFWzS
         Luf2qDjHsWRCky4J9gD4SYa2jtvrkv2Vh0aFoszGicEEB+6tQUR/0Y/pehpLFun/calC
         0+Mw==
X-Gm-Message-State: AOJu0YyLUm7bI/SZDEibVJF1Zng19+3I1jfMOfIEUBA8EmcH1QFKNxuG
	yvk+UiZ1JUoogLYjr+uEkThX5YS0Kq327mFT+62swgijWo9IQ9vPu6LfQxT3uNoJ50ygnTd1wWx
	bgElk
X-Gm-Gg: AY/fxX5qdABnluos68Mwhhp1agHRag0mG9EUm2S5A3O0CrLPnDF6QxcJ7n6bl+IOZck
	74frGYwokFg2pYkmy46tpOknkoh9KrqPoV7MYqb5yjRnyBeM8Mq3nJYYILfPF6Xldza5lz8EBYU
	bGHVZDXKzKxkOZtUSFsoRXpdqLQ0eAO692ifcDYFEFdMezwQUXtg376aShVz7Da1bNjtySPOhP6
	jGhsK/4Zlug1iXQkIZ1TzolAPyGi400xZ53zYz/vTTCflAD4eIr+fqRAskXbaL34CQSS2P8jMqs
	7sJahFRbDcdZxZvTshDdDQZynmwe3JVmA8/XhCyFBVlDAKehDPF2JzthkypdokjuANTefHKXNeV
	4UZgSsV9poSRikbCq7HBjOL/Z8ZjWKpwk37lJ9ysbXTgwSdCooOiQojRX/ZqdxrGjEZBtq9SGjo
	o2kGBme65v1J65FBpRI7L37sTB3Vz9lYtvFikJn7k4A6y5DYBdo4fAWAVpRFmsTA==
X-Google-Smtp-Source: AGHT+IElS7NXgVoHB73gqnkka36Zc/RQtUBB/74fl2msSH3CWLZNET7IxNzEx4TIOpIe55AiH4LZWw==
X-Received: by 2002:a05:600c:870b:b0:477:214f:bd95 with SMTP id 5b1f17b1804b1-47a970ee01fmr95640125e9.23.1765902755373;
        Tue, 16 Dec 2025 08:32:35 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 0/4] xen: Memory claims fixes and testing
Date: Tue, 16 Dec 2025 16:32:26 +0000
Message-Id: <20251216163230.2768186-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Two bugfixes, and a test for some basic behaviour.

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2218133231

Andrew Cooper (4):
  xen/domain: Disallow XENMEM_claim_pages on dying domains
  tools/libxc: Delete ENOSYS squashing in xc_domain_claim_pages()
  tools/tests: Sort Makefile
  tools/tests: Memory Claims

 tools/libs/ctrl/xc_domain.c            |   9 +-
 tools/tests/Makefile                   |  12 +-
 tools/tests/mem-claim/.gitignore       |   1 +
 tools/tests/mem-claim/Makefile         |  38 +++++
 tools/tests/mem-claim/test-mem-claim.c | 190 +++++++++++++++++++++++++
 xen/common/memory.c                    |   3 +
 6 files changed, 240 insertions(+), 13 deletions(-)
 create mode 100644 tools/tests/mem-claim/.gitignore
 create mode 100644 tools/tests/mem-claim/Makefile
 create mode 100644 tools/tests/mem-claim/test-mem-claim.c


base-commit: 46f3ed0d53db6daf38c230dff0d2910bcb61fbe2
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:55:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:55:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188149.1509447 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYL3-0008Jc-Kk; Tue, 16 Dec 2025 16:55:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188149.1509447; Tue, 16 Dec 2025 16:55:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYL3-0008JR-HJ; Tue, 16 Dec 2025 16:55:53 +0000
Received: by outflank-mailman (input) for mailman id 1188149;
 Tue, 16 Dec 2025 16:55:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wcum=6W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVYL1-0006gk-N5
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:55:51 +0000
Received: from mail-ej1-x644.google.com (mail-ej1-x644.google.com
 [2a00:1450:4864:20::644])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 132753cb-daa0-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 17:55:50 +0100 (CET)
Received: by mail-ej1-x644.google.com with SMTP id
 a640c23a62f3a-b7a72874af1so743009666b.3
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:55:50 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8003cb349csm63169766b.68.2025.12.16.08.55.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:55:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 132753cb-daa0-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765904149; x=1766508949; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=B1NtInnSmemjufOwn8IQ7njKkF0r+OU4WznXSajv2QU=;
        b=STb3eOfONyZ9utOImDnnJwYb8JUWn7ae3G/PqVPXo2wF3xV8zvGd2FyA4O7CBxLxj6
         3FnXmuOI8i+0gsXo5c/CpbG4WGObvsNBtzzSqlSdVc50nIlyvxXIjuoBnYCX6HcMzUg2
         xkDP9R0mtWIzXaYTdKSV8691M+qrabRBYwqOPDvg0i74jJvTq8PPJOOJ9cyzmkhHOEZP
         wSbQRDwwZzAHpjH8BG2yIRpC3jarWi/z0fcu4BOfeRRD9YGg6VC3UUID/NtkVFs4Nayc
         k11boQ//Gg8GOvceDC9w74O4fPxJUeko9b5pGIWhVpINQ8CpsZ71KIMvUDyO3k3FZLdX
         mWjw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765904149; x=1766508949;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=B1NtInnSmemjufOwn8IQ7njKkF0r+OU4WznXSajv2QU=;
        b=Vc0vqix0d77VfIIVrutsqQQbCwJBsYeLJKJFKMgWGAQEoQHfUdO0+omd4I+vuJGmaV
         3YsFiGQwpifnH/Gt6IBg1PpBdFmJcVbm4T+KaQgvnkoAMd/gUeHMmtwh5jXjUATmHshn
         KSOosH3TDj6DBDcoSb5VeX74T6vwBLwoV4G4kNvDiAyMmFELPwvGCOFkir83ObhVjX2x
         7NSkL981Ha3W1PYs1oT5Y/j2xw3jdv/OoBpmb+MZoROijXcSYq5WK50noSQey1CQffpU
         DutyyBP+7P0YBCyBFEOLz3gkS6H1aFw4IeGU4uPCMmE2Xq+LPRo90M684maWw2P2TrsI
         onOA==
X-Gm-Message-State: AOJu0YyA8NQ+R7VBFLsabRBMMT+wWCgdDHvU1Zf+0KYbOEkF6BSAKICD
	QqAzmlj8VWyEJEbp/C3olHBk5vc8eBGIXSsXtI0VejcJMVGen7J51Q4wt4kzziN2
X-Gm-Gg: AY/fxX6UUT0ZpoOHJv3xPz0rau6uERratywsHbkX/bRsfVdqKMTlsbA+C261Gs98zgT
	Xr1Eti8AWxsKDfDI3xg3xu/B/eZduDE5/7ny29otLjtu8ULdlaLz0hfhLyxjZt6yAgtVlPl7NjI
	e3BtgAwjdhncPhNxnob1uTUYRFSo0Mg57Nvkcbi+6n13Uv7gQ8AXcln1K9NiQPEQlRtWYX1QYCx
	Tnhd5iidLtvDIt08ElzCaz5kwDLAL/jUCCa2jp0i1ZAZjfvjjFQoBx4H5ZqrprAe3lqw8ZzsCAr
	GmTR+RAvcpemjPm5h9dNTY9Is4idjc+MESZWW+wvPQWFYAZY/q54k5dngwDmhMEQfQjfA+dfOnM
	zfISNVI5WKKxP6ECcMQRawQ7Io//Sq40l+DwnStMQ1IKDUq5OmmHXuHBIM4IQaMjZIfPtgt/lpU
	GdCauHIIoT48X/oPnh4HaXsq53Vzv3OnLeLTxliQ1Ug91uqIQl9ha+vX0=
X-Google-Smtp-Source: AGHT+IEebl/uN93l3L7SaSUYfEwV1Wm0D68eh2OksLfQj13yfomYfNaQKRAXmPTW7KCYWi9V/lwdUA==
X-Received: by 2002:a17:906:c110:b0:b72:77c7:d8ad with SMTP id a640c23a62f3a-b7d238cefa7mr1488125566b.35.1765904148847;
        Tue, 16 Dec 2025 08:55:48 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 07/19] xen/riscv: add new p2m types and helper macros for type classification
Date: Tue, 16 Dec 2025 17:55:17 +0100
Message-ID: <8eb13555fc18830a879f00f4882980898b26d94e.1765879052.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765879052.git.oleksii.kurochko@gmail.com>
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

- Extended p2m_type_t with additional types: p2m_mmio_direct,
  p2m_ext_storage.
- Added macros to classify memory types: P2M_RAM_TYPES.
- Introduced helper predicates: p2m_is_ram(), p2m_is_any_ram().
- Introduce arch_dt_passthrough() to tell handle_passthrough_prop()
  from common code how to map device memory.
- Introduce p2m_first_external for detection for relational operations
  with p2m type which is stored outside P2M's PTE bits.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V5-V7:
 - Nothing changed. Only Rebase.
---
Changes in V4:
 - Drop underscores for argumets of p2m_is_ram() and p2m_is_any_ram().
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V4:
 - Drop underscode in p2m_to_mask()'s argument and for other similar helpers.
 - Introduce arch_dt_passthrough_p2m_type() instead of p2m_mmio_direct.
 - Drop for the moment grant tables related stuff as it isn't going to be used in the nearest future.
---
Changes in V3:
 - Drop p2m_ram_ro.
 - Rename p2m_mmio_direct_dev to p2m_mmio_direct_io to make it more RISC-V specicific.
 - s/p2m_mmio_direct_dev/p2m_mmio_direct_io.
---
Changes in V2:
 - Drop stuff connected to foreign mapping as it isn't necessary for RISC-V
   right now.
---
 xen/arch/riscv/include/asm/p2m.h | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index c9aa19ad43..1c89838408 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -70,8 +70,29 @@ struct p2m_domain {
 typedef enum {
     p2m_invalid = 0,    /* Nothing mapped here */
     p2m_ram_rw,         /* Normal read/write domain RAM */
+    p2m_mmio_direct_io, /* Read/write mapping of genuine Device MMIO area,
+                           PTE_PBMT_IO will be used for such mappings */
+    p2m_ext_storage,    /* Following types'll be stored outsude PTE bits: */
+
+    /* Sentinel — not a real type, just a marker for comparison */
+    p2m_first_external = p2m_ext_storage,
 } p2m_type_t;
 
+static inline p2m_type_t arch_dt_passthrough_p2m_type(void)
+{
+    return p2m_mmio_direct_io;
+}
+
+/* We use bitmaps and mask to handle groups of types */
+#define p2m_to_mask(t) BIT(t, UL)
+
+/* RAM types, which map to real machine frames */
+#define P2M_RAM_TYPES (p2m_to_mask(p2m_ram_rw))
+
+/* Useful predicates */
+#define p2m_is_ram(t) (p2m_to_mask(t) & P2M_RAM_TYPES)
+#define p2m_is_any_ram(t) (p2m_to_mask(t) & P2M_RAM_TYPES)
+
 #include <xen/p2m-common.h>
 
 static inline int get_page_and_type(struct page_info *page,
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:55:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:55:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188144.1509397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYKy-00077k-UH; Tue, 16 Dec 2025 16:55:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188144.1509397; Tue, 16 Dec 2025 16:55:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYKy-00077d-RH; Tue, 16 Dec 2025 16:55:48 +0000
Received: by outflank-mailman (input) for mailman id 1188144;
 Tue, 16 Dec 2025 16:55:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wcum=6W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVYKx-0006gk-Ey
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:55:47 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0fe45179-daa0-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 17:55:44 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-64951939e1eso8589841a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:55:44 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8003cb349csm63169766b.68.2025.12.16.08.55.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:55:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0fe45179-daa0-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765904144; x=1766508944; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+8mMORbxMUNZTkX3VOmvWIBTB416zrhf+ZA68Ll67BU=;
        b=jgbcqIj9E+tfUpFgwFzICor6pVhXldTmx4au37sbJJzghhhv3yaItS7t90w5Cx1nt/
         e1VzHVCZpYeeteiRWysLILGETqWWJZ0wvS3gpTGmMk+Z7GdJB5mrjs/C0SSTXrwp5etL
         aYTiJIYzo9oeZ679H5gF1JseJm4SZvFFAc6Q/WEcvcR5Z7JG4QQvdE43NKDkxH37Dl3L
         jIXF1HzlvKUH3kG5REXk/GbXeakKDlQkW6wXXfCuyCOdsbUJpGA55Ue7yAfAXEj4+Gl0
         qERT6EiKpjeWE82xsnZ6mFv3qtmofBuh5jw9bJshFE/J7QVB0O5t2D0hQL8fMhg3T6gw
         LB3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765904144; x=1766508944;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=+8mMORbxMUNZTkX3VOmvWIBTB416zrhf+ZA68Ll67BU=;
        b=nlTDnenG+85RnJeFMDnPdIl9+tVo8osI5m1yDtKgaVRt57ZO0x80/uVdfKgT30qxMR
         +eMNAvANnGyUtwHcYiLhytI2RK7K5ndI0+tAww4ergvAKt2R6XKeC5SiXfJBPuvRwJvS
         xoUpsUkKPQqak0kgOzpVJsGwK5AngnGlmrSwA4ebbAzvWjhAVg9SaIm+1Rptm5DHb8Ml
         nd6aceFhQUnBi06gCQg4jsZN+y/Jd7TTFZbj8z0EPulavT34fX3k/elpNVxAszyEgSpK
         PJ0lgC4dviVPS6c1fncVc/WaHJ0KVWSzwYAwCkpqO+vFw3zDO9mF2axCZnoDQRo5Jk9T
         AAQA==
X-Gm-Message-State: AOJu0YxGqa2C9QpuMn0lIyw4emkS5+sj6/RJx67YJbhf5KSWEbpk4JZQ
	hxoM+dhjPrSZQdPhwBp+thPNqmACmvD4RVJSEdxu/ocQeLB8oe2JR4XlZ1/LfA==
X-Gm-Gg: AY/fxX5ohw+VLDzcAfX/dnBttfZjZnzUSoxdNY5eUforyMQyuDRqDSYNrkQg5X7M8DP
	v1OY/dk2ndMvqTd4e6z7bTLvxKiudF0B+ognuQjcM1bp2vNlLaAgULjxACheEoFddtM51SmUNIy
	1W1YmrdhT1NT5LNY6QPuhRPYdER3T/U6Ky2iXhoOlrF6+j/0P9hFhPwOnqrmGkrNakmSNgSr8CQ
	pLFZM0iBb5okWFIefN7d109VSixNRGTH3U8Zw3tAYzedsR3a2naWLpw9dP7Tmkt2EUjB0R5G3cN
	7AXbYaa00QgT4O2QNdpCOLdUVGclWL4jUdQ8vif58aNMQcCmj0cDm1K8Ndocj54iH30phxCZFwc
	qOcOKtUMVxnBrsIqF3G3h3B2v4V5hVWqfNydRmPrMDabxGf5u/51xPPVhsAob+9RvY6MCgDdWSI
	r1FS3GuD+Sg+nQUc7fNYgLPw+9ptnp8WKRRp3H+4WemtovBfg4nkY=
X-Google-Smtp-Source: AGHT+IGgbO4YlQIWDEz5KRaCudwLVcKh42BfPi/+6okZeg1Z2kEChyGw3R22qdLLxZt3JYvY9BHeoA==
X-Received: by 2002:a17:907:3c91:b0:b7a:5c1a:85e with SMTP id a640c23a62f3a-b7d23665af1mr1313493966b.23.1765904143465;
        Tue, 16 Dec 2025 08:55:43 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v7 02/19] xen/riscv: introduce VMID allocation and manegement
Date: Tue, 16 Dec 2025 17:55:12 +0100
Message-ID: <909072f0b5ede1869e6c6993be348ecbdd47e0fa.1765879052.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765879052.git.oleksii.kurochko@gmail.com>
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Current implementation is based on x86's way to allocate VMIDs:
  VMIDs partition the physical TLB. In the current implementation VMIDs are
  introduced to reduce the number of TLB flushes. Each time a guest-physical
  address space changes, instead of flushing the TLB, a new VMID is
  assigned. This reduces the number of TLB flushes to at most 1/#VMIDs.
  The biggest advantage is that hot parts of the hypervisor's code and data
  retain in the TLB.

  VMIDs are a hart-local resource.  As preemption of VMIDs is not possible,
  VMIDs are assigned in a round-robin scheme. To minimize the overhead of
  VMID invalidation, at the time of a TLB flush, VMIDs are tagged with a
  64-bit generation. Only on a generation overflow the code needs to
  invalidate all VMID information stored at the VCPUs with are run on the
  specific physical processor. When this overflow appears VMID usage is
  disabled to retain correctness.

Only minor changes are made compared to the x86 implementation.
These include using RISC-V-specific terminology, adding a check to ensure
the type used for storing the VMID has enough bits to hold VMIDLEN,
and introducing a new function vmidlen_detect() to clarify the VMIDLEN
value, rename stuff connected to VMID enable/disable to "VMID use
enable/disable".

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V7:
 - Move the vmid description up in xen-command-line.pandoc to maintain
   alphabetical order.
 - Add explanatory comments above vmid_init() and vmidlen_detect() explaining
   why they are not marked as __init.
---
Changes in V6:
 - Add information about VMID command line option to
   docs/misc/xen-command-line.pandoc.
 - Drop the call of local_hfence_gvma_all() from vmid_init() to avoid
   redundancy as this function is called now in pre_gstage_init().
   Also, update the comment in guest_mm_init() above local_hfence_gvma_all().
 - Add __ro_after_init in declaration of g_disabled.
 - Drop logging of function name in vmid_flush_hart() and drop full stop at
   the end of the message.
 - Add the check that vmid is used at the start of vmid_handle_enter().
 - Drop parentheses around (vmid->vmid == 1) in vmid_handle_enter().
 - Update BUILD_BUG_ON() in vmid_init as HGATP_VMID_SHIFT was dropped.
---
Changes in V5:
 - Rename opt_vmid_use_enabled with opt_vmid to be in sync with command line
   option.
 - Invert the expression for data->used = ... and swap "dis" and "en". Also,
   invert usage of data->used elsewhere.
 - s/vcpu_vmid_flush_vcpu/vmid_flush_vcpu.
 - Add prototypes to asm/vmid.h which could be used outside vmid.c.
 - Update the comment in vmidlen_detect(): instead of Section 3.7 ->
   Section "Physical Memory Protection".
 - Move vmid_init() call to pre_gstage_init().
---
Changes in V4:
 - s/guest's virtual/guest-physical in the comment inside vmid.c
   and in commit message.
 - Drop x86-related numbers in the comment about "Sketch of the Implementation".
 - s/__read_only/__ro_after_init in declaration of opt_vmid_enabled.
 - s/hart_vmid_generation/generation.
 - Update vmidlen_detect() to work with unsigned int type for vmid_bits
   variable.
 - Drop old variable im vmdidlen_detetct, it seems like there is no any reason
   to restore old value of hgatp with no guest running on a hart yet.
 - Update the comment above local_hfence_gvma_all() in vmidlen_detect().
 - s/max_availalbe_bits/max_available_bits.
 - use BITS_PER_BYTE, instead of "<< 3".
 - Add BUILD_BUILD_BUG_ON() instead run-time check that an amount of set bits
   can be held in vmid_data->max_vmid.
 - Apply changes from the patch "x86/HVM: polish hvm_asid_init() a little" here
   (changes connected to g_disabled) with the following minor changes:
   Update the printk() message to "VMIDs use is...".
   Rename g_disabled to g_vmid_used.
 - Rename member 'disabled' of vmid_data structure to used.
 - Use gstage_mode to properly detect VMIDLEN.
---
Changes in V3:
 - Reimplemnt VMID allocation similar to what x86 has implemented.
---
Changes in V2:
 - New patch.
---
 docs/misc/xen-command-line.pandoc   |   9 ++
 xen/arch/riscv/Makefile             |   1 +
 xen/arch/riscv/include/asm/domain.h |   6 +
 xen/arch/riscv/include/asm/vmid.h   |  14 +++
 xen/arch/riscv/p2m.c                |   7 +-
 xen/arch/riscv/vmid.c               | 178 ++++++++++++++++++++++++++++
 6 files changed, 213 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/vmid.h
 create mode 100644 xen/arch/riscv/vmid.c

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index e92b6d55b5..805da22c44 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2863,6 +2863,15 @@ to disable the feature.  Value is in units of crystal clock cycles.
 Note the hardware might add a threshold to the provided value in order to make
 it safe, and hence using 0 is fine.
 
+### vmid (RISC-V)
+> `= <boolean>`
+
+> Default: `true`
+
+Permit Xen to use Virtual Machine Identifiers. This is an optimisation which
+tags the TLB entries with an ID per vcpu. This allows for guest TLB flushes
+to be performed without the overhead of a complete TLB flush.
+
 ### vpid (Intel)
 > `= <boolean>`
 
diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 7b8d0e20e5..c93c837aac 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -17,6 +17,7 @@ obj-y += smpboot.o
 obj-y += stubs.o
 obj-y += time.o
 obj-y += traps.o
+obj-y += vmid.o
 obj-y += vm_event.o
 
 $(TARGET): $(TARGET)-syms
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index c3d965a559..aac1040658 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -5,6 +5,11 @@
 #include <xen/xmalloc.h>
 #include <public/hvm/params.h>
 
+struct vcpu_vmid {
+    uint64_t generation;
+    uint16_t vmid;
+};
+
 struct hvm_domain
 {
     uint64_t              params[HVM_NR_PARAMS];
@@ -14,6 +19,7 @@ struct arch_vcpu_io {
 };
 
 struct arch_vcpu {
+    struct vcpu_vmid vmid;
 };
 
 struct arch_domain {
diff --git a/xen/arch/riscv/include/asm/vmid.h b/xen/arch/riscv/include/asm/vmid.h
new file mode 100644
index 0000000000..1c500c4aff
--- /dev/null
+++ b/xen/arch/riscv/include/asm/vmid.h
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef ASM_RISCV_VMID_H
+#define ASM_RISCV_VMID_H
+
+struct vcpu;
+struct vcpu_vmid;
+
+void vmid_init(void);
+bool vmid_handle_vmenter(struct vcpu_vmid *vmid);
+void vmid_flush_vcpu(struct vcpu *v);
+void vmid_flush_hart(void);
+
+#endif /* ASM_RISCV_VMID_H */
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 076a1c35b2..4e84acaafd 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -9,6 +9,7 @@
 #include <asm/flushtlb.h>
 #include <asm/p2m.h>
 #include <asm/riscv_encoding.h>
+#include <asm/vmid.h>
 
 static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
     .mode = HGATP_MODE_OFF,
@@ -68,9 +69,11 @@ void __init guest_mm_init(void)
 {
     gstage_mode_detect();
 
+    vmid_init();
+
     /*
-     * As gstage_mode_detect() is changing CSR_HGATP, it is necessary to flush
-     * guest TLB because:
+     * As gstage_mode_detect() and vmid_init() are changing CSR_HGATP, it is
+     * necessary to flush guest TLB because:
      *
      * From RISC-V spec:
      *   Speculative executions of the address-translation algorithm behave as
diff --git a/xen/arch/riscv/vmid.c b/xen/arch/riscv/vmid.c
new file mode 100644
index 0000000000..8fbcd500f2
--- /dev/null
+++ b/xen/arch/riscv/vmid.c
@@ -0,0 +1,178 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/domain.h>
+#include <xen/init.h>
+#include <xen/sections.h>
+#include <xen/lib.h>
+#include <xen/param.h>
+#include <xen/percpu.h>
+
+#include <asm/atomic.h>
+#include <asm/csr.h>
+#include <asm/flushtlb.h>
+#include <asm/p2m.h>
+
+/* Xen command-line option to enable VMIDs */
+static bool __ro_after_init opt_vmid = true;
+boolean_param("vmid", opt_vmid);
+
+/*
+ * VMIDs partition the physical TLB. In the current implementation VMIDs are
+ * introduced to reduce the number of TLB flushes. Each time a guest-physical
+ * address space changes, instead of flushing the TLB, a new VMID is
+ * assigned. This reduces the number of TLB flushes to at most 1/#VMIDs.
+ * The biggest advantage is that hot parts of the hypervisor's code and data
+ * retain in the TLB.
+ *
+ * Sketch of the Implementation:
+ *
+ * VMIDs are a hart-local resource.  As preemption of VMIDs is not possible,
+ * VMIDs are assigned in a round-robin scheme. To minimize the overhead of
+ * VMID invalidation, at the time of a TLB flush, VMIDs are tagged with a
+ * 64-bit generation. Only on a generation overflow the code needs to
+ * invalidate all VMID information stored at the VCPUs with are run on the
+ * specific physical processor. When this overflow appears VMID usage is
+ * disabled to retain correctness.
+ */
+
+/* Per-Hart VMID management. */
+struct vmid_data {
+   uint64_t generation;
+   uint16_t next_vmid;
+   uint16_t max_vmid;
+   bool used;
+};
+
+static DEFINE_PER_CPU(struct vmid_data, vmid_data);
+
+/*
+ * vmidlen_detect() is expected to be called during secondary hart bring-up,
+ * so it should not be marked as __init.
+ */
+static unsigned int vmidlen_detect(void)
+{
+    unsigned int vmid_bits;
+    unsigned char gstage_mode = get_max_supported_mode();
+
+    /*
+     * According to the RISC-V Privileged Architecture Spec:
+     *   When MODE=Bare, guest physical addresses are equal to supervisor
+     *   physical addresses, and there is no further memory protection
+     *   for a guest virtual machine beyond the physical memory protection
+     *   scheme described in Section "Physical Memory Protection".
+     *   In this case, the remaining fields in hgatp must be set to zeros.
+     * Thereby it is necessary to set gstage_mode not equal to Bare.
+     */
+    ASSERT(gstage_mode != HGATP_MODE_OFF);
+    csr_write(CSR_HGATP,
+              MASK_INSR(gstage_mode, HGATP_MODE_MASK) | HGATP_VMID_MASK);
+    vmid_bits = MASK_EXTR(csr_read(CSR_HGATP), HGATP_VMID_MASK);
+    vmid_bits = flsl(vmid_bits);
+    csr_write(CSR_HGATP, _AC(0, UL));
+
+    /* local_hfence_gvma_all() will be called at the end of pre_gstage_init. */
+
+    return vmid_bits;
+}
+
+/*
+ * vmid_init() is expected to be called during secondary hart bring-up,
+ * so it should not be marked as __init.
+ */
+void vmid_init(void)
+{
+    static int8_t __ro_after_init g_vmid_used = -1;
+
+    unsigned int vmid_len = vmidlen_detect();
+    struct vmid_data *data = &this_cpu(vmid_data);
+
+    BUILD_BUG_ON(MASK_EXTR(HGATP_VMID_MASK, HGATP_VMID_MASK) >
+                 (BIT((sizeof(data->max_vmid) * BITS_PER_BYTE), UL) - 1));
+
+    data->max_vmid = BIT(vmid_len, U) - 1;
+    data->used = opt_vmid && (vmid_len > 1);
+
+    if ( g_vmid_used < 0 )
+    {
+        g_vmid_used = data->used;
+        printk("VMIDs use is %sabled\n", data->used ? "en" : "dis");
+    }
+    else if ( g_vmid_used != data->used )
+        printk("CPU%u: VMIDs use is %sabled\n", smp_processor_id(),
+               data->used ? "en" : "dis");
+
+    /* Zero indicates 'invalid generation', so we start the count at one. */
+    data->generation = 1;
+
+    /* Zero indicates 'VMIDs use disabled', so we start the count at one. */
+    data->next_vmid = 1;
+}
+
+void vmid_flush_vcpu(struct vcpu *v)
+{
+    write_atomic(&v->arch.vmid.generation, 0);
+}
+
+void vmid_flush_hart(void)
+{
+    struct vmid_data *data = &this_cpu(vmid_data);
+
+    if ( !data->used )
+        return;
+
+    if ( likely(++data->generation != 0) )
+        return;
+
+    /*
+     * VMID generations are 64 bit.  Overflow of generations never happens.
+     * For safety, we simply disable ASIDs, so correctness is established; it
+     * only runs a bit slower.
+     */
+    printk("VMID generation overrun. Disabling VMIDs\n");
+    data->used = false;
+}
+
+bool vmid_handle_vmenter(struct vcpu_vmid *vmid)
+{
+    struct vmid_data *data = &this_cpu(vmid_data);
+
+    if ( !data->used )
+        goto disabled;
+
+    /* Test if VCPU has valid VMID. */
+    if ( read_atomic(&vmid->generation) == data->generation )
+        return 0;
+
+    /* If there are no free VMIDs, need to go to a new generation. */
+    if ( unlikely(data->next_vmid > data->max_vmid) )
+    {
+        vmid_flush_hart();
+        data->next_vmid = 1;
+        if ( !data->used )
+            goto disabled;
+    }
+
+    /* Now guaranteed to be a free VMID. */
+    vmid->vmid = data->next_vmid++;
+    write_atomic(&vmid->generation, data->generation);
+
+    /*
+     * When we assign VMID 1, flush all TLB entries as we are starting a new
+     * generation, and all old VMID allocations are now stale.
+     */
+    return vmid->vmid == 1;
+
+ disabled:
+    vmid->vmid = 0;
+    return 0;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:55:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:55:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188148.1509431 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYL1-0007mO-KS; Tue, 16 Dec 2025 16:55:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188148.1509431; Tue, 16 Dec 2025 16:55:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYL1-0007kg-9v; Tue, 16 Dec 2025 16:55:51 +0000
Received: by outflank-mailman (input) for mailman id 1188148;
 Tue, 16 Dec 2025 16:55:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wcum=6W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVYL0-0006gk-Bw
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:55:50 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 124cb083-daa0-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 17:55:48 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b79f8f7ea43so1045376166b.2
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:55:48 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8003cb349csm63169766b.68.2025.12.16.08.55.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:55:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 124cb083-daa0-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765904148; x=1766508948; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JowCfsqLdt/Rx8FFIaYoN49RWDNYULO18OUKG+xlMH4=;
        b=fkO95oYqwwSA5kO8r46MWHD/nompavnYn2JRibNcGHwz/B7xsPluTAMr+2J4/NMRTN
         vkdzNra9hwUdYFfuNUEdZn9mop9CJUdlb5VGfv1X2AXVLe09WvqloBn6lAu9SB4YylNR
         hZYv9mv0IY/j/o/eoz3iAxAEpWGHgG7XIn3z03gsJ2IWtAThJByherRcY1c7xnAOpv7y
         MxV4N6s8CV8Z0iPmZQVX5ruG2RESLpIZxpmFu7dyk9XNfJ9q/biKF00c2+5/3TDdfLhX
         ER6xeaZXhWlrL/dWOyAiEN77wXNq2J9V9hBcq4RVepBKnf8QHFiWy775f5Lk8UUBxFCB
         6wRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765904148; x=1766508948;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=JowCfsqLdt/Rx8FFIaYoN49RWDNYULO18OUKG+xlMH4=;
        b=tzIl6rVnizvMUuBTEyBdlRM3+ixLasw0W5/S2Ur8BE2XqCtWtd3Ur7jznbsNdcigFT
         ZsVF30R5u0neB4ptWWmBo1B0aY9tMhxfdMaQ04BU31W6C5QMuULZ48vlmwZLqU5l0XT2
         Ok+wGjU7T1c1v+z5Z8cW/VF46CMIUCxlk3w2W+TI6OxlSaPs3iLPtNd0jT9Lvl/oREDK
         63u7tt/MnRZUbWc0RMKpEU4opOj8f7Vn52Xbl5XkEGPCljs99wvYg+GRw0+CDKpnok6Z
         f/bQyvY+EJtXJC8PpcOqCUQl9upDFfeRctcfeOwPo7lVVERhnU1nf7ateBdNJ+Le2xXR
         AhaQ==
X-Gm-Message-State: AOJu0YyPKG933RzXy5KmaSXqTc7IgjcoVfF4GbtuMdbdnWVaLoeMvT9B
	5LvpNDLP+7qk4KF3Y4cn9RB3DTCDXtP79mK0F4ZqSnSvO1x8ve3Ig7y+UWB9Rg==
X-Gm-Gg: AY/fxX6SoC2Vsey9UIT6cBe6LRJ9W7Hk0C+VkVbasMKNdwgwS2RSq+DCp/q28ImA05n
	oyL9N4v/ztGFkQBcEBxnK77hHYh7E+poglBn8OcjwDNa6GId+j5/ds4VBvkcRo9ijxUMU7vK22C
	bv3y/CJW4uCxN7YU1osenyckynxpMFkrsiGLhI92kFpduZ/JrfAbkKTGWQzzTrnJ+3Z4CCG4Gcz
	Wm7zjqavDoHSDuBGPebzalHmX/eQmCp9OGgg4Hurmyryre+8EgWIMQ5su2KZER3vAAacXhrhdfo
	b5HM/T+sh4tK58rq7DsU+2hQ/r/jpyNblYBQi/h6VkE8bGf8y8CLo8yN92uDVPrpSJnf/2OzaNJ
	O0miVq6H8i0KDSLvK7r68155PjBfEVz3tgC9Hc2S5AK6nhVtOG0Nb6DEupmgFxAqHlirjFfk5F2
	OrWVqtEX5QZslV8IUR79Fz271wHuTbpau2MaR5J8BnCfyMFsmXUR2rNas=
X-Google-Smtp-Source: AGHT+IEeGZACCoO5crI4AOAIbm1N7ty51R8njHcMOX75sZpHVqTIyUxA228CNUz6fuaK8XWnKXTRlg==
X-Received: by 2002:a17:907:d19:b0:b73:870f:fa32 with SMTP id a640c23a62f3a-b7d23a27c29mr1769421066b.43.1765904147681;
        Tue, 16 Dec 2025 08:55:47 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 06/19] xen/riscv: introduce pte_{set,get}_mfn()
Date: Tue, 16 Dec 2025 17:55:16 +0100
Message-ID: <323cea33c80cc4b09eb14fc89a9966815a78bf54.1765879052.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765879052.git.oleksii.kurochko@gmail.com>
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce helpers pte_{set,get}_mfn() to simplify setting and getting
of mfn.

Also, introduce PTE_PPN_MASK and add BUILD_BUG_ON() to be sure that
PTE_PPN_MASK remains the same for all MMU modes except Sv32.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V4-V7:
 - Nothing changed. Only Rebase.
---
Changes in V3:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V2:
 - Patch "[PATCH v1 4/6] xen/riscv: define pt_t and pt_walk_t structures" was
   renamed to xen/riscv: introduce pte_{set,get}_mfn() as after dropping of
   bitfields for PTE structure, this patch introduce only pte_{set,get}_mfn().
 - As pt_t and pt_walk_t were dropped, update implementation of
   pte_{set,get}_mfn() to use bit operations and shifts instead of bitfields.
 - Introduce PTE_PPN_MASK to be able to use MASK_INSR for setting/getting PPN.
 - Add BUILD_BUG_ON(RV_STAGE1_MODE > SATP_MODE_SV57) to be sure that when
   new MMU mode will be added, someone checks that PPN is still bits 53:10.
---
 xen/arch/riscv/include/asm/page.h | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
index 7fde99f916..1fc5998a0b 100644
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -112,6 +112,30 @@ typedef struct {
 #endif
 } pte_t;
 
+#if RV_STAGE1_MODE != SATP_MODE_SV32
+#define PTE_PPN_MASK _UL(0x3FFFFFFFFFFC00)
+#else
+#define PTE_PPN_MASK _U(0xFFFFFC00)
+#endif
+
+static inline void pte_set_mfn(pte_t *p, mfn_t mfn)
+{
+    /*
+     * At the moment spec provides Sv32 - Sv57.
+     * If one day new MMU mode will be added it will be needed
+     * to check that PPN mask still continue to cover bits 53:10.
+     */
+    BUILD_BUG_ON(RV_STAGE1_MODE > SATP_MODE_SV57);
+
+    p->pte &= ~PTE_PPN_MASK;
+    p->pte |= MASK_INSR(mfn_x(mfn), PTE_PPN_MASK);
+}
+
+static inline mfn_t pte_get_mfn(pte_t p)
+{
+    return _mfn(MASK_EXTR(p.pte, PTE_PPN_MASK));
+}
+
 static inline bool pte_is_valid(pte_t p)
 {
     return p.pte & PTE_VALID;
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:55:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:55:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188147.1509423 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYL0-0007c5-U5; Tue, 16 Dec 2025 16:55:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188147.1509423; Tue, 16 Dec 2025 16:55:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYL0-0007bU-OR; Tue, 16 Dec 2025 16:55:50 +0000
Received: by outflank-mailman (input) for mailman id 1188147;
 Tue, 16 Dec 2025 16:55:49 +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
 <SRS0=wcum=6W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVYKz-0006ge-9o
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:55:49 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 11ec58b1-daa0-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 17:55:48 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b728a43e410so760435866b.1
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:55:48 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8003cb349csm63169766b.68.2025.12.16.08.55.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:55:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11ec58b1-daa0-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765904147; x=1766508947; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZAlzbD25BXnCB3gE5uZFAAgIUm6hFsJVl38bDzl5fA4=;
        b=QbEIgvy3FqTtBB1nH8fkQTE5o2Gef/WtlCaqm2sNkEqhZKp0lFI2zvVhYinpYVPhcd
         n4I36ftPcRnhCxQmaa5AfG/H+ZRft6HQxawXMuC+Wzw1tfCFbEF+XMF8dMWYFnJQ9JZx
         xNvwG6XWPTrd+nv0+lR2s9hTwohL8swodwNgee7XGOvptcvXR6gVvtgwovuCei0FGLa5
         J7ugzy/YTytqRzoWeG6tsW2S6Q3LRZpJdy3ylZtJVJ2QzJNv2CgIWDDDhHDwKg3EfIYp
         JeRVgvkDtp4vgtMT+JkxuF4BJ14DLtoUBjHlahAWXor3eBXC/UGpvJCKhstX9lg41A6H
         nMoQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765904147; x=1766508947;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ZAlzbD25BXnCB3gE5uZFAAgIUm6hFsJVl38bDzl5fA4=;
        b=KIh2AhNlTJHwpED0c2ElY1RPXMNFwYizp7YfD3/QEt5BLWw3eSaZVjY1c/nw2jq97w
         w4PJ1/Y7axPTstB+Kq5q4bO0VVDC2tbeV9RrfXdBmjq7tPfFN5xXtCAYurfp+Ril7woh
         PI8iV+94Kp2m/zXoRCm3wGaXIH2Ugxjrngo+GSO7BXUaYJQf0icEURj9vaC2U6Qfnbp8
         68S4x5pHtAk2tmi2DJBKaO3dkPPIKxLKoB1GOWY6KCMPGmC+oEkTcJ7p8d9kwa6w3d85
         PsDXJI2D+dp471yioGjcFBpYufgIpX49ymJj2DshVEk77qvQZm+3X59EVEcE2NCTTLVu
         0Iyg==
X-Gm-Message-State: AOJu0Yz54WKNcdrkMmXOJGMPibqfSIF4WUY7eJU+jU1JKLNL10ka9qiA
	nJzOh+qCC9AgSelLw2UUyshdstkf/sqzw/XlHqEZXcEZUqnOkUnUUiEWzOMgnQ==
X-Gm-Gg: AY/fxX5irQ/ppDQ5QzgdSyTdCTaneGxSt+bCGnCqIh1s0WbwqJ6nJLNPQwHCiFWjgNk
	OhHRJykQtS1svhd+Cry1BI4wsDJooO/K79E010Ai7riYQ30qqFn2OOxu1seN5TTygMy+afQu4Hx
	yZht/T0FQHABctjoWfvVU17iDm8LF8YHk/2w8Mi5H6uPzxJsL0CWuW/cUIWQfFnnQomhNLKc6BC
	hqFkBRN/sVjiE+WkSSs/OAfNB6mqrjhmNMzSsEv1ZoCULwIAu0c+103vFdMAHANNCNxaOPvAb82
	bQjLWkmdi5u1qiG477jK6fch2/VzIe7Gsrc5qIq4U8tyDalz/Lv4wwgQ1Eem1gWrS960j1ieK/i
	9niRyvxY2nFdBQCGgn/Av4vwiq5nID06F26f6QeOScwbno+s1hLzcISmrurKNKThr1ajvdkZz6f
	44dxiGNhSPh2B2lzdV/gP3pbqtZ0bJQdLR8FXBDIU1PfYbNxfEQEVZgg4=
X-Google-Smtp-Source: AGHT+IHext64KZYUqN0pgZ0xmQB8T2vwcDj1tUi+kPOWn43y4yCxM5M6jfNckcF0n9xq8tHKpJIIAQ==
X-Received: by 2002:a17:907:7f27:b0:b79:c879:fe71 with SMTP id a640c23a62f3a-b7d23a47753mr1536967366b.19.1765904146727;
        Tue, 16 Dec 2025 08:55:46 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 05/19] xen/riscv: add root page table allocation
Date: Tue, 16 Dec 2025 17:55:15 +0100
Message-ID: <0c85ea3e9e00ee1f00d6e143a15f118d714d128f.1765879052.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765879052.git.oleksii.kurochko@gmail.com>
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce support for allocating and initializing the root page table
required for RISC-V stage-2 address translation.

To implement root page table allocation the following is introduced:
- p2m_get_clean_page() and p2m_alloc_root_table(), p2m_allocate_root()
  helpers to allocate and zero a 16 KiB root page table, as mandated
  by the RISC-V privileged specification for Sv32x4/Sv39x4/Sv48x4/Sv57x4
  modes.
- Update p2m_init() to inititialize p2m_root_order.
- Add maddr_to_page() and page_to_maddr() macros for easier address
  manipulation.
- Introduce paging_ret_to_domheap() to return some pages before
  allocate 16 KiB pages for root page table.
- Allocate root p2m table after p2m pool is initialized.
- Add construct_hgatp() to construct the hgatp register value based on
  p2m->root, p2m->hgatp_mode and VMID.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V7:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V6:
 - Clean the memory page instead of frame_table[] in clear_and_clean_page().
 – Remove full stops from log messages in paging.c and start the messages
   with a lowercase letter.
 - s/paging_ret_page_to_domheap/_paging_ret_to_domheap
 - s/paging_add_page_to_freelist/_paging_add_to_freelist
 - Introduce gstage_mode and initialize it.
---
Changes in V5:
 - Update proto of construct_hgatp(): make first argument pointer-to-const.
 - Code style fixes.
 - s/paging_ret_pages_to_freelist/paging_refill_from_domheap.
 - s/paging_ret_pages_to_domheap/paging_ret_to_domheap.
 - s/paging_ret_page_to_freelist/paging_add_page_to_freelist.
 - Drop ACCESS_ONCE() as all the cases where it is used are used under spinlock() hence ACCESS_ONCE() is redundant.
---
Changes in V4:
 - Drop hgatp_mode from p2m_domain as gstage_mode was introduced and
   initlialized earlier patch. So use gstage_mode instead.
 - s/GUEST_ROOT_PAGE_TABLE_SIZE/GSTAGE_ROOT_PAGE_TABLE_SIZE.
 - Drop p2m_root_order and re-define P2M_ROOT_ORDER:
     #define P2M_ROOT_ORDER  (ilog2(GSTAGE_ROOT_PAGE_TABLE_SIZE) - PAGE_SHIFT)
 - Update implementation of construct_hgatp(): use introduced gstage_mode
   and use MASK_INSRT() to construct ppn value.
 - Drop nr_root_pages variable inside p2m_alloc_root_table().
 - Update the printk's message inside paging_ret_pages_to_domheap().
 - Add an introduction of clean_pte member of p2m_domain structure to this
   patch as it is started to be used here.
   Rename clean_pte to clean_dcache.
 - Drop p2m_allocate_root() function as it is going to be used only in one
   place.
 - Propogate rc from p2m_alloc_root_table() in p2m_set_allocation().
 - Return P2M_ROOT_PAGES to freelist in case of allocation of root page
   table failed.
 - Add allocated root tables pages to p2m->pages pool so a usage of pages
   could be properly taken into account.
---
Changes in v3:
 - Drop insterting of p2m->vmid in hgatp_from_page() as now vmid is allocated
   per-CPU, not per-domain, so it will be inserted later somewhere in
   context_switch or before returning control to a guest.
 - use BIT() to init nr_pages in p2m_allocate_root() instead of open-code
   BIT() macros.
 - Fix order in clear_and_clean_page().
 - s/panic("Specify more xen,domain-p2m-mem-mb\n")/return NULL.
 - Use lock around a procedure of returning back pages necessary for p2m
   root table.
 - Update the comment about allocation of page for root page table.
 - Update an argument of hgatp_from_page() to "struct page_info *p2m_root_page"
   to be consistent with the  function name.
 - Use p2m_get_hostp2m(d) instead of open-coding it.
 - Update the comment above the call of p2m_alloc_root_table().
 - Update the comments in p2m_allocate_root().
 - Move part which returns some page to domheap before root page table allocation
   to paging.c.
 - Pass p2m_domain * instead of struct domain * for p2m_alloc_root_table().
 - Introduce construct_hgatp() instead of hgatp_from_page().
 - Add vmid and hgatp_mode member of struct p2m_domain.
 - Add explanatory comment above clean_dcache_va_range() in
   clear_and_clean_page().
 - Introduce P2M_ROOT_ORDER and P2M_ROOT_PAGES.
 - Drop vmid member from p2m_domain as now we are using per-pCPU
   VMID allocation.
 - Update a declaration of construct_hgatp() to recieve VMID as it
   isn't per-VM anymore.
 - Drop hgatp member of p2m_domain struct as with the new VMID scheme
   allocation construction of hgatp will be needed more often.
 - Drop is_hardware_domain() case in p2m_allocate_root(), just always
   allocate root using p2m pool pages.
 - Refactor p2m_alloc_root_table() and p2m_alloc_table().
---
Changes in v2:
 - This patch was created from "xen/riscv: introduce things necessary for p2m
   initialization" with the following changes:
   - [clear_and_clean_page()] Add missed call of clean_dcache_va_range().
   - Drop p2m_get_clean_page() as it is going to be used only once to allocate
     root page table. Open-code it explicittly in p2m_allocate_root(). Also,
     it will help avoid duplication of the code connected to order and nr_pages
     of p2m root page table.
   - Instead of using order 2 for alloc_domheap_pages(), use
     get_order_from_bytes(KB(16)).
   - Clear and clean a proper amount of allocated pages in p2m_allocate_root().
   - Drop _info from the function name hgatp_from_page_info() and its argument
     page_info.
   - Introduce HGATP_MODE_MASK and use MASK_INSR() instead of shift to calculate
     value of hgatp.
   - Drop unnecessary parentheses in definition of page_to_maddr().
   - Add support of VMID.
   - Drop TLB flushing in p2m_alloc_root_table() and do that once when VMID
     is re-used. [Look at p2m_alloc_vmid()]
   - Allocate p2m root table after p2m pool is fully initialized: first
     return pages to p2m pool them allocate p2m root table.
---
 xen/arch/riscv/include/asm/mm.h             |   4 +
 xen/arch/riscv/include/asm/p2m.h            |  17 +++
 xen/arch/riscv/include/asm/paging.h         |   3 +
 xen/arch/riscv/include/asm/riscv_encoding.h |   2 +
 xen/arch/riscv/p2m.c                        |  99 +++++++++++++++++-
 xen/arch/riscv/paging.c                     | 110 +++++++++++++++-----
 6 files changed, 206 insertions(+), 29 deletions(-)

diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index e5ea91fa4d..2f7927e6f4 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -167,6 +167,10 @@ extern struct page_info *frametable_virt_start;
 #define mfn_to_page(mfn)    (frametable_virt_start + mfn_x(mfn))
 #define page_to_mfn(pg)     _mfn((pg) - frametable_virt_start)
 
+/* Convert between machine addresses and page-info structures. */
+#define maddr_to_page(ma) mfn_to_page(maddr_to_mfn(ma))
+#define page_to_maddr(pg) mfn_to_maddr(page_to_mfn(pg))
+
 static inline void *page_to_virt(const struct page_info *pg)
 {
     return mfn_to_virt(mfn_x(page_to_mfn(pg)));
diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index 239f90622e..c9aa19ad43 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -2,6 +2,7 @@
 #ifndef ASM__RISCV__P2M_H
 #define ASM__RISCV__P2M_H
 
+#include <xen/bitops.h>
 #include <xen/errno.h>
 #include <xen/mm.h>
 #include <xen/rwlock.h>
@@ -9,6 +10,9 @@
 
 #include <asm/page-bits.h>
 
+#define P2M_ROOT_ORDER  (ilog2(GSTAGE_ROOT_PAGE_TABLE_SIZE) - PAGE_SHIFT)
+#define P2M_ROOT_PAGES  BIT(P2M_ROOT_ORDER, U)
+
 #define paddr_bits PADDR_BITS
 
 /* Get host p2m table */
@@ -30,6 +34,11 @@ struct p2m_domain {
     /* Pages used to construct the p2m */
     struct page_list_head pages;
 
+    /* The root of the p2m tree. May be concatenated */
+    struct page_info *root;
+
+    struct gstage_mode_desc mode;
+
     /* Back pointer to domain */
     struct domain *domain;
 
@@ -43,6 +52,12 @@ struct p2m_domain {
      * shattered), call p2m_tlb_flush_sync().
      */
     bool need_flush;
+
+    /*
+     * Indicate if it is required to clean the cache when writing an entry or
+     * when a page is needed to be fully cleared and cleaned.
+     */
+    bool clean_dcache;
 };
 
 /*
@@ -130,6 +145,8 @@ unsigned char get_max_supported_mode(void);
 
 int p2m_init(struct domain *d);
 
+unsigned long construct_hgatp(const struct p2m_domain *p2m, uint16_t vmid);
+
 #endif /* ASM__RISCV__P2M_H */
 
 /*
diff --git a/xen/arch/riscv/include/asm/paging.h b/xen/arch/riscv/include/asm/paging.h
index 98d8b06d45..01be45528f 100644
--- a/xen/arch/riscv/include/asm/paging.h
+++ b/xen/arch/riscv/include/asm/paging.h
@@ -10,4 +10,7 @@ int paging_domain_init(struct domain *d);
 int paging_freelist_adjust(struct domain *d, unsigned long pages,
                            bool *preempted);
 
+int paging_ret_to_domheap(struct domain *d, unsigned int nr_pages);
+int paging_refill_from_domheap(struct domain *d, unsigned int nr_pages);
+
 #endif /* ASM_RISCV_PAGING_H */
diff --git a/xen/arch/riscv/include/asm/riscv_encoding.h b/xen/arch/riscv/include/asm/riscv_encoding.h
index e0a5e8b58b..1f7e612366 100644
--- a/xen/arch/riscv/include/asm/riscv_encoding.h
+++ b/xen/arch/riscv/include/asm/riscv_encoding.h
@@ -180,6 +180,8 @@
 #define HGATP_MODE_MASK			HGATP32_MODE_MASK
 #endif
 
+#define GSTAGE_ROOT_PAGE_TABLE_SIZE	KB(16)
+
 #define TOPI_IID_SHIFT			16
 #define TOPI_IID_MASK			0xfff
 #define TOPI_IPRIO_MASK		0xff
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 39c84f1a3b..d14757331f 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -3,6 +3,7 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/macros.h>
+#include <xen/domain_page.h>
 #include <xen/mm.h>
 #include <xen/paging.h>
 #include <xen/rwlock.h>
@@ -109,6 +110,74 @@ void __init guest_mm_init(void)
     local_hfence_gvma_all();
 }
 
+static void clear_and_clean_page(struct page_info *page, bool clean_dcache)
+{
+    void *p = __map_domain_page(page);
+
+    clear_page(p);
+
+    /*
+     * If the IOMMU doesn't support coherent walks and the p2m tables are
+     * shared between the CPU and IOMMU, it is necessary to clean the
+     * d-cache.
+     */
+    if ( clean_dcache )
+        clean_dcache_va_range(p, PAGE_SIZE);
+
+    unmap_domain_page(p);
+}
+
+unsigned long construct_hgatp(const struct p2m_domain *p2m, uint16_t vmid)
+{
+    return MASK_INSR(mfn_x(page_to_mfn(p2m->root)), HGATP_PPN_MASK) |
+           MASK_INSR(p2m->mode.mode, HGATP_MODE_MASK) |
+           MASK_INSR(vmid, HGATP_VMID_MASK);
+}
+
+static int p2m_alloc_root_table(struct p2m_domain *p2m)
+{
+    struct domain *d = p2m->domain;
+    struct page_info *page;
+    int rc;
+
+    /*
+     * Return back P2M_ROOT_PAGES to assure the root table memory is also
+     * accounted against the P2M pool of the domain.
+     */
+    if ( (rc = paging_ret_to_domheap(d, P2M_ROOT_PAGES)) )
+        return rc;
+
+    /*
+     * As mentioned in the Priviliged Architecture Spec (version 20240411)
+     * in Section 18.5.1, for the paged virtual-memory schemes  (Sv32x4,
+     * Sv39x4, Sv48x4, and Sv57x4), the root page table is 16 KiB and must
+     * be aligned to a 16-KiB boundary.
+     */
+    page = alloc_domheap_pages(d, P2M_ROOT_ORDER, MEMF_no_owner);
+    if ( !page )
+    {
+        /*
+         * If allocation of root table pages fails, the pages acquired above
+         * must be returned to the freelist to maintain proper freelist
+         * balance.
+         */
+        paging_refill_from_domheap(d, P2M_ROOT_PAGES);
+
+        return -ENOMEM;
+    }
+
+    for ( unsigned int i = 0; i < P2M_ROOT_PAGES; i++ )
+    {
+        clear_and_clean_page(page + i, p2m->clean_dcache);
+
+        page_list_add(page + i, &p2m->pages);
+    }
+
+    p2m->root = page;
+
+    return 0;
+}
+
 int p2m_init(struct domain *d)
 {
     struct p2m_domain *p2m = p2m_get_hostp2m(d);
@@ -124,6 +193,24 @@ int p2m_init(struct domain *d)
     rwlock_init(&p2m->lock);
     INIT_PAGE_LIST_HEAD(&p2m->pages);
 
+    /*
+     * Currently, the infrastructure required to enable CONFIG_HAS_PASSTHROUGH
+     * is not ready for RISC-V support.
+     *
+     * When CONFIG_HAS_PASSTHROUGH=y, p2m->clean_dcache must be properly
+     * initialized.
+     * At the moment, it defaults to false because the p2m structure is
+     * zero-initialized.
+     */
+#ifdef CONFIG_HAS_PASSTHROUGH
+#   error "Add init of p2m->clean_dcache"
+#endif
+
+    /* TODO: don't hardcode used for a domain g-stage mode. */
+    p2m->mode.mode = HGATP_MODE_SV39X4;
+    p2m->mode.paging_levels = 2;
+    safe_strcpy(p2m->mode.name, "Sv39x4");
+
     return 0;
 }
 
@@ -134,10 +221,20 @@ int p2m_init(struct domain *d)
  */
 int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
 {
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
     int rc;
 
     if ( (rc = paging_freelist_adjust(d, pages, preempted)) )
         return rc;
 
-    return 0;
+    /*
+     * First, initialize p2m pool. Then allocate the root
+     * table so that the necessary pages can be returned from the p2m pool,
+     * since the root table must be allocated using alloc_domheap_pages(...)
+     * to meet its specific requirements.
+     */
+    if ( !p2m->root )
+        rc = p2m_alloc_root_table(p2m);
+
+    return rc;
 }
diff --git a/xen/arch/riscv/paging.c b/xen/arch/riscv/paging.c
index 2df8de033b..d401ddc34e 100644
--- a/xen/arch/riscv/paging.c
+++ b/xen/arch/riscv/paging.c
@@ -4,46 +4,67 @@
 #include <xen/sched.h>
 #include <xen/spinlock.h>
 
+static int _paging_ret_to_domheap(struct domain *d)
+{
+    struct page_info *page;
+
+    ASSERT(spin_is_locked(&d->arch.paging.lock));
+
+    /* Return memory to domheap. */
+    page = page_list_remove_head(&d->arch.paging.freelist);
+    if( page )
+    {
+        d->arch.paging.total_pages--;
+        free_domheap_page(page);
+    }
+    else
+    {
+        printk(XENLOG_ERR
+               "failed to free pages, P2M freelist is empty\n");
+        return -ENOMEM;
+    }
+
+    return 0;
+}
+
+static int _paging_add_to_freelist(struct domain *d)
+{
+    struct page_info *page;
+
+    ASSERT(spin_is_locked(&d->arch.paging.lock));
+
+    /* Need to allocate more memory from domheap */
+    page = alloc_domheap_page(d, MEMF_no_owner);
+    if ( page == NULL )
+    {
+        printk(XENLOG_ERR "failed to allocate pages\n");
+        return -ENOMEM;
+    }
+    d->arch.paging.total_pages++;
+    page_list_add_tail(page, &d->arch.paging.freelist);
+
+    return 0;
+}
+
 int paging_freelist_adjust(struct domain *d, unsigned long pages,
                            bool *preempted)
 {
-    struct page_info *pg;
-
     ASSERT(spin_is_locked(&d->arch.paging.lock));
 
     for ( ; ; )
     {
+        int rc = 0;
+
         if ( d->arch.paging.total_pages < pages )
-        {
-            /* Need to allocate more memory from domheap */
-            pg = alloc_domheap_page(d, MEMF_no_owner);
-            if ( pg == NULL )
-            {
-                printk(XENLOG_ERR "Failed to allocate pages.\n");
-                return -ENOMEM;
-            }
-            ACCESS_ONCE(d->arch.paging.total_pages)++;
-            page_list_add_tail(pg, &d->arch.paging.freelist);
-        }
+            rc = _paging_add_to_freelist(d);
         else if ( d->arch.paging.total_pages > pages )
-        {
-            /* Need to return memory to domheap */
-            pg = page_list_remove_head(&d->arch.paging.freelist);
-            if ( pg )
-            {
-                ACCESS_ONCE(d->arch.paging.total_pages)--;
-                free_domheap_page(pg);
-            }
-            else
-            {
-                printk(XENLOG_ERR
-                       "Failed to free pages, freelist is empty.\n");
-                return -ENOMEM;
-            }
-        }
+            rc = _paging_ret_to_domheap(d);
         else
             break;
 
+        if ( rc )
+            return rc;
+
         /* Check to see if we need to yield and try again */
         if ( preempted && general_preempt_check() )
         {
@@ -55,6 +76,39 @@ int paging_freelist_adjust(struct domain *d, unsigned long pages,
     return 0;
 }
 
+int paging_refill_from_domheap(struct domain *d, unsigned int nr_pages)
+{
+    ASSERT(spin_is_locked(&d->arch.paging.lock));
+
+    for ( unsigned int i = 0; i < nr_pages; i++ )
+    {
+        int rc = _paging_add_to_freelist(d);
+
+        if ( rc )
+            return rc;
+    }
+
+    return 0;
+}
+
+int paging_ret_to_domheap(struct domain *d, unsigned int nr_pages)
+{
+    ASSERT(spin_is_locked(&d->arch.paging.lock));
+
+    if ( d->arch.paging.total_pages < nr_pages )
+        return false;
+
+    for ( unsigned int i = 0; i < nr_pages; i++ )
+    {
+        int rc = _paging_ret_to_domheap(d);
+
+        if ( rc )
+            return rc;
+    }
+
+    return 0;
+}
+
 /* Domain paging struct initialization. */
 int paging_domain_init(struct domain *d)
 {
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:55:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:55:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188142.1509378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYKw-0006gs-Hu; Tue, 16 Dec 2025 16:55:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188142.1509378; Tue, 16 Dec 2025 16:55:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYKw-0006gl-Ea; Tue, 16 Dec 2025 16:55:46 +0000
Received: by outflank-mailman (input) for mailman id 1188142;
 Tue, 16 Dec 2025 16:55:44 +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
 <SRS0=wcum=6W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVYKu-0006ge-Qi
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:55:44 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0eb99f9e-daa0-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 17:55:42 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b79af62d36bso912236166b.3
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:55:42 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8003cb349csm63169766b.68.2025.12.16.08.55.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:55:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0eb99f9e-daa0-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765904142; x=1766508942; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=ZqW5ArgVlVzIKuAb1wW3HrPVuRng7m0Z3vojlY8euyc=;
        b=H3QPsggcYlqpFJXVacKHN4g5X+8ufRZztgxdAeFn4dKHJc8U1hm6DNexDs3xMAcGOS
         Xi2L8lzI9aTLoQwNFdsOGgQfZxc8XhFXaygqkAwj33UwAA0+TcgJe1Va7vgyj/OW6H+F
         2jD/TCfKIA9B4jafo52SnaoafqDH2E5624ntnn+fS/Gtbg5FzMQXJ/oWfovvPaQWG8sD
         AoERgJ6VxJ50OdzQ5RWJd/oPL7UAZPo5/MMUMaHrTdyM5wMmg72oSs0ydisEN4KAcPb7
         hzKUQa3Mdx9M0Cv7GFximtAUi4N5UP+fNtFI2CmcRdsjbhnkQTxnDlKKnhkCcg7M6FGG
         RAlw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765904142; x=1766508942;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZqW5ArgVlVzIKuAb1wW3HrPVuRng7m0Z3vojlY8euyc=;
        b=oWqMcvEu26vsHLQY+FK/kqX2gY8UQPeqRtl2PZIk3IRgAW/oSVa9bk71mEXtzkZvuM
         fQwTfa6TSSMOHJXV81ZzCLqGUd+PIVNVMi+0myo88kuiPvCN5E2Gk4YQrQL8ih4J2XFh
         MqqcXuO7rC1/kOhkL1FrPnOQt+RLnRyZqTYVyyfnQgz7FBfR/AOwUz9Z1tGmxARSi/0R
         dDHXrDnABXlJVKbAi97Jt73oowFN/0qujAz7f2YCRH2O7KRMD0X3XSWn/BQwysr1PluI
         NOgPbqH4r9thvar0FF3L0ky6IsbB4VplqZsRKkFrkCaJVvMyhQJnx5AZCtXeeMTD5ZgR
         +Yfw==
X-Gm-Message-State: AOJu0YwP8ixevZ51izLhekZYEXGkh2DTfFSmVqw+nP8x8mG6+PZMmlBn
	0foUyAk7NN8bq2WiowCEkfSGclw+e+LyOvZQcRkqCdZoMUif7bG2fMcjYz1b7w==
X-Gm-Gg: AY/fxX7XiRKTpvSegeP1zUNpqNjM1i6x8iinbDglfN16x3HXaexnoZ/LcRVeTJPSonF
	EI7RD78Mo1drFavIXs/GIrJfhEHGNtkQnKnL4ZC8kusQmj+jy4PLkQEzxyAJ+lyueCY5CO8yelB
	fuir+sDET04hiS6iCx9DLgIQeAVYmLwlrJkpRO5Oe+e8MIywdxU2O7FTJEAzVX66aeNO+pQdINs
	WbKaVqFV6CYnZM/6FdlwZDUAtSx3G3Cv08gEsyblSJep+2HvYRgbrm0l//z1PUgwdAyGB7ImXx6
	Z1xzYxMxcNtKam+dmvB91WVksIyZ5xGsW+d4FAi3OKjFXHKiy2Q0Ba2cCtguKBAQPQEAQeNM/Wt
	i56kXCiTr+neP2ySbUxxoQxAbTc5sZB9xOhq6fbodxHerV90CaATfJdogTWuD6K+avXRbvdr3ns
	Da6Y/ypqWhMf94eaZRJWh7MXEZ3frsYwho2jWoCf7emoLFLwIh9/8=
X-Google-Smtp-Source: AGHT+IEKvZTln+pLP8/yRDiEcYBmgYlecAZAe5LvH0hZQo+RsBQ/IfmpBbKiay1etofb5i6AYVBHkg==
X-Received: by 2002:a17:907:940a:b0:b72:599:5385 with SMTP id a640c23a62f3a-b7d23aa5654mr1562448166b.61.1765904141371;
        Tue, 16 Dec 2025 08:55:41 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v7 00/19] xen/riscv: introduce p2m functionality
Date: Tue, 16 Dec 2025 17:55:10 +0100
Message-ID: <cover.1765879052.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In this patch series are introduced necessary functions to build and manage
RISC-V guest page tables and MMIO/RAM mappings.

CI tests:
  https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2217339779

---
Changes in V7:
 - Merged to staging:
   - xen/riscv: avoid redundant HGATP*_MODE_SHIFT and HGATP*_VMID_SHIFT
 - Introduce new patch:
   - xen/riscv: update p2m_set_entry to free unused metadata page
   (could be merged with previous one: xen/riscv: introduce metadata table to
    store P2M type )
 - Addressed comments for v6.
---
Changes in V6:
 - Addressed coment for v5.
---
Changes in V5:
 - Addressed comments for v4.
---
Changes in V4:
 - Merged to staging:
   - xen/riscv: introduce sbi_remote_hfence_gvma()
   - xen/riscv: introduce sbi_remote_hfence_gvma_vmid()
 - Drop "xen/riscv: introduce page_{get,set}_xenheap_gfn()" as grant tables aren't going to be introduced for the moment. Also, drops other parts connected to grant tables support.
 - All other changes are patch specific.
---
Changes in V3:
 - Introduce metadata table to store P2M types.
 - Use x86's way to allocate VMID.
 - Abstract Arm-specific p2m type name for device MMIO mappings.
 - All other updates please look at specific patch.
---
Changes in V2:
 - Merged to staging:
   - [PATCH v1 1/6] xen/riscv: add inclusion of xen/bitops.h to asm/cmpxchg.h
 - New patches:
   - xen/riscv: implement sbi_remote_hfence_gvma{_vmid}().
 - Split patch "xen/riscv: implement p2m mapping functionality" into smaller
   one patches:
   - xen/riscv: introduce page_set_xenheap_gfn()
   - xen/riscv: implement guest_physmap_add_entry() for mapping GFNs to MFNs
   - xen/riscv: implement p2m_set_entry() and __p2m_set_entry()
   - xen/riscv: Implement p2m_free_entry() and related helpers
   - xen/riscv: Implement superpage splitting for p2m mappings
   - xen/riscv: implement p2m_next_level()
   - xen/riscv: Implement p2m_entry_from_mfn() and support PBMT configuration
 - Move root p2m table allocation to separate patch:
   xen/riscv: add root page table allocation
 - Drop dependency of this patch series from the patch witn an introduction of
   SvPBMT as it was merged.
 - Patch "[PATCH v1 4/6] xen/riscv: define pt_t and pt_walk_t structures" was
   renamed to xen/riscv: introduce pte_{set,get}_mfn() as after dropping of
   bitfields for PTE structure, this patch introduce only pte_{set,get}_mfn().
 - Rename "xen/riscv: define pt_t and pt_walk_t structures" to
   "xen/riscv: introduce pte_{set,get}_mfn()" as pt_t and pt_walk_t were
   dropped.
 - Introduce guest domain's VMID allocation and manegement.
 - Add patches necessary to implement p2m lookup:
   - xen/riscv: implement mfn_valid() and page reference, ownership handling helpers
   - xen/riscv: add support of page lookup by GFN
 - Re-sort patch series.
 - All other changes are patch-specific. Please check them.
---

Oleksii Kurochko (19):
  xen/riscv: detect and initialize G-stage mode
  xen/riscv: introduce VMID allocation and manegement
  xen/riscv: introduce things necessary for p2m initialization
  xen/riscv: construct the P2M pages pool for guests
  xen/riscv: add root page table allocation
  xen/riscv: introduce pte_{set,get}_mfn()
  xen/riscv: add new p2m types and helper macros for type classification
  xen/dom0less: abstract Arm-specific p2m type name for device MMIO
    mappings
  xen/riscv: implement function to map memory in guest p2m
  xen/riscv: implement p2m_set_range()
  xen/riscv: Implement p2m_free_subtree() and related helpers
  xen/riscv: Implement p2m_pte_from_mfn() and support PBMT configuration
  xen/riscv: implement p2m_next_level()
  xen/riscv: Implement superpage splitting for p2m mappings
  xen/riscv: implement put_page()
  xen/riscv: implement mfn_valid() and page reference, ownership
    handling helpers
  xen/riscv: add support of page lookup by GFN
  xen/riscv: introduce metadata table to store P2M type
  xen/riscv: update p2m_set_entry to free unused metadata pages

 docs/misc/xen-command-line.pandoc           |    9 +
 xen/arch/arm/include/asm/p2m.h              |    5 +
 xen/arch/riscv/Makefile                     |    3 +
 xen/arch/riscv/cpufeature.c                 |    1 +
 xen/arch/riscv/include/asm/Makefile         |    1 -
 xen/arch/riscv/include/asm/cpufeature.h     |    1 +
 xen/arch/riscv/include/asm/domain.h         |   23 +
 xen/arch/riscv/include/asm/flushtlb.h       |   15 +-
 xen/arch/riscv/include/asm/mm.h             |   41 +-
 xen/arch/riscv/include/asm/p2m.h            |  185 ++-
 xen/arch/riscv/include/asm/page.h           |   37 +
 xen/arch/riscv/include/asm/paging.h         |   20 +
 xen/arch/riscv/include/asm/riscv_encoding.h |    7 +
 xen/arch/riscv/include/asm/vmid.h           |   14 +
 xen/arch/riscv/mm.c                         |   69 +-
 xen/arch/riscv/p2m.c                        | 1447 +++++++++++++++++++
 xen/arch/riscv/paging.c                     |  139 ++
 xen/arch/riscv/setup.c                      |    3 +
 xen/arch/riscv/stubs.c                      |    5 -
 xen/arch/riscv/vmid.c                       |  178 +++
 xen/common/device-tree/dom0less-build.c     |    2 +-
 21 files changed, 2179 insertions(+), 26 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/paging.h
 create mode 100644 xen/arch/riscv/include/asm/vmid.h
 create mode 100644 xen/arch/riscv/p2m.c
 create mode 100644 xen/arch/riscv/paging.c
 create mode 100644 xen/arch/riscv/vmid.c

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:55:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:55:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188150.1509454 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYL4-0008Nu-3J; Tue, 16 Dec 2025 16:55:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188150.1509454; Tue, 16 Dec 2025 16:55:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYL3-0008NO-Rk; Tue, 16 Dec 2025 16:55:53 +0000
Received: by outflank-mailman (input) for mailman id 1188150;
 Tue, 16 Dec 2025 16:55:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wcum=6W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVYL2-0006gk-CH
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:55:52 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 138e8c20-daa0-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 17:55:50 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-b7277324204so777704766b.0
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:55:50 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8003cb349csm63169766b.68.2025.12.16.08.55.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:55:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 138e8c20-daa0-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765904150; x=1766508950; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DJaP82YXbAm6Gna23C7iOt4nvGxE/DjDYnXLamz0z1w=;
        b=iGAOMvPwW/FEfSjJ5QI8HQU2pZxSrQIBmXKvu8YPWXJvV/nmEXtwP82HXg+9PeYGEf
         xnJhWhBGBAoyu+m5w1liTlFwzJRC0Oov02fykHe/LwGVgnj/mcMFEJJxYVUnxreSyLuM
         KnRzId0yXi+ZUPilLTJT0Q5CCnFoZkds6Kn4Tcmsy22w1lMrpOHpEo2HUumBv9boEfdC
         FFXRtwJrGpTfvmsWWfe1pBOR2guLE0BIR8UbFPXz6FeyattGchr+y9qZL+QDUE4TBMmm
         X2xWoHXjUsrTX00zqb5+PgsBYJvAFzclNQtFUVcVVnzHvwD9iKUVPyIJqLCc4Ap2FSvu
         CMhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765904150; x=1766508950;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=DJaP82YXbAm6Gna23C7iOt4nvGxE/DjDYnXLamz0z1w=;
        b=LVCWM/+fjPhISxAhp1KRUJHeQsPaMmA2PheezbrksuomCOdMCVpa87v1O0dNMbsFwf
         6wZ74waGYwlU+EJ3QghU5upxP6d56beHeOBLdwH8vQW3GVT3dyS0fHSLvgCo2r3k5mog
         h6rKIt95ET2T77vpa6Rwaj7IQho77ASwHJJh1FXE39dmkfwVW8JL0RHi0BuMZd74l5Am
         9BGdEoeZjEP54yI75lWOaxGNEmWJ0SaaFDAMoraxtXNbHY3dFbe+93L1qru5GZCoxOCe
         PDuHrXYCNvG68xFvQc7wJ2DTJFHt5rr+s6iHieqk3CACSsvEHPRXWyzZGt8YIa1jpRLS
         SUnA==
X-Gm-Message-State: AOJu0Yz7Z3HfEEw0mQZpuT2ZSS334TVgTv2pYmt2TI0OSi+1RxR9zjah
	7oWV6Vjai2Wl6Bqo0b5yT9n4umM6YOmndq8P85oSVnKKOKhT6EO7L35vF6Z5Cg==
X-Gm-Gg: AY/fxX5tEwg/tXrEFLXgLIxKWIdisGSM26lU+CzXO9KaS+CHr3Ef4jYPbidC32wegz1
	fQsKB/sctsyidFLgy9fgCtWqhQXqxm3gaI+2R7URraEoJOMAFNOGBvgwS39TNBB4xWgPwfnv5f2
	srR7r+fFPBritDaoAyDRSE6sVizshXISEGDWigwX0e09mJqBPPaJSTDXxefrdqQRQNlH3qpII/R
	YekeqOtvb44fixNfBqHz16nVMm9fMi89YHa6usrvdX6gRekdSUmVb5LAh8ZJhSq9W/fQLk9cejf
	HciA4tOkkv034v1m0rmSyYjE9qxDHXKH3fTjCiRhPVM7aSBombAvMMQB9thY4LN2yStwZaNr04o
	QBQMc6U+smExzbpo5NqIqXruZninK/D5CeUxrj751p7PeJlfzlhveKqbkWhuKKpqjGKDQkg50GN
	FwVmwrbzD086aoKfa+L7ke3svVH9niTZij9V4LJJk9h7qDaYbOoAomluY=
X-Google-Smtp-Source: AGHT+IERqQ619rupjyiILfHzAEhBYssN1RPY2a8lhUnskqNnoWloUleTYFYahg+LdATDiO58k7uSuA==
X-Received: by 2002:a17:907:60d0:b0:b73:2aa1:f9fb with SMTP id a640c23a62f3a-b7d23ad6631mr1777211366b.32.1765904149737;
        Tue, 16 Dec 2025 08:55:49 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v7 08/19] xen/dom0less: abstract Arm-specific p2m type name for device MMIO mappings
Date: Tue, 16 Dec 2025 17:55:18 +0100
Message-ID: <912db2169ad1ba5e021fc58972fd92aabc213c5f.1765879052.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765879052.git.oleksii.kurochko@gmail.com>
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce arch_dt_passthrough_p2m_type() and use it instead of
`p2m_mmio_direct_dev` to avoid leaking Arm-specific naming into
common Xen code, such as dom0less passthrough property handling.

This helps reduce platform-specific terminology in shared logic and
improves clarity for future non-Arm ports (e.g. RISC-V or PowerPC).

No functional changes — the definition is preserved via a static inline
function for Arm.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V5-7:
 - Nothing changed. Only rebase.
---
Changes in V4:
 - Introduce arch_dt_passthrough_p2m_type() instead of re-defining of
   p2m_mmio_direct.
---
Changes in V3:
 - New patch.
---
 xen/arch/arm/include/asm/p2m.h          | 5 +++++
 xen/common/device-tree/dom0less-build.c | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
index ef98bc5f4d..010ce8c9eb 100644
--- a/xen/arch/arm/include/asm/p2m.h
+++ b/xen/arch/arm/include/asm/p2m.h
@@ -137,6 +137,11 @@ typedef enum {
     p2m_max_real_type,  /* Types after this won't be store in the p2m */
 } p2m_type_t;
 
+static inline p2m_type_t arch_dt_passthrough_p2m_type(void)
+{
+    return p2m_mmio_direct_dev;
+}
+
 /* We use bitmaps and mask to handle groups of types */
 #define p2m_to_mask(_t) (1UL << (_t))
 
diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
index 2600350a3c..495ef7b16a 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -185,7 +185,7 @@ static int __init handle_passthrough_prop(struct kernel_info *kinfo,
                                gaddr_to_gfn(gstart),
                                PFN_DOWN(size),
                                maddr_to_mfn(mstart),
-                               p2m_mmio_direct_dev);
+                               arch_dt_passthrough_p2m_type());
         if ( res < 0 )
         {
             printk(XENLOG_ERR
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:55:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:55:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188152.1509467 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYL5-0000GE-AW; Tue, 16 Dec 2025 16:55:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188152.1509467; Tue, 16 Dec 2025 16:55:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYL5-0000Ed-4O; Tue, 16 Dec 2025 16:55:55 +0000
Received: by outflank-mailman (input) for mailman id 1188152;
 Tue, 16 Dec 2025 16:55:54 +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
 <SRS0=wcum=6W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVYL4-0006ge-EN
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:55:54 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 14fb0af9-daa0-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 17:55:53 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b735b89501fso638996266b.0
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:55:53 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8003cb349csm63169766b.68.2025.12.16.08.55.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:55:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 14fb0af9-daa0-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765904152; x=1766508952; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HDq9vUFOiqlkKEaA7GchoJPdBrT6DIpxx5bLeX6C9F4=;
        b=VhTrBMfLJQjlRcJH1kEXrQGBX7CJpMPtlrSbxky2qTRVISxpD70zh3qQrBBvMeQA0H
         Jcr5oIqLqf07PZkszGX10vRwplHkwRa/XTqMOYr29rsjq74OqilmSoSSNWXml5LOKT1N
         nLKDVt9ThbXS310UpwCqqPsIoLs/JmOi3ffoZMS3Ll2Df8kuRT94uPFCke1kSJHRdrfC
         MV2+VPBahXN2oDq2OWaTIV6aaIDZYgKzOOMrLLEoGoSKCHefC1Zrxtklxocmku1BNjOW
         tN2L+j69jeLeqqXWu6HKjAdXnZUFnGSXNM0gUrXckw1sb+q7vMrT1PSW4x6JTegm7iEm
         kdBw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765904152; x=1766508952;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=HDq9vUFOiqlkKEaA7GchoJPdBrT6DIpxx5bLeX6C9F4=;
        b=C1tzSqnEVeV7a2x5irxsF/71whwscqYMrR+meXy9bDP4AKwSl25L9LF6omQQJGUNIu
         BW18HkAF0ceCBUXyl1PgMFMzRsqFvM8UdHHA6C0FI333zATx+ELG9fdRBBFn16jokH8G
         eak1Ks7sv2zLutjMVwl1BlHwmZxvb4kV/jq9FDwH/TZ89VgTvvazZvOmJEw2Cdf2G7yv
         H8jBEJZCqeiJPlBllihOuYpY2f/9dJVBuQuZDgj1Omow4p5DjMehqRWT49ul+JqC+iaS
         XpBRy/sb+eBZpaxwpbsqvoSQ17Fo3vnJZQjjzIMmy/buimFWPvGswIvXPyJwLwplKoKf
         G6cw==
X-Gm-Message-State: AOJu0YxIOlI5F3+NquxsAChHMD5fEnKekVY7v0eaUisDTzS+Q6Fr2m2J
	rlpZKaGt/xH6pg3eHPmmYAJD/jjgGWZFTqyQiirkGbIG17jog5Jb8Q5lnKzt0A==
X-Gm-Gg: AY/fxX7NfAQE+Wk/zuZ9OC5L6p2WHy7qRRwmtlR4cf6gIJ/ou2ZzgfvWdS3tg56MymZ
	BLADcYFe+vBqG5Lts8dK2YppokfMT9j34r/I5bk4Q54uNa6CgF5A+vKglC9KxOyLM5O0NR+GEFp
	vI2Aa4xcLITTv7bVRwtAiPwxWb9HMHTRFX+Fao8ZWfNBbp4pTGGidwPZlzIIxyzpTdUneY4/9mY
	H9tdPzF06VH7OerPzRb2h8gP/W0GjV4X3BHwsye2jA6GZS5iRSnArhx/PJqzPzB/xElwP1PGCRi
	bY8xPvvnPpnZSrzx4PDz3eA11rgoV6Rwsi813bKLjfs0mGS9wAuE73tO9vRQLVYEHeb3n44RPVJ
	wakw37BH/N1vXNdWtC2SZ5tarZWCNggf+Lg87aCXxkTjH7tU4k89jUyy8wDJPUM3KfCKCxC1i4h
	urf07ivkFOlxwU2P7zUg8NRPiZKUTo2wZW05yNR66BNZF+NLDQa2U=
X-Google-Smtp-Source: AGHT+IHijtz5q0fKiQPMiRV62n5mZDk/gqbfLdoQ+Ckt+7qROo6Nd23mvM/HPZopcr5mtb7PpQqhyw==
X-Received: by 2002:a17:907:3c91:b0:b72:d001:7653 with SMTP id a640c23a62f3a-b7d236674a6mr1358671966b.19.1765904151983;
        Tue, 16 Dec 2025 08:55:51 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 10/19] xen/riscv: implement p2m_set_range()
Date: Tue, 16 Dec 2025 17:55:20 +0100
Message-ID: <b28fb57f251b0d07f31a0c6f6863c9816d91691a.1765879052.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765879052.git.oleksii.kurochko@gmail.com>
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This patch introduces p2m_set_range() and its core helper p2m_set_entry() for
RISC-V, based loosely on the Arm implementation, with several RISC-V-specific
modifications.

The main changes are:
- Simplification of Break-Before-Make (BBM) approach as according to RISC-V
  spec:
    It is permitted for multiple address-translation cache entries to co-exist
    for the same address. This represents the fact that in a conventional
    TLB hierarchy, it is possible for multiple entries to match a single
    address if, for example, a page is upgraded to a superpage without first
    clearing the original non-leaf PTE’s valid bit and executing an SFENCE.VMA
    with rs1=x0, or if multiple TLBs exist in parallel at a given level of the
    hierarchy. In this case, just as if an SFENCE.VMA is not executed between
    a write to the memory-management tables and subsequent implicit read of the
    same address: it is unpredictable whether the old non-leaf PTE or the new
    leaf PTE is used, but the behavior is otherwise well defined.
  In contrast to the Arm architecture, where BBM is mandatory and failing to
  use it in some cases can lead to CPU instability, RISC-V guarantees
  stability, and the behavior remains safe — though unpredictable in terms of
  which translation will be used.
- Unlike Arm, the valid bit is not repurposed for other uses in this
  implementation. Instead, entry validity is determined based solely on P2M
  PTE's valid bit.

The main functionality is in p2m_set_entry(), which handles mappings aligned
to page table block entries (e.g., 1GB, 2MB, or 4KB with 4KB granularity).

p2m_set_range() breaks a region down into block-aligned mappings and calls
p2m_set_entry() accordingly.

Stub implementations (to be completed later) include:
- p2m_free_subtree()
- p2m_next_level()
- p2m_pte_from_mfn()

Note: Support for shattering block entries is not implemented in this
patch and will be added separately.

Additionally, some straightforward helper functions are now implemented:
- p2m_write_pte()
- p2m_remove_pte()
- p2m_get_root_pointer()

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V7:
 - Drop initializer of var[0] inside P2M_BUILD_LEVEL_OFFSETS().
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V6:
 - Drop the last paragraph in the comment above P2M_LEVEL_ORDER().
 - Update prototype of calc_offset(..., vaddr_t va) to
   calc_offset(..., paddr_t gpa).
 - Rename root_table_indx to idx.
 - s/clean_pte/clean_cache.
 - Fix identations.
 - Introduce P2M_MAX_SUPPORTED_LEVEL_MAPPING to use it instead of magic constant.
 - Rename GFN_MASK to P2M_TABLE_OFFSET
 - Update the implementation of calc_offset() and get_root_pointer().
 - s/P2M_DECLARE_OFFSETS/P2M_BUILD_LEVEL_OFFSETS.
 - Add BUG_ON() inside P2M_BUILD_LEVEL_OFFSETS() to be sure that
   actual root level isn't higer then maximum possible.
 - Move gstage_mode and gstage_level inside p2m_domain structure.
---
Changes in V5:
 - Update the comment above p2m_get_root_pointer().
 - Fix an identation for p2m_set_entry()'s arguments.
 - Update the comment in p2m_set_entry() where lookup is happening.
 - Drop part of the comment above p2m_set_entry() as it is not really
   needed anymore.
 - Introduce P2M_DECLARE_OFFSETS() to use it insetead of
   DECLARE_OFFSETS() as the latter could have an issue with P2M code.
 - Update p2m_get_root_pointer() to work only with P2M root properties.
 - Update the comment inside in p2m_set_entry() for the case when
   p2m_next_level() returns P2M_TABLE_MAP_{NONE,NOMEM}.
 - Simplify a little bit a condition when p2m_free_subtree() by removing
   a case when removing && mfn(0) are checked explicitly.
---
Changes in V4:
 - Introduce gstage_root_level and use it for defintion of P2M_ROOT_LEVEL.
 - Introduce P2M_LEVEL_ORDER() macros and P2M_PAGETABLE_ENTRIES().
 - Add the TODO comment in p2m_write_pte() about possible perfomance
   optimization.
 - Use compound literal for `pte` variable inside p2m_clean_pte().
 - Fix the comment above p2m_next_level().
 - Update ASSERT() inside p2m_set_entry() and leave only a check of a
   target as p2m_mapping_order() that page_order will be correctly
   aligned.
 - Update the comment above declaration of `removing_mapping` in
   p2m_set_entry().
 - Stray blanks.
 - Handle possibly overflow of an amount of unmapped GFNs in case of
   some failute in p2m_set_range().
 - Handle a case when MFN is 0 and removing of such MFN is happening in
   p2m_set_entry.
 - Fix p2m_get_root_pointer() to return correct pointer to root page table.
---
Changes in V3:
 - Drop p2m_access_t connected stuff as it isn't going to be used, at least
   now.
 - Move defintion of P2M_ROOT_ORDER and P2M_ROOT_PAGES to earlier patches.
 - Update the comment above lowest_mapped_gfn declaration.
 - Update the comment above p2m_get_root_pointer(): s/"...ofset of the root
   table"/"...ofset into root table".
 - s/p2m_remove_pte/p2m_clean_pte.
 - Use plain 0 instead of 0x00 in p2m_clean_pte().
 - s/p2m_entry_from_mfn/p2m_pte_from_mfn.
 - s/GUEST_TABLE_*/P2M_TABLE_*.
 - Update the comment above p2m_next_level(): "GFN entry" -> "corresponding
   the entry corresponding to the GFN".
 - s/__p2m_set_entry/_p2m_set_entry.
 - drop "s" for sgfn and smfn prefixes of _p2m_set_entry()'s arguments
   as this function work only with one GFN and one MFN.
 - Return correct return code when p2m_next_level() faild in _p2m_set_entry(),
   also drop "else" and just handle case (rc != P2M_TABLE_NORMAL) separately.
 - Code style fixes.
 - Use unsigned int for "order" in p2m_set_entry().
 - s/p2m_set_entry/p2m_free_subtree.
 - Update ASSERT() in __p2m_set_enty() to check that page_order is propertly
   aligned.
 - Return -EACCES instead of -ENOMEM in the chase when domain is dying and
   someone called p2m_set_entry.
 - s/p2m_set_entry/p2m_set_range.
 - s/__p2m_set_entry/p2m_set_entry
 - s/p2me_is_valid/p2m_is_valid()
 - Return a number of successfully mapped GFNs in case if not all were mapped
   in p2m_set_range().
 - Use BIT(order, UL) instead of 1 << order.
 - Drop IOMMU flushing code from p2m_set_entry().
 - set p2m->need_flush=true when entry in p2m_set_entry() is changed.
 - Introduce p2m_mapping_order() to support superpages.
 - Drop p2m_is_valid() and use pte_is_valid() instead as there is no tricks
   with copying of valid bit anymore.
 - Update p2m_pte_from_mfn() prototype: drop p2m argument.
---
Changes in V2:
 - New patch. It was a part of a big patch "xen/riscv: implement p2m mapping
   functionality" which was splitted to smaller.
 - Update the way when p2m TLB is flushed:
 - RISC-V does't require BBM so there is no need to remove PTE before making
   new so drop 'if /*pte_is_valid(orig_pte) */' and remove PTE only removing
   has been requested.
 - Drop p2m->need_flush |= !!pte_is_valid(orig_pte); for the case when
   PTE's removing is happening as RISC-V could cache invalid PTE and thereby
   it requires to do a flush each time and it doesn't matter if PTE is valid
   or not at the moment when PTE removing is happening.
 - Drop a check if PTE is valid in case of PTE is modified as it was mentioned
   above as BBM isn't required so TLB flushing could be defered and there is
   no need to do it before modifying of PTE.
 - Drop p2m->need_flush as it seems like it will be always true.
 - Drop foreign mapping things as it isn't necessary for RISC-V right now.
 - s/p2m_is_valid/p2me_is_valid.
 - Move definition and initalization of p2m->{max_mapped_gfn,lowest_mapped_gfn}
   to this patch.
---
 xen/arch/riscv/include/asm/p2m.h |  38 ++++
 xen/arch/riscv/p2m.c             | 326 ++++++++++++++++++++++++++++++-
 2 files changed, 363 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index 9acd6a64a8..fa55d8a3bc 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -8,10 +8,38 @@
 #include <xen/rwlock.h>
 #include <xen/types.h>
 
+#include <asm/page.h>
 #include <asm/page-bits.h>
 
 #define P2M_ROOT_ORDER  (ilog2(GSTAGE_ROOT_PAGE_TABLE_SIZE) - PAGE_SHIFT)
 #define P2M_ROOT_PAGES  BIT(P2M_ROOT_ORDER, U)
+#define P2M_ROOT_LEVEL(p2m) ((p2m)->mode.paging_levels)
+
+/*
+ * According to the RISC-V spec:
+ *   When hgatp.MODE specifies a translation scheme of Sv32x4, Sv39x4, Sv48x4,
+ *   or Sv57x4, G-stage address translation is a variation on the usual
+ *   page-based virtual address translation scheme of Sv32, Sv39, Sv48, or
+ *   Sv57, respectively. In each case, the size of the incoming address is
+ *   widened by 2 bits (to 34, 41, 50, or 59 bits).
+ *
+ * P2M_LEVEL_ORDER(lvl) defines the bit position in the GFN from which
+ * the index for this level of the P2M page table starts. The extra 2
+ * bits added by the "x4" schemes only affect the root page table width.
+ *
+ * Therefore, this macro can safely reuse XEN_PT_LEVEL_ORDER() for all
+ * levels: the extra 2 bits do not change the indices of lower levels.
+ */
+#define P2M_LEVEL_ORDER(lvl) XEN_PT_LEVEL_ORDER(lvl)
+
+#define P2M_ROOT_EXTRA_BITS(p2m, lvl) (2 * ((lvl) == P2M_ROOT_LEVEL(p2m)))
+
+#define P2M_PAGETABLE_ENTRIES(p2m, lvl) \
+    (BIT(PAGETABLE_ORDER + P2M_ROOT_EXTRA_BITS(p2m, lvl), UL))
+
+#define P2M_TABLE_OFFSET(p2m, lvl) (P2M_PAGETABLE_ENTRIES(p2m, lvl) - 1UL)
+
+#define P2M_GFN_LEVEL_SHIFT(lvl) (P2M_LEVEL_ORDER(lvl) + PAGE_SHIFT)
 
 #define paddr_bits PADDR_BITS
 
@@ -58,6 +86,16 @@ struct p2m_domain {
      * when a page is needed to be fully cleared and cleaned.
      */
     bool clean_dcache;
+
+    /* Highest guest frame that's ever been mapped in the p2m */
+    gfn_t max_mapped_gfn;
+
+    /*
+     * Lowest mapped gfn in the p2m. When releasing mapped gfn's in a
+     * preemptible manner this is updated to track where to resume
+     * the search. Apart from during teardown this can only decrease.
+     */
+    gfn_t lowest_mapped_gfn;
 };
 
 /*
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 8bb197f9b3..c23926933f 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -9,6 +9,7 @@
 #include <xen/rwlock.h>
 #include <xen/sched.h>
 #include <xen/sections.h>
+#include <xen/xvmalloc.h>
 
 #include <asm/csr.h>
 #include <asm/flushtlb.h>
@@ -17,6 +18,13 @@
 #include <asm/riscv_encoding.h>
 #include <asm/vmid.h>
 
+/*
+ * At the moment, only 4K, 2M, and 1G mappings are supported for G-stage
+ * translation. Therefore, the maximum supported page-table level is 2,
+ * which corresponds to 1G mappings.
+ */
+#define P2M_MAX_SUPPORTED_LEVEL_MAPPING _AC(2, U)
+
 static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
     .mode = HGATP_MODE_OFF,
     .paging_levels = 0,
@@ -28,6 +36,77 @@ unsigned char get_max_supported_mode(void)
     return max_gstage_mode.mode;
 }
 
+static inline unsigned int calc_offset(const struct p2m_domain *p2m,
+                                       const unsigned int lvl,
+                                       const paddr_t gpa)
+{
+    unsigned int off = (gpa >> P2M_GFN_LEVEL_SHIFT(lvl)) &
+                       P2M_TABLE_OFFSET(p2m, lvl);
+
+    /*
+     * For P2M_ROOT_LEVEL, `offset` ranges from 0 to 2047, since the root
+     * page table spans 4 consecutive 4KB pages.
+     * We want to return an index within one of these 4 pages.
+     * The specific page to use is determined by `p2m_get_root_pointer()`.
+     *
+     * Example: if `offset == 512`:
+     *  - A single 4KB page holds 512 entries.
+     *  - Therefore, entry 512 corresponds to index 0 of the second page.
+     *
+     * At all other levels, only one page is allocated, and `offset` is
+     * always in the range 0 to 511, since the VPN is 9 bits long.
+     */
+    return off & (PAGETABLE_ENTRIES - 1);
+}
+
+#define P2M_MAX_ROOT_LEVEL 5
+
+#define P2M_BUILD_LEVEL_OFFSETS(p2m, var, addr) \
+    unsigned int var[P2M_MAX_ROOT_LEVEL]; \
+    BUG_ON(P2M_ROOT_LEVEL(p2m) >= P2M_MAX_ROOT_LEVEL); \
+    for ( unsigned int i = 0; i <= P2M_ROOT_LEVEL(p2m); i++ ) \
+        var[i] = calc_offset(p2m, i, addr);
+
+/*
+ * Map one of the four root pages of the P2M root page table.
+ *
+ * The P2M root page table is larger than normal (16KB instead of 4KB),
+ * so it is allocated as four consecutive 4KB pages. This function selects
+ * the appropriate 4KB page based on the given GFN and returns a mapping
+ * to it.
+ *
+ * The caller is responsible for unmapping the page after use.
+ *
+ * Returns NULL if the calculated offset into the root table is invalid.
+ */
+static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
+{
+    unsigned long idx;
+    unsigned long root_level = P2M_ROOT_LEVEL(p2m);
+
+    idx = gfn_x(gfn) >> P2M_LEVEL_ORDER(root_level);
+    if ( idx >= P2M_PAGETABLE_ENTRIES(p2m, root_level) )
+        return NULL;
+
+    /*
+     * The P2M root page table is extended by 2 bits, making its size 16KB
+     * (instead of 4KB for non-root page tables). Therefore, p2m->root is
+     * allocated as four consecutive 4KB pages (since alloc_domheap_pages()
+     * only allocates 4KB pages).
+     *
+     * Initially, `idx` is derived directly from `gfn`.
+     * To locate the correct entry within a single 4KB page,
+     * we rescale the offset so it falls within one of the 4 pages.
+     *
+     * Example: if `idx == 512`
+     * - A 4KB page holds 512 entries.
+     * - Thus, entry 512 corresponds to index 0 of the second page.
+     */
+    idx /= PAGETABLE_ENTRIES;
+
+    return __map_domain_page(p2m->root + idx);
+}
+
 static void __init gstage_mode_detect(void)
 {
     static const struct gstage_mode_desc modes[] __initconst = {
@@ -228,6 +307,9 @@ int p2m_init(struct domain *d)
     rwlock_init(&p2m->lock);
     INIT_PAGE_LIST_HEAD(&p2m->pages);
 
+    p2m->max_mapped_gfn = _gfn(0);
+    p2m->lowest_mapped_gfn = _gfn(ULONG_MAX);
+
     /*
      * Currently, the infrastructure required to enable CONFIG_HAS_PASSTHROUGH
      * is not ready for RISC-V support.
@@ -274,13 +356,255 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
     return rc;
 }
 
+static inline void p2m_write_pte(pte_t *p, pte_t pte, bool clean_cache)
+{
+    write_pte(p, pte);
+
+    /*
+     * TODO: if multiple adjacent PTEs are written without releasing
+     *       the lock, this then redundant cache flushing can be a
+     *       performance issue.
+     */
+    if ( clean_cache )
+        clean_dcache_va_range(p, sizeof(*p));
+}
+
+static inline void p2m_clean_pte(pte_t *p, bool clean_cache)
+{
+    pte_t pte = { .pte = 0 };
+
+    p2m_write_pte(p, pte, clean_cache);
+}
+
+static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t)
+{
+    panic("%s: hasn't been implemented yet\n", __func__);
+
+    return (pte_t) { .pte = 0 };
+}
+
+#define P2M_TABLE_MAP_NONE 0
+#define P2M_TABLE_MAP_NOMEM 1
+#define P2M_TABLE_SUPER_PAGE 2
+#define P2M_TABLE_NORMAL 3
+
+/*
+ * Take the currently mapped table, find the entry corresponding to the GFN,
+ * and map the next-level table if available. The previous table will be
+ * unmapped if the next level was mapped (e.g., when P2M_TABLE_NORMAL is
+ * returned).
+ *
+ * `alloc_tbl` parameter indicates whether intermediate tables should
+ * be allocated when not present.
+ *
+ * Return values:
+ *  P2M_TABLE_MAP_NONE: a table allocation isn't permitted.
+ *  P2M_TABLE_MAP_NOMEM: allocating a new page failed.
+ *  P2M_TABLE_SUPER_PAGE: next level or leaf mapped normally.
+ *  P2M_TABLE_NORMAL: The next entry points to a superpage.
+ */
+static int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,
+                          unsigned int level, pte_t **table,
+                          unsigned int offset)
+{
+    panic("%s: hasn't been implemented yet\n", __func__);
+
+    return P2M_TABLE_MAP_NONE;
+}
+
+/* Free pte sub-tree behind an entry */
+static void p2m_free_subtree(struct p2m_domain *p2m,
+                             pte_t entry, unsigned int level)
+{
+    panic("%s: hasn't been implemented yet\n", __func__);
+}
+
+/* Insert an entry in the p2m */
+static int p2m_set_entry(struct p2m_domain *p2m,
+                         gfn_t gfn,
+                         unsigned long page_order,
+                         mfn_t mfn,
+                         p2m_type_t t)
+{
+    unsigned int level;
+    unsigned int target = page_order / PAGETABLE_ORDER;
+    pte_t *entry, *table, orig_pte;
+    int rc;
+    /*
+     * A mapping is removed only if the MFN is explicitly set to INVALID_MFN.
+     * Other MFNs that are considered invalid by mfn_valid() (e.g., MMIO)
+     * are still allowed.
+     */
+    bool removing_mapping = mfn_eq(mfn, INVALID_MFN);
+    P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
+
+    ASSERT(p2m_is_write_locked(p2m));
+
+    /*
+     * Check if the level target is valid: we only support
+     * 4K - 2M - 1G mapping.
+     */
+    ASSERT(target <= P2M_MAX_SUPPORTED_LEVEL_MAPPING);
+
+    table = p2m_get_root_pointer(p2m, gfn);
+    if ( !table )
+        return -EINVAL;
+
+    for ( level = P2M_ROOT_LEVEL(p2m); level > target; level-- )
+    {
+        /*
+         * Don't try to allocate intermediate page table if the mapping
+         * is about to be removed.
+         */
+        rc = p2m_next_level(p2m, !removing_mapping,
+                            level, &table, offsets[level]);
+        if ( (rc == P2M_TABLE_MAP_NONE) || (rc == P2M_TABLE_MAP_NOMEM) )
+        {
+            rc = (rc == P2M_TABLE_MAP_NONE) ? -ENOENT : -ENOMEM;
+            /*
+             * We are here because p2m_next_level has failed to map
+             * the intermediate page table (e.g the table does not exist
+             * and none should be allocated). It is a valid case
+             * when removing a mapping as it may not exist in the
+             * page table. In this case, just ignore lookup failure.
+             */
+            rc = removing_mapping ? 0 : rc;
+            goto out;
+        }
+
+        if ( rc != P2M_TABLE_NORMAL )
+            break;
+    }
+
+    entry = table + offsets[level];
+
+    /*
+     * If we are here with level > target, we must be at a leaf node,
+     * and we need to break up the superpage.
+     */
+    if ( level > target )
+    {
+        panic("Shattering isn't implemented\n");
+    }
+
+    /*
+     * We should always be there with the correct level because all the
+     * intermediate tables have been installed if necessary.
+     */
+    ASSERT(level == target);
+
+    orig_pte = *entry;
+
+    if ( removing_mapping )
+        p2m_clean_pte(entry, p2m->clean_dcache);
+    else
+    {
+        pte_t pte = p2m_pte_from_mfn(mfn, t);
+
+        p2m_write_pte(entry, pte, p2m->clean_dcache);
+
+        p2m->max_mapped_gfn = gfn_max(p2m->max_mapped_gfn,
+                                      gfn_add(gfn, BIT(page_order, UL) - 1));
+        p2m->lowest_mapped_gfn = gfn_min(p2m->lowest_mapped_gfn, gfn);
+    }
+
+    p2m->need_flush = true;
+
+    /*
+     * Currently, the infrastructure required to enable CONFIG_HAS_PASSTHROUGH
+     * is not ready for RISC-V support.
+     *
+     * When CONFIG_HAS_PASSTHROUGH=y, iommu_iotlb_flush() should be done
+     * here.
+     */
+#ifdef CONFIG_HAS_PASSTHROUGH
+#   error "add code to flush IOMMU TLB"
+#endif
+
+    rc = 0;
+
+    /*
+     * In case of a VALID -> INVALID transition, the original PTE should
+     * always be freed.
+     *
+     * In case of a VALID -> VALID transition, the original PTE should be
+     * freed only if the MFNs are different. If the MFNs are the same
+     * (i.e., only permissions differ), there is no need to free the
+     * original PTE.
+     */
+    if ( pte_is_valid(orig_pte) &&
+         (!pte_is_valid(*entry) ||
+          !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte))) )
+        p2m_free_subtree(p2m, orig_pte, level);
+
+ out:
+    unmap_domain_page(table);
+
+    return rc;
+}
+
+/* Return mapping order for given gfn, mfn and nr */
+static unsigned long p2m_mapping_order(const struct p2m_domain *p2m, gfn_t gfn,
+                                       mfn_t mfn, unsigned long nr)
+{
+    unsigned long mask;
+    /* 1gb, 2mb, 4k mappings are supported */
+    unsigned int level = min(P2M_ROOT_LEVEL(p2m), P2M_MAX_SUPPORTED_LEVEL_MAPPING);
+    unsigned long order = 0;
+
+    mask = !mfn_eq(mfn, INVALID_MFN) ? mfn_x(mfn) : 0;
+    mask |= gfn_x(gfn);
+
+    for ( ; level != 0; level-- )
+    {
+        if ( !(mask & (BIT(P2M_LEVEL_ORDER(level), UL) - 1)) &&
+             (nr >= BIT(P2M_LEVEL_ORDER(level), UL)) )
+        {
+            order = P2M_LEVEL_ORDER(level);
+            break;
+        }
+    }
+
+    return order;
+}
+
 static int p2m_set_range(struct p2m_domain *p2m,
                          gfn_t sgfn,
                          unsigned long nr,
                          mfn_t smfn,
                          p2m_type_t t)
 {
-    return -EOPNOTSUPP;
+    int rc = 0;
+    unsigned long left = nr;
+
+    /*
+     * Any reference taken by the P2M mappings (e.g. foreign mapping) will
+     * be dropped in relinquish_p2m_mapping(). As the P2M will still
+     * be accessible after, we need to prevent mapping to be added when the
+     * domain is dying.
+     */
+    if ( unlikely(p2m->domain->is_dying) )
+        return -EACCES;
+
+    while ( left )
+    {
+        unsigned long order = p2m_mapping_order(p2m, sgfn, smfn, left);
+
+        rc = p2m_set_entry(p2m, sgfn, order, smfn, t);
+        if ( rc )
+            break;
+
+        sgfn = gfn_add(sgfn, BIT(order, UL));
+        if ( !mfn_eq(smfn, INVALID_MFN) )
+            smfn = mfn_add(smfn, BIT(order, UL));
+
+        left -= BIT(order, UL);
+    }
+
+    if ( left > INT_MAX )
+        rc = -EOVERFLOW;
+
+    return !left ? rc : left;
 }
 
 int map_regions_p2mt(struct domain *d,
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:55:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:55:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188143.1509389 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYKx-0006uG-P8; Tue, 16 Dec 2025 16:55:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188143.1509389; Tue, 16 Dec 2025 16:55:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYKx-0006u9-KZ; Tue, 16 Dec 2025 16:55:47 +0000
Received: by outflank-mailman (input) for mailman id 1188143;
 Tue, 16 Dec 2025 16:55:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wcum=6W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVYKx-0006gk-4g
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:55:47 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0f3105b3-daa0-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 17:55:43 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b79ea617f55so372279966b.3
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:55:43 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8003cb349csm63169766b.68.2025.12.16.08.55.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:55:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0f3105b3-daa0-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765904143; x=1766508943; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dZegd6aXaLBRkNeMFMoN/ND2IHAaan6sTyPeWinaod4=;
        b=LQ0huGgF8wCp5i2uPXcUdbd5RPmm0DW6ViZt2qFSbIDFXsajGOzEBy9p26ea05TIzR
         TLnIYNrnY6OLzLaTfttoOdPhBHlm183QwGgT68Iulg8JR8ZWlQmnn4ItVk7F8NJbAOR8
         BnNd5dh6BM3NT/kqpv3HDJGe25LogfdI99/73H4bZO4eNOzX1SznAFSkRLUtBVCsySK6
         whYQoKHw4SwA8PuyWB8S/d/YoitRFSOoL5l9GsZmF8pM20L9GPdNK87w0ZUkNYWX5Y+s
         Uj7Rd1caDSP3v1EEB2D3hNrS2sHCIeLsM/vdmZkAc9dSbcS7NCfCmYfbCX5Q/APwQ1qm
         hQjw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765904143; x=1766508943;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=dZegd6aXaLBRkNeMFMoN/ND2IHAaan6sTyPeWinaod4=;
        b=JxiGslUzQ9OQPmNzcdqwPHZ6+U99EAU6mr7rNDE5vOn7pIKOmQainOyith2Of0OoJi
         ehk9MBWd6cu0+omGGTzygEB6kWilPNUfB234twsWo5+kCO1oey1s+1jegaQZ2bV7EIBj
         IxS0FhlwLdfB/qwGDAQLXm3rKfdSQtPiUv5oNaWXCXgdELRoc/dHjLaKGhNsFr7QNWEP
         fCGY9uvm2Z3rqW3NGAFOyNIYLuJkOoeyMVdO2McJ2nsExebXq7dNh3UrZ+TLS0MCNEDk
         j2yRJYmTZuMw8j75IaO12p1OQMPuH0KnXqli4jserGd59cmVezpBOz+D3ralYKEOsQdH
         bIjg==
X-Gm-Message-State: AOJu0Yyajb7U3oTUVKrORh9zW1yNUVa1h0XHaKaQhE2kbp+/hem42q3e
	dlY5e06kIPdQ0BSWiTEZzQCEPRITfbjDcS5ldaXenUs6n0lzmtl+Qpl2tDKbyg==
X-Gm-Gg: AY/fxX4N+lE22qXGUImkUNyHzXdocOLVONij6OZT2BFJ3jcZ/OKrNaA4W359VUArmer
	IEwtoLXsIyLctN8oN6WrnsYS17JWzqtU0eeZqcW02BpZXkm5Yytw45r03A2OSjdo72HJgIgYb1y
	ky1yCwLxLlapc5wsgzh+aie85Qg3AceAl8Tjfl4/2x5pCTLjleDchhAQukzdG9MjU92/oyAX+l/
	jHgFNylCFwB26SNubzrfuuWzDYlePNxkR/lozPdmEoThRNnjCqnDu2udfAx4+NlMdlUZUQ+gfK1
	2NQPUFJpd86YBqcSJpny39UGDsz1HPQ2hRZqk6zI2fxqnzloTLBj140HafV7pTt6hl8ZRdL9WnU
	zHeVq+aY8Mos2Znh0tbifjU0EZqF1mXN0YfDbk6sNyl8/0Q2i2m4YPA/MxBL/mUJSASYZ1y7AId
	3wSBmDP27LhFd9FoE9jZ+CtJ/O6To/4dgF32EJMkD5P5ePNdxw4Zrz198roFj+6w==
X-Google-Smtp-Source: AGHT+IH3DGz5GXtrkhcYsGxJ0b6IyRxNosABDTpAkHu0Tw3UPS3EMFoBU/qYVHt8cuGlW2ZETNJHUg==
X-Received: by 2002:a17:907:2d1f:b0:b7d:11b0:31ca with SMTP id a640c23a62f3a-b7d23bbf1e8mr1461635966b.65.1765904142320;
        Tue, 16 Dec 2025 08:55:42 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 01/19] xen/riscv: detect and initialize G-stage mode
Date: Tue, 16 Dec 2025 17:55:11 +0100
Message-ID: <497b52495e108ae2a89952b8b430d865f0bea4d3.1765879052.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765879052.git.oleksii.kurochko@gmail.com>
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce gstage_mode_detect() and guest_mm_init() to probe supported
G-stage paging modes at boot. The function iterates over possible
HGATP modes (Sv32x4 on RV32, Sv39x4/Sv48x4/Sv57x4 on RV64) and selects
the largest supported MMU translation address mode by programming
CSR_HGATP and reading it back.

The selected mode is stored in max_gstage_mode (marked __ro_after_init)
and reported via printk. If no supported mode is found, Xen panics
since Bare mode is not expected to be used.

Finally, CSR_HGATP is cleared and a local_hfence_gvma_all() is issued
to avoid any potential speculative pollution of the TLB, as required
by the RISC-V spec.

The following issue starts to occur:
 ./<riscv>/asm/flushtlb.h:37:55: error: 'struct page_info'  declared inside
   parameter list will not be visible outside of this definition or
   declaration [-Werror]
 37 | static inline void page_set_tlbflush_timestamp(struct page_info *page)
To resolve it, forward declaration of struct page_info is added to
<asm/flushtlb.h.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V7:
 - Move mode_idx declaration into the for loop header.
 - Use single struct assignment instead of assignment of each field of struct
   gstage_mode_desc.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V6:
 - Sort items properly in riscv/Makefile.
 - Move the  call of local_hfence_gvma_all() from gstage_mode_detect()
   to pre_gstage_init() to avoid a redundancy when vmid_init() will be
   introduced.
 - Rename pre_gstage_init() to more generic name guest_mm_init().
 - s/gstage_mode/max_gstage_mode
 - Reverse direction of gstage mode detection to find a maximum supported mode to understand what modes are supported. (lower modes are supported automatically)
 - Introduce struct gstage_mode_desc.
 - Introduce get_max_supported_mode().
---
Changes in V5:
 - Add static and __initconst for local variable modes[] in
   gstage_mode_detect().
 - Change type for gstage_mode from 'unsigned long' to 'unsigned char'.
 - Update the comment inisde defintion if modes[] variable in
   gstage_mode_detect():
   - Add information about Bare mode.
   - Drop "a paged virtual-memory scheme described in Section 10.3" as it isn't
     relevant here.
 - Drop printing of function name when chosen G-stage mode message is printed.
 - Drop the call of gstage_mode_detect() from start_xen(). It will be added into
   p2m_init() when the latter will be introduced.
 - Introduce pre_gstage_init().
 - make gstage_mode_detect() static.
---
Changes in V4:
 - New patch.
---
 xen/arch/riscv/Makefile                     |   1 +
 xen/arch/riscv/include/asm/flushtlb.h       |   7 ++
 xen/arch/riscv/include/asm/p2m.h            |   9 ++
 xen/arch/riscv/include/asm/riscv_encoding.h |   5 +
 xen/arch/riscv/p2m.c                        | 102 ++++++++++++++++++++
 xen/arch/riscv/setup.c                      |   3 +
 6 files changed, 127 insertions(+)
 create mode 100644 xen/arch/riscv/p2m.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index d667234949..7b8d0e20e5 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -6,6 +6,7 @@ obj-y += imsic.o
 obj-y += intc.o
 obj-y += irq.o
 obj-y += mm.o
+obj-y += p2m.o
 obj-y += pt.o
 obj-$(CONFIG_RISCV_64) += riscv64/
 obj-y += sbi.o
diff --git a/xen/arch/riscv/include/asm/flushtlb.h b/xen/arch/riscv/include/asm/flushtlb.h
index 51c8f753c5..e70badae0c 100644
--- a/xen/arch/riscv/include/asm/flushtlb.h
+++ b/xen/arch/riscv/include/asm/flushtlb.h
@@ -7,6 +7,13 @@
 
 #include <asm/sbi.h>
 
+struct page_info;
+
+static inline void local_hfence_gvma_all(void)
+{
+    asm volatile ( "hfence.gvma zero, zero" ::: "memory" );
+}
+
 /* Flush TLB of local processor for address va. */
 static inline void flush_tlb_one_local(vaddr_t va)
 {
diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index e43c559e0c..3776b98303 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -8,6 +8,12 @@
 
 #define paddr_bits PADDR_BITS
 
+struct gstage_mode_desc {
+    unsigned char mode;
+    unsigned int paging_levels;
+    char name[8];
+};
+
 /*
  * List of possible type for each page in the p2m entry.
  * The number of available bit per page in the pte for this purpose is 2 bits.
@@ -88,6 +94,9 @@ static inline bool arch_acquire_resource_check(struct domain *d)
     return false;
 }
 
+void guest_mm_init(void);
+unsigned char get_max_supported_mode(void);
+
 #endif /* ASM__RISCV__P2M_H */
 
 /*
diff --git a/xen/arch/riscv/include/asm/riscv_encoding.h b/xen/arch/riscv/include/asm/riscv_encoding.h
index fd27f74cb7..e0a5e8b58b 100644
--- a/xen/arch/riscv/include/asm/riscv_encoding.h
+++ b/xen/arch/riscv/include/asm/riscv_encoding.h
@@ -131,10 +131,13 @@
 #define HGATP_MODE_SV32X4		_UL(1)
 #define HGATP_MODE_SV39X4		_UL(8)
 #define HGATP_MODE_SV48X4		_UL(9)
+#define HGATP_MODE_SV57X4		_UL(10)
 
+#define HGATP32_MODE_MASK		_UL(0x80000000)
 #define HGATP32_VMID_MASK		_UL(0x1FC00000)
 #define HGATP32_PPN_MASK		_UL(0x003FFFFF)
 
+#define HGATP64_MODE_MASK		_ULL(0xF000000000000000)
 #define HGATP64_VMID_MASK		_ULL(0x03FFF00000000000)
 #define HGATP64_PPN_MASK		_ULL(0x00000FFFFFFFFFFF)
 
@@ -164,6 +167,7 @@
 
 #define HGATP_PPN_MASK			HGATP64_PPN_MASK
 #define HGATP_VMID_MASK			HGATP64_VMID_MASK
+#define HGATP_MODE_MASK			HGATP64_MODE_MASK
 #else
 #define MSTATUS_SD			MSTATUS32_SD
 #define SSTATUS_SD			SSTATUS32_SD
@@ -173,6 +177,7 @@
 
 #define HGATP_PPN_MASK			HGATP32_PPN_MASK
 #define HGATP_VMID_MASK			HGATP32_VMID_MASK
+#define HGATP_MODE_MASK			HGATP32_MODE_MASK
 #endif
 
 #define TOPI_IID_SHIFT			16
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
new file mode 100644
index 0000000000..076a1c35b2
--- /dev/null
+++ b/xen/arch/riscv/p2m.c
@@ -0,0 +1,102 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/init.h>
+#include <xen/lib.h>
+#include <xen/macros.h>
+#include <xen/sections.h>
+
+#include <asm/csr.h>
+#include <asm/flushtlb.h>
+#include <asm/p2m.h>
+#include <asm/riscv_encoding.h>
+
+static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
+    .mode = HGATP_MODE_OFF,
+    .paging_levels = 0,
+    .name = "Bare",
+};
+
+unsigned char get_max_supported_mode(void)
+{
+    return max_gstage_mode.mode;
+}
+
+static void __init gstage_mode_detect(void)
+{
+    static const struct gstage_mode_desc modes[] __initconst = {
+        /*
+         * Based on the RISC-V spec:
+         *   Bare mode is always supported, regardless of SXLEN.
+         *   When SXLEN=32, the only other valid setting for MODE is Sv32.
+         *   When SXLEN=64, three paged virtual-memory schemes are defined:
+         *   Sv39, Sv48, and Sv57.
+         */
+#ifdef CONFIG_RISCV_32
+        { HGATP_MODE_SV32X4, 2, "Sv32x4" }
+#else
+        { HGATP_MODE_SV39X4, 3, "Sv39x4" },
+        { HGATP_MODE_SV48X4, 4, "Sv48x4" },
+        { HGATP_MODE_SV57X4, 5, "Sv57x4" },
+#endif
+    };
+
+    for ( unsigned int mode_idx = ARRAY_SIZE(modes); mode_idx-- > 0; )
+    {
+        unsigned long mode = modes[mode_idx].mode;
+
+        csr_write(CSR_HGATP, MASK_INSR(mode, HGATP_MODE_MASK));
+
+        if ( MASK_EXTR(csr_read(CSR_HGATP), HGATP_MODE_MASK) == mode )
+        {
+            max_gstage_mode = modes[mode_idx];
+
+            break;
+        }
+    }
+
+    if ( max_gstage_mode.mode == HGATP_MODE_OFF )
+        panic("Xen expects that G-stage won't be Bare mode\n");
+
+    printk("Max supported G-stage mode is %s\n", max_gstage_mode.name);
+
+    csr_write(CSR_HGATP, 0);
+
+    /* local_hfence_gvma_all() will be called at the end of guest_mm_init. */
+}
+
+void __init guest_mm_init(void)
+{
+    gstage_mode_detect();
+
+    /*
+     * As gstage_mode_detect() is changing CSR_HGATP, it is necessary to flush
+     * guest TLB because:
+     *
+     * From RISC-V spec:
+     *   Speculative executions of the address-translation algorithm behave as
+     *   non-speculative executions of the algorithm do, except that they must
+     *   not set the dirty bit for a PTE, they must not trigger an exception,
+     *   and they must not create address-translation cache entries if those
+     *   entries would have been invalidated by any SFENCE.VMA instruction
+     *   executed by the hart since the speculative execution of the algorithm
+     *   began.
+     *
+     * Also, despite of the fact here it is mentioned that when V=0 two-stage
+     * address translation is inactivated:
+     *   The current virtualization mode, denoted V, indicates whether the hart
+     *   is currently executing in a guest. When V=1, the hart is either in
+     *   virtual S-mode (VS-mode), or in virtual U-mode (VU-mode) atop a guest
+     *   OS running in VS-mode. When V=0, the hart is either in M-mode, in
+     *   HS-mode, or in U-mode atop an OS running in HS-mode. The
+     *   virtualization mode also indicates whether two-stage address
+     *   translation is active (V=1) or inactive (V=0).
+     * But on the same side, writing to hgatp register activates it:
+     *   The hgatp register is considered active for the purposes of
+     *   the address-translation algorithm unless the effective privilege mode
+     *   is U and hstatus.HU=0.
+     *
+     * Thereby it leaves some room for speculation even in this stage of boot,
+     * so it could be that we polluted local TLB so flush all guest TLB.
+     */
+    local_hfence_gvma_all();
+}
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 483cdd7e17..8f46f1a1de 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -22,6 +22,7 @@
 #include <asm/early_printk.h>
 #include <asm/fixmap.h>
 #include <asm/intc.h>
+#include <asm/p2m.h>
 #include <asm/sbi.h>
 #include <asm/setup.h>
 #include <asm/traps.h>
@@ -148,6 +149,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     console_init_postirq();
 
+    guest_mm_init();
+
     printk("All set up\n");
 
     machine_halt();
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:55:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:55:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188146.1509418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYL0-0007a3-Ju; Tue, 16 Dec 2025 16:55:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188146.1509418; Tue, 16 Dec 2025 16:55:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYL0-0007Zs-H6; Tue, 16 Dec 2025 16:55:50 +0000
Received: by outflank-mailman (input) for mailman id 1188146;
 Tue, 16 Dec 2025 16:55:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wcum=6W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVYKy-0006gk-HY
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:55:48 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 111b0e2f-daa0-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 17:55:46 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-6418738efa0so9619625a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:55:46 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8003cb349csm63169766b.68.2025.12.16.08.55.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:55:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 111b0e2f-daa0-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765904146; x=1766508946; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cc3HXZPlPB/gccG/CezolOSjWVEDuZPosWEfUeOasnw=;
        b=Sc9+AlFxvLfjOakec93bga3+XQh2/o0b/LqctjT9RrOcGxJuZ/0WoxQrezS05PZav6
         XsZVhTa/K5rBHObZDqd47Pithn2tBBuLD56O3P5wG7b/lwBvJnbfefvrcfhgaDKZpnQp
         lCfDg6P8FI1551SkXevKsYf2qk877i9iQtOKL6qZGzgfsL8VaxuLXpmyMmyNcm9+mGYV
         0vgR3FVdcjYKrVM93ruTyXKk5/wljB1LvUqXCrkzD10uyaUU4n/3Qarue2e7rDoiANBq
         r3Y8GcHMlturHJKQNWtWtDQzIhH0SfzrrzcsPmAy5BrrbSYSXk8nqxNDVS/TITtnT1Ue
         dJDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765904146; x=1766508946;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=cc3HXZPlPB/gccG/CezolOSjWVEDuZPosWEfUeOasnw=;
        b=t1hjl8EGcBepUr5LwrYzOi9UkCflwcrKgslVWXE3ybJvHFXt+oRGo4FqIBQ+i6Ckjr
         orFgTggURBbucG1B1JgGJGseGcO88YHifFw8l6Yrrz61zrufZLP+xmMpMAAgzBTNDhDJ
         vw7/UmCAJU7iGO7D3/PkbC8eq6LgIWB2226KZpeVc7u/TfM/VHzqo6lDQg1cz6q4Pcoa
         UJYh651uwM48Uv/pSnUPA1EZhGW1K5xHli2MRw3iw0nKgXXA0F+n6fHqRdnxoiJPs37J
         N86757MD/7Rwfvx9t/S7myziyKK3V/fULSIjKrqsC6iJ9B6wUg+UmEsRYglIw1MSJDeu
         Am4w==
X-Gm-Message-State: AOJu0YyuYUjbiqB7Gc2IGC48DfhDRbhdsP/5+wghanFR2oBsX1RR2Tdm
	0n1jEYDUUizRNLAKmjIMYn0s+IeAuwibEyRLRj8sarEo9w8FUAP8YoSaLAZgkQ==
X-Gm-Gg: AY/fxX6cxfnF9N1Gx0PvA23hmKWPX4B8GPleMl3jiZ9PJrCGbDSp33oaLju6YVnuV91
	9D4nw+9jZGgyiGwsN51EZfTbV6cJUtJ2LiByxvUTdBAvE/tpWVZNIi3gp73F/HY8ZUqS/+0D7j+
	IrhJmVU9Jvq0Ldr3P1cU6uf7IukPh2+5cbMPpVonJFz6qC6viid/RUASVsJsaibIvGqxWCVA+8H
	brwKPqQt5hWv0hU8tayUjKqcYTtYMZw4e/J3dSoy/PZq0oF6XeJqC12LaThIBESojk94XDi9Giu
	5CWuSKdl8XV85wIK7a3TijNGW4K+9qI+vh2y+QzlZE/3falZqOPPn1ATPwu/u6QRQQAtGAylGI4
	ze6LMBQUhCn6ZQPHpe2iShoVWNE60ok9S+amJ4wbKVaBzndh0Ym/J+sUvES5pekodaf3K+fSjf6
	DHKRB4FHtUJvayIs6jLOCObZPahL95k97Z2lgaABxWQ4nvEcl9EW1H0bk=
X-Google-Smtp-Source: AGHT+IFD5kt79BKZYSLc7CDp2O5EY9oTWFy7gFhz9nNEv5BhIsuQ+5wibcyus2cZYZopIQKBHcdYqA==
X-Received: by 2002:a17:907:3f88:b0:b73:1baa:6424 with SMTP id a640c23a62f3a-b7d23d002eamr1538155266b.55.1765904145704;
        Tue, 16 Dec 2025 08:55:45 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 04/19] xen/riscv: construct the P2M pages pool for guests
Date: Tue, 16 Dec 2025 17:55:14 +0100
Message-ID: <684f846bb9b05a37b9650b2e1ccc3ba1b2cc9b10.1765879052.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765879052.git.oleksii.kurochko@gmail.com>
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement p2m_set_allocation() to construct p2m pages pool for guests
based on required number of pages.

This is implemented by:
- Adding a `struct paging_domain` which contains a freelist, a
  counter variable and a spinlock to `struct arch_domain` to
  indicate the free p2m pages and the number of p2m total pages in
  the p2m pages pool.
- Adding a helper `p2m_set_allocation` to set the p2m pages pool
  size. This helper should be called before allocating memory for
  a guest and is called from domain_p2m_set_allocation(), the latter
  is a part of common dom0less code.
- Adding implementation of paging_freelist_adjust() and
  paging_domain_init().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V5-7:
 - Nothing changed. Only rebase.
---
Changes in V4:
 - s/paging_freelist_init/paging_freelist_adjust.
 - Add empty line between definiton of paging_freelist_adjust()
   and paging_domain_init().
 - Update commit message.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v3:
 - Drop usage of p2m_ prefix inside struct paging_domain().
 - Introduce paging_domain_init() to init paging struct.
---
Changes in v2:
 - Drop the comment above inclusion of <xen/event.h> in riscv/p2m.c.
 - Use ACCESS_ONCE() for lhs and rhs for the expressions in
   p2m_set_allocation().
---
 xen/arch/riscv/Makefile             |  1 +
 xen/arch/riscv/include/asm/Makefile |  1 -
 xen/arch/riscv/include/asm/domain.h | 12 ++++++
 xen/arch/riscv/include/asm/paging.h | 13 ++++++
 xen/arch/riscv/p2m.c                | 18 ++++++++
 xen/arch/riscv/paging.c             | 65 +++++++++++++++++++++++++++++
 6 files changed, 109 insertions(+), 1 deletion(-)
 create mode 100644 xen/arch/riscv/include/asm/paging.h
 create mode 100644 xen/arch/riscv/paging.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index c93c837aac..9dde693db4 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -7,6 +7,7 @@ obj-y += intc.o
 obj-y += irq.o
 obj-y += mm.o
 obj-y += p2m.o
+obj-y += paging.o
 obj-y += pt.o
 obj-$(CONFIG_RISCV_64) += riscv64/
 obj-y += sbi.o
diff --git a/xen/arch/riscv/include/asm/Makefile b/xen/arch/riscv/include/asm/Makefile
index bfdf186c68..3824f31c39 100644
--- a/xen/arch/riscv/include/asm/Makefile
+++ b/xen/arch/riscv/include/asm/Makefile
@@ -6,7 +6,6 @@ generic-y += hardirq.h
 generic-y += hypercall.h
 generic-y += iocap.h
 generic-y += irq-dt.h
-generic-y += paging.h
 generic-y += percpu.h
 generic-y += perfc_defn.h
 generic-y += random.h
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index e688980efa..316e7c6c84 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -2,6 +2,8 @@
 #ifndef ASM__RISCV__DOMAIN_H
 #define ASM__RISCV__DOMAIN_H
 
+#include <xen/mm.h>
+#include <xen/spinlock.h>
 #include <xen/xmalloc.h>
 #include <public/hvm/params.h>
 
@@ -24,11 +26,21 @@ struct arch_vcpu {
     struct vcpu_vmid vmid;
 };
 
+struct paging_domain {
+    spinlock_t lock;
+    /* Free pages from the pre-allocated pool */
+    struct page_list_head freelist;
+    /* Number of pages from the pre-allocated pool */
+    unsigned long total_pages;
+};
+
 struct arch_domain {
     struct hvm_domain hvm;
 
     /* Virtual MMU */
     struct p2m_domain p2m;
+
+    struct paging_domain paging;
 };
 
 #include <xen/sched.h>
diff --git a/xen/arch/riscv/include/asm/paging.h b/xen/arch/riscv/include/asm/paging.h
new file mode 100644
index 0000000000..98d8b06d45
--- /dev/null
+++ b/xen/arch/riscv/include/asm/paging.h
@@ -0,0 +1,13 @@
+#ifndef ASM_RISCV_PAGING_H
+#define ASM_RISCV_PAGING_H
+
+#include <asm-generic/paging.h>
+
+struct domain;
+
+int paging_domain_init(struct domain *d);
+
+int paging_freelist_adjust(struct domain *d, unsigned long pages,
+                           bool *preempted);
+
+#endif /* ASM_RISCV_PAGING_H */
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index a6e2456f54..39c84f1a3b 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -12,6 +12,7 @@
 #include <asm/csr.h>
 #include <asm/flushtlb.h>
 #include <asm/p2m.h>
+#include <asm/paging.h>
 #include <asm/riscv_encoding.h>
 #include <asm/vmid.h>
 
@@ -118,8 +119,25 @@ int p2m_init(struct domain *d)
      */
     p2m->domain = d;
 
+    paging_domain_init(d);
+
     rwlock_init(&p2m->lock);
     INIT_PAGE_LIST_HEAD(&p2m->pages);
 
     return 0;
 }
+
+/*
+ * Set the pool of pages to the required number of pages.
+ * Returns 0 for success, non-zero for failure.
+ * Call with d->arch.paging.lock held.
+ */
+int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
+{
+    int rc;
+
+    if ( (rc = paging_freelist_adjust(d, pages, preempted)) )
+        return rc;
+
+    return 0;
+}
diff --git a/xen/arch/riscv/paging.c b/xen/arch/riscv/paging.c
new file mode 100644
index 0000000000..2df8de033b
--- /dev/null
+++ b/xen/arch/riscv/paging.c
@@ -0,0 +1,65 @@
+#include <xen/event.h>
+#include <xen/lib.h>
+#include <xen/mm.h>
+#include <xen/sched.h>
+#include <xen/spinlock.h>
+
+int paging_freelist_adjust(struct domain *d, unsigned long pages,
+                           bool *preempted)
+{
+    struct page_info *pg;
+
+    ASSERT(spin_is_locked(&d->arch.paging.lock));
+
+    for ( ; ; )
+    {
+        if ( d->arch.paging.total_pages < pages )
+        {
+            /* Need to allocate more memory from domheap */
+            pg = alloc_domheap_page(d, MEMF_no_owner);
+            if ( pg == NULL )
+            {
+                printk(XENLOG_ERR "Failed to allocate pages.\n");
+                return -ENOMEM;
+            }
+            ACCESS_ONCE(d->arch.paging.total_pages)++;
+            page_list_add_tail(pg, &d->arch.paging.freelist);
+        }
+        else if ( d->arch.paging.total_pages > pages )
+        {
+            /* Need to return memory to domheap */
+            pg = page_list_remove_head(&d->arch.paging.freelist);
+            if ( pg )
+            {
+                ACCESS_ONCE(d->arch.paging.total_pages)--;
+                free_domheap_page(pg);
+            }
+            else
+            {
+                printk(XENLOG_ERR
+                       "Failed to free pages, freelist is empty.\n");
+                return -ENOMEM;
+            }
+        }
+        else
+            break;
+
+        /* Check to see if we need to yield and try again */
+        if ( preempted && general_preempt_check() )
+        {
+            *preempted = true;
+            return -ERESTART;
+        }
+    }
+
+    return 0;
+}
+
+/* Domain paging struct initialization. */
+int paging_domain_init(struct domain *d)
+{
+    spin_lock_init(&d->arch.paging.lock);
+    INIT_PAGE_LIST_HEAD(&d->arch.paging.freelist);
+
+    return 0;
+}
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:55:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:55:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188145.1509402 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYKz-0007A6-5E; Tue, 16 Dec 2025 16:55:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188145.1509402; Tue, 16 Dec 2025 16:55:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYKz-00079M-1i; Tue, 16 Dec 2025 16:55:49 +0000
Received: by outflank-mailman (input) for mailman id 1188145;
 Tue, 16 Dec 2025 16:55:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wcum=6W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVYKx-0006gk-Lu
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:55:47 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 10823d82-daa0-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 17:55:45 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-64198771a9bso6813009a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:55:45 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8003cb349csm63169766b.68.2025.12.16.08.55.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:55:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 10823d82-daa0-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765904145; x=1766508945; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tZGIljp4NNyE+7irjY7l3LzV9kUxh2j7lezf++r0RAg=;
        b=m6gfNd+TS2Owo8epdafEFMeugy1YWlMbFDO7tayX4AzV9Nu9AxLWwxkgDpdCd6BckB
         EgjYOveP6o/6fnzr/PGCR4NZKgzJf2Rgok4zMc9NwaGn4HqFA3wxFbz6p16yRNozyVnU
         5unlpxfXNYeL6ziDpWvrMJHehUHf1VKPwAdt8Lf+j7QsTdRZmi/yNRFGr1XnbVnonSEm
         I7JMf77aV2gNSogqQL660iOO3W/Leeqy3iVgmkC9Uzoql+wyZjmtMIgjMC+OQqjjOt3t
         xjGURDhRI2Gz0Nih5YoDhwC6hgPJyPfddMeVIQFjPv60ZnnkEd/O2eMaD2rnDMqnV1R+
         mkYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765904145; x=1766508945;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=tZGIljp4NNyE+7irjY7l3LzV9kUxh2j7lezf++r0RAg=;
        b=qmTYj8H5h4VhUGVuGkFESw1UZBRQd7WBoBPGABFrCesFb622wcjksupGfEQaV38Upi
         tqdcgVF4Xc0YVpP8jmbR7JvktceJQ8H0tQcqx+0sLclaDxPj3AMTUaVo2IuoaWJBGglt
         MuN+yjupO4SJ9QfdHCz8BYkJKapRdfKu7nU31DOLpENOIhpO+MJ+jFA5fBqPvQiaOOof
         HDVtjowdl8kIsJRUeR8iOnMtvuGcAnnQ+CexbBVTodFQ+2El5yhQ8qFtdKnZXMwcFopf
         EpfoUpYsmY25YwxD8KOIv4HT9hHLbRYaVqQ9tPXtMxnKRF4dMinS3JIFT/ZbJBUCmCN1
         vtLQ==
X-Gm-Message-State: AOJu0Yxmc1FQNFRfGY/1Ag8Pth68Kd9/RqzXGniHQ079lJ3Rb1jS3Wsp
	RhkiNZ6ml/md4fh4WDBNWB+LpaQxrGBkfzmyuNYv7Wr2sy9LT5mc2iIE/ipq6Q==
X-Gm-Gg: AY/fxX6s8WhltoJ3vlg8HOWfj0z9bgQjhgLBuLPBaxSzF62Xvh3ds+giPdFYwqUWWPR
	ka/jtgAlO6/8tGEsT80u14o727DtEsx2HepWCgay90tkRig/E2YVZYkHBG/vaaoq6UndoRzgtsp
	BtcI5djys0VFZej5GZvZ+rSotYHhrILKEpUgPoeJID7HsErZ7/2BM+eG3CBw1z0sQRCrkgISgdB
	36mS2PsaHxUHNjmT3XW4/uLMPl/MTY6JmDub/Rp4FSbMswXQptk94lNCOiKNfNRqS5JrWzB+Peu
	HyFEJhxK56kZqpYyIYoWw6iRpXUB/N0IvLkLJas0foI8MEt6jyF2EAYCHZvkzuGCYly+qEq2asX
	ZtxqtezHeoqcaAA8eQSH7WuyFb0I+CfyvR3K8TrFz5cunWkjLNE30NaY7aQB325FNmGSoD2U0m+
	V/Sws/eMHZiu+I30L+4SY9hiTxnCfn7VVmR0CMRWPhZYRj4qJhx+c=
X-Google-Smtp-Source: AGHT+IE9H0v/6/3gcQGvq55aH+rbLFfzKNhgLrlYXMXVGe1fUuPnIp9idn/scP4+DQ/TZZkoQaYdpg==
X-Received: by 2002:a17:906:c113:b0:b73:9be1:33ec with SMTP id a640c23a62f3a-b7d236193aamr1474539366b.9.1765904144666;
        Tue, 16 Dec 2025 08:55:44 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 03/19] xen/riscv: introduce things necessary for p2m initialization
Date: Tue, 16 Dec 2025 17:55:13 +0100
Message-ID: <81cf2f714dc7310ad19e77b72c18cc4438f81641.1765879052.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765879052.git.oleksii.kurochko@gmail.com>
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the following things:
- Update p2m_domain structure, which describe per p2m-table state, with:
  - lock to protect updates to p2m.
  - pool with pages used to construct p2m.
  - back pointer to domain structure.
- p2m_init() to initalize members introduced in p2m_domain structure.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V6-7:
 - Nothing changed. Only rebase.
---
Changes in V5:
 - Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V4:
 - Move an introduction of clean_pte member of p2m_domain structure to the
   patch where it is started to be used:
     xen/riscv: add root page table allocation
 - Add prototype of p2m_init() to asm/p2m.h.
---
Changes in V3:
 - s/p2m_type/p2m_types.
 - Drop init. of p2m->clean_pte in p2m_init() as CONFIG_HAS_PASSTHROUGH is
   going to be selected unconditionaly. Plus CONFIG_HAS_PASSTHROUGH isn't
   ready to be used for RISC-V.
   Add compilation error to not forget to init p2m->clean_pte.
 - Move defintion of p2m->domain up in p2m_init().
 - Add iommu_use_hap_pt() when p2m->clean_pte is initialized.
 - Add the comment above p2m_types member of p2m_domain struct.
 - Add need_flush member to p2m_domain structure.
 - Move introduction of p2m_write_(un)lock() and p2m_tlb_flush_sync()
   to the patch where they are really used:
     xen/riscv: implement guest_physmap_add_entry() for mapping GFNs to MFN
 - Add p2m member to arch_domain structure.
 - Drop p2m_types from struct p2m_domain as P2M type for PTE will be stored
   differently.
 - Drop default_access as it isn't going to be used for now.
 - Move defintion of p2m_is_write_locked() to "implement function to map memory
   in guest p2m"  where it is really used.
---
Changes in V2:
 - Use introduced erlier sbi_remote_hfence_gvma_vmid() for proper implementation
   of p2m_force_tlb_flush_sync() as TLB flushing needs to happen for each pCPU
   which potentially has cached a mapping, what is tracked by d->dirty_cpumask.
 - Drop unnecessary blanks.
 - Fix code style for # of pre-processor directive.
 - Drop max_mapped_gfn and lowest_mapped_gfn as they aren't used now.
 - [p2m_init()] Set p2m->clean_pte=false if CONFIG_HAS_PASSTHROUGH=n.
 - [p2m_init()] Update the comment above p2m->domain = d;
 - Drop p2m->need_flush as it seems to be always true for RISC-V and as a
   consequence drop p2m_tlb_flush_sync().
 - Move to separate patch an introduction of root page table allocation.
---
 xen/arch/riscv/include/asm/domain.h |  5 +++++
 xen/arch/riscv/include/asm/p2m.h    | 33 +++++++++++++++++++++++++++++
 xen/arch/riscv/p2m.c                | 20 +++++++++++++++++
 3 files changed, 58 insertions(+)

diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index aac1040658..e688980efa 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -5,6 +5,8 @@
 #include <xen/xmalloc.h>
 #include <public/hvm/params.h>
 
+#include <asm/p2m.h>
+
 struct vcpu_vmid {
     uint64_t generation;
     uint16_t vmid;
@@ -24,6 +26,9 @@ struct arch_vcpu {
 
 struct arch_domain {
     struct hvm_domain hvm;
+
+    /* Virtual MMU */
+    struct p2m_domain p2m;
 };
 
 #include <xen/sched.h>
diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index 3776b98303..239f90622e 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -3,17 +3,48 @@
 #define ASM__RISCV__P2M_H
 
 #include <xen/errno.h>
+#include <xen/mm.h>
+#include <xen/rwlock.h>
+#include <xen/types.h>
 
 #include <asm/page-bits.h>
 
 #define paddr_bits PADDR_BITS
 
+/* Get host p2m table */
+#define p2m_get_hostp2m(d) (&(d)->arch.p2m)
+
 struct gstage_mode_desc {
     unsigned char mode;
     unsigned int paging_levels;
     char name[8];
 };
 
+/* Per-p2m-table state */
+struct p2m_domain {
+    /*
+     * Lock that protects updates to the p2m.
+     */
+    rwlock_t lock;
+
+    /* Pages used to construct the p2m */
+    struct page_list_head pages;
+
+    /* Back pointer to domain */
+    struct domain *domain;
+
+    /*
+     * P2M updates may required TLBs to be flushed (invalidated).
+     *
+     * Flushes may be deferred by setting 'need_flush' and then flushing
+     * when the p2m write lock is released.
+     *
+     * If an immediate flush is required (e.g, if a super page is
+     * shattered), call p2m_tlb_flush_sync().
+     */
+    bool need_flush;
+};
+
 /*
  * List of possible type for each page in the p2m entry.
  * The number of available bit per page in the pte for this purpose is 2 bits.
@@ -97,6 +128,8 @@ static inline bool arch_acquire_resource_check(struct domain *d)
 void guest_mm_init(void);
 unsigned char get_max_supported_mode(void);
 
+int p2m_init(struct domain *d);
+
 #endif /* ASM__RISCV__P2M_H */
 
 /*
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 4e84acaafd..a6e2456f54 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -3,6 +3,10 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/macros.h>
+#include <xen/mm.h>
+#include <xen/paging.h>
+#include <xen/rwlock.h>
+#include <xen/sched.h>
 #include <xen/sections.h>
 
 #include <asm/csr.h>
@@ -103,3 +107,19 @@ void __init guest_mm_init(void)
      */
     local_hfence_gvma_all();
 }
+
+int p2m_init(struct domain *d)
+{
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
+
+    /*
+     * "Trivial" initialisation is now complete.  Set the backpointer so the
+     * users of p2m could get an access to domain structure.
+     */
+    p2m->domain = d;
+
+    rwlock_init(&p2m->lock);
+    INIT_PAGE_LIST_HEAD(&p2m->pages);
+
+    return 0;
+}
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:55:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:55:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188151.1509459 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYL4-0008VT-JZ; Tue, 16 Dec 2025 16:55:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188151.1509459; Tue, 16 Dec 2025 16:55:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYL4-0008UC-Aa; Tue, 16 Dec 2025 16:55:54 +0000
Received: by outflank-mailman (input) for mailman id 1188151;
 Tue, 16 Dec 2025 16:55:52 +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
 <SRS0=wcum=6W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVYL2-0006ge-NV
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:55:52 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1429979d-daa0-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 17:55:51 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b7633027cb2so850846166b.1
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:55:51 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8003cb349csm63169766b.68.2025.12.16.08.55.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:55:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1429979d-daa0-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765904151; x=1766508951; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=D9q+Ut/kN8/CLp796BltcYgjUpr0SgqZuKWHbqLwDf0=;
        b=N+hTTDqizG3Xk9yECt/cWjC0z5y/GATH5+MhB/VZrgAcDaLY1HqNpa3grUMWPInMu3
         A2ybBa0KGY2GW0wfskan0wT7GPxoT1H0Bm/3t5krptcTIdkCFxSHJaBdpZWNhwizlRRM
         HNaaztQ4bm4uKLXwk0KQAPeHyMZNHHsu07Zf/eS5rXWjTIlL3tUxl1Gw/F/ON14kBf0q
         NB3aKSUPj8zKMs38EX5lrB6+RXgC+KWpEpyIvH7LQIibHmTt/B8u/pRIder43pCjKxtl
         KjneL1bxq/0ahaY4nQ2ipIIBev8FAfg6T0e++FwiqpQDRpLuy5vzrnp7VKqIJIS3y9//
         qBLA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765904151; x=1766508951;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=D9q+Ut/kN8/CLp796BltcYgjUpr0SgqZuKWHbqLwDf0=;
        b=L1QPKWo40LsVjSDIfdvmk+6p4T8kq8iBQEHSJbONf9HhPXsP7apmLDFI7iQ7eJdUDd
         jVIMquFS29+EMs88vJNShsdqDRv+xTswh5PdS2VCZ0lJVZ1s4i9vuFJ+xkZYtKCZBcaN
         SRUPs7FjoCPgBWPYyTEJorwApx0uV7eQM6PD71sVYaSc7U8/F5KonvJmMoijC5zxsgoI
         cbjK6JSJaawTW+7HAWbRnnucIgA/5dn1k+yECq3FSs0H+pF30FZcKsErdDhjwgUXXY+u
         95qvvY8hjKVa3hL0Na9i0T8ag+Rzyhq9JAAuAVLZ8nw+Mo9JS5XiwNaEklADgSQr3G8z
         gzWw==
X-Gm-Message-State: AOJu0YzPwIixf3EjJwACvd9N3+868aX7pptE5BrEMagsFRwaMHkAJThF
	fZJA9BRH9QEcuuxoB363e6uo9hhIh9fHrYXNSiSKbnFEYBr4yEaPrtjxOGjRbQ==
X-Gm-Gg: AY/fxX7Q5BX9zdSw3wRdvVuqMq+uRFcFyoEUavluYKtnp3PHF/3SYFJUxBIu4VdCRIc
	9RRXnSnogQsyiHETJ27/EcDI+TYghTsH/ZRTeAoy/NTIxEHXQhgX0ciBfWfgfK+HvdSmcQ3G720
	IAVsFAs90aojFIjEKWbOgRMgyhLdZwrpMwUvK+Fq2oTLcSASadwFTrfyT7w4slYlLfdTyBliPak
	pCisGHF79kNRH/TTCuK7YavA5lSH5H4B2eRCwVYDhyweB6bN/3IzEUZqW/PDAp/SyJJFmlsKEcO
	DqK9Ch1kCMQTR8r6zujlDfIHp5m1PdJ5qm4SRhukVFvdI3YcRZx/PYNpuMo5/gflYo0m7lDxyoW
	p20+4CjCIQ5P0vOefQvhemOuuRVO6tsTAMMkBl7GKW9IgL0gvqQo0xE1o92GI2c0FLPnmsCVTrS
	FgScW677SQoeuSxjZudeDIoI5VF1R4Q/RYu/Zciynv8Uvh1FcEBMFFu3Q=
X-Google-Smtp-Source: AGHT+IELrv9Cns7UgrX3OhP5yEyTJsw4P/GSTm2HyE33iHHvykApawyzsibrgxMIAuOs1ZkHFC6x0w==
X-Received: by 2002:a17:907:9617:b0:b76:8163:f1f8 with SMTP id a640c23a62f3a-b7d23a7d742mr1489278366b.53.1765904150787;
        Tue, 16 Dec 2025 08:55:50 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 09/19] xen/riscv: implement function to map memory in guest p2m
Date: Tue, 16 Dec 2025 17:55:19 +0100
Message-ID: <fe3f30db71034c9b7d2aff57aba60fe5d12ea790.1765879052.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765879052.git.oleksii.kurochko@gmail.com>
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement map_regions_p2mt() to map a region in the guest p2m with
a specific p2m type. The memory attributes will be derived from the
p2m type. This function is used in dom0less common
code.

To implement it, introduce:
- p2m_write_(un)lock() to ensure safe concurrent updates to the P2M.
  As part of this change, introduce p2m_tlb_flush_sync() and
  p2m_force_tlb_flush_sync().
- A stub for p2m_set_range() to map a range of GFNs to MFNs.
- p2m_insert_mapping().
- p2m_is_write_locked().

Drop guest_physmap_add_entry() and call map_regions_p2mt() directly
from guest_physmap_add_page(), making guest_physmap_add_entry()
unnecessary.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V6-7:
 - Nothing changed. Only Rebase.
---
Changes in V5:
 - Put "p2m->need_flush = false;" before TLB flush.
 - Correct the comment above p2m_write_unlock().
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V4:
 - Update the comment above declaration of map_regions_p2mt():
   s/guest p2m/guest's hostp2m.
 - Add const for p2m_force_tlb_flush_sync()'s local variable `d`.
 - Stray 'w' in the comment inside p2m_write_unlock().
 - Drop p2m_insert_mapping() and leave only map_regions_p2mt() as it
   is just re-use insert_mapping().
 - Rename p2m_force_tlb_flush_sync() to p2m_tlb_flush().
 - Update prototype of p2m_is_write_locked() to return bool instead of
   int.
---
Changes in v3:
 - Introudce p2m_write_lock() and p2m_is_write_locked().
 - Introduce p2m_force_tlb_flush_sync() and p2m_flush_tlb() to flush TLBs
   after p2m table update.
 - Change an argument of p2m_insert_mapping() from struct domain *d to
   p2m_domain *p2m.
 - Drop guest_physmap_add_entry() and use map_regions_p2mt() to define
   guest_physmap_add_page().
 - Add declaration of map_regions_p2mt() to asm/p2m.h.
 - Rewrite commit message and subject.
 - Drop p2m_access_t related stuff.
 - Add defintion of  p2m_is_write_locked().
---
Changes in v2:
 - This changes were part of "xen/riscv: implement p2m mapping functionality".
   No additional signigicant changes were done.
---
 xen/arch/riscv/include/asm/p2m.h | 31 ++++++++++++-----
 xen/arch/riscv/p2m.c             | 60 ++++++++++++++++++++++++++++++++
 2 files changed, 82 insertions(+), 9 deletions(-)

diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index 1c89838408..9acd6a64a8 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -128,21 +128,22 @@ static inline int guest_physmap_mark_populate_on_demand(struct domain *d,
     return -EOPNOTSUPP;
 }
 
-static inline int guest_physmap_add_entry(struct domain *d,
-                                          gfn_t gfn, mfn_t mfn,
-                                          unsigned long page_order,
-                                          p2m_type_t t)
-{
-    BUG_ON("unimplemented");
-    return -EINVAL;
-}
+/*
+ * Map a region in the guest's hostp2m p2m with a specific p2m type.
+ * The memory attributes will be derived from the p2m type.
+ */
+int map_regions_p2mt(struct domain *d,
+                     gfn_t gfn,
+                     unsigned long nr,
+                     mfn_t mfn,
+                     p2m_type_t p2mt);
 
 /* Untyped version for RAM only, for compatibility */
 static inline int __must_check
 guest_physmap_add_page(struct domain *d, gfn_t gfn, mfn_t mfn,
                        unsigned int page_order)
 {
-    return guest_physmap_add_entry(d, gfn, mfn, page_order, p2m_ram_rw);
+    return map_regions_p2mt(d, gfn, BIT(page_order, UL), mfn, p2m_ram_rw);
 }
 
 static inline mfn_t gfn_to_mfn(struct domain *d, gfn_t gfn)
@@ -166,6 +167,18 @@ unsigned char get_max_supported_mode(void);
 
 int p2m_init(struct domain *d);
 
+static inline void p2m_write_lock(struct p2m_domain *p2m)
+{
+    write_lock(&p2m->lock);
+}
+
+void p2m_write_unlock(struct p2m_domain *p2m);
+
+static inline bool p2m_is_write_locked(struct p2m_domain *p2m)
+{
+    return rw_is_write_locked(&p2m->lock);
+}
+
 unsigned long construct_hgatp(const struct p2m_domain *p2m, uint16_t vmid);
 
 #endif /* ASM__RISCV__P2M_H */
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index d14757331f..8bb197f9b3 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -110,6 +110,41 @@ void __init guest_mm_init(void)
     local_hfence_gvma_all();
 }
 
+/*
+ * Force a synchronous P2M TLB flush.
+ *
+ * Must be called with the p2m lock held.
+ */
+static void p2m_tlb_flush(struct p2m_domain *p2m)
+{
+    const struct domain *d = p2m->domain;
+
+    ASSERT(p2m_is_write_locked(p2m));
+
+    p2m->need_flush = false;
+
+    sbi_remote_hfence_gvma(d->dirty_cpumask, 0, 0);
+}
+
+void p2m_tlb_flush_sync(struct p2m_domain *p2m)
+{
+    if ( p2m->need_flush )
+        p2m_tlb_flush(p2m);
+}
+
+/* Unlock the P2M and do a P2M TLB flush if necessary */
+void p2m_write_unlock(struct p2m_domain *p2m)
+{
+    /*
+     * The final flush is done with the P2M write lock taken to avoid
+     * someone else modifying the P2M before the TLB invalidation has
+     * completed.
+     */
+    p2m_tlb_flush_sync(p2m);
+
+    write_unlock(&p2m->lock);
+}
+
 static void clear_and_clean_page(struct page_info *page, bool clean_dcache)
 {
     void *p = __map_domain_page(page);
@@ -238,3 +273,28 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
 
     return rc;
 }
+
+static int p2m_set_range(struct p2m_domain *p2m,
+                         gfn_t sgfn,
+                         unsigned long nr,
+                         mfn_t smfn,
+                         p2m_type_t t)
+{
+    return -EOPNOTSUPP;
+}
+
+int map_regions_p2mt(struct domain *d,
+                     gfn_t gfn,
+                     unsigned long nr,
+                     mfn_t mfn,
+                     p2m_type_t p2mt)
+{
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
+    int rc;
+
+    p2m_write_lock(p2m);
+    rc = p2m_set_range(p2m, gfn, nr, mfn, p2mt);
+    p2m_write_unlock(p2m);
+
+    return rc;
+}
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:55:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:55:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188154.1509486 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYL8-0000ys-0I; Tue, 16 Dec 2025 16:55:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188154.1509486; Tue, 16 Dec 2025 16:55:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYL7-0000y1-OH; Tue, 16 Dec 2025 16:55:57 +0000
Received: by outflank-mailman (input) for mailman id 1188154;
 Tue, 16 Dec 2025 16:55:55 +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
 <SRS0=wcum=6W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVYL5-0006ge-Nu
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:55:55 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 15a7f5ba-daa0-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 17:55:54 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b7cf4a975d2so834784266b.2
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:55:54 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8003cb349csm63169766b.68.2025.12.16.08.55.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:55:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 15a7f5ba-daa0-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765904153; x=1766508953; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=v6J9Xrxco4ykuJgJHFWv0at18cn+lsph96Vq/LbI/yA=;
        b=Nhd609uHgpEaUz30gDI2nyd5qbiGwsxU2llDFRIaHIvU23utjF07Zg5ud1cZXSZg7m
         pn0WvlrAqCWn0MQ7TJOhiUqVHWVHAsvNsXI8Qym1XRKLYt7p2Ia7DKoTUT9/h6mrd+zW
         LvoApMwWl1bGX1+bNdvMJUVRCjT181UD/tMTNTSgTwSmA5HK/hhQLgnGqmlGgrNPcXjw
         W6NzpFPQKksGn7aJjz3FXZqfzZx2iY0FSacq5UXQQr/HUpGpDW6VTcFqzPWpfFzNKOVK
         8MEywqxyhPKLRaHW/wshG2rRg+r92sc7xsmKe20L08+UA0bFh4Hssv/7s94R2J5rJjXK
         d5Yw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765904153; x=1766508953;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=v6J9Xrxco4ykuJgJHFWv0at18cn+lsph96Vq/LbI/yA=;
        b=dBKM/BiPchdc1fwG4rS9REY2C/s6c4Oi8hATWrVIgtbHVhhX5kN2HXZZdENn8n6PF8
         Sz0CEHGVDuRf51p55Sv8bBcTbj0o9RLFUfNtENmewWtzRbLRTjA7JNN0mWut6owsGkJm
         mqlU1RnCLag0+ROUsHJ75Asz6NCYxYEZKKNSMOeylidmZ3ZmNSx5xkSPCcLhnO2hh/9B
         nLRU2UKLdldo6Phb23ojpQszBMSLujhaGV8vPAf0ju52BqbYf6P2O9Hwa2vRgPDw6p62
         NeT01/qNJvfoHuHNkH4imjPHNzVn1QJA7yRHkAZwTC9uqj6zwUz1/dlKRbElXLbxEIEl
         Uf1Q==
X-Gm-Message-State: AOJu0YwHtREIHZRiswWdQ9htYA+e55uDLBcFSODEpBFdfIjCpmrmSpy/
	W9X2ItFdyz0JJSZ+Lrq5Z+3LqRaX85Pl10aTO0gNav1+iJw/iJFXv6XYUDux7g==
X-Gm-Gg: AY/fxX5vuIPIioJ1UF7Ctk+rvd7W6+QPOUUsW5uDx+QlzVEpudkxtZJmG2/Li8g6ckM
	1MhDjPDDp8zVU7xNv1aYmVEUnFuL7sWbnM8VAFZJQ3bdhDQkbJv7CKK91fLOJ9qqZa5m6kLq+KW
	0hyvehMxAA7P9w7b4kyrYRzQzQ88VSv3qLxwMQUBlQy7odRjWTpkygL2kkisIBhkD3DzX4AFCAB
	7iDokbFO3dzW396q/PxGFqE7h0G172MyhFpUPWnZLhdR32lMfJ2KyJJEviqYk9TbSG2Zy+4HdpC
	5Tm2SLGXRcKkFBQLunjshwoBlAnA4miJUXZJhp+sMSDm7QUqIQvZTav/FMpu3RywAbyVhdmvXxB
	hFktvTAKgQLsC9JITf0uF/PDA0p5DHTTI6qdCxk9wXG7NFTK+FyUIs01LRona4sqGibdG6YEOm7
	O0pbR9Y1nEU++7T02mrL+YPMEy1EACRRErqir9VDkr3lPZQZTw0k0=
X-Google-Smtp-Source: AGHT+IHLXAmSgI8gda+I/vP6QGjaJE3S6kT/o4epkJdhmPplKOxSb9TSnagKIlVdkiz8ZD+m0uIZDQ==
X-Received: by 2002:a17:907:3dab:b0:b7a:72bd:ac5d with SMTP id a640c23a62f3a-b7d235cfe63mr1573820166b.13.1765904153180;
        Tue, 16 Dec 2025 08:55:53 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 11/19] xen/riscv: Implement p2m_free_subtree() and related helpers
Date: Tue, 16 Dec 2025 17:55:21 +0100
Message-ID: <3d6c214fb75c1a4fd354e1d89de7cd19404851b3.1765879052.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765879052.git.oleksii.kurochko@gmail.com>
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This patch introduces a working implementation of p2m_free_subtree() for RISC-V
based on ARM's implementation of p2m_free_entry(), enabling proper cleanup
of page table entries in the P2M (physical-to-machine) mapping.

Only few things are changed:
- Introduce and use p2m_get_type() to get a type of p2m entry as
  RISC-V's PTE doesn't have enough space to store all necessary types so
  a type is stored outside PTE. But, at the moment, handle only types
  which fit into PTE's bits.

Key additions include:
- p2m_free_subtree(): Recursively frees page table entries at all levels. It
  handles both regular and superpage mappings and ensures that TLB entries
  are flushed before freeing intermediate tables.
- p2m_put_page() and helpers:
  - p2m_put_4k_page(): Clears GFN from xenheap pages if applicable.
  - p2m_put_2m_superpage(): Releases foreign page references in a 2MB
    superpage.
  - p2m_get_type(): Extracts the stored p2m_type from the PTE bits.
- p2m_free_page(): Returns a page to a domain's freelist.
- Introduce p2m_is_foreign() and connected to it things.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V7:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V6:
 - Use PTE_RSW instead of 0x300 in the definition of P2M_TYPE_PTE_BITS_MASK.
 - Optimize a if-condtion of p2m_free_subtree() at the start
   of the function to avoid unnessary checks.
 - Change P2M_PAGETABLE_ENTRIES(1) to PAGETABLE_ENTRIES in p2m_put_2m_superpage() as it is expected be the same and in the 
 cae of PAGETABLE_ENTRIES it won't need to update prototypes because
 of one macro.
 - Drop the comment above p2m_put_4k_page() and p2m_put_2m_superpage().
 - Move introduction of pte_is_superpage() to "xen/riscv: Implement superpage splitting for p2m mappings" as it is starting to be used there.
---
Changes in V5:
 - Rewrite the comment inside p2m_put_foreign_page().
 - s/assert_failed/ASSERT_UNREACHABLE.
 - Use p2mt variable when p2m_free_subtree() is called intead of
   p2m_get_type(entry).
 - Update the commit message: drop info about defintion of XEN_PT_ENTRIES
 - Drop also defintion of XEN_PT_ENTRIES as the macro isn't used anymore.
 - Drop ACCESS_ONCE() for paging_free_page() as it is redundant in the
   case when a code is wrapped by a spinlock.
---
Changes in V4:
 - Stray blanks.
 - Implement arch_flush_tlb_mask() to make the comment in p2m_put_foreign()
   clear and explicit.
 - Update the comment above p2m_is_ram() in p2m_put_4k_page() with an explanation
   why p2m_is_ram() is used.
 - Add a type check inside p2m_put_2m_superpage().
 - Swap two conditions around in p2m_free_subtree():
     if ( (level == 0) || pte_is_superpage(entry, level) )
 - Add ASSERT() inside p2m_free_subtree() to check that level is <= 2; otherwise,
   it could consume a lot of time and big memory usage because of recursion.
 - Drop page_list_del() before p2m_free_page() as page_list_del() is called
   inside p2m_free_page().
 - Update p2m_freelist's total_pages when a page is added to p2m_freelist in
   paging_free_page().
 - Introduce P2M_SUPPORTED_LEVEL_MAPPING and use it in ASSERTs() which check
   supported level.
 - Use P2M_PAGETABLE_ENTRIES as XEN_PT_ENTRIES
   doesn't takeinto  into acount that G stage root page table is
   extended by 2 bits.
 - Update prototype of p2m_put_page() to not have unnecessary changes later.
---
Changes in V3:
 - Use p2m_tlb_flush_sync(p2m) instead of p2m_force_tlb_flush_sync() in
   p2m_free_subtree().
 - Drop p2m_is_valid() implementation as pte_is_valid() is going to be used
   instead.
 - Drop p2m_is_superpage() and introduce pte_is_superpage() instead.
 - s/p2m_free_entry/p2m_free_subtree.
 - s/p2m_type_radix_get/p2m_get_type.
 - Update implementation of p2m_get_type() to get type both from PTE bits,
   other cases will be covered in a separate patch. This requires an
   introduction of new P2M_TYPE_PTE_BITS_MASK macros.
 - Drop p2m argument of p2m_get_type() as it isn't needed anymore.
 - Put cheapest checks first in p2m_is_superpage().
 - Use switch() in p2m_put_page().
 - Update the comment in p2m_put_foreign_page().
 - Code style fixes.
 - Move p2m_foreign stuff to this commit.
 - Drop p2m argument of p2m_put_page() as itsn't used anymore.
---
Changes in V2:
 - New patch. It was a part of 2ma big patch "xen/riscv: implement p2m mapping
   functionality" which was splitted to smaller.
 - s/p2m_is_superpage/p2me_is_superpage.
---
 xen/arch/riscv/include/asm/flushtlb.h |   6 +-
 xen/arch/riscv/include/asm/p2m.h      |  15 +++
 xen/arch/riscv/include/asm/paging.h   |   2 +
 xen/arch/riscv/p2m.c                  | 148 +++++++++++++++++++++++++-
 xen/arch/riscv/paging.c               |   8 ++
 xen/arch/riscv/stubs.c                |   5 -
 6 files changed, 176 insertions(+), 8 deletions(-)

diff --git a/xen/arch/riscv/include/asm/flushtlb.h b/xen/arch/riscv/include/asm/flushtlb.h
index e70badae0c..ab32311568 100644
--- a/xen/arch/riscv/include/asm/flushtlb.h
+++ b/xen/arch/riscv/include/asm/flushtlb.h
@@ -41,8 +41,10 @@ static inline void page_set_tlbflush_timestamp(struct page_info *page)
     BUG_ON("unimplemented");
 }
 
-/* Flush specified CPUs' TLBs */
-void arch_flush_tlb_mask(const cpumask_t *mask);
+static inline void arch_flush_tlb_mask(const cpumask_t *mask)
+{
+    sbi_remote_hfence_gvma(mask, 0, 0);
+}
 
 #endif /* ASM__RISCV__FLUSHTLB_H */
 
diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index fa55d8a3bc..b48693a2b4 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -111,6 +111,8 @@ typedef enum {
     p2m_mmio_direct_io, /* Read/write mapping of genuine Device MMIO area,
                            PTE_PBMT_IO will be used for such mappings */
     p2m_ext_storage,    /* Following types'll be stored outsude PTE bits: */
+    p2m_map_foreign_rw, /* Read/write RAM pages from foreign domain */
+    p2m_map_foreign_ro, /* Read-only RAM pages from foreign domain */
 
     /* Sentinel — not a real type, just a marker for comparison */
     p2m_first_external = p2m_ext_storage,
@@ -121,15 +123,28 @@ static inline p2m_type_t arch_dt_passthrough_p2m_type(void)
     return p2m_mmio_direct_io;
 }
 
+/*
+ * Bits 8 and 9 are reserved for use by supervisor software;
+ * the implementation shall ignore this field.
+ * We are going to use to save in these bits frequently used types to avoid
+ * get/set of a type from radix tree.
+ */
+#define P2M_TYPE_PTE_BITS_MASK PTE_RSW
+
 /* We use bitmaps and mask to handle groups of types */
 #define p2m_to_mask(t) BIT(t, UL)
 
 /* RAM types, which map to real machine frames */
 #define P2M_RAM_TYPES (p2m_to_mask(p2m_ram_rw))
 
+/* Foreign mappings types */
+#define P2M_FOREIGN_TYPES (p2m_to_mask(p2m_map_foreign_rw) | \
+                           p2m_to_mask(p2m_map_foreign_ro))
+
 /* Useful predicates */
 #define p2m_is_ram(t) (p2m_to_mask(t) & P2M_RAM_TYPES)
 #define p2m_is_any_ram(t) (p2m_to_mask(t) & P2M_RAM_TYPES)
+#define p2m_is_foreign(t) (p2m_to_mask(t) & P2M_FOREIGN_TYPES)
 
 #include <xen/p2m-common.h>
 
diff --git a/xen/arch/riscv/include/asm/paging.h b/xen/arch/riscv/include/asm/paging.h
index 01be45528f..fe462be223 100644
--- a/xen/arch/riscv/include/asm/paging.h
+++ b/xen/arch/riscv/include/asm/paging.h
@@ -13,4 +13,6 @@ int paging_freelist_adjust(struct domain *d, unsigned long pages,
 int paging_ret_to_domheap(struct domain *d, unsigned int nr_pages);
 int paging_refill_from_domheap(struct domain *d, unsigned int nr_pages);
 
+void paging_free_page(struct domain *d, struct page_info *pg);
+
 #endif /* ASM_RISCV_PAGING_H */
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index c23926933f..9ab7262d70 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -356,6 +356,16 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
     return rc;
 }
 
+static p2m_type_t p2m_get_type(const pte_t pte)
+{
+    p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
+
+    if ( type == p2m_ext_storage )
+        panic("unimplemented\n");
+
+    return type;
+}
+
 static inline void p2m_write_pte(pte_t *p, pte_t pte, bool clean_cache)
 {
     write_pte(p, pte);
@@ -412,11 +422,147 @@ static int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,
     return P2M_TABLE_MAP_NONE;
 }
 
+static void p2m_put_foreign_page(struct page_info *pg)
+{
+    /*
+     * It’s safe to call put_page() here because arch_flush_tlb_mask()
+     * will be invoked if the page is reallocated, which will trigger a
+     * flush of the guest TLBs.
+     */
+    put_page(pg);
+}
+
+static void p2m_put_4k_page(mfn_t mfn, p2m_type_t type)
+{
+    /* TODO: Handle other p2m types */
+
+    if ( p2m_is_foreign(type) )
+    {
+        ASSERT(mfn_valid(mfn));
+        p2m_put_foreign_page(mfn_to_page(mfn));
+    }
+}
+
+static void p2m_put_2m_superpage(mfn_t mfn, p2m_type_t type)
+{
+    struct page_info *pg;
+    unsigned int i;
+
+    /* TODO: Handle other p2m types */
+    if ( !p2m_is_foreign(type) )
+        return;
+
+    ASSERT(mfn_valid(mfn));
+
+    pg = mfn_to_page(mfn);
+
+    /*
+     * PAGETABLE_ENTRIES is used instead of P2M_PAGETABLE_ENTRIES(1) because
+     * they are expected to be identical (this is verified in calc_offset()).
+     * This avoids having to pass p2m_domain here and throughout the call stack
+     * above solely for the sake of one macro.
+     */
+    for ( i = 0; i < PAGETABLE_ENTRIES; i++, pg++ )
+        p2m_put_foreign_page(pg);
+}
+
+static void p2m_put_page(const pte_t pte, unsigned int level, p2m_type_t p2mt)
+{
+    mfn_t mfn = pte_get_mfn(pte);
+
+    ASSERT(pte_is_valid(pte));
+
+    /*
+     * TODO: Currently we don't handle level 2 super-page, Xen is not
+     * preemptible and therefore some work is needed to handle such
+     * superpages, for which at some point Xen might end up freeing memory
+     * and therefore for such a big mapping it could end up in a very long
+     * operation.
+     */
+    switch ( level )
+    {
+    case 1:
+        return p2m_put_2m_superpage(mfn, p2mt);
+
+    case 0:
+        return p2m_put_4k_page(mfn, p2mt);
+
+    default:
+        ASSERT_UNREACHABLE();
+        break;
+    }
+}
+
+static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg)
+{
+    page_list_del(pg, &p2m->pages);
+
+    paging_free_page(p2m->domain, pg);
+}
+
 /* Free pte sub-tree behind an entry */
 static void p2m_free_subtree(struct p2m_domain *p2m,
                              pte_t entry, unsigned int level)
 {
-    panic("%s: hasn't been implemented yet\n", __func__);
+    unsigned int i;
+    pte_t *table;
+    mfn_t mfn;
+    struct page_info *pg;
+
+    /*
+     * Check if the level is valid: only 4K - 2M - 1G mappings are supported.
+     * To support levels > 2, the implementation of p2m_free_subtree() would
+     * need to be updated, as the current recursive approach could consume
+     * excessive time and memory.
+     */
+    ASSERT(level <= P2M_MAX_SUPPORTED_LEVEL_MAPPING);
+
+    /* Nothing to do if the entry is invalid. */
+    if ( !pte_is_valid(entry) )
+        return;
+
+    if ( pte_is_mapping(entry) )
+    {
+        p2m_type_t p2mt = p2m_get_type(entry);
+
+#ifdef CONFIG_IOREQ_SERVER
+        /*
+         * If this gets called then either the entry was replaced by an entry
+         * with a different base (valid case) or the shattering of a superpage
+         * has failed (error case).
+         * So, at worst, the spurious mapcache invalidation might be sent.
+         */
+        if ( p2m_is_ram(p2mt) &&
+             domain_has_ioreq_server(p2m->domain) )
+            ioreq_request_mapcache_invalidate(p2m->domain);
+#endif
+
+        p2m_put_page(entry, level, p2mt);
+
+        return;
+    }
+
+    table = map_domain_page(pte_get_mfn(entry));
+
+    for ( i = 0; i < P2M_PAGETABLE_ENTRIES(p2m, level); i++ )
+        p2m_free_subtree(p2m, table[i], level - 1);
+
+    unmap_domain_page(table);
+
+    /*
+     * Make sure all the references in the TLB have been removed before
+     * freing the intermediate page table.
+     * XXX: Should we defer the free of the page table to avoid the
+     * flush?
+     */
+    p2m_tlb_flush_sync(p2m);
+
+    mfn = pte_get_mfn(entry);
+    ASSERT(mfn_valid(mfn));
+
+    pg = mfn_to_page(mfn);
+
+    p2m_free_page(p2m, pg);
 }
 
 /* Insert an entry in the p2m */
diff --git a/xen/arch/riscv/paging.c b/xen/arch/riscv/paging.c
index d401ddc34e..09631c9894 100644
--- a/xen/arch/riscv/paging.c
+++ b/xen/arch/riscv/paging.c
@@ -109,6 +109,14 @@ int paging_ret_to_domheap(struct domain *d, unsigned int nr_pages)
     return 0;
 }
 
+void paging_free_page(struct domain *d, struct page_info *pg)
+{
+    spin_lock(&d->arch.paging.lock);
+    page_list_add_tail(pg, &d->arch.paging.freelist);
+    d->arch.paging.total_pages++;
+    spin_unlock(&d->arch.paging.lock);
+}
+
 /* Domain paging struct initialization. */
 int paging_domain_init(struct domain *d)
 {
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index fe7d85ee1d..164fc091b2 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -65,11 +65,6 @@ int arch_monitor_domctl_event(struct domain *d,
 
 /* smp.c */
 
-void arch_flush_tlb_mask(const cpumask_t *mask)
-{
-    BUG_ON("unimplemented");
-}
-
 void smp_send_event_check_mask(const cpumask_t *mask)
 {
     BUG_ON("unimplemented");
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:55:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:55:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188156.1509494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYL9-0001Bd-4S; Tue, 16 Dec 2025 16:55:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188156.1509494; Tue, 16 Dec 2025 16:55:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYL8-0001Aw-S7; Tue, 16 Dec 2025 16:55:58 +0000
Received: by outflank-mailman (input) for mailman id 1188156;
 Tue, 16 Dec 2025 16:55:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wcum=6W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVYL7-0006gk-CD
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:55:57 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 16347a73-daa0-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 17:55:55 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-b7277324054so790173966b.0
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:55:55 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8003cb349csm63169766b.68.2025.12.16.08.55.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:55:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 16347a73-daa0-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765904154; x=1766508954; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sC4ST+8s58ZroxtiJdKvQ99E8jdG/h4GfiwJOt3wiYE=;
        b=F6E6iV1oUMDTJ2hpbNw8mb+Xyj4ryAlAdNNBD5jCD9RAtverEU+R62EDtyjVXz9qEV
         ABdGM7AxPiVB0GV1BHmXbq4ovKd0jbDs8XYQOy9v5JqIXItYptlCV12UQIprH9VVFjar
         0IHYAu/YbwreDg2qYb3FKnikPfUbvn8hWXnab24vLUmzBrxwWN62t5iYJm+nv8E/cWgf
         KS2MpFPFx5PwIQuBX6lbsZVkL3qrd6RmrwrpskIEFU7tgXO5mQDvjySpeDyERq0ChhYa
         q9xgMKyxf8U/+p1rkAP9ujpCB002ewpoxaGN26qmRqfMonMSGZyIGxQiTZHP69903UI+
         OghA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765904154; x=1766508954;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=sC4ST+8s58ZroxtiJdKvQ99E8jdG/h4GfiwJOt3wiYE=;
        b=sIs/xG1XDzMUm8uO9HkPuehmxyIuirk+o8eKhFPOjJ3dk5/qKIp62NmlsnGZcbVJsy
         GRPymf0WNEjfBfLG9jyfxFKW+5ddClWaEJo4eyxT6bxMXkbnyIY+FgU99qaI72IE4gSg
         2wMbBhtqpiMB0If409etvbWN6v48bPwgIPk7L0YyKU4YmEBn6rwAk+GVISJ9ggfP10ra
         noer+GPeOS47K7/lpYj+bWNZokYklmp3sUVSb2bne+3/fAyjlAueSapWm19S5pW+FmWV
         HQJkAVh4SUK7tkmarCRaoP8vffM2lMB4GCAWfmsHtEroG/uo+cZDx+I9MCHI6M+fFqtM
         7HUA==
X-Gm-Message-State: AOJu0Yxq6ZvdakpGSBC7Yz1NzOQmeM4mt5mnJE/ZokPirZ/5bfE00YIq
	oK+ixRIPgmwe60HT7P6yhMaCCeKtw38tbFF2dMsiyAQl37Y6Hmz2jzDS4ETx2w==
X-Gm-Gg: AY/fxX6sxFYss5AMdnTyFALOQMIhPGELuTekdGSZoAsnSAtyE2eNCHk7ZgOcA2x2jkD
	lYlYuFb70H5fPrDQihmyMXtKCfJR5wMGwmFQ07QhRj516GmGTNscLWnbei32Keu6kP8+oz1MPL2
	sxqaax2H+XUZflBGcpEXftRIgNezRXoz0GamZCEQlW+40e2nmQRbBDF8fz82bUagFhgvjA1clZt
	5Hi+X7VLojyrKWs/xeskXYfKfSDhJq1/PVcpbwOLL9dCqMUJj8viOc0OvoyOJ700u7L9S4gcH7d
	c0kWGdxfYCs17H/1Q0usVqrGmKN/1p4JKBqdwBzV0i217XTcGidU/HQshaLWb5H9pKHSgU/4e93
	AWCl0G+RuPTbpB3KrHIRl0epw20R7yqBeJp5BWpiF7B4tRn6FQzoP9B14tjrKA9/njcFZuJO2oZ
	RE5rlWRJgcWWUKpffSX6kylHxQoVUU/I6D4BVFR39H0DYpm1yY6Jk=
X-Google-Smtp-Source: AGHT+IGfQ8dcTVBI2MmmqON1q+CAddZ1kZjNbCRmAj1saEJfXx3zZei/SIchoa3vWl6LQ1IXf/ZKWA==
X-Received: by 2002:a17:907:3da8:b0:b6d:2c70:4542 with SMTP id a640c23a62f3a-b7d23772c6amr1636635366b.30.1765904154264;
        Tue, 16 Dec 2025 08:55:54 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 12/19] xen/riscv: Implement p2m_pte_from_mfn() and support PBMT configuration
Date: Tue, 16 Dec 2025 17:55:22 +0100
Message-ID: <081d03f8d9d1c0b05a46611b7d2104f29ff92ecb.1765879052.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765879052.git.oleksii.kurochko@gmail.com>
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This patch adds the initial logic for constructing PTEs from MFNs in the RISC-V
p2m subsystem. It includes:
- Implementation of p2m_pte_from_mfn(): Generates a valid PTE using the
  given MFN, p2m_type_t, including permission encoding and PBMT attribute
  setup.
- New helper p2m_set_permission(): Encodes access rights (r, w, x) into the
  PTE based on both p2m type and access permissions.
- p2m_set_type(): Stores the p2m type in PTE's bits. The storage of types,
  which don't fit PTE bits, will be implemented separately later.
- Add detection of Svade extension to properly handle a possible page-fault
  if A and D bits aren't set.

PBMT type encoding support:
- Introduces an enum pbmt_type_t to represent the PBMT field values.
- Maps types like p2m_mmio_direct_dev to p2m_mmio_direct_io, others default
  to pbmt_pma.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V7:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V6:
 - Drop 's' in word "nesssary" in the comment.
---
Changes in V5:
 - Moved setting of p2m_mmio_direct_io inside (!is_table) case in p2m_pte_from_mfn().
 - Extend comment about the place of setting A/D bits with explanation
   why it is done in this way for now.
---
Changes in V4:
 - p2m_set_permission() updates:
   - Update permissions for p2m_ram_rw case, make it also executable.
   - Add pernissions setting for p2m_map_foreign_* types.
   - Drop setting peromissions for p2m_ext_storage.
   - Only turn off PTE_VALID bit for p2m_invalid, don't touch other bits.
 - p2m_pte_from_mfn() updates:
   - Update ASSERT(), add a check that mfn isn't INVALID_MFN (1)
     explicitly to avoid the case when PADDR_MASK isn't narrow enough to
     catch the case (1).
   - Drop unnessary check around call of p2m_set_type() as this check
     is already included inside p2m_set_type().
 - Introduce new p2m type p2m_first_external to detect that passed type
   is stored in external storage.
 - Add handling of PTE's A and D bits in pm2_set_permission. Also, set
   PTE_USER bit. For this cpufeatures.{h and c} were updated to be able
   to detect availability of Svade extension.
 - Drop grant table related code as it isn't going to be used at the moment.
---
Changes in V3:
 - s/p2m_entry_from_mfn/p2m_pte_from_mfn.
 - s/pbmt_type_t/pbmt_type.
 - s/pbmt_max/pbmt_count.
 - s/p2m_type_radix_set/p2m_set_type.
 - Rework p2m_set_type() to handle only types which are fited into PTEs bits.
   Other types will be covered separately.
   Update arguments of p2m_set_type(): there is no any reason for p2m anymore.
 - p2m_set_permissions() updates:
   - Update the code in p2m_set_permission() for cases p2m_raw_rw and
     p2m_mmio_direct_io to set proper type permissions.
   - Add cases for p2m_grant_map_rw and p2m_grant_map_ro.
   - Use ASSERT_UNEACHABLE() instead of BUG() in switch cases of
     p2m_set_permissions.
   - Add blank lines non-fall-through case blocks in switch cases.
 - Set MFN before permissions are set in p2m_pte_from_mfn().
 - Update prototype of p2m_entry_from_mfn().
---
Changes in V2:
 - New patch. It was a part of a big patch "xen/riscv: implement p2m mapping
   functionality" which was splitted to smaller.
---
 xen/arch/riscv/cpufeature.c             |   1 +
 xen/arch/riscv/include/asm/cpufeature.h |   1 +
 xen/arch/riscv/include/asm/page.h       |   8 ++
 xen/arch/riscv/p2m.c                    | 112 +++++++++++++++++++++++-
 4 files changed, 118 insertions(+), 4 deletions(-)

diff --git a/xen/arch/riscv/cpufeature.c b/xen/arch/riscv/cpufeature.c
index b846a106a3..02b68aeaa4 100644
--- a/xen/arch/riscv/cpufeature.c
+++ b/xen/arch/riscv/cpufeature.c
@@ -138,6 +138,7 @@ const struct riscv_isa_ext_data __initconst riscv_isa_ext[] = {
     RISCV_ISA_EXT_DATA(zbs),
     RISCV_ISA_EXT_DATA(smaia),
     RISCV_ISA_EXT_DATA(ssaia),
+    RISCV_ISA_EXT_DATA(svade),
     RISCV_ISA_EXT_DATA(svpbmt),
 };
 
diff --git a/xen/arch/riscv/include/asm/cpufeature.h b/xen/arch/riscv/include/asm/cpufeature.h
index d42d7b294e..b696160388 100644
--- a/xen/arch/riscv/include/asm/cpufeature.h
+++ b/xen/arch/riscv/include/asm/cpufeature.h
@@ -37,6 +37,7 @@ enum riscv_isa_ext_id {
     RISCV_ISA_EXT_zbs,
     RISCV_ISA_EXT_smaia,
     RISCV_ISA_EXT_ssaia,
+    RISCV_ISA_EXT_svade,
     RISCV_ISA_EXT_svpbmt,
     RISCV_ISA_EXT_MAX
 };
diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
index 1fc5998a0b..b7cd61df8d 100644
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -73,6 +73,14 @@
 #define PTE_SMALL       BIT(10, UL)
 #define PTE_POPULATE    BIT(11, UL)
 
+enum pbmt_type {
+    pbmt_pma,
+    pbmt_nc,
+    pbmt_io,
+    pbmt_rsvd,
+    pbmt_count,
+};
+
 #define PTE_ACCESS_MASK (PTE_READABLE | PTE_WRITABLE | PTE_EXECUTABLE)
 
 #define PTE_PBMT_MASK   (PTE_PBMT_NOCACHE | PTE_PBMT_IO)
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 9ab7262d70..48e75b1867 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -11,6 +11,7 @@
 #include <xen/sections.h>
 #include <xen/xvmalloc.h>
 
+#include <asm/cpufeature.h>
 #include <asm/csr.h>
 #include <asm/flushtlb.h>
 #include <asm/p2m.h>
@@ -356,6 +357,18 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
     return rc;
 }
 
+static int p2m_set_type(pte_t *pte, p2m_type_t t)
+{
+    int rc = 0;
+
+    if ( t > p2m_first_external )
+        panic("unimplemeted\n");
+    else
+        pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
+
+    return rc;
+}
+
 static p2m_type_t p2m_get_type(const pte_t pte)
 {
     p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
@@ -386,11 +399,102 @@ static inline void p2m_clean_pte(pte_t *p, bool clean_cache)
     p2m_write_pte(p, pte, clean_cache);
 }
 
-static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t)
+static void p2m_set_permission(pte_t *e, p2m_type_t t)
 {
-    panic("%s: hasn't been implemented yet\n", __func__);
+    e->pte &= ~PTE_ACCESS_MASK;
+
+    e->pte |= PTE_USER;
+
+    /*
+     * Two schemes to manage the A and D bits are defined:
+     *   • The Svade extension: when a virtual page is accessed and the A bit
+     *     is clear, or is written and the D bit is clear, a page-fault
+     *     exception is raised.
+     *   • When the Svade extension is not implemented, the following scheme
+     *     applies.
+     *     When a virtual page is accessed and the A bit is clear, the PTE is
+     *     updated to set the A bit. When the virtual page is written and the
+     *     D bit is clear, the PTE is updated to set the D bit. When G-stage
+     *     address translation is in use and is not Bare, the G-stage virtual
+     *     pages may be accessed or written by implicit accesses to VS-level
+     *     memory management data structures, such as page tables.
+     * Thereby to avoid a page-fault in case of Svade is available, it is
+     * necessary to set A and D bits.
+     *
+     * TODO: For now, it’s fine to simply set the A/D bits, since OpenSBI
+     *       delegates page faults to a lower privilege mode and so OpenSBI
+     *       isn't expect to handle page-faults occured in lower modes.
+     *       By setting the A/D bits here, page faults that would otherwise
+     *       be generated due to unset A/D bits will not occur in Xen.
+     *
+     *       Currently, Xen on RISC-V does not make use of the information
+     *       that could be obtained from handling such page faults, which
+     *       could otherwise be useful for several use cases such as demand
+     *       paging, cache-flushing optimizations, memory access tracking,etc.
+     *
+     *       To support the more general case and the optimizations mentioned
+     *       above, it would be better to stop setting the A/D bits here and
+     *       instead handle page faults that occur due to unset A/D bits.
+     */
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_svade) )
+        e->pte |= PTE_ACCESSED | PTE_DIRTY;
+
+    switch ( t )
+    {
+    case p2m_map_foreign_rw:
+    case p2m_mmio_direct_io:
+        e->pte |= PTE_READABLE | PTE_WRITABLE;
+        break;
+
+    case p2m_ram_rw:
+        e->pte |= PTE_ACCESS_MASK;
+        break;
+
+    case p2m_invalid:
+        e->pte &= ~PTE_VALID;
+        break;
+
+    case p2m_map_foreign_ro:
+        e->pte |= PTE_READABLE;
+        break;
+
+    default:
+        ASSERT_UNREACHABLE();
+        break;
+    }
+}
+
+static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
+{
+    pte_t e = (pte_t) { PTE_VALID };
+
+    pte_set_mfn(&e, mfn);
+
+    ASSERT(!(mfn_to_maddr(mfn) & ~PADDR_MASK) || mfn_eq(mfn, INVALID_MFN));
+
+    if ( !is_table )
+    {
+        switch ( t )
+        {
+        case p2m_mmio_direct_io:
+            e.pte |= PTE_PBMT_IO;
+            break;
+
+        default:
+            break;
+        }
+
+        p2m_set_permission(&e, t);
+        p2m_set_type(&e, t);
+    }
+    else
+        /*
+         * According to the spec and table "Encoding of PTE R/W/X fields":
+         *   X=W=R=0 -> Pointer to next level of page table.
+         */
+        e.pte &= ~PTE_ACCESS_MASK;
 
-    return (pte_t) { .pte = 0 };
+    return e;
 }
 
 #define P2M_TABLE_MAP_NONE 0
@@ -645,7 +749,7 @@ static int p2m_set_entry(struct p2m_domain *p2m,
         p2m_clean_pte(entry, p2m->clean_dcache);
     else
     {
-        pte_t pte = p2m_pte_from_mfn(mfn, t);
+        pte_t pte = p2m_pte_from_mfn(mfn, t, false);
 
         p2m_write_pte(entry, pte, p2m->clean_dcache);
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:56:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:56:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188158.1509504 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYLA-0001Xv-Kq; Tue, 16 Dec 2025 16:56:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188158.1509504; Tue, 16 Dec 2025 16:56:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYLA-0001Ui-Bl; Tue, 16 Dec 2025 16:56:00 +0000
Received: by outflank-mailman (input) for mailman id 1188158;
 Tue, 16 Dec 2025 16:55:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wcum=6W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVYL8-0006gk-2R
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:55:58 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 16ea90d5-daa0-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 17:55:56 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b79f98adea4so712633866b.0
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:55:56 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8003cb349csm63169766b.68.2025.12.16.08.55.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:55:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 16ea90d5-daa0-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765904156; x=1766508956; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OZ3bNNr179l0Ub08HW3ugda+t4az01c0QSn+78Tp9Yg=;
        b=Z+4HREwd9V/p6sH7hA2Al6skiZqZB0M6iAGDN+qkWQMN7AZ00N/qikueOMP57vO9K9
         BHAgNQsGOjHG48FcpgDI3qwcEtwtJVnNIbU9GAN8teSxArSBhbM4dj31kMF0Zhdqh8E/
         5XvbMrsMezX+hxQ1w0I3/sEZfUhutTRUabKB+mwD5XrpvuufyJRepLGBKQHWtUVSFYHS
         wpEKWenksk7mRZ7flv3khLzPQ6CgaOkQyhAgHnYjhr/m4sq+Gti+Qg57WNYJdT7ypAya
         ZcOGUHQbG9rWSTADNIsyGyMUEOLuXcD4FogX7PD9yiqzIOoLeoJkK/8hdqyGDlOkqlxf
         cukA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765904156; x=1766508956;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=OZ3bNNr179l0Ub08HW3ugda+t4az01c0QSn+78Tp9Yg=;
        b=Mg7ScvY4sHEbCgsRe/1dkKLC2K//Qcw0Ia9/ukM10zBjH20Njwg8TM8ynQKvTczgUq
         TWHMmyh+2Bp/IWI8Pt2TDF6pUE3zZy6Rc3QhYEHvMHGHqDr54wDs9x2l2hX1gCawc3tP
         iZd5ZLOqZTTJyYfhSC00fNZsFx7Hnb9RPMSu9evZsSjhWADf3clhtWljsGeC4bTU5Ca+
         vGPYUSI65483XvRJbbs0MgG5rXa2UH6Adi2qzt91ee1ukgbr4SrcNoYoQXqXs9JWvF31
         44wK1qntg6HdlCi26f8dD4//qbqDDIRnO1YqzZpR0ZQQHN51QsxVcbUc34cEeIjBY22H
         DKXw==
X-Gm-Message-State: AOJu0Yxpu3JIFpOg2t+5Zgj6LMzt0ZkBF5Xptx4OVBAzdURpYpw9A1gm
	E7ledqMXxv2eZDxE8g4Xd/jR8mE8mcVHbi3SOyZodC3kPsslVVgKDJZqSHsJww==
X-Gm-Gg: AY/fxX4ULyLRQvhRhCvSChlxEs3Ydl3wd9NbNdHu5CY2b1eBlPYwLMj4mAcxqHIrD0m
	4lHoTyQJf17UA8OtnSK62LJrm3/kk+ldIiFd8fKjJMU7qu3OCsvLNgqG49/n4bSZyZ9V4GP1cWG
	L006e8L+9/t/SRbOKwkWimTBYG3kKQWiT4/IuNoSEAL6QloJKi1DpfC2LyAanUhjdhUS7OMdgsT
	jLK4SnRNyg1OlfOh0tiOHAimdriUlBkJCGwlhUta/jAjIYHRYk6JKYdVcz156JNIkOZv8ijPBfS
	iI5M2lP5lgi1rOOilLOV2JgzlMbsse1GOCsycpzKeBU4f6p7Cjc9zBkXy9nBXJYJT+x2NOnc9VC
	esaKHWfwvW//6/pk9Gfh0ujDA29MgDn+cXVC3bjUjHAgpE0t06ZXAe+gumj2g3occoFNke8AAHs
	PwIROVuNvfnszuuHQshPK5p8y1P5d5PLw8b8g7crTNPaQHiRt2men0prizKppTEZezDQ==
X-Google-Smtp-Source: AGHT+IFRnqhrPRqmJcXk6Y8a+tXmuYNxyKo8WxQRVL3L2S7F6DS7PTeNOYTrbceZ7ZBZptXXf9lJnA==
X-Received: by 2002:a17:906:9f88:b0:b72:6a39:49d7 with SMTP id a640c23a62f3a-b7d23c1b192mr1673214966b.33.1765904155439;
        Tue, 16 Dec 2025 08:55:55 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 13/19] xen/riscv: implement p2m_next_level()
Date: Tue, 16 Dec 2025 17:55:23 +0100
Message-ID: <1c05ace2c8371cb60c073b34dd9e838cbcd1c7be.1765879052.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765879052.git.oleksii.kurochko@gmail.com>
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement the p2m_next_level() function, which enables traversal and dynamic
allocation of intermediate levels (if necessary) in the RISC-V
p2m (physical-to-machine) page table hierarchy.

To support this, the following helpers are introduced:
- page_to_p2m_table(): Constructs non-leaf PTEs pointing to next-level page
  tables with correct attributes.
- p2m_alloc_page(): Allocates page table pages, supporting both hardware and
  guest domains.
- p2m_create_table(): Allocates and initializes a new page table page and
  installs it into the hierarchy.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V6-7:
 - s/intermidiate/intermediate.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V5:
 - Stray more blanks after * in declaration of functions.
 - Correct the comment above p2m_create_table() as metadata pages isn't
   allocated anymore in this function.
 - Move call of     clear_and_clean_page(page, p2m->clean_dcache); from
   p2m_create_table() to p2m_alloc_page().
 - Drop ACCESS_ONCE() in paging_alloc_page().
---
Changes in V4:
 - make `page` argument of page_to_p2m_table pointer-to-const.
 - Move p2m_next_level()'s local variable `ret` to the more narrow space where
   it is really used.
 - Drop stale ASSERT() in p2m_next_level().
 - Stray blank after * in declaration of paging_alloc_page().
 - Decrease p2m_freelist.total_pages when a page is taken from the p2m freelist.
---
Changes in V3:
 - s/p2me_is_mapping/p2m_is_mapping to be in syc with other p2m_is_*() functions.
 - clear_and_clean_page() in p2m_create_table() instead of clear_page() to be
   sure that page is cleared and d-cache is flushed for it.
 - Move ASSERT(level != 0) in p2m_next_level() ahead of trying to allocate a
   page table.
 - Update p2m_create_table() to allocate metadata page to store p2m type in it
   for each entry of page table.
 - Introduce paging_alloc_page() and use it inside p2m_alloc_page().
 - Add allocated page to p2m->pages list in p2m_alloc_page() to simplify
   a caller code a little bit.
 - Drop p2m_is_mapping() and use pte_is_mapping() instead as P2M PTE's valid
   bit doesn't have another purpose anymore.
 - Update an implementation and prototype of page_to_p2m_table(), it is enough
   to pass only a page as an argument.
---
Changes in V2:
 - New patch. It was a part of a big patch "xen/riscv: implement p2m mapping
   functionality" which was splitted to smaller.
 - s/p2m_is_mapping/p2m_is_mapping.
---
 xen/arch/riscv/include/asm/paging.h |  2 +
 xen/arch/riscv/p2m.c                | 77 ++++++++++++++++++++++++++++-
 xen/arch/riscv/paging.c             | 12 +++++
 3 files changed, 89 insertions(+), 2 deletions(-)

diff --git a/xen/arch/riscv/include/asm/paging.h b/xen/arch/riscv/include/asm/paging.h
index fe462be223..c1d225d02b 100644
--- a/xen/arch/riscv/include/asm/paging.h
+++ b/xen/arch/riscv/include/asm/paging.h
@@ -15,4 +15,6 @@ int paging_refill_from_domheap(struct domain *d, unsigned int nr_pages);
 
 void paging_free_page(struct domain *d, struct page_info *pg);
 
+struct page_info *paging_alloc_page(struct domain *d);
+
 #endif /* ASM_RISCV_PAGING_H */
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 48e75b1867..9e1a660316 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -357,6 +357,19 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
     return rc;
 }
 
+static struct page_info *p2m_alloc_page(struct p2m_domain *p2m)
+{
+    struct page_info *pg = paging_alloc_page(p2m->domain);
+
+    if ( pg )
+    {
+        page_list_add(pg, &p2m->pages);
+        clear_and_clean_page(pg, p2m->clean_dcache);
+    }
+
+    return pg;
+}
+
 static int p2m_set_type(pte_t *pte, p2m_type_t t)
 {
     int rc = 0;
@@ -497,6 +510,33 @@ static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
     return e;
 }
 
+/* Generate table entry with correct attributes. */
+static pte_t page_to_p2m_table(const struct page_info *page)
+{
+    /*
+     * p2m_invalid will be ignored inside p2m_pte_from_mfn() as is_table is
+     * set to true and p2m_type_t shouldn't be applied for PTEs which
+     * describe an intermediate table.
+     */
+    return p2m_pte_from_mfn(page_to_mfn(page), p2m_invalid, true);
+}
+
+/* Allocate a new page table page and hook it in via the given entry. */
+static int p2m_create_table(struct p2m_domain *p2m, pte_t *entry)
+{
+    struct page_info *page;
+
+    ASSERT(!pte_is_valid(*entry));
+
+    page = p2m_alloc_page(p2m);
+    if ( page == NULL )
+        return -ENOMEM;
+
+    p2m_write_pte(entry, page_to_p2m_table(page), p2m->clean_dcache);
+
+    return 0;
+}
+
 #define P2M_TABLE_MAP_NONE 0
 #define P2M_TABLE_MAP_NOMEM 1
 #define P2M_TABLE_SUPER_PAGE 2
@@ -521,9 +561,42 @@ static int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,
                           unsigned int level, pte_t **table,
                           unsigned int offset)
 {
-    panic("%s: hasn't been implemented yet\n", __func__);
+    pte_t *entry;
+    mfn_t mfn;
+
+    /* The function p2m_next_level() is never called at the last level */
+    ASSERT(level != 0);
+
+    entry = *table + offset;
+
+    if ( !pte_is_valid(*entry) )
+    {
+        int ret;
+
+        if ( !alloc_tbl )
+            return P2M_TABLE_MAP_NONE;
+
+        ret = p2m_create_table(p2m, entry);
+        if ( ret )
+            return P2M_TABLE_MAP_NOMEM;
+    }
+
+    if ( pte_is_mapping(*entry) )
+        return P2M_TABLE_SUPER_PAGE;
+
+    mfn = mfn_from_pte(*entry);
+
+    unmap_domain_page(*table);
+
+    /*
+     * TODO: There's an inefficiency here:
+     *       In p2m_create_table(), the page is mapped to clear it.
+     *       Then that mapping is torn down in p2m_create_table(),
+     *       only to be re-established here.
+     */
+    *table = map_domain_page(mfn);
 
-    return P2M_TABLE_MAP_NONE;
+    return P2M_TABLE_NORMAL;
 }
 
 static void p2m_put_foreign_page(struct page_info *pg)
diff --git a/xen/arch/riscv/paging.c b/xen/arch/riscv/paging.c
index 09631c9894..76a203edbb 100644
--- a/xen/arch/riscv/paging.c
+++ b/xen/arch/riscv/paging.c
@@ -117,6 +117,18 @@ void paging_free_page(struct domain *d, struct page_info *pg)
     spin_unlock(&d->arch.paging.lock);
 }
 
+struct page_info *paging_alloc_page(struct domain *d)
+{
+    struct page_info *pg;
+
+    spin_lock(&d->arch.paging.lock);
+    pg = page_list_remove_head(&d->arch.paging.freelist);
+    d->arch.paging.total_pages--;
+    spin_unlock(&d->arch.paging.lock);
+
+    return pg;
+}
+
 /* Domain paging struct initialization. */
 int paging_domain_init(struct domain *d)
 {
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:56:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:56:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188160.1509512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYLB-0001f2-GD; Tue, 16 Dec 2025 16:56:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188160.1509512; Tue, 16 Dec 2025 16:56:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYLB-0001d4-2N; Tue, 16 Dec 2025 16:56:01 +0000
Received: by outflank-mailman (input) for mailman id 1188160;
 Tue, 16 Dec 2025 16:55:59 +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
 <SRS0=wcum=6W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVYL9-0006ge-0L
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:55:59 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 182bc0b2-daa0-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 17:55:58 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b79e7112398so961800766b.3
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:55:58 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8003cb349csm63169766b.68.2025.12.16.08.55.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:55:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 182bc0b2-daa0-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765904158; x=1766508958; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iO5nx4598w9zrVt5xUIYVySyPj0TGMAZ0/hbVswglno=;
        b=h9qGWj7mwzIjIPyAj+5LWSbEUl1iRe/38c74TO3JNDlUo5k1pk5AekC1Qfz/r1Yuiv
         k5Dt8tGvOMkvmGQ70zAvEBPw3WFavQObaqnFECnfSny6Utra7TLeahuwvEDm/1nBiDzl
         ydn8oy/rB6wzl19urg3q6qmO0AqkiSG50bSsXuO6oafpx68rtNyxP8of6QJapzVdRyYh
         6svkQYFBaqeiJW5Cj/pNaSJLjvS3WI0g1prdu/NLIgDr9l2GZmyrAe8fa0njpiNKwWHN
         Pi15RzMAAjkwDCf0s4rCm33K+XUFcWTwEyBUPeOcukQIUc76LVwZhIFpoUguGsLipyVB
         Hu5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765904158; x=1766508958;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=iO5nx4598w9zrVt5xUIYVySyPj0TGMAZ0/hbVswglno=;
        b=BwGPIlavB8l/u9Ownn1QiZlkxw9Hk/Fpe2c8NtdGp8z0rLb4jCNTfuufWcH5E8M4lJ
         D9wCbyrB8sfUHl3q1RZyCR4sjFqG8j2TYphcCq9DKQb9xxOfH46Ve7k3cZUV1S/QBwxe
         +pjchJaVfqYVh4N7+oC2dsor1jpAQyCpJ0FJztwHXIec9JHujw/2QV8q1R82Q2/VO8VG
         AwfhbHfKuV0gK1qpHgL2/d2A/rWdMQMD4KMNAecZWtb5HUv4rSjJfuq4ZaiHs0vU/NHW
         o33ADG95e9T1SChsWJnfoJO20mL8o9g8g2eC51b0oLH0PXfr19VzYZS3QQrRfe4knk+I
         zMlQ==
X-Gm-Message-State: AOJu0Yw9OpMsZjnhrxNr/eE+q3d0nOpvz/KgppQKlv4LuH2eirDr/jYV
	yls/BI5dG+6MZyqR53t5buhVglwz+MW3FeBDQN6u/zM+3PTr2Y4Yutb9KbEkdg==
X-Gm-Gg: AY/fxX4NrI+/4RljvN7irmeY2de7saKX95o3AkWO7n0R0QZKICNCfwYgggK2pTx5EAO
	DdjMmDKfoFoK/fSP8/qnDXUZg+xg66PiEOI0f59bDoeVFaA5upaxAfbvQHxQZTiVGx1+dGHs2Dp
	mwiaopAAZzPBgFeWRZtdRuoSD+CmdaUZk8ivGQTbOlxB+3K6MWv1voCra8AAflSckhPVTRTjFHX
	EVX6xe4cH/7Jrfwm+m90AYMef5+a/EAxGbDQJ1zCzU0ztzmcuzbFJZ470qmcSvryKXqYpKiTRzI
	bcXN+9WjYEMCIKOovLrmIqJ8qya+juYxK3zOYoZCBVxneIwGbgfq9BUhaLKg6gnXxkiQVQZoT7x
	4EgGRo36g/hp+pJRKXAl0uF6liWLZI9vpYjiGMkdnWuI/YLccN0VEECkHLB4H54BKv2/fKrZqgH
	5YEPawNsxCm/oxL/cmi6toH2qZfXRHgPVOIUukuwEOj26BUltaiYRu6FVD4cWyPLI+TA==
X-Google-Smtp-Source: AGHT+IGQRRCuNzZF6vxesTm9DfmANaO+KpfyHWCwr/sz+VGWkW+4H41mm5f/d6qiP5ih8R6mZlMyWA==
X-Received: by 2002:a17:907:3f0d:b0:b73:5a2f:2f0e with SMTP id a640c23a62f3a-b7d235c84a0mr1853199966b.3.1765904157482;
        Tue, 16 Dec 2025 08:55:57 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 15/19] xen/riscv: implement put_page()
Date: Tue, 16 Dec 2025 17:55:25 +0100
Message-ID: <ae4cbcb31348177164b37c9fc8c12ff1b56ad0ca.1765879052.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765879052.git.oleksii.kurochko@gmail.com>
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement put_page(), as it will be used by  p2m_put_*-related code.

Although CONFIG_STATIC_MEMORY has not yet been introduced for RISC-V,
a stub for PGC_static is added to avoid cluttering the code of
put_page() with #ifdefs.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V6-7:
 - Nothing changed. Only rebase.
---
Changes in V5:
 - Correct code style of do-while loop in put_page().
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V4:
 - Update the comment message:
   s/p2m_put_code/p2m_put_*-related code.
   s/put_page_nr/put_page.
---
 xen/arch/riscv/include/asm/mm.h |  7 +++++++
 xen/arch/riscv/mm.c             | 24 +++++++++++++++++++-----
 2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 2f7927e6f4..08f500c99d 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -264,6 +264,13 @@ static inline bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
 /* Page is Xen heap? */
 #define _PGC_xen_heap     PG_shift(2)
 #define PGC_xen_heap      PG_mask(1, 2)
+#ifdef CONFIG_STATIC_MEMORY
+/* Page is static memory */
+#define _PGC_static       PG_shift(3)
+#define PGC_static        PG_mask(1, 3)
+#else
+#define PGC_static     0
+#endif
 /* Page is broken? */
 #define _PGC_broken       PG_shift(7)
 #define PGC_broken        PG_mask(1, 7)
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 1ef015f179..2e42293986 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -362,11 +362,6 @@ unsigned long __init calc_phys_offset(void)
     return phys_offset;
 }
 
-void put_page(struct page_info *page)
-{
-    BUG_ON("unimplemented");
-}
-
 void arch_dump_shared_mem_info(void)
 {
     BUG_ON("unimplemented");
@@ -627,3 +622,22 @@ void flush_page_to_ram(unsigned long mfn, bool sync_icache)
     if ( sync_icache )
         invalidate_icache();
 }
+
+void put_page(struct page_info *page)
+{
+    unsigned long nx, x, y = page->count_info;
+
+    do {
+        ASSERT((y & PGC_count_mask) >= 1);
+        x  = y;
+        nx = x - 1;
+    } while ( unlikely((y = cmpxchg(&page->count_info, x, nx)) != x) );
+
+    if ( unlikely((nx & PGC_count_mask) == 0) )
+    {
+        if ( unlikely(nx & PGC_static) )
+            free_domstatic_page(page);
+        else
+            free_domheap_page(page);
+    }
+}
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:57:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:57:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188223.1509527 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYMZ-0005tV-JA; Tue, 16 Dec 2025 16:57:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188223.1509527; Tue, 16 Dec 2025 16:57:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYMZ-0005tO-Fq; Tue, 16 Dec 2025 16:57:27 +0000
Received: by outflank-mailman (input) for mailman id 1188223;
 Tue, 16 Dec 2025 16:57:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wcum=6W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVYLE-0006gk-B9
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:56:04 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1a39022a-daa0-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 17:56:01 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-64312565c10so8560758a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:56:01 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8003cb349csm63169766b.68.2025.12.16.08.55.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:56:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1a39022a-daa0-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765904161; x=1766508961; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dAW4FogsFnbSN45BNezCSR9opoNTBUZqtrixmIdk0bI=;
        b=Rn2wZCrwXFKgex7WGwFYkoOhj1x06wvmiYvLuefQ+YHyxvGsr7qYyLM8Y5LubVcLrj
         FYVdt/XFOnNxSsZ8DLGpxqb4gtFgJD/WR2HNgO3/PgtIng9tS6kdNAgFpGpCl5GVgFpR
         AqsmXODFVOKCgPiHIhLarj0ykmslOVgyZXvDveQZCkijnR+5i8tJyIU0sCr0r3JWhzdT
         AKV948KBFcy+NSkalOUSwLEgcWFkV/Rjk1Iz/FuL0yfRIvlht9Vh51HSblk0vfKoeOgk
         E8Acdw2ICcu7GeMK877DhMb2vITVPTmrsOqhA6ziYZ6Y48db/IWreInV3NNIIECM+kkC
         g/bQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765904161; x=1766508961;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=dAW4FogsFnbSN45BNezCSR9opoNTBUZqtrixmIdk0bI=;
        b=fRL/yf5AcswH+ZnbniTmWaAH1hIrLfOmxiTDus785zyXnFeXeSVC2c880mcHSeWjwc
         rcSVR5ewkONvpLNCdsMC1o1Cu6AQfZprray9F8lLlXXCkHVjg8mdvIoZ/FNSvrgtJG7p
         HRJsl58w+F2pe6/cmiUFY/hQDKiZseV8Er+isrb9dG9nvWTk77GtE5jQe+yGigJVZsW6
         1G7vIVgEnFCfgK5qZUOLPz6IVm8sqc+oRZ/Ymk3IDLamiQh98UKnnfoYBQiSlhFjEY2e
         YnjC1eZ4xH/MBF4IY+NJJ3g/j0qvMTcTuF1XXaceEBMN5j8gjKf0Nc+AUfv9VSJxt+5B
         lv3Q==
X-Gm-Message-State: AOJu0YxOQuSqUXCdzy07pe4EeKcNI+xYxOlwJobgj0Vnc0ejvhhGuULv
	h2jQbS46NVu5PlOW6/ZngyI2o3YJ2AGrfKeEvYVx9yfiRzlaz21CU5L2xHa+Og==
X-Gm-Gg: AY/fxX77e8nLPDCPX0O3keXINfQ/3unaH/LsWCd9LojSePzQX4RqQYPg4ZDen45WFFz
	bHuF2ntfm5clDJgqkoNTjqm2ctMVV7rFSJ4+nc7xesVNkh1PEBoRjhc0ETQbaUd+3WQ09Lxyt5B
	P44qS/7DVQleW7faqEmMpgR+DzHZRU+mEaQKxrfIkYZPyfeRdd4Dw361IKH2Nu2rxqrBbwpcaqw
	zw1xjG/SPXwj6o3zPAOlMaI0DQNNEkCmV4eEEbYCgBqCsIB2lmeiw+1uZfS2QyU0BfigQ9WezPU
	t9UwgBtX8RxZLuy5uA+wbaQcKIijc1xufQVLQZ9pMcG5fgZ8bEiyx/xTlDsAEauwclbd08U4ntv
	RbAAQrxQv9pHnLSFK5Kftch5ZWGxdYnCNxv6VcRKkKGtg3IkFgkf07P4t8TNK1R8otNXQgyP6z8
	pQtoG2gI3J/iWUj2O7X/xBIH1EER2VdpbtsvjQwOW/DrZr6DsUEPE6Mu4=
X-Google-Smtp-Source: AGHT+IHE21D8prEkbOcy2Z0u6Ll5QfxFFCqDZn0hzJ2CzKwHpda8L+ZdbrOlqMnctqwlh+iRg2Hzng==
X-Received: by 2002:a17:906:7954:b0:b72:598:2f32 with SMTP id a640c23a62f3a-b7d238e7d77mr1436411566b.42.1765904160764;
        Tue, 16 Dec 2025 08:56:00 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 18/19] xen/riscv: introduce metadata table to store P2M type
Date: Tue, 16 Dec 2025 17:55:28 +0100
Message-ID: <b1e4ed0bb4e2f47a7cdb6afe4b9b05462e00fc84.1765879052.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765879052.git.oleksii.kurochko@gmail.com>
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

RISC-V's PTE has only two available bits that can be used to store the P2M
type. This is insufficient to represent all the current RISC-V P2M types.
Therefore, some P2M types must be stored outside the PTE bits.

To address this, a metadata table is introduced to store P2M types that
cannot fit in the PTE itself. Not all P2M types are stored in the
metadata table—only those that require it.

The metadata table is linked to the intermediate page table via the
`struct page_info`'s v.md.metadata field of the corresponding intermediate
page.
Such pages are allocated with MEMF_no_owner, which allows us to use
the v field for the purpose of storing the metadata table.

To simplify the allocation and linking of intermediate and metadata page
tables, `p2m_{alloc,free}_table()` functions are implemented.

These changes impact `p2m_split_superpage()`, since when a superpage is
split, it is necessary to update the metadata table of the new
intermediate page table — if the entry being split has its P2M type set
to `p2m_ext_storage` in its `P2M_TYPES` bits. In addition to updating
the metadata of the new intermediate page table, the corresponding entry
in the metadata for the original superpage is invalidated.

Also, update p2m_{get,set}_type to work with P2M types which don't fit
into PTE bits.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V7:
- Put p2m_domain * inside struct p2m_pte_ctx and update an APIs of
  p2m_set_type(), p2m_pte_from_mfn().
  Also, move ASSERT(p2m) closer to p2m_alloc_page(ctx->p2m) inside
  p2m_set_type().
  Update all callers of p2m_set_type() and p2m_pte_from_mfn().
- Update the comment above BUILD_BUG_ON(p2m_invalid): drop unnessary
  sentenses and make it shorter then 80 chars.
- Drop the comment and BUILD_BUG_ON() in p2m_get_type() as it is
  enough to have it in p2m_set_type().
- Update the comment above p2m_set_type() about p2m argument which
  was droppped.
- Make ctx argument of p2m_set_type() const to be able to re-use
  p2m_pte_ctx across multiple iterations without fully reinitializing.
- Declare "struct p2m_pte_ctx tmp_ctx;" as function scope variable and
  rework p2m_set_entry() correspondingly.
---
Changes in V6:
 - Introduce new type md_t to use it instead of pte_t to store metadata
   types outside PTE bits.
 - Integrate introduced struct md_t.
 - Drop local variable "struct domain *d" inside p2m_set_type().
 - Drop __func__ printting and use %pv.
 - Code style fixes
 - Drop unnessarry check inside if-condition in p2m_pte_from_mfn()
   as we have ASSERT(p2m) inside p2m_set_type() anyway.
 - Return back the commnent inside page_to_p2m_table() as it was deleted
   accidently.
 - move the initialization of
p2m_pte_ctx.pt_page and p2m_pte_ctx.level ahead of the loop
 - Add BUILD_BUG_ON(p2m_invalid) before the call of p2m_alloc_page() in p2m_set_type() and in p2m_get_type() before " if ( type == p2m_ext_storage )".
 - Set to NULL tbl_pg->v.md.pg in p2m_free_table().
 - Make argument 't' of p2m_set_type() non-const as we are going to change it.
 - Add some explanatory comments.
 - Update ASSERT at the start of p2m_set_type() to verify that
   passed ctx->index is lesser then 512 and drop calculation of
   an index of root page as it is guaranteed by calc_offset()
   and get_root_pointer() that we will aready get proper page and
   proper index inside this page.
---
Changes in V5:
 - Rename metadata member of stuct md inside struct page_info to pg.
 - Stray blank in the declaration of p2m_alloc_table().
 - Use "<" instead of "<=" in ASSERT() in p2m_set_type().
 - Move the check that ctx is provided to an earlier point in
   p2m_set_type().
 - Set `md_pg` after ASSERT() in p2m_set_type().
 - Add BUG_ON() insetead of ASSERT_UNREACHABLE() in p2m_set_type().
 - Drop a check that metadata isn't NULL before unmap_domain_page() is
   being called.
 - Make const `md` variable in p2m_get_type().
 - unmap correct domain's page in p2m_get_type: use `md` instead of
   ctx->pt_page->v.md.pg.
 - Add description of how p2m and p2m_pte_ctx is expected to be used
   in p2m_pte_from_mfn() and drop a comment from page_to_p2m_table().
 - Drop the stale part of the comment above p2m_alloc_table().
 - Drop ASSERT(tbl_pg->v.md.pg) from p2m_free_table() as tbl_pg->v.md.pg
   is created conditionally now.
 - Drop an introduction of p2m_alloc_table(), update p2m_alloc_page()
   correspondengly and use it instead.
 - Add missing blank in definition of level member for tmp_ctx variable
   in p2m_free_subtree(). Also, add the comma at the end.
 - Initialize old_type once before for-loop in p2m_split_superpage() as
   old type will be used for all newly created PTEs.
 - Properly initialize p2m_pte_ctx.level with next_level instead of
   level when p2m_set_type() is going to be called for new PTEs.
 - Fix identations.
 - Move ASSERT(p2m) on top of p2m_set_type() to be sure that NULL isn't
   passed for p2m argument of p2m_set_type().
 - s/virt_to_page(table)/mfn_to_page(domain_page_map_to_mfn(table))
   to recieve correct page for a table which is mapped by domain_page_map().
 - Add "return;" after domain_crash() in p2m_set_type() to avoid potential
   NULL pointer dereference of md_pg.
---
Changes in V4:
 - Add Suggested-by: Jan Beulich <jbeulich@suse.com>.
 - Update the comment above declation of md structure inside struct page_info to:
   "Page is used as an intermediate P2M page table".
 - Allocate metadata table on demand to save some memory. (1)
 - Rework p2m_set_type():
   - Add allocatation of metadata page only if needed.
   - Move a check what kind of type we are handling inside p2m_set_type().
 - Move mapping of metadata page inside p2m_get_type() as it is needed only
   in case if PTE's type is equal to p2m_ext_storage.
 - Add some description to p2m_get_type() function.
 - Drop blank after return type of p2m_alloc_table().
 - Drop allocation of metadata page inside p2m_alloc_table becaues of (1).
 - Fix p2m_free_table() to free metadata page only if it was allocated.
---
Changes in V3:
 - Add is_p2m_foreign() macro and connected stuff.
 - Change struct domain *d argument of p2m_get_page_from_gfn() to
   struct p2m_domain.
 - Update the comment above p2m_get_entry().
 - s/_t/p2mt for local variable in p2m_get_entry().
 - Drop local variable addr in p2m_get_entry() and use gfn_to_gaddr(gfn)
   to define offsets array.
 - Code style fixes.
 - Update a check of rc code from p2m_next_level() in p2m_get_entry()
   and drop "else" case.
 - Do not call p2m_get_type() if p2m_get_entry()'s t argument is NULL.
 - Use struct p2m_domain instead of struct domain for p2m_lookup() and
   p2m_get_page_from_gfn().
 - Move defintion of get_page() from "xen/riscv: implement mfn_valid() and page reference, ownership handling helpers"
---
Changes in V2:
 - New patch.
---
 xen/arch/riscv/include/asm/mm.h |   9 ++
 xen/arch/riscv/p2m.c            | 246 ++++++++++++++++++++++++++++----
 2 files changed, 225 insertions(+), 30 deletions(-)

diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 1a99e1cf0a..48162f5d65 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -149,6 +149,15 @@ struct page_info
             /* Order-size of the free chunk this page is the head of. */
             unsigned int order;
         } free;
+
+        /* Page is used as an intermediate P2M page table */
+        struct {
+            /*
+             * Pointer to a page which store metadata for an intermediate page
+             * table.
+             */
+            struct page_info *pg;
+        } md;
     } v;
 
     union {
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index b2d275f7be..bbc3d53d01 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -26,6 +26,25 @@
  */
 #define P2M_MAX_SUPPORTED_LEVEL_MAPPING _AC(2, U)
 
+struct md_t {
+    /*
+     * Describes a type stored outside PTE bits.
+     * Look at the comment above definition of enum p2m_type_t.
+     */
+    p2m_type_t type : 4;
+};
+
+/*
+ * P2M PTE context is used only when a PTE's P2M type is p2m_ext_storage.
+ * In this case, the P2M type is stored separately in the metadata page.
+ */
+struct p2m_pte_ctx {
+    struct p2m_domain *p2m;
+    struct page_info *pt_page;   /* Page table page containing the PTE. */
+    unsigned int index;          /* Index of the PTE within that page. */
+    unsigned int level;          /* Paging level at which the PTE resides. */
+};
+
 static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
     .mode = HGATP_MODE_OFF,
     .paging_levels = 0,
@@ -37,6 +56,10 @@ unsigned char get_max_supported_mode(void)
     return max_gstage_mode.mode;
 }
 
+/*
+ * If anything is changed here, it may also require updates to
+ * p2m_{get,set}_type().
+ */
 static inline unsigned int calc_offset(const struct p2m_domain *p2m,
                                        const unsigned int lvl,
                                        const paddr_t gpa)
@@ -79,6 +102,9 @@ static inline unsigned int calc_offset(const struct p2m_domain *p2m,
  * The caller is responsible for unmapping the page after use.
  *
  * Returns NULL if the calculated offset into the root table is invalid.
+ *
+ * If anything is changed here, it may also require updates to
+ * p2m_{get,set}_type().
  */
 static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
 {
@@ -370,24 +396,101 @@ static struct page_info *p2m_alloc_page(struct p2m_domain *p2m)
     return pg;
 }
 
-static int p2m_set_type(pte_t *pte, p2m_type_t t)
+/*
+ * `pte` – PTE entry for which the type `t` will be stored.
+ *
+ * If `t` is `p2m_ext_storage`, both `ctx` and `p2m` must be provided.
+ */
+static void p2m_set_type(pte_t *pte, p2m_type_t t,
+                         const struct p2m_pte_ctx *ctx)
 {
-    int rc = 0;
+    struct page_info **md_pg;
+    struct md_t *metadata = NULL;
 
-    if ( t > p2m_first_external )
-        panic("unimplemeted\n");
-    else
-        pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
+    /*
+     * It is sufficient to compare ctx->index with PAGETABLE_ENTRIES because,
+     * even for the p2m root page table (which is a 16 KB page allocated as
+     * four 4 KB pages), calc_offset() guarantees that the page-table index
+     * will always fall within the range [0, 511].
+     */
+    ASSERT(ctx && ctx->index < PAGETABLE_ENTRIES);
 
-    return rc;
+    /*
+     * At the moment, p2m_get_root_pointer() returns one of four possible p2m
+     * root pages, so there is no need to search for the correct ->pt_page
+     * here.
+     * Non-root page tables are 4 KB pages, so simply using ->pt_page is
+     * sufficient.
+     */
+    md_pg = &ctx->pt_page->v.md.pg;
+
+    if ( !*md_pg && (t >= p2m_first_external) )
+    {
+        BUG_ON(ctx->level > P2M_MAX_SUPPORTED_LEVEL_MAPPING);
+
+        if ( ctx->level <= P2M_MAX_SUPPORTED_LEVEL_MAPPING )
+        {
+            /*
+             * Since p2m_alloc_page() initializes an allocated page with
+             * zeros, p2m_invalid is expected to have the value 0 as well.
+             */
+            BUILD_BUG_ON(p2m_invalid);
+
+            ASSERT(ctx->p2m);
+
+            *md_pg = p2m_alloc_page(ctx->p2m);
+            if ( !*md_pg )
+            {
+                printk("%pd: can't allocate metadata page\n",
+                       ctx->p2m->domain);
+                domain_crash(ctx->p2m->domain);
+
+                return;
+            }
+        }
+    }
+
+    if ( *md_pg )
+        metadata = __map_domain_page(*md_pg);
+
+    if ( t >= p2m_first_external )
+    {
+        metadata[ctx->index].type = t;
+
+        t = p2m_ext_storage;
+    }
+    else if ( metadata )
+        metadata[ctx->index].type = p2m_invalid;
+
+    pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
+
+    unmap_domain_page(metadata);
 }
 
-static p2m_type_t p2m_get_type(const pte_t pte)
+/*
+ * `pte` -> PTE entry that stores the PTE's type.
+ *
+ * If the PTE's type is `p2m_ext_storage`, `ctx` should be provided;
+ * otherwise it could be NULL.
+ */
+static p2m_type_t p2m_get_type(const pte_t pte, const struct p2m_pte_ctx *ctx)
 {
     p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
 
     if ( type == p2m_ext_storage )
-        panic("unimplemented\n");
+    {
+        const struct md_t *md = __map_domain_page(ctx->pt_page->v.md.pg);
+
+        type = md[ctx->index].type;
+
+        /*
+         * Since p2m_set_type() guarantees that the type will be greater than
+         * p2m_first_external, just check that we received a valid type here.
+         */
+        ASSERT(type > p2m_first_external);
+
+        unmap_domain_page(md);
+    }
 
     return type;
 }
@@ -477,7 +580,14 @@ static void p2m_set_permission(pte_t *e, p2m_type_t t)
     }
 }
 
-static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
+/*
+ * If p2m_pte_from_mfn() is called with p2m_pte_ctx = NULL,
+ * it means the function is working with a page table for which the `t`
+ * should not be applicable. Otherwise, the function is handling a leaf PTE
+ * for which `t` is applicable.
+ */
+static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t,
+                              struct p2m_pte_ctx *p2m_pte_ctx)
 {
     pte_t e = (pte_t) { PTE_VALID };
 
@@ -485,7 +595,7 @@ static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
 
     ASSERT(!(mfn_to_maddr(mfn) & ~PADDR_MASK) || mfn_eq(mfn, INVALID_MFN));
 
-    if ( !is_table )
+    if ( p2m_pte_ctx )
     {
         switch ( t )
         {
@@ -498,7 +608,7 @@ static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
         }
 
         p2m_set_permission(&e, t);
-        p2m_set_type(&e, t);
+        p2m_set_type(&e, t, p2m_pte_ctx);
     }
     else
         /*
@@ -518,7 +628,22 @@ static pte_t page_to_p2m_table(const struct page_info *page)
      * set to true and p2m_type_t shouldn't be applied for PTEs which
      * describe an intermediate table.
      */
-    return p2m_pte_from_mfn(page_to_mfn(page), p2m_invalid, true);
+    return p2m_pte_from_mfn(page_to_mfn(page), p2m_invalid, NULL);
+}
+
+static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
+
+/*
+ * Free page table's page and metadata page linked to page table's page.
+ */
+static void p2m_free_table(struct p2m_domain *p2m, struct page_info *tbl_pg)
+{
+    if ( tbl_pg->v.md.pg )
+    {
+        p2m_free_page(p2m, tbl_pg->v.md.pg);
+        tbl_pg->v.md.pg = NULL;
+    }
+    p2m_free_page(p2m, tbl_pg);
 }
 
 /* Allocate a new page table page and hook it in via the given entry. */
@@ -679,12 +804,14 @@ static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg)
 
 /* Free pte sub-tree behind an entry */
 static void p2m_free_subtree(struct p2m_domain *p2m,
-                             pte_t entry, unsigned int level)
+                             pte_t entry,
+                             const struct p2m_pte_ctx *p2m_pte_ctx)
 {
     unsigned int i;
     pte_t *table;
     mfn_t mfn;
     struct page_info *pg;
+    unsigned int level = p2m_pte_ctx->level;
 
     /*
      * Check if the level is valid: only 4K - 2M - 1G mappings are supported.
@@ -700,7 +827,7 @@ static void p2m_free_subtree(struct p2m_domain *p2m,
 
     if ( pte_is_mapping(entry) )
     {
-        p2m_type_t p2mt = p2m_get_type(entry);
+        p2m_type_t p2mt = p2m_get_type(entry, p2m_pte_ctx);
 
 #ifdef CONFIG_IOREQ_SERVER
         /*
@@ -719,10 +846,22 @@ static void p2m_free_subtree(struct p2m_domain *p2m,
         return;
     }
 
-    table = map_domain_page(pte_get_mfn(entry));
+    mfn = pte_get_mfn(entry);
+    ASSERT(mfn_valid(mfn));
+    table = map_domain_page(mfn);
+    pg = mfn_to_page(mfn);
 
     for ( i = 0; i < P2M_PAGETABLE_ENTRIES(p2m, level); i++ )
-        p2m_free_subtree(p2m, table[i], level - 1);
+    {
+        struct p2m_pte_ctx tmp_ctx = {
+            .pt_page = pg,
+            .index = i,
+            .level = level - 1,
+            .p2m = p2m,
+        };
+
+        p2m_free_subtree(p2m, table[i], &tmp_ctx);
+    }
 
     unmap_domain_page(table);
 
@@ -734,17 +873,13 @@ static void p2m_free_subtree(struct p2m_domain *p2m,
      */
     p2m_tlb_flush_sync(p2m);
 
-    mfn = pte_get_mfn(entry);
-    ASSERT(mfn_valid(mfn));
-
-    pg = mfn_to_page(mfn);
-
-    p2m_free_page(p2m, pg);
+    p2m_free_table(p2m, pg);
 }
 
 static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
                                 unsigned int level, unsigned int target,
-                                const unsigned int *offsets)
+                                const unsigned int *offsets,
+                                struct page_info *tbl_pg)
 {
     struct page_info *page;
     unsigned long i;
@@ -756,6 +891,10 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
     unsigned int next_level = level - 1;
     unsigned int level_order = P2M_LEVEL_ORDER(next_level);
 
+    struct p2m_pte_ctx p2m_pte_ctx;
+    /* Init with p2m_invalid just to make compiler happy. */
+    p2m_type_t old_type = p2m_invalid;
+
     /*
      * This should only be called with target != level and the entry is
      * a superpage.
@@ -777,6 +916,24 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
 
     table = __map_domain_page(page);
 
+    p2m_pte_ctx.p2m = p2m;
+
+    if ( MASK_EXTR(entry->pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage )
+    {
+        p2m_pte_ctx.pt_page = tbl_pg;
+        p2m_pte_ctx.index = offsets[level];
+        /*
+         * It doesn't really matter what is a value for a level as
+         * p2m_get_type() doesn't need it, so it is initialized just in case.
+         */
+        p2m_pte_ctx.level = level;
+
+        old_type = p2m_get_type(*entry, &p2m_pte_ctx);
+    }
+
+    p2m_pte_ctx.pt_page = page;
+    p2m_pte_ctx.level = next_level;
+
     for ( i = 0; i < P2M_PAGETABLE_ENTRIES(p2m, next_level); i++ )
     {
         pte_t *new_entry = table + i;
@@ -788,6 +945,13 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
         pte = *entry;
         pte_set_mfn(&pte, mfn_add(mfn, i << level_order));
 
+        if ( MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage )
+        {
+            p2m_pte_ctx.index = i;
+
+            p2m_set_type(&pte, old_type, &p2m_pte_ctx);
+        }
+
         write_pte(new_entry, pte);
     }
 
@@ -799,7 +963,7 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
      */
     if ( next_level != target )
         rv = p2m_split_superpage(p2m, table + offsets[next_level],
-                                 next_level, target, offsets);
+                                 next_level, target, offsets, page);
 
     if ( p2m->clean_dcache )
         clean_dcache_va_range(table, PAGE_SIZE);
@@ -840,6 +1004,7 @@ static int p2m_set_entry(struct p2m_domain *p2m,
      * are still allowed.
      */
     bool removing_mapping = mfn_eq(mfn, INVALID_MFN);
+    struct p2m_pte_ctx tmp_ctx;
     P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
 
     ASSERT(p2m_is_write_locked(p2m));
@@ -882,6 +1047,8 @@ static int p2m_set_entry(struct p2m_domain *p2m,
 
     entry = table + offsets[level];
 
+    tmp_ctx.p2m = p2m;
+
     /*
      * If we are here with level > target, we must be at a leaf node,
      * and we need to break up the superpage.
@@ -890,13 +1057,19 @@ static int p2m_set_entry(struct p2m_domain *p2m,
     {
         /* We need to split the original page. */
         pte_t split_pte = *entry;
+        struct page_info *tbl_pg = mfn_to_page(domain_page_map_to_mfn(table));
 
         ASSERT(pte_is_superpage(*entry, level));
 
-        if ( !p2m_split_superpage(p2m, &split_pte, level, target, offsets) )
+        if ( !p2m_split_superpage(p2m, &split_pte, level, target, offsets,
+                                  tbl_pg) )
         {
+            tmp_ctx.pt_page = tbl_pg;
+            tmp_ctx.index = offsets[level];
+            tmp_ctx.level = level;
+
             /* Free the allocated sub-tree */
-            p2m_free_subtree(p2m, split_pte, level);
+            p2m_free_subtree(p2m, split_pte, &tmp_ctx);
 
             rc = -ENOMEM;
             goto out;
@@ -922,6 +1095,10 @@ static int p2m_set_entry(struct p2m_domain *p2m,
         entry = table + offsets[level];
     }
 
+    tmp_ctx.pt_page = mfn_to_page(domain_page_map_to_mfn(table));
+    tmp_ctx.index = offsets[level];
+    tmp_ctx.level = level;
+
     /*
      * We should always be there with the correct level because all the
      * intermediate tables have been installed if necessary.
@@ -934,7 +1111,7 @@ static int p2m_set_entry(struct p2m_domain *p2m,
         p2m_clean_pte(entry, p2m->clean_dcache);
     else
     {
-        pte_t pte = p2m_pte_from_mfn(mfn, t, false);
+        pte_t pte = p2m_pte_from_mfn(mfn, t, &tmp_ctx);
 
         p2m_write_pte(entry, pte, p2m->clean_dcache);
 
@@ -970,7 +1147,9 @@ static int p2m_set_entry(struct p2m_domain *p2m,
     if ( pte_is_valid(orig_pte) &&
          (!pte_is_valid(*entry) ||
           !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte))) )
-        p2m_free_subtree(p2m, orig_pte, level);
+    {
+        p2m_free_subtree(p2m, orig_pte, &tmp_ctx);
+    }
 
  out:
     unmap_domain_page(table);
@@ -1170,7 +1349,14 @@ static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
 
     if ( pte_is_valid(entry) )
     {
-        *t = p2m_get_type(entry);
+        struct p2m_pte_ctx p2m_pte_ctx = {
+            .pt_page = mfn_to_page(domain_page_map_to_mfn(table)),
+            .index = offsets[level],
+            .level = level,
+            .p2m = p2m,
+        };
+
+        *t = p2m_get_type(entry, &p2m_pte_ctx);
 
         mfn = pte_get_mfn(entry);
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:57:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:57:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188229.1509538 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYMc-0006Aw-RQ; Tue, 16 Dec 2025 16:57:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188229.1509538; Tue, 16 Dec 2025 16:57:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYMc-0006Al-NM; Tue, 16 Dec 2025 16:57:30 +0000
Received: by outflank-mailman (input) for mailman id 1188229;
 Tue, 16 Dec 2025 16:57:29 +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
 <SRS0=wcum=6W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVYLC-0006ge-PV
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:56:02 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1978fbc0-daa0-11f0-b15b-2bf370ae4941;
 Tue, 16 Dec 2025 17:56:00 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-6419aaced59so7635482a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:56:00 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8003cb349csm63169766b.68.2025.12.16.08.55.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:55:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1978fbc0-daa0-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765904160; x=1766508960; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mCMT8ChBXwRrdj1VvVJTl3V8T6Z2iZl/cEqAhM5WkbM=;
        b=Za9+PQ+D+OVv5zrTp07PN6ZBVzoHdqxrHdbc2Ec6ezaQVcuKdQZqZykoWmGrL+xybS
         lBTLjmuew2X+Dc6VNBkwqSdrG5NaUvTxyoDg28SZM+Xbp9ZjBm/HgRChoFEajvx3TR5I
         gF+uBBFzv+jLGqj2k0KSzemHDjz+ojPPzXX1PhBYMvsqmwcgz04Tjau+nRHnIZI2+RH/
         Ee1xJmZi32MMs5ze2+mXqYAfymKzlOs/GjE1Ey21rEEOM94kP3yVUg/m+gz5CmYRsa6f
         m/Wkv10h28C0AIVTZNB98Yndc2NvWLh7FvcVOD8+rJVivI8KX078L+qGqHfADIIBe6y2
         Lakw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765904160; x=1766508960;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=mCMT8ChBXwRrdj1VvVJTl3V8T6Z2iZl/cEqAhM5WkbM=;
        b=Wr7Ie5tUIhS9V6Y5dHXcV0cHOAOv01kLwvVTW0K/VZulT6i5i2Ia5M9Q0QHOUjvhg4
         1lVpj0hpPWOda/n2koTGDxW7vt9I67gJomdFVYxeAqdx2EwOsml/FTdj0WtLa+Q1N/7M
         qonv+3LvUNZKhuVjVoA/WD1vSpJcVWMpZGoORpINvESOO2j32ElW4qryMTC7MJYE+5z7
         HUDEXvrl6Y/xWP5yYHHCPh5TKqXEmQyFmOnLWZ/rkKzXcfQQi4Uo3LHYWUu4jo4O/ByQ
         G6TF1MDzs3cBEJcZHBiIOYu+CaiRUMem7wrJVnlyjVR6yxEFgL69sOJSJqTaTqSEqlGH
         7ZfA==
X-Gm-Message-State: AOJu0YwqWQ2DlPb+T8Hb3hOd8FEjiVcMjqdGOs3fEzQEENMF4Astbrns
	226PFE90CK2Nv6eTUnG4lLxGxchlTffA53OT6ObQhWFHZ83mCjpz77KpzXkU7Q==
X-Gm-Gg: AY/fxX7c+q1M9cIwDqU+a/dTbQNEpxtIIUYn9N0I/hpuKy8M582dMcRd8q27at4nvEc
	YQ4R0RS/a3ZATqHvGSMFVJfejrAGTQVmBjyLEYCSgbdawFw38SmJ268AOP0yAU3RU9UMyWWQyCd
	b2+1qdZWf8aCms73nLY9LI5ELEo3419AKeW+TvWOth/xpIgYN19AFgsPpYgvEzs6xOtmS7GLVhB
	X7j3atX4UW0oExBNlxyW0VH3XkHWfnWPaG0Yw0FnQxOgkG9n7Hqi4xIOtwcOZwSPIDa8fCsjT2l
	99ymcbtONSTF1G222zYTE62EkYdYFEyWTEwABozZ5E7346hxMoNLLwS1JKxTu8KKv/I4spAdR6Q
	Idp3W14wZPgHehGQZEgawQaTkbHwC/x5GtofPKN4xTgpeRI6RO/gyN1NRmWAQwPFA37Tcidk6lJ
	SdaXtaY1+zLNTRbUAK0I4JkeNr2ke+wEccNjRWcnI1yp9JAdlu22IBXhY=
X-Google-Smtp-Source: AGHT+IE8rLRum/JAyd04ALlJncdb2a+Ib19IGcE9/OXbq1FNj/SeyEb5CJRSyCsMnscPvEqUm5RuOw==
X-Received: by 2002:a17:907:2d11:b0:b73:70db:49ab with SMTP id a640c23a62f3a-b7d237743f2mr1447731666b.35.1765904159567;
        Tue, 16 Dec 2025 08:55:59 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 17/19] xen/riscv: add support of page lookup by GFN
Date: Tue, 16 Dec 2025 17:55:27 +0100
Message-ID: <4cef2922ff0fa82eb70e50c737cb00ef27ef13a3.1765879052.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765879052.git.oleksii.kurochko@gmail.com>
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce helper functions for safely querying the P2M (physical-to-machine)
mapping:
 - add p2m_read_lock(), p2m_read_unlock(), and p2m_is_locked() for managing
   P2M lock state.
 - Implement p2m_get_entry() to retrieve mapping details for a given GFN,
   including MFN, page order, and validity.
 - Introduce p2m_get_page_from_gfn() to convert a GFN into a page_info
   pointer, acquiring a reference to the page if valid.
 - Introduce get_page().

Implementations are based on Arm's functions with some minor modifications:
- p2m_get_entry():
  - Reverse traversal of page tables, as RISC-V uses the opposite level
    numbering compared to Arm.
  - Removed the return of p2m_access_t from p2m_get_entry() since
    mem_access_settings is not introduced for RISC-V.
  - Updated BUILD_BUG_ON() to check using the level 0 mask, which corresponds
    to Arm's THIRD_MASK.
  - Replaced open-coded bit shifts with the BIT() macro.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V7:
 - Refactor check_outside_boundary().
 - Reword the comment above p2m_get_entry().
 - As at the moment p2m_get_entry() doesn't pass `t` as NULL we could drop
   "if ( t )" checks inside it to not have dead code now.
 - Add the check inside p2m_get_entry() that requested gfn is correct.
 - Add "if ( t )" check inside p2m_get_page_from_gfn() as it
   is going to be some callers with t = NULL.
---
Changes in V6:
 - Move if-condition with initialization up in p2m_get_page_from_gfn().
 - Pass p2mt to the call of p2m_get_entry() inside p2m_get_page_from_gfn()
   to avoid an issue when 't' is passed NULL. With p2mt passed to p2m_get_entry()
   we will recieve a proper type and so the rest of the function will able to
   continue use a proper type.
- In check_outside_boundary() in the case when is_lower == true fill the bottom
  bits of masked_gfn with all 1s.
- Update code of check_outside_boundary() to return proper level in the case when
  `level` is equal to 0.
- Add ASSERT(p2m) in check_outside_boundary() to be sure that p2m isn't NULL as
  P2M_LEVEL_MASK() depends on p2m value.
---
Changes in V5:
 - Use introduced in earlier patches P2M_DECLARE_OFFSETS() instead of
   DECLARE_OFFSETS().
 - Drop blank line before check_outside_boundary().
 - Use more readable version of if statements inside check_outside_boundary().
 - Accumulate mask in check_outside_boundary() instead of re-writing it for
   each page table level to have correct gfns for comparison.
 - Set argument `t` of p2m_get_entry() to p2m_invalid by default.
 - Drop checking of (rc == P2M_TABLE_MAP_NOMEM ) when p2m_next_level(...,false,...)
   is called.
 - Add ASSERT(mfn & (BIT(P2M_LEVEL_ORDER(level), UL) - 1)); in p2m_get_entry()
   to be sure that recieved `mfn` has cleared lowest bits.
 - Drop `valid` argument from p2m_get_entry(), it is not needed anymore.
 - Drop p2m_lookup(), use p2m_get_entry() explicitly inside p2m_get_page_from_gfn().
 - Update the commit message.
---
Changes in V4:
 - Update prototype of p2m_is_locked() to return bool and accept pointer-to-const.
 - Correct the comment above p2m_get_entry().
 - Drop the check "BUILD_BUG_ON(XEN_PT_LEVEL_MAP_MASK(0) != PAGE_MASK);" inside
   p2m_get_entry() as it is stale and it was needed to sure that 4k page(s) are
   used on L3 (in Arm terms) what is true for RISC-V. (if not special extension
   are used). It was another reason for Arm to have it (and I copied it to RISC-V),
   but it isn't true for RISC-V. (some details could be found in response to the
   patch).
 - Style fixes.
 - Add explanatory comment what the loop inside "gfn is higher then the highest
   p2m mapping" does. Move this loop to separate function check_outside_boundary()
   to cover both boundaries (lower_mapped_gfn and max_mapped_gfn).
 - There is not need to allocate a page table as it is expected that
   p2m_get_entry() normally would be called after a corresponding p2m_set_entry()
   was called. So change 'true' to 'false' in a page table walking loop inside
   p2m_get_entry().
 - Correct handling of p2m_is_foreign case inside p2m_get_page_from_gfn().
 - Introduce and use P2M_LEVEL_MASK instead of XEN_PT_LEVEL_MASK as it isn't take
   into account two extra bits for root table in case of P2M.
 - Drop stale item from "change in v3" - Add is_p2m_foreign() macro and connected stuff.
 - Add p2m_read_(un)lock().
---
Changes in V3:
 - Change struct domain *d argument of p2m_get_page_from_gfn() to
   struct p2m_domain.
 - Update the comment above p2m_get_entry().
 - s/_t/p2mt for local variable in p2m_get_entry().
 - Drop local variable addr in p2m_get_entry() and use gfn_to_gaddr(gfn)
   to define offsets array.
 - Code style fixes.
 - Update a check of rc code from p2m_next_level() in p2m_get_entry()
   and drop "else" case.
 - Do not call p2m_get_type() if p2m_get_entry()'s t argument is NULL.
 - Use struct p2m_domain instead of struct domain for p2m_lookup() and
   p2m_get_page_from_gfn().
 - Move defintion of get_page() from "xen/riscv: implement mfn_valid() and page reference, ownership handling helpers"
---
Changes in V2:
 - New patch.
---
 xen/arch/riscv/include/asm/p2m.h |  21 ++++
 xen/arch/riscv/mm.c              |  13 +++
 xen/arch/riscv/p2m.c             | 184 +++++++++++++++++++++++++++++++
 3 files changed, 218 insertions(+)

diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index b48693a2b4..f63b5dec99 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -41,6 +41,9 @@
 
 #define P2M_GFN_LEVEL_SHIFT(lvl) (P2M_LEVEL_ORDER(lvl) + PAGE_SHIFT)
 
+#define P2M_LEVEL_MASK(p2m, lvl) \
+    (P2M_TABLE_OFFSET(p2m, lvl) << P2M_GFN_LEVEL_SHIFT(lvl))
+
 #define paddr_bits PADDR_BITS
 
 /* Get host p2m table */
@@ -234,6 +237,24 @@ static inline bool p2m_is_write_locked(struct p2m_domain *p2m)
 
 unsigned long construct_hgatp(const struct p2m_domain *p2m, uint16_t vmid);
 
+static inline void p2m_read_lock(struct p2m_domain *p2m)
+{
+    read_lock(&p2m->lock);
+}
+
+static inline void p2m_read_unlock(struct p2m_domain *p2m)
+{
+    read_unlock(&p2m->lock);
+}
+
+static inline bool p2m_is_locked(const struct p2m_domain *p2m)
+{
+    return rw_is_locked(&p2m->lock);
+}
+
+struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
+                                        p2m_type_t *t);
+
 #endif /* ASM__RISCV__P2M_H */
 
 /*
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index e25f995b72..e9ce182d06 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -673,3 +673,16 @@ struct domain *page_get_owner_and_reference(struct page_info *page)
 
     return owner;
 }
+
+bool get_page(struct page_info *page, const struct domain *domain)
+{
+    const struct domain *owner = page_get_owner_and_reference(page);
+
+    if ( likely(owner == domain) )
+        return true;
+
+    if ( owner != NULL )
+        put_page(page);
+
+    return false;
+}
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 8d572f838f..b2d275f7be 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -1057,3 +1057,187 @@ int map_regions_p2mt(struct domain *d,
 
     return rc;
 }
+
+/*
+ * p2m_get_entry() should always return the correct order value, even if an
+ * entry is not present (i.e. the GFN is outside the range):
+ *   [p2m->lowest_mapped_gfn, p2m->max_mapped_gfn]    (1)
+ *
+ * This ensures that callers of p2m_get_entry() can determine what range of
+ * address space would be altered by a corresponding p2m_set_entry().
+ * Also, it would help to avoid costly page walks for GFNs outside range (1).
+ *
+ * Therefore, this function returns true for GFNs outside range (1), and in
+ * that case the corresponding level is returned via the level_out argument.
+ * Otherwise, it returns false and p2m_get_entry() performs a page walk to
+ * find the proper entry.
+ */
+static bool check_outside_boundary(const struct p2m_domain *p2m, gfn_t gfn,
+                                   gfn_t boundary, bool is_lower,
+                                   unsigned int *level_out)
+{
+    unsigned int level = P2M_ROOT_LEVEL(p2m);
+    bool ret = false;
+
+    ASSERT(p2m);
+
+    if ( is_lower ? gfn_x(gfn) < gfn_x(boundary)
+                  : gfn_x(gfn) > gfn_x(boundary) )
+    {
+        for ( ; level; level-- )
+        {
+            unsigned long mask = BIT(P2M_GFN_LEVEL_SHIFT(level), UL) - 1;
+            unsigned long masked_gfn;
+
+            if ( is_lower )
+                masked_gfn = gfn_x(gfn) | mask;
+            else
+                masked_gfn = gfn_x(gfn) & ~mask;
+
+            if ( is_lower ? masked_gfn < gfn_x(boundary)
+                          : masked_gfn > gfn_x(boundary) )
+                break;
+        }
+
+        ret = true;
+    }
+
+    if ( level_out )
+        *level_out = level;
+
+    return ret;
+}
+
+/*
+ * Get the details of a given gfn.
+ *
+ * If the entry is present, the associated MFN, the p2m type of the mapping,
+ * and the page order of the mapping in the page table (i.e., it could be a
+ * superpage) will be returned.
+ *
+ * If the entry is not present, INVALID_MFN will be returned, page_order will
+ * be set according to the order of the invalid range, and the type will be
+ * p2m_invalid.
+ */
+static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
+                           p2m_type_t *t,
+                           unsigned int *page_order)
+{
+    unsigned int level = 0;
+    pte_t entry, *table;
+    int rc;
+    mfn_t mfn = INVALID_MFN;
+    P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
+
+    ASSERT(p2m_is_locked(p2m));
+
+    *t = p2m_invalid;
+
+    if ( gfn_x(gfn) > (BIT(PADDR_BITS - PAGE_SHIFT + 1, UL) - 1) )
+        return mfn;
+
+    if ( check_outside_boundary(p2m, gfn, p2m->lowest_mapped_gfn, true,
+                                &level) )
+        goto out;
+
+    if ( check_outside_boundary(p2m, gfn, p2m->max_mapped_gfn, false, &level) )
+        goto out;
+
+    table = p2m_get_root_pointer(p2m, gfn);
+
+    /*
+     * The table should always be non-NULL because the gfn is below
+     * p2m->max_mapped_gfn and the root table pages are always present.
+     */
+    if ( !table )
+    {
+        ASSERT_UNREACHABLE();
+        level = P2M_ROOT_LEVEL(p2m);
+        goto out;
+    }
+
+    for ( level = P2M_ROOT_LEVEL(p2m); level; level-- )
+    {
+        rc = p2m_next_level(p2m, false, level, &table, offsets[level]);
+        if ( rc == P2M_TABLE_MAP_NONE )
+            goto out_unmap;
+
+        if ( rc != P2M_TABLE_NORMAL )
+            break;
+    }
+
+    entry = table[offsets[level]];
+
+    if ( pte_is_valid(entry) )
+    {
+        *t = p2m_get_type(entry);
+
+        mfn = pte_get_mfn(entry);
+
+        ASSERT(!(mfn_x(mfn) & (BIT(P2M_LEVEL_ORDER(level), UL) - 1)));
+
+        /*
+         * The entry may point to a superpage. Find the MFN associated
+         * to the GFN.
+         */
+        mfn = mfn_add(mfn,
+                      gfn_x(gfn) & (BIT(P2M_LEVEL_ORDER(level), UL) - 1));
+    }
+
+ out_unmap:
+    unmap_domain_page(table);
+
+ out:
+    if ( page_order )
+        *page_order = P2M_LEVEL_ORDER(level);
+
+    return mfn;
+}
+
+struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
+                                        p2m_type_t *t)
+{
+    struct page_info *page;
+    p2m_type_t p2mt;
+    mfn_t mfn;
+
+    p2m_read_lock(p2m);
+    mfn = p2m_get_entry(p2m, gfn, &p2mt, NULL);
+
+    if ( t )
+        *t = p2mt;
+
+    if ( !mfn_valid(mfn) )
+    {
+        p2m_read_unlock(p2m);
+        return NULL;
+    }
+
+    page = mfn_to_page(mfn);
+
+    /*
+     * get_page won't work on foreign mapping because the page doesn't
+     * belong to the current domain.
+     */
+    if ( unlikely(p2m_is_foreign(p2mt)) )
+    {
+        const struct domain *fdom = page_get_owner_and_reference(page);
+
+        p2m_read_unlock(p2m);
+
+        if ( fdom )
+        {
+            if ( likely(fdom != p2m->domain) )
+                return page;
+
+            ASSERT_UNREACHABLE();
+            put_page(page);
+        }
+
+        return NULL;
+    }
+
+    p2m_read_unlock(p2m);
+
+    return get_page(page, p2m->domain) ? page : NULL;
+}
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:57:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:57:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188238.1509547 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYMf-0006Uc-61; Tue, 16 Dec 2025 16:57:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188238.1509547; Tue, 16 Dec 2025 16:57:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYMf-0006UT-32; Tue, 16 Dec 2025 16:57:33 +0000
Received: by outflank-mailman (input) for mailman id 1188238;
 Tue, 16 Dec 2025 16:57:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wcum=6W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVYLF-0006gk-0i
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:56:05 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1ad9df3d-daa0-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 17:56:03 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-649728a2228so6507098a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:56:03 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8003cb349csm63169766b.68.2025.12.16.08.56.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:56:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1ad9df3d-daa0-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765904162; x=1766508962; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ed6ubQSKim63EAsaGe0KmMXZB1/GjuvxCRNk8IaYETQ=;
        b=EjT5qx9d5l512+GWzlxlOBulHOBQD9vkrLr9r2m9GAqz+ZWsQljDlNS5ifbuLfgGGV
         EhoFRHOMEWKFEx/mvixbuMNJkxmYbzI2qEApeeEpCe6NONs8wro1Hws6mqZ+Ha3BQGXX
         6YHuZ4Ke/BFAf2MHl6PQ/hZOqNHd0phHxXNvM3OODDFqOMAg75rt/ROL2HZz9WUyd07u
         toPu2BT8mF8JCWdzOCIoy2uFLuRFMSBnoT4rumtNOIoY2S71hwuFlnCwr1U6fbKmQ8D1
         Cmr3r7GNu+ju8JIJ29+ZqLmoxwSykBMRw1JNAZIiCeOwNPBSLV35DpGcSt/uhlq+T8SF
         ZV3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765904162; x=1766508962;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Ed6ubQSKim63EAsaGe0KmMXZB1/GjuvxCRNk8IaYETQ=;
        b=FIHW/VOjqF9h5wjlhcUf51xRrAOLqp+dcyF2HlJANRVblYnk03WW1AjLOJzUUttVII
         iGzMYJDQnU+ryulwy1gsbnLUm8JQ49tyJaKNzAHhfm08pqKU6qhYuXPcbAJw9jsMTdls
         3nBHj5lulLtgid4mu6Zj/WcIAkkLrP9zy59dPp5Kbv0tCvZ275x2fvFrKhQBH+L5WfPh
         dgwBPduWEFRXgNdB9HCEZkjLk9naOtBg+npPiIRPi2ZaZDfZe/9ofPdHUBJm7aIeyErs
         PuRWbWsE04v2BMVLJVpFafv22lmv0Hmd4MJv1Sg0mFTjM+CIlKtVLa4R5JO74FrfQD+f
         iueg==
X-Gm-Message-State: AOJu0YxgeNYqYj1ymKFJyVUScIJWF2GUc2L4fhy2/V/NJ/+Sz4Gr70Q5
	a+jMNG3RIoNgmLbXTqlnx2XUUklBB8V8iznlo0YA5OgnAES24UgH1GWlZgkQPQ==
X-Gm-Gg: AY/fxX4e+xeM3ILvc7LKj9EX46NLjx6rXTrRXzRvyXm3cFaXgl/T5t9ozsAw5a/wsg4
	BrVBNFaSuww3v8uAP4U3WAW5FMgFWe335kJl+JxKioQf6IDiLxcpnC7fHZRd7GeULka2nAK67iO
	C8nPmV4WpMJgMoxoS1r5yyaXey83lj0+M5mQWtsDVkvouzEWYfgbUesoGhxe+UA/A517MxeYhSm
	0JwfFIw10gc5SAIQSLeM5tSn/M+QneGNVecvjaBi1g+xd/qXL6ON/QKXdbnJ0RVtOLsFP4QFDJf
	fxFJgsXDVCLWdzPkLZlkbNntr62O0rXaMGS/P+KnwP4JjLvD0Ore01OlSd7RJSoNYcO2AB8rHVm
	URLGQJognplesJaBXRhbph8c2GJ6zacO2YMAuDoNco9l5bgMQ6tA9PxMt32ZiMQ6/NGkQ5ejkZm
	bxTfx+W6kF5Var4xMp38I3OQpFC0F+gwhtbV2M76ap5TwaYhzGualGwcM=
X-Google-Smtp-Source: AGHT+IE2rFMU05wY3GKq+WOgxrWncQrUmNG/hmxTgSbtrJm5bXQKWrd+gN57HuRFWk+DrNaP0OlBOg==
X-Received: by 2002:a17:907:3d93:b0:b79:f753:68fb with SMTP id a640c23a62f3a-b7d235c7f02mr1714213766b.4.1765904161969;
        Tue, 16 Dec 2025 08:56:01 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 19/19] xen/riscv: update p2m_set_entry to free unused metadata pages
Date: Tue, 16 Dec 2025 17:55:29 +0100
Message-ID: <4274ff86c3b7233c03d72faf8989991094a7630a.1765879052.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765879052.git.oleksii.kurochko@gmail.com>
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce tracking of metadata page entries usage and if all of them are
p2m_invalid then free them.

Intermediate P2M page tables are allocated with MEMF_no_owner, so we are free
to repurpose struct page_info fields for them. Since page_info.u.* is not
used for such pages, introduce a used_entries counter in struct page_info
to track how many metadata entries are in use for a given intermediate P2M
page table.

The counter is updated in p2m_set_type() when metadata entries transition
between p2m_invalid and a valid external type. When the last metadata entry
is cleared (used_entries == 0), the associated metadata page is freed and
returned to the P2M pool.

Refactor metadata page freeing into a new helper, p2m_free_metadata_page(),
as the same logic is needed both when tearing down a P2M table and when
all metadata entries become p2m_invalid in p2m_set_type(). As part of this
refactoring, move the declaration of p2m_free_page() earlier to satisfy the
new helper.

Additionally, implement page_set_tlbflush_timestamp() for RISC-V instead of
BUGing, as it is invoked when returning memory to the domheap.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V7:
 - New patch.
---
 xen/arch/riscv/include/asm/flushtlb.h |  2 +-
 xen/arch/riscv/include/asm/mm.h       | 12 ++++++++++
 xen/arch/riscv/p2m.c                  | 32 +++++++++++++++++++++------
 3 files changed, 38 insertions(+), 8 deletions(-)

diff --git a/xen/arch/riscv/include/asm/flushtlb.h b/xen/arch/riscv/include/asm/flushtlb.h
index ab32311568..4f64f97570 100644
--- a/xen/arch/riscv/include/asm/flushtlb.h
+++ b/xen/arch/riscv/include/asm/flushtlb.h
@@ -38,7 +38,7 @@ static inline void tlbflush_filter(cpumask_t *mask, uint32_t page_timestamp) {}
 
 static inline void page_set_tlbflush_timestamp(struct page_info *page)
 {
-    BUG_ON("unimplemented");
+    page->tlbflush_timestamp = tlbflush_current_time();
 }
 
 static inline void arch_flush_tlb_mask(const cpumask_t *mask)
diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 48162f5d65..a005d0247a 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -113,6 +113,18 @@ struct page_info
             unsigned long type_info;
         } inuse;
 
+        /* Page is used as an intermediate P2M page table: count_info == 0 */
+        struct {
+            /*
+            * Tracks the number of used entries in the metadata page table.
+            *
+            * If used_entries == 0, then `page_info.v.md.pg` can be freed and
+            * returned to the P2M pool.
+            */
+            unsigned long used_entries;
+        } md;
+
+
         /* Page is on a free list: ((count_info & PGC_count_mask) == 0). */
         union {
             struct {
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index bbc3d53d01..496e8c394f 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -51,6 +51,18 @@ static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
     .name = "Bare",
 };
 
+static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
+
+static inline void p2m_free_metadata_page(struct p2m_domain *p2m,
+                                          struct page_info **md_pg)
+{
+    if ( *md_pg )
+    {
+        p2m_free_page(p2m, *md_pg);
+        *md_pg = NULL;
+    }
+}
+
 unsigned char get_max_supported_mode(void)
 {
     return max_gstage_mode.mode;
@@ -455,16 +467,27 @@ static void p2m_set_type(pte_t *pte, p2m_type_t t,
 
     if ( t >= p2m_first_external )
     {
+        if ( metadata[ctx->index].type == p2m_invalid )
+            ctx->pt_page->u.md.used_entries++;
+
         metadata[ctx->index].type = t;
 
         t = p2m_ext_storage;
     }
     else if ( metadata )
+    {
+        if ( metadata[ctx->index].type != p2m_invalid )
+            ctx->pt_page->u.md.used_entries--;
+
         metadata[ctx->index].type = p2m_invalid;
+    }
 
     pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
 
     unmap_domain_page(metadata);
+
+    if ( *md_pg && !ctx->pt_page->u.md.used_entries )
+        p2m_free_metadata_page(ctx->p2m, md_pg);
 }
 
 /*
@@ -631,18 +654,13 @@ static pte_t page_to_p2m_table(const struct page_info *page)
     return p2m_pte_from_mfn(page_to_mfn(page), p2m_invalid, NULL);
 }
 
-static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
-
 /*
  * Free page table's page and metadata page linked to page table's page.
  */
 static void p2m_free_table(struct p2m_domain *p2m, struct page_info *tbl_pg)
 {
-    if ( tbl_pg->v.md.pg )
-    {
-        p2m_free_page(p2m, tbl_pg->v.md.pg);
-        tbl_pg->v.md.pg = NULL;
-    }
+    p2m_free_metadata_page(p2m, &tbl_pg->v.md.pg);
+
     p2m_free_page(p2m, tbl_pg);
 }
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:57:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:57:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188288.1509559 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYN4-00082J-GP; Tue, 16 Dec 2025 16:57:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188288.1509559; Tue, 16 Dec 2025 16:57:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYN4-000827-BB; Tue, 16 Dec 2025 16:57:58 +0000
Received: by outflank-mailman (input) for mailman id 1188288;
 Tue, 16 Dec 2025 16:57:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wcum=6W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVYLB-0006gk-5e
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:56:01 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 18ad1425-daa0-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 17:55:59 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-64175dfc338so6865964a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:55:59 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8003cb349csm63169766b.68.2025.12.16.08.55.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:55:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 18ad1425-daa0-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765904158; x=1766508958; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=npnrVfa20a3qHvfG7hC8vnLRP2tR37Ck6hm1kYf1IlE=;
        b=XOWRqdQzrP4TZP9NiHLA/wGrtkDPXZmaEF1m/TcDrfCrwee16glfOjx8YLxyLVtMVI
         c644jxOx0/qU3BTe1/DI+UlbWzr5h4Xzza8HgUbz25EL29KnIiqx5j+XkXY3K2HvvxM9
         OY+OoXYFnP7vqd/VEQYOD7tgWhGMepPrbQMM6W18m7PuhV9znrqZ6RAYKEjzFdSWg2eB
         2gx2Om4BWb5B9ti3AMZf+2pFpZnp4maWMRAGjS7yMYLP2a1j4EvgSJqIVa3v/TiJs+Ma
         bPZfCEZfLfhp43fqtiSf/AYNFotxiXNM8tWZdFuuaiAqYrrv46VCACeCjt6DGbmdKmxv
         Pkwg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765904158; x=1766508958;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=npnrVfa20a3qHvfG7hC8vnLRP2tR37Ck6hm1kYf1IlE=;
        b=PvgacSEaQ2QVDIUx6jzI+UF3KbIIUzweywoqrMH2oWruvJ/2yTMgIWGmTn7AxMGsRM
         KrO+GPrfw0LcY9rX5OvUFDXdAGmJ1f5R69OT69adKjoSfwyDQHnhk4mZoFiCJlw044yk
         CHUxH8E9UGoKR6l31eaTYs9cBCDjQ7oUMdPrnBJmYx27sHb4Jjr+QWJ/Ufaxg0Ccj6vu
         cuYz9FREE0OBitCqBtSChr9uJMQwMkIw+EnAxvEleUjsDkyUBa7sraYfp0VylwEiXv5A
         CKEaNYUhgVuhjDCwrLzwRGnSldP0+dgEssxjpH1ZmAQBPMh4d4o5dpr38J3/y0sJze+1
         pVEw==
X-Gm-Message-State: AOJu0YwBdyJgAf6AbJOp8fU90WFSnK+6KzuWImLm35LZGGF+qXTd/sat
	IzlszQGAZMVnHWHTXnDvzTpEeOajCkEia9fyAbOqVOdT7Bfq/+z9mbvhvUEgfA==
X-Gm-Gg: AY/fxX7W9SqeopnHIjjtqbs5LxuLQY1XCw/4WBe+WF7HiennWjco9lJaoQZg+UCa4w0
	r5cJIed3FdSEKEYRDI+0Au87cnaYgwU3OgU0TmTmNcX9C/1+tIk1eHFyxJIO5CDA5ChBPD+lB7n
	yh0KmK5okBYeH436KUc8czOF3VDXrC0hAfppAOd4T6H+mTIJJkcUou26uKRuJ2Ql+6dC9vstRfR
	fFhbFQooMQ57MInTc00yA3KSJW8ryltjUXhCFJ9v2VfDcd0iWpTsyCuKQypjaWXiG12U0JhHvH+
	qJwXU41oXRojvd3nuSfPV4FmAc5uitW4wM7kUMJmoOueeTGZ9PYkn07FU9WQLJlLtjmVyOogc/W
	BTfyGKeUgm2+2Qyya8XW6vOWX6Qvbm9pLmupNTxz7ih37lAW1JTRUvgOwY2hBkuk7pJz3oAMUQp
	QNW/K982NMMJxw0gt2wej/Xz8wxt6drfyGo7H3YTK2n/Fg7hQGk0P/900=
X-Google-Smtp-Source: AGHT+IEhh96FoG+DlQmle/loaK4dt/aUlX1QxFx9FUfXT3OtZxjfvvsrSI7taBBzvEZBtzDDIoeC7Q==
X-Received: by 2002:a17:907:3f20:b0:b79:f965:1cd4 with SMTP id a640c23a62f3a-b7d23aa403amr1599499566b.55.1765904158502;
        Tue, 16 Dec 2025 08:55:58 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 16/19] xen/riscv: implement mfn_valid() and page reference, ownership handling helpers
Date: Tue, 16 Dec 2025 17:55:26 +0100
Message-ID: <d6574849004dcc42eb65999908b49f3c89e8b1e3.1765879052.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765879052.git.oleksii.kurochko@gmail.com>
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement the mfn_valid() macro to verify whether a given MFN is valid by
checking that it falls within the range [start_page, max_page).
These bounds are initialized based on the start and end addresses of RAM.

As part of this patch, start_page is introduced and initialized with the
PFN of the first RAM page.
Also, initialize pdx_group_valid() by calling set_pdx_range() when
memory banks are being mapped.

Also, after providing a non-stub implementation of the mfn_valid() macro,
the following compilation errors started to occur:
  riscv64-linux-gnu-ld: prelink.o: in function `alloc_heap_pages':
  /build/xen/common/page_alloc.c:1054: undefined reference to `page_is_offlinable'
  riscv64-linux-gnu-ld: /build/xen/common/page_alloc.c:1035: undefined reference to `page_is_offlinable'
  riscv64-linux-gnu-ld: prelink.o: in function `reserve_offlined_page':
  /build/xen/common/page_alloc.c:1151: undefined reference to `page_is_offlinable'
  riscv64-linux-gnu-ld: ./.xen-syms.0: hidden symbol `page_is_offlinable' isn't defined
  riscv64-linux-gnu-ld: final link failed: bad value
  make[2]: *** [arch/riscv/Makefile:28: xen-syms] Error 1

To resolve these errors, the following functions have also been introduced,
based on their Arm counterparts:
- page_get_owner_and_reference() and its variant to safely acquire a
  reference to a page and retrieve its owner.
- Implement page_is_offlinable() to return false for RISC-V.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V6-7:
 - Nothing changed. Only rebase.
---
Changes in V5:
- Move declaration/defintion of page_is_offlinale() before put_page() to have
  get_ and put_ functions together.
- Correct code style of do-while loop.
- Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V4:
 - Rebase the patch on top of patch series "[PATCH v2 0/2] constrain page_is_ram_type() to x86".
 - Add implementation of page_is_offlinable() instead of page_is_ram().
 - Update the commit message.
---
Changes in V3:
 - Update defintion of mfn_valid().
 - Use __ro_after_init for variable start_page.
 - Drop ASSERT_UNREACHABLE() in page_get_owner_and_nr_reference().
 - Update the comment inside do/while in page_get_owner_and_nr_reference().
 - Define _PGC_static and drop "#ifdef CONFIG_STATIC_MEMORY" in put_page_nr().
 - Initialize pdx_group_valid() by calling set_pdx_range() when memory banks are mapped.
 - Drop page_get_owner_and_nr_reference() and implement page_get_owner_and_reference()
   without reusing of a page_get_owner_and_nr_reference() to avoid potential dead code.
 - Move defintion of get_page() to "xen/riscv: add support of page lookup by GFN", where
   it is really used.
---
Changes in V2:
 - New patch.
---
 xen/arch/riscv/include/asm/mm.h |  9 +++++++--
 xen/arch/riscv/mm.c             | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 39 insertions(+), 2 deletions(-)

diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 08f500c99d..1a99e1cf0a 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -5,6 +5,7 @@
 
 #include <public/xen.h>
 #include <xen/bug.h>
+#include <xen/compiler.h>
 #include <xen/const.h>
 #include <xen/mm-frame.h>
 #include <xen/pdx.h>
@@ -300,8 +301,12 @@ static inline bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
 #define page_get_owner(p)    (p)->v.inuse.domain
 #define page_set_owner(p, d) ((p)->v.inuse.domain = (d))
 
-/* TODO: implement */
-#define mfn_valid(mfn) ({ (void)(mfn); 0; })
+extern unsigned long start_page;
+
+#define mfn_valid(mfn) ({                                               \
+    unsigned long tmp_mfn = mfn_x(mfn);                                 \
+    likely((tmp_mfn >= start_page)) && likely(__mfn_valid(tmp_mfn));    \
+})
 
 #define PFN_ORDER(pg) ((pg)->v.free.order)
 
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 2e42293986..e25f995b72 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -521,6 +521,8 @@ static void __init setup_directmap_mappings(unsigned long base_mfn,
 #error setup_{directmap,frametable}_mapping() should be implemented for RV_32
 #endif
 
+unsigned long __ro_after_init start_page;
+
 /*
  * Setup memory management
  *
@@ -570,9 +572,13 @@ void __init setup_mm(void)
         ram_end = max(ram_end, bank_end);
 
         setup_directmap_mappings(PFN_DOWN(bank_start), PFN_DOWN(bank_size));
+
+        set_pdx_range(paddr_to_pfn(bank_start), paddr_to_pfn(bank_end));
     }
 
     setup_frametable_mappings(ram_start, ram_end);
+
+    start_page = PFN_DOWN(ram_start);
     max_page = PFN_DOWN(ram_end);
 }
 
@@ -623,6 +629,11 @@ void flush_page_to_ram(unsigned long mfn, bool sync_icache)
         invalidate_icache();
 }
 
+bool page_is_offlinable(mfn_t mfn)
+{
+    return false;
+}
+
 void put_page(struct page_info *page)
 {
     unsigned long nx, x, y = page->count_info;
@@ -641,3 +652,24 @@ void put_page(struct page_info *page)
             free_domheap_page(page);
     }
 }
+
+struct domain *page_get_owner_and_reference(struct page_info *page)
+{
+    unsigned long x, y = page->count_info;
+    struct domain *owner;
+
+    do {
+        x = y;
+        /*
+         * Count ==  0: Page is not allocated, so we cannot take a reference.
+         * Count == -1: Reference count would wrap, which is invalid.
+         */
+        if ( unlikely(((x + 1) & PGC_count_mask) <= 1) )
+            return NULL;
+    } while ( (y = cmpxchg(&page->count_info, x, x + 1)) != x );
+
+    owner = page_get_owner(page);
+    ASSERT(owner);
+
+    return owner;
+}
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 16:57:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 16:57:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188293.1509562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYN4-00084l-PJ; Tue, 16 Dec 2025 16:57:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188293.1509562; Tue, 16 Dec 2025 16:57:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVYN4-00083h-JA; Tue, 16 Dec 2025 16:57:58 +0000
Received: by outflank-mailman (input) for mailman id 1188293;
 Tue, 16 Dec 2025 16:57:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wcum=6W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVYL9-0006gk-8i
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 16:55:59 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 17954e4d-daa0-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 17:55:57 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b75c7cb722aso933928666b.1
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 08:55:57 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8003cb349csm63169766b.68.2025.12.16.08.55.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 08:55:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 17954e4d-daa0-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765904157; x=1766508957; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HHHCIzHZyaTnkr2DlsPf6BvUrICTFqGn7vDM9vV1Gt8=;
        b=MmSiUZGgbvcpljxjoI+ihn5TFUjoHO4KDrDbcff85hoO1DA5PEubapWc/h1I9cVj+U
         dJHvPT3OgmxdTpy7vBxwF45VYl8Rkd0tXoWYirTzyZpZRx9JpME1Gx1VTW82yD+QuoZc
         sq5nKFW6t+hszcVV5L7mzcOKTzxiiz16T/P2dUS3xXUPnR4LF6E593i1h+kpPxJMWvBo
         +mi+1xxkqps1gEQKZJ+MJWlehtAom7i5Ms45O6UxEUlMLmUc4W1AZjZ/4w8phUP0EQdR
         OBLUY2h4aUoPYPK7RXoftnsPsv7t+de/p9Xi1du63JHvALAxyoH1bYji4gdmn8ylE/Kj
         YblQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765904157; x=1766508957;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=HHHCIzHZyaTnkr2DlsPf6BvUrICTFqGn7vDM9vV1Gt8=;
        b=AAtLN9rOfWLmmnApEmawwC1WzHWV3LHgrk3LOn66QIiTTQ5kKlJq/X105GOQEu1SnD
         HmR4RC2Zz83PedL/ZJ85Io4zWXbYUrKHX52jzG4Xbvxah7YbAr6QbYUcMGeCmTa60cTz
         Fj5b119wvLWi3FHOalpdrY/RsOZ2JCMzANGfwMMTwH1RROb/ll6uUIHcRH1QjfXnVHtI
         aSTMzn4SRvQH22fR3NieaMC9pgYDfYdd2M7ueEeCJpSZOf0dXaUX9tVPfkJBSmPOEQX2
         +YblxCb+ImltKXrixq4U7iD6uo83DFscTVV3FMbbOmIBu+9wb2fq1oLO82YjCulF1Kr2
         G7RA==
X-Gm-Message-State: AOJu0YyHme6Yfkp9qb+diffrljKED6u+1yZNQq5ktFAvwwHv5/ufGxOp
	Ms4aDZCpiCfd076cDtV0lTwHnSO3K/V3rwtkA3s+b00EQzMrEFrzRiYdDToigA==
X-Gm-Gg: AY/fxX6YhqGBaPZ5MGenlzBsN4SOWDaA3zFEPbxj+MCtEQ9njCqBvnRQwTvEonIqoIm
	9Kn/BniHAx0/ebdKBf9edqvkjn/ijgjYycJOTam0vddEx6qsFOLG4EMPR91NZZpO6UA6e666HuN
	UcLyBKY2yjlwFc1IjvAdfLUp5KLSsnnyBpoYiUNNZJsQlcjPsxrYNghWgHLGDxzUVxwEE0oIiMR
	hScuOSjFZVR0uNgXk60hxXcgPjzBWHtMP0xfzvnhWEl0RaccPZWzRyXiszoAqqecR7oKGG3EQly
	0tN9ikPHhG8AX8tw1kdN7DSvlD85EneQ7sT6gJG4xpeYc3aQud6+xlp8mQn9zRCJRCYknLLfz9n
	DwcQhh94YOSKozJ8K4WCLijaP49tCiEigbftMRhMoWT9h5NhnO5srcnhrpmQpa6Wjp3TmscES5O
	BQueqCUb/m6vZnicV15DxNIJk08SblEeKVbSwllA3GEQIYwaeyYr4ObBM=
X-Google-Smtp-Source: AGHT+IFq8pWZqw1VVV9XuKz/HpK2WKDS++VyK0Qi0zkxI4GUhEonWHjkEIXdXpT/amQksDbo1N173w==
X-Received: by 2002:a17:906:c109:b0:b73:8cea:62bb with SMTP id a640c23a62f3a-b7d237730b0mr1526198666b.31.1765904156415;
        Tue, 16 Dec 2025 08:55:56 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 14/19] xen/riscv: Implement superpage splitting for p2m mappings
Date: Tue, 16 Dec 2025 17:55:24 +0100
Message-ID: <7f5e65fbaf518bfd5db127987d44c9bcee463d18.1765879052.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765879052.git.oleksii.kurochko@gmail.com>
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add support for down large memory mappings ("superpages") in the RISC-V
p2m mapping so that smaller, more precise mappings ("finer-grained entries")
can be inserted into lower levels of the page table hierarchy.

To implement that the following is done:
- Introduce p2m_split_superpage(): Recursively shatters a superpage into
  smaller page table entries down to the target level, preserving original
  permissions and attributes.
- p2m_set_entry() updated to invoke superpage splitting when inserting
  entries at lower levels within a superpage-mapped region.

This implementation is based on the ARM code, with modifications to the part
that follows the BBM (break-before-make) approach, some parts are simplified
as according to RISC-V spec:
  It is permitted for multiple address-translation cache entries to co-exist
  for the same address. This represents the fact that in a conventional
  TLB hierarchy, it is possible for multiple entries to match a single
  address if, for example, a page is upgraded to a superpage without first
  clearing the original non-leaf PTE’s valid bit and executing an SFENCE.VMA
  with rs1=x0, or if multiple TLBs exist in parallel at a given level of the
  hierarchy. In this case, just as if an SFENCE.VMA is not executed between
  a write to the memory-management tables and subsequent implicit read of the
  same address: it is unpredictable whether the old non-leaf PTE or the new
  leaf PTE is used, but the behavior is otherwise well defined.
In contrast to the Arm architecture, where BBM is mandatory and failing to
use it in some cases can lead to CPU instability, RISC-V guarantees
stability, and the behavior remains safe — though unpredictable in terms of
which translation will be used.

Additionally, the page table walk logic has been adjusted, as ARM uses the
opposite level numbering compared to RISC-V.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V6-7:
 - Move introduction of pte_is_superpage() here as it is starting to be
   used in this patch now.
---
Changes in V5:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
 - use next_level when p2m_split_superpage() is recursively called
   instead of using "level-1".
---
Changes in V4:
 - s/number of levels/level numbering in the commit message.
 - s/permissions/attributes.
 - Remove redundant comment in p2m_split_superpage() about page
   splitting.
 - Use P2M_PAGETABLE_ENTRIES as XEN_PT_ENTRIES
   doesn't takeinto  into acount that G stage root page table is
   extended by 2 bits.
 - Use earlier introduced P2M_LEVEL_ORDER().
---
Changes in V3:
 - Move     page_list_add(page, &p2m->pages) inside p2m_alloc_page().
 - Use 'unsigned long' for local vairiable 'i' in p2m_split_superpage().
 - Update the comment above if ( next_level != target ) in p2m_split_superpage().
 - Reverse cycle to iterate through page table levels in p2m_set_entry().
 - Update p2m_split_superpage() with the same changes which are done in the
   patch "P2M: Don't try to free the existing PTE if we can't allocate a new table".
---
Changes in V2:
 - New patch. It was a part of a big patch "xen/riscv: implement p2m mapping
   functionality" which was splitted to smaller.
 - Update the commit above the cycle which creates new page table as
   RISC-V travserse page tables in an opposite to ARM order.
 - RISC-V doesn't require BBM so there is no needed for invalidating
   and TLB flushing before updating PTE.
---
 xen/arch/riscv/include/asm/page.h |   5 ++
 xen/arch/riscv/p2m.c              | 116 +++++++++++++++++++++++++++++-
 2 files changed, 119 insertions(+), 2 deletions(-)

diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
index b7cd61df8d..b465a90325 100644
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -190,6 +190,11 @@ static inline bool pte_is_mapping(pte_t p)
     return (p.pte & PTE_VALID) && (p.pte & PTE_ACCESS_MASK);
 }
 
+static inline bool pte_is_superpage(pte_t p, unsigned int level)
+{
+    return (level > 0) && pte_is_mapping(p);
+}
+
 static inline int clean_and_invalidate_dcache_va_range(const void *p,
                                                        unsigned long size)
 {
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 9e1a660316..8d572f838f 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -742,7 +742,88 @@ static void p2m_free_subtree(struct p2m_domain *p2m,
     p2m_free_page(p2m, pg);
 }
 
-/* Insert an entry in the p2m */
+static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
+                                unsigned int level, unsigned int target,
+                                const unsigned int *offsets)
+{
+    struct page_info *page;
+    unsigned long i;
+    pte_t pte, *table;
+    bool rv = true;
+
+    /* Convenience aliases */
+    mfn_t mfn = pte_get_mfn(*entry);
+    unsigned int next_level = level - 1;
+    unsigned int level_order = P2M_LEVEL_ORDER(next_level);
+
+    /*
+     * This should only be called with target != level and the entry is
+     * a superpage.
+     */
+    ASSERT(level > target);
+    ASSERT(pte_is_superpage(*entry, level));
+
+    page = p2m_alloc_page(p2m);
+    if ( !page )
+    {
+        /*
+         * The caller is in charge to free the sub-tree.
+         * As we didn't manage to allocate anything, just tell the
+         * caller there is nothing to free by invalidating the PTE.
+         */
+        memset(entry, 0, sizeof(*entry));
+        return false;
+    }
+
+    table = __map_domain_page(page);
+
+    for ( i = 0; i < P2M_PAGETABLE_ENTRIES(p2m, next_level); i++ )
+    {
+        pte_t *new_entry = table + i;
+
+        /*
+         * Use the content of the superpage entry and override
+         * the necessary fields. So the correct attributes are kept.
+         */
+        pte = *entry;
+        pte_set_mfn(&pte, mfn_add(mfn, i << level_order));
+
+        write_pte(new_entry, pte);
+    }
+
+    /*
+     * Shatter superpage in the page to the level we want to make the
+     * changes.
+     * This is done outside the loop to avoid checking the offset
+     * for every entry to know whether the entry should be shattered.
+     */
+    if ( next_level != target )
+        rv = p2m_split_superpage(p2m, table + offsets[next_level],
+                                 next_level, target, offsets);
+
+    if ( p2m->clean_dcache )
+        clean_dcache_va_range(table, PAGE_SIZE);
+
+    /*
+     * TODO: an inefficiency here: the caller almost certainly wants to map
+     *       the same page again, to update the one entry that caused the
+     *       request to shatter the page.
+     */
+    unmap_domain_page(table);
+
+    /*
+     * Even if we failed, we should (according to the current implemetation
+     * of a way how sub-tree is freed if p2m_split_superpage hasn't been
+     * finished fully) install the newly allocated PTE
+     * entry.
+     * The caller will be in charge to free the sub-tree.
+     */
+    p2m_write_pte(entry, page_to_p2m_table(page), p2m->clean_dcache);
+
+    return rv;
+}
+
+/* Insert an entry in the p2m. */
 static int p2m_set_entry(struct p2m_domain *p2m,
                          gfn_t gfn,
                          unsigned long page_order,
@@ -807,7 +888,38 @@ static int p2m_set_entry(struct p2m_domain *p2m,
      */
     if ( level > target )
     {
-        panic("Shattering isn't implemented\n");
+        /* We need to split the original page. */
+        pte_t split_pte = *entry;
+
+        ASSERT(pte_is_superpage(*entry, level));
+
+        if ( !p2m_split_superpage(p2m, &split_pte, level, target, offsets) )
+        {
+            /* Free the allocated sub-tree */
+            p2m_free_subtree(p2m, split_pte, level);
+
+            rc = -ENOMEM;
+            goto out;
+        }
+
+        p2m_write_pte(entry, split_pte, p2m->clean_dcache);
+
+        p2m->need_flush = true;
+
+        /* Then move to the level we want to make real changes */
+        for ( ; level > target; level-- )
+        {
+            rc = p2m_next_level(p2m, true, level, &table, offsets[level]);
+
+            /*
+             * The entry should be found and either be a table
+             * or a superpage if level 0 is not targeted
+             */
+            ASSERT(rc == P2M_TABLE_NORMAL ||
+                   (rc == P2M_TABLE_SUPER_PAGE && target > 0));
+        }
+
+        entry = table + offsets[level];
     }
 
     /*
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 21:51:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 21:51:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188407.1509577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVcx4-0006dD-J7; Tue, 16 Dec 2025 21:51:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188407.1509577; Tue, 16 Dec 2025 21:51:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVcx4-0006d6-G5; Tue, 16 Dec 2025 21:51:26 +0000
Received: by outflank-mailman (input) for mailman id 1188407;
 Tue, 16 Dec 2025 21:51:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=TkDs=6W=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1vVcx3-0006cd-LX
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 21:51:25 +0000
Received: from mail.zytor.com (terminus.zytor.com [2607:7c80:54:3::136])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 58adcd80-dac9-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 22:51:17 +0100 (CET)
Received: from ehlo.thunderbird.net (c-76-133-66-138.hsd1.ca.comcast.net
 [76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 5BGLohdD2591914
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Tue, 16 Dec 2025 13:50:43 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 58adcd80-dac9-11f0-9cce-f158ae23cfc8
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 5BGLohdD2591914
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025112201; t=1765921845;
	bh=IUFjXMGEioy90PCRU6K4eEZsewA4J72rUYR0KWqV+PM=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=TaSruyIL5BsuQXNl77ikEHcqTR1fDc/rJVG9GGilNzbXMjAWLMi5zLkeAnIAug1+r
	 Su/ah9a3Wgx0pu3LR0we0eDApaY8L/uZC28BGqjRZAvTkiWEJ87pqbp53NDubEKBmc
	 G2Nlb4Bu15QyNTu7ZtHdHCV5hKeXr86jkQ674prA51A6dCUfANhW1Hsg5QmpearEVm
	 kSTg37FHH2iRaLQ9ZpJ76YZa69FMDMyr7gujzLXDUstSm7PXe85dAgbUVevIepDrwN
	 VkvaQfn0WxKIabhsLzFt4y2wKfCXTwj33MPECOh1RPxcmhVPcWl0HrC+VxhS+9q4G0
	 a/7lubgc33EpQ==
Date: Tue, 16 Dec 2025 13:50:42 -0800
From: "H. Peter Anvin" <hpa@zytor.com>
To: David Laight <david.laight.linux@gmail.com>
CC: =?ISO-8859-1?Q?J=FCrgen_Gro=DF?= <jgross@suse.com>,
        Ingo Molnar <mingo@kernel.org>, linux-kernel@vger.kernel.org,
        x86@kernel.org, virtualization@lists.linux.dev, kvm@vger.kernel.org,
        linux-hwmon@vger.kernel.org, linux-block@vger.kernel.org,
        Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        Ajay Kaher <ajay.kaher@broadcom.com>,
        Alexey Makhalov <alexey.makhalov@broadcom.com>,
        Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
        Paolo Bonzini <pbonzini@redhat.com>,
        Vitaly Kuznetsov <vkuznets@redhat.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        xen-devel@lists.xenproject.org, Jean Delvare <jdelvare@suse.com>,
        Guenter Roeck <linux@roeck-us.net>, Denis Efremov <efremov@linux.com>,
        Jens Axboe <axboe@kernel.dk>
Subject: Re: [PATCH 0/5] x86: Cleanups around slow_down_io()
User-Agent: K-9 Mail for Android
In-Reply-To: <20251216195912.0727cc0d@pumpkin>
References: <20251126162018.5676-1-jgross@suse.com> <aT5vtaefuHwLVsqy@gmail.com> <bff8626d-161e-4470-9cbd-7bbda6852ec3@suse.com> <aUFjRDqbfWMsXvvS@gmail.com> <b969cff5-be11-4fd3-8356-95185ea5de4c@suse.com> <14EF14B1-8889-4037-8E7B-C8446299B1E9@zytor.com> <20251216195912.0727cc0d@pumpkin>
Message-ID: <69AE77E6-4256-4B0B-970E-194B4C70B7AF@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On December 16, 2025 11:59:12 AM PST, David Laight <david=2Elaight=2Elinux@=
gmail=2Ecom> wrote:
>On Tue, 16 Dec 2025 07:32:09 -0800
>"H=2E Peter Anvin" <hpa@zytor=2Ecom> wrote:
>
>> On December 16, 2025 5:55:54 AM PST, "J=C3=BCrgen Gro=C3=9F" <jgross@su=
se=2Ecom> wrote:
>> >On 16=2E12=2E25 14:48, Ingo Molnar wrote: =20
>> >>=20
>> >> * J=C3=BCrgen Gro=C3=9F <jgross@suse=2Ecom> wrote:
>> >>  =20
>> >>>> CPUs anymore=2E Should it cause any regressions, it's easy to bise=
ct to=2E
>> >>>> There's been enough changes around all these facilities that the
>> >>>> original timings are probably way off already, so we've just been
>> >>>> cargo-cult porting these to newer kernels essentially=2E =20
>> >>>=20
>> >>> Fine with me=2E
>> >>>=20
>> >>> Which path to removal of io_delay would you (and others) prefer?
>> >>>=20
>> >>> 1=2E Ripping it out immediately=2E =20
>> >>=20
>> >> I'd just rip it out immediately, and see who complains=2E :-) =20
>> >
>> >I figured this might be a little bit too evil=2E :-)
>> >
>> >I've just sent V2 defaulting to have no delay, so anyone hit by that
>> >can still fix it by applying the "io_delay" boot parameter=2E
>> >
>> >I'll do the ripping out for kernel 6=2E21 (or whatever it will be call=
ed)=2E
>> >
>> >
>> >Juergen =20
>>=20
>> Ok, I'm going to veto ripping it out from the real-mode init code,
>> because I actually know why it is there :) =2E=2E=2E
>
>Pray tell=2E
>One thing I can think of is the delay allows time for a level-sensitive
>IRQ line to de-assert before an ISR exits=2E
>Or, maybe more obscure, to avoid back to back accesses to some register
>breaking the 'inter-cycle recovery time' for the device=2E
>That was a good way to 'break' the Zilog SCC and the 8259 interrupt
>controller (eg on any reference board with a '286 cpu)=2E
>
>	David
>
>> and that code is pre-UEFI legacy these days anyway=2E
>>=20
>> Other places=2E=2E=2E I don't care :)
>>=20
>
>

A20 gate logic on some motherboards, especially=2E


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 23:14:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 23:14:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188430.1509599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVeEz-0000l7-IT; Tue, 16 Dec 2025 23:14:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188430.1509599; Tue, 16 Dec 2025 23:14:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVeEz-0000l0-D3; Tue, 16 Dec 2025 23:14:01 +0000
Received: by outflank-mailman (input) for mailman id 1188430;
 Tue, 16 Dec 2025 23:14:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8rmh=6W=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vVeEy-0000XY-45
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 23:14:00 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e695bc5b-dad4-11f0-9cce-f158ae23cfc8;
 Wed, 17 Dec 2025 00:13:58 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by GVXPR03MB8331.eurprd03.prod.outlook.com (2603:10a6:150:6e::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Tue, 16 Dec
 2025 23:13:50 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9412.005; Tue, 16 Dec 2025
 23:13:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e695bc5b-dad4-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=noLKrtQBL6HZRfVTMoL9ouaTxFaDgnkJQy3BWU1rrwdIt/E1qW+P9IB1tD215EzCL1dt44iHv9QvqVRITExYdfQsmvqyUSwF6kPp40NAsqwtjBm5zex0+2bbPI1SsTgvZOqkDLVKBWsn4GULL6ESWbSFsPPJrtXSAey8YFqdOBexUwPVhUk/TpB92Plqs/vMxkXvlf/3bZ2giqV9WRoZSyo4rgStjgwzvRpZdBHZGYVO1DIw4WOQueDwDRP1+GCBKkGAnQ834dUf5HENTaeOVN7tNxeB+1gvN5mmtAkntQoUw7h4S2jvJSWOUDb3PuqEH3GvRTeS8k1s6jxQNFFuZQ==
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=5BlxZECDzWfohIPtyTZ/CTYOZ+Y5NmlN2gmO5GHeIxk=;
 b=weSI7B+NxZ50uX57r/fwbGIKw7hJA+V/VL8mD3n2AGdPKj3C+mli8iFnAueruYz5bt55jrtAgVFEJL/VpT+HEv5CPQ2QFw6JWXz0MNWQcDkYf7ppwZisSF0TGwQK2B09LzpC9XsDP+lmXNSLAfvRCrs/bUJ/012znl8vfUmdslp47lrj5aRFK8xsgpWDkSpvj1aqMW8qXQjJhsDYyLDqtnRpOsqmj82iocVryDPR+PgbD1g48+4BOwpAxK3CDzXkH6Hu7tyi+buHjDQwbK9tEcliUqAs/9FzGmRCCLaKTLt1QK5RsLiInXGTkUQsF+QkhAt/sLQi6LR0sVQaXuDfCw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5BlxZECDzWfohIPtyTZ/CTYOZ+Y5NmlN2gmO5GHeIxk=;
 b=alclxgHo/chY/su7WjNQuouJfnSh3usP6rjtpmBgQtex3OMYMzmlnu0VtejuR2KJMR6CZfxd0gxi3Df0zDmXKOhAAHld6Ga0QiwIC+OMPZtKSpt8fi7KGrLKuQNTWKgf1Uub0SSAtJF6lJ9/B3TMeVCsEbBxVwNUtuvzFOQirsgQyVuchirWXLNyOwI/RwJ+rX22QEqJi1bK0czt9+XISd3dCYXAMVhj6wRsfPQ1E1PG0dXNpsPZJ1/F5uD7U8apU2V5MMufCCtWrNlOuTS8n87ajNUeQ0tw8dqjdFR4ZeRQKi2uRMXQNwL9FoSG/pKy3cOachoIDhzyHaDIlIlz2Q==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>
Subject: [PATCH v4 1/2] xen/x86: move domain_clamp_alloc_bitsize() into pv32
 code
Thread-Topic: [PATCH v4 1/2] xen/x86: move domain_clamp_alloc_bitsize() into
 pv32 code
Thread-Index: AQHcbuGjnZjr1e5ps0GOglHkyj482w==
Date: Tue, 16 Dec 2025 23:13:49 +0000
Message-ID: <20251216231348.3897820-2-grygorii_strashko@epam.com>
References: <20251216231348.3897820-1-grygorii_strashko@epam.com>
In-Reply-To: <20251216231348.3897820-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM0PR03MB4594:EE_|GVXPR03MB8331:EE_
x-ms-office365-filtering-correlation-id: 0c8d79ec-0262-4c8e-79f3-08de3cf8c61a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?nH1DG66cqFNpTTK9AWHxeBjpQKljSqPEuSVZBMkPVkkjypTm89JCrBaXjN?=
 =?iso-8859-1?Q?10K9OWzSvPiuiHCBK2NWZRZvUEFsu2y6qbx6ZXEVnYC0rl6NRBGW+M+s43?=
 =?iso-8859-1?Q?+xlFgNueqDxOFHkQG2gIEnOt1+B//EF1CeYwLxLk/C4717lsFQuogRJndF?=
 =?iso-8859-1?Q?i+SOlPErJxCqvHoHUhSygKsEOkqEg13XP9um6fZt2ga97GQ7QEd3q5kybD?=
 =?iso-8859-1?Q?yPd+K92qQlG3r0uGcHC/fTagc9C6dZMqPmIjuBCUD5F0S0pQxENT8cbDbE?=
 =?iso-8859-1?Q?1wsH2jtejlSZCwLFqhfC4ygKdexzgOMVFeWDUj3KOGFTQBDFpA9mPx3Dyc?=
 =?iso-8859-1?Q?jC/v24/DsIThHv7ADVGtCjfCIP1S+MtO54MV6Lu7nxJ7VgVIjc2yC4/b81?=
 =?iso-8859-1?Q?hItLuEc+QyGrYvAQIh7aAns2K50SFctvQK2osqmCxe4oiDniErWB/Pmyq1?=
 =?iso-8859-1?Q?pd3CSA89RLW1iZn2blYuFsDyL7OH/taXnVMlXB5HSkmT9PyOoZ/bswhUSC?=
 =?iso-8859-1?Q?qRpXU6J3R6fwiVft7MUhwzUuYyT5hheZv9sGZCbriUlyr1aCp+002kfU7i?=
 =?iso-8859-1?Q?kt6EqT3qL1tl+662q3hw9FFAc2Pso5oJMLKpAy8vx1hyPvJlm+RJgV3toe?=
 =?iso-8859-1?Q?SWeuKJFqDJDjeYuWUR8YMryQsWGP/7B7xpV2ZyDSDW5vaq0EBxgf0XQunP?=
 =?iso-8859-1?Q?X1pYh/eTfpuY9NRGzaLOcbVdwfKZqj6GkrNf8YJutvS8FenIKZWis7tu7r?=
 =?iso-8859-1?Q?EORsfFc9Qpa1/TjfzdqulQbwnGY+dAk6H8wLx7TclPLGRZHE4xMpEBLKxw?=
 =?iso-8859-1?Q?sv+4a/fZ8A5Cd6A68nnpGvct84dGYpYTBWaowFDqR1LICA3TTD50hOytSE?=
 =?iso-8859-1?Q?QjSCP4hh021pjxODjZlyHR1F3Y75sFJErD7gYhps0CBITiDm6n8/blk+76?=
 =?iso-8859-1?Q?sOJnik5kTggLQhQCMxLxJXfEjWuljvebJWR+BaXotuVEypKWZfdCajpZcr?=
 =?iso-8859-1?Q?vN4j4dhUG1UJthEcGUGTUMN9CGkHJB1BWaqet05fz0S9TQbnvF57S95C+W?=
 =?iso-8859-1?Q?prXbAVC4Tv/O7VV90FP6NYfERXZ5m35nnFvf7aNqDq4Kmbz3b5KQ4d+JT3?=
 =?iso-8859-1?Q?PaylLqcF+zARRkVj3MYsMVYsRaGuS9qunvI0v+p0fWAz+9CILKD9uRG/pY?=
 =?iso-8859-1?Q?SILuC9XZ/4KBEPCE1sbMJxVqBcjTi19c3KBGCommyQvL0H9fuQYg34v+kA?=
 =?iso-8859-1?Q?JxWBOy4ebz7lwrRdWJ7YKta7ks+yCUswLy6/0v+35hm94oG67ToX/fxUhu?=
 =?iso-8859-1?Q?1UMuZ5ZQ1WYtxuyC4DIZdGJIMP0XG3zEIpETOycEwpSTPXQo+ugYHOD+lf?=
 =?iso-8859-1?Q?NdaoJn+6qE7/vL1f3K+DVfCLuj0bUIcKel6cLPQRvRn2+SlhhbPgvZ3xSC?=
 =?iso-8859-1?Q?6bNlC/puHE/GuuIfUyoJIzm/bJDFbhEKA4yCrx318A4WxipKvfbrdAvJIH?=
 =?iso-8859-1?Q?2lXJLmgkgQfBDuqVXb4hvIDmI9ZHlNWcSaOKiZ1Kgb5UgpGFODYM+BE5tU?=
 =?iso-8859-1?Q?Vbs6DfFBUoPAz3bfhUEENeYFH+j3?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?JwuZ3iv2yO3xMlCgQrRTWrJheP2KpyrRycZhS0rvj7J/f1bFUnqQ79LMsW?=
 =?iso-8859-1?Q?WWhIpn3nd7WE9BEUZx/pzb35ciOJN/OPTueeacpBSKxollLQm0FRTWF2HW?=
 =?iso-8859-1?Q?P1TnPFkSxUXsbt5mX0dEmYVeHrLR1KfjqCoeGbL207gl9OX6IKa+ZZFzuf?=
 =?iso-8859-1?Q?cuo8C2EICFnsF9IODgJ1G3AZHPhNp7oZQLqSbPTC2SjkxXLeuP0/l8SI9R?=
 =?iso-8859-1?Q?HGRCHMgDAvxduGUaZ/W8zLJnolC1y2xhqAnuaoznCiNWlZuoIZg/lW6FX2?=
 =?iso-8859-1?Q?E96rf96HQcAsRYuyDpPTfqasOE9CPcBOtvPHFEly8TNcMN0m+KBArQ83wB?=
 =?iso-8859-1?Q?0D38GfpyaeBcQbhUue+0aC9nr2FdXtLOlk+VQH4zF7dp6Tf2S4YHpZqwX7?=
 =?iso-8859-1?Q?qZazE26IlY8Pm4bW6Pt30mfe9K+SjhVa4/0o1m9IR2qtbmDOXgenLkIbnL?=
 =?iso-8859-1?Q?Vk3w8VObj575YyQ1KOjOhgvCLTL9A6VhGgVT+R6SFEMoCSGUUUKEzqxk9o?=
 =?iso-8859-1?Q?4J7RwMeEnCx8Ryg1SvetwQnwtshBjuYu2yEQCNv9j48MlkcJhWeHmY6eOs?=
 =?iso-8859-1?Q?MrV+kHgGtNE2i3WQ50BuDRLznzaHNxn0TLLOEfCOEyai0QykIY7z4Qy2TJ?=
 =?iso-8859-1?Q?TZQJzUHwzmPgjjbZwO3mUqO6Hc994uH0bHwXeROdkLli/OfBcMguWgRcKW?=
 =?iso-8859-1?Q?nSC3SpuLzi1pdBWmxBNuOIsVDuVfGG9cjHOzZWkhML6i76CkG8GlyrHDh+?=
 =?iso-8859-1?Q?+bcIeOMx43UFFTdZyGyuXzeeKwYAnEMS8D73hiVjzyWGEtCE+b5fd5LWNZ?=
 =?iso-8859-1?Q?75fxJimDEy9nJMjdz6SCAMQDsBbE1LfDRHqbLCqXVZi7Xsl4/++F4pKPze?=
 =?iso-8859-1?Q?/dvjnjJm5OOCeAjysh5U8oOhslXxdXtTLVMHocGy5GBg7ninmu60G99YnH?=
 =?iso-8859-1?Q?cdnX97NHM3m+izhXTzmC7z7VEg1COwfum666GoURCJs+4/1SsFZ0nPA7Cy?=
 =?iso-8859-1?Q?fQP0o9cVCG38Pty2DWeDU+zIK7hKcnx7PAxJbVU9x8pX3KQIosjavqw9R3?=
 =?iso-8859-1?Q?fMOY01AZ4baxd4V7ATID0PfrtP7GknMvTNf9kS1XGn6GrQM3HileP+FmQI?=
 =?iso-8859-1?Q?iEtiXhH1vVi3Z5i8jd1CfgJRRI6wu1+K5OREAvTmEyNMvRLEPDiWkec3QO?=
 =?iso-8859-1?Q?hjQWpknEahg4sbNKZeB8oEy0skbZfnHCwksMow+2FJydA7vUN8uaSUWhsX?=
 =?iso-8859-1?Q?RVAvFOP8tHqHOXKOAELpWo/G1cAgB9/M/JdBgsD6nvuP5UfzIaX4CHR69X?=
 =?iso-8859-1?Q?LcUkXejrfKOk4HpD2X7Gx4x5I/HujYYmt20/OnQPs4cwunCUkVR+w7//Oa?=
 =?iso-8859-1?Q?4QpW56A2Yra6s/D0UjeqtjObMXnwBgT3OoM+b9jTvm/ztcfDuBmapdZpjA?=
 =?iso-8859-1?Q?/RbzVw8bgm2pC67ArTaLvpyEHnjY2mLsSlwIarbDxufM2uPd0uzZ0pdFCp?=
 =?iso-8859-1?Q?+zyP8W5RLd6mArhgjpStrhxPQEyWn47XzFNYTpPOxMXD6Sl0Lz4aFWBJV9?=
 =?iso-8859-1?Q?ADSpc6v6MtpfWJ8eceB0xa/OmPpZBHfbB+plHZJyMlfOfpNMCe5vZ8nKU3?=
 =?iso-8859-1?Q?oH3i8DJqzMjLc3lUgAijJnrzp6VyhUxSlrnQNTCVHC5HdVoZMkNQCpww?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0c8d79ec-0262-4c8e-79f3-08de3cf8c61a
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Dec 2025 23:13:49.9573
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 0rJ26200mFxkhzmNKXfMX0p0u2FqUuKXOEfc+FlX6hrl2xdP9K0W7l5GcT+yiuglr6uYiuwE0IjrSlBjLfs1cEfj+8n/ZggfSH0wpiscWUU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB8331

From: Grygorii Strashko <grygorii_strashko@epam.com>

The d->arch.physaddr_bitsize field is used only by PV32 code so as the
domain_clamp_alloc_bitsize() function.

Hence move domain_clamp_alloc_bitsize() function into PV32 code and convert
it to macro.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
changes in v4:
 - rebase
 - split out moving d->arch.physaddr_bitsize in separate patch
 - fix comments for domain_clamp_alloc_bitsize() macro

 xen/arch/x86/include/asm/mm.h | 12 ++++++++++--
 xen/arch/x86/x86_64/mm.c      |  7 -------
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 9438f5ea0119..89e8940c3316 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -619,8 +619,16 @@ void __iomem *ioremap_wc(paddr_t pa, size_t len);
=20
 extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int=
 pxm);
=20
-unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bit=
s);
-#define domain_clamp_alloc_bitsize(d, bits) domain_clamp_alloc_bitsize(d, =
bits)
+#ifdef CONFIG_PV32
+#define domain_clamp_alloc_bitsize(d, bits) ({                            =
     \
+    struct domain *_d =3D (d);                                            =
       \
+                                                                          =
     \
+    ((_d &&                                                               =
     \
+      _d->arch.physaddr_bitsize)                                          =
     \
+         ? min_t(unsigned int, _d->arch.physaddr_bitsize, bits)           =
     \
+         : bits);                                                         =
     \
+})
+#endif
=20
 unsigned long domain_get_maximum_gpfn(struct domain *d);
=20
diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
index 42fd4fe4e9b5..8eadab7933d0 100644
--- a/xen/arch/x86/x86_64/mm.c
+++ b/xen/arch/x86/x86_64/mm.c
@@ -1119,13 +1119,6 @@ unmap:
     return ret;
 }
=20
-unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bit=
s)
-{
-    if ( (d =3D=3D NULL) || (d->arch.physaddr_bitsize =3D=3D 0) )
-        return bits;
-    return min(d->arch.physaddr_bitsize, bits);
-}
-
 static int transfer_pages_to_heap(struct mem_hotadd_info *info)
 {
     unsigned long i;
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 23:14:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 23:14:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188431.1509608 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVeF0-0000yV-Mr; Tue, 16 Dec 2025 23:14:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188431.1509608; Tue, 16 Dec 2025 23:14:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVeF0-0000yO-KE; Tue, 16 Dec 2025 23:14:02 +0000
Received: by outflank-mailman (input) for mailman id 1188431;
 Tue, 16 Dec 2025 23:14:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8rmh=6W=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vVeEz-0000XY-Nx
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 23:14:01 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e784aa7f-dad4-11f0-9cce-f158ae23cfc8;
 Wed, 17 Dec 2025 00:14:00 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by GVXPR03MB8331.eurprd03.prod.outlook.com (2603:10a6:150:6e::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Tue, 16 Dec
 2025 23:13:51 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9412.005; Tue, 16 Dec 2025
 23:13:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e784aa7f-dad4-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GtbWPuTDAmBz1T9ch2qOkgUitAdIYtaNmC4kEq0J+zleBRkq83QpGnQR2+Ffz6PTWtaXJQJnGdBur2ShE0SPbyn7qlL2S5OsBPBOpE5fGHkMOetWQuN8K4NNVrtIQB7YKH4CG/5egZRbTyJf7/A+oYoq6LKh98mnYajZJ54XCtHqebI9+IMpJldQSrF5OfdtaZ+kIMaIYqpgcHeromP4CaSf1ffG8V9TRpM2vhHaRDFVbuGZXF2SisNSBOwbE6c98CFGDYcoULE0NLK++iS2r4QBkaMd8r6VDDpwgGqeQ5FDWhWLSAnsDClRN87f9BJA+uMpUrhnw8KndRIFpsbdyA==
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=/VYrSxKmZQjc47TeHgh0dNanZq+DSjKn34XnKpmx6jY=;
 b=zEl0XINHm5GtPY4CUj0RuGiM8HKSsK2bQ+nyDOLgNncCUHIr8T4D1ySwldm+sipJJkSwALKNZ5lgShJK3vrNFVx0pVI9AHInNWu7DYkczEZTNIF01CihQdeP0cs0JfPcPFsQ3VrbVctXu/hVxotXXTwz+4ZqOsTIPGnJlYGXDXjfUo6vZ8dKcNRpICTbPfxcoMMiWQ1OHVKI1LX0nB3piNv2g44ihf/6GjpU3msRkYCwFi+aMwR9vGhRtUD3ljrouH4gN07UZdFUQa7sf8D+zgBopm3CQwDylPQrWdIhCxIPmtDy0yEmfJzNvW84Tq+aOlz5y/rQF6u3RPHxILyqLA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/VYrSxKmZQjc47TeHgh0dNanZq+DSjKn34XnKpmx6jY=;
 b=gMaocfO/QvcaWSmgS1Q6gL207NyRZITOBcgWv3BvPkpRpoBeHN+OyKFa6dU3rLCLEMOpYzCRkd1G6QgixrtS9gRuGG/yzRPvp7Uz+38G5vAEXXM3v8L48/Np2W2Gb5NsY7XtVecxcJ7yQoysdvQIdMd7XERegopDJh2QDBLUuga5U7M2+LOk6DppFVfB9YnRDsImBek+bSSXuAwJzxMlyHUwX1ICzFu7+WaaQ8T6ecPIMMQmuvzdCrFbj8NO8i+7W+xu2O0FEj0+t1WCKt3l+6d3I0o0oTWIIeaTVnavYo2ssl6gwv1DfkotulkIPu+tkChK9wIpECMOq6ZRmNoFlQ==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>
Subject: [PATCH v4 2/2] xen/x86: move d->arch.physaddr_bitsize field handling
 into pv32
Thread-Topic: [PATCH v4 2/2] xen/x86: move d->arch.physaddr_bitsize field
 handling into pv32
Thread-Index: AQHcbuGj/uvg7Q87N0ehJJPY1cH2ew==
Date: Tue, 16 Dec 2025 23:13:50 +0000
Message-ID: <20251216231348.3897820-3-grygorii_strashko@epam.com>
References: <20251216231348.3897820-1-grygorii_strashko@epam.com>
In-Reply-To: <20251216231348.3897820-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM0PR03MB4594:EE_|GVXPR03MB8331:EE_
x-ms-office365-filtering-correlation-id: 13a90a98-6b50-4eb2-5da7-08de3cf8c64c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?g6Y/4XsQgDaFeH9iMA1GThZWlmPXV9b0skImXrjMSK3Nz3NMPJ9LARz2QY?=
 =?iso-8859-1?Q?WfNEP8Xvft+p90Un7cYvlaH0AYqpYGGimYVVe7GbZo4vZ/GtcLCsFHwYu8?=
 =?iso-8859-1?Q?51Xf0PQ2z8kGwidewNY2LzvkIJ/rkjlzIciLVHaTm/MqfUCxpswKcDLYPo?=
 =?iso-8859-1?Q?RmegxRVNxb2YZaxOxKDnSdG9kxWKfS56NBYWK6I2b3fvpgqPMVazMcA1e6?=
 =?iso-8859-1?Q?QbcMpspClq5EL9b4NEaRoCZxLV7fHVxkFKvS988Zwi7OLAUsgCpt6rpi/X?=
 =?iso-8859-1?Q?c0SKOqJLkiLCEyOVc0mfxHPLiiV3kQ2OwicbJ1/jnxmurN1cnej9bxT3uO?=
 =?iso-8859-1?Q?skmiKSLKjHr1i5Shrtc3CJhiyvsH9OJnM2bbifVd/EtUGwvTSBUl8ili/y?=
 =?iso-8859-1?Q?IgSkIv7N1uRNQBNkNVAZGGkoF6snyDOgc1/obAux2d7Ed7CkDdtPQtur4I?=
 =?iso-8859-1?Q?zYsYopwik0Hevf3Eh6Rvxgl8C+5phMx+V7e1P5Qku5sIr6vW3dXZSQVxBt?=
 =?iso-8859-1?Q?w3flW3MexxQM3wBjmzlLnqev3MLgpMdAZgYQl7zhYl08WokckVz4fHJPeP?=
 =?iso-8859-1?Q?Vzi7Xm+JAbTlnTRnz0wN1npRLsIFyrTGLO07N8+1w0qrxu8w4RM3wiop2Z?=
 =?iso-8859-1?Q?JZXWq5+KxufktUxfu6+iQP+UEAbESkGZK2KZABrvZUsmbqTUbPd6nBSuFi?=
 =?iso-8859-1?Q?TcKrFRU1QmpSmznPR8Pj7KkNc8l6MfY6uB0veZHhvYlVHkr7DhVYch3zvc?=
 =?iso-8859-1?Q?J8GiZdtKRKjjdWby1OF3rxa/YCLESWxuUvWGcIR9ESVZVBKeCGHikR38D4?=
 =?iso-8859-1?Q?wpfZALawkRIxyAWqp4HO3BwyVIIDO3n4gdXrXGrmMdSmxesF7Zm+TqmDH7?=
 =?iso-8859-1?Q?XxMuILdEhX6t3rg18yOw9MerG+c86BfLn0lnAf85t4g+ZQh0k5kyF2FwF8?=
 =?iso-8859-1?Q?Hl45sjd+MOLlDYWFq4Kms1bnefhtAfGD4AN+4AVVTpkExzjX4UT7Bncn6X?=
 =?iso-8859-1?Q?JTr+IECjglpkTDLS5ctTPvnZgsvuBvhk8cZBQSPWb7ho8GC4rSOVf8aNfF?=
 =?iso-8859-1?Q?Vbbb+00MO5HfOuwYOBqdZbyMHa4ur1/EDu4+gyZGZOp7Rvi3aBrJNjBNGj?=
 =?iso-8859-1?Q?Q4M4fqEuG15kvn8fZOhDZSOTvMDI9G7A4JGkokC3VSmQvMbpZ1ZESS+ZDp?=
 =?iso-8859-1?Q?x7yEsOBaIDfgoA1q7lmP0vrkzUl0F4npx1sLSxcTXPkNqwnaUugKu8NVn7?=
 =?iso-8859-1?Q?4z3MSj/kBKFiS7kj+dG2TNI5GFyw3paSe6H5JVwiIelBegpvDB6aHTZQNb?=
 =?iso-8859-1?Q?5WgIL7WteCbx3ziT6m1oRa74Cs/KWngYzyeZkN9tHrmNxpo7q6540mL8Z2?=
 =?iso-8859-1?Q?9sZV3CuwosyhqpU7aHnDX8D8gzYRsomJ0gVX6PsdalZHSf5WlFVHV/Rfhi?=
 =?iso-8859-1?Q?ZS1vFBKRASjo3drtB5JwqCMnMbMtqeTyON5Bqw1NhL1eu1MTCXAKLws3yv?=
 =?iso-8859-1?Q?J5NyMLKmgsahjM/HuUjCigpW0tXZfLDSnPJEg93gNsaC9um/hrYHjonN7S?=
 =?iso-8859-1?Q?5e4BQmE4OFlwAN2RmUECMpkfXhg7?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Zq3LnVkXwY3ePnqP84B/L18YVnsDJLEvQNh7EsgLEorTihyscOSX7JAKkP?=
 =?iso-8859-1?Q?wA5prPXzcJYBzNhCtG3oZxSayD53hRj1kmz0nKMjirZ93l/VY5aP2wdnn4?=
 =?iso-8859-1?Q?Dgxebo9LyxQ4aBfld5IMIc4OCfX/Vfz8TTfQ+OzciJLGUZwRk67DVsms3U?=
 =?iso-8859-1?Q?YK+tSn3rSsaz+U5ZM0A/n/Wlclzx7k3rG0dWvZzBXCWM+ckRM4a5nvTzJh?=
 =?iso-8859-1?Q?Y1aebHdR5DSYwSM4Fj0KO+7dJfncjWBtwQeb5UA9m4q70sAKZH7fHFGpZ1?=
 =?iso-8859-1?Q?Fx63dR4E5eR40gLp4RIL12cncs15pvPKtCQrdLknaCwkI1VzeFRiIC52c5?=
 =?iso-8859-1?Q?PftqJPjetG9ydp7XWpb4Fy04cdCRmQqKaDP1f4vr4K1fbknfmSJMNUTP0y?=
 =?iso-8859-1?Q?XUyLlSV2/9WExhhhOQfGBcpiMw75UPXR4V5Or3pauoy7agURiuCTL2h4OP?=
 =?iso-8859-1?Q?buz5d8TMyouc881GFb01HNdBp+HLl8Ztopk1o4/vg1h/KOF5Vr6LSRMGU5?=
 =?iso-8859-1?Q?XKnDqaGxgsPQ6X8mUqyKjyaTpwsYdlkCfTFJoiVBkYlyUshYH7TF4OyLyc?=
 =?iso-8859-1?Q?2blco16sfvPe1jxlOrattXc9qerFMzWe2AHBCD3Z16bWxRA+Fj9rO8e6qD?=
 =?iso-8859-1?Q?SXwuuvLfKaFclKEXuJrfJ8+pVETASbrbjwK6VCV4uYzHu2ePgt2HeEWb0q?=
 =?iso-8859-1?Q?zvlbijqyEl9sYT5H+uaE5+PuFXqHjgPApIX7H6dv6rjxzEUN/WNBiXsuXI?=
 =?iso-8859-1?Q?8nTf6yMiKh6tJCXyLl0I7VHcqvJSG94H2gdXRl0BlWTGkzj7eJkIWOvtr7?=
 =?iso-8859-1?Q?0WXg7Te14zEpMXbddE2A/hth6Mwz6sKPJcKsXCAITAeTL5mZDWDmfeDiFa?=
 =?iso-8859-1?Q?OqTKoi3tbBJRqeAo31EVYmZuvQNB34GhvG6mTlzjjtTiWuEDDJZbe6VeHA?=
 =?iso-8859-1?Q?46QHr9n2waFJfj5lI3CDvSxKJ05EDJ99zr3OSeUTlWMzhiQzFr6Z9Tvy3j?=
 =?iso-8859-1?Q?99kF6zgXpIUsWKuPBM2QyT1zEVJNLxaFB19i2Ki3x7LVizBleOU7QI+Uwx?=
 =?iso-8859-1?Q?w3uPLX4mWTipH/+9ENwcR+Io477ZWjnzuAUMIH1YBTmVRS8kzkqLQfoGvE?=
 =?iso-8859-1?Q?t09Q9IiR5fKJQgCdSPs3Xqhgqfyk3iO6+vyEN9EPQj8MzlM3cXVcE+U5bR?=
 =?iso-8859-1?Q?vYA1yPYlmEFDgF5rIAIFQvTJdB8gtNTE5MhTlJjFe4Bz8gE79J9KhWLhFS?=
 =?iso-8859-1?Q?RX0Z4bspxlrB0s0rGqThnE+mrIS/FBpnyJPRSJ9yne2DTnNoG1D8YWnvWw?=
 =?iso-8859-1?Q?epUNdLFRMvhoRydK2Rq8gEVrTzvwy26R0UL7pwYTesH2EeJg/XrW5YwOd0?=
 =?iso-8859-1?Q?Vl10Okia0ZsVmzP+vMcfwkRK6HtGJakhRJfKQVXzJRUHAhGY38MNy1gk/4?=
 =?iso-8859-1?Q?BOAIEQjZKwPl6lZ3lPO5Lh/kCPVF3UkHqgZ9/kqAd0WNS0+ZmSkFHJ+bu+?=
 =?iso-8859-1?Q?/rEdA6k8UNwpNSkx/+EmAPUQOg8SquGiWtVNiQCnszCYqb0ER73mQ4SERv?=
 =?iso-8859-1?Q?iiqrPwK/e6N3XX612RimPHFXE/JMMIyLePvxcEmoY/gfVNrfcS74IiaYKw?=
 =?iso-8859-1?Q?oVaFxjIWIDhAc4qfoG+v4c9NzlQG/7fBVdmkz40HYF5xAG2AMLYAXacw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 13a90a98-6b50-4eb2-5da7-08de3cf8c64c
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Dec 2025 23:13:50.3040
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: xJ6pUx3yJ7ZoC/6Je2N1gTVoT6O4ug8t5L+oW9Au6iPo8U1ePgEclNwuYv2YcW5qWGHLwk7K8ZchqsU3afhdfdk5yXrcpTXTm8UW4wEhnKM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB8331

From: Grygorii Strashko <grygorii_strashko@epam.com>

The d->arch.physaddr_bitsize field is used only by PV32 code, so move
d->arch.physaddr_bitsize field under PV32 ifdef into struct pv_domain.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
changes in v4:
 - rebase
 - new patch

 xen/arch/x86/include/asm/domain.h | 6 +++---
 xen/arch/x86/include/asm/mm.h     | 4 ++--
 xen/arch/x86/pv/dom0_build.c      | 7 +++++--
 xen/arch/x86/pv/domain.c          | 2 +-
 4 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/d=
omain.h
index 7e5cbd11a464..16cd45cc32c0 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -290,6 +290,9 @@ struct pv_domain
=20
 #ifdef CONFIG_PV32
     unsigned int hv_compat_vstart;
+
+    /* Maximum physical-address bitwidth supported by this guest. */
+    unsigned int physaddr_bitsize;
 #endif
=20
     /* map_domain_page() mapping cache. */
@@ -319,9 +322,6 @@ struct arch_domain
 {
     struct page_info *perdomain_l3_pg;
=20
-    /* Maximum physical-address bitwidth supported by this guest. */
-    unsigned int physaddr_bitsize;
-
     /* I/O-port admin-specified access capabilities. */
     struct rangeset *ioport_caps;
     uint32_t pci_cf8;
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 89e8940c3316..734e6b3af1d6 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -624,8 +624,8 @@ extern int memory_add(unsigned long spfn, unsigned long=
 epfn, unsigned int pxm);
     struct domain *_d =3D (d);                                            =
       \
                                                                           =
     \
     ((_d &&                                                               =
     \
-      _d->arch.physaddr_bitsize)                                          =
     \
-         ? min_t(unsigned int, _d->arch.physaddr_bitsize, bits)           =
     \
+      _d->arch.pv.physaddr_bitsize)                                       =
     \
+         ? min_t(unsigned int, _d->arch.pv.physaddr_bitsize, bits)        =
     \
          : bits);                                                         =
     \
 })
 #endif
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 418b453ba8bf..9a11a0a16b4e 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -626,8 +626,10 @@ static int __init dom0_construct(const struct boot_dom=
ain *bd)
         initrd_mfn =3D paddr_to_pfn(initrd->start);
         mfn =3D initrd_mfn;
         count =3D PFN_UP(initrd_len);
-        if ( d->arch.physaddr_bitsize &&
-             ((mfn + count - 1) >> (d->arch.physaddr_bitsize - PAGE_SHIFT)=
) )
+
+#ifdef CONFIG_PV32
+        if ( d->arch.pv.physaddr_bitsize &&
+             ((mfn + count - 1) >> (d->arch.pv.physaddr_bitsize - PAGE_SHI=
FT)) )
         {
             order =3D get_order_from_pages(count);
             page =3D alloc_domheap_pages(d, order, MEMF_no_scrub);
@@ -650,6 +652,7 @@ static int __init dom0_construct(const struct boot_doma=
in *bd)
             initrd->start =3D pfn_to_paddr(initrd_mfn);
         }
         else
+#endif
         {
             while ( count-- )
                 if ( assign_pages(mfn_to_page(_mfn(mfn++)), 1, d, 0) )
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index ca5f6920516e..01499582d2d6 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -257,7 +257,7 @@ int switch_compat(struct domain *d)
     d->arch.pv.hv_compat_vstart =3D __HYPERVISOR_COMPAT_VIRT_START;
=20
     if ( MACH2PHYS_COMPAT_NR_ENTRIES(d) < max_page )
-        d->arch.physaddr_bitsize =3D
+        d->arch.pv.physaddr_bitsize =3D
             /* 2^n entries can be contained in guest's p2m mapping space *=
/
             fls(MACH2PHYS_COMPAT_NR_ENTRIES(d)) - 1 + PAGE_SHIFT;
=20
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 23:14:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 23:14:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188429.1509589 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVeEy-0000Xs-B4; Tue, 16 Dec 2025 23:14:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188429.1509589; Tue, 16 Dec 2025 23:14:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVeEy-0000Xl-5z; Tue, 16 Dec 2025 23:14:00 +0000
Received: by outflank-mailman (input) for mailman id 1188429;
 Tue, 16 Dec 2025 23:13:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8rmh=6W=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vVeEx-0000XY-Ce
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 23:13:59 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e34e3c09-dad4-11f0-9cce-f158ae23cfc8;
 Wed, 17 Dec 2025 00:13:53 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by GVXPR03MB8331.eurprd03.prod.outlook.com (2603:10a6:150:6e::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Tue, 16 Dec
 2025 23:13:50 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9412.005; Tue, 16 Dec 2025
 23:13:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e34e3c09-dad4-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qsTJpRv4bK6AHARNikhTCnOj+ClS6nGJb0385zYa0Fw9XWZPm68mxsIwAszFJi0fyuG8X5rNWbwohpAp7CM5MZOQle+UyuaXWGNrauV7HlSKb6EkZw3Wl8zbR9+mL1w0YB7ef9OkoXpQla9UDEYajXAJbzufkeoPaI/ZkSNR6WnQVcp0gGxx0vdAjxWygzagSV0oVe5pW8yJxmQS3paFA3e/GwN+mR3B3hgvx8y2qGzlxd884aG/VPOYTqaRVsvy4wXaH8S6ZcXH/qfV7VTIAPFixUCz9LFkKc+jxAUM8MZCmzD2mThXe/pvd5PKOSRVeamoh7pxPChcPQvNubnEJg==
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=h/jNC9Q/jDhHe0OfTbYK7vyetju7vlu+Bol6NZRc2L8=;
 b=Xyvb6jEikCd78OjCSYxWwkyemjuGINkt3675cto0xlYtBakC5L5pDMyH2pB4IPIAlW9T3RAgFsyw+mJb1Ud0vB5xVB4CgrPkZphaqVFvXEFdQHL+VmAEHc1V2BmcByI+TgQarnJyJ242eoC99j7ErYNi3kIZ5hOiAtJNVRLEH8cmuOpsoTcJqZSVan3EFgwTNpAWoJxcXhEQgxeTHx0kyHkuw7jspscBp4v/qtQGL2Bbm3IkXNsOZmRNyUDCgGAAPgeAg8LyL507MXXvmHQhoBZI4mwDXhferQvU/hLpsZn9bXGQ/cvH3EjOITajruoNKoN+3s7lOGHGMVXi3Ruwvw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=h/jNC9Q/jDhHe0OfTbYK7vyetju7vlu+Bol6NZRc2L8=;
 b=UueL88RlwzOXfRW+z7I+qnU+aM2FreNAJw4ml6Wnn2CR6SY8s7Ktni0vHyvV5qK+4N9gvxcP+eq96tBlIx42uhaMqT1vWT2030VB2gxZOdcSaTbSAdihdZ5IvKdA27LYUc/Kvu0GNYuQC7YwhwrET9ocjiIyqMJ5IETJp8TSVEGOQd5ym0mrwX/tpkGka9HZinJLx+A9Azr6flxE7acdVnxFq1T9IXzqHDReaK0YU7ZNmS9NBrYbCqZgT4XxJBMy77AXUAGWAWqvVKvokR6khRrpSCrqHUI9lLvG0GAcP8aoAqOTOcXkk4Q+zoPgMHND3TpVLf9erEp8/oxeDQPE1Q==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>
Subject: [PATCH v4 0/2] xen/x86: move d->arch.physaddr_bitsize field handling
 to pv32
Thread-Topic: [PATCH v4 0/2] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
Thread-Index: AQHcbuGi+63bPvad30uwtETYu9iVYw==
Date: Tue, 16 Dec 2025 23:13:49 +0000
Message-ID: <20251216231348.3897820-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM0PR03MB4594:EE_|GVXPR03MB8331:EE_
x-ms-office365-filtering-correlation-id: 3b3c3668-fc7c-4cb3-4518-08de3cf8c579
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?IAMPzNAdlGzJ3IgE2TZt8YWvGSzsSx+GODzo9fEvkbZcQj6gKnx+tLgyNs?=
 =?iso-8859-1?Q?D6kZsbU7nJcblKO47pLrflecnn67vfOQLCwg1lwB+gBFkZfV/thxJJWBTD?=
 =?iso-8859-1?Q?/BaUZtXb+MWcj8Arm8z5SgWRBhnKBSvT6D63Ztc7RPH5eW+8PwmajlMvFo?=
 =?iso-8859-1?Q?arS5t1Yn2TwvwcxCbDuTWY/GMmhKJ47b5OnhtwOkoaoShNCJa/P2wMOZSc?=
 =?iso-8859-1?Q?UuQgi7Eh5f1b/gw2N05JlUHPJwsBzYM5CWJxhRPi53scfrmxbn79fiz8hj?=
 =?iso-8859-1?Q?2q++BrAv5aIS0C2oNHmd3/y+s3zzqZXmEKqf7XfpJyYOGdPIZpfDpT5A5K?=
 =?iso-8859-1?Q?Pk50AdPafeolouCeGJhgzS8t0szOl4It6VngQhg3lteZH/Te9a60VVN0QG?=
 =?iso-8859-1?Q?J9m1oxPrX7A6JKsFdgQhP4/Zu8+oIY8uIEypddVloUvjV43mEv7qb4/9Ad?=
 =?iso-8859-1?Q?p8OFS52GVxLHbAMOgqBjx1X7ZS7v+LMFJabe4r/+MN06CR5aljk8JdddS3?=
 =?iso-8859-1?Q?oHU92J20kFP2Bi7gbWAr/wFh2jCrt1OBK+f0x0+VmXl6oB4ToN8pA3B+fG?=
 =?iso-8859-1?Q?tQkhRopBfCmnbP7VhgDjlm9XOLdp8NMkBkVtlMiBWLBGfUi9tnBxxuaGhN?=
 =?iso-8859-1?Q?0cOrfZc3X6POZly7Vkdugu7ttwZsXRzRrWK2GbDTajgdyOiSqjJSgTh9n6?=
 =?iso-8859-1?Q?a68xay5rdRRND9cOSnsrQ9pfb0LTRGblGrcWHTckpnsVxvot3kBOQpORpa?=
 =?iso-8859-1?Q?8XAUOG1HXc0tZwGA+a8QGNUlhpY6Kpuuvh3l08RlNdANr2Jkup0Wh6J8fD?=
 =?iso-8859-1?Q?GU1CRPl9AlAMSJYfzUZKO7klNee3CuozHj10cnG9+pDfbXdrLi8HzJi7nz?=
 =?iso-8859-1?Q?ZMY+oa6fYnKZuma/KvtwHmO+8aU+ntTkUt/CD/WCFbVhB/3ExWPHPXXPqN?=
 =?iso-8859-1?Q?a7c/HpIWXFsPRinnWBg5HB9FUSntHLsiy1VvsJAaknfEZOeVKq1YnADnRf?=
 =?iso-8859-1?Q?j3s9sx+xw3i+VhEz8uzXdi0SzkozJgNyKP5JtGFGLKFWZUVmSTgL4sHDJZ?=
 =?iso-8859-1?Q?Sm7JgOAtwkKfKSRUJrfNCZCorfB3u3ks9GGxbUR9/86M2taRs49Y+W01aO?=
 =?iso-8859-1?Q?UrKhqA57HztEXiDTkVWIIW2NOz9/SAWG/m2o33SE21U63VEm+iD6VXlCpX?=
 =?iso-8859-1?Q?6mf7bELhZ39K2mEER/9aLOqNLQ2vUiAEjt4kxgwrvZf2uiETHUmMZv11nQ?=
 =?iso-8859-1?Q?0H6AwLdEs1rmf+ly29hdVxuFX+hl38QT+PRIelLU88dB9h4SHiUGXWmNgs?=
 =?iso-8859-1?Q?jDmBK7Nx5YPqewagm4DWRWS9sQ4hqCzSS+DfN9Ox8JiTH0VUJFd7aqR9RV?=
 =?iso-8859-1?Q?wZ+MkazBrg/Gohd0Eu4u3YOf2ykoMbDRNE5aqy8AqbPy9RXvXTHW3NN31u?=
 =?iso-8859-1?Q?4XWkK25VJImgOZbmhn7IfKJcDS9zaTpfjHLf2ajg/ef2Mv/ETOzZ6jMCaB?=
 =?iso-8859-1?Q?Ff1ieqTa+Ra6WoKbPruVLzNG2tH8Nhq5xPfJLsnMPM4CWqa9KSF5aTmInv?=
 =?iso-8859-1?Q?/L91afCx42S2lIlfUHMdeA3vl5iK?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?SeB1GwJ1tpJHKhZy2PBlR2cYTpHJuFxzK3/q7R3iKBtjPLxzf4bxpCZ0dd?=
 =?iso-8859-1?Q?m2hV3+8aweCK7ZPqeReq8vicsyqChmoYn48H/LDbAlvQYZcLQUhcbnouxd?=
 =?iso-8859-1?Q?YbUO1Bl1JWOqoKFE8SXzz1XvrpjHDQT9guE4voSgsOKYfHiDc7ZMTpvQzj?=
 =?iso-8859-1?Q?2mtoea/1XuNKOSKJxEOoNagYRfna77TJzeE1HETO7/Ly7vWy6DLpjLC1FC?=
 =?iso-8859-1?Q?0yfhVHKvQ3uotzpLmyV31mL819tpSvkfYfPoNf1GU5i6f4mFRAWFXl6s+e?=
 =?iso-8859-1?Q?4Ovd8XoM83/argcBGALEIRVyVTegaYc++TYS5X3pADs+RuRJ5gwLOgpduj?=
 =?iso-8859-1?Q?dM91/GpZXgS/MvbfSmktsBCN4wXMGp4cyehOXDuoADrG1M2UdhxuaeNdg6?=
 =?iso-8859-1?Q?S1g9FwlgAqQN1938U4TlHriWsEIMQpla7cB8ooLCbCzJiW+j00cfAbtRdd?=
 =?iso-8859-1?Q?GJUmf19Jk4hNv5wsbhwpDCu3S7kaym5zRCir7GKxHtYhUVM1M1/kdQCOOI?=
 =?iso-8859-1?Q?pEUoLd4V/jBT25hTBOaFQOwHyqpJTX+/DBEGPGMP4eZHytRvsFqhNq6VZu?=
 =?iso-8859-1?Q?QH3WheKMv/YGLLKVjq95TRwe9+M8SxiJEqIAhkpPrkHsEV3CaXIzkd8y8e?=
 =?iso-8859-1?Q?B8mxxcNzKiyMdWZSGzPFC00aKWGciCPJaKhXcaBCumdmlD/BekK6XjFZPW?=
 =?iso-8859-1?Q?M9NEqtAzX3XPA9QOxm8sNlDLl275faBrF2YuYshMTIApW8ofYnU/mVq+O1?=
 =?iso-8859-1?Q?k+jQ/kDCFcD0LRBSGo0hJWCORszf0cLzSnWylduM4UKCFl9BMo/MFqwhxo?=
 =?iso-8859-1?Q?b5lV6q59aSiHnzettSp279uG3+/ypDVKyg8GyOL8LSZfH+Tfoxu61qHWSJ?=
 =?iso-8859-1?Q?a5wkOFuEZc4hfpga/dd9n/lS5lA9tWaUpXVcR6uKIWZzqwlrTGhw6+A0ig?=
 =?iso-8859-1?Q?Z3UMp6xGKkFvZNOVoIaBTLIo8LdFDH5I48yYvD5W0YA5tndt8Ig9Zo374l?=
 =?iso-8859-1?Q?auAUK1Wz6kR/AeaCuesRWD7JRiTreN62hlYjgE1szTiBKR0A+G3tE4Lqnb?=
 =?iso-8859-1?Q?W22uwJ0o7DzYUNVJCWRgf0RdXgz2UtR1DR25jasAiVvVukwD8eLvonlcrC?=
 =?iso-8859-1?Q?FzPjSxeGfEqmtkYH2AYaEfdTxNNTjZ4AnSIKwNapKyhnmMcCD2t/mvtKq/?=
 =?iso-8859-1?Q?JWvOXZ24KUMLAlXlpzc9sv+GNKMdi2ecAewrU5DpdThZz0wN/uklGWl/TO?=
 =?iso-8859-1?Q?3oahibN4bdsOk+I+I/7J+J1074+Ndz6cipmzuyMsAgSXMbR16jubA9yi8h?=
 =?iso-8859-1?Q?SKeloUvZ0YMKIi2+Sce08jkxf9w0DYOr47TjgZXOOIygK9cG/cWsLS2TTP?=
 =?iso-8859-1?Q?PElE3AaxJ8mFDkX0dEolLstezI9/dgYpwDVBZN41NzFpc562UPsHdaFTm3?=
 =?iso-8859-1?Q?/1QzMFFxomaY/PepBuxRmc3vVAz4tyBEsLEj7pd/g2P55PbhmeA7zz8TUx?=
 =?iso-8859-1?Q?V50XUo18rCMiS6FSNyEualqtxJZ6E508ET6v5kS+RnvgYeP+ngIx+s8Ulf?=
 =?iso-8859-1?Q?01pZWSOISR2wQhokhcXRKZ24c31ma0VdBhnds+i8vY0SiR+D4oqQ6QmXiP?=
 =?iso-8859-1?Q?T1+xTF7wZBPxVvaAdpDSNKoq+JdM7fD973nKVDEqG8OzLzFIwwB08lYw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3b3c3668-fc7c-4cb3-4518-08de3cf8c579
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Dec 2025 23:13:49.5218
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 0k99ng8VdIkgcj3sVGhM/wFNa9p/Ml06RHjt6V073FJwbi76CH/l/qYWVMF04l80rTLbV8SI29nDWzXeuUAD6eKECuE+dcJ0aj/m8KLDlho=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB8331

From: Grygorii Strashko <grygorii_strashko@epam.com>

The d->arch.physaddr_bitsize field is used only by PV32 code so as the
domain_clamp_alloc_bitsize() function.
So move them into PV32 code.

changes in v4:
 - rebase
 - split patch 3 on two:
   move domain_clamp_alloc_bitsize()
   move d->arch.physaddr_bitsize

changes in v3:
- added tags
- changed patch 3

changes in v2:
- split on 3 patches
- move physaddr_bitsize in struct pv_domain
- make minimal style adjustments as requested

v3: https://patchwork.kernel.org/project/xen-devel/cover/20251128152218.388=
6583-1-grygorii_strashko@epam.com/
v2: https://patchwork.kernel.org/project/xen-devel/cover/20251127221244.374=
7918-1-grygorii_strashko@epam.com/

Grygorii Strashko (2):
  xen/x86: move domain_clamp_alloc_bitsize() into pv32 code
  xen/x86: move d->arch.physaddr_bitsize field handling into pv32

 xen/arch/x86/include/asm/domain.h |  6 +++---
 xen/arch/x86/include/asm/mm.h     | 12 ++++++++++--
 xen/arch/x86/pv/dom0_build.c      |  7 +++++--
 xen/arch/x86/pv/domain.c          |  2 +-
 xen/arch/x86/x86_64/mm.c          |  7 -------
 5 files changed, 19 insertions(+), 15 deletions(-)

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 23:35:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 23:35:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188462.1509618 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVeZZ-0004dQ-Ho; Tue, 16 Dec 2025 23:35:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188462.1509618; Tue, 16 Dec 2025 23:35:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVeZZ-0004dJ-Dp; Tue, 16 Dec 2025 23:35:17 +0000
Received: by outflank-mailman (input) for mailman id 1188462;
 Tue, 16 Dec 2025 23:35:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8rmh=6W=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vVeZY-0004dD-1p
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 23:35:16 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id de5f4fd8-dad7-11f0-9cce-f158ae23cfc8;
 Wed, 17 Dec 2025 00:35:13 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by PA4PR03MB7213.eurprd03.prod.outlook.com (2603:10a6:102:bf::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Tue, 16 Dec
 2025 23:35:11 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9412.005; Tue, 16 Dec 2025
 23:35:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: de5f4fd8-dad7-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cugX97zE6rqeh/eEdXtfwWaBFZm3aDDrJZkIWZhoVKcWtzlBcI+95PKGYnXfT+X/NgFL7Nhe5M6RPHXFqMlOHUwKwaN0FJ5TzSOtG29q9esph9woJDgPqDxfkRkfnke79jOZ8EsUEBlo3y4ujzWwY3pOoU4FtL/GEXf2yT7jMwzUrJ1wqYHp3/BBA4C0wbhO5m3kXK75iG8w9WtNI14IUSMC8Qi7bB9yShxebBIsyZjODX1mrC0/swpMbV2k5bH4nhW3IAdRDY/yHKz0pkGK7ltVeuRqYMB8LzYsDDv5Jzx8tdsP9nrvxlxf/1uyainQDYJ55as3YMl4x+y9qacU5w==
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=jQdTS6JMKkpn41Hf1ETPyl+Zj1/sWcgSUKk90kPBdU0=;
 b=vi4dSOSkdmANRz8lQjSE4KScJFKOcAE6he8AYQYqM6zoTrJku5mgTa4PlkaPd/U/NAd01fTM2szXrDEjENTceSafQCVFNlppTFglx8oan0euuxr4zEcAy4nsmvCDsif7OvQ1YQTgGoHuR6EdQpu1iuDuSmqtXdb+wzgvCwY4cTrHBdQg5VgSP+hfqE+91BlTqtcL1U0kTRgY+ZTJu823JRsEmUFzZbDt2GNK9D6cu6nwkPLP6adOdHPrulnNnlvRXbKmwjev7aNofnqXss1R3VyuRnGkh+MWBcBRNeNCGOvFY+bZDmW7DZSY3zWRuFkPnQZv86ob8xwgAGnZVnfUGA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jQdTS6JMKkpn41Hf1ETPyl+Zj1/sWcgSUKk90kPBdU0=;
 b=QKRX8cQH/WwEVRtogA4Yd12XlM8cdl3x4Q5ZJB0KKDJV9Oe+0q3cHoXEpeasxA5Cjm4/Q3ttTc8vvR2Ktk403J9BxOsx6mntHW7qG+iG3S4TQP9Sf435ABGbhqEaDzs+H46NnbbIjcVMNDbrlflpcznEGONfewfIbtGGwXFr1xl3BU6RyyNJrEL2v89F8J/ajSqG1uozDf57DGFOf/5DAIHh5k+SCxLLjXGWbjGapV8vZ2lxlO0Rl28Fqu8l65b+F+FPkxQSYpuLuFQjjLMeHoknht3XIk7NWK/UKAX4YSjUrf06gUOkOA9xsrtMbzqw9xKlyXcmfKAjYvHC/N3DNQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <8ee2e801-9a3a-414d-9df9-113f419e02e9@epam.com>
Date: Wed, 17 Dec 2025 01:35:10 +0200
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
From: Grygorii Strashko <grygorii_strashko@epam.com>
Subject: X86: build failure
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA0P291CA0008.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1::24) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|PA4PR03MB7213:EE_
X-MS-Office365-Filtering-Correlation-Id: dc01e662-53e3-42ae-3d3b-08de3cfbc147
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UG15R0FqK1BMb2xCU2RNK3g3Zm95T3VEY3M1NnhWSExFRGZmMytBNVJIb2s3?=
 =?utf-8?B?N3JRb29qS3Q2S3ZWVkJNUmpTVEVRWGNsMDJORldsRmVvWkptcVBFYUE1Vk5m?=
 =?utf-8?B?NGJpRXB5NGVIbFE5ekN0NUh0bXFKd0FndjBlNUNaOXRjN3ArczBJUENSU2Uz?=
 =?utf-8?B?bkNsSzF1ZlRmR25SbHpEMTNuQkxyOHRuMVNMZkI1ZnplcFBkcWMrQkdyQmNH?=
 =?utf-8?B?Wi91RmZlNGdUbTVZcmp4Q0dwRHhjekN1djdCcFhBdWpLNjJCQ25sK3E4UGMz?=
 =?utf-8?B?cVJmNDZQOFBmeFZVRlNRV1hsYUhHNkJEcE9ONktkRUVyUjdOUGxCbk5GRE5s?=
 =?utf-8?B?dUEwbTBndFhZNUx2M1RJZ0pRbnJ3SGowaTRZdTNKYWhoYXAwNWV0ejJmSDZE?=
 =?utf-8?B?R0JTYW9JeG92VFA1OEY4aGVuekJERjlkOFdXMjlvN3U4cXVZVFJzcytGeExj?=
 =?utf-8?B?bkN0RnpRay9zMUxkN0VDQzY0cTBqdWl3S3h2N0JiMUNlMlVIZ3E5SmpjN0pr?=
 =?utf-8?B?ZldNbEg4WGxOTUtRZ1RLSXZjQWtHbjBybC96TXRDQXZESCtJRCtRQjZqK0Er?=
 =?utf-8?B?TUMvS3BwajRXOS9ncTR2cERRbGYwcXAwd3J1SnBDWkMyV1diditJQ3VKcmNM?=
 =?utf-8?B?Vjkvek9XSC94bURJb1hONjE3by8vVlVnZ0hKT3M2OEpUTEpSWXlCWW1zTEFE?=
 =?utf-8?B?Ry9hRTBEUi9mdTJjV3ZXbXVRUVJ1VEYrc3loSkgrc096T2s5cEkwOTAvclZY?=
 =?utf-8?B?SHlBWEhXSVh0OWZzZ2VNVWRKNE93TCs4azFxbnVJbGRWV3d2MXpNQ3dhTEJM?=
 =?utf-8?B?ZmpLdFNTU280Q1J2NUl2elc4bm1LM1VNZmtzYzUzVW5XTlFjZW8xd2E3MitJ?=
 =?utf-8?B?VVc2WFpTeU9WUU9YS0piVTl1YXJ2c2wwcjZvaWw3MWlWMmJoNmF0R2RuVytt?=
 =?utf-8?B?ZjJwTGJjZDJYdjVBUnI1LzBTbnczeTVsVWduMlNjaUMzK1FoRUpDcEtDT1FV?=
 =?utf-8?B?VWxaLzQ0SjBnNTE0Unp6dFptZEJ1TUhrMm4xaUhyUlJJSDgzMks2d1llYTB1?=
 =?utf-8?B?NTNuUmx3TmsvZXM0ZTBuYm5vc1BhUXAyY1JkeFVQMG00aG1KM0lGTXBMUVJl?=
 =?utf-8?B?VlNkd0I4ajFQUFJTSzZuSmNKQWNqcUJ2bDViaHZPNnE4eUN1OXBCVGdCSStF?=
 =?utf-8?B?UGVidEJ0WEY5WTdaN24zS0NlYm5HajFscFJhZFYrQ2h4aXNvdjd6cDJjYzJm?=
 =?utf-8?B?aVRwU1ZzSmY3TVluZGxSTUlDKzhSR2lSakxXTU02MFJmTGxXYXNCSW5KRGVM?=
 =?utf-8?B?N096T1lvZWpORVhFbjRzcndRbjVET1VYMFdGZ2xFYk1KeXhSUnVCZ0RWeEQx?=
 =?utf-8?B?QWlLOXVZakJDK2haSnlNT1ZWSFV0bHI4Qjc0UUFNajFmOUlpU2N0a1JCbVc4?=
 =?utf-8?B?YWc0UHpsajZ5YjRLVGFJMEFVd0daM1JBUlgyTG45YXhETDZMcWRXb1pXQ2c0?=
 =?utf-8?B?Yk9Qb0x4WnYxWkR3RHNvOTVNN1BhSk01SGNKVlY0cEZRNVVDS0txT3I4dGFo?=
 =?utf-8?B?VXlnNklPSHFIc1ovdUpDbUtPSnByN1JkWG5LU3k3NUR5eXVJVWdMSFFtZm9L?=
 =?utf-8?B?TklCWVJwOWNpY2RrQk1xZHpVSEFMa012NGh4TDVjdHErZUVXSjZJU2NIMVZI?=
 =?utf-8?B?TnFhMWp2b2l1VnFOTjBJUm82NWNXTnNqdHJOWmYya2RvR1Y0M013bEtJd3Jm?=
 =?utf-8?B?U3J6dGRlWCs4K1hoV3FyQWhzME85WFloVFd2Y0MxdlppM204akN4OTZFSlpo?=
 =?utf-8?B?ZnV1eE9SSEdwTWpLYWVhTTdjUnhPMjNXS29pZHRjQTBEZzdlU1ZJRlVmVHNy?=
 =?utf-8?B?cWxoaW8zTlJTdnV3d3o4eEx5OXBpR1V3UjQ0Zkc3SmV0RUNwTW0reWtSbVlp?=
 =?utf-8?Q?xbaaBYO7MS/ZjZRlpyCcCADpHkVD3VtA?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OVhjQk9ob1lwSHZzQkZhS21uaitVRlRYOTVrdXJhWjM3SHRlbTh6bEd4S05u?=
 =?utf-8?B?QjY3REN2akN0QU5tSGs1WUNyVFdnZUwzcVlRQ2xCVkQrZ2gxQWxMWS82Zmxa?=
 =?utf-8?B?eS9FcHU5U1RQYnRITU9HT0daZk9LU0ZOM3VqdDZod3I0MThzM1JUemswUVIy?=
 =?utf-8?B?UGpuV2NlVVk3Mnk3ZzhyVFFqUTBKT3F3a2Jhd0srWDFSN1JFaVgxeUxITUlO?=
 =?utf-8?B?dEFzUWh0N3E1bHhZdzExSkxjMFZhNFZKZTRhUkZ6dGsxM1hPcGlDdEljcElp?=
 =?utf-8?B?K1hpQnlncXZTVnlSWEV1RlIzYkl4MW5WTkh0SFhEMkFrTzBnelhRYVUrb0Y0?=
 =?utf-8?B?WnNGVjVmR1BoTHVVcHhtZURDQStWQjBKU2w2VkZMM1FvUUJ1bUZaMCt2L0t0?=
 =?utf-8?B?Qm5UYjNLb016NnRzbXgyUjF1UVcvQ2tjR2NKbUVNeVdMUTNxSy9pb0dOUlFM?=
 =?utf-8?B?b0thSUhQcFIzWU1LSTZjM3FKbHlMQmcwNklhL3hieXVLZWljSVRscmFXTEhh?=
 =?utf-8?B?OE5UZzRaWGNESHZla0dqOFRKZkcxVU4rbG1pMDU1T0pOY1g4Q25lc3IxNmlP?=
 =?utf-8?B?OGl0OFFpQlNTWjhGVGV2UDRQMXJnUkdIckRvVDRzK3RxbS8vOGNjbWdGaGRx?=
 =?utf-8?B?L2xUaHk2eWNheGZYWi8vY3huTjFOZ0kvZEMwUXR0TWZNNkV0eCtvZTU5NnV6?=
 =?utf-8?B?VVYrUnRQbS9EL09tU1RqSjljOUVYcXVqR1VjTE85bFdpazQxaVpqUUNTZ1l1?=
 =?utf-8?B?YjlLYVphbHRyVXd0MjVwSTh6UlFnNG04Nlo4djdFbjNHbUVNVjFVSUQzeDU1?=
 =?utf-8?B?Ym5WUitOOENITG0zbXBsTlJscXNoU0tRNW5iL2dDQW12dmJqajU4d05aQUdI?=
 =?utf-8?B?Q3BQWUhnQlFOa0xDbUZyT3IrTTJIbDRjMDF3UTlET0E5VEhyVDFUb0tyMzVF?=
 =?utf-8?B?emtYNTJhNEluMXdGY3VqM1FBNWNhMEMwenVqZFNuamxVSGgrM3UyWi9XQnNr?=
 =?utf-8?B?SXFTMXA3cjQxVkpraVhwc3B6MDFZK2NkZjVtMXNDS2RRMTRIV0FNSzcyTVdP?=
 =?utf-8?B?MEVlY21jalZRRTJIRUpYbzdWZWRLb1Nva3dlSTVYV1FFWWFIR0FxdkdPMHIr?=
 =?utf-8?B?QVR1c1VKSnh5NzBqSTZ2TGhzbDk0Mm9VK28vTk9SWUZ3cldQaUtrZEpFYTl4?=
 =?utf-8?B?YnliK05BOXIrK3d6TFBnZVRBdkFUV1FPUmtZckxMWVJyNzAwUHdhSUJGTDdI?=
 =?utf-8?B?QnFGR2JFTXFsejY0L0ZPRTQ2UTlyOGtWTlZUT1BsVHN1aS85aXE2SGRwZmE2?=
 =?utf-8?B?cDUzWldDdjFDUHRKaUFvNDYyU3FnM1dRZzFWTXA2WFRDdllVS1VjTENqdmpP?=
 =?utf-8?B?TENUdHAyNlo2dkc2Z1lGTGdCMEtVbEtlQTVOSFV2WU1DcTNJQ3ZFd3hpekZV?=
 =?utf-8?B?THN2ZWd4RGJwMUZxRkQwODlJQTlEZWpaRW5iRjJrRTUyMDUwVzZ5YytMdnQw?=
 =?utf-8?B?TzVFNWFSNEFEVWRiV09sZHdoaGtuYVQ2a2ZXRU1FV1JWWFA5Y0F0akx1MHZ5?=
 =?utf-8?B?Skp6WnFGYXpaQ2cwdE0xaFVPelNOOC81bGMzVU9SVjVRNisxMDBybHFaWEJS?=
 =?utf-8?B?dHEwdWhpM2hROWVHbnNxL24wZXpFbmFLRVQ4aFAvVWtsYncxTWY4VkV5UWxO?=
 =?utf-8?B?U0dOc2RVQTVoOWtTZk1scjdjQWxGWHdXMDNGUEwzaTc4YjJwWnp5SWJxWk1s?=
 =?utf-8?B?ajJxbGg3Y3JCcmxtTUk4THFNVENOYjBVbThBL3JjalFVNkE2N0dEbEVrSmRk?=
 =?utf-8?B?U0s1bEowWkE5OGM3VUJMQmtQQlRFZjhWWWRmWmYzMjRUNWtkcTc1bnVjMmlH?=
 =?utf-8?B?MUxkUE5tc2g5bmZxek51enRnYnFGemNSTDVObnN0SWs2VXJVMUk0SnZFRzlW?=
 =?utf-8?B?SHhRUkpLd2FMMlNYRkpUd2RSTFJVemt6eVN6d2lJS1lpM1NUenNGbzBieDND?=
 =?utf-8?B?TEhPTlhtSGkvOG5MN3Z4SmhYdWp3c2x6K3dRTytFSXluODJPTGJQSEVPWWlF?=
 =?utf-8?B?Yi9OUSswWThheU9JS01ZOEhYYmJObjVrVWp0bGNreEptOTlYckErM3JOK2Zv?=
 =?utf-8?B?MUdWTmZIN3pzZ0UyUmNUdmpQNHJiRitBZXlVc2grWEt3WDRCR1RYYzB2R0Yz?=
 =?utf-8?B?UVE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dc01e662-53e3-42ae-3d3b-08de3cfbc147
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2025 23:35:11.1368
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: xJQI3cxviB0fOFgf3K4mmjbPn0IeudsCmki59rhfMaCF8S2djhHs5qspFkanB6PphPqLyw0btYvTWv4K0V56Z1qrX8DarXjj4DPDvm57YYs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7213

Hi All,

I experience build failure with following Kconfig combination:
  CONFIG_DEBUG=n and CONFIG_XEN_IBT=n

with gcc:
  gcc --version
  gcc (Ubuntu 11.4.0-1ubuntu1~22.04.2) 11.4.0
  Copyright (C) 2021 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Is this known issue?

====== log ===============
   CC      arch/x86/x86_emulate.o
In file included from arch/x86/x86_emulate.c:27:
arch/x86/x86_emulate/x86_emulate.c: In function ‘x86_emulate’:
arch/x86/x86_emulate/x86_emulate.c:70:36: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
    70 |     gcc11_wrap(ptr)[0 - PFX_BYTES] = ext < ext_8f08 ? 0xc4 : 0x8f; \
arch/x86/x86_emulate/x86_emulate.c:78:9: note: in expansion of macro ‘copy_VEX’
    78 |         copy_VEX(ptr, vex); \
       |         ^~~~~~~~
arch/x86/x86_emulate/x86_emulate.c:8140:13: note: in expansion of macro ‘copy_REX_VEX’
  8140 |             copy_REX_VEX(opc, rex_prefix, vex);
       |             ^~~~~~~~~~~~
In file included from arch/x86/x86_emulate/x86_emulate.c:11,
                  from arch/x86/x86_emulate.c:27:
arch/x86/x86_emulate/private.h:691:17: note: at offset [0, 4095] into destination object of size [0, 9223372036854775807] allocated by ‘map_domain_page’
   691 |     (stb).ptr = map_domain_page(_mfn(this_cpu(stubs.mfn))) + \
       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/x86/x86_emulate/x86_emulate.c:60:21: note: in expansion of macro ‘get_stub’
    60 |     uint8_t *buf_ = get_stub(stub); \
       |                     ^~~~~~~~
arch/x86/x86_emulate/x86_emulate.c:3354:15: note: in expansion of macro ‘init_prefixes’
  3354 |         opc = init_prefixes(stub);
       |               ^~~~~~~~~~~~~
arch/x86/x86_emulate/private.h:691:17: note: at offset [1, 4096] into destination object of size [0, 9223372036854775807] allocated by ‘map_domain_page’
   691 |     (stb).ptr = map_domain_page(_mfn(this_cpu(stubs.mfn))) + \
       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/x86/x86_emulate/x86_emulate.c:94:21: note: in expansion of macro ‘get_stub’
    94 |     uint8_t *buf_ = get_stub(stub); \
       |                     ^~~~~~~~
arch/x86/x86_emulate/x86_emulate.c:3402:15: note: in expansion of macro ‘init_evex’
  3402 |         opc = init_evex(stub);
[...]


-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Dec 16 23:50:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 23:50:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188471.1509627 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVeo0-0007lN-NC; Tue, 16 Dec 2025 23:50:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188471.1509627; Tue, 16 Dec 2025 23:50:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVeo0-0007lG-KJ; Tue, 16 Dec 2025 23:50:12 +0000
Received: by outflank-mailman (input) for mailman id 1188471;
 Tue, 16 Dec 2025 23:50:12 +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
 <SRS0=ZKfF=6W=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vVenz-0007lA-Tm
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 23:50:11 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f45dc7fc-dad9-11f0-b15b-2bf370ae4941;
 Wed, 17 Dec 2025 00:50:10 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB6462.namprd03.prod.outlook.com (2603:10b6:510:a9::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Tue, 16 Dec
 2025 23:50:06 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9434.001; Tue, 16 Dec 2025
 23:50:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f45dc7fc-dad9-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=A4VTMcNpOblkKUTKNyRqpnkdZWSdK/eKHamndOx36ZdVTVt74mjkdd/CB5qw7yTpiTkX/ACvahbLu4isztap03YTj9Bet2Lpn/HhDK3gKQT9uPOOg4kfVr8A8HUrfNYbp1gtMBGBkRzfQxfElMoaTjoLnq3nAV0xEWQhY51axXvJEDYBDKTeG6W+IaG3pI+DPLmaH1MR8APrMLuNhNXQKLO1ExrlhNlbUyrk5w9W73SE687kr0B+jRVx+SbI4w/4YTvSDfpyNIH7tznBkMg/N6ENsssWliqlppSm3hM0du4ayA9fLgO3Sdp6BVEgXHHUrIaEPhBhG4V8b0r1Ugh53Q==
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=Evzmw0Kbb1086SNAFwP84OfWZk7Qtqa9y+NiCRowB/s=;
 b=W3sDss/Tpbp4p1XIWqhVwGuxZIRTPFSSIpSs8yRqXh69+sZwwMX2noaJcJWb/+b2wnuUaGkfp+Bfbjw7t3BxCjA5If3PDuucd77v37zpwUBuEBXOC6/rwqAbVcTDLoDSAwIhKDdQEkeza0NrOsuzBnXDnRaC1WjjeE1lPfN2SpXUCOuxCm3l2KcjlqpLcgVIfPSpLixho8Bf+QkZsb8yeH4eH9mYklhG0INP722umiyjPJc2FUrnPI3pee9f/XwfR7FKmqVVg2rI/u4ZF7B+VU7bGheaz6yijOuZlCtO2yFzg1k25NeussruX66XTqA8Bmd2JUVf1jWnetX6OhU0kw==
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=Evzmw0Kbb1086SNAFwP84OfWZk7Qtqa9y+NiCRowB/s=;
 b=O0ZGwnCJ6mN1B2OLYxNbZdWzcsjf7OIT2kWmnWpgs8FuXSVzIMnAf4ppxE1s0SgP0LPszpUxHNq6/LKahXrBMAC6cH1FGHr2M9S2SrmGFbcrEQEzublqiq440UxYbm2mQDSnbSH6y3tpSgSnVN1EecBrczCd+MKIE4Ntdpr7N8U=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <939d27c8-0cf4-40b3-b5b9-c39c47c57541@citrix.com>
Date: Tue, 16 Dec 2025 23:50:02 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v4 2/2] xen/x86: move d->arch.physaddr_bitsize field
 handling into pv32
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251216231348.3897820-1-grygorii_strashko@epam.com>
 <20251216231348.3897820-3-grygorii_strashko@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251216231348.3897820-3-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0611.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:314::10) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH0PR03MB6462:EE_
X-MS-Office365-Filtering-Correlation-Id: 6fc9278c-efa5-4e13-dc40-08de3cfdd671
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eVFBR29jS3k4dldzQjN0ZFNRK0grN2VGMzBZZ0lJTnhzTmFrbWdkc2JYVlYy?=
 =?utf-8?B?TVVWZkl6QlNOMWNuZHV5ZHVRZlM0SWFPS1ZWV2dVZ1d0RDU4NnVjNlBsOWlL?=
 =?utf-8?B?NTZFbmMyU3JLajZnQ25pM0JCMkdLSmdwM0g1S3BqcnFBT2h4QXA5ZjhmaE5X?=
 =?utf-8?B?cW5sSGZ3anJxcUZmUEl6NThLVHZ0TWJhS3B3ZGU2YktON1RuQk9sVTlpcTRw?=
 =?utf-8?B?amNBQ3FIN3FqeWtJaTlhNDV0Tkh3SGc2S0ZETDFuQW5CKzJlaHBTQ2x3Z1Vx?=
 =?utf-8?B?WmFQNGVremsyTklVNHliYXkrZEVQVmJ6WUtpVHhmLzBnTVpJUHdWWXoyWXRC?=
 =?utf-8?B?SEVrMktmSWV1T1ZJaE5WVFd1TWFNSW9nOWR5ZEJVTUtHUVNuVUE5ck9PRHk5?=
 =?utf-8?B?Z3MvZEQzMnBEVzE3WkUzNkJFSWcwWTR6UnZCZlVSamdjUkQ5eUxoUUF5NEtT?=
 =?utf-8?B?T0dHazRsMFdpOU9obUZUS1h3amgzb2U3KzlJdUs3VUpXVFJhNkhhL0lWQ3Ar?=
 =?utf-8?B?QmZaa2ppSEFsbmlvTktWclVjZ1ZRN3RBeHg1V3YxRGk0aG5kMjVjbWJuRDk1?=
 =?utf-8?B?NjNSRlk2QlFUZUc2eUpVcjczNmd1Q0RqMnQ2aktRV3NFMUUwY3pVb0FmRVBU?=
 =?utf-8?B?UzE1LytnQ1JLT3JOYVhxVnFWa1dWSzllVmczOGVTTVdrWThpREhPQUpxU0NK?=
 =?utf-8?B?WTNTaE1XcGRCeTRxbWR4ZGtJbDl5WkdsdnlwMEpia1NtZ3V6aGphTks1MUNX?=
 =?utf-8?B?TkFhMzJJZ3BMY29adFVqVkU3MjBBN25NMDJDWURmTzRZMTdCTTBpTDAvamhV?=
 =?utf-8?B?dERrc2YvNXVhbXRuL2Jzams2bmFpbjQ2d002WFBLQXpTeUJ1a1RwRWxmbWw0?=
 =?utf-8?B?UTAraXNiOVF6a2Y2bWhWbEluTzJRcXNRZjF1bktmVlR1RU92WWUxQVZhVGpG?=
 =?utf-8?B?M2xiM2VTU3FDbFVHdjc5V3pNTE5QRGlkK1hXSW9VR3MzZkwyczhtOGgwM0hV?=
 =?utf-8?B?RVoxUTV1MHhPOHREaTdhRFpOWlRMb0VONDMxNFZmbnVEZWdqd2FrY2JnSDJl?=
 =?utf-8?B?TldLR2w2clhGbGV1YTJpRTBvLzNpbjdEeUYzRFRKTWdLTGI5WmhWQ3hzNFRT?=
 =?utf-8?B?WXp2Y2tsRDY0RTdtRjRBaTQ3SnNuUXFDeUVVYlB1RnhyODArSUV5UFM1c2dt?=
 =?utf-8?B?dHdYM0RQL1IzQXE2bjRzRXZZTUgrVmw5b0RjRUhXOWJQaENXM2FWOFRDUkVK?=
 =?utf-8?B?MVJhejdJK1NzQkpUMDY4OXkvUTdWMklBNndYM3JsSEJOejd5RGw4YlJVYmtC?=
 =?utf-8?B?YUFyQmMvZmtSS3U2eUdRbEsxMVhMdnZTWG40NHFaRzhFU1ZpTmhoaGFKRC9r?=
 =?utf-8?B?UjBhd3dBYVc0MXdwTTA4Y0lhRnNGd0sxSjVzMXk2TWRxdnI5cUlHTWJaaXZW?=
 =?utf-8?B?cmZGajUyVEZmMnhOeEk0TFM3NFc4SlBsd1NJMWhBbjRHU053MktIbkNKeVZU?=
 =?utf-8?B?d0FuVFNvM0Z3ZzFWU0ZsWXpPcFRZZGJPNEVRTXVaQlovaCtuSGQwRC9jM09U?=
 =?utf-8?B?d09ET1ZtdFg1a1pYcHBxTmhXbEZlN01tb1pjNXZ3TVcrdCtBMVYxR3hpZXNl?=
 =?utf-8?B?Vk1yZjAydmpNOU9YQ1AxNE1ramFLRHlaNTF1UDZNZGh5ZWdUdEV4UlBkWGlW?=
 =?utf-8?B?WEVHaE5DakdKQXRwSjhQTnVtUVgycUxIYVFpS1dKR2NLT0R4VkRZcWpOQ0Jv?=
 =?utf-8?B?emZHeWttcjNuZ0xzM0tLU3czOFp3aVJGOXV4MzY2OVRWcS9aRnJuY1ZScTVK?=
 =?utf-8?B?Q29Oc3hrM3UrU29NdTNlZGNWTHc2VkQ4YVNUNXRHdjNSakhtY21xNDVhekRT?=
 =?utf-8?B?ejFvV1VSMFJmbXFmeU5lWHZnejUweHc1Q3VTQ3pMc3lxMkpqd3Y2VGZZL3Jm?=
 =?utf-8?Q?CyNqfBQURyBvBBOO9B6fBQ7ZjntgtOvp?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bnZUb3dVVGRuSk51eGNWdGp1NFdENFJ4Yk53dEVYVW5kMDJMTVRKejBLdzBY?=
 =?utf-8?B?NHJETVRpYmJjS1NXeG13ejM0UzV2ZnJKZFBPNEQ2NjI1TExrUnpOV1VtNUlU?=
 =?utf-8?B?VkhWR1RCMTkxVm13c0k4R0JZc1RHQVFrcXJxL2lacUJtM1lFSXk1aFRFUEwy?=
 =?utf-8?B?QjdWeHpHYnBLNEpNTThVU3YvQWR2TzFMTFJPeThYVlN4aHMwMlJYdEFRL3JF?=
 =?utf-8?B?NHkrdWtSSCtmL05EbFVPTFlxdnV6bEtvTlUrNU5DOXp0VWhkblREK0Y1NU5L?=
 =?utf-8?B?WHVWTmhCYkhIemVoMnpBOXFya21zU1dDa0kxK0EzMkVnT2VnL1B4aldWRkFn?=
 =?utf-8?B?cmJPNkZBckJGWGpoRVdHQ0Y1ZlFVWVlraWtydWQ5cTVGeERxaDdiNHQwNU9W?=
 =?utf-8?B?ampTNVoxWTZsekYxdkFXWUFOM2pKYXlXTHp6YXBndXlieU85M1ZpNUdqN3Zy?=
 =?utf-8?B?dW1MTFBieTd6cWVKa2tBVWdWekJ4RWpaRUdMaldFRitZcWprdWpUdW9tQ3M2?=
 =?utf-8?B?VUZ5Q3ZWOHdwVGZqcGFTVVpVNGVxakNhNXZmRmY1L25CVEZKVGNnU0FscE9p?=
 =?utf-8?B?dFpqeWNrWUlTb284TU1sSWpFdVBPNWRqY21tREFrU3Uyb013ejhLYkwyakJ5?=
 =?utf-8?B?ZmFGL0lETlQ3c005NEgxMlhkQmtuSUV4VkIwU1UyVnVWbzB6QUlaWG9Vemxv?=
 =?utf-8?B?cCsvTnF3S2xGYTYwQW9QRXRuZ0p2cENPTjFCdzJweTlnRWhLMWZnekFJTmZp?=
 =?utf-8?B?WG5JZkt0U2JCSkdONWI2anBaOER4NGY3U2UrOWdIanlpOEtmVTN3OXpYcHBR?=
 =?utf-8?B?THZ1T0NoNktmaTRGOExIancrY3ZvQlJOR09CWTBGRndlN0tUdUVuVlVzbGhx?=
 =?utf-8?B?Z2lnSnlrbVgwQS9HK3VWc1lhcGZEVXlEekRRY2JXL0xoL2h4eDBHczc1d3R6?=
 =?utf-8?B?TVp4YzJIZmdyNGZrcENnZVJ5c1ZqeDJ5TlBnbnA5NTJETkhQQ2syK1FJdDRM?=
 =?utf-8?B?NjluY1dWQUxJOTVjQVhoelRyVDRPaU1FelJzZG5wY3BzalMySFVwQUU1czN4?=
 =?utf-8?B?RzFUVlhvM29xY0RGUm9BNVB0VlN5K0lrcUt1bzNBUzV1Y3VIUzhLTW4vYm1s?=
 =?utf-8?B?TUF3S01WUmhrVEcrdEYyRkJqeUJheFc1L3hkNmQrYXFtbWVhMTY3bmtxWlBM?=
 =?utf-8?B?WUEwUllQSzcyczJxM04rNTFvSnhLeEs5aVhRcXhKUG1ZemU4ZGQwZTNWZkh1?=
 =?utf-8?B?SEoyUXlyZ1FQaXcwSGhKNUM4UzVZNm4wU3Jta0ZNeXYrNldIZmxyY29NbnhY?=
 =?utf-8?B?KzVtTmJSdXVaTEYzcWhmK2h6M29qYXVvSWMrMDBLRkhjc2ZCL0c1WlQzVWpZ?=
 =?utf-8?B?VHdzSnlzOERoR1lkbnE5Q2tTUFBSN0Y3Y0dkOTlTZ3BzOG5PTWRSN0FaZkJo?=
 =?utf-8?B?QnN5a0J2VEFGZzM4ZFpWdUNYRzJrQ1ladE1NTXhqVERGR1hZUkpJS2lwdith?=
 =?utf-8?B?SExtL0x4Wnk2M2Y0U25sNG9LbUg3dFJoYlpIcDNqTDBGYVZJREFWZGJ6QmJK?=
 =?utf-8?B?YXhHdmNvd3pBTWNkQ1NkMTBLaGZFOEJ1dksyT0tvcm02RFZUYWdKUFNvNUhF?=
 =?utf-8?B?RmpJTHpZTGxmdWpiWHp0VkdOaWpPVFR5dktNeTdwZHBtYml0TFRqOWdjeThG?=
 =?utf-8?B?Ylh3UUYwOVJULzYvY0NwWFFrM3hrTTJKSTAzM2NNeGRQanlmakE2Qk44VHFM?=
 =?utf-8?B?R1BHaGFCTUF0RDViWTNoQkh0SndSS2U4dXp5RVBXYWVpSHh0VDJlbDQ4cm9N?=
 =?utf-8?B?RXVCcHFidHlCYXZFTm5IbUZLQmV6Z1JEMDA3cEpTcXdtUXlteHVHdVcwODdw?=
 =?utf-8?B?SGhpMk9aSWZhZHMvS3NLeGZzSHovcTJkMnA3ekwwdkdqVUNUcXZESzJqVmtu?=
 =?utf-8?B?ZHE1cHRpbVZKV0lGcHB6b1hXeUgrSWVZc05FOExXL1RwVDlDWnFkUEgyOG1F?=
 =?utf-8?B?cG9xSHZ6ZFRiWWVuQ2tuUEVFZWpNbTd6UC9WTk80eExYYXg2VGxucmdIVFB2?=
 =?utf-8?B?bzU1Qng1SnAwblBOM3NpNWxJMnlHaTJhcDFMSXVYWkFhK0UxOFlHM1l3cnJE?=
 =?utf-8?B?bThkdHBhbFJ2QmNJb2tCLzJ6M3dvTTIvR0E2YW9DaGZNVW8weHhjVzBUODFs?=
 =?utf-8?B?SWdpYkZQZkJTdnNMNHY1MWpjUGQzT3Eza1ZXZEltWHdwTThPeFV3WmgxM2Ry?=
 =?utf-8?B?RG8zT056bnplZ2pVZkZrQ2Q5ZFB4WEZVZE1qK0xxN0V2SkRlVUMwS05oYWJh?=
 =?utf-8?B?RXNSaXBYR0R6UW1Vb0dzbGhLdmlkTDdJM0JKU2ErS1ZpMFJlWXJ1UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6fc9278c-efa5-4e13-dc40-08de3cfdd671
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2025 23:50:05.7380
 (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: fS4tdpPPO9SgthbDZczpuP38fDBKBruZlPH30/jg8L595od1fy4hBvdNJeW6mwQWp4sXhtp7d/r262+AX0migf5Y0CUh+ONUHwQxK+0Vos4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6462

On 16/12/2025 11:13 pm, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
>
> The d->arch.physaddr_bitsize field is used only by PV32 code, so move
> d->arch.physaddr_bitsize field under PV32 ifdef into struct pv_domain.
>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

(Yes, much nicer split out.)


From xen-devel-bounces@lists.xenproject.org Tue Dec 16 23:54:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Dec 2025 23:54:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188480.1509639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVeru-0008Qb-8K; Tue, 16 Dec 2025 23:54:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188480.1509639; Tue, 16 Dec 2025 23:54:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVeru-0008QU-3j; Tue, 16 Dec 2025 23:54:14 +0000
Received: by outflank-mailman (input) for mailman id 1188480;
 Tue, 16 Dec 2025 23:54:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZKfF=6W=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vVers-0008Pw-JV
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 23:54:12 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 822b1f42-dada-11f0-9cce-f158ae23cfc8;
 Wed, 17 Dec 2025 00:54:07 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB6462.namprd03.prod.outlook.com (2603:10b6:510:a9::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Tue, 16 Dec
 2025 23:54:04 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9434.001; Tue, 16 Dec 2025
 23:54:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 822b1f42-dada-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=atn/qjheBJhvTR+3DPvNBRYSHLh1NBGeAp6O5zHEGnwdDIVkE4sX8ktpQpAIR13DPaAcSNl8Dl+JX2CPzoz0d9Jpj+8cP7SQZbfiWnEgM7jcZ92Np7JfvG5dfAm8Z5MAbDTSzo+B81cYKwxEwW2lsQzx1pJWGulkCLj3saJB657F3x0q1LubMIboaVTOujapYTnYX3YWvEytMhfi5sw/aWY9Ir7niwRJCv5l/NhTit85Q4Z3LxnAlvx0SyXh6aTRyCVFnUaGBy0GC0z+QVbmP9anLD7u3jADaiM2jtvsAwjVXXBkC2RKX7praKrAc1av+/bZml1ON1XB4CGi+f7kuw==
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=i8/R72zQa7IeFs/3n+DP+EKlqh0IWKcFs9CGcO4hif4=;
 b=ECBTdBRNT4vEyMZuRc0z9U/4tDpUZVoKHJzG4tI28po5dJMGM0xhXN8Q/4AfJeoXIkKM9kpaaLketgLKNWJFyEpT7JajsvKMUAuC52jTny8DCeeyd58qm/EOP29NiUIOvnT+EQTrpNFm45nLjVyKZf640rXI+FmvPcdeiesDSz82iRQxSHNvYapOKXB1ZxUA1XnyZML9ltQudxVHceWmOG/EHLkH3SUbaMh5Zv4aaco/CzTTRSk9K/gz/vfHDZvNPPJYuSUpbIAPi+gtAhaUgVFtU91hqFZMZle10vQRMRkCJlUwRk8VYUIje85Sx4J/F0COaFIFiqSmCDZahzHeOA==
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=i8/R72zQa7IeFs/3n+DP+EKlqh0IWKcFs9CGcO4hif4=;
 b=SnV3cDgYDPSyob9ySQ6RQH56IHD2RJe2zd3kvy+QIb+eywSz4cIK18uF1Zhb+/Gq8gSD3v7r36u04jwWIeLpT97VRIc63ezCrdC3bYYavpC62UTnn49iJryiwT/R6CsBPEOR0UOnUFTU5h6X+QraxMnUTvtSIYGjBHRma8b1hPs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <63b6f29f-29ca-458e-8d6f-3408e84173e9@citrix.com>
Date: Tue, 16 Dec 2025 23:54:00 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: X86: build failure
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <8ee2e801-9a3a-414d-9df9-113f419e02e9@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <8ee2e801-9a3a-414d-9df9-113f419e02e9@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO0P265CA0006.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:355::17) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH0PR03MB6462:EE_
X-MS-Office365-Filtering-Correlation-Id: 61bd6b10-4c58-46e3-00ea-08de3cfe64b1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?T3cyNllxZjhnenE3eHNHTDRnc0luZXFSSXpRa0VNYlV4akJKRkR2OVVUaEMv?=
 =?utf-8?B?d0VwOFN5aElvUU8wTzFETFpsUFE3VWs3SnRrck4yWXIwd2ZTbDVOYmRUU04r?=
 =?utf-8?B?WE44RHI2WXRqSHdFRHloaU1vcTF5MUliS3EzcWxjZHd3Q3ZoaEpHejRPQVk2?=
 =?utf-8?B?R0ZzOXc3eWNwUFZNMUdRQVBIS1A1VTVSKzdzcm9wMkRxZmtOZlp3dkhiNGlh?=
 =?utf-8?B?SUJmdWFURlBLblZYUDMwb0hvb1krTTRybHZtdTJNM0t1cGZzYWdlanJFa2tZ?=
 =?utf-8?B?SE4yUC8zSzdSR0E2cTJ6MGFVUlBtQjh1RGpxbU5wcWdZSExJdGxaamNtYnhK?=
 =?utf-8?B?WnlaVU93OVhOTDlFbE51aDhmQUVoOVlCYmRuSXVxREd4OHFUQTN1UHhCZ29I?=
 =?utf-8?B?d2dQS2NxRHYxZ09hdWRzUlZ6QStZWEVqU2M4OFpBU0VGZ0NBOFA4SGNranQw?=
 =?utf-8?B?TytydUFLMGcrYkVTNTdaUVQxRThkdm5mc2Z3bGxvOURRN3NGeVRGMDR4VGFx?=
 =?utf-8?B?RkVTbTFvSGVtYURxQlU2cFlQODZJNjg5TEtHS3VCSmd2MSsyNmFSZDkyTUR5?=
 =?utf-8?B?aGFYR2RNK012VktsaFNzcVJXeExPbFpvSTZIMEg1OFZTZTBRcmVPTXQxaFB4?=
 =?utf-8?B?enN3ejlQbm1RSEJ5TFJZUTZ6VTkrNm4zNGVabGFiWkFCZmFlbXN0Uk0relJS?=
 =?utf-8?B?dGpGQW5WTThuTmdVY3MvWHhaM3N1Yi80QzRWUjJJV0ZJMHcwY21aaFhPS0M4?=
 =?utf-8?B?bTF2dEVUQ0hmd1dISkNZZkVRVi8xQXUyRWJYdjl0MDdLZzJFRHVhOTlSWk9Z?=
 =?utf-8?B?dlNIQ3BSalFQSUc4VGpDUlRUTG1EbE4wZlNqS3czY0F4SEtaRWYvU0N3ZklN?=
 =?utf-8?B?Nk5qYTRRVTdWMXNMZjdnMkhNTy9ZS2xsbzFPdGcvRVRCMFNHOWhSOHhnU1N0?=
 =?utf-8?B?WXN4UC9Xc1ducHVNV0lsYVRqQ09qYmNtWjUveW1yYWNuZE5VczBBL3FFcjdr?=
 =?utf-8?B?Ukw1V2Vud2NDVUUwdWtIZmVLbDRTQkhTNWsvUGwyK01HdTFVVzc5RDl4R1hH?=
 =?utf-8?B?RmkyVElValh4S0RHM09RTmdLSCtYb0J6MDJkYlJOaVdOVHUrK1VpTGtEUk02?=
 =?utf-8?B?RldIUWcvUHRxdGdzeDZKS0xoanNLdGlBM2RTcGFMUzhnMHZweksyUDZBUDVX?=
 =?utf-8?B?Z1gxemNvUlFLTjkxdzIrZkRZaTlFY2xLV0dWYldzbkM5dDZMTGtsZDdkdzd0?=
 =?utf-8?B?c3ZmcDJ4WWJBdmw1bFprQWZVUzZ4MjVFT1plYjRGRHN6NGpsKzQ4Zjlsd3ly?=
 =?utf-8?B?ZW9UN0xEeFRyempoMkh2cmtSRGYreWliN2F2Ui80c2Ura0RHMlRlT0tib0hv?=
 =?utf-8?B?R3FvSnNQNHc2OWtpTlBxNXArWktYRG1zT2lKcVBzM0hGVzA3RFR4RkxVeUFx?=
 =?utf-8?B?Ylp0VzE0bExTM0lQayt2YWZCN2ZyK1JLU2RCWFdpUzc3dzZWc1Z5NDR1Z3lX?=
 =?utf-8?B?TzlsNFd2NDFITGsvOFltOGYvcS9kV1B4by9CUEpJb0hqbktNTHBhbWpCWm5O?=
 =?utf-8?B?SHdIVnVXQmRyUmR4LzYrVkw2QkNnS0NYOXFpYXViM1pBQVR5aFUzVm9Nc2dC?=
 =?utf-8?B?Mi9WbVBqR2JJQjRKcVIrdzVXSjZJNFZhbG11QStlLzhFK24xa0JLZytUZVJn?=
 =?utf-8?B?dnlSaVNDKytsNnQ0U1JuWnBIU2U4ZW1BMVMzYkNBVit1amFpbGRaNEtEb0JC?=
 =?utf-8?B?U2JBUCtWUXhIbEkrU1VOc2JSU2JnODR4SnJLZ2dJaURES0dGV2hjT3lGQk5P?=
 =?utf-8?B?cjkwTktYYmQxdldtZ1lVcjBUMUcwNkJGV1QrTU5FOXFsU05zOFdvM0xtVSsw?=
 =?utf-8?B?V1dmVkUyRlltYjlBOW5SNDlkNzUvOG5WTEl4VHZyTEZWbDdINTNrQ24xejRN?=
 =?utf-8?Q?XXZbXlDBY0lfCqXqP9w0zfq6NiK3E8Y2?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?R3JaQkF2eno0YVVnejVwSlZ0VDhIcWx3Z1RGUVhwR25lVmlEMjVQbEVnTnhk?=
 =?utf-8?B?OUEyT3VBb3BzUGZjWDRyQkdLdnFyeXhPR0lCS2Y3U3ZDczM4L1dCTTBScERS?=
 =?utf-8?B?TUhONGNpSWw5TE50Z2JqQmpOaXJWeEl1RkowWm04ZkZycnRNbXVlUXJPUDRB?=
 =?utf-8?B?ZUZVQjJVQy9EUmdmOGJSV0Ywa01UTTllM3pCdzBWS1EwcXE4YnAyclljL1Br?=
 =?utf-8?B?R0NrdHJ5ZkZrZUxWT09CQWtPVHJwWHFBYXNHdFhIcld4aEVhMDJjdlN3V2c1?=
 =?utf-8?B?Q2tseG1WSWNDVmhqZmtBVFVkd0hvSTlQZ2tFT2E0V3JuVHF2N2VOMGRqelZB?=
 =?utf-8?B?eXV0c1k4WkVReDVDSmorMFZkVmtkWEx0czhzWWxuZ1lCYTY2ZnVOZEEyemZP?=
 =?utf-8?B?dDlaeXdBY1J2djY2TjVUK0JMYW5Ib0dNcXducWh4bkptNlFvRGpXMFNhaGdD?=
 =?utf-8?B?emMrb0dzVllienJwZ2NiTTVOZHJpczJ1Rkw0cEVucnVnbnRDZ3FpOU9MTEx0?=
 =?utf-8?B?YVMwWFdabHVadFhKeUNiY0ZkQk1UczB2RFRpVjBqcW8vNTRaVU8ybVIwRXJZ?=
 =?utf-8?B?ZmhURVNTeFpDMW0wZ2w5cDQ3NXZOQm1FV3NNN0s3R0ZicnZ1YStmS3dqWC91?=
 =?utf-8?B?clpSZWxKcUcwbnhKM3d4SGp4dU43cDBzYURmY2VaL2s0Z3g2NHJvdTgxbEsx?=
 =?utf-8?B?ZmQ4UlNaRG1qNlowMm04c3d4Z09veDFoWVR6Q0FUVGlNTmxxZmJxWHBVVjBB?=
 =?utf-8?B?cCtuUmJOeTZRK2lCRmVXTGxqN3IyYjR2ZzVaakxlNFV5MHdwdHZnQW5iZUlT?=
 =?utf-8?B?S2RGMW5OUE9rWlNseTd4QzB4WGdIdnpCOC94Nk5mOXF0Si9idXNKTnlQNHM2?=
 =?utf-8?B?TTN1QVRJV2RWK3NjbDFYSEdzVnkzTG5kVEV4RXlaM2xmbE4zOHRrZWpScTQ1?=
 =?utf-8?B?QmVWUVUyeTB6b1RrQ0JEaCt5emlyc2RJaytEMm9QUmxYYmFycUd5dW1QblN3?=
 =?utf-8?B?dS9HUENpMmswNUNidmZuOW9xaUcvQk1LVUFBWC9yWHJ1QmsvNU1xWTU3dWRG?=
 =?utf-8?B?Z1ltOTBENU82SDd4Qk5JdllpMVpydnEwQTdMZXA2ZE84eU1oVGZCNmgvWnB5?=
 =?utf-8?B?d29LbVhnYXRnT1lieG5ITml4SkU1bnZ0ZGZJS01zeGJJTVMvN1RXYnJra2Er?=
 =?utf-8?B?YlJiZk5sV05MTmY2ZTBNVzhMZFlUMUMxNmEzV3Q1VTMyblQ0eFV6aEtxNHdN?=
 =?utf-8?B?Ymk5V244UkRYOE1vRFJUenMxY1ZvZ2NJcDVBeStNOWRDdWtIQkRVRi9SeGFh?=
 =?utf-8?B?R1NqcjJRUWNzejMveGpNWmF2TmRja0VIV0tBcWJqTmFneDJkVzlxZkQyQWpM?=
 =?utf-8?B?d3NGNzJZdHNPSEpkTUJFK3Mwa1h5NXYwUFprVVBnUzlMYUhmcGQvdktxeGU4?=
 =?utf-8?B?WmU1eW1ZeERNR0JTdnNlQWEvSWpBbEk2akY5akNxZEtwUDVXWEFUNTJxcjlD?=
 =?utf-8?B?OWt5TWRWR0N1bEtWZFExOUFrVWtyR3lqbE95S0hSbzg3eGg3M0w2YWlQT3Fk?=
 =?utf-8?B?MURkVDdGU1ZMaDdpUVFMRVpsMTJoaUhoVVR2SWFzcllvQ3RDK2swZDZneFM2?=
 =?utf-8?B?RGRhVDFmK3BxWjY3TDNKVGd6RkhxL2VHeVl3bFVCKzJjMVFGQ2R4OEtBbFRD?=
 =?utf-8?B?K2xPMWdYaGk2SjhXZ2RsMCtmeFhrUXJpTWlkdy9laUhIY3ovYzc2RFp4Z1Ji?=
 =?utf-8?B?UTg5ZWFRK0oyYWhNRjdBVnR4UitOZWVsRXo1N1cra2c0MXJWSkxVVjZDaWVV?=
 =?utf-8?B?T2ErMFFhL0JGUGhuczBqMTVKRTZQSU4zRDcwZVI2NTEyQzNkckc0QVQ4ekc3?=
 =?utf-8?B?dk1wN2N1Z3cvSW5mTTl2eFhNSUZqZk1oNHZKa01CNS9hTkdxNlA5RjVTdkEy?=
 =?utf-8?B?ZGtHbVZHTTh0OHd5S2l3MWVqV1dTMHBSckRBbXc5R0FqcnF6Q1pSVEtHYkk1?=
 =?utf-8?B?R2kvNmkyUm1TVXN1Zkt2SGVRQmwwdmliMDhlTHJCUXRhT20vcGhTR0FzSlBV?=
 =?utf-8?B?V0ZoUElZL250WmJXMVUxdEo5eFg2aGIycHhTN1BOTUlBZGhZekZvNitZekRS?=
 =?utf-8?B?M2tTdGwyVDNWdlRHcmVjamc2Z01CVW9NOVVYa0x4Z0JZczlXRkJ0Tlg1dkoz?=
 =?utf-8?B?ZU1pYk5JU1BRODV3VWdNZEpqbk9QN2tFNG00dldhTGk5UlBuWUVGSVduNEEr?=
 =?utf-8?B?bUJwbThjc2U4V3hrbzAzdUZxUXJSRXJhR0ZXOU9jc29MWExTVnBVeVVaYUJm?=
 =?utf-8?B?TGlXWEE1UHJ0Nlhwc0o1ZjlJc042WUJRRlZtVGI0THVJYmkvaDFtLzRGOHVx?=
 =?utf-8?Q?G+aNBol8X7WjEf/g=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 61bd6b10-4c58-46e3-00ea-08de3cfe64b1
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2025 23:54:04.2429
 (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: 5KMbCTfcb6i92e+05Ec4lsMsuIH3fN2LrTzWa0u6CKPZ3SXs5Epy5NjEgKl/npL5KNrBjVCzwBEJL2f68l0U/0bMQv3SFzJ05FMM/94y9J0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6462

On 16/12/2025 11:35 pm, Grygorii Strashko wrote:
> Hi All,
>
> I experience build failure with following Kconfig combination:
>  CONFIG_DEBUG=n and CONFIG_XEN_IBT=n
>
> with gcc:
>  gcc --version
>  gcc (Ubuntu 11.4.0-1ubuntu1~22.04.2) 11.4.0
>  Copyright (C) 2021 Free Software Foundation, Inc.
>  This is free software; see the source for copying conditions.  There
> is NO
>  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
> PURPOSE.
>
> Is this known issue?
>
> ====== log ===============
>   CC      arch/x86/x86_emulate.o
> In file included from arch/x86/x86_emulate.c:27:
> arch/x86/x86_emulate/x86_emulate.c: In function ‘x86_emulate’:
> arch/x86/x86_emulate/x86_emulate.c:70:36: error: writing 1 byte into a
> region of size 0 [-Werror=stringop-overflow=]
>    70 |     gcc11_wrap(ptr)[0 - PFX_BYTES] = ext < ext_8f08 ? 0xc4 :
> 0x8f; \
> arch/x86/x86_emulate/x86_emulate.c:78:9: note: in expansion of macro
> ‘copy_VEX’
>    78 |         copy_VEX(ptr, vex); \
>       |         ^~~~~~~~
> arch/x86/x86_emulate/x86_emulate.c:8140:13: note: in expansion of
> macro ‘copy_REX_VEX’
>  8140 |             copy_REX_VEX(opc, rex_prefix, vex);
>       |             ^~~~~~~~~~~~
> In file included from arch/x86/x86_emulate/x86_emulate.c:11,
>                  from arch/x86/x86_emulate.c:27:
> arch/x86/x86_emulate/private.h:691:17: note: at offset [0, 4095] into
> destination object of size [0, 9223372036854775807] allocated by
> ‘map_domain_page’
>   691 |     (stb).ptr = map_domain_page(_mfn(this_cpu(stubs.mfn))) + \
>       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> arch/x86/x86_emulate/x86_emulate.c:60:21: note: in expansion of macro
> ‘get_stub’
>    60 |     uint8_t *buf_ = get_stub(stub); \
>       |                     ^~~~~~~~
> arch/x86/x86_emulate/x86_emulate.c:3354:15: note: in expansion of
> macro ‘init_prefixes’
>  3354 |         opc = init_prefixes(stub);
>       |               ^~~~~~~~~~~~~
> arch/x86/x86_emulate/private.h:691:17: note: at offset [1, 4096] into
> destination object of size [0, 9223372036854775807] allocated by
> ‘map_domain_page’
>   691 |     (stb).ptr = map_domain_page(_mfn(this_cpu(stubs.mfn))) + \
>       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> arch/x86/x86_emulate/x86_emulate.c:94:21: note: in expansion of macro
> ‘get_stub’
>    94 |     uint8_t *buf_ = get_stub(stub); \
>       |                     ^~~~~~~~
> arch/x86/x86_emulate/x86_emulate.c:3402:15: note: in expansion of
> macro ‘init_evex’
>  3402 |         opc = init_evex(stub);
> [...]
>

Hmm - that looks like more of the GCC 11 bounds bugs, but that's what
the gcc11_wrap() visible at the top is supposed to be fixing.

Neither of those CONFIG options ought to be relevant.

Which Ubuntu is this?  Is it something local, or from one of our CI
containers?  Is this on staging, or local?

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 17 00:04:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 00:04:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188495.1509649 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVf1J-0002gN-9D; Wed, 17 Dec 2025 00:03:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188495.1509649; Wed, 17 Dec 2025 00:03:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVf1J-0002gG-4a; Wed, 17 Dec 2025 00:03:57 +0000
Received: by outflank-mailman (input) for mailman id 1188495;
 Wed, 17 Dec 2025 00:03:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=B9rb=6X=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vVf1H-0002gA-Hw
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 00:03:55 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id de803369-dadb-11f0-9cce-f158ae23cfc8;
 Wed, 17 Dec 2025 01:03:51 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by AS2PR03MB9930.eurprd03.prod.outlook.com (2603:10a6:20b:641::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Wed, 17 Dec
 2025 00:03:48 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9412.005; Wed, 17 Dec 2025
 00:03:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: de803369-dadb-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Hld0zTCpGmT4+9yJsWD0ZFLYFUlRfqUjiLixp0sxyvSzF5DY1addz18HExWzzUOYvnkmXLSe0y5JSpf5Snvw/LGzyqx51/IfCpmqalgf16Nqsnm4HnDaYFQpreDYwg+cJlmfEpuF5sAadoND3p3iy8cXkcYdZNAg2EU7IvsTda0ND7vgNsXmNufslaEsf71Lo8APYh1L0CJHyGeNAyDR9Ush4X88CY/Ek0xfM+Mxxb3da2/bNPdqEwLeaKuQctougxJAFmaK4P9RzxVvcNJM8CMWLvTN1lDJiT14UpLgOL59o/dpOGAI2jKAVfRnncmVBtfQBjx/G+TwJnOJ4k4WCA==
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=W8/BE/sof/AYBwOHcH1aEOatyd7vO4x/dB7RRZwu800=;
 b=gZBnPQfmRuWrFJfTisBbeuQrdcMPWx2CmLp87yqe28mJjWN8Hlj3kXVFBsAs4MTv2e1z/yNSEqrfyz7Z0zZBd3sHWNLbmzc1net41fqOMKwjQBmmhkGp2aghoypKNXGjF/dx0WhD4juE4EheWmHKSykFHm0qSnNG/d7so3/3sZbCSotX4xizwLulBFPL8765xnzXKGB8pjkRG18DXxJBqAq19XO12xXkx5zrX4O02xAe1y5ZxNKYioqlK3O7xV1zIvWvwpmZ/YpoVOusrsQAOTBsEUW8teMyDwmY50soWRtJzbqnR1jbmnaP777LArT2+BFaYB2QaD9nSSjiD1WT8A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=W8/BE/sof/AYBwOHcH1aEOatyd7vO4x/dB7RRZwu800=;
 b=mYvy6jowmPxlPhwflUexreQoNd7kTVMIclLP22wnkxE+PY793WUkhu7sZIAVJ4HxqItLiFWE2qAYSGiroLxCHFFbAmiX/EZd8uNYKQ7DktGMrvhmomyEDAW5FO7iMXiqBFFHE2gdKv3dAm4Xp0LeDyizxQa/brqBOz+kj02R1cIAGcyPv5dP6VE4YTJEBN1V7GpUIVb4EDT2BRNkZ81Z4u30PXobDbf5/c7urJuxlXBEbLKTUfFddMkohAjgeLmGyjGlh+PLiOywz4WXImGSpqUqdc+PhmH0ltEovafySpt2qacsIYoVhi3L7OnKJ3IAlpWw3CF+zDBX20HG4lDbfw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <627da606-d82c-481f-8f1f-fdc5dedb4dbd@epam.com>
Date: Wed, 17 Dec 2025 02:03:46 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/3] x86: move / split usercopy.c to / into
 arch-specific library
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <f73aa7e9-c176-40c3-b5f5-81c69cb219ac@suse.com>
 <0ba4df43-e071-4705-a18e-d41636946d3a@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <0ba4df43-e071-4705-a18e-d41636946d3a@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0016.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::12) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|AS2PR03MB9930:EE_
X-MS-Office365-Filtering-Correlation-Id: 5a3e835f-d605-4afe-ce36-08de3cffc0b5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Wks1RGhVcWhLRjBNTnZaelhmREUyODZ6N3laZjc4djFZZWt1ODdHajNoQWdk?=
 =?utf-8?B?elpBQjRrV01RbGlFN3JQTXlHMmFGUkltMSt2OHhoUkVHQkx1TERhZkFSOUhz?=
 =?utf-8?B?Rm9qSXlhU2hHK3ZmZ3dreEpZTzVFQTJRbDh1TDR4U1JxTDNsRnNkeUJpQU9I?=
 =?utf-8?B?N1V2TVphdEVHWTBVN0I4a1VXd1VubmFKZzNMY21XU1kvdlplZEUrVnFhZ1M4?=
 =?utf-8?B?aGU2RHpBZ2RsbExPUXhERTM1RWppeWFnRjlEMEpaTk55WEJuV095bktaL3Jq?=
 =?utf-8?B?S3pKc2lYMHBoTmsrRUtNM3RaMkdJenU5b2t1RzFFMkErSVdTbXJiMXMxRER6?=
 =?utf-8?B?VmNTUzdQcXI2S1MyMGthc3FKM1JWQ3BaM0VGcDdkZ2s1blhIMDlnRFBmbGM3?=
 =?utf-8?B?dDV2bndIb2N6T2MrV0VjSkJLTUVJMGRVSG04ckRFRmkzRTdIU3NSUTdXem0w?=
 =?utf-8?B?K3UwOCt6WjNBRVJXbkgyY0RNVzdPV0Y4bG13SnpGWlJBT0RZWTlWL1c3aHBG?=
 =?utf-8?B?SEVVajRFZEc3bEFaS1FmYW01THFhSi9FLzU5UER5Z2I4RG1GTis4UWhpMTFx?=
 =?utf-8?B?ZGZVTXp4ckF1QW9IMm5BbU1JOEVveTRoU3FFdEE5Nnpoam1OMlBDQlEvcDlB?=
 =?utf-8?B?TFZFbXM5MWxtbXl4OTExWHFFK2xCY29ldVNnMTZsOWZJYmVHOFdQcmh1ZlNL?=
 =?utf-8?B?MTVTUzh0dUdkSHJkNTIyQ1pJZnoyblFnbUVieFVJQmdyWTdkbDhkeHIwS0dF?=
 =?utf-8?B?ZVQvdmZUNmNnUzlpMEZsNDZTb0U4dzJjU21KVTgwVWM4QmZrU2xOeFV2VFBq?=
 =?utf-8?B?Y2ltejRjTGZGZ1RnMEVZaE1QcVpZM2VBL0dxclhWcnVzMjM1ZXgxRTN2ZHJ6?=
 =?utf-8?B?NkNGU1dFNk1IR0VabHNlSkF4U2RPdEY0b2Y2OTFTZ2tOOGlQNFlXSE12bEJ4?=
 =?utf-8?B?c1VqTG80YzFkaHMwb3FnTml6UVJsaFhZbzhOZFdDbGk0TCsxLzZsTG4rdFQy?=
 =?utf-8?B?MXVWZjdUc2ljbmlQU29UM3VVMTlMUHNFMW1IL3hlbHJYTThIQVB0eUlvTmNh?=
 =?utf-8?B?MWpWWXIxRWFFbFUwM1M1NjhiSW9BSStSd0M3eCs3NGpqMktobG5Zakx6MzU4?=
 =?utf-8?B?WEJtUmNWaSszRHVrdkVLQmtHYVM0eWZtN1lNcDlKcnBZU3RQZGkzbEtjRlA0?=
 =?utf-8?B?MTdqQ2pMb2tnU0k3ZmxIOUJuNmhTYU15UDhHQXlLL091L3NCQzE3SDl2b3ox?=
 =?utf-8?B?WmFNSkFmWEE3cnVFQkpnSmZiNjNDRmRhOXpYdWNSL2YrN2dlSW51bnMxTm1y?=
 =?utf-8?B?eFkzcTExZG1pMStBNzJickt0bzMyZUtKd3c1VFFkNk40SllZRFIwYW02eG1z?=
 =?utf-8?B?YUR1RkNIckZDTkJSYUhBbGhtQnc4WDNXclFpTHJsN0NEY3dmb3NNanY3YWVB?=
 =?utf-8?B?M0VMVVJpUmZGeGNNRUhzQ2syblY3Y043WWI1bmxyMnZtbmdwbXI4enUrNVRP?=
 =?utf-8?B?M1BwREtJMXkrMEg5ekxNY0piTTN6SmpvV1JIRDJ5TFFBVWhmZ045L044b1Nl?=
 =?utf-8?B?Tkwwd3FQbVNDSS9PcldxS3gvdktxN1RJK0xkMlVpSythTGpjOS9GSXhCR293?=
 =?utf-8?B?ZDNnMHBtalRTUEd4WmJ3TStHV0Fja29FUGxEaVV0QUhNL1QvbjVNVjRPZjRR?=
 =?utf-8?B?aGhpUWVxcHJ2WGxSVWM0eGEyV3lEL1IxdElFVFQ4UFh4Zms2RytoZ2NkR0Mv?=
 =?utf-8?B?QjdMZWN1QUVrVkNrbWpzak8vbGU2NTZLOFlzSElwcGhRTkRBT2cvbkVSNnpr?=
 =?utf-8?B?SUE2Z1R5ZWsyc3FnaWdHcVNQbWtYUzkvdGpadVVFaDBZQk1zL0c5dmczeUpV?=
 =?utf-8?B?VFBlb3ZiNWNOUllWLytIVkFrb2FxTE9oMWdwaEtwWDhVR3VwR29CSG1SRWxM?=
 =?utf-8?Q?A1tAAyVolzFotq2do7c0DGP8pNdM41g/?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dTFIeTZBODJYenR2S1grSDJjbkpwbTlRbTJxbHVja3lFRGdXc1NXTUtLWFpD?=
 =?utf-8?B?UHJvWGhRdzY5OWZTeEcwOTlrdG5DQXVIMEl3NHZxS3kzSmcrWE5MZ3hhZFZv?=
 =?utf-8?B?REZYMUxqU29CTnIvMzhQdmUwcFlHRGw5QXlYR0dLeUc3MGdsckQyWEdDQkt1?=
 =?utf-8?B?bVVMVHF6dGhwODZmejJwUXBxTFRZRVhvL1dSSStEV01CNFI5RUYyL0U0ekp6?=
 =?utf-8?B?WnBPR05IN0duMUxQQm1zaXJTNkdYK28wQzZjVm8vRVc4RnhJbEZuNWU3UE9x?=
 =?utf-8?B?WGNXSHhpdkg4K3U2L3Juc2JzeGY0WUt0c3lQdTJXNjNCUW5veEVrQmpxMFRE?=
 =?utf-8?B?S2hDYStFcjlmQitMb3g1anZwYi9OKy8xeXJZM3IwdEZvaFRsMDBZQ2FIYmx3?=
 =?utf-8?B?VTIzN3JxV3JFMmpMVXZhdzJIM1hodmpBUUJWQmZZQWJKZ1lRMzAyd0N3T3hX?=
 =?utf-8?B?akhKWitpSkFBRloveVhWdGRHRGl3YlI5NjFBT2M4ajZDWEZFcFRaek1ta2F1?=
 =?utf-8?B?T2hrOTcrWjQxRG0zYWZibThyeUc4eEtNbUw4ZkYxMVV5cU1SLzlrSlhNdEZ3?=
 =?utf-8?B?enFRbUVNU3phZjVDQ0tUbFJLL1FsNFprY0FiK0RJZHR2T3Y1UG1jbFBMTG1E?=
 =?utf-8?B?YnlzbWtUanNnSHRtOFZUVW4yS0R0MkFjOWtnUlJvd0tIUkRRcmdGdDJSVWxn?=
 =?utf-8?B?V0RvMnJ1K3FLTUFxdHQ3M0x1REJ4Ynl4ZXFaZGpTeVFHaXlybkFjRmRybmFr?=
 =?utf-8?B?ckt3UG5qM3V0a05mSWJFK2hQVnljbUZ2RytmQ1ovRHdkWXpJYmRXVXh6dk16?=
 =?utf-8?B?aHpEQUlxUTNtY0V1OXl5OTBBVnc1UmhpN3g1dXBvUGhYdUxLYlp5bzlTSWt2?=
 =?utf-8?B?WUI0MlhBSUkyVHlvUE9MWmVnN1p5emtTZHJ0S2w3VzlQWWFWRkZZZDBNYTZt?=
 =?utf-8?B?b1dJdVJIdDIyczNhU0E4VFYyNExJSGlhU2szQ0lPVXo0dUh0cHFjY0IvRXp5?=
 =?utf-8?B?M05YQTNWU012c1dSRTB1WlRRc1crTWxDZG1HVGtxdmVUaEtaa05TU25rVVZj?=
 =?utf-8?B?NDNicmdmelc3eWNHQWhCc1RjcGtkc0h3T09EYTlNblFTdWdSOUFReFlUeUdV?=
 =?utf-8?B?M3R6Slp0NDNidEQ2N2JXNGQvYW9tOVpvS0wrSVpnZ2YzOGhSSS9pVTF5YkN1?=
 =?utf-8?B?VTU4S25EQlpySXRLSnhaMVdydFZtVlIxNVN3U0I3dk9LNklIRDlsRlY0ZkpT?=
 =?utf-8?B?WUdiQUk3TXRna1p3MXNMaEpJaFZQRzJsb1ZBbEo0eGt2TGtVbVpheStFYWRt?=
 =?utf-8?B?bjhBcTdKM0FmZDVDRFVURHo4c0N6T2NhZTZUMlA0SHN0SlVUeTVEZHlCT3Fk?=
 =?utf-8?B?djdZRzN6ZnRaTk50YnBpcThxSUdUSWhIZmxiT05VR2lZUGhRTUtkVnFLb01O?=
 =?utf-8?B?bnZQOFczQlBlRXBUbFhLZG1BL3BLTHQ5QUh5bXUyVndSNXFiVVZ5RithT1ZC?=
 =?utf-8?B?ajBiWjFydk1lUkhoNkNTbitjWHFuV1FwbHZBZngyb1JOQ2VZU0k2OTNDMVhN?=
 =?utf-8?B?WXJGVGltZ1dlUW54TC8rS3RBS0ZrSGQ5UTVsN3M4UlFRMVNrQldUdGs5ZjZU?=
 =?utf-8?B?SEZqMDdZdnJoZ3ZvL1h5NnJrdjlFTW4ySkNCU0J4aU1QZXJYVTMveDR4L1cv?=
 =?utf-8?B?WU5oMGE3cXRIamk3c3pMTXB1RXhBNjdwY0tPZ0Rpb0w3M3lQVEhGUk81Y2dy?=
 =?utf-8?B?ZFB4UGJHTzd0VVp0UmRFbFcrRTAzeFQyU0dEU3FnQjl2eERKUTBSSDZOYWRl?=
 =?utf-8?B?N1lNTjdhb3A0aWtZVU5pN2hYNXFnWFdySyswZ2hBVHY0eHB0ZDdBSGdzd0RB?=
 =?utf-8?B?L1Z0U09sVmxRWlovZ3d4Znk2NjBpWGo4UE0yejg3N1Z3cXRvNjhoYjNUSkdx?=
 =?utf-8?B?TUZ5eS9JcmM5QVlReVY5ZTFidkxTU1NwNnR3WWluSTJqRS9QVGRMWC9iRGRC?=
 =?utf-8?B?NEVnWGdBaU5MS0tDeGM2NEpSWGw4YzZabXkyNmJVR1gyalhjMlVFOWxXdVFQ?=
 =?utf-8?B?TG92MWRsMTAyQjYvQ0ZDMWw4MWxXNFdJNkdRbC9oL2RYSnpVNHZlOFVIVXk1?=
 =?utf-8?B?YkdRM2xadmRnVHN5U3NBR0R4TDMySlBiTitoU2pEYWIzSnJHUkJKR2h4M1hI?=
 =?utf-8?B?Smc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5a3e835f-d605-4afe-ce36-08de3cffc0b5
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2025 00:03:48.3347
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3CsHI9HThhrRNszLeBmFD5CXewT4v2xAsMZ0Qj8oEPAYRWKAfEnghHHjdIqrNKd/UTuALQQjiE0/d13FzsqqZiS5MTQ1+FMlDpVAGT3ot5s=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9930

Hi Jan,

On 16.12.25 11:17, Jan Beulich wrote:
> The file wasn't correctly named for our purposes anyway. Split it into its
> "guest" and "unsafe" parts, thus allowing the latter to not be linked in
> at all (for presently having no caller). The building of the "guest" part
> can then (later) become conditional upon PV=y.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> v3: Retain xen/sched.h #include.
> ---
>   xen/arch/x86/Makefile                         |  4 ----
>   xen/arch/x86/lib/Makefile                     |  2 ++
>   xen/arch/x86/{usercopy.c => lib/copy-guest.c} | 12 ++--------
>   xen/arch/x86/lib/copy-unsafe.c                | 22 +++++++++++++++++++
>   4 files changed, 26 insertions(+), 14 deletions(-)
>   rename xen/arch/x86/{usercopy.c => lib/copy-guest.c} (94%)
>   create mode 100644 xen/arch/x86/lib/copy-unsafe.c
> 
> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index 61e2293a467e..dfb258d7ac1c 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -72,7 +72,6 @@ obj-y += time.o
>   obj-y += traps-setup.o
>   obj-y += traps.o
>   obj-$(CONFIG_INTEL) += tsx.o
> -obj-y += usercopy.o
>   obj-y += x86_emulate.o
>   obj-$(CONFIG_TBOOT) += tboot.o
>   obj-y += hpet.o
> @@ -93,9 +92,6 @@ hostprogs-y += efi/mkreloc
>   
>   $(obj)/efi/mkreloc: HOSTCFLAGS += -I$(srctree)/include
>   
> -# Allows usercopy.c to include itself
> -$(obj)/usercopy.o: CFLAGS-y += -iquote .
> -
>   ifneq ($(CONFIG_HVM),y)
>   $(obj)/x86_emulate.o: CFLAGS-y += -Wno-unused-label
>   endif
> diff --git a/xen/arch/x86/lib/Makefile b/xen/arch/x86/lib/Makefile
> index ddf7e19bdc1d..8fe2dfd88553 100644
> --- a/xen/arch/x86/lib/Makefile
> +++ b/xen/arch/x86/lib/Makefile
> @@ -1 +1,3 @@
> +lib-y += copy-guest.o
> +lib-y += copy-unsafe.o
>   lib-y += generic-hweightl.o
> diff --git a/xen/arch/x86/usercopy.c b/xen/arch/x86/lib/copy-guest.c
> similarity index 94%
> rename from xen/arch/x86/usercopy.c
> rename to xen/arch/x86/lib/copy-guest.c
> index a24b52cc66c1..73284b3f14be 100644
> --- a/xen/arch/x86/usercopy.c
> +++ b/xen/arch/x86/lib/copy-guest.c
> @@ -1,4 +1,4 @@
> -/*
> +/*
>    * User address space access functions.
>    *
>    * Copyright 1997 Andi Kleen <ak@muc.de>
> @@ -6,8 +6,8 @@
>    * Copyright 2002 Andi Kleen <ak@suse.de>
>    */
>   
> -#include <xen/lib.h>
>   #include <xen/sched.h>
> +
>   #include <asm/uaccess.h>
>   
>   #ifndef GUARD
> @@ -139,14 +139,6 @@ unsigned int copy_from_guest_pv(void *to, const void __user *from,
>       return n;
>   }
>   
> -# undef GUARD
> -# define GUARD UA_DROP
> -# define copy_to_guest_ll copy_to_unsafe_ll
> -# define copy_from_guest_ll copy_from_unsafe_ll
> -# undef __user
> -# define __user
> -# include __FILE__
> -
>   #endif /* GUARD(1) */
>   
>   /*
> diff --git a/xen/arch/x86/lib/copy-unsafe.c b/xen/arch/x86/lib/copy-unsafe.c
> new file mode 100644
> index 000000000000..a51500370fb1
> --- /dev/null
> +++ b/xen/arch/x86/lib/copy-unsafe.c
> @@ -0,0 +1,22 @@
> +/*
> + * "Unsafe" access functions.
> + */
> +
> +#include <asm/uaccess.h>
> +
> +#define GUARD UA_DROP
> +#define copy_to_guest_ll copy_to_unsafe_ll
> +#define copy_from_guest_ll copy_from_unsafe_ll
> +#undef __user
> +#define __user
> +#include "copy-guest.c"

Thank you for doing this.
Reviewed-by: Grygorii Strashko <grygorii_strashko@epam.com>

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Dec 17 00:13:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 00:13:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188504.1509657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVfA0-0004dp-1K; Wed, 17 Dec 2025 00:12:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188504.1509657; Wed, 17 Dec 2025 00:12:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVf9z-0004di-Up; Wed, 17 Dec 2025 00:12:55 +0000
Received: by outflank-mailman (input) for mailman id 1188504;
 Wed, 17 Dec 2025 00:12:55 +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
 <SRS0=B9rb=6X=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vVf9y-0004dc-RA
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 00:12:54 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 212d5950-dadd-11f0-b15b-2bf370ae4941;
 Wed, 17 Dec 2025 01:12:53 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by AM7PR03MB6420.eurprd03.prod.outlook.com (2603:10a6:20b:1b4::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Wed, 17 Dec
 2025 00:12:49 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9412.005; Wed, 17 Dec 2025
 00:12:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 212d5950-dadd-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=i36HzgjFeM+8g0yqy/8ocrvh4rHzRUUhkeBkkJS8bSn77F0YvFcSpVDlzisHI0yOc3vNeD83qw05e6GAd79rsAfaIgAySE/T7ZcQ4j6qdnurNwd0P5Xzf8s13p3PbT5Oi2ZRtQ/4Vmql0CEYCD1/qvPdRJLkDMv6OyMmTzLhjC7755/Tmw8Naz+JVZYQGTfcaHMoZjX5zJ2L/uUjwDfeVeunxEn243QF4+12vGtDgSZuEBKozWdqxMa45t9IX0YEaHIbt2RAU0aekQGoYzuirJR7hcFO3TFb+6k9KVb/Y2wzDSbyDvsB+RP7Ovt29NxdkYSFZp0w7EkcdOwKFyhyoQ==
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=HFUbE3p72+wwdKnvgqJdaG/E+aUr9A2b5Hc0E6XhN1U=;
 b=HG1SGW/fAmdq8mrO1UaK76fky+ntCXb8oShmf9R9wtwAeJkObaMKh4Y4lcgA4XpzzC6GF7mdifrkXzFjP9hi17YQ8bZrJ+NPbD0zgG/wjXVTSPPanqzPZ0pkjWoe7cq9kizHl1qJ2FJD257+VYKNlHtZE/jL+w1CIsAzi9MNZA/SSOXi2wkNxU9hzMds7vPTTNWY3x57FRKvWqFKc2g6Td8+a3PV3EbKAHkHbEsmYnxtcupHXf+SSyXbKIks+Md7PzbLPFLvfnde5Di84W6FRLI/wcP/hFSG07x6hSsS6h3EgpLoK39ONLpRcCOlCcXcSyDOhd1BQui17CuLC3P24w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HFUbE3p72+wwdKnvgqJdaG/E+aUr9A2b5Hc0E6XhN1U=;
 b=nH9BZHf4tcvWYFlMz/yKqreZkdYwV21vL0rWbh67mxJprspLbzPknPZocnC1K5C2AdrtNitFdHYnd4b9dnzEzuqkwIXGoPS6ATVkQHZr6LhEWkIVED9UM3kiv0/hsvz+OvFQIdubzi8p+b0twmWSO4fxSwMxNY5OUdiULJh/VXoD3jECVFCgqmQVaBXltOQ08fw5S0EMJYtZxYpTcNaOKFF6yuAXk87ziJT3CoMynyjW0hCMQklslYEZha6TMupSr5QoG7PkTLWhhdheqmo7O75duJC7SwRGPJuJw7R8jAcIIYu0jCrlD3OyCgAI1h3CcmJQLWFq9p8ccUxXedIw5A==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <0066dae8-a05b-488e-8dfb-0685e1e9f700@epam.com>
Date: Wed, 17 Dec 2025 02:12:48 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: X86: build failure
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <8ee2e801-9a3a-414d-9df9-113f419e02e9@epam.com>
 <63b6f29f-29ca-458e-8d6f-3408e84173e9@citrix.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <63b6f29f-29ca-458e-8d6f-3408e84173e9@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0021.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::29) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|AM7PR03MB6420:EE_
X-MS-Office365-Filtering-Correlation-Id: 2d3b0bce-c17e-473d-1208-08de3d010380
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?elNuVTFnTXZrMzByTjJWVy91Y1JwTnpjdVhyVnNRc3pzMVNud1RqTU8xaFBB?=
 =?utf-8?B?WHVMK3ZPMWp1YVE0UGxzelJmS2hJV0FVNjQzZ1FkTkxaM2VMSStjbUxzYmh2?=
 =?utf-8?B?cnFDRTJrNXljQ2ZzdUFPcSs4VzJ5eUdiNWZVWlhOMGJzRVlIc1ArSzlwYmdJ?=
 =?utf-8?B?eDVYREVMWitYbXNXWXVxckt3U0twMmFUT1VObDJqdHhDQVN6OVAvaXBLWEVB?=
 =?utf-8?B?Y1ZlRU45eVA4ODNlc2VMZHRBVU50MThFTGhzYmRhZzVFempFT1NVUzQvZDAw?=
 =?utf-8?B?Yng1eDRxRUpJek5RaytYWWpLbUg3UnlHV2lBZ3NQaHZtcFgxWTJqeHJnSTB4?=
 =?utf-8?B?V0pQM3g0U2dEcnRGWmNrM0pBZkNER3hOYjRJb2hWYmVjWGR2QlU2UElwN3VQ?=
 =?utf-8?B?K2EvMG1yQkhQUEw2Q2lpQVdHcC9ra2RRcUdBNlhGdmNkWG42dStkeVJRd2NN?=
 =?utf-8?B?M3R5czRQWEJKZ1hOVHFCWWRiKzZlZ0t4RlFNM2pqWnkySC9MSmVWUTQxcit5?=
 =?utf-8?B?dCtBSUdVU2FYOUVzWHV4Rk0wczNNVVc1UUpoSzV4eFJjdm5NQkZIeFFWZlRy?=
 =?utf-8?B?YUh4SVk4aWNFMjdicUNPa20za01PUmxWa0QrSmJDaEhNUDR2akZydUxyWjVu?=
 =?utf-8?B?K3pQNExJaVo3bHZEbFhWakpXeUJKOVlmeDNKVlJSZUViSTRwVmM3QWl4bGtU?=
 =?utf-8?B?dVUvVnJKbzFyRjJwdmpYUXhKanhGSmt0U3B5OFY2ZWJ4MDNMbnFkNUFvL1p1?=
 =?utf-8?B?Q3RVZVQ0M05QSVdtOTlvVjZlY3dEanorQy9RaU1OeXh4ckJkYzBmaGY1a0dW?=
 =?utf-8?B?V2ZKY0xwRHVFeDBKalJGODYvMm5CdzViNituUW5RUjNIbzB1WUd0dWU5ZXNv?=
 =?utf-8?B?MWt1cnJkTlZ2ZVM1REthQ0VrM0FaVzdYeWJiUWE5b1ZnSDBCeWtYbnJwMGVE?=
 =?utf-8?B?cnNxTWlFbEQvWXV2d2g1YzVQbExEMGk0Q2wxNndOTUQydldWL2xreW9pWXdt?=
 =?utf-8?B?ZUFHREVlRXlpZFhSL2NtU2dIWkJBTFJMem0vYWE5YXNNUWlxSHZVTHRaWE5x?=
 =?utf-8?B?cWg3N3labkJ1WE1oVzM5c0gyS01EUExBbVFLUHZKc084SXRKVWR0NnJsOVps?=
 =?utf-8?B?QUhEQlBFeTdMS2dNNWEzeXB1V2JYRSs3RzZSb2N3QnFXWDkweTJDMEdxR1pI?=
 =?utf-8?B?VXRmZWlnd09FWktveGswVlRXUHBuSVpwWEFRbDdTWlk5bWVtNFkyRW1HNDZa?=
 =?utf-8?B?UEp5VmU0SEI0cXZxNXBITVcrYUZacEp5NFR2ODdQT3hjMWs4Ly9ROXlRcTdw?=
 =?utf-8?B?amY0dlZwWmNjUjZPaUtRV1c2S0ZrTUdPYTZLK0V3dE5Hc29YUWRtZUdCR1ZY?=
 =?utf-8?B?ME0xZWJEWWdabDJVaVk1ZmtmWEkyVkQzUnJBWmJoS0tvY3RWSU5SMFNCQkJV?=
 =?utf-8?B?SnpDVG4zMHpNbmhTOXduYSszL2pSVlFCU0JQU01EV0J0VmdWWVdWaDVTOFdN?=
 =?utf-8?B?RjNONktZZDk1aHdrdmdJanpVMXRjYmtQQ2U2bXdNaDRDdUJ0anQvaXZ0YzNT?=
 =?utf-8?B?WFcyYlRZTkM3WFMvZ0RkTjNUQzVNN1VQUW9Nc2ViWm5TMUhrMXh3VVAzOXFT?=
 =?utf-8?B?RnNCT2pLaUVhK0JwL3lCUWlGNU0yRWhndXZheGlPSlgvbGppbU5UV1RjUFVw?=
 =?utf-8?B?dkY4aTV6emkvbjRvbWJzU2lSWjZqQWxsZjh1dDhsaVBXZDF4SWJXZi91QlJy?=
 =?utf-8?B?NW10NXpQNk5XSml1c2k0U1lIZjVxWHNxUW0raDFhUTB4ZnZuOGtDeXFwSTBE?=
 =?utf-8?B?WnhQSUNVZ0FrQTRmby9iTGZWM1RMSXp6RjJTVkJmUHpVYWd1LzdVS1NQaHIz?=
 =?utf-8?B?L1hnbFJkV2NLMm5qUCtZQ0xxM2VmSzlxT0RjdzVJS0hHdjcvV3FDOXRQTktF?=
 =?utf-8?Q?iNG4bLACOJgQWLk2rfnRLVRIdHPVPAr6?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WTZGMC80QS94ZXFCYnJocldrU1JFckxxWmhGeWZHWUJJS05QWTVUbjg5c3hp?=
 =?utf-8?B?TzVZNVB0U29lYnhyVFREV0Q5Vk5tNnFUdTBaQmJDRjFVNSsvdWhzeGhkUnN6?=
 =?utf-8?B?c2ltMXI2dkNkamVwY1BRYnlObi9lRGRiZVQzR3BUNHBCWjUxWGxZZ3psVFBW?=
 =?utf-8?B?amtOTjZvMEdldFByaGxQU1IzMU1YMFcxTWVhSkgxS2paeTkwK0NVTENOV3Zp?=
 =?utf-8?B?WStvQVZNcmpseWczcWZJREpEYUJlQmFjc1lFcHVSY0FGSENQVS9LaW5XVVJm?=
 =?utf-8?B?VUI2R0Jib0NVRzhtc3g5dWErMWxLcFRRaUI4d1MvTWkvRkVqa054Y0RwanRE?=
 =?utf-8?B?cklCVERtMlhDcFZBYlZac1Q1YnZZbFlCeWVFWVpJRkVNdThzaElYWTIxQ0Zw?=
 =?utf-8?B?eS9vcWFtRnRlc3BMNWdPdi96bTJINVc1b3l3SVNxRkxISG1xSjVrT1E0TjZT?=
 =?utf-8?B?dFJTMjJoWkpCZHFremlwR0JuQlBnMUJSZ2dNYmQyTFZsS2pINFVYS0VEZHFz?=
 =?utf-8?B?NytHdUliREhMSE1GbFo3ZHZtTlAzdnRrTnFFZXR5MWlJUWN6ZjRiK2dJMFpO?=
 =?utf-8?B?dVFyeDF0S2IzUW9GaURpZm5ScnZmSU9OcWR6ZWpyRG5VV0hZald1elpDOXg2?=
 =?utf-8?B?NGV0OXdNbDNuWnBSU05wbE1TbEpxemJGeW5JMVFYTm5uM3JCR3RGWWZVZkY1?=
 =?utf-8?B?YW10WGxYYmcvQzd4RlFTTUJ3NDg3NkExZy80YnduRWVRMkJ0QVBhQWZZYmF2?=
 =?utf-8?B?WXhOV1N6QnBrVU5wdGpiNHpEL0pJOWVLT2lYL3o3R20xUTg1Q0RCb3U4Nm1L?=
 =?utf-8?B?MWZmWGpWN3JzaVpMSE5IaEFXMVBWRWZaRFlxWmRGUE5SSmVhdVIwNDdzdXN3?=
 =?utf-8?B?cU80eURPNmhEd0s5TXlaR0pWbkY0T1hiSEhjQ2V1Z25XeUtBOHN3bmJMQ3pm?=
 =?utf-8?B?MSt6VGpXWXRlWDNhSlRmRmhGdDJkMTFxb2dhT3RlcXkzTVc0ODJGeVVpT2lL?=
 =?utf-8?B?N0RaV2hVVGlSNTVLTXlvV2FCYW5VZytKUCt6UmFiQlh1dGVpOHZOVUJCMFlK?=
 =?utf-8?B?WFFLVnZQWFBoYytuaGFrUjdaU01uVDBpeWNLa1ViR2d6ODMwSmROak0wRVZs?=
 =?utf-8?B?KzFCbUM0Vk9KMUNXdXJuM0U3WW1zNTRGU01HU3I5NHpYL0hab2NJTTgzeUlk?=
 =?utf-8?B?cGNpMDNRc3I4NWNYMnpHYzlVZjUwNHpjV3VDVUdpOUNPY2F1UmpRK3NtVTZE?=
 =?utf-8?B?NGpDREs1TjFNM3QrVnZSbUVBUTI2Zm0rQkJET1dndjZFdGFRQTVjWEtuRmdm?=
 =?utf-8?B?akFqOFZqeUE5MTNwNGcvYi9CV0VUdzJqb09UNVFIVnk2bFNVWHJIV29JWE55?=
 =?utf-8?B?cGFSRGp1SU1YVFBncEw1WU1oTzMyRUpkNmFZdEJvRGl1ZHJVRWhMM01sVVhm?=
 =?utf-8?B?TC9nUWhnZFBrTitTQk5WRmV2YThpd2x0ZzZJaGM2SkhqOVZlRVl1cVdVTnB0?=
 =?utf-8?B?R3pFS1A1eUdza0FBOWxlVEdOdHpkalpxTThoR1daWmZISUJPNm5xOWpPVXhz?=
 =?utf-8?B?cDZPbU1XZEw3NEtBaFpwVnpNMmM3ejNoSkFPNHJmNnQ4T3hWR2pZV2gvVzFj?=
 =?utf-8?B?RGNHZTFUU3NEMlRMaitEUkFZS1NFNm5mcVFVSU00Skh3L0pOTlV4WlRpMnd1?=
 =?utf-8?B?c08xVlFETDdaaFJzT2QxOGp1TTYzRzdOTytPRVQ5a1ZUdVVyb2NyNHIvNlpz?=
 =?utf-8?B?ZmMzemVYN1M3UkZ5cG9SclpHTlhPeHZoRjU5UlpzYTJKOHZHZVRBUFdEaVBl?=
 =?utf-8?B?blVzVTczRFQ5c2JuSnpPdEtZWUcvanh2UTBrS29LT2tHd1owbWlqaWJiNjZk?=
 =?utf-8?B?SVNBZXc0T3ZHUzRQSWhjZkJTUHVTNEJKTW51aGJBUEk5blJBZFpxaVZaUmpG?=
 =?utf-8?B?UTZTb0NNTjNsU1BFMThteTVJeWMyRGVNaVdmeWFYQm9oVGN5Z0Z4ZkQrT0RT?=
 =?utf-8?B?YzRUaitmUDlUTkJYZDZ4M24wTGs0OFNDS2RjcWdhbG10SVh6N0dFVlYzZ2FC?=
 =?utf-8?B?UW1UU3NaNjBvZWdJL3RranNDYW9HUWFWN2wza0JDOXJFbkJLWU92R1VqY1lH?=
 =?utf-8?B?TWNsamNtbEpKQldKNEpxZE9UbDlQNGlZNkhaV09GdGZQbXRwWU8vZFBBUSs3?=
 =?utf-8?B?V0E9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2d3b0bce-c17e-473d-1208-08de3d010380
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2025 00:12:49.7231
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: gxlrJu8T6XVnh2Qa8hQtLEDmj72VvqhicGBWxbCnQsiGFeG3m7aOdyOBowpc5O8O8XkrXNGqBb9tkb1RkYdBzmHSbNSGX7t3pHrMAxjpzNw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR03MB6420

Hi Andrew,

On 17.12.25 01:54, Andrew Cooper wrote:
> On 16/12/2025 11:35 pm, Grygorii Strashko wrote:
>> Hi All,
>>
>> I experience build failure with following Kconfig combination:
>>   CONFIG_DEBUG=n and CONFIG_XEN_IBT=n
>>
>> with gcc:
>>   gcc --version
>>   gcc (Ubuntu 11.4.0-1ubuntu1~22.04.2) 11.4.0
>>   Copyright (C) 2021 Free Software Foundation, Inc.
>>   This is free software; see the source for copying conditions.  There
>> is NO
>>   warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
>> PURPOSE.
>>
>> Is this known issue?
>>
>> ====== log ===============
>>    CC      arch/x86/x86_emulate.o
>> In file included from arch/x86/x86_emulate.c:27:
>> arch/x86/x86_emulate/x86_emulate.c: In function ‘x86_emulate’:
>> arch/x86/x86_emulate/x86_emulate.c:70:36: error: writing 1 byte into a
>> region of size 0 [-Werror=stringop-overflow=]
>>     70 |     gcc11_wrap(ptr)[0 - PFX_BYTES] = ext < ext_8f08 ? 0xc4 :
>> 0x8f; \
>> arch/x86/x86_emulate/x86_emulate.c:78:9: note: in expansion of macro
>> ‘copy_VEX’
>>     78 |         copy_VEX(ptr, vex); \
>>        |         ^~~~~~~~
>> arch/x86/x86_emulate/x86_emulate.c:8140:13: note: in expansion of
>> macro ‘copy_REX_VEX’
>>   8140 |             copy_REX_VEX(opc, rex_prefix, vex);
>>        |             ^~~~~~~~~~~~
>> In file included from arch/x86/x86_emulate/x86_emulate.c:11,
>>                   from arch/x86/x86_emulate.c:27:
>> arch/x86/x86_emulate/private.h:691:17: note: at offset [0, 4095] into
>> destination object of size [0, 9223372036854775807] allocated by
>> ‘map_domain_page’
>>    691 |     (stb).ptr = map_domain_page(_mfn(this_cpu(stubs.mfn))) + \
>>        |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/x86/x86_emulate/x86_emulate.c:60:21: note: in expansion of macro
>> ‘get_stub’
>>     60 |     uint8_t *buf_ = get_stub(stub); \
>>        |                     ^~~~~~~~
>> arch/x86/x86_emulate/x86_emulate.c:3354:15: note: in expansion of
>> macro ‘init_prefixes’
>>   3354 |         opc = init_prefixes(stub);
>>        |               ^~~~~~~~~~~~~
>> arch/x86/x86_emulate/private.h:691:17: note: at offset [1, 4096] into
>> destination object of size [0, 9223372036854775807] allocated by
>> ‘map_domain_page’
>>    691 |     (stb).ptr = map_domain_page(_mfn(this_cpu(stubs.mfn))) + \
>>        |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/x86/x86_emulate/x86_emulate.c:94:21: note: in expansion of macro
>> ‘get_stub’
>>     94 |     uint8_t *buf_ = get_stub(stub); \
>>        |                     ^~~~~~~~
>> arch/x86/x86_emulate/x86_emulate.c:3402:15: note: in expansion of
>> macro ‘init_evex’
>>   3402 |         opc = init_evex(stub);
>> [...]
>>
> 
> Hmm - that looks like more of the GCC 11 bounds bugs, but that's what
> the gcc11_wrap() visible at the top is supposed to be fixing.
> 
> Neither of those CONFIG options ought to be relevant.
> 
> Which Ubuntu is this?  Is it something local, or from one of our CI
> containers?  Is this on staging, or local?

Local. Nothing special - "Ubuntu 22.04.5 LTS"

======== apt show gcc
Package: gcc
Version: 4:11.2.0-1ubuntu1
Priority: optional
Build-Essential: yes
Section: devel
Source: gcc-defaults (1.193ubuntu1)
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 51,2 kB
Provides: c-compiler, gcc-x86-64-linux-gnu (= 4:11.2.0-1ubuntu1)
Depends: cpp (= 4:11.2.0-1ubuntu1), gcc-11 (>= 11.2.0-1~)
Recommends: libc6-dev | libc-dev
Suggests: gcc-multilib, make, manpages-dev, autoconf, automake, libtool, flex, bison, gdb, gcc-doc
Conflicts: gcc-doc (<< 1:2.95.3)
Task: ubuntustudio-video, ubuntustudio-publishing, ubuntu-mate-core, ubuntu-mate-desktop
Download-Size: 5 112 B
APT-Manual-Installed: yes
APT-Sources: http://ua.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
Description: GNU C compiler
  This is the GNU C compiler, a fairly portable optimizing compiler for C.
  .
  This is a dependency package providing the default GNU C compiler.



-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Dec 17 01:59:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 01:59:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188522.1509668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVgpE-0000PW-BS; Wed, 17 Dec 2025 01:59:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188522.1509668; Wed, 17 Dec 2025 01:59:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVgpE-0000PO-6y; Wed, 17 Dec 2025 01:59:36 +0000
Received: by outflank-mailman (input) for mailman id 1188522;
 Wed, 17 Dec 2025 01:59:35 +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
 <SRS0=7o+2=6X=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vVgpD-0000PI-0p
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 01:59:35 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0750e7a5-daec-11f0-b15b-2bf370ae4941;
 Wed, 17 Dec 2025 02:59:32 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 1844760097;
 Wed, 17 Dec 2025 01:59:31 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 70F85C16AAE;
 Wed, 17 Dec 2025 01:59:29 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0750e7a5-daec-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1765936770;
	bh=bDXuXBDMOQ99pDM1pvwTAGWZnUyvW4D/wclX+XUxNrg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=VV0RNYPbXpRscm8O3aOn1dyq/Dt1V+WcLynNW/p08MXUH1LCnkDWQSvUSt5XS3Wv+
	 dSMvOlmEcJBBOAvQIh1eunBFfRUFasiJc121l6MbVuZFBDSfhiJSHs8k8Lqrj6lJkb
	 tS7JVZlXPtt8VqQw7wLqqxq+UMdB0O1nTe/ZP0yBlt3ypYyt8Te9Yq98zpRB/1O6Cv
	 CtOELZFzbQqFK7b1rkVqs5IZPl/+5lunCPZNR6WZHVATiUsRaOM4RqOhLlqAA+tLKA
	 IaaPujSbnoclEvXxCVR5xm/Td3nAtracag2ugsJ2pgqambyvEZJIUVF9ag9QXa1RgE
	 6i7Rv6ofcQi6g==
Date: Tue, 16 Dec 2025 17:59:24 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, 
    consulting@bugseng.com, Doug Goldstein <cardoe@cardoe.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [XEN PATCH] misra: extend toolchain assumption about source
 character set
In-Reply-To: <5351e65c12a4fcc0a27b5e18102030ccf20bd28a.1765844467.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2512161759180.1716453@ubuntu-linux-20-04-desktop>
References: <5351e65c12a4fcc0a27b5e18102030ccf20bd28a.1765844467.git.nicola.vetrini@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 16 Dec 2025, Nicola Vetrini wrote:
> Similar to the ARM64 compiler, the same assumptions can be made about
> the X86_64 toolchain.
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

Acked-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
>  automation/eclair_analysis/ECLAIR/toolchain.ecl | 1 +
>  docs/misra/C-language-toolchain.rst             | 2 +-
>  2 files changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/toolchain.ecl b/automation/eclair_analysis/ECLAIR/toolchain.ecl
> index 842f8377e561..4bc88aa02942 100644
> --- a/automation/eclair_analysis/ECLAIR/toolchain.ecl
> +++ b/automation/eclair_analysis/ECLAIR/toolchain.ecl
> @@ -210,6 +210,7 @@ ext_sizeof_alignof_void_type"
>  
>  -doc_begin="See Section \"1.1 Character sets\" of "CPP_MANUAL".  We assume the locale is not restricting any UTF-8 characters being part of the source character set."
>  -config=STD.charset,behavior={c99, GCC_ARM64, "utf8"}
> +-config=STD.charset,behavior={c99, GCC_X86_64, "utf8"}
>  -doc_end
>  
>  -doc_begin="See Section \"4.3 Identifiers\" of "GCC_MANUAL"."
> diff --git a/docs/misra/C-language-toolchain.rst b/docs/misra/C-language-toolchain.rst
> index cb81f5c09872..ec0c9953be1c 100644
> --- a/docs/misra/C-language-toolchain.rst
> +++ b/docs/misra/C-language-toolchain.rst
> @@ -400,7 +400,7 @@ The table columns are as follows:
>       - See Section "4.15 Architecture" of GCC_MANUAL and Section "3.1.2 Data Representation" of X86_64_ABI_MANUAL.
>  
>     * - Character not in the basic source character set is encountered in a source file, except in an identifier, a character constant, a string literal, a header name, a comment, or a preprocessing token that is never converted to a token
> -     - ARM64
> +     - ARM64, X86_64
>       - UTF-8
>       - See Section "1.1 Character sets" of CPP_MANUAL.
>         We assume the locale is not restricting any UTF-8 characters being part of the source character set.
> -- 
> 2.43.0
> 


From xen-devel-bounces@lists.xenproject.org Wed Dec 17 04:14:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 04:14:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188540.1509679 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVivY-0001E5-Cu; Wed, 17 Dec 2025 04:14:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188540.1509679; Wed, 17 Dec 2025 04:14:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVivY-0001Dy-8W; Wed, 17 Dec 2025 04:14:16 +0000
Received: by outflank-mailman (input) for mailman id 1188540;
 Wed, 17 Dec 2025 04:14:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kmlh=6X=linux-foundation.org=akpm@srs-se1.protection.inumbo.net>)
 id 1vVivW-0001Ds-RZ
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 04:14:14 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d3cf6152-dafe-11f0-9cce-f158ae23cfc8;
 Wed, 17 Dec 2025 05:14:07 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 07C734021D;
 Wed, 17 Dec 2025 04:14:05 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BB41EC4CEFB;
 Wed, 17 Dec 2025 04:14:03 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d3cf6152-dafe-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org;
	s=korg; t=1765944844;
	bh=xU2trvapXnk7g5CtACkCj5ikoDQ/txcQUif1mO1cIY8=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=mObMGKaHzs+oIi98uFJNPKFjcIbwG14MyPdinNriP9aRfBOmrP9YgUR0U5RY50Jcg
	 MRZ/eN62bquBtMDDTcWo7ge5Ui+mwLmddzDbSz+GfDkXxY71DhMOB9iezvOgCfm+sh
	 F57lldv0D0XP5sN73LEmpLArzoS8Y23dHH7bFz7M=
Date: Tue, 16 Dec 2025 20:14:03 -0800
From: Andrew Morton <akpm@linux-foundation.org>
To: Kevin Brodsky <kevin.brodsky@arm.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Alexander Gordeev
 <agordeev@linux.ibm.com>, Andreas Larsson <andreas@gaisler.com>, Anshuman
 Khandual <anshuman.khandual@arm.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Borislav Petkov <bp@alien8.de>, Catalin
 Marinas <catalin.marinas@arm.com>, Christophe Leroy
 <christophe.leroy@csgroup.eu>, Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>, Jann Horn
 <jannh@google.com>, Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>, Mike Rapoport
 <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>, Peter Zijlstra
 <peterz@infradead.org>, "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>, Venkat Rao
 Bagalkote <venkat88@linux.ibm.com>, Vlastimil Babka <vbabka@suse.cz>, Will
 Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
Subject: Re: [PATCH v6 14/14] mm: Add basic tests for lazy_mmu
Message-Id: <20251216201403.4647a4f9861d3122ee9e90d7@linux-foundation.org>
In-Reply-To: <20251215150323.2218608-15-kevin.brodsky@arm.com>
References: <20251215150323.2218608-1-kevin.brodsky@arm.com>
	<20251215150323.2218608-15-kevin.brodsky@arm.com>
X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu)
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

On Mon, 15 Dec 2025 15:03:23 +0000 Kevin Brodsky <kevin.brodsky@arm.com> wrote:

> Add basic KUnit tests for the generic aspects of the lazy MMU mode:
> ensure that it appears active when it should, depending on how
> enable/disable and pause/resume pairs are nested.

I needed this for powerpc allmodconfig;

--- a/arch/powerpc/mm/book3s64/hash_tlb.c~mm-add-basic-tests-for-lazy_mmu-fix
+++ a/arch/powerpc/mm/book3s64/hash_tlb.c
@@ -30,6 +30,7 @@
 #include <trace/events/thp.h>
 
 DEFINE_PER_CPU(struct ppc64_tlb_batch, ppc64_tlb_batch);
+EXPORT_SYMBOL_GPL(ppc64_tlb_batch);
 
 /*
  * A linux PTE was changed and the corresponding hash table entry
@@ -154,6 +155,7 @@ void __flush_tlb_pending(struct ppc64_tl
 		flush_hash_range(i, local);
 	batch->index = 0;
 }
+EXPORT_SYMBOL_GPL(__flush_tlb_pending);
 
 void hash__tlb_flush(struct mmu_gather *tlb)
 {
_



From xen-devel-bounces@lists.xenproject.org Wed Dec 17 06:03:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 06:03:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188397.1509688 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVkca-0006bw-PX; Wed, 17 Dec 2025 06:02:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188397.1509688; Wed, 17 Dec 2025 06:02:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVkca-0006bp-MV; Wed, 17 Dec 2025 06:02:48 +0000
Received: by outflank-mailman (input) for mailman id 1188397;
 Tue, 16 Dec 2025 19:59:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0Tw9=6W=gmail.com=david.laight.linux@srs-se1.protection.inumbo.net>)
 id 1vVbCY-0001NB-Hg
 for xen-devel@lists.xenproject.org; Tue, 16 Dec 2025 19:59:18 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b2e2fff8-dab9-11f0-9cce-f158ae23cfc8;
 Tue, 16 Dec 2025 20:59:16 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4779aa4f928so61206425e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 11:59:15 -0800 (PST)
Received: from pumpkin (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4310ade7c3fsm779077f8f.26.2025.12.16.11.59.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Dec 2025 11:59:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b2e2fff8-dab9-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765915155; x=1766519955; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:subject:cc:to:from:date:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GjniS35+gFl94KgDPsESP+GSizMKZS5/qxbShY9gflU=;
        b=VRS67tdnTlTP1NEZZ7pi/wc3kfoOQ5J4IJSp333vb3IT2HWfopMWtZBlWmReVJZkIo
         /pIZpOhzgo8t7qbsMIaKn3N6ZuJ0Usfp3TnjJ+6OQuWSt30IjLGF9k8seifyJeGVZdD1
         psyVcNd8Es4gHjkKVNeMkIJ0Dy4bbF5UmKidIEiqCQZWC0eCJFdpVu2KlqamXYWSOIyB
         EC2PNTpepkUpJhfNxHczilvhoPMdf6RqTulillsMlIdIDS3P0Rz1PpoGQZWDCZfixvdD
         4C2Ft9keDA3f/UUqZVD+UeZPhVuYc0U3rhd4zbKFq+GsZd4avTTJsiyANeXKYABGDBOI
         3f+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765915155; x=1766519955;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=GjniS35+gFl94KgDPsESP+GSizMKZS5/qxbShY9gflU=;
        b=VWGPr8IQ6pQwjtgu2bBvSRuewu9D5RfI+IUooAf0DdNTCWP/6+M4HX5iptmPuw1pRE
         xDTtig4vRU5U4kbxprgtobNm34SoiEPaV91c8ZHnI3Q3MfqFp473vaMiNzyghFm38oVU
         bAdPbRu/LvNShKQgTVh0HKCEwKiuKCA6YA+azrqtLf7lncSaZNUc+BC35Hj77CxvOKgs
         kvGYn62H+MWGcOxoF9vvntBxoGep3Ryvc5vpONVBSmYgEFt0yiW3Kpv2T3NsIMGajQAc
         NM/Ja28vbduwUVRWTeqRU/ARWw8pifZeEXCkLZ6lAcwt9v/vecA222wzrdT4vvxCujXK
         7cSQ==
X-Forwarded-Encrypted: i=1; AJvYcCXEYWgZ8pm0LmsHyovWGm7d9sdgn4B8O2HCCoqeT7n+Fmvx7KXl4OEuJRVqALMn3IdQcoK54LlP3TQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzElvdsE1w6EEaPBaTynF3dYsgDINYkMb28mEFS6jNDJmIsCIFA
	vf9KiCPAdu6Ugu2UNJnqd6pA7sHkL6gzUonMz+Ll5TBdFtdUkhJqurYB
X-Gm-Gg: AY/fxX5qQFil6M3QMeV5xN3Nut9Pz67afNzKHhDimy8ax/F5B3I9z7BRhCUNohp1wVB
	U0DYcf19vHwixBdMHfGV7MayyAQ8OulfnVlxb5FkXCuxwxc9D8Mt6tlmrh7Ykvres8bdVVjTqFt
	XSFrh1rKollFU4B7t3k4u7qbWI1GlTtVnBf58lYZH3gXBwYb2lvidbtTHJyGAgIvFdSYTR0tPxc
	3k+5/dcUu/WOQ2bwdfMIQfhKirNl8pHX3+4Z4BWHYWgmIGyTCdhcLOwSml/8HXrMvt7UMwbrvHv
	ZLhgShUSfbDBrihFp3fVd2zboCE0QNkb9+lakz6dafzZA1Bd0pS0ZlzfLRRvG80Nt+ecwlsC43M
	IzJZulDnL1rkXQRGa4YIVl9o8k+H4SZSbnxFBHX9nvwu4RD8AV+75j4Sw0g14F/jVndjTMCs+cz
	E7WJB4I2Dig8Rm5AJ7Q1y9Kq3GNohNRPh/npN++KOKKsjbBYhlRkp6hsJ57WuBfPY=
X-Google-Smtp-Source: AGHT+IGkMCP0kONGgG89SYNUeIIN6orwCVUUHEl6uObTm3wydLwUSISgvgOvaVGUZQxtmSBHQ8CSsQ==
X-Received: by 2002:a05:600c:4595:b0:479:3a87:2092 with SMTP id 5b1f17b1804b1-47a8f9145edmr152180075e9.36.1765915154784;
        Tue, 16 Dec 2025 11:59:14 -0800 (PST)
Date: Tue, 16 Dec 2025 19:59:12 +0000
From: David Laight <david.laight.linux@gmail.com>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>, Ingo Molnar
 <mingo@kernel.org>, linux-kernel@vger.kernel.org, x86@kernel.org,
 virtualization@lists.linux.dev, kvm@vger.kernel.org,
 linux-hwmon@vger.kernel.org, linux-block@vger.kernel.org, Thomas Gleixner
 <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
 <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, Ajay Kaher
 <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Paolo Bonzini
 <pbonzini@redhat.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, Boris
 Ostrovsky <boris.ostrovsky@oracle.com>, xen-devel@lists.xenproject.org,
 Jean Delvare <jdelvare@suse.com>, Guenter Roeck <linux@roeck-us.net>, Denis
 Efremov <efremov@linux.com>, Jens Axboe <axboe@kernel.dk>
Subject: Re: [PATCH 0/5] x86: Cleanups around slow_down_io()
Message-ID: <20251216195912.0727cc0d@pumpkin>
In-Reply-To: <14EF14B1-8889-4037-8E7B-C8446299B1E9@zytor.com>
References: <20251126162018.5676-1-jgross@suse.com>
	<aT5vtaefuHwLVsqy@gmail.com>
	<bff8626d-161e-4470-9cbd-7bbda6852ec3@suse.com>
	<aUFjRDqbfWMsXvvS@gmail.com>
	<b969cff5-be11-4fd3-8356-95185ea5de4c@suse.com>
	<14EF14B1-8889-4037-8E7B-C8446299B1E9@zytor.com>
X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Tue, 16 Dec 2025 07:32:09 -0800
"H. Peter Anvin" <hpa@zytor.com> wrote:

> On December 16, 2025 5:55:54 AM PST, "J=C3=BCrgen Gro=C3=9F" <jgross@suse=
.com> wrote:
> >On 16.12.25 14:48, Ingo Molnar wrote: =20
> >>=20
> >> * J=C3=BCrgen Gro=C3=9F <jgross@suse.com> wrote:
> >>  =20
> >>>> CPUs anymore. Should it cause any regressions, it's easy to bisect t=
o.
> >>>> There's been enough changes around all these facilities that the
> >>>> original timings are probably way off already, so we've just been
> >>>> cargo-cult porting these to newer kernels essentially. =20
> >>>=20
> >>> Fine with me.
> >>>=20
> >>> Which path to removal of io_delay would you (and others) prefer?
> >>>=20
> >>> 1. Ripping it out immediately. =20
> >>=20
> >> I'd just rip it out immediately, and see who complains. :-) =20
> >
> >I figured this might be a little bit too evil. :-)
> >
> >I've just sent V2 defaulting to have no delay, so anyone hit by that
> >can still fix it by applying the "io_delay" boot parameter.
> >
> >I'll do the ripping out for kernel 6.21 (or whatever it will be called).
> >
> >
> >Juergen =20
>=20
> Ok, I'm going to veto ripping it out from the real-mode init code,
> because I actually know why it is there :) ...

Pray tell.
One thing I can think of is the delay allows time for a level-sensitive
IRQ line to de-assert before an ISR exits.
Or, maybe more obscure, to avoid back to back accesses to some register
breaking the 'inter-cycle recovery time' for the device.
That was a good way to 'break' the Zilog SCC and the 8259 interrupt
controller (eg on any reference board with a '286 cpu).

	David

> and that code is pre-UEFI legacy these days anyway.
>=20
> Other places... I don't care :)
>=20



From xen-devel-bounces@lists.xenproject.org Wed Dec 17 07:13:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 07:13:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188563.1509698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVlii-0006nK-MU; Wed, 17 Dec 2025 07:13:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188563.1509698; Wed, 17 Dec 2025 07:13:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVlii-0006nD-IX; Wed, 17 Dec 2025 07:13:12 +0000
Received: by outflank-mailman (input) for mailman id 1188563;
 Wed, 17 Dec 2025 07:13:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MzDs=6X=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vVlih-0006n6-8z
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 07:13:11 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d6ad5263-db17-11f0-9cce-f158ae23cfc8;
 Wed, 17 Dec 2025 08:13:08 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 113824EE8115;
 Wed, 17 Dec 2025 08:13:07 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d6ad5263-db17-11f0-9cce-f158ae23cfc8
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765955587;
	b=XztZ07DshC46hMxW2TRelkpnfjD51mjqZ5vuJfzAgJD0Wh8Kc3ajBCnyMDzkhEqOtJEe
	 WN+gZ7pXkyNdqrW5h8vo6iaVzFqk7vj3jEGWvq+FXpDISc8+Hk8/gQ6Px9Q3+MxTEC8GF
	 gJyz/r+7zCpWJga8U108KmLJMqwbYa6FIgEJW0dCSzKWwYnpwtjwDyYpWJfJ8gOoRkAoI
	 v0dtEAitNYfQ/3p1Sj8p2kpLsoXTZvLXaY3iz+szOJfpzUrW/R5eC8DXZM2pNCiAWwChL
	 PV5mOG4UJcfYHRWb4R+kvDbYFso2E0rIBwF97mubgOOyFBip8SoEwyH8CbPj/aR8WCHZ+
	 zzI2tx7GFQfi/3Y38YjT4KvY58dhQSNWmEXSiLtMoglz3BSw5VTf2TJ9ZdSOBDHSGqJfu
	 C6q+mAHXoelR0xbsGOTkP9JYdrXxYHOXj4r5RXtS85LKJ7XBXOBtSDSNQKMshspoQxBHO
	 aE5rJ6O0vy11CGuV2nMv1AwzoQ6fVwfgCqXwb1LqSZ5SPazP45yhYImpKgCGSxrW8oHLw
	 KVRmtRHb9l4wDMVAztlyLrOU1Tjj8c3FjM6UhS4nO5cFVvg+xu0+aVN72XUzwXyaF4yZU
	 v9xIuv/pPvJG3llIvFujlXeyzkfEJkhen6/m5Hd3P/seDzn46TvwI0U1ZXYYh1I=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765955587;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=pw0b2YO3MQkDiuw98EIZPlj7kSMv6vIlDUKJwghSvqY=;
	b=r0IDoVAXc1U+q/iwkmOrD5EsXRGG6Lulqqf3JKPlA1EGbeo2Aw9aGpST7q4CgrPE7ap2
	 N32NyTuMfKjxeIQcyGr4MOf1JP0q4uuw3iw8DFroD2l4e6vg6oJwmggZsBpR9GzCXLtc8
	 juJhAeWg4GRJiCQXwKFzpCXmENlezyOBvudYf2QdFnwsG9P7Ef1lxk21phPebUqWCXj9f
	 1ud9q1WPo2muwyf/qLpomouYYvFf6RFLVf7Nkl2Bf6DzQikv8FlO8L1O6AxVBc7wjSnAD
	 4LIB9oWha4PWSDmFDSH55c97pSm1NKSd0LzUxyVaqpmt+5dZJLHXL2MF/SPN/uxPVeggf
	 7wib7IVxGAX9D8onxeAyE0EJ7cU2y+DnsIwHXm2zOaMt0Jg+t4qY8ElmNRs/cNmg9YdBy
	 qSDvvq3rUaptRF77a0HHc1xDO8uy7D03GP68VIIeVp7jsPr/Hm/HN1xmL8sBOCb69zKqs
	 JArQzAGP5vm2OpgNsGYgEHefc3Nfe2bHn5h9TwMqQdZ2RowooK+Mp1nBuJ1fuI/Q9OnnO
	 jRZXmzkdog4u1QFQOeRfGa+EvBodK3eEzuD5Mr8ySz8MlMKPVsL4btfrcQQaz7fN1ZNM9
	 usSU5p+IuPBtoO/x0dLrJV9M9IXw9XrabKO/4OH49SorKUPhRmX5un27Xha8kT0=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765955587; bh=feF1XL/GkuRiJMs7+2Kpyxeh6JUzcUkNCwD8kiOSbJY=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=CB1Cf3yQzjHnZgj6jhxmYyhDG9Ox3LUo/lbMM6JR7xsqcgTOSTlKFOxWZkLLc5Iia
	 j6rzHfBFyAzK7JET4r/skko6xzfaoDuCW1orqfUFkKLbMBp5TSL2qSzgSthZFA+h83
	 jr0U9FBFYCWYU3G9hAXE9ZeHH55kWh2oQ3vDq6HLPiP6xKQIAF9ZWljfmJtWeGptXN
	 mg3GHl1ecOpAoOgMEhpsmzKSIg3igEIlr51MzzzPEOb/WeijSRiQ7IbT4WAAqk2D2h
	 bkwVQTHVjgYg5qI8KjPuAZLyva6lKJQYjTSdxznO1XADdvl9pImiFk7V8UosZDb+QD
	 i8EWHl4/2aeDQ==
MIME-Version: 1.0
Date: Wed, 17 Dec 2025 08:13:06 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org
Subject: Re: X86: build failure
In-Reply-To: <0066dae8-a05b-488e-8dfb-0685e1e9f700@epam.com>
References: <8ee2e801-9a3a-414d-9df9-113f419e02e9@epam.com>
 <63b6f29f-29ca-458e-8d6f-3408e84173e9@citrix.com>
 <0066dae8-a05b-488e-8dfb-0685e1e9f700@epam.com>
Message-ID: <709d7c2552828a68d40b93ba4211ae81@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-12-17 01:12, Grygorii Strashko wrote:
> Hi Andrew,
> 
> On 17.12.25 01:54, Andrew Cooper wrote:
>> On 16/12/2025 11:35 pm, Grygorii Strashko wrote:
>>> Hi All,
>>> 
>>> I experience build failure with following Kconfig combination:
>>>   CONFIG_DEBUG=n and CONFIG_XEN_IBT=n
>>> 
>>> with gcc:
>>>   gcc --version
>>>   gcc (Ubuntu 11.4.0-1ubuntu1~22.04.2) 11.4.0
>>>   Copyright (C) 2021 Free Software Foundation, Inc.
>>>   This is free software; see the source for copying conditions.  
>>> There
>>> is NO
>>>   warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
>>> PURPOSE.
>>> 
>>> Is this known issue?
>>> 
>>> ====== log ===============
>>>    CC      arch/x86/x86_emulate.o
>>> In file included from arch/x86/x86_emulate.c:27:
>>> arch/x86/x86_emulate/x86_emulate.c: In function ‘x86_emulate’:
>>> arch/x86/x86_emulate/x86_emulate.c:70:36: error: writing 1 byte into 
>>> a
>>> region of size 0 [-Werror=stringop-overflow=]
>>>     70 |     gcc11_wrap(ptr)[0 - PFX_BYTES] = ext < ext_8f08 ? 0xc4 :
>>> 0x8f; \
>>> arch/x86/x86_emulate/x86_emulate.c:78:9: note: in expansion of macro
>>> ‘copy_VEX’
>>>     78 |         copy_VEX(ptr, vex); \
>>>        |         ^~~~~~~~
>>> arch/x86/x86_emulate/x86_emulate.c:8140:13: note: in expansion of
>>> macro ‘copy_REX_VEX’
>>>   8140 |             copy_REX_VEX(opc, rex_prefix, vex);
>>>        |             ^~~~~~~~~~~~
>>> In file included from arch/x86/x86_emulate/x86_emulate.c:11,
>>>                   from arch/x86/x86_emulate.c:27:
>>> arch/x86/x86_emulate/private.h:691:17: note: at offset [0, 4095] into
>>> destination object of size [0, 9223372036854775807] allocated by
>>> ‘map_domain_page’
>>>    691 |     (stb).ptr = map_domain_page(_mfn(this_cpu(stubs.mfn))) + 
>>> \
>>>        |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> arch/x86/x86_emulate/x86_emulate.c:60:21: note: in expansion of macro
>>> ‘get_stub’
>>>     60 |     uint8_t *buf_ = get_stub(stub); \
>>>        |                     ^~~~~~~~
>>> arch/x86/x86_emulate/x86_emulate.c:3354:15: note: in expansion of
>>> macro ‘init_prefixes’
>>>   3354 |         opc = init_prefixes(stub);
>>>        |               ^~~~~~~~~~~~~
>>> arch/x86/x86_emulate/private.h:691:17: note: at offset [1, 4096] into
>>> destination object of size [0, 9223372036854775807] allocated by
>>> ‘map_domain_page’
>>>    691 |     (stb).ptr = map_domain_page(_mfn(this_cpu(stubs.mfn))) + 
>>> \
>>>        |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> arch/x86/x86_emulate/x86_emulate.c:94:21: note: in expansion of macro
>>> ‘get_stub’
>>>     94 |     uint8_t *buf_ = get_stub(stub); \
>>>        |                     ^~~~~~~~
>>> arch/x86/x86_emulate/x86_emulate.c:3402:15: note: in expansion of
>>> macro ‘init_evex’
>>>   3402 |         opc = init_evex(stub);
>>> [...]
>>> 
>> 
>> Hmm - that looks like more of the GCC 11 bounds bugs, but that's what
>> the gcc11_wrap() visible at the top is supposed to be fixing.
>> 
>> Neither of those CONFIG options ought to be relevant.
>> 
>> Which Ubuntu is this?  Is it something local, or from one of our CI
>> containers?  Is this on staging, or local?
> 
> Local. Nothing special - "Ubuntu 22.04.5 LTS"
> 
> ======== apt show gcc
> Package: gcc
> Version: 4:11.2.0-1ubuntu1

The minimum gcc version is 5.1 on staging, perhaps this is due to that

> Priority: optional
> Build-Essential: yes
> Section: devel
> Source: gcc-defaults (1.193ubuntu1)
> Origin: Ubuntu
> Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
> Original-Maintainer: Debian GCC Maintainers 
> <debian-gcc@lists.debian.org>
> Bugs: https://bugs.launchpad.net/ubuntu/+filebug
> Installed-Size: 51,2 kB
> Provides: c-compiler, gcc-x86-64-linux-gnu (= 4:11.2.0-1ubuntu1)
> Depends: cpp (= 4:11.2.0-1ubuntu1), gcc-11 (>= 11.2.0-1~)
> Recommends: libc6-dev | libc-dev
> Suggests: gcc-multilib, make, manpages-dev, autoconf, automake, 
> libtool, flex, bison, gdb, gcc-doc
> Conflicts: gcc-doc (<< 1:2.95.3)
> Task: ubuntustudio-video, ubuntustudio-publishing, ubuntu-mate-core, 
> ubuntu-mate-desktop
> Download-Size: 5 112 B
> APT-Manual-Installed: yes
> APT-Sources: http://ua.archive.ubuntu.com/ubuntu jammy/main amd64 
> Packages
> Description: GNU C compiler
>  This is the GNU C compiler, a fairly portable optimizing compiler for 
> C.
>  .
>  This is a dependency package providing the default GNU C compiler.

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Wed Dec 17 07:14:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 07:14:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188571.1509708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVljr-0007GO-Uk; Wed, 17 Dec 2025 07:14:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188571.1509708; Wed, 17 Dec 2025 07:14:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVljr-0007GH-Rf; Wed, 17 Dec 2025 07:14:23 +0000
Received: by outflank-mailman (input) for mailman id 1188571;
 Wed, 17 Dec 2025 07:14:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MzDs=6X=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vVljr-0006n6-1B
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 07:14:23 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 022ed189-db18-11f0-9cce-f158ae23cfc8;
 Wed, 17 Dec 2025 08:14:21 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id EA47B4EE8115;
 Wed, 17 Dec 2025 08:14:20 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 022ed189-db18-11f0-9cce-f158ae23cfc8
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765955661;
	b=EfZWB/KLw0njy44BUn66HNoHGfJ9n8OCGe0L7R0RmzKRlC5tStlmS+nPfWnIWQLUZSKB
	 qlgpp6fKCynyuRcJ54GF9OH7n2r7dlMaf3JMgpxytRdTD6lDMPhy0LS4BAdg8AmimfLRj
	 WcMrQYu6Fwt2lNufx/xX9oKyYMUbcBGwNYQExHeZL4bt/kkZNCVSJtayQ0WSO4DHIz4O5
	 8tq9ZuHfXyPlyQJF2Eq/1HeFIR9aUO8stKBgYjq0XgJfJQE+4c8v9ry4LZBx4JhY5zUhf
	 WcyS8lpVvaXVB3ZA3gMlOShzgVdjPFn3B/8s0jfKtprUk7KBFjq3po9w8JUyadhhqPoWD
	 wM+p6dh1v2eGx2tY9Wthkn637fUc0RNhf4ZAcc+6+dbOdVJyhtOOgltCvwhF3RMPasX+W
	 c+5nnMygEQYMC7ljtfJMB0B1B6k7Cb3k0eaNIRYxOMKxxStYz3HUNfbsIDdXY8QE3SAZQ
	 N0HPb51RnAksgG5bNZ6GJveJKfAukM/NGiiZTRtyW//wyWbkqUhJJc9HFLbzUeQRUDMap
	 YsYrAsXSlYpFItX4nOrapK8/pZ8S/uwb3vg6On9YikvF4c9P6LmqlEdLAMo9FA/mBF5yJ
	 DcpDvH+QVLcezuFt6e4TgxRsCLcZbm8DAJYX9/agbvQdcXnhdUijHIlF30WkLgc=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1765955661;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=9G13xjQLt7TZaWg/j6FsmkYWUAm6WOPwYtU312gTkCM=;
	b=Qc8V9jj8S4WyiY3BSKvIlEa7g/EvmcYJ7BeELCSZ5vSJFQzz7qXz4VlpuwJquPTnyGKs
	 XLrPOtuAor/Vlr00HH7HO/OzXTyBl+sy4OVhbN6lrTgAvqD5TcQhNdbUkQfZzlGAzJmHp
	 gGSDdYGLUkyTNgSqPQk96uJzIHkwMoROWuDp5cJF/kXtAh22STSJeiyyAXY7VFvguVZvx
	 J37i+z6ABtKGXUug+RGWBmB1lvnmL8OvRc/egEu2zPi2ffTAkUFXsFozx3IpAtM2UDR4U
	 oTY40V6OaND3OBfXOxG5NkyPVCtXA2l4cGhk40/WCvMZWDCXy/t012X5JTjMl1gpOgCHb
	 125WVgk827Jo9lt8ZbhR0PoV3ToHzRPCPFcAaMUzZdHLozLD7yBVcfZpoz0z0i41sG0zA
	 8bMjUNAvz2ODnGYJ4KLBTla7kJdM3CIcC7ADHhxF+KQYKEhv1PvCpsID8dfYelHFWUrfo
	 HNRBM008CWFHIerqrfnkILJbizN0Y0SfxzDCeSfnEgGasrjzz/NQUeZeE/wPQ0UnU+g5p
	 kLtGh2Tca7YjEYIbjOUty+Tp2D3TtjnqA4AflKM1qIRy7h9WJf5mQFbJsnsZCkkzbF0so
	 3+b3/fs4Ul34PSh9ms9vrJQQ2kJLQUHF4UE0nrUUiw4WqnTk8WE1dv7RDGY/+wU=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1765955660; bh=rsMbVP4iK8qrQsXEDQI10Mh//VZIRZDVp5BOCg6z4dM=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=BCk/wRaXVLjyHYkwo3IPDeLUsxJzkkKphE8M8eKTDSioCSxinxD3rZIdKCG2GsTGf
	 EaMypMH6sLMEBMnxC0dSVOOwlC6p8rkIHRUNEoeQLyIGn2KnTMhOgAy9xW8BICzk1v
	 ucbPejZQO9qVArDZs+j4s1EJjkNW+RX16o99S6EmsLUbTT/lHRnvp8mQ+sCZ/yM5Xt
	 ceZl67RL5OwJpfY8GPUnzJ51iFF+CeOD8eiMeuEvxb9M3pAo7J9iCREvTya5G7M6v2
	 koJo14uL2yHKy4MpKaXMnXeMUlYnn8Gi7yuujP3Qztst4Qzhb2+2HfCI/zupjehYyZ
	 f7NC+c8ZAj7ig==
MIME-Version: 1.0
Date: Wed, 17 Dec 2025 08:14:20 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org
Subject: Re: X86: build failure
In-Reply-To: <709d7c2552828a68d40b93ba4211ae81@bugseng.com>
References: <8ee2e801-9a3a-414d-9df9-113f419e02e9@epam.com>
 <63b6f29f-29ca-458e-8d6f-3408e84173e9@citrix.com>
 <0066dae8-a05b-488e-8dfb-0685e1e9f700@epam.com>
 <709d7c2552828a68d40b93ba4211ae81@bugseng.com>
Message-ID: <1e1cbace9863918afd58319cb2c26f7e@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-12-17 08:13, Nicola Vetrini wrote:
> On 2025-12-17 01:12, Grygorii Strashko wrote:
>> Hi Andrew,
>> 
>> On 17.12.25 01:54, Andrew Cooper wrote:
>>> On 16/12/2025 11:35 pm, Grygorii Strashko wrote:
>>>> Hi All,
>>>> 
>>>> I experience build failure with following Kconfig combination:
>>>>   CONFIG_DEBUG=n and CONFIG_XEN_IBT=n
>>>> 
>>>> with gcc:
>>>>   gcc --version
>>>>   gcc (Ubuntu 11.4.0-1ubuntu1~22.04.2) 11.4.0
>>>>   Copyright (C) 2021 Free Software Foundation, Inc.
>>>>   This is free software; see the source for copying conditions.  
>>>> There
>>>> is NO
>>>>   warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
>>>> PURPOSE.
>>>> 
>>>> Is this known issue?
>>>> 
>>>> ====== log ===============
>>>>    CC      arch/x86/x86_emulate.o
>>>> In file included from arch/x86/x86_emulate.c:27:
>>>> arch/x86/x86_emulate/x86_emulate.c: In function ‘x86_emulate’:
>>>> arch/x86/x86_emulate/x86_emulate.c:70:36: error: writing 1 byte into 
>>>> a
>>>> region of size 0 [-Werror=stringop-overflow=]
>>>>     70 |     gcc11_wrap(ptr)[0 - PFX_BYTES] = ext < ext_8f08 ? 0xc4 
>>>> :
>>>> 0x8f; \
>>>> arch/x86/x86_emulate/x86_emulate.c:78:9: note: in expansion of macro
>>>> ‘copy_VEX’
>>>>     78 |         copy_VEX(ptr, vex); \
>>>>        |         ^~~~~~~~
>>>> arch/x86/x86_emulate/x86_emulate.c:8140:13: note: in expansion of
>>>> macro ‘copy_REX_VEX’
>>>>   8140 |             copy_REX_VEX(opc, rex_prefix, vex);
>>>>        |             ^~~~~~~~~~~~
>>>> In file included from arch/x86/x86_emulate/x86_emulate.c:11,
>>>>                   from arch/x86/x86_emulate.c:27:
>>>> arch/x86/x86_emulate/private.h:691:17: note: at offset [0, 4095] 
>>>> into
>>>> destination object of size [0, 9223372036854775807] allocated by
>>>> ‘map_domain_page’
>>>>    691 |     (stb).ptr = map_domain_page(_mfn(this_cpu(stubs.mfn))) 
>>>> + \
>>>>        |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>> arch/x86/x86_emulate/x86_emulate.c:60:21: note: in expansion of 
>>>> macro
>>>> ‘get_stub’
>>>>     60 |     uint8_t *buf_ = get_stub(stub); \
>>>>        |                     ^~~~~~~~
>>>> arch/x86/x86_emulate/x86_emulate.c:3354:15: note: in expansion of
>>>> macro ‘init_prefixes’
>>>>   3354 |         opc = init_prefixes(stub);
>>>>        |               ^~~~~~~~~~~~~
>>>> arch/x86/x86_emulate/private.h:691:17: note: at offset [1, 4096] 
>>>> into
>>>> destination object of size [0, 9223372036854775807] allocated by
>>>> ‘map_domain_page’
>>>>    691 |     (stb).ptr = map_domain_page(_mfn(this_cpu(stubs.mfn))) 
>>>> + \
>>>>        |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>> arch/x86/x86_emulate/x86_emulate.c:94:21: note: in expansion of 
>>>> macro
>>>> ‘get_stub’
>>>>     94 |     uint8_t *buf_ = get_stub(stub); \
>>>>        |                     ^~~~~~~~
>>>> arch/x86/x86_emulate/x86_emulate.c:3402:15: note: in expansion of
>>>> macro ‘init_evex’
>>>>   3402 |         opc = init_evex(stub);
>>>> [...]
>>>> 
>>> 
>>> Hmm - that looks like more of the GCC 11 bounds bugs, but that's what
>>> the gcc11_wrap() visible at the top is supposed to be fixing.
>>> 
>>> Neither of those CONFIG options ought to be relevant.
>>> 
>>> Which Ubuntu is this?  Is it something local, or from one of our CI
>>> containers?  Is this on staging, or local?
>> 
>> Local. Nothing special - "Ubuntu 22.04.5 LTS"
>> 
>> ======== apt show gcc
>> Package: gcc
>> Version: 4:11.2.0-1ubuntu1
> 
> The minimum gcc version is 5.1 on staging, perhaps this is due to that

Ah, nevermind, too early in the morning :)

> 
>> Priority: optional
>> Build-Essential: yes
>> Section: devel
>> Source: gcc-defaults (1.193ubuntu1)
>> Origin: Ubuntu
>> Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
>> Original-Maintainer: Debian GCC Maintainers 
>> <debian-gcc@lists.debian.org>
>> Bugs: https://bugs.launchpad.net/ubuntu/+filebug
>> Installed-Size: 51,2 kB
>> Provides: c-compiler, gcc-x86-64-linux-gnu (= 4:11.2.0-1ubuntu1)
>> Depends: cpp (= 4:11.2.0-1ubuntu1), gcc-11 (>= 11.2.0-1~)
>> Recommends: libc6-dev | libc-dev
>> Suggests: gcc-multilib, make, manpages-dev, autoconf, automake, 
>> libtool, flex, bison, gdb, gcc-doc
>> Conflicts: gcc-doc (<< 1:2.95.3)
>> Task: ubuntustudio-video, ubuntustudio-publishing, ubuntu-mate-core, 
>> ubuntu-mate-desktop
>> Download-Size: 5 112 B
>> APT-Manual-Installed: yes
>> APT-Sources: http://ua.archive.ubuntu.com/ubuntu jammy/main amd64 
>> Packages
>> Description: GNU C compiler
>>  This is the GNU C compiler, a fairly portable optimizing compiler for 
>> C.
>>  .
>>  This is a dependency package providing the default GNU C compiler.

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Wed Dec 17 07:47:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 07:47:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188588.1509717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVmFu-0003Ec-Ei; Wed, 17 Dec 2025 07:47:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188588.1509717; Wed, 17 Dec 2025 07:47:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVmFu-0003EV-Bz; Wed, 17 Dec 2025 07:47:30 +0000
Received: by outflank-mailman (input) for mailman id 1188588;
 Wed, 17 Dec 2025 07:47:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=10za=6X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vVmFs-0003EP-Dc
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 07:47:28 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9f636d7a-db1c-11f0-9cce-f158ae23cfc8;
 Wed, 17 Dec 2025 08:47:22 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-477b198f4bcso43255855e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 23:47:22 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4310ada8426sm3312629f8f.5.2025.12.16.23.47.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Dec 2025 23:47:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9f636d7a-db1c-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765957642; x=1766562442; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tdcc4DDrbE+/4pognCRSg2l+tF0fZwy0o0r04FYXIZk=;
        b=gPILFuCWLHHca36oQoITgmYrpftUzyJjwli4R1BTFhZHzzlJMwnXZVygJGdQrmzoVK
         mEbmQUoBSoOMFuz7abpTWwG4x9qRIZnhe9P1e1rS7XUVdfkhwYrrES6zTEcHhIUyosn7
         15JRJMO4rahmDzw5uVs58qC9vKwGkjHltbJB5hjNudDRLmgi6WoR+T31yB64tV3mUSj2
         oq5q6ITPTfIwBoVXMNDDSdt2cmzJYcrqA7bK/KjGt2thqxEmFbQRTh+NTt6x0hY828No
         ZfYSMRbwlM/mMzRLwR3ppswvCXhgnpHy/m3s0BoF84uu5TW1aTjha/wQZarHuRTG7r/U
         4t2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765957642; x=1766562442;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tdcc4DDrbE+/4pognCRSg2l+tF0fZwy0o0r04FYXIZk=;
        b=gBCAGYYWQvoSztHsryTIlg3ongQvHcRRa9qU+DBd+sIWGOSYffLiBngkN4lH7g63fO
         rGlxPikUU4T+3bR8lo9SQMbkJ/1nMH1wEBxgy5Gg9XHY6Uc6eOq8pNOi+qjDf66hwOh6
         YxKNE+78Cj/LHWIGIgQro2p/gn/Sv9pcCWxZKD/TrNo7VB2en19Cihx7cTluVi7HGiaJ
         Ogmal/+2cfu8M9bTSY+ndY19/ennEs28oFyeoXFb+4z7965Fg5gK5zc7U+STF6KjwT5Z
         HmNRNiazYfDuv3u6JY9VY00B3y3fsqlWRvNeY/W8doaIW1UyNVoMiKiarQkwOb+Fpf15
         slAQ==
X-Gm-Message-State: AOJu0YymVln170t1Vs2hZaBelapnwpycpxRGPoWzHR90fWemcEdcg5mH
	5kVB/Zh2fu/AedQMNQB9nJmDhl1qbXZsHLBobIv5pzpNUVjpadYoaxzdlupbFSJmPw==
X-Gm-Gg: AY/fxX4B5CAyrmL7w6mGO/f0jcE4S3t9OykngkLvIrvwpQjUDxArPECPJ8/KuxNIQ/O
	gbsbr3lmPP1G9nyvrvNzHAJRnyjyJ4nKgn6X6X6pS0WkHiT4oTXofYSbv0zTE5Az6V1Rt1SGaZA
	9va6Jg6qCkQQBZxfpWAJsFNehXe7fWBFNTUphaggPnzssB6t/X5IAzeLUo2ekkvPvrsSjHrFko+
	kIAmXdPp1zdH8h1Q/5oRn+BiMn64PrJT0d/j/B8/Lj0JifTyxNMuyoPwpFLkp7xSWlF+zMM9jy3
	9P/JdnZhIeUg0ioePkQv5Kw1GUrH9cSMyeMGmDfHOn4mIRT1OvrFGF9Y1tyGjscKSm8kKgCn/47
	F9x8aobVvYCh5rr486OG9l7ul7vaAwWDTSsYYHttMVdQBNDkO8a8OBHYRqWTeckIcMgrONNzX+u
	NnouC9i9fk50q1uWiEHGgP/WgvPI9+JZ8+mLcAldMEgQNF+DLqyDbWWWgV6Uf7wsWbQSpq7/ev1
	z0=
X-Google-Smtp-Source: AGHT+IFYEVCHdbCHpkhfM1LGD3ZUypj6N6CMOLbKmDvV4iOzaQxlhmGB6A+5D/1991To8GDyT6AlWg==
X-Received: by 2002:a05:600c:524b:b0:477:bb0:751b with SMTP id 5b1f17b1804b1-47a8f90d716mr179672215e9.27.1765957642383;
        Tue, 16 Dec 2025 23:47:22 -0800 (PST)
Message-ID: <6483e684-accc-41ed-a934-e72f3c470af2@suse.com>
Date: Wed, 17 Dec 2025 08:47:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: X86: build failure
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <8ee2e801-9a3a-414d-9df9-113f419e02e9@epam.com>
 <63b6f29f-29ca-458e-8d6f-3408e84173e9@citrix.com>
Content-Language: en-US
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <63b6f29f-29ca-458e-8d6f-3408e84173e9@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.12.2025 00:54, Andrew Cooper wrote:
> On 16/12/2025 11:35 pm, Grygorii Strashko wrote:
>> Hi All,
>>
>> I experience build failure with following Kconfig combination:
>>  CONFIG_DEBUG=n and CONFIG_XEN_IBT=n
>>
>> with gcc:
>>  gcc --version
>>  gcc (Ubuntu 11.4.0-1ubuntu1~22.04.2) 11.4.0
>>  Copyright (C) 2021 Free Software Foundation, Inc.
>>  This is free software; see the source for copying conditions.  There
>> is NO
>>  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
>> PURPOSE.
>>
>> Is this known issue?
>>
>> ====== log ===============
>>   CC      arch/x86/x86_emulate.o
>> In file included from arch/x86/x86_emulate.c:27:
>> arch/x86/x86_emulate/x86_emulate.c: In function ‘x86_emulate’:
>> arch/x86/x86_emulate/x86_emulate.c:70:36: error: writing 1 byte into a
>> region of size 0 [-Werror=stringop-overflow=]
>>    70 |     gcc11_wrap(ptr)[0 - PFX_BYTES] = ext < ext_8f08 ? 0xc4 :
>> 0x8f; \
>> arch/x86/x86_emulate/x86_emulate.c:78:9: note: in expansion of macro
>> ‘copy_VEX’
>>    78 |         copy_VEX(ptr, vex); \
>>       |         ^~~~~~~~
>> arch/x86/x86_emulate/x86_emulate.c:8140:13: note: in expansion of
>> macro ‘copy_REX_VEX’
>>  8140 |             copy_REX_VEX(opc, rex_prefix, vex);
>>       |             ^~~~~~~~~~~~
>> In file included from arch/x86/x86_emulate/x86_emulate.c:11,
>>                  from arch/x86/x86_emulate.c:27:
>> arch/x86/x86_emulate/private.h:691:17: note: at offset [0, 4095] into
>> destination object of size [0, 9223372036854775807] allocated by
>> ‘map_domain_page’
>>   691 |     (stb).ptr = map_domain_page(_mfn(this_cpu(stubs.mfn))) + \
>>       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/x86/x86_emulate/x86_emulate.c:60:21: note: in expansion of macro
>> ‘get_stub’
>>    60 |     uint8_t *buf_ = get_stub(stub); \
>>       |                     ^~~~~~~~
>> arch/x86/x86_emulate/x86_emulate.c:3354:15: note: in expansion of
>> macro ‘init_prefixes’
>>  3354 |         opc = init_prefixes(stub);
>>       |               ^~~~~~~~~~~~~
>> arch/x86/x86_emulate/private.h:691:17: note: at offset [1, 4096] into
>> destination object of size [0, 9223372036854775807] allocated by
>> ‘map_domain_page’
>>   691 |     (stb).ptr = map_domain_page(_mfn(this_cpu(stubs.mfn))) + \
>>       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/x86/x86_emulate/x86_emulate.c:94:21: note: in expansion of macro
>> ‘get_stub’
>>    94 |     uint8_t *buf_ = get_stub(stub); \
>>       |                     ^~~~~~~~
>> arch/x86/x86_emulate/x86_emulate.c:3402:15: note: in expansion of
>> macro ‘init_evex’
>>  3402 |         opc = init_evex(stub);
>> [...]
>>
> 
> Hmm - that looks like more of the GCC 11 bounds bugs, but that's what
> the gcc11_wrap() visible at the top is supposed to be fixing.
> 
> Neither of those CONFIG options ought to be relevant.

CONFIG_DEBUG=n may well matter, due to the different -O<n> settings.
CONFIG_XEN_IBT=n otoh is indeed curious.

May want experimenting some starting from the pre-processed file. Grygorii,
could you generate that in your build env and then make it available
somewhere (together with the exact options passed to gcc when you observe
the build failure)?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 17 07:57:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 07:57:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188597.1509728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVmP9-0004px-9z; Wed, 17 Dec 2025 07:57:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188597.1509728; Wed, 17 Dec 2025 07:57:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVmP9-0004pq-6V; Wed, 17 Dec 2025 07:57:03 +0000
Received: by outflank-mailman (input) for mailman id 1188597;
 Wed, 17 Dec 2025 07:57:02 +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 <SRS0=10za=6X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vVmP8-0004pk-0B
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 07:57:02 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f7940af2-db1d-11f0-b15b-2bf370ae4941;
 Wed, 17 Dec 2025 08:57:00 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-477b5e0323bso1378335e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 16 Dec 2025 23:57:00 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47bd993f026sm23790605e9.12.2025.12.16.23.56.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Dec 2025 23:56:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f7940af2-db1d-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765958220; x=1766563020; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6bS2HtutJIOKEgHvKCYmMbwkYl2FVxLkCBY4kdmTe4w=;
        b=KVtG/zhfCFUu6MKtk7K5aKmEl1seebVvtqyTyHofHJr2FEyszjUwJ7oWCs+X/eCgy4
         MlHv6bUfWA8kSbPxYjfnv3swc7twraECvTvW7npOaFuG55Rr/YAm+Sy4MdelrrhkalrG
         R8zgidxF3EQ2HaH/cPKhEVTvaKwVtM9pe1V5QZ6cpSAv6lSJ89HdiscmXSJ50DH3GuEQ
         QaD01bofVjxgwhTN2W5fBeIJEt9gXxeRlK3mwGFTXRp3vfCdF7uF0L12Y4blg6q9ruX3
         mQwwbrywDGxDIi+Yjc7kF+uqyFlstXlMHT8aGiU0Q3T4PmmzOo0TctSV2enU3WZNclMl
         NveA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765958220; x=1766563020;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6bS2HtutJIOKEgHvKCYmMbwkYl2FVxLkCBY4kdmTe4w=;
        b=QZYWvCgSvzij6QdQdT0+G+6uZ77840LtO9g1YYy34IYIy0b1rSf91gXVUypNDfnD8r
         9su/eDFNlaUJ41d26L1oeQCaV+DkR34MAWQrkbEjAQXcZc41/2bVRAhHJTqx/CIUHgc0
         DwZPgwtwbmsInCP34w82bOvKdXAiCTJmVNBc+RUUuoHKyDbdFRgBYBkPiRBcwqjoMSJN
         +Rdhr87Af5um4+HqOSyxERIOmi5MX3AfpOS1vab/F9Lyy4UuYjkoyl3Bt4px/xrRrXyz
         OJrF9P9/coyRbzMvpSmjkgOlXYSLIP+Voc4dDFTkSb8hCLTAPZyEQwcaPMFaTREVE4yK
         kzWg==
X-Forwarded-Encrypted: i=1; AJvYcCUBZCipL6KjsfCxoyz33jAsp2mCavXMb+IaTkqL8wUKjEweBxCMwHbUqYricJFqS9d7zK/L9jKbzA0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzLwmzO/nuT2F67NuH3V6hKuL634BVIHZpisuERjl+dOPJHyFsv
	uzs3lfUA6lHznmRN6hAYnOkQN7V/mod9rB7HVQAQFOPUASNJhmkmnjekChhTdb1pRw==
X-Gm-Gg: AY/fxX7bOTHotkgkC5M3elkCDUtqhGmejwDxo0m4cjlCGQEhmPqS/V/GgG/55tZwIAw
	xY49qc+G33d5Gt6ldhF2Uc+0PC3iRCgw1wdDOgz3ZPvnYJOcZjGC1UV8BQr15L0ZKjRYFH+ReBX
	jMLNgEY+dwIc0PpuJOl+prGulAMLsJa8WmFAeFcaytzAaQFIhhQvwDb55SlcigChEmXGvTw6Sdl
	dh/mvX72bDWGNzTmZ2QXZsNrHlGrOGqV7lX6X41OmohvGrYia/EV9MTvEC5vqbGnRcL0SOvghk3
	qgztU3pzCFt8rKgEyfP3k/Zr2YsSNG46SFXKm3mXOZOMTlkUPzSmKjNruJJ2ZaOJ4rbiQFDUP+F
	APyjPcyCqx+liizTwo4YcStrBwnVhD+nfCJOuP82yTlHPaai9XCZROKWsjfXHr077UlQ7pGpIlR
	fbcJ1PWUvvyjQjA/mpIcibII/GOm3UggSADbBEAvhvLhKD4Cl8V7T6K2G0wfhjXZsb6vPQ9bXlJ
	GY=
X-Google-Smtp-Source: AGHT+IEGgMmiug20du4vdt4sFwvZJXH6H4IWs89UQUWbL9GsW5tXn3l5Q5DmZzHGEY15cr/cfEXfYw==
X-Received: by 2002:a05:600c:529b:b0:475:d9de:952e with SMTP id 5b1f17b1804b1-47a8f09428fmr185098925e9.1.1765958219702;
        Tue, 16 Dec 2025 23:56:59 -0800 (PST)
Message-ID: <d3c61635-875c-46e3-967d-64def04c7df4@suse.com>
Date: Wed, 17 Dec 2025 08:56:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/2] xen/x86: move domain_clamp_alloc_bitsize() into
 pv32 code
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251216231348.3897820-1-grygorii_strashko@epam.com>
 <20251216231348.3897820-2-grygorii_strashko@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251216231348.3897820-2-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.12.2025 00:13, Grygorii Strashko wrote:
> --- a/xen/arch/x86/include/asm/mm.h
> +++ b/xen/arch/x86/include/asm/mm.h
> @@ -619,8 +619,16 @@ void __iomem *ioremap_wc(paddr_t pa, size_t len);
>  
>  extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int pxm);
>  
> -unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bits);
> -#define domain_clamp_alloc_bitsize(d, bits) domain_clamp_alloc_bitsize(d, bits)
> +#ifdef CONFIG_PV32
> +#define domain_clamp_alloc_bitsize(d, bits) ({                                 \
> +    struct domain *_d = (d);                                                   \

This imo wants to be pointer-to-const. Question is whether then I'm upsetting you
again, Andrew?

> +    ((_d &&                                                                    \
> +      _d->arch.physaddr_bitsize)                                               \
> +         ? min_t(unsigned int, _d->arch.physaddr_bitsize, bits)                \
> +         : bits);                                                              \

This imo wants to look more like

    ((_d && _d->arch.physaddr_bitsize)                      \
     ? min_t(unsigned int, _d->arch.physaddr_bitsize, bits) \
     : (bits));                                             \

The parenthesization of the latter use of "bits" is a must.

With the adjustments (happy to carry out while committing, so long as there's
agreement):
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Albeit, as indicated before, I'm not quite happy with the use of min_t(). Maybe
another macro-local variable _bits should be introduced?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 17 07:59:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 07:59:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188605.1509738 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVmR5-0005PW-KU; Wed, 17 Dec 2025 07:59:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188605.1509738; Wed, 17 Dec 2025 07:59:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVmR5-0005PP-H1; Wed, 17 Dec 2025 07:59:03 +0000
Received: by outflank-mailman (input) for mailman id 1188605;
 Wed, 17 Dec 2025 07:59:01 +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
 <SRS0=YwQE=6X=epam.com=Oleksandr_Tyshchenko@srs-se1.protection.inumbo.net>)
 id 1vVmR3-0005PJ-Er
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 07:59:01 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f1bbc75-db1e-11f0-b15b-2bf370ae4941;
 Wed, 17 Dec 2025 08:59:00 +0100 (CET)
Received: from AM4PR03MB11152.eurprd03.prod.outlook.com
 (2603:10a6:20b:6cc::22) by PAWPR03MB8961.eurprd03.prod.outlook.com
 (2603:10a6:102:332::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Wed, 17 Dec
 2025 07:58:57 +0000
Received: from AM4PR03MB11152.eurprd03.prod.outlook.com
 ([fe80::ef31:b87:b7b4:ddbb]) by AM4PR03MB11152.eurprd03.prod.outlook.com
 ([fe80::ef31:b87:b7b4:ddbb%4]) with mapi id 15.20.9434.001; Wed, 17 Dec 2025
 07:58:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3f1bbc75-db1e-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eSegkBbDeBjRXbSx1uYSK5MxqAAgWTZSLqcup6wv13KlRaJR0avPf3oPgsSDTnCZ/7kEavr6Q7T+ZwphPJp6QFWXH/hrI49zp3LexryCcfqXfDBCPXYERScVaWnRG0pnfa0qP52aq3N2wE8/QEQmgRW3+bC/6/CmcWf+/gcn/F05h5Vpjy3pDbjju6z9/bzBYp8igzYj55DWYBXpmcCHtjxABDIysatSso3T835PaAcSnofgcJj/sBoT6cJxQXiWI5W5XrPrKaBDFTjzWT3kl+9+ohnQixWlIyoQbyEzbgK8nSMFaN0aGXcp2rwE/pbwRyOrRknUbXq6IneypEQedA==
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=nX4L2P3jIUXxSRfdYJdUZJvzjzci3G1HfuFHUZitt84=;
 b=GvocWx5d8w2LQFakhsmn6QjA7sKOIuT+ewZ+01aGCAIHcibG56BmbLUusMkL5ilxkxdcNUHEGoy2peJhHovDYNTEHOBmTZhokg80yzlyRCA5uS++N9k9z22jJjAMkGjYSmrHll7V/7xPP4NalekHFJsB+e8EdgcXCR4TixBADhh6AgZFqAhIyt8sN3BXiFNVzGpsXxlWKVu9qql/r+Tunzec6aRO2MbuZw/fPXwsgjQE6CmNAGS2S5am3KNm969NlU8ed71t7aiS6K8KxyBD7Ihxpdf2LASpUjSxT1wfeK0tNjrcfI1j1Byu2OJ1HRdwaFCAqjwxy2kMDLa17Y8lpg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nX4L2P3jIUXxSRfdYJdUZJvzjzci3G1HfuFHUZitt84=;
 b=IcZL29mLtg4flV42AA8mlRXGJzcVpNzHC5LFcMbBu3qJxskvI4jNp9oUuKSuzZBi/abZr2xZLH6luaKdbG4izizYol7zGLnRJC4XMo+RnSL5RKdlZ7ija/2PXSTY8vGZG05S+Xm9r48GrRe6NfLajax15EaO0xrxRbkLOJdMP3YOHUNZGGLyf3HM4+pBjVHP+sbveJ9PZ9JeLIzHQ2LQ7OpAngZymNTPWk4bOlfHL2c8rogsaElIgw35sG7jh1ycz8IbMoCNj+gSQgjym65QsF21u7DUCLRezQf56Ct6fMeG0YLdF6Ek1yBBMiWCpQIZOnmhrfRvcgyNWWDwySB8EQ==
From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
To: Harry Ramsey <harry.ramsey@arm.com>
CC: Julien Grall <julien@xen.org>, Luca Fancellu <Luca.Fancellu@arm.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH V2] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
Thread-Topic: [PATCH V2] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
Thread-Index:
 AQHcZIbKZWHMCLfhnk2g+3dibmJCCbUQaX2AgAAU4YCAAKzmgIAAUfkAgBLzMQCAARx8AA==
Date: Wed, 17 Dec 2025 07:58:57 +0000
Message-ID: <9c6cbf93-ea6f-4fff-8ad4-295d0bfe488c@epam.com>
References: <20251203185817.3722903-1-oleksandr_tyshchenko@epam.com>
 <6e83d3bc-c49c-49f4-9dbd-e994e53a62a7@xen.org>
 <44f6cb05-33c3-4937-b508-7616c36d0e4d@epam.com>
 <9FB64A3E-D05F-49B0-B979-25894D25BBD9@arm.com>
 <fc04150e-7f5e-480f-a31b-0eeaee1247b6@epam.com>
 <4954f4f7-d256-4cad-914e-c828c717a9b4@arm.com>
In-Reply-To: <4954f4f7-d256-4cad-914e-c828c717a9b4@arm.com>
Accept-Language: en-US, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM4PR03MB11152:EE_|PAWPR03MB8961:EE_
x-ms-office365-filtering-correlation-id: edacb3b7-63a1-4de7-7a98-08de3d42219a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|1800799024|376014|366016|7053199007|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?U0NoTzN4UHp4MWRpRDZRYTZuQjdyZzJXTEtoVkVFYWVMZjlEVHM2d2dPajFZ?=
 =?utf-8?B?enNueWtsU2duZk4xWGl6SXZ1aURMQlhrNjBrM0JZYjFPUGpjcVBlTWE5bHRK?=
 =?utf-8?B?SnA0NjlPS0xYS0s5WGVXY1hQajJGeFNkcGI2TUZIb1hWd24wL1VsZTRhdzl5?=
 =?utf-8?B?dXZyZHl0UDJWR0VwYVpob0JSdVpaYTQxQUVnODBxQVJRZ3ZMeFN4S3BPcUVm?=
 =?utf-8?B?WVBRa2I3bEtwVVBlRkhhcU5lUHpGbVlHWFdma0dEY0pnbUkyRFdNeVliVGZ0?=
 =?utf-8?B?MXdFejBKZkM0ZE9pdndOMmlZWXVYeHJzTUdFTms3dkZTU3FKN0owU3Jac2Ns?=
 =?utf-8?B?NEhNK2VNMVRxcUhzeVVWdm9mbHdPcVNoUk9vRVd2b0ZmV0owV2g0d0tFSTZK?=
 =?utf-8?B?T1gzemc3ejBwa29idjMvYjNuNmVia1JGbFNTcS94ZzFQL0hubFhCMk5CRWov?=
 =?utf-8?B?RWZ1cWUydVlHVmFoT3lQRGFtVGhIVTF6RjFDeXI4b3lHZW5IbHpwQTJBWGxi?=
 =?utf-8?B?ZUFWMkN3VXc0czBqVGVmQTVkaVRGTllPZ3RydnRJTW43WktqUGFzVlpSNzdI?=
 =?utf-8?B?UUN0V3FEcmhFWXVwaHdhN1NZZWlpMzBNVWVWbk1wcTlzSWhsbDkvbXZQUXNI?=
 =?utf-8?B?c0lNL1VCMStyODE4Z1BEVUF0K2tNVmYzb0ljWVZsdjlvZ0xucDA1WlZoZllt?=
 =?utf-8?B?ai82d0FMWG8wdzNCS0JXVW9sQkRNR2k3c09lL0FsREtyNlk5dFhUTFJzMnRl?=
 =?utf-8?B?bXA5SmE4b3lVcGhkbFZhUFJ1MStjTDVvaHVxZk1XR3Y3czBjbkJjMEdZRmow?=
 =?utf-8?B?MUE4dHF2L2puWHNpQlBlRnBCYkxnRC9zdy9YWkE5NVRJdHQvdk13d21mbytO?=
 =?utf-8?B?ajN0eTRjVU9zQ05QL2ZjT0tXek9rOGtvT250SG80QVhVVUcySFgyUGRpYlhZ?=
 =?utf-8?B?ZDVTOVZsUHN5NmRjVldSVzkvTjFEc0ZYamVxRk5TYWl1MjBrSm9pVy9SN0FK?=
 =?utf-8?B?SnphbTBzZWVWZmpoaWNvODF4T24wYWpaUzQ0RjExYTJFZVVVeVdTbDlKeG9a?=
 =?utf-8?B?VUFiYm5vVDhhTVVsTkZVdFZIQ2pEVXV2ZUtva290ai9QUXgxSlkyRG96bHRn?=
 =?utf-8?B?TXRScGk4YU5SQms0Z2k1OFI4M0xmSFBXb0hwVmcvSjBZMFAzMWhTUHh3d0ha?=
 =?utf-8?B?dTdUclY5eTNjNW1ZbjlPa2puZHJDb3ZubjlJY1ZSUUJmMjYrT3RBdmc4MnlR?=
 =?utf-8?B?YU9YWHFtcHpNY3dkdUF0UGpxQk5naVFRbHp4Q1VQY0x5ZXJVbXVTT1cvQ3FI?=
 =?utf-8?B?bmJMZGhzdS8rQ0JJSDFGcGdKYkhDUjh3bGJiZkhJM2o3TUJwZndCM1RkYTJp?=
 =?utf-8?B?TGJZckI3NXBmVzBuTWgvcDlvTEJIVmZ6OXM0ejBYa2I1blhCaDlISG5yWW92?=
 =?utf-8?B?WFFJMzRjSUJ6MFNULzcraU56b1JvK2xMYTZVazIxaCs0UTMvSUxPRFBwVGha?=
 =?utf-8?B?bnUrOTlKdytrZTUvWGh4UG9KOXNOMDhVbXgvaGc4RkZ3T1VJU09yZjVMWlg3?=
 =?utf-8?B?amFmT1Y0ZlJZRjRCaC9ybWtrM0lnWFBvOHorbVRSZU9UbDJHS1FVbWxZcERW?=
 =?utf-8?B?YmZwNUREOWlyS1MwVjE1UDNTSmwyNjRCUlI2YmM4ZFl1UW5xUkQ0RCtXQmxl?=
 =?utf-8?B?RTBEVjVwSFRMajcrU1VtM3JKU0U0S0MvbTBwSUJJS2JaMWtDdUp6ZHdyeGd3?=
 =?utf-8?B?TkNmeVNKL0dGNUM5U2Q2SFN0cDY1MTh5dlVwVVNqa3MxMFhKMXVYNmVQQ09L?=
 =?utf-8?B?ZGdMMXl4amFNZTVFeGFpWVRnYURBRmMxMTZjLzh1MGc3cVUva2xUUERqYy90?=
 =?utf-8?B?SjloakN3R2U0Z3FnUFV1a3JrUzUwTGJxZllCTkVVdHRtVUFZckQyRzRGOUk4?=
 =?utf-8?B?R3dvaXJCS2tkVzdUWkZEa2R4ano0SlJVdWJZT2tzdWdhY1hIQ3B3VExwYjU4?=
 =?utf-8?B?SDJJQ1QzcUY3dmZnUThxaFRoTDVwYVNFc1F4SUtUcFBQNmhTVG1qOHNOZW1J?=
 =?utf-8?Q?YsyDGQ?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM4PR03MB11152.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(1800799024)(376014)(366016)(7053199007)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?eXEvS0JacUJKbW1ObUtHMnNraDk1NXNjY0ZyTEs5ZHFVaHUvQWVrSExwNUlS?=
 =?utf-8?B?dExJMWxiU09EUml5OHRQWUV5VVU2VVVoWitiaFdZOGhnRkVSNVhtbW0vZDQr?=
 =?utf-8?B?VGJycFhWaDg2S0lVOS8wK1JVZ3Mvb0FGWEtyeXpyOEZIeWxzdXZIb1JqcUVE?=
 =?utf-8?B?Ui9oUkFGMERhTHYvWTUraUdEdk1VVW9TZnhldjJKQnlBdHVsNDBTcENnK0Y1?=
 =?utf-8?B?SlB2VDhMbkREL2E1REpQazY1d3ZCVUQxOUl6QUdPMTc2d3JUOHBSQkpaeUp6?=
 =?utf-8?B?SlR2aTJOcm9BaGcwM3cxOTc1NG9PcVNlRTdVbHlOQnQ5VG9RRGdZb21UZjlG?=
 =?utf-8?B?aXVkejhGMFNVd2RtTmdlT1J0RmN0WUdwZzQzUFJHTGlvMEFxYllINVRsNGxo?=
 =?utf-8?B?SVQ5RFRLOSs3RXJLYmVINlJKSEdzZy80K0x3TnI1d3pZazF6YzVtTlNyZzJp?=
 =?utf-8?B?ZGVhQ2lsMi9KbWNVT3RwQWhZZnBKZStuNENmay9qOXBxYVFxcm5jdFpib0k1?=
 =?utf-8?B?czFhZXFiS3lqWUdBZGxmTDVGdk9oQk8reHRWdXRseDVrb1dEQlRKbXBBeVRL?=
 =?utf-8?B?YTVpVU82OG94Vk9iNU9mRVhxV3AvNnIxVmlZTExacUFuRzFHaVlWUEpvTHo2?=
 =?utf-8?B?SmFZVG9xc3ZPbGZWNTU1NFYrcUZXNXdWemxLL3ZjZGgxYW9pbkQ4S2lvdlZp?=
 =?utf-8?B?bzFyeS9KY0g1YjI1Qmx4blVQK0Z6bGYxcWkrdE5Md0lIQkhnWGc0QWtNdWx6?=
 =?utf-8?B?QnpGdDhnVzBIUFFJTk5UcDJQZEk4cnJ5TmtqVXA2RGdEQTdzZHBMTWFMTFh2?=
 =?utf-8?B?WXhjYTZhRlVGTDlnYUtYWmsxeVpZVkVtaWtVT1B1dHZPOXlMbmJSMkNyQU1J?=
 =?utf-8?B?S0ZTR0o1NG9Hc1RTT0NBQ3ppUzdSNXJsVWhVQzNkVGZJWTVkY053KzFWR2xi?=
 =?utf-8?B?UWROdlQyTnZhZ21tc1pucFc1bjIveGhTL1QzY0ZPNG9GY1djak84QXFTZk96?=
 =?utf-8?B?MWNiRjd0aUVobUtxR1pUREVOeDY2K1VzQUkvTGR3UkxDcGg0dWkxdHA0Tmps?=
 =?utf-8?B?YXNzeG9PcHo1YnM2UmsyZVhrNXdmallYaVV5UktWL0ZVS0JXU3k0NThJVUNv?=
 =?utf-8?B?cUp5YTBSVEY5SlQ4SXArclk5WTlkc1VvWVJpMlZtdTBWVlZkbVhMa1Q2eDRu?=
 =?utf-8?B?ekhwdklqS0JJamJqUHFjUGhsK29mYVBZNFJKK0trcjczeGtMaFZkTVEyUVRZ?=
 =?utf-8?B?ZUVlUVNpQ1FJcjNJL3ZiblI5aEM1cm0ya0lGV3FoTUhsR2xKVEVzMDcyc1JS?=
 =?utf-8?B?Q2QvYjQxTGQzMGdSM3o1QnhiOTdzVktaRjk0dEJteHBVTmFzdGlKR3AzU0Y4?=
 =?utf-8?B?WEZBdXVtbmgyVjJ0Vk9BanJtRUt0TTM2Uk1oTFJmcm4yOTVPbnZkSzI1M3Zl?=
 =?utf-8?B?YWpRdW1hQ1pERWtCcXp3ckpQSXYrdm1xYjl3TjVMVjRrRTgvMFlJNU81WEV1?=
 =?utf-8?B?aWxBVDJkK3hDOGhFdXNVTmJndTBwV09hRnZWRVVlbXl0dE9wQStKdFN6M1NN?=
 =?utf-8?B?cVlSQTlyZUFGamE2S2tEUnczczk2VFhPNzJGU3BaTVc1YlhrQ0FWUkorczBD?=
 =?utf-8?B?cXZlUGIwSTNndmN2d1F5N2VHcnJiZXhYV2N1ZFdERjExZEVwaHZrSmNjeXVE?=
 =?utf-8?B?MlNRa2hMWDNJZ2R0bDBvM1orSTVTa3d5MW0rVGQ1bkJqcmppSDFhZjR2MkJ2?=
 =?utf-8?B?NncwOHJLbjR3VW5aRzhPWmIwVGl5UTB3YjIwdjBhZnFXUXdIVUcvWUcrZ21V?=
 =?utf-8?B?eHgvRS9LanJEY1M2QlhuRXkyNWZ3WGxuWnlTa0I5MXcvTEZaSlVoYURITG1h?=
 =?utf-8?B?YXNUUStsR0NEeCtqL0JUOVZONkpTeGtDVDN4eUppa0lGUyt6c2ttMVpTdFdR?=
 =?utf-8?B?RVdyYkVzejFwYldjQkdjS1dCb29nUXNPQnMzTkM1V2dxWDBoQmhwK3A4VWo2?=
 =?utf-8?B?aGlvajBtQ1pHYWdFTHBKVU9UaVVwbGpYSzhoRG5sWE1KcHUzOUdXekEvdnJV?=
 =?utf-8?B?UzhoRm5GN3BrWldtMjVXYjRLVlZibTFaNWx5Q1V6aWFnRjVUd0U0dFlORWhO?=
 =?utf-8?B?WnpmenhkK3B6c2d0Q3UxdGloMnlMNGR4TjdRV253UkMxNVhJMDk3ZnlhdHVP?=
 =?utf-8?Q?krE0ozYg3ape/aaOTHZyxsg=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <8ED939823DEEAE4F970A643668BE1A44@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM4PR03MB11152.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: edacb3b7-63a1-4de7-7a98-08de3d42219a
X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Dec 2025 07:58:57.4025
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: JG9s8PUGX1hNhS+OKGGcPVNo4oyAQhrt6ZX1+DejiUq9HwsfK7z0pXzsBrnt19+j1lRRgUUiu18e2RCG5D4hNm7HnEOsnVgfJqo4Xcx0Oss=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB8961

DQoNCk9uIDE2LjEyLjI1IDE3OjAwLCBIYXJyeSBSYW1zZXkgd3JvdGU6DQoNCkhlbGxvIEhhcnJ5
DQoNCj4gW1lvdSBkb24ndCBvZnRlbiBnZXQgZW1haWwgZnJvbSBoYXJyeS5yYW1zZXlAYXJtLmNv
bS4gTGVhcm4gd2h5IHRoaXMgaXMgDQo+IGltcG9ydGFudCBhdCBodHRwczovL2FrYS5tcy9MZWFy
bkFib3V0U2VuZGVySWRlbnRpZmljYXRpb24gXQ0KPiANCj4gT24gMDQvMTIvMjAyNSAxMzozNywg
T2xla3NhbmRyIFR5c2hjaGVua28gd3JvdGU6DQo+PiBUaGFuayB5b3UgdmVyeSBtdWNoIGZvciBv
ZmZlcmluZyB0byB0ZXN0IHRoaXMgb24gQXJtMzIgcGxhdGZvcm1zLg0KPj4NCj4+IFRoZSBwcmlt
YXJ5IGdvYWwgb2YgdGhlIHRlc3QgaXMgdG8gY29uZmlybSB0aGF0IHRoZSBuZXcsIGNhbGN1bGF0
ZWQgRFRCDQo+PiBidWZmZXIgc2l6ZSBvZiAzMDcyIGJ5dGVzIGlzIHN1ZmZpY2llbnQgZm9yIGEg
d29yc3QtY2FzZSBBcm0zMiBkb20wbGVzcw0KPj4gZ3Vlc3QuIFRoZSBleHBlY3RlZCByZXN1bHQg
aXMgdGhhdCBYZW4gYm9vdHMgc3VjY2Vzc2Z1bGx5LCBhbmQgdGhlDQo+PiByZWd1bGFyIGRvbTBs
ZXNzIGd1ZXN0IGlzIGNyZWF0ZWQgd2l0aG91dCBhbnkgcGFuaWNzLg0KPj4NCj4+IFRoZSBpZGVh
bCB0ZXN0IGNvbmZpZ3VyYXRpb24gd291bGQgYmUgYSBkb20wbGVzcyBndWVzdCB3aXRoIHRoZQ0K
Pj4gZm9sbG93aW5nIGNvbmZpZ3VyYXRpb246DQo+PiAtIFRoZSB2Q1BVIGNvdW50IHNldCB0byB0
aGUgbWF4aW11bSBmb3IgQXJtMzIsIHdoaWNoIGlzIDgsIHRoZSB2Q1BVDQo+PiBub2RlcyBzaG91
bGQgaWRlYWxseSBjb250YWluICJjbG9jay1mcmVxdWVuY3kiIHByb3BlcnR5Lg0KPj4gLSBBbnkg
b3RoZXIgZmVhdHVyZXMgdGhhdCBhZGQgbm9kZXMgdG8gdGhlIGd1ZXN0IGRldmljZSB0cmVlIGVu
YWJsZWQNCj4+IChlLmcuLCBoeXBlcnZpc29yLCByZXNlcnZlZC1tZW1vcnksIHBsMDExIG5vZGVz
IGFyZSBwcmVzZW50LCBldGMpLCB0bw0KPj4gY3JlYXRlIHRoZSBsYXJnZXN0IHBvc3NpYmxlICJi
YXNlIiBGRFQgc2l6ZS4NCj4+DQo+PiBUaGUgdGVzdCB3b3VsZCBpbnZvbHZlIGFwcGx5aW5nIHRo
ZSBjdXJyZW50IHBhdGNoLCBhbmQgdGhlIGRpZmYgYmVsb3c6DQo+Pg0KPj4gZGlmZiAtLWdpdCBh
L3hlbi9jb21tb24vZGV2aWNlLXRyZWUvZG9tMGxlc3MtYnVpbGQuYw0KPj4gYi94ZW4vY29tbW9u
L2RldmljZS10cmVlL2RvbTBsZXNzLWJ1aWxkLmMNCj4+IGluZGV4IDM4YTU4MzA4MTMuLmU5NWY0
MmQxZTEgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vY29tbW9uL2RldmljZS10cmVlL2RvbTBsZXNzLWJ1
aWxkLmMNCj4+ICsrKyBiL3hlbi9jb21tb24vZGV2aWNlLXRyZWUvZG9tMGxlc3MtYnVpbGQuYw0K
Pj4gQEAgLTU3Nyw2ICs1NzcsOSBAQCBzdGF0aWMgaW50IF9faW5pdCBwcmVwYXJlX2R0Yl9kb21V
KHN0cnVjdCBkb21haW4gKmQsDQo+PiBzdHJ1Y3Qga2VybmVsX2luZm8gKmtpbmZvKQ0KPj4gwqDC
oMKgwqDCoMKgIGlmICggcmV0IDwgMCApDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGVy
cjsNCj4+DQo+PiArwqDCoMKgIHByaW50aygiRmluYWwgY29tcGFjdGVkIEZEVCBzaXplIGlzOiAl
ZCBieXRlc1xuIiwNCj4+IGZkdF90b3RhbHNpemUoa2luZm8tPmZkdCkpOw0KPj4gK8KgwqDCoCBw
cmludGsoIlByZWRlZmluZWQgRkRUIHNpemUgaXM6ICVkIGJ5dGVzXG4iLCBET01VX0RUQl9TSVpF
KTsNCj4+ICsNCj4+IMKgwqDCoMKgwqDCoCByZXR1cm4gMDsNCj4+DQo+PiDCoMKgwqDCoCBlcnI6
DQo+Pg0KPj4NCj4+IFBsZWFzZSBsZXQgbWUga25vdyB3aGF0IHlvdSBnZXQuIFRoYW5rcyBhZ2Fp
bi4NCj4gDQo+IEkgaGF2ZSB0ZXN0ZWQgdGhpcyBhbmQgY2FuIGNvbmZpcm0gaXQgYm9vdHMgaW50
byBMaW51eCB3aXRoIGFuIDgtY29yZQ0KPiBzZXR1cC4gSGVyZSBhcmUgdGhlIHZhbHVlcyBJIGdv
dDoNCj4gKFhFTikgRmluYWwgY29tcGFjdGVkIEZEVCBzaXplIGlzOiAxMTI3IGJ5dGVzDQo+IChY
RU4pIFByZWRlZmluZWQgRkRUIHNpemUgaXM6IDMwNzIgYnl0ZXMNCj4gDQo+IFRlc3RlZC1ieTog
SGFycnkgUmFtc2V5IDxoYXJyeS5yYW1zZXlAYXJtLmNvbT4NCg0KVGhhbmsgeW91IHZlcnkgbXVj
aCBmb3IgdGVzdGluZyBvbiB0aGUgQXJtMzIgcGxhdGZvcm0gYW5kIGNvbmZpcm1pbmcgDQp0aGF0
IHRoZSBwcm9wb3NlZCBzaXplIGlzIHN1ZmZpY2llbnQhDQoNCg0KPiANCj4gVGhhbmtzLA0KPiBI
YXJyeSBSYW1zZXkNCg==


From xen-devel-bounces@lists.xenproject.org Wed Dec 17 08:01:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 08:01:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188628.1509748 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVmT3-0007Vv-Es; Wed, 17 Dec 2025 08:01:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188628.1509748; Wed, 17 Dec 2025 08:01:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVmT3-0007Vo-Bw; Wed, 17 Dec 2025 08:01:05 +0000
Received: by outflank-mailman (input) for mailman id 1188628;
 Wed, 17 Dec 2025 08:01:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=10za=6X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vVmT2-0007Vi-7Y
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 08:01:04 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 879e35c7-db1e-11f0-9cce-f158ae23cfc8;
 Wed, 17 Dec 2025 09:01:02 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso2707075e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 17 Dec 2025 00:01:02 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47bdc1defb4sm25220295e9.9.2025.12.17.00.01.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 17 Dec 2025 00:01:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 879e35c7-db1e-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765958461; x=1766563261; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/Xq3CoCLa2AYVIShlrgbluzYpZDNJA+VriSbDz1mc6c=;
        b=hEghL5AjhjoK9CIB6DZsgEMuUWzz0OP/6Ve4vmFW9Sh8t0hOeDOHN6BvDpRcwOBHfb
         QAIG0b5uOYqApYxKpsxG3WKvbXRZ26LHy4WpAtBXsr23gsUNnNDxCYfMV2DVOXgT/Rx8
         08Xfw7zkV1U/MQl7GcE0+U10f/SqwkYoXzcHyjhfyIZfDoCXEMq662nuMQQ5ri6vWLLe
         LBZ6fAdOaquZiDSHNVhVoZIP0M0YqHz3L4OuZ5Vp93RXl77/6HQjpxGo/4/qxAPWqqek
         iGP0f6im0iMLVoiFQfe+PCzAONTiT4mZzDyUhJ5cMxMEehUZCHitBQHoXK4n7OIFjLSi
         z03A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765958461; x=1766563261;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/Xq3CoCLa2AYVIShlrgbluzYpZDNJA+VriSbDz1mc6c=;
        b=pUX+aclSUjmMuvHCAj6d9z7KbFSnVMv3I+4Uks2I927jVT4W2ah6ahuNUYTzcYxikF
         Si9hWFshnbjjPiEz5x0CJiDXlJSW6FCN34aLNNZAo8/oV+ojFMeRRcdriOQCmB52Xi1J
         fNofu9Sqn/iy/cPWsoLAxjnb/HObC8RGPyYhEUopm0blaHK5MhABIYcCtS+TOgr3JPtX
         xmVjy+z8Op1eO2Q7I3ylmvdMgw8467/48spvNx4n7R3Mx8O+wuYOnphLrFEIm/MRN4xs
         xFgSdPw0Tqmz1eBp5H+t0oiNsuez6VnyyzjiUXZHlzfeikRb0p1KijzVBQhDz2LjXfZK
         fWHQ==
X-Forwarded-Encrypted: i=1; AJvYcCVVa4nmoPQ1dyA1gLo1uVWZPUuCYcv7LJ6ejyGflMWIZgtKvcv+clZf0Nri5/gh8Ro82Ceue6nG++w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwqrBAv82/FwhVEEk/rXGvlTiYf7Nn1qTUU6+GPBTpdmN2mzaHE
	wTum6zzwgbnauwKZHS2TUKBWsDVbd5qgR2m3Wed/WStUj8UlLh7dRCqujK+79iLgXQ==
X-Gm-Gg: AY/fxX7tJnqpFUMCAjqZahfPBPZyD8vcDNbc7PS1qL/KDXtCF9HOGsS9UhHdDgun3/O
	nJRCYQ/AYfCimwDOsL5sVRcmH58T4qgpUFohWmizmDtTp1CWuyfaVX0rRTQAJj9aA4HUXheD6Zw
	Lqj60CaTGwNcQE4/PdVzbrnv18E6nhjCKo2jyXgXj0PIojIg9aKJHiMN/XxPK1RNJfEuy66bJvP
	vqu0qsLxVlMfETWxo10hzICGwCoUzGzoymk6OnRr2367tbmH9BKRoi7T7dUxdxB7zEPuF/26276
	Se9snS3X/YrdTb7MBKSVdq9hgDx1VNInuMBA8ZaUs2c+g6hnXwnV+q5PWojmW3lddIDCYP0scCk
	1fF5JOBqc8oT3kTLAVh+Wx+eetBy1aSPIUxqch06eUvxHPOc9TMsDVbKNbPiIvdPQ/WbMVEeI4f
	mu3x1k7KoqeAEv0INWnUPmlIQnk/pvzPgdrYYWi/csQnHgiQf2nWBNbPBi4fS/zxFXT0iVz2aaB
	UU=
X-Google-Smtp-Source: AGHT+IGfpC/y0DBNYkgMwofmbHa+namxoEB0jiJdqLSspZO1hi9++6RSk18qb6985e38P/OeQgGpFQ==
X-Received: by 2002:a05:600c:4f48:b0:477:9fa0:7495 with SMTP id 5b1f17b1804b1-47a8f2c3de3mr193581425e9.14.1765958461291;
        Wed, 17 Dec 2025 00:01:01 -0800 (PST)
Message-ID: <e2fc5729-1d65-4607-bacb-cc85715f93d1@suse.com>
Date: Wed, 17 Dec 2025 09:00:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/4] xen/domain: Disallow XENMEM_claim_pages on dying
 domains
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251216163230.2768186-1-andrew.cooper3@citrix.com>
 <20251216163230.2768186-2-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251216163230.2768186-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.12.2025 17:32, Andrew Cooper wrote:
> XENMEM_claim_pages can be issued on a domain in the later stages of
> domain_kill().  In that case, the claimed memory is leaked, as there's no way
> to subsequently release the claim.
> 
> Claims are intended for use during domain construction; to reserve sufficient
> RAM to construct the domain fully.  There's no legitimate reason to be calling
> it on a dying domain.
> 
> Fixes: 65c9792df600 ("mmu: Introduce XENMEM_claim_pages (subop of memory ops)")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Wed Dec 17 08:13:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 08:13:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188639.1509758 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVmeb-0000uZ-Do; Wed, 17 Dec 2025 08:13:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188639.1509758; Wed, 17 Dec 2025 08:13:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVmeb-0000uS-9z; Wed, 17 Dec 2025 08:13:01 +0000
Received: by outflank-mailman (input) for mailman id 1188639;
 Wed, 17 Dec 2025 08:12:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YwQE=6X=epam.com=Oleksandr_Tyshchenko@srs-se1.protection.inumbo.net>)
 id 1vVmeZ-0000uM-PR
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 08:12:59 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 311d9515-db20-11f0-9cce-f158ae23cfc8;
 Wed, 17 Dec 2025 09:12:56 +0100 (CET)
Received: from AM4PR03MB11152.eurprd03.prod.outlook.com
 (2603:10a6:20b:6cc::22) by DU0PR03MB8503.eurprd03.prod.outlook.com
 (2603:10a6:10:3cb::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Wed, 17 Dec
 2025 08:12:48 +0000
Received: from AM4PR03MB11152.eurprd03.prod.outlook.com
 ([fe80::ef31:b87:b7b4:ddbb]) by AM4PR03MB11152.eurprd03.prod.outlook.com
 ([fe80::ef31:b87:b7b4:ddbb%4]) with mapi id 15.20.9434.001; Wed, 17 Dec 2025
 08:12:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 311d9515-db20-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pPcbSsc4/zja9pDiJ2RsgrhG+/VMPnCohkRUEcPgUtY3tswbhRfIN3cEDTqRnxPbdrfvqEwXB5WoUHSammqZcOSsSUNgY4F84qqXn1ZJuH1xvbO4zOS53Kxa2z65kfOQ1GM1mkK7vGqx2OnmIU4sJS71slynpK5U5itO9NKwx8PT/wrTlcZcpp88UmiyqxI9lsRg85qKN5A41pVJ112n/baAjAudwEZ0peYI/0VoKqPeiBydzRRMTwaYGUQV8o0GtroWL7xkdufDoHc5ZbQ04pkPUAyGfJlMM43r6C0eneREx++VskLMdm1d05rPz/5+fgMpcUau5Jg1AYPpfFB6EQ==
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=BMVinWg5r3AnR6+dx2+ZekcLG5meFNv7AMM1z0Ws95Q=;
 b=Rs4PLsq9SOw+TH92CxUqh6WggKGBvPKLEQTAYZxhYtP8omAdu55cUIZ0kMGXGyHh3HkzDP7fkGEGsRkBDDenF+nAhdWvOMg++yqjUISpcR4smaWIeuXdbEmXQ3XZYKjdtKMRfm/C9+prDQXbayzT3PlOMG/KN6BLZ/c8+SIuYQQ1cAT6H00WUvzSc1UIqk1A5XgYY2W0PuxNyxrArJ7pMKnitZHYYcY6w6BghBp/jpKt8pb4mfNTHQ7nNkIWwBVU4o0S+OSbjjn2Pl/jbmPrtzjzp9oXcGUP/lNpXRDe/vgUI0TAFtdk8Un0v7JKxqOc+7yp52+vpZ7/BF3CTDg7cg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BMVinWg5r3AnR6+dx2+ZekcLG5meFNv7AMM1z0Ws95Q=;
 b=Kc4b0Q3yE8quhYV0EM00kL+IdZldRR+0hZEYQZsSsD+Sv2JGvyo895cCQm9LcWcKxCiNLetnLhTmDxeTjd3bgDK5Lh3QjKEGpELkfuJux5+7EeKq8mm7qGycSBrvjLKtPaicGY4JAjY2BU1VGwy2I09nnjiU7wZA4GEMx0HpPBz87gJy3lW1pBO4B/ZoUSxfKYZzXXH/NR4ljDBYm4ATzvnVeI6H/mLf3R0mwLuIUGpFOtFUARkhWxeSDF8+Bs0LUvT5Eb3xxC0thyFmo83KDJCKqOkkXpu5u315yNTBmGjIgFLmNbFaQCSEZLOiv/CHpyfNFXyGqNWAug1as+dQAQ==
From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Grygorii Strashko <grygorii_strashko@epam.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>, Harry Ramsey
	<harry.ramsey@arm.com>
Subject: [PATCH V3] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
Thread-Topic: [PATCH V3] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
Thread-Index: AQHcbyzuH15G1NdORkmDpo6kbgtlKw==
Date: Wed, 17 Dec 2025 08:12:48 +0000
Message-ID: <20251217081248.2807849-1-oleksandr_tyshchenko@epam.com>
Accept-Language: en-US, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM4PR03MB11152:EE_|DU0PR03MB8503:EE_
x-ms-office365-filtering-correlation-id: eb679db8-65fb-43c4-47ca-08de3d441139
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|42112799006|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?DksKO9QCjvFvtEZtIm2MVxwGi4bmwIbBsKOpDIYiKuUQMUXUlkAyl51Cj0?=
 =?iso-8859-1?Q?DVUapuIVlZNqxJKEmeIRkwFDLh5fjNQTeaV4bJZry3J2Q/+tkQ2s7/F49Y?=
 =?iso-8859-1?Q?1tYAL48aM2u350flzdbKlujwXbaIHkEeyfl+N3NVDuNK93VMg0kKM8hm8G?=
 =?iso-8859-1?Q?by0dwKkU1JSvjcq+nqK/Dkq6xriRrO4y3+FB08uOwpvq19QUfCpbkIsOem?=
 =?iso-8859-1?Q?hq3Zn5rAs5pGUKJbJ/WBnhMH0WiCtzWm1VX/1xfVujc1pKLyav8ZrUmWMK?=
 =?iso-8859-1?Q?itxWtHYFjPwUYHHRuTt9UMlSVXrDg6e0W6HPoYd7SBryFY3eVB1zL1w9g7?=
 =?iso-8859-1?Q?6t47B1wBtIx07ZBJ/NFcBcfT8WdkIak1cZccgKKxhchjktpw2b1K+90rVj?=
 =?iso-8859-1?Q?FCOCP6FXVO9GRmVvWyTmMcTFzILAWLIi1Oi7JOo3hBXhZSjrvMa6W+rbGn?=
 =?iso-8859-1?Q?pGiG/AzT5yT6e+7GgKWoaj9MrFFID3f+zk/Y90YPyAxZNbRP3ZILpGwa5n?=
 =?iso-8859-1?Q?gI0A/CfK4B+DR8InGxp0urgkEEOlvJAcV/5pVYR5IntUMHWkoe5IMITLMw?=
 =?iso-8859-1?Q?mJEwj3wkLragf7o6wa4oIrBkcBBc5CjtWqDWmYZo0M6ddLR8ogqKcZD1mf?=
 =?iso-8859-1?Q?zJUPSVb+fSoyLqNjFLxZ4/UYGRvCdi1Q4knEoYfRIxOCqlIcb4u1eZgorm?=
 =?iso-8859-1?Q?Agddda56y4uO2c/Zc67Qm2JcsE5AdldCA/AfF/R5JGDzucoS20TwBN8Y3C?=
 =?iso-8859-1?Q?dTDkXAXryGccbdSxUe0VEt1FVY7L1oLMwm0ayzGXQ2WNYRuTb7UeOuoqki?=
 =?iso-8859-1?Q?MYqg7RTlmeQtGT3C6cggm9cus0YCwBnHPgd34bSfH526qIpB/DUy0fI7vz?=
 =?iso-8859-1?Q?+210guEVpyxbLiNZYGS1LipA/PVDd9p9OF3MIggP3a/JAarukdykDjompN?=
 =?iso-8859-1?Q?jzsDM0xQVsd0sRS7LmekBIz8HGG+BsTVgLTgb+U6SolqG0S6ShjDoo9We3?=
 =?iso-8859-1?Q?OiS3RjybnQeznoW4PtGiwc7Cwwy7i145K/Z5O5s75kSKSNRvO9JfH5pWvb?=
 =?iso-8859-1?Q?YLDHKRLpV+wJoPn0HJLQmqsj+jErNaWNpOVBYxjCeLLJ0hZkUJT9A/9gb5?=
 =?iso-8859-1?Q?IZRBAEuZ5V6oH0P/AwRlx3GLNNBlDjjQuZFINrTDeSJg7KvVSCw3vs+xvc?=
 =?iso-8859-1?Q?1h1lkhM78lObCc6n+cVI+4rtMM6UGrK7KKRr/6WPfVbi5pTd/v0MKKjok7?=
 =?iso-8859-1?Q?hHXrw32HpMjvwWn3oJvKXMbdKupuEoW7yONV/aIi+IEWkox/Dbu8dCdJJ7?=
 =?iso-8859-1?Q?24DdPyk4z8Ov0HUGqDk9UMdoalWLVTnivgLWrDFnaIfo1m/3/ZZYpxX/Sk?=
 =?iso-8859-1?Q?nvn+EJwgxoyP9TZQDlUz+xnW9GvBprJzhqjcb/l6Pxhy2ua3ickA1kUTll?=
 =?iso-8859-1?Q?DHJjPLTcQtY5E44e9US02a7vHhG5DFBp7/v4bERTIwPariSGowgi1P1cPZ?=
 =?iso-8859-1?Q?QZZu6xRNPiXv5Ywf/OUtUQP0OGOk//7KRHWMqFqewaBA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM4PR03MB11152.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(42112799006)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?0pYRjhkH1YbjQICDT7MQfK8dLuIU9T5unyox40Q7yDQgN2UzoNq5HLpDao?=
 =?iso-8859-1?Q?ZcjLBZrwcoCypZly82PjboE3zHrFrKjvtQzJ8UyDr18RrC6NHTDRAxubkB?=
 =?iso-8859-1?Q?ynrkg6z6GLZqDJ2u4IjgXJUPk8LtuO+y4ZR8Oya0v0fA5X3SaLhIkweE6Y?=
 =?iso-8859-1?Q?S9tyZxCz4hJrrp0xltpjCyMMASWdjQM1AsyTkf3umYU/cmGQRVSbmoH2eI?=
 =?iso-8859-1?Q?Clt4npXOyZ3qVc9Tujths12RJh7Nw7LZzn4p21jQvxT1w67xgHc0tHoBMY?=
 =?iso-8859-1?Q?3jc/dszTy+EwV8jAcA5r9HmddBpEXfslYYGZvCid2tLMyS1oksOQbVbIbn?=
 =?iso-8859-1?Q?x7t78i50gEXFL+v6ok5vGSJJSUBuca6v7I3w0Xmshj8MMTh7d1rFHF1vC6?=
 =?iso-8859-1?Q?bn/WaUt6rm93ikqed/45VYP69GBz/5uIYR2UonPjMXoWwRglPka4wucvlq?=
 =?iso-8859-1?Q?NXonyn1TdKOinsOyeJQBp8QR3IFpBPaaqoSf4gR2OXdpdZztQDcKlOHGK5?=
 =?iso-8859-1?Q?L1DPnfbIID8HUG8kCi7uVFbMLEh6NdaFkPR0J6EN4Sw9rkLcer5fr9l4oD?=
 =?iso-8859-1?Q?+qSadl8JcjY5IHWdx/o55vGWmNjCWUVufZX9wsC71fGwwyBjgpIxWS1K+j?=
 =?iso-8859-1?Q?oCxYOkKEMstAl7R/NO56lWfPV8522/7g/vE6rnkA2ASjFTUC0LSoIuoX6H?=
 =?iso-8859-1?Q?F/9io+kZld8gclP0P5Ve2/T/u89z+t90w8Qg+b9pfigAQhi7PRXECa3qKx?=
 =?iso-8859-1?Q?8otgK7OBjEGmgp9FInJUB1woOfAV03SITxT6YgpUmBqb03sAk/vis2kdJl?=
 =?iso-8859-1?Q?rR4jypJzJkLF4ju0RGOAg3T5DzFQqIN4vUB2Vjegk7KYpnFJYrnfbkpIwB?=
 =?iso-8859-1?Q?T5DctXeOQKCnEiZ9VqgpcwiuwauJrsB8I8sIyFbOp+YEZmoiuMGvxe7mak?=
 =?iso-8859-1?Q?TqXXPCjMfCnjxlBVxNIUegYnscMFPT/tbPVD2/2K0Ce01ARaKHSHMpK6Kn?=
 =?iso-8859-1?Q?nHcLFmfPj3xuqrinP2mGjdT2GIzMyjXOgydI36aYJXjDjvYeoIAnecfptV?=
 =?iso-8859-1?Q?byuAiLOqmyL4L+OMpxrtY5Mk2c7P9IOJWA131xehNOuOEpkSGhaV6mGxdu?=
 =?iso-8859-1?Q?uvjBHmAzxcY40MBtkUsqLHsmZu5FRCG2SqEH2eyECK5xTxrj4FerN8Yolt?=
 =?iso-8859-1?Q?+atKPRHmhUHFzm7O7CXTuNEAn9buLKBCVTLfOwBTqhTrzsGDlqR68q0oBe?=
 =?iso-8859-1?Q?08PC+k9KjeWymY1guL40Q1TtV+mjwq/iP8LmUzjwfyHC+OlBwUNYGxiFVq?=
 =?iso-8859-1?Q?yLXO/LO3ZnS3Ac3OO32jyP2wsL+t7hiwDRCEjBS/gQ/JbjyNL0bjEk7/Bb?=
 =?iso-8859-1?Q?FkyN5FIOLtykyPnbYicYHtUM8N2Bun4NsbzX2sfwnvg/GNCqv6iWC7Q6Dg?=
 =?iso-8859-1?Q?X0OJ0tX3Ek395Jz6ZQ+EUREx0pwRWYhiRKf0HpmIFDQshQQ4ZzdMKDLEYL?=
 =?iso-8859-1?Q?JBVyM7HS+99gIgZfFU32fcKMFfoHgbEgODJBGs5s3UPNYu2FaIe2pI0Nhj?=
 =?iso-8859-1?Q?ejpS0q9LQTskfeQMhaBlAFWnqDOCfwq67U+l7U2sLKGm87x73x+P/R4xBd?=
 =?iso-8859-1?Q?DhWZggpHK3DLP+21xQbnSvPBMVGq9brEq67D6GAa+6JaEc/VvmR6G96rPz?=
 =?iso-8859-1?Q?qATkpOGoL7GqScLXqEs=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM4PR03MB11152.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: eb679db8-65fb-43c4-47ca-08de3d441139
X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Dec 2025 08:12:48.9169
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Pu5u8cXxGBUT/y5Kt3JwhDD3XnhUbu4/oEmfbsE4pkySNdH1fqyP91iyunXpBj8I6ERVupKDty4TjnyelhRsCyM0ttomI1Kk3bHfFKh2Xeo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8503

Creating a dom0less guest with a high vCPU count (e.g., >32) fails
because the fixed 4KiB device tree buffer (DOMU_DTB_SIZE) overflows
during creation.

The FDT nodes for each vCPU are the primary consumer of space,
and the previous fixed-size buffer was insufficient.

This patch replaces the fixed size with a formula that calculates
the required buffer size based on a fixed baseline plus a scalable
portion for each potential vCPU up to the MAX_VIRT_CPUS limit.

Please note, the change to DOMU_DTB_SIZE formula would result in
a smaller buffer size of 3072 bytes compared to the original 4096 bytes
on Arm32 platforms where MAX_VIRT_CPUS is 8.

***

The following tests were done to confirm that the proposed formula
fits:

1. Arm64 testing with varying vCPU counts (MAX_VIRT_CPUS=3D128),
   final compacted FDT size:

   - 1 vCPU: 1586 bytes (with 18432 byte buffer)
   - 2 vCPUs: 1698 bytes
   - 32 vCPUs: 5058 bytes
   - 128 vCPUs: 15810 bytes

2. Arm64 testing with simulated Arm32 conditions (MAX_VIRT_CPUS=3D8),
   final compacted FDT size:

   - 1 vCPU: 1586 bytes (with 3072 byte buffer)
   - 8 vCPUs: 2370 bytes

3. Arm32 testing (MAX_VIRT_CPUS=3D8),
   final compacted FDT size:

   - 8 vCPUs: 1127 bytes (with 3072 byte buffer)

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Reviewed-by: Grygorii Strashko <grygorii_strashko@epam.com>
Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Tested-by: Harry Ramsey <harry.ramsey@arm.com>
---
V1: https://patchew.org/Xen/20251202193246.3357821-1-oleksandr._5Ftyshchenk=
o@epam.com/
V2: https://patchew.org/Xen/20251203185817.3722903-1-oleksandr._5Ftyshchenk=
o@epam.com/

  V2:
   - update commit subj/desc
   - use a formula that accounts MAX_VIRT_CPUS
   - add BUILD_BUG_ON

  V3:
   - add R-b and T-b
   - add more info to commmit desc
---
---
 xen/common/device-tree/dom0less-build.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tr=
ee/dom0less-build.c
index 2600350a3c..0c271d4ca3 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -439,15 +439,25 @@ static int __init domain_handle_dtb_boot_module(struc=
t domain *d,
=20
 /*
  * The max size for DT is 2MB. However, the generated DT is small (not inc=
luding
- * domU passthrough DT nodes whose size we account separately), 4KB are en=
ough
- * for now, but we might have to increase it in the future.
+ * domU passthrough DT nodes whose size we account separately). The size i=
s
+ * calculated from a fixed baseline plus a scalable portion for each poten=
tial
+ * vCPU node up to the system limit (MAX_VIRT_CPUS), as the vCPU nodes are
+ * the primary consumer of space.
+ *
+ * The baseline of 2KiB is a safe buffer for all non-vCPU FDT content.
+ * Empirical testing with the maximum number of other device tree nodes sh=
ows
+ * a final compacted base size of ~1.5KiB. The 128 bytes per vCPU is deriv=
ed
+ * from a worst-case analysis of the FDT construction-time size for a sing=
le
+ * vCPU node.
  */
-#define DOMU_DTB_SIZE 4096
+#define DOMU_DTB_SIZE (2048 + (MAX_VIRT_CPUS * 128))
 static int __init prepare_dtb_domU(struct domain *d, struct kernel_info *k=
info)
 {
     int addrcells, sizecells;
     int ret, fdt_size =3D DOMU_DTB_SIZE;
=20
+    BUILD_BUG_ON(DOMU_DTB_SIZE > SZ_2M);
+
     kinfo->phandle_intc =3D GUEST_PHANDLE_GIC;
=20
 #ifdef CONFIG_GRANT_TABLE
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Dec 17 09:26:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 09:26:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188657.1509767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVnnf-0001BS-Ic; Wed, 17 Dec 2025 09:26:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188657.1509767; Wed, 17 Dec 2025 09:26:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVnnf-0001BL-G7; Wed, 17 Dec 2025 09:26:27 +0000
Received: by outflank-mailman (input) for mailman id 1188657;
 Wed, 17 Dec 2025 09:26:25 +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
 <SRS0=trBu=6X=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vVnnd-0001BF-Bd
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 09:26:25 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 7395edc4-db2a-11f0-b15b-2bf370ae4941;
 Wed, 17 Dec 2025 10:26:23 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B975914BF;
 Wed, 17 Dec 2025 01:26:14 -0800 (PST)
Received: from [10.57.47.3] (unknown [10.57.47.3])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id EA6A93F762;
 Wed, 17 Dec 2025 01:26:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7395edc4-db2a-11f0-b15b-2bf370ae4941
Message-ID: <f9550d22-8810-4145-aaa8-48961f6ea35e@arm.com>
Date: Wed, 17 Dec 2025 10:26:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 14/14] mm: Add basic tests for lazy_mmu
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
 Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Anshuman Khandual <anshuman.khandual@arm.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251215150323.2218608-1-kevin.brodsky@arm.com>
 <20251215150323.2218608-15-kevin.brodsky@arm.com>
 <20251216201403.4647a4f9861d3122ee9e90d7@linux-foundation.org>
From: Kevin Brodsky <kevin.brodsky@arm.com>
Content-Language: en-GB
In-Reply-To: <20251216201403.4647a4f9861d3122ee9e90d7@linux-foundation.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17/12/2025 05:14, Andrew Morton wrote:
> On Mon, 15 Dec 2025 15:03:23 +0000 Kevin Brodsky <kevin.brodsky@arm.com> wrote:
>
>> Add basic KUnit tests for the generic aspects of the lazy MMU mode:
>> ensure that it appears active when it should, depending on how
>> enable/disable and pause/resume pairs are nested.
> I needed this for powerpc allmodconfig;
>
> --- a/arch/powerpc/mm/book3s64/hash_tlb.c~mm-add-basic-tests-for-lazy_mmu-fix
> +++ a/arch/powerpc/mm/book3s64/hash_tlb.c
> @@ -30,6 +30,7 @@
>  #include <trace/events/thp.h>
>  
>  DEFINE_PER_CPU(struct ppc64_tlb_batch, ppc64_tlb_batch);
> +EXPORT_SYMBOL_GPL(ppc64_tlb_batch);
>  
>  /*
>   * A linux PTE was changed and the corresponding hash table entry
> @@ -154,6 +155,7 @@ void __flush_tlb_pending(struct ppc64_tl
>  		flush_hash_range(i, local);
>  	batch->index = 0;
>  }
> +EXPORT_SYMBOL_GPL(__flush_tlb_pending);
>  
>  void hash__tlb_flush(struct mmu_gather *tlb)
>  {
> _

Oh indeed I hadn't considered that arch_{enter,leave}_lazy_mmu_mode()
refer to those symbols on powerpc... Maybe a bit overkill to export
those just for a test module, but I'm not sure there's a good
alternative. Forcing LAZY_MMU_MODE_KUNIT_TEST=y is ugly as it would also
force KUNIT=y. Alternatively we could depend on !PPC, not pretty either.

- Kevin


From xen-devel-bounces@lists.xenproject.org Wed Dec 17 10:01:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 10:01:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188679.1509795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVoLr-0006QO-AM; Wed, 17 Dec 2025 10:01:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188679.1509795; Wed, 17 Dec 2025 10:01:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVoLr-0006QH-5a; Wed, 17 Dec 2025 10:01:47 +0000
Received: by outflank-mailman (input) for mailman id 1188679;
 Wed, 17 Dec 2025 10:01:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2tmK=6X=arm.com=ryan.roberts@srs-se1.protection.inumbo.net>)
 id 1vVoLp-0006PP-QZ
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 10:01:45 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 61bdd709-db2f-11f0-9cce-f158ae23cfc8;
 Wed, 17 Dec 2025 11:01:40 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 326E314BF;
 Wed, 17 Dec 2025 02:01:32 -0800 (PST)
Received: from [10.57.91.77] (unknown [10.57.91.77])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id B4ADE3F73B;
 Wed, 17 Dec 2025 02:01:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61bdd709-db2f-11f0-9cce-f158ae23cfc8
Message-ID: <ca0da7fd-245c-4d52-8f4d-f8fce4717494@arm.com>
Date: Wed, 17 Dec 2025 10:01:30 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 14/14] mm: Add basic tests for lazy_mmu
Content-Language: en-GB
To: Kevin Brodsky <kevin.brodsky@arm.com>,
 Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
 Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Anshuman Khandual <anshuman.khandual@arm.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251215150323.2218608-1-kevin.brodsky@arm.com>
 <20251215150323.2218608-15-kevin.brodsky@arm.com>
 <20251216201403.4647a4f9861d3122ee9e90d7@linux-foundation.org>
 <f9550d22-8810-4145-aaa8-48961f6ea35e@arm.com>
From: Ryan Roberts <ryan.roberts@arm.com>
In-Reply-To: <f9550d22-8810-4145-aaa8-48961f6ea35e@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17/12/2025 09:26, Kevin Brodsky wrote:
> On 17/12/2025 05:14, Andrew Morton wrote:
>> On Mon, 15 Dec 2025 15:03:23 +0000 Kevin Brodsky <kevin.brodsky@arm.com> wrote:
>>
>>> Add basic KUnit tests for the generic aspects of the lazy MMU mode:
>>> ensure that it appears active when it should, depending on how
>>> enable/disable and pause/resume pairs are nested.
>> I needed this for powerpc allmodconfig;
>>
>> --- a/arch/powerpc/mm/book3s64/hash_tlb.c~mm-add-basic-tests-for-lazy_mmu-fix
>> +++ a/arch/powerpc/mm/book3s64/hash_tlb.c
>> @@ -30,6 +30,7 @@
>>  #include <trace/events/thp.h>
>>  
>>  DEFINE_PER_CPU(struct ppc64_tlb_batch, ppc64_tlb_batch);
>> +EXPORT_SYMBOL_GPL(ppc64_tlb_batch);
>>  
>>  /*
>>   * A linux PTE was changed and the corresponding hash table entry
>> @@ -154,6 +155,7 @@ void __flush_tlb_pending(struct ppc64_tl
>>  		flush_hash_range(i, local);
>>  	batch->index = 0;
>>  }
>> +EXPORT_SYMBOL_GPL(__flush_tlb_pending);
>>  
>>  void hash__tlb_flush(struct mmu_gather *tlb)
>>  {
>> _
> 
> Oh indeed I hadn't considered that arch_{enter,leave}_lazy_mmu_mode()
> refer to those symbols on powerpc... Maybe a bit overkill to export
> those just for a test module, but I'm not sure there's a good
> alternative. Forcing LAZY_MMU_MODE_KUNIT_TEST=y is ugly as it would also
> force KUNIT=y. Alternatively we could depend on !PPC, not pretty either.

Does EXPORT_SYMBOL_IF_KUNIT() help?

> 
> - Kevin



From xen-devel-bounces@lists.xenproject.org Wed Dec 17 10:53:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 10:53:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188714.1509804 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVpA0-0004CF-2W; Wed, 17 Dec 2025 10:53:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188714.1509804; Wed, 17 Dec 2025 10:53:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVp9z-0004C8-W6; Wed, 17 Dec 2025 10:53:35 +0000
Received: by outflank-mailman (input) for mailman id 1188714;
 Wed, 17 Dec 2025 10:53:34 +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
 <SRS0=ddEZ=6X=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVp9y-0004Bj-II
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 10:53:34 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a15335c4-db36-11f0-b15b-2bf370ae4941;
 Wed, 17 Dec 2025 11:53:33 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b728a43e410so875994866b.1
 for <xen-devel@lists.xenproject.org>; Wed, 17 Dec 2025 02:53:33 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa56be0bsm1865068966b.52.2025.12.17.02.53.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 17 Dec 2025 02:53:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a15335c4-db36-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765968812; x=1766573612; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=EH5z86K6Jbil6t7qVR+X+tGRnibq25kfK5cXjf9+bN4=;
        b=AYL+Pbozir2GmIxBOEd7tRdQOmtFGjqX+Wlbt1UEpuCBQGla+EhNdY3SF8Zx/VSBcP
         hu/5UH9nl+pGn470GFS/FCEcxenHIYGIc+fTI6ogCdhGpDChwsRWL2Hj/1HuGAePZi6g
         mPjVxBIQ1tOMvXCHqCFAtl9dtnytrEIeSGOutQNwOgcWVts+M8ryypGkDBZTaSQ3k5Wf
         BCNmc1Ld0qIBKQ16M/Bx82kWPMCIMgh/bn134J5yA+Q4Cg3L0qnp1v2e7DnbvIGsJVoK
         YG4uCQ2lCuH/vfJZqevdcJU3HQZrVKAt7ERMGOZcucLY7i75dWf2AiA0yTkROhnEIgVs
         GHLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765968812; x=1766573612;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EH5z86K6Jbil6t7qVR+X+tGRnibq25kfK5cXjf9+bN4=;
        b=sqmDH3RPZc7xwuNXCSAOOemPCpuxh6dekk7aGb1+G3EhQfd9Zw4M3eFnt0e5omvVqc
         u1LYCTvnYXc28J6l5TEBU4TtrYNcTQclxu8vR3wlJAsQpgESQwdcWphSASjksaTV/5vD
         me8SmkSJ+tQH5ShRVFmZv7BQJpRBkzaQj0EMyUWYM+4CSN5lQPd+HegvEDaOA5OfCq+E
         MhAGNLBwI1t7BKw8XDr2nHZ8oqYRGCX32augqt+WdNR74BYl5nsSGjxXUg4+7Ut03WbN
         cba0xw6UY7ysRw8F+EQemyd/yD0H4qwgSQeuHvvsyJalrFgH5mu42br60fNL8z1JGqkw
         ZM0g==
X-Gm-Message-State: AOJu0YwioPI3kkH//A46nUqSt8xjiJ4eBVZsybnUfZmiScRMiq6hkpX3
	5Gyos5z0YWYqxI0L3V1fSUhCJ5ta82xZi73tpwaLNDGyr2OuBl7pPOxiTcQLkg==
X-Gm-Gg: AY/fxX5/1mIMC4mF6W/tiw6Ju2J1L5kZgpO0e9TlB03P5niMfPYU7ycRMNtWr1+S5RF
	2WFyAEDpz3RBIJaFqozMeuLvE0h6FvdPEKTsQlvyhhDdd3JxvMAp7mb8aQapWvMe20vyW+B149U
	mr0NwQjF9VFXOjlVX1dmaDX5Ftr/i1xykNBMVYrs8G+5lwgm39HgAbyXIMTixcm/MkF+MOCmhig
	qSjxv8jmwHOJ50gl1rR7mgo0JFm+ecVcPpMl5Dp3rB2J9QBW2pus00aOwt4SOy3JF7nKGBqrHEc
	kTmFN+4Q5Xtg/BxojD2dsNK2eWqbZH1G+eEuy4YwePATpKzmlQoPl54UWFWU9vm2TpssRqGsHAz
	1MEejl7TWt0dtWigQIWdQykQtkDEP7C4BOrfKP+ngXt2ASFzab5RmVVtk+3Q4S/iIt5kqJ6theO
	Gj8Mr3QktCHduxnGC4HzlG9iaGIxgXHFeyaMKZ35eb9oFtqWenrRqGtT0=
X-Google-Smtp-Source: AGHT+IHCrtPPBwSA2vkPuORfr0s9In4r9oOZVZGSzXi8SQqkCSEwZdJKw0uWcGa9q9pHrbYbX6hwsw==
X-Received: by 2002:a17:907:7f27:b0:b79:c879:fe71 with SMTP id a640c23a62f3a-b7d23a47753mr1776449466b.19.1765968811986;
        Wed, 17 Dec 2025 02:53:31 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v1] xen: move alloc/free_vcpu_struct() to common code
Date: Wed, 17 Dec 2025 11:53:23 +0100
Message-ID: <5f75053750a9fca2b5fecf1dcf6f097b25e8f27f.1765967934.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

alloc_vcpu_struct() and free_vcpu_struct() contain little
architecture-specific logic and are suitable for sharing across
architectures. Move both helpers to common code.

To support the remaining architectural differences, introduce
arch_vcpu_struct_memflags(), allowing architectures to override the
memory flags passed to alloc_xenheap_pages(). This is currently needed
by x86, which may require MEMF_bits(32) for HVM guests using shadow
paging.

Move the definition of MAX_PAGES_PER_VCPU to xen/domain.h and default
it to 1. Retain the ARM64 exception (with CONFIG_NEW_VGIC) where two
pages are required due to larger per-IRQ structures.

The ARM implementation of alloc/free_vcpu_struct() is removed and
replaced by the common version. Stub implementations are also dropped
from PPC and RISC-V.

Finally, make alloc_vcpu_struct() and free_vcpu_struct() static to
common/domain.c, as they are no longer used outside common code.

No functional changes.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2219693055

Shouldn't we make alloc_domain_struct() and free_domain_struct() static and
drop their declarations from xen/domain.h, since these functions are only
used in common/domain.c?
---
 xen/arch/arm/domain.c             | 32 -------------------------------
 xen/arch/arm/include/asm/domain.h |  8 ++++++++
 xen/arch/ppc/stubs.c              | 10 ----------
 xen/arch/riscv/stubs.c            | 10 ----------
 xen/arch/x86/domain.c             | 23 ++--------------------
 xen/arch/x86/include/asm/domain.h |  3 +++
 xen/common/domain.c               | 27 ++++++++++++++++++++++++++
 xen/include/xen/domain.h          |  8 ++++----
 8 files changed, 44 insertions(+), 77 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 47973f99d9..507df807ed 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -473,38 +473,6 @@ void dump_pageframe_info(struct domain *d)
 
 }
 
-/*
- * The new VGIC has a bigger per-IRQ structure, so we need more than one
- * page on ARM64. Cowardly increase the limit in this case.
- */
-#if defined(CONFIG_NEW_VGIC) && defined(CONFIG_ARM_64)
-#define MAX_PAGES_PER_VCPU  2
-#else
-#define MAX_PAGES_PER_VCPU  1
-#endif
-
-struct vcpu *alloc_vcpu_struct(const struct domain *d)
-{
-    struct vcpu *v;
-
-    BUILD_BUG_ON(sizeof(*v) > MAX_PAGES_PER_VCPU * PAGE_SIZE);
-    v = alloc_xenheap_pages(get_order_from_bytes(sizeof(*v)), 0);
-    if ( v != NULL )
-    {
-        unsigned int i;
-
-        for ( i = 0; i < DIV_ROUND_UP(sizeof(*v), PAGE_SIZE); i++ )
-            clear_page((void *)v + i * PAGE_SIZE);
-    }
-
-    return v;
-}
-
-void free_vcpu_struct(struct vcpu *v)
-{
-    free_xenheap_pages(v, get_order_from_bytes(sizeof(*v)));
-}
-
 int arch_vcpu_create(struct vcpu *v)
 {
     int rc = 0;
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index 758ad807e4..f33d886bb8 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -12,6 +12,14 @@
 #include <asm/vpl011.h>
 #include <public/hvm/params.h>
 
+/*
+ * The new VGIC has a bigger per-IRQ structure, so we need more than one
+ * page on ARM64. Cowardly increase the limit in this case.
+ */
+#if defined(CONFIG_NEW_VGIC) && defined(CONFIG_ARM_64)
+#define MAX_PAGES_PER_VCPU  2
+#endif
+
 struct hvm_domain
 {
     uint64_t              params[HVM_NR_PARAMS];
diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index 9953ea1c6c..f7f6e7ed97 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -152,11 +152,6 @@ void dump_pageframe_info(struct domain *d)
     BUG_ON("unimplemented");
 }
 
-void free_vcpu_struct(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 int arch_vcpu_create(struct vcpu *v)
 {
     BUG_ON("unimplemented");
@@ -264,11 +259,6 @@ void vcpu_kick(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-struct vcpu *alloc_vcpu_struct(const struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
 unsigned long
 hypercall_create_continuation(unsigned int op, const char *format, ...)
 {
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index fe7d85ee1d..579c4215c8 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -126,11 +126,6 @@ void dump_pageframe_info(struct domain *d)
     BUG_ON("unimplemented");
 }
 
-void free_vcpu_struct(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 int arch_vcpu_create(struct vcpu *v)
 {
     BUG_ON("unimplemented");
@@ -238,11 +233,6 @@ void vcpu_kick(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-struct vcpu *alloc_vcpu_struct(const struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
 unsigned long
 hypercall_create_continuation(unsigned int op, const char *format, ...)
 {
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 7632d5e2d6..0e3f7de524 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -493,28 +493,9 @@ unsigned int arch_domain_struct_memflags(void)
     return MEMF_bits(bits);
 }
 
-struct vcpu *alloc_vcpu_struct(const struct domain *d)
+unsigned int arch_vcpu_struct_memflags(const struct domain *d)
 {
-    struct vcpu *v;
-    /*
-     * This structure contains embedded PAE PDPTEs, used when an HVM guest
-     * runs on shadow pagetables outside of 64-bit mode. In this case the CPU
-     * may require that the shadow CR3 points below 4GB, and hence the whole
-     * structure must satisfy this restriction. Thus we specify MEMF_bits(32).
-     */
-    unsigned int memflags =
-        (is_hvm_domain(d) && paging_mode_shadow(d)) ? MEMF_bits(32) : 0;
-
-    BUILD_BUG_ON(sizeof(*v) > PAGE_SIZE);
-    v = alloc_xenheap_pages(0, memflags);
-    if ( v != NULL )
-        clear_page(v);
-    return v;
-}
-
-void free_vcpu_struct(struct vcpu *v)
-{
-    free_xenheap_page(v);
+    return (is_hvm_domain(d) && paging_mode_shadow(d)) ? MEMF_bits(32) : 0;
 }
 
 /* Initialise various registers to their architectural INIT/RESET state. */
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index 7e5cbd11a4..576f9202b4 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -15,6 +15,9 @@
 unsigned int arch_domain_struct_memflags(void);
 #define arch_domain_struct_memflags arch_domain_struct_memflags
 
+unsigned int arch_vcpu_struct_memflags(const struct domain *d);
+#define arch_vcpu_struct_memflags arch_vcpu_struct_memflags
+
 #define has_32bit_shinfo(d)    ((d)->arch.has_32bit_shinfo)
 
 /*
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 93c71bc766..3982d9e466 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -13,6 +13,7 @@
 #include <xen/sched.h>
 #include <xen/sections.h>
 #include <xen/domain.h>
+#include <xen/macros.h>
 #include <xen/mm.h>
 #include <xen/event.h>
 #include <xen/vm_event.h>
@@ -392,6 +393,32 @@ static int vcpu_teardown(struct vcpu *v)
     return 0;
 }
 
+static struct vcpu *alloc_vcpu_struct(const struct domain *d)
+{
+#ifndef arch_vcpu_struct_memflags
+# define arch_vcpu_struct_memflags(d) 0
+#endif
+    struct vcpu *v;
+    unsigned int order = get_order_from_bytes(sizeof(*v));
+
+    BUILD_BUG_ON(sizeof(*v) > MAX_PAGES_PER_VCPU * PAGE_SIZE);
+    v = alloc_xenheap_pages(order, arch_vcpu_struct_memflags(d));
+    if ( v )
+    {
+        unsigned int i;
+
+        for ( i = 0; i < DIV_ROUND_UP(sizeof(*v), PAGE_SIZE); i++ )
+            clear_page((void *)v + i * PAGE_SIZE);
+    }
+
+    return v;
+}
+
+static void free_vcpu_struct(struct vcpu *v)
+{
+    free_xenheap_pages(v, get_order_from_bytes(sizeof(*v)));
+}
+
 /*
  * Destoy a vcpu once all references to it have been dropped.  Used either
  * from domain_destroy()'s RCU path, or from the vcpu_create() error path
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 8aab05ae93..3946ec9dad 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -15,6 +15,10 @@ struct guest_area {
 
 #include <asm/domain.h>
 
+#ifndef MAX_PAGES_PER_VCPU
+#define MAX_PAGES_PER_VCPU 1
+#endif
+
 typedef union {
     struct vcpu_guest_context *nat;
     struct compat_vcpu_guest_context *cmp;
@@ -70,10 +74,6 @@ void domid_free(domid_t domid);
 struct domain *alloc_domain_struct(void);
 void free_domain_struct(struct domain *d);
 
-/* Allocate/free a VCPU structure. */
-struct vcpu *alloc_vcpu_struct(const struct domain *d);
-void free_vcpu_struct(struct vcpu *v);
-
 /* Allocate/free a PIRQ structure. */
 #ifndef alloc_pirq_struct
 struct pirq *alloc_pirq_struct(struct domain *d);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 17 11:46:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 11:46:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188746.1509830 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVpzI-0002A1-3a; Wed, 17 Dec 2025 11:46:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188746.1509830; Wed, 17 Dec 2025 11:46:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVpzH-00029u-Vu; Wed, 17 Dec 2025 11:46:35 +0000
Received: by outflank-mailman (input) for mailman id 1188746;
 Wed, 17 Dec 2025 11:46:35 +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
 <SRS0=0CCj=6X=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vVpzG-00029Y-Vs
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 11:46:35 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 088b748c-db3e-11f0-b15b-2bf370ae4941;
 Wed, 17 Dec 2025 12:46:33 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MN6PR03MB7744.namprd03.prod.outlook.com (2603:10b6:208:4ef::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Wed, 17 Dec
 2025 11:46:30 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9434.001; Wed, 17 Dec 2025
 11:46:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 088b748c-db3e-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VEkAoaj1xUpjNSPg5lZfVWzXhQpUvMTdh3OivkagdBtAiiUkAVK4KJ5hLbtQOUeANESGFDi/NTIZMFFdFDxBlfz68jzX8ABl7/qAkE06j5HXCndEMFoMUwghQf+R52JHd+AwV3eJkQ8sWsQ0hZsrbvh+Y+lc7ZFbEMGKCXOiL2EgDePaq0WYEPhC5age3cuf6VhYh4nLbTHZtAVzQAVY8ytv0k6aaD+aTSUu8xwXtyHJwvY6xY0E5JBZYSaHqS95WUNQ9kDvZVZYX1gODs+SDFTn208vFJwSEe+kjBBUEDBYBJehFGnt6jxSl0hErbI8V3CvorRpTkxXl+fP1Sguzg==
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=6Jf7VyL54wyiLJ45oOdxGR3ZZVuP1PZZak7x1WNcM9Q=;
 b=kTeyrXTs905eaOW5AsZuhFPyHxhxb3MO8QkvsvRP9oEwUQCKYfaZbSWCc2Il9XAyxz+p5/NoNHYVTqlNyPouKkT/WKOKzuCeJPv+2A2S7vjY1i2aofNOdVzFcX3/KrYg0A+lMGc18SxAiqoD7b72KhYiy+8OgHN2uPL2BChYOPmtymZPS6vA7g+yRv6OGTNXat+fmEwRzSKDCPS2gO4YOteV4eLpl+KAgm0jF3ruudSS3WCQ0iSmotDIL77q7zhB8clfhXpLYBBJTZlEu3H/LjrJAnC+9tG2lvIVhpmEf0h+4B4dRzPGKI+8kd4ddIKfUTZJ6f9i+NvbkI601OFskQ==
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=6Jf7VyL54wyiLJ45oOdxGR3ZZVuP1PZZak7x1WNcM9Q=;
 b=ebiEtFZd25ky6pxg8tMC6QJqnlb9HIc1slN/cQYFkO4p+Y+ERlEenoG7BSDasq4/gUvxyOJtmFwAntz0BVs0NsgEn+KLNiP63aJsdNMQBpU6ocXYkUw3YMDn9ftOTbUyrHNt0v7hGqdYgZBS15WmaOmdO01fmolg5vY91b2ll3Y=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <8aee5daf-be3b-4f10-aa38-b8c1504ba0b4@citrix.com>
Date: Wed, 17 Dec 2025 11:46:25 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>
Subject: Re: [PATCH v1] xen: move alloc/free_vcpu_struct() to common code
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
References: <5f75053750a9fca2b5fecf1dcf6f097b25e8f27f.1765967934.git.oleksii.kurochko@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <5f75053750a9fca2b5fecf1dcf6f097b25e8f27f.1765967934.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0152.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:9::20) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|MN6PR03MB7744:EE_
X-MS-Office365-Filtering-Correlation-Id: dcea86c7-28b2-4604-a4fa-08de3d61eb0f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|7416014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RlBPWGFZQTNCTGxWenYraFl4WlNJd09jak9FUE9uR1BuYUNNTC9KdnBjRU9s?=
 =?utf-8?B?QVhkajZRR2pYNERxSDNUWkloUkIvbWVwMXg1c0RCeVM4SytFbnlzRFpxVXVy?=
 =?utf-8?B?T2FOMWZTZVM5SVlIeEVTQm11ZnprZ3l1TlQ2eTVkNU1GV0pDZDVOUlh3bXY4?=
 =?utf-8?B?MSswd3VNV1dHSWFJeHBMbDJEOWJ1SFpXaGllcStidHpXczN2SUs2Uk8zV2dt?=
 =?utf-8?B?ZUpFZ0ZkQTBlaTFGWHIwUTcwUiswTUx4NytZSHR3VjlWandEN1JZVUt1V0FO?=
 =?utf-8?B?MEFxamVzSzVlak5DWHpLY1BYMzlZNy9nYkhpbzdpaXRmWXc2Z292Q0MwUWdw?=
 =?utf-8?B?bG1QMXVURmozVFlIQ09BMWRyUWhhRjRQb2RzOUFndk81ajhMbGtyQ3VVYkhG?=
 =?utf-8?B?R05CWEdHbHFGRWUyZlFtM1p2azUxZFBwYk1iRG02L2JCNlNoQTdmVDIzZmZ4?=
 =?utf-8?B?QW9uZTF6RWhwU1Qxa3AwZVZMZHF4RzNWMFlvdUg5aFFKbzM1a0UrOW5wZ2Ji?=
 =?utf-8?B?cGJnektnY3ZLL09IeXRJSFlFaCtsWC9yb3pKN2dBY1l5alhaZy9aTHJTNGg1?=
 =?utf-8?B?dlRocUUwSnVXenpNUndvcVFJeCsra0pCRktIUWhQTW9SV090TW84NEMvcUlq?=
 =?utf-8?B?d3J5TSsxdGk1MmIxN1RxRllwL0VhL092RUdsaXV4cmNPWEl0eXpiVG1QY0Zn?=
 =?utf-8?B?TTc4SXplZTZDOVVramUvdU8xRHJ6WDF4N05nek1ibGxsSC95UUx5QVVtN3E0?=
 =?utf-8?B?ZmYzb0lGUnNRZzNERDBheEFTSENKdWo2U1FJN2owRjJVeExIdXhhMk1xUWN1?=
 =?utf-8?B?cFRWcHpxaUd2ei8vUEtuY1dpV3J3RUVVanh1cmNLS0l0dmp5b09kVXhPd0p0?=
 =?utf-8?B?MG1QdGVvSGlFdmxiR1pqdUI4WnNyOURXWlk3Rmx3dndrREkyQmFvQWhORXZH?=
 =?utf-8?B?K3N0WmFtTGtGNWM5R053ajRrV1lLNlBQY3hDaUZDelRLa3ltdTNKQUZ3ei83?=
 =?utf-8?B?dFNFUWhIYzB0allRSFBsdHRjb05USk95WklKUDNtYW1rT0Uwd21UMXdMVjhj?=
 =?utf-8?B?cytUbmRRM1ZtYTRWZURZOFVWZVlnR3Y4eHJVNkwzeHJBeXo1eTd3YUNrTCs4?=
 =?utf-8?B?SVVtci9SWlV6ejJuNm4vaXNNeEZ5WEtSejJsMWM5YnIxQU5WRDIydHFYamxr?=
 =?utf-8?B?eTVSMEo3Vm4yZFhROTkxbW1TR0lsMS9weEhvZWxRY2tuTzZTdVdpZXh2QjUv?=
 =?utf-8?B?alFhR2ZWSks5QXVqR1BaTFJVSFliZ3VHblRJMVdrZW0wYkd2U1lJMkJPVzVD?=
 =?utf-8?B?cVBtWG8wblVwblIxYlNmMFNhUG44aHhPby9OZVNjREF3QnNLY1NvRE0vbEdC?=
 =?utf-8?B?T1JUV2xld1ArRFIrQzE1MGdKbEVscHQwNzNTYXRJTThXeTJySzB1WmdiNWc4?=
 =?utf-8?B?MnRvdmdCSmFodUVSSzd1OFFGZFRFa3FFdlI0bk5ZY2srSjB4U2dmdDdITjZ1?=
 =?utf-8?B?TDRyTVJtbkx3SjFzTk12TjJLdWNPMDZ6NHRvK2MzZE5SRGhHMGFNU3JSVmNQ?=
 =?utf-8?B?cjlSVXlZUW9teWZSM2NXczFiTzF4VDFVRVNyRUdNOTV5SFZibzdFam5tR3p3?=
 =?utf-8?B?enUvME11RkdMNGk4VnpmdEF5ZXBYM0lKelkrWHhSanFJN0JBNnBRMEYvdmov?=
 =?utf-8?B?VExMMzBkbmNxNkt3VE13M292aStZMDI5bkNXQlcyQ3FLdDVSY2V5YnAxcDlC?=
 =?utf-8?B?WUtwaUZjME5ieWJNZEYwKzVydzRRMzRYd05QOVdWY3VjQ0swbU8reHFUNSt3?=
 =?utf-8?B?RlhqSE9mK2lMMk15VTNyeHQ1MHRkOEJWMXJxOWxzRDJIQjhtUlgydStJN1VX?=
 =?utf-8?B?QWQ1RWxlTWcyMTZPZ1RMS0Y3WE9odFFoSEVpbmlqdjNEOWRRaUJqQW93dlpL?=
 =?utf-8?B?dU5WYytVajJQbXE2THhYbFJGWFdnZndPRFRwYjlENWw1c0VONWhZK3hVamty?=
 =?utf-8?B?TVJRdHZEdGtnPT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TzlQRzVzUURtdUErSVlRSm9rejM5L2MzRGxMZUYyeS9tdjZBSVJ3Tmg0M04x?=
 =?utf-8?B?TzcxL1JqckpoSGpyNUZrMHdpbEp3K0ptazh1UkppZmZ5U0pNQUxEczJmb0to?=
 =?utf-8?B?OWk5akdueWhFNFdZMzdQdWpmczdNcndadWtBYnJEaXllSFVGQTJvTU5ybGsr?=
 =?utf-8?B?alVtaVhVSHFjcEJqN1l0K0JWbG0rNUJCR3dGRnI4blFweDhzVHBzUXFZeFow?=
 =?utf-8?B?TjRRZXJJVXpnNFoxUS9sR0ZoaE9VaTNoZzZxYkgvc3JOQklGWVQxVUF5Ujl1?=
 =?utf-8?B?bHRtS2hBT1lQai9iVk5rOVJvSjFmMDNyTmR3MDJQOEtrNFAvVUs5NkdCUmFr?=
 =?utf-8?B?Qk0yUUF5UFJXbW8rbzVoWG4yVFBNNC9CVE1Qem9VZmpFWFAxRVpzN1Z0YzVn?=
 =?utf-8?B?dXZGdjNuajFYQlVMQk55bjhRalBlMU1PQll5SGw5OWFhZGlncFJYNVZKRTFi?=
 =?utf-8?B?SktXSTlaNzJURisxeDBCTHg2aS84V3d6cnpUSzE2Y2tQZ3JMNWhVcDZxR3Rp?=
 =?utf-8?B?dDlpa0J1SXdVMkhzMU4xdGNtTmJ2WDVGRlRSaWErcGxLeXVVcncvVUlVanFO?=
 =?utf-8?B?UHhNbktDSWt4TFArUHRVZ0JKZ3ltRk01Wmx1SVhlY0ZzQXgxdUJaekVKbEts?=
 =?utf-8?B?M056ZkRXSlMwWXNTMjNYRFpFWi9DUFVZc3FtQzZIWWJaeVNsVURVR0VsR09j?=
 =?utf-8?B?elpsaHBVMmdoYm54Z3prM0ZaWUh0TXRMb0N3RUF1QkFBcW9MTVk4RHNraFNF?=
 =?utf-8?B?YXorcDFHNTNpaVBPd1lzVU9EZm0wTGowaHgrdW5CemQ2OWVZNzVMQ3BPZUh0?=
 =?utf-8?B?Z2xxN2MrRU0wMEJQbDFJZ3BVK3llbDE1SW5aRjk0VHY0Nm9rbkMxR1VVTFB6?=
 =?utf-8?B?bHBOckRRa2JjVFp0dU9ZMjR6ZG1IUkRDVkZWVEhjNzJTLytMVGQ0cDc5Y2hh?=
 =?utf-8?B?Q1ZKbjc3Z25GNUMrWG9ja2l1aUNvWTlDR2E0TGkyOWtXa3NYbmFJRkFKcG1J?=
 =?utf-8?B?am15MThKNWM4Zk9DaWlQVWRWT0xQVC9IQ2E0QkdYOC9waFpsTm0vSmlDYkFF?=
 =?utf-8?B?cFRJY1o1aHlCL0F5WGdjb2NxVmExQ2dQRVk4RlBUalV3M3djVzZNV0dJTzRC?=
 =?utf-8?B?YVJ2Q2Nmd082bnptK0xqV0xMMmxHcnJ2WFFUR2lmVTB5NkttY0JxOTNqaVNn?=
 =?utf-8?B?Q1VFRnBRZUdpMWZERGsxTnVKS3FlMlo2ZmNpNTA4b1BWcWtGSC9NRnVVMnRW?=
 =?utf-8?B?KzRuaFVUbHNrcWYxVldnak9Wd3phYU9KY2xoQzFQdlFmZmx0NGYxK3BxSVlH?=
 =?utf-8?B?OEdDWFhxTm1FNElKbE9MTUlHSE9CQ1ZZZGZPWWdRTDdLODhZeUpIVjBLZ0hw?=
 =?utf-8?B?N3dXWFJ0RFk2eGkxYkE0V0Q0OUU0YXFsNTFxazd4SEZqUm4rbkp0MFAxTE9Y?=
 =?utf-8?B?WnJ6S2prZ1VidUE0REd1SjluSmpSTXdPUEovWi9pUlRTL2VDZlRYbHhNLzZF?=
 =?utf-8?B?enJLRGI2LzNvZGRqUS96UlRJaGxVSjRTdXFFNlg1Z2hIdnpKMjVBWFY4S2po?=
 =?utf-8?B?WXVFVnkyUGtBL2VNN2FaWi9wa1hCM2NPN1lqQmV2UlM1N3gyUVl4aWJyRjd6?=
 =?utf-8?B?MWJQZFdlSCtaWmxXY0kyU0huVTBOayttVWhJNGUzUXAxRXhiQTNMSTZHeEJP?=
 =?utf-8?B?RDFtVGVuMHEwQzZ6SzBlZnBaU1FSaFJFTVRXR0ZuMENMMWs5YU44VnRuWVlF?=
 =?utf-8?B?S1Roc0tiVHJKeGdMd0dMMGV1cTJkeXVKK0RCWkc3QWxXSEwzejYvS012cUh3?=
 =?utf-8?B?bS80SFFKclMzdFAyYkRoQndmeFJVM1RtUW8reEZJUFhhYXRsZ3BEenBPTERi?=
 =?utf-8?B?L0hiVFJVWVZ2a3huUk1oa1hUWE5qQWFHY2MyUkMyZVNhV1VxKzI3TDEwQ2Y3?=
 =?utf-8?B?WHNvMjVxUmY2bUdHcTNEY2RTL21ONHp3Ykw5MGtub3EyWTR2QjlLWFJBdWd3?=
 =?utf-8?B?eGhSS3ZpZ2ZwaHhOSHU2c2M2YlNPNkxxT1h1UmU2bmVWbTVaSm04RFFkSWZm?=
 =?utf-8?B?UnlaTHBWZ1R2NUswR0Zua2xWcDBTOUV4NnFoaVlEa1BUaU11SWlXLzVEYzRh?=
 =?utf-8?B?WnZMWUhCS2gzTmlhMkpkU3QxU0xyRVFMMnBCdHlNRWtzYjNCeS9WbHpCZnFh?=
 =?utf-8?B?M1creVdMeDVCcS8veGpDcW5UanoxYmZqS3BMM2NHYU5RNURYV0Q0dWNCMmVy?=
 =?utf-8?B?dEJ1QTFoZi9Hbjl2ckY1dFNGdjlhWDQ3V3BOQmE3RmdrZUliMUp1WGgwUERs?=
 =?utf-8?B?dXJaeFdMeWZYYVlUdWIzcUYrMEdSekpwMklkbU1GK24vdUJ2WkJUdG10ek1U?=
 =?utf-8?Q?WnQmWPdpG8XK0P4w=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dcea86c7-28b2-4604-a4fa-08de3d61eb0f
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2025 11:46:29.9544
 (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: BvQZtl0k2eXAJBv5xF4oOZxgqgV6O8PpBe4BhN5ZSncEt++hMVX73fsH1H42aa3UsMJTb+SGjzvSwYK7ctS+uL5d0Xln95U/JDjMgA8MEeE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN6PR03MB7744

On 17/12/2025 10:53 am, Oleksii Kurochko wrote:
> alloc_vcpu_struct() and free_vcpu_struct() contain little
> architecture-specific logic and are suitable for sharing across
> architectures. Move both helpers to common code.
>
> To support the remaining architectural differences, introduce
> arch_vcpu_struct_memflags(), allowing architectures to override the
> memory flags passed to alloc_xenheap_pages(). This is currently needed
> by x86, which may require MEMF_bits(32) for HVM guests using shadow
> paging.

You lost the comment explaining the restriction.  This needs adding back.

> Move the definition of MAX_PAGES_PER_VCPU to xen/domain.h and default
> it to 1. Retain the ARM64 exception (with CONFIG_NEW_VGIC) where two
> pages are required due to larger per-IRQ structures.

CONFIG_NEW_VGIC is still off by default, unsupported, and has had no
work on it since it's introduction in 2018.

There are a lot of good reasons to enforce struct vcpu being a single
page allocation, not least because an allocation can fail due to
fragmentation despite there being enough free RAM.

I would far rather that common code enforced it being page size, and
NEW_VGIC gets deleted or adjusted to cope, than to make it this easy for
architectures to shoot themselves in the foot.

>
> The ARM implementation of alloc/free_vcpu_struct() is removed and
> replaced by the common version. Stub implementations are also dropped
> from PPC and RISC-V.
>
> Finally, make alloc_vcpu_struct() and free_vcpu_struct() static to
> common/domain.c, as they are no longer used outside common code.
>
> No functional changes.
>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2219693055
>
> Shouldn't we make alloc_domain_struct() and free_domain_struct() static and
> drop their declarations from xen/domain.h, since these functions are only
> used in common/domain.c?

Yes - they should become static.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 17 11:53:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 11:53:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188754.1509840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVq5T-0003nq-O6; Wed, 17 Dec 2025 11:52:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188754.1509840; Wed, 17 Dec 2025 11:52:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVq5T-0003nj-Kd; Wed, 17 Dec 2025 11:52:59 +0000
Received: by outflank-mailman (input) for mailman id 1188754;
 Wed, 17 Dec 2025 11:52:58 +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 <SRS0=10za=6X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vVq5S-0003nd-G2
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 11:52:58 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ed880261-db3e-11f0-b15b-2bf370ae4941;
 Wed, 17 Dec 2025 12:52:57 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-47a80d4a065so35239235e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 17 Dec 2025 03:52:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4310adad05fsm4527733f8f.15.2025.12.17.03.52.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 17 Dec 2025 03:52:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ed880261-db3e-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1765972376; x=1766577176; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0ou3kxIONaPFk49o97USYmmnLAgtXYZYe3XywDJLius=;
        b=cBfE2ul7MBkiYYLTtC1gQc996rXzBBoy/HcQZI1avQAjm6uhbq054apPKAbh3xL863
         aScHF2d3ctR++H6SRqefshF+mShIXAxdOSJN99qm+9LTuPDKX/zd+/uFKpK/BmPjb8bA
         swUH74yt89fs5tvtdpJRbBbpSSPlOoI0TTiEc7uQiN0LiWcvtqoXL8N5gqcgR0ehB23V
         15avPjT8Gi0RcCPiL+x1iw0wAwheaY7AWD6sYNf4z3XtC7P5J2eHmfEfdItBe5q5Ljlk
         DmIgpcOF1l5baZqJ/2dpjlFWnzwNR1FVvAYNv6rRnlKG8vVxQ4gZILlbDNcS6qOz77yZ
         dDrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765972376; x=1766577176;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0ou3kxIONaPFk49o97USYmmnLAgtXYZYe3XywDJLius=;
        b=pA7/ywJ7v8sSjCRjB7kTTTyVNrjOHQAlG42QcBFUQPI5iKI8vymdgLyrp9wRHbwUSN
         oyqLMZf+x2ObrOsGabDn/oNWbHv10O/oWe4dHWflsfmYGuOCs4PkHO1mzm6Vneqv6a6a
         T6yy/xVYb9nraIckhR0N5vRetgFxjJu49UUr8n4wrJrUd4MkiP9WI/2aVZNdcjjUo8gE
         rcJtqk5wh3hfntmC+BvaVvEf+r3Pc3Gz1vKN6z8XT1FFsbcYQ0jjbprUAjsZOZ5YhIyd
         hJ5O8aRwej02XwclMLuQOzUHyOeWc06hSJBB2Ej2LwYpr4ARhRvILnlOinLx4vD9MgRk
         LGBA==
X-Forwarded-Encrypted: i=1; AJvYcCWiZ6AecixhWRGI7c5i8NTybvnI1t74jbP/9UDqi4S59G7Vg9ynFSp5+5zYYNtqQUruOgzYKACluSU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz395LtL/YCwEjUKwNx+H9iSJG4UMRUEej4QiEjATvWkmuZV0Fa
	RYGDvKHIb+4vqYn1+tAKOvk1CoSQsIL5ttumtSPmCv8LOp8oaOrU10yqrmZeN8K/sw==
X-Gm-Gg: AY/fxX6zGpXbTeHHonVZFepE29Xog4+3+h45w3ScWcY9mityUCsWEDwXx3VCWI898zf
	W93R4b74whf1zNcNQ1R7JTEwkOs51l8wwSMQRX7VPOfGTPwrxZmZ/5uR966TthgSu+9FOmjug3V
	9A1rYWLLHrfMGh4QG7ME7yMKZgN7HHIIzIC7RE7ws1qIO+3H3ar25h4Z3mwYa+i0RUmORea72lw
	r9g3eEleCD42YJqFl4tmqjL46cL4H5AEVTuWqwEGerSNGRvZgHhBSOiNq5qa5qWJpViyNusQeEJ
	jkGVkIMy1JbNQlObW7XAaAAuOjAGdgP6jAyvHTzSdxsFU7qzKdTqEOvIipyJIUqE3epPVH9+xCR
	i1jF2wVU3COLQX2gzlzz5ISSnSrlH4vzlrRuJXK3XvZfMpeSQ58mInZWOacrGdL+PUPELxMAtuQ
	8YwmaPzCf7GQDc5ziqwH8hI/yH8qauwMlGySNemMFaDAdqT4IZckf9yb1wDssSKK8YnSwsMyqj+
	kk=
X-Google-Smtp-Source: AGHT+IHSJpgIEc3RFN0DkHSOnU6TaU6ykzSU6NBCYIV34ON4CBbA+kWTzen3IBUKm7X6wwFsoboLKw==
X-Received: by 2002:a05:6000:4287:b0:430:fdfc:7dde with SMTP id ffacd0b85a97d-430fdfc810fmr9699747f8f.36.1765972376203;
        Wed, 17 Dec 2025 03:52:56 -0800 (PST)
Message-ID: <f8a9be3a-a0c6-496a-806f-40760dca5aee@suse.com>
Date: Wed, 17 Dec 2025 12:52:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen: move alloc/free_vcpu_struct() to common code
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, xen-devel@lists.xenproject.org
References: <5f75053750a9fca2b5fecf1dcf6f097b25e8f27f.1765967934.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5f75053750a9fca2b5fecf1dcf6f097b25e8f27f.1765967934.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.12.2025 11:53, Oleksii Kurochko wrote:
> --- a/xen/include/xen/domain.h
> +++ b/xen/include/xen/domain.h
> @@ -15,6 +15,10 @@ struct guest_area {
>  
>  #include <asm/domain.h>
>  
> +#ifndef MAX_PAGES_PER_VCPU
> +#define MAX_PAGES_PER_VCPU 1
> +#endif

In addition to what Andrew has said, I'd like to mention that this is also
a pretty ambiguous name. It can really mean about anything vCPU-ish, when
it's specifically about struct vcpu. But as Andrew said, preferably we
would get away without such a constant altogether.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 17 12:06:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 12:06:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188771.1509850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVqI1-0005fc-U1; Wed, 17 Dec 2025 12:05:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188771.1509850; Wed, 17 Dec 2025 12:05:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVqI1-0005fV-RK; Wed, 17 Dec 2025 12:05:57 +0000
Received: by outflank-mailman (input) for mailman id 1188771;
 Wed, 17 Dec 2025 12:05:56 +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
 <SRS0=B9rb=6X=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vVqI0-0005fP-4T
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 12:05:56 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bd54d313-db40-11f0-b15b-2bf370ae4941;
 Wed, 17 Dec 2025 13:05:55 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DU4PR03MB11100.eurprd03.prod.outlook.com (2603:10a6:10:5f3::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Wed, 17 Dec
 2025 12:05:52 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9434.001; Wed, 17 Dec 2025
 12:05:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bd54d313-db40-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Up3EEPEnttvw9YiUu2oP0U0r9PzGstk0Th64En2t2C58A2EvKK4vkgfAu2JEWc+GTu3AqLleiNFdl/clb6G6MN5hIgXYBY/bxFXWubpoYFUfFc08kQh66lIZ7TzHOzLN+Cp2GB1357FkRr8pTnO47gHiBdcYDPZUjr9GVvhMzcZ9ndfx+IQB4vbWr2Q13Ecx6j7cgutxicWlApdMRDaeJCk2c7i1kiHBRcNel/dXD2bIruid6e6BRT1jQ7S2xInoK7LAZvwjiuHbK3Sd9s60dTqFdL0Y55Phhu6rxAyYW32Bh98XLsKRU+EFAA1j6EXQIze3nhuEp5mgLdAQkzMZug==
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=6K3l6d0MF1Q8SFLre9eWjfBSFP8P6q4fUhQfNI1Zr1s=;
 b=SrOoUzKtAZQTqDsGctJ1hrUMLFOytoi5PDfRn80SMVYnjocrDlJszBGEuC0AB/RhCKBjMw2PZ/ujClsHLb9f8C56xdhUazQ08iRSLF19Ztw0G78B/7scb1qP+RyS6hZs/OMJBB4zaYu+U4EXp7e6JPsDJz6+2Qzr7pN+tlC3ObYOzBo4lZsTj7o1VcKEcV5lGWZzWs0qUHyAb+kQ3w2uUPEeLDP2RicZDZb8gPTAut1crx+mUZIRyXRS7S+TKP6sh7U2+yIZOMwRzqkURheesCkwXlh/PK7jl0DPA+ScIYDgaIoBff8A7c3cQLIo5urzVAu5trexq+93ApiQ7/tDRQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6K3l6d0MF1Q8SFLre9eWjfBSFP8P6q4fUhQfNI1Zr1s=;
 b=bfBXEv4i7qbd/I6BiQDFvCfX40ZEhqfO6SSG9n2T/ZR3TbQMnZilsk58wYCTX+zIDqjkOFP42xJ9dl/i5Oh0I3zkQ2Vq3+gyaQqUzdALj9fUBeN+4eT1mHXDVXPF/pORyGiskz7VfajuX+/P65wNaEzXUUPJolavzV4GfIRsro8c2rVoS0Y9dcwNGeUf5iPIdPbI3iCJygCmIrFtSWVfqYO8p6z4n2LjQL4gdSnbUSDnHCc8JirIIkPUZhtIRn0jWtECvUmfegCFyrnEGGxv0n2iRQ6LstiWHznD6OoMdURsHuRdsZIBnTWEoJzkB6TlOENsh8XCJFPSEal+jUndYg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <927748e8-4116-422a-ac82-5ad38970bea4@epam.com>
Date: Wed, 17 Dec 2025 14:05:51 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/2] xen/x86: move domain_clamp_alloc_bitsize() into
 pv32 code
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251216231348.3897820-1-grygorii_strashko@epam.com>
 <20251216231348.3897820-2-grygorii_strashko@epam.com>
 <d3c61635-875c-46e3-967d-64def04c7df4@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <d3c61635-875c-46e3-967d-64def04c7df4@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0015.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::28) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|DU4PR03MB11100:EE_
X-MS-Office365-Filtering-Correlation-Id: 2a9fb545-9b05-4d0d-dc42-08de3d649fc2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bFFVNlJ4VVpXOWxsb0NOY3J6ZW1IalZLQUhIaTU2L1F6R3R0WWRYYXVTMUtw?=
 =?utf-8?B?L3EyZDZmUVArR2NVeHllNzAzN0JqKzEzZGw1TEtkRjl1V2JoTXdCVXMyaFVF?=
 =?utf-8?B?eDYveXhKSWk1RkcwMGdjbzdOcHlwT1JnQ205VUZ2aS9BM1pPWjRCQWxlZzJi?=
 =?utf-8?B?RUwrbkFOY2syaTU0bkRXbnFFNStjZWZ2MS9ya0ZsdTYvb092em9zeWVFa0tM?=
 =?utf-8?B?N3pHNzV4RCtoSU1Ec0tMTlFTR3UwSDVvQWpwOWVVOWVmVXJmU3ZCVmJtR3Iw?=
 =?utf-8?B?K0R5NlJJQytGWG8vbStRT2tQZ1cyd2hnZU51UklBWnRicjZJOWJ0VWZGTXh2?=
 =?utf-8?B?RkwrSnQ5a3hHL0p4bi9XNFBuNWdtMmZ3Z2xXQk9FRE1XYTluM1Z4enQ4c3dL?=
 =?utf-8?B?eDNoSXUyMFpFTC94ZTduQ3I5NWcwZGR2aHR5di9LMm5kUy9ZWVVGbHMwTE0v?=
 =?utf-8?B?WVhGQUxyS2VCczIvTTBGYjVRR1kyNFlYT3B6Vm5lM25TcjlDYkM0VlZCa1BZ?=
 =?utf-8?B?U0hCM2c4c0gxd1kzWitoQXYwaEhuUmRpWUxjVkpyRFBsWWpJOFQwcmNBNHNJ?=
 =?utf-8?B?STIzZWJzamo4ZGhRQW9lZnBLQnp4eUhwZitkdWhwR3B5Wm44L1d3V3ZnZGhO?=
 =?utf-8?B?UnZGSU05ZEJJKzJrcm5EUkNTamtmdkhYL2NtKzl3d29sTmRjZktaUnUyNG9s?=
 =?utf-8?B?dWYySEwrb2dLV2dzNGxCdWpTKytYUHRiSVNibWpWQzNzZWxkLzZ4V2tDeXp3?=
 =?utf-8?B?SW14anJZYTQrQ0o1TXJ6N1dkM0Rpc0FOTTE0RFI0U3NEVXd0QVNDcW1qZE1p?=
 =?utf-8?B?eW1OSXdtRDE1UmJKM2Y0L2lRL2FwYWZGbjVGVDlBc2hSeGM2TldNdWRUSGNx?=
 =?utf-8?B?MUI5NGZsSlNrZmJmM2lTMnN5QzhQR0tSNDRDSTFWSEF4MmJUbGpEbzF6SlR5?=
 =?utf-8?B?cDZmVkVxMWhWNVozRUJTTGZYMDY0ZDB5ZzVTWUlCeDE5UFdJVHJNVTN1NzIx?=
 =?utf-8?B?L1ZJbUhEK05FTlc3MmJ1ejNCTytNSHNwS040aFl1cHArOFpWcE9BcXUyVSti?=
 =?utf-8?B?cG9NS1FqUW0wU3lhNldDTDRMRUFWUlJ3c0tJWDhGN2NnVllCck8zZXFXSW85?=
 =?utf-8?B?bHIrdXJjSU51MmRPYmlia3hqdTFjTzZqQUs3dzhTZ1lGbitkZFFhSVJhS0Zz?=
 =?utf-8?B?M2NLRUJwMkhVNzVCeExPamExVGExVjVYdjIyYVkyd3lNWFZ2amorUFNiSkJy?=
 =?utf-8?B?d01PM01ZWGFRbFV5M2lLNC9WYU9FQ0w3eHVsV1RuZk1aT2x4eEhiaXVRYzBM?=
 =?utf-8?B?Q09TRmtEY3FRTEZUaVl1TTFIdFVCMUVSK2xYWTlIY0p6N0RqbVliRWFUYmpW?=
 =?utf-8?B?QnF1bUgycFJOTFN0ZTFQNk9KVmhoVzM0djlsSml4YzBXbUM2OElWOHd2bXY4?=
 =?utf-8?B?RG5BR3FaTmZJaVBObUQwdzJLK3NoeCttMUlpQkRWUzJjSzVBU0M1K05VK0Rw?=
 =?utf-8?B?ME1uNDN0a0FlaHNPSWY4MTBPS3lmZ0pIb0NZcmNUU24vbEE2S1c2T05JQjFu?=
 =?utf-8?B?SnNRcWY2MXp5cFBkZzFkUlAwc0VEQUNFTTUxQlRyejRnMHBtOTN4TWR4NE55?=
 =?utf-8?B?VDUxbSs3alozeVVGME9lZWVreHR1djN4Q0ZpOVZBVXNIRWFkNnJKd1BxVzFO?=
 =?utf-8?B?SnVKbjdzQ1NjQVFUelEyL1VyQzgvWkc1MVBsUGtQbTNBLzBoMHlvdHZPSHdy?=
 =?utf-8?B?WkFYRGZMTDRvYVBoTTNvZVMxZFUyMnZudHhKeHpGd3BYdGs5YXNDY1VzWWk4?=
 =?utf-8?B?TkdaT1pHTXNUMWRFMHlsdWkwWkFyRlhadnpNSkpiSm5lbmQzSFh1SFlZbmRr?=
 =?utf-8?B?d0NqakkzZkQyWW90SkhwQUVXN3RXSEJadkZIUkwrb1p4c2ZuUVVySEtzeXpR?=
 =?utf-8?Q?lpoaFMqqtse/QfIadJuS5IdisUiQHNAL?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Si9wMUlFdGZZa205U1VPQ1hmQy9RSkV5a3pBdjJIdUZlTzVNYnMyZnlqc1Fp?=
 =?utf-8?B?cm1nVlhObmIwVXNYSXRDdWxYc3hGQ0JkYitGcC9TaGZPT0lUa1Y4cWNSbGlV?=
 =?utf-8?B?SjRhSkdsZk45Ym11WGxzVVlueWJrZ20yajJvdGRSK3BIU3djb2xkaDZNVjhB?=
 =?utf-8?B?Q2VvT3pacGdleU9kbnl6and0OExUS01rMG40Q3dCMmxuUkppZTJJNTJOMDM4?=
 =?utf-8?B?b0tYVUFpS0lEZmNteVZhMWJGYWxFNHhucWZ0WUlPZUxqOUo2ZTJ2YzVNRlZx?=
 =?utf-8?B?S0hSZnI2YlUxbDAzelEzNWNzNW45WllzdXFLNXlUcVJVMkxhVjBHalRBZ2Q5?=
 =?utf-8?B?bUZvZnlDcTZobko5SmNWZWpTbDNRcW5NNUJaNHZYZjkxaVRmZXU4R0xKU095?=
 =?utf-8?B?allzaXd4UGtFRExkOFE3QnZUeUxRVndaeEtiSUVWaDBJdlVYQ3hOSkVlWjR4?=
 =?utf-8?B?Y2lNVm9NeTU1Q3NMa1c5TmNCTTlEZGtHVEdES2VJdCtQbTB2aEx2N2dZbHcw?=
 =?utf-8?B?RkZrQ3kyTm1qbWkrY1JYTnFJME5zeXRMdVE5UXZDbkZKaGVSYjk2YTdLY01N?=
 =?utf-8?B?MDU4bTVCakZvOTB2NEFhZCtvd2lYYjJaZzdWYmxMTWplSmJMd29Zd2w4aUwr?=
 =?utf-8?B?bUVhbmZYOERNQ2Z4dkljYU84WFl1MEJMTlNHNjZaeWhoVndMbDV2TDNzSm5G?=
 =?utf-8?B?M2V5c1hjZXY1c0hXcnB2VE9uUm9UZ3JSTmE5b3AzdEZRcFVyNkFzRWxpRGFy?=
 =?utf-8?B?UjZJalpsOTZRUGRxNFBrNlZKeFNSeVNDUVlGeitseXl3ZHlpeDBMeFhQclg5?=
 =?utf-8?B?TFhRZlBqTmhZVFdPZTdRa0RUNW4wRFJUdnpvL2R3c2wxa1cwV09NVTJ6ZStH?=
 =?utf-8?B?UHEwb3Y1NDh4Si9nRmlnaDgvMnovemk0MFROVTRzNHRjK29nTkhaOWxEeUJT?=
 =?utf-8?B?VUtrdWxjblFxRWZFNTRoL2JNRWJ1WTVwOGhnbjg5NlM1Q3Z2UFNiQjA0NXBN?=
 =?utf-8?B?NUFQazNDM1NYODBPaVY5akwyNzZZbWJoNFRNZml0RlNDdEptL2FvUC9QdmpH?=
 =?utf-8?B?V1JXY0gwRGVsRkVxenhENGV2TDV5d2ZxYnFYaWRtZWFmZlE3TmV3Qm1jRk50?=
 =?utf-8?B?Ui82YVlDWmtiYWpTQXFkVGpoNFVGK21MQ09mWENsbUozTlozYnhlNEw5ZHNJ?=
 =?utf-8?B?R1lZeXVPKzBtV09RNjB2VkMrcEptSmJ0UVlIWnN5bHBvVzhud0I3dmovMnlr?=
 =?utf-8?B?QzVRUXVqYzJvM09wQ1VORldhQXNrQjg5NnhpMmJ6eGxvc2VkenVXVEZwb0Mv?=
 =?utf-8?B?a2ZNSGJWZ3hUdzQydUNyclkwYXpadlZJdWltQUxkak81Nm1RZmlUdDY1Ry8x?=
 =?utf-8?B?SWgxUjU5ZWM4QWNPV283YlZ0dGxTNFJVRm90eHZtRStNMGFpOE5qOVJsU1Jz?=
 =?utf-8?B?b2hVc25IdkJnUmlSUVhrcFlVdnVlUFdCY2JXL3dXK28zaTV6VTIxejJLa3dX?=
 =?utf-8?B?OFY1azJzM2lSbjFTWlJvZVJVWDBYTHlPdkpkb2p5bU9YelU1R0R6bDI1NklD?=
 =?utf-8?B?Qlg0Q0phWExFWmE0YWptRUNKbTNQZEJobmk4cWE2OEhmS0hSclEzd1RkOElU?=
 =?utf-8?B?emVobmR6WEYyQlF1QXFjZWFmT2tyWG1YLzVjWnJjYW1SbysyN0FuRk5vb2xI?=
 =?utf-8?B?Y2MvV3J0aklKRlZBZ2RlN0RlN3N2YTBEK0xGUm0zTmpqYzBZdXkrYk9NRkNU?=
 =?utf-8?B?TDRTM09wKzZJeFgzeElsU0tLN2thYkVLNEY4RU1nUnp1K1NTTEZIWnRpZ0V6?=
 =?utf-8?B?dy9takdZQUtSN2VBOG56aGRSU3RwdHFKL3lsQytoQzdmN1RDekZOMjRpL2V0?=
 =?utf-8?B?dmFsOE1CdWoxYVVqRUhad3dya2hWU0ZwblcwckI3U205Z1RKbzBQYTYyVm1Q?=
 =?utf-8?B?SHVnZzJSdnI1Tk1XWUxmN1VrUkwyeDQ5THZveHRMT2dNbTF3dkR2bGFnbDF5?=
 =?utf-8?B?SForRzg4aEx4WXR0bzFpS3oxb1Z6WFNETGFhZEltQ3J6eUpsZ0NaZXNhbWh4?=
 =?utf-8?B?azEvQ3RScVNVbm5oZEl5MUtkTHd2TlJiQzM4bUNqRDRtV3FHUmhIYzBxS04r?=
 =?utf-8?B?V2hRNnhtNHhqTWk2WUVsYXNCd1RWUVhwWDg4WTZndTFHalFBRWhGVW9DNW15?=
 =?utf-8?B?Wnc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2a9fb545-9b05-4d0d-dc42-08de3d649fc2
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2025 12:05:52.1082
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: JrRbD0DkWDLdiiLjZUGuSVeQ68XNQfCvBZ0n24UnOe2VEmCc5XalfFGY9g1jrX16EInPS80B1gpsCWXQCj8SLp8FU7HogS+BHLxNrecLNVk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR03MB11100



On 17.12.25 09:56, Jan Beulich wrote:
> On 17.12.2025 00:13, Grygorii Strashko wrote:
>> --- a/xen/arch/x86/include/asm/mm.h
>> +++ b/xen/arch/x86/include/asm/mm.h
>> @@ -619,8 +619,16 @@ void __iomem *ioremap_wc(paddr_t pa, size_t len);
>>   
>>   extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int pxm);
>>   
>> -unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bits);
>> -#define domain_clamp_alloc_bitsize(d, bits) domain_clamp_alloc_bitsize(d, bits)
>> +#ifdef CONFIG_PV32
>> +#define domain_clamp_alloc_bitsize(d, bits) ({                                 \
>> +    struct domain *_d = (d);                                                   \
> 
> This imo wants to be pointer-to-const. Question is whether then I'm upsetting you
> again, Andrew?
> 
>> +    ((_d &&                                                                    \
>> +      _d->arch.physaddr_bitsize)                                               \
>> +         ? min_t(unsigned int, _d->arch.physaddr_bitsize, bits)                \
>> +         : bits);                                                              \
> 
> This imo wants to look more like
> 
>      ((_d && _d->arch.physaddr_bitsize)                      \
>       ? min_t(unsigned int, _d->arch.physaddr_bitsize, bits) \
>       : (bits));                                             \
> 
> The parenthesization of the latter use of "bits" is a must.
> 

I'm ok with above adjustments, thank you.

> With the adjustments (happy to carry out while committing, so long as there's
> agreement):
> Reviewed-by: Jan Beulich <jbeulich@suse.com>



> Albeit, as indicated before, I'm not quite happy with the use of min_t(). Maybe
> another macro-local variable _bits should be introduced?


-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Dec 17 12:17:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 12:17:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188784.1509860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVqTR-0007Vx-Tv; Wed, 17 Dec 2025 12:17:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188784.1509860; Wed, 17 Dec 2025 12:17:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVqTR-0007Vq-Qx; Wed, 17 Dec 2025 12:17:45 +0000
Received: by outflank-mailman (input) for mailman id 1188784;
 Wed, 17 Dec 2025 12:17:44 +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 <SRS0=RHBr=6X=gmail.com=groeck7@srs-se1.protection.inumbo.net>)
 id 1vVqTQ-0007UT-BP
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 12:17:44 +0000
Received: from mail-dl1-x1236.google.com (mail-dl1-x1236.google.com
 [2607:f8b0:4864:20::1236])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 626ad0e3-db42-11f0-b15b-2bf370ae4941;
 Wed, 17 Dec 2025 13:17:42 +0100 (CET)
Received: by mail-dl1-x1236.google.com with SMTP id
 a92af1059eb24-11b6bc976d6so746741c88.0
 for <xen-devel@lists.xenproject.org>; Wed, 17 Dec 2025 04:17:42 -0800 (PST)
Received: from server.roeck-us.net ([2600:1700:e321:62f0:da43:aeff:fecc:bfd5])
 by smtp.gmail.com with ESMTPSA id
 a92af1059eb24-11f2e30b799sm60713771c88.17.2025.12.17.04.17.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 17 Dec 2025 04:17:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 626ad0e3-db42-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765973861; x=1766578661; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:sender:from:to:cc:subject:date:message-id
         :reply-to;
        bh=TA4hyyTWjoyEecRU+tFTEv8TY8OLq5jN3IBQEP1dw+M=;
        b=lpVaBD/n4pV1W3OTaFDxaCw6aK1rMQfd4QptFw8DQDmKHC/d/qeHaC6kDic8gPYT0j
         Sy+SYbzPKJgkBqsBDoNczvKIRBi0nFtuib+h9eqhOpeXDlvjxwAaq0KAbuL3AtTkg/G+
         CPoUlYrN8cl0QwAi9M6GrtNxdz5+lKqmWlj7KpZGJLBjBlgXqg8vJC5VWSzeNH4MoySK
         IEHnC1ZI5YTZXdhiBp7o++uRUynypxKdLKdd+5vRdC5hHvRBxMCiYtRDp65Zd2Gxwv+D
         0APgfY2sb+G1khrA/TBadQXeRqyeHY7L7fH4qEcFoTMZDgUoLIdbGqtKdlo/M6X6lUxn
         za9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765973861; x=1766578661;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:sender:x-gm-gg:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=TA4hyyTWjoyEecRU+tFTEv8TY8OLq5jN3IBQEP1dw+M=;
        b=QMMAcag/tjgsavb+dfKWqRmVM3lWUQLZkRj+0LlfuqnqSgTCKG+qGNgCDuRKFuu3V0
         uppVrgkd6+UwIIEUOemtVPzUPx8ugRYRCAJBDFt8Boy78xbVrHo/XQ37YM0IkJ+cyudE
         kku2zX7xb/q8xvdTPPpMZtaEC/uC7KgtjaHnIo9N5vHZL3uYAJAv33v+BpAio3A5clks
         Z8t9hrSvru2NtcPGpQGHYQ2CIb1AZV6KBOpaCcYwV3mWQBEWDBi1AYE+II/I6MzkfzqJ
         +cS0gMY7HSU980vQ++nVYWy7Rueef4ZOwtjWQ7gWnkwwkduljLwlI5k6PmhHb3oR2rkH
         RQPQ==
X-Forwarded-Encrypted: i=1; AJvYcCWJuhp5YvwEBjriOjELMdCwkEfxC+UIJKxMBBxtXXlGpwthVv79KpYJpBrorrY6MkfaV5bA2pTanaM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwjOgAtIIFOSr8dtgg3Fgqu+xxa1lYxkeVCC6y72ftdBTTaD3+W
	jzeYGhVUhTR1gj9yjTdCR7PikGcq+PiiLfieo5/Q4K/N5COJoAbii0mN
X-Gm-Gg: AY/fxX62FLKOGPo741X8G7bo0f2EfD1fPmYhOwPwN5d6F+df0H7cNGfoihLGNYVfY30
	LlH4Fa2vEEwpwl+V6CzutMCiyeiglw/jWYQwNChwB2OFLUJXw4c0PYUjVPGVlopBr4iRHDT8Ns7
	Rf3xdGh7GlLdHk5b/tTthN+9AtE+H36rKByl1vLN+aL7KI5SJ8YzJcOe7crMS+FnikLeGY/rFcd
	wYRB9HLpl16DGUUxP0UtRoweA37LzC5bfrAWYNKITXGA3c/ur+Vz49H5LcPt/HtQV925IkzwETx
	NpiF7w07cBbApoYooK0HQwZO6MMuDx4Hbmx9bh6GbUvq4dmDY92V6COq0Lr29nlvAwNlkSZJTq8
	HncMKlePoeyhcFK8ggQvCJ/aXS3WKnFr9b+/mvvrglUR8BT10KN8moiwNAtfpI4UOavR4Dnc1FO
	nGV+OBzvPYU5e4MMdtJ5bfU3rx
X-Google-Smtp-Source: AGHT+IHtTckxV0BrLKUtwEMMlG/KT0X6JCzQ/eEGNn1nvrPgi11fSB7RRA3IhgmdXndE9lBsM2aS9w==
X-Received: by 2002:a05:7022:e806:b0:119:e569:f86a with SMTP id a92af1059eb24-11f34c29cefmr11289687c88.7.1765973860378;
        Wed, 17 Dec 2025 04:17:40 -0800 (PST)
Sender: Guenter Roeck <groeck7@gmail.com>
Date: Wed, 17 Dec 2025 04:17:38 -0800
From: Guenter Roeck <linux@roeck-us.net>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Robin Murphy <robin.murphy@arm.com>,
	Russell King <linux@armlinux.org.uk>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Matt Turner <mattst88@gmail.com>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	Helge Deller <deller@gmx.de>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Geoff Levand <geoff@infradead.org>,
	"David S. Miller" <davem@davemloft.net>,
	Andreas Larsson <andreas@gaisler.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>, iommu@lists.linux.dev,
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	xen-devel@lists.xenproject.org, linux-alpha@vger.kernel.org,
	linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
	Jason Gunthorpe <jgg@ziepe.ca>, Jason Gunthorpe <jgg@nvidia.com>
Subject: Re: [PATCH v5 09/14] parisc: Convert DMA map_page to map_phys
 interface [qemu test failure]
Message-ID: <b184f1bf-96dc-4546-8512-9cba5ecb58f7@roeck-us.net>
References: <20251015-remove-map-page-v5-0-3bbfe3a25cdf@kernel.org>
 <20251015-remove-map-page-v5-9-3bbfe3a25cdf@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20251015-remove-map-page-v5-9-3bbfe3a25cdf@kernel.org>

Hi,

On Wed, Oct 15, 2025 at 12:12:55PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
> 
> Perform mechanical conversion from .map_page to .map_phys callback.
> 
> Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>

This patch causes all my 32-bit parisc qemu tests with C3700 machine
to fail. Network interface tests fail, and all boot attempts from
any kind of hard drive (scsi, usb) fail with this patch in the tree.

Guenter

---
# bad: [8f0b4cce4481fb22653697cced8d0d04027cb1e8] Linux 6.19-rc1
# good: [7d0a66e4bb9081d75c82ec4957c50034cb0ea449] Linux 6.18
git bisect start 'HEAD' 'v6.18'
# good: [6dfafbd0299a60bfb5d5e277fdf100037c7ded07] Merge tag 'drm-next-2025-12-03' of https://gitlab.freedesktop.org/drm/kernel
git bisect good 6dfafbd0299a60bfb5d5e277fdf100037c7ded07
# good: [09cab48db950b6fb8c114314a20c0fd5a80cf990] Merge tag 'soc-arm-6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
git bisect good 09cab48db950b6fb8c114314a20c0fd5a80cf990
# bad: [701d7d782d98242a64cdeed90750f88ff733bc39] Merge tag 'spdx-6.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/spdx
git bisect bad 701d7d782d98242a64cdeed90750f88ff733bc39
# good: [66a1025f7f0bc00404ec6357af68815c70dadae2] Merge tag 'soc-newsoc-6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
git bisect good 66a1025f7f0bc00404ec6357af68815c70dadae2
# good: [c84d574698bad2c02aad506dfe712f83cbe3b771] Merge tag 'modules-6.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/modules/linux
git bisect good c84d574698bad2c02aad506dfe712f83cbe3b771
# bad: [b0319c4642638bad4b36974055b1c0894b2c7aa9] Merge tag 'nfsd-6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux
git bisect bad b0319c4642638bad4b36974055b1c0894b2c7aa9
# bad: [e637b37a520513a04d00f4add07ec25f357e6c6d] Merge tag 'rproc-v6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux
git bisect bad e637b37a520513a04d00f4add07ec25f357e6c6d
# bad: [56a1a04dc9bf252641c622aad525894dadc61a07] Merge tag 'libnvdimm-for-6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
git bisect bad 56a1a04dc9bf252641c622aad525894dadc61a07
# good: [d0cf6512bbcf77afb6102f886fcd7fd48b7ae043] rust: bitmap: add BitmapVec::new_inline()
git bisect good d0cf6512bbcf77afb6102f886fcd7fd48b7ae043
# bad: [936a9f0cb16b0646143f8e05afab458adc51d0a0] xen: swiotlb: Convert mapping routine to rely on physical address
git bisect bad 936a9f0cb16b0646143f8e05afab458adc51d0a0
# good: [14cb413af00c5d3950d1a339dd2b6f01ce313fce] dma-mapping: remove unused mapping resource callbacks
git bisect good 14cb413af00c5d3950d1a339dd2b6f01ce313fce
# bad: [96ddf2ef58ec070afa8275f371b619462cd8fb2c] parisc: Convert DMA map_page to map_phys interface
git bisect bad 96ddf2ef58ec070afa8275f371b619462cd8fb2c
# good: [e4e3fff66a57a7aee048e0737a16874aeaffe9f4] MIPS/jazzdma: Provide physical address directly
git bisect good e4e3fff66a57a7aee048e0737a16874aeaffe9f4
# first bad commit: [96ddf2ef58ec070afa8275f371b619462cd8fb2c] parisc: Convert DMA map_page to map_phys interface


From xen-devel-bounces@lists.xenproject.org Wed Dec 17 15:22:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 15:22:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188842.1509870 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVtMN-0004eJ-Dt; Wed, 17 Dec 2025 15:22:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188842.1509870; Wed, 17 Dec 2025 15:22:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVtMN-0004eC-Ar; Wed, 17 Dec 2025 15:22:39 +0000
Received: by outflank-mailman (input) for mailman id 1188842;
 Wed, 17 Dec 2025 15:22:37 +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
 <SRS0=JtcV=6X=bounce.vates.tech=bounce-md_30504962.6942cab9.v1-f977cb9039de4ecaaea512ea9f1a06ad@srs-se1.protection.inumbo.net>)
 id 1vVtML-0004dq-EC
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 15:22:37 +0000
Received: from mail186-20.suw21.mandrillapp.com
 (mail186-20.suw21.mandrillapp.com [198.2.186.20])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 365c78c8-db5c-11f0-b15b-2bf370ae4941;
 Wed, 17 Dec 2025 16:22:35 +0100 (CET)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-20.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4dWcx54jtfzFCWljR
 for <xen-devel@lists.xenproject.org>; Wed, 17 Dec 2025 15:22:33 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f977cb9039de4ecaaea512ea9f1a06ad; Wed, 17 Dec 2025 15:22:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 365c78c8-db5c-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1765984953; x=1766254953;
	bh=g4SX8fwM2YkDIv4TQg3YtBTOuJ7xDMTlgexSpduwx3E=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=NMcrUnkvq4myMmPFpGpX8hNIjBJGj5QdkiyaoC64iiEuOB14aJqy6vj5H5vVL/YTD
	 Xdhme9vVlCtmm7797RYj//Y8wWfBxE17yz5NLric4YbeUMoSggtENQfq898t+PE+7V
	 zX4uR6JtbR339MqeuLxxCVC1tOtoGk9Tr53GTo8//EuDJEzl6Hc9G3t3mtrEQ16Bac
	 8F1kQcX0z2UH0q30Jq7/V2+yeAChHeeDCTLh205MWclan9Q9CO6oFWRMd7ZMgpzzk2
	 H0YKv/YStrQAdODKxLIX7gE4+OnDedZbNUnTkTjwMvVIsGGthFNHVPIUx88R4i+sAP
	 z3QSsVI/Az/Jg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1765984953; x=1766245453; i=anthony.perard@vates.tech;
	bh=g4SX8fwM2YkDIv4TQg3YtBTOuJ7xDMTlgexSpduwx3E=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=KbCU1KeQiGojSfnn4TzjX5Du6H9AryDp1UoogLRZp1fjdNNzcc3lo/GhJMgyA/Lnh
	 bS/y0VfPWelFi6HMRSy8oM34SdfeU4wNc4pz+86usGxBp+H+8UiWLzSQofFnRO01gk
	 hMeyFgwxYSJ+jOVrvCyZwLHTxz+5pXEDbds+Gy9um5Sc1aPsj1NgRSXz2iTrdx1/zX
	 pz092YaEds009YjDk0pGPRpDuOHMBJRX4RZcEN/z2iKbGrBS60DmDTy3/O7kOyTp5c
	 Mbpx1Egc6ZdS5szD4Wjix7s4Fm4k96BAG1eY5HjPzNzfuGDu2NpbZJdUL53orbHlm7
	 r5K0rXPfr3kKg==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[RESEND=20PATCH=20v2=202/3]=20hvmloader:=20Update=20to=20SMBIOS=202.6?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1765984952731
To: "Teddy Astie" <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <aULKuBann7bzQtBS@l14>
References: <cover.1756460430.git.teddy.astie@vates.tech> <57c674cc364d3b8f4c6d03533b9e2b45728d2c19.1756460430.git.teddy.astie@vates.tech>
In-Reply-To: <57c674cc364d3b8f4c6d03533b9e2b45728d2c19.1756460430.git.teddy.astie@vates.tech>
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.f977cb9039de4ecaaea512ea9f1a06ad?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251217:md
Date: Wed, 17 Dec 2025 15:22:33 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Aug 29, 2025 at 09:58:16AM +0000, Teddy Astie wrote:
> Currently, hvmloader uses SMBIOS 2.4, however, when using OVMF, the
> SMBIOS is patched to 2.8, which has clarified the UUID format (as GUID).
> 
> In Linux, if the SMBIOS version is >= 2.6, the GUID format is used, else
> (undefined as per SMBIOS spec), big endian is used (used by Xen). Therefore,
> you have a endian mismatch causing the UUIDs to mismatch in the guest.
> 
> $ cat /sys/hypervisor/uuid
> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
> $ cat /sys/devices/virtual/dmi/id/product_uuid
> 3fe665e8-303d-0b4f-83e0-8fdfc1e30eb7
> $ cat /sys/devices/virtual/dmi/id/product_serial
> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
> 
> This patch updates the SMBIOS version from 2.4 to 2.6 and does the appropriate
> modifications of the table. This effectively fix this endianness mismatch with
> OVMF; while the UUID displayed by Linux is still the same for SeaBIOS.

Just curious, why change hvmloader to generate an SMBIOS v2.6 table
when OVMF later say it's v2.8 ? Why do we change hvmloader when the
problem is OVMF making change to the table before giving it to the OS?

As far as I can tell, OVMF doesn't take into account the version of the
SMBIOS table provided by hvmloader and just use the default set at build
time. This can be changed with the PCD
gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion, it's currently set to
v2.8. The main used of the version number by OVMF seems to be to check
the max sizes.

Before making any changes in hvmloader, we should first fix OvmfXen to
take into account the version of the SMBIOS table that is received.
Otherwise, we just add more tech dept. We might one day want to use a
newer version of SMBIOS, OVMF should be ready by then.


Now, for the change of SMBIOS version. I think that starting to provide
a v2.6 is a good move, but we should list the correct reason for doing
so. OVMF can mostly stay out of the picture here, and be fix separately.
One main issue we can state is that Linux and Windows interpret the UUID
in the SMBIOS differently, when the version is v2.4. I've booted Windows
with SeaBIOS and read the UUID from the SMBIOS table with

    wmic csproduct get uuid

and the UUID return is read according to the new definition propose in
SMBIOS v2.6, even if the table is said to be v2.4, so the UUID is
different from the one set by the toolstack. Moving to v2.6 would indeed
fix this discrepancy.


Next, we are going to want a way to fallback to v2.4 when a guest needs
to observe no changes across reboot. `xl` already have
`smbios_firmware=` which is passthrough `hvmloader` via xenstore entry
`hvmloader/smbios/{address,length}`, but that interface would allow to
only replace a structure (like replacing the type 1 structure) and
doesn't allow to change the version. (And that would duplicate SMBIOS
table generation between hvmloader and the toolstack, which isn't ideal.)
So, will need some changes to `xl`, `libxl`, and `hvmloader`.


> Fixes: c683914ef913 ("Add code to generate SMBIOS tables to hvmloader.")
> (SMBIOS versions before 2.6 has a ill-defined UUID definition)

This space in a commit description is usually reserved for tags and
sometime comment of change made to a patch while
committing/cherry-picking. Comment about a previous commit can be before
these tags, like stating that "commit a1b2c3 made some unhelpful
changes and still have the Fixes:a1b2c3 (...) tag.

> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>

Thanks,

-- 

--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Dec 17 15:37:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 15:37:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188856.1509887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVtb0-0006O4-UQ; Wed, 17 Dec 2025 15:37:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188856.1509887; Wed, 17 Dec 2025 15:37:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVtb0-0006N0-NS; Wed, 17 Dec 2025 15:37:46 +0000
Received: by outflank-mailman (input) for mailman id 1188856;
 Wed, 17 Dec 2025 15:37:45 +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
 <SRS0=ddEZ=6X=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVtaz-0006KO-E8
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 15:37:45 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 54db21ce-db5e-11f0-b15b-2bf370ae4941;
 Wed, 17 Dec 2025 16:37:44 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-b79e7112398so1147742666b.3
 for <xen-devel@lists.xenproject.org>; Wed, 17 Dec 2025 07:37:44 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7ff90481edsm468504566b.34.2025.12.17.07.37.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 17 Dec 2025 07:37:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54db21ce-db5e-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765985864; x=1766590664; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=HckJ8z4ErRqks7W4b2m+C2DmrfPMINuN05vvWMpfNgg=;
        b=SWecz9mr6av526T6wmSx0z3HRtBXF9OFlkvOVDboNqqBdIL2Kl9JobzsUCmc3Ueyns
         iWKNJdoifK67s+xgB2Jpdtl9kwICL0Ip0egIWTWshbjbacAZ92UJa+bE7WTl4LAixrHU
         0GsKZN4/nHodz3TK9wu/7QU9ZX4EAhI1KDv6IztgE/3jpU4iuGxiW6aZglMVTDDfkKGE
         L1WSZ1hJPZUcH18u3xrHipeFYPxT5lmkbfVd4acbV9weewe0/Z0eMP5gewYJPVRJ2+b9
         iEVLxdo9Hzqv7FGzWFb564yByGYoA00fMfPyKm/2Q50nW1feXlkEFG1kW9BTNs23l7B2
         EOfA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765985864; x=1766590664;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=HckJ8z4ErRqks7W4b2m+C2DmrfPMINuN05vvWMpfNgg=;
        b=vh8z/NZAPR+tUWe++gMdxy6BCrpkSn65pYeoIY5jxZ0rJm0S/uyTuAyke/e5pxiShj
         pgHpbh0FJnalzL0S/QGmH35lNmODI5wpI4vr0j6CyvHD5QBMS+9Um+EcZX0TT+m65t8v
         vTZ2PP3yp7GeTTE4NlRT7EG0f/mvl+qGoxRqknwrCRyPNWJ1Rd2uAokWS/KOpm2OvBNU
         e2Ojw20i65kRS9uH9MQARIsVCn2msSnV8OqtW29WsbZk48RpJN3Cpx6G6velK4ef2PqI
         8wdOnnj2F1NZHsZ+ZF8G+VHFq67q2iW4lUZ3vR0SR3hJWUV7o2ucShG264gb79ONAHJJ
         BMKw==
X-Forwarded-Encrypted: i=1; AJvYcCXCYJ/+a1BGyGlCi9J6BsPW3pww33ORBb8n+/n1H8GXRwN994tLyCoMnb6E1i6fitKgYugf5MV/x9E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwXql3m+DSQGm6C0CAfc2TBVuvcnMc5plsSZslsKtevsyf4hjNF
	t9zSjPDQzHz0qUhSR9AWFN5aQ6wMQiu2ZPofgE5lEpsdeI4hXUBrVLdu
X-Gm-Gg: AY/fxX5APdxmH1n7sIiGT8n1vaY33dbbwAOtz1FZANkLo0D8mx9y5bI/zbHdCPsauwv
	DGfqOiLtx8UnqQOMu6Qs07j4y8fCZFedbhmO011R70ucpSvEnuhBTUU4Y4ZErhEOFAWvCMSpUVF
	WNacyI9uuppADp5x3TAlXFnUoeHqFNuh8slq45mFCrm4dtRtaf+7royGg+705+jAZn039hHC06J
	VRV24NP7yTFNgME2RAHgDIYQOQWa8mNVvFwvRdy2Uv+pTKFicgHmdty+vRFAlcF6+GdeHk7wvAn
	OdfSbbY3hAf6Od4CVo7arqn561iJx8ENWrb87t+bxUkdgBW+vlQ+iCjTHT0D/OnaE8BVFtHAAU/
	hAmYh7HGdhxGC0KHINiN38/+QknIa/WbuGQ+tN0wcd6YpKpt303U10V7vBj107p2vadvKnv1BkU
	nxWbjmTMTpuvHTDX8fSiw7a2n8p4PygE9II6XBVWapzwOLx56/yqicN/5z3ARcsQZV3iRremoa3
	kc=
X-Google-Smtp-Source: AGHT+IGSdeISRy+HvZiudkm+cKzuNTH3tuGa1XGE6FDSUUUQhwJDL9iagHVO03MD4D3zaU79FF2IUg==
X-Received: by 2002:a17:907:db03:b0:b73:1634:6d71 with SMTP id a640c23a62f3a-b7d23693326mr1889704866b.26.1765985863641;
        Wed, 17 Dec 2025 07:37:43 -0800 (PST)
Message-ID: <7bec6dab-9776-4f94-b121-0be696be78d8@gmail.com>
Date: Wed, 17 Dec 2025 16:37:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen: move alloc/free_vcpu_struct() to common code
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
Cc: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>
References: <5f75053750a9fca2b5fecf1dcf6f097b25e8f27f.1765967934.git.oleksii.kurochko@gmail.com>
 <8aee5daf-be3b-4f10-aa38-b8c1504ba0b4@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <8aee5daf-be3b-4f10-aa38-b8c1504ba0b4@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/17/25 12:46 PM, Andrew Cooper wrote:
> On 17/12/2025 10:53 am, Oleksii Kurochko wrote:
>> alloc_vcpu_struct() and free_vcpu_struct() contain little
>> architecture-specific logic and are suitable for sharing across
>> architectures. Move both helpers to common code.
>>
>> To support the remaining architectural differences, introduce
>> arch_vcpu_struct_memflags(), allowing architectures to override the
>> memory flags passed to alloc_xenheap_pages(). This is currently needed
>> by x86, which may require MEMF_bits(32) for HVM guests using shadow
>> paging.
> You lost the comment explaining the restriction.  This needs adding back.
>
>> Move the definition of MAX_PAGES_PER_VCPU to xen/domain.h and default
>> it to 1. Retain the ARM64 exception (with CONFIG_NEW_VGIC) where two
>> pages are required due to larger per-IRQ structures.
> CONFIG_NEW_VGIC is still off by default, unsupported, and has had no
> work on it since it's introduction in 2018.
>
> There are a lot of good reasons to enforce struct vcpu being a single
> page allocation, not least because an allocation can fail due to
> fragmentation despite there being enough free RAM.
>
> I would far rather that common code enforced it being page size, and
> NEW_VGIC gets deleted or adjusted to cope, than to make it this easy for
> architectures to shoot themselves in the foot.

I am not sure that everyone would agree to simply drop|NEW_VGIC|.

Based on the commit message ...:
     ARM: new VGIC: Allocate two pages for struct vcpu
     
     At the moment we allocate exactly one page for struct vcpu on ARM, also
     have a check in place to prevent it growing beyond 4KB.
     As the struct includes the state of all 32 private (per-VCPU) interrupts,
     we are at 3840 bytes on arm64 at the moment already. Growing the per-IRQ
     VGIC structure even slightly makes the VCPU quickly exceed the 4K limit.
     The new VGIC will need more space per virtual IRQ. I spent a few hours
     trying to trim this down, but couldn't get it below 4KB, even with the
     nasty hacks piling up to save some bytes here and there.
     It turns out that beyond efficiency, maybe, there is no real technical
     reason this struct has to fit in one page, so lifting the limit to two
     pages seems like the most pragmatic solution.
     Restrict the compilation error to compiling with the new VGIC and for
     ARM64 only.

... Given this, I initially thought it would be difficult to adjust.
However, it seems there might be enough to do the following ...:
@@ -238,7 +238,7 @@ struct arch_vcpu
      union gic_state_data gic;
      uint64_t lr_mask;
  
-    struct vgic_cpu vgic;
+    struct vgic_cpu *vgic;
  
      /* Timer registers  */
      register_t cntkctl;

... with|vgic| allocated in|vcpu_vgic_init()| and freed in|vcpu_vgic_free()|.

I only checked whether this is sufficient to build with ...:
    #if defined(CONFIG_NEW_VGIC) && defined(CONFIG_ARM_64)
    -#define MAX_PAGES_PER_VCPU  2
    +#define MAX_PAGES_PER_VCPU  1
    #endif
   
   $ grep -nE "^(CONFIG_NEW_VGIC|CONFIG_ARM_64)=y" xen/.config
   13:CONFIG_ARM_64=y
   28:CONFIG_NEW_VGIC=y
... and it seems to work.

The question to the Arm maintainers is whether you would be fine with such a
solution.

~ Oleksii


>
>> The ARM implementation of alloc/free_vcpu_struct() is removed and
>> replaced by the common version. Stub implementations are also dropped
>> from PPC and RISC-V.
>>
>> Finally, make alloc_vcpu_struct() and free_vcpu_struct() static to
>> common/domain.c, as they are no longer used outside common code.
>>
>> No functional changes.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>


From xen-devel-bounces@lists.xenproject.org Wed Dec 17 15:37:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 15:37:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188855.1509879 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVtb0-0006Kg-Jb; Wed, 17 Dec 2025 15:37:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188855.1509879; Wed, 17 Dec 2025 15:37:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVtb0-0006KZ-Gf; Wed, 17 Dec 2025 15:37:46 +0000
Received: by outflank-mailman (input) for mailman id 1188855;
 Wed, 17 Dec 2025 15:37:44 +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
 <SRS0=trBu=6X=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vVtay-0006KO-Om
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 15:37:44 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 536c9a00-db5e-11f0-b15b-2bf370ae4941;
 Wed, 17 Dec 2025 16:37:42 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 7EBF6FEC;
 Wed, 17 Dec 2025 07:37:34 -0800 (PST)
Received: from [10.57.47.3] (unknown [10.57.47.3])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 487443F73F;
 Wed, 17 Dec 2025 07:37:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 536c9a00-db5e-11f0-b15b-2bf370ae4941
Message-ID: <6afcb722-80cc-4bb2-a745-d9ad7893f0ae@arm.com>
Date: Wed, 17 Dec 2025 16:37:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 14/14] mm: Add basic tests for lazy_mmu
To: Ryan Roberts <ryan.roberts@arm.com>,
 Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
 Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Anshuman Khandual <anshuman.khandual@arm.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251215150323.2218608-1-kevin.brodsky@arm.com>
 <20251215150323.2218608-15-kevin.brodsky@arm.com>
 <20251216201403.4647a4f9861d3122ee9e90d7@linux-foundation.org>
 <f9550d22-8810-4145-aaa8-48961f6ea35e@arm.com>
 <ca0da7fd-245c-4d52-8f4d-f8fce4717494@arm.com>
From: Kevin Brodsky <kevin.brodsky@arm.com>
Content-Language: en-GB
In-Reply-To: <ca0da7fd-245c-4d52-8f4d-f8fce4717494@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17/12/2025 11:01, Ryan Roberts wrote:
> On 17/12/2025 09:26, Kevin Brodsky wrote:
>> On 17/12/2025 05:14, Andrew Morton wrote:
>>> On Mon, 15 Dec 2025 15:03:23 +0000 Kevin Brodsky <kevin.brodsky@arm.com> wrote:
>>>
>>>> Add basic KUnit tests for the generic aspects of the lazy MMU mode:
>>>> ensure that it appears active when it should, depending on how
>>>> enable/disable and pause/resume pairs are nested.
>>> I needed this for powerpc allmodconfig;
>>>
>>> --- a/arch/powerpc/mm/book3s64/hash_tlb.c~mm-add-basic-tests-for-lazy_mmu-fix
>>> +++ a/arch/powerpc/mm/book3s64/hash_tlb.c
>>> @@ -30,6 +30,7 @@
>>>  #include <trace/events/thp.h>
>>>  
>>>  DEFINE_PER_CPU(struct ppc64_tlb_batch, ppc64_tlb_batch);
>>> +EXPORT_SYMBOL_GPL(ppc64_tlb_batch);
>>>  
>>>  /*
>>>   * A linux PTE was changed and the corresponding hash table entry
>>> @@ -154,6 +155,7 @@ void __flush_tlb_pending(struct ppc64_tl
>>>  		flush_hash_range(i, local);
>>>  	batch->index = 0;
>>>  }
>>> +EXPORT_SYMBOL_GPL(__flush_tlb_pending);
>>>  
>>>  void hash__tlb_flush(struct mmu_gather *tlb)
>>>  {
>>> _
>> Oh indeed I hadn't considered that arch_{enter,leave}_lazy_mmu_mode()
>> refer to those symbols on powerpc... Maybe a bit overkill to export
>> those just for a test module, but I'm not sure there's a good
>> alternative. Forcing LAZY_MMU_MODE_KUNIT_TEST=y is ugly as it would also
>> force KUNIT=y. Alternatively we could depend on !PPC, not pretty either.
> Does EXPORT_SYMBOL_IF_KUNIT() help?

It most certainly would, I didn't know about that one, thanks!

- Kevin


From xen-devel-bounces@lists.xenproject.org Wed Dec 17 15:48:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 15:48:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188885.1509899 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVtl9-0000AN-Ui; Wed, 17 Dec 2025 15:48:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188885.1509899; Wed, 17 Dec 2025 15:48:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVtl9-0000A7-Rz; Wed, 17 Dec 2025 15:48:15 +0000
Received: by outflank-mailman (input) for mailman id 1188885;
 Wed, 17 Dec 2025 15:48:15 +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
 <SRS0=oGgt=6X=gmail.com=ritesh.list@srs-se1.protection.inumbo.net>)
 id 1vVtl9-00009y-1N
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 15:48:15 +0000
Received: from mail-pl1-x632.google.com (mail-pl1-x632.google.com
 [2607:f8b0:4864:20::632])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cb481f73-db5f-11f0-b15b-2bf370ae4941;
 Wed, 17 Dec 2025 16:48:13 +0100 (CET)
Received: by mail-pl1-x632.google.com with SMTP id
 d9443c01a7336-2a1388cdac3so20239905ad.0
 for <xen-devel@lists.xenproject.org>; Wed, 17 Dec 2025 07:48:13 -0800 (PST)
Received: from dw-tp ([171.76.225.126]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-29eea016ef4sm207003795ad.56.2025.12.17.07.47.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 17 Dec 2025 07:48:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cb481f73-db5f-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765986492; x=1766591292; darn=lists.xenproject.org;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:from:to:cc:subject:date:message-id:reply-to;
        bh=k7g6szJSc9qKXraE1vzVnFUR39QDkw3X32snO8YJ7Qo=;
        b=T6IDa2yJLf4MIUrjPA+tKRNlbysG4qHGAVGgpFKL5rGcw30KTZo4efvHzBv43pM6Zw
         pT0sSE493Sh+UUOYik4uPCSs3W/kZWYYGETyZ35pBAclzDcF5aRXu+IgaoW1YCw1AWuF
         mYK60YUCvPGXuWJ2QtYjUjG/v8nQSGpLLmeJunNSkcuZ7hdYnk+VSEq6ePCfe/xNfN3y
         Vw6sVduC6rggVYQE3E70UkOpSfGnfnozOemNhwy5hEYpIx6oJUO9U0zYuxJDLXXeh65/
         dFZ9//F27AwyhktlCMXMwK/4kiC3p425yGLsYHDy5yqBHA2ggIQalM//PVBoi3kvThPL
         NGPA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765986492; x=1766591292;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=k7g6szJSc9qKXraE1vzVnFUR39QDkw3X32snO8YJ7Qo=;
        b=tnHDYIKYe+4Cb1yJyV1PlEKS9CJwszHSkfbIDCAlBP4NpEbE9qEkIRN9Z7k+dob1di
         oelV7yWWsX/MIBl7E0pFAglfOp41vzU41V/D3K2tCv9n3zml8u/aaxGYQn+jFX6ZasV6
         njAgARIs/vTTCU//+D31EFeMa1fi8SM0CHcnOqFjHbnlFRswfroH5O08/CZuaUceicx7
         8ra4qEsNuHoJhUAdqhPRTmZ1PD94Zw84p1b65bEQl18HDnRhQr/y0Ci9Bo/bhHgb0SuG
         UV6Sx4D/7eYBKM7unnECB2LJ0L3KSzBkDKfEARL6MmR3laKtuw2bvELZF940t1gl5yjN
         nJUA==
X-Forwarded-Encrypted: i=1; AJvYcCWWtvRScI4WMhrPlwdRMGV1FrOcS8EFAd5HNhRcUK9W9dfRekYIelzdIoGDRXBfpTBAfuKlxwNrfsQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxbmpiemxaXyBVq2jJ4e31LcEJNvcoKt3Lo8daDmsmh+BU9m4yI
	OqTGiB8ZU0HZ2tCsz29TlrbkX3l3FrpRIT/e/YETO1jT5+y6jEasAmbd
X-Gm-Gg: AY/fxX5F5v++SpNDujZ9HOXBw5V5xD3TdG7EmdzgsVZ5ozfyC8xRUc4VkkSczrX7o52
	Ji9TeVc/wSz7PYVBc4z7wt5vtiGUslnioCveFoNMkafyqoL6Op5PH1RehHLLyziCzwvE8Bg3eQO
	qLGoTcIAPqWbpUo4+jbN9rHvZyxg8QtVn+GJs4MW3aKVXyzWMZgoqXCtsV+B3C043Tni9wLbNSN
	ePPM19UvA2bR/dyaqXbU7+vqTZuRxBw/Britj9NoPzU/AN/ibqvsa41kEz1r6szcGJNr+nvtmoM
	gP/VbnJv7PEcCz8Vxn0pD/CLDBuXPYSoVUvtkJfKfI+raHvqwSGuGEu7WiMoTGfHaV7MmScI2nG
	JENlAlSiLXdfWJUr9sRqaBIdlForyFsnbKFdpe+vbCdVR3gOqmiyHYAwariLQJ5pupBh3DIEkXL
	NrrBCYHgLCiYSZnegb
X-Google-Smtp-Source: AGHT+IGzrC8xHoSohluxl3TB8gicGFdkGjx48ZJyAE+fsjdi1rZJJgtl3YetY/wOPW+z2c4mkNcmfA==
X-Received: by 2002:a17:902:cf03:b0:2a0:bb05:df4f with SMTP id d9443c01a7336-2a0bb05e314mr123346515ad.44.1765986491997;
        Wed, 17 Dec 2025 07:48:11 -0800 (PST)
From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: Ryan Roberts <ryan.roberts@arm.com>, Kevin Brodsky <kevin.brodsky@arm.com>, Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, 
	Alexander Gordeev <agordeev@linux.ibm.com>, Andreas Larsson <andreas@gaisler.com>, 
	Anshuman Khandual <anshuman.khandual@arm.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Borislav Petkov <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>, 
	Christophe Leroy <christophe.leroy@csgroup.eu>, Dave Hansen <dave.hansen@linux.intel.com>, 
	David Hildenbrand <david@redhat.com>, "David S. Miller" <davem@davemloft.net>, 
	David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>, 
	Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>, 
	"Liam R. Howlett" <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>, 
	Madhavan Srinivasan <maddy@linux.ibm.com>, Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>, 
	Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>, 
	Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan <surenb@google.com>, 
	Thomas Gleixner <tglx@linutronix.de>, Venkat Rao Bagalkote <venkat88@linux.ibm.com>, 
	Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>, 
	linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, 
	sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
Subject: Re: [PATCH v6 14/14] mm: Add basic tests for lazy_mmu
In-Reply-To: <ca0da7fd-245c-4d52-8f4d-f8fce4717494@arm.com>
Date: Wed, 17 Dec 2025 21:16:14 +0530
Message-ID: <87a4zhkt6h.ritesh.list@gmail.com>
References: <20251215150323.2218608-1-kevin.brodsky@arm.com> <20251215150323.2218608-15-kevin.brodsky@arm.com> <20251216201403.4647a4f9861d3122ee9e90d7@linux-foundation.org> <f9550d22-8810-4145-aaa8-48961f6ea35e@arm.com> <ca0da7fd-245c-4d52-8f4d-f8fce4717494@arm.com>
MIME-Version: 1.0
Content-Type: text/plain

Ryan Roberts <ryan.roberts@arm.com> writes:

> On 17/12/2025 09:26, Kevin Brodsky wrote:
>> On 17/12/2025 05:14, Andrew Morton wrote:
>>> On Mon, 15 Dec 2025 15:03:23 +0000 Kevin Brodsky <kevin.brodsky@arm.com> wrote:
>>>
>>>> Add basic KUnit tests for the generic aspects of the lazy MMU mode:
>>>> ensure that it appears active when it should, depending on how
>>>> enable/disable and pause/resume pairs are nested.
>>> I needed this for powerpc allmodconfig;
>>>
>>> --- a/arch/powerpc/mm/book3s64/hash_tlb.c~mm-add-basic-tests-for-lazy_mmu-fix
>>> +++ a/arch/powerpc/mm/book3s64/hash_tlb.c
>>> @@ -30,6 +30,7 @@
>>>  #include <trace/events/thp.h>
>>>  
>>>  DEFINE_PER_CPU(struct ppc64_tlb_batch, ppc64_tlb_batch);
>>> +EXPORT_SYMBOL_GPL(ppc64_tlb_batch);
>>>  
>>>  /*
>>>   * A linux PTE was changed and the corresponding hash table entry
>>> @@ -154,6 +155,7 @@ void __flush_tlb_pending(struct ppc64_tl
>>>  		flush_hash_range(i, local);
>>>  	batch->index = 0;
>>>  }
>>> +EXPORT_SYMBOL_GPL(__flush_tlb_pending);
>>>  
>>>  void hash__tlb_flush(struct mmu_gather *tlb)
>>>  {
>>> _
>> 
>> Oh indeed I hadn't considered that arch_{enter,leave}_lazy_mmu_mode()
>> refer to those symbols on powerpc... Maybe a bit overkill to export
>> those just for a test module, but I'm not sure there's a good
>> alternative. Forcing LAZY_MMU_MODE_KUNIT_TEST=y is ugly as it would also
>> force KUNIT=y. Alternatively we could depend on !PPC, not pretty either.
>
> Does EXPORT_SYMBOL_IF_KUNIT() help?
>

yes, that make sense. Thanks for the suggestion!
I guess we will need a diff like this in that case -


diff --git a/arch/powerpc/mm/book3s64/hash_tlb.c b/arch/powerpc/mm/book3s64/hash_tlb.c
index fbdeb8981ae7..ec2941cec815 100644
--- a/arch/powerpc/mm/book3s64/hash_tlb.c
+++ b/arch/powerpc/mm/book3s64/hash_tlb.c
@@ -25,11 +25,12 @@
 #include <asm/tlb.h>
 #include <asm/bug.h>
 #include <asm/pte-walk.h>
-
+#include <kunit/visibility.h>
 
 #include <trace/events/thp.h>
 
 DEFINE_PER_CPU(struct ppc64_tlb_batch, ppc64_tlb_batch);
+EXPORT_SYMBOL_IF_KUNIT(ppc64_tlb_batch);
 
 /*
  * A linux PTE was changed and the corresponding hash table entry
@@ -154,6 +155,7 @@ void __flush_tlb_pending(struct ppc64_tlb_batch *batch)
                flush_hash_range(i, local);
        batch->index = 0;
 }
+EXPORT_SYMBOL_IF_KUNIT(__flush_tlb_pending);
 
 void hash__tlb_flush(struct mmu_gather *tlb)
 {
diff --git a/mm/tests/lazy_mmu_mode_kunit.c b/mm/tests/lazy_mmu_mode_kunit.c
index 2720eb995714..340d7cda9096 100644
--- a/mm/tests/lazy_mmu_mode_kunit.c
+++ b/mm/tests/lazy_mmu_mode_kunit.c
@@ -69,3 +69,4 @@ kunit_test_suite(lazy_mmu_mode_test_suite);
 
 MODULE_DESCRIPTION("Tests for the lazy MMU mode");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS("EXPORTED_FOR_KUNIT_TESTING");


-ritesh


From xen-devel-bounces@lists.xenproject.org Wed Dec 17 15:53:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 15:53:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188895.1509911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVtq0-0001hJ-HN; Wed, 17 Dec 2025 15:53:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188895.1509911; Wed, 17 Dec 2025 15:53:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVtq0-0001hC-Cs; Wed, 17 Dec 2025 15:53:16 +0000
Received: by outflank-mailman (input) for mailman id 1188895;
 Wed, 17 Dec 2025 15:53:15 +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
 <SRS0=tELU=6X=bounce.vates.tech=bounce-md_30504962.6942d1e7.v1-99a52fcc01f648c7b119ad0d794d5bed@srs-se1.protection.inumbo.net>)
 id 1vVtpz-0001h6-Cy
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 15:53:15 +0000
Received: from mail186-20.suw21.mandrillapp.com
 (mail186-20.suw21.mandrillapp.com [198.2.186.20])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7e2c5eff-db60-11f0-b15b-2bf370ae4941;
 Wed, 17 Dec 2025 16:53:13 +0100 (CET)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-20.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4dWdcS0DyLzFCWmvh
 for <xen-devel@lists.xenproject.org>; Wed, 17 Dec 2025 15:53:12 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 99a52fcc01f648c7b119ad0d794d5bed; Wed, 17 Dec 2025 15:53:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7e2c5eff-db60-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1765986792; x=1766256792;
	bh=6RDxNa/bxEp+ttbWuXALs6hqj1w9id+IWGqp/NgQemQ=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=C76IhOJA+BbGrHO14dKqIHyV4vzreTDqb8N4ODuaHG+PH3fy99VC+lKQ/BmMoERpq
	 c6+PKPtySfqYvlkxbn2+eL8UxvfeVTOdGWAOIwM12oZ81FCj1MKrmz4jxuYHIaFycz
	 pz+juaEYNtMw+SGH4iyvLuTYfWI1ITXyEPYECcZ+T512GwN3+EZYpb/g8LQ8+SC+gB
	 w3kQnQDxq/jhfzq+tJog8ruwk+Sf/lLukjRgwxq8xFlG9Aj/s/+0HZgIwXaCaWKmUz
	 xLMgmzyNp2WbssSi58ZChklcG6JtUn/gzvgZX1r8b81HFFDqMtxLoOXFJsUa/C5WW1
	 OF3Qu6JCAsj2w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1765986792; x=1766247292; i=anthony.perard@vates.tech;
	bh=6RDxNa/bxEp+ttbWuXALs6hqj1w9id+IWGqp/NgQemQ=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=xVbJe8jGHmH/ITFFlrENlDshb7HL0jF003Ccpv50PXU1zW1oYbVR9tl63Hik64jay
	 hqirTvnjVZK4cW6IiZg8qs6FqyBMvb47frmS60MIgAFKxoeN3HulkHNGg6HbnUPUOp
	 tfmt3CnNhP4N55OEOYTPCznUrXxhhRdEoZyt0V1lyY7+dBmAf5apGOrKrQ7vLf6Ngl
	 ES/OHyHbTyBt6XTFpfbTsir+ELTyiatjcYlQTsYlBCT20oiSt3KzV15JwjXVYYVApW
	 umYkvDGUVPn1dyg3JnzgWNlCKB0pfaQu1BtxzfHz0ZbWP7UIa/jIltpVq27rOV8wxc
	 bQJP089ulPfGw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[RESEND=20PATCH=20v2=201/3]=20xen:=20Define=20xen=5Fdomain=5Fhandle=5Ft=20encoding=20and=20formatting?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1765986790604
To: "Teddy Astie" <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org, "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Community Manager" <community.manager@xenproject.org>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>
Message-Id: <aULR5vTz1DEHxu8X@l14>
References: <cover.1756460430.git.teddy.astie@vates.tech> <a12f705dae18ae2b87c9e21027d14c4e60bff146.1756460430.git.teddy.astie@vates.tech>
In-Reply-To: <a12f705dae18ae2b87c9e21027d14c4e60bff146.1756460430.git.teddy.astie@vates.tech>
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.99a52fcc01f648c7b119ad0d794d5bed?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251217:md
Date: Wed, 17 Dec 2025 15:53:11 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Aug 29, 2025 at 09:58:15AM +0000, Teddy Astie wrote:
> diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
> index 82b9c05a76..a219ef870f 100644
> --- a/xen/include/public/xen.h
> +++ b/xen/include/public/xen.h
> @@ -973,6 +973,13 @@ typedef struct dom0_vga_console_info {
>  #define xen_vga_console_info dom0_vga_console_info
>  #define xen_vga_console_info_t dom0_vga_console_info_t
>  
> +/*
> + * The domain handle is chosen by the toolstack, and intended to hold a UUID
> + * conforming to RFC 9562 (i.e. big endian).
> + *
> + * Certain cases (e.g. SMBios) transform it to a Microsoft GUID (little
> + * endian) for presentation to the guest.
> + */

So, there's already a definition about this, but it's a comment on
XENVER_guest_handle (in public/version.h):

> /* arg == xen_domain_handle_t.
>  *
>  * The toolstack fills it out for guest consumption. It is intended to hold
>  * the UUID of the guest.
>  */

We can add that the binary format is most significant byte or network
byte order, but that's already the format stated in RFC 4122 and its
successor RFC 9562.

Also, I don't think it is useful here to point out how that handle/UUID
might be used/transformed by guest.

>  typedef uint8_t xen_domain_handle_t[16];

Cheers,

-- 

--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Dec 17 16:11:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 16:11:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188910.1509921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVu7A-00054U-TA; Wed, 17 Dec 2025 16:11:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188910.1509921; Wed, 17 Dec 2025 16:11:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVu7A-00054N-PF; Wed, 17 Dec 2025 16:11:00 +0000
Received: by outflank-mailman (input) for mailman id 1188910;
 Wed, 17 Dec 2025 16:10:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=trBu=6X=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vVu79-00054H-9e
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 16:10:59 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id f615cd44-db62-11f0-9cce-f158ae23cfc8;
 Wed, 17 Dec 2025 17:10:53 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 70ACCFEC;
 Wed, 17 Dec 2025 08:10:45 -0800 (PST)
Received: from [10.57.47.3] (unknown [10.57.47.3])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E837B3F5CA;
 Wed, 17 Dec 2025 08:10:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f615cd44-db62-11f0-9cce-f158ae23cfc8
Message-ID: <799bdcb5-cb18-4b7a-b33f-bea1553f3650@arm.com>
Date: Wed, 17 Dec 2025 17:10:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 14/14] mm: Add basic tests for lazy_mmu
To: "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>,
 Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
 Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Anshuman Khandual <anshuman.khandual@arm.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251215150323.2218608-1-kevin.brodsky@arm.com>
 <20251215150323.2218608-15-kevin.brodsky@arm.com>
 <20251216201403.4647a4f9861d3122ee9e90d7@linux-foundation.org>
 <f9550d22-8810-4145-aaa8-48961f6ea35e@arm.com>
 <ca0da7fd-245c-4d52-8f4d-f8fce4717494@arm.com>
 <87a4zhkt6h.ritesh.list@gmail.com>
From: Kevin Brodsky <kevin.brodsky@arm.com>
Content-Language: en-GB
In-Reply-To: <87a4zhkt6h.ritesh.list@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17/12/2025 16:46, Ritesh Harjani (IBM) wrote:
> Ryan Roberts <ryan.roberts@arm.com> writes:
>
>> On 17/12/2025 09:26, Kevin Brodsky wrote:
>>> On 17/12/2025 05:14, Andrew Morton wrote:
>>>> On Mon, 15 Dec 2025 15:03:23 +0000 Kevin Brodsky <kevin.brodsky@arm.com> wrote:
>>>>
>>>>> Add basic KUnit tests for the generic aspects of the lazy MMU mode:
>>>>> ensure that it appears active when it should, depending on how
>>>>> enable/disable and pause/resume pairs are nested.
>>>> I needed this for powerpc allmodconfig;
>>>>
>>>> --- a/arch/powerpc/mm/book3s64/hash_tlb.c~mm-add-basic-tests-for-lazy_mmu-fix
>>>> +++ a/arch/powerpc/mm/book3s64/hash_tlb.c
>>>> @@ -30,6 +30,7 @@
>>>>  #include <trace/events/thp.h>
>>>>  
>>>>  DEFINE_PER_CPU(struct ppc64_tlb_batch, ppc64_tlb_batch);
>>>> +EXPORT_SYMBOL_GPL(ppc64_tlb_batch);
>>>>  
>>>>  /*
>>>>   * A linux PTE was changed and the corresponding hash table entry
>>>> @@ -154,6 +155,7 @@ void __flush_tlb_pending(struct ppc64_tl
>>>>  		flush_hash_range(i, local);
>>>>  	batch->index = 0;
>>>>  }
>>>> +EXPORT_SYMBOL_GPL(__flush_tlb_pending);
>>>>  
>>>>  void hash__tlb_flush(struct mmu_gather *tlb)
>>>>  {
>>>> _
>>> Oh indeed I hadn't considered that arch_{enter,leave}_lazy_mmu_mode()
>>> refer to those symbols on powerpc... Maybe a bit overkill to export
>>> those just for a test module, but I'm not sure there's a good
>>> alternative. Forcing LAZY_MMU_MODE_KUNIT_TEST=y is ugly as it would also
>>> force KUNIT=y. Alternatively we could depend on !PPC, not pretty either.
>> Does EXPORT_SYMBOL_IF_KUNIT() help?
>>
> yes, that make sense. Thanks for the suggestion!
> I guess we will need a diff like this in that case -
>
>
> diff --git a/arch/powerpc/mm/book3s64/hash_tlb.c b/arch/powerpc/mm/book3s64/hash_tlb.c
> index fbdeb8981ae7..ec2941cec815 100644
> --- a/arch/powerpc/mm/book3s64/hash_tlb.c
> +++ b/arch/powerpc/mm/book3s64/hash_tlb.c
> @@ -25,11 +25,12 @@
>  #include <asm/tlb.h>
>  #include <asm/bug.h>
>  #include <asm/pte-walk.h>
> -
> +#include <kunit/visibility.h>
>  
>  #include <trace/events/thp.h>
>  
>  DEFINE_PER_CPU(struct ppc64_tlb_batch, ppc64_tlb_batch);
> +EXPORT_SYMBOL_IF_KUNIT(ppc64_tlb_batch);
>  
>  /*
>   * A linux PTE was changed and the corresponding hash table entry
> @@ -154,6 +155,7 @@ void __flush_tlb_pending(struct ppc64_tlb_batch *batch)
>                 flush_hash_range(i, local);
>         batch->index = 0;
>  }
> +EXPORT_SYMBOL_IF_KUNIT(__flush_tlb_pending);
>  
>  void hash__tlb_flush(struct mmu_gather *tlb)
>  {
> diff --git a/mm/tests/lazy_mmu_mode_kunit.c b/mm/tests/lazy_mmu_mode_kunit.c
> index 2720eb995714..340d7cda9096 100644
> --- a/mm/tests/lazy_mmu_mode_kunit.c
> +++ b/mm/tests/lazy_mmu_mode_kunit.c
> @@ -69,3 +69,4 @@ kunit_test_suite(lazy_mmu_mode_test_suite);
>  
>  MODULE_DESCRIPTION("Tests for the lazy MMU mode");
>  MODULE_LICENSE("GPL");
> +MODULE_IMPORT_NS("EXPORTED_FOR_KUNIT_TESTING");

Indeed, that's pretty much what I was about to send :)

- Kevin


From xen-devel-bounces@lists.xenproject.org Wed Dec 17 16:30:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 16:30:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188932.1509930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVuPI-00070o-Cn; Wed, 17 Dec 2025 16:29:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188932.1509930; Wed, 17 Dec 2025 16:29:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVuPI-00070h-9x; Wed, 17 Dec 2025 16:29:44 +0000
Received: by outflank-mailman (input) for mailman id 1188932;
 Wed, 17 Dec 2025 16:29:42 +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
 <SRS0=ZVrU=6X=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vVuPG-00070W-O6
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 16:29:42 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 95640bf2-db65-11f0-b15b-2bf370ae4941;
 Wed, 17 Dec 2025 17:29:40 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by CH2PR03MB5335.namprd03.prod.outlook.com (2603:10b6:610:91::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.7; Wed, 17 Dec
 2025 16:29:36 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9434.001; Wed, 17 Dec 2025
 16:29:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 95640bf2-db65-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DdyA7uuZKxdrMCJ/DO4V5SrB0HPAWQ5m0AnmJb6cXIpl3GEQWcW5Mio6xEZazq3r+c9E509eG1JJd5u6Xx84k3jCSSJ1ekbWhY7+8e/Y5leS24sutobGCmb7StV9j6kYC/N1m6a/PIs7q2LWXPMSHPiGRGOpZiKQOFecLDKcaWqKa3hDD2kmjl40WDoy33i809XMt1CiG2CV8pbK5WRSmZ1TrvU3peiSBGaBpWlUMTA5P0RUiqlnANDTAI5Jdls8knMMnRENnOVj0r3g1OU/g6OIOyMGa6EaAoSCHFeq8p2CSlb7TGKkqXVkGkXPiDQoxsHaC9zNq0NPuxwibhijXA==
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=tUUA2dbaYyRkhI72bQIFl/s45CQ0WeI786O5IMh3KAE=;
 b=Gy35SPxC/OztlQediihDARRdFh72W+aDxUMcSLJ3uh8MGSyjem2y+r4B5byj3XaPXzx7Q+eGknHCT2WwBRgC3jJb69RTQUVG8kLYAm1ZvWhA9YBjn6YQGj55KQ9iFxq209pio/tfdT1c5LqahbLucqTWmz4Ozgk0K+zySj5xXAO0BmCB+IQstSkay/x6le48NFBkT2Dzxh43TqzJNpCO3bK8zD1NVSYwYXr47wFgSKjVEJ9o1NkxCLdj41e0Z3qogRfqX/I5znrgee3ZPpTRNAJ/TMUELMGNkJaFOio6Z4m0accwMWaoN5XSSICp5VhMehifydmvMR7h5FRA7ekqJQ==
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=tUUA2dbaYyRkhI72bQIFl/s45CQ0WeI786O5IMh3KAE=;
 b=Xf77+ytxUdpyvZkKyIMEmSvqBlGe9swl3G2wmdI0o9lzgYLUP/iw2UAV9U1awd0GpMZnu5oorEs5G/Kq9UmVzfPRbE2D0K0OS2f+lyE3iNI9o945t9GGmN0FW7h0fsforyy7o3gOV/QY2aLGODfca40TghntFz1wUYyuLwHpJh0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 17 Dec 2025 17:29:31 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 2/4] tools/libxc: Delete ENOSYS squashing in
 xc_domain_claim_pages()
Message-ID: <aULaa1EVjOYZL7-F@Mac.lan>
References: <20251216163230.2768186-1-andrew.cooper3@citrix.com>
 <20251216163230.2768186-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20251216163230.2768186-3-andrew.cooper3@citrix.com>
X-ClientProxiedBy: PAZP264CA0103.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:1fb::21) To BY1PR03MB7875.namprd03.prod.outlook.com
 (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|CH2PR03MB5335:EE_
X-MS-Office365-Filtering-Correlation-Id: 496e639d-6a8f-40b9-6c81-08de3d897792
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WUMxLzNyT1JJaTdLMHA1dm5GUHhpUnNWdmhZd0VOUUtJWEdUVmdRMTd1anI2?=
 =?utf-8?B?TGVYeHhUbDJvWGtoaExzOW1ZK1dXWE9NbWNKZmMyQ21kSmRwRVVtOTNDeDkr?=
 =?utf-8?B?MisrcTFrK0g1WEdRbE9NWUthbDhxMko1OWI2NVZmSzlLYm9DOFZ2dFFRZldw?=
 =?utf-8?B?YUJtd05IaEZLMnlUQ1pkSGswUFVjRmMwYXNxRHBNamV6WU1uc2F3bkNnK1Yv?=
 =?utf-8?B?OStEZTlFaC9HeEJUdHR5T2MrMWxYY1U0dThJeERwYUJaK3piTmNqQmdFZVFk?=
 =?utf-8?B?UWxEWU82bjc1SXpNbHFNQjQxM2FFSkRnY05ZdWRCaXlESXdabklTS2M3L1NQ?=
 =?utf-8?B?aGJndmRreG9IRmpMQUlKbmZpMVpRSmVaRURsdmhLRmhveVBYbEtWc0xUMXR4?=
 =?utf-8?B?cTR4cDRRL2hFZHZ2NWNBejNOSUw2eFFHcVJ0b1NodlpPbXBYS2FMZUhUYlkv?=
 =?utf-8?B?ckNyQms0YnRlaWFRajQ5SDc2WFdTclZCejU2WFM1eHlVZXpheElFbk9JVE5s?=
 =?utf-8?B?Yy9TOC8xbDN3ZEIyNFNWMkdqN29pR3Fnb0t5TUlXUEZKa2xHV0Z3Mm4xdm9Z?=
 =?utf-8?B?NjUwRGhYNXZsWlJJTk5pS0FYREE0ZlpySmMrRjV0VmFwVkQvYTJlQU5mMnQz?=
 =?utf-8?B?T0tTOElSZUs3Um5xdFlsZE96U3pCNUU4S3pJM0hsM2U2ZVZjV1J4ejBiNWxu?=
 =?utf-8?B?OUUxTXUybnllaUdseVpZN1BNRGR5Z256MCtEanArS1JnbXJuMUVTSytEVXBF?=
 =?utf-8?B?RlJ3RjlFZmlhRmlreHE4TlRWdTJObG1QK1BFNDIxa3AxSWtqY0ZyWkxjcmRH?=
 =?utf-8?B?dkNXMnZlODV1cVN1K2pVckdvVlB2RWJOdEFubGR0eGpYTXNkRG96bTUxc1BS?=
 =?utf-8?B?ZEs3b1MrNy9CWHlwamZtSFRxdnE2VmQwcWs5MlRudE1GRHZucG1NaW1DNlBx?=
 =?utf-8?B?Ynp4d090VW9GeTFKWFFManc2QTErU24zVVV5QjRWOWdBTWtMbVQyRVp0NHVV?=
 =?utf-8?B?TmI3MDFtRGIvbEovbXA0ZktXT2xEdllPZ0xWVzVnVXFNN3oxeThQNzd4R1Va?=
 =?utf-8?B?VENlNjIwU0dDakJpSUw4SFA0bS9sVHZkdllvSnFXSm1YbittYWJCU0FPT0JE?=
 =?utf-8?B?dHFlVWpOeGdqQ3VBOC9tRmRzcnJsYmpYR2k5VVhjWktqQzRNWitrRWV0WjBp?=
 =?utf-8?B?cFNqcGdqcDRJSi9TelByd25JS2dpZ2tDVWY5TERqUEd5NzVKcW5PNFlPdjN5?=
 =?utf-8?B?MTVqUXZKRTg0R25kb0JsZVVKVGJvYXdYelVKQ0d1bTRwbVZ5TndnWkV4dkxZ?=
 =?utf-8?B?ZmRkV0lFdlQwQW56cVhpMGZrTHI0ZFNISmsyZldkK0ozamI1dmEyQ3g2YnhR?=
 =?utf-8?B?eXc2Sy8wUmNZOFhZd2lQdHhtM2NkV1c3VU1nZFQ2WFYrNHY1MS9NSmp5eFFk?=
 =?utf-8?B?ZW0vVlFWcFVwOGVNd2FVd3MweXc5VDJJUXlKNS9yU2UrQmJSZnFaS3dUVVAw?=
 =?utf-8?B?ZU5NRjd4aTU3Q3RJSGJHNFU3MFFwbWp4SnlSbUZIT094cEYyb2RvazM3K0Nk?=
 =?utf-8?B?REkzS0YrWkh5a0ZVU01YSjAvNG82WUNkUUQ3Y0FEcGFlejAxT0RwSm50TWdW?=
 =?utf-8?B?Z1lqUUdabHY2clI0a1dsNkhxbTYycTdldUF1dVhSZERheENBV0JXRXpOV3Bx?=
 =?utf-8?B?Vmc2MFJrRnVKNGZQdnIvYWtFbGl6b0FoaDNDZkNOdk1IVzF4c1lqUnQvQ0Nh?=
 =?utf-8?B?a2xVc3FUR0Z3ek1ZTEVmWVBHZlhxSXVZdnNwb1lPakdDcTFiRWg5QVhmNHVZ?=
 =?utf-8?B?akdjVEZJYUZtc0JKbTJNQndBRWYyb0x2QXRud1BVd1lVekxOZUlCRFpVTHpP?=
 =?utf-8?B?eS90WldMWkZJTjhvSHRuQUhHWFJQTUZRdXRmT1F2TUc5b3l5QlFmMUtsT0px?=
 =?utf-8?Q?6GjwAz/4ngKeaHhF4mlR7Phy6kxxsJxP?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7875.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dmQ1U1dvcmxZN0hHQVBDWkQyS1NYUk1HQkRBTHo4eXpZRmpJTWFTMlZ6c2Zq?=
 =?utf-8?B?K3VZTTZWK0dsL3BZd2hKdFNBSnR1VG1ZeUN6NGhDL3dNaGdtekdHOFJjcXJ4?=
 =?utf-8?B?WFR0OXpKaXJWaHZYLzVnZHNmL3ErRjJuUUtzWnBNc214T2JxYjlNa2pZeTRU?=
 =?utf-8?B?L1YyWTQ3dC9iOHhMRm1ITmZxcEZ4cEowRklLbFF4czBmUG91YkJWY3VRWFFI?=
 =?utf-8?B?WTJEWjA5L3VVY2NLZVN4a1oramxFc2dFWkRXTWZTWWlyc1FPNDFPSXVabEVv?=
 =?utf-8?B?L2hBb0R2ZTQ1Y0ZOeXB0NVZSYTNPZlVHbm9qQnlOV1d2UFBKa0xZcHJLc2VM?=
 =?utf-8?B?eUZVdzBjOER3cVlBRURYbkZadnYzcTBodmNXUWM5cDA5a05uSDdsbXZGR0k0?=
 =?utf-8?B?ZWVsVTIreTdrNE1zZTlVUG5hdmdvSTVVV0RsMjU2UW95TXh1QVNxczN6ck93?=
 =?utf-8?B?WDZGY05SWWRuaFlySlRzM1dhMHhaOE8ycDhSczFvN0ZBQlJOWGcvbGNRblIx?=
 =?utf-8?B?REdiMmRYOCttbU5qQ0EwdVU2QVpQMmJhSkVzbnk1Z0pvRlI4cDYvYnR1Znhm?=
 =?utf-8?B?VWFyU2RtU0JEakpLYzd4cFBuZk9CQm9paTZCdVpaTkVOcmIzWFNINVlaMWND?=
 =?utf-8?B?RkJXOGtrQ2JzYjdINDhPVjl3dnlYb3JRb0lUd3oxcU5uMGdkb2QyNTFoTnpj?=
 =?utf-8?B?cjNLQkIwOUt3dDFEY1FyMmIxbGZwZ2lCN2gxT1NWYkwvQml5eTl1d3FBbi9H?=
 =?utf-8?B?OVpFWmg5dUJyeVRBcm9mcmlOUDN5WTZwRFdYRVRvWFdhWW5DZGxaMko2aFIv?=
 =?utf-8?B?UFNhTTlGaEVRYWR4ZVN3eWovN0NyRnVXZlZxMnZJZzYyWTh6Y2JoQllWV1hR?=
 =?utf-8?B?ZXZCUEpkS1Q4aFZLOGVyZ1c1cmZzbkpNdU1DQmxaSGEzME45VU1Ta2ozeUVN?=
 =?utf-8?B?aDFOUHJ5amw0b0FpbklnK3BKVjg4djc2TGROcUN2N0daWGJXMTlZcTlNME5P?=
 =?utf-8?B?V243aFlVREdzK2xaalk5TS9mbHBjTmhIZGJTSEhDaE44S28xVnVMSGIwWlpr?=
 =?utf-8?B?R2EwTUpGV2s5Qm1vNkUzd0d3TnM5Q0h2dTM1eDVSNGI3MVBuWnRNYzFFR1Na?=
 =?utf-8?B?UUs0VWxZclgzT0xraEprMXJYelN0Tk9oOGlkS1FaVndBWGxLZHY2eGZxeUpu?=
 =?utf-8?B?UE9lZ0lQcXZFTUFBU1pDWlNLR0FqQk1QRlBFNEVFTHdkRXdHSkxEMXZWZ1lq?=
 =?utf-8?B?d090RVdCU2xYOVZiMjhja0FZQVdtQ2U0VlI2NFB6cWVobU1pc0syOW9LNG1a?=
 =?utf-8?B?NEJXMjEyNFNLVzFrSER0SUNSQ3lOUFUyclU3dy8wbTU5ZlZTSW8vMzVtSTFw?=
 =?utf-8?B?cGpIZW5YMEs5QUdNbCtmWlRsSUtEU0pQamtDR01pREpsL2JHM1UrbVRvKzQ3?=
 =?utf-8?B?NDVDVDRJSGNpODZVMVBxNGNkcFhPUTdRQlJLdVBBRmh1Tk1uL3QwSUZyYkZD?=
 =?utf-8?B?UGdONmRYVGhLenJqL3ZOdldUZ0w0dHhmZW9iTFFQdi8yN0NpaVppZGUxTndR?=
 =?utf-8?B?d25PWW9JOHBNb20wNlVBTnA0SFFtaHI5aXhaaTFIZFd2ektDLyt2RERvQVRo?=
 =?utf-8?B?MXk5dFNNZTUyemNrblFLOWFod2hLQXMzNk9MYVVMaktlek9OK0llQmF1RVNE?=
 =?utf-8?B?R1lkbktOUzlINVdGMzNDeG9MNGdZcUZuSzVhc0V1SHZBd1FlTmtONWxWOG80?=
 =?utf-8?B?VlExZHNseWMwMVdGNzYrdVUzaDdYTWN6WnN2c0t3SkV0V1NIYURrV29NTzZI?=
 =?utf-8?B?Z3grUVc2eHE5Rjh1NzNCSlk0MDQ5OUdqMlIvbkJucEFYaXVvM0xCZDZyVTdQ?=
 =?utf-8?B?UU9nWEVwNkFPbzhES3QwcnA3dktocGZvc0pWOVFkQzYwVEJCVytXU3IzSFdR?=
 =?utf-8?B?bG1QQkZYWUYvSk9MQzNtYWpZRnc0T0x0ZGxZS3IrSWMzZWRLZ3JTT1NUbUkv?=
 =?utf-8?B?aitJRFNvaXUrV295RGJzMUpUVXZLN0NxNTJwTi9yd0VtbURlZk1VT2pHeTdO?=
 =?utf-8?B?UDd3dkdwVFAzTWU5L0JWdnBQOE9va0MvVVljcnkrR3pPcTh3Y1lwdXJtNEJ3?=
 =?utf-8?B?M2dEUG56VW1VOTlHUjg1azY4SFNvTnJKSXd6UXZIZnZubDdZSk1hTTJ1c3Er?=
 =?utf-8?B?Wi9BNmovSmRjUFRwcUhQWFpBTmtOWnpQZzc3Qm1WS3R2V2E0WHZRN1ZnK2Z3?=
 =?utf-8?B?ZWM0ZjlDQ1Bnb21EclBRbU1pRTRUTzNJRGhsZGJKU21SZGlNL3NoMkFrT0Q5?=
 =?utf-8?B?OXdlQUlZTktEZUk2YWhhU1owaHJab3VibVBpa1hoT25lNms5STQwQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 496e639d-6a8f-40b9-6c81-08de3d897792
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2025 16:29:36.0088
 (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: gZTXbKMka08zZqON4LuE8AbCif9FDhYAOU8kNtu2mPvxf2e+p6k4VYRtyxjybFg6sgcz2R72BIifxaewIgQ/TA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5335

On Tue, Dec 16, 2025 at 04:32:28PM +0000, Andrew Cooper wrote:
> It's not acceptable to hide this from the caller; the effect of doing so is to
> break an atomicity expectation.
> 
> Only the caller can know what the appropriate safety action is in the case
> that the claim hypercall isn't available.
> 
> Fixes: fc67e9dc0c1f ("xc: use XENMEM_claim_pages hypercall during guest creation.")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 17 16:31:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 16:31:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188943.1509940 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVuQa-0008RI-M7; Wed, 17 Dec 2025 16:31:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188943.1509940; Wed, 17 Dec 2025 16:31:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVuQa-0008RB-Iz; Wed, 17 Dec 2025 16:31:04 +0000
Received: by outflank-mailman (input) for mailman id 1188943;
 Wed, 17 Dec 2025 16:31:03 +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
 <SRS0=ZVrU=6X=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vVuQZ-0008M1-Ez
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 16:31:03 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c682f987-db65-11f0-b15b-2bf370ae4941;
 Wed, 17 Dec 2025 17:31:02 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by CH2PR03MB5335.namprd03.prod.outlook.com (2603:10b6:610:91::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.7; Wed, 17 Dec
 2025 16:30:59 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9434.001; Wed, 17 Dec 2025
 16:30:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c682f987-db65-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CpFI6mJl/cN9dOk/a9EWOmpkGE8FkZNT79aykTyhxK5P2KzIVMsrb/rp5nrhRM9vRiv8aIIh/UeHuc6j7v/yJBn6bpsi2CIe/0EA6MEN9b8KW9EmVrc8VAp+pBsXOze5KnNSXNvPL1/DxYXSMKOKqdtcQpuO6X2mAtOzoBDT7ZjriYSwD0QrQcS3Exs2fWkILZrS51hFlx0EJ0v5MX2AqvRhLr4xjOySfrnzDF2F0v0p4Jktd/leVC9cqZugyYfkztb3Vk7JkW1M7jr62ulVBUeqLTFLTvqCUgHYhVxB9qZvTQb6bpMHh+s4iGL06L6ODZ4ZCc+9wYOALXqDE548qA==
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=HfXXNBgz5zm4UyHUY0uUXzkNYp0xJLCHdjFgLkATsWw=;
 b=SXa9QUfAnFi4UNxrqCKmLHvbALDasm0hU9/8s0a8XCHbvlUibqVzQiIBK4gqAp/e+XBI9p+mpKinZnbfgbluVBjJdR95LbQlHlT7bM1ZZGRQ7boUbKqbf0Hjk5V+hTJRk8okXMnmHOpuDrJxm9djGuHSmQF/BPA6dnSxBny4lTlMxaTTqNCj5ArVr81F16BrNInyZc8Hvp2WgrUo+l5c+Po6vLdoZ8zl6sMnEqMeJCjQHAtJA0gKeTEyDmlLcmdTgR7urjXE5YtwZe4uuk97ehP1P1gfS6b7FigJr5zytColO0Jf3Nx7XVMwjMY5hHZcg3zM9FLcVla9Jmt1J0kc6Q==
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=HfXXNBgz5zm4UyHUY0uUXzkNYp0xJLCHdjFgLkATsWw=;
 b=ZY2Up+JMaUdQjHsxht/CqrJ/F66Wk/lGm47qS+nOC8CuHhgpzETHfVdvcmQFWEv2eCkls2Is3LRx94NiKNc2KPnJEX9jUdEG8e8RDu4PJX0K+vKb5vpChzUtkynmO62lezRPeCLMXNyKgSB0OS3neNSzA8nVu5mdHK18YTqhVNQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 17 Dec 2025 17:30:55 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 3/4] tools/tests: Sort Makefile
Message-ID: <aULav20jlJnb9Pg4@Mac.lan>
References: <20251216163230.2768186-1-andrew.cooper3@citrix.com>
 <20251216163230.2768186-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20251216163230.2768186-4-andrew.cooper3@citrix.com>
X-ClientProxiedBy: PR3P192CA0004.EURP192.PROD.OUTLOOK.COM
 (2603:10a6:102:56::9) To BY1PR03MB7875.namprd03.prod.outlook.com
 (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|CH2PR03MB5335:EE_
X-MS-Office365-Filtering-Correlation-Id: 62df28f7-be89-49ef-0ddb-08de3d89a969
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eUdTaHBGenM5Q2pCendVZ2lCNDdZdkljcm52TmdpRnd4czh0Z3dENWdUeHJo?=
 =?utf-8?B?THlISzJuQ1hVaTEveUtGSlZpV0ZhdmIvejJvREErVzNEVGF0R0pNZUZVOVBi?=
 =?utf-8?B?V1NnaUJBdEFVU3FnV2NBSkx2QmR1Z3FVaGdPNkxiVTJaZWYwZGtkYnBOL2F2?=
 =?utf-8?B?YnF3RERkUGNLdmZMTHhXRE5wOTBzUzVGZlN1QWtNT0t4dVI4VlYxc201VDlr?=
 =?utf-8?B?ZlJtWkdtLzM2eXhJSXJPQkpSTUJJTmpHT0UvMWYrbGgzOVhCekQ1UmFPRnUz?=
 =?utf-8?B?VFZUQ2dpNWNHaTB5eVpDR3M0Y09UdkJxNVBzUldpR2x2aGYzUGY3WEZtYy9z?=
 =?utf-8?B?Q1JacTNSRDlrR1pUeXRITnZOT2JNTXZZNytROUF6VklZOHJhUUNPZzFZbm95?=
 =?utf-8?B?dk5XMFRhQkRnYVpTMkh2d0YwbUNMS0Uyc0VBM1NEbGYwNnpBdURlcEFNSnV2?=
 =?utf-8?B?VUlWRWR2Uis2TWRXR0pUQ2tXazNtZ0FqSUh0NVZoMmlEVW5mTmQ0Y2lRakZn?=
 =?utf-8?B?K1ErR0M3YmtlZjNIdkRONnlONFgrSDA4TTRrRHB4S2hpM05NTGZLYUJSQ25E?=
 =?utf-8?B?QWwwM2FCWEpRMitoQmlBN2JRNStWRklidy94VHBmMWdIS2Uzalc2cTJxdVVl?=
 =?utf-8?B?TkhDRTc3b1B4UzE2V3ZpR0p1cm4vdWNCZjk1ZjR6RlZZOWVONDZiUUtDcDY4?=
 =?utf-8?B?VERUVWt1TlpLbjZnbXFld29uNys0ODBnNUIwYkpoMGJDR2gzNlVuYTBZeWs0?=
 =?utf-8?B?a1JHNS84NnVDRjUxbVZyTmkzaitHZVNreWU1ckFpSGVkZHhOdklIMTB3VTZJ?=
 =?utf-8?B?clVRSENPek9XaXUvQURocFdCbkJjR05JSHBWSmFoRkdScUFVU0ZQaGRmb011?=
 =?utf-8?B?LzUxWENtNzBsUXBSNjFyazZQQ1dRR3E4QytsZ0xUdkkyZmkzTVdzVkxTUTE1?=
 =?utf-8?B?V0dMRXJsUGhVNjdiL2tCOE9qNW9aY3BiY2lLUWhnTUU0OUxML3FpOVpDQlNv?=
 =?utf-8?B?WHJYSDF6K1ZRQnN3VXZYT1NXelNNNnkxNG1BZElVUzdnb2NnNy9wQ05Lakt1?=
 =?utf-8?B?UnZqeWFiWUVLcXpaU0tDTmRFcDNramoxTHVESnVNaHhYUDIvMzZ0SFFxMEEz?=
 =?utf-8?B?UnhZalBzUU5PMmdQK3FQSVNtRlE4RGU5cGZMYjI4eDFSYThzME1qQnVVcU9H?=
 =?utf-8?B?amx5ZXNpSU9NbEtQdVRaTHVwTnIwNkg4NDRGTmw1T25BQXBmNXhxT3lMWDg1?=
 =?utf-8?B?UGtsa1VCMmtla05Qd0tNaHRsbldsWGtMbzVLK054bGtrYTRPMUlmY2Jxb1VJ?=
 =?utf-8?B?T09heWwvdXc0Umc4ZlpkQWVFMHVnZEoxamJNMU9ObER3ZUttRE9wSnc5WFJJ?=
 =?utf-8?B?d1FJZGRVM2FQZmJKTGgrUHhDZTFxU0FLVDB3d3prSi9lTFdtaG90dWpCRS9X?=
 =?utf-8?B?ajFQS2lrdXE3emhDYmFFblZrd3p0dmFpYXZyQ3Z5MURYMDl5MnF4ZTBpa1VI?=
 =?utf-8?B?MTdCcDlvZTgyRmFMcnJ0djFabDNPYVlrdjJpUzZIMjd0WXk2bWZ0LzhVMzBy?=
 =?utf-8?B?dlFPTXk0QUh3OHhOSzJsclJwVkJ2Vi9zRnFXa3NJeGlmZjRjc3pqQW9FeGVs?=
 =?utf-8?B?a0k4WG9XU1Z2cHpMeUFjdXFhV2YvL1NzeEdmdGJueVUyR1oxVzVCY0lWNGFx?=
 =?utf-8?B?TnFxT212QXNwZ201bWkvcE40dlVRSnNmeEVqWmg2RVRMR1BGQS9BNEF1U1h3?=
 =?utf-8?B?d3lXNHlTWUtQOU5NSkI5SnJTeHVIcWdSWlN0MW40VGZ1azk4UWhIZmdNOXJw?=
 =?utf-8?B?VjlzQmF2bGxSd2JEOWVhbUM0ZHc2ZzExQVVZa0FwTG8xaWJWb0FBZkhPcnRk?=
 =?utf-8?B?RUpLTGR5ekZ3RUR6T3hZenAwdS9LV0tVNHcvaUxGN2xHNjN1aTJXVUViUzd0?=
 =?utf-8?Q?PlX0elzi/xjiynH+4Od8cSZCjABUOTbt?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7875.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YnJYbVYrQ1RLbWk0bkNVbk1aaURucGRsVG82N2dUNDcxYXRtTGlzOGxub0to?=
 =?utf-8?B?WlVxbmFxU0IrUXJPN0Vic1Y0NWR2Z214a1pYbU5MbnFxZGhkQml1cTJuOUlD?=
 =?utf-8?B?N0dteGVCNzhhVmdzMXo1U1ZNenNQY2hZYjN4SStVeXZodGxSQUl2d3lFT2kx?=
 =?utf-8?B?VGZ2TDVjRU13SEljQ2puUEoxMEVPUndaNFdSSWpSSGpuOTJ4SXlyNVYwZnBj?=
 =?utf-8?B?K2Q5bzc4c2F1SXd2MTNOTEM1L2kybXkvNzQvYjZWcklBOWVKYW1DNkNTc3Nz?=
 =?utf-8?B?SDhGcWc0cmNDNkN3Q1RjYTFmMzVIOWtjcW1pVnBiNmNYTzBjVGY3RStCbURi?=
 =?utf-8?B?Qm1RZExRRnBteGxBbjZNNGJPTVJPVFBBMkV4b1A3RVFKaFpESml1dnkrQXFx?=
 =?utf-8?B?Z0FOdTgrSm4yb3BKNW5NQ0k3ZEtrOHFkdjJKRDVTdHpwak80Y2JSWXo1cGo1?=
 =?utf-8?B?cWlidTEyMndKNjhGeWppelZ4NjcyNUV0ZmRQa2xXdXRNaFNtZGJKeWZTTDFr?=
 =?utf-8?B?SU0zQkF3eEpCSytWK3NncDZkcFFMRmp2OVV6T3JtZnh3WElIMzUydFlMVjNX?=
 =?utf-8?B?S3dQcnlpVWtqd3g2MWhwWXN2ZkEzWDdPY1JJVjRwY2Z6MHAwUTRxZEVXUE1V?=
 =?utf-8?B?TzZJR2lhWWJwc1NIMXdwUjBHUERuejBVNzcreEFkQlRlWWZBTnp4Vi85QXRM?=
 =?utf-8?B?VlJYUnR0MCt4WFRyU2M5SU9nMXZIcGFUdUJ0azl0SVJHU2NKWkZvVXdXaUY5?=
 =?utf-8?B?UDFkWEpHNmxWdlRCWkNOTEJqeUFQR3Vyc3pCak45YkRPOTFUL0ZtL1dBQzA3?=
 =?utf-8?B?RmtrYlJXUHJZeVNSUEFXQmVrY3lUZWRKOVY1WHZKRTdGL3ZnNWx4cE41Q1R1?=
 =?utf-8?B?SHpZUzVEWXVxampicWZVdDlpNUdFNStNUUhoOVpSQVpreHlZUFRweS9Td1Mz?=
 =?utf-8?B?MFgzQVM1VVRNUk1oMUl5M1dZdWVqZk82cklGVGg0cUlFdmtZUUNjclV4TTRt?=
 =?utf-8?B?cE9HWnNQK3JLcmgvR3U1T1IreG11M3JvcDR3WU5QaDg0WTRIakhON25uam5m?=
 =?utf-8?B?NE80YU5wbHhFYlNVV0YyTVN4bWZNRzJCZEt4MFUyenQ2eXpXWG1PbTJIdWdH?=
 =?utf-8?B?TVI1ejA0Mmp0b0kvdHo3S2xyOG1WWVJHZjMwNHdwSy9VcFM0MGVzNE5yUFF4?=
 =?utf-8?B?NUJzNml3cWtsUXhFaHVoaEdwcTdHYXlkVGErSVVhbUNzWk9JM3pYRnp3Rkl3?=
 =?utf-8?B?Ym1lRjdxbWZCQkxzcjVodmdCSTVuU3JaTTRwZEpGejErcVdBNU52bUtrNCt6?=
 =?utf-8?B?WEFhMk5aNTl4VFc5Nm5uRWxBdlUxbWJ1NnJYR1ptNTZ4UVVtV2hDWnorWGFT?=
 =?utf-8?B?MmRwMlhiOGs0V0NVWG5rVkQxMzMzR0N6SG5WYWRaazZ0WjBWOE9GUnhJdWFs?=
 =?utf-8?B?WVA5aDlHUmtwM0FoRktTT05yNFlmblhWdWQ4dDYrYmJURlh3bGxjNEE5cHJE?=
 =?utf-8?B?L0JGVDdxaVFWV09zNU8wczVMcE1aUi82bEFreW4zaXpPdStQWXk0L0RGVlRC?=
 =?utf-8?B?QytXdTBSakJ5MTdqUzk4dEZMT0xobENHSWxNNWtoQmZRbTlBeFRCVW1QcDRO?=
 =?utf-8?B?WDZoV1FVZUVFaFcreGJtcngvNmQ2YnNCR2w3bzhtQmZLVHZQU3dqallnbnlC?=
 =?utf-8?B?NjlnKytmdnR4dTdVM3l2WWJIaER5aHpKalljS0xGUXFiekZOZnNHWU1XME1u?=
 =?utf-8?B?VnEvTnNSbEZibmlmRTBRTytLVkZXbGFQdEpGNHVjUis3aE1CVXF4c25FZ1Zt?=
 =?utf-8?B?dG9hUGFpa1VHWEJsSEhCa2xlbjNtYnN1Zkk4enFwd2hsSmhWeUhMYTNhOHIr?=
 =?utf-8?B?aTZiRzdPMmVRVCtOS3NrRC9yTk1DSzFrcmYxZDVmRS9vamwybWdMYS84VWNW?=
 =?utf-8?B?d2VBZkxKMmZsRkw4TU1MckJwTTU4QlIrQUoycjdhbVRTRGdNbnNBNEd1K0pZ?=
 =?utf-8?B?WmlZcTFZTVlRWUdFdjNhYkhaVlV3SDNYUGVGY3FWVmxFd3NlbnMxVkNZVzRr?=
 =?utf-8?B?cndMcFlaMnF5OSs1VFI4VHNSY0pkcGdnejNKOGFKQTdDWFF1OGZTR3B1TXBM?=
 =?utf-8?B?anJ4QjZZcnJTaG9TVjYxdjNpSUZzWFZueEtPeER6NEpEcHkyb0pFUERHbHdt?=
 =?utf-8?B?Njl6QmZlUmFjaytsV1dkelc2Ny9BWWxCbGpuYTVodUtEOFhoVTJWVUJydkM1?=
 =?utf-8?B?c3Y4Tkd0dlk0UzA0eGNEZGcwcVhXMkJJK1JIZEhIQUxSWDAwclhvWVFTekk4?=
 =?utf-8?B?NkZoZkYxWkdZM0pBcnJKeHovSzNXMCtqcVhna05ZVWtsVzhBUnF3dz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 62df28f7-be89-49ef-0ddb-08de3d89a969
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2025 16:30:59.6160
 (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: uwVrArwKy9uhuvmHCvNFBoU/wMUWiG34PNYFE5Q+mMDpqKhdI3i5flaBM0+4UQwbrJXotoOnavqeLX+/q4zzxA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5335

On Tue, Dec 16, 2025 at 04:32:29PM +0000, Andrew Cooper wrote:
> ... and split the x86 group away from the common group.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 17 16:54:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 16:54:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188962.1509950 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVunH-0002zj-Ft; Wed, 17 Dec 2025 16:54:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188962.1509950; Wed, 17 Dec 2025 16:54:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVunH-0002zc-Bs; Wed, 17 Dec 2025 16:54:31 +0000
Received: by outflank-mailman (input) for mailman id 1188962;
 Wed, 17 Dec 2025 16:54:30 +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
 <SRS0=ddEZ=6X=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVunG-0002zW-79
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 16:54:30 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0d1b3059-db69-11f0-b15b-2bf370ae4941;
 Wed, 17 Dec 2025 17:54:28 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-6419aaced59so9527342a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 17 Dec 2025 08:54:28 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa5d1e89sm2015077966b.69.2025.12.17.08.54.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 17 Dec 2025 08:54:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0d1b3059-db69-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765990468; x=1766595268; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=/zJ5+/H+aYzeqzgvSsbkH+AEVFKater49hymxlSXKXQ=;
        b=i1BF/m1Z2/rieFbs2DWLXcedFziFQnVp+SOus3iU1Q/CWYeaRLtR7ED3SW4LwapZd1
         drS0YWMKDTNU2woYHKnswPwDJt+uc1iXsLbpzy4GskvuQB/bMm3XNRRfeVanhyRmDsZZ
         qCG2QNHHwdjrD1VN1SOIyYdCiQULNbKIj5SsBVORBBzYKLlYlQmq9kaitGAaQxuLLdBX
         N689EcpQ6aqLhD37vTCyHteJU9VlIc9GWdwUOghLdanjk8gRMAxIs1kE/Bj9OzvRgefR
         YPbRwN1D1NIL646mUoFE7nldnY3br1bPY+gPyZNZV1VVJEPXIS2+ZkHx+SLfwu9htpE2
         nddA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765990468; x=1766595268;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/zJ5+/H+aYzeqzgvSsbkH+AEVFKater49hymxlSXKXQ=;
        b=nUWHaTNXLP7tqpPZpI0X+VV0irqBpW4LLgy9yqLrjo0O/oV9jVlvqu9UesHSMP2YXb
         KCMiQb50x7/5jVlgIosCitg+XG/RCa64sHx1NvPcY0kKiVUAP0gXlyob0Y1sL5FOKwZc
         zmf13KSPLRd63/HLl1/g+7NU2l2uHS3xdhmTmGkaDJSFzGahkRkZNRY2ZtLCXWdxBOAC
         pg76z12MiThMIkgAiH8uoM2nUshQPzhLHx2oy9H0BFmTJNdic6PD4HzCtcvPS7Lr2RTW
         9cE+/+LePoUjxtX9LL6ISHhEGjKf2oB+P+FM9vDGWl1uxVhs8rYhWzAIiH81+50vZXHU
         DfwA==
X-Gm-Message-State: AOJu0Yyq734B7m5kikJVfQNkOUeqbdKfV+aC5WmBzj0WGnWEYkGdZ0ov
	pseFurbCr6awQOUFfqRarJwS2MBQRyIFYNOCZ48euAisw5qUhVbBFsarsjkidQ==
X-Gm-Gg: AY/fxX7LYXN9UcTC91GmzqcmUhlCfGI3T3f/4t5TH+kAl/nyjtVExRkchlZOr2zAJ2B
	fYWIJaQ5ToKeNXLZ84wq8bT07h71iTEIO+ndJGLQbloqX14gdqGytUimOaTSsGuBnQ7aKQUc4gu
	TzZufaa9QdtR2+IgNGqaO8h6Rf1YCNSLlupGyT3i/b6kQIoxke8+tsGzpw1jbWxeneu5WXvWWmO
	Nr+lYAuIDorCgqGHD9JxYqOpxl2bbWUHDnXpLq+FpVdSzdkAatecNZbobWFStJzCpUZsyqpelke
	2W2c0wCPmuFzNQ+gA6TjqGkK/6YDePOEzjyuO6O8AYMFHZ/5Pl0Rl7BrEh+T3kj4M252olWdaGF
	Xizgj551e4fg94bJWrWuQGq5XQgPKYTLf5h5bVuUYqICLuhRg9Zm47I8DCrq69+1iujWZ7Lyur3
	SQCg7IfxISx/VnLmm1pFXFMUKRhKMn5b3POS0aS8257GHaXMqrNRqysjA=
X-Google-Smtp-Source: AGHT+IFKzpOme1QoQZKm69yZjH0M8TGOwskoB+WF8n77mYFYytG3haM619jFd2MNGI7ZzxliYNXWhA==
X-Received: by 2002:a17:907:7206:b0:b73:4006:1875 with SMTP id a640c23a62f3a-b7d2377822fmr1956126866b.38.1765990467878;
        Wed, 17 Dec 2025 08:54:27 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 0/3] RISC-V: Introduce vSBI framework
Date: Wed, 17 Dec 2025 17:54:17 +0100
Message-ID: <cover.1765888425.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the vSBI framework to handle extension ecall instruction calls
from a guest.

In this patch series, support is added for only a few extensions and FIDs,
just enough to boot the first guest domains and obtain logs from them. This
keeps the patch series independent from other ongoing work.

It was decided to start with support for the Legacy Extension, as it is still
supported by Linux (so we may need it anyway), and because some of its FIDs
require less functionality to implement at this stage compared to the more
modern extensions.

---
Chabges in v2:
 - Address a comments from v1.
---

Oleksii Kurochko (3):
  xen/riscv: introduce vSBI extension framework
  xen/riscv: add RISC-V legacy SBI extension support for guests
  xen/riscv: add RISC-V virtual SBI base extension support for guests

 xen/arch/riscv/Makefile                |  1 +
 xen/arch/riscv/entry.S                 |  6 +++
 xen/arch/riscv/include/asm/processor.h |  1 +
 xen/arch/riscv/include/asm/sbi.h       | 18 ++++++-
 xen/arch/riscv/include/asm/vsbi.h      | 32 ++++++++++++
 xen/arch/riscv/riscv64/asm-offsets.c   |  1 +
 xen/arch/riscv/setup.c                 |  3 ++
 xen/arch/riscv/traps.c                 |  8 +++
 xen/arch/riscv/vsbi/Makefile           |  3 ++
 xen/arch/riscv/vsbi/base-extension.c   | 71 ++++++++++++++++++++++++++
 xen/arch/riscv/vsbi/core.c             | 56 ++++++++++++++++++++
 xen/arch/riscv/vsbi/legacy-extension.c | 65 +++++++++++++++++++++++
 xen/arch/riscv/xen.lds.S               |  7 +++
 13 files changed, 270 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/vsbi.h
 create mode 100644 xen/arch/riscv/vsbi/Makefile
 create mode 100644 xen/arch/riscv/vsbi/base-extension.c
 create mode 100644 xen/arch/riscv/vsbi/core.c
 create mode 100644 xen/arch/riscv/vsbi/legacy-extension.c

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 17 16:54:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 16:54:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188965.1509980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVunM-0003fj-9D; Wed, 17 Dec 2025 16:54:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188965.1509980; Wed, 17 Dec 2025 16:54:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVunM-0003fW-5L; Wed, 17 Dec 2025 16:54:36 +0000
Received: by outflank-mailman (input) for mailman id 1188965;
 Wed, 17 Dec 2025 16:54:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ddEZ=6X=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVunK-0003An-3U
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 16:54:34 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0ee1d115-db69-11f0-9cce-f158ae23cfc8;
 Wed, 17 Dec 2025 17:54:31 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b7355f6ef12so1166558066b.3
 for <xen-devel@lists.xenproject.org>; Wed, 17 Dec 2025 08:54:31 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa5d1e89sm2015077966b.69.2025.12.17.08.54.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 17 Dec 2025 08:54:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ee1d115-db69-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765990471; x=1766595271; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HProhutWVGlAtxwETbSQ5hkPTg+rlxBFKSeiQ584ZZ8=;
        b=Xwl5f+mQLtMQeO7NucwY7GzQkPHCKK1dEuvgD3r9fOD+3PCyE0dMaxoZouvgnAZMsI
         yKkpDY5W6zZNGz0zXDIPqbxBgjaFshIkh4vN/Pohs3nKK8+/f+M7Nd7RX3saHlwj5Sbs
         ln9OBt5vezar28AjM9UJ3qQmS4XMdAr7rO9G4MHnrM7gkPSlEmYl4d9tfIk1gCc/MimE
         WSPXxINToNKpVkpTTr0phYosAh9LQ8gxuJEfH7mGd4mzMmQjW6gh0SjgchZHXxXAtTMr
         ukFfDIPvaZJiqaCSElp1QrYcZXa+CXdhIv25uTHfKeJPRSqWCMN0CRkRcS2xkQvLltkX
         IGmQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765990471; x=1766595271;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=HProhutWVGlAtxwETbSQ5hkPTg+rlxBFKSeiQ584ZZ8=;
        b=wnaapf1vaM95z1hLPuJO0eiLFn1p2eHnHNELlAu9XcO/jAwKxfGQlykp5TI+MzFAbL
         CvDWn0RrRMADbldqgNezSqvxVl09ozuXrzn5scc/EML934sXxDnQtBsrJ19Q+NhlChff
         AJ1pWpfjIH2oVQWadn0/4Rfx2OkZ5woNQkzlhIQNkwJB0BOWfhaw82oUZWHlcChuaKq4
         B57kWos7hsbO7hPpHSRkN67mBzl17xA+TQMEPPgBgvL8s3E2D2CvE/hpigZH291zoWxN
         60NTux71F77wi0FioQAM+IV1WCFS2afBG3o1emZ/aZTNlJpv//CPKsLFLnArmsnJyTfR
         +O7w==
X-Gm-Message-State: AOJu0YxJV8lgBwwlhqSObLwiqupQtlaXxSUbChpOrlNYbxIRFAub6HT/
	wne/iEwXWJ8HGSB2aKqqwB+YFHHqIB1HFa38zVhUYQikrO9jZRK8ffa7hlsY/g==
X-Gm-Gg: AY/fxX5NbVTEv3IPjlNA2twCIrihNH+C76H0uiqylJnAO0mWEMySX6d9zBZT8DdrCeB
	syQ5uW70lUPyu5QHFt4UtHJX7cZmQ52/bmevLpUO5yxLRoaoijjkHapXl2Z9tsZwk3yeNzr3csp
	nd0xyq7Kpdf50HZ3w2yfmKdMKi6mdwBufA8MuOK52UzyMkE2nwzpRwj1YmYExUxx1Mbe6nMOYBP
	iYgTeKGq1RZakVmBiM36u1ODM08xZdE1JY8jmzD8dBPT6h4MsiMNsTrc5Gt1ZLQfVbVuNPzXDjL
	ERAscgESzvEElDC0GpIcRow3STU9VjE9iDIPGxG/MmuGE4WIbF1ux7RSW0lOMMDABTs+HM4rNGO
	ndxb7cykD4mDD3ab+9e/clsrbZRmi8d+4jASB3WRtQOL+6aX/eL/Otl50EilKXacPhCgq2eft1y
	qb9iJzgJKD9Ac4mLG9V56tEVURYef8h/nNv8JB2AcV7ie76TFXoKTUoxk=
X-Google-Smtp-Source: AGHT+IG1H3GtPgFSOJHR9vgrIn0wXF1xLUG3R3t5vkJcnFXHHJV3MrSFklOcRbKrp1y1mVpyVM3LIA==
X-Received: by 2002:a17:907:7f23:b0:b72:588:2976 with SMTP id a640c23a62f3a-b7d23d1390bmr1805073066b.60.1765990470626;
        Wed, 17 Dec 2025 08:54:30 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 3/3] xen/riscv: add RISC-V virtual SBI base extension support for guests
Date: Wed, 17 Dec 2025 17:54:20 +0100
Message-ID: <2e42e8ee51badcfa2cb16e3db71fdecaac445bca.1765888425.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765888425.git.oleksii.kurochko@gmail.com>
References: <cover.1765888425.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add support of virtual SBI base extension calls for RISC-V guests, delegating
hardware-specific queries to the underlying SBI and handling version and
firmware ID queries directly.

The changes include:
1. Define new SBI base extension function IDs (SBI_EXT_BASE_GET_MVENDORID,
   SBI_EXT_BASE_GET_MARCHID, SBI_EXT_BASE_GET_MIMPID).
2. Introduce XEN_SBI_VER_MAJOR, XEN_SBI_VER_MINOR for imeplenataion of
   SBI_EXT_BASE_GET_SPEC_VERSION.
4. Introduce VCPU_SBI_IMPID to implement SBI_EXT_BASE_GET_IMP_ID.
5. Implement handling of SBI base extension functions, including version,
   firmware ID, and machine-specific queries.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - s/vsbi-base-extension.*/base-extension.*
 - Introduce VCPU_SBI_IMPID, XEN_SBI_VER_MINOR and XEN_SBI_VER_MAJOR.
 - Return VCPU_SBI_IMPID in the case of SBI_EXT_BASE_GET_IMP_ID.
 - Return Xen version in the case of SBI_EXT_BASE_GET_IMP_VERSION.
 - Use domain_crash() instead of panic() for default case.
 - For SBI_EXT_BASE_GET_{MVENDORID,MARCHID,MIMPID} abd SBI_EXT_BASE_PROBE_EXT
   add handling of a domain is h/w or not.
---
 xen/arch/riscv/include/asm/sbi.h     |  7 +++
 xen/arch/riscv/vsbi/Makefile         |  1 +
 xen/arch/riscv/vsbi/base-extension.c | 71 ++++++++++++++++++++++++++++
 3 files changed, 79 insertions(+)
 create mode 100644 xen/arch/riscv/vsbi/base-extension.c

diff --git a/xen/arch/riscv/include/asm/sbi.h b/xen/arch/riscv/include/asm/sbi.h
index 751bae6d66..eb710950cc 100644
--- a/xen/arch/riscv/include/asm/sbi.h
+++ b/xen/arch/riscv/include/asm/sbi.h
@@ -14,6 +14,10 @@
 
 #include <xen/cpumask.h>
 
+#define XEN_SBI_VER_MAJOR 0
+#define XEN_SBI_VER_MINOR 2
+#define XEN_SBI_IMPID 7
+
 #define SBI_EXT_0_1_SET_TIMER               0x0
 #define SBI_EXT_0_1_CONSOLE_PUTCHAR         0x1
 #define SBI_EXT_0_1_CONSOLE_GETCHAR         0x2
@@ -32,6 +36,9 @@
 #define SBI_EXT_BASE_GET_IMP_ID         0x1
 #define SBI_EXT_BASE_GET_IMP_VERSION    0x2
 #define SBI_EXT_BASE_PROBE_EXT          0x3
+#define SBI_EXT_BASE_GET_MVENDORID      0x4
+#define SBI_EXT_BASE_GET_MARCHID        0x5
+#define SBI_EXT_BASE_GET_MIMPID         0x6
 
 /* SBI function IDs for RFENCE extension */
 #define SBI_EXT_RFENCE_REMOTE_FENCE_I           0x0
diff --git a/xen/arch/riscv/vsbi/Makefile b/xen/arch/riscv/vsbi/Makefile
index bc5755cb13..8ce470f787 100644
--- a/xen/arch/riscv/vsbi/Makefile
+++ b/xen/arch/riscv/vsbi/Makefile
@@ -1,2 +1,3 @@
+obj-y += base-extension.o
 obj-y += core.o
 obj-y += legacy-extension.o
diff --git a/xen/arch/riscv/vsbi/base-extension.c b/xen/arch/riscv/vsbi/base-extension.c
new file mode 100644
index 0000000000..567429c715
--- /dev/null
+++ b/xen/arch/riscv/vsbi/base-extension.c
@@ -0,0 +1,71 @@
+
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/lib.h>
+#include <xen/sched.h>
+#include <xen/version.h>
+
+#include <asm/processor.h>
+#include <asm/sbi.h>
+#include <asm/vsbi.h>
+
+static int vsbi_base_ecall_handler(struct vcpu *vcpu, unsigned long eid,
+                                   unsigned long fid,
+                                   struct cpu_user_regs *regs)
+{
+    int ret = 0;
+    struct sbiret sbi_ret;
+
+    switch ( fid ) {
+    case SBI_EXT_BASE_GET_SPEC_VERSION:
+        regs->a1 = MASK_INSR(XEN_SBI_VER_MAJOR, SBI_SPEC_VERSION_MAJOR_MASK) |
+                   XEN_SBI_VER_MINOR;
+        break;
+    case SBI_EXT_BASE_GET_IMP_ID:
+        regs->a1 = XEN_SBI_IMPID;
+        break;
+    case SBI_EXT_BASE_GET_IMP_VERSION:
+        regs->a1 = (xen_major_version() << 16) | xen_minor_version();
+        break;
+    case SBI_EXT_BASE_GET_MVENDORID:
+    case SBI_EXT_BASE_GET_MARCHID:
+    case SBI_EXT_BASE_GET_MIMPID:
+        if ( is_hardware_domain(vcpu->domain) )
+        {
+            sbi_ret = sbi_ecall(SBI_EXT_BASE, fid, 0, 0, 0, 0, 0, 0);
+            ret = sbi_ret.error;
+            regs->a1 = sbi_ret.value;
+        }
+        else
+            /*
+             * vSBI should present a consistent, virtualized view to guests.
+             * In particular, DomU-visible data must remain stable across
+             * migration and must not expose hardware-specific details.
+             *
+             * These register(s) must be readable in any implementation,
+             * but a value of 0 can be returned to indicate the field
+             * is not implemented.
+             */
+            regs->a1 = 0;
+
+        break;
+    case SBI_EXT_BASE_PROBE_EXT:
+        regs->a1 = vsbi_find_extension(regs->a0) ? 1 : 0;
+        break;
+    default:
+        /*
+         * TODO: domain_crash() is acceptable here while things are still under
+         * development.
+         * It shouldn't stay like this in the end though: guests should not
+         * be punished like this for something Xen hasn't implemented.
+         */
+        domain_crash(vcpu->domain,
+                     "%s: Unsupported ecall: FID: #%lx, EID: #%lx\n",
+                     __func__, fid, eid);
+        break;
+    }
+
+    return ret;
+}
+
+VSBI_EXT(base, SBI_EXT_BASE, SBI_EXT_BASE, vsbi_base_ecall_handler)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 17 16:54:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 16:54:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188963.1509960 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVunJ-0003DI-LY; Wed, 17 Dec 2025 16:54:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188963.1509960; Wed, 17 Dec 2025 16:54:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVunJ-0003D9-IR; Wed, 17 Dec 2025 16:54:33 +0000
Received: by outflank-mailman (input) for mailman id 1188963;
 Wed, 17 Dec 2025 16:54:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ddEZ=6X=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVunI-0003An-FR
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 16:54:32 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0ddc1f4d-db69-11f0-9cce-f158ae23cfc8;
 Wed, 17 Dec 2025 17:54:30 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b79af62d36bso146021766b.3
 for <xen-devel@lists.xenproject.org>; Wed, 17 Dec 2025 08:54:30 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa5d1e89sm2015077966b.69.2025.12.17.08.54.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 17 Dec 2025 08:54:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ddc1f4d-db69-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765990469; x=1766595269; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kQk7ZnANczFPXo4k/D8bh9dPiQ3Gd6pMKZAsRVMfKwc=;
        b=KWi0IFtrRUFVtG6KjKkjy9sWzjALC6noIilmwWAMMB7G4WrGJtp5I8lV9acjB7PrA5
         HiAew+JI12s5CO8TbDyPQe7+bREz9FnrIil8qQrR0M+t0t+zK9Y7MK070HIUPu6uRCb1
         RtBSrLcdqphbM+2I96+gYY0T/REEFDxCeKJdgNi+sKccVMMYjTZrpJAqvW6eskExYsvi
         e75+gtJjhU9drmSGsrsmifGI36Ga/tJJZg57E8g55hvk6ZKBw6i8QDVufH48JgjyD16q
         Df2qzZiza2zNL/P044v5hdy+k0bnESvC7N9oyc1+w+U19oYlqJBTytldpKZsc/+gJzkp
         XdCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765990469; x=1766595269;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=kQk7ZnANczFPXo4k/D8bh9dPiQ3Gd6pMKZAsRVMfKwc=;
        b=IBcjbpm8Snj01oQwbbhiRTjqCUoJSmO/5YSXM6leipuYxFQsraDdn/q8yn1ni5CaDq
         BDT1oEZaBfxyAGSVIF+fD0MkQQqrqQcv4knadiDNjqTqX7kfPYc48honRi1vMmobwjlf
         68NQCQ6m3deYFxxAKLY4D6i0dYyVdhXbyzWKjfj2yQAeFV+Y8DFSvh+qrJKMPkh8ycZN
         fad9AQ3Bj1EkwitQcWcCCPLRkXtJYigjndDRNda7u1x/cNNd13/RJBUMXnUzzhrnrBfO
         Amm+V9S0MoGUgoyB66EpHNwtMAPy29JGLsnsd2DjQoxpOCo5aP3aKTtMHNPxlhFmaDsq
         Gqww==
X-Gm-Message-State: AOJu0Yxpp2sYIBT9up63zBfOlq9VzSQOZv8DejF2f7abMkSeYOabGmmz
	o0KIczPiM2ftn9R9mVL46djpWWbvKJhE5AmhRJN6HolKoshSosjJb1OrGz1zcg==
X-Gm-Gg: AY/fxX60BguPoJNBnkwCmZ8PkibBqzPvxvRyLQ/cfsxQDukLDQttBCrDHym15uLcXRT
	L05M6myNfl/tZFdy/G584d2nVcTX3JK7ftr+ghjanVV3pGrnawh7DX3fSv4fsGVdDawqk0q78ig
	9RCOXyxSS+GjKX3AYcSUraCiFreovCBx+HA+8sOWgg7FpvqJU1qOviOm0GY8nUpO0JysieusF0p
	ABsgOnS/Y/9pbOiABMawdIEmX9Tmgh+tjS+pKROyajUAImppjwZTAlPHLRj6cMucaCAdzebPc7J
	3CuyeAlcpwwjDd/D2iTygtGrMQNnd3Y9jOyHdNDMxxDQ/us8aEO4cbFHFfsgsEZYUVeB9sZIIee
	/85Tu/kUOZf7KE2u3omnGBrGmXdaL79Lt4Ja7W7JCysI0qF9TIy3MN8K6OtR4dJyDKqhUA53T+G
	MWT8jnr/07vQ477i8rgAVY9W75bzfxsMnE9koNf6OuBl5V5guRGET6Mw4=
X-Google-Smtp-Source: AGHT+IHqilvwj5t8yrsGPSAYmL11A43Cp28OZZNp5iLgT32cQWncDyFE/6JLXBfxQEHwTLlQVsgdAw==
X-Received: by 2002:a17:907:2d8d:b0:b76:23b0:7d89 with SMTP id a640c23a62f3a-b7d236265abmr1903765666b.14.1765990468825;
        Wed, 17 Dec 2025 08:54:28 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 1/3] xen/riscv: introduce vSBI extension framework
Date: Wed, 17 Dec 2025 17:54:18 +0100
Message-ID: <dc1045d1831908678a1e4a79571adab2ab362ef6.1765888425.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765888425.git.oleksii.kurochko@gmail.com>
References: <cover.1765888425.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This commit introduces support for handling virtual SBI extensions in Xen.

The changes include:
- Added new vsbi/core.c and vsbi.h files to implement virtual SBI extension
  handling.
- Modified traps.c to handle CAUSE_VIRTUAL_SUPERVISOR_ECALL by calling
  vsbi_handle_ecall() when the trap originates from VS-mode.
- Updated xen.lds.S to include a new .vsbi.exts section for virtual SBI
  extension data.
- Updated Makefile to include the new vsbi/ directory in the build.
- Add hstatus register to struct cpu_user_regs as it is needed for
  a check that CAUSE_VIRTUAL_SUPERVISOR_ECALL happens from VS-mode.
  Also, add storing/restoring of hstatus register in handle_trap().
- Introduce vsbi_find_extension() to check if vsbi extension is supported
  by Xen. For now it is called only inside vsbi/core.c, but in future
  it is going to be called from other files.
- Introduce check_vsbi_ext_ranges() to check if there EIDs ranges
  overlapping between extensions.

The implementation allows for registration and handling of SBI
extensions via a new vsbi_ext structure and ".vsbi.exts" section,
enabling extensible virtual SBI support for RISC-V guests.

Note: All EIDs are printed in the format #%#lx and all FIDs in #%#lu, as
the SBI spec uses these formats. Printing them this way makes it easier to
search for them in the SBI spec.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - s/struct regs/struct cpu_user_regs.
 - s/handle/handler.
 - Drop extid_ prefix inside VSBI_EXT_START().
 - use BUG_ON() instead of panic to be sure that 
   CAUSE_VIRTUAL_SUPERVISOR_ECALL comes from VS-mode.
 - s/ext_id/eid for vsbi_find_extension().
 - Add the comment above VSBI_EXT_START about [start,end] range.
 - Drop check "&& ext->handler" in vsbi_handle_ecall() as it isn't
   be so that handler() isn't provided.
 - s/vsbi.c/core.c
 - s/vsbi_ext/ext for local variable inside vsbi_find_extension().
 - Update the commit message: add a note about FID and EID printing formats,
   add some information about vsbo_find_extension() function, and add info
   about check_vsbi_ext_ranges().
 - Introduce check_vsbi_ext_ranges() to be sure that there is no overlapping
   in EIDs range(s).
 - Add storing/restoring of hstatus register in handle_trap()[entry.S].
---
 xen/arch/riscv/Makefile                |  1 +
 xen/arch/riscv/entry.S                 |  6 +++
 xen/arch/riscv/include/asm/processor.h |  1 +
 xen/arch/riscv/include/asm/vsbi.h      | 32 +++++++++++++++
 xen/arch/riscv/riscv64/asm-offsets.c   |  1 +
 xen/arch/riscv/setup.c                 |  3 ++
 xen/arch/riscv/traps.c                 |  8 ++++
 xen/arch/riscv/vsbi/Makefile           |  1 +
 xen/arch/riscv/vsbi/core.c             | 56 ++++++++++++++++++++++++++
 xen/arch/riscv/xen.lds.S               |  7 ++++
 10 files changed, 116 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/vsbi.h
 create mode 100644 xen/arch/riscv/vsbi/Makefile
 create mode 100644 xen/arch/riscv/vsbi/core.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 9dde693db4..87c1148b00 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -20,6 +20,7 @@ obj-y += time.o
 obj-y += traps.o
 obj-y += vmid.o
 obj-y += vm_event.o
+obj-y += vsbi/
 
 $(TARGET): $(TARGET)-syms
 	$(OBJCOPY) -O binary -S $< $@
diff --git a/xen/arch/riscv/entry.S b/xen/arch/riscv/entry.S
index 4db818ba8d..202a35fb03 100644
--- a/xen/arch/riscv/entry.S
+++ b/xen/arch/riscv/entry.S
@@ -48,11 +48,17 @@ save_to_stack:
         csrr    t0, CSR_SSTATUS
         REG_S   t0, CPU_USER_REGS_SSTATUS(sp)
 
+        csrr    t0, CSR_HSTATUS
+        REG_S   t0, CPU_USER_REGS_HSTATUS(sp)
+
         mv      a0, sp
         call    do_trap
 
 restore_registers:
         /* Restore stack_cpu_regs */
+        REG_L	t0, CPU_USER_REGS_HSTATUS(sp)
+        csrw	CSR_HSTATUS, t0
+
         REG_L   t0, CPU_USER_REGS_SEPC(sp)
         csrw    CSR_SEPC, t0
         REG_L   t0, CPU_USER_REGS_SSTATUS(sp)
diff --git a/xen/arch/riscv/include/asm/processor.h b/xen/arch/riscv/include/asm/processor.h
index 2502045642..6b89df4a2d 100644
--- a/xen/arch/riscv/include/asm/processor.h
+++ b/xen/arch/riscv/include/asm/processor.h
@@ -49,6 +49,7 @@ struct cpu_user_regs
     unsigned long t6;
     unsigned long sepc;
     unsigned long sstatus;
+    unsigned long hstatus;
     /* pointer to previous stack_cpu_regs */
     unsigned long pregs;
 };
diff --git a/xen/arch/riscv/include/asm/vsbi.h b/xen/arch/riscv/include/asm/vsbi.h
new file mode 100644
index 0000000000..47a38dce02
--- /dev/null
+++ b/xen/arch/riscv/include/asm/vsbi.h
@@ -0,0 +1,32 @@
+/* SPDX-License-Identifier:  GPL-2.0-only */
+
+#ifndef ASM_RISCV_VSBI_H
+#define ASM_RISCV_VSBI_H
+
+struct cpu_user_regs;
+struct vcpu;
+
+struct vsbi_ext {
+    const char *name;
+    unsigned long eid_start;
+    unsigned long eid_end;
+    int (*handler)(struct vcpu *vcpu, unsigned long eid,
+                   unsigned long fid, struct cpu_user_regs *regs);
+};
+
+/* Ranges (start and end) are inclusive within an extension */
+#define VSBI_EXT(ext, start, end, handle)           \
+static const struct vsbi_ext vsbi_ext_##ext __used  \
+__section(".vsbi.exts") = {                         \
+    .name = #ext,                                   \
+    .eid_start = start,                             \
+    .eid_end = end,                                 \
+    .handler = handle,                              \
+};
+
+void vsbi_handle_ecall(struct vcpu *vcpu, struct cpu_user_regs *regs);
+const struct vsbi_ext *vsbi_find_extension(unsigned long eid);
+
+void check_vsbi_ext_ranges(void);
+
+#endif
diff --git a/xen/arch/riscv/riscv64/asm-offsets.c b/xen/arch/riscv/riscv64/asm-offsets.c
index 3b5daf3b36..472cced4f8 100644
--- a/xen/arch/riscv/riscv64/asm-offsets.c
+++ b/xen/arch/riscv/riscv64/asm-offsets.c
@@ -49,6 +49,7 @@ void asm_offsets(void)
     OFFSET(CPU_USER_REGS_T6, struct cpu_user_regs, t6);
     OFFSET(CPU_USER_REGS_SEPC, struct cpu_user_regs, sepc);
     OFFSET(CPU_USER_REGS_SSTATUS, struct cpu_user_regs, sstatus);
+    OFFSET(CPU_USER_REGS_HSTATUS, struct cpu_user_regs, hstatus);
     OFFSET(CPU_USER_REGS_PREGS, struct cpu_user_regs, pregs);
     BLANK();
     DEFINE(PCPU_INFO_SIZE, sizeof(struct pcpu_info));
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 8f46f1a1de..9b4835960d 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -26,6 +26,7 @@
 #include <asm/sbi.h>
 #include <asm/setup.h>
 #include <asm/traps.h>
+#include <asm/vsbi.h>
 
 /* Xen stack for bringing up the first CPU. */
 unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
@@ -110,6 +111,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     end_boot_allocator();
 
+    check_vsbi_ext_ranges();
+
     /*
      * The memory subsystem has been initialized, we can now switch from
      * early_boot -> boot.
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index f061004d83..5c3d1988d7 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -15,6 +15,7 @@
 #include <asm/processor.h>
 #include <asm/riscv_encoding.h>
 #include <asm/traps.h>
+#include <asm/vsbi.h>
 
 /*
  * Initialize the trap handling.
@@ -114,6 +115,13 @@ void do_trap(struct cpu_user_regs *cpu_regs)
 
     switch ( cause )
     {
+    case CAUSE_VIRTUAL_SUPERVISOR_ECALL:
+        /* CAUSE_VIRTUAL_SUPERVISOR_ECALL should come from VS-mode */
+        BUG_ON(!(cpu_regs->hstatus & HSTATUS_SPV));
+
+        vsbi_handle_ecall(current, cpu_regs);
+        break;
+
     case CAUSE_ILLEGAL_INSTRUCTION:
         if ( do_bug_frame(cpu_regs, pc) >= 0 )
         {
diff --git a/xen/arch/riscv/vsbi/Makefile b/xen/arch/riscv/vsbi/Makefile
new file mode 100644
index 0000000000..820eb10ac2
--- /dev/null
+++ b/xen/arch/riscv/vsbi/Makefile
@@ -0,0 +1 @@
+obj-y += core.o
diff --git a/xen/arch/riscv/vsbi/core.c b/xen/arch/riscv/vsbi/core.c
new file mode 100644
index 0000000000..5ac4fee379
--- /dev/null
+++ b/xen/arch/riscv/vsbi/core.c
@@ -0,0 +1,56 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/sched.h>
+
+#include <asm/processor.h>
+#include <asm/sbi.h>
+#include <asm/vsbi.h>
+
+extern const struct vsbi_ext _svsbi_exts[], _evsbi_exts[];
+
+void __init check_vsbi_ext_ranges(void)
+{
+    for ( const struct vsbi_ext *a = _svsbi_exts; a != _evsbi_exts; a++ )
+        for ( const struct vsbi_ext *b = a + 1; b != _evsbi_exts; b++ )
+            if ( !(a->eid_end < b->eid_start || b->eid_end < a->eid_start) )
+                panic("EID range overlap detected: "
+                      "%s:[#%#lx..#%#lx] vs %s:[#%#lx..#%#lx]\n",
+                      a->name, a->eid_start, a->eid_end,
+                      b->name, b->eid_start, b->eid_end);
+}
+
+const struct vsbi_ext *vsbi_find_extension(unsigned long eid)
+{
+    const struct vsbi_ext *ext;
+
+    for ( ext = _svsbi_exts; ext != _evsbi_exts; ext++ )
+        if ( (eid >= ext->eid_start) && (eid <= ext->eid_end) )
+            return ext;
+
+    return NULL;
+}
+
+void vsbi_handle_ecall(struct vcpu *vcpu, struct cpu_user_regs *regs)
+{
+    const unsigned long eid = regs->a7;
+    const unsigned long fid = regs->a6;
+    const struct vsbi_ext *ext = vsbi_find_extension(eid);
+    int ret;
+
+    if ( ext )
+        ret = ext->handler(vcpu, eid, fid, regs);
+    else
+    {
+        printk("Unsupported Guest SBI EID #%#lx, FID #%lu\n", eid, regs->a1);
+        ret = SBI_ERR_NOT_SUPPORTED;
+    }
+
+    /*
+     * The ecall instruction is not part of the RISC-V C extension (compressed
+     * instructions), so it is always 4 bytes long. Therefore, it is safe to
+     * use a fixed length of 4 bytes instead of reading guest memory to
+     * determine the instruction length.
+     */
+    regs->sepc += 4;
+    regs->a0 = ret;
+}
diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
index 45d2e053d0..331a7d63d3 100644
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -61,6 +61,13 @@ SECTIONS
         __note_gnu_build_id_end = .;
     } :note :text
     #endif
+
+    . = ALIGN(POINTER_ALIGN);
+    DECL_SECTION(.vsbi.exts) {
+        _svsbi_exts = .;
+        *(.vsbi.exts)
+        _evsbi_exts = .;
+    } :text
     _erodata = .;                /* End of read-only data */
 
     . = ALIGN(PAGE_SIZE);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 17 16:54:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 16:54:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1188964.1509970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVunL-0003Qz-1S; Wed, 17 Dec 2025 16:54:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1188964.1509970; Wed, 17 Dec 2025 16:54:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVunK-0003Qs-U0; Wed, 17 Dec 2025 16:54:34 +0000
Received: by outflank-mailman (input) for mailman id 1188964;
 Wed, 17 Dec 2025 16:54:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ddEZ=6X=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vVunJ-0003An-3A
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 16:54:33 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0e3aa4cc-db69-11f0-9cce-f158ae23cfc8;
 Wed, 17 Dec 2025 17:54:30 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-649820b4b3aso4427797a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 17 Dec 2025 08:54:30 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7cfa5d1e89sm2015077966b.69.2025.12.17.08.54.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 17 Dec 2025 08:54:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0e3aa4cc-db69-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1765990470; x=1766595270; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Xk8VLGfP89HNwQj29hZGIP9LR5h0D6fyBDqrK9XH7AU=;
        b=nqeXuKJc5XiRRMXRIuSwfH6pDZnvgwy3bJWCn/Jgisazc9SWBYiaKmxBzuQAUrM+U5
         vOl/LfTZLPvywLmEDihU1peIxZgTqbTfZeKcR8l0tGeg1drbyH8W9rezyt7Uql+GYmmK
         UtYvR/SUGCp0YwfDAxTHQiwK56l6CfvAEACrsDS6YVRUw7vcMKxXnbC7iUFNyA//6PPO
         7GwKelkH8rx8oide/KBCTELO2icz7Ept60DVm/euSaq9WMn1xl8uXrtcw4guhRpd1QGg
         vg4iAE3ZSGBLg8P5+AfeflfJ0GMulCBb9C1j0K/npFnT++yWKb75dViEH4Iyn46KrDFh
         6VNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1765990470; x=1766595270;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Xk8VLGfP89HNwQj29hZGIP9LR5h0D6fyBDqrK9XH7AU=;
        b=CM6VZzHxC7MbnNb1agOwZUIT4x8cOHgJ/PAy50DFbh2NpD+hMT/yCSITkBTJFI1lFd
         iEpG9WHmvfTDipXVHniJ8luVFkJ7GKlufjp7qOFkvEnLVAjOctsPZjmZ2whU5bVxh5Qn
         Fyo21EFNn14iwznUIIQ4yCPOdImWOR1YnnZ58uuODtIzZecL9fpFN7kuXjviSW+H+k99
         5ta1YcvIGPlcmWxdxaZdQQCtY93QfJ24zHXq/DMgLpq9V4L6Hh5v0s0p6QVLBX9hvLrk
         yQdXw2WVTWcVrztznhgKeJymNs+Wvn6rZ9NWF87UkLv1pssLewnSK/zgRezHbZFwyZey
         6/Hw==
X-Gm-Message-State: AOJu0Yy9WdgaWtZNLUr9hLxFGwBE3JT5Z4A/xPBwOSgqyr8rYXCChAJS
	oWTTbm18auy1d5M8S3MY1DiDnqoAkXv02AnlHouZ1dwKqeEAHqPcnzv0SXQFSg==
X-Gm-Gg: AY/fxX5HNwywoQ/tdiwWys8Zdr4EJMEKl9G8bRnecp+lbvOUArGMMeYn91eHKHVDGui
	KkFcHIUzgpI9+so8zhLlRywOLMNzaGeeZ4MsMr3Jj/0utg5v9cgyWCXyJBaEBZfULNtI7m3SjCn
	ICFR2cGaZDj9ODcP+3YROqq2xm/u+WVGiZt9njcw0QhDMni/0vmOZAqtszEOvdJvyv/3P1esXnE
	4EMqSpqVMj9yWyUwNn3IFBdVm/fKUWtnZojf7oAejruCMfE/rTccvxxhK0d2zxRV6EvJGjvpi3s
	MF1XfNWPWoz7SPPgZ0qGgc9lVCCExVu22D7xR6Xt8NCD7OQc2b3DaIU1UXtfBbKgGtxf4G+g8J8
	9wB8HVHYUjyJAcZPk/m5EtbfPlVhCfRANfwYOssa+PAYeH5FwF1og0JGG3/U85GqY7ecZsSf9ZJ
	Nd56+KYXgQ8Ov18rhyOlMy+m6QvBQB03kARwidV+gmLFgldrezFGqyh5o=
X-Google-Smtp-Source: AGHT+IEMdu2XSHa6enoreBym9vX+fgimxJ1D+uQFmMT9LBHk2c/NxVbfJe3zJelR1wqkCmuusah+pw==
X-Received: by 2002:a17:907:68a2:b0:b80:448:37f1 with SMTP id a640c23a62f3a-b800448e482mr297467166b.10.1765990469724;
        Wed, 17 Dec 2025 08:54:29 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 2/3] xen/riscv: add RISC-V legacy SBI extension support for guests
Date: Wed, 17 Dec 2025 17:54:19 +0100
Message-ID: <df7a7e94fba79265138d6cc8d23b1f6b958f5bd5.1765888425.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1765888425.git.oleksii.kurochko@gmail.com>
References: <cover.1765888425.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This commit adds support for legacy SBI extensions (version 0.1) in Xen
for guest domains.

The changes include:
1. Define all legacy SBI extension IDs (0x0 to 0x8) for better clarity and
   completeness.
2. Implement handling of legacy SBI extensions, starting with support for
   SBI_EXT_0_1_CONSOLE_{PUT,GET}CHAR.

The implementation uses the existing virtual SBI framework to handle legacy
SBI ecalls, ensuring compatibility with older SBI specifications in
RISC-V guests.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - s/vsbi-legacy-extension.*/legacy-extension.*
 - Correct padding for SBI_EXT_0_1_* macros.
 - Set ret = SBI_ERR_NOT_SUPPORTED; in the case of vsbi_legacy_ecall_handler()
   instead of regs->a0 = ... as regs->a0 will be overwritten in
   vsbi_handle_ecall().
 - Use domain_crash() instead of panic() in vsbi_legacy_ecall_handler() and
   add TODO.
 - Use newly introduced VSBI_EXT macros instead of VSBI_EXT_{START,END}.
 - Introduce vsbi_print_line() and use it instead of plain printk() in the
   handler of SBI_EXT_0_1_CONSOLE_PUTCHAR.
---
 xen/arch/riscv/include/asm/sbi.h       | 11 ++++-
 xen/arch/riscv/vsbi/Makefile           |  1 +
 xen/arch/riscv/vsbi/legacy-extension.c | 65 ++++++++++++++++++++++++++
 3 files changed, 75 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/riscv/vsbi/legacy-extension.c

diff --git a/xen/arch/riscv/include/asm/sbi.h b/xen/arch/riscv/include/asm/sbi.h
index ade24a572d..751bae6d66 100644
--- a/xen/arch/riscv/include/asm/sbi.h
+++ b/xen/arch/riscv/include/asm/sbi.h
@@ -14,8 +14,15 @@
 
 #include <xen/cpumask.h>
 
-#define SBI_EXT_0_1_CONSOLE_PUTCHAR		0x1
-#define SBI_EXT_0_1_SHUTDOWN			0x8
+#define SBI_EXT_0_1_SET_TIMER               0x0
+#define SBI_EXT_0_1_CONSOLE_PUTCHAR         0x1
+#define SBI_EXT_0_1_CONSOLE_GETCHAR         0x2
+#define SBI_EXT_0_1_CLEAR_IPI               0x3
+#define SBI_EXT_0_1_SEND_IPI                0x4
+#define SBI_EXT_0_1_REMOTE_FENCE_I          0x5
+#define SBI_EXT_0_1_REMOTE_SFENCE_VMA       0x6
+#define SBI_EXT_0_1_REMOTE_SFENCE_VMA_ASID  0x7
+#define SBI_EXT_0_1_SHUTDOWN                0x8
 
 #define SBI_EXT_BASE                    0x10
 #define SBI_EXT_RFENCE                  0x52464E43
diff --git a/xen/arch/riscv/vsbi/Makefile b/xen/arch/riscv/vsbi/Makefile
index 820eb10ac2..bc5755cb13 100644
--- a/xen/arch/riscv/vsbi/Makefile
+++ b/xen/arch/riscv/vsbi/Makefile
@@ -1 +1,2 @@
 obj-y += core.o
+obj-y += legacy-extension.o
diff --git a/xen/arch/riscv/vsbi/legacy-extension.c b/xen/arch/riscv/vsbi/legacy-extension.c
new file mode 100644
index 0000000000..75280de3bc
--- /dev/null
+++ b/xen/arch/riscv/vsbi/legacy-extension.c
@@ -0,0 +1,65 @@
+
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/console.h>
+#include <xen/lib.h>
+#include <xen/sched.h>
+
+#include <asm/processor.h>
+#include <asm/vsbi.h>
+
+static void vsbi_print_line(char c)
+{
+    struct domain *cd = current->domain;
+    struct domain_console *cons = cd->console;
+
+    if ( !is_console_printable(c) )
+        return;
+
+    spin_lock(&cons->lock);
+    ASSERT(cons->idx < ARRAY_SIZE(cons->buf));
+    if ( c != '\n' )
+        cons->buf[cons->idx++] = c;
+    if ( (cons->idx == (ARRAY_SIZE(cons->buf) - 1)) || (c == '\n') )
+    {
+        cons->buf[cons->idx] = '\0';
+        guest_printk(cd, XENLOG_G_DEBUG "%s\n", cons->buf);
+        cons->idx = 0;
+    }
+    spin_unlock(&cons->lock);
+}
+
+static int vsbi_legacy_ecall_handler(struct vcpu *vcpu, unsigned long eid,
+                                     unsigned long fid,
+                                     struct cpu_user_regs *regs)
+{
+    int ret = 0;
+
+    switch ( eid )
+    {
+    case SBI_EXT_0_1_CONSOLE_PUTCHAR:
+        vsbi_print_line((char)regs->a0);
+        break;
+
+    case SBI_EXT_0_1_CONSOLE_GETCHAR:
+        ret = SBI_ERR_NOT_SUPPORTED;
+        break;
+
+    default:
+        /*
+         * TODO: domain_crash() is acceptable here while things are still under
+         * development.
+         * It shouldn't stay like this in the end though: guests should not
+         * be punished like this for something Xen hasn't implemented.
+         */
+        domain_crash(vcpu->domain,
+                     "%s: Unsupported ecall: FID: #%lx, EID: #%lx\n",
+                     __func__, fid, eid);
+        break;
+    }
+
+    return ret;
+}
+
+VSBI_EXT(legacy, SBI_EXT_0_1_SET_TIMER, SBI_EXT_0_1_SHUTDOWN,
+         vsbi_legacy_ecall_handler);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 17 17:01:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 17:01:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189011.1509990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVuu5-0006Hu-0y; Wed, 17 Dec 2025 17:01:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189011.1509990; Wed, 17 Dec 2025 17:01:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVuu4-0006Hn-UA; Wed, 17 Dec 2025 17:01:32 +0000
Received: by outflank-mailman (input) for mailman id 1189011;
 Wed, 17 Dec 2025 17:01:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZVrU=6X=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vVuu4-0006Hh-7P
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 17:01:32 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0768886f-db6a-11f0-9cce-f158ae23cfc8;
 Wed, 17 Dec 2025 18:01:29 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by PH7PR03MB7135.namprd03.prod.outlook.com (2603:10b6:510:2b3::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Wed, 17 Dec
 2025 17:01:25 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9434.001; Wed, 17 Dec 2025
 17:01:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0768886f-db6a-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wP76MNYdnIcKPtrKitKyMkIISE2/drelfTr/Spbyh9LTxjl7Ug6yK3tGa7Fya5gm5MNwOdQpFRLYoBUOzXRKCezPNWGoQvdLw8fHZHNlfQdscz1wrT2JkiUvf3qUtXHRY2YBVdH9BffP8ZQlUIDvmLnhTO/FRhnNpz+i7b+fv3CMhHjnwsRaJ3ckV41Iog4q+JQWWhaw1S5Mw26ZD3yUGIIoD5ls9kLJgKy45KXXIzLLI+QcMfGEg5xiMbxjJJuKAT8qQ0sOIoBRcdwaSNODZsiqrEIAdqjgi7NzgJmFxZCqBRU44Acqum6pHwQXt6aWFl8Pbkh3OzznrnkHjxRFqg==
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=QWprsbrae4k2Jc0QPq+N/R775a76gPyxb9eyeNMn99A=;
 b=C+sr2tipgzAkr+SdlHWQv8lzmlEMB0/lBcrFPdxWFfFWkcRbHe11tK2JDsgPj7niMD6QEk3HBXNRWYEls2TU+ymdvBJpq/j8EzPXSrrs5Ou5BuJnICPmw9kK4rUY5jzkrNxhZhrGgfIJJuH620A4TEgFrNK1kI90yfgnC7ffcAV0jSkf2Wz4Fcc4JKG/Y9cyjv8AzJap+vAr5pHtiJ2jtNurK2y8ir/f/KIAurB2BUNmwwQYY5iUwE5Yk2DyHMu9cC107n0VbVewW4XWiuRkKr8KMfSraeMUHyRJFpYyLoMDrfSnDLVaN/fWiT49KcoLpWMugTl6bwr4sDk+q6YjjA==
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=QWprsbrae4k2Jc0QPq+N/R775a76gPyxb9eyeNMn99A=;
 b=KXxclHTKxAOvAlrise2vD05gUwK/FFneJ/fvM5pdSl259xmGNVpzeccgb+kNjh47B67MKhLqekNPM+6NJ5vTh19VbpCFdG1RDWP18Mf0UxwG64Ly2R0jGUq1IyFUctQnI9yBRy8EwbB3TbU6Wx8jJ+y8e/LgSv8IqlfqzbMf4PQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 17 Dec 2025 18:01:21 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 4/4] tools/tests: Memory Claims
Message-ID: <aULh4QZeT7uZufVa@Mac.lan>
References: <20251216163230.2768186-1-andrew.cooper3@citrix.com>
 <20251216163230.2768186-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20251216163230.2768186-5-andrew.cooper3@citrix.com>
X-ClientProxiedBy: PR3P192CA0018.EURP192.PROD.OUTLOOK.COM
 (2603:10a6:102:56::23) To BY1PR03MB7875.namprd03.prod.outlook.com
 (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|PH7PR03MB7135:EE_
X-MS-Office365-Filtering-Correlation-Id: 5149d8b9-47b4-4277-46b2-08de3d8de9a6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VGlHclI4Rm4zOVRrN0JaMi9LeGQwNC9tUmNXL1B6UVM3dkF6VEJqUE1VMysw?=
 =?utf-8?B?ZlV5MTV4dDYzUFE5ZjE2bUI5NUdndUdXMHIzR1lZazg5RVpLNEVLUW1TSmsz?=
 =?utf-8?B?cHpzQnZRSlc0bVFWY0ZCRjRsaUN2YS9Vb0Q0ZTNhODNuWXkxUDh3MzFjd1lB?=
 =?utf-8?B?UThXVWdFSzRRcUt3WEpOUUdTSHBqOEdwNVU4U1BTREJlK2EyWnUxSVJ1T1Yw?=
 =?utf-8?B?Y0VLNlBhSjEvSGpsMnNPbU92Wk5KYnBlTVZCMktnRUFic005RDI4aTRpNERE?=
 =?utf-8?B?cVBnWkZSME5wL0gwendKZU54bFhldUdNTURMQS9jbDA3WExIcnJYa3VDbE9i?=
 =?utf-8?B?Zk1DUExuN1V5R1YxWCtKUTg2R1lkVytKMGc5NkJ2Zm1rU20rODJMdllmMUJX?=
 =?utf-8?B?aE5tZFZ5YnVGZHdINWQ5RUs1THE2S0w0ak9ha1AzbDdyYmNNandLRUtuVHg2?=
 =?utf-8?B?VTJoV1F0eUpzVUJlMkthd1Zna3BzaXJ0WGcxNVZnNGMvdGdjVVAwKzdZOTFB?=
 =?utf-8?B?cjJKdk9Oa2ZLYTVIaTB3a3BndStZVlVmZnRQdUVpcnFDQmxja3hXSkVKRmtv?=
 =?utf-8?B?Z0tCaXJ0a3ZPdlZJdkdJL3lOV3NkaWZXOU9pSlhFbnRPcXhmMU5SR3VGTDFG?=
 =?utf-8?B?UFp2cEJnY1VDbTNCbGtoUjAwcVd6OG9ESktvb0djbjNTYU1mRXl4WndMNGpq?=
 =?utf-8?B?UU5ST0l1L29zQ1FiOHplQTFKUmR1OUJ5WE9nSlNXMTRhcVZqNHJGTXM1aXdv?=
 =?utf-8?B?MXllQ3VPdkZBVHNzc05YVWt3eENxWitTeWVLV2pRRFFxSWVsZ2V0K1ZSN0VR?=
 =?utf-8?B?QjVPZ25Vd2NMQUJYY1l0MU5qdjNXRUU1NEkrbkVQV3hmRTM4ZFR6ZzVZRk13?=
 =?utf-8?B?V1FxdFc2MU9uMmRMYUt5MDZEbE5aZmdJMmVudHdDbkEzY0xhd2JRWDVJRmdy?=
 =?utf-8?B?ajk0cElIcTA4Uk5NN2huRjlCS0RtUVE5a1o1cjAvT0pDRXd4K3dPS3prc2ht?=
 =?utf-8?B?RVlpRzdUeXBsdHplTnIxMEFKSkIydGhzeVYzMnhDNDZ0MW5zbzhFMng4aS9F?=
 =?utf-8?B?bGF5aEJZT0xiMk1taWJ5ZHNtak5BS0o1VUxpaWdOWWtydXJGNUdnTUZBNFRa?=
 =?utf-8?B?YWt6NFBsMGJOdk5QR2dXcEJ3QXdGejhZbHJUNmxXVitYeW5PbFJBc0dPNG5r?=
 =?utf-8?B?R2JRbVcrVjhlYlpTRFkzYUw5N09WS2FibGk1Qk9BL0xGTVFhVWxxY1FYTmhX?=
 =?utf-8?B?V2owZG9LTzM0VHJZSEJsMlZIem5XWlp0MmdYN1NkSFVVT2NRTTRISCsxU01J?=
 =?utf-8?B?WlYxZXQzRDZPN1F0NFJwbDNiUnVsbjJGc0FCVHFuOHBRazVVbjFJT3p5OGRi?=
 =?utf-8?B?NXl3YUY3TUZLa0Jha3ZQaWhXYWtiSWw1Ujh3eHhxb0p2VTBWVDMxa0kzdTgx?=
 =?utf-8?B?aFZwcDJ5ZGt0bkpXU0x3c3RVV1RBMHFkVFJUVmR2cFMyMzFJYjZYd1NiMVg4?=
 =?utf-8?B?bjlXMGtqZ0JaUFVFcHdmdWEvc2ExN1pyTzhqdU1WRzZKWVRLOVQ4Q2lHcVpt?=
 =?utf-8?B?N3dyck9KQ29YTGc2bnkxVHNrUzd1S04wNjZxTFMxWkJIUS96cW9GR0srdDk2?=
 =?utf-8?B?WnlIVnF3UE1sWUxqY1I4bXpEbmczaldGSlZSUE0rOEppUURzTVZTR2pxVEdC?=
 =?utf-8?B?MExFeEVUV0Z4Mndjb1lMaGR6d0o0QzA1ZkxweTVoVTM4OVB1ZmoraldvdnVy?=
 =?utf-8?B?MGs2YVdWRXpuOGw3NUl5eERPcUdSSGVrMEVISGFqN0tIQjE5Ui9UWEltTmtp?=
 =?utf-8?B?UGt0Vk9JTkd2a1lOSWVweVBBTE54N3Z1MjA0R1RNZVJTOWJBWWV0RGd5SXlZ?=
 =?utf-8?B?aFZZTkVrZWZ6Mm1sWldvWERoN2NvZlEyNUZXREVQN1NXa0ptM2cyTVRtMENY?=
 =?utf-8?Q?nEE7F+RCXmukhy/o2/aqGYBwyEHkEdFV?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7875.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WkMrN2s1NjYvSGhZMVZqWmtxVUZ6QnBONHhhNVgxZGZaVFFQVjBNcHVQUFc3?=
 =?utf-8?B?TFhPZ242T2xnQktOemxjZzhMQzA1TlRjWklPb0h2SW9YLy9Nb3VQRFdmUFhL?=
 =?utf-8?B?ZzhBKyt5QzBqVFgyVmtjMXE4bDM1NHQ5Y3cvVkhzSVR4czFJN2o1VXdwT0pW?=
 =?utf-8?B?azJ0V2FGSHlEMXUzT3JvYjdHNEFNb251RnRncnRuSzRmY1IzLzY0czQyQm5q?=
 =?utf-8?B?VldDWE1KWWYrM0l4cm9sKzNDakk0N1lVUFNGYnFsRDRHbFZmWC8xZHdJVFJQ?=
 =?utf-8?B?OEFxZ3lCb3d5U0V2OTArTHRmTy9Hb3RwejZOYnFrK2lhNEE3dFdxNDh0bTFC?=
 =?utf-8?B?ZDlGN0pLOFdUR3NPdGZXcEVsOXhVeE5TR1pyd1ZWV0tvZW15ZnJJWmpKNVc0?=
 =?utf-8?B?aWRSWlBuOTJTWXBwcHJkZVBldHdZZkJwRFEyZnNkcWNsS2VsczdxVU9SRzFn?=
 =?utf-8?B?R3JOeVdGQXFkWlJablY4U3FxY3JBNExKYlRHN0NQS0lJUG9BYlR1UVZmczU5?=
 =?utf-8?B?NGFxeVVidVVxTXdrZSt4SDJzYWpaUjZVdW9LVGpaWjVabXIzSFpPUUdlblo3?=
 =?utf-8?B?RDE0QktENHRsRFpMSVNodWxwb2hYaGlqWlVrcWdRYTA1cXlyWURIVyt4dVJP?=
 =?utf-8?B?dFVmM0hsdEtxRDcyOHlaUlpiaEYvZ1VJMjdrNE5BVmt6QzU5REJMUmx1TXZq?=
 =?utf-8?B?VWdoWEVleUVhaXM1TFZycjRZN2R0c0Y0dllheDAzZ0k3SzBHeGoyZ1ZpQ1FP?=
 =?utf-8?B?NEhJM0JtYXhDNWN3YmE1UXVXWFVRMUFjOWw1b2xReDluU25uZjFVcWU5bXBE?=
 =?utf-8?B?Uk9DRGNpMXpoblBieXFsM0hOdlVOZ1VEM0ZQRjJReTFmb3NQMGlQK3UrK25B?=
 =?utf-8?B?SGF1YnA0cGVHUmtRayt6MnhqWWNwbWxhdnRnZ0NlcEx1YzhqQkRNdmx6ZFRT?=
 =?utf-8?B?QlB4V2pNakxON1Z3Q2hhVEJ6b2pHZDdXSFpwOU5jcUt1RHI4TkhTVmtkRmVL?=
 =?utf-8?B?bXloalROZ0k1Z2l2WHlHMWRtRWFBRU50SFkvM2huS2VzVVNqK1JycU9OUDlY?=
 =?utf-8?B?ZXFUS2JWd1VmRU1SdDRha282NXdPeWRIYmh4bmpPS2xWRkJTM281UTZ3aDhC?=
 =?utf-8?B?WVpjUTBleFJxcTJMVFlWaWlybStWYU5RU3lLVnRRc0NkelozRFArdmFkSUdC?=
 =?utf-8?B?V0x0OWtNODBsaXdSWWlDcUNDeGh3TndqbWh2Mk41VUpoSk1YQXlESTY5a3BX?=
 =?utf-8?B?c294UDlydWRIY0lPNnVlRjlnOTNhUHRIbWw4R0FKdVVDZkg2ejZKaUVwelp0?=
 =?utf-8?B?V2ZNWTgybUxrcloxZ3RlbnB6cG5tbDd1UFJxQUZLTXhRcTNlYW1lWmVxRzRv?=
 =?utf-8?B?UTBJUFRkRWwrZEc2MEs1ZkZJL0pIeE84NTJlYlp2c2RlZmU0QVQydDBiSi9N?=
 =?utf-8?B?eU81OFVZaTVzWFRuZUhjR1JXSG1RVHFHOUwwd0w4SGJxSGVCUVdWOXlGT0Fm?=
 =?utf-8?B?OWdXNXdQWENjVlRaaE1NSWllT09paWRrQ2s0aDJNeVRFbmh2TEZ2UmNacXgr?=
 =?utf-8?B?Z0xKZGgzU0NDZWtYODRkRnU4NmtkY0hQYnhvZ3I5TGRCWkszaS8wZVZ6dU1U?=
 =?utf-8?B?QnBkOHFxZW9VRDBQd3Z3eUplVDQrMzNyUS95cHdVaHp2cFRQSDdTQlpkUnBk?=
 =?utf-8?B?NnNONmY0ZXlMUzZpYWNvcjQ3SmFUbU8wSFlXazBQTVhnZU5EQitVbFc4U2M1?=
 =?utf-8?B?M1laeEZ2azFKU0hQajlSR0gwMVA3TmlmSlNYUldOb3JWYS8rSFFnMXU4UitL?=
 =?utf-8?B?dDY2VERMeHBmZm9KdENNQjdKKzFqZWJjdVNjVjdVTDF4dmh3RkQycFllUWps?=
 =?utf-8?B?UnlkT25VSjhxV0R5TGF1WExQYjFaNHBWMS9tZlNiTzRHZ2I4Sm50c0ZVMDNh?=
 =?utf-8?B?cEUzZUlvQ09abW51amlrM1FoSnhBMlYyUTdQS2NJMlBiK0JSazQzOTlVUEZ0?=
 =?utf-8?B?a1JjRklPZzVldmFwWjUzS0phTERxQXB3K01uSURnNTJ6b2x5YlY1Mjl4OUI4?=
 =?utf-8?B?YkN1SDBTQkNHWk9lSUhJeDVLanJpWmdjK0NKNlc4UFBjYTVvVGdFZFJIdThn?=
 =?utf-8?B?cUhoMG9zYTEzUERHWTk2VFhIakZTYkdlbWtkbHp3aGh4cnZSMEVYeURiSkVo?=
 =?utf-8?B?bXQ0S3ZPLzBuejlhTHE5QzBDN3Z5elI3N2xyc0p5MVpmSjJBN0puSVNXZXJv?=
 =?utf-8?B?OVc4RXpaL0g5cFFSZTkxbnovMG8vdUhXM0R3L1Erb1lqTFVFNnkrMWxucVBm?=
 =?utf-8?B?VFhvMUJZMndXVjdrM1VMeVkyTFFldm56TmNwa3FmckRwQmtHcUF0Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5149d8b9-47b4-4277-46b2-08de3d8de9a6
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2025 17:01:25.5112
 (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: zdnx6cGGE9wlr6mBgAIn/7Wc8yOO90lPMZgSptWIGYZ8JeZ1pEceJgtB+MCUewZK/VWuaMJzaWdVtp8FjpTlbw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB7135

On Tue, Dec 16, 2025 at 04:32:30PM +0000, Andrew Cooper wrote:
> Add some basic testing of the memory claims mechainsm.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Some nits below.

> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Jan Beulich <jbeulich@suse.com>
> CC: Julien Grall <julien@xen.org>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> ---
>  tools/tests/Makefile                   |   1 +
>  tools/tests/mem-claim/.gitignore       |   1 +
>  tools/tests/mem-claim/Makefile         |  38 +++++
>  tools/tests/mem-claim/test-mem-claim.c | 190 +++++++++++++++++++++++++
>  4 files changed, 230 insertions(+)
>  create mode 100644 tools/tests/mem-claim/.gitignore
>  create mode 100644 tools/tests/mem-claim/Makefile
>  create mode 100644 tools/tests/mem-claim/test-mem-claim.c
> 
> diff --git a/tools/tests/Makefile b/tools/tests/Makefile
> index e566bd169952..6477a4386dda 100644
> --- a/tools/tests/Makefile
> +++ b/tools/tests/Makefile
> @@ -3,6 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk
>  
>  SUBDIRS-y :=
>  SUBDIRS-y += domid
> +SUBDIRS-y += mem-claim
>  SUBDIRS-y += paging-mempool
>  SUBDIRS-y += pdx
>  SUBDIRS-y += rangeset
> diff --git a/tools/tests/mem-claim/.gitignore b/tools/tests/mem-claim/.gitignore
> new file mode 100644
> index 000000000000..cfcee00b819b
> --- /dev/null
> +++ b/tools/tests/mem-claim/.gitignore
> @@ -0,0 +1 @@
> +test-mem-claim
> diff --git a/tools/tests/mem-claim/Makefile b/tools/tests/mem-claim/Makefile
> new file mode 100644
> index 000000000000..76ba3e3c8bef
> --- /dev/null
> +++ b/tools/tests/mem-claim/Makefile
> @@ -0,0 +1,38 @@
> +XEN_ROOT = $(CURDIR)/../../..
> +include $(XEN_ROOT)/tools/Rules.mk
> +
> +TARGET := test-mem-claim
> +
> +.PHONY: all
> +all: $(TARGET)
> +
> +.PHONY: clean
> +clean:
> +	$(RM) -- *.o $(TARGET) $(DEPS_RM)
> +
> +.PHONY: distclean
> +distclean: clean
> +	$(RM) -- *~
> +
> +.PHONY: install
> +install: all
> +	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
> +	$(INSTALL_PROG) $(TARGET) $(DESTDIR)$(LIBEXEC)/tests
> +
> +.PHONY: uninstall
> +uninstall:
> +	$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/$(TARGET)
> +
> +CFLAGS += $(CFLAGS_xeninclude)
> +CFLAGS += $(CFLAGS_libxenctrl)
> +CFLAGS += $(APPEND_CFLAGS)
> +
> +LDFLAGS += $(LDLIBS_libxenctrl)
> +LDFLAGS += $(APPEND_LDFLAGS)
> +
> +%.o: Makefile
> +
> +$(TARGET): test-mem-claim.o
> +	$(CC) -o $@ $< $(LDFLAGS)
> +
> +-include $(DEPS_INCLUDE)
> diff --git a/tools/tests/mem-claim/test-mem-claim.c b/tools/tests/mem-claim/test-mem-claim.c
> new file mode 100644
> index 000000000000..78eae9091f52
> --- /dev/null
> +++ b/tools/tests/mem-claim/test-mem-claim.c
> @@ -0,0 +1,190 @@

SPDX header comment?

> +#include <err.h>
> +#include <errno.h>
> +#include <inttypes.h>
> +#include <stdio.h>
> +#include <string.h>
> +#include <sys/mman.h>
> +
> +#include <xenctrl.h>
> +#include <xenforeignmemory.h>
> +#include <xengnttab.h>
> +#include <xen-tools/common-macros.h>
> +
> +static unsigned int nr_failures;
> +#define fail(fmt, ...)                          \
> +({                                              \
> +    nr_failures++;                              \
> +    (void)printf(fmt, ##__VA_ARGS__);           \
> +})
> +
> +static xc_interface *xch;
> +static uint32_t domid = -1;

I think you could use domid_t and DOMID_INVALID as the default value?

And then you could avoid the casting and just use domid <
DOMID_FIRST_RESERVED as the check for whether the cleanup is needed?

> +
> +static xc_physinfo_t physinfo;
> +
> +static struct xen_domctl_createdomain create = {
> +    .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
> +    .max_vcpus = 1,
> +    .max_grant_frames = 1,
> +    .grant_opts = XEN_DOMCTL_GRANT_version(1),
> +
> +    .arch = {
> +#if defined(__x86_64__) || defined(__i386__)
> +        .emulation_flags = XEN_X86_EMU_LAPIC,
> +#endif
> +    },
> +};
> +
> +static void run_tests(void)
> +{
> +    int rc;
> +
> +    /*
> +     * Check that the system is quiescent.  Outstanding claims is a global
> +     * field.
> +     */
> +    rc = xc_physinfo(xch, &physinfo);
> +    if ( rc )
> +        return fail("Failed to obtain physinfo: %d - %s\n",
> +                    errno, strerror(errno));
> +
> +    printf("Free pages: %"PRIu64", Oustanding claims: %"PRIu64"\n",
> +           physinfo.free_pages, physinfo.outstanding_pages);
> +
> +    if ( physinfo.outstanding_pages )
> +        return fail("  Test needs running on a quiescent system\n");
> +
> +    /*
> +     * We want any arbitrary domain.  Start with HVM/HAP, falling back to
> +     * HVM/Shadow and then to PV.  The dom0 running this test case is one of
> +     * these modes.
> +     */
> +#if defined(__x86_64__) || defined(__i386__)
> +    if ( !(physinfo.capabilities & XEN_SYSCTL_PHYSCAP_hap) )
> +        create.flags &= ~XEN_DOMCTL_CDF_hap;
> +
> +    if ( !(physinfo.capabilities & (XEN_SYSCTL_PHYSCAP_hap|XEN_SYSCTL_PHYSCAP_shadow)) ||
> +         !(physinfo.capabilities & XEN_SYSCTL_PHYSCAP_hvm) )
> +    {
> +        create.flags &= ~XEN_DOMCTL_CDF_hvm;
> +        create.arch.emulation_flags = 0;
> +    }
> +#endif
> +
> +    rc = xc_domain_create(xch, &domid, &create);
> +    if ( rc )
> +        return fail("  Domain create failure: %d - %s\n",
> +                    errno, strerror(errno));
> +
> +    rc = xc_domain_setmaxmem(xch, domid, -1);
> +    if ( rc )
> +        return fail("  Failed to set maxmem: %d - %s\n",
> +                    errno, strerror(errno));
> +
> +    printf("  Created d%u\n", domid);
> +
> +    /*
> +     * Creating a domain shouldn't change the claim.  Check it's still 0.
> +     */
> +    rc = xc_physinfo(xch, &physinfo);
> +    if ( rc )
> +        return fail("  Failed to obtain physinfo: %d - %s\n",
> +                    errno, strerror(errno));
> +
> +    if ( physinfo.outstanding_pages )
> +        return fail("  Unexpected outstanding claim of %"PRIu64" pages\n",
> +                    physinfo.outstanding_pages);
> +
> +    /*
> +     * Set a claim for 4M.  This should be the only claim in the system, and
> +     * show up globally.
> +     */
> +    rc = xc_domain_claim_pages(xch, domid, 4*1024*1024/4096);

You can use MB(4) (macro is in tools/common-macros.h) I think for
clarity?  Same below with MB(2).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 17 17:22:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 17:22:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189038.1509999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVvEV-0000zP-Oc; Wed, 17 Dec 2025 17:22:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189038.1509999; Wed, 17 Dec 2025 17:22:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVvEV-0000zI-Lk; Wed, 17 Dec 2025 17:22:39 +0000
Received: by outflank-mailman (input) for mailman id 1189038;
 Wed, 17 Dec 2025 17:22:38 +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
 <SRS0=0CCj=6X=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vVvEU-0000yw-Cs
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 17:22:38 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id faca2a91-db6c-11f0-b15b-2bf370ae4941;
 Wed, 17 Dec 2025 18:22:36 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BL4PR03MB8038.namprd03.prod.outlook.com (2603:10b6:208:58d::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.7; Wed, 17 Dec
 2025 17:22:34 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9434.001; Wed, 17 Dec 2025
 17:22:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: faca2a91-db6c-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mh4juj0hEcECw24eDt3GCiGQ9U1zgDcutjuHwG2GsCrOCsts5V9VpRQtovagWswqCx35iVfW8aJIzN3rFqTGSENjcixirZBe3vMQ/4qmFdOreekCqR7JKF2qzHjK6Q9TdDOQGOIEIEdx0qzSt7nF565bAQiBqEw3okRgTLyfrSgwrSxXIxB6n52nB1eiNLkLEoqo6KMKVOpJErN4Sdv6UCvkM0XuiTOFJuUvyflhPYIyuFHZMD1oLzOtMZufs6aj8uXFw3TTSlM+IS38UgAhC1dSEOG3f7zyWkyU9kK+2LCV+2otGdgZOBx9BJjfOlhP7nhOFlDduMOatIO076dBng==
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=7F19xt8m3Ujw/SCZ/6VD7buWnc3810xHc2zKL9MkAtQ=;
 b=t07cys7+ShoOVCskSHgREtDruwLJ+4zr3mMIvp6Zk2Ztw5yq9tiwdVlGTGcx0TObWhrkfca0PHG4VBTpzM/f9vSXIAWSmUN66spuD5S8FITDA/2cetBKyKG+duL9Kpsy3f6DcWO55mb2LoQOkKNJSBP8Uyo67hYECCtu5ghtYiJZenGB48sKYOnvA+0f8KGjkLGyLv7pFaA9qCKbqZyFtgBc6VOFM0DrfOfl3l/R5O+bfJ+nij0Sv2QcBrSMzsMqgf7UysN0A1XBOz/psrKVAzXJIexrLcRYxDSArgAioUE2O2x6Na0AXkCpJ8Kok2v5iYn/08E1lUz6jUOWnuJEVQ==
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=7F19xt8m3Ujw/SCZ/6VD7buWnc3810xHc2zKL9MkAtQ=;
 b=TpLHFyUWYveaYe9OHZeB2Q9d9J+t+uI22PFeaisanYuxW5t6vwz8wLRGkgdDB07x+ZaNhqvn+v6JY8CiDan78HQ9KtAg3j0cTCiCiP7DpumQIufxfIjxwkaUu09VxFPfkMr5D3PhOrThfeo0l6GBKmEIVBtkubaqWufYWxMv4eY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e11d37cb-cb24-4d9f-a334-e59a251b22be@citrix.com>
Date: Wed, 17 Dec 2025 17:22:30 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 4/4] tools/tests: Memory Claims
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20251216163230.2768186-1-andrew.cooper3@citrix.com>
 <20251216163230.2768186-5-andrew.cooper3@citrix.com>
 <aULh4QZeT7uZufVa@Mac.lan>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <aULh4QZeT7uZufVa@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0367.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18e::12) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BL4PR03MB8038:EE_
X-MS-Office365-Filtering-Correlation-Id: 647cd747-54c1-4b0f-1637-08de3d90ddd8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Mk9SOGZ4eEdzdWxZSm1iY3QzWGFGYk1sTHJHd1lxZjNWL1B4ZHJUdzgzam5n?=
 =?utf-8?B?S1gwa3JXRXZUaHBWUy9WcDNrVURrYmtZNFplejliYTJ0RmZmM0dTK2FHTFFl?=
 =?utf-8?B?OVhxVjIzVEVXTHE1WTNxY2M4OXc3cW5QZnBXcEtnK2lwZndFbExvVjlDanhD?=
 =?utf-8?B?MzlhNmh0Ry9LYTB1LzJpR21raElOKzFwa2pGYkZWTzllWkx0RGkxSnUxNCtI?=
 =?utf-8?B?V2FTMGFDUVlDcStuT0VhdkRobnM5UDRsRkF6dXNScTlIVCtjS0JXaHVPeVlD?=
 =?utf-8?B?cmV2bExveVRQbzREeFplemMwN0xtd3VZVVAwL0c0eFd3ZzdUajRLMk1RaXBQ?=
 =?utf-8?B?aEhGVHNJTGNuQkt2aExGUTI2WGZxSkx4MGVQNU45SEZDOXQ3VWJWZTFhd2Ry?=
 =?utf-8?B?V2xPcS9xeC9OeDEweEcvY0lzM1JzU09vUlQ3R01PT0ZCZ1NMWWtkdE5wRW9T?=
 =?utf-8?B?NkplNi80SzdKR0FwNTdiaEg4Zy9QKzNpZXlHK1ZMTk9HQzdtamZyTGRlSG53?=
 =?utf-8?B?WndOTlF1UTRLTHM1VGJjcUZPVTdncE4rSU5KL2VMQ2NjS2hWRUx6cXVZbzNJ?=
 =?utf-8?B?aGlQRlZNZVNGRS9odlYvd203RUZiMXJ3YzdBUS90MTI3cE5kUnNEVklkMjNE?=
 =?utf-8?B?K2o1SnM1b0syMzlUbE13Mmx5MVFGdVRLRUNCaG5yaEl6bUJqVnhBTXRWdmtP?=
 =?utf-8?B?YzVIYjdVdTdFWjlENTFFTUJZZzh5SmhZN1RWNm5wTGV0a2laVS9kU01nVG54?=
 =?utf-8?B?TEFuSE1Hb3BPOWVNeExZa3RMaXhOWGNIMlZ2Mmtna1hwV1ZpL1dwMzRvVjZl?=
 =?utf-8?B?WE9xK05NT2F4b3gzeEJSdGluYSt5TEZDa2pQZUtiZG1jc2VHK2srQmx3TnJS?=
 =?utf-8?B?MnpEUHlEWmptSzJKRHFobXlSQ1pYeXhvcUxzV014SDRjTEZaNHlhczJQYjhX?=
 =?utf-8?B?ZDdaVkhGUThzRlgvN3NTK3pYZEdmVzJwN1hIbzhHNFlka2Z5K1dpcEd1a3hv?=
 =?utf-8?B?VFN3ZUE2UVIzTHBoZGdKaEhHdS96YlgydlhTUHJiTVhwVUNVREVmNWErdk9Z?=
 =?utf-8?B?dW8wYjZQNmwwVHEwU0Fjdy9tMm92MHJtWlJpbWJNazhNbWYxWTd3bFRHQzEv?=
 =?utf-8?B?N3JaN0xwTXIyWFg0d05hR3lFTnlzWldaanMyYUM5L3lYck5ESXRMUU54TmYr?=
 =?utf-8?B?ZGppVHlpRWZ5cFJCREplR0J5RGl2K0grRFlIam1WTTNQZ25tL2Y2Z2VILzZk?=
 =?utf-8?B?TGI5bGNoZk9qT1ArdUZtbmk0ZWNhUWp1N1plQ2RaWWpWOWZROXd0ZFJjWlln?=
 =?utf-8?B?NFJpaUlpR21ZclRIUVgzZTNmZHJvY0s3Q1Y4SURjTlpSNW1pdXl4MTNUcEE5?=
 =?utf-8?B?eUFvYjBTK1ZTZnpqZnlrMGxZYUNWdzdOZkovZEh0K3JjQnJ0eWxwdzFvT2N2?=
 =?utf-8?B?eUd4d0hSbEI0L1FZU1psOEJCcFZBS1JqY25ja1A5STk4OXNvRTFDNldvM1I1?=
 =?utf-8?B?akxHbWRvTHYya3pUSDU5VGxvN1plZ3JjM0pUNGNIc3RBNzdXbzlyTDVydFpy?=
 =?utf-8?B?VFFXM3JiRmltYUtYNWc1VlZwbE5vaElIbGRDTEJ4bFRNdDdvOVAxTGw2b1h0?=
 =?utf-8?B?RU9uOVREaE80bHJPY0wyeEZXQ1J2WFFTTTkzWENHczhtUFNYd1VyVU9lMTVj?=
 =?utf-8?B?UEo3ZzFLTEY4MGpRZTlSVm9Iai9Id0w5dnV3dktzSjM1ejE5V1U3Qit4a3lv?=
 =?utf-8?B?eVFrNjdUNndvaVZNMVVzRVZtZ2F6Mlo1UGFNRlVwaGdUVFI4Q3gzNVpBNndU?=
 =?utf-8?B?MVZrMEZ1dk1IZ2NtRWR2SlRHdG1ZaEhLOFZTcDdHWnFBVjZRbEU5VUt3MXQy?=
 =?utf-8?B?bjdzRTNwRko4Mks0aHhydlNaclFic1JVL0Z2RDUrY3VBMXFqVnd1YmVZNjdh?=
 =?utf-8?Q?SjagcLaRZCByAuSCVkzCduKo5v99KFk0?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?N2J3RVIxMk9naW5KaGJIelhucXAwZWNlZ3dyZkp1RjFWblR1VVdKeWZtZkNP?=
 =?utf-8?B?cXYxZnNKeEQrenhHZUVCSFBWaGp4b0c5eEY0U01DbHNmTXhJSjlZd0xGK3Vx?=
 =?utf-8?B?SDBWQkpXU2ZZKzJwQlhlSDFad3F5UHlEQXZBY05rQVlibGVRZjZBWnpTdm90?=
 =?utf-8?B?K3FZd3VaNWZFb3Bvd25ZVitkTkxRbjBxMnBCK2NJbkZHdkU3WTB0U1JGcmt1?=
 =?utf-8?B?d3BNeWpneGoveVJoNnpod0gvZ1hFOHp2ZGpYTzlzYTNIdmFQbi9FeTh2UUJV?=
 =?utf-8?B?ZHVVSjVXOGpxejBnSjBYN29FK2I3bDd1QzZDZkdOQ3IrMlp3VmF1RGdkb0Fk?=
 =?utf-8?B?TisremdhUWZoTnlOSXIwNFBBUC9rZVBtWndMOUhoN1F3Qlp0SysweXhIVnla?=
 =?utf-8?B?ZXJMMjJMSWI1b285UzJEMCs3QndWckJOZEFQK1RqcXpNM1pFRjQwYXprajQ2?=
 =?utf-8?B?SGthU0Y5eDZmWVdaSE9YRmU3QWh3ek8vNDhRRCtsZkFPNVBvemwrTElSTzR3?=
 =?utf-8?B?c29XSGU0OEprdUlSMGpRT3B0NXE5d0daYUdrM0FaZHR3SGIweUJsc05aMnY0?=
 =?utf-8?B?bWxIUHF2V3kzTkk1b0lGQnpndFc1c2Z0RGVvTmNGcWYvVUh5OFJlaHl2enNx?=
 =?utf-8?B?YzhsQWhvNE84WGxEZnZYQnBxVkx1cmo4dG1aUWsvWHhIZit3aHNoT3k0RTNG?=
 =?utf-8?B?UjNTUGFjdHB2ZlpFSmwvQ2hzZDBTelFmemdpeDk2MDRjMlVFWGpBQ3ljNDBl?=
 =?utf-8?B?dDB6S0FHNGRxcHZIQ3pFU0FlT01rWVBURU9QaEZqU0RDSUhneTJYSE9wZEhp?=
 =?utf-8?B?RGR5dVBjd1JNWGZpRVR3ZWpOdy9VVGJQeURjMlc5MTlkKzFDellkUWxwQmYz?=
 =?utf-8?B?OWRvRnQyK1hQSjl2K2lWcmxEQTkvKzdQcEprbUk5Yi9HUmtLNUdFT1RWa1NY?=
 =?utf-8?B?NlNUNVVIU0JVRkxrdGFiT3lJVUVyTCtleGRURUQ1K3QrMnppZE9HcURVT1BL?=
 =?utf-8?B?c0pKM2ZvRmd1YitJdXFPQUh5Q2cwQlpSL09VVTAwcFRVMWZMWFdVYTh3OHhw?=
 =?utf-8?B?aFBNVC82a1N3d0RSeTdibkR2aDdhZzArZTZtbUVUV2dxUCt2Tjc5b3QwS2o5?=
 =?utf-8?B?TnAwQzZSMTJhV2hSbytCRSt1cFpQRCt0aVc5R1RneWQxUWZDTVdQVVFodDkw?=
 =?utf-8?B?SVIrWHc0ek9pTkNxNnVSOXZLREs0VnN4RHYvZzAwejBDU1ljMTBjSmtWWVlJ?=
 =?utf-8?B?bXdXRGRvN1B2WGorSmRQWnNSWEEvdU5McktNMDhnRzlGTUIyblVmOG5NM0RG?=
 =?utf-8?B?WDluRXN0MUQyNEY1b0hyRWZaWkNJeVZxYXQ4WlZ5eVp1TTBjV3pEWHZzN1l0?=
 =?utf-8?B?THdSbHBGRC9HaHNubU1SVjZSVnJXemR2RzhRTHBWV1lxQlp5bUNaTHRXSnN0?=
 =?utf-8?B?b0k4VXp6VWhaWW1wVHd2QUNPYkNMMG5zemM0WWpkOWJaV3Z0cmZ2V2Rla25q?=
 =?utf-8?B?N0NXWWhycW43L0VPWGE5cU1xa2ZkSW1sbjI5ZFlBaVlpYkhTZS9hNittbVlt?=
 =?utf-8?B?UVJ2QlhzNUVqamxNNW9DZjRlTm5XUC9QemJ0TFlxb0I1OVFGNVRSZGhnT0Fm?=
 =?utf-8?B?bzJzS2lqN0ZYeDNwT21FNkdNMUozbUl2RER5ZVhOTlFiQkgzQXI4L2gvOCti?=
 =?utf-8?B?NXUxdUN3cFZMSVVLYXpLUk5zZis0YjlESzBpd1NDWFRWU0tIanBLUlBncTVS?=
 =?utf-8?B?bGZFelNFdkgxZTBBOU8yNWRoUWNDSjFNYXZzcW9YczRtU1V5M0JLaXpJaU5j?=
 =?utf-8?B?SDhueFpTUldhbFdCL3k0NnRnbFN2cHJjdEdOb21peTVsRk95TmtlK0dDbGVr?=
 =?utf-8?B?RXRNQlJiY0swbzNGQkpWN3ZNeEU5L2FCMHEwOW9kQ2xCbTBVcDVjbWszRG5H?=
 =?utf-8?B?T0dXVzV3dnVYV3hKRlhleFNvUlF5dHFYUVorV3JGRGRFSWNYSGpGRHZ5T3NN?=
 =?utf-8?B?OGU1WWhkSFhoWkIrbGxnWlNQajRkQTNCcGtic1Q5ajEvd0lxNUhpclRKZ1do?=
 =?utf-8?B?SjlVYjhMNUVhVW9SQjR1dkVmdkxYWC9WMkErTUo0MWRQRDM5TzZQekhTb0Fy?=
 =?utf-8?B?b2dhZWh6WTA4bUIwQm1DaDYyTVAxMG1ocDAyTGpFZjRLeUpFQlpkd0J4Y0Nt?=
 =?utf-8?B?MDZDNVE2WEo3ZFpwV3dqQWlvUnRSUTRxRGVxbEhRc0VnWWZRY0hYcmw0UWtw?=
 =?utf-8?B?aENsbXI2Q2VrMSt6MUdUeHpTaHpSaGF5OUV5eEhQeU9VZWZhN3FwVVRFYkFO?=
 =?utf-8?B?bitUOEdHVUQxak1oN25TVHdzMWRJVjVJL2tRQmMwTU1OSmpqdjhwV1JrSURL?=
 =?utf-8?Q?wAJwOMhvmdS+0Rqk=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 647cd747-54c1-4b0f-1637-08de3d90ddd8
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2025 17:22:34.0337
 (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: D+K8YttoukzMENMG0DnXeaB7GRPwPIKxSSqd4c8ZAVHjBfWVm5Du6VNhtYm/UYBQfWCU1zARornHVpfphU0XFPCUzOOapX68yQueFJIGPu0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL4PR03MB8038

On 17/12/2025 5:01 pm, Roger Pau Monné wrote:
> On Tue, Dec 16, 2025 at 04:32:30PM +0000, Andrew Cooper wrote:
>> Add some basic testing of the memory claims mechainsm.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

> Some nits below.
>
>> ---
>> CC: Anthony PERARD <anthony.perard@vates.tech>
>> CC: Michal Orzel <michal.orzel@amd.com>
>> CC: Jan Beulich <jbeulich@suse.com>
>> CC: Julien Grall <julien@xen.org>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> ---
>>  tools/tests/Makefile                   |   1 +
>>  tools/tests/mem-claim/.gitignore       |   1 +
>>  tools/tests/mem-claim/Makefile         |  38 +++++
>>  tools/tests/mem-claim/test-mem-claim.c | 190 +++++++++++++++++++++++++
>>  4 files changed, 230 insertions(+)
>>  create mode 100644 tools/tests/mem-claim/.gitignore
>>  create mode 100644 tools/tests/mem-claim/Makefile
>>  create mode 100644 tools/tests/mem-claim/test-mem-claim.c
>>
>> diff --git a/tools/tests/Makefile b/tools/tests/Makefile
>> index e566bd169952..6477a4386dda 100644
>> --- a/tools/tests/Makefile
>> +++ b/tools/tests/Makefile
>> @@ -3,6 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk
>>  
>>  SUBDIRS-y :=
>>  SUBDIRS-y += domid
>> +SUBDIRS-y += mem-claim
>>  SUBDIRS-y += paging-mempool
>>  SUBDIRS-y += pdx
>>  SUBDIRS-y += rangeset
>> diff --git a/tools/tests/mem-claim/.gitignore b/tools/tests/mem-claim/.gitignore
>> new file mode 100644
>> index 000000000000..cfcee00b819b
>> --- /dev/null
>> +++ b/tools/tests/mem-claim/.gitignore
>> @@ -0,0 +1 @@
>> +test-mem-claim
>> diff --git a/tools/tests/mem-claim/Makefile b/tools/tests/mem-claim/Makefile
>> new file mode 100644
>> index 000000000000..76ba3e3c8bef
>> --- /dev/null
>> +++ b/tools/tests/mem-claim/Makefile
>> @@ -0,0 +1,38 @@
>> +XEN_ROOT = $(CURDIR)/../../..
>> +include $(XEN_ROOT)/tools/Rules.mk
>> +
>> +TARGET := test-mem-claim
>> +
>> +.PHONY: all
>> +all: $(TARGET)
>> +
>> +.PHONY: clean
>> +clean:
>> +	$(RM) -- *.o $(TARGET) $(DEPS_RM)
>> +
>> +.PHONY: distclean
>> +distclean: clean
>> +	$(RM) -- *~
>> +
>> +.PHONY: install
>> +install: all
>> +	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
>> +	$(INSTALL_PROG) $(TARGET) $(DESTDIR)$(LIBEXEC)/tests
>> +
>> +.PHONY: uninstall
>> +uninstall:
>> +	$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/$(TARGET)
>> +
>> +CFLAGS += $(CFLAGS_xeninclude)
>> +CFLAGS += $(CFLAGS_libxenctrl)
>> +CFLAGS += $(APPEND_CFLAGS)
>> +
>> +LDFLAGS += $(LDLIBS_libxenctrl)
>> +LDFLAGS += $(APPEND_LDFLAGS)
>> +
>> +%.o: Makefile
>> +
>> +$(TARGET): test-mem-claim.o
>> +	$(CC) -o $@ $< $(LDFLAGS)
>> +
>> +-include $(DEPS_INCLUDE)
>> diff --git a/tools/tests/mem-claim/test-mem-claim.c b/tools/tests/mem-claim/test-mem-claim.c
>> new file mode 100644
>> index 000000000000..78eae9091f52
>> --- /dev/null
>> +++ b/tools/tests/mem-claim/test-mem-claim.c
>> @@ -0,0 +1,190 @@
> SPDX header comment?

Will do.

>
>> +#include <err.h>
>> +#include <errno.h>
>> +#include <inttypes.h>
>> +#include <stdio.h>
>> +#include <string.h>
>> +#include <sys/mman.h>
>> +
>> +#include <xenctrl.h>
>> +#include <xenforeignmemory.h>
>> +#include <xengnttab.h>
>> +#include <xen-tools/common-macros.h>
>> +
>> +static unsigned int nr_failures;
>> +#define fail(fmt, ...)                          \
>> +({                                              \
>> +    nr_failures++;                              \
>> +    (void)printf(fmt, ##__VA_ARGS__);           \
>> +})
>> +
>> +static xc_interface *xch;
>> +static uint32_t domid = -1;
> I think you could use domid_t and DOMID_INVALID as the default value?

Sadly can't.  Domid's are strictly uint32_t due to xc_domain_create()
taking it by pointer.

> And then you could avoid the casting and just use domid <
> DOMID_FIRST_RESERVED as the check for whether the cleanup is needed?

Hmm.  The DOMID_INVALID part of that is nice-ish, but having the
boundary check be a different constant isn't.

Maybe I can just do != DOMID_INVALID for the cleanup.

>
>> +
>> +static xc_physinfo_t physinfo;
>> +
>> +static struct xen_domctl_createdomain create = {
>> +    .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
>> +    .max_vcpus = 1,
>> +    .max_grant_frames = 1,
>> +    .grant_opts = XEN_DOMCTL_GRANT_version(1),
>> +
>> +    .arch = {
>> +#if defined(__x86_64__) || defined(__i386__)
>> +        .emulation_flags = XEN_X86_EMU_LAPIC,
>> +#endif
>> +    },
>> +};
>> +
>> +static void run_tests(void)
>> +{
>> +    int rc;
>> +
>> +    /*
>> +     * Check that the system is quiescent.  Outstanding claims is a global
>> +     * field.
>> +     */
>> +    rc = xc_physinfo(xch, &physinfo);
>> +    if ( rc )
>> +        return fail("Failed to obtain physinfo: %d - %s\n",
>> +                    errno, strerror(errno));
>> +
>> +    printf("Free pages: %"PRIu64", Oustanding claims: %"PRIu64"\n",
>> +           physinfo.free_pages, physinfo.outstanding_pages);
>> +
>> +    if ( physinfo.outstanding_pages )
>> +        return fail("  Test needs running on a quiescent system\n");
>> +
>> +    /*
>> +     * We want any arbitrary domain.  Start with HVM/HAP, falling back to
>> +     * HVM/Shadow and then to PV.  The dom0 running this test case is one of
>> +     * these modes.
>> +     */
>> +#if defined(__x86_64__) || defined(__i386__)
>> +    if ( !(physinfo.capabilities & XEN_SYSCTL_PHYSCAP_hap) )
>> +        create.flags &= ~XEN_DOMCTL_CDF_hap;
>> +
>> +    if ( !(physinfo.capabilities & (XEN_SYSCTL_PHYSCAP_hap|XEN_SYSCTL_PHYSCAP_shadow)) ||
>> +         !(physinfo.capabilities & XEN_SYSCTL_PHYSCAP_hvm) )
>> +    {
>> +        create.flags &= ~XEN_DOMCTL_CDF_hvm;
>> +        create.arch.emulation_flags = 0;
>> +    }
>> +#endif
>> +
>> +    rc = xc_domain_create(xch, &domid, &create);
>> +    if ( rc )
>> +        return fail("  Domain create failure: %d - %s\n",
>> +                    errno, strerror(errno));
>> +
>> +    rc = xc_domain_setmaxmem(xch, domid, -1);
>> +    if ( rc )
>> +        return fail("  Failed to set maxmem: %d - %s\n",
>> +                    errno, strerror(errno));
>> +
>> +    printf("  Created d%u\n", domid);
>> +
>> +    /*
>> +     * Creating a domain shouldn't change the claim.  Check it's still 0.
>> +     */
>> +    rc = xc_physinfo(xch, &physinfo);
>> +    if ( rc )
>> +        return fail("  Failed to obtain physinfo: %d - %s\n",
>> +                    errno, strerror(errno));
>> +
>> +    if ( physinfo.outstanding_pages )
>> +        return fail("  Unexpected outstanding claim of %"PRIu64" pages\n",
>> +                    physinfo.outstanding_pages);
>> +
>> +    /*
>> +     * Set a claim for 4M.  This should be the only claim in the system, and
>> +     * show up globally.
>> +     */
>> +    rc = xc_domain_claim_pages(xch, domid, 4*1024*1024/4096);
> You can use MB(4) (macro is in tools/common-macros.h) I think for
> clarity?  Same below with MB(2).

I'll wrap it as MB_TO_PAGES() to hide the divide by 4k.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 17 17:26:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 17:26:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189050.1510010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVvIf-0001Yo-86; Wed, 17 Dec 2025 17:26:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189050.1510010; Wed, 17 Dec 2025 17:26:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVvIf-0001Yh-5F; Wed, 17 Dec 2025 17:26:57 +0000
Received: by outflank-mailman (input) for mailman id 1189050;
 Wed, 17 Dec 2025 17:26:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1vVvId-0001YZ-SW
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 17:26:55 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vVvId-00EUBg-1T;
 Wed, 17 Dec 2025 17:26:55 +0000
Received: from [2a01:cb15:80df:da00:10d0:b82f:72a2:ac5] (helo=l14.home)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vVvId-00HRoz-1K;
 Wed, 17 Dec 2025 17:26:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	Message-ID:Date:Subject:Cc:To:From;
	bh=YKdZa4AhBMkMvm8eLm3m23ulduyONKMMUSpHwWVJzUI=; b=NjBs9XftDBmTrmxwmPzNSDaFNc
	YlmU01SNv0LQFJSJFJ5BvEk1rwDHXFq65KkeOy/1Yx3PVrOH1K+TOS26rDQo8hg9nK6BoUvBpvZVq
	vHSElSq0g5jiOOUF93B5Ur7wUW3kNqdnNJJPUseaPoZDwQf5+liwJou8e8t/fe+xBxmY=;
From: Anthony PERARD <anthony@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
Subject: [XEN PATCH] tools/xl: Fix when config "cpus" is set, but "vcpus" is missing
Date: Wed, 17 Dec 2025 18:26:33 +0100
Message-ID: <20251217172634.47487-1-anthony@xenproject.org>
X-Mailer: git-send-email 2.47.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Anthony PERARD <anthony.perard@vates.tech>

If we start a guest with 'cpus="all"' and without 'vcpus' or
'maxvcpus' (or sets them to 0), we execute parse_vcpu_affinity() with
`num_cpus=0`. This malloc "b_info->vcpu_hard_affinity" with a buffer
of size 0, which is implementation defined, and we still initialise
the "first" bitmap of this allocation, which mean we have a buffer
overflow.

On Alpine Linux, this result in a segv when the buffer is being
disposed of.

Since libxl will assume there's at least 1 vcpu, we default to 1 in
xl as well. (libxl sets max_vcpus to 1 if unset, and allocate
avail_vcpus if its size is 0.)

Link: https://gitlab.alpinelinux.org/alpine/aports/-/issues/17809
Fixes: a5dbdcf6743a ("libxl/xl: push VCPU affinity pinning down to libxl")
Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---

Notes:
    The fixes tag is approximate, it looks like before that commit, having
    max_cpus=0 was ok, I mean no buffer overflow, but still malloc(0).

 tools/xl/xl_parse.c | 22 +++++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index af86d3186d..1a2ea8b5d5 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -1518,14 +1518,22 @@ void parse_config_data(const char *config_source,
 
     if (!xlu_cfg_get_long (config, "vcpus", &l, 0)) {
         vcpus = l;
-        if (libxl_cpu_bitmap_alloc(ctx, &b_info->avail_vcpus, l)) {
-            fprintf(stderr, "Unable to allocate cpumap\n");
-            exit(1);
-        }
-        libxl_bitmap_set_none(&b_info->avail_vcpus);
-        while (l-- > 0)
-            libxl_bitmap_set((&b_info->avail_vcpus), l);
     }
+    if (vcpus < 1) {
+        /*
+         * Default to 1 vCPU, libxl is already assuming this
+         * when vcpus == 0 and parse_vcpu_affinity() also assume there's at
+         * least one vcpu.
+         */
+        vcpus = 1;
+    }
+    if (libxl_cpu_bitmap_alloc(ctx, &b_info->avail_vcpus, vcpus)) {
+        fprintf(stderr, "Unable to allocate cpumap\n");
+        exit(1);
+    }
+    libxl_bitmap_set_none(&b_info->avail_vcpus);
+    for (long vcpu = vcpus; vcpu-- > 0;)
+        libxl_bitmap_set((&b_info->avail_vcpus), vcpu);
 
     if (!xlu_cfg_get_long (config, "maxvcpus", &l, 0))
         b_info->max_vcpus = l;
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Wed Dec 17 19:13:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Dec 2025 19:13:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189111.1510051 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVwxT-0006vW-Rk; Wed, 17 Dec 2025 19:13:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189111.1510051; Wed, 17 Dec 2025 19:13:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vVwxT-0006vP-Ov; Wed, 17 Dec 2025 19:13:11 +0000
Received: by outflank-mailman (input) for mailman id 1189111;
 Wed, 17 Dec 2025 19:13:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=upHg=6X=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vVwxS-0006vJ-Uw
 for xen-devel@lists.xenproject.org; Wed, 17 Dec 2025 19:13:11 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6bb4afd6-db7c-11f0-9cce-f158ae23cfc8;
 Wed, 17 Dec 2025 20:13:08 +0100 (CET)
Received: from BYAPR02CA0017.namprd02.prod.outlook.com (2603:10b6:a02:ee::30)
 by SA3PR12MB7904.namprd12.prod.outlook.com (2603:10b6:806:320::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Wed, 17 Dec
 2025 19:13:03 +0000
Received: from SJ5PEPF000001F6.namprd05.prod.outlook.com
 (2603:10b6:a02:ee:cafe::6) by BYAPR02CA0017.outlook.office365.com
 (2603:10b6:a02:ee::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.7 via Frontend Transport; Wed,
 17 Dec 2025 19:13:03 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ5PEPF000001F6.mail.protection.outlook.com (10.167.242.74) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9434.6 via Frontend Transport; Wed, 17 Dec 2025 19:13:02 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 17 Dec
 2025 13:13:02 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 17 Dec
 2025 13:13:02 -0600
Received: from [172.30.197.162] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 17 Dec 2025 11:13:02 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6bb4afd6-db7c-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mpHYu2CP47hyQ/e9Lv83gFLLJwIyG8Lpf3wLuFKvjHDlH3ddMT0ldgncj/dNXuLLxD4J4i0LByaboMg3DWokNmdzM7Ucvzl1KtUB5tQ9/kAKkzm3cPYROcJxja1klwL6qadytBAuDoOyq8HnSeLz+2HOSn4lm70QbkIliRB5HphKbbLYRO3omWXpf70KbPlxLO64ys7NWfs13ztHEmvLwFXpRsrHJTxdahAm8tJbPrSj2xhAzB4MIv0B9L31Qz6hcVJY1mkxBjiRf814+coLquVWpb6RS3EfWFrHk9pHjqoAFJlBLZb2o+ow1Snx9+vEWKuk0cCwEADuW+0gujOZmg==
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=93Pg54C/Zq8Vgoxm6nxTM7ENl42znJcO3e1OP/RpM2A=;
 b=hXnIrjnnL/uISMb/ssy4pc6NCZjcJRocwbdIGMuCnEEdz7OcwYvBPUAXGYIZawjfETcz1Zf9gHq5UqDVbU8blFHM5/UqkSWbkgLcOVetIfB7bUmuYvNxAOTNDHjIYL9XQ9kUxqeKAGYORc5Jdo4iMhC15KwUBzdZjHkec/YObNEG9f29vsapizskFU7ZgMOZ2sXzi3dt0arr7yDnqrwPLNPxkA6h4R0XV6HHHHcROFnMLf9aPJtObrJfDSR7Wj+lYG/ZJEWC3z0hWmJai92T/kouT1i4i3VaZe6fpC+SzirBtaFN4C2ek1JHUZuDcz4JA6TDUDSYY+ewJQbyrJEdHg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=93Pg54C/Zq8Vgoxm6nxTM7ENl42znJcO3e1OP/RpM2A=;
 b=cjfeJztoGyCRklG1ze2AhkFfoQ6QX3aatlkXygzqYZThaealXbhCXjNLhse8wTOcfdziVTgTpS92pzAmfIjTBrAHST+ZEY1uQTq1XBmg5paQ2tI5+uxJ27aBLs6rPujm1gzQRYRA9uN+1Y3ZVQcsSJbR3RJLij5O+uO0Za2N/+w=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <9484bc26-35a9-4b5b-9563-762a06d88018@amd.com>
Date: Wed, 17 Dec 2025 14:12:56 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] tools/xl: Fix when config "cpus" is set, but "vcpus"
 is missing
To: Anthony PERARD <anthony@xenproject.org>, <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>
References: <20251217172634.47487-1-anthony@xenproject.org>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20251217172634.47487-1-anthony@xenproject.org>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001F6:EE_|SA3PR12MB7904:EE_
X-MS-Office365-Filtering-Correlation-Id: 2120e7c3-e1e7-4f67-611f-08de3da04cf1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NDdKUTNtdkw5YmM4T0N1dlZMZ3BqeHFOaWhOM0h5Z2Z5MURPeU9BT25EUHhT?=
 =?utf-8?B?bEVSR3JFVUd0YVZtVGVaejNXajFKMHJzSjFRVmd5cG9DQW1OaVpacEU3cmJL?=
 =?utf-8?B?Y0FKKzZnNzh1VGU2dFBuVy9RdzlZN1ZvRjJBVktrTUYwMVZIdWVqeWRHb2dv?=
 =?utf-8?B?SnlXcmNlSXZQb1pLZ242WXhrRUxScDhNWWU0TE9CWDhFbEUwc2hwRGI0RlhN?=
 =?utf-8?B?czlxT2xiakFhMDd4Vy9aVkFoWlJ2ZmFUWFlFTmpMMW5HeW1NZmNOYk1Vc1ls?=
 =?utf-8?B?bEVqZ1Bvd0RDektKd1NFNlN6ZUxva0JoVWNiaWxFeXpCWEUyMmI3R0diRlRa?=
 =?utf-8?B?UlNoVS9qVyttcUlweTZBV2FqRVNZbGozSWE0YWJtMFFHMUprR2FXVTVTTXVx?=
 =?utf-8?B?RWYvOE9odlI4MWNGOGhKaE9qcWprdWFBNkdWMkVqK1lOZnBFTG1lN1dRRnhq?=
 =?utf-8?B?WTd2dFQrQi9PMFNpOWtLZFdlUUpxYldtOXBqVkJqZStWZFRaSlFnSEVtaEh2?=
 =?utf-8?B?eHdEYVNxeU1EWHB5UEZJWG1RTUhSM3VHTEgwcEY3ZG5ucllqeHpRcnB6ZFNt?=
 =?utf-8?B?NmRSdjZvRURzZ0MzaXZ0YjkvQ1lvODExR0IzUmZWN0VVOXgydEVramo3bm1z?=
 =?utf-8?B?cWdTd2QzWFhDbTcvU1M3UXZkNkFjb0RBME1sUzJ0WGdVVE1rcmpnKzZDWlhx?=
 =?utf-8?B?dXIrb0V3ZDVBNlhXZHdpWHFDbVp0QjNNV1dWdkk4UDhGR1cxc1VwYnIyR2Vv?=
 =?utf-8?B?b2xSU2JzVUFWT3JzSjVzWGlaRWc2ZmJoY281OHhZWHFtVlJFZ0RUdC9uU2tu?=
 =?utf-8?B?KzlTU0x5Nk5EWnVhZEhVK2R4bzlQcnNKVWVRKzRmU0JvYlpYdkkxWWhHZ1FQ?=
 =?utf-8?B?ZC9hemxpSksxOUNvb0xzWnhBY3JHZkhRNXRadWsxdmpzN0tnTFVBRDVzanRk?=
 =?utf-8?B?UHQvQzdQMW1RTWkyQWZzdzlManJSenpaNFZQVjJOV3hPYXZaSXl4UHpRYStv?=
 =?utf-8?B?azRQKzZQNDkyS1V6VXhURHJZeFM4OE5DQ0ZuSWFOcDJoSmNCQ3ZzVGUvOHM1?=
 =?utf-8?B?WVcvaWNnMXlreEZvQzdGRkdmaE9JVVkydUV1dnl5UjdURDU2bjB1ZHR5cHVF?=
 =?utf-8?B?VEV4bk04c09lcFFsMlNMb3B6WUJlOVQwRTIwSWRQOE41RGhUa0twalk4ZklD?=
 =?utf-8?B?OER5NlF1OTVaUVR1emJtVnBTMDJoYmZRNnJ5QjA3U2pjN0dQbkplbGNkUDF6?=
 =?utf-8?B?N3E1bnVnMFFvVzk4eVM3eHFybUVrMGlvUEN3SG94ZHlrVCtoRDM0VjlmNEhi?=
 =?utf-8?B?TEZLVlE2RVZiU1RMZXJwckRURFBkNDlnUHRQOUl2Q0N4UStJdmxjUnllOWhZ?=
 =?utf-8?B?L2pXN1NFYzNXQ0thOG52NUVkZ3dqb1NaYXU3dUtWZitEeEk4UDNyR1UxdS93?=
 =?utf-8?B?RTNOR1ptOHQzM29QWVY1cmdKcDV4WWpDUURBNzE2aUhtUVBmY1oyd1VqWGdC?=
 =?utf-8?B?aThpOEpvNkJJRzJvNENhWU4zeStNODFPaWhjWG85dTR1MStuVHRXbkkzbGZm?=
 =?utf-8?B?ZkZwaStHV0VzcU1iaE91dnB0KzJmNUdaUWpkT3FDd3ltaUJEa3lwR2I3YXYx?=
 =?utf-8?B?V1IxUUtxLzE4V0l5bmNKSlF0VlJEUU1LOXlFL0VVdkdWOE0wQXNQYTUwS0Zh?=
 =?utf-8?B?bzZTT2pZY04wZ1U5S0gvNGJTUHdNZktYcWp3ZXByRmNScG1mRkR1eDFqbVg3?=
 =?utf-8?B?bGNtd09QdHp6Q0pkeitZdUVFYWlVbDFTVVN0eXg4Q3drMHo4akhoWnZ3UTVG?=
 =?utf-8?B?K0theDh1ZDFuZDErdG5CckpFNGJnakVuR0x1Tk5yM0VrSG51LzdQTDZzZTg0?=
 =?utf-8?B?d2dBUzBhVU13b3VWZ29RU0tTRkFPazdoTkp2a09sWStqRk5wa1A4b1pRd20x?=
 =?utf-8?B?dUVMZTFuNFl6c0I1R1hlNG1MM2R3eGxQUFF5aHhtcmFnMXNNSDJOR2dBREJL?=
 =?utf-8?B?NUVUQkZwa2UrU3FLb2NYbmNWVHdtYnJxaXEvc2R5dFdZcHRTWFk4dVcvaWtE?=
 =?utf-8?B?RjBiZTloN3MwWnViTWhrazVKa2ZPQUF2dDRSRk5INmRIbkNMM05icFVrTWpv?=
 =?utf-8?Q?VDMU=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2025 19:13:02.7044
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2120e7c3-e1e7-4f67-611f-08de3da04cf1
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001F6.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7904

On 2025-12-17 12:26, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
> 
> If we start a guest with 'cpus="all"' and without 'vcpus' or
> 'maxvcpus' (or sets them to 0), we execute parse_vcpu_affinity() with
> `num_cpus=0`. This malloc "b_info->vcpu_hard_affinity" with a buffer
> of size 0, which is implementation defined, and we still initialise
> the "first" bitmap of this allocation, which mean we have a buffer
> overflow.
> 
> On Alpine Linux, this result in a segv when the buffer is being
> disposed of.
> 
> Since libxl will assume there's at least 1 vcpu, we default to 1 in
> xl as well. (libxl sets max_vcpus to 1 if unset, and allocate
> avail_vcpus if its size is 0.)
> 
> Link: https://gitlab.alpinelinux.org/alpine/aports/-/issues/17809
> Fixes: a5dbdcf6743a ("libxl/xl: push VCPU affinity pinning down to libxl")
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 00:06:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 00:06:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189172.1510062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vW1X2-0000Q0-MV; Thu, 18 Dec 2025 00:06:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189172.1510062; Thu, 18 Dec 2025 00:06:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vW1X2-0000Pt-JS; Thu, 18 Dec 2025 00:06:12 +0000
Received: by outflank-mailman (input) for mailman id 1189172;
 Thu, 18 Dec 2025 00:06:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=awYi=6Y=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vW1X1-0000Pn-Ab
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 00:06:11 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 52fa295f-dba5-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 01:05:56 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 0683F434ED;
 Thu, 18 Dec 2025 00:05:55 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B2DABC4CEF5;
 Thu, 18 Dec 2025 00:05:53 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 52fa295f-dba5-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1766016354;
	bh=9B5Vw0UI5tTVOVwyVumPQ9v2VLtNnkTCPoQEfIIQGUE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Nz38DxwPDZUux4xKLujRoATvRvi8zfejFtHVRGTt7RxJxy3+yj8kSKKkZ4oF4AY9t
	 Gv1EWo3zb7/aKw57DWDsyZr+Mx9MBRZGUO9KryW2wf3HcYsg7uiTMJYIxN6ixspcUV
	 XmD3+COcXsf5XFfr1XuHyzSNStrD+b0FOhEjUNXsF6eF+3VwcgkBzkMDEhDfOcUAgY
	 KYh3hSjShDqdH8BVEmM5sOe67y/gwo6A13S4U1SgLwVXBjSNIaljvSqoXs43CouvO+
	 +n56nObkWyhAgvLcTW79SEk7e0HySevUYhL3Eu9oVS+Rw7b3OGeQTXOfUDv1NPVyLT
	 2TJtQkjO0O9pw==
Date: Wed, 17 Dec 2025 16:05:46 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Grygorii Strashko <grygorii_strashko@epam.com>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
    Harry Ramsey <harry.ramsey@arm.com>
Subject: Re: [PATCH V3] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
In-Reply-To: <20251217081248.2807849-1-oleksandr_tyshchenko@epam.com>
Message-ID: <alpine.DEB.2.22.394.2512171605420.21522@ubuntu-linux-20-04-desktop>
References: <20251217081248.2807849-1-oleksandr_tyshchenko@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 17 Dec 2025, Oleksandr Tyshchenko wrote:
> Creating a dom0less guest with a high vCPU count (e.g., >32) fails
> because the fixed 4KiB device tree buffer (DOMU_DTB_SIZE) overflows
> during creation.
> 
> The FDT nodes for each vCPU are the primary consumer of space,
> and the previous fixed-size buffer was insufficient.
> 
> This patch replaces the fixed size with a formula that calculates
> the required buffer size based on a fixed baseline plus a scalable
> portion for each potential vCPU up to the MAX_VIRT_CPUS limit.
> 
> Please note, the change to DOMU_DTB_SIZE formula would result in
> a smaller buffer size of 3072 bytes compared to the original 4096 bytes
> on Arm32 platforms where MAX_VIRT_CPUS is 8.

I am OK with this patch I would only ask to retain the minimum size of
4KB due to the possible presence of passthrough device nodes.


> ***
> 
> The following tests were done to confirm that the proposed formula
> fits:
> 
> 1. Arm64 testing with varying vCPU counts (MAX_VIRT_CPUS=128),
>    final compacted FDT size:
> 
>    - 1 vCPU: 1586 bytes (with 18432 byte buffer)
>    - 2 vCPUs: 1698 bytes
>    - 32 vCPUs: 5058 bytes
>    - 128 vCPUs: 15810 bytes
> 
> 2. Arm64 testing with simulated Arm32 conditions (MAX_VIRT_CPUS=8),
>    final compacted FDT size:
> 
>    - 1 vCPU: 1586 bytes (with 3072 byte buffer)
>    - 8 vCPUs: 2370 bytes
> 
> 3. Arm32 testing (MAX_VIRT_CPUS=8),
>    final compacted FDT size:
> 
>    - 8 vCPUs: 1127 bytes (with 3072 byte buffer)
> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> Reviewed-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Tested-by: Harry Ramsey <harry.ramsey@arm.com>
>
> ---
> V1: https://patchew.org/Xen/20251202193246.3357821-1-oleksandr._5Ftyshchenko@epam.com/
> V2: https://patchew.org/Xen/20251203185817.3722903-1-oleksandr._5Ftyshchenko@epam.com/
> 
>   V2:
>    - update commit subj/desc
>    - use a formula that accounts MAX_VIRT_CPUS
>    - add BUILD_BUG_ON
> 
>   V3:
>    - add R-b and T-b
>    - add more info to commmit desc
> ---
> ---
>  xen/common/device-tree/dom0less-build.c | 16 +++++++++++++---
>  1 file changed, 13 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
> index 2600350a3c..0c271d4ca3 100644
> --- a/xen/common/device-tree/dom0less-build.c
> +++ b/xen/common/device-tree/dom0less-build.c
> @@ -439,15 +439,25 @@ static int __init domain_handle_dtb_boot_module(struct domain *d,
>  
>  /*
>   * The max size for DT is 2MB. However, the generated DT is small (not including
> - * domU passthrough DT nodes whose size we account separately), 4KB are enough
> - * for now, but we might have to increase it in the future.
> + * domU passthrough DT nodes whose size we account separately). The size is
> + * calculated from a fixed baseline plus a scalable portion for each potential
> + * vCPU node up to the system limit (MAX_VIRT_CPUS), as the vCPU nodes are
> + * the primary consumer of space.
> + *
> + * The baseline of 2KiB is a safe buffer for all non-vCPU FDT content.
> + * Empirical testing with the maximum number of other device tree nodes shows
> + * a final compacted base size of ~1.5KiB. The 128 bytes per vCPU is derived
> + * from a worst-case analysis of the FDT construction-time size for a single
> + * vCPU node.
>   */
> -#define DOMU_DTB_SIZE 4096
> +#define DOMU_DTB_SIZE (2048 + (MAX_VIRT_CPUS * 128))

Something along the lines of:

#define DOMU_DTB_SIZE MIN(4096, (2048 + (MAX_VIRT_CPUS * 128)))


>  static int __init prepare_dtb_domU(struct domain *d, struct kernel_info *kinfo)
>  {
>      int addrcells, sizecells;
>      int ret, fdt_size = DOMU_DTB_SIZE;
>  
> +    BUILD_BUG_ON(DOMU_DTB_SIZE > SZ_2M);
> +
>      kinfo->phandle_intc = GUEST_PHANDLE_GIC;
>  
>  #ifdef CONFIG_GRANT_TABLE
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 07:44:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 07:44:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189261.1510073 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vW8gc-0001ka-Hx; Thu, 18 Dec 2025 07:44:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189261.1510073; Thu, 18 Dec 2025 07:44:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vW8gc-0001kT-Dn; Thu, 18 Dec 2025 07:44:34 +0000
Received: by outflank-mailman (input) for mailman id 1189261;
 Thu, 18 Dec 2025 07:44:32 +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
 <SRS0=X7AO=6Y=epam.com=Oleksandr_Tyshchenko@srs-se1.protection.inumbo.net>)
 id 1vW8ga-0001jw-Fz
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 07:44:32 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 63741a14-dbe5-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 08:44:31 +0100 (CET)
Received: from AM4PR03MB11152.eurprd03.prod.outlook.com
 (2603:10a6:20b:6cc::22) by AM9PR03MB8010.eurprd03.prod.outlook.com
 (2603:10a6:20b:43d::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.7; Thu, 18 Dec
 2025 07:44:29 +0000
Received: from AM4PR03MB11152.eurprd03.prod.outlook.com
 ([fe80::ef31:b87:b7b4:ddbb]) by AM4PR03MB11152.eurprd03.prod.outlook.com
 ([fe80::ef31:b87:b7b4:ddbb%4]) with mapi id 15.20.9434.001; Thu, 18 Dec 2025
 07:44:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 63741a14-dbe5-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wI1pTkwpq/KsRTbt7gh8JCw5IrEDIVpgr0mXvoLSBaxd9OfzzyzzB11gjZXvoNcrsltVV3Ow7DpeyCTIyG69l3oHM9NMSWJMjLcu178edKDor+binQ4CWmWmLfVNmLh6LxU51+LfQuMoKXYWurpowCUgcwBDTdyRKR51qIbCk4DXZNNx6Gj2rG1rIZ34S1sAxEC0pQqhr8eU+DWK1/oJ6f/oxSjNSGuP48k/aZCORf+Ld4pqQG+L44rFwfmeyHcaz1Gsc3PJRbVTCTmJ7GFAvdalY+Juu0K0CLUxdFikCknjm9VQzqZVSZ6WwB1eSEWWwkarA1jroVQmVR63jh5ihw==
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=fs5tmpPkVnWW5zOsZaYv92t0dGewCuP8Ows97lyxbOc=;
 b=Q+n9Dfxs4afpvKqP7/Wb4F6G5Tt6yt8peAUDe4venhmkgzaBoplIBu2tnqUD2YMN+FcJYFeLBhiVEN+9NoFm0FlFqpsDKJvjQrcs6Vn2XkZaYkDwthNkjZfGB+9oPXB9UvBUuR6xZr1UJpSlIWVRc9MpkCl+q3kJ5uNz+52H0cjFjkIC0ImdU0MBGMn2ItleDcHkR398UUT1J+ZLv5wBzbYuPI+f2n/+SNye0MYAEXueiar0/1r7qoRubuuekGCRG6LoyHM7whxgTKB4kVWXt79medH7jKMztwvOSUmktMKSy47hp9BkUzUvgTEQhT3N2XYnhjlTeQXxTD+N/wlJVg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fs5tmpPkVnWW5zOsZaYv92t0dGewCuP8Ows97lyxbOc=;
 b=vnB8loyvlqvaBelNlzsx7CvpQx/A2wnwjzG4WIJBZ/JIhC2b8FVMOgS2PjhPzEM+gcd9xrR43uRXOtRGyUNobdv1NuZ4GVu+By3k04Ze4nXG1PU/5gDByn2xoLzvqRPfDRozhWFyAFfR232vfKObqsDrTFAgHmt8j7WxEqCqVn9WnTWKuKTKqmL10QNPhYUewj5shcVwGfFcQNq3+Lm2MUpjz9h8gphU23kyCdMoO/3yQYF/UaKv63pPPQvHmdMNkFeDIOpNhwRyg/i0dRu7pW2PypTafXoLt48MRoyM8K6E6zpM+F9Ej5YkMHzJi+JnuOIq9znHtCF7fPiD/2PHfA==
From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Julien
 Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>, Grygorii Strashko <grygorii_strashko@epam.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>, Harry Ramsey
	<harry.ramsey@arm.com>
Subject: Re: [PATCH V3] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
Thread-Topic: [PATCH V3] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
Thread-Index: AQHcbyzuH15G1NdORkmDpo6kbgtlK7UmhcQAgACAJAA=
Date: Thu, 18 Dec 2025 07:44:29 +0000
Message-ID: <a23716aa-cae1-4636-b027-2344e2b08f10@epam.com>
References: <20251217081248.2807849-1-oleksandr_tyshchenko@epam.com>
 <alpine.DEB.2.22.394.2512171605420.21522@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2512171605420.21522@ubuntu-linux-20-04-desktop>
Accept-Language: en-US, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM4PR03MB11152:EE_|AM9PR03MB8010:EE_
x-ms-office365-filtering-correlation-id: b74160ff-0c6f-4d6f-7f6b-08de3e094679
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|376014|1800799024|366016|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?ZTg3NFlOR21XZmsxRFJVZGY0aTJoY3NZTlcvclcwNTI0TWUrUFFuaEZ6QytG?=
 =?utf-8?B?OS9iU1lEOFlaQU5qZS9adWtydTljb1VXak51czdqRElqSlJIdUw3SmV6MkFI?=
 =?utf-8?B?SVVsbXZURkJacStIQXdqTjNOTGpJMytUV0ZmMGpRM3J0R2lxSldEcTViNmxn?=
 =?utf-8?B?R1pMcXJ1anRQN1VVL2xaK1Z4K0E2bUlFbzdSSDNrTXJzd1R6WnIyNVIraDdE?=
 =?utf-8?B?V1pLZXI5ZkIrSytGYUorMDA1RXdDUVRJWm5mSVhsQllYUjd3KzFFdWlmYndt?=
 =?utf-8?B?NWVjQmxqZ0U0WjJIdTg4bUdWWlovOUM5aFJma1pWbEFFRkpmMjZHYURwUHNB?=
 =?utf-8?B?VkE1aGc4N2R5NFF3NldvNGNRT1M0UktkM1NRNjhuRzI4YWQramIzRVp3MVU4?=
 =?utf-8?B?NnZUZFdXOGRjSjgzMUtuaEUzaG5IalAvUStFL1NYUStQOTFsRjd4cGRRU2dZ?=
 =?utf-8?B?QTY3L3hTT0xWcmtjSXErY3VLenVjd201UG9vVjc1aE5VaGU0YXdCT3MydXpE?=
 =?utf-8?B?dktrbjdDTzNQRDlzMm1Fb2phV3MrbXhoZ0FGbXJBdU5SQ2lrQ2JlZzAzaHht?=
 =?utf-8?B?OTFPTTg1cXoySVM0UDdjVWpUU2I2bjk4YldIbHJLalJzY2FmRlBaa0MzWmh0?=
 =?utf-8?B?dFJvcEUvUVZzbXU4MGdjNXkxOFJ1dEU0YUFCZWlGUDZseTBtVzAveGNTdCtl?=
 =?utf-8?B?ZXF2dHlvbXlLMUw3eUZYdFRvUDFYcS9sczVvK0xRVkVRNG9nVFVuUmtpMnk1?=
 =?utf-8?B?UTNXQ2MxZVRsWkV2UEhvL3lNYklZbTVjY0wrWjVMYWZlTnlRTUFRdHFHR0hK?=
 =?utf-8?B?UmtYYktKK2h1ZzdPakJMLzd6MzB4Tnl2Z3duNkVzeVNibE5SYmRDSmhLamQ0?=
 =?utf-8?B?RURRUEppSS9lcXI0VUtHN1ZuVU5DSHlNZ3RwbE9TNWdTVldMOW5GVDNJekI0?=
 =?utf-8?B?TUg3a0Iwei8zd0NWTlRPUkdmY1JMQlhDY1laN1ZVZTI1T0JJZ2UvTGpRYU0z?=
 =?utf-8?B?bHBxTWhRQnBuUFNWWUE3eDZ1ZmJrc2p0RkNYWDlSQ09McG9iL2ZXdVRrNnUz?=
 =?utf-8?B?eUs5M1NnS1Z2cHBJV211aS9qN3VXRHV1aC9UVVpVaGF1NUNYNGhVWFYrNERL?=
 =?utf-8?B?a3diSStPWU04ZWEwbnUrblhNOUYrbER3U2c0WkloWStlU2NFWmU5SFAwWHZH?=
 =?utf-8?B?aUtxcUVkV1RZU05CZzBtQXhEQW5UZVovMURQZjdPaC9tQjdSYmVFN0dlSjhS?=
 =?utf-8?B?NmxIa201djRMdXhXVTZlNmcrZ3d0dzFrcTV4OThKbzVSeFltK05OYnBCRzFX?=
 =?utf-8?B?ektLSmIwZ25HS3JFSUxsZ1N0am1kVkJwQUNmWGZuaUdVRC95UWFsMHhkSDJj?=
 =?utf-8?B?RG43QlBrMXo5S1R5aTdzNHV0T3dVMDh4aGl0Rml3UUY4bmVGS3F6UXZkbVFq?=
 =?utf-8?B?L1QxSzF2aFFYTHZ4MFFQN3oyVWxkYkdHYlh2cXQ4T0dqNWl3dGdLdHNNdStN?=
 =?utf-8?B?QnBuMm1yaXI4ZnhRdER4dFNQS2xqK0NvRjdpMkIydHh3NlYwMEdjMjhVSjd0?=
 =?utf-8?B?RkxFZ01xR1ptM05sdnJmdXVqdG15OXh1L0pGM3RJWXZCa25Vdm9yZmRDTjFn?=
 =?utf-8?B?U1lIOXVrYkxxbWY1QS9tVWdzMDB5YTJ5em5qTUhFVVc2NFRWL0ZGYXp0ZjA2?=
 =?utf-8?B?VmNGUlBGc21Bd3FKU3dYUzNxelYvbHQ4ZmJLZG1rejYxNlNUajRPQ09DT3pL?=
 =?utf-8?B?WjlKbExTejc1VW9Nc0JxYVhLKytMbDJ2M2J5dGg3Tk5mcm02NmhqWkFwOWsr?=
 =?utf-8?B?RGlvaXdPQ0ZkNngvd2VUZ0t6V3VyVTRxaVJVUXVlc0VnMXZ2RDhiTXhyRTdC?=
 =?utf-8?B?VktDSEpCMVArdWtSc1VNTUVsa1N3dnJXMG01Q3dnanpBelkzeEwyaGhXaGEv?=
 =?utf-8?B?aHo3RHpEOUFJdWRTNFkwTi9mSEJEbm9BOHlyb0tZOEQrbnhKMmZXRmlJZjZm?=
 =?utf-8?B?L1c4UkJBTUwyVXF1WEZYLzZKaU10emNtR3N2UkNOV1RaV0UycUNQMVBOMWtq?=
 =?utf-8?Q?nmaZbr?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM4PR03MB11152.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Ni8rbnBOaUxoVmc3UjErQldyYzhSYnBmVFRwZS8yWTI5akUzeldFaHI4T0pH?=
 =?utf-8?B?QXl2QTZPZGlRM3N3dVJGazlGdVlDMmtFMER3WWlIWHI2ZGJKQVFYUk9odkdw?=
 =?utf-8?B?eW0wN2V1ZWFsWjlXUTNrU0VaZTVQRTVzZFhXSXNBVHF6bWdxQ2FQTWZhbU83?=
 =?utf-8?B?aVZrQ3cyVFI5UVJka05QU3hsenNmb2V5cXNnK0FPZ2Y3d0I4TUU1MUhCNFBR?=
 =?utf-8?B?TVVoc3BNQ1p5VkZ3eGU5UDNzVTE2TFRtNmVFbkVaRzNkUW00bnZ0Q0tJRjNE?=
 =?utf-8?B?ejkrbWNoSVNRZjhQWmF3MUg2VVNXaE9ldDN5L3owTWs4RlovUFJZMnhNcHp5?=
 =?utf-8?B?cE9jTHdXQTVUQURwblVzQzVnMHpvRHROa29NeWRTSHVIVGs4YzhPdTM4OWlR?=
 =?utf-8?B?YUlTUW95TW9mYjVCWWI4dkpYeng3R0FsWVJvSUxYWnZqMDc3TTJBMkdIN3Fy?=
 =?utf-8?B?REFKQVRpMkg5RHh6a01wTkdPSUZBR1p6TTY1bUp4RURNeGxpcWxzM2RQMFNU?=
 =?utf-8?B?aWhYSU5BK1ZhUnVZZDgvNGVOMXpkQ1ZrNi9nR1p4aTZUdEpYUWZ3SkJuVGs0?=
 =?utf-8?B?VVJzNjNvK2hnMkY0cGZpNFFsWVFvcllnS05jL0l6U3NJbFY2ZEdZd1Z0RnVM?=
 =?utf-8?B?RFJ3ZmtZdVMxcG50VElKa2VPcEpVUERzQmpnV0J2bW84MlVCbDlXUWwxQ01w?=
 =?utf-8?B?Qm5SL1pxSjdBbFBLeHlaMzJHTGRwaEhHZ0lRUG5aRVUraUU1RndMbFRwcGNX?=
 =?utf-8?B?cG5JSThjRkViT2RWTzJ2QzVlNHZRSUdieWN2Uk1yMHAxanRvODhVY1FDS2FU?=
 =?utf-8?B?VUd6UHpCdlBTNEZwbDN0eXpNMlF5MUxPengxN0ExaDB2YStRcVlPOGh5dTJt?=
 =?utf-8?B?TXBkY0hLbWpsWE1kM0kwTFZvN3NwdWRWV0xkSVdTZC9rZ2hPeVhadFE0RTJk?=
 =?utf-8?B?MVJ0eWJhMWYyWFZMWVR1ZkRTZllvM1VWaUhrWk1JVnNrU1loSW1HdEJ6dERR?=
 =?utf-8?B?MktDOUZ4OGszQzlkc0tiMTQxaTdULzN3RzZvNDIzekFsbnJJeGNST1cwQWlm?=
 =?utf-8?B?a0MzcUNTb2Z5ZnpTYTAxdTZVUE92eXVJQzRaWjZwVlZxRlFiTitrVXEvdHNi?=
 =?utf-8?B?K2JtYk5odWZVVkxXYldoaldLbEh1Rkh6MmVzS09OWXRnSFJJVFE1NmxyMTRC?=
 =?utf-8?B?S2JXcUNoRFVQaU5YZHJ5L25jOUczUCtWM2paRkFEdjZqNUQ5RFZUbnkvaS9C?=
 =?utf-8?B?dWVmdzRTeHl0U1kya0M4Y2tpY3FmMXdjU0cvaUxSd2pZVmpXUnJ6dVg2SHB4?=
 =?utf-8?B?cHUxTDB1VmJQZ0RyM2V1b1B3ZkpwdTRwbVdOY0JpbzZvcTVsN241bE5HY1Y0?=
 =?utf-8?B?b3BkVDJQeDllZ0t6LzlJbjdHNVoyNTBJRjk1Y1Q0NTFHaWdNTmEzN0JoVGRh?=
 =?utf-8?B?YVczakdlczA4QTJWbWRSU0YwZnVoTnEwV3pGd1drK0N4bnRGc2JWem80ck5O?=
 =?utf-8?B?c0srWmdxdHNmeTd4US9KbXVDYkJHbTJZV2RtWmVqZEIwRjROSG9aMU1LQUY0?=
 =?utf-8?B?ejFNeGtzQ2J0d2tFRnEremhLNDNSUVMybzVDMjlTUzZHMFoyQTJGTDlOb0xO?=
 =?utf-8?B?cC9aM1c3WHlkZE9NSWI1S1VpSWpjVVluV0hDUWh6bkNHRUZpVVZIdnQrcFhY?=
 =?utf-8?B?eVVWQU5WZ3dqK3N1ZUN2Z3Rnc1lVL2gwT1Era1l4WFhKZjZFODcvUHR4T2tY?=
 =?utf-8?B?ejFGaG9XVTc1SGo4eHpTcEpteERyUXhEODZTeTc2UnhIdjVtank2Ni9OYnZi?=
 =?utf-8?B?c0pVclJsaVQvY211cWNZQ3oraGRQZm9EVS9BWno3TmF4d25qU09Ma3hEQ0tV?=
 =?utf-8?B?SG1melB4WDNGTjdwL1hOejdxdWNmbldPbWdlSlhTRXkyNDdINXpaOEYwWmVs?=
 =?utf-8?B?SGZ2a2MwTU5GbERqaU5NZVB6SXpnT3p2UitoS21ZL1R1WnR2eWZuYmF5NTBQ?=
 =?utf-8?B?WEk5MnowU09la21YRUY4dno0eTcxTFhsdWpjdFRXTnpMN0htNFVDMTR3Y2RK?=
 =?utf-8?B?eFJmWHNIWjRBdS93LzZXNWtISzZVMGJCSnJuMzlyUmxUdnd2T0dmdG5uVXQx?=
 =?utf-8?B?QXNTc3YyQ0FrN3VHZ0lmOStwYnFJdi9UTVZMTnk4YjdzQVEvSitEZHA0NnYy?=
 =?utf-8?Q?TC0nzbql+raNwa8tPYGP2nE=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <62AB181BC4A2EE4C833261A05BCF97A8@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM4PR03MB11152.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b74160ff-0c6f-4d6f-7f6b-08de3e094679
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Dec 2025 07:44:29.0981
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: BANY7FTBnJYoaUuIuPLaQNteTNLwuel3LNllWJ9MqEpgDOl3YDNincFkNXyTCVjVIkVx5guwHIqEFIg6j7gBXCHR+xopr8SuV3FnG7N/uBk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB8010

DQoNCk9uIDE4LjEyLjI1IDAyOjA1LCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6DQoNCkhlbGxv
IFN0ZWZhbm8NCg0KPiBPbiBXZWQsIDE3IERlYyAyMDI1LCBPbGVrc2FuZHIgVHlzaGNoZW5rbyB3
cm90ZToNCj4+IENyZWF0aW5nIGEgZG9tMGxlc3MgZ3Vlc3Qgd2l0aCBhIGhpZ2ggdkNQVSBjb3Vu
dCAoZS5nLiwgPjMyKSBmYWlscw0KPj4gYmVjYXVzZSB0aGUgZml4ZWQgNEtpQiBkZXZpY2UgdHJl
ZSBidWZmZXIgKERPTVVfRFRCX1NJWkUpIG92ZXJmbG93cw0KPj4gZHVyaW5nIGNyZWF0aW9uLg0K
Pj4NCj4+IFRoZSBGRFQgbm9kZXMgZm9yIGVhY2ggdkNQVSBhcmUgdGhlIHByaW1hcnkgY29uc3Vt
ZXIgb2Ygc3BhY2UsDQo+PiBhbmQgdGhlIHByZXZpb3VzIGZpeGVkLXNpemUgYnVmZmVyIHdhcyBp
bnN1ZmZpY2llbnQuDQo+Pg0KPj4gVGhpcyBwYXRjaCByZXBsYWNlcyB0aGUgZml4ZWQgc2l6ZSB3
aXRoIGEgZm9ybXVsYSB0aGF0IGNhbGN1bGF0ZXMNCj4+IHRoZSByZXF1aXJlZCBidWZmZXIgc2l6
ZSBiYXNlZCBvbiBhIGZpeGVkIGJhc2VsaW5lIHBsdXMgYSBzY2FsYWJsZQ0KPj4gcG9ydGlvbiBm
b3IgZWFjaCBwb3RlbnRpYWwgdkNQVSB1cCB0byB0aGUgTUFYX1ZJUlRfQ1BVUyBsaW1pdC4NCj4+
DQo+PiBQbGVhc2Ugbm90ZSwgdGhlIGNoYW5nZSB0byBET01VX0RUQl9TSVpFIGZvcm11bGEgd291
bGQgcmVzdWx0IGluDQo+PiBhIHNtYWxsZXIgYnVmZmVyIHNpemUgb2YgMzA3MiBieXRlcyBjb21w
YXJlZCB0byB0aGUgb3JpZ2luYWwgNDA5NiBieXRlcw0KPj4gb24gQXJtMzIgcGxhdGZvcm1zIHdo
ZXJlIE1BWF9WSVJUX0NQVVMgaXMgOC4NCj4gDQo+IEkgYW0gT0sgd2l0aCB0aGlzIHBhdGNoIEkg
d291bGQgb25seSBhc2sgdG8gcmV0YWluIHRoZSBtaW5pbXVtIHNpemUgb2YNCj4gNEtCIGR1ZSB0
byB0aGUgcG9zc2libGUgcHJlc2VuY2Ugb2YgcGFzc3Rocm91Z2ggZGV2aWNlIG5vZGVzLg0KDQpJ
IHRoaW5rIHRoZXJlIG1pZ2h0IGJlIGNhc2VzIHdoZW4gZXZlbiA0S0Igd291bGQgbm90IGJlIGVu
b3VnaCB0byBjb3ZlciANCnRoZSB3aG9sZSBkdGIgd2l0aCBwYXNzdGhyb3VnaCBkZXZpY2Ugbm9k
ZXMuIEJ1dCB0aGUgZXhpc3RpbmcgY29kZSANCnNob3VsZCBhbHJlYWR5IGhhbmRsZSB0aGF0LCBz
byBpZiBhIHBhcnRpYWwgZGV2aWNlIHRyZWUgaXMgcHJvdmlkZWQsIA0KdGhlbiBpdCB3aWxsIGJl
IGFjY291bnRlZCBzZXBhcmF0ZWx5Og0KDQogICAgICAvKiBBY2NvdW50IGZvciBkb21VIHBhc3N0
aHJvdWdoIERUIHNpemUgKi8NCiAgICAgIGlmICgga2luZm8tPmR0YiApDQogICAgICAgICAgZmR0
X3NpemUgKz0ga2luZm8tPmR0Yi0+c2l6ZTsNCg0KDQpbc25pcF0=


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 07:56:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 07:56:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189273.1510082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vW8s9-0003aH-G9; Thu, 18 Dec 2025 07:56:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189273.1510082; Thu, 18 Dec 2025 07:56:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vW8s9-0003aA-DY; Thu, 18 Dec 2025 07:56:29 +0000
Received: by outflank-mailman (input) for mailman id 1189273;
 Thu, 18 Dec 2025 07:56:28 +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 <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vW8s7-0003Zr-W7
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 07:56:28 +0000
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com
 [2a00:1450:4864:20::432])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0e112494-dbe7-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 08:56:27 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-42fbc305882so136093f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 17 Dec 2025 23:56:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43244998ca0sm3397102f8f.32.2025.12.17.23.56.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 17 Dec 2025 23:56:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0e112494-dbe7-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766044586; x=1766649386; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=/819DSxskHvW6Dh9rErBDLF7kFwnJ3mm2P4u44VQT5s=;
        b=AVBAGi3oMvEPxXuadYz2jEd2hjncdbpMRgQD7hfv+sIOmhBJTe7b8WE0N2lyikj8LG
         LpKdeA8cxRaprmSb7miRtVFclh+PYlTad+GKpT+tmlW/R1bJx6UfMNh5ruwmeShXkggt
         ykTp60pk+5ZRA4SlDXLYgeAUTCvl7XVzvfA+aH4Xk3Xl089zvnugeSfulsXc2V/hSvld
         9VhjWN+uWZnAYSxy649VYc6QQTaFaHQ0pRmSEBNhMnX95hdniDPFJX9lFhz2vbTmkQFf
         RYKzv3YUi//qKQtxCzUsnN73WNaf1RKWYxLY4dHAH9ZZs0AiaVMl7szGhLVXMzBXBSpP
         e7xQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766044586; x=1766649386;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=/819DSxskHvW6Dh9rErBDLF7kFwnJ3mm2P4u44VQT5s=;
        b=Ci+oiL0ovNzItYgNs3Er0lp8h+7cABXCnBx2UKnA6x0wogp8NBYzp89MUOXwPqwQOZ
         iuQUsM+U4B6kwzMQRpYPXZR0Kw6yAPbZTp5utIyIQDXRUp7MXT8Q+uJyCPFkQ9Th/PVo
         CNS3IhfTLdlmInoPL5lFgp71DCOiNtPEtjdM/hnEZIfJOTHQvSDf9MxpO484XPQz7a8k
         sK4IBi7k2fEaFgA8crKDwvJojByAA9uYW2QOxgibvC6quoeF5/6eOKkCElEhvC0N+vX1
         sPpK/mfgTvIJo3drvYozNTDmGLCwA/dzljJ0ryHLkjMJvyh0IxQdC2D73FQLto263RlZ
         k0mw==
X-Gm-Message-State: AOJu0YwNk4WTeYypErKyM+rexHnu5yYmFQtbLGfoc6fx+glhx16eC+96
	qvxfW3Gn8e4foArrygI3AcHHNitGCYm+3GHOruYbK+9GLQ4fQ018Ons4qlxl22sS36glw+feWZF
	jk04=
X-Gm-Gg: AY/fxX52mlP63CLwcHOq7vlsIQ2bssTZ1ie7vfAU7rZYnzghYbl3GR+qrEwtusqEKBK
	kEUMxyjXd0xd073f0E/0dxQAF88yvTjwEF9AmAu20AW6EqMgF3k+/SoN+qqv3juGZkZqKH4+t/3
	gdUCwxjsKOMJ+VOegzwRmFM0yrQaU58HLEvnM5ZLfxDXyC9qH1KkpTBLLzX8jZ148MB/A1ZL150
	8/vjoB9fNs8H8iVNR/Ko09dgNEAA8H/gsx9b5WnNVGKYnsJTiewRmh0m3r1htAyVahbKqv9FzoD
	Nd1eKbaIQSJOEZZrC8Vl+WkbXafSHyVrmPSyRoUhIRYGQsaujr7zIZ9vCHTqj0YSovp6cnmkWGs
	HJ5dS61gLFJlXRdB3vfpFw56fYMjltMpJE9dyG8qqOAJGHTVojGZKyRNg903RRdvv0nZxnOg91O
	oduvkMrOuNZfw99FKnth/8800oUfxpP21RUxBWzUnmU7OZLyRTQ7Ey+5Nvh7JkelY/lmG/gzUBO
	BM=
X-Google-Smtp-Source: AGHT+IEJ/R1bhdowa6vmOAcvppKj7sS3TouoYj0keMc88ZyxiOZRt7fGasY56V5suKaGd1uo+g4exA==
X-Received: by 2002:a05:6000:2909:b0:42f:9f18:8f40 with SMTP id ffacd0b85a97d-42fb490cedemr22593402f8f.42.1766044586337;
        Wed, 17 Dec 2025 23:56:26 -0800 (PST)
Message-ID: <26294a6d-e99b-4290-988a-da7b7b838651@suse.com>
Date: Thu, 18 Dec 2025 08:56:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Chen Jiqian <Jiqian.Chen@amd.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] vPCI: avoid bogus "overlap in extended cap list" warnings
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Legacy PCI devices don't have any extended config space. Reading any part
thereof may very well return all ones. That then necessarily means we
would think we found a "loop", when there simply is nothing.

Fixes: a845b50c12f3 ("vpci/header: Emulate extended capability list for dom0")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
This is the minimalistic change to get rid of "overlap in extended cap
list" warnings I'm observing. We may want to avoid any attempt to access
extended config space when there is none - see Linux'es
pci_cfg_space_size() and it helper pci_cfg_space_size_ext(). This would
then also avoid us interpreting as an extended cap list what isn't one at
all (some legacy PCI devices don't decode register address bits 9-11, some
return other non-0, non-all-ones data). Including the risk of reading a
register with read side effects. Thoughts?

The DomU part of the function worries me as well. Rather than making it
"read 0, write ignore" for just the first 32 bits, shouldn't we make it so
for the entire extended config space, and shouldn't we also make it "read
all ones, write ignore" when there is no extended config space in the
first place (then in particular also for the first 32 bits)?

Should we perhaps also log a warning if we exit the loop with non-zero
"pos"?

--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -839,6 +839,15 @@ static int vpci_init_ext_capability_list
         uint32_t header = pci_conf_read32(pdev->sbdf, pos);
         int rc;
 
+        if ( header == 0xffffffff )
+        {
+            if ( pos != PCI_CFG_SPACE_SIZE )
+                printk(XENLOG_WARNING
+                       "%pd %pp: broken extended cap list, offset %#x\n",
+                       pdev->domain, &pdev->sbdf, pos);
+            return 0;
+        }
+
         rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
                                pos, 4, (void *)(uintptr_t)header);
         if ( rc == -EEXIST )


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 08:14:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 08:14:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189295.1510091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vW99R-0007IN-9a; Thu, 18 Dec 2025 08:14:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189295.1510091; Thu, 18 Dec 2025 08:14:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vW99R-0007IG-6p; Thu, 18 Dec 2025 08:14:21 +0000
Received: by outflank-mailman (input) for mailman id 1189295;
 Thu, 18 Dec 2025 08:14:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=2jZQ=6Y=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vW99P-0007IA-QO
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 08:14:19 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8bf5aea9-dbe9-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 09:14:17 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-b713c7096f9so53132366b.3
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 00:14:17 -0800 (PST)
Received: from ?IPV6:2003:e5:8704:4800:66fd:131f:60bd:bc29?
 (p200300e58704480066fd131f60bdbc29.dip0.t-ipconnect.de.
 [2003:e5:8704:4800:66fd:131f:60bd:bc29])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b80234a2c0dsm151625566b.51.2025.12.18.00.14.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 00:14:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8bf5aea9-dbe9-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766045656; x=1766650456; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=HzL8Pw8FRKEyfnw9DMyj6jkTR46N8YmfQmd8TVDfefA=;
        b=ONRf4aM58Nai9b0dR+DPDTbexhKojm5iucU51tR/FjsFvr1nY0c8yumlQG4qAEyXon
         RMUzlUGtImEnRFXN4nAiHaGc1bijGu5JtlwiKoO2y3QGKo+mrNjs4/pKEljlCsYKutpd
         uFqBm0tgA6wwO6WO8o4WumOy1jHTzxGOeg1nQw8MftjBG8qE3121l2qasKT6XlL76lUU
         7ZL96yZ7gPErNJ6SkAP1F140rwcv5Cr8eEGDx9eaQCv5pLs5bNmCbyCrhJ0OopYcOLAv
         20Ge0JeGWicrInJqs9giCD+D7zvqpAjOjelQ7OvQgGzJ7pj4lp5Nb9fMI5bbu+v/266d
         3w6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766045656; x=1766650456;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=HzL8Pw8FRKEyfnw9DMyj6jkTR46N8YmfQmd8TVDfefA=;
        b=U2MRt9IaavORpphyMvfk4OI1rZcVgGqBTQLKN4mmGhCg5uEOIznu4t4pTwPTC0nRwH
         rzwpLtGBpRQD5uVzFqwH/z6ASEuPfxB8J0gZ33sjrwXEo0R0Tc8413qvmHKIVfUwix9y
         OOfRs+PyaXzPgg42RCVSrzSb093uRDVCB2baooo7Xj2cy1DwfGdxt27NTOm10uP8gYEE
         LJ+n1g9z6LLV2bkdPoFhZzlg4vrmV//B26I/xvxpWXeWUaygezO9+4xLLFPeWIUULZau
         4QM54wIKFQ8yxoTwLe+GObubyOt3wDsvHCzAHG3RdPG/zVYwniZMZeOTk2rY1/jYXVIH
         lrhA==
X-Gm-Message-State: AOJu0YwRF6OnL3Wxmct/r1UIoxcr6N3uqek+mhBfkM55FZZnThemIG9n
	cpKivsjLRgWv4k8iFkTWL7s9sL47kR4O8XTHff1YmTfV+VTaTupeIeFdQ5OkKONdMy8=
X-Gm-Gg: AY/fxX6WGv6PPLPBwZTPDR+a9vA2XGIeYLB4W+18R2Sh20iKjSRAGldWsKS/4+F7Qrx
	LhnkQRFY6yCes5bn+7x/GrW6bmNWSt/Iy5yRyfmw+FpREHzzmRlWZtBmtGEurxxIX/Bkn01lU9l
	oLVsUBh/LYjt8309jBenqEugax3dxuGE1nFqYXCeEXYlWlvB22r2lGe9bpi5C5miHeZqMS+VYbv
	vDhfcLFCcugN53mLo7CvNDC19sBYyDvGpTN+LHUZ4DZiV4pcpMI3SRxPXzzsWW34+Rs3jZ5N8q+
	lCse7FlaNubQZzh2fLUQqBUWVMlBf7z1Z94P/UOxPEW8iYeTVkaUEoue/EokXnxI2/uShBjSCt7
	OzUPMiXr5zZoNDHXKXguQnEo2vlq1lfnQ0DFTDPTgBgPmoQ4BnATD8btZe9lQ8N/UrIhgyXeWt6
	MfYArTrbVZa8athRmAQCUIrLPXmDVicjP93ziN7uGYJenLENr/RJy92pBSp7pzW8HCR9x1nR7F6
	n7q0y6HtMxPWkN/Q7R49iSVYx1xQSu53GFX1Nso97j6sPl8tA==
X-Google-Smtp-Source: AGHT+IFMf1oNsW+AzB+TyZ6oAcfADs9kfShUc0VXAws0YQx6M+d5h8ZtcOuzZEINE3WIsMUo/fuqgg==
X-Received: by 2002:a17:907:7285:b0:b74:9833:306c with SMTP id a640c23a62f3a-b7d23a5ee67mr1924057166b.47.1766045656557;
        Thu, 18 Dec 2025 00:14:16 -0800 (PST)
Message-ID: <548207b3-c941-4956-bf2c-11eee467777b@suse.com>
Date: Thu, 18 Dec 2025 09:14:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] 9p/xen: mark 9p transport device as closing when removing
 it
To: Demi Marie Obenour <demiobenour@gmail.com>,
 Ariadne Conill <ariadne@ariadne.space>, v9fs@lists.linux.dev
Cc: xen-devel@lists.xenproject.org, asmadeus@codewreck.org,
 linux_oss@crudebyte.com, lucho@ionkov.net, ericvh@kernel.org,
 Stefano Stabellini <sstabellini@kernel.org>, Alex Zenla <alex@edera.dev>
References: <20251208195155.27473-1-ariadne@ariadne.space>
 <409cccec-15dd-4e80-ba56-f0bba12772cb@gmail.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <409cccec-15dd-4e80-ba56-f0bba12772cb@gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------28Ghrc4OCSathJiwNAbK3Ixs"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------28Ghrc4OCSathJiwNAbK3Ixs
Content-Type: multipart/mixed; boundary="------------EUnWjdmBHMkVjcONGSsRRrh7";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Demi Marie Obenour <demiobenour@gmail.com>,
 Ariadne Conill <ariadne@ariadne.space>, v9fs@lists.linux.dev
Cc: xen-devel@lists.xenproject.org, asmadeus@codewreck.org,
 linux_oss@crudebyte.com, lucho@ionkov.net, ericvh@kernel.org,
 Stefano Stabellini <sstabellini@kernel.org>, Alex Zenla <alex@edera.dev>
Message-ID: <548207b3-c941-4956-bf2c-11eee467777b@suse.com>
Subject: Re: [PATCH] 9p/xen: mark 9p transport device as closing when removing
 it
References: <20251208195155.27473-1-ariadne@ariadne.space>
 <409cccec-15dd-4e80-ba56-f0bba12772cb@gmail.com>
In-Reply-To: <409cccec-15dd-4e80-ba56-f0bba12772cb@gmail.com>
Autocrypt-Gossip: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwY8E
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAACEJELKItV//nCLBFiEE
 dodNnxM2uiJZBxxxsoi1X/+cIsGGvxAAr/GtvjDKLvXEgjaGQUGlPn05ss37fYVBPtHeVtlG
 NUWNzrIxSM5vUf+ElXHH7KjmCxKPktL0DCCCKhRKtxQqV18D88opqLabNOVQPFNwXe8rHqIx
 coDoCrADDgHntkQmgwzp6CbntNXX2TM8xzzv01Xadzr56VoqX7+RtV4Peq8G4TCxN7YOjccA
 B2t9Qb+P16vAiTqCFr8en3JmUKc9Nf5Ur7GJ9Cq3xG0ypLlH9LzPSawkwj9qM1TTeQWM6mqt
 jOK/o5ksnly4pvdtlTlqhpFBEPOQUhHpqq0UtOiFOjbRDLBfBFrf24Vo5P/Rgyk3J6XSR06z
 MU7KRMQYja76SNrfmD1OQf3SSQFMb5oRa20iG3QfLpgWbCNwDGKxJqQG4ece4xI6LJFAu7jd
 6Pb6YNaAi0tnjwy7QLcgbWx55AOMRg+2q/JnpsaR/ZWP4vrAugssiFFnFA552oCsiT9JvZLN
 Bi7E3jggNG37dlwOqw+mmgpzFLJ3U3La2m+NgleV8qY5guFNazyfCUCVIdf9z+PP/LDB/t5K
 8aSdOijVjRWlG2jExopbWe8fQ54JJUmK19E/thuJFVzZo2pY8JKC2ocC5WtoFFsAUsqH13as
 oUHcGbKdNSlzUFAsk/z4Pmg3JvxOzjFd3eJX+4PwksYl9hkhHugZYUs/i5ne2Sd4N9jOwU0E
 Wn4DSgEQAL3Kdkj0tT64mQx4Ql4nJD/xUWQIlA9BkSwgbM5OU+fC9WdrQBLzqfZn6srtH+6x
 izmIkJnnn8khJZ3zEPnu57R4Hjttwm9WoaU5sjYMQbxPBpbQ7R25GEODMwQvi3Up1EB6kgRI
 EQD+I+kjiB9RtUQgRC6p2pDI7gYB74yQPQfLkkf/SqAWZtpJ6A1N1CDmKpiNFne22KzBqWqX
 X+JLK/VZh4LU4Cz7YEs4BPY0SCBKJU63ER+B7CxC0JaLwfVKiKtqQh+jjkfPS2T8B31laHY+
 84a33sprzmjhMsnGAkmoYSepwVRmckmuLChpEhLw3YLz+cQzneNvWwfSBh10xTdDFjt1g0sh
 StEpB42QXfR0rtXolEfumV5GV/7BBw19EAhSs2Vq2P1PHCK9CsqcL1ogUUcTL/SYCC2tBKFw
 xGYyBWVGg4DkHxFO6VEsKaRp+/C6Gzp0LE3QY0A5EhVUXGPH1Wfs6pg+DCKh9npJsSXSGA/J
 YFC8TzmSUUtkuiPun6OgNjVc1DO2Z8Cucn3H5hXiKCNYiYg0BlKWYRxi137HLcuL/yh5gMCq
 uyes6Nv5a8aELKQmTi6sGiDYs21zIKOROzsX5Z5cZSjQ0OFt3dnoDIV+p4Xu4ncPmGWlfacj
 2ej+6A+utNWhVkCCuuc3PSJkbYNXHjrH3XelUoeXmaVhABEBAAHCwXYEGAECAAkFAlp+A0oC
 GwwAIQkQsoi1X/+cIsEWIQR2h02fEza6IlkHHHGyiLVf/5wiwcDSD/wIiBxPG6CKkXhUMmjM
 8aupROGGQmTY+uQf55Azr6HUosH8I41VRNld4hM8TB24MkwhgOu/gaP3eWkBo4J9Ez7bBs3p
 ckB4qWlMxMq7HHlBlmKCl2MlVihH8odHA353fXYgJt1XjanIbXDKaHoREx/H60R5yXQXI39d
 dj80EnSgupKlNENfenOFaeRwzkHzYg503+4GUo9Aa2hzgcsvSxAwi4UIgpq/thNK1uLQbQwJ
 9h5E/bn99mRqiQp9TvtrlXxYRrurzxOapKq20hPExvtNx/HnFNqudM4B1j3RzDgb8txIc3wI
 dlZjkk3ESvrUlHv7t8HS0Qz8L/w08xiN+ioJMvTLAwuYKSMDWziT9hv6tcE9aBpMOCF31r9r
 n1ol6ifpOxxItjdbK3nuw8vSgQqm/nGtbxYWDwyX4T++SP1Z8x1bLGf62Gffudcg6FAAaDXS
 TUhlGJfmIfT8PaRNyreBBc1JRWVmxOMSi/zT56Ps+CfWlnpiy7M3GM/7t152zr1EkB0q5nzs
 193FeMn5ozOZXsIErLaMRsk8djPHp7JYHV4T7YWZQ505zk/gvjk7IfPpubaLPB0I2jzNNTCg
 YgKnT4JLJtcLtg668FIugoUVU1AXI+vv/SCfNR9j9oCZNy7NwFSMSH3y6GN+BPjGEn5BIwc9
 BPAiznAMOySMAGngUw==

--------------EUnWjdmBHMkVjcONGSsRRrh7
Content-Type: multipart/mixed; boundary="------------n5jEUTnsteudRSKfi9h8GnMS"

--------------n5jEUTnsteudRSKfi9h8GnMS
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMDkuMTIuMjUgMTE6NDEsIERlbWkgTWFyaWUgT2Jlbm91ciB3cm90ZToNCj4gT24gMTIv
OC8yNSAxNDo1MSwgQXJpYWRuZSBDb25pbGwgd3JvdGU6DQo+PiBXZSBuZWVkIHRvIGRvIHRo
aXMgc28gdGhhdCB3ZSBjYW4gc2lnbmFsIHRvIHRoZSBvdGhlciBlbmQgdGhhdCB0aGUNCj4+
IGRldmljZSBpcyBiZWluZyByZW1vdmVkLCBzbyB0aGF0IGl0IHdpbGwgcmVsZWFzZSBpdHMg
Y2xhaW0gb24gdGhlDQo+PiB1bmRlcmx5aW5nIG1lbW9yeSBhbGxvY2F0aW9uLiAgT3RoZXJ3
aXNlIHJlbGVhc2luZyB0aGUgZ3JhbnQtdGFibGUNCj4+IGVudHJpZXMgaXMgZGVmZXJyZWQg
cmVzdWx0aW5nIGluIGEga2VybmVsIG9vcHMgc2luY2UgdGhlIHBhZ2VzIGhhdmUNCj4+IGFs
cmVhZHkgYmVlbiBmcmVlZC4NCj4gDQo+IEkgZG9uJ3QgdGhpbmsgdGhpcyBpcyBzdWZmaWNp
ZW50LiAgVGhlIGJhY2tlbmQgY2FuIHNpbXBseSByZWZ1c2UNCj4gdG8gcmVsZWFzZSB0aGUg
Z3JhbnRzLiAgVGhlIGZyb250ZW5kIG5lZWRzIHRvIGVuc3VyZSB0aGF0IHRoZSBwYWdlcw0K
PiBhcmUgbm90IGZyZWVkIHVudGlsIHRoZSBncmFudCB0YWJsZSBlbnRyaWVzIGFyZSBmcmVl
ZC4gIFJpZ2h0IG5vdywNCj4gdGhlIGJhY2tlbmQgY2FuIGNhdXNlIGEgdXNlLWFmdGVyLWZy
ZWUgaW4gdGhlIGZyb250ZW5kLCBhbmQgbXkNCj4gdW5kZXJzdGFuZGluZyBvZiB0aGUgWGVu
IFByb2plY3QncyBzZWN1cml0eSBwb2xpY3kgaXMgdGhhdCB0aGlzIGlzDQo+IGEgc2VjdXJp
dHkgdnVsbmVyYWJpbGl0eSBpbiB0aGUgZnJvbnRlbmQgY29kZS4NCj4gDQo+IE15IGluc3Rp
bmN0IGlzIHRoYXQgdGhlIGNvcmUgWGVuIGNvZGUgc2hvdWxkIHRha2UgYSByZWZlcmVuY2Ug
b24NCj4gZWFjaCBwYWdlIGJlZm9yZSBncmFudGluZyBpdCB0byBhbm90aGVyIGRvbWFpbiwg
YW5kIG5vdCByZWxlYXNlIHRoYXQNCj4gcmVmZXJlbmNlIHVudGlsIHRoZSBwYWdlcyBhcmUg
bm8gbG9uZ2VyIGdyYW50ZWQuICBUaGlzIHNob3VsZCBwcmV2ZW50DQo+IGFueSB1c2UtYWZ0
ZXItZnJlZSBwcm9ibGVtcyBpZiBJIHVuZGVyc3RhbmQgTGludXggY29yZSBNTSBjb3JyZWN0
bHkuDQoNCkkgbG9va2VkIGF0IHRoaXMgaW4gZGV0YWlsIG5vdy4NCg0KSSBkb24ndCB0aGlu
ayB3ZSBoYXZlIGEgc2VjdXJpdHkgYnVnIHJpZ2h0IG5vdywgYnV0IHRoZSBpbnRlcmZhY2Vz
IHJlZ2FyZGluZw0KZ3JhbnRpbmcgcGFnZXMgdG8gb3RoZXIgZG9tYWlucyBzaG91bGQgcHJv
YmFibHkgYmUgcmV3b3JrZWQgbGlrZSB5b3Ugc3VnZ2VzdC4NCg0KQ3VycmVudGx5IGl0IGlz
IHRoZSBjYWxsZXIgd2hvIG5lZWRzIHRvIGhhbmRsZSBwYWdlIHJlZmVyZW5jZXMgY29ycmVj
dGx5LA0Kd2hpbGUgdGhpcyBzaG91bGQgYmUgZG9uZSBieSB0aGUgZ3JhbnQgaGFuZGxpbmcg
KGhhdmluZyB0byBlaXRoZXIgaXNzdWUNCmdldF9wYWdlKCkgb3IgdG8gcGFzcyBOVUxMIGZv
ciB0aGUgcGFnZSBwb2ludGVyLCBpbiBjYXNlIHlvdSBkb24ndCB3YW50IHRoZQ0KdW5kZXJs
eWluZyBwYWdlIHRvIGJlIGZyZWVkIGJ5IGdudHRhYl9lbmRfZm9yZWlnbl9hY2Nlc3MoKSwg
aXMgZmFyIGZyb20NCmludHVpdGl2ZSkuDQoNCg0KSnVlcmdlbg0K
--------------n5jEUTnsteudRSKfi9h8GnMS
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------n5jEUTnsteudRSKfi9h8GnMS--

--------------EUnWjdmBHMkVjcONGSsRRrh7--

--------------28Ghrc4OCSathJiwNAbK3Ixs
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmlDt9cFAwAAAAAACgkQsN6d1ii/Ey9Y
twf+JmNTs9FPPnEeuIqacdYtb9bZSMWfUIvodrF8wc2c2QJWFqdIBaORZJZJSKlSt05a4LaqHRUZ
NuIWlaw6TQ8b7zZCWu8H2ZJJm3j96rVMAf19N9Et1fDiKTwG/h6M7JnPjuLKKoEUb5IDw7QQ3dDG
txb7YQi4S/N52hb2+g4S8XhLa3kEPW85GjzBjLdHAmH+CIMkpiE9Q4JgIizC1MiONSBNGcq51U+7
QaALrKTRVhnV1hS5zk/kI1rUP9xAOdjbe3fiHq7gdaQgA1+m/90N704y6/z3zP6CAox5RKfH5p2+
byJXpICZ/s26njxcHqRzVC8WonTAYIMI1dSpOEY8Zg==
=TLDF
-----END PGP SIGNATURE-----

--------------28Ghrc4OCSathJiwNAbK3Ixs--


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 08:22:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 08:22:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189310.1510102 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vW9H6-0000nj-4t; Thu, 18 Dec 2025 08:22:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189310.1510102; Thu, 18 Dec 2025 08:22:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vW9H6-0000nc-1Y; Thu, 18 Dec 2025 08:22:16 +0000
Received: by outflank-mailman (input) for mailman id 1189310;
 Thu, 18 Dec 2025 08:22:14 +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 <SRS0=2jZQ=6Y=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vW9H4-0000nV-EQ
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 08:22:14 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a791dd36-dbea-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 09:22:13 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-6492e78ce07so400740a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 00:22:13 -0800 (PST)
Received: from ?IPV6:2003:e5:8704:4800:66fd:131f:60bd:bc29?
 (p200300e58704480066fd131f60bdbc29.dip0.t-ipconnect.de.
 [2003:e5:8704:4800:66fd:131f:60bd:bc29])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b585d403dsm1794469a12.11.2025.12.18.00.22.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 00:22:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a791dd36-dbea-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766046132; x=1766650932; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=wxp4u7xQNpXdg/Ydyg/VRGwAJBzd6AMFHiYDiAM6LjU=;
        b=Z90LCJaHzJ9a5zmvkiLE7mU8RPovHbUW9XyA9rAXSugl6YbehxjQHUVuJZDcBSgYx6
         FK6HNPLhd3fbu1dz6c0+CsKnnW1fy7PxYcIAZSU/5eAanb2MoOZ0DnZhccj89H3R9cGb
         nJrKIuF4UQYAeELGV6UeygcafT0f7dPw0WS647fuePvhGQA7SRrlWLrZ5gsNgaez/ES4
         DvQmYlojv3RAoegSOb5c/Cun4D0lvXlOvTfz0GAwb0PXPviquSPYdWKiVI2Zcs6JFrli
         /7At4eT29dSoic3KK3tXrZTansl97Ap0neHxKxd4WbE2iTLBO8hLc7R2uHqf7lvF+h6l
         XFhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766046132; x=1766650932;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=wxp4u7xQNpXdg/Ydyg/VRGwAJBzd6AMFHiYDiAM6LjU=;
        b=W50GUWowRkB1qGE2LSR6B6pPcrvjvZHK8UZn5vO0ZFzW/rmJZ0RCDKHSofYCKbP1YQ
         ULfn8MjWLCa0ZMezkdquLqNHtLGoSDKE7KjePPp6kEuNp9CDcEAmvrRkIAyaCcc61R/F
         DglIp/0Vixf0cJN98rsEc5H9SRXLyB/rxPlVUao6G0NyLqhfZ/yRSTUHnUHUehlC5krW
         zw2gRrMcHXDAU/P7TLUxqkQ6KyBDiYPqbOeyMWUtSoRck1KTZejNDoa73qa2gAiTcXLS
         W7C9G722RLluqB4zPF4WfxkUpdAc8Rcs+f/WszGdJh/CU1j+UdPIgLDBAW0aUO+NhDhr
         WKZg==
X-Forwarded-Encrypted: i=1; AJvYcCXslRn5FmN6/I3jM4n1fW5SyVkDoEtyiIGW/daJagqznxThYosadd75E80yPB6IhzlBuNCUu1dVWOQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwcdqGiSK6cb0ohJIKrpGzy4rsvqLO8BL6TNU3TbyzgyBdCeP55
	MB/WJDTNFdaROtxUM+atwfqw8yGJjj8pj4JyK+IpY1w/Xufp20VexnR4wj+yIZ3H6fY=
X-Gm-Gg: AY/fxX6gdS3DeTZNHW8+zhRKXVhAA37R21D7faFHTRKJEJQfl+OTaZ8KZScALkBrTOE
	iK3rHCCqCMc3drl4FiOWapD5NpIQTrzUOB5ZSj2m3V9IQr4oiTKdbgCZBKOtaFTb95T7RlmBmuy
	tNZJ0xOhbAquI4cdyhEK0aznX//MD0y8dn7gbsiXcsKluUeNWti22ONcA2OTSkcPY+95oIyewxP
	oKtOxZjh/A21Nsx9AuJhUL1vMyHEOfDOeDI246af1RnSWam/bLtiedtLdkgzJtPRmP1teoBTLiO
	Ixqu9WkgU8kOMLuncgx9O+b66s9JuvHMgkjvuF7CnrtAThvMfDChhdZaRhumaBObYrUKxa0dzad
	3jAcns6mzI5WOXFAsXcC+bfUbr6G9l0WoK+cnQaGg1G1Ho4pZYEH2swrmBMTz2kTUlHBCEQpTyZ
	9j2UXT7QGaNOFP+Iz3YOQ9XLkTG6cBTyhtReYIm+B6H1MuJGw/9GJKNGOe9rwHS/UeXMd1A5US2
	feavyC98dG9OLcJUcCGObMAh7UwV5avFb1QZjP15jlt5Tfa8Q==
X-Google-Smtp-Source: AGHT+IGOQhjN3zuvj92TNNMTPzXquoB0TWa2kZteaV6l+gNr8Hw96mHRbUrRh/vK+P84rnHKRxun0Q==
X-Received: by 2002:a05:6402:4410:b0:64b:622b:cd1e with SMTP id 4fb4d7f45d1cf-64b622bd022mr1183900a12.28.1766046132364;
        Thu, 18 Dec 2025 00:22:12 -0800 (PST)
Message-ID: <91bf5405-0258-4ce3-bc12-1df819317542@suse.com>
Date: Thu, 18 Dec 2025 09:22:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 10/24] xen/domctl: wrap vcpu_affinity_domctl() with
 CONFIG_MGMT_HYPERCALLS
To: Penny Zheng <Penny.Zheng@amd.com>, xen-devel@lists.xenproject.org
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
 <20251212040209.1970553-11-Penny.Zheng@amd.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20251212040209.1970553-11-Penny.Zheng@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------h4JosMsHk0d6GPjW1o0ahR7y"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------h4JosMsHk0d6GPjW1o0ahR7y
Content-Type: multipart/mixed; boundary="------------BopRlHZN12IJgUGAqXFMxcpc";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Penny Zheng <Penny.Zheng@amd.com>, xen-devel@lists.xenproject.org
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>
Message-ID: <91bf5405-0258-4ce3-bc12-1df819317542@suse.com>
Subject: Re: [PATCH v5 10/24] xen/domctl: wrap vcpu_affinity_domctl() with
 CONFIG_MGMT_HYPERCALLS
References: <20251212040209.1970553-1-Penny.Zheng@amd.com>
 <20251212040209.1970553-11-Penny.Zheng@amd.com>
In-Reply-To: <20251212040209.1970553-11-Penny.Zheng@amd.com>

--------------BopRlHZN12IJgUGAqXFMxcpc
Content-Type: multipart/mixed; boundary="------------IjFjvnQW8bcDvBldyn5FoQzd"

--------------IjFjvnQW8bcDvBldyn5FoQzd
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMTIuMTIuMjUgMDU6MDEsIFBlbm55IFpoZW5nIHdyb3RlOg0KPiBGdW5jdGlvbiB2Y3B1
X2FmZmluaXR5X2RvbWN0bCgpIGlzIHJlc3BvbnNpYmxlIGZvcg0KPiBYRU5fRE9NQ1RMX3tn
ZXR2Y3B1YWZmaW5pdHksc2V0dmNwdWFmZmluaXR5fSBkb21jdGwtb3AsIGFuZCBzaGFsbCBi
ZQ0KPiB3cmFwcGVkIHdpdGggQ09ORklHX01HTVRfSFlQRVJDQUxMUy4gT3RoZXJ3aXNlIGl0
IHdpbGwgYmVjb21lIHVucmVhY2hhYmxlDQo+IGNvZGVzIHdoZW4gTUdNVF9IWVBFUkNBTExT
PW4sIGFuZCBoZW5jZSB2aW9sYXRpbmcgTWlzcmEgcnVsZSAyLjEuDQo+IFRyYWNraW5nIGl0
cyBjYWxsaW5nIGNoYWluLCB2Y3B1YWZmaW5pdHlfcGFyYW1zX2ludmFsaWQoKSBhbHNvIG5l
ZWRzDQo+IHdyYXBwaW5nIHRvbw0KPiANCj4gU2lnbmVkLW9mZi1ieTogUGVubnkgWmhlbmcg
PFBlbm55LlpoZW5nQGFtZC5jb20+DQoNClJldmlld2VkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxq
Z3Jvc3NAc3VzZS5jb20+DQoNCg0KSnVlcmdlbg0K
--------------IjFjvnQW8bcDvBldyn5FoQzd
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------IjFjvnQW8bcDvBldyn5FoQzd--

--------------BopRlHZN12IJgUGAqXFMxcpc--

--------------h4JosMsHk0d6GPjW1o0ahR7y
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmlDubMFAwAAAAAACgkQsN6d1ii/Ey/3
cQgAkJWOSwaT9sj2yHAnhsZ2SRRGfZxYeo3f0BfKhAx0OBd8LIJYfiMh9bcCNPZgr5vcD8PYMNjn
Khu61d1wTlGgA/FslqLRwHdWkmcI33Fu45Ew2jcqkJIwdWBLJZW6+MuFNK6O4qDDbg20DdN37Klq
YSKV+j4NKuMCxCKImK/HcKXYj+K8Vwd0QXgWQDSKP/uo/o4yw/ClYO3ixYI3tAavN4OdLQBRcLR2
wKjloYa0hYQAh3TU9G+PEUvg010D4kltZ5fRhwFPy0Uqw3xGRwFQ3dAmXBqntN0B/ZeoFznZPXuT
Ztpzl6z2E1EhNMKjoI3JOOiunc0YpawPHnY1BxuFLg==
=Nc70
-----END PGP SIGNATURE-----

--------------h4JosMsHk0d6GPjW1o0ahR7y--


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 08:40:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 08:40:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189325.1510114 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vW9YT-000498-HY; Thu, 18 Dec 2025 08:40:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189325.1510114; Thu, 18 Dec 2025 08:40:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vW9YT-000491-El; Thu, 18 Dec 2025 08:40:13 +0000
Received: by outflank-mailman (input) for mailman id 1189325;
 Thu, 18 Dec 2025 08:40:11 +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 <SRS0=dRjX=6Y=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1vW9YR-00048t-U7
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 08:40:11 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 28a7b22b-dbed-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 09:40:09 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 9D01A4405A;
 Thu, 18 Dec 2025 08:40:07 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DD4B5C4CEFB;
 Thu, 18 Dec 2025 08:40:06 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 28a7b22b-dbed-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1766047207;
	bh=ofPz3WZxF0qhrxc5N6KO0WklVZWUMGP/4at4uzuCx5s=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=rmVVJePJGXR+kQkm3+r1Kbt0GyikF3QfUnymI7CCZrHKsRgARfO2o2ba2kB+bpPCT
	 UHrvTWZoxuQAIRQXxc9I5NeoAcCrZBmmcrAlJnug5BaQTQvVwVqvaJjDuY33ZMzoy6
	 BAr6jLOIpi2I8WC82e6kp81I8nrCa8WqCHQlSBTqZwv7g1LhXawg+JG4WGZSyz9t7l
	 lUOt/NCn0KCw0dStvCGVQTawL+HWAy5Lrwn0Gx39IwmYRZLbytZdLLUDYSPzigtubq
	 ZxR25apmkkEWekeoA8W1U6GFN06j4Og1ARDAkIDWxQbraNlGOfxULa77Gl1qMs8cke
	 OZqPmHVBTqbAw==
Date: Thu, 18 Dec 2025 10:40:02 +0200
From: Leon Romanovsky <leon@kernel.org>
To: Guenter Roeck <linux@roeck-us.net>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Robin Murphy <robin.murphy@arm.com>,
	Russell King <linux@armlinux.org.uk>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Matt Turner <mattst88@gmail.com>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	Helge Deller <deller@gmx.de>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Geoff Levand <geoff@infradead.org>,
	"David S. Miller" <davem@davemloft.net>,
	Andreas Larsson <andreas@gaisler.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>, iommu@lists.linux.dev,
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	xen-devel@lists.xenproject.org, linux-alpha@vger.kernel.org,
	linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
	Jason Gunthorpe <jgg@ziepe.ca>, Jason Gunthorpe <jgg@nvidia.com>
Subject: Re: [PATCH v5 09/14] parisc: Convert DMA map_page to map_phys
 interface [qemu test failure]
Message-ID: <20251218084002.GD39046@unreal>
References: <20251015-remove-map-page-v5-0-3bbfe3a25cdf@kernel.org>
 <20251015-remove-map-page-v5-9-3bbfe3a25cdf@kernel.org>
 <b184f1bf-96dc-4546-8512-9cba5ecb58f7@roeck-us.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <b184f1bf-96dc-4546-8512-9cba5ecb58f7@roeck-us.net>

On Wed, Dec 17, 2025 at 04:17:38AM -0800, Guenter Roeck wrote:
> Hi,
> 
> On Wed, Oct 15, 2025 at 12:12:55PM +0300, Leon Romanovsky wrote:
> > From: Leon Romanovsky <leonro@nvidia.com>
> > 
> > Perform mechanical conversion from .map_page to .map_phys callback.
> > 
> > Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
> > Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
> 
> This patch causes all my 32-bit parisc qemu tests with C3700 machine
> to fail. Network interface tests fail, and all boot attempts from
> any kind of hard drive (scsi, usb) fail with this patch in the tree.

Thanks for the report. I have a fix ready; I'll clean it up and send it out
by EOD.

> 
> Guenter


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 08:49:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 08:49:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189338.1510125 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vW9gg-00052Z-AG; Thu, 18 Dec 2025 08:48:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189338.1510125; Thu, 18 Dec 2025 08:48:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vW9gg-00052S-6n; Thu, 18 Dec 2025 08:48:42 +0000
Received: by outflank-mailman (input) for mailman id 1189338;
 Thu, 18 Dec 2025 08:48: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 <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vW9gf-00052M-HV
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 08:48:41 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5996c4b0-dbee-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 09:48:40 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4779cc419b2so2389945e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 00:48:40 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47be3020f25sm31698625e9.6.2025.12.18.00.48.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 00:48:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5996c4b0-dbee-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766047719; x=1766652519; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XSBrnSRjqjZN3nIux65z7k+APJ9qn4D9C6S0TDTKL6M=;
        b=I1ELv5RQLK1UXgVnXu+ITApSF6MhegYcXnpWvsQyAdIWaQTI4q2PqJ1T7cmAKQOD+I
         eZS6EfF2NDUnqN2boppu/990erpN0LZJtGreeQA1sSdW4Z7RAWDnxowN6w05HLCH521X
         CU1OfGyf5cJg0hfsCOP7C4r0tGdyQLE61wDWU3Fl7S6baNR0O4lYiMNX8KKYCMvZuty4
         8jMIYPHPTWdxmGqMma5b0TsQJEWYrvUJ1I9lX9DuidsPUBtn0sf6qIXiMpFSFbpixLAD
         bwitv93Hz8y2RrEaYRp0BXwSldAPeMkzXdoILSw1Nld40l4yVhuuezbDGpXC1xa8CE8w
         rEtQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766047719; x=1766652519;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XSBrnSRjqjZN3nIux65z7k+APJ9qn4D9C6S0TDTKL6M=;
        b=Mwk8ymSRydU+rw9FpRZRlNezhkFisjP4R8uY8A0g9gen+AQDyCMXv4TxSU9lTchD5y
         GWG3C+9yVfv+NRMNNaY0hgzZ1ZYN973GNOjC3I2eO3H5UKgC5lbs8Hk9RojvOVAI+Ehq
         lVXLwhMWhWUz9MxL7kQjmVgMH5KsxAhU73Qyh0SuM1hXB9tFJF4PbGTGj8HndkFZhRIf
         zjVzNNQ2SXhjuTBfrGVr4vRQpm4V3T5vCxmaaGV+pZEaH6vioHee/ghxBy1+fdx1gxrf
         qx/9IoWQzNesEVxGZkcN3Ra+YDvxNVKQ8HHohdaOVGt8g1+wy6PRuj0uVlJrDcWGaKLO
         tFCw==
X-Forwarded-Encrypted: i=1; AJvYcCUvaOdwl0O6kgP55SSlMZ6kBc+J6PhGIW4WaHvxP41xGBgsiDL5BINHkwkrGh0+7GNsQQbYO7sYX1E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxVdg87NzODGTkbGsT7LlgAIHp35RLXKkKZe7zhNwjgyvmT0k3e
	T+plsgWdBzHMM+Rv/AIis7Tf5oOaFA2o02AEat4vQkHJSspJRNd7G0m4Dh86FLh5Mg==
X-Gm-Gg: AY/fxX61YHiygurY/bp0wSWBMosN6v6DtV2R/pLQPXsAqvB9kU7r2g+L3gOFBzNm/8J
	8Hx897IQ/1gz9ERwi3czARDj+7iV/U+702XkSccwuu5TGrdGA8A8ETBnF3589+nDOOdmqN7GoU/
	SsZT1psPewK6qJwH+w4QJQqg69dSVvmRdfGrY3SHA3GX63H+VQmrhC4TLsqgKshrQqAKnhATAPc
	OTT0aPDHa20vbifHjO0gm18xeE5786VeJs+hokwHCE8hFp4yJiBBv2BAfvIZN74nuH+XVknlbek
	i+sfEVHW+Y5NVhKWR8QY8M48KOhfFspCoH4a4TWH5HcBpeA22uZvzeqQptprmZZGBVLtpmoaFg0
	zhjS0xRSty0rR5RwNv5lc5ZoiFELU/O4ZjkFdXwnSFIqXU1PLyxdELjOrtUflkHlqvu9EtBkUhH
	LIWYLikk0KF3YpQ79G/Lx0mem4oBMKUKxShH6626D4R0HshkAHHqXYaOV9gP0MSimLmy54xlctl
	Xw=
X-Google-Smtp-Source: AGHT+IHdwGMFSnvRmIPI2uo4JfjFPognIkiOM8vqCndTfAKrNRt0olp3OKSer2ooGWp2W+7EZTEzhg==
X-Received: by 2002:a05:600d:6402:20b0:475:da13:2568 with SMTP id 5b1f17b1804b1-47a900bd6b7mr170052385e9.25.1766047719514;
        Thu, 18 Dec 2025 00:48:39 -0800 (PST)
Message-ID: <b7d3a8ad-7993-4010-8afb-16d8614064ce@suse.com>
Date: Thu, 18 Dec 2025 09:48:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 02/19] xen/riscv: introduce VMID allocation and
 manegement
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
 <909072f0b5ede1869e6c6993be348ecbdd47e0fa.1765879052.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <909072f0b5ede1869e6c6993be348ecbdd47e0fa.1765879052.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.12.2025 17:55, Oleksii Kurochko wrote:
> Current implementation is based on x86's way to allocate VMIDs:
>   VMIDs partition the physical TLB. In the current implementation VMIDs are
>   introduced to reduce the number of TLB flushes. Each time a guest-physical
>   address space changes, instead of flushing the TLB, a new VMID is
>   assigned. This reduces the number of TLB flushes to at most 1/#VMIDs.
>   The biggest advantage is that hot parts of the hypervisor's code and data
>   retain in the TLB.
> 
>   VMIDs are a hart-local resource.  As preemption of VMIDs is not possible,
>   VMIDs are assigned in a round-robin scheme. To minimize the overhead of
>   VMID invalidation, at the time of a TLB flush, VMIDs are tagged with a
>   64-bit generation. Only on a generation overflow the code needs to
>   invalidate all VMID information stored at the VCPUs with are run on the
>   specific physical processor. When this overflow appears VMID usage is
>   disabled to retain correctness.
> 
> Only minor changes are made compared to the x86 implementation.
> These include using RISC-V-specific terminology, adding a check to ensure
> the type used for storing the VMID has enough bits to hold VMIDLEN,
> and introducing a new function vmidlen_detect() to clarify the VMIDLEN
> value, rename stuff connected to VMID enable/disable to "VMID use
> enable/disable".
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>

> --- /dev/null
> +++ b/xen/arch/riscv/vmid.c
> @@ -0,0 +1,178 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/domain.h>
> +#include <xen/init.h>
> +#include <xen/sections.h>
> +#include <xen/lib.h>
> +#include <xen/param.h>
> +#include <xen/percpu.h>
> +
> +#include <asm/atomic.h>
> +#include <asm/csr.h>
> +#include <asm/flushtlb.h>
> +#include <asm/p2m.h>
> +
> +/* Xen command-line option to enable VMIDs */
> +static bool __ro_after_init opt_vmid = true;
> +boolean_param("vmid", opt_vmid);
> +
> +/*
> + * VMIDs partition the physical TLB. In the current implementation VMIDs are
> + * introduced to reduce the number of TLB flushes. Each time a guest-physical
> + * address space changes, instead of flushing the TLB, a new VMID is
> + * assigned. This reduces the number of TLB flushes to at most 1/#VMIDs.
> + * The biggest advantage is that hot parts of the hypervisor's code and data
> + * retain in the TLB.
> + *
> + * Sketch of the Implementation:
> + *
> + * VMIDs are a hart-local resource.  As preemption of VMIDs is not possible,
> + * VMIDs are assigned in a round-robin scheme. To minimize the overhead of
> + * VMID invalidation, at the time of a TLB flush, VMIDs are tagged with a
> + * 64-bit generation. Only on a generation overflow the code needs to
> + * invalidate all VMID information stored at the VCPUs with are run on the
> + * specific physical processor. When this overflow appears VMID usage is
> + * disabled to retain correctness.
> + */
> +
> +/* Per-Hart VMID management. */
> +struct vmid_data {
> +   uint64_t generation;
> +   uint16_t next_vmid;
> +   uint16_t max_vmid;
> +   bool used;
> +};
> +
> +static DEFINE_PER_CPU(struct vmid_data, vmid_data);
> +
> +/*
> + * vmidlen_detect() is expected to be called during secondary hart bring-up,
> + * so it should not be marked as __init.
> + */
> +static unsigned int vmidlen_detect(void)

I would have omitted this comment, as the function is a helper of ...

> +{
> +    unsigned int vmid_bits;
> +    unsigned char gstage_mode = get_max_supported_mode();
> +
> +    /*
> +     * According to the RISC-V Privileged Architecture Spec:
> +     *   When MODE=Bare, guest physical addresses are equal to supervisor
> +     *   physical addresses, and there is no further memory protection
> +     *   for a guest virtual machine beyond the physical memory protection
> +     *   scheme described in Section "Physical Memory Protection".
> +     *   In this case, the remaining fields in hgatp must be set to zeros.
> +     * Thereby it is necessary to set gstage_mode not equal to Bare.
> +     */
> +    ASSERT(gstage_mode != HGATP_MODE_OFF);
> +    csr_write(CSR_HGATP,
> +              MASK_INSR(gstage_mode, HGATP_MODE_MASK) | HGATP_VMID_MASK);
> +    vmid_bits = MASK_EXTR(csr_read(CSR_HGATP), HGATP_VMID_MASK);
> +    vmid_bits = flsl(vmid_bits);
> +    csr_write(CSR_HGATP, _AC(0, UL));
> +
> +    /* local_hfence_gvma_all() will be called at the end of pre_gstage_init. */
> +
> +    return vmid_bits;
> +}
> +
> +/*
> + * vmid_init() is expected to be called during secondary hart bring-up,
> + * so it should not be marked as __init.
> + */
> +void vmid_init(void)

... this one, and hence necessarily has to follow suit in regard to section
placement.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 09:32:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 09:32:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189358.1510134 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWANI-0003TY-Db; Thu, 18 Dec 2025 09:32:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189358.1510134; Thu, 18 Dec 2025 09:32:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWANI-0003TR-AO; Thu, 18 Dec 2025 09:32:44 +0000
Received: by outflank-mailman (input) for mailman id 1189358;
 Thu, 18 Dec 2025 09:32:43 +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
 <SRS0=YG3a=6Y=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vWANG-0003TL-V6
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 09:32:43 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7fcc4bcc-dbf4-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 10:32:41 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b76b5afdf04so64005066b.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 01:32:41 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b802350dac6sm175572866b.65.2025.12.18.01.32.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 01:32:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7fcc4bcc-dbf4-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766050361; x=1766655161; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to
         :cc:subject:date:message-id:reply-to;
        bh=NsW2HasN28O50F+ltWdsLG61URTHIRksaI0HaR3fnu4=;
        b=WNI/MIBaHCudJK3FRgdPKkHKznojgceGTlGptPKKMuve3VBj0XVoX738CuVIDGbx3x
         KyBRCuGxWE0qK2uuv/6eHgF4FIBPupUuf7uojZ70+RqPpB0XvbWtBTFGjKICZWr6q1lf
         VPNNsJeztgrpw3fhKNuFu31a990fQhnwyLk4W2LWObFJcR0OJi9NcT6a0Sx+ZV9VPVKk
         FkOJ6xIdTAmRvaZoEW3LUJepFfqtQANYRpw5YYKIsGDi5E+j6raljvsVdAL4H7YHVI9L
         waWPjpbMrJLpaRQXJZngiivL2r5gC9ch/FWqxS+fdQyshO3AVAhVva1C4ve96KHyE5mU
         s7Cw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766050361; x=1766655161;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=NsW2HasN28O50F+ltWdsLG61URTHIRksaI0HaR3fnu4=;
        b=E1DeQzrZb9nXnlLb6aauDzo8Xk8yUBf1hUabZ9SbwEWEyI706TXzIoqttMCcf4knGv
         w8Sp3EX8zn0Lni6uERn48nAAhVjE152+Qo2KQuH/gD3vxG8rTcMTBnzAjVeu17tJn4p5
         ZtARJQ4RZJqjKMmEffS4eD2Vk6QQwIq8+5DxNlcGLlOkVj8Qb4nGcb8mmyfS4obEt4gR
         eu5IElQJsLoh1cjGMSb1YYrk8y96Zt1hMcPyNX5OhiF0Nu/h6+xrwl18dcAVtTDHKUZ/
         YZU0GkARzYk3Vs4iKqYADloOjZz/s0t0E+DPD5/1xq0JFcRzOkUOw3/gDEra5pjp47EH
         m7FA==
X-Forwarded-Encrypted: i=1; AJvYcCV1EnYJPWt9ov7+p986u8TDrCctpIYKanprabU8leMvDCR8Wi6wU58KB9FcfuNlpArVBrOL8uTD8N4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxS8PcmMXWVKdIOqrO25HSMWiPjeh2EKidMmD10tg1IQpq0Fe7J
	4q907LJ03l7zhEyX2KarUm6oWWpu7Z2Cch/ChJHs69gJezbamlzoJcz7
X-Gm-Gg: AY/fxX5Q2TlKSxCNbTqU1On/AJwTrK2PLt7ffRXbkcS+lKIfC7Vdu2GoJ/RSb1uE4EK
	6248zT/9lqsJ9bW9t9ZfYAEmnHrVFQWpCxns6hGp3XuMBBGcsPOGBXGeTd+ygTWMhe+xnAQ8EZO
	mQCW/N/0SCA+FQqyV2W2dtaWeLjg92M8xqqGNajKo0y7vuHgrhzS21bGx6S387AxvcoGvooYY14
	OY9GEZgoHYCZbHsFCVCtkB1YqN05k9izN+KClahTaMRopIEai8AJ7bZK/FHei0HeM10md0lsFBU
	HqQ/jwAqzWCb+I8nPnATI4Arh8WbSvlKclcDcSqxOLEk1wcZTJOR1SPLxthYtPLzWKXO2uVuyBI
	t6xqmBZZktBDJl2K+CFGPw+CsLk8DQPpNz+LvJGEiJKdmMiC43IfEOnfBtNs6DkpWjgl2fK1Rkf
	ITD9fSWzzwRbr5xswmZtOHctOaoUlO0My6eLG9cN6Rex0GTdf7E/VfgAWecOSn7VQl
X-Google-Smtp-Source: AGHT+IHLcybJDH1Sheu6aAv+Kc+/1UIa4y3lewol8uVEeS2DvIHPVI+7wc1x37+iMtO+806Fzqebqg==
X-Received: by 2002:a17:906:6a04:b0:b79:fcc9:b00d with SMTP id a640c23a62f3a-b7d23a9f4b3mr2165038966b.59.1766050360299;
        Thu, 18 Dec 2025 01:32:40 -0800 (PST)
Message-ID: <7a74c5eb-4335-4217-acca-87f7cd572cd0@gmail.com>
Date: Thu, 18 Dec 2025 10:32:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen: move alloc/free_vcpu_struct() to common code
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
Cc: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>
References: <5f75053750a9fca2b5fecf1dcf6f097b25e8f27f.1765967934.git.oleksii.kurochko@gmail.com>
 <8aee5daf-be3b-4f10-aa38-b8c1504ba0b4@citrix.com>
 <7bec6dab-9776-4f94-b121-0be696be78d8@gmail.com>
Content-Language: en-US
In-Reply-To: <7bec6dab-9776-4f94-b121-0be696be78d8@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/17/25 4:37 PM, Oleksii Kurochko wrote:
>
> On 12/17/25 12:46 PM, Andrew Cooper wrote:
>> On 17/12/2025 10:53 am, Oleksii Kurochko wrote:
>>> alloc_vcpu_struct() and free_vcpu_struct() contain little
>>> architecture-specific logic and are suitable for sharing across
>>> architectures. Move both helpers to common code.
>>>
>>> To support the remaining architectural differences, introduce
>>> arch_vcpu_struct_memflags(), allowing architectures to override the
>>> memory flags passed to alloc_xenheap_pages(). This is currently needed
>>> by x86, which may require MEMF_bits(32) for HVM guests using shadow
>>> paging.
>> You lost the comment explaining the restriction.  This needs adding 
>> back.
>>
>>> Move the definition of MAX_PAGES_PER_VCPU to xen/domain.h and default
>>> it to 1. Retain the ARM64 exception (with CONFIG_NEW_VGIC) where two
>>> pages are required due to larger per-IRQ structures.
>> CONFIG_NEW_VGIC is still off by default, unsupported, and has had no
>> work on it since it's introduction in 2018.
>>
>> There are a lot of good reasons to enforce struct vcpu being a single
>> page allocation, not least because an allocation can fail due to
>> fragmentation despite there being enough free RAM.
>>
>> I would far rather that common code enforced it being page size, and
>> NEW_VGIC gets deleted or adjusted to cope, than to make it this easy for
>> architectures to shoot themselves in the foot.
>
> I am not sure that everyone would agree to simply drop|NEW_VGIC|.
>
> Based on the commit message ...:
>     ARM: new VGIC: Allocate two pages for struct vcpu
>         At the moment we allocate exactly one page for struct vcpu on 
> ARM, also
>     have a check in place to prevent it growing beyond 4KB.
>     As the struct includes the state of all 32 private (per-VCPU) 
> interrupts,
>     we are at 3840 bytes on arm64 at the moment already. Growing the 
> per-IRQ
>     VGIC structure even slightly makes the VCPU quickly exceed the 4K 
> limit.
>     The new VGIC will need more space per virtual IRQ. I spent a few 
> hours
>     trying to trim this down, but couldn't get it below 4KB, even with 
> the
>     nasty hacks piling up to save some bytes here and there.
>     It turns out that beyond efficiency, maybe, there is no real 
> technical
>     reason this struct has to fit in one page, so lifting the limit to 
> two
>     pages seems like the most pragmatic solution.
>     Restrict the compilation error to compiling with the new VGIC and for
>     ARM64 only.
>
> ... Given this, I initially thought it would be difficult to adjust.
> However, it seems there might be enough to do the following ...:
> @@ -238,7 +238,7 @@ struct arch_vcpu
>      union gic_state_data gic;
>      uint64_t lr_mask;
>
> -    struct vgic_cpu vgic;
> +    struct vgic_cpu *vgic;
>
>      /* Timer registers  */
>      register_t cntkctl;
>
> ... with|vgic| allocated in|vcpu_vgic_init()| and freed 
> in|vcpu_vgic_free()|.
>
> I only checked whether this is sufficient to build with ...:
>    #if defined(CONFIG_NEW_VGIC) && defined(CONFIG_ARM_64)
>    -#define MAX_PAGES_PER_VCPU  2
>    +#define MAX_PAGES_PER_VCPU  1
>    #endif
>     $ grep -nE "^(CONFIG_NEW_VGIC|CONFIG_ARM_64)=y" xen/.config
>   13:CONFIG_ARM_64=y
>   28:CONFIG_NEW_VGIC=y
> ... and it seems to work.
>
> The question to the Arm maintainers is whether you would be fine with 
> such a
> solution.

I've done some measurements with the suggested changes [1] to Arm’s|arch_vcpu|
structure. As a result, the size of|struct vcpu| on Arm is reduced to 2048 bytes,
compared to 3840 bytes (without the changes in [1] and with|CONFIG_ARM_64=y|) and
4736 bytes (without the changes in [1] and with both|CONFIG_ARM_64=y| and
|CONFIG_NEW_VGIC=y|).

The result looks good enough, so I will propose [1] while preparing v2 of this
patch.

Also, all CI tests passed: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2220545118

[1] xen/arm: optimize the size of struct vcpu ( https://gitlab.com/xen-project/people/olkur/xen/-/commit/946a1c2cfaf4157074470a653bba5baa8561ebbf )

~ Oleksii

>
>>
>>> The ARM implementation of alloc/free_vcpu_struct() is removed and
>>> replaced by the common version. Stub implementations are also dropped
>>> from PPC and RISC-V.
>>>
>>> Finally, make alloc_vcpu_struct() and free_vcpu_struct() static to
>>> common/domain.c, as they are no longer used outside common code.
>>>
>>> No functional changes.
>>>
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 09:37:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 09:37:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189375.1510144 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWASG-0004I2-2L; Thu, 18 Dec 2025 09:37:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189375.1510144; Thu, 18 Dec 2025 09:37:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWASF-0004Hv-Vn; Thu, 18 Dec 2025 09:37:51 +0000
Received: by outflank-mailman (input) for mailman id 1189375;
 Thu, 18 Dec 2025 09:37:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YG3a=6Y=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vWASE-0004Hm-KL
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 09:37:50 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 36ccd229-dbf5-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 10:37:48 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-64175dfc338so740135a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 01:37:48 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b588b0b3asm1997714a12.35.2025.12.18.01.37.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 01:37:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 36ccd229-dbf5-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766050667; x=1766655467; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=S2vf34F7y//sajh7ViQUwq0NB6wa9GyQUR15mIECzrk=;
        b=NP8bn5//hUBSGsNfIvlEBq1thJYd8X/RQ0gc1N2vNISxWmIxBCOPYxjN/2ApGgF0Lm
         tiEhI0mPVlpbyZAMY0CXG1Dx5qVPzALygVIZ4FWc0LsDaDx/hyLa6yYOdJGtKh5UUZkJ
         S+3VpFb/d0HBV0D10bKqhDnW+V3bYEJE6H98G/26/+iFK9qAV5L44BYPzmXriRXvT4VI
         PggSAjafkxHxZqYg8GTVZy/89MB+gTEl0vVzB8xdEc5twxOR2OYApPdDe9sjeA2KZBux
         Z31g7Q4oCUYY77pA+zp6IyaCe2AL7/STZA66dYPjwb1gb0t6z710r5T1KkEaA3owNTK9
         Ef7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766050667; x=1766655467;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=S2vf34F7y//sajh7ViQUwq0NB6wa9GyQUR15mIECzrk=;
        b=D7rB6H4rt59m/fQ/uEDNW1zV8d3y1yRVRRPHSb7UXvykZMtbMKArbGkkQNv1N4BoEZ
         TyYmNtLOLZLGa92l/1JBGtOJ3ouxqJ8lvgAJKCidusxqlW9dcqbBWTqPwP13KJbi7Eg6
         yeqHR4jRz5aVPcJkV1dRXU9hZphdmPvw9h/SX+MJmiqL8kFIM7bsHWcFTaBxFK4wcC9u
         MZBQOo62aWu7egX1vmeJ2LR31VLWp+sGVImzu95/n+ZvXKaBSdyuS7ZbkkadOB38DlLM
         fiYizbf84ibX6dzDT32ouUCLDWEAcM0PsqoqGkCwytdjuds8JBWvHNmeOO5EnhnWP+Tf
         4/fg==
X-Forwarded-Encrypted: i=1; AJvYcCUXSNUBLr+bCRym4PwGH0PR9fzUdI+UCQnzA/Gku7EyMfuXlRTvf8RmkNO6/pxB0E/7uA/HGlKeVZY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyNG9hT1J81FVBegnoaJvOpRpOo/ElqTBbnGyue34wPa/ljrI4a
	3+yS3uBclteTNGsopCDxaUYrJkRv1/xEcdgCtFMtiRyenQV1xrRLgVme
X-Gm-Gg: AY/fxX7NoeF6oUWfL8Ixfe/nWbUhyuYgZB1csh2KPcJChA1pd3SMyD6/8i9HJE4/i3q
	0UtMId4RnfzZH4CFAJ7ndbmWH9kL7J95YR9HWXSz/OwwWWUrYeohdlOm1/D+jA5+cYebFYnSmGA
	fVFS3nlF0M8R9gu2ho9OPlosQ4K+F7CknI94J7KgYtoopwK2+UZy99FuPpwFR7d/cuEENGZIFgh
	jp1KfZJ16P/ytY6Pq1QIeo+bUpw4SGx2QvISes0D3c+S4EnC2Qh8uA+hjYVrvImVdl6M1iBtqod
	V5qIiAkYzjSYWAgJ1dfIHKK0OHda6i/EMla/SzaziCkIHOG5YODitajpPozg2K8Tgrp5knC5jPK
	VgskYrNshATvmNTNdNZGl6DOgHPwszAxS1MMvAFLJLK/6iZeodbPy9Ehpe2vKn3diScnZZR+rKV
	bn7UykO0Q76fbf2oPDycVWapOgVsPa1q67Xs+rQUmRYs0Fr/4KjfLEEqGLFGI1uXnU
X-Google-Smtp-Source: AGHT+IESdw4MrbfMzZELfE5T/PnKm2eW+SWty7iyNS66373LHYaVkny9ReFLSxwkCMUOe5d1fFALOA==
X-Received: by 2002:a05:6402:4407:b0:64b:4333:1ece with SMTP id 4fb4d7f45d1cf-64b433321ccmr4581574a12.34.1766050667338;
        Thu, 18 Dec 2025 01:37:47 -0800 (PST)
Message-ID: <a4bc524b-a2d1-47d7-8ffa-b4af3cb5315e@gmail.com>
Date: Thu, 18 Dec 2025 10:37:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 0/3] Support for Intel temperature sensors (DTS)
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>
References: <cover.1765300623.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <cover.1765300623.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 12/9/25 6:19 PM, Teddy Astie wrote:
> The idea here is to expose the DTS sensors through XENPF_resource_op
> and expose it for the user through xenpm.

If this is something exposed to users, I think we should update the CHANGELOG.

Thanks.

~ Oleksii

>
> v3:
>   - use msr-index.h instead of adding defines to MSRs in xenpm
>
> v2:
>   - moved userland part to xenpm
>   - use cpu policy infrastructure instead of inline cpuid
>
> Teddy Astie (3):
>    x86/cpu-policy: Infrastructure for CPUID leaf 0x6
>    x86/platform: Expose DTS sensors MSR
>    xenpm: Add get-intel-temp subcommand
>
>   tools/misc/xenpm.c                   | 91 +++++++++++++++++++++++++++-
>   xen/arch/x86/include/asm/msr-index.h |  3 +
>   xen/arch/x86/platform_hypercall.c    |  6 ++
>   xen/include/xen/lib/x86/cpu-policy.h | 27 ++++++++-
>   4 files changed, 125 insertions(+), 2 deletions(-)
>


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 10:46:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 10:46:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189413.1510154 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWBW8-0005YN-O1; Thu, 18 Dec 2025 10:45:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189413.1510154; Thu, 18 Dec 2025 10:45:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWBW8-0005YG-Ku; Thu, 18 Dec 2025 10:45:56 +0000
Received: by outflank-mailman (input) for mailman id 1189413;
 Thu, 18 Dec 2025 10:45:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWBW7-0005YA-Ee
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 10:45:55 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b976ef3b-dbfe-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 11:45:53 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-42fb03c3cf2so229153f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 02:45:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43244934d6esm4150101f8f.6.2025.12.18.02.45.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 02:45:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b976ef3b-dbfe-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766054752; x=1766659552; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ZWC0nrRzsa6mIqtXp24qnU0cVNs7rBKT/88XZbzKfaY=;
        b=Ntpw73DAGI5po8hd+ceBHQ3di34GwJF1YBkTapYexhVPAh64+J3BQr3T71fM7+EVnm
         CniAqHo9F7/vw+x6PQObEjZaUUzJYb17jMl1Pu3M8OPxSzUr2KMKMGRNLEjraNrcAQx0
         iuDbOp7KnkuDq9wvWpIjfvJXb0xvvv4ov09emB0nauLDFbST6WHW0z9Vcu3fM0jySjmE
         FfZ36ktANBFjwvKYa6EOScdNSG1CkLSsqxZRziZYmVISXesm6eDF0yAymwzrOyPePhTI
         gCTl9AL96usB21UK8IuIJa2XdaJR9L2yxKbZ4LhE/c+NXlJy3bfHucWLwPpIkIiiyWpc
         lKPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766054752; x=1766659552;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=ZWC0nrRzsa6mIqtXp24qnU0cVNs7rBKT/88XZbzKfaY=;
        b=ChWaeVfjQZUnNEm1/dRkNu00mNJDEfaoejZ+e2CJZLFGiB8FP/wOiWeIlEfR3pD7U+
         JFF8ZIyH3qthPaJdBNTwBz3AEt4kQ10Akb+aYmIIdCaD/aeme2lTWpXg4HptsOZUB0J+
         tLKDHaPv3wFg0/9BuUK2ukHUh78TntR7MSpKrZv5FMZZKbRoHbOAmYnyGQG4morFTh2z
         byDosGC03GG49EHCaPED/i1x6ddJaMTPXaawk0Kafy4eusKOqLkRDgPN+msf9V++StQF
         PF0eb5UuAwHkwPz87ThonqBom0KmVKB2EQmx7gSrpw8HPlnL6g30CQKo5WweA3Scn2zS
         qVhA==
X-Gm-Message-State: AOJu0Yyh83zAtRRcGihbI22hEuCfUxQgLKNs3sQP8vFzyjPXaQ4yap/0
	g4PPt9LI1qf2CfKe7CVK0BZiVU/iqOJ66orTjWTUVZfNrkLlwYXnD7fDbzVFktKBFcGDMC8/u3/
	2d4M=
X-Gm-Gg: AY/fxX7MY7qXVc834TPrY9CfJLP0jWhK1PjaBmnQUTgwsMYFTShlJkqUSXZo9GZwSFr
	i5w4TxGFDI+m+xt7JiEkgQ9MGPQfOgq+PWwxb1n6GHlRQ8/M1/nL18mXBzERteuNScIIXCrdQEt
	LHsppRAVUmy/Jc56Q9jfAVF/vHplMF280uxjd0Zh4EoFyfz6dTiExAp25n3KuQMd2Ak4yATLLYA
	MUhSRGKRPPwQUlj/1CTTQwUYYhiLQ/7QtNnUr6FygM/WAxqaIdEOVygrLwkZWn5R4cuUrcMEyhJ
	i1e7Gj+RqukckLEfWTYs8SLeUI2k7r91Q7m9j7RgmodraNjhT9ODtwucGSOPpCOYgHAFbljLj+v
	gsKS/0gpf15nfycymaO+jSq/rcm3htiHxJUmrhmPOWTLfBbgS0QMUace3J1gSWpLp6+RlTV0fVK
	KHaZ1evp4GPE7hI6Aom9Jfn7vPG4ALrtGClB3fk0gE6vODaRKrwS1ZvT1CGOwmqY+PphxrkhkXT
	UE=
X-Google-Smtp-Source: AGHT+IELfD00hJ9zHojcvx4CDhvcQTfI0GUJhKYrKn1ayyo7vkJXc5gNU6CVwMouuknCiNEboXWE4w==
X-Received: by 2002:a05:6000:2586:b0:430:fd60:940f with SMTP id ffacd0b85a97d-430fd609543mr13750180f8f.14.1766054747611;
        Thu, 18 Dec 2025 02:45:47 -0800 (PST)
Message-ID: <70e156e1-c51f-40a7-83b4-2d228a102367@suse.com>
Date: Thu, 18 Dec 2025 11:45:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] vPCI: make vpci_add_register() an out-of-line function
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Calling a function with 10 arguments is inefficient on many architectures:
x86-64 allows for up to 6 register parameters, Arm64 for up to 8.
Everything else needs passing on the stack, i.e. forcing the compiler to
emit stack manipulation insns at every call site.

Shrinks generated code on x86 (with gcc15) by over 250 bytes. The gains on
Arm64 are a little less.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Why is it, btw, that the declarations live in xen/vpci.h? These functions
aren't supposed to be called from outside xen/drivers/vpci/, are they? In
which case their decls may better live in a private header?

--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -573,6 +573,14 @@ int vpci_add_register_mask(struct vpci *
     return 0;
 }
 
+int vpci_add_register(struct vpci *vpci, vpci_read_t *read_handler,
+                      vpci_write_t *write_handler, unsigned int offset,
+                      unsigned int size, void *data)
+{
+    return vpci_add_register_mask(vpci, read_handler, write_handler, offset,
+                                  size, data, 0, 0, 0, 0);
+}
+
 int vpci_remove_registers(struct vpci *vpci, unsigned int start,
                           unsigned int size)
 {
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -60,15 +60,11 @@ int __must_check vpci_add_register_mask(
                                         void *data, uint32_t ro_mask,
                                         uint32_t rw1c_mask, uint32_t rsvdp_mask,
                                         uint32_t rsvdz_mask);
-static inline int __must_check vpci_add_register(struct vpci *vpci,
-                                                 vpci_read_t *read_handler,
-                                                 vpci_write_t *write_handler,
-                                                 unsigned int offset,
-                                                 unsigned int size, void *data)
-{
-    return vpci_add_register_mask(vpci, read_handler, write_handler, offset,
-                                  size, data, 0, 0, 0, 0);
-}
+int __must_check vpci_add_register(struct vpci *vpci,
+                                   vpci_read_t *read_handler,
+                                   vpci_write_t *write_handler,
+                                   unsigned int offset, unsigned int size,
+                                   void *data);
 
 int vpci_remove_registers(struct vpci *vpci, unsigned int start,
                           unsigned int size);


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 10:58:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 10:58:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189429.1510165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWBi9-0007aO-Od; Thu, 18 Dec 2025 10:58:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189429.1510165; Thu, 18 Dec 2025 10:58:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWBi9-0007aH-LW; Thu, 18 Dec 2025 10:58:21 +0000
Received: by outflank-mailman (input) for mailman id 1189429;
 Thu, 18 Dec 2025 10:58:20 +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 <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWBi8-0007a9-GS
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 10:58:20 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 763f9952-dc00-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 11:58:19 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-47aa03d3326so2922365e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 02:58:19 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-432449af076sm4339139f8f.40.2025.12.18.02.58.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 02:58:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 763f9952-dc00-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766055499; x=1766660299; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=6btMFf/7F0g6qu9Qr/0CQBxczde0quIjY+5JtXdT8F0=;
        b=EwuITvUI0ZcFkpdL0muVWMHwM4cg6eU1AwdselzTOIYFzFVijSu0vcaFOgq8SLBQOD
         17vg7hOv5pBlfvRvZRcmAPIkkzCbghQ1JbQf8ibgQqYCbNSLOAXz+vspmwK78fPTe+ON
         wPq+tN51Z5bzZl34a1bOIymnitdQhsVNOZyij16AkbuNYutqv8EWcdux/LHF1LcFv32Y
         L7eC5LuUpUkGZs/0cgjA0dkkpLjZhgSF2zE7myXnRgN+9za1KONbQlLsAmq8Mhw586Jh
         eX7sjPXJIvMkCqRlkhIVVYcZZ/2rtBkvgyeeaASth34rO03xNFvPni4h4cpuQGLrmZrb
         sKNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766055499; x=1766660299;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=6btMFf/7F0g6qu9Qr/0CQBxczde0quIjY+5JtXdT8F0=;
        b=rTyrnj5EB3mjXZI9oTSEIuClJ4Wtd8q20JUxWAVUR1MMoaHxrZ9KMrnqiddJ1ytk4c
         UGRJnCcvJJfjHtE7NIkPkynpji4Ad7BNpUi7LxHim3eHZsgj4zm/wxeMWjEA2rEwZ4B7
         dymFArH8RitfY0JLeISgHYQGXPWvtQR1G1Dn+yjysxcwKVg1tymLuPW1eMZr1jEyXmuo
         FaB2MZL518CVXX/bUtpvkTbU3EEcXverHrTV4uRnE2PDtloGtNMpssf57c74ZPDqSJWl
         aJ/kN/QK1ZYOdsamUJGDBwUhN6LAPShqR/jfkHvkzkBI75qfQPYpKlXeizwMkGLUOdh0
         giAw==
X-Gm-Message-State: AOJu0Yx1po0SagMc2VLcXpH6tMlmgR/TV0dWyhkZ8XmDU8Fa9XVgc99l
	X8Kg9yWReR3dQSTlcaOfGRO/o98fQRM27w5xwaEvBSmoVqN0uNXYBbztK5DdkSboMKLqlu2Tt1m
	ouTQ=
X-Gm-Gg: AY/fxX4hQ5jUSirSl8HkVUlTGnCMz6XgNf765Ivhh5f8mxTlNb3tSRPwv1QeKnmfRET
	Zf4+Njsp8deUM/VImTOYXgw/jfHdm0ZiDnPn0OOJEW8K9C9jJX6FMXt2sFoXLE9a5vXeprD94TM
	tpkSFwc7b0C6DTniir3ZbjmtBFCUWlZx8JRN6uP3OTOpoWqSirkSaWZbH1nJIDJSiDc+qZYqfbd
	A3z1M0BbWDDTdmi9JwyQxg4wv4/moyZGdaO6eNaaosooZPlV9+avb5WZrhrTDgYoqome3YTkDzq
	05K4so6leErcYDjwMdB0dpTG8HryhVITTJVxJ2yWiXS4S3L9y4Ez03L5f1GbKqGCoRv8nXDmM64
	EpYG5ULJKhU93JQoIfxmKoQonJuCCVL0f3PC9VsDFGUbtMLV9cnu/1W6Ob49tFiC86aQaNZVWwT
	pKgNk2FKKM9hueFzuFk/GuWLqX0J1FhXRCU3qsMXQvtDflvVTT+S8CkxE0fDZi0sxF9zdgifacR
	Ss=
X-Google-Smtp-Source: AGHT+IGk6OSEisVPhunDkBLTCpb35i9ml5L2R8/NmZ2bqKeSh5ArnaUaeUHHHsoFQZZhvCvYRYf//g==
X-Received: by 2002:a05:600c:4e49:b0:477:aed0:f401 with SMTP id 5b1f17b1804b1-47a8f90653bmr191733135e9.23.1766055498765;
        Thu, 18 Dec 2025 02:58:18 -0800 (PST)
Message-ID: <4c2a53b1-7133-4900-8bc8-26fc97aa1702@suse.com>
Date: Thu, 18 Dec 2025 11:58:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/2] x86emul: use vpath uniformly in harnesses
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

While seemingly independent, the latter really depends on the former, or else
the fuzzing harness build's behavior would be dependent upon the test harness
having been built (and hence x86_emulate/ there being absent / present,
offering source files [as symlinks] which really should be taken from the xen/
subtree).

1: test: use vpath uniformly for access to code living elsewhere
2: fuzz: use vpath uniformly for access to code living elsewhere

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 10:59:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 10:59:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189435.1510175 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWBiu-00084d-0o; Thu, 18 Dec 2025 10:59:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189435.1510175; Thu, 18 Dec 2025 10:59:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWBit-00084W-Tg; Thu, 18 Dec 2025 10:59:07 +0000
Received: by outflank-mailman (input) for mailman id 1189435;
 Thu, 18 Dec 2025 10:59:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWBis-00082Q-UR
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 10:59:06 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 91940e2b-dc00-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 11:59:05 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4775895d69cso1940935e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 02:59:05 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-432449986f1sm4350918f8f.29.2025.12.18.02.59.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 02:59:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 91940e2b-dc00-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766055544; x=1766660344; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+MS8oG8pUBLpaQoG+yzL4UbkTWEGCYSjvyGDww1VIsA=;
        b=H7fZCybPn648sBOBnWORSjzeOJ8xTmI8pXLPixCiNBoQwl0t87dfTObBp3+K2j+WAA
         8XDljxH3Y5iRmOHmNBFmcCHagYuf12//SnZzCRt8fvE5mb5C2LiWTacn5QWOWEn+VbBF
         PzPLsskSANRGUTdQqiKG89S15BdaIPmOc2XWIHVIu9Qvl/bzGB4lDxugci1QRMdXw0YM
         N8svTe6sPdpiSBjcmebEe+U1qxYEKRnI/Jb3/cdvD4y+BR5ztqjEuLmc1WnhgpZEpqzl
         5/DgMtRkbcbxRuKrNswZ/3X1Mz6ztGxrNaJqX7Xs911jzKcz1exNoEduhYSLo7feMUfv
         dqXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766055544; x=1766660344;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+MS8oG8pUBLpaQoG+yzL4UbkTWEGCYSjvyGDww1VIsA=;
        b=tijNxmTRgwQ5guSiNr2pQ7DQT/0T5T6dXV7uR7QgtoFcY/P0uFypnQpAJauCUxTqNl
         GPda+HHRfXpKlr8cPtHo4WVPhKESm81j7Bp8HWeIjmK9xNyGfas+OmgffBEreN1pqRVU
         MpBm/QqnNQ1nVtl4KXfepszia7wTNu7yjnRrOoDSjHbXpy+2YV/fiRwTeEio2ZiBKEP0
         n14wylVCQKWwFjMFAPdKrZG5ZoSMc8UXwlOubiOB4ksp0XfKXIh71lFGFzWOpB+Nvvej
         GXwyivxJS+8MlTfcs+VA5N6+M5KoL+gO45hghFkzNO/+5K7nTdrgrrbtHaTrJjDRxJZ7
         Ea6A==
X-Gm-Message-State: AOJu0Yxyu0/pKk+kHdz40/FiH5jrVhuF3zqbnERgTnZju2GUC/PrTH2l
	/z2m4V7gtL1CfJx3QiAbVZPJx+6baQ0+ktAIXESSuqav+iLfRPPfgRDblAKqPxNBPsKaFs6ZT0m
	+lEc=
X-Gm-Gg: AY/fxX6EIMXgqXlmz5p0CGfWgq3gbVHZdJHr2QEcrmfat5jlvAAv4E5/RzJMeXkk+kO
	3tNCGWsYAYvK/aQ0VFWfQSfMV09DhG+WgjL7s11K5HSIO51lrTfCxMvKJtkijfVCE3vaRdV97ad
	HLI4g3WRpAoTsY18WDsDvNA2hXWq5dRPiwQfxCMywWV92psw3Zi0ftJ3+MlZs19ZE/RmXQqEvaN
	Jlh+LMr8RzRHhR683+Tbmp0ROzxxwMBSB/IzFbyC9ZXOLoiHipsI7ABlRqXsJ8B+McJCgT44WSI
	XZm06iIql0tV7fujUJpgve5wrgE1oXK65F61SMukWbgQ1bnMOLT3aXWLQ3+8+Fj2cTbT3qZUHSx
	OaSQbtQusBd3yIia6MUNCcDN10BopgfDaKzBJe5idI2W4hZP7oqETRt5J3CJOMG6CVHg0fxbChj
	JJh7tU83kiYVxWQ5xZBDPH4uPbYPvkC9aZXop9YdQFxOMfJW+YCJQmZApaxNX0kCS6+yyUBfr0r
	jU=
X-Google-Smtp-Source: AGHT+IG1h6YzQpn4T2sYw3fL09qnnlD5LpknoNKEUFYFPlCwJ8RqugGeTysENlgInzV8mrgLwQl3jA==
X-Received: by 2002:a05:600c:3f08:b0:477:abea:9028 with SMTP id 5b1f17b1804b1-47bdd99c3c4mr50599395e9.6.1766055544459;
        Thu, 18 Dec 2025 02:59:04 -0800 (PST)
Message-ID: <7582d5d2-bb9b-45ee-8d79-b10cf00eeeef@suse.com>
Date: Thu, 18 Dec 2025 11:59:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 1/2] x86emul/test: use vpath uniformly for access to code
 living elsewhere
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <4c2a53b1-7133-4900-8bc8-26fc97aa1702@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <4c2a53b1-7133-4900-8bc8-26fc97aa1702@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Replace the remaining non-local symlink-ing (i.e. of core emulator files)
as well, to avoid mixing approaches. (The symlink-ing of test blob sources
needs to remain for the time being.)

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Unlike in the subsequent fuzzer harness patch explicit dependencies can't
go away here, yet. $(DEPS_INCLUDE) would need making use of first.

--- a/tools/tests/x86_emulator/Makefile
+++ b/tools/tests/x86_emulator/Makefile
@@ -11,6 +11,11 @@ all:
 run: $(TARGET)
 	./$(TARGET)
 
+# Add the core emulator to the build
+vpath x86_emulate/%.c $(XEN_ROOT)/xen/arch/x86
+vpath x86_emulate/%.h $(XEN_ROOT)/xen/arch/x86
+HOSTCFLAGS += -iquote $(XEN_ROOT)/xen/arch/x86
+
 # Add libx86 to the build
 vpath %.c $(XEN_ROOT)/xen/lib/x86
 
@@ -287,12 +292,8 @@ else
 run32 clean32: %32: %
 endif
 
-.PHONY: x86_emulate
 x86_emulate:
 	mkdir -p $@
-	ln -sf $(XEN_ROOT)/xen/arch/x86/$@/*.[ch] $@/
-
-x86_emulate/%: x86_emulate ;
 
 HOSTCFLAGS-x86_64 := -fno-PIE
 $(call cc-option-add,HOSTCFLAGS-x86_64,HOSTCC,-no-pie)
@@ -307,6 +308,8 @@ x86_emulate.h := x86-emulate.h x86_emula
 $(OBJS): %.o: %.c $(x86_emulate.h)
 	$(HOSTCC) $(HOSTCFLAGS) -c -g -o $@ $<
 
+$(filter x86_emulate/%.o,$(OBJS)): x86_emulate
+
 x86-emulate.o: x86_emulate/x86_emulate.c
 x86-emulate.o x86_emulate/%.o: HOSTCFLAGS += -D__XEN_TOOLS__
 



From xen-devel-bounces@lists.xenproject.org Thu Dec 18 10:59:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 10:59:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189437.1510184 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWBjC-0008Oe-7D; Thu, 18 Dec 2025 10:59:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189437.1510184; Thu, 18 Dec 2025 10:59:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWBjC-0008OX-4a; Thu, 18 Dec 2025 10:59:26 +0000
Received: by outflank-mailman (input) for mailman id 1189437;
 Thu, 18 Dec 2025 10:59:25 +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 <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWBjB-0008OJ-AZ
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 10:59:25 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9caabaac-dc00-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 11:59:23 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso4131015e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 02:59:23 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324498f95asm4420281f8f.22.2025.12.18.02.59.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 02:59:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9caabaac-dc00-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766055563; x=1766660363; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BXy80KxmNAHr1VNz3GxIhKBmxQj+zVGkXXH4ZO7kVPc=;
        b=YWRQ0eRylZ5hJTX7BaBTxsJgMJ39NwDy/gSUZFNqbMXDOjCqL+36mbDEKXXBYOIzVB
         L0PcOvJYNlYqBUtU8yqOViSFepZbMqQOnM+DeuME5DnLdYpHEicrOWgBNRT6AYIZ3Oeo
         pj8cIoRS+rcaPVTYZC/mR2X70AckdT82t+gRtE+nHtXNh705bhNLZVscpbFeji2J+z8p
         3K2PSwCr4SD0koLY0RTGDdn1qRLxw8ymwU3edr3sDtaiF8MJMGX4Ty8VSHy+X1xEJAZz
         YmE6+4qWqdxz+J7ZVPWdo1ClsAfcnWgPIh+rwMSZlkuawzQ/FWZoTZg5JhWmC+NoOWJN
         pvVw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766055563; x=1766660363;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BXy80KxmNAHr1VNz3GxIhKBmxQj+zVGkXXH4ZO7kVPc=;
        b=dt21IpdUAmog2ReJjWY1ZC/ityyGnFiIF+n62YfpTJrSh032weWJ3pu2J4p2gQCxgp
         Q52PnHLqKicDJRMJ+QSCGuCK70YhwRIwgHku6reNce0trjS7xRaZgheDIs6nZUf/vOz1
         hygkXfYy4CBeyZGhUwDTCG+mABBoVp8x2mRl1DKr3+qrt43VvJbGX0a76yY6Vd81tT2u
         tNNDz5ew4eqPk4MEn7YoaIY9Oou8qVe1Uj0Ft4aECiMP2VSPD9mJX2ib8CNxq5/sLQPp
         JC74SKrLrDbRhupAGgAnYPxBSU8RIVz4u8sRvPzQkKWej0ab09MsFvzBDs7b567znGnV
         II1A==
X-Gm-Message-State: AOJu0YwOMRB0Co67lgP6lA6y32CWFbE8ma0zVcAqwBzZqiih5fg2d+rA
	ix9qEs/dbymXw1UviotuCOFZAR9ean9TICK6uG/8rhf4FiwrcLxzA7HmIoDD1avepZFrkwI0HZk
	u8rI=
X-Gm-Gg: AY/fxX6E8GtBzAhJR8ukwP9zJ1OeBCFjQJBtZU1iy1QZn5dAauKF8lWOgFbUkHzZGz2
	ayeS3u7X/QW9fTKOjW6Jb3mp6NmDy0ey7lHE6o7mTzMsVC8VXPqLLqO4FPlZPFKdwHnI+X8KVjj
	CK4p7Bqhbit4frX0OOhk8Y4JqjWdGT40yCrvdrFgh/a5QmmnFHphleyfvG5snUJ4Z2OMDc8qFTO
	juTfbyyAhaA+0T+/LSWiJR7dSCkIGGWOpb3mat6KSZHexsNXn1KRLfpGgcMW1XZmGXZcNu8eDBd
	JXCANU561yRF1hpqbUyVKsGm7q/1Y8Sj6gvS6MPsBZADL0IiqiRDtI5VghdhgZYZK7a+BrVPgdg
	G+6CsV1esrRjiVtYATxMebbfGU6G0zpziqP68nxc1zja3Lw+CZzP1BwuJo8D3dokq/Q185q9rFL
	8ZlPxSl1O3GaCAqruRgp3brMItepzX+trZrIoxnKfjs9EN5Mf0b10Z3VAepy8Z3JfGDLuivUh1s
	NI=
X-Google-Smtp-Source: AGHT+IFiwc/EwUNKeDcHhfdE1D1x7NjkF8HgnuN9lp1ZfYQq3ua5MCenvqxGmoBFkQbCcvhrjhpRpA==
X-Received: by 2002:a05:600c:4e42:b0:477:a219:cdc3 with SMTP id 5b1f17b1804b1-47be29d7cf4mr22421255e9.12.1766055563196;
        Thu, 18 Dec 2025 02:59:23 -0800 (PST)
Message-ID: <5704d0a6-4428-4930-81a4-5f9504168011@suse.com>
Date: Thu, 18 Dec 2025 11:59:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/2] x86emul/fuzz: use vpath uniformly for access to code
 living elsewhere
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <4c2a53b1-7133-4900-8bc8-26fc97aa1702@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <4c2a53b1-7133-4900-8bc8-26fc97aa1702@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Replace the remaining symlink-ing (of test harness and core emulator
files) as well, to avoid mixing approaches. This way various explicit
dependencies can also go away.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/tools/fuzz/x86_instruction_emulator/Makefile
+++ b/tools/fuzz/x86_instruction_emulator/Makefile
@@ -8,22 +8,23 @@ else
 x86-insn-fuzz-all:
 endif
 
+CFLAGS += $(CFLAGS_xeninclude) -D__XEN_TOOLS__
+
+# Add the core emulator to the build
+vpath x86_emulate/%.c $(XEN_ROOT)/xen/arch/x86
+vpath x86_emulate/%.h $(XEN_ROOT)/xen/arch/x86
+CFLAGS += -iquote $(XEN_ROOT)/xen/arch/x86
+
+# Add the emulator test harness to the build
+vpath %.c ../../tests/x86_emulator
+vpath %.h ../../tests/x86_emulator
+CFLAGS += -iquote ../../tests/x86_emulator
+
 # Add libx86 to the build
 vpath %.c $(XEN_ROOT)/xen/lib/x86
 
-x86_emulate: FORCE
+x86_emulate:
 	mkdir -p $@
-	ln -sf $(XEN_ROOT)/xen/arch/x86/$@/*.[ch] $@/
-
-x86_emulate/%.c: x86_emulate ;
-x86_emulate/%.h: x86_emulate ;
-
-%.c: $(XEN_ROOT)/tools/tests/x86_emulator/%.c FORCE
-	ln -nsf $< $@
-%.h: $(XEN_ROOT)/tools/tests/x86_emulator/%.h FORCE
-	ln -nsf $< $@
-
-CFLAGS += $(CFLAGS_xeninclude) -D__XEN_TOOLS__ -iquote .
 
 GCOV_FLAGS := --coverage
 %-cov.o: %.c
@@ -33,18 +34,13 @@ OBJS := fuzz-emul.o x86-emulate.o
 OBJS += x86_emulate/0f01.o x86_emulate/0fae.o x86_emulate/0fc7.o
 OBJS += x86_emulate/decode.o x86_emulate/fpu.o
 
-WRAPPED = $(shell sed -n 's,^ *WRAP(\([[:alnum:]_]*\));,\1,p' x86-emulate.h)
-
-private.h := x86-emulate.h x86_emulate/x86_emulate.h x86_emulate/private.h
-
-x86-emulate.h: x86_emulate/x86_emulate.h
-x86-emulate.o x86-emulate-cov.o: x86_emulate/x86_emulate.c $(private.h)
-fuzz-emul.o fuzz-emul-cov.o wrappers.o: x86-emulate.h
+WRAPPED = $(shell sed -n 's,^ *WRAP(\([[:alnum:]_]*\));,\1,p' \
+                      ../../tests/x86_emulator/x86-emulate.h)
 
-$(filter x86_emulate/%.o,$(OBJS)): x86_emulate/%.o: x86_emulate/%.c $(private.h)
+$(filter x86_emulate/%.o,$(OBJS)): x86_emulate/%.o: x86_emulate/%.c x86_emulate
 	$(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_$*.o) -c -o $@ $< $(APPEND_CFLAGS)
 
-$(patsubst %.o,%-cov.o,$(filter x86_emulate/%.o,$(OBJS))): x86_emulate/%-cov.o: x86_emulate/%.c $(private.h)
+$(patsubst %.o,%-cov.o,$(filter x86_emulate/%.o,$(OBJS))): x86_emulate/%-cov.o: x86_emulate/%.c x86_emulate
 	$(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_$*.o) $(GCOV_FLAGS) -c -o $@ $< $(APPEND_CFLAGS)
 
 x86-insn-fuzzer.a: $(OBJS) cpuid.o
@@ -70,7 +66,7 @@ distclean: clean
 clean:
 	rm -f *.a *.o $(DEPS_RM) *.gcda *.gcno *.gcov
 	rm -f afl-harness afl-harness-cov libfuzzer-harness
-	rm -rf x86_emulate x86-emulate.c x86-emulate.h wrappers.c
+	rm -rf x86_emulate
 
 .PHONY: install
 install: all



From xen-devel-bounces@lists.xenproject.org Thu Dec 18 12:12:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 12:12:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189514.1510275 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWCrT-0003gP-AZ; Thu, 18 Dec 2025 12:12:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189514.1510275; Thu, 18 Dec 2025 12:12:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWCrT-0003gI-6T; Thu, 18 Dec 2025 12:12:03 +0000
Received: by outflank-mailman (input) for mailman id 1189514;
 Thu, 18 Dec 2025 12:12:02 +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 <SRS0=dRjX=6Y=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1vWCrS-0003gC-9x
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 12:12:02 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c10e5ba8-dc0a-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 13:12:00 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id C239143D6F;
 Thu, 18 Dec 2025 12:11:58 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BD324C4CEFB;
 Thu, 18 Dec 2025 12:11:57 +0000 (UTC)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfauth.phl.internal (Postfix) with ESMTP id BD61AF40069;
 Thu, 18 Dec 2025 07:11:56 -0500 (EST)
Received: from phl-imap-08 ([10.202.2.84])
 by phl-compute-04.internal (MEProxy); Thu, 18 Dec 2025 07:11:56 -0500
Received: by mailuser.phl.internal (Postfix, from userid 501)
 id 7DD622CE0072; Thu, 18 Dec 2025 07:11:56 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c10e5ba8-dc0a-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1766059918;
	bh=XGQ+7SgEew4iClGYURs+C9L0stXJTBsZbjZ2oG7UIc0=;
	h=Date:From:To:Cc:In-Reply-To:References:Subject:From;
	b=Pbfm1N29OV600qM6UTmHFrWBgKAAPaEIi8H31U8/D7Fy4/yQH7DtTr8fjL1JU2ZGr
	 6nwz3dwH1V2m2ot6sPml3YHiTkco7la+c2nu+l+SxzciJta8kjjah21YI0wd4vAeV1
	 isA2l1yKhqypiDWu4LQeHt4ykcmpaBp/ImSwyvJVre9a3pRs4GXVsIRHvw6x+1fCZ3
	 aTjQTA27ccRELqk9h2L0kraeNtbMTR5EzRmpbnJomxT+NeArdctTyUhXcuNcwN7S86
	 MwPNLvKu3CLTwt2KbzjkGo2I4spjFwLzTY0Numflrkc7wTVrfPPFNtqzCFaA++T+6a
	 inlbyNZVWvrqA==
X-ME-Sender: <xms:jO9DafeY02D3zYoswm455JApvwyXo9N__fUotOJi51wAZtuEx-h72w>
    <xme:jO9DaQDfyGYFoXV11b_RfSRExwBkMCEzZBimiIe7NMQwesYYigYemrJGclZL6-nUN
    5nH6_xmiiK7evyXwi9tI-nHYYwNuyJSE2e3okgtOjc_KJ6UT8WLB40>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdegheeflecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpefoggffhffvvefkjghfufgtgfesthejredtredttdenucfhrhhomhepfdfnvghonhcu
    tfhomhgrnhhovhhskhihfdcuoehlvghonheskhgvrhhnvghlrdhorhhgqeenucggtffrrg
    htthgvrhhnpeekgfduveffueffveduleefgfejhfevfeduueeiueetleeugeeivdfhfedv
    geeuhfenucffohhmrghinhepkhgvrhhnvghlrdhorhhgnecuvehluhhsthgvrhfuihiivg
    eptdenucfrrghrrghmpehmrghilhhfrhhomheplhgvohhnodhmvghsmhhtphgruhhthhhp
    vghrshhonhgrlhhithihqdduvdeftdehfeelkeegqddvjeejleejjedvkedqlhgvohhnpe
    epkhgvrhhnvghlrdhorhhgsehlvghonhdrnhhupdhnsggprhgtphhtthhopeefiedpmhho
    uggvpehsmhhtphhouhhtpdhrtghpthhtohepsghpsegrlhhivghnkedruggvpdhrtghpth
    htohepthhssghoghgvnhgusegrlhhphhgrrdhfrhgrnhhkvghnrdguvgdprhgtphhtthho
    pehrohgsihhnrdhmuhhrphhhhiesrghrmhdrtghomhdprhgtphhtthhopehlihhnuhigse
    grrhhmlhhinhhugidrohhrghdruhhkpdhrtghpthhtoheptghhrhhishhtohhphhgvrdhl
    vghrohihsegtshhgrhhouhhprdgvuhdprhgtphhtthhopegurghvvghmsegurghvvghmlh
    hofhhtrdhnvghtpdhrtghpthhtohepmhhpvgesvghllhgvrhhmrghnrdhiugdrrghupdhr
    tghpthhtohepohhlvghkshgrnhgurhgpthihshhhtghhvghnkhhosegvphgrmhdrtghomh
    dprhgtphhtthhopegrnhgurhgvrghssehgrghishhlvghrrdgtohhm
X-ME-Proxy: <xmx:jO9DaW3ei8lQ9gcPxNPUeQZve5kN2H4YDdliFX36bDRD9uMeDsZ4KA>
    <xmx:jO9DaUpMFxuOPj7_hGyyy_s579il17M-kR5TgcqcXniyOzdDRg_9ow>
    <xmx:jO9DaWJBfSyOkp-S-guhU4sCQMQj21t9ZeDTKlB6MTu_eAniobrx8g>
    <xmx:jO9DaQMmPwxjAIxGEGDyRXW1Dza8HIb57oy-5TquwYRW4FNWdPdjfg>
    <xmx:jO9DaU3nohCadRXkzPkJY71Xjbbz3hpclv3AJ-2YED3d89Ht1quCx0PH>
Feedback-ID: i927946fb:Fastmail
X-Mailer: MessagingEngine.com Webmail Interface
MIME-Version: 1.0
X-ThreadId: AsrGuGndWMm3
Date: Thu, 18 Dec 2025 14:11:35 +0200
From: "Leon Romanovsky" <leon@kernel.org>
To: "Guenter Roeck" <linux@roeck-us.net>
Cc: "Marek Szyprowski" <m.szyprowski@samsung.com>,
 "Robin Murphy" <robin.murphy@arm.com>,
 "Russell King" <linux@armlinux.org.uk>,
 "Juergen Gross" <jgross@suse.com>,
 "Stefano Stabellini" <sstabellini@kernel.org>,
 "Oleksandr Tyshchenko" <oleksandr_tyshchenko@epam.com>,
 "Richard Henderson" <richard.henderson@linaro.org>,
 "Matt Turner" <mattst88@gmail.com>,
 "Thomas Bogendoerfer" <tsbogend@alpha.franken.de>,
 "James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
 "Helge Deller" <deller@gmx.de>,
 "Madhavan Srinivasan" <maddy@linux.ibm.com>,
 "Michael Ellerman" <mpe@ellerman.id.au>,
 "Nicholas Piggin" <npiggin@gmail.com>,
 "Christophe Leroy" <christophe.leroy@csgroup.eu>,
 "Geoff Levand" <geoff@infradead.org>,
 "David Miller" <davem@davemloft.net>,
 "Andreas Larsson" <andreas@gaisler.com>,
 "Thomas Gleixner" <tglx@linutronix.de>, "Ingo Molnar" <mingo@redhat.com>,
 "Borislav Petkov" <bp@alien8.de>,
 "Dave Hansen" <dave.hansen@linux.intel.com>, x86@kernel.org,
 "H. Peter Anvin" <hpa@zytor.com>, iommu@lists.linux.dev,
 linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
 xen-devel@lists.xenproject.org, linux-alpha@vger.kernel.org,
 linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 "Jason Gunthorpe" <jgg@ziepe.ca>, "Jason Gunthorpe" <jgg@nvidia.com>
Message-Id: <77e73a01-9f7e-475b-a810-278f931910ed@app.fastmail.com>
In-Reply-To: <20251218084002.GD39046@unreal>
References: <20251015-remove-map-page-v5-0-3bbfe3a25cdf@kernel.org>
 <20251015-remove-map-page-v5-9-3bbfe3a25cdf@kernel.org>
 <b184f1bf-96dc-4546-8512-9cba5ecb58f7@roeck-us.net>
 <20251218084002.GD39046@unreal>
Subject: Re: [PATCH v5 09/14] parisc: Convert DMA map_page to map_phys interface [qemu
 test failure]
Content-Type: text/plain
Content-Transfer-Encoding: 7bit



On Thu, Dec 18, 2025, at 10:40, Leon Romanovsky wrote:
> On Wed, Dec 17, 2025 at 04:17:38AM -0800, Guenter Roeck wrote:
>> Hi,
>> 
>> On Wed, Oct 15, 2025 at 12:12:55PM +0300, Leon Romanovsky wrote:
>> > From: Leon Romanovsky <leonro@nvidia.com>
>> > 
>> > Perform mechanical conversion from .map_page to .map_phys callback.
>> > 
>> > Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
>> > Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
>> 
>> This patch causes all my 32-bit parisc qemu tests with C3700 machine
>> to fail. Network interface tests fail, and all boot attempts from
>> any kind of hard drive (scsi, usb) fail with this patch in the tree.
>
> Thanks for the report. I have a fix ready; I'll clean it up and send it out
> by EOD.

The fix is available here
https://lore.kernel.org/all/20251218-fix-parisc-conversion-v1-1-4a04d26b0168@nvidia.com/T/#u

Thanks

>
>> 
>> Guenter


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 12:38:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 12:38:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189530.1510284 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWDHM-0006dZ-7c; Thu, 18 Dec 2025 12:38:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189530.1510284; Thu, 18 Dec 2025 12:38:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWDHM-0006dS-4u; Thu, 18 Dec 2025 12:38:48 +0000
Received: by outflank-mailman (input) for mailman id 1189530;
 Thu, 18 Dec 2025 12:38:46 +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 <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWDHK-0006dM-QP
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 12:38:46 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7dd810db-dc0e-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 13:38:45 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4779cc419b2so4109715e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 04:38:45 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47be272eaf8sm42043145e9.5.2025.12.18.04.38.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 04:38:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7dd810db-dc0e-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766061524; x=1766666324; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hTaNE6jE2EfaSY0JmCXlxPm00ZQkbBPUxTgCLf6xoEY=;
        b=C+ODcsvonzvxbWHkjHyBJ0ihj1F/QlBBS5wcoi/f52tYL43omisE4ZsdMUQ1+XavqT
         GcUXCwPXV8Y03b+9RSOl6OcYJkJIxeKDY9HQHatlex2Smzoang49QNoJNyDBFZMymKvz
         SpfshmLIPClG8fhbBUpKL/WNvEZB0ftxjjcbMTbVrbHRl0sqNYyzoy6hulhQp550FYNS
         0ggph9+P2etXJE1JlypsunyhnFz53HpZ5RDBex04M+62tuhXdT3/j/K72bLFEi75nfOz
         vgyyTP9vxeDN3+z+ZVVs/zLYWkWvTGrVKcbk+YJ7XrX7yU6cqwMLux7a1aHjCTWCTapQ
         cbqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766061524; x=1766666324;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hTaNE6jE2EfaSY0JmCXlxPm00ZQkbBPUxTgCLf6xoEY=;
        b=p6jRlTvKB/8pJNPd3iXn8apUxggKqgpRkciZ8H5tLr+e5mGHK07vVGRLgOyTm1qAGG
         FAtZ0dWDVa5i6S6FvQFA7iYu74ZnEZvFnQGNHWcDMvaXXdVSbW+ybdsx2XkHQfsVakYO
         A2NtoBbodJXaRhN8e/qmkWQJ64ro8/VeYKNeEV42e3vycG5Oa6BXz1uN64zczWwTAGOM
         9UoObkTpGU8h3OB+PghceabEFpSgZwRAzTf9s9yxPGLNzuHI+kKGi+VUP6PfrPfrgYmG
         2mGgZRq8yduW0VcSYQw+Da3ilK3xQFnHXxfyY0Hbe8xVdDL+klSg1LZfpGuvDp95TXfj
         BBZA==
X-Forwarded-Encrypted: i=1; AJvYcCWWKtRidyPk+vfDcP24AqfzccNSybbonEE8RLwESJ4vDiBaUmBSXDCUmSukZZK2k4UD82u5y2GnMUo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz/KKLyMIhDus8PplSoL76OIR3iMzuMbbCkdWmWWQhzyVI+KmEe
	bswaAiYqnle9kz28TUQVfcuZA/KsYBMOq1OMmz9q7o7E4M1NURjDmKKwH2gTr7iFKw==
X-Gm-Gg: AY/fxX40sKDMpITNZ1ynES+TZo6b1H9y770diNQc+EJZAuPWqZoRwt5rttcB4+Tm/mC
	dfrO5Q+eCytvgIOc1BDZzr01aiFQxncIRwxWsfJhKiMFJsgXEx6IgeY1wDbXKlY8mpAM2R0bgBa
	ljtZT3PWdIByDvb72BPz46LdS3QAxRI7wfWgBEal9L5AhhqBiWNL5u1pthtLfuV0BAugjHtY00E
	RWQmeWZ+JzK6sKu9OBSFckbDTNB3HRpedy1JlNPwVUu6eoUkj8bPvRpqJaVHmMYlIEt2R2h5aEV
	vKA7gZN6/IDSj2pWQF6XFhm0y54/Cm/ImiLTOpojSED5NJ30mnJuQ+qWzBqGmZBTyKXKUqm3NJ7
	V0ScHpnRafEmlQ4i7KK/F95XUh1bLddIEdW1DxSP7gBhVyR7RvbOmRy3rQy5u/L547Z7RiBoBNb
	gEf1KLFcIVOCx9AU272jgsfQcNHav2hsawAjGQw1wsia36ZDFYOEbGhPpFCHy1YmJaJClo6ZQax
	0Q=
X-Google-Smtp-Source: AGHT+IGoBeBvzpE64OpixgY1teLRik67wzqXTYLB61j0ttsJaKzgY4Awyjf+y4D/7VndXDj5I8vb9A==
X-Received: by 2002:a05:600c:37c8:b0:477:1bb6:17e5 with SMTP id 5b1f17b1804b1-47a8f90d9f7mr232781625e9.30.1766061524300;
        Thu, 18 Dec 2025 04:38:44 -0800 (PST)
Message-ID: <39fb28a6-25eb-4654-aa8a-311a8593c007@suse.com>
Date: Thu, 18 Dec 2025 13:38:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 08/19] xen/dom0less: abstract Arm-specific p2m type
 name for device MMIO mappings
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
 <912db2169ad1ba5e021fc58972fd92aabc213c5f.1765879052.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <912db2169ad1ba5e021fc58972fd92aabc213c5f.1765879052.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 16.12.2025 17:55, Oleksii Kurochko wrote:
> Introduce arch_dt_passthrough_p2m_type() and use it instead of
> `p2m_mmio_direct_dev` to avoid leaking Arm-specific naming into
> common Xen code, such as dom0less passthrough property handling.
> 
> This helps reduce platform-specific terminology in shared logic and
> improves clarity for future non-Arm ports (e.g. RISC-V or PowerPC).
> 
> No functional changes — the definition is preserved via a static inline
> function for Arm.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Since there still is no Arm ack here, could you please clarify in how far
this is a prereq for subsequent patches? Looking at just the next one, I
can't spot a dependency, i.e. that next one could go in as it has the
necessary ack.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 12:49:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 12:49:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189540.1510295 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWDS4-0008N6-6D; Thu, 18 Dec 2025 12:49:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189540.1510295; Thu, 18 Dec 2025 12:49:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWDS4-0008Mz-2B; Thu, 18 Dec 2025 12:49:52 +0000
Received: by outflank-mailman (input) for mailman id 1189540;
 Thu, 18 Dec 2025 12:49:51 +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
 <SRS0=KG2Y=6Y=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vWDS2-0008MZ-US
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 12:49:51 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 075d7799-dc10-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 13:49:46 +0100 (CET)
Received: from CH2PR16CA0008.namprd16.prod.outlook.com (2603:10b6:610:50::18)
 by DM4PR12MB6061.namprd12.prod.outlook.com (2603:10b6:8:b3::5) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9434.6; Thu, 18 Dec 2025 12:49:41 +0000
Received: from CH2PEPF0000013E.namprd02.prod.outlook.com
 (2603:10b6:610:50:cafe::ba) by CH2PR16CA0008.outlook.office365.com
 (2603:10b6:610:50::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.7 via Frontend Transport; Thu,
 18 Dec 2025 12:49:41 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CH2PEPF0000013E.mail.protection.outlook.com (10.167.244.70) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9434.6 via Frontend Transport; Thu, 18 Dec 2025 12:49:41 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 18 Dec
 2025 06:49:41 -0600
Received: from [10.252.147.171] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 18 Dec 2025 04:49:39 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 075d7799-dc10-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EkpiMO9/N+I/Loyj/aB87GGvmxRzitr90tlprLjhBeY9ttyswH3sqSSmP/w3z83XDk2vngGvIUfRruMUlfRlJvro+LtOqF4sPY0vmMneh9Ei1pg0+3jnQeyRMCAvG7OFkWGj7YQhLhyMyfbTPt84/r8k4C9CzIbQI4uq92RT6/sgW6qM+VLdSmpr11zHA1QYYwToft0TTg0rieQWjVbqY5PPKmE3VkeghQbrWvqJ0UW0QEJ569KQLA7/8j+/MYT0/sAYe4rqdA7+MN9cvOo8vDGyqBk4XSoQaqUxPND062cUuGuS5OLD4X1zf3Z0fe9qi08iahigp6tXkvNKC54lPA==
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=l978XjQu/Ypou1x0BcUk2kMDU5SFPYe6uhTwcmq9G+o=;
 b=gXTcJWW35vkBm107F1BlapdGObTnUIHdMs6Hu7Vu/He4YCLKvCzy4PKthM0FJSHhog9AFiZYt9FfFJtLyx+zO0G4yCK2rDCHOEAnt6EfhDopZW8inxQuK+j6s00NEWMhdlnO7ISSNeeGGPe+0oivYinLGhIoLjReMrriOfLYHHJvda2kIpv3+IXpF+kDH7qLvOEZKCR6pfbnz0viCqM9fm/yugUj9y1hJu6FV57ao3wUDofQJ703U1vBrEtQzbyJRGtEIev/LVtGXmvbwPjE4rsAlhGkUicPR0eNn7m70RJb24gk65wi9MYOj3uIkchlfJHpnFCe2Y4KrpEPazk3Dw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=l978XjQu/Ypou1x0BcUk2kMDU5SFPYe6uhTwcmq9G+o=;
 b=PN4e1smBAKhE7m5CoKUTvSQRECVVYFsJLU6E/CWev5VPqPIg3/bCoharJLtemT8VwkPlIuRmhCXarhW3t+CZz3KV7U6eLqV6VyJWtAyjLFKEvCdSvaACa/nKsXqgQIFlFO7IjZHp2ad7jrYL2wHcKdgsJQIselo/dOzIHRXyQ+Q=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <08749564-eada-4f6e-a291-952304b7bdcb@amd.com>
Date: Thu, 18 Dec 2025 13:49:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 08/19] xen/dom0less: abstract Arm-specific p2m type
 name for device MMIO mappings
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
 <912db2169ad1ba5e021fc58972fd92aabc213c5f.1765879052.git.oleksii.kurochko@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <912db2169ad1ba5e021fc58972fd92aabc213c5f.1765879052.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF0000013E:EE_|DM4PR12MB6061:EE_
X-MS-Office365-Filtering-Correlation-Id: 129158e2-afb8-4f9b-d0c4-08de3e33e9b1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TEdFS09mTU55S2U2Rm8rZG4zTUNaN2NZY2NJMVlWKzNiSjFveFhabnExeDhq?=
 =?utf-8?B?dnRmYjlLajRXcW5UV2x3NnUyMUFPRUhnM0NUdTVmZmRhRmFwVExma3czRmhl?=
 =?utf-8?B?cDRMVEE4aTQzS1o4UUxhaVJVN2dWZS9uUWNZTzF5V0xmZUNEOUlWcFhhK2ZJ?=
 =?utf-8?B?dTgvL0t2OXpkRUUwMmozV0oyR2hoQWljcDJvMlg4ZWdvd2ZmbVFZWVFXWmhB?=
 =?utf-8?B?U3hzaDhSdkMyK3BHV2dPdnQ1RHlZeWMvOHBiT2lZemROaHJzeEFPUFh3cTVu?=
 =?utf-8?B?cGtlNkZIYzBsaHZXajVBa09nY2xsZmRWa3M3VGI5WDFJZ09IZHVwWDY2OCt2?=
 =?utf-8?B?SjZFWU4xSjFCZWxjQkdlL1RFQWtDV0xuVGxlV2lLcy82SUwzWVJTOVhoSVhn?=
 =?utf-8?B?cllXYmhiS1NGYVJoTTVUbjNRcFhaNk54bVphQlFOVGpQbFVETzVkYXdBdDBK?=
 =?utf-8?B?ZnR1TmExZGViaXlPRHo5STVxcDhscm1kNUpUa0R2OFFWSWc3T3l3b0JyWVp3?=
 =?utf-8?B?eUhoWXdwVmF2R2JEb1Y0VjNNQVdEQU9KOWx6SEF3SHdtWlpBQngzM0VONnpX?=
 =?utf-8?B?NDZjbnV0bU5QNmw5M0wvVXUrSC9NZVRsOG5GTGNnRjlIUnFPR2ViZWNOd1o1?=
 =?utf-8?B?b1c3VGFRTnVTZm5WMUxUbmZnREFmUHRJSmxKRzFIbS95Q1NmWWRrTHJUd2N6?=
 =?utf-8?B?MXNtbW1CTFJYNWtrSC84eGIyKzlDOElYNUorUTZsQlBPOTJld2dhSkJUWjVl?=
 =?utf-8?B?Zi9BRmFYbElaTmszSTVOdVBSRzIvMkcwYnNEd2ZsRVhFK0JuS3FuNDZ4Z2NK?=
 =?utf-8?B?TVJSN0d6aitLU2JQZTVjRjc2U2ttSGV2SS9pVWJXWEY2SEVYa3VPNXE0QXd6?=
 =?utf-8?B?T210UDd3UXVWdGVpUkR2dnRZak1FdHZyZFdGMC9yRlhGZy9HbHo0SHBPUFdh?=
 =?utf-8?B?MFlSVnVTYTcrcm54SmlrMDdpZ0lDNTJHbzIwVkVsNnprNzQybzJHVkJrb2tl?=
 =?utf-8?B?Rk1JeXluWkZMbDdMcWw3QWNPUVlVZlIvWENUTmlicC94WUROcXlLZ0pyc2NE?=
 =?utf-8?B?cGQycThIVW9GaFZtU3hQTWd0Wi9HWEg0dXB1VU5MOVF6akRablFqM1A5eFZO?=
 =?utf-8?B?S0Z1M0pZNGVSZVJ0U1JjMUlRZS9jUk1acVdaT0g4dE8vY2VxWk8vY0szS0Nz?=
 =?utf-8?B?YkJPUExQblhLekorZzNEVWlETVBvMmFtZjNLTE9QVENYS2xKT1QxT2xJeEha?=
 =?utf-8?B?MS9nR1Z0R0tBM2hDMFZ5U0JDTE5BMlBKMWM1M1owTzZZYTZOanlmNlhRbndm?=
 =?utf-8?B?VGF1R3JraEVGSmNoVGcwanJlandIRFBzbVhSclVia2N3eTJSMS9VNHRISTFt?=
 =?utf-8?B?SElQV2dLRGFrbUZDdWdHdW9tdDFlZXd5S2xhTjlISzd3emdTT0VQMUJuTlln?=
 =?utf-8?B?WFNtNWxRQ2NUK2Rxd3FXa2dGOGxtOUpEOGg3M2pkeFlPSkY4ck03dUpXWndP?=
 =?utf-8?B?RmhzTUNLaS9uRzhwN2RzZEQ0dkhpa1VBcjdZQVFpNGUxbGprWmN5ZGtoTkds?=
 =?utf-8?B?Umwxdmo0VSs1dENSaElWL2lXaUNqRlNvWTFoZmQ5dy9jUHhpVFFuNWpaUHlE?=
 =?utf-8?B?aDFMc2RTUGJRdmNSblp2TTdoRE9HS2hBQkJVZnBhdjdLakhSelcwa1ZKSUNs?=
 =?utf-8?B?Z0NXY2o1cGwyYmFQUFBUcTY1ZEVDM1RFSnVXYktMYjdhMmczdHBEbGhGRm1T?=
 =?utf-8?B?cFpEazhKdGs0VmhLOUpxR0dVSThMQnMrMm9GZEo4eHA5STJUOEJDZVZON2RS?=
 =?utf-8?B?Wi8wU0poODJhcDVhVm5SQ1daRzI0V2t5NXhlcTRMS1lyMFh2QzNqWU5YZFNq?=
 =?utf-8?B?WFVSbU1BQTNJREtWZXpnaVJpd3Z2Z2xUYUVDVUJLN3JkTzlPRDdLUnFrVXNE?=
 =?utf-8?B?RDdoeFJkUjRPcUdtaC9semZHV01XMXBRUDVONVhtMGxRZ2NLdFRSTjAyS2Fp?=
 =?utf-8?B?T2szdHBaRk5sWGI2N04yU2tVY2JzWnB0ZDV6OVpLUVBjYzc0c1FBUVVockFW?=
 =?utf-8?B?OHROZS9zNnlka0lUejlMckh2YkExbCtBMVAvT2J6dmptM043TDNMR3IxOFVz?=
 =?utf-8?Q?2lO8=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 12:49:41.7644
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 129158e2-afb8-4f9b-d0c4-08de3e33e9b1
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF0000013E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6061



On 16/12/2025 17:55, Oleksii Kurochko wrote:
> Introduce arch_dt_passthrough_p2m_type() and use it instead of
> `p2m_mmio_direct_dev` to avoid leaking Arm-specific naming into
> common Xen code, such as dom0less passthrough property handling.
> 
> This helps reduce platform-specific terminology in shared logic and
> improves clarity for future non-Arm ports (e.g. RISC-V or PowerPC).
> 
> No functional changes — the definition is preserved via a static inline
> function for Arm.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Dec 18 12:51:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 12:51:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189547.1510305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWDTI-0001NU-EK; Thu, 18 Dec 2025 12:51:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189547.1510305; Thu, 18 Dec 2025 12:51:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWDTI-0001NN-Bs; Thu, 18 Dec 2025 12:51:08 +0000
Received: by outflank-mailman (input) for mailman id 1189547;
 Thu, 18 Dec 2025 12:51:06 +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
 <SRS0=KG2Y=6Y=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vWDTG-0001ND-K7
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 12:51:06 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 36039ca4-dc10-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 13:51:04 +0100 (CET)
Received: from SJ0PR03CA0077.namprd03.prod.outlook.com (2603:10b6:a03:331::22)
 by LV3PR12MB9258.namprd12.prod.outlook.com (2603:10b6:408:1bb::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Thu, 18 Dec
 2025 12:50:54 +0000
Received: from SJ5PEPF000001F1.namprd05.prod.outlook.com
 (2603:10b6:a03:331:cafe::2f) by SJ0PR03CA0077.outlook.office365.com
 (2603:10b6:a03:331::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Thu,
 18 Dec 2025 12:50:52 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ5PEPF000001F1.mail.protection.outlook.com (10.167.242.69) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9434.6 via Frontend Transport; Thu, 18 Dec 2025 12:50:51 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 18 Dec
 2025 06:50:51 -0600
Received: from [10.252.147.171] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 18 Dec 2025 04:50:49 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 36039ca4-dc10-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=p7MJhvof3IlmnHFoU+wf97rlWOs4kwaCS+s6YUaTQi5DjJKCgh0uvKOL2BJCE1OlXITkdFI4futOEA5CDOJ9dy0VrZDBAf4P72zoiwm9BC+yAyPkTIeqHAHtMGKzJA4wM8LPQNA7Q5zyBui35/XAyjiTk+V9CpfMMSYQNEgWljBg41rwF7khWsRhRsBxXZ9v+RvoNxsjG41XBF52B0MA4qqfQWtDbLXPnxKCnfhaXt9oNjrESAtlGw88NnHOh1E0owze9NEb4YzZW/Nul10W2z9lDgd3JTmJ/AWr7vUYmLdTOShyMKv5pjEH/hs8qYRVhIO4A9en2WLAf1hJ1aPOWQ==
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=gQz3QSUX2/UoZuzfBtpPoxx5Wtc2heciyCuAKC2cvRs=;
 b=m5P+U2xirJMvNScLwiXoyVoToioVt1VuvDKtzlDFCfh3rcaYuNIt5N9ek7vWkGPm+MBiqaWl3nZK6flq2rSUCwZqcU2+w1ZLLgL8l0XGuqgor+516065LsFPQzo22SNxlZmBO4tA0vCjZaNrSi36SusVTYzjfovw2zyiuGYJqyf2lGWMZ0hHbg5Q+SGWpXe6IboFntDrl9lrrAl5zGWJGqZguUTn4KtOHdY94bBJz2OkezyWTaZxesiQ6RK2QpZlYfXIvgPvyxiJpMUczz1EwjZtwVEGfqYHsMHNdUIegNN/pQwECjfgGbs5rWH5MRXg06GCZrprIv4i7E5WMG4efQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gQz3QSUX2/UoZuzfBtpPoxx5Wtc2heciyCuAKC2cvRs=;
 b=SCosbqFmDUutBAcl6SB114Nx97tNEHd2+0TsSso2jhGFUiY+IsZf/tsKXoVMKRd0MLsQNuZfDffU9cY5+DKZ+HxKTE7uJYSW7zodA4WRu5UUULMItLVzSbECRM8q7lKA3SQg3U14JdTAwAmv4X5klja/t+X3VI7wrL1IxFIPRrc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <c09e86a1-df0f-438c-8295-1fe211baf687@amd.com>
Date: Thu, 18 Dec 2025 13:50:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH V3] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
To: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Julien
 Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Grygorii
 Strashko <grygorii_strashko@epam.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Harry Ramsey <harry.ramsey@arm.com>
References: <20251217081248.2807849-1-oleksandr_tyshchenko@epam.com>
 <alpine.DEB.2.22.394.2512171605420.21522@ubuntu-linux-20-04-desktop>
 <a23716aa-cae1-4636-b027-2344e2b08f10@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <a23716aa-cae1-4636-b027-2344e2b08f10@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001F1:EE_|LV3PR12MB9258:EE_
X-MS-Office365-Filtering-Correlation-Id: 411180ac-0ba8-4744-03a1-08de3e34137a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NzBsL01LOVZSVWV5aGNaejQyVGIrY2RmbDJlOFhVREJIM053RWFHOFlzbG4y?=
 =?utf-8?B?OUtnYlJvSzh1c0JjY3U0MUVUZ1BJNDI3bUdtbnNTTEZTTGkzbTNVR1JDR3FI?=
 =?utf-8?B?dVVhL0pqQlBBMWprYXJBVG9hbVlsQmNQaHJ5Y2tyajQ1dmZWb0ZsbXdwaXNa?=
 =?utf-8?B?NXVyZ0QralF0LzJWbE90NjhUd01tSmxjM3dDNC9GTERFaks4V2k4TjVXNEQ1?=
 =?utf-8?B?ZkxxNDRZQVB5T2Z3R3NMWGYrN1ZDNk1tbTNUMWFOMEZWWHZhZHJnZFN3M1lX?=
 =?utf-8?B?V0xrVms0Yk1wUnIyb2FGRU94NFlhdHFaN0lpUUVUaEk4azk1d3ZuT2l5SE5K?=
 =?utf-8?B?bDRMeEpBU2U2ME9TSUNlZzRBMHdHZ1NJMVh2eUw4YldWM3YrK3l3UGNyMkl6?=
 =?utf-8?B?azVEZ0xzQWovVlhDbkZLMFZ4UkhzZkkvdkZkb3g3a1Nnd0lLbEJ4S09RSjJh?=
 =?utf-8?B?Y3RzU2w2VnV1K1FWbWRCUno0ZUp2aFB3NW9hcWU0aitvbEZYY1Q0eGRNcFpW?=
 =?utf-8?B?WkxZN0NQQ3hWOTltdzZqaTUrc0VFYWp5bzVXZXZMNVVwMEpRbDcyY1RmYnBh?=
 =?utf-8?B?dEdKQUpZWVRjV0dkZDU1a1hldnRLUkdwYXgzUWhaTHptWE9TOEFic1BJRVV3?=
 =?utf-8?B?dUpPdjRDVFkvdk9xYkx6MTA2U1NwL1ZNQTJhM2lMRmpQTG90bklRZGZOS3Ew?=
 =?utf-8?B?WG1RenJJU1V5TnJJTjcvRmtCd3l0M01VY2ZUR1FjMTBqZUY0eDlHcGw5ZW5N?=
 =?utf-8?B?MnllWXU0K0loUkNCblRHWXQwRmIwL0JtdTAvVktMV1llRGxCU0FxTWljS1Zk?=
 =?utf-8?B?eXV2bFRRNWU3RE5KcmZHekxiTlJtUkZpMU1pRHQ1Wm05RitnWkoxRFl0ajFl?=
 =?utf-8?B?Y3ZRS1doalV5QmlhVFg0Qk1MRURDTzhqYlcyOVp3TDBQZDFJa215TTJjS2Nu?=
 =?utf-8?B?dk9UUUpUb3dpQTZaUFM1SU8wU1FsMXpZQndFMnhLMVIzZHpVSi81d2YzVTF1?=
 =?utf-8?B?azdpYTBNK2V1bitQMDYxKzMyWk04K1VDRkFkR0dpVUJqdURQLzJEc0E4R2I0?=
 =?utf-8?B?cGN5aEFDZ2hGRFd4bHdkajZaNnBISDRJZWIwbTQwWU5GQzV0NUxFZE12VVRs?=
 =?utf-8?B?ZGFIZXBEVk5TL2tsbHRhNU5UMHF3VzEzRFJQdGQ4cXdzTUxBbS9CRGdIUXJm?=
 =?utf-8?B?NUJpcjR0NlFnTW9IekZvc0RGak9Tay9XNERiR1piK2ZNY1pwd3Y0RkR4Zy9U?=
 =?utf-8?B?NUJueUplSUJJeEZMUEhrTzJKOXo3WS9tQkcyRy9YY0QzN3VucXlrbGhCMFpj?=
 =?utf-8?B?dTVSSXNMc3JZcjBEbGRLRFF4KzdxUzNLbXBzN3BzNVh6MHRXRzVCNUpRbWhG?=
 =?utf-8?B?Ky9ZbHRReWlkNmV6TXJRNnZzS1kxSzZVZFgzdzdrR1YrWmxnSzRSZEM5Wk9Q?=
 =?utf-8?B?QUJGRXhCVVFUTW16dFFUc1BtZ1M4b1RRemQ3bHllZThwb1gxMzZJNmpsQWJL?=
 =?utf-8?B?c1RESlNFSWlrWU42UjFGZmMxWisrNUNpdGRzTTBrSHVDcXhuSWZpck5KT3RB?=
 =?utf-8?B?Wms2Mkw1aExOUUNYVGIxL1BYQ21oS1Vvb29mOEMybTM3cVc0MmVRU0FGVkdN?=
 =?utf-8?B?dGE2aXNaQ0FHZ0pWSi82NjNoNE1xZU43MTdzYi9md29QaWpDRkorR1dyS05a?=
 =?utf-8?B?N1ZmYUVseEc5SmJUMjdZWVNWTGV6eG51ZlJCWkdnTldJcVZqNUJMZUZ2WVJl?=
 =?utf-8?B?d2Z1d1hjeUx6R2lLRHdqMFBSSjhTNXIzZXFSUUhvV1hYM1VLeC80cXdFVW1Y?=
 =?utf-8?B?QXR1MVJPd0xpUk9pdjVtVnliOXp5b0U5Sm52Y2thRFRDOW9TZkR3QWRMcWtO?=
 =?utf-8?B?NFFvVm51RmNVYi9QUGJjaVlnT3IwWVlSajk0YmVwU2FXd1pwZ3FKSzNWMlZ1?=
 =?utf-8?B?NFNSKzVxbk5USGlVZkV1Uk8vTE9aaHJPQkRBQ0pnd2NZV3FCRTAvZkthZTBM?=
 =?utf-8?B?NVZlMjZJblFGcE40L2d2ckZIa2RETElBeDNuZkw0MmNKNFVWcDhaTTc4THVj?=
 =?utf-8?B?SFRqVkJTMWE2a09udzEzVmZxaUJhcnE3ZVg3U2tKdmJ2bUJ6THlyenl3WDZQ?=
 =?utf-8?Q?QYIw=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 12:50:51.7841
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 411180ac-0ba8-4744-03a1-08de3e34137a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001F1.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9258



On 18/12/2025 08:44, Oleksandr Tyshchenko wrote:
> 
> 
> On 18.12.25 02:05, Stefano Stabellini wrote:
> 
> Hello Stefano
> 
>> On Wed, 17 Dec 2025, Oleksandr Tyshchenko wrote:
>>> Creating a dom0less guest with a high vCPU count (e.g., >32) fails
>>> because the fixed 4KiB device tree buffer (DOMU_DTB_SIZE) overflows
>>> during creation.
>>>
>>> The FDT nodes for each vCPU are the primary consumer of space,
>>> and the previous fixed-size buffer was insufficient.
>>>
>>> This patch replaces the fixed size with a formula that calculates
>>> the required buffer size based on a fixed baseline plus a scalable
>>> portion for each potential vCPU up to the MAX_VIRT_CPUS limit.
>>>
>>> Please note, the change to DOMU_DTB_SIZE formula would result in
>>> a smaller buffer size of 3072 bytes compared to the original 4096 bytes
>>> on Arm32 platforms where MAX_VIRT_CPUS is 8.
>>
>> I am OK with this patch I would only ask to retain the minimum size of
>> 4KB due to the possible presence of passthrough device nodes.
> 
> I think there might be cases when even 4KB would not be enough to cover 
> the whole dtb with passthrough device nodes. But the existing code 
> should already handle that, so if a partial device tree is provided, 
> then it will be accounted separately:
> 
>       /* Account for domU passthrough DT size */
>       if ( kinfo->dtb )
>           fdt_size += kinfo->dtb->size;
I agree with Oleksandr:
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Dec 18 12:55:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 12:55:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189560.1510315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWDXD-00022X-4z; Thu, 18 Dec 2025 12:55:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189560.1510315; Thu, 18 Dec 2025 12:55:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWDXD-00022Q-1f; Thu, 18 Dec 2025 12:55:11 +0000
Received: by outflank-mailman (input) for mailman id 1189560;
 Thu, 18 Dec 2025 12:55:10 +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 <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWDXC-00022K-4F
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 12:55:10 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c7ef55ae-dc10-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 13:55:08 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4777771ed1aso4827065e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 04:55:08 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47be3020f25sm45559445e9.6.2025.12.18.04.55.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 04:55:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c7ef55ae-dc10-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766062508; x=1766667308; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=f+kVThU9cCW60pfANQ5ApGFVtqmwBzEYyE2ua5P7vqE=;
        b=ZCCZvjY3PWyVVXVnhPiVjUnmZn1sqEV6zIWKJ4NfC0zoTcueEwwba3V/ggLGnrRen7
         Dv0Q2/o3/gWvcJwZHvY5NkNbuGgpFQ64q/ADF/AVdS/uZPWb5KP1XRwcYfx1LNoRW3dR
         UYsU68nJ/jeZcKTevvehok305BzL5UbYsX9kmhP9IL37h7cfbwy3E1aHTCE1AUCbYbSl
         ijzPIVhF+XzYXLoRVe0IXddTk1cEVzfH48gPHGOcXy11MF38CMTdS2HJezaVunJNRD9Q
         y09kZAKayHEwYAToZuJ2nnN+teLfi/tsGB6b7u716L9pvuoDujG04MkAtynrqltY3lJy
         bpvA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766062508; x=1766667308;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=f+kVThU9cCW60pfANQ5ApGFVtqmwBzEYyE2ua5P7vqE=;
        b=UZ9OBKFcpEGQ0D/mNmbcQJ5lkUIhBqpv9z+iy3uRMwbiV3S/eI1+Idk9XtloksiSFd
         1+LmM/zYX/4UB85sH+OuMqvotjmJFvkFFPlFQetQUknXxvnxwszNaWVlYZDMnEXesPxH
         CJe23QTub3tgosmuqDhLzz2d/9RtPrq+ovgrr3b5CwOVIErcgqMWFny2+H92aLz+V5yZ
         HPLD0MlkO1IEq0yc/z+iq5anC7vvq61kEzJThf0S9SyYbKzHmdOk36kERTfIE6uWrjwG
         +UeAoIc5MIjNpUS7FrSM4KAMz4hukfKckvljGn6Bu5Cdyo3y2l57F22PetMBW+5vkBpv
         Spvg==
X-Forwarded-Encrypted: i=1; AJvYcCUzzHU0dZwP4OFcUhgUY5umGzCti2Awm6PasVPJDoOjPwx2zr6q86tqDYWVeAQFVOWH9eb5az78Sp4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwFZtM66mog3GAk8F4G85XLLowMIIwwO4UxFMGjYAD52EodyqCZ
	WYszcVKXdijjauDZnJ0koHV4SEkTzFkKfOq7QX5+iC6e65YlY/c/U4rn1r1cZJK/9A==
X-Gm-Gg: AY/fxX4Hk8zPVG5iINLvRYEsnZ2Iz3WXqqtmDYDupZD9tt2Eef0R+vzbFiWvAyqntgM
	WYigMLIPPyg0qp4QbjGJn4OqZbLOdRikIV9FlHaFqThLzqstRSRFnJY3jPNHkbzwAk9+wk64Db0
	q2KPG2sVhNwtmDLzPVPPCb7cbSqXcIOry627+ouaOROuoFp1irV1p9GQrIxIfCfw1qrn6K9S78Q
	AlXwYm9v5kVPbYiXxpdEqDi5hsAJ4LiRgdUjWdtJhA/QZtlGuCu6sJC/7KETenVaY8RuyoBa7Hx
	bhTl+N3Fjt4IKqJWClIggCUEx+I7MCECBznBXYtEJ0RhvWX2tsFk+4IC+aAccfrz3M/m628yiGe
	ixOG/ecK/FuIKozQVVJLa0tQHTyXPfRah9LpH2eisSG3EKp50jF3Rv2ICOa63XSCo2L5568oLgd
	Huv15RiktPAANpWV17WPqKxKWkYdzhv2DU4XVha4yUzpRr0YI+WP8DBneb6M+fHDAk46HMo8eqP
	2yiex2iQXKScQ==
X-Google-Smtp-Source: AGHT+IGefmEjr5sN7qRc0Lq10CCOiUoILkPS69i0wmNR6zx6hw4yRjPBP4i3yEx9SufLfzIO/5Oxcg==
X-Received: by 2002:a05:600c:4751:b0:477:7b9a:bb0a with SMTP id 5b1f17b1804b1-47a8f907e5dmr218095055e9.21.1766062507617;
        Thu, 18 Dec 2025 04:55:07 -0800 (PST)
Message-ID: <9d4d89f1-81c1-4532-8646-c736ac56e7f3@suse.com>
Date: Thu, 18 Dec 2025 13:55:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 17/19] xen/riscv: add support of page lookup by GFN
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
 <4cef2922ff0fa82eb70e50c737cb00ef27ef13a3.1765879052.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <4cef2922ff0fa82eb70e50c737cb00ef27ef13a3.1765879052.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.12.2025 17:55, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -1057,3 +1057,187 @@ int map_regions_p2mt(struct domain *d,
>  
>      return rc;
>  }
> +
> +/*
> + * p2m_get_entry() should always return the correct order value, even if an
> + * entry is not present (i.e. the GFN is outside the range):
> + *   [p2m->lowest_mapped_gfn, p2m->max_mapped_gfn]    (1)
> + *
> + * This ensures that callers of p2m_get_entry() can determine what range of
> + * address space would be altered by a corresponding p2m_set_entry().
> + * Also, it would help to avoid costly page walks for GFNs outside range (1).
> + *
> + * Therefore, this function returns true for GFNs outside range (1), and in
> + * that case the corresponding level is returned via the level_out argument.
> + * Otherwise, it returns false and p2m_get_entry() performs a page walk to
> + * find the proper entry.
> + */
> +static bool check_outside_boundary(const struct p2m_domain *p2m, gfn_t gfn,
> +                                   gfn_t boundary, bool is_lower,
> +                                   unsigned int *level_out)
> +{
> +    unsigned int level = P2M_ROOT_LEVEL(p2m);
> +    bool ret = false;
> +
> +    ASSERT(p2m);
> +
> +    if ( is_lower ? gfn_x(gfn) < gfn_x(boundary)
> +                  : gfn_x(gfn) > gfn_x(boundary) )
> +    {
> +        for ( ; level; level-- )
> +        {
> +            unsigned long mask = BIT(P2M_GFN_LEVEL_SHIFT(level), UL) - 1;
> +            unsigned long masked_gfn;
> +
> +            if ( is_lower )
> +                masked_gfn = gfn_x(gfn) | mask;
> +            else
> +                masked_gfn = gfn_x(gfn) & ~mask;
> +
> +            if ( is_lower ? masked_gfn < gfn_x(boundary)
> +                          : masked_gfn > gfn_x(boundary) )
> +                break;

Having two is_lower conditionals here is imo unhelpful. Likely the compiler
would manage to fold them, but imo

            if ( is_lower ? (gfn_x(gfn) | mask) < gfn_x(boundary)
                          : (gfn_x(gfn) & ~mask) > gfn_x(boundary) )
                break;

would be more clear to the reader as well. I'm not going to insist, though.

> +        }
> +
> +        ret = true;
> +    }
> +
> +    if ( level_out )
> +        *level_out = level;
> +
> +    return ret;
> +}
> +
> +/*
> + * Get the details of a given gfn.
> + *
> + * If the entry is present, the associated MFN, the p2m type of the mapping,
> + * and the page order of the mapping in the page table (i.e., it could be a
> + * superpage) will be returned.
> + *
> + * If the entry is not present, INVALID_MFN will be returned, page_order will
> + * be set according to the order of the invalid range, and the type will be
> + * p2m_invalid.
> + */
> +static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
> +                           p2m_type_t *t,
> +                           unsigned int *page_order)
> +{
> +    unsigned int level = 0;
> +    pte_t entry, *table;
> +    int rc;
> +    mfn_t mfn = INVALID_MFN;
> +    P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
> +
> +    ASSERT(p2m_is_locked(p2m));
> +
> +    *t = p2m_invalid;
> +
> +    if ( gfn_x(gfn) > (BIT(PADDR_BITS - PAGE_SHIFT + 1, UL) - 1) )
> +        return mfn;

Since on all other error paths you set *page_order (as long as the pointer
is non-NULL), shouldn't you do so here as well (to the order corresponding
to the full [2nd-level] address space)?

Furthermore, is PADDR_BITS really the right basis? Don't things rather depend
on the number of levels the 2nd-level page tables have for the given guest?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 13:17:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 13:17:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189583.1510325 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWDs6-00058x-Ql; Thu, 18 Dec 2025 13:16:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189583.1510325; Thu, 18 Dec 2025 13:16:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWDs6-00058q-NT; Thu, 18 Dec 2025 13:16:46 +0000
Received: by outflank-mailman (input) for mailman id 1189583;
 Thu, 18 Dec 2025 13:16:45 +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 <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWDs5-00057w-Jl
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 13:16:45 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c538b080-dc13-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 14:16:32 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-47118259fd8so5929265e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 05:16:32 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47be279d6d8sm42337945e9.10.2025.12.18.05.16.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 05:16:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c538b080-dc13-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766063791; x=1766668591; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pw2Id4jeiee2DdZWCrc3Q12FtfinQY6laWIk5vOqSHc=;
        b=Jt44lJE6pAu3tXfWyHJ4f9TG8PjNRHCDojrcQQAHZfw/+GjlObOVUAbeFWCKYJql4T
         BfZxCkvRT17Xyy6Yadjf0Dctt6sSCCc1IP60Qu5h16g8PSzmcQnS+Nf2l1hlDfOsKCkY
         42zBHXMzmkjAbCuDact5npqc3FjqJWvq+bUM+mluamCN2pZLhk7GdK9kOauCAxHM03vb
         8ca6U9J6/ySCELAWy7KVX6DqW2nuxsy1tw6f+/NEmJtZlmqh2/x199spn1wfwIvWD8Q3
         8N553D9x5GL0UKqGIUAV+LH3no4vjiRuUMNBWtUboDJ+MSYprzx05q5FMmKNiLYPcptp
         ByBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766063791; x=1766668591;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pw2Id4jeiee2DdZWCrc3Q12FtfinQY6laWIk5vOqSHc=;
        b=GWuKXct0IZsq65N8ocnsqzSqXdat5m4z70JTDIJ39sBZjxDyFXhsndT6Acd+v42fDr
         N72mn2ewbzKS3uxVE+b+zK1FqP2AUCUb0dI27mqQR03POuiXkujntPZIefy+jYeslks9
         ORGXcWMIiuiJwyToY9QLVklqbM/WuB0l5wVn5gu5NHq2fcEwsQFz+OIM2FaLGsLXMrsy
         oMW0D6cslO0qJToUg/7hfp9acD8+mbX7CWQC6c+vXEifR3jqMgaYeWsu8HG5mHb03b7L
         zVst20QjnG/mI4reRWDOzaozhTRYKdF7IdXYpXoj8+L5gE0uZoMm7x88ONxHSxBbF3R9
         2MGQ==
X-Forwarded-Encrypted: i=1; AJvYcCUxjqw5x2LUoO9Oc3+KCg/xOmu353ZamS62VjvIVetgc6VsGLPtIO5meXPkwtcagRnGlpB9XOdbiY4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzEzLsMueZVFCB5i5P8pNvFbL1JZtEilvUVzbjgyi6U3bmwgKDU
	VluMXoH3ZiA6aZKjukP963odNGcruwZ3XzAGcdV9FN99O6mt89xoIpWJO7N8xjj9rQ==
X-Gm-Gg: AY/fxX5n6ObGxos6cQnt/tdNHG9pjta0evk/cgZXubIiuCe53L6py/WXzaWykKOisPU
	5te97LJf1Fe44bJWY8x0stQcWiREJ9EgzHnfsir92Gb3QheVbFRHDc+v1Ud3A8KSZ/5lUP3OfBm
	YYtGqCry/QwWLkdXeP2nylB75jtJ6wbqaiwjNn1qy8OCh9EI7k7beyc5gd3a6Utw3WNcviapQJQ
	+Yi1YbSivSszxbI9IVb7bguHY1w4hndT3dT1HBrJe0aohWacvfURDXMFbmR5tWpDxh48NYC06ek
	Zortz3e8PyoILCkpFbcUgWdu2J7K55iF3jK2JjAv4EPZPUCZkPw6dpdX4kGWW67miNFmQgxd8aW
	wRpv6uec2gxoRwMDirKb2YuXQm52IgcWEo09hxr/YbEr2K60dN9Wfhyr4Sh9m7iEny3SpZYlGxx
	bf4qmhOB5SxGxO9ii9SXcp/8o146x4u+540YdwAscDNAB8KVsu4H0Hg3rfOh0Q0XHYPnujCPj05
	A4=
X-Google-Smtp-Source: AGHT+IE3pR0YX5eSvrLCSuA24PYk+aSuQZaQwKQV1bVt+fyHeXVsJahurfY33pxCACGBkw5bKsVNhA==
X-Received: by 2002:a05:600c:64c5:b0:477:b48d:ba7a with SMTP id 5b1f17b1804b1-47a8f915607mr214320665e9.32.1766063791500;
        Thu, 18 Dec 2025 05:16:31 -0800 (PST)
Message-ID: <c7a00f3e-cbbf-46b3-8d37-ed4565a9314a@suse.com>
Date: Thu, 18 Dec 2025 14:16:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 18/19] xen/riscv: introduce metadata table to store P2M
 type
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
 <b1e4ed0bb4e2f47a7cdb6afe4b9b05462e00fc84.1765879052.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b1e4ed0bb4e2f47a7cdb6afe4b9b05462e00fc84.1765879052.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 16.12.2025 17:55, Oleksii Kurochko wrote:
> @@ -370,24 +396,101 @@ static struct page_info *p2m_alloc_page(struct p2m_domain *p2m)
>      return pg;
>  }
>  
> -static int p2m_set_type(pte_t *pte, p2m_type_t t)
> +/*
> + * `pte` – PTE entry for which the type `t` will be stored.
> + *
> + * If `t` is `p2m_ext_storage`, both `ctx` and `p2m` must be provided.

Stale comment? There's no ...

> + */
> +static void p2m_set_type(pte_t *pte, p2m_type_t t,
> +                         const struct p2m_pte_ctx *ctx)

... "p2m" among the parameters anymore. Furthermore, would any caller pass in
p2m_ext_storage? Judging from the code you may mean "If `t` is greater or
equal to `p2m_first_external` ..."

>  {
> -    int rc = 0;
> +    struct page_info **md_pg;
> +    struct md_t *metadata = NULL;
>  
> -    if ( t > p2m_first_external )
> -        panic("unimplemeted\n");
> -    else
> -        pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
> +    /*
> +     * It is sufficient to compare ctx->index with PAGETABLE_ENTRIES because,
> +     * even for the p2m root page table (which is a 16 KB page allocated as
> +     * four 4 KB pages), calc_offset() guarantees that the page-table index
> +     * will always fall within the range [0, 511].
> +     */
> +    ASSERT(ctx && ctx->index < PAGETABLE_ENTRIES);
>  
> -    return rc;
> +    /*
> +     * At the moment, p2m_get_root_pointer() returns one of four possible p2m
> +     * root pages, so there is no need to search for the correct ->pt_page
> +     * here.
> +     * Non-root page tables are 4 KB pages, so simply using ->pt_page is
> +     * sufficient.
> +     */
> +    md_pg = &ctx->pt_page->v.md.pg;
> +
> +    if ( !*md_pg && (t >= p2m_first_external) )
> +    {
> +        BUG_ON(ctx->level > P2M_MAX_SUPPORTED_LEVEL_MAPPING);

With this, ...

> +        if ( ctx->level <= P2M_MAX_SUPPORTED_LEVEL_MAPPING )

... this isn't needed (dead code). Things would be different with ASSERT().

Also, isn't this a requirement independent of P2M type? In which case it should
be moved out of the if()? Yet then, further code in the function (including in
the body of this if()) doesn't look to be using ->level. Then why the check?

> @@ -477,7 +580,14 @@ static void p2m_set_permission(pte_t *e, p2m_type_t t)
>      }
>  }
>  
> -static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
> +/*
> + * If p2m_pte_from_mfn() is called with p2m_pte_ctx = NULL,
> + * it means the function is working with a page table for which the `t`
> + * should not be applicable. Otherwise, the function is handling a leaf PTE
> + * for which `t` is applicable.
> + */
> +static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t,
> +                              struct p2m_pte_ctx *p2m_pte_ctx)

Name the parameter just "ctx", as you have it elsewhere?

> @@ -679,12 +804,14 @@ static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg)
>  
>  /* Free pte sub-tree behind an entry */
>  static void p2m_free_subtree(struct p2m_domain *p2m,
> -                             pte_t entry, unsigned int level)
> +                             pte_t entry,
> +                             const struct p2m_pte_ctx *p2m_pte_ctx)

Same question here then.

> @@ -756,6 +891,10 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
>      unsigned int next_level = level - 1;
>      unsigned int level_order = P2M_LEVEL_ORDER(next_level);
>  
> +    struct p2m_pte_ctx p2m_pte_ctx;
> +    /* Init with p2m_invalid just to make compiler happy. */
> +    p2m_type_t old_type = p2m_invalid;
> +
>      /*
>       * This should only be called with target != level and the entry is
>       * a superpage.
> @@ -777,6 +916,24 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
>  
>      table = __map_domain_page(page);
>  
> +    p2m_pte_ctx.p2m = p2m;

To play safe and have all struct fields initialized (all others implicitly),
better make this the initializer of the variable? Then you could shorten ...

> +    if ( MASK_EXTR(entry->pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage )
> +    {
> +        p2m_pte_ctx.pt_page = tbl_pg;
> +        p2m_pte_ctx.index = offsets[level];
> +        /*
> +         * It doesn't really matter what is a value for a level as
> +         * p2m_get_type() doesn't need it, so it is initialized just in case.
> +         */
> +        p2m_pte_ctx.level = level;

... the comment here and really omit the assignment of .level.

> @@ -840,6 +1004,7 @@ static int p2m_set_entry(struct p2m_domain *p2m,
>       * are still allowed.
>       */
>      bool removing_mapping = mfn_eq(mfn, INVALID_MFN);
> +    struct p2m_pte_ctx tmp_ctx;
>      P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
>  
>      ASSERT(p2m_is_write_locked(p2m));
> @@ -882,6 +1047,8 @@ static int p2m_set_entry(struct p2m_domain *p2m,
>  
>      entry = table + offsets[level];
>  
> +    tmp_ctx.p2m = p2m;

Again better make this the variable's initializer?

> @@ -970,7 +1147,9 @@ static int p2m_set_entry(struct p2m_domain *p2m,
>      if ( pte_is_valid(orig_pte) &&
>           (!pte_is_valid(*entry) ||
>            !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte))) )
> -        p2m_free_subtree(p2m, orig_pte, level);
> +    {
> +        p2m_free_subtree(p2m, orig_pte, &tmp_ctx);
> +    }

Why braces all of the sudden?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 13:22:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 13:22:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189596.1510335 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWDxR-0006lY-CE; Thu, 18 Dec 2025 13:22:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189596.1510335; Thu, 18 Dec 2025 13:22:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWDxR-0006lR-9Y; Thu, 18 Dec 2025 13:22:17 +0000
Received: by outflank-mailman (input) for mailman id 1189596;
 Thu, 18 Dec 2025 13:22:15 +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 <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWDxP-0006lL-L8
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 13:22:15 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 90760970-dc14-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 14:22:13 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-47775fb6c56so4901925e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 05:22:13 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43244934b09sm5011801f8f.9.2025.12.18.05.22.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 05:22:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 90760970-dc14-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766064132; x=1766668932; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Bkn5yEKSdWPT5aiSsTMUXHomEEXPhM7hr7Hp5oy5o2E=;
        b=WnGd+5RctZ5d+UZkXuQJ8Wg8AK9dGcVpJRIs1SYFzv8jC2jxblVfsMcWkH/rg6O11C
         MJgb6qVAQAnLERy2HKfbT2ImP8RhQtVWfCTrVkSrBrHY21Ib0LsBir9sp37qzNxa6lkt
         du35vxXcJsw1FiHlJ2rGrEAFLFPZaYZcUQvOKWBLJ4VvwdLHe+squ5XSwnKmdzCFyrct
         pTM9IZz6flvf4FCN+rMGeYKXi+lLO21TFaEFzgTa1ncsQV6nHyX5iGWevKSpEozgdo7Y
         rZwcdqqbQcYgbvmYoImLTeffNYnsCCfHycO5fHJ5NnbdAtU9lOTbT68bR7nhUuDrvdCz
         E9IQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766064132; x=1766668932;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Bkn5yEKSdWPT5aiSsTMUXHomEEXPhM7hr7Hp5oy5o2E=;
        b=vi2DaWeojVkxyaARBzo6D+yCfKJMDmR2Lo+o8BHPzZbwgdEuFbcuEbwrWjreoKvK6r
         iYizClUreNfBG5xd6oTWsQ/quhNoAp+cOVE8T3+4du/Troaj2aKEg/X8PU0MJK+Ujh6y
         +CFPGNGNmrNrndPnqgCbMNDfda1RTsDKrrx3QJhkV9vQjNpPwqwOvtHf0rwwWbHRHDVJ
         Fn3HHV9djOPbv5yfL/Aee3Gzpeen2pS2Fpdb1dWNi1AZ/HMrj+81C44jvIFf88Rtu/pn
         oZR5pGiyAbzQZ1ikqkeYPailMXsMcRPXWAGXgxPr+4AaVEx4ecptxPab/h08+o3t3gmS
         CGnQ==
X-Forwarded-Encrypted: i=1; AJvYcCW70u5hA5dM7zb3DgKNRlrgY0uyQHjXZte6fzjv+bc2tDd/uZE8dI9GCSUeo3Xn/P36SnUtk4AJIfg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyzvR8gji9UiNdVjH/KhBg0meuFVRhIkJ/nr/ABvVtZ8r9WLOJf
	1VV9vuNwxiF9m3QmFEEMzOUuKrWYH1g8c103xiQfkHolvqCHMgnGe6phaYma+P4oKg==
X-Gm-Gg: AY/fxX79G+E2TY2bf74+NBl9+jUT1YTXlz9NWNUXeLxzU/H6gW9bbJxZiKpntdHn0v6
	8ymAAFrVUqGEpGCe7d1kOT+9NF3AyQE+DdnQBA48h+h9QiZaLcJdJD1X5C+uBfjU1dAPb/0uIEs
	hP1CBt8pkLvsfqw45WW6OXzM7zHXyIzBDUWZpZrArPUT1RO7olKkpyQOrBsNqISmpoFLcc5M4u/
	12WaXnHjTo5ipSt4icrpR4qdZEhFy4MktlYmubr2IIx8wj/3A2G/ma/TwF06UdBQFflP87Gmdjq
	VF7E4T0rlBtmfzbJfG7U/Whf+XuUAiybGsQvzzBGNrk2qWwWxPs4b2UZHI1Fpk3jvPmYJkPCHfa
	KQa6N3e1zcLSdd8TUkNivhAE1kiiQe/Zih1WFiRTPvfQaMO/uBHktEg+laYvEz+IHjvTCDGQpJ2
	akgN5dmjaNWNMFszAz5MIBRiWBY9ewot0G50prOsyAknWJtEMU/q538reGRYYdSdfQBhJkatngA
	tg=
X-Google-Smtp-Source: AGHT+IGaVU2rUvaE6EpE4FhpBEVEzVw1Wx9WGgRsdodAnHMlk7dGwc5aLHvI6lgrevT66IAWiEJF3w==
X-Received: by 2002:a05:600c:4f4f:b0:477:5b0a:e616 with SMTP id 5b1f17b1804b1-47a8f8aaf45mr274132495e9.5.1766064132525;
        Thu, 18 Dec 2025 05:22:12 -0800 (PST)
Message-ID: <a0d64b79-f66c-4149-bd71-ae2f22629ac0@suse.com>
Date: Thu, 18 Dec 2025 14:22:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 19/19] xen/riscv: update p2m_set_entry to free unused
 metadata pages
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
 <4274ff86c3b7233c03d72faf8989991094a7630a.1765879052.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <4274ff86c3b7233c03d72faf8989991094a7630a.1765879052.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.12.2025 17:55, Oleksii Kurochko wrote:
> Introduce tracking of metadata page entries usage and if all of them are
> p2m_invalid then free them.
> 
> Intermediate P2M page tables are allocated with MEMF_no_owner, so we are free
> to repurpose struct page_info fields for them. Since page_info.u.* is not
> used for such pages, introduce a used_entries counter in struct page_info
> to track how many metadata entries are in use for a given intermediate P2M
> page table.
> 
> The counter is updated in p2m_set_type() when metadata entries transition
> between p2m_invalid and a valid external type. When the last metadata entry
> is cleared (used_entries == 0), the associated metadata page is freed and
> returned to the P2M pool.
> 
> Refactor metadata page freeing into a new helper, p2m_free_metadata_page(),
> as the same logic is needed both when tearing down a P2M table and when
> all metadata entries become p2m_invalid in p2m_set_type(). As part of this
> refactoring, move the declaration of p2m_free_page() earlier to satisfy the
> new helper.
> 
> Additionally, implement page_set_tlbflush_timestamp() for RISC-V instead of
> BUGing, as it is invoked when returning memory to the domheap.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Thu Dec 18 13:41:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 13:41:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189620.1510345 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWEFd-0001GI-1D; Thu, 18 Dec 2025 13:41:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189620.1510345; Thu, 18 Dec 2025 13:41:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWEFc-0001GB-UL; Thu, 18 Dec 2025 13:41:04 +0000
Received: by outflank-mailman (input) for mailman id 1189620;
 Thu, 18 Dec 2025 13:41:03 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1vWEFb-0001G4-QG
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 13:41:03 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vWEFb-00FzwZ-0R;
 Thu, 18 Dec 2025 13:41:03 +0000
Received: from [2a01:cb15:80df:da00:905c:b08:ead3:d4cf] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vWEFb-000yon-0M;
 Thu, 18 Dec 2025 13:41:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=UZcmQmbqlTxqqpYrOiuw1JYWA+2Tc+SJFDYxInq5FPc=; b=Be6++uqaa4hfs7UVvpaax6bYIr
	uXCrnI/7Qcpn2a40Ra7sHw7FQ+CX6Eoy2+i4KBRbxYxnInvfdhwxU6tSi7PCleQ2UtQpvC4oTGTab
	9lHZwMOGy8hIEa2kFHOg1LBcKb2vsME1IkZOswnBvuK1S1Y6EiPbuVTa3jDUWAqVA+XU=;
Date: Thu, 18 Dec 2025 14:41:01 +0100
From: Anthony PERARD <anthony@xenproject.org>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] tools/fuzz: use vpath uniformly for access to hypervisor
 library code
Message-ID: <aUQEbVRCXxzXJxJk@l14>
References: <0cdf924a-2e9b-4997-a01d-6d8b2f711104@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <0cdf924a-2e9b-4997-a01d-6d8b2f711104@suse.com>

On Tue, Dec 16, 2025 at 04:34:31PM +0100, Jan Beulich wrote:
> It's not quite clear why for libelf and the emulator we use symlink-ing,
> while elsewhere we use vpath. Do so for these two as well, thus also
> eliminating the need for custom -iquote options and custom cleaning.

It was an attempt to rework the "tools/" makefiles to be non-recursive,
via the use of subdirmk. `vpath` wouldn't have worked in that
configuration as stated in the commit introducing the symlink.
But I never managed to finish this conversion.

Cheers,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 13:52:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 13:52:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189639.1510355 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWEQP-0002yl-1g; Thu, 18 Dec 2025 13:52:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189639.1510355; Thu, 18 Dec 2025 13:52:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWEQO-0002ye-UI; Thu, 18 Dec 2025 13:52:12 +0000
Received: by outflank-mailman (input) for mailman id 1189639;
 Thu, 18 Dec 2025 13:52:11 +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 <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWEQN-0002yY-JC
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 13:52:11 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bb389da9-dc18-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 14:52:02 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-42fbc544b09so427472f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 05:52:02 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324493fd73sm5154331f8f.13.2025.12.18.05.52.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 05:52:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb389da9-dc18-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766065922; x=1766670722; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8KQEzeDMBB4G5Mt9Ktn5ugA5PE7RnTwgZmI3MUCJ24s=;
        b=UJIQRq8i+AWUfML86FEr072oEDiLr5FpJnB5yac4REvICcd/j8eo5OO7ziACF183xF
         rRORkj56lbr8YfIo2Ot84myJl4c6dmVIygYVyqYSzW3lfRakhobS0yikNvv+7MS/bTZ9
         uJT+J+0KLVtqd1Wi9zGWT1an16PjPQ3F7pcaE1oumFPKNC5rMZBR7O3h/oxBKG/qyv+8
         xMwPpmOrVeStJcUIAcoxyXn8lkuDSM+kCT3aorUD3HeTQF92xuv4A2bJmnEPnFrYVWMY
         mI0W7n+ZUuxpyuLAxpGwxd5vMQiz6bWfNzOvv6fcm0hhqFkMzoOtkVZI7kPkYS9zxkkd
         aekQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766065922; x=1766670722;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8KQEzeDMBB4G5Mt9Ktn5ugA5PE7RnTwgZmI3MUCJ24s=;
        b=sah0zVhMi858bphFBUPUFk1YGdTBOlHYwlUDu2JNJSaj/FUf2sd+113Ds1eDy/FHps
         A5btRScMfDP2UCCkrjz/FJjpCE5T/JlRzQDDLDkhX1yYAp5bAYMt3xIfnduKegsFvJHs
         zemt9iPMK1yEjHh7gFKukUaokdE9oHvO/S7CPFFBYY5Btbs6WmLa41bHJMZHkVUxvh1z
         x8WkdODgf72AOKipQK67U8y+jg2sjEpvv6Fgnefn7/an8PD3pfkjSQ4BIY3RrtUKJxC/
         WWgHdnUAERkD/INTLmJd8xRKhcvyHr/0PV4dRxXFX4wsEuJIyG2IrMus7vBq3mixVlt9
         6QEQ==
X-Forwarded-Encrypted: i=1; AJvYcCXRvcp/WQPTVLth5+FXQTMFtlQdQx8kLv7zawnjPcr1O9Wk8GEfo29qWLihEpLFUdPoa8iE0lK3RZA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDxNR0B4qOvvzkltSUtCC+B+v+CZbkB0T6fNdw2YL5HyoEjDVJ
	HzrsH7CY17zpHro1NaKx9AO9sAUovAMkPi6YixZdcgpIZcIJCLyGcuTRkR2ps+rr5g==
X-Gm-Gg: AY/fxX4RGflgFdwhrohjvMhqcNCcvTDxO0AeFPvyNOOVDJNiJkLQTdIt5KaBL6MfWbo
	vucsSbKPuc5MGdRjd0sLRbYUGSX2L5qwZ/EF4KrDP+OyKSSZg5XKr2FIFohDXJuEf+gm5dZLaNk
	sIVQJemQr9FgGzjpBhEJP5ezWuOZ3glKc8qzhoF8HAhVuB2Tgag+eIVVnekGRX6pFF9wWdElRaQ
	Pf9AngiFveyW9EBhFdjf7VbuPUXmfNbpFFc558DxebLjJ9GpJb3pqooE+wB9KiWrwJ6pf6h3iM8
	hF2CezJOliYp+szEGdvCQfZPAGN0hBXduhHS0NAY5ASQQtkFTaShPXcnqNYhOZfqxFPj3+pFjT7
	NyDH9erJ73bl+4lBY5dggmykFckM60ZYR8RzyvOTYIp391loyDRB0RmaT8kkotnwdlI5rOs+4tP
	3X1nQ1KxH7pBiQUJV5QhUgjEqgLDEhPdO3WNtcpqZYZH3OXYaZX5TNu7JE1kQgXJ0etm2IelVI8
	nQ=
X-Google-Smtp-Source: AGHT+IG4SJ+CatxaCIUEG95Hw0jTP0pfOx5/SlNwLmuvpU2MkAkOqxUbR85bjLUU/IM+LMlxmUnmVw==
X-Received: by 2002:a05:6000:2486:b0:431:8f8:7f2b with SMTP id ffacd0b85a97d-43108f880f1mr8685967f8f.37.1766065922200;
        Thu, 18 Dec 2025 05:52:02 -0800 (PST)
Message-ID: <870f4a16-eda3-48ae-9d67-f496cf6493b1@suse.com>
Date: Thu, 18 Dec 2025 14:52:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] xen/riscv: introduce vSBI extension framework
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1765888425.git.oleksii.kurochko@gmail.com>
 <dc1045d1831908678a1e4a79571adab2ab362ef6.1765888425.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <dc1045d1831908678a1e4a79571adab2ab362ef6.1765888425.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.12.2025 17:54, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/arch/riscv/vsbi/core.c
> @@ -0,0 +1,56 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/sched.h>
> +
> +#include <asm/processor.h>
> +#include <asm/sbi.h>
> +#include <asm/vsbi.h>
> +
> +extern const struct vsbi_ext _svsbi_exts[], _evsbi_exts[];
> +
> +void __init check_vsbi_ext_ranges(void)
> +{
> +    for ( const struct vsbi_ext *a = _svsbi_exts; a != _evsbi_exts; a++ )
> +        for ( const struct vsbi_ext *b = a + 1; b != _evsbi_exts; b++ )

Like here, ...

> +            if ( !(a->eid_end < b->eid_start || b->eid_end < a->eid_start) )
> +                panic("EID range overlap detected: "
> +                      "%s:[#%#lx..#%#lx] vs %s:[#%#lx..#%#lx]\n",
> +                      a->name, a->eid_start, a->eid_end,
> +                      b->name, b->eid_start, b->eid_end);
> +}
> +
> +const struct vsbi_ext *vsbi_find_extension(unsigned long eid)
> +{
> +    const struct vsbi_ext *ext;
> +
> +    for ( ext = _svsbi_exts; ext != _evsbi_exts; ext++ )

... declare "ext" inside the for()?

> +        if ( (eid >= ext->eid_start) && (eid <= ext->eid_end) )
> +            return ext;
> +
> +    return NULL;
> +}
> +
> +void vsbi_handle_ecall(struct vcpu *vcpu, struct cpu_user_regs *regs)
> +{
> +    const unsigned long eid = regs->a7;
> +    const unsigned long fid = regs->a6;
> +    const struct vsbi_ext *ext = vsbi_find_extension(eid);
> +    int ret;
> +
> +    if ( ext )
> +        ret = ext->handler(vcpu, eid, fid, regs);
> +    else
> +    {
> +        printk("Unsupported Guest SBI EID #%#lx, FID #%lu\n", eid, regs->a1);

As before - anything guest triggered must not cause log spam issues.
Minimally you want to use XENLOG_GUEST in such cases, but I think you
really mean gprintk() here.

A connected question then arises: Why is "vcpu" being passed in, when
the sole caller only ever passes "current"? (The connection here is
that gprintk() also uses current, and hence would be wrong to use when
vcpu != current.) Same question goes for the ->handler() hook.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 13:58:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 13:58:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189655.1510364 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWEWm-0003hr-Q2; Thu, 18 Dec 2025 13:58:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189655.1510364; Thu, 18 Dec 2025 13:58:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWEWm-0003hk-My; Thu, 18 Dec 2025 13:58:48 +0000
Received: by outflank-mailman (input) for mailman id 1189655;
 Thu, 18 Dec 2025 13:58:47 +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 <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWEWl-0003hd-Tw
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 13:58:47 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id abda7b77-dc19-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 14:58:46 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-477a2ab455fso6613795e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 05:58:46 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-432449346c9sm4996917f8f.5.2025.12.18.05.58.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 05:58:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: abda7b77-dc19-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766066326; x=1766671126; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XikDTTl3jt4xfjLfAYt/47969CSl/TLXYmDCZNjFwOk=;
        b=C3s0vnDRMMBZpwU0DeeEgt52ts7a16HX1TofP9cOJN4hI/V8JDrQ20BefHaVVw5vSj
         5sH0/O44Bbx7cOP4CeLvVu2ir7vlBkvN0lIwZLYMw0d+Jr7AqnZPzTfUt23FFLhzFFXr
         1rTEu+3yulbgn3xn14pXAksjC85i43cGaln79tErbSfdJv0EHt8fah6s9Syy/m8sqvH1
         kRISTUUUiBVvR+EBngjSFpcQJkFFt6oFdwj2ZBqx+6CFLdBPBGxGJdj9TMBA/HCW5X7N
         /9Z80KkMKBZKPpOv+B9afDvr4OcP8xrxyETGeTpYzoiOC2CiS4xOBI3+iQW63qc3Apla
         x6BA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766066326; x=1766671126;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XikDTTl3jt4xfjLfAYt/47969CSl/TLXYmDCZNjFwOk=;
        b=fdcHQ1G9BbXQ46eHytLxcPQqJsGlJBtYFyxfsaSa/VpXtnxyUXC1JDNnHu7Xh7+W+x
         82WffvLXOSSWnq9UQ8VlZ97DlHoXzGtRRP56Db13yfMfoOhdhiCZ2KyI76eTnuZZIEYP
         Ny5S/hFrOAJ9RjeOoCmCYZKdLweU/tQFHj1j6M7poRJiRlOi5kJ1r677mbLCgrbyAw7Q
         PFhssIyWeycROQR/xGvBKD3ZqhvePkQfIqH36lOmp9VP2D+HTy0RWpTAYlQqk1+4pEyn
         kPePrLiK//AXEUcZidNJnTD5G6T80XHcGBJLuof5hgcrYXuQHDKTtbsnSVRMgcCxj+6t
         VHgQ==
X-Forwarded-Encrypted: i=1; AJvYcCVTmtFu712+6dNhoatnGlXEepjXemLLBP75zY5it8ramhBpvjIaqM9WKd02KUJQaqf8saDRMYZihQI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxOojTRAU0SpTEbdjnLKd6/5/llXDcicA5yHSr74AxzCJKbl21H
	f9DXjbcWz6kPlNNGcb3zHSCMVsgKqk3AGbXsy1f5aiuzj1Hp1OCD2P1HZuN83Cxt/w==
X-Gm-Gg: AY/fxX6z9Km+oJL7XVKju68LrfUpUsQqsFjkdgeoBXfLSHuAFOwAiBqVKr0Yj2+iPri
	k2TcatiD/dCtSKD6fJU9B4ySlj48OLEusnwWfCllzJk0ca3u0L0oofxNaD4c9YnyTD4gKR2CqUg
	+Ua9NTtfdPydpVvkGDNHwl/iwD6o2m3iEW2w7oPp3niDOThW+PeXEkFK3Pw39UWuLiLv0mdJScm
	lQ6P9wUqME9UDfcyu6D6f9PAyxN0qMLv5Qk0vrU1DJyxgGgTal3I/AXxdCMxHL9eEgxMcHmnApo
	LVd7cdTy9+G9qzYV8T0ptGOq3CAmrWvC4/d7m/ikXYa2tvrhgtzBCu4jLXiLHokc1c06H+r6gM5
	yd1azpY06x6uTr5NMZF9ChzgK+57njLlwpR3T2yDYyeKt8axxJnL/oWdYqbpgw20wwfrSvHc7uj
	23K+wIthNAcJo7MkolczttSSZBopR0coNdFGVw4hfs607uvTa/3pwMFVYxiRljktYQIvAUp1kJu
	i4=
X-Google-Smtp-Source: AGHT+IFhij8fG6ujpD+tGti8zBJOPiR0taVYZKolyqseZaLlez0SRVhXB/Wo+kFSFdInrUDqGOozFA==
X-Received: by 2002:a05:6000:438a:b0:430:fa52:9eaf with SMTP id ffacd0b85a97d-430fa52a19emr16775212f8f.60.1766066325776;
        Thu, 18 Dec 2025 05:58:45 -0800 (PST)
Message-ID: <935d4342-aff0-4ba5-b23b-b281e2427ffb@suse.com>
Date: Thu, 18 Dec 2025 14:58:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 05/19] xen/riscv: add root page table allocation
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
 <0c85ea3e9e00ee1f00d6e143a15f118d714d128f.1765879052.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <0c85ea3e9e00ee1f00d6e143a15f118d714d128f.1765879052.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.12.2025 17:55, Oleksii Kurochko wrote:
> @@ -30,6 +34,11 @@ struct p2m_domain {
>      /* Pages used to construct the p2m */
>      struct page_list_head pages;
>  
> +    /* The root of the p2m tree. May be concatenated */
> +    struct page_info *root;
> +
> +    struct gstage_mode_desc mode;

Why would this need a copy (instance) of the struct? Can't this be a
(const) pointer into the static array that currently is local to
gstage_mode_detect()? Similarly there max_gstage_mode could be a pointer
rather than a separate instance of the struct.

Yes, there is a connection to ...

> @@ -124,6 +193,24 @@ int p2m_init(struct domain *d)
>      rwlock_init(&p2m->lock);
>      INIT_PAGE_LIST_HEAD(&p2m->pages);
>  
> +    /*
> +     * Currently, the infrastructure required to enable CONFIG_HAS_PASSTHROUGH
> +     * is not ready for RISC-V support.
> +     *
> +     * When CONFIG_HAS_PASSTHROUGH=y, p2m->clean_dcache must be properly
> +     * initialized.
> +     * At the moment, it defaults to false because the p2m structure is
> +     * zero-initialized.
> +     */
> +#ifdef CONFIG_HAS_PASSTHROUGH
> +#   error "Add init of p2m->clean_dcache"
> +#endif
> +
> +    /* TODO: don't hardcode used for a domain g-stage mode. */
> +    p2m->mode.mode = HGATP_MODE_SV39X4;
> +    p2m->mode.paging_levels = 2;
> +    safe_strcpy(p2m->mode.name, "Sv39x4");

... this TODO, but surely this code could similarly be made reference the
(then) global array.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 13:59:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 13:59:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189661.1510375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWEXX-0004Ab-2Z; Thu, 18 Dec 2025 13:59:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189661.1510375; Thu, 18 Dec 2025 13:59:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWEXW-0004AS-Vr; Thu, 18 Dec 2025 13:59:34 +0000
Received: by outflank-mailman (input) for mailman id 1189661;
 Thu, 18 Dec 2025 13:59:33 +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
 <SRS0=Ars1=6Y=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vWEXV-0004AG-An
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 13:59:33 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c6db321f-dc19-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 14:59:32 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DB4PR03MB8636.eurprd03.prod.outlook.com (2603:10a6:10:384::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.8; Thu, 18 Dec
 2025 13:59:27 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9434.001; Thu, 18 Dec 2025
 13:59:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c6db321f-dc19-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WZCfTHm9wqbsP5SBNBHhvHBD5yy40yun3e/CWlKtvb2JueXQbHCy5uv2Fb6xbTNjTTfxbJzx6iM3b7FPuUsj+PCf8YsnA3ZkKzhRvqYokDvgt2fLXH/9DcudXFi1oTQQKiW0dx8deujKG/Ppmklo3GWYpoQ0Ft3+T4JX8g1pSJoH7kY//aS4CEB9g7r2XKrf/fGXHPZBIQsJuJXcDqHoSdUHqUO9SBM3bwxm1lpsO9EyGJiXQxSEU0O06l6TNAL19UDsu8WSDhena2J7qt+6IaRuhlzEzwQJjNdOqoLeWTyqjDWbDi1xMVMneQZBzSoE/YrN2dT7fm8Wkihsum6NWA==
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=TFm3M+mMByM2ZZw/2CH2vq5yIGQgqFJh9XCbD62b1P0=;
 b=vHxt4Y/39hnjlqxtzgjAS4318wt5EPO5VHWYtDq8gMG5+0uNYzo6i3/Mkjb4zY6C8CpIXg+xu4IlmK/fJzj9lleu4zoqjkzUoI7SqKCHw6WDFv8+cIBD5vpmzTnGhbXaJWWiIjCBOncQWwds6nv0SLcFy6EWYqlDpOuw+BbFZB9nhCnkKYt1O+DQ/euVt9i6g6fSTCW986DSDzeSFzTSFXih8aAfD2abGrDfxUDimXRyc8r6xGfM2TwyibZZ420pGBfFZ038F7r44d8bivzzyGMdmsfE1U8rm1yOlZgh2eZ14eDt+dvTPb8rtCplVMKhZsgXgs8IH+Wui+5R44SNaQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TFm3M+mMByM2ZZw/2CH2vq5yIGQgqFJh9XCbD62b1P0=;
 b=bWCIl4y+4mV4mISdg2a0Wloo32+kiXucu/itwFpS9svgrkOaqK7ClHbtSHl1qHiThIH5y2+fngVGiDDYeWAJADUUFfa9qeHRWdAkc3CPssheJ86ZNeeKoeKKD1x9wKkQRmCJAoLA4aeew55GKw/mAiZY1m5v4pf6HIwju6rkoCdBnbR9uSzWWbxJir32Hd2tqHIZSr9NZv8PvCWwwtzCuufmeSlOr/csOOzjP6bEoVq95SJTogTDm/zMKaH4G10Pz1L4xUSdOfgdij4vzutck5Tib+IwwpHYaUt2vnKIDDyPeS6orln3p9EmEqx11DBubjdmeG6YE2awpCPJWylUPA==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>, Alejandro
 Vallejo <alejandro.garciavallejo@amd.com>
Subject: [XEN][PATCH v5] xen/x86: guest_access: optimize raw_x_guest() for PV
 and HVM combinations
Thread-Topic: [XEN][PATCH v5] xen/x86: guest_access: optimize raw_x_guest()
 for PV and HVM combinations
Thread-Index: AQHccCaGGjfW0AbI9km2iXEE38VlUA==
Date: Thu, 18 Dec 2025 13:59:27 +0000
Message-ID: <20251218135926.188059-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM0PR03MB4594:EE_|DB4PR03MB8636:EE_
x-ms-office365-filtering-correlation-id: e50bfec5-e808-47dc-d340-08de3e3da897
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?/VtG53qQn73qXu8ta7aOlIBoxcpDzXK7dTyhovK739U+DAhALWnNWE+v91?=
 =?iso-8859-1?Q?Bw3aSKcu/u31GSIqfRp2xUhDw0O5SC6GQ2Urs2a0oDlVSl0IMXDb451Bc7?=
 =?iso-8859-1?Q?U5eVY1SOWMP/2TzFf55xfDT8riQudjQxbbQqJWvoyf8sic1U6tFuEpVUnj?=
 =?iso-8859-1?Q?B+Gmyphd8Ryml/5XD1WCJfArECMOuvmkTed6bvWWEstoXJ6MR6Eu92iIsS?=
 =?iso-8859-1?Q?EwWtQu+717Z39ml1XdFIqXQ6JT1AYGVTroElUFsCAIaP+i9X0USWthyfUv?=
 =?iso-8859-1?Q?GMWvaXrTNyeZRYXX+YtZ2fBF78EJIAC9RiIfdefs+cFEWcqcWlsiNIS4zp?=
 =?iso-8859-1?Q?kV/gGn1hTD9dmSfLrBKPL+Ws1xL8XxIGz2D0nPcl1w7bI9GWj7yoTfpleO?=
 =?iso-8859-1?Q?4y5i8QksI/hRezDpnFyM8lwMH8LbAqa24p8qXE9w0SDgh3sidDXOv2sarL?=
 =?iso-8859-1?Q?5QKqArIgT45jMDe4yc7UyZ4bxDKUNDlIuyFxRmcF3GvRDXa3EAuksprHlS?=
 =?iso-8859-1?Q?s411DiftnMBeLah5FAI7VjyZiZdS5KBaNdTHmw4ocGeXHtv7JrBoBvguNV?=
 =?iso-8859-1?Q?vHdE71caKO2JbS1g/MLI4K5tyk5S5TT48jj1cdiQAcCcTkJpHjY/9EqYy7?=
 =?iso-8859-1?Q?dGBBZ14BFd+mdIpB7SmXq8ongj4fpEqnnhz7xTdecek993MjpjY7eJhxvm?=
 =?iso-8859-1?Q?FIMyU3mzOuhqxwY0YwXORazm4pNpnQNX65AOD5dVPWVM5Y/BwMQhEaxTvd?=
 =?iso-8859-1?Q?EQMYQ9SeC+Bc8ZIwk5YSoqluvUHve8G65t2DUV3twEM3PPJani9EVm7zeo?=
 =?iso-8859-1?Q?WltzBB3G5u5frK+KkPC1/lWDwj95EJONdZPIHFU4i4ibEWPIsRAkuHE3Qv?=
 =?iso-8859-1?Q?oNHIVwFmyE61fFrK4UYA8g/cBz7WPZ58rKiA+Y/pS32DyxgkhheO8r648t?=
 =?iso-8859-1?Q?Ol5/0UdFnMbn5q0ESGB2iwHy24X10rlIjRCVLoE2+S273RwBL/IPH6mx4n?=
 =?iso-8859-1?Q?1eeKZemCcs7Pwywy5zGQ/NpwR1XK6kmISB/CRn/UAnteGnhOq+vqU4UpiG?=
 =?iso-8859-1?Q?Ap2PaA3PQh9DvOV1zTfl9IPJ1FRJzoIwaEh1V9+gO+7EIJwfNVoPbrYMGf?=
 =?iso-8859-1?Q?ufEfvtNUy2tMyVyMkyPUVRifEBvNDq+cywlrd+VGYUer2zFEDaQbObPiYM?=
 =?iso-8859-1?Q?4vefdiqwFqEbQUu4EorCEVyjAlvYHnLmbzQ8/yjDh3uNZr/Yy7cudKE8uf?=
 =?iso-8859-1?Q?8lkoHHLqK+UGDzvaSH95lvW4i3frHYF1d5uWZmqyeQ+0zIRll/uZSIA9Vm?=
 =?iso-8859-1?Q?lf1HmtG3PJOhSTHGHoEzOUi6F5jX7rKXVjz8uNDEtWbWvsXTNMmfULovxq?=
 =?iso-8859-1?Q?O0sjPqvaoA9mNxwf0GsD6l9Y18s93hp3LMEJjIPylaAz/vLcrwULJk8AXp?=
 =?iso-8859-1?Q?gTccTMVHVzKcdWrVu9vED2QJuKA0kFdXCRrSLBvZxMzGbX2ERxoHRMWXco?=
 =?iso-8859-1?Q?enDTLTPtDDBfV+GcwFbAjhe8xGUY8XzZ6zgNN5SRc9kUDOFLRWs0N8Ig1A?=
 =?iso-8859-1?Q?XQvzlSGbfeOnfKrqZUSVdYWgsm8k?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?yrpQM1DwLjpDV1oNFWChzGRDT3viba33gHmxCndE26f6gCk4DreyrQCMAa?=
 =?iso-8859-1?Q?U34q33UCAI/G3sA1A2IxoIE6VFAlTUm4Tjqva/X7mxMM19q6IOLgXgvOeE?=
 =?iso-8859-1?Q?ggiZsoPDur9q9iK9HOpLjIPy/zBCTh+kDo+qUCyJ9MddwTwYH59n5+gMQ6?=
 =?iso-8859-1?Q?tOwnmI5yAz1rSOnP+LrOmEUfpDWWdoeT+/EIHYBAN4J+9EP7Uk+kxRfsb0?=
 =?iso-8859-1?Q?MYYPwKFPF2v66sbJMJ0RBk3LHvOFyH4Sem2N1ayZdSpyMU21y0pwcuoi3T?=
 =?iso-8859-1?Q?yurZtrxn8JMaeiFkJYmrFecC0BDnMqH3OUFxOhs4cL/jzpe+ykscxJ2REn?=
 =?iso-8859-1?Q?WGmZX/1y67XZzleAeDR/eDPIWaSlnTbfh6nTOhsQXP1hA6zebtohf/Jdit?=
 =?iso-8859-1?Q?c2ovoZZYAlCkBA7xyUSGLJH857mmi/hNTdV/YhDQnZE5xZsyjb0PyjHUFR?=
 =?iso-8859-1?Q?N+KzXL3edimEeBuafgNq7e+0pgAIcIIXLd4TaQx+HTUDMQ5ZZ7kQuM08Uo?=
 =?iso-8859-1?Q?EtiRpLodzModrgxOKgehpJn/MxJDjKP411W4JZ4iwv2JAelAE9976/86hW?=
 =?iso-8859-1?Q?nBWLcPmny6za2MTkCHrsNVx0EuW0GqYoXwXVk/60IIpkcLKHyc935XnDC8?=
 =?iso-8859-1?Q?DNiVu7bT5FO5J6S7RGXfqk67Cbtl/eSivy/tNHbNDmzk10nPjY7XCoA1/Q?=
 =?iso-8859-1?Q?++HDIwvnTCNyvqlhWPl1JkQlobQw/S5ifhnsmRDrvP8lYlo5+D015DwSSC?=
 =?iso-8859-1?Q?kGjVvR/ll4+TM1jKo10oZWdhm/12aLiszqLdVhthT+BcDmO1565iqr+5MX?=
 =?iso-8859-1?Q?WiULF1kxXP0IKV+I0CmRzW/pNwYpWKin5PHD41WkXgd292yfXlOWTon7NV?=
 =?iso-8859-1?Q?iyVaIadrY8PgSTpzcMJLgtjywdT39+TT7vIzmBMFxBsXMuKZRG86/cmG9A?=
 =?iso-8859-1?Q?WNpf+z5HhIOxOasSstqVbBwGP2IOTReTO6/moKEGInpbv3g2g7JFoZtxvt?=
 =?iso-8859-1?Q?+WM8pG5HW6pPTom7sEbL7vJ57CffOtH/pij528DArJ/yNKscnpmHhWYi6d?=
 =?iso-8859-1?Q?hj0enP9qHwZvFsaUuYqbiayPxnsxLuC3KFQXpB9BozaTajcu8PSdWDpqF2?=
 =?iso-8859-1?Q?iJpOt2Klgn/7NohwCOrWcoHDqI7ktV+IDpLVbggifpmLbE3dHRfJxTY3DK?=
 =?iso-8859-1?Q?Aw3AuX6itV0NeY4uwxEzmTue+pgeatAl6N0T29lNDS43ux9vJF6Kkhjdqp?=
 =?iso-8859-1?Q?m0X3Rup2CSQN/bC30PitERGt7pvob/+Otazt/dbynUZs45hBVn1NpGH3HN?=
 =?iso-8859-1?Q?Dko94OMSOw+X52Gsip8HThcxgNiWzb7CPj/Dr/fdKetUw7jbJkLXVf/dkv?=
 =?iso-8859-1?Q?GWx8bOpoBjZwhYKqeEI7XpkcCT5eTcbl86C/YDcgF2r6O3raAosAgKO2ZN?=
 =?iso-8859-1?Q?91DEGwWnaCz6iSRKezjgXr3M5VOqiCbkqpFv7z56hzkJexZG62YHLQNCFt?=
 =?iso-8859-1?Q?Bo0CAVvg6QWYwekrxgsrOGkEVV3G9YGTsRKDag/FIjo2LUzwFOGlcl3e+2?=
 =?iso-8859-1?Q?JefHuxwP2v9aVVZIlfc1nbS3iddjsgR/DgNwChN+6QBos9rHCgSKW+eUqs?=
 =?iso-8859-1?Q?etaYrh1lpKN0sarV0IiMiIlqUB260s9BJWIu2Xd0KHfOZLhRq70MuHIA?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e50bfec5-e808-47dc-d340-08de3e3da897
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Dec 2025 13:59:27.4913
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: T9Lc2Db+fkzDk5bxBjcdyMr+3QWtv236AVpepJ7z5GcZvL+JzQRkSCmKCG/+n+pI1SksiG1sSWKrfGWjEn3mi1LVw4rXN8Ed26rOENAufW4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR03MB8636

From: Grygorii Strashko <grygorii_strashko@epam.com>

Xen uses below pattern for raw_x_guest() functions:

define raw_copy_to_guest(dst, src, len)        \
    (is_hvm_vcpu(current) ?                     \
     copy_to_user_hvm((dst), (src), (len)) :    \
     copy_to_guest_pv(dst, src, len))

This pattern works depending on CONFIG_PV/CONFIG_HVM as:
- PV=3Dy and HVM=3Dy
  Proper guest access function is selected depending on domain type.
- PV=3Dy and HVM=3Dn
  Only PV domains are possible. is_hvm_domain/vcpu() will constify to "fals=
e"
  and compiler will optimize code and skip HVM specific part.
- PV=3Dn and HVM=3Dy
  Only HVM domains are possible. is_hvm_domain/vcpu() will not be constifie=
d.
  No PV specific code will be optimized by compiler.
- PV=3Dn and HVM=3Dn
  No guests should possible. The code will still follow PV path.

Rework raw_x_guest() code to use static inline functions which account for
above PV/HVM possible configurations with main intention to optimize code
for (PV=3Dn and HVM=3Dy) case.

For the case (PV=3Dn and HVM=3Dn) return "len" value indicating a failure (=
no
guests should be possible in this case, which means no access to guest
memory should ever happen).

The measured (bloat-o-meter) improvement for (PV=3Dn and HVM=3Dy) case is a=
bout -11K.

[teddy.astie@vates.tech: Suggested to use static inline functions vs
macro combinations]
Suggested-by: Teddy Astie <teddy.astie@vates.tech>
Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
changes in v5:
- rebase
- drop moving usercopy.c as it is not needed since commit 7370966d1cb7=20
  ("x86: move / split usercopy.c to / into arch-specific library")

changes in v4:
- move usercopy.c into arch/x86/pv/
- rework to always dynamically check for HVM vcpu(domain) by using is_hvm_v=
cpu()
  as requested by Jan Beulich

changes in v3:
- add raw_use_hvm_access() wrapper

changes in v2:
- use static inline functions instead of macro combinations

 xen/arch/x86/include/asm/guest_access.h | 78 ++++++++++++++++++-------
 1 file changed, 58 insertions(+), 20 deletions(-)

diff --git a/xen/arch/x86/include/asm/guest_access.h b/xen/arch/x86/include=
/asm/guest_access.h
index 69716c8b41bb..f0e56b112e14 100644
--- a/xen/arch/x86/include/asm/guest_access.h
+++ b/xen/arch/x86/include/asm/guest_access.h
@@ -13,26 +13,64 @@
 #include <asm/hvm/guest_access.h>
=20
 /* Raw access functions: no type checking. */
-#define raw_copy_to_guest(dst, src, len)        \
-    (is_hvm_vcpu(current) ?                     \
-     copy_to_user_hvm((dst), (src), (len)) :    \
-     copy_to_guest_pv(dst, src, len))
-#define raw_copy_from_guest(dst, src, len)      \
-    (is_hvm_vcpu(current) ?                     \
-     copy_from_user_hvm((dst), (src), (len)) :  \
-     copy_from_guest_pv(dst, src, len))
-#define raw_clear_guest(dst,  len)              \
-    (is_hvm_vcpu(current) ?                     \
-     clear_user_hvm((dst), (len)) :             \
-     clear_guest_pv(dst, len))
-#define __raw_copy_to_guest(dst, src, len)      \
-    (is_hvm_vcpu(current) ?                     \
-     copy_to_user_hvm((dst), (src), (len)) :    \
-     __copy_to_guest_pv(dst, src, len))
-#define __raw_copy_from_guest(dst, src, len)    \
-    (is_hvm_vcpu(current) ?                     \
-     copy_from_user_hvm((dst), (src), (len)) :  \
-     __copy_from_guest_pv(dst, src, len))
+static inline unsigned int raw_copy_to_guest(void *dst, const void *src,
+                                             unsigned int len)
+{
+    if ( is_hvm_vcpu(current) )
+        return copy_to_user_hvm(dst, src, len);
+
+    if ( !IS_ENABLED(CONFIG_PV) )
+        return len;
+
+    return copy_to_guest_pv(dst, src, len);
+}
+
+static inline unsigned int raw_copy_from_guest(void *dst, const void *src,
+                                               unsigned int len)
+{
+    if ( is_hvm_vcpu(current) )
+        return copy_from_user_hvm(dst, src, len);
+
+    if ( !IS_ENABLED(CONFIG_PV) )
+        return len;
+
+    return copy_from_guest_pv(dst, src, len);
+}
+
+static inline unsigned int raw_clear_guest(void *dst, unsigned int len)
+{
+    if ( is_hvm_vcpu(current) )
+        return clear_user_hvm(dst, len);
+
+    if ( !IS_ENABLED(CONFIG_PV) )
+        return len;
+
+    return clear_guest_pv(dst, len);
+}
+
+static inline unsigned int __raw_copy_to_guest(void *dst, const void *src,
+                                               unsigned int len)
+{
+    if ( is_hvm_vcpu(current) )
+        return copy_to_user_hvm(dst, src, len);
+
+    if ( !IS_ENABLED(CONFIG_PV) )
+        return len;
+
+    return __copy_to_guest_pv(dst, src, len);
+}
+
+static inline unsigned int __raw_copy_from_guest(void *dst, const void *sr=
c,
+                                                 unsigned int len)
+{
+    if ( is_hvm_vcpu(current) )
+        return copy_from_user_hvm(dst, src, len);
+
+    if ( !IS_ENABLED(CONFIG_PV) )
+        return len;
+
+    return __copy_from_guest_pv(dst, src, len);
+}
=20
 /*
  * Pre-validate a guest handle.
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 14:04:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 14:04:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189682.1510384 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWEbj-0005sK-Nl; Thu, 18 Dec 2025 14:03:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189682.1510384; Thu, 18 Dec 2025 14:03:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWEbj-0005sD-LD; Thu, 18 Dec 2025 14:03:55 +0000
Received: by outflank-mailman (input) for mailman id 1189682;
 Thu, 18 Dec 2025 14:03:54 +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 <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWEbi-0005s7-D5
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 14:03:54 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 629b08e4-dc1a-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 15:03:53 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-47d182a8c6cso10485e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 06:03:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47be395d9cfsm15304755e9.0.2025.12.18.06.03.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 06:03:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 629b08e4-dc1a-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766066632; x=1766671432; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=x41PlVoPoBnSuapMab1S8DcsdXZGFis3BzTh2EeyhfE=;
        b=hBjItQFsHSYeMXxhn6YcZVtutCLlC6fAg0GOHIRSi1GxYkNKD1c44KegMWy8JXGr3X
         oWaLpVI1wEt5CFeKAXeUep5WDIn47eHF1ZqZqTmyrrBWNU+0xETmVweUJcHpshaQd1b8
         IYMfLG0tGj1bemdu40r6r67cbnoIg+lzyxyLSs1ZmlMiu/eXZPqrtzHPULD6DsysrHPB
         7Wp08Ds80Zpq9xBN3E99JGMf+Lq+xri2iAPVE7laEAVhtWA/AUJ9sKhJnElVqb9v5zus
         9cZ0KLhQIXEfTPZ5yeJilyV4oZ8sAo7zkTPdkTOARZWKeG+oe8VVw+nIgue/TbCNtJsP
         YqoA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766066632; x=1766671432;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=x41PlVoPoBnSuapMab1S8DcsdXZGFis3BzTh2EeyhfE=;
        b=ld4Hsfb7n1AAet90DcPYt23VaKgnZjqtfaAU+Qymtv6qCcKWwyMP3e8iTGk4RgCNOz
         5w+BS1ll19SuWHCwtIX1G2+b8hxhZhvZrCJC9NZgTK03OQFVoyVNSMlbRcHSPttckh9y
         mV93/LFZr3PlmmsB67HJY13jVjUt7lXe2ArOHmpI6cPHNyZia+Tg2SNisod9HW8iNC+C
         qugeWPJ3TZpY/cTZ4Na7L/YKUAaS777tERbsaKI3IhSPNQjIW9lfypP3Eb20Qo5rT9CA
         +ofsc497TphGNJMH2P93bTWBhxMmL3h/ZSiGs49WPpWq+nexxpv83Dvo079ekFi/f2ri
         COqg==
X-Forwarded-Encrypted: i=1; AJvYcCUESrqSjLmUGHFpvAH+HY7OuEC1n3WVJN7Y5eU3gs7mOvrwqxgQ6v7LFcUXxhhiKe8eBt1Od/hTlvY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyK6p7XEzqxRpmdy8fFY2H92DHrfkAgH9Jye4JsQOT/ci+P+RnW
	m4LqSpL7cGrKK5tIQmPiq6Q/jUzPLNLgM3nPrnKdQa4cI6kL29yUnR6p714Le4C/Hg==
X-Gm-Gg: AY/fxX5L3nl6GW6y8VCSlzFrJSg7c8O31Sj5we2tMSyo3LJLnh3pGKGVfY1PLQX6k6Z
	yoCqFLfjjpYbCWrLQlxeP8juLDd9GuQe9PfYBtSfywHSSjbdkElQrr7tcaWIDDHeb7i7BB6Zya1
	1PCgjpWDlGdh4Y9A3iwcZYJGIc/D1fbgW10CY1gnjefMN+A9cHzSaI5qMjYNDTs+MrY/VWSakXU
	iOBDzM/qk1uApuvOvJ07NVPnj0g4w78DmUb5//IHzw3qwCtzl5zHm92/u4ZEeZ5HrzTQfFR1C61
	42iFkj/gMt97zUffvNGf1X0Nxm1Q2zlkFVB/eZQT8gW5sUwvk9f0GGbWeWwuy/fbWF5CyJoxxN5
	25Z76oKszXpUeMta8jBGhntpNJgUNfNCEk/7nVKXBIrro0bI4xw3CEfkfKSylm/Jlp02Xatmd8T
	GWCJgmtynHl4oelJmn8LfpabHsrooJGc3e4nl6UDt/rnII6sKeW3CoA0jAiryuJ10t2w4ReaiFa
	6U=
X-Google-Smtp-Source: AGHT+IE9Lh90pvkHeZhtN32t3L6rT9OpkxumNPVWxOi4aGkvPtxF5qe86n0XKAljkPQA3o5sVjoZBQ==
X-Received: by 2002:a05:600c:3f10:b0:477:9a28:b0a4 with SMTP id 5b1f17b1804b1-47a8f710100mr232611005e9.0.1766066630900;
        Thu, 18 Dec 2025 06:03:50 -0800 (PST)
Message-ID: <ac7db3d8-b2fc-4383-8f7c-52debc601349@suse.com>
Date: Thu, 18 Dec 2025 15:03:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] xen/riscv: introduce vSBI extension framework
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1765888425.git.oleksii.kurochko@gmail.com>
 <dc1045d1831908678a1e4a79571adab2ab362ef6.1765888425.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <dc1045d1831908678a1e4a79571adab2ab362ef6.1765888425.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.12.2025 17:54, Oleksii Kurochko wrote:
> This commit introduces support for handling virtual SBI extensions in Xen.

Nit: As before, no "this commit" in commit messages, please.

> The changes include:
> - Added new vsbi/core.c and vsbi.h files to implement virtual SBI extension
>   handling.
> - Modified traps.c to handle CAUSE_VIRTUAL_SUPERVISOR_ECALL by calling
>   vsbi_handle_ecall() when the trap originates from VS-mode.
> - Updated xen.lds.S to include a new .vsbi.exts section for virtual SBI
>   extension data.
> - Updated Makefile to include the new vsbi/ directory in the build.
> - Add hstatus register to struct cpu_user_regs as it is needed for
>   a check that CAUSE_VIRTUAL_SUPERVISOR_ECALL happens from VS-mode.
>   Also, add storing/restoring of hstatus register in handle_trap().
> - Introduce vsbi_find_extension() to check if vsbi extension is supported
>   by Xen. For now it is called only inside vsbi/core.c, but in future
>   it is going to be called from other files.
> - Introduce check_vsbi_ext_ranges() to check if there EIDs ranges
>   overlapping between extensions.
> 
> The implementation allows for registration and handling of SBI
> extensions via a new vsbi_ext structure and ".vsbi.exts" section,
> enabling extensible virtual SBI support for RISC-V guests.
> 
> Note: All EIDs are printed in the format #%#lx and all FIDs in #%#lu, as
> the SBI spec uses these formats. Printing them this way makes it easier to
> search for them in the SBI spec.

Luckily the oddity exists only here: I don't think '#' would be very
useful with 'u'.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 14:08:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 14:08:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189696.1510394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWEgG-0006cF-8C; Thu, 18 Dec 2025 14:08:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189696.1510394; Thu, 18 Dec 2025 14:08:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWEgG-0006c8-5T; Thu, 18 Dec 2025 14:08:36 +0000
Received: by outflank-mailman (input) for mailman id 1189696;
 Thu, 18 Dec 2025 14:08:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWEgE-0006c2-Fa
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 14:08:34 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 08daa572-dc1b-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 15:08:32 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-477a219dbcaso6233635e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 06:08:32 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47be3269e2asm40051015e9.10.2025.12.18.06.08.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 06:08:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 08daa572-dc1b-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766066911; x=1766671711; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KOiHxY9urHshkLkyx70QEMfU3IbH3HkpOy76UUpuVpc=;
        b=KK29bzqWFbuXPsPqpMOVjc2u5S3IJGxUHIaiHpkol9wufjlFZ84KobuFsA+hJgnG0G
         B3DFClvzIC9yUE27zxwLPqffPc2bqa4e3Cf0h+3HxTJKEdi+QC9lP1t9CCliwGWut+lt
         aUwfgpFmybz5yM8Bgz58eEnUBUCufnuvu1F2eLy3i9lLAN7oxjbJS0y5kbbRl8RLLgwJ
         DisyjWHpFCaGWr2MwSwwrMIV0AUkt2oY584ZbYw2HW+APoX2jdTesqejSaTYHEwMYrpC
         a9yx1wd3XAXGTL3kFxn/slTLVMc2xqGYuCaSmSqMnuR/mSUrt32CggVgGGna+v7X4bLa
         454g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766066911; x=1766671711;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KOiHxY9urHshkLkyx70QEMfU3IbH3HkpOy76UUpuVpc=;
        b=Q7calxGjghZBYkQ8nQXT18QXUl/Bby+TygYj7jgo/AnDbEYLZFajWO6NEOk3Be0cxZ
         7GgKojfXz3BzTLU/R2+QmtJlFE0seawAl22qw/j0Z3yLFSq8VcRiovE+CpfP85o1mr8T
         MgZySJCMO2h1LfESjcjMUlmWQs5k6ifXSUlUIwKT878TSv4T96GXy9XuBY/uFqmxsAxT
         3h8eA6rh1SADSkgj1TMAT487yIEiu9BM8d4VcLMgzK3QMeraDAM9hLHihWU1ZadSEJn7
         icuPHY9hUSadRfyiiD8TunkAherLeUVtXHChrpouUhSUrKJmC3ncsSl1ns7/w/pUvTqq
         upkg==
X-Gm-Message-State: AOJu0YxNiEoBN6mIK1udO9IPo9XxIzXjtFmFEwrP4c82otYXLt97V9wb
	0ArU6jCV+Pnmf42TQ8X3Hyx05S97p0xp4PAb6E/xyNOJHo8kystm+Z1qqbs0YVJwFw==
X-Gm-Gg: AY/fxX4F5wCa8Y79JPwFE2M95DhvW59fsHKikcrCajYJod3TDFIbO2CeGh/Lpm065Kh
	qWqPfHYuwNaqhPpND0ryA7C5wP/hYMlDo1jd3xc/DzW/KE656TYhOV/l7Oq38d6/5mdN8Cr6GoU
	x4yxClyoG7aMkmpTU7C+5aGLsWkjTZjEYp/lqtIKL+RGQiCrWtvc99984qwCNZYYIdfePiomrgz
	KvDYdZBszQsqq6B1GNUoSWBAxFmcd29FeidTsgFegzwwC4Oj7SDdgnJTfPgnA8XrB0NQFGj43UD
	xKicrl/yPByLu0L/CawjNNyFsQih50UOx/s2eCxHkVpbk5hraozHBZ9IJKmnnpJUGO2lIgr3fLk
	8V1XxLEoKqY9fuOGCLjdL+Wu78Cnh3oiVqo8ao345KJUwSeUQXzu/AgX0/KVENHx/toScFxz05r
	iTzTSuzst8/DeLaRct8Jop2QAqcDl2IXD5eoQm22ixeViiA5N1vsYixsrmmNrt6VvMox1tnQO/+
	qs=
X-Google-Smtp-Source: AGHT+IFH0/aBFJ0on3hxYT3b3lQnYJTM05an+hh+y6myQCplpRXZjU+GqzfpWyRey4EtzZTHwG2HXw==
X-Received: by 2002:a05:600c:1c1a:b0:477:755b:5587 with SMTP id 5b1f17b1804b1-47a8f89b8b5mr255947415e9.8.1766066911485;
        Thu, 18 Dec 2025 06:08:31 -0800 (PST)
Message-ID: <c0a054c5-258a-41fd-a392-4c33f8055fc0@suse.com>
Date: Thu, 18 Dec 2025 15:08:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/fuzz: use vpath uniformly for access to hypervisor
 library code
To: Anthony PERARD <anthony@xenproject.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <0cdf924a-2e9b-4997-a01d-6d8b2f711104@suse.com>
 <aUQEbVRCXxzXJxJk@l14>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aUQEbVRCXxzXJxJk@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.12.2025 14:41, Anthony PERARD wrote:
> On Tue, Dec 16, 2025 at 04:34:31PM +0100, Jan Beulich wrote:
>> It's not quite clear why for libelf and the emulator we use symlink-ing,
>> while elsewhere we use vpath. Do so for these two as well, thus also
>> eliminating the need for custom -iquote options and custom cleaning.
> 
> It was an attempt to rework the "tools/" makefiles to be non-recursive,
> via the use of subdirmk. `vpath` wouldn't have worked in that
> configuration as stated in the commit introducing the symlink.

Hmm, I see it says so, yet it says nothing as to why.

> But I never managed to finish this conversion.

Plus the symlinking also comes with downsides. They may get in the way of
moving build and/or source trees, for example. (Not that the tools/ subtree
would support out-of-tree builds yet, but still.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 14:21:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 14:21:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189710.1510405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWEsJ-0000v2-9U; Thu, 18 Dec 2025 14:21:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189710.1510405; Thu, 18 Dec 2025 14:21:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWEsJ-0000uv-6g; Thu, 18 Dec 2025 14:21:03 +0000
Received: by outflank-mailman (input) for mailman id 1189710;
 Thu, 18 Dec 2025 14:21:02 +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 <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWEsI-0000up-FL
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 14:21:02 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c33e8b1e-dc1c-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 15:20:54 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-477bf34f5f5so5057295e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 06:20:54 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-432449ade52sm5067027f8f.41.2025.12.18.06.20.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 06:20:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c33e8b1e-dc1c-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766067654; x=1766672454; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=DaO9i08OkU05whvdD850C4mWkAu1OL9jIelLce/0NFQ=;
        b=T+/ofYtFKnzpBUyQCsKORTi6aIrJgVaOFJ5oTuPE+7AOX/GhGDYQgxAA1Na9CIMyZg
         QA/T/ieOAm/q/wqb+9Ga5ZWGrDLKy/18nSn805BHhaPRVIycVOiQYdxDlrKqUyrMB3yW
         f8KxKziGpn5ajpaXJz6E64uUBwtbrEZw4ICZIc4tVsemT70Y5UU58jI8O3P9YnHoZEPo
         nfAe9bNqyvhPe/VRTaXtFyRszV9G4G+C0NyZH69F+kHmXfdXEFL44UG+i/UDS4q/cmSx
         w2xzubCVK1Zp0gsbAdLoKm+h0aUCXIpQnzw36JLf2Zscuxx4MRCIo4cJay+9ucN4IY1l
         yJqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766067654; x=1766672454;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DaO9i08OkU05whvdD850C4mWkAu1OL9jIelLce/0NFQ=;
        b=PVMrmUBgM17u62K91X/XXjSgpEqm5si+MOwvoMEnzXbgXog9oz6N3FOW2xnIfRBCBy
         cwp1W66+7OUai4B+If/H5fx/M3gMh/3eCGm+TmtZ6v4lE2OHhROlJM4aStxW5ZDv6Lnw
         1nTERwqM951ba5DAGUyuWCTfGZ0nItZxR5LU8Q3Fu4spBG2X+AfAiDqdG3Os0YCebF01
         5Ac99jDnh2TKRj6xx1B2V1KjaH1t5MGhLJHsa6AYUH03oHFtOQ4quBn/A63cXbaSo9/q
         RAHo42SVpfoK2jHSMWyx772x5R027+51WX6GFFR7GTZCDhuJSH7Jq/vdTQdFKkmCqa2k
         6ITA==
X-Forwarded-Encrypted: i=1; AJvYcCXemr8dzS9x4WmyQrv+j1T1Z6Tt1IjcZswh7RIfoMYgfLVvtG24l9bepYbVb+AvuS+SXEmss3/wGYM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YycFAXpf05F5/tK4ZzS3AANfspDUwxeuk48BYx426KtqF6NAT3V
	Dr/WxzaxTPR2TqZmH526vxbpv2y7sfIE5LbXyHWx5O+vUS2Aqdi4k+XR01e66GbgrA==
X-Gm-Gg: AY/fxX6WtFwIqbHMQTHtgMB9fn6xyiLQhZkA1/SMjcuGl3kjkyyxXoanM6nfWWW/S8N
	jMO2gmhpD4WObv/ovtSBs8q12o8j8RDkRWFnGWtIAEeVBA9oU30v0b4abKF6bQCZoROLl9bGtmP
	0Xe3zKqXtNIFbFBQFoODAcLxrzeKaH9QQgbPJ7LVWPKUyDx46D5F5uUbjQybHH9V/boEwY9rm4X
	ClRy7lswHKQeXrR7sv9aNqXd4+LHQcddTGA7mTuetxYHfAf6nwEQPgQF9f7y+JyReg6ru5TjBln
	/A12bQERslDGmboASs0Kcs5nbPsnFsuMDHfqsau1KwAFpaor3ZCY1QWp4yFbD8B9L/eTxfPZlI7
	KGoLbSTm6HvMc8nsElaBL0Q9sWZ60icqaH/HGwoDw7d61e+VkNR8ajA9lOauW7sZwdrVWqQ+fCT
	JmeO1tQUBIRHheZnBIjnYa+yUn0osQLPTJK2zHV7wxoayzBaaHwS/A2WF2QSEUIh6kHKbG1zMfG
	/rETZHoMSFAfg==
X-Google-Smtp-Source: AGHT+IFACwxr0g/Y3TpmLH240B1+d8SiK93Q/xp5LsDTnnhWInjXn88dNPCI0AOR/PAsx3gD4PExpw==
X-Received: by 2002:a05:600c:3b05:b0:477:7bca:8b34 with SMTP id 5b1f17b1804b1-47a8f8ab546mr226447445e9.6.1766067653565;
        Thu, 18 Dec 2025 06:20:53 -0800 (PST)
Message-ID: <08105722-0920-462a-aeba-a36f8044a5dc@suse.com>
Date: Thu, 18 Dec 2025 15:20:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen/riscv: add RISC-V legacy SBI extension support
 for guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1765888425.git.oleksii.kurochko@gmail.com>
 <df7a7e94fba79265138d6cc8d23b1f6b958f5bd5.1765888425.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <df7a7e94fba79265138d6cc8d23b1f6b958f5bd5.1765888425.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.12.2025 17:54, Oleksii Kurochko wrote:
> This commit adds support for legacy SBI extensions (version 0.1) in Xen
> for guest domains.
> 
> The changes include:
> 1. Define all legacy SBI extension IDs (0x0 to 0x8) for better clarity and
>    completeness.
> 2. Implement handling of legacy SBI extensions, starting with support for
>    SBI_EXT_0_1_CONSOLE_{PUT,GET}CHAR.

I can't spot any actual support for GETCHAR.

> --- /dev/null
> +++ b/xen/arch/riscv/vsbi/legacy-extension.c
> @@ -0,0 +1,65 @@
> +
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/console.h>
> +#include <xen/lib.h>
> +#include <xen/sched.h>
> +
> +#include <asm/processor.h>
> +#include <asm/vsbi.h>
> +
> +static void vsbi_print_line(char c)

Misleading function name? The parameter doesn't fit the name, and ...

> +{
> +    struct domain *cd = current->domain;

I guess you copied this code from somewhere, but a variable of this type and
contents wants to be named "currd".

> +    struct domain_console *cons = cd->console;
> +
> +    if ( !is_console_printable(c) )
> +        return;
> +
> +    spin_lock(&cons->lock);
> +    ASSERT(cons->idx < ARRAY_SIZE(cons->buf));
> +    if ( c != '\n' )
> +        cons->buf[cons->idx++] = c;
> +    if ( (cons->idx == (ARRAY_SIZE(cons->buf) - 1)) || (c == '\n') )
> +    {
> +        cons->buf[cons->idx] = '\0';
> +        guest_printk(cd, XENLOG_G_DEBUG "%s\n", cons->buf);

... you also only print a line under certain conditions.

> +        cons->idx = 0;
> +    }
> +    spin_unlock(&cons->lock);
> +}
> +
> +static int vsbi_legacy_ecall_handler(struct vcpu *vcpu, unsigned long eid,
> +                                     unsigned long fid,
> +                                     struct cpu_user_regs *regs)
> +{
> +    int ret = 0;
> +
> +    switch ( eid )
> +    {
> +    case SBI_EXT_0_1_CONSOLE_PUTCHAR:
> +        vsbi_print_line((char)regs->a0);

The cast isn't really needed, is it? And just to double-check: The spec demands
the upper bits to be ignored? (A link to the spec could have been useful, e.g.
in the cover letter.)

> +        break;
> +
> +    case SBI_EXT_0_1_CONSOLE_GETCHAR:
> +        ret = SBI_ERR_NOT_SUPPORTED;
> +        break;
> +
> +    default:
> +        /*
> +         * TODO: domain_crash() is acceptable here while things are still under
> +         * development.
> +         * It shouldn't stay like this in the end though: guests should not
> +         * be punished like this for something Xen hasn't implemented.
> +         */

Question then is why SBI_EXT_0_1_CONSOLE_GETCHAR gets a separate case block.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 14:22:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 14:22:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189718.1510416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWEtk-0001R0-Lr; Thu, 18 Dec 2025 14:22:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189718.1510416; Thu, 18 Dec 2025 14:22:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWEtk-0001Qt-HF; Thu, 18 Dec 2025 14:22:32 +0000
Received: by outflank-mailman (input) for mailman id 1189718;
 Thu, 18 Dec 2025 14:22:31 +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
 <SRS0=YG3a=6Y=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vWEtj-0001Ql-Ja
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 14:22:31 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fb64f23f-dc1c-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 15:22:28 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-640c1fda178so1245493a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 06:22:28 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b585eddfasm2683571a12.15.2025.12.18.06.22.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 18 Dec 2025 06:22:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb64f23f-dc1c-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766067748; x=1766672548; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=qjMqUDTOPTxrmqmlAzpdZsg9bO4lkWNc7k62rKcAr10=;
        b=Zkm97K+gU6TFItTC3NDgBPotrgL9vz0/Y7fif/YYpryNsgq/zRPokJMmkKqglh4iGn
         nkYxB7hdASH4UoZ82D+Cb9Ve1SXwLFc/7WP6YFf9aIu2aDmclXFoKNAEMAugq+XydQtb
         yNNRjlcLTFmcOGyBbii9LtFTEJOpDTwbj5DwtwFKMnx9mTUs2HiFV6JwPJReGVjBwQPG
         +ZQN33s7F4qmj7C1FIM4KbjndP63vX9wiasfWit8qqU3O7EmhoDysA+nEeDSQt7V5Gug
         VVMidDQookAD460fUtbHywACjDmc513F1jbCJZua6oFgU1Pe3Rz7RzbRNbuJih9Dl7h8
         i/Wg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766067748; x=1766672548;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qjMqUDTOPTxrmqmlAzpdZsg9bO4lkWNc7k62rKcAr10=;
        b=kj2kBV9XFtnjbf8QMqFK5itEGFwq239YrG4fg7Ss0cFloE3eRzBA2/uGIrOSHOGvbu
         FuESs6CkOAGEhf7MoTBu2K3Op34YBzWLG/EhVzZoZr1FR9gUbQ3Z6RkhcW/cIwlu9886
         1+1s8tzGcqJS4SONgugf+iUMoR5YxKiEt0X1adA7N/nwltpUgnzJIUUQL9YoQa2Me1Pa
         IFogfkWoaLkAMLPhVgSYqeSIaBIInWDVi0u8Ev53m/Si1xxhWGUuel8xHoH5o+oTBam2
         erAL+xVRKgdPBeKZxnts9rUAMGZ/PbQzRf/vXAPubEXyGtFZsiteElAB3BAG4uED6Dy0
         7gCQ==
X-Gm-Message-State: AOJu0YyNhA8ap87mE0lrgseferDGSdFnbSaZlBI9vlPud2fN6tZNEHCn
	Z/xSslmPI9h/c8ZQQ/T841Cbu1cYxPlnV1bAExPEzBQG7biY2Qv1+AAiQkHvEw==
X-Gm-Gg: AY/fxX55YrZKhIJYtmatkxxWpQwr7WcrRrJ85UZirxLKXqYMkoMPjdEsVDBpA4YW3Xh
	gpzY4n+vTsQ9nTyncTT8bsyJc4M/DUMy3c2cAY7Ybaq+F2c9iiU8D0si2YkdQzh0GDK4ng8BnFF
	bJKPWd5bX74WVRB2fyM/kDQeaMmxQK6SupZ8Oh2eJaTBOs0dVmuWUwiPgcKLXuyBFjrO31K4zu1
	opEQLWRZG/YTrscPya9Zr92kQtw91D+IpYESVDiq9lQM10oOT+nJS+UeFA0cqTf5UF79t01UMTj
	bhLzENzzEool5WFah0mQ5dIPeTEFeaR+rYFBnP8rN8dmYKpJnl9PqkXI36mD/lAuAPEEr56JN2Z
	GnIIRSoRkoFWA8E+WHEvq+VVB5DF2kkgVgW5+ZjXUI7pd2pm9XoqwB+uqA5yAZpQn86GK7yu72d
	oCe2Shd9vJzF/9vXktnEqQ11JfHERuzKnWrCkIUhf4PCVk0Z65GdI4OHc=
X-Google-Smtp-Source: AGHT+IF48XDoCzvWX8YN114TuI73BnnnKUwHGkubFE9MebNp7YAUy2yjL8c5eQ1QenyK/rtXaZIIeA==
X-Received: by 2002:a05:6402:1468:b0:64b:58bf:a05 with SMTP id 4fb4d7f45d1cf-64b58bf0c9emr2902881a12.18.1766067747410;
        Thu, 18 Dec 2025 06:22:27 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Yann Dirson <yann.dirson@vates.tech>,
	Yann Sionneau <yann.sionneau@vates.tech>
Subject: [PATCH v1] acpi/arm: relax MADT GICC entry length check to support newer ACPI revisions
Date: Thu, 18 Dec 2025 15:22:14 +0100
Message-ID: <929f7a0fb8f92112d445015726db30122a05eb9f.1766060265.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Newer ACPI revisions define the MADT GICC entry with Length = 82 bytes [1].
The current BAD_MADT_GICC_ENTRY() check rejects entries whose length does not
match the known values, which leads to:
  GICv3: No valid GICC entries exist.
as observed on the AmpereOne platform.

To fix this, import the logic from import from Linux commit 9eb1c92:
  The BAD_MADT_GICC_ENTRY check is a little too strict because
  it rejects MADT entries that don't match the currently known
  lengths. We should remove this restriction to avoid problems
  if the table length changes. Future code which might depend on
  additional fields should be written to validate those fields
  before using them, rather than trying to globally check
  known MADT version lengths.

  Link: https://lkml.kernel.org/r/20181012192937.3819951-1-jeremy.linton@arm.com
  Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
  [lorenzo.pieralisi@arm.com: added MADT macro comments]
  Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
  Acked-by: Sudeep Holla <sudeep.holla@arm.com>
  Cc: Will Deacon <will.deacon@arm.com>
  Cc: Catalin Marinas <catalin.marinas@arm.com>
  Cc: Al Stone <ahs3@redhat.com>
  Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
  Signed-off-by: Will Deacon <will.deacon@arm.com>

As ACPI_MADT_GICC_LENGTH is dropped, update the functions where it is
used. As we rewrite the MADT for hwdom, reuse the host GICC header length
instead of ACPI_MADT_GICC_LENGTH.

[1] https://uefi.org/specs/ACPI/6.6/05_ACPI_Software_Programming_Model.html#gic-cpu-interface-gicc-structure

Reported-By: Yann Dirson <yann.dirson@vates.tech>
Co-developed-by: Yann Sionneau <yann.sionneau@vates.tech>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
I ran CI tests where it made sense for this patch, as I don’t see any CI job
that builds Xen with CONFIG_ACPI=y:
  https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2222160666

I also built Xen manually with CONFIG_ACPI=y enabled and tested it on the
AmpereOne platform.
---
 xen/arch/arm/gic-v2.c           |  3 ++-
 xen/arch/arm/gic-v3.c           |  3 ++-
 xen/arch/arm/gic.c              | 12 +++++++++++-
 xen/arch/arm/include/asm/acpi.h | 21 +++++++++++++++------
 4 files changed, 30 insertions(+), 9 deletions(-)

diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
index b23e72a3d0..aae6a7bf30 100644
--- a/xen/arch/arm/gic-v2.c
+++ b/xen/arch/arm/gic-v2.c
@@ -1121,7 +1121,8 @@ static int gicv2_make_hwdom_madt(const struct domain *d, u32 offset)
     host_gicc = container_of(header, struct acpi_madt_generic_interrupt,
                              header);
 
-    size = ACPI_MADT_GICC_LENGTH;
+    size = host_gicc->header.length;
+
     /* Add Generic Interrupt */
     for ( i = 0; i < d->max_vcpus; i++ )
     {
diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index bc07f97c16..75b89efad4 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -1672,7 +1672,8 @@ static int gicv3_make_hwdom_madt(const struct domain *d, u32 offset)
 
     host_gicc = container_of(header, struct acpi_madt_generic_interrupt,
                              header);
-    size = ACPI_MADT_GICC_LENGTH;
+    size = host_gicc->header.length;
+
     for ( i = 0; i < d->max_vcpus; i++ )
     {
         gicc = (struct acpi_madt_generic_interrupt *)(base_ptr + table_len);
diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index ee75258fc3..a0ccda14bf 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -418,8 +418,18 @@ unsigned long gic_get_hwdom_madt_size(const struct domain *d)
 {
     unsigned long madt_size;
 
+    struct acpi_subtable_header *header;
+    struct acpi_madt_generic_interrupt *host_gicc;
+
+    header = acpi_table_get_entry_madt(ACPI_MADT_TYPE_GENERIC_INTERRUPT, 0);
+    if ( !header )
+        panic("Can't get GICC entry");
+
+    host_gicc = container_of(header, struct acpi_madt_generic_interrupt,
+                             header);
+
     madt_size = sizeof(struct acpi_table_madt)
-                + ACPI_MADT_GICC_LENGTH * d->max_vcpus
+                + host_gicc->header.length * d->max_vcpus
                 + sizeof(struct acpi_madt_generic_distributor)
                 + gic_hw_ops->get_hwdom_extra_madt_size(d);
 
diff --git a/xen/arch/arm/include/asm/acpi.h b/xen/arch/arm/include/asm/acpi.h
index 13756dd341..30bc446d1f 100644
--- a/xen/arch/arm/include/asm/acpi.h
+++ b/xen/arch/arm/include/asm/acpi.h
@@ -53,13 +53,22 @@ void acpi_smp_init_cpus(void);
  */
 paddr_t acpi_get_table_offset(struct membank tbl_add[], EFI_MEM_RES index);
 
-/* Macros for consistency checks of the GICC subtable of MADT */
-#define ACPI_MADT_GICC_LENGTH	\
-    (acpi_gbl_FADT.header.revision < 6 ? 76 : 80)
+/*
+ * MADT GICC minimum length refers to the MADT GICC structure table length as
+ * defined in the earliest ACPI version supported on arm64, ie ACPI 5.1.
+ *
+ * The efficiency_class member was added to the
+ * struct acpi_madt_generic_interrupt to represent the MADT GICC structure
+ * "Processor Power Efficiency Class" field, added in ACPI 6.0 whose offset
+ * is therefore used to delimit the MADT GICC structure minimum length
+ * appropriately.
+ */
+#define ACPI_MADT_GICC_MIN_LENGTH   ACPI_OFFSET( \
+    struct acpi_madt_generic_interrupt, efficiency_class)
 
-#define BAD_MADT_GICC_ENTRY(entry, end)						\
-    (!(entry) || (unsigned long)(entry) + sizeof(*(entry)) > (end) ||	\
-     (entry)->header.length != ACPI_MADT_GICC_LENGTH)
+#define BAD_MADT_GICC_ENTRY(entry, end) \
+    (!(entry) || (entry)->header.length < ACPI_MADT_GICC_MIN_LENGTH || \
+    (unsigned long)(entry) + (entry)->header.length > (end))
 
 #ifdef CONFIG_ACPI
 extern bool acpi_disabled;
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 18 14:32:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 14:32:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189735.1510425 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWF3A-0003GL-IL; Thu, 18 Dec 2025 14:32:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189735.1510425; Thu, 18 Dec 2025 14:32:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWF3A-0003GE-FY; Thu, 18 Dec 2025 14:32:16 +0000
Received: by outflank-mailman (input) for mailman id 1189735;
 Thu, 18 Dec 2025 14:32:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWF39-0003G8-Ml
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 14:32:15 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 56fcecab-dc1e-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 15:32:11 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4779cb0a33fso7532725e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 06:32:11 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43244934cd4sm5252216f8f.7.2025.12.18.06.32.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 06:32:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 56fcecab-dc1e-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766068331; x=1766673131; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nk73o7Y8MbEoLrwk/VfsxO6AXheeLt25cTkWWhJBiF8=;
        b=Giae6Os28Wre9jVcO8RiQwXr7i6GiJnJ9THiU52/blE47iDs/pOWIi/5DJTnyvyOrJ
         WdYRq9V4yfexgyLXvhNe37+Kkkjoqt+uvKgnwmkvlzFd4AhRgFWVE1yBJMrw3Hqkix/U
         vjB54VPAdjsMGm4kg3lmQwWf5A3sreBKtD4W8Y5/8nQXM0OVBqNe5GkKV3ru9ednfxEn
         2+AShRbldA+r3CjOO0iZU9d9RGKtU1guS7tFijeuxqwH6htcEzYweYcD7+MVxlRcnDV6
         TxJ08vGP42nNSck8T4LOdiFFZZXLrGwNVbwS7sKzz301lJdZMHjyJ1p0KnLbUqrgv82e
         4OJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766068331; x=1766673131;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nk73o7Y8MbEoLrwk/VfsxO6AXheeLt25cTkWWhJBiF8=;
        b=HO/9qodJrDiAP5G0RglzQrAes5BzVZ+TOl2miarO366C+I5t4uv7XwLgIKtn7/noMe
         /vmwFSc8m7Mj3dX36bsQprNn6XotA3QwRVIZzqmjEd4j1oRlBcgORrVh+Z0LJFr7w/CD
         wTkRtq9MYyZYFa0L81E2bmNVfnWkv2tGvJqaL2dQDgjyL4oKWZPxeTi3ytC9HJKxLpta
         KxxGn317rR+2pSHki2WkqWcXrqMuWb80zFQStqdiysjehWpjVp8ZaVWR/Egptg9F3suS
         jHvuTbyNq0uT/ksnQ6A19ojlXSlBoKDhfbOp1ERZGTTwIoJFqYrJLYpRm8T7YX+abZym
         i+uA==
X-Forwarded-Encrypted: i=1; AJvYcCVt3XPtFVa93fxusLnVBHtbG5/x1F/bqwB9Xa3JIG1uZ9TgooWFvGTz1VGz0BXkks5nGEWnJT5pdDI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx8Fv/uXxNmEK8l0xBBEID8jbl9lcrom3ylf9JGsjIz4muQxIPt
	g+Vi0k5rH+CFC74J0vHiEQVXFXwX+5b+zAe23PIoGpbKvPpRuPCK3lFiJ4Ke0Lx79A==
X-Gm-Gg: AY/fxX5O7l4rEq8R2PVBr8BbyJpSA7D8Fy3U5KmYeAGfi885dM9oew+HoBX6RrmkvML
	cMwrWbZ16RIbdgpuCfKCmhDCa2hGFTCL7q2r552VxFQCFbSDY7K2Zpe1ZzFtJ2rTVzgpNqqbTmY
	YCGUjXdink4CeXDIIymZz1C04TNqqj13IwcZvDyCLF5iSg3g5ZBRD911Z71/fAphimTCbUaEMQf
	m2JktVesr5ld9//4cQr0GXMxcTyh2qVu3zoQqUWnQZ77DCKVgwSn2JrgKY9qewpWBYi5pjPAGAI
	g7pZGus391SsurwzayYE2uV/gAWPdviJC6n83cVnXN/xYnMMyinrDsgkXLcEPJxZVGlWnioOsjG
	HrjEZaYsUXazrIT4azRkFDIwb3c+g/UN01xnBuxowF4jZiMKWzNPn+fftNw+xrLJrgLjmy2TTbf
	AWLiij65I+1bIhslI5XTqn65x5EkGkITbur5Q13d0ANwPLcs8UBBsLRMEIwbuxHnzT69ugv1LpL
	4Q=
X-Google-Smtp-Source: AGHT+IE7q2f5ms5LwMXi0QaPe2Z1KBXXY2RffLtO3tve3P7dQ+r/BEVBq9y2lGfmt4gH0NhucJpApw==
X-Received: by 2002:a05:6000:230f:b0:430:fa9a:74d with SMTP id ffacd0b85a97d-430fa9a0c13mr16464532f8f.24.1766068330987;
        Thu, 18 Dec 2025 06:32:10 -0800 (PST)
Message-ID: <f5206b63-1f82-4abb-9740-9a0042fbcfb6@suse.com>
Date: Thu, 18 Dec 2025 15:32:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] xen/riscv: add RISC-V virtual SBI base extension
 support for guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1765888425.git.oleksii.kurochko@gmail.com>
 <2e42e8ee51badcfa2cb16e3db71fdecaac445bca.1765888425.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2e42e8ee51badcfa2cb16e3db71fdecaac445bca.1765888425.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.12.2025 17:54, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/sbi.h
> +++ b/xen/arch/riscv/include/asm/sbi.h
> @@ -14,6 +14,10 @@
>  
>  #include <xen/cpumask.h>
>  
> +#define XEN_SBI_VER_MAJOR 0
> +#define XEN_SBI_VER_MINOR 2
> +#define XEN_SBI_IMPID 7

Are these numbers part of the spec (sorry, lack of a reference makes me wonder,
plus if that were the case, I'd kind of expect the names to be SBI_XEN_..., not
XEN_SBI_...)?

> --- /dev/null
> +++ b/xen/arch/riscv/vsbi/base-extension.c
> @@ -0,0 +1,71 @@
> +
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/lib.h>
> +#include <xen/sched.h>
> +#include <xen/version.h>
> +
> +#include <asm/processor.h>
> +#include <asm/sbi.h>
> +#include <asm/vsbi.h>
> +
> +static int vsbi_base_ecall_handler(struct vcpu *vcpu, unsigned long eid,
> +                                   unsigned long fid,
> +                                   struct cpu_user_regs *regs)
> +{
> +    int ret = 0;
> +    struct sbiret sbi_ret;

    ASSERT(eid == SBI_EXT_BASE);

> +    switch ( fid ) {

Nit: Brace placement.

> +    case SBI_EXT_BASE_GET_SPEC_VERSION:
> +        regs->a1 = MASK_INSR(XEN_SBI_VER_MAJOR, SBI_SPEC_VERSION_MAJOR_MASK) |
> +                   XEN_SBI_VER_MINOR;
> +        break;
> +    case SBI_EXT_BASE_GET_IMP_ID:
> +        regs->a1 = XEN_SBI_IMPID;
> +        break;
> +    case SBI_EXT_BASE_GET_IMP_VERSION:
> +        regs->a1 = (xen_major_version() << 16) | xen_minor_version();
> +        break;

Along those lines here - are we free to use an arbitrary layout (shifting major by
16 bits), or is this mandated by the spec? At least in the latter case, the 16 will
want to gain a #define.

Also - blank lines please between non-fall-through case blocks.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 14:47:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 14:47:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189755.1510472 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWFIF-0005dH-88; Thu, 18 Dec 2025 14:47:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189755.1510472; Thu, 18 Dec 2025 14:47:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWFIF-0005dA-4Q; Thu, 18 Dec 2025 14:47:51 +0000
Received: by outflank-mailman (input) for mailman id 1189755;
 Thu, 18 Dec 2025 14:47:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/sWj=6Y=bounce.vates.tech=bounce-md_30504962.6944140e.v1-8714dd6c4f2045cda88ee93a1981ca80@srs-se1.protection.inumbo.net>)
 id 1vWFIE-0005d2-Hl
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 14:47:50 +0000
Received: from mail137-31.atl71.mandrillapp.com
 (mail137-31.atl71.mandrillapp.com [198.2.137.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 828ef504-dc20-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 15:47:44 +0100 (CET)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-31.atl71.mandrillapp.com (Mailchimp) with ESMTP id
 4dXD6Q337jz7lmRj8
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 14:47:42 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 8714dd6c4f2045cda88ee93a1981ca80; Thu, 18 Dec 2025 14:47:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 828ef504-dc20-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1766069262; x=1766339262;
	bh=ERqb2O7Mon4Rnq2ikf7KB+qMfBBBYPzBn/QbCL2RHpY=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=apXgbyHBl7bZtRwpfr1HxKHS3eq7y+3X0BQVe1CIJD2rJTvdZrCgMC8I+HBtoGdmd
	 k5lJq6uERZg8yfeG+OSGKza5CsHmDbMbGKZM1y48+QlCmzybvVfZmGTlQw/AMkSfwm
	 DUuaR5MDBrVpBdf3QeHZp8sHNFi7BtSjJ3YMEx4WFq0PVXBsIPj9bkBRXVjQe2Oo17
	 7ZChjwxotxMMv3igdWalhipipnaih0pEnJq1ZcbO0QJeTuFvXPcrsNhNI3wLEfkiEQ
	 BfPftETWc/vefJuVMPYvEs23PE4SijOK9gvsObxWDvoajFP7tFhi35Hn7KdQ2e1Nfe
	 c1VI0CkA/Y/JA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1766069262; x=1766329762; i=teddy.astie@vates.tech;
	bh=ERqb2O7Mon4Rnq2ikf7KB+qMfBBBYPzBn/QbCL2RHpY=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=hfZDNDghqzU39BTW+Xyi5TQHF+KNDLShKD907AM7k/PCKEoxkxDAzBfiHZ0evew10
	 pp8fG0eFijEskeJ4rLCCO6DFE+8hIU90x8KRQaEfeQm9eHz0g7JwPPVKYi2C+7hpIh
	 beFc0I00lMv3mnpl4LWwxisuv68CiuKfTdeIy6oqUahFJCUKwhbf5rvCHTHdBos8UF
	 tzrP+qgUGRRELeBU3WaftGzP3fOTW4Z4kNmDRuHk0mihUafQNx10fcmTdmBizKT9Wb
	 1ME8A6f0P85uUtVnp+P2wdmZ5JaB5CTrsqXZNYNrPWe7s4Ck7KDYoHp/I6mZiC65Pn
	 1OnCzq7p79Zwg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[XEN][PATCH=20v5]=20xen/x86:=20guest=5Faccess:=20optimize=20raw=5Fx=5Fguest()=20for=20PV=20and=20HVM=20combinations?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1766069260671
Message-Id: <a220ce20-9f1f-4310-b5f3-680c1dad6d2d@vates.tech>
To: "Grygorii Strashko" <grygorii_strashko@epam.com>, xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Jason Andryuk" <jason.andryuk@amd.com>, "Alejandro Vallejo" <alejandro.garciavallejo@amd.com>
References: <20251218135926.188059-1-grygorii_strashko@epam.com>
In-Reply-To: <20251218135926.188059-1-grygorii_strashko@epam.com>
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.8714dd6c4f2045cda88ee93a1981ca80?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251218:md
Date: Thu, 18 Dec 2025 14:47:42 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 18/12/2025 =C3=A0 15:01, Grygorii Strashko a =C3=A9crit=C2=A0:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Xen uses below pattern for raw_x_guest() functions:
> 
> define raw_copy_to_guest(dst, src, len)        \
>      (is_hvm_vcpu(current) ?                     \
>       copy_to_user_hvm((dst), (src), (len)) :    \
>       copy_to_guest_pv(dst, src, len))
> 
> This pattern works depending on CONFIG_PV/CONFIG_HVM as:
> - PV=3Dy and HVM=3Dy
>    Proper guest access function is selected depending on domain type.
> - PV=3Dy and HVM=3Dn
>    Only PV domains are possible. is_hvm_domain/vcpu() will constify to "f=
alse"
>    and compiler will optimize code and skip HVM specific part.

> - PV=3Dn and HVM=3Dy
>    Only HVM domains are possible. is_hvm_domain/vcpu() will not be consti=
fied.
>    No PV specific code will be optimized by compiler.
> - PV=3Dn and HVM=3Dn
>    No guests should possible. The code will still follow PV path.
> 

^ regarding this

> For the case (PV=3Dn and HVM=3Dn) return "len" value indicating a failure=
 (no
> guests should be possible in this case, which means no access to guest
> memory should ever happen).
> 

^ and this

AFAIU it is the same for PV=3Dn and HVM=3Dy for non-HVM domains (the few 
that "exists"), so we should rather say that these functions fails on 
"non-HVM" domains in PV=3Dn configurations (since no actual PV domain 
exists in these cases).

IOW, there is no PV path in PV=3Dn configurations and in !HVM domains, the 
function fails instead (as we would expect).

Once the commit message is adjusted on this
Reviewed-by: Teddy Astie <teddy.astie@vates.tech>

> The measured (bloat-o-meter) improvement for (PV=3Dn and HVM=3Dy) case is=
 about -11K.
> 
> [teddy.astie@vates.tech: Suggested to use static inline functions vs
> macro combinations]
> Suggested-by: Teddy Astie <teddy.astie@vates.tech>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
> changes in v5:
> - rebase
> - drop moving usercopy.c as it is not needed since commit 7370966d1cb7
>    ("x86: move / split usercopy.c to / into arch-specific library")
> 
> changes in v4:
> - move usercopy.c into arch/x86/pv/
> - rework to always dynamically check for HVM vcpu(domain) by using is_hvm=
_vcpu()
>    as requested by Jan Beulich
> 
> changes in v3:
> - add raw_use_hvm_access() wrapper
> 
> changes in v2:
> - use static inline functions instead of macro combinations
> 
>   xen/arch/x86/include/asm/guest_access.h | 78 ++++++++++++++++++-------
>   1 file changed, 58 insertions(+), 20 deletions(-)
> 
> diff --git a/xen/arch/x86/include/asm/guest_access.h b/xen/arch/x86/inclu=
de/asm/guest_access.h
> index 69716c8b41bb..f0e56b112e14 100644
> --- a/xen/arch/x86/include/asm/guest_access.h
> +++ b/xen/arch/x86/include/asm/guest_access.h
> @@ -13,26 +13,64 @@
>   #include <asm/hvm/guest_access.h>
>   
>   /* Raw access functions: no type checking. */
> -#define raw_copy_to_guest(dst, src, len)        \
> -    (is_hvm_vcpu(current) ?                     \
> -     copy_to_user_hvm((dst), (src), (len)) :    \
> -     copy_to_guest_pv(dst, src, len))
> -#define raw_copy_from_guest(dst, src, len)      \
> -    (is_hvm_vcpu(current) ?                     \
> -     copy_from_user_hvm((dst), (src), (len)) :  \
> -     copy_from_guest_pv(dst, src, len))
> -#define raw_clear_guest(dst,  len)              \
> -    (is_hvm_vcpu(current) ?                     \
> -     clear_user_hvm((dst), (len)) :             \
> -     clear_guest_pv(dst, len))
> -#define __raw_copy_to_guest(dst, src, len)      \
> -    (is_hvm_vcpu(current) ?                     \
> -     copy_to_user_hvm((dst), (src), (len)) :    \
> -     __copy_to_guest_pv(dst, src, len))
> -#define __raw_copy_from_guest(dst, src, len)    \
> -    (is_hvm_vcpu(current) ?                     \
> -     copy_from_user_hvm((dst), (src), (len)) :  \
> -     __copy_from_guest_pv(dst, src, len))
> +static inline unsigned int raw_copy_to_guest(void *dst, const void *src,
> +                                             unsigned int len)
> +{
> +    if ( is_hvm_vcpu(current) )
> +        return copy_to_user_hvm(dst, src, len);
> +
> +    if ( !IS_ENABLED(CONFIG_PV) )
> +        return len;
> +
> +    return copy_to_guest_pv(dst, src, len);
> +}
> +
> +static inline unsigned int raw_copy_from_guest(void *dst, const void *sr=
c,
> +                                               unsigned int len)
> +{
> +    if ( is_hvm_vcpu(current) )
> +        return copy_from_user_hvm(dst, src, len);
> +
> +    if ( !IS_ENABLED(CONFIG_PV) )
> +        return len;
> +
> +    return copy_from_guest_pv(dst, src, len);
> +}
> +
> +static inline unsigned int raw_clear_guest(void *dst, unsigned int len)
> +{
> +    if ( is_hvm_vcpu(current) )
> +        return clear_user_hvm(dst, len);
> +
> +    if ( !IS_ENABLED(CONFIG_PV) )
> +        return len;
> +
> +    return clear_guest_pv(dst, len);
> +}
> +
> +static inline unsigned int __raw_copy_to_guest(void *dst, const void *sr=
c,
> +                                               unsigned int len)
> +{
> +    if ( is_hvm_vcpu(current) )
> +        return copy_to_user_hvm(dst, src, len);
> +
> +    if ( !IS_ENABLED(CONFIG_PV) )
> +        return len;
> +
> +    return __copy_to_guest_pv(dst, src, len);
> +}
> +
> +static inline unsigned int __raw_copy_from_guest(void *dst, const void *=
src,
> +                                                 unsigned int len)
> +{
> +    if ( is_hvm_vcpu(current) )
> +        return copy_from_user_hvm(dst, src, len);
> +
> +    if ( !IS_ENABLED(CONFIG_PV) )
> +        return len;
> +
> +    return __copy_from_guest_pv(dst, src, len);
> +}
>   
>   /*
>    * Pre-validate a guest handle.

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Dec 18 15:15:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 15:15:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189773.1510481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWFjB-0001FV-9F; Thu, 18 Dec 2025 15:15:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189773.1510481; Thu, 18 Dec 2025 15: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 <xen-devel-bounces@lists.xenproject.org>)
	id 1vWFjB-0001FO-66; Thu, 18 Dec 2025 15:15:41 +0000
Received: by outflank-mailman (input) for mailman id 1189773;
 Thu, 18 Dec 2025 15:15:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ars1=6Y=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vWFjA-0001FI-8s
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 15:15:40 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 667ad482-dc24-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 16:15:34 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DB9PR03MB7194.eurprd03.prod.outlook.com (2603:10a6:10:22c::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.7; Thu, 18 Dec
 2025 15:15:31 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9434.001; Thu, 18 Dec 2025
 15:15:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 667ad482-dc24-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Hcavef1eYK2JUIntYwsCEucLqJvsk/zZxGjjFNbIJURnVnhSwb4oQI7ZiFU1/z9CmTKSqp+4+IMdYmI5DcwdlFTurQmmpwKGtwFZ2AL9QLB/uFY8US3DWxBHH0zBWi5rc5MhJruZOqqSj45dwZOgqdAuepvOiDwP22mZJxxFXG4edI/nUDZOH1hwP6eCUKmdAcpesNbiNh0QUEG+jXzMH2Pv0XNudNDdhqL6BfRvFntHuQlocdhwquFocH2xcCO+yb28vHXnM8ajW8KbWtnFSnn/dw2E/cBabqXlIQWs1zNk+69BKj81tQ9hR6za6pBVCxBBPyPxACWCFqwaH9GA/w==
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=t8hmnY0aC2xdlj9g5eJ9RbkTonQqKXrtQjX0wXyKp6Q=;
 b=CkvkCF5c59UmN8kMWzOqL6cCf1rMJXAJRiv94zBSk8pDO6M+mfBXMusUDSZayt16udDqdq1opQeT/tSRQ2+1SOaVLwphnxJMoosx1zZls1yrpQNCLfpl6XQZ4q4QrJXjVI3SbX3/CNd3lQaCJEaNHeXM5R/h1YIU2qfuMqE57Pucc1GCwrR9H1ZYnIrAlr/TbmocJXxbS6CQyWisrogO0EPnS76Xk4WDrhcNIbIOHCFmj6W2k1oEhb2vBHKGNCIlrUfUst3ALQMXbY4mMTwV60bk36F6IWFrsnqIuo7cmWFCwpSwoU/Nj1f7VlTD+K0M0iCFptBG2iSCKkdePtB4bQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=t8hmnY0aC2xdlj9g5eJ9RbkTonQqKXrtQjX0wXyKp6Q=;
 b=K/eXOYZSJSNXc5q/loAY1j0eupoyh6w96CSt9e7bnwe/NI0COYCUrMo4sC8YO9yrf9sJBSlBAcIDpyVrp8HHdQbesgO6xjt9bNaJJS0EZOoalanLO0iYEyC2niK/4Ds/I90yGotiq4kE1nWuz/+P6uIr+s8OceVPNIFtDKXd7i/fhXRkg8Lhd26ISrrfFzlUXXLYmxNXGBt+UawQ/HTeD8L9W/duP/IVpnlUzBAXEFeUXkwgyO42qj9GymVNSbFvnqS7DZRv/oB1SV/e+6Uoep4QO7tOoPnksPgxagU9tl6AaNiuQo57gY8nMqmkkU8oqLkErCXdwDhAU5q9wKJ9VQ==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Jason
 Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>
Subject: [XEN][PATCH v3] coverage: extend coverage on .init and lib code
Thread-Topic: [XEN][PATCH v3] coverage: extend coverage on .init and lib code
Thread-Index: AQHccDEmmUShmwm5mkaS+qWQBIDIEg==
Date: Thu, 18 Dec 2025 15:15:31 +0000
Message-ID: <20251218151530.249065-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM0PR03MB4594:EE_|DB9PR03MB7194:EE_
x-ms-office365-filtering-correlation-id: 07899b37-b728-4012-fc02-08de3e4848c7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|7416014|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?z+Qdh4Doje2bVFod4QQWKAJrT6CvJD7ILubiw5vB607iw3/3+myQQVO2sL?=
 =?iso-8859-1?Q?0RYaqywWU3YxJyk7sN89an4NiPIroDaK/hp3BJl9YlYALvs9R5emDtgm40?=
 =?iso-8859-1?Q?iHRlEAXPKch+RKseGP7silC7i1JbmXsAiqiXrav5B27E894wAaLsc+eOMW?=
 =?iso-8859-1?Q?J1hF9sSGbhE23cVOTuImNFuLMmmRY9L8dtEluxZr7r6i9lzT0pRrEJzMgB?=
 =?iso-8859-1?Q?E8QjwuIx6uXfW0a8F4P1mX/vP9YJsQtu3IaWJmmPFM6RyfkrmhZKKy6R4l?=
 =?iso-8859-1?Q?wmP9dt86PXkuRsD550bV6p6wuKPzRjNU+5RAUxec8tdgjWYDtvgSDV3ATx?=
 =?iso-8859-1?Q?dEpaGUlt3FReTexSoVb73yerIrGQ12JEx4ZEcPlcIZ4KMMDAjxy02bVLmC?=
 =?iso-8859-1?Q?t1goRnNP63pkIm5+XBKvylSQ30TId5H+jfEkitw2tElckzSpIJtmLYaHQq?=
 =?iso-8859-1?Q?EugiVweIRoZct8TmxVLDqopomtDf4CqybXM3F14TEs9reP4VCg5flYkmHR?=
 =?iso-8859-1?Q?aeDZ5vtjOQij7VOpjzYRyLVoa2lw1ccYpX42R5MMylO1qpDMkxwJTPehYf?=
 =?iso-8859-1?Q?vVk+jrpSa6K9Xeunph6dwb0XhbuS7zP5raktS6tIswfJV5D2HpcDnfw55Q?=
 =?iso-8859-1?Q?Zqmr+vGC4ahVHXvHI9Yvq1qXYYHH2+F3pIgYQTnqVKxwemeTfALp5lyhy4?=
 =?iso-8859-1?Q?FXv8chuQibXo2E2RSboC9VtFKmfV189jH4et6oLheQIxqeZUJO2yquZgQu?=
 =?iso-8859-1?Q?Own9jlZoSePAXOTJumGco+xes6P7FbcrKduThzZLYKCgciM2d2prXzJJFj?=
 =?iso-8859-1?Q?6qMT9p8WVltaZLBJ+O/zQ2iX4GUHs99sk0JmgBXg6FDyP+s4qLOLgbey9c?=
 =?iso-8859-1?Q?eDmn16azozwl67n8+GQsS6pFkH9q0CdjVkBG5xm39SEWsgeCjBr6jbvC0k?=
 =?iso-8859-1?Q?Ud4pxpY+ZPcLqoBqBjEAC0EIyO6HxtSQ0ilGPlJ0Gyf38+2wn/3I1YBmne?=
 =?iso-8859-1?Q?OMadyVni3qgKhEQdmYE6rrGAYMbjc5awt8xza7VEm2C+Vh/xVxSc0vVnvC?=
 =?iso-8859-1?Q?tWfLMiEB9lVstTahG6IW4d+S9Xh8/jJ4Aw9Y9pgCKY2j+iTkYakI1chMNu?=
 =?iso-8859-1?Q?uQxD49KrDSanhpuQwDlWD9pzy653oCUQ+G7qt9oRSzYY6DWrL6pFUQQWig?=
 =?iso-8859-1?Q?3jGpg4rYAfK3ipUDP0BgUwp8Rd9fOEYIU2Lu18CNpgBgNfI0eH8zQh4p6L?=
 =?iso-8859-1?Q?nRx301CjeGhKUz3N2QUbOIWnaSjzUQ1BqeAbSCt11bVjHH0ZCa+WgkDJHF?=
 =?iso-8859-1?Q?LUpFCFN+AaIAfQHG9aGvx/GPB0Sk8TE2xEpISrCRWWLrqnK96heRc0aJuK?=
 =?iso-8859-1?Q?dLvHtg4/6bIuE0Ltp1Y/RfqyEHG0Bl+UjsSO2uILBi39QCmOq4P8snqMnu?=
 =?iso-8859-1?Q?fkLAa33yYx/yvc5xNf5jrEKmOKY1tq0VVDrTKnoorfoxdpxT7fNMWwcOEx?=
 =?iso-8859-1?Q?BcfnfI8X3+Jq+1JiEHwxVvH0NamYz1DmMF+wUYlc3lP33baAitNrbv+jBJ?=
 =?iso-8859-1?Q?8F73umg2nmfvbM+HsXn3/ei9NTtA?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?4/Q0aMUQHS+JAc5ig9MbMpLqn2FoFREj0TvsIxtHQamJvORnymz6jMevTF?=
 =?iso-8859-1?Q?IdXn2iDbgFN24E54++zEw90zsh6VhJAxIbxtHyJKLYq6JsTNw1GKXTSWCd?=
 =?iso-8859-1?Q?WPT8j1tNHorylV4+Rs3w1WLa+/OUCbMuo582xOeXzzc0A91z5EAWjjiEvV?=
 =?iso-8859-1?Q?04AO3uRoowtkP2Q58mvNVwBoeqs0zxQlfocu1Lu4DHe5LWt33bAj6ew1r2?=
 =?iso-8859-1?Q?7Gfd1FKJ+y+fx61zzA+4V0rQgB1BhAGvznXfqmt+sIvIcK67FvChRNncUt?=
 =?iso-8859-1?Q?3sJ9vc/tw7fGtshr4g9pfmKUtIKAkPMgpol4138XPwebC2gjk/BO0mQSQy?=
 =?iso-8859-1?Q?6Ytp8dW5qDQ6/mn0mOXTZPanahgkQFRoXe0it3xoLVCVBGMrlnofy7NA1B?=
 =?iso-8859-1?Q?YLP9e1jwt0vQyCcbBIvyuz4nngC3j+l26vWfyFiVY9qc5CFJUgQnYTdN1X?=
 =?iso-8859-1?Q?/BztRdnUxFeXpwcNCahsC7ENkgAObI1mtdEz5F+z/nFfQ5f9xkPJYwU+xi?=
 =?iso-8859-1?Q?T+EdK0NgqgKACbG6gsXM34mzlmE0Px/r5aRJbnidq0IpiBKjUx4VmrrbQ5?=
 =?iso-8859-1?Q?xQ//LC/Kj9/yYEeHoKL7SLVARBR5WPlPiW38u5F5oRqhxcrD1sntOXSCsH?=
 =?iso-8859-1?Q?ZHvjURIMkT6k6K+0YExDvjhHem2HuVhEh2AZlZ2Yj3xE2rKAAXixK6i19R?=
 =?iso-8859-1?Q?cG1t2bzBJfB13gsBMaEMd+sjV9SdAfxKN5Uwcl89hY+MP/7gtyG2aPtJcy?=
 =?iso-8859-1?Q?ZARPYykmhPRbHo/GgcJ8108Ljxop9gH6Qh54j5eLuj/wp2Vuww3F8qUTUW?=
 =?iso-8859-1?Q?1jxo+zpzNDyALwrx+t6Y9ACMZmBdWXvuzgBQJPGnFdLLt6SA472lz+j2XG?=
 =?iso-8859-1?Q?vlCi0NTz9ua3s8EgWBjxrXvv5NOSimeO7OAnb63lUQ6qht6VJ4XwpQIJDb?=
 =?iso-8859-1?Q?CtswRUMykqNAuJkX1vmWZV1d5zADmnVKugQebnezT77kzqcl8CjYl+Hvpo?=
 =?iso-8859-1?Q?5gE2BjJS8iOFThXCVEIjaq4MeXbWNZy5wIzcbf0RK5lG5mvX7NUkU7cDp+?=
 =?iso-8859-1?Q?Sbx6DHBZGNFJLz0vuZ0FGLU9aLxXGCjR/skTMAffN/wl4SZO/yagVAGQFV?=
 =?iso-8859-1?Q?0w9cI6xUO/vrgZQIN34wFEyBBSSFKeT93vqqRlWLlxT13OyN0N4xAKVvgk?=
 =?iso-8859-1?Q?/idY3qsvq731ErwOChQMgF2xzl9iDn+cFUtZVM1sOYsOvhfgiCAzxoLYcX?=
 =?iso-8859-1?Q?i3x73olqvhyw6mkU6UODbWvvL/hTZdGuw/RV++7DHMN+H9hB1fVpg4w0Pn?=
 =?iso-8859-1?Q?X62z4rWQrEh+8Y7wDAawwdFVcj8Na450NgIxYdbYscDAskZJbhkONIArl4?=
 =?iso-8859-1?Q?oOyonMWPs2+iV1ZXmZ2lZwf+6Roacbf5mfy9RYLKFVwWp1iah0fUDf2Rnn?=
 =?iso-8859-1?Q?CnEBVr13cPSq0PPmpKfUOkxu3rGo5zsARwwxdLAiIbq9dd1bhNZqpUziwy?=
 =?iso-8859-1?Q?wEr+TQdKn98L8loPCnEfmly5xYXTV8VRrt5Rxyk/ukMtxybIbNtF4MHqoz?=
 =?iso-8859-1?Q?RCDIqaRqeIIFKimN59pAVj5E8OobjtQrqBGT3igUwdSk04YjfEDegryMur?=
 =?iso-8859-1?Q?5cOgtidU3kKBJ3golFhrZQdmQwT8WAYRL4ctp13IAU2eMJixPPDXLDyA?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 07899b37-b728-4012-fc02-08de3e4848c7
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Dec 2025 15:15:31.2245
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: kgCxoa3GRRZrrOBqJtGWD6U7CzJF/aLB30yglhxMJgjnWE8kEQwYs+izCifEeA3AymDMlprq3PEJWHVkwGFlWx4o1Vw/68mOFS/e4qxr3jk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7194

From: Grygorii Strashko <grygorii_strashko@epam.com>

Extend coverage support on .init and lib code.

To enable coverage support on .init code the gcc special
section should stay in memory after Xen boot when COVERAGE=3Dy.

So, add hidden Kconfig option RELAX_INIT_CHECK "Relax strict check for
.init sections only in %.init.o files", which is selected when COVERAGE=3Dy
and allows to bypass strict check for .init sections only in %.init.o
files.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
changes in v3:
 - drop DO_NOT_FREE_INIT_MEMORY: only gcc special section should stay
   in memory after Xen boot
 - split make cmd quiet_cmd_obj_init_o on two: obj_init_check and
   obj_init_check
 - drop libfdt/libelf changes - they need additional work
   -- before v2 of this patch libfdt/libelf were out of code coverage scope
   -- v2 allowed to enable coverage for libfdt/libelf easily thanks to DO_N=
OT_FREE_INIT_MEMORY
      which kept all .init code in memory
   -- without DO_NOT_FREE_INIT_MEMORY it's not so easy any more, so drop li=
bfdt/libelf changes

changes in v2:
 - add RELAX_INIT_CHECK and DO_NOT_FREE_INIT_MEMORY, those are two differen=
t things,
   both potentially reusable
 - enable coverage for libfdt/libelf always
 - enable colverage for .init always

v2: https://patchwork.kernel.org/project/xen-devel/patch/20251205193411.136=
8659-1-grygorii_strashko@epam.com/
v1: https://patchwork.kernel.org/project/xen-devel/patch/20251203222436.660=
044-1-grygorii_strashko@epam.com/
 xen/Kconfig.debug |  6 ++++++
 xen/Rules.mk      | 22 +++++++++++++++-------
 2 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index d900d926c555..7770de87a44b 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -39,11 +39,17 @@ config COVERAGE
 	bool "Code coverage support"
 	depends on SYSCTL && !LIVEPATCH
 	select SUPPRESS_DUPLICATE_SYMBOL_WARNINGS if !ENFORCE_UNIQUE_SYMBOLS
+	select RELAX_INIT_CHECK
 	help
 	  Enable code coverage support.
=20
 	  If unsure, say N here.
=20
+config RELAX_INIT_CHECK
+	bool
+	help
+	  Relax strict check for .init sections only in %.init.o files.
+
 config CONDITION_COVERAGE
 	bool "Condition coverage support"
 	depends on COVERAGE && CC_HAS_MCDC
diff --git a/xen/Rules.mk b/xen/Rules.mk
index 2b28d1ac3c18..25aeb08cbfef 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -33,11 +33,15 @@ cov-cflags-y :=3D
 nocov-y :=3D
 noubsan-y :=3D
=20
+# when coverage is enabled the gcc special section should stay in memory
+# after Xen boot
+ifneq ($(CONFIG_COVERAGE),y)
 SPECIAL_DATA_SECTIONS :=3D rodata $(foreach a,1 2 4 8 16, \
                                             $(foreach w,1 2 4, \
                                                         rodata.str$(w).$(a=
)) \
                                             rodata.cst$(a)) \
                          $(foreach r,rel rel.ro,data.$(r).local)
+endif
=20
 # The filename build.mk has precedence over Makefile
 include $(firstword $(wildcard $(srcdir)/build.mk) $(srcdir)/Makefile)
@@ -146,10 +150,9 @@ endif
 $(call cc-option-add,cov-cflags-$(CONFIG_COVERAGE),CC,-fprofile-update=3Da=
tomic)
=20
 # Reset cov-cflags-y in cases where an objects has another one as prerequi=
site
-$(nocov-y) $(filter %.init.o, $(obj-y) $(obj-bin-y) $(extra-y)): \
-    cov-cflags-y :=3D
+$(nocov-y) $(extra-y): cov-cflags-y :=3D
=20
-$(non-init-objects): _c_flags +=3D $(cov-cflags-y)
+$(obj-y) $(obj-bin-y) $(extra-y) $(lib-y): _c_flags +=3D $(cov-cflags-y)
=20
 ifeq ($(CONFIG_UBSAN),y)
 # Any -fno-sanitize=3D options need to come after any -fsanitize=3D option=
s
@@ -259,8 +262,8 @@ $(obj)/%.o: $(src)/%.S FORCE
 	$(call if_changed_dep,cc_o_S)
=20
=20
-quiet_cmd_obj_init_o =3D INIT_O  $@
-define cmd_obj_init_o
+quiet_cmd_obj_init_check =3D INIT_C  $@
+define cmd_obj_init_check
     $(OBJDUMP) -h $< | while read idx name sz rest; do \
         case "$$name" in \
         .*.local) ;; \
@@ -269,12 +272,17 @@ define cmd_obj_init_o
             echo "Error: size of $<:$$name is 0x$$sz" >&2; \
             exit $$(expr $$idx + 1);; \
         esac; \
-    done || exit $$?; \
+    done || exit $$?
+endef
+
+quiet_cmd_obj_init_objcopy =3D INIT_O  $@
+define cmd_obj_init_objcopy
     $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=
=3D.init.$(s)) $< $@
 endef
=20
 $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): $(obj)/%.init.o: $(ob=
j)/%.o FORCE
-	$(call if_changed,obj_init_o)
+	$(if $(filter y,$(CONFIG_RELAX_INIT_CHECK)),,$(call if_changed,obj_init_c=
heck))
+	$(call if_changed,obj_init_objcopy)
=20
 quiet_cmd_cpp_i_c =3D CPP     $@
 cmd_cpp_i_c =3D $(CPP) $(call cpp_flags,$(c_flags)) -MQ $@ -o $@ $<
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 15:19:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 15:19:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189785.1510490 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWFmT-0001x6-Qy; Thu, 18 Dec 2025 15:19:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189785.1510490; Thu, 18 Dec 2025 15:19:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWFmT-0001wz-OM; Thu, 18 Dec 2025 15:19:05 +0000
Received: by outflank-mailman (input) for mailman id 1189785;
 Thu, 18 Dec 2025 15:19:04 +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
 <SRS0=kszt=6Y=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vWFmS-0001wt-Ar
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 15:19:04 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e23334da-dc24-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 16:19:03 +0100 (CET)
Received: from DS1PR03MB7871.namprd03.prod.outlook.com (2603:10b6:8:21f::17)
 by SJ0PR03MB6456.namprd03.prod.outlook.com (2603:10b6:a03:397::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.8; Thu, 18 Dec
 2025 15:18:56 +0000
Received: from DS1PR03MB7871.namprd03.prod.outlook.com
 ([fe80::3a7e:e6ed:f8e9:9fb3]) by DS1PR03MB7871.namprd03.prod.outlook.com
 ([fe80::3a7e:e6ed:f8e9:9fb3%7]) with mapi id 15.20.9434.001; Thu, 18 Dec 2025
 15:18:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e23334da-dc24-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ArHfal4Mea3gGc6qOydg73A2DMXHtgyoUfRuyZvaABxfzjf92A00MpFGEPBAKTUoyrsmhqPpQCGU3Jjo90gvQE0X9lHFWY91rj9Vp+xCVN/DhzL6GbsmJ4uxeS/kGt2o9lTVjyW7DJQzwekLtytNtZ7rawAJ4x8RJ5Mgc3ZGV6LeW1pzx1Cwh1IaEZMYyPoeNrB4NAS26he6eIsFSYJHa0scsi+COAWeF21Kje52jB+dcK/GVK92W7EOgcNls3a3lGPajLSBPK35WaOqEVAqHeUdmm6bRTzYZusGVkqEX3WTYAjCfG4UJwkItLZKWkSeISTMLSHN9noUCzmkkHGFUQ==
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=R++uV1yAR9k1ljueZvT2JgoT5w32aYSiPMmriZgXdoc=;
 b=JrHKbfzoyF/uwtQM1+Z8Hb8wbZDie38Br3kMZDoxf7U92nAKbj4ctHKapWi8nbqh0Jyag8A4bQTMwExvz87wg/5fYFox02JhGOgxSmEhEW066ZW1qPZnXP1RkXpyxRc1NtaLaLMMMrzJyF1Dd6Uchf6SkEcTIpr8t9M6CMOuMU7BVWG1BXAm5MlidCWjV37m7cxrf/wes/24tDTtIddP7NM5mFSYUmbLqPjUpeuMDO59aJm6bSzSIl7Rl4/Auvm4vXJnW+2siHeZAj23hoES7aE5xk7axWDGu8Yrode8tP5eA+z88YRZt8L5kCqAN7sOICnl2u3RTkxQetpz40cA+w==
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=R++uV1yAR9k1ljueZvT2JgoT5w32aYSiPMmriZgXdoc=;
 b=sf+AJZXCuoRDwqNQ5mtegMBIfoiX9oZVHGtsGd+XEUnwSaG9IU2RXRYC5k8+fA4dU8/YzRRrXffe14/iDDF97O5bKGpHwMyevJHjYRRoO4/eT3dGgSmMg7PxYqBFIzEMgTozdpTFjfBxVl1/TAp04HKl3foAYAwFCjn4WTZomyg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH] libs/xg: allow caller to provide extra memflags for populate physmap
Date: Thu, 18 Dec 2025 16:17:28 +0100
Message-ID: <20251218151728.28339-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PR1P264CA0081.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:2cc::19) To DS1PR03MB7871.namprd03.prod.outlook.com
 (2603:10b6:8:21f::17)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PR03MB7871:EE_|SJ0PR03MB6456:EE_
X-MS-Office365-Filtering-Correlation-Id: fc7c65d8-301f-4fd4-544a-08de3e48c2ed
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dS9ZdU5KSGt5MDJJVzUwZzZBeC9CODRRQjFZaG55TVI1akpIZUlhSjBEWEVY?=
 =?utf-8?B?Z2VPWFNsRGpKSHpicDVtR0VWRXc1NGxMczA3b1Q3ejNmeUhSZUVKMXVHVVNk?=
 =?utf-8?B?V3dVNFUxbm9PUHU2MDArc0szeExFTkhkMVRkYnlIeWMxUDlFSXV4SzMxYk5J?=
 =?utf-8?B?VTZmbjVBdVlaODZ0Nnl4SWZPOFExaUxuTkFoVGlaTjg3clRpZnpNTWN0RElx?=
 =?utf-8?B?TWtmUHB4aG52S0J1NzdSUzZOWkZKR3Y3dGxlWkdzNkZZWi9Xekg2NDZvcUlP?=
 =?utf-8?B?dit2RXdEanBVa3Mvb2xQVFkwNmRTc09NeCtMdm9zZ2UyWEFPOFh0UVlrWnJj?=
 =?utf-8?B?SWFJaVp0SXV4UzlqUVh4dk00WXJoTy9GVW0yWmNhdUk2OElXRW55eWxmbEU2?=
 =?utf-8?B?Vmp1ZEJ0MVNQUnlJUDVKOURiWXFKNFpWYlA0VnY0MmwrQktXdHU0SS8xVHJr?=
 =?utf-8?B?b0hMQTJhN2pBeDRzbm8xNG1xSGJDVE54TUMvcmgyOGRybXNreHMvRFBUdHcx?=
 =?utf-8?B?Y0pVUVdwRVdibVFPTEhMVkxGTVl4bHJ0U01pbUFjRWhlNGhLbVRhWVU0RXBU?=
 =?utf-8?B?a1Z3ZFhkQW1xd2lMcVhMMmtxMzJCODA3bXU0Y2tuTnhvUnZGY0NRYzh3SDVL?=
 =?utf-8?B?UVB5VTJXaUQva212YWRUeVJIeFhWd0VONnhRU3kwMkF0c3RMRjBuQXhEeENa?=
 =?utf-8?B?Z2liQnhSTXR5bkFkejJXVzNHMWhKbDNSdWt6NGRGYnlCYlFiTUQ5OTRPNHFR?=
 =?utf-8?B?WWRNTEpHc3FBZUhNM2k5WGExZXMyQ0ROSS8rYjZuOW1LK21GcWhqaXd4eGdJ?=
 =?utf-8?B?MzdadHQ0T1piQ3NvY2R1K29URmtBVHRpTW04RXZMd0xzVVNHUGFCTU9hV1pn?=
 =?utf-8?B?a2E4VW1GbTJUbGN3ZHpTN0U4YlZVdWE0U2t2VDA4NGhZdDl3K25FMFZwWUdm?=
 =?utf-8?B?bjN2SVk2aURzUC8xc2llYVR0TFlQZFEzd2w5ekM0U1kvWFdvaGkvcndSQlM2?=
 =?utf-8?B?NlRvMWgzSEJpK0NtSzJLMjRkb3EvU2tPM1pMY3BwV0JJY2JxUnpieFY5Vm11?=
 =?utf-8?B?R3BGcFVtcEw2QlZRRGY4cHBSdFlmdVVmR0lGNXhUNXFGSTY1WEF0RStaVlUv?=
 =?utf-8?B?UTgwVWYvZW5VaWpaS2xhNFVlenExajRMeHhKc1RUU1hraW52SlgzV1ZNdk80?=
 =?utf-8?B?SmpDT1dqUXJuUVRycGlXZ3VLd3Yzd3dXcVJpOCtFaWJscFZPdnhPVDgwWkhG?=
 =?utf-8?B?TmtjS2hXREdHTXdWZDRHZ1A3WXBDOG9TSldJSVdJdS94K1ZsMVN4N3JQOEVv?=
 =?utf-8?B?ZkdwVjVKTHI0R1BwNm5aaUJIWmpPWXVFOGFGbXlNaUw0eFQxa0MxSGJJZ3BD?=
 =?utf-8?B?N0hYZnY2ZVNrdkQ5QytlK00rUFFsaDJndmFUUlpJQllKVEQva3ptdXhKK0x3?=
 =?utf-8?B?WXBGUmJ6c2oySHNpMDl2UzZ4YWQ5NUM2T2JmdjZPYzE5d2hKRGg4SFlmMTRS?=
 =?utf-8?B?elZEY00wdXplS3VVYWdBaWk3cTFNb0w3bFF1TlpHZE85L3NKSDkvR1Zub2wx?=
 =?utf-8?B?aW55Y3lGUW5jMUd2NWk3K0RDMmJBQ2MrVVVYZ0JhcHNQTm8vT25WSXlVaUNy?=
 =?utf-8?B?N0pkRUJxSGh4ekpjVDRIUXhWUHdBT3VkMTZzUUlacFBqOXBZK3hKTlFuN245?=
 =?utf-8?B?dS9iWHc1cStQYmpNNDFLUWwvSzl6dWUrTlRDTEtMcjRPNGRyNytXZGV3TzhP?=
 =?utf-8?B?Y3B0VkVoOGtHaHpKc0xaOFkwNHJ5TlFCQ3F4cjBIU0tUcURBSlZPam1HY2pR?=
 =?utf-8?B?SnJwS3pXZ21HOU1TY0NUWkQrQkNiOThkbjFpbWNhVVRQOW51L2dMUHpnOTZR?=
 =?utf-8?B?aWw3M3JpaWFMdE1NNW1IM3pUU1d4L1J0NllBaXl3SDhmVTAzVzA2Y3Q0dEdy?=
 =?utf-8?Q?iVg1br5HCbSfjb2bklCCbeYrnucNucTR?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS1PR03MB7871.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YUR0THQxaVE5ZldPaVljQWdnL1NIWjBkMndBUkFHMXpwYWdyOUMvTStkSVVD?=
 =?utf-8?B?bjlqaEZnZmEvTEZYcUNvVmp5V3FQSkRHeDFMOXMyRnc3UUlGTDVyRGt2czdU?=
 =?utf-8?B?SkhHeS9NeTZlTWNmMnJnQm9mMmp0eExnOFE5eUV2RnEwazQxOVN4d0dXNmFO?=
 =?utf-8?B?Y2YzZWFyWFB2dk9OYWc2Y240U2hYd3Jia2dxWVovMW00WTJlMk45QU1WWWln?=
 =?utf-8?B?TXB6WTJPQ2tLNUtmSHN5T2ZCTEtVeEpmNEtxVDJQWGM4Z2FlQ2QveU10TGxo?=
 =?utf-8?B?QVVYTkxlb01oS0w0bW9OeGJMU1FwcFc5WXRlU01YWGN5WUJSZ0VCbExLV2VW?=
 =?utf-8?B?Wmg0dTBLT0xLOUxTZEVRVWI4MlN3cTI2WExQbTJrSk1odGx1QmdoNFJ3dFNr?=
 =?utf-8?B?ejdjOWlBLytRVEpyWnZtMnJzNmhFM0JlOVIrWnUzK1kzV1A4Z01qTlI1aXBI?=
 =?utf-8?B?dFlOS3h1dnU5a0VQVXFSR3hSNzErMTg4K2xMUk8vcEUxcU5USkdabjBLTzdm?=
 =?utf-8?B?SHhPVTNtWSt6WXE3UDBFMjgxMXVvZDJTVVZHYndnZlVhcnVBUHFUM3RPMm04?=
 =?utf-8?B?NTVxT3FXalE4SmIxems4UWZvVyt0NFRma2trL3NNL2NtTXgrb0N6cFdPZTNh?=
 =?utf-8?B?L3ZpRXZQVFloVGFtMFArYlZJa0RWUFVrM1VGdTFFRk93elp1UXBQQmJmRHJn?=
 =?utf-8?B?WGNkQjRITXQ4KzdNdGlyYUtwS1FnTXBKeE9YOEg2NGJSckw1ZlNpcEs1NWd1?=
 =?utf-8?B?M1Urc0tjSjNMZzh5cWd6aDZKMVBGYVcvblJFVGRSTFE5dmtaRk1Xai9aZ3ls?=
 =?utf-8?B?ZDVWS2ZZMFhQU2lzTFVKYTVZSU5wU2lsQkJHa3ZnRzAwZGMyS3IzV0FRUm9q?=
 =?utf-8?B?eENYZUNTWXlJSVd1WlVHVndoaUJvb1NUWVk5ajJmcDlJd2lKeEhBenhEZlA4?=
 =?utf-8?B?MnR2OXhOOEd1MGdBeG1ZYmRXS0hIdG4zY0tJeTdqNmFPdW9OSjFldDQrbTRp?=
 =?utf-8?B?TXVRdW0wSzdtYXdpcVdDWENwNnR5bXhtVUNRTVlKRXVOTFM1M2t4U1pod1FS?=
 =?utf-8?B?WTJUYlljYXJUb2grWTNXUmVRL0VRN1d6T2oyaFczem5pZGRQNjlaQ3Mwenhq?=
 =?utf-8?B?ZFl5eEM0ZFBpeWZpN3R3OC9FOUVFT1RTdDN3enZPeDJqVkZscmF1R2pGdUF3?=
 =?utf-8?B?Ni9Gd3c4S0hKdmpOeUFIenFrYk90MWVaaUlpQ0FRTW0vSkJIU1pJVnkrdDBy?=
 =?utf-8?B?djJpYVNrL2RESWpsdW1iakU0ODFSbDRwdWVYak9TVU5aZjhzRFNaRmpCaVMx?=
 =?utf-8?B?ZThjekhSaGVlcC8rdXp5WHVDYlkzclRNTFdiNHJzdXhwODB3dkpQQ2x1WWlx?=
 =?utf-8?B?VUtQeUFRQUp1SG9YMFBjbE5LQ1k0Y2ZndkhpRDJTendsK0UydGwzUGEyVGNH?=
 =?utf-8?B?ZW1YWHVZZFA3Z3hhUlRNZ2FkSHdRRWtjTlM2WDZjLytyaHFObUJ4QXc4bE92?=
 =?utf-8?B?MW1WTnp4ODhkaGxYTmt4T3BrM1dvUTZwV3ZUQkNkQ1JDcU8xZGNsUE5IUm10?=
 =?utf-8?B?UnFiM0VtZkkvNkdQYjFEOHFPWUV3MDlpS252ODM0VXVxZm9zYis4SERLeEtu?=
 =?utf-8?B?ZVV1QzYzbjdwNkY0OTEyVGUyMTZCT29ZNS9QN09PNlkrSWhSZE82M0NMdGRh?=
 =?utf-8?B?QkRicGdaSlMyK2U1Q3FxeDd6WlUwT09FT2pDaFFrWGQ5NWw3bTkycThiS3No?=
 =?utf-8?B?MUVtNHU3VDE5S3JTSjc3R0xvZUZ1ZzdrdnBJNy9FWFg0TzIzMUxldzhqemRF?=
 =?utf-8?B?Rk5Ccm5uc0orTHN0Vi96NzFRaHBFM2J2WTdJU1kyYjQrUmM3amFOMHYrZnpK?=
 =?utf-8?B?UGM0dW5nSnR3MzVvTk5jSGpheW55dEQ5eTk5cWExb1NnNnRVUTBLRjU4Ly93?=
 =?utf-8?B?anFBWHBTcDU2UmJLWHR6bzA5N1NkZm1DWlRkZDhrNUx3aHNQZnNOVGxoUkpw?=
 =?utf-8?B?OGFIN2FMREttSFJHQ2V3Qk0xbTFyQkRSdDhmR2FQSnI0UlN1V3FIOW53cWhq?=
 =?utf-8?B?Nk9VaGJVREgzQTlyL0NyMFk4dVQ5cnFOZDlYSHJNdUNMN2pNaEFHZHBoZlhP?=
 =?utf-8?B?SitiZ1VUai9qNjNGa2wyVGtyOFpzSFI5NmlzN1NTeFJKNWFhczRIM3FGa3ZH?=
 =?utf-8?B?ZEZYS1cwdlQ4WWN4OEpXeXRMRXNkZzFHd08xalNtS1RwSnc2V0YzRzExSVVN?=
 =?utf-8?B?YnlyZmtSZjl0NHdzNnhFUklaZ0NHRlZ3NUdKa092bzZzSGJub2thRExMOElh?=
 =?utf-8?B?SERZSlRLam5QZEJlaWVpeUpnVUZDS3ltYVp2LzA5N21BNnJCcU9TUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fc7c65d8-301f-4fd4-544a-08de3e48c2ed
X-MS-Exchange-CrossTenant-AuthSource: DS1PR03MB7871.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 15:18:56.4107
 (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: CSGXzcBz0OyS/r/PpaQt9Uf3lBxBQukXIPHT8nSGOhXrrTZzK2H7w7B77JDScDB18R50XedERTTd/D0Bbzwf/Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6456

Introduce an additional memflags field to the xc_dom_image and
xc_sr_context structures and use it to pass additional memflags to use when
populating the domain physmap.

No meaningful usages of this new field are added as part of the patch.  The
only know usage will be from the XAPI domain builder, which lives in a
different repository.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 tools/include/xenguest.h             |  8 +++++++-
 tools/libs/guest/xg_dom_x86.c        | 13 ++++++++-----
 tools/libs/guest/xg_nomigrate.c      |  3 ++-
 tools/libs/guest/xg_sr_common.h      |  3 +++
 tools/libs/guest/xg_sr_restore.c     |  9 ++++++---
 tools/libs/light/libxl_save_helper.c |  2 +-
 6 files changed, 27 insertions(+), 11 deletions(-)

diff --git a/tools/include/xenguest.h b/tools/include/xenguest.h
index c88958faa9a3..7c3b8b098352 100644
--- a/tools/include/xenguest.h
+++ b/tools/include/xenguest.h
@@ -242,6 +242,9 @@ struct xc_dom_image {
 
     /* Number of vCPUs */
     unsigned int max_vcpus;
+
+    /* Caller provided memflags to use when populating physmap. */
+    unsigned int memflags;
 };
 
 /* --- arch specific hooks ----------------------------------------- */
@@ -611,6 +614,8 @@ struct restore_callbacks {
  *        specific data
  * @param send_back_fd Only used for XC_STREAM_COLO.  Contains backchannel to
  *        the source side.
+ * @param memflags Optional memflags to pass in
+ *        xc_domain_populate_physmap{_exact}() calls.
  * @return 0 on success, -1 on failure
  */
 int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
@@ -618,7 +623,8 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
                       uint32_t store_domid, unsigned int console_evtchn,
                       unsigned long *console_mfn, uint32_t console_domid,
                       xc_stream_type_t stream_type,
-                      struct restore_callbacks *callbacks, int send_back_fd);
+                      struct restore_callbacks *callbacks, int send_back_fd,
+                      unsigned int memflags);
 
 /**
  * This function will create a domain for a paravirtualized Linux
diff --git a/tools/libs/guest/xg_dom_x86.c b/tools/libs/guest/xg_dom_x86.c
index a82b481a123f..a141a5861b25 100644
--- a/tools/libs/guest/xg_dom_x86.c
+++ b/tools/libs/guest/xg_dom_x86.c
@@ -1260,14 +1260,15 @@ static int meminit_pv(struct xc_dom_image *dom)
     /* allocate guest memory */
     for ( i = 0; i < nr_vmemranges; i++ )
     {
-        unsigned int memflags;
+        unsigned int memflags = dom->memflags;
         uint64_t pages, super_pages;
         unsigned int pnode = vnode_to_pnode[vmemranges[i].nid];
         xen_pfn_t extents[SUPERPAGE_BATCH_SIZE];
         xen_pfn_t pfn_base_idx;
 
-        memflags = 0;
-        if ( pnode != XC_NUMA_NO_NODE )
+        if ( pnode != XC_NUMA_NO_NODE &&
+             /* Only set the node if the caller hasn't done so. */
+             XENMEMF_get_node(memflags) == 0xFFU )
             memflags |= XENMEMF_exact_node(pnode);
 
         pages = (vmemranges[i].end - vmemranges[i].start) >> PAGE_SHIFT;
@@ -1354,7 +1355,7 @@ static int meminit_hvm(struct xc_dom_image *dom)
     int rc;
     unsigned long stat_normal_pages = 0, stat_2mb_pages = 0,
         stat_1gb_pages = 0;
-    unsigned int memflags = 0;
+    unsigned int memflags = dom->memflags;
     int claim_enabled = dom->claim_enabled;
     uint64_t total_pages;
     xen_vmemrange_t dummy_vmemrange[2];
@@ -1500,7 +1501,9 @@ static int meminit_hvm(struct xc_dom_image *dom)
         unsigned int vnode = vmemranges[vmemid].nid;
         unsigned int pnode = vnode_to_pnode[vnode];
 
-        if ( pnode != XC_NUMA_NO_NODE )
+        if ( pnode != XC_NUMA_NO_NODE &&
+             /* Only set the node if the caller hasn't done so. */
+             XENMEMF_get_node(new_memflags) == 0xFFU )
             new_memflags |= XENMEMF_exact_node(pnode);
 
         end_pages = vmemranges[vmemid].end >> PAGE_SHIFT;
diff --git a/tools/libs/guest/xg_nomigrate.c b/tools/libs/guest/xg_nomigrate.c
index 6795c62ddc28..9790d2b4a844 100644
--- a/tools/libs/guest/xg_nomigrate.c
+++ b/tools/libs/guest/xg_nomigrate.c
@@ -33,7 +33,8 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
                       uint32_t store_domid, unsigned int console_evtchn,
                       unsigned long *console_mfn, uint32_t console_domid,
                       xc_stream_type_t stream_type,
-                      struct restore_callbacks *callbacks, int send_back_fd)
+                      struct restore_callbacks *callbacks, int send_back_fd,
+                      unsigned int memflags)
 {
     errno = ENOSYS;
     return -1;
diff --git a/tools/libs/guest/xg_sr_common.h b/tools/libs/guest/xg_sr_common.h
index 0e419c3a96a0..f1573aefcbff 100644
--- a/tools/libs/guest/xg_sr_common.h
+++ b/tools/libs/guest/xg_sr_common.h
@@ -295,6 +295,9 @@ struct xc_sr_context
 
             /* Sender has invoked verify mode on the stream. */
             bool verify;
+
+            /* memflags to pass to xc_domain_populate_physmap{_exact}(). */
+            unsigned int memflags;
         } restore;
     };
 
diff --git a/tools/libs/guest/xg_sr_restore.c b/tools/libs/guest/xg_sr_restore.c
index 4aed5cf4acb1..e148fc594a73 100644
--- a/tools/libs/guest/xg_sr_restore.c
+++ b/tools/libs/guest/xg_sr_restore.c
@@ -141,7 +141,8 @@ static bool populate_small_superpage(struct xc_sr_context *ctx, xen_pfn_t gfn)
     xen_pfn_t mfn = gfn;
 
     if ( xc_domain_populate_physmap_exact(
-         ctx->xch, ctx->domid, 1, SMALL_SUPERPAGE_ORDER, 0, &mfn) )
+         ctx->xch, ctx->domid, 1, SMALL_SUPERPAGE_ORDER, ctx->restore.memflags,
+         &mfn) )
         return false;
 
     /*
@@ -217,7 +218,7 @@ int populate_pfns(struct xc_sr_context *ctx, unsigned int count,
     if ( nr_pfns )
     {
         rc = xc_domain_populate_physmap_exact(
-            xch, ctx->domid, nr_pfns, 0, 0, mfns);
+            xch, ctx->domid, nr_pfns, 0, ctx->restore.memflags, mfns);
         if ( rc )
         {
             PERROR("Failed to populate physmap");
@@ -901,7 +902,8 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
                       uint32_t store_domid, unsigned int console_evtchn,
                       unsigned long *console_gfn, uint32_t console_domid,
                       xc_stream_type_t stream_type,
-                      struct restore_callbacks *callbacks, int send_back_fd)
+                      struct restore_callbacks *callbacks, int send_back_fd,
+                      unsigned int memflags)
 {
     bool hvm;
     xen_pfn_t nr_pfns;
@@ -918,6 +920,7 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
     ctx.restore.xenstore_domid = store_domid;
     ctx.restore.callbacks = callbacks;
     ctx.restore.send_back_fd = send_back_fd;
+    ctx.restore.memflags = memflags;
 
     /* Sanity check stream_type-related parameters */
     switch ( stream_type )
diff --git a/tools/libs/light/libxl_save_helper.c b/tools/libs/light/libxl_save_helper.c
index 65dff389bf8f..64bdeb3b32fd 100644
--- a/tools/libs/light/libxl_save_helper.c
+++ b/tools/libs/light/libxl_save_helper.c
@@ -285,7 +285,7 @@ int main(int argc, char **argv)
 
         r = xc_domain_restore(xch, io_fd, dom, store_evtchn, &store_mfn,
                               store_domid, console_evtchn, &console_mfn,
-                              console_domid, stream_type, &cb, send_back_fd);
+                              console_domid, stream_type, &cb, send_back_fd, 0);
         helper_stub_restore_results(store_mfn,console_mfn,0);
         complete(r);
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 18 15:20:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 15:20:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189791.1510501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWFnc-0003Nl-4v; Thu, 18 Dec 2025 15:20:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189791.1510501; Thu, 18 Dec 2025 15:20:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWFnc-0003Ne-1P; Thu, 18 Dec 2025 15:20:16 +0000
Received: by outflank-mailman (input) for mailman id 1189791;
 Thu, 18 Dec 2025 15:20:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ars1=6Y=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vWFnb-0003NW-0V
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 15:20:15 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0c3f3790-dc25-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 16:20:12 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DB9PR03MB7194.eurprd03.prod.outlook.com (2603:10a6:10:22c::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.7; Thu, 18 Dec
 2025 15:20:10 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9434.001; Thu, 18 Dec 2025
 15:20:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0c3f3790-dc25-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LrrbkNah4+aJXvOpGP77fQGHLkHYuGf7HrSBd5uAVhhEnnTlfhZ8D50cj7p/p+GxtUs61VlbnSSWXlcCMd2KjWrqaZTmpE6qKJME9oK3zcxycOg7aTasOnEwd1gTrn2OLaQ/D6+8HlmS+MwxiUSyCbSfgSXbAcekWVmgPKr5/J1AgDgyivvwotOl21Me63dJXlANcpsChzWmtzcInh9dt0kTma9FXVFZBTiY9h1SplyJpc7TEQGVIVK9bAokSZSOSouL+sec2k8/ok4Z5tDlAPLvHkPGNKswfWX3S+PoLzsLYb7XgVAn1/azmuuQowJmMmBT3qOJftJH1BlVfIPSQw==
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=ZOw/OiQ9Hk6l/jPFyr2PywTlt1wkFNHno9E2uN0CUPc=;
 b=WlYjGz4hWXKjlaP7Ayb9o00KMt/ZUxxJfnswfFYtPH7WwBWceb+BQRUGQwAIWAHdOkSBNKZW0ZM2GH7vrZkv/C/eda20dwhzTghoqt/M+aPt+K/W9gObkZZiwVNUlZL/+8hJP1kiBYB4jdtoc+5I8GQhA/x2cN+5/413clouuV+MA2XeX4n+u8uKBlWdT/hAG7CAJBKSpTiyS/3ICgSl5OTBCwj3fXMHK9Sbbg+rfZHKEickucduGtU33rClz8RZEwxVuVs2GdDdE6+5n92PD+WzgHYZhMezH1tVa8pHW+JPl9MNEzSUdV9zp8XNr05jfDj5I/xzTaAUhDrFbFeNzg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZOw/OiQ9Hk6l/jPFyr2PywTlt1wkFNHno9E2uN0CUPc=;
 b=Z0reJ0MV1aq9xWGjyVBissKlZ1T2xQA2gCFsRv8Y5uwJ01MT6lP804VS63GnA0yu3A8YSWUeD9109d9xGv+dw995IeN1BNRhPZ/huMItRvBJ17S6mgZdNyMHVK+K3I4f8l1Sw9iTxttcef03Bbd6pgBvKj8c4j/aP6+OkLEhAN+3dSMVs26872bLDu279ZvjMh9nRIzxNQtVH5mVE+zEZNT6+QNlVFQTrYSp4ZyX19b59V2yVvxdmzGVJbpHI9Vr7OUSeJZMWrXrkLEp6A+YUqITA/9LMb8et4p8euO3L9W3P8zBzdrxcZNpY9Q5zmRU77hRbRVgp++oR7XUp5/ang==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <67f0d3e0-bd90-4817-a084-49d01d8305ff@epam.com>
Date: Thu, 18 Dec 2025 17:20:09 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen/domctl: add XEN_DOMCTL_CDF_ALL mask
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20251111201627.3579504-1-grygorii_strashko@epam.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20251111201627.3579504-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0020.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::9) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|DB9PR03MB7194:EE_
X-MS-Office365-Filtering-Correlation-Id: 31b4d442-0505-47e6-092a-08de3e48ef0b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cWZHMENrczFKNnVPWGdIVFcxWFpJTkVsSXFJUElvVVVsWkRUblBueGNGQXFa?=
 =?utf-8?B?OEgyTDdqRXA1amtvaFdwYVBTa1NRL0lDdVB6RFVYcHNqaUR4UHNybllNMGk0?=
 =?utf-8?B?VXZwazIwbHRqVUxSSTVRZjhaamV3OGdqVFQzUk01R0h6Z0RmS08yZXhqNnYz?=
 =?utf-8?B?UGN3dVExcUFjanYrRnh6S2xOT1NxQ2hlNysyaWJRT1F4SFJ5OC9oTEVqTDNa?=
 =?utf-8?B?UU5XTXhJWVgzVkxzaGVBcWVJclJYVEg4Z2xUVFgyRDZTQjJkNTlpR2FUOU5Z?=
 =?utf-8?B?cStoZzlacnhUZ0RxQkE0aHM2S1hxNzl2TUpVOFpFV09FTVJGT0VBM2Y3TkNT?=
 =?utf-8?B?SXZ0WmtYOWR1ckh4aGJNS1VRc0lSRmVqbER6ZXJzMkFiUEVJZHJzM1BTOW1I?=
 =?utf-8?B?ZnlXNE8ySEdkMExrbUxkU0VsdkY4Ym4vU1dpRjN4VW1wcEltckJ1cWV6dkhn?=
 =?utf-8?B?WUVKcXRibHdXeTE5azdDY1R0djFWb1dtbVZrRjFWNHplWEsyblZiMmZVeTZi?=
 =?utf-8?B?eVp5SGcvUTgvLzB0QkVsMWR0eS9DSUJhS1ZycVJPbG1rUmlFQ0ZENW0vZ2NG?=
 =?utf-8?B?cVovc1V1eVl4ekpZVGRHRGwvb1pmai9xbHA0MmlmS2EzWnZDeldDdEtkVkNR?=
 =?utf-8?B?c1NoV2Q1QTFxbFJHc3ZEUzdqNjBWSDRnQ2Q3Qmx2dkN5VWVnOHhzeUMxTW9j?=
 =?utf-8?B?VkFoMHRhZ0RXTW4vT0QvWDM3SWY3ZVVqcTMvaHNMTU5sZ2NoM2l1bEY5cDFT?=
 =?utf-8?B?ZHZ1U0lLcHN0eTkvY0g3eTg5MytaYWhqZzAxb3RFSm9INU96a1ZYYWo2dGEx?=
 =?utf-8?B?TWpBVkEyaTF5a3ZxdHpQcCt4YmxXNTE3d2pJcUxNSUVsdmhYaVR4Vkx2MlY1?=
 =?utf-8?B?aUZuQTBGWWJsRlhRczQyZWlKWUtpR0k1VW5vRHJtekhxeEtpQ2dhOUhUQlJw?=
 =?utf-8?B?N0NsbWEvZmU4U0JVazdxZlV2S1JSaWhHQlE5dStKMGNiZ0sydmxwUFJrMlhl?=
 =?utf-8?B?UGNYamtseE5MN1JQeVpkMzVMbXA2S0l5czQrblNHUVBiVExhbHhGcFFMYklK?=
 =?utf-8?B?bkZxdGFGWVhBd0RtYy9vcjFDdk51S3FuaTNsTUF4OUdnMGk3VitzNXlPSHFF?=
 =?utf-8?B?MzlneEljVFp3SU1valpFdWZyTHIxN3pDTlp4OGdJcXFhcDZ4OEtBenIzc3VT?=
 =?utf-8?B?NXI1Y2M3bDQvcld1YTlZcGZxWUpYazU5d2VDc1JTRERzWnFyaGZIOVBBaGF0?=
 =?utf-8?B?d0REUTRXa29kNERZTFl3cVFlRlMyN2s4T2NBNlRISmtCNmNhWUw5SGlKdHh0?=
 =?utf-8?B?aHBCWXlXMkNYc3U1MXBDVm0wUEgwSm5OSGFLMWpncDFrd1l0dzdpYk9INXFM?=
 =?utf-8?B?clBGRXJYQ1JZaW5IcjNXS1JlY09qVHJFOVlUUlBWZzZhK2ErdVhtd1JObzBo?=
 =?utf-8?B?Qm1FS0RPK2ZQeXdsYzZiaEhUVHNIdmxtWC9Oenl0ZUczSHhDcFAxMll3NStS?=
 =?utf-8?B?WWd1Nkc2RGRkN2l4N0ZUNm5sVnpJNFcxZExZYU5kZnA5Qzh4Sngrc0wwdTE1?=
 =?utf-8?B?K2hlU3p5cUI1VEdsd3VpbHQzM1BUM3VudDRlOTM2WHRyamRaekZIVVE5ci9k?=
 =?utf-8?B?NHZXYlhBZEUvcEpwVEFGSHBuV0tGcjN1b0NoL09adVRpZFNaWjVmZ3pCSHNm?=
 =?utf-8?B?V1IvRVJSSVJKbEs2aTdZenhHQWp5ZVRTUE1xKzh5ekcwR1dNWmx5VzNOSk1q?=
 =?utf-8?B?ZlFSZXRRMlJuYmFTZEUwalVEdXB4aUxZYTljcHN1czlPQlpTaW9rdEI1bDRj?=
 =?utf-8?B?cWd3RkhuVHg1MG41SEhSU0hmVTFwSWRmd2FpYStIeDkwWFB6Q2J3ZHFRa0FD?=
 =?utf-8?B?UVBJblpsVnRMU0crQUZyMU8xQ3RXMTFnek9PbFlGUHgzaWFFeW1GR21yU241?=
 =?utf-8?Q?4ePTfdFxN8DJmIUDZvD83UtwhsIMVzw0?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Wk51ejZZTlRjci9ULzdidEJxbDVUQTNDaDNYSHpPTGh0M0I2MGpqbk9nV01O?=
 =?utf-8?B?bFhJUXNNNVhlRWUwRFhDTWVQaEdWUG80dEdQZ3l1SnZ0UXNuWEIxb0pRM0pr?=
 =?utf-8?B?d2U0RFArU09YV3R1QWd0Q3UyVWVoMWMyV2xIcnljd041eGx6V09yMzlvVFo0?=
 =?utf-8?B?cHJPNEcxZnNVR1R3ZDB2dUc2ZnlxVnorY3hsM0dpR01SZkNwVmNyTFl3SzY4?=
 =?utf-8?B?b3psYjdJWnRUeWRzaEkyRGY3SUdKVHhmV0QxQkp3ek1HMlVvaEJXL2YvUFRV?=
 =?utf-8?B?ckpJWjBFQ2M4eTNDdVVUOExjbDcyL0wrcnBTOE9nMDQ4NzhrVEpzMldMeFov?=
 =?utf-8?B?cXlYSW1MUDJLeTZmNzkvc05ZUW1CVS9iM2xCUHJFV243RGhOWEllRGNqRGp6?=
 =?utf-8?B?K0pSVDgzc2F0bkc4UjI3TVRwdUtBV1hpNDlXa3A2NldTWTRwZ1pqL1graVZF?=
 =?utf-8?B?Y05Ja2lTaFhWY1lmcmw1aU1od3NEbHFra05qSTA5QXBRYmlwbDhhNEs1VkNR?=
 =?utf-8?B?TlBldnFKU3ltc0hGcFI0N0dIU0pkNzhzZ2Iyc01haE94WVIydnNMVUJxRnpx?=
 =?utf-8?B?aUNUdENVVzFuNGJJbVFYL0U2WWVRVEhhR0M3cE5YMFdvcmMwV2oxanRFNkk3?=
 =?utf-8?B?dytoME9OWGd0aWtIVXUwSVZ0bTExRkVMN2xyb2s4cHNBRktXOXZXYlNkb0JS?=
 =?utf-8?B?TlFjeElUaGl6S3pBNDZBTWhvaEJDaythNThNUm13N2IyZXRrN0VpaFlibW44?=
 =?utf-8?B?ZzFPWVBSdjdRTU55TWc2UkhWejlTanBSVjc4c1FCb2ZHRkcyQkNtamNKcEo5?=
 =?utf-8?B?R1E1QUlKK3gydWJ1T0dSMDYyaWFjd3hlT1lPWmI2VW80SER2LzhSTVVEK1Bj?=
 =?utf-8?B?QWQ5bVFlMnhKbmlMajdxRzVHcDdrNDZaZXltYVc1SUZTMml4Z2NmTXBnNDl2?=
 =?utf-8?B?dmZ4aXZHaktjQnFNS1FkNUU5N05PaEUxZkQ5SFo2RFMrbitCaW5PMkVzNENR?=
 =?utf-8?B?cVpUWi9RWjBkQXlwaCsrVTVHSmd5MkEwa2h2WHp0OWt0MyswcTZUN3NkR0hP?=
 =?utf-8?B?U1oxMFhSZk1jTUdsUlJUZVhhZC90V2xGM3VEUzNyUHdhVnJOdFd6NGJHK0Uv?=
 =?utf-8?B?VXNNZS9EOUV0cEVta0xlZDJQZThWUXlnTlhtVHhuQnlPVDVmcFNlNkxuMzBv?=
 =?utf-8?B?dlEwenc4MXByV1ZvY0R5TW42VXkvQU82QTlqek9qK1FHZWwvSS9lTmVNSFEx?=
 =?utf-8?B?bDc3dzFmOERET3RBQm8rQm9uaUhoQy9BVE92Q2NSTUExejJqQ1k0YlR1RCts?=
 =?utf-8?B?OFl6YWNUbVAzM2JUeFI0M3pWQzZZaFc0TkNXNXl5SmdzclA3enQ4MkdqK3RN?=
 =?utf-8?B?QXMyYnBGZEJISkxKVXhHNGtmM1lWVDF1Q0NiS2JiVnRxb3pBTHAvRThwL1Bz?=
 =?utf-8?B?djkzUjJNWlJwd1dXYk1JTFNOYVFLM2ZXNTA5TXg3WllacmJyam9XZ1ZQRG8y?=
 =?utf-8?B?cDJPTklmZVUwWGtHayt4S2syR3pKalJaSjNlNm9VT0xzU1FNemg2TXRqQU9X?=
 =?utf-8?B?MHRPZmN1RTdnMzIzM29Ja25DaFJ6ejQwS3lqQk9UaDZ5M1p5d1g3MkNmRFNi?=
 =?utf-8?B?MlVxS1E1NmpYSkc2K090NGxRQ1FPWWFBN3BRajhMbUtNak95Y3lVamFnZVRW?=
 =?utf-8?B?SVRuUHlnVU40WWFaaktnM0xQdE4yR1hveGxySnNYWW9jK2lydG5XUy9KeDdT?=
 =?utf-8?B?cVUwbC8rSmVGSlliSTE0OUpmNk5weHg4Z0dhNndnUUR0MXp1Yys1emRtVW5W?=
 =?utf-8?B?dzBDemtucE1QdUZjUm5RMzJqRGJJUDNvZzhMdm00NHkyL2NHVjVXcElrYmNO?=
 =?utf-8?B?R2tBRmdLb05pUVdEQnE5QURhdXpvV2NzUzZzVG9sczI2QUlLVGViWkxUNmV5?=
 =?utf-8?B?cEtQckU1bmxobHZyanZEUmJ4c2QvWUhzdVdUaDNHK09qWURVZjF0dzFRNi93?=
 =?utf-8?B?amRGcjNjY1U0ZWc4cHFiNjNXSzZUYXdGZ2JFQ3E0WnZJODNUeURNODd6VS9E?=
 =?utf-8?B?Zmp6VlZ0eXNvc2I4VGV4THE0eDhsUjdyMzNQdkQvT0pPMUNzeDZQTFlrNTZF?=
 =?utf-8?B?Q056aDRLTGdUczJTY0JCak01R1U0UjR2S0JjdW9RbHNSZ3lRalNNYUtVQ3Jl?=
 =?utf-8?B?VUE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 31b4d442-0505-47e6-092a-08de3e48ef0b
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 15:20:10.3836
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: aUb0nYwFAs7SvX2c1Z7nsoOSPgyTI9zfWav8/ZI29WNejrHbEAIm7VK+FlMe1Vw4KAkDuhx2waslN2GdC49nODOoE8Kop/vhhH9YD9hsMIs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7194



On 11.11.25 22:16, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Every XEN_DOMCTL_CDF_x flag:
> - is defined in public/domctl.h
> - explicitly listed in sanitise_domain_config() (common/domain.c) to form
> mask containing all supported DOMCTL_CDF flags for "Unknown CDF flags"
> check.
> 
> So, it is required to modify two files every time XEN_DOMCTL_CDF_x flags
> set is modified.
> 
> Simplify the things by introducing XEN_DOMCTL_CDF_ALL mask, so
> sanitise_domain_config() no need to be modified any more.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---

Seems nobody interested, sad, dropping from backlog.


>   xen/common/domain.c         | 7 +------
>   xen/include/public/domctl.h | 7 +++++++
>   2 files changed, 8 insertions(+), 6 deletions(-)
> 
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 775c33928585..4f91316ad93e 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -730,12 +730,7 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
>       bool iommu = config->flags & XEN_DOMCTL_CDF_iommu;
>       bool vpmu = config->flags & XEN_DOMCTL_CDF_vpmu;
>   
> -    if ( config->flags &
> -         ~(XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap |
> -           XEN_DOMCTL_CDF_s3_integrity | XEN_DOMCTL_CDF_oos_off |
> -           XEN_DOMCTL_CDF_xs_domain | XEN_DOMCTL_CDF_iommu |
> -           XEN_DOMCTL_CDF_nested_virt | XEN_DOMCTL_CDF_vpmu |
> -           XEN_DOMCTL_CDF_trap_unmapped_accesses) )
> +    if ( config->flags & ~XEN_DOMCTL_CDF_ALL )
>       {
>           dprintk(XENLOG_INFO, "Unknown CDF flags %#x\n", config->flags);
>           return -EINVAL;
> diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
> index 8f6708c0a7cd..94a8e3042cbf 100644
> --- a/xen/include/public/domctl.h
> +++ b/xen/include/public/domctl.h
> @@ -72,6 +72,13 @@ struct xen_domctl_createdomain {
>   /* Max XEN_DOMCTL_CDF_* constant.  Used for ABI checking. */
>   #define XEN_DOMCTL_CDF_MAX XEN_DOMCTL_CDF_trap_unmapped_accesses
>   
> +#define XEN_DOMCTL_CDF_ALL                                                     \
> +        (XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap |                             \
> +         XEN_DOMCTL_CDF_s3_integrity | XEN_DOMCTL_CDF_oos_off |                \
> +         XEN_DOMCTL_CDF_xs_domain | XEN_DOMCTL_CDF_iommu |                     \
> +         XEN_DOMCTL_CDF_nested_virt | XEN_DOMCTL_CDF_vpmu |                    \
> +         XEN_DOMCTL_CDF_trap_unmapped_accesses)
> +
>       uint32_t flags;
>   
>   #define _XEN_DOMCTL_IOMMU_no_sharept  0

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Dec 18 15:22:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 15:22:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189805.1510510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWFpu-00040X-KJ; Thu, 18 Dec 2025 15:22:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189805.1510510; Thu, 18 Dec 2025 15:22:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWFpu-00040Q-HS; Thu, 18 Dec 2025 15:22:38 +0000
Received: by outflank-mailman (input) for mailman id 1189805;
 Thu, 18 Dec 2025 15:22:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWFps-00040K-EU
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 15:22:36 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6080ad8f-dc25-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 16:22:34 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4775ae5684fso3339495e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 07:22:34 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47be273f147sm48137355e9.7.2025.12.18.07.22.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 07:22:33 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6080ad8f-dc25-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766071353; x=1766676153; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gbKhiEjso363HPfXjBY0CYwBedfDXFTFr72Ds1gRcEc=;
        b=bym74cVYOsLmDOdV2IJpJ28aMJrENUGDIh+mSOBQ2J5822C2rFYI1hUydUPkpGYsGW
         WFaegq8aUDV0VjhVmDaYkMcEM2oNxGRhoDiLVUL33yJGN/JTZ2GGn7ITmczhdom+nl5q
         0LK8dBdGlo4iT7RLCBHKOmnimS9LpfvKzyDcxlx4OJ/Q0aqjHIFcDH7dsjdHyZ8N7YuD
         JUjsLHIMdz/nqxpK/fSAsUEHv4PYXzfNltKsLCcgoQ5XvWiqMrxrfxixYH+m0SLeLASS
         MC0jgacHi0r8R3ZPHAf9MUJWpSvt+YV/8r8EOZke/kPR0YsVUI6s1+PSMHj3Nv/Xo0wj
         iFqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766071353; x=1766676153;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gbKhiEjso363HPfXjBY0CYwBedfDXFTFr72Ds1gRcEc=;
        b=Pf4Xh0jsfOXjwo0YUZw13QNsn/rso5s9m0w2veUatzIghZnfzd6ab44Z82+yIQs8KD
         ksk23uuh3GG+UA4ZkUg7aUmVbAFVifdQsoXvoU69hkEV+yBhdVbnXD/ncNHMXZQoAUlD
         bUMa8ZLwQx7/jcTQKqUlPuGu67ICLVh2fYobrqoetS+5fhH+Av6tzfJN3irBOKZ0h7OZ
         JJp+LgM7KLmxfmwS/MrBOchgrX/pLASy3Mmknj9htKG6TiYmWMSfNSnPFAj9EGJHs6fO
         4ms8WsI9r0kyZgPglYlndvHBXY8vU0SVeDKxJPhCpnsFcDBwvon+NWY/r1GIMlqN/htu
         HMmg==
X-Forwarded-Encrypted: i=1; AJvYcCVRFTziwc9V208g3vMftAoDX4GV6cmMJIytVgWOFobxa00awcDz0pOgNJ+K/hk4UR/7sw7cMtAvzWY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyx6yQD2uj30C3mH292ypbvwC5Khl/hjbhLnzuSDc5vHb860Dzx
	dfmT2lEtBcq1eW1fP1xR82So/rQ9fTfMauzRRvp7Ggo6Go1+CX4E+sM4FFnDqgHynQ==
X-Gm-Gg: AY/fxX7leylsmYDF2USO8WgF43knABU9f4alARg4dMpo89EWhlEu89puODJGCIjcvVG
	/+yAhT73GxehCEqkWPPpYUb5VK0pLZjAZhx82S/GUPzsQYQWIWivuglItzpHYi8Uhisx2cYlNem
	l9XH6DbhGE933OEpRx3kUgwSyUBvHCWtVuSk7X2l4sgprCxaskmreRkUNPrnkOM4J9Gs50CX+2d
	DglnUzicQrac721bJ3rMum3O6XAvkcW1hmog6j9AIACoIJL/FaMQUft+bp0i8WQ6DPG/G5OTJtG
	sUTQ3lhND+ov7kOtCGWw+Qh3DRXM7rtsHhFZ80yfrKsBYMADq3wXF+LsyXMvXuHs5ix0RgSJg7e
	P5U9btoGtyLl/q1os6pyciJa2NWt4YBKNxEj8IARUdO5BxVQk5t2TvMswhuiMpMldIQoFG1e7dW
	oSbYHUywZhbeG8eahG7gpuuJ9qPXUA0qeTQpQdv7t25Ojfzi3JHqENGf/Dwvi7EGZXHd+2TeifA
	72b/X4jg539lA==
X-Google-Smtp-Source: AGHT+IGTg9t9Y+M4wJ1tKEgpRBAKwEg389Ww5+v6PcEDF5PqkaUzzIimuPR6FdvVmpHbDJ0kKAzi/w==
X-Received: by 2002:a05:600c:a00f:b0:477:97c7:9be7 with SMTP id 5b1f17b1804b1-47a8f8a6adamr229562335e9.1.1766071353426;
        Thu, 18 Dec 2025 07:22:33 -0800 (PST)
Message-ID: <eb7d910d-8fe1-453c-933d-9b2f208c8b12@suse.com>
Date: Thu, 18 Dec 2025 16:22:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v5] xen/x86: guest_access: optimize raw_x_guest() for
 PV and HVM combinations
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251218135926.188059-1-grygorii_strashko@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251218135926.188059-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.12.2025 14:59, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Xen uses below pattern for raw_x_guest() functions:
> 
> define raw_copy_to_guest(dst, src, len)        \
>     (is_hvm_vcpu(current) ?                     \
>      copy_to_user_hvm((dst), (src), (len)) :    \
>      copy_to_guest_pv(dst, src, len))
> 
> This pattern works depending on CONFIG_PV/CONFIG_HVM as:
> - PV=y and HVM=y
>   Proper guest access function is selected depending on domain type.
> - PV=y and HVM=n
>   Only PV domains are possible. is_hvm_domain/vcpu() will constify to "false"
>   and compiler will optimize code and skip HVM specific part.
> - PV=n and HVM=y
>   Only HVM domains are possible. is_hvm_domain/vcpu() will not be constified.
>   No PV specific code will be optimized by compiler.
> - PV=n and HVM=n
>   No guests should possible. The code will still follow PV path.
> 
> Rework raw_x_guest() code to use static inline functions which account for
> above PV/HVM possible configurations with main intention to optimize code
> for (PV=n and HVM=y) case.
> 
> For the case (PV=n and HVM=n) return "len" value indicating a failure (no
> guests should be possible in this case, which means no access to guest
> memory should ever happen).

I agree with Teddy's sentiment towards HVM={y,n} not really mattering when
PV=n, as far as non-HVM domains go.

> --- a/xen/arch/x86/include/asm/guest_access.h
> +++ b/xen/arch/x86/include/asm/guest_access.h
> @@ -13,26 +13,64 @@
>  #include <asm/hvm/guest_access.h>
>  
>  /* Raw access functions: no type checking. */
> -#define raw_copy_to_guest(dst, src, len)        \
> -    (is_hvm_vcpu(current) ?                     \
> -     copy_to_user_hvm((dst), (src), (len)) :    \
> -     copy_to_guest_pv(dst, src, len))
> -#define raw_copy_from_guest(dst, src, len)      \
> -    (is_hvm_vcpu(current) ?                     \
> -     copy_from_user_hvm((dst), (src), (len)) :  \
> -     copy_from_guest_pv(dst, src, len))
> -#define raw_clear_guest(dst,  len)              \
> -    (is_hvm_vcpu(current) ?                     \
> -     clear_user_hvm((dst), (len)) :             \
> -     clear_guest_pv(dst, len))
> -#define __raw_copy_to_guest(dst, src, len)      \
> -    (is_hvm_vcpu(current) ?                     \
> -     copy_to_user_hvm((dst), (src), (len)) :    \
> -     __copy_to_guest_pv(dst, src, len))
> -#define __raw_copy_from_guest(dst, src, len)    \
> -    (is_hvm_vcpu(current) ?                     \
> -     copy_from_user_hvm((dst), (src), (len)) :  \
> -     __copy_from_guest_pv(dst, src, len))
> +static inline unsigned int raw_copy_to_guest(void *dst, const void *src,
> +                                             unsigned int len)

A side effect of the converting to inline functions, besides being more
intrusive, is that now you will want to add proper __user modifiers.
See lib/copy-guest.c's use of them. That said, ..._user_hvm() functions
also don't have them, but imo wrongly so. Really I question the use of
pointers in that case, because they "point" into a different address
space, entirely inaccessible via use of those pointers. Hence adding
__user is going to be only a marginal improvement for the HVM case, but
is going to be wanted for the PV side of things.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 15:27:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 15:27:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189817.1510520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWFuH-0004bQ-3t; Thu, 18 Dec 2025 15:27:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189817.1510520; Thu, 18 Dec 2025 15:27:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWFuH-0004bJ-1I; Thu, 18 Dec 2025 15:27:09 +0000
Received: by outflank-mailman (input) for mailman id 1189817;
 Thu, 18 Dec 2025 15:27:07 +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 <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWFuF-0004bD-Si
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 15:27:07 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 02cc662b-dc26-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 16:27:06 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-47118259fd8so7469835e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 07:27:06 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47be3286e72sm44073445e9.15.2025.12.18.07.27.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 07:27:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 02cc662b-dc26-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766071626; x=1766676426; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JHLHzXFqeQNuBT/YaIpQNpdKJL6MPjWbCC3ZJ9xRFxE=;
        b=DG6s11uI7YpJLzSXfQRURgXfXbytUNOyCwhhDlzojBF6cyZLyoCK7gKAkie3KxlFIS
         8TNguwgEQ6PGz9GAen4CC8Mll1ibu+WVoEf0G4zaxyNcjrLMjURR93otEiik+BeJ4nbm
         FF1tDd42GAvmb66MNt9EPjeeaHsrHXVJ4GGKWmHxR3HhOeE7b527+/EoNa4nCagGDqoV
         RBnwwtYM/hazf1qXVgpO6TIGth+BWAOYKXYtzWbQ6AV/DBRqf5Lb6oKoGqCpeHGGr4me
         YFhIM4jfCvNkzAOCn9VYtItuRhW09SGzs9PVnGUcCjIUxogiMQmbpqpU/uDJJeqtt9OZ
         AwDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766071626; x=1766676426;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JHLHzXFqeQNuBT/YaIpQNpdKJL6MPjWbCC3ZJ9xRFxE=;
        b=ajbfjL//pv5VVexRQfk6tX4AysnGWnio44QGtbXgOaTrDpxvULr5HSI5XY3dgCs6BZ
         yfQZ+5eo4NSROhZIouRUgvwCrjJDoLm8qsrpUdysDrTYfPCZjvk6gZd+X4ztDwuz528M
         BLP/bIuEaz7m63/M9BNub1YW6GU9HVpMwUsuJcVX9RtbkQxmR+pDy28SXObD7fXciAeC
         5v8yBQ/T6njnYoA0nCqpN12P3KvOkegMj1CIUfHGys+kMMgO8opA5nFatHL0F4qxBJIR
         7IxXwSGQOpNIBVNy7/Ii9Df9OsI74krsGhjkQBV7V415S3kOa+F6MFj0HaJwoS5yS0cJ
         m3Nw==
X-Forwarded-Encrypted: i=1; AJvYcCW27oGCFTyAJ2xrr5fY8eqpP3yV0XBqfYjyVTP1XiaM8L+Z+AA0HG4DMYuYzZbbvvIDdm6g2J6NwPE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx98MSXvHdh8U5nWfk1YTi2/aWZ4NbzxTovyRj49nWQb0woinFe
	KrKHznlqzrHHUVKp7H+LMvga9wDPb8g40PZkQVd4b/O58WxwATWcIGmlPYZyOtX1kA==
X-Gm-Gg: AY/fxX73mLIUSAlOlKfYx+nkxsrva0m++iGQIn6c4mtSX+fBKbL0KcXvAbysBzspplo
	b2KeSCGdbUQLQbZ9GLPu9ocXpCfw1GIwZJBOi/ngGiJF0ZEKfSrxXjMXrN1g38hc+5h2qbnBhPB
	T8Sx8jyyuTKtxMRp4aoSwH3zhxACvor0G1q2j8w0pLgW++lr8IzUZ+guUYB62KE6iqiG0vmLxq9
	YOcOydNVyovu7tkRkV207SVIPYx7EIRytppy+aEzL0pqJifm1+4/cSpqz4sXOaIwD3DAFeh9JNQ
	O/Q44PXck+5nspWW/R/CK8tyh3SYWaWockF0J+n926DxOps4TzMofWbyyamoLzNndE1LGAzMmAw
	lghNAiJ55vAy13YXTWC4tPV83nkrs2kywmc8aIAp18DfQ7AzKYQfosbP0fQoB752BJAFL7QEROL
	jb55ij7IWYekPUel8vltoHiOQp+S/iUxHFp3El4hKLmiNuBRhlkmDRiwjjk8t2FiFBgg7kI6HUO
	bo=
X-Google-Smtp-Source: AGHT+IEgVAOGRbEiLxnSWcLDNVYlzMl+foRqhcS4BWabdPKXt8EGstBvG74Qs/lpWl0zPbjjo0hwAw==
X-Received: by 2002:a05:600c:699a:b0:479:2651:3f9c with SMTP id 5b1f17b1804b1-47bda6e58d4mr87075315e9.14.1766071625743;
        Thu, 18 Dec 2025 07:27:05 -0800 (PST)
Message-ID: <b9e1d2d9-22c9-4574-9f83-46ab649d28af@suse.com>
Date: Thu, 18 Dec 2025 16:27:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] libs/xg: allow caller to provide extra memflags for
 populate physmap
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20251218151728.28339-1-roger.pau@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251218151728.28339-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.12.2025 16:17, Roger Pau Monne wrote:
> --- a/tools/libs/guest/xg_dom_x86.c
> +++ b/tools/libs/guest/xg_dom_x86.c
> @@ -1260,14 +1260,15 @@ static int meminit_pv(struct xc_dom_image *dom)
>      /* allocate guest memory */
>      for ( i = 0; i < nr_vmemranges; i++ )
>      {
> -        unsigned int memflags;
> +        unsigned int memflags = dom->memflags;
>          uint64_t pages, super_pages;
>          unsigned int pnode = vnode_to_pnode[vmemranges[i].nid];
>          xen_pfn_t extents[SUPERPAGE_BATCH_SIZE];
>          xen_pfn_t pfn_base_idx;
>  
> -        memflags = 0;
> -        if ( pnode != XC_NUMA_NO_NODE )
> +        if ( pnode != XC_NUMA_NO_NODE &&
> +             /* Only set the node if the caller hasn't done so. */
> +             XENMEMF_get_node(memflags) == 0xFFU )
>              memflags |= XENMEMF_exact_node(pnode);

I'd like to suggest to avoid open-coding the 0xff here and elsewhere.
XENMEMF_get_node(0) will be less fragile overall, imo.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 15:32:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 15:32:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189827.1510530 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWFzE-0006Jp-N2; Thu, 18 Dec 2025 15:32:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189827.1510530; Thu, 18 Dec 2025 15:32:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWFzE-0006Ji-K9; Thu, 18 Dec 2025 15:32:16 +0000
Received: by outflank-mailman (input) for mailman id 1189827;
 Thu, 18 Dec 2025 15:32:15 +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
 <SRS0=Ars1=6Y=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vWFzD-0006Ja-Ty
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 15:32:15 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ba7e6f72-dc26-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 16:32:14 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by PA1PR03MB11112.eurprd03.prod.outlook.com (2603:10a6:102:4f8::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Thu, 18 Dec
 2025 15:32:10 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9434.001; Thu, 18 Dec 2025
 15:32:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ba7e6f72-dc26-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=w3G6Fh3mWgzsUL+iuZKmkaW+btnj0zJ34W7hhfIWImUYmt56Kk5vUzlAFZ/ejN8I7tW2WLfNcSd/K2suIIyyUlLTSNqJEIeYGdvCeuHodLFa/LjmZg8E1+cnSsKMug468N7YTSnLtd8kDNFWJP/gzvc9qi+/vYUQCJCVVRz+fYh6QzbRjlSYGK5Mc9UVK/u4f8/sak5f+e/TiGu5DnTfPOPV1sfe0hRZyCpwrBOva6A9uneJWWEYq9eFUQwJDYU6rHLXeFXdsMTJpsKD1esb5bXKXeKZF/cBtN5lpAnwg6a8tvTddNkVE5+hYsQZTmR2jldBx3t0keEi4O5d80RX7Q==
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=HwiQrMJ0YMOGMTAKoMwurYyUSuy64Assjc3mpAtl4V0=;
 b=CqY5mdlE+Sg12LXIEvPtMkQOlL9HHwKcDRHw0Z0ZEqmYQ+oZgI0mntfBBL6Tcp0ANR1I5KqpkHaNFAobInCO1Yy6Gc+Et62Fn60IGpum3HLqzEftbLRI+tz6JNm+rB0wkBHVgkXHeYFFoe+SFSw5PiGwIsPSF+VlN2y4ccypy/rOm8/6KXTdYi6vcIyHJhFAGQT5YSMCdGoPbcMHOOJnaqrn8MdQe00sLgv1Jw0C+bZMN0SIDEHURUKbbLooVtl/IkePsWMTsssQOBNPWsONiuajB5zdjUser08J2VM8++V7XzNXNIxlEv6VZf6MiOHd8jQh8jf0bXgeBMdNuXb7Fw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HwiQrMJ0YMOGMTAKoMwurYyUSuy64Assjc3mpAtl4V0=;
 b=ovCdagV8OWizJzximjdiMjthh5AW0Sa2Pag5yI/qNjYpBUQhDWAnwPxB/H+Bgcwup/ggvtTgH7ksXeLpImHfK2YDEotjuUrtDJiThn0FAaqtgXqjRC6WBrt0Fml1y8gR8DaUMq6qt6zN946zsMUdnstXZSdy1fIamI1l7DQKSViUbiKSMDdJwT7zJNiwbW/KGfwBrlDzS2LGDPN4fAj3UQue67hgdkszLL6a6seusLoomIfkNGv5WnI6ut2Ga4Icl9JCOk3/UfN/GpLNkMjv6lH5BJ8EilhRBJHvV2HQikaZpdrArYwsgGslr16gzE9Zwkjlz4OMA/9CQwn9dZbTVA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <26376311-33fb-42fd-a346-417b4faba55e@epam.com>
Date: Thu, 18 Dec 2025 17:32:09 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/hvm: vlapic: fix RO bits emulation in LVTx regs
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>
References: <20250930190550.1166875-1-grygorii_strashko@epam.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20250930190550.1166875-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0012.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::27) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|PA1PR03MB11112:EE_
X-MS-Office365-Filtering-Correlation-Id: 05e1aeb0-44a8-4b01-ef4c-08de3e4a9c58
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Y3RaZHVJWmRQL1VNSzg1MFpySG5mVzNheCtxSDZ0b0ZTMkFHRkhRazhOelBL?=
 =?utf-8?B?N2pVMDV3S1ZPL1JVaVVIV1hNS0t3Z1dNWms3Yk92TDBmaXJsQlBDWEVhcC9r?=
 =?utf-8?B?YU1CSG1JN0xpMmR3blovRWMzRG9mZjlBWXRzVm1GOVh1V0pnYk41dmt1bTFn?=
 =?utf-8?B?Vm1HdEN6cENIbUQxT2tLS0tsYXpBWFRselZKSHo0UzRIQkdNT0dEY3FCdmVL?=
 =?utf-8?B?Rm9yZzliN2Y3S0RIeHpvUFJqL05zWDd3TE53NEVwMnRzZmpjS2RqSWoyMlRH?=
 =?utf-8?B?R083SWpEZjdyYi81RGJmWm5vTUNZd1d4K3gzcVhBZmZ6eFVUVlp1anhwM3Z3?=
 =?utf-8?B?cElmbEcwaDBkYUszOGFBZ3NZdXpkWFltdHorbDlaVG9McCt6ZkZqUGpLRHlm?=
 =?utf-8?B?djcySDNVZncrcFM5dTNpbmJTeVFTUmZGUVhwZlV6dDZBUHgzRjBSRUVuaFpK?=
 =?utf-8?B?KzVxSmY3SXFzSXJoWlBRYUhCQXdOQmlWR1ZHNlZTNm1mS29pbDNPWmhtL3Q0?=
 =?utf-8?B?ZTZPWDJ0TzRsWkpGdzAvMXJHRmtEMnFEWFMzT1Q1SUdOK1kvalBYbVpvTVkv?=
 =?utf-8?B?WEtHbDdEM0dMSUwxY09ERXY5cmtzaE5saHVVUWJZY0VuTHpZYmI2c2NYOVMr?=
 =?utf-8?B?L0VQYU04QmdBcXFSRGRJSTZxeDIyOU5jd1ZQOEhxSENDajkrTFJHSXNJbkdN?=
 =?utf-8?B?NlJXTDVhWHNWUFc3YkxUK0hYeHpncVJOVS9HK1dmb29EYzBPU1B2WUxHelpl?=
 =?utf-8?B?VmFZalB0UVV1RXNVUlNuZmdLWUV1SkZEc0dJUitYYXRqZy95dXBuK0gwMEVs?=
 =?utf-8?B?M0U5Y2Q4T2FFUWF2V0JNancvRFF2S0U3MGRaeDR3MSsveGpoSXdibzNkTDJw?=
 =?utf-8?B?UVpySCsrbDlsZFRXK1FHamxOWnZ4WnZ4V294NGkyZGx0WjlHUDFTV1p3WFNi?=
 =?utf-8?B?K0doRmxzSEZLRnZjT1hSVHdmWjVhQW1JZ3BRcmNleW9vQk9IcHNXSkhMY0tI?=
 =?utf-8?B?eTIzbVpXMVdycVZlaUFXUmRuZ3VXMUN6ZXVpNkFpdyt5TlM4cjNGUDlQMkF3?=
 =?utf-8?B?bEE5TitjSnRzcnd5TnNPTkR1di82WFNkN1p6OUpQVjV5Wmh4SGtFY3czeXhM?=
 =?utf-8?B?ZGRpdmkyVG96amhZVG1CNnV0ODhHSW5RZ3d6RS9ING5EaUVlMVJyN3A5T3dM?=
 =?utf-8?B?emlQSXV4d1VZZFZOSW5PN0pFblhRZy8wUVpWUlpYdXJ0dG90cEtTOVFFeWd6?=
 =?utf-8?B?MmVwamd0cDVnL00wQVIvVisrdzV0Q2g4SXAwRFRsdVVnZmFWZERtTHpFTTRD?=
 =?utf-8?B?ay84Yk5xWGtNcmhQdUZSSnhXNmwvOWRlT1FNM29MZkV4YWhDakJhOVVCQ21q?=
 =?utf-8?B?Q2xoRUNRSWdpS1lnd2JwRzZGVWdXaWZYcUhzNVkxWndPVDcvd1hXNjZoTlBy?=
 =?utf-8?B?RG16UkRyQzhDZlZVeTgwNTIrQjhCLzVaempMV241NmFWSFgyUis3ZWUyZGZw?=
 =?utf-8?B?d2dIcW10TXJmUUpVTHZ5NmJsOHZMSUI4S2ZsZlptTm56RWFkVnZPRU4yQkFD?=
 =?utf-8?B?VzgyUW9NazEvYnZXQ2lySkFNV1FEMWttV1diRzM2ckplckxKSU1YOXRKdEVs?=
 =?utf-8?B?U2ExZnBaeVJYYmk3MWszYVdlMEtLWEV2ZXlJc29qTFBUODIvbTU2QmhQNjAy?=
 =?utf-8?B?UDhWKzlrSlZUZlQ2Q1NSUGZLK3g3b3lOK29qS1VSbDk2Zll3aEVEZ3VRd29H?=
 =?utf-8?B?cm92SDlCM3NxRloxQys4SGpMcSt3RWNTZjFTRHRMNHBiY3FSKzhud3VIcE5z?=
 =?utf-8?B?MHZiQ1dYT3Y5cE1yY05zbGFDdW00aW0xRFN6SFEycnZvbEFSclhVMXdObW9S?=
 =?utf-8?B?UTladHpJVDlveHd1eVY1SDJ4dzAxUUlqTjRPMFUvY0RhNFVSUWVMdzFDSXVU?=
 =?utf-8?B?SU9KZ2ZBT29CUDlWcCt2WjdtVFpzK094RUJyN2d3NDJIY0o3emhrNEZRc2ZL?=
 =?utf-8?B?QzZXOFpwNlpBPT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SS9lUksyT1RMOThuRXhQLzNLUUtvdWMyZVAwdXYvQmxGenhuNDNnWXhOQ0hw?=
 =?utf-8?B?V3BPcFh4VUJyV3NhcUhrMEhWVnd5MlA4QlNwSi92cE42cExlN2xvV3NCdm16?=
 =?utf-8?B?a2I2UDNpVy9qekwxMDN5ODZYODBGbTJOb1cxT0k2MXZUNTFSYTZWaEMzSytY?=
 =?utf-8?B?VzVkb0lsZHlLbkwzU3R4d2hqeVJ5VW9pSDBleDVUbnZyT2hraExRd0tsMlhZ?=
 =?utf-8?B?UlVqOFJuZzd5b3ByUjZnYWsvMzVrSDBVWlBvTUttK0pkNlp2Z3B0L2JyOTZk?=
 =?utf-8?B?aFVMenhOOUtLbnIzbXM3aHFGQXVEK2tFN3NXQ0ZYN1EzMVZkeklmbHJPZU9y?=
 =?utf-8?B?NUcvVTV2SG51eUxKOWlnbDFjQlYyeW85N0VnWVVNWWYrNkxxNWlZcTRmOFJI?=
 =?utf-8?B?cGFueUFmeXZab1RJZlNsd0U0WGhycVREdGxPOUJYSmxzWWVoRWZoNXY0cnZG?=
 =?utf-8?B?SjVqUjQ3ejRCQkkzM1dUVmxhTVpiSzlRN3hxeEk2UnhLQUlEbS8wYjE3blhC?=
 =?utf-8?B?aGpySVd2ZHR1ZysxRUxkOStUNkYxSHFQT1AwY25ZZi92ZzV4dklHTndRclRl?=
 =?utf-8?B?QVB0NTgrQUlNWGRHU3dDMzM3T091V1BPQ1JNVWFhZ1k1b3lJOW5pbm5ibEpE?=
 =?utf-8?B?OVhFZ3hCRXR6QnJIU05sb1puM3UwUHBMQjNabTVwRVU0Ny81ZzZRWm5Zci9t?=
 =?utf-8?B?d3VYWmt4QkgzYytzN2MzZXRGWVlIRzkrMkFUQmN4TTFHRjZLd2VKeGMzZzJw?=
 =?utf-8?B?dUlJcXpHdUl6N0xrNWhiQXZuanNJTjg1S3FWZUpMTXRMMkRraWZvc1VYZW9i?=
 =?utf-8?B?U2orMENNWFdxOVI4MFBJZDVRNFNCYTF4TUt2a2ljNSs1UW1sWHEwTlFwMGcr?=
 =?utf-8?B?NDNxRHdya2RDZ0FJeTU3bUpqR2hJUU5ROEtGSHc3YmhCbkNRZXhRNkdTQTJ4?=
 =?utf-8?B?dVQvNUM5andWM0hWend5ajRYdDlkWVkvdFhpamxoWWhSSkJXUEp0ZVBJbUJF?=
 =?utf-8?B?L2hLaFZQYWVjRnMyS3JlZVJGL3dER0psdVZWenJzTHVTMUt6RGZ1NW9oQmRJ?=
 =?utf-8?B?T2VLemdvYm8xbDBhR0VBUWxaYjhrN0FOTURqY2Z3UkJBTDZTK290VkFmZmxO?=
 =?utf-8?B?Y05MZjBzOVBUVkdtUUkyR3dlZDVNU0g5aEhqWEFvU0dlZ2pjc3I2TWZ3Rkdu?=
 =?utf-8?B?dXp6ME9PNzRGMWZ6VlErdUVqaFBjWVd3UDdxc1Y2WlFaZHdDUUpwZW1vZ1Vv?=
 =?utf-8?B?eEdBOWZBTjhreVJkQk9nSWVBYjBKTklwbENDVlVzN2ZLSUlIV2RLcjNsVXNR?=
 =?utf-8?B?Nk1sbnF3eFJUNFFFMUQ5UnAxUVdUdlhYbzlmNlBHNnk4czNpOXRFYytLb2tY?=
 =?utf-8?B?WGRuYUY5NW5IMmJiVGQwQTNnZ1BlK3kwMjdjMEMxU1E5V1ZZcFRwbHhGUlpW?=
 =?utf-8?B?bnVpcVN4eG0ybG1mSE9CWFlQMjkxV0JzSUc0SU44TFR1L3dyWEhlY2E0RGpx?=
 =?utf-8?B?cnNWQzNPcmNiUm5LMnhFSkRWVlpDMlJwd3VWK29iNU13MExFcG8yV1dGeGtG?=
 =?utf-8?B?SG1POWRjb0NLWUQrNmRHK1V5THg1UVZLOFlyRDk2VFpwdjMrbTh0bkZ3VDhq?=
 =?utf-8?B?djJYK0dabVdDR2kydHRQNUNreWg0T0x3c1YweTJvakxjMTNWMkRSUHZtaE92?=
 =?utf-8?B?NHYwK2ZmU29DR2sva1VWUktOQmdzT2ZsVkdvemE2U1dCQUpYYjRlN2FXV0gr?=
 =?utf-8?B?ZnI2WEhyclNRdmVZZWo2L1kvYzJMV3dqMWFlY1ZsL2JMbGxSbzVBTzIrR25k?=
 =?utf-8?B?Y2dJZnoyamN4cW8zT0hqbXdJVEtLbTVkRjZuMXF2Q0xJS3FvWkdlK2R4MDF1?=
 =?utf-8?B?ZUc3a25La3N2YU81QlFGODExdlFLYkNNK0lWVUozbGgxNUdEUGRyMUxEZ3Zj?=
 =?utf-8?B?L2xmZG1wRFJzMSt0c0xiSHBoSU01NGh5T2l4algwN0NHeTlrdndDTENLQTJ3?=
 =?utf-8?B?RnRuUStvQjV5emZQUzNacW1USnh0ZDlORDFjOGF1clI3ZHJQSU5pVmwrZXUy?=
 =?utf-8?B?QTc4dnpuZmxJTDEraU0zQ2JiWUlBSW9VR212NVBWVjM1QWtjdEdHUFVkaXMr?=
 =?utf-8?B?ZkZjbDlNcHRvS3ZRbXhtRnlJRDFxVHh0VzlKY1Y4S1hLdDhSZDVnUGVNWG9M?=
 =?utf-8?B?aGc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 05e1aeb0-44a8-4b01-ef4c-08de3e4a9c58
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 15:32:10.6649
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8NNSZCmkisPvSa4f5miHjlPYeCw3d8yZO7nTFtaXI2g/o+Kg9B8BiwVeMeFyqPvjKhBSW1Bj7O1IpWnVFsZI7PsTBH/7ATG9RBkO46V7pwI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR03MB11112

Hi Jan,

On 30.09.25 22:05, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> The LAPIC LVTx registers have two RO bits:
> - all: Delivery Status (DS) bit 12
> - LINT0/LINT1: Remote IRR Flag (RIR) bit 14.
> 
> The Delivery Status (DS) is not emulated by Xen - there is no IRQ msg bus,
> and the IRQ is:
> - or accepted at destination and appears as pending
>    (vLAPIC Interrupt Request Register (IRR))
> - or get rejected immediately.
> 
> The Remote IRR Flag (RIR) behavior emulation is not implemented for
> LINT0/LINT1 in Xen for now.
> 
> The current vLAPIC implementations allows guest to write to these RO bits.
> 
> The vLAPIC LVTx registers write happens in vlapic_reg_write() which expect
> to implement "Write ignore" access type for RO bits by applying masks from
> vlapic_lvt_mask[], but vlapic_lvt_mask[] contains incorrect masks which
> allows writing to RO fields.
> 
> Hence it is definitely wrong to allow guest to write to LVTx regs RO bits,
> fix it by fixing LVTx registers masks in vlapic_lvt_mask[].
> 
> In case of WRMSR (guest_wrmsr_x2apic()) access to LVTx registers, the SDM
> clearly defines access type for "Reserved" bits as RsvdZ (Non-zero writes
> to reserved bits should cause #GP exception), but contains no statements
> for RO bits except that they are not "Reserved". So, guest_wrmsr_x2apic()
> now uses different masks (than vlapic_reg_write()) for checking LVTx
> registers values for "Reserved" bit settings, which include RO bits and
> do not cause #GP exception.
> 
> Fixes: d1bd157fbc9b ("Big merge the HVM full-virtualisation abstractions.")
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
> Changes in v2:
> - masks fixed in vlapic_lvt_mask[]
> - commit msg reworded
> 
> v1: https://patchwork.kernel.org/project/xen-devel/patch/20250925195558.519568-1-grygorii_strashko@epam.com/>   xen/arch/x86/hvm/vlapic.c | 14 ++++++++------
>   1 file changed, 8 insertions(+), 6 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
> index 79697487ba90..2ecba8163f48 100644
> --- a/xen/arch/x86/hvm/vlapic.c
> +++ b/xen/arch/x86/hvm/vlapic.c
> @@ -44,15 +44,17 @@
>   static const unsigned int vlapic_lvt_mask[VLAPIC_LVT_NUM] =
>   {
>        /* LVTT */
> -     LVT_MASK | APIC_TIMER_MODE_MASK,
> +     (LVT_MASK | APIC_TIMER_MODE_MASK) & ~APIC_SEND_PENDING,
>        /* LVTTHMR */
> -     LVT_MASK | APIC_DM_MASK,
> +     (LVT_MASK | APIC_DM_MASK) & ~APIC_SEND_PENDING,
>        /* LVTPC */
> -     LVT_MASK | APIC_DM_MASK,
> -     /* LVT0-1 */
> -     LINT_MASK, LINT_MASK,
> +     (LVT_MASK | APIC_DM_MASK) & ~APIC_SEND_PENDING,
> +     /* LVT0 */
> +     LINT_MASK & ~(APIC_LVT_REMOTE_IRR | APIC_SEND_PENDING),
> +     /* LVT1 */
> +     LINT_MASK & ~(APIC_LVT_REMOTE_IRR | APIC_SEND_PENDING),
>        /* LVTERR */
> -     LVT_MASK
> +     LVT_MASK & ~APIC_SEND_PENDING,
>   };
>   
>   #define vlapic_lvtt_period(vlapic)                              \

I'd like to return back here and finally get this issue fixed (and make tests green again).

So could this simple fix be merged?

There is also follow up patch [1] which can be still a "follow up" patch or can be made prerequisite patch.

[XEN] x86: hvm: vlapic: rework WR/rsvdz masks for LVTx regs
[1] https://patchwork.kernel.org/project/xen-devel/patch/20251009114249.1964387-1-grygorii_strashko@epam.com/

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Dec 18 15:37:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 15:37:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189841.1510541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWG4V-00073g-Dx; Thu, 18 Dec 2025 15:37:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189841.1510541; Thu, 18 Dec 2025 15:37:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWG4V-00073Z-B0; Thu, 18 Dec 2025 15:37:43 +0000
Received: by outflank-mailman (input) for mailman id 1189841;
 Thu, 18 Dec 2025 15:37:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XN7D=6Y=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vWG4T-000729-M2
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 15:37:41 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 796189fd-dc27-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 16:37:36 +0100 (CET)
Received: from CH2PR05CA0056.namprd05.prod.outlook.com (2603:10b6:610:38::33)
 by IA1PR12MB8468.namprd12.prod.outlook.com (2603:10b6:208:445::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.8; Thu, 18 Dec
 2025 15:37:29 +0000
Received: from CH3PEPF00000009.namprd04.prod.outlook.com
 (2603:10b6:610:38:cafe::6a) by CH2PR05CA0056.outlook.office365.com
 (2603:10b6:610:38::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9456.5 via Frontend Transport; Thu,
 18 Dec 2025 15:37:29 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF00000009.mail.protection.outlook.com (10.167.244.36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9434.6 via Frontend Transport; Thu, 18 Dec 2025 15:37:28 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 18 Dec
 2025 09:37:24 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 18 Dec
 2025 09:37:24 -0600
Received: from [172.29.241.99] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 18 Dec 2025 07:37:23 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 796189fd-dc27-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nFIqXM8TDOdv85FHr7HI8c1TYnNHZh7uuBmFIUXsyTpAhEWA3qYHPGnIqDQttixc+vZjSkjAVg4RozX/Eufb4E/kScDbtVahCeOVTDm/n75jhnMrqCwTcsOVLt/gqyju25KuZ7qWK+gc845teQpAXuYvtKpwcqcS+Pe6AUZd4o9o0p/Z+wzkwPVzx8nDcw2UudcrnLghfEbfPkt74xFmwbknure9NCo5VBZ785IeiBUkvh6tR8jVJSyObeQccftUMffaVgAGn0cLJ43QQVEsNPM0+3DV9e0MwSZz22pj72zkYq3aBnp0jPHA6pLacCwtFuY0vYZogCj++Tkg6Pvspg==
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=N3UgJSk1lnpS7+K62I7zmSjZ8YkGRoNS+ZhjEyffwGA=;
 b=sX1+9/vo5aDQoSeqwp8SdI2UWoHYI3RED1Ois/lyKRC1Dpf0JV8RVYFECbGw6Ky7+wlvtxjQB9kkvcgWwa8pnxfQzbjg9MUh2y5JX73J4CxkgpiGULh07QDEDUEiUTtYVftdHly8c38mx36TxNZzqvZ4mW42MosleM4/ieWqZEUXrcjgnQF4tZROxap6Jogfn4lnDryRzfqhCzKpVFmQ5syxLIl/e1UthSXyEcK9NyVEqkjkSv4dAC2su39bCwCdqDQ/N/18MgN/yIHhzr6H4g6X79KtbiRCRwzr2hxHclLS1jmBoXAFhtlsKFmnC84ssC34FXT9Y86iaeVQfTK3iw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=N3UgJSk1lnpS7+K62I7zmSjZ8YkGRoNS+ZhjEyffwGA=;
 b=B/60QgTYwzggXPRkRTCqN1L/gNvrtI1z9/qtOkssfaKS9Qov5WjD/awC47ix1ktJ3FeSnQWjwxLVU6Dg2duO/saYsuxAUiKZwCU7RwnR/Z1kmzJunY1QQlZjI2B81HV8ZxSmYKfch8s/9dIWa7oo70gWiu6VBbefl0aYq7bXoD8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <e1fe4599-02e2-487d-a2c5-bc912fe8646e@amd.com>
Date: Thu, 18 Dec 2025 10:37:30 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] vPCI: avoid bogus "overlap in extended cap list" warnings
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Chen Jiqian
	<Jiqian.Chen@amd.com>
References: <26294a6d-e99b-4290-988a-da7b7b838651@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <26294a6d-e99b-4290-988a-da7b7b838651@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PEPF00000009:EE_|IA1PR12MB8468:EE_
X-MS-Office365-Filtering-Correlation-Id: ece9e6c8-c575-4a7a-37b2-08de3e4b5a28
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?aERHeHUrT2sxYm4vOVZhMXF1cmV1VDVsZHNSZFpXaUwveHFoYVB3OE1CMDZT?=
 =?utf-8?B?Zkoxd2xOOCsxUy9EMkxuUzBybDdvN2M2VC9lWjRiMkRoZ1IxZ0ZsK1ZGN3Bj?=
 =?utf-8?B?SWZjWTJSczlCTFdQQnd3RHdEZlpvb1ViRFllVWlNVmtIamZ3T0ZHY2h5S0Jt?=
 =?utf-8?B?VXczSVc4ajAxRHVKdzV5dklRS3BWU1lxMXFUVlR4TzB1enhoWXNsZWxKTUp2?=
 =?utf-8?B?dnV3c0xvN3lPY1pCOGxPamZiNnhGUC9KTGpQSDU5bXc5VXkvb2w1UWxKU1VU?=
 =?utf-8?B?eUpmUXdXRUlXRGpLUGdTT0x2Tkc5MzNFcmRROXp0bDlabWZTVlRxckJNeW5I?=
 =?utf-8?B?VnRBVXJqNHU1d1V3Z3ZxSDBRMVUrc08rL043NkIyU2hBWjNobG9aMDg1N3Qv?=
 =?utf-8?B?NGJ1WXlibHhTT0p3Q2FpVkh4ZlJub1BrUVA4L1FZT2g5eGRvd21nTFptVFpX?=
 =?utf-8?B?Mng0WDg0OERTWGFGdmcyM0RHV2ltdlVUL2o3bWEvbWQrckFOeEhWRm82UWdH?=
 =?utf-8?B?M0xzcWNyYmx1dW1lNE1Udkh0dXpoQXpKZEIyODdLaFRUdDNjbk96NXpqWWxH?=
 =?utf-8?B?b2VtWXRuTnNJK0RkSW53WThtQWs5VXRubVhsK2x2Y3ZpazM0WVNDb2l0eHJZ?=
 =?utf-8?B?c0RYRFRsVUE4ZjBKcHNxcnBLMms0Rk9HdVVVZ3ZyVlltWWw0MlhFOXdXVW1B?=
 =?utf-8?B?Yjkwc3N4cjNCL0RuTFp5REdtSUJsNEhoQmFXOXJSZkVqTmFXZGJnQlQzTjNC?=
 =?utf-8?B?Q0tFb1BMZEl5azhnU3FWYTJMTTdWS1NCeCtlanNJTjRKMS8rNzVpa2tkMkJP?=
 =?utf-8?B?dCtWZ0JlMlhuOGR1dUEzWnJqc1hhL2NTazhIWFdvbmQzUXpXaFVhVEtaREJx?=
 =?utf-8?B?Z1JnSHc3Z3Y4UlZseFlURkVFa09GWVNrYnY2QzlWWmRMenNxNEJnUFN1bFkr?=
 =?utf-8?B?WlFnbE5SNHQzbXI4TVNTWHF2SWpDdzNQazlia2IxVEFIVjZ2c1g2ZlZQcWNs?=
 =?utf-8?B?YWJrYUVybVNPRi9IcDAyMmZCSkdMRTVIMS9MYTFYTnJHcUltL3ZGcTdETHBI?=
 =?utf-8?B?WFd6MzlpdHN0dGZmQ1MxZXpwUUl1d3NOaURSZTZRUStOa3JJN1VoblpJZEJH?=
 =?utf-8?B?RHhZNExKY1ZLYytWeVl6ekd0RjZSbmVXcGRQb1IxRXNlWjBKS2R5ZnpZcmsv?=
 =?utf-8?B?Z2ZhWHU3Y1hVRDg0ZTQ4WFZjdGFoN3ZqbkkyT1BIV2RsYVlVU0tEaVBSTHdD?=
 =?utf-8?B?RkJJRGhpamNtUXkweFdOYm9EcVVSSHB6WGNhME5UTjEvVFdCbm5Zb29EcVBY?=
 =?utf-8?B?QVo1K2RINXhOMlhtWHI0YUsvdG9pdlAyZU9id2FsRVFsUzVEOGhzNkV1ZWFX?=
 =?utf-8?B?QjVBZkU2MzlxcnJ0SjAzODViSkwrTEFWUDBVMzNXRDA1YlhoOVZXK1VpLzhj?=
 =?utf-8?B?MjZobUpMNm1NdkN6R3VwbG5LVjJWa1Y5ZmVQU1kwZmk3YzRoTVphS3dSdG91?=
 =?utf-8?B?TjRFTU4rYlZBQUlHK0lvdmlUU0pWN0JGTWJ4VUdMYzBoNEovNE5KU1AzL3cv?=
 =?utf-8?B?SWI3bWV6MVZlVWFMRDBqMHp4RFpXN21ESnUzRHVDWGV3U3JDbDM5dHcxenht?=
 =?utf-8?B?MWFiVGZMWUNYc0VXdGFhTXdPNWN4UDgzMU44b2tiNmZVNGRPeDhRNDVXRDMw?=
 =?utf-8?B?SmpkUllnNG1Tc2xFRHZhOXg1dFlxbjdtUHRzN1pQZC85N1o4M0w3dEl4dTRu?=
 =?utf-8?B?bmJFbktaQzhqREx3QzQ5QnRSb2VXNU40aGpjUWpnUk94YlB2Q1YyQ1o1Q3N1?=
 =?utf-8?B?aTZ1bVNrQmV4RXBEOW4vV3NoUU5zQnM0Z1o2ekxPM2NiTmtQa2J5dXRUK2FB?=
 =?utf-8?B?UkJoVm5BUWwyQWdvYm9VUHd6YUlqM1E3YVJic0hOOVp5bG9GRFg1N1NTUEw1?=
 =?utf-8?B?MUoxZXJZaUp4S3lNQzlzbDBkRG9PZGs2OWZ1Z2REaEZKUHI2bFZxQjl5MXRm?=
 =?utf-8?B?YktxS0FUZFFJWlVqUngrNlRYSU0rYWx0ZDdqZWg4RFZNYWFRM1F2RERJbU43?=
 =?utf-8?B?N2xtWEx2Ri8wVEU4aStmbm5EL0c3cHZtZEdabmhUaHQzY2xEc1BUVlBaSWl6?=
 =?utf-8?Q?nkA8=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 15:37:28.8707
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ece9e6c8-c575-4a7a-37b2-08de3e4b5a28
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH3PEPF00000009.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8468

On 12/18/25 02:56, Jan Beulich wrote:
> Legacy PCI devices don't have any extended config space. Reading any part
> thereof may very well return all ones. That then necessarily means we
> would think we found a "loop", when there simply is nothing.
> 
> Fixes: a845b50c12f3 ("vpci/header: Emulate extended capability list for dom0")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> This is the minimalistic change to get rid of "overlap in extended cap
> list" warnings I'm observing. We may want to avoid any attempt to access
> extended config space when there is none

Agreed.

> - see Linux'es
> pci_cfg_space_size() and it helper pci_cfg_space_size_ext(). This would
> then also avoid us interpreting as an extended cap list what isn't one at
> all (some legacy PCI devices don't decode register address bits 9-11, some
> return other non-0, non-all-ones data). Including the risk of reading a
> register with read side effects. Thoughts?

I couldn't find any mention in the PCIe spec how reads of extended config space
should behave for legacy PCI devices. So, you're right, reading all 1s may not
be a guarantee. The PCIe spec seems to imply that a PCI Express Capability is
required for devices that have extended config space. How about adding something
like this at the top of vpci_init_ext_capability_list() (untested)?

if ( !pci_find_cap_offset(pdev->sbdf, PCI_CAP_ID_EXP) )
    return 0;

This would seem to me like a reasonable effort to handle the situation
(according to spec), without the complexities/quirks/cruft that Linux has.

> The DomU part of the function worries me as well. Rather than making it
> "read 0, write ignore" for just the first 32 bits, shouldn't we make it so
> for the entire extended config space, and shouldn't we also make it "read
> all ones, write ignore" when there is no extended config space in the
> first place (then in particular also for the first 32 bits)?

Hm, yes, perhaps. If we simply omit the call to vpci_add_register(), it should
default to the "read all ones, write ignore" behavior. This assumes that ECAM
will be enabled for domUs so they can access the extended config space at all.
We have patches in our downstream to enable ECAM for domUs, intending to
eventually send upstream.

> Should we perhaps also log a warning if we exit the loop with non-zero
> "pos"?

Hm. I don't have any particularly strong opinion on this.

> 
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -839,6 +839,15 @@ static int vpci_init_ext_capability_list
>          uint32_t header = pci_conf_read32(pdev->sbdf, pos);
>          int rc;
>  
> +        if ( header == 0xffffffff )

This constant should have a U suffix.

> +        {
> +            if ( pos != PCI_CFG_SPACE_SIZE )
> +                printk(XENLOG_WARNING
> +                       "%pd %pp: broken extended cap list, offset %#x\n",
> +                       pdev->domain, &pdev->sbdf, pos);
> +            return 0;
> +        }
> +
>          rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
>                                 pos, 4, (void *)(uintptr_t)header);
>          if ( rc == -EEXIST )
> 



From xen-devel-bounces@lists.xenproject.org Thu Dec 18 15:39:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 15:39:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189849.1510551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWG6H-0007iS-PA; Thu, 18 Dec 2025 15:39:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189849.1510551; Thu, 18 Dec 2025 15:39:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWG6H-0007iL-LR; Thu, 18 Dec 2025 15:39:33 +0000
Received: by outflank-mailman (input) for mailman id 1189849;
 Thu, 18 Dec 2025 15:39:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ars1=6Y=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vWG6G-0007iF-8h
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 15:39:32 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bc220243-dc27-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 16:39:26 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by GV2PR03MB8751.eurprd03.prod.outlook.com (2603:10a6:150:a8::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Thu, 18 Dec
 2025 15:39:24 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9434.001; Thu, 18 Dec 2025
 15:39:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bc220243-dc27-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pZYwfkAPzycyP+OQuW155V0vgcbBIFNk8ZZPSWdrs3YMcAH+JENKLDokvVin2YvTXrXSTXUZQKSm3WW50Wl5gFxAqDCq0ebQS05PPjZWUh3fUtsLZV1zl2r/MpY1QXpU9rNodc19Zl7SKd7Xrecz+gXKHAtYcE03xrtaqlzmMutD8WbVb0TM6Ws5TiS4yNz7siNdcKJmtdfWdLPySuy+Q/fcns7Leo8a3flaPhZ7y0NnSyz7f6bh+AW3Xzn5JsTpk6hvheY4sxuQYA2XgP44MHT3oXZGUEWwiqdt2Fvng6KW0EXuttstREjNQZonhLN7T+KAThdJ4AhsJYWhbmeyVw==
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=yROL6qwXR/NO4o/u+IU8nol6Gq44egK5+UBEFIOJFHM=;
 b=dMn98kpi+5Vw2k8dfsD/JiMnV6fCM8HpIRacywKLeI3qm8nf74M6GZmEECs7s021a8SFpPZzGmDa1elbW3W98BY86uf7Qf3mOnI7Dzh9ySQ1sHrfG/L+z+EtU36CjTkkvud4BettGtOlBAHI9umT/s2+5h0PzYqKtWX9DdwGgsR7bBs9A1b3b3dLTDlyh626ck+rtQm+pTMjQBatCv9NOwx+mZvh15uCVsUXKooN4O8wgCI2cqdv6lImsTCzACHWSJNPkZl5hxvHFqodOLAQ2J5kHJlmYpnp71YcXJOqB2uW2+C+5kotHQ7ZqPPLllYBId62n5W0ygJAp0hYGMm7rQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yROL6qwXR/NO4o/u+IU8nol6Gq44egK5+UBEFIOJFHM=;
 b=QfddbewlbhbvackoUUUzE42W1LGhuMuJVQq3cWyqbD4LHxC54PnJNReAET27xqcerIRgKR8Jk/i/fygUNzcKEkiiPn5uVimMxiz72SxIxt3DX6OKZCbC2oL0bnrE8o/YD6b8p62C1059c6Q2TMnBemUbA3cGWCJ3IxcPjUr6taaF8yFBy9ld6+b8sArxK9ehDAYSDeE6buOdI//5DqxbcYRoorNyQySP2BoFyvjlCwoQwlUV4E/jr7ifNB5F+fbsrBljgbBmW+9yJ8yzfH6EL08AWOlYjskfxv27lPg34ijB31oTRjIk108jLcbK+s0PVUf3gx4I+vKUGC2kL9hylg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <6f2a1bec-3497-4860-975b-57c06d86625a@epam.com>
Date: Thu, 18 Dec 2025 17:39:23 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v5] xen/x86: guest_access: optimize raw_x_guest() for
 PV and HVM combinations
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251218135926.188059-1-grygorii_strashko@epam.com>
 <eb7d910d-8fe1-453c-933d-9b2f208c8b12@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <eb7d910d-8fe1-453c-933d-9b2f208c8b12@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0019.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::26) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|GV2PR03MB8751:EE_
X-MS-Office365-Filtering-Correlation-Id: 4c8e8b87-78c1-4d04-0277-08de3e4b9eeb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cENCNGlZUW5ITTJ6RndwUmZHQnZtMDlzVWZxNldZK241amlHOFZGbUw2azh3?=
 =?utf-8?B?R2FBb3pydUxveXU0eDhLd0oyc2NiVlVIdmoveWxCa2k2RkFpdXJ3VVJRZ3Iw?=
 =?utf-8?B?VzR3cXROY1ZRa0JoZDVrMm1vUEFxdVk4UzZlVm4xeTFyNkZPeVY2QzlEM0ZE?=
 =?utf-8?B?YVQwTXB4dG40RDl6UmliY2ZuMWNTcXBMZGdHS3ZsKzNrVi9BTUhMbFRjclZv?=
 =?utf-8?B?Zml6ek9UKy8xWWZ3YnJjYUI5RlRITGFIMkJMcVJvRExkSEQ5WUMxTldTVXNk?=
 =?utf-8?B?YmFLNXVDTG9oS2JHVjBvSlM0YWl6aUo5UHczR0NmMEE0alRUaDJxR2RkQmRx?=
 =?utf-8?B?eVV4M2doM3o2aHEyUlpVTmhpV08yMVQ0dUlYWXgxZVZIUXRmQ3FyZERVK2Z3?=
 =?utf-8?B?R094aHdsNUFJRGh3M1N4ZVFUTTFsZ1ZaN0Q3WTZablpEVXZIeUhoN0cvK09V?=
 =?utf-8?B?YzA2cTF1SXVqWXg2K2ZRazhmSVhYNkV5VkJKNUFwb0RmU2loelpwaXMxL3Fp?=
 =?utf-8?B?S2xxemJqSDlMZkxGYVlXWFB4QWw4NW83d0JPdnkvcEVxSGxNZ2dRRFdNclhK?=
 =?utf-8?B?NHFkV2NmUDVqSy9vZDUwenBrb2prT1NXaUVtaU01aWRFUnd2amtGc3FIcnhq?=
 =?utf-8?B?bktWQnpQYUJWQWVrdlFwbllnS3hFOWZqTFZTc2NHSnpJNjBWMzRNcGdNZkc5?=
 =?utf-8?B?UUFRT0tnM2JHakZNTWxWM1JEa0JjdEZNakVabHNUc2k3dm1iT3VueklXMlNC?=
 =?utf-8?B?elpnS2g0d0dVQ0lHdElzZ1dBT0JrS3NpcHdwSUUvbHNSb0hPWHcwYkdFT2xS?=
 =?utf-8?B?RDVHdVF1eEE4cUxoVmJaaW4zMGhzYXQ4S1VtZzRUL0VjaUdTWHdyamF2Tmtm?=
 =?utf-8?B?aCszMWNkL1ZaalVwejFsRGl0VUYwWThDaHZremxsVTd1MWhRNTNnRHJhNEJa?=
 =?utf-8?B?S1JXOHJhaEY2VnZPbmp1OXZpdkxOS3ltZEl2MDNRSVk0V2hNUHdPdUJUU2VM?=
 =?utf-8?B?NHVpelpyWGpUUy9SeVg4OVFBQVF2TUhabGIvbmtJZ0tUb3g1WU03QmtlQVpS?=
 =?utf-8?B?VnBFQWd0b0FZd1BQandtS0VBZjFSMmRIZVk3SzNNSnltb2FBQVBidnR0WDdM?=
 =?utf-8?B?THoyY0p0V1h3dEhhZEJsaDNsUjUvU0lxRk1Xc0tTK3VVMzB2Q2RIODRGdllW?=
 =?utf-8?B?elhBdlFQcEMrY1RzcFA3akJwT0dmaGFvTU4xUmZ0Y1YzUUJzZUY5YkVLWFc4?=
 =?utf-8?B?VXdGRFYxZUN5THJmam5aQzNDK1Ftamp3aWs0YnB5eDhOenFzSkdBM1dZMHNz?=
 =?utf-8?B?UWJFRVc2WWJtMmJDSUcxbnZCSjVFMnd0cmoxdWM5bEZ2V2d0dEp6cm1rWkxV?=
 =?utf-8?B?RTBYS1hSVWhxMzE5cXNZc2tzMWJXZGlSM3c2M2JibU1BOVk3UHV6bXZBU0Np?=
 =?utf-8?B?SDNFOGxYK09DN3VrYkNKRDZZWmJ2dWp1MnhDNjRHaEI4KzB2WFZTbWRJZnNX?=
 =?utf-8?B?L2Q5aUZKejU3VGVzaHhNZ2NXWmlqTW5sQ2RIVHBaNTlGQWJrelNJUmR2eU84?=
 =?utf-8?B?N05yRzZ4T2FmY3VsbGdaLzZ1YldjeVZ1Q2lOazdKSjU4OUNmemtkMDFpTFlG?=
 =?utf-8?B?aWpvTit3MG9sQmpDb09xd0haN01LWjQyeXF4YUEybFpjQ3VIMEIzeFgvUjFa?=
 =?utf-8?B?cjNTaEtvc3g2ZVQ0Ymhsb1JjcVFoWFFMSmFsekZ6RENJSUdJRXNsWUsvV09Q?=
 =?utf-8?B?SzVWTDdSMWovUkpiTDN2L3FGYWRTTmJHYTBzVkZuYVlpbE9aakpta0VVaExl?=
 =?utf-8?B?dTBBWExxeXU4aUFCUmdSckt1QnFOaTAwZ2dLWWorUVRBVjZOK20yQWd0OVBT?=
 =?utf-8?B?V0xacmNqbnByN244disrYjI5VjlOcnl6akw3SXEvRDlHMFdGWmx2cGxtMlBU?=
 =?utf-8?Q?eFjNkG1w3eCni5g6x7vpW0yovUoYEa4D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WDkySlFwakdZUXIrSU5yd1c1cUVYeXpTZmhSWnBxTmVqTStnQ0loY3pmb0tn?=
 =?utf-8?B?MUZYM21HcFhvVThMRTlYU3hZSmFFTnpFd1JLVTJTejFiNkF6cEpydkVGNGVl?=
 =?utf-8?B?dUdlVDNkOXNJbk5ibHZ1QXo1UnRhWTVLTytaTC9Ha09nbmMrc0ppTk56ckNz?=
 =?utf-8?B?Q1hLbEp3V0MwNVp2NmllT21xZVhBYzhVVWlqZG5QNmxnMHpENUcyZVNqMGdq?=
 =?utf-8?B?RHpmZEhJOUcvb0ZvZXNlbFhKUndteWFJVDUxeXBFMXhpRVh4dUtpMHlCVnIw?=
 =?utf-8?B?N1dCVDFlWXZxQUFqeE5PY2c1cmh1eXl0RGpaY21GSHRlV2FpZ2p1VkhDUURD?=
 =?utf-8?B?ZWRqQUx2cWl4UlN5NjBXWVRNOEpVeVI2b2VHUHEyc3N5aWtUSG82NG8wRUhz?=
 =?utf-8?B?b2RjOWltWUVOZ1NKUEViS2l5Wk9yeGJwRVlyZTFjYzI3VnhvSUQ1QU1paHRj?=
 =?utf-8?B?ZGZ4RzFsT3p3WjlKR2tQeE9rak1ZaHJ3VDVkcGdCYW5KMExVR0RCU01QMHdk?=
 =?utf-8?B?UzhXcnJCZUpyNld4clhFRW5yYS9TdHNPNEdaMUd4YVlsTWt5V1cyUnVWZXo4?=
 =?utf-8?B?eVU5TVJoOU5hcGtYREFTL2E0eTMrQmJabnlZYitwYi8yWXBSR29nY0VNd1Vx?=
 =?utf-8?B?Z1BsTUdVdDFrOWJRSVM4anJ6dDhMZkxLYlhYL3lpRkJ2TWNaSVlEUkZNYmtN?=
 =?utf-8?B?YU1FZUVnSnBTUEpzNk8vWHVBUkM3dGVLZ2k1eFNtUUNVblgvWGd4Z2YxS0hr?=
 =?utf-8?B?RHZHUVNsUEMrSVQrY2MwdFQ2UEFQeU9pWmMvR2J6UStjZjdsNDhzSEtMczJI?=
 =?utf-8?B?Ym83MGU4aFhNRHlYL3RXbmlKSnZldklqMlU2WW1HYm9OZXVYd2lzRGFzbmpP?=
 =?utf-8?B?MnlCYVNHU1VmOHArVFVBaVBaK20rWVIzUERaYW8xQTF4T0h1dVdDZ1piNmlS?=
 =?utf-8?B?UWxFSGVQWVcwRjc3MVhRYnBySXJkVDMwY0ludmVWMER3Tlp4RTErdWJ2aUZ1?=
 =?utf-8?B?Yko3NGZDSncvRlNLRklXQVNRcHpTdmNGem1yWGVub0dPb0VhWStHUnpKZi9n?=
 =?utf-8?B?M2xWYjErR3AydHdTRmlwVUFoTHEzVWhKYXh1TDhIVVpBY0JMbzd6aXU2Rnph?=
 =?utf-8?B?eThrc3haam1ZcVBKaEZFdkNrV0VvT0FjdHNWeXZ1NFdXNkV3NHhIbHFjcTVR?=
 =?utf-8?B?Wk5nVVU0MnJQdVMzQ05OdjhxSHBqRjcvS3M4b29Kc2x0cHhkS0tkcGRnS0hM?=
 =?utf-8?B?eGQ3c0dwMVlwWDRwc2U0UUo4dHpGZm4rTW03YUl1aEFCT0NlNWZaUFpoUklS?=
 =?utf-8?B?dzNrUzlPeVVNdjVTbFVXaWRkR3VBSHBIRnFuTEQvWWVDaFZCN1VRVHI2TGJY?=
 =?utf-8?B?Qk9PeGZ2Y213UHJwNE1ZTlEwaFdVMzlsbUtvQ0VBRGVNMTl4MFlKNGovbEZx?=
 =?utf-8?B?NGo2OWwwQTE2Z0pGTXNUVmxqZlV5MW1EdXhkbkdBSWpiZDRlZzFlczlVZ0VY?=
 =?utf-8?B?WWZocVJtS2NTMWZxMWxFQmYzcjZkelBpN2N0amRLZTdsbjVQTnlEenR6SkZ6?=
 =?utf-8?B?STM0YzJ2OFd5c2RmK0xIaEpBS3JmVzJ3UzVLV2o2aGQvbXhhdkdFWi9WTXM4?=
 =?utf-8?B?azNPZFVxUmFSVm0ralgwUGFuekd3QmJLQVlJazlFZng2OVBmVlE4aGc3R3hK?=
 =?utf-8?B?NldPN0pXKzlCL1hDVTk2WHhyb21HM0xZQk9icW1kSm5Hb3h4dVlTUm9pb0dj?=
 =?utf-8?B?WFBPWlg1cmkrUzgvOVd0ZXFCM0lyYklaekwybUl5WFJOU1ZnakpYRkZmMkRZ?=
 =?utf-8?B?bncwb29ieFdWUkdNQXR2K25jZjgwU05CcXprb0o5Zk9LdG9KeXJWa2NkOGd2?=
 =?utf-8?B?RjlDOU1RRWY3ZXEzY2JTYlFpUi80VzNTVUZZSWlIWXM5UHlQbmlrK0k2RTM2?=
 =?utf-8?B?QWR2UUFoOWlJVjd2dTh4YUlabjN2Si8yM3hSZFhNZlJ4dmJkQ29HUnJRUFJz?=
 =?utf-8?B?Y0tRdXJNcThCVHUyN0U3MTVJSlZ1Ti91RWdKdkc1TGplZXZkSUxuK3V2c2hH?=
 =?utf-8?B?WHZSa2UrcFpSWUgzQkRsVDNWaTEwWTBTaHBGQU9wdldRY044U1lobytYR2Z2?=
 =?utf-8?B?RUdsYXhnZXh5TGlkc1pSaXpLWjZtZ1Zpc2M1bVVZZVdOZ0plWmoyL3RwbGxy?=
 =?utf-8?B?d1E9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4c8e8b87-78c1-4d04-0277-08de3e4b9eeb
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 15:39:24.3793
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: uy4Ztqrk6ewfTUNzm3PUz5SP3ml6eWvRc7WFqHK6WHX4zg9yjqTX0Id3Spoh+jzY02RLCPNXgWc5sNF9t0T6iFPDTBTt+eOtyZJP+51UoMM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR03MB8751



On 18.12.25 17:22, Jan Beulich wrote:
> On 18.12.2025 14:59, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> Xen uses below pattern for raw_x_guest() functions:
>>
>> define raw_copy_to_guest(dst, src, len)        \
>>      (is_hvm_vcpu(current) ?                     \
>>       copy_to_user_hvm((dst), (src), (len)) :    \
>>       copy_to_guest_pv(dst, src, len))
>>
>> This pattern works depending on CONFIG_PV/CONFIG_HVM as:
>> - PV=y and HVM=y
>>    Proper guest access function is selected depending on domain type.
>> - PV=y and HVM=n
>>    Only PV domains are possible. is_hvm_domain/vcpu() will constify to "false"
>>    and compiler will optimize code and skip HVM specific part.
>> - PV=n and HVM=y
>>    Only HVM domains are possible. is_hvm_domain/vcpu() will not be constified.
>>    No PV specific code will be optimized by compiler.
>> - PV=n and HVM=n
>>    No guests should possible. The code will still follow PV path.
>>
>> Rework raw_x_guest() code to use static inline functions which account for
>> above PV/HVM possible configurations with main intention to optimize code
>> for (PV=n and HVM=y) case.
>>
>> For the case (PV=n and HVM=n) return "len" value indicating a failure (no
>> guests should be possible in this case, which means no access to guest
>> memory should ever happen).
> 
> I agree with Teddy's sentiment towards HVM={y,n} not really mattering when
> PV=n, as far as non-HVM domains go.
> 
>> --- a/xen/arch/x86/include/asm/guest_access.h
>> +++ b/xen/arch/x86/include/asm/guest_access.h
>> @@ -13,26 +13,64 @@
>>   #include <asm/hvm/guest_access.h>
>>   
>>   /* Raw access functions: no type checking. */
>> -#define raw_copy_to_guest(dst, src, len)        \
>> -    (is_hvm_vcpu(current) ?                     \
>> -     copy_to_user_hvm((dst), (src), (len)) :    \
>> -     copy_to_guest_pv(dst, src, len))
>> -#define raw_copy_from_guest(dst, src, len)      \
>> -    (is_hvm_vcpu(current) ?                     \
>> -     copy_from_user_hvm((dst), (src), (len)) :  \
>> -     copy_from_guest_pv(dst, src, len))
>> -#define raw_clear_guest(dst,  len)              \
>> -    (is_hvm_vcpu(current) ?                     \
>> -     clear_user_hvm((dst), (len)) :             \
>> -     clear_guest_pv(dst, len))
>> -#define __raw_copy_to_guest(dst, src, len)      \
>> -    (is_hvm_vcpu(current) ?                     \
>> -     copy_to_user_hvm((dst), (src), (len)) :    \
>> -     __copy_to_guest_pv(dst, src, len))
>> -#define __raw_copy_from_guest(dst, src, len)    \
>> -    (is_hvm_vcpu(current) ?                     \
>> -     copy_from_user_hvm((dst), (src), (len)) :  \
>> -     __copy_from_guest_pv(dst, src, len))
>> +static inline unsigned int raw_copy_to_guest(void *dst, const void *src,
>> +                                             unsigned int len)
> 
> A side effect of the converting to inline functions, besides being more
> intrusive, is that now you will want to add proper __user modifiers.
> See lib/copy-guest.c's use of them. That said, ..._user_hvm() functions
> also don't have them, but imo wrongly so. Really I question the use of
> pointers in that case, because they "point" into a different address
> space, entirely inaccessible via use of those pointers. Hence adding
> __user is going to be only a marginal improvement for the HVM case, but
> is going to be wanted for the PV side of things.

ok. so it need to be like this in all funcs

-static inline unsigned int raw_copy_to_guest(void *dst, const void *src,
+static inline unsigned int raw_copy_to_guest(void __user *dst, const void *src,
                                               unsigned int len)



-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Dec 18 16:03:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 16:03:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189879.1510606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWGSs-0004XR-2L; Thu, 18 Dec 2025 16:02:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189879.1510606; Thu, 18 Dec 2025 16:02:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWGSr-0004XK-TY; Thu, 18 Dec 2025 16:02:53 +0000
Received: by outflank-mailman (input) for mailman id 1189879;
 Thu, 18 Dec 2025 16:02:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XN7D=6Y=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vWGSr-0004Wy-4A
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 16:02:53 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0033518d-dc2b-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 17:02:50 +0100 (CET)
Received: from SA1P222CA0011.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:22c::13)
 by LV2PR12MB5798.namprd12.prod.outlook.com (2603:10b6:408:17a::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.12; Thu, 18 Dec
 2025 16:02:40 +0000
Received: from SA2PEPF00003F63.namprd04.prod.outlook.com
 (2603:10b6:806:22c:cafe::a0) by SA1P222CA0011.outlook.office365.com
 (2603:10b6:806:22c::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.7 via Frontend Transport; Thu,
 18 Dec 2025 16:02:36 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SA2PEPF00003F63.mail.protection.outlook.com (10.167.248.38) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9434.6 via Frontend Transport; Thu, 18 Dec 2025 16:02:39 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 18 Dec
 2025 10:02:39 -0600
Received: from [172.29.241.99] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 18 Dec 2025 10:02:38 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0033518d-dc2b-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VveY/Qt5ZOfcXMURSju+OOrgclo0hVs3mChcZTxePXczu1CkxdS42cx+xmnZ4LKfolmD9JdLtzIbVtm/YkcFH2GHnvj71TVReevTOnUFYXZ6Nx62w4JtzlYtOg6VdqtExqUJ0NbnUexLZRWgC/GGt4Pd1vQe0FMLnwTcKOjGQX0ZZvmWdCoJLINZWyGqd6yp4uM2XqZV8TQbIvp5W4odE2n+1fJ/CiY2Rv0zH/pEhIbCeG62M3NNcuxbSxwgPsAuhggXbWa3UDAwizC5WJf9Yhx78aVYYNyrt/P0QEzJ8wB5AgU+jHLJgE5dkxAwI0IyOrRp8JgKgxRIRO/bBFxNRA==
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=ATrvPXP9//m7IKl0otWR4YqwSwtzB4Mq1gbZJcufMc0=;
 b=DKi2XTEaehWzLNeFPHtd/ivZfTpvoY559ELiRpomoNOXUgTHeIW2puQ0U2mJJ19M7oz217B/I2neYk50DJKGbSkpYO+uPHkZ/7S0FhP803AWIgaDCeC4nwkEUqRCvKPHsyHxab5YXXXUWZaczkMbsmS4gJj03Idf5nVW7HSurb62zNgUcOt7ZO4/1ZYtbHbG2NhFtblr11JF0WJA6hP+PrpQw1l7b6eUH+t1cgqIAiOpIJUcY2vAb5QM0Fqc2EC5Qaw1N2glV/A3wNoxyWZrDhDTtembF3hUq4mcTmoKmOUkdDC8K0aFQOWTBeQ+SZHtSb6TYfhvoiI3GVgJQ8LRmA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ATrvPXP9//m7IKl0otWR4YqwSwtzB4Mq1gbZJcufMc0=;
 b=XmyD/mv7fntPAENSJANQHp01ZS/HBftE2oUgjzUkeC0W5/UPYmLny6BVYUV/v/nG6wRwXc2KBrYIGu/x2nDYukl8M65wz/vwouGbXrKDSrojnr5jLgweoVH/BlioGagjGtarIB6yh1FzBI19yHqnYHH8dxSctznYSUBf7eUakJ8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <4db98b05-5277-4ca4-a6bb-0054490a0280@amd.com>
Date: Thu, 18 Dec 2025 11:02:40 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] vPCI: make vpci_add_register() an out-of-line function
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <70e156e1-c51f-40a7-83b4-2d228a102367@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <70e156e1-c51f-40a7-83b4-2d228a102367@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003F63:EE_|LV2PR12MB5798:EE_
X-MS-Office365-Filtering-Correlation-Id: 152e645c-fa53-42c8-b71f-08de3e4edec2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?U3k3NnlCTFhyQ0o1MEdiRkRNWkhJeDA3cVFnbWhzNjJvYnJmWmpTSXVRVS85?=
 =?utf-8?B?RlAveVM3T2dSVHpMQmxWQjVxbmFza2RDOGc3aTFNY05LMlMrYUpzb0JYQWJt?=
 =?utf-8?B?NVpZSEw5WkJzbjJXck0zazdDYitkT1pjQ1l5a3VIRldyMkpZeUhDa0lGaHFh?=
 =?utf-8?B?OG95WVRKdC9rdzRucm94ZnRCcy9mNVQyZVNrQ2lZSlVyNnRic2o1RHZQeVlu?=
 =?utf-8?B?VkMvUytndWxIWHF2ZCt0cUhuOVFGZFl5V2VYVytaS2xzWXQ3STNkbmJoa3ZC?=
 =?utf-8?B?ell2M2gwT3ZNNy9COW1ISmQ4Sm5XREEwR0NDeTI3Vms2Vy9FNFRoTkhyRmEr?=
 =?utf-8?B?NCswOFE1Zzc3bEVxUGZ2ZTdFZnJPemY5cHRCbm40dzV0Wmg5U3lwd3BNdm1v?=
 =?utf-8?B?WnEwVmZxS2I0SEVDeVBLWjkxaXNSNEhvdGpxdUpoSE9LNlBIYnp3algwQzhu?=
 =?utf-8?B?NVB3NzVpUkdieC9uVk83MWsvOHhJNUNUdEQ2a1hkeUQ3dDdDNWhpY1NRQ0x1?=
 =?utf-8?B?QjZ1MEVDelJoQ3FsQ25hV3d0eUVTWEtONkpETDEvRktaYmxvRDR3TVJxVHp6?=
 =?utf-8?B?L0dqZllNNnpJN0FNYkVXWHFWM2YwL2lCbmZCUk5TMFZBcWRkT1diRlNUdWZL?=
 =?utf-8?B?VURVaU9RMFRVcWJVYUhJS1I0UW00a2Y5ZGNCVlZIOEV6QjNEbVhlSlIvSzc4?=
 =?utf-8?B?QUlaR3N5TkNkbkJRRGJwUlFzOWx0NnlVUHA3bDR5U3kwUWUxSi8yKzZhL25y?=
 =?utf-8?B?RGxRaHJLOVdZYVNFUzcyZ3ZxdFZ4dUJkZ050bXV0VWhxdG1yRC9wRGhJc05C?=
 =?utf-8?B?bVo5MDg2cmppSjVYbkdnemFpbVZ5cGgzblNmNzRhdHJMSXVrVDBGWWZqRWhk?=
 =?utf-8?B?cStJc1pEancxYy9NWnUxZjRGSlpoSmJWWE83blJoU1hZdDNMZEJQcHJ6VUZS?=
 =?utf-8?B?MjlLMzVncnhNU2NRalNhSTVrMUhxWndDNHBQWEEwT3oyczNwaVpYSXZLQzdO?=
 =?utf-8?B?eVI0ZDF5QjVhMlhid3ZONG45b3NCTHE0UXJiSW5vU1lrUHNKeXA4aWZMSVR3?=
 =?utf-8?B?ZFN0aHZ4a1hDOEtiUDlFOEhYWjk5ZkxhbENBTnhROGJiRlhVRlhlQlJ3STBD?=
 =?utf-8?B?VWNralk1RmV4ckptWUN2LzBKWHB5LzhNbVNGMUdtQ2kvMlJOdWNSd3pIcjRN?=
 =?utf-8?B?b1lGMlF4dU80ZjdiSTZGZERwRDFiQ1BsTVA2QUZHMGZFWHJJQ1ByK2dYdHpC?=
 =?utf-8?B?ZHY2aWxkbm45TENWSm9IMjZlY29wVUZJT1psbDFzMlIxZTVQQmF2aUVvNVRk?=
 =?utf-8?B?SFdMVEtOdmdSTFhaSSt4MnpKV1dZL2o4M0NPRDZVRXJiUTV5dlRBRlNSZVpG?=
 =?utf-8?B?dCtJeG5qR2tXS0I1Zm5kaDA0OStLMlpybjJsSWVsSUxkK2V0Q09jcGdYNGhC?=
 =?utf-8?B?dDJHcnlNZldOVTEvUUY0RG5nUnhjVFk3bnZnczF3VFhoU1QwSkxyei81Ukt4?=
 =?utf-8?B?UmdwVS9hZ1dweG9xVi83WnU5ZXFjWS9JZmNqaENuc3VBaVk2YVQ3YnJDQXlR?=
 =?utf-8?B?QkRPQUI1Uy95cnYrMldtdWFCTEhyTWtDbVc4bWw2VGhjSDZXMEV5RXM0L1h1?=
 =?utf-8?B?dWc4U2Nkdm9jYUxzL01YaUgxUVU4dFZEeU5oNVhSM05zQ2lobHMrN1lyWEcr?=
 =?utf-8?B?Qm5RemlEU1E0ZmhuR3lWUG55TVNxY3FuK0ozazZGU0xoemo5Z1loZTZuTnVi?=
 =?utf-8?B?cndVSDhURmZyc2tqOCtjZ3htclBqWXZ2SDNiMGJoSjlCdjM5RnlvSGVlZHpU?=
 =?utf-8?B?dmg2Z3M2Y2J4QVVEZG1uZVM3dm9FbHFrQStOUktkRFBWeTNvdDNvNTVHUnBX?=
 =?utf-8?B?NnA0L2JseGhHR2VrNG1mc2dEaG5icm53d0VPTTBjYzA1dzBRWWdDTzBxMkx6?=
 =?utf-8?B?a0ZEeHhBdVl3R3ZDL0I1MkwwSXZxc2N0YTViQUpkRzZYRU00dGU0S0FHKzJ1?=
 =?utf-8?B?Z2YySUVwa3cvS2N4dmhpOHFGc1VONVg5d3hoOWtPamUwOS9DNXhnVjJ4a1NV?=
 =?utf-8?B?bXhqRzJsbGNSbk1zOGlUekFhMTIvYldGL2RpYlVoQUpCVjRpelEzOEJOc24v?=
 =?utf-8?Q?xDN4=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 16:02:39.8207
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 152e645c-fa53-42c8-b71f-08de3e4edec2
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003F63.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5798

On 12/18/25 05:45, Jan Beulich wrote:
> Calling a function with 10 arguments is inefficient on many architectures:
> x86-64 allows for up to 6 register parameters, Arm64 for up to 8.
> Everything else needs passing on the stack, i.e. forcing the compiler to
> emit stack manipulation insns at every call site.
> 
> Shrinks generated code on x86 (with gcc15) by over 250 bytes. The gains on
> Arm64 are a little less.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Stewart Hildebrand <stewart.hildebrand@amd.com>

> ---
> Why is it, btw, that the declarations live in xen/vpci.h? These functions
> aren't supposed to be called from outside xen/drivers/vpci/, are they? In
> which case their decls may better live in a private header?

You have a good point, they could very well live in a private header IMO.


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 16:14:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 16:14:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189897.1510615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWGeP-0006Ui-5h; Thu, 18 Dec 2025 16:14:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189897.1510615; Thu, 18 Dec 2025 16:14:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWGeP-0006Ub-2Z; Thu, 18 Dec 2025 16:14:49 +0000
Received: by outflank-mailman (input) for mailman id 1189897;
 Thu, 18 Dec 2025 16:14:48 +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 <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWGeO-0006UV-3D
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 16:14:48 +0000
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com
 [2a00:1450:4864:20::42b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ab97cabb-dc2c-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 17:14:46 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-42fb6ce71c7so654324f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 08:14:46 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324498f910sm5685891f8f.23.2025.12.18.08.14.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 08:14:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ab97cabb-dc2c-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766074486; x=1766679286; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cyEKBWaWBfS4XLD0YSDLrc5n41zIDk7vKrx8g83/Das=;
        b=bkE3UT1zhGUfyJ7hEeZMgHN4VwnPM4NVhI4lIaBgef5+NTcRHomwPUJg4SJt1GAGbL
         7gGwl/Oi0qnlrMIhA9cCXwnbADXrwJ+sQfBcpAmmbUr82TZxSxtg4BTvksOgZRCCQuf2
         JIItkriGMYyh7Z6j8AKkpEbJ4frYnvXtXv6GBMvi+cTXhZ9YEt6I9/gPXP+mf0Rt7mwg
         gx8mGQbCxJdI6rdFvxnsQL6kFGvdqQlMhA71aIXcvlxjhtS7E5utdX0rMVoB82p9ij+l
         O7gdDvjPGy+WvGa7tP0vXEDsmcLhKUn/b48I49XKhE6J9aUI8TM8qer6SSQPLZ4ugkXF
         L7aw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766074486; x=1766679286;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cyEKBWaWBfS4XLD0YSDLrc5n41zIDk7vKrx8g83/Das=;
        b=ghvPkJmsFikcOq0BHVSSqIQeQKB0OVMUoGuABMy168vbLUU9FB7xrxjRv84GmsQo9K
         BMNvifVk8yPOO/Q/fLYftg0bP8s5iT+SGV/lCNRGecg0Gy95dg7cArxiv0jGbEj59Xaj
         LzSQcDRd2BMQ+xV1x9VB0aliUEkwxKBrZSVvpsmbU1KHhvnHAfxBgl+BSz3qZRueXKOa
         SYEM02hz5x5aHczAXjbqIMqhK6+46wEue0icXk2e10kCUpDEvDozu/dS/7UTdhIKLTzO
         EsHSA80ahzQoO8IDTgTCyWxTdR8Z48tuJkf1Brptslcz24hJ0FgnOoKU1mpqLTnT4f4A
         +eFg==
X-Forwarded-Encrypted: i=1; AJvYcCWrUCvtg0jsc/dhM/LJsFMrE0Ua7Uk9G3102+fcia+EoDbRk33oXSzeV950VHAzZOwz2y9aInhGOHA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzsAxCiLnqbgycsFHWiqyg1M3PdwjBkKK91rINbKysPmOxM+deL
	uX2lMljUtbi1FSqUEdP0CdAQPpdCst7KeevG7kIVPSuj9Tw/j8tnZJN1Pz2z/mr3yA==
X-Gm-Gg: AY/fxX5m1MSSGUPb2LH6nXlq8adVIpqW8NuH7TOgoUx+kg2PR88FhXwuyIVx1k2VoSq
	Q6JBt9jLwM06inj9qEgjVqrNoDfAXPtX/OotamBXWv6Oxhc2yPMbAloAp4Qt95ZgydMs8k3/eDj
	3VWfrX6HAz4Rn++oGqAesSeLL7/KyhyJj5TfKx72aHuVH9A8/IcSMg/sekvAQU1FH6gSXwzlKSc
	SzHXxUugRkckPQlYiCR8verL50PjRq82m3qhDGlv/cRZb4UYHDlWpqrKJ6DQWE2dL2n3t8PUeAo
	Lj3WZnLTpYYWOccQbOHxgpOU5eT5lhkfDd1YnFW6zGY/GBUd+xF2tipUz5xZQz10Lmp+82gn5lZ
	xEk+6/gTz7nsPVG54j8VlmW79mQz5LeOYRbX3Z674xZ4yHl3USPzOxNIT9Qy5BJ0sdK0vVVLS2g
	sXjKYhUw//d46BOUHTb++lxtgJT6fU8LfnPLtVCcKrnh5fbFG6Mt2IUpboVbPg85wtwM/7I7izx
	rY=
X-Google-Smtp-Source: AGHT+IFVdekmEOalt4NUeEDUyB8AvzOiOrtZeCsWREBZcKPl8mPPHRAWA/2M8vFy3ePZ/IRfUDjOEQ==
X-Received: by 2002:a05:6000:430b:b0:431:62:d946 with SMTP id ffacd0b85a97d-4324e4c9de8mr34536f8f.23.1766074485872;
        Thu, 18 Dec 2025 08:14:45 -0800 (PST)
Message-ID: <c5f210b5-f321-4153-a508-1abf5fc43644@suse.com>
Date: Thu, 18 Dec 2025 17:14:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] vPCI: avoid bogus "overlap in extended cap list" warnings
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Chen Jiqian <Jiqian.Chen@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <26294a6d-e99b-4290-988a-da7b7b838651@suse.com>
 <e1fe4599-02e2-487d-a2c5-bc912fe8646e@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e1fe4599-02e2-487d-a2c5-bc912fe8646e@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.12.2025 16:37, Stewart Hildebrand wrote:
> On 12/18/25 02:56, Jan Beulich wrote:
>> Legacy PCI devices don't have any extended config space. Reading any part
>> thereof may very well return all ones. That then necessarily means we
>> would think we found a "loop", when there simply is nothing.
>>
>> Fixes: a845b50c12f3 ("vpci/header: Emulate extended capability list for dom0")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> This is the minimalistic change to get rid of "overlap in extended cap
>> list" warnings I'm observing. We may want to avoid any attempt to access
>> extended config space when there is none
> 
> Agreed.

First - I realize only now that I should have Cc-ed you on both vPCI patches;
sorry.

>> - see Linux'es
>> pci_cfg_space_size() and it helper pci_cfg_space_size_ext(). This would
>> then also avoid us interpreting as an extended cap list what isn't one at
>> all (some legacy PCI devices don't decode register address bits 9-11, some
>> return other non-0, non-all-ones data). Including the risk of reading a
>> register with read side effects. Thoughts?
> 
> I couldn't find any mention in the PCIe spec how reads of extended config space
> should behave for legacy PCI devices. So, you're right, reading all 1s may not
> be a guarantee. The PCIe spec seems to imply that a PCI Express Capability is
> required for devices that have extended config space. How about adding something
> like this at the top of vpci_init_ext_capability_list() (untested)?
> 
> if ( !pci_find_cap_offset(pdev->sbdf, PCI_CAP_ID_EXP) )
>     return 0;
> 
> This would seem to me like a reasonable effort to handle the situation
> (according to spec), without the complexities/quirks/cruft that Linux has.

But it wouldn't be sufficient. Host bridges are special, and PCI-X also
needs handling.

>> The DomU part of the function worries me as well. Rather than making it
>> "read 0, write ignore" for just the first 32 bits, shouldn't we make it so
>> for the entire extended config space, and shouldn't we also make it "read
>> all ones, write ignore" when there is no extended config space in the
>> first place (then in particular also for the first 32 bits)?
> 
> Hm, yes, perhaps. If we simply omit the call to vpci_add_register(), it should
> default to the "read all ones, write ignore" behavior.

But it doesn't right now, unless I'm mistaken?

>> --- a/xen/drivers/vpci/header.c
>> +++ b/xen/drivers/vpci/header.c
>> @@ -839,6 +839,15 @@ static int vpci_init_ext_capability_list
>>          uint32_t header = pci_conf_read32(pdev->sbdf, pos);
>>          int rc;
>>  
>> +        if ( header == 0xffffffff )
> 
> This constant should have a U suffix.

Oh, of course - thanks for spotting. If we go the more sophisticated route,
this would disappear again anyway, though.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 16:20:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 16:20:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189906.1510624 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWGja-0008Db-MP; Thu, 18 Dec 2025 16:20:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189906.1510624; Thu, 18 Dec 2025 16:20:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWGja-0008DU-Jr; Thu, 18 Dec 2025 16:20:10 +0000
Received: by outflank-mailman (input) for mailman id 1189906;
 Thu, 18 Dec 2025 16:20:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWGjZ-0008DO-3T
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 16:20:09 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 68749e14-dc2d-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 17:20:03 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4775ae5684fso3640185e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 08:20:03 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324498f8fcsm6074700f8f.24.2025.12.18.08.20.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 08:20:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 68749e14-dc2d-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766074803; x=1766679603; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AbY1A2navqHGoxYq4ADdTsAQYnXtOjPOmroHMNFGK9w=;
        b=WEu/xXW0zh5YsQw6EHYrBF3LyHx1q8ECuOjlgSnq8mJZvOJW/tkXnjdMAs3phivO39
         idKgBXyf4soXPz6+TLCfpOkBaDwlg+vzTPwRQwmqJPoD9RJMqxPfsMuDOvj3XRUxjSVI
         /PYcr11HuXf4Q7baCSG4AnK1OhuphG7sx1oaODJBiwC0ypfZ8pnFuHlf7Ib0tXWxh+Yk
         Cf8oVn7qEF1P8AIoMRnaU7FjEL/KYYDLf4epOMzh8uDwIM4ZjSS7g5p2pqXv5fMq0w1C
         flMa/PpGwC7VgOz/gYQaF5NJOBj5jXHOkY46Q9jpuc8fVR/XxGolVxNxMvKub9b9DLAC
         UpLA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766074803; x=1766679603;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AbY1A2navqHGoxYq4ADdTsAQYnXtOjPOmroHMNFGK9w=;
        b=r7+T8xGvIOghFB0zeOYUuTyACQekXax+R/saxNaPSTBcuS7aOUE5Ir9KFpdHVbT7Je
         UG0PaJWRa36z2BJMc3ea3835rUulHkFB6SFQFTwVSRtZMpkGLilKiHAXd+CejIf70Khe
         EzC0gysUfuod5sZ0+EFV1zAsFQQFgRdvVlUca90tHlgnRNorxDBSz9pWpKXumTsip6P0
         F/DyaX/eOsq7vx6f0idiWjovxbn4l3a/K2IliU78MM1UEM8P/dCqBpEfwcfH3oWrfsNk
         +fDh8qpk9YDw8ZeQ5WqS3WtRDah2WD1fi26pxCivoji7+wpSxR+3pmMw6FpBhVZ4aXGu
         skRA==
X-Forwarded-Encrypted: i=1; AJvYcCXopG6S17XWWbwqIxiPyDc/J275PdjXs2rGoQEwpNQAZLufNTK3c7WSnRZUjaKxV8sLZprGeyYulCo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxU9idX5D9gOenbTEyEB3HUc8v4d7km85NhOmJB3Dv1n7bDtmIP
	Aj48Pm9q0OEh/KXPnteRhdi5rz6nDqQ62TauQBzrXI2jdMoIpMZux/S8K4hJnPncyw==
X-Gm-Gg: AY/fxX5nXewOtN5yn7vTNe+pzETVn9nQRriCBc5Sq5MObmEGHKSkB8EC/nRXjuBgukS
	jwvgoAW2hzin2BPBFLd6WD62QxcNuRNAz8QiJcdxf4hVoCGy+q4NKODCN5YaZENx/2LMkLGTNR0
	yMX2LJCVmUriGvQMnARpPvIRVLO1jhBpGkpvbN+EoC8WO7TSDObTzBaouq5b5A9c6SJbpZt1RAK
	oCsHvAT7XGtbQsUd/I9xSbzXmngxKtkym7I2Glo9kgvutOalyun+/qkhr4sraUON2nV39nqynwm
	57qGAjZXu++iSwuBXo+Q9Dcz647SINtiPxO4NRTC4rbc4vcT36dguCSbJB2d8aGtKyeCeNM35oD
	yfHnH+505FNS9TUCR2E0uhNvuF3Q5AlYYaf+8FX5/VdI+fmWNfjl0gkSloXyn/aA/8o1ps5FqpP
	0j4w3xiySJBWadyy40qtJlPQ11IkQXVKJfYaFsvLHif1qBmxOMvIAloeBEqfIMZ23/c7k9obDqC
	QM=
X-Google-Smtp-Source: AGHT+IEOTg+P7LbaeXXk6v7BKyV2LM9SS6/kk/IOVOALyS1efuaU2rnwCTJWaxO2euhvicWPlH7WdQ==
X-Received: by 2002:a05:600c:4f14:b0:475:dcbb:7903 with SMTP id 5b1f17b1804b1-47a8f8bd9a7mr246940525e9.9.1766074802678;
        Thu, 18 Dec 2025 08:20:02 -0800 (PST)
Message-ID: <129a076a-6523-4134-98b7-e67b0041b970@suse.com>
Date: Thu, 18 Dec 2025 17:20:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/hvm: vlapic: fix RO bits emulation in LVTx regs
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250930190550.1166875-1-grygorii_strashko@epam.com>
 <26376311-33fb-42fd-a346-417b4faba55e@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <26376311-33fb-42fd-a346-417b4faba55e@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.12.2025 16:32, Grygorii Strashko wrote:
> On 30.09.25 22:05, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> The LAPIC LVTx registers have two RO bits:
>> - all: Delivery Status (DS) bit 12
>> - LINT0/LINT1: Remote IRR Flag (RIR) bit 14.
>>
>> The Delivery Status (DS) is not emulated by Xen - there is no IRQ msg bus,
>> and the IRQ is:
>> - or accepted at destination and appears as pending
>>    (vLAPIC Interrupt Request Register (IRR))
>> - or get rejected immediately.
>>
>> The Remote IRR Flag (RIR) behavior emulation is not implemented for
>> LINT0/LINT1 in Xen for now.
>>
>> The current vLAPIC implementations allows guest to write to these RO bits.
>>
>> The vLAPIC LVTx registers write happens in vlapic_reg_write() which expect
>> to implement "Write ignore" access type for RO bits by applying masks from
>> vlapic_lvt_mask[], but vlapic_lvt_mask[] contains incorrect masks which
>> allows writing to RO fields.
>>
>> Hence it is definitely wrong to allow guest to write to LVTx regs RO bits,
>> fix it by fixing LVTx registers masks in vlapic_lvt_mask[].
>>
>> In case of WRMSR (guest_wrmsr_x2apic()) access to LVTx registers, the SDM
>> clearly defines access type for "Reserved" bits as RsvdZ (Non-zero writes
>> to reserved bits should cause #GP exception), but contains no statements
>> for RO bits except that they are not "Reserved". So, guest_wrmsr_x2apic()
>> now uses different masks (than vlapic_reg_write()) for checking LVTx
>> registers values for "Reserved" bit settings, which include RO bits and
>> do not cause #GP exception.
>>
>> Fixes: d1bd157fbc9b ("Big merge the HVM full-virtualisation abstractions.")
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> ---
>> Changes in v2:
>> - masks fixed in vlapic_lvt_mask[]
>> - commit msg reworded
>>
>> v1: https://patchwork.kernel.org/project/xen-devel/patch/20250925195558.519568-1-grygorii_strashko@epam.com/>   xen/arch/x86/hvm/vlapic.c | 14 ++++++++------
>>   1 file changed, 8 insertions(+), 6 deletions(-)
>>
>> diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
>> index 79697487ba90..2ecba8163f48 100644
>> --- a/xen/arch/x86/hvm/vlapic.c
>> +++ b/xen/arch/x86/hvm/vlapic.c
>> @@ -44,15 +44,17 @@
>>   static const unsigned int vlapic_lvt_mask[VLAPIC_LVT_NUM] =
>>   {
>>        /* LVTT */
>> -     LVT_MASK | APIC_TIMER_MODE_MASK,
>> +     (LVT_MASK | APIC_TIMER_MODE_MASK) & ~APIC_SEND_PENDING,
>>        /* LVTTHMR */
>> -     LVT_MASK | APIC_DM_MASK,
>> +     (LVT_MASK | APIC_DM_MASK) & ~APIC_SEND_PENDING,
>>        /* LVTPC */
>> -     LVT_MASK | APIC_DM_MASK,
>> -     /* LVT0-1 */
>> -     LINT_MASK, LINT_MASK,
>> +     (LVT_MASK | APIC_DM_MASK) & ~APIC_SEND_PENDING,
>> +     /* LVT0 */
>> +     LINT_MASK & ~(APIC_LVT_REMOTE_IRR | APIC_SEND_PENDING),
>> +     /* LVT1 */
>> +     LINT_MASK & ~(APIC_LVT_REMOTE_IRR | APIC_SEND_PENDING),
>>        /* LVTERR */
>> -     LVT_MASK
>> +     LVT_MASK & ~APIC_SEND_PENDING,
>>   };
>>   
>>   #define vlapic_lvtt_period(vlapic)                              \
> 
> I'd like to return back here and finally get this issue fixed (and make tests green again).
> 
> So could this simple fix be merged?
> 
> There is also follow up patch [1] which can be still a "follow up" patch or can be made prerequisite patch.
> 
> [XEN] x86: hvm: vlapic: rework WR/rsvdz masks for LVTx regs
> [1] https://patchwork.kernel.org/project/xen-devel/patch/20251009114249.1964387-1-grygorii_strashko@epam.com/

I was really intending for "x86/vLAPIC: CMCI LVT handling" to go first. Which
obviously requires someone to review it ...

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 16:20:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 16:20:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189912.1510635 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWGk3-0000BG-V2; Thu, 18 Dec 2025 16:20:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189912.1510635; Thu, 18 Dec 2025 16:20:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWGk3-0000B8-SO; Thu, 18 Dec 2025 16:20:39 +0000
Received: by outflank-mailman (input) for mailman id 1189912;
 Thu, 18 Dec 2025 16:20:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ars1=6Y=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vWGk2-0008DO-KH
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 16:20:38 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7a66b26f-dc2d-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 17:20:33 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by VI0PR03MB10250.eurprd03.prod.outlook.com (2603:10a6:800:20d::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Thu, 18 Dec
 2025 16:20:30 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9434.001; Thu, 18 Dec 2025
 16:20:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7a66b26f-dc2d-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ynosVvYMuzmwWQ+7A7e7bG+//wVbik6ZkCzV8LDjZSHAZfupknLkgxIkuUychow+lVHzewNn+q2cBytOGN3dwdGdogTD8C5XS9/XizGwF2vRzsCtDh7zsUmyU8uFuml+M4mxU4pGzbAICnFFuCSVk/GXHeG/ptod/+WsQSBgUM2fcTRQaZMRQzdbNjXjf67+BEPaJ15asJEqXhElTqmWpT7pf0fTaJijamKjaN1LWVIHe2ryK9zeF09zFNqtr0wl+ToMAYJXgBoWPiOkuBnpn4h0MjyVKi6SPTFTHqhZfO7cClQxcVO46OEe9YfBKiDlUblktJlKPB+dHifsmP97Ng==
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=+mU+n96SrXtJXz77KEd5uU3Rpb30fbUbKR/2UQQkKB0=;
 b=kIx2llwA8i0VD77i25AIgOwBDeZbie6lPeq8LG+qWMPxBgcyAvtpcD5yTBbkuOs8wJTuRPCs6BM8LDgaqMRW03H/2sXwj9OSiSbH4PT4pMNwpdEkKbrMHsZez8Jq+SivFwj9CZGoHzFc0NOngeVcGFWfQvUU20YZ/66KqpNOrwFBKXB8N17juuYuOYWwiXsnAIrFvHc7/VWcMsXr96Qi4FB45ho/F0fW29GubAYCnXnfZuAkYipwYlk1hTlf3Eh8g5kyYazVCb/TUUVxViYjkIusEYXLvKm5KbdPAqCTagLDy1xQ3T57a9n/xbJiyDZt9uusJoS3Z/iR6tSkF8/a2Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+mU+n96SrXtJXz77KEd5uU3Rpb30fbUbKR/2UQQkKB0=;
 b=AwL2f2IgMlYefgSrB/AXGuOKzIz7FBw6Tme74gaAAjOrcChOlxJ7bwGnNerzA11yN6AeXFUxE1Hv55YFWz/HNmoQoWRdfI39BmUnQFUDf+CrqC6qujmKZwAo/DTVmEB1XdyMFHeT5S4srfWhZ5SG0dz+zhM5NhPlkeOdw2iGWmvDQkTxRlmWZX1ydOhnCRi+w2syL6nQ4ku5/NeRNXajfyI8OZJxlI0Ts42AQ1YN5N0LQeb9tCnkb74741EWRNqwrFmJ3ShqS4XNPwgms6QBgDsuG8pDK1Ny2o6VTxsEgEiH68HatAifJAM6IeCaKghcG/4zOk6Fqpsk56q0hzLGkA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <a4646368-2c91-4d57-846f-e7de51395627@epam.com>
Date: Thu, 18 Dec 2025 18:20:29 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2 0/4] x86: pvh: allow to disable 32-bit (COMPAT)
 interface support
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20251119192916.1009549-1-grygorii_strashko@epam.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20251119192916.1009549-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
X-ClientProxiedBy: WA2P291CA0015.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::28) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|VI0PR03MB10250:EE_
X-MS-Office365-Filtering-Correlation-Id: 055195f7-db9b-4270-e7a8-08de3e515cd1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?V2kvVGx5RnJQbWh3enM3UWFwNWRGWDI2eDh5bmppS3BoaWE0SEtEcDFablJJ?=
 =?utf-8?B?QlRoVFdQT2VrL2luTFo2aEpFdDVRMWJtY3hhbTFhVFF3blh2UXVaTnFzTmZi?=
 =?utf-8?B?ZExiSUZzYTlBM25vaVdOakRIVkMxQU5LVnJTODVRNzQ1TGsvUnZuU3hRV3dj?=
 =?utf-8?B?ek5ETWRROWVHODFYbng5a1JLaUJwR2VDeDhvTlovaHhPc0VtLzJLM3BZL1k3?=
 =?utf-8?B?NGJnSEQ3MWFISDRCREtsSWlMVktlK2hBTmpubmhHbUg3UUR4c2R3aWg0Tkw5?=
 =?utf-8?B?S0tTbGpZSmVtM0xxMTFNSldhRG9ocXJKMVFFMVBtdnZZcXFLWmNRbEVicEpv?=
 =?utf-8?B?RFZuNEZ3VFB6QWxrK2M3cjRLZWRkMFRWZjRFR3NvWmxLTUxRQ3VNSEFDS05a?=
 =?utf-8?B?ZjZSZ2E3TU1iYlhYMDFZUzhpQ0NraUpESjZBRm8ySHUvNHFEU2ZRZWxaOUk2?=
 =?utf-8?B?ak5Nak9DNnUzVmlRVmtTVFhiQmNXTTVaRHEzYlVxTFdLMXZjcTJOVnRxUGNh?=
 =?utf-8?B?Y3RZTEE2ejdLVElGUnRQSjZ5U1M5bVQyZ09oWCtpdkFBZStoMUhIYnFWbGlC?=
 =?utf-8?B?QjZ1cFA5YjhOVk53UTBkbGxqTHNqeW9WY0FDdkRLdzVwL1NUVk1lVUZNUmtX?=
 =?utf-8?B?OXBNWmhXYml4b0taVHZuTElpa1dtNG9FZ2JDaUNSaHBhZmlzR1VOQ2IybTg3?=
 =?utf-8?B?MktBWnFHTmh1WEd6TEhkR1FMU0xacFlQbWROUFdzeUtOdHd4OXZuM090YVln?=
 =?utf-8?B?eGg5MEVwUmx6YnZ2R2NKZ3FHOEFvQk9zM3NrcXJMbjQrSXk1WkkybnV2bXgy?=
 =?utf-8?B?bHRyL0lmQTR5OSsxY1BWTmZEV1Nxc1JDcC9GZ3BGK21lcm0ydTQvV3lZbGFs?=
 =?utf-8?B?MHloaHpDcCt1SmJNUHZDS0VuWmg3R2w1K3NSdEdYdW1ZMzJJUDVTNmY1VmFo?=
 =?utf-8?B?WWtlSld6ZzEzb0diLy81OFBRdDNlQkVGNlBCUzhud2s2SG9DYzAwOXRCNThi?=
 =?utf-8?B?YVJUYWE2T3Y2bVlMR1dvUjZWNlB1OXdkRk15ZmJBUmwyc2ZKaXI5MDBLMlpn?=
 =?utf-8?B?SGFMYk9Ha1UvVHJSRC9jdStSckRENDdkdFFpTmZyQzdMNjJmK3RiRU44OExF?=
 =?utf-8?B?aVh2UnB2M1pHUENGT1poL2t4NGpCSVlscUVJaHlCL1d4cmFuK3VnMWZhdWVt?=
 =?utf-8?B?T1B3aE4vV1BKOExsemN4Ull5SlN1cVJtUERJWmVjdHpzZ0thWmJZVHRXRjhR?=
 =?utf-8?B?RzRTdjBlR1hBeC9xVmsyZnRCbnBSNnpVWGVNTXJnQmhjRjlSditGNk5JeWJk?=
 =?utf-8?B?WjJtUm1tQnBtYVAwb1hEQkhqY0VzSm83UmpNem5mY01CNFd6ZVlBVXl1K1Bm?=
 =?utf-8?B?Nk11UVR2ZEJubUdrbmxSeEpCODBGbC9UaXkrbXl4Qk9xUVZ1VERmNEwvTmE3?=
 =?utf-8?B?Yys2eEI1RXBCcXp1TXcydGVCdFV5TFVMZmVhbEF5UE51c1VUenM0aHdpb0Jk?=
 =?utf-8?B?RFA0ZDEyVmpWaHBjeGFEajZnVmFrNm5oSjdOYWh6MWR4MlRZOThMVk5jUXVV?=
 =?utf-8?B?eEZZOW1JQUF6TUp5Z3NOc0ZwdnNGUFE1UU4vaXFyVm5XSHZHWjFsN0VhL3Na?=
 =?utf-8?B?N0Rkb2E5SS9xdjZmN0V4SmNxbDRpYW5oUDNUaTZoWnB1Mmh2MnhrWUVjWXJu?=
 =?utf-8?B?QWpTRmdDbDVZdVZGS3J6aDNqd0ZycDhUSzZwZUFWaHEzeis1ZHRyT1VjMldh?=
 =?utf-8?B?WGNQeTY4U2RTb2tFZ1E0Y0g1a1p0dG0rNDVCMFl0L3hxZHRvWnVQSGpybitU?=
 =?utf-8?B?Uk9BZzUyRGUwOWx6eXMwS29ncWRDdlRpVVh6czlZd2JQc2dPNHpyZXNZK21p?=
 =?utf-8?B?ZHFRRDF0N08velQ0Y2EreWJicHZHVFI4NFJvdHRWdERIOENjellnUVB0bEpJ?=
 =?utf-8?B?ZE8xVFVvbENLcE1lbEN3c0loSXpmeUl0ZUk0WDVaUk5BYmlHVi9oWTFqMUxO?=
 =?utf-8?B?OGRDRkUycXRnPT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?KzVheVVITEorWEtKMHRIQWtpS0NXTnJCbmVnZmJkcVJsV1NlbW94R2lzL1c1?=
 =?utf-8?B?SVAyRWpKRGxObEx4Y3VNZzVSRlhhQ0NSMHhCRzdOdWV5MDkzb0lZMHk0dlA2?=
 =?utf-8?B?QXJ4eDgrRUlVdU5hUnVnRGpCK2s4bjF6QlMwa1ZnVFpuSkp0Q3BwQVpGdjhm?=
 =?utf-8?B?RVdOZEZ5b1BjNHhxOW9OaWdnOHVmNU5LV1NMcXJPQTFQWEZyQ2h6NEhJRlpR?=
 =?utf-8?B?TWdKZnNqY3NhMm9KWEhjc0VsQjNwb3NpSS9xNGRucFRndUJPUlJ5LzBSNkNH?=
 =?utf-8?B?QmNCemZKNnlNMzNBb09HTXF6b1VPWVlHTU1uR3VpZVlQOUl5Sm9nWG5yN3dZ?=
 =?utf-8?B?U2dpOHEwNmEwd3JpcTREbGF5M3drSlExQjhFYjBJVEU3SW95b2V0VGwrWU9B?=
 =?utf-8?B?TEhkQysvQVVkblpJNFY2MS9JV2o2VHFEV2p1aFgrN005QlVxaEZIUVlFRHQv?=
 =?utf-8?B?YitXQ3ZEc3dueURhd3VSNFNvQ1JQVVhMU0dQNS9vNFd1QW5KMEZUcXZtbCts?=
 =?utf-8?B?eENQWUFzWjFRTGNLS3hQWUFVN0NQQXJ2dXZaZDdjUy83VTRvbjJiVVpSRDVk?=
 =?utf-8?B?T09BLytHN2RaSCtqa3cxNVNtZUpYM0YyRTkxVDNHZGUzUHFpZTR0R1JkYVh4?=
 =?utf-8?B?dExHZWJvYVYzdUpCRUxsSGJkRExwWXFpWk1ac2tGQTVnV3hxZlg3V1VXUXE4?=
 =?utf-8?B?VFJUeEhiVWFGU0ZEM2hVTzdTVmxkeEVncndmM1BZZElvQ3o3a1ByQUM0WjJj?=
 =?utf-8?B?WlpKS08yMTNYQmJLMFpLOUlLMGFIMTA3WjNMcDViSFVyZFhTN3JiWUYzWVF0?=
 =?utf-8?B?ek5tOTF1K0VPR0hYSnJNMndrRk1wVWRDeEZzT0F2Uk5FVDAwcXFKSE56WDVP?=
 =?utf-8?B?cUR4dERDUXVMNHhsMFlRRFhaSUdCQ3NVQUZiRlBXUUZNeVBaNDRjMXVTOHVN?=
 =?utf-8?B?TWRqaHdMREtCUFdLcFhiZjc0RDZSL21kYWRMYnFaR2NnT1Exekdzd2FveGpG?=
 =?utf-8?B?QkszUDNjcUNkVnptbDJ1WERBRVlqWmRSR1VXdDRCU1VuM2VYMkYrS21xNk9i?=
 =?utf-8?B?MmRYa0dSd2s2citNQmhtcUFsVUJxcUVxMVBaTysyWUYweTJTUzh3enNXZHZa?=
 =?utf-8?B?T3lnK2E1c0I3WGJiQlZ3c0ZoQmhCLzBmdVJMejcyY3BKRE1TRjR2YkxORXZH?=
 =?utf-8?B?eWcrNDNlWnJPc044YlkyZFJORnZqMFArb3dQMU9OVjJqK2x3MkZSNlh4clFG?=
 =?utf-8?B?Z2NLVjJueG5rdDNvQzNuTEJuVG1rM2ZJZ0hTZkJmclJlMTBqYkR1MVZpdURi?=
 =?utf-8?B?NWw2Uzl0V1BudS9VM0xXZ0E3QXZlYUhPenRGWDBWbHBKNzR2RkEzZWdPS3M5?=
 =?utf-8?B?bXZHZk9VTG1zbzJlUm04Q1BvdlZESE16eXd6KzJLeDBiS1lVRThhKzdiTzFV?=
 =?utf-8?B?VE42YU5Ca0ZHQk1RbWloclFOa0xDSzJlVVRIMXovR0RNZjFicElic2Y4dFpH?=
 =?utf-8?B?U3g3ZUYvcDBvTVRTa3RoeEJpTHkwTVZ3U1hyY2RaZGk4TGNiaVBnZzdjMTZG?=
 =?utf-8?B?NkdjNVNMdVVNY29OQjZseEpTVExYSVp3dWhtcUlDVlVUcjRUS0JWYXBwN21v?=
 =?utf-8?B?ekVTclk3YVUyL3g1dXJKNEtBajZxYmRHdzIySGl2S3J2MFVQeWlNY3BKTENK?=
 =?utf-8?B?Y2I2STNybFRHRUU2dXRmaDNQWjBNdDczMm5Ob3M2VXpxdkpINVpiU2hMQzNE?=
 =?utf-8?B?RW5nN3JBS0N1MW9rWHpOc3E0SHhCbks5ZDFqL3F5Rnl6SEdqRElTRlhWS2Q0?=
 =?utf-8?B?eXNuNE04ck03U1ZLUkp6K3gyWmpYcmpEOERFTlp1d3RvQk1iTDZWckYrODFR?=
 =?utf-8?B?SnJDcytCbjhET0dFUllBdDVkdzdxWXF4TjVyb0ZRMklJWndjQnUzSUYzU2Fl?=
 =?utf-8?B?UG1IUkszd1A1WUcrUjk2QUV0M3RjekJiRzNUNjEvbUJpVFJoeVlMVkVJRUVD?=
 =?utf-8?B?aEJuaFpBZ0tkeVA0d2xaN1REUmdFSjZtSHFVSjZkbE1jMDJrd3BUazlEWW9Q?=
 =?utf-8?B?aUN3L2Z3Zm15Qm4wQWdWeWkxQWptQ2NtaGFKdmJ2bU85Nk5sKy9JdDRpcmJi?=
 =?utf-8?B?bnl3R3EwVXgwc3dCcGJIU3JSY0Z1dUJ4eTFlT0NVUnM1RTdGMGUxM09lZlBE?=
 =?utf-8?B?WXc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 055195f7-db9b-4270-e7a8-08de3e515cd1
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 16:20:30.5361
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ZXZj9Ij8hEoRd8l/W2R3n3U3ibvKntAMSi3p1b1f/64wbWeD7aknLYJJEhpdgpFirVu3IFU0m5JOSYfvrfGqNUEfCF7ccsHWuDQIoE+BIMY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB10250

Hi All,

I'm planning to send v3 - so would be appreciated for any other comments.

On 19.11.25 21:30, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Hi
> 
> This series introduces possibility to disable 32-bit (COMPAT) interface support
> in the following case:
>        - Only PVH domains are used
>        - Guests (OS) are started by using direct Direct Kernel Boot
>        - Guests (OS) are 64-bit and Guest early boot code, which is running not
>          in 64-bit mode, does not access Xen interfaces
>          (hypercalls, shared_info, ..)
> 
> If above criterias are met the COMPAT HVM interface become unreachable and can be disabled.
> Coverage reports analyze and adding guard (debug) exceptions in hvm_hypercall/hvm_do_multicall_call
> and hvm_latch_shinfo_size() confirm that COMPAT HVM interface is unused for safety use-case.
> 
> Changes in v2 described in each patch:
> - patch "x86: constify has_32bit_shinfo() if !CONFIG_COMPAT" squashed in patch 2.
> 
> v1:
>   https://patchwork.kernel.org/project/xen-devel/cover/20251111175413.3540690-1-grygorii_strashko@epam.com/
> 
> Grygorii Strashko (4):
>    x86: hvm: dm: factor out compat code under ifdefs
>    x86: hvm: compat: introduce is_hcall_compat() helper
>    x86: hvm: factor out COMPAT code under ifdefs
>    x86: pvh: allow to disable 32-bit interface support
> 
>   xen/arch/x86/hvm/Kconfig          | 19 ++++++++++++++++++-
>   xen/arch/x86/hvm/dm.c             |  2 ++
>   xen/arch/x86/hvm/hvm.c            | 24 ++++++++++++++++++++----
>   xen/arch/x86/hvm/hypercall.c      | 22 +++++++++++++++++-----
>   xen/arch/x86/hypercall.c          |  6 +-----
>   xen/arch/x86/include/asm/domain.h |  9 +++++++--
>   xen/common/kernel.c               |  2 +-
>   xen/include/hypercall-defs.c      |  9 +++++++--
>   xen/include/xen/sched.h           |  9 +++++++++
>   9 files changed, 82 insertions(+), 20 deletions(-)
> 

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Dec 18 16:24:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 16:24:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189926.1510644 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWGnH-0000vv-Eb; Thu, 18 Dec 2025 16:23:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189926.1510644; Thu, 18 Dec 2025 16:23:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWGnH-0000vo-C2; Thu, 18 Dec 2025 16:23:59 +0000
Received: by outflank-mailman (input) for mailman id 1189926;
 Thu, 18 Dec 2025 16:23:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YG3a=6Y=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vWGnG-0000vh-PR
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 16:23:58 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f375514c-dc2d-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 17:23:56 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-b7cf4a975d2so115007966b.2
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 08:23:56 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b585b3718sm2914823a12.1.2025.12.18.08.23.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 08:23:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f375514c-dc2d-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766075036; x=1766679836; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=TkvTjPGABZvfWjx04OAgcqxOPuaaxo42CLwM5rh3+3Y=;
        b=FN0170A2bq219Q1rEk0XZ9/j/0GxcFn1ERaTWpFIvxcHsNEcGJ4gxQ63rVW2p47D9Q
         f83F4l02+dxZPPc4gFZ3EdMzNi7Ry0Kbj2CyNXNuKIGGhGz0/6KXK1oCSojmZHvpX3N0
         wwofpwXFdIh/z1W2+X6PQU1gRuDu3rht/r7Iz8G9UmcYjoh0RVBZmmyh4+PDs03yEPEl
         AcofCFBthwgh6KVMzgEhz82cfPJB2oOenNG0drPVX2/NdOdpmwZe7ReJXVWAw8RP/nWc
         C+Wk9hJdjNiSR7MKxxjPoVAhk06rCnhQJfm7I8+cmKcyct2D0IZKKTSgwxPqqol0czlp
         +UkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766075036; x=1766679836;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=TkvTjPGABZvfWjx04OAgcqxOPuaaxo42CLwM5rh3+3Y=;
        b=XYU85GpaIheyECP6KNmdteT7A/tAkpn0DdMehy9eBpjB6WJbsT0318w8RQix3rZTpR
         OvqoLlFF4RaKow+zccmhb4HxRHe07+PLNVOqbQ106E6Tl+skNOSDa8yFiBV8+n6nf9xG
         HEKeBC5G70sXl3Qkcu4qTIp9DpsIc6Wj8m83NXWu91KlOtT54j/qEkr/aR5XHmOZU+3j
         pYa+FjzeXyHKlBNpF9S9QkNFf84EzYM8D3M/0GlDbBwjnkTZlhqnn9G1J7WZ+Qlz0OHz
         kMkcKNMjdkDoB5QwaJtTjJzCSRKDm7oxNQIhkhuUhlS+N8AZHZfnNzxGehplbTDP/VkX
         /5Gg==
X-Forwarded-Encrypted: i=1; AJvYcCUxROBAQPdTZw0NtC400KT0i9kyS2gGwpPZA8NlXKTRdpWMjb0imVWeFoWv/HMPUcGOlXQl4omWOpA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyuBoYvb0ipC40Cj+Bq3c8SySatNkewxu6ZM31xk5OskAc8DYo8
	37UW+Ya2anZXOWBmRqubHt6Y7ayeKQX2UbgmYTgOzx8VTUsXpowRAUdk
X-Gm-Gg: AY/fxX6QWmPX4bD0gAK+rsyIzn1Y4TjPDksro9BK5SvlVNJHDyfNjjVMRGIgfIZhS/A
	EuZLPlbUxf4oWTYy5ZhRSbDsq6ZdtCnEA/MElNqbUBAMS78e3rg7GslHuwFvnAu10KmwC4RK7fk
	1BNtzCipdan7NqSapxpArH1klR2pvE1s8LAG6Ke8enHN7rn9hU2GlaKPgDFfDq069WDZUa6579Q
	HSL2B4Yuld9/umYiEYfW8lmHq1IIu6+syUQrN//5o//RkNa67dz7kmfwWqCADczHmYLbL3gaWgW
	RNiyFj5BDN5TUbrV3MoxXjkBpaCW9UvqzV9oQYpoJeACF69Pz8tpmrzSDHocw/0RfzTUssVfsPy
	KzXPk1rMv3Gs0THH6fGF3X3pOt4wGMURGb7lM6Jcy88v3w3juC5XRwuoGUMPxZGY02ux712sP7t
	CZEYmIrZE/QvCSwgdx3k+WWeqF2+2B3rcmCO11vmOE21bED2M44OvzHleoar86/Kf9
X-Google-Smtp-Source: AGHT+IHBo3YrtZXnk25pghJvHov7HRv4BzXdiiXN0L+bhJGYPDlHxUkadTS0UNZWrxlasGQC33qW8Q==
X-Received: by 2002:a17:907:d92:b0:b72:b433:1bb2 with SMTP id a640c23a62f3a-b7d235d07a3mr1975827866b.7.1766075035626;
        Thu, 18 Dec 2025 08:23:55 -0800 (PST)
Message-ID: <bf0c335c-454b-4434-85d5-6fd58fd3bba9@gmail.com>
Date: Thu, 18 Dec 2025 17:23:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 05/19] xen/riscv: add root page table allocation
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
 <0c85ea3e9e00ee1f00d6e143a15f118d714d128f.1765879052.git.oleksii.kurochko@gmail.com>
 <935d4342-aff0-4ba5-b23b-b281e2427ffb@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <935d4342-aff0-4ba5-b23b-b281e2427ffb@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 12/18/25 2:58 PM, Jan Beulich wrote:
> On 16.12.2025 17:55, Oleksii Kurochko wrote:
>> @@ -30,6 +34,11 @@ struct p2m_domain {
>>       /* Pages used to construct the p2m */
>>       struct page_list_head pages;
>>   
>> +    /* The root of the p2m tree. May be concatenated */
>> +    struct page_info *root;
>> +
>> +    struct gstage_mode_desc mode;
> Why would this need a copy (instance) of the struct? Can't this be a
> (const) pointer into the static array that currently is local to
> gstage_mode_detect()? Similarly there max_gstage_mode could be a pointer
> rather than a separate instance of the struct.

Good point. I will take that into account when will deal with TODO.

Thanks.

~ Oleksii

>
> Yes, there is a connection to ...
>
>> @@ -124,6 +193,24 @@ int p2m_init(struct domain *d)
>>       rwlock_init(&p2m->lock);
>>       INIT_PAGE_LIST_HEAD(&p2m->pages);
>>   
>> +    /*
>> +     * Currently, the infrastructure required to enable CONFIG_HAS_PASSTHROUGH
>> +     * is not ready for RISC-V support.
>> +     *
>> +     * When CONFIG_HAS_PASSTHROUGH=y, p2m->clean_dcache must be properly
>> +     * initialized.
>> +     * At the moment, it defaults to false because the p2m structure is
>> +     * zero-initialized.
>> +     */
>> +#ifdef CONFIG_HAS_PASSTHROUGH
>> +#   error "Add init of p2m->clean_dcache"
>> +#endif
>> +
>> +    /* TODO: don't hardcode used for a domain g-stage mode. */
>> +    p2m->mode.mode = HGATP_MODE_SV39X4;
>> +    p2m->mode.paging_levels = 2;
>> +    safe_strcpy(p2m->mode.name, "Sv39x4");
> ... this TODO, but surely this code could similarly be made reference the
> (then) global array.


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 16:33:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 16:33:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189939.1510655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWGw6-0002mu-8n; Thu, 18 Dec 2025 16:33:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189939.1510655; Thu, 18 Dec 2025 16:33:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWGw6-0002mn-61; Thu, 18 Dec 2025 16:33:06 +0000
Received: by outflank-mailman (input) for mailman id 1189939;
 Thu, 18 Dec 2025 16:33:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rjMb=6Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWGw4-0002mJ-U7
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 16:33:04 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 393afa99-dc2f-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 17:33:03 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-42fb4eeb482so447275f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 08:33:03 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43244934c29sm6006121f8f.2.2025.12.18.08.33.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 08:33:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 393afa99-dc2f-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766075582; x=1766680382; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2dEIuB0DC9wX6qSgJYqJ8dzhIf1vffBNl9klKLbxGLA=;
        b=LfwVhaACidSLhsZLPqtV2K2H1B1qX/WSk0P6MsbSeF7ZezsFwr7HEqDUFBEqIWQEXo
         bHj8Ct2WKlUXqbWgnODX1UHuNTWume7PZU6TqUIzFy9/cDqCmivQmQmww8MhaBmcfUa1
         kVPYAJUwA7T9LOT+EdO8usABeZsWk/YMPJqzMnPeN8scanlsNTi9+hu/9aiE5l2RxaI1
         C24spOWDFPfKEk5kJ1psIJ4teBwtrtax30b65+OfSKhJ0/xBdb3fQyZNTPqV5a/+yWPk
         AYSgCPaVMZ6quvxOGXQKn/rDVHfF9zNkED/sWzBJMc40cp/L+meY+Y7IEO5qf9FXhtMx
         ZTTQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766075582; x=1766680382;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2dEIuB0DC9wX6qSgJYqJ8dzhIf1vffBNl9klKLbxGLA=;
        b=JfQKn0XQA0CMyVoDddf1j6baZbszV4IvSsxT5wC9iTHaXpYENAiRM8YDqbSjHytIlR
         FTKVLnOI2Mo+DRNycPkHkr7ne9ZpmKMdlpDsIYDxghjYw8m4jxF5gju6xpCplES7++Ow
         YmktdNGvQ8BX0TV0MdslrvvVGKZ8C8wdWlhVsz3hTHYVfE0As7NXoOBFle5NJsentOBh
         5i03ekUyKrHzQHkMVT3NWm4R2Cr11Au1oND71bNBBf6QsATlzCJcgxiSOBll1E7+GRX4
         xxzqqiqvUDmIKUKN2T3cWEB1k2D98+mTY6Adsy6CkSXP1HBpNW+7JlJKC4VgiGR3nmCR
         4NSA==
X-Forwarded-Encrypted: i=1; AJvYcCV0AN/Mp9waEffENu/34p8GdY5P2oOSJMMfqszbOzmVmc6nXoCipDuLkl1I7Y104v12JipQF0k4h/Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy3bdHrczmRvb9T5dVeLT69I8P+Q9QHhF7RflOWFI8p5tGrMNIk
	5YWB5UBYdWItK8Vn/BtKojG1PgDZ8omfgl96DOOJtE9CC4UthZXIX3OCAvdA60eQbg==
X-Gm-Gg: AY/fxX6Jcmw3zBonsKQiM8X6C26mIuqPfyhXsFFNkHymrdYprunmI4t9gxU27eePByK
	3lDQstfhekUACFyFbJPNX/tCxlFpEz2JCSVkoaJJrFM1+tBQDTzxH3IZPjjxGllNNguTYIftHOg
	MN0kxsS50cOZVGjPo2P+1qjfOyjvMUf68r5EajI7f6/6Q34/MtfBgmaAh/+CN5ooMuVMDNmZnfU
	EauB6n9KvrlL7fpMLQrHL0VrV2iwfYrS9pjVuMvZNWN3bNcv79dhhk140WlDiUQseVtPbywAlwK
	FEyCXGssPbJGS24rfDVPDZAs4FZ6LBuXz/GfnuRUNX8KjjEs+blGutnl1UZdm9VlAH07Oc08zP5
	9ywLjwpAQdP6g7JxFpiqW//lK0PTaplf7Q03fEY345677hZfCX1oCIeFfQreej3KoNawLl9bRTk
	TexerWbCn0rPSGeXjZ43zPkP3qkexwjskOzMVlykIM3bojmJsBZXYoGuMY+Y200Nwq7WW60s4NO
	lI=
X-Google-Smtp-Source: AGHT+IE++cKRKbjUAFqXUjmkgywuVsB+Pc0Lw9OyZej2Clb23qmh/F7/hYIul+qowoo5QlHhQR8bfA==
X-Received: by 2002:a05:6000:2dc3:b0:431:26b:5e3f with SMTP id ffacd0b85a97d-4324e7048f3mr77195f8f.63.1766075582425;
        Thu, 18 Dec 2025 08:33:02 -0800 (PST)
Message-ID: <e7e12bee-2b0b-4474-a64e-78f570432a3e@suse.com>
Date: Thu, 18 Dec 2025 17:33:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2 0/4] x86: pvh: allow to disable 32-bit (COMPAT)
 interface support
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251119192916.1009549-1-grygorii_strashko@epam.com>
 <a4646368-2c91-4d57-846f-e7de51395627@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <a4646368-2c91-4d57-846f-e7de51395627@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.12.2025 17:20, Grygorii Strashko wrote:
> I'm planning to send v3 - so would be appreciated for any other comments.

Andrew,

could you please write down the outline of what you described verbally the
other day, to scope the extent to which we may want to take changes here?

Thanks, Jan

> On 19.11.25 21:30, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> Hi
>>
>> This series introduces possibility to disable 32-bit (COMPAT) interface support
>> in the following case:
>>        - Only PVH domains are used
>>        - Guests (OS) are started by using direct Direct Kernel Boot
>>        - Guests (OS) are 64-bit and Guest early boot code, which is running not
>>          in 64-bit mode, does not access Xen interfaces
>>          (hypercalls, shared_info, ..)
>>
>> If above criterias are met the COMPAT HVM interface become unreachable and can be disabled.
>> Coverage reports analyze and adding guard (debug) exceptions in hvm_hypercall/hvm_do_multicall_call
>> and hvm_latch_shinfo_size() confirm that COMPAT HVM interface is unused for safety use-case.
>>
>> Changes in v2 described in each patch:
>> - patch "x86: constify has_32bit_shinfo() if !CONFIG_COMPAT" squashed in patch 2.
>>
>> v1:
>>   https://patchwork.kernel.org/project/xen-devel/cover/20251111175413.3540690-1-grygorii_strashko@epam.com/
>>
>> Grygorii Strashko (4):
>>    x86: hvm: dm: factor out compat code under ifdefs
>>    x86: hvm: compat: introduce is_hcall_compat() helper
>>    x86: hvm: factor out COMPAT code under ifdefs
>>    x86: pvh: allow to disable 32-bit interface support
>>
>>   xen/arch/x86/hvm/Kconfig          | 19 ++++++++++++++++++-
>>   xen/arch/x86/hvm/dm.c             |  2 ++
>>   xen/arch/x86/hvm/hvm.c            | 24 ++++++++++++++++++++----
>>   xen/arch/x86/hvm/hypercall.c      | 22 +++++++++++++++++-----
>>   xen/arch/x86/hypercall.c          |  6 +-----
>>   xen/arch/x86/include/asm/domain.h |  9 +++++++--
>>   xen/common/kernel.c               |  2 +-
>>   xen/include/hypercall-defs.c      |  9 +++++++--
>>   xen/include/xen/sched.h           |  9 +++++++++
>>   9 files changed, 82 insertions(+), 20 deletions(-)
>>
> 



From xen-devel-bounces@lists.xenproject.org Thu Dec 18 16:47:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 16:47:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1189951.1510665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWH9s-0004fN-Eo; Thu, 18 Dec 2025 16:47:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1189951.1510665; Thu, 18 Dec 2025 16:47:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWH9s-0004fG-C6; Thu, 18 Dec 2025 16:47:20 +0000
Received: by outflank-mailman (input) for mailman id 1189951;
 Thu, 18 Dec 2025 16:47:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=2jZQ=6Y=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vWH9q-0004f4-Tj
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 16:47:19 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3517b486-dc31-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 17:47:15 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-47a95efd2ceso7612465e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 08:47:15 -0800 (PST)
Received: from ?IPV6:2003:e5:8704:4800:66fd:131f:60bd:bc29?
 (p200300e58704480066fd131f60bdbc29.dip0.t-ipconnect.de.
 [2003:e5:8704:4800:66fd:131f:60bd:bc29])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43244934cf5sm6040130f8f.1.2025.12.18.08.47.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 08:47:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3517b486-dc31-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766076434; x=1766681234; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=FB3d2UXrn6QNPu2RU+HOWmQ9NcPnXZYajbjLYUnejoA=;
        b=fJOjuZIRcaoEYb7EBPDcZl4K5TmggkIgqWpgFLE10g6YyMALMk95caHO+xrHsT/UAP
         QFvBJ9/xczwoSkvE2xm/JW7Byk3fukJSuJLfDwYq5F5eXTfqixeWY9ErmqGh95sV5Jh4
         e/ovqhMUJa4qxoNSue03A5AC5zU4lISMCj9hbcKCJ476Me+OjPoN7M93XrPivMCkgfAk
         V9LSt7tmeO+0fFBh6FxhQd7E0+Dxgs5gn/yFI5RjEc5W4HMK0HeOmif9eC6DnUnecRvl
         8zNZjb/kQjZ+7u+L/PUPeClqRzDK8+5WlPLilzmv1RmrZRUgaJu+PZR5Cfp4xeO40RGX
         FuHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766076434; x=1766681234;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=FB3d2UXrn6QNPu2RU+HOWmQ9NcPnXZYajbjLYUnejoA=;
        b=m+trPit1L9AmoqFjeZ4HlUQHW1DWWu6b47hYB+LzVrTgpVcIIvu7XZclrWlzOu4x+0
         Dkc0PQb2vBpvglT38oUKac5FqhmybV3BpGY+kjcOwkq0BXzaKSa5QPK6de84+8EV5orb
         pnwJgf8FkzIS20i2+cqZx+8dEW7bKwr2aL3N2NMGUhwtRPzJH+h9idYobkTVeTXngyou
         8mfmgQzWGhmyyZBhzMvC2R6U69uCNJtQ/2D7sHBijaP5HZ3x0aCCCxlt9ytEKWPJlKMM
         ErlxdIa4QIObZdQafA6+3904qI85FXJSze6gSJI6IhXU8DdxMN8cjG0bjim/P71tgQrq
         GrQg==
X-Forwarded-Encrypted: i=1; AJvYcCUNc/VtOOi4xH5O8j7fFLrDiieguKAaakUWuM8Jh8PROQDBgzU2LBmclgNIj9ku4D2yDEu+tEL7BKE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz8NzXrHT6pS5hWDdkpBFHvAUhCdLH7HDKFu849iuYpkIlBFtwu
	YQpDTvdh9W9yr6bGlP1jpXT8V63iwwFUKcStrZhpmet9aDnilFBWnw3/iD5Mlj5Bqyc=
X-Gm-Gg: AY/fxX7o+GWtsmv99ikG2ljLKAItoCenx7vOlLbdzTiKfD9UfUfF+0Ttt7k7TF08hIE
	KHzNPp3ygq8CYg3txaCQ10zIm+TwhKPJgXgS5wQlyqCQTdL2PZ4Q9iBMszWd2pHDd4Y4375buMM
	MRCbA9WfMAk8VoqFKVIMF4/W0tqRBqMtQWmvehHvazInSLxaJ7BdvfmOj/gZSU8Jr1AKJwfFuUY
	iiJfYylOdio5+arFwdXX4zld8bmBMx45prowgoL46WRHSd0Yz9XjRr7KvVSErWv3FjGvf1EBv4e
	lOiIsh7Wx4IpXHKCr3E96qY16+sBkemJ35gvwQt97BXKdUDykh2dow1fnZU/O8ZY6cO1VebBAgo
	6B529O7L+5FJUbRAAVqc3t73ln7enHLBItZIVkXVmTJdbbefiCAnAO7BXDmYqdWLIVW5+GjlXDT
	E/TJgyCYL5bOp1tD4Vf3odXGbYPY4emsXvKUfZvWFZtrthk/CJxLl4A9hPQ5TDdo4juxXNj11sD
	xH4EPDl1M/Qq1o+Ia86+HnSDu7jtu+CD0Z35Xw=
X-Google-Smtp-Source: AGHT+IE19V69WUGKEdt+kxyVhn1H0rirTiz0lfBE7JtW6AZv7hmL/cks2d7b/BnbGmdaq3yAXERfXQ==
X-Received: by 2002:a05:6000:188e:b0:430:fb26:3409 with SMTP id ffacd0b85a97d-4324e703d95mr117946f8f.63.1766076434486;
        Thu, 18 Dec 2025 08:47:14 -0800 (PST)
Message-ID: <0b286e09-ec6d-4736-b339-98b8f6540cbf@suse.com>
Date: Thu, 18 Dec 2025 17:47:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2 3/4] x86: hvm: factor out COMPAT code under ifdefs
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <20251119192916.1009549-1-grygorii_strashko@epam.com>
 <20251119192916.1009549-4-grygorii_strashko@epam.com>
 <389a5a3f-59c4-4292-847b-6c73fb9cd345@epam.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <389a5a3f-59c4-4292-847b-6c73fb9cd345@epam.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------p0v0fdwKvs3zvUNyxGqsCfFv"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------p0v0fdwKvs3zvUNyxGqsCfFv
Content-Type: multipart/mixed; boundary="------------DPPNFVKMaRQKzHnahC5hwiLY";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>
Message-ID: <0b286e09-ec6d-4736-b339-98b8f6540cbf@suse.com>
Subject: Re: [XEN][PATCH v2 3/4] x86: hvm: factor out COMPAT code under ifdefs
References: <20251119192916.1009549-1-grygorii_strashko@epam.com>
 <20251119192916.1009549-4-grygorii_strashko@epam.com>
 <389a5a3f-59c4-4292-847b-6c73fb9cd345@epam.com>
In-Reply-To: <389a5a3f-59c4-4292-847b-6c73fb9cd345@epam.com>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------DPPNFVKMaRQKzHnahC5hwiLY
Content-Type: multipart/mixed; boundary="------------UgQWf7EhY45yGFdAm7Yq0uXI"

--------------UgQWf7EhY45yGFdAm7Yq0uXI
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMDQuMTIuMjUgMTk6NDcsIEdyeWdvcmlpIFN0cmFzaGtvIHdyb3RlOg0KPiBIaSBKw7xy
Z2VuLA0KPiANCj4gV291bGQgaXQgYmUgcG9zc2libGUgZm9yIHlvdSB0byB0YWtlIGEgbG9v
ayBhdCBoeXBlcmNhbGwtZGVmcy5jIGNoYW5nZXM/DQo+IA0KPiBPbiAxOS4xMS4yNSAyMToz
MCwgR3J5Z29yaWkgU3RyYXNoa28gd3JvdGU6DQo+PiBGcm9tOiBHcnlnb3JpaSBTdHJhc2hr
byA8Z3J5Z29yaWlfc3RyYXNoa29AZXBhbS5jb20+DQo+Pg0KPj4gRmFjdG9yIG91dCBDT01Q
QVQgSFZNIGNvZGUgdW5kZXIgaWZkZWZzIGluIHByZXBhcmF0aW9uIGZvciBtYWtpbmcgSFZN
DQo+PiBDT01QQVQgY29kZSBvcHRpb25hbC4NCj4+DQo+PiAtIGh5cGVyY2FsbC1kZWZzLmMg
dXBkYXRlZCB0byBhbHdheXMgcHJvdmlkZSBjb21wYXQgZGVjbGFyYXRpb24gZm9yOg0KPj4g
cGh5c2Rldl9vcCwgZ3JhbnRfdGFibGVfb3AsIGdyYW50X3RhYmxlX29wLiBUaGlzIHJlZHVj
ZXMgbnVtYmVyIG9mIENPTVBBVA0KPj4gaWZkZWZzIGluIEhWTSBjb2RlIGFuZCBsZXRzIGNv
bXBpbGVyIERDRSBkbyB0aGUgam9iLg0KPj4NCj4+IC0gT25seSA2NC1iaXQgc2hpbmZvIGlz
IHN1cHBvcnRlZCB3aXRoIENPTVBBVD1uLCBzbyBzdHJ1Y3QNCj4+IGFyY2hfZG9tYWluLT5o
YXNfMzJiaXRfc2hpbmZvIGZpZWxkIGlzIG1vdmVkIHVuZGVyIENPTVBBVCBpZmRlZiBhbmQN
Cj4+IGhhc18zMmJpdF9zaGluZm8oKSBpcyB1cGRhdGVkIHRvIGFjY291bnQgZm9yIENPTVBB
VD1uLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IEdyeWdvcmlpIFN0cmFzaGtvIDxncnlnb3Jp
aV9zdHJhc2hrb0BlcGFtLmNvbT4NCg0KUmV2aWV3ZWQtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpn
cm9zc0BzdXNlLmNvbT4gIyB4ZW4vaW5jbHVkZS9oeXBlcmNhbGwtZGVmcy5jDQoNCg0KSnVl
cmdlbg0K
--------------UgQWf7EhY45yGFdAm7Yq0uXI
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------UgQWf7EhY45yGFdAm7Yq0uXI--

--------------DPPNFVKMaRQKzHnahC5hwiLY--

--------------p0v0fdwKvs3zvUNyxGqsCfFv
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmlEMBEFAwAAAAAACgkQsN6d1ii/Ey/2
fwf/ZAM7ybjqCiBMCTULVAnhfGwqSG03pKI7rPX2M0yqUzGtLdnUykA10OofLzGZC7JgdTU2O8IH
Z4bNuACFikSWoRPMpkx/gl0SDvZC5CdPLxxk12WLWNdWNB+52hlSKVg1e/qifp1tQTPQ7qXsOorb
qQ4KRU9lgwjIUW+PPdY1hYXmn1QcFjs3ihL4Sia7LQvNePqoqiX/JVVjmKELEnd5CdAHYKkjvPd9
9hmqOAwd1YebRUHOzRwx39KETTpLygaa3QxnhD7I+v0BtFg7aSgJCCt/iyDLBhfQutq3IlZgrmn8
jI51nxnm33A1Szm+BlyzCgi3RVIk+DNKaUXOFbiviQ==
=tIvv
-----END PGP SIGNATURE-----

--------------p0v0fdwKvs3zvUNyxGqsCfFv--


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 17:26:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 17:26:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190013.1510675 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWHlA-0001pW-C7; Thu, 18 Dec 2025 17:25:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190013.1510675; Thu, 18 Dec 2025 17:25:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWHlA-0001pP-8d; Thu, 18 Dec 2025 17:25:52 +0000
Received: by outflank-mailman (input) for mailman id 1190013;
 Thu, 18 Dec 2025 17:25:50 +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
 <SRS0=YG3a=6Y=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vWHl8-0001pJ-MS
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 17:25:50 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 98741fdb-dc36-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 18:25:49 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-64b7b737eddso671182a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 09:25:49 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8023465fbcsm287979566b.43.2025.12.18.09.25.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 09:25:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 98741fdb-dc36-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766078749; x=1766683549; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=lVMYe8biLOfqadpnxrKZq0Sh4LFOmZsedrt+maqnr/Q=;
        b=mK6XqHsdP2+nrJBaYR1RpBJyxdC7iU2D1L9jyydYSrrWthAsLnqFz3fRIIWgupuwck
         K2wc0mr6xkTo3NtLcGWDOwdSWH4hblsyQRbqxTjlpW+W5Ubr9THBz1EDXQVBmyk9bL/G
         pWBt8PtLX3Zgp0iKHL3gAvpPsUuhJoS+ezEoTwL2XHcb8Z2AitWqGovdVbaHNYf8oORD
         lunKmHhk8fK67C2fvRZCScJOV7IFzI2k2iMOd1yShT18yN7GnMCu6PAO5yhdOu0GqCPO
         79qBVZQhQlh17MJlF40qGBgj7n5kWwE6RwvWUwbwH+xD32UQsY7Ef4fpKhdo6e1Xnr3K
         +2TA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766078749; x=1766683549;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=lVMYe8biLOfqadpnxrKZq0Sh4LFOmZsedrt+maqnr/Q=;
        b=Wa77hqTw3lpr7cYZvoWc9tLYMWtmLG6xU07cCrVyXtA3Uv7gtHHz2SMsj9N2wemL2g
         /UokHiSvE61UR+jBY/gzSUaVwrNKZCv4UMg+QrfCaV9QNj3gi259PJFn7Pvq69UnEFNO
         fiBRcETQveSvoXd5rekfliEOTXnKwbl3ooUnSiCc1nyNl+sMO05vwu7BrbfTUZRso2zY
         usCstxTjosj7EgzRXTLPVgA5VmO9L+TPrR5TZoC+7UuiH2j5niyAomHMj6+V8sShP2f7
         /BN5EJmWpoIJh6PdWAeB0pSU3D+2QMcq4UMzT07W6pupWdH/Pc2+3d2S9q8Cz7jwIRrs
         XWxg==
X-Forwarded-Encrypted: i=1; AJvYcCVXNwob27SSRTiSYEGqm/Va59sODA/343Uk9gp+NRW7YYDL/OsOa5Rkajy3T8ZFYHWbMuqAUUW8C2o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwwUt9xqe67OPkzTOpOJUsYKyHvEP19fa6NDn1av6/T6Ymf6D/z
	cvM457UtQl7o7YxaJo5b3z9BLTcwnO5YYy+ruV5U2MXqDGn2Y8O2sv/7
X-Gm-Gg: AY/fxX4rFF3WXCr6MKTR7zWh0rBJMoLOgkRMCd18s3si3+zFEmPh83nv6H8YYEQVLKr
	QFYxdjXbHvj1gRiVcJHdTFugm1twkVuy/JTZXcPFxhz+1VD3lUj/5WUpUTC3OabgLzojbZrhQ1H
	gBojoTLmSFUJdmWjfBcfXydIWCkfnwo/oHNJ1LjoowCFEHvNmy55MwzD5tUZWAcldzMC26J8vg1
	U8pB1n3MxVqh8220Dx/gdBoLYxg9q39ssQKYEjgA1X8mqa+iuETIXZ2n4jINfgvKp2ASxQruFly
	NFdDxJN1jyZJuMVFWjuAK+Ru6ZzChqr+wnp2bDS2qsBvLS47qaxCKNNQPRuhGEdxZAbbFC1n4AJ
	A1fVjmfOBTWayUG2XRj3+Dn/dsuVWkPVwz4q8F/yuGx7xWiCrc4lStIax5tg2z6Ks7rDczCPwPM
	NXSzjt6BbDxugRxfe3fAysj72xa2X8oyMeb8JPx5AD83IyTxchZftD0lR9oXj0+Je/xRjnwT/o/
	OY=
X-Google-Smtp-Source: AGHT+IEBKuCWv0bZqZGNl5yfTlVjX6b4eoFOq0Od2EVGrREgZkQefIkj6hmwLJUgyC15FBs+nYG89w==
X-Received: by 2002:a17:906:f584:b0:b76:ece6:2ca1 with SMTP id a640c23a62f3a-b80371f2941mr11028966b.57.1766078748593;
        Thu, 18 Dec 2025 09:25:48 -0800 (PST)
Message-ID: <4eec691b-6c81-4c9e-a9c1-00c81e51c691@gmail.com>
Date: Thu, 18 Dec 2025 18:25:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 17/19] xen/riscv: add support of page lookup by GFN
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
 <4cef2922ff0fa82eb70e50c737cb00ef27ef13a3.1765879052.git.oleksii.kurochko@gmail.com>
 <9d4d89f1-81c1-4532-8646-c736ac56e7f3@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <9d4d89f1-81c1-4532-8646-c736ac56e7f3@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 12/18/25 1:55 PM, Jan Beulich wrote:
> On 16.12.2025 17:55, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -1057,3 +1057,187 @@ int map_regions_p2mt(struct domain *d,
>>   
>>       return rc;
>>   }
>> +
>> +/*
>> + * p2m_get_entry() should always return the correct order value, even if an
>> + * entry is not present (i.e. the GFN is outside the range):
>> + *   [p2m->lowest_mapped_gfn, p2m->max_mapped_gfn]    (1)
>> + *
>> + * This ensures that callers of p2m_get_entry() can determine what range of
>> + * address space would be altered by a corresponding p2m_set_entry().
>> + * Also, it would help to avoid costly page walks for GFNs outside range (1).
>> + *
>> + * Therefore, this function returns true for GFNs outside range (1), and in
>> + * that case the corresponding level is returned via the level_out argument.
>> + * Otherwise, it returns false and p2m_get_entry() performs a page walk to
>> + * find the proper entry.
>> + */
>> +static bool check_outside_boundary(const struct p2m_domain *p2m, gfn_t gfn,
>> +                                   gfn_t boundary, bool is_lower,
>> +                                   unsigned int *level_out)
>> +{
>> +    unsigned int level = P2M_ROOT_LEVEL(p2m);
>> +    bool ret = false;
>> +
>> +    ASSERT(p2m);
>> +
>> +    if ( is_lower ? gfn_x(gfn) < gfn_x(boundary)
>> +                  : gfn_x(gfn) > gfn_x(boundary) )
>> +    {
>> +        for ( ; level; level-- )
>> +        {
>> +            unsigned long mask = BIT(P2M_GFN_LEVEL_SHIFT(level), UL) - 1;
>> +            unsigned long masked_gfn;
>> +
>> +            if ( is_lower )
>> +                masked_gfn = gfn_x(gfn) | mask;
>> +            else
>> +                masked_gfn = gfn_x(gfn) & ~mask;
>> +
>> +            if ( is_lower ? masked_gfn < gfn_x(boundary)
>> +                          : masked_gfn > gfn_x(boundary) )
>> +                break;
> Having two is_lower conditionals here is imo unhelpful. Likely the compiler
> would manage to fold them, but imo
>
>              if ( is_lower ? (gfn_x(gfn) | mask) < gfn_x(boundary)
>                            : (gfn_x(gfn) & ~mask) > gfn_x(boundary) )
>                  break;
>
> would be more clear to the reader as well. I'm not going to insist, though.

Agree, probably, it would be better to drop masked_gfn and merge is_lower conditionals.


>
>> +        }
>> +
>> +        ret = true;
>> +    }
>> +
>> +    if ( level_out )
>> +        *level_out = level;
>> +
>> +    return ret;
>> +}
>> +
>> +/*
>> + * Get the details of a given gfn.
>> + *
>> + * If the entry is present, the associated MFN, the p2m type of the mapping,
>> + * and the page order of the mapping in the page table (i.e., it could be a
>> + * superpage) will be returned.
>> + *
>> + * If the entry is not present, INVALID_MFN will be returned, page_order will
>> + * be set according to the order of the invalid range, and the type will be
>> + * p2m_invalid.
>> + */
>> +static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
>> +                           p2m_type_t *t,
>> +                           unsigned int *page_order)
>> +{
>> +    unsigned int level = 0;
>> +    pte_t entry, *table;
>> +    int rc;
>> +    mfn_t mfn = INVALID_MFN;
>> +    P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
>> +
>> +    ASSERT(p2m_is_locked(p2m));
>> +
>> +    *t = p2m_invalid;
>> +
>> +    if ( gfn_x(gfn) > (BIT(PADDR_BITS - PAGE_SHIFT + 1, UL) - 1) )
>> +        return mfn;
> Since on all other error paths you set *page_order (as long as the pointer
> is non-NULL), shouldn't you do so here as well (to the order corresponding
> to the full [2nd-level] address space)?

It makes sense. I am thinking if something like would be fine:
   @@ -1123,7 +1117,7 @@ static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
                               p2m_type_t *t,
                               unsigned int *page_order)
    {
   -    unsigned int level = 0;
   +    unsigned int level = P2M_ROOT_LEVEL(p2m);
        pte_t entry, *table;
        int rc;
        mfn_t mfn = INVALID_MFN;
   @@ -1134,7 +1128,13 @@ static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
        *t = p2m_invalid;
    
        if ( gfn_x(gfn) > (BIT(PADDR_BITS - PAGE_SHIFT + 1, UL) - 1) )
   +    {
   +        if ( page_order )
   +            *page_order =
   +                P2M_LEVEL_ORDER(level + 1) + P2M_ROOT_EXTRA_BITS(p2m, level);
   +
            return mfn;
   +    }
    
        if ( check_outside_boundary(p2m, gfn, p2m->lowest_mapped_gfn, true,
                                    &level) )
   @@ -1152,7 +1152,6 @@ static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
        if ( !table )
        {
            ASSERT_UNREACHABLE();
   -        level = P2M_ROOT_LEVEL(p2m);
            goto out;
        }

Or it isn't the best one option to define page_order using "non-existing" level?

>
> Furthermore, is PADDR_BITS really the right basis? Don't things rather depend
> on the number of levels the 2nd-level page tables have for the given guest?

I think you are right, it depends on the number of levels the 2nd-level page tables
have for the given guest.


~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Dec 18 17:28:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 17:28:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190022.1510684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWHna-0002Uo-No; Thu, 18 Dec 2025 17:28:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190022.1510684; Thu, 18 Dec 2025 17:28:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWHna-0002Uh-Kv; Thu, 18 Dec 2025 17:28:22 +0000
Received: by outflank-mailman (input) for mailman id 1190022;
 Thu, 18 Dec 2025 17:28:22 +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
 <SRS0=YG3a=6Y=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vWHna-0002UZ-6K
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 17:28:22 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f2f839be-dc36-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 18:28:21 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-64175dfc338so1676982a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 09:28:21 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b585b53c1sm3209423a12.5.2025.12.18.09.28.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 18 Dec 2025 09:28:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f2f839be-dc36-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766078900; x=1766683700; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=tvtRY9zMhGFYrUi8ZWXK2j7PbU+9ofe0PtgkUeWeJTA=;
        b=csKMPgdnBHhrY1A9T8AUjaSXtBdYhLH/wZ36/OS+8B1ZHMLfzMzt64XgtwIQIP6GWj
         AGvS0BXeXJvc0jK9sr2m+AmvBIHQJbPF8skJpXheIeJZNc7MDKdmx+qRGJmPFfAIcYEC
         z1BwBr6j+72Q/9qfEZrolkwdNKBwKU40TOngcV11z2+3qHCEk9g9RP9PiGE9Or3N0leU
         t4BJogZ88yGR4LIBA+a8i0CFEuYCFTksV6d+d39uUUMHon/tVS+p4sIPm69oqH/FqcVc
         Uv1UprT3pzqMgjQ38CKNBoDrXaadZpv+ObQKW9JAOkFAYKsbz5WiJhELC2enMTm5nFN5
         yucw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766078900; x=1766683700;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tvtRY9zMhGFYrUi8ZWXK2j7PbU+9ofe0PtgkUeWeJTA=;
        b=AY8eIULmGA1djtiAnFxX1rGN4sEwFlZkcHnWKceOXOoJ5mXJitQnY5muCv/kbcjG+G
         IJpKFB+bzMzsoNaLm3QFD8W6EGHL8QZBggZ7GcyUtrt+jf0AOfkJE9pU9sRBN3xB3sgz
         XmfNRuxjKwHoTeU81I78hEOAgQo/xnI7l5U27zVBN0KQmD/+eDtoh5UI8oD2c7CBeHpe
         zUvVdo71SabnGd26lL1PPOzPIZS+R5dPQFCHsx8GDwLmApsjNsQeK3bMfHwWSKpBhU0Y
         z6f/RNQW69sXEOAYWT01xH40n2aTDICziWU332PTmoJ9XkNxdbP9jbI3cK3C+uCQlKij
         Ny6w==
X-Gm-Message-State: AOJu0YxWJJSpJoKAUbzhD/y0ls7sEzlRHSEuf6N2Daw9pqYPrtr/21xu
	1bWNl/NL4zc2zWF/k0W880jE1PybyYhqqc9BdwrzoUbjyGDInqgu9uP4T28aOA==
X-Gm-Gg: AY/fxX6km4eYs//jj0yd1gzTL8X+Om8FSDhQ/git9XLjkPnpWeDNwMobil9sucDXnPa
	oh3Bww0Qh69cEjQ3B7u/NG/72BSD0jSF1cJRlZirbr4YjHbWvYxmsSwV0gCm0bAp9Nx45Zd6RHj
	bUkAkvvuF80kiUz0NvsQoyz7IGdfJjWCZ9SvnQGtMwShPWdORqp/3Ka93cqZ11DLx0y+IpR93EY
	WsGB9/p6AfEF+3XOiJFdc/BByEu9GBab+yQQ9mdG+XwEbm5f7aaLvt2AneG8w2MXh6wXzVyz/Io
	OScUrsqbZoHkuv+gM7IngIN8dqlNmUq/Uy+VS0+lWmzR7I+uleYzFZwO5Zp0XfC3Ov+vZSw3zo0
	ti0Wajjh4trRfq/wCyay83pBn0cNi+qcnahRZ0nDPs7kP6DYHpqXZVOQOdPBRJVhP3AOJa7OfJ9
	PU1FUMSFMuIHMAH5IxlOd5U7FSf2kRsoXn5j0zndraPRyL/JHqHlb3q08=
X-Google-Smtp-Source: AGHT+IGPD+oDnTKpEVZLFDRg0kkPGbJ+eCYF3xJoE326ho4SiUlAggTqnnw4hrNZQjAjI0fp6KEJhg==
X-Received: by 2002:a05:6402:146f:b0:64b:7ab2:9f83 with SMTP id 4fb4d7f45d1cf-64b8edb758emr123995a12.31.1766078900141;
        Thu, 18 Dec 2025 09:28:20 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v2 0/4] Move alloc/free_vcpu_struct() to common code
Date: Thu, 18 Dec 2025 18:28:05 +0100
Message-ID: <cover.1766053253.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As it was suggested in [1] it would be better to allocate one page for struct
vcpu for all arch-es. To do that it is needed to align Arm code to allocate
one page (as there is a case(when CONFIG_NEW_VGIC=y) when Arm64 will require
to allocate two pages). As a result, the following patches for Arm have been
introduced:
 - [PATCH v2 1/4] xen/arm: optimize the size of struct vcpu
 - [PATCH v2 2/4] xen/arm: drop MAX_PAGES_PER_VCPU

This patches are dependency for:
 - [PATCH v2 3/4] xen: move alloc/free_vcpu_struct() to common code

Also, as a part of this patch series another clean up is done which makes
{alloc,free}_domain_struct() static.

[1] https://lore.kernel.org/xen-devel/f8a9be3a-a0c6-496a-806f-40760dca5aee@suse.com/T/#m275dfcbdccef0461fa9a8acef072403f18091768

---
Changes in v2:
 - Introduce new patches for Arm:
     - [PATCH v2 1/4] xen/arm: optimize the size of struct vcpu
     - [PATCH v2 2/4] xen/arm: drop MAX_PAGES_PER_VCPU
    to allocate one page for struct vcpu in common code for all the arch-es.
 - Introduce patch to clean up xen/domain.h a little bit:
     - [PATCH v2 4/4] xen/common: make {alloc,free}_domain_struct() static
 - Address the comments from v1:
     - [PATCH v2 3/4] xen: move alloc/free_vcpu_struct() to common code
---

Oleksii Kurochko (4):
  xen/arm: optimize the size of struct vcpu
  xen/arm: drop MAX_PAGES_PER_VCPU
  xen: move alloc/free_vcpu_struct() to common code
  xen/common: make {alloc,free}_domain_struct() static

 xen/arch/arm/domain.c             | 32 --------------
 xen/arch/arm/gic-vgic.c           | 48 ++++++++++-----------
 xen/arch/arm/include/asm/domain.h |  2 +-
 xen/arch/arm/vgic-v3.c            | 34 +++++++--------
 xen/arch/arm/vgic.c               | 72 +++++++++++++++++--------------
 xen/arch/arm/vgic/vgic-init.c     | 10 ++++-
 xen/arch/arm/vgic/vgic-v2.c       |  4 +-
 xen/arch/arm/vgic/vgic.c          | 50 ++++++++++-----------
 xen/arch/ppc/stubs.c              | 10 -----
 xen/arch/riscv/stubs.c            | 10 -----
 xen/arch/x86/domain.c             | 17 +-------
 xen/arch/x86/include/asm/domain.h |  3 ++
 xen/common/domain.c               | 26 ++++++++++-
 xen/include/xen/domain.h          |  8 ----
 14 files changed, 145 insertions(+), 181 deletions(-)

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 18 17:28:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 17:28:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190023.1510694 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWHnd-0002jK-VA; Thu, 18 Dec 2025 17:28:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190023.1510694; Thu, 18 Dec 2025 17:28:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWHnd-0002jE-Rx; Thu, 18 Dec 2025 17:28:25 +0000
Received: by outflank-mailman (input) for mailman id 1190023;
 Thu, 18 Dec 2025 17:28:24 +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
 <SRS0=YG3a=6Y=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vWHnc-0002UZ-N3
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 17:28:24 +0000
Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com
 [2a00:1450:4864:20::531])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f48b0c0a-dc36-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 18:28:23 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-6419aaced59so1351388a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 09:28:23 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b585b53c1sm3209423a12.5.2025.12.18.09.28.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 18 Dec 2025 09:28:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f48b0c0a-dc36-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766078903; x=1766683703; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hgML6elZQJ93D5kRikMc+0qH5Xjev/s0exSbE8XMmAU=;
        b=CAi+D753uVSo8vlvO9fHbwwQn2qKpoF4SIx6p/MZnZU23JhaE4Cv2ry97xWZgNswN9
         UxG+Cs3Zz4Q4ST6Q8+oaqeYYjWFH0sbSOoTc4cfz4OxeyJxTpH3OYom8Hhn/dExC7SmI
         USwEwN2XIg3qKVbxImSM6IbYY0YVZl2oyipAs24Mv8nKP0U8zwvujtaDcflDaE9mmsxE
         xGIVAmQi+KfgYKDpA7vODouH4aQGMrdHXwfUit1oEaPsfv1O90sn/vMmBMSmLvGnnZGh
         ivuhOQXaaHJ+ftU/iMFsL6jQoaZ6DLdwlof3wBpI3q/YcgByWFjAUhxXkwuXMbZ4yOd1
         xIvw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766078903; x=1766683703;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=hgML6elZQJ93D5kRikMc+0qH5Xjev/s0exSbE8XMmAU=;
        b=i2lqhAvRnI43gt1uAMJN0lxLE9doVaEEh0knBPzeU0A0fz6Az8UtQMPz59n/LlhlIf
         /fW2wryrYkD75MaDjlMs1XkAamX90mQC3xYgsF92UX8VrOcVwbdZCKMM2kfQPh891+h5
         jeGZKdzVE/8fNVhqNEWRFCt0YV0EeiAUDyME5pXyjDjjkPiJ8soTxOHCO34d0Py7roIS
         PVAXdIz8VYgFfs/xqNpRD1oJGg772fq0jCymQOikEKoP5xDdmQLOBlzMCcAlDMNEAbA/
         JLIdaChuwhW8WhoA59HvgPlTaK9g+2kyjBh03dPsDXNsxvqxbP6nTmA7rkqwOZh0/IOD
         gelQ==
X-Gm-Message-State: AOJu0YwKgbj5Dw33KQaBvIq7Ye70la8xWKTVWI8suLbONTLmThf76m7Q
	Xy3B6q/OoFnuWGzR3XGUbA8JGzcweejP1gZNwgPsKN48z0azSgCA+FJXTpYSag==
X-Gm-Gg: AY/fxX7LR6QQXTy/KWDRjCjcEXrgwaaUTGecjbI0UjqOB2Ye6fB5EDCjNPeI8YpffOO
	7XYOSwViMnLSyjVH2cmR66+9FpMTGijNhRFzrfTncI3PHtgWnlS4APl+6AbF6g5VHODiyu5au4V
	hjRjPC+Hf9vHbQb8jBZhtJ5i/qSWNj1m12LwHILSjAtrG01+eJIGyUZkHqkO0NwC6rH6ie1FAOU
	NEMoY5WqcAPW4plbpsFI1o3zvRF85esWvK6b4CyK/E7ihiXyUnU+llAMJ3ru8G/PJ9aIM3r91dD
	JankQlux01MwOQTDgyNnD/fHd6bK+gbP7lV9YmHnlSg/beDyQpzF3gRBUxSSPAicQKT5XASdSkW
	h0SPRTjwzjKH9hjtJfU5K5nrWKcEslkTcZMWWP3T/DSFTa4imd7j1DP322jmvi72PiGnU9XJXlR
	moY+2riUekoyf7eArmYD430TEZ6J1cS7py7OU86IdvMCmD9FOQn15SbjI=
X-Google-Smtp-Source: AGHT+IHUFzaTlWeEsfxKKTDyxE1ri/OL1XU+Ws6Fg1It0P9MKq6FAG4PnEL9q9QmSW8Ji9jWyBNx9g==
X-Received: by 2002:a05:6402:2553:b0:649:9f05:68ce with SMTP id 4fb4d7f45d1cf-64b8ea4b9a4mr178499a12.14.1766078902938;
        Thu, 18 Dec 2025 09:28:22 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v2 3/4] xen: move alloc/free_vcpu_struct() to common code
Date: Thu, 18 Dec 2025 18:28:08 +0100
Message-ID: <099753603c18bbba0db702746d394c2e77e15a4d.1766053253.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766053253.git.oleksii.kurochko@gmail.com>
References: <cover.1766053253.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

alloc_vcpu_struct() and free_vcpu_struct() contain little
architecture-specific logic and are suitable for sharing across
architectures. Move both helpers to common code.

To support the remaining architectural differences, introduce
arch_vcpu_struct_memflags(), allowing architectures to override the
memory flags passed to alloc_xenheap_pages(). This is currently needed
by x86, which may require MEMF_bits(32) for HVM guests using shadow
paging.

The ARM implementation of alloc/free_vcpu_struct() is removed and
replaced by the common version. Stub implementations are also dropped
from PPC and RISC-V.

Finally, make alloc_vcpu_struct() and free_vcpu_struct() static to
common/domain.c, as they are no longer used outside common code.

No functional changes.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Rework alloc/free_vcpu_struct() to work with only one page.
 - Return back the comment about the restriction inside x86's
   arch_vcpu_struct_memflags().
 - Drop MAX_PAGES_PER_VCPU.
---
 xen/arch/arm/domain.c             | 17 -----------------
 xen/arch/ppc/stubs.c              | 10 ----------
 xen/arch/riscv/stubs.c            | 10 ----------
 xen/arch/x86/domain.c             | 17 ++---------------
 xen/arch/x86/include/asm/domain.h |  3 +++
 xen/common/domain.c               | 20 ++++++++++++++++++++
 xen/include/xen/domain.h          |  4 ----
 7 files changed, 25 insertions(+), 56 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index e566023340..507df807ed 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -473,23 +473,6 @@ void dump_pageframe_info(struct domain *d)
 
 }
 
-struct vcpu *alloc_vcpu_struct(const struct domain *d)
-{
-    struct vcpu *v;
-
-    BUILD_BUG_ON(sizeof(*v) > PAGE_SIZE);
-    v = alloc_xenheap_pages(0, 0);
-    if ( v )
-        clear_page(v);
-
-    return v;
-}
-
-void free_vcpu_struct(struct vcpu *v)
-{
-    free_xenheap_page(v);
-}
-
 int arch_vcpu_create(struct vcpu *v)
 {
     int rc = 0;
diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index 9953ea1c6c..f7f6e7ed97 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -152,11 +152,6 @@ void dump_pageframe_info(struct domain *d)
     BUG_ON("unimplemented");
 }
 
-void free_vcpu_struct(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 int arch_vcpu_create(struct vcpu *v)
 {
     BUG_ON("unimplemented");
@@ -264,11 +259,6 @@ void vcpu_kick(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-struct vcpu *alloc_vcpu_struct(const struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
 unsigned long
 hypercall_create_continuation(unsigned int op, const char *format, ...)
 {
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index fe7d85ee1d..579c4215c8 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -126,11 +126,6 @@ void dump_pageframe_info(struct domain *d)
     BUG_ON("unimplemented");
 }
 
-void free_vcpu_struct(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 int arch_vcpu_create(struct vcpu *v)
 {
     BUG_ON("unimplemented");
@@ -238,11 +233,6 @@ void vcpu_kick(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-struct vcpu *alloc_vcpu_struct(const struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
 unsigned long
 hypercall_create_continuation(unsigned int op, const char *format, ...)
 {
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 7632d5e2d6..68c7503eda 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -493,28 +493,15 @@ unsigned int arch_domain_struct_memflags(void)
     return MEMF_bits(bits);
 }
 
-struct vcpu *alloc_vcpu_struct(const struct domain *d)
+unsigned int arch_vcpu_struct_memflags(const struct domain *d)
 {
-    struct vcpu *v;
     /*
      * This structure contains embedded PAE PDPTEs, used when an HVM guest
      * runs on shadow pagetables outside of 64-bit mode. In this case the CPU
      * may require that the shadow CR3 points below 4GB, and hence the whole
      * structure must satisfy this restriction. Thus we specify MEMF_bits(32).
      */
-    unsigned int memflags =
-        (is_hvm_domain(d) && paging_mode_shadow(d)) ? MEMF_bits(32) : 0;
-
-    BUILD_BUG_ON(sizeof(*v) > PAGE_SIZE);
-    v = alloc_xenheap_pages(0, memflags);
-    if ( v != NULL )
-        clear_page(v);
-    return v;
-}
-
-void free_vcpu_struct(struct vcpu *v)
-{
-    free_xenheap_page(v);
+    return (is_hvm_domain(d) && paging_mode_shadow(d)) ? MEMF_bits(32) : 0;
 }
 
 /* Initialise various registers to their architectural INIT/RESET state. */
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index 7e5cbd11a4..576f9202b4 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -15,6 +15,9 @@
 unsigned int arch_domain_struct_memflags(void);
 #define arch_domain_struct_memflags arch_domain_struct_memflags
 
+unsigned int arch_vcpu_struct_memflags(const struct domain *d);
+#define arch_vcpu_struct_memflags arch_vcpu_struct_memflags
+
 #define has_32bit_shinfo(d)    ((d)->arch.has_32bit_shinfo)
 
 /*
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 93c71bc766..92fc0684fc 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -392,6 +392,26 @@ static int vcpu_teardown(struct vcpu *v)
     return 0;
 }
 
+static struct vcpu *alloc_vcpu_struct(const struct domain *d)
+{
+#ifndef arch_vcpu_struct_memflags
+# define arch_vcpu_struct_memflags(d) 0
+#endif
+    struct vcpu *v;
+
+    BUILD_BUG_ON(sizeof(*v) > PAGE_SIZE);
+    v = alloc_xenheap_pages(0, arch_vcpu_struct_memflags(d));
+    if ( v )
+        clear_page(v);
+
+    return v;
+}
+
+static void free_vcpu_struct(struct vcpu *v)
+{
+    free_xenheap_page(v);
+}
+
 /*
  * Destoy a vcpu once all references to it have been dropped.  Used either
  * from domain_destroy()'s RCU path, or from the vcpu_create() error path
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 8aab05ae93..644f5ac3f2 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -70,10 +70,6 @@ void domid_free(domid_t domid);
 struct domain *alloc_domain_struct(void);
 void free_domain_struct(struct domain *d);
 
-/* Allocate/free a VCPU structure. */
-struct vcpu *alloc_vcpu_struct(const struct domain *d);
-void free_vcpu_struct(struct vcpu *v);
-
 /* Allocate/free a PIRQ structure. */
 #ifndef alloc_pirq_struct
 struct pirq *alloc_pirq_struct(struct domain *d);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 18 17:28:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 17:28:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190024.1510699 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWHne-0002mo-8k; Thu, 18 Dec 2025 17:28:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190024.1510699; Thu, 18 Dec 2025 17:28:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWHne-0002lW-3u; Thu, 18 Dec 2025 17:28:26 +0000
Received: by outflank-mailman (input) for mailman id 1190024;
 Thu, 18 Dec 2025 17:28:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YG3a=6Y=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vWHnd-0002iW-0J
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 17:28:25 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f3de86f7-dc36-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 18:28:22 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-64b4b35c812so1192929a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 09:28:22 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b585b53c1sm3209423a12.5.2025.12.18.09.28.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 18 Dec 2025 09:28:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f3de86f7-dc36-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766078902; x=1766683702; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rW+wJ63md9ndA96ESO3iCElLFPadst5PIcpnOB9F2yY=;
        b=NLCfjbxlBNuNJoQb7UGi80qWLnruJmUqetGj/rQtsBYtxyQjXZvkeJVYZWT/bMGFx4
         gT2mtUSs0GW5lT0yuDABx5zRlBZdR8jt5vru8GIxG5siSzEw9hbufIB0+Xx0AM7qoCXH
         hta4fNaIeH1kypozPhOvve1usqzM0mOyZpy+DYtNSdk2n6SQg/oR+OUKE5HBY8d1WPQn
         WynzeLbkHsnGVy6dwMtzDacbrfIBXhsDCRzs05TYa5Wq5t5KUKFqzdwiLVVwhb2D8zse
         kkQV0po8oo52I5nfJyoJlRWJRh/d1Ax89urhFknLdrGj22bGrTA3ZA5WqHMoSI9zSQIs
         MlZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766078902; x=1766683702;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=rW+wJ63md9ndA96ESO3iCElLFPadst5PIcpnOB9F2yY=;
        b=RazTm4Je+K45+DhXLSsMePu296x5pEp9pGndcsNvoh+VvCmhkfhcO+UisiDT/+kTtT
         hsNKh4sSD3YNHk9qNRom810M9iDxHY9msfXqsgZJOTRsso370ImvmUuIGhUAsw5TNiG1
         f2j1iqA9Lc6HqtszgxTyysym6MTdTRfr8KY5kgBUtHlkdoLg/Ij9TEl7zLm0S4wiD7jS
         MHd07DuwvQI1dMT16c2X767f4UikmVBiFU+kA+1FjOFkjDbgaQqVYCjjEov805qb0ceQ
         ylaPEdsMGAnvrwvKljW7dJd34dGEx0si5XzWBNmdzSzOu+y+KRGtOZ9U1CafOA/1L7Ro
         b23Q==
X-Gm-Message-State: AOJu0Yz+rbOT/GgNL3oICfHeEQMgytRl6acLMv0UVydJFHnC9ElnSOHu
	td2WCdu01XKcWyG2z/azoEbCu44G0KvARxn44hlT9GkKZdDJ8xwheWxNobWUAA==
X-Gm-Gg: AY/fxX4f7vk0rZ4AMkgcC36pN1bSMmytg5EZS77YgZ17aBTA7CDqiIx707CKqNWoxtX
	Cp/r6ZEAHNiotNoJxkpuh5su+3IgntDSYFVbw5wnlORdPH8tcrSUT/Uop61fGXJVQuoCehGBOvl
	6MTbYCcj3liiS3pqlzXUZ4ajnutJ30NUlva3Kz7plcNJuCJFZPHkqq+J6vmqVXdlOoxKv1lpvV3
	SWBdLsR9S4qOcvzj6VBYnDaOv1Av9rDpaluJ6W0ZNobVlwE63rlzZlXKi5HSv+0S7HA5clxpTGo
	m4MP4SjGR4fClztCoAaV7x7ETuFjfowqpMhCwKCQqt+moZn8OHFzWwVqgRXZQDAA/G9i7PLBstn
	dWlTAS2J/6SKfK9U9/nCrvtMEKosmmE+DZc5kwV3P9RFX3rtZjZOxDOdwxWaR7hdf422Z/MzE4x
	3bMfgw+ZVNm1Z72NYryyqwrPnC5O63VdoWRdWElZN/Au7emezLLM2f+jM=
X-Google-Smtp-Source: AGHT+IHOLBkvgXaKhb4YYR5U8jNPk5mPr/gqCgbWRquEGgBpPyyXGtotZ574+vtr5wqIVm/PSZMAwA==
X-Received: by 2002:a05:6402:3550:b0:641:8a92:9334 with SMTP id 4fb4d7f45d1cf-64b8e938162mr193723a12.6.1766078901964;
        Thu, 18 Dec 2025 09:28:21 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 2/4] xen/arm: drop MAX_PAGES_PER_VCPU
Date: Thu, 18 Dec 2025 18:28:07 +0100
Message-ID: <74f1594aad235765002b59f2baa975cc8fe72f06.1766053253.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766053253.git.oleksii.kurochko@gmail.com>
References: <cover.1766053253.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Now that the size of struct vcpu is smaller than PAGE_SIZE,
MAX_PAGES_PER_VCPU is no longer needed and is removed.

This change also updates {alloc,free}_vcpu_struct().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - New patch.
---
 xen/arch/arm/domain.c | 25 +++++--------------------
 1 file changed, 5 insertions(+), 20 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 47973f99d9..e566023340 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -473,36 +473,21 @@ void dump_pageframe_info(struct domain *d)
 
 }
 
-/*
- * The new VGIC has a bigger per-IRQ structure, so we need more than one
- * page on ARM64. Cowardly increase the limit in this case.
- */
-#if defined(CONFIG_NEW_VGIC) && defined(CONFIG_ARM_64)
-#define MAX_PAGES_PER_VCPU  2
-#else
-#define MAX_PAGES_PER_VCPU  1
-#endif
-
 struct vcpu *alloc_vcpu_struct(const struct domain *d)
 {
     struct vcpu *v;
 
-    BUILD_BUG_ON(sizeof(*v) > MAX_PAGES_PER_VCPU * PAGE_SIZE);
-    v = alloc_xenheap_pages(get_order_from_bytes(sizeof(*v)), 0);
-    if ( v != NULL )
-    {
-        unsigned int i;
-
-        for ( i = 0; i < DIV_ROUND_UP(sizeof(*v), PAGE_SIZE); i++ )
-            clear_page((void *)v + i * PAGE_SIZE);
-    }
+    BUILD_BUG_ON(sizeof(*v) > PAGE_SIZE);
+    v = alloc_xenheap_pages(0, 0);
+    if ( v )
+        clear_page(v);
 
     return v;
 }
 
 void free_vcpu_struct(struct vcpu *v)
 {
-    free_xenheap_pages(v, get_order_from_bytes(sizeof(*v)));
+    free_xenheap_page(v);
 }
 
 int arch_vcpu_create(struct vcpu *v)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 18 17:28:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 17:28:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190025.1510715 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWHnf-0003Bx-N3; Thu, 18 Dec 2025 17:28:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190025.1510715; Thu, 18 Dec 2025 17:28:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWHnf-0003Bk-J0; Thu, 18 Dec 2025 17:28:27 +0000
Received: by outflank-mailman (input) for mailman id 1190025;
 Thu, 18 Dec 2025 17:28:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YG3a=6Y=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vWHnd-0002iW-LF
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 17:28:25 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f396d9b5-dc36-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 18:28:22 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-64b791b5584so976104a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 09:28:22 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b585b53c1sm3209423a12.5.2025.12.18.09.28.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 18 Dec 2025 09:28:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f396d9b5-dc36-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766078901; x=1766683701; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=X37iUX/x2wplHfGK7+yE6chFGRlh9LBuKxi0fvm1Lzc=;
        b=meaSwAxoqTmzTYzCe8yY+uVKqtpnmR0ZdJKmEdmSu6af8k3lHkZRmXJqwhHOpqS8nD
         w74lTMnNC20ho+yWEDE2yPx36QD2pCy/fMS2jpMyHB272ewVFqIkWzPll+Zrwb9KIJTt
         cZql72O31EPb1knJtNO+fXFgi2u/WBTnSdaVn48J6Z2wzHtMqB9w8/BAixR/eQpBkihS
         U435074ldHmGsVusWf5lVLF1uRFl3uayFLdqCAeLMyt11sBzDWctSPnKF0pbDQ061m9a
         yiuq2bU9eOPVBxz30gQZMLY/kedOfsvNzVgeiqzYY13sCUTlECtuwkwXEAnTS7lQNkZ9
         lX5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766078901; x=1766683701;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=X37iUX/x2wplHfGK7+yE6chFGRlh9LBuKxi0fvm1Lzc=;
        b=UQK8oVUswEr3ag9dp8K4g3YCxEKpQB2QE5J6/DHCPcWowdXZ2trJ+QmiD0u3Nhlo8k
         8KqWnNbTtsKaaKf2ZQ6c8J5NSqptB5+4MHkMTXUKGvl/OoawkRS4dUc/u6DinqnKYXJY
         xT/X4tN/MV5AX8nol/EZdmdnMOZFSGBQxqTdv00BgnIrILq1w+/A9KzUnL/xU5UzoxNf
         B5l+3i/DBdCecV33vPauP99ac3hZp4E18W5ueuaptuQ9gigvJEVgavvLLWRd6ILMH8Kl
         sqE0oy4mA6GXXZiMgBykB1hK95H/NepTrIvfO/FMqGJ55KELxxkeP3WvEGEDeWLP5RJ4
         fQhg==
X-Gm-Message-State: AOJu0YwEBeQKSbfHE3D8JKdYl+6zWeFqG9beaGgfpQxkJ0GTESBF+014
	oFOq9/2exFZMqMs+Eec5tavlkKbiPtH4me4BiSfxeWTmpW/cP8lLLCFBuQ36yA==
X-Gm-Gg: AY/fxX4emM6JvO46t/j/VxNq8PVhdzURAgB+d6lPfhRIfFQq+6aKLG+a4ShJrrfKbPk
	8LgRZMqllKN+OF8f7YByb5XKqRNEpfzAPe7XNaKZbHl1n1j6bVKG2ycH0o/9UtYUfHvqkYwQa4J
	6Iv+YgGt7dP+QXofHeNG5MrSSOqM2DkHhtssWF5c/14Vi2g+1JGSR7MJjXz/MbqybbVSLFoMHkZ
	ZFA2xctPOZCccaBEmIrnDkuMBcgbhNp0hR1crKceQKsaQg6iqkw7aSkpdoNjUByDmo7cKRPl+B4
	u2+BRnvFkv8fUVbNBtgB0gT46rAc7rp4D3HH38FqPJfG5uryq5yxPeqUyxFKffSDKnshfIYnqK5
	CYLledbt/PS+9V5IdrnqENlXrJFqa0V5+SC/e67YuQYQ3nFZLncip2ZBWhwWiSqoHzwNwFEI47u
	y08MXEDLJARqd1c9wQhJlNYdhWUCZuIrsyXNMXekDsW2UmFDnlMXedcXE=
X-Google-Smtp-Source: AGHT+IEwmP+4VxWLFFaQRCJZiFCjrfKIjhRZtyV8js/Njronv6amib4KdMuR5ue/96Cl+YZ2/zUrVQ==
X-Received: by 2002:a05:6402:336:b0:649:9268:1f43 with SMTP id 4fb4d7f45d1cf-64b8ec6d9b0mr116127a12.21.1766078901228;
        Thu, 18 Dec 2025 09:28:21 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 1/4] xen/arm: optimize the size of struct vcpu
Date: Thu, 18 Dec 2025 18:28:06 +0100
Message-ID: <946a1c2cfaf4157074470a653bba5baa8561ebbf.1766053253.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766053253.git.oleksii.kurochko@gmail.com>
References: <cover.1766053253.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

When CONFIG_NEW_VGIC=y and CONFIG_ARM_64=y, the size of struct vcpu
exceeds one page, which requires allocating two pages and led to the
introduction of MAX_PAGES_PER_VCPU.

To remove the need for MAX_PAGES_PER_VCPU in a follow-up patch, the vgic
member of struct arch_vcpu is changed to a pointer to struct vgic_cpu.
As a result, the size of struct vcpu for Arm64 is reduced to 2048 bytes,
compared to 3840 bytes (without these changes and with CONFIG_ARM_64=y)
and 4736 bytes (without these changes and with both CONFIG_ARM_64=y and
CONFIG_NEW_VGIC=y).

Since the vgic member is now a pointer, vcpu_vgic_init() and
vcpu_vgic_free() are updated to allocate and free the struct vgic_cpu
instance dynamically.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - New patch.
---
 xen/arch/arm/gic-vgic.c           | 48 ++++++++++-----------
 xen/arch/arm/include/asm/domain.h |  2 +-
 xen/arch/arm/vgic-v3.c            | 34 +++++++--------
 xen/arch/arm/vgic.c               | 72 +++++++++++++++++--------------
 xen/arch/arm/vgic/vgic-init.c     | 10 ++++-
 xen/arch/arm/vgic/vgic-v2.c       |  4 +-
 xen/arch/arm/vgic/vgic.c          | 50 ++++++++++-----------
 7 files changed, 116 insertions(+), 104 deletions(-)

diff --git a/xen/arch/arm/gic-vgic.c b/xen/arch/arm/gic-vgic.c
index ea48c5375a..482b77c986 100644
--- a/xen/arch/arm/gic-vgic.c
+++ b/xen/arch/arm/gic-vgic.c
@@ -42,12 +42,12 @@ static inline void gic_add_to_lr_pending(struct vcpu *v, struct pending_irq *n)
 {
     struct pending_irq *iter;
 
-    ASSERT(spin_is_locked(&v->arch.vgic.lock));
+    ASSERT(spin_is_locked(&v->arch.vgic->lock));
 
     if ( !list_empty(&n->lr_queue) )
         return;
 
-    list_for_each_entry ( iter, &v->arch.vgic.lr_pending, lr_queue )
+    list_for_each_entry ( iter, &v->arch.vgic->lr_pending, lr_queue )
     {
         if ( iter->priority > n->priority )
         {
@@ -55,12 +55,12 @@ static inline void gic_add_to_lr_pending(struct vcpu *v, struct pending_irq *n)
             return;
         }
     }
-    list_add_tail(&n->lr_queue, &v->arch.vgic.lr_pending);
+    list_add_tail(&n->lr_queue, &v->arch.vgic->lr_pending);
 }
 
 void gic_remove_from_lr_pending(struct vcpu *v, struct pending_irq *p)
 {
-    ASSERT(spin_is_locked(&v->arch.vgic.lock));
+    ASSERT(spin_is_locked(&v->arch.vgic->lock));
 
     list_del_init(&p->lr_queue);
 }
@@ -73,7 +73,7 @@ void gic_raise_inflight_irq(struct vcpu *v, unsigned int virtual_irq)
     if ( unlikely(!n) )
         return;
 
-    ASSERT(spin_is_locked(&v->arch.vgic.lock));
+    ASSERT(spin_is_locked(&v->arch.vgic->lock));
 
     /* Don't try to update the LR if the interrupt is disabled */
     if ( !test_bit(GIC_IRQ_GUEST_ENABLED, &n->status) )
@@ -104,7 +104,7 @@ static unsigned int gic_find_unused_lr(struct vcpu *v,
 {
     uint64_t *lr_mask = &this_cpu(lr_mask);
 
-    ASSERT(spin_is_locked(&v->arch.vgic.lock));
+    ASSERT(spin_is_locked(&v->arch.vgic->lock));
 
     if ( unlikely(test_bit(GIC_IRQ_GUEST_PRISTINE_LPI, &p->status)) )
     {
@@ -130,13 +130,13 @@ void gic_raise_guest_irq(struct vcpu *v, unsigned int virtual_irq,
     unsigned int nr_lrs = gic_get_nr_lrs();
     struct pending_irq *p = irq_to_pending(v, virtual_irq);
 
-    ASSERT(spin_is_locked(&v->arch.vgic.lock));
+    ASSERT(spin_is_locked(&v->arch.vgic->lock));
 
     if ( unlikely(!p) )
         /* An unmapped LPI does not need to be raised. */
         return;
 
-    if ( v == current && list_empty(&v->arch.vgic.lr_pending) )
+    if ( v == current && list_empty(&v->arch.vgic->lr_pending) )
     {
         i = gic_find_unused_lr(v, p, 0);
 
@@ -156,7 +156,7 @@ static void gic_update_one_lr(struct vcpu *v, int i)
     int irq;
     struct gic_lr lr_val;
 
-    ASSERT(spin_is_locked(&v->arch.vgic.lock));
+    ASSERT(spin_is_locked(&v->arch.vgic->lock));
     ASSERT(!local_irq_is_enabled());
 
     gic_hw_ops->read_lr(i, &lr_val);
@@ -253,7 +253,7 @@ void vgic_sync_from_lrs(struct vcpu *v)
 
     gic_hw_ops->update_hcr_status(GICH_HCR_UIE, false);
 
-    spin_lock_irqsave(&v->arch.vgic.lock, flags);
+    spin_lock_irqsave(&v->arch.vgic->lock, flags);
 
     while ((i = find_next_bit((const unsigned long *) &this_cpu(lr_mask),
                               nr_lrs, i)) < nr_lrs ) {
@@ -261,7 +261,7 @@ void vgic_sync_from_lrs(struct vcpu *v)
         i++;
     }
 
-    spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
+    spin_unlock_irqrestore(&v->arch.vgic->lock, flags);
 }
 
 static void gic_restore_pending_irqs(struct vcpu *v)
@@ -274,13 +274,13 @@ static void gic_restore_pending_irqs(struct vcpu *v)
 
     ASSERT(!local_irq_is_enabled());
 
-    spin_lock(&v->arch.vgic.lock);
+    spin_lock(&v->arch.vgic->lock);
 
-    if ( list_empty(&v->arch.vgic.lr_pending) )
+    if ( list_empty(&v->arch.vgic->lr_pending) )
         goto out;
 
-    inflight_r = &v->arch.vgic.inflight_irqs;
-    list_for_each_entry_safe ( p, t, &v->arch.vgic.lr_pending, lr_queue )
+    inflight_r = &v->arch.vgic->inflight_irqs;
+    list_for_each_entry_safe ( p, t, &v->arch.vgic->lr_pending, lr_queue )
     {
         lr = gic_find_unused_lr(v, p, lr);
         if ( lr >= nr_lrs )
@@ -318,17 +318,17 @@ found:
     }
 
 out:
-    spin_unlock(&v->arch.vgic.lock);
+    spin_unlock(&v->arch.vgic->lock);
 }
 
 void gic_clear_pending_irqs(struct vcpu *v)
 {
     struct pending_irq *p, *t;
 
-    ASSERT(spin_is_locked(&v->arch.vgic.lock));
+    ASSERT(spin_is_locked(&v->arch.vgic->lock));
 
     v->arch.lr_mask = 0;
-    list_for_each_entry_safe ( p, t, &v->arch.vgic.lr_pending, lr_queue )
+    list_for_each_entry_safe ( p, t, &v->arch.vgic->lr_pending, lr_queue )
         gic_remove_from_lr_pending(v, p);
 }
 
@@ -357,14 +357,14 @@ int vgic_vcpu_pending_irq(struct vcpu *v)
     mask_priority = gic_hw_ops->read_vmcr_priority();
     active_priority = find_first_bit(&apr, 32);
 
-    spin_lock_irqsave(&v->arch.vgic.lock, flags);
+    spin_lock_irqsave(&v->arch.vgic->lock, flags);
 
     /* TODO: We order the guest irqs by priority, but we don't change
      * the priority of host irqs. */
 
     /* find the first enabled non-active irq, the queue is already
      * ordered by priority */
-    list_for_each_entry( p, &v->arch.vgic.inflight_irqs, inflight )
+    list_for_each_entry( p, &v->arch.vgic->inflight_irqs, inflight )
     {
         if ( GIC_PRI_TO_GUEST(p->priority) >= mask_priority )
             goto out;
@@ -378,7 +378,7 @@ int vgic_vcpu_pending_irq(struct vcpu *v)
     }
 
 out:
-    spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
+    spin_unlock_irqrestore(&v->arch.vgic->lock, flags);
     return rc;
 }
 
@@ -388,7 +388,7 @@ void vgic_sync_to_lrs(void)
 
     gic_restore_pending_irqs(current);
 
-    if ( !list_empty(&current->arch.vgic.lr_pending) && lr_all_full() )
+    if ( !list_empty(&current->arch.vgic->lr_pending) && lr_all_full() )
         gic_hw_ops->update_hcr_status(GICH_HCR_UIE, true);
 }
 
@@ -396,10 +396,10 @@ void gic_dump_vgic_info(struct vcpu *v)
 {
     struct pending_irq *p;
 
-    list_for_each_entry ( p, &v->arch.vgic.inflight_irqs, inflight )
+    list_for_each_entry ( p, &v->arch.vgic->inflight_irqs, inflight )
         printk("Inflight irq=%u lr=%u\n", p->irq, p->lr);
 
-    list_for_each_entry( p, &v->arch.vgic.lr_pending, lr_queue )
+    list_for_each_entry( p, &v->arch.vgic->lr_pending, lr_queue )
         printk("Pending irq=%d\n", p->irq);
 }
 
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index 758ad807e4..6cfa793828 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -230,7 +230,7 @@ struct arch_vcpu
     union gic_state_data gic;
     uint64_t lr_mask;
 
-    struct vgic_cpu vgic;
+    struct vgic_cpu *vgic;
 
     /* Timer registers  */
     register_t cntkctl;
diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
index 77aab5c3c2..a9bb7e8906 100644
--- a/xen/arch/arm/vgic-v3.c
+++ b/xen/arch/arm/vgic-v3.c
@@ -162,10 +162,10 @@ static int __vgic_v3_rdistr_rd_mmio_read(struct vcpu *v, mmio_info_t *info,
             goto read_as_zero_32;
         if ( dabt.size != DABT_WORD ) goto bad_width;
 
-        spin_lock_irqsave(&v->arch.vgic.lock, flags);
-        *r = vreg_reg32_extract(!!(v->arch.vgic.flags & VGIC_V3_LPIS_ENABLED),
+        spin_lock_irqsave(&v->arch.vgic->lock, flags);
+        *r = vreg_reg32_extract(!!(v->arch.vgic->flags & VGIC_V3_LPIS_ENABLED),
                                 info);
-        spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
+        spin_unlock_irqrestore(&v->arch.vgic->lock, flags);
         return 1;
     }
 
@@ -195,7 +195,7 @@ static int __vgic_v3_rdistr_rd_mmio_read(struct vcpu *v, mmio_info_t *info,
         /* We use the VCPU ID as the redistributor ID in bits[23:8] */
         typer |= v->vcpu_id << GICR_TYPER_PROC_NUM_SHIFT;
 
-        if ( v->arch.vgic.flags & VGIC_V3_RDIST_LAST )
+        if ( v->arch.vgic->flags & VGIC_V3_RDIST_LAST )
             typer |= GICR_TYPER_LAST;
 
         if ( v->domain->arch.vgic.has_its )
@@ -249,7 +249,7 @@ static int __vgic_v3_rdistr_rd_mmio_read(struct vcpu *v, mmio_info_t *info,
             goto read_as_zero_64;
         if ( !vgic_reg64_check_access(dabt) ) goto bad_width;
 
-        val = read_atomic(&v->arch.vgic.rdist_pendbase);
+        val = read_atomic(&v->arch.vgic->rdist_pendbase);
         val &= ~GICR_PENDBASER_PTZ;      /* WO, reads as 0 */
         *r = vreg_reg64_extract(val, info);
         return 1;
@@ -467,7 +467,7 @@ static void vgic_vcpu_enable_lpis(struct vcpu *v)
         smp_mb();
     }
 
-    v->arch.vgic.flags |= VGIC_V3_LPIS_ENABLED;
+    v->arch.vgic->flags |= VGIC_V3_LPIS_ENABLED;
 }
 
 static int __vgic_v3_rdistr_rd_mmio_write(struct vcpu *v, mmio_info_t *info,
@@ -488,14 +488,14 @@ static int __vgic_v3_rdistr_rd_mmio_write(struct vcpu *v, mmio_info_t *info,
         if ( dabt.size != DABT_WORD ) goto bad_width;
 
         vgic_lock(v);                   /* protects rdists_enabled */
-        spin_lock_irqsave(&v->arch.vgic.lock, flags);
+        spin_lock_irqsave(&v->arch.vgic->lock, flags);
 
         /* LPIs can only be enabled once, but never disabled again. */
         if ( (r & GICR_CTLR_ENABLE_LPIS) &&
-             !(v->arch.vgic.flags & VGIC_V3_LPIS_ENABLED) )
+             !(v->arch.vgic->flags & VGIC_V3_LPIS_ENABLED) )
             vgic_vcpu_enable_lpis(v);
 
-        spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
+        spin_unlock_irqrestore(&v->arch.vgic->lock, flags);
         vgic_unlock(v);
 
         return 1;
@@ -565,18 +565,18 @@ static int __vgic_v3_rdistr_rd_mmio_write(struct vcpu *v, mmio_info_t *info,
             goto write_ignore_64;
         if ( !vgic_reg64_check_access(dabt) ) goto bad_width;
 
-        spin_lock_irqsave(&v->arch.vgic.lock, flags);
+        spin_lock_irqsave(&v->arch.vgic->lock, flags);
 
         /* Writing PENDBASER with LPIs enabled is UNPREDICTABLE. */
-        if ( !(v->arch.vgic.flags & VGIC_V3_LPIS_ENABLED) )
+        if ( !(v->arch.vgic->flags & VGIC_V3_LPIS_ENABLED) )
         {
-            reg = read_atomic(&v->arch.vgic.rdist_pendbase);
+            reg = read_atomic(&v->arch.vgic->rdist_pendbase);
             vreg_reg64_update(&reg, r, info);
             reg = sanitize_pendbaser(reg);
-            write_atomic(&v->arch.vgic.rdist_pendbase, reg);
+            write_atomic(&v->arch.vgic->rdist_pendbase, reg);
         }
 
-        spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
+        spin_unlock_irqrestore(&v->arch.vgic->lock, flags);
 
         return 1;
     }
@@ -1115,7 +1115,7 @@ static struct vcpu *get_vcpu_from_rdist(struct domain *d,
 
     v = d->vcpu[vcpu_id];
 
-    *offset = gpa - v->arch.vgic.rdist_base;
+    *offset = gpa - v->arch.vgic->rdist_base;
 
     return v;
 }
@@ -1745,7 +1745,7 @@ static int vgic_v3_vcpu_init(struct vcpu *v)
         return -EINVAL;
     }
 
-    v->arch.vgic.rdist_base = rdist_base;
+    v->arch.vgic->rdist_base = rdist_base;
 
     /*
      * If the redistributor is the last one of the
@@ -1756,7 +1756,7 @@ static int vgic_v3_vcpu_init(struct vcpu *v)
     last_cpu = (region->size / GICV3_GICR_SIZE) + region->first_cpu - 1;
 
     if ( v->vcpu_id == last_cpu || (v->vcpu_id == (d->max_vcpus - 1)) )
-        v->arch.vgic.flags |= VGIC_V3_RDIST_LAST;
+        v->arch.vgic->flags |= VGIC_V3_RDIST_LAST;
 
     return 0;
 }
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index 3ebdf9953f..8b17871b86 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -84,7 +84,7 @@ static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
                                                   unsigned int rank)
 {
     if ( rank == 0 )
-        return v->arch.vgic.private_irqs;
+        return v->arch.vgic->private_irqs;
     else if ( rank <= DOMAIN_NR_RANKS(v->domain) )
         return &v->domain->arch.vgic.shared_irqs[rank - 1];
     else if ( is_valid_espi_rank(v->domain, rank) )
@@ -370,29 +370,35 @@ int vcpu_vgic_init(struct vcpu *v)
 {
     int i;
 
-    v->arch.vgic.private_irqs = xzalloc(struct vgic_irq_rank);
-    if ( v->arch.vgic.private_irqs == NULL )
+    v->arch.vgic = xzalloc(struct vgic_cpu);
+    if ( v->arch.vgic == NULL )
+        return -ENOMEM;
+
+    v->arch.vgic->private_irqs = xzalloc(struct vgic_irq_rank);
+    if ( v->arch.vgic->private_irqs == NULL )
       return -ENOMEM;
 
     /* SGIs/PPIs are always routed to this VCPU */
-    vgic_rank_init(v->arch.vgic.private_irqs, 0, v->vcpu_id);
+    vgic_rank_init(v->arch.vgic->private_irqs, 0, v->vcpu_id);
 
     v->domain->arch.vgic.handler->vcpu_init(v);
 
-    memset(&v->arch.vgic.pending_irqs, 0, sizeof(v->arch.vgic.pending_irqs));
+    memset(&v->arch.vgic->pending_irqs, 0, sizeof(v->arch.vgic->pending_irqs));
     for (i = 0; i < 32; i++)
-        vgic_init_pending_irq(&v->arch.vgic.pending_irqs[i], i);
+        vgic_init_pending_irq(&v->arch.vgic->pending_irqs[i], i);
 
-    INIT_LIST_HEAD(&v->arch.vgic.inflight_irqs);
-    INIT_LIST_HEAD(&v->arch.vgic.lr_pending);
-    spin_lock_init(&v->arch.vgic.lock);
+    INIT_LIST_HEAD(&v->arch.vgic->inflight_irqs);
+    INIT_LIST_HEAD(&v->arch.vgic->lr_pending);
+    spin_lock_init(&v->arch.vgic->lock);
 
     return 0;
 }
 
 int vcpu_vgic_free(struct vcpu *v)
 {
-    xfree(v->arch.vgic.private_irqs);
+    xfree(v->arch.vgic->private_irqs);
+    xfree(v->arch.vgic);
+
     return 0;
 }
 
@@ -423,14 +429,14 @@ bool vgic_migrate_irq(struct vcpu *old, struct vcpu *new, unsigned int irq)
     /* This will never be called for an LPI, as we don't migrate them. */
     ASSERT(!is_lpi(irq));
 
-    spin_lock_irqsave(&old->arch.vgic.lock, flags);
+    spin_lock_irqsave(&old->arch.vgic->lock, flags);
 
     p = irq_to_pending(old, irq);
 
     /* nothing to do for virtual interrupts */
     if ( p->desc == NULL )
     {
-        spin_unlock_irqrestore(&old->arch.vgic.lock, flags);
+        spin_unlock_irqrestore(&old->arch.vgic->lock, flags);
         return true;
     }
 
@@ -438,7 +444,7 @@ bool vgic_migrate_irq(struct vcpu *old, struct vcpu *new, unsigned int irq)
     if ( test_bit(GIC_IRQ_GUEST_MIGRATING, &p->status) )
     {
         gprintk(XENLOG_WARNING, "irq %u migration failed: requested while in progress\n", irq);
-        spin_unlock_irqrestore(&old->arch.vgic.lock, flags);
+        spin_unlock_irqrestore(&old->arch.vgic->lock, flags);
         return false;
     }
 
@@ -447,7 +453,7 @@ bool vgic_migrate_irq(struct vcpu *old, struct vcpu *new, unsigned int irq)
     if ( list_empty(&p->inflight) )
     {
         irq_set_affinity(p->desc, cpumask_of(new->processor));
-        spin_unlock_irqrestore(&old->arch.vgic.lock, flags);
+        spin_unlock_irqrestore(&old->arch.vgic->lock, flags);
         return true;
     }
     /* If the IRQ is still lr_pending, re-inject it to the new vcpu */
@@ -455,7 +461,7 @@ bool vgic_migrate_irq(struct vcpu *old, struct vcpu *new, unsigned int irq)
     {
         vgic_remove_irq_from_queues(old, p);
         irq_set_affinity(p->desc, cpumask_of(new->processor));
-        spin_unlock_irqrestore(&old->arch.vgic.lock, flags);
+        spin_unlock_irqrestore(&old->arch.vgic->lock, flags);
         vgic_inject_irq(new->domain, new, irq, true);
         return true;
     }
@@ -464,7 +470,7 @@ bool vgic_migrate_irq(struct vcpu *old, struct vcpu *new, unsigned int irq)
     if ( !list_empty(&p->inflight) )
         set_bit(GIC_IRQ_GUEST_MIGRATING, &p->status);
 
-    spin_unlock_irqrestore(&old->arch.vgic.lock, flags);
+    spin_unlock_irqrestore(&old->arch.vgic->lock, flags);
     return true;
 }
 
@@ -516,12 +522,12 @@ void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n)
         irq = i + (32 * n);
         v_target = vgic_get_target_vcpu(v, irq);
 
-        spin_lock_irqsave(&v_target->arch.vgic.lock, flags);
+        spin_lock_irqsave(&v_target->arch.vgic->lock, flags);
         p = irq_to_pending(v_target, irq);
         clear_bit(GIC_IRQ_GUEST_ENABLED, &p->status);
         gic_remove_from_lr_pending(v_target, p);
         desc = p->desc;
-        spin_unlock_irqrestore(&v_target->arch.vgic.lock, flags);
+        spin_unlock_irqrestore(&v_target->arch.vgic->lock, flags);
 
         if ( desc != NULL )
         {
@@ -567,12 +573,12 @@ void vgic_enable_irqs(struct vcpu *v, uint32_t r, unsigned int n)
     while ( (i = find_next_bit(&mask, 32, i)) < 32 ) {
         irq = i + (32 * n);
         v_target = vgic_get_target_vcpu(v, irq);
-        spin_lock_irqsave(&v_target->arch.vgic.lock, flags);
+        spin_lock_irqsave(&v_target->arch.vgic->lock, flags);
         p = irq_to_pending(v_target, irq);
         set_bit(GIC_IRQ_GUEST_ENABLED, &p->status);
         if ( !list_empty(&p->inflight) && !test_bit(GIC_IRQ_GUEST_VISIBLE, &p->status) )
             gic_raise_guest_irq(v_target, irq, p->priority);
-        spin_unlock_irqrestore(&v_target->arch.vgic.lock, flags);
+        spin_unlock_irqrestore(&v_target->arch.vgic->lock, flags);
         if ( p->desc != NULL )
         {
             irq_set_affinity(p->desc, cpumask_of(v_target->processor));
@@ -701,7 +707,7 @@ struct pending_irq *irq_to_pending(struct vcpu *v, unsigned int irq)
     /* Pending irqs allocation strategy: the first vgic.nr_spis irqs
      * are used for SPIs; the rests are used for per cpu irqs */
     if ( irq < 32 )
-        n = &v->arch.vgic.pending_irqs[irq];
+        n = &v->arch.vgic->pending_irqs[irq];
     else if ( is_lpi(irq) )
         n = v->domain->arch.vgic.handler->lpi_to_pending(v->domain, irq);
     else
@@ -734,16 +740,16 @@ void vgic_clear_pending_irqs(struct vcpu *v)
     struct pending_irq *p, *t;
     unsigned long flags;
 
-    spin_lock_irqsave(&v->arch.vgic.lock, flags);
-    list_for_each_entry_safe ( p, t, &v->arch.vgic.inflight_irqs, inflight )
+    spin_lock_irqsave(&v->arch.vgic->lock, flags);
+    list_for_each_entry_safe ( p, t, &v->arch.vgic->inflight_irqs, inflight )
         list_del_init(&p->inflight);
     gic_clear_pending_irqs(v);
-    spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
+    spin_unlock_irqrestore(&v->arch.vgic->lock, flags);
 }
 
 void vgic_remove_irq_from_queues(struct vcpu *v, struct pending_irq *p)
 {
-    ASSERT(spin_is_locked(&v->arch.vgic.lock));
+    ASSERT(spin_is_locked(&v->arch.vgic->lock));
 
     clear_bit(GIC_IRQ_GUEST_QUEUED, &p->status);
     list_del_init(&p->inflight);
@@ -772,20 +778,20 @@ void vgic_inject_irq(struct domain *d, struct vcpu *v, unsigned int virq,
         v = vgic_get_target_vcpu(d->vcpu[0], virq);
     };
 
-    spin_lock_irqsave(&v->arch.vgic.lock, flags);
+    spin_lock_irqsave(&v->arch.vgic->lock, flags);
 
     n = irq_to_pending(v, virq);
     /* If an LPI has been removed, there is nothing to inject here. */
     if ( unlikely(!n) )
     {
-        spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
+        spin_unlock_irqrestore(&v->arch.vgic->lock, flags);
         return;
     }
 
     /* vcpu offline */
     if ( test_bit(_VPF_down, &v->pause_flags) )
     {
-        spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
+        spin_unlock_irqrestore(&v->arch.vgic->lock, flags);
         return;
     }
 
@@ -804,7 +810,7 @@ void vgic_inject_irq(struct domain *d, struct vcpu *v, unsigned int virq,
     if ( test_bit(GIC_IRQ_GUEST_ENABLED, &n->status) )
         gic_raise_guest_irq(v, virq, priority);
 
-    list_for_each_entry ( iter, &v->arch.vgic.inflight_irqs, inflight )
+    list_for_each_entry ( iter, &v->arch.vgic->inflight_irqs, inflight )
     {
         if ( iter->priority > priority )
         {
@@ -812,9 +818,9 @@ void vgic_inject_irq(struct domain *d, struct vcpu *v, unsigned int virq,
             goto out;
         }
     }
-    list_add_tail(&n->inflight, &v->arch.vgic.inflight_irqs);
+    list_add_tail(&n->inflight, &v->arch.vgic->inflight_irqs);
 out:
-    spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
+    spin_unlock_irqrestore(&v->arch.vgic->lock, flags);
 
     /* we have a new higher priority irq, inject it into the guest */
     vcpu_kick(v);
@@ -924,7 +930,7 @@ void vgic_check_inflight_irqs_pending(struct vcpu *v, unsigned int rank, uint32_
 
         v_target = vgic_get_target_vcpu(v, irq);
 
-        spin_lock_irqsave(&v_target->arch.vgic.lock, flags);
+        spin_lock_irqsave(&v_target->arch.vgic->lock, flags);
 
         p = irq_to_pending(v_target, irq);
 
@@ -933,7 +939,7 @@ void vgic_check_inflight_irqs_pending(struct vcpu *v, unsigned int rank, uint32_
                    "%pv trying to clear pending interrupt %u.\n",
                    v, irq);
 
-        spin_unlock_irqrestore(&v_target->arch.vgic.lock, flags);
+        spin_unlock_irqrestore(&v_target->arch.vgic->lock, flags);
     }
 }
 
diff --git a/xen/arch/arm/vgic/vgic-init.c b/xen/arch/arm/vgic/vgic-init.c
index f8d7d3a226..67f297797f 100644
--- a/xen/arch/arm/vgic/vgic-init.c
+++ b/xen/arch/arm/vgic/vgic-init.c
@@ -57,7 +57,7 @@
  */
 static void vgic_vcpu_early_init(struct vcpu *vcpu)
 {
-    struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic;
+    struct vgic_cpu *vgic_cpu = vcpu->arch.vgic;
     unsigned int i;
 
     INIT_LIST_HEAD(&vgic_cpu->ap_list_head);
@@ -202,6 +202,10 @@ int vcpu_vgic_init(struct vcpu *v)
 {
     int ret = 0;
 
+    v->arch.vgic = xzalloc(struct vgic_cpu);
+    if ( v->arch.vgic == NULL )
+        return -ENOMEM;
+
     vgic_vcpu_early_init(v);
 
     if ( gic_hw_version() == GIC_V2 )
@@ -241,10 +245,12 @@ void domain_vgic_free(struct domain *d)
 
 int vcpu_vgic_free(struct vcpu *v)
 {
-    struct vgic_cpu *vgic_cpu = &v->arch.vgic;
+    struct vgic_cpu *vgic_cpu = v->arch.vgic;
 
     INIT_LIST_HEAD(&vgic_cpu->ap_list_head);
 
+    xfree(vgic_cpu);
+
     return 0;
 }
 
diff --git a/xen/arch/arm/vgic/vgic-v2.c b/xen/arch/arm/vgic/vgic-v2.c
index 6a558089c5..e64d681dd2 100644
--- a/xen/arch/arm/vgic/vgic-v2.c
+++ b/xen/arch/arm/vgic/vgic-v2.c
@@ -56,8 +56,8 @@ void vgic_v2_setup_hw(paddr_t dbase, paddr_t cbase, paddr_t csize,
  */
 void vgic_v2_fold_lr_state(struct vcpu *vcpu)
 {
-    struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic;
-    unsigned int used_lrs = vcpu->arch.vgic.used_lrs;
+    struct vgic_cpu *vgic_cpu = vcpu->arch.vgic;
+    unsigned int used_lrs = vcpu->arch.vgic->used_lrs;
     unsigned long flags;
     unsigned int lr;
 
diff --git a/xen/arch/arm/vgic/vgic.c b/xen/arch/arm/vgic/vgic.c
index b2c0e1873a..146bd124c3 100644
--- a/xen/arch/arm/vgic/vgic.c
+++ b/xen/arch/arm/vgic/vgic.c
@@ -40,8 +40,8 @@
  * When taking more than one ap_list_lock at the same time, always take the
  * lowest numbered VCPU's ap_list_lock first, so:
  *   vcpuX->vcpu_id < vcpuY->vcpu_id:
- *     spin_lock(vcpuX->arch.vgic.ap_list_lock);
- *     spin_lock(vcpuY->arch.vgic.ap_list_lock);
+ *     spin_lock(vcpuX->arch.vgic->ap_list_lock);
+ *     spin_lock(vcpuY->arch.vgic->ap_list_lock);
  *
  * Since the VGIC must support injecting virtual interrupts from ISRs, we have
  * to use the spin_lock_irqsave/spin_unlock_irqrestore versions of outer
@@ -102,7 +102,7 @@ struct vgic_irq *vgic_get_irq(struct domain *d, struct vcpu *vcpu,
 {
     /* SGIs and PPIs */
     if ( intid <= VGIC_MAX_PRIVATE )
-        return &vcpu->arch.vgic.private_irqs[intid];
+        return &vcpu->arch.vgic->private_irqs[intid];
 
     /* SPIs */
     if ( intid <= VGIC_MAX_SPI )
@@ -245,7 +245,7 @@ out:
 /* Must be called with the ap_list_lock held */
 static void vgic_sort_ap_list(struct vcpu *vcpu)
 {
-    struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic;
+    struct vgic_cpu *vgic_cpu = vcpu->arch.vgic;
 
     ASSERT(spin_is_locked(&vgic_cpu->ap_list_lock));
 
@@ -323,7 +323,7 @@ retry:
 
     /* someone can do stuff here, which we re-check below */
 
-    spin_lock_irqsave(&vcpu->arch.vgic.ap_list_lock, flags);
+    spin_lock_irqsave(&vcpu->arch.vgic->ap_list_lock, flags);
     spin_lock(&irq->irq_lock);
 
     /*
@@ -341,7 +341,7 @@ retry:
     if ( unlikely(irq->vcpu || vcpu != vgic_target_oracle(irq)) )
     {
         spin_unlock(&irq->irq_lock);
-        spin_unlock_irqrestore(&vcpu->arch.vgic.ap_list_lock, flags);
+        spin_unlock_irqrestore(&vcpu->arch.vgic->ap_list_lock, flags);
 
         spin_lock_irqsave(&irq->irq_lock, flags);
         goto retry;
@@ -352,11 +352,11 @@ retry:
      * now in the ap_list.
      */
     vgic_get_irq_kref(irq);
-    list_add_tail(&irq->ap_list, &vcpu->arch.vgic.ap_list_head);
+    list_add_tail(&irq->ap_list, &vcpu->arch.vgic->ap_list_head);
     irq->vcpu = vcpu;
 
     spin_unlock(&irq->irq_lock);
-    spin_unlock_irqrestore(&vcpu->arch.vgic.ap_list_lock, flags);
+    spin_unlock_irqrestore(&vcpu->arch.vgic->ap_list_lock, flags);
 
     vcpu_kick(vcpu);
 
@@ -422,7 +422,7 @@ void vgic_inject_irq(struct domain *d, struct vcpu *vcpu, unsigned int intid,
  */
 static void vgic_prune_ap_list(struct vcpu *vcpu)
 {
-    struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic;
+    struct vgic_cpu *vgic_cpu = vcpu->arch.vgic;
     struct vgic_irq *irq, *tmp;
     unsigned long flags;
 
@@ -487,8 +487,8 @@ retry:
             vcpuB = vcpu;
         }
 
-        spin_lock_irqsave(&vcpuA->arch.vgic.ap_list_lock, flags);
-        spin_lock(&vcpuB->arch.vgic.ap_list_lock);
+        spin_lock_irqsave(&vcpuA->arch.vgic->ap_list_lock, flags);
+        spin_lock(&vcpuB->arch.vgic->ap_list_lock);
         spin_lock(&irq->irq_lock);
 
         /*
@@ -502,7 +502,7 @@ retry:
          */
         if ( target_vcpu == vgic_target_oracle(irq) )
         {
-            struct vgic_cpu *new_cpu = &target_vcpu->arch.vgic;
+            struct vgic_cpu *new_cpu = target_vcpu->arch.vgic;
 
             list_del(&irq->ap_list);
             irq->vcpu = target_vcpu;
@@ -510,8 +510,8 @@ retry:
         }
 
         spin_unlock(&irq->irq_lock);
-        spin_unlock(&vcpuB->arch.vgic.ap_list_lock);
-        spin_unlock_irqrestore(&vcpuA->arch.vgic.ap_list_lock, flags);
+        spin_unlock(&vcpuB->arch.vgic->ap_list_lock);
+        spin_unlock_irqrestore(&vcpuA->arch.vgic->ap_list_lock, flags);
         goto retry;
     }
 
@@ -542,7 +542,7 @@ static void vgic_set_underflow(struct vcpu *vcpu)
 /* Requires the ap_list_lock to be held. */
 static int compute_ap_list_depth(struct vcpu *vcpu)
 {
-    struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic;
+    struct vgic_cpu *vgic_cpu = vcpu->arch.vgic;
     struct vgic_irq *irq;
     int count = 0;
 
@@ -557,7 +557,7 @@ static int compute_ap_list_depth(struct vcpu *vcpu)
 /* Requires the VCPU's ap_list_lock to be held. */
 static void vgic_flush_lr_state(struct vcpu *vcpu)
 {
-    struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic;
+    struct vgic_cpu *vgic_cpu = vcpu->arch.vgic;
     struct vgic_irq *irq;
     int count = 0;
 
@@ -583,7 +583,7 @@ static void vgic_flush_lr_state(struct vcpu *vcpu)
         }
     }
 
-    vcpu->arch.vgic.used_lrs = count;
+    vcpu->arch.vgic->used_lrs = count;
 }
 
 /**
@@ -600,7 +600,7 @@ static void vgic_flush_lr_state(struct vcpu *vcpu)
 void vgic_sync_from_lrs(struct vcpu *vcpu)
 {
     /* An empty ap_list_head implies used_lrs == 0 */
-    if ( list_empty(&vcpu->arch.vgic.ap_list_head) )
+    if ( list_empty(&vcpu->arch.vgic->ap_list_head) )
         return;
 
     vgic_fold_lr_state(vcpu);
@@ -628,14 +628,14 @@ void vgic_sync_to_lrs(void)
      * and introducing additional synchronization mechanism doesn't change
      * this.
      */
-    if ( list_empty(&current->arch.vgic.ap_list_head) )
+    if ( list_empty(&current->arch.vgic->ap_list_head) )
         return;
 
     ASSERT(!local_irq_is_enabled());
 
-    spin_lock(&current->arch.vgic.ap_list_lock);
+    spin_lock(&current->arch.vgic->ap_list_lock);
     vgic_flush_lr_state(current);
-    spin_unlock(&current->arch.vgic.ap_list_lock);
+    spin_unlock(&current->arch.vgic->ap_list_lock);
 
     gic_hw_ops->update_hcr_status(GICH_HCR_EN, 1);
 }
@@ -652,7 +652,7 @@ void vgic_sync_to_lrs(void)
  */
 int vgic_vcpu_pending_irq(struct vcpu *vcpu)
 {
-    struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic;
+    struct vgic_cpu *vgic_cpu = vcpu->arch.vgic;
     struct vgic_irq *irq;
     unsigned long flags;
     int ret = 0;
@@ -761,11 +761,11 @@ void vgic_free_virq(struct domain *d, unsigned int virq)
 
 void gic_dump_vgic_info(struct vcpu *v)
 {
-    struct vgic_cpu *vgic_cpu = &v->arch.vgic;
+    struct vgic_cpu *vgic_cpu = v->arch.vgic;
     struct vgic_irq *irq;
     unsigned long flags;
 
-    spin_lock_irqsave(&v->arch.vgic.ap_list_lock, flags);
+    spin_lock_irqsave(&v->arch.vgic->ap_list_lock, flags);
 
     if ( !list_empty(&vgic_cpu->ap_list_head) )
         printk("   active or pending interrupts queued:\n");
@@ -781,7 +781,7 @@ void gic_dump_vgic_info(struct vcpu *v)
         spin_unlock(&irq->irq_lock);
     }
 
-    spin_unlock_irqrestore(&v->arch.vgic.ap_list_lock, flags);
+    spin_unlock_irqrestore(&v->arch.vgic->ap_list_lock, flags);
 }
 
 void vgic_clear_pending_irqs(struct vcpu *v)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 18 17:28:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 17:28:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190026.1510722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWHng-0003JF-9Z; Thu, 18 Dec 2025 17:28:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190026.1510722; Thu, 18 Dec 2025 17:28:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWHng-0003I0-3E; Thu, 18 Dec 2025 17:28:28 +0000
Received: by outflank-mailman (input) for mailman id 1190026;
 Thu, 18 Dec 2025 17:28:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YG3a=6Y=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vWHne-0002iW-LH
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 17:28:26 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f5109a13-dc36-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 18:28:24 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-64b61f82b5fso1175162a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 09:28:24 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b585b53c1sm3209423a12.5.2025.12.18.09.28.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 18 Dec 2025 09:28:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f5109a13-dc36-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766078904; x=1766683704; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nyyCTn0BO84+8dgz1DD0QHNFwT8tEePxSeonQlFM4G8=;
        b=iQ7v3n60sz07N4/drhyaVgnB8tyKSa/yMiYs3Pg1tkCxizx2O7CWAZ+PelsHwL0Vxa
         7VW/DSUdl7YVSqm8Q4nzcaKTTqvX9hh2kGGfHqjneoeYCKjqW/eGfYOj5A2pgN/G3dQW
         CtoMzo41eEvmpUI2VbqBI3fLypsGvVcBfda57EJMXOYpYQgbLuzmB1C4u/HbSe7nGYNr
         yznbT6IhkrUpS4tONIvlXI4+gsGgh/XZSuRyj+KTuq6Z8dkcwNIo64xTUVRTXWiE9hOS
         uB501wW9rklW7Ae+esgw+4b2BgXCo8B4v9LUzX58wj4Bcb0PewgiEVf68yYH1RK7S+SJ
         m3rQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766078904; x=1766683704;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=nyyCTn0BO84+8dgz1DD0QHNFwT8tEePxSeonQlFM4G8=;
        b=l2urUUd91FumuADhe8ElCMCvYPbYgrW8hfPZpr9zzQ5YreBl+HQ0qaeEJHZ++zMmMm
         jXOO59HArzHe4bXpUdYprJwLGJsUsVvRo4F10f9IKyScrVL3X8xWRkTr5pZ6J7u+jkeY
         FrpcH5MoNXhER+ZQm9wH+StNEoxnuJk5oYIhV83iTjX9duP+C9FKRDcV8v5DoPxYyjOT
         ijK0tlCXZQXO/m9tYXfO4Ybf03mhH58drHhYKXlbsYBkzSB3qjNFVsM6kM5WwthYy0kE
         KvSQTP6583kYyzKqP0WbGnOLZyoCm1RZ/4joKLW13mSukM0qWWAD+ZjuWUB0k0xOlLqJ
         5zRQ==
X-Gm-Message-State: AOJu0Yy9qzmO6rIFWilWqiXr0tH+BwvsX31Ck2Q/D75jsTj3rA2UyQcV
	yxVhWjxFwkRCh5ou8EX1H8ynNUZWKl0q6yFK0pVVv+QVbIsbPO5KbKYR3aSF2g==
X-Gm-Gg: AY/fxX5WGV/Q4uoWPOQ8pjKI59LEnOzzBXbCMxM6l691q8QhkROSBy755mKdX+MZsYz
	Cc8D8/20sJQoWyURfbP1kshJqfSyGdPLg9qXnTrnuxtGYse7WMLQHUgT575nJA5EFSpWeIgohRf
	ZfjIl+3vxbEit6EpxNZF1LTnLrGy0ZELNJQGznapNuZyqqeOxD76hyPxkWuSt/FupMwKT2QcxZN
	V9ofioKeH5hWTpwjplr+bTUn8mf7Yd2THl63rgt3+NAMBqxJ9+acRRC+yB89SPXnddffYjy8W1e
	39sKcrnuthThbLwrEz7Cx6v6hzQpSEEFsWvFRXZ2vvBXh/msjfMnHw8OHMsiwWmdjqrdpXM/pDF
	MEvKKJ/OjMV2FHTTNpQwfPxdu95fyRyZhbfDp3jJFYyU9Hj8zUCR+XSc0nvZ7PsD2aBjEpBiqbH
	m9zuX0QpszE+s1HRhiJ+Vdv7GwDhK0ll23aOv+lwz5znJDeWxSlhisJ1Y=
X-Google-Smtp-Source: AGHT+IEJqDupn1iTF0rergfxLD/C09v+9f4H0/Bivd89XjTUtGTRXnvG436ZyPk5tpIjNL3JRCF/pg==
X-Received: by 2002:a05:6402:313b:b0:649:aa69:dc07 with SMTP id 4fb4d7f45d1cf-64b8ea4d917mr162395a12.12.1766078903920;
        Thu, 18 Dec 2025 09:28:23 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 4/4] xen/common: make {alloc,free}_domain_struct() static
Date: Thu, 18 Dec 2025 18:28:09 +0100
Message-ID: <439f6e9dc1f35736024023d70ed7e1daf1ec294b.1766053253.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766053253.git.oleksii.kurochko@gmail.com>
References: <cover.1766053253.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As {alloc,free}_domain_struct() are used only within domain.c,
they can be declared static and their declarations removed
from xen/domain.h.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - New patch.
---
 xen/common/domain.c      | 6 ++++--
 xen/include/xen/domain.h | 4 ----
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 92fc0684fc..7509dafd6f 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -690,6 +690,8 @@ static int domain_teardown(struct domain *d)
     return 0;
 }
 
+static void free_domain_struct(struct domain *d);
+
 /*
  * Destroy a domain once all references to it have been dropped.  Used either
  * from the RCU path, or from the domain_create() error path before the domain
@@ -819,7 +821,7 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
     return arch_sanitise_domain_config(config);
 }
 
-struct domain *alloc_domain_struct(void)
+static struct domain *alloc_domain_struct(void)
 {
 #ifndef arch_domain_struct_memflags
 # define arch_domain_struct_memflags() 0
@@ -835,7 +837,7 @@ struct domain *alloc_domain_struct(void)
     return d;
 }
 
-void free_domain_struct(struct domain *d)
+static void free_domain_struct(struct domain *d)
 {
     free_xenheap_page(d);
 }
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 644f5ac3f2..273717c31b 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -66,10 +66,6 @@ void domid_free(domid_t domid);
  * Arch-specifics.
  */
 
-/* Allocate/free a domain structure. */
-struct domain *alloc_domain_struct(void);
-void free_domain_struct(struct domain *d);
-
 /* Allocate/free a PIRQ structure. */
 #ifndef alloc_pirq_struct
 struct pirq *alloc_pirq_struct(struct domain *d);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 18 18:15:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 18:15:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190116.1510746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWIXQ-0003Gt-Qp; Thu, 18 Dec 2025 18:15:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190116.1510746; Thu, 18 Dec 2025 18:15:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWIXQ-0003Gm-NE; Thu, 18 Dec 2025 18:15:44 +0000
Received: by outflank-mailman (input) for mailman id 1190116;
 Thu, 18 Dec 2025 18:15:42 +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
 <SRS0=6E0R=6Y=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vWIXO-0003Gg-Jq
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 18:15:42 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8e40d044-dc3d-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 19:15:40 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA3PR03MB7444.namprd03.prod.outlook.com (2603:10b6:806:398::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.7; Thu, 18 Dec
 2025 18:15:36 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9434.001; Thu, 18 Dec 2025
 18:15:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8e40d044-dc3d-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RVNdvNBChV68Q+YxzM36Hj4nWj8g28/Xyz4/1oglaEwOSTIufOM21cEe0LU18Vb96BC10gZpuyxZYVY71nFM5+az84akV+CpYk2pbdJlFEqCfAA9kabrcP21pNc4HWvP7fgxGHnYjakPb0EPrL9jjbE0YoajWR2sjR79/lbeq023VEzff16P4sX1sTVIn0cqddDsABQQEmOJusSWndtmoDtxjTRO9NgGXloxLPcbcdjCiHtQC711T1OCatbbfVwucC5eZZQHgoQn23fouqVtwPPyvsGzKIVHU69lCZaTigNUlBWa/WoLJDn0z4fyvyqurF65Bfm4gRUHfBJrd2n3hg==
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=GvHDDNZkzR0Z7RcznDEj/DWDvWydNrHB/mneOa6Qylc=;
 b=yaHvIk+GJVfatNd+mfEE2v43Jo5UBMoFdB4zCtKVHWas/2RyYdUvWWxeZ01cuNkvtDDkPPfxyMAZzgK6jl5Ede/C+C99Z3zRBLvsgCOk3EUxQ4FXTMcov1mbhxroLOX0D3J0hVWRRRxtunyxEuNnx7pr4dU38CFqDmW+K/2jUQ/vdP6O3htzadgKR5sym4BB+z+PlJsVOz7QdXFOkSVOnyKfZjJ4N2tci9IkGTZYeXjp0wQru/IPUrHAAZRd1foavtCqTF8lY9SAf8jw6f3E8gzhuZbhjobjbklohQaDYn5x1bWQzH9MFy9Xejq6qY6ZpmrGRgqngiuEcr9ANUaXew==
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=GvHDDNZkzR0Z7RcznDEj/DWDvWydNrHB/mneOa6Qylc=;
 b=nFNqjFtA3Bp5iPB0/dc3urOGP0tQlEBx/3NEFg5TSThclFwBrSPNvlv77JyRM5PmAZthcZAwPQ0Ps837rtw88dba6jalL7IHAyPuED4L8ZWQwAXUe8nZkPwTC/jEQo8gtbPTEin4dhpbjpiZovJPpTPK0QvhpD+BKSLey9egBWI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <ea01af72-c94e-4203-90c4-eaf68174b576@citrix.com>
Date: Thu, 18 Dec 2025 18:15:32 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v2 1/4] xen/arm: optimize the size of struct vcpu
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
References: <cover.1766053253.git.oleksii.kurochko@gmail.com>
 <946a1c2cfaf4157074470a653bba5baa8561ebbf.1766053253.git.oleksii.kurochko@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <946a1c2cfaf4157074470a653bba5baa8561ebbf.1766053253.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0638.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:296::18) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA3PR03MB7444:EE_
X-MS-Office365-Filtering-Correlation-Id: 848e0304-45f9-4a2c-10f3-08de3e6170b4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bzQ5YktDVi9KUlVqcFhuYThWZ3V3SVNzVHVYNTRuT1hOVmxwRlhyVXF4Yk5s?=
 =?utf-8?B?RlFxT1ZLbDMrU3lNSWNQUTJTRFNrMnZnY2ZCTkJWTnhFWmtyOW1kU1NOakVS?=
 =?utf-8?B?Zi9QQzdiekYzVTdpKzZveFVON1NtY3Q2S1R5Wk43MzVGYWVPMmo5Z0g1L2tK?=
 =?utf-8?B?S1lKa05WSlZoeFgzVHd5UmU2UXJBaWZiRk9xNCthNFdyT3JoZEZFZ1gvbmxi?=
 =?utf-8?B?QThvdTdJZDFFVjRTWExBTWFTOTNoWk9lVVhqbnJuSmVsd3A2T0c5cExkaDZi?=
 =?utf-8?B?czhIRndKSllPMXk0T01KVWJMa3lSOTZzL0ZHVGJjQWJxbHVKNmtvRVNhMEZN?=
 =?utf-8?B?REhwSXdIYzZvTTluanJzQXVxT2dXSnVlR2RQenZmVDVxKzJ3YlRrYXdZeDB4?=
 =?utf-8?B?ZmpVL3J5RE9tcU9YSmhTL1M5cFBqc3JDQUNZczFkS0ZNb3FFYndHL2pMVm82?=
 =?utf-8?B?bW1zK2NoTEVEc3FIM0JtbXFTR0h0SEJWa1hUNUFIbUVnV0RKWElyYnBSQmtP?=
 =?utf-8?B?cTN2ZzEwM3FFUjVGbks4RzRCbm1qc1NOS3hTczRQN1I5MzMzMlVnSXJwUDZN?=
 =?utf-8?B?d3RrYVF1YWpSZno5eFJnRlVCa1FIclpabGpqQ0oxQjM4cDhodjAyM1VvVVMv?=
 =?utf-8?B?RjVEWDVlU2hlNHVlQ2t6VGgzUEV6WTNGL0N3MFc2S1hlZmJYZFBaYVRGVUVh?=
 =?utf-8?B?a3BWMjVYK253Yi9iOUlyQ2t1L3N6L2tNWHduMUd4NW1RdTJNY0FnUlZzV29O?=
 =?utf-8?B?M1UrcDdHOW1IOGZHakR4aGJ1YWROMVJqbHlmUitadVFUQmVhMTRhL2lxbDZH?=
 =?utf-8?B?RjFMcXBIL1QyWisyOXIvYzNGWWxwSDFWVW1UamNadjBmZXpnTXo1VGdHVEJL?=
 =?utf-8?B?YzB2SDRiUlBjZjJjbnJPMFdqSysveTAwTk1zbE5FK2NhNzhLNU8zTG9wQU4x?=
 =?utf-8?B?dXRUWXhRQ25BS1U4WCtQOEhzMXNTMGo0YzFzZnpsaDZEQ2tscXhwN2N4UXV2?=
 =?utf-8?B?TnYvYW0zcDcya1l0MXZQY1RDeVNZU1Rvc3RvQkxnYWMvSkhNbFp3YzhCc0ph?=
 =?utf-8?B?dXliaGY3Nks5VGRmN3Jpek1xV0RoUmNDUVpBN3J2NnVyV3FPY3lKd3BnWmh6?=
 =?utf-8?B?Z3RmVFdLTjlURUFrdGRLem9OMTRIbDBxYitPazh2UzhLTHg1ZmNYWmt0V3c0?=
 =?utf-8?B?dWNLcjFCN215NGY2ZTQrenVWMWEyTU9jam9QVFY2cmZVNVFqcDdyQlpZTDhS?=
 =?utf-8?B?MXZrd0lBSzNJdSs3SVd0MXpjVW9URnJpbVQyOXl5aDJqeXduSTN2c0EyQUxW?=
 =?utf-8?B?VE5IWCtGbk1mSHZVV0Y1Z2JVd0RFK0MxZDhKY1JmU2cvMm5Lbms0Z0w1emIr?=
 =?utf-8?B?N2dBcGMyZEVsY1J3bElZbWovbU9scktsOTdUME8vblRrVG90L1Fmakh0SmFU?=
 =?utf-8?B?dWczRDlzTXV5RWZRMU9PUTlGNnNxVVNJTE14TjF1dEdZYkNaRXE0ZFdLQWt6?=
 =?utf-8?B?dXB4RjZHTTFZZENWazM0Vi94RHk3bnBmRVIvVGJ6WWtuNFFJNlVzcVBCeFBG?=
 =?utf-8?B?L3piaXJZMmtVUjhHZUZJaVNTcTd0VlcrMUZaK05YeHBUMmNDN08zWFIvbmZi?=
 =?utf-8?B?aks4TG9tQnlRQ1hhZXBmMWt0QWlIajVkeGJJS0Y5Q2xKdmZBNzZMVWtpcG84?=
 =?utf-8?B?c3dwQWlJc21oRDZ3T1hIcXVQNlIvVXI4T2xtbmxxOTVxNFhGZEw2STBvSC95?=
 =?utf-8?B?TkxBeVVwSFlSUzB0bFdjM3NWTzJ4bFNHUUJMWXhINUgyU0FMNHdhb08rdldo?=
 =?utf-8?B?MGVWRGpvbnRuMmRDaUZub3RLYk1uMURhblA4OHF5Y1poaXZWZ3UwVVRnb2c1?=
 =?utf-8?B?dDVJT3A0YXBvT0JVSUZUY3pyYmJWSGpibGtqTy8rd0dZU3ZqYnFvRys0UlNH?=
 =?utf-8?Q?1cf40mGox7pARtgX0rbq9H0fPBvoNgyi?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?M05DNHVvVm5MWmVVaWdkOTNUbjZ3SHNaS3Noclk2Mzg0cXBBeTY5anFYVWNq?=
 =?utf-8?B?MnZ4Y3phdnhFaDRURmtyb1NzM1Z0aXFRVmVmQ0ZyZUhVK1IzMVJxVC9iYnBj?=
 =?utf-8?B?Z0oveGdlWGU0aXF1N253ZlhySkt1VHkzcUFTWmo3N3Q4d0p2V1hPTGdJeFlN?=
 =?utf-8?B?RVFTelpXOVBUTHU0ZU1SZHhudElhYm5QdXFmUVliRlRKcEc2bmptbm5FVlpy?=
 =?utf-8?B?cjhBTnhXblZub0s3R0xJS2F5N3dmdzhtYXJrNXhzZWdXN29mQ3Rpa2xYanhM?=
 =?utf-8?B?TXJjMTU5V1lyYldKMWVJOTl2N09ES1lnYW5rRHVWQ3hKeGpwZFdHTWtzTW5l?=
 =?utf-8?B?Vnhac21PQWVuU0VLbDV6cEhQWENvdmZYcW4wWnBxNG0zYWxuVy9landzdkpT?=
 =?utf-8?B?ekROQ1J6ZmpBWFNmS0pyV1RmRjg4WE8wa21lYXJDVkJEY2FLRHRuMHk0WG9h?=
 =?utf-8?B?L2RDbXZCWHlwN0RtcWxzTlBEOGFLVkJPVXdISEV4OUF5RjI5TThjeFJ4TDVQ?=
 =?utf-8?B?d3JwVUdWSDhNcUh3Y3d2OW94S1FXRUIxNUswTzlxdVFhTkVLcWZ1NmhwUHVh?=
 =?utf-8?B?U21RbFpEaTZTODRpeUhOYmYzYWJ5NHdXUjIwdFhUcHpPdHMzZ3dJMGFNV01Y?=
 =?utf-8?B?NG1nVFcxeGl5dHc1bXJJZVpsTGRzNWJBS3laV3huSGQ3cy9ReHRTY3dCMU0r?=
 =?utf-8?B?Vm94Z3BlVWxhalNaQ2gxbS9jNFZXVXpnL1lFMDZGQTl0cHVXWUtjYVNLL0cz?=
 =?utf-8?B?UlpPZTRZTEJxTmdXREQ3UEYyTnkwSFBQbVl5L0RvSUNiV3VuamJJQkx6QlRl?=
 =?utf-8?B?aXRINkNESnlsZFNyekVUUGI4M3Z0VXlITlU3cWVuOGk0RndEUXVWajJNTGtn?=
 =?utf-8?B?K2lrOHJxelh2MEdsVFdtN2JUNXNrNnFXeXdzZGphcDBXY1c2d0xycjBlMkRv?=
 =?utf-8?B?MEtnVXdabXVWZGlSREhXOE81dTYvQkl3U1JucVQ0TFJYSW5TNmNDWFFnSlF0?=
 =?utf-8?B?bVZXdlJRMUZGYy8xWG93WlZJK1dONjd3RGtyYWRCdXZVSFgyaVRZL1lsM1M4?=
 =?utf-8?B?ejBLT243OU1IZHJjdUJSdDlYS1FLUEliWW1URUJQdDY4Zm5nNlpZOGJXSDlE?=
 =?utf-8?B?d2JzcDBQaVJEMGo1L3BlZjZrTHNDcGliWkRFNXZQUGQvdG9sUE1kS0owNXoz?=
 =?utf-8?B?N2xzdkp5cEovcXFlV1pCRVkxa3BQNUZ4blhMbVFTWXkvTFBBVUhXcHFJdXlB?=
 =?utf-8?B?amJlSHNlVWJwejh2dW02Z05LRnpvZEhKY2wzelUxd0VGUHF5Z2VxQnRqaCs0?=
 =?utf-8?B?RUdZYnZRcGQ1QjdQUC9wakFDOTEvWkwwcWtFbU5rU05KekJaUkdFdDU0Znow?=
 =?utf-8?B?MXg1Z1dIR2VOa0pScExkSkpqSmdDNG0wczMrU2R1WkpWOHlVWGRQQkxIT3pl?=
 =?utf-8?B?L2hFbWVlbEpLSW9XNjhML082aXNMZ09OczN3QmdFK0FZOUdaVnFOSjdFTEZx?=
 =?utf-8?B?NXV4cFFtSWd5RUl6QVZJaGZSODUvaXJuS25DdkZ3MHltSG1jTXgxWjFpUjdD?=
 =?utf-8?B?bFVIUWIzQjFUR1ViZkFjazBtbm9FMDNWUUZ5V3VSZkIyYkliUWVzSlJqU2dS?=
 =?utf-8?B?QWwzbnpqNTNtZk84MENydTlnc011cUk0MnNVd1pNWlQveTJEeFZhNTNRZmdw?=
 =?utf-8?B?K0ZmQ083eTkxdFZlSUY4S1JRZlZmNTVacDZXTHdTWElGODZzNjg0RENIZW83?=
 =?utf-8?B?ZlVTOFBHeDhTWGdtUWJnUjVXb0c5QjN6TmhnV0dabDJ5c1BZTnZwWmN2VnMx?=
 =?utf-8?B?dGM0Qm93dXBqL2NnaE02L2M1ZCtHL3RKUmFGSXkzZEFwNlErQlpnLzNERDNN?=
 =?utf-8?B?SDFzSTlPdGlER2hENGQ1QzJ5OHBFbGxWVi9RRHI3NGh0SkhXRlZObWl6bkRI?=
 =?utf-8?B?eU1neXJHUDRsSDFQbVhJTTJuMVduTDhxRHBpanlGd1VjTHZjT1dmVThMekVB?=
 =?utf-8?B?Q3hLa3FPWDFBNVh4S1NFZW9Ta01RU0ppWGd4eFhWZmtpMDhoSXNhcG9CYVE4?=
 =?utf-8?B?R0lBUGJNbzQzTUJYdGd1bk5DaVliUG10eGUyMHJoQWxFQWdjZlY4b3FQY0Z2?=
 =?utf-8?B?TndBVUlIblZmaEMvM2tpaUxmMWNyZHgvbTZlZFNLT05XTklubjE2eU03MHo3?=
 =?utf-8?B?VWtVV1pJTWR0U2xHWjdka0hsTUo3bkliajAyOHUvaWdFUmxIL1RtUW1xeG93?=
 =?utf-8?B?cU1sVFZseVF4b3NFVnJjbEIveWE0ZmtlQi9qNCt0TWZobWRZWk81OWVQTTI3?=
 =?utf-8?B?RUsrNUVjTU96RUQ1M2pYUWVycHhjcWpBc2o4QzRzQStzejlKNnNSZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 848e0304-45f9-4a2c-10f3-08de3e6170b4
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 18:15:35.8369
 (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: RyA+Z4GXqwtD987psr6Uwq/19QLkAoZIK7Cu37RaIGue6xVxdyF11uh2hFwkArfBVCpyveuNb1CmoqdRgYP6hhe3gXpe9cKja9T0fAkT/sw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR03MB7444

On 18/12/2025 5:28 pm, Oleksii Kurochko wrote:
> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
> index 3ebdf9953f..8b17871b86 100644
> --- a/xen/arch/arm/vgic.c
> +++ b/xen/arch/arm/vgic.c
> @@ -370,29 +370,35 @@ int vcpu_vgic_init(struct vcpu *v)
>  {
>      int i;
>  
> -    v->arch.vgic.private_irqs = xzalloc(struct vgic_irq_rank);
> -    if ( v->arch.vgic.private_irqs == NULL )
> +    v->arch.vgic = xzalloc(struct vgic_cpu);
> +    if ( v->arch.vgic == NULL )
> +        return -ENOMEM;
> +
> +    v->arch.vgic->private_irqs = xzalloc(struct vgic_irq_rank);
> +    if ( v->arch.vgic->private_irqs == NULL )
>        return -ENOMEM;

This error path needs to free v->arch.vgic.  (If we continue down this
route.  See below.)

>  
>      /* SGIs/PPIs are always routed to this VCPU */
> -    vgic_rank_init(v->arch.vgic.private_irqs, 0, v->vcpu_id);
> +    vgic_rank_init(v->arch.vgic->private_irqs, 0, v->vcpu_id);
>  
>      v->domain->arch.vgic.handler->vcpu_init(v);
>  
> -    memset(&v->arch.vgic.pending_irqs, 0, sizeof(v->arch.vgic.pending_irqs));
> +    memset(&v->arch.vgic->pending_irqs, 0, sizeof(v->arch.vgic->pending_irqs));
>      for (i = 0; i < 32; i++)
> -        vgic_init_pending_irq(&v->arch.vgic.pending_irqs[i], i);
> +        vgic_init_pending_irq(&v->arch.vgic->pending_irqs[i], i);
>  
> -    INIT_LIST_HEAD(&v->arch.vgic.inflight_irqs);
> -    INIT_LIST_HEAD(&v->arch.vgic.lr_pending);
> -    spin_lock_init(&v->arch.vgic.lock);
> +    INIT_LIST_HEAD(&v->arch.vgic->inflight_irqs);
> +    INIT_LIST_HEAD(&v->arch.vgic->lr_pending);
> +    spin_lock_init(&v->arch.vgic->lock);
>  
>      return 0;
>  }
>  
>  int vcpu_vgic_free(struct vcpu *v)
>  {
> -    xfree(v->arch.vgic.private_irqs);
> +    xfree(v->arch.vgic->private_irqs);
> +    xfree(v->arch.vgic);
> +
>      return 0;
>  }

Free functions should be idempotent.  This was buggy before, even moreso
now.  It wants to be:

void vcpu_vgic_free(struct vcpu *v)
{
    if ( v->arch.vgic )
    {
        XFREE(v->arch.vgic->private_irqs);
        XFREE(v->arch.vgic);
    }
}

Given the type change, this probably wants splitting out into an earlier
patch.

Given the fact that the single caller doesn't even check the return
value, you're fixing a MISRA violation by making it void.

> diff --git a/xen/arch/arm/vgic/vgic-init.c b/xen/arch/arm/vgic/vgic-init.c
> index f8d7d3a226..67f297797f 100644
> --- a/xen/arch/arm/vgic/vgic-init.c
> +++ b/xen/arch/arm/vgic/vgic-init.c
> @@ -241,10 +245,12 @@ void domain_vgic_free(struct domain *d)
>  
>  int vcpu_vgic_free(struct vcpu *v)
>  {
> -    struct vgic_cpu *vgic_cpu = &v->arch.vgic;
> +    struct vgic_cpu *vgic_cpu = v->arch.vgic;
>  
>      INIT_LIST_HEAD(&vgic_cpu->ap_list_head);
>  
> +    xfree(vgic_cpu);
> +
>      return 0;
>  }

Not in your part of the change, but this is bogus.  It's not remotely
safe to init the list head like that.

The list is either already empty, in which case it's a no-op, or it
corrupts the list.  It appears that the list mixes entries from other
vCPUs, and from the domain.

I think this is further proof that NEW_VGIC should be deleted
wholesale.  It's clearly not in a good state, and I get the impression
that a badly timed evtchn sent to a domain in the middle of being
cleaned up will cause Xen to trip over the corrupted list.

>  
> diff --git a/xen/arch/arm/vgic/vgic-v2.c b/xen/arch/arm/vgic/vgic-v2.c
> index 6a558089c5..e64d681dd2 100644
> --- a/xen/arch/arm/vgic/vgic-v2.c
> +++ b/xen/arch/arm/vgic/vgic-v2.c
> @@ -56,8 +56,8 @@ void vgic_v2_setup_hw(paddr_t dbase, paddr_t cbase, paddr_t csize,
>   */
>  void vgic_v2_fold_lr_state(struct vcpu *vcpu)
>  {
> -    struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic;
> -    unsigned int used_lrs = vcpu->arch.vgic.used_lrs;
> +    struct vgic_cpu *vgic_cpu = vcpu->arch.vgic;
> +    unsigned int used_lrs = vcpu->arch.vgic->used_lrs;

vgic_cpu->used_lrs.

Taking a step back, I think the patch could be much smaller if you only
made private_irqs in NEW_VGIC be a separate pointer, matching the "old"
VGIC code.  Or does that not save enough space in struct vCPU?

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 18:20:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 18:20:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190126.1510755 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWIbZ-0003z7-9o; Thu, 18 Dec 2025 18:20:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190126.1510755; Thu, 18 Dec 2025 18:20:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWIbZ-0003yP-74; Thu, 18 Dec 2025 18:20:01 +0000
Received: by outflank-mailman (input) for mailman id 1190126;
 Thu, 18 Dec 2025 18:20:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6E0R=6Y=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vWIbY-0003qp-OV
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 18:20:00 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 29522fa6-dc3e-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 19:19:59 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA3PR03MB7444.namprd03.prod.outlook.com (2603:10b6:806:398::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.7; Thu, 18 Dec
 2025 18:19:51 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9434.001; Thu, 18 Dec 2025
 18:19:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 29522fa6-dc3e-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jtWvcpHi7Bnuw+zPd0MJhXAWD7dgDkCLDET0Aid+8BjTwOen/fr+cMm+8+r7I3D6+5S77CD0ZiEKx0a8P0TZ5sVeklmU/5Rnfax+1G6zJzvW0X5QudVn2DezZxpTFLaFth5aT74VVWD5zhiPAUnSIDHnwq+iYpP2qTkv1IGinCuh1AOql4WX6PX7NjaNTzAld/Uoz4KH7vclSaixim3iJpiYNJ5cb4RnP4uLlCFoiTBf5FQkAddPVgj9RZShYgSBRlJV+ZRKKDvvUzL8MUtf2gF9YrB8Oh2AiLs0xzUpVj9WYzbIsJrhkXodVXpAeHG7Wv4xH/z8s/6YsXMoGRX7RQ==
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=0OdRRQa8t0+XY7qJlOwaXc1ncWpFT2D7jETm/Em3mDM=;
 b=KMJFe236qg+gEtY29Z9hN23bphibFJIAuj7hc8t9sbzh0OzAxFKVJtGMTa8SjZTSwqolNpRVZQLjvSVbe9FFtC1JGqMNA3C2crPtWGK+tq7hDoQ58Bl0sW6JKlOfbaspFPo8vUGkEQ+6qNjoorbjCvx7fhUpi4QMl/Q8FlLVz0DGU/F5jiNaeY1i6PN9kM6PHy4vtfediTzvdVYnGiSAFQeQ38iQ41S0qawQwyU8WkECRe4Qo1bbmqIQ3dxT0BnDsFtkM+Ivs4xcNbBaPj7fc4rN0wOuB2CW7+2hauxJyab3bts+voXLFozN99RlHRl/RN6oGBVlJr8FmpdBOydC8w==
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=0OdRRQa8t0+XY7qJlOwaXc1ncWpFT2D7jETm/Em3mDM=;
 b=H3ZR2KYyLIfl1FlcbPKoPd+n+Q6kNevpE+oo9Jn/c+MhoGx39iE/qLkcHxORYV+Xdz1uzDG+SDfCuuZSHiqQnu7UqOuZICj6gTEJcfYsPmIs/5S6z2I5NATSSzL6tpGSPTjQkPW43ulWmEb146lSFbEtQzYCGPT2pK1Vtci3oVU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <acbc46e0-e102-41cc-ace1-578a20644b34@citrix.com>
Date: Thu, 18 Dec 2025 18:19:47 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v2 2/4] xen/arm: drop MAX_PAGES_PER_VCPU
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
References: <cover.1766053253.git.oleksii.kurochko@gmail.com>
 <74f1594aad235765002b59f2baa975cc8fe72f06.1766053253.git.oleksii.kurochko@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <74f1594aad235765002b59f2baa975cc8fe72f06.1766053253.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LNXP265CA0092.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:76::32) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA3PR03MB7444:EE_
X-MS-Office365-Filtering-Correlation-Id: f3e97281-b565-4ee8-47d6-08de3e620930
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dW9oZGxla2pUa1UvZUF5ajNnTXI2YzNtOFFoUGFWWlFsdzdWOEZzM2hXbW12?=
 =?utf-8?B?RkVMQnlNNWY5aW9naE1KS3cxbGFUK0JqeG5WRW0xQ1VzU2hhUGNDNExYcjJy?=
 =?utf-8?B?RzRCL0dobGpqVm5GaEQ3R1daeXoyV0hDV0UzR2NTb25JNDNpR3FqK1kxTi9R?=
 =?utf-8?B?YXd1b2cvVDJtU0JsbXh0bk1INFdaNHdLc0o5R3huU0lQV3ZoaStzTDVOWVBQ?=
 =?utf-8?B?QlNKUWExNjVuMittWHdTcWMzaVg5ZW1oVTNLRndXQmJGR0UrQ296K2M4ZTFT?=
 =?utf-8?B?VkN2QS9WNDhSQk12UE84bXlHSmhyTytGWjkzbGoyL3BmMmZXL0dXZDBOYzNu?=
 =?utf-8?B?U01veFVXZFo0a0xZcm9LUEc1NTg3Q0xKbmxlZlZTNDNPTzFFeEQ0d3ZqeWFr?=
 =?utf-8?B?YTJ1U3ZLQWpXMHdZRXpyY2NjT243emwza2VURHNqand4UEd2OUM4endpRXBH?=
 =?utf-8?B?TjBoQ3lFYjk0VmRkam5kVjYzL0RZQ1Izb3NySlNDakVzZ3I0MTFUMlNBb2hC?=
 =?utf-8?B?b0JMWUZ3UmYvV1QyejBnT1JnZW1MT0JwMFdZbkdxSVA1TnRlc2o5L2wvYjBr?=
 =?utf-8?B?YUVVRlBBNDdIcFVRaXRJZkZVbUdFTEJiems4VnFYYWhkZWZzSjFWYW9IYnlN?=
 =?utf-8?B?RFVHVDc0eUFtSDY5NkQzZ0ZDTkI1STJQSlZuMFFiUFRJN0ZydTJUVjVla1p4?=
 =?utf-8?B?YVVkK3k5aldzWjBEQzZ0WS9QOEcxZExnRDF0a3dCS2ZOaTR4UnV1d3JibWE0?=
 =?utf-8?B?UnU2TjNWa2xwelRBR2JUVTNwazc2TEZwTGFwbkttaDF6a1lSeFc0VVU1ZmNI?=
 =?utf-8?B?OGdJRTZPeHpqTDVVUjd3dWZ1d0dCaXNxOUh4Qk9aQUc1ekxPSHJZSEw0UUNp?=
 =?utf-8?B?Qnkzb0p5dm5qR3VEelBMK2ZZQWxLTm52N3g3czEvci9EU1lSSEc0UFB4a2Jp?=
 =?utf-8?B?UnVVbFNWTXpkQ1B4Qy9sSVZTTnpyb2IxZDlLNmkyZUxaMTVuQlYzZzNtYS85?=
 =?utf-8?B?ckFVNVdiemZiQzFudStKYnRNTExkSE9MN25hTUVycFpRSlZ4UjZsV0paVWVY?=
 =?utf-8?B?UHpUYThoTURHcG82WjdpZ1AwUGdSN2pzSjluYTBvNENOK0o1N2U2SDRQYXY0?=
 =?utf-8?B?OTBRSHA0QU5nUHNUSnBZeTZINXkyUUN1ZGN6Z1hSZmxmdDlvOXc4L3ZCTGFz?=
 =?utf-8?B?ZldCTmN0WHk0bVFyczliR1UzMWhnTHZscjFWb1hFYUNNdFJYeWRVVlNGMTFM?=
 =?utf-8?B?THVkTzZ6M1pjcllzY0kxSnJoaEtINEk3WnVqVWQ2UjJnVnVOdk9WWm9ObmFX?=
 =?utf-8?B?MEkrS0F3SnhCVjBXbEdGNjZKcE1QejBTVlhYbjN6UWQxVHRyMmpFNjhDaFZF?=
 =?utf-8?B?SkNRbjZSWnphL1BaeTVDbENpUlIvSzNDSzlUNjlRNC9MWWovcWF0YWxuUWJT?=
 =?utf-8?B?VkdrdjlFQjhxRVpZcnc5TkNKQUFsa25pWHZhVThhL0tvNlFGcjJBVDVCekk4?=
 =?utf-8?B?TlFWLzZGQkQ1OVNpdFpuR0pHRXFDVUJOSCtpeWg5WStqOEpGWnl6Z3JUSlRl?=
 =?utf-8?B?N2FaeTlLN01WdzFWWHlHRTZHeUdDMy9UQVg4VEVSYzk5NjdKYmIraVkyWlJy?=
 =?utf-8?B?dTZhcHIzVXo4WkFaR2srSlhsOFdxTEZUOFJ0QW56ckVMU2U3VURSOUxnSWV1?=
 =?utf-8?B?aHJSODBNL2IrTXdSeUdaYk1SRGVkb3FyQnVxOUh6ZHRxNjIyNUM2dVVSYmNt?=
 =?utf-8?B?M2RlczdPMlNqTnV2eTdUMnlRREpjQ2x0R0x2aE5LcXhEZE51Nk14aGlXTkFV?=
 =?utf-8?B?UnE1NXNWb08zeEgydE9nK2dGdUZoYjlLcDdwbElnSStUd2pOMnh1ZlUxbEFr?=
 =?utf-8?B?aU1zUGJLam1PbXRCMUFheUErejRRL3F0TC9hSEphTnpqdEIzbnVKMVhXczBn?=
 =?utf-8?Q?xokm/wIZntrhLpLHVmBaHLLitCGqriwH?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Q0dPcXZNck9ZeEkxY2lmdDNPTnNCN2tVREloeVhjcDEvcG11WGlNMjd1cGQ3?=
 =?utf-8?B?MjRNNGJKVzdqdklIeSs1Uk5LeWR4RXVGMlZiSkVHemh2NGQwK3dMVmpIYnVn?=
 =?utf-8?B?djBEN21UNlJCbXZlMWpJU1Q1SWVENnFuZHp5Q2tBb0hSSERsZEVMWnZZVG5V?=
 =?utf-8?B?aVEzR2pHaDNBK3hQaWRoRWVKRHY3bjNnRmZkTUtnUXFFUERpWFlqaFZ0cVpZ?=
 =?utf-8?B?dWFVTlU3WVU3OVZaZTNUZ0trMGRVSVBZMlk4SklCK2dkUWJHcmtXS1pLa1ZP?=
 =?utf-8?B?Y0J3QmJLZU1zemZEbFVUQkFDbVlVTzVRTDFTaXlMdUVMMHBsRkdJQ3dJbDBh?=
 =?utf-8?B?ckNaeVlOczM5Uk1WdkwwTk1SQUk4UXhDUGZXOUZoTXhPbVVTYWVqU0RuZm1Q?=
 =?utf-8?B?VHRjWDh4UXcyd09wWHRSMEZXR0JjTkxmeVRCU3czMzdBS0sxaXJyUUJBZU1F?=
 =?utf-8?B?N0o1cmlWcEh6ZVVnSG9KTGViVkRjd0VueVN0ZEdVcWF6ZEl0Z2NuNHdkWWlK?=
 =?utf-8?B?clhUTFNzK1pXYWpDd3lPRU5adjZDb1R2cmI4OGZPZEVrWkpac3hwYmgrV1ZG?=
 =?utf-8?B?eVVJVUE5Z1pQQjNHTnV3S2ErcGJoTmhSMmVhd21CaTk2WUVTdk9CL1krNHZU?=
 =?utf-8?B?VXAxM3ZWNVdtODRsS0hzVXIrRGsyUzZTSzRpUE9LbSszdTZxQnpMRkRHck9O?=
 =?utf-8?B?djFkNmlPSDJaQllhMmpTMEVYSkpZQWtXZGVJVzZMNUgyUHJvZUU0VWlkRFQx?=
 =?utf-8?B?T2pVZS8yWTVUU0c4OHhocGhyUWllMFpJNVVuSHBHQk5EeEhwdlNVM25NODhJ?=
 =?utf-8?B?WEFxSVNBeTd2MCtCYlhxVUYxbkdoNkkxYUZZcW8yRTBxaHVhMnI2VE5MS0FI?=
 =?utf-8?B?RGJHSjZtM0xJN05Fa2VYNzRtNDJJNU42ZVpESHdYM0J5RTI3RFRyUjJNNkVo?=
 =?utf-8?B?ZXYwblJMK3AyWGF4c3RTVzZ4Y0JBdGxZM0x1bmZ1c1RZNUtXdFQ2c0dNMWJs?=
 =?utf-8?B?dTdLckR6Yk9yTVhXdW5EQmdOMHdUVjVpVzBPNXFBaFVLUU1ISkxZUk1iQnN1?=
 =?utf-8?B?UWVEalE5ZFVqZ1QrdjhQM0xXc0VFQk1aS3ZabXRIaWMvVjg5WldKaUNSeTk4?=
 =?utf-8?B?QkRieXBCSDlMcGVlaHc5QVd5NGU0OHhYMWJRdStsbFkrY1BVUjNxZmxZTzAr?=
 =?utf-8?B?VGR0aCtWcG5wUWR1ZXF0Yk91ZGo0Nk9qS3J1a254RlJmbmJqZmxKdUMxT1V5?=
 =?utf-8?B?N2U2U1R6bHdKM1Qwck5tZkhQblp1SlFaZ1NYZkJvNGwva09SSWtaNDY3S0RK?=
 =?utf-8?B?dndMeFd4Y3FmOEJzWm5LdThmZm9hTkRVV3doUW5sOU56em5SWlg2WTZCcWVr?=
 =?utf-8?B?aHYrU2FHZElMclJ6eVJsZHlPWnpDMEdFNjJRRHBsKzFJSnlyQzRBNDR0MFZt?=
 =?utf-8?B?UzdibnF2NWxiS1NCM00xYzB3dEdGZ0ZhYTF5QnBoVFR0QU1WTFNNMU1ocXhx?=
 =?utf-8?B?d1BFbUFTblBLeVVaL1puRkFzcmRncHJMaU0vTFdTTGJrazNRNGtOcXh0T0xI?=
 =?utf-8?B?SEI1ZnN3dHpzb3FQTnl6b2FEeHdVWGtpYzc1K0lKQXJIczlRS3NMR3NXQThP?=
 =?utf-8?B?NjRCR1ZBNnAwa0lRRTVDaWJRdVA4dTlEcktFdUhqelBxdXgxZ0U2S3dLdFNt?=
 =?utf-8?B?a2w1SC9VQ2llVzJiM1UvczBQdi8xRHdsMWxpL1BTNG5SV1FGVGNGaGkvUnZ4?=
 =?utf-8?B?bldZd1JPZmQ5MmdlMit2ZnpHNnl5TmQ1cStydFVIVE9QMTVJay9YRTR1d1N6?=
 =?utf-8?B?ZlNCMHBqckllUmFMTjFJSkY0U2ZuRnlGYkhFUlc1VU1YOXZxWVRCbGtYUy9s?=
 =?utf-8?B?SC94L2ErbkxUU3plSjloa1k5MitiMnp2TnBUbmtSRWM3MFpvd29EODlmenhO?=
 =?utf-8?B?LzlHMmI5ZUx0WUFrdCtkMWhSTWdqYXJsOTViZGpNamhHY1hmT2pkNVY5K1Ay?=
 =?utf-8?B?dlpiZVFxRWpkMTlDQW5BTjBQc1hCQUFVbFNyNkhNTVBIR2xnYTViRVNocGJI?=
 =?utf-8?B?VEtsVHJnTVhQYXE1WEpjYUxWeGhPT2dzUkhxNDhiMlFoOFUvM0dMSjJlQnRy?=
 =?utf-8?B?WGMrcjJyQ3ZHZWZXclZhKzhnSGxoVXdPVWRLcTRlaWo1WXZzRlVGaENGMTIr?=
 =?utf-8?B?b1VtOTladExwbHZjdDJ1dTVPU0tjSS9hMU9KUFV2R3BhM0FuOGxaNVF6WGxn?=
 =?utf-8?B?eXBXZnFtUk51WXA1V2Y2Vm83NTMyZEdQbW1OYW9UNU9DZnBMSXplZHBFWWFm?=
 =?utf-8?B?L2VucnFUbTJ1ODduOHJVTmJyWnhVd3JQU0l5VDJHSzlpQWF6c2JvL1JFNUdF?=
 =?utf-8?Q?vQ3W7hfZ9JbOmink=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f3e97281-b565-4ee8-47d6-08de3e620930
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 18:19:51.6493
 (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: Uk3efgvx64GUerspMYdcECIv42HgRqR/2ygdERo8JnNwYv3iqYNyZ6EjLqTdqZem5I/N9sN/loFyE3WyWErHFt0PWcO5OaqDsyYpfnyyYEk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR03MB7444

On 18/12/2025 5:28 pm, Oleksii Kurochko wrote:
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index 47973f99d9..e566023340 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -473,36 +473,21 @@ void dump_pageframe_info(struct domain *d)
>  
>  }
>  
> -/*
> - * The new VGIC has a bigger per-IRQ structure, so we need more than one
> - * page on ARM64. Cowardly increase the limit in this case.
> - */
> -#if defined(CONFIG_NEW_VGIC) && defined(CONFIG_ARM_64)
> -#define MAX_PAGES_PER_VCPU  2
> -#else
> -#define MAX_PAGES_PER_VCPU  1
> -#endif
> -
>  struct vcpu *alloc_vcpu_struct(const struct domain *d)
>  {
>      struct vcpu *v;
>  
> -    BUILD_BUG_ON(sizeof(*v) > MAX_PAGES_PER_VCPU * PAGE_SIZE);
> -    v = alloc_xenheap_pages(get_order_from_bytes(sizeof(*v)), 0);
> -    if ( v != NULL )
> -    {
> -        unsigned int i;
> -
> -        for ( i = 0; i < DIV_ROUND_UP(sizeof(*v), PAGE_SIZE); i++ )
> -            clear_page((void *)v + i * PAGE_SIZE);
> -    }
> +    BUILD_BUG_ON(sizeof(*v) > PAGE_SIZE);
> +    v = alloc_xenheap_pages(0, 0);

I know this is only interim until the next patch, but
alloc_xenheap_page() to match the free function used.

Personally, I'd merge patches 2 and 3 together, because everything you
touch in this patch is deleted by the next one.

But, whatever the ARM maintainers prefer.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 18:21:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 18:21:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190140.1510766 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWId9-0005WB-Q6; Thu, 18 Dec 2025 18:21:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190140.1510766; Thu, 18 Dec 2025 18:21:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWId9-0005W4-Mx; Thu, 18 Dec 2025 18:21:39 +0000
Received: by outflank-mailman (input) for mailman id 1190140;
 Thu, 18 Dec 2025 18:21:39 +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
 <SRS0=6E0R=6Y=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vWId9-0005Vx-3M
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 18:21:39 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 63e903e1-dc3e-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 19:21:38 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA3PR03MB7444.namprd03.prod.outlook.com (2603:10b6:806:398::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.7; Thu, 18 Dec
 2025 18:21:35 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9434.001; Thu, 18 Dec 2025
 18:21:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 63e903e1-dc3e-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Xmj50usCK579155BvuNi4ShxVOF2KpXl+e+2Am9dHrm2+BlKCjCHxNGayvmCNx3tamNcC/Ha5ccaf37Bbqa3iN8SHkppWF/nv2DY/tTk8qrIk4m7B+YJiHUV51pmWHjbXoLNdtvS2YYbEEDBzm11htOxRnCPY3VnfYsN5ItSZ6gCVl6cxLiHx1gg7olXMjs1VDv/bwNprE/BwQ1tB7gnYLGJVCM6JfN3JEKLjbtx6MxLiK89aJ0I+sOOdboUFp1rajp+A1Vzbn7DL2G/z45w32siEgzHrb2rFT4gNXptAf6uwkrUo9ea83P+Lz8aUxK2WDEPCcOvJMJkRjvoNlY5ow==
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=4P6w5B9cN7T0jqCh86A/IzlgKRvUwpqmyy1Mp7l32nQ=;
 b=YQoqfpdj6IYxSxQWuLwkhewUHUONFInu4QIEcXRwucdbhO+UGI04KBjXFSZhZveuMx/wqppoU2lCeyEme/JCCUzZii3UvaWgbvWSn2uDg4pA3/0sOh3ksV+8nG+D3tVi0h1CPEjlte7u+n8nVx7EcHbQ0Q2bKsOa4yH0dE0LAQWNVB9mDdBxPOVeO5ZRlZuAmof6KreBx7xzsukvyU6Kfb5/FXwsNJwOJgZDWpK7kKax6B6XrLThDdFqShPofExAIwS3dsSiacLhHkxNAmNwQ7H3bKTRRovrMMa8HzxhLjlUaZ6FbgweS++HV/o62qnemhFWQzC3S8sFS8BYJXvwEA==
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=4P6w5B9cN7T0jqCh86A/IzlgKRvUwpqmyy1Mp7l32nQ=;
 b=nLHfMpPJbWdLAeDd65qy6TQsqD2gr7pBRt5JN41ZmmusupWEIz/O2BEwSt0bGbrM6if9UG22v73Gzy4rJvyqIK4G+DEntA4L2HwhYH3WndTED6yQXwygMFxCewfOORIsSNdiwsr4emhPOogiqGbZWNbsYDIdbChioAIz4ZexT8I=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <69b3249f-220d-49bc-a1c6-e517ae5f3b68@citrix.com>
Date: Thu, 18 Dec 2025 18:21:30 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2 4/4] xen/common: make {alloc,free}_domain_struct()
 static
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
References: <cover.1766053253.git.oleksii.kurochko@gmail.com>
 <439f6e9dc1f35736024023d70ed7e1daf1ec294b.1766053253.git.oleksii.kurochko@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <439f6e9dc1f35736024023d70ed7e1daf1ec294b.1766053253.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LNXP265CA0096.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:76::36) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA3PR03MB7444:EE_
X-MS-Office365-Filtering-Correlation-Id: 14e4a09d-b155-4465-984d-08de3e6246b3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OEZGVVRac0Z3c0xtRUpkYW1neGNvK01aY09IV2RsZk12RE0zNC8zOVpYZlJQ?=
 =?utf-8?B?VUZzMW9zbVFnRGY1QmtzdWVrb20zQjJFMVNDT2VkMjJJMDFxT004UENQRHRq?=
 =?utf-8?B?N2xuT3hyMnVqSnd1clBLRXUwUkhzRjVDNDgwY3lMQ2NmZ2xOd1BtWlhGRkU1?=
 =?utf-8?B?NlRHT05ncUVNTEhHNVVTTEJ0VllvbzZqOUFaWkl4NUdjZUFaUmh3QTRPVVNs?=
 =?utf-8?B?aU5ib0pQRE5CRUdDNFpDNUVua0t6TkpEZWh2WXkxZmFjUkw0emhtZW9nY1Vp?=
 =?utf-8?B?V0h3TWQwT0ZsT1d6MDN5ZnhlNVlLRzZQTjcxL0VNRHd3YTRxdWtIVGw0cFQy?=
 =?utf-8?B?Z2xVYUFnbFFZVEFkUWhjTG9zc3JaOElmYVU2VzZISktVMDF6am5TQS9oeHFx?=
 =?utf-8?B?QUpXbStMOHg5eTIyYUY0T2F5WUJFaTQ2ZGVKaDlKcmhob1IyTVJOL29oMS9a?=
 =?utf-8?B?OGxkTEV4QUw5bUZhUEY5YnlOa3ZBRzlqS1FTRWNpVjgwOGQxeVI5eUs3UnR4?=
 =?utf-8?B?dGRpWWcwU0FYMGxwVVo0aVBxdnJGb2NhUE83cjBEeC9qWHpQVlVYa2pndUNm?=
 =?utf-8?B?YURiVFRLMk5iN0taZWVqVGxoNHFuZDlWaU0rRWRJT2gwSmJGdTNTQlFjNUVB?=
 =?utf-8?B?ZXVyV0g1dldtRU4ydnkvQzArYlVJWmJ5NkNPYjZnVVE3Wmc5QnVtQkxFbzQ1?=
 =?utf-8?B?dFEyYUpXb3psUWdjZnVLckt5ODU2MVpWVkpCNDc0aEhDaWlPWDFETTJ3Z2x3?=
 =?utf-8?B?a3puR0lYRUgwVDkwZUZEM2ZXdDhtWWl4QUc0anUvMTVESE9WVWlSMnhZYkhx?=
 =?utf-8?B?T0xKUnRGQlg1Vkd6NU5EcEZzQUJSdVJmcXpYNXp1ZXRQc3c3VjhmenAwNU9H?=
 =?utf-8?B?R2NCSTlUS01kcExSQWxMekZZM2U4VThQSk5ZNXpDMmR6MHNqdm96NzZWOTN4?=
 =?utf-8?B?VmdrTnRiOWU2YXhTbWRvMk5wSjZzY3N0S3AyNG1XcEJDNFlwZk9LY2VhOThJ?=
 =?utf-8?B?QmhQajZ2RS9FSGxpRjUydDg2alV6ZVNQWDFaVUpHa3dXQWlLeTNzVnNCNHdI?=
 =?utf-8?B?MWdxNHBidURRMGR4QzBCUUVNTnQzdi9ia0szVU5ocmo2NnpaUXRRRVhvTkRy?=
 =?utf-8?B?c0swZGtpamJNdWE3bTE4T0QrY2piK0xaYUlQa1lTV0FJNXNWaE00azdRZzRO?=
 =?utf-8?B?M0huYVlMcnNKL2Z5MjZPeE9DbnBPbFYvSFFKT2tRYlpjWnhyck1uVC9KdGc1?=
 =?utf-8?B?OTRFMWdLdUN4UkdNTklZMkljRHZOY2VlanRPMEZQQnJWeE1obUtSVE1TcnRO?=
 =?utf-8?B?VUZKbGhkN0NVYXJYY1dEcU5nREhOSmlvREhSTFVGc0s5RUpjb2t2cjRWcDA4?=
 =?utf-8?B?VHZ2djEyZmhLQk1nN1NaY1FqT1JrcUoxQzJuT3dxaGQzY0p2M3JuSkNKWHhh?=
 =?utf-8?B?VitDMEY4RlFPNjZLbDdvTFBWREtpMXBJY3dHNk1GcFU1OHVmUWtrcUZCTHJZ?=
 =?utf-8?B?QWZIWUdaeUcvQkJMNlpNOW1tTk5scDRHLzRPM2d3K0hUdHk3NE9JS0lYa3RI?=
 =?utf-8?B?clNyM3JJamdJWHFENnppa1ZPUVZCL092bE9wOGxEcldoWC96UmVhbHZPdm9X?=
 =?utf-8?B?TThLV010Y1h2ZTFXRHJMYW1vQ3gwV1YvZWpkL0xsSVpNbkZObkF1SGRqZVZX?=
 =?utf-8?B?ZmhBTkNNSk5SZEF2c05La1FkU3dtZENnQWI0eUFFcnNxVVgxdWNpcmRwWTMr?=
 =?utf-8?B?UldrSkE2Rkd6TmVWZE5GeHRFbU0yVjRqakwxeHRhQ3VpbFdZNnF3cjZaaEZ2?=
 =?utf-8?B?NGkxKzkxMTFBcDhRb1JIQ1YzMlFRSll1RW9mZTA5bFhPa1ZVRlJzVDJSU0lE?=
 =?utf-8?B?VFJYVFZ1d3p1VkZGR3dYdFExbkVZYWF0U2RYNGVEaW9mOVlVZkhqZWl0Q3pl?=
 =?utf-8?Q?4Ufv58wBptLMLQSHYRRM/0TmF9GeOQXk?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bHB2MkpodEJ2TDRVOVRMOW9ZVG1WTG5FNHR6aTRoajZIdzR4THlnQ3RiZUEw?=
 =?utf-8?B?Y2lGMDFieFRWenQ5NVRkbXErRnU5M1FwMG5HN0V6QlNNdVhNTkt2MzNJN25o?=
 =?utf-8?B?R3VwcTZqUDE1RFFwU3NreFp4aXBLZ3VkcWFYWCtLeUxZMHRpRExWOThMK0J5?=
 =?utf-8?B?bHVUY2IzRDlqemJKQ3ZpMjV3eUE2RWJRRUVEeDUzY1FsNWdhYkY5VjZKemdw?=
 =?utf-8?B?SVU0YkZCbTQ4aFJsOTM2aENTSThiOUw5a01CZ1ljUmQ4SEVmb3BtMmdodjZu?=
 =?utf-8?B?aU1mUnFobnI2Z2p1QXphYnBIbFV0dGNtWWVHd1JNNDlyYndEcGVkWEFQMi9Z?=
 =?utf-8?B?WXdJRE03ZjluOStITUNmZ0FFbmFMRDJidENmb205ZGRnN1FrdSs5ZTUxNEVx?=
 =?utf-8?B?UTJRMThxa1hmek9SNHBrNDdiOXNGelVtcHMxaHBKRnJpa0hTVmxDbi80eEpm?=
 =?utf-8?B?OVpuYktUZzZKaGszemZuNWZlZklyVW9CSnBBRWNnNFBvQVRQNTZpMk9kdWlL?=
 =?utf-8?B?NlhwbVdhK2Q2NzMvNXd3QW9RRndzQ0lSVHBLR3V0NW5EWG5vWXZFSE5jN0FZ?=
 =?utf-8?B?eGtLc1o1VEFlVEV0Z01rbVVyYWJyeUJyZ0JjRUJXUHF1TEhKOG5iMi9JODNQ?=
 =?utf-8?B?NXVZTm5naW9pL0R4N1lTVE1ST3Mvc0pFbXY4NFBmVWg0OVRKWHhaREJ5Ylp6?=
 =?utf-8?B?bHJqREFlRVp6VGJrMlRtNHRkS3hWOEhmM0JXVGhuMEhIRkx2dDJrMlJRZmJW?=
 =?utf-8?B?OXZMWWY0VGJMM01qQU0zY1Yvdkg1dlQ3WWg4bHVPRWl1cUkrRlQxVm1RQmJM?=
 =?utf-8?B?dTFKSk1KRGUrQXV1ZFhDamc0ODFUUTEvNmtZRTRTL3hsTHN6MzEreFNRMHM5?=
 =?utf-8?B?bFNTdk1yTEk5WjdLNDdVdUswMXZ4YWdhU3p4U0wwaW5YWnhpUThUbzQ3UVNT?=
 =?utf-8?B?OTVwZnR5RjBvQjJzdW4zdUdjRmZOTEZQbmE0cFE3Q09Td3hoUDNEckpXSnBx?=
 =?utf-8?B?RDZtV3hWeUhUZUY0RG9qdUZEdzBVbzB6MnIvUkt3Qnloc1ZnTWRCUEw3Z1k5?=
 =?utf-8?B?ZFBpWkZSQ2E5b3JtbWVJbXdlMHpkbmF3SHVjT0swYWJBMjd5M011cHBoY0Nv?=
 =?utf-8?B?VnpJbkJTazk1ODdLdmlmQW9Wa0lEWHkxc1Fsb0xIcmFnT1dXM2Y4aGgvTTNk?=
 =?utf-8?B?Q01CRm5YY0VZTGlRb2gySnhCTEw5UmJ0UjNrUkM4L25hTklvZWVhMFl1cVNP?=
 =?utf-8?B?eTd4RE5JanExdUpnL1ZoR1dUS2w0bCt6TXp6NmlFYzNQUEphTkNOOUM0ejAx?=
 =?utf-8?B?aVE3SmthcFFQa0I1bHQwcjFRdmRLY0tPeEp6UTFLM0NyNE9GbkpVYTEyT3Zx?=
 =?utf-8?B?Q3Exejg4MDRsak03QVZ2eHZDSWhpYjE3cWNxaXdXVXRwUHJHdWxtVU5Ka0dP?=
 =?utf-8?B?b0pBdExoa2xva2VJM2RnUXUwT3BsTTFLeFRrSkhONVVyNWlEKzlEU3piaWFG?=
 =?utf-8?B?blZ3QWROWnM3dDhPOFlvWEhnMVAzM3c0aFgvOTkrejlsdk1sbExuRC85TW91?=
 =?utf-8?B?NHNhcGFhSjh5Rll5VFZELzZrODkyc2NreDg1YWVBZFRCQ1JTVTI3aSt4bjdT?=
 =?utf-8?B?WlBBTEpkUGVFWUt2QzNoTVBDOGk3SzV1VEZqd0lpTDBBWE14Y0V0VG9JTkpQ?=
 =?utf-8?B?OXpYbmliWTFaYTZrZ2lncTdiczdoUGRvUCt3MEs5YzJySUFuOG5jRndjME1D?=
 =?utf-8?B?STBySWIwRVRCc2tpaGU0NnppMHo4cVR2a21NeHBJSHVlVGQ2QkJIZjRsMTI4?=
 =?utf-8?B?d1FYWFhNM1A1NS9hRmVTNjVSbHpkM2I4Y0RYYUlCSEsrSmRHU2wzNERKMWIr?=
 =?utf-8?B?bjJrUTIwdllPaHpFdS9YOE9lRU5NMnRQazZhb1F4RDl3Z25Eb21Famh2YVZC?=
 =?utf-8?B?cTBjNTF3UitraWtKOElaQk1ITEE2ZHVpdllHL1J0emM0dzNEb3RpTEVOdk43?=
 =?utf-8?B?L0prZ0h3MHB5elhBVkxiWUQycVBwM1FxMWhpbi9Qb2RkZmc3eTl4Z3BuMGZl?=
 =?utf-8?B?UW9XNTlrdmhCUUdINGtmTmZZWVJnOVpxQ09lRkJQRHJOVjc2dzhSTzg0bmF5?=
 =?utf-8?B?U25HNWtuZEdzRmxSWlVXSWF3Qzc3UXlmQ1E4bmlJWnFNYnYzd3pwN2NFaFdN?=
 =?utf-8?B?WDR2dkxmaE41WU8xaEN5bCsvd0E0aWFRZWRSRndXYU10QmlUd0R6bHJObEZq?=
 =?utf-8?B?c1pXM1dUVUZOWWRXV09EZUp6OXRlK25FakVwaWpTT1NaSlhadWZQbTJLR1Vi?=
 =?utf-8?B?ZkFGRW43c0o3NWNFN1dQOGJva3p0WXJHT1g4SG1hUnFWN3pLQkRPdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 14e4a09d-b155-4465-984d-08de3e6246b3
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 18:21:34.8564
 (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: BI09m+wT8Tr4WwmzP2YLG9LUfmZdnOldtP6bUFUQzK+i1M1xXycvYdeA+bPnhsvDv8UWn6LVXvgkqJ0uWAGRr2ATpAD1BGeqCGv30QZZCGI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR03MB7444

On 18/12/2025 5:28 pm, Oleksii Kurochko wrote:
> As {alloc,free}_domain_struct() are used only within domain.c,
> they can be declared static and their declarations removed
> from xen/domain.h.
>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

> ---
> Changes in v2:
>  - New patch.
> ---
>  xen/common/domain.c      | 6 ++++--
>  xen/include/xen/domain.h | 4 ----
>  2 files changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 92fc0684fc..7509dafd6f 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -690,6 +690,8 @@ static int domain_teardown(struct domain *d)
>      return 0;
>  }
>  
> +static void free_domain_struct(struct domain *d);
> +

Another option would be to move them both up here, and avoid the forward
declaration.  It's a bigger patch, but results in domain.c being
slightly less complex.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 18:35:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 18:35:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190156.1510776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWIqJ-0007RF-U9; Thu, 18 Dec 2025 18:35:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190156.1510776; Thu, 18 Dec 2025 18:35:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWIqJ-0007R8-R7; Thu, 18 Dec 2025 18:35:15 +0000
Received: by outflank-mailman (input) for mailman id 1190156;
 Thu, 18 Dec 2025 18:35:14 +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
 <SRS0=6E0R=6Y=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vWIqI-0007R2-OX
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 18:35:14 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 453aa748-dc40-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 19:35:06 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA2PR03MB5803.namprd03.prod.outlook.com (2603:10b6:806:116::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.8; Thu, 18 Dec
 2025 18:35:02 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9434.001; Thu, 18 Dec 2025
 18:35:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 453aa748-dc40-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gCX5zy37EZpaeZKqKC1vDsXsjqgWJ/83frrgGFdpGG+xfpcUgVKvYr20dLnvAmSjprDxBzUkFMdQpAxyZqjS77BNQrdyZZpduTCHZpd5SoaL6JOKEk49KDR3yYeXJTJgV6Bft+IRsWVn5SuR/tfnIj9t93BgG2tWE3TbVSJIwspUBIgpX4Vgq0d8+w3rXGIJZDuie87QyN0l8O6oo2NZ88mD+b7iNJ1Zra5bnyxjVYAuimxzoqRLJpb8oalod1naT1+xNCizkU5/4Z4lvI8oN+ZhIKO9MUsk4ixjm6vZrDOspSI6bNAujWt1iaFt4uAUPNGR5KqVIY7JxHeWJPjsEQ==
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=I4u6/yMZAyGVb2ODTm32SHrOl5NZ5ws1xt8qRPWyPuI=;
 b=hs3/Zy6QW2oqReBkFUM1mCUBV+G4ESfd3SmjX9xuvzJ6b/q78XBqB4EqJ+assoSTAJ/rOFVs2EncQBTuDQDqiLO/F3ph4i0GZ1lPKFVTB9SNwTREUsb06INNab5mCAuAjRHSxYXq4bhISpF+P8Am1f8X3qA0F55zHFkNluoyE0jvQBRwh6R2xP9Q/BGYQJiMLElDMx/KOj1p6ZExyyDXlkZHqlty751wtSjdb97SPKOwdLihVUO6Hg4JpmjH/AwgfVJI/I8E+F/ciosV8DZCn+Ga2FLCzPTsRejsio6cQekbFdhROo+ddYJBH3I5TO+raeZl2H+BfNqvD1RKeBlccQ==
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=I4u6/yMZAyGVb2ODTm32SHrOl5NZ5ws1xt8qRPWyPuI=;
 b=o2ItlTzUB5tSNfkR6b0+uqf1axsmFJTBQ1ciu6a+0DbnGIedW9BhEJDHBsGSdY7PM0bkIAJHeDlLPuBIBCYUu4u+P7KGAdLuS4tUPesoTLq2JSu208iVFOp05kfvg8NuVvBEqmgRurtNRldm09dJhq79TKw+2xrw2iPY/8LtbUo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <803b31e0-c696-48fc-bed6-3d62ed4563fc@citrix.com>
Date: Thu, 18 Dec 2025 18:34:57 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>
Subject: Re: [PATCH v2 3/4] xen: move alloc/free_vcpu_struct() to common code
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
References: <cover.1766053253.git.oleksii.kurochko@gmail.com>
 <099753603c18bbba0db702746d394c2e77e15a4d.1766053253.git.oleksii.kurochko@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <099753603c18bbba0db702746d394c2e77e15a4d.1766053253.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0381.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18f::8) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA2PR03MB5803:EE_
X-MS-Office365-Filtering-Correlation-Id: 64eee408-a4e5-42e5-f9a8-08de3e6427e5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?KzNEd3VVSVlrUm9oVVJRRkdMK1ZscEZ0LzdEajFOanlLZGFSbXhTaGcxdWV2?=
 =?utf-8?B?eFRGZHV6Q2o3ZGNSbStqRDk0eXhTT2xRYUY2Q21TcnRGaVpvNTBlZndQV2pK?=
 =?utf-8?B?Zmg1WWZJWWJpeHkxSWRCcGJFaURWM2prZzZnbkFpMnl5aTA4K1VWU1VmU2Vs?=
 =?utf-8?B?dk9tZ0ZkZ2NJSU9pMGg1SUJRcDh2bFp4enplU0FUdmZOMVphSzBYa1ZtRXVT?=
 =?utf-8?B?d045L21uUmExV2tVc2RVV2tyTnlGZ1QwbXZRbkZiNVlOYm9NR0RlMUI5Qlhy?=
 =?utf-8?B?dHRpcFBSZXhUdkpiTldHVEc0anNXTjl6eXdUeUs3ODcrUE5LeFZ4ZTFRTmpB?=
 =?utf-8?B?K1pFMjRucVlobnZkT3RsbGRyOUMzQWh4VHNvdklOVlFRb0hSdFFpUkZTb09j?=
 =?utf-8?B?bGZ4emgzTEo3eWNJQnNibnFRRkJzWWJCWWlwQllwVWswTEkvVUQwREJvZlZR?=
 =?utf-8?B?Q2VmVndsZldiVXI2RHRxN053T3dQREY1ZmszdVZpQkpxWmp6OVkycFRjYVFl?=
 =?utf-8?B?ZE8wUmtwUGRNQVJ4UVVyOFpGYW5rS3k0N1hIR2lvTDRYeFczTDAvUUU2VGZG?=
 =?utf-8?B?OVJSMEtoU3J0SGFxR1YwRlNYbnBaNEZJdVNQajNqcFdORURQRVNRMmFxS0hZ?=
 =?utf-8?B?MDZyRmZxS3lKZ0h6cWEzdHVmUmR1WDBQKy92djk4ZGZNRDhxekRUUW4xc01v?=
 =?utf-8?B?WVFDaUhKY002dldWeFJzYjFyb3FUNFkwT3FrWWNpZ1BvMGJLVVQwc3hRNjJh?=
 =?utf-8?B?eEVFb0hVSC9sai9yd0VrRUlyMHN4djhhUkxrOU9KdTZlY05GSVVwWFlxSVk3?=
 =?utf-8?B?ZjFIMndVSHFYeTIxd3RaeHMreFFRR2laelNOZm1vRWRNcUdwYjdNZkp4VHVO?=
 =?utf-8?B?TnhzZXFNRkxEZk1tM1ZDbGlzUG9jU1RJek80T1pHcXM0b1Z2QUZPd1Q4Mkpa?=
 =?utf-8?B?QzVaa0RQL0F3ZERZb0t2Y1E0cWdMc2grZ2dlRW9FNk90V1lSbG41ZnpVSzdD?=
 =?utf-8?B?TTVUWkpkR2NsTWdLZERldVJ0ZU5uakJtWWNxK21wWFlmOVR3MGNIYzB2T2gv?=
 =?utf-8?B?NHIzczhEMkR6WVBrNGtPbzBwZ3I3THJ5UW1ZNm1jOUR5STBGMzUxNndqNDk2?=
 =?utf-8?B?U0llOWdRVWl6ZWFlRUw4K2tSemRSOWdRMDJUSytSekppUmNEaHQ3SDBtSi9s?=
 =?utf-8?B?RExUOGNrNEd0YkJzZnlVRkpOWmVsSXJLN2U1Y1ZuOUR5UHk4dFp6REd0Zlp0?=
 =?utf-8?B?SXd0NksybkdwcEpjeWlURXJIM0o4M0pkODFwQmpWdWdnWTA2NWdOd0x6Q0tE?=
 =?utf-8?B?K1pwbHREUFZKZ2NDbVpHenlKNTNSRnNVQzljaTJXZE54MVJ6OWhOdlBwNWV0?=
 =?utf-8?B?dDEwN3JScU0yeitqZTFxQW5iSTVlTHNRU2ZvUEIrSnd3aVFOeTRsRFlMV2RX?=
 =?utf-8?B?V0hURWRMaXo3Wk5FckRWK3Q3Z0h0UTh2WEwrQnl1dmJRZHZPVE9sWnE4Y0hU?=
 =?utf-8?B?djlERFBJeGJWTUdIcDk0RmNSanU0a28yNkJuQXR0NWpuaDZNMm9vMEg3WE4r?=
 =?utf-8?B?OStqdC9mdFhoZWsvRE9kRlpsckxSa2E1dVoyNEt0MnRua3pyRm9sYnczM1ly?=
 =?utf-8?B?cVlnTU5WVWRrSEVnMldOOVljT2tPOUZBK3lTZFZYeTNIbVc0OEN1VFZHWGtX?=
 =?utf-8?B?amRaUmc2czZwSmcxKzZIZWxqdjJzUkdJMllWemNBaEg2cUovVkRON1pTYkFl?=
 =?utf-8?B?djZTbkM1UkFGOXVEZ3ZjY0psUE9rTTFRUjdNSjcvQWhjT3JnUDgydEFMQzFh?=
 =?utf-8?B?bzRuZlc2c005LzhEOEhVaVozNmhxYVpZd1l0WS8rdkRyM29KT2xhbzl2d0Iw?=
 =?utf-8?B?b3JEL2JacXpzeERlK0tTUkZXSHlad2hEc2xPRmxwMTdmSGc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?T0lnem5pN1hVVTZOdGNKYWdqMURlYjBJVDVYRFJBa25Wc0ZKdlpmT1JFQUlK?=
 =?utf-8?B?TEFEQmpwNm9IRk91dkZ1ejZVOUNPblM0Mjd1OXI3blo4OUg4M3lOYVhLTW1r?=
 =?utf-8?B?RnlYZzV0aTJvb3VPV3lEd1hnQ2hJOVdLZ3V5UjNCL0V1VTRJejZSQ2tXb0JP?=
 =?utf-8?B?MWE0MnI1S0FRMGg2TG51QnJvQUNsQVZqOUUvTjBIYlk2SXk0YVg4L2ptWlh6?=
 =?utf-8?B?aVcrTWQvVGNzTjlkdDBrYjYzTTNiZkRUa0gwOTd2R2Q2WlByZGZmeWpteWZk?=
 =?utf-8?B?aUw0Rnp5U3B3a0I0Z2hkRENka3ZxMVRFWGM0MUp4VEg2dGg4RFoxcFhybG5y?=
 =?utf-8?B?THM0aHJqVW9CNERYTWkzVVA4VkRFZVBCSk1Hb1hIdW5hc05nSk5LWkV4cEtl?=
 =?utf-8?B?RDFEbWQ3WmhERW1nMUkzSWZNZTUvMGlPSFZ1VHBNdllaV1FTVU42akR6N0lY?=
 =?utf-8?B?L2ZhbVRHTFA4V29mTGhnMzdDVVNjdmRMYnI4eUlKVTV0NDZVSy9TQU95Ukpl?=
 =?utf-8?B?M0dEcWorbnNhVHBpV3AvZU8rSkZjRk5qYlRQeVIvbFcrbERvbWJwMWtyZGor?=
 =?utf-8?B?WHkrd0lJTVNoVEdpbkZic3VuT1FPUnFWNE1KU2NhYi9Ed0VnWWdTTFpEaThJ?=
 =?utf-8?B?UitiMUF5cHNQTzh4bUkzZGljWjc0NGJ6UUt2RVhXaHgvYzRsbWhramR1cVNM?=
 =?utf-8?B?aVk2WWdNSEdJdzZoT3hmSnFJY0c3UGRhNzBIbkQ4OGcybXhScHU1Mm5WRU54?=
 =?utf-8?B?em9RSmJVbVJMTnNUNGtIb2RnSGR4V0Radi92MlV3WGZRUjZMN1lXb3NMSFR4?=
 =?utf-8?B?Vjcyd0VRM0R5L1JPYmxhSnZOdHhHYnJVYnd6d3g5ZWFTRnBOU1Jxeis4eDcr?=
 =?utf-8?B?d3JPMmY2VnR1YmcrMjdXMjN6Z253VjQrRGVtcWdlR1B6UlhIbXhuVmpJaUNP?=
 =?utf-8?B?ZmZhMXp3U1dtR0pQTE1oSUlsa2lzZXBiRDhCOTQ4U0hOOTQzWVc1WjJpS3A4?=
 =?utf-8?B?N29xMUFIUzFNRWR3eVM3WHlZYk1WNU55ZC9hT3NnTmlYdW9qeXhSR0pCeVA2?=
 =?utf-8?B?akxuTVR2MnBsZXNOaGloUnFQVU9pMHZrdmkrZklYTWZLS2R1cXdnNXI2Vldw?=
 =?utf-8?B?Y2IzTnQrejJLdTJJSHhmSEI5RWhwK0Z3VS9hd3RSNVloRmJwTWVIR3RWRXhh?=
 =?utf-8?B?MUpJSVhKNmhwaFQ0WTBjOFg1Qk1kMWpyUUxsQlM3NEdqNHBnKzVZUjdycUtq?=
 =?utf-8?B?Y2F4cXBhUlRRWEQvZGF2UlRiemZaTEFJSmxQVDJ4dStUUU50cXp4ZkZzQno0?=
 =?utf-8?B?dmU5eVhSL3ZzUm1tQ0E5bFV5MTd6OWttYythSzNKZ3pmd0R6SXZIT3NwSWVP?=
 =?utf-8?B?VDN5eVg4cEEzSk5QemFiS3VZYVhQNDNOTHZhMDVRMkN1dCtYNDYwd3o5eXV6?=
 =?utf-8?B?YnZoaVZNS0hMbmRaeTdHTy9saGVRR0hxUVhtWnM3YUl3Z2ZjUWdubmhmREh1?=
 =?utf-8?B?ZkJMK010d3NHU2RKK0hpaUpEUndjR2diVkxPWU8yajZJZ0l4STlzSHVrM1pM?=
 =?utf-8?B?Q0lGZjNVNm9rMzRuZUozeEhkUXltVzh2dVBGMllad0JrRitxSkVxempSMkpa?=
 =?utf-8?B?bWc0cjFxVjl4bzZucVFpdTF4TFdhSGRGc3NlNjZ6R2JydEhKUXp4ZzRpTGY0?=
 =?utf-8?B?WGxhMDJFUXhHUVFHMGw1S0NkMUpMOEZRKzVieThpMzdJRDdhSCtYTGJOMkdt?=
 =?utf-8?B?WG5JVnQ1dW9jNG5ZMjgwWU9kK2k3b1JoTlFZZUsrSHB5N3g3VDJVQ3Z3c0ho?=
 =?utf-8?B?eFNSK2publNpSmJXa1FNQmhTR216TWJ6eFZmaEYvRjRUSFZudTJZZi81SldG?=
 =?utf-8?B?UDVsclAyYjM1dlpXVFZGbzdwUUZ6bW84SDN3MnFEZk5EUllFYmRlZWxyVjQx?=
 =?utf-8?B?MnJqRWFRV28ycFNmUm9BWlBPS3Z0NHFMZWdCVm03VmNIMUxReGpaQjh4VVRG?=
 =?utf-8?B?dUhOL2Z4VklESk5hSXJ4ZHZiYkdidW1tWDhpODJLcjZ6Znp4d3ZDRGtwWG9H?=
 =?utf-8?B?d1kwSnlsbFV4VkZnRnRYdWY4KytXc2xRb1VIamVVMmM1MGlJUlRldzJHQTVL?=
 =?utf-8?B?WXpZWG9La1RuRGZQZ2prS3BJMmZreGpmUzBXNXFUY0t4K21kczU2Ym95WE9F?=
 =?utf-8?B?SE1UNjVZSm1pNTlGaFdvK2I5WUEvZ2NTZzk0S2FZaVdaQWU5cHdDcW9zaGJq?=
 =?utf-8?B?UG5paE9TY3UyQTAvaUQ5WVpoa1E4WGdGYXlvdFMvdWNTdHc4ZStHV0hpa0NU?=
 =?utf-8?B?WFo3TC9uaitYcnNWVkdqWjhMa1lsTTdxZTFPcHFHYWxVUnM0MW1jQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 64eee408-a4e5-42e5-f9a8-08de3e6427e5
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 18:35:02.0889
 (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: GRfM4tK/4YhwpU9ODyvE5zbAtzw1Rp4X5OZEGJIsTXlc1bxtnmUKtNvq2gB1HttIyMddLPWyf4UEROCE68kl/oTDypGMZv9qCGuM0zhCcuM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5803

On 18/12/2025 5:28 pm, Oleksii Kurochko wrote:
> alloc_vcpu_struct() and free_vcpu_struct() contain little
> architecture-specific logic and are suitable for sharing across
> architectures. Move both helpers to common code.
>
> To support the remaining architectural differences, introduce
> arch_vcpu_struct_memflags(), allowing architectures to override the
> memory flags passed to alloc_xenheap_pages(). This is currently needed
> by x86, which may require MEMF_bits(32) for HVM guests using shadow
> paging.
>
> The ARM implementation of alloc/free_vcpu_struct() is removed and
> replaced by the common version. Stub implementations are also dropped
> from PPC and RISC-V.
>
> Finally, make alloc_vcpu_struct() and free_vcpu_struct() static to
> common/domain.c, as they are no longer used outside common code.
>
> No functional changes.
>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in v2:
>  - Rework alloc/free_vcpu_struct() to work with only one page.
>  - Return back the comment about the restriction inside x86's
>    arch_vcpu_struct_memflags().
>  - Drop MAX_PAGES_PER_VCPU.
> ---
>  xen/arch/arm/domain.c             | 17 -----------------
>  xen/arch/ppc/stubs.c              | 10 ----------
>  xen/arch/riscv/stubs.c            | 10 ----------
>  xen/arch/x86/domain.c             | 17 ++---------------
>  xen/arch/x86/include/asm/domain.h |  3 +++
>  xen/common/domain.c               | 20 ++++++++++++++++++++
>  xen/include/xen/domain.h          |  4 ----
>  7 files changed, 25 insertions(+), 56 deletions(-)

Much nicer.

> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index 7632d5e2d6..68c7503eda 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -493,28 +493,15 @@ unsigned int arch_domain_struct_memflags(void)
>      return MEMF_bits(bits);
>  }
>  
> -struct vcpu *alloc_vcpu_struct(const struct domain *d)
> +unsigned int arch_vcpu_struct_memflags(const struct domain *d)
>  {
> -    struct vcpu *v;
>      /*
>       * This structure contains embedded PAE PDPTEs, used when an HVM guest
>       * runs on shadow pagetables outside of 64-bit mode. In this case the CPU
>       * may require that the shadow CR3 points below 4GB, and hence the whole
>       * structure must satisfy this restriction. Thus we specify MEMF_bits(32).
>       */
> -    unsigned int memflags =
> -        (is_hvm_domain(d) && paging_mode_shadow(d)) ? MEMF_bits(32) : 0;
> -
> -    BUILD_BUG_ON(sizeof(*v) > PAGE_SIZE);
> -    v = alloc_xenheap_pages(0, memflags);
> -    if ( v != NULL )
> -        clear_page(v);
> -    return v;
> -}
> -
> -void free_vcpu_struct(struct vcpu *v)
> -{
> -    free_xenheap_page(v);
> +    return (is_hvm_domain(d) && paging_mode_shadow(d)) ? MEMF_bits(32) : 0;
>  }
>  
>  /* Initialise various registers to their architectural INIT/RESET state. */
> diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
> index 7e5cbd11a4..576f9202b4 100644
> --- a/xen/arch/x86/include/asm/domain.h
> +++ b/xen/arch/x86/include/asm/domain.h
> @@ -15,6 +15,9 @@
>  unsigned int arch_domain_struct_memflags(void);
>  #define arch_domain_struct_memflags arch_domain_struct_memflags
>  
> +unsigned int arch_vcpu_struct_memflags(const struct domain *d);
> +#define arch_vcpu_struct_memflags arch_vcpu_struct_memflags
> +

Given the single caller and simplicity, this would be better as a static
inline, except it can't yet for header reasons.  So, instead, I'd
suggest simply:

/*
 * $COMMENT
 */
#define arch_vcpu_struct_memflags(d) \
(is_hvm_domain(d) && paging_mode_shadow(d) ? MEMF_bits(32) : 0)

This form does double expand 'd'.  The more complex form would be to
match
https://xenbits.xen.org/gitweb/?p=xen.git;a=commitdiff;h=c37bcb35f928c81cbeea7c05f86b6779f8a2b8c4
with a local variable.

> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 93c71bc766..92fc0684fc 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -392,6 +392,26 @@ static int vcpu_teardown(struct vcpu *v)
>      return 0;
>  }
>  
> +static struct vcpu *alloc_vcpu_struct(const struct domain *d)
> +{
> +#ifndef arch_vcpu_struct_memflags
> +# define arch_vcpu_struct_memflags(d) 0

((void)d, 0)

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 18:56:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 18:56:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190181.1510785 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWJAr-0002MQ-JG; Thu, 18 Dec 2025 18:56:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190181.1510785; Thu, 18 Dec 2025 18:56:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWJAr-0002MJ-GN; Thu, 18 Dec 2025 18:56:29 +0000
Received: by outflank-mailman (input) for mailman id 1190181;
 Thu, 18 Dec 2025 18:56:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XN7D=6Y=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vWJAp-0002MD-J2
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 18:56:27 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3e3fe0f4-dc43-11f0-9cce-f158ae23cfc8;
 Thu, 18 Dec 2025 19:56:21 +0100 (CET)
Received: from BLAP220CA0029.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:32c::34)
 by IA0PR12MB8087.namprd12.prod.outlook.com (2603:10b6:208:401::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Thu, 18 Dec
 2025 18:56:17 +0000
Received: from BN2PEPF000055E0.namprd21.prod.outlook.com
 (2603:10b6:208:32c:cafe::1) by BLAP220CA0029.outlook.office365.com
 (2603:10b6:208:32c::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Thu,
 18 Dec 2025 18:56:17 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN2PEPF000055E0.mail.protection.outlook.com (10.167.245.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9456.0 via Frontend Transport; Thu, 18 Dec 2025 18:56:17 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 18 Dec
 2025 12:56:16 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 18 Dec
 2025 10:56:16 -0800
Received: from [172.29.241.99] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 18 Dec 2025 12:56:15 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3e3fe0f4-dc43-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aCCszjQ0sEp8iB3Gb9T60APAwOu7KuJxMT/B1OGcz25+eUPCVY6+/KeE1Snbuie9xq+zyKztDCbIz5Mc5AOvpTzirmEybc5xJxKedOl6mcUjD5a21zdgGTuK1g8w3v09YwFEfLP2S4xQdOdu2Uo7dv5gSncoawiegZcpQozQQsfQV04u9+fNyIk6nlwyHm4JKSgTxuEdJ6O3MW9KTVEsAitxYOSsWULFoU8kwg1LRVRLDRkbxrAceBd92Tp/Z1kKI9pjDK5SLJyuotIQYLo9GGA4fzwQpyCvCLaikquADeED8gSZHuWnw7CYITFzEUisQm/C6Sh50YQroj8XXfjEsQ==
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=6NES1cW0obEOxFQUmxvTTOUgcIHb7RVhFQcusDAKBGg=;
 b=Q1/HiXODeTs360uy8RfM2iq4g5ftEcpO0kPXOOi8nWUix8tFq3QQMcP6T/yeaIoFyDAaZFdZmfIiZT2Im0eCXnFj3guVad4zmRsZrbmwm58GSjaG0YGYA7OySQPFLDvAJHlcBLlWMpbM1Z0CAj8WL0/8Qr7zK45H7x1UWn7bs5zBmSZIva7GygvHfwxyLKYXpSxlZ1Nce4pF62CoytfWi6O6iGMR4Diq+O+ya5k6mFDsVl7eBCPVrq8osi0TrWs2f9s4VfhIt35l47tpVDcrXo0532OL6yxBlCHdJFNJGhvH3BvTma3bd22hckxegs3XTMSYx/WiQSLtyZy3yH3ESQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6NES1cW0obEOxFQUmxvTTOUgcIHb7RVhFQcusDAKBGg=;
 b=BZBYV8aMp1v2BSyyfiNHa8YdGhnqyAfUkvGY3W7ucHD7lIiqkOf5vp5daIFM3bP1FVLvPF710NBJn6PIN2md6IxIHOBXpro7i1QIDzIlFxgIo9S9qTp+0224JJjYuS3pcEd0zZvp6ah4mzl7DV1CWjHEinBhax82fEqkR6O822k=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <b3e23e9d-e18a-4412-88c9-3fc34de4f11b@amd.com>
Date: Thu, 18 Dec 2025 13:56:22 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] vPCI: avoid bogus "overlap in extended cap list" warnings
To: Jan Beulich <jbeulich@suse.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Chen Jiqian
	<Jiqian.Chen@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
References: <26294a6d-e99b-4290-988a-da7b7b838651@suse.com>
 <e1fe4599-02e2-487d-a2c5-bc912fe8646e@amd.com>
 <c5f210b5-f321-4153-a508-1abf5fc43644@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <c5f210b5-f321-4153-a508-1abf5fc43644@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000055E0:EE_|IA0PR12MB8087:EE_
X-MS-Office365-Filtering-Correlation-Id: 20564625-ce83-4e4a-a879-08de3e672000
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700013|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UU5jRGc3SFpzR2tNd25wbWczYUJEWmFSVVlpSWg1aSt1SENsTThJaDFlMHR5?=
 =?utf-8?B?M0RBa1hCZXV0L3pWb3F3bGlsbTJuSytKdy9EaG1rVjgxYzYzVGp6TE5hRlh6?=
 =?utf-8?B?Y0FZNTBqUnMvbUdPeXVMdXIzckt1SGlEYWxRdkpyQUp3MCtCeDVCU0ZvbFRX?=
 =?utf-8?B?OWtVYVFrQ2prdWU2TmtCSzVNZ29VdlhRbml1REtnaGxGYXNDQ2RGMWloTzlz?=
 =?utf-8?B?SktQa0xNbGRwNFBGcEdQU1RQTm5WYjVFallnVk51YlZ4MVZYTDRGLzUrOFhU?=
 =?utf-8?B?T3RqWlJFYjh0N0M3M0pGMlJ1V3llWDBzeVVNcXBLdGFSa2NwYlYxWDZvM1pG?=
 =?utf-8?B?ajFLMVNNYlZneXhpZVJkZzBNeXM3Y3YzRHE3U0t6T1BVUlFTS0Y2cmwzcTFn?=
 =?utf-8?B?NzFHamFFeUthT3pjQnBpaCtBOXBzSkFNUW1zb2podlFESmVNbzg5Z1JWRldh?=
 =?utf-8?B?Y2xwejhvVFdwNGFpdHI0U2xkNkEyNEhXKytOazJKaFgvaHlqTmZwcnFEckpz?=
 =?utf-8?B?QVlDNE8yQy9jQjdSeU1RRGZzMXZldXhvQ0lVVWMxUThKZmhKRHRIU3BtdGZu?=
 =?utf-8?B?YVQxV2M2eFZpNjhGaE54d1k5cUp2emxJSzFIbVRaYlB4cGREK1ZBaTFtTWhW?=
 =?utf-8?B?YlJ1ZEFKZ0lLenVsaHkwRlZvVnk2NFM4VkZYWnZsbkhkTkFPTDVoTHdpZlZM?=
 =?utf-8?B?eGgyMnN3YkVzVUJPZmdUQms5NjRZai9MMmZUTXZFRlRjUm5FQkNGbDZ3N3hj?=
 =?utf-8?B?aW4zcFkyd09VNVNYWkV6R0I4NlVBUmdsTld2bDV5dlRyTXVhc24yK2VzS0Fv?=
 =?utf-8?B?Zy9RQzZtQklaZ252MjUyNnRBRVJjSkpjQTZXT28xRDA2YkJkWnA5N2YvR2Fr?=
 =?utf-8?B?S2ljYjJ5bGxIQlNHTzAxbVh4V0dIaWZBZllLU05GSXE2WGJ0MkJmd1dCVDVD?=
 =?utf-8?B?M21nQVdvVWlVU3M3VW83b2tMSmhmTkRxTzZvdGt4MGkyV1laRWVJSjZCV3VB?=
 =?utf-8?B?RTNFUEM2TUdTRnlLM2tKL3pUdUR1dVJKSmRZbk1NV3doNmMySHJ0NEk4REFO?=
 =?utf-8?B?eGQydU5rT29DTm9FOEMzeDFUcTJUUzVqVGc0VFBVVm1mYnNPZ3RTc1FyTENF?=
 =?utf-8?B?bmZOQWw5TUZFRkQ3TG1zc2JpVEtxQTlIWXBhTk9vbDEwb21kT1VCOFFJc0Zk?=
 =?utf-8?B?b0RMVUxTOGpqaE14cTNxYWdSTW40RXV5RDVqRXhFbVFtWUlQeFBjb1ovdHpz?=
 =?utf-8?B?eCtuZWxYeENTY0ZIbW1hYjVDcFlDS0QwZHJXb3VZQ1JhUFRvWkdVR0NQK0pK?=
 =?utf-8?B?MjBzWGQ0bTVoaThUTjR3NXQxcjg5d0pDbXNlVVM2U3ZxZGNMOWl3am9HMmxQ?=
 =?utf-8?B?R3FJdWxUbjBjU0xSZ0crUlIza2tWNTRDQUUvUEFudXZ5UTFZZFJMOHpHM0RM?=
 =?utf-8?B?VGNwd2psM3RwWWNwYUl1RXdnNDJYL3VzdzZjOFlyK0FvYkdEMDZNMWpmTDAz?=
 =?utf-8?B?Wm5NaXd4bG5kWTRkVjB0NitueXpkTmg4WE5TL0tXMG54WXhwMldJOUlaNjd2?=
 =?utf-8?B?OVR0ZVpqalhuNGROSGxaVEE4bnhxY1NEMEY3VUppUysvTFRpTmZNa2Z3K3Ni?=
 =?utf-8?B?ZktCZ24vb1NQUllOS3l1TFBXQ0xldjRDT2I4bmhjSTQ1U3dXNjJYeEVNaFVX?=
 =?utf-8?B?a0hMbnVLS0RNUHlubDd5ME5MNHcxZ0tJYXZsQm9jU1R3aTA0dk8wQml2WUpZ?=
 =?utf-8?B?d1lma2p1bjNIR0t1aE9LS2twSElDQ3I5TmVJenA0bFJXVTNVaFgzNGlPQldZ?=
 =?utf-8?B?WDNTR3NtU2RjUCtxeUJqdkx5R0tZSnRsY2ZEWnd3bGs4OVdZSjN6Qlc4bGsx?=
 =?utf-8?B?dU53UHhCcHpCQVBoUzZXbGhYTE0vbGZML0ZqbnV3YzhqbTZZN3F1RDV2ZG1L?=
 =?utf-8?B?SEVwSVo4bVl1VVVROWIvZTdWSFdubzhzV0k4c0RaalcxVjB4RHdaQllEZG9P?=
 =?utf-8?B?VlBXeHZ6b0hHMXV0UWlVb2grTE5rcmMxN1VFWEVuV2RVeHgzaGUrTUs2RGhQ?=
 =?utf-8?B?b2R2eE5lZVVPZjVDbDRVV1B5N1RGSjY3K2RxN0Q2RVNGT0psZE5rbXo5Y0J6?=
 =?utf-8?Q?K5bY=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 18:56:17.2232
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 20564625-ce83-4e4a-a879-08de3e672000
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000055E0.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8087

On 12/18/25 11:14, Jan Beulich wrote:
> On 18.12.2025 16:37, Stewart Hildebrand wrote:
>> On 12/18/25 02:56, Jan Beulich wrote:
>>> Legacy PCI devices don't have any extended config space. Reading any part
>>> thereof may very well return all ones. That then necessarily means we
>>> would think we found a "loop", when there simply is nothing.
>>>
>>> Fixes: a845b50c12f3 ("vpci/header: Emulate extended capability list for dom0")
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>> ---
>>> This is the minimalistic change to get rid of "overlap in extended cap
>>> list" warnings I'm observing. We may want to avoid any attempt to access
>>> extended config space when there is none
>>
>> Agreed.
> 
> First - I realize only now that I should have Cc-ed you on both vPCI patches;
> sorry.
> 
>>> - see Linux'es
>>> pci_cfg_space_size() and it helper pci_cfg_space_size_ext(). This would
>>> then also avoid us interpreting as an extended cap list what isn't one at
>>> all (some legacy PCI devices don't decode register address bits 9-11, some
>>> return other non-0, non-all-ones data). Including the risk of reading a
>>> register with read side effects. Thoughts?
>>
>> I couldn't find any mention in the PCIe spec how reads of extended config space
>> should behave for legacy PCI devices. So, you're right, reading all 1s may not
>> be a guarantee. The PCIe spec seems to imply that a PCI Express Capability is
>> required for devices that have extended config space. How about adding something
>> like this at the top of vpci_init_ext_capability_list() (untested)?
>>
>> if ( !pci_find_cap_offset(pdev->sbdf, PCI_CAP_ID_EXP) )
>>     return 0;
>>
>> This would seem to me like a reasonable effort to handle the situation
>> (according to spec), without the complexities/quirks/cruft that Linux has.
> 
> But it wouldn't be sufficient. Host bridges are special, and PCI-X also
> needs handling.

I see. Perhaps we ought to introduce some form of a pci_cfg_space_size()
function in Xen. pci_find_next_ext_capability() likely could benefit from such a
check, too.

>>> The DomU part of the function worries me as well. Rather than making it
>>> "read 0, write ignore" for just the first 32 bits, shouldn't we make it so
>>> for the entire extended config space, and shouldn't we also make it "read
>>> all ones, write ignore" when there is no extended config space in the
>>> first place (then in particular also for the first 32 bits)?
>>
>> Hm, yes, perhaps. If we simply omit the call to vpci_add_register(), it should
>> default to the "read all ones, write ignore" behavior.
> 
> But it doesn't right now, unless I'm mistaken?

For !is_hardware_domain(d), any access that isn't explicitly handled with
vpci_add_register{,*}() will default to "read all 1s, write ignore". See
vpci_{read,write}_hw().

>>> --- a/xen/drivers/vpci/header.c
>>> +++ b/xen/drivers/vpci/header.c
>>> @@ -839,6 +839,15 @@ static int vpci_init_ext_capability_list
>>>          uint32_t header = pci_conf_read32(pdev->sbdf, pos);
>>>          int rc;
>>>  
>>> +        if ( header == 0xffffffff )
>>
>> This constant should have a U suffix.
> 
> Oh, of course - thanks for spotting. If we go the more sophisticated route,
> this would disappear again anyway, though.
> 
> Jan



From xen-devel-bounces@lists.xenproject.org Thu Dec 18 21:35:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 21:35:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190266.1510795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWLe5-0005Pf-FA; Thu, 18 Dec 2025 21:34:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190266.1510795; Thu, 18 Dec 2025 21:34:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWLe5-0005PY-CZ; Thu, 18 Dec 2025 21:34:49 +0000
Received: by outflank-mailman (input) for mailman id 1190266;
 Thu, 18 Dec 2025 21:34:48 +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
 <SRS0=6E0R=6Y=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vWLe3-0005PS-SG
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 21:34:48 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5f3346c7-dc59-11f0-b15b-2bf370ae4941;
 Thu, 18 Dec 2025 22:34:46 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV4PR03MB8233.namprd03.prod.outlook.com (2603:10b6:408:2e1::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.8; Thu, 18 Dec
 2025 21:34:44 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9434.001; Thu, 18 Dec 2025
 21:34:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5f3346c7-dc59-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FZ1IrAEqkrz+DpgDK4xOL1ZcexsQLywfmyd66+nuO9kGXMMvzEOkN6Cq0Sa7v/onBGXUpFcrtkI4kQHbOZWr62QycYzm4jQjbCwTByi8IljZj/LkzqIcGjFZhqutNtrQFEVdbpnZx/B4dga5vs7WiSN2YfTlcNHZxC292vKJe6xyqh4o/S7PZQBso447crFWBaNOeG4BnLOJReuk7kFW3GN8D867CjmUrXeTr79Ful4W7WJHGbKptI+cabCZFCGV5kUHnmwq6K6LfLfDdUEXJX0rRnw3FcobReOSDa4OOE1+cK7a82itYHxnKSAX2npHeL2lDH5nqvgV74kv0gARhQ==
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=JbMx2D5RQ+AK0UWiTpeI1pqmKfhiWejFXP1z+JCN778=;
 b=WsF9KFwLJyFHj5szLLCXEJk7yCVggV+zTMUysS9wn8tb6xUWKFNER/X7BCXM0eY0px2C3cgEo+DoqKDZhk8zlStDGcWCD/dZr2d61GZBvkHFARCpRo8OtKHESynIZT4UAQIgymX9owDY+P8pruaF6uXykYN6CxfPtlEf2Wh26+8iwnhonbQkDU8iWGA6bHoh2SRQy/cxFOfzjkm49Z4o+5RXwz04Udhn1g3dtjZ2VhpLrynrY3P1WYfCDTGYpe1rkqqwTVGQnEIUBwgFVwkGPJlHC4pMBPSQ8G/EEMaRU4UesgP2cYiBZmTQW8VCnz+AReujPPqy1Bw9e42DRqWpHw==
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=JbMx2D5RQ+AK0UWiTpeI1pqmKfhiWejFXP1z+JCN778=;
 b=zP11GitFZ0NbIolcUfpCuBB7VTs1kwMcnocGJ/yFXrTP7fjspgiSAq5aLFWf4A6tCmiXJkRxAqwHqsBNsWoWLaAst44UBMFFdEjo9K2j6r6NexSvHCsBIPDVzkXCSzo7z35wEuVxTl+KUbnH+rK++0rCw209HSiuZjG/HB9b5Wk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <70177c8f-63b1-4c6e-8b4e-52b7435e9197@citrix.com>
Date: Thu, 18 Dec 2025 21:34:40 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH] libs/xg: allow caller to provide extra memflags for
 populate physmap
To: Jan Beulich <jbeulich@suse.com>, Roger Pau Monne <roger.pau@citrix.com>
References: <20251218151728.28339-1-roger.pau@citrix.com>
 <b9e1d2d9-22c9-4574-9f83-46ab649d28af@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <b9e1d2d9-22c9-4574-9f83-46ab649d28af@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0090.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:190::23) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|LV4PR03MB8233:EE_
X-MS-Office365-Filtering-Correlation-Id: 3b61e134-3807-4201-a30f-08de3e7d4244
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OCt0blRRUXAvVW1LOVdzSjAzUEt5Ynl1MUxZTWYyaExuYm5rRmo1akNyakdF?=
 =?utf-8?B?dWp1TVFvVkF3WlFKZElkSGR6dTZqYitCRTRTanNjTTdLMlJ0dHFXMGdRNXhv?=
 =?utf-8?B?OWZMZHVtQzRKZmhFT0dsNWx0ckhKWVhhc2k5VE00WTBEanZWcXR4NDZ3QkFy?=
 =?utf-8?B?UHdiY1Z0U0pGdUxON3JSeTJQQ2E3cDA2RURNTzJ5dWljeFRNdjZwMERPblI0?=
 =?utf-8?B?UllTbGErTEk5KzgwcURtNGc2TkNITUdEVm5XSk0vbElqWXpmM3QyWTdrSWxl?=
 =?utf-8?B?RWJSRVU0YWpoalcwVnd2UlJiSHFXRWdEdXVORUEySGtxcmM1ZG1YK2dPTkIv?=
 =?utf-8?B?T09Ua0x2N0lvdEZUYUFYZFg4YlpkMDVEd3BjZ0t0V2FicTZja1dBSGRuRXFy?=
 =?utf-8?B?QkJwdHlsZ082SW4zNHZlbEJabmVEZ0pCbm5oVE1qR2M4TjJLVWpadDhJenRp?=
 =?utf-8?B?TlFpeEtSbjFhTlJ4UXZQTWFTNFJ3MndzTC9jSnFLWC9Zc2xaTnRyclNkR0ho?=
 =?utf-8?B?RzdPdjRCL2MxTlVlalBWTFA0RGhPUWZkUEx1S256YzRPRXRIOHpsWFZkUi8z?=
 =?utf-8?B?MVlrS0Y3ZFUreDNBZDc1NDZieHZGd2prSWV0OTRzS3BkcTVFUXJSbXBlanl1?=
 =?utf-8?B?dU9xUUFlTkVDMkdBbnkyUTJvK1pCMXg1RFZ3QmVyazUreFR5Z0J4Smh2ZlpX?=
 =?utf-8?B?M09VWk9UVXlWSE9Qa2krdENUQXBWSGxZVFFIWWNvMlJGNHY0WEFwaVRrTkwy?=
 =?utf-8?B?SjZKWEJFdEowYmdoVXlSeE1SOVBRTWRTNGNTbkJxUTlBWlR5U2NDRGtzKzhi?=
 =?utf-8?B?bGZ0dnc3OHliM2ZzL1JFZDZKOGVMWGRzUUhpZ254cXR0aHBIK1lJcmtNMWI2?=
 =?utf-8?B?RDBOVzZDRXVCaFZIVExXR3FRd1Z2RGVxemplYXhFalFGUkRCMWhiQURCVFlM?=
 =?utf-8?B?SDhHZWNMeXUxTEFicDI3RXVRUmp2R2FXM0xnZ1A0VUp2a056VTBkejJUNCtx?=
 =?utf-8?B?VWRlNndhMTd5Q0ZkUmtQY1BJZEtNUWw5SndkNDc1VVZyWGI5eTU1WXZQSVd2?=
 =?utf-8?B?OWtScEtIUHlPWmthcW1lK1A3UGM2MUsrblllSnBKTkZ3Y0J1MklFdGVHak4v?=
 =?utf-8?B?NU43NFFJWU9WaVpkdktVSUxqZUN6cURyQ2k3TFN4aWF0SFlvZkh5cVBnVnJR?=
 =?utf-8?B?LzJKQTR3aXU2SmJHZldCaDVWY2FSOTFOUGI0eEkxNjIwaDlFN2dDMXdxc2Y0?=
 =?utf-8?B?azFkVkNEenFuMyt1WTFaZUJNQ2dSVW05S3pPRTBaWFo3Y3RDOGFiVnpFTjMy?=
 =?utf-8?B?cjh5eDN1TVlRdkJIUmRoNkRpRHlCOEFIM3FWaFhkbGRXQnk3SCsydHJTTm94?=
 =?utf-8?B?THBxeU1uZmxyRzVRdExVTmxzOG9MQTc1NVNtaklSZWs4QmwrVWFWRUYzSC9B?=
 =?utf-8?B?RlhNY1NMblhqaDlHRnprdjE5VmdRRGNMdEJVRWVuaU5QNkNmYmJSbUtlblVt?=
 =?utf-8?B?d0U1YjlzU3FoSWtUcGdUL0loaDBJRmRTT0sraUNoSkNjZ1Z4RkRZWjFYOTlm?=
 =?utf-8?B?MXZ4KzBuNjlKaVh4YzdSVmtVL2gzSkt2M3FhakFBanNwR2s4N0ZyeVNVMk9X?=
 =?utf-8?B?UzQ3MnhqcTJiKzhoOWNOTkRJZ0c3c3JGU05LMHI0VEtHNjQrdlZoOHlLZHJY?=
 =?utf-8?B?RG5TVjdIWDlmWG9ZSzZUb3lZYnJDYVAvWExIV3dyQlNLZDNPNDQ1SlV6emdl?=
 =?utf-8?B?cUlXcUI4RU9paVJXYlYwazZ3NkFZdk1pYzhKZlpZeDU0VmY4dXhQTXNMWVA0?=
 =?utf-8?B?ZEhBYUZEaGVVSmVFYnQ5TE5ZNk1ObGQxUlFuYmdaRTBQNjNnV2tYd3d2UzFY?=
 =?utf-8?B?R0xKQ21sOHBSaFp6dTZ3NlBQRS9vTlUrMG5Ocmd0dGNTYnVUNlh4V1NlVHlh?=
 =?utf-8?Q?3im1vKUYm4V6ACguxGbJ2M7IC0YQItxt?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VHNZSmZLKy81aXlWTUZvQXhvbExPTkNEdjRXTFRzUnYyY2hlSG8xS3I1dE5w?=
 =?utf-8?B?Y0hjNWdiYlR5L1FSM1hlRDlnemN0Z1F1K0E4VHN3eTZBTkgreVJsWEY0MVY3?=
 =?utf-8?B?Kzgvd05iOG9XRThWeVhoUHEvLzNpcDNJZWlXekx2UHhuVnVnVVd3T0F2ZzF1?=
 =?utf-8?B?QllhditSOHRnT0pBY0QxMlgrM2RKQmtjOXRiTmNIZUI2K0grYnFaVVVOcUVE?=
 =?utf-8?B?YnY4cXFERXpodVBxMWJRMWk4RkxoUDBZa0d1M2tJSitlT1pQbm1ERWlDSGZH?=
 =?utf-8?B?QmVFbFMrWXlQbUVGV0EyUEdQZXd1dUV4NVl3c01hcGgvV0tDa2FSbGx0bTl3?=
 =?utf-8?B?ZDFXL2pvUmZPb2pIWWdta0JhdjRMY3BLWU9JWGFvUUZ2L0srNHBLdmR1NkFi?=
 =?utf-8?B?aURmREt5ck95ZHpVdDhVZmtnZ2N5RWRzdVNyc2J2dU01UHJqdnI1Tk9uZFI4?=
 =?utf-8?B?ZFY3MnZSWHBKeElIcWdPT0FBbXBIdjRGek9WMElPdGQ1MWxBcHFhd3ZMbExa?=
 =?utf-8?B?VGNxTFBSZXNtOE9vYy9yRFNjUHZpWXRadmx2Y3E4Y3p5T0xlWjQ4ck5nMzVQ?=
 =?utf-8?B?YkxWN2d5YmJxdlhtcFIrRXFiVy9HTklmQjhWNk9qVmNMVVJxY2d1L0dZdEsx?=
 =?utf-8?B?eCthWW1CcVA4R2xXR0pXOTV3T2lYb1ExVDAycU9yZHV0eXArVWpuMjhKVno3?=
 =?utf-8?B?OEM2MnhvdzhZWS9udGw1cnFySHhzNXdyZVRZb2g0UmlxZGdqRmhscUJrZUNV?=
 =?utf-8?B?SlhHelB6aVFMYjlkOXc4ZS9jczk4WEJJR0QzMkd0emx4emdJMnREVFZLWXY5?=
 =?utf-8?B?YmttaGlSTy9PUWtnSmlDbmFOaktzVFBHbHhwUFFiaUttYlBiVGtrTlA3TU9I?=
 =?utf-8?B?czNIQzYvcnRyZXEwVHY4bFQrd3JlTHBuaU91TzU5cmV6ZmtjZnVpaTNSaWZm?=
 =?utf-8?B?SDdKd0VObVJqZFBXcTJTRXpISEo4aEZEVXVzRTRYS1BVQ0s0NnVUK0xIL3hx?=
 =?utf-8?B?bVlsWndGbG8zVWlrSWl4NWFQUzgrNVpYTitOMkhTR1lDUGpVNEwwVnVwbisv?=
 =?utf-8?B?RjZqcktEWTlvQUhkRHZVNmZ5cFJVdlRjM3RHMkh3QnM2MjRBemF2NW8vNTRp?=
 =?utf-8?B?WEo1MUZJRXdiVXFaNFlRbktGMlpwZ2NkQ21oWFFYblY4WTd3U1BUaGlSdnBx?=
 =?utf-8?B?LzNCYmdzZnk0RUc1M2I0QkNoTDI0U1RXZFpYcWZyRGpqUEZaWk9ha2E2S0sw?=
 =?utf-8?B?a2xmaEZyd2VmT1JoS0tKVkxqYlFBelBFVDJhVzNTbkhyV1VobEUvK242bE1T?=
 =?utf-8?B?MTV5TlNCRDVUUTNMcm1HSWZqcGlqN1dtMUpkVWNYZXRkT1hmK0tFSzhsMmg1?=
 =?utf-8?B?RUVaTHJzQmtCNlphQUtFZ0FuN1pyRHJiamlzalhhOFRGYTcwMWlPV1BoazRS?=
 =?utf-8?B?aGdqU0Z4ZExEZCtZc2ZqZHptMUp3cXRWZC9ReVN4QWFMaHhubHREc0VZb1Fn?=
 =?utf-8?B?Mzd6Yk1MWkJRb3J0WG8xZEUvd05JN0VsbXYwTk5wVEpKaXNTQnhleVVxZCsr?=
 =?utf-8?B?cnhCOE1zSXlMS3NMMTZ1bjErUldBTFg1LzkwbXBNaFNwREdHZXNMcS8vY0Zq?=
 =?utf-8?B?WWJkMG9PbU5lR3dIY1NEUkRJMk8wdTlWZXovcVNtZ25ZaEtHTFN0eStDVFFQ?=
 =?utf-8?B?VUV6NnRaRDVSaWJjd2RGUUFWU1g5RC9xdStqYjU0aW9yTEZvZlh2STNyTDZT?=
 =?utf-8?B?SFI2akppYnZtbVQrQ2ZwYTF4SGl3L2hxWVBQSTZ2TVVOUHJ2VUhTZmtLZk9h?=
 =?utf-8?B?Yy9oZ3FLRFZKTE92NVVhS04vbjE3aEp1VjU5cVJ6SnBSN0hkRGkzb0hLcWtE?=
 =?utf-8?B?bzFib3Z0Q0prdGs0UmFGc2J1OG9QQVNsL3FPYWYvYW5WRWZxaGpleEdtMHJV?=
 =?utf-8?B?OW80aFR3eTAxeWhJcHB3U2JwbWlGbXd4dVZlcTI1blpWMmZ1ejJqUnd2VEJa?=
 =?utf-8?B?aDFKTHlFZkdQMlZSdE9rMUIxVkdVNEVyY0lTWnJmY1p4OUFubzEyZ1Q4SGxS?=
 =?utf-8?B?ejJNUkxONGdrajE3cUNkQnNhcTJ3eTRZQnNLWjhjeG1hY2ZicC93cVBZbzgr?=
 =?utf-8?B?czlpbHRzZjVuZERoZmQ3MmRCbzZIakNZL0I5Q3hwa040VkdIMnBjbHJTQjcz?=
 =?utf-8?B?b29XQ2owM2Z0OHhPV2RhakZzYmI2N1pIWEJqTEl5YmhneWNiYzg0MU1PbFZZ?=
 =?utf-8?B?R1BGekFQL0NWS1BEaEZMc3hrb0kycGpXRFVjdTAxNmNJa1NZNGpVK21vNi9u?=
 =?utf-8?B?T2ZsdEVYQXBkUlI0UnEwV3JHSWp4SklaTUZicDJZb3FLWGtkcklOZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3b61e134-3807-4201-a30f-08de3e7d4244
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 21:34:43.8412
 (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: zg90Tr41pX+hifWNQmlp38GKJLMukgtN5ckpCJOfPXNeUjodfcTTybKNihNy9UCQYSQGZD285T0LH13FMAWEx3LYpAChe5t3L1GvFiU3bVU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV4PR03MB8233

On 18/12/2025 3:27 pm, Jan Beulich wrote:
> On 18.12.2025 16:17, Roger Pau Monne wrote:
>> --- a/tools/libs/guest/xg_dom_x86.c
>> +++ b/tools/libs/guest/xg_dom_x86.c
>> @@ -1260,14 +1260,15 @@ static int meminit_pv(struct xc_dom_image *dom)
>>      /* allocate guest memory */
>>      for ( i = 0; i < nr_vmemranges; i++ )
>>      {
>> -        unsigned int memflags;
>> +        unsigned int memflags = dom->memflags;
>>          uint64_t pages, super_pages;
>>          unsigned int pnode = vnode_to_pnode[vmemranges[i].nid];
>>          xen_pfn_t extents[SUPERPAGE_BATCH_SIZE];
>>          xen_pfn_t pfn_base_idx;
>>  
>> -        memflags = 0;
>> -        if ( pnode != XC_NUMA_NO_NODE )
>> +        if ( pnode != XC_NUMA_NO_NODE &&
>> +             /* Only set the node if the caller hasn't done so. */
>> +             XENMEMF_get_node(memflags) == 0xFFU )
>>              memflags |= XENMEMF_exact_node(pnode);
> I'd like to suggest to avoid open-coding the 0xff here and elsewhere.
> XENMEMF_get_node(0) will be less fragile overall, imo.

XENMEMF_get_node(0) is even more meaningless than 0xFF, which is at
least obviously a sentinel value.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 18 23:54:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Dec 2025 23:54:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190295.1510806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWNoW-0005hC-Rg; Thu, 18 Dec 2025 23:53:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190295.1510806; Thu, 18 Dec 2025 23:53:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWNoW-0005h5-OF; Thu, 18 Dec 2025 23:53:44 +0000
Received: by outflank-mailman (input) for mailman id 1190295;
 Thu, 18 Dec 2025 23:53:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=awYi=6Y=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vWNoV-0005gz-M6
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 23:53:43 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c68c11c9-dc6c-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 00:53:41 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id A030A42E07;
 Thu, 18 Dec 2025 23:53:38 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6EF94C4CEFB;
 Thu, 18 Dec 2025 23:53:37 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c68c11c9-dc6c-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1766102018;
	bh=lDUbbXao4Tk720vLz51q1jmc9Zu7mkhyD3s+jm4DpcI=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=oozg6XBMyp0Jxk6XfC/xsYh5yme8wBUGuUXILKj1hlahoGNpFPyMeQJHjo8vqFcjS
	 9GhofqKOfCItRex7vySRFPysvwQfn3xm3sb72DKs03E+CF1JkLw1bXYWkykiuCQkPz
	 xWpruev8OPxpixmR2+s6eKP4p3JkQVrPktPx6TpGuGLNGYLHwHDuZas5/UAIU39OD8
	 uS1UWS+UKbpyRJqjDJlwEIk9Y1TDL4dO48xNqLpczECmF8Qq9UtODk7klA7tKPIzf9
	 qYF+E69f2Ovv16/sp1Peohqeq8nZVGTx/Y//8zGMQ5Lo8o1rYNw6NBxRs+9zcSd+fW
	 jkO+93DVGM3ng==
Date: Thu, 18 Dec 2025 15:53:36 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Grygorii Strashko <grygorii_strashko@epam.com>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
    Harry Ramsey <harry.ramsey@arm.com>
Subject: Re: [PATCH V3] xen/dom0less: Calculate guest DTB size based on
 MAX_VIRT_CPUS
In-Reply-To: <a23716aa-cae1-4636-b027-2344e2b08f10@epam.com>
Message-ID: <alpine.DEB.2.22.394.2512181553300.21522@ubuntu-linux-20-04-desktop>
References: <20251217081248.2807849-1-oleksandr_tyshchenko@epam.com> <alpine.DEB.2.22.394.2512171605420.21522@ubuntu-linux-20-04-desktop> <a23716aa-cae1-4636-b027-2344e2b08f10@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 17 Dec 2025, Oleksandr Tyshchenko wrote:
> On 18.12.25 02:05, Stefano Stabellini wrote:
> Hello Stefano
> 
> > On Wed, 17 Dec 2025, Oleksandr Tyshchenko wrote:
> >> Creating a dom0less guest with a high vCPU count (e.g., >32) fails
> >> because the fixed 4KiB device tree buffer (DOMU_DTB_SIZE) overflows
> >> during creation.
> >>
> >> The FDT nodes for each vCPU are the primary consumer of space,
> >> and the previous fixed-size buffer was insufficient.
> >>
> >> This patch replaces the fixed size with a formula that calculates
> >> the required buffer size based on a fixed baseline plus a scalable
> >> portion for each potential vCPU up to the MAX_VIRT_CPUS limit.
> >>
> >> Please note, the change to DOMU_DTB_SIZE formula would result in
> >> a smaller buffer size of 3072 bytes compared to the original 4096 bytes
> >> on Arm32 platforms where MAX_VIRT_CPUS is 8.
> > 
> > I am OK with this patch I would only ask to retain the minimum size of
> > 4KB due to the possible presence of passthrough device nodes.
> 
> I think there might be cases when even 4KB would not be enough to cover 
> the whole dtb with passthrough device nodes. But the existing code 
> should already handle that, so if a partial device tree is provided, 
> then it will be accounted separately:
> 
>       /* Account for domU passthrough DT size */
>       if ( kinfo->dtb )
>           fdt_size += kinfo->dtb->size;

I forgot about this. In that case:

Acked-by: Stefano Stabellini <sstabellini@kernel.org>


From xen-devel-bounces@lists.xenproject.org Fri Dec 19 00:00:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 00:00:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190304.1510815 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWNvN-00085y-Cr; Fri, 19 Dec 2025 00:00:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190304.1510815; Fri, 19 Dec 2025 00:00:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWNvN-00085r-A4; Fri, 19 Dec 2025 00:00:49 +0000
Received: by outflank-mailman (input) for mailman id 1190304;
 Fri, 19 Dec 2025 00:00:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=U+Ik=6Z=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vWNvL-00085l-DN
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 00:00:47 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c35327ea-dc6d-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 01:00:44 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id CB9BF438D9;
 Fri, 19 Dec 2025 00:00:42 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 89519C4CEFB;
 Fri, 19 Dec 2025 00:00:41 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c35327ea-dc6d-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1766102442;
	bh=nejwZ4CXBVS0SWLhjOCvOoKs91xMXUc4UNl5EIeFV0I=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=QjctMkPXbbFSpbQzip03CbkY1Vz2UsBCwatTuyAf7X0cS8FZs0Pd4iuLbMbg8iBQU
	 6Zh/IWeofclbw1q78fU8s2kdRJrPOVRcgt2Z5FJwiYbKwYIPduKGk5ik5c8eNlaI0I
	 W2YkPk+NG5prEWRtF/4XFBR0Qg/7xP+LWgAvZ96kJnYdE0+v55sS/0zFCa7zWI8e0x
	 aNRLTG65u/0CPTh/8dzqm3bGdOU/qz1yXHPYe6gMUsh8KoxsgdGYcr3G3EZQHKu4CG
	 FMGjjnjAcuovM5Zp0TO2H+IiUzzQwGq5AqeK293vbqI81r6x3Nl143N7xcX1P6gfTG
	 kisBxKaMO8ZKA==
Date: Thu, 18 Dec 2025 16:00:40 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
cc: xen-devel@lists.xenproject.org, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Yann Dirson <yann.dirson@vates.tech>, 
    Yann Sionneau <yann.sionneau@vates.tech>
Subject: Re: [PATCH v1] acpi/arm: relax MADT GICC entry length check to
 support newer ACPI revisions
In-Reply-To: <929f7a0fb8f92112d445015726db30122a05eb9f.1766060265.git.oleksii.kurochko@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2512181600320.21522@ubuntu-linux-20-04-desktop>
References: <929f7a0fb8f92112d445015726db30122a05eb9f.1766060265.git.oleksii.kurochko@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-511701984-1766102442=:21522"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-511701984-1766102442=:21522
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 18 Dec 2025, Oleksii Kurochko wrote:
> Newer ACPI revisions define the MADT GICC entry with Length = 82 bytes [1].
> The current BAD_MADT_GICC_ENTRY() check rejects entries whose length does not
> match the known values, which leads to:
>   GICv3: No valid GICC entries exist.
> as observed on the AmpereOne platform.
> 
> To fix this, import the logic from import from Linux commit 9eb1c92:
>   The BAD_MADT_GICC_ENTRY check is a little too strict because
>   it rejects MADT entries that don't match the currently known
>   lengths. We should remove this restriction to avoid problems
>   if the table length changes. Future code which might depend on
>   additional fields should be written to validate those fields
>   before using them, rather than trying to globally check
>   known MADT version lengths.
> 
>   Link: https://lkml.kernel.org/r/20181012192937.3819951-1-jeremy.linton@arm.com
>   Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
>   [lorenzo.pieralisi@arm.com: added MADT macro comments]
>   Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
>   Acked-by: Sudeep Holla <sudeep.holla@arm.com>
>   Cc: Will Deacon <will.deacon@arm.com>
>   Cc: Catalin Marinas <catalin.marinas@arm.com>
>   Cc: Al Stone <ahs3@redhat.com>
>   Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
>   Signed-off-by: Will Deacon <will.deacon@arm.com>
> 
> As ACPI_MADT_GICC_LENGTH is dropped, update the functions where it is
> used. As we rewrite the MADT for hwdom, reuse the host GICC header length
> instead of ACPI_MADT_GICC_LENGTH.
> 
> [1] https://uefi.org/specs/ACPI/6.6/05_ACPI_Software_Programming_Model.html#gic-cpu-interface-gicc-structure
> 
> Reported-By: Yann Dirson <yann.dirson@vates.tech>
> Co-developed-by: Yann Sionneau <yann.sionneau@vates.tech>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
> I ran CI tests where it made sense for this patch, as I don’t see any CI job
> that builds Xen with CONFIG_ACPI=y:
>   https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2222160666
> 
> I also built Xen manually with CONFIG_ACPI=y enabled and tested it on the
> AmpereOne platform.
> ---
>  xen/arch/arm/gic-v2.c           |  3 ++-
>  xen/arch/arm/gic-v3.c           |  3 ++-
>  xen/arch/arm/gic.c              | 12 +++++++++++-
>  xen/arch/arm/include/asm/acpi.h | 21 +++++++++++++++------
>  4 files changed, 30 insertions(+), 9 deletions(-)
> 
> diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
> index b23e72a3d0..aae6a7bf30 100644
> --- a/xen/arch/arm/gic-v2.c
> +++ b/xen/arch/arm/gic-v2.c
> @@ -1121,7 +1121,8 @@ static int gicv2_make_hwdom_madt(const struct domain *d, u32 offset)
>      host_gicc = container_of(header, struct acpi_madt_generic_interrupt,
>                               header);
>  
> -    size = ACPI_MADT_GICC_LENGTH;
> +    size = host_gicc->header.length;
> +
>      /* Add Generic Interrupt */
>      for ( i = 0; i < d->max_vcpus; i++ )
>      {
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index bc07f97c16..75b89efad4 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -1672,7 +1672,8 @@ static int gicv3_make_hwdom_madt(const struct domain *d, u32 offset)
>  
>      host_gicc = container_of(header, struct acpi_madt_generic_interrupt,
>                               header);
> -    size = ACPI_MADT_GICC_LENGTH;
> +    size = host_gicc->header.length;
> +
>      for ( i = 0; i < d->max_vcpus; i++ )
>      {
>          gicc = (struct acpi_madt_generic_interrupt *)(base_ptr + table_len);
> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> index ee75258fc3..a0ccda14bf 100644
> --- a/xen/arch/arm/gic.c
> +++ b/xen/arch/arm/gic.c
> @@ -418,8 +418,18 @@ unsigned long gic_get_hwdom_madt_size(const struct domain *d)
>  {
>      unsigned long madt_size;
>  
> +    struct acpi_subtable_header *header;
> +    struct acpi_madt_generic_interrupt *host_gicc;
> +
> +    header = acpi_table_get_entry_madt(ACPI_MADT_TYPE_GENERIC_INTERRUPT, 0);
> +    if ( !header )
> +        panic("Can't get GICC entry");
> +
> +    host_gicc = container_of(header, struct acpi_madt_generic_interrupt,
> +                             header);
> +
>      madt_size = sizeof(struct acpi_table_madt)
> -                + ACPI_MADT_GICC_LENGTH * d->max_vcpus
> +                + host_gicc->header.length * d->max_vcpus
>                  + sizeof(struct acpi_madt_generic_distributor)
>                  + gic_hw_ops->get_hwdom_extra_madt_size(d);
>  
> diff --git a/xen/arch/arm/include/asm/acpi.h b/xen/arch/arm/include/asm/acpi.h
> index 13756dd341..30bc446d1f 100644
> --- a/xen/arch/arm/include/asm/acpi.h
> +++ b/xen/arch/arm/include/asm/acpi.h
> @@ -53,13 +53,22 @@ void acpi_smp_init_cpus(void);
>   */
>  paddr_t acpi_get_table_offset(struct membank tbl_add[], EFI_MEM_RES index);
>  
> -/* Macros for consistency checks of the GICC subtable of MADT */
> -#define ACPI_MADT_GICC_LENGTH	\
> -    (acpi_gbl_FADT.header.revision < 6 ? 76 : 80)
> +/*
> + * MADT GICC minimum length refers to the MADT GICC structure table length as
> + * defined in the earliest ACPI version supported on arm64, ie ACPI 5.1.
> + *
> + * The efficiency_class member was added to the
> + * struct acpi_madt_generic_interrupt to represent the MADT GICC structure
> + * "Processor Power Efficiency Class" field, added in ACPI 6.0 whose offset
> + * is therefore used to delimit the MADT GICC structure minimum length
> + * appropriately.
> + */
> +#define ACPI_MADT_GICC_MIN_LENGTH   ACPI_OFFSET( \
> +    struct acpi_madt_generic_interrupt, efficiency_class)
>  
> -#define BAD_MADT_GICC_ENTRY(entry, end)						\
> -    (!(entry) || (unsigned long)(entry) + sizeof(*(entry)) > (end) ||	\
> -     (entry)->header.length != ACPI_MADT_GICC_LENGTH)
> +#define BAD_MADT_GICC_ENTRY(entry, end) \
> +    (!(entry) || (entry)->header.length < ACPI_MADT_GICC_MIN_LENGTH || \
> +    (unsigned long)(entry) + (entry)->header.length > (end))
>  
>  #ifdef CONFIG_ACPI
>  extern bool acpi_disabled;
> -- 
> 2.52.0
> 
--8323329-511701984-1766102442=:21522--


From xen-devel-bounces@lists.xenproject.org Fri Dec 19 00:33:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 00:33:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190341.1510826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWOR5-0004EW-Tp; Fri, 19 Dec 2025 00:33:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190341.1510826; Fri, 19 Dec 2025 00:33:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWOR5-0004EP-QX; Fri, 19 Dec 2025 00:33:35 +0000
Received: by outflank-mailman (input) for mailman id 1190341;
 Fri, 19 Dec 2025 00:33:35 +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
 <SRS0=U+Ik=6Z=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vWOR5-0004EJ-0W
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 00:33:35 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 589d0c54-dc72-11f0-b15b-2bf370ae4941;
 Fri, 19 Dec 2025 01:33:32 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 020CA60053;
 Fri, 19 Dec 2025 00:33:31 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 96C86C4AF09;
 Fri, 19 Dec 2025 00:33:29 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 589d0c54-dc72-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1766104410;
	bh=SKpIYYg5LvhEolxzARMhQDVhZlSdet2k9GzqRmxdyIk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=kSmFDdMASYkKE4bsTUeLDtf/Oo/Sk+y1ZlsZ7M7GehFhCiNnk8UubTW29jwOvlX47
	 6aE/6g4PE0NMATqCRcIVEOYZhny8Sp7Il+cRTESCjvA33Cis3thRg9SDFNhI33qg1r
	 4FdOp3WC7kE8OpruvAXLkLd7oyA8OUSjh43xF+xM6AzIH/fLLbZ3Vyg4Et4vIAfedV
	 QzLXSsbndVyPRrMQaNugaLDBZhygwaD3i36d7DaM0wB+ejMBmilLK5vQQ0lTu/LYfS
	 i7UOdGrywzYJUJEa+epSxYbt/QMlNCyHamFDspMhxUvIE75umfJJeYZCEvonTDsIpI
	 3t84Eneyg9yrA==
Date: Thu, 18 Dec 2025 16:33:28 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Grygorii Strashko <grygorii_strashko@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [XEN][PATCH v2 0/4] x86: pvh: allow to disable 32-bit (COMPAT)
 interface support
In-Reply-To: <e7e12bee-2b0b-4474-a64e-78f570432a3e@suse.com>
Message-ID: <alpine.DEB.2.22.394.2512181629220.21522@ubuntu-linux-20-04-desktop>
References: <20251119192916.1009549-1-grygorii_strashko@epam.com> <a4646368-2c91-4d57-846f-e7de51395627@epam.com> <e7e12bee-2b0b-4474-a64e-78f570432a3e@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 18 Dec 2025, Jan Beulich wrote:
> On 18.12.2025 17:20, Grygorii Strashko wrote:
> > I'm planning to send v3 - so would be appreciated for any other comments.
> 
> Andrew,
> 
> could you please write down the outline of what you described verbally the
> other day, to scope the extent to which we may want to take changes here?

I am not Andrew, but I just wanted to take the opportunity to write down
my recollection, letting Andrew chime in as needed of course.

We would make it possible to remove the compat code itself and compat
hypercall entries. This would be acceptable right away.

When it comes to 32-bit code intermixed with 64-bit code, we would have
to look at it on a case by case basis.


 
> > On 19.11.25 21:30, Grygorii Strashko wrote:
> >> From: Grygorii Strashko <grygorii_strashko@epam.com>
> >>
> >> Hi
> >>
> >> This series introduces possibility to disable 32-bit (COMPAT) interface support
> >> in the following case:
> >>        - Only PVH domains are used
> >>        - Guests (OS) are started by using direct Direct Kernel Boot
> >>        - Guests (OS) are 64-bit and Guest early boot code, which is running not
> >>          in 64-bit mode, does not access Xen interfaces
> >>          (hypercalls, shared_info, ..)
> >>
> >> If above criterias are met the COMPAT HVM interface become unreachable and can be disabled.
> >> Coverage reports analyze and adding guard (debug) exceptions in hvm_hypercall/hvm_do_multicall_call
> >> and hvm_latch_shinfo_size() confirm that COMPAT HVM interface is unused for safety use-case.
> >>
> >> Changes in v2 described in each patch:
> >> - patch "x86: constify has_32bit_shinfo() if !CONFIG_COMPAT" squashed in patch 2.
> >>
> >> v1:
> >>   https://patchwork.kernel.org/project/xen-devel/cover/20251111175413.3540690-1-grygorii_strashko@epam.com/
> >>
> >> Grygorii Strashko (4):
> >>    x86: hvm: dm: factor out compat code under ifdefs
> >>    x86: hvm: compat: introduce is_hcall_compat() helper
> >>    x86: hvm: factor out COMPAT code under ifdefs
> >>    x86: pvh: allow to disable 32-bit interface support
> >>
> >>   xen/arch/x86/hvm/Kconfig          | 19 ++++++++++++++++++-
> >>   xen/arch/x86/hvm/dm.c             |  2 ++
> >>   xen/arch/x86/hvm/hvm.c            | 24 ++++++++++++++++++++----
> >>   xen/arch/x86/hvm/hypercall.c      | 22 +++++++++++++++++-----
> >>   xen/arch/x86/hypercall.c          |  6 +-----
> >>   xen/arch/x86/include/asm/domain.h |  9 +++++++--
> >>   xen/common/kernel.c               |  2 +-
> >>   xen/include/hypercall-defs.c      |  9 +++++++--
> >>   xen/include/xen/sched.h           |  9 +++++++++
> >>   9 files changed, 82 insertions(+), 20 deletions(-)
> >>
> > 
> 


From xen-devel-bounces@lists.xenproject.org Fri Dec 19 01:02:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 01:02:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190356.1510835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWOsQ-0007nC-45; Fri, 19 Dec 2025 01:01:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190356.1510835; Fri, 19 Dec 2025 01:01:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWOsQ-0007mW-1V; Fri, 19 Dec 2025 01:01:50 +0000
Received: by outflank-mailman (input) for mailman id 1190356;
 Fri, 19 Dec 2025 01:01:48 +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
 <SRS0=lTMo=6Z=ariadne.space=ariadne@srs-se1.protection.inumbo.net>)
 id 1vWOsO-00072l-81
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 01:01:48 +0000
Received: from outbound.ci.icloud.com (ci-2006c-snip4-5.eps.apple.com
 [57.103.90.156]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 491378aa-dc76-11f0-b15b-2bf370ae4941;
 Fri, 19 Dec 2025 02:01:45 +0100 (CET)
Received: from outbound.ci.icloud.com (unknown [127.0.0.2])
 by p00-icloudmta-asmtp-us-central-1k-100-percent-9 (Postfix) with ESMTPS id
 379DA1800976; Fri, 19 Dec 2025 01:01:41 +0000 (UTC)
Received: from phoebe.my.domain (unknown [17.57.156.36])
 by p00-icloudmta-asmtp-us-central-1k-100-percent-9 (Postfix) with ESMTPSA id
 581AD1800950; Fri, 19 Dec 2025 01:01:36 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 491378aa-dc76-11f0-b15b-2bf370ae4941
Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ariadne.space; s=sig1; bh=k/sGFpxfsXXE4bG/gLuHDwciH+XbI6Fj1Tr7xEr6v5E=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=l08dQAmdWxd78K9aTsjzZqQqJP20hlqWzb9XcSdc7O2beVBuqN5KJLLi68TMY5qS3fivMURmk7JkWRnxMmF4L3YuWUxVC9qvV+/fEn32BrjLmkzqUXSMNRl/vnbFhLl8xGPUvMscAb+1/axGSaDjH75cNi4BYfUPhH7/YYeauqNLp072Wrgt6RTYflDXEATzONN2x4pbf9KLjAU0C3UZelUN19B+1oS9Ijh/+RNVOeSRL9KG4EGn9AQFXdYKrXNTGBes2WRj4MO2FCfyk8ZZiITj/CHDF4nnvlKPho8nAFMcSl/DZ/aZccu5gJcGqcVKMeN7TWZ6LFxa5ukT3Jyr4Q==
mail-alias-created-date: 1688796967087
From: Ariadne Conill <ariadne@ariadne.space>
To: linux-kernel@vger.kernel.org
Cc: mario.limonciello@amd.com,
	darwi@linutronix.de,
	sandipan.das@amd.com,
	kai.huang@intel.com,
	me@mixaill.net,
	yazen.ghannam@amd.com,
	riel@surriel.com,
	peterz@infradead.org,
	hpa@zytor.com,
	x86@kernel.org,
	tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	Ariadne Conill <ariadne@ariadne.space>,
	xen-devel@lists.xenproject.org,
	stable@vger.kernel.org
Subject: [PATCH] x86/CPU/AMD: avoid printing reset reasons on Xen domU
Date: Thu, 18 Dec 2025 17:01:31 -0800
Message-ID: <20251219010131.12659-1-ariadne@ariadne.space>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Authority-Info: v=2.4 cv=EvbfbCcA c=1 sm=1 tr=0 ts=6944a3f6 cx=c_apl:c_pps
 a=2G65uMN5HjSv0sBfM2Yj2w==:117 a=2G65uMN5HjSv0sBfM2Yj2w==:17
 a=MKtGQD3n3ToA:10 a=1oJP67jkp3AA:10 a=wP3pNCr1ah4A:10
 a=VkNPw1HP01LnGYTKEx00:22 a=cWRNjhkoAAAA:8 a=VwQbUJbxAAAA:8
 a=64mAIdLp92yHhwu-ie0A:9 a=sVa6W5Aao32NNC1mekxh:22
X-Proofpoint-ORIG-GUID: 1g18WFCENcLrMa1DtA2XBcKaizFIFmka
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE5MDAwNSBTYWx0ZWRfX/XpCqHGo7QO8
 XVEEd3U/KM52M38w2R3bbNH4op/A1zG3zWse8yplnN98hfQQ5GScFAaMWZDNnLjSsobxsn9wtMv
 oQD4cfxn1mcvBW42+XnjIq0uudpEieWbdtuH9wxL27zMjW38iPPiqYyOSazNxAL2Tflxazp73XC
 o6ltxRDRu65VSwW8mzkBKilupg+8at7y2zzy/nNK/fGqxggSYEp/UWRvvdWkzOot3zxqLpBOgsg
 MNX1TelkMr9UmLZ3yKxck5uWvPMpZAAcbShqnu1jujqsLH9nn02wKOgehR45nur8sPRegqbAJFv
 0Vjb/iS5jZOhSuLHKjZ
X-Proofpoint-GUID: 1g18WFCENcLrMa1DtA2XBcKaizFIFmka
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-12-18_04,2025-12-17_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=873
 adultscore=0 suspectscore=0 malwarescore=0 bulkscore=0 phishscore=0
 clxscore=1030 spamscore=0 mlxscore=0 classifier=spam authscore=0 adjust=0
 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512190005
X-JNJ: AAAAAAABr0Q3G94xuvIY8bsEvQNKzbJxhRRxFTbgzGxeuuI6C4zYTCLLh4fyc9dUpyIayNXyTsbSuWjV2AV54y4wdepy1oZRzxT1yakRmjtaGyrQW2y3wNZQTnMfpq7Ugrm8fiopawQF4k5T+2TL9XAykNLaotdeii7CwWE+aS/fDwEgTr/Vdya1EC76gKNdiQiU2Ikhj4OpKbau8+Wmz9+XrYGvly7BbqWkmc6rWCepubDzm03rOas3Pu8Ua3sqZtFsKeh+/ujqEC41cG3j8JOcyybKSb9pwuEw7q+0Sg4C/DsFUrBQ9vGmPZNeQXK5BxB8a2AUCJULS7XY/cU8qUrlgl1+gWwOBjQPrFjnyW9Delr8Us3j3WK3HyNEZQYXEEOkqzW1Lf1En3sIdS4PmdmfJJS2S7a3IM5z+Pcv6uEm+xTWRKCeXHF3BZ1xGimnSePcGtkbpLJP5RLw5fbOK/wM6T/cSP8d9RYbr50D1XJWoRw9o1rBQg3B12lHUc681qn8HgtRRf0OegUnzTTLD6J3Uk22T9Ek9iqvSBZJzTqG6FtiBZTLO01NTv4Aox6FZCjw84u4HXBBVd8dnjbueW6thg69a5AeocA2wQwl/5VSwx9M4CLpIm3g7tt62oVdJkxVcc6TxOWjgE8rqnJKDPzZ2dP8N2XTE5+WjgtJ3735dNOIm9AHEHuepai7KoKUxpI78edlvtC1Oo+1tY7zcauaPbJ89OHwXDGE/Icm4ZmhNUpHr8sIKO/3MxZD/6VPHqhroh4rd5OivC8uzGsxZCbH06iOmNFiD/FBPFvK6n1oh0Bj0ESDDeTQzvFX0SpT1y3bhx/KSjvEjmEfCVU=

Xen domU cannot access the given MMIO address for security reasons,
resulting in a failed hypercall in ioremap() due to permissions.

Fixes: ab8131028710 ("x86/CPU/AMD: Print the reason for the last reset")
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
Cc: xen-devel@lists.xenproject.org
Cc: stable@vger.kernel.org
---
 arch/x86/kernel/cpu/amd.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index a6f88ca1a6b4..99308fba4d7d 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -29,6 +29,8 @@
 # include <asm/mmconfig.h>
 #endif
 
+#include <xen/xen.h>
+
 #include "cpu.h"
 
 u16 invlpgb_count_max __ro_after_init = 1;
@@ -1333,6 +1335,10 @@ static __init int print_s5_reset_status_mmio(void)
 	if (!cpu_feature_enabled(X86_FEATURE_ZEN))
 		return 0;
 
+	/* Xen PV domU cannot access hardware directly, so bail for domU case */
+	if (cpu_feature_enabled(X86_FEATURE_XENPV) && !xen_initial_domain())
+		return 0;
+
 	addr = ioremap(FCH_PM_BASE + FCH_PM_S5_RESET_STATUS, sizeof(value));
 	if (!addr)
 		return 0;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 19 01:03:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 01:03:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190364.1510845 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWOu1-0008Pa-Dg; Fri, 19 Dec 2025 01:03:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190364.1510845; Fri, 19 Dec 2025 01:03:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWOu1-0008PT-BD; Fri, 19 Dec 2025 01:03:29 +0000
Received: by outflank-mailman (input) for mailman id 1190364;
 Fri, 19 Dec 2025 01:03:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=1E9q=6Z=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1vWOtz-0008NX-EZ
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 01:03:27 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8294ef24-dc76-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 02:03:21 +0100 (CET)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:f7])
 by mailhost.m5p.com (8.18.1/8.17.1) with ESMTPS id 5BJ13D6h004871
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO)
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 20:03:19 -0500 (EST)
 (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.18.1/8.15.2/Submit) id 5BJ13D8o004870
 for xen-devel@lists.xenproject.org; Thu, 18 Dec 2025 17:03:13 -0800 (PST)
 (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8294ef24-dc76-11f0-9cce-f158ae23cfc8
Date: Thu, 18 Dec 2025 17:03:13 -0800
From: Elliott Mitchell <ehem+xen@m5p.com>
To: xen-devel@lists.xenproject.org
Subject: PV Mode support broken after 6.17
Message-ID: <aUSkUbjgRtWf2Tf0@mattapan.m5p.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
X-Spam-Status: No, score=0.4 required=10.0 tests=KHOP_HELO_FCRDNS autolearn=no
	autolearn_force=no version=4.0.1
X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on mattapan.m5p.com

Alpine Linux tends to have very current kernels which means seeing very
current bugs.

Sometime before 6.17.12 (therefore also effecting 6.18.x) Xen PV mode
got broken.  Until PCI passthrough for PVH gets into most distributions
PV mode is going to continue being important.


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Fri Dec 19 03:57:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 03:57:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190400.1510856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWRcM-00055J-5X; Fri, 19 Dec 2025 03:57:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190400.1510856; Fri, 19 Dec 2025 03:57:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWRcM-00055C-2A; Fri, 19 Dec 2025 03:57:26 +0000
Received: by outflank-mailman (input) for mailman id 1190400;
 Fri, 19 Dec 2025 03:57:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=4//z=6Z=alien8.de=bp@srs-se1.protection.inumbo.net>)
 id 1vWRcJ-00053m-Uc
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 03:57:24 +0000
Received: from mail.alien8.de (mail.alien8.de [65.109.113.108])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d1d4ded8-dc8e-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 04:57:21 +0100 (CET)
Received: from localhost (localhost.localdomain [127.0.0.1])
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id 35C5540E00DA; 
 Fri, 19 Dec 2025 03:57:19 +0000 (UTC)
Received: from mail.alien8.de ([127.0.0.1])
 by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id a_tIQDRRnMi3; Fri, 19 Dec 2025 03:57:11 +0000 (UTC)
Received: from ehlo.thunderbird.net (unknown
 [IPv6:2a02:3036:262:5a0b:90b5:59c8:4fa2:6e0e])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256)
 (No client certificate requested)
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id EED6A40E0200;
 Fri, 19 Dec 2025 03:56:45 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d1d4ded8-dc8e-11f0-9cce-f158ae23cfc8
X-Virus-Scanned: Debian amavisd-new at mail.alien8.de
Authentication-Results: mail.alien8.de (amavisd-new); dkim=pass (4096-bit key)
	header.d=alien8.de
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8;
	t=1766116625; bh=9OoWm0rpVmuvoWbrBcuEyBUT/k9kR14cD7LfwTMMKnA=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=PNs3f/EK4SVpDLpJ1O4Z4JOT0NWqoiva2DRw0lFhC8vdabJkEzGCvAhVJIbzZwqO0
	 f65NhPmk8rdKYOIJsX8e4aNtBfKKYbgUoq5Dx3d1GeHA2tNePAkH2bjjA7RuK4Xr80
	 bXGaS4zMGQioLXh4/VRlU4lufTF9wvUU8zqFIHM3w+79gwZj6yMEIEE2FnG6dRc31g
	 Oelx7cry8MSLE9aqD/NxoELKQ3uZcyvFEpNLIVf9pXx0BrBbOj0y5PGhSx6yl5CEk/
	 n8FHhDE5Afc2KYq9mVXRP+J/jvZxzkVHw8DZxpHJjHxVwhDKTa+cLmjPuvftZYQAzH
	 L/QDL9XYIUIbKUUKbV6E1Mq9Zczz+oi6VgDJHtZjRpMV18TbOz+srKdavu27adrvEw
	 RiU0jvHdwgkqzvAAqFsx0MBW4sL9iGCUh9xsD8m8yx6kdCZ2WWPoiCB6Dv9b5DxbHC
	 yjY+4cFJxQf4CxqwshHOCkvoZ9UW7uor92OqUmUK14m96F+NyBBqH6eeoucOiRCbB9
	 7qZ9EBbJn2mrWRlJbUg1Hn+35dfYZhHAuKxVjfyPnJHokLr0R7VMINEdDQFQyB97bc
	 4LZZwuV6KoyuRaece5fovss1/02B7HcSBlnrXqtTiq9SaVcJtyq3SgOu3sq7sePR3R
	 uC0r+KLG26iYcCgKbmaHGDhM=
Date: Fri, 19 Dec 2025 03:56:33 +0000
From: Borislav Petkov <bp@alien8.de>
To: Ariadne Conill <ariadne@ariadne.space>, linux-kernel@vger.kernel.org,
 seanjc@google.com
CC: mario.limonciello@amd.com, darwi@linutronix.de, sandipan.das@amd.com,
 kai.huang@intel.com, me@mixaill.net, yazen.ghannam@amd.com, riel@surriel.com,
 peterz@infradead.org, hpa@zytor.com, x86@kernel.org, tglx@linutronix.de,
 mingo@redhat.com, dave.hansen@linux.intel.com,
 xen-devel@lists.xenproject.org, stable@vger.kernel.org
Subject: Re: [PATCH] x86/CPU/AMD: avoid printing reset reasons on Xen domU
User-Agent: K-9 Mail for Android
In-Reply-To: <20251219010131.12659-1-ariadne@ariadne.space>
References: <20251219010131.12659-1-ariadne@ariadne.space>
Message-ID: <7C6C14C2-ABF8-4A94-B110-7FFBE9D2ED79@alien8.de>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On December 19, 2025 1:01:31 AM UTC, Ariadne Conill <ariadne@ariadne=2Espac=
e> wrote:
>Xen domU cannot access the given MMIO address for security reasons,
>resulting in a failed hypercall in ioremap() due to permissions=2E
>
>Fixes: ab8131028710 ("x86/CPU/AMD: Print the reason for the last reset")
>Signed-off-by: Ariadne Conill <ariadne@ariadne=2Espace>
>Cc: xen-devel@lists=2Exenproject=2Eorg
>Cc: stable@vger=2Ekernel=2Eorg
>---
> arch/x86/kernel/cpu/amd=2Ec | 6 ++++++
> 1 file changed, 6 insertions(+)
>
>diff --git a/arch/x86/kernel/cpu/amd=2Ec b/arch/x86/kernel/cpu/amd=2Ec
>index a6f88ca1a6b4=2E=2E99308fba4d7d 100644
>--- a/arch/x86/kernel/cpu/amd=2Ec
>+++ b/arch/x86/kernel/cpu/amd=2Ec
>@@ -29,6 +29,8 @@
> # include <asm/mmconfig=2Eh>
> #endif
>=20
>+#include <xen/xen=2Eh>
>+
> #include "cpu=2Eh"
>=20
> u16 invlpgb_count_max __ro_after_init =3D 1;
>@@ -1333,6 +1335,10 @@ static __init int print_s5_reset_status_mmio(void)
> 	if (!cpu_feature_enabled(X86_FEATURE_ZEN))
> 		return 0;
>=20
>+	/* Xen PV domU cannot access hardware directly, so bail for domU case *=
/
>+	if (cpu_feature_enabled(X86_FEATURE_XENPV) && !xen_initial_domain())
>+		return 0;
>+
> 	addr =3D ioremap(FCH_PM_BASE + FCH_PM_S5_RESET_STATUS, sizeof(value));
> 	if (!addr)
> 		return 0;

Sean, looka here=2E The other hypervisor wants other checks=2E

Time to whip out the X86_FEATURE_HYPERVISOR check=2E
--=20
Small device=2E Typos and formatting crap


From xen-devel-bounces@lists.xenproject.org Fri Dec 19 06:36:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 06:36:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190419.1510865 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWU5k-0000rL-UF; Fri, 19 Dec 2025 06:35:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190419.1510865; Fri, 19 Dec 2025 06:35:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWU5k-0000rE-RB; Fri, 19 Dec 2025 06:35:56 +0000
Received: by outflank-mailman (input) for mailman id 1190419;
 Fri, 19 Dec 2025 06:35:55 +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 <SRS0=tfUY=6Z=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vWU5j-0000r8-8l
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 06:35:55 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f3b3264b-dca4-11f0-b15b-2bf370ae4941;
 Fri, 19 Dec 2025 07:35:47 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 0189D5BD14;
 Fri, 19 Dec 2025 06:35:45 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id D54C43EA63;
 Fri, 19 Dec 2025 06:35:44 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id kiVNMkDyRGmsZAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 19 Dec 2025 06:35:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f3b3264b-dca4-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1766126146; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=cT4qN4rahSIMvC+eBqG8v/nx5l6YO7mj0UbjIaDojlU=;
	b=iasgqqtNHAZFdPy4juRYuanG7y6C2fo7X1txc5ZMZ5g75zxHFUXwGKb90UUYYAJa47CWfA
	ogaUq+a50g/F3/qyPis216wzAZAlra+6LZKkqzRUFSqeBw9Mveqvw9Z1T+so8i0Ma/tJSM
	nlA4kTwArRW/vr/r2c+PdYBhBaNKGgA=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=hPjwwvNv
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1766126145; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=cT4qN4rahSIMvC+eBqG8v/nx5l6YO7mj0UbjIaDojlU=;
	b=hPjwwvNvWGHaVP49CkJA56IIh8+0iPfZCuq/kwMCCfmVQsVvabhYp8lJPMPUmFVGzmVVi7
	E5ZhnL8Uq7lbDPLndG/OIYM+LvecTUEFaHJP/OnzeYV2Ny41MnTb5RoI+dfd9hXARR1lu0
	CpfCKpNRzAr2nICSwKJjdfv+m6Ahgj0=
Message-ID: <42b250be-d030-4b9e-a307-0ec82f4bf351@suse.com>
Date: Fri, 19 Dec 2025 07:35:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: PV Mode support broken after 6.17
To: Elliott Mitchell <ehem+xen@m5p.com>, xen-devel@lists.xenproject.org
References: <aUSkUbjgRtWf2Tf0@mattapan.m5p.com>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <aUSkUbjgRtWf2Tf0@mattapan.m5p.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------2pt2ej39tPtFefBzF7CwPhuF"
X-Spamd-Result: default: False [-5.41 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	SIGNED_PGP(-2.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MIME_BASE64_TEXT_BOGUS(1.00)[];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-0.997];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MIME_BASE64_TEXT(0.10)[];
	MX_GOOD(-0.01)[];
	RCPT_COUNT_TWO(0.00)[2];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	ARC_NA(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	FROM_HAS_DN(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	TAGGED_RCPT(0.00)[xen];
	HAS_ATTACHMENT(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns,suse.com:dkim,suse.com:mid]
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spam-Level: 
X-Rspamd-Queue-Id: 0189D5BD14
X-Spam-Flag: NO
X-Spam-Score: -5.41

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------2pt2ej39tPtFefBzF7CwPhuF
Content-Type: multipart/mixed; boundary="------------wdCukae6GZqHTquVEs1diqkb";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Elliott Mitchell <ehem+xen@m5p.com>, xen-devel@lists.xenproject.org
Message-ID: <42b250be-d030-4b9e-a307-0ec82f4bf351@suse.com>
Subject: Re: PV Mode support broken after 6.17
References: <aUSkUbjgRtWf2Tf0@mattapan.m5p.com>
In-Reply-To: <aUSkUbjgRtWf2Tf0@mattapan.m5p.com>

--------------wdCukae6GZqHTquVEs1diqkb
Content-Type: multipart/mixed; boundary="------------IR4XCB43bgW0rnpp28HeZ06D"

--------------IR4XCB43bgW0rnpp28HeZ06D
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMTkuMTIuMjUgMDI6MDMsIEVsbGlvdHQgTWl0Y2hlbGwgd3JvdGU6DQo+IEFscGluZSBM
aW51eCB0ZW5kcyB0byBoYXZlIHZlcnkgY3VycmVudCBrZXJuZWxzIHdoaWNoIG1lYW5zIHNl
ZWluZyB2ZXJ5DQo+IGN1cnJlbnQgYnVncy4NCj4gDQo+IFNvbWV0aW1lIGJlZm9yZSA2LjE3
LjEyICh0aGVyZWZvcmUgYWxzbyBlZmZlY3RpbmcgNi4xOC54KSBYZW4gUFYgbW9kZQ0KPiBn
b3QgYnJva2VuLg0KWW91IGFyZSBhd2FyZSB0aGF0IHRoaXMgcmVwb3J0IGlzIG1pc3Npbmcg
bW9zdCBvZiB0aGUgcmVsZXZhbnQgZGF0YT8NCg0KWGVuIFBWIGlzIHdvcmtpbmcgZm9yIG1l
IHBlcmZlY3RseSBmaW5lIHdpdGgga2VybmVsIDYuMTguDQoNClBsZWFzZSBhZGQgaW5mb3Jt
YXRpb24gaG93IHRoZSBrZXJuZWwgZmFpbHMgdG8gd29yay4NCg0KDQpKdWVyZ2VuDQo=
--------------IR4XCB43bgW0rnpp28HeZ06D
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------IR4XCB43bgW0rnpp28HeZ06D--

--------------wdCukae6GZqHTquVEs1diqkb--

--------------2pt2ej39tPtFefBzF7CwPhuF
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmlE8kAFAwAAAAAACgkQsN6d1ii/Ey9M
ngf9FeI6fb9HOnTxYO+wPX7MIHplyGRL/KLFjoIZTsEoIZLWWcYJlKrGQBbIfI98lapS/h049Wkq
Q71SQOgE9x64RWOPWSVb5yGPwe58n0p0m2gh5JxZ6hwAYA57FjrjXwoFTewji8VsfUkmzNb73UVP
m9zZHj24UEakf0luVFPIJQbPeQ822a7ZpRrevqtrvj81abSRFL4tBMKVOa6KLmAWgrX9U6f+2SqD
wMkcgxBVbFFgONPkTKsRsIiDUdOd8/a6XyvozG8bKNmBEztLVnKx+xIOm/O4r17R3IAoNRnTJlCt
R4UGSPm2tV75ywgvX/OQiCoIsatTRLD3XnO4/45rew==
=FNms
-----END PGP SIGNATURE-----

--------------2pt2ej39tPtFefBzF7CwPhuF--


From xen-devel-bounces@lists.xenproject.org Fri Dec 19 06:52:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 06:52:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190428.1510876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWUM8-0003cx-9t; Fri, 19 Dec 2025 06:52:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190428.1510876; Fri, 19 Dec 2025 06:52:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWUM8-0003cq-5r; Fri, 19 Dec 2025 06:52:52 +0000
Received: by outflank-mailman (input) for mailman id 1190428;
 Fri, 19 Dec 2025 06:52:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tfUY=6Z=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vWUM6-0003ch-LZ
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 06:52:50 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 525d4895-dca7-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 07:52:45 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 164C9336A7;
 Fri, 19 Dec 2025 06:52:42 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id D4FAE3EA63;
 Fri, 19 Dec 2025 06:52:41 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 7QYnMjn2RGlBZwAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 19 Dec 2025 06:52:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 525d4895-dca7-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1766127163; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=1qIHjdgE3hic6PfLuaoLdbIviZQN7m+uPQFewHW6VEk=;
	b=JC79IO0veWUjD26eqEmFgOuGZt8CSQIB70iPCFN0yMorSMd6WbFSu05DNPEXjyces13yd3
	2gmW824Q6NYB3VJA/s9Bg2QJoAGzi6oopWFnhi9U9+LKjOBzgyCJgNGZ4Oh/VmY5h9Zsxp
	7DXw+aTbc0WaCT+caKTq2Uq0d8aXZ5c=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=jP77lcdl
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1766127162; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=1qIHjdgE3hic6PfLuaoLdbIviZQN7m+uPQFewHW6VEk=;
	b=jP77lcdlj3Ll80Nun6DjGueOlvY3/8cE/qcueMCnzHOuvBm6PUrau0houdC5GotarhPqyH
	CBSsggs7+q2XV8zc4C2EO1KX+E/3hf1/VEYFrqQPILtsSXp8pqxg1MpWohqvKKNp5QWiT2
	d5so04OaKa0Pyy/Fr97+AByEk+/GWc0=
From: Juergen Gross <jgross@suse.com>
To: torvalds@linux-foundation.org
Cc: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	sstabellini@kernel.org
Subject: [GIT PULL] xen: branch for v6.19-rc2
Date: Fri, 19 Dec 2025 07:52:41 +0100
Message-ID: <20251219065241.12549-1-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Rspamd-Queue-Id: 164C9336A7
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	MIME_TRACE(0.00)[0:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo,suse.com:dkim,suse.com:mid];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	RCVD_TLS_ALL(0.00)[];
	TO_DN_NONE(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Rspamd-Action: no action
X-Spam-Level: 

Linus,

Please git pull the following tag:

 git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.19-rc2-tag

xen: branch for v6.19-rc2

It contains just a single patch fixing a sparse warning.

Thanks.

Juergen

 arch/x86/xen/enlighten_pv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Juergen Gross (1):
      x86/xen: Fix sparse warning in enlighten_pv.c


From xen-devel-bounces@lists.xenproject.org Fri Dec 19 07:00:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 07:00:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190442.1510885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWUT7-000562-34; Fri, 19 Dec 2025 07:00:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190442.1510885; Fri, 19 Dec 2025 07:00:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWUT6-00055V-W3; Fri, 19 Dec 2025 07:00:04 +0000
Received: by outflank-mailman (input) for mailman id 1190442;
 Fri, 19 Dec 2025 07:00:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=4Y5i=6Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWUT5-0004NF-F2
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 07:00:03 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 566f1995-dca8-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 08:00:01 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-477632d9326so8719755e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 23:00:01 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea830fesm3200474f8f.20.2025.12.18.23.00.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 23:00:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 566f1995-dca8-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766127601; x=1766732401; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iNo0ZykmgEP3MTSjbwBOXsKs6TDDnu99SaBarTHYw8I=;
        b=Lp+IbrXLn2hqW3yvDH2OBA7n+MK31KjGfR/QmU1UX82ucSkBaSOOyuAfXxj74wCs5R
         PgZrmuiFdrJXuSGDrBOF/3v6YBKKyAr/VbByrH6wKxNkBAUcrrqWT9lYbRMq9JhKlm5v
         lLYL3ID+uRejBqZm01JEqVtX/dPGTBHXZMCA0vkMgY8kIzpOBxqjQx3hLjmK2A1QPmrR
         /9i3zcdQi8t5Omnsp8OIwAkd97J3St7He3bvpJgYgo4/K6Luy67E2ulxZuMSe0UWZA9F
         kwtg7WoZ/RWYct9eWwSyKDOKDJA3CYLWbbAFG6g17zNx39JSAiSjinTsTr2WMsw3AAsr
         Wx0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766127601; x=1766732401;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iNo0ZykmgEP3MTSjbwBOXsKs6TDDnu99SaBarTHYw8I=;
        b=YN5Bv+7k49+4+bVFoHPf8zIh65oOjZe9t9P2/WdXJxf5WBnm+i1MxVnT5MLjL49s6S
         3vn6wLj0HnmTq/MCkAHsPRPdTSygrvzDJIP4VTlzGkafDaCIr4+YsBu9IVd9KCZh+rLp
         Z2FeZ55bTXX2XCt4/H/FCkXrpuDYsF83dfVcRNIfurU9St+z0Wump8aBb0BEtjr8gh+O
         XIxySAWVA9xzztnlIlgOqNpTtYTirfjXQiRrDOTGsqghq3g9HcqDZtZCnfEca4Rpo6IZ
         Gz07+9iddo8sayGSkmtegXeyv9YimUtLTHuz+26Z1XzqQHr92wM4L5NH3y3pMrKIkNzp
         9V1g==
X-Forwarded-Encrypted: i=1; AJvYcCWeNeoLi31SL7yc0ZRAQIxvPzXw/mM2ioUkeAnxpx4uvrK7Z80OMV4DUlafUPClHmqNmK8JyvdMXtE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxH3IOh6nvsei3fH7pqFfEKusoVeuqQhU5mVc0TrYxzaEvTmeAV
	mN9IfoEwv16BY+sj+V9AhZTvnn1qYMKoPvQy9L/9TtZtzv2ui4q75N2pcgpk2BCMQA==
X-Gm-Gg: AY/fxX4RSvKAFF0KI+UyBcFdNCKH0fXWDLSd9gU5jsfZZtfbVp7mhNSQD0vle98F7WF
	e67jpP/Q94Z+0MNSQSjNSg6erle+kTLQSP87lwCmqxSWILRwixTnk2SAKhtBgb+9Lnba9WgIEUX
	FuPBVYot2kORI1i2DnYGWcKMg/2rUzwQVtUAw0RkhidR0eIn4gSbwjK3u5QAFqF8N2KMKE4ZAtl
	+iTrgjTrFPC2Kod+kEDWUGBhCNarX1oaQhWq08i5kItrMzQjhxCzMR258lL58xdg5XBAMrlsjpQ
	r4TNIPfx6r3oP7+r0O7ZsBj0lZdeN1WqiAk9WjuIeGvv6FcQIrbtYJDCNkaN09OVv5VUgD+omoh
	57hXXZ1ebuxucl2k4/7WHtKKAAb/Wsqw3zTYxpgNLj47Ey+m5XbllJFu1/PV/6zwCzvulZgJB08
	b0X4wMehaT4CyuCnEaTGO9ZQMcLOpHAsHOId96zJhjBy9zHBBaxyfWFyPyQ0fMNv2HBoa0SMo7S
	Rc=
X-Google-Smtp-Source: AGHT+IHfKVQLqC1JS7+s+c2VJwtV8ctgmDFTwLOPz5EOfd4z9agP22uFApulpFsV+warxArnX1nnXQ==
X-Received: by 2002:a05:600c:820d:b0:477:7b16:5fb1 with SMTP id 5b1f17b1804b1-47d1955b971mr12433685e9.7.1766127600794;
        Thu, 18 Dec 2025 23:00:00 -0800 (PST)
Message-ID: <9a3c25a5-16fb-4f4c-a2cb-9d881271a63e@suse.com>
Date: Fri, 19 Dec 2025 07:59:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] libs/xg: allow caller to provide extra memflags for
 populate physmap
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
 Roger Pau Monne <roger.pau@citrix.com>
References: <20251218151728.28339-1-roger.pau@citrix.com>
 <b9e1d2d9-22c9-4574-9f83-46ab649d28af@suse.com>
 <70177c8f-63b1-4c6e-8b4e-52b7435e9197@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <70177c8f-63b1-4c6e-8b4e-52b7435e9197@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.12.2025 22:34, Andrew Cooper wrote:
> On 18/12/2025 3:27 pm, Jan Beulich wrote:
>> On 18.12.2025 16:17, Roger Pau Monne wrote:
>>> --- a/tools/libs/guest/xg_dom_x86.c
>>> +++ b/tools/libs/guest/xg_dom_x86.c
>>> @@ -1260,14 +1260,15 @@ static int meminit_pv(struct xc_dom_image *dom)
>>>      /* allocate guest memory */
>>>      for ( i = 0; i < nr_vmemranges; i++ )
>>>      {
>>> -        unsigned int memflags;
>>> +        unsigned int memflags = dom->memflags;
>>>          uint64_t pages, super_pages;
>>>          unsigned int pnode = vnode_to_pnode[vmemranges[i].nid];
>>>          xen_pfn_t extents[SUPERPAGE_BATCH_SIZE];
>>>          xen_pfn_t pfn_base_idx;
>>>  
>>> -        memflags = 0;
>>> -        if ( pnode != XC_NUMA_NO_NODE )
>>> +        if ( pnode != XC_NUMA_NO_NODE &&
>>> +             /* Only set the node if the caller hasn't done so. */
>>> +             XENMEMF_get_node(memflags) == 0xFFU )
>>>              memflags |= XENMEMF_exact_node(pnode);
>> I'd like to suggest to avoid open-coding the 0xff here and elsewhere.
>> XENMEMF_get_node(0) will be less fragile overall, imo.
> 
> XENMEMF_get_node(0) is even more meaningless than 0xFF, which is at
> least obviously a sentinel value.

How that? XENMEMF_get_node(0) is the node that is used when no flags (0)
were specified. I.e. the equivalent of NUMA_NO_NODE. The underlying
(pretty abstract) point being that if we ever made a binary-incompatible,
but source-compatible change to how wide the node representation is in
the flags (e.g. by the consumer defining some manifest constant to
engage the alternate behavior), XENMEMF_get_node(0) will continue to
work while 0xFF won't.

Otherwise at the very least I would strongly suggest libxg to make itself
a #define for this (repeatedly used) 0xFFU.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 19 07:03:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 07:03:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190451.1510895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWUWC-0005vj-GY; Fri, 19 Dec 2025 07:03:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190451.1510895; Fri, 19 Dec 2025 07:03:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWUWC-0005vc-Di; Fri, 19 Dec 2025 07:03:16 +0000
Received: by outflank-mailman (input) for mailman id 1190451;
 Fri, 19 Dec 2025 07:03:15 +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 <SRS0=4Y5i=6Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWUWB-0005vW-FJ
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 07:03:15 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c9410b97-dca8-11f0-b15b-2bf370ae4941;
 Fri, 19 Dec 2025 08:03:14 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-42e2e628f8aso563536f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 23:03:14 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea82fddsm3233965f8f.25.2025.12.18.23.03.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 23:03:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c9410b97-dca8-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766127793; x=1766732593; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=58ctbPzrKroSpZLUeCsfkwPHLo+VKD7C2xZ5LDa5gGk=;
        b=K4+OR0ojatqp2Wh8sA+IHU2n/6napRNCq/hbn6oxyEmE029sAFrOD0WeHEMhdWIll/
         gnfJ8WdGE3IyOhToj7QgNsQDBkvFgnSScI5ympMLoTByoH20f2B9g03daZuK8F9wj03U
         t42q22PH4/UkCWuOBXFvhahUakL8IZLhrUHW2vYIwiI9w938dRXY5YboRj9o0UccXBUR
         qXEZWI1CKlKYERvllzvjP/+BrWi2b3kEuCgZQOBMGtY/kJM7W/V/HNPB+5CGOHA1ngSG
         a0PcI576R0ocYhPRX5OwLTKBuIbCID0l31k9iRX3b5VD8tmyZT27ToosvMZwg1opBM0N
         5Ptg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766127793; x=1766732593;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=58ctbPzrKroSpZLUeCsfkwPHLo+VKD7C2xZ5LDa5gGk=;
        b=MS1oPWBrOkUBcHn06h2LPj4kNEivWWdjRzMp4uhx5gq0X9O5KjnAnbR9g954fc+7/z
         769ORUZQL7B8Z/pE1NSXs5n9T+NN2AVqJHtk1Yqp/GpAwaIkx3UAldP0nTi0pg8dkLyL
         xmXkV8ndb1nUQWboErPTDLadVTio6k26OW+v5fT9bEkC5WNCP0VNOy6HeM1fpAJcr4y6
         xU8LtS28jVJhRlAQKxleKUoQx0x5URAIVzUEWs+4zgY+WlpAOUglMWTGu12B5MKvNDlT
         MNlTN2t5J5BKnURUFmrnvyXzgeJyn/qktBKfpAwRaKCU/0OwPl4L5w/SVmeL0JS+1d9f
         uZrQ==
X-Forwarded-Encrypted: i=1; AJvYcCUhGhYZkkILF3AVaWYXswgJTXXrRKKmaOqLm1G+aVJA0gSL9lFdTm+Jm16JZQA+vKgv7Hx8SovCit4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxmH63e+c6IbHUW0iE+dR7iDlwCHm4Jkp+Ad/N9zeHFw5eGpp3d
	vmV5cdE29sasVGMhiqkhplqG3q8mZS6u+/6YpN1EzqptTCOyBOhxE8La6hzS7XoRWA==
X-Gm-Gg: AY/fxX7T/EaiGxBT6Op5lKbZmljkfaYZhxyA/piJFdhdheyGhUbvpAEO0sOJ3BDpsW3
	/7m0XwmL1LqhVbuTY2pvJj5MUaQ6xaJNEzXK2UbnhTBY1uyYJMiHTOcspjYMj9iIuxQkJ6D9tEC
	+avA3ur0S656bOu/vVKH7kQACkiqO3XUyZkB8zlIooN+x/NXSSM4PIamgU71IQ9I4W+0curN8xI
	2JWzsjz41Z2NFryaOi3iSonGWbzs0kxjMO/ZqXT2WOBQK7OnsW1raekIZQFxQm6ynysDjEUnll6
	BqOrKjKVdahxrIpW/1+rX6MVHgLGBnfZRcqz6EFMUFg5hUxb+HZ62z+2IxJt/Za25YfoAiB9lHT
	P+8W3lfsLadDI1KjTrq832PRN1y+K/i8D1PyK3Xahx5LWpTAWF/lp3ZdP4vbAnusRukYEO+/ht3
	/KwlghGbvuYBn9EVKxEPUDJdhk8oRp0GP+5n1IsEUI8jYyZJI3oPOyGAKPdNAayQ2j8qg5pVv0s
	k0=
X-Google-Smtp-Source: AGHT+IGIgOLZ6uvymKJ+sbXwMINmce+vUdlMD1CUwtH00cPg/fX7r4dcW52FHunqmzqp3AinRcDd8A==
X-Received: by 2002:a05:6000:2886:b0:42b:4247:b077 with SMTP id ffacd0b85a97d-4324e501629mr1944893f8f.41.1766127793263;
        Thu, 18 Dec 2025 23:03:13 -0800 (PST)
Message-ID: <3c94579a-f65e-40f8-a6e3-9fee9ddc56e3@suse.com>
Date: Fri, 19 Dec 2025 08:03:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 17/19] xen/riscv: add support of page lookup by GFN
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
 <4cef2922ff0fa82eb70e50c737cb00ef27ef13a3.1765879052.git.oleksii.kurochko@gmail.com>
 <9d4d89f1-81c1-4532-8646-c736ac56e7f3@suse.com>
 <4eec691b-6c81-4c9e-a9c1-00c81e51c691@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <4eec691b-6c81-4c9e-a9c1-00c81e51c691@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.12.2025 18:25, Oleksii Kurochko wrote:
> On 12/18/25 1:55 PM, Jan Beulich wrote:
>> On 16.12.2025 17:55, Oleksii Kurochko wrote:
>>> +/*
>>> + * Get the details of a given gfn.
>>> + *
>>> + * If the entry is present, the associated MFN, the p2m type of the mapping,
>>> + * and the page order of the mapping in the page table (i.e., it could be a
>>> + * superpage) will be returned.
>>> + *
>>> + * If the entry is not present, INVALID_MFN will be returned, page_order will
>>> + * be set according to the order of the invalid range, and the type will be
>>> + * p2m_invalid.
>>> + */
>>> +static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
>>> +                           p2m_type_t *t,
>>> +                           unsigned int *page_order)
>>> +{
>>> +    unsigned int level = 0;
>>> +    pte_t entry, *table;
>>> +    int rc;
>>> +    mfn_t mfn = INVALID_MFN;
>>> +    P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
>>> +
>>> +    ASSERT(p2m_is_locked(p2m));
>>> +
>>> +    *t = p2m_invalid;
>>> +
>>> +    if ( gfn_x(gfn) > (BIT(PADDR_BITS - PAGE_SHIFT + 1, UL) - 1) )
>>> +        return mfn;
>> Since on all other error paths you set *page_order (as long as the pointer
>> is non-NULL), shouldn't you do so here as well (to the order corresponding
>> to the full [2nd-level] address space)?
> 
> It makes sense. I am thinking if something like would be fine:
>    @@ -1123,7 +1117,7 @@ static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
>                                p2m_type_t *t,
>                                unsigned int *page_order)
>     {
>    -    unsigned int level = 0;
>    +    unsigned int level = P2M_ROOT_LEVEL(p2m);
>         pte_t entry, *table;
>         int rc;
>         mfn_t mfn = INVALID_MFN;
>    @@ -1134,7 +1128,13 @@ static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
>         *t = p2m_invalid;
>     
>         if ( gfn_x(gfn) > (BIT(PADDR_BITS - PAGE_SHIFT + 1, UL) - 1) )
>    +    {
>    +        if ( page_order )
>    +            *page_order =
>    +                P2M_LEVEL_ORDER(level + 1) + P2M_ROOT_EXTRA_BITS(p2m, level);
>    +
>             return mfn;
>    +    }
>     
>         if ( check_outside_boundary(p2m, gfn, p2m->lowest_mapped_gfn, true,
>                                     &level) )
>    @@ -1152,7 +1152,6 @@ static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
>         if ( !table )
>         {
>             ASSERT_UNREACHABLE();
>    -        level = P2M_ROOT_LEVEL(p2m);
>             goto out;
>         }
> 
> Or it isn't the best one option to define page_order using "non-existing" level?

Well, ...

>> Furthermore, is PADDR_BITS really the right basis? Don't things rather depend
>> on the number of levels the 2nd-level page tables have for the given guest?
> 
> I think you are right, it depends on the number of levels the 2nd-level page tables
> have for the given guest.

... the more suitable thing here is also going to be applicable to the order
that you pass back. I.e. whatever the bounds check is going to be based on
can also be used to produce the appropriate order.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 19 07:49:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 07:49:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190462.1510905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWVEi-00034a-Rb; Fri, 19 Dec 2025 07:49:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190462.1510905; Fri, 19 Dec 2025 07:49:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWVEi-00034T-Oc; Fri, 19 Dec 2025 07:49:16 +0000
Received: by outflank-mailman (input) for mailman id 1190462;
 Fri, 19 Dec 2025 07:49:15 +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 <SRS0=4Y5i=6Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWVEh-00034N-A6
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 07:49:15 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 36066046-dcaf-11f0-b15b-2bf370ae4941;
 Fri, 19 Dec 2025 08:49:13 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-43246af170aso800548f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Dec 2025 23:49:13 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea830f3sm3472962f8f.22.2025.12.18.23.49.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Dec 2025 23:49:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 36066046-dcaf-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766130553; x=1766735353; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XdxpJ4Wmyzzs+t7AiPTwm6XrCxm5MKLnB+2tL2YQ16Y=;
        b=MheIvioBYTM8Y16SazqHEgOWI7u7NSq4vaikuHO1jpZZJ2I6Qz3viv3JR4lK2TRcrc
         uKJlwUd8ENEttH568eCjEFPEh21vXntQnZaPZSPxZnVlBTLlMRYPZ1x8xccMFwFIzmP9
         W6bmT/LXfCtpaprlOslrvE6H2Dtl8zCht1IvMdqOKq+bnk5wE9gJ1nJCGT/4/LOjB5n0
         wZMKZdCGPFSCUcu9ZOoZlu1zVhHpl8pgE+HRGjTQu0UaLhfoivPEqx6VaN/PQSpU2/e0
         svZus5bWSfEniqdnyxLPUFn6gu9KaUzVQ38Wjp5NG1Tn+h6SIwtyCLbviv49Uz5K0aLh
         pSIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766130553; x=1766735353;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XdxpJ4Wmyzzs+t7AiPTwm6XrCxm5MKLnB+2tL2YQ16Y=;
        b=AGLaEEmTT7l7YaadUh4U35QZEkm3/qEPOhXVpnGLcyOG3kG9KS3sYb2HVCyQic5p73
         BsXAzgPEufrFcFS5C26C2e7Yz7GpNmPecVjkmZ/15dkxkb7NMDIw5IAUudszCA0WNiBL
         lvRdl9qZS61vJerWWrrpBD36m0LRXlCt+Wny/ZP4amXia8I/1wY920Cn1y8+0xrQ+96J
         g0PaO/4o2+qJbNtlE4tQz5uKUbnThOZ3ofCqEDMO0w1nAwlj+vy6bDcZ2ys3NXQYmePF
         yV7ouQYCUgb4BcSoXo6TWSW36eTYFyzF+n3Mw/MrbSTZb1T08TK7DX3v3k0ZHMv5JWWx
         hGQw==
X-Forwarded-Encrypted: i=1; AJvYcCW5wM4ZVOgKERaY6xnr6Pf0UaUbb2BBqCNOne4/jztTkZtBUsRr5fY9+4Ze80MKArwjfH53aJIHOow=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwrAwtb5VsRPMzntmE47NgB3saw7XZHx0Wj9RQzXF2AHcecAFYO
	n+vH97tFLOSJl4JzHOVV66J6B4obT9BZCcZY40K3Hvom+lPhtwFJj7gLlq/ALCAXJQ==
X-Gm-Gg: AY/fxX75PRDT4Qy6v0yzkgxJHJyeg9Vemc/AfJsgmwwmdBzZWIhHQJfF3ADsRKVdHdC
	uxCMcA/+foAvenLh8y+G1TSW2Lr+DYXzPuqgqa3pkXK2xJu+VUr1UiNm6Jw8GhDgoPbj6MjM3gb
	spk219COtvsaik+hjiN9egHGseF5qn9GiSo43CUyCs/Mkg1Sf6DP+/4R02XECJqPzPsGiSdL9ft
	iOMkKY+opksSo/aFBiH13g785LRWYZxS6XlOVptXSUVJkKWz4ZbXcflagbUspt1rnzGRyKPuRsk
	3cD2Xbc6vips7s4GJurrTKA+AGFtIV3ltaqdaWbgGGNrunCuLjtdFWH9LUbUzQmbrWGau/mRpHv
	pd28ri24ajLBmB37hrrfJlN+sfKKHA1HRkwzWg2jww62EH4SKsHTb35OYmgxG7kPGpzyzLT/sHS
	qwNY69uFwCVoXsxDSO4tw1Cdpqep19V7vT0aJp2Gi81AeZLYTBSfzIzgV9HwHQ+s5dq5k2K7dKy
	YM=
X-Google-Smtp-Source: AGHT+IE+AUy/Xm3RV9adEMlCXNlw2IB3O5S2kGyzoe3ho7XnJXQhSzcfY47vOj79pFC3jcLv7ncRCg==
X-Received: by 2002:a5d:584e:0:b0:430:c76b:facc with SMTP id ffacd0b85a97d-4324e42e792mr1908813f8f.20.1766130552707;
        Thu, 18 Dec 2025 23:49:12 -0800 (PST)
Message-ID: <ff89e74a-c4bf-4023-b839-cf9430d55a48@suse.com>
Date: Fri, 19 Dec 2025 08:49:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/4] xen: move alloc/free_vcpu_struct() to common code
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1766053253.git.oleksii.kurochko@gmail.com>
 <099753603c18bbba0db702746d394c2e77e15a4d.1766053253.git.oleksii.kurochko@gmail.com>
 <803b31e0-c696-48fc-bed6-3d62ed4563fc@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <803b31e0-c696-48fc-bed6-3d62ed4563fc@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.12.2025 19:34, Andrew Cooper wrote:
> On 18/12/2025 5:28 pm, Oleksii Kurochko wrote:
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -392,6 +392,26 @@ static int vcpu_teardown(struct vcpu *v)
>>      return 0;
>>  }
>>  
>> +static struct vcpu *alloc_vcpu_struct(const struct domain *d)
>> +{
>> +#ifndef arch_vcpu_struct_memflags
>> +# define arch_vcpu_struct_memflags(d) 0
> 
> ((void)d, 0)

Nit: ((void)(d), 0)

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 19 08:21:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 08:21:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190483.1510916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWVjO-0000E0-JU; Fri, 19 Dec 2025 08:20:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190483.1510916; Fri, 19 Dec 2025 08:20:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWVjO-0000Do-Gc; Fri, 19 Dec 2025 08:20:58 +0000
Received: by outflank-mailman (input) for mailman id 1190483;
 Fri, 19 Dec 2025 08:20:57 +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
 <SRS0=AmMB=6Z=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vWVjM-0000Di-TK
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 08:20:56 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a3593c89-dcb3-11f0-b15b-2bf370ae4941;
 Fri, 19 Dec 2025 09:20:55 +0100 (CET)
Received: from DS1PR03MB7871.namprd03.prod.outlook.com (2603:10b6:8:21f::17)
 by BN8PR03MB4962.namprd03.prod.outlook.com (2603:10b6:408:7b::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.9; Fri, 19 Dec
 2025 08:20:53 +0000
Received: from DS1PR03MB7871.namprd03.prod.outlook.com
 ([fe80::3a7e:e6ed:f8e9:9fb3]) by DS1PR03MB7871.namprd03.prod.outlook.com
 ([fe80::3a7e:e6ed:f8e9:9fb3%7]) with mapi id 15.20.9434.001; Fri, 19 Dec 2025
 08:20:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a3593c89-dcb3-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GMMNvIfE+ThMgCL1XwP1UPZkDcL2/M9OdHZUshWhcYslJkf6zH9Jg8YH/YctFPitVGe3sCBaAmIb8okFasErJ4k5R18/hPGFDjmB6shOCTK8+oPM6S2NIqyUC8GaVMk03pfYKOCZvDAPpcAOA6gfDIx64IJoA6WzgqezrkJM/oN/fzBI4kl7L1BSxhVyYOUHbTiLtozSF3/IfKU9TIyGpj4IYIoRAZoCEgMdIx2FZpE2dwDLdD+ArUEP+wvKobN7i6f3+E3BJnXCU3EpzsKDzkgAIZqheC/FfrGBaLK+kVn0YJ4O6DCdr/knt1HpSogAG+RfVD/1hGT9v5EgDxfLIQ==
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=ZoezJyPHiC0tSiF44WOen1wvN8vgB8Dkei2Rn7ufFwI=;
 b=Ynrszex0vJ705q7KggE5LK/ini2+gjKnnqj7n231H1QrmrXjQVLwKBOU7JpjgtDUD+QVX19iR8UgEAMUBhON+5zdWb5bd7Dscv6CJOQI9li/m8Dym7wb5kVcBtdiGtjnQlrThoq75CfK0cXqqu4CPpkPduhp2VsoNwjqL0ye61Gr2dki9DBD42qNFEceOCKBHnATIPrESNcFN6dWebqm8PUUIRjVS3Frf+2FOi8KJcShSTYlm2k230eKyV6vgOvhwkG1s0W1StOb29khHx8WHelWH8Y9s8qutyUlCuXZNVUp0rPGd2yysPCW5D2onbtolrUGXl8+NHd+og/JpcsqIw==
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=ZoezJyPHiC0tSiF44WOen1wvN8vgB8Dkei2Rn7ufFwI=;
 b=E/Npb7USzQLdFJhI8wSkB+9XHIzQGwn2mgqWJnl8FepMrfPpxFUJ5IldzZ4SovaQM/HfDBivioqp/h8E5fWlVOhTDxxrzh6/9fdYE4UhlfWWZFvFvmEx20/fSQb8lbvkDDVyzMlHjDw4QZQFqzYa2wSCHpWkM5t7EONfVfrRXKc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 19 Dec 2025 09:20:49 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] libs/xg: allow caller to provide extra memflags for
 populate physmap
Message-ID: <aUUK4dyezbqgUMiT@Mac.lan>
References: <20251218151728.28339-1-roger.pau@citrix.com>
 <b9e1d2d9-22c9-4574-9f83-46ab649d28af@suse.com>
 <70177c8f-63b1-4c6e-8b4e-52b7435e9197@citrix.com>
 <9a3c25a5-16fb-4f4c-a2cb-9d881271a63e@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <9a3c25a5-16fb-4f4c-a2cb-9d881271a63e@suse.com>
X-ClientProxiedBy: PA7P264CA0342.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:39a::12) To DS1PR03MB7871.namprd03.prod.outlook.com
 (2603:10b6:8:21f::17)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PR03MB7871:EE_|BN8PR03MB4962:EE_
X-MS-Office365-Filtering-Correlation-Id: 8516dddf-62af-4ec6-0fe3-08de3ed78661
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bDIvWk8yQ2FwNlgrQ2ZnRjg1OVB4NnkzYVNnMWdYK0kwSDg2aXU4citXWkUy?=
 =?utf-8?B?bTVtL1M2TU5NdTg4c0JyS3ZYNC9jWVltQkx0ZjBTUlVvR1UyQ0NZZE8xdUVF?=
 =?utf-8?B?Zm5aRXhUOC9BL2JtcG9aZHVKbUdVOEZReU1UT0N4dWVCMVA0NU41SkFmQW52?=
 =?utf-8?B?TFNpUTVvWC9VMm1SNEJENHNKWmRIQnEzaC9GbFlaY0grVlpEMTlCbjZKd0ll?=
 =?utf-8?B?Qk8wMGdSVlNYUjVRakZLbW5LcmlkZi9ZazdDNmZVWGFpaVkvdmgrUlhtbk43?=
 =?utf-8?B?NHZFd01TaVByMDdKcElueWVuNXlyalZQb0g2QUxEY2ppN29FQTB2K0pUMlpr?=
 =?utf-8?B?enA5dlRBdHJTNTM0QWg4eVhhNmxDMUJvc3lWRXl6ZEs1TENob2N3QWJRZVZC?=
 =?utf-8?B?UWpDNnVFWXVCdVNUaUhJTDZwbFh3TXk3QjZOSkR5RCtnUEFqK1AvNStEbUZS?=
 =?utf-8?B?YzRwZDRMbzN3SjJ3S2xWNEovbUYrSnA0c1RNQVNHdmt6b3JWc0c0d0hHR214?=
 =?utf-8?B?RnhZWGEwWU9QWFlPQUJ2WkxRRjJ5TGdYeWt4a0tlN2JwU2VjQ2Z4Nm9VSVlo?=
 =?utf-8?B?Sjl0U3Y3Nk5aa0ZDNXlOSjRjbU5QaGdkMXJudUVDVWJsZ0RuVlkrdXRnZUM3?=
 =?utf-8?B?WVpvZ09kMmc3TmdOWnpydFc4KzBWN0loMHdGTkcyNi9xQlhkUTZnYjkxV09Z?=
 =?utf-8?B?MEY2L2RBSWYyd2RTcklLTHRLb2NEemxqcWJsamFnTkpMdGcrQStad2NhSzhj?=
 =?utf-8?B?R09rcE1KYXJTNXBpTHRLNks3L2N2MWM1Zy9Ed3A4eENpYldWT0NKWXhWWW9Y?=
 =?utf-8?B?SkpnQ2wyYTdraXNLOU1JdHhnYXB1Qm9wTEN6bVpRVzMzWGN0K1ZkYVJZL1RJ?=
 =?utf-8?B?YS9LU0FIUmxCb204RCtvWDNLR3NmMjJ5OXpLbEVldDNIeEpVYUpMWW4xdUwv?=
 =?utf-8?B?TjdXRmFIRU1xdzBnT1NOUFVFVkxWVXc1ckpoTXRQck4yM3NoaTVtNmNjM2VO?=
 =?utf-8?B?citXUXlMcWlvOVVsVHQvSWN6b05TeFhpVWZWWnV2dE5EcExmeER1d2hzOFFS?=
 =?utf-8?B?aXdSZy94TEcyMUttZ1R2VG9SS1pIQVAyN3U4azdBNnZqekJST0Nud1FhNUk5?=
 =?utf-8?B?MExkejYzeTJFRDN6aWxsTXZZMS9ySk16RWxubUFGWXZuS2d0QUhVWlVKNVU5?=
 =?utf-8?B?ck1EVW1VNW5UNnZubWhGNDJUOGlCVkwyYUNySjNOZXo3aVlMREw5dlRtWTBF?=
 =?utf-8?B?aE80bThBRWtvMi9SMmN1ektMd2JsV0dGV0IxRHBzVVlFTmx6QnFTbTRONk5C?=
 =?utf-8?B?RW9RTDl6bVNpamJrRnkreVROVjN2Qmx6aG1DVDdJYkZpSm4rY2tKbHpkbktZ?=
 =?utf-8?B?NVVMK1hPaE1GWnZlYW9nZGNsbUY0QVJiUlFCMWh1ZDdZdldUSEdaRWp1Q3Ju?=
 =?utf-8?B?Q2xTdmdPazM0aCtnYWF2Q1VqVnRtWHNSeUR3ZVMxd0ZyRFVXOGJ0MFFYMnVw?=
 =?utf-8?B?WGFJRlMzTm94Y3Buc1FEbjRnWkNkN2tFTXJVQmxYTVpteXpneHNINnJnSXJ0?=
 =?utf-8?B?YlJ3WWlhdWhJNGkwbWpIQzBMVkx4SzM1T0RIOU80UGx1L2ovbm9XKzlDQ1dW?=
 =?utf-8?B?WVpqWURoN2d6OXlxQkZOeitCZTVqUXVCNE9tZ0ZrbkNpM2VpMW55Qi9NMFRR?=
 =?utf-8?B?VXpoTlNhYXdIaHoxeCs1anZ6V20xdXRvRkpldDlqTFN6Z1VxR3J2SHJEQmFw?=
 =?utf-8?B?OEZ3aHB0dXVRY241TlRXc092bkUyaFp2SXlObFZVd1FnRmdsMjQyTmxhWVdV?=
 =?utf-8?B?N1huY29DeThLVHN3TkpnSlI3YlkyWS92cUJjK1ZXVjc4aGQ4eFdjZWQ1QzF3?=
 =?utf-8?B?RkRRUnVTRU9KVzVBNVNLczdqaVQvQUhPbFBBaTVueHd2bExRR003UC82K0lk?=
 =?utf-8?Q?sQli6tCE+SLN2hFaYhZbjD1OXaqLyhc7?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS1PR03MB7871.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QVhGTnRGSndGWDlwQ09lZ1BuNW90dk9WbkdDekNmelZuYktaWTk2b1Q1V1Fy?=
 =?utf-8?B?SlJRTVhxSzF6Z0ExMnBvZVBFVWhXbjQ4UWduQWxTRW50eHAycVBMZ2NvMHJa?=
 =?utf-8?B?MFlKcjVmZVU3cGc3dGxCaE9SSm1CRThzQituc3pHTlFvTTlqeDFmblY4aXdS?=
 =?utf-8?B?VXBMZk42VG1pQTZQdFE0MVFsK1paZkZ4VHNFeEJlUURJK1hGTWFiYkpIcDh0?=
 =?utf-8?B?OFR3bHZybXF5eDZRQk5JVm1mdG5FdFhZRVhWa25xNWRGbUJKRDVkcFh4UDY0?=
 =?utf-8?B?dGI2SzlJZ2xXNGw3b2NOZjlWSHFGTDlTaFVFckJobHhObVpvYUsyUTdQZnEr?=
 =?utf-8?B?Z0kwdlJmbFE4enpHc3Nsd3h1eVhPR1YwOGg2UTU3WVRXcmNpbkNaN3JYMzJh?=
 =?utf-8?B?RzZFT0dXbzQxSFRja2kyT2cvaEhrdTIrTFl6SW1lT0I0T1puZnZLUTFEdVRs?=
 =?utf-8?B?WHF5azNURGw0ZTdJcCtQY2pTUGhRaURkczNRbVlDbkpadWJtWHR6NUhJMUdG?=
 =?utf-8?B?N3dnemtpZEdHeXlFYnpzS09iTTZVRVV1Nis5WUdZSFdtWWJEL3dkRkFpK2pz?=
 =?utf-8?B?bWFtdzV0Wk9DbjF1RjZqNHRleC80UForazJiQnNlQUROalpXdUE1T0NvWStR?=
 =?utf-8?B?eDNWVjBnM2Z1NWhYbGM1eWFOZEd5UjJRcGdaOGFHTFpBVXdiS2xJUXByWHdL?=
 =?utf-8?B?d2dTOUNTRkVaSjFsYStqUzdzSFBNWWowd2xCbnZOVVpaQzkraWRIVTluUXdH?=
 =?utf-8?B?b0dteCtXd0tsRGxyUUVMRVNqZGtCWkV2bkZUT2l2QUNFUlBOMjVGaGRUeXZ5?=
 =?utf-8?B?UndBYVZPRkkzNjVLaXJDdmVYRCtLRWlGd1R5Mzluc2tiSmdEQXc1VlhvUER4?=
 =?utf-8?B?WTE4blBzdHRhbGhIU1FDT0twcEwvWUVwQiswcE9rbXZkZHJZTC92T0NuVkVD?=
 =?utf-8?B?QmFqRG5YUkg3UUM1MW53ZWcrc1VmRnJCRHNhVlJvbDNSc2lyT0hWVHdHWHVH?=
 =?utf-8?B?aWZxVDV1NXBKRm5XV1NvY1VtcWNnVzQrSmkyaHNzRDR1b2R2QWN4ZTIrU0l2?=
 =?utf-8?B?TDFFVnp5TTViNGgwVHpBcDZUZi9mMU01S0NtaXRxR2FGdE1vTVhUQWVwTVlk?=
 =?utf-8?B?RzZKSm1GcklHMnBSNklxbXlRZXhWVnJYbzhod1pJNmxkUll2MkU4cE4zUWZz?=
 =?utf-8?B?TEZCUmZMR3B4Q3ovQzZ5WTcrbE5WSHRhaGpzM2lqNDVHNi80akplS1dMOGU1?=
 =?utf-8?B?NTEyaE1qbFlJQldtSWFLc0FlU3V0NmVqSmZzbjdiUkMwb0Znckc5OGRsckJ2?=
 =?utf-8?B?T0pZdzIvSFBKZy9aNi9sd2h4R1ZkMWpXcEdHa3BVZTF1WWZ6dS9HZlFRSzJF?=
 =?utf-8?B?WlBJMm5wbE14SVdiZFhYTUtKRUw0ZVpySU4vN1Z5QnExRVk2NVVoVlBrWXc5?=
 =?utf-8?B?MHhRU0Zwa0FjSE1Iekw4Uk9nQU9DTVJWUUVDYUZQSFdsbCs5eUlJUHdxMWhK?=
 =?utf-8?B?dStvSWp6MVhlSzJYOXlvSmtFNDQ1dWNLZW45c3l1RDJLdVRyb0xSdm5Jbm1y?=
 =?utf-8?B?Q3h4MC96SENFZGlFek92dGEwTTg2TTBhS0hQV2t3V3hnMTlUY3d6c2R6WHE4?=
 =?utf-8?B?RDZvdXppSGFndEdpTFpHSjQyYzJxbTcrdHJhWG9PdDJ1ZGV1SFVLeE9Xazl0?=
 =?utf-8?B?b3hYZWQ1VktENFRPbG1aQ0pONmk3MktjTUsyODBXeWpDVXhBTXR5TGN4Rk1V?=
 =?utf-8?B?ZzlCazJQYzluQ0VoZ1FwSnNPSXpMYXFYN1h4blhicmpiaHVrYnlpN3RhVnF4?=
 =?utf-8?B?QzB1ckI2YnpFQkFkZmhnSTBQL2drUGFISjhQd1JxZktpNHlRVnozbG53NlU5?=
 =?utf-8?B?WGJETjhZODI4Mk5EUmZMbmN1aWxDZHRid0MyZ3NkQi80S1VEdTZpVklqR3JF?=
 =?utf-8?B?N0JWMFN0dDNuN3JPZjIwZmRjakd1R05mdmFJckNzQ3pxOXFQSVVaa0VLNTh3?=
 =?utf-8?B?a3kvT3NqMTZzNzE2a2QvYllNZXlqa2RYTmlKNDdyZW5kWWg3K3gzdjYvbEI5?=
 =?utf-8?B?RnhtdExwNVVBM2FyVU0xaHJaOFlGUHFoeEpRM0NoQzBBZVZxWW4vNDYyL0xQ?=
 =?utf-8?B?eXVETFQ2QURPN3pjSHN4WUVPbXBxMXpuaTRib1pkL2ZvTnF4cy9WaWVLSTNN?=
 =?utf-8?B?dStpZjVIR0NDbTh0SHJQVnNQbUZLM1p2L0NKOTRqZWs4Z0lramdJN3YwdWYr?=
 =?utf-8?B?emhkd2dkRzRacnJ6QkFMWk1FbXR5Ynp0TWlJc2RyS3lTaU5ETmQyS2VpcUNR?=
 =?utf-8?B?VFNKMEYyOVZYVWR3MDlFQUhDbFZWNWhPNTYxeXpxV2cyalI4NjBxdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8516dddf-62af-4ec6-0fe3-08de3ed78661
X-MS-Exchange-CrossTenant-AuthSource: DS1PR03MB7871.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2025 08:20:52.8950
 (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: UOoy+P3YHF/ExVG2TpcqHy10Y28RQcO9CQAUVoXqGf7hX23vOrjACmfXi8oBd9Oi1g1/OXDkoPr2k5ka4ABcbQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR03MB4962

On Fri, Dec 19, 2025 at 07:59:59AM +0100, Jan Beulich wrote:
> On 18.12.2025 22:34, Andrew Cooper wrote:
> > On 18/12/2025 3:27 pm, Jan Beulich wrote:
> >> On 18.12.2025 16:17, Roger Pau Monne wrote:
> >>> --- a/tools/libs/guest/xg_dom_x86.c
> >>> +++ b/tools/libs/guest/xg_dom_x86.c
> >>> @@ -1260,14 +1260,15 @@ static int meminit_pv(struct xc_dom_image *dom)
> >>>      /* allocate guest memory */
> >>>      for ( i = 0; i < nr_vmemranges; i++ )
> >>>      {
> >>> -        unsigned int memflags;
> >>> +        unsigned int memflags = dom->memflags;
> >>>          uint64_t pages, super_pages;
> >>>          unsigned int pnode = vnode_to_pnode[vmemranges[i].nid];
> >>>          xen_pfn_t extents[SUPERPAGE_BATCH_SIZE];
> >>>          xen_pfn_t pfn_base_idx;
> >>>  
> >>> -        memflags = 0;
> >>> -        if ( pnode != XC_NUMA_NO_NODE )
> >>> +        if ( pnode != XC_NUMA_NO_NODE &&
> >>> +             /* Only set the node if the caller hasn't done so. */
> >>> +             XENMEMF_get_node(memflags) == 0xFFU )
> >>>              memflags |= XENMEMF_exact_node(pnode);
> >> I'd like to suggest to avoid open-coding the 0xff here and elsewhere.
> >> XENMEMF_get_node(0) will be less fragile overall, imo.
> > 
> > XENMEMF_get_node(0) is even more meaningless than 0xFF, which is at
> > least obviously a sentinel value.
> 
> How that? XENMEMF_get_node(0) is the node that is used when no flags (0)
> were specified. I.e. the equivalent of NUMA_NO_NODE. The underlying
> (pretty abstract) point being that if we ever made a binary-incompatible,
> but source-compatible change to how wide the node representation is in
> the flags (e.g. by the consumer defining some manifest constant to
> engage the alternate behavior), XENMEMF_get_node(0) will continue to
> work while 0xFF won't.

I didn't use XENMEMF_get_node(0) because I found it confusing to read.
When I read that construct I internally associate with node 0, while
it's actually no node set, as the value passed to XENMEMF_get_node()
is the memflags, not a node ID.

> Otherwise at the very least I would strongly suggest libxg to make itself
> a #define for this (repeatedly used) 0xFFU.

I didn't want to introduce that because there's already a define
in libxc for no NUMA node ID, which is wider than 0xff.

Anyway, will do the change and send v2.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Dec 19 08:22:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 08:22:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190494.1510926 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWVkv-0000og-1k; Fri, 19 Dec 2025 08:22:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190494.1510926; Fri, 19 Dec 2025 08:22:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWVku-0000oZ-UO; Fri, 19 Dec 2025 08:22:32 +0000
Received: by outflank-mailman (input) for mailman id 1190494;
 Fri, 19 Dec 2025 08:22:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=idmm=6Z=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vWVku-0000Vn-7j
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 08:22:32 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d9be8cb6-dcb3-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 09:22:27 +0100 (CET)
Received: from MW4PR03CA0060.namprd03.prod.outlook.com (2603:10b6:303:8e::35)
 by SJ0PR12MB6831.namprd12.prod.outlook.com (2603:10b6:a03:47d::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.9; Fri, 19 Dec
 2025 08:22:22 +0000
Received: from CO1PEPF000042A7.namprd03.prod.outlook.com
 (2603:10b6:303:8e:cafe::fa) by MW4PR03CA0060.outlook.office365.com
 (2603:10b6:303:8e::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.7 via Frontend Transport; Fri,
 19 Dec 2025 08:22:21 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF000042A7.mail.protection.outlook.com (10.167.243.36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9434.6 via Frontend Transport; Fri, 19 Dec 2025 08:22:21 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 19 Dec
 2025 02:22:21 -0600
Received: from [10.252.147.171] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 19 Dec 2025 02:22:19 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d9be8cb6-dcb3-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FbPumLChOSrn658q/E+gvS9PfdcacOnrM+yXzWp+vmWYzoG8Sqa4AWrz/QsXPKH6o+ZGF3KtyCRlboRP5fTiBPdFoBXGlgVjdRXPIiSBILiF3359y9A8Jnf3YsFsZlMcYbzkgqid4FNtUh0q/bOVSq44KsiPPtHSrx1/mCIyHb0kPpXonsg0jEtt9B7EWy168gXP76talJ4p/ivlrpvSjB925ABwdd/O3qprFLFPyOIkNth+hyn0e+AdXCu7QB3hN/wK3PC+UvGjKvEVvELmIm5UI1LTBV7VJA4rcb+A0ge+9VnIu4Iw0RaCLCd2ZyMr1D/47z110/PpuuIfo1vvxg==
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=h9UnFy5KwesNcy7PIsyc/HqjEchhxWubsnRj55onrPQ=;
 b=v0RpYXuTOUgpstlAWclEZ0fbmGx6vlB6HgwSxdp8jFhaHRIDnr5W3KtfP+aWlcZceVpTwJpV8ZmYh81QljJrr03/n6cIAgY/OxQvgZARW5oD7MJeCyZA0wYLjqglHSPd7z84Kp1QSHjThqhfh3XZqYb8VvqW/rXaQNXe837Il/K7Mytme+DRQAQnitVV6/lZLLDgp9WXWvop7HG1wqrcpjnr3IcQsSnKa+D7qSYxnXJYwLukNHmVKzM8viRNpSPWZA3E0+m5hsOYmvuWpd9tBn+sX2BZ3aFubnsxr32S7NEzjzbGjKZM/ZL61c6BKn2uhFKEy/qQnzemmiIJi3VQSg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=h9UnFy5KwesNcy7PIsyc/HqjEchhxWubsnRj55onrPQ=;
 b=CpeekxkTIdqeSiCd7b8cCE4jJl3/sKZgkfGNEzKwuP5AdUSePFqOpvueeLKr6DZTr0Nsif+MEvak0/cBNvmj+dkTl4w9f8QQnmISguyzyvr3Fjlq263hMPHVPPqJ1sQJb4OpRDY8+mbDoQlr8oSu22YV6OMeVsC9wiz8jcGzX7s=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <a59fdb5d-0c7e-4303-bb1f-fa47ebfcd163@amd.com>
Date: Fri, 19 Dec 2025 09:22:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/4] xen/arm: drop MAX_PAGES_PER_VCPU
To: Andrew Cooper <andrew.cooper3@citrix.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1766053253.git.oleksii.kurochko@gmail.com>
 <74f1594aad235765002b59f2baa975cc8fe72f06.1766053253.git.oleksii.kurochko@gmail.com>
 <acbc46e0-e102-41cc-ace1-578a20644b34@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <acbc46e0-e102-41cc-ace1-578a20644b34@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000042A7:EE_|SJ0PR12MB6831:EE_
X-MS-Office365-Filtering-Correlation-Id: 649e6213-eae8-4260-eae3-08de3ed7bb74
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dDlxTWxnM21nWUdRRjBSUXRLRjJBVDFUTHc2VXNveGwzNXJRWEJYajFraHFR?=
 =?utf-8?B?OEhCdzVrMFZMd1NFSlR4ZVBnM0xJOG1IeUZRRUVCZk50dGtsR2NBRXFIL29Z?=
 =?utf-8?B?Y0s4QmZYT3duL3VsSzZvOGlFTW0vT2wwOCt1TFNybmcyOGNkUHNlRXhMcnlQ?=
 =?utf-8?B?R1hoaEZQOXlxT2Q5UCtVU0hmTXNhbWE3dmdWZnh5VTFCZjFqNXVONGNYK3B1?=
 =?utf-8?B?cVl0alI3YkZ1OW5GQ2RHV3JLbWQ0Rk82SDY4b0lpV2dQc3ZEOEY5T280Yk5s?=
 =?utf-8?B?K09PTEFLd1ZPdzVRdlh1SGpqdXVWZThmNTV4SExPNkdqek11MkJsSThzNERT?=
 =?utf-8?B?bjJGMXFnT0hHOE4zVzVmZmNXZkdsY0lWNlRnWDBHYW5sTVFjbUZqbTladFlL?=
 =?utf-8?B?TmNTeVVkcElnMWs2YWxpK0ZnUFg5R1plK01ENDVYY3dBQW5YTVNmbE1DV2o2?=
 =?utf-8?B?dmFucTJURm4rTFdiU1FOT0NGV3dCM0lUUWNjYzBwYnlRcnZ6RDRZVHNCcjdz?=
 =?utf-8?B?aEVtV2I2VGdzTjRUOS90ajY4cmtoMmdRSGQ3d3RYOTNwaml0aEd4Wk9VYkd0?=
 =?utf-8?B?cHBiZWlzSXFDU0ovUmxKcmdmQk0rRDFrdzF4czNEY0IxNXVicXRwK01pR2Iv?=
 =?utf-8?B?dm9tdTJQN3cwd1ZCeGJXUnRYY1l3bmZ3a2FEejFaV0lCbVVmbGJQbm5ETXU1?=
 =?utf-8?B?elhkeVI0SGlHdXhNTmpQdUkvSmJtUWp2SFYvNEZwTUhObkNSdGxRdWdnQTFo?=
 =?utf-8?B?c243dVJoSm1xaEZlWE9UM1hybEVLT2NWdFV6a3ZnM3NaTGlBbUZlc2VURVJN?=
 =?utf-8?B?Q01RSU50L0p2ZW9uV0g3dmFscUZGVXZEbzVGYkhZUDZKOTNEamdQQWpjdTlm?=
 =?utf-8?B?aElacGJoaUdDUU51TEJoaUNod0VzaFFHVWx0SGV2MjgwK0w1aWZqK1M5Y0dK?=
 =?utf-8?B?SkVycURyL09ha0NzMXJZeDk0U3JjcTdSTHlqWHdoUzYxRkdmR1huMU51dmh2?=
 =?utf-8?B?Q2VWVVBjdXVVNERyRUJaN3ZUc1gvMmU5eTNua0EzSDRReGFjdUtQMnpoQjlw?=
 =?utf-8?B?eXVUVkZabTY3dlJNYmR3czJKRUR2VnJXcEp3a0FkV0Z3U1U5V1pqdkZGTndI?=
 =?utf-8?B?UVRvZjllbG4yMm91QThOdlB3aDZyTHd1RHlCeUNvVTNjb0lYQ1hSdkJzWkJu?=
 =?utf-8?B?ZWNHaUFkd1E5QjZGYitDNHpnbVpQa2pRQ3p0UHZ3c2tINlFqOGRqTVpCUEI5?=
 =?utf-8?B?eW80Q2ZoSlFFejd6UDdlQnNjckZIZCtPRkhwdnQ0aGYyNml3dmRNT3hFWUVJ?=
 =?utf-8?B?VnFCejNQNjBVYkJxV0xWZTJjRkptOXlScU9iUHE4K2djRjVGMzV4Sk5ZRGhh?=
 =?utf-8?B?QXNGTEUvSlJTNXZid0lLVTVKaWhRWGZFejZiWEMzVkw4N3FFY0xubFY4akxa?=
 =?utf-8?B?ZWtzWEc0UkJjYkRpMklpZEhESVJyK0lJckFmTTNqaVBhVGhTelZBaHRHdWE4?=
 =?utf-8?B?dU1sN2lOcTc3TTh4WFRRMGY1d0ZiQVFjYTdQZXNlWTMxMXNDbGpqcFI5eFJk?=
 =?utf-8?B?OUl0dDFoYm9MbHFkc0dyRHBWTyszVEJWVHVYVWU0UEZHVVRpVW5nM2lrSHFH?=
 =?utf-8?B?d1BqdVFXT3Z1Z05SeWlyYmN2emx2WE9PanE4SEpteVFlYUoreG1ibEV6ZEMr?=
 =?utf-8?B?b3poNUVZWndvOWRoOStqL094SzJVTE01bEc5cURCeG5qK3J1UmhPOVZEYmEz?=
 =?utf-8?B?QkRMTW8wbEc1MjdwY2Z6Yk05UDJWK2RXQjBpNU1vMnVJR1VhYlc2ODJSSXdv?=
 =?utf-8?B?RW1pVUVZcFY5T3gvYTEzdHJ0OG5WcVZYNlhrQlQ0WWhqMTN1UG5LNHFkL3ZW?=
 =?utf-8?B?Slh0Wmh6SGVySnBCc2k4Q2YxZUhSVFNJOWxzZmNQVWsyd1h0b3dBNTg5Skh5?=
 =?utf-8?B?SnlMRUtmZ1VGaHZReGNiaDh5dGlkeTZ6akd2YklFa3J6YWZVTERiYnhuRFdk?=
 =?utf-8?B?SDAxOFMyOHFsdWZCTmt0RldDRlQxdjVFeklRdWtxQlF5eU5nNDJzSmNIVjEr?=
 =?utf-8?B?OHROclBlNXVxRE9KcU1kcXhYVW9lSGl2RllVSzMxcVdCWXlDblVKVTQ0Mlhh?=
 =?utf-8?Q?e60w=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2025 08:22:21.5749
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 649e6213-eae8-4260-eae3-08de3ed7bb74
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000042A7.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6831



On 18/12/2025 19:19, Andrew Cooper wrote:
> On 18/12/2025 5:28 pm, Oleksii Kurochko wrote:
>> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
>> index 47973f99d9..e566023340 100644
>> --- a/xen/arch/arm/domain.c
>> +++ b/xen/arch/arm/domain.c
>> @@ -473,36 +473,21 @@ void dump_pageframe_info(struct domain *d)
>>  
>>  }
>>  
>> -/*
>> - * The new VGIC has a bigger per-IRQ structure, so we need more than one
>> - * page on ARM64. Cowardly increase the limit in this case.
>> - */
>> -#if defined(CONFIG_NEW_VGIC) && defined(CONFIG_ARM_64)
>> -#define MAX_PAGES_PER_VCPU  2
>> -#else
>> -#define MAX_PAGES_PER_VCPU  1
>> -#endif
>> -
>>  struct vcpu *alloc_vcpu_struct(const struct domain *d)
>>  {
>>      struct vcpu *v;
>>  
>> -    BUILD_BUG_ON(sizeof(*v) > MAX_PAGES_PER_VCPU * PAGE_SIZE);
>> -    v = alloc_xenheap_pages(get_order_from_bytes(sizeof(*v)), 0);
>> -    if ( v != NULL )
>> -    {
>> -        unsigned int i;
>> -
>> -        for ( i = 0; i < DIV_ROUND_UP(sizeof(*v), PAGE_SIZE); i++ )
>> -            clear_page((void *)v + i * PAGE_SIZE);
>> -    }
>> +    BUILD_BUG_ON(sizeof(*v) > PAGE_SIZE);
>> +    v = alloc_xenheap_pages(0, 0);
> 
> I know this is only interim until the next patch, but
> alloc_xenheap_page() to match the free function used.
> 
> Personally, I'd merge patches 2 and 3 together, because everything you
> touch in this patch is deleted by the next one.
> 
> But, whatever the ARM maintainers prefer.
I'm in favor of Andrew's suggestion. There's no point in introducing something
in one patch and dropping it in the very next one.

~Michal



From xen-devel-bounces@lists.xenproject.org Fri Dec 19 08:25:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 08:25:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190504.1510935 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWVo4-0001MB-EM; Fri, 19 Dec 2025 08:25:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190504.1510935; Fri, 19 Dec 2025 08:25:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWVo4-0001M4-Bn; Fri, 19 Dec 2025 08:25:48 +0000
Received: by outflank-mailman (input) for mailman id 1190504;
 Fri, 19 Dec 2025 08:25:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AmMB=6Z=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vWVo3-0001Lq-Nk
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 08:25:47 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4e68123c-dcb4-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 09:25:42 +0100 (CET)
Received: from DS1PR03MB7871.namprd03.prod.outlook.com (2603:10b6:8:21f::17)
 by BY1PR03MB7899.namprd03.prod.outlook.com (2603:10b6:a03:5b7::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Fri, 19 Dec
 2025 08:25:38 +0000
Received: from DS1PR03MB7871.namprd03.prod.outlook.com
 ([fe80::3a7e:e6ed:f8e9:9fb3]) by DS1PR03MB7871.namprd03.prod.outlook.com
 ([fe80::3a7e:e6ed:f8e9:9fb3%7]) with mapi id 15.20.9434.001; Fri, 19 Dec 2025
 08:25:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4e68123c-dcb4-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OFd3cstNbBUsNiJbKmNtI9RgUPnb1YaZMpVWtHV+95leBLqqmkC9Y+Swr4WWk+Qv2tTVSkyYPcZxy4NT/z1ufpnaN1ZyT6yNyaZwdSmLcdNO1NbjvOe7V5m5mlwW+/E52BU7rD06eP9cJbMLyHAmfy0etgn+eK7SgHbtb6eChP/j0mu6cxS5HzdeczjkOoZTnyvL6id/JoiI3wxg2RRf/iIFRLr53uq4LhCN+PjTUTokQTaf6EAIGR1GbJn6KTZHr15c+g5xche6sPaXKW1oEm+K/FidXh3jZg8+qEvcULoF1vHovAE7DXocX1LDfmG/TxuXJyavioSdJDGHiw/Mtg==
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=bdMWSC+J53QzSvvE4bBRTh6OFu3VTpewRJYFzoJiYss=;
 b=CQgkiS1SEQG+7wKEyv+fwGHvYuxqTWa0TPdzW/AaDOi5aQtM7tPCC8siZLLeGSKJiolQLUa83ev8qLm85SrDHKjb/xJShicdtQkEjiqUBTGvqyWvoRx5za20jhKG4U7XMouYhDfv0uWrz/wKDmqpMjaPSS4lLXMoBczOmJ/f0MrLCvoG9ggpL6IkKWNKcJjIR0rBMaIgwYPqZoMrKfYMQzy4ypMRl/eBZkXXfusQFl7+pNCBuyeB5KhFLX3PvbSm/uOaMKu1+EdrsNGur42uCyVmtpI8ognHGnfgsqlcFgC744IkGCFcAGkMKdhtHn73SIJnOVkz53sYlA3MyzDCWg==
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=bdMWSC+J53QzSvvE4bBRTh6OFu3VTpewRJYFzoJiYss=;
 b=C1ZQLg2kniXPOcHRhIb6mV4a6wzeldN7ANyv6Q3pkuHprLWEZ+eJP8jM53PPcT1mz3bLhAMLcBLTgZ9PwvdTspFcHeRcEH0TtrUfe8jRUfqclcPBsNUFLTIYe9ognTnZhjhySZxmnJG2HlL0SqJEn95FGMYLhQYu0DktZDV1zV0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v2] libs/xg: allow caller to provide extra memflags for populate physmap
Date: Fri, 19 Dec 2025 09:25:32 +0100
Message-ID: <20251219082532.43673-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PAZP264CA0076.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:1fa::23) To DS1PR03MB7871.namprd03.prod.outlook.com
 (2603:10b6:8:21f::17)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PR03MB7871:EE_|BY1PR03MB7899:EE_
X-MS-Office365-Filtering-Correlation-Id: c0f207e5-4278-4b94-9120-08de3ed83082
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eWcwNHlwNUZWZ1Z6eWZyZDcyc2pTd1IvUlJaWEF3QzlTeE54L2JlMHJOQ2Vl?=
 =?utf-8?B?djZCdkNxSG9YYUhSdXVmL0VyRUI3RnVKaTZkS1VxK2VYdzlCYnZ4SHJ5WWZ2?=
 =?utf-8?B?UTJ0MXdMa2xlcGQvd1lWeHc0N2s5MGk5WWlVQk9DYmloS2IyMk1oSVZhMWNX?=
 =?utf-8?B?RTl4SmpIeHNRWW9FNDYrYkoxaDhiUmhnZ0FrVVBmYmdmcmpaVUdxbUJFV3NK?=
 =?utf-8?B?Uy9HTzNjbnV3K2VISmJXV05xZ2FwRDROY2ZBNCtqTlBDTEFJNCt6WEplNkNM?=
 =?utf-8?B?dDVVZUYvd1RMVk9rQndaMmp2RnlFZjI0MXd4RDI3aXlUelo3dStHUlh1Wmla?=
 =?utf-8?B?cDBhaUVxV0dzcnh1M2E1RjkyZWV2bmFHQTd3VUdoOVdHUzZDdGp1L0o2NlBK?=
 =?utf-8?B?amliU1I5VURxTkxrYUJ6Y3h5UGtKWXcvRG1sNDF6U3QrbzdTQU5qTVpDbEFj?=
 =?utf-8?B?bkFNQjFLL2dtc3hEZkxFd0R6UGVsckk4ZHZTTENCbjNuMXVVQkFsNWJWUlg1?=
 =?utf-8?B?by95dkhUakFlV1dLVHM3KzFIemxieUtUR0JsMWc3cVFZZ3RsbEE5NXBTais0?=
 =?utf-8?B?enFCN0NreVlaaWRsMXc0YXQ3aVh4dmduQzhjUkVybHFldEN4NkxWK29iWjM3?=
 =?utf-8?B?NGMvOE9jZ1l4dEs4NmZxTk1Nc1pFdHRyNmVndjR1MGx6Q1BVaDlrdnhFQVlH?=
 =?utf-8?B?YnYrZWczWkd6SU01NkZJaGdnRHUvM3dHc1l3a2V0Ymw1MFJMdC9sbzlqazFB?=
 =?utf-8?B?MVRjVldUcWlUSHJNcGo0RVpobVdSKzR2QmtxK1ppeExMSmgvV1AvaG5wS0lR?=
 =?utf-8?B?cGVGL3dFejRkZzNDcU41eHdiZkpxN1ZmVnVVV3dIbkMyWjBtZnQrRHZvU2VY?=
 =?utf-8?B?Mmhpcy90VkgvZnhNa21xKzJDOUZ5NFpEdnRpNmxuWjJaWmFkRUlqVjZpVThK?=
 =?utf-8?B?d3JWR1ppTUVFc0VKMFZKeHc2bHJ3dWIrVlVZTkZsTDcxUVRtcTd1VFhZRm5N?=
 =?utf-8?B?blZRdmVKOHRLRGJCekNqVFc3b20vQ1JSRjROT0NjSlZkTkhVQ2wzd01CY1c0?=
 =?utf-8?B?alBybjFLMWVTTWdyZHNFdnlEVUoxd3FwTGR0ZGx2eVJWNzM3ZTZkWHQvWFNm?=
 =?utf-8?B?WEN2c0cybXVQRFlYRkdEOVFaSGx3RGlVbjZHN2JuR1VrV3I3MFhHWG41TGRC?=
 =?utf-8?B?ZVFRQmFwV2Z0SmdldVVhRFVlT0ZFbjFHUFhOMWhUV2NGTVpmengvL012YmhI?=
 =?utf-8?B?NVZueTF1Wnl1ditQUHdnREIyZm83MWtVZ3R2Q0hRS3REdHpUZGQwN1gxVUxM?=
 =?utf-8?B?b1pRNm1sYndWZFV2YnFYcG9yeG9RNVhHUUtraURvTGtDck51L1J2UDFuR2ZE?=
 =?utf-8?B?TVlKclVKaUZVWVBieVJnUHhmYkdlcFJhZ1pRNlltclpoVnB3ZENYL3BjclA4?=
 =?utf-8?B?R0pWUWozMHAzYnJqTHIxRlNqQ3c1NVRBQjFZSjFkL2MwUS8vVnBhZngvcjl1?=
 =?utf-8?B?Rk9DUXhWd2plVVlxUVZ3S3N2UkI2V3R0Nk9abE1SdzJDLzRkUjIybWhibG80?=
 =?utf-8?B?U29xa0dQTW12TS9sQ2R1bWdhcG0rYXhBcUxjRnZGUzA3VGlUbWZuZktybEF2?=
 =?utf-8?B?YmlVRlkvdWl4ZmxrT0NmaFpWSE8wTWRvcnVMT3JZN0x0NU5CdmNkVWJuVktw?=
 =?utf-8?B?QUYyMUdzU04xTDM4eDRwNVA5bUplN3kvUmg3MlZUbk5icS9HOWxPY3pDQUdL?=
 =?utf-8?B?SS9WanJncFBITDhvcXJiaFIrWk9jTDBrd0lXdlpJTFRURU1IWElYUFRQRmZw?=
 =?utf-8?B?VCs5U1NNZ3Erdk9WenFiYnZ2bGIra09xUTFaVUhIMlJNbkY5SG9TZXhJSTNN?=
 =?utf-8?B?dHNLRlFpMUlOQ1ZQdjQrWFk2akpybHNpeVVWaHNObllOQmtXd0tIQk40cENw?=
 =?utf-8?Q?AZgLzuOs6YZE0O8BC7DEH5waDf7gGLnp?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS1PR03MB7871.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MWNWa1RGTjFzbVpSc0xzQWRMQ2kzaHRqTEk4RHcreFBEbWswVmwzakoxOVlz?=
 =?utf-8?B?U2RKeWgyQ0dHMUliTW93QVRhOStOeXA4MTFJbko5MkVQNzlzOC93a3VtYnU1?=
 =?utf-8?B?YlNQb0hYcG9MdmdLVXJMR284STNGVjJ5a2svOEhuRWYyU3d2TzlubGZrZDAz?=
 =?utf-8?B?dmxpQlp3QzcwdzI5dkRUcTZnU0RKcWVzbnQxd1l2RnB1anpZQThIeTgybFFL?=
 =?utf-8?B?cjY5a1JZY3g2N2ZMVlNEdEtDN2YxZXprK2pFVEZ0VHF2NkorSUZ5Mk5sSDVO?=
 =?utf-8?B?UFh4THlneVF1QkdQeFBROWk5Zjk3aldzQmJaU1ZDeDN3ZCtIMmxPM25rZDJn?=
 =?utf-8?B?UFpxZHc2VVpFVXRsUjRjZ3I4ZEdzL0hsYnd5N1p2aUhWVnh2THVIWUNUbTNq?=
 =?utf-8?B?NjRXbUV2TnV3Ny91NVdQWEVrS3BzSjk0cnNXRjBnbktNUGN2MGM0bS9hNndP?=
 =?utf-8?B?bWw3WHhkZ3dKVUhzTW5HMyt6eThqTVptbjJTUjE2d1B1VTFMdWRHMDUyaFpp?=
 =?utf-8?B?bENOSVV4Skh0VlJhNjdQM3BPQUJKOEFXWXJyTVhGcDJCT1R1MXl0MGpvTjhD?=
 =?utf-8?B?d2NoMWVhc3JManQ1MEZqa0pBRWFKZmNoamhaSWxTR0tEdUVzazJmSDBVTnlM?=
 =?utf-8?B?SURNNFhrV3k5cmJtOVVYZlhEL3lvcFozREUzSnlNK0ZwbFFremc1N2tpSlE5?=
 =?utf-8?B?QlF6TWVCNnc0MnZPK3U3cERyTEZ2ckVUTG5Ob0o5R08xTkk1SklyL0pQencw?=
 =?utf-8?B?QlhxS0E1dGdUaWR2ZkpCTlJyRGo1T0w3MDE0a1JtMGp6M2lZd1BJZjVyaDBU?=
 =?utf-8?B?b0taa0laWCtoM2x2TThhRjJVcHUydHRPN1FCdTlaNXk1N3liaEtuTGRid3dt?=
 =?utf-8?B?a25za1FINExZZWlrOUFYOTl4WEgydGt5UHkzbnJtaXNzaDlCeXhDNmFDenZK?=
 =?utf-8?B?SjFiVEsvNXNkOGliM0t5TnVnSmFEcmU0SWNBdkRtRCtKK3hxaVNIeTRzaG1i?=
 =?utf-8?B?L3hLaSt6QnRPY1crT2ZjM2JEMndlRXowM1NDU0lJc1VIbkdZMG4wbkN5T2Z6?=
 =?utf-8?B?QXpZdjc1c3ZJUnFCcllPYnhBcmY4dC96anRIdWZDNGcwRzMwbU05WjE4eXpG?=
 =?utf-8?B?OWFZZm5BbjVYVUZicStHMEZQWCs1RktvVTQrT0FWSURoZ2Y5RHZWNEZtb0Iv?=
 =?utf-8?B?RHFEN09yTjhLTWQ4WGZCSjBnZGVGeHpOMlRrcXphVUVmU0plak9maThvNjBq?=
 =?utf-8?B?WXE1Wjl0VlNGcE5iRVlib2ExRzZlZ1ZnYkk1OHNrYldpSkYyTS9veXZ2dnRm?=
 =?utf-8?B?bmtrY1h6dndJU2hZb0xtczY2REd2YzlIWFRzUXZCcjIzZFFBL1ZxaVllalh1?=
 =?utf-8?B?RllWa1JlbmJqcy93YStoTG4wS1BRaVpoRi85NU1HdmRRdkpoTmtKc21GZEFZ?=
 =?utf-8?B?azRWN0Y5L1p0bm5QT1JuaWpEVmpZdDBzODZESjZNalA5OUYvNGF0WUpyTEQv?=
 =?utf-8?B?cHZySlI4SVR0ZjV0WWVma1QvZG4wU0gwSE5UYXdIUzFKeUJLN3cxdzE1bHR5?=
 =?utf-8?B?VFdFNFk4M1NNSGJ0UFpTZ21CdVdZVjl5YTJiTTN4MGgybEg3bzYvR2xMK3RS?=
 =?utf-8?B?N3JxNzczR2ozR085cnJycjM4dEVPZS9KcXl1WlZPdkRWTncrZHdXU1BsOXRU?=
 =?utf-8?B?UkoyVGFKZ0RUWXVSS0lUMkhBZGgxZER3OTloL3Iwek1ZRUlCLzMrajQ0NStl?=
 =?utf-8?B?VE9pMWFYZ3RYelpySW53MjYrR1B2Yk1yQnpwQk1NdTlwUmRTYzNUWXFlUjND?=
 =?utf-8?B?N1lYM1QvQU5JS2txUE1HOVBmUkJtbElhOEQ5MzJJL0RxN0hsRFNHZnZpcitx?=
 =?utf-8?B?dVhwSUN1Q3ZrM09BeElOMHBOWEFXalhiMEp6SHF0TW1UZWhUZnhTV2x0bngw?=
 =?utf-8?B?UE8zcG05VGNidjJCYTVIT05SUHcxMWZQdjhRRmtTR3RZM1pYVlVPY2tkNXlk?=
 =?utf-8?B?K2Nyb2hxTHBuOWZZMEdFVmZ0Q0Y0L1d5d1F0QmV2cUNGMWU2VnNnVVRJUWJY?=
 =?utf-8?B?NW1KbUpOQ0ZHSXNsRERmaE5qOVQwY1cvQk00Nkhzb2pBay81QU9pYXNic2pE?=
 =?utf-8?B?S2s5QkJHVG9BOEkvQzFJRnhZcVBmRkViNSsyL2llZ1lBSnJhYjdZeDdrdm4v?=
 =?utf-8?B?Y1JKWHV6L1JFVEhCckFKM1puc2FJbzZxY2VyL0h4bHkyRVpMVXM1MU5rQWh5?=
 =?utf-8?B?MGNLbXhHWlFGWndJT2lZdksrNmtBZ1Y1ZXcvMkZrQnVXOEJTSmRhbzlJUDBp?=
 =?utf-8?B?T3FvU0JFREZDZUdaZDNvUy8zR01vSUZaYXZ4ZXgwdi9nTEl6TXMyZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c0f207e5-4278-4b94-9120-08de3ed83082
X-MS-Exchange-CrossTenant-AuthSource: DS1PR03MB7871.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2025 08:25:38.3206
 (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: uOWLlm2wyAww7EfXFSwRikKYF7ibitUtlPnoRxDhdJb9QZkbjiPV7d6lL0Kj8x8jkRdncKsuIBwnh6+nu2CivA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB7899

Introduce an additional memflags field to the xc_dom_image and
xc_sr_context structures and use it to pass additional memflags to use when
populating the domain physmap.

No meaningful usages of this new field are added as part of the patch.  The
only know usage will be from the XAPI domain builder, which lives in a
different repository.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v1:
 - Use XENMEMF_get_node(0) instead of open-coding 0xff.
---
 tools/include/xenguest.h             |  8 +++++++-
 tools/libs/guest/xg_dom_x86.c        | 13 ++++++++-----
 tools/libs/guest/xg_nomigrate.c      |  3 ++-
 tools/libs/guest/xg_sr_common.h      |  3 +++
 tools/libs/guest/xg_sr_restore.c     |  9 ++++++---
 tools/libs/light/libxl_save_helper.c |  2 +-
 6 files changed, 27 insertions(+), 11 deletions(-)

diff --git a/tools/include/xenguest.h b/tools/include/xenguest.h
index c88958faa9a3..7c3b8b098352 100644
--- a/tools/include/xenguest.h
+++ b/tools/include/xenguest.h
@@ -242,6 +242,9 @@ struct xc_dom_image {
 
     /* Number of vCPUs */
     unsigned int max_vcpus;
+
+    /* Caller provided memflags to use when populating physmap. */
+    unsigned int memflags;
 };
 
 /* --- arch specific hooks ----------------------------------------- */
@@ -611,6 +614,8 @@ struct restore_callbacks {
  *        specific data
  * @param send_back_fd Only used for XC_STREAM_COLO.  Contains backchannel to
  *        the source side.
+ * @param memflags Optional memflags to pass in
+ *        xc_domain_populate_physmap{_exact}() calls.
  * @return 0 on success, -1 on failure
  */
 int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
@@ -618,7 +623,8 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
                       uint32_t store_domid, unsigned int console_evtchn,
                       unsigned long *console_mfn, uint32_t console_domid,
                       xc_stream_type_t stream_type,
-                      struct restore_callbacks *callbacks, int send_back_fd);
+                      struct restore_callbacks *callbacks, int send_back_fd,
+                      unsigned int memflags);
 
 /**
  * This function will create a domain for a paravirtualized Linux
diff --git a/tools/libs/guest/xg_dom_x86.c b/tools/libs/guest/xg_dom_x86.c
index a82b481a123f..268936efe25b 100644
--- a/tools/libs/guest/xg_dom_x86.c
+++ b/tools/libs/guest/xg_dom_x86.c
@@ -1260,14 +1260,15 @@ static int meminit_pv(struct xc_dom_image *dom)
     /* allocate guest memory */
     for ( i = 0; i < nr_vmemranges; i++ )
     {
-        unsigned int memflags;
+        unsigned int memflags = dom->memflags;
         uint64_t pages, super_pages;
         unsigned int pnode = vnode_to_pnode[vmemranges[i].nid];
         xen_pfn_t extents[SUPERPAGE_BATCH_SIZE];
         xen_pfn_t pfn_base_idx;
 
-        memflags = 0;
-        if ( pnode != XC_NUMA_NO_NODE )
+        if ( pnode != XC_NUMA_NO_NODE &&
+             /* Only set the node if the caller hasn't done so. */
+             XENMEMF_get_node(memflags) == XENMEMF_get_node(0) )
             memflags |= XENMEMF_exact_node(pnode);
 
         pages = (vmemranges[i].end - vmemranges[i].start) >> PAGE_SHIFT;
@@ -1354,7 +1355,7 @@ static int meminit_hvm(struct xc_dom_image *dom)
     int rc;
     unsigned long stat_normal_pages = 0, stat_2mb_pages = 0,
         stat_1gb_pages = 0;
-    unsigned int memflags = 0;
+    unsigned int memflags = dom->memflags;
     int claim_enabled = dom->claim_enabled;
     uint64_t total_pages;
     xen_vmemrange_t dummy_vmemrange[2];
@@ -1500,7 +1501,9 @@ static int meminit_hvm(struct xc_dom_image *dom)
         unsigned int vnode = vmemranges[vmemid].nid;
         unsigned int pnode = vnode_to_pnode[vnode];
 
-        if ( pnode != XC_NUMA_NO_NODE )
+        if ( pnode != XC_NUMA_NO_NODE &&
+             /* Only set the node if the caller hasn't done so. */
+             XENMEMF_get_node(new_memflags) == XENMEMF_get_node(0) )
             new_memflags |= XENMEMF_exact_node(pnode);
 
         end_pages = vmemranges[vmemid].end >> PAGE_SHIFT;
diff --git a/tools/libs/guest/xg_nomigrate.c b/tools/libs/guest/xg_nomigrate.c
index 6795c62ddc28..9790d2b4a844 100644
--- a/tools/libs/guest/xg_nomigrate.c
+++ b/tools/libs/guest/xg_nomigrate.c
@@ -33,7 +33,8 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
                       uint32_t store_domid, unsigned int console_evtchn,
                       unsigned long *console_mfn, uint32_t console_domid,
                       xc_stream_type_t stream_type,
-                      struct restore_callbacks *callbacks, int send_back_fd)
+                      struct restore_callbacks *callbacks, int send_back_fd,
+                      unsigned int memflags)
 {
     errno = ENOSYS;
     return -1;
diff --git a/tools/libs/guest/xg_sr_common.h b/tools/libs/guest/xg_sr_common.h
index 0e419c3a96a0..f1573aefcbff 100644
--- a/tools/libs/guest/xg_sr_common.h
+++ b/tools/libs/guest/xg_sr_common.h
@@ -295,6 +295,9 @@ struct xc_sr_context
 
             /* Sender has invoked verify mode on the stream. */
             bool verify;
+
+            /* memflags to pass to xc_domain_populate_physmap{_exact}(). */
+            unsigned int memflags;
         } restore;
     };
 
diff --git a/tools/libs/guest/xg_sr_restore.c b/tools/libs/guest/xg_sr_restore.c
index 4aed5cf4acb1..e148fc594a73 100644
--- a/tools/libs/guest/xg_sr_restore.c
+++ b/tools/libs/guest/xg_sr_restore.c
@@ -141,7 +141,8 @@ static bool populate_small_superpage(struct xc_sr_context *ctx, xen_pfn_t gfn)
     xen_pfn_t mfn = gfn;
 
     if ( xc_domain_populate_physmap_exact(
-         ctx->xch, ctx->domid, 1, SMALL_SUPERPAGE_ORDER, 0, &mfn) )
+         ctx->xch, ctx->domid, 1, SMALL_SUPERPAGE_ORDER, ctx->restore.memflags,
+         &mfn) )
         return false;
 
     /*
@@ -217,7 +218,7 @@ int populate_pfns(struct xc_sr_context *ctx, unsigned int count,
     if ( nr_pfns )
     {
         rc = xc_domain_populate_physmap_exact(
-            xch, ctx->domid, nr_pfns, 0, 0, mfns);
+            xch, ctx->domid, nr_pfns, 0, ctx->restore.memflags, mfns);
         if ( rc )
         {
             PERROR("Failed to populate physmap");
@@ -901,7 +902,8 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
                       uint32_t store_domid, unsigned int console_evtchn,
                       unsigned long *console_gfn, uint32_t console_domid,
                       xc_stream_type_t stream_type,
-                      struct restore_callbacks *callbacks, int send_back_fd)
+                      struct restore_callbacks *callbacks, int send_back_fd,
+                      unsigned int memflags)
 {
     bool hvm;
     xen_pfn_t nr_pfns;
@@ -918,6 +920,7 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
     ctx.restore.xenstore_domid = store_domid;
     ctx.restore.callbacks = callbacks;
     ctx.restore.send_back_fd = send_back_fd;
+    ctx.restore.memflags = memflags;
 
     /* Sanity check stream_type-related parameters */
     switch ( stream_type )
diff --git a/tools/libs/light/libxl_save_helper.c b/tools/libs/light/libxl_save_helper.c
index 65dff389bf8f..64bdeb3b32fd 100644
--- a/tools/libs/light/libxl_save_helper.c
+++ b/tools/libs/light/libxl_save_helper.c
@@ -285,7 +285,7 @@ int main(int argc, char **argv)
 
         r = xc_domain_restore(xch, io_fd, dom, store_evtchn, &store_mfn,
                               store_domid, console_evtchn, &console_mfn,
-                              console_domid, stream_type, &cb, send_back_fd);
+                              console_domid, stream_type, &cb, send_back_fd, 0);
         helper_stub_restore_results(store_mfn,console_mfn,0);
         complete(r);
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 19 08:39:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 08:39:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190517.1510945 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWW1Q-0003Hx-JD; Fri, 19 Dec 2025 08:39:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190517.1510945; Fri, 19 Dec 2025 08:39:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWW1Q-0003Hq-GE; Fri, 19 Dec 2025 08:39:36 +0000
Received: by outflank-mailman (input) for mailman id 1190517;
 Fri, 19 Dec 2025 08:39:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AmMB=6Z=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vWW1P-0003Hk-6c
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 08:39:35 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3b7aa3a1-dcb6-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 09:39:30 +0100 (CET)
Received: from DS1PR03MB7871.namprd03.prod.outlook.com (2603:10b6:8:21f::17)
 by DS0PR03MB7558.namprd03.prod.outlook.com (2603:10b6:8:203::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.9; Fri, 19 Dec
 2025 08:39:27 +0000
Received: from DS1PR03MB7871.namprd03.prod.outlook.com
 ([fe80::3a7e:e6ed:f8e9:9fb3]) by DS1PR03MB7871.namprd03.prod.outlook.com
 ([fe80::3a7e:e6ed:f8e9:9fb3%7]) with mapi id 15.20.9434.001; Fri, 19 Dec 2025
 08:39:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3b7aa3a1-dcb6-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UY6fd6HKLvPbA2IEMP2rac2NimvePbrh339mRXaG8jWiQ8HkTSvGoTK6lz5cVaUw7kbtqzhgtEfSQjXAMAkTqbxEhh5iSeB9MAFOiwVvO0PluHPiJ5s//vFZJwxMWS0C32Y04jYfBvngAFKKd8LmnqNri5dVoL0UfUL8pJdn7koH5x8+fVZDxxfL50yR1CBZpyuJsEJiqGVvhJO3JvxHk3SqzklenwdasWRBlqHClt5yyqMrbzwz1f2GhJX0qj35SxxQzwm/4ta6KG6It0+1p/kzCdu7S5pNDCaXTeBRyQGrmYfj4soyUjMT/RV0szIfTpZVKsTJz69xzotRWzgyDw==
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=nttFXQbSlQ1Iff1JrG+NhVueOixxo87lvR7g0e53h9g=;
 b=ShkhvgAJBxwac7pjerrk2j1oAjqgpTji56uejA3mjlggze6J3yy4zifzn0UNJeVqu/MWQXe7XIp+YTDXqLYx5hP/AWoyIeACcdJDrlgA7noZqDvJIvEpz1rDfB9j1kKtr0FytqkOgcwgLKYkdIakCUJZZTd700UudOJIgrMd79nGrTesn9B304jBB+rxRZebfPUW+6eHiLuhVPSIq3mTBgEtK7PW3O/e0qk21hV8wfOGoMPnuut8CNVQz3lLXs8z0bVETQDLbx/vYeo1oRMkAwm8prwLD55rr5tlxnVlfQML32kwoNQxOUWziaGEOFLig7QKgEzcnOSWaBbjKAXEvQ==
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=nttFXQbSlQ1Iff1JrG+NhVueOixxo87lvR7g0e53h9g=;
 b=wqt2ViEa6uMfJZ+bzd/n7g7NQhUGrBAAdi1GB+ylzCCgzpsjIlLdTqs9BeYdgWvVVgcWX1bpYlbr/T6g0VEFZ2YtGeDpmAydW/XKZkTOiw0x2OVVDW4hzAtrTXEf1517+KD1up+YMoz8VkHk9i9adJK/X/qxrPq6o0X02OYO+EE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 19 Dec 2025 09:39:24 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Chen Jiqian <Jiqian.Chen@amd.com>
Subject: Re: [PATCH] vPCI: avoid bogus "overlap in extended cap list" warnings
Message-ID: <aUUPPPYyuLUdj3XJ@Mac.lan>
References: <26294a6d-e99b-4290-988a-da7b7b838651@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <26294a6d-e99b-4290-988a-da7b7b838651@suse.com>
X-ClientProxiedBy: BL1PR13CA0429.namprd13.prod.outlook.com
 (2603:10b6:208:2c3::14) To DS1PR03MB7871.namprd03.prod.outlook.com
 (2603:10b6:8:21f::17)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PR03MB7871:EE_|DS0PR03MB7558:EE_
X-MS-Office365-Filtering-Correlation-Id: 2658ff60-b04b-461b-105b-08de3eda1ea0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QksyTE5sVzZTOFZtREt4endIQUZoZnZGbDhLUjBsZ2lkc2hKMG5tYW9SNExK?=
 =?utf-8?B?dnVIa2ZBSlhtY08wN2NVYTdiMkZSTEhsMkVKd05GQWhvMGVrTjNpazhjUGZC?=
 =?utf-8?B?b2pLZjR0Z3JxZThjUTJmUkRYVDZMQU40ZG9oelFyem5EVTlUMzRhMFlKRG1N?=
 =?utf-8?B?V1pNeTJqZDJGdDFxZUp6WUxtdXJkVUVVZ3JzYVRzcThCbFZWdk04T1lmaU8r?=
 =?utf-8?B?VCtBUUQwU2dqNHJyT0djeHgxSG5RNTdkcEltS2t5aCtObnVxZUdLTkVIaENh?=
 =?utf-8?B?d0sxZFMwRW13MWhTeVBtakNRZVlpeUZIMy91aitrOWZVS1E4WXUvZnJpOEs2?=
 =?utf-8?B?TGg3TWVLZzZsWm5hNEhhTk9MZkd3SVJrY3lnd09kQ1RKUVVEMk1Cd251VGhu?=
 =?utf-8?B?bTVCN29CZnFQbjk1aG8rUkRMS3F1SThMQ3ZuRGZLZ3lEc1VIT2d4aSs3TlR5?=
 =?utf-8?B?YUVrS1poanRXZEpycHJ5azZEUXVrZWhBTU5rZTJxUXhlR0F1czIxb2x6elow?=
 =?utf-8?B?RE9NQ2lRdFVSUFNOZmdHUUVsSkZsUlkzY0xqMlp3ZTdYU01tdzBCUm56dFdU?=
 =?utf-8?B?STR6UVlLVTc4U3pwb0JlSUU2d1pUbW1sQWIzbXhDcHpXa2VkN1hhTENGRWVx?=
 =?utf-8?B?ZG9nd0VLOFpyaW5FYnE0cEZQdWhnRU9EQmFZbUxwdWFFeWY1Y2FndFVLdHNE?=
 =?utf-8?B?aGZiNTl4N3drenV3OTVXRHhTVHJPV2RzdjBrcEo0TTVSOW8rRFZBbnlKUlFZ?=
 =?utf-8?B?cjljSmpDZTBERGlhME1JNEFHTDVlQnFaeHlaZ2NSTU0vNnpqME1telBjVTZq?=
 =?utf-8?B?VHB6NGZUUmhvSk1kb3lLNmlWTTltYzRBNWM3T3RncEk4Y3JyZFZTSVJoMEJN?=
 =?utf-8?B?RHQwOHA3NUNhcXByMGp3aklxVWVlU0pwYWtCNGsvYmhrRXE5dXlQWFpIOUVE?=
 =?utf-8?B?ZVlYZzdYZVNRNEYwQUp1a0NseHlGL2xHS0owSytDWUhHMEwvejF4YjBUR2xR?=
 =?utf-8?B?WHBQVDA5MktRYlRZZFJsSWxjb1dZSzhpUExtM2lHSFVXQlF2WVlidnl1RHhV?=
 =?utf-8?B?aXUybU5Tbml2YU5nVURwVUgyeEV1ZmhiVHF0SGFxVUxmbE00R2h0WloxOGYx?=
 =?utf-8?B?b2cvT3Z5V0kvbEZ6VVdrMGRaVzZ2Slp4T1VuOU4rRGltTEdVbXIxWGZHT0F5?=
 =?utf-8?B?SGVCSllncCtsVEt2Y0dIOXQ3amVhd0k1Q0o5SWNxR241R3ZxV09Obm5FUGR3?=
 =?utf-8?B?MSs3TkhZLzBSaVRSNk9pem8ybUd1MEM4dS9Va2lJYi9XcnpLa3AydFJxZXho?=
 =?utf-8?B?OFg5RHpZa2IxYm53QTNocFI5L0wyM0NxMWQ1VXQwQmVkblFlVzcxeXNQUHpP?=
 =?utf-8?B?eCtMV3g4dk1hUjhWVkh6S1FES3NMcFFkdzJDcGtNQldPT0U4b0FtdWM0eEph?=
 =?utf-8?B?V21VaXVPMk1BRzU3a1BGa2NxL3YzSi9qV2NYdWZ0eGFCZEZXRTkxSzljQzJn?=
 =?utf-8?B?NXRmSTRGZjZkQUMwM1JlSnc2Y2VkUWtadUZxdDNoQmxoTkFRckhwbU9YTTJm?=
 =?utf-8?B?QVpVV00vMVhYbHBhd1c5R3pDQWNqeDFoelNJdHE2T3JXaktIKzNMV09jUlha?=
 =?utf-8?B?WU50M29rQmtKRDQ3dG9kck9kKzJQeDNYbG40bEN2NUI2YWlZMzI5SXJtenVa?=
 =?utf-8?B?TGh0WEw4TytLQWlGZk00RFdLc0todkFnemM2L3Bta0lQaVBQb1dDdWFYallJ?=
 =?utf-8?B?Q2xCMUJtSkpRa3I5YW9FclF6VURqNmtzSVlUUFVUUndiYTk1ZHVyTEJrK3Fx?=
 =?utf-8?B?a1ZuYW5Dc0dNSFBYVUhhUjh4T3d0V2x2VTUxc2VTQTB0MWwrL0IxQmdQSGdk?=
 =?utf-8?B?N3FOV25ELzBidkQvNDZSNnFmbmxNSXVuKzJKTGJRWXlHTVlnRkxCNXlkMVo4?=
 =?utf-8?Q?KJnAE7U1Y1Kh8wf3lwVLSOfMMvcYMtbb?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS1PR03MB7871.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S1JsdHEvSkoxNWJoN0RUN0dzaGFzUWZSZGlIVnJaVFdWSW5PNFJkUTZQKzNz?=
 =?utf-8?B?ckZLU01yV2FuaXIzaXArMVRyazFiQ3BUdlJZRW01TWJ3UGVrSHo5eGNqQTVK?=
 =?utf-8?B?VWlVdVRZeVM1YlJCb2JSYVQ0UXMzdyt3RjJYWUp5ZlBLTGQ1aHAvTENDSkhi?=
 =?utf-8?B?TitqWXdaMk13Rk41U0NWTDdsb3p4TjQ2bGdvWUdIa0xKMDhwZmR3V3lMSWRn?=
 =?utf-8?B?aHlwUU8zVWQ1b3d6Q0dNNktBYzNlZ3l1ZXJxQUZEUGEwMUxuVm1CRHIzUUpv?=
 =?utf-8?B?MHFDUnk0YmdLdVZrbVFkR04welI0TnZGTGM4M0JZN0UvQ0IzZjZmSmd5ZTBp?=
 =?utf-8?B?VXZpTCtLRkMvU3RnOEltTFVEUm5kUkxFNmpoTUFvUTVkTjFadXlac1IvdDB1?=
 =?utf-8?B?UFRCRkxhclowNWs3QkJheXJxeWpqMlZyU1lSVDRpS0lwSnk3VlBXWU9TTlhs?=
 =?utf-8?B?TTJaN0tPMkNVd0J3TVFvUHVWK0QvYmhHcGJQTnJmNk9INUYvVkhnQjhGb0xG?=
 =?utf-8?B?OWt4amxVaGtjV09YYlZwb1NEY2t4U1VQQjVhd2VzLzgxMS9hWEVUUlQrMUli?=
 =?utf-8?B?ZHpCTlJiQWUydlVVY3FmRktKYTQ3MnB4YlAyeENWZ0J2RzhVaCsvOEZIU1cy?=
 =?utf-8?B?MmNXV0tadkxqM3dxbklnY1ltQzBWY2RWZlQ5b0hjc0lNYUN4SytJYUxHZ1k4?=
 =?utf-8?B?OGwyZ0ZSRHlTZ2s5MGV3RkZNd2pOak95OGZVbmt2M2gzNWowaW4ySkRXa1Bh?=
 =?utf-8?B?WTNydnVhY2Z0VlVHNEs2Q2YxeUhndk9iMnE1OVNYRVYxbldPNWc5akFCckow?=
 =?utf-8?B?QWFzd25TOXRBbTAvUDBubzlqVnBjQVMwSEh4VWFrVXBNNWp1OUZKaW0vanZm?=
 =?utf-8?B?KzJkNGdzYkloU3d0d1dzNjlHWS94Rzcybmc3QnpJb2FhbkFFSnJkRmRZQlVI?=
 =?utf-8?B?eTMxWm0rNjZ5cndJeXZ4aXU5OWl6NHN5dGZDQ0diSkpDZ1dFMzZiaEMrS0Fn?=
 =?utf-8?B?a3hvR1ZuR2FOYXhGZTdkdnR0YXlWczJlQmd4UWdvNC95a04vUitpM0lnUGNQ?=
 =?utf-8?B?b0ZFeTBkT3BaSHZwUnVFWU1tamFrb01WWjFBRmdnemNpU1BFTGpVRWM5UWNx?=
 =?utf-8?B?UFNDdFpCM1BXMThhRHJoMm5LR2lBWTNJTDZHa3RGVmZtR1ZJUWJabWFHN0xs?=
 =?utf-8?B?VXQzRndoOUVOUzhjZ1ZzWmN0TCtaVys2NnNleEplZ0tNNHgvY1lOWEJoL3By?=
 =?utf-8?B?anQyM0VBbE9ycFl5ZDVTOXhBOFVLZUdMQ2QvbXd5K1E5VEc2dWl0azRmZEVC?=
 =?utf-8?B?NDdqMWZSY1dDN2FMRmI0cTNrWmY2Wk9mVVllT2VHWENDdnAwNThDODRDQUQ5?=
 =?utf-8?B?RGtGK1ZsVUxLVGNob0pqNHJhdjJ5Zm1GdHdycldyamtWODRQRTkvcm11cGdI?=
 =?utf-8?B?dUtKUndKdFpKUHdLOXhtOXJCVGNFVnZCdnZSUGJ4dVZTUy9SZDFVNml1WGFr?=
 =?utf-8?B?cFJxYzFEU3RKM2EzYkVyQ0dNdC9DdFovd3J3SjBVRUxmTERWbCtNQVU5ZWdJ?=
 =?utf-8?B?R1JWSmh2NTJGcUcvajBEc0RLR2hjNmE5QTlYRzlDWVkrb1JSUTBEenhjYnFn?=
 =?utf-8?B?Z0VTWm1rcVNsL0ZZdDI2akY0T1pMcjk5WlQvcE5yYkQ4aVY2SnErODhWYmw5?=
 =?utf-8?B?bDB5cDc0WmpVTmkvUXQ2YnViQzBsRDhHS1JjREhkZDZ0cWs1cE9rMzRwK1Jp?=
 =?utf-8?B?ZGZycG9GRm56UWR2YnBtVUcvWXk1c3JqQWdCd3JpSElZZkkxMzVQVzI1QTV0?=
 =?utf-8?B?L3hpd1E3amVsa2UvbXdqdG1jWlU5OEpXTXJPWDFqYWg0Z0R4TkVFb1VFVGRv?=
 =?utf-8?B?TDA2QnZkb0krV3lMci8wTitIMTVwdGZ6ZmdWanlDeHhwWG9vMG9IZjhBK2NX?=
 =?utf-8?B?bEhVZFlCSkVjVDdJMHZ5V0J1NGZoc1hjVHBlRGlRcFk4ZHdGSktYemtmWVpW?=
 =?utf-8?B?Q0lIOVJPRWpPeHczdDJ1SFI0MStNaStPUVpiSk50KzB1N0dHSit4TXhFekx2?=
 =?utf-8?B?MzRtWXI4OVg2QzQwaGY1aWxpZzQ1aUdFdlRlVEIxWFJ3TkhTNEhuRVJsckNs?=
 =?utf-8?B?MnhGWDd3SkI1UmlkWVl0dTEyUk5rVnJENlc0UG5SU1hSNDBNOUp6T3BvQ3RS?=
 =?utf-8?B?RVpaRkZGTCt1NW5GN09YOHhXMWthemNKelZXVm5HODZUVU9zc2gzRENpblFv?=
 =?utf-8?B?cW4yU0trcFRCYTBUZHNiRm5FZU5zaHQwZC9jejRPMVJsalBSYWtWS2w0dTl5?=
 =?utf-8?B?QkxOaUR5WS9Vb1ZXSE9ZODNOUmFsRjlKYUFDV3BTV0Z5WkJaOUJyQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2658ff60-b04b-461b-105b-08de3eda1ea0
X-MS-Exchange-CrossTenant-AuthSource: DS1PR03MB7871.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2025 08:39:27.1866
 (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: 7/xqRChLz1M7fqRMYU62ePDNsYPjC06FgCN5k/kLab/DZGlsiREcPQyIbCPG0IMsazOOMKw51u6Uyf32QCMh8A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB7558

On Thu, Dec 18, 2025 at 08:56:24AM +0100, Jan Beulich wrote:
> Legacy PCI devices don't have any extended config space. Reading any part
> thereof may very well return all ones. That then necessarily means we
> would think we found a "loop", when there simply is nothing.
> 
> Fixes: a845b50c12f3 ("vpci/header: Emulate extended capability list for dom0")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

With the U suffix added to the constant, as noted by Stewart.

> ---
> This is the minimalistic change to get rid of "overlap in extended cap
> list" warnings I'm observing. We may want to avoid any attempt to access
> extended config space when there is none - see Linux'es
> pci_cfg_space_size() and it helper pci_cfg_space_size_ext(). This would
> then also avoid us interpreting as an extended cap list what isn't one at
> all (some legacy PCI devices don't decode register address bits 9-11, some
> return other non-0, non-all-ones data). Including the risk of reading a
> register with read side effects. Thoughts?

I think that's likely too much - for the hardware domain we want to
allow the domain to access all the PCI config space, regardless of
Xen's thinking there's nothing there.

> The DomU part of the function worries me as well. Rather than making it
> "read 0, write ignore" for just the first 32 bits, shouldn't we make it so
> for the entire extended config space, and shouldn't we also make it "read
> all ones, write ignore" when there is no extended config space in the
> first place (then in particular also for the first 32 bits)?

If there's no explicitly handler added, the behavior for domU will
already be to drop writes, and return reads as all 1s, which is fine
for the rest of the extended config space?  We just need to return 0
for the first 32bits to avoid seeming to have extended capability
support.

Maybe we want to keep the same behavior as expected from native for
legacy devices and just return all 1s consistency for the extended
space?

Hence we don't need to special case this region, as it's already
covered by how unhandled accesses are resolved for domUs.

Or is there something else I'm missing?

> Should we perhaps also log a warning if we exit the loop with non-zero
> "pos"?

Possibly?  The spec says no next capability must be signaled by 00,
returning any other value below the extended space is a bug in the
device, but I have no idea whether that would be a common bug, and
whether things would get too noisy.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Dec 19 10:56:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 10:56:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190567.1510955 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWY9I-00031V-00; Fri, 19 Dec 2025 10:55:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190567.1510955; Fri, 19 Dec 2025 10:55:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWY9H-00031O-TR; Fri, 19 Dec 2025 10:55:51 +0000
Received: by outflank-mailman (input) for mailman id 1190567;
 Fri, 19 Dec 2025 10:55:50 +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
 <SRS0=S3ad=6Z=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vWY9G-00031I-Eh
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 10:55:50 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 47456f62-dcc9-11f0-b15b-2bf370ae4941;
 Fri, 19 Dec 2025 11:55:49 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b7ffa5d1b80so196715166b.0
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 02:55:49 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037ae2d5dsm204291566b.27.2025.12.19.02.55.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Dec 2025 02:55:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47456f62-dcc9-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766141749; x=1766746549; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=6Ur6798BnclouuYiImlBcVcxis6pdIIRSDP0zFqrMhY=;
        b=mOZPSolUgm6eYsy+k/L8PjfCPhnxnN1CErFrrGNDpzagtYjc0I5L39Kxm4r5IdQPUq
         ZuAL1qc74Hkvmf+j+i9oHELEHDJFi7R6k7mKdt/2vK8Rxr6tgjNy3tA8KSGBpNghlqfH
         0598VkUS+mMUXJiap8AQlwguOWYRhu5PX34XPZu5p5wTxlCl4bhi5v9sGZK9n+jy5mXN
         qrYG+WBIUKc8K5qlN5xlFUbFQRWCF6uaYxakzNfQf7CAvOKWiGZEYXcIok7a3OMw9rg5
         pExh8ckCPJgi1jamT3lbmXlqyOt8xo+mkIGnnlzoUj+IHDTGiLyhZvpCJeYNXYdIkf6R
         NkcA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766141749; x=1766746549;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=6Ur6798BnclouuYiImlBcVcxis6pdIIRSDP0zFqrMhY=;
        b=snGm9JEp10iPouoYJH5eQNoAW/jaKLR2mq94VpRbwgUTFkV8ENsePuPTq7ztCHNHeZ
         oaXh9tEruCLNdCpAna50lU6GpXWOg1Q/LBF3SaNgUsNP3sblSymjw4NpF1EzNCgo6c7g
         HAZWWFxI3PQysSdhtzsAGjFdiP02h6Lo4Cx8mt6dSFnoOLUj5uAmnWOCLDujnQdD+Mbb
         YkYFo18XHDqaJwuqd2IFFiC4OSWAh8UCZlj6HgX9UgjqDdgxo4JlStsPQTlQzrwqDYM0
         6uOTdTd7OuTUffuo/TuEx2cZmPwOADomqK+/enSH1s3TQWwP4iKC0uEX7avIDfTwIEsL
         yPrQ==
X-Forwarded-Encrypted: i=1; AJvYcCXjO2IaJ+/AC5Tw4+Mpu6STviEqY37nmEYRx5kGenhTsO+r9fND5c2izzVVslUWOhPQx1uDN0VZV+4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxQIyL/VA91wCv5PfQMiSk3UjJdMyN67KjkmWgLU+OjOIGRRPqS
	KffAeKehoHRQCO+1igG0gIfBPN80QpVTN2OoYNp7F8bKMcM6BgfxXIyt
X-Gm-Gg: AY/fxX67Yzlpr+7mhSDu2XNTGctMB+0o7BXP4ockIRK4gvE1NRLK28od4ABUc3a4nKB
	cPSZP3TEEB8dh6J+OewpOfy3+vDxY7xPDcba9YWTerOcgK25r/cWO/bS1Wb0Ui5DCNb3AUvmEGN
	sdPrjWkCFLYzhJ6ILOVHTGP0P9tvvHMhnyxQnZBi5lJdAnuWGgFgGYmiLF2tJj1FtLp9QGydDJO
	TDcVtw4tnLWUOCqoL82pr9Ky66h4jvSbuKyEcmDF7p+DRNlBgHW1MrMjxNdPvvDTFQ3rTt9SfKj
	jSq0utpZgFmUNylm1Bep6U4rA5dxn/uOQTzoOM4ju84S1Uq4+fYsMwLDSKVtBfCX/oVW6cW5RHU
	jfcA0Qbl7v7yg6MuDRZ80Ve81Ym+VV7lIEpUXpxJcufZR1ToCVGXIqv0zI4k9/2UkuItUjKkDbo
	qhRkG36Kvv5DXjlB3yxGoWb61jeBGbesiyDYWemX0gWupHka0DFvqcYzDmR/2hakun
X-Google-Smtp-Source: AGHT+IFcJ6xiPSbR0WzJJNqZkrQYHIebuO/jVD7RQPLAo85NR5Pv9uYQHG1AIflEsYYIoTfV01uj7w==
X-Received: by 2002:a17:907:72c8:b0:b73:6d56:7459 with SMTP id a640c23a62f3a-b803717a112mr228985666b.38.1766141748370;
        Fri, 19 Dec 2025 02:55:48 -0800 (PST)
Message-ID: <635f5dd1-3d9c-48cd-9184-cc493d844a89@gmail.com>
Date: Fri, 19 Dec 2025 11:55:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 18/19] xen/riscv: introduce metadata table to store P2M
 type
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1765879052.git.oleksii.kurochko@gmail.com>
 <b1e4ed0bb4e2f47a7cdb6afe4b9b05462e00fc84.1765879052.git.oleksii.kurochko@gmail.com>
 <c7a00f3e-cbbf-46b3-8d37-ed4565a9314a@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <c7a00f3e-cbbf-46b3-8d37-ed4565a9314a@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/18/25 2:16 PM, Jan Beulich wrote:
> On 16.12.2025 17:55, Oleksii Kurochko wrote:
>> @@ -370,24 +396,101 @@ static struct page_info *p2m_alloc_page(struct p2m_domain *p2m)
>>       return pg;
>>   }
>>   
>> -static int p2m_set_type(pte_t *pte, p2m_type_t t)
>> +/*
>> + * `pte` – PTE entry for which the type `t` will be stored.
>> + *
>> + * If `t` is `p2m_ext_storage`, both `ctx` and `p2m` must be provided.
> Stale comment? There's no ...
>
>> + */
>> +static void p2m_set_type(pte_t *pte, p2m_type_t t,
>> +                         const struct p2m_pte_ctx *ctx)
> ... "p2m" among the parameters anymore. Furthermore, would any caller pass in
> p2m_ext_storage? Judging from the code you may mean "If `t` is greater or
> equal to `p2m_first_external` ..."

By|p2m |I meant|ctx->p2m|, but I agree it would be better to refer to|ctx->p2m |explicitly or just update the comment to the following:
   * If `t` >= p2m_first_external, a valid `ctx` must be provided.
This looks clear enough to me now.

>
>>   {
>> -    int rc = 0;
>> +    struct page_info **md_pg;
>> +    struct md_t *metadata = NULL;
>>   
>> -    if ( t > p2m_first_external )
>> -        panic("unimplemeted\n");
>> -    else
>> -        pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>> +    /*
>> +     * It is sufficient to compare ctx->index with PAGETABLE_ENTRIES because,
>> +     * even for the p2m root page table (which is a 16 KB page allocated as
>> +     * four 4 KB pages), calc_offset() guarantees that the page-table index
>> +     * will always fall within the range [0, 511].
>> +     */
>> +    ASSERT(ctx && ctx->index < PAGETABLE_ENTRIES);
>>   
>> -    return rc;
>> +    /*
>> +     * At the moment, p2m_get_root_pointer() returns one of four possible p2m
>> +     * root pages, so there is no need to search for the correct ->pt_page
>> +     * here.
>> +     * Non-root page tables are 4 KB pages, so simply using ->pt_page is
>> +     * sufficient.
>> +     */
>> +    md_pg = &ctx->pt_page->v.md.pg;
>> +
>> +    if ( !*md_pg && (t >= p2m_first_external) )
>> +    {
>> +        BUG_ON(ctx->level > P2M_MAX_SUPPORTED_LEVEL_MAPPING);
> With this, ...
>
>> +        if ( ctx->level <= P2M_MAX_SUPPORTED_LEVEL_MAPPING )
> ... this isn't needed (dead code). Things would be different with ASSERT().

Agreed, the|if| condition isn’t needed.

If my understanding is correct, this would be different with|ASSERT()|, because
|ASSERT()| does nothing when|NDEBUG=y|, so an incorrect value of|ctx->level |could be missed, right?

>
> Also, isn't this a requirement independent of P2M type? In which case it should
> be moved out of the if()?

Right, it is independent and should be move out of the if ().

>   Yet then, further code in the function (including in
> the body of this if()) doesn't look to be using ->level. Then why the check?

I agree that, at least, the check should be dropped, and|BUG_ON()| can likely be
dropped as well.|ctx->level| isn’t really something|p2m_set_type()| should care
about, since the PTE is passed as an argument and is therefore expected to be
valid; consequently,|ctx->level| is expected to be valid too.

>> @@ -756,6 +891,10 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
>>       unsigned int next_level = level - 1;
>>       unsigned int level_order = P2M_LEVEL_ORDER(next_level);
>>   
>> +    struct p2m_pte_ctx p2m_pte_ctx;
>> +    /* Init with p2m_invalid just to make compiler happy. */
>> +    p2m_type_t old_type = p2m_invalid;
>> +
>>       /*
>>        * This should only be called with target != level and the entry is
>>        * a superpage.
>> @@ -777,6 +916,24 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
>>   
>>       table = __map_domain_page(page);
>>   
>> +    p2m_pte_ctx.p2m = p2m;
> To play safe and have all struct fields initialized (all others implicitly),
> better make this the initializer of the variable? Then you could shorten ...
>
>> +    if ( MASK_EXTR(entry->pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage )
>> +    {
>> +        p2m_pte_ctx.pt_page = tbl_pg;
>> +        p2m_pte_ctx.index = offsets[level];
>> +        /*
>> +         * It doesn't really matter what is a value for a level as
>> +         * p2m_get_type() doesn't need it, so it is initialized just in case.
>> +         */
>> +        p2m_pte_ctx.level = level;
> ... the comment here and really omit the assignment of .level.

Agree, the initializer looks better here, and the assignment could be omitted for now.

I am curious whether|p2m_get_type()| might one day need|p2m_pte_ctx.level|. If so, and
someone were to change|level| between the call to|p2m_get_type()| and the
initialization of|p2m_pte_ctx|, we could run into trouble. Perhaps it is safer to keep
the assignment or would it be enough during code review to check that if|level |changes
between the call to|p2m_get_type()| and the initialization of|p2m_pte_ctx|,|p2m_get_type() |still does not depend on|p2m_pte_ctx->level?|

>
>> @@ -840,6 +1004,7 @@ static int p2m_set_entry(struct p2m_domain *p2m,
>>        * are still allowed.
>>        */
>>       bool removing_mapping = mfn_eq(mfn, INVALID_MFN);
>> +    struct p2m_pte_ctx tmp_ctx;
>>       P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
>>   
>>       ASSERT(p2m_is_write_locked(p2m));
>> @@ -882,6 +1047,8 @@ static int p2m_set_entry(struct p2m_domain *p2m,
>>   
>>       entry = table + offsets[level];
>>   
>> +    tmp_ctx.p2m = p2m;
> Again better make this the variable's initializer?

Sure, it would be better.

>
>> @@ -970,7 +1147,9 @@ static int p2m_set_entry(struct p2m_domain *p2m,
>>       if ( pte_is_valid(orig_pte) &&
>>            (!pte_is_valid(*entry) ||
>>             !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte))) )
>> -        p2m_free_subtree(p2m, orig_pte, level);
>> +    {
>> +        p2m_free_subtree(p2m, orig_pte, &tmp_ctx);
>> +    }
> Why braces all of the sudden?

Likely I've experimented with something and missed to clean up the code
after the experiments. I'll drop them.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Dec 19 12:42:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 12:42:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190621.1510966 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWZo8-0007bY-Bl; Fri, 19 Dec 2025 12:42:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190621.1510966; Fri, 19 Dec 2025 12:42:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWZo8-0007bR-8h; Fri, 19 Dec 2025 12:42:08 +0000
Received: by outflank-mailman (input) for mailman id 1190621;
 Fri, 19 Dec 2025 12:42:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=S3ad=6Z=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vWZo7-0007ah-7q
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 12:42:07 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1fe98628-dcd8-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 13:42:05 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b7636c96b9aso299080466b.2
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 04:42:05 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037f4ef1fsm221975966b.64.2025.12.19.04.42.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Dec 2025 04:42:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1fe98628-dcd8-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766148125; x=1766752925; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=F8amu2wqDy97vzBkq0Jt6gz7CwL9jcfmzjef9FC7dKQ=;
        b=KS6oca/ArqOfrZRosb0WaEcmzd+dhBu2O1kjlnCAwEGLWC/NNVQQVfyVcN1AE8BVte
         eNf/T2wTOSBUkCqzGYns8+AK0LHxDXEqIB8qPbkQkkrG1YHgvACrdjuXLgJvf/d4VQcN
         VyNTlh0G3NwhoHUP0k8+eFdCCCVU3BCiZ0EiU1RPrBIeeyUl9cwoCfIWH9STgKVN/eBF
         fx4cHDw+k2SokVBvZAJfFcQvZjkWMi781LGz7eL+pdLHMut426I/7izU8HYM0olm/Ye/
         FAWih15AN/aYXTHyZiYupbJGVeLDBXynepTtMUk6Q8gm3Ei7v6uFYmximuV9hdK3Jcs/
         lAjw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766148125; x=1766752925;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=F8amu2wqDy97vzBkq0Jt6gz7CwL9jcfmzjef9FC7dKQ=;
        b=AqzLoSXHR2LoeM7tY7J33rdp1k2rCVnjWCjY92zElI/n4GacRG2kjyl+aOludqR/Ox
         67Fdg8SabKcQ35PDBeXp88tE4XYkmZ3FvrK5eLHliR8trRZzOxJ8lJ+VJcBnT9JQzoXM
         Qygz1MEvpFgxB8iWrkb0D0r9XBYb137vTzWzqzDjuEwdL2808xcWe3BwKr2CXm7kWDUb
         aMgZ8Lf9wyW5JbwpmclU1WiayBDpUhZuCfAMrFu2qTm0fiDXan8k4FkuUCqQCuuabv6V
         M5NpGebwZzznpCqfE97VOpFc0cAGD1MF1m3SppHaoPk/ufzbiw4iFzXl5mzBG2LAWO8D
         UO3Q==
X-Forwarded-Encrypted: i=1; AJvYcCVskP/557qbrQgJyP0s5gaT7kCS8qAynYGcqMGpNZf96gngc/usTJ4JSwHLT0hN0UvufgFdUXytcaE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwnZckzdhwY4ozN6J9ptjeyqeKbGJug6+SeIytln+15ouqDWFmv
	HDoS3hIMd/HXtdsytl8EFI3eTwvLj/GTAnDuRDqAKIyAekYTIkoRn+A0
X-Gm-Gg: AY/fxX4+ZVZ6Xsby0XjqPRDOKxLO3hdtsiOfQs5Mh0xxQhQ82lz2E+1wguetsteqmSW
	ti9412KIbvFxS/hHah7aITEn4QxDSm23ON8AM2SkJyss8hqpUXeY3j2fIY2dMZOcmxxq6eiQbaf
	tK/bLV+obr0TtdD80us8kl34lKT1PrtXO4b04Q1iT11+WD3Z4twHNwPOHoRu3Ho3g1JOwRUZMHn
	KbDd/6xa+XdHWkkc8sMk1Ej1HOMcUirUoV4cnIBYFrY5Nob71zb94SFqFfQwql2jKcwh3qJoVwq
	84qZQIZEOb0pRmJt0P5jVHqcnCb/EVikO38cMhiSUFKF3thAX0dFLpKQgkwtdC6Mn77J8hSohMs
	9uMBWLjt7zrOKuQKxdL12Xr31jmwxTt+vrNP8Fy0+CvLt6Wg9gBIw+dZTWqt2L77a92sxOomxTb
	7os5oG9IxgkGvXCyLr5mJETPS6MmZhKgvxeUPEDA6pV1peaR7RP/Ew2t3dSZtlOoaz
X-Google-Smtp-Source: AGHT+IFxdXPyR+fe+99EmunjSZAilJW7Yy05C7BiTXbPR0166XJdbJCjSEIb6hiiActUYZtN+UNXDw==
X-Received: by 2002:a17:907:940b:b0:b73:4d06:bc8 with SMTP id a640c23a62f3a-b8037233d2cmr232990666b.53.1766148124730;
        Fri, 19 Dec 2025 04:42:04 -0800 (PST)
Message-ID: <33574fb0-0331-48ac-a7c1-e4a2907db0d1@gmail.com>
Date: Fri, 19 Dec 2025 13:42:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] xen/arm: optimize the size of struct vcpu
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1766053253.git.oleksii.kurochko@gmail.com>
 <946a1c2cfaf4157074470a653bba5baa8561ebbf.1766053253.git.oleksii.kurochko@gmail.com>
 <ea01af72-c94e-4203-90c4-eaf68174b576@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <ea01af72-c94e-4203-90c4-eaf68174b576@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/18/25 7:15 PM, Andrew Cooper wrote:
> On 18/12/2025 5:28 pm, Oleksii Kurochko wrote:
>> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
>> index 3ebdf9953f..8b17871b86 100644
>> --- a/xen/arch/arm/vgic.c
>> +++ b/xen/arch/arm/vgic.c
>> @@ -370,29 +370,35 @@ int vcpu_vgic_init(struct vcpu *v)
>>   {
>>       int i;
>>   
>> -    v->arch.vgic.private_irqs = xzalloc(struct vgic_irq_rank);
>> -    if ( v->arch.vgic.private_irqs == NULL )
>> +    v->arch.vgic = xzalloc(struct vgic_cpu);
>> +    if ( v->arch.vgic == NULL )
>> +        return -ENOMEM;
>> +
>> +    v->arch.vgic->private_irqs = xzalloc(struct vgic_irq_rank);
>> +    if ( v->arch.vgic->private_irqs == NULL )
>>         return -ENOMEM;
> This error path needs to free v->arch.vgic.  (If we continue down this
> route.  See below.)
>
>>   
>>       /* SGIs/PPIs are always routed to this VCPU */
>> -    vgic_rank_init(v->arch.vgic.private_irqs, 0, v->vcpu_id);
>> +    vgic_rank_init(v->arch.vgic->private_irqs, 0, v->vcpu_id);
>>   
>>       v->domain->arch.vgic.handler->vcpu_init(v);
>>   
>> -    memset(&v->arch.vgic.pending_irqs, 0, sizeof(v->arch.vgic.pending_irqs));
>> +    memset(&v->arch.vgic->pending_irqs, 0, sizeof(v->arch.vgic->pending_irqs));
>>       for (i = 0; i < 32; i++)
>> -        vgic_init_pending_irq(&v->arch.vgic.pending_irqs[i], i);
>> +        vgic_init_pending_irq(&v->arch.vgic->pending_irqs[i], i);
>>   
>> -    INIT_LIST_HEAD(&v->arch.vgic.inflight_irqs);
>> -    INIT_LIST_HEAD(&v->arch.vgic.lr_pending);
>> -    spin_lock_init(&v->arch.vgic.lock);
>> +    INIT_LIST_HEAD(&v->arch.vgic->inflight_irqs);
>> +    INIT_LIST_HEAD(&v->arch.vgic->lr_pending);
>> +    spin_lock_init(&v->arch.vgic->lock);
>>   
>>       return 0;
>>   }
>>   
>>   int vcpu_vgic_free(struct vcpu *v)
>>   {
>> -    xfree(v->arch.vgic.private_irqs);
>> +    xfree(v->arch.vgic->private_irqs);
>> +    xfree(v->arch.vgic);
>> +
>>       return 0;
>>   }
> Free functions should be idempotent.  This was buggy before, even moreso
> now.  It wants to be:
>
> void vcpu_vgic_free(struct vcpu *v)
> {
>      if ( v->arch.vgic )
>      {
>          XFREE(v->arch.vgic->private_irqs);
>          XFREE(v->arch.vgic);
>      }
> }
>
> Given the type change, this probably wants splitting out into an earlier
> patch.
>
> Given the fact that the single caller doesn't even check the return
> value, you're fixing a MISRA violation by making it void.

Btw, IIUC, it could be also be something like:
   (void) vcpu_vgic_free(...)
and then we won't break any MISRA rule, right?

I will send suggested updates in the separate patch of this patch series.


>
>> diff --git a/xen/arch/arm/vgic/vgic-init.c b/xen/arch/arm/vgic/vgic-init.c
>> index f8d7d3a226..67f297797f 100644
>> --- a/xen/arch/arm/vgic/vgic-init.c
>> +++ b/xen/arch/arm/vgic/vgic-init.c
>> @@ -241,10 +245,12 @@ void domain_vgic_free(struct domain *d)
>>   
>>   int vcpu_vgic_free(struct vcpu *v)
>>   {
>> -    struct vgic_cpu *vgic_cpu = &v->arch.vgic;
>> +    struct vgic_cpu *vgic_cpu = v->arch.vgic;
>>   
>>       INIT_LIST_HEAD(&vgic_cpu->ap_list_head);
>>   
>> +    xfree(vgic_cpu);
>> +
>>       return 0;
>>   }
> Not in your part of the change, but this is bogus.  It's not remotely
> safe to init the list head like that.
>
> The list is either already empty, in which case it's a no-op, or it
> corrupts the list.  It appears that the list mixes entries from other
> vCPUs, and from the domain.

I guess it should be handled by vgic_prune_ap_list() which is called
when we are entering hypervisor (enter_hypervisor_from_guest() ->
vgic_sync_from_lrs() -> vgic_prune_ap_list()).

Also, I would like not that this code is based on KVM which also has
the same INIT_LIST_HEAD():
   https://elixir.bootlin.com/linux/v6.18.1/source/arch/arm64/kvm/vgic/vgic-init.c#L467

I won't touch this code in the next patch series except if one of
Arm's maintainer will tell me so.

>
> I think this is further proof that NEW_VGIC should be deleted
> wholesale.  It's clearly not in a good state, and I get the impression
> that a badly timed evtchn sent to a domain in the middle of being
> cleaned up will cause Xen to trip over the corrupted list.
>
>>   
>> diff --git a/xen/arch/arm/vgic/vgic-v2.c b/xen/arch/arm/vgic/vgic-v2.c
>> index 6a558089c5..e64d681dd2 100644
>> --- a/xen/arch/arm/vgic/vgic-v2.c
>> +++ b/xen/arch/arm/vgic/vgic-v2.c
>> @@ -56,8 +56,8 @@ void vgic_v2_setup_hw(paddr_t dbase, paddr_t cbase, paddr_t csize,
>>    */
>>   void vgic_v2_fold_lr_state(struct vcpu *vcpu)
>>   {
>> -    struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic;
>> -    unsigned int used_lrs = vcpu->arch.vgic.used_lrs;
>> +    struct vgic_cpu *vgic_cpu = vcpu->arch.vgic;
>> +    unsigned int used_lrs = vcpu->arch.vgic->used_lrs;
> vgic_cpu->used_lrs.
>
> Taking a step back, I think the patch could be much smaller if you only
> made private_irqs in NEW_VGIC be a separate pointer, matching the "old"
> VGIC code.  Or does that not save enough space in struct vCPU?

It seems like it would be also fine, the size of struct vcpu will be 2176.
And it also basically just require only:
   struct vgic_cpu {
   -    struct vgic_irq private_irqs[VGIC_NR_PRIVATE_IRQS];
   +    struct vgic_irq *private_irqs;
(of course with allocation and freeing of private_irqs).

Lets stick to this approach then.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Dec 19 12:42:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 12:42:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190630.1510977 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWZot-00083M-K3; Fri, 19 Dec 2025 12:42:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190630.1510977; Fri, 19 Dec 2025 12:42:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWZot-00083F-GM; Fri, 19 Dec 2025 12:42:55 +0000
Received: by outflank-mailman (input) for mailman id 1190630;
 Fri, 19 Dec 2025 12:42:54 +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
 <SRS0=S3ad=6Z=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vWZos-0007zd-3O
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 12:42:54 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3c6467ea-dcd8-11f0-b15b-2bf370ae4941;
 Fri, 19 Dec 2025 13:42:53 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-64b9cb94ff5so722715a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 04:42:53 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b90f53bb7sm2115888a12.7.2025.12.19.04.42.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Dec 2025 04:42:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3c6467ea-dcd8-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766148173; x=1766752973; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=N1jMJceSBlap6GNc6rJt7NHv7jH7WosXTCKxXBXC9EI=;
        b=Ap5KMI/VP6Y5pS+qYq+htljsx4yHINCykEeN3i7i0FeTbBI0r9LUg4B0UGMJW5ujcH
         mH1Jg+TfKIXHWakNbrXRZOAhwus6cVIZNYzAsoq7702Ey3JlAYXpnWa9oPJPl7L6AE9q
         IhL1T8n2QJziHvyl3HQ48yJPbrFWO4h0MOCh5208rFg46DYt66hM/Ube0kfSNyLuhiva
         7Y2j53pWtwY9JOdpa0VXaxOP7VXYRE6c71RY4vycaXOi7w2L5Q9GoESiYCYxJMf8Yw6L
         aA8mjwqo4OwOSTtxI2FVHQrefXgc0pXyuqJ+4uVqYhYtHpPdBGtBVHusedJNJf6Psv1Y
         k6AA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766148173; x=1766752973;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=N1jMJceSBlap6GNc6rJt7NHv7jH7WosXTCKxXBXC9EI=;
        b=YyOWhNv9xhFv3/7WvOfpOFTJQ3l5ilUzyzKTBUwXd7fd/EfENLoAPXBef0R+dFUJhp
         5+7wxuplJWNpGZt9b9TTVMn9Mk+8eJo3PBKkGYb66C8ztJX/f51e1inrC1IU9XbKynLu
         J9z/GoPGTqXzhIG0N41pLOA1b3rVcD2kqF5U03MSzMeqTsxxz2PNk00C/fIY5FH/bL5C
         /oJwPG0xk4jW1iyLy6f9+qzy+5ia0ehLTaAeylrf99vlUZESWY2RstDuqBAmjU5wwqg6
         qCCrKow3t4qRb5l1v7L1TCS1GdbhJT68O4+qEaGnvC1UdR1DSSLRC9xjMFkq9FUHSSyI
         PBvA==
X-Forwarded-Encrypted: i=1; AJvYcCWYZt1+unk3n2uSEIacEQAH8wlMGtaoJFX5eTWgfxx6Evu1avk7RnYksq7dCNMaF5niuVwVSmLH42Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxEyQzD/zNGnhcU7hhQqioc24DfaDMwqwjZ+VcE7GDB4eMJiPvo
	qsKVrogpa+zy3kxRrjLM6UAPFNWzU3Hj6/nt0PxOfTkOMdilmYpcff7f
X-Gm-Gg: AY/fxX5TOfzFsmVDCsV6mJlSq3IDZz+FpvnbkNQV4048nh7J6VSyNwwZ+8P4yehgxuH
	lYtMbFnFx1MLHj1udpEWIguqy940iIQiBN7SvtEjOttTtf4Wrgpx0RNhTld0tSgiq3k4YRiyYhc
	87RyZiqwxV7WuPv7Sjn9CeqbbtGzc2gYAqyGMUT73sR31bRxkeDW3wVA7ZSweZgWDxsxvkfE3RQ
	NY9FiFUU+hnUPgDFpkGJCmRBgTJDoZUNfxJv6/0+LRd7N/+WCeziEeKMWlJ6s6asRSqLZnPqzkn
	O9OW3tX6OSvfKIpCVxwjmtZ16SqgpjnQyh1u2MU+oZ9LmP5JVWJsdt1OdZayK68S29PFYAB9MuG
	WnnDqDj7yupBi2n5q2s5s21fGU9o/LS10WRqcmJ53TVeJEftgxaHYg1rESmR26+gUv8by2WXMTz
	4kq88LbO9sZkyY2KsxOI6sYiJ/BKGTOmLtquhGoZgUrzLxClehGE+iRBEloiXLXYdq
X-Google-Smtp-Source: AGHT+IGtAlyIG/uH2hOJikr4KLhkONfu8WpRqTGaSZtdljnT7HO0evwGi1chQQyT5YsSt2nk75g4Qg==
X-Received: by 2002:a05:6402:35c1:b0:64b:7e25:c4d2 with SMTP id 4fb4d7f45d1cf-64b8ec9b1c8mr2330585a12.20.1766148172619;
        Fri, 19 Dec 2025 04:42:52 -0800 (PST)
Message-ID: <d17861f4-7ca9-4ab9-a388-ccffe2f1c0f3@gmail.com>
Date: Fri, 19 Dec 2025 13:42:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/4] xen/arm: drop MAX_PAGES_PER_VCPU
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1766053253.git.oleksii.kurochko@gmail.com>
 <74f1594aad235765002b59f2baa975cc8fe72f06.1766053253.git.oleksii.kurochko@gmail.com>
 <acbc46e0-e102-41cc-ace1-578a20644b34@citrix.com>
 <a59fdb5d-0c7e-4303-bb1f-fa47ebfcd163@amd.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <a59fdb5d-0c7e-4303-bb1f-fa47ebfcd163@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 12/19/25 9:22 AM, Orzel, Michal wrote:
>
> On 18/12/2025 19:19, Andrew Cooper wrote:
>> On 18/12/2025 5:28 pm, Oleksii Kurochko wrote:
>>> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
>>> index 47973f99d9..e566023340 100644
>>> --- a/xen/arch/arm/domain.c
>>> +++ b/xen/arch/arm/domain.c
>>> @@ -473,36 +473,21 @@ void dump_pageframe_info(struct domain *d)
>>>   
>>>   }
>>>   
>>> -/*
>>> - * The new VGIC has a bigger per-IRQ structure, so we need more than one
>>> - * page on ARM64. Cowardly increase the limit in this case.
>>> - */
>>> -#if defined(CONFIG_NEW_VGIC) && defined(CONFIG_ARM_64)
>>> -#define MAX_PAGES_PER_VCPU  2
>>> -#else
>>> -#define MAX_PAGES_PER_VCPU  1
>>> -#endif
>>> -
>>>   struct vcpu *alloc_vcpu_struct(const struct domain *d)
>>>   {
>>>       struct vcpu *v;
>>>   
>>> -    BUILD_BUG_ON(sizeof(*v) > MAX_PAGES_PER_VCPU * PAGE_SIZE);
>>> -    v = alloc_xenheap_pages(get_order_from_bytes(sizeof(*v)), 0);
>>> -    if ( v != NULL )
>>> -    {
>>> -        unsigned int i;
>>> -
>>> -        for ( i = 0; i < DIV_ROUND_UP(sizeof(*v), PAGE_SIZE); i++ )
>>> -            clear_page((void *)v + i * PAGE_SIZE);
>>> -    }
>>> +    BUILD_BUG_ON(sizeof(*v) > PAGE_SIZE);
>>> +    v = alloc_xenheap_pages(0, 0);
>> I know this is only interim until the next patch, but
>> alloc_xenheap_page() to match the free function used.
>>
>> Personally, I'd merge patches 2 and 3 together, because everything you
>> touch in this patch is deleted by the next one.
>>
>> But, whatever the ARM maintainers prefer.
> I'm in favor of Andrew's suggestion. There's no point in introducing something
> in one patch and dropping it in the very next one.

Then I will merge patch 2 and 3.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Dec 19 12:49:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 12:49:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190641.1510985 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWZvA-0000MG-7n; Fri, 19 Dec 2025 12:49:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190641.1510985; Fri, 19 Dec 2025 12:49:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWZvA-0000M9-4b; Fri, 19 Dec 2025 12:49:24 +0000
Received: by outflank-mailman (input) for mailman id 1190641;
 Fri, 19 Dec 2025 12:49:22 +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
 <SRS0=S3ad=6Z=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vWZv8-0000M3-7A
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 12:49:22 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 235c6858-dcd9-11f0-b15b-2bf370ae4941;
 Fri, 19 Dec 2025 13:49:20 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-b7277324054so300190266b.0
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 04:49:20 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037f4ef1fsm223522766b.64.2025.12.19.04.49.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Dec 2025 04:49:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 235c6858-dcd9-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766148560; x=1766753360; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=19GTY5qEJX6TG8NCSh7ISltFZSbUNmv+0gKGWAVgOc4=;
        b=PoETOGkIGbp1rbAcDDLR5LDhQW3xsgpEgOnaXc0358RR7zRe/qWjiC36XHgxzq6AEu
         2wLsBwikaG8Bo6YzAeYTINZjZ/HdIMg5d1EyDndS+Mw6BFpjZxdo7XLEu+X+kC6vW9tr
         VczUF4qmQSMGI/YEZQ5w7vg9ky9BRTeiXEGThrIK8OTlwuA46S8BUTYc+xS4a0p73BC0
         Gi363iLldZORXPpo+6zNiz8I2NR1WveOkQpP0/blt4/Z2AzhYv9RUVBjzeJRaIl7AFA7
         CH/w9G7kkrTNl5B/HlMW2L9i3Q1kmCkWdJAE1nZP3JK2ruAcqB0xJxs2qe1kZKKfxs6b
         ct1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766148560; x=1766753360;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=19GTY5qEJX6TG8NCSh7ISltFZSbUNmv+0gKGWAVgOc4=;
        b=n5j6XKY1rWKeC1QVCr5+YUgqQJIjyCXZdgSunxnqDXqzXZmYD0VRBUQV7L2QkOxY8t
         0JtkzsA2cH0tmVVtN17dLhjJypsAc6Edv4Cgn4PSeXL7Sxqtp61oAvvMvlVDItU5BAeH
         vkSBSgOuoqFwrZ8FOIOWGXfFtLPOIGwm5BBdzXtmnXF3AiOiI8qvylFiw/kx0AtmBtCA
         CW3kkeDZ+vE1FJQG0U2IGoA8HNZl/HE0DemMi8cteD3faZcpqtt9o/8o8R/pB/fkwxhc
         7f/2Q4AysJbNAEmxpJpilEcAIWkXZs5xqTi0eZUueo36mv1A7xwGhX1+YbVXxgAOvXgR
         ZU3w==
X-Forwarded-Encrypted: i=1; AJvYcCULO9tLNXsBSLENATpeHDPbYcM8/5Ulsf13YW5sf8tc35txIaLCyvqpkDBWAoIBoYU12oij/jnPCf4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwCHe8AeKfgI9jJuAiu6G68F/lmWo6ovbAk5ZhJp3GxoXKXT46l
	r3ingbXW6A4biaF8t7DaffvG6YQPPXekiJcGtxFjvl2wDnM5ogKaFGn6
X-Gm-Gg: AY/fxX6NGq4v0RvD16C0M3DKjzvSuISvpRkiU8O6viD5rFg1ubn7b3ITDh2qfrGfAmk
	3iqNnRY6WIKct7D40XA5IqUpGAU3dNRlnAfxH5MnVWg4l4vjN5H5hWvjNPU4Pc8RxAJWzWA+vwL
	BBGl8b1+DwZoPeF+0w6gmlnYdSxVHhzBYIKHi7Egx613z8rE84HB2N4XxBrO72ALGFsr/+eA8Td
	hPvW3OnMgZIZx4lUXDusS0oO7V1LMbWNFSjw8Ex5WugN/2x7j1SBZ5EJOF3rV9gryLmCOwnX0sQ
	sHO3ypqSQCj/OBhN2qz2qIAH277RZUvpJ4/ZovOVPV6HMu0csh+DASyd94nwmdC6tcB5ir2w0z0
	uBI93dhZpW/Bx9KnEhMRc8LIqtyhS3Xto1WRpo5ElF8b3ZrNG3UlswnXjqLxAomwFeH5fEdFhkv
	mD9q9GnSK9FlQGuN8wPf2hx+qwqcfS3YVH8/DfAP50sS4Z/6M7zQS36/xi6wDyQC80
X-Google-Smtp-Source: AGHT+IFM7yyYSCWXjnTrcyxZ/tArE+m4f5bWXFIZeMHbFRBMDTovM//0nOUInDie2V5ZH2Cpsr3npg==
X-Received: by 2002:a17:907:868e:b0:b76:4c8f:2cd8 with SMTP id a640c23a62f3a-b8037233e75mr277327966b.55.1766148560062;
        Fri, 19 Dec 2025 04:49:20 -0800 (PST)
Message-ID: <1110cdc9-bb41-4ae8-9039-75b82ea4a056@gmail.com>
Date: Fri, 19 Dec 2025 13:49:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/4] xen/common: make {alloc,free}_domain_struct()
 static
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1766053253.git.oleksii.kurochko@gmail.com>
 <439f6e9dc1f35736024023d70ed7e1daf1ec294b.1766053253.git.oleksii.kurochko@gmail.com>
 <69b3249f-220d-49bc-a1c6-e517ae5f3b68@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <69b3249f-220d-49bc-a1c6-e517ae5f3b68@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/18/25 7:21 PM, Andrew Cooper wrote:
> On 18/12/2025 5:28 pm, Oleksii Kurochko wrote:
>> As {alloc,free}_domain_struct() are used only within domain.c,
>> they can be declared static and their declarations removed
>> from xen/domain.h.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Thanks.

>> ---
>> Changes in v2:
>>   - New patch.
>> ---
>>   xen/common/domain.c      | 6 ++++--
>>   xen/include/xen/domain.h | 4 ----
>>   2 files changed, 4 insertions(+), 6 deletions(-)
>>
>> diff --git a/xen/common/domain.c b/xen/common/domain.c
>> index 92fc0684fc..7509dafd6f 100644
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -690,6 +690,8 @@ static int domain_teardown(struct domain *d)
>>       return 0;
>>   }
>>   
>> +static void free_domain_struct(struct domain *d);
>> +
> Another option would be to move them both up here, and avoid the forward
> declaration.  It's a bigger patch, but results in domain.c being
> slightly less complex.

Then I will move both|free_domain_struct()| and|alloc_domain_struct()| (to keep them
together) to the place where the forward declaration of|free_domain_struct()| is
introduced in this patch.

Does that work for you?

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Dec 19 13:33:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 13:33:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190670.1510996 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWabT-0006cD-Cb; Fri, 19 Dec 2025 13:33:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190670.1510996; Fri, 19 Dec 2025 13:33:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWabT-0006c6-9z; Fri, 19 Dec 2025 13:33:07 +0000
Received: by outflank-mailman (input) for mailman id 1190670;
 Fri, 19 Dec 2025 13:33:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=S3ad=6Z=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vWabR-0006bj-Rj
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 13:33:05 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 39e040a4-dcdf-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 14:32:55 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-64b7318f1b0so2035305a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 05:32:55 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b9ef904bcsm1503161a12.22.2025.12.19.05.32.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Dec 2025 05:32:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 39e040a4-dcdf-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766151175; x=1766755975; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=gIrjMXZ23qqS8ENZsGzyNOOuTYeLxaJvfCF+F6Ut4x8=;
        b=WpRDKZ8PNbLR97JlQjxHAVJsjx+zcwFxg8Hy+toJphieib3eCCnmIfJ+4HBboLDSlv
         Iya/Xr8H3bxsVF7A7YqbteUwGzcNDBIcoSEDBKhiBRp8eFn3c7oTYgZWmffKfZAmc8K2
         Y7Kj44Kn6YGI8I09/9gSDPgBpHif02Uv9indfsrexZ5CurlXX7j7nLIIKXfRyRYrVU/K
         A1novwGue1o/d0UC+kPqn7+GDoXEUxFZxqxBzeBSOJ1rXjFMmYBjsMYKQ1E37ThDay1Y
         kINNo6eJHE06b7a9ULJ2Ru+Khrt4Rl72IRRHGdByIlN0pX0Wov9JOwKZk3OYCIkwYRZA
         lqkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766151175; x=1766755975;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=gIrjMXZ23qqS8ENZsGzyNOOuTYeLxaJvfCF+F6Ut4x8=;
        b=SRSUM7Q4+BwTBPzGy6QG8LVm3BPs2+wPh0+KyeK+vKeQ//9Wt5FcKy/xoR/1+ayBMb
         Fv3dzZpD3FWfRmaudX5J0YOy9vHe46HUwCf+vyJ4ts7IO94WG/ButsuSrw1SQIHWPKyS
         StZHz6pNmiv6VcgU74jF54yRto+JIvz9b6L3SRnS8TXmbCKL5uhwoGJJp39RWVBQITu8
         0c6V0V8Nk9v7mHE7dOPrRfDPljfPmhmeFFdxxhzcKQcGq7yPLU3d8XZh25P1UTrwZwv/
         n0E/O+YUxxzw0RowOXRIeLpjQR71U0bp1Mjk1nnY9Z9J4qHdfLoBpsD1SNEHkL9BpPBH
         7ZvA==
X-Forwarded-Encrypted: i=1; AJvYcCVcY0EKpnS/TXqIEl5F+7ritD1pf1jp1lwcyd+FDCRyqGpEvnG8Joiqt9V45TBGf7hTUNIml/n9/TE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxy8svYrnMJfeGVfoCBVUqfbgBnobh/4OWzFop8T5xkSx2z3qwS
	Cgs8JBZvV0ZEYgEidkEQ4lYU+NvqH+Zaiwc/NcmHFiOPD/4bc7pQBLWS
X-Gm-Gg: AY/fxX50VfnkfGADn/hmwdhWntqjTU3llqq9IDgww3toEdku1T+ZPCg6SfXmryD8Ai/
	5wMRLLywnJDoiiBTfxZgYLbBGso3vsY8IVPOq7+xNkv8KHPLIfLBu/fz+2GuzqrPQ+nw8AqvSj9
	VYCLKNgI+MXWDwPB5Ix47Lx7GdfUhW2KFBI1H2vHyLhaFSuzu+iclDolmXbHII/sNmBc0qMHp9V
	b7d3oK8jYVnoEeWktyDOjAENpeQCk6SmB2VD/ad4RXc79kldvP54XcO1/WrgFzGJI109To2ddd1
	Zl6Z95cl0BLIsq6RHoalqJmQHq3NvD5tqNDPnDJn7Q6rMAqhhutBWPvsR6C6mNBCLntWWjTAcwU
	o7Bq3gAwgF4ejHe70k1FJsFUOnTnGUQrcf+zjIPmqbi37Nf5r7FiCpP3GNgW94rXhBqKjZiKS/v
	P6Jnx+sElQUHjPSPuXIBririwQpq5IFVDuAoKvtTSkX4YJlc2W/CeVxkMydytKyHhh
X-Google-Smtp-Source: AGHT+IGlLNim9BdtoaVgYWZf2FaQC1MQs9OLFaP+IqoPYVXOMsqP/s3Ib+RJlW9ZVkoa6lJxa+slQg==
X-Received: by 2002:a05:6402:2343:b0:641:3492:723d with SMTP id 4fb4d7f45d1cf-64b8eb73c83mr2856911a12.11.1766151174856;
        Fri, 19 Dec 2025 05:32:54 -0800 (PST)
Message-ID: <290b8d4d-f853-418a-ae01-aea2f62b4f56@gmail.com>
Date: Fri, 19 Dec 2025 14:32:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] xen/arm: optimize the size of struct vcpu
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1766053253.git.oleksii.kurochko@gmail.com>
 <946a1c2cfaf4157074470a653bba5baa8561ebbf.1766053253.git.oleksii.kurochko@gmail.com>
 <ea01af72-c94e-4203-90c4-eaf68174b576@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <ea01af72-c94e-4203-90c4-eaf68174b576@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/18/25 7:15 PM, Andrew Cooper wrote:
>>   int vcpu_vgic_free(struct vcpu *v)
>>   {
>> -    xfree(v->arch.vgic.private_irqs);
>> +    xfree(v->arch.vgic->private_irqs);
>> +    xfree(v->arch.vgic);
>> +
>>       return 0;
>>   }
> Free functions should be idempotent.  This was buggy before, even moreso
> now.

Was it really buggy before in terms of idempotent.

It seems like xfree() can handle the case when v->arch.vgic.private_irqs is NULL.
Should I still have:
  if ( v->arch.vgic->private_irqs )
     XFREE(v->arch.vgic->private_irqs);
?

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Dec 19 14:16:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 14:16:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190698.1511006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWbHd-0003Or-IN; Fri, 19 Dec 2025 14:16:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190698.1511006; Fri, 19 Dec 2025 14:16:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWbHd-0003Ok-Ei; Fri, 19 Dec 2025 14:16:41 +0000
Received: by outflank-mailman (input) for mailman id 1190698;
 Fri, 19 Dec 2025 14:16:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=4Y5i=6Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWbHc-0003Oe-Py
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 14:16:40 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5365afb7-dce5-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 15:16:35 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-42e2e77f519so1320607f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 06:16:35 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea830fesm5162451f8f.20.2025.12.19.06.16.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Dec 2025 06:16:33 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5365afb7-dce5-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766153795; x=1766758595; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9NcFCrU2zeObXvlfOzBhBH/aBc2X2ZqANkEVmij7Rh8=;
        b=S+xNmI/dGuO2wXGSNMFh4dFnMoJ3dQNb+Tj+y+FUnaO5JwW5GXgOMByraoIns8qIzM
         0ruPdzPkTf/yki+eJ4Rrrb6JQ4Z9wecrcHibNhocrPuZArqJ7VVdlZVFe5UpNXoNJa0B
         GDDik0PuX4+IAcr0Oedw8og2+c2e0i60YtUsN1TT+58TAJfbt6ZzXfelE9OJY9E3uO6Q
         2ND6H+c8eVeI5zOBASoXQkqZGgliCCNjwG5HC7fQ5GEXvLxBbUh1G7YdwLQFatVJJ4UP
         rjP1SZR7Ns48VNZ77S4C5r6QZY48Mu+UOAfgYK6gI6xOkAfPEELNmrEqiZW7YoCQ6N8b
         4NGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766153795; x=1766758595;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9NcFCrU2zeObXvlfOzBhBH/aBc2X2ZqANkEVmij7Rh8=;
        b=mk0eiM6XwAwtU1kfYqaFbuQ01AeAVQyj2Z4hkZH8q74u/c2oi7I3XwSIF/u0ZkmXi6
         kzfdvtcbSJTWy++53dxiPCcvhi+q2vPSSfl4vhtlZ6xJaBFkv9euNuRhYu51UEL1h63y
         nvqScbIpfcPvoPt3Cn0SPNKkY7HPOByMoJv/NHKf/r1+PWNaG/+Inh6hnVrJxmf23ZaO
         e4qVI5Jjg/ZaB0aAsu8pDISlxO4SbPBkbVd5zR0r6QWbqxvPSaAd/c9rRsKaTpYQwaci
         lteeDQ8adhxhnjDxubJOL6YGp8JvOLS1/bDDs3rK/2B1xxaNmVlKFVq40RQw9T7dNUz9
         amFA==
X-Forwarded-Encrypted: i=1; AJvYcCX5MOykW+kMmyiprBmUTo6iYtKChYNujYrtfXfo18GeJnpXAtn3SSHCQgyumDxNk4iwaDXYbk/1084=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwgsnZx4Z7xAITy8ldNYg3ioB/D11pvGb8P5rZZ+IWygVagsv1C
	JkYpyQfHbR+7rbcRv3jDy6vmXYC374X5plz/R58qzKmrMaNcBqYNnX58am6D0CX+4FMze1WoIwR
	Fq+o=
X-Gm-Gg: AY/fxX4du3QlvhSBqzevSjU3dJMqYrb6EhE1pFW9BmGnL5wxbhUgA/tT8HFCl0GkWt7
	zmiGYQh0NbqAI1KVS/HXx/5D0d6v6adVtV+EwtskuSlCQ/IgYn/KdWh//vYbM9iwyzjiZDlvOr5
	9UixtgAvhm8da8rutuQ6c8oK+oN1nXuRccOTQV50zk6iKywH+fUbU5oO95zxwwrmYrspJOW1fZH
	2dm1fRk3Reix1N5naTD2KgoHp76ptBo/c5pOQSo+pkXR7IPz7v+5qaK/QWjUmGhRXZg2pJ/5AdG
	znnig1Q8kih0WEcrNi1CaTG43VGTTG03xWeKZo0OsbOuEGcVqrpmJek+TUVaPqvlUplRtVXUz0M
	rL4dSGxpPaaCbY1d4O1/lJ07wvWPN/Ta1Af8JMteh4Z0Lwm2Skr0SXiLDT+u1o7IfOc9fte8fVD
	5vwfRNQSlDX7zf+Cgef33rbU/BbilrNf3f3hFzMEPFriyI3eZGz2o7M2bUdl+JXLgqKJ5LB9hhy
	2U=
X-Google-Smtp-Source: AGHT+IHTsCatPScWQn0qbKhlJDW8etQui7WBlkAFjBGDqN8UI9csZFHmk/nSmR9iVVX8j5KiAZVQig==
X-Received: by 2002:a05:6000:2909:b0:430:f97a:6f43 with SMTP id ffacd0b85a97d-4324e709710mr3802520f8f.53.1766153794756;
        Fri, 19 Dec 2025 06:16:34 -0800 (PST)
Message-ID: <ca485923-ee76-4be6-bb92-7782800f7fee@suse.com>
Date: Fri, 19 Dec 2025 15:16:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] xen/arm: optimize the size of struct vcpu
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <cover.1766053253.git.oleksii.kurochko@gmail.com>
 <946a1c2cfaf4157074470a653bba5baa8561ebbf.1766053253.git.oleksii.kurochko@gmail.com>
 <ea01af72-c94e-4203-90c4-eaf68174b576@citrix.com>
 <33574fb0-0331-48ac-a7c1-e4a2907db0d1@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <33574fb0-0331-48ac-a7c1-e4a2907db0d1@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.12.2025 13:42, Oleksii Kurochko wrote:
> 
> On 12/18/25 7:15 PM, Andrew Cooper wrote:
>> On 18/12/2025 5:28 pm, Oleksii Kurochko wrote:
>>> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
>>> index 3ebdf9953f..8b17871b86 100644
>>> --- a/xen/arch/arm/vgic.c
>>> +++ b/xen/arch/arm/vgic.c
>>> @@ -370,29 +370,35 @@ int vcpu_vgic_init(struct vcpu *v)
>>>   {
>>>       int i;
>>>   
>>> -    v->arch.vgic.private_irqs = xzalloc(struct vgic_irq_rank);
>>> -    if ( v->arch.vgic.private_irqs == NULL )
>>> +    v->arch.vgic = xzalloc(struct vgic_cpu);
>>> +    if ( v->arch.vgic == NULL )
>>> +        return -ENOMEM;
>>> +
>>> +    v->arch.vgic->private_irqs = xzalloc(struct vgic_irq_rank);
>>> +    if ( v->arch.vgic->private_irqs == NULL )
>>>         return -ENOMEM;
>> This error path needs to free v->arch.vgic.  (If we continue down this
>> route.  See below.)
>>
>>>   
>>>       /* SGIs/PPIs are always routed to this VCPU */
>>> -    vgic_rank_init(v->arch.vgic.private_irqs, 0, v->vcpu_id);
>>> +    vgic_rank_init(v->arch.vgic->private_irqs, 0, v->vcpu_id);
>>>   
>>>       v->domain->arch.vgic.handler->vcpu_init(v);
>>>   
>>> -    memset(&v->arch.vgic.pending_irqs, 0, sizeof(v->arch.vgic.pending_irqs));
>>> +    memset(&v->arch.vgic->pending_irqs, 0, sizeof(v->arch.vgic->pending_irqs));
>>>       for (i = 0; i < 32; i++)
>>> -        vgic_init_pending_irq(&v->arch.vgic.pending_irqs[i], i);
>>> +        vgic_init_pending_irq(&v->arch.vgic->pending_irqs[i], i);
>>>   
>>> -    INIT_LIST_HEAD(&v->arch.vgic.inflight_irqs);
>>> -    INIT_LIST_HEAD(&v->arch.vgic.lr_pending);
>>> -    spin_lock_init(&v->arch.vgic.lock);
>>> +    INIT_LIST_HEAD(&v->arch.vgic->inflight_irqs);
>>> +    INIT_LIST_HEAD(&v->arch.vgic->lr_pending);
>>> +    spin_lock_init(&v->arch.vgic->lock);
>>>   
>>>       return 0;
>>>   }
>>>   
>>>   int vcpu_vgic_free(struct vcpu *v)
>>>   {
>>> -    xfree(v->arch.vgic.private_irqs);
>>> +    xfree(v->arch.vgic->private_irqs);
>>> +    xfree(v->arch.vgic);
>>> +
>>>       return 0;
>>>   }
>> Free functions should be idempotent.  This was buggy before, even moreso
>> now.  It wants to be:
>>
>> void vcpu_vgic_free(struct vcpu *v)
>> {
>>      if ( v->arch.vgic )
>>      {
>>          XFREE(v->arch.vgic->private_irqs);
>>          XFREE(v->arch.vgic);
>>      }
>> }
>>
>> Given the type change, this probably wants splitting out into an earlier
>> patch.
>>
>> Given the fact that the single caller doesn't even check the return
>> value, you're fixing a MISRA violation by making it void.
> 
> Btw, IIUC, it could be also be something like:
>    (void) vcpu_vgic_free(...)
> and then we won't break any MISRA rule, right?

That would address one Misra concern, but there would then still be dead code.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 19 14:17:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 14:17:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190701.1511015 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWbHz-0003kq-UK; Fri, 19 Dec 2025 14:17:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190701.1511015; Fri, 19 Dec 2025 14:17:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWbHz-0003kj-Rf; Fri, 19 Dec 2025 14:17:03 +0000
Received: by outflank-mailman (input) for mailman id 1190701;
 Fri, 19 Dec 2025 14:17:02 +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 <SRS0=4Y5i=6Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vWbHy-0003hN-9G
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 14:17:02 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 62b45071-dce5-11f0-b15b-2bf370ae4941;
 Fri, 19 Dec 2025 15:17:01 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-47aa03d3326so11124855e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 06:17:01 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea1aef7sm5074395f8f.7.2025.12.19.06.17.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Dec 2025 06:17:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 62b45071-dce5-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766153821; x=1766758621; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=DXd3tYP7qWfuC+raRITatwO3wkHhdTkpkSAU3KL2bL4=;
        b=ORno2MJYU2mxKsLq7xife0SRsgJKSFbz+eZEJWBiOoL65PltR7lrDhTzCJ3XLLxOR0
         VPqokomvQBQ2BReXGE7dYBt6GBw8gBaTE3aE5e1agjtfrszI7dCFGRv6M0gmzGzfS8gJ
         +XN3u9Ilox06wjnV3kGW/k6RawWGctbux7tg4is/EUvn+bpc6LrFmeHVGedyTVU0U1Hv
         j7n8S7c7UB+5dpxru6p3aCdM0yL8EXXi8oYKnuXVAbdaO1IbM+cfi+evOEBi8UU3LSn5
         lpPxN+qXJ/p5OpM9yzsivZQ6F1anugYP8yfOu/qrEg197lhBz+VKxx8ZuPunBWIficy0
         6Rkw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766153821; x=1766758621;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DXd3tYP7qWfuC+raRITatwO3wkHhdTkpkSAU3KL2bL4=;
        b=TpYT8SwPSvGF/xMziJ0ZLGLissU6LIkP6vKAPZkM8pfQRKFlZGXevdAoFB6PwbVxe3
         cKn23nUQGszZuILFbCooeW2KiZOe5otvFlndsCTOwYCcjBCxgZGJgs2lKdWp/5WGMCYm
         qjJtrq+wpxWVBWPU2sNS7dlb+CC3PUt7Kj9ALLFTaPx3vR8SkbJNpLPe/hQX2+SveAzJ
         XDz2ysGpda46a+mHR+zTrK79wRGdsRUdYrXU5zEfW1DPBtdLd1ahM5Bx6H7gF+w1DaNa
         auRe7zhrHl4Kw+XWoEi3TaQuMb+FtMTQjkEzAEbXPnee2lkpPLXX9C+tOck8pOk0ttIg
         bVWQ==
X-Forwarded-Encrypted: i=1; AJvYcCXwZzsSfhYyZx4VP8Vg/GQptp+ara0LujrkorAhu8TiYLhGxZpOuos4zjzZVyx8z668UFNSmT4Kl/Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz9m5rufwy4mfUNz9WD73rpo3FvcjTtXKO+33dICVG0fVYwHpHK
	VCmp3TA0Bp51R9KCZSFZ7OuG3RM91fRxbV5SunspCkp2YFPi0HRm6NlVBUILQYS9pg==
X-Gm-Gg: AY/fxX4nEnn5ffDYQRMc6otXIxcZXmN2vFyefZcFmv1LHmiKegTO83ZHM+YXpmQl5D8
	OloDMJ+TnbxDad/P7QbnV0MhKAmET/UwfjjqZstueIyIFxLHy/Ef5Hna1b7twMjthY8th+Y+Rtw
	40ODgXuGDLK26kSxmNf2tIOnEKmGULE6gssceEDfbZhcZ46Uug4em3XBMoqvbqBvcyZPuk732up
	/zQuusLMajcN6n1T9PQhkmTVJ6/53LEt6iyCjx/Xw4q/OxUE6edDMCOEIzNpJesfDvU0GJ8Dwf0
	csebM626roaLsa9PJepLa8M+GLOa8s0DF0hJLTfm2izr1lokc6slSuS8PpijajkN/vPYCh5Tdgq
	+HXc9ju8cdcdzGS/qDJY63beT7FDZPalRsJ+cxpVhGAiPUGW2OLTkschYlFo7ac4BqfA3/DTVq/
	1WDnBAkpbngNL66K0FTHFaEqzaVkbSuiWUdrREK4T8oww363da3wzkGbZO5vNZXiSBxyJe3Nz9t
	6o=
X-Google-Smtp-Source: AGHT+IFWHP+PEZ3r2mp3Y3AFF0OfmTMpI3tOo5Nwf8DG2EKELxoeKEZnV86Gk4J/M0+BhItEGlWhlw==
X-Received: by 2002:a05:600c:524c:b0:476:d494:41d2 with SMTP id 5b1f17b1804b1-47d19586aebmr24933685e9.29.1766153820598;
        Fri, 19 Dec 2025 06:17:00 -0800 (PST)
Message-ID: <8b045139-10dc-4b07-9ef6-d3b9c8b1efbb@suse.com>
Date: Fri, 19 Dec 2025 15:16:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] xen/arm: optimize the size of struct vcpu
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <cover.1766053253.git.oleksii.kurochko@gmail.com>
 <946a1c2cfaf4157074470a653bba5baa8561ebbf.1766053253.git.oleksii.kurochko@gmail.com>
 <ea01af72-c94e-4203-90c4-eaf68174b576@citrix.com>
 <290b8d4d-f853-418a-ae01-aea2f62b4f56@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <290b8d4d-f853-418a-ae01-aea2f62b4f56@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.12.2025 14:32, Oleksii Kurochko wrote:
> 
> On 12/18/25 7:15 PM, Andrew Cooper wrote:
>>>   int vcpu_vgic_free(struct vcpu *v)
>>>   {
>>> -    xfree(v->arch.vgic.private_irqs);
>>> +    xfree(v->arch.vgic->private_irqs);
>>> +    xfree(v->arch.vgic);
>>> +
>>>       return 0;
>>>   }
>> Free functions should be idempotent.  This was buggy before, even moreso
>> now.
> 
> Was it really buggy before in terms of idempotent.
> 
> It seems like xfree() can handle the case when v->arch.vgic.private_irqs is NULL.
> Should I still have:
>   if ( v->arch.vgic->private_irqs )
>      XFREE(v->arch.vgic->private_irqs);
> ?

No, and iirc Andrew also didn't ask for this.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 19 15:30:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 15:30:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190761.1511026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWcQe-0004hF-3h; Fri, 19 Dec 2025 15:30:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190761.1511026; Fri, 19 Dec 2025 15:30:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWcQe-0004gt-04; Fri, 19 Dec 2025 15:30:04 +0000
Received: by outflank-mailman (input) for mailman id 1190761;
 Fri, 19 Dec 2025 15:30:02 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vWcQc-0004Pg-NK
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 15:30:02 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vWcQb-0000Po-0h;
 Fri, 19 Dec 2025 15:30:01 +0000
Received: from [2a02:8012:3a1:0:95e7:8e47:abb2:3b42]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vWcQb-00EIyP-0b;
 Fri, 19 Dec 2025 15:30:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=aN+HWSIKnpLs5ZpvMVRHCHtVAG9kyx3KSXmrayZykww=; b=x9o9jjlLhevEHYZq0EHlOedNb3
	26jq1Ov6tF2iE7cGPlc+gL/5MiKjNnrUEW8+VfiT23Npe/0l2k75MWin6M9UfFlVR3Uz9Yr9726ci
	WYC+SuP3mei8VA/d2JViIBI1EWmJNtlG1slfFplPWRxH1ZtOwxxhHmGsQTV9KRSFZKUY=;
Message-ID: <98aa56bf-11bf-4585-be92-1603238826b6@xen.org>
Date: Fri, 19 Dec 2025 15:29:59 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] xen/arm: optimize the size of struct vcpu
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1766053253.git.oleksii.kurochko@gmail.com>
 <946a1c2cfaf4157074470a653bba5baa8561ebbf.1766053253.git.oleksii.kurochko@gmail.com>
 <ea01af72-c94e-4203-90c4-eaf68174b576@citrix.com>
Content-Language: en-US
From: Julien Grall <julien@xen.org>
In-Reply-To: <ea01af72-c94e-4203-90c4-eaf68174b576@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Andrew,

On 18/12/2025 18:15, Andrew Cooper wrote:
>> diff --git a/xen/arch/arm/vgic/vgic-init.c b/xen/arch/arm/vgic/vgic-init.c
>> index f8d7d3a226..67f297797f 100644
>> --- a/xen/arch/arm/vgic/vgic-init.c
>> +++ b/xen/arch/arm/vgic/vgic-init.c
>> @@ -241,10 +245,12 @@ void domain_vgic_free(struct domain *d)
>>   
>>   int vcpu_vgic_free(struct vcpu *v)
>>   {
>> -    struct vgic_cpu *vgic_cpu = &v->arch.vgic;
>> +    struct vgic_cpu *vgic_cpu = v->arch.vgic;
>>   
>>       INIT_LIST_HEAD(&vgic_cpu->ap_list_head);
>>   
>> +    xfree(vgic_cpu);
>> +
>>       return 0;
>>   }
> 
> Not in your part of the change, but this is bogus.  It's not remotely
> safe to init the list head like that.
> 
> The list is either already empty, in which case it's a no-op, or it
> corrupts the list.  It appears that the list mixes entries from other
> vCPUs, and from the domain.
> 
> I think this is further proof that NEW_VGIC should be deleted
> wholesale.  It's clearly not in a good state, and I get the impression
> that a badly timed evtchn sent to a domain in the middle of being
> cleaned up will cause Xen to trip over the corrupted list.

I am probably missing something. What other issues are in the NEW_VGIC?

But note, if we delete the NEW_VGIC then we are back to a situation 
where the vGIC implementation we have is not even remotely spec 
compliant (no level support, not pending/active clear/set support) and 
from previous discussion it was not possible to rework the default vGIC 
implementation to make it compliant.

I was going to say that the NEW_VGIC is meant to be experimental. But I 
see, it can selected without EXPERT :(. Thankfully it is marked as not 
security supported at least in the Kconfig doc.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Dec 19 15:42:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 15:42:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190777.1511047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWccZ-0006p6-Lk; Fri, 19 Dec 2025 15:42:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190777.1511047; Fri, 19 Dec 2025 15:42:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWccZ-0006ne-FV; Fri, 19 Dec 2025 15:42:23 +0000
Received: by outflank-mailman (input) for mailman id 1190777;
 Fri, 19 Dec 2025 15:42:22 +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
 <SRS0=Gsl/=6Z=bounce.vates.tech=bounce-md_30504962.69457259.v1-07968038db074b37b76c7882678b4066@srs-se1.protection.inumbo.net>)
 id 1vWccY-0006gj-Hw
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 15:42:22 +0000
Received: from mail179-28.suw41.mandrillapp.com
 (mail179-28.suw41.mandrillapp.com [198.2.179.28])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4e25ec14-dcf1-11f0-b15b-2bf370ae4941;
 Fri, 19 Dec 2025 16:42:21 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-28.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4dXsGx5JfCzMQxZxV
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 15:42:17 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 07968038db074b37b76c7882678b4066; Fri, 19 Dec 2025 15:42:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4e25ec14-dcf1-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1766158937; x=1766428937;
	bh=7H1KdoH0m20ic7CKZFqkogefCwWlYCbcScz7KoDawEA=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=VjlRj3CJ7Nxt+Y6SOeR8Y8BTPsB2moGkgQJh6c0s0xb91dFD5bEt3VfGbyi+Dy7mY
	 BCYfu7x8SaNnKj8+wIy07jX37WNOUcCFJDznZqA20QTFKonxlXqEg03B1ALhXvQtiq
	 jdL1+1GXsvnVaUsBymSGEMLApMez8+lglQYB238rQ0kqjrpQlyQgFOsdh97YEocJHS
	 zKFRvzSCIAKu8Q44EuU6+ykonEiJXJdBYYXiiXs/vGuXd2SbvhCcPsK0sjj0TwgEPl
	 f9n9uSlHuWG9BSQnzJBZi2T5EGc02Bfx/7jnZ/rhnx7XK3Yr49KSMqOvByTypZVnIC
	 3nksHizGgZYFA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1766158937; x=1766419437; i=teddy.astie@vates.tech;
	bh=7H1KdoH0m20ic7CKZFqkogefCwWlYCbcScz7KoDawEA=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=LM/zxdaAF5cTUJdQC7xqbOsqd8/7O2BIuwqIDRcoTXhVu5tNU/k5BNhcKQWdZ7FdI
	 G65b19Jd8LPw+VbSR3uI8aSMNCcB+csaeb0+O2+y0fzpAsHlW1cpgIHaFaAEYeeLfZ
	 Si8h8UkR7XLNZeh2O2EUDIY8IZ2iWW9iDocU9NZgbCtg1/rL/CUGquXDu+eB2LN25C
	 EfRAEYjj55+9S63qmzFY+/uvftel8J/BBnWNvW4Z0rCFm8wxDIZAh4i6qkleee+Q0j
	 tyqzWMlGBPiRamjt7jx1yDoTuL62WToX6DdG3jsYn9gEBUUqG22Vq3YuPwP6OT8IlD
	 jIRfomm0OS+2A==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v4=204/4]=20xenpm:=20Add=20get-intel-temp=20subcommand?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1766158937095
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Community Manager" <community.manager@xenproject.org>, "Anthony PERARD" <anthony.perard@vates.tech>
Message-Id: <417d27567b9ef00d10335de089eaabe8e8e76102.1766158766.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1766158766.git.teddy.astie@vates.tech>
References: <cover.1766158766.git.teddy.astie@vates.tech>
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.07968038db074b37b76c7882678b4066?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251219:md
Date: Fri, 19 Dec 2025 15:42:17 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

get-intel-temp allows querying the per-core CPU temperature and
per-package one on Intel processors (as usual Dom0 drivers cannot
work due to misalignment between Dom0 vCPU and pCPUs).

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 CHANGELOG.md       |   3 ++
 tools/misc/xenpm.c | 113 ++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 115 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1fa58ce848..f55d77016c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,9 @@ The format is based on [Keep a Changelog](https://keepachan=
gelog.com/en/1.0.0/)
 ### Changed
 
 ### Added
+ - On x86:
+   - Introduce get-intel-temp to xenpm to query CPU temperatures on Intel
+     platforms.
 
 ### Removed
  - On x86:
diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
index 682d092479..5a411b5a30 100644
--- a/tools/misc/xenpm.c
+++ b/tools/misc/xenpm.c
@@ -32,11 +32,14 @@
 
 #include <xen-tools/common-macros.h>
 
+#include <xen/asm/msr-index.h>
+
 #define MAX_PKG_RESIDENCIES 12
 #define MAX_CORE_RESIDENCIES 8
 
 static xc_interface *xc_handle;
 static unsigned int max_cpu_nr;
+static xc_physinfo_t physinfo;
 
 /* help message */
 void show_help(void)
@@ -93,6 +96,7 @@ void show_help(void)
             "                                           units default to \=
"us\" if unspecified.\n"
             "                                           truncates un-repre=
sentable values.\n"
             "                                           0 lets the hardwar=
e decide.\n"
+            " get-intel-temp        [cpuid]       get Intel CPU temperatur=
e of <cpuid> or all\n"
             " start [seconds]                     start collect Cx/Px stat=
istics,\n"
             "                                     output after CTRL-C or S=
IGINT or several seconds.\n"
             " enable-turbo-mode     [cpuid]       enable Turbo Mode for pr=
ocessors that support it.\n"
@@ -1354,6 +1358,113 @@ void enable_turbo_mode(int argc, char *argv[])
                 errno, strerror(errno));
 }
 
+static int fetch_dts_temp(xc_interface *xch, uint32_t cpu, bool package, i=
nt *temp)
+{
+    xc_resource_entry_t entries[] =3D {
+        { .idx =3D package ? MSR_PACKAGE_THERM_STATUS : MSR_IA32_THERM_STA=
TUS },
+        { .idx =3D MSR_TEMPERATURE_TARGET },
+    };
+    struct xc_resource_op ops =3D {
+        .cpu =3D cpu,
+        .entries =3D entries,
+        .nr_entries =3D ARRAY_SIZE(entries),
+    };
+    int tjmax;
+
+    int ret =3D xc_resource_op(xch, 1, &ops);
+
+    switch ( ret )
+    {
+    case -1:
+        /* xc_resource_op returns -1 in out of memory scenarios */
+        return -ENOMEM;
+    case 0:
+        /* This CPU isn't online or can't query this MSR */
+        return -ENODATA;
+    case 1:
+    {
+        /*
+         * The CPU doesn't support MSR_TEMPERATURE_TARGET, we assume it's =
100
+         * which is correct aside a few selected Atom CPUs. Check Linux
+         * kernel's coretemp.c for more information.
+         */
+        static bool has_reported_once =3D false;
+
+        if ( !has_reported_once )
+        {
+            fprintf(stderr, "MSR_TEMPERATURE_TARGET is not supported, assu=
me "
+                            "tjmax =3D 100, readings may be incorrect.\n")=
;
+            has_reported_once =3D true;
+        }
+
+        tjmax =3D 100;
+        break;
+    }
+    case 2:
+    {
+        tjmax =3D (entries[1].val >> 16) & 0xff;
+        break;
+    }
+    default:
+        if ( ret > 0 )
+        {
+            fprintf(stderr, "Got unexpected xc_resource_op return value: %=
d",
+                    ret);
+            return -EINVAL;
+        }
+        return ret;
+    }
+
+    *temp =3D tjmax - ((entries[0].val >> 16) & 0xff);
+    return 0;
+}
+
+static void get_intel_temp(int argc, char *argv[])
+{
+    int temp =3D -1, cpu =3D -1;
+    unsigned int socket;
+    bool has_data =3D false;
+
+    if ( argc > 0 )
+        parse_cpuid(argv[0], &cpu);
+
+    if ( cpu !=3D -1 )
+    {
+        if ( !fetch_dts_temp(xc_handle, cpu, false, &temp) )
+            printf("CPU%d: %d=C2=B0C\n", cpu, temp);
+        else
+            printf("No data\n");
+        return;
+    }
+
+    /* Per socket measurement */
+    for ( socket =3D 0, cpu =3D 0; cpu < max_cpu_nr;
+          socket++, cpu +=3D physinfo.cores_per_socket * physinfo.threads_=
per_core )
+    {
+        if ( !fetch_dts_temp(xc_handle, cpu, true, &temp) )
+        {
+            has_data =3D true;
+            printf("Package%u: %d=C2=B0C\n", socket, temp);
+        }
+    }
+
+    if ( has_data )
+        /* Avoid inserting a trailing line if we have nothing */
+        printf("\n");
+
+    for ( cpu =3D 0; cpu < max_cpu_nr; cpu +=3D physinfo.threads_per_core =
)
+    {
+        if ( fetch_dts_temp(xc_handle, cpu, false, &temp) )
+            continue;
+
+        has_data =3D true;
+        printf("CPU%d: %d=C2=B0C\n", cpu, temp);
+    }
+
+    if ( !has_data )
+        printf("No data\n");
+}
+
 void disable_turbo_mode(int argc, char *argv[])
 {
     int cpuid =3D -1;
@@ -1618,12 +1729,12 @@ struct {
     { "set-max-cstate", set_max_cstate_func},
     { "enable-turbo-mode", enable_turbo_mode },
     { "disable-turbo-mode", disable_turbo_mode },
+    { "get-intel-temp", get_intel_temp },
 };
 
 int main(int argc, char *argv[])
 {
     int i, ret =3D 0;
-    xc_physinfo_t physinfo;
     int nr_matches =3D 0;
     int matches_main_options[ARRAY_SIZE(main_options)];
 
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Fri Dec 19 15:42:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 15:42:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190779.1511072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWccb-0007PD-EC; Fri, 19 Dec 2025 15:42:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190779.1511072; Fri, 19 Dec 2025 15:42:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWccb-0007OG-7U; Fri, 19 Dec 2025 15:42:25 +0000
Received: by outflank-mailman (input) for mailman id 1190779;
 Fri, 19 Dec 2025 15:42:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Twhv=6Z=bounce.vates.tech=bounce-md_30504962.69457259.v1-09a0b611dd5446099d0793746429beb8@srs-se1.protection.inumbo.net>)
 id 1vWccZ-0006gp-Op
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 15:42:23 +0000
Received: from mail179-28.suw41.mandrillapp.com
 (mail179-28.suw41.mandrillapp.com [198.2.179.28])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4caa9cfe-dcf1-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 16:42:18 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-28.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4dXsGx0phBzMQxZwl
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 15:42:17 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 09a0b611dd5446099d0793746429beb8; Fri, 19 Dec 2025 15:42:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4caa9cfe-dcf1-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1766158937; x=1766428937;
	bh=EDhYIftkVJKhg5aQNHcgY2YjTEfUugXGsd0ObHTK3Xw=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=vDXECE+MK8Kom/1/s9ReIpPR8xqOrZ2YxsbC152JTcLTiwNR9kS5JahPQqnY3j3eQ
	 g3+l4bYaQgTRskb6Ydr9+5OA7XHxdTgwTU4ZTD3NC9psxRsgOte+XsCYB5f7jpfy6x
	 O22r3YI11ax+keBGGjY9i6d3jwt9N6c+hNNNw3nPmF+KBN2E7U3ur9rvRv0xXNVGnm
	 XbqZzQqcODCvgQfkpJDe20eBxWV/uitCL2zV5W3CQaQSi0FiIhuKHndH6Di9um558j
	 QFChuNgunmiPQF/W2ueDGRciVf4YpJ0I9pwXtOoNBFRjqQXL76YlKqSVtOXOXq4jbn
	 +GKBaT6px+PmA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1766158937; x=1766419437; i=teddy.astie@vates.tech;
	bh=EDhYIftkVJKhg5aQNHcgY2YjTEfUugXGsd0ObHTK3Xw=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=h+aH68cqw1OlH3mZrzVvHHq4s6hllU94c1MnTvuWmRFVZkT2n0nLsJz/zeQof8EqV
	 iZ1+oxTrS2kTBCRZTRWoiHMS4qXoK1LSV9HHEejG0wvxXQcPJQIXTZz4eppe3w3Wl6
	 3IUliInyN9Ru8cx4C1tqlPJ/DoHkWRsK2Z3utJSQnDF5G1p3akFshWcZR0/qP5J0cT
	 KXuSGzVStHnri8Da6n1yQ+oQvkEvHPAnQ2ZBj6D8PvXLRR92xNw4pNvrhcWOnClP2K
	 QtBBmjoH68YfxJhOMLgRe3sA8md4D4D2L2Ld3aB91iruT5qyYnO3XYFXA3273FpHVC
	 imugzjincqAMw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v4=201/4]=20x86/cpu-policy:=20define=20bits=20of=20leaf=206?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1766158936226
To: xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Teddy Astie" <teddy.astie@vates.tech>
Message-Id: <8a4adb89e6b6152fca074f2bb9091b42af936630.1766158766.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1766158766.git.teddy.astie@vates.tech>
References: <cover.1766158766.git.teddy.astie@vates.tech>
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.09a0b611dd5446099d0793746429beb8?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251219:md
Date: Fri, 19 Dec 2025 15:42:17 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

From: Jan Beulich <jbeulich@suse.com>

... as far as we presently use them in the codebase.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
I don't know to which extend Reviewed-by applies as I only applied Andrew's
proposal.

 xen/include/xen/lib/x86/cpu-policy.h | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/xen/include/xen/lib/x86/cpu-policy.h b/xen/include/xen/lib/x86/cpu-policy.h
index f94f23e159..8772ef80e3 100644
--- a/xen/include/xen/lib/x86/cpu-policy.h
+++ b/xen/include/xen/lib/x86/cpu-policy.h
@@ -121,7 +121,32 @@ struct cpu_policy
             uint64_t :64, :64; /* Leaf 0x3 - PSN. */
             uint64_t :64, :64; /* Leaf 0x4 - Structured Cache. */
             uint64_t :64, :64; /* Leaf 0x5 - MONITOR. */
-            uint64_t :64, :64; /* Leaf 0x6 - Therm/Perf. */
+
+            /* Leaf 0x6 - Therm/Perf. */
+            bool :1,
+                turbo:1,
+                arat:1,
+                :1,
+                :1,
+                :1,
+                :1,
+                hwp:1,
+                hwp_notification:1,
+                hwp_activity_window:1,
+                hwp_epp:1,
+                hwp_plr:1,
+                :1,
+                hdc:1,
+                :1,
+                :1,
+                hwp_peci:1,
+                :1,
+                :1,
+                hw_feedback:1;
+            uint32_t :32; /* b */
+            bool aperfmperf:1;
+            uint32_t :32; /* d */
+
             uint64_t :64, :64; /* Leaf 0x7 - Structured Features. */
             uint64_t :64, :64; /* Leaf 0x8 - rsvd */
             uint64_t :64, :64; /* Leaf 0x9 - DCA */
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Dec 19 15:42:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 15:42:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190778.1511066 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWccb-0007Lu-2z; Fri, 19 Dec 2025 15:42:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190778.1511066; Fri, 19 Dec 2025 15:42:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWcca-0007Lm-Vt; Fri, 19 Dec 2025 15:42:24 +0000
Received: by outflank-mailman (input) for mailman id 1190778;
 Fri, 19 Dec 2025 15:42:23 +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
 <SRS0=iSaV=6Z=bounce.vates.tech=bounce-md_30504962.69457259.v1-4c58b2a4835640a0bbfaf06e01e56b5f@srs-se1.protection.inumbo.net>)
 id 1vWccZ-0006gj-Ar
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 15:42:23 +0000
Received: from mail179-28.suw41.mandrillapp.com
 (mail179-28.suw41.mandrillapp.com [198.2.179.28])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4f4a5d33-dcf1-11f0-b15b-2bf370ae4941;
 Fri, 19 Dec 2025 16:42:22 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-28.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4dXsGx64BNzMQxZx2
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 15:42:17 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 4c58b2a4835640a0bbfaf06e01e56b5f; Fri, 19 Dec 2025 15:42:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4f4a5d33-dcf1-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1766158937; x=1766428937;
	bh=7xVUdRF8zsjQLBrOasgnpmrVwohD/+GH3wtuo62wSW8=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=MHqxFPjgXgRIZmOtgpLR78SHHIbeAOIj5REB0rBJPby7vez+QD340FC7nPQHNr4pP
	 ReaoV2mxTapgs3E0HVnykgPnhf7DFmh8TWOFY68vGRUDnZdhC5BNnCJOaUNn8B+oOo
	 IF9wwxEfbvvUYRB34/iGC9LY/J9ThylhsFKi0UuIpArN+O21919ZjENJU+J7KFSKgM
	 DSjooQqEHjyh906zZwGEgAFvGAhyPn0k7iJBIoOpwuZyWkJGnMuM+b42gycFris67N
	 qHrCso8qA3oFDkeohtxnho/2KnRkKjdeuHVnhXvvy1YPplVWc3aTe58nktzdTZM9pC
	 a9l/sIjVcS11g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1766158937; x=1766419437; i=teddy.astie@vates.tech;
	bh=7xVUdRF8zsjQLBrOasgnpmrVwohD/+GH3wtuo62wSW8=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=Y1Kd2SnzQmQ4quLZBXIsusqYcHsWt4eEwtwU2SkxgdBnC1kHGnbPyX+q/F7rfQ8GO
	 Am8gIVs/RRhLpXTCzOFXd+4n754jdIMfRPKa8KqMZmeUlbxRgy3TkJLFs+J/FKwO+O
	 vD9KdqrCgG8ci84NjpLSfDkB29NQnLPa+n8MKPUnfrPgoYfQcNKBIHtojoJRl2FuOv
	 f3y0enRtnLqF6D4I1RnHh2CW7sl/l77J1emPL9eU8DFKDcbKcWKXgwmBB38h+vzuLL
	 TC1vVwg2ysNI7UZUTzX05Zck7m7CItUKqkh0O13JFNOZAjl/pblM/pPGfUD33B83H6
	 t9xOz3LBMuWKA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v4=203/4]=20x86/platform:=20Expose=20DTS=20sensors=20MSR?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1766158936882
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <829177fefa7b2e2edeb8121357b5b3372ad1c092.1766158766.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1766158766.git.teddy.astie@vates.tech>
References: <cover.1766158766.git.teddy.astie@vates.tech>
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.4c58b2a4835640a0bbfaf06e01e56b5f?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251219:md
Date: Fri, 19 Dec 2025 15:42:17 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Intel provide CPU sensors through "DTS" MSRs. As these MSR are core-specific
(or package-specific), we can't reliably fetch them from Dom0 directly.
Expose these MSR (if supported) through XENPF_resource_op so that it is
accessible through hypercall.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/arch/x86/include/asm/msr-index.h | 3 +++
 xen/arch/x86/platform_hypercall.c    | 6 ++++++
 xen/include/xen/lib/x86/cpu-policy.h | 2 +-
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/msr-index.h b/xen/arch/x86/include/asm/msr-index.h
index df52587c85..b92a278611 100644
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -115,6 +115,9 @@
 #define  MCU_OPT_CTRL_GDS_MIT_DIS           (_AC(1, ULL) <<  4)
 #define  MCU_OPT_CTRL_GDS_MIT_LOCK          (_AC(1, ULL) <<  5)
 
+#define MSR_TEMPERATURE_TARGET              0x000001a2
+#define MSR_PACKAGE_THERM_STATUS            0x000001b1
+
 #define MSR_FRED_RSP_SL0                    0x000001cc
 #define MSR_FRED_RSP_SL1                    0x000001cd
 #define MSR_FRED_RSP_SL2                    0x000001ce
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 79bb99e0b6..2f84494759 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -27,6 +27,7 @@
 #include <asm/current.h>
 #include <public/platform.h>
 #include <acpi/cpufreq/processor_perf.h>
+#include <asm/cpu-policy.h>
 #include <asm/edd.h>
 #include <asm/microcode.h>
 #include <asm/mtrr.h>
@@ -86,6 +87,11 @@ static bool msr_read_allowed(unsigned int msr)
 
     case MSR_MCU_OPT_CTRL:
         return cpu_has_srbds_ctrl;
+    
+    case MSR_IA32_THERM_STATUS:
+    case MSR_TEMPERATURE_TARGET:
+    case MSR_PACKAGE_THERM_STATUS:
+        return host_cpu_policy.basic.dts;
     }
 
     if ( ppin_msr && msr == ppin_msr )
diff --git a/xen/include/xen/lib/x86/cpu-policy.h b/xen/include/xen/lib/x86/cpu-policy.h
index 8772ef80e3..0362f1cb24 100644
--- a/xen/include/xen/lib/x86/cpu-policy.h
+++ b/xen/include/xen/lib/x86/cpu-policy.h
@@ -123,7 +123,7 @@ struct cpu_policy
             uint64_t :64, :64; /* Leaf 0x5 - MONITOR. */
 
             /* Leaf 0x6 - Therm/Perf. */
-            bool :1,
+            bool dts:1,
                 turbo:1,
                 arat:1,
                 :1,
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Dec 19 15:42:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 15:42:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190775.1511035 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWccZ-0006h7-25; Fri, 19 Dec 2025 15:42:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190775.1511035; Fri, 19 Dec 2025 15:42:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWccY-0006h0-Vo; Fri, 19 Dec 2025 15:42:22 +0000
Received: by outflank-mailman (input) for mailman id 1190775;
 Fri, 19 Dec 2025 15:42:21 +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
 <SRS0=YPPR=6Z=bounce.vates.tech=bounce-md_30504962.69457259.v1-6501ec1ec5004e07b4e02c10b996350d@srs-se1.protection.inumbo.net>)
 id 1vWccX-0006gj-5B
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 15:42:21 +0000
Received: from mail179-28.suw41.mandrillapp.com
 (mail179-28.suw41.mandrillapp.com [198.2.179.28])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4cab848e-dcf1-11f0-b15b-2bf370ae4941;
 Fri, 19 Dec 2025 16:42:18 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-28.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4dXsGx2hmczMQxZx7
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 15:42:17 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 6501ec1ec5004e07b4e02c10b996350d; Fri, 19 Dec 2025 15:42:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4cab848e-dcf1-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1766158937; x=1766428937;
	bh=OMQbs0phcyzMgJGF4jAxHSlsn32hgTTfBxA1a6JNmEI=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=AEGYHczNriwe7wFs2mo2XB+6QoP/f6f0xaXg5ueZKbHucUK9T15JOpNlZnenzYgme
	 fDOXAb/tIu+H5hEVuABpA8amuGxEvdGk4+LyCc/TcKZQhQn02UhpBdmQ+XozFQQrUN
	 Bk4MfWaDT6VfMP04BdktRQYgIZ4AB8Tunc6AA9tPZKwj25fogW0w2AhOujpLMKaz2q
	 Qf+X58RnZl/SzK2edpgJKwI3YGDXxKehtdZ1pfPNVT+99Ng8IKRRsNoyfgKIjXFwMl
	 RGJ7sIo/Ti3qA1VZSyxHPeNaNK84G+Bv2q+wGFVrTCWR+CRdzKbDY8GYJ/v62Gj7YZ
	 sp9O/1nRVCvUg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1766158937; x=1766419437; i=teddy.astie@vates.tech;
	bh=OMQbs0phcyzMgJGF4jAxHSlsn32hgTTfBxA1a6JNmEI=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=eup5Lex/LkI9FmzQD5vh3zOy+PMltjt77ZBJTPEcdUrQ/DmAnAWMEpkWf9omaaNpg
	 N8JwfxU0wPmmm6b+PVzprAyDdMdKPdx2ykThxyN7Q6yFbqzSZG3fAGuCQ6EGws21Rg
	 EmyijPzkAFEYUpJDh4z7hnQtsyZE+SWrtIz12qndi9ha4S++Qyhtg3I3qDb1nMGoKR
	 FWyehgJuIOU2984FgAdBp+zXyjYwvFlncATNnYQgjylHcv4lxM8qq6/taUdctdO4sn
	 5cwMfOljlUgqozc2i+YNIBAJbWPFDwtZ3D6NnrUADiyuLQc7+BDWtyXslxDkCAK+DT
	 OIZHwGuPLUGvw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v4=202/4]=20xenpm:=20Don't=20build=20outside=20of=20x86?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1766158936552
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Community Manager" <community.manager@xenproject.org>, "Anthony PERARD" <anthony.perard@vates.tech>, "Jan Beulich" <jbeulich@suse.com>
Message-Id: <77dc07c4b4431fb53aa5b226d302f437e4314d8c.1766158766.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1766158766.git.teddy.astie@vates.tech>
References: <cover.1766158766.git.teddy.astie@vates.tech>
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.6501ec1ec5004e07b4e02c10b996350d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251219:md
Date: Fri, 19 Dec 2025 15:42:17 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

xenpm doesn't provide any interesting usable features outside of x86,
skip building it if we are not x86.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 CHANGELOG.md        | 3 +++
 tools/misc/Makefile | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3aaf598623..1fa58ce848 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -16,6 +16,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
      deprecated in Xen 4.7 and noted not to work correctly with AMD CPUs from
      2011 onwards.
 
+ - Removed xenpm on non-x86 platforms as it doesn't actually provide anything
+   useful outside of x86.
+
 ## [4.21.0](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.21.0) - 2025-11-19
 
 ### Changed
diff --git a/tools/misc/Makefile b/tools/misc/Makefile
index c26e544e83..672df02c3b 100644
--- a/tools/misc/Makefile
+++ b/tools/misc/Makefile
@@ -23,13 +23,13 @@ INSTALL_SBIN-$(CONFIG_X86)     += xen-lowmemd
 INSTALL_SBIN-$(CONFIG_X86)     += xen-mceinj
 INSTALL_SBIN-$(CONFIG_X86)     += xen-memshare
 INSTALL_SBIN-$(CONFIG_X86)     += xen-mfndump
+INSTALL_SBIN-$(CONFIG_X86)     += xenpm
 INSTALL_SBIN-$(CONFIG_X86)     += xen-ucode
 INSTALL_SBIN-$(CONFIG_X86)     += xen-vmtrace
 INSTALL_SBIN                   += xencov
 INSTALL_SBIN                   += xenhypfs
 INSTALL_SBIN                   += xenlockprof
 INSTALL_SBIN                   += xenperf
-INSTALL_SBIN                   += xenpm
 INSTALL_SBIN                   += xenwatchdogd
 INSTALL_SBIN                   += xen-access
 INSTALL_SBIN                   += xen-livepatch
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Dec 19 15:42:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 15:42:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190776.1511041 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWccZ-0006jY-Bt; Fri, 19 Dec 2025 15:42:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190776.1511041; Fri, 19 Dec 2025 15:42:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWccZ-0006iV-6C; Fri, 19 Dec 2025 15:42:23 +0000
Received: by outflank-mailman (input) for mailman id 1190776;
 Fri, 19 Dec 2025 15:42:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JKhq=6Z=bounce.vates.tech=bounce-md_30504962.69457259.v1-236ed50d70b14781a2be88b03c755e16@srs-se1.protection.inumbo.net>)
 id 1vWccY-0006gp-04
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 15:42:22 +0000
Received: from mail137-31.atl71.mandrillapp.com
 (mail137-31.atl71.mandrillapp.com [198.2.137.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4ce89c10-dcf1-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 16:42:19 +0100 (CET)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-31.atl71.mandrillapp.com (Mailchimp) with ESMTP id
 4dXsGx1fX7z7lmVWh
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 15:42:17 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 236ed50d70b14781a2be88b03c755e16; Fri, 19 Dec 2025 15:42:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4ce89c10-dcf1-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1766158937; x=1766428937;
	bh=rMGk7VgKAqCBAtbYbYA7r6RbALS0kbfzdXHv7qhvnIQ=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=i5REmgtKGkjywx93jpjlaRT6o0ohOEuyi4YvOYDmLFN3R9tESv6rnU8hVTzwPcIWx
	 EaxOxnvRzpcwQ/je7HpaNYlASwA5z9Z9TplnsET3yO5U9RZeFfB/iXXc0UwAQGO37t
	 6NpGBQtQNhh0nZC5aABUV6tX+iHouj+ncRDaVBqGXi121Ba8Yx/V5WFRBaSXb28hxH
	 qNvC7Gj0KIDONf8MmBJMcR5EsjGIww5KPFlDbtXIfvab3W484FvuGawjCNnnhnNtIi
	 ucjeveYSoqnT4l4NMAvUUqNWBrBZSC23YoOAwSRdixAZtQ4AjngUoRZ9dc+lOBhpy5
	 yb/iDXiSp28pg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1766158937; x=1766419437; i=teddy.astie@vates.tech;
	bh=rMGk7VgKAqCBAtbYbYA7r6RbALS0kbfzdXHv7qhvnIQ=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=yh/7Q0yObO9oQiHK55HlvSoGZjofdpp74wl0tM3V1yKXst3A5zD8EfG0ArQcl8juS
	 kUhlc3vfcHHLRgtXPdo2Fkz9AdBkz3t+vDQnQAlR5k2Ayo3zYCYd1gaL3zbjlpVczd
	 YK3lh5+ihf06nixngJ6/UJ8IABeRkS/TPtQawlWvrG7z2ShsoAOddbYhLrMg6VTUJ8
	 yQHgiAgl9Exp2v1pWD0bUHzlE4oMt/GBPbIz6EwVjmSau976PmdF+tDOTgCH+xg7hL
	 5rz16CuI+2kdjatRs8sRLfs7s2z0HmYAEPLV1dOzfz7G1a/fVIBagRruv+UlejNLMt
	 tZwbGMTpRku2w==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v4=200/4]=20Support=20for=20Intel=20temperature=20sensors=20(DTS)?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1766158935717
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Community Manager" <community.manager@xenproject.org>, "Anthony PERARD" <anthony.perard@vates.tech>
Message-Id: <cover.1766158766.git.teddy.astie@vates.tech>
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.236ed50d70b14781a2be88b03c755e16?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251219:md
Date: Fri, 19 Dec 2025 15:42:17 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

The idea here is to expose the DTS sensors through XENPF_resource_op
and expose it for the user through xenpm.

v4:
 - reuse original cpu-policy patch
 - remove xenpm building on non-x86
 - add changelog notes
 - reviewed xc_resource_op return code handling
 - only print missing MSR_TEMPERATURE_TARGET message once
 - formatting changes

v3:
 - use msr-index.h instead of adding defines to MSRs in xenpm

v2:
 - moved userland part to xenpm
 - use cpu policy infrastructure instead of inline cpuid_*
 
Jan Beulich (1):
  x86/cpu-policy: define bits of leaf 6

Teddy Astie (3):
  xenpm: Don't build outside of x86
  x86/platform: Expose DTS sensors MSR
  xenpm: Add get-intel-temp subcommand

 CHANGELOG.md                         |   6 ++
 tools/misc/Makefile                  |   2 +-
 tools/misc/xenpm.c                   | 113 ++++++++++++++++++++++++++-
 xen/arch/x86/include/asm/msr-index.h |   3 +
 xen/arch/x86/platform_hypercall.c    |   6 ++
 xen/include/xen/lib/x86/cpu-policy.h |  27 ++++++-
 6 files changed, 154 insertions(+), 3 deletions(-)

-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Dec 19 16:09:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 16:09:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190839.1511085 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWd2z-0004FG-EC; Fri, 19 Dec 2025 16:09:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190839.1511085; Fri, 19 Dec 2025 16:09:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWd2z-0004F9-Bc; Fri, 19 Dec 2025 16:09:41 +0000
Received: by outflank-mailman (input) for mailman id 1190839;
 Fri, 19 Dec 2025 16:09:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mxbk=6Z=flex--seanjc.bounces.google.com=3vXhFaQYKCRYE0w95y2AA270.yA8J09-z0H0774EFE.J09BDA50yF.AD2@srs-se1.protection.inumbo.net>)
 id 1vWd2x-0004F3-Tt
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 16:09:39 +0000
Received: from mail-pj1-x104a.google.com (mail-pj1-x104a.google.com
 [2607:f8b0:4864:20::104a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1bbab737-dcf5-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 17:09:34 +0100 (CET)
Received: by mail-pj1-x104a.google.com with SMTP id
 98e67ed59e1d1-34cc88eca7eso3312741a91.2
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 08:09:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1bbab737-dcf5-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20230601; t=1766160573; x=1766765373; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:from:to:cc:subject:date:message-id:reply-to;
        bh=WvkkN/JVfJ0/HpY6p1MGYv4ARJvfILZSEbErMl1MA/4=;
        b=l6dEehs9riv2W9mfDFD4qn2Qi3/CWC6kejqEPn6ZaqcGtkHSwgbcGDE6kxdvqQYHQG
         wGMhIAbD7o6ee4YGG6tVISgwOBALb+jHzM4f73gzPGsXWIbA/ioCnZOQ7qXISYSaq9w/
         5kqd4RJM9TBbdTqDKgyStrGUbqyxj2wkgbrOCCtAT7Vytps6zAO9TPOhlAJzjhHX1v82
         SzY8WwuN2HCrPl29SFYO26yv/k0WVmV+zq5xPQ956DgUm0r8ZheoUOynZYc5SBkzXGYc
         TZlf0ZoTjGa/GEzx8kJLdt4/r4QqmBmUVB/elZ66NwXMvB4IQg+k29Fl51ywWGaUFe3G
         UK+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766160573; x=1766765373;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=WvkkN/JVfJ0/HpY6p1MGYv4ARJvfILZSEbErMl1MA/4=;
        b=rnW8Z/yQ8/P9KA/+oyyW2olMFOy8I8R3MtJHOFceWeC2sn97yafYpeqnexszhKdUGE
         i+TZtxkbhd7H+ya1tFBEhDh6j+aY/JA2L8PncH3EA7Nn+NZk4Fjjrm42zmjouX+VO0wy
         wEI0xceW/4fEmcyeiPpkBTWv3S+6FUKGgc7Yp7ozLTNYR4EVZ/7MdMD1/4WKB2kq/no+
         sUZuvC1DebFvXXZbiMkxNsdrstIn4HyNICrTpclC/hW0bpJV64gAdX+Ba1kNmvyqKMew
         2GEkH2IcE5HSnvIweIJv/fO7VR8E9r7Pydff0RmOmCkVMij5CB8WiGSq0snrO8pI7uW8
         QeQw==
X-Forwarded-Encrypted: i=1; AJvYcCWvQnpMu4UryheJX7WNJYc9nNmsbBvUlSiojdfKLxP5g5rTq6AawAcBwBj/t3DQ2r2bGzfO7nfWD48=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyK2DE9Rh7T9CJqAlPRI0alwYj5PoGH5Onbg9IwZtbN07fZj07y
	zlFJcrXDfbg89HrJ91uH+TTQI8bDvh7fFjH2m6CM6rAWrCLSHY0e8ykaHEN3CfrvrX/DabbUG00
	JDOZWCA==
X-Google-Smtp-Source: AGHT+IFi0EOmNsJLwNWNd+F7YnuERxayE0iVrblPiIXpt/oQKEFPGSZPOu2wHmeTgNma9jT1j9/KpGT8+c8=
X-Received: from pjso12.prod.google.com ([2002:a17:90a:c08c:b0:34c:6892:136f])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:3f90:b0:340:c261:f9f3
 with SMTP id 98e67ed59e1d1-34e92130102mr3375788a91.14.1766160573108; Fri, 19
 Dec 2025 08:09:33 -0800 (PST)
Date: Fri, 19 Dec 2025 08:09:31 -0800
In-Reply-To: <7C6C14C2-ABF8-4A94-B110-7FFBE9D2ED79@alien8.de>
Mime-Version: 1.0
References: <20251219010131.12659-1-ariadne@ariadne.space> <7C6C14C2-ABF8-4A94-B110-7FFBE9D2ED79@alien8.de>
Message-ID: <aUV4u0r44V5zHV5f@google.com>
Subject: Re: [PATCH] x86/CPU/AMD: avoid printing reset reasons on Xen domU
From: Sean Christopherson <seanjc@google.com>
To: Borislav Petkov <bp@alien8.de>
Cc: Ariadne Conill <ariadne@ariadne.space>, linux-kernel@vger.kernel.org, 
	mario.limonciello@amd.com, darwi@linutronix.de, sandipan.das@amd.com, 
	kai.huang@intel.com, me@mixaill.net, yazen.ghannam@amd.com, riel@surriel.com, 
	peterz@infradead.org, hpa@zytor.com, x86@kernel.org, tglx@linutronix.de, 
	mingo@redhat.com, dave.hansen@linux.intel.com, xen-devel@lists.xenproject.org, 
	stable@vger.kernel.org
Content-Type: text/plain; charset="us-ascii"

On Fri, Dec 19, 2025, Borislav Petkov wrote:
> On December 19, 2025 1:01:31 AM UTC, Ariadne Conill <ariadne@ariadne.space> wrote:
> >Xen domU cannot access the given MMIO address for security reasons,
> >resulting in a failed hypercall in ioremap() due to permissions.

Why does that matter though?  Ah, because set_pte() assumes success, and so
presumably the failed hypercall goes unnoticed and trying to access the MMIO
#PFs due to !PRESENT mapping.

> >Fixes: ab8131028710 ("x86/CPU/AMD: Print the reason for the last reset")
> >Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
> >Cc: xen-devel@lists.xenproject.org
> >Cc: stable@vger.kernel.org
> >---
> > arch/x86/kernel/cpu/amd.c | 6 ++++++
> > 1 file changed, 6 insertions(+)
> >
> >diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
> >index a6f88ca1a6b4..99308fba4d7d 100644
> >--- a/arch/x86/kernel/cpu/amd.c
> >+++ b/arch/x86/kernel/cpu/amd.c
> >@@ -29,6 +29,8 @@
> > # include <asm/mmconfig.h>
> > #endif
> > 
> >+#include <xen/xen.h>
> >+
> > #include "cpu.h"
> > 
> > u16 invlpgb_count_max __ro_after_init = 1;
> >@@ -1333,6 +1335,10 @@ static __init int print_s5_reset_status_mmio(void)
> > 	if (!cpu_feature_enabled(X86_FEATURE_ZEN))
> > 		return 0;
> > 
> >+	/* Xen PV domU cannot access hardware directly, so bail for domU case */

Heh, Xen on Zen crime.

> >+	if (cpu_feature_enabled(X86_FEATURE_XENPV) && !xen_initial_domain())
> >+		return 0;
> >+
> > 	addr = ioremap(FCH_PM_BASE + FCH_PM_S5_RESET_STATUS, sizeof(value));
> > 	if (!addr)
> > 		return 0;
> 
> Sean, looka here. The other hypervisor wants other checks.
>
> Time to whip out the X86_FEATURE_HYPERVISOR check.

LOL, Ariadne, be honest, how much did Boris pay you?  :-D

Jokes aside, I suppose I'm fine adding a HYPERVISOR check, but at the same time,
how is this not a Xen bug?  Refusing to create a mapping because the VM doesn't
have a device defined at a given GPA is pretty hostile behavior for a hypervisor.


From xen-devel-bounces@lists.xenproject.org Fri Dec 19 16:11:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 16:11:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190847.1511096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWd4G-0005fn-Ou; Fri, 19 Dec 2025 16:11:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190847.1511096; Fri, 19 Dec 2025 16:11:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWd4G-0005fg-L1; Fri, 19 Dec 2025 16:11:00 +0000
Received: by outflank-mailman (input) for mailman id 1190847;
 Fri, 19 Dec 2025 16:10:59 +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
 <SRS0=qvx7=6Z=bounce.vates.tech=bounce-md_30504962.69457910.v1-e370a9d7b08f4cea86086aa5b235a627@srs-se1.protection.inumbo.net>)
 id 1vWd4F-0005fa-JA
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 16:10:59 +0000
Received: from mail137-31.atl71.mandrillapp.com
 (mail137-31.atl71.mandrillapp.com [198.2.137.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4d50ce95-dcf5-11f0-b15b-2bf370ae4941;
 Fri, 19 Dec 2025 17:10:57 +0100 (CET)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-31.atl71.mandrillapp.com (Mailchimp) with ESMTP id
 4dXsw027xbz7lmRhx
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 16:10:56 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 e370a9d7b08f4cea86086aa5b235a627; Fri, 19 Dec 2025 16:10:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4d50ce95-dcf5-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1766160656; x=1766430656;
	bh=POkgUHKK+RTRLCplev3npmwdhxPwzi4LihKNQTz3N1w=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=0rCMdRG8Ey7jJlDz6yr1Z4g9xHnJsXmTob1ecBr2A/mDlxTvPU/cT5C/l/oP4KmwG
	 0t1Sj5fIUoFIBzeilyOrzRjfK2yYxP2roARl2trTTK67OEdnovkbodsvx7bCPH8xQf
	 1Z9GFx5ExsUaXUDidDeqCNYAiMQjMsJDjOozjjF3vFKtDrEKl1mZScbmoaZhBGdlcO
	 mbMVawtcANUCtYua3qOhXWnM87ZSBqw01rRKvmzljHAARB86SfIK5gdrKJdjIdvT0M
	 P/KQJ8dwIx8F8kgdEOmi3NQdloy9bHxZY9IjPTZe/4tVbY4ZizxnJroq7z3uqqhJGy
	 Pt3rBRgMMJmYw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1766160656; x=1766421156; i=teddy.astie@vates.tech;
	bh=POkgUHKK+RTRLCplev3npmwdhxPwzi4LihKNQTz3N1w=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=WGkcNJFCisiQxeNg6jULZTpa6QYHRBwsjxZN/kRCm+Sfo0MwAN64/0p18DZ/GCC+X
	 8PEkloYzNiCBXGXRWe/D85LSm8MnbxI5fVe5yHmL1h40uBBxB9onGEJPfbMIpREPnP
	 f0ZOMWuS6fi0Mg6M0rGt4iKDClBA2XW24xlMunISTfKYdlre44MnOwGekrPmJIpIXL
	 owApgSaBLH4K6Gz+KE/0BzdbfmnflyWMW2E8zKR0L3uE+QanjvhW9W4xhuiRHTJw05
	 590xptGx2eZtNVhKEvBtpMWHn1OS6kNWGe4i5T9r0mobIqt+r4c6l/vm0omCwq+c3N
	 zYhDgd0GBi9Hg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[XEN][PATCH]=20xen/domctl:=20add=20XEN=5FDOMCTL=5FCDF=5FALL=20mask?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1766160654563
Message-Id: <570f1e3d-94ab-40a9-8d6c-c36615e5aa2b@vates.tech>
To: "Grygorii Strashko" <grygorii_strashko@epam.com>, xen-devel@lists.xenproject.org
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>
References: <20251111201627.3579504-1-grygorii_strashko@epam.com> <67f0d3e0-bd90-4817-a084-49d01d8305ff@epam.com>
In-Reply-To: <67f0d3e0-bd90-4817-a084-49d01d8305ff@epam.com>
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.e370a9d7b08f4cea86086aa5b235a627?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251219:md
Date: Fri, 19 Dec 2025 16:10:56 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 18/12/2025 =C3=A0 16:21, Grygorii Strashko a =C3=A9crit=C2=A0:
> 
> 
> On 11.11.25 22:16, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> Every XEN_DOMCTL_CDF_x flag:
>> - is defined in public/domctl.h
>> - explicitly listed in sanitise_domain_config() (common/domain.c) to for=
m
>> mask containing all supported DOMCTL_CDF flags for "Unknown CDF flags"
>> check.
>>
>> So, it is required to modify two files every time XEN_DOMCTL_CDF_x flags
>> set is modified.
>>
>> Simplify the things by introducing XEN_DOMCTL_CDF_ALL mask, so
>> sanitise_domain_config() no need to be modified any more.
>>
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> ---
> 
> Seems nobody interested, sad, dropping from backlog.
> 

Sorry, I missed this one (I guess others have too).

> 
>> =C2=A0 xen/common/domain.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 | 7 +------
>> =C2=A0 xen/include/public/domctl.h | 7 +++++++
>> =C2=A0 2 files changed, 8 insertions(+), 6 deletions(-)
>>
>> diff --git a/xen/common/domain.c b/xen/common/domain.c
>> index 775c33928585..4f91316ad93e 100644
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -730,12 +730,7 @@ static int sanitise_domain_config(struct 
>> xen_domctl_createdomain *config)
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bool iommu =3D config->flags & XEN_DOMCTL=
_CDF_iommu;
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bool vpmu =3D config->flags & XEN_DOMCTL_=
CDF_vpmu;
>> -=C2=A0=C2=A0=C2=A0 if ( config->flags &
>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ~(XEN_DOMCTL_CDF_hvm |=
 XEN_DOMCTL_CDF_hap |
>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 XEN_DOMCTL=
_CDF_s3_integrity | XEN_DOMCTL_CDF_oos_off |
>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 XEN_DOMCTL=
_CDF_xs_domain | XEN_DOMCTL_CDF_iommu |
>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 XEN_DOMCTL=
_CDF_nested_virt | XEN_DOMCTL_CDF_vpmu |
>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 XEN_DOMCTL=
_CDF_trap_unmapped_accesses) )
>> +=C2=A0=C2=A0=C2=A0 if ( config->flags & ~XEN_DOMCTL_CDF_ALL )
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 {
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 dprintk(XENLOG_IN=
FO, "Unknown CDF flags %#x\n", config->flags);
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return -EINVAL;
>> diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
>> index 8f6708c0a7cd..94a8e3042cbf 100644
>> --- a/xen/include/public/domctl.h
>> +++ b/xen/include/public/domctl.h
>> @@ -72,6 +72,13 @@ struct xen_domctl_createdomain {
>> =C2=A0 /* Max XEN_DOMCTL_CDF_* constant.=C2=A0 Used for ABI checking. */
>> =C2=A0 #define XEN_DOMCTL_CDF_MAX XEN_DOMCTL_CDF_trap_unmapped_accesses
>> +#define 
>> XEN_DOMCTL_CDF_ALL=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (XEN_DOMCTL_CDF_hvm | XEN_DO=
MCTL_CDF_hap | 
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 \
>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 XEN_DOMCTL_CDF_s3_inte=
grity | XEN_DOMCTL_CDF_oos_off | 
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 \
>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 XEN_DOMCTL_CDF_xs_doma=
in | XEN_DOMCTL_CDF_iommu | 
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 XEN_DOMCTL_CDF_nested_=
virt | XEN_DOMCTL_CDF_vpmu | 
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 XEN_DOMCTL_CDF_trap_un=
mapped_accesses)
>> +
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 uint32_t flags;
>> =C2=A0 #define _XEN_DOMCTL_IOMMU_no_sharept=C2=A0 0
> 

Given that we already have XEN_DOMCTL_CDF_MAX, we could base the check 
using it instead.
Something like checking fls(config->flags) > fls(XEN_DOMCTL_CDF_MAX) ?

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Fri Dec 19 16:26:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 16:26:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190863.1511106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWdJ5-0007XT-VG; Fri, 19 Dec 2025 16:26:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190863.1511106; Fri, 19 Dec 2025 16:26:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWdJ5-0007XM-S8; Fri, 19 Dec 2025 16:26:19 +0000
Received: by outflank-mailman (input) for mailman id 1190863;
 Fri, 19 Dec 2025 16:26:18 +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
 <SRS0=wC3r=6Z=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vWdJ4-0007XG-He
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 16:26:18 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7113945d-dcf7-11f0-b15b-2bf370ae4941;
 Fri, 19 Dec 2025 17:26:17 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA1PR03MB6452.namprd03.prod.outlook.com (2603:10b6:806:1c3::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.9; Fri, 19 Dec
 2025 16:26:13 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9434.001; Fri, 19 Dec 2025
 16:26:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7113945d-dcf7-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uNjXOg59bgcoVE4G5Fztjhzyn6x+96UEEs6mPQ2ZHgrFW/Qwa/O2LIKXLG1sQimio8jA9yKimwWpIE1L8AB0tAYUYcO4ImJRDV2MXXr9jWPnFu7aGEl2hyXmBIci5KbZVEto11QX/MTJqf2m+dUa0i9Za8boyELhyOBYsShacSTUZSDMe6ofx9d5PGVqd4nW4YhdzdTkRNXSHvoAVs3TWEdDIa7eqIQMyO1Q51yG1yuHX988GgO/udfTU0VoSeYYh2bTmWFpKznMVRfwTwA7R4cq5Kne6gqb4n/ThPjDGFnGhv2jbPss4UXA9084yrF3SIvVpz5uIzAXdcNEPDTq+g==
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=vDsF8Xu9xsyj7dZCtHwBGEEK7+pNe90yIC5FmhpDiR4=;
 b=dLRKxAJIZ8ls1Y+UJsKz05m7dLvYoCDrakhkIi9TC8IZt9+uQAZRFTJGygfiQl2jvcApv1Kx1YTiqKlhLp0rG97HdHP3kH/dUC/sla+Y2Fr8EuQrBtneEuPb7IhbfIzw1HugV712aKhgbX8WppRvmwMUJ2NjLOuSkjkpHktTEPdlh61UZTpS2q+7xxAqhvWs+JH95IgJHMbEJGhivYGSLvDMkli0vGRk9baILIKeKKxdCDYCK1F4Z0rZaJIRHZzjllsB9WnJHTUDBbVHcO+J7WduLO0aUB/sax1paksht4my2VJVc2qOwlJ6tVh0y6tkGHt69U+Iun7O6XBVMRS5vQ==
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=vDsF8Xu9xsyj7dZCtHwBGEEK7+pNe90yIC5FmhpDiR4=;
 b=wXZgzcq1GGbg8+h6iV+kfs7y9kINNTw95ByLJI2Qh/KaDCUZesBZffvCQdJ6jOgEnN+jFcWmXOmRRVtg0FKLKL3Bi+Vr5zpKKKpjGX9qdmpLndmREtEphmjx4Q4xqd6AJSrwe0Q4XUXYXpZiIzXBN2V6Um7jYlsfsb8DYGZieZo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e2632ad6-6721-4697-a923-53b5bb0c9f0f@citrix.com>
Date: Fri, 19 Dec 2025 16:26:07 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Ariadne Conill <ariadne@ariadne.space>, linux-kernel@vger.kernel.org,
 mario.limonciello@amd.com, darwi@linutronix.de, sandipan.das@amd.com,
 kai.huang@intel.com, me@mixaill.net, yazen.ghannam@amd.com,
 riel@surriel.com, peterz@infradead.org, hpa@zytor.com, x86@kernel.org,
 tglx@linutronix.de, mingo@redhat.com, dave.hansen@linux.intel.com,
 xen-devel@lists.xenproject.org, stable@vger.kernel.org
Subject: Re: [PATCH] x86/CPU/AMD: avoid printing reset reasons on Xen domU
To: Sean Christopherson <seanjc@google.com>, Borislav Petkov <bp@alien8.de>
References: <20251219010131.12659-1-ariadne@ariadne.space>
 <7C6C14C2-ABF8-4A94-B110-7FFBE9D2ED79@alien8.de>
 <aUV4u0r44V5zHV5f@google.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <aUV4u0r44V5zHV5f@google.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0490.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1ab::9) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA1PR03MB6452:EE_
X-MS-Office365-Filtering-Correlation-Id: da5c88e4-f490-485b-38ca-08de3f1b5317
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WUtpYU81OHJnNzZ3bmJUS2F2VDlwOXlkTW9hcHJBTzdQbXlXd3JqNzNtK3pN?=
 =?utf-8?B?cFhxRFppTTVsZ0VQbk5GaHZHWW5LOWw2eGlkR2RiQUNvR0ZNaGcyVVNqQk5I?=
 =?utf-8?B?d04yMTl3bEhOZW9QNzRQSWJleWZ6U3dEQ3g4Yi9meFliaWNnL0NsSjIxSXdL?=
 =?utf-8?B?eXo1UGhBbjJIcXZ6ZDNsRWFUaVQ0ck05YUx1a2RWN1ZNc0dqUjVZa2xJdGo5?=
 =?utf-8?B?dnpiZlZtZGJzTTZpZkZETjduZjhNb2ZRS2w1QUx1dWVXWWdTZVl4Z2NXZlJO?=
 =?utf-8?B?Q0lhT3hQVmY4SVBrZWdqUVQxQUNWOVgrQy9HS2I2aFZRRjJnMUZ5d1BFTmxo?=
 =?utf-8?B?VnlsaUMyUWpoMFhsTmJNQXdOYUtiOTB6cGZ0b3k1NnFheFpKQkxzc2hVS05S?=
 =?utf-8?B?anRnNVVOMnExakxsaTlBK281T0R3WVVFaFJZWWF2Y2E4bWNzYmZmMGM4WG5h?=
 =?utf-8?B?NTJLK3IwaHpJd0Q3WnVvdi84T3l5VzZXNWJZVExFcTNtaitjbmw2MytCYmtV?=
 =?utf-8?B?MWZPbEdZb1pWbmpLSERtUW5hNE5OL2Y1ajA4aHpFSFkvWFpsKy91VXlSaU1r?=
 =?utf-8?B?YlVwQytMd3BzSGtybE9iNmM1cnY0WUFid2RicTY2ODFSWFpIblNlelE1eVVB?=
 =?utf-8?B?YnBOdk9MWXZRcjd0R1A2dHFBczhTSktMdHQ0U0gwU0tFWCt4OHJ6UkErS21x?=
 =?utf-8?B?WXV4SFJXMDVzRUZmMW45YVJTbmY3dlpRbHpEKzg3SVh2WkVnQi9VLzBkSzNw?=
 =?utf-8?B?b1V0RmxVUVJsdlZDL0hIeFhHdGZMaS9DTGlLZTNFelpJMThwbWYzYjZZbFoz?=
 =?utf-8?B?M215bVkyYmFZU1J6ZmtOS1ZtblpvSWd0OUhPUCtKOWpTRUM3V3dRdTJkdmFq?=
 =?utf-8?B?N1J1R2R3SU82R0pPT3VlNTladnBEUmRDbHBoQm1vclA3WFFldktwUlNVaHZG?=
 =?utf-8?B?UmFzRGhlbStGU1EvOXZPS0tUTDlhTXluRDdUaW90dDFGNDhkYnFmdlNEbmRX?=
 =?utf-8?B?REcrdkxJRG1aYWRoRzZpazFIZkh6bVVPMjNhRExJcVdNSTdTTzQzQVpNUUVq?=
 =?utf-8?B?SXZiNzdhVXFFdE1iMGN1RWViN0VxdDNqcnlWMHRPVHF3ai9xVkwvWEp4dHZq?=
 =?utf-8?B?SjBnK1VSTjdsdjlycnlvb3J0UjE3djZlVVQxVjhIZTdrVVN5b0YwSU95SEpo?=
 =?utf-8?B?R3VRSFBwR2JiZGhoY0N5TlBMWFFjSGpCbm1pME1pSDBwVW1UMExYajMzaWtI?=
 =?utf-8?B?TUI5emhrbGRaZmlKaXJTbm93MUZUZ1ZGcDVEMlR5L09WOHUvblh6ak5wS0JW?=
 =?utf-8?B?WHNTK1Q2NGhOUnRlUU9IeUdLdDF1TWc0Vk9IVWVNa2xVbytFaFROOVR5TWkz?=
 =?utf-8?B?SmlETFA1aXQ0RWs2d1lGQzJxeVJsYmZDRmZBSHNGdWd5d1NyWVBpTkpidnhO?=
 =?utf-8?B?ODAvODAvQUtNSnE0YXZOZ1RnbVZjNkpabTFIak95WDNPVlFWZjFua2g5WHZY?=
 =?utf-8?B?VStZOU9IVmZMOWNKYnhKVlpTZWsxazdlWGhJR1prVGlQTjF2S25DV1RHOXFV?=
 =?utf-8?B?SG1RaGRJSmJqanFPcUtYQklrWDJyWWh4bzlEWjFaUHFROStNbnZneW1BL0p2?=
 =?utf-8?B?QzMxSTJFWTRmUlBpUmV2ZjBIK0IzME9KL2JGdzRrc3h5YVpDZEJFaDVSMHZw?=
 =?utf-8?B?MTRjUGRBK1E4Sm1GQk1zdXp1Z3RyUTFPQnRFRytidjRLQXRFQXRDZ3d0VWhw?=
 =?utf-8?B?c29ZNzEyQlZ6TjZZVEh1ZHVEYXJsVkQ4VWlnV0tDa2R4TkdaU0g1TUVLekp2?=
 =?utf-8?B?STNqYmJ1cnVVWFBMTUtVWlQ3Qm41SHk0Smx5bXozMy92cElYcldac3VlWjB6?=
 =?utf-8?B?TlpEN1YwdHRiSHVzS1dhODNTdWRiRnlkUXJwMUw3WjlVZ0lIYWRYS09GUWxU?=
 =?utf-8?Q?cVoqPtu//dmumZpROFrkMgjk/5DilBVp?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TjBMcE5IWXM1MUlXUWRsTUN5OUc1c3hjKzBMRmgxcTFwNEZmQTJFYUhIUmh3?=
 =?utf-8?B?OFNKa3dCMm1OKzBsenY2dkpCVWtobXlBY0M3NTl0QWNEcitwcjE3cEZLMnly?=
 =?utf-8?B?bEI0Nm1Va2lTTlJJK1hzVFk5M0JZS3lFWVVONVB5em11eng0Q1podVQxYTll?=
 =?utf-8?B?T1J4akVSck9XQUoxNFYxQ283WmQwaERuYjZzVW1La2h0bGQ0UXZSR3cxdXhC?=
 =?utf-8?B?V292bzdhU1JCdk5EVW1QZHNLc1hRUTlGdnVFQ0FWNVlsR2VYbFpBYkxZaU41?=
 =?utf-8?B?WUU5eVZsWlZoc3RJZWl4TGFRYmRFQzZoUUVyb2xkM1JMOERPS1V2dWR4WEZO?=
 =?utf-8?B?ZmxQK0RuMkVyaERIL3RuSUZ4VTRneUhzZGtIZ1ZzQkRickFlT3lwQnV5ek5C?=
 =?utf-8?B?WUFHa3I4UE9JQkQycFlEeGpycnJINGFqVm5hSU4wSjNVb29tV2lXcmZNU1o5?=
 =?utf-8?B?dk0yRDBBUjNtZVlQMGZ2RWsvQTJMMkVCbWdqYnFJb1ZmU3NpTXZqVUpncUo4?=
 =?utf-8?B?SzQvd2NnZ2drM2k1c2tvY3RlNkRSbkJ0MUdJOGptUDBZZUdrUW93UGUvMGlm?=
 =?utf-8?B?RnJvbE83Q2E2eDQ2c0RmKytHSU9XZ3lwR2hKejgvRDFmMm0wc095WmtVdEN3?=
 =?utf-8?B?cXpiVFRaalpFTkR6YUdFa1FIQ1N5SUp3c0kvb1dUdGx2N3FPSEhpSVlMZjdN?=
 =?utf-8?B?cE9jeUlGNnpYMWdneER0UDk2TE9tYituUWNtMWtpK3ZGZ3VlTWxLQUFyb1ox?=
 =?utf-8?B?YkQzbGJHbC9SSHZtZEVNU0wrbCtzU0Q3UHUzcUNkT25IT0dlQzlTakJDOElH?=
 =?utf-8?B?NUFTZGkyTDJhNEJaWkowQ3VwbG0vYVpJN0lEOFdZQnQ1Nk12SVZCdkJMaUIv?=
 =?utf-8?B?QmMxVG83Qi9rbXlickFMWTI5bHduOFJONzRvT3duUEFFWnhxa2ZSelE3QTFJ?=
 =?utf-8?B?S2szT29wRkczLy9ZSTJJTzE3YUJtaGdEWkVpTlJoRmZQT01DRXNuYWsvbHZL?=
 =?utf-8?B?U0plT2YwZzU5MFZWNmttWURGOHp0RkJKck00cUtjbVBKeXdNR2JBRFJTL0oy?=
 =?utf-8?B?Mys0Y0NJWHoxekp5T25LdkdIRHlzM3RJNTk0Ujk4alFRYzN2RWRuNWZ1amp6?=
 =?utf-8?B?amtDYWQ0dTZCdjhVRThRUVY3TjRmbzJXTUJKWW55MFV6VE11VEJVRXo5V2lU?=
 =?utf-8?B?eHc0V09LbFd5WENSTWlHZ2E5V3JVT2hLODU0c2pYNDg3bHhwckhneWdtZmUw?=
 =?utf-8?B?aVJlU3dmRDlYZDhzbE15MVY4NnVGV0p0ekMvS2RzR3kvMEJqaVRxY0ViT3Bz?=
 =?utf-8?B?ZUNTNTIvWUNudmJxZFdlVnIwbkRyOVdZZmV4Skk4cDVRYk1GV0lqYW91OVo0?=
 =?utf-8?B?MEtNYWF2TkJkN0Y4VkNrekpNTHAwaEx4WVEvRUJsS3ZpYTdCYSsxU09tV3Qz?=
 =?utf-8?B?bVpvOEhVSlRaQXZlUm16NmZJejVabDgxanl1STVWUU5CWHAxK3NaOG1Hb29u?=
 =?utf-8?B?WDNPQWxGUGN5bWZMVTZDMlpxN3lzSjdQTU1QVjZKaW9ZUUt5VmRYSnU0MG03?=
 =?utf-8?B?cFlnV29FUjhOTkNxZ0lFVTk3bG4vS3gycENOa3dKTGs2NHVjTjIvbFBjMmZ2?=
 =?utf-8?B?MjZYNm1FSURKQ0xxWCs2U3JHNFJZRlNSbWJ0a0dlei9LZlZIRXYxSmlkU0FW?=
 =?utf-8?B?bGhscTZMQkN4akxSUmpVNU9xS01HSG9LRUdNbUdBTzhsYmZzVnBrSkR5a1VR?=
 =?utf-8?B?UzNBMzBZKzQ3TWFrLzFvTEVDK3JNY0htQ0dNbHUraTR2bVA4UkVlSEtnVDBO?=
 =?utf-8?B?bi9uZUVFbkFxVUlPZjNPVzN0eGhiTXNFM2FUMXlvbkJ4STNwTjY5NTBNUjNZ?=
 =?utf-8?B?STA1ZzRPaUd4ejN6SDNnSFhMcCtZaFdGYnJmTmhIaUMyT1N5RFhIZTBRYjQr?=
 =?utf-8?B?Q0NRQlFGbEprZHowZ1ZzNlVkd0NDZFhKb1hHbHkxSkUyU0xMbDBac2hKd0ls?=
 =?utf-8?B?VmRQQ25rOHgxUnBUTk9TK0JyTjRaQUhweUpiQVUzTWJITzhRS285dnYrSjhW?=
 =?utf-8?B?YlRtRFBCK2U4V0JtbUdXczE5eldTc0VUOUFCb0M3SHpTdE9WYktVYnJraEdr?=
 =?utf-8?B?alQ1QThnWHB6L3craHlnK0JXRGpidktnQjUyMUhZV1lhYXQyamp0YVdCNmcr?=
 =?utf-8?B?VjEyOGpCaGlJNnhBazkwYkNKTmllYTFvYTBRN0x1cGVqUEZaUkw1anVUV1Qw?=
 =?utf-8?B?Ti9xT1NYUG5FS0VLMXp5bnYyRGNBTWdXUjVTVmVkV2ZxTGtxcE91TjVCbVU0?=
 =?utf-8?B?RlN2QnJvL1dGM2RaSTJtaW5vbXdpWCszQ1BhYjBnMnIyTnV2UXFGQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: da5c88e4-f490-485b-38ca-08de3f1b5317
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2025 16:26:12.4540
 (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: t704DWbjOPljgtdQTfedmqkt431+iO6Vo1oCTfOPbfd0FfCdql7VykL4XWMmcm2GsKMPkKioprZ4+f8NSn4UoAeUUI+LiY3yekuGinfLcvY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6452

On 19/12/2025 4:09 pm, Sean Christopherson wrote:
> On Fri, Dec 19, 2025, Borislav Petkov wrote:
>> On December 19, 2025 1:01:31 AM UTC, Ariadne Conill <ariadne@ariadne.space> wrote:
>>> Xen domU cannot access the given MMIO address for security reasons,
>>> resulting in a failed hypercall in ioremap() due to permissions.
> Why does that matter though?  Ah, because set_pte() assumes success, and so
> presumably the failed hypercall goes unnoticed and trying to access the MMIO
> #PFs due to !PRESENT mapping.
>
>>> Fixes: ab8131028710 ("x86/CPU/AMD: Print the reason for the last reset")
>>> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
>>> Cc: xen-devel@lists.xenproject.org
>>> Cc: stable@vger.kernel.org
>>> ---
>>> arch/x86/kernel/cpu/amd.c | 6 ++++++
>>> 1 file changed, 6 insertions(+)
>>>
>>> diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
>>> index a6f88ca1a6b4..99308fba4d7d 100644
>>> --- a/arch/x86/kernel/cpu/amd.c
>>> +++ b/arch/x86/kernel/cpu/amd.c
>>> @@ -29,6 +29,8 @@
>>> # include <asm/mmconfig.h>
>>> #endif
>>>
>>> +#include <xen/xen.h>
>>> +
>>> #include "cpu.h"
>>>
>>> u16 invlpgb_count_max __ro_after_init = 1;
>>> @@ -1333,6 +1335,10 @@ static __init int print_s5_reset_status_mmio(void)
>>> 	if (!cpu_feature_enabled(X86_FEATURE_ZEN))
>>> 		return 0;
>>>
>>> +	/* Xen PV domU cannot access hardware directly, so bail for domU case */
> Heh, Xen on Zen crime.
>
>>> +	if (cpu_feature_enabled(X86_FEATURE_XENPV) && !xen_initial_domain())
>>> +		return 0;
>>> +
>>> 	addr = ioremap(FCH_PM_BASE + FCH_PM_S5_RESET_STATUS, sizeof(value));
>>> 	if (!addr)
>>> 		return 0;
>> Sean, looka here. The other hypervisor wants other checks.
>>
>> Time to whip out the X86_FEATURE_HYPERVISOR check.
> LOL, Ariadne, be honest, how much did Boris pay you?  :-D
>
> Jokes aside, I suppose I'm fine adding a HYPERVISOR check, but at the same time,
> how is this not a Xen bug?  Refusing to create a mapping because the VM doesn't
> have a device defined at a given GPA is pretty hostile behavior for a hypervisor.
>

This is a Xen PV guest.  No SVM/VT-x.

A PV Guest (by it's contract with Xen) cannot create mappings to host
physical addresses it doesn't own.  Xen rejects the attempt, and Linux
is ignoring the failure in this case.  This has been ABI for 25 years.

>From a more practical point of view, because guests can read their own
pagetables, Xen can't swap the requested PTE for safe alternative to
trap the MMIO access, because that violates Linux's model of what's
mapped in this position.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Dec 19 16:32:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 16:32:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190879.1511116 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWdOm-0000qr-Ki; Fri, 19 Dec 2025 16:32:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190879.1511116; Fri, 19 Dec 2025 16:32:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWdOm-0000qk-IE; Fri, 19 Dec 2025 16:32:12 +0000
Received: by outflank-mailman (input) for mailman id 1190879;
 Fri, 19 Dec 2025 16:32:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=U6gf=6Z=bounce.vates.tech=bounce-md_30504962.69457e03.v1-d18d5be1757645a2b4114b745399e872@srs-se1.protection.inumbo.net>)
 id 1vWdOl-0000qe-7p
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 16:32:11 +0000
Received: from mail137-31.atl71.mandrillapp.com
 (mail137-31.atl71.mandrillapp.com [198.2.137.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4099922f-dcf8-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 17:32:05 +0100 (CET)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-31.atl71.mandrillapp.com (Mailchimp) with ESMTP id
 4dXtNM1bfCz7lmRhy
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 16:32:03 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d18d5be1757645a2b4114b745399e872; Fri, 19 Dec 2025 16:32:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4099922f-dcf8-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1766161923; x=1766431923;
	bh=OvdSDejbcaHbbKQCG9MCRtVqRVp7XVW/Zcf/5kBSYys=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=iE3glzlg8aralpjxouNL9OXTHlIYHbZe90Nra+M9a7W19kyUcsykRHt3GEvxYPCsT
	 3PekHc0Laip/AFXUmHs27rPmTRMNz7S5HfCFjOT/aIALkj+lyjBmEBzPT6EyK1DMwQ
	 G6M5Qsam4JLZypZ/AO2jmYSh5ZrN+RIDk1GQJMF9zA6Jiae8IsAa6MArC67OrVBoAG
	 OmXaKz7bFW7zsBgJUCnb2Ms86ZUFPY4MhH97CUJ0vI08zSYkda9syerlpfLgl9ZDuj
	 xDLB0V+AqvuZxJLGqeZ1u6z2kJGGwvzMDq1jiyOyrgnRP9soILUeYUmbL24MvhcxPr
	 gcVr8JpzIn57A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1766161923; x=1766422423; i=teddy.astie@vates.tech;
	bh=OvdSDejbcaHbbKQCG9MCRtVqRVp7XVW/Zcf/5kBSYys=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=Nry1WVOGLRtt5qddEneSyExpvu12y+XK37JJ+bpun5safAeZVRmSfcU9/rDB4ugWe
	 yIqEfpPz397MRQgCvHlsOKQheHsBUBKGQXWcsdkdidA6eUZBSFQ10FT87RgvTmbWxf
	 rGuzVvejo1C+mYRCQfSCyZAmF17TuUlVJQ4Z6EcSVUBjqPbmxwLaf7rL6QST8uibBY
	 shPViSpWRoAem3TrmNK4TL0cdZ5OGw5GNdTDLjNOmAN+mudgWYAGK3RiViN9WPszUO
	 sHld5ldALT+vEuP9CkvjK850URpCVB+NtEL8/zYPWtc+HEO9OOyarzaogM1zqmZ5i5
	 l364CDCPSSNeA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20x86/CPU/AMD:=20avoid=20printing=20reset=20reasons=20on=20Xen=20domU?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1766161922383
Message-Id: <dbe68678-0bc4-483f-aef3-e4c7462bcaff@vates.tech>
To: "Ariadne Conill" <ariadne@ariadne.space>, linux-kernel@vger.kernel.org
Cc: mario.limonciello@amd.com, darwi@linutronix.de, sandipan.das@amd.com, kai.huang@intel.com, me@mixaill.net, yazen.ghannam@amd.com, riel@surriel.com, peterz@infradead.org, hpa@zytor.com, x86@kernel.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, xen-devel@lists.xenproject.org, stable@vger.kernel.org
References: <20251219010131.12659-1-ariadne@ariadne.space>
In-Reply-To: <20251219010131.12659-1-ariadne@ariadne.space>
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.d18d5be1757645a2b4114b745399e872?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251219:md
Date: Fri, 19 Dec 2025 16:32:03 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 19/12/2025 =C3=A0 02:04, Ariadne Conill a =C3=A9crit=C2=A0:
> Xen domU cannot access the given MMIO address for security reasons,
> resulting in a failed hypercall in ioremap() due to permissions.
> 
> Fixes: ab8131028710 ("x86/CPU/AMD: Print the reason for the last reset")
> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
> Cc: xen-devel@lists.xenproject.org
> Cc: stable@vger.kernel.org
> ---
>   arch/x86/kernel/cpu/amd.c | 6 ++++++
>   1 file changed, 6 insertions(+)
> 
> diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
> index a6f88ca1a6b4..99308fba4d7d 100644
> --- a/arch/x86/kernel/cpu/amd.c
> +++ b/arch/x86/kernel/cpu/amd.c
> @@ -29,6 +29,8 @@
>   # include <asm/mmconfig.h>
>   #endif
>   
> +#include <xen/xen.h>
> +
>   #include "cpu.h"
>   
>   u16 invlpgb_count_max __ro_after_init =3D 1;
> @@ -1333,6 +1335,10 @@ static __init int print_s5_reset_status_mmio(void)
>   =09if (!cpu_feature_enabled(X86_FEATURE_ZEN))
>   =09=09return 0;
>   
> +=09/* Xen PV domU cannot access hardware directly, so bail for domU case=
 */
> +=09if (cpu_feature_enabled(X86_FEATURE_XENPV) && !xen_initial_domain())
> +=09=09return 0;
> +
>   =09addr =3D ioremap(FCH_PM_BASE + FCH_PM_S5_RESET_STATUS, sizeof(value)=
);
>   =09if (!addr)
>   =09=09return 0;

Such MMIO only has a meaning in a physical machine, but the feature 
check is bogus as being on Zen arch is not enough for ensuring this.

I think this also translates in most hypervisors with odd reset codes 
being reported; without being specific to Xen PV (Zen CPU is 
unfortunately not enough to ensuring such MMIO exists).

Aside that, attempting unexpected MMIO in a SEV-ES/SNP guest can cause 
weird problems since they may not handled MMIO-NAE and could lead the 
hypervisor to crash the guest instead (unexpected NPF).

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Fri Dec 19 17:22:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 17:22:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190923.1511126 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWeBk-0007PX-3z; Fri, 19 Dec 2025 17:22:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190923.1511126; Fri, 19 Dec 2025 17:22:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWeBk-0007PQ-0H; Fri, 19 Dec 2025 17:22:48 +0000
Received: by outflank-mailman (input) for mailman id 1190923;
 Fri, 19 Dec 2025 17:22:46 +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
 <SRS0=S3ad=6Z=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vWeBi-0007PK-DX
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 17:22:46 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 54fa47aa-dcff-11f0-b15b-2bf370ae4941;
 Fri, 19 Dec 2025 18:22:45 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-640a0812658so3274629a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 09:22:45 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b916b3b35sm2743384a12.30.2025.12.19.09.22.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Dec 2025 09:22:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54fa47aa-dcff-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766164964; x=1766769764; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=U6mZvMyHh0Q/356NIXF4FwU1znnqona4e6GQ+jsYG1Y=;
        b=jpjKXV7DejxcoiCXot4t6YiI2VJPmXxI6Gs4titbsXONQ1wgI5hkqmDNqbMmdz59Fh
         mAf52CEjl1EY8OL7LeMrGwHeSYKvWIus75SAFP+pw3TPqGXonVORR15Ku5rKggoJLCIv
         ITOJr+OErePTs6Zgts9FTp3Ao6b8QRHpo5DrxchSYuu5D/9Tq7BLdCjn3/hnINrpNVID
         LHD12sMX+1a/Z8MC/dKQc7DSVf1maNIyRI+yPa5bcWO5AAetYn9k/kOM1SUSMvvsUwac
         CvT5CHKoFk1lZcQcjjyi40bMJ5K0IaV3wVF7i+Hg9JG0ac1769vZIN1psG55rXJP4d8j
         L7tQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766164964; x=1766769764;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=U6mZvMyHh0Q/356NIXF4FwU1znnqona4e6GQ+jsYG1Y=;
        b=mR6qtXCDa9/dQVvyx+yDL3p6x1P5oY1Xx708rDNYO0nPfEvWG3FSbrBqHpkrzmbfaY
         NgmeTYqTwPqjWyddXcIZNsmfMZCOWgnoPp5OnL9qTIm77Ja6V1a0y/VVVQ2xkoquHAQ5
         PRpbnd9Qr5si8FeCjgIOwIicm5xG8/ByESNLN/JR0OLI+kaN+Epli2kvqA5h61E+y3ZN
         vOQ3pXhJi1eOGnQdBa6ZYl26QxiDSHEePGjPdcSiB4dplBaaaD5hntyXYqU+CO87Eua2
         SeMBtosYriwTQW1mlCqwRjFWYSkXiWts+F8EDPfN15zLxxfSSiriKeJ17GLJO3kTuAIy
         X5Hw==
X-Forwarded-Encrypted: i=1; AJvYcCWB2TnzdOFxvtOJmC73aI+Y7WN5IrTw2By6K+MsKYIp5ePcCjUAYr4Z9ZkpKmyocTobbbeDPG5NafQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yytd2nevyVuWwsiq5H7VlTmCZx+DWfpoUfclDOPGc6a4K9uN3Z6
	WQvxv2t77wHjl2Lp/Y8RZbmhjOopeS+dM51vlZEaUc5nrTr+6Q6I9M3d
X-Gm-Gg: AY/fxX4kuQ2rbf25UJNxjqOHhCGX4xfMqq5Gl90pb4+8sbz/cdBfMqOdps59Zs5+z8Q
	b4OFclvJD9+Dwyvj1/fqygPOrQRIH936kNfA1HYL9rOGowOBMvuNghcxMz51cjokUXVH7Ep7ii7
	KfkIlOj7YPsdr7Oeen53kl8D9b/2GIVjoOYJuM9ELIp0ipm3hNu6Ls3I7PtonCEvrZQHbnxHV2W
	J528cCDxQ+IVpS/g5+N4fvqiEUuXt8prmZgBLt4+om3rMZt6I00nT1al1PsLmjbwXu/KFbfMIbn
	KzGr5jTdW05jhUvzbZ2pNlfQwttAthvlqYtoWU8AhzVShLMqJAMIiLvKybzt+gIrGakE7R1xZnm
	PBUw9KY5kiPxWg360x6IQnEtipgMT87zvSFoSa82TZoqPEZpJjT4AKyB27fkCvBbL0FoGcievqc
	gep7y10urygNQ3p70MaYnmbLUtnsA/J5da2RvHnehBhjvRVcQXM1mfV+etBy1AczKz
X-Google-Smtp-Source: AGHT+IFrfpZDdtIo4g6VhH5xt2thWooj+ZYHd8Ilz0I9RwI53Qcn0IsD9Hwo4ssYL20TuuqAwzNXdg==
X-Received: by 2002:a05:6402:2115:b0:64d:170:79a3 with SMTP id 4fb4d7f45d1cf-64d01707b55mr293997a12.20.1766164964272;
        Fri, 19 Dec 2025 09:22:44 -0800 (PST)
Message-ID: <a52c4214-aed1-445d-91a6-e86546c9a191@gmail.com>
Date: Fri, 19 Dec 2025 18:22:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] xen/arm: optimize the size of struct vcpu
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <cover.1766053253.git.oleksii.kurochko@gmail.com>
 <946a1c2cfaf4157074470a653bba5baa8561ebbf.1766053253.git.oleksii.kurochko@gmail.com>
 <ea01af72-c94e-4203-90c4-eaf68174b576@citrix.com>
 <290b8d4d-f853-418a-ae01-aea2f62b4f56@gmail.com>
 <8b045139-10dc-4b07-9ef6-d3b9c8b1efbb@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <8b045139-10dc-4b07-9ef6-d3b9c8b1efbb@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/19/25 3:16 PM, Jan Beulich wrote:
> On 19.12.2025 14:32, Oleksii Kurochko wrote:
>> On 12/18/25 7:15 PM, Andrew Cooper wrote:
>>>>    int vcpu_vgic_free(struct vcpu *v)
>>>>    {
>>>> -    xfree(v->arch.vgic.private_irqs);
>>>> +    xfree(v->arch.vgic->private_irqs);
>>>> +    xfree(v->arch.vgic);
>>>> +
>>>>        return 0;
>>>>    }
>>> Free functions should be idempotent.  This was buggy before, even moreso
>>> now.
>> Was it really buggy before in terms of idempotent.
>>
>> It seems like xfree() can handle the case when v->arch.vgic.private_irqs is NULL.
>> Should I still have:
>>    if ( v->arch.vgic->private_irqs )
>>       XFREE(v->arch.vgic->private_irqs);
>> ?
> No, and iirc Andrew also didn't ask for this.

Andrew wrote:
```
Free functions should be idempotent.  This was buggy before, even moreso
now.  It wants to be:

void vcpu_vgic_free(struct vcpu *v)
{
      if ( v->arch.vgic )
      {
          XFREE(v->arch.vgic->private_irqs);
          XFREE(v->arch.vgic);
      }
}

Given the type change, this probably wants splitting out into an earlier
patch.

Given the fact that the single caller doesn't even check the return
value, you're fixing a MISRA violation by making it void.
```

It isn't clear what "This was buggy before" means. In my changes
it will be an issue if vcpu_vgic_free() would be called twice because
without "if ( v->arch.vgic )" we will have NULL pointer dereference
XFREE(v->arch.vgic->private_irqs) here. But considering that before
it was just:
   int vcpu_vgic_free(struct vcpu *v)
   {
	xfree(v->arch.vgic.private_irqs);
	return 0;
   }
In that case, it seems that calling|vcpu_vgic_free()| twice would not cause
anything serious to happen. Am I misunderstanding what was buggy in the original
code, or probably I'm misunderstanding what is idempotent?

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Dec 19 17:26:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 17:26:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190933.1511136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWeFQ-0007vr-IR; Fri, 19 Dec 2025 17:26:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190933.1511136; Fri, 19 Dec 2025 17:26:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWeFQ-0007vk-FD; Fri, 19 Dec 2025 17:26:36 +0000
Received: by outflank-mailman (input) for mailman id 1190933;
 Fri, 19 Dec 2025 17:26:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=S3ad=6Z=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vWeFP-0007vZ-7q
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 17:26:35 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dcfc8032-dcff-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 18:26:33 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b804646c718so57548066b.2
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 09:26:33 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037a5bdb9sm287326766b.7.2025.12.19.09.26.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Dec 2025 09:26:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dcfc8032-dcff-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766165192; x=1766769992; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to
         :cc:subject:date:message-id:reply-to;
        bh=G715qPXc02lworJrrOeiaZA2ZTbc4mrPnR8/Vas9IF4=;
        b=Ns75pEJ+Fn1LVNjc0scQiGEkrX78wateZgSYld3j+1Z0GRxmm3FtVdIoyn365M3JZ6
         vfc6kd3W3P/iw9DHcx9ZoV+HFp7zrttquPvcS+PbVcwYbcTXSz+psKfRusXb9uAhNOPi
         45j6RBHYr+7GMOY8wHK1H23udkXOhnyoZ5dJ/kVPN+HJ27DU0tkxk50cKIk8NKsJeT/e
         T1rSCD7mqeuprqVG6K2a+h5uyuXSGIyPfYPAmFYqLPzJ9FUvs3NuuG8rzeWGBY68sVlX
         sXvYw5uSg0OEzyGWWW5cpZFdlbi2g8RLm8wz3dFYQ3yoCN6o7OagEFYco03e5AEUlHfK
         YYEw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766165192; x=1766769992;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=G715qPXc02lworJrrOeiaZA2ZTbc4mrPnR8/Vas9IF4=;
        b=GMqYMX+Mp9p890ZPHGcz8gQzjcgdujNNccBoT5XeCzhf26Ylh1SjJkTgS1oeYHFnoq
         1cHbyc+OHSlkV5TZB4Ct5MgXzFU0oDYoWE+pVXmPRUy8bwYuya3Jr3nzNIv7fXqcuoUi
         JIRZyYcseSwUg37aBqpiiDVQShPbmaetTaJYRwWecyxiNXOoHt6lrw9VJPlNq11+lYXa
         wtx26Yj/20RIF1ZFm1A4jpgU+xotg0KsdbdXEp/xgCrRIAIa7JnLNndHOgT7ajd8br2+
         Uiynj8Cw/nJWzrI1BfyyczqhBQlRiYtciTZgzQojlJAIfpMeuuE0YglblIbjSO1WbnZ7
         qbXg==
X-Forwarded-Encrypted: i=1; AJvYcCUbUTbUTWpX0QoAxuDK5q9Z1nV7RI9Q34KmnhRsHQ97xc8VVdBtOV5MSls2V1F/dYs9VxyiXscWZUg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyh0NeTbZlNfkthb3eiaT4oepKGQ+bJus1arhypglQEgbtzPjJ/
	1tuMbtHZl5QSANbWzxPq/tbXsZ77ka3BcT8UKBkmeRyu3H2FLC74KBX2
X-Gm-Gg: AY/fxX68ghLb3EHqH1R7dSMujmzDQmgiTwhrfBn1nE50IsTGJIA2sG4gVd3mvb752mt
	tSA1e1o+JWr804bZml6Z65KYEVX/5dLCud/OUH6Xvjnr0msvQC3/47yoFgd9zEdGUAJX9mx8sKM
	mPdcd8SWIyvilONaP1eJldZ64pPR94ZD8l9b2XiKHlKsFN79q5828qbASqX/WcKBVKyZSXKQJHG
	sJFLAy350jwzKj4OYyW7pJdCwB26E5s+D6V7foa6pfrX+TT7iJVtG2i8pBgaII8kBkruIPqidxN
	UTsISE14jystHIaqFloyMaRtotQLwLO55z8Dnh19WXgPn8ASJAriHsSsZjbR+7k2kCM3Opsx6Jb
	zgDElsIrwegLPBDOiuESy6IT9HvLw+KtBUgsyrEyXlsolUHwEDiTmoRdAGtUxb5b+D/IL+gnxb8
	zt71CFO7Mn1JNh8jAOgP/PC7q1FTEfYQQBq+XkIkb3WsK+iznVGtBmRzZvI0+IpWYubovD0fExc
	yA=
X-Google-Smtp-Source: AGHT+IEq2e9FfntHEIOFopDYQcgfmuIRslN/l+D8XYl32jqtH5s6dtTXGr4I+6OjVEkcySphRJovvg==
X-Received: by 2002:a17:907:7f0d:b0:b73:301c:b158 with SMTP id a640c23a62f3a-b8036ecdbf1mr311172466b.6.1766165192279;
        Fri, 19 Dec 2025 09:26:32 -0800 (PST)
Message-ID: <63d82b7c-5e6e-4ea4-91a7-39f81b6065bb@gmail.com>
Date: Fri, 19 Dec 2025 18:26:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] xen/arm: optimize the size of struct vcpu
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <cover.1766053253.git.oleksii.kurochko@gmail.com>
 <946a1c2cfaf4157074470a653bba5baa8561ebbf.1766053253.git.oleksii.kurochko@gmail.com>
 <ea01af72-c94e-4203-90c4-eaf68174b576@citrix.com>
 <290b8d4d-f853-418a-ae01-aea2f62b4f56@gmail.com>
 <8b045139-10dc-4b07-9ef6-d3b9c8b1efbb@suse.com>
 <a52c4214-aed1-445d-91a6-e86546c9a191@gmail.com>
Content-Language: en-US
In-Reply-To: <a52c4214-aed1-445d-91a6-e86546c9a191@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/19/25 6:22 PM, Oleksii Kurochko wrote:
>
> On 12/19/25 3:16 PM, Jan Beulich wrote:
>> On 19.12.2025 14:32, Oleksii Kurochko wrote:
>>> On 12/18/25 7:15 PM, Andrew Cooper wrote:
>>>>>    int vcpu_vgic_free(struct vcpu *v)
>>>>>    {
>>>>> -    xfree(v->arch.vgic.private_irqs);
>>>>> +    xfree(v->arch.vgic->private_irqs);
>>>>> +    xfree(v->arch.vgic);
>>>>> +
>>>>>        return 0;
>>>>>    }
>>>> Free functions should be idempotent.  This was buggy before, even 
>>>> moreso
>>>> now.
>>> Was it really buggy before in terms of idempotent.
>>>
>>> It seems like xfree() can handle the case when 
>>> v->arch.vgic.private_irqs is NULL.
>>> Should I still have:
>>>    if ( v->arch.vgic->private_irqs )
>>>       XFREE(v->arch.vgic->private_irqs);
>>> ?
>> No, and iirc Andrew also didn't ask for this.
>
> Andrew wrote:
> ```
> Free functions should be idempotent.  This was buggy before, even moreso
> now.  It wants to be:
>
> void vcpu_vgic_free(struct vcpu *v)
> {
>      if ( v->arch.vgic )
>      {
>          XFREE(v->arch.vgic->private_irqs);
>          XFREE(v->arch.vgic);
>      }
> }
>
> Given the type change, this probably wants splitting out into an earlier
> patch.
>
> Given the fact that the single caller doesn't even check the return
> value, you're fixing a MISRA violation by making it void.
> ```
>
> It isn't clear what "This was buggy before" means. In my changes
> it will be an issue if vcpu_vgic_free() would be called twice because
> without "if ( v->arch.vgic )" we will have NULL pointer dereference
> XFREE(v->arch.vgic->private_irqs) here. But considering that before
> it was just:
>   int vcpu_vgic_free(struct vcpu *v)
>   {
>     xfree(v->arch.vgic.private_irqs);
>     return 0;
>   }
> In that case, it seems that calling|vcpu_vgic_free()| twice would not 
> cause
> anything serious to happen. Am I misunderstanding what was buggy in 
> the original
> code, or probably I'm misunderstanding what is idempotent?

Oh, it is about that xfree() doesn't set private_irqs pointer to NULL. I thought it is
doing that inside xfree().

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Dec 19 17:37:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 17:37:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190954.1511145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWePM-0001G8-Di; Fri, 19 Dec 2025 17:36:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190954.1511145; Fri, 19 Dec 2025 17:36:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWePM-0001G1-BA; Fri, 19 Dec 2025 17:36:52 +0000
Received: by outflank-mailman (input) for mailman id 1190954;
 Fri, 19 Dec 2025 17:36:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=DMLK=6Z=flex--seanjc.bounces.google.com=3Lo1FaQYKCa8hTPcYRVddVaT.RdbmTc-STkTaaXhih.mTcegdYTRi.dgV@srs-se1.protection.inumbo.net>)
 id 1vWePL-0001Fv-0i
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 17:36:51 +0000
Received: from mail-pl1-x64a.google.com (mail-pl1-x64a.google.com
 [2607:f8b0:4864:20::64a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4b37b2e9-dd01-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 18:36:48 +0100 (CET)
Received: by mail-pl1-x64a.google.com with SMTP id
 d9443c01a7336-29f2b45ecffso32499275ad.2
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 09:36:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4b37b2e9-dd01-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20230601; t=1766165807; x=1766770607; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id
         :reply-to;
        bh=RqnyJGm9t/ZyJN7mQeBjdnUbXeTdowYt1l4KyYLgPcE=;
        b=l4cLdnNUrOEIdsySHEYHih73wNDv88+5CQq6CX2xjipvmeLdnttQAAqjKAsjNfjUTC
         b9wF6w6Of4/Om1blslrneR+goqO4Z+CUPVxuYFCKV/zP/JBO9cNUb+nwGjhAb7UuY1Mw
         ykpDuMfWDe+iIjwsTMl0YZZP/nHT1aPJmh3hAGp1K3Hr8e1MC2dMOCIdlCJyo1/k3W11
         iGqlW6e7f22uLAUHR5v+syX7+xOejwMD7gj1tjadtEkS03nvLRt4cne7UW473lMklSE5
         OPq0JYPmQgZSB7pTM8AqWOC4zkFcCLnT7jDSsfERGgELbIe/vkzEjN3y5MMv3jm7wqjq
         AlMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766165807; x=1766770607;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject
         :date:message-id:reply-to;
        bh=RqnyJGm9t/ZyJN7mQeBjdnUbXeTdowYt1l4KyYLgPcE=;
        b=WgmiXvfWusgU6L7K6R8mzFHVkXQA0wdlEYmoYxUjWFNlWuy4E0Kqa3V0gj8R0Uk5Ic
         pZlATiuJpCC6+wIu9TtGPZyhxbQf1ejp1xHzP8HCSATajXH+hjpEluSRQKuF2B+Q2xRI
         mf9093AjQGPFZjG2Nj+kw1oFiv4utRk37WKYC7JmjMOOs0tB3xhHIqvkWHGW5h8MKClf
         rYcUuBi0KrH7q4VaC7QZmqP2vSqTwpoHVXSFIeV9pHFkKja/ezmqV0f9mZPDJwnZBEjm
         831Tuv/Pvcbgb5uaRy/kHE2lQsLG2BSiGeTuCB1KdD4fcgF3R6TcAgt21+3dquRSvG9K
         HSBA==
X-Forwarded-Encrypted: i=1; AJvYcCVzPkJ9O24DV6Oc3VD72ZOJYv26xKeND+kEaFi4ZqLmVHqYRMbnVl3W849FTuMXvah2mtrxvItjUk0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw1cT0SqxFdp/bZj8StxcUh41J1ZeO+DkEW4Mo9/Vw0+IhvjcYT
	ncGbNS9cCiwDQRLOWkOrg3Jbu0yVuv7d6xu5z6lRaFXWeoZyQe4dr0dreslnStfGMOWV/chfS0q
	UGaGxUQ==
X-Google-Smtp-Source: AGHT+IHQHE/zSpVReAa4QYKKE9L22G3Nm8CEtCKN+zptcqFuHVITJGNdcTVWwZJuDaA8gysKF1rlDI2aruk=
X-Received: from pldd12.prod.google.com ([2002:a17:902:c18c:b0:29e:fd13:927b])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:fb0:b0:2a0:7f87:2347
 with SMTP id d9443c01a7336-2a2f2a536ebmr35477985ad.46.1766165806775; Fri, 19
 Dec 2025 09:36:46 -0800 (PST)
Date: Fri, 19 Dec 2025 09:36:45 -0800
In-Reply-To: <e2632ad6-6721-4697-a923-53b5bb0c9f0f@citrix.com>
Mime-Version: 1.0
References: <20251219010131.12659-1-ariadne@ariadne.space> <7C6C14C2-ABF8-4A94-B110-7FFBE9D2ED79@alien8.de>
 <aUV4u0r44V5zHV5f@google.com> <e2632ad6-6721-4697-a923-53b5bb0c9f0f@citrix.com>
Message-ID: <aUWNLUEme9FCUeAb@google.com>
Subject: Re: [PATCH] x86/CPU/AMD: avoid printing reset reasons on Xen domU
From: Sean Christopherson <seanjc@google.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Borislav Petkov <bp@alien8.de>, Ariadne Conill <ariadne@ariadne.space>, linux-kernel@vger.kernel.org, 
	mario.limonciello@amd.com, darwi@linutronix.de, sandipan.das@amd.com, 
	kai.huang@intel.com, me@mixaill.net, yazen.ghannam@amd.com, riel@surriel.com, 
	peterz@infradead.org, hpa@zytor.com, x86@kernel.org, tglx@linutronix.de, 
	mingo@redhat.com, dave.hansen@linux.intel.com, xen-devel@lists.xenproject.org, 
	stable@vger.kernel.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Dec 19, 2025, Andrew Cooper wrote:
> On 19/12/2025 4:09 pm, Sean Christopherson wrote:
> > On Fri, Dec 19, 2025, Borislav Petkov wrote:
> >> On December 19, 2025 1:01:31 AM UTC, Ariadne Conill <ariadne@ariadne.s=
pace> wrote:
> >>> Xen domU cannot access the given MMIO address for security reasons,
> >>> resulting in a failed hypercall in ioremap() due to permissions.
> > Why does that matter though?  Ah, because set_pte() assumes success, an=
d so
> > presumably the failed hypercall goes unnoticed and trying to access the=
 MMIO
> > #PFs due to !PRESENT mapping.
> >
> >>> Fixes: ab8131028710 ("x86/CPU/AMD: Print the reason for the last rese=
t")
> >>> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
> >>> Cc: xen-devel@lists.xenproject.org
> >>> Cc: stable@vger.kernel.org
> >>> ---
> >>> arch/x86/kernel/cpu/amd.c | 6 ++++++
> >>> 1 file changed, 6 insertions(+)
> >>>
> >>> diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
> >>> index a6f88ca1a6b4..99308fba4d7d 100644
> >>> --- a/arch/x86/kernel/cpu/amd.c
> >>> +++ b/arch/x86/kernel/cpu/amd.c
> >>> @@ -29,6 +29,8 @@
> >>> # include <asm/mmconfig.h>
> >>> #endif
> >>>
> >>> +#include <xen/xen.h>
> >>> +
> >>> #include "cpu.h"
> >>>
> >>> u16 invlpgb_count_max __ro_after_init =3D 1;
> >>> @@ -1333,6 +1335,10 @@ static __init int print_s5_reset_status_mmio(v=
oid)
> >>> 	if (!cpu_feature_enabled(X86_FEATURE_ZEN))
> >>> 		return 0;
> >>>
> >>> +	/* Xen PV domU cannot access hardware directly, so bail for domU ca=
se */
> > Heh, Xen on Zen crime.
> >
> >>> +	if (cpu_feature_enabled(X86_FEATURE_XENPV) && !xen_initial_domain()=
)
> >>> +		return 0;
> >>> +
> >>> 	addr =3D ioremap(FCH_PM_BASE + FCH_PM_S5_RESET_STATUS, sizeof(value)=
);
> >>> 	if (!addr)
> >>> 		return 0;
> >> Sean, looka here. The other hypervisor wants other checks.
> >>
> >> Time to whip out the X86_FEATURE_HYPERVISOR check.
> > LOL, Ariadne, be honest, how much did Boris pay you?  :-D
> >
> > Jokes aside, I suppose I'm fine adding a HYPERVISOR check, but at the s=
ame time,
> > how is this not a Xen bug?  Refusing to create a mapping because the VM=
 doesn't
> > have a device defined at a given GPA is pretty hostile behavior for a h=
ypervisor.
>
> This is a Xen PV guest.=C2=A0 No SVM/VT-x.
>=20
> A PV Guest (by it's contract with Xen) cannot create mappings to host
> physical addresses it doesn't own.

Huh, assuming wiki.xenproject.org[*] can be trusted, TIL Xen PV has no noti=
on
of a virtual motherboard/chipset:

  In a paravirtualized VM, guests run with fully paravirtualized disk and
  network interfaces; interrupts and timers are paravirtualized; there is n=
o
  emulated motherboard or device bus; guests boot directly into the kernel
  in the mode the kernel wishes to run in (32-bit or 64-bit), without needi=
ng
  to start in 16-bit mode or go through a BIOS; all privileged instructions
  are replaced with paravirtualized equivalents (hypercalls), and access to
  the page tables was paravirtualized as well.

[*] https://wiki.xenproject.org/wiki/Understanding_the_Virtualization_Spect=
rum

> Xen rejects the attempt, and Linux is ignoring the failure in this case.=
=C2=A0
> This has been ABI for 25 years.

Heh, I suspected as much.

> From a more practical point of view, because guests can read their own
> pagetables, Xen can't swap the requested PTE for safe alternative to
> trap the MMIO access, because that violates Linux's model of what's
> mapped in this position.

That all makes sense, but shouldn't the inability to ioremap() chipset MMIO=
 be
addressed in ioremap()?  E.g. after poking around a bit, commit 6a92b11169a=
6
("x86/EISA: Don't probe EISA bus for Xen PV guests") fudged around the same
underlying flaw in eisa_bus_probe().  Ha!  Though maybe that's no longer ne=
cessary
as of 80a4da05642c ("x86/EISA: Use memremap() to probe for the EISA BIOS si=
gnature")?

Anyways, I'm still opposed to using HYPERVISOR.  E.g. given that Dom0 can a=
pparently
access host MMIO just fine, and that it's perfectly reasonable for a KVM-ba=
sed VMM
to emulate the chipset, assuming a guest doesn't have access to some asset =
is simply
wrong.

But rather than play whack-a-mole, can't we deal with the ignore PTE write =
failures
in ioremap()?  E.g. something like this?

diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index 12c8180ca1ba..b7e2c752af1d 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -29,6 +29,8 @@
 #include <asm/memtype.h>
 #include <asm/setup.h>
=20
+#include <xen/xen.h>
+
 #include "physaddr.h"
=20
 /*
@@ -301,6 +303,20 @@ __ioremap_caller(resource_size_t phys_addr, unsigned l=
ong size,
        if (ioremap_page_range(vaddr, vaddr + size, phys_addr, prot))
                goto err_free_area;
=20
+       /*
+        * Verify the range was actually mapped when running as a Xen PV Do=
mU
+        * guest.  Xen PV doesn't emulate a virtual chipset/motherboard, an=
d
+        * disallows DomU from mapping host physical addresses that the dom=
ain
+        * doesn't own.  Unfortunately, the PTE APIs assume success, and so
+        * Xen's rejection of the mapping is ignored.
+        */
+       if (xen_pv_domain() && !xen_initial_domain()) {
+               int level;
+
+               if (!lookup_address(vaddr, &level))
+                       goto err_free_area;
+       }
+
        ret_addr =3D (void __iomem *) (vaddr + offset);
        mmiotrace_ioremap(unaligned_phys_addr, unaligned_size, ret_addr);


From xen-devel-bounces@lists.xenproject.org Fri Dec 19 17:38:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 17:38:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1190968.1511155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWeR0-0001xU-Rf; Fri, 19 Dec 2025 17:38:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1190968.1511155; Fri, 19 Dec 2025 17:38:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWeR0-0001xN-P2; Fri, 19 Dec 2025 17:38:34 +0000
Received: by outflank-mailman (input) for mailman id 1190968;
 Fri, 19 Dec 2025 17:38:33 +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
 <SRS0=OW9g=6Z=flex--seanjc.bounces.google.com=3lo1FaQYKCRkH3zC815DD5A3.1DBM3C-23K3AA7HIH.M3CEGD831I.DG5@srs-se1.protection.inumbo.net>)
 id 1vWeQz-0001rO-99
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 17:38:33 +0000
Received: from mail-pf1-x449.google.com (mail-pf1-x449.google.com
 [2607:f8b0:4864:20::449])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8915cf01-dd01-11f0-b15b-2bf370ae4941;
 Fri, 19 Dec 2025 18:38:32 +0100 (CET)
Received: by mail-pf1-x449.google.com with SMTP id
 d2e1a72fcca58-7b80de683efso3504863b3a.3
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 09:38:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8915cf01-dd01-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20230601; t=1766165911; x=1766770711; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id
         :reply-to;
        bh=kbOhKn22cTFMoKpf/GXkxISQsKfNfALH2jWSUuo5nak=;
        b=VTSgp1GLn6DRHEXBum3DoLOvCxDO4CMLX2a1P9SEWRVCT3Hi8vJNuBFq+V5lA+BXN3
         dgFNdlEE93zOF3cBW2Pw6aEcA3AvyqirxlCkpAun/mHGufJWOt/0i4KOtFWpzeOrXefT
         5HlMcDvYBjb+WudtcJ0IhVx3MpEln8zILlFpO4toAU0YvQ2L2iFZCtAp1IcyLzud8uD8
         8pSs44+dhKdoJ35aHhIkgbYGGPHsgleO90zGGtpkykQY8GWLoJvORzibEIzZIqciXxUZ
         cw/gGZw9g9gs5wQMUCn+clsfKa5xLUPd4YjBKCn875INd5L2K4LkfDUoL3HOxCET+OPe
         zgrw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766165911; x=1766770711;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject
         :date:message-id:reply-to;
        bh=kbOhKn22cTFMoKpf/GXkxISQsKfNfALH2jWSUuo5nak=;
        b=k2pJbzofXMRln3oui2xUPdbD6LmdlfdYYabqYgdV6K5w8rPC19W7/vZ7vzGy4qHduH
         PFmiLgXCzOFTlijnA2IqQZL9caxMa74mNsqTayLlNtjRrv5iOqCKgDbdY0jyFWgXjdKW
         0kyDkzKm0wxMA+V9OaZ/iCU3qrFW5vYuJW1sNHWF5qT6zdWl1/QYGmIt6ZDqKMyvGThm
         at9DE4rtGpMiBiTaS3EONWz04i2NirBKvOgUwys5IFe85z3LUSDoGx/eG4W10KuWWyWw
         2Q9Ai2hKhTQUHJNg9UDNr4i3IZAegjMGzjoWx8/b4R0V1/dMTziR7xSoMttWXXOmV933
         cm9A==
X-Forwarded-Encrypted: i=1; AJvYcCU3ffDb15S6tAj3OODIvUf1HY8utCuSRxF+e+Z4ojpUy/NFZU8rQWfbtDINruI/M8xJR3mxuZMmePU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxQZzMdb9I2R9oqnZ26lNW5h1xiZxJQO5isyRKT9b4InRrb1XMN
	cBsjuh5JBfA8Y1yHhGRNIgTfy+JBGvZ0ioGToLMRGPyXECT7hQ3LzNbjSOIJ4Ktn+ZOTNA48wq6
	Gb8lYMQ==
X-Google-Smtp-Source: AGHT+IFwzWgtPptIOyQJLby5S982+3QC2rN4V2KVy1J/lj/jLP6cxRNrCIT8QnhPtZST1lAtZV6zpA10OhY=
X-Received: from pfbfb38.prod.google.com ([2002:a05:6a00:2da6:b0:76b:f0d4:ac71])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:140e:b0:7ff:885f:9c2a
 with SMTP id d2e1a72fcca58-7ff885fa2d7mr3264079b3a.12.1766165910740; Fri, 19
 Dec 2025 09:38:30 -0800 (PST)
Date: Fri, 19 Dec 2025 09:38:29 -0800
In-Reply-To: <dbe68678-0bc4-483f-aef3-e4c7462bcaff@vates.tech>
Mime-Version: 1.0
References: <20251219010131.12659-1-ariadne@ariadne.space> <dbe68678-0bc4-483f-aef3-e4c7462bcaff@vates.tech>
Message-ID: <aUWNlTAmbSTXsBDE@google.com>
Subject: Re: [PATCH] x86/CPU/AMD: avoid printing reset reasons on Xen domU
From: Sean Christopherson <seanjc@google.com>
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Ariadne Conill <ariadne@ariadne.space>, linux-kernel@vger.kernel.org, 
	mario.limonciello@amd.com, darwi@linutronix.de, sandipan.das@amd.com, 
	kai.huang@intel.com, me@mixaill.net, yazen.ghannam@amd.com, riel@surriel.com, 
	peterz@infradead.org, hpa@zytor.com, x86@kernel.org, tglx@linutronix.de, 
	mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, 
	xen-devel@lists.xenproject.org, stable@vger.kernel.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Dec 19, 2025, Teddy Astie wrote:
> Le 19/12/2025 =C3=A0 02:04, Ariadne Conill a =C3=A9crit=C2=A0:
> > Xen domU cannot access the given MMIO address for security reasons,
> > resulting in a failed hypercall in ioremap() due to permissions.
> >
> > Fixes: ab8131028710 ("x86/CPU/AMD: Print the reason for the last reset"=
)
> > Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
> > Cc: xen-devel@lists.xenproject.org
> > Cc: stable@vger.kernel.org
> > ---
> >   arch/x86/kernel/cpu/amd.c | 6 ++++++
> >   1 file changed, 6 insertions(+)
> >
> > diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
> > index a6f88ca1a6b4..99308fba4d7d 100644
> > --- a/arch/x86/kernel/cpu/amd.c
> > +++ b/arch/x86/kernel/cpu/amd.c
> > @@ -29,6 +29,8 @@
> >   # include <asm/mmconfig.h>
> >   #endif
> >
> > +#include <xen/xen.h>
> > +
> >   #include "cpu.h"
> >
> >   u16 invlpgb_count_max __ro_after_init =3D 1;
> > @@ -1333,6 +1335,10 @@ static __init int print_s5_reset_status_mmio(voi=
d)
> >   	if (!cpu_feature_enabled(X86_FEATURE_ZEN))
> >   		return 0;
> >
> > +	/* Xen PV domU cannot access hardware directly, so bail for domU case=
 */
> > +	if (cpu_feature_enabled(X86_FEATURE_XENPV) && !xen_initial_domain())
> > +		return 0;
> > +
> >   	addr =3D ioremap(FCH_PM_BASE + FCH_PM_S5_RESET_STATUS, sizeof(value)=
);
> >   	if (!addr)
> >   		return 0;
>=20
> Such MMIO only has a meaning in a physical machine, but the feature
> check is bogus as being on Zen arch is not enough for ensuring this.
>=20
> I think this also translates in most hypervisors with odd reset codes
> being reported; without being specific to Xen PV (Zen CPU is
> unfortunately not enough to ensuring such MMIO exists).
>=20
> Aside that, attempting unexpected MMIO in a SEV-ES/SNP guest can cause
> weird problems since they may not handled MMIO-NAE and could lead the
> hypervisor to crash the guest instead (unexpected NPF).

IMO, terminating an SEV-ES+ guest because it accesses an unknown MMIO range=
 is
unequivocally a hypervisor bug.  The right behavior there is to configure a
reserved NPT entry to reflect the access into the guest as a #VC.


From xen-devel-bounces@lists.xenproject.org Fri Dec 19 19:43:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 19:43:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1191062.1511166 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWgNE-0000DS-9W; Fri, 19 Dec 2025 19:42:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1191062.1511166; Fri, 19 Dec 2025 19:42:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWgNE-0000DL-6S; Fri, 19 Dec 2025 19:42:48 +0000
Received: by outflank-mailman (input) for mailman id 1191062;
 Fri, 19 Dec 2025 19:42:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=S3ad=6Z=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vWgNC-0000CG-OO
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 19:42:46 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e3cfac1e-dd12-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 20:42:45 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b7277324204so363026766b.0
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 11:42:45 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b90f53c16sm2929507a12.1.2025.12.19.11.42.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Dec 2025 11:42:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e3cfac1e-dd12-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766173364; x=1766778164; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=sJVTBdtfWI3hhuPfY2fsP6x9zqHGSithUg07Fh9Kulk=;
        b=e+lylv2UfJFOj/ZrnlqqkqxrvNwSEiLWaKnGMUy9wjPKAZ+l7dK/BaA47O7CO9mC8Y
         zlA5KUXdgvchiCouKy2nY1gMhHVNJaN5QRK+F57aWVHxeUNRFi4giluC44ZFG600RXyH
         wY26C3jrV0VtxTqj/UnV4AknKUNIqnOZ4w/V3y/iDq0WL2HHZTER06XIVulXCu9vpzjY
         JEGdyL2RCq4HUBmKOD+BxezwgO9cZVQSJ6A80rv/8yf0bwMy2STwYeQem3PsxANw2ZMo
         ZRMQyBnbdsEgcYvfytKwYrf16PN7GC79xRs1wCDfjD14Obvb8msLlVKiymtPZ6QcjGJ0
         pjIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766173364; x=1766778164;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=sJVTBdtfWI3hhuPfY2fsP6x9zqHGSithUg07Fh9Kulk=;
        b=SGnG8fA/tDbbKJjuaQT+TXwqhh0wZLJGrD//sz1AGJchWXh9UjE+KXgX2QNA1k18lO
         oFcKwWx1wGbXMHjHOyjS4Fbnk1jxl5AlDXQ10NFc851hu3T8+FUVBjgLvgASxzuGOWTu
         Ftxq67O4j0MWRC/FSi9sB6eeoo/kgCWr5UVvcTycJS754MnxF0eVTSuQVjCxatEufAJb
         YiAkPFVn7JWZx87MEEKYcVogp2dj2LJ3R3QQOqQdcMhMTRvxHqUCGpkT1IYsn0clA3v3
         YeeQYaFSY+6FCU3zEJw+y71dFoMfHUhYCQzhMllB6dAqvDF4GcYHxi9Sr3ElG+EYFIQ/
         PW4w==
X-Forwarded-Encrypted: i=1; AJvYcCWTPDhtc/xJ0by/6OLuM84NU6GVV+G2M6HCbYkLbBb8UCVDLYqK1gYbER2K60OkEEp2k9jYlUqLXAA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxmQKxFb3WBzA5dgPOljbQ2JAOF6p0nR7n6j3cfIWzt+btWGnk+
	fvaJrgEKlAL7VxjKflIoN81tXcD4+GfnCfOOnN5GTh8vgNP3Py3zPZH1
X-Gm-Gg: AY/fxX7ftM3lEQWSt2QhFT5iDDzYurydGD4DT18B2gSXo0c05W+i3ySD2Lepea5XgQC
	vJiksCLDGdKB64urfjEpnOGLX6NO+JHDFC9tvgLyTr87JIoAmwpyrZkMeAFBifSdLLZfBPlwJq4
	HJJl4etFufWIAlWnzpCaU2We6ldbdLErR8XU+Nq0SaLVezCG5R6zzIEEKDTz1JDQtaOOOK4DfoW
	+p9j2DXFPzA7e6oSs98rXMvw/QIw3ud/82elH+V6pA9dKhXDgEzYdLEay2uguDRayBKlXwP90oA
	D/rwUGkWkH24i82zspB3LWFhpDVuRrFUriWEL3/8vM+F1v7Gq4jOndUUCb0CpPv/7kZuZcoQGvi
	vuYPWGaEoGxwaQVfL4tEJ6ScO42yj7WuiZiEMRps39hUQLWbYevD80yDUZBwMVOQT4iBjEhmMin
	zKvIco4fq8BcjH1Zws70xBK5W2TeThhxIvK2f5jO+uhOuaElhTXkeuC1fLdqbHjfd0
X-Google-Smtp-Source: AGHT+IEe8RpKAADCXRhkXWgNY+tJ7IrnC1l0rpDxkVZ0ACgyTOxTki3DBMTKJcqDdQnI8vMDoNIn7Q==
X-Received: by 2002:a17:907:97c2:b0:b73:4b22:19c5 with SMTP id a640c23a62f3a-b803722a7f4mr399916266b.44.1766173364370;
        Fri, 19 Dec 2025 11:42:44 -0800 (PST)
Message-ID: <622c0143-a155-467f-a6d4-0b1d31d3b47b@gmail.com>
Date: Fri, 19 Dec 2025 20:42:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] xen/riscv: introduce vSBI extension framework
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1765888425.git.oleksii.kurochko@gmail.com>
 <dc1045d1831908678a1e4a79571adab2ab362ef6.1765888425.git.oleksii.kurochko@gmail.com>
 <870f4a16-eda3-48ae-9d67-f496cf6493b1@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <870f4a16-eda3-48ae-9d67-f496cf6493b1@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/18/25 2:52 PM, Jan Beulich wrote:
> On 17.12.2025 17:54, Oleksii Kurochko wrote:
>> --- /dev/null
>> +++ b/xen/arch/riscv/vsbi/core.c
>> @@ -0,0 +1,56 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/sched.h>
>> +
>> +#include <asm/processor.h>
>> +#include <asm/sbi.h>
>> +#include <asm/vsbi.h>
>> +
>> +extern const struct vsbi_ext _svsbi_exts[], _evsbi_exts[];
>> +
>> +void __init check_vsbi_ext_ranges(void)
>> +{
>> +    for ( const struct vsbi_ext *a = _svsbi_exts; a != _evsbi_exts; a++ )
>> +        for ( const struct vsbi_ext *b = a + 1; b != _evsbi_exts; b++ )
> Like here, ...
>
>> +            if ( !(a->eid_end < b->eid_start || b->eid_end < a->eid_start) )
>> +                panic("EID range overlap detected: "
>> +                      "%s:[#%#lx..#%#lx] vs %s:[#%#lx..#%#lx]\n",
>> +                      a->name, a->eid_start, a->eid_end,
>> +                      b->name, b->eid_start, b->eid_end);
>> +}
>> +
>> +const struct vsbi_ext *vsbi_find_extension(unsigned long eid)
>> +{
>> +    const struct vsbi_ext *ext;
>> +
>> +    for ( ext = _svsbi_exts; ext != _evsbi_exts; ext++ )
> ... declare "ext" inside the for()?

I decided that it would be better then the following alignment of for loop:
     for ( const struct vsbi_ext *ext = _svsbi_exts;
           ext != _evsbi_exts;
           ext++ )

I am okay to change that to be aligned with the code above.

>
>> +        if ( (eid >= ext->eid_start) && (eid <= ext->eid_end) )
>> +            return ext;
>> +
>> +    return NULL;
>> +}
>> +
>> +void vsbi_handle_ecall(struct vcpu *vcpu, struct cpu_user_regs *regs)
>> +{
>> +    const unsigned long eid = regs->a7;
>> +    const unsigned long fid = regs->a6;
>> +    const struct vsbi_ext *ext = vsbi_find_extension(eid);
>> +    int ret;
>> +
>> +    if ( ext )
>> +        ret = ext->handler(vcpu, eid, fid, regs);
>> +    else
>> +    {
>> +        printk("Unsupported Guest SBI EID #%#lx, FID #%lu\n", eid, regs->a1);
> As before - anything guest triggered must not cause log spam issues.
> Minimally you want to use XENLOG_GUEST in such cases, but I think you
> really mean gprintk() here.
>
> A connected question then arises: Why is "vcpu" being passed in, when
> the sole caller only ever passes "current"? (The connection here is
> that gprintk() also uses current, and hence would be wrong to use when
> vcpu != current.) Same question goes for the ->handler() hook.

Good question. I tried to keep this more generic, but after your comment I
cannot find a case where this argument is actually used with something
other than|current in downstream code.|

Let’s drop the|vcpu| argument for now, and if it is needed in the future,
we can reintroduce it then.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Dec 19 20:04:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 20:04:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1191087.1511176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWgiN-00031S-VW; Fri, 19 Dec 2025 20:04:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1191087.1511176; Fri, 19 Dec 2025 20:04:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWgiN-00031L-Rm; Fri, 19 Dec 2025 20:04:39 +0000
Received: by outflank-mailman (input) for mailman id 1191087;
 Fri, 19 Dec 2025 20:04:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=S3ad=6Z=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vWgiL-00031F-Mq
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 20:04:37 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f0d60e7f-dd15-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 21:04:35 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-640a0812658so3515198a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 12:04:35 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037ab7f86sm305671666b.17.2025.12.19.12.04.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Dec 2025 12:04:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f0d60e7f-dd15-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766174675; x=1766779475; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=LYW+bBsR1n39OCWKbHPKkqUI5UNiMDXmK2/vyB4Gs8s=;
        b=ADevKGgnZ54Np0dL7bgJ1M+tDE1jLTsrQ+RzrW7RuFLgh9FpbCfppBaF1n55/BrgGc
         fH957FkgYyflOj9Rof4WHIanfuaDJ3I2VtOSZTF0Ng5j6Ej7Hh6g0llZafRzX+QAtQvG
         vFQIvyC2fQrdT7WY4DjpLOvl7vYln9OGVz6nPcMATAlDzMpqGs8hOtGBgWQorD0lJAc6
         TB+4J+LAhUozgWRenxHakaHltX3fL/+oeAyiMdlVxfbdrPtFWw0SmqTs/+twdmcaj9iY
         eR7q9xwmTicHH/FxJptNXKku7IDGeUiIp8AY+rsNU98QYYJ3Gg6CsJuuX4cdqATeYOn5
         KiLA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766174675; x=1766779475;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=LYW+bBsR1n39OCWKbHPKkqUI5UNiMDXmK2/vyB4Gs8s=;
        b=t8G3rhzjrx5Go2XKMvQeqYstO+noJr7ukT3OkDjCze6VnrxN5bJmcQKGqRJ0yW3dpF
         LmN2H+I+Kz2RJqlbAkcUOcvuxuZJ4laGifIg7Pi6LKz91DeWe78p1eY1Xq1VrVZF+C6W
         dobwYDoyJ88bI/ykQ97iKpz6VyDwjpCD2mhuiOuqw0htS29I2fgSie8Wzu9bbnLELaDZ
         TP+OHud80jsS7/I58lgc6IJajcx6YRqHRmBRbYcgcrFKAkQVVM2ubmagRrdAwZbMzDGv
         RDjOVWJOdAqLRevtieUk1SoS9FL9tpxQJNAK0W1dsNfSgjr3H8rMKC7so7YeD7XIlag0
         TEUQ==
X-Forwarded-Encrypted: i=1; AJvYcCWcMdgKeflSF28oHWJpiDBKqRWqAsptei37lYW8IsAXzn4UVPx07Hy9tSBk2yUN7kwt+w7O1DUXaD8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywjj6oNR1rNoVdeHhgl0YkHkw9gLieldteOQM3e6iNU8E0/Mchi
	OzwPPbpPVOoMyDQ02TZci4mVXZqo+x/GQtDCJF18WGnccP+fM9s2QnkU
X-Gm-Gg: AY/fxX55KG5QRmvRYqd/71ManbmGYPqBZM6sgBYMp/mc7kp6rtY7oUdaWD1bfVx0pNn
	gstyFtG4+1PqrJz+ZZNnO6i4SXeMootMeyFeAIQJZCmLExXyWcfWKLZ4inRwacSxk2+TkVHRLRW
	kxhw8x1XPzyknlCs7JWE/8bsfqS20LWk2gLLmcSDrqVpqvIb/GAMTaZDKz/82DT8OyE/umXX/Dl
	iWfpSrYc4+UPWDM8GfZ8ee3kHpNMDVuHSYCeiGZFIRNcGjY3QOatrJgUkYQoywUhd0PUrvwUv1Z
	PGdGeo1KslpNdT/E3Nh7McHj9vyG//X1gFlN+bsdjjUiR7qmoU53EPNQS8AD1zzI7rVtN2CR95w
	t3E7CevTZv9G3XLMvbK6YNU52NhbKa5dH2weZign55SqTs3lBU2gL+dgIacDvY2CFk3kZJjIwpJ
	HHiHpuiPJn8fo3MBV0XKdD00aKWDYHPuwk4QClOuVLloyNtLn7CmN+yeBfDmtUfeAV
X-Google-Smtp-Source: AGHT+IE6da0/jNBD8ZZsMrHwNXWArM2Wk1tisBL0gYcaqxT3ipIXDUBKme5m0H4LspeiW4uH1UKv+w==
X-Received: by 2002:a17:907:c994:b0:b80:40d2:9652 with SMTP id a640c23a62f3a-b8040d296a2mr144864266b.65.1766174674572;
        Fri, 19 Dec 2025 12:04:34 -0800 (PST)
Message-ID: <dddbd311-99a2-44b1-926e-f3859ff936dc@gmail.com>
Date: Fri, 19 Dec 2025 21:04:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen/riscv: add RISC-V legacy SBI extension support
 for guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1765888425.git.oleksii.kurochko@gmail.com>
 <df7a7e94fba79265138d6cc8d23b1f6b958f5bd5.1765888425.git.oleksii.kurochko@gmail.com>
 <08105722-0920-462a-aeba-a36f8044a5dc@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <08105722-0920-462a-aeba-a36f8044a5dc@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 12/18/25 3:20 PM, Jan Beulich wrote:
> On 17.12.2025 17:54, Oleksii Kurochko wrote:
>> This commit adds support for legacy SBI extensions (version 0.1) in Xen
>> for guest domains.
>>
>> The changes include:
>> 1. Define all legacy SBI extension IDs (0x0 to 0x8) for better clarity and
>>     completeness.
>> 2. Implement handling of legacy SBI extensions, starting with support for
>>     SBI_EXT_0_1_CONSOLE_{PUT,GET}CHAR.
> I can't spot any actual support for GETCHAR.
>
>> --- /dev/null
>> +++ b/xen/arch/riscv/vsbi/legacy-extension.c
>> @@ -0,0 +1,65 @@
>> +
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/console.h>
>> +#include <xen/lib.h>
>> +#include <xen/sched.h>
>> +
>> +#include <asm/processor.h>
>> +#include <asm/vsbi.h>
>> +
>> +static void vsbi_print_line(char c)
> Misleading function name? The parameter doesn't fit the name, and ...

It was called only because of ...

>
>> +{
>> +    struct domain *cd = current->domain;
> I guess you copied this code from somewhere, but a variable of this type and
> contents wants to be named "currd".
>
>> +    struct domain_console *cons = cd->console;
>> +
>> +    if ( !is_console_printable(c) )
>> +        return;
>> +
>> +    spin_lock(&cons->lock);
>> +    ASSERT(cons->idx < ARRAY_SIZE(cons->buf));
>> +    if ( c != '\n' )
>> +        cons->buf[cons->idx++] = c;
>> +    if ( (cons->idx == (ARRAY_SIZE(cons->buf) - 1)) || (c == '\n') )
>> +    {
>> +        cons->buf[cons->idx] = '\0';
>> +        guest_printk(cd, XENLOG_G_DEBUG "%s\n", cons->buf);
> ... you also only print a line under certain conditions.

... this. (for the same reason as hvm_print_line() which has an argument
'uint32_t *val' but inside function working with chars because of
'char c = *val;')

I will change the name to vsbi_print_char().

>
>> +        cons->idx = 0;
>> +    }
>> +    spin_unlock(&cons->lock);
>> +}
>> +
>> +static int vsbi_legacy_ecall_handler(struct vcpu *vcpu, unsigned long eid,
>> +                                     unsigned long fid,
>> +                                     struct cpu_user_regs *regs)
>> +{
>> +    int ret = 0;
>> +
>> +    switch ( eid )
>> +    {
>> +    case SBI_EXT_0_1_CONSOLE_PUTCHAR:
>> +        vsbi_print_line((char)regs->a0);
> The cast isn't really needed, is it?

No, I think it could be omitted.

>   And just to double-check: The spec demands
> the upper bits to be ignored? (A link to the spec could have been useful, e.g.
> in the cover letter.)

It doesn't mention anything about upper bit for PUTCHAR:
   https://github.com/riscv-non-isa/riscv-sbi-doc/blob/master/src/ext-legacy.adoc#extension-console-putchar-eid-0x01
   (I will add a link to the spec in the cover letter.)
So I assume that they don't care about it. (IIUC your question correctly).

I also checked what OpenSBI does and it just call the following function:
   void sbi_putc(char ch)
   {
	nputs_all(&ch, 1);
   }
in the following way: sbi_putc(regs->a0);


>> +        break;
>> +
>> +    case SBI_EXT_0_1_CONSOLE_GETCHAR:
>> +        ret = SBI_ERR_NOT_SUPPORTED;
>> +        break;
>> +
>> +    default:
>> +        /*
>> +         * TODO: domain_crash() is acceptable here while things are still under
>> +         * development.
>> +         * It shouldn't stay like this in the end though: guests should not
>> +         * be punished like this for something Xen hasn't implemented.
>> +         */
> Question then is why SBI_EXT_0_1_CONSOLE_GETCHAR gets a separate case block.

Because we intentionally do not support|SBI_EXT_0_1_CONSOLE_GETCHAR|,|domain_crash()|
should not be called for it. Currently,|domain_crash()| is used only for debugging
purposes while Xen for RISC-V is still under development. In the future, the
default case should simply return|SBI_ERR_NOT_SUPPORTED|, and
the|SBI_EXT_0_1_CONSOLE_GETCHAR| case block will be removed.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Dec 19 20:34:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 20:34:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1191109.1511186 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWhB5-0006xu-87; Fri, 19 Dec 2025 20:34:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1191109.1511186; Fri, 19 Dec 2025 20:34:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWhB5-0006xn-4N; Fri, 19 Dec 2025 20:34:19 +0000
Received: by outflank-mailman (input) for mailman id 1191109;
 Fri, 19 Dec 2025 20:34:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=S3ad=6Z=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vWhB4-0006xh-4E
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 20:34:18 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 112fc46f-dd1a-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 21:34:07 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-b728a43e410so365449466b.1
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 12:34:07 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037f0b7bcsm319479466b.49.2025.12.19.12.34.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Dec 2025 12:34:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 112fc46f-dd1a-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766176447; x=1766781247; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=RR4GYzAKKe4og/bh9b9xEsR2dGwI9S+rND+baEDC3hc=;
        b=Dxmm44/h1UH6estlBr/TfUm0kvPs6iXK6ksmwAJQ7xfquuEr9OWpvLlmRbp+zPhIM8
         kK5PbHHbsKjOB8S9Q4DdyY4Oo5P1jHU3N/+6q+203uS1Eh4Nh438xnRwpnPbudYRKA8o
         /z4B1O9rNZwNXatorU3EHBXeFDXoUqfPdQPFdRU77J1zoZZOm9LJut3x49mlD6YnMW0B
         YNcOvqozeF3lIqSqNNuxGYCC1+B2rwc1sXPLzLRzRvUxLKPHYZ3fnAfKAJFAPoBZY5z0
         ohPxFf8Ykixz9s0WbvbKC+96N+XZoQKYvlOg9BakyU9dHl4+bVQL7zwLQtwQo7K+qOlJ
         ZaRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766176447; x=1766781247;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=RR4GYzAKKe4og/bh9b9xEsR2dGwI9S+rND+baEDC3hc=;
        b=ak+vL2P15LBbXwiCqrirYW1GAZpkcVqyEj9gYwx3rEgoH5ow1zJuqyPtoVr6AJnQeM
         U7Mg6QsHiVT74LC8citvy14LU0tP0O/2Vpv/2ew5G6f24rv1MVMXcrqGylRBMANgKIJD
         2NoxB/iIj8Laidz2WLAzViLsnlgkh2EprOVeDn/kXP8mw5ZVklGxWpo8wWbJKuzZgp3z
         kAxm3zqa8B7xILfzLwUCkB4e+Xf3fFriytFnEu2CnW+LTAnTkZvwp6G4/3D/mSXejxhv
         qtKep7gC733iMYKyKvs4Pvmiqx8hEfcPkdb+C67OQba+qlC7CjFEYt3VA3hymOz3y2CZ
         MARg==
X-Forwarded-Encrypted: i=1; AJvYcCXegfpMoPv6rGUk3PLZWnU5dlwD24cB1RpNm//Mkjl5TXpkxzfE/67FYhBvJKYo9S5zPSsQsaQzD50=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzy8/1aedtgVMXF0fIh9LmhMuDkjncv47Ow+t8YKrmxHhjeCKV1
	Na0735ZuLD8/nzzXi/oADyPBqZgFSU2XsAxaTXjeDqV9BhgC9Qo6XUVgGKBpjg==
X-Gm-Gg: AY/fxX7/GRH0wUO4+raGsP1Q4sLQcOhC8NZU5vxTwXPSpR9aF094ghhojg2+HfEPQJ2
	dVp3wAoC36a2CLY/m0fsmSkhr/ufOM72eHVdOK19k8QmlzMM52qnu3Y+YLGA3n4ifHH+5mzDnOH
	+YtK6J5+VWXIomEX/8kvWnnR0OmphCLSNGxUjO6XanzpaRW+UCysSZwYInTMzNNIvl+fQLJnuA3
	S3dqxQJRkKoawYFjQynncdtqEWBiL2D7jin98rUP01fveTVWfijbbyfeuNkwj9ZPqO1R1SDdmXn
	6X8Xsja6CWR1riVojUuVgRzm1Ajr0xsE5kWVEZ8lhdGbUNZ28J4B2cc47AFGYriPJpC5A/Vl1i7
	TKCPZgr5jdUXlv1O7U9NiNgEgSbduWLyMivbgaQTeBjXMm/NPZFtI3S/LaRW/wxdCd9YSB475v+
	LNy83cF7Bj2woMIHxBzRfE8w2N270MvluTDSKBiM5QGBj+I9qCB7bhGlAUCPxTVvj2
X-Google-Smtp-Source: AGHT+IEL+EX4hX6fNLtZ02Spt+PqV9L+dA1JCC3EE0Gx22ySrvRRlke8fGy2d6eWUm1829vtUyn/tQ==
X-Received: by 2002:a17:907:1b0f:b0:b73:4fbb:37a8 with SMTP id a640c23a62f3a-b8036eba965mr453390266b.12.1766176446829;
        Fri, 19 Dec 2025 12:34:06 -0800 (PST)
Message-ID: <aac3c5e8-02a8-4463-bba9-d7b5b90c4273@gmail.com>
Date: Fri, 19 Dec 2025 21:34:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] xen/riscv: add RISC-V virtual SBI base extension
 support for guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1765888425.git.oleksii.kurochko@gmail.com>
 <2e42e8ee51badcfa2cb16e3db71fdecaac445bca.1765888425.git.oleksii.kurochko@gmail.com>
 <f5206b63-1f82-4abb-9740-9a0042fbcfb6@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <f5206b63-1f82-4abb-9740-9a0042fbcfb6@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/18/25 3:32 PM, Jan Beulich wrote:
> On 17.12.2025 17:54, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/include/asm/sbi.h
>> +++ b/xen/arch/riscv/include/asm/sbi.h
>> @@ -14,6 +14,10 @@
>>   
>>   #include <xen/cpumask.h>
>>   
>> +#define XEN_SBI_VER_MAJOR 0
>> +#define XEN_SBI_VER_MINOR 2
>> +#define XEN_SBI_IMPID 7
> Are these numbers part of the spec (sorry, lack of a reference makes me wonder,
> plus if that were the case, I'd kind of expect the names to be SBI_XEN_..., not
> XEN_SBI_...)?

XEN_SBI_IMPID is a number defined by the SBI specification:
   https://github.com/riscv-non-isa/riscv-sbi-doc/blob/master/src/ext-base.adoc#sbi-implementation-ids

XEN_SBI_VER_MAJOR and XEN_SBI_VER_MINOR somehow also is a part of the spec, there is
no such defines explicitly, but it is real numbers of the SBI version.

I will rename the defines accordingly:
  - s/XEN_SBI_VER_MAJOR/SBI_XEN_VER_MAJOR
  - s/XEN_SBI_VER_MINOR/SBI_XEN_VER_MINOR
  - s/XEN_SBI_IMPID/SBI_XEN_IMPID

>
>> --- /dev/null
>> +++ b/xen/arch/riscv/vsbi/base-extension.c
>> @@ -0,0 +1,71 @@
>> +
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/lib.h>
>> +#include <xen/sched.h>
>> +#include <xen/version.h>
>> +
>> +#include <asm/processor.h>
>> +#include <asm/sbi.h>
>> +#include <asm/vsbi.h>
>> +
>> +static int vsbi_base_ecall_handler(struct vcpu *vcpu, unsigned long eid,
>> +                                   unsigned long fid,
>> +                                   struct cpu_user_regs *regs)
>> +{
>> +    int ret = 0;
>> +    struct sbiret sbi_ret;
>      ASSERT(eid == SBI_EXT_BASE);
>
>> +    switch ( fid ) {
> Nit: Brace placement.
>
>> +    case SBI_EXT_BASE_GET_SPEC_VERSION:
>> +        regs->a1 = MASK_INSR(XEN_SBI_VER_MAJOR, SBI_SPEC_VERSION_MAJOR_MASK) |
>> +                   XEN_SBI_VER_MINOR;
>> +        break;
>> +    case SBI_EXT_BASE_GET_IMP_ID:
>> +        regs->a1 = XEN_SBI_IMPID;
>> +        break;
>> +    case SBI_EXT_BASE_GET_IMP_VERSION:
>> +        regs->a1 = (xen_major_version() << 16) | xen_minor_version();
>> +        break;
> Along those lines here - are we free to use an arbitrary layout (shifting major by
> 16 bits), or is this mandated by the spec? At least in the latter case, the 16 will
> want to gain a #define.

I would say that we are free to use an arbitrary layout. The specification says:
   The encoding of this version number is specific to the SBI implementation.
(https://github.com/riscv-non-isa/riscv-sbi-doc/blob/master/src/ext-base.adoc#function-get-sbi-implementation-version-fid-2)

So this fully depends on how a specific SBI implementation decides to encode the
version. For Xen, I simply copied the approach used by OpenSBI:
/**
  * OpenSBI 32-bit version with:
  * 1. upper 16-bits as major number
  * 2. lower 16-bits as minor number
  */
#define OPENSBI_VERSION ((OPENSBI_VERSION_MAJOR << 16) | \
			 (OPENSBI_VERSION_MINOR))

Therefore, I think it is fine to keep Xen’s implementation as it is now, without
introducing additional defines.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Dec 19 22:18:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 22:18:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1191159.1511195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWini-0002JY-D3; Fri, 19 Dec 2025 22:18:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1191159.1511195; Fri, 19 Dec 2025 22:18:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWini-0002JR-AY; Fri, 19 Dec 2025 22:18:18 +0000
Received: by outflank-mailman (input) for mailman id 1191159;
 Fri, 19 Dec 2025 22:18:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lTMo=6Z=ariadne.space=ariadne@srs-se1.protection.inumbo.net>)
 id 1vWing-0002JL-PH
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 22:18:16 +0000
Received: from outbound.ci.icloud.com (ci-2002k-snip4-11.eps.apple.com
 [57.103.88.241]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 99f2b714-dd28-11f0-9cce-f158ae23cfc8;
 Fri, 19 Dec 2025 23:18:10 +0100 (CET)
Received: from outbound.ci.icloud.com (unknown [127.0.0.2])
 by p00-icloudmta-asmtp-us-central-1k-60-percent-0 (Postfix) with ESMTPS id
 E379218000AE; Fri, 19 Dec 2025 22:18:06 +0000 (UTC)
Received: from p00-mailws2-866456d649-wmkn7 (unknown [10.168.160.104])
 by p00-icloudmta-asmtp-us-central-1k-60-percent-0 (Postfix) with ESMTPSA id
 1F70418001A0; Fri, 19 Dec 2025 22:18:06 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 99f2b714-dd28-11f0-9cce-f158ae23cfc8
Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ariadne.space; s=sig1; bh=+osd5Zf0RTz296wXlcH2LnPFa+dQLQn9W8hzJqFiWFQ=; h=To:From:Subject:Date:Message-id:Content-Type:MIME-Version:x-icloud-hme; b=PCbVXRHJ/gXfX1b4F85VVx6rUEZU+5S5/qCDJEPrgOe/eysdB4QZNSFwiLQAxmL829Ef7iaatYvntVewblWqbdVpH2i8V7VBR2GADUIfXUqef6Rrhl0+W7J4ElPdtu1UzZTFp5xgC1FJdOA2YE03dYVMFFc23+HgRCko1xoXpPPaFQvqG+oSAy3x7rSL2P4fBLYKl23N3Z3wPhGThKX/KhBtf1uvU++Oea7q7UpWkE55SM4CwDgOLXNlVnG4l8v2w/aONdC0Lxit1l0ZWG9f5JExOt8Gg+winYi+Sos8KQI/SqU/Hhnf8ZdZ1S3XVUpJQJjz4wvaopU0uTSt4YBLHA==
mail-alias-created-date: 1688796967087
To: Sean Christopherson <seanjc@google.com>
Cc: Borislav Petkov <bp@alien8.de>,
 linux-kernel@vger.kernel.org,
 mario.limonciello@amd.com,
 darwi@linutronix.de,
 sandipan.das@amd.com,
 kai.huang@intel.com,
 me@mixaill.net,
 yazen.ghannam@amd.com,
 riel@surriel.com,
 peterz@infradead.org,
 hpa@zytor.com,
 x86@kernel.org,
 tglx@linutronix.de,
 mingo@redhat.com,
 dave.hansen@linux.intel.com,
 xen-devel@lists.xenproject.org,
 stable@vger.kernel.org
From: Ariadne Conill <ariadne@ariadne.space>
Subject: =?utf-8?B?UmU6IFtQQVRDSF0geDg2L0NQVS9BTUQ6IGF2b2lkIHByaW50aW5nIHJlc2V0?=
 =?utf-8?B?IHJlYXNvbnMgb24gWGVuIGRvbVU=?=
Date: Fri, 19 Dec 2025 22:18:06 +0000 (GMT)
X-Mailer: iCloud MailClient2546Build28 MailServer2502B13.7c5914c7dad3
Message-id: <4ae8b46d-a6c0-45df-8a65-bfdb2f32697c@me.com>
Content-Type: multipart/alternative; boundary=Apple-Webmail-42--edc0375d-e504-49bd-8788-ebb7f32c0c3e
MIME-Version: 1.0
In-Reply-To: <aUV4u0r44V5zHV5f@google.com>
References: <20251219010131.12659-1-ariadne@ariadne.space>
 <7C6C14C2-ABF8-4A94-B110-7FFBE9D2ED79@alien8.de>
 <aUV4u0r44V5zHV5f@google.com>
X-Proofpoint-ORIG-GUID: 0hlVhL4e5sjq8N1xbI0E99qSYcqu6k3S
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE5MDE4NiBTYWx0ZWRfX9OZfVdqhdMh4
 sic2mSmWNsS3eKbD/G1Z4nytaR+P/GbseYWbf86Snd99Bxk9zb0Edijw0kw/L82b+DiRyLUhb/K
 plWl/G1+qETivVk5WKEzTk6eVRjlNpWf7X8uKz1IfloYzi7FOk7H08VVxQtj1EiZfg3SWpI3DyP
 ECiaa8LFVkHXrzF8Umx+yDe8qmbTfE3DG9KDH0kkCKeOwzN0/x5r61PbTBZ3E530DrUn7gRY14r
 bvtYBMUVG+bnsJNC8wAOliLFOAAI8S4/7KyncGBd006Mz5I98AQXhVKdOCJyCwPlNvagd2222Kq
 zuycUPDtZW47urSEipf
X-Authority-Info: v=2.4 cv=OaaVzxTY c=1 sm=1 tr=0 ts=6945cf20 cx=c_apl:c_pps
 a=T0mU/zd77MEem+zjWCBf6Q==:117 a=MKtGQD3n3ToA:10 a=wP3pNCr1ah4A:10
 a=5KLPUuaC_9wA:10 a=VkNPw1HP01LnGYTKEx00:22 a=kmYkUENqAAAA:8 a=1XWaLZrsAAAA:8
 a=cWRNjhkoAAAA:8 a=VwQbUJbxAAAA:8 a=KAvpD4PgdfPX3it7qZcA:9 a=QEXdDO2ut3YA:10
 a=1YVGi5tgGHFMkX38AGwA:9 a=8fbitOLmDIUjEh3D:21 a=_W_S_7VecoQA:10
 a=lqcHg5cX4UMA:10 a=p9kz6gysRiz6SGr9lVkz:22 a=sVa6W5Aao32NNC1mekxh:22
X-Proofpoint-GUID: 0hlVhL4e5sjq8N1xbI0E99qSYcqu6k3S
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-12-19_07,2025-12-19_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 clxscore=1030
 spamscore=0 adultscore=0 suspectscore=0 phishscore=0 bulkscore=0
 malwarescore=0 mlxscore=0 mlxlogscore=946 classifier=spam authscore=0
 adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001
 definitions=main-2512190186
X-JNJ: AAAAAAABlsJn4ryQjkkOOaHphaMlaJShFydw9fDk1r7YdhmQR+uRZEmR+8E2ST8puW37QBrtVAaYhCRCnaCQnmyjoxyXb0NeyDNPvumnt16BYkf3vV9vgsPwJXHQlxcqpAzCs4Vh4G8SdTezHKHNw/OqL1iozdYpgH+6c5ZPw9jIOzwlMRgTCTHP1otd8dqiUtTxxEOts1PpVttG7a11+kneCV5vSi/tSXcqblfBHsj8FFaWVC6HBDI+YbLqPd3oEbOyVeXpR2x3OMt3KPR44rLKvzc2F6TWDbhbNBGV5t23xZaXK4z5bCcrg3rDq2XclH8DMq4jB+rmP8jnJXVweOWQ9G1dXZp8leZwVWSV0BTjZsJ4Zpmj5hAfs3ZlfAVqRHFs8GXzInitLV46khs8+aY0sD7YUABi25p0X1Ktrs+f4qM5nvz5+vW7eOFhF5awZ5QnHQNegKqn+X18vhOtazuiJPtSnE5isWdVc7T4SkhVpLf/pQE5QJTD/ndotFuzwFw4NEUm4jPDnaH8GlU2nlUtzba0uEEy8D2govn2gxZd7wAQNUO7JgrEB773WvyWpM6Jf+GBjaDrYsjcrIfKZ1ITaxYET+eErbsFdsJ4ZzhOQalVXBZorWz8hwq4dVIaWYfh0GwCMeMcpZaFNla/A/mUuOdonAxhic6luQCz+aY+ltfQUKC213O3IUyQ5i0bgb7x3Vadd0lNDt6/JBcVRi5UroxPC8fzrA20qPFX4sCtwnq+fXSR9qzM5PUHC531qI+5gA285CT30eADVSxQ92XsiDpKyquGV/BHBXQZSS3PiR+CgZxpxASfqwo0C0onVheWcRY6O9Lq2K6GpfJrY91L1Y3pzWUz1pcut038sLBGegbGkhuUY1TH5A==


--Apple-Webmail-42--edc0375d-e504-49bd-8788-ebb7f32c0c3e
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
    charset=utf-8;
    format=flowed

Hi, On Dec 19, 2025, at 8:09 AM, Sean Christopherson <seanjc@google.com> w=
rote: On Fri, Dec 19, 2025, Borislav Petkov wrote: On December 19, 2025 1:=
01:31 AM UTC, Ariadne Conill <ariadne@ariadne.space> wrote: >Xen domU cann=
ot access the given MMIO address for security reasons, >resulting in a fai=
led hypercall in ioremap() due to permissions. Why does that matter though=
? Ah, because set_pte() assumes success, and so presumably the failed hype=
rcall goes unnoticed and trying to access the MMIO #PFs due to !PRESENT ma=
pping. Yes, which results in the guest panicing on Zen platforms. >Fixes: =
ab8131028710 ("x86/CPU/AMD: Print the reason for the last reset") >Signed-=
off-by: Ariadne Conill <ariadne@ariadne.space> >Cc: xen-devel@lists.xenpro=
ject.org >Cc: stable@vger.kernel.org >--- > arch/x86/kernel/cpu/amd.c | 6 =
++++++ > 1 file changed, 6 insertions(+) > >diff --git a/arch/x86/kernel/c=
pu/amd.c b/arch/x86/kernel/cpu/amd.c >index a6f88ca1a6b4..99308fba4d7d 100=
644 >--- a/arch/x86/kernel/cpu/amd.c >+++ b/arch/x86/kernel/cpu/amd.c >@@ =
-29,6 +29,8 @@ > # include <asm/mmconfig.h> > #endif > >+#include <xen/xen=
.h> >+ > #include "cpu.h" > > u16 invlpgb_count_max __ro_after_init =3D 1;=
 >@@ -1333,6 +1335,10 @@ static __init int print_s5_reset_status_mmio(void=
) > if (!cpu_feature_enabled(X86_FEATURE_ZEN)) > return 0; > >+ /* Xen PV =
domU cannot access hardware directly, so bail for domU case */ Heh, Xen on=
 Zen crime. >+ if (cpu_feature_enabled(X86_FEATURE_XENPV) && !xen_initial_=
domain()) >+ return 0; >+ > addr =3D ioremap(FCH_PM_BASE + FCH_PM_S5_RESET=
_STATUS, sizeof(value)); > if (!addr) > return 0; Sean, looka here. The ot=
her hypervisor wants other checks. Time to whip out the X86_FEATURE_HYPERV=
ISOR check. LOL, Ariadne, be honest, how much did Boris pay you? :-D Nothi=
ng :) At Edera we have been running with this patch for a few months, I ju=
st forgot to upstream it. I was reminded of this patch when an Alpine user=
 opened a bug[0] demonstrating the same behavior on 6.18. [0]: https://git=
lab.alpinelinux.org/alpine/aports/-/issues/17789 Jokes aside, I suppose I'=
m fine adding a HYPERVISOR check, but at the same time, how is this not a =
Xen bug? Refusing to create a mapping because the VM doesn't have a device=
 defined at a given GPA is pretty hostile behavior for a hypervisor. I thi=
nk it would be better to fix this in a more generic way if we can. Ariadne
--Apple-Webmail-42--edc0375d-e504-49bd-8788-ebb7f32c0c3e
Content-Type: multipart/related;
    type="text/html";
    boundary=Apple-Webmail-86--edc0375d-e504-49bd-8788-ebb7f32c0c3e


--Apple-Webmail-86--edc0375d-e504-49bd-8788-ebb7f32c0c3e
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
    charset=utf-8;

<html><body><div><div>Hi,</div><div><br></div><blockquote type=3D"cite"><div>On Dec 19=
, 2025, at 8:09 AM, Sean Christopherson &lt;seanjc@google.com&gt; wrote:</=
div><div><br></div><div><br></div><div><div><div>On Fri, Dec 19, 2025, Bor=
islav Petkov wrote:</div><blockquote type=3D"cite"><div>On December 19, 20=
25 1:01:31 AM UTC, Ariadne Conill &lt;ariadne@ariadne.space&gt; wrote:</di=
v><div>&gt;Xen domU cannot access the given MMIO address for security reas=
ons,</div><div>&gt;resulting in a failed hypercall in ioremap() due to per=
missions.</div></blockquote><div><br></div><div>Why does that matter thoug=
h?  Ah, because set_pte() assumes success, and so</div><div>presumably the=
 failed hypercall goes unnoticed and trying to access the MMIO</div><div>#=
PFs due to !PRESENT mapping.</div></div></div></blockquote><div><br></div>=
<div>Yes, which results in the guest panicing on Zen platforms.</div></div=
><div><blockquote type=3D"cite"><div><div><div><br></div><blockquote type=3D=
"cite"><div>&gt;Fixes: ab8131028710 ("x86/CPU/AMD: Print the reason for th=
e last reset")</div><div>&gt;Signed-off-by: Ariadne Conill &lt;ariadne@ari=
adne.space&gt;</div><div>&gt;Cc: <a href=3D"mailto:xen-devel@lists.xenproj=
ect.org">xen-devel@lists.xenproject.org</a></div><div>&gt;Cc: <a href=3D"m=
ailto:stable@vger.kernel.org">stable@vger.kernel.org</a></div><div>&gt;---=
</div><div>&gt; arch/x86/kernel/cpu/amd.c | 6 ++++++</div><div>&gt; 1 file=
 changed, 6 insertions(+)</div><div>&gt;</div><div>&gt;diff --git a/arch/x=
86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c</div><div>&gt;index a6f88c=
a1a6b4..99308fba4d7d 100644</div><div>&gt;--- a/arch/x86/kernel/cpu/amd.c<=
/div><div>&gt;+++ b/arch/x86/kernel/cpu/amd.c</div><div>&gt;@@ -29,6 +29,8=
 @@</div><div>&gt; # include &lt;asm/mmconfig.h&gt;</div><div>&gt; #endif<=
/div><div>&gt; </div><div>&gt;+#include &lt;xen/xen.h&gt;</div><div>&gt;+<=
/div><div>&gt; #include "cpu.h"</div><div>&gt; </div><div>&gt; u16 invlpgb=
_count_max __ro_after_init =3D 1;</div><div>&gt;@@ -1333,6 +1335,10 @@ sta=
tic __init int print_s5_reset_status_mmio(void)</div><div>&gt; 	if (!cpu_f=
eature_enabled(X86_FEATURE_ZEN))</div><div>&gt; 		return 0;</div><div>&gt;=
 </div><div>&gt;+	/* Xen PV domU cannot access hardware directly, so bail =
for domU case */</div></blockquote><div><br></div><div>Heh, Xen on Zen cri=
me.</div><div><br></div><blockquote type=3D"cite"><div>&gt;+	if (cpu_featu=
re_enabled(X86_FEATURE_XENPV) &amp;&amp; !xen_initial_domain())</div><div>=
&gt;+		return 0;</div><div>&gt;+</div><div>&gt; 	addr =3D ioremap(FCH_PM_B=
ASE + FCH_PM_S5_RESET_STATUS, sizeof(value));</div><div>&gt; 	if (!addr)</=
div><div>&gt; 		return 0;</div><div><br></div><div>Sean, looka here. The o=
ther hypervisor wants other checks.</div><div><br></div><div>Time to whip =
out the X86_FEATURE_HYPERVISOR check.</div></blockquote><div><br></div><di=
v>LOL, Ariadne, be honest, how much did Boris pay you?  :-D</div></div></d=
iv></blockquote><div><br></div><div>Nothing :)</div><div><br></div><div>At=
 Edera we have been running with this patch for a few months, I just forgo=
t to upstream it.</div><div><br></div><div>I was reminded of this patch wh=
en an Alpine user opened a bug[0] demonstrating the same behavior on 6.18.=
</div><div><br></div><div>[0]:&nbsp;<a rel=3D"noopener noreferrer" href=3D=
"https://gitlab.alpinelinux.org/alpine/aports/-/issues/17789">https://gitl=
ab.alpinelinux.org/alpine/aports/-/issues/17789</a><br></div></div><div><b=
lockquote type=3D"cite"><div><div><div><br></div><div>Jokes aside, I suppo=
se I'm fine adding a HYPERVISOR check, but at the same time,</div><div>how=
 is this not a Xen bug?  Refusing to create a mapping because the VM doesn=
't</div><div>have a device defined at a given GPA is pretty hostile behavi=
or for a hypervisor.</div></div></div></blockquote></div><div><br></div><d=
iv>I think it would be better to fix this in a more generic way if we can.=
</div><div><br></div><div>Ariadne</div></body></html>
--Apple-Webmail-86--edc0375d-e504-49bd-8788-ebb7f32c0c3e--

--Apple-Webmail-42--edc0375d-e504-49bd-8788-ebb7f32c0c3e--



From xen-devel-bounces@lists.xenproject.org Fri Dec 19 23:14:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 23:14:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1191189.1511210 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWjgH-000185-GV; Fri, 19 Dec 2025 23:14:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1191189.1511210; Fri, 19 Dec 2025 23:14:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWjgH-00017y-CJ; Fri, 19 Dec 2025 23:14:41 +0000
Received: by outflank-mailman (input) for mailman id 1191189;
 Fri, 19 Dec 2025 23:14:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=4//z=6Z=alien8.de=bp@srs-se1.protection.inumbo.net>)
 id 1vWjgG-00017s-9i
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 23:14:40 +0000
Received: from mail.alien8.de (mail.alien8.de [2a01:4f9:3051:3f93::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7cf457cf-dd30-11f0-9cce-f158ae23cfc8;
 Sat, 20 Dec 2025 00:14:37 +0100 (CET)
Received: from localhost (localhost.localdomain [127.0.0.1])
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id 2F58340E0200; 
 Fri, 19 Dec 2025 23:14:35 +0000 (UTC)
Received: from mail.alien8.de ([127.0.0.1])
 by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id goW8WhbuMwbl; Fri, 19 Dec 2025 23:14:31 +0000 (UTC)
Received: from rn.tnic (unknown [160.86.253.35])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest
 SHA256) (No client certificate requested)
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with UTF8SMTPSA id
 3038840E016C; Fri, 19 Dec 2025 23:14:10 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7cf457cf-dd30-11f0-9cce-f158ae23cfc8
X-Virus-Scanned: Debian amavisd-new at mail.alien8.de
Authentication-Results: mail.alien8.de (amavisd-new); dkim=pass (4096-bit key)
	header.d=alien8.de
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8;
	t=1766186071; bh=CsBXwAp1FXa5OdMQOT31fIYLZoJQpogmOvYurQaWB4M=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=ISQ4Rm0nLWlpmd7UwFjS9cxyBlJ2GcZ4RhipjlygwEujhWf+76T2NC1Gkaf/8Yqor
	 L5Zq9Xe46MhNFRoSrGskKpLi7NuZIbcmJAAHTaqjTDYs+icL9H6goIGu7bWDi8ozqK
	 wc0Y082xz7nBmE1mUgWf3HX9Y8+zJzPcG0eKQPcU5rNf7jSyt7e+Yutsf/aJ+8OuAV
	 ItHH1iBcRf2S1hr/RT264ntESFk/YAnAk8H1jPR2BEEt9BAgUauwky5IMxytOM4TTo
	 1c/hjJHnuc4Jg+lKH91QhRQgxGAJMHImmJa1K9RC8H0Zacs38uZpoA131HqFYUoYOf
	 GZlxWbi/pEXMsxaq1lHV+vSMUOegus3KLGTQgIWLmi7UflNVQOeWQFJ4AAO+dKGsIU
	 XDol6jDDX41gVYLw7mFU+D11UdgvJqFJ8W6gN0GnLbksPs5TC7MV8Dd6hDmMN5z/oe
	 nLMx6ZLEuK1WItBCrS8r3dz6OzMIpF+zdb6R5Ppy12HLLOOY3nh/nI/O6Jng/Oubtv
	 rwRv654zggQhpJsKOBqmQJ4cjFyjT7Xt0+U7DLA1K5RuiQ6dsMdYDwHSwN/TV3oHWe
	 SfAEaPSoHiKsQqsTY+N/UzRXECOEGHwtaleaRuDsof+qCqBuiR7bLNOsfbufFaQYw6
	 /jyAsVouB4kcFGTo18yiNiCo=
Date: Sat, 20 Dec 2025 00:14:02 +0100
From: Borislav Petkov <bp@alien8.de>
To: Sean Christopherson <seanjc@google.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Ariadne Conill <ariadne@ariadne.space>,
	linux-kernel@vger.kernel.org, mario.limonciello@amd.com,
	darwi@linutronix.de, sandipan.das@amd.com, kai.huang@intel.com,
	me@mixaill.net, yazen.ghannam@amd.com, riel@surriel.com,
	peterz@infradead.org, hpa@zytor.com, x86@kernel.org,
	tglx@linutronix.de, mingo@redhat.com, dave.hansen@linux.intel.com,
	xen-devel@lists.xenproject.org, stable@vger.kernel.org
Subject: Re: [PATCH] x86/CPU/AMD: avoid printing reset reasons on Xen domU
Message-ID: <20251027131249.GAaP9v0Rs0C2WZvbfR@renoirsky.local>
References: <20251219010131.12659-1-ariadne@ariadne.space>
 <7C6C14C2-ABF8-4A94-B110-7FFBE9D2ED79@alien8.de>
 <aUV4u0r44V5zHV5f@google.com>
 <e2632ad6-6721-4697-a923-53b5bb0c9f0f@citrix.com>
 <aUWNLUEme9FCUeAb@google.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <aUWNLUEme9FCUeAb@google.com>

On Fri, Dec 19, 2025 at 09:36:45AM -0800, Sean Christopherson wrote:
> @@ -301,6 +303,20 @@ __ioremap_caller(resource_size_t phys_addr, unsigned long size,
>         if (ioremap_page_range(vaddr, vaddr + size, phys_addr, prot))
>                 goto err_free_area;
>  
> +       /*
> +        * Verify the range was actually mapped when running as a Xen PV DomU
> +        * guest.  Xen PV doesn't emulate a virtual chipset/motherboard, and
> +        * disallows DomU from mapping host physical addresses that the domain
> +        * doesn't own.  Unfortunately, the PTE APIs assume success, and so
> +        * Xen's rejection of the mapping is ignored.
> +        */
> +       if (xen_pv_domain() && !xen_initial_domain()) {
> +               int level;
> +
> +               if (!lookup_address(vaddr, &level))
> +                       goto err_free_area;
> +       }

This activates my ancient allergies caused by the sprinkling "if (XEN)"
randomly across the kernel tree. If this is a PV guest there probably
should be a PV ioremap variant which hides all that gunk away...

Thx.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Fri Dec 19 23:17:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 23:17:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1191204.1511220 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWjiw-0001kQ-S9; Fri, 19 Dec 2025 23:17:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1191204.1511220; Fri, 19 Dec 2025 23:17:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWjiw-0001kJ-Os; Fri, 19 Dec 2025 23:17:26 +0000
Received: by outflank-mailman (input) for mailman id 1191204;
 Fri, 19 Dec 2025 23:17:26 +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 <SRS0=4//z=6Z=alien8.de=bp@srs-se1.protection.inumbo.net>)
 id 1vWjiw-0001kB-49
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 23:17:26 +0000
Received: from mail.alien8.de (mail.alien8.de [65.109.113.108])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e0bbb4fa-dd30-11f0-b15b-2bf370ae4941;
 Sat, 20 Dec 2025 00:17:24 +0100 (CET)
Received: from localhost (localhost.localdomain [127.0.0.1])
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id E036640E0200; 
 Fri, 19 Dec 2025 23:17:23 +0000 (UTC)
Received: from mail.alien8.de ([127.0.0.1])
 by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id SQDhptCoBjrJ; Fri, 19 Dec 2025 23:17:20 +0000 (UTC)
Received: from rn.tnic (unknown [160.86.253.35])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest
 SHA256) (No client certificate requested)
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with UTF8SMTPSA id
 5F17C40E00DA; Fri, 19 Dec 2025 23:17:01 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e0bbb4fa-dd30-11f0-b15b-2bf370ae4941
X-Virus-Scanned: Debian amavisd-new at mail.alien8.de
Authentication-Results: mail.alien8.de (amavisd-new); dkim=pass (4096-bit key)
	header.d=alien8.de
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8;
	t=1766186240; bh=6boN+F4A/pT4AlbOs61ix3VzmmJwzgX0zEnSa5IGRCQ=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=kwcXV0HYmY/lo4y7kDbE8NjeTDwJTUDod+wyslvgT+Y4EWnYPnCC9KEzZv30LbNZx
	 Ht2jxfnjkL53cShPwnKDYBgZoWSJ/GYJBNY0Di/tas0yP3jNwt84aAGuZENal6Ensa
	 8TEIZkJZX+zhnIMECHZESW7weKkF5LdRSppcXc7DzQg4t7kqlFVbA71tbTkVFh1siG
	 JKYOepyZsPaX/heFhkALGRizPE5YIdaqk3F9RdOsT79lkvab0ydk2OuTvrbfYsPUJz
	 8NW9LiMMGio65PtT9t4B4xza5rh6JYz2m6C11uFcWlf6fdygfEGIEL3kCmE85rSpIJ
	 /IYjn7SyRBiGZg6eDiuR8W1uCIIpPvPpoqaluBJ15fKegsDv6WSc7/8aK0RjN496Up
	 It8GkqEA0Kt0iB+hIlaLseQhwJBdDbm5PuaaVoSdOwn8fGNFqyrPl/biYY3xRYcAEw
	 yXe0un+E+w4Ubw9sQlYoWCH5mpu/zzEowfADeci/ON6R5kDkkgGwSUp0Qh4cKWLwEM
	 wcRBwv+1oYRTykj+mL7tgdm1zo8/hQxFX8ADm3Utn/48+Q5fKuyxzi0bZxX1d5xcc1
	 UBmh95cMRwkLJCmNZi5R7VAb2iD7ODGuiaTzrrJAIkm3Tm5JjwJm24NJuRi5ouY64O
	 YXrslqXWdbwbn6w6sHqNYbwg=
Date: Sat, 20 Dec 2025 00:16:53 +0100
From: Borislav Petkov <bp@alien8.de>
To: Sean Christopherson <seanjc@google.com>
Cc: Ariadne Conill <ariadne@ariadne.space>, linux-kernel@vger.kernel.org,
	mario.limonciello@amd.com, darwi@linutronix.de,
	sandipan.das@amd.com, kai.huang@intel.com, me@mixaill.net,
	yazen.ghannam@amd.com, riel@surriel.com, peterz@infradead.org,
	hpa@zytor.com, x86@kernel.org, tglx@linutronix.de, mingo@redhat.com,
	dave.hansen@linux.intel.com, xen-devel@lists.xenproject.org,
	stable@vger.kernel.org
Subject: Re: [PATCH] x86/CPU/AMD: avoid printing reset reasons on Xen domU
Message-ID: <20251219231653.GBaUXc5c0GoVAvICoa@renoirsky.local>
References: <20251219010131.12659-1-ariadne@ariadne.space>
 <7C6C14C2-ABF8-4A94-B110-7FFBE9D2ED79@alien8.de>
 <aUV4u0r44V5zHV5f@google.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <aUV4u0r44V5zHV5f@google.com>

On Fri, Dec 19, 2025 at 08:09:31AM -0800, Sean Christopherson wrote:
> LOL, Ariadne, be honest, how much did Boris pay you?  :-D

Ha, now there's a thought: win the lottery and then pay people to do
specially crafted reports influencing the kernel design. Woahahahah, /me
laughs ominously.

One problem though: winning the lottery.

;-P

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Fri Dec 19 23:20:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Dec 2025 23:20:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1191213.1511230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWjlF-0002Ga-6T; Fri, 19 Dec 2025 23:19:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1191213.1511230; Fri, 19 Dec 2025 23:19:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWjlF-0002GT-3h; Fri, 19 Dec 2025 23:19:49 +0000
Received: by outflank-mailman (input) for mailman id 1191213;
 Fri, 19 Dec 2025 23:19:48 +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
 <SRS0=lTMo=6Z=ariadne.space=ariadne@srs-se1.protection.inumbo.net>)
 id 1vWjlE-0002GN-9d
 for xen-devel@lists.xenproject.org; Fri, 19 Dec 2025 23:19:48 +0000
Received: from outbound.qs.icloud.com
 (p-east3-cluster7-host10-snip4-1.eps.apple.com [57.103.84.222])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 34e704b3-dd31-11f0-b15b-2bf370ae4941;
 Sat, 20 Dec 2025 00:19:46 +0100 (CET)
Received: from outbound.qs.icloud.com (unknown [127.0.0.2])
 by p00-icloudmta-asmtp-us-east-2d-100-percent-4 (Postfix) with ESMTPS id
 1713118003FA; Fri, 19 Dec 2025 23:19:42 +0000 (UTC)
Received: from [10.0.0.250] (unknown [17.57.155.37])
 by p00-icloudmta-asmtp-us-east-2d-100-percent-4 (Postfix) with ESMTPSA id
 E271A18000B0; Fri, 19 Dec 2025 23:19:29 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 34e704b3-dd31-11f0-b15b-2bf370ae4941
Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ariadne.space; s=sig1; bh=iy2tMr+pcOGokCditubD3qK8tyKEldr37Ursg+rfWGI=; h=Message-ID:Date:MIME-Version:Subject:To:From:Content-Type:x-icloud-hme; b=UZR+u9l2HxdBvSGpQV5DGeFCU9Ihv26qknN/BRL2tsorcEAbc/oINwnAeN64HO1qLkKWjlqZe2Zxw797UlXxzO+h/AYJcACNe8CTSpzD+F8QhBi6NLgST3aaGkWUfTHwHn646JmS9e/cQrJeeAC75j5vnHMYx1gYdmSRa/B9A3mfQ9Qufmzr3tr/QUr5Koh0h38WG3l0iGU2Yq3rP30vZIKrZ+r7Y7g3knD1Au3UJYLBYA9eOSwh9uTLDwRzgFiBLkkzwT8oPHBK5Uq3R0i4DfOGJZhq7wHp924kkORslsj7gHH7pcRi6o19KWsCeOj+YLtE33fsvR+9wbc5fIDVjA==
mail-alias-created-date: 1688796967087
Message-ID: <a5c4dd0b-d524-43d5-8d33-0aad02adc541@ariadne.space>
Date: Fri, 19 Dec 2025 15:19:28 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/CPU/AMD: avoid printing reset reasons on Xen domU
To: Sean Christopherson <seanjc@google.com>, Borislav Petkov <bp@alien8.de>
Cc: linux-kernel@vger.kernel.org, mario.limonciello@amd.com,
 darwi@linutronix.de, sandipan.das@amd.com, kai.huang@intel.com,
 me@mixaill.net, yazen.ghannam@amd.com, riel@surriel.com,
 peterz@infradead.org, hpa@zytor.com, x86@kernel.org, tglx@linutronix.de,
 mingo@redhat.com, dave.hansen@linux.intel.com,
 xen-devel@lists.xenproject.org, stable@vger.kernel.org
References: <20251219010131.12659-1-ariadne@ariadne.space>
 <7C6C14C2-ABF8-4A94-B110-7FFBE9D2ED79@alien8.de>
 <aUV4u0r44V5zHV5f@google.com>
Content-Language: en-US
From: Ariadne Conill <ariadne@ariadne.space>
In-Reply-To: <aUV4u0r44V5zHV5f@google.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Authority-Info: v=2.4 cv=Fas6BZ+6 c=1 sm=1 tr=0 ts=6945dd90 cx=c_apl:c_pps
 a=bsP7O+dXZ5uKcj+dsLqiMw==:117 a=bsP7O+dXZ5uKcj+dsLqiMw==:17
 a=IkcTkHD0fZMA:10 a=MKtGQD3n3ToA:10 a=1oJP67jkp3AA:10 a=wP3pNCr1ah4A:10
 a=VkNPw1HP01LnGYTKEx00:22 a=kmYkUENqAAAA:8 a=cWRNjhkoAAAA:8 a=VwQbUJbxAAAA:8
 a=jQPEHyspVSHZgeuGXSQA:9 a=QEXdDO2ut3YA:10 a=p9kz6gysRiz6SGr9lVkz:22
 a=sVa6W5Aao32NNC1mekxh:22
X-Proofpoint-ORIG-GUID: PrgxWHdnMqmT56j-36miK5PuOTkgt8vm
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE5MDE5NiBTYWx0ZWRfX1hQobANrkcwi
 fAOYdQ6SalVAYZ50ZyICd6lmGxyNCstXgvN2h7qvEzqWepamC0HYV1qNjmQl/noKu06j9ynh5PB
 X6I8nwhJKKoUnE78HqPDq2tdd+5nEdhDQuZFOrg6vOZH5N7bW6pSlMN9qflPI73b8z0a86ftDyP
 NsTuzn14/2gDFY253bCFbEk0DNTqKgqJiwOeMN3xh1Z2CFdiAfMIHq1atBGHHl0o5NmdH+oz/MS
 mK0bYKQfff0zG3/0IRmZUdziAXbHX1CM5qcZVF7epZISJod1ri5IihY/OPirX1oGmM6ZmfoD3UL
 0HsaPtA01XwwRL9+yGf
X-Proofpoint-GUID: PrgxWHdnMqmT56j-36miK5PuOTkgt8vm
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-12-19_08,2025-12-19_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 clxscore=1030
 mlxlogscore=999 bulkscore=0 malwarescore=0 mlxscore=0 spamscore=0
 phishscore=0 adultscore=0 suspectscore=0 classifier=spam authscore=0 adjust=0
 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512190196
X-JNJ: AAAAAAABCeDZeZABUl1JBQZUFV5IHr6VVYAh9hTgMK6DZMe7v9k9M5CZQCnXlaMiG2N5UpfcrLgKZJJrQoSKX2mJqV1pPPecVXEiW+S0H4n+gHaK0zTzj6Winp6wvqXLScyHgtvQ1K7MzL+Gktqfc7PBGbCsHKCSK6GLnqX9aTleGPFku21OKp49OQGlMVZlTFGFnPnVIhRibRG5zVWPUbV38vqZD1b12pzR9D1mvk6wNFDR8yZF1JcjSORncY5j0k8LDwSS5SviG59MsRhSSAjvhR03IiFPfevkdzoRyDde3geX8m8UV0KXP3EndWv9BFLPkj6D0ht4H+fXq2SaFf6KFEOG7GtK2+yYHBEnc1UBz2ZotTFfFLNQW/E8Cme0DshfAT0xIVHEWWTFjobZvtL8psRlam0SDNi6oktfi7nGCoD6u+ybqdUWDTF0ob1eSQDsIAiDXZqAIHH7ed1ZkcKhxDYWc18t0IcAwMpPOAOks+0X6fHn/Yc52HluCLS4Mr0MHAMsOh1REPSkahqeePtML95elCEZKpG5QGCshkrpLjnDwWrbq1I0pnr523aKP7fDsEZ5ldO1dKwSWJwFsjUuu8NlXPzRT8irDivscY7FVY26tiM/ntPHJJwBijs7JF8V3bXdP9DR6BoX4dGRte5qPzqYY7W2ij1UmblqIYpoEwhoYYBrHOv/BT29g61raMcLMlRQOXj6Rb4sAVEXoP9dFiEwnfBvx3Wt1TH3k2Pb3f0tjSl8eO9jxaCsidx++26dX98H7097CpjwjDdkvSrOpSKa23zAKTLBR8OnL5k14kVmLNYe9fCVe0bhO3ExpBAyad20d1veTQk3NebdxBuYEKkYqXndk55NkEZluk4f7u5HOtr80eDwmU/k08ZQLTw=

Hi,

On 12/19/25 08:09, Sean Christopherson wrote:
> On Fri, Dec 19, 2025, Borislav Petkov wrote:
>> On December 19, 2025 1:01:31 AM UTC, Ariadne Conill <ariadne@ariadne.space> wrote:
>>> Xen domU cannot access the given MMIO address for security reasons,
>>> resulting in a failed hypercall in ioremap() due to permissions.
> Why does that matter though?  Ah, because set_pte() assumes success, and so
> presumably the failed hypercall goes unnoticed and trying to access the MMIO
> #PFs due to !PRESENT mapping.

Yes, which results in the guest panicing on Zen platforms.

>>> Fixes: ab8131028710 ("x86/CPU/AMD: Print the reason for the last reset")
>>> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
>>> Cc: xen-devel@lists.xenproject.org
>>> Cc: stable@vger.kernel.org
>>> ---
>>> arch/x86/kernel/cpu/amd.c | 6 ++++++
>>> 1 file changed, 6 insertions(+)
>>>
>>> diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
>>> index a6f88ca1a6b4..99308fba4d7d 100644
>>> --- a/arch/x86/kernel/cpu/amd.c
>>> +++ b/arch/x86/kernel/cpu/amd.c
>>> @@ -29,6 +29,8 @@
>>> # include <asm/mmconfig.h>
>>> #endif
>>>
>>> +#include <xen/xen.h>
>>> +
>>> #include "cpu.h"
>>>
>>> u16 invlpgb_count_max __ro_after_init = 1;
>>> @@ -1333,6 +1335,10 @@ static __init int print_s5_reset_status_mmio(void)
>>> 	if (!cpu_feature_enabled(X86_FEATURE_ZEN))
>>> 		return 0;
>>>
>>> +	/* Xen PV domU cannot access hardware directly, so bail for domU case */
> Heh, Xen on Zen crime.
>
>>> +	if (cpu_feature_enabled(X86_FEATURE_XENPV) && !xen_initial_domain())
>>> +		return 0;
>>> +
>>> 	addr = ioremap(FCH_PM_BASE + FCH_PM_S5_RESET_STATUS, sizeof(value));
>>> 	if (!addr)
>>> 		return 0;
>> Sean, looka here. The other hypervisor wants other checks.
>>
>> Time to whip out the X86_FEATURE_HYPERVISOR check.
> LOL, Ariadne, be honest, how much did Boris pay you?  :-D

Nothing :)

At Edera we have been running with this patch for a few months, I just 
forgot to upstream it.

I was reminded of this patch when an Alpine user opened a bug[0] 
demonstrating the same behavior on 6.18.

[0]: https://gitlab.alpinelinux.org/alpine/aports/-/issues/17789

> Jokes aside, I suppose I'm fine adding a HYPERVISOR check, but at the same time,
> how is this not a Xen bug?  Refusing to create a mapping because the VM doesn't
> have a device defined at a given GPA is pretty hostile behavior for a hypervisor.

I think it would be better to fix this in a more generic way if we can.

Ariadne



From xen-devel-bounces@lists.xenproject.org Sat Dec 20 01:44:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Dec 2025 01:44:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1191260.1511240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWm1F-0002mK-DH; Sat, 20 Dec 2025 01:44:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1191260.1511240; Sat, 20 Dec 2025 01:44:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWm1F-0002m0-7p; Sat, 20 Dec 2025 01:44:29 +0000
Received: by outflank-mailman (input) for mailman id 1191260;
 Sat, 20 Dec 2025 01:44:28 +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
 <SRS0=YNMa=62=bounce.vates.tech=bounce-md_30504962.6945ff76.v1-510f0dcf5b1a48d2b7a03f03a4a8e883@srs-se1.protection.inumbo.net>)
 id 1vWm1E-0002lu-II
 for xen-devel@lists.xenproject.org; Sat, 20 Dec 2025 01:44:28 +0000
Received: from mail137-31.atl71.mandrillapp.com
 (mail137-31.atl71.mandrillapp.com [198.2.137.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 695fa3df-dd45-11f0-b15b-2bf370ae4941;
 Sat, 20 Dec 2025 02:44:26 +0100 (CET)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-31.atl71.mandrillapp.com (Mailchimp) with ESMTP id
 4dY6df4rg6z7lmM0s
 for <xen-devel@lists.xenproject.org>; Sat, 20 Dec 2025 01:44:22 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 510f0dcf5b1a48d2b7a03f03a4a8e883; Sat, 20 Dec 2025 01:44:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 695fa3df-dd45-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1766195062; x=1766465062;
	bh=LZATy/epkYlb1ti/O9p96Bjn8vhz+ABv2T1O/KGgVBI=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=daaW6ApRC3hgCdlRpg3BEIxXzaTAEilcF7w8gIu4nJTgADsl9LMME1u0D8i/0tJGz
	 2sY6sz49SRtS9upDKigCZ+xPb/JQ9yUN7NcNz0/IjYpqEdjhaXLtgqM/WwPpntuBs4
	 F9+fcrM5B0zZNugrS1yanjCyAhsKswdmJFlEGgTgmEIlrKlr+EAqQ120YXP6YvIX75
	 bcS9k1SRTlnqa1OnHHrzX1fzTaBhfCYk5ARFHcQR31C+QhOXXGcC3N/sNzC417q214
	 wO+Oe1K33SKsYGAscRuvD3IjP40Snewi/qkD7iRMRjnpcxqCiN4ih6F2PKAC1vm+6H
	 bi14onHggzAFA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1766195062; x=1766455562; i=teddy.astie@vates.tech;
	bh=LZATy/epkYlb1ti/O9p96Bjn8vhz+ABv2T1O/KGgVBI=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=WbrnoCC+1o1Qo01yxukZM75q5P/Xv865o8MePtFCK1phOjY0S1YixRoMa5O6ADLIw
	 TJ3Q4uTSQ1APGTNA3xG3Mu9cwwvZbq6uBk+rlGJ11ZwVae5XKM26lerZ8+hK8sKgtF
	 4H8wadf02WA0KTPllNljCiKE0Fo4Uemt8c/wLTdN3qaCCfLAsFh/fJlqK7ayVsKZhI
	 DhqUcWOlduD/pktSzUmBiu0v+Gytd2Fb/StESqnlEMrnEMiVVSalgKFN925eoBDbaK
	 UoDASv7LM9JQpvcsdXgr+Djue/bJTnAzM/VBfKBC3NeYDBCATEjUI29CwT4fBHvCgF
	 uUJyfyslZzNWg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20x86/CPU/AMD:=20avoid=20printing=20reset=20reasons=20on=20Xen=20domU?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1766195061283
Message-Id: <190f226a-a92f-4dab-ad7a-f7ea22e6a976@vates.tech>
To: "Sean Christopherson" <seanjc@google.com>
Cc: "Ariadne Conill" <ariadne@ariadne.space>, linux-kernel@vger.kernel.org, mario.limonciello@amd.com, darwi@linutronix.de, sandipan.das@amd.com, kai.huang@intel.com, me@mixaill.net, yazen.ghannam@amd.com, riel@surriel.com, peterz@infradead.org, hpa@zytor.com, x86@kernel.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, xen-devel@lists.xenproject.org, stable@vger.kernel.org
References: <20251219010131.12659-1-ariadne@ariadne.space> <dbe68678-0bc4-483f-aef3-e4c7462bcaff@vates.tech> <aUWNlTAmbSTXsBDE@google.com>
In-Reply-To: <aUWNlTAmbSTXsBDE@google.com>
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.510f0dcf5b1a48d2b7a03f03a4a8e883?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251220:md
Date: Sat, 20 Dec 2025 01:44:22 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 19/12/2025 =C3=A0 18:40, Sean Christopherson a =C3=A9crit=C2=A0:
> On Fri, Dec 19, 2025, Teddy Astie wrote:
>> Le 19/12/2025 =C3=A0 02:04, Ariadne Conill a =C3=A9crit=C2=A0:
>>> Xen domU cannot access the given MMIO address for security reasons,
>>> resulting in a failed hypercall in ioremap() due to permissions.
>>>
>>> Fixes: ab8131028710 ("x86/CPU/AMD: Print the reason for the last reset"=
)
>>> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
>>> Cc: xen-devel@lists.xenproject.org
>>> Cc: stable@vger.kernel.org
>>> ---
>>>    arch/x86/kernel/cpu/amd.c | 6 ++++++
>>>    1 file changed, 6 insertions(+)
>>>
>>> diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
>>> index a6f88ca1a6b4..99308fba4d7d 100644
>>> --- a/arch/x86/kernel/cpu/amd.c
>>> +++ b/arch/x86/kernel/cpu/amd.c
>>> @@ -29,6 +29,8 @@
>>>    # include <asm/mmconfig.h>
>>>    #endif
>>>
>>> +#include <xen/xen.h>
>>> +
>>>    #include "cpu.h"
>>>
>>>    u16 invlpgb_count_max __ro_after_init =3D 1;
>>> @@ -1333,6 +1335,10 @@ static __init int print_s5_reset_status_mmio(voi=
d)
>>>    =09if (!cpu_feature_enabled(X86_FEATURE_ZEN))
>>>    =09=09return 0;
>>>
>>> +=09/* Xen PV domU cannot access hardware directly, so bail for domU ca=
se */
>>> +=09if (cpu_feature_enabled(X86_FEATURE_XENPV) && !xen_initial_domain()=
)
>>> +=09=09return 0;
>>> +
>>>    =09addr =3D ioremap(FCH_PM_BASE + FCH_PM_S5_RESET_STATUS, sizeof(val=
ue));
>>>    =09if (!addr)
>>>    =09=09return 0;
>>
>> Such MMIO only has a meaning in a physical machine, but the feature
>> check is bogus as being on Zen arch is not enough for ensuring this.
>>
>> I think this also translates in most hypervisors with odd reset codes
>> being reported; without being specific to Xen PV (Zen CPU is
>> unfortunately not enough to ensuring such MMIO exists).
>>
>> Aside that, attempting unexpected MMIO in a SEV-ES/SNP guest can cause
>> weird problems since they may not handled MMIO-NAE and could lead the
>> hypervisor to crash the guest instead (unexpected NPF).
> 
> IMO, terminating an SEV-ES+ guest because it accesses an unknown MMIO ran=
ge is
> unequivocally a hypervisor bug. 

Terminating may be a bit excessive, but the hypervisor can respond #GP 
to either unexpected MMIO-NAE and NPF-AE if it doesn't know how to deal 
with this MMIO/NPF (xAPIC has a similar behavior when it is disabled).

> The right behavior there is to configure a reserved NPT entry
> to reflect the access into the guest as a #VC.

I'm not sure this is the best approach, that would allow the guest to 
trick the hypervisor into making a unbounded amount of reserved entries.

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Sat Dec 20 02:02:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Dec 2025 02:02:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1191271.1511249 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWmIi-00060M-Sz; Sat, 20 Dec 2025 02:02:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1191271.1511249; Sat, 20 Dec 2025 02:02:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWmIi-00060F-Pn; Sat, 20 Dec 2025 02:02:32 +0000
Received: by outflank-mailman (input) for mailman id 1191271;
 Sat, 20 Dec 2025 02:02:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lOco=62=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1vWmIh-000609-Qk
 for xen-devel@lists.xenproject.org; Sat, 20 Dec 2025 02:02:32 +0000
Received: from mail-yx1-xb130.google.com (mail-yx1-xb130.google.com
 [2607:f8b0:4864:20::b130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ef303a02-dd47-11f0-9cce-f158ae23cfc8;
 Sat, 20 Dec 2025 03:02:29 +0100 (CET)
Received: by mail-yx1-xb130.google.com with SMTP id
 956f58d0204a3-6420c08f886so3143593d50.3
 for <xen-devel@lists.xenproject.org>; Fri, 19 Dec 2025 18:02:28 -0800 (PST)
Received: from [10.138.34.110]
 (h96-60-249-169.cncrtn.broadband.dynamic.tds.net. [96.60.249.169])
 by smtp.gmail.com with ESMTPSA id
 00721157ae682-78fb43cddb7sm16568197b3.24.2025.12.19.18.02.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Dec 2025 18:02:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ef303a02-dd47-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766196147; x=1766800947; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=BmQkWN5cLiJ69SUBknPUJfKLARCEpm/Nd3t2bdOaoWQ=;
        b=BQVn8cXBsUx+kK2tnkCHXBgMiuUyzKUnrbzrMkvY+HNvwZUKZVdZyzkeRqU8znu1gn
         mO17UdywsoarQwR88eLoErrNOusoA3VuO0+nuUyxL5DezHqsiZGmw6DUiyNm2SafOD6e
         96dQriCxzQaXj8RXRLB0PI2oLZcAYQo9SuoPDvaQlttnM1Uh4KENMa3OEqQG+PJzQlPO
         yYMI9nZ3i0Icw4hg3Q13MhqUAYTpvgzjpse2YBjRaQil/aoT7J/kb2pHTK2hYc6AwZqN
         FUTiMc5gHGLnnqaDD1KGv4y5HgT+TTMusA4H6UDkuzCWRF4A5jkByzKYW2R9uAttUYV4
         j4Fw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766196147; x=1766800947;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=BmQkWN5cLiJ69SUBknPUJfKLARCEpm/Nd3t2bdOaoWQ=;
        b=WHlLZ/a6hW/2dl+eMbTmY08k3berZe9EDcC9NyPsYrxYx0Ai7lXssP5a781S1cKMmj
         NYfkACvCmZ/ibuhNDAps9Wxd1sq5PJtvWmetMkFJkVPvOkyh5Me4ad2Lw1tO30i5hyrc
         gWdakGo/nTn8pQc5BdVwoB2xnW1hMu5ukkMeqq0osX88dYoD8SNnCm0t446WaQ5IN/jD
         IZVzrRfYEb1z6+IxLGNhoLJD1eHbmpJFB0G3pdRxuodNeRaeI/TjcM2LDYJxI7R7Wa0J
         jRZSNcgCok1lb4q5Sxd1r+n2bgldyCPO0H8gpWbesCPZliHDsINW9RCNguLQmkAw9lsP
         px/w==
X-Gm-Message-State: AOJu0YxyuGBEA7Ay7I88Sa52xqwNV437k7Vi2nd9sPPcSMNd3b6tNlBU
	tQdi9khsSfpOx0dZYo7G8ucXP6+9zwzt6OrbsA+ssPQWr76MzjPnKcpEtiaM7w==
X-Gm-Gg: AY/fxX4AKf3LFXfj4d/SjZzZq9mErZHmcSQRDHJVG/14+Kd95PwtYua9J6uX6k8Zk2P
	XYYus1uvrDE772o6pjNU2Hu7ZNa9ybTc1AY15pNPz6hUvD9jIk955zz9VVHZOPqDFqjqgmEVbX9
	/oEO7mIHpBZX65BH1wWO0ZLAGt6y0ze760ywCsPI7QO5KtrzaOkiw4Xlsntx+eLCtG+2v4R5snT
	gAocJ084G7xJMf1Hbdoid1bZzYxjFGrdNwqkCnPqudTNKvb/RA4PiBOoPO+9ewnY9sC/h9EDwE/
	Brl6IgBDgxKjqs0daf7pnXbayWS/Bt33+RoXmS8sMr1ueI/ssGvGHna/20m5k96UlbPi605YoZX
	UxLCj/jKv411vGCk13j+dxdRaUTV4U1/G5k7cyvm53qlHbEpJbdPltJZe/Nuqtzr9IiJeEC7bcQ
	FHKdMwUV9KHHL2A5jhyH+0KVmhzoel5ht4ysZ1H5AvRbFQAWRJJLxSHmOOyzhPnyLGv7S5n61n3
	Fx6hyEFxFCYOUFYLZefXOYEnI8=
X-Google-Smtp-Source: AGHT+IGQLEHOG9i68KC64XOdTY6oZvZKjdZIQwf80Po+fkQVUbDAPSBA6PrF5zM1chnMdZzjx5AQoQ==
X-Received: by 2002:a05:690e:419c:b0:63f:aef7:d01b with SMTP id 956f58d0204a3-6466a84406bmr3508631d50.8.1766196146393;
        Fri, 19 Dec 2025 18:02:26 -0800 (PST)
Message-ID: <0f4014cb-77d4-4d31-96cd-ea584ed8bba1@gmail.com>
Date: Fri, 19 Dec 2025 21:02:18 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] 9p/xen: mark 9p transport device as closing when removing
 it
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 Ariadne Conill <ariadne@ariadne.space>, v9fs@lists.linux.dev
Cc: xen-devel@lists.xenproject.org, asmadeus@codewreck.org,
 linux_oss@crudebyte.com, lucho@ionkov.net, ericvh@kernel.org,
 Stefano Stabellini <sstabellini@kernel.org>, Alex Zenla <alex@edera.dev>
References: <20251208195155.27473-1-ariadne@ariadne.space>
 <409cccec-15dd-4e80-ba56-f0bba12772cb@gmail.com>
 <548207b3-c941-4956-bf2c-11eee467777b@suse.com>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <548207b3-c941-4956-bf2c-11eee467777b@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------zP68rpYrZp0Uzl9j10Hk0qmJ"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------zP68rpYrZp0Uzl9j10Hk0qmJ
Content-Type: multipart/mixed; boundary="------------3DjjrTYtUxIfPkonGj3cKuPy";
 protected-headers="v1"
Message-ID: <0f4014cb-77d4-4d31-96cd-ea584ed8bba1@gmail.com>
Date: Fri, 19 Dec 2025 21:02:18 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] 9p/xen: mark 9p transport device as closing when removing
 it
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 Ariadne Conill <ariadne@ariadne.space>, v9fs@lists.linux.dev
Cc: xen-devel@lists.xenproject.org, asmadeus@codewreck.org,
 linux_oss@crudebyte.com, lucho@ionkov.net, ericvh@kernel.org,
 Stefano Stabellini <sstabellini@kernel.org>, Alex Zenla <alex@edera.dev>
References: <20251208195155.27473-1-ariadne@ariadne.space>
 <409cccec-15dd-4e80-ba56-f0bba12772cb@gmail.com>
 <548207b3-c941-4956-bf2c-11eee467777b@suse.com>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <548207b3-c941-4956-bf2c-11eee467777b@suse.com>
Autocrypt-Gossip: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==

--------------3DjjrTYtUxIfPkonGj3cKuPy
Content-Type: multipart/mixed; boundary="------------4YoX49qTQIA0OtTPwVPWuSpb"

--------------4YoX49qTQIA0OtTPwVPWuSpb
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On 12/18/25 03:14, J=C3=BCrgen Gro=C3=9F wrote:
> On 09.12.25 11:41, Demi Marie Obenour wrote:
>> On 12/8/25 14:51, Ariadne Conill wrote:
>>> We need to do this so that we can signal to the other end that the
>>> device is being removed, so that it will release its claim on the
>>> underlying memory allocation.  Otherwise releasing the grant-table
>>> entries is deferred resulting in a kernel oops since the pages have
>>> already been freed.
>>
>> I don't think this is sufficient.  The backend can simply refuse
>> to release the grants.  The frontend needs to ensure that the pages
>> are not freed until the grant table entries are freed.  Right now,
>> the backend can cause a use-after-free in the frontend, and my
>> understanding of the Xen Project's security policy is that this is
>> a security vulnerability in the frontend code.
>>
>> My instinct is that the core Xen code should take a reference on
>> each page before granting it to another domain, and not release that
>> reference until the pages are no longer granted.  This should prevent
>> any use-after-free problems if I understand Linux core MM correctly.
>=20
> I looked at this in detail now.
>=20
> I don't think we have a security bug right now, but the interfaces rega=
rding
> granting pages to other domains should probably be reworked like you su=
ggest.
>=20
> Currently it is the caller who needs to handle page references correctl=
y,
> while this should be done by the grant handling (having to either issue=

> get_page() or to pass NULL for the page pointer, in case you don't want=
 the
> underlying page to be freed by gnttab_end_foreign_access(), is far from=

> intuitive).

Unfortunately, I don't think this is going to work.  Page refcounts
are going away.  Taking a reference on kmalloc()'d memory already
runs into a VM_BUG_ON_FOLIO().  So the only reasonable approach
is a callback that is run when the grant is no longer accessible by
the backend.  It could well be that this is another example of a bug
in 9p that also affects virtio.

More details about the memory management and
virtio-9p situation can be found in the thread at
<https://lore.kernel.org/lkml/20251210-virtio_trans_iter-1-1-92eee6d8b6db=
@codewreck.org/t/#u>.

A much better API would allow the grantor of a page to revoke the
grantee's access, with subsequent accesses by the grantee redirected
to a scratch page.  For PVH/HVM guests I expect this to be possible,
but for PV guests it would require Xen to modify the guest's own
page tables.  My understanding is that this isn't allowed as it would
break the guest.
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------4YoX49qTQIA0OtTPwVPWuSpb
Content-Type: application/pgp-keys; name="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49y
B+l2nipdaq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYf
bWpr/si88QKgyGSVZ7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/
UorR+FaSuVwT7rqzGrTlscnTDlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7M
MPCJwI8JpPlBedRpe9tfVyfu3euTPLPxwcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9H
zx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR6h3nBc3eyuZ+q62HS1pJ5EvU
T1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl5FMWo8TCniHynNXs
BtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2Bkg1b//r
6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nS
m9BBff0Nm0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQAB
zTxEZW1pIE9iZW5vdXIgKElUTCBFbWFpbCBLZXkpIDxhdGhlbmFAaW52aXNpYmxl
dGhpbmdzbGFiLmNvbT7CwY4EEwEIADgWIQR2h02fEza6IlkHHHGyiLVf/5wiwQUC
X6YJvQIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCyiLVf/5wiwWRhD/0Y
R+YYC5Kduv/2LBgQJIygMsFiRHbR4+tWXuTFqgrxxFSlMktZ6gQrQCWe38WnOXkB
oY6n/5lSJdfnuGd2UagZ/9dkaGMUkqt+5WshLFly4BnP7pSsWReKgMP7etRTwn3S
zk1OwFx2lzY1EnnconPLfPBc6rWG2moA6l0WX+3WNR1B1ndqpl2hPSjT2jUCBWDV
rGOUSX7r5f1WgtBeNYnEXPBCUUM51pFGESmfHIXQrqFDA7nBNiIVFDJTmQzuEqIy
Jl67pKNgooij5mKzRhFKHfjLRAH4mmWZlB9UjDStAfFBAoDFHwd1HL5VQCNQdqEc
/9lZDApqWuCPadZN+pGouqLysesIYsNxUhJ7dtWOWHl0vs7/3qkWmWun/2uOJMQh
ra2u8nA9g91FbOobWqjrDd6x3ZJoGQf4zLqjmn/P514gb697788e573WN/MpQ5XI
Fl7aM2d6/GJiq6LC9T2gSUW4rbPBiqOCeiUx7Kd/sVm41p9TOA7fEG4bYddCfDsN
xaQJH6VRK3NOuBUGeL+iQEVF5Xs6Yp+U+jwvv2M5Lel3EqAYo5xXTx4ls0xaxDCu
fudcAh8CMMqx3fguSb7Mi31WlnZpk0fDuWQVNKyDP7lYpwc4nCCGNKCj622ZSocH
AcQmX28L8pJdLYacv9pU3jPy4fHcQYvmTavTqowGnM08RGVtaSBNYXJpZSBPYmVu
b3VyIChsb3ZlciBvZiBjb2RpbmcpIDxkZW1pb2Jlbm91ckBnbWFpbC5jb20+wsF4
BBMBAgAiBQJafgNKAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCyiLVf
/5wiwYa/EACv8a2+MMou9cSCNoZBQaU+fTmyzft9hUE+0d5W2UY1RY3OsjFIzm9R
/4SVccfsqOYLEo+S0vQMIIIqFEq3FCpXXwPzyimotps05VA8U3Bd7yseojFygOgK
sAMOAee2RCaDDOnoJue01dfZMzzHPO/TVdp3OvnpWipfv5G1Xg96rwbhMLE3tg6N
xwAHa31Bv4/Xq8CJOoIWvx6fcmZQpz01/lSvsYn0KrfEbTKkuUf0vM9JrCTCP2oz
VNN5BYzqaq2M4r+jmSyeXLim922VOWqGkUEQ85BSEemqrRS06IU6NtEMsF8EWt/b
hWjk/9GDKTcnpdJHTrMxTspExBiNrvpI2t+YPU5B/dJJAUxvmhFrbSIbdB8umBZs
I3AMYrEmpAbh5x7jEjoskUC7uN3o9vpg1oCLS2ePDLtAtyBtbHnkA4xGD7ar8mem
xpH9lY/i+sC6CyyIUWcUDnnagKyJP0m9ks0GLsTeOCA0bft2XA6rD6aaCnMUsndT
ctrab42CV5XypjmC4U1rPJ8JQJUh1/3P48/8sMH+3krxpJ06KNWNFaUbaMTGiltZ
7x9DngklSYrX0T+2G4kVXNmjaljwkoLahwLla2gUWwBSyofXdqyhQdwZsp01KXNQ
UCyT/Pg+aDcm/E7OMV3d4lf7g/CSxiX2GSEe6BlhSz+Lmd7ZJ3g32M1ARGVtaSBN
YXJpZSBPYmVub3VyIChJVEwgRW1haWwgS2V5KSA8ZGVtaUBpbnZpc2libGV0aGlu
Z3NsYWIuY29tPsLBjgQTAQgAOBYhBHaHTZ8TNroiWQcccbKItV//nCLBBQJgOEV+
AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJELKItV//nCLBKwoP/1WSnFdv
SAD0g7fD0WlF+oi7ISFT7oqJnchFLOwVHK4Jg0e4hGn1ekWsF3Ha5tFLh4V/7UUu
obYJpTfBAA2CckspYBqLtKGjFxcaqjjpO1I2W/jeNELVtSYuCOZICjdNGw2Hl9yH
KRZiBkqc9u8lQcHDZKq4LIpVJj6ZQV/nxttDX90ax2No1nLLQXFbr5wb465LAPpU
lXwunYDij7xJGye+VUASQh9datye6orZYuJvNo8Tr3mAQxxkfR46LzWgxFCPEAZJ
5P56Nc0IMHdJZj0Uc9+1jxERhOGppp5jlLgYGK7faGB/jTV6LaRQ4Ad+xiqokDWp
mUOZsmA+bMbtPfYjDZBz5mlyHcIRKIFpE1l3Y8F7PhJuzzMUKkJi90CYakCV4x/a
Zs4pzk5E96c2VQx01RIEJ7fzHF7lwFdtfTS4YsLtAbQFsKayqwkGcVv2B1AHeqdo
TMX+cgDvjd1ZganGlWA8Sv9RkNSMchn1hMuTwERTyFTr2dKPnQdA1F480+jUap41
ClXgn227WkCIMrNhQGNyJsnwyzi5wS8rBVRQ3BOTMyvGM07j3axUOYaejEpg7wKi
wTPZGLGH1sz5GljD/916v5+v2xLbOo5606j9dWf5/tAhbPuqrQgWv41wuKDi+dDD
EKkODF7DHes8No+QcHTDyETMn1RYm7t0RKR4zsFNBFp+A0oBEAC9ynZI9LU+uJkM
eEJeJyQ/8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd
8xD57ue0eB47bcJvVqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPp
I4gfUbVEIEQuqdqQyO4GAe+MkD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalq
l1/iSyv1WYeC1OAs+2BLOAT2NEggSiVOtxEfgewsQtCWi8H1SoirakIfo45Hz0tk
/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJriwoaRIS8N2C8/nEM53jb1sH
0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcNfRAIUrNlatj9Txwi
vQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6dCxN0GNA
ORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog
2LNtcyCjkTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZA
grrnNz0iZG2DVx46x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJ
ELKItV//nCLBwNIP/AiIHE8boIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwj
jVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGjgn0TPtsGzelyQHipaUzEyrsceUGWYoKX
YyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8frRHnJdBcjf112PzQSdKC6kqU0
Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2E0rW4tBtDAn2HkT9
uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHMOBvy3Ehz
fAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVss
Z/rYZ9+51yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aW
emLLszcYz/u3XnbOvUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPt
hZlDnTnOT+C+OTsh8+m5tos8HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj
6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E+MYSfkEjBz0E8CLOcAw7JIwAaeBTzsFN
BGbyLVgBEACqClxh50hmBepTSVlan6EBq3OAoxhrAhWZYEwN78k+ENhK68KhqC5R
IsHzlL7QHW1gmfVBQZ63GnWiraM6wOJqFTL4ZWvRslga9u28FJ5XyK860mZLgYhK
9BzoUk4s+dat9jVUbq6LpQ1Ot5I9vrdzo2p1jtQ8h9WCIiFxSYy8s8pZ3hHh5T64
GIj1m/kY7lG3VIdUgoNiREGf/iOMjUFjwwE9ZoJ26j9p7p1U+TkKeF6wgswEB1T3
J8KCAtvmRtqJDq558IU5jhg5fgN+xHB8cgvUWulgK9FIF9oFxcuxtaf/juhHWKMO
RtL0bHfNdXoBdpUDZE+mLBUAxF6KSsRrvx6AQyJs7VjgXJDtQVWvH0PUmTrEswgb
49nNU+dLLZQAZagxqnZ9Dp5l6GqaGZCHERJcLmdY/EmMzSf5YazJ6c0vO8rdW27M
kn73qcWAplQn5mOXaqbfzWkAUPyUXppuRHfrjxTDz3GyJJVOeMmMrTxH4uCaGpOX
Z8tN6829J1roGw4oKDRUQsaBAeEDqizXMPRc+6U9vI5FXzbAsb+8lKW65G7JWHym
YPOGUt2hK4DdTA1PmVo0DxH00eWWeKxqvmGyX+Dhcg+5e191rPsMRGsDlH6KihI6
+3JIuc0y6ngdjcp6aalbuvPIGFrCRx3tnRtNc7He6cBWQoH9RPwluwARAQABwsOs
BBgBCgAgFiEEdodNnxM2uiJZBxxxsoi1X/+cIsEFAmbyLVgCGwICQAkQsoi1X/+c
IsHBdCAEGQEKAB0WIQSilC2pUlbVp66j3+yzNoc6synyUwUCZvItWAAKCRCzNoc6
synyU85gD/0T1QDtPhovkGwoqv4jUbEMMvpeYQf+oWgm/TjWPeLwdjl7AtY0G9Ml
ZoyGniYkoHi37Gnn/ShLT3B5vtyI58ap2+SSa8SnGftdAKRLiWFWCiAEklm9FRk8
N3hwxhmSFF1KR/AIDS4g+HIsZn7YEMubBSgLlZZ9zHl4O4vwuXlREBEW97iL/FSt
VownU2V39t7PtFvGZNk+DJH7eLO3jmNRYB0PL4JOyyda3NH/J92iwrFmjFWWmmWb
/Xz8l9DIs+Z59pRCVTTwbBEZhcUc7rVMCcIYL+q1WxBG2e6lMn15OQJ5WfiE6E0I
sGirAEDnXWx92JNGx5l+mMpdpsWhBZ5iGTtttZesibNkQfd48/eCgFi4cxJUC4PT
UQwfD9AMgzwSTGJrkI5XGy+XqxwOjL8UA0iIrtTpMh49zw46uV6kwFQCgkf32jZM
OLwLTNSzclbnA7GRd8tKwezQ/XqeK3dal2n+cOr+o+Eka7yGmGWNUqFbIe8cjj9T
JeF3mgOCmZOwMI+wIcQYRSf+e5VTMO6TNWH5BI3vqeHSt7HkYuPlHT0pGum88d4a
pWqhulH4rUhEMtirX1hYx8Q4HlUOQqLtxzmwOYWkhl1C+yPObAvUDNiHCLf9w28n
uihgEkzHt9J4VKYulyJM9fe3ENcyU6rpXD7iANQqcr87ogKXFxknZ97uEACvSucc
RbnnAgRqZ7GDzgoBerJ2zrmhLkeREZ08iz1zze1JgyW3HEwdr2UbyAuqvSADCSUU
GN0vtQHsPzWl8onRc7lOPqPDF8OO+UfN9NAfA4wl3QyChD1GXl9rwKQOkbvdlYFV
UFx9u86LNi4ssTmU8p9NtHIGpz1SYMVYNoYy9NU7EVqypGMguDCL7gJt6GUmA0sw
p+YCroXiwL2BJ7RwRqTpgQuFL1gShkA17D5jK4mDPEetq1d8kz9rQYvAR/sTKBsR
ImC3xSfn8zpWoNTTB6lnwyP5Ng1bu6esS7+SpYprFTe7ZqGZF6xhvBPf1Ldi9UAm
U2xPN1/eeWxEa2kusidmFKPmN8lcT4miiAvwGxEnY7Oww9CgZlUB+LP4dl5VPjEt
sFeAhrgxLdpVTjPRRwTd9VQF3/XYl83j5wySIQKIPXgT3sG3ngAhDhC8I8GpM36r
8WJJ3x2yVzyJUbBPO0GBhWE2xPNIfhxVoU4cGGhpFqz7dPKSTRDGq++MrFgKKGpI
ZwT3CPTSSKc7ySndEXWkOYArDIdtyxdE1p5/c3aoz4utzUU7NDHQ+vVIwlnZSMiZ
jek2IJP3SZ+COOIHCVxpUaZ4lnzWT4eDqABhMLpIzw6NmGfg+kLBJhouqz81WITr
EtJuZYM5blWncBOJCoWMnBEcTEo/viU3GgcVRw=3D=3D
=3Dx94R
-----END PGP PUBLIC KEY BLOCK-----

--------------4YoX49qTQIA0OtTPwVPWuSpb--

--------------3DjjrTYtUxIfPkonGj3cKuPy--

--------------zP68rpYrZp0Uzl9j10Hk0qmJ
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEopQtqVJW1aeuo9/sszaHOrMp8lMFAmlGA6wACgkQszaHOrMp
8lMpmBAAgy+iuRkmwzbFoi5gqc2Swp1Y3kFp9U0VOm2xjId4N7bh7+AhZU8/Nfpn
8lhIWoIeAiF4lCFGFQQI2WIrxZ/uBwjEexw1XBVJZO5nlk5MzGzp0TC8uS78lx6/
5QzZDmteNlyEpblD8SYQ7rP39iScnaVKnFj3pwjn0vGvZIt8T2JPsXzquOSYe65j
tyBZNVQS9Ck/T6jII9PJvu3fZU5tLLl0orXf6lr9rpqjkwq3y3OtXSq9XnS70t9I
ZzxfsuN1HSvGvM85UVpOfJGTZzjDLQcEkZBUdhJ5Znxw2txo5Krwj+X4n5/1LsDw
Hw6WAMGvUxiOG2wfh20yekUbwE4mEWV5i+xCSTGJ+vZytsVJ0Q9egMFH6yEGjKcu
4bQ1+Q5Op3vatIgGBvAy5mgA4qj8yHr+N1CF70pv3PJvLah4zCwTqoQT7Vp66aH0
iCGwHR3EoqOs/RyqyYWCYTJvZJJKayk+XVzTQazZMOyQNvp+FPjNR864dULRbQKq
NKItJk+Ouv0XiSYSajLLYaSKkUWYtEARPZMBcz1oxdnlJAWdFg3SHx79lONCvPTp
fMfYdQ/qZW2cF/ylQE97UyH/OCVuEyndxCqB7PaQFzJvmxHyJC96EHE3TzA9d44g
Nf59kfbi71byZPLTKr6ctdmg05jJNJ8vM8QM++4AwPdLrbSF4uU=
=si8/
-----END PGP SIGNATURE-----

--------------zP68rpYrZp0Uzl9j10Hk0qmJ--


From xen-devel-bounces@lists.xenproject.org Sat Dec 20 11:23:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Dec 2025 11:23:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1191379.1511260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWv31-0002rx-Md; Sat, 20 Dec 2025 11:22:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1191379.1511260; Sat, 20 Dec 2025 11:22:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vWv31-0002rp-HQ; Sat, 20 Dec 2025 11:22:55 +0000
Received: by outflank-mailman (input) for mailman id 1191379;
 Sat, 20 Dec 2025 11:22:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RPos=62=gmail.com=zhangwt1997@srs-se1.protection.inumbo.net>)
 id 1vWv30-0002rh-3V
 for xen-devel@lists.xenproject.org; Sat, 20 Dec 2025 11:22:54 +0000
Received: from mail-qk1-x72c.google.com (mail-qk1-x72c.google.com
 [2607:f8b0:4864:20::72c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 387d98ba-dd96-11f0-9cce-f158ae23cfc8;
 Sat, 20 Dec 2025 12:22:51 +0100 (CET)
Received: by mail-qk1-x72c.google.com with SMTP id
 af79cd13be357-8b29ff9d18cso290534085a.3
 for <xen-devel@lists.xenproject.org>; Sat, 20 Dec 2025 03:22:51 -0800 (PST)
Received: from shizuku.. ([2620:0:e00:550a:f33a:6f3:d481:4882])
 by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-88d9a44e314sm38580296d6.49.2025.12.20.03.22.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 20 Dec 2025 03:22:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 387d98ba-dd96-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766229770; x=1766834570; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gurlBj0az6nKf7nLhbMlzuYQLnMCetWmYEsYsoO0utk=;
        b=EvAbGFL8kLiGQh+fS2x9ZqQC1lqem5AcONj/xShjigVXMplLbWRJ9ILYdXWQDw7KAw
         n6zwNEFbQFrAleUOA13BkMgQ48em/eW8cSCJvojYg/843nBg1Bt7cqvbi+C1FEIJzaCE
         Up/+LpPJeiHbBWRToJ+6TA0rWB8MPO52rc+v4yB2o8Ge3vhlRQ8GrLDnCtLNer1kEju+
         6yOBUIWg/jpGB76t6SJG87Jjnph+5q8lhdnk2isXSRA7E0RWVwvr8Z8kwxTC5hMn/Zog
         JjqKw/VhS7s9SVKtsjb3LOg46wMks3bSpBarBYTZa9n6zzq4i9kSsrXt1QOEd/WBDI8c
         G/fw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766229770; x=1766834570;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=gurlBj0az6nKf7nLhbMlzuYQLnMCetWmYEsYsoO0utk=;
        b=gaJlkx6wEJg4VgKekXm2QJ/xaFEEqmIXJ7w1yPzBNJH0+tWrueWEKcJ1+MV4ZmEvZh
         wc0NRF4TKyQz12fu0MAEPlBJxSPZZkAuEEffZ+DLZ81mjryMRbeiOXQCBaKZaPY24jvk
         BmUTNtA/pBqqKMAjCsBB42JtgyucKGdB34lFwO6uHLa1kgld5ngLQWIKwfRo2T5EwvCC
         ffrXJtL+rz1gbluJw6GFEBsaWERyw/fM85zLK7nq1oLYB0dWZ2JBT22GrHLvv3PQaH65
         ZlTIyNIjylycBzGWn/WXwnGnIQpYB1bgft05PE9vAWVE7JKGXx0KVqjinvIsrieLGnH6
         UmYg==
X-Forwarded-Encrypted: i=1; AJvYcCWclhpW0F9s61/Rg1n9VlN6DKjtvoRkUCVxxeloy93BamzVgbQwM6rAeU2nXR0zspTSJ89NLQDtSyk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YywoZjGE6iisRhmeW4vcyoo5nWPgeEqSlJNAGIz+YprpOGuhbNm
	rmuRGs8tS7wuJ8M4uk5iyANxhriZsHn7bSh+F4uJLS4mqw7DvOLMH/h6
X-Gm-Gg: AY/fxX4AWCcrQQsld9NUz8ShkuNv2CFfb8GfTOatZJBcA6/EOt7varU1zdS5IOQ1FXD
	yvK4uOaajAKqiiJOAPN5j3uvFbDrXaa6uLo4eOS8yTTG6FoQS3DZTs132l38C59VI8vp0YPe8Ny
	B3QE0NSa1p9++Idr/79bes2ndMOg2yoiU9ofDMdVhCssl6EQzAdcdLUDTKUtcxnIxphsDBiDUuv
	iELyhcW0dFqaDFmP3/ixLxDeyot15P12k6dao47GTyGvXD6A2cYIz7It1Nv5JFU7DlYQ1FV/Iiv
	Dn3Stz0F+TyT+86EJmc6MkCaX3SIj1x6zmj0eMkqdbqrZIPlKzikhOZQhEyVUUePm6Vf5YPNcLk
	XVeFaWkmHckeXiT+xZYhSIrUjtWvu85bmD/OqiEwtjnyHaMpx1PlHtxmZ1gvveOQ3qErcQI4M7G
	1wQwjNyjE=
X-Google-Smtp-Source: AGHT+IE4QNxEJtO3gqKqn7yAVdEiBnTpTSuzeJ0gj2gnoL4oxSU+EsTiTmJl5ZUcxr1ZgffcECTM3Q==
X-Received: by 2002:a05:620a:414b:b0:8b2:e6b1:a9b6 with SMTP id af79cd13be357-8c08fc0114cmr899908885a.2.1766229770484;
        Sat, 20 Dec 2025 03:22:50 -0800 (PST)
From: Wentao Zhang <zhangwt1997@gmail.com>
To: samaan.dehghan@gmail.com
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	jbeulich@suse.com,
	julien@xen.org,
	michal.orzel@amd.com,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	xen-devel@lists.xenproject.org
Subject: [XEN PATCH] xen: add paddings after bitmap section in LLVM coverage profile
Date: Sat, 20 Dec 2025 05:22:43 -0600
Message-Id: <71775ef5c267b3888ddf3e4a55bdb5914cf1f890.1766228666.git.zhangwt1997@gmail.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <aa144043d4e0592fbbeaf0a3d5e9cad6e9226d8a.1763989809.git.samaan.dehghan@gmail.com>
References: <aa144043d4e0592fbbeaf0a3d5e9cad6e9226d8a.1763989809.git.samaan.dehghan@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The layout of LLVM coverage profile is like

  header
  data section
  (padding #1)
  counter section
  (padding #2)
  bitmap section
  (padding #3)
  name section
  (padding #4)

Padding areas #1 and #2 are always zeroed on 64-bit platforms, but that
is not the case for padding area #3 and #4. See LLVM docs [1] and
compiler-rt's own version of "get_size()" [2].

The implementation in 08c787f "xen: Enable MC/DC coverage for Clang"
partly considers padding #4 in get_size() but not in dump(). It worked
because in the header .padding_bytes_after_bitmap_bytes is also
initialized to zero so a reader may still know how to parse the profile.
But we should probably not base ourselves on such assumption. Instead
let's be as close as possible to hosted environment generated profiles,
i.e. those generated by compiler-rt.

In this patch, get_size() implementation is mathematically the same but
changed to reflect the layout somewhat better. For dump(), padding #4 is
added both in the header and in the payload.

[1] https://llvm.org/docs/InstrProfileFormat.html
[2] https://github.com/llvm/llvm-project/blob/llvmorg-20.1.8/compiler-rt/lib/profile/InstrProfilingBuffer.c#L223

Signed-off-by: Wentao Zhang <zhangwt1997@gmail.com>

---

As an aside, an alternative way that has better long-term
maintainability would be [3]. I ran it with Xen and could unofficially
confirm it works, modulo implementation nitty-gritties.

[3] https://github.com/llvm/llvm-project/pull/167998
---
 xen/common/coverage/llvm.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/xen/common/coverage/llvm.c b/xen/common/coverage/llvm.c
index 5663fb1..f15ec11 100644
--- a/xen/common/coverage/llvm.c
+++ b/xen/common/coverage/llvm.c
@@ -141,11 +141,11 @@ static void cf_check reset_counters(void)
 
 static uint32_t cf_check get_size(void)
 {
-    uint32_t size = ROUNDUP(sizeof(struct llvm_profile_header) + END_DATA - START_DATA +
-                   END_COUNTERS - START_COUNTERS + END_NAMES - START_NAMES, 8);
-    if ( IS_ENABLED(CONFIG_CONDITION_COVERAGE) )
-        size += ROUNDUP(END_BITMAP - START_BITMAP, 8);
-    return size;
+    return sizeof(struct llvm_profile_header) +
+           END_DATA - START_DATA +
+           END_COUNTERS - START_COUNTERS +
+           ROUNDUP(END_BITMAP - START_BITMAP, 8) +
+           ROUNDUP(END_NAMES - START_NAMES, 8);
 }
 
 static int cf_check dump(
@@ -167,6 +167,7 @@ static int cf_check dump(
 #if defined(CONFIG_CONDITION_COVERAGE) && LLVM_PROFILE_VERSION >= 9
         .num_bitmap_bytes = END_BITMAP - START_BITMAP,
         .bitmap_delta = START_BITMAP - START_DATA,
+        .padding_bytes_after_bitmap_bytes = (-(END_BITMAP - START_BITMAP)) & 7,
 #endif
     };
     unsigned int off = 0;
@@ -183,6 +184,7 @@ static int cf_check dump(
     APPEND_TO_BUFFER(START_COUNTERS, END_COUNTERS - START_COUNTERS);
 #if defined(CONFIG_CONDITION_COVERAGE)
     APPEND_TO_BUFFER(START_BITMAP, END_BITMAP - START_BITMAP);
+    off += header.padding_bytes_after_bitmap_bytes;
 #endif
     APPEND_TO_BUFFER(START_NAMES, END_NAMES - START_NAMES);
 #undef APPEND_TO_BUFFER
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sat Dec 20 19:48:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Dec 2025 19:48:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1191562.1511270 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vX2wI-0001FP-5J; Sat, 20 Dec 2025 19:48:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1191562.1511270; Sat, 20 Dec 2025 19:48:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vX2wI-0001FC-08; Sat, 20 Dec 2025 19:48:30 +0000
Received: by outflank-mailman (input) for mailman id 1191562;
 Sat, 20 Dec 2025 19:48:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fV7/=62=kernel.org=pr-tracker-bot@srs-se1.protection.inumbo.net>)
 id 1vX2wG-0001F6-Mm
 for xen-devel@lists.xenproject.org; Sat, 20 Dec 2025 19:48:28 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d8fba5cd-dddc-11f0-9cce-f158ae23cfc8;
 Sat, 20 Dec 2025 20:48:25 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 440E960053;
 Sat, 20 Dec 2025 19:48:24 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EC270C4CEF5;
 Sat, 20 Dec 2025 19:48:23 +0000 (UTC)
Received: from [10.30.226.235] (localhost [IPv6:::1])
 by aws-us-west-2-korg-oddjob-rhel9-1.codeaurora.org (Postfix) with ESMTP id
 3B85D3809A05; Sat, 20 Dec 2025 19:45:13 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d8fba5cd-dddc-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1766260104;
	bh=Wnxoz2E6dng9cWa29BHf0FDoqGeMawS0j50K2RviYQM=;
	h=Subject:From:In-Reply-To:References:Date:To:Cc:From;
	b=VMb3PrCdE85GHeRExgH1X1HEPvtQW+kF8AZfOcp5Fc2oKSiZRJawnppzvxZ1a5QbY
	 HMQrTpDcz5/UEVJNeK+NcN55AHxUHInUCsZtzDC4KbdF5uSmPfsCYFTNOPlzbR5QSA
	 VJrOFKPW2NRqzj8dLjnOJLpNpmcDQzBvGqOvubRKN+J7SGB1r+pV6QnQAusmK+PaMw
	 hUHXf7FUJYx0epzGSquPy5Ljb70dq1nWonN4/dVAq5lyM5A4W5UFE5VoFoG0BQGZpp
	 Sl7eznmq3Z8ytRTZZxQSKegA8JTDSMsx60wtZ2nFCJJpJRDzV31wsA6Q9kseYxp3rY
	 ugK+JNQvW9bdA==
Subject: Re: [GIT PULL] xen: branch for v6.19-rc2
From: pr-tracker-bot@kernel.org
In-Reply-To: <20251219065241.12549-1-jgross@suse.com>
References: <20251219065241.12549-1-jgross@suse.com>
X-PR-Tracked-List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
X-PR-Tracked-Message-Id: <20251219065241.12549-1-jgross@suse.com>
X-PR-Tracked-Remote: git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.19-rc2-tag
X-PR-Tracked-Commit-Id: e5aff444e3a7bdeef5ea796a2099fc3c60a070fa
X-PR-Merge-Tree: torvalds/linux.git
X-PR-Merge-Refname: refs/heads/master
X-PR-Merge-Commit-Id: 255a918a943ba17bbd8801f5eb56c9083d1def7e
Message-Id: <176625991183.123080.13738389953552835048.pr-tracker-bot@kernel.org>
Date: Sat, 20 Dec 2025 19:45:11 +0000
To: Juergen Gross <jgross@suse.com>
Cc: torvalds@linux-foundation.org, linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, sstabellini@kernel.org

The pull request you sent on Fri, 19 Dec 2025 07:52:41 +0100:

> git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.19-rc2-tag

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/255a918a943ba17bbd8801f5eb56c9083d1def7e

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html


From xen-devel-bounces@lists.xenproject.org Sun Dec 21 10:28:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 21 Dec 2025 10:28:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1191702.1511279 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXGfs-0008Q0-W1; Sun, 21 Dec 2025 10:28:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1191702.1511279; Sun, 21 Dec 2025 10:28:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXGfs-0008Pt-TC; Sun, 21 Dec 2025 10:28:28 +0000
Received: by outflank-mailman (input) for mailman id 1191702;
 Sun, 21 Dec 2025 10:28:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vXGfr-0008Pn-Fj
 for xen-devel@lists.xenproject.org; Sun, 21 Dec 2025 10:28:27 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vXGfq-0031wr-2B;
 Sun, 21 Dec 2025 10:28:26 +0000
Received: from [2a02:8012:3a1:0:ec1c:da36:2cad:42dd]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vXGfq-00GyxS-22;
 Sun, 21 Dec 2025 10:28:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=H3heEJpeJzz4SMp1AKGoNP12BUgl1aIZMqzXDYjh2cY=; b=kxZBr2JF6obH6UF6INGgPhKauC
	ohSh89ITfew4mxnAfz5xaxOtSM8ZUTk4tXSsJJYGVJzPxRIqCPv27Ojcb4+hH3elFTaHV3gpVP3Bc
	VwyQHK1de4JYN4Jw3YfyVDF5F+fPj+rdx0ee5gWn1oEM2ahMA5Oxc6OufPgLXaqrlejw=;
Message-ID: <36b89039-97e2-464c-8c1a-25981171b32f@xen.org>
Date: Sun, 21 Dec 2025 10:28:24 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] acpi/arm: relax MADT GICC entry length check to
 support newer ACPI revisions
Content-Language: en-GB
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Yann Dirson <yann.dirson@vates.tech>,
 Yann Sionneau <yann.sionneau@vates.tech>
References: <929f7a0fb8f92112d445015726db30122a05eb9f.1766060265.git.oleksii.kurochko@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <929f7a0fb8f92112d445015726db30122a05eb9f.1766060265.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Oleksii,

On 18/12/2025 14:22, Oleksii Kurochko wrote:
> Newer ACPI revisions define the MADT GICC entry with Length = 82 bytes [1].
> The current BAD_MADT_GICC_ENTRY() check rejects entries whose length does not
> match the known values, which leads to:
>    GICv3: No valid GICC entries exist.
> as observed on the AmpereOne platform.
> 
> To fix this, import the logic from import from Linux commit 9eb1c92:

Shouldn't this be s/from import//?

Also 7 characters commit ID is too short for Linux and known to clash. 
You want to use 12 characters (which is also the default for Xen). I 
usually have the following in my global .gitconfig:

         [core]
                 abbrev = 12

>    The BAD_MADT_GICC_ENTRY check is a little too strict because
>    it rejects MADT entries that don't match the currently known
>    lengths. We should remove this restriction to avoid problems
>    if the table length changes. Future code which might depend on
>    additional fields should be written to validate those fields
>    before using them, rather than trying to globally check
>    known MADT version lengths.
> 
>    Link: https://lkml.kernel.org/r/20181012192937.3819951-1-jeremy.linton@arm.com
>    Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
>    [lorenzo.pieralisi@arm.com: added MADT macro comments]
>    Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
>    Acked-by: Sudeep Holla <sudeep.holla@arm.com>
>    Cc: Will Deacon <will.deacon@arm.com>
>    Cc: Catalin Marinas <catalin.marinas@arm.com>
>    Cc: Al Stone <ahs3@redhat.com>
>    Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
>    Signed-off-by: Will Deacon <will.deacon@arm.com>
> 
> As ACPI_MADT_GICC_LENGTH is dropped, update the functions where it is
> used. As we rewrite the MADT for hwdom, reuse the host GICC header length
> instead of ACPI_MADT_GICC_LENGTH.
> 
> [1] https://uefi.org/specs/ACPI/6.6/05_ACPI_Software_Programming_Model.html#gic-cpu-interface-gicc-structure
> 
> Reported-By: Yann Dirson <yann.dirson@vates.tech>
> Co-developed-by: Yann Sionneau <yann.sionneau@vates.tech>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> I ran CI tests where it made sense for this patch, as I don’t see any CI job
> that builds Xen with CONFIG_ACPI=y:
>    https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2222160666
> 
> I also built Xen manually with CONFIG_ACPI=y enabled and tested it on the
> AmpereOne platform.
> ---
>   xen/arch/arm/gic-v2.c           |  3 ++-
>   xen/arch/arm/gic-v3.c           |  3 ++-
>   xen/arch/arm/gic.c              | 12 +++++++++++-
>   xen/arch/arm/include/asm/acpi.h | 21 +++++++++++++++------
>   4 files changed, 30 insertions(+), 9 deletions(-)
> 
> diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
> index b23e72a3d0..aae6a7bf30 100644
> --- a/xen/arch/arm/gic-v2.c
> +++ b/xen/arch/arm/gic-v2.c
> @@ -1121,7 +1121,8 @@ static int gicv2_make_hwdom_madt(const struct domain *d, u32 offset)
>       host_gicc = container_of(header, struct acpi_madt_generic_interrupt,
>                                header);
>   
> -    size = ACPI_MADT_GICC_LENGTH;
> +    size = host_gicc->header.length;
> +
>       /* Add Generic Interrupt */
>       for ( i = 0; i < d->max_vcpus; i++ )
>       {
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index bc07f97c16..75b89efad4 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -1672,7 +1672,8 @@ static int gicv3_make_hwdom_madt(const struct domain *d, u32 offset)
>   
>       host_gicc = container_of(header, struct acpi_madt_generic_interrupt,
>                                header);
> -    size = ACPI_MADT_GICC_LENGTH;
> +    size = host_gicc->header.length;
> +
>       for ( i = 0; i < d->max_vcpus; i++ )
>       {
>           gicc = (struct acpi_madt_generic_interrupt *)(base_ptr + table_len);
> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> index ee75258fc3..a0ccda14bf 100644
> --- a/xen/arch/arm/gic.c
> +++ b/xen/arch/arm/gic.c
> @@ -418,8 +418,18 @@ unsigned long gic_get_hwdom_madt_size(const struct domain *d)
>   {
>       unsigned long madt_size;
>   
> +    struct acpi_subtable_header *header;
> +    struct acpi_madt_generic_interrupt *host_gicc;

For both variables, you don't seem to modify the content. So I think 
they should be const.

> +
> +    header = acpi_table_get_entry_madt(ACPI_MADT_TYPE_GENERIC_INTERRUPT, 0);
> +    if ( !header )
> +        panic("Can't get GICC entry");

I would feel happier to use panic() in this function if 
gic_get_hwdom_madt_size() is __init (its only caller is during boot)).

An alternative is to stash the GICC size in a global variable.

> +
> +    host_gicc = container_of(header, struct acpi_madt_generic_interrupt,
> +                             header);
> +
>       madt_size = sizeof(struct acpi_table_madt)
> -                + ACPI_MADT_GICC_LENGTH * d->max_vcpus
> +                + host_gicc->header.length * d->max_vcpus
>                   + sizeof(struct acpi_madt_generic_distributor)
>                   + gic_hw_ops->get_hwdom_extra_madt_size(d);
>   
> diff --git a/xen/arch/arm/include/asm/acpi.h b/xen/arch/arm/include/asm/acpi.h
> index 13756dd341..30bc446d1f 100644
> --- a/xen/arch/arm/include/asm/acpi.h
> +++ b/xen/arch/arm/include/asm/acpi.h
> @@ -53,13 +53,22 @@ void acpi_smp_init_cpus(void);
>    */
>   paddr_t acpi_get_table_offset(struct membank tbl_add[], EFI_MEM_RES index);
>   
> -/* Macros for consistency checks of the GICC subtable of MADT */
> -#define ACPI_MADT_GICC_LENGTH	\
> -    (acpi_gbl_FADT.header.revision < 6 ? 76 : 80)
> +/*
> + * MADT GICC minimum length refers to the MADT GICC structure table length as
> + * defined in the earliest ACPI version supported on arm64, ie ACPI 5.1.
> + *
> + * The efficiency_class member was added to the
> + * struct acpi_madt_generic_interrupt to represent the MADT GICC structure
> + * "Processor Power Efficiency Class" field, added in ACPI 6.0 whose offset
> + * is therefore used to delimit the MADT GICC structure minimum length
> + * appropriately.
> + */
> +#define ACPI_MADT_GICC_MIN_LENGTH   ACPI_OFFSET( \
> +    struct acpi_madt_generic_interrupt, efficiency_class)
>   
> -#define BAD_MADT_GICC_ENTRY(entry, end)						\
> -    (!(entry) || (unsigned long)(entry) + sizeof(*(entry)) > (end) ||	\
> -     (entry)->header.length != ACPI_MADT_GICC_LENGTH)
> +#define BAD_MADT_GICC_ENTRY(entry, end) \
> +    (!(entry) || (entry)->header.length < ACPI_MADT_GICC_MIN_LENGTH || \
> +    (unsigned long)(entry) + (entry)->header.length > (end))
>   
>   #ifdef CONFIG_ACPI
>   extern bool acpi_disabled;

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sun Dec 21 10:33:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 21 Dec 2025 10:33:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1191711.1511290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXGko-0001W4-Ih; Sun, 21 Dec 2025 10:33:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1191711.1511290; Sun, 21 Dec 2025 10:33:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXGko-0001Vw-Et; Sun, 21 Dec 2025 10:33:34 +0000
Received: by outflank-mailman (input) for mailman id 1191711;
 Sun, 21 Dec 2025 10:33:33 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vXGkn-0001Vq-BC
 for xen-devel@lists.xenproject.org; Sun, 21 Dec 2025 10:33:33 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vXGkm-00322a-2A;
 Sun, 21 Dec 2025 10:33:32 +0000
Received: from [2a02:8012:3a1:0:ec1c:da36:2cad:42dd]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vXGkm-00HXwm-2R;
 Sun, 21 Dec 2025 10:33:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=e//h6SwBCEIEFA5z3ulhkkYUhMoXqWhrp8wakQx6zCs=; b=uq5x9WejB/AcmnbQOzgICm9iX+
	xstyqixbL2Jd0iDyiq9ZQq9qf3qpZKLVfg5WVT+MAlkuD+J+255mY/IfnXBRGEtBTepG+kb7QM7oI
	d9KEi0zdvmiwv7o3w0t2e7N7BfCFd8GcJijZl2QFANdkyKNH+diNxqEhn/3PnTZPMB+s=;
Message-ID: <0b663cba-cc3c-4a5d-afe4-a52935779198@xen.org>
Date: Sun, 21 Dec 2025 10:33:30 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 01/12] xen/arm: Add suspend and resume timer helpers
Content-Language: en-GB
To: Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Saeed Nowshadi <saeed.nowshadi@xilinx.com>
References: <cover.1765472890.git.mykola_kvach@epam.com>
 <6eb8f80c070f6b1198814df8d80dcc2e60d44ea8.1765472890.git.mykola_kvach@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <6eb8f80c070f6b1198814df8d80dcc2e60d44ea8.1765472890.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Mykola,

On 11/12/2025 18:43, Mykola Kvach wrote:
> From: Mirela Simonovic <mirela.simonovic@aggios.com>
> 
> Timer interrupts must be disabled while the system is suspended to prevent
> spurious wake-ups. Suspending timers in Xen consists of disabling the
> physical timer and the hypervisor timer on the current CPU. The virtual
> timer does not need explicit handling here, as it is already disabled on
> vCPU context switch and its state is restored per-vCPU on the next context
> restore.
> 
> Resuming consists of raising TIMER_SOFTIRQ, which prompts the generic
> timer code to reprogram the hypervisor timer with the correct timeout.
> 
> Xen does not use or expose the physical timer, so it remains disabled
> across suspend/resume.
> 
> Introduce a new helper, disable_phys_hyp_timers(), to encapsulate disabling
> of the physical and hypervisor timers.
> 
> Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
> Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sun Dec 21 21:23:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 21 Dec 2025 21:23:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1191878.1511300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXQt0-0008Sq-FW; Sun, 21 Dec 2025 21:22:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1191878.1511300; Sun, 21 Dec 2025 21:22:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXQt0-0008Si-Au; Sun, 21 Dec 2025 21:22:42 +0000
Received: by outflank-mailman (input) for mailman id 1191878;
 Sun, 21 Dec 2025 21:22:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+6Rm=63=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vXQsy-0008Sc-SV
 for xen-devel@lists.xenproject.org; Sun, 21 Dec 2025 21:22:40 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2cca8ff2-deb3-11f0-9cce-f158ae23cfc8;
 Sun, 21 Dec 2025 22:22:38 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by AS8PR03MB7603.eurprd03.prod.outlook.com (2603:10a6:20b:34e::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.11; Sun, 21 Dec
 2025 21:22:35 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%6]) with mapi id 15.20.9434.009; Sun, 21 Dec 2025
 21:22:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2cca8ff2-deb3-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FA3bDbe0P6LBLHZ1QbS5tfPhf0TuSA+5mZPKyzxeE5LRtspNWNUwYtItgeU+4ekEiBa6OETgRaDcXI9IFH/NXkztQmNf8FKCwAFruU/VZGpqGmepTYCOo6IGzaJxcCPpXaXGFIUJ6LG5E4ASS3D1VsxOJseqfluKMZLXloM3SmdqjKQZJhVZPWqIi4AK3CcTrthgxakv97CDJKkrR+WmSAPCWWYEJ9QPtEaa1WHGI49E8BhgKryIEC+KcQysu1EdbXvrEMlzmU4FthPGGMAi8xWUG5VUqcnhTkNO2QbAvaWs3iwk9r6oK5VmnqGNwrzkfgO0tTOJe8fDmIWQ/7sk/A==
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=K7tf16p5uVfKOGdFPvoAM40ttXm4vOTqWqvXPCz1Gi4=;
 b=ReL0J9GjytSN1gzzf10ppZabFMQyX5KwbTpo1Z7UB2PQMfvivascUmy6ND/5J1KytVQXU1YcYy06ZOLR3ubEzGeFvF0W/oQP4xAsFgAI38jqFIVMashHQAMP4awlkFbjCmnuW4926rQ1QoLFugTPplk5WCJMZqkHAa++zSf/xXpShD+78i8KzfFf5WfJP5AtNMQlAOh8+Yhv16YCGGR0NAxaM76aFsQzSkBJGO5gCxtxUfJTjj3xI5p7+QPxU0EcuXTrl+BR7lrdFZnQ+C1GUGuutIEXWa61OCyLpr/sgFnGFOj0msp+PSBMaVrZ7n8FtVXamuNtNjgwDWwCEG7wEA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=K7tf16p5uVfKOGdFPvoAM40ttXm4vOTqWqvXPCz1Gi4=;
 b=scz49qmDR4k8F3tKgNBMgjCISj7NtCcOtCStDZkW4O+QWKBJMudrXU9SgA/r4vFn1ZQOPPwZyUSngA3iZaNG/Z26zZrGXOPzmjZPLFKxrHV1eJouv7dcLCCXT9siZ1fAqH+LYNVlllHI0enFvsj2E987W6z37hFJqUbYw5EoG/gXHq8kTFKPcv5ULcaoZ/IMwWwtLvgK9txvn9vn0Lv1OAlOqNI9L2+SpRPLjoXnPsNsqWXzBw9fAp/8zxWrsWfhKs9lUp+boLBkF9bQQJ5C6lylZrh928jazXqtjBU+JYcz1h8xHdC1tq74Lae33d5QDESYeIDiAV8C6TouykyecA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <571605ab-08fa-4cca-9462-5e4645431314@epam.com>
Date: Sun, 21 Dec 2025 23:19:37 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen/domctl: add XEN_DOMCTL_CDF_ALL mask
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20251111201627.3579504-1-grygorii_strashko@epam.com>
 <67f0d3e0-bd90-4817-a084-49d01d8305ff@epam.com>
 <570f1e3d-94ab-40a9-8d6c-c36615e5aa2b@vates.tech>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <570f1e3d-94ab-40a9-8d6c-c36615e5aa2b@vates.tech>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0017.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::17) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|AS8PR03MB7603:EE_
X-MS-Office365-Filtering-Correlation-Id: b597d1f5-c6c3-4f75-e358-08de40d70f45
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dnB1R2tzaWlxdUoyVkRJTEVRUUV5RWxJSXNuOE1PV01CaHJmTjgzMCtaeGly?=
 =?utf-8?B?TEt5NmJQWFU5TmlpQnc5L0VjL0xUUllCT0VDTUwwelZFa1lvSWdoYzc1ZW9T?=
 =?utf-8?B?RUtIQktCS1JsZFRUcDFRL0xhTmJkNDV6Q0FhMGdNMkJnMFVCTzFYbjAvR3k2?=
 =?utf-8?B?cUkwVlEwSFlDQ3lHR2ZQa2sxSEdQV0VyU05XNGNhczd3eUVUc0FKcHFObFNB?=
 =?utf-8?B?UVhPSXRSdnYrSC90L3RYeU5QalMvT1c2WDZndmlsS2ZUVG80dGVvUjc3TFN3?=
 =?utf-8?B?Smw5WU9zQVZESytDL1RoZ1dVUHNJN1BOUSsyK3ZRK1h6ZDlwaTZ2cGViOXI0?=
 =?utf-8?B?d1F5YkdYNTJzUStPM2ZIQ2Nzbmw1cGFYV1IwV1pJcjFGdGhheXp4Y2VxTndW?=
 =?utf-8?B?VnJDaEdxdnRvRVB1N3BaSVNHSy8wWjFTcmhRblNIYVdmQXJOdTJoY0hUVUFu?=
 =?utf-8?B?Um1BcDRsN1g4VGxJYTFsVkRHdDI5ZkdHdnAxTHFMZkRiRWxCYmdPK1dUN1BH?=
 =?utf-8?B?Y2ZURk84TnQ5WUNtdDhlbm9kUHVQbWhMMWo2bHgxZm1EeGhpRXM4dHNhTXRl?=
 =?utf-8?B?QkdoOGhIM3dMN242MUE0KzNRZEUrSytjeFdzb1FEWVF6TkoyVDl2bnlqalZI?=
 =?utf-8?B?YTBxR3B6NVAvbmRSM0VZdWtoeDBiOE9DMG5NYWlmaU1PdzZsUTRPczZqL2Zq?=
 =?utf-8?B?bUFMQktLbkhnYmNHQzZTV08zeTBBcEc1MDkrNkFSVlRneVNxTHRNbWVWY1NC?=
 =?utf-8?B?S0NBUllEWVJYc0FwbDRVRzFFaFEwWHcwbGk3TGZaUHQ3anZRcDNmNm15T1hB?=
 =?utf-8?B?S1F2TXkrQzJFSXFUSVNJZzV3N3NkN1BvdjNiVFpwYk9uZzhiQWZzZnVHY2tr?=
 =?utf-8?B?Nml1bGF2cGxFUzR2NjZvODZKMGpGM3R2bWNEVVhOcG8zMUtsdk5jOGZxUWcz?=
 =?utf-8?B?Mk14ZGF4c3BtZmgxLzRKUDE2blY5TXJCQTVvRnBtNER5WWtUT0VISzhnT3Qw?=
 =?utf-8?B?enU1Ry9VOFB0ZEx6SmFscGdqSmFvdU1KcTdhVDFDdnV5R2N1blZheWo1MVdN?=
 =?utf-8?B?WElYM0xxbVpPeXZ2akZGRzFQTTh0SU1Gems5TStickNXdjczeW9RcjJtbXVZ?=
 =?utf-8?B?ZTk5dEp2Y1VJVVprczVGbkFNeHV5N3Nnai9HYnN4R0xnaC95NVhpaGVhRHQ3?=
 =?utf-8?B?V3Mxalc5U2ZVWStURXUzWUhIWUtGVG04Mk9CMi9HNDAwZ05nclczbzRCOVBv?=
 =?utf-8?B?Y1RpMzkwbElrMm1RcERpVnRNVG9qTzUzbjBPRk1jWFU4aXlHWnVYaEZWT1lG?=
 =?utf-8?B?SnNiNFlGNmhSQ2tldmtvOGkzRGkvTWZGUEl6NU12SmthRGpmSTFsRTViMkpF?=
 =?utf-8?B?WVB6SjVzTTRQWVJKaUxiczVnZTZmOEF6NHRLR0lGVnlscS9sSXlBZW1PTUFx?=
 =?utf-8?B?WHZCamw5MFQ4RGlBcUlUcEFsaGVDRjdMQTFDZGtyU3VJOWtVMGQzVmw2YmN1?=
 =?utf-8?B?akIvbElDaXdWc0lRS2ptU21ocDhFTmJ0cG5FTXA3M0NOb1pjdjdJM2NFZGZQ?=
 =?utf-8?B?Y041bzM0M2RGK0xLMlJlYTRidWtUMVA5TktrNStTWDA4NlIwQTkyYy82TWsz?=
 =?utf-8?B?TGtIOTlVa05oMGhMTzFNK1NmNlZ1WThRVDNkSVpiUVFYUGFXQ0kxdXdTWEhV?=
 =?utf-8?B?WVc3YWJYYkJvWmkwbzRLMFVSc0drcmpvOWNPSUcraC9wVU51bzRuc0JkdUwx?=
 =?utf-8?B?WHQ2aitVNFZhRm14MlFwOEhBNDUwK2t2WkdDZG1qTmdIQkJRcEdxc1l0QjZp?=
 =?utf-8?B?NEszaCtORWlCSExNM2FaajBzei9RU0NUbnd5Vm0wVGVNbEVEN0hOdDVyb0pS?=
 =?utf-8?B?UmpyQnl4ZzZveWFPeG5URlFWNmNlV1pqRUdBVEt5cUNxVGZabVpHb1VQTHcr?=
 =?utf-8?Q?6bg+sIev4sxtuFlcLYF/ukRKTWT4AOws?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YitNb1NvbmI3ak1FbCs2WjQ4eXVHTWZrNkhWR25wK201TGR0OGc3SmdjYWxF?=
 =?utf-8?B?R29TRlZJY1hjaU9IaWZONlNZYmZ3a2U1UlJTZkNjUkNyNUtRQjlaN0pUT2N0?=
 =?utf-8?B?NWNmODRrRmRSWFVqK0hFK3Y3M0xiZDVBcHZBUlI2UkRwMXVxOUlQcTdCdkVX?=
 =?utf-8?B?d01oQkZBVXlLcmtxRHhVNjNjN1hlTEE3RHZmV2NkL2NJelVOMTdyMEw0TFhz?=
 =?utf-8?B?YWJWNm9XTUNqT2NweS90b2VWMjlXbXhoZEZkdnFwU2grSFZlQklhbmNhQWNP?=
 =?utf-8?B?VFpCYzNic1Fva3M5SmhoR2FEN0NvOEhyRXUyNytLOWFjeFI3bkp6dWRlcGdS?=
 =?utf-8?B?SzJVdEdYOWhlb1pjYjMzNVVlN0dNc2lOYXBzS0xqQ0dpVHNrdHhzTTRmUXBY?=
 =?utf-8?B?L1pJajA3bVRucDZyOUZSdXVtNmtLMzFkYnhLdnlLQk5DWU9oVW1ESlJ4Y2pC?=
 =?utf-8?B?Nk5YdkhJN1BjZVcrZ3VWdGMraU5NRUYvcGRaR2NTS1JxbDdlRktla0xmdVpm?=
 =?utf-8?B?R3lpYTQzazJXdzRDZTNyUTJ1S1prK2poM3FMOHNuN1FncW5zMUNBS3E3Z2o3?=
 =?utf-8?B?ZmdFVDVha3llMFVNNUdXRis5NUVlaUFTUm9hcGR0YXk3V05XLzF1YjJCWWI5?=
 =?utf-8?B?cm5qd3Eya2FNeDBLUFkwSEVCZXFoakpVUGhjVWNDYmFVclBhOGt2TGxyUm1o?=
 =?utf-8?B?NlllcnozVmVFbGUwU29VelQveEY0R1M0TCtZSWU2d0FZYTFHU0JRMm9oN1Bo?=
 =?utf-8?B?cmpmUWVESnVCMW42b1NiOUJNczBxVnltK2hCUGJJcjgrMUw0LzFPb2JHMUl3?=
 =?utf-8?B?N2EzTXl2RzI3U2c2WHN1Y2N0TEVwQzk3bVErWlh4K25tRHpVaElPbmFZN2R6?=
 =?utf-8?B?SlBMb0FRbmxReVREaXQ4YXJmM2ZYQnREd1M1RHNCSnpxbGp6Q1huUXlSNzRX?=
 =?utf-8?B?c1NROFZabjllNkdTd1p1R3M3cC9TeHdDR1RZNzYvc0ZsQlh5QzB1RmQvNGMv?=
 =?utf-8?B?NUVVY0xLbkVqUTZ3dkhYSTViU2VTb2ZiWDZTRzlrQ3FLdHIrcm52NG1ONjFi?=
 =?utf-8?B?dEVwN1hwUFVqTmd0OWRUWlVlWXJLWFdrUTl5UERMTlc0ZkRRcStpU0ZoYjhm?=
 =?utf-8?B?bGtmTUtMSkhzbTY2SXJMcDVQT3dEUy8wNHUzSWdha2JYeVlEWE1SL3BabzUr?=
 =?utf-8?B?elpvcndHZm5YbHU3SWw4c2VOVTgzR3FzOUl4Q0xBOHozK1RobHNyNXV5eXNn?=
 =?utf-8?B?OFhBM3ByZlZ5SUNPbDFXS2tHeXdkUjZRR3lmSmYwL2UzdXlURm16U2hJMG9z?=
 =?utf-8?B?MmszUC9CY0pZS3k5ZWVKTDBscEdaR1dsNCtHUjRlMExsMFNvQzlLWXlOMGg1?=
 =?utf-8?B?b0pVWWJFL3hIUytNeFZJMDdxa3F0akl5c1Z0UmZwWUVlQlhNaHFiVXhYaGZu?=
 =?utf-8?B?UzJTVUlRSHZMdGxaZk0xWDM0ZFNhcnptaks5YXRneWpINk9tWWR5Rmsra2hK?=
 =?utf-8?B?SFFDa1VpZnpwS2tkWElIUFNnM28wakJTMzlXUlBkT1VpdER6WXpuQjd5NXo5?=
 =?utf-8?B?UmZZR0p4aXRPZWZ5c0ZzbjBJODdmNm01SGI0R3BaYUlXVDBuTUhrTVNTNmFl?=
 =?utf-8?B?SEd2MUo4b205b0IxVDcxa0c1Ukw1RVVGZkg4UldNUFRoWExnbXpUOXNBcDZJ?=
 =?utf-8?B?QXMySVN1MlgxanlmWUl4YmQxYUxJTXpYVHk5UkRheURSUExxYlI5OERiMmtH?=
 =?utf-8?B?MDdCZnJrRS9VTU1tY0FyYlVzU1NKUHl1MW9tNkNtZzZ4QVE4bUt3Si9TdmYz?=
 =?utf-8?B?TW1TTEpiUVZYbkR6NmhQYzI5ejNSbHAxanVUaTdic0t6dFZLOVM5K0hYeCs4?=
 =?utf-8?B?RnVwaXk2Nk9rN0NmNC9DYXY2Y0hpcUluc1psKzNJS2RsUldqQXlTZXBCcXZF?=
 =?utf-8?B?bG8xbm5vTnN3dURXMnRuNWovWk1jb2xOR1d1T3ByUENxOVdMMFErbVNiRGRa?=
 =?utf-8?B?OHJKQXpzcEFCbzBURVpoaFVOYWFhQTVSSVl6T1dUNHNiaTA0amdWUitEaXls?=
 =?utf-8?B?alFmaFpoZnVLa0pZbm9XVEJMQnZOS0Evazh0K3JEODlVN3p2VWI5MHJUWTZW?=
 =?utf-8?B?Z09RNFZBTWtPWW0zcXpPdHE4NDJsaVpTVXpKenZIWWJ2d2tPYmh3VXdlWWsz?=
 =?utf-8?B?bnViTGdPRGJXVVlwTVJtSU85Ri9wSW9YUEcxNWplKy9LOW9BZEdQdDdVMmR4?=
 =?utf-8?B?RjR3QkU5Zk4yelRnOGJja2JONG1ObzFyRUtDZWRVUlpsamlNa3p2dU5UWTl4?=
 =?utf-8?B?S3lWaElTRUNUMTZtRTBZcGVYODJlRDZmUDF2VFBaNzAvKzg4YllDWlpYQU5a?=
 =?utf-8?Q?ys0GF51dRz9umPcs=3D?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b597d1f5-c6c3-4f75-e358-08de40d70f45
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Dec 2025 21:22:35.3014
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: XQWhnNJXALOAnrkqmv0iSP/6+jBozm34J2D1qdo+lo4J7LVI0OlXtB/Mw5iWtNShCpaZQSyByAVkD3j/DMuv0ykVcmNaQOOcfA9NNeu2UNQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7603



On 19.12.25 18:10, Teddy Astie wrote:
> Le 18/12/2025 à 16:21, Grygorii Strashko a écrit :
>>
>>
>> On 11.11.25 22:16, Grygorii Strashko wrote:
>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>
>>> Every XEN_DOMCTL_CDF_x flag:
>>> - is defined in public/domctl.h
>>> - explicitly listed in sanitise_domain_config() (common/domain.c) to form
>>> mask containing all supported DOMCTL_CDF flags for "Unknown CDF flags"
>>> check.
>>>
>>> So, it is required to modify two files every time XEN_DOMCTL_CDF_x flags
>>> set is modified.
>>>
>>> Simplify the things by introducing XEN_DOMCTL_CDF_ALL mask, so
>>> sanitise_domain_config() no need to be modified any more.
>>>
>>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>> ---
>>
>> Seems nobody interested, sad, dropping from backlog.
>>
> 
> Sorry, I missed this one (I guess others have too).
> 
>>
>>>    xen/common/domain.c         | 7 +------
>>>    xen/include/public/domctl.h | 7 +++++++
>>>    2 files changed, 8 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/xen/common/domain.c b/xen/common/domain.c
>>> index 775c33928585..4f91316ad93e 100644
>>> --- a/xen/common/domain.c
>>> +++ b/xen/common/domain.c
>>> @@ -730,12 +730,7 @@ static int sanitise_domain_config(struct
>>> xen_domctl_createdomain *config)
>>>        bool iommu = config->flags & XEN_DOMCTL_CDF_iommu;
>>>        bool vpmu = config->flags & XEN_DOMCTL_CDF_vpmu;
>>> -    if ( config->flags &
>>> -         ~(XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap |
>>> -           XEN_DOMCTL_CDF_s3_integrity | XEN_DOMCTL_CDF_oos_off |
>>> -           XEN_DOMCTL_CDF_xs_domain | XEN_DOMCTL_CDF_iommu |
>>> -           XEN_DOMCTL_CDF_nested_virt | XEN_DOMCTL_CDF_vpmu |
>>> -           XEN_DOMCTL_CDF_trap_unmapped_accesses) )
>>> +    if ( config->flags & ~XEN_DOMCTL_CDF_ALL )
>>>        {
>>>            dprintk(XENLOG_INFO, "Unknown CDF flags %#x\n", config->flags);
>>>            return -EINVAL;
>>> diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
>>> index 8f6708c0a7cd..94a8e3042cbf 100644
>>> --- a/xen/include/public/domctl.h
>>> +++ b/xen/include/public/domctl.h
>>> @@ -72,6 +72,13 @@ struct xen_domctl_createdomain {
>>>    /* Max XEN_DOMCTL_CDF_* constant.  Used for ABI checking. */
>>>    #define XEN_DOMCTL_CDF_MAX XEN_DOMCTL_CDF_trap_unmapped_accesses
>>> +#define
>>> XEN_DOMCTL_CDF_ALL                                                     \
>>> +        (XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap |
>>>                               \
>>> +         XEN_DOMCTL_CDF_s3_integrity | XEN_DOMCTL_CDF_oos_off |
>>>                  \
>>> +         XEN_DOMCTL_CDF_xs_domain | XEN_DOMCTL_CDF_iommu |
>>>                       \
>>> +         XEN_DOMCTL_CDF_nested_virt | XEN_DOMCTL_CDF_vpmu |
>>>                      \
>>> +         XEN_DOMCTL_CDF_trap_unmapped_accesses)
>>> +
>>>        uint32_t flags;
>>>    #define _XEN_DOMCTL_IOMMU_no_sharept  0
>>
> 
> Given that we already have XEN_DOMCTL_CDF_MAX, we could base the check
> using it instead.
> Something like checking fls(config->flags) > fls(XEN_DOMCTL_CDF_MAX) ?

That's what I've tried first.
The problem is that there is possibility of CDF_X to be removed/deprecated, small, but still it is.
In such case fls() can't be used.
So using define which list allowed flags is safer from long term point of view.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Mon Dec 22 07:40:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 07:40:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1191926.1511311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXaWm-0003no-FP; Mon, 22 Dec 2025 07:40:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1191926.1511311; Mon, 22 Dec 2025 07:40:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXaWm-0003nh-Am; Mon, 22 Dec 2025 07:40:24 +0000
Received: by outflank-mailman (input) for mailman id 1191926;
 Mon, 22 Dec 2025 07:40:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ezST=64=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vXaWk-0003na-HU
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 07:40:22 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 747fc437-df09-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 08:40:15 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4779cb0a33fso37535255e9.0
 for <xen-devel@lists.xenproject.org>; Sun, 21 Dec 2025 23:40:15 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47be3a20af0sm88800465e9.4.2025.12.21.23.40.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 21 Dec 2025 23:40:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 747fc437-df09-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766389214; x=1766994014; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1dX/tWMl+E0a5KW2fk14VTiHOdF85cPvS4qKeRhQgqY=;
        b=GHwxDIlMGRQNuPkSMPnJAgNCS0M6Zm8KFjy+RNS9rDEu+y+YGnFmzwtuN9WzE5qbTr
         feiI+4IcoaujhCpyiAnzl5CQLhgUqLc/nVJieQqMsU4hNFTfuGb/TWmiKsvBrIOJKNM3
         jAJT8Qk+nTndB7N9plL0XMZGB9HCqqIeKVIZDdH7qjW7rfCjuIWN49GIDvq0m1taeRSW
         q62sE3n3bvI0Zx85JtMi5xhF05zpQnB/UB0LqId3H0as02IcAqvH7dfSfaLNqxVr3HXa
         S67MJpCQTeSCP1nvB7Oev73WpRMZTzsxzBhOweDyMm0pw5BhLhyxuEUbqR2A0WxLB7fn
         og/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766389214; x=1766994014;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1dX/tWMl+E0a5KW2fk14VTiHOdF85cPvS4qKeRhQgqY=;
        b=ux3BqFZzvI48JMdT4xWl8LTPt+xdLncwdtcJ849cNNeDT9HZYIL2u3hIXSSd7DuVyU
         w0T8sL/vz63ModAgKcYyN/LCGkv+226Ty+z9wQ7NxisXmI1iGAI+uAtzDTEvlyrpRiJe
         GHvwWt6aEtQBVCrTWJsSzM9egbv9uqQvpt3VNciMETwSlYhmKSVMto9ztDAvFYMWZfBC
         ChAMdwWg9EgsYO3AyvTL6ctvPuv9XOXcGY7o+wN99Oo72XZODzNqOTcyJje91swi1DW4
         GX1pcgP6qgHNojelOU5CnccWWsP/Ut29Q8RtpkM6nPq6M6K0imHmKbUfb/YELDLKdEey
         0ncw==
X-Forwarded-Encrypted: i=1; AJvYcCWxJbpEOOJWe2iGgXEKKHK9SR2Piriyvs9+KsPKboU/0J8RGUaX1TuWDtu9lse65/AWD+J10QxJo7s=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy1p4Ud5sw2GFw3y5lDwuMvL2CHzoc92K/wnfbkga2nH71Uk+lj
	235cYiCmfH8rpiKb6vzBULoqJWIIWwrgLB161CwRh+wvud0rygodkJ8wvi9247Oz6Q==
X-Gm-Gg: AY/fxX5dypw0Z6v4eZllkNJHk2uU1TesHyYJ4V5IGf8y9dvtCfKd4c9i5Slr+MJ0yrD
	BhyTlsfNYqub8jp4xQIfQrlHq1GnkTNQ4+X1Ji9YZgYpkb0Aa9BfPl+4xYORpmbKAz/5H5wTNiT
	U4eEUXBUgPp+N2LLzp+BvZ0PyfDkBHjzOl+duqCLrNDLXgMObtIj/xqmA4flDBVxbvgUD+E+P4R
	x8g/SrN8extlSHESeVhPBU/VEIFYR3KbXS9OIhHeKZZQEv4DK2xW+tDZSNxkeUWjQZI+93MJ5Hm
	HU33kWWaEzRJihRezWpQG1eUR2kTlx65uSODWHI2aADwTEVNTwVvJdNlKtFI6cU2naJTrSdXmD+
	NN4zHdTBJgp12cxSMBC4wzj5cBwnEsbR7RIf0011wsWHzlNKmKA6d4IWnIMIXu981StDw+lbSw8
	W13szsmC5xI0Ouo4ZsTCdmtveRWfnb6sMoh4kXlKhU1UruDaUZ1PPQUUYm+TuwcdsmGQG/hKq8p
	9s=
X-Google-Smtp-Source: AGHT+IG+1wIOIC2D7fvIE6GH7KrxUp1iatLigrZmPnwjEYiIjqpl6mtOZHaFVznGav/2uYjWcPt4nw==
X-Received: by 2002:a05:600c:4f09:b0:477:7bca:8b2b with SMTP id 5b1f17b1804b1-47d195672d1mr100339485e9.15.1766389214605;
        Sun, 21 Dec 2025 23:40:14 -0800 (PST)
Message-ID: <d3f6189d-7a4b-4d7e-8b22-71c325ce109e@suse.com>
Date: Mon, 22 Dec 2025 08:40:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen/riscv: add RISC-V legacy SBI extension support
 for guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1765888425.git.oleksii.kurochko@gmail.com>
 <df7a7e94fba79265138d6cc8d23b1f6b958f5bd5.1765888425.git.oleksii.kurochko@gmail.com>
 <08105722-0920-462a-aeba-a36f8044a5dc@suse.com>
 <dddbd311-99a2-44b1-926e-f3859ff936dc@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <dddbd311-99a2-44b1-926e-f3859ff936dc@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.12.2025 21:04, Oleksii Kurochko wrote:
> On 12/18/25 3:20 PM, Jan Beulich wrote:
>> On 17.12.2025 17:54, Oleksii Kurochko wrote:
>>> This commit adds support for legacy SBI extensions (version 0.1) in Xen
>>> for guest domains.
>>>
>>> The changes include:
>>> 1. Define all legacy SBI extension IDs (0x0 to 0x8) for better clarity and
>>>     completeness.
>>> 2. Implement handling of legacy SBI extensions, starting with support for
>>>     SBI_EXT_0_1_CONSOLE_{PUT,GET}CHAR.
>> I can't spot any actual support for GETCHAR.
>>
>>> --- /dev/null
>>> +++ b/xen/arch/riscv/vsbi/legacy-extension.c
>>> @@ -0,0 +1,65 @@
>>> +
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +
>>> +#include <xen/console.h>
>>> +#include <xen/lib.h>
>>> +#include <xen/sched.h>
>>> +
>>> +#include <asm/processor.h>
>>> +#include <asm/vsbi.h>
>>> +
>>> +static void vsbi_print_line(char c)
>> Misleading function name? The parameter doesn't fit the name, and ...
> 
> It was called only because of ...
> 
>>
>>> +{
>>> +    struct domain *cd = current->domain;
>> I guess you copied this code from somewhere, but a variable of this type and
>> contents wants to be named "currd".
>>
>>> +    struct domain_console *cons = cd->console;
>>> +
>>> +    if ( !is_console_printable(c) )
>>> +        return;
>>> +
>>> +    spin_lock(&cons->lock);
>>> +    ASSERT(cons->idx < ARRAY_SIZE(cons->buf));
>>> +    if ( c != '\n' )
>>> +        cons->buf[cons->idx++] = c;
>>> +    if ( (cons->idx == (ARRAY_SIZE(cons->buf) - 1)) || (c == '\n') )
>>> +    {
>>> +        cons->buf[cons->idx] = '\0';
>>> +        guest_printk(cd, XENLOG_G_DEBUG "%s\n", cons->buf);
>> ... you also only print a line under certain conditions.
> 
> ... this. (for the same reason as hvm_print_line() which has an argument
> 'uint32_t *val' but inside function working with chars because of
> 'char c = *val;')
> 
> I will change the name to vsbi_print_char().
> 
>>
>>> +        cons->idx = 0;
>>> +    }
>>> +    spin_unlock(&cons->lock);
>>> +}
>>> +
>>> +static int vsbi_legacy_ecall_handler(struct vcpu *vcpu, unsigned long eid,
>>> +                                     unsigned long fid,
>>> +                                     struct cpu_user_regs *regs)
>>> +{
>>> +    int ret = 0;
>>> +
>>> +    switch ( eid )
>>> +    {
>>> +    case SBI_EXT_0_1_CONSOLE_PUTCHAR:
>>> +        vsbi_print_line((char)regs->a0);
>> The cast isn't really needed, is it?
> 
> No, I think it could be omitted.
> 
>>   And just to double-check: The spec demands
>> the upper bits to be ignored? (A link to the spec could have been useful, e.g.
>> in the cover letter.)
> 
> It doesn't mention anything about upper bit for PUTCHAR:
>    https://github.com/riscv-non-isa/riscv-sbi-doc/blob/master/src/ext-legacy.adoc#extension-console-putchar-eid-0x01
>    (I will add a link to the spec in the cover letter.)
> So I assume that they don't care about it. (IIUC your question correctly).

I fear such a conclusion cannot be easily drawn. The parameter there is even
"int". Anything not ASCII will remain unclear how to handle until the spec is
changed to actually say what is intended.

>>> +        break;
>>> +
>>> +    case SBI_EXT_0_1_CONSOLE_GETCHAR:
>>> +        ret = SBI_ERR_NOT_SUPPORTED;
>>> +        break;
>>> +
>>> +    default:
>>> +        /*
>>> +         * TODO: domain_crash() is acceptable here while things are still under
>>> +         * development.
>>> +         * It shouldn't stay like this in the end though: guests should not
>>> +         * be punished like this for something Xen hasn't implemented.
>>> +         */
>> Question then is why SBI_EXT_0_1_CONSOLE_GETCHAR gets a separate case block.
> 
> Because we intentionally do not support|SBI_EXT_0_1_CONSOLE_GETCHAR|,|domain_crash()|
> should not be called for it.

That contradicts the patch description saying "starting with support for
SBI_EXT_0_1_CONSOLE_{PUT,GET}CHAR." (Still in context at the top.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 22 07:43:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 07:43:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1191935.1511320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXaZu-0004Kj-SZ; Mon, 22 Dec 2025 07:43:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1191935.1511320; Mon, 22 Dec 2025 07:43:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXaZu-0004Kc-Or; Mon, 22 Dec 2025 07:43:38 +0000
Received: by outflank-mailman (input) for mailman id 1191935;
 Mon, 22 Dec 2025 07:43:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ezST=64=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vXaZs-0004KR-SY
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 07:43:36 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eb76d9cf-df09-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 08:43:34 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4777771ed1aso24689385e9.2
 for <xen-devel@lists.xenproject.org>; Sun, 21 Dec 2025 23:43:34 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4325d10cc48sm10508152f8f.16.2025.12.21.23.43.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 21 Dec 2025 23:43:33 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eb76d9cf-df09-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766389414; x=1766994214; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=a6SNnt2aOMZOvd4m1ek+Vk8ndoELmwEFbwsZqrOQp4I=;
        b=Ijz58Hjd2pRWJVa1CL8rycyhodaohrN7b5ZV7KLF/jV30r0Xj8D8bB9VPvHPTyVn9W
         AOx5YaYTT7XuRXA0upUTdkcDfDCdV0AMXRjw+BH7o2ZGL3FlBS7hPCTZ49YLq2y/sV2U
         iUegnFx/YrR+C9MrCQjqTHsK8UppA18i05BXLg25+m05C9DmWKxw8ewZ0erGzTHGl+aV
         4io2wT02eUszMdcm8tnfvgtWD/+uVuBLrHoKfBD/SCqlMJ0Owf/xyN0e1MocLzaGJar5
         rC5KypQU0YNwLSbSsq5IZV4gpvE2n37P9x3ulpQ1+UgkdKNY+kvW8wJpFuzdUjRb0t77
         m3zg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766389414; x=1766994214;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=a6SNnt2aOMZOvd4m1ek+Vk8ndoELmwEFbwsZqrOQp4I=;
        b=Ulg11JV7LxDy04xblGoSHoHfqwEMlMfX7NtezQAIKPRiEpbfwCblnTvp4ajXSMVI7X
         2cKQ7EJBOHWzkdWR/b5x2ecWSMmatzM1lMkJ9tqe5EPmY+FPStwJbZ7EmbIqc5SBDEDi
         uacbbr5LEMZyqNVF+7ccYtdroO6yxHjsKs+uDslsv41GKr5MChN77QkSmb+A+SHZwEPP
         hMP12SCwoAsBBvgJyUgCJ0YEExwqtVCSj3c2YLTBjPIH8DS4/PKmiEIUwze4wcyPloBF
         v0LQG8hEIeB+HYi+OiMiNNXvrtG4y+om9Ql/bDK59ilF79I5eHw6iQ1WYQgxoshh4GEd
         P7eg==
X-Forwarded-Encrypted: i=1; AJvYcCV5BJEvluLRNjZWD1MOFAik26r/0cVxL4vLBn170LB8pmDlo8VwawhKx93pQRXUCs7f6eejwCaZQ3w=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyy3IVBZek87DGn58PtOOxl8q/ic4LkbPuc6Md83LvYqAuK1lUX
	BcAP64LzB6xki1o5W1iEPy+GbN//oob83yb8b2aTJJ7pyDuAsv52SB0SZEd+2eH+4A==
X-Gm-Gg: AY/fxX4CPG57vvQ9Xbixt3+LibAjWveEUjUGYFpyLeYjRPDPyX/wtsfiiOWzcocNF9i
	uWEf8s7Hcet2WkbzsXur8wpc00cegYP/DGxFqusV3EnDC/JhRR/gvgzwLMlsWzxs6BwhVwgVrAB
	SOiqrolCGQY+6cUmX8hReRrlKt4EXdZCmDqFzUR3difKbyGJjfQdj3KQoL5MFSntm+Rr1rE9SI2
	JipZAB/0xs5Adyol5hQQNVodwnEYs09nY6JUpFatNNNVcuHSG5QfjJ8xvKpzo9y3IpDWGzdjLFY
	h6538mQY7mFOD9OePiA3OOKfy5DGHvVajJUpMAolxOsWy5tI8rQjE1kxU6vajro2XnDoTPNZmO8
	qQStmD3GfNkH1xODYRUkZN0NSXceYWhJB3cc/0LZjltmVLTccs9CQSzoWZ4QNmMWQTr/HH0894h
	Sm8NWU3msJsNBtwBBQzVAMwE5WkxiKJhuFAPJNJwTa5NeuvoRxt21eXo2wpS51xTpbjtdhDxmjr
	FU=
X-Google-Smtp-Source: AGHT+IGONtXXbe8WUOAfxlett703mQBuZWvP6Zng8vKPFmx7z7sYaExy9pYtLetXQnmct9ucXHHtQw==
X-Received: by 2002:a05:600c:458f:b0:46f:b32e:5094 with SMTP id 5b1f17b1804b1-47d19592a3dmr95608285e9.32.1766389414206;
        Sun, 21 Dec 2025 23:43:34 -0800 (PST)
Message-ID: <440d8453-ff8f-439c-8395-aee30b28e11e@suse.com>
Date: Mon, 22 Dec 2025 08:43:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] xen/riscv: add RISC-V virtual SBI base extension
 support for guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1765888425.git.oleksii.kurochko@gmail.com>
 <2e42e8ee51badcfa2cb16e3db71fdecaac445bca.1765888425.git.oleksii.kurochko@gmail.com>
 <f5206b63-1f82-4abb-9740-9a0042fbcfb6@suse.com>
 <aac3c5e8-02a8-4463-bba9-d7b5b90c4273@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aac3c5e8-02a8-4463-bba9-d7b5b90c4273@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.12.2025 21:34, Oleksii Kurochko wrote:
> On 12/18/25 3:32 PM, Jan Beulich wrote:
>> On 17.12.2025 17:54, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/include/asm/sbi.h
>>> +++ b/xen/arch/riscv/include/asm/sbi.h
>>> @@ -14,6 +14,10 @@
>>>   
>>>   #include <xen/cpumask.h>
>>>   
>>> +#define XEN_SBI_VER_MAJOR 0
>>> +#define XEN_SBI_VER_MINOR 2
>>> +#define XEN_SBI_IMPID 7
>> Are these numbers part of the spec (sorry, lack of a reference makes me wonder,
>> plus if that were the case, I'd kind of expect the names to be SBI_XEN_..., not
>> XEN_SBI_...)?
> 
> XEN_SBI_IMPID is a number defined by the SBI specification:
>    https://github.com/riscv-non-isa/riscv-sbi-doc/blob/master/src/ext-base.adoc#sbi-implementation-ids

I see. For this the name change below is then appropriate; for ...

> XEN_SBI_VER_MAJOR and XEN_SBI_VER_MINOR somehow also is a part of the spec, there is
> no such defines explicitly, but it is real numbers of the SBI version.

... these two I'm unconvinced, otoh: If it is us to control the versions
used here, the present names should imo remain. Brief comments may then
also want adding to clarify the different origin of the numbers.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 22 08:12:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 08:12:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1191959.1511330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXb20-0000c1-B2; Mon, 22 Dec 2025 08:12:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1191959.1511330; Mon, 22 Dec 2025 08:12:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXb20-0000bu-7a; Mon, 22 Dec 2025 08:12:40 +0000
Received: by outflank-mailman (input) for mailman id 1191959;
 Mon, 22 Dec 2025 08:12:38 +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 <SRS0=ezST=64=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vXb1y-0000bo-NC
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 08:12:38 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f9bd0342-df0d-11f0-b15b-2bf370ae4941;
 Mon, 22 Dec 2025 09:12:36 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-42fb3801f7eso1922436f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 00:12:36 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324eaa08d9sm21237509f8f.30.2025.12.22.00.12.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Dec 2025 00:12:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f9bd0342-df0d-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766391156; x=1766995956; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mMgbWRHJlcjH1gkZyfQrVR12HAIUL5qZSN3OMOTMnc4=;
        b=MvBjpKI8vRnFXvljg0CdkTY8qdoFXpus+v4jua1gHxuKzT1EXIWJleOMYtkdB75eb+
         PAyaQVqUTpkFCrX3vbI937UziebyN2KQFO6vY+F/TxmXEec7Wnzg5bmA+fJaG4yar6CN
         WEAmICCwwaJnqqkfCQkZWktgiEAByTcq3AAxJ6Jr3s0zz1nfZ7vJ8nxOMRaL6KIcwAk8
         EIXzMV+wphVKGuYPIazxQE0sZmdCR6f+uk4554+t84FHMcT0buU+zcMpztDITq5v9TAf
         qNUsoooJzKw2fTUroDuKUI8oXFwl506JNaq8NVgkciThi4WDCYSeDzo5lshU4rSfNTGX
         pmqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766391156; x=1766995956;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mMgbWRHJlcjH1gkZyfQrVR12HAIUL5qZSN3OMOTMnc4=;
        b=ueLyg9tDU+vHLiA9cWRBYnuLbp+Zc84+fTA+pFOxKbyh6VA+wCgNRdAqi1GxkcCsLh
         B/ec5J5DO55hwV3UuZodmEAeTVc2C7JlToQplGRkWnn7Lx4c0NYDIuXDQ0odHk6YE9yM
         i2P+PE81zOJcC2Tg30Dmz03Jb46qI9bJgctflECke1uyrCRMD3+rZxlmj2bxYjEXJ32Y
         1b/JoCUxHI2yck/6UV6KnSjaRWSUugwKpsfX3OQ2liOYWWvJoVQ1a3t3kGxld/xKBH/H
         bsyligC6o50aFMTFiW9wmQ9PqjoAWy3nGHQSSX9XDZmiojEqdXcv06T4SYYqDq/yCY8V
         FA8A==
X-Forwarded-Encrypted: i=1; AJvYcCUsJLu8zdJRtthkt8jvmfdHXI1RGQL628LbzQ7N1Nj7dYxq4Ph1OBwU9yN/LUA4cIbctyQoWOgl0qk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwF7Kf/O4utZK5cKH09Mej3Ki/Pv7idT5cugdL1kDlRcGmS8Cqw
	tvBWwWvapON1F6dWHLIZNzn9eFWwaE03UPhv5Cti/1y/DH5HLUTLIKYZIdWaJ5cC9w==
X-Gm-Gg: AY/fxX4JB0CGt57iDc3Wc1bEBs4pBAusAlOnYMUcE96D36LMEnZFYqVZl2eJxWSvPSb
	ey/XSQlkwQsvC9uwC8zBkAONyKtp3ohfV/h0Ejv7hWkYDGP1eaqMW7UnZPl5ojazV2E1Xo7cqqX
	LDbUABRIpxAjYLc3STmvgSXfCCHwJGciCfeSrYKvgv9n1A/7ZOaeHhzSED19e498Bpl/fklkb6D
	X142B7GD1q2BixfKMj+ljwyl1XE2UHWRAuvPZJ4DhW6Jq1A+yMXwt67fcnZiLOAZ4ga43/c1FSN
	3Rua6rcKLAMLU9aI6q0DlLuO6IsmusWmvUcj6Ew0qNuAr7XleW5WZr/yFXDDy0YgAGZu8m5toXD
	YtZ9tW0Vt3KIQBoMqvqROR5pkLIy+KTileBtG+EmfueyBVPkLTpQKQFUhU8iBndgQ/20DDBOWck
	SqctA2UDak9M4CwhnQ+htdid5ytKLcTU8AWL4IcZ1l3CmKwI0JJrLzi36Z+sRz5KsvySrMdeAyX
	vm9D0LiRZMDBQ==
X-Google-Smtp-Source: AGHT+IH3M8CfFtmgcXJWPC4oZ0lhp3Zingm+RWf5JDp/SC+VkVmJUWXRg8rRL9kZD6T/VVTo/k9LEA==
X-Received: by 2002:a05:6000:220c:b0:431:752:671e with SMTP id ffacd0b85a97d-4324e4c906cmr12482561f8f.15.1766391156103;
        Mon, 22 Dec 2025 00:12:36 -0800 (PST)
Message-ID: <a3421224-2f74-4cba-ab9d-c0f197c77669@suse.com>
Date: Mon, 22 Dec 2025 09:12:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/4] x86/cpu-policy: define bits of leaf 6
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1766158766.git.teddy.astie@vates.tech>
 <8a4adb89e6b6152fca074f2bb9091b42af936630.1766158766.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <8a4adb89e6b6152fca074f2bb9091b42af936630.1766158766.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.12.2025 16:42, Teddy Astie wrote:
> From: Jan Beulich <jbeulich@suse.com>
> 
> ... as far as we presently use them in the codebase.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
> I don't know to which extend Reviewed-by applies as I only applied Andrew's
> proposal.

Which I pointed out has a latent weakness. I'm intending to submit a new version
of my patch, but instead with the names change to better match the SDM (as was
requested by Andrew in reply to a change later in that other series of mine).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 22 08:30:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 08:30:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1191969.1511340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXbIn-0002Q4-LP; Mon, 22 Dec 2025 08:30:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1191969.1511340; Mon, 22 Dec 2025 08:30:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXbIn-0002Px-Io; Mon, 22 Dec 2025 08:30:01 +0000
Received: by outflank-mailman (input) for mailman id 1191969;
 Mon, 22 Dec 2025 08:30:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ezST=64=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vXbIm-0002Pp-D3
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 08:30:00 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 664ee99d-df10-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 09:29:57 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-42f9ece6387so1336378f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 00:29:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea227e0sm21246407f8f.17.2025.12.22.00.29.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Dec 2025 00:29:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 664ee99d-df10-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766392197; x=1766996997; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6Fj+XfaxlxrnCmfjmeRGTyI1GjowWr+hnAA+TfTzTnk=;
        b=cENRNOpWAiuJwJFtMokkxR1A6tV91ngI/D9FRVIpC0qC0GlNUJDZIFU4VRSmh87Yp5
         NgR4WqQUbZSwnVHe3NfRyT/RgrCGAtk6lTrk1uDuufB/RWUqCXm7Go2oMK5uW0EiaodW
         x0hl12gX26UOQpXiB9XL6nbke0c8gnaLKGbF9S/DOlYPOjzJFc74eJAcvmrqSPi/VlNk
         vTF/JhsVkQLL4P6WGz/hcLoyfu+ZQNpZjckQmSYQW+nXMg2GjrtHH1asvrwyotVf7+ZG
         eKekg6c0JGXZ5fWLDGoJte2Mn/zTat49jOM/swcdguMO6SAbOZnZ5xMK/YRMKfhwEu3V
         /m9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766392197; x=1766996997;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6Fj+XfaxlxrnCmfjmeRGTyI1GjowWr+hnAA+TfTzTnk=;
        b=vtzqz3kJe7aQxhOOJFWyyG3uuPMMRi7DIga3cF8kVyc6lfYu6PY74LgSJiey51Vd9m
         8HoO0yinpXDC4UwJh7yQhi1cVOUorFedwuzsRkvYQB09gYDMeTozPS0/A0maKv+bIZKN
         8XjKoK+TxuTqU631Ahv6zWXbuiEpx+OfGw9Nk9qNqz8gbfdJcd1R/diKwv58ZU5dtuAZ
         6YRmRmXPSBcHD7oWEIlaXS5cuFWqm/I0193kWe+Dt2f1uDfYHZbJRdkJmWwVitpconnK
         G+m0Unuq28RKSdPOD1++2DbJ1HvOLlAepSFPOtyIT01vadJPUlBf9sioiH4MHNQ0xVwm
         ygPw==
X-Forwarded-Encrypted: i=1; AJvYcCVFznreRy8KpVpialp3FNmzVlscnux3MmggvfysdBRrxni5H2MfCy7wP/Ad/6xb/YC86NZqPGzvv3E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwiFblv8Tb1YQa7BhcVWVKdKO/Fd9pBrqH5YE4dWU9qnFrUMVJC
	lg6IGLCoyeMmFy4KkZXkL4961IMGVw3Z8IcNI4WnO+UIDd5WBLhYGvQYG3VGoe5u+g==
X-Gm-Gg: AY/fxX5ACZjV9InyDpg/tnAOvYBwzAq+bR0JCm8jKaXb7tQuakNfvUleFtiX2hLsQoQ
	DtF4L2ZSKzwDZ2IDf8hCUUWGnGvC+uZgFDgBksz3kFgDwYejrMBM+4EQPtmWkmKAw4nG4YtkvMm
	NkhOKewc3B91UTwqgeVeIkF+DnvuhFtMcAGHsz3Q2c/v7i07IjEjfb3m1duBLKc2sQsOaUFFW7O
	NY+LRWE8t2/QYCW3boj1GQ0wi20UBdNNLeq/NZjjXB1UKH5XRQgrZiVzCfe59YCW9ryogP4cCxr
	R97GjHEldhe05dOABUsZ/Y4k26BWjM04P4X6uFH8aLieT0DroYZJWge2Hb6ISiUlYsc4taLD7Ln
	drh2HoHFxxXhTC08C93mwTAb58XpJJzNfX4RBSrasvqOgI4HR+2vGIUgqcKtc7sAVG2wLK2ibux
	BgC8AZHeu/JmmFETIzs9+xCaCKJTTZb41lkkrX2U0gEWf6mJtZQTC/KLTxxjV0GjRxlPLLgCIv1
	sk=
X-Google-Smtp-Source: AGHT+IER8t25Edmik/0I/v5wM2t/A80Fb84UQFpMKqlhx/MXc1Ez7LtXXhYk4lKyPG4OR3h/kNqMUA==
X-Received: by 2002:a05:6000:240e:b0:431:16d:63c4 with SMTP id ffacd0b85a97d-4324e4f9344mr12004554f8f.32.1766392197301;
        Mon, 22 Dec 2025 00:29:57 -0800 (PST)
Message-ID: <a80dd079-ecda-48fa-b84e-3c00edd6840b@suse.com>
Date: Mon, 22 Dec 2025 09:29:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] vPCI: avoid bogus "overlap in extended cap list" warnings
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Chen Jiqian <Jiqian.Chen@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <26294a6d-e99b-4290-988a-da7b7b838651@suse.com>
 <e1fe4599-02e2-487d-a2c5-bc912fe8646e@amd.com>
 <c5f210b5-f321-4153-a508-1abf5fc43644@suse.com>
 <b3e23e9d-e18a-4412-88c9-3fc34de4f11b@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b3e23e9d-e18a-4412-88c9-3fc34de4f11b@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.12.2025 19:56, Stewart Hildebrand wrote:
> On 12/18/25 11:14, Jan Beulich wrote:
>> On 18.12.2025 16:37, Stewart Hildebrand wrote:
>>> On 12/18/25 02:56, Jan Beulich wrote:
>>>> The DomU part of the function worries me as well. Rather than making it
>>>> "read 0, write ignore" for just the first 32 bits, shouldn't we make it so
>>>> for the entire extended config space, and shouldn't we also make it "read
>>>> all ones, write ignore" when there is no extended config space in the
>>>> first place (then in particular also for the first 32 bits)?
>>>
>>> Hm, yes, perhaps. If we simply omit the call to vpci_add_register(), it should
>>> default to the "read all ones, write ignore" behavior.
>>
>> But it doesn't right now, unless I'm mistaken?
> 
> For !is_hardware_domain(d), any access that isn't explicitly handled with
> vpci_add_register{,*}() will default to "read all 1s, write ignore". See
> vpci_{read,write}_hw().

Oh, indeed - I keep forgetting that "read hardware" as indicated by the name
doesn't really mean "read hardware" in all cases. (IOW I find this confusing.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 22 08:39:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 08:39:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1191978.1511350 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXbS8-00042u-Go; Mon, 22 Dec 2025 08:39:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1191978.1511350; Mon, 22 Dec 2025 08:39:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXbS8-00042n-Dw; Mon, 22 Dec 2025 08:39:40 +0000
Received: by outflank-mailman (input) for mailman id 1191978;
 Mon, 22 Dec 2025 08:39:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ezST=64=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vXbS6-00042h-I4
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 08:39:38 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bf3a4df3-df11-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 09:39:36 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-42fb0fc5aa4so3008737f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 00:39:36 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea1b1bdsm20250637f8f.8.2025.12.22.00.39.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Dec 2025 00:39:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf3a4df3-df11-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766392776; x=1766997576; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kM/G+3vOlIVJr3eIOgvO/AXnK7vKxY6uR+eXbYXpnBI=;
        b=b9RkonsTa5gejcIMoQWk7VqE7aawvxxdeYPR3CPSrQGBbDfcbnyz1bfLdeENQVKhl7
         swA3TcqWcqRbbFWdK97BBQKIKxA1GUgCtwiLo5DvzyAzOUlS7JKgAq1R6VzxOk/i2tUS
         B/7WMTXBPcfz/6xMLAwIMTLtmutZUnMeHCC9PzqssHtUYpuezAE1LH+1z0i+NPi/guUj
         /OHdNJ3c+HL9BvP2EX3DYwdADVMlq9oVbxd8s8Yy1+WlUKYSmUwxMjSOj4rCPm4s4mqC
         dOE91AXPv/o7fr+q8R3SkEh9C6RjfjvFGAXTa+aq5nZSsdiWyeMGz/c9Y8DYuAI64a1w
         Khpg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766392776; x=1766997576;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kM/G+3vOlIVJr3eIOgvO/AXnK7vKxY6uR+eXbYXpnBI=;
        b=rpaRRL0RHSYluJ2MJ/EWqhoP8sKlDbJ02rNQ7bmGrzJMRSbqgode3clqXx48WKuGxq
         Rl0sZ9hGKfzhgFhLL2JeVadS2p6ruGqemR45LLkNAngFDqsbkTCDFdoHPVU9QLHfWzO0
         Iy7Ut86DcjXNf7puokXKHZIxBMVjM4XVAxmQV8bgTnJUB+1yiEOAklXi6BEoIhkNzRRd
         88vsfK04kpxD5MpVnkVUJ4gA1prXpajT23a4Tc82oNdgQ6fuJE8dv8Cc2u15YVVhCYFL
         4XSiNxE3QmPrc6iQ5FOAwufzZHcLd2oCzMOHrFQUUKDnQWFvYBFfFko0BT+MXeQ0xWQK
         wbYw==
X-Gm-Message-State: AOJu0YwjPjnLzuCMBnu8WETtQD5BUTReqXa7NzW2+H6moSVVcEv+SgKk
	2FXfOlz13UfLTR8351RZP7Bs7bShjSmcuSKEHFVAK1l+e35xfQAwSenEaf7d4mTDUA==
X-Gm-Gg: AY/fxX4+ZGB5Brg+MSBk2RVzeER/6gcRYYeX6BUFHmhIChT0o2tY3Tf99LycaFSaDbx
	JoPAsGAROrpllMbd5H+ndZh8wqpfIzexPB57JUsO/d6IEnVlAROBaVwRsDHcrr9inEqS+/Sq+2i
	npsQrAkvPasbPFUSyWJ4xmYqqfvZ1xgLY9WbAsMkAWzSbg5qo8dvOQOVsdJNsC8Vr4GRqnI055v
	89UG0JHWrYtUQyhvhBqR9wmHsUhi2BqWcfExz6vmaCf+NtZAW3uwhyfoSq9px9sQQTtAAU59Ui5
	m9CZp+3fXek426f8o61fM7FFK9UKu0HVwOjvXHj5Q3g3EV1yvzz6Jcm1wbGlbHG9feb+h3aV9x6
	WgMfOpaz8QWxuVsK9IobPTI7ee8CBzFNN4F9YY9FHbUPTyVCVxFOKDOwTle8P9EGGDuUsmzQ+3z
	4suI9lfMJahb+0mzqrfrrjjoKE+ozSL8KUR67sFD+cBY0g55X8QbYtWqw+qedwUc3YdGC90HQ9C
	xk=
X-Google-Smtp-Source: AGHT+IELJDtylkiXIOj/1JApop7nYHXK3BTk53NIp3FKZhWQEepymwHi3KDGNKsOR6MYtSO0ZceJ3g==
X-Received: by 2002:a5d:588c:0:b0:42f:b707:56cc with SMTP id ffacd0b85a97d-4324e4fdb0bmr10316197f8f.30.1766392775951;
        Mon, 22 Dec 2025 00:39:35 -0800 (PST)
Message-ID: <4159dd59-4301-4265-bb5c-82949ed095a9@suse.com>
Date: Mon, 22 Dec 2025 09:39:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] vPCI: avoid bogus "overlap in extended cap list" warnings
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Chen Jiqian <Jiqian.Chen@amd.com>
References: <26294a6d-e99b-4290-988a-da7b7b838651@suse.com>
 <aUUPPPYyuLUdj3XJ@Mac.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aUUPPPYyuLUdj3XJ@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.12.2025 09:39, Roger Pau Monné wrote:
> On Thu, Dec 18, 2025 at 08:56:24AM +0100, Jan Beulich wrote:
>> Legacy PCI devices don't have any extended config space. Reading any part
>> thereof may very well return all ones. That then necessarily means we
>> would think we found a "loop", when there simply is nothing.
>>
>> Fixes: a845b50c12f3 ("vpci/header: Emulate extended capability list for dom0")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> With the U suffix added to the constant, as noted by Stewart.

Thanks, albeit I'm not quite convinced I actually should put it in. Imo ...

>> ---
>> This is the minimalistic change to get rid of "overlap in extended cap
>> list" warnings I'm observing. We may want to avoid any attempt to access
>> extended config space when there is none - see Linux'es
>> pci_cfg_space_size() and it helper pci_cfg_space_size_ext(). This would
>> then also avoid us interpreting as an extended cap list what isn't one at
>> all (some legacy PCI devices don't decode register address bits 9-11, some
>> return other non-0, non-all-ones data). Including the risk of reading a
>> register with read side effects. Thoughts?
> 
> I think that's likely too much - for the hardware domain we want to
> allow the domain to access all the PCI config space, regardless of
> Xen's thinking there's nothing there.

... we really need to do better here, irrespective of this intended behavior
for hwdom. Us accessing the supposed extended capabilities list is already a
mistake when there's no extended config space. Us then calling
vpci_add_register() to "pin down" the value read is wrong too in that case.

Question here is whether even with that fixed the check being added here
would make sense to keep. In that case putting it in now and then doing the
other re-work would likely be the right thing to do.

>> The DomU part of the function worries me as well. Rather than making it
>> "read 0, write ignore" for just the first 32 bits, shouldn't we make it so
>> for the entire extended config space, and shouldn't we also make it "read
>> all ones, write ignore" when there is no extended config space in the
>> first place (then in particular also for the first 32 bits)?
> 
> If there's no explicitly handler added, the behavior for domU will
> already be to drop writes, and return reads as all 1s, which is fine
> for the rest of the extended config space?  We just need to return 0
> for the first 32bits to avoid seeming to have extended capability
> support.
> 
> Maybe we want to keep the same behavior as expected from native for
> legacy devices and just return all 1s consistency for the extended
> space?
> 
> Hence we don't need to special case this region, as it's already
> covered by how unhandled accesses are resolved for domUs.
> 
> Or is there something else I'm missing?

Imo correct behavior would be to return 0 for the first 32 bits when there
is extended config space, and ~0 when there isn't.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 22 09:29:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 09:29:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1191991.1511360 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXcE0-000272-5P; Mon, 22 Dec 2025 09:29:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1191991.1511360; Mon, 22 Dec 2025 09:29:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXcE0-00026v-1G; Mon, 22 Dec 2025 09:29:08 +0000
Received: by outflank-mailman (input) for mailman id 1191991;
 Mon, 22 Dec 2025 09:29:07 +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
 <SRS0=ACBk=64=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vXcDz-00026o-0H
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 09:29:07 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a8b85f19-df18-11f0-b15b-2bf370ae4941;
 Mon, 22 Dec 2025 10:29:05 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b8010b8f078so417282866b.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 01:29:05 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037f0cea9sm1004585166b.50.2025.12.22.01.29.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Dec 2025 01:29:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8b85f19-df18-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766395745; x=1767000545; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=WyLPU9tbT4xZZUFu/tHiEIakHD60OzKB2/ADSRPhBcg=;
        b=dvOvIKgIsL4HlB3NEexzktsUZBNNln4CsE7JZtNNwDAM0r9iELX/j9q2TSa+hKJeXg
         grGCvv35/GGM60cw1aQiL9tEnyjiPGoo+1I0ydkTFPqtgWwgrGz46ezYNOABxouiqUm/
         eRmCTq26dfRWUDN8Te9nRBD0NDINdtiit7+LairvwKIgfr+DUzNo91uJ0XcCh/xI09wM
         9HOAX84S63VjzyfIvSIj+2rf6kYWQEQ6FDHi3crGRS9q/nOE2+/40HsZh5hp62loPSIv
         w48P8g+9Kfhs1zXstTlkh+HeCDUmYryTpcVQji+T9qhWV6fcBMVYIunDjQOFyPbrp4Zg
         pIkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766395745; x=1767000545;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=WyLPU9tbT4xZZUFu/tHiEIakHD60OzKB2/ADSRPhBcg=;
        b=xPHq7ud+MvJJWOrkm9DULarKjMcXgDZT9VZ/xbQzxPegQE+nudfadKQ9gmWkAo0nme
         g+y3pz2uHANCi0psnf1QTsAzPgAY97xKW3/yeZ7v+vmuPnSDXC4WMtRa97PoPsDH7Fml
         pIdDnPl0lwPmkVzMvXEYUO2MSG5ZSlDXZcwPTfra3mjMK4vH8jjkI0URCQhrtg13NBb1
         2i7wljG+MK8TdNcKmNUm6uf044Pxyglx6GD0RGVslKfcjXPd/m3q7SQ4ylY9nGEFJYex
         Kmn/NE+yEVJhtqma1elW3Er0AmEV+kHZB2c9SdpA1mwtzLKnxgd5gj5o6uc7YlrL4vWQ
         RAJg==
X-Forwarded-Encrypted: i=1; AJvYcCWY7+sDysi4XGbTsrkv/U970WwN9K3LVxXSDzcIAKtVyg4WsbJ9byC8c4j+blJCVzjgLeb678gMTrM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywb33zNOlWOWX51uwrBZMTgKT+QlTioGjJaDMZOviVNuYbJ7F3c
	hQBpU8ovYstzImYtQoj9xCuYFZ109oOCvPj90sTbqWv+/+9tILlkv6Ld
X-Gm-Gg: AY/fxX4Hy7RNnyA/zWaXqZOi/W07bzgVc9+2kgIixlhjfPloRdydhy3FdJLXb15X6bi
	EGJ6Wsbcw0NYRK/0FsEK/ZfSy09NfXrFK8kyFYsGdkagEZG3qbI1ga7awYTE4MvVJK980QO8y0M
	1m2PkxEwWljDQQ7CVLNwHNJn8ars8F9dwZkVTjTLVHT4kFtz+wNZyDvkrxEQOVGWQAIXFg0LZDk
	RTfV97YmZOj/C4DBAY1QyELIHD6Vzm/5diNdxh1yGyHo11EGGRAsLIak6tdIxRVf+0w6RblRGBb
	LkgYzrMvzIc769938eox4OnOgYscHHMpW+GOn1ACjwjuGuw5M1Ug/Ic/BVx5UtXRhnJPK9jXI0i
	91Jjyeql7wcIYQkUsK+dKY0GAP3y3XJew6eOngcwd0ml82vfDfuuHh8R8PiTzkQm+B7y3o4EEWE
	xjwLmG9haEtOCJtj+v9R4uKEZe74pd6Gx/3Cx9cMKal2LwobW3G6VnW4w2I3E7MM5q
X-Google-Smtp-Source: AGHT+IFrWxgGHotCz5vwlquwEdm4+b1COzc5kxDrkHKeDo/hOYAHrPleBnMSL5kfpGpoG3DRm5UAnA==
X-Received: by 2002:a17:907:980a:b0:b76:d880:e70b with SMTP id a640c23a62f3a-b80371d5006mr1107911866b.55.1766395744214;
        Mon, 22 Dec 2025 01:29:04 -0800 (PST)
Message-ID: <46373e3b-51e7-4843-82c8-9c0c2d644b16@gmail.com>
Date: Mon, 22 Dec 2025 10:29:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen/riscv: add RISC-V legacy SBI extension support
 for guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1765888425.git.oleksii.kurochko@gmail.com>
 <df7a7e94fba79265138d6cc8d23b1f6b958f5bd5.1765888425.git.oleksii.kurochko@gmail.com>
 <08105722-0920-462a-aeba-a36f8044a5dc@suse.com>
 <dddbd311-99a2-44b1-926e-f3859ff936dc@gmail.com>
 <d3f6189d-7a4b-4d7e-8b22-71c325ce109e@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <d3f6189d-7a4b-4d7e-8b22-71c325ce109e@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 12/22/25 8:40 AM, Jan Beulich wrote:
> On 19.12.2025 21:04, Oleksii Kurochko wrote:
>> On 12/18/25 3:20 PM, Jan Beulich wrote:
>>> On 17.12.2025 17:54, Oleksii Kurochko wrote:
>>>> This commit adds support for legacy SBI extensions (version 0.1) in Xen
>>>> for guest domains.
>>>>
>>>> The changes include:
>>>> 1. Define all legacy SBI extension IDs (0x0 to 0x8) for better clarity and
>>>>      completeness.
>>>> 2. Implement handling of legacy SBI extensions, starting with support for
>>>>      SBI_EXT_0_1_CONSOLE_{PUT,GET}CHAR.
>>> I can't spot any actual support for GETCHAR.
>>>
>>>> --- /dev/null
>>>> +++ b/xen/arch/riscv/vsbi/legacy-extension.c
>>>> @@ -0,0 +1,65 @@
>>>> +
>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>>> +
>>>> +#include <xen/console.h>
>>>> +#include <xen/lib.h>
>>>> +#include <xen/sched.h>
>>>> +
>>>> +#include <asm/processor.h>
>>>> +#include <asm/vsbi.h>
>>>> +
>>>> +static void vsbi_print_line(char c)
>>> Misleading function name? The parameter doesn't fit the name, and ...
>> It was called only because of ...
>>
>>>> +{
>>>> +    struct domain *cd = current->domain;
>>> I guess you copied this code from somewhere, but a variable of this type and
>>> contents wants to be named "currd".
>>>
>>>> +    struct domain_console *cons = cd->console;
>>>> +
>>>> +    if ( !is_console_printable(c) )
>>>> +        return;
>>>> +
>>>> +    spin_lock(&cons->lock);
>>>> +    ASSERT(cons->idx < ARRAY_SIZE(cons->buf));
>>>> +    if ( c != '\n' )
>>>> +        cons->buf[cons->idx++] = c;
>>>> +    if ( (cons->idx == (ARRAY_SIZE(cons->buf) - 1)) || (c == '\n') )
>>>> +    {
>>>> +        cons->buf[cons->idx] = '\0';
>>>> +        guest_printk(cd, XENLOG_G_DEBUG "%s\n", cons->buf);
>>> ... you also only print a line under certain conditions.
>> ... this. (for the same reason as hvm_print_line() which has an argument
>> 'uint32_t *val' but inside function working with chars because of
>> 'char c = *val;')
>>
>> I will change the name to vsbi_print_char().
>>
>>>> +        cons->idx = 0;
>>>> +    }
>>>> +    spin_unlock(&cons->lock);
>>>> +}
>>>> +
>>>> +static int vsbi_legacy_ecall_handler(struct vcpu *vcpu, unsigned long eid,
>>>> +                                     unsigned long fid,
>>>> +                                     struct cpu_user_regs *regs)
>>>> +{
>>>> +    int ret = 0;
>>>> +
>>>> +    switch ( eid )
>>>> +    {
>>>> +    case SBI_EXT_0_1_CONSOLE_PUTCHAR:
>>>> +        vsbi_print_line((char)regs->a0);
>>> The cast isn't really needed, is it?
>> No, I think it could be omitted.
>>
>>>    And just to double-check: The spec demands
>>> the upper bits to be ignored? (A link to the spec could have been useful, e.g.
>>> in the cover letter.)
>> It doesn't mention anything about upper bit for PUTCHAR:
>>     https://github.com/riscv-non-isa/riscv-sbi-doc/blob/master/src/ext-legacy.adoc#extension-console-putchar-eid-0x01
>>     (I will add a link to the spec in the cover letter.)
>> So I assume that they don't care about it. (IIUC your question correctly).
> I fear such a conclusion cannot be easily drawn. The parameter there is even
> "int". Anything not ASCII will remain unclear how to handle until the spec is
> changed to actually say what is intended.

Then it makes sense to add "WARN_ON(regs->a0 >> __CHAR_BIT__);" in
SBI_EXT_0_1_CONSOLE_PUTCHAR case block.

>
>>>> +        break;
>>>> +
>>>> +    case SBI_EXT_0_1_CONSOLE_GETCHAR:
>>>> +        ret = SBI_ERR_NOT_SUPPORTED;
>>>> +        break;
>>>> +
>>>> +    default:
>>>> +        /*
>>>> +         * TODO: domain_crash() is acceptable here while things are still under
>>>> +         * development.
>>>> +         * It shouldn't stay like this in the end though: guests should not
>>>> +         * be punished like this for something Xen hasn't implemented.
>>>> +         */
>>> Question then is why SBI_EXT_0_1_CONSOLE_GETCHAR gets a separate case block.
>> Because we intentionally do not support|SBI_EXT_0_1_CONSOLE_GETCHAR|,|domain_crash()|
>> should not be called for it.
> That contradicts the patch description saying "starting with support for
> SBI_EXT_0_1_CONSOLE_{PUT,GET}CHAR." (Still in context at the top.)

I will update the patch description. I just thought that that returning of "not supported"
for *_GETCHAR() could count as an implementation.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Dec 22 09:57:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 09:57:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192008.1511371 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXcfh-0006FG-Bk; Mon, 22 Dec 2025 09:57:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192008.1511371; Mon, 22 Dec 2025 09:57:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXcfh-0006F9-7V; Mon, 22 Dec 2025 09:57:45 +0000
Received: by outflank-mailman (input) for mailman id 1192008;
 Mon, 22 Dec 2025 09:57:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ezST=64=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vXcfg-0006F3-AI
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 09:57:44 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a6175863-df1c-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 10:57:41 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-42b3c5defb2so2466877f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 01:57:38 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324eab2c4fsm21149809f8f.42.2025.12.22.01.57.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Dec 2025 01:57:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a6175863-df1c-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766397458; x=1767002258; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=R6qONmfhrp0vYklg3MG5Tlx7YLSOohcz7juIkmdsYLo=;
        b=FcvX3hzBLSlFUtpK15VBKskD52lMbW8fvspRpSUZEbhnDIIFXN2kcdwh2a4ng1hKkm
         If+jCEvskMgGSTohZ7+eKUAPwjVwAZW2mMtlavmYMff3cvfVhgyFCoM25y5K9Y1isD+d
         WZJ9VAKneTSMtFlej82RxlpZhy8svE4kBll2KVse3h+/y02mQUj/LHAS8AS2vyDuyQNd
         4k5y++63VOo13J+7RLQZsQxKdazJ4YDiMqe2AHd41c06zi1jLiUmhR0ZQw1Cmp2AGKPB
         EmsBRAHGuo5nrqMdnLeVp2Cc4c03S6AE9cRLIHcoMk+aARa4MvHTCaELslXytNY9/abr
         zwgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766397458; x=1767002258;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=R6qONmfhrp0vYklg3MG5Tlx7YLSOohcz7juIkmdsYLo=;
        b=nguHYrhVsemNxyOgONbpLeCxzumyH1rS3ibcrqIer8tzkjDGwjipmhkQEuEmKZfdxq
         07bm2PstRQDAuJ3bibgqy9gCW97l36phCNf9w7uY5CPDVwE1sBsKKXqO4P7LmIKbFF3d
         RkktN9jT46pXKo3qKbmrgoT+r4ivmC0GOtqxzkicYMstri/7VYrwottpUNSl7exbdeI6
         pf1jIdHE0p1qzNjMieHawF+aybJ5J78iXv1uir6C6Xl3RMvgaHApeNSC6ws4YjmZ8NQs
         4j3dTBFD2GUMwiVT4BIC8acCaQJvRht5hJAwyE1zNSEGTOJhwF7nINReHSMiEyfXMXUw
         qnyw==
X-Forwarded-Encrypted: i=1; AJvYcCUfMf4Q7vuP2H7i6Na9oPGvg2My0esO2hJrNbrc9wyCTOuM3ws5bv5Ck8FkI9JXs7o53mTvaO5qxMs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YznEfgWU2FB+UcO8WuPrM3Sk+cSTksYP6sScMeQeuNQVYI+fC9+
	pHr3ERWe28MH7Sz8miWTXijLWIR9VEdj060oK7EgpwFAcbnRCHbnHOhuUmoBtBPMig==
X-Gm-Gg: AY/fxX4EaANDlSwJPupJFV1SX5jewGKzvjPKVFaqDvrfmL4+/D+K4+jSn+GSsud3afb
	38YNgxpnSjoK2WQIqOuCyOpT5LPnkD1A/BMBdXqB1uwjoSl88lQjh6bH4byCFUlHWU1yewgx5Q9
	K8IFXiOMwTj1ll+J5p3lsZ0c5qd1PaZdL4vti0MJ9rI2qFCokzbCd/E8A4IQO2lfkoyXYFrT2Vq
	/TMeS4ahy9JZ/IPydyveQ3tNyoNNBhkZ9jEuc4w8kWnZb7UhTpFyAPRvhz7JXXKygIBP9SfOQ8Z
	B+BlR9bjjgN4SF5Nng2IMT0o1fuPBYyqgnPawmzJBCRiYAG42eZsFjQiaAZmee+7I+yG5QJQdxc
	a/oR6hxJWigmY4+9wddEvqfU64ixAMZ3NWwnvAaJCGXK5acp+KsEhUWKa2rxA9vg177iWrbZLYq
	4hTBNAjhe5rik8VVPPbD3/T8/dXnbXv4td8X9ysJvlBV/GK343qs43kqIIl156hUtn7bLlJsv3v
	sw=
X-Google-Smtp-Source: AGHT+IEyikmEJrBQhC3NqhvIV6WstZ6NEvftKFaVHflHLw7d/OOem8r2cZI6I09Wh4761kJLCJDIFw==
X-Received: by 2002:a05:6000:604:b0:430:7d4c:3dbc with SMTP id ffacd0b85a97d-4324e50b175mr12965835f8f.53.1766397458159;
        Mon, 22 Dec 2025 01:57:38 -0800 (PST)
Message-ID: <b4e28b55-dbb0-4129-98d4-784cab026302@suse.com>
Date: Mon, 22 Dec 2025 10:57:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen/riscv: add RISC-V legacy SBI extension support
 for guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1765888425.git.oleksii.kurochko@gmail.com>
 <df7a7e94fba79265138d6cc8d23b1f6b958f5bd5.1765888425.git.oleksii.kurochko@gmail.com>
 <08105722-0920-462a-aeba-a36f8044a5dc@suse.com>
 <dddbd311-99a2-44b1-926e-f3859ff936dc@gmail.com>
 <d3f6189d-7a4b-4d7e-8b22-71c325ce109e@suse.com>
 <46373e3b-51e7-4843-82c8-9c0c2d644b16@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <46373e3b-51e7-4843-82c8-9c0c2d644b16@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.12.2025 10:29, Oleksii Kurochko wrote:
> On 12/22/25 8:40 AM, Jan Beulich wrote:
>> On 19.12.2025 21:04, Oleksii Kurochko wrote:
>>> On 12/18/25 3:20 PM, Jan Beulich wrote:
>>>> On 17.12.2025 17:54, Oleksii Kurochko wrote:
>>>>> This commit adds support for legacy SBI extensions (version 0.1) in Xen
>>>>> for guest domains.
>>>>>
>>>>> The changes include:
>>>>> 1. Define all legacy SBI extension IDs (0x0 to 0x8) for better clarity and
>>>>>      completeness.
>>>>> 2. Implement handling of legacy SBI extensions, starting with support for
>>>>>      SBI_EXT_0_1_CONSOLE_{PUT,GET}CHAR.
>>>> I can't spot any actual support for GETCHAR.
>>>>
>>>>> --- /dev/null
>>>>> +++ b/xen/arch/riscv/vsbi/legacy-extension.c
>>>>> @@ -0,0 +1,65 @@
>>>>> +
>>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>>>> +
>>>>> +#include <xen/console.h>
>>>>> +#include <xen/lib.h>
>>>>> +#include <xen/sched.h>
>>>>> +
>>>>> +#include <asm/processor.h>
>>>>> +#include <asm/vsbi.h>
>>>>> +
>>>>> +static void vsbi_print_line(char c)
>>>> Misleading function name? The parameter doesn't fit the name, and ...
>>> It was called only because of ...
>>>
>>>>> +{
>>>>> +    struct domain *cd = current->domain;
>>>> I guess you copied this code from somewhere, but a variable of this type and
>>>> contents wants to be named "currd".
>>>>
>>>>> +    struct domain_console *cons = cd->console;
>>>>> +
>>>>> +    if ( !is_console_printable(c) )
>>>>> +        return;
>>>>> +
>>>>> +    spin_lock(&cons->lock);
>>>>> +    ASSERT(cons->idx < ARRAY_SIZE(cons->buf));
>>>>> +    if ( c != '\n' )
>>>>> +        cons->buf[cons->idx++] = c;
>>>>> +    if ( (cons->idx == (ARRAY_SIZE(cons->buf) - 1)) || (c == '\n') )
>>>>> +    {
>>>>> +        cons->buf[cons->idx] = '\0';
>>>>> +        guest_printk(cd, XENLOG_G_DEBUG "%s\n", cons->buf);
>>>> ... you also only print a line under certain conditions.
>>> ... this. (for the same reason as hvm_print_line() which has an argument
>>> 'uint32_t *val' but inside function working with chars because of
>>> 'char c = *val;')
>>>
>>> I will change the name to vsbi_print_char().
>>>
>>>>> +        cons->idx = 0;
>>>>> +    }
>>>>> +    spin_unlock(&cons->lock);
>>>>> +}
>>>>> +
>>>>> +static int vsbi_legacy_ecall_handler(struct vcpu *vcpu, unsigned long eid,
>>>>> +                                     unsigned long fid,
>>>>> +                                     struct cpu_user_regs *regs)
>>>>> +{
>>>>> +    int ret = 0;
>>>>> +
>>>>> +    switch ( eid )
>>>>> +    {
>>>>> +    case SBI_EXT_0_1_CONSOLE_PUTCHAR:
>>>>> +        vsbi_print_line((char)regs->a0);
>>>> The cast isn't really needed, is it?
>>> No, I think it could be omitted.
>>>
>>>>    And just to double-check: The spec demands
>>>> the upper bits to be ignored? (A link to the spec could have been useful, e.g.
>>>> in the cover letter.)
>>> It doesn't mention anything about upper bit for PUTCHAR:
>>>     https://github.com/riscv-non-isa/riscv-sbi-doc/blob/master/src/ext-legacy.adoc#extension-console-putchar-eid-0x01
>>>     (I will add a link to the spec in the cover letter.)
>>> So I assume that they don't care about it. (IIUC your question correctly).
>> I fear such a conclusion cannot be easily drawn. The parameter there is even
>> "int". Anything not ASCII will remain unclear how to handle until the spec is
>> changed to actually say what is intended.
> 
> Then it makes sense to add "WARN_ON(regs->a0 >> __CHAR_BIT__);" in
> SBI_EXT_0_1_CONSOLE_PUTCHAR case block.

Well, no, or at least not longer term: Like you may not ASSERT() or BUG_ON() on
guest controlled data, you may not WARN_ON() on such.

>>>>> +        break;
>>>>> +
>>>>> +    case SBI_EXT_0_1_CONSOLE_GETCHAR:
>>>>> +        ret = SBI_ERR_NOT_SUPPORTED;
>>>>> +        break;
>>>>> +
>>>>> +    default:
>>>>> +        /*
>>>>> +         * TODO: domain_crash() is acceptable here while things are still under
>>>>> +         * development.
>>>>> +         * It shouldn't stay like this in the end though: guests should not
>>>>> +         * be punished like this for something Xen hasn't implemented.
>>>>> +         */
>>>> Question then is why SBI_EXT_0_1_CONSOLE_GETCHAR gets a separate case block.
>>> Because we intentionally do not support|SBI_EXT_0_1_CONSOLE_GETCHAR|,|domain_crash()|
>>> should not be called for it.
>> That contradicts the patch description saying "starting with support for
>> SBI_EXT_0_1_CONSOLE_{PUT,GET}CHAR." (Still in context at the top.)
> 
> I will update the patch description. I just thought that that returning of "not supported"
> for *_GETCHAR() could count as an implementation.

It counts as an implementation, but calling such "support" goes too far imo.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 22 10:34:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 10:34:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192017.1511379 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXdEd-0002wd-Ti; Mon, 22 Dec 2025 10:33:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192017.1511379; Mon, 22 Dec 2025 10:33:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXdEd-0002wW-R8; Mon, 22 Dec 2025 10:33:51 +0000
Received: by outflank-mailman (input) for mailman id 1192017;
 Mon, 22 Dec 2025 10:33:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ezST=64=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vXdEc-0002wQ-M9
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 10:33:50 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b31585d0-df21-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 11:33:48 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-477b5e0323bso24452155e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 02:33:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea22674sm21900700f8f.10.2025.12.22.02.33.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Dec 2025 02:33:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b31585d0-df21-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766399627; x=1767004427; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=p5/knIgOEOu9E/fUoy13iVCzcZC0VgGVlLf1H4S1hZk=;
        b=Cpez3oyZtI+nYDO9rH98TiO9elMHLtEugOod1lPaT9gwhfy2e6s8KX6GLfODGBK9uG
         oudbrrTvX5+fLyljPXqOcTIfE0mH4GE/oiQkESPBzU0s1O2f+r7JLOxZV886NT88O4JZ
         BM+l3IwRhGsnheJ+o3ODjXbKqzBDLzvOjJO0WhTsOIjTlpyYu6CumpOggJapxIa4kRzW
         8y4UxwfEYtXxLmQIUjxRxBGcr/f82tLmdhyz0Z3jAzQNO5r6YvYVnHHn64ESV7cT3qTF
         W1e8QwEus/htMsg7sq/uYmqOaHbxTg+JLyiWBZyMtHjsKuUIOSZBofjLzScou9QGE5OQ
         1qCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766399627; x=1767004427;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=p5/knIgOEOu9E/fUoy13iVCzcZC0VgGVlLf1H4S1hZk=;
        b=oppgcAvjZcAdCwyGyKs1kX/R1YBFzUqCiNpClmvoi0liu24DCcdtM/Mxt+86A9EZdA
         Vl12YOsWewLSiCu3h37ZcRpB51/Xz3QbkC7JfwsVhMZpbK9QpF7FD2aIdcCc+OXSyvGP
         B1Lcboz/ThIh3Q3ST6NmcFyWh7ZcvyUkXV8/3eBnRY/TD1s7dCVBQ7623I+Yr/6FpfEU
         Nr/uN90UuERZU5ogdCXvTmuOTvJYEZze3TVMWfDCL19v/sIApqZ1d5eL3LZ6QECnUyX6
         mLlE8Eo3Puqfcwj4hDFgEC28rw0y8ZSJeMqiaY6J0cLgz3roETK2LnGBg39lwfe/yWOo
         tMRQ==
X-Gm-Message-State: AOJu0YyfmARUO6l/ez2tH2XQ39flzvqzAFhSf8ysflMwNPdM12Gw5eGy
	OS9nGeWCTetpMIHidwMXG98zTLG/wl3CtZi+UG86NZC8MK5gecIJB8AHcBLLFYcR+5e8nTh3KC0
	Vp14=
X-Gm-Gg: AY/fxX7vE353Yf9JluKHi3M02oTxxFUJqSSqkrgPfY2mmFqfnJMxn4muzZlzdOgpB3/
	MFwfd0ChSiwkseCATNg7C/5LADNrri3iDQwGIikHlkaEIZ/wiaMN9hlL1nY9JtY8J2LsPC1ZTDs
	dtC1uH3JlcI+rxLWZOXZLjl21qZCNHKVzAiR57yFMjUOD67j++xqY4rbsJ2sUWfWVIYD/gZUiut
	Pqg+Osqbg66lMCHyi1XUY3+P+prrzf+ZiIeqEFKsyloDMt1Gk9hOIoxbyjxEURMdPEQZRSTsejF
	3fXy+EZ4xPiI5gGvxSd1VS9tVTjpau2TEOKGX2kCcivxbMmE3w3kx6B6WOC6bKxOY9yrHvBzCQN
	zF0doevjOnaxKX1CggDRhWKOe2c0rsjAjCik5am/ENz+rqqijF528hxqdWuEU9OH6rWhY0XXZr4
	BQLKMH5njJ3S6kXFRe6ke9NN10Ze5r55kvnVVCtJne8w3rBRMhApoRxRSGK2sXdnqbK9yXhL8JD
	E4=
X-Google-Smtp-Source: AGHT+IETn/3FS5zkysbMWW6Y6GFvYHXnEUETdITfoq6pRnlrg4J+6Z0hc9iC3O5gcuK6QLZenMemSQ==
X-Received: by 2002:a05:6000:400b:b0:430:f74d:6e9f with SMTP id ffacd0b85a97d-432448b7e8emr16999556f8f.14.1766399627441;
        Mon, 22 Dec 2025 02:33:47 -0800 (PST)
Message-ID: <e3af387a-dd8b-4d58-8356-777319c7a2bf@suse.com>
Date: Mon, 22 Dec 2025 11:33:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2] memory: overlapping XENMAPSPACE_gmfn_range requests
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Overlapping requests may need processing backwards, or else the intended
effect wouldn't be achieved (and instead some pages would be moved more
than once).

With some adjustment there this also covers XEN_DMOP_relocate_memory,
where the potential issue was first noticed.

Fixes: a04811a315e0 ("mm: New XENMEM space, XENMAPSPACE_gmfn_range")
Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Of course an alternative would be to simply reject overlapping requests.
Then we should reject all overlaps though, I think. But since the code
change didn't end up overly intrusive, I thought I would go the "fix it"
route first.
---
v2: Adjust XEN_DMOP_relocate_memory handling for the working-backwards
    case.

--- a/xen/arch/x86/hvm/dm.c
+++ b/xen/arch/x86/hvm/dm.c
@@ -569,12 +569,16 @@ int dm_op(const struct dmop_args *op_arg
 
         rc = xenmem_add_to_physmap(d, &xatp, 0);
         if ( rc == 0 && data->size != xatp.size )
+        {
             rc = xatp.size;
+            xatp.idx += rc;
+            xatp.gpfn += rc;
+        }
         if ( rc > 0 )
         {
             data->size -= rc;
-            data->src_gfn += rc;
-            data->dst_gfn += rc;
+            data->src_gfn = xatp.idx;
+            data->dst_gfn = xatp.gpfn;
             const_op = false;
             rc = -ERESTART;
         }
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -849,7 +849,7 @@ int xenmem_add_to_physmap(struct domain
                           unsigned int start)
 {
     unsigned int done = 0;
-    long rc = 0;
+    long rc = 0, adjust = 1;
     union add_to_physmap_extra extra = {};
     struct page_info *pages[16];
 
@@ -884,8 +884,25 @@ int xenmem_add_to_physmap(struct domain
         return -EOVERFLOW;
     }
 
-    xatp->idx += start;
-    xatp->gpfn += start;
+    /*
+     * Overlapping ranges need processing backwards when destination is above
+     * source.
+     */
+    if ( xatp->gpfn > xatp->idx &&
+         unlikely(xatp->gpfn < xatp->idx + xatp->size) )
+    {
+        adjust = -1;
+
+        /* Both fields store "next item to process". */
+        xatp->idx += xatp->size - start - 1;
+        xatp->gpfn += xatp->size - start - 1;
+    }
+    else
+    {
+        xatp->idx += start;
+        xatp->gpfn += start;
+    }
+
     xatp->size -= start;
 
 #ifdef CONFIG_HAS_PASSTHROUGH
@@ -903,8 +920,8 @@ int xenmem_add_to_physmap(struct domain
         if ( rc < 0 )
             break;
 
-        xatp->idx++;
-        xatp->gpfn++;
+        xatp->idx += adjust;
+        xatp->gpfn += adjust;
 
         if ( extra.ppage )
             ++extra.ppage;
@@ -927,7 +944,10 @@ int xenmem_add_to_physmap(struct domain
 
         this_cpu(iommu_dont_flush_iotlb) = 0;
 
-        ret = iommu_iotlb_flush(d, _dfn(xatp->idx - done), done,
+        if ( likely(adjust > 0) )
+            adjust = done;
+
+        ret = iommu_iotlb_flush(d, _dfn(xatp->idx - adjust), done,
                                 IOMMU_FLUSHF_modified);
         if ( unlikely(ret) && rc >= 0 )
             rc = ret;
@@ -941,13 +961,26 @@ int xenmem_add_to_physmap(struct domain
         for ( i = 0; i < done; ++i )
             put_page(pages[i]);
 
-        ret = iommu_iotlb_flush(d, _dfn(xatp->gpfn - done), done,
+        ret = iommu_iotlb_flush(d, _dfn(xatp->gpfn - adjust), done,
                                 IOMMU_FLUSHF_added | IOMMU_FLUSHF_modified);
         if ( unlikely(ret) && rc >= 0 )
             rc = ret;
     }
 #endif
 
+    /*
+     * For internal callers (e.g. XEN_DMOP_relocate_memory handling) leave
+     * the GFNs from where to resume in *xatp (they're correct already when
+     * we worked forwards). These are the values not biased for a possible
+     * non-zero "start" that a subsequent invocation might use, so also do
+     * this updating only when incoming "start" was 0.
+     */
+    if ( rc > 0 && !start && unlikely(adjust < 0) )
+    {
+        xatp->idx -= xatp->size - rc - 1;
+        xatp->gpfn -= xatp->size - rc - 1;
+    }
+
     return rc;
 }
 


From xen-devel-bounces@lists.xenproject.org Mon Dec 22 10:44:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 10:44:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192027.1511390 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXdOj-0004cy-Rn; Mon, 22 Dec 2025 10:44:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192027.1511390; Mon, 22 Dec 2025 10:44:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXdOj-0004cr-Nt; Mon, 22 Dec 2025 10:44:17 +0000
Received: by outflank-mailman (input) for mailman id 1192027;
 Mon, 22 Dec 2025 10:44:16 +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 <SRS0=ezST=64=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vXdOi-0004cl-IS
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 10:44:16 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 285bce78-df23-11f0-b15b-2bf370ae4941;
 Mon, 22 Dec 2025 11:44:14 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-477770019e4so32828705e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 02:44:14 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47be3ac5409sm91542085e9.15.2025.12.22.02.44.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Dec 2025 02:44:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 285bce78-df23-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766400254; x=1767005054; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YEl4NTplPsoOXXXkGSP9wfMuOcwX8N0nGF7mYuPNQtA=;
        b=CC23UTnlUy76yVoC0KdE/MatqFsCWmrQmvk1CljdbTVxn62BwEKg2o3F0QyweVF8ua
         ovIsDjF62JH3Cng1UuJH7EFqQpJMkpuZ6/6BOzZeTDQbcL0vXbwdwyFaef+Gxjzqs8D2
         WqED8inTnNw5UOLaS+Gk3tqQ2vWK7Vvh5Yv0twUSnrbTejhIC/1nWJcNSesWWaqZSRnv
         1uYz84b66we4iT3cgXs/uO0bmTA48zwwtQNH8IsbWdd73oNC6ovCjbUFzzzBsMGGkEnL
         X8qRp3vzqNV3RhYaGrx4/L0jh1XCtVdus6t0oSEb7CbJFJQdBxnU4Hs73NLhRDH6dF0I
         fuqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766400254; x=1767005054;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YEl4NTplPsoOXXXkGSP9wfMuOcwX8N0nGF7mYuPNQtA=;
        b=UtA8HPYJLMjlGz7R+rin2o9DqliR8GIGvDa/0x1yNC3Av3iKicEjWknXgeOGKvQXUg
         +/iQ3GyEzd5+V1xf9z1dT5dBpv2Q6I+NtOAfGyCyzXAb9DmSMEVIOwhCPSbK+i9rB9AN
         JXYFn6e8t6GGvsdjLe3davGaLzrBqN1PBKR/5zbS5RqL9OCO4Upb1XIOFftDkNig2M25
         PgtwX7urNDoPTSp2vqp31K1mNaRrrnotFHMJoa9JcwWHKM+F7nA8TZ1kmtle66JYYS6f
         BwhNBN85bGopsvWKm9OV1OObK4Q1VvLjNBipH59i5+LthCS4PjLQswMhvZ9AYy5g7k/I
         XrMA==
X-Forwarded-Encrypted: i=1; AJvYcCUbh/UgLYKEkYd5FR15JmQg/4o57+qG9LwpYyi7p+hGNTgSDT383sXMYrt3TZkOoF4ZfrKp10mS0j4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzkqAg6nD0xgAc90GP4ZUZv3C8oBvTDoZZE/cbURz5p4argZNcj
	X05/tFhQ/4HhdZgD7UIsWtfR4Ma2ZJcgqtfxZBxsxLj96WjmihCh+Aky/Mm2s6iA1v1IPYZVoTa
	lLHA=
X-Gm-Gg: AY/fxX7jygBse4rVKU4+aLWAw+x/pd8Da4rU+3jfJ8Xv/3vBL0y4d/Bnsywo6P9Unhe
	7xBFxT7gjaecCF0eqnTEdQOa1MkCl9IAUbIzmoJTWUNxchirOt9Hp03QJTS1oHF0QtYJaZOzIuh
	S68guVK/82VQMp0fTbpIbdWT9jFikIcvgetb7+lMhmZm7r4RhcjywhOIAVE0RPr6Fr4IUkfxADA
	B1AyQrAiIYZX6IQq2EmfKZdpQt61xHlmyn6EIdKPbj49emwVwzG3J+0eglR0fru587twib4z20N
	LkhYMmO0lIWaJNgsdBg3Ku5Y1MwNyi4l3wqES3pQz40UyoFtL8ynbjfiX65lCHUrHUKS1LnO9uT
	jlj3B3Q8Y5mWvn6P/3tq3Yz6fz9Lnp3RobGJEB579hPDfx8821iPrFR3EJ0JEo1znTHW5ktndV7
	cd/c6XI4iCZBw1y7Oen56wY6kg/Kp/9bepgQuhd4W1lnkPd4TsF2nPAzKhQe7T3gT2qE2Y+F4z5
	lCtVAF6u6zoCQ==
X-Google-Smtp-Source: AGHT+IHfQNASd2Xp3b1gNmW4F+7Y4OV24Kyzy/9a7G8jlIHIF1cnol61Wm30kox/wu7RZ+2qxrG6kQ==
X-Received: by 2002:a05:600c:4e49:b0:471:13dd:bae7 with SMTP id 5b1f17b1804b1-47d195911b8mr95350835e9.30.1766400253764;
        Mon, 22 Dec 2025 02:44:13 -0800 (PST)
Message-ID: <f68c37a6-a3d7-4426-a702-82412fd6361c@suse.com>
Date: Mon, 22 Dec 2025 11:44:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/4] xenpm: Don't build outside of x86
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1766158766.git.teddy.astie@vates.tech>
 <77dc07c4b4431fb53aa5b226d302f437e4314d8c.1766158766.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <77dc07c4b4431fb53aa5b226d302f437e4314d8c.1766158766.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.12.2025 16:42, Teddy Astie wrote:
> xenpm doesn't provide any interesting usable features outside of x86,
> skip building it if we are not x86.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
>  CHANGELOG.md        | 3 +++
>  tools/misc/Makefile | 2 +-
>  2 files changed, 4 insertions(+), 1 deletion(-)

Arm being what is mainly affected, I think you may have wanted to Cc Arm folks,
for them to ack this (alongside Anthony).

> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -16,6 +16,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>       deprecated in Xen 4.7 and noted not to work correctly with AMD CPUs from
>       2011 onwards.
>  
> + - Removed xenpm on non-x86 platforms as it doesn't actually provide anything
> +   useful outside of x86.

Maybe add the word "tool" for those who don't recognize "xenpm" at the first
glance?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 22 10:48:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 10:48:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192038.1511399 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXdSS-0005JP-9D; Mon, 22 Dec 2025 10:48:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192038.1511399; Mon, 22 Dec 2025 10:48:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXdSS-0005JI-6R; Mon, 22 Dec 2025 10:48:08 +0000
Received: by outflank-mailman (input) for mailman id 1192038;
 Mon, 22 Dec 2025 10:48:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ezST=64=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vXdSQ-0005JC-Iw
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 10:48:06 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b185ca1f-df23-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 11:48:04 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-42fed090e5fso1773604f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 02:48:04 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea830f3sm21291633f8f.22.2025.12.22.02.48.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Dec 2025 02:48:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b185ca1f-df23-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766400484; x=1767005284; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MOVdg3KxuxJI/OvC5S/Ed6qCE+9UNJsSXye+vlru8hM=;
        b=a4EOcRAycBdZDE03Ruw3U77jWOL0dr7pzquk6LubU7EKe+ZWiLlUZmMI6A8IGj2J+F
         ehOlOMiM2b8da/sgpJe8X5PAq2JB5g2T2nFwA10MBKaStrTB8HmdeL9UB07dYTOagDpr
         L8NHAdGNtcN1Fn5D/1dh9KHMLGBqndKNjYoBsD/ebks79qeOdHfk84RwyRhWqEBXsEfb
         0Xwpovu283fXEA7mH3tk5BvRiuROPMPjvEIr2EGmYtQ3TM36LgJB/VwQwT+bYbgcKcjd
         KMvqqRNLuHPn7yG6L/2wt5bv/k9X0A9mj8m8sg0oeiW0gfYQkJ6eSFfcV+/V2RFWMcUg
         0Q4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766400484; x=1767005284;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MOVdg3KxuxJI/OvC5S/Ed6qCE+9UNJsSXye+vlru8hM=;
        b=HmUOKSAwWdAIcMMPYRVQtz5vm/FY7bQBfleyIk0qnn9j38i9z8jng5ovVt5dylPbAl
         HQAeozXj6BGiR7eHTbXjpIM2Ob/VR2b9Eox7CsK7D9pdMUaIvfLAgec+8rzgk5a1pkhQ
         q/nhxzGYDdbAS3xKJ0zYHZqkAulKpq35DSYhX0ka4ak558/Kw4VYM6SQQoU18Z99Y1uO
         QHP43pzKuX8t1xFkRVeWf5Q781y8VNiiKPysFfIwV9i6IjKGPbGPj/PjQOLMLASMDXPW
         wq7r1iydE85AHeVqP6hY7a82DgzDaEnt6lGTCmawQAoRqwJMV/+xBXMy3cXTxuv6gjjY
         yHrw==
X-Forwarded-Encrypted: i=1; AJvYcCUD/vyN10FPK3c+vCVsVRPkDD1PSGy5ICrTjwMyVYtHHI6Uio44hoA2AWmwa9NI6qKkAgbm+3vizw4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwmpcAVFLH0cfF7qa/4r289TDIzppId28SbjB6UGl0ezp2RRqnT
	vIbgGqwkKIUataQ9Wgsi++bCpqWoSyrvRmsqqOOLbtMz77Y1J5RwcOAtUh+Bh93jfA==
X-Gm-Gg: AY/fxX47dfqEfKCZypmnv8fgOgi7YqZde+AJh5Dzyq02lbDeefX5yqoVcv/rce4YydY
	CK7NtS6uRwH6HtgzAGT9l2DyL+62/vf9Cyb/djkOfPEDvWVyplFnuaqdqlB3t6thdRgTbOTiBVT
	b0zLBsJAKfH0tQxRT4uNqJF2jObkFAZGdg7eO8Kd2BcFVynfPV/Pk0WnGrBLzYC77BpnhAl2H2H
	vlqBNs6zFS+WFdXXoS9yWMysNfgnXvTnAxM+RccHBZVT19PjyWVjA0aPwmy9geoz+T9D9eiJZ1r
	rOVe3YhDkzTpy3NPfN4QcTZDcx6DX4z3sAof0cOcvkf0bQKkTPuOAAYxdDKbBKKtf+1V+UmszDX
	EyWedR0jtgceWVMFaYzq1tujHmYRFzML92LDNqVclG5GIqcHwvMq/iv0+45moExPWP8tf9koh1o
	XgWKrXar6bO1LopvL42rbHW+9dJqca+ZRq9vI1HmBXTMPcYTRsBs/AGqNS+Ho1CZD1NTxfU+n9I
	lo=
X-Google-Smtp-Source: AGHT+IHNFthoYXKM4NMIFzPuKqwhRKt8wIxmoxGhWc2sX1cIX8m0ce7Kw/d+f1l9wWiYIA0rQP9T3g==
X-Received: by 2002:a05:6000:22c3:b0:430:fdc8:8bc9 with SMTP id ffacd0b85a97d-4324e4f92d8mr11692798f8f.40.1766400483874;
        Mon, 22 Dec 2025 02:48:03 -0800 (PST)
Message-ID: <1b34443f-03df-47c9-805a-6267d1e237c3@suse.com>
Date: Mon, 22 Dec 2025 11:48:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 4/4] xenpm: Add get-intel-temp subcommand
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1766158766.git.teddy.astie@vates.tech>
 <417d27567b9ef00d10335de089eaabe8e8e76102.1766158766.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <417d27567b9ef00d10335de089eaabe8e8e76102.1766158766.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.12.2025 16:42, Teddy Astie wrote:
> @@ -1354,6 +1358,113 @@ void enable_turbo_mode(int argc, char *argv[])
>                  errno, strerror(errno));
>  }
>  
> +static int fetch_dts_temp(xc_interface *xch, uint32_t cpu, bool package, int *temp)
> +{
> +    xc_resource_entry_t entries[] = {
> +        { .idx = package ? MSR_PACKAGE_THERM_STATUS : MSR_IA32_THERM_STATUS },
> +        { .idx = MSR_TEMPERATURE_TARGET },
> +    };
> +    struct xc_resource_op ops = {
> +        .cpu = cpu,
> +        .entries = entries,
> +        .nr_entries = ARRAY_SIZE(entries),
> +    };
> +    int tjmax;
> +
> +    int ret = xc_resource_op(xch, 1, &ops);
> +
> +    switch ( ret )
> +    {
> +    case -1:
> +        /* xc_resource_op returns -1 in out of memory scenarios */
> +        return -ENOMEM;
> +    case 0:
> +        /* This CPU isn't online or can't query this MSR */
> +        return -ENODATA;
> +    case 1:
> +    {
> +        /*
> +         * The CPU doesn't support MSR_TEMPERATURE_TARGET, we assume it's 100
> +         * which is correct aside a few selected Atom CPUs. Check Linux
> +         * kernel's coretemp.c for more information.
> +         */
> +        static bool has_reported_once = false;
> +
> +        if ( !has_reported_once )
> +        {
> +            fprintf(stderr, "MSR_TEMPERATURE_TARGET is not supported, assume "
> +                            "tjmax = 100, readings may be incorrect.\n");
> +            has_reported_once = true;
> +        }
> +
> +        tjmax = 100;
> +        break;
> +    }
> +    case 2:
> +    {
> +        tjmax = (entries[1].val >> 16) & 0xff;
> +        break;
> +    }

No need for figure braces here; you don't have ones either in cases further up
where there are no new local variables. Instead a blank line between non-fall-
through case blocks may be nice.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 22 11:30:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 11:30:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192056.1511410 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXe7L-0003Cj-Eh; Mon, 22 Dec 2025 11:30:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192056.1511410; Mon, 22 Dec 2025 11:30:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXe7L-0003Cc-BV; Mon, 22 Dec 2025 11:30:23 +0000
Received: by outflank-mailman (input) for mailman id 1192056;
 Mon, 22 Dec 2025 11:30:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ACBk=64=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vXe7K-0003CW-HW
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 11:30:22 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 98edd04e-df29-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 12:30:20 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-64b921d9e67so4495389a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 03:30:20 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037ddffd2sm1018618866b.33.2025.12.22.03.30.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Dec 2025 03:30:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 98edd04e-df29-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766403020; x=1767007820; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=q5eo1GOpbI4BsM2xcCaQjzol8h9Jvok+GrqVM+6DKoc=;
        b=mRQF5/yaU21Y0EfmN6Sqth09SftS15/kb96lwEfmg1n+U//T/mEf02+d+eaV6Ak9M3
         rV2d0mBy3gQ0goN/BnXV3ekny0NnEf84+f4wkQVQaMLHOr45uZJwq7evcyHLbZu//9sf
         g75MEnT0AbQyap5o/rWxCEnRLrY7ay/3b4MdQczPsxTwaVSVtm3IPy20wx7PknMftYzU
         9YinXKP5D7I6P3r2PY/gO6TO8O2ZX39SxgoKN4t3V9xjWBJgkJUOhTmpgE2cF0mtsKIv
         zRV5yd9oxKzhm7i4UE+1OdTT9dYCRLFR6AzpvEMT+46qLDoMfYQd7zb0L52pTRonymP+
         vkKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766403020; x=1767007820;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=q5eo1GOpbI4BsM2xcCaQjzol8h9Jvok+GrqVM+6DKoc=;
        b=WpwGkZoSo/XrNoSVn3pupzBh0wSc/29VH6lX4TjcH68hs+vDe+T8Lh26Y7HXk/zdcq
         tpm4TBZ09F5KktT+TZ5hNrFhM+eO+Iou6plvtYCELe0pLVcgpQSzpsJRLFa5aHe2ML/T
         9HKPj/PlRP+icgf/5771lTshR2eoFVOaNgvqNi85m5c7Lg5i37jZb+3Jhk8gAOhRpcBa
         umx0WRZJYNB+ZrJmHw0c3o1CiVM2fOZRHnrPYu6/lbxVvNHVvACKae7fWW3agtWKNj7Z
         6Xdc3xclQXL3bbhVQY2gdcPyDMdNjgVdz7mNNjGRVpZLn+4QoeeGsUaDk4vsL+UHqX3l
         qTNQ==
X-Forwarded-Encrypted: i=1; AJvYcCUf2M137fn6jJpzJqXV+S0ZMofOqvv81/frjbWmEOKfT5k52xCoBnPtHMeVRNXvvX1GGy5WmRlfaQ0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzJuMvpvt4K7Bz4oGXgKY0U15MiWHW3KfSKUADY6GEYH8c8sfgR
	Vt1lJSGakBzcRl7gOjgKVSAsZgudMxjPWss0pmDrRx4pTH0TU8lnNT2H
X-Gm-Gg: AY/fxX5sOMVObzOiJhtpAFWewVj61vRfxqQVQm+T6+hH7LZK7Rb7NXJWP7Zh6a0q8FA
	0FUeCiMTbCn/m2IgLwhkzQA/TPAOSXEVPitdv9KM9LRwOY+gYv0z18PRMhUumYZlYE755u2D9TS
	aPWRDvemznN46jrxP4zFDatKV2X7DuWA20B0j7lhm9TS+mjcGFHkAKOdLqqMLXVqMLz193pnFdw
	+YBGnDY+5efl4114Yq4IdzzzqhFsqOeCJdSooRB1FWdO95ornm/GSpdT3GjBedHgzYAKUAk/oDT
	FiNxyf8VenuZ0fZZbmBWW7/UfV6uW/hIfvLa8yp9srcSY9T5nqwOxCJ7rrWgpPnwPgt/wWiIOR2
	p65wM9+ii1cCg3LVFJKw4nQc3PZ9585vymOX3aTYRxNawsy3AMj2wI60J71E03cQAsgM/0/DzYV
	4Xx6kNz9zt5t313u3OF0Trz3bBGZaQD+K6sPHme3XfvgvN3R+oGKOqNzR65j7wRv1c
X-Google-Smtp-Source: AGHT+IGriFH698Evwm6lhBBFTWiMBKqpvz5wi0TkHBwAaGzJx6oQmWQD5Rj2CQF+wL83nqapUcGk/Q==
X-Received: by 2002:a17:907:9805:b0:b80:10c0:35d9 with SMTP id a640c23a62f3a-b8036ebbe61mr1160291466b.6.1766403019240;
        Mon, 22 Dec 2025 03:30:19 -0800 (PST)
Message-ID: <9ec24ec4-2b9e-425e-b7bc-59eabdc2f421@gmail.com>
Date: Mon, 22 Dec 2025 12:30:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] acpi/arm: relax MADT GICC entry length check to
 support newer ACPI revisions
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Yann Dirson <yann.dirson@vates.tech>,
 Yann Sionneau <yann.sionneau@vates.tech>
References: <929f7a0fb8f92112d445015726db30122a05eb9f.1766060265.git.oleksii.kurochko@gmail.com>
 <36b89039-97e2-464c-8c1a-25981171b32f@xen.org>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <36b89039-97e2-464c-8c1a-25981171b32f@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hello Julien,

On 12/21/25 11:28 AM, Julien Grall wrote:
> Hi Oleksii,
>
> On 18/12/2025 14:22, Oleksii Kurochko wrote:
>> Newer ACPI revisions define the MADT GICC entry with Length = 82 
>> bytes [1].
>> The current BAD_MADT_GICC_ENTRY() check rejects entries whose length 
>> does not
>> match the known values, which leads to:
>>    GICv3: No valid GICC entries exist.
>> as observed on the AmpereOne platform.
>>
>> To fix this, import the logic from import from Linux commit 9eb1c92:
>
> Shouldn't this be s/from import//?

Agree, 'from import' should be dropped.

>
> Also 7 characters commit ID is too short for Linux and known to clash. 
> You want to use 12 characters (which is also the default for Xen). I 
> usually have the following in my global .gitconfig:
>
>         [core]
>                 abbrev = 12

I'll add the same, thanks for advise.

>
>>    The BAD_MADT_GICC_ENTRY check is a little too strict because
>>    it rejects MADT entries that don't match the currently known
>>    lengths. We should remove this restriction to avoid problems
>>    if the table length changes. Future code which might depend on
>>    additional fields should be written to validate those fields
>>    before using them, rather than trying to globally check
>>    known MADT version lengths.
>>
>>    Link: 
>> https://lkml.kernel.org/r/20181012192937.3819951-1-jeremy.linton@arm.com
>>    Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
>>    [lorenzo.pieralisi@arm.com: added MADT macro comments]
>>    Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
>>    Acked-by: Sudeep Holla <sudeep.holla@arm.com>
>>    Cc: Will Deacon <will.deacon@arm.com>
>>    Cc: Catalin Marinas <catalin.marinas@arm.com>
>>    Cc: Al Stone <ahs3@redhat.com>
>>    Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
>>    Signed-off-by: Will Deacon <will.deacon@arm.com>
>>
>> As ACPI_MADT_GICC_LENGTH is dropped, update the functions where it is
>> used. As we rewrite the MADT for hwdom, reuse the host GICC header 
>> length
>> instead of ACPI_MADT_GICC_LENGTH.
>>
>> [1] 
>> https://uefi.org/specs/ACPI/6.6/05_ACPI_Software_Programming_Model.html#gic-cpu-interface-gicc-structure
>>
>> Reported-By: Yann Dirson <yann.dirson@vates.tech>
>> Co-developed-by: Yann Sionneau <yann.sionneau@vates.tech>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> ---
>> I ran CI tests where it made sense for this patch, as I don’t see any 
>> CI job
>> that builds Xen with CONFIG_ACPI=y:
>> https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2222160666
>>
>> I also built Xen manually with CONFIG_ACPI=y enabled and tested it on 
>> the
>> AmpereOne platform.
>> ---
>>   xen/arch/arm/gic-v2.c           |  3 ++-
>>   xen/arch/arm/gic-v3.c           |  3 ++-
>>   xen/arch/arm/gic.c              | 12 +++++++++++-
>>   xen/arch/arm/include/asm/acpi.h | 21 +++++++++++++++------
>>   4 files changed, 30 insertions(+), 9 deletions(-)
>>
>> diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
>> index b23e72a3d0..aae6a7bf30 100644
>> --- a/xen/arch/arm/gic-v2.c
>> +++ b/xen/arch/arm/gic-v2.c
>> @@ -1121,7 +1121,8 @@ static int gicv2_make_hwdom_madt(const struct 
>> domain *d, u32 offset)
>>       host_gicc = container_of(header, struct 
>> acpi_madt_generic_interrupt,
>>                                header);
>>   -    size = ACPI_MADT_GICC_LENGTH;
>> +    size = host_gicc->header.length;
>> +
>>       /* Add Generic Interrupt */
>>       for ( i = 0; i < d->max_vcpus; i++ )
>>       {
>> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
>> index bc07f97c16..75b89efad4 100644
>> --- a/xen/arch/arm/gic-v3.c
>> +++ b/xen/arch/arm/gic-v3.c
>> @@ -1672,7 +1672,8 @@ static int gicv3_make_hwdom_madt(const struct 
>> domain *d, u32 offset)
>>         host_gicc = container_of(header, struct 
>> acpi_madt_generic_interrupt,
>>                                header);
>> -    size = ACPI_MADT_GICC_LENGTH;
>> +    size = host_gicc->header.length;
>> +
>>       for ( i = 0; i < d->max_vcpus; i++ )
>>       {
>>           gicc = (struct acpi_madt_generic_interrupt *)(base_ptr + 
>> table_len);
>> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
>> index ee75258fc3..a0ccda14bf 100644
>> --- a/xen/arch/arm/gic.c
>> +++ b/xen/arch/arm/gic.c
>> @@ -418,8 +418,18 @@ unsigned long gic_get_hwdom_madt_size(const 
>> struct domain *d)
>>   {
>>       unsigned long madt_size;
>>   +    struct acpi_subtable_header *header;
>> +    struct acpi_madt_generic_interrupt *host_gicc;
>
> For both variables, you don't seem to modify the content. So I think 
> they should be const.
>
>> +
>> +    header = 
>> acpi_table_get_entry_madt(ACPI_MADT_TYPE_GENERIC_INTERRUPT, 0);
>> +    if ( !header )
>> +        panic("Can't get GICC entry");
>
> I would feel happier to use panic() in this function if 
> gic_get_hwdom_madt_size() is __init (its only caller is during boot)).

I am okay with making gic_get_hwdom_madt_size() as __init.

>
> An alternative is to stash the GICC size in a global variable.

We also could to return 0 in the case of ( !header ) and then check if the size is zero or not in estimate_acpi_efi_size(),
and if it is zero then just return -EINVAL. Does it make sense?

Thanks!

~ Oleksii

>
>> +
>> +    host_gicc = container_of(header, struct 
>> acpi_madt_generic_interrupt,
>> +                             header);
>> +
>>       madt_size = sizeof(struct acpi_table_madt)
>> -                + ACPI_MADT_GICC_LENGTH * d->max_vcpus
>> +                + host_gicc->header.length * d->max_vcpus
>>                   + sizeof(struct acpi_madt_generic_distributor)
>>                   + gic_hw_ops->get_hwdom_extra_madt_size(d);
>>   diff --git a/xen/arch/arm/include/asm/acpi.h 
>> b/xen/arch/arm/include/asm/acpi.h
>> index 13756dd341..30bc446d1f 100644
>> --- a/xen/arch/arm/include/asm/acpi.h
>> +++ b/xen/arch/arm/include/asm/acpi.h
>> @@ -53,13 +53,22 @@ void acpi_smp_init_cpus(void);
>>    */
>>   paddr_t acpi_get_table_offset(struct membank tbl_add[], EFI_MEM_RES 
>> index);
>>   -/* Macros for consistency checks of the GICC subtable of MADT */
>> -#define ACPI_MADT_GICC_LENGTH    \
>> -    (acpi_gbl_FADT.header.revision < 6 ? 76 : 80)
>> +/*
>> + * MADT GICC minimum length refers to the MADT GICC structure table 
>> length as
>> + * defined in the earliest ACPI version supported on arm64, ie ACPI 
>> 5.1.
>> + *
>> + * The efficiency_class member was added to the
>> + * struct acpi_madt_generic_interrupt to represent the MADT GICC 
>> structure
>> + * "Processor Power Efficiency Class" field, added in ACPI 6.0 whose 
>> offset
>> + * is therefore used to delimit the MADT GICC structure minimum length
>> + * appropriately.
>> + */
>> +#define ACPI_MADT_GICC_MIN_LENGTH   ACPI_OFFSET( \
>> +    struct acpi_madt_generic_interrupt, efficiency_class)
>>   -#define BAD_MADT_GICC_ENTRY(entry, end)                        \
>> -    (!(entry) || (unsigned long)(entry) + sizeof(*(entry)) > (end) 
>> ||    \
>> -     (entry)->header.length != ACPI_MADT_GICC_LENGTH)
>> +#define BAD_MADT_GICC_ENTRY(entry, end) \
>> +    (!(entry) || (entry)->header.length < ACPI_MADT_GICC_MIN_LENGTH 
>> || \
>> +    (unsigned long)(entry) + (entry)->header.length > (end))
>>     #ifdef CONFIG_ACPI
>>   extern bool acpi_disabled;
>
> Cheers,
>


From xen-devel-bounces@lists.xenproject.org Mon Dec 22 12:40:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 12:40:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192073.1511420 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXfCu-0003QH-C7; Mon, 22 Dec 2025 12:40:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192073.1511420; Mon, 22 Dec 2025 12:40:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXfCu-0003QA-8W; Mon, 22 Dec 2025 12:40:12 +0000
Received: by outflank-mailman (input) for mailman id 1192073;
 Mon, 22 Dec 2025 12:40:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ezST=64=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vXfCs-0003Q4-QE
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 12:40:10 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 589ee9f3-df33-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 13:40:07 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-47798ded6fcso22761945e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 04:40:07 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47be396c909sm94031065e9.0.2025.12.22.04.40.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Dec 2025 04:40:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 589ee9f3-df33-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766407207; x=1767012007; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Xig+IFvynUIZpO+27KFQTKf8K4uXXN2jGUDgiz6rQos=;
        b=cBUvgfzW73qn+TncIX2EOvzj2mAGThL2PQFlUp2HeBs9nllyh2PqkGqwJQKD72DyYH
         THadlu26wAvMND826NoYom6ArwKAfw+IM8olB1mhtxRnHfcOdKypzoFjNu47M/SvQ4EN
         kVOQuwHlqMB0IGNCCgT0OpoDeh2UWsmBdlsasx4N4R3t4egTv+xgwEj6FYdsNBjdG02i
         2JwaYTVCyR9sNDxxl9o6RW4441yqy2Qxg5qOdhT4bW4HYk7Ms5tr/OOzUg+Uqg3MJSjD
         4eQDQZWRuyxXoecV8+W+o5PehM9yFF0ScEJ27hsUT4ReVdHT2XuNRd/4YCWhh2phSSKq
         5p+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766407207; x=1767012007;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Xig+IFvynUIZpO+27KFQTKf8K4uXXN2jGUDgiz6rQos=;
        b=n1wdEdUuXsl8zhx6786iPHBoGJCIIyML+JCLTuADO0PM0tHmhbwrCwPZxwB1I6A5FE
         pOAJNc1XH8IedFz2VwFHz3HtlEefITjhNr8+hMF6XIfdoCcY6KOE34epDUyOcKGRxbNV
         540prj7l1aNwdQ79Aw3WOlf4ODZPGGiRiCgTcDku2MFdxvXCws1tlu2Jz6GOj+aMDmHd
         Zfs7ii8NYDJhj9HQLj5ZFYjcDaZYdSkzhl2T7TX357jYMMzUhbsISGdAGb29GW1k64Kc
         0G1K4Vkd8aFU1bLyCzZ5qnCX/LXQT/AwXIxZwozR6d29HVRhYtNBmozp5gvhNSuPaJ9s
         UvsQ==
X-Forwarded-Encrypted: i=1; AJvYcCVXYc2sIfbGYzSHSL35X/epDrEsQYMAztRjWrZegfidWFa21AuJjtaeuZiJ7Nxqc9vqykwepzc89E8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzq7nd9K+yYIVPJUE7Hxj8Nt17G+7XntKZjaXW6Jre6If11vtnY
	ryBtdO7N7c5bDSMFr1PPAzcgM7zNcPM0bHVjJe8RGlAPVOBkR+/RHBn5k2X4ih8azQ==
X-Gm-Gg: AY/fxX5dqGqp6D/6Zpd0oFeuVonKdygNTQY2wHnYnMTAU8R6eNFBQFIJji4rElGQcD2
	2mD+Ot31hIKAddg4pIgxUwqkwdQE5HfXtnUeebqFvmfiDUJvzkTC+hv2gzOzumwB4sm07ZofwOL
	+hzRO2QOivpnSZsm/qr1AgP8yn7YRCXh7xvd5hB3hnvl3fCbd66kStR6roV/K0w59a0S0797hhI
	Re/Siapg9ju22X+3KUyZvNpfxu8Ly07gK/eWH9gfVix/QS0qVtwqGrs+HJkAtGDk051sSYb8zGk
	FhTyY79ws6kvZDRIUrFiOLth+zs7sY5augtsgLECpVuSdv7faE6fNwQXkhUEzjKtnqaX6lnSa7s
	VHfmDey9hEpHOmBwBmIb6i4KfdfdLt/wO9o9Zb9m46pla0EPbVOVfsRM0Vpg59jbVtUi1xA2AWu
	JQ/xvkta1lH+8jgXk0du64ZL0yxXfuhcPk4PbZPmNN65jVkXI56egBLH/FoNPFBpR+pq7ss5qEZ
	co=
X-Google-Smtp-Source: AGHT+IE+Pk4pFGkbhqkiWhPM/2TGuVQeSKXlhmm0OkTy4ViH+toJ8cYD+wIzdkDDqV6g74QYtujHDg==
X-Received: by 2002:a05:600c:470a:b0:477:7b16:5f9f with SMTP id 5b1f17b1804b1-47d1958a61fmr110614795e9.31.1766407206655;
        Mon, 22 Dec 2025 04:40:06 -0800 (PST)
Message-ID: <5d48b6ea-6979-4d45-a726-67e25fc25cb7@suse.com>
Date: Mon, 22 Dec 2025 13:40:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/4] x86/platform: Expose DTS sensors MSR
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1766158766.git.teddy.astie@vates.tech>
 <829177fefa7b2e2edeb8121357b5b3372ad1c092.1766158766.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <829177fefa7b2e2edeb8121357b5b3372ad1c092.1766158766.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.12.2025 16:42, Teddy Astie wrote:
> Intel provide CPU sensors through "DTS" MSRs. As these MSR are core-specific
> (or package-specific), we can't reliably fetch them from Dom0 directly.
> Expose these MSR (if supported) through XENPF_resource_op so that it is
> accessible through hypercall.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>

Reviewed-by: Jan Beulich <jbeulich@suse.com>

I wonder though whether ...

> --- a/xen/include/xen/lib/x86/cpu-policy.h
> +++ b/xen/include/xen/lib/x86/cpu-policy.h
> @@ -123,7 +123,7 @@ struct cpu_policy
>              uint64_t :64, :64; /* Leaf 0x5 - MONITOR. */
>  
>              /* Leaf 0x6 - Therm/Perf. */
> -            bool :1,
> +            bool dts:1,

... we really want to go with the acronym here, when for other bits the plan
now is to stay close to the SDM names.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 22 12:51:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 12:51:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192083.1511429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXfO5-000577-BH; Mon, 22 Dec 2025 12:51:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192083.1511429; Mon, 22 Dec 2025 12:51:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXfO5-000570-7P; Mon, 22 Dec 2025 12:51:45 +0000
Received: by outflank-mailman (input) for mailman id 1192083;
 Mon, 22 Dec 2025 12:51:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ezST=64=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vXfO3-000569-Jg
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 12:51:43 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f63a0d57-df34-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 13:51:41 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-42e33956e76so1452414f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 04:51:41 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4325dbc522esm11184995f8f.11.2025.12.22.04.51.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Dec 2025 04:51:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f63a0d57-df34-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766407901; x=1767012701; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=n3OD+bwAin0vzopokKROaodSWCLiZhEzXg2sOIsrxjU=;
        b=eDQZbCXS/3deBURv3MnrCEQsn+OmW+CbQqILJvevnnExpbuJJLI0q7TGRgzGfv4REM
         FEx5MJFf560sMFgLapSA5YD2AILcsgWQy17bpwNdorRK31E8J3Z6637ubsNFT6idcn8q
         dTQtTkPfV0zkrWIJ3BYayiximApG25tDonTdRScbripnRmToWuAVlSwkZ+Hmp4INe0py
         l1eObcf6xxpq86JBifm/mV9sgnRupaSYXhcpmxO69yonK+76+8P+7DzuWctAWVMNkMfU
         UAwVN+NfNnDKiXkUuK+PQhYzJ2OrvsjUN4FEIqpnPbPCoLbln6Mn/y8x3AXgDDSsbgGf
         pyBA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766407901; x=1767012701;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=n3OD+bwAin0vzopokKROaodSWCLiZhEzXg2sOIsrxjU=;
        b=K46+NTr4VCBhhJdfiN8WtNU24IoTaIJ76Sluc1x55/ESL1DxyC8/jfEQGNgJjXDjFu
         fahwbcvBpiwEGKmhiYY4AkUi3WnqYCUy2u/JogZmu342A4hfZzCINq712Uqvi5qY45H8
         FXogeJNqOeC9vSY7d0/bzjMOVPFAa6Zv5dL+9QRQYIyo9jJQqLVkCCB92UhVyqWpAcvb
         zxBY6WrCo3ZTSal3f00/3B8q2J2pwRa1FxGNQ5voJ0lYkdrMkQI6XHxJtmXMp0iet3Kg
         WjEbcEV0sHyScZTk9aRc2EtX1XpDXy5lx3/W6DdLy8EfnWAHUWFEffV6/tyvq9w1dc+r
         5zYg==
X-Forwarded-Encrypted: i=1; AJvYcCUhndo3YLsZUAxtzXH2z1Ln1RVj/nlLcRXULnO6HaAnAEm+/hIrHtwEKb+1mMu75JlBSUL/fIF5nTQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy7s+CBhzapqRf23gotbFqkRJ8SmVob7bAqFGGrIyBLO0YRiwys
	AjtGQHD8RX8ZKC4ibjQlOAXJDxMf79NxVb0f8lCKciXhjCdI7YWo9TsKtFkr0VvkPw==
X-Gm-Gg: AY/fxX7XbGOzqg46z4nchlvz9sXARKUKQkmgep04i+qe3InefxIvLK35NoXhh1FohDo
	EBziGfv2JzW7RDRUc3EU5CQTSLIwSpx+r/OIXZABmKck4DPKkrTfiY04HdVX7Oiew89xzL3tCBv
	qhnAurIA0NWfubx0bsY2D4i6+FkqQVjW1MVb72GK491akDiEHIphwc+F/aTecfvFHGWPfzl4wmY
	AcM7f0OJnBheusXIZ967EsL0ITrWlhIK6aNFsaJlnHn/+HJvifKKvahLoNN+a0vt9/oNY5/Jd9J
	eBwXDjqtTUqY8EGkCnTB/9fuMO8lW2a0z9n8zHMMWnKK9SLxl7Xp6CSDSeYfLIk6zfXBnA3msmA
	EigunlJ09QBEySjfoo3sTMs6yD2SsQtMdsuFe4vqx0t9/NilAfSx8tnW1IZdeRkCic76fU8eJDZ
	83uIm8CjwcftcRgJ7wQMLUcpmeNOlaVVcqaAm5ZCYSzNJzMGh7Lq1+VfrlMaMV57BcdlpUcGefh
	/8=
X-Google-Smtp-Source: AGHT+IH3U4fd+YoBi45sYQ+Uu3aQEpfOQ6Fd5/YdzuWxv47BMGZEsqVokaZIRCgOLPPFGymQvsUdaQ==
X-Received: by 2002:a05:6000:12c9:b0:431:104:6db7 with SMTP id ffacd0b85a97d-4324e4d012fmr10543772f8f.26.1766407900595;
        Mon, 22 Dec 2025 04:51:40 -0800 (PST)
Message-ID: <5b0950d6-b321-410b-b3fa-2ce6031fe46d@suse.com>
Date: Mon, 22 Dec 2025 13:51:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v3] coverage: extend coverage on .init and lib code
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Jason Andryuk <jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251218151530.249065-1-grygorii_strashko@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251218151530.249065-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.12.2025 16:15, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Extend coverage support on .init and lib code.
> 
> To enable coverage support on .init code the gcc special
> section should stay in memory after Xen boot when COVERAGE=y.

What is "the gcc special section" here, and ...

> So, add hidden Kconfig option RELAX_INIT_CHECK "Relax strict check for
> .init sections only in %.init.o files", which is selected when COVERAGE=y
> and allows to bypass strict check for .init sections only in %.init.o
> files.

... why / how would this mechanism get in the way?

> --- a/xen/Rules.mk
> +++ b/xen/Rules.mk
> @@ -33,11 +33,15 @@ cov-cflags-y :=
>  nocov-y :=
>  noubsan-y :=
>  
> +# when coverage is enabled the gcc special section should stay in memory
> +# after Xen boot

Nit: Comment style (./CODING_STYLE applies to Makefile-s equally in this
regard).

> +ifneq ($(CONFIG_COVERAGE),y)
>  SPECIAL_DATA_SECTIONS := rodata $(foreach a,1 2 4 8 16, \
>                                              $(foreach w,1 2 4, \
>                                                          rodata.str$(w).$(a)) \
>                                              rodata.cst$(a)) \
>                           $(foreach r,rel rel.ro,data.$(r).local)
> +endif
>  
>  # The filename build.mk has precedence over Makefile
>  include $(firstword $(wildcard $(srcdir)/build.mk) $(srcdir)/Makefile)
> @@ -146,10 +150,9 @@ endif
>  $(call cc-option-add,cov-cflags-$(CONFIG_COVERAGE),CC,-fprofile-update=atomic)
>  
>  # Reset cov-cflags-y in cases where an objects has another one as prerequisite
> -$(nocov-y) $(filter %.init.o, $(obj-y) $(obj-bin-y) $(extra-y)): \
> -    cov-cflags-y :=
> +$(nocov-y) $(extra-y): cov-cflags-y :=
>  
> -$(non-init-objects): _c_flags += $(cov-cflags-y)
> +$(obj-y) $(obj-bin-y) $(extra-y) $(lib-y): _c_flags += $(cov-cflags-y)
>  
>  ifeq ($(CONFIG_UBSAN),y)
>  # Any -fno-sanitize= options need to come after any -fsanitize= options
> @@ -259,8 +262,8 @@ $(obj)/%.o: $(src)/%.S FORCE
>  	$(call if_changed_dep,cc_o_S)
>  
>  
> -quiet_cmd_obj_init_o = INIT_O  $@
> -define cmd_obj_init_o
> +quiet_cmd_obj_init_check = INIT_C  $@
> +define cmd_obj_init_check
>      $(OBJDUMP) -h $< | while read idx name sz rest; do \
>          case "$$name" in \
>          .*.local) ;; \
> @@ -269,12 +272,17 @@ define cmd_obj_init_o
>              echo "Error: size of $<:$$name is 0x$$sz" >&2; \
>              exit $$(expr $$idx + 1);; \
>          esac; \
> -    done || exit $$?; \
> +    done || exit $$?
> +endef

The " || exit $$?" isn't needed anymore when this is the last command?

> +quiet_cmd_obj_init_objcopy = INIT_O  $@
> +define cmd_obj_init_objcopy
>      $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=.init.$(s)) $< $@

What use is this step when $(SPECIAL_DATA_SECTIONS) isn't set at all?

>  endef
>  
>  $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): $(obj)/%.init.o: $(obj)/%.o FORCE
> -	$(call if_changed,obj_init_o)
> +	$(if $(filter y,$(CONFIG_RELAX_INIT_CHECK)),,$(call if_changed,obj_init_check))
> +	$(call if_changed,obj_init_objcopy)

Feels pretty fragile to do the modifications (as per above - if there were any
in the first place) without first having checked that doing them is actually
(going to be) okay.

Furthermore - why RELAX_INIT_CHECK when you don't really "relax" it, but skip
it altogether?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 22 15:46:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 15:46:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192116.1511439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXi6s-0000XT-32; Mon, 22 Dec 2025 15:46:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192116.1511439; Mon, 22 Dec 2025 15:46:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXi6s-0000XM-0A; Mon, 22 Dec 2025 15:46:10 +0000
Received: by outflank-mailman (input) for mailman id 1192116;
 Mon, 22 Dec 2025 15:46:08 +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
 <SRS0=mqKC=64=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vXi6q-0000XC-KP
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 15:46:08 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 53f1b81e-df4d-11f0-b15b-2bf370ae4941;
 Mon, 22 Dec 2025 16:46:07 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CO1PR03MB5921.namprd03.prod.outlook.com (2603:10b6:303:96::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.11; Mon, 22 Dec
 2025 15:46:03 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9434.009; Mon, 22 Dec 2025
 15:46:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 53f1b81e-df4d-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=o4O6ipPvBMqg8wjex1FoTcqmGm5oVQl7ikI5IP4uli+erw7Bv71dS66bJ/DAuFu8pZVtCtKW12upL3cu5OREH4/llqzHuK1l0EoYOwKWJtEOlrXHlq5yiWtlVi+9u4Lv4UcFoEjGRHwKbSrgHa/YKiZ6rgDAlO/WtQ8F4GlHXixzscLKKEan2799jk727YpTLVwyu4ReSqJFAqF9ZNH2Oycctoo/Kmwc79nJvIdbNTJRUhT0enoWn9MkJCQjHwQ3Xhk7RhGH2zhc1JyOLvT2p38WO8t6jc0aI/P6kFZ8MhPE6Qg6VKAYrbXf3LAel+TtBoOwNin+UVQeDDdzFnOBCA==
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=zrXCpehgFdGcefb/Fwzjhb8ry+80hg3Zje1HgxPMH1I=;
 b=peJKGtea8kT90Y0MlEmmg6RTFPoxcY1TGimAENQADWAJNiihBMHaSrYJv5vznwl3r4W3V+3aYcSuidl7oKVyjlRX6GCqwd4tYiDDKGIjOfQMRr/nNdBodDLWSe5PPWiH65bUXwfoDuv05ef9v2XqLgTExU/myx1jC/nJaoKYwU6SiSL8haF90egFeDZXLfyFGEcwUIAknMlT0JxSNFRj14EdQerh5TMo9yYIEjCUQaL3ujTl0SKDeIayKHEBL80HU3Y0acqLFggwRfu/9Nq8/gLkFjWg4lDMjyCZcthqceFvPLToF0KKK1vuZ8nJMBFoFsTzi9iM6P8QFiMqu9rN6A==
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=zrXCpehgFdGcefb/Fwzjhb8ry+80hg3Zje1HgxPMH1I=;
 b=MpAOUO8lpzqvqHYOWgaOcRhY6Xvlus9j/JjP2IoxopjZYxAYuFXq+e+UbVKbvaPheLhjL4NIad+wHOD1ubAUDwlwvXnlN1STPniFOFN+CfKU0h2c4Da+eG8zKP2YOpJQEZWXQqVq8Sf2ZEbxIzOy3YmjBL4vdUytwQC8lMUOiEg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <c8d3a142-e998-4958-9b82-49c777f662f6@citrix.com>
Date: Mon, 22 Dec 2025 15:45:59 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN][PATCH] xen/domctl: add XEN_DOMCTL_CDF_ALL mask
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251111201627.3579504-1-grygorii_strashko@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251111201627.3579504-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO6P123CA0037.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:2fe::9) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CO1PR03MB5921:EE_
X-MS-Office365-Filtering-Correlation-Id: e9764352-b853-42b9-2b28-08de41713635
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NzNTN3ZydmExYnVjeGxWWU5tYm1ZRDJxR2IxTnF0c04xK3BOOXFwdk9zcU1Y?=
 =?utf-8?B?Q0t3MzVmRGx3czJaNUh3eUlSZWFrL2hxMEU2bUU4YWN1KzZKMnpaNGlWa1J0?=
 =?utf-8?B?TnBPZXFKcHdmcmc3em9PWjc1RE9ONERmTjhWK01XaHVtSk5keHBsdHM4eWd1?=
 =?utf-8?B?cERUcnVaZ0pyWllGaHdJR3NNdXQwRVBJdHVWcElJQkxkQXY5a3g0Vm5rSFZK?=
 =?utf-8?B?VkpJa1o1VEw2ME1Gc3k0L0thUFFZcVVnei8vMEdaZS9yM3lwUHJ0ZzV1cVFP?=
 =?utf-8?B?TTVtWlNDRWR0TFVmQyt0NExZU1M0WjF2YWxGcDlNaWtSV2xwTk0zcXZKejZI?=
 =?utf-8?B?dkJBdTVLTFptd1RBdUxqQmc5UEVFSDlrMFNGZTlEZ2tLTklaT0JrVzk4RWJx?=
 =?utf-8?B?K05VRFEyQkp1NEVFVW1NVFBYT2JQZW02T0JYd2JKZnhEd2lzZXNYeDlmRVRq?=
 =?utf-8?B?SFR0SGlFWnBKM0QyZ092djAzRFpScURzL1dMUHlSNjZaSnZxamZwcHpTWFpG?=
 =?utf-8?B?dUhMamZUdDZpWEVxRXd4Mkw5cXlOMk8yMHdSSXFkUCtOREhOS1BtS0NsNmI2?=
 =?utf-8?B?dlFreVdEcDBNenR0aU80bXdLZi85K3ZIQ3ZIR0RqRng4MnYySk5VYTcrZmt3?=
 =?utf-8?B?N0hzdHYxenZMaGZXM3dBTmRBa1NMZkNJek91NE1oOTlES2lTZzZMa0UvVmRE?=
 =?utf-8?B?OTNQdS8wSTNmcEdUSzVGY3F2ZTE4ZGhYOHh4QnpVWE16dUMyWjQ2UEpmN09V?=
 =?utf-8?B?dlRxbW1GdWJPdGFwMGJoYzIwdE1GOFVaWitrNnB5MzBFZkMvRFpyNkdLdFpa?=
 =?utf-8?B?dEhoanlkUDNaQUZ3K3VCbnpOa2liYVh1MEphN3NweTlxd3lTOFk4SS9aN1dw?=
 =?utf-8?B?VVZIZXM1aHV4dzN1SXlRbjZpTXBkUW9FNHlzM0NGczcyUXpCUlErNkVFUU93?=
 =?utf-8?B?ZVc1WXZ4bVVnT1laajdheEVaZE5pUDlLUS8zbGt0Nzh0R29qMFcremtLRVJO?=
 =?utf-8?B?MWdRMU5DdFRLRWFreURyMEpCSSsxbWh5aVBDSVlIWlo4aHpPZmxDYUhCTm1V?=
 =?utf-8?B?c2JNckdZZS9tY1dLZlk5bXhXVCtONUlueG9vYjZrZDBjQkMzSnUwV0FWN2ZI?=
 =?utf-8?B?L0pCUVUzd0pCZk9OTXJGdnVCY3JRQUIvdUhCdGdoa0pYZy84U2J4eXNhemI4?=
 =?utf-8?B?YXlGd2Jpd2FzMkJqTzMrUUd1cFlJbmRsUDkxeFNkamN1eUNjZ1FwTFlEV0o4?=
 =?utf-8?B?T2FBRlV3RXhFaWMxQkYxenZMQzdDSzE4Ymlic0RxNU9ZZlFma1dDUmQ0M0lT?=
 =?utf-8?B?TStLc3UxeFo3NjNlbER6eEtvRDh1VkZoRjJmUW13U1NGS3oyMURYZk04SlNk?=
 =?utf-8?B?TktydlV0Q1dtbFpORWxWNmhJVUdvMHl1Ym5xOFhYOGF3ZHExY2UxMDZQL0dF?=
 =?utf-8?B?VEVhMWphRTNjblovUkJkc1JDVktONU5lNWtoWVdEYUpXWnE2a2VBZ1NnZE14?=
 =?utf-8?B?OHk1aHlGZCtxOHhwUW01MUtGVC9zdm9pckdQMFJxNFF0N0UwK09XY3p0UFlV?=
 =?utf-8?B?em1CbG1vTk5vZEc5TllJamxFYUZ4dzhUa3R2OUVpMWdla0g4aE9uYkJjSFo2?=
 =?utf-8?B?NlZ4Z1pnT2xQMnJEL0RYcjhlZlUyaVJHQWJFeU9pNGxjZTFIdWNnWlByWXpR?=
 =?utf-8?B?WW54OVoyQW9WZGc0ajAwbk9uYTQ4YWVsbThaWm5iWHJRRnRPa0k2dEFnNTFy?=
 =?utf-8?B?VTVZeHllaXZQN0NJbXJXQnFQMW80ZHlOWFNJRmEvY3BISTFiLzJZd3dwQTNJ?=
 =?utf-8?B?a3ZwbnBGTW1oSHU3QkpoR2V0Q2tHelpQTHBXZ3plU0RheWFjTjdrM09yZE50?=
 =?utf-8?B?WndYb3JBZHJkZ3FHR3JWNjJrUzdGUFJyRXp3Vk9pRVI1Z3g2UlRmWUZ4WjRW?=
 =?utf-8?Q?ART77nTeR7nXFtn6bRVmoIjiwhi/yv82?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?R1Z6a0svR2NlOXN5c0cyYXRnbXhhSWFmalZXaWQwYkZ2TzZuWUd5K0JGT0c2?=
 =?utf-8?B?cU91YS9wSS9UWmltMnNvV3JRSXRTUDgyc2VZRXJWcUNKc3JkM2twR1g2eWVQ?=
 =?utf-8?B?MitWREZUVHg3UGEyQUdsNFE1QU1Yek4zSXdocTJnMzB0ZFJhQW5WQktnN1Fy?=
 =?utf-8?B?YnBUakdNdU9RbTRuaHVIOW82a2FlaVFEL2ZSOWlDeXlUZmpaaWNVUVlDYUx1?=
 =?utf-8?B?cG9zdmc2RitzTktpaDhIandqSE82TWh1RzJhS3NmUk1TcmxOOUF1NVlvT2J3?=
 =?utf-8?B?SnBhekhuaEQ3RytHV3NMdHRkSWVIVlM2MUxEbnJJV3ZWajBlcDNVUU5oek1P?=
 =?utf-8?B?dW1NeUJNNXJ6d2d2QjBmUS9TbkFpQXdGOUxMVU43UHF1VExMY3hRT0FkbCs4?=
 =?utf-8?B?Zmx1L2c5UnpoTW5mU3BrTisrRXdpYUJOOVlVR2NPSjZ6dG55cnc0UVdkaWFk?=
 =?utf-8?B?M0dvUDVaSWVkRWVWZjM3amR2bHZQZzNmVnIxcDY2NU42Qzc0ckh4RVphenBF?=
 =?utf-8?B?bm1Ha05DQ01jWUxQaFhDVXNBbTVLRlY1bkdIcEorMWpNdUQvMXo0NmJIeEV5?=
 =?utf-8?B?bzVRM0drR2V1TW94VmYycHNYUkRPQ1NHTUpPcjZaZTV0bWNkczVoaDFsOW1X?=
 =?utf-8?B?VTZweG1hSjI5T0hETXNRRUw1OTMxTERQMHhPNEs4Yk9abGd5VFl2K3YxcjZV?=
 =?utf-8?B?cTJHV0NjSzRPdThsRzJQRHRETk5JNlliMFNseXN0aHJBVEliTDRWNER3SlF4?=
 =?utf-8?B?MjhxTW5uOVNjRGhDKzFrMHZiNDFqMFF6ZjlJclNCcUV0Zzd4d2xpenlobG1V?=
 =?utf-8?B?QmwzNlVxejMzT1lYbHVqcmpqU1lETjBBdCt6QzZqWk9oVmVYWXMwUkVDOGVz?=
 =?utf-8?B?Q0g1VG1NMkdFbXNrRSs0TkluVVVZYkRXK3FFeFZlNUk2TEhzSEdjb1VLT3ZM?=
 =?utf-8?B?VVd4YjFCZjBYR05PblY5NUZVZmJwR010SEJTejhscHFUN1JLRG1ZSmpHRXds?=
 =?utf-8?B?dWUrWjNEOGx6ekVzRFpMY2NPUlZLckE2YzhRNUMwRXZzeE9DMHJFVldaRmtx?=
 =?utf-8?B?MFUveDhLeHA2emFlMVpBdkNRTFAyYlYxWVJOeUtmN3U5anlZbjdLdHowWEJz?=
 =?utf-8?B?R0VsRTBxTmlKbmdWZmVPdGJwclZ3QUppaGJRcUdkdlRTeStadlQ0eDRIdVBJ?=
 =?utf-8?B?azducXRocjhXR3dCOFRZTUdJNkJsSTlEUzhCUWRPK1hZSDVmZ3JySWYxNnNZ?=
 =?utf-8?B?U1BiOXpGYzdObCtNYzRVQ1dFR1poWk9rZU10UVN5NmJ1RENPWW9JQWVab3BS?=
 =?utf-8?B?YkRCbXdadndkT201SHZGMHR2dmN4V0lDNVhWd0RCTlR0Q1N6aUtzdU5rOEdq?=
 =?utf-8?B?S0lWb1VWSWFpa0hnNmFRWmIvNm9jVTluMEdHNUcwcUtRUkFOditMT2lOV1ZN?=
 =?utf-8?B?djVIRTExY1dWR21nR3NxMmJUYnlpc1VRaFJ3cDdmUDREL1RGVGlhUE1YN2hL?=
 =?utf-8?B?WTlwdHBpM1hiWjhlNmR6MVVxa2F4RnNCK0lDcFV0YmJkU205bFVvUGd3QXdo?=
 =?utf-8?B?dzVqUTVxY0l2MWNrUWlhZWhpbGc4d2RZUDJCOVJNOFlkQy95Mk1lZHl6VUk4?=
 =?utf-8?B?NjhRNmNaYVVzUWx3dGJWcnZGejBnWDdwWis2NVdqbVRZQytpS200N1RmcFVo?=
 =?utf-8?B?ZzZwS09zaWRXZGIyM0xrWDBIREs5RlhKWSt2bi9DbWFTVlc5VlgzV21VeE9R?=
 =?utf-8?B?dmxrd3RBNVR1RGdxcVE0NWpFRGRUeHFQSDBxbC9PQjRyZUMxK0FsNEdreVV6?=
 =?utf-8?B?bDdhMVMwWENxbWp0VHZkMGtuNlJqOXh4cW5VT3htSVhwN09pY0twMGdWTS8z?=
 =?utf-8?B?dGZUUHVxeWpUUzRVdHlrdSs4Z09QVlR5dDBDR000L3c3Ui9kMldzQzVkc0ps?=
 =?utf-8?B?OFVORGNWQk9va1BLelNGWkJIMHgxd0c1ZWcrY3pYTzdoWEtZN1hqRll5bmhF?=
 =?utf-8?B?V1Fzc0lyV0ZwN3ZsKzBwdEMwRytVc1VCRkhmb1NCbmtnaDFYTnFaaEJHcmNJ?=
 =?utf-8?B?bGsrdk9VSVhDMU0yVEJ5aStWYk5qYkZJUUNIM0lTUXlsQVRxQ05lSnNEZG1o?=
 =?utf-8?B?dXRtK2hHbERoRVc2elBmY0ZJT0hId1VvblZSdkRCN3ZZaG1NdTAyNWk2S2w2?=
 =?utf-8?B?c1hJL1FwUXc3WTNvSXJ5Q1BTMExrT3AzbDhORndDS01QYXJjTjZZeVhQcUJq?=
 =?utf-8?B?NHh0a1d2aHRKYkhZcC9Qc3RaZHI4YlFnVjRRT3BnOC9ONTB2SVorUThFQ0E0?=
 =?utf-8?B?YXlrcURCMjMyRFVlZXZjRFpVQmtiQkMzOUFvZUk0WXJKeVEvWXVxdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e9764352-b853-42b9-2b28-08de41713635
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Dec 2025 15:46:03.1305
 (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: TX0+TS7czojcdAgw3RpQbngXCVu17eQAnpxp1ppA6OuGPHZhmwpCgP7X6Ufo3rOlmtPLqwavxBbeCl49bK6G7n5fJanKZ9RtjJDCn6n4SVg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB5921

On 11/11/2025 8:16 pm, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
>
> Every XEN_DOMCTL_CDF_x flag:
> - is defined in public/domctl.h
> - explicitly listed in sanitise_domain_config() (common/domain.c) to form
> mask containing all supported DOMCTL_CDF flags for "Unknown CDF flags"
> check.
>
> So, it is required to modify two files every time XEN_DOMCTL_CDF_x flags
> set is modified.
>
> Simplify the things by introducing XEN_DOMCTL_CDF_ALL mask, so
> sanitise_domain_config() no need to be modified any more.
>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
>  xen/common/domain.c         | 7 +------
>  xen/include/public/domctl.h | 7 +++++++
>  2 files changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 775c33928585..4f91316ad93e 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -730,12 +730,7 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
>      bool iommu = config->flags & XEN_DOMCTL_CDF_iommu;
>      bool vpmu = config->flags & XEN_DOMCTL_CDF_vpmu;
>  
> -    if ( config->flags &
> -         ~(XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap |
> -           XEN_DOMCTL_CDF_s3_integrity | XEN_DOMCTL_CDF_oos_off |
> -           XEN_DOMCTL_CDF_xs_domain | XEN_DOMCTL_CDF_iommu |
> -           XEN_DOMCTL_CDF_nested_virt | XEN_DOMCTL_CDF_vpmu |
> -           XEN_DOMCTL_CDF_trap_unmapped_accesses) )
> +    if ( config->flags & ~XEN_DOMCTL_CDF_ALL )
>      {
>          dprintk(XENLOG_INFO, "Unknown CDF flags %#x\n", config->flags);
>          return -EINVAL;
> diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
> index 8f6708c0a7cd..94a8e3042cbf 100644
> --- a/xen/include/public/domctl.h
> +++ b/xen/include/public/domctl.h
> @@ -72,6 +72,13 @@ struct xen_domctl_createdomain {
>  /* Max XEN_DOMCTL_CDF_* constant.  Used for ABI checking. */
>  #define XEN_DOMCTL_CDF_MAX XEN_DOMCTL_CDF_trap_unmapped_accesses
>  
> +#define XEN_DOMCTL_CDF_ALL                                                     \
> +        (XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap |                             \
> +         XEN_DOMCTL_CDF_s3_integrity | XEN_DOMCTL_CDF_oos_off |                \
> +         XEN_DOMCTL_CDF_xs_domain | XEN_DOMCTL_CDF_iommu |                     \
> +         XEN_DOMCTL_CDF_nested_virt | XEN_DOMCTL_CDF_vpmu |                    \
> +         XEN_DOMCTL_CDF_trap_unmapped_accesses)
> +
>      uint32_t flags;

The problem with this is that now userspace has a constant called
XEN_DOMCTL_CDF_ALL in scope which is unsafe to use.

If the new constant was within #ifdef __XEN__ then at least it couldn't
be misused by userspace.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Dec 22 15:46:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 15:46:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192123.1511450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXi7W-00010Q-G2; Mon, 22 Dec 2025 15:46:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192123.1511450; Mon, 22 Dec 2025 15:46:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXi7W-00010J-D4; Mon, 22 Dec 2025 15:46:50 +0000
Received: by outflank-mailman (input) for mailman id 1192123;
 Mon, 22 Dec 2025 15:46:49 +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
 <SRS0=G4iM=64=flex--seanjc.bounces.google.com=35mdJaQYKCS0bNJWSLPXXPUN.LXVgNW-MNeNUURbcb.gNWYaXSNLc.XaP@srs-se1.protection.inumbo.net>)
 id 1vXi7V-0000zx-2v
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 15:46:49 +0000
Received: from mail-pf1-x449.google.com (mail-pf1-x449.google.com
 [2607:f8b0:4864:20::449])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6c271a5a-df4d-11f0-b15b-2bf370ae4941;
 Mon, 22 Dec 2025 16:46:47 +0100 (CET)
Received: by mail-pf1-x449.google.com with SMTP id
 d2e1a72fcca58-7b8a12f0cb4so4767252b3a.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 07:46:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6c271a5a-df4d-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20230601; t=1766418406; x=1767023206; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id
         :reply-to;
        bh=bv2gntJgBXtiu31zWj5aMqoO8tc0JdlMD+qDh291wic=;
        b=D8pWnYTYod2rdumiArk+KQ4ppuH6/tqeq93omkmcG50eNp0rCvufIgT4a0/8gmpPHb
         vpzian6wGVTWqC2ul+DP7KvFV1CxYwNpCEwGYY64g64CRqcEUH75EBWi6JnjYOAsuPW1
         JJOEi9K8xSlWhfT/5ImCGkWCgSqGuQHC/IpsbpBAsJUqHmHSSkIdimDwZ06lCl8AZtwu
         13DZqfidzI2xWAS9pzITOKjoNxCq6+h7+2qCsY+acGqLhoYZ4kEnf9/WIplP7VfcyzMR
         HWHw5XPb8PLxbGGqxTIhA4yODSXrnorbQAZ005Bx13UmPKYL+nplL942Lxf1VcH9ogsw
         uJZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766418406; x=1767023206;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject
         :date:message-id:reply-to;
        bh=bv2gntJgBXtiu31zWj5aMqoO8tc0JdlMD+qDh291wic=;
        b=HnmDp4nzzVSfX0LcooKjTKJkeRtVGCHot7HiFcKM0D3cy6NV7Gf2s+TrThOz34lqaR
         MvvrIhHv7HsyrP7k91yyBNifwijAGENa+vjSbmsoOmLoHxjaHltzP79dGTko6welS36I
         7liZ8QV3RS427P7X3NFbJRSP/TvkgJEvFmJLtHXbBkG3nx61+ohxuspyWKXb4BYO4S2d
         1TMM0Ebe46V9KyOUpb5qqLl2aznIGSMysR5wIRjnrIXAA6/+tXsqRdR0Ovww0V0rzJQZ
         ERE+SYRF3toWfo+NGxslc7nHp1CV3LaDQ4hzPFBHO9bVxZWdEnZF5KOW1yX7wF7ul2Ok
         rCUg==
X-Forwarded-Encrypted: i=1; AJvYcCXUvC2lm/FtepUv58rprRRak8EipavCc9GSyqfxKOviZi66dQW+H3QmJAoJc7oJR+e7t0hU3PMhbuw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzBC2UAcaDgZG4VImkqGoIbVNW0FDSIHEDqwRzF7YxJZHyY49lr
	7akU2vvGDomD69kXgmSGQM1ng0JhWel4J/8lRTgImuu3v+8c7wTJRJl7sbfwVOtMlHrqp1InfCG
	mHV02og==
X-Google-Smtp-Source: AGHT+IGvLBoGsXVzBr3m/Do0woX/jUwcUSCQPKj8JoQh4+EdFhAiTc99FBbRBZXfb91qRfmoWJoeFEq2Qbw=
X-Received: from pfuj2.prod.google.com ([2002:a05:6a00:1302:b0:7e5:5121:f943])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:6ca8:b0:7e8:43f5:bd51
 with SMTP id d2e1a72fcca58-7ff676624demr9901855b3a.61.1766418406100; Mon, 22
 Dec 2025 07:46:46 -0800 (PST)
Date: Mon, 22 Dec 2025 07:46:44 -0800
In-Reply-To: <190f226a-a92f-4dab-ad7a-f7ea22e6a976@vates.tech>
Mime-Version: 1.0
References: <20251219010131.12659-1-ariadne@ariadne.space> <dbe68678-0bc4-483f-aef3-e4c7462bcaff@vates.tech>
 <aUWNlTAmbSTXsBDE@google.com> <190f226a-a92f-4dab-ad7a-f7ea22e6a976@vates.tech>
Message-ID: <aUln5DdCMcvhJzl9@google.com>
Subject: Re: [PATCH] x86/CPU/AMD: avoid printing reset reasons on Xen domU
From: Sean Christopherson <seanjc@google.com>
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Ariadne Conill <ariadne@ariadne.space>, linux-kernel@vger.kernel.org, 
	mario.limonciello@amd.com, darwi@linutronix.de, sandipan.das@amd.com, 
	kai.huang@intel.com, me@mixaill.net, yazen.ghannam@amd.com, riel@surriel.com, 
	peterz@infradead.org, hpa@zytor.com, x86@kernel.org, tglx@linutronix.de, 
	mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, 
	xen-devel@lists.xenproject.org, stable@vger.kernel.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

On Sat, Dec 20, 2025, Teddy Astie wrote:
> Le 19/12/2025 =C3=A0 18:40, Sean Christopherson a =C3=A9crit=C2=A0:
> > On Fri, Dec 19, 2025, Teddy Astie wrote:
> >>> @@ -1333,6 +1335,10 @@ static __init int print_s5_reset_status_mmio(v=
oid)
> >>>    	if (!cpu_feature_enabled(X86_FEATURE_ZEN))
> >>>    		return 0;
> >>>
> >>> +	/* Xen PV domU cannot access hardware directly, so bail for domU ca=
se */
> >>> +	if (cpu_feature_enabled(X86_FEATURE_XENPV) && !xen_initial_domain()=
)
> >>> +		return 0;
> >>> +
> >>>    	addr =3D ioremap(FCH_PM_BASE + FCH_PM_S5_RESET_STATUS, sizeof(val=
ue));
> >>>    	if (!addr)
> >>>    		return 0;
> >>
> >> Such MMIO only has a meaning in a physical machine, but the feature
> >> check is bogus as being on Zen arch is not enough for ensuring this.
> >>
> >> I think this also translates in most hypervisors with odd reset codes
> >> being reported; without being specific to Xen PV (Zen CPU is
> >> unfortunately not enough to ensuring such MMIO exists).
> >>
> >> Aside that, attempting unexpected MMIO in a SEV-ES/SNP guest can cause
> >> weird problems since they may not handled MMIO-NAE and could lead the
> >> hypervisor to crash the guest instead (unexpected NPF).
> >
> > IMO, terminating an SEV-ES+ guest because it accesses an unknown MMIO r=
ange is
> > unequivocally a hypervisor bug.
>=20
> Terminating may be a bit excessive, but the hypervisor can respond #GP
> to either unexpected MMIO-NAE and NPF-AE if it doesn't know how to deal
> with this MMIO/NPF (xAPIC has a similar behavior when it is disabled).

Maybe with a very liberal interpretation of AMD specs, e.g. to mimic the re=
served
HyperTransport region behavior.  Defining a virtual platform/bus that #GPs =
on
accesses to any "unknown" MMIO region would be incredibly hostile behavior =
for
a hypervisor.

> > The right behavior there is to configure a reserved NPT entry
> > to reflect the access into the guest as a #VC.
>=20
> I'm not sure this is the best approach, that would allow the guest to
> trick the hypervisor into making a unbounded amount of reserved entries.

No, the maximum number of reserved entries is bounded by the number of vCPU=
s in
the VM, because each reserved entry only needs to exist long enough to refe=
ct
the access into the guest.  Recycling NPT page tables after every MMIO-NAE =
would
be comically agressively, but it's very doable for a hypervisor to set a re=
asonable
limit on the number of NPT page tables it creates for a VM.


From xen-devel-bounces@lists.xenproject.org Mon Dec 22 16:37:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 16:37:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192147.1511470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXiuf-0008JV-8u; Mon, 22 Dec 2025 16:37:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192147.1511470; Mon, 22 Dec 2025 16:37:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXiuf-0008JO-5m; Mon, 22 Dec 2025 16:37:37 +0000
Received: by outflank-mailman (input) for mailman id 1192147;
 Mon, 22 Dec 2025 16:37:35 +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
 <SRS0=ACBk=64=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vXiud-00085X-Gz
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 16:37:35 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 84b30338-df54-11f0-b15b-2bf370ae4941;
 Mon, 22 Dec 2025 17:37:34 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-64b791b5584so5837673a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 08:37:34 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b9105655asm10977819a12.9.2025.12.22.08.37.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Dec 2025 08:37:33 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 84b30338-df54-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766421454; x=1767026254; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=t+KQ98UxX4HjuLLz9pcT62AJiNhIN8Axp4RTa3sOQNU=;
        b=jjqpWTGSbuks1+5DXaPOx4eCgj+aKZAHp4ib8LdA9/PzgHD2ndHrK9onZ1Q3ICvSfZ
         CAnVGq9/tqbxvGpvU44B/OF07UCYl06hK1Hz0j9xLvNHNe06/qUBhjAc9xrf0IQOoiLo
         QrPD8l/bP+Plp9AJkxxamvChcUwG/QG/5BRQMlPvJbk4bYbz/To9Q2NmAFi6vdsmatYz
         tWYaHc06TSGj3EeKiftedXpJvSySwlZt5wr2TiI5CsaB+zwid/RYfVjZIxWFEwz/Zos8
         7Nojrfd0OP53lo5rTU25v6NfItYot5uS2NLVXidP/cL98GzhEUsD6tuePa31pJJ42u21
         HnIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766421454; x=1767026254;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=t+KQ98UxX4HjuLLz9pcT62AJiNhIN8Axp4RTa3sOQNU=;
        b=PBIcv4My4J1I9nL6uUPOFUL3BA77ieXelyZakajPBmSigN5LgY7vdRjtDJwNyGtiNq
         oVsTpVLrm3nZQxv/yyQxCkV/l3mDfPgFW5jHGwiDwgYE1XJGJaXrbibHdqiDNSx0KEf0
         HGeWsJms4fp7ZXGks38k8YXh48iD+qhwH7zANqeOa8YjNnEjge27g/whafwKC89gpISn
         gaIfM4NFiF7JEXbxMJLmLz/HxWh/HsY09Kb9betGTcP0440sX/NQuRvDVTXqVapBFPI3
         qFAPRldblkqMTXXTWCwaoLsLkGK1CJjtM2Hesuq6kjSnHF1zu3sJ9QnUBuP3SjocCfIt
         Qcdw==
X-Gm-Message-State: AOJu0YwSfuKOvVaF0FZeniNa8BxkcO2qEd1sWZYrLdppaTX6sacvt/8n
	yaFKInFFoJoLM2iawbT736Z34gDmYjLEf26/twASNgZvLJvVzm+wRmYK840kKg==
X-Gm-Gg: AY/fxX4q5+pYmp1V1n2PapvoZLJfYxBSYCuqPVXG+tlTjfR3G2MMSTp14xLCd9t/uou
	6Vo7qmNxPi9YnzXgtnOkG6AIrSCKZWnoxL0tYIsO4nd713wgDAP77qtF4TV5+BK4lEqltPqrMxg
	knc8gQOrrdfRWdxXGP4FEgkVesYGTXOzCQaxKz+NX/I0SOjigrDxWTiNJzpILHu8EDHv3Vxi3O/
	9ekOgfmxlFy5DRGDzk9KKQb7zWd1gS0wzRw/wZABdbhQTAATPKNXdb9NruxAys4kggjY3DWNi1R
	Kbb3laym/iaZGzGX5DKETAJjs2WpTanvRt+7F2dVcVjZXSXg5uczSc4ehA0ZmMS6VjkKLqJc5Wc
	5hQhhTweaMJwayi4GvaCDvVS4initnFk1yqaxEZiHL0RbKhiA63WhReaZcffAczYZbU9HN1GzId
	9LtxY++1A/gXYTvmYsc3omqhl8KCV/NqfDOcTIrBpuLcyhSg79kZ6Tlrc=
X-Google-Smtp-Source: AGHT+IE1IdRPCLK9ukrns+M8xijkSVgAwWDBhJDtiSUlrmHWIZXSZqQKqIq7Y7nzum13H4VjFRQPlA==
X-Received: by 2002:aa7:c590:0:b0:64b:58bf:a05 with SMTP id 4fb4d7f45d1cf-64b8ec6e31dmr8758412a12.18.1766421453832;
        Mon, 22 Dec 2025 08:37:33 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 3/3] xen/riscv: add RISC-V virtual SBI base extension support for guests
Date: Mon, 22 Dec 2025 17:37:21 +0100
Message-ID: <d7c8217605ad5d88a94baf32c2543654a415236d.1766399205.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766399205.git.oleksii.kurochko@gmail.com>
References: <cover.1766399205.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add support of virtual SBI base extension calls for RISC-V guests, delegating
hardware-specific queries to the underlying SBI and handling version and
firmware ID queries directly.

The changes include:
1. Define new SBI base extension function IDs (SBI_EXT_BASE_GET_MVENDORID,
   SBI_EXT_BASE_GET_MARCHID, SBI_EXT_BASE_GET_MIMPID).
2. Introduce XEN_SBI_VER_MAJOR, XEN_SBI_VER_MINOR for imeplenataion of
   SBI_EXT_BASE_GET_SPEC_VERSION.
4. Introduce SBI_XEN_IMPID to implement SBI_EXT_BASE_GET_IMP_ID.
5. Implement handling of SBI base extension functions, including version,
   firmware ID, and machine-specific queries.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v3:
 - s/XEN_SBI_IMPID/SBI_XEN_IMPID
 - Add ASSERT(eid == SBI_EXT_BASE) in vsbi_base_ecall_handler().
 - Fix code style for switch/case.
 - Use current instead of `vcpu` argument as it was dropped from
   vsbi_base_ecall_handler() prototype.
 - Add comments for define-s XEN_SBI_VER_{MAJOR, MINOR} and SBI_XEN_IMPID.
---
Changes in v2:
 - s/vsbi-base-extension.*/base-extension.*
 - Introduce VCPU_SBI_IMPID, XEN_SBI_VER_MINOR and XEN_SBI_VER_MAJOR.
 - Return VCPU_SBI_IMPID in the case of SBI_EXT_BASE_GET_IMP_ID.
 - Return Xen version in the case of SBI_EXT_BASE_GET_IMP_VERSION.
 - Use domain_crash() instead of panic() for default case.
 - For SBI_EXT_BASE_GET_{MVENDORID,MARCHID,MIMPID} abd SBI_EXT_BASE_PROBE_EXT
   add handling of a domain is h/w or not.
---
 xen/arch/riscv/include/asm/sbi.h     | 10 ++++
 xen/arch/riscv/vsbi/Makefile         |  1 +
 xen/arch/riscv/vsbi/base-extension.c | 78 ++++++++++++++++++++++++++++
 3 files changed, 89 insertions(+)
 create mode 100644 xen/arch/riscv/vsbi/base-extension.c

diff --git a/xen/arch/riscv/include/asm/sbi.h b/xen/arch/riscv/include/asm/sbi.h
index 751bae6d66..a88d3d5712 100644
--- a/xen/arch/riscv/include/asm/sbi.h
+++ b/xen/arch/riscv/include/asm/sbi.h
@@ -14,6 +14,13 @@
 
 #include <xen/cpumask.h>
 
+/* Xen-controlled SBI version reported to guests */
+#define XEN_SBI_VER_MAJOR 0
+#define XEN_SBI_VER_MINOR 2
+
+/* SBI-defined implementation ID */
+#define SBI_XEN_IMPID 7
+
 #define SBI_EXT_0_1_SET_TIMER               0x0
 #define SBI_EXT_0_1_CONSOLE_PUTCHAR         0x1
 #define SBI_EXT_0_1_CONSOLE_GETCHAR         0x2
@@ -32,6 +39,9 @@
 #define SBI_EXT_BASE_GET_IMP_ID         0x1
 #define SBI_EXT_BASE_GET_IMP_VERSION    0x2
 #define SBI_EXT_BASE_PROBE_EXT          0x3
+#define SBI_EXT_BASE_GET_MVENDORID      0x4
+#define SBI_EXT_BASE_GET_MARCHID        0x5
+#define SBI_EXT_BASE_GET_MIMPID         0x6
 
 /* SBI function IDs for RFENCE extension */
 #define SBI_EXT_RFENCE_REMOTE_FENCE_I           0x0
diff --git a/xen/arch/riscv/vsbi/Makefile b/xen/arch/riscv/vsbi/Makefile
index bc5755cb13..8ce470f787 100644
--- a/xen/arch/riscv/vsbi/Makefile
+++ b/xen/arch/riscv/vsbi/Makefile
@@ -1,2 +1,3 @@
+obj-y += base-extension.o
 obj-y += core.o
 obj-y += legacy-extension.o
diff --git a/xen/arch/riscv/vsbi/base-extension.c b/xen/arch/riscv/vsbi/base-extension.c
new file mode 100644
index 0000000000..0245ff630e
--- /dev/null
+++ b/xen/arch/riscv/vsbi/base-extension.c
@@ -0,0 +1,78 @@
+
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/lib.h>
+#include <xen/sched.h>
+#include <xen/version.h>
+
+#include <asm/processor.h>
+#include <asm/sbi.h>
+#include <asm/vsbi.h>
+
+static int vsbi_base_ecall_handler(unsigned long eid, unsigned long fid,
+                                   struct cpu_user_regs *regs)
+{
+    int ret = 0;
+    struct sbiret sbi_ret;
+
+    ASSERT(eid == SBI_EXT_BASE);
+
+    switch ( fid )
+    {
+    case SBI_EXT_BASE_GET_SPEC_VERSION:
+        regs->a1 = MASK_INSR(XEN_SBI_VER_MAJOR, SBI_SPEC_VERSION_MAJOR_MASK) |
+                   XEN_SBI_VER_MINOR;
+        break;
+
+    case SBI_EXT_BASE_GET_IMP_ID:
+        regs->a1 = SBI_XEN_IMPID;
+        break;
+
+    case SBI_EXT_BASE_GET_IMP_VERSION:
+        regs->a1 = (xen_major_version() << 16) | xen_minor_version();
+        break;
+
+    case SBI_EXT_BASE_GET_MVENDORID:
+    case SBI_EXT_BASE_GET_MARCHID:
+    case SBI_EXT_BASE_GET_MIMPID:
+        if ( is_hardware_domain(current->domain) )
+        {
+            sbi_ret = sbi_ecall(SBI_EXT_BASE, fid, 0, 0, 0, 0, 0, 0);
+            ret = sbi_ret.error;
+            regs->a1 = sbi_ret.value;
+        }
+        else
+            /*
+             * vSBI should present a consistent, virtualized view to guests.
+             * In particular, DomU-visible data must remain stable across
+             * migration and must not expose hardware-specific details.
+             *
+             * These register(s) must be readable in any implementation,
+             * but a value of 0 can be returned to indicate the field
+             * is not implemented.
+             */
+            regs->a1 = 0;
+
+        break;
+
+    case SBI_EXT_BASE_PROBE_EXT:
+        regs->a1 = vsbi_find_extension(regs->a0) ? 1 : 0;
+        break;
+
+    default:
+        /*
+         * TODO: domain_crash() is acceptable here while things are still under
+         * development.
+         * It shouldn't stay like this in the end though: guests should not
+         * be punished like this for something Xen hasn't implemented.
+         */
+        domain_crash(current->domain,
+                     "%s: Unsupported ecall: FID: #%lx, EID: #%lx\n",
+                     __func__, fid, eid);
+        break;
+    }
+
+    return ret;
+}
+
+VSBI_EXT(base, SBI_EXT_BASE, SBI_EXT_BASE, vsbi_base_ecall_handler)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 22 16:37:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 16:37:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192148.1511477 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXiuf-0008Mc-IC; Mon, 22 Dec 2025 16:37:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192148.1511477; Mon, 22 Dec 2025 16:37:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXiuf-0008MV-CM; Mon, 22 Dec 2025 16:37:37 +0000
Received: by outflank-mailman (input) for mailman id 1192148;
 Mon, 22 Dec 2025 16:37:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ACBk=64=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vXiud-00085h-VX
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 16:37:35 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 843eda7d-df54-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 17:37:33 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-64d0d41404cso2993940a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 08:37:33 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b9105655asm10977819a12.9.2025.12.22.08.37.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Dec 2025 08:37:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 843eda7d-df54-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766421453; x=1767026253; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2rKcl3RMTLtuAlPIfvhLTYtcdM8WDD2kedJ0JOBzWzo=;
        b=J8g1nQLX9XXt9/Tcgf6qFUEBlnPhmV2JpVVLLsUYMlRkbDQKkksTdChw4HDgTxoH9/
         Cwc4Ug4iV2TkLQLAkGkARXHSdG1x7uAadx4oLME5tDJSOadYm0DH9pzkIbID4tXeF9oW
         xL/9iHSz10vDt6cztPatlfpuSZ8R/9EUah2jWm71Gvxsx1ZvefYfziAAzPkX7L86G1mT
         TzBz9skHDaGiW8QlD65OPlVQ9rjxFkgoL780iT96zJ2K63e9a2fJOzYg3rgLkgcRzZT5
         v7DO91WKwM86uhEIPYy8+RROIfhyN+jfN1pfa9M+NUH5KhKkBhU2Kx21MUuRdavJPhFQ
         JXLA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766421453; x=1767026253;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=2rKcl3RMTLtuAlPIfvhLTYtcdM8WDD2kedJ0JOBzWzo=;
        b=TgAZbOthGh6WaMmkS8HeNXzQL1zRPwi8y2+fpzjhjSfdT+XxjxjjRVIFT5KSmMW6YN
         4g/12I4rSD5nFIU81vp/qwz3KZQ1HomNmRyuw1aNH2/x1Gb9bReNL5/ugmgPG+KtYLQY
         AYkGpRliGEZu+ck3K1mdqCoCgmqCzWfDzVsWkBBJcckoncSi/QwgzvF5EzntPFpQ4xk8
         5npkv4IF3I5BCdv+Xy7CvhvLcoYPKsfIGi+++gGHXWyy6WUDIx9dJu8KXPJqWCD5hEET
         C1c2OfRafL+Dv6x9x7vyOcf1wNsPHAZp7sAkXwCgbCD7wkKXnTePdCb5FMAMazEHM6ku
         HD6w==
X-Gm-Message-State: AOJu0YygFzRLsEW8Moc2LbqWt2eAwmjji+vh3XsanpAdNUT8OLfovGyy
	KxV56CuIWRbbDl0WEEOsWRTF5+vy6Lrml2W+S5YfIEcpbsGspMxG5SpZhdDdEQ==
X-Gm-Gg: AY/fxX4NsFFec/9a8QWFBrnWYfFOog+oqoByYahip7rvyK9BoaTUNqcpAyCwvnnmaw/
	sjzRw+lLZjP+Tbh4koEPcD96yL3gZKkeMnQ5IAxg42dvGQ0pE71ojbMH4+IEP5z7MvAlenLaFHU
	KLSr6qyxhnYtkU+lfRrpQ835BiGYi0OJzVYcSRkUmC6NNs9FT++quRp9pXUhMdSB72DtE5tWLBL
	JcTqWx8ZUZWlpCHnMDqfYsbC0yMeTxuZ1D5WJeOenxyD9SmuuU08AOqT+SeQvRmVRam8UqJHP5x
	HqhmloVIVwqllwXAUGVHtKjCfL6NB+5dHe8F8Y/VFh44oMl1qwHckhZs1u0JD6MX7oHsI3VjvE4
	S98kRtNMJXwb7tNDQ3w5RdjncKEYrVnFS8t6WvkFubbxgAuftYKzgcnAaqA8aC5HGjO3u313LA/
	tPgPp6SR1YKktx01S1zaq+2VDxZMr79aPSWUJAxCR4e+df7H67xQ4l7SQ=
X-Google-Smtp-Source: AGHT+IGPf73v97oueoSNdWbJxBDcUT+vi+tzYguW3tnDofwvUiMHekiIbwqEyjqbVeRfAjbk2WiGpQ==
X-Received: by 2002:a05:6402:510d:b0:649:cb54:b7a9 with SMTP id 4fb4d7f45d1cf-64b8ec6c534mr9436702a12.21.1766421452828;
        Mon, 22 Dec 2025 08:37:32 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 2/3] xen/riscv: add RISC-V legacy SBI extension support for guests
Date: Mon, 22 Dec 2025 17:37:20 +0100
Message-ID: <f4225d3134ec12a392a2e5d91414bfdf9d0665a1.1766399205.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766399205.git.oleksii.kurochko@gmail.com>
References: <cover.1766399205.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This commit adds support for legacy SBI extensions (version 0.1) in Xen
for guest domains.

The changes include:
1. Define all legacy SBI extension IDs (0x0 to 0x8) for better clarity and
   completeness.
2. Implement handling of legacy SBI extensions, starting with support for
   SBI_EXT_0_1_CONSOLE_PUTCHAR. SBI_EXT_0_1_CONSOLE_GETCHAR is marked as
   not supported as legacy SBI console related stuff is expected to be used
   only for early debugging of guest.

The implementation uses the existing virtual SBI framework to handle legacy
SBI ecalls, ensuring compatibility with older SBI specifications in
RISC-V guests.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v3:
 - s/vsbi_print_line/vsbi_print_char.
 - s/cd/currd in vsbi_print_char().
 - Drop a cast of regs->a0 when vsbi_print_line() is called.
 - Use current instead of `vcpu` argument as it was dropped from
   vsbi_base_ecall_handler() prototype.
---
Changes in v2:
 - s/vsbi-legacy-extension.*/legacy-extension.*
 - Correct padding for SBI_EXT_0_1_* macros.
 - Set ret = SBI_ERR_NOT_SUPPORTED; in the case of vsbi_legacy_ecall_handler()
   instead of regs->a0 = ... as regs->a0 will be overwritten in
   vsbi_handle_ecall().
 - Use domain_crash() instead of panic() in vsbi_legacy_ecall_handler() and
   add TODO.
 - Use newly introduced VSBI_EXT macros instead of VSBI_EXT_{START,END}.
 - Introduce vsbi_print_line() and use it instead of plain printk() in the
   handler of SBI_EXT_0_1_CONSOLE_PUTCHAR.
---
 xen/arch/riscv/include/asm/sbi.h       | 11 ++++-
 xen/arch/riscv/vsbi/Makefile           |  1 +
 xen/arch/riscv/vsbi/legacy-extension.c | 64 ++++++++++++++++++++++++++
 3 files changed, 74 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/riscv/vsbi/legacy-extension.c

diff --git a/xen/arch/riscv/include/asm/sbi.h b/xen/arch/riscv/include/asm/sbi.h
index ade24a572d..751bae6d66 100644
--- a/xen/arch/riscv/include/asm/sbi.h
+++ b/xen/arch/riscv/include/asm/sbi.h
@@ -14,8 +14,15 @@
 
 #include <xen/cpumask.h>
 
-#define SBI_EXT_0_1_CONSOLE_PUTCHAR		0x1
-#define SBI_EXT_0_1_SHUTDOWN			0x8
+#define SBI_EXT_0_1_SET_TIMER               0x0
+#define SBI_EXT_0_1_CONSOLE_PUTCHAR         0x1
+#define SBI_EXT_0_1_CONSOLE_GETCHAR         0x2
+#define SBI_EXT_0_1_CLEAR_IPI               0x3
+#define SBI_EXT_0_1_SEND_IPI                0x4
+#define SBI_EXT_0_1_REMOTE_FENCE_I          0x5
+#define SBI_EXT_0_1_REMOTE_SFENCE_VMA       0x6
+#define SBI_EXT_0_1_REMOTE_SFENCE_VMA_ASID  0x7
+#define SBI_EXT_0_1_SHUTDOWN                0x8
 
 #define SBI_EXT_BASE                    0x10
 #define SBI_EXT_RFENCE                  0x52464E43
diff --git a/xen/arch/riscv/vsbi/Makefile b/xen/arch/riscv/vsbi/Makefile
index 820eb10ac2..bc5755cb13 100644
--- a/xen/arch/riscv/vsbi/Makefile
+++ b/xen/arch/riscv/vsbi/Makefile
@@ -1 +1,2 @@
 obj-y += core.o
+obj-y += legacy-extension.o
diff --git a/xen/arch/riscv/vsbi/legacy-extension.c b/xen/arch/riscv/vsbi/legacy-extension.c
new file mode 100644
index 0000000000..ca869942d6
--- /dev/null
+++ b/xen/arch/riscv/vsbi/legacy-extension.c
@@ -0,0 +1,64 @@
+
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/console.h>
+#include <xen/lib.h>
+#include <xen/sched.h>
+
+#include <asm/processor.h>
+#include <asm/vsbi.h>
+
+static void vsbi_print_char(char c)
+{
+    struct domain *currd = current->domain;
+    struct domain_console *cons = currd->console;
+
+    if ( !is_console_printable(c) )
+        return;
+
+    spin_lock(&cons->lock);
+    ASSERT(cons->idx < ARRAY_SIZE(cons->buf));
+    if ( c != '\n' )
+        cons->buf[cons->idx++] = c;
+    if ( (cons->idx == (ARRAY_SIZE(cons->buf) - 1)) || (c == '\n') )
+    {
+        cons->buf[cons->idx] = '\0';
+        guest_printk(currd, XENLOG_G_DEBUG "%s\n", cons->buf);
+        cons->idx = 0;
+    }
+    spin_unlock(&cons->lock);
+}
+
+static int vsbi_legacy_ecall_handler(unsigned long eid, unsigned long fid,
+                                     struct cpu_user_regs *regs)
+{
+    int ret = 0;
+
+    switch ( eid )
+    {
+    case SBI_EXT_0_1_CONSOLE_PUTCHAR:
+        vsbi_print_char(regs->a0);
+        break;
+
+    case SBI_EXT_0_1_CONSOLE_GETCHAR:
+        ret = SBI_ERR_NOT_SUPPORTED;
+        break;
+
+    default:
+        /*
+         * TODO: domain_crash() is acceptable here while things are still under
+         * development.
+         * It shouldn't stay like this in the end though: guests should not
+         * be punished like this for something Xen hasn't implemented.
+         */
+        domain_crash(current->domain,
+                     "%s: Unsupported ecall: FID: #%lx, EID: #%lx\n",
+                     __func__, fid, eid);
+        break;
+    }
+
+    return ret;
+}
+
+VSBI_EXT(legacy, SBI_EXT_0_1_SET_TIMER, SBI_EXT_0_1_SHUTDOWN,
+         vsbi_legacy_ecall_handler);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 22 16:37:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 16:37:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192146.1511460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXiue-00085r-2e; Mon, 22 Dec 2025 16:37:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192146.1511460; Mon, 22 Dec 2025 16:37:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXiud-00085j-VK; Mon, 22 Dec 2025 16:37:35 +0000
Received: by outflank-mailman (input) for mailman id 1192146;
 Mon, 22 Dec 2025 16:37:34 +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
 <SRS0=ACBk=64=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vXiuc-00085X-Gg
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 16:37:34 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 839cd4df-df54-11f0-b15b-2bf370ae4941;
 Mon, 22 Dec 2025 17:37:32 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-64b9d01e473so4544646a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 08:37:32 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b9105655asm10977819a12.9.2025.12.22.08.37.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Dec 2025 08:37:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 839cd4df-df54-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766421452; x=1767026252; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/HCe2N/71vT19AvFHOzu9qbV/lmSQc59kxkuI015uss=;
        b=SX0X+mUIG8C81gRN1nrnt3ToF54BCCTqtlOUX8VcLjt97uK0nngTrOnxoZu0/boyHL
         0ptd6ORev+eCIeFO0R0RNYeldDogwcMNuTBDZrVJNXcKWC3vR0Zd5rVyKFm56bwV4znn
         fVdf9HvMrewogjVXLFn0VvffdgGE3p/jVlRbo+kVynIPTWQzNwKCj51g5qCho3aGnDS7
         tfRPUib/4e0WS9fsN2wemXDuWRd/FZTIhRlVH77nEXParIKK9zBvsmsczAULyaHPFFT9
         76S/OgCA5+lQlgW22GW/5rpuZoMvzkW4DR8cfJtpnf7w3oqhgxP2kpkVK3mKb2rqYEKW
         NMGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766421452; x=1767026252;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=/HCe2N/71vT19AvFHOzu9qbV/lmSQc59kxkuI015uss=;
        b=dSOC94kZ+tKdreiRGikE7H/oWl6ga3doUbNzo+g/End5uO5oBhbabGVZWnC/2CgqKh
         dVa4sjcU4fRevzuNCUiVau4U89b+lqzxQMAyuWuPqvJNS3Y+GyY4QTVa+FgJuPpDStGj
         DazIqsmwJvzy2bRrP4wtN3g5Z0DzrK4FHwW8TCkZF42Kuys/K7jKvV7hYK8HD1Fsmr7l
         jm3YZlSqKVbdWs163GxhxVIsHqfJmFA7R+Yi7H/Uvj8reTbRdG+CCfwDkqmUelzyGZYV
         0HD2XYn+CpYUgpb3U6uk8mgBUCCfO8K5qrbM6bcS9ml2UYXbt/+0/mB6bDztxWquwKHa
         khtg==
X-Gm-Message-State: AOJu0Yxh1d/m9+8aBrIEC90BtuJH6EWMg7AJSeaU0UF2ZtY0eH6iyA+V
	6/9Kq9GPAc1naIwmEFnHTs+M9j4CXufEvTQzG1In0nFWTl3h/BtX6HK1kdx3Wg==
X-Gm-Gg: AY/fxX4o+NC+QGB0wvyuQrEmHcSQ0j47yyeVzL4HnLHtzz8nyGL0cj/HpXgy8fCkX7U
	2NbrxXex1+5BxxfR2d9wbKoHuGWD58v9TpTGUHd7rZI1Qt6yMoVfqlCOH0rEQv8Eyb7dl8M55Vc
	YeJKqJICOhOoztY+13u5zSCcmHRtY6zd9fQ8SDnvNavziuXHKqOFB52CWnoTG6ge4guQK7tXE9p
	WJkR2Z60dPknZIOZIPte0W427Cui1OVSSdHlphoyiPdlPTT0qesEITK9PhjGT1Tkztq5mQKR9bn
	0h+Bc8k5LajwvqrTRW4Q0FGLGAKWY9ZLW3L6GiP0lhA/DH5PDGrGcFDDREk3d+e40nYLcamxCY9
	mpJnSzwyDCjaJXi5S2ELKa5719KhSYb9t49MV1UkDt4rJlQYTk9t231lVXw17T1HK9u9lIb9veD
	Og2tbt1Ut3LLDFaVdOO8i3CRoQOHDJNqEc5+mZTWN3SH6V+dUExN9dJJc=
X-Google-Smtp-Source: AGHT+IHxOjBBbC9qjZkEhy5tVsK3+XU0w9+7o+vioqLqz0q3SXmicwbaorTzm1Sl3J/danOUJafZ2Q==
X-Received: by 2002:a05:6402:1e92:b0:64d:589a:572b with SMTP id 4fb4d7f45d1cf-64d589a59f3mr4424897a12.17.1766421451785;
        Mon, 22 Dec 2025 08:37:31 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 1/3] xen/riscv: introduce vSBI extension framework
Date: Mon, 22 Dec 2025 17:37:19 +0100
Message-ID: <61c84c3e296ab53f57d090c6ba3a533aa7049088.1766399205.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766399205.git.oleksii.kurochko@gmail.com>
References: <cover.1766399205.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This commit introduces support for handling virtual SBI extensions in Xen.

The changes include:
- Added new vsbi/core.c and vsbi.h files to implement virtual SBI extension
  handling.
- Modified traps.c to handle CAUSE_VIRTUAL_SUPERVISOR_ECALL by calling
  vsbi_handle_ecall() when the trap originates from VS-mode.
- Updated xen.lds.S to include a new .vsbi.exts section for virtual SBI
  extension data.
- Updated Makefile to include the new vsbi/ directory in the build.
- Add hstatus register to struct cpu_user_regs as it is needed for
  a check that CAUSE_VIRTUAL_SUPERVISOR_ECALL happens from VS-mode.
  Also, add storing/restoring of hstatus register in handle_trap().
- Introduce vsbi_find_extension() to check if vsbi extension is supported
  by Xen. For now it is called only inside vsbi/core.c, but in future
  it is going to be called from other files.
- Introduce check_vsbi_ext_ranges() to check if there EIDs ranges
  overlapping between extensions.

The implementation allows for registration and handling of SBI
extensions via a new vsbi_ext structure and ".vsbi.exts" section,
enabling extensible virtual SBI support for RISC-V guests.

Note: All EIDs are printed in the format #%#lx and all FIDs in #%lu, as
the SBI spec uses these formats. Printing them this way makes it easier
to search for them in the SBI spec.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v3:
 - Declare ext inside for() in vsbi_find_extension().
 - Use gprintk() instead of printk().
 - Drop `vcpu` argument for vsbi_handle_ecall() and
   ->handlers() as current is always used.
 - Correct commit message: s/#%#lu/#%lu.
---
Changes in v2:
 - s/struct regs/struct cpu_user_regs.
 - s/handle/handler.
 - Drop extid_ prefix inside VSBI_EXT_START().
 - use BUG_ON() instead of panic to be sure that 
   CAUSE_VIRTUAL_SUPERVISOR_ECALL comes from VS-mode.
 - s/ext_id/eid for vsbi_find_extension().
 - Add the comment above VSBI_EXT_START about [start,end] range.
 - Drop check "&& ext->handler" in vsbi_handle_ecall() as it isn't
   be so that handler() isn't provided.
 - s/vsbi.c/core.c
 - s/vsbi_ext/ext for local variable inside vsbi_find_extension().
 - Update the commit message: add a note about FID and EID printing formats,
   add some information about vsbo_find_extension() function, and add info
   about check_vsbi_ext_ranges().
 - Introduce check_vsbi_ext_ranges() to be sure that there is no overlapping
   in EIDs range(s).
 - Add storing/restoring of hstatus register in handle_trap()[entry.S].
---
 xen/arch/riscv/Makefile                |  1 +
 xen/arch/riscv/entry.S                 |  6 +++
 xen/arch/riscv/include/asm/processor.h |  1 +
 xen/arch/riscv/include/asm/vsbi.h      | 31 ++++++++++++++
 xen/arch/riscv/riscv64/asm-offsets.c   |  1 +
 xen/arch/riscv/setup.c                 |  3 ++
 xen/arch/riscv/traps.c                 |  8 ++++
 xen/arch/riscv/vsbi/Makefile           |  1 +
 xen/arch/riscv/vsbi/core.c             | 57 ++++++++++++++++++++++++++
 xen/arch/riscv/xen.lds.S               |  7 ++++
 10 files changed, 116 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/vsbi.h
 create mode 100644 xen/arch/riscv/vsbi/Makefile
 create mode 100644 xen/arch/riscv/vsbi/core.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 9dde693db4..87c1148b00 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -20,6 +20,7 @@ obj-y += time.o
 obj-y += traps.o
 obj-y += vmid.o
 obj-y += vm_event.o
+obj-y += vsbi/
 
 $(TARGET): $(TARGET)-syms
 	$(OBJCOPY) -O binary -S $< $@
diff --git a/xen/arch/riscv/entry.S b/xen/arch/riscv/entry.S
index 4db818ba8d..202a35fb03 100644
--- a/xen/arch/riscv/entry.S
+++ b/xen/arch/riscv/entry.S
@@ -48,11 +48,17 @@ save_to_stack:
         csrr    t0, CSR_SSTATUS
         REG_S   t0, CPU_USER_REGS_SSTATUS(sp)
 
+        csrr    t0, CSR_HSTATUS
+        REG_S   t0, CPU_USER_REGS_HSTATUS(sp)
+
         mv      a0, sp
         call    do_trap
 
 restore_registers:
         /* Restore stack_cpu_regs */
+        REG_L	t0, CPU_USER_REGS_HSTATUS(sp)
+        csrw	CSR_HSTATUS, t0
+
         REG_L   t0, CPU_USER_REGS_SEPC(sp)
         csrw    CSR_SEPC, t0
         REG_L   t0, CPU_USER_REGS_SSTATUS(sp)
diff --git a/xen/arch/riscv/include/asm/processor.h b/xen/arch/riscv/include/asm/processor.h
index 2502045642..6b89df4a2d 100644
--- a/xen/arch/riscv/include/asm/processor.h
+++ b/xen/arch/riscv/include/asm/processor.h
@@ -49,6 +49,7 @@ struct cpu_user_regs
     unsigned long t6;
     unsigned long sepc;
     unsigned long sstatus;
+    unsigned long hstatus;
     /* pointer to previous stack_cpu_regs */
     unsigned long pregs;
 };
diff --git a/xen/arch/riscv/include/asm/vsbi.h b/xen/arch/riscv/include/asm/vsbi.h
new file mode 100644
index 0000000000..fa0cad604e
--- /dev/null
+++ b/xen/arch/riscv/include/asm/vsbi.h
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier:  GPL-2.0-only */
+
+#ifndef ASM_RISCV_VSBI_H
+#define ASM_RISCV_VSBI_H
+
+struct cpu_user_regs;
+
+struct vsbi_ext {
+    const char *name;
+    unsigned long eid_start;
+    unsigned long eid_end;
+    int (*handler)(unsigned long eid, unsigned long fid,
+                   struct cpu_user_regs *regs);
+};
+
+/* Ranges (start and end) are inclusive within an extension */
+#define VSBI_EXT(ext, start, end, handle)           \
+static const struct vsbi_ext vsbi_ext_##ext __used  \
+__section(".vsbi.exts") = {                         \
+    .name = #ext,                                   \
+    .eid_start = start,                             \
+    .eid_end = end,                                 \
+    .handler = handle,                              \
+};
+
+void vsbi_handle_ecall(struct cpu_user_regs *regs);
+const struct vsbi_ext *vsbi_find_extension(unsigned long eid);
+
+void check_vsbi_ext_ranges(void);
+
+#endif
diff --git a/xen/arch/riscv/riscv64/asm-offsets.c b/xen/arch/riscv/riscv64/asm-offsets.c
index 3b5daf3b36..472cced4f8 100644
--- a/xen/arch/riscv/riscv64/asm-offsets.c
+++ b/xen/arch/riscv/riscv64/asm-offsets.c
@@ -49,6 +49,7 @@ void asm_offsets(void)
     OFFSET(CPU_USER_REGS_T6, struct cpu_user_regs, t6);
     OFFSET(CPU_USER_REGS_SEPC, struct cpu_user_regs, sepc);
     OFFSET(CPU_USER_REGS_SSTATUS, struct cpu_user_regs, sstatus);
+    OFFSET(CPU_USER_REGS_HSTATUS, struct cpu_user_regs, hstatus);
     OFFSET(CPU_USER_REGS_PREGS, struct cpu_user_regs, pregs);
     BLANK();
     DEFINE(PCPU_INFO_SIZE, sizeof(struct pcpu_info));
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 8f46f1a1de..9b4835960d 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -26,6 +26,7 @@
 #include <asm/sbi.h>
 #include <asm/setup.h>
 #include <asm/traps.h>
+#include <asm/vsbi.h>
 
 /* Xen stack for bringing up the first CPU. */
 unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
@@ -110,6 +111,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     end_boot_allocator();
 
+    check_vsbi_ext_ranges();
+
     /*
      * The memory subsystem has been initialized, we can now switch from
      * early_boot -> boot.
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index f061004d83..e9c9677863 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -15,6 +15,7 @@
 #include <asm/processor.h>
 #include <asm/riscv_encoding.h>
 #include <asm/traps.h>
+#include <asm/vsbi.h>
 
 /*
  * Initialize the trap handling.
@@ -114,6 +115,13 @@ void do_trap(struct cpu_user_regs *cpu_regs)
 
     switch ( cause )
     {
+    case CAUSE_VIRTUAL_SUPERVISOR_ECALL:
+        /* CAUSE_VIRTUAL_SUPERVISOR_ECALL should come from VS-mode */
+        BUG_ON(!(cpu_regs->hstatus & HSTATUS_SPV));
+
+        vsbi_handle_ecall(cpu_regs);
+        break;
+
     case CAUSE_ILLEGAL_INSTRUCTION:
         if ( do_bug_frame(cpu_regs, pc) >= 0 )
         {
diff --git a/xen/arch/riscv/vsbi/Makefile b/xen/arch/riscv/vsbi/Makefile
new file mode 100644
index 0000000000..820eb10ac2
--- /dev/null
+++ b/xen/arch/riscv/vsbi/Makefile
@@ -0,0 +1 @@
+obj-y += core.o
diff --git a/xen/arch/riscv/vsbi/core.c b/xen/arch/riscv/vsbi/core.c
new file mode 100644
index 0000000000..f5ded8f676
--- /dev/null
+++ b/xen/arch/riscv/vsbi/core.c
@@ -0,0 +1,57 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/sched.h>
+
+#include <asm/processor.h>
+#include <asm/sbi.h>
+#include <asm/vsbi.h>
+
+extern const struct vsbi_ext _svsbi_exts[], _evsbi_exts[];
+
+void __init check_vsbi_ext_ranges(void)
+{
+    for ( const struct vsbi_ext *a = _svsbi_exts; a != _evsbi_exts; a++ )
+        for ( const struct vsbi_ext *b = a + 1; b != _evsbi_exts; b++ )
+            if ( !(a->eid_end < b->eid_start || b->eid_end < a->eid_start) )
+                panic("EID range overlap detected: "
+                      "%s:[#%#lx..#%#lx] vs %s:[#%#lx..#%#lx]\n",
+                      a->name, a->eid_start, a->eid_end,
+                      b->name, b->eid_start, b->eid_end);
+}
+
+const struct vsbi_ext *vsbi_find_extension(unsigned long eid)
+{
+    for ( const struct vsbi_ext *ext = _svsbi_exts;
+          ext != _evsbi_exts;
+          ext++ )
+        if ( (eid >= ext->eid_start) && (eid <= ext->eid_end) )
+            return ext;
+
+    return NULL;
+}
+
+void vsbi_handle_ecall(struct cpu_user_regs *regs)
+{
+    const unsigned long eid = regs->a7;
+    const unsigned long fid = regs->a6;
+    const struct vsbi_ext *ext = vsbi_find_extension(eid);
+    int ret;
+
+    if ( ext )
+        ret = ext->handler(eid, fid, regs);
+    else
+    {
+        gprintk(XENLOG_ERR, "Unsupported Guest SBI EID #%#lx, FID #%lu\n",
+                eid, regs->a1);
+        ret = SBI_ERR_NOT_SUPPORTED;
+    }
+
+    /*
+     * The ecall instruction is not part of the RISC-V C extension (compressed
+     * instructions), so it is always 4 bytes long. Therefore, it is safe to
+     * use a fixed length of 4 bytes instead of reading guest memory to
+     * determine the instruction length.
+     */
+    regs->sepc += 4;
+    regs->a0 = ret;
+}
diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
index 45d2e053d0..331a7d63d3 100644
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -61,6 +61,13 @@ SECTIONS
         __note_gnu_build_id_end = .;
     } :note :text
     #endif
+
+    . = ALIGN(POINTER_ALIGN);
+    DECL_SECTION(.vsbi.exts) {
+        _svsbi_exts = .;
+        *(.vsbi.exts)
+        _evsbi_exts = .;
+    } :text
     _erodata = .;                /* End of read-only data */
 
     . = ALIGN(PAGE_SIZE);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 22 16:37:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 16:37:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192150.1511489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXiuo-0000ST-Qs; Mon, 22 Dec 2025 16:37:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192150.1511489; Mon, 22 Dec 2025 16:37:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXiuo-0000SK-OQ; Mon, 22 Dec 2025 16:37:46 +0000
Received: by outflank-mailman (input) for mailman id 1192150;
 Mon, 22 Dec 2025 16:37:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ACBk=64=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vXiun-00085h-C6
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 16:37:45 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8302be99-df54-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 17:37:31 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-b7355f6ef12so743214166b.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 08:37:31 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b9105655asm10977819a12.9.2025.12.22.08.37.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Dec 2025 08:37:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8302be99-df54-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766421451; x=1767026251; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=UfaMQVt71vudvZ+6o553qPxHKZsQhzxz3nxmG/7MgzY=;
        b=gZwGr8xWzT02772LM4V8/wExtqXsEkVx7g3K3RZdMfe4RR8jt7hHgVmacgXl8Lp/tQ
         4haysiOCJg6msOQb4vJ7Trd4Wcdx09wt7yzqE8++/vgZd+IT78uoTDZ0vtXbftUGsSMm
         5aJeqd5HXX0MBYG0sYyAjTtY/divf4tJXR/OpUxiSG9RPPFiAq3xmajeixKc79wSWkUN
         k3Z3rMtzdy94qk7eMb65t9hOgypDTl/CjRYBgA12w7T372nSJl3Rl9XzOZtXW9XtA9Do
         TrEg6M6eHLmYrhwi8inkzosw9AG1Ev3cmi8egfV4GmHq9f16+kZDNBU7E+NTRXA412WM
         bYdA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766421451; x=1767026251;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UfaMQVt71vudvZ+6o553qPxHKZsQhzxz3nxmG/7MgzY=;
        b=l0jOfGS8nhQX0GkFdkxMUdPzvUmn6hzDDEMEtCOAJxkefiIyJZqKzHe6Oq2jFGi83N
         s1OUzoPYkZsD6LnnrM63OqnniscYRjR4r8AxzDHZQ9cjv3ZPAmVH1BNkzAzh1Epb2h2g
         QEuBo28HVtLSDYI0n6ObwWmOX/IYglIcJgHtRTaF20b1Eg8CrsFGh/0pWVgzUf/OzIiD
         nKHyqXhVmsYMvFuEiiY914LL9WDgKhUbOaaQQU7loKhrxOHCH1NuMMnKrnEiZi+6CMHQ
         /Gpo66jndwZQGgSFWUH2Vg+Zl79x8E0A+Os9p/0GfCrHclXYROAVojPR/mDmhv1kEjAO
         XdYg==
X-Gm-Message-State: AOJu0Yxaj3vYuYptZPTCecvZ6Yhc7zcPJJsUSdnILM5qY/aLU/Qi45sr
	42fr/nJW5FDlgLzeM9gl7+ngH1ClNl4zWmBOXPj1Hy9YcF4ITCJy3+VTdOCbag==
X-Gm-Gg: AY/fxX6cIJ/aYV4oAsAuCr2coCrfjH+EthZTnVSGi2g4rtRFeYUnVS3ge3HSlGxZ5nm
	0oIAVVEqE5ckSQOmMnvf6bMqj5Sh3w1MGnARCfkMSrdBd1ComhqpcT5Z9JnSP1fQGrEP+6OWQZR
	BWBNsyOlBp4MvfLhTOd+/iCikx/D/1MXKh/N/q3YCNOFPozmi7ZT8LlSqQfGuBpewNMuQrCOtOt
	Ni6/BGTdsbGh4n/caEqaRAI5h+hcOmxYfAuz2VA92i3rA0xra2/fjlgKz7hLsF3QyNvsrwNQNtD
	t5EIifpaBPwa+RKGQHVXVnBPx8ZK8sAYLz+gmqI4lzAXzjH+kfIauFGJmI/IjBS7SgQ2XX74EJd
	SotWwGAlnEI1zw16vW+BdWENz/5MkiZynffDn9UWMRvl0MuDWlQm6eCYIDRxzudSS1xuuoL2lfE
	bvl2b5c4EmZaTom+4ArGzfMBGDN/hsYFimPO7pRkS/3Tkq8kwa+5x+PQA=
X-Google-Smtp-Source: AGHT+IGvXT3pTP0j8wqYblo4WAN9/SFFYARSVhXay+MvpV+gtEzGYzertZngk3eBbBhQ73TrTRc30Q==
X-Received: by 2002:a17:906:730f:b0:b73:9937:e96b with SMTP id a640c23a62f3a-b8037183903mr1275110066b.52.1766421450688;
        Mon, 22 Dec 2025 08:37:30 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 0/3] RISC-V: Introduce vSBI framework
Date: Mon, 22 Dec 2025 17:37:18 +0100
Message-ID: <cover.1766399205.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the vSBI framework to handle extension ecall instruction calls
from a guest.

In this patch series, support is added for only a few extensions and FIDs,
just enough to boot the first guest domains and obtain logs from them. This
keeps the patch series independent from other ongoing work.

It was decided to start with support for the Legacy Extension, as it is still
supported by Linux (so we may need it anyway), and because some of its FIDs
require less functionality to implement at this stage compared to the more
modern extensions.

CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2228014400

---
Changes in v3:
 - Address a comments from v2.
---
Changes in v2:
 - Address a comments from v1.
---

Oleksii Kurochko (3):
  xen/riscv: introduce vSBI extension framework
  xen/riscv: add RISC-V legacy SBI extension support for guests
  xen/riscv: add RISC-V virtual SBI base extension support for guests

 xen/arch/riscv/Makefile                |  1 +
 xen/arch/riscv/entry.S                 |  6 ++
 xen/arch/riscv/include/asm/processor.h |  1 +
 xen/arch/riscv/include/asm/sbi.h       | 21 ++++++-
 xen/arch/riscv/include/asm/vsbi.h      | 31 ++++++++++
 xen/arch/riscv/riscv64/asm-offsets.c   |  1 +
 xen/arch/riscv/setup.c                 |  3 +
 xen/arch/riscv/traps.c                 |  8 +++
 xen/arch/riscv/vsbi/Makefile           |  3 +
 xen/arch/riscv/vsbi/base-extension.c   | 78 ++++++++++++++++++++++++++
 xen/arch/riscv/vsbi/core.c             | 57 +++++++++++++++++++
 xen/arch/riscv/vsbi/legacy-extension.c | 64 +++++++++++++++++++++
 xen/arch/riscv/xen.lds.S               |  7 +++
 13 files changed, 279 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/vsbi.h
 create mode 100644 xen/arch/riscv/vsbi/Makefile
 create mode 100644 xen/arch/riscv/vsbi/base-extension.c
 create mode 100644 xen/arch/riscv/vsbi/core.c
 create mode 100644 xen/arch/riscv/vsbi/legacy-extension.c

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 22 16:38:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 16:38:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192167.1511501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXiv5-0001FT-5E; Mon, 22 Dec 2025 16:38:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192167.1511501; Mon, 22 Dec 2025 16:38:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXiv4-0001FI-WE; Mon, 22 Dec 2025 16:38:03 +0000
Received: by outflank-mailman (input) for mailman id 1192167;
 Mon, 22 Dec 2025 16:38:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ACBk=64=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vXiv4-00085h-C2
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 16:38:02 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 94351e5d-df54-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 17:38:00 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-64b4f730a02so6643139a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 08:38:00 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037de004fsm1149128166b.45.2025.12.22.08.37.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Dec 2025 08:37:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 94351e5d-df54-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766421480; x=1767026280; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=3CZ7UGa1iggeXvvKtkf16U5OQ58dYEMb75iwj0evo68=;
        b=JtFMnKyQxvyfvBmuOKoKehM/rL1EFRM0CNaj9RCT+aK/tlnwGmHRpIhJnArghjQrHS
         dWMrnF4XlveVRaVwjXZCG7fw4FJLxS/Q/8J1wPyMTIxze5we2JrpIQmtzxR+wscpf2wZ
         kmYJHJo2w7uitb0trdNPCAJAzFwqNM1gSBkkeR6XQqViY1VzQA8rjIR1nBRUYdPao/z/
         23tI63Gw2M3f2W8krn7G4PSo7H/bO1sDDX+2p3PR83xyfHJUgKZOKGBBaX/SSw/R2qUy
         a0hO/IPsiyBKuH8kbcUV+xV5MT3FWN5nDh4lxjcB0+dPNsMc5Hipi38+FRZiyRtkEESm
         UQhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766421480; x=1767026280;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3CZ7UGa1iggeXvvKtkf16U5OQ58dYEMb75iwj0evo68=;
        b=snoVQe7rfv5+/8vWhG3tnMQHuBP/u4qnnzqM/eFs4ztQXbBGgzuQqA2g67fBB48YpF
         lh0IdCfCqHHGoBGwJ+7iS8/yMqfAU6G6qT93jIJV6AEl0EagaQYqw1ZSaWMgE9qHATWO
         47qyJsf+OiLjeEGM2KWRZZQJ8xLcogjFa/ky1nW40Uh6ymCB5+KDDTJVi9ECvhgW0VAA
         L6r15TKdaHiEWuFSHZnWhdgh+QKlBS5rTSmxfA9ybhQeH75uk5cPWLcMcc10Cf7apQlF
         Z8+LwFIDNWhjNTPoe5qDVknOHFTjS8Ef9tiBKXW08C/hLAp16/D732F3dUnzbHraMWv2
         vO2A==
X-Gm-Message-State: AOJu0YwLCpkq5hH70N7aS4A17yzZSWMk4TqLivXUfaGRKmAQx4fUQo/w
	LnSlRpM0Ksos5bhJe7VweJBc73kYw7pU8oYvpu7VIRzIq7rBAdnlhaJMrYSjaA==
X-Gm-Gg: AY/fxX4Qm7Qb39R384hgffqVktbj1gt/afABD7rB9F/UQ64rKJ9fEZ5wLwVHUtQptmU
	pegNM+5Gh4BLbQoTHlTZcxAaTVMQUrymiQq32/MQ86VTxyN080rXJHjdVtHFp8f09tk65qbFbNk
	AtQ1TMsqZ+BYpvIHSQWjEOJVb24rp/2S1iUf5IgJ/DRTou3emSqw+OJQXCD0gUUnnI28yIzk+xN
	mLTYe5+2HSfXmdPTyx9/c+ydnxLz3Vua6f/SBsbYv3afcBrteeh7d37Yczou9VimE7dOpMxpRMw
	ykUIR1WHgWDR1VaNHDGyej2pQcho2ObrEzh5cd9EY1Ku6fkkvTOhgWSQdxXQlZu9RIAmZq0eMi5
	DKWVLmz/Ko1iUjcJV1SWl4gqRZGuQ5M2tersseR2L3Z/+w70lPQAFWEPmNJ2gPsj0t0/Cp+Iq6L
	h4QPW6lLgl5ydn8o1CE0FtFP0ud4JTIJdOev5sL5F4km21JERLyttdfio=
X-Google-Smtp-Source: AGHT+IE8SyxP7GyqcWK/PXY+npcU8qVIDTYzi3k+fvU28CK6WN83OOoaG9oowWZNx1rm/flYqSo+qg==
X-Received: by 2002:a17:907:c02:b0:b73:7184:b7d3 with SMTP id a640c23a62f3a-b80371f3a9bmr1324486566b.58.1766421479669;
        Mon, 22 Dec 2025 08:37:59 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v8 0/3] xen/riscv: introduce p2m functionality
Date: Mon, 22 Dec 2025 17:37:46 +0100
Message-ID: <cover.1766406895.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In this patch series are introduced necessary functions to build and manage
RISC-V guest page tables and MMIO/RAM mappings.

CI tests:
  https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2224311393

---
Changes in V8:
 - All patches (except last three ones) are merged to staging.
 - Addressed comments for v7.
---
Changes in V7:
 - Merged to staging:
   - xen/riscv: avoid redundant HGATP*_MODE_SHIFT and HGATP*_VMID_SHIFT
 - Introduce new patch:
   - xen/riscv: update p2m_set_entry to free unused metadata page
   (could be merged with previous one: xen/riscv: introduce metadata table to
    store P2M type )
 - Addressed comments for v6.
---
Changes in V6:
 - Addressed coment for v5.
---
Changes in V5:
 - Addressed comments for v4.
---
Changes in V4:
 - Merged to staging:
   - xen/riscv: introduce sbi_remote_hfence_gvma()
   - xen/riscv: introduce sbi_remote_hfence_gvma_vmid()
 - Drop "xen/riscv: introduce page_{get,set}_xenheap_gfn()" as grant tables aren't going to be introduced for the moment. Also, drops other parts connected to grant tables support.
 - All other changes are patch specific.
---
Changes in V3:
 - Introduce metadata table to store P2M types.
 - Use x86's way to allocate VMID.
 - Abstract Arm-specific p2m type name for device MMIO mappings.
 - All other updates please look at specific patch.
---
Changes in V2:
 - Merged to staging:
   - [PATCH v1 1/6] xen/riscv: add inclusion of xen/bitops.h to asm/cmpxchg.h
 - New patches:
   - xen/riscv: implement sbi_remote_hfence_gvma{_vmid}().
 - Split patch "xen/riscv: implement p2m mapping functionality" into smaller
   one patches:
   - xen/riscv: introduce page_set_xenheap_gfn()
   - xen/riscv: implement guest_physmap_add_entry() for mapping GFNs to MFNs
   - xen/riscv: implement p2m_set_entry() and __p2m_set_entry()
   - xen/riscv: Implement p2m_free_entry() and related helpers
   - xen/riscv: Implement superpage splitting for p2m mappings
   - xen/riscv: implement p2m_next_level()
   - xen/riscv: Implement p2m_entry_from_mfn() and support PBMT configuration
 - Move root p2m table allocation to separate patch:
   xen/riscv: add root page table allocation
 - Drop dependency of this patch series from the patch witn an introduction of
   SvPBMT as it was merged.
 - Patch "[PATCH v1 4/6] xen/riscv: define pt_t and pt_walk_t structures" was
   renamed to xen/riscv: introduce pte_{set,get}_mfn() as after dropping of
   bitfields for PTE structure, this patch introduce only pte_{set,get}_mfn().
 - Rename "xen/riscv: define pt_t and pt_walk_t structures" to
   "xen/riscv: introduce pte_{set,get}_mfn()" as pt_t and pt_walk_t were
   dropped.
 - Introduce guest domain's VMID allocation and manegement.
 - Add patches necessary to implement p2m lookup:
   - xen/riscv: implement mfn_valid() and page reference, ownership handling helpers
   - xen/riscv: add support of page lookup by GFN
 - Re-sort patch series.
 - All other changes are patch-specific. Please check them.
---

Oleksii Kurochko (3):
  xen/riscv: add support of page lookup by GFN
  xen/riscv: introduce metadata table to store P2M type
  xen/riscv: update p2m_set_entry() to free unused metadata pages

 xen/arch/riscv/include/asm/flushtlb.h |   2 +-
 xen/arch/riscv/include/asm/mm.h       |  21 ++
 xen/arch/riscv/include/asm/p2m.h      |  21 ++
 xen/arch/riscv/mm.c                   |  13 +
 xen/arch/riscv/p2m.c                  | 437 ++++++++++++++++++++++++--
 5 files changed, 464 insertions(+), 30 deletions(-)

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 22 16:38:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 16:38:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192169.1511509 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXiv7-0001Wd-B4; Mon, 22 Dec 2025 16:38:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192169.1511509; Mon, 22 Dec 2025 16:38:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXiv7-0001WS-7Z; Mon, 22 Dec 2025 16:38:05 +0000
Received: by outflank-mailman (input) for mailman id 1192169;
 Mon, 22 Dec 2025 16:38:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ACBk=64=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vXiv5-00085h-KW
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 16:38:03 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 94ebe4c7-df54-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 17:38:01 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-64ba74e6892so4587400a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 08:38:01 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037de004fsm1149128166b.45.2025.12.22.08.37.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Dec 2025 08:38:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 94ebe4c7-df54-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766421481; x=1767026281; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=K1roM12Mw39RifSf3h2tzbDV94jY317E0NvXspPdXDM=;
        b=Ei+19PkuGnWiCN9JLPuSQ8p34702XDYS3jQI52OnQ1PO7GfWQHyjRyuAIYwGssel41
         wfoW47wXkwzaNsTcsYZcZBpP4bbP5jNLF59Hwh0MRGrd7wns2TFNSLHBmo0xyE2h2NXk
         vpvzO/aEcePXtKAGK+bVt3v6unWr5/Cl5eZAX0HTG+aPZh5+2u+mLHIybWmaNCU5fa/Y
         NNCJUKBTTuyj3frdMQ9NhsoDa43b3oSlLNwNZ54J/22WjXBoPU8g/MmpMd8F/m+5RboO
         JJSu4oeEYDl6WcHdvvkG5qN1GAotSOZzShQvCDCdPK4kbjPSq0z1eQBSsriDYGql+1jk
         mH2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766421481; x=1767026281;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=K1roM12Mw39RifSf3h2tzbDV94jY317E0NvXspPdXDM=;
        b=uU7MklnY5E9zULx/nYmQ3lE7JXzF387x7PFSzqD+zEiq2rQTSqKIORbwqW7cL3aFYS
         Xg+fH4Q3Erm3IwneriVCVDm0l8B491RNib3LKXsBZEJWafV4I5Urqb4o3+a0F8Q4nF4t
         iicZIlpFqff1CBHJm2yI+u9up/D981mJb3suUMiGIGiKU8XodUiyljhZn0Tqy3ThDTrj
         XB5mJoetrEFP2AhzOi5O2U+GwKR96DIcz37mDkI2kjwWX50TSE7kAN+SBzS1RM2HQSbg
         /7eEoMI6dV7OfthPY/qLR8buB3qmBY32Jkm5pMe5+NNTNefBftgh522qBA6ck8T94dtk
         OZQg==
X-Gm-Message-State: AOJu0YzoYs/aDammFe9UuGL9IgLMiYbHU0Okr+Jm81AhmlztzgINohBX
	x7HWxqQ2OD8l7pQ/YzQaW6JieyvKac3GBh5qR04ejjx/eYzJcTfw7tNAHZ+oIg==
X-Gm-Gg: AY/fxX65zQaFgrgg2ZKcp239Iqu0OL4r4SdL5ij3Iemx5ANo5vyu4c+onGUDHNcPPbw
	yeifFESO9jhgzT5D4ibdZ1NsrshlUhmtHqpV9xylxIu2v1GvMN18Mf+WJqqobmHwmq2axdtt45Z
	dCmnwORkMM8ItQwtSOlK0y6H0QPzmoPgrTD2NejPsj6F8oRvkKs9NPzb1u1OaMp/GbHZrbXxGAJ
	/5ZoktuTC2s/tdDGLl6KW/C4KLDqkTK19yAU1vznbQq0PEaKLAIQ7oD2O5eTQjVnIKZ3kqWSCb/
	xcYCNQSwcbGyrcCQIV7TPYKRVeK4ITddiJ9cPQMAWxaHA2TRv9CrqcDRrRe6lILMS2Nn1/H3FuN
	pkwb8AuH7oPfll4lW5Xf1grt6QyXWjHlpp0SCfzb9cyOaAdrxbAjQDRp7zj9Nwg9Gh8EgwJngcm
	cD391JpB0Evb8ak6NWC2brfSuCNQ4Eu2cfhv31XVNRcnKzSEGcKlNAGGQ=
X-Google-Smtp-Source: AGHT+IEtMrSq3gUuUEY2z045LwPXlSjaMt9lt7KSp0MWAxGMXSryGzCzI3aKm15gi35ZNFwbXJ4o9A==
X-Received: by 2002:a17:907:1caa:b0:b77:1b03:66a1 with SMTP id a640c23a62f3a-b80371756c1mr1329058666b.41.1766421480634;
        Mon, 22 Dec 2025 08:38:00 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v8 1/3] xen/riscv: add support of page lookup by GFN
Date: Mon, 22 Dec 2025 17:37:47 +0100
Message-ID: <5d10efb00eebb35861135280dfee391d0c55cf0d.1766406895.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766406895.git.oleksii.kurochko@gmail.com>
References: <cover.1766406895.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce helper functions for safely querying the P2M (physical-to-machine)
mapping:
 - add p2m_read_lock(), p2m_read_unlock(), and p2m_is_locked() for managing
   P2M lock state.
 - Implement p2m_get_entry() to retrieve mapping details for a given GFN,
   including MFN, page order, and validity.
 - Introduce p2m_get_page_from_gfn() to convert a GFN into a page_info
   pointer, acquiring a reference to the page if valid.
 - Introduce get_page().

Implementations are based on Arm's functions with some minor modifications:
- p2m_get_entry():
  - Reverse traversal of page tables, as RISC-V uses the opposite level
    numbering compared to Arm.
  - Removed the return of p2m_access_t from p2m_get_entry() since
    mem_access_settings is not introduced for RISC-V.
  - Updated BUILD_BUG_ON() to check using the level 0 mask, which corresponds
    to Arm's THIRD_MASK.
  - Replaced open-coded bit shifts with the BIT() macro.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V8:
- Drop the local variable masked_gfn inside check_outside_boundary() and fold
  the is_lower conditionals into the for loop.
- Initialize the local variable level in p2m_get_entry() to the root level
  and drop the explicit assignment when root page table wasn't found, as it
  now defaults to the root level.
- Introduce gfn_limit_bits and use it to calculate the maximum GFN for the
  MMU second stage, and return the appropriate page_order when the GFN exceeds
  this limit.
---
Changes in V7:
 - Refactor check_outside_boundary().
 - Reword the comment above p2m_get_entry().
 - As at the moment p2m_get_entry() doesn't pass `t` as NULL we could drop
   "if ( t )" checks inside it to not have dead code now.
 - Add the check inside p2m_get_entry() that requested gfn is correct.
 - Add "if ( t )" check inside p2m_get_page_from_gfn() as it
   is going to be some callers with t = NULL.
---
Changes in V6:
 - Move if-condition with initialization up in p2m_get_page_from_gfn().
 - Pass p2mt to the call of p2m_get_entry() inside p2m_get_page_from_gfn()
   to avoid an issue when 't' is passed NULL. With p2mt passed to p2m_get_entry()
   we will recieve a proper type and so the rest of the function will able to
   continue use a proper type.
- In check_outside_boundary() in the case when is_lower == true fill the bottom
  bits of masked_gfn with all 1s.
- Update code of check_outside_boundary() to return proper level in the case when
  `level` is equal to 0.
- Add ASSERT(p2m) in check_outside_boundary() to be sure that p2m isn't NULL as
  P2M_LEVEL_MASK() depends on p2m value.
---
Changes in V5:
 - Use introduced in earlier patches P2M_DECLARE_OFFSETS() instead of
   DECLARE_OFFSETS().
 - Drop blank line before check_outside_boundary().
 - Use more readable version of if statements inside check_outside_boundary().
 - Accumulate mask in check_outside_boundary() instead of re-writing it for
   each page table level to have correct gfns for comparison.
 - Set argument `t` of p2m_get_entry() to p2m_invalid by default.
 - Drop checking of (rc == P2M_TABLE_MAP_NOMEM ) when p2m_next_level(...,false,...)
   is called.
 - Add ASSERT(mfn & (BIT(P2M_LEVEL_ORDER(level), UL) - 1)); in p2m_get_entry()
   to be sure that recieved `mfn` has cleared lowest bits.
 - Drop `valid` argument from p2m_get_entry(), it is not needed anymore.
 - Drop p2m_lookup(), use p2m_get_entry() explicitly inside p2m_get_page_from_gfn().
 - Update the commit message.
---
Changes in V4:
 - Update prototype of p2m_is_locked() to return bool and accept pointer-to-const.
 - Correct the comment above p2m_get_entry().
 - Drop the check "BUILD_BUG_ON(XEN_PT_LEVEL_MAP_MASK(0) != PAGE_MASK);" inside
   p2m_get_entry() as it is stale and it was needed to sure that 4k page(s) are
   used on L3 (in Arm terms) what is true for RISC-V. (if not special extension
   are used). It was another reason for Arm to have it (and I copied it to RISC-V),
   but it isn't true for RISC-V. (some details could be found in response to the
   patch).
 - Style fixes.
 - Add explanatory comment what the loop inside "gfn is higher then the highest
   p2m mapping" does. Move this loop to separate function check_outside_boundary()
   to cover both boundaries (lower_mapped_gfn and max_mapped_gfn).
 - There is not need to allocate a page table as it is expected that
   p2m_get_entry() normally would be called after a corresponding p2m_set_entry()
   was called. So change 'true' to 'false' in a page table walking loop inside
   p2m_get_entry().
 - Correct handling of p2m_is_foreign case inside p2m_get_page_from_gfn().
 - Introduce and use P2M_LEVEL_MASK instead of XEN_PT_LEVEL_MASK as it isn't take
   into account two extra bits for root table in case of P2M.
 - Drop stale item from "change in v3" - Add is_p2m_foreign() macro and connected stuff.
 - Add p2m_read_(un)lock().
---
Changes in V3:
 - Change struct domain *d argument of p2m_get_page_from_gfn() to
   struct p2m_domain.
 - Update the comment above p2m_get_entry().
 - s/_t/p2mt for local variable in p2m_get_entry().
 - Drop local variable addr in p2m_get_entry() and use gfn_to_gaddr(gfn)
   to define offsets array.
 - Code style fixes.
 - Update a check of rc code from p2m_next_level() in p2m_get_entry()
   and drop "else" case.
 - Do not call p2m_get_type() if p2m_get_entry()'s t argument is NULL.
 - Use struct p2m_domain instead of struct domain for p2m_lookup() and
   p2m_get_page_from_gfn().
 - Move defintion of get_page() from "xen/riscv: implement mfn_valid() and page reference, ownership handling helpers"
---
Changes in V2:
 - New patch.
---
 xen/arch/riscv/include/asm/p2m.h |  21 ++++
 xen/arch/riscv/mm.c              |  13 +++
 xen/arch/riscv/p2m.c             | 185 +++++++++++++++++++++++++++++++
 3 files changed, 219 insertions(+)

diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index b48693a2b41c..f63b5dec99b1 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -41,6 +41,9 @@
 
 #define P2M_GFN_LEVEL_SHIFT(lvl) (P2M_LEVEL_ORDER(lvl) + PAGE_SHIFT)
 
+#define P2M_LEVEL_MASK(p2m, lvl) \
+    (P2M_TABLE_OFFSET(p2m, lvl) << P2M_GFN_LEVEL_SHIFT(lvl))
+
 #define paddr_bits PADDR_BITS
 
 /* Get host p2m table */
@@ -234,6 +237,24 @@ static inline bool p2m_is_write_locked(struct p2m_domain *p2m)
 
 unsigned long construct_hgatp(const struct p2m_domain *p2m, uint16_t vmid);
 
+static inline void p2m_read_lock(struct p2m_domain *p2m)
+{
+    read_lock(&p2m->lock);
+}
+
+static inline void p2m_read_unlock(struct p2m_domain *p2m)
+{
+    read_unlock(&p2m->lock);
+}
+
+static inline bool p2m_is_locked(const struct p2m_domain *p2m)
+{
+    return rw_is_locked(&p2m->lock);
+}
+
+struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
+                                        p2m_type_t *t);
+
 #endif /* ASM__RISCV__P2M_H */
 
 /*
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index e25f995b727f..e9ce182d066c 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -673,3 +673,16 @@ struct domain *page_get_owner_and_reference(struct page_info *page)
 
     return owner;
 }
+
+bool get_page(struct page_info *page, const struct domain *domain)
+{
+    const struct domain *owner = page_get_owner_and_reference(page);
+
+    if ( likely(owner == domain) )
+        return true;
+
+    if ( owner != NULL )
+        put_page(page);
+
+    return false;
+}
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 8d572f838fc3..66943b969e8a 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -1057,3 +1057,188 @@ int map_regions_p2mt(struct domain *d,
 
     return rc;
 }
+
+/*
+ * p2m_get_entry() should always return the correct order value, even if an
+ * entry is not present (i.e. the GFN is outside the range):
+ *   [p2m->lowest_mapped_gfn, p2m->max_mapped_gfn]    (1)
+ *
+ * This ensures that callers of p2m_get_entry() can determine what range of
+ * address space would be altered by a corresponding p2m_set_entry().
+ * Also, it would help to avoid costly page walks for GFNs outside range (1).
+ *
+ * Therefore, this function returns true for GFNs outside range (1), and in
+ * that case the corresponding level is returned via the level_out argument.
+ * Otherwise, it returns false and p2m_get_entry() performs a page walk to
+ * find the proper entry.
+ */
+static bool check_outside_boundary(const struct p2m_domain *p2m, gfn_t gfn,
+                                   gfn_t boundary, bool is_lower,
+                                   unsigned int *level_out)
+{
+    unsigned int level = P2M_ROOT_LEVEL(p2m);
+    bool ret = false;
+
+    ASSERT(p2m);
+
+    if ( is_lower ? gfn_x(gfn) < gfn_x(boundary)
+                  : gfn_x(gfn) > gfn_x(boundary) )
+    {
+        for ( ; level; level-- )
+        {
+            unsigned long mask = BIT(P2M_GFN_LEVEL_SHIFT(level), UL) - 1;
+
+            if ( is_lower ? (gfn_x(gfn) | mask) < gfn_x(boundary)
+                          : (gfn_x(gfn) & ~mask) > gfn_x(boundary) )
+                break;
+        }
+
+        ret = true;
+    }
+
+    if ( level_out )
+        *level_out = level;
+
+    return ret;
+}
+
+/*
+ * Get the details of a given gfn.
+ *
+ * If the entry is present, the associated MFN, the p2m type of the mapping,
+ * and the page order of the mapping in the page table (i.e., it could be a
+ * superpage) will be returned.
+ *
+ * If the entry is not present, INVALID_MFN will be returned, page_order will
+ * be set according to the order of the invalid range, and the type will be
+ * p2m_invalid.
+ */
+static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
+                           p2m_type_t *t,
+                           unsigned int *page_order)
+{
+    unsigned int level = P2M_ROOT_LEVEL(p2m);
+    unsigned int gfn_limit_bits =
+        P2M_LEVEL_ORDER(level + 1) + P2M_ROOT_EXTRA_BITS(p2m, level);
+    pte_t entry, *table;
+    int rc;
+    mfn_t mfn = INVALID_MFN;
+
+    P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
+
+    ASSERT(p2m_is_locked(p2m));
+
+    *t = p2m_invalid;
+
+    if ( gfn_x(gfn) > (BIT(gfn_limit_bits, UL) - 1) )
+    {
+        if ( page_order )
+            *page_order = gfn_limit_bits;
+
+        return mfn;
+    }
+
+    if ( check_outside_boundary(p2m, gfn, p2m->lowest_mapped_gfn, true,
+                                &level) )
+        goto out;
+
+    if ( check_outside_boundary(p2m, gfn, p2m->max_mapped_gfn, false, &level) )
+        goto out;
+
+    table = p2m_get_root_pointer(p2m, gfn);
+
+    /*
+     * The table should always be non-NULL because the gfn is below
+     * p2m->max_mapped_gfn and the root table pages are always present.
+     */
+    if ( !table )
+    {
+        ASSERT_UNREACHABLE();
+        goto out;
+    }
+
+    for ( level = P2M_ROOT_LEVEL(p2m); level; level-- )
+    {
+        rc = p2m_next_level(p2m, false, level, &table, offsets[level]);
+        if ( rc == P2M_TABLE_MAP_NONE )
+            goto out_unmap;
+
+        if ( rc != P2M_TABLE_NORMAL )
+            break;
+    }
+
+    entry = table[offsets[level]];
+
+    if ( pte_is_valid(entry) )
+    {
+        *t = p2m_get_type(entry);
+
+        mfn = pte_get_mfn(entry);
+
+        ASSERT(!(mfn_x(mfn) & (BIT(P2M_LEVEL_ORDER(level), UL) - 1)));
+
+        /*
+         * The entry may point to a superpage. Find the MFN associated
+         * to the GFN.
+         */
+        mfn = mfn_add(mfn,
+                      gfn_x(gfn) & (BIT(P2M_LEVEL_ORDER(level), UL) - 1));
+    }
+
+ out_unmap:
+    unmap_domain_page(table);
+
+ out:
+    if ( page_order )
+        *page_order = P2M_LEVEL_ORDER(level);
+
+    return mfn;
+}
+
+struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
+                                        p2m_type_t *t)
+{
+    struct page_info *page;
+    p2m_type_t p2mt;
+    mfn_t mfn;
+
+    p2m_read_lock(p2m);
+    mfn = p2m_get_entry(p2m, gfn, &p2mt, NULL);
+
+    if ( t )
+        *t = p2mt;
+
+    if ( !mfn_valid(mfn) )
+    {
+        p2m_read_unlock(p2m);
+        return NULL;
+    }
+
+    page = mfn_to_page(mfn);
+
+    /*
+     * get_page won't work on foreign mapping because the page doesn't
+     * belong to the current domain.
+     */
+    if ( unlikely(p2m_is_foreign(p2mt)) )
+    {
+        const struct domain *fdom = page_get_owner_and_reference(page);
+
+        p2m_read_unlock(p2m);
+
+        if ( fdom )
+        {
+            if ( likely(fdom != p2m->domain) )
+                return page;
+
+            ASSERT_UNREACHABLE();
+            put_page(page);
+        }
+
+        return NULL;
+    }
+
+    p2m_read_unlock(p2m);
+
+    return get_page(page, p2m->domain) ? page : NULL;
+}
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 22 16:38:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 16:38:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192170.1511521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXiv8-0001n4-M8; Mon, 22 Dec 2025 16:38:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192170.1511521; Mon, 22 Dec 2025 16:38:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXiv8-0001mk-Hb; Mon, 22 Dec 2025 16:38:06 +0000
Received: by outflank-mailman (input) for mailman id 1192170;
 Mon, 22 Dec 2025 16:38:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ACBk=64=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vXiv6-00085h-JP
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 16:38:04 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 955b4bb4-df54-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 17:38:02 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-b79e7112398so670716766b.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 08:38:02 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037de004fsm1149128166b.45.2025.12.22.08.38.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Dec 2025 08:38:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 955b4bb4-df54-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766421482; x=1767026282; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PcWFriMyjLzR9smAZRA9nO9Zffm+beqrJCupBT4WdqE=;
        b=kBaTsotG3pT3PBM68g3SLWlITeGDbQuEVQGLeEtHOHX+k8aXj7KE7y7qttb0gQD78c
         iYILfpCFffjQz068dXMNKoHiVLbjn+ST4DXPccZv4fL/F1+EbTmzwk8zssrOQ9x7EuGi
         /AvhJ+Jbbj+MR95pwO43vee7rjDXNrhozfKBVWq9UndU5GZlmRf6ib4MVUNQWL8yYjeO
         jfUp3TDe7M6MIr3vWKQ66TKOailO4wKAQLJSzac/IgJx/eoHHrQa+200lZ+YxW5/6zxP
         M6BoZEPCdn/HVHpO16PxSR+AbNBdosU6RRZlvfgGyiqNeCIpyy2SU1oYzOZfNQrTZGlM
         kRUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766421482; x=1767026282;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=PcWFriMyjLzR9smAZRA9nO9Zffm+beqrJCupBT4WdqE=;
        b=W7ZctGQ778+9ZE/nj4N3yZp4Ou6bxDh2dKdvVkL6Hj3UR5EZt6TYpDsGVoU3WWn1rQ
         ANNMWVYgYDrkiAsDwWkTdvpjvDkLBhgOB4XfBRzjIQ/ZM5CuGvev/dt8d47MHvpGPZYI
         o9ysNqtq4V/oXniUdGWk5nco+oR13WjTPCLZsiMmZJpjHMZoP4bVsWesftHjQh598yLS
         Dq2AdU5k3bJnj/ehLLT7usJ3EcbWmxFwQzbYW8YuWzMRhCoIU9Hk/Ke8Ht0XTI60rL0X
         JzgkIdESIdscxtxGPcSEgSvmLZdvPusIUaZ9P1gHypXIwNdUz1fyq1a3VcEWVjsbUXA8
         U5dw==
X-Gm-Message-State: AOJu0YyY6FEvUYNp7D3wuda83XMX2u4I762k6R07slBPm8Ip28DWBPVA
	xWNhfzbL57+Q9Gl06GQfoclm1h1+Jv+pbrlM7R7sorhkLFb2igYgdJxvh91iVg==
X-Gm-Gg: AY/fxX7w5HAl24acNibZQVWWTnaCbvDsRC+f20f9vhB4V0SiPElozZsuh+yNYMZGJXo
	nvsEyW3guGQY9v7CZlv+bPyZo63k1EVAD7f3XpDjZBWEHoJipGKc6CTr7R1qLAdDB8BBXQVLVNi
	OsFkalDI3k3fkAiM9QeervrI1DEBSIN3ybSbbg37DfvU/9vqB3dqztIbxKNwyjG0J2EH3FCYK1M
	ITlCNbsOM6T8wzG6291SNltQ3fO95gVrf8eD3u6tBPNHjmOSADEVFYMtI3BqvVAXxKVWWsmNFqs
	07Z+ebqX5LRaT1mIvVk6iDoGGoixG6ci3cH9XGyIxrHOQSZbbyydWxSeenU/d6qj/Qo0JxmFrNc
	EHKCIavu8molC7oSbsR1/IMOmQ2lwoDpg+JPdePCJkV4zDbjB3iOA7fXpTe08rkjpoXM75zOfHC
	HNimRbtdcRapwIlHwoEJCSVYbfAOEvRFVt+EEnmVdg986IA1MQJyKuNTc=
X-Google-Smtp-Source: AGHT+IEucjD41PXDoO0Sehqsa3CDqyfVYMMsagIuNHXh6gvXRB09XPn5DocVYWIVvH/L1Kj0c8MHng==
X-Received: by 2002:a17:907:2d0e:b0:b73:80de:e6b2 with SMTP id a640c23a62f3a-b803705dbd1mr1400467366b.31.1766421481530;
        Mon, 22 Dec 2025 08:38:01 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v8 2/3] xen/riscv: introduce metadata table to store P2M type
Date: Mon, 22 Dec 2025 17:37:48 +0100
Message-ID: <127d893e3b6a0da1195f9a128c8d0591e6ef473d.1766406895.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766406895.git.oleksii.kurochko@gmail.com>
References: <cover.1766406895.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

RISC-V's PTE has only two available bits that can be used to store the P2M
type. This is insufficient to represent all the current RISC-V P2M types.
Therefore, some P2M types must be stored outside the PTE bits.

To address this, a metadata table is introduced to store P2M types that
cannot fit in the PTE itself. Not all P2M types are stored in the
metadata table—only those that require it.

The metadata table is linked to the intermediate page table via the
`struct page_info`'s v.md.metadata field of the corresponding intermediate
page.
Such pages are allocated with MEMF_no_owner, which allows us to use
the v field for the purpose of storing the metadata table.

To simplify the allocation and linking of intermediate and metadata page
tables, `p2m_{alloc,free}_table()` functions are implemented.

These changes impact `p2m_split_superpage()`, since when a superpage is
split, it is necessary to update the metadata table of the new
intermediate page table — if the entry being split has its P2M type set
to `p2m_ext_storage` in its `P2M_TYPES` bits. In addition to updating
the metadata of the new intermediate page table, the corresponding entry
in the metadata for the original superpage is invalidated.

Also, update p2m_{get,set}_type to work with P2M types which don't fit
into PTE bits.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V8:
- Update the comment above p2m_set_type().
- Drop BUG_ON(ctx->level ...) and 
  "if ( ctx->level <= P2M_MAX_SUPPORTED_LEVEL_MAPPING )" as p2m_set_type()
  doesn't care about ctx->level and it is expected that passed `pte` is valid,
  and so ctx->level is expected to be valid too.
- Rename p2m_pte_ctx argument to ctx for p2m_pte_from_mfn() and p2m_free_subtree().
- Initialize local variable p2m_pte_ctx inside p2m_split_superpage() with
  an initializer. Drop an assigment of p2m_pte_ctx->level when old pte's type is
  got.
- Use initializer for tmp_ctx and drop an assignment of tmp_ctx.p2m inside
  p2m_set_type().
- Drop brackets around p2m_free_subtree() call inside p2m_set_entry().
---
Changes in V7:
- Put p2m_domain * inside struct p2m_pte_ctx and update an APIs of
  p2m_set_type(), p2m_pte_from_mfn().
  Also, move ASSERT(p2m) closer to p2m_alloc_page(ctx->p2m) inside
  p2m_set_type().
  Update all callers of p2m_set_type() and p2m_pte_from_mfn().
- Update the comment above BUILD_BUG_ON(p2m_invalid): drop unnessary
  sentenses and make it shorter then 80 chars.
- Drop the comment and BUILD_BUG_ON() in p2m_get_type() as it is
  enough to have it in p2m_set_type().
- Update the comment above p2m_set_type() about p2m argument which
  was droppped.
- Make ctx argument of p2m_set_type() const to be able to re-use
  p2m_pte_ctx across multiple iterations without fully reinitializing.
- Declare "struct p2m_pte_ctx tmp_ctx;" as function scope variable and
  rework p2m_set_entry() correspondingly.
---
Changes in V6:
 - Introduce new type md_t to use it instead of pte_t to store metadata
   types outside PTE bits.
 - Integrate introduced struct md_t.
 - Drop local variable "struct domain *d" inside p2m_set_type().
 - Drop __func__ printting and use %pv.
 - Code style fixes
 - Drop unnessarry check inside if-condition in p2m_pte_from_mfn()
   as we have ASSERT(p2m) inside p2m_set_type() anyway.
 - Return back the commnent inside page_to_p2m_table() as it was deleted
   accidently.
 - move the initialization of
p2m_pte_ctx.pt_page and p2m_pte_ctx.level ahead of the loop
 - Add BUILD_BUG_ON(p2m_invalid) before the call of p2m_alloc_page() in p2m_set_type() and in p2m_get_type() before " if ( type == p2m_ext_storage )".
 - Set to NULL tbl_pg->v.md.pg in p2m_free_table().
 - Make argument 't' of p2m_set_type() non-const as we are going to change it.
 - Add some explanatory comments.
 - Update ASSERT at the start of p2m_set_type() to verify that
   passed ctx->index is lesser then 512 and drop calculation of
   an index of root page as it is guaranteed by calc_offset()
   and get_root_pointer() that we will aready get proper page and
   proper index inside this page.
---
Changes in V5:
 - Rename metadata member of stuct md inside struct page_info to pg.
 - Stray blank in the declaration of p2m_alloc_table().
 - Use "<" instead of "<=" in ASSERT() in p2m_set_type().
 - Move the check that ctx is provided to an earlier point in
   p2m_set_type().
 - Set `md_pg` after ASSERT() in p2m_set_type().
 - Add BUG_ON() insetead of ASSERT_UNREACHABLE() in p2m_set_type().
 - Drop a check that metadata isn't NULL before unmap_domain_page() is
   being called.
 - Make const `md` variable in p2m_get_type().
 - unmap correct domain's page in p2m_get_type: use `md` instead of
   ctx->pt_page->v.md.pg.
 - Add description of how p2m and p2m_pte_ctx is expected to be used
   in p2m_pte_from_mfn() and drop a comment from page_to_p2m_table().
 - Drop the stale part of the comment above p2m_alloc_table().
 - Drop ASSERT(tbl_pg->v.md.pg) from p2m_free_table() as tbl_pg->v.md.pg
   is created conditionally now.
 - Drop an introduction of p2m_alloc_table(), update p2m_alloc_page()
   correspondengly and use it instead.
 - Add missing blank in definition of level member for tmp_ctx variable
   in p2m_free_subtree(). Also, add the comma at the end.
 - Initialize old_type once before for-loop in p2m_split_superpage() as
   old type will be used for all newly created PTEs.
 - Properly initialize p2m_pte_ctx.level with next_level instead of
   level when p2m_set_type() is going to be called for new PTEs.
 - Fix identations.
 - Move ASSERT(p2m) on top of p2m_set_type() to be sure that NULL isn't
   passed for p2m argument of p2m_set_type().
 - s/virt_to_page(table)/mfn_to_page(domain_page_map_to_mfn(table))
   to recieve correct page for a table which is mapped by domain_page_map().
 - Add "return;" after domain_crash() in p2m_set_type() to avoid potential
   NULL pointer dereference of md_pg.
---
Changes in V4:
 - Add Suggested-by: Jan Beulich <jbeulich@suse.com>.
 - Update the comment above declation of md structure inside struct page_info to:
   "Page is used as an intermediate P2M page table".
 - Allocate metadata table on demand to save some memory. (1)
 - Rework p2m_set_type():
   - Add allocatation of metadata page only if needed.
   - Move a check what kind of type we are handling inside p2m_set_type().
 - Move mapping of metadata page inside p2m_get_type() as it is needed only
   in case if PTE's type is equal to p2m_ext_storage.
 - Add some description to p2m_get_type() function.
 - Drop blank after return type of p2m_alloc_table().
 - Drop allocation of metadata page inside p2m_alloc_table becaues of (1).
 - Fix p2m_free_table() to free metadata page only if it was allocated.
---
Changes in V3:
 - Add is_p2m_foreign() macro and connected stuff.
 - Change struct domain *d argument of p2m_get_page_from_gfn() to
   struct p2m_domain.
 - Update the comment above p2m_get_entry().
 - s/_t/p2mt for local variable in p2m_get_entry().
 - Drop local variable addr in p2m_get_entry() and use gfn_to_gaddr(gfn)
   to define offsets array.
 - Code style fixes.
 - Update a check of rc code from p2m_next_level() in p2m_get_entry()
   and drop "else" case.
 - Do not call p2m_get_type() if p2m_get_entry()'s t argument is NULL.
 - Use struct p2m_domain instead of struct domain for p2m_lookup() and
   p2m_get_page_from_gfn().
 - Move defintion of get_page() from "xen/riscv: implement mfn_valid() and page reference, ownership handling helpers"
---
Changes in V2:
 - New patch.
---
 xen/arch/riscv/include/asm/mm.h |   9 ++
 xen/arch/riscv/p2m.c            | 236 ++++++++++++++++++++++++++++----
 2 files changed, 215 insertions(+), 30 deletions(-)

diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 1a99e1cf0a3c..48162f5d65cd 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -149,6 +149,15 @@ struct page_info
             /* Order-size of the free chunk this page is the head of. */
             unsigned int order;
         } free;
+
+        /* Page is used as an intermediate P2M page table */
+        struct {
+            /*
+             * Pointer to a page which store metadata for an intermediate page
+             * table.
+             */
+            struct page_info *pg;
+        } md;
     } v;
 
     union {
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 66943b969e8a..24dd07165bd1 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -26,6 +26,25 @@
  */
 #define P2M_MAX_SUPPORTED_LEVEL_MAPPING _AC(2, U)
 
+struct md_t {
+    /*
+     * Describes a type stored outside PTE bits.
+     * Look at the comment above definition of enum p2m_type_t.
+     */
+    p2m_type_t type : 4;
+};
+
+/*
+ * P2M PTE context is used only when a PTE's P2M type is p2m_ext_storage.
+ * In this case, the P2M type is stored separately in the metadata page.
+ */
+struct p2m_pte_ctx {
+    struct p2m_domain *p2m;
+    struct page_info *pt_page;   /* Page table page containing the PTE. */
+    unsigned int index;          /* Index of the PTE within that page. */
+    unsigned int level;          /* Paging level at which the PTE resides. */
+};
+
 static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
     .mode = HGATP_MODE_OFF,
     .paging_levels = 0,
@@ -37,6 +56,10 @@ unsigned char get_max_supported_mode(void)
     return max_gstage_mode.mode;
 }
 
+/*
+ * If anything is changed here, it may also require updates to
+ * p2m_{get,set}_type().
+ */
 static inline unsigned int calc_offset(const struct p2m_domain *p2m,
                                        const unsigned int lvl,
                                        const paddr_t gpa)
@@ -79,6 +102,9 @@ static inline unsigned int calc_offset(const struct p2m_domain *p2m,
  * The caller is responsible for unmapping the page after use.
  *
  * Returns NULL if the calculated offset into the root table is invalid.
+ *
+ * If anything is changed here, it may also require updates to
+ * p2m_{get,set}_type().
  */
 static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
 {
@@ -370,24 +396,96 @@ static struct page_info *p2m_alloc_page(struct p2m_domain *p2m)
     return pg;
 }
 
-static int p2m_set_type(pte_t *pte, p2m_type_t t)
+/*
+ * `pte` – PTE entry for which the type `t` will be stored.
+ *
+ * If `t` >= p2m_first_external, a valid `ctx` must be provided.
+ */
+static void p2m_set_type(pte_t *pte, p2m_type_t t,
+                         const struct p2m_pte_ctx *ctx)
 {
-    int rc = 0;
+    struct page_info **md_pg;
+    struct md_t *metadata = NULL;
 
-    if ( t > p2m_first_external )
-        panic("unimplemeted\n");
-    else
-        pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
+    /*
+     * It is sufficient to compare ctx->index with PAGETABLE_ENTRIES because,
+     * even for the p2m root page table (which is a 16 KB page allocated as
+     * four 4 KB pages), calc_offset() guarantees that the page-table index
+     * will always fall within the range [0, 511].
+     */
+    ASSERT(ctx && ctx->index < PAGETABLE_ENTRIES);
 
-    return rc;
+    /*
+     * At the moment, p2m_get_root_pointer() returns one of four possible p2m
+     * root pages, so there is no need to search for the correct ->pt_page
+     * here.
+     * Non-root page tables are 4 KB pages, so simply using ->pt_page is
+     * sufficient.
+     */
+    md_pg = &ctx->pt_page->v.md.pg;
+
+    if ( !*md_pg && (t >= p2m_first_external) )
+    {
+        /*
+         * Since p2m_alloc_page() initializes an allocated page with
+         * zeros, p2m_invalid is expected to have the value 0 as well.
+         */
+        BUILD_BUG_ON(p2m_invalid);
+
+        ASSERT(ctx->p2m);
+
+        *md_pg = p2m_alloc_page(ctx->p2m);
+        if ( !*md_pg )
+        {
+            printk("%pd: can't allocate metadata page\n",
+                    ctx->p2m->domain);
+            domain_crash(ctx->p2m->domain);
+
+            return;
+        }
+    }
+
+    if ( *md_pg )
+        metadata = __map_domain_page(*md_pg);
+
+    if ( t >= p2m_first_external )
+    {
+        metadata[ctx->index].type = t;
+
+        t = p2m_ext_storage;
+    }
+    else if ( metadata )
+        metadata[ctx->index].type = p2m_invalid;
+
+    pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
+
+    unmap_domain_page(metadata);
 }
 
-static p2m_type_t p2m_get_type(const pte_t pte)
+/*
+ * `pte` -> PTE entry that stores the PTE's type.
+ *
+ * If the PTE's type is `p2m_ext_storage`, `ctx` should be provided;
+ * otherwise it could be NULL.
+ */
+static p2m_type_t p2m_get_type(const pte_t pte, const struct p2m_pte_ctx *ctx)
 {
     p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
 
     if ( type == p2m_ext_storage )
-        panic("unimplemented\n");
+    {
+        const struct md_t *md = __map_domain_page(ctx->pt_page->v.md.pg);
+
+        type = md[ctx->index].type;
+
+        /*
+         * Since p2m_set_type() guarantees that the type will be greater than
+         * p2m_first_external, just check that we received a valid type here.
+         */
+        ASSERT(type > p2m_first_external);
+
+        unmap_domain_page(md);
+    }
 
     return type;
 }
@@ -477,7 +575,14 @@ static void p2m_set_permission(pte_t *e, p2m_type_t t)
     }
 }
 
-static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
+/*
+ * If p2m_pte_from_mfn() is called with ctx = NULL,
+ * it means the function is working with a page table for which the `t`
+ * should not be applicable. Otherwise, the function is handling a leaf PTE
+ * for which `t` is applicable.
+ */
+static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t,
+                              struct p2m_pte_ctx *ctx)
 {
     pte_t e = (pte_t) { PTE_VALID };
 
@@ -485,7 +590,7 @@ static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
 
     ASSERT(!(mfn_to_maddr(mfn) & ~PADDR_MASK) || mfn_eq(mfn, INVALID_MFN));
 
-    if ( !is_table )
+    if ( ctx )
     {
         switch ( t )
         {
@@ -498,7 +603,7 @@ static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
         }
 
         p2m_set_permission(&e, t);
-        p2m_set_type(&e, t);
+        p2m_set_type(&e, t, ctx);
     }
     else
         /*
@@ -518,7 +623,22 @@ static pte_t page_to_p2m_table(const struct page_info *page)
      * set to true and p2m_type_t shouldn't be applied for PTEs which
      * describe an intermediate table.
      */
-    return p2m_pte_from_mfn(page_to_mfn(page), p2m_invalid, true);
+    return p2m_pte_from_mfn(page_to_mfn(page), p2m_invalid, NULL);
+}
+
+static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
+
+/*
+ * Free page table's page and metadata page linked to page table's page.
+ */
+static void p2m_free_table(struct p2m_domain *p2m, struct page_info *tbl_pg)
+{
+    if ( tbl_pg->v.md.pg )
+    {
+        p2m_free_page(p2m, tbl_pg->v.md.pg);
+        tbl_pg->v.md.pg = NULL;
+    }
+    p2m_free_page(p2m, tbl_pg);
 }
 
 /* Allocate a new page table page and hook it in via the given entry. */
@@ -679,12 +799,14 @@ static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg)
 
 /* Free pte sub-tree behind an entry */
 static void p2m_free_subtree(struct p2m_domain *p2m,
-                             pte_t entry, unsigned int level)
+                             pte_t entry,
+                             const struct p2m_pte_ctx *ctx)
 {
     unsigned int i;
     pte_t *table;
     mfn_t mfn;
     struct page_info *pg;
+    unsigned int level = ctx->level;
 
     /*
      * Check if the level is valid: only 4K - 2M - 1G mappings are supported.
@@ -700,7 +822,7 @@ static void p2m_free_subtree(struct p2m_domain *p2m,
 
     if ( pte_is_mapping(entry) )
     {
-        p2m_type_t p2mt = p2m_get_type(entry);
+        p2m_type_t p2mt = p2m_get_type(entry, ctx);
 
 #ifdef CONFIG_IOREQ_SERVER
         /*
@@ -719,10 +841,22 @@ static void p2m_free_subtree(struct p2m_domain *p2m,
         return;
     }
 
-    table = map_domain_page(pte_get_mfn(entry));
+    mfn = pte_get_mfn(entry);
+    ASSERT(mfn_valid(mfn));
+    table = map_domain_page(mfn);
+    pg = mfn_to_page(mfn);
 
     for ( i = 0; i < P2M_PAGETABLE_ENTRIES(p2m, level); i++ )
-        p2m_free_subtree(p2m, table[i], level - 1);
+    {
+        struct p2m_pte_ctx tmp_ctx = {
+            .pt_page = pg,
+            .index = i,
+            .level = level - 1,
+            .p2m = p2m,
+        };
+
+        p2m_free_subtree(p2m, table[i], &tmp_ctx);
+    }
 
     unmap_domain_page(table);
 
@@ -734,17 +868,13 @@ static void p2m_free_subtree(struct p2m_domain *p2m,
      */
     p2m_tlb_flush_sync(p2m);
 
-    mfn = pte_get_mfn(entry);
-    ASSERT(mfn_valid(mfn));
-
-    pg = mfn_to_page(mfn);
-
-    p2m_free_page(p2m, pg);
+    p2m_free_table(p2m, pg);
 }
 
 static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
                                 unsigned int level, unsigned int target,
-                                const unsigned int *offsets)
+                                const unsigned int *offsets,
+                                struct page_info *tbl_pg)
 {
     struct page_info *page;
     unsigned long i;
@@ -756,6 +886,14 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
     unsigned int next_level = level - 1;
     unsigned int level_order = P2M_LEVEL_ORDER(next_level);
 
+    struct p2m_pte_ctx p2m_pte_ctx = {
+        .p2m = p2m,
+        .level = level,
+    };
+
+    /* Init with p2m_invalid just to make compiler happy. */
+    p2m_type_t old_type = p2m_invalid;
+
     /*
      * This should only be called with target != level and the entry is
      * a superpage.
@@ -777,6 +915,17 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
 
     table = __map_domain_page(page);
 
+    if ( MASK_EXTR(entry->pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage )
+    {
+        p2m_pte_ctx.pt_page = tbl_pg;
+        p2m_pte_ctx.index = offsets[level];
+
+        old_type = p2m_get_type(*entry, &p2m_pte_ctx);
+    }
+
+    p2m_pte_ctx.pt_page = page;
+    p2m_pte_ctx.level = next_level;
+
     for ( i = 0; i < P2M_PAGETABLE_ENTRIES(p2m, next_level); i++ )
     {
         pte_t *new_entry = table + i;
@@ -788,6 +937,13 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
         pte = *entry;
         pte_set_mfn(&pte, mfn_add(mfn, i << level_order));
 
+        if ( MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage )
+        {
+            p2m_pte_ctx.index = i;
+
+            p2m_set_type(&pte, old_type, &p2m_pte_ctx);
+        }
+
         write_pte(new_entry, pte);
     }
 
@@ -799,7 +955,7 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
      */
     if ( next_level != target )
         rv = p2m_split_superpage(p2m, table + offsets[next_level],
-                                 next_level, target, offsets);
+                                 next_level, target, offsets, page);
 
     if ( p2m->clean_dcache )
         clean_dcache_va_range(table, PAGE_SIZE);
@@ -840,6 +996,9 @@ static int p2m_set_entry(struct p2m_domain *p2m,
      * are still allowed.
      */
     bool removing_mapping = mfn_eq(mfn, INVALID_MFN);
+    struct p2m_pte_ctx tmp_ctx = {
+        .p2m = p2m,
+    };
     P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
 
     ASSERT(p2m_is_write_locked(p2m));
@@ -890,13 +1049,19 @@ static int p2m_set_entry(struct p2m_domain *p2m,
     {
         /* We need to split the original page. */
         pte_t split_pte = *entry;
+        struct page_info *tbl_pg = mfn_to_page(domain_page_map_to_mfn(table));
 
         ASSERT(pte_is_superpage(*entry, level));
 
-        if ( !p2m_split_superpage(p2m, &split_pte, level, target, offsets) )
+        if ( !p2m_split_superpage(p2m, &split_pte, level, target, offsets,
+                                  tbl_pg) )
         {
+            tmp_ctx.pt_page = tbl_pg;
+            tmp_ctx.index = offsets[level];
+            tmp_ctx.level = level;
+
             /* Free the allocated sub-tree */
-            p2m_free_subtree(p2m, split_pte, level);
+            p2m_free_subtree(p2m, split_pte, &tmp_ctx);
 
             rc = -ENOMEM;
             goto out;
@@ -922,6 +1087,10 @@ static int p2m_set_entry(struct p2m_domain *p2m,
         entry = table + offsets[level];
     }
 
+    tmp_ctx.pt_page = mfn_to_page(domain_page_map_to_mfn(table));
+    tmp_ctx.index = offsets[level];
+    tmp_ctx.level = level;
+
     /*
      * We should always be there with the correct level because all the
      * intermediate tables have been installed if necessary.
@@ -934,7 +1103,7 @@ static int p2m_set_entry(struct p2m_domain *p2m,
         p2m_clean_pte(entry, p2m->clean_dcache);
     else
     {
-        pte_t pte = p2m_pte_from_mfn(mfn, t, false);
+        pte_t pte = p2m_pte_from_mfn(mfn, t, &tmp_ctx);
 
         p2m_write_pte(entry, pte, p2m->clean_dcache);
 
@@ -970,7 +1139,7 @@ static int p2m_set_entry(struct p2m_domain *p2m,
     if ( pte_is_valid(orig_pte) &&
          (!pte_is_valid(*entry) ||
           !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte))) )
-        p2m_free_subtree(p2m, orig_pte, level);
+        p2m_free_subtree(p2m, orig_pte, &tmp_ctx);
 
  out:
     unmap_domain_page(table);
@@ -1171,7 +1340,14 @@ static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
 
     if ( pte_is_valid(entry) )
     {
-        *t = p2m_get_type(entry);
+        struct p2m_pte_ctx p2m_pte_ctx = {
+            .pt_page = mfn_to_page(domain_page_map_to_mfn(table)),
+            .index = offsets[level],
+            .level = level,
+            .p2m = p2m,
+        };
+
+        *t = p2m_get_type(entry, &p2m_pte_ctx);
 
         mfn = pte_get_mfn(entry);
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 22 16:38:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 16:38:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192172.1511526 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXiv9-0001rN-0J; Mon, 22 Dec 2025 16:38:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192172.1511526; Mon, 22 Dec 2025 16:38:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXiv8-0001qw-RB; Mon, 22 Dec 2025 16:38:06 +0000
Received: by outflank-mailman (input) for mailman id 1192172;
 Mon, 22 Dec 2025 16:38:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ACBk=64=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vXiv7-00085h-C5
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 16:38:05 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 95da2142-df54-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 17:38:03 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-64b8e5d1611so4637192a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 08:38:03 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037de004fsm1149128166b.45.2025.12.22.08.38.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Dec 2025 08:38:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 95da2142-df54-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766421483; x=1767026283; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=snjG4R/pA1CFKmrsMjW984DLPxncWtCMO3mbZglzYjc=;
        b=FTKDi5LVX/yGU1afdBpJUkl+FPe1he+lOvWoAbkoVLqKgsee1qztHw5+t44M27Ct/d
         3MPUcVIsrs4i6WyCpVmVdHy+yMUVFTtjjxBA/dfiBFBaV9zac2iuFTF61FO3mf+JZ6EV
         lwqAtiUGOw6ay3/dG3iSHidwxKoLrNlMh2Y4dOWuVVhpja18U3A3DtB/GO0TGP4tvYnQ
         iobzSbqyGfu+bBMwEUbL+e2MOJQ4/Um+I/GvOAoiH4rJXRG/nuBzBf5n8tQA+cb7STD4
         2ztGB0RYobR+fgnGLJ9g0sM47ydFTG7oSITBI4rgI5MCScr9J9BQpUBqK1LSbucBheUe
         y3hQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766421483; x=1767026283;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=snjG4R/pA1CFKmrsMjW984DLPxncWtCMO3mbZglzYjc=;
        b=Exxc2B9x+SmZZF0PnRUVQwvsEKgygSYn9RJMGYrBAxYdfLyHkOyo5Jlp2x3wFRDl8I
         O0EfNlNXAliM6hk2zMXO1b6+rWb3SzbvRYiuz8HWwb7X5bOC6FCqTA6AHc7BA78s7DJY
         bzvCjC7D2vtBqmHaCo7anLvhse3Umq9ahJ9Vb5PZ8LhnBeForCovyUsHpBxbrKx/CCYq
         2gE4Z7ICQKC3P0eWCrmUyg0fAXGK2CCG5umb3Tctx2rdnly+sXdFHz9H2SH7bq3OUYE4
         UcXTWWi6FUY9/w4ZL9GXBaQtBtHTD50XvlJBYg4upxQKoMyDD1Kqnjs4/Fmavw7DUOwe
         gCMQ==
X-Gm-Message-State: AOJu0YxqocfFVL+4bX18VVWnibNgIuCv7aIAMhQTaKtGed8Xt/bu3/Zk
	FRDArDkmeuQicmBIEJ3QY1s0EGjhUtfn969S9OC1wI4JpsxGypovuWDBHdoFYQ==
X-Gm-Gg: AY/fxX5qs6b2z+JfOhqBqV816Is61ly1Tpd4LC7QqbvXWzcFVOLwt3DS75i5pSSmWhX
	KM0X5rz5MraCuuoLb4/G6rRVgkoX6xuW4MN9121oXjDr1BSfVR3CgQkyFk7Aqv6/0iUyE6iJytw
	ITURn70I/d2FegVyzkIdI3/bVa1ob6H26bDZelVdwQA0ULZAeuNbPf6LcM2RyLPV8ab4kMg+KcU
	axfVFWctsztQ/KpTCrUGF+HTt42QSlLxWaltYpeqyQ9fLhfa1OZujdnxlM9ZwRtVn8pYSxD/ZYx
	mAKK/WXE3spIJPFJ5T6s4KgnWEjhFJ3vaxOtG/xvZwGkIQlwM19fCMdo24+Ab1wCLgfsob2rywA
	6C+8JtaEopSt2PHyuoGRUZBycFx6Cif8e46nkcMAshufeJxkZI17Y9foquW3EuvLa5IIoxFCLZ2
	pW5dnhj5HFNXhYy7085BAuRpolgRJh2m6l/Eecyp4s9XDERSr1j++2p49g7dxZ2s/Vyw==
X-Google-Smtp-Source: AGHT+IGl4+5cwit28zyS+FC7ckzBQFpj70pEn0gT8nTWI/cUrgY36FnvSC8pIPig+JQtSEWYV8J2iw==
X-Received: by 2002:a17:907:3f98:b0:b73:78f3:15b3 with SMTP id a640c23a62f3a-b80371f98f1mr1136707266b.47.1766421482573;
        Mon, 22 Dec 2025 08:38:02 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v8 3/3] xen/riscv: update p2m_set_entry() to free unused metadata pages
Date: Mon, 22 Dec 2025 17:37:49 +0100
Message-ID: <898c078cb84f8cf0b24ea1c61480b264a4da6ba5.1766406895.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766406895.git.oleksii.kurochko@gmail.com>
References: <cover.1766406895.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce tracking of metadata page entries usage and if all of them are
p2m_invalid then free them.

Intermediate P2M page tables are allocated with MEMF_no_owner, so we are free
to repurpose struct page_info fields for them. Since page_info.u.* is not
used for such pages, introduce a used_entries counter in struct page_info
to track how many metadata entries are in use for a given intermediate P2M
page table.

The counter is updated in p2m_set_type() when metadata entries transition
between p2m_invalid and a valid external type. When the last metadata entry
is cleared (used_entries == 0), the associated metadata page is freed and
returned to the P2M pool.

Refactor metadata page freeing into a new helper, p2m_free_metadata_page(),
as the same logic is needed both when tearing down a P2M table and when
all metadata entries become p2m_invalid in p2m_set_type(). As part of this
refactoring, move the declaration of p2m_free_page() earlier to satisfy the
new helper.

Additionally, implement page_set_tlbflush_timestamp() for RISC-V instead of
BUGing, as it is invoked when returning memory to the domheap.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V9:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V8:
 - New patch.
---
 xen/arch/riscv/include/asm/flushtlb.h |  2 +-
 xen/arch/riscv/include/asm/mm.h       | 12 ++++++++++
 xen/arch/riscv/p2m.c                  | 32 +++++++++++++++++++++------
 3 files changed, 38 insertions(+), 8 deletions(-)

diff --git a/xen/arch/riscv/include/asm/flushtlb.h b/xen/arch/riscv/include/asm/flushtlb.h
index ab32311568ac..4f64f9757058 100644
--- a/xen/arch/riscv/include/asm/flushtlb.h
+++ b/xen/arch/riscv/include/asm/flushtlb.h
@@ -38,7 +38,7 @@ static inline void tlbflush_filter(cpumask_t *mask, uint32_t page_timestamp) {}
 
 static inline void page_set_tlbflush_timestamp(struct page_info *page)
 {
-    BUG_ON("unimplemented");
+    page->tlbflush_timestamp = tlbflush_current_time();
 }
 
 static inline void arch_flush_tlb_mask(const cpumask_t *mask)
diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 48162f5d65cd..a005d0247a6f 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -113,6 +113,18 @@ struct page_info
             unsigned long type_info;
         } inuse;
 
+        /* Page is used as an intermediate P2M page table: count_info == 0 */
+        struct {
+            /*
+            * Tracks the number of used entries in the metadata page table.
+            *
+            * If used_entries == 0, then `page_info.v.md.pg` can be freed and
+            * returned to the P2M pool.
+            */
+            unsigned long used_entries;
+        } md;
+
+
         /* Page is on a free list: ((count_info & PGC_count_mask) == 0). */
         union {
             struct {
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 24dd07165bd1..a6e4c01b873d 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -51,6 +51,18 @@ static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
     .name = "Bare",
 };
 
+static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
+
+static inline void p2m_free_metadata_page(struct p2m_domain *p2m,
+                                          struct page_info **md_pg)
+{
+    if ( *md_pg )
+    {
+        p2m_free_page(p2m, *md_pg);
+        *md_pg = NULL;
+    }
+}
+
 unsigned char get_max_supported_mode(void)
 {
     return max_gstage_mode.mode;
@@ -450,16 +462,27 @@ static void p2m_set_type(pte_t *pte, p2m_type_t t,
 
     if ( t >= p2m_first_external )
     {
+        if ( metadata[ctx->index].type == p2m_invalid )
+            ctx->pt_page->u.md.used_entries++;
+
         metadata[ctx->index].type = t;
 
         t = p2m_ext_storage;
     }
     else if ( metadata )
+    {
+        if ( metadata[ctx->index].type != p2m_invalid )
+            ctx->pt_page->u.md.used_entries--;
+
         metadata[ctx->index].type = p2m_invalid;
+    }
 
     pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
 
     unmap_domain_page(metadata);
+
+    if ( *md_pg && !ctx->pt_page->u.md.used_entries )
+        p2m_free_metadata_page(ctx->p2m, md_pg);
 }
 
 /*
@@ -626,18 +649,13 @@ static pte_t page_to_p2m_table(const struct page_info *page)
     return p2m_pte_from_mfn(page_to_mfn(page), p2m_invalid, NULL);
 }
 
-static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
-
 /*
  * Free page table's page and metadata page linked to page table's page.
  */
 static void p2m_free_table(struct p2m_domain *p2m, struct page_info *tbl_pg)
 {
-    if ( tbl_pg->v.md.pg )
-    {
-        p2m_free_page(p2m, tbl_pg->v.md.pg);
-        tbl_pg->v.md.pg = NULL;
-    }
+    p2m_free_metadata_page(p2m, &tbl_pg->v.md.pg);
+
     p2m_free_page(p2m, tbl_pg);
 }
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 22 16:40:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 16:40:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192197.1511540 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXixS-0004l8-KD; Mon, 22 Dec 2025 16:40:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192197.1511540; Mon, 22 Dec 2025 16:40:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXixS-0004l0-H1; Mon, 22 Dec 2025 16:40:30 +0000
Received: by outflank-mailman (input) for mailman id 1192197;
 Mon, 22 Dec 2025 16:40:29 +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
 <SRS0=ACBk=64=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vXixR-0004ka-2s
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 16:40:29 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ec247116-df54-11f0-b15b-2bf370ae4941;
 Mon, 22 Dec 2025 17:40:28 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b7355f6ef12so743609566b.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 08:40:28 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037f3e271sm1137038366b.60.2025.12.22.08.40.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Dec 2025 08:40:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ec247116-df54-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766421627; x=1767026427; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WBzbL79dzEewzumfeW1aHAle0AWKV3qUQkn9X5gzvdw=;
        b=EMBIou2n5XbjU2BDfVCAxAKBREjsIkAQQK+9fzbe8O+RQ7QCqnzKwUw+2bOwsU1V+Z
         DTBPoRvLjmpGy8yaQ3grV4Z2J1fi6q45QaGndOeMTKrBoZZ8Ulz6c7b51ky6QHj5vsoI
         pzuM7MOjoHNcCz3Xw2oJ4nwwk81+2vVywaUvE93PQT0hpxJuZIfiw242VVunwzlXMlAn
         y9jE505LtMoAVPyyIKkAgt6zunlo9PgujNm56usT70JfUWh8I/ZKuKp7nD9QPs/4qnHb
         YI51m9He+bSJqFe01VpJrsh5DFafy8g3CCmbeyEzVJZtlZZ2ZXDzd4FPazfydcgk/aNL
         RAUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766421627; x=1767026427;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=WBzbL79dzEewzumfeW1aHAle0AWKV3qUQkn9X5gzvdw=;
        b=CCq/6TMsfS10xnxE1KJZKYE7yvAPGgwrJkpKLiXcR/j3yTdS6FyAeFibywuW/I/jzj
         zl+hIhRc/2Pq/dafbc/fqBbQfjljwdHro73sO0eiLqOrwGMhiIKQq7+vj7u7BCG7ecE4
         rf2CZ7lLM4czUm8tdJU++1TjI0RJ1qx9/eO3DpA309wjGD/DDXZRZyDU2zaoxPco3U9q
         12q8EcYu0FhIlLGykxzA9QFHqf1Kxd3jS1f0qFm17Fz05xJtpk3tPWE2GugCYNUA1FK3
         P4nh8WNqkKwtLJgkJbUk0X2+yXYR77U/umTb0qLqCp8+CUnDqLkQpYn63gHaweIwqlKN
         Tv0Q==
X-Gm-Message-State: AOJu0YwiBCvkJ/z7br0eXliPNbnz1rzzpFtyfptRgxXg3xwoTLkm7pBC
	fJw4J/TdBn7HsSKZeMuTXCKoAy2UYLYyj2OVwMnIYazY5NIeoX00IGv8WnCf4w==
X-Gm-Gg: AY/fxX4ejjBaTEAlxBQ7V6w78MmAdmE58Vmm+ocOLnWfwwN+jIQtisRFbbNYlf49RoJ
	lfn34HSC40RP/9vxeox7SG9YafrXhwpId/U6Q31njIA6OoN4dBrP73TbqKOWERIZzLPpr0aGdUF
	RrEI+T4AYupRjB6E4H3CRf0J02n8eeZaSih0mKS8llLm/3FX/5KhshK/hDQKG9VJqZkK0OYsBT9
	jIRuuVpRGDQJLoELAn9tEi4J8EENHHfSQjtzHBwYTkuv/Ez1gYVt9EfTomM33skLDv12WwQ4mk8
	cGLWBC36LnllX98YSibeHKxgoJIAN0VLMDyjJVgumXQruabuJQWDqNCPXgZ9/wHrmxJ2KhYTOAn
	nPPQm7do6PJYuPFFI+M2G4ZLFq8wDEx+PKCTTXVAO3PwilZOKlMCN3wiAfoCJ+tb0yA8YFfsOMV
	2/1dwz0pRuuQx/aSiaXXJuuQKAq+/el3b11afnRqVEnOBxmzhBscNriGq9WbtzTf1ywQ==
X-Google-Smtp-Source: AGHT+IFEzGPLG1+jRiEN6PRfsExU8DVuAmTIc9Y2B/6ZnI/dQWkqj88d9A4vO26H3fYF7+wTXmK1EA==
X-Received: by 2002:a17:906:730f:b0:b73:9937:e96b with SMTP id a640c23a62f3a-b8037183903mr1276035266b.52.1766421627295;
        Mon, 22 Dec 2025 08:40:27 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v3 2/4] xen/arm: optimize the size of struct vcpu
Date: Mon, 22 Dec 2025 17:40:12 +0100
Message-ID: <7cad22bb0aa95eed7f9710024356110b4443f554.1766404618.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766404618.git.oleksii.kurochko@gmail.com>
References: <cover.1766404618.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

When CONFIG_NEW_VGIC=y and CONFIG_ARM_64=y, the size of struct vcpu
exceeds one page, which requires allocating two pages and led to the
introduction of MAX_PAGES_PER_VCPU.

To remove the need for MAX_PAGES_PER_VCPU in a follow-up patch, the vgic
member of NEW_VGIC's struct vgic_vcpu member private_irq is changed to a
pointer to struct vgic_irq.
As a result, the size of struct vcpu for Arm64 is reduced to 2176 bytes,
compared to 3840 bytes (without these changes and with CONFIG_ARM_64=y)
and 4736 bytes (without these changes and with both CONFIG_ARM_64=y and
CONFIG_NEW_VGIC=y).

Since the private_irqs member is now a pointer, vcpu_vgic_init() and
vcpu_vgic_free() are updated to allocate and free private_irqs instance.

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v3:
 - Make private_irqs member as pointer to vgic_irq in struct vgic_cpu
   of new_vgic instead of vgic member of arch_vcpu.
---
Changes in v2:
 - New patch.
---
 xen/arch/arm/include/asm/new_vgic.h | 2 +-
 xen/arch/arm/vgic/vgic-init.c       | 7 +++++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/include/asm/new_vgic.h b/xen/arch/arm/include/asm/new_vgic.h
index 1e762138939f..6f7af0e02b2b 100644
--- a/xen/arch/arm/include/asm/new_vgic.h
+++ b/xen/arch/arm/include/asm/new_vgic.h
@@ -155,7 +155,7 @@ struct vgic_dist {
 };
 
 struct vgic_cpu {
-    struct vgic_irq private_irqs[VGIC_NR_PRIVATE_IRQS];
+    struct vgic_irq *private_irqs;
 
     struct list_head ap_list_head;
     spinlock_t ap_list_lock;    /* Protects the ap_list */
diff --git a/xen/arch/arm/vgic/vgic-init.c b/xen/arch/arm/vgic/vgic-init.c
index aef526f2e717..4eb49d922492 100644
--- a/xen/arch/arm/vgic/vgic-init.c
+++ b/xen/arch/arm/vgic/vgic-init.c
@@ -202,6 +202,11 @@ int vcpu_vgic_init(struct vcpu *v)
 {
     int ret = 0;
 
+    v->arch.vgic.private_irqs =
+        xzalloc_array(struct vgic_irq, VGIC_NR_PRIVATE_IRQS);
+    if ( !v->arch.vgic.private_irqs )
+        return -ENOMEM;
+
     vgic_vcpu_early_init(v);
 
     if ( gic_hw_version() == GIC_V2 )
@@ -244,6 +249,8 @@ void vcpu_vgic_free(struct vcpu *v)
     struct vgic_cpu *vgic_cpu = &v->arch.vgic;
 
     INIT_LIST_HEAD(&vgic_cpu->ap_list_head);
+
+    XFREE(v->arch.vgic.private_irqs);
 }
 
 /*
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 22 16:40:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 16:40:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192199.1511560 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXixU-0005CQ-1K; Mon, 22 Dec 2025 16:40:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192199.1511560; Mon, 22 Dec 2025 16:40:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXixT-0005CJ-V2; Mon, 22 Dec 2025 16:40:31 +0000
Received: by outflank-mailman (input) for mailman id 1192199;
 Mon, 22 Dec 2025 16:40:30 +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
 <SRS0=ACBk=64=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vXixS-0004ka-BI
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 16:40:30 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ece3a45d-df54-11f0-b15b-2bf370ae4941;
 Mon, 22 Dec 2025 17:40:29 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-b728a43e410so757206666b.1
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 08:40:29 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037f3e271sm1137038366b.60.2025.12.22.08.40.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Dec 2025 08:40:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ece3a45d-df54-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766421629; x=1767026429; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MiuT8oSvj+MLPsSg+EzFKiW/rD8qP9UmSvVnyWvKe2s=;
        b=WMKtMquiehDvuDQzGKDhqMiqm8Ryy6tTJR4A3C4R4Syn2cq6DRg9O2YazmIYdQtAQn
         Kdi1fekK3zN+ZY9eoFxRmGYkZGIbQR6vwzobloqGun50TxMCDiC/ayov3t+eUMGrsHIL
         ugkvuM9JW/LUDGCUnuyHO2vVkIw4w78USsT+SFNOhiM9h+IoV85L6GyUCd4pJVXaN1G9
         tOg4rZau+3RYL5PoXnM390dnFMRHKle6zgzqFTD7j3YhXnTbRY0zHzvGMJgof057I9wY
         aB0NDjZxJnDLTPgJ2SnqRHGU9xDSB9cLfmnXDMaKsx2X3CTnaTeinxWwF+mmwcvV46m8
         FDnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766421629; x=1767026429;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=MiuT8oSvj+MLPsSg+EzFKiW/rD8qP9UmSvVnyWvKe2s=;
        b=g7BfraWBcpeG3QsDKSTwETezZpwi7xk7okNIhjEC0341ptQwzNFNT+hpeHOwPNc2Px
         YnA+Ctz7IDPEJhqnr5FMaco6D1dxNns3u9GS4hXE4Q6z7J3qRDioiJ/6aSoWurrAvEWJ
         u8j/eq98fDggC4sdidkXZ4nKc0fK+RitwEWirqAc65wnc5c7MtHwK7fo9bcOzq5MC1G1
         rUm7k8Q9V4ZEkFWsJyK8hJutxJSmmWZ5XWP/FEfaZnyFoDYEN5xP3y9mpvjkWGzRniXy
         5wU+6e8sDYJUvJz5tJo65ej40/tVJPHkiyFCchIpk3af0o3vsMYmoYe/sb7fFo0BYoOs
         pPew==
X-Gm-Message-State: AOJu0Yyx1dolLSQSo2sNYtht008lzMtpEj+Fp6eD+RSp4AP1PVnLy9hF
	OiXsqxoUh6BJ7KMJ50Ro3ljbsdVlvwQJkSbl1Rjn32I1Ed5zA2mlhVkNhCkiEQ==
X-Gm-Gg: AY/fxX5/bPPFVV4THEZWbI3C8dsxmQtmA6GqizKR9Rz8RTriM1sBvpLc9gr4j6hbzEt
	AevS5vgDNi5wf76fFMkKZLZZ22fksAWJpp89Zk1bk/O6AXFJRHEQIQEeDEr1wPMizvmxnj1/WqH
	f54Vywv76K02LiGPt7xLoo8KhsbZbBls3QN5X7gv+MCga/WYeiCtlXPdFeYQSUFGrxYHdRI0BFU
	Efs96NMkDRUsBVu40AoQFlOfgjo8tFtGiX43Vfi//gmnTU9aae+jl9glULdY0YAe7YCYaRGZah8
	Yxywhtdwq4T3vOR7O1hju0dpn7kbWos4MejZQmmSC26lXGGPNY4sPdAAQmBzPjie5TxcRGV3KFL
	excxJxp0L+g8kH9VULHXBIVPW36IvpGcgiCE7hEswI3wuOy+z5XS9Mdc9q0gYQymLOtrL1c/dOu
	YLOmNLhGrhYzhe4Y5I4ltg0mhO4ZOqWfD/YJJWM4kz/2PSMoHt2FYTuZBpjfOWdQpVwg==
X-Google-Smtp-Source: AGHT+IEW+mCBAx+0gzYpyaeUbRqBMcJTDfKmg9Trf84GxY3NBWOhFrcLZM1qo+piUXdJh3lrvdzIUQ==
X-Received: by 2002:a17:906:2081:b0:b80:411f:aa50 with SMTP id a640c23a62f3a-b80411faa6emr825114466b.48.1766421628360;
        Mon, 22 Dec 2025 08:40:28 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v3 3/4] xen: move alloc/free_vcpu_struct() to common code
Date: Mon, 22 Dec 2025 17:40:13 +0100
Message-ID: <31208135cc61a8c8e593a286d450c2ec7757d118.1766404618.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766404618.git.oleksii.kurochko@gmail.com>
References: <cover.1766404618.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

alloc_vcpu_struct() and free_vcpu_struct() contain little
architecture-specific logic and are suitable for sharing across
architectures. Move both helpers to common code.

To support the remaining architectural differences, introduce
arch_vcpu_struct_memflags(), allowing architectures to override the
memory flags passed to alloc_xenheap_pages(). This is currently needed
by x86, which may require MEMF_bits(32) for HVM guests using shadow
paging.

The ARM implementation of alloc/free_vcpu_struct() is removed and
replaced by the common version. Stub implementations are also dropped
from PPC and RISC-V.

Now that the size of struct vcpu for Arm64 is smaller than PAGE_SIZE,
MAX_PAGES_PER_VCPU is no longer needed and is removed.

Finally, make alloc_vcpu_struct() and free_vcpu_struct() static to
common/domain.c, as they are no longer used outside common code.

No functional changes.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v3:
 - Make from function arch_vcpu_struct_memflags() a macros in asm/domain.h.
 - Drop forward declaration of arch_vcpu_struct_memflags() in asm/domain.h.
 - Update defintion of arch_vcpu_stuct_memflags() in alloc_vcpu_struct().
---
Changes in v2:
 - Rework alloc/free_vcpu_struct() to work with only one page.
 - Return back the comment about the restriction inside x86's
   arch_vcpu_struct_memflags().
 - Drop MAX_PAGES_PER_VCPU.
---
 xen/arch/arm/domain.c             | 32 -------------------------------
 xen/arch/ppc/stubs.c              | 10 ----------
 xen/arch/riscv/stubs.c            | 10 ----------
 xen/arch/x86/domain.c             | 24 -----------------------
 xen/arch/x86/include/asm/domain.h | 12 ++++++++++++
 xen/common/domain.c               | 20 +++++++++++++++++++
 xen/include/xen/domain.h          |  4 ----
 7 files changed, 32 insertions(+), 80 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 47973f99d935..507df807edb8 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -473,38 +473,6 @@ void dump_pageframe_info(struct domain *d)
 
 }
 
-/*
- * The new VGIC has a bigger per-IRQ structure, so we need more than one
- * page on ARM64. Cowardly increase the limit in this case.
- */
-#if defined(CONFIG_NEW_VGIC) && defined(CONFIG_ARM_64)
-#define MAX_PAGES_PER_VCPU  2
-#else
-#define MAX_PAGES_PER_VCPU  1
-#endif
-
-struct vcpu *alloc_vcpu_struct(const struct domain *d)
-{
-    struct vcpu *v;
-
-    BUILD_BUG_ON(sizeof(*v) > MAX_PAGES_PER_VCPU * PAGE_SIZE);
-    v = alloc_xenheap_pages(get_order_from_bytes(sizeof(*v)), 0);
-    if ( v != NULL )
-    {
-        unsigned int i;
-
-        for ( i = 0; i < DIV_ROUND_UP(sizeof(*v), PAGE_SIZE); i++ )
-            clear_page((void *)v + i * PAGE_SIZE);
-    }
-
-    return v;
-}
-
-void free_vcpu_struct(struct vcpu *v)
-{
-    free_xenheap_pages(v, get_order_from_bytes(sizeof(*v)));
-}
-
 int arch_vcpu_create(struct vcpu *v)
 {
     int rc = 0;
diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index 9953ea1c6c08..f7f6e7ed97af 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -152,11 +152,6 @@ void dump_pageframe_info(struct domain *d)
     BUG_ON("unimplemented");
 }
 
-void free_vcpu_struct(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 int arch_vcpu_create(struct vcpu *v)
 {
     BUG_ON("unimplemented");
@@ -264,11 +259,6 @@ void vcpu_kick(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-struct vcpu *alloc_vcpu_struct(const struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
 unsigned long
 hypercall_create_continuation(unsigned int op, const char *format, ...)
 {
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 164fc091b28a..29bdb65afbdf 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -121,11 +121,6 @@ void dump_pageframe_info(struct domain *d)
     BUG_ON("unimplemented");
 }
 
-void free_vcpu_struct(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 int arch_vcpu_create(struct vcpu *v)
 {
     BUG_ON("unimplemented");
@@ -233,11 +228,6 @@ void vcpu_kick(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-struct vcpu *alloc_vcpu_struct(const struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
 unsigned long
 hypercall_create_continuation(unsigned int op, const char *format, ...)
 {
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 7632d5e2d62d..c29a6b0decee 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -493,30 +493,6 @@ unsigned int arch_domain_struct_memflags(void)
     return MEMF_bits(bits);
 }
 
-struct vcpu *alloc_vcpu_struct(const struct domain *d)
-{
-    struct vcpu *v;
-    /*
-     * This structure contains embedded PAE PDPTEs, used when an HVM guest
-     * runs on shadow pagetables outside of 64-bit mode. In this case the CPU
-     * may require that the shadow CR3 points below 4GB, and hence the whole
-     * structure must satisfy this restriction. Thus we specify MEMF_bits(32).
-     */
-    unsigned int memflags =
-        (is_hvm_domain(d) && paging_mode_shadow(d)) ? MEMF_bits(32) : 0;
-
-    BUILD_BUG_ON(sizeof(*v) > PAGE_SIZE);
-    v = alloc_xenheap_pages(0, memflags);
-    if ( v != NULL )
-        clear_page(v);
-    return v;
-}
-
-void free_vcpu_struct(struct vcpu *v)
-{
-    free_xenheap_page(v);
-}
-
 /* Initialise various registers to their architectural INIT/RESET state. */
 void arch_vcpu_regs_init(struct vcpu *v)
 {
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index 16cd45cc32c0..effb23a23416 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -15,6 +15,18 @@
 unsigned int arch_domain_struct_memflags(void);
 #define arch_domain_struct_memflags arch_domain_struct_memflags
 
+/*
+ * This structure contains embedded PAE PDPTEs, used when an HVM guest
+ * runs on shadow pagetables outside of 64-bit mode. In this case the CPU
+ * may require that the shadow CR3 points below 4GB, and hence the whole
+ * structure must satisfy this restriction. Thus we specify MEMF_bits(32).
+ */
+#define arch_vcpu_struct_memflags(d) ({                                 \
+    const struct domain *d_ = (d);                                      \
+                                                                        \
+    (is_hvm_domain(d_) && paging_mode_shadow(d_) ? MEMF_bits(32) : 0);  \
+})
+
 #define has_32bit_shinfo(d)    ((d)->arch.has_32bit_shinfo)
 
 /*
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 93c71bc766b0..568a63b7c6a2 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -392,6 +392,26 @@ static int vcpu_teardown(struct vcpu *v)
     return 0;
 }
 
+static struct vcpu *alloc_vcpu_struct(const struct domain *d)
+{
+#ifndef arch_vcpu_struct_memflags
+# define arch_vcpu_struct_memflags(d) ((void)(d), 0)
+#endif
+    struct vcpu *v;
+
+    BUILD_BUG_ON(sizeof(*v) > PAGE_SIZE);
+    v = alloc_xenheap_pages(0, arch_vcpu_struct_memflags(d));
+    if ( v )
+        clear_page(v);
+
+    return v;
+}
+
+static void free_vcpu_struct(struct vcpu *v)
+{
+    free_xenheap_page(v);
+}
+
 /*
  * Destoy a vcpu once all references to it have been dropped.  Used either
  * from domain_destroy()'s RCU path, or from the vcpu_create() error path
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 8aab05ae93c8..644f5ac3f293 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -70,10 +70,6 @@ void domid_free(domid_t domid);
 struct domain *alloc_domain_struct(void);
 void free_domain_struct(struct domain *d);
 
-/* Allocate/free a VCPU structure. */
-struct vcpu *alloc_vcpu_struct(const struct domain *d);
-void free_vcpu_struct(struct vcpu *v);
-
 /* Allocate/free a PIRQ structure. */
 #ifndef alloc_pirq_struct
 struct pirq *alloc_pirq_struct(struct domain *d);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 22 16:40:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 16:40:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192198.1511546 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXixS-0004nL-Rv; Mon, 22 Dec 2025 16:40:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192198.1511546; Mon, 22 Dec 2025 16:40:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXixS-0004mc-NH; Mon, 22 Dec 2025 16:40:30 +0000
Received: by outflank-mailman (input) for mailman id 1192198;
 Mon, 22 Dec 2025 16:40:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ACBk=64=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vXixR-0004kh-6w
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 16:40:29 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eba00fb9-df54-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 17:40:27 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-b7a6e56193cso695590166b.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 08:40:27 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037f3e271sm1137038366b.60.2025.12.22.08.40.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Dec 2025 08:40:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eba00fb9-df54-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766421626; x=1767026426; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8Uw503SKx0GgyGrebm3SW5jx5cutNlixWzT0/a43dm0=;
        b=QHUvu/DCaS8rIq73wqnlo/4Qf4c1/6DKsOp3fNXhmDN/FVQpmrxYQUa50Xq6V2vSjp
         jYyiie+DsOOVD019HvZGGlPvekxPdiXKIdribS2+9TJ/Tx0qCVEaAtC0DqG3WqGMeTt+
         Ixkbh4A6ASxyJFADLhb/KOj05tQQe48fztdI/oQ1J/wLkkglDoQdxPt4YvyGcQb7NdZD
         QFwOzlgzbHAv27MLDYDPsWr/Z+z1xpcRk2SPMAdp0u1tsYRc0ArfFBBx2EDI0C0618Ej
         Oemrg4BTY9kn4UH8CVmswgBdO2ieACXCPyTaeDt/K1jLFOGzkbM35i0nhPKWunBeVHNt
         yZ/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766421626; x=1767026426;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=8Uw503SKx0GgyGrebm3SW5jx5cutNlixWzT0/a43dm0=;
        b=bBwEpT7GY/tqUISHp3i/Cku774PPHawYAkpAFVUX/R4SJin49xmgOG4zMQawg+WYsl
         7ZLPr59aO8iFCImqIkrGx2ykk8lb8Vduqdzl4GzF1uvJjUJMMS9Ge0YGWpQWzJZ9yreH
         WaBRjLnMRKnPOnECm86pMO0YN+zZZDmibJZ6qErCkDVvPiTsNSAbcjrvlb0tEaOBz2el
         3abL4ZG5sfUDtL/Jbob2OUqNo5qPy7AkTM/AzocbR/WCB/5zQxRXJJp+9sKbosDBQt7v
         QuhBEBMAfxnIhbJ825rO6buiMBF6x2ZnH3yvyfegl2BLeMqKx+AuiGUNdTaqAoeWV0h6
         Pv3Q==
X-Gm-Message-State: AOJu0YzIhypUYFA5NlNk6fvep09e0xbW6be93iJg5TfkhvlORADOxggz
	ITxzB+gCZRRv/m2unlaxO3AmKPCBVMZ2IPoQYRj9se+kqPt01GS6ZVN0bSHz0w==
X-Gm-Gg: AY/fxX7eVUYoabiLWfsu+jHnaHDuACLfpSc0Vg/tZFMtytJFI8nWr5vti8EN2r54Mep
	LR/HputqAP9B15OIJEcXs5625E3SC4H2dNuqjbJPc6MYwE2Ev9wcagwKIWvg2+9s96/jTaa5HPm
	zm8yuQpUtL7phZ8Jdj0r6RF/EX/ivE8xXcvGme2TlEc9PBOr6n4Ep8rwH5c1K1uM/mrBXFDMnCy
	MrnDanP7I3tCiEk6obJpiqynZQqTahkpGEOYhILoPrvAxBRwWkHO7A7L3D8S2lxACoz57+atx3L
	3opFfT6BfLfTx44kFD62FriZBCy8vG81EvOTbUa3vJWCcEtTun30GORb4t2OfJdGIiRo0vvwlnP
	yY8pppWUKQQHXbw8HsA8OGhH7NXlVWiTl6Vq7Gg3lQDTo+fFpMhQFdDRrWyTCgM/v+2UHBEfAqG
	5SU1Wqcs4Y/gHHuLHmpqRVXh5jXY/m/axXMJujLhVXxfCDCqU2RhVy8LU=
X-Google-Smtp-Source: AGHT+IFEnHW9OAYQ2/mOFIgK9/TTsAUnC/JliLxNXdFrAoRjE/ApHK5mBIfb4XfU5V8HIvPJmkoSlA==
X-Received: by 2002:a17:907:97c2:b0:b73:4b22:19c5 with SMTP id a640c23a62f3a-b803722a7f4mr1126204666b.44.1766421626416;
        Mon, 22 Dec 2025 08:40:26 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v3 1/4] xen/arm: vcpu_vgic_free() updates
Date: Mon, 22 Dec 2025 17:40:11 +0100
Message-ID: <17d04a2ba8211408cd188891a301bc521cac3bd5.1766404618.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766404618.git.oleksii.kurochko@gmail.com>
References: <cover.1766404618.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Use XFREE() instead of xfree() so that vcpu_vgic_free() can be idempotent.
With XFREE(), vgic_vcpu->private_irqs is set to NULL, so calling
vcpu_vgic_free() a second time is not an issue.

Update the prototype of vcpu_vgic_free() to return void to satisfy MISRA
Rule 17.7, since the return value of vcpu_vgic_free() is not used by any
callers.

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Change in v3:
 - New patch.
---
 xen/arch/arm/include/asm/vgic.h | 2 +-
 xen/arch/arm/vgic.c             | 5 ++---
 xen/arch/arm/vgic/vgic-init.c   | 4 +---
 3 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgic.h
index 31b3d3e5ec5d..6f9ab1c98c1c 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -418,7 +418,7 @@ int domain_vgic_register(struct domain *d, unsigned int *mmio_count);
 int domain_vgic_init(struct domain *d, unsigned int nr_spis);
 void domain_vgic_free(struct domain *d);
 int vcpu_vgic_init(struct vcpu *v);
-int vcpu_vgic_free(struct vcpu *v);
+void vcpu_vgic_free(struct vcpu *v);
 
 void vgic_inject_irq(struct domain *d, struct vcpu *v, unsigned int virq,
                      bool level);
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index 3ebdf9953f07..6647071ad4d7 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -390,10 +390,9 @@ int vcpu_vgic_init(struct vcpu *v)
     return 0;
 }
 
-int vcpu_vgic_free(struct vcpu *v)
+void vcpu_vgic_free(struct vcpu *v)
 {
-    xfree(v->arch.vgic.private_irqs);
-    return 0;
+    XFREE(v->arch.vgic.private_irqs);
 }
 
 struct vcpu *vgic_get_target_vcpu(struct vcpu *v, unsigned int virq)
diff --git a/xen/arch/arm/vgic/vgic-init.c b/xen/arch/arm/vgic/vgic-init.c
index f8d7d3a226d0..aef526f2e717 100644
--- a/xen/arch/arm/vgic/vgic-init.c
+++ b/xen/arch/arm/vgic/vgic-init.c
@@ -239,13 +239,11 @@ void domain_vgic_free(struct domain *d)
     dist->nr_spis = 0;
 }
 
-int vcpu_vgic_free(struct vcpu *v)
+void vcpu_vgic_free(struct vcpu *v)
 {
     struct vgic_cpu *vgic_cpu = &v->arch.vgic;
 
     INIT_LIST_HEAD(&vgic_cpu->ap_list_head);
-
-    return 0;
 }
 
 /*
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 22 16:40:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 16:40:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192200.1511571 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXixV-0005RR-Ah; Mon, 22 Dec 2025 16:40:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192200.1511571; Mon, 22 Dec 2025 16:40:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXixV-0005RI-61; Mon, 22 Dec 2025 16:40:33 +0000
Received: by outflank-mailman (input) for mailman id 1192200;
 Mon, 22 Dec 2025 16:40:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ACBk=64=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vXixT-0004kh-En
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 16:40:31 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eb469f45-df54-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 17:40:26 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b72b495aa81so685659666b.2
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 08:40:26 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037f3e271sm1137038366b.60.2025.12.22.08.40.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Dec 2025 08:40:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eb469f45-df54-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766421626; x=1767026426; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=J0lqSF3LowgT5w/o27SncoJ4nvC1Ks9j0BUdu4U/rs8=;
        b=lP2Sxj+43kxTvOZ2Ea3v53wU8JQi2xk9GzG21Qh5ooSPGRCIxKfgtBjvjYCZEvAqJp
         NP8V7pF7q9BSWlyyrN4bzf8SVhKpwmu1mo5okepAilwe2BBd6pSHts8yBfbadQdeSm/5
         QWSAbsk8e7A4RjM2qWpNWO/b4Eu1wpTEd/znzVTWrxjhcwFoIiN0We5oNlaFu8Fhcuj5
         pF1/mh9gAr95zp82zfnEt+P2S3x0Jq+fhbV6F5L7YfgPA4Xd8mSIk52uZxNKur/Am2B6
         fSyqU5mCy1+kaWu11A0all/1IOqe/4PbZkUPTPEIuTthb8q7KeQeXQ1aKhDNU530nKMG
         c2Pw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766421626; x=1767026426;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=J0lqSF3LowgT5w/o27SncoJ4nvC1Ks9j0BUdu4U/rs8=;
        b=FJIQRyfewq57D9i9BmvVMThMs6JNDn/i0deiGqXQLKdyOXYTlepo0Sp6kLHTwmsqbA
         xQDTD5ZRPo7VGrte8AF/3QdbbL2oX/eZHOvXoNUCIYXVmsuHKNX0/kcD5abzzLX2u2sH
         1nnNadetAEMZMjevpxT5owlqhZBA/Ecp6WF3wPf+3AlbvlucgcaRnUSgMnV99WVQ5m4y
         G3eAVezIn1m12dYh71h2XxQauw6IA4y6HH1qYmvUhLQiKdvREIMieCM8vuCrcRLlvouf
         oetTSzlBkmCJ0xTPAv6ceu/izTJO8ndhClR4ZEyZDLQ3Xs9hgsxFGGygyq0znWlVh2fd
         6RWA==
X-Gm-Message-State: AOJu0Yy3QtpxRjjuGbXoJ+zxOomj0Oa4b6Lgx523OsJ+yMNd255m62XM
	08CCPskxhfgaqKXKZNxNAsgnUvryR1BVBis1rPwLmn3alr9xNMZ+tF19eSKtqA==
X-Gm-Gg: AY/fxX6j6m79eDIGXS9aXO9lk7XUptViIIF8hlpJ6UGLIkzIOC/bZPlTRvaz7WtEoFi
	5ak/cbHCaHXED96BYCXGbouReCfF8hNQIy/3sFrdq+Jl9kbCRco5Zb1gDtQXAYtovaNxJzuMPTz
	pTa1xco5sD//XkGJ/frhl2Dno7XJGVe56KVLhn9k9svYhicved3o7nBrN2hPm88myp5iwnsg20R
	1XI4i85H5vGdW5SuAAmzGSykBsMbZEGh5PSjOfe3XXgwvXMYjPBtpBDXFTgkXmoSohTJo4+YXWu
	lpCjtyjxammgT+rOXzPdrKYz5qa8Awztw585HeDkh+5VgHFeARivYBeOIT6OVteeDKxqHV+47E3
	Y/6GlV2FixZslmyK9NzcrUMr0ubJgauI9ObsxmZSNPXfl2Hj7DXRWvEpwtXrojOlrmfpcD5WS0x
	zf2wR/DVeflM/O2qYdLNXH9ylHIxjj6sfCMUspEw1rRMjzbKwMETBbRF8=
X-Google-Smtp-Source: AGHT+IE4wbMk7NpxqruoqWKvwE6nd5qAk0AkJrXo/d8jlSh2VoFnM+PpWVLdVGSwT30cAtRhGDHavw==
X-Received: by 2002:a17:906:dc90:b0:b73:21af:99d4 with SMTP id a640c23a62f3a-b8036f96725mr1170033566b.24.1766421625743;
        Mon, 22 Dec 2025 08:40:25 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v3 0/4] Move alloc/free_vcpu_struct() to common code
Date: Mon, 22 Dec 2025 17:40:10 +0100
Message-ID: <cover.1766404618.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As it was suggested in [1] it would be better to allocate one page for struct
vcpu for all arch-es. To do that it is needed to align Arm code to allocate
one page (as there is a case(when CONFIG_NEW_VGIC=y) when Arm64 will require
to allocate two pages). As a result, the following patches for Arm have been
introduced:
 - [PATCH v2 1/4] xen/arm: optimize the size of struct vcpu
 - [PATCH v2 2/4] xen/arm: drop MAX_PAGES_PER_VCPU

This patches are dependency for:
 - [PATCH v2 3/4] xen: move alloc/free_vcpu_struct() to common code

Also, as a part of this patch series another clean up is done which makes
{alloc,free}_domain_struct() static.

[1] https://lore.kernel.org/xen-devel/f8a9be3a-a0c6-496a-806f-40760dca5aee@suse.com/T/#m275dfcbdccef0461fa9a8acef072403f18091768

CI: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2228022495

---
Changes in v3:
 - Come up with a different way to optimize struct vcpu for Arm.
 - Merge patches "[PATCH v2 2/4] xen/arm: drop MAX_PAGES_PER_VCPU]" and
   "[PATCH v2 4/4] xen/common: make {alloc,free}_domain_struct() static"
   together.
 - Clean up vcpu_vgic_free() a little bit.
---
Changes in v2:
 - Introduce new patches for Arm:
     - [PATCH v2 1/4] xen/arm: optimize the size of struct vcpu
     - [PATCH v2 2/4] xen/arm: drop MAX_PAGES_PER_VCPU
    to allocate one page for struct vcpu in common code for all the arch-es.
 - Introduce patch to clean up xen/domain.h a little bit:
     - [PATCH v2 4/4] xen/common: make {alloc,free}_domain_struct() static
 - Address the comments from v1:
     - [PATCH v2 3/4] xen: move alloc/free_vcpu_struct() to common code
---

Oleksii Kurochko (4):
  xen/arm: vcpu_vgic_free() updates
  xen/arm: optimize the size of struct vcpu
  xen: move alloc/free_vcpu_struct() to common code
  xen/common: make {alloc,free}_domain_struct() static

 xen/arch/arm/domain.c               | 32 ---------------
 xen/arch/arm/include/asm/new_vgic.h |  2 +-
 xen/arch/arm/include/asm/vgic.h     |  2 +-
 xen/arch/arm/vgic.c                 |  5 +--
 xen/arch/arm/vgic/vgic-init.c       |  9 ++++-
 xen/arch/ppc/stubs.c                | 10 -----
 xen/arch/riscv/stubs.c              | 10 -----
 xen/arch/x86/domain.c               | 24 -----------
 xen/arch/x86/include/asm/domain.h   | 12 ++++++
 xen/common/domain.c                 | 62 +++++++++++++++++++----------
 xen/include/xen/domain.h            |  8 ----
 11 files changed, 64 insertions(+), 112 deletions(-)

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 22 16:40:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 16:40:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192201.1511576 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXixV-0005VM-PM; Mon, 22 Dec 2025 16:40:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192201.1511576; Mon, 22 Dec 2025 16:40:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXixV-0005Ur-Eq; Mon, 22 Dec 2025 16:40:33 +0000
Received: by outflank-mailman (input) for mailman id 1192201;
 Mon, 22 Dec 2025 16:40:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ACBk=64=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vXixU-0004kh-3W
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 16:40:32 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ed780244-df54-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 17:40:30 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-64b8e5d1611so4640919a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 08:40:30 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037f3e271sm1137038366b.60.2025.12.22.08.40.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Dec 2025 08:40:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ed780244-df54-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766421630; x=1767026430; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BNwjdy5MtRkLCdiw0Mfj0t/kIGmvAi3hjA2xW/bh4o4=;
        b=YSs8qS+VncWC9dzXbFkUwGEzjIldo/uflzsOMlavn+ivaPArqKKRwKTXckB/iVOuuC
         6ymM79VpIfIW60rqLUjPSnQoylLJpxc9ZTqvfxHoCN7Ng5EsE525nSWmT4IE3q+lyZaT
         zhFqpJZFoeDIhH4CmDSx8YXz3MbEdFTB5XmNX43M5mgsiTpeI2xXewcAjg3wipNnTGI0
         1n1SioIibhoHJP7tX2XP+uJ1eb9uAwTKFF414mh31N1TCpnDpBdH8mMMOtbglAM4CKRR
         nYynshCubjlHaqvy4DT/SZdKLGHaikeyhgsjpZg8/Sifufn89h+JtiAPkPiQaHxIg7sB
         S7kQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766421630; x=1767026430;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=BNwjdy5MtRkLCdiw0Mfj0t/kIGmvAi3hjA2xW/bh4o4=;
        b=WHKvmZ2Fv+vlAprnkq0dcUvPqS9OhtgdNeoZWtcvVcvO43TQY/qOrvD+6u7O432fSL
         B5fj41pnbbihjTdaHJoUnaxLb3DLVx1qutwD3J2CxRtV653aRSRc0PiEJbK8I50yLPv+
         vGUvU8DTKHf1exZpmDhQ2iKUMz4LSNVsg3Uw8x4k/1omOFkUTKOtf8fiNT5jXxfqQgj2
         n5RIdr+K3x/wr4RwO3nX0KG0dPE8AwSwUaXbWiQ4W2Ad832f6VWmcaFXMUv4Dh7k/+gp
         Pp4mSSHVWUl5p3HojDo+h5uAFj9DdnN14B3iYTHsptN19DWTFlIvE20Pu9ILQen6L1Uf
         I1pA==
X-Gm-Message-State: AOJu0YzMXRBSWijgrOUSeJhtpEem1JEc16vlHQZZhtL1DMmh6hZKmFQD
	OaaH2tmL7a4G/8SkkEv31qrjomTbhMli9qjV2cQTmwCnW/dbNDwE3ACQR3/LWQ==
X-Gm-Gg: AY/fxX71McsQKAAYTdTf9pgqxBsFW5EFtz7tS1VGpA3n8QRrtq9PKkcutVKJdZtoJ79
	iq6S7BkB9uOOyPgbp/YRnofakJCal2dnKN12dXl0odp3Dc7swHH2m9+MjVfjP6g4AKUHEWqR6Hq
	HgPk0pP+SOaHufaKoGTpYPgpkqL6i+0JYYISuMy7jHNH81K68yE7te70nuU9sMrn3Fy0QOsy2wp
	VE9ibFhtRTYuFaId1X2ayT4lmzTO7cJKgP95NQ+iGTZv71Ys9q0VrdvORovgiaLi6P4KsINwJvc
	NaAsHNpwQPtW9A2hKds6hnswz9QA+seJCUH+4Fds+nBmwUtjdeULgDI7X609KD7xpxzONBdV522
	GMBR7N+h/BmbiDjqRuGWNbbV51xTQ1vulG0Ag1hDz69j9v/Gjvv8AxNkvy42SXhH+o2OCE0k0yd
	fMUqe37ag9Z+cU2YW5KVZoa9/kkp4jOJqVCCNWnFy4xNwING46z9BZgp0=
X-Google-Smtp-Source: AGHT+IFHbT58UFSAVUgtzRFhJKpDVbA/0v4hEH5GInvzZ4YJae2oeQe5zduQcBln5eMzXtvd4JIFsA==
X-Received: by 2002:a17:907:7fa8:b0:b73:572d:3b07 with SMTP id a640c23a62f3a-b8036fac50amr1281809566b.28.1766421629522;
        Mon, 22 Dec 2025 08:40:29 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 4/4] xen/common: make {alloc,free}_domain_struct() static
Date: Mon, 22 Dec 2025 17:40:14 +0100
Message-ID: <07e8305e7d9730f65822f43ecefb7543b08f764b.1766404618.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766404618.git.oleksii.kurochko@gmail.com>
References: <cover.1766404618.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As {alloc,free}_domain_struct() are used only within domain.c,
they can be declared static and their declarations removed
from xen/domain.h.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Changes in v3:
 - Move alloc_domain_struct() and free_domain_struct() to not have
   forward declaration.
 - Add Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>.
---
Changes in v2:
 - New patch.
---
 xen/common/domain.c      | 42 ++++++++++++++++++++--------------------
 xen/include/xen/domain.h |  4 ----
 2 files changed, 21 insertions(+), 25 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 568a63b7c6a2..7a3e5ce6593f 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -690,6 +690,27 @@ static int domain_teardown(struct domain *d)
     return 0;
 }
 
+static struct domain *alloc_domain_struct(void)
+{
+#ifndef arch_domain_struct_memflags
+# define arch_domain_struct_memflags() 0
+#endif
+
+    struct domain *d = alloc_xenheap_pages(0, arch_domain_struct_memflags());
+
+    BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
+
+    if ( d )
+        clear_page(d);
+
+    return d;
+}
+
+static void free_domain_struct(struct domain *d)
+{
+    free_xenheap_page(d);
+}
+
 /*
  * Destroy a domain once all references to it have been dropped.  Used either
  * from the RCU path, or from the domain_create() error path before the domain
@@ -819,27 +840,6 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
     return arch_sanitise_domain_config(config);
 }
 
-struct domain *alloc_domain_struct(void)
-{
-#ifndef arch_domain_struct_memflags
-# define arch_domain_struct_memflags() 0
-#endif
-
-    struct domain *d = alloc_xenheap_pages(0, arch_domain_struct_memflags());
-
-    BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
-
-    if ( d )
-        clear_page(d);
-
-    return d;
-}
-
-void free_domain_struct(struct domain *d)
-{
-    free_xenheap_page(d);
-}
-
 struct domain *domain_create(domid_t domid,
                              struct xen_domctl_createdomain *config,
                              unsigned int flags)
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 644f5ac3f293..273717c31b3f 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -66,10 +66,6 @@ void domid_free(domid_t domid);
  * Arch-specifics.
  */
 
-/* Allocate/free a domain structure. */
-struct domain *alloc_domain_struct(void);
-void free_domain_struct(struct domain *d);
-
 /* Allocate/free a PIRQ structure. */
 #ifndef alloc_pirq_struct
 struct pirq *alloc_pirq_struct(struct domain *d);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 22 16:52:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 16:52:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192289.1511590 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXj9C-0000kx-SW; Mon, 22 Dec 2025 16:52:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192289.1511590; Mon, 22 Dec 2025 16:52:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXj9C-0000kq-P2; Mon, 22 Dec 2025 16:52:38 +0000
Received: by outflank-mailman (input) for mailman id 1192289;
 Mon, 22 Dec 2025 16:52:38 +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 <SRS0=ezST=64=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vXj9B-0000ki-VY
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 16:52:37 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9dd89c6c-df56-11f0-b15b-2bf370ae4941;
 Mon, 22 Dec 2025 17:52:35 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-47a95efd2ceso35942155e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 08:52:35 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4325b6bfe88sm14545653f8f.19.2025.12.22.08.52.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Dec 2025 08:52:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9dd89c6c-df56-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766422355; x=1767027155; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=y1ZTWe3P/Q2TMsShYIxlFEL/3fCtojbqDNSi0VAhKuk=;
        b=biu802qaG16xwC8BOm5Ej/MGA2wTeRBtvuqBdgO+/BezM20wUDanj44OJIwmpYeO7Z
         go12ib4r0fi47QPu8gl3T5Tq3TsUQ9asMv52harSVIWwdhrWE5gtlzQbEZUfF2CrmBaq
         eg87pNvSvNeMEzUjM2kc9FOrFefV6yTUm+e72wxh54Eyg4AujTM3TVw/Vi/CkKrXU7tE
         i5yzdjAUV804+fQSaEFgKeMElDIvFjttsjuldVxLCCQ52e7rrCcGpOxItX3APY4URRTl
         szF55e2TFFrMK+T7fqHCfdCu/C8DRYnvwqkvzvfXfXHPUl9w384RLxmSpcMUsYmDJIgg
         IRQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766422355; x=1767027155;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=y1ZTWe3P/Q2TMsShYIxlFEL/3fCtojbqDNSi0VAhKuk=;
        b=aR80m4FGOdtK6P79gkRy7tDL/RXSvJSOg468humB+Mxnp9taXfwvcbASopNyBr1Lcg
         ZFsb1Ch+cRyZZ4GG12I6zfiFMHMeEV0Cgf6d39hKryHm6drQwlIOQgZ3RXCm9ShnGWVL
         XDiaAqdYjUSFhsPuR0wo0hb3HweK3smUU+uzo0vdOHgiq9aJ9oykkNC7hwHu5qScXO6n
         HmMUG/FjnQru4VBnCiBmACPyPJ48LzLxrAfBhpUhFQYXN8D8qWEJgSr81bFOcmSYF6El
         cIzo9kvX40HT+emREYvCnd0dxCKvMgtK8zBFw5S6ajtgEJ4cjQ9AbJ50ah5+MvwJhqBc
         381Q==
X-Gm-Message-State: AOJu0Yy8KUzEKzU+AB3SCBwxDqSc/94Eo6KIwwt/TeaihQyQz84gk61A
	EHx7ntwT0fI+epGP5o/LYXEMyy14VIaO9t889gTpMjCgEV9qAS36UxE34wXzX67rMdDkJYIVvc5
	GVjU=
X-Gm-Gg: AY/fxX5IRZRgXt5YPs2JOZ61nKXSjagY5Kn9RwtmMmHqR1Y0VJIHsYSFG1kyBivPqxK
	Xj0ATonSGb/G1uOxpp0uIygGL2+71vHdBnWiuJMba6ro25NRbOJSx8MNWLaA0Xp8n1Joq8b956N
	EfL+Q1E10B26nPOSjHU4l7iW7giYslbMi5E+Dk59PD0JVrBVO/tQmWedCce7SQwxKGkOaYXubxo
	EAZ8Hurg6amTxUil+MDQoZf8KQ7kthoHmzXgqi7x4rCC7tYQRQ8E+oTnSUU8qUNucgxfCvuuBFb
	oLFrcLTmHUByW4Djo7gUz/9J6u5KQqP+UgRxhrPjOnOYUu6Fd6phG2xTvcgKOWxIGSXVnraBfqr
	lzTZI/4KfaVbquUjF0sO8BPJjw49ycDa6CfhjSrgTx/JBwr/M6ujQMHSHbOKVPN180h1PasuJZH
	xzCvd/MUih82kKrOhzZr5f5NM3sKYhzifm3Bdhs96fRIiT+ElXGybpXtEfIv0otSYgxu7yMMvKx
	tY=
X-Google-Smtp-Source: AGHT+IHdCCcB3LExmrVHoBYjpsa0+9snoj75elBu8FbI8DtjAJ2NMszEYqDtIPGXbt/RIPsdUsAOgw==
X-Received: by 2002:a05:6000:2881:b0:430:fbe1:382a with SMTP id ffacd0b85a97d-4324e702010mr14202451f8f.54.1766422355270;
        Mon, 22 Dec 2025 08:52:35 -0800 (PST)
Message-ID: <4a8f06b9-8210-487f-9dd7-e0221e2df9db@suse.com>
Date: Mon, 22 Dec 2025 17:52:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/2] x86/cpu-policy: librarify copy-in/-out
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The 1st patch is largely unrelated, but helps demonstrate that the component
isn't being (silently) broken by the adjustments made.

1: enable build of fuzzing harness by default
2: move copy-in/-out functions to arch library

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 22 16:53:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 16:53:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192297.1511599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXjAB-0001Dl-4G; Mon, 22 Dec 2025 16:53:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192297.1511599; Mon, 22 Dec 2025 16:53:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXjAB-0001De-1T; Mon, 22 Dec 2025 16:53:39 +0000
Received: by outflank-mailman (input) for mailman id 1192297;
 Mon, 22 Dec 2025 16:53:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ezST=64=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vXjA9-000115-Vf
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 16:53:37 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c1bd1f42-df56-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 17:53:36 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso32831145e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 08:53:36 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47be26a81b6sm256333345e9.0.2025.12.22.08.53.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Dec 2025 08:53:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c1bd1f42-df56-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766422415; x=1767027215; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=OsI4gloEQwSNKupVpgjb2Rjg/GFGEQhJx0eZpnb+0kY=;
        b=Kvj0gE52rfDUjh5Q08Y4to8rdew5zYeR98U/RzVKLz0ZB5Jn8ikPbd8D7enn6a6Sbt
         284QOLcRibV+U96uzWUUrMhTZYXrL0nFcxO+F8Yr7l0fMPWH8hVeNEJ4LuSSHpqO17J9
         yLbqjBI5tuJqHkMHe5bCSusc4c4Mp/BCYZeTWPpPT4kjYhvQjJeDQa7rTg4chwy8TLp0
         hFejHo0F+LoSHMWKfWouYa7bAqAJA3zXnXxGGEz1b00KlSXxE1sPHqfmLIqbge9VKA62
         08nKLQhHTaKnCsJOurmDnW7AzBPfDtO+2Mie0JdnEXsKKaUdpeiD+JNdilofNFetBEdZ
         C2ug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766422415; x=1767027215;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OsI4gloEQwSNKupVpgjb2Rjg/GFGEQhJx0eZpnb+0kY=;
        b=lvzAQXdJrLbboN46I6DZXf8mHN4vloqgX1e/nLk+UiVjDOwJJZz//B94g19yhxzFwy
         TScICS/ZpVptTkXkTX0H/KO1XIU1A45R8PNteimairMO/vaiaOwGwEYlzjN7wah9WFMN
         MqQ6XY4KnyeVGxs0z58yuiyx/eWnMjdmXo7NHI95cW4yOIgFAIXLPIhzAFSoTBqBbyCT
         8xUf6NhyEHzQUfuAm2JcaKgoib+WNaKxzewQJhFJQkYQg3xGcJ81coXEUBWBgsoMDGb8
         gEBrupIOiM2Zieoa8IXBcFbcgoV8Sj3icyvkIABEcz3260nxPYLmui5Jc5E3GVt6Fonw
         VVmw==
X-Gm-Message-State: AOJu0Yw/yZDVq5mbFD59k0xKQsDKJn5NOZrkDMCpgRZTfcZ1wWVAj/0d
	3mOx5v/YHBf3hema4azy1F2VrWbua/MQnf5ED0hVfq021WoEQqWNZf42aS1M2Bc1zhz5HqPCz4T
	21xg=
X-Gm-Gg: AY/fxX5oaQMhmjOOvQ3CssXX3bI2qBTcJjjebugdmQHgJ88FugK/5nvJ2oI4Vq5IjJ3
	+Z79KMTfD4OvVWSP8TqForF2Dh+vgdxIp5RkWBcFD/XeWoaQFlGyEd8OBNMVu/nAgP7sqHhLTAN
	L1tAw7SS0hWPXcfJ3/Zbs4FlYGIITMxs2/GNH80x1Ccu0CDWrpDl7z0jzGcr3Qh5aazapiqOmYm
	Cmv5m29ScCjGBm7v213mSwXzux4YcVzeSTvC7fcSlpOfnmgFdAD9RpU9Cf4hdfClzHMDB0JalSR
	i7ytWX3o4Gf51OpJ8tBU3h/DAVmxZIuDkxDNZg5Su2pe7ZxhNGjKxZhYkRTk2AQG1QADoeSpXeF
	17pP4EHa3BL/7ZCOmE1XG7RM7ZH2h6APNDii07L1h5bqNZZ7GYjJF0SL0UvewoeaB5zg7mxs6OA
	wvO9ElgtWeGTzw/61ysb3N7Dh6mjCtpOM0M3iISNer2WTHelCZNkgs4az1snvDCgr44G/PdVYFe
	w0=
X-Google-Smtp-Source: AGHT+IF2lC4cnqGNcq2rVKk1AV+Bn5JYXNhVRLxThywUFL+h8Cas2G9mfgXMxfXU/ehzBirTEr+WXw==
X-Received: by 2002:a05:600c:8b11:b0:479:13e9:3d64 with SMTP id 5b1f17b1804b1-47d2d273999mr45505925e9.15.1766422415444;
        Mon, 22 Dec 2025 08:53:35 -0800 (PST)
Message-ID: <c3fcc1a5-6479-400b-b65d-35d7d7233b4a@suse.com>
Date: Mon, 22 Dec 2025 17:53:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 1/2] x86/cpu-policy: enable build of fuzzing harness by
 default
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <4a8f06b9-8210-487f-9dd7-e0221e2df9db@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <4a8f06b9-8210-487f-9dd7-e0221e2df9db@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

... on x86, to make sure its bit-rotting can be limited at least a little.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/tools/fuzz/Makefile
+++ b/tools/fuzz/Makefile
@@ -4,6 +4,7 @@ include $(XEN_ROOT)/tools/Rules.mk
 SUBDIRS-y :=
 SUBDIRS-y += libelf
 SUBDIRS-y += x86_instruction_emulator
+SUBDIRS-$(CONFIG_X86_64) += cpu-policy
 
 .PHONY: all clean distclean install uninstall
 all clean distclean install uninstall: %: subdirs-%



From xen-devel-bounces@lists.xenproject.org Mon Dec 22 16:55:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 16:55:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192307.1511611 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXjBT-0001l0-FW; Mon, 22 Dec 2025 16:54:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192307.1511611; Mon, 22 Dec 2025 16:54:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXjBT-0001kt-Ay; Mon, 22 Dec 2025 16:54:59 +0000
Received: by outflank-mailman (input) for mailman id 1192307;
 Mon, 22 Dec 2025 16:54:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ezST=64=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vXjBR-0001kn-GL
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 16:54:57 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f0bf4e4b-df56-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 17:54:54 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-42fbc305882so2148189f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Dec 2025 08:54:54 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea226d1sm23513860f8f.13.2025.12.22.08.54.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Dec 2025 08:54:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f0bf4e4b-df56-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766422494; x=1767027294; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=h4UevlDelbU9Pq4j3DueOab96zFdtjsssm1G7f69TuQ=;
        b=MXr8hTFbnyAHUj0lWW9Mugb1B6ap9CrbxJpHGCJ3uITgCrWoBbRhFoDd5txNIaFy+g
         Z14Vis6O6ZYERC6vW7tERnH9XqeYVXJFBGDAn8GXvjkPZBYpKxJJWj6rQlDen071UgoI
         38i6XMft6mTyCIh5KSOa11S4dygXfWGyPLmFBLOXl36NDtvjsT5g8cRU1uA9Wn9Llfbw
         J72eLZjNAyHgG8m9pQs+CG1rJZm3iv0TFdxwCwYHbLPIw4XCsNUTy6HhOldsoNncK3xj
         HQLDO+olodEGDrHyvSjQ0KDUtTGn/nyC/WL8tQpjnCIKr+veTqBVQaYCWFheeJL1gLZD
         V7Hg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766422494; x=1767027294;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=h4UevlDelbU9Pq4j3DueOab96zFdtjsssm1G7f69TuQ=;
        b=HjRu5eoaKm721ej96VCHPz0sa6S+G7EPrBdOv9z559bXEAieoZ0jfKRGfGJV9HAXz9
         uG7cPze43i1b3YI9OJ45HXBNtksJ1+qgmlamaJr63Mrguu6ikuj1S1Jia5RUuKOvuORE
         J9ah7PMo7fkLSRmuHY2d8cGIuot9TvKjYEa7aqYZBNE6cxEqzTC8xABSgN/5CKAhVyYQ
         5LYn8tXI529UKCy2NuM2jQ73vQbQlpS8pRnNU93/8HJFnMLPqxhbfCwOoNW2WeLZ2oKK
         y1R+3igexQ7AHXxbbpoLrPTCFcOi/YeE4R9UpyD4TIxG2AQErGK77fDv7mFsud5Na8k7
         UWcA==
X-Gm-Message-State: AOJu0Yz60sSnv7Ra66G+VBHwknjKKCP9e9MIdU09ajzTkdaJDru8IhwH
	zip5OplLzpG3GImtIlAl2Q+KEGhJbOYpUY+/ba6y7uClMW6+ZKWk9ITW/bQ4TgSa/6SC2IqkRnW
	cc60=
X-Gm-Gg: AY/fxX6Q2I+1syH+G1ghKVKsAf+1Oeczxa2X/6Z5/LJnBp1Nw3k9Iy0GcPLpsSzzSpE
	fuvV2sVy9538zrAvFa7qUQHdm1r3UDr8PPMYwEcJa/9oLzIlX2YRywJHPhAunpDrDWxkNG8duXH
	6PVg6KmLD6vxzgMUJ+u7dpHMyvrfYdw8U0DES5omLvG1b9bSodHbt6kNEqIsrrEiMq9IYH2zT1w
	DlqgmGaNCOTM82f02UBWdvwl2GFVv2V1A4t1yqWYxGl3cWgsUMTRjvYeAgMRvMoeRRU2Cg/N5J9
	Bewichnea3ciFxT6aWPpLw4h2ykAIylBXeesY/6tZ7jwDUEJOLLveggiSMQhv/r0ooq9UQK21R0
	XoHUrUVBTV5+qDfpItoeHaiDTuVuO+ZLhr+w2b+pc1WAmXc8TAAtyONOf5ctcp7cGECWtS8Gxf2
	PTJvotFhbkMbUynYt93v9uaG8BfWMKBKe/UqkEZM5Xl3EeRDuCdVq/Iwi5clhFgzJ6jKalDrsVp
	ndswaL4G842jg==
X-Google-Smtp-Source: AGHT+IGGNEP8R51YHcTVHI1J6n+HvViMPPWJH2k75K40fzbLspg0wnvCN9EU2Ya7lHhnmdHW0OX6Wg==
X-Received: by 2002:a5d:5d11:0:b0:430:f68f:ee91 with SMTP id ffacd0b85a97d-4324e4f68f5mr14055522f8f.37.1766422494158;
        Mon, 22 Dec 2025 08:54:54 -0800 (PST)
Message-ID: <41447fdb-bc9a-4b1a-afd0-9d878ab21301@suse.com>
Date: Mon, 22 Dec 2025 17:54:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/2] x86/cpu-policy: move copy-in/-out functions to arch
 library
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Penny Zheng <Penny.Zheng@amd.com>, Anthony PERARD <anthony.perard@vates.tech>
References: <4a8f06b9-8210-487f-9dd7-e0221e2df9db@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <4a8f06b9-8210-487f-9dd7-e0221e2df9db@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

This is to aid with MGMT_HYPERCALL work, leaving the functions potentially
unreferenced (which Misra dislikes). By moving them to separate archive
members, the linker simply will not pick them up when not needed.

As the CPUID and MSR ones are always used together, put the "from" and
"to" variants of each together in one file respectively.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/tools/fuzz/cpu-policy/Makefile
+++ b/tools/fuzz/cpu-policy/Makefile
@@ -20,9 +20,13 @@ install: all
 CFLAGS += $(CFLAGS_xeninclude) -D__XEN_TOOLS__
 CFLAGS += $(APPEND_CFLAGS) -Og
 
-vpath %.c ../../../xen/lib/x86
+vpath %.c $(XEN_ROOT)/xen/lib/x86
+vpath %.c $(XEN_ROOT)/xen/arch/x86/lib
 
-afl-policy-fuzzer: afl-policy-fuzzer.o msr.o cpuid.o
+lib-y :=
+include $(XEN_ROOT)/xen/arch/x86/lib/Makefile.cpu-policy
+
+afl-policy-fuzzer: afl-policy-fuzzer.o cpuid.o $(lib-y)
 	$(CC) $(CFLAGS) $^ -o $@
 
 -include $(DEPS_INCLUDE)
--- a/tools/libs/guest/Makefile.common
+++ b/tools/libs/guest/Makefile.common
@@ -33,9 +33,13 @@ LIBELF_OBJS += libelf-dominfo.o
 OBJS-y += $(LIBELF_OBJS)
 
 ifeq ($(CONFIG_X86),y) # Add libx86 to the build
-vpath %.c ../../../xen/lib/x86
+vpath %.c $(XEN_ROOT)/xen/lib/x86
+vpath %.c $(XEN_ROOT)/xen/arch/x86/lib
 
-OBJS-y                 += cpuid.o msr.o policy.o
+lib-y :=
+include $(XEN_ROOT)/xen/arch/x86/lib/Makefile.cpu-policy
+
+OBJS-y                 += cpuid.o policy.o $(lib-y)
 endif
 
 # new domain builder
--- a/tools/tests/cpu-policy/Makefile
+++ b/tools/tests/cpu-policy/Makefile
@@ -42,11 +42,15 @@ CFLAGS += $(APPEND_CFLAGS)
 
 LDFLAGS += $(APPEND_LDFLAGS)
 
-vpath %.c ../../../xen/lib/x86
+vpath %.c $(XEN_ROOT)/xen/lib/x86
+vpath %.c $(XEN_ROOT)/xen/arch/x86/lib
+
+lib-y :=
+include $(XEN_ROOT)/xen/arch/x86/lib/Makefile.cpu-policy
 
 %.o: Makefile
 
-test-cpu-policy: test-cpu-policy.o msr.o cpuid.o policy.o
+test-cpu-policy: test-cpu-policy.o cpuid.o policy.o $(lib-y)
 	$(CC) $^ -o $@ $(LDFLAGS)
 
 -include $(DEPS_INCLUDE)
--- a/xen/arch/x86/lib/Makefile
+++ b/xen/arch/x86/lib/Makefile
@@ -6,3 +6,5 @@ lib-y += generic-hweightl.o
 lib-y += memcpy.o
 lib-y += memset.o
 lib-y += scrub-page.o
+
+include $(srcdir)/Makefile.cpu-policy
--- /dev/null
+++ b/xen/arch/x86/lib/Makefile.cpu-policy
@@ -0,0 +1,2 @@
+lib-y += cp-copy-from-buffer.o
+lib-y += cp-copy-to-buffer.o
--- /dev/null
+++ b/xen/arch/x86/lib/cp-copy-from-buffer.c
@@ -0,0 +1,238 @@
+#ifdef __XEN__
+
+#include <xen/errno.h>
+#include <xen/guest_access.h>
+#include <xen/nospec.h>
+#include <xen/types.h>
+
+#include <asm/msr-index.h>
+
+#define copy_from_buffer_offset copy_from_guest_offset
+
+#else /* !__XEN__ */
+
+#include <errno.h>
+#include <inttypes.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <string.h>
+
+#include <xen/asm/msr-index.h>
+
+#include <xen-tools/common-macros.h>
+
+#define array_access_nospec(a, i) (a)[(i)]
+
+/* memcpy(), but with copy_from_guest_offset()'s API. */
+#define copy_from_buffer_offset(dst, src, index, nr)    \
+({                                                      \
+    const typeof(*(src)) *src_ = (src);                 \
+    typeof(*(dst)) *dst_ = (dst);                       \
+    typeof(index) index_ = (index);                     \
+    typeof(nr) nr_ = (nr), i_;                          \
+                                                        \
+    for ( i_ = 0; i_ < nr_; i_++ )                      \
+        dst_[i_] = src_[index_ + i_];                   \
+    0;                                                  \
+})
+
+#endif /* __XEN__ */
+
+#include <xen/lib/x86/cpu-policy.h>
+
+int x86_cpuid_copy_from_buffer(struct cpu_policy *p,
+                               const cpuid_leaf_buffer_t leaves,
+                               uint32_t nr_entries, uint32_t *err_leaf,
+                               uint32_t *err_subleaf)
+{
+    unsigned int i;
+    xen_cpuid_leaf_t data;
+
+    if ( err_leaf )
+        *err_leaf = -1;
+    if ( err_subleaf )
+        *err_subleaf = -1;
+
+    /*
+     * A well formed caller is expected to pass an array with leaves in order,
+     * and without any repetitions.  However, due to per-vendor differences,
+     * and in the case of upgrade or levelled scenarios, we typically expect
+     * fewer than MAX leaves to be passed.
+     *
+     * Detecting repeated entries is prohibitively complicated, so we don't
+     * bother.  That said, one way or another if more than MAX leaves are
+     * passed, something is wrong.
+     */
+    if ( nr_entries > CPUID_MAX_SERIALISED_LEAVES )
+        return -E2BIG;
+
+    for ( i = 0; i < nr_entries; ++i )
+    {
+        struct cpuid_leaf l;
+
+        if ( copy_from_buffer_offset(&data, leaves, i, 1) )
+            return -EFAULT;
+
+        l = (struct cpuid_leaf){ data.a, data.b, data.c, data.d };
+
+        switch ( data.leaf )
+        {
+        case 0 ... ARRAY_SIZE(p->basic.raw) - 1:
+            switch ( data.leaf )
+            {
+            case 0x4:
+                if ( data.subleaf >= ARRAY_SIZE(p->cache.raw) )
+                    goto out_of_range;
+
+                array_access_nospec(p->cache.raw, data.subleaf) = l;
+                break;
+
+            case 0x7:
+                if ( data.subleaf >= ARRAY_SIZE(p->feat.raw) )
+                    goto out_of_range;
+
+                array_access_nospec(p->feat.raw, data.subleaf) = l;
+                break;
+
+            case 0xb:
+                if ( data.subleaf >= ARRAY_SIZE(p->topo.raw) )
+                    goto out_of_range;
+
+                array_access_nospec(p->topo.raw, data.subleaf) = l;
+                break;
+
+            case 0xd:
+                if ( data.subleaf >= ARRAY_SIZE(p->xstate.raw) )
+                    goto out_of_range;
+
+                array_access_nospec(p->xstate.raw, data.subleaf) = l;
+                break;
+
+            default:
+                if ( data.subleaf != XEN_CPUID_NO_SUBLEAF )
+                    goto out_of_range;
+
+                array_access_nospec(p->basic.raw, data.leaf) = l;
+                break;
+            }
+            break;
+
+        case 0x40000000:
+            if ( data.subleaf != XEN_CPUID_NO_SUBLEAF )
+                goto out_of_range;
+
+            p->hv_limit = l.a;
+            break;
+
+        case 0x40000100:
+            if ( data.subleaf != XEN_CPUID_NO_SUBLEAF )
+                goto out_of_range;
+
+            p->hv2_limit = l.a;
+            break;
+
+        case 0x80000000U ... 0x80000000U + ARRAY_SIZE(p->extd.raw) - 1:
+            if ( data.subleaf != XEN_CPUID_NO_SUBLEAF )
+                goto out_of_range;
+
+            array_access_nospec(p->extd.raw, data.leaf & 0xffff) = l;
+            break;
+
+        default:
+            goto out_of_range;
+        }
+    }
+
+    x86_cpu_policy_recalc_synth(p);
+
+    return 0;
+
+ out_of_range:
+    if ( err_leaf )
+        *err_leaf = data.leaf;
+    if ( err_subleaf )
+        *err_subleaf = data.subleaf;
+
+    return -ERANGE;
+}
+
+int x86_msr_copy_from_buffer(struct cpu_policy *p,
+                             const msr_entry_buffer_t msrs, uint32_t nr_entries,
+                             uint32_t *err_msr)
+{
+    unsigned int i;
+    xen_msr_entry_t data;
+    int rc;
+
+    if ( err_msr )
+        *err_msr = -1;
+
+    /*
+     * A well formed caller is expected to pass an array with entries in
+     * order, and without any repetitions.  However, due to per-vendor
+     * differences, and in the case of upgrade or levelled scenarios, we
+     * typically expect fewer than MAX entries to be passed.
+     *
+     * Detecting repeated entries is prohibitively complicated, so we don't
+     * bother.  That said, one way or another if more than MAX entries are
+     * passed, something is wrong.
+     */
+    if ( nr_entries > MSR_MAX_SERIALISED_ENTRIES )
+        return -E2BIG;
+
+    for ( i = 0; i < nr_entries; i++ )
+    {
+        if ( copy_from_buffer_offset(&data, msrs, i, 1) )
+            return -EFAULT;
+
+        if ( data.flags ) /* .flags MBZ */
+        {
+            rc = -EINVAL;
+            goto err;
+        }
+
+        switch ( data.idx )
+        {
+            /*
+             * Assign data.val to p->field, checking for truncation if the
+             * backing storage for field is smaller than uint64_t
+             */
+#define ASSIGN(field)                             \
+({                                                \
+    if ( (typeof(p->field))data.val != data.val ) \
+    {                                             \
+        rc = -EOVERFLOW;                          \
+        goto err;                                 \
+    }                                             \
+    p->field = data.val;                          \
+})
+
+        case MSR_INTEL_PLATFORM_INFO: ASSIGN(platform_info.raw); break;
+        case MSR_ARCH_CAPABILITIES:   ASSIGN(arch_caps.raw);     break;
+
+#undef ASSIGN
+
+        default:
+            rc = -ERANGE;
+            goto err;
+        }
+    }
+
+    return 0;
+
+ err:
+    if ( err_msr )
+        *err_msr = data.idx;
+
+    return rc;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null
+++ b/xen/arch/x86/lib/cp-copy-to-buffer.c
@@ -0,0 +1,204 @@
+#ifdef __XEN__
+
+#include <xen/errno.h>
+#include <xen/guest_access.h>
+#include <xen/types.h>
+
+#include <asm/msr-index.h>
+
+#define copy_to_buffer_offset copy_to_guest_offset
+
+#else /* !__XEN__ */
+
+#include <errno.h>
+#include <inttypes.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <string.h>
+
+#include <xen/asm/msr-index.h>
+
+#include <xen-tools/common-macros.h>
+
+/* memcpy(), but with copy_to_guest_offset()'s API. */
+#define copy_to_buffer_offset(dst, index, src, nr)      \
+({                                                      \
+    const typeof(*(src)) *src_ = (src);                 \
+    typeof(*(dst)) *dst_ = (dst);                       \
+    typeof(index) index_ = (index);                     \
+    typeof(nr) nr_ = (nr), i_;                          \
+                                                        \
+    for ( i_ = 0; i_ < nr_; i_++ )                      \
+        dst_[index_ + i_] = src_[i_];                   \
+    0;                                                  \
+})
+
+#endif /* __XEN__ */
+
+#include <xen/lib/x86/cpu-policy.h>
+
+/*
+ * Copy a single cpuid_leaf into a provided xen_cpuid_leaf_t buffer,
+ * performing boundary checking against the buffer size.
+ */
+static int copy_leaf_to_buffer(uint32_t leaf, uint32_t subleaf,
+                               const struct cpuid_leaf *data,
+                               cpuid_leaf_buffer_t leaves,
+                               uint32_t *curr_entry, const uint32_t nr_entries)
+{
+    const xen_cpuid_leaf_t val = {
+        leaf, subleaf, data->a, data->b, data->c, data->d,
+    };
+
+    if ( *curr_entry == nr_entries )
+        return -ENOBUFS;
+
+    if ( copy_to_buffer_offset(leaves, *curr_entry, &val, 1) )
+        return -EFAULT;
+
+    ++*curr_entry;
+
+    return 0;
+}
+
+int x86_cpuid_copy_to_buffer(const struct cpu_policy *p,
+                             cpuid_leaf_buffer_t leaves, uint32_t *nr_entries_p)
+{
+    const uint32_t nr_entries = *nr_entries_p;
+    uint32_t curr_entry = 0, leaf, subleaf;
+
+#define COPY_LEAF(l, s, data)                                       \
+    ({                                                              \
+        int ret;                                                    \
+                                                                    \
+        if ( (ret = copy_leaf_to_buffer(                            \
+                  l, s, data, leaves, &curr_entry, nr_entries)) )   \
+            return ret;                                             \
+    })
+
+    /* Basic leaves. */
+    for ( leaf = 0; leaf <= MIN(p->basic.max_leaf,
+                                ARRAY_SIZE(p->basic.raw) - 1); ++leaf )
+    {
+        switch ( leaf )
+        {
+        case 0x4:
+            for ( subleaf = 0; subleaf < ARRAY_SIZE(p->cache.raw); ++subleaf )
+            {
+                COPY_LEAF(leaf, subleaf, &p->cache.raw[subleaf]);
+
+                if ( p->cache.subleaf[subleaf].type == 0 )
+                    break;
+            }
+            break;
+
+        case 0x7:
+            for ( subleaf = 0;
+                  subleaf <= MIN(p->feat.max_subleaf,
+                                 ARRAY_SIZE(p->feat.raw) - 1); ++subleaf )
+                COPY_LEAF(leaf, subleaf, &p->feat.raw[subleaf]);
+            break;
+
+        case 0xb:
+            for ( subleaf = 0; subleaf < ARRAY_SIZE(p->topo.raw); ++subleaf )
+            {
+                COPY_LEAF(leaf, subleaf, &p->topo.raw[subleaf]);
+
+                if ( p->topo.subleaf[subleaf].type == 0 )
+                    break;
+            }
+            break;
+
+        case 0xd:
+        {
+            uint64_t xstates = cpu_policy_xstates(p);
+
+            COPY_LEAF(leaf, 0, &p->xstate.raw[0]);
+            COPY_LEAF(leaf, 1, &p->xstate.raw[1]);
+
+            for ( xstates >>= 2, subleaf = 2;
+                  xstates && subleaf < ARRAY_SIZE(p->xstate.raw);
+                  xstates >>= 1, ++subleaf )
+                COPY_LEAF(leaf, subleaf, &p->xstate.raw[subleaf]);
+            break;
+        }
+
+        default:
+            COPY_LEAF(leaf, XEN_CPUID_NO_SUBLEAF, &p->basic.raw[leaf]);
+            break;
+        }
+    }
+
+    /* TODO: Port Xen and Viridian leaves to the new CPUID infrastructure. */
+    COPY_LEAF(0x40000000, XEN_CPUID_NO_SUBLEAF,
+              &(struct cpuid_leaf){ p->hv_limit });
+    COPY_LEAF(0x40000100, XEN_CPUID_NO_SUBLEAF,
+              &(struct cpuid_leaf){ p->hv2_limit });
+
+    /* Extended leaves. */
+    for ( leaf = 0; leaf <= MIN(p->extd.max_leaf & 0xffffUL,
+                                ARRAY_SIZE(p->extd.raw) - 1); ++leaf )
+        COPY_LEAF(0x80000000U | leaf, XEN_CPUID_NO_SUBLEAF, &p->extd.raw[leaf]);
+
+#undef COPY_LEAF
+
+    *nr_entries_p = curr_entry;
+
+    return 0;
+}
+
+/*
+ * Copy a single MSR into the provided msr_entry_buffer_t buffer, performing a
+ * boundary check against the buffer size.
+ */
+static int copy_msr_to_buffer(uint32_t idx, uint64_t val,
+                              msr_entry_buffer_t msrs,
+                              uint32_t *curr_entry, const uint32_t nr_entries)
+{
+    const xen_msr_entry_t ent = { .idx = idx, .val = val };
+
+    if ( *curr_entry == nr_entries )
+        return -ENOBUFS;
+
+    if ( copy_to_buffer_offset(msrs, *curr_entry, &ent, 1) )
+        return -EFAULT;
+
+    ++*curr_entry;
+
+    return 0;
+}
+
+int x86_msr_copy_to_buffer(const struct cpu_policy *p,
+                           msr_entry_buffer_t msrs, uint32_t *nr_entries_p)
+{
+    const uint32_t nr_entries = *nr_entries_p;
+    uint32_t curr_entry = 0;
+
+#define COPY_MSR(idx, val)                                      \
+    ({                                                          \
+        int ret;                                                \
+                                                                \
+        if ( (ret = copy_msr_to_buffer(                         \
+                  idx, val, msrs, &curr_entry, nr_entries)) )   \
+            return ret;                                         \
+    })
+
+    COPY_MSR(MSR_INTEL_PLATFORM_INFO, p->platform_info.raw);
+    COPY_MSR(MSR_ARCH_CAPABILITIES,   p->arch_caps.raw);
+
+#undef COPY_MSR
+
+    *nr_entries_p = curr_entry;
+
+    return 0;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- a/xen/lib/x86/Makefile
+++ b/xen/lib/x86/Makefile
@@ -1,3 +1,2 @@
 obj-y += cpuid.o
-obj-y += msr.o
 obj-y += policy.o
--- a/xen/lib/x86/cpuid.c
+++ b/xen/lib/x86/cpuid.c
@@ -323,232 +323,6 @@ const uint32_t *x86_cpu_policy_lookup_de
 }
 
 /*
- * Copy a single cpuid_leaf into a provided xen_cpuid_leaf_t buffer,
- * performing boundary checking against the buffer size.
- */
-static int copy_leaf_to_buffer(uint32_t leaf, uint32_t subleaf,
-                               const struct cpuid_leaf *data,
-                               cpuid_leaf_buffer_t leaves,
-                               uint32_t *curr_entry, const uint32_t nr_entries)
-{
-    const xen_cpuid_leaf_t val = {
-        leaf, subleaf, data->a, data->b, data->c, data->d,
-    };
-
-    if ( *curr_entry == nr_entries )
-        return -ENOBUFS;
-
-    if ( copy_to_buffer_offset(leaves, *curr_entry, &val, 1) )
-        return -EFAULT;
-
-    ++*curr_entry;
-
-    return 0;
-}
-
-int x86_cpuid_copy_to_buffer(const struct cpu_policy *p,
-                             cpuid_leaf_buffer_t leaves, uint32_t *nr_entries_p)
-{
-    const uint32_t nr_entries = *nr_entries_p;
-    uint32_t curr_entry = 0, leaf, subleaf;
-
-#define COPY_LEAF(l, s, data)                                       \
-    ({                                                              \
-        int ret;                                                    \
-                                                                    \
-        if ( (ret = copy_leaf_to_buffer(                            \
-                  l, s, data, leaves, &curr_entry, nr_entries)) )   \
-            return ret;                                             \
-    })
-
-    /* Basic leaves. */
-    for ( leaf = 0; leaf <= MIN(p->basic.max_leaf,
-                                ARRAY_SIZE(p->basic.raw) - 1); ++leaf )
-    {
-        switch ( leaf )
-        {
-        case 0x4:
-            for ( subleaf = 0; subleaf < ARRAY_SIZE(p->cache.raw); ++subleaf )
-            {
-                COPY_LEAF(leaf, subleaf, &p->cache.raw[subleaf]);
-
-                if ( p->cache.subleaf[subleaf].type == 0 )
-                    break;
-            }
-            break;
-
-        case 0x7:
-            for ( subleaf = 0;
-                  subleaf <= MIN(p->feat.max_subleaf,
-                                 ARRAY_SIZE(p->feat.raw) - 1); ++subleaf )
-                COPY_LEAF(leaf, subleaf, &p->feat.raw[subleaf]);
-            break;
-
-        case 0xb:
-            for ( subleaf = 0; subleaf < ARRAY_SIZE(p->topo.raw); ++subleaf )
-            {
-                COPY_LEAF(leaf, subleaf, &p->topo.raw[subleaf]);
-
-                if ( p->topo.subleaf[subleaf].type == 0 )
-                    break;
-            }
-            break;
-
-        case 0xd:
-        {
-            uint64_t xstates = cpu_policy_xstates(p);
-
-            COPY_LEAF(leaf, 0, &p->xstate.raw[0]);
-            COPY_LEAF(leaf, 1, &p->xstate.raw[1]);
-
-            for ( xstates >>= 2, subleaf = 2;
-                  xstates && subleaf < ARRAY_SIZE(p->xstate.raw);
-                  xstates >>= 1, ++subleaf )
-                COPY_LEAF(leaf, subleaf, &p->xstate.raw[subleaf]);
-            break;
-        }
-
-        default:
-            COPY_LEAF(leaf, XEN_CPUID_NO_SUBLEAF, &p->basic.raw[leaf]);
-            break;
-        }
-    }
-
-    /* TODO: Port Xen and Viridian leaves to the new CPUID infrastructure. */
-    COPY_LEAF(0x40000000, XEN_CPUID_NO_SUBLEAF,
-              &(struct cpuid_leaf){ p->hv_limit });
-    COPY_LEAF(0x40000100, XEN_CPUID_NO_SUBLEAF,
-              &(struct cpuid_leaf){ p->hv2_limit });
-
-    /* Extended leaves. */
-    for ( leaf = 0; leaf <= MIN(p->extd.max_leaf & 0xffffUL,
-                                ARRAY_SIZE(p->extd.raw) - 1); ++leaf )
-        COPY_LEAF(0x80000000U | leaf, XEN_CPUID_NO_SUBLEAF, &p->extd.raw[leaf]);
-
-#undef COPY_LEAF
-
-    *nr_entries_p = curr_entry;
-
-    return 0;
-}
-
-int x86_cpuid_copy_from_buffer(struct cpu_policy *p,
-                               const cpuid_leaf_buffer_t leaves,
-                               uint32_t nr_entries, uint32_t *err_leaf,
-                               uint32_t *err_subleaf)
-{
-    unsigned int i;
-    xen_cpuid_leaf_t data;
-
-    if ( err_leaf )
-        *err_leaf = -1;
-    if ( err_subleaf )
-        *err_subleaf = -1;
-
-    /*
-     * A well formed caller is expected to pass an array with leaves in order,
-     * and without any repetitions.  However, due to per-vendor differences,
-     * and in the case of upgrade or levelled scenarios, we typically expect
-     * fewer than MAX leaves to be passed.
-     *
-     * Detecting repeated entries is prohibitively complicated, so we don't
-     * bother.  That said, one way or another if more than MAX leaves are
-     * passed, something is wrong.
-     */
-    if ( nr_entries > CPUID_MAX_SERIALISED_LEAVES )
-        return -E2BIG;
-
-    for ( i = 0; i < nr_entries; ++i )
-    {
-        struct cpuid_leaf l;
-
-        if ( copy_from_buffer_offset(&data, leaves, i, 1) )
-            return -EFAULT;
-
-        l = (struct cpuid_leaf){ data.a, data.b, data.c, data.d };
-
-        switch ( data.leaf )
-        {
-        case 0 ... ARRAY_SIZE(p->basic.raw) - 1:
-            switch ( data.leaf )
-            {
-            case 0x4:
-                if ( data.subleaf >= ARRAY_SIZE(p->cache.raw) )
-                    goto out_of_range;
-
-                array_access_nospec(p->cache.raw, data.subleaf) = l;
-                break;
-
-            case 0x7:
-                if ( data.subleaf >= ARRAY_SIZE(p->feat.raw) )
-                    goto out_of_range;
-
-                array_access_nospec(p->feat.raw, data.subleaf) = l;
-                break;
-
-            case 0xb:
-                if ( data.subleaf >= ARRAY_SIZE(p->topo.raw) )
-                    goto out_of_range;
-
-                array_access_nospec(p->topo.raw, data.subleaf) = l;
-                break;
-
-            case 0xd:
-                if ( data.subleaf >= ARRAY_SIZE(p->xstate.raw) )
-                    goto out_of_range;
-
-                array_access_nospec(p->xstate.raw, data.subleaf) = l;
-                break;
-
-            default:
-                if ( data.subleaf != XEN_CPUID_NO_SUBLEAF )
-                    goto out_of_range;
-
-                array_access_nospec(p->basic.raw, data.leaf) = l;
-                break;
-            }
-            break;
-
-        case 0x40000000:
-            if ( data.subleaf != XEN_CPUID_NO_SUBLEAF )
-                goto out_of_range;
-
-            p->hv_limit = l.a;
-            break;
-
-        case 0x40000100:
-            if ( data.subleaf != XEN_CPUID_NO_SUBLEAF )
-                goto out_of_range;
-
-            p->hv2_limit = l.a;
-            break;
-
-        case 0x80000000U ... 0x80000000U + ARRAY_SIZE(p->extd.raw) - 1:
-            if ( data.subleaf != XEN_CPUID_NO_SUBLEAF )
-                goto out_of_range;
-
-            array_access_nospec(p->extd.raw, data.leaf & 0xffff) = l;
-            break;
-
-        default:
-            goto out_of_range;
-        }
-    }
-
-    x86_cpu_policy_recalc_synth(p);
-
-    return 0;
-
- out_of_range:
-    if ( err_leaf )
-        *err_leaf = data.leaf;
-    if ( err_subleaf )
-        *err_subleaf = data.subleaf;
-
-    return -ERANGE;
-}
-
-/*
  * Local variables:
  * mode: C
  * c-file-style: "BSD"
--- a/xen/lib/x86/msr.c
+++ /dev/null
@@ -1,130 +0,0 @@
-#include "private.h"
-
-#include <xen/lib/x86/cpu-policy.h>
-
-/*
- * Copy a single MSR into the provided msr_entry_buffer_t buffer, performing a
- * boundary check against the buffer size.
- */
-static int copy_msr_to_buffer(uint32_t idx, uint64_t val,
-                              msr_entry_buffer_t msrs,
-                              uint32_t *curr_entry, const uint32_t nr_entries)
-{
-    const xen_msr_entry_t ent = { .idx = idx, .val = val };
-
-    if ( *curr_entry == nr_entries )
-        return -ENOBUFS;
-
-    if ( copy_to_buffer_offset(msrs, *curr_entry, &ent, 1) )
-        return -EFAULT;
-
-    ++*curr_entry;
-
-    return 0;
-}
-
-int x86_msr_copy_to_buffer(const struct cpu_policy *p,
-                           msr_entry_buffer_t msrs, uint32_t *nr_entries_p)
-{
-    const uint32_t nr_entries = *nr_entries_p;
-    uint32_t curr_entry = 0;
-
-#define COPY_MSR(idx, val)                                      \
-    ({                                                          \
-        int ret;                                                \
-                                                                \
-        if ( (ret = copy_msr_to_buffer(                         \
-                  idx, val, msrs, &curr_entry, nr_entries)) )   \
-            return ret;                                         \
-    })
-
-    COPY_MSR(MSR_INTEL_PLATFORM_INFO, p->platform_info.raw);
-    COPY_MSR(MSR_ARCH_CAPABILITIES,   p->arch_caps.raw);
-
-#undef COPY_MSR
-
-    *nr_entries_p = curr_entry;
-
-    return 0;
-}
-
-int x86_msr_copy_from_buffer(struct cpu_policy *p,
-                             const msr_entry_buffer_t msrs, uint32_t nr_entries,
-                             uint32_t *err_msr)
-{
-    unsigned int i;
-    xen_msr_entry_t data;
-    int rc;
-
-    if ( err_msr )
-        *err_msr = -1;
-
-    /*
-     * A well formed caller is expected to pass an array with entries in
-     * order, and without any repetitions.  However, due to per-vendor
-     * differences, and in the case of upgrade or levelled scenarios, we
-     * typically expect fewer than MAX entries to be passed.
-     *
-     * Detecting repeated entries is prohibitively complicated, so we don't
-     * bother.  That said, one way or another if more than MAX entries are
-     * passed, something is wrong.
-     */
-    if ( nr_entries > MSR_MAX_SERIALISED_ENTRIES )
-        return -E2BIG;
-
-    for ( i = 0; i < nr_entries; i++ )
-    {
-        if ( copy_from_buffer_offset(&data, msrs, i, 1) )
-            return -EFAULT;
-
-        if ( data.flags ) /* .flags MBZ */
-        {
-            rc = -EINVAL;
-            goto err;
-        }
-
-        switch ( data.idx )
-        {
-            /*
-             * Assign data.val to p->field, checking for truncation if the
-             * backing storage for field is smaller than uint64_t
-             */
-#define ASSIGN(field)                             \
-({                                                \
-    if ( (typeof(p->field))data.val != data.val ) \
-    {                                             \
-        rc = -EOVERFLOW;                          \
-        goto err;                                 \
-    }                                             \
-    p->field = data.val;                          \
-})
-
-        case MSR_INTEL_PLATFORM_INFO: ASSIGN(platform_info.raw); break;
-        case MSR_ARCH_CAPABILITIES:   ASSIGN(arch_caps.raw);     break;
-
-#undef ASSIGN
-
-        default:
-            rc = -ERANGE;
-            goto err;
-        }
-    }
-
-    return 0;
-
- err:
-    if ( err_msr )
-        *err_msr = data.idx;
-
-    return rc;
-}
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * tab-width: 4
- * indent-tabs-mode: nil
- * End:
- */
--- a/xen/lib/x86/private.h
+++ b/xen/lib/x86/private.h
@@ -12,9 +12,6 @@
 
 #include <asm/msr.h>
 
-#define copy_to_buffer_offset copy_to_guest_offset
-#define copy_from_buffer_offset copy_from_guest_offset
-
 #else
 
 #include <errno.h>
@@ -35,34 +32,6 @@ static inline bool test_bit(unsigned int
     return addr[bit / 8] & (1u << (bit % 8));
 }
 
-#define array_access_nospec(a, i) (a)[(i)]
-
-/* memcpy(), but with copy_to_guest_offset()'s API. */
-#define copy_to_buffer_offset(dst, index, src, nr)      \
-({                                                      \
-    const typeof(*(src)) *src_ = (src);                 \
-    typeof(*(dst)) *dst_ = (dst);                       \
-    typeof(index) index_ = (index);                     \
-    typeof(nr) nr_ = (nr), i_;                          \
-                                                        \
-    for ( i_ = 0; i_ < nr_; i_++ )                      \
-        dst_[index_ + i_] = src_[i_];                   \
-    0;                                                  \
-})
-
-/* memcpy(), but with copy_from_guest_offset()'s API. */
-#define copy_from_buffer_offset(dst, src, index, nr)    \
-({                                                      \
-    const typeof(*(src)) *src_ = (src);                 \
-    typeof(*(dst)) *dst_ = (dst);                       \
-    typeof(index) index_ = (index);                     \
-    typeof(nr) nr_ = (nr), i_;                          \
-                                                        \
-    for ( i_ = 0; i_ < nr_; i_++ )                      \
-        dst_[i_] = src_[index_ + i_];                   \
-    0;                                                  \
-})
-
 #endif /* __XEN__ */
 
 #endif /* XEN_LIB_X86_PRIVATE_H */



From xen-devel-bounces@lists.xenproject.org Mon Dec 22 22:07:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 22:07:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192352.1511619 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXo3f-0007DK-NC; Mon, 22 Dec 2025 22:07:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192352.1511619; Mon, 22 Dec 2025 22:07:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXo3f-0007DD-Ke; Mon, 22 Dec 2025 22:07:15 +0000
Received: by outflank-mailman (input) for mailman id 1192352;
 Mon, 22 Dec 2025 22:07:14 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vXo3e-0007D6-4o
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 22:07:14 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vXo3d-004qTx-0x;
 Mon, 22 Dec 2025 22:07:13 +0000
Received: from [2a02:8012:3a1:0:ec1c:da36:2cad:42dd]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vXo3d-00Egxd-0u;
 Mon, 22 Dec 2025 22:07:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=nlZoB2tHYgHrKK6bfl+7qKgGgd6imDqoBs6AzgGfFPY=; b=MbzfCEWqAiuEpw3Rz+/ap88tnb
	rzlzTDVBEAXi0UMy+X/Sivc7+9wC/nSHFLLxc2WuOoWiB6OkMrreMtOuifZM6v+Ky5MocqzFGysGC
	ShmK4bWp/spWRHMlpguS5f6M20jnOMgdBvjWVQ2sjKbWONEvFjKr6BZe7FMUKEFoG4Bg=;
Message-ID: <e7229816-ef11-4a2c-8910-3b38f4b0cfa6@xen.org>
Date: Mon, 22 Dec 2025 22:07:11 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] acpi/arm: relax MADT GICC entry length check to
 support newer ACPI revisions
Content-Language: en-GB
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Yann Dirson <yann.dirson@vates.tech>,
 Yann Sionneau <yann.sionneau@vates.tech>
References: <929f7a0fb8f92112d445015726db30122a05eb9f.1766060265.git.oleksii.kurochko@gmail.com>
 <36b89039-97e2-464c-8c1a-25981171b32f@xen.org>
 <9ec24ec4-2b9e-425e-b7bc-59eabdc2f421@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <9ec24ec4-2b9e-425e-b7bc-59eabdc2f421@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Oleksii,

On 22/12/2025 11:30, Oleksii Kurochko wrote:
>>> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
>>> index ee75258fc3..a0ccda14bf 100644
>>> --- a/xen/arch/arm/gic.c
>>> +++ b/xen/arch/arm/gic.c
>>> @@ -418,8 +418,18 @@ unsigned long gic_get_hwdom_madt_size(const 
>>> struct domain *d)
>>>   {
>>>       unsigned long madt_size;
>>>   +    struct acpi_subtable_header *header;
>>> +    struct acpi_madt_generic_interrupt *host_gicc;
>>
>> For both variables, you don't seem to modify the content. So I think 
>> they should be const.
>>
>>> +
>>> +    header = 
>>> acpi_table_get_entry_madt(ACPI_MADT_TYPE_GENERIC_INTERRUPT, 0);
>>> +    if ( !header )
>>> +        panic("Can't get GICC entry");
>>
>> I would feel happier to use panic() in this function if 
>> gic_get_hwdom_madt_size() is __init (its only caller is during boot)).
> 
> I am okay with making gic_get_hwdom_madt_size() as __init.
> 
>>
>> An alternative is to stash the GICC size in a global variable.
> 
> We also could to return 0 in the case of ( !header ) and then check if 
> the size is zero or not in estimate_acpi_efi_size(),
> and if it is zero then just return -EINVAL. Does it make sense?

This would also work for me. I will let you chose between the two 
approaches.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Dec 22 22:16:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Dec 2025 22:16:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192361.1511629 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXoCv-0000RY-GU; Mon, 22 Dec 2025 22:16:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192361.1511629; Mon, 22 Dec 2025 22:16:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXoCv-0000RR-De; Mon, 22 Dec 2025 22:16:49 +0000
Received: by outflank-mailman (input) for mailman id 1192361;
 Mon, 22 Dec 2025 22:16:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Yff0=64=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vXoCt-0000RI-Pa
 for xen-devel@lists.xenproject.org; Mon, 22 Dec 2025 22:16:47 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e5c943ef-df83-11f0-9cce-f158ae23cfc8;
 Mon, 22 Dec 2025 23:16:44 +0100 (CET)
Received: from SJ0PR03CA0334.namprd03.prod.outlook.com (2603:10b6:a03:39c::9)
 by LV8PR12MB9134.namprd12.prod.outlook.com (2603:10b6:408:180::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.11; Mon, 22 Dec
 2025 22:16:39 +0000
Received: from MWH0EPF000971E8.namprd02.prod.outlook.com
 (2603:10b6:a03:39c:cafe::31) by SJ0PR03CA0334.outlook.office365.com
 (2603:10b6:a03:39c::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.11 via Frontend Transport; Mon,
 22 Dec 2025 22:16:30 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 MWH0EPF000971E8.mail.protection.outlook.com (10.167.243.68) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9456.9 via Frontend Transport; Mon, 22 Dec 2025 22:16:38 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 22 Dec
 2025 16:16:37 -0600
Received: from [172.19.65.57] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 22 Dec 2025 14:16:37 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e5c943ef-df83-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aULm5CkdeSeXJkQQZoaSyDbchRpZxps+kIdaQYsKNM0CG3MeovWMgiEerWndyAWDeXbB3xT05wqXizVlDAv8/htGAJkQ7n6S6+Ggz25tO/lASikt6slfKPgnU/ey4U3ZlKDS/HK7tKMwXz0A86IuTiPqyyfbuOkehxmVSuUnV51UKG03j37T7CuLf1nlyHDOrSJEZM4Yn8eI4j/vzV7l97o2IX1esmO8Jc7rSMGRbwN6l/t9E823ZjWnfMXv3Fy7Y9Ch3XZPyrQMLTsAsiCXu6od0GS4v1zH7VoVlD1PwmiOs86E1nANOvItPxTpkFzO1O2v0XIonE84RJP3a1/4hg==
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=qsIWPT9WDjEvu3Aq4Cc0UHAv0xFUY0brzLwai+P/4VA=;
 b=JA1YBiqtbdpcGYTg7E87tpUO3E4s+11ajqDvfp3wxhMHohNnZ3lLlmTR199U3OvsWPgZUEYW1tllucIis6tpnolkKRpB2ZVO6o/fRZKs3/mle7qAu9xAQH5X7y1MdMREfT1hmq1JyK5y4i/JoQ4oGJXihYRi1LsWvl/j3k92qHeOeTJXyvXnTRu3vPR3C7WaWTppoo9FN7Ho6KxwB2H9up2BNBwUZHERt/4grV2Iiye15Br69F5Iiu7eYppdyOzacL1pua/Nw2mMH1erHPFYA5mGxsRYjb9VtkRXykpQwCRCLh1qMW0p5O2vEC/4cPXrxazUFC736WNHDw4OEp06nw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qsIWPT9WDjEvu3Aq4Cc0UHAv0xFUY0brzLwai+P/4VA=;
 b=yHYc/6kOqR9ZsOyWyDsw30dDBSyT7EhuDvRdbw/for7kdCxnmnVt+IMRTDs1Rf9mgjNlVh4eup4+R+BTI9ZoE3AETkBv7LOtBw45oSMM0VfQxvzlhcf/Cujyr43UM/YnjDnjEH4C0o2eB5SHmpYTIzYW1+HCdyTcIDWR9SRtDg0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <8941cf0c-fac4-4406-b2b5-429a55c1d088@amd.com>
Date: Mon, 22 Dec 2025 17:11:07 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] console/consoleio: account for xen serial input
 focus during write
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Victor Lira <victorm.lira@amd.com>
References: <20251204233211.980862-1-grygorii_strashko@epam.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20251204233211.980862-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000971E8:EE_|LV8PR12MB9134:EE_
X-MS-Office365-Filtering-Correlation-Id: 328cd818-9ea6-4f98-fe27-08de41a7c6fe
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MkhUVGk0dXorbTFqTHpzR2RqelF6NE8xTEp1Zk1WZkZVN3RGVlE3WHY2Uk1P?=
 =?utf-8?B?M0pXS3dwNzlEUk8wVUY5bHZuMFNTeHhEcTBCMDViQ2xmN1BYWWdFVnJDUkk3?=
 =?utf-8?B?M3h3cnRMcWc0Vks1SjA5Q1Fha2VwWXEzcElkSmg5RUZMKzVYekJPdlFYbklE?=
 =?utf-8?B?dkN5c0h4U21UVXpPZWI1UnhoSzhmdnhSeGN3WVFSanVEOTFPZjZsUzhOQm1q?=
 =?utf-8?B?MzlHSW4yOUJpK05XUEtOVUdYdU94S0VzSGRqWFpDaHFBeit4V1dSUnpsaTJC?=
 =?utf-8?B?WExzSUg1MXJCSERnL1A0YkU2azdua0tvS1YzaFdoSjFHV1o5dnlQemNWWENS?=
 =?utf-8?B?c0lZWEJuWEtld291QStXR0xaTmlRSi9ySkVoT2JpakI1Q3hXcDBtT1ViQ25U?=
 =?utf-8?B?VGQ0anVucTZiR2lwU2hUemFISmRtVURzTGJaTHE1TVNaOHladDJJdXAyK0Er?=
 =?utf-8?B?Ykdob1g1Tis4elh5V0hqeDZZd0dkckxGVlVvSjVrbmJsM2RGT2ZraU1NdzZj?=
 =?utf-8?B?OXdiSGU4Z3V3MWdIR01NS0RXNkJEREVjMGNpTHRwNy9qT3NwLzZzVkxNY3ow?=
 =?utf-8?B?Nmh5N3o4QVp4emp5TXVoN0QyQ2ZYU0xXdjliaGhBTjgxU3NReU1JY3RYcEUr?=
 =?utf-8?B?TlIzOHFLZnFqTDRZQzd1NHQ5L1pFajlWMm9ycTl2Yk9CMFczRU1ndXF3aWp5?=
 =?utf-8?B?d1B4WmxseUFaZEZZdHNtZVlxVzNiblBDbFBmVThFV1VLSkVnN3pkOTRIOXZk?=
 =?utf-8?B?STlaMFIrQ2FlVFg3OUpLdG5NVjdIeElzU01TWENVdXB6SDhCVHRpcWNPVW8r?=
 =?utf-8?B?OUNkLy94QjdYd2VDUVVUZ1ZoenBudmoxZGdNUWk2NktzSWYzc09pcjQ5bndj?=
 =?utf-8?B?NS9xY2pGWk51QkR2SFRyai95ZFpCOFR6aXYxRFFtQzU2VW9IWFFnOFFmK2ZN?=
 =?utf-8?B?TG5uMUI5R3VpcjFIcTNneE02SmpPbG1CY0xmR2V1UmFIa29mbnZtVk9FZlht?=
 =?utf-8?B?SDhPOU02UjZzNHpDdnoyQVBxZFB1UU55VkNOOWp1VmcxbGVVaVlTcE12UHB4?=
 =?utf-8?B?RzRBR2RpUTZ3VzVjMkF6d1prNDluU3BOdnJJOTkwYXdnU29aeGtwcEwvQW55?=
 =?utf-8?B?Z1U2TGJjOXlXMXhUYUVGcys2bmh0cHlPTGNqOGVscEtRWjJRYzVhOWRvUEtJ?=
 =?utf-8?B?V0E4MWVnbW05d2ZvKzZneE1tWUdEUWFrWDVkZDN3KzVpNWx0UzVWT29ibG0z?=
 =?utf-8?B?ajNHMkwxSkJLWTM5eE4zaDZLNUZnV21aeExnNm9raFJtdTBRZGNHcWdsOWVm?=
 =?utf-8?B?QnROdDVOL3BlNzlQZ3JFY1JVbFRSSmNHNUhXZFN0ei9ZdVBjQ3M3TmVXMytY?=
 =?utf-8?B?SEk4dGlTczV1V2w5ZVJJU3lYREFQQm1pREJJQlBpVnBmUVAwR1BXMFdHd2tk?=
 =?utf-8?B?Z0xFZGMxTytMeHhuOERGWmtiZ2dDTi9GNGpBNXYvQWtRYlRaYTF3ZW1lRTJS?=
 =?utf-8?B?MVovRUJiamxlek9oNFhoMW1yZUsyQ29vbGJRRVVjaXlSQTFoZDl1YWxCanls?=
 =?utf-8?B?TTNUVGwwTUY2RUg2NXJESnJoNEowZzBYR292emNLVFN6Wkp4K2xtK0pWdWky?=
 =?utf-8?B?U3A2OEVVeFV3eERBMkZkL05yR3ovRmkvbHBHTWJWT1k5K3RjcGdFcXNjNHdK?=
 =?utf-8?B?Smd2bEFpd3FvaU5WMVV4ck5OTDVDRUZvRnduazdOTGFmNVZiL0o2Uitjczhh?=
 =?utf-8?B?TTMyekpVRkU5eFJPMjlGOXFKV2IyNlRGTFg4aE1zcFZzMFVMRVVBbnZkNHdv?=
 =?utf-8?B?c1VLUk9kRXNyOFVReVoxVkg1ZkRHek1nMnNERzF4NXlITU1aeWdFaWh5MXB1?=
 =?utf-8?B?WTNXTTJUc1hDTmM1TC96M2dFK05lSS9NVnN0RklhTXJwREZYdG5NVlJEZ3ln?=
 =?utf-8?B?TkNiUUl1SEZOTUVmcnErc2tNUnVRdDhmcFJkcmFEUkwrSTF2cDVIRmNiSjNT?=
 =?utf-8?B?bDZtWWlsWGovbHpFOUNua2hPVGpBK0pZaXo4VTRlQlp4WE80YzBNWFJuNURM?=
 =?utf-8?B?akpkT2dwdnc2MjQ0UzhqMTNkeGhRTkVoOXlRL0dkbWEyR3E0aUwrTlhVNmJN?=
 =?utf-8?Q?kkAo=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Dec 2025 22:16:38.5796
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 328cd818-9ea6-4f98-fe27-08de41a7c6fe
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000971E8.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9134

On 2025-12-04 18:32, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> When 2 or more domains are created and:
> - one is hwdom with "hvc0" (console_io) console
> - other DomUs with vpl011 or "hvc0" (console_io) console
> console output from hwdom may mix with output from other domains.
> 
> Example:
> [    2.288816] Key type id_legacy registered
> [    2.291894] n(XEN) DOM1: [    1.016950] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
> fs4filelayout_init: NFSv4 File Layout Driver Registering...
> (XEN) DOM1: [    1.018846] audit: initializing netlink subsys (disabled)
> 
> This happens because for hwdom the console output is produced by domain and
> handled by Xen as stream of chars, which can be interrupted when hwdom is
> scheduled out and so, cause console output mix.
> The Xen consoleio code trying to mimic serial HW behavior for hwdom
> unconditionally by sending available data to serial HW on arrival.
> Xen consoleio code does not account for Xen console input focus, comparing
> to emulated serial hw, like vpl011, which does the same for domain with
> active Xen console input focus only.
> 
> Switching console input focus to Xen improves situation, but not enough.
> 
> This patch changes consoleio code to account for domain with active Xen
> console input focus - console output will be sent directly to serial HW
> only if domain has active Xen console input focus. For other domains -
> console output will be buffered and sync on per-line basis.
> 
> Example output:
> (d2) [    4.263417] Key type id_legacy registered
> (XEN) DOM1: [    4.658080] Advanced Linux Sound Architecture Driver Initialized.
> (d2) [    4.277824] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
> This causes random multi-domain tests failures due to inter-domain console
> mixing which breaks console parsing checks.

Part of the motivation here is that in a downstream, I've enabled domUs 
to use the consoleio hypercalls with Hyperlunch to remove dependency on 
xenconsoled.  Grygorii can confirm if it also affects ARM sometimes.

> 
>   xen/drivers/char/console.c | 8 +++++++-
>   1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index a99605103552..391cefc1a7c6 100644
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -733,6 +733,8 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
>   
>       while ( count > 0 )
>       {
> +        struct domain *input;
> +
>           if ( kcount && hypercall_preempt_check() )
>               return hypercall_create_continuation(
>                   __HYPERVISOR_console_io, "iih",
> @@ -742,7 +744,9 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
>           if ( copy_from_guest(kbuf, buffer, kcount) )
>               return -EFAULT;
>   
> -        if ( is_hardware_domain(cd) )
> +        input = console_get_domain();
> +

Maybe remove this blank line?

> +        if ( cd == input )
>           {
>               /* Use direct console output as it could be interactive */
>               nrspin_lock_irq(&console_lock);
> @@ -783,6 +787,8 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,

In between the hunks is:
     guest_printk(cd, XENLOG_G_DEBUG "%s%s\n", cons->buf, kbuf);

So a background dom0 would get a d0 prefix and print at debug level.

For ARM, vpl011_write_data_xen() does:

if ( d == input )
     printk("%s", intf->out);
else
     printk("DOM%u: %s", d->domain_id, intf->out);

I think d0: is okay for background printing, but we'd need to up the log 
level for at least hardware domain.  Maybe we want a properly to control 
the level for each domain?

I think the changes made in this patch make sense.

Thanks,
Jason

>               spin_unlock(&cons->lock);
>           }
>   
> +        console_put_domain(input);
> +
>           guest_handle_add_offset(buffer, kcount);
>           count -= kcount;
>       }



From xen-devel-bounces@lists.xenproject.org Tue Dec 23 08:15:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 08:15:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192403.1511639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXxY8-0004CH-Hg; Tue, 23 Dec 2025 08:15:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192403.1511639; Tue, 23 Dec 2025 08:15:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXxY8-0004CA-Ef; Tue, 23 Dec 2025 08:15:20 +0000
Received: by outflank-mailman (input) for mailman id 1192403;
 Tue, 23 Dec 2025 08:15:19 +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
 <SRS0=I0w9=65=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vXxY7-0004C4-0q
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 08:15:19 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8327db84-dfd7-11f0-b15b-2bf370ae4941;
 Tue, 23 Dec 2025 09:15:17 +0100 (CET)
Received: from DS1PR03MB7871.namprd03.prod.outlook.com (2603:10b6:8:21f::17)
 by SA2PR03MB5913.namprd03.prod.outlook.com (2603:10b6:806:11d::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.11; Tue, 23 Dec
 2025 08:15:13 +0000
Received: from DS1PR03MB7871.namprd03.prod.outlook.com
 ([fe80::3a7e:e6ed:f8e9:9fb3]) by DS1PR03MB7871.namprd03.prod.outlook.com
 ([fe80::3a7e:e6ed:f8e9:9fb3%7]) with mapi id 15.20.9434.009; Tue, 23 Dec 2025
 08:15:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8327db84-dfd7-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HUhFDWBK8ZFmjmCNbe0gjAxPljluajQxUTTToHrMcqG2VEcscnm6QMYWUmg+QviuaH6onvW/Yju9QTf6vRZ1UFZWitsvrEEZt+EnUZENcpnRy2wGSxKtW/EtwyjsJg/fE//giWTx1B6Yhi0Ev36RFFOLqm1OIq/EmBH+TVsxwqqyxXedYmi580/F26izA36vjYh0nEX2X8hfT9p/SqIZgghJiTDOc7sz2tcmrZXYxq/POT4wWYAp3gErPazppRvXRr0L5Hq4VRu4lbpEQEc795gntk4XLDwyFQafaS6DHhh46U5nuQLDslU6Vz8DvLodqFw4K3XZqCP74d2X/LRCOw==
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=9Lg6YZh7pE0TJ+LHAdARxWRraAx+sb0tnkDjhERzLs8=;
 b=Sinp5HVgDxB4vyIHOSalOutCrkUn9TsAYqlinez/QfheqLpCjzJRT3kUdj1Jec8sWwIdxCFUI+jhSwpxviPMA+MelHcybWA1I/gRDSbg+fSKwogO9VOc2/PQ65H+fLR2ihlgVmao05QxMoEQwVsTC0xxRUtZjAnBTQzM2qCPCYU2wWSrp9W+hTKvc2xNv1FfAqfv4UaiW85hCbYX0tpDItc1SxPY04uHD59qRFNapLzvmZPut7G1r3WhTanC5BqopzVCDp5Wm09rXJSjL3+zr+lQucFfX5evckRwixqahxt+WUd9xd2XNqXsRN0NJWCIzkwHYS/2+YlY6UMaZFuDTg==
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=9Lg6YZh7pE0TJ+LHAdARxWRraAx+sb0tnkDjhERzLs8=;
 b=Myw+M+Ef0LTVMUWkwcj5I2+p0ZbQ3dB3jNOEs3q4Wrn0D06hY1igANOHl7wBn6q6FbVE2zBV7RMkLGV9rlUSrbnQ0XZ0npibgU1VEUsy12uQzsetP3lJ30ziUsMHfWPnuynIvPbMXRN5ygS0iccfha1F7XC+G15rPbbM8IpJVKU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] xen/mm: move adjustment of claimed pages counters on allocation
Date: Tue, 23 Dec 2025 09:15:07 +0100
Message-ID: <20251223081507.29325-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PAYP264CA0029.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:11f::16) To DS1PR03MB7871.namprd03.prod.outlook.com
 (2603:10b6:8:21f::17)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PR03MB7871:EE_|SA2PR03MB5913:EE_
X-MS-Office365-Filtering-Correlation-Id: ea090cec-c62a-42ff-1ca7-08de41fb65dd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SUpJRUd0ek44SkR0dmd5TGN3R0IwNzVZYVE5SFYxSGt5QzBDSHc0YW1RMDAx?=
 =?utf-8?B?czd3Q2xacHlUTnc1QjFDNHFyU1BxZE5tZGRsNHVvRlpIeDRPMytmQTVHc3d0?=
 =?utf-8?B?VlFwdXdMRUdweURrOWNBWGU3U09BcVpnbHlpQ2VHRmIyeEFsUUNEVXovU1g5?=
 =?utf-8?B?UDg1RTBUWm1jOVZadmtxT3MyVFhHWGJpYUlmWGZORHdNQzR1UVRvUkZLQk5R?=
 =?utf-8?B?czRRWFBydGpJM3RJNHFxZk9BYmQyTDRoalBHMDRzYW42Tm9nUDhwR1lNdThT?=
 =?utf-8?B?K21BaGlRcE5YUzhLamgxVjRsZ2N0NlkvWXRIVjBCaldZcTFKc2FkeG5leHdX?=
 =?utf-8?B?eTl3eDQ1ZzExS2dmK2RqUmVWU0VVS2ozYlFtTXNWQWl4ajhicTNMMXVPVmdz?=
 =?utf-8?B?LzJjRGN3RlpSWDdyckVpdzZ6SnQ1T2NzNDI1TkhySHdKdGc3MDIreWFoTXVB?=
 =?utf-8?B?dzIwSWNxc1ZNNjhuMFlucDgyWUxyQm9Od0VJTm9xMDhFb0U2RkdEVXJ0VFho?=
 =?utf-8?B?aTIrb0JNOFY1NGFUL3Z0cHRPWm81SytSNHc5Y1BNdkNQdURvU1FmSGdTU2FR?=
 =?utf-8?B?VXdrbDRqVHcreXFjcnJ0MmpMNU9BYVgrWW1EbklHK0krMnE1ekJiTlN4NjZK?=
 =?utf-8?B?QzlRNzA5ZDRoZEVzZzFqRUgwcXltUHltQ0ZNcTh6RUx1OG5VWDFqMXpHVkZU?=
 =?utf-8?B?TWZNdFBQc2NrNGlCbHIwbWFrT3hPV1NLMHVCWE44MnFGZUR3b0xaVnJYQVQ3?=
 =?utf-8?B?Z1h2TnlzcmJETDhrRm90QWwyNmVOMVE0RjJFM3NTRVZxV1dGckk1R3dudW1q?=
 =?utf-8?B?OFQ3L1FkQ2RvVE1BNlBqTlRVOW5xRTZKY3NXYXhRTVNJZFBVWjJoUWJsbGdW?=
 =?utf-8?B?ZEY1b3JoSTdhSG1EMzdpaUlUVjdDSXc0OFA0R21XSG5jQmQzd1prZ0t0NkVL?=
 =?utf-8?B?cGNwYzQ4SXdvbU1XcDY1c0N3akFjYkdHMzlVT1gyeUpNYWk3TmVNWVNuU3B3?=
 =?utf-8?B?eDhXOTVLTzJxcU81MXYwR3IvRno1enBNQ04weVZ2RTRDWHRnd25qU2pJTDNs?=
 =?utf-8?B?ZE5ib0VDTUVBN0xDNkxaYlJ1dVJWb2NadDdXZkZkam5RcWNWZ29yRXZhTmd3?=
 =?utf-8?B?amZrNnJyanZxNEZVRU5keDBhK1hWV0ltZkp4L3U4OHBVb2luQnZYMHcrbld6?=
 =?utf-8?B?RHpNYlNROHNqS1FPZWZRa25pejZzZ1c5RlJIb1BNeUhEL3R2WmJXb1htaXJy?=
 =?utf-8?B?dnl5emlGNU9IRW1lbVVLVlVpMWxEbGhtNGtvSmhFbEpPWStOUlpWMjlVOHF6?=
 =?utf-8?B?U0RlbFZ5M0YvdEZqL3dNUHduYXVINEdwc0FXbU4zOURKVDdaOHRjNlE0NDFh?=
 =?utf-8?B?c0drbnRWVWpxbHpVcVQwZFFtNFZYY05zdlN2aGw5SEo4V1JGN3QzdHRCVWQx?=
 =?utf-8?B?b0pjQTZXQTRCTnVaR21iVXBZNHJuWndVNEJiRlVTUThrQXp5VkFUKzViVXVP?=
 =?utf-8?B?aWFCZmpXRWNsNmJxeDYvalBlVEYyeTBmYnJHT1BiNUNrRUNqVnVCdWlsbFBB?=
 =?utf-8?B?K2dNdVlyVlorSko4WHdsMUJiUmJsamthck1tZHJGbU5BZythRUd2UjVGOFRv?=
 =?utf-8?B?Ti82ZHhJaW9DV0t2Q1VwbitNeFVqTGoyb05KcWNYZ21rNHlNa1hvSm1TNUxB?=
 =?utf-8?B?N2FIdllHTE9LOUdJMHZ2MEVoekhlQU5LRkxtOGhsaVI2cEdHcXhURkVpMlJw?=
 =?utf-8?B?dFBIRmlwREpGR09nd1RaSmI2UXZPa2pQU0FwbER5UUtEQmZwZS83a2Fxd0Rk?=
 =?utf-8?B?SW5iR01WZHZHWnd0VE5LRFZhWE9hWlQ4Y284MWpWQUVsVW92VHZ5K01Xd3RQ?=
 =?utf-8?B?dzdLaG1XVEIwdEZ6UkhlbExES0JJTlJzem9kRzZoZU5zdG9HUU1PSU4wREFG?=
 =?utf-8?Q?rrmYQDGQHthuQg3w9owR9GAi8xYuNYp4?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS1PR03MB7871.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MzIzSHZWRWkrS2dwbEZHVW92V3VFWWxTMUsrbkdDRnJRZ0V0Vk4wb0p5NHFY?=
 =?utf-8?B?UTNmTDhUc1hMS2F4ZGEzOG0ySW5oUmVuUDRjVVNiN3JWdXM4MnZtSmhjM2tP?=
 =?utf-8?B?S2ZUalF4Q055UVQ3TG0xNTRkcUlObDRQcVVrL1hhNUdYOE1XOVMraTgrNFJh?=
 =?utf-8?B?bFNGMjNmemRnVGkwZWxWcWs5MDN0RXlCanZySVJBdG43RWxJQ3NjOU5yQVBC?=
 =?utf-8?B?Mm8wR0l3TnFkNzZhMFJBMy85ak1QRFY1R2tJZkpFZGp5eFVGdDhiM0pTYzJV?=
 =?utf-8?B?aE82b2hya2o1bDBCOVUzUWw5c2N0SS9aNXBNN2FjQmtYcEtDTmg5OVRwV2h5?=
 =?utf-8?B?TVptd0xWcGNROWpqMzBHZkNVNXllaVREWDdEajdhVVhxc1lCNnJqRlYzS0xB?=
 =?utf-8?B?MzVpVk9RTjJraTYxcjZEcnNKL1BSVHA3T2VUanRDRXdSSHVjdkRGY013Z2Y2?=
 =?utf-8?B?bVprMFBwMWhnNm0yWGwyMHNLeDh6ZU9MMDRWSURhYnlUVUs0ZmMrbHoyeHp1?=
 =?utf-8?B?Vy9DQzkwNW93YnVzUGU3OWI3dFlqbHMvT1Nvcm9MTHBkYTJTZ0xUNzhRSjN3?=
 =?utf-8?B?THVzaEVTOFNtQzVaMVNKd3Zjd0JqV0RCRzNkS1doUS96SmRTTTBFTmo1SVZV?=
 =?utf-8?B?NUxYYlRvYTQxNXA2eHpHMDExcTZza1RWbk5mdG1ONmVkb0JBY1RoTno2T1Vy?=
 =?utf-8?B?eFE3VXZrN09DMUJMUDVnQmtvU01jcmcwOExpcVc3d1hLcElQS2k4Y3FLMW5G?=
 =?utf-8?B?cFphdUZPa3d2OVB1c2pwKzJkWGpFZi9POXRXUnZTL2p1Nm9vWkliSXFaMkRw?=
 =?utf-8?B?TTdtRXAvbEQrekI5K1Q4dVlBV2k3ODZqblR6REJMNC96ZGxzUzlzZDd2Uklo?=
 =?utf-8?B?M1FMalhKZ09WUWhCc0piUlkxZmU3OWhLMm5wQ1MySWxmZW5DT29uKzUzQXFX?=
 =?utf-8?B?TlZxUXUrS3JpYkVNd3dmL0M2bzFpbWtlN2cwbzVtQWJISlBYUHo1YTRwc2VY?=
 =?utf-8?B?d0VaMjBPaEZwd1U1ZXNwWFd4cjNnaFRiNjIxNTdpRmVpZDdpTUtzd0pPWU9v?=
 =?utf-8?B?NnZURWpyOW81TzcvMzZsVGxTNTd0L3FsT1NweXBtUGR5eGJiQTROMk8zQTg2?=
 =?utf-8?B?NWJBTW9DWklybllRMDNXMC80ZTBxaFZqZ0lvZXREencrdCtxdklhZ3BQbDBN?=
 =?utf-8?B?R0lyWGRIb3U4Y2xFbXhpUzZQMzhNSm12dkZiT3BmNHdNR1BnVU9qZjFyMG94?=
 =?utf-8?B?dUF3ZjVBbVRmUXFYV2xVOFU2WGVZTTE4am9WWXFYcExZcHgwSmNrSU1ZVUx3?=
 =?utf-8?B?ZFRaOGsyZ1NQdXNiZ2szL1VGdnQ2bnVCaUVwMVV0Ujd5dU15Um9oazgrRUNO?=
 =?utf-8?B?OVNsaTRRZis4ZmJXWTdzY1BlQlRRNXJMa1JLSDFReHVGa3dMb1pCdU9jVDd1?=
 =?utf-8?B?NjVZb01YaFlQOEx2ZHhwclBBTFNnS2V2RUE1RElsSlozZmVSVlhxL0ZSc3hZ?=
 =?utf-8?B?QytIZ2MrTkUvQU5UM0I4M0xrN1c4R3JnL3ZEYS9kMWRmNlBHVDBDYlU1a0Vl?=
 =?utf-8?B?ZkFlY08rNmJtaDhPMFVqVnVGRW5POWFtNlN5QzFrdHJUUS9aQ0hJV3RnVFV4?=
 =?utf-8?B?aExQbk9BSXAvQW9jbE42Wm5BVUVaY09TNjcrWUVpUE10TU5SNUdsL2RjWFNS?=
 =?utf-8?B?Rkx4SGhVOGdqc3VJdHd0dmFVR2hFcXZkQzRsRTczMklLNklLc2V4QlJiMzV3?=
 =?utf-8?B?ZEJLMDZvbnVrcVZkZkdSdmNjOEhrMENQYmpQdzdnKzZhc1kySWVja3FweHl3?=
 =?utf-8?B?TlBTMlNqUWdPM0gzWk9tTW1BRUo5RlBrSjJHd3l4SXkvR2RtSlpTdFMvcFFq?=
 =?utf-8?B?dWJzSlBldzRSQTV0Vi9OZGZzU29aUU1IRDdYbitaM0lNOVBDbTlPREpBcXdB?=
 =?utf-8?B?RDdMWWgrdG00b3hlODZDWEFHZXRpWm9iWUgydThDb1N6ck1INnp6NG44TC82?=
 =?utf-8?B?Nm82cGRJMG8wTkR6ZVVSVnhnYkRlZnB4Ymk3RE1xNHB4dEd1M1BxV2s2WFB5?=
 =?utf-8?B?eTZvR1hEanB0TkZkRWtzTXNHMnp1VkhhZkhaSnV5UTM3Zmc0VUJkRG4yWTBT?=
 =?utf-8?B?a0JaOGVOM2ViUjl0YmsvYWVheVJGYi9SZ2VTZXpTeXRyOHZORVVrZzBneG5F?=
 =?utf-8?B?SjhWS2R5aWs2aHFGVHRLaVBmWjR0WkpJT3lPRklGWVJLNDhuUVNOWE9lWUl0?=
 =?utf-8?B?KzZDK1JvY09CeWt2N0M2ZXRSbnduUjhIOEl3dG03TFRUa3B2WW5UcnFuaTA4?=
 =?utf-8?B?clgxZHFHK0hMWWN6cjZwT2pMQ080S2dlc3l4YzBQTEhjYXZVYm9iQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ea090cec-c62a-42ff-1ca7-08de41fb65dd
X-MS-Exchange-CrossTenant-AuthSource: DS1PR03MB7871.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Dec 2025 08:15:13.6828
 (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: EgVFhlLWjtoj4BNaTD/T4LMu/gZCWzbxwzEhb1R45U6Mfy6ZpjZdGHKZOtAES7TnIk0aqTkmdZRauvQHcPHQHw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5913

The current logic splits the update of the amount of available memory in
the system (total_avail_pages) and pending claims into two separately
locked regions.  This leads to a window between counters adjustments where
the result of total_avail_pages - outstanding_claims doesn't reflect the
real amount of free memory available, and can return a negative value due
to total_avail_pages having been updated ahead of outstanding_claims.

Fix by adjusting outstanding_claims and d->outstanding_pages in the same
place where total_avail_pages is updated.  This can possibly lead to the
pages failing to be assigned to the domain later, after they have already
been subtracted from the claimed amount.  Ultimately this would result in a
domain losing part of it's claim, but that's better than the current skew
between total_avail_pages and outstanding_claims.

Fixes: 65c9792df600 ("mmu: Introduce XENMEM_claim_pages (subop of memory ops)")
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Arguably we could also get rid of domain_adjust_tot_pages() given what it
currently does, which will be a revert of:

1c3b9dd61dab xen: centralize accounting for domain tot_pages

Opinions?  Should it be done in a separate commit, possibly as a clear
revert?  Maybe it's worth keeping the helper in case we need to add more
content there, and it's already introduced anyway.
---
 xen/common/page_alloc.c | 44 +++++++++++++++++++----------------------
 1 file changed, 20 insertions(+), 24 deletions(-)

diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 1f67b88a8933..f550b1219f87 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -515,30 +515,6 @@ unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
     ASSERT(rspin_is_locked(&d->page_alloc_lock));
     d->tot_pages += pages;
 
-    /*
-     * can test d->outstanding_pages race-free because it can only change
-     * if d->page_alloc_lock and heap_lock are both held, see also
-     * domain_set_outstanding_pages below
-     */
-    if ( !d->outstanding_pages || pages <= 0 )
-        goto out;
-
-    spin_lock(&heap_lock);
-    BUG_ON(outstanding_claims < d->outstanding_pages);
-    if ( d->outstanding_pages < pages )
-    {
-        /* `pages` exceeds the domain's outstanding count. Zero it out. */
-        outstanding_claims -= d->outstanding_pages;
-        d->outstanding_pages = 0;
-    }
-    else
-    {
-        outstanding_claims -= pages;
-        d->outstanding_pages -= pages;
-    }
-    spin_unlock(&heap_lock);
-
-out:
     return d->tot_pages;
 }
 
@@ -1071,6 +1047,26 @@ static struct page_info *alloc_heap_pages(
     total_avail_pages -= request;
     ASSERT(total_avail_pages >= 0);
 
+    if ( d && d->outstanding_pages && !(memflags & MEMF_no_refcount) )
+    {
+        /*
+         * Adjust claims in the same locked region where total_avail_pages is
+         * adjusted, not doing so would lead to a window where the amount of
+         * free memory (avail - claimed) would be incorrect.
+         *
+         * Note that by adjusting the claimed amount here it's possible for
+         * pages to fail to be assigned to the claiming domain while already
+         * having been subtracted from d->outstanding_pages.  Such claimed
+         * amount is then lost, as the pages that fail to be assigned to the
+         * domain are freed without replenishing the claim.
+         */
+        unsigned long outstanding = min(outstanding_claims, request);
+
+        outstanding_claims -= outstanding;
+        BUG_ON(outstanding > d->outstanding_pages);
+        d->outstanding_pages -= outstanding;
+    }
+
     check_low_mem_virq();
 
     if ( d != NULL )
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 23 09:55:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 09:55:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192423.1511649 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXz6k-0007k6-CT; Tue, 23 Dec 2025 09:55:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192423.1511649; Tue, 23 Dec 2025 09:55:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vXz6k-0007jz-9a; Tue, 23 Dec 2025 09:55:10 +0000
Received: by outflank-mailman (input) for mailman id 1192423;
 Tue, 23 Dec 2025 09:55:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wtgv=65=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vXz6i-0007jY-Hz
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 09:55:08 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 74ea3a69-dfe5-11f0-9cce-f158ae23cfc8;
 Tue, 23 Dec 2025 10:55:05 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b734fcbf1e3so933749666b.3
 for <xen-devel@lists.xenproject.org>; Tue, 23 Dec 2025 01:55:05 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037a604f5sm1379253366b.11.2025.12.23.01.55.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Dec 2025 01:55:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 74ea3a69-dfe5-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766483704; x=1767088504; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=anHanextag30yIC8WDobCeYSutZSF623UMGUnQGnAYY=;
        b=dTt7m1Fu5itUQ4dv46UXoZJ3RCUH1ahFzl3ZJMNRIpENgsP1X0ICwfqfz3Z058SpEL
         3c/wAcE8CAyyAJQAjUnSIXlRZVgNTMWbL5XFsTLY0pzUe+2Thew+17MlmOoHOezSaneC
         H2W7B9+ETjXjX6FKNhkUjAVg0/8OM+ewFfN1Tkaul+dzRudSi3myu9KN+bKCe/lA7xaZ
         Jy3xrIxbPMb1/Ef8DtiLvkz/RBg6AJI0MkfHfxRb7N4c3QUe0XTXoZC6sh6eOoHYCZjs
         LoanmvR59tQH2K+98qclqakG4CJJKZ3Ipb7s6Hd/Y70NbE50fReCK7sqPctcIhOlNALn
         EyBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766483704; x=1767088504;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=anHanextag30yIC8WDobCeYSutZSF623UMGUnQGnAYY=;
        b=rmEJ26Pu1SuMix+FRMvP1opsdB48JomNbsXl13A1aeT704+NaeC2vb6/h7IQPpYHkg
         rLgSTWiCHV/SCoKfJwizQ65C08MBHLZhqqpn+ks4ChW2q81Wyvop+4MiBPMTw8EW+nVA
         lsDsn4PsEuofPrOvmrpXPduN/sNvIDIorzeapM8cQ83FIs/BBZzVhqXqiidJ6HhEqOnb
         EUTwr22cotuw+lSFPSE55bd5a31rPZabiLaFeYOTjFz0+f8mD/UsxwQBsHjKu0Vt3vpl
         pIa0pzhuAsvGAV2OlGsG9nQvJjCIZ0mbnfnqW6gkRPoC8e3/jnoNUF47F9xVble8v0jb
         7Ryw==
X-Forwarded-Encrypted: i=1; AJvYcCVx6PYqkROhKUp0vE60LDBqUXs29FTiCyGOcW4tOylFxm9PqmVC4rxVZbpM2T7l2f79dHdOsmIS8Ls=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyqpchsBpn+mJt4Eusop3KEGCOd/Xg2bQkt7By/kHQUB5Rh4jyF
	vQ0Lon9GfZG8VQMmOgW3UAiX9xlv9XUjWrfDkbi56SOwJaxH8PtnPoum
X-Gm-Gg: AY/fxX4mjR6h2LF7+lcMApNme6QCblrNSmfOYWm00piJQpjQjXCmd4Je0Ai44p5UIEg
	jgfGHwMKZP7ycGd1PRmPKLycgnQC89O/0lR2yfOpfRiI1nqLGHefy15nwJ8YMppX8w8R4Y4y7Gg
	A6OJevJrbdqsF7oe7rKlNhY56eTCvVz0YXMzklomNYTbPala/kbtkAMtU5Op0eylESO4nlWb6jy
	YSMeVr51PwHiVAEV1WbPGKG3RdQoAfKkzk/wsN6RyG/Q2aQ92upy4a09hf5oXWj8eRdGW8zyZL1
	LpjDTBl6FGBinHVGpbBAQXyAoXbGhCGEKZUo54ZRgC6T9oeOVRjb/X+z0WZLjF7vhpwRe3X1+sr
	1DS42AkCqNWAQnZbjVy33QMYMvuzrbBq+iu9A7FCzjKsSb8YHLmqb/V5OeIq8akVTkB4r1tL7Fn
	hjOCJqMChPAPauHZU4nwPSYaeCEVLbgOQybvPqTk4y9+wFm1Lu8aHJb7W3GVmRRSvo
X-Google-Smtp-Source: AGHT+IHgvrBTy2D3IPETGrn1KiQGiNl9sbzZn5k8kgWFPMYqzmmcMmrGJFG/7A1iitPLOGOy/J3orQ==
X-Received: by 2002:a17:907:9810:b0:b70:be84:5186 with SMTP id a640c23a62f3a-b80371d66camr1470814466b.44.1766483704145;
        Tue, 23 Dec 2025 01:55:04 -0800 (PST)
Message-ID: <326de9f6-ee6f-4a02-b0c2-d0f45ef5339f@gmail.com>
Date: Tue, 23 Dec 2025 10:55:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] acpi/arm: relax MADT GICC entry length check to
 support newer ACPI revisions
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Yann Dirson <yann.dirson@vates.tech>,
 Yann Sionneau <yann.sionneau@vates.tech>
References: <929f7a0fb8f92112d445015726db30122a05eb9f.1766060265.git.oleksii.kurochko@gmail.com>
 <36b89039-97e2-464c-8c1a-25981171b32f@xen.org>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <36b89039-97e2-464c-8c1a-25981171b32f@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hello Julien,

On 12/21/25 11:28 AM, Julien Grall wrote:
>> --- a/xen/arch/arm/gic.c
>> +++ b/xen/arch/arm/gic.c
>> @@ -418,8 +418,18 @@ unsigned long gic_get_hwdom_madt_size(const 
>> struct domain *d)
>>   {
>>       unsigned long madt_size;
>>   +    struct acpi_subtable_header *header;
>> +    struct acpi_madt_generic_interrupt *host_gicc;
>
> For both variables, you don't seem to modify the content. So I think 
> they should be const.

Only|host_gicc| can be made|const|. If|header| is also declared as|const|, we get a compilation error:
   arch/arm/gic.c: In function ‘gic_get_hwdom_madt_size’:
   ./include/xen/kernel.h:20:46: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
      20 |         typeof_field(type, member) *__mptr = (ptr);             \
         |                                              ^
   arch/arm/gic.c:428:17: note: in expansion of macro ‘container_of’
     428 |     host_gicc = container_of(header, struct acpi_madt_generic_interrupt,

It is probably better to leave|header| non-const here, rather than introducing a cast such as:
   host_gicc = container_of((struct acpi_subtable_header *)header, ...)

Thanks.

~ Oleksii

>
>> +
>> +    header = 
>> acpi_table_get_entry_madt(ACPI_MADT_TYPE_GENERIC_INTERRUPT, 0);
>> +    if ( !header )
>> +        panic("Can't get GICC entry");
>> +
>> +    host_gicc = container_of(header, struct 
>> acpi_madt_generic_interrupt,
>> +                             header);
>> +
>>       madt_size = sizeof(struct acpi_table_madt)
>> -                + ACPI_MADT_GICC_LENGTH * d->max_vcpus
>> +                + host_gicc->header.length * d->max_vcpus
>>                   + sizeof(struct acpi_madt_generic_distributor)
>>                   + gic_hw_ops->get_hwdom_extra_madt_size(d); 


From xen-devel-bounces@lists.xenproject.org Tue Dec 23 11:00:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 11:00:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192438.1511659 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY07e-0007za-U1; Tue, 23 Dec 2025 11:00:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192438.1511659; Tue, 23 Dec 2025 11:00:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY07e-0007zT-Qj; Tue, 23 Dec 2025 11:00:10 +0000
Received: by outflank-mailman (input) for mailman id 1192438;
 Tue, 23 Dec 2025 11:00:09 +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 <SRS0=7uuJ=65=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vY07d-0007zN-SO
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 11:00:09 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8412dbe8-dfee-11f0-b15b-2bf370ae4941;
 Tue, 23 Dec 2025 11:59:56 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-47bdbc90dcaso32214745e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 23 Dec 2025 02:59:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47be273f147sm296650365e9.7.2025.12.23.02.59.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Dec 2025 02:59:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8412dbe8-dfee-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766487595; x=1767092395; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZUxb7IXOHYguEnTfLHNdoKylW8Y6qc5xWntHdW2/2Cg=;
        b=AX2uoQp1rF7odFkxTLJU4+VqNuhbnBZA9uxXFbwgPI0mu5DhWQSPPtMdt5RCel2eSa
         i9NRS+dMtRkTGLPrF4+dAKomLWu3AWSgct0I9XmGa3wRMEQCNBaF21LhO7Bg/9sf2mCM
         bURoD94hOi67CVxcUfmIcb1ppHtsTHFusgp10QiLNIQhmZ2RWGjzRp2BK3boHa+wDXxG
         c4/4u9VNtgecS8Tmh8/c3S8tC+sNmwmC+zDFSaUcjOEdWVBVSsrWaIBRWzrpSXU51j7Q
         PcXwdCtntIhNHoUeCuUfEHwPGISSW4/fBWUHKgz7peiWXALcgrvkZfWHCxlNxTK/Nqud
         jy5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766487595; x=1767092395;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZUxb7IXOHYguEnTfLHNdoKylW8Y6qc5xWntHdW2/2Cg=;
        b=bhkMwA28bhE8mu61fG0rIMiPpVw8598exGNxdZT4FuEldxBTgVdOnqa4OfKLcIR01J
         0QTxGO4rI9eFMH0v3stLkLJOpLa4R66zfGC/6HhBxd8CYaKX4fubYuc6h/hajrLAXrT5
         7OoGBbqOOM8vtCDv9YIaQX37iPfULOy+QyCnjQ00l+By0RFIjQZohL9Qa52kSlTrLfuu
         9/5dAcGLn+0cp30jSTnnOf5IYyzQrijSypitMhO0xxV37vToH8gEijpzgW6XfEv4gEgM
         F+1Xt8RkxtjgzJyYfS7hd03St50rVrqDHCcSYFFum0PEuQ/dSVSBB9NsiakI7ucYzIZB
         0hqw==
X-Forwarded-Encrypted: i=1; AJvYcCXO9c9cLmTXUiT7mOj52VPhzpuzBjjiiKU36oCdjGsAjlSahyso7Oi9cMRziGUOQTKk4LkI5K9ZbJw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzSw3QxHKdB0dqVDrShteIPS+Qcotbva/pidScxbSadIiqAMeep
	1OoENT6dGRqRptrON3K/cIPNyESXym0VEIyQGv2TblVBL1v0N4y+rPPJXD8lT26mpw==
X-Gm-Gg: AY/fxX7k3z6ecLDGYc+j5IplbJTqx4Jw5pmhVR6Zg4aI9wHLLiryV6/pOpzIt+bhSx2
	iJW8asjD5OVueOwo+kJIQ6QLC7+DiW/MqW6mJxyIuxPdpcJp1vsaItT8Nd5UPmhlcz/HFVoPKQy
	q5KNKnjJLM7iLuzMWLpPFwcqu7o2658UDniz0UkSzW4SGm5xFTy5UXB5pTIvVptufkeYTv+T9fl
	BbODvVihdwBiKDh0nrqfpjq2nYETnQ5FuesI2YcKgWpraOKZZcxW/px570z+SJQPBWc/QVoQ7Hg
	/VLA6N2e6FxOVAnGALpUL2nnMvelshtzdNA/a5KWyCC7Cylk4pC+s7XGfWX+BaI1WNgD2wtbD5h
	dvqiyPLW7OtEs9w5OKhRnmDLwIN0kHbV6m53XBwB8XP1y2ct6Qz3S8RrZlK/R1Y0vsVUyBirnQe
	8dVgkVtA+fc5UZGPi9HqFGMiOIpxNPo+i9AK/AL/q8PAsN44JJRvaa8eg+OR7qHmllMrAjUyDtp
	+g=
X-Google-Smtp-Source: AGHT+IGZ3O0BovO6Xck0pkp2ZU6L3eB56G9cbd587fP3rD+GMmuuSYTtKFWkb7GDKVP6SVyECndPvA==
X-Received: by 2002:a05:600c:1f84:b0:477:7c7d:d9b7 with SMTP id 5b1f17b1804b1-47d3884cfdemr15660625e9.33.1766487595385;
        Tue, 23 Dec 2025 02:59:55 -0800 (PST)
Message-ID: <754a5e55-828d-4b3f-85cd-574760ddc69b@suse.com>
Date: Tue, 23 Dec 2025 11:59:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/mm: move adjustment of claimed pages counters on
 allocation
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251223081507.29325-1-roger.pau@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251223081507.29325-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.12.2025 09:15, Roger Pau Monne wrote:
> The current logic splits the update of the amount of available memory in
> the system (total_avail_pages) and pending claims into two separately
> locked regions.  This leads to a window between counters adjustments where
> the result of total_avail_pages - outstanding_claims doesn't reflect the
> real amount of free memory available, and can return a negative value due
> to total_avail_pages having been updated ahead of outstanding_claims.
> 
> Fix by adjusting outstanding_claims and d->outstanding_pages in the same
> place where total_avail_pages is updated.  This can possibly lead to the
> pages failing to be assigned to the domain later, after they have already
> been subtracted from the claimed amount.  Ultimately this would result in a
> domain losing part of it's claim, but that's better than the current skew
> between total_avail_pages and outstanding_claims.

For the system as a whole - yes. For just the domain rather not. It may be
a little cumbersome, but can't we restore the claim from the error path
after failed assignment? (In fact the need to (optionally) pass a domain
into free_heap_pages() would improve symmetry with alloc_heap_pages().)

> Fixes: 65c9792df600 ("mmu: Introduce XENMEM_claim_pages (subop of memory ops)")
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
> Arguably we could also get rid of domain_adjust_tot_pages() given what it
> currently does, which will be a revert of:
> 
> 1c3b9dd61dab xen: centralize accounting for domain tot_pages
> 
> Opinions?  Should it be done in a separate commit, possibly as a clear
> revert?  Maybe it's worth keeping the helper in case we need to add more
> content there, and it's already introduced anyway.

Personally I think we're better off keeping that helper, even if it's now
pretty thin.

> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -515,30 +515,6 @@ unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
>      ASSERT(rspin_is_locked(&d->page_alloc_lock));
>      d->tot_pages += pages;
>  
> -    /*
> -     * can test d->outstanding_pages race-free because it can only change
> -     * if d->page_alloc_lock and heap_lock are both held, see also
> -     * domain_set_outstanding_pages below
> -     */
> -    if ( !d->outstanding_pages || pages <= 0 )
> -        goto out;
> -
> -    spin_lock(&heap_lock);
> -    BUG_ON(outstanding_claims < d->outstanding_pages);
> -    if ( d->outstanding_pages < pages )
> -    {
> -        /* `pages` exceeds the domain's outstanding count. Zero it out. */
> -        outstanding_claims -= d->outstanding_pages;
> -        d->outstanding_pages = 0;
> -    }
> -    else
> -    {
> -        outstanding_claims -= pages;
> -        d->outstanding_pages -= pages;
> -    }
> -    spin_unlock(&heap_lock);
> -
> -out:
>      return d->tot_pages;
>  }

Below here the first comment in domain_set_outstanding_pages() refers to
the code being deleted, and hence imo wants updating, too.

> @@ -1071,6 +1047,26 @@ static struct page_info *alloc_heap_pages(
>      total_avail_pages -= request;
>      ASSERT(total_avail_pages >= 0);
>  
> +    if ( d && d->outstanding_pages && !(memflags & MEMF_no_refcount) )
> +    {
> +        /*
> +         * Adjust claims in the same locked region where total_avail_pages is
> +         * adjusted, not doing so would lead to a window where the amount of
> +         * free memory (avail - claimed) would be incorrect.
> +         *
> +         * Note that by adjusting the claimed amount here it's possible for
> +         * pages to fail to be assigned to the claiming domain while already
> +         * having been subtracted from d->outstanding_pages.  Such claimed
> +         * amount is then lost, as the pages that fail to be assigned to the
> +         * domain are freed without replenishing the claim.
> +         */
> +        unsigned long outstanding = min(outstanding_claims, request);
> +
> +        outstanding_claims -= outstanding;
> +        BUG_ON(outstanding > d->outstanding_pages);
> +        d->outstanding_pages -= outstanding;
> +    }

This now happening with the domain alloc lock not held imo also needs at
least mentioning (if not discussing) in the description. Aiui it's safe as
long as all updates of d->outstanding_pages happen with the heap lock
held. Which in turn may want mentioning in a comment next to the field
definition, for (now) being different from e.g. ->tot_pages and
->xenheap_pages.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 23 11:31:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 11:31:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192519.1511685 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY0cH-0004Vi-Ej; Tue, 23 Dec 2025 11:31:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192519.1511685; Tue, 23 Dec 2025 11:31:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY0cH-0004Vb-By; Tue, 23 Dec 2025 11:31:49 +0000
Received: by outflank-mailman (input) for mailman id 1192519;
 Tue, 23 Dec 2025 11:31:48 +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 <SRS0=7uuJ=65=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vY0cG-0004VS-7r
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 11:31:48 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f2c1fea4-dff2-11f0-b15b-2bf370ae4941;
 Tue, 23 Dec 2025 12:31:40 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-42b3d7c1321so2903889f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 23 Dec 2025 03:31:39 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea226d1sm27910838f8f.13.2025.12.23.03.31.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Dec 2025 03:31:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f2c1fea4-dff2-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766489499; x=1767094299; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YrD5D1qBJxXCjf9P/QjB9PpkOYOEGgNyFkp6U2yZlXE=;
        b=KKbeBNc0x7ix2RefNu+LvQxc7jqLYR5vgkOKDDtfIoGV4zTPj1G+AQ07L0NCgmt2Ey
         88BI3t+qR7lZWlUnwcHRcloynDVl+DvrWDi7kgJE0KhKkHL0xNFO8L8FQ4ENFpbWTIZX
         rhXwlHV2EXAzq8b60fYgi5V50gex71SYXj6c8UWPzBoDZlZT4vjqbA15Fb5h8nNnF4t3
         15Mt33gvgcQH+PUfi+dRUQ/nhHq82ZAMLkHSWYBSQvvxKjAUvXMCnpG8hFU3q7Gpg4Fk
         zWyYzHrDPuw0EV8I26Q930cdJu8WcmJxkmD49WcDzfRWab1tarunBqgrg5RX+YWTm2EK
         Gdkw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766489499; x=1767094299;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YrD5D1qBJxXCjf9P/QjB9PpkOYOEGgNyFkp6U2yZlXE=;
        b=kYEQvoCWCjLTpa6Y/DGm6zBoBYIVQutblsd8CFQ7Ivj8e2JiB1O83cLxRxLRJXv8Pg
         nNksTUnwQ+R7H/g+33M5XBSxfYqnFpKRcdOoquIhCXUWCdmwCuUyUd+7Kfx1ZaJE1Wl/
         MCsP8dRaBfZLLU1Gn4ybbnYgu+2HpKpbdsKHC8sG6rTZNoWwbd1Vn0PSMbEETNlLbw/P
         FS5LvTY4r2scA+4GjY2Yu3h6a2XEtaELqPsRrt/VEKinTkY2lSTCfIAOSzzyzXFQhxpm
         B+2YeWT7glK4YRYeantwvflMxhzJIauCsRpaetrKVgIbWi3xE2BvPzmhKUwQ8/D822wn
         SkIg==
X-Forwarded-Encrypted: i=1; AJvYcCUeRWEOP6sH9PQIsjvafiYGxAJ+WMDpzG/GkcaOzm6bWgm6keXCFoHyv7MW0qR0w5bANAokkM/UtqY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyrQ/jyHF1G9OfJSHRu6uak4k70/bf8ksUWu+IVvuX/NQLWl4TC
	v06CV7VcRxAp4lIqKTLbSyMsZqgs4YhTp3kHL5xiyDBKiroBk2La7/McXcxSQp4tIA==
X-Gm-Gg: AY/fxX6gTJZI3VpWoxKvrFD8TPo7p/rFksawD6LRCO9Z6ty/uAKs3ObptYQx52T7WG2
	aTmdmZZPCE6vT/JRzGBR/coWO7+O9ZrzERcwl9OnoK8AwnJbeBrOqFmKAtzvh5ZcJm60fAsYImY
	fp/h9OyoaY6yAoY37Dlbd3C4t+W/XGO9H5Ajn/0VrGhttb853Tlxw8tgACI1GXWHxBLOeRUYbh9
	YBgoNvqkYolJe4HypjJTRKJ+PAhXk8cv6FMMMi10IBa8W5QPvSI80Ft/wJp/KtrUW0kVSiaX7Ze
	hcn4gIHQsq0d/S9c1WM2pMoW8ryY3shxaAdFkyvXyed8gjAT3ps5QOYtCyTWARftVGrw1chMuOa
	ISYNW8Au/OqN8J6d1w1WvGxyyTgkrxoNzrKKjj/azd96iosgyExvntpdlBGSDaepOAnz1WoRZlo
	GFSc1J4DQuw/FvJ0KIAtXSraH57R82AuALotGLmQJxOu0nE5fRAC90KY3XJCT3PjDcSJXnDaqx1
	xs=
X-Google-Smtp-Source: AGHT+IFV7hU0M14Wzl/iDYD13nQfQEivkGgegMG9bwDnr2rkQrlCLwU+GvuLUKgnrRsQnSkQpyF+hg==
X-Received: by 2002:a05:6000:1844:b0:430:fa58:a03d with SMTP id ffacd0b85a97d-4324e70ef05mr14497561f8f.63.1766489499092;
        Tue, 23 Dec 2025 03:31:39 -0800 (PST)
Message-ID: <179e8f57-2249-4eb9-9512-c315f1e8e5f4@suse.com>
Date: Tue, 23 Dec 2025 12:31:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 4/4] xen/common: make {alloc,free}_domain_struct()
 static
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1766404618.git.oleksii.kurochko@gmail.com>
 <07e8305e7d9730f65822f43ecefb7543b08f764b.1766404618.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <07e8305e7d9730f65822f43ecefb7543b08f764b.1766404618.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.12.2025 17:40, Oleksii Kurochko wrote:
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -690,6 +690,27 @@ static int domain_teardown(struct domain *d)
>      return 0;
>  }
>  
> +static struct domain *alloc_domain_struct(void)
> +{
> +#ifndef arch_domain_struct_memflags
> +# define arch_domain_struct_memflags() 0
> +#endif
> +
> +    struct domain *d = alloc_xenheap_pages(0, arch_domain_struct_memflags());
> +
> +    BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
> +
> +    if ( d )
> +        clear_page(d);
> +
> +    return d;
> +}
> +
> +static void free_domain_struct(struct domain *d)
> +{
> +    free_xenheap_page(d);
> +}
> +
>  /*
>   * Destroy a domain once all references to it have been dropped.  Used either
>   * from the RCU path, or from the domain_create() error path before the domain

I think this is unfortunate placement: You put the two functions between two
other related ones, which imo would better stay together. I would suggest to
put them (and the ones moved by patch 3) ahead of vcpu_teardown(), or ahead
of vmtrace_free_buffer().

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 23 11:33:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 11:33:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192529.1511696 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY0eF-00054q-Ri; Tue, 23 Dec 2025 11:33:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192529.1511696; Tue, 23 Dec 2025 11:33:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY0eF-00054j-NA; Tue, 23 Dec 2025 11:33:51 +0000
Received: by outflank-mailman (input) for mailman id 1192529;
 Tue, 23 Dec 2025 11:33:49 +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 <SRS0=7uuJ=65=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vY0eD-00054b-So
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 11:33:49 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3fa38bbc-dff3-11f0-b15b-2bf370ae4941;
 Tue, 23 Dec 2025 12:33:48 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-42e33956e76so1780032f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 23 Dec 2025 03:33:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324e9ba877sm26972766f8f.0.2025.12.23.03.33.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Dec 2025 03:33:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3fa38bbc-dff3-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766489628; x=1767094428; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7S/OdtmbnZynf5E9VAnvbeY0eCh5d/c0KyeNLJGHb6s=;
        b=UowFJ76iBrdyd9GGV9Nri6BCSTiTD57yJ+6loTebFkc1XkFTjq0vUqx0rOV047cIkj
         f2/m1s30re054wE3i83RikgD+Sh6mWptZ0gWERxMfHTtCExmWbWo2DW0nB8YRE7GoVQ+
         BvULACEL/h+moedtJRWEvl0wtE3oDzon0Vb0N/USoI5KOQWUnDSsTBUpm08T1nCBZVWf
         yHF6O+lQy9c+zidWqVao13fBd2uU/HRdZi/fhvIod5i1DdAgCx6xDUDQAiUmhVXBCmjV
         XlRjh0+2C5XmFAS0HLdHiGo9G5hhaxE8IQK81XpO98RB91+SM3h39UqRSGczuceQJoSw
         mkcQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766489628; x=1767094428;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7S/OdtmbnZynf5E9VAnvbeY0eCh5d/c0KyeNLJGHb6s=;
        b=gyqE0dOFQyDsF0ObGrU0vnZQaVcu9BUEYRaxjmZEm/IntMVAO4E+TidV3s01r7tsbX
         8zN/z038NXEv7vYIvvuSueGx1IoWsNJJJ7eTceu+unQpTpBtzcV59HKTko0kMM3U0WW6
         WtxkBhKLcNQKKslqKmMuG7aqjN4OYdzxOiwCSkKVKwTYH1QpMsY2JtycBorDN/bfd4/8
         51YdocVxzWkyBEipNaHIQMSyZVINAz8YaOjVJebbPuEV9aaRGtzNrWyVozOFKnx0C8u6
         zJx9eYPZRMu1Z85Nt3YDrE1053rfoKof7F3ukKjtLNi/ihIoB7HzDDQDZpcDgwHp0c8r
         liZA==
X-Forwarded-Encrypted: i=1; AJvYcCUfulaykUMuDNqwomRUpz6U6YV4ijz0FCIuQ0WXu4++xbwG3lxdjRd64zewG3bQHirt78UdkGLTa30=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzBxrxlb+gv70U4CSGZtppeYr1jKMyJWCL/U0UWxA0FX5QF2sjD
	okuMDbGa2bknlnv6FEJd/TU7Kw4QYZI3DZnsH3lgzAz9neSraPsHuvpnI7nby5/I5w==
X-Gm-Gg: AY/fxX54c4r5HYs9kQkuzP+Adb3BAez52dakAF1BcqK61fbdMcnckCEK8kb1S9UCUzW
	4AaHcfwBuHvisz1h3xf/3yj+7Zozth6Vmq5NBA20uR1bzPeymJDrLU3Zr3duLllaAgubfwOeBkB
	zHIcl4OAOPmxBUAKdYIvngDbLHmx7eXsDFZdqtx0u0MdYBoWabgtbQfO1Zx8HKDdKT0zJjzY4Qy
	LfY1adH5v7au+CPhv31oTScSK2Lhv+L9Wla7M+eWQqgRxizyz9t482iGNT442b4iQpcqybjQQHP
	VDpNRj8CgyirQIPL14V09BnyQB5Qsg8BLtWY/DSPejuDaip1RG+AG3BjMYZBZnrYpk+HoBqFwTF
	zql2fiwWjt9soii/J4YHerKXCrPT49kZTz/wFnLmZt46dEaGV6Sx/wugMbMwcDMPBnXUv8dZeSX
	bqm2sDSswM0SAD2WfB3eBND7MfFS5CBpuIUqfsbAw1byli6G6D80xN6qg5RR8d9Ltbuc4TU8xRS
	yU=
X-Google-Smtp-Source: AGHT+IEJ6kO9eCrVwjAhhA8inZv4aX9RWd94/z+m5P+05UwbJbaBqXlhebM5RzjvhdYL+Q68kgxVUg==
X-Received: by 2002:a5d:64c7:0:b0:430:f985:a7b2 with SMTP id ffacd0b85a97d-4324e50bf0emr15172247f8f.51.1766489628167;
        Tue, 23 Dec 2025 03:33:48 -0800 (PST)
Message-ID: <27e79807-a86f-4782-bcba-43856bd6960e@suse.com>
Date: Tue, 23 Dec 2025 12:33:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/4] xen: move alloc/free_vcpu_struct() to common code
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1766404618.git.oleksii.kurochko@gmail.com>
 <31208135cc61a8c8e593a286d450c2ec7757d118.1766404618.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <31208135cc61a8c8e593a286d450c2ec7757d118.1766404618.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.12.2025 17:40, Oleksii Kurochko wrote:
> alloc_vcpu_struct() and free_vcpu_struct() contain little
> architecture-specific logic and are suitable for sharing across
> architectures. Move both helpers to common code.
> 
> To support the remaining architectural differences, introduce
> arch_vcpu_struct_memflags(), allowing architectures to override the
> memory flags passed to alloc_xenheap_pages(). This is currently needed
> by x86, which may require MEMF_bits(32) for HVM guests using shadow
> paging.
> 
> The ARM implementation of alloc/free_vcpu_struct() is removed and
> replaced by the common version. Stub implementations are also dropped
> from PPC and RISC-V.
> 
> Now that the size of struct vcpu for Arm64 is smaller than PAGE_SIZE,
> MAX_PAGES_PER_VCPU is no longer needed and is removed.
> 
> Finally, make alloc_vcpu_struct() and free_vcpu_struct() static to
> common/domain.c, as they are no longer used outside common code.
> 
> No functional changes.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

With the functions moved a little further up as indicated in the reply
to patch 4:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 23 12:37:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 12:37:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192562.1511706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY1dF-0004Nt-Gj; Tue, 23 Dec 2025 12:36:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192562.1511706; Tue, 23 Dec 2025 12:36:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY1dF-0004Nm-DO; Tue, 23 Dec 2025 12:36:53 +0000
Received: by outflank-mailman (input) for mailman id 1192562;
 Tue, 23 Dec 2025 12:36:52 +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
 <SRS0=mhFC=65=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vY1dE-0004Ng-5M
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 12:36:52 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0c847bba-dffc-11f0-b15b-2bf370ae4941;
 Tue, 23 Dec 2025 13:36:50 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS4PR03MB8373.namprd03.prod.outlook.com (2603:10b6:8:32a::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.11; Tue, 23 Dec
 2025 12:36:43 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9434.009; Tue, 23 Dec 2025
 12:36:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0c847bba-dffc-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GZoOVGvvZKF0/ScdPnBHKuckhtXthjCFxE+56VF29VvORQfFMZRc7rwOu0VdEBK6iWBjBIN0e5wZdncFEB68+uAouN/SAUqgLu0ZNGfAU3y4KTOGELB7NEwnhJ2/vopOo92osFtFzbXQtsUOd+W6NDrKhZodvaehqeFiWQPFD7ljnpFEQ9pjK+e0+ENNmCNRx7kib7+fFr4+0rlB9GkHM2OeD6ActrIt3QDaOM4S4Hgk+9/3n9BuTJ3hmLpyr/R4a2Y3YJpqE0UJ/9j7DBQ3CmHV3N55jpnXJZrAnLO2IoooD/VxBdvtHYOlKMMleztzWcxDYWMok1Qnn0UYKWHqoQ==
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=eccSa/J37gwASMRRFlnVVl3pc7ECyxKGqkatMbHQqaQ=;
 b=FrMwRVAhCL8HLFrRGNFyestASPYghV+UzmxgUKo9Iek94poBmZa0L3bA+fQIBPOlt+XYI+4NQTIQCEBKnSooF7TovuHCABSstLdXCxPRR8as1cW7OPxPvhD3Qbo5oHp+artAmkSgrsv9zj63NW9hk+1qaab4KVLvRHB+Z8HfeQHjRAKyFxd/B867sBBDrqZ60x7resg8gThpoUNw1Cih7w5y1RKoWxRqzf/ihPikIOapuS01aogFtjG3eAE2c7eSyfH8eWYwIqk+0+WkmiS4o7wthSj7Aw35hM3QOCMBMR++yfBulo/84D5ZZFdBnNdwW5sbJfw5mBCtLeR3lWiSoQ==
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=eccSa/J37gwASMRRFlnVVl3pc7ECyxKGqkatMbHQqaQ=;
 b=wADOQlQVafDmh2sbKW7QvyleQZug/fBihchkhRNWLDZ452mhuXU+gCYvsFwP8Y/xhTkCmEHn3C+xDGZeJuzldHsI4UGNaNmQ7xeqoXD3oGDEan/IZaT7dIh3GEsU4JFVYyLx+yt1FHn2bftX2HJe9XeYHAaEpcSvVC2p7y7QGK4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <2516cd03-7a66-49d9-9414-fe39aee74fae@citrix.com>
Date: Tue, 23 Dec 2025 12:36:40 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v3 1/4] xen/arm: vcpu_vgic_free() updates
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
References: <cover.1766404618.git.oleksii.kurochko@gmail.com>
 <17d04a2ba8211408cd188891a301bc521cac3bd5.1766404618.git.oleksii.kurochko@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <17d04a2ba8211408cd188891a301bc521cac3bd5.1766404618.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0415.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18b::6) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS4PR03MB8373:EE_
X-MS-Office365-Filtering-Correlation-Id: c06d840a-604c-4ec5-3e06-08de421fedca
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VXJqYlJ4UWJKcFRzQ2lWNXpERWRXMTRyQjR5bjV3ckRtZlIybW5RK0F4ekpj?=
 =?utf-8?B?MlNRTzJjYXNha09FNG0vNllxTElhL21NSVpYQXA4YXhNNVFJMlJodDViaWt2?=
 =?utf-8?B?TDlXRXFTb1BMWDdWcU9IczNMYmMwZWZmQm10NDBiamFEM2pVS2k2YnBEelhC?=
 =?utf-8?B?YmU0VHVCa3Vid2lENmRIbjdYOENtelBlSzB5clZ5Rm1tWVhnZ09jWmw4d0dX?=
 =?utf-8?B?ajV5T21MdW8yeWN3SFg3bEFqVng5Zi9ER3pnaXR1Zmd4Szd5NUdMQmlYWWFy?=
 =?utf-8?B?bDlyWU82Y3BjOW1INW82d0V4OGhPR3ozbFY5THF0UEFBOEhKeDB0Umt0RVkw?=
 =?utf-8?B?ajBqSlRFNW1pQUlzNFhkYU1vNTQzRVpHYUlpTC9PZFdYdnNxRUNTRklXakZs?=
 =?utf-8?B?NVlGbkduYTFXaHZFZzQ1b1Nad0x5RVFYRmhoYWFsNytlUGtUUFVlaEkzTUEw?=
 =?utf-8?B?b09tZ0RualZ0ckVocHFCdWVuZGlreTQ4TXhLUVo2K0hhR1ZWVjNJemZhMFZX?=
 =?utf-8?B?TnUvc2RzdmlTVU52ajZ6SWU3NExXd3FGRmd0dkdHMk8wSE90SkZHaXgzODNU?=
 =?utf-8?B?NFRoOFpVeWk0NldXOUo5K0xDWlVKeWw3SThhNGZndVdreDdqblh6b1N5cmk2?=
 =?utf-8?B?VERtZUUzNnBNenVZV2VvNVNqOUNZZFRmSGU0N2xIYVlNK0NTWjY1TEpLZXFK?=
 =?utf-8?B?L0lPV3VTalEyc3kwdTg5Wi9vK3dpWjFweXlPNmIxTzFhVm5Ub0tsbXpseGg5?=
 =?utf-8?B?RE5oUmZhYWpjR3Y2RVI1L0lsV3lUV3hTU2NsVDZ3THFaUTRUcFBtL0VLTGIw?=
 =?utf-8?B?d21Pam1lNXZyaDl3WnlSUXRkak1UN2pFQnJjekVQT1B5Q20vZTgwVUIwU3Yx?=
 =?utf-8?B?SkhsMkFmZUZaeW5DZjI5YmYxR2xiNW4vQ0dEbURrbmNXWDV2MXFpdE1YckxC?=
 =?utf-8?B?c1BvTnc5RXphOUdRbWd2TEt5QStjbklDTkY2RE1yU29rMHo0RDVQbGFsNlRX?=
 =?utf-8?B?Q0pLTThzajJBWnZ1azRYbGZUSkhDamdaTVM4ampHZnJwZHgvY1E1YlU0NkpB?=
 =?utf-8?B?V3QxSnhidmgzYWRxRUdvSXc2Q3JyRUt3UDMzaWwzTHFsSFhoM3ZpeUJMYURz?=
 =?utf-8?B?ampqcmpGOE9mVlMwMHNFK3RGc3NMOXdrcmFsZXUyOStDV2M1dzdycnAzL1FN?=
 =?utf-8?B?VVZ4WnVTSTl3NVVYUjRNSFpQQjM5bDY4enIybFpMUm1NZWV5ZVBCMlpBTnJk?=
 =?utf-8?B?NG9oTlk4NUZ5SXVibEtiUW96dlpVOVc1VndNV0JuWnlaQlcwSzdxT0IySDYr?=
 =?utf-8?B?TFg2MUlzZlhrRUF1bnBBR2Jhd1Q1Z245dW9QZ2VqSDlOemJzUFpudzdqR0Yz?=
 =?utf-8?B?Y0FJQWI3Lzh2dE9GeVBUeGI4WXVVMVBQdTFxQ2RaMmsyay94MldsQkpMVDZi?=
 =?utf-8?B?U0FSbWdFL1pZKzN1SDYxZHZxL2pmczNCcjA1dUg0QTRldkE1Zm9BQjV4MS9n?=
 =?utf-8?B?UmhCMDZqdHpmRTBmdmZDNys1bUJMWjd0SFdOM0M1Q0NNZHFoaGIxMHhyOVhu?=
 =?utf-8?B?U2twQ0dCQlFDbVdLTUo4Y2RQSXFRNVZKbnB2UGp5UTFkL29NL1p4YXcwVjBE?=
 =?utf-8?B?Z2FYOFdYZkZUTmZCcS9adHNhbzRiaWJlRnFZaXcrVTI4aVA4S09BNStLQitS?=
 =?utf-8?B?ay9yVmxwYjFOdThpRStKMjFJR2pXbWhJZ0ZvS1IvVlVPUTBVYU5qbTR4M0ly?=
 =?utf-8?B?RzNhakc3MXJwUjdmeEsySDFvbmZPbUJ4WDdDTzNQYnRmNEpmU3JwZzhuOS9w?=
 =?utf-8?B?WVJGbG5jS1BKSUQyS2NxQzN2QWx5MEtXaDVUVVdtRHExajQvRXBuMjh6WTFt?=
 =?utf-8?B?TGd5UFVncHVCS3BCSFFiaFVMbEZUTXlZM0F5NmJKTnR6TktiZ0N1WDVrYk52?=
 =?utf-8?Q?2wL0p6XF+pWEFqjxDSxdw/LsQfcIsWye?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U3RJYVc0dlc3R1FIaGhiSzRSanlBYlVSam0zY1o3VE5oZ3lJS1A5Q2x3RHZY?=
 =?utf-8?B?aHdqalJGdTQxRklJVHYvRWFNcGNha0FENjJOZlc3TGRib09BSEhoeVdSQjFP?=
 =?utf-8?B?M2pCVDFlc0l4WWxqWlZ0RCtiaVZXQUpFM3V1d0daWmdEVWxFR2dKN2h0VkpS?=
 =?utf-8?B?QUo3RU1obG1JYm91eW03TmdCUi9LUU5SNmt5cTV1SmI2NmwxcG45eGZHTjQ1?=
 =?utf-8?B?NW9scnpwR25aY3REdThUMno5R21jald3cHNYMktIdHlDYWhMbjdXREVDYkVv?=
 =?utf-8?B?cDc0dTBTaVRkTXgyUTJwK2M1bm1KNEVKcUpWTUNIdkFRQjdCR2tQRTMxVS9s?=
 =?utf-8?B?SGFEU0xnNk9RTUZRcmp4MG1jd1dZbCtoUk91TU00dUozbXlWTUY4VzZpYTlI?=
 =?utf-8?B?QUdLc01seVhTT0FIWS9NY3dZK08yUWxRVE9qa2NjZWZLUld4WFpiVUpMTy9v?=
 =?utf-8?B?STJJdXZGYVdZVVVnNXdMcDdsYW52clFQSHBEMFl6cU0rSFNwalU2TXRaVW9W?=
 =?utf-8?B?YUZMNk1vRFgzTUxYREc4TFdINlU4ZGE2QzJXdWIwNTNkcTM3cVBCaDZlbCtj?=
 =?utf-8?B?Y0Rsb0h5aWVmWit5eU5ENHhKeCtUOXBtdDAzdjZJY0paZ2RMMWExbUw2Zm9I?=
 =?utf-8?B?YlJPYzhWcHVjQ1ZZVWpFazBJUDdKZWFQZjJ4UkY2UUJXcFRQTVhSMTR0QkRH?=
 =?utf-8?B?OGVndnJqK2E5VG11azFrNThYZXVTaG1qcFprNXJNTVRCOXBDWFRHQWlJRzg0?=
 =?utf-8?B?MG1UVEptaGNSbCtML2ZJMml0QXQ1TXh3VVBoVVdjaUZUTndqZzRNVldOdHBx?=
 =?utf-8?B?UEIzQUQwdm0xd3cwb1E0YWNsa2VJeCsycDFwbVhpbWJMODhZbkVJckN3MDZX?=
 =?utf-8?B?WmdCejJPNVJRNjdxM0k0ZkdoYnlybmFWYitqT2o1Zy80TlpRVi9RaEZ4bER5?=
 =?utf-8?B?TWNlTE5XZnhMcEZyaUc3WldBRGZPd0hmVHlENkZrVExia0IzbllrUVBCM0FG?=
 =?utf-8?B?V1lJMHVpMjkrRzhPUXpmYzdtd2RBeEladHBlU0RocmRYWFhXVmNwSzZCWE1u?=
 =?utf-8?B?YTFYMk01aENTOHRRN2s5dGpJQkh0c1owWDhLUzhMWVNBN0JiQ3hVOHFmNWlh?=
 =?utf-8?B?QzFVdU82L1YwYjUvcDFjR3BBWjBTZndpdEtPVUoxbWNXRG5hWERtZXpSVWpa?=
 =?utf-8?B?QUNsbVZWQkFZVzVJeWZ4NytabXgyWTNXU1p1UjVDTWN4OEZQSU5EQTFNOXpa?=
 =?utf-8?B?Vm5maS9IV1FYTldldjVUTU5oaEQyMzhxaUpQakc3L1pOUm1KK2dFclZPTzRm?=
 =?utf-8?B?cGxCTHJpUkdiNW4xRG9wWm8rUnJkam4rT3NsejJtcnpKWCs5Q1NWM2c4WUNG?=
 =?utf-8?B?ZC9DVUtRZFJ3eDF6T1RZaXZLVFhvS0YyM1JSRW01TVAwRHZsNlZ5QVgvb2Fu?=
 =?utf-8?B?Tk4wbVBqbkgyVm4wd0RSZW5TdndYalQwM2VuRHdTVEdSYzJRMVJKNUl2MXNQ?=
 =?utf-8?B?czM4YUNKa3E0U3hGZjltc3VvQ0lDRVlNUUdIc1l6MG9jSGJKbm9NZzlaVlNG?=
 =?utf-8?B?QnlXVDN6M2hVQlR4enp3Qmc3SkJ0NDBhNE83Y1VZTjVsZEdSMDRUWloxK0VU?=
 =?utf-8?B?MmpEekgxcjI1Yk5VQUoyV1hmUWJHM3lXeWhzMHk2ak5RZm9abUpuQThGM1Fp?=
 =?utf-8?B?N3R4YXdNWnJNQUd0VWg2Unh2aVp1UEZYa3dtaWoxblk1Y1NwUVoyM2QrUXFi?=
 =?utf-8?B?Lzk0b3Z1b0FJMllRSXZWRTB3eW5yalc0QUhHMS8zN3c2cG1kTFZ5TjAvTzBh?=
 =?utf-8?B?QlF0TnFDOWlpRWhwWjBDdGE3LzN4NlJoeWNwbHNIblQzZ2JOaDZXTVhDOG9E?=
 =?utf-8?B?M3A1SlhSaG8zTHdyWmpPUURmbHVqcGkxWkJPL3RwU0JOQmlJYi9kYzRpdzF4?=
 =?utf-8?B?dkdZWEdtMFozbjhvWENUOXVTOUdiOUpjWGFzTk1QVlZISUU3SlhIeFNxOWJP?=
 =?utf-8?B?dXNhN0Zlak1uL3hoNkJLcG9MbjdpbVlwVVhMRnpQUE1lNG91NkF0V2l5eW5L?=
 =?utf-8?B?b1JzK2VRdWVtKzUySWRYY25pQXZrYkpwVFpyUUVsSk50U1JzQklLeW83WER3?=
 =?utf-8?B?ck92NktVL3lmMXZ1b29uOExGMzhCRmhlM2s1Yk1iV284Z29Ubkc1SGNKN3BF?=
 =?utf-8?B?Q2NBT29xNG5XSUxqL1ZHR1RlZTh1R0loVk1kd3Vwd0ljZ3hnU0NTek9tUEh2?=
 =?utf-8?B?M0RkNkFQNkY4Y2tOTGoreE1nL3FsVk45QXoyZ1lxOXZWaEc5Z3pOaEFZeFhn?=
 =?utf-8?B?eTZBaW5GVDE4eFVFd1ZyTk1KVEtLOXRCdzE3NFBHRHlWRVBPV2xEUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c06d840a-604c-4ec5-3e06-08de421fedca
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Dec 2025 12:36:43.5690
 (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: hwytSgSqmGqITdYvJnmAMsJ2KOAGkkq6OWT8X8kHYoy92e6YNR7hn3yof/NQiYmSIk6wZagpcBreMV16F9vFySsI2VC+BSGq8uMQ8SHGPas=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR03MB8373

On 22/12/2025 4:40 pm, Oleksii Kurochko wrote:
> Use XFREE() instead of xfree() so that vcpu_vgic_free() can be idempotent.
> With XFREE(), vgic_vcpu->private_irqs is set to NULL, so calling
> vcpu_vgic_free() a second time is not an issue.
>
> Update the prototype of vcpu_vgic_free() to return void to satisfy MISRA
> Rule 17.7, since the return value of vcpu_vgic_free() is not used by any
> callers.
>
> Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue Dec 23 12:37:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 12:37:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192571.1511715 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY1eH-0004qc-Oi; Tue, 23 Dec 2025 12:37:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192571.1511715; Tue, 23 Dec 2025 12:37:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY1eH-0004qV-M2; Tue, 23 Dec 2025 12:37:57 +0000
Received: by outflank-mailman (input) for mailman id 1192571;
 Tue, 23 Dec 2025 12:37:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mhFC=65=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vY1eH-0004cp-0W
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 12:37:57 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3461e581-dffc-11f0-9cce-f158ae23cfc8;
 Tue, 23 Dec 2025 13:37:55 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS4PR03MB8373.namprd03.prod.outlook.com (2603:10b6:8:32a::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.11; Tue, 23 Dec
 2025 12:37:52 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9434.009; Tue, 23 Dec 2025
 12:37:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3461e581-dffc-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Zp/V5QMLjTNSwgnzkj9rNOaOVwYb9a0C/ZvP2NBTw9EYxrr2UeADRFbHvwvHPxUmya9yF4Tv5yssn7WQReKTTyEqxPAh9D9s2KrxB+3m3fnQjee1nPZRKW+HEmwcxFLWu6fti7wzqVeEhI4Yi634SWhiY+aHNelDkyxtHxZSSt/WbbdIobRwtsaxKESqI7owpwhN7p76txx26s+yzbr/qOHt/M9++SxY6lW3v0i6FL+ZLulxXzwu/4ZjCgK2GhAktwcM16gsnKyAF71Tvw3voskt7urJ4c5vovTM8UNdfBZryJe5gO/pHcEHoz3Ran/3SeD0KC3ZvF9RNmcjcKtQNQ==
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=Oyn1YZ1VNLO+xTLGb2WF3f3FsP0GMakfu375KSm8j/M=;
 b=riL9uF2QQRKeKhK7BvHPVK0nNJhVcUipjXLowv6OoxErJrOjPJVkBYipsLV8+nL7XYORzIT4ekIGTEeUkOC/d59FakUNSEoVs4hbkYw2GYcl7uG4yw0ONqU7Zim48LxL4b3zKMpRpmvpxu0NZFJsJ45lLMp04HILjiuPvZEfmC8J15CbPD9SwipH1f3eJB97/klmd0ToWmd/gIp5shHItd8pLw2JR1YuuMDuS8GrKO6kmkBKOVA1RRQx+M+AjfCZMB3mwb4tEpvPiVt/suz/eQByzWOwZMBU3AsZifyKDS0u/I9mJ9vr0XET7NGeFJhEHHYFXpSSCoLbpeEWIiWEpw==
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=Oyn1YZ1VNLO+xTLGb2WF3f3FsP0GMakfu375KSm8j/M=;
 b=HiMv9aaPYVtkudwpwfB1/RzIu8Cllv0pU2hvyLgzFUSt4ZS9H+BngG8LEnGCO4AMXOWw722zy2xaPksYcNwRu4z3uaQa8rckAzUuxQHFVAPy3kAPQbl++AquAGjd+LGMBiluLJAnW+r9vxz2U7i9T9hW9dXnz3mPiphTKx4hYzM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <cd6dbe4a-2a86-4485-b1d3-15e7c21110d8@citrix.com>
Date: Tue, 23 Dec 2025 12:37:49 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v3 2/4] xen/arm: optimize the size of struct vcpu
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
References: <cover.1766404618.git.oleksii.kurochko@gmail.com>
 <7cad22bb0aa95eed7f9710024356110b4443f554.1766404618.git.oleksii.kurochko@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <7cad22bb0aa95eed7f9710024356110b4443f554.1766404618.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0416.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18b::7) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS4PR03MB8373:EE_
X-MS-Office365-Filtering-Correlation-Id: adf02e69-260f-493a-db38-08de422016f6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?K0NUZDlVdThBSEhWYlJ6U3ZSTCtVcmoyNWxDalk2cGVKamlncXhsb0xIeFdF?=
 =?utf-8?B?WU5ZaXdhOXpqVHB5TmpXUHZqczZmR0UrS0xiYzFld2xyaS83MnE4aEEwYkx6?=
 =?utf-8?B?OHMrR3hSNnF6NHRTdUpFNVovOHdadVRWem5mVnJpSTh2bHNsT0toK0FJRHNG?=
 =?utf-8?B?TzFqUVNyVXgxM0VEeUtOclpFWmNYencxNVdEN29iV3FNNkFyU2swWUgzWmlQ?=
 =?utf-8?B?Y0pPU2pqN01laVZ5amRuTVdXRENZU3VqalVWMGNxM29XNloxOE5Kd2w2bWtB?=
 =?utf-8?B?WDJ6RGlESlhjOVM3OHVWZVNSVDNOdkVYbEhub1dvaU5kNk83T2E0elE2akxW?=
 =?utf-8?B?REpucktkZ1NMNk9XdC90QUhjT1pFQWJ5RElyaVFIUm1OY2VKYkNseFY1UlVC?=
 =?utf-8?B?Y3VrYWZtWVVXNXE0cnVCa1F2NXhsODFjSHNYaklBYVFQSUtPWnA5RDFqVnJo?=
 =?utf-8?B?M3Q1L2c3MXQwVXllNDRxSng1QmdUVDY5YmFNUlRiWVorRzA2ejJWSWYwM3Zq?=
 =?utf-8?B?K3RSTlF0dmphakpUQTJlaUZGT0Z0QVBocC9sd3BWNlg4M3VMcmZSV0RWODlm?=
 =?utf-8?B?TFgwSlNLR1JzclZtWUJTc2REQlllT3ZxeVl3Skhxb1h5VndWWElodXB3eEln?=
 =?utf-8?B?N2tPM0p3akdFVkszeVUwWkhTWTZWWStTa296bWU5TXZXV1FZd0VlY0YxVXlo?=
 =?utf-8?B?SnpWc0tDMDIyejRtb1kxcjUxdUc2UW9LT1FTZUVOcmRRMTVsZlB5Mk9BMGN4?=
 =?utf-8?B?Mnp3a0JEK3E3VVcwLzZ6MGdwVXFydGxFaU42a0dxcytOVDNFZTJldnI5QTNy?=
 =?utf-8?B?VzQ5ek96TG42ZkZSKy90bEphQUU0SHJuUkZ3ZE1oZnVEZDUrTTZWSVpPVGt0?=
 =?utf-8?B?NTJpOXNYQVdaWmdEamtEL084eG5LeDI0cWM5WDZIVEU5Q3o5SnB1QkxNK3I2?=
 =?utf-8?B?UEZDVVR4Ky9wd0p3K2NlMnVPQVdUSWV0VXVPU2JtMFlYTzhxMkRTNFdtbEpr?=
 =?utf-8?B?ZDJzMnFDSnN5SlFHOTZBSUc1ZDY1RDNWSFBxYVI4S1dmcXFTS1FnWnRQcXhJ?=
 =?utf-8?B?NFhUYi9jajhvZUNiUjgyaEFhSGwya0xCMXgxTWl1Y2dYZ3NtS3ZJYU1aZUNs?=
 =?utf-8?B?SWN0RmlpYk1RVjljMC9TVEo2UGRqTVpEZ1VERGthdzFBRTFPcjJMMVZlR1Jk?=
 =?utf-8?B?Y2NJWVF2TFREM3FmZFJycndXYlBMaGNwYTR2ZkFySmhIU01RK255bGdMaVpN?=
 =?utf-8?B?K2RaM0pNRXVXdXpldnRRWVU5SHpXQTRqczZQL3FLM2RpUGI5VlQ2TXBuNG9P?=
 =?utf-8?B?cW5NbmgyeE9VWHExQXFuZzJNaWZEc0FPRStjc2l5MnFvNEpSWjZwbTFFYWFJ?=
 =?utf-8?B?STYySVFKS0RsUGpUalJaMU5wRXJ0NVZ5SXhoYitHWE5VbU5PQ2x4b2hJUGFF?=
 =?utf-8?B?SWJjMEdkd0kxWHhEdFh6RENKVzRuVWpEVUZSbE1qTlU1TmcwRkd2L1VuWDg4?=
 =?utf-8?B?WHBoV2RjWUkwQUNzNGpCUXlqeERNWDBuM3ZPRWZaTGw4UjErbmU2cHFvSTJ1?=
 =?utf-8?B?YkEzKzB0elJ2WWhZa1ZRNjBsSUVVaXpQZTBONTAxWHZIbCtVQ0M0SldncUh3?=
 =?utf-8?B?bXRqSkJPSzhxdTU3T3B2ZVdBa0t1V3p4bHVWK3M0QiswU09MdGdtVXR1M0M4?=
 =?utf-8?B?VDJ1NzlDbHFFMFowWEVMVUxLd05pYnVDMTQrOXVNMlBzN1JKc0dXNVhqdjd5?=
 =?utf-8?B?NzlZSEJZYXQ1b1EvUFh1R2VXa0drYlA5amhrN0dHTy84RHRHOXVxcFR3VzdB?=
 =?utf-8?B?d3d1dlV5NkwzMVlBRnU2cWp0N0NhdTNOY2RVZjZ2clppQkY3RDEyMGNOYkdx?=
 =?utf-8?B?b0ZwdmRzMXp5WUJvV2NBc0NYZTR1U0I4b2drcVg0TGtjbkxJblJwejJtV2k5?=
 =?utf-8?Q?20p1W8q54hZB4Jm4BLshsAjdKurBdcMR?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NG1HcWFWZm5xbE00U2RsaG4zRGpwNHRJL0t0cmNrMmZBMGMveXcwOVJsdjR3?=
 =?utf-8?B?UUVUaDNTYzlhQmh4anRQdFhoeHFIRTZmbStiMnlOUXhMRVlyMkFjMllrYWMr?=
 =?utf-8?B?d2xLMFlPbUpiQlNTQnlrZElSVW9rZXprcUkzZGd2Y04zTm8wWGVRNFhnVjdJ?=
 =?utf-8?B?SWNQWDhWdzVXQWtHRlNTaWI0Z1lBUHNwL0UxU0N1MUFUaUMxL1RsME9CemZm?=
 =?utf-8?B?Nmx4Q1dLUnI2K2cxcDRvLzh0STBrSW16clM2M2NENWs1WnR5YlVHaEtvcHJv?=
 =?utf-8?B?OGxjR3VNSTY4ZzV4TGxGOHRCRFpKSVJjMVRkR1NiTFhkWUZGMkhzQjFaTkFk?=
 =?utf-8?B?M05Pai9YNWkrVFZuVjZSSjRkMHBWRDJrdDhJZVpCc2JFUzNZcisrbUxmQjdS?=
 =?utf-8?B?Ym0yY3JicjdPZVYzMnZFblhTKzlkNEtzRUlPK2RDRk8wcjZ1RWk4OHZDUkFm?=
 =?utf-8?B?c0wvbjlOb1cxVEMzSmg4OXp5RUo2VWVNeW9pWmdWTCs2T0NSZUF4dWhJTjQ1?=
 =?utf-8?B?UE0ySE13MHk1Um9neDdlSzI4cnlHeGFPdHZqdDVuc3BNUmNDamtxL1FmYU9S?=
 =?utf-8?B?aGNIekd5NGRVRE4yRFhqTjgwMUJINzJJa21rT2pmY0srTkJoS2lLWng2U1Uz?=
 =?utf-8?B?Tks0Z29JdzVuR3NQWVBsaFltKzRITS9JUjFObVBSbkJ2ZXRmWFJQc05icDFi?=
 =?utf-8?B?YU5NZUwyVzlxZEJHT0wyT3Z2NkZDSlFtQ1lUR0pTcWttMk1vbWZ3OFp6RHNM?=
 =?utf-8?B?OGRRMFBLR3FLaEUrcTBoK1k0NEtnempETDk0MFdqVzhWb3pLRDhwK3krSFVW?=
 =?utf-8?B?aHN1TmVzTUNGT2RMVjVsRWdLNTB6cWdRTlIvdzNjUkcvbDZKYTF5SmlXNEVK?=
 =?utf-8?B?ak8yNmJEN3FmS1BHbWVuVklhSjRJNDZnTFBzU1dtRnpUbFpKdGtzYnhHQ2tX?=
 =?utf-8?B?NDFSYld4Y3JBaXZLUHo0aEhNckhuYThFbkpWSG9Sdk5MUWt3aUYvSVRXaU5L?=
 =?utf-8?B?TkRyNGk0bmhNMVRpS2t4NjlJUG5zK2Y2ekt3MUJFek1FRWZrSWkvUHJWM1Zn?=
 =?utf-8?B?TW1zSGtuTUVKcjljUGlBem5LSWxUQks3amtJd2VIdGNTV2krRFVxVmhDenc4?=
 =?utf-8?B?WmdSd0R3dStNNHRoL3didzNRd2c4RlVVYmRnd3l0RWhneVV3N2V5YXFIT1JU?=
 =?utf-8?B?Yy9vWXhIenRNcm55bDJaSll4VU10bUZ6Y0k4NjVPQmVzcEswOWc4di96eUFn?=
 =?utf-8?B?SGhjWVJoazNkTVJtaUxabVFmV2ZCT2VRMjhYdmVwWFFDaVJ3M01MZ2c0SzVZ?=
 =?utf-8?B?RXJNY2tMT3Y4bC9UNVl1dWp0bm9tLzRqYWJRV1QxTE9Fdnc2OGFaZmpvdHp0?=
 =?utf-8?B?cmJtalFvTEJZT0hNNjhGS1luUGRKK214aFJYVUs1TUY1bzZsQkJIV2xDVmMx?=
 =?utf-8?B?QXV0a2RYeXRVK3lDbTRSTTJQQnpWYnVhY1A1azc3M2w1eWNmaEVTMEl3RnJP?=
 =?utf-8?B?Qk5rQnlqazcrMVljUjN2aGN2OVR6anB3dGx1WXZnejF6aVVPNC84MDkyL3VZ?=
 =?utf-8?B?TDZ2cFlXV1Q3cS9INkNEeWNPY2E1cE03bDNLWGZSWkg3eHhhcmhZUldlYjlO?=
 =?utf-8?B?Sm5wVXU5L3BGdGxKcURBYXVaNmRjYVQ5RVZZc3l1OWl0QnNQVzhGOEk5Rit6?=
 =?utf-8?B?amZ1dWVUQ016bEZTY05NOERmL1VVaGxjRkNoMFJoK0hEKzdsYlJobFJQekNu?=
 =?utf-8?B?L3ZQSno0NitYU3Voc1dPWmlvWkNUbUM1SkVudG5vcSs3L0h1amIwRFVZcm1R?=
 =?utf-8?B?QUtERTN4dmhyYUhpUHdwakpDRmlZa0tZdFlEQlp3ckl1RUhjcVhQL2k2dWVT?=
 =?utf-8?B?eHdnRjJiMTM5cmY1Mm1NVjZpdndnVWV6cks0UUk5aWIwU0Q2N2lQU0F6T1lP?=
 =?utf-8?B?SjdKTkh5ZkVPYUg5RkI0MTZUTytIUTd1RVVsaTBoMmRLVXhPMU9HbTVQWWow?=
 =?utf-8?B?QU9KN1RoTWlTTE94Nk1hbFhaRmQxMTIyWWRpc2dTalhrRlNoYi9PeEdxZTJG?=
 =?utf-8?B?Z3VzT1ZCN2hVVksrSEZLUG1taGJoZHpzYm9tcWJ1aExKNmxXeVlidnlYUzNU?=
 =?utf-8?B?ajJjdW03VW15TFFrZk0yRTREV1VFYS96Qm1ZRnQ1VDdvekI4SWtmeGNWVWxu?=
 =?utf-8?B?bno3UWJ3aENid3VFTUhoRjRaQk5HbWN2NUVjcjR0LytSOFlKeUVMbEhyMzhn?=
 =?utf-8?B?dVlhbHNyb2UwTHQyZXVOSE5mUjllbDJqeE5VT2d4d2xreXAyckZaN1R1MWdL?=
 =?utf-8?B?K09pZWJwOXFMekhad2pQNnh2L05sQmhXajJBOERDUmtCdmJXQTZJZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: adf02e69-260f-493a-db38-08de422016f6
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Dec 2025 12:37:52.6309
 (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: QOOhedc3sYfV4M9jdoLzWxrhp1l9B6TqeFbIvPT8LiowHNFgkmxP9MGVTX+TtV/Dv3unTusDTj7IQ7c0Z28wa4U02x7kuIX2WlMt3ljDZuM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR03MB8373

On 22/12/2025 4:40 pm, Oleksii Kurochko wrote:
> When CONFIG_NEW_VGIC=y and CONFIG_ARM_64=y, the size of struct vcpu
> exceeds one page, which requires allocating two pages and led to the
> introduction of MAX_PAGES_PER_VCPU.
>
> To remove the need for MAX_PAGES_PER_VCPU in a follow-up patch, the vgic
> member of NEW_VGIC's struct vgic_vcpu member private_irq is changed to a
> pointer to struct vgic_irq.
> As a result, the size of struct vcpu for Arm64 is reduced to 2176 bytes,
> compared to 3840 bytes (without these changes and with CONFIG_ARM_64=y)
> and 4736 bytes (without these changes and with both CONFIG_ARM_64=y and
> CONFIG_NEW_VGIC=y).
>
> Since the private_irqs member is now a pointer, vcpu_vgic_init() and
> vcpu_vgic_free() are updated to allocate and free private_irqs instance.
>
> Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Oh - even smaller than I was expecting.

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue Dec 23 12:41:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 12:41:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192579.1511726 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY1hg-0006N4-6o; Tue, 23 Dec 2025 12:41:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192579.1511726; Tue, 23 Dec 2025 12:41:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY1hg-0006Mx-3b; Tue, 23 Dec 2025 12:41:28 +0000
Received: by outflank-mailman (input) for mailman id 1192579;
 Tue, 23 Dec 2025 12:41:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mhFC=65=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vY1hf-0006Mr-6J
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 12:41:27 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b0edb3d1-dffc-11f0-9cce-f158ae23cfc8;
 Tue, 23 Dec 2025 13:41:25 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS4PR03MB8373.namprd03.prod.outlook.com (2603:10b6:8:32a::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.11; Tue, 23 Dec
 2025 12:41:22 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9434.009; Tue, 23 Dec 2025
 12:41:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b0edb3d1-dffc-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ba+RymIu72/q6FRQAY3XyT2TxCRjxnoIIPyxWgit5i2AHNZLdeZbItptGvSPXAwDevNFKKECflmx0gCEz7zWuxvUAkat0tQiT5Bl439tdt+u0k+SBSIpwWJLSKN+bQQ8HCojGX61ggVtQ0y++b7LLZJvhvi8wucpiUba7PqDs9qu8m06LNiPYJbNJzHwLMYo/8FunUl2q/RvaQ+o55yIFXjv0iMztejwuBzAO5/5uzwhSsopriu7JiRwLPVkMgTjyCuYcUMJDvkFQO6RgqSJsAcUf5xIJcvRt7ilBI0ntxWL+0kD5yIhBgpjRct3b3atNJQlQZ2eZEgLu5g3rl/W1A==
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=O650c9BC/H70OOHHoYAtvyDGLtk5I6CFDLKt+5L+XpM=;
 b=eLR168EADmd22oIrFeirqFBaTu/JwmGlawz9rKFfnIYAuuynJjY/xnlmU/B0G2z3Cu+3jIbsiRbFFw6054dOTWYZTb7kezwB5GD6cFe6sgL9eYznhtbS4UQod0uuJeyCigeV995qcWgJxRBw7ysHnRnaSNyzLQU2e2a+bglZqfgUQu5PFgoXKhQFogXLGx5DdvEOcgf+B9mc0w+vLyi0hUgNjGYx8ls8rWOlfQ/JvPc7ZtS4yDX1TLax28c21tc4YEUTluy+0oB/GXaQGn0cXKoQFXaGIF1H3zJhZVoPs16ycscfmofsl4hpxbxWnuX66qPO3DTcNrwpjcMrPGSX6w==
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=O650c9BC/H70OOHHoYAtvyDGLtk5I6CFDLKt+5L+XpM=;
 b=jl4MQcqn8m4jrOP6IlmbbkSJkonzfRLchqlFqa+iWJny6wKA0ScVDbDwBeOny9Hv9T1XxTaa8y0kVxjmsKj03HZjAuEr9UlK4tqYx7qJNpTHofU+kxUQ5RE8rDfD8mjU6vTa8rpnupyv5Yal+HRggFAkG8kp5NgV6tI0dxLCYxM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b4141bb3-a428-4b2b-8492-033e5fa21555@citrix.com>
Date: Tue, 23 Dec 2025 12:41:18 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>
Subject: Re: [PATCH v3 3/4] xen: move alloc/free_vcpu_struct() to common code
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
References: <cover.1766404618.git.oleksii.kurochko@gmail.com>
 <31208135cc61a8c8e593a286d450c2ec7757d118.1766404618.git.oleksii.kurochko@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <31208135cc61a8c8e593a286d450c2ec7757d118.1766404618.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0296.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:196::13) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS4PR03MB8373:EE_
X-MS-Office365-Filtering-Correlation-Id: 95be0edf-47a4-4b50-820d-08de4220940f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?N2xpQ3ZGb0lHLzBRN1hJWC9XTjAvSUVSQXZQQ0U1UE9PdUVzWXBnTDM3Zy94?=
 =?utf-8?B?OURQZmoxVjd2ZUVZQnFObWV2WlZ5TkcyS29QQk1aSEsrR3M1dDJ4dmNUWW5Z?=
 =?utf-8?B?clFaOTdOWTd6blRYbWlnUnZOenBxSkFsTkx1ZzRaNC94c3ZKVzlZQmFDREZU?=
 =?utf-8?B?c2pPZjkyS211Q2RtM25OVWtnVnQ4K3ZUemVvWWhpaE1GZG5iYklYNnhWOGdT?=
 =?utf-8?B?RzEvd1YxK2ZmMUpZYWF5VUFFR29xQ2crcXhFeHEvZmFlRmtjUmhGSi9vZVlM?=
 =?utf-8?B?WmN2OXNLNkxaU3JHTTNOSkNhY1JObmFHWmhKT2NhWGRhekswMWdjQVdkbFg1?=
 =?utf-8?B?UWh0THVFRmRDT0ZScFVjVFo1ajNFaEpSRUJOTm5hS2E4cUEyR05MK3ByM1pv?=
 =?utf-8?B?K1JZdnA4Q1FYYUE2WGZxQzNidzA4SCtNQkpWRlBUSWNxV241djd3V0ZVNHRz?=
 =?utf-8?B?ZFJrN2NUL25vVVlFblN6YTBsc21USURhQmVBVjFKWjMzbXZ6RGRtSVV2Ly9t?=
 =?utf-8?B?TXYwaEpPM0lZK0c1eTNFNE5VcHkyVlAwdXpNN05hdWc1eDNzeW5CTHB0YnRV?=
 =?utf-8?B?ald2TnNzeVU3clBCT0ovNFB3dXZhUHhIZ25saEdxbHdMU2kxcDBPOEduTHRE?=
 =?utf-8?B?K1d6M1k1Y1QzaHd0WFdNRnZVbjByQ3ZNRGJkYkp0YlV3RkFGUGVneWt0VWJw?=
 =?utf-8?B?RmVOQVB6ZVd4cnJ1L0VKRGI0cGZwVCtPQlV0S3NUKzkwVnJpQy9uRjlkR1Bj?=
 =?utf-8?B?cTBuN2hPNUl1alNaVTNVeXoyNVk5RVlsWlJ4RFdncE9jVm1mVEdycHRqekNu?=
 =?utf-8?B?TlB0bElOR1dGWTRJdkpYN0lvRnI3Mk1lN0poTUFUWFlpbmpkU1JJTGc4VWlJ?=
 =?utf-8?B?NDVnZkRuVzlLRW02czF0RCt4aG1RZ2FBLzR3dTA2ZndGNHYvSmJRZEVvYkZ2?=
 =?utf-8?B?aDQ3UnJWdXEyZkdRWngrWkVoOGQ5V0Fhd0wvTXU5MlZ0dHN4QXliV2tuNjFY?=
 =?utf-8?B?MlZ6SEJvVWhOZ0xEM1lwa1FPRlBwbm1Zd1BnSFA2Tm9CdnNLZS83ZjVCdWJ4?=
 =?utf-8?B?T0wwVFlSQ3VxUVl3aGF3NHdJMlVna3ZRUkpCNk96WGZqb3BiVk5qL3hTWG9O?=
 =?utf-8?B?SmE4MDBMbDNmWlIvc3dkd1c3QkNqeU5HWkdEVThNU3NEeXlqaEZRNXhYM0lZ?=
 =?utf-8?B?N2pyUUZieGZWL1QzUGptUzlpNm5YUzBiWEJ6cVJaaTFYUWRqRTl6K1dNdjJT?=
 =?utf-8?B?K2FpcGNRa243MGcyTDcvWDlLanBXTE1veVEzWlpQcWxNVDdUcGxZY2JFMCtE?=
 =?utf-8?B?RjFmdnZaR20wemxSK2l2UXViZzk5ek1ZTmlUMzJUMy9BekhwMzlGbENOa2hD?=
 =?utf-8?B?MDM2bjRKY1YwQktDTHJ6K0wxVTdmS1h1SHZTQSswYlA5ZUJBcllpeG0vZkgv?=
 =?utf-8?B?VEdKVHFGRVRCMXFCS2o5ZmZONkpJRWlIdWJxVlRkYTBwbjFBTldPSDhlcS9J?=
 =?utf-8?B?WVdvVXBoblAyZks5LzVRR1U4bHpFaW9ZbUNvWmp3Tkp2KzZsNjFqUnJMQlV2?=
 =?utf-8?B?QnhsMndCOVFIeVJPQ0F5MTJCR1dVcnRJRnVwL0NqMzRBTGJNbHZzY3o2N2tG?=
 =?utf-8?B?RHErODhLY1EyNUdRSXBDeVJtMmV1bXdpRHZOOUxzUmZMK2RWWXpOZXljY0dp?=
 =?utf-8?B?alREZ2MyWk1vS3hzd09FRWQwTjFkWUJqVm04U3B0ZXA4Z3hJTmovazhhNWtX?=
 =?utf-8?B?UVRFbkFtMnNOZ21TTlZyRkdPSEUyd0c1QmZuOERFNXNRN3FacHpHQ3hWQm5C?=
 =?utf-8?B?SENudFdGZjNDb25kd0ZQVUNJMGhZVml0U25rTi9PZGVFWnVVc0pkeXFNZ0d6?=
 =?utf-8?B?WWE3N0xtVXZkU1g4WmYxMitqQnE0bEJkM1Z1TzlHSUdGUW5yeVA1eDdJZjZU?=
 =?utf-8?Q?l8Tf9o1vBFk2G0RwpRQiQ1LoUbP2nRLy?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WGxKbnpHM1pTNVo1OXE0Tk5kMGN4MzVvV3prOGcwSjhRRDRPNWIvTTZ2SHF6?=
 =?utf-8?B?WGQvRDJwQXJSeTNibnJEYUgxbXRobzhFZlRiN3NlOUZZWkZaeHlIbXNnYXhu?=
 =?utf-8?B?RmtPcHVjZHlkbDlwSzhOWXdQUDkwVkVZVGxiZnBMM3BzWjBycnlqSkZBczY0?=
 =?utf-8?B?OUJCazA2Zlp6ZCtNMU5rU1ZVWjV3T1hoakxvZWQ3MmJwM29PL0NJa3pxK2Zv?=
 =?utf-8?B?dXJHV0svRnlmakxkcXJXREpQOVNqZWZ6emRJaWpyVmhGMkcvUVRCL2p6MGJS?=
 =?utf-8?B?MUlyeTJjd2lBazBjL0lzMEVBMWZRbGZ6SzRQeHh1a29oZFhjVFRHaUdWVEEy?=
 =?utf-8?B?Y3Q4TmRybitac3VKVDF1ZTR1TldEU0h5SzA4d0kya1dRcXY1anhyY0VHUjVQ?=
 =?utf-8?B?UUgxVnJVVEtTSnJCSWZEVk5admZvRnFlc3lHTVpJdThJaDhISTV3UlRlY2FT?=
 =?utf-8?B?NW9KVHBJYmNQd3dmUHBaSFJoaStLRTVlSlp4VTVMem5OeklpanlzdktkcHNm?=
 =?utf-8?B?YlVOanhKUy9TQ3FRdUY5MkU1aVk5Q2lHK0FEZGVGOXNvMG16ZG5NMVIreGxs?=
 =?utf-8?B?RTVPMm93RlhyaFRLVVMrb1lIMFZYdXpmMkhjVDFKb2txYit5ME5KOTZzU2tw?=
 =?utf-8?B?ZUlaRWlDbVdxdEF0NXlBRUVKZXA1VTNVZks1ZCt6RVVoN1JZVkoyUXNJOUkv?=
 =?utf-8?B?WjRlSUp2K25Kak02czdRbFlYQkFwVTJ5dFIrUWl2emVzS3hWbmZyR0ozbU83?=
 =?utf-8?B?YzdoWUcraG1nU21CajdpWVVjY0E2V0JOWTFEdWNQVW9DZTcwS3JmYmhCKzhP?=
 =?utf-8?B?RzF1YmF2NmRETnJUQUxwc3k0UzRRaGRnTVcyUC94N053dkRRUER3Zmo4UXJE?=
 =?utf-8?B?KzFldFdXYXZtMFRGaHNuTGUvb3JDMHg0QWlvS3FiOWFLRXlPalN2NDZoeEtm?=
 =?utf-8?B?TzI2UlZjT1krclNacnk4d28zbFRSZnVJeVZQUUhORU1pblhLdWpTdUNHZUhz?=
 =?utf-8?B?Z2dMT2FmZlRhS1dZVUFqcDJSYTRGc2w0dU9LYXhoeWxvM25nM2wrOVlZWXBG?=
 =?utf-8?B?OUF5Q1Z4YUxLb2pxUzdXWVY2c2Z3VExCMWZHZEJvV2N2T3JmNGVzVkNaSDdK?=
 =?utf-8?B?T1MxUjczTjBxTHU5bGJqL2hsTE8vd3pPTFpmQThUOGFCeFBxM1lNeUNiSjFh?=
 =?utf-8?B?alFsb3BPTUw0UDQwUGxuRXVuTUJlY1BKS29nMGE0LzBNQ2hvanZBamVqQlMw?=
 =?utf-8?B?dWxIeExRZUMreVF4Z3BMaGxnUGg1SzVhOEc0T3c5TFYxMWJndEZZYVFOZnNR?=
 =?utf-8?B?M0p0VGg2Nk5CZzB5aFB4aUV3VTAwQ3hBdXFzT3d6bjlxeGhCd0tzbksrQm9t?=
 =?utf-8?B?bno1bENNeVAzWDFrME9la0V3Q0huUlNlV0hUWVhkSmtJWnYrQ2ZwQi9jdEJF?=
 =?utf-8?B?b0V3WHRCUWRnMkVXQzkyV0swR3ZWNUErSm1pdWpudUwxN08yS29zOGZ6SjRr?=
 =?utf-8?B?VUpjeHZqNEdFQ0xhYjlJQ0FCWjk4OUYvV1hneWY5a0NGN0swekV0OW5adEZT?=
 =?utf-8?B?SkpDWDFWNWE2WEx0MXNJazRPc0FNa2cxalo2N2hCTUk4enV5NmdHT0tmdzNV?=
 =?utf-8?B?US9HQkxYOVBVblBLWkpnbG1kUi9RSHBqU2x6V29NRkpiVGw4RGVCY2xiaTVz?=
 =?utf-8?B?QUthcFV0TGFSZ3p5ekNocEZYMWQ0NU0zaG9Xemt4aU9zeXIrblEwekQ5d1Y3?=
 =?utf-8?B?cnczN1E1S2pidDdvQkx1TUp2Tk5DU3lqRUdxVzV0MjB4NHJTN0dVRVdCVk5a?=
 =?utf-8?B?K1ZVbFZnWDBpVE81a3dCaTBHS1UwYUxOeXVNblN5NVhmMHpRakFzOXdSckFp?=
 =?utf-8?B?VExPaTQ0VEllNlY0Q3JIRmlCZ2daVHg0bjdLVHdNY0dMNUNSOGR1RVdBOTRp?=
 =?utf-8?B?Q0ZkeHF4UXhoTXF2YXRtTW9TK292dnBLY1o0VFBZQmJTWFV6RUJETnZ1WkF1?=
 =?utf-8?B?M3NzdG91K3crcVU2bXQ1cjE3Ry85c3NQV2xGMklUM080Wk5zSStoM2Z1NldV?=
 =?utf-8?B?cnRUSHIrTlN3bDJLbmg4dFdPVWRaRmVFVG5pVnhDZjBjOFpIYXQxN09jNi9B?=
 =?utf-8?B?ZyttNVUydUloQzNHZ0s4dmplbmxjZnBPc1ZDL3l4SzVrdUdkc01aYjBHS3hE?=
 =?utf-8?B?SWlsL0dKYUdRYzJPK1FMaFBPUjZib2VoaHpFemZrWVAwdlJwQ3pNa2R6dEIz?=
 =?utf-8?B?eGdoTWd0aC93VkU1TDd6TDkrRFlSbEFKdVl0OCtWY29mdEZ0Rlp4Q0xqY2RH?=
 =?utf-8?B?YnR1VUxJSHhYN3RwdEN2ZzUzcVptYWFaNmhXL21BUHNiVWhraldDdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 95be0edf-47a4-4b50-820d-08de4220940f
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Dec 2025 12:41:22.5116
 (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: DGoMQqGsaiK75lorw36B1dZRMKkhKsfUpC4Yz8TT4h0AU5CNKbD10aQRva76lyTpelg+nJdZuDbS8OYcq4DE0NNnYDd7a8RvNeVNrGpBPIw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR03MB8373

On 22/12/2025 4:40 pm, Oleksii Kurochko wrote:
> alloc_vcpu_struct() and free_vcpu_struct() contain little
> architecture-specific logic and are suitable for sharing across
> architectures. Move both helpers to common code.
>
> To support the remaining architectural differences, introduce
> arch_vcpu_struct_memflags(), allowing architectures to override the
> memory flags passed to alloc_xenheap_pages(). This is currently needed
> by x86, which may require MEMF_bits(32) for HVM guests using shadow
> paging.
>
> The ARM implementation of alloc/free_vcpu_struct() is removed and
> replaced by the common version. Stub implementations are also dropped
> from PPC and RISC-V.
>
> Now that the size of struct vcpu for Arm64 is smaller than PAGE_SIZE,
> MAX_PAGES_PER_VCPU is no longer needed and is removed.
>
> Finally, make alloc_vcpu_struct() and free_vcpu_struct() static to
> common/domain.c, as they are no longer used outside common code.
>
> No functional changes.
>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> with the
repositioning as per Jan's request.

I've found one error in the comment block, but I'll submit a fix for
that separately (so as not to mix it with code movement).


From xen-devel-bounces@lists.xenproject.org Tue Dec 23 12:49:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 12:49:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192594.1511737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY1pG-0007BW-45; Tue, 23 Dec 2025 12:49:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192594.1511737; Tue, 23 Dec 2025 12:49:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY1pG-0007BP-0A; Tue, 23 Dec 2025 12:49:18 +0000
Received: by outflank-mailman (input) for mailman id 1192594;
 Tue, 23 Dec 2025 12:49:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mhFC=65=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vY1pE-0007BJ-In
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 12:49:16 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c826873e-dffd-11f0-9cce-f158ae23cfc8;
 Tue, 23 Dec 2025 13:49:13 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH7PR03MB6996.namprd03.prod.outlook.com (2603:10b6:510:15c::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.11; Tue, 23 Dec
 2025 12:49:09 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9434.009; Tue, 23 Dec 2025
 12:49:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c826873e-dffd-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Qp+l5cRhWCEtaZCHeqOVxvsSIqFtlCSuRmXS/oxxlFccn/13Ocb28oAXHB4s0poh31S7z7iml58Axp2aHAiVb4WNtRNK316+eXfuBI2zKgu6dH9EdRddq6M4SKAHumx6gcCyPYZJ7+8PYtGKAHkL95LJAr8kSjxyrHwdnb2vmxcKVIHGjlIDws9GtWq6cUDP/p+Rb0h7eu2odqwX8x7EC2X5M/89yZUJgFwya4S0d9yKLgLXKLMD2xkjFch2SRAkvEgdvXmDQTpSqoO9yYHPhVnQvA7uFuBpE2A/n4RaKIP3NIIipDiHalyZHOIjw3kGRuCG/nIWITE04j4MQou1Zg==
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=OvtHB1fhW1bQkgT5uJqvYrjtYSk3CU6PW835zUbhuoU=;
 b=RV0ClacQFViAzoNUzdcx+Gs79ugYeuEpE4m7CNzdATbZpnkyMenWHxCNqKrGq3uK1Xr9sQaMqf7ELRco3tLWyo7iQ24L5/f50tdpxYK2UREpLLVM25YkDtMek4FDZb8xNGjuuEJtzJvJWqE8KOOS2Ez0jfez3v3lCPqVWlPenxiebmAusdtPFeG3AtgPVvpaEoZjrLEXBOIA6fS13twxz4zCDrn9T/YoPhNHGU5atyWPNdYvMBMeXY6OYd9Q8xqMbT1jKs8SREP51fP+wFSgVUD0MSHyCVz5C4+aZT2uEArKE3wRUdJ7fveI3rUV2nritezGT5JvLXXiLA1ts/nWuQ==
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=OvtHB1fhW1bQkgT5uJqvYrjtYSk3CU6PW835zUbhuoU=;
 b=NrqFVQBHJZ3taVNdKSb4Mgslyys2Ry1K1tPHZxKN1qXEJZfSLXVCi1TK0GeN8M7yunB9w6pWxSy7EeMyuWrjkbi0WHvafDpyKEj3CyStIrjtaL4KGpGcFzVcZ0d4MxXxdQS9Px6HXq9ije0bR56HgDjrfR59Zcu8wU2jkPy1HIs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d350d06b-6e38-4797-9c28-6b7960f854b2@citrix.com>
Date: Tue, 23 Dec 2025 12:49:06 +0000
User-Agent: Mozilla Thunderbird
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Content-Language: en-GB
To: xen-devel <xen-devel@lists.xenproject.org>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH] x86: Correct comment about struct vcpu memflags restriction
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0084.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:190::17) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH7PR03MB6996:EE_
X-MS-Office365-Filtering-Correlation-Id: a164e14f-da1a-4f8e-0fba-08de4221aa55
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RU5QKzFXUVExS0FaL0tOVkJOSmhaTFRReDBacWJpOCtCRDQralpDN20rWTE1?=
 =?utf-8?B?QSsycU9WdmlIM0lPeXF1ZU9YRUZaeVFidTkxZGFlTE5CYmkyRytjc3FuR3l5?=
 =?utf-8?B?SEU2bHJEaW9XY0FMUEJBVGtnakNJUGY0ZEpDeGQyYXM5bW1IdU1yekpkbTBq?=
 =?utf-8?B?N2MzNExmeU5ycEtwNjNtVHMzTDU1cE1QcEk3Tk9TdXFSY2pTZlJwL1NQNzRO?=
 =?utf-8?B?UjdEdTdiaW9aTU05OFk4Yk9jczEvYmlRUEtySVZJQXJYTVBMakZIWE9FVnRr?=
 =?utf-8?B?NG1NbFMzcUJBQUFaVlhIYXhGNklyMEJua0Y5QU93L282N1BNc1ZMTTFsdTE3?=
 =?utf-8?B?a2d2T1FZQWxwY2RNdExMbllkbHBrbHNNMklFSTRhMFRvbzVzUHZMTzc5aGdt?=
 =?utf-8?B?NHNPRnE0TlJPZmt1MHpDZm1zQ0pFUkVQbTZ5UnNiUjVWUXpjMVM0QXFES21w?=
 =?utf-8?B?NlZ4ejVKcXA2ajd5TGJDbXgvMlFUM1h0UmJjTkpCNzRXMlczdlB1czBya0Nu?=
 =?utf-8?B?OU5XSDRTNm1rKy9HTGh6WitWeDU1ZVREdkpHTGZWRkExWncrQVEwWXV5LzVP?=
 =?utf-8?B?Vi9LbWN3cG5jRld4Mml1L3JaaHpkSTVDN2lWRlZBdmNXWWwySzRJRWxHckFQ?=
 =?utf-8?B?M2RvcnhTTVM5MjBNaUVzc2FZN1J1bGhjdXZaZW8yZ0E3SGttWXZoTGtLaWVN?=
 =?utf-8?B?alNjSDZqY1AvL2FhR05Zck9XMmxPYkRCMHRpS1RUeVI5WmZGT3YzTGQxYVFu?=
 =?utf-8?B?cHFTdnFCU29ZdVVZczZrTnZnOUpVRDhMVElHT0hDK3pPeUNhdkFMNFEvV3Er?=
 =?utf-8?B?SXZUN0NiMGtOQmFpR0tWR0xRVE5CY3VRbFFHQkwrVytTVUw5VWt6cTNpTVFJ?=
 =?utf-8?B?cmZpUWI0aEYyRTVWdnpwdWR6eFdoaHduTmMxdGJhUXY2NlovME1ya0FZZGRZ?=
 =?utf-8?B?TzNjWGNhK3EzRjFEZU9uNVRlUjhUVGZnekNpSGRUSkVabDVlVnNTcmNOek8w?=
 =?utf-8?B?dk9wZjZHODhtZzhkZk1MTW9hOWVtcDljcEROZUtUWUZUVlBPZkxGQ2VsVTNF?=
 =?utf-8?B?U3YvNWJLbm81TWd6SzBUVTJnOVF6Z05YeHhqbnEwZ2xVMXNtNXh6N1BSVTFl?=
 =?utf-8?B?cFFXY2JVVm0zSCtUbjQzQXJDSEpick14Rk81SkordHk5S3hkbnNnM2JwSUNZ?=
 =?utf-8?B?R21YdUV5QlhiZUxyS3RQZ09CUUFTa0lDUlZ3NnZZYWhNd0hGczBkQVlmOFdH?=
 =?utf-8?B?eE04Rk9PbnpRSVZDREFBalh2cTY2Q0xudk9pR2RVMGYyNjE3UXhGd2VkWHFK?=
 =?utf-8?B?SEU5SFk5bk5pMmNsMUlCNHZZZXUxTG5CaVZLVlFkTmRvZEFXTzFwV1JoRm96?=
 =?utf-8?B?RUZjNjFSMmsrVCtTbkZHbUhNcHRTTjhqMERUNkV5SWcxRHhUWEdPSWl3cFVx?=
 =?utf-8?B?cjJjSTVnank3ZldmdTJadHhibk1NMHd6TTBMdk5Ob1BlRTV0bzhWSUxaS0wr?=
 =?utf-8?B?eUIzQklCaHd3bmdDYWh2anIyUHFOSnlsTThFZWp5bklKdE9YaFNoRkM4c3dH?=
 =?utf-8?B?ZU83OEtIUFB3b0JNcHpDcndlSEhDQThFaTZ4WnpCSzBrQkRVb0R3QkZPRmxI?=
 =?utf-8?B?MTRDd29qbnNSWDFIeStDM3lhU1RXeXFuQWVFcld6NHc4b0tVTWEyWDc2V01P?=
 =?utf-8?B?Wmt2VDZyR0FoYWEyazNtVFVpdndOKyt1c1UwQVZPNzZCazFIbDlNQWNQaUJm?=
 =?utf-8?B?WFh4b2Z0MjdzYTZLWVR5dFBWd3JuUnlETmZQT1owTXYrcVJ5OVBhYks1TzVy?=
 =?utf-8?B?a3dlRDhOdW9vQ1hNdlJYOW41emUzZW5idFF4TS9LdlRJMzcvVHJvSDJacjNj?=
 =?utf-8?B?ZDRaK3pNejNoWStrd3ZzOS9xNGw0V3M1YjB2dmhyeHdwV3NtRWdMM1JVV2pi?=
 =?utf-8?Q?je5d7Y1nu1Q+S035Biu6QE0GertUZdno?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?c3FoOXRuWmc2eU14WW9STDY2UGpmYWJ3QnRRbGo4K1ZMNEJNdkxtYnpVK3JV?=
 =?utf-8?B?TFhEdFhyTDhIeGcrdkVjVmNNdk5lWVA4UU9nR3p1eUx0ajFuZ2t2ZW5uQ2Vz?=
 =?utf-8?B?bThvSVB4QjVEVmx3WlBoVzlkMmJxUndWTVRxbktkSXRMdTZpN0xZQ3E0aUJB?=
 =?utf-8?B?WGlsRUhSNE94Vng2QklCOUxvY0V0a1k2OXRwcE1tNzk1NXVBM0MrQmRzNllP?=
 =?utf-8?B?SE0vODg3bU5uSHZRTUlWQ3NDb1FVK3REd0RIbnIvcVVreHlZc09yL1FCK3JC?=
 =?utf-8?B?SEtrRDdSeTBiZlVjY2M4SllQdWJpbzZxeUY2OG16VzlmcVFNNzZjODN5WEx6?=
 =?utf-8?B?OTU2ZFNYbDRnYTc5Q2V6ZFpHUms1MXVmN2YwekV6OXgydU5qV1FWTHdZbHRv?=
 =?utf-8?B?WGcwVlRwODhUTmdGSHg5MDhSdGZKSitpMmgvb3Fpd3BFNWRCVFdmUkNPaWV4?=
 =?utf-8?B?Wm0zamFLbXpFV28yZDl3aHR2NnFSdnRYUnE3UnJmVmxtVVo1dXNnUTFFV1p1?=
 =?utf-8?B?TnowY3Nnd1FvM1pTQW1yUUVKdHlaZHNCM2hxUnFKRmZBaEZTVmNnUk9pT3BQ?=
 =?utf-8?B?OTFCQkFScWFqU25TT2YyYndyaURZQThRZTd2UWdQNFo4aTkvTC9IcU5CZ1Ux?=
 =?utf-8?B?Zng1MDA3MzNNeDdhSW9pcjRFakxiK25GVEw1L2NGQUVsVWJJem1iSmMzdkFO?=
 =?utf-8?B?ek5lR0V1VEFmVC9YeERlcURWMGhrajQ2Q0s3c3VWNkhWZVU4U0o1YlRxVEU2?=
 =?utf-8?B?M3llY24rWXI0S1JVN1dMNHBQZ3ErVVV3UEhRQTV4UUhDTjZhOU8vRmFJTXNv?=
 =?utf-8?B?dlRHN3g3YW94czJBTXFBU0JWSWs5aEowSERxTEx3di9pbGFLSEI4QVhyeEFp?=
 =?utf-8?B?MllwRy9tdkZHc0tJanF1SFZ5OTJNSm95RUpQTUV0NExNUnZPeG40bWlKdG1B?=
 =?utf-8?B?ZUNCdUNNdHBIK1N1S2VQT3F1NWhZTC9ha3huelFUcS9ZWkVvKy9QZU1WMDBj?=
 =?utf-8?B?NkQ2MEozdTM4WVJpZ1JrVkZERXRXM3JmRTZtWTc1QzVucENSMHJBdThDMlgv?=
 =?utf-8?B?TXBYYmNySVpVTTBRNDFpWnBteUZHTy81cTQra0I4cXhnVlRhK1BMWGdRdExs?=
 =?utf-8?B?Q2FWcGY0bXhXRWFqNVlOZXU3TkJ1dzhORWNVNUhuTkl5Y0pvOHkvaTQySXlS?=
 =?utf-8?B?cVdEbkxXWkJwTS91LzhGZjJzTmN0YkZHOWhGQTNkenVPWFhKMGNDaFY2VjZB?=
 =?utf-8?B?SGRnNnp2OVMvdWFzdmZlbmZTY2Ezc3YzWk1HM0NxOG1yaXI2U1dxRmFuclkx?=
 =?utf-8?B?d05EVVlTZ1ZML3RBdkl4YkxmRFlWcm0xeFVnVW5oZEUwZ3BJQmdXVWx2RWJB?=
 =?utf-8?B?UWtlaktTNGNCTEw1bXNlRE1IWUZPT3JzSmd1YTNKMEQ0NWlTbGhVWmJTenFB?=
 =?utf-8?B?Qi82d0E3UjRVSHhMeElBc0xNUDgyZmlzYWQ5TWVFcmtGQUtKVm5qMW9FdmR0?=
 =?utf-8?B?UGYrWTBuM2hKQnk3Qk8xbjFQeWhoaTdIWUF1WVE5a3A0ZnpOUFlJTEVJaDFq?=
 =?utf-8?B?ZEpNUFRTREJNdVE5eTBkcE5ObW9NT3NHRVkvYlp2a2Ira0o3dE42YmpDNVVF?=
 =?utf-8?B?N2JsdXVvRy9aVXhYOGpMN2w1WUpuSlRBS200cFFYbkw2UmRrZGFDanNpL1Ey?=
 =?utf-8?B?TVhUQngzNmlDR1d2MzVtcVUzSGxpOHBrRmQ1aHJBM3BhRHg1NEIyV0E3aU0v?=
 =?utf-8?B?eUNCRlJWc096dnJHdDdxd09XQ09UYnBMVnE5aGVqcnlFYnRtS2RXbEhjd2pl?=
 =?utf-8?B?bC94amZvVmtUd05jOElRQm5VWHlRZmd4QkJwa1R1UHpEWlFaNXZxaHdyV3Np?=
 =?utf-8?B?VGtOMloweitUSmJpTG5OSHVXN21PcXd3U0NoYzUvRVRxenRISDVHYnpzL3h2?=
 =?utf-8?B?bkptcjRubk9jN1l1cksyVThINlByKzZISDV0a0xqTW1ac0M2bjlTUGJlYU5D?=
 =?utf-8?B?KzZ6alUyVExpd1BpMDBSZHRFSElGYmxJQ2djZGgyOXJBTUpKVEk4R3VjemtO?=
 =?utf-8?B?d2FGOEpVQm5HR3M5dVRLZTdPaThVbFVyZkVQTEpNdGp4RFNuSjdCUHlybG5S?=
 =?utf-8?B?cFU4NG5JdTR3VFhpVTJFSDRXTVBON2RESlZVam5jMnorSTRteklaelpJdFRW?=
 =?utf-8?B?bkl3d2FWZkgyRW5mWWgrbkQwNURLMjlqVGJSRXBnbEErQml6S1cvVlpxR2w0?=
 =?utf-8?B?MHVMTlBBcndGZjU0b2phVmZJVEkxZ1lVRTlTK1hNcTdrMGhsYVNHdUJueUJa?=
 =?utf-8?B?YXBneVBTSWs1YjUvUkd4a0NWSzAyN1dHOURlOUNjZVV5OGxxQVRrZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a164e14f-da1a-4f8e-0fba-08de4221aa55
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Dec 2025 12:49:09.4191
 (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: RoA+5thX5OcHucCmLl6uiYc07qFYE6/bEZttEFQWhBJYeaWx9T6LkjCNPRpfkRDG21MtD1H2x63vuc04o1Zj9aBA42GEgsIUD++ftzPIF6Y=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB6996

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Based on top of Oleksii's series centralising struct vcpu allocation.

diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index effb23a23416..94b0cf7f1d95 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -17,7 +17,7 @@ unsigned int arch_domain_struct_memflags(void);
 
 /*
  * This structure contains embedded PAE PDPTEs, used when an HVM guest
- * runs on shadow pagetables outside of 64-bit mode. In this case the CPU
+ * runs on shadow pagetables outside of Long mode. In this case the CPU
  * may require that the shadow CR3 points below 4GB, and hence the whole
  * structure must satisfy this restriction. Thus we specify MEMF_bits(32).
  */



From xen-devel-bounces@lists.xenproject.org Tue Dec 23 14:56:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 14:56:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192614.1511746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY3np-0005rp-TI; Tue, 23 Dec 2025 14:55:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192614.1511746; Tue, 23 Dec 2025 14:55:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY3np-0005ri-Px; Tue, 23 Dec 2025 14:55:57 +0000
Received: by outflank-mailman (input) for mailman id 1192614;
 Tue, 23 Dec 2025 14:55:56 +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 <SRS0=7uuJ=65=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vY3no-0005rc-Sx
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 14:55:56 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7b4aa1ac-e00f-11f0-b15b-2bf370ae4941;
 Tue, 23 Dec 2025 15:55:54 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4779cc419b2so40429875e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 23 Dec 2025 06:55:54 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47be2723d19sm324690945e9.2.2025.12.23.06.55.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Dec 2025 06:55:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b4aa1ac-e00f-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766501754; x=1767106554; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=A14uPmjMTpST4CcKM5xmrBqweLvku579izOyb0SIpm4=;
        b=Asn+QA8zy0EM7a1hkO4R/O7YAlr3WqvHC3PkHxhhjqbCXcWudqzu4kc40O1WM1k/AK
         btmWbqAPbykatqYTNUIuKJVw8AYAWVbizgll+Op3T5Hbhx8bLfKFS1YtphUCLZDGCaOU
         M5JFS6xv5dv3QdhL6vb52dEWZ8lEUph3SFDaE2EqA3URv2R4EsGOeFzIh0tvAJ6bNFaH
         TqX02vnOSU665VRLgDMvNsV29Dsikzd37pk8nw+omVuf3cxsJIRoJQExzNa+kDRB+ssX
         w6y8Qjf1BGy/SkgKs20IA9J5yhD6mBzaOc8AX2nvcBBMsTUzaLbfOMuPEvKTwe8o7/+u
         ACGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766501754; x=1767106554;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=A14uPmjMTpST4CcKM5xmrBqweLvku579izOyb0SIpm4=;
        b=WfOm1e/MZAUqCN3CtTLm5uUfME1DCbNYCLIEQtD9GCWaC3Je8VcIKdHTvoeKTOYz3Q
         pIpyI8et7RimPI+D9ftenguCAUbQSxw7PT3IMZCXZU8YEJ647xbJLDTq+OnIPVVy9hnI
         e37EZW1iKP4wMX6fnYXgGn6gqp5dMJxsJ4BpXsLn8ru6bdRYyl5xAiEXbq5+l+tf88Ew
         Os5PDqpy3YUlDvUIpQefZqAc9bU5FoxoncowipoF+ZJhcyXYfxV9bxstceTI4kCRlfuh
         P82lVBiA0wcSLTLJbxHNxdGmOxJwA3Y5xYCloiX47klZL70h38WuMYnBgQCW9WnNzd31
         pRhA==
X-Forwarded-Encrypted: i=1; AJvYcCWC84L62npqY4g2OpFgsQh2LZ2/Ws5ZeVrD1GwaHT48/fUI+/iU8k6kHbcrcyMp2Uo8AYUHeExfts8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxGsdCvbI1Vdj2HdUb/0gI5Crfrje3lx/pDqwdGneNq2zlosCK6
	hzpBv5plgvJHN8Zxomr8U3gMwqi5E0qAjIg6ttLpMbVGXaXb0hQjqXdlN+1cDC7Xmg==
X-Gm-Gg: AY/fxX7gCgBbcPtGRfDTOZCnbX0OH3ceItEG5BQpsmatIWvNfVgzY8rhxRaw1MQzs9G
	Bl3z0oX9VaMzS7NH7tfE/lNafJcH+mwDfNcn802D7SoW85V14vVYmztpcnKeUUSOJkiVLdp2h4K
	DFfmPKZIRBsMZNFY6cM+wCkbSTT2BE06Sgc+ZUgeGy72IFnuKHNwF6N3XquZ/LStNAvcea8zokf
	rGOl03yJmQEAcnlZG6dqkahlCqOUKMO495s6vuLgHFRbt2Siocs/r6Ss5I2o8yM88oU86kE2+Lu
	mfqdoTzSvKcsFc3PXNsXwL3NR4Z4yf0gCE67xGXWw1KqoEpyxkoPebMKNcoWbf/WHx5MXghSBF6
	/T1f3ce+WAurE7uVRLBUJuLUTyZawFqFJQ6wRml0cSPfgQAOg0J6/CDkgI4c2o+YlQ/k+/9pSCO
	KQ9s0jhd4cMU1vMhnW7oAfE0gCzWsSxKbYyy0W5Q3J+88HurODvEgn12A67pGgGKzf1j70pZK03
	EY=
X-Google-Smtp-Source: AGHT+IFetgCtP3xjuJEpKEQM/yp4q8KlPU+Y54QXITsB8vcSz8TflxvvM9V58DtjoJv153LwaxgZFA==
X-Received: by 2002:a05:600c:6388:b0:477:63db:c718 with SMTP id 5b1f17b1804b1-47d19557cd2mr139265665e9.16.1766501754158;
        Tue, 23 Dec 2025 06:55:54 -0800 (PST)
Message-ID: <cc81f15f-a80a-4d3c-ae36-f9d86ad64ca6@suse.com>
Date: Tue, 23 Dec 2025 15:55:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: Correct comment about struct vcpu memflags
 restriction
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel <xen-devel@lists.xenproject.org>
References: <d350d06b-6e38-4797-9c28-6b7960f854b2@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d350d06b-6e38-4797-9c28-6b7960f854b2@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.12.2025 13:49, Andrew Cooper wrote:
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Tue Dec 23 15:19:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 15:19:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192623.1511757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY4Av-0000Mg-ON; Tue, 23 Dec 2025 15:19:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192623.1511757; Tue, 23 Dec 2025 15:19:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY4Av-0000MZ-KO; Tue, 23 Dec 2025 15:19:49 +0000
Received: by outflank-mailman (input) for mailman id 1192623;
 Tue, 23 Dec 2025 15:19:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I0w9=65=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vY4Au-0000MQ-1H
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 15:19:48 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cf5826be-e012-11f0-9cce-f158ae23cfc8;
 Tue, 23 Dec 2025 16:19:44 +0100 (CET)
Received: from DS1PR03MB7871.namprd03.prod.outlook.com (2603:10b6:8:21f::17)
 by LV4PR03MB8330.namprd03.prod.outlook.com (2603:10b6:408:2e0::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.11; Tue, 23 Dec
 2025 15:19:42 +0000
Received: from DS1PR03MB7871.namprd03.prod.outlook.com
 ([fe80::3a7e:e6ed:f8e9:9fb3]) by DS1PR03MB7871.namprd03.prod.outlook.com
 ([fe80::3a7e:e6ed:f8e9:9fb3%7]) with mapi id 15.20.9434.009; Tue, 23 Dec 2025
 15:19:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cf5826be-e012-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=W7EfqsL4l7Ve9wBOdwFSnfJjKf5EOHDss33xtFaNyKLQJxbeMhTjcEfRJHqbyzERhsiDZGtoj5H7DaXSTfiCKvBmG6qO0B27lY0BY9M5+ApTdtpIJQBkhiYvcilNemw4q9KC014/rgY+vAgjS7+m1ZCd+AQIQNxk1DrOqEo2MvDwsz9x/0xOfKnrPPViGOhDwJkCeVpmuqSodkAb5Bbc5NS5Cz+x0EgEf+JO/pqYRte8KRtXEWvMpc7nq6YdM4KSp0weRazWnEy8NJIhA+H5NL7wmIU3MljrNzlTnet/wmvZ9yitc5bNnAvNm47YFTAobXLL++gZAFaSQPUlsX2hsg==
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=BAknUQTi8K2C0J6Q0zkHbNf2jrG/qoZ79XdV5Sfv+TA=;
 b=lqnLDXbE71tjkdt5yPgAD/3QPTTOuOr9KXdhsvO/hHRNdePvPJ8IUq/mdoK2pplN1pe+7iEHgmr1Wq4SAsUy2EvgciDooWQ6ss1lZ5lbcs8KRRYIojGmq5vDzoc3ItTkn0o0/FVN58WmmoRYifG9efDmJQToYVM8du/cG0gtPSUB0dBunSL7KP6juU7tmpmZzqwudgWOWIckJ62b+Ujy9Wpev6bd12qDtb+w02hI3KjbAR/VoEWt9q0NpQrs3jY8br86XtFdaRiRVDax4ZMwVPeTalPpzcHRoN59yONfTFaBXTtKvYehYaocEsOwtcy2v9oigZ1heOHxu0/+nIPIjw==
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=BAknUQTi8K2C0J6Q0zkHbNf2jrG/qoZ79XdV5Sfv+TA=;
 b=htqi0ShNpwU/Reei2IVf56ZJreL866w81axutQQFYawAUUxkF5AH5BSlWr/ZIf+WZ8maz4t1gEO89zCCKoWKctMUj0hfRgk/IKE9WgLhB3C4U7gmDFRttzldspFqsoFRUpQ5bfr6+YNBFCy2wBoce4zlEecVyvrd+vb8eVbs5+A=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 23 Dec 2025 16:19:37 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Chen Jiqian <Jiqian.Chen@amd.com>
Subject: Re: [PATCH] vPCI: avoid bogus "overlap in extended cap list" warnings
Message-ID: <aUqzCZHYfiKB3Ltv@Mac.lan>
References: <26294a6d-e99b-4290-988a-da7b7b838651@suse.com>
 <aUUPPPYyuLUdj3XJ@Mac.lan>
 <4159dd59-4301-4265-bb5c-82949ed095a9@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <4159dd59-4301-4265-bb5c-82949ed095a9@suse.com>
X-ClientProxiedBy: PR3P192CA0013.EURP192.PROD.OUTLOOK.COM
 (2603:10a6:102:56::18) To DS1PR03MB7871.namprd03.prod.outlook.com
 (2603:10b6:8:21f::17)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PR03MB7871:EE_|LV4PR03MB8330:EE_
X-MS-Office365-Filtering-Correlation-Id: 18a49b32-fd2f-47e5-5649-08de4236b204
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WFU2ZnhVWmx5SUovTDhLSkFPWjhrWVZvazF1cGI0WHU0c1BGU0FCb0tNWHBm?=
 =?utf-8?B?ais4ZjRjazEzL1Boay9FWUhQVjVtRnlkazEzYUFyTDIzeDBzSlJoY2xUVTUv?=
 =?utf-8?B?RWoyYzFoLzEyTE81dWw4UWYvWCtBUVprL0IxVkU2YmxlTlZiK2puTG1LK1JS?=
 =?utf-8?B?OVVtL2JpRUZrdmk5dEY0YkNJa2lHU09XbjN6THhhQTlHQ2JRR1F5RGt3RGdR?=
 =?utf-8?B?MXIwMmdCWm5FZjliQytmVkJZR1FLNGRLVzhZQmNhUm9YN0QrWjBaYlB2Mmx0?=
 =?utf-8?B?NVdRakZoUU9ocVZGb2txbm1PZmRsT1RnQ1IzWGhsbUVSVnc1d2RxQnJOeDBL?=
 =?utf-8?B?YjVWUXlUTGM0U0FYenQxc3J0NU44cCtDOEI1cCtFZ2hCcWh4ZEd2MmVHNDhp?=
 =?utf-8?B?R1VIVDVUemd3SjNnQ0xRWlIzd2tKUUhtV1VtSlBPalVxRW5SVVNuTW15MC9V?=
 =?utf-8?B?MmFwdEI0dkJrdG54S1dSeXRPTVY5TTdzVWR2bWo4bHE0Mk11T2lQdytja0tQ?=
 =?utf-8?B?R0orMGxzVHVPY0VxM0l3eitGTkY5eDRNVlBNTnBsSGh6SXRsbUxLeHVsYzUr?=
 =?utf-8?B?TzdoeXNxR3RrQW1SZ1ZMdTVtNi91VTQrVStBRU81MFBSUDlqbEZXdG14RWFU?=
 =?utf-8?B?V21sbmtCdlg1QnZscGYzdk5UQldjeXVta1E5eHliZXRZN2pVSDVvZzZNK3d3?=
 =?utf-8?B?NjhPbC9QWjJDWlIrUi9OTHhPNnJ1WUZlbzlUSEFZVFpHRE1CSS95cGxJbjhT?=
 =?utf-8?B?ZklNSzNlNWdFQTFtZmRSRy92ZDR1QndyVXFVQ1FZSU5HbC9rWW9ISXFFbFU3?=
 =?utf-8?B?Vk9HWkhadHp3cFBtR3QzNkxGRmNwTjdNcGZCMnJvSTJIUjdSMWY2eS9ZVElp?=
 =?utf-8?B?R3loMlhoQzVEMUpYQzR4bHNsd21xRWRvaDYvSk1GMDNwcmxRaGhCUFhoQnJL?=
 =?utf-8?B?ZE83cmJsUWZ0UzI1bWpiQlFiNE5kazJhbU03cVBuUlZzRDZrVDhxcE90NUlI?=
 =?utf-8?B?YU1YWmhRMHFxZ2FHQ3plb1J5bEg4VTN1QzQySlZNeDRpcUszQ2hBT3IrRXJU?=
 =?utf-8?B?Sm9SbmJKdlE2c0c1OEVaOXFqbmpjVEFZUFZJbnFzL1Q5OEh6cmpLY2NOWHdI?=
 =?utf-8?B?RG5XTi9mbDJtOHdxb0xJQUJFT3pXS3JyQ0x4T2V2UVRPT2ZFclN6ZFJzcDdr?=
 =?utf-8?B?aEtCTjVXa0xTa2JoTUpPcGRiSlBydW1uWC9GcXJJcnpDbHJEb0MyMGRkNW1o?=
 =?utf-8?B?L3dxVWpjRFZGekI2WkJPTDJ1cmtGRnhwVUpLcm9jaXNiZDBkY1NDUFpKMnRC?=
 =?utf-8?B?UDNXOGxPQXdLeXNLbDhFeTVsd1NiZWFBQzJyWEFjT0VXcGFhZVBiVlRuai90?=
 =?utf-8?B?MGVuZlZEVm53YWEvTEwrYkhqZFUrRkFmQzBONnlzdzRNUFhnV0VLazBmeFQ1?=
 =?utf-8?B?RUxEMTF0V0lTY0lvRy9DcG1Fbzgyd3ZKNE1sOFRIZmN2VTdaRWg4TjBrc3R1?=
 =?utf-8?B?RFkzRElnUUYxVW92dHJSb2NFRHcxbTcxRHlMejZneVV1TGtRaWhCRWIxYk9k?=
 =?utf-8?B?QkVEbHBpNytQY1czOVk4bGtBY01WRTVKMHd5dy8wRWRxNWxaNjZRNVVWMUJD?=
 =?utf-8?B?cnFrQytvdHZmLzFmQW9WR0NXUFZ3UEZJWlBKdmY2UnJBeUZMK2NsVjEzK2E3?=
 =?utf-8?B?YW1xZWFibXpwV0kxaVRuU0dWdC9jQW1yNUg5ZGdGWkVjLzU0MEhpakMyTlgr?=
 =?utf-8?B?TW1IZ2paYnZFMy8rbHA2bG9sTm1jdnNjT01XaDd2YmtJT1k1NnorVkFhd3l4?=
 =?utf-8?B?NWFQMDUyTjZTdEMxWmdVbjFUQkZETHNxVFIrT1ZiVFBBUjFwWmR0bm1sclNY?=
 =?utf-8?B?SkhZQ3VoVzE4bmV3TzkvTUZWbHpSU0NMMU5sT2s0c3BRRW1TWEhYRlBrNkV1?=
 =?utf-8?Q?CUXIvjXYEKUiqS+3xdOUEiKFvEE+g4Hi?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS1PR03MB7871.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Y1ZlcTZoZlJvQ2lrY01FeTNJcWJHM2NYbW9UWjJVYThyZXVDaVJVVVRJRzhP?=
 =?utf-8?B?d1JGdVUvK0dKRDVEUTgxT0RBazMyYXp0OHR1Y3N5aGoyblFSY1dyMDVlOWxw?=
 =?utf-8?B?UFRtS2dzRThBczhkb1FBaVFOQzhjKzUyUUhRV0IwL01KMG5YRGFUU2RoWU12?=
 =?utf-8?B?eVJMNy84MDhuWnZXSTFKczZ4RWZoQklva3k5S1BJdnZHMG14cTB6RUZGWU9s?=
 =?utf-8?B?Q2c1S0JDT2dLL1VrK3Nta0N3NFhZckdhOWxkNXAyWHBkSGlYMUQvMEFuT20v?=
 =?utf-8?B?aHpNVXJwRzNMbW9mcEV0WURHNlNBYVQrT1ArTjNvclVsZ21oRkNJNVhsSHdj?=
 =?utf-8?B?SGloSmhJa2VsZVpzR2FzcGVmL21RY1o0b21VUktKVmxoLzlUMW92ckFhUE1h?=
 =?utf-8?B?MHFKMVVFajRXbWVyVmxmelN1TzZHQjdpUEQrQ3dYMG5Fd0NFMnJvVFFFbmIy?=
 =?utf-8?B?bnMvdzc0Tmc2QlJXa2xUdkRlNXIyNEc3aEZLeHc1bHpNNlhZTklYUmJmQ1Fj?=
 =?utf-8?B?ZEo0UDJsNS92UHk5NjJ6OUptbFpsYW9sL1d1czYramFUUitNdC9lSVdIeTdY?=
 =?utf-8?B?ait0c3FiSktEdEZFdm5OcVRzWVpZclFQeFZCWXlLZ0ZXczEyVVlTWjdaTG1Q?=
 =?utf-8?B?am42T3hraWg1amhDTGJUcEdFTkpVcmhYNDh4cmlSK0FzZ2N2aEVhem5jSjJK?=
 =?utf-8?B?MWcwWGU4YmtraGd5eHZFOGErVEp3aDl6QkJ6b3hCQlpDUXVuNDB6S3h1a3Ju?=
 =?utf-8?B?WldBVWFVTStXc3Q5UFVUZ2w0cFF0bG52ZVc1aVo3TFEzY2JvWlZ3c25EbEty?=
 =?utf-8?B?elV4emJpMnNnM0k5QlBlU01HM3JjRVlLekZPckJsZ2dFUkpvdGhiWXBsODlW?=
 =?utf-8?B?UGtqNjJaaExuUElPRGwycUNzdlBxbDYwT1R1REF4dlVDaldDakZMTW02ZEFs?=
 =?utf-8?B?Q04zanR6dlpvaCtJaElnSGhJVTQxb2RmbXczei9RZnpUb3RXcG0xTk5JN3c3?=
 =?utf-8?B?Nm5KTUZKNFFXbkVDVCtPekNsNUt4YzBuQ09kSFRlaWxlK254dUNMME1OZDlW?=
 =?utf-8?B?WmJCNHpOd2tKVEsvS2dqTXRLSDRPMTNhZjc0VjZxVW1JRVoyOEhOZUVZUXdZ?=
 =?utf-8?B?SjM0ai9vMkI3eEJyMGxJQlpIb3NyNW9EZkEwNThjdVNWSzRMTWtxMzVxcjRP?=
 =?utf-8?B?b1pTZHlHejNHMXpqdlpzVTV2bDFIdk1sR3Bscnl2TGZiUkcwWUFjQmtJbW41?=
 =?utf-8?B?Vmtja1F2UDVUWE1mclFmVzkxK0F3U3F1UXl0c3dRdE5xL21malJaaGQveDJ4?=
 =?utf-8?B?ek8rWFo1NXpCU2oyS04rMFJBRzQ4VXpvTllJazZtSnEzNzRiMWxTS0Mvei9v?=
 =?utf-8?B?S2pQWFVhYTFpbzhPZ29kcHQ1T0dGanhoL1BUYWtGL2JPZ3RMTFVMSjVzMkFJ?=
 =?utf-8?B?OGUyWlo3eFh1VThRK0M4RzFmaHAxNjlzcTFZVVNnMTFoMmtXcFUrbUhDcEZ3?=
 =?utf-8?B?N2Q0Z2VobmtHVFpkYVhxeUt0WnB2bStBRktNWFlLeVhrRUN3cTdoeDhMZFh4?=
 =?utf-8?B?MVJEQUZxNjhYaHRaTWk2Z1cxb0FXWTZtM1o3ZURSNEdCbEJOWXNDYWlOREtQ?=
 =?utf-8?B?WDRqKzlMeWdMQlBZM1FnQzgvVCs4V3BYcnFucit5ZU9CSi9ZZjZRYzAzSko2?=
 =?utf-8?B?UEEvU1huQ1p1SDNkeThGaFdZamdRQVJhZGZ5clhrb0JIRXRwdm5OMnZySTds?=
 =?utf-8?B?dlV2R1VhaWhRWWs0OUNHRXZ5aGVEd2U5RlJ4RDU5WXNmdEREanAzNmVpenpU?=
 =?utf-8?B?ZENnT3lLRnNHMWtNVURyNXNmRW52MXRmcGtpai9IVFk2Zm9sWW5kM0xCeFRz?=
 =?utf-8?B?bXZjeiszVmk4eC81WDR4Zi9LM2t4VXBHRGc1NWJlQkFsclZpNk9iRFlmZ1NJ?=
 =?utf-8?B?cU96QUJPOFBiMlROeFJXU3Jyc2FOU1diVGdTTDdxWmxISE05S3hlTENVd3Iy?=
 =?utf-8?B?eGpzaXlpK2hTak5VMS9DS0pKMFAzclUyWkNmVjMwTWFrUG56UXdiTWhsbHVh?=
 =?utf-8?B?RWdHZHB6NTBHT3dHMSs5emRMRnZpN2FnRXY2bFcvNkZOaVhxMjZuOHFqNnpD?=
 =?utf-8?B?KzdiT1R2c2VEaE1YK0F3VEgvWkNUcUs5eVFacXNuUi8zL1o4QVVDclYxM29I?=
 =?utf-8?B?Y3FyL0NGeW0rQ3BUYm9mVU5Xa243U0wzNXZWRWU1WHN3d0JUK1BZLysxdXB1?=
 =?utf-8?B?VWVJMmYwSXU0bS9KZC8wc1cvNmdaejRNZzFzTnFMQUc3Ykk5U2ZnTWt6Ulk2?=
 =?utf-8?B?YnZQdzZYNTBYeW8rMFE0M0plb1pMTFlhVWRidVhQaElqTXBWWFRyUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 18a49b32-fd2f-47e5-5649-08de4236b204
X-MS-Exchange-CrossTenant-AuthSource: DS1PR03MB7871.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Dec 2025 15:19:41.7813
 (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: DFuoGTl/xdSm9b0Hktcx6GeWTx/Iu5M1R3omurxqYjZtK6KvElXiWKLO1mTW7XK2jGBDEXgB5tL8nC79BdCHyg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV4PR03MB8330

On Mon, Dec 22, 2025 at 09:39:38AM +0100, Jan Beulich wrote:
> On 19.12.2025 09:39, Roger Pau Monné wrote:
> > On Thu, Dec 18, 2025 at 08:56:24AM +0100, Jan Beulich wrote:
> >> Legacy PCI devices don't have any extended config space. Reading any part
> >> thereof may very well return all ones. That then necessarily means we
> >> would think we found a "loop", when there simply is nothing.
> >>
> >> Fixes: a845b50c12f3 ("vpci/header: Emulate extended capability list for dom0")
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> > 
> > Acked-by: Roger Pau Monné <roger.pau@citrix.com>
> > 
> > With the U suffix added to the constant, as noted by Stewart.
> 
> Thanks, albeit I'm not quite convinced I actually should put it in. Imo ...

What about using ~0U instead of the longish 0xfff... hex literal?

Am I misremembering that we had a coding style rule to write hex
numbers all in uppercase letters?  I don't seem to find it anywhere

> >> ---
> >> This is the minimalistic change to get rid of "overlap in extended cap
> >> list" warnings I'm observing. We may want to avoid any attempt to access
> >> extended config space when there is none - see Linux'es
> >> pci_cfg_space_size() and it helper pci_cfg_space_size_ext(). This would
> >> then also avoid us interpreting as an extended cap list what isn't one at
> >> all (some legacy PCI devices don't decode register address bits 9-11, some
> >> return other non-0, non-all-ones data). Including the risk of reading a
> >> register with read side effects. Thoughts?
> > 
> > I think that's likely too much - for the hardware domain we want to
> > allow the domain to access all the PCI config space, regardless of
> > Xen's thinking there's nothing there.
> 
> ... we really need to do better here, irrespective of this intended behavior
> for hwdom. Us accessing the supposed extended capabilities list is already a
> mistake when there's no extended config space. Us then calling
> vpci_add_register() to "pin down" the value read is wrong too in that case.

Hm, yes, it would be better for Xen to use a logic similar to Linux's
helpers to find the config space size.  This would need extending to
pci_find_next_ext_capability(), as Xen does read the extended space
without any checks there also.

> Question here is whether even with that fixed the check being added here
> would make sense to keep. In that case putting it in now and then doing the
> other re-work would likely be the right thing to do.

Yes, it probably wants to be there in addition to the extended checks
for extended space presence.  If we have a pre-check that ensures the
extended space is available, Xen should return an error also if
reading from PCI_CFG_SPACE_SIZE returns ~0, as in that case the device
must handle at least that access and return 0 to signal no extended
capabilities.

> >> The DomU part of the function worries me as well. Rather than making it
> >> "read 0, write ignore" for just the first 32 bits, shouldn't we make it so
> >> for the entire extended config space, and shouldn't we also make it "read
> >> all ones, write ignore" when there is no extended config space in the
> >> first place (then in particular also for the first 32 bits)?
> > 
> > If there's no explicitly handler added, the behavior for domU will
> > already be to drop writes, and return reads as all 1s, which is fine
> > for the rest of the extended config space?  We just need to return 0
> > for the first 32bits to avoid seeming to have extended capability
> > support.
> > 
> > Maybe we want to keep the same behavior as expected from native for
> > legacy devices and just return all 1s consistency for the extended
> > space?
> > 
> > Hence we don't need to special case this region, as it's already
> > covered by how unhandled accesses are resolved for domUs.
> > 
> > Or is there something else I'm missing?
> 
> Imo correct behavior would be to return 0 for the first 32 bits when there
> is extended config space, and ~0 when there isn't.

I see, I was missing your point that there are older devices that
might not implement the extended space at all, and for those the
natural value to return would be ~0 instead of 0.

Xen could read the value the device returns for PCI_CFG_SPACE_SIZE
accesses, and whether it's ~0 or something else in order to device
whether the dummy handler added in vpci_init_ext_capability_list()
should return 0 or ~0, but that also risks possible side-effects if
the device aliases accesses >= PCI_CFG_SPACE_SIZE to registers in the
legacy config space region.

Thanks,


From xen-devel-bounces@lists.xenproject.org Tue Dec 23 15:29:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 15:29:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192637.1511766 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY4K0-00027V-O9; Tue, 23 Dec 2025 15:29:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192637.1511766; Tue, 23 Dec 2025 15:29:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY4K0-00027O-Kd; Tue, 23 Dec 2025 15:29:12 +0000
Received: by outflank-mailman (input) for mailman id 1192637;
 Tue, 23 Dec 2025 15:29:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I0w9=65=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vY4Jy-00026z-OO
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 15:29:10 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1f21ab05-e014-11f0-9cce-f158ae23cfc8;
 Tue, 23 Dec 2025 16:29:08 +0100 (CET)
Received: from DS1PR03MB7871.namprd03.prod.outlook.com (2603:10b6:8:21f::17)
 by LV3PR03MB7454.namprd03.prod.outlook.com (2603:10b6:408:1a4::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.11; Tue, 23 Dec
 2025 15:29:02 +0000
Received: from DS1PR03MB7871.namprd03.prod.outlook.com
 ([fe80::3a7e:e6ed:f8e9:9fb3]) by DS1PR03MB7871.namprd03.prod.outlook.com
 ([fe80::3a7e:e6ed:f8e9:9fb3%7]) with mapi id 15.20.9434.009; Tue, 23 Dec 2025
 15:29:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1f21ab05-e014-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RU6v/q7HVuCWYPlmh40cqnsmLiOD5uBkAm9syO8EN386kw2C1gCZwdXyzkzC0V5sBFDUdVA8De7K3d68J88Fh7aQ53+iMkeOJQYROf89s+LbJdQE5qFtUS4B1jYBwclvwRvhT9H0CEUpRYi5+S8bew6X9t4juMzcYyYR0gzUmSipmy6zRYsg3MUJI3R3yjTmGnYns218hk6yFvpz588z6K/iGN3rzn8vFVJ6J6ifBC6l2YOOvEMCDRUDcTcUbOmk3ZSTYP+NECq+eJcsoSIVoB91VRC4B4lMZ8zY659wnEHbqtLSVrh4PVet42FceQFPdcePu2SY25yuPYmRucd6rQ==
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=fSyDiyWSDKUTgV1t9GfaDAwenOHIaspIc0I0p4xdfuM=;
 b=MCAUe/+1t8HuwXlvsVimyJCjHRySg5iNnI7bEkaapYyLoxYlFsAXg29WM3qrptA2AXi/Hq2/0tdBAJrkm8cvvBAyT90WNV9dKx24G3V5vY5jbjAbNHAwZflBl+5SVvj9ucb83SbPexMbqQaGSHcPaA5eo1VAgj3RLsyDSUahPNjA4FMlB89amWXVkASwVbtbLkEW9ANCvbK7qG2/6D7fYNzA1cB2I1bPZweNaO65ZQ2Rb6oJ28ltSvx3aJXYeDZodiQgmCIE6xbIo6ioU7ZjoGVPlGjCerVnKPqukpOYvZdn/za0q6XgEJ4t5Qoa0n5zncDigtFyKDdPd0QC19Rrlg==
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=fSyDiyWSDKUTgV1t9GfaDAwenOHIaspIc0I0p4xdfuM=;
 b=rq+qG7qJqIKzRpiBelbf0u8PIDqsMKLoWfkzQ5lrEhEu96co3ZgzDOCKd0YocfT4T2f+smi035pqs8f5RqKE9MnofaNmRXeaDD0bkwkVbZPbYeb3KKsatxSACLZTuK9a90BTA2muyXJ4XfNw7oNkIp0WV5eXGYw/h++yCatjRyc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 23 Dec 2025 16:28:59 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] vPCI: make vpci_add_register() an out-of-line function
Message-ID: <aUq1OwdjVdqkt5Ov@Mac.lan>
References: <70e156e1-c51f-40a7-83b4-2d228a102367@suse.com>
 <4db98b05-5277-4ca4-a6bb-0054490a0280@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <4db98b05-5277-4ca4-a6bb-0054490a0280@amd.com>
X-ClientProxiedBy: MA3P292CA0070.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:49::7) To DS1PR03MB7871.namprd03.prod.outlook.com
 (2603:10b6:8:21f::17)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PR03MB7871:EE_|LV3PR03MB7454:EE_
X-MS-Office365-Filtering-Correlation-Id: fb09e3a3-a1c5-49f7-670b-08de4238006d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MllKaEJuRFNEaFM2NjBSbDBnOXUxajYxWnpmb2hqKzdRUG9LaEJrY0tiRnh2?=
 =?utf-8?B?M3Y1MGxTR0lGcytjVlJPMmYvODhyV1hRWjU5aGJWWURtZkxOT3U5Ykt1S2t6?=
 =?utf-8?B?ZmNqdDhoWUc4dEdwVENQSjRLVmIzNDZMRTBhWnhsNDBObEg4MHMwWXlvL2JM?=
 =?utf-8?B?dnUyLzJZSHRSS0UyQ0Rsa053WTdmdVVJanBFTTI5UHBtNDIvdUlnZXFzU0hx?=
 =?utf-8?B?SW5rekVIQ1lVWEhrNGo3WWVWQTNmWllWekhQQnZpbXVDN1JickM0MGlZK25z?=
 =?utf-8?B?YmpZeFNoSWxMYXE3MDZLRzc3SEFraWZhakNNR3pubEhCaWluaUIwN0x5cGx4?=
 =?utf-8?B?TU8zblNubUp1dWVGTW9GWFdPTFpZeVdlbGFjSjVMUHpkQlZCRVdHSTZsQSt4?=
 =?utf-8?B?M2RQbmVORkI2bW1oZXZXY2VDM2E2a0owRFFiL1FnU2hrd3NPS2ZteEdvZ1Er?=
 =?utf-8?B?a2RMcGozUzRQMEtGalpTdGVsVWZNQU0rdSs3VWQzdFV0L1lpZDdkanBNYjRR?=
 =?utf-8?B?eDNhK1kzek1KV09mTnhvL0RPbUxmMDRxWnVycS9yVHA1eWhHbkZjUE55NTZK?=
 =?utf-8?B?Y0o3c00vVUwzaWVmdWZXbitZV1FBaTN6RS9KdllFUDZHQlA0dm8vWTJrcitC?=
 =?utf-8?B?MUhtOGw5UW9tZ3Bqbkt4ZDV1U0s2Z0dUSElmbmxLT2dFWDV3UEhoRkJRQUZG?=
 =?utf-8?B?N2gzOHpRaTdtSVp0Q2FHY1EwL2Y4UzY3dVJvQ04xRlFhbXBnTkZzZUlUT2dM?=
 =?utf-8?B?R1ZJeExXN3hqT2YvVW4vZ2MvUDZhYW00c0x0My9DTGxXS2t3dzRRMkFnZlo5?=
 =?utf-8?B?WnVGSjhVaWFkNjFySVNUYXcvOGZKTFUxUXRSZ1FqU2hFWm9pdm15S3hReEx5?=
 =?utf-8?B?QTRSZktGdXpWdVZiUHZqZVA5KzBOZ0ZqRXM2UTdTeEszd3piV2xFeit0Tm50?=
 =?utf-8?B?N3JSRmIrdE5CdGVTMExHbThON3BqMlRlY01tdzJXMlpwVGpvc21md0RiamRR?=
 =?utf-8?B?QkNJSkt4aXlscHNEOEZURVE4QWs1VTZLZGV1cUxVc0lEOXFLS2F2OHphdldp?=
 =?utf-8?B?YUgzbkRCS09QRWg0WWVWWGtZdEF0dzVEUDMwdVNFUjFKcW9Wem1EeHkvM1Z3?=
 =?utf-8?B?OHgydm9PeGMwWWZYTzN6OGNxSXdTcmFXcEhldHh6dkZhRDVFWXpJNDhSY3lP?=
 =?utf-8?B?U1hvWnFtZ0VudGZaSGZYOU5DbGFqODd4bjJQRFBRalRhbGpJQmc3bjdoeCtp?=
 =?utf-8?B?SXluSVEzTmx0eld0dVFqSnAyZGxzMHRoZGVyckFuMXlhc3VBdHdoSys3Q2lK?=
 =?utf-8?B?V3NBcUtlaGlMWUVvck5jMzl1aUpmWUJmd0NqZ2dMSkN0NmpNbDR0NFJBQ2hH?=
 =?utf-8?B?WlFTZkI5T1Rjc1lCckxPd3pEbGorRWN5anBRNFNEVm1FMWVhOHE4U25JUnpo?=
 =?utf-8?B?d2hWTTNWRnVwcFZzWlFRcEJHUE5uejBaYTF1STVUc2VRcFowQ2UyR1lYTDBh?=
 =?utf-8?B?MnVOUTFPMjVBOElMUDFPSmQ3ZVJZZzdFUGNqU1M0TkttUkF0NkEwYm5Vd0dN?=
 =?utf-8?B?OVI0aU44NWtWY3d0Y0IyUjVTZ2dHeUFtSjBOUllIS21nK3NnL21VMHZ5NmVu?=
 =?utf-8?B?aWsvdjAva1dya3hXTTFidTRuWDBpSUIyQ1M4b3hpemMveSs0bDZkRHJFQ051?=
 =?utf-8?B?Q1hjNGtIVXE1NlBPSWRDamhZdUJ1RFVXV0FUNExRVlZLei9jYlp5ZUw4K3ZY?=
 =?utf-8?B?WnV2RWJKbVZUM0wveGpEQmNQL0tMZmFlVVp5Y00rN3FmYVZoV1U0eHUvd0Qr?=
 =?utf-8?B?SWZtSXcrVTVMdjYvZVpPaGdhNE04ZnRqN0o4b29qaTVsYUsrY21FblU4bmg5?=
 =?utf-8?B?SDZEaHVTUnVjdE9qaEVBTlVrSUwzUmE1TjhtRGt2akdmcUl3RjhkSHAzcjJV?=
 =?utf-8?Q?p9J0UxMZMUcbb0PxpUCmDKumf9xDuM1k?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS1PR03MB7871.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SkRYMU94ZHpaSFJHMzdKWEMzck1MaWQ5Nnc2NkJEc3FPeFVVa0s2bVRKNGdu?=
 =?utf-8?B?ZlBIY1JHdU5DaEpMeDBtT3dJM2FBR2J2TS9uRUE5ZmN2dFdqRGJ2QW94QVdj?=
 =?utf-8?B?dlFpNEcwaEEwdjkwYjVUekFSVVZ2K3BuYkhQMjd5ODZlSHJxSjJISjBlTjc2?=
 =?utf-8?B?SjdEUzlFUVlFczZ5S1IvVFJRT1lqTzNXbmN2bHVDOVBJajNiYzRzbFZEaHpF?=
 =?utf-8?B?eE9kcFQxZVo5Nlp6dVNYeTgydUFmVmdTeU9sbGRLN3Bob3puQkVCVkluMkMr?=
 =?utf-8?B?TE9LMGNGY25tY1Y5U216TzVwVTVZcFR0QUNlL1JuVE1mVlJuZ3dyRE1iMHBS?=
 =?utf-8?B?ZmVjNlh2ajFpVmVZRU0zTVBMdWR0NDJZNGVqYmpZQSt0WU51MlErWFRnaWZ6?=
 =?utf-8?B?SmIwaFN4Y3BZZjR1ZzdHT2VFRFhXdDdpSSt0VEJGb3VOR3Ixd3hzU04yRWlq?=
 =?utf-8?B?eTNCZHZibWFWblowOVNwbnd4TDIwSmFnVGdTZVFpNUxBVFp4em1OdEczNUts?=
 =?utf-8?B?VjMyRFZMTzdyRjc3T05XbnpKVG1kTVorZ3VZc3JEd1BSSm84QnlOK2RleG91?=
 =?utf-8?B?UEFFV09nOWlpV2dCcGFzZkdrSGhUaUx4TmM1R1ZZTXZtUzZYNkFZWmZJT3Er?=
 =?utf-8?B?cm1oLzIyVDEzekVvYVFiSVUzbWRERzh0Sy9iODdqOVFRVmNtOVdwWEVrRGR2?=
 =?utf-8?B?NEtHVVlGSUZYdE5STjlDOUhEV1JEKzdtV0V5Q2RUdmI1Zkl0RFpGWmtjdU9O?=
 =?utf-8?B?cGlxR0xvamhPUGFTNWpWc2hnbXpuc2Y4WnRzeE1jcUMzTGh0U1h4b1pEQURQ?=
 =?utf-8?B?dXEvcEtFMm90dlR2cU0xeUFlUjF4VW1lM3dGQW1Gd29Jd2Y4WmFyM0FiTmNw?=
 =?utf-8?B?RldVMnJMdm0xamp3MmlDbHlRak9seUpnZFlKTjlhS1NtVDJwTys0V1dSNStS?=
 =?utf-8?B?R1dtVDdlajJXMHZsQy9FUUw0VklUMXF5RDRQc1pxSmV1UEoySUdFbEs4WnZv?=
 =?utf-8?B?Wmx1SEZ6Z0daTkFJd2xiRnFSMlB2cVkzS0xJVDBBRUdkKzFTMnZMdng5NmZF?=
 =?utf-8?B?SjhzZ2dRSzBoVHp1NzJkdzZOZVFhVmJaUk54dEJvUG5YRDZuZjNnQS9LNXo4?=
 =?utf-8?B?V2loWjZYTG5CWEwrKytTeE5kZ2VWZ1h2dVNZcnh5SVgwQW96aXhITnpod3ZF?=
 =?utf-8?B?bEhNS3BaMllzQTJhUkhBSXV5UHdBMDJzeEdnbXEzR2RPbFp4ZXFXaGFZQVJK?=
 =?utf-8?B?MEFwZGpmU2hmVVJjaTNjSEVsL1Y1VDVjQkxBWlVsMXI3RWtzekJFdCtSZXE5?=
 =?utf-8?B?QVk3TW5qUjdaMzJqbDRhb1lFdDFsOHNZSTF4czFvVkl2SThtaTBXRFNscnVr?=
 =?utf-8?B?Zmd0L3RDdkxJdnN0R2JRU1d2RHc4d1VJa25iOEwwSXdWcGYvMyt4Si9Rb3Fa?=
 =?utf-8?B?WXBwOWVNbjJKdmloN0p0RHNaOFluNzJJOFlycHFiS0gxNWExSk9Jek9mZEVu?=
 =?utf-8?B?ZitKRmRBamVJWnlNVUJ6SEVrYndKOG9qV3l3WCtzRFdlR0RxODk1QlArWXh6?=
 =?utf-8?B?ZEF5dDRSbkQrclh0dFNxMGZMMjdMSmdGU24xcFZKZi9PdkJXK1B0ekVNYXE1?=
 =?utf-8?B?d1dwdXphRHN0MkxzNWU1bGtQZDlLS3QxWU53eWpJN3VXSTFHZ3RDQm0rb3Zu?=
 =?utf-8?B?QUJMQ0VueHlOd1Q3MlF3YW1mSTIzWkVzYjNJYUdTRjVCUEJieGNiUWtVSnJk?=
 =?utf-8?B?WFVUZWcvSFkzQUxqNHFIYkNraUpmejN3UVRkUS9ZM1l0QmpNS1RFVWlHT2Rp?=
 =?utf-8?B?d3EweDM1TFArR254Zm5MYncxZkUySG5LZWF6NkhLQllDdGNHU2tkUUg0Tkdy?=
 =?utf-8?B?VVlVQVRHR3NWV0ZjMEY3bG1YR2krVCtBczhkc2ptbm1LVUJvd0VVN1VLOTA2?=
 =?utf-8?B?WUFManhZbEl2Q2U2ZXdjZXZ5YVVGQ0RpNUtXckRiYm40VGFYZFdQNUdaZ2VS?=
 =?utf-8?B?YmdteWhTYUg3Z2pVR1pwSzlDZENwUVRSaHlSdzdVSi9VRFBYS3J6dVVkektO?=
 =?utf-8?B?ckJQSVgvYlp3ZitJUk04bHpNdytVZ2IyVm1DZ3NMcGoxcklYaDh0Rk1ra0Vh?=
 =?utf-8?B?NUNxa0FxOHpibStIdzQ0bGFIMWt0UmVIeStZcFo1UlhkVldZZXkxNXpjekhw?=
 =?utf-8?B?ZXNoZFcrT29JbnFTUDJyUCtXVmovb2czbDBSV1pWWmZqeTlmT0djaURhWG5p?=
 =?utf-8?B?ZkFIZFBjUlhSUDhGQzdUR2FIZFN6SHdrQnFXSVVzMExUYUd3STFwZktJZFJw?=
 =?utf-8?B?MHp1OU1xaFRkcEh2WlNHcEJhRDFJUXBrK0V3U1ZwQXptamZqWWhwZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fb09e3a3-a1c5-49f7-670b-08de4238006d
X-MS-Exchange-CrossTenant-AuthSource: DS1PR03MB7871.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Dec 2025 15:29:02.7813
 (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: Ef0JZynXHtJBjTm9622ZrobDcmEUAarnU2NB9kRh+jPxjaTI/dbTc2G4e09BUyPQmryKvrW62tBxaab556Wkww==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR03MB7454

On Thu, Dec 18, 2025 at 11:02:40AM -0500, Stewart Hildebrand wrote:
> On 12/18/25 05:45, Jan Beulich wrote:
> > Calling a function with 10 arguments is inefficient on many architectures:
> > x86-64 allows for up to 6 register parameters, Arm64 for up to 8.
> > Everything else needs passing on the stack, i.e. forcing the compiler to
> > emit stack manipulation insns at every call site.
> > 
> > Shrinks generated code on x86 (with gcc15) by over 250 bytes. The gains on
> > Arm64 are a little less.
> > 
> > Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Reviewed-by: Stewart Hildebrand <stewart.hildebrand@amd.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

> > ---
> > Why is it, btw, that the declarations live in xen/vpci.h? These functions
> > aren't supposed to be called from outside xen/drivers/vpci/, are they? In
> > which case their decls may better live in a private header?
> 
> You have a good point, they could very well live in a private header IMO.

In fact most of vpci.h could become private.
vpci_{,de}assign_device() must obviously be public, plus a couple more
to satisfy calls from external sites: vpci_{read,write}(),
vpci_dump_msi(), vpci_process_pending() and vpci_reset_device().
Maybe something else I'm missing, but not a lot more.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 23 15:29:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 15:29:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192639.1511776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY4KF-0002PJ-VU; Tue, 23 Dec 2025 15:29:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192639.1511776; Tue, 23 Dec 2025 15:29:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY4KF-0002PC-Ro; Tue, 23 Dec 2025 15:29:27 +0000
Received: by outflank-mailman (input) for mailman id 1192639;
 Tue, 23 Dec 2025 15:29:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=7uuJ=65=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vY4KE-00026z-Ig
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 15:29:26 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 290e82b9-e014-11f0-9cce-f158ae23cfc8;
 Tue, 23 Dec 2025 16:29:24 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-47a80d4a065so26553185e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 23 Dec 2025 07:29:24 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47be3ad0c60sm123824475e9.5.2025.12.23.07.29.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Dec 2025 07:29:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 290e82b9-e014-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766503764; x=1767108564; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5jQDUbo7rkS2ayZCu6ncU3OwyE6ZcsbrZt5OfxfF1CM=;
        b=Vn0ou74op+0qndghvmxtBOplWhhZ4Z02IdugNmLaLgmk1uSqIWXybRISnww3XxzghZ
         dx97TSpC3OHSXsctNaYo8sSU0DmoPxGBHCCVaMBAqbEMq3uqeXQMrb0+JvaYBvEMylPI
         ozF4GD7MfI3I6zkCt4iIcDAqisCTf4bz9RMT1DTLzmkXL5InvDnF02p8p4YjIpgtPfLV
         QcT8HUuuSUmKMQsyxVXc+a0GOtCP2LQDmN3lCVrN0SwQ2xUzSZMh/YkrOIRJJ7rLyl3a
         5nFpHCLpY2YuGbRiImnTZZiu2E2nDfe0p5My+0ix+QcJfr3OrkTL6piV7QRwCxJE82Ef
         ZRDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766503764; x=1767108564;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5jQDUbo7rkS2ayZCu6ncU3OwyE6ZcsbrZt5OfxfF1CM=;
        b=KdIgGP5hwhdy/BPOC2t7RG97uN0seFPtZZRYjR7hU3kk2xXMvUqMAPbtGGTGAMO1ck
         I+ZyFtLar7w3lMrWuAnRaP0knO3cbwsrYHf5dNALWmlhVxJ6TjRdCcvl4A2iv9inmQ63
         OnYPuqRxEpBVKs+Tym8FROYOYnryFJ6dGVXkdGt8BLaJrrmheQsx4VeSnL2Q15oitQLr
         RD66XMdROqpdepBv4WhAt3hb2XqQcprYpOsEDHeXRTNvnR+GGNWlFN7fImNQGS33vXVD
         3JRaz8qFsl6qBSwrosoEHS44jqpchkdqaiYf2ZpIXRiOna1ZWbcheYd5FbLHmtj0NeMp
         buAA==
X-Gm-Message-State: AOJu0YwF+bU5ikHlRU8ET5NWbIAnLRpmM5z7EaWU0emJEJpQukv3vHxV
	wmOdj1BkKaTSFMjx4Fcf97Ru2fuwo5dd3PkTZjT70ZXf5SeaU5fobiWFdQKEgv40mg==
X-Gm-Gg: AY/fxX7VOHrOybJQXkTq9AQ40XNBK3Q7UOq8bVTKOzB7pxcIyV9iOVRgq9VhWxjGjFZ
	WofJiUi4wREPAYa/hpa31ybBwr7FziJ7SC1EWqv5LhwIRD6PszQZfliaKuJpelYVwMCGqFL+8iz
	xCqtO11KZqUlMaToDkxj258ROCdorSsXRe5isDXdmOCbuEqRDQnqfb/LxxdPFxaHxnsD0j8SBSx
	XPmgV3FHeTMjmGzjvr1PrtevzWPQJNvwYKvzWlIRYS+qJ2qW/TQv5CTabvHL/WOIv/6VfXvdXaZ
	eMGlVKIgAS6lxsKgA7Nlc6hIft12bGf2hbvXIp3Ss+CkfJaz65ifY2I2UbxVq+dN1femoI78zRj
	soIaqJKakkGrbXxJoH9zS4x0Vl9Zh7mp7GIBL+E023rNhwVBBZZlsB9V2wXA+L/S0UJJd3Pt449
	H9KBXL8cpre0Rp1Da6cqA8Ve+sBRP+tU2x1CaXaol0J1i7Aq3tWgKUpdOnpr/iV2lerPEpDuvKs
	Lg=
X-Google-Smtp-Source: AGHT+IHMY1SxJmBUk3eIqjGsmpIc5ula7DColMzJa6G8+8WXsj3QfRr6oqdQzIZWwitoi7xvbraYSg==
X-Received: by 2002:a05:600c:c0c7:b0:47d:264e:b37d with SMTP id 5b1f17b1804b1-47d264eb725mr85641705e9.22.1766503763657;
        Tue, 23 Dec 2025 07:29:23 -0800 (PST)
Message-ID: <0784ac64-f055-4d66-a811-e432b257009c@suse.com>
Date: Tue, 23 Dec 2025 16:29:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] vPCI: avoid bogus "overlap in extended cap list" warnings
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Chen Jiqian <Jiqian.Chen@amd.com>
References: <26294a6d-e99b-4290-988a-da7b7b838651@suse.com>
 <aUUPPPYyuLUdj3XJ@Mac.lan> <4159dd59-4301-4265-bb5c-82949ed095a9@suse.com>
 <aUqzCZHYfiKB3Ltv@Mac.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aUqzCZHYfiKB3Ltv@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.12.2025 16:19, Roger Pau Monné wrote:
> On Mon, Dec 22, 2025 at 09:39:38AM +0100, Jan Beulich wrote:
>> On 19.12.2025 09:39, Roger Pau Monné wrote:
>>> On Thu, Dec 18, 2025 at 08:56:24AM +0100, Jan Beulich wrote:
>>>> Legacy PCI devices don't have any extended config space. Reading any part
>>>> thereof may very well return all ones. That then necessarily means we
>>>> would think we found a "loop", when there simply is nothing.
>>>>
>>>> Fixes: a845b50c12f3 ("vpci/header: Emulate extended capability list for dom0")
>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>
>>> Acked-by: Roger Pau Monné <roger.pau@citrix.com>
>>>
>>> With the U suffix added to the constant, as noted by Stewart.
>>
>> Thanks, albeit I'm not quite convinced I actually should put it in. Imo ...
> 
> What about using ~0U instead of the longish 0xfff... hex literal?

Oh, sorry, my reply apparently was ambiguous. I wasn't questioning the U, but
whether to commit the change after adding the U (as expanded upon further
down).

And no, I specifically replaced an earlier form where I also made assumptions
about unsigned int being 32 bits wide. ~0U would make the same assumption.

> Am I misremembering that we had a coding style rule to write hex
> numbers all in uppercase letters?  I don't seem to find it anywhere

I would have hoped you didn't find any: I, for one, consider them harder to
read and harder to distinguish from #define-s. Plus with the U in upper case
that also better separates from the digits.

>>>> ---
>>>> This is the minimalistic change to get rid of "overlap in extended cap
>>>> list" warnings I'm observing. We may want to avoid any attempt to access
>>>> extended config space when there is none - see Linux'es
>>>> pci_cfg_space_size() and it helper pci_cfg_space_size_ext(). This would
>>>> then also avoid us interpreting as an extended cap list what isn't one at
>>>> all (some legacy PCI devices don't decode register address bits 9-11, some
>>>> return other non-0, non-all-ones data). Including the risk of reading a
>>>> register with read side effects. Thoughts?
>>>
>>> I think that's likely too much - for the hardware domain we want to
>>> allow the domain to access all the PCI config space, regardless of
>>> Xen's thinking there's nothing there.
>>
>> ... we really need to do better here, irrespective of this intended behavior
>> for hwdom. Us accessing the supposed extended capabilities list is already a
>> mistake when there's no extended config space. Us then calling
>> vpci_add_register() to "pin down" the value read is wrong too in that case.
> 
> Hm, yes, it would be better for Xen to use a logic similar to Linux's
> helpers to find the config space size.  This would need extending to
> pci_find_next_ext_capability(), as Xen does read the extended space
> without any checks there also.
> 
>> Question here is whether even with that fixed the check being added here
>> would make sense to keep. In that case putting it in now and then doing the
>> other re-work would likely be the right thing to do.
> 
> Yes, it probably wants to be there in addition to the extended checks
> for extended space presence.  If we have a pre-check that ensures the
> extended space is available, Xen should return an error also if
> reading from PCI_CFG_SPACE_SIZE returns ~0, as in that case the device
> must handle at least that access and return 0 to signal no extended
> capabilities.

Okay, so I'll commit the change as is and then make another change along
those lines. Or perhaps two, a 2nd one to deal with the DomU aspect. That
may only be in the new year, though.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 23 16:03:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 16:03:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192655.1511786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY4qs-0008JB-A8; Tue, 23 Dec 2025 16:03:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192655.1511786; Tue, 23 Dec 2025 16:03:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY4qs-0008J4-7U; Tue, 23 Dec 2025 16:03:10 +0000
Received: by outflank-mailman (input) for mailman id 1192655;
 Tue, 23 Dec 2025 16:03:09 +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 <SRS0=7uuJ=65=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vY4qr-0008Iy-1W
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 16:03:09 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d9e7b8ce-e018-11f0-b15b-2bf370ae4941;
 Tue, 23 Dec 2025 17:02:59 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-47a80d4a065so26735055e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 23 Dec 2025 08:02:59 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea1b1b1sm28230244f8f.3.2025.12.23.08.02.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Dec 2025 08:02:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d9e7b8ce-e018-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766505778; x=1767110578; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/bfVXbB8kQZhoL4RMELUcwCbnZ0xL5uYCFSerBP/wPQ=;
        b=IKx67pXwviVP+P3BCyNBEJ6YQk9fNMCKovQp+yc0r3Cl/jNOmo8WzfDG47cx5Lrh1j
         7vaTWLQY43tLJ4msTFN09qOebTYAbxcUPt3qcjWf6Zd7LLzZDeY/xKsYF+VFL2JGt+XR
         6qEj/LK827pFoNUmiq+r6UsS8UYltZ3nT8pdwvAhDRNmKSHCWzrAAcwkN0v24bDHb6WK
         BmoEyihmw4bWjRAyufVj4U6Ejvsoh2p0Tz15Ze1p4yAg3S08ylgt+5eV3O41OTJk2Pg/
         OJN9UU7lPH/K6iTYFsdgT0VsBJ4AI4eVsHnnZMyuX0pXQh5id3UdcFDcTZbZgpmpcuB9
         duoQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766505778; x=1767110578;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/bfVXbB8kQZhoL4RMELUcwCbnZ0xL5uYCFSerBP/wPQ=;
        b=f+F7+oT2b4fb5o+znnJmFx4oJHjMvT+r34aFxApJxyO5s0/82ja+TdlPdjItEF/Gqu
         BKE1/hLHHCWoodRm68OKDvqeTqH7lnIVpZozmvY7f0XoEdNBcUrVmAIUJwPExI3BbdrV
         8irzuAHVLFYwlXdulyUgQEaZAgiyHUTdmoJpVKDjZkDOlL98drkovT7c/P/GACqcxBtX
         BgymYiq3chLZVFlKWNxiPm39TVcYZqxiHpz41HQXI99wWtCv20z1xtG05yNyPoBnDeL+
         FaeXsdBb/ysKuduWGoLzkoDn7Nz7yL+lCXjpE30gbToOqz0jhACJ6ytRlFT/cglEGy48
         G4Zg==
X-Forwarded-Encrypted: i=1; AJvYcCXJhuxLDFPP3zVzCs0aKV+KP5DxbmhQkibyDI2Z+9UjrbHRSbxumnYNCyhripVsUTpuZCaZwoQyZx8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yziwe08Jtxydvs6uTeVQ1kfZy8UaMdttvCSagcR64lUDRmSqb8J
	bXq6f+ypS7SEQjZHtuSEivMJOPZGY+Pny5uARk61aLAiA9L4KFF/yq0j9fwyBBMnoA==
X-Gm-Gg: AY/fxX59J/GM+FxaVsfnTrQoTq67jbPXTkO8cyaXY9stEyz8N6j/rxm52Gp92SY3wIH
	pLrCXgQxhbKMWlGa+QX1HzPk1g3qwBlRymUgAa+4IQh/y0NInIM4p7CVAwvzC7Cz9o6kQrXj9AD
	kCru7nJyBoSVG3CWTUF559lnXyjSx8PwZROCyZwZP2kCgYdDHrXLvJ6nisjPtyCOrY11w3cmezi
	8l8hHg4VUV2SmcTyxEqF3M1DHuyqnqx3cNfXjX0zQ7PtCJb2UM7YW5LIHZotR+QK7i03HHMLpK+
	RpFfYyBj/hMMh3wfVkzJ/f/ZVV0vrR8r36vYC4VEo0tfDXFJWEZDZFiey0D+sN/SaoVmK6Jr5CC
	XWTAo3zKsedHNtWbkJof9HxwcIJp+cw/kTHo4/CnLl4iF/wOd0WYOru7He/aMMLTNdOVsUmliYm
	uagPVJ0ZeYQeONDh3S4UkYoMcCMbo5RSNzZMhMaX1mD7pIttay4eGVT65YeAoKRdNLX8Wxk+DRl
	GM=
X-Google-Smtp-Source: AGHT+IFfREY3YMPGFUf6v3NIwBsFeakci6Bwj7AF01bscagOls90NqJtTVZYpWS9BZmvUpK5wNVOBA==
X-Received: by 2002:a05:600c:1d1d:b0:477:632a:fd67 with SMTP id 5b1f17b1804b1-47d19546487mr155798055e9.12.1766505778260;
        Tue, 23 Dec 2025 08:02:58 -0800 (PST)
Message-ID: <8efecc2a-a5c4-4918-acd7-ed7007fb03c5@suse.com>
Date: Tue, 23 Dec 2025 17:02:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/3] xen/riscv: introduce vSBI extension framework
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1766399205.git.oleksii.kurochko@gmail.com>
 <61c84c3e296ab53f57d090c6ba3a533aa7049088.1766399205.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <61c84c3e296ab53f57d090c6ba3a533aa7049088.1766399205.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.12.2025 17:37, Oleksii Kurochko wrote:
> This commit introduces support for handling virtual SBI extensions in Xen.
> 
> The changes include:
> - Added new vsbi/core.c and vsbi.h files to implement virtual SBI extension
>   handling.
> - Modified traps.c to handle CAUSE_VIRTUAL_SUPERVISOR_ECALL by calling
>   vsbi_handle_ecall() when the trap originates from VS-mode.
> - Updated xen.lds.S to include a new .vsbi.exts section for virtual SBI
>   extension data.
> - Updated Makefile to include the new vsbi/ directory in the build.
> - Add hstatus register to struct cpu_user_regs as it is needed for
>   a check that CAUSE_VIRTUAL_SUPERVISOR_ECALL happens from VS-mode.
>   Also, add storing/restoring of hstatus register in handle_trap().
> - Introduce vsbi_find_extension() to check if vsbi extension is supported
>   by Xen. For now it is called only inside vsbi/core.c, but in future
>   it is going to be called from other files.
> - Introduce check_vsbi_ext_ranges() to check if there EIDs ranges
>   overlapping between extensions.
> 
> The implementation allows for registration and handling of SBI
> extensions via a new vsbi_ext structure and ".vsbi.exts" section,
> enabling extensible virtual SBI support for RISC-V guests.
> 
> Note: All EIDs are printed in the format #%#lx and all FIDs in #%lu, as
> the SBI spec uses these formats. Printing them this way makes it easier
> to search for them in the SBI spec.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>

I'd like to note though that ...

> --- /dev/null
> +++ b/xen/arch/riscv/vsbi/core.c
> @@ -0,0 +1,57 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/sched.h>
> +
> +#include <asm/processor.h>
> +#include <asm/sbi.h>
> +#include <asm/vsbi.h>
> +
> +extern const struct vsbi_ext _svsbi_exts[], _evsbi_exts[];
> +
> +void __init check_vsbi_ext_ranges(void)
> +{
> +    for ( const struct vsbi_ext *a = _svsbi_exts; a != _evsbi_exts; a++ )
> +        for ( const struct vsbi_ext *b = a + 1; b != _evsbi_exts; b++ )
> +            if ( !(a->eid_end < b->eid_start || b->eid_end < a->eid_start) )
> +                panic("EID range overlap detected: "
> +                      "%s:[#%#lx..#%#lx] vs %s:[#%#lx..#%#lx]\n",
> +                      a->name, a->eid_start, a->eid_end,
> +                      b->name, b->eid_start, b->eid_end);
> +}
> +
> +const struct vsbi_ext *vsbi_find_extension(unsigned long eid)
> +{
> +    for ( const struct vsbi_ext *ext = _svsbi_exts;
> +          ext != _evsbi_exts;
> +          ext++ )
> +        if ( (eid >= ext->eid_start) && (eid <= ext->eid_end) )
> +            return ext;
> +
> +    return NULL;
> +}
> +
> +void vsbi_handle_ecall(struct cpu_user_regs *regs)
> +{
> +    const unsigned long eid = regs->a7;
> +    const unsigned long fid = regs->a6;
> +    const struct vsbi_ext *ext = vsbi_find_extension(eid);
> +    int ret;
> +
> +    if ( ext )
> +        ret = ext->handler(eid, fid, regs);
> +    else
> +    {
> +        gprintk(XENLOG_ERR, "Unsupported Guest SBI EID #%#lx, FID #%lu\n",
> +                eid, regs->a1);

... I still consider this too verbose. Before switching RISC-V into "supported"
status, changing this and alike to gdprintk() may want considering.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 23 16:07:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 16:07:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192670.1511795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY4vC-0000bW-Tv; Tue, 23 Dec 2025 16:07:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192670.1511795; Tue, 23 Dec 2025 16:07:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY4vC-0000bP-RM; Tue, 23 Dec 2025 16:07:38 +0000
Received: by outflank-mailman (input) for mailman id 1192670;
 Tue, 23 Dec 2025 16:07:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=7uuJ=65=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vY4vB-0000bJ-Sz
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 16:07:37 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7df92acd-e019-11f0-9cce-f158ae23cfc8;
 Tue, 23 Dec 2025 17:07:34 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4779ce2a624so38199125e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 23 Dec 2025 08:07:34 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47be27b0d5asm303119575e9.13.2025.12.23.08.07.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Dec 2025 08:07:33 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7df92acd-e019-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766506054; x=1767110854; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=y2NYvTDdGpfWSiBAEHhov5XADOTREO/6HBvHqvC2q9g=;
        b=XcXfmfORavYoWlFxo9qrHR5Bdki8Z/2HH4dzJveEM9vHhtqAlugc0bmbXxk4Lk+K0X
         CSVGM0kroeS/0w9qu5uvC+vpV/k21UFoeM6fskSVhBvbL6vvYpilSOlCTkmiJ1lltZOP
         9t5XH3Uvs7P0XuE0tc2wMOjNSTLhtU26HvIqK/bKntWIEHqfpuEgrXRXQE6ufTG/mvmZ
         7iAx0BhGpCB4FUTPuHGEE7l9D0ke9YP9M+WcLqtB2WPX7FI5QdkZBS4K6xH2p460JaxO
         JDnQHSEwZZI8mNUaA825IIpmyiI2hphw/IrFWcRw8MbxDqxAZEyTgx4R0KdkTZhuQJ+B
         y9zw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766506054; x=1767110854;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=y2NYvTDdGpfWSiBAEHhov5XADOTREO/6HBvHqvC2q9g=;
        b=q8btdEtLKRmOepKtaCch62NQhhbA6QskolSh1EZkHuJDNxB9jCaQhA27TL+C1nU8iU
         DscZq3rvowE7L84Engwah2vT+DsswPed7QlLVLsThyINpFXUfhel3N9RqJkbl52KAAea
         kYY+pKmoiav45T7cNG0jSlNafydsXGtxW0TfwITLdO5wCqq2jrqYP3EEGLaVpjXegTQ6
         SGxr3PDPiJRH6l2e3w6FeXpiotg9yuG+sYJZNS6UBSI+n8vKMeQVCTevCAqoZA7lcFpU
         uoRA6CcWoDcB6dMUBAL+XD7LT1nTPRKCd/pQzII3EIkmhmhIreJiGEYLFoV+iEzdSCbL
         mBIQ==
X-Forwarded-Encrypted: i=1; AJvYcCVjC+Ef44IvK2/TOfQLEJpIvAyNzokONeMFeJnVpDFM4aKH23XMjYuMGUBE3YyEmU0m+F5DKTz/LTE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDE/wTNFx06AHpGJY00YJ5kbaanpZM9PHKR73Ps0dkOAp6TW/R
	2zjVefeuWZrc6m79yuo87l1olvNmOBnZnt7vt90NlfHO2AurhdFP6HnIcjWzO9HBXQ==
X-Gm-Gg: AY/fxX4nay01Q4BWu1s3M/k1jCaU7R99fxjocvf604B1OZz+W1B7r8cBPgqWxIQPaOJ
	XX8QicfiRmXVtOo95tlwzK08oPl82BeyXvTOpBPhD2V7viXMnDM6oQpVPBhLd7nqJJtdHdC0v9l
	gyBOoO9HuQJIrl9M06Bsl+8tettneYe6gn3AZdV7ec00JV6HE9Gv69ewNX+pagdiXTcOhB+es8M
	xGLtS0fr3t5OoKC4DQwdsFM4oYGZ06t15801yTq1PUOiBIvjwv9gUuS5Im/qouDR7yD7uRN9HN8
	GXGucy3D9QWCJKKhk5F2lE8zF9/xrCFy7V8s0S75M1OhRspzDOHojPzToAP9QIifVGhjRlv6Qp9
	oKSChqtMsaOyp/Yx0JTbcLX+2LJPYWR8mrXVDyHTfLHnqT67SkeNBEa2/DSsKmJlxrigJaMHpp2
	NsI3lEcWWXsKpfUKoKe/txEkD9Qh/DD064Cs3YfLo8ze+2OQSTdeQkCb3YVRawWfkuGOf6WRquW
	QQ=
X-Google-Smtp-Source: AGHT+IEqT718fsxVAsvcDWymrIpItWoo/i+5WfJkQuUmxojG2zlqk5ZXRaYuaSo7HcA6Mm7oip1dkA==
X-Received: by 2002:a05:600c:8b11:b0:477:55ce:f3bc with SMTP id 5b1f17b1804b1-47d2d273515mr81680775e9.19.1766506053528;
        Tue, 23 Dec 2025 08:07:33 -0800 (PST)
Message-ID: <74557019-d616-4724-a5d5-4ae3d5a6728f@suse.com>
Date: Tue, 23 Dec 2025 17:07:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/3] xen/riscv: add RISC-V legacy SBI extension support
 for guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1766399205.git.oleksii.kurochko@gmail.com>
 <f4225d3134ec12a392a2e5d91414bfdf9d0665a1.1766399205.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f4225d3134ec12a392a2e5d91414bfdf9d0665a1.1766399205.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.12.2025 17:37, Oleksii Kurochko wrote:
> This commit adds support for legacy SBI extensions (version 0.1) in Xen
> for guest domains.
> 
> The changes include:
> 1. Define all legacy SBI extension IDs (0x0 to 0x8) for better clarity and
>    completeness.
> 2. Implement handling of legacy SBI extensions, starting with support for
>    SBI_EXT_0_1_CONSOLE_PUTCHAR. SBI_EXT_0_1_CONSOLE_GETCHAR is marked as
>    not supported as legacy SBI console related stuff is expected to be used
>    only for early debugging of guest.
> 
> The implementation uses the existing virtual SBI framework to handle legacy
> SBI ecalls, ensuring compatibility with older SBI specifications in
> RISC-V guests.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>

Peeking ahead into patch 3, I notice that there you (properly) avoid saying
"this commit" in the description. Unlike here and in patch 1. Please try to
remember to avoid this and alike wording.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 23 16:11:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 16:11:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192680.1511806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY4yb-00026Z-Bu; Tue, 23 Dec 2025 16:11:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192680.1511806; Tue, 23 Dec 2025 16:11:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY4yb-00026S-8U; Tue, 23 Dec 2025 16:11:09 +0000
Received: by outflank-mailman (input) for mailman id 1192680;
 Tue, 23 Dec 2025 16:11:08 +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 <SRS0=7uuJ=65=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vY4ya-00026I-GL
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 16:11:08 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fd00a426-e019-11f0-b15b-2bf370ae4941;
 Tue, 23 Dec 2025 17:11:07 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4775ae77516so46261335e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 23 Dec 2025 08:11:07 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47d193cbe58sm247204175e9.9.2025.12.23.08.11.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Dec 2025 08:11:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fd00a426-e019-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766506267; x=1767111067; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Nqo5wDbuAUVDMAX9DWfPckr5yjybwEaleuaH630r/Og=;
        b=dzZ+sobQhckGyxoQ0xMFfjPFOdmYD+K2/Wr6p9nba1uLqCgxIBkmo66mUXddsTXv8M
         vVYRu6XpU/LvYJpHb215p9czkKoU1g+TSseiAgfYSxPEIu1NSq7fvwioBjKhywrexl79
         cxHlDkzlt7YbgX9boQrfbrIbfbkjkoDwHznm1H+vIJwsTbWAuahkr9OtTjHC5TJZX/Df
         uA7KkXADreYBvBiTc5YhXnGvd/cD9QxQja1r5oa8cSsqhRH+6/HSeOxxd/s/3bujASjA
         jdwOi4D+W+1EEys9mGAKY2a3Y1IEaqj/tNCfB/sPwtSsoeXhZAsVMasDaWVUEsIQyq/6
         YNIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766506267; x=1767111067;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Nqo5wDbuAUVDMAX9DWfPckr5yjybwEaleuaH630r/Og=;
        b=k0kvoEJVEWimHQKwyINlsk/lpwuGWTT9F+H3QYnxAkH0sLzY1bXZFUVoHWBszftbbF
         VDZ4TF/A8MCmNiWxkeWzuKPyNvPNZm05SfrUI8BMoAv1guNj59jquKKt2jme4y0Pdbb5
         h48+/zliZKTCyI9GUosbRLijgZ3lDW1SE9JC5IH6yncm0F8miWHyllWtLWM3lyQcEMq1
         jd1eXMjD2IbOpheCcoXeCua+N15STpytOlL+9XSFbz8XWSh2yzCHFxxBcx8vyxhNCekW
         FDYL//pA5wLxto6xF7vfUt+awKD0ahpIWncBWbIWgXiM3uMBtjpv/lK8CFIkuGPojZ9q
         DcQQ==
X-Forwarded-Encrypted: i=1; AJvYcCV86cs9ZRg7Cd3LYTLe140M7LzOxhAjZskobxdmdyq3RjThzapO+B1MEQIaC5PcAW6yYakIFVtsF7Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzYfYEvB4fkt7cMAcJN+Eua5/MaYCSLQAzn/YvIgE81gPVbpfvU
	fkmlBayGnK2M0tO/gLGlt377asEdAwBI5iqwRLvl0QCSNsTleeYtISBCDImRJ7HEeQ==
X-Gm-Gg: AY/fxX4VuuuGG66lqyajDxBWMkHzO5F/9RfV4uZs7NDvmJpb9ZWusftoL8uE1gD271f
	gjjsdd85Z1XHMOWslDsD8N8b0kFwei1PGqlED9jXib3+SXL5wi3ZB83TK0LbgQ7s5KAW8fHg8IW
	NsKFre89W0+p7AW0Lr4WZiw8pVGg8ZIGgZQdaoA2Hn3kU1ddpeG5NL2aUaAml5Pt/aQ4lday6/K
	Qdfq2Q3KbjT4gplx9HVzzAlTMFA0YDIbXQSC414k8Wg0j3BOON09PKtAdH1QeRmRwm0IubKzgzZ
	302sBdcbwCGgvJLHEd60WM7CYHP5FvzbUNlKhHuokgU9p8U90iC3SkMZF/qgkBI0frbZzDOgSI5
	TWqhWhUDSuPnDTexqfjHqZSL9U9tbV0/cKEYsHs5TzFE3ndX+Tlic4FU73aEdCQuAl3NvOGPmQc
	+9fG4JKo6k6JsAc3U2lvSe52T+i07kOcztrqWoDa/dJbv4uyyWSxcit7OztSSr2/Za7Osfzv7L8
	JiIRR/XpwVW/w==
X-Google-Smtp-Source: AGHT+IGsAI9FZgLBIsvL83CNcSQw8hzv/PGJlHvzpL8QFcry5wEuDe30pf5twxIBNwbdvVYDrMvj9w==
X-Received: by 2002:a05:600c:4711:b0:47a:9560:5944 with SMTP id 5b1f17b1804b1-47d195c1a71mr162729425e9.34.1766506266739;
        Tue, 23 Dec 2025 08:11:06 -0800 (PST)
Message-ID: <74eec4dc-de48-4060-8f87-ba04023fda17@suse.com>
Date: Tue, 23 Dec 2025 17:11:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/3] xen/riscv: add RISC-V legacy SBI extension support
 for guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1766399205.git.oleksii.kurochko@gmail.com>
 <f4225d3134ec12a392a2e5d91414bfdf9d0665a1.1766399205.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f4225d3134ec12a392a2e5d91414bfdf9d0665a1.1766399205.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.12.2025 17:37, Oleksii Kurochko wrote:
> +static int vsbi_legacy_ecall_handler(unsigned long eid, unsigned long fid,
> +                                     struct cpu_user_regs *regs)
> +{
> +    int ret = 0;
> +
> +    switch ( eid )
> +    {
> +    case SBI_EXT_0_1_CONSOLE_PUTCHAR:
> +        vsbi_print_char(regs->a0);
> +        break;
> +
> +    case SBI_EXT_0_1_CONSOLE_GETCHAR:
> +        ret = SBI_ERR_NOT_SUPPORTED;
> +        break;
> +
> +    default:
> +        /*
> +         * TODO: domain_crash() is acceptable here while things are still under
> +         * development.
> +         * It shouldn't stay like this in the end though: guests should not
> +         * be punished like this for something Xen hasn't implemented.
> +         */
> +        domain_crash(current->domain,
> +                     "%s: Unsupported ecall: FID: #%lx, EID: #%lx\n",

Hmm, wait - patch 1 says you would consistently use #%lu for FIDs. I can adjust
while committing, unless you tell me not to.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 23 16:13:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 16:13:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192689.1511816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY510-0002eS-Mn; Tue, 23 Dec 2025 16:13:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192689.1511816; Tue, 23 Dec 2025 16:13:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY510-0002eL-JP; Tue, 23 Dec 2025 16:13:38 +0000
Received: by outflank-mailman (input) for mailman id 1192689;
 Tue, 23 Dec 2025 16:13:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=7uuJ=65=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vY50z-0002eF-Hv
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 16:13:37 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 534a487d-e01a-11f0-9cce-f158ae23cfc8;
 Tue, 23 Dec 2025 17:13:32 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4775ae77516so46280155e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 23 Dec 2025 08:13:32 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47d193cbc0bsm250242475e9.11.2025.12.23.08.13.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Dec 2025 08:13:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 534a487d-e01a-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766506411; x=1767111211; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XaAmLtP9lufuDfAjNuVDIKxib9iohk8JY6Eod+nUjJo=;
        b=CTjAZAjJ6/VGo9/MeY01l3qSABKEFsNAAh0NHS3YOTfCUHYQ7o6lxyIM/PifNshy39
         sGpUpNzKe9PMXdjGtoheH4Iw/hhK6pyT3UklT1nUVUVS5WEmgkWJCT7E5W+/hDjWfR5f
         X9PVIyVrpwTzzdv0Wnv8+g4fCtFT40CNUY+c7BsqmupUWjs0ZwvqGNOx7KLhS/vyZ0GN
         g0A807n5ML5qUSUQ8hTU0QFPkxGn7HS/mE+FnuMWiGSTpOfkQoNQykQmCSTT9zuL6jx8
         xtjky2ZwwA6Y2OGSeP2B1paNLq1m8Ybp5YbxvCnlD1kIlpviyhVIl9bpshOQIyou4ESO
         k2gw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766506411; x=1767111211;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XaAmLtP9lufuDfAjNuVDIKxib9iohk8JY6Eod+nUjJo=;
        b=ObePlnpUfZIcXO9Ra2R1RSyCTOl0BVclR3dDO/mYsaXULB9hEE4SvM1DTGOYWUqMzm
         vSx9KqZNekEJxJ0LT+vZnA9tVx33s1weSckcWKFgHmAHa7yZKKXn4bUSz9LD+Vq9AnD2
         XkSNCWmAUxyEFKY1Y2+r7eXFIyXxH4PS8h+UQVcFbHO+8CbU2V+YVQdxePlCIpdcbIMh
         yxDbiIjqjbq9thDMOzaC4MmU3CdJe50j40k7Z4xMHiMb3/h2Vsp+UGyTWUeWhToF439t
         s1PhCqS0mPTAW2cdptq5exdeDmP3JiDnVWtpGzGd4EZKOy71eYCBFiZUMFEU9EvpUdJg
         3ibw==
X-Forwarded-Encrypted: i=1; AJvYcCUB9RY8wZU0TtpnFRGTa5TvJFO94DCa3L+8WAbz9ANzBtFuW6OTNfXLOFiRBaVjZHMGa1y3WJH0bjY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy6MXyhAYxa6u3yOqfcIY4nQZjCne+fE4JJDe1ObfX41S5ZKzGX
	kqUfN9iv1Tct1AhbP6G53hW8MNjsY6liHR8paZ7THjOCJyLvGMY9rxlQGsuaFLElCw==
X-Gm-Gg: AY/fxX7VMZUoJlbbQbMEuoQ4j/SJfcTR0MZybwUXAtCHiOxT4/39Ka1NNATYOAPyMhk
	wJ1J9B4E1WpJoaBDT8xBg4uKvVGaVQ3OkBrmoTwk/EWeNXUcW6DcjJHAe3YlN5MIu1j0D5FBVE4
	8YFFhwzp1thYTlbR2Q80oGBmJxXj8ZfLZ7YUvaIGzXbf17cXQ5JhA/rQBIkluZLB8wxG4mEjX23
	awEnuOdPyBQRPOrMdE41wENu0YauSybrC3Q1bpo18O2L+KfW7MYt1/ZT9DBsbQhhtUseDRHF8gf
	je7cEsypCu9pooL1UwxO4yxj/v2VgVaMox+OTbIWTn4Vc5JyraK+1W3hqquD9a5wsvFz/Cgp5Ah
	m9n22V5+wj8/v62AMFk4L6kQk/v17mwW3VUz0sQ8KtygFppnBV82sU83Qjuk3kXgthRETylA+ke
	tLT+JYSCICoqlUW4ZOZZfHEhHQIleYBTixo7P4SxQTR3529GNNhLLi5fhasb5s/2XeYknKGtdMq
	5g=
X-Google-Smtp-Source: AGHT+IF/iT/J9oF+tyHAhZPPin6vUZshytWGXHkITtP9sQ7ZJK0FHgCliah38cQ+dFK3pQ9YMUbzOw==
X-Received: by 2002:a05:600c:4711:b0:47a:9560:5944 with SMTP id 5b1f17b1804b1-47d195c1a71mr162820365e9.34.1766506411523;
        Tue, 23 Dec 2025 08:13:31 -0800 (PST)
Message-ID: <6d7304db-7b75-4b69-aec6-663f951c37f7@suse.com>
Date: Tue, 23 Dec 2025 17:13:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/3] xen/riscv: add RISC-V virtual SBI base extension
 support for guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1766399205.git.oleksii.kurochko@gmail.com>
 <d7c8217605ad5d88a94baf32c2543654a415236d.1766399205.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d7c8217605ad5d88a94baf32c2543654a415236d.1766399205.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.12.2025 17:37, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/sbi.h
> +++ b/xen/arch/riscv/include/asm/sbi.h
> @@ -14,6 +14,13 @@
>  
>  #include <xen/cpumask.h>
>  
> +/* Xen-controlled SBI version reported to guests */
> +#define XEN_SBI_VER_MAJOR 0
> +#define XEN_SBI_VER_MINOR 2

Are these going to gain a 2nd use, justifying their placement here?

> --- /dev/null
> +++ b/xen/arch/riscv/vsbi/base-extension.c
> @@ -0,0 +1,78 @@
> +
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/lib.h>
> +#include <xen/sched.h>
> +#include <xen/version.h>
> +
> +#include <asm/processor.h>
> +#include <asm/sbi.h>
> +#include <asm/vsbi.h>
> +
> +static int vsbi_base_ecall_handler(unsigned long eid, unsigned long fid,
> +                                   struct cpu_user_regs *regs)
> +{
> +    int ret = 0;
> +    struct sbiret sbi_ret;
> +
> +    ASSERT(eid == SBI_EXT_BASE);
> +
> +    switch ( fid )
> +    {
> +    case SBI_EXT_BASE_GET_SPEC_VERSION:
> +        regs->a1 = MASK_INSR(XEN_SBI_VER_MAJOR, SBI_SPEC_VERSION_MAJOR_MASK) |
> +                   XEN_SBI_VER_MINOR;
> +        break;
> +
> +    case SBI_EXT_BASE_GET_IMP_ID:
> +        regs->a1 = SBI_XEN_IMPID;
> +        break;
> +
> +    case SBI_EXT_BASE_GET_IMP_VERSION:
> +        regs->a1 = (xen_major_version() << 16) | xen_minor_version();
> +        break;
> +
> +    case SBI_EXT_BASE_GET_MVENDORID:
> +    case SBI_EXT_BASE_GET_MARCHID:
> +    case SBI_EXT_BASE_GET_MIMPID:
> +        if ( is_hardware_domain(current->domain) )
> +        {
> +            sbi_ret = sbi_ecall(SBI_EXT_BASE, fid, 0, 0, 0, 0, 0, 0);
> +            ret = sbi_ret.error;
> +            regs->a1 = sbi_ret.value;
> +        }
> +        else
> +            /*
> +             * vSBI should present a consistent, virtualized view to guests.
> +             * In particular, DomU-visible data must remain stable across
> +             * migration and must not expose hardware-specific details.
> +             *
> +             * These register(s) must be readable in any implementation,
> +             * but a value of 0 can be returned to indicate the field
> +             * is not implemented.
> +             */
> +            regs->a1 = 0;
> +
> +        break;
> +
> +    case SBI_EXT_BASE_PROBE_EXT:
> +        regs->a1 = vsbi_find_extension(regs->a0) ? 1 : 0;
> +        break;
> +
> +    default:
> +        /*
> +         * TODO: domain_crash() is acceptable here while things are still under
> +         * development.
> +         * It shouldn't stay like this in the end though: guests should not
> +         * be punished like this for something Xen hasn't implemented.
> +         */
> +        domain_crash(current->domain,
> +                     "%s: Unsupported ecall: FID: #%lx, EID: #%lx\n",

Same remark here as for patch 2.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 23 17:02:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 17:02:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192707.1511855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY5m4-0001Xm-1X; Tue, 23 Dec 2025 17:02:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192707.1511855; Tue, 23 Dec 2025 17:02:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY5m3-0001Xd-V3; Tue, 23 Dec 2025 17:02:15 +0000
Received: by outflank-mailman (input) for mailman id 1192707;
 Tue, 23 Dec 2025 17:02:14 +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
 <SRS0=wtgv=65=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vY5m2-0000rH-90
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 17:02:14 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1fa0b5d7-e021-11f0-b15b-2bf370ae4941;
 Tue, 23 Dec 2025 18:02:11 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b7cf4a975d2so749271366b.2
 for <xen-devel@lists.xenproject.org>; Tue, 23 Dec 2025 09:02:11 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b80464e01d9sm1306260566b.42.2025.12.23.09.02.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Dec 2025 09:02:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1fa0b5d7-e021-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766509331; x=1767114131; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=haLvGCsDO/JizmjiuTr97WlOBT3BtJPjB3KsDGCVV4s=;
        b=FO2NBsjeNihT1dhu26TDuagTEpIziN+/4OC1dZkaZCzwHnFZ4M1cFDrJAsVVn5y7IE
         mHCaYSJ+XaCrIMkjAom+ex5uzkNc+iQXzRf8I/1z2S34b0UxUaHzIwzwSUtIJPHsTpcP
         NmgyK3fdzhD784aUcMEHdJrOGNsVsAVGQXYvh/zPgEfCFGt7SvpM9vkiAI3vxNriGXhA
         NlosxsDzaJjGH1ZnvNzQ+pizp6awkx3vGQjru0hyhCyYCfoRQ+S/jUrTfNdAaIYCWkyc
         G7uyC9Q2rwOCZZP63e+Ve3s2Qd7BVLl4h6b/U75bEiXohXLKEgrKjWF518WF5d9OR52I
         vymQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766509331; x=1767114131;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=haLvGCsDO/JizmjiuTr97WlOBT3BtJPjB3KsDGCVV4s=;
        b=cj4Mz+joOLN07r8bRlBGGfdOxdgTHdca7YwqvpHmqFnviYozbv0YoZqyxXNXFez6Sb
         +2sdUVEaDrR88FqFHl80x65tHxg06ocez4PSuavg36/x6HeKACfxzguF8nduObZL9e4G
         KtGCLcBuYrOGzdjfrPyZ5e5EJvN+5/7ziJp+UDMNBAdzJqBSQqB75mYUJTLuAxkZEMDB
         Lvpv9/xDseSSSqsIXiliKBwRIDRERiFcnGmN2TPxVcRg9F93X1Y/4iX+d0VPccXgiPOR
         0FZ/yYJoYujGISo06DTH/x99k795f+9GQ6R6/+WXW+UEITxfAto97x6iRUTPdoPmIkSP
         t8ZA==
X-Gm-Message-State: AOJu0Yyb4cPqqioo0pAXsJjOmC0gpNDJ/+Du4O+CukdSRCq6PfURNMs8
	RdIf3y4yKhE2OqJlPmXnAdkEKjXuruBAUCXtc46czYKUZna9o2vE76MIheqHXA==
X-Gm-Gg: AY/fxX6WVzD+U2uCoIR3Ps9GPHTAlI0A/UeFCOrgSHu4dyyaTSlTnp4/Px5xS0uIVbh
	gWO199ZkRrZTrSn4G7XueXAC6hAe7AjhKAjPZCNUOfc4hVFXSXsR+3YOKC1rFjt04C6G+eRko57
	weWuLIh6Sa1P/baHdsb1uyX1yIQSTPzhxTVcEpBxBcOScJ8WiPZQO5EAbdKp8itL0Z9+OKrbzXf
	iyPMIX+0eDPjGiiTqe4ApFGxDLPYqw+LzFWA7sy0hDZrG5CAME//V6c6lZ/zkBKSjKzJ7ZNbXjL
	fOvFKz2FBlEOQ2R3w402CGnGLMH432UB5awpisihtM9IdKwzwbkxD6iKsQMaKTsYIZqh7JcgMHL
	vO2P+Cv0ba81lo7ZxmHmo1U8NwnBlzU3VWeTQwzx4L8ASLN7HgCkhFjz1fPB2Fmm+rhz3PkDrNp
	DUp7WQrT756QDzjev3orAmxQwvHZL8faM84GRTNoXNuau3qJNZx5z9GtiZX4AOuKtDyg==
X-Google-Smtp-Source: AGHT+IHL7MJPWU9DeYNFy7laCsarytKMy+DXZKU8ixnYu6eCQsucB2E5Eov/WdAD7DcVr/WjYTdlKw==
X-Received: by 2002:a17:907:948d:b0:b7a:1bde:1224 with SMTP id a640c23a62f3a-b80371e921fmr1543243666b.65.1766509330514;
        Tue, 23 Dec 2025 09:02:10 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v4 3/4] xen: move alloc/free_vcpu_struct() to common code
Date: Tue, 23 Dec 2025 18:01:57 +0100
Message-ID: <6041657e2309fbc8466050860bcf60d3c3c4d4bc.1766504313.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766504313.git.oleksii.kurochko@gmail.com>
References: <cover.1766504313.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

alloc_vcpu_struct() and free_vcpu_struct() contain little
architecture-specific logic and are suitable for sharing across
architectures. Move both helpers to common code.

To support the remaining architectural differences, introduce
arch_vcpu_struct_memflags(), allowing architectures to override the
memory flags passed to alloc_xenheap_pages(). This is currently needed
by x86, which may require MEMF_bits(32) for HVM guests using shadow
paging.

The ARM implementation of alloc/free_vcpu_struct() is removed and
replaced by the common version. Stub implementations are also dropped
from PPC and RISC-V.

Now that the size of struct vcpu for Arm64 is smaller than PAGE_SIZE,
MAX_PAGES_PER_VCPU is no longer needed and is removed.

Finally, make alloc_vcpu_struct() and free_vcpu_struct() static to
common/domain.c, as they are no longer used outside common code.

No functional changes.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Changes in v4:
 - Move implementation of alloc_vcpu_struct() and free_vcpu_struct() ahead
   of vmtrace_free_buffer().
 - Add Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v3:
 - Make from function arch_vcpu_struct_memflags() a macros in asm/domain.h.
 - Drop forward declaration of arch_vcpu_struct_memflags() in asm/domain.h.
 - Update defintion of arch_vcpu_stuct_memflags() in alloc_vcpu_struct().
---
Changes in v2:
 - Rework alloc/free_vcpu_struct() to work with only one page.
 - Return back the comment about the restriction inside x86's
   arch_vcpu_struct_memflags().
 - Drop MAX_PAGES_PER_VCPU.
---
 xen/arch/arm/domain.c             | 32 -------------------------------
 xen/arch/ppc/stubs.c              | 10 ----------
 xen/arch/riscv/stubs.c            | 10 ----------
 xen/arch/x86/domain.c             | 24 -----------------------
 xen/arch/x86/include/asm/domain.h | 12 ++++++++++++
 xen/common/domain.c               | 20 +++++++++++++++++++
 xen/include/xen/domain.h          |  4 ----
 7 files changed, 32 insertions(+), 80 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 47973f99d935..507df807edb8 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -473,38 +473,6 @@ void dump_pageframe_info(struct domain *d)
 
 }
 
-/*
- * The new VGIC has a bigger per-IRQ structure, so we need more than one
- * page on ARM64. Cowardly increase the limit in this case.
- */
-#if defined(CONFIG_NEW_VGIC) && defined(CONFIG_ARM_64)
-#define MAX_PAGES_PER_VCPU  2
-#else
-#define MAX_PAGES_PER_VCPU  1
-#endif
-
-struct vcpu *alloc_vcpu_struct(const struct domain *d)
-{
-    struct vcpu *v;
-
-    BUILD_BUG_ON(sizeof(*v) > MAX_PAGES_PER_VCPU * PAGE_SIZE);
-    v = alloc_xenheap_pages(get_order_from_bytes(sizeof(*v)), 0);
-    if ( v != NULL )
-    {
-        unsigned int i;
-
-        for ( i = 0; i < DIV_ROUND_UP(sizeof(*v), PAGE_SIZE); i++ )
-            clear_page((void *)v + i * PAGE_SIZE);
-    }
-
-    return v;
-}
-
-void free_vcpu_struct(struct vcpu *v)
-{
-    free_xenheap_pages(v, get_order_from_bytes(sizeof(*v)));
-}
-
 int arch_vcpu_create(struct vcpu *v)
 {
     int rc = 0;
diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index 9953ea1c6c08..f7f6e7ed97af 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -152,11 +152,6 @@ void dump_pageframe_info(struct domain *d)
     BUG_ON("unimplemented");
 }
 
-void free_vcpu_struct(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 int arch_vcpu_create(struct vcpu *v)
 {
     BUG_ON("unimplemented");
@@ -264,11 +259,6 @@ void vcpu_kick(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-struct vcpu *alloc_vcpu_struct(const struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
 unsigned long
 hypercall_create_continuation(unsigned int op, const char *format, ...)
 {
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 164fc091b28a..29bdb65afbdf 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -121,11 +121,6 @@ void dump_pageframe_info(struct domain *d)
     BUG_ON("unimplemented");
 }
 
-void free_vcpu_struct(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 int arch_vcpu_create(struct vcpu *v)
 {
     BUG_ON("unimplemented");
@@ -233,11 +228,6 @@ void vcpu_kick(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-struct vcpu *alloc_vcpu_struct(const struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
 unsigned long
 hypercall_create_continuation(unsigned int op, const char *format, ...)
 {
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 7632d5e2d62d..c29a6b0decee 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -493,30 +493,6 @@ unsigned int arch_domain_struct_memflags(void)
     return MEMF_bits(bits);
 }
 
-struct vcpu *alloc_vcpu_struct(const struct domain *d)
-{
-    struct vcpu *v;
-    /*
-     * This structure contains embedded PAE PDPTEs, used when an HVM guest
-     * runs on shadow pagetables outside of 64-bit mode. In this case the CPU
-     * may require that the shadow CR3 points below 4GB, and hence the whole
-     * structure must satisfy this restriction. Thus we specify MEMF_bits(32).
-     */
-    unsigned int memflags =
-        (is_hvm_domain(d) && paging_mode_shadow(d)) ? MEMF_bits(32) : 0;
-
-    BUILD_BUG_ON(sizeof(*v) > PAGE_SIZE);
-    v = alloc_xenheap_pages(0, memflags);
-    if ( v != NULL )
-        clear_page(v);
-    return v;
-}
-
-void free_vcpu_struct(struct vcpu *v)
-{
-    free_xenheap_page(v);
-}
-
 /* Initialise various registers to their architectural INIT/RESET state. */
 void arch_vcpu_regs_init(struct vcpu *v)
 {
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index 16cd45cc32c0..effb23a23416 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -15,6 +15,18 @@
 unsigned int arch_domain_struct_memflags(void);
 #define arch_domain_struct_memflags arch_domain_struct_memflags
 
+/*
+ * This structure contains embedded PAE PDPTEs, used when an HVM guest
+ * runs on shadow pagetables outside of 64-bit mode. In this case the CPU
+ * may require that the shadow CR3 points below 4GB, and hence the whole
+ * structure must satisfy this restriction. Thus we specify MEMF_bits(32).
+ */
+#define arch_vcpu_struct_memflags(d) ({                                 \
+    const struct domain *d_ = (d);                                      \
+                                                                        \
+    (is_hvm_domain(d_) && paging_mode_shadow(d_) ? MEMF_bits(32) : 0);  \
+})
+
 #define has_32bit_shinfo(d)    ((d)->arch.has_32bit_shinfo)
 
 /*
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 93c71bc766b0..655d9590f846 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -316,6 +316,26 @@ static void vcpu_info_reset(struct vcpu *v)
          : &dummy_vcpu_info);
 }
 
+static struct vcpu *alloc_vcpu_struct(const struct domain *d)
+{
+#ifndef arch_vcpu_struct_memflags
+# define arch_vcpu_struct_memflags(d) ((void)(d), 0)
+#endif
+    struct vcpu *v;
+
+    BUILD_BUG_ON(sizeof(*v) > PAGE_SIZE);
+    v = alloc_xenheap_pages(0, arch_vcpu_struct_memflags(d));
+    if ( v )
+        clear_page(v);
+
+    return v;
+}
+
+static void free_vcpu_struct(struct vcpu *v)
+{
+    free_xenheap_page(v);
+}
+
 static void vmtrace_free_buffer(struct vcpu *v)
 {
     const struct domain *d = v->domain;
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 8aab05ae93c8..644f5ac3f293 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -70,10 +70,6 @@ void domid_free(domid_t domid);
 struct domain *alloc_domain_struct(void);
 void free_domain_struct(struct domain *d);
 
-/* Allocate/free a VCPU structure. */
-struct vcpu *alloc_vcpu_struct(const struct domain *d);
-void free_vcpu_struct(struct vcpu *v);
-
 /* Allocate/free a PIRQ structure. */
 #ifndef alloc_pirq_struct
 struct pirq *alloc_pirq_struct(struct domain *d);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 23 17:02:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 17:02:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192705.1511832 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY5m0-0000v0-F3; Tue, 23 Dec 2025 17:02:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192705.1511832; Tue, 23 Dec 2025 17:02:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY5m0-0000ta-94; Tue, 23 Dec 2025 17:02:12 +0000
Received: by outflank-mailman (input) for mailman id 1192705;
 Tue, 23 Dec 2025 17:02:10 +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
 <SRS0=wtgv=65=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vY5ly-0000rH-NJ
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 17:02:10 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1e775447-e021-11f0-b15b-2bf370ae4941;
 Tue, 23 Dec 2025 18:02:09 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b73a9592fb8so979261366b.1
 for <xen-devel@lists.xenproject.org>; Tue, 23 Dec 2025 09:02:09 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b80464e01d9sm1306260566b.42.2025.12.23.09.02.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Dec 2025 09:02:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1e775447-e021-11f0-b15b-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766509329; x=1767114129; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=S95KJYi4jIB1ArhFJq9VOfQamAB3y8b+WB2+NeoNQsg=;
        b=D6aw+pG0j8x6elEPVh0rp33t/TZUqrCSxRj86XqkkIYlrqAdFnaMH1pUXBY0NdJbpI
         JrsRKDmOvnezLRUOS0rXwwMhzBgs2ZYZ4Z1RMDCmgPsCxIuAiw0pQob+q9DS6c+aEqBW
         patnWSGf0fCr9d1i+MigsVMKOPLilUrqQQNTJnKqm/Ti8yYhkynb/pvljcfSHXMGVfZq
         aX+VW3mc2XDtavEx4eA/v3aZQPW+6ftCFlK85VueuEqwCysEtnXT9G4Vu69Y7yF20r8Y
         6P5oSjL3h3seDDMy8CH9ss6uyQomjhnK2HF4oAfZZ12Is0CS+EgkyxNf+AAwulFzDTwN
         e/5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766509329; x=1767114129;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=S95KJYi4jIB1ArhFJq9VOfQamAB3y8b+WB2+NeoNQsg=;
        b=qZ0hpZkdjT0MwjGG/S0BeXRRpfNeEN+GC1Fl5PKwqkbjQzIcZQRUnBt5TWlTCzWhk5
         0mJsE71TOwyGU0XCHnPRbMT/XWscvgzggeqVS76dqCCO3KIKzoEr7Hn+HTKDJYOmsGJj
         Jj0bmqxfxrI1qkrwehZnU6+btlHLN4lxBGooTFEES5PANeBFAk4jAPuF9AuteNe+0VvE
         vTCqv/uosqkcQ1fiN/4Zg91pg3M+CVT9IBAc+tjwwYrKld3S+I1TBBB9OPXs/7IRYYew
         7hNtFr/D9/o+3AcQlvReAnS2XXiAfc6sxw+bxV4qu8Sulbvth2zcxlICohPstqShPxCN
         ss0g==
X-Gm-Message-State: AOJu0YzDMvTgOfYay8YEVPaL+Zk3a88/BUQ3p6Pj/sCXyoIvnoktlZQa
	fkQApRPh41tDOXcmsIO1bfxoa8KT2f5J5P8KfPZoSj2zZx58K6EkHxh1DXLjRA==
X-Gm-Gg: AY/fxX7fbSLpqhSP84TBON2f4viCFwcTLR2gXXhDddxUytczqVhNIsWwwA2v0SpWChc
	F5Bh5Qmirjplhe0HznRA9hKBp7iHyLvczEPZPagBU9YLFKxFIx4A4C7M9Fc7GCe7QY5oFiVHKZZ
	TKcsiZiy5Je2gVjCnFdqBcqUOqOTxpGVQ1XygSjrYrPomJKGXXB/4ZWm+HeudNMnzLYanYL2fWX
	aulvFQIh8YUoAu/tRc0IPA6qL/5Mi0Aqnt5ySjN4tin6npzqwtBOnq6JRCODLkrFlzNlPPn7JAf
	LfV+e3Or4ePDADBxSFf0+GksS6ZYD7ycVonGtw70J3ZA2WXLBBdJv1hXeAtf1Acl5XmNHmSHT0Q
	NX74hlVRlw81/E9ScSsqsWXxTJUv84yS/WGKWT4zsENMyoy5NbfjRhce8KRG7CYbWOHKHrykiED
	JOqaz2ZdVu89iuZ31oDk/6tbYWwjcUkvLM27OoWZ7QBeUaBCQw52Uk+PM=
X-Google-Smtp-Source: AGHT+IGpGaRAzqQ1l6lcLkd3EgAivjDFotE6e8nL5bz+/5hixOWejp5H7cVVzYJVmdmv5kDkCCMIsw==
X-Received: by 2002:a17:907:70d7:b0:b80:1403:764c with SMTP id a640c23a62f3a-b80205e6bd3mr1400852366b.24.1766509329133;
        Tue, 23 Dec 2025 09:02:09 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v4 2/4] xen/arm: optimize the size of struct vcpu
Date: Tue, 23 Dec 2025 18:01:56 +0100
Message-ID: <0756ee97dd47f6acdefe593694b743eb6bfefacb.1766504313.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766504313.git.oleksii.kurochko@gmail.com>
References: <cover.1766504313.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

When CONFIG_NEW_VGIC=y and CONFIG_ARM_64=y, the size of struct vcpu
exceeds one page, which requires allocating two pages and led to the
introduction of MAX_PAGES_PER_VCPU.

To remove the need for MAX_PAGES_PER_VCPU in a follow-up patch, the vgic
member of NEW_VGIC's struct vgic_vcpu member private_irq is changed to a
pointer to struct vgic_irq.
As a result, the size of struct vcpu for Arm64 is reduced to 2176 bytes,
compared to 3840 bytes (without these changes and with CONFIG_ARM_64=y)
and 4736 bytes (without these changes and with both CONFIG_ARM_64=y and
CONFIG_NEW_VGIC=y).

Since the private_irqs member is now a pointer, vcpu_vgic_init() and
vcpu_vgic_free() are updated to allocate and free private_irqs instance.

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Change in v4:
 - Add Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>.
---
Changes in v3:
 - Make private_irqs member as pointer to vgic_irq in struct vgic_cpu
   of new_vgic instead of vgic member of arch_vcpu.
---
Changes in v2:
 - New patch.
---
 xen/arch/arm/include/asm/new_vgic.h | 2 +-
 xen/arch/arm/vgic/vgic-init.c       | 7 +++++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/include/asm/new_vgic.h b/xen/arch/arm/include/asm/new_vgic.h
index 1e762138939f..6f7af0e02b2b 100644
--- a/xen/arch/arm/include/asm/new_vgic.h
+++ b/xen/arch/arm/include/asm/new_vgic.h
@@ -155,7 +155,7 @@ struct vgic_dist {
 };
 
 struct vgic_cpu {
-    struct vgic_irq private_irqs[VGIC_NR_PRIVATE_IRQS];
+    struct vgic_irq *private_irqs;
 
     struct list_head ap_list_head;
     spinlock_t ap_list_lock;    /* Protects the ap_list */
diff --git a/xen/arch/arm/vgic/vgic-init.c b/xen/arch/arm/vgic/vgic-init.c
index aef526f2e717..4eb49d922492 100644
--- a/xen/arch/arm/vgic/vgic-init.c
+++ b/xen/arch/arm/vgic/vgic-init.c
@@ -202,6 +202,11 @@ int vcpu_vgic_init(struct vcpu *v)
 {
     int ret = 0;
 
+    v->arch.vgic.private_irqs =
+        xzalloc_array(struct vgic_irq, VGIC_NR_PRIVATE_IRQS);
+    if ( !v->arch.vgic.private_irqs )
+        return -ENOMEM;
+
     vgic_vcpu_early_init(v);
 
     if ( gic_hw_version() == GIC_V2 )
@@ -244,6 +249,8 @@ void vcpu_vgic_free(struct vcpu *v)
     struct vgic_cpu *vgic_cpu = &v->arch.vgic;
 
     INIT_LIST_HEAD(&vgic_cpu->ap_list_head);
+
+    XFREE(v->arch.vgic.private_irqs);
 }
 
 /*
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 23 17:02:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 17:02:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192706.1511836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY5m0-0000z0-MA; Tue, 23 Dec 2025 17:02:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192706.1511836; Tue, 23 Dec 2025 17:02:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY5m0-0000wu-Fy; Tue, 23 Dec 2025 17:02:12 +0000
Received: by outflank-mailman (input) for mailman id 1192706;
 Tue, 23 Dec 2025 17:02:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wtgv=65=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vY5ly-0000rG-Uu
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 17:02:10 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1deb8b92-e021-11f0-9cce-f158ae23cfc8;
 Tue, 23 Dec 2025 18:02:09 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b7a72874af1so895079966b.3
 for <xen-devel@lists.xenproject.org>; Tue, 23 Dec 2025 09:02:09 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b80464e01d9sm1306260566b.42.2025.12.23.09.02.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Dec 2025 09:02:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1deb8b92-e021-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766509328; x=1767114128; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=j+aOZqII5wc7BowuwzDWz84yJZJIh5yD9oqK8sJIWHU=;
        b=U34azGk/kIgqoN9JkWzmgzoKsBiDc7dEhAqgDq3eLJ0XGidpV0OPA/KZw4EEFpY1c2
         ZJh3OPdv7NDREITZiHsPwBEuv+7RfU9+lO8QPCavWAl99wIMZXDOzjHMrj7VwTIbw2rA
         aCP5ynArzqbMqVH0g7SmErqfRZU8aPGuNyWVL72hyypTaOqik1w5UX+B7ukjEsyJyZbv
         t7HfpPemI8ZWxTE3XWwZE6RdHpNMO1PHYODBniL+ABATBE9li63Dxo2rvfLpahftRVi4
         V6B0PWpHuJphxFr3LJNMOCxJxkTyjfBFM7pPLJBjghfjICCHQZsi6wR5DmUI9UxSVxF4
         8RMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766509328; x=1767114128;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=j+aOZqII5wc7BowuwzDWz84yJZJIh5yD9oqK8sJIWHU=;
        b=wCiuPX3+9LK+g0v7dDHAhXfhS0ecS9bZm7kuSsVQiYhIPuulkc8DaYwFTUh9M71F25
         ZTBuQ8cnad092Tc2mhojs99RR4SavZPs6OslqmJSAFtzTUIHEgTgXpEMZDL2Gz6HWtxN
         m+NCKdU+vXj1AQG8xdDeXTWRE71z7J91eWy46DLOpTf/0yK26+cd3l9yDNP6rN6UDLsB
         29I1QCjU5suH0gzhDvLrP477HeOzCDyTaMFd5UapRTChGSJZk3ZfD5ba8B4DOcYuKV7L
         yylWHhM+CCX63QpT8brxPcnG15bKXZa0f4uVsncKvbHGqaAizk9OFqGEmXtK0ZeKIrvX
         Beog==
X-Gm-Message-State: AOJu0YzymtpaxbfcRT9v2EKKAKUX5VP3NuCbzLUjXD9LODGMysyEfxG0
	zsMslP+6YYhPd0VwCZH4QDGqEgojp4n4LMClolxpzsKc38oldM7UoiLcJDnGBA==
X-Gm-Gg: AY/fxX6tu9i0Pw6KJ32Ayq7N+qOt+Rj/ZTmSEjxD73GspyFoLA8INtID9K9zzB0NF+B
	UWHfeg1OW/bTzn8gw3EilCIG8TM/2UguAVIer/SR4aK/rztLXmlrNpzV/P+M9H++H6wR2PB1hoU
	BDxJK8i2hi0bkEGQCWbOBQvkH5WpD+p3uVFpOTKZP8R8QdU28HzxOTBLNvihu6Dcta+TGt8ntcl
	do+G1w00wHFY505xGBoh5GaNx+XyxNsWSPIL0E++mjtkCkFbnG8ghS1GxPDxnA0A3ATqOhzlxLT
	eL1omuHrMJpzBDm5koElykmpWBiwoyF1QVF/JxxXvFHsk3s21bIn3AHI3ROmDEfs0LYcJBYdoJQ
	1pj6NqnLLxIvqYQsuweU8L+TPMJnf6Ce/CcVZB8ChF8hdGjiPff2vaQkt9UJd21Rl2hhiSBRPKk
	xDIVrMS6rHxCGK7ZLKTj8rBBfjL+/XQJvAaqpcYlRZ/SLstDbMLdde1w5unfjawnNXbA==
X-Google-Smtp-Source: AGHT+IFdBau6LYw66LiszAsIrMwHExSX3yPph04NnwJrpcy0HJbAmKM1EnTblHaCRBYBx5YCL/+Qzg==
X-Received: by 2002:a17:907:1b0f:b0:b76:d4d0:68da with SMTP id a640c23a62f3a-b8036ebaaf1mr1435816066b.6.1766509328037;
        Tue, 23 Dec 2025 09:02:08 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v4 1/4] xen/arm: vcpu_vgic_free() updates
Date: Tue, 23 Dec 2025 18:01:55 +0100
Message-ID: <ca86bf36375d19555961225f214b9d23557b0d3a.1766504313.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766504313.git.oleksii.kurochko@gmail.com>
References: <cover.1766504313.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Use XFREE() instead of xfree() so that vcpu_vgic_free() can be idempotent.
With XFREE(), vgic_vcpu->private_irqs is set to NULL, so calling
vcpu_vgic_free() a second time is not an issue.

Update the prototype of vcpu_vgic_free() to return void to satisfy MISRA
Rule 17.7, since the return value of vcpu_vgic_free() is not used by any
callers.

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Change in v4:
 - Add Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>.
---
Change in v3:
 - New patch.
---
 xen/arch/arm/include/asm/vgic.h | 2 +-
 xen/arch/arm/vgic.c             | 5 ++---
 xen/arch/arm/vgic/vgic-init.c   | 4 +---
 3 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgic.h
index 31b3d3e5ec5d..6f9ab1c98c1c 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -418,7 +418,7 @@ int domain_vgic_register(struct domain *d, unsigned int *mmio_count);
 int domain_vgic_init(struct domain *d, unsigned int nr_spis);
 void domain_vgic_free(struct domain *d);
 int vcpu_vgic_init(struct vcpu *v);
-int vcpu_vgic_free(struct vcpu *v);
+void vcpu_vgic_free(struct vcpu *v);
 
 void vgic_inject_irq(struct domain *d, struct vcpu *v, unsigned int virq,
                      bool level);
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index 3ebdf9953f07..6647071ad4d7 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -390,10 +390,9 @@ int vcpu_vgic_init(struct vcpu *v)
     return 0;
 }
 
-int vcpu_vgic_free(struct vcpu *v)
+void vcpu_vgic_free(struct vcpu *v)
 {
-    xfree(v->arch.vgic.private_irqs);
-    return 0;
+    XFREE(v->arch.vgic.private_irqs);
 }
 
 struct vcpu *vgic_get_target_vcpu(struct vcpu *v, unsigned int virq)
diff --git a/xen/arch/arm/vgic/vgic-init.c b/xen/arch/arm/vgic/vgic-init.c
index f8d7d3a226d0..aef526f2e717 100644
--- a/xen/arch/arm/vgic/vgic-init.c
+++ b/xen/arch/arm/vgic/vgic-init.c
@@ -239,13 +239,11 @@ void domain_vgic_free(struct domain *d)
     dist->nr_spis = 0;
 }
 
-int vcpu_vgic_free(struct vcpu *v)
+void vcpu_vgic_free(struct vcpu *v)
 {
     struct vgic_cpu *vgic_cpu = &v->arch.vgic;
 
     INIT_LIST_HEAD(&vgic_cpu->ap_list_head);
-
-    return 0;
 }
 
 /*
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 23 17:02:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 17:02:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192704.1511826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY5m0-0000rv-5R; Tue, 23 Dec 2025 17:02:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192704.1511826; Tue, 23 Dec 2025 17:02:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY5m0-0000ro-2G; Tue, 23 Dec 2025 17:02:12 +0000
Received: by outflank-mailman (input) for mailman id 1192704;
 Tue, 23 Dec 2025 17:02:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wtgv=65=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vY5ly-0000rG-AS
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 17:02:10 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1d579e5b-e021-11f0-9cce-f158ae23cfc8;
 Tue, 23 Dec 2025 18:02:08 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b7633027cb2so943054766b.1
 for <xen-devel@lists.xenproject.org>; Tue, 23 Dec 2025 09:02:08 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b80464e01d9sm1306260566b.42.2025.12.23.09.02.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Dec 2025 09:02:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1d579e5b-e021-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766509327; x=1767114127; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=AL9s5eQCDlp/jS7cJI39ZlUgxp9ZnoLTFinnEWek9Q4=;
        b=ZbXYL/Rf3AwSYkxtqjtmQzYrzmqpoApu3I0raDp/I4q6wtYwntZyoFGs8RBGWHH+RW
         TKx1v/Yn2lbfDYZnAegR1NGS+64ln/aEAH/qPF/m/40axF57ZADaQ+GDP9CW0Hrix2gE
         h47uZ2IhjUiEtN8VgeYse64VCZG77MPgeQM6l1VZOadOOx4QJb7LhLeUOhqTnNAURYKa
         uEQ+U2k6mXfe9S4yjfY+BthfX7JGgQEYoiPMPUssVyoXd/sMo8OkO7Pu8PbC2lYkiReM
         WAWk8X2OGDDa+39xFdgEty0PztdyQcdHI6qftz6TPjig7ozz/wpLwgSwv/M0Sog0OaH6
         nYSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766509327; x=1767114127;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AL9s5eQCDlp/jS7cJI39ZlUgxp9ZnoLTFinnEWek9Q4=;
        b=WVjz1aPPyRuvEcRcMe4bR/KOHdM7D7dtn23LNCluPXHkcC/CoAOgnhSR13D/zhc++s
         tKcgrTHrrbtfmG8CLW2UcdmhR5RfYqd+yigNFiUYjq0Ya+nQl7WEIbsVxmbSgxIS3FBe
         yjVgEQFhVzv9CdsTGLSCHb2CaF58XFrbmL0ZgQYr37mmf3Iupku2PaUuSzkPf/BIfX/c
         2UhQz3o1JOf3TKNGkOKkWJJJtcQblxQqjMkDjWwhkQaSiZEqwd5DNca4ZWat0gmRWAXh
         +vDTQGNguqr5RA+gNVdROCglGmOIUpqLQSw7BmRaA05h6CTtkr21q3B6lJ2VGlfq6hnI
         1GPA==
X-Gm-Message-State: AOJu0YxLRL4FXnq25S60RSuWcgiNCDIr3rgDdNEMRp8utT2Ktc6iwwcM
	lmegfj6v7zg83Hph+uyA9vjZGw1QtoO0Hl99ltpNs/TwNxvDFedPVdUvu7zkjQ==
X-Gm-Gg: AY/fxX6F4r92kYGlXTjvA+GPOYYnFM4K27vCuPLIjz7K2u/iBfWnKZZqWSICy2JYe3E
	rmQefA99LJwk1M0sp9ujLC1IDs5jefjq0g2Is31UVQ235Sv1MHyS1JmVHEcBBBs16OEwrd+tEVl
	vHgkamB04SF/nJQcqIyrRpwueWEe1GKqP6PajPYAxDbIitzMqMH9aS+2rZhNSbgXajB1ttBSryw
	zy/g9EaKuTDE0e9VrXBGCz42CP9+B9xRsucMFJZgAHMGS3NNml4u+b0hgJGs0OarFvB9KoWwmT4
	Ce5vtZgKULCGMie4anKcEm8QjDYkrcXqrGiyLw0qOnIvcKh3P5JqnV1yVE3CSTrDZUkL9sxHt77
	NzWGmbq/ngF+USEMM7EEWTXVaM3VXACDitvYF3DWgXROfBndJdX8nCOVrpOEJe2pr2vOh8lnDQz
	9FY5POT1hoXUY/d9dQH7NLZrTsthqrYQdNrNSpkcEh+RRIVUgRYADWABc=
X-Google-Smtp-Source: AGHT+IGROxnnp4h9ydnlIrdA9uoJ1oZ1qS8YHrcxvTqsfHiWCiAAs1/4+Qp3mG8237Kv5EQMU+V8ew==
X-Received: by 2002:a17:907:9622:b0:b76:7b85:f630 with SMTP id a640c23a62f3a-b803717a135mr1576602966b.34.1766509327063;
        Tue, 23 Dec 2025 09:02:07 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v4 0/4] Move alloc/free_vcpu_struct() to common code
Date: Tue, 23 Dec 2025 18:01:54 +0100
Message-ID: <cover.1766504313.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As it was suggested in [1] it would be better to allocate one page for struct
vcpu for all arch-es. To do that it is needed to align Arm code to allocate
one page (as there is a case(when CONFIG_NEW_VGIC=y) when Arm64 will require
to allocate two pages). As a result, the following patches for Arm have been
introduced:
 - [PATCH v2 1/4] xen/arm: optimize the size of struct vcpu
 - [PATCH v2 2/4] xen/arm: drop MAX_PAGES_PER_VCPU

This patches are dependency for:
 - [PATCH v2 3/4] xen: move alloc/free_vcpu_struct() to common code

Also, as a part of this patch series another clean up is done which makes
{alloc,free}_domain_struct() static.

[1] https://lore.kernel.org/xen-devel/f8a9be3a-a0c6-496a-806f-40760dca5aee@suse.com/T/#m275dfcbdccef0461fa9a8acef072403f18091768

CI: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2230207975

---
Changes in v4:
 - Address the comments recieved for v3.
---
Changes in v3:
 - Come up with a different way to optimize struct vcpu for Arm.
 - Merge patches "[PATCH v2 2/4] xen/arm: drop MAX_PAGES_PER_VCPU]" and
   "[PATCH v2 4/4] xen/common: make {alloc,free}_domain_struct() static"
   together.
 - Clean up vcpu_vgic_free() a little bit.
---
Changes in v2:
 - Introduce new patches for Arm:
     - [PATCH v2 1/4] xen/arm: optimize the size of struct vcpu
     - [PATCH v2 2/4] xen/arm: drop MAX_PAGES_PER_VCPU
    to allocate one page for struct vcpu in common code for all the arch-es.
 - Introduce patch to clean up xen/domain.h a little bit:
     - [PATCH v2 4/4] xen/common: make {alloc,free}_domain_struct() static
 - Address the comments from v1:
     - [PATCH v2 3/4] xen: move alloc/free_vcpu_struct() to common code
---

Oleksii Kurochko (4):
  xen/arm: vcpu_vgic_free() updates
  xen/arm: optimize the size of struct vcpu
  xen: move alloc/free_vcpu_struct() to common code
  xen/common: make {alloc,free}_domain_struct() static

 xen/arch/arm/domain.c               | 32 ---------------
 xen/arch/arm/include/asm/new_vgic.h |  2 +-
 xen/arch/arm/include/asm/vgic.h     |  2 +-
 xen/arch/arm/vgic.c                 |  5 +--
 xen/arch/arm/vgic/vgic-init.c       |  9 ++++-
 xen/arch/ppc/stubs.c                | 10 -----
 xen/arch/riscv/stubs.c              | 10 -----
 xen/arch/x86/domain.c               | 24 -----------
 xen/arch/x86/include/asm/domain.h   | 12 ++++++
 xen/common/domain.c                 | 62 +++++++++++++++++++----------
 xen/include/xen/domain.h            |  8 ----
 11 files changed, 64 insertions(+), 112 deletions(-)

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 23 17:02:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 17:02:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192708.1511866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY5m5-0001md-CX; Tue, 23 Dec 2025 17:02:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192708.1511866; Tue, 23 Dec 2025 17:02:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY5m5-0001mC-6j; Tue, 23 Dec 2025 17:02:17 +0000
Received: by outflank-mailman (input) for mailman id 1192708;
 Tue, 23 Dec 2025 17:02:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wtgv=65=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vY5m3-0000rG-Ft
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 17:02:15 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1fde30af-e021-11f0-9cce-f158ae23cfc8;
 Tue, 23 Dec 2025 18:02:12 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-b8052725de4so379259766b.0
 for <xen-devel@lists.xenproject.org>; Tue, 23 Dec 2025 09:02:12 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b80464e01d9sm1306260566b.42.2025.12.23.09.02.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Dec 2025 09:02:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1fde30af-e021-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766509331; x=1767114131; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=53lxFHrWyKrVGe7Q7DFq09Waedw2HF5xUPeWdO/aDjY=;
        b=enWmrLDOtXjYcL0F596u3QHl1z8R2XD6oVzDdO23g+H4dMT03pwCznKVqJPtn9RjNe
         gEC3KRIag2oJvgbk9dXilfEmtT5Qio+yITG63C8hcf8aduEODQNmWpx5sun9axlCHg5f
         SRIKQQXs4IHM48z1F1nO6raYnTsg0NsQdbfg8SQeH7q2WjJNEsyZTKtKinT4FOd8gXrd
         rWqeAosJPGZAabt9MxUs7PGMHwqcz5xw/751StZQXC7BPxQCGLPd282URA46pHQ5S8hr
         x/vproxHex4o+/zyudKKZ6tqAF8br62YO9MyFjCSIKlXx9RwHCFuMooRuJVe+WXb/ttW
         4fVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766509331; x=1767114131;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=53lxFHrWyKrVGe7Q7DFq09Waedw2HF5xUPeWdO/aDjY=;
        b=JeALDNqCA8rTgDkTPGZxrfGfRxGzWRfUKQT3sNQbDeZC7DTFE4BqY50Ij5jlvywB5Y
         VmBgfL2cihyhy6vbDG9Z0QC+DWvRox1cTfDTG7P2R31bxkDq10lebL9BvOVLLiMTUPSQ
         wg23ZykBKpPwg8bI/semg7UMPo50NABYw26fAJy6OOsavOM8hxJKCwakcLQYH2D3rADf
         JQ+O71u6R71oDao3g8ZyguZfHqCMBPR5E+BzAkQmdx8Bpkg39OcaEWFZIDv18UZPJcfd
         0ev6pCqKO2FiqLPgJ64I1Mj92HDzADP516EPMt182LPkwDWmKhEkeGsBsbkDN+6DS1KQ
         XEKA==
X-Gm-Message-State: AOJu0Yzo4T1jRZanen1cX4ENX9simTflLbOtW+tiL7LNPNe+muUa6IMy
	bqSzj+cjDHykKejylHA6bSiCsj1Rmihe/3oyZ5JcboSL6/mw2AyAWqFuZBWygg==
X-Gm-Gg: AY/fxX6KOclqJC+NYf5nMbt45gC6onUTln60ffjgGSAhLW4g/BrK8oiV6wLbT6JWjtC
	tEOZHmrBMu4g+08YkMCmZWiLHkdX0areLnMnIaPK/+hHGyUsnaBuVtaO2l4XQ8tF023NkcGFlT2
	DtImL4ZnFRSxhqWU0GjRy2hpWbyUwBO85O52vgrdZOawlfOz4Q2b3v8ouvUF+/9Tdal0l5Zorma
	m90fx++VsO5PSt1QAulL+apj913lNSjr7TsGaajKwHwCOLQR7APaIjnaNAYbdA25RnX/cUaVl1O
	g9np5ycx2HL//nGd2cUYBD6xbXj61RFZ+F7495IkNQ8FR2wc1xXeAkYMzLyszAvseDFab8YaZ+G
	KYTNhGSY4sv6KPRQNKbb5ODXrKHTLjQpYjk4szmspI/k2fDXnTuy+1I2skjxnDwVWIIidQEYrm5
	LJXtqgYeEmeN9W09bnygRing5s5okbTmopwU8GqUj1N5Umb78LXC+r+50=
X-Google-Smtp-Source: AGHT+IHXnaNp4fKXvrKrxjOgAN7KGFkLq1lGkwU6OoXQPf/mSnwxKFE0bLIQUQV9NuMYq7RGZQkAFA==
X-Received: by 2002:a17:907:e106:b0:b80:4103:537e with SMTP id a640c23a62f3a-b80410355bcmr1001770366b.53.1766509331372;
        Tue, 23 Dec 2025 09:02:11 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 4/4] xen/common: make {alloc,free}_domain_struct() static
Date: Tue, 23 Dec 2025 18:01:58 +0100
Message-ID: <8f1c95499cddf63310b72c7a0913b2b37ca3c24b.1766504313.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766504313.git.oleksii.kurochko@gmail.com>
References: <cover.1766504313.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As {alloc,free}_domain_struct() are used only within domain.c,
they can be declared static and their declarations removed
from xen/domain.h.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Changes in v4:
 - Move implementation of alloc_domain_struct() and free_domain_struct()
   ahead of alloc_vcpu_struct().
---
Changes in v3:
 - Move alloc_domain_struct() and free_domain_struct() to not have
   forward declaration.
 - Add Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>.
---
Changes in v2:
 - New patch.
---
 xen/common/domain.c      | 42 ++++++++++++++++++++--------------------
 xen/include/xen/domain.h |  4 ----
 2 files changed, 21 insertions(+), 25 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 655d9590f846..ed4b6175de0b 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -316,6 +316,27 @@ static void vcpu_info_reset(struct vcpu *v)
          : &dummy_vcpu_info);
 }
 
+static struct domain *alloc_domain_struct(void)
+{
+#ifndef arch_domain_struct_memflags
+# define arch_domain_struct_memflags() 0
+#endif
+
+    struct domain *d = alloc_xenheap_pages(0, arch_domain_struct_memflags());
+
+    BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
+
+    if ( d )
+        clear_page(d);
+
+    return d;
+}
+
+static void free_domain_struct(struct domain *d)
+{
+    free_xenheap_page(d);
+}
+
 static struct vcpu *alloc_vcpu_struct(const struct domain *d)
 {
 #ifndef arch_vcpu_struct_memflags
@@ -819,27 +840,6 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
     return arch_sanitise_domain_config(config);
 }
 
-struct domain *alloc_domain_struct(void)
-{
-#ifndef arch_domain_struct_memflags
-# define arch_domain_struct_memflags() 0
-#endif
-
-    struct domain *d = alloc_xenheap_pages(0, arch_domain_struct_memflags());
-
-    BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
-
-    if ( d )
-        clear_page(d);
-
-    return d;
-}
-
-void free_domain_struct(struct domain *d)
-{
-    free_xenheap_page(d);
-}
-
 struct domain *domain_create(domid_t domid,
                              struct xen_domctl_createdomain *config,
                              unsigned int flags)
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 644f5ac3f293..273717c31b3f 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -66,10 +66,6 @@ void domid_free(domid_t domid);
  * Arch-specifics.
  */
 
-/* Allocate/free a domain structure. */
-struct domain *alloc_domain_struct(void);
-void free_domain_struct(struct domain *d);
-
 /* Allocate/free a PIRQ structure. */
 #ifndef alloc_pirq_struct
 struct pirq *alloc_pirq_struct(struct domain *d);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 23 17:07:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 17:07:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192743.1511876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY5qy-0003Wy-37; Tue, 23 Dec 2025 17:07:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192743.1511876; Tue, 23 Dec 2025 17:07:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY5qy-0003Wr-0e; Tue, 23 Dec 2025 17:07:20 +0000
Received: by outflank-mailman (input) for mailman id 1192743;
 Tue, 23 Dec 2025 17:07:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=7uuJ=65=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vY5nF-0000rG-8g
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 17:03:29 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4c9ee29c-e021-11f0-9cce-f158ae23cfc8;
 Tue, 23 Dec 2025 18:03:27 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-42fed090e5fso2465613f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 23 Dec 2025 09:03:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea227e0sm29616357f8f.17.2025.12.23.09.03.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Dec 2025 09:03:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c9ee29c-e021-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766509407; x=1767114207; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=kFnPD6cgmdtsDqxiJGsETNIDZdUNRvNHPgixmMEAxLU=;
        b=fXbTDJw642hbUb+yU0Sg7tSTq9gRf2hyhhtOXTNDtt+A54yG+2EtX3xXHxQrka10QG
         xsHQp32Dn7HO8OVWQuuf6/Z2NV1lnsjRH7M8qfI8JnQlHOYtnapQ0BtEFDVK0VGRVnjO
         t+7WZCIferGsRoU6MPiJP7PoSiahKLgW9rbXJPGabmPHPjyBFPPZXPxii1NQZonFfbds
         z+2qOF9QIrnPcIqzZgSIwhwXRyoODYG9eF0kTxqxkLD6/2po5NR2+X33E3ZLs9y9n3bz
         CbQ3FJYh/RBleK7RrEgs3tGoJTvfUEcaWwpqtDSx65QEgp8LYMnsfL2XvgySsSCZGJJe
         74EA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766509407; x=1767114207;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=kFnPD6cgmdtsDqxiJGsETNIDZdUNRvNHPgixmMEAxLU=;
        b=YITfcwF6z1p5i2AP2LMlK8lSfaixtS68gAdHygAM1MfPV2Zts9tT7SJuHIhUand5Ws
         DPnCu7hhnXEMXr6n9xNEPcyJN9oYJThWguehV8Un7oziPGwCAICGU6IqJeszsBqjrXEY
         8MH1D+Xrr6l67hI2B8fIlKoF9ayNVWptfjjBNAkQOwJJnjx3Apn1OGBhgCpXmA+PLWFE
         HJayiP8jPWZyoeojK35sarowS5qVRiAoOjxE6RczFmOau8x9R7oMlGP+aD7S5+Fi061n
         c5S5rmCFgfTPrGENFSnKwZOmfo8YbLqCHf9cSw1sIeHHNqs3NISsROsOHRnm1zQy3UnN
         KTVA==
X-Gm-Message-State: AOJu0YyD1fLzA/f8A0UTjVq2tPFIB786CgFk6BkEgExEPN8E6zmgCWrw
	3esucYDaxQdDmR+pdCoS+w0dtTLpkhrQxqQGvZKDB6TLy+Khul2miqiJ2Yn+BSiIJN23esw+/oc
	GM8Q=
X-Gm-Gg: AY/fxX7i2eWQ713ASu43UnecmZqQ6Fo0xEZu0qKP54b52ZoJGonADjv+M8dUil2VU0l
	e9ppSZJn2VgjyvAbmUQ/IkgRuJw528zrV8UxAtF4zWw3Y+bzav/26P1lqSkW1SB1rpwZKDluh7A
	wBT6oAAObV9bs/6N8uAQiW4efjXiWIDtPTxKfuar7CYNZrlxInyjg0gsgtixfF/o3LaFWOq7NXw
	pUJVCTryK0e3r8enZSrvXJ4DXtUQOvDPkOFbr7Q8aelZLnqRMulk2DdtwVY4JXbGp9aDuK1G8F1
	vZNZdmTRy2Ljc35+hoyz7s0mC9IEm+Mdx99wvsdUk6wPVeGI8DnAUyqyBjeM5Ixe5dKDqaso9lj
	oMWwW/1IybXJA7E/+v7vnrvZN0pPD4aLSdpHP6BXMVk3niHX3pjF68Zy188zaXzsuJj8sGUAg5l
	72dUBZlpNtOTwd0Os4O46wViKfvaPMrV6avjvU8VO3ykNMY3StW0eGRf5W4ARlBap0jxlAufBVZ
	Z0=
X-Google-Smtp-Source: AGHT+IFxwWc/AWCBV2CWEN3qHDK4cb6VCTMRN35Bo3jX5hHim9OaAeSTLpPyqz+lntfG0G1H9q7ZYg==
X-Received: by 2002:a05:6000:1acc:b0:431:327:5dc2 with SMTP id ffacd0b85a97d-4324e50a6acmr17751233f8f.51.1766509406738;
        Tue, 23 Dec 2025 09:03:26 -0800 (PST)
Message-ID: <93718ef5-bb60-4476-9936-039f11a945ad@suse.com>
Date: Tue, 23 Dec 2025 18:03:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "committers@xenproject.org" <committers@xenproject.org>,
 "community.manager@xenproject.org" <community.manager@xenproject.org>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH][security policy] embargo control and crediting of discoverer
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

This is as per discussion at an earlier Community Call.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Btw, what does "(b)-(f)" refer to under "Specific Process", item 3, sub-
item 5?

--- content/about/security-policy.md
+++ content/about/security-policy.md
@@ -103,6 +103,8 @@ Vulnerabilities reported against other X
 
     At this stage the advisory will be clearly marked with the embargo date.
 
+    Unless requested otherwise, the discoverer will be credited already with the pre-release.
+
 5.  **Advisory public release:**At the embargo date we will publish the advisory, and push bugfix changesets to public revision control trees.Public advisories will be posted to xen-devel, xen-users and xen-annnounce and will be added to the [Security Announcements Page](http://xenbits.xen.org/xsa/) (note that Advisories before XSA-26 were published [here](http://wiki.xenproject.org/wiki/Security_Announcements_%28Historical%29)) . Copies will also be sent to the pre-disclosure list.
 6.  **Updates**If new information or better patches become available, or we discover mistakes, we may issue an amended (revision 2 or later) public advisory. This will also be sent to the pre-disclosure list.
 7.  **Post embargo transparency:**During an embargo period the Security Response Team may be required to make potentially controverial decisions in private, since they cannot confer with the community without breaking the embargo. The Security Response Team will attempt to make such decisions following the guidance of this document and where necessary their own best judgement. Following the embargo period any such decisions will be disclosed to the community in the interests of transparency and to help provide guidance should a similar decision be required in the future.
@@ -118,6 +120,8 @@ As discussed, we will negotiate with dis
 
 When a discoverer reports a problem to us and requests longer delays than we would consider ideal, we will honour such a request if reasonable. If a discoverer wants an accelerated disclosure compared to what we would prefer, we naturally do not have the power to insist that a discoverer waits for us to be ready and will honour the date specified by the discoverer.
 
+In any event at the time of pre-disclosure control over a possible late change of the public disclosure date moves from the discoverer to the Security Response Team. This is to avoid pre-disclosure list members putting pressure on the individual to extend or shorten the embargo.
+
 Naturally, if a vulnerability is being exploited in the wild we will make immediately public release of the advisory and patch(es) and expect others to do likewise.
 
 ## Pre-disclosure list
@@ -297,6 +301,7 @@ This is a list of organisations on the p
 
 ## Change History
 
+-   **v3.26 Dec 23rd 2025:** Changed embargo control
 -   **v3.25 Dec 23rd 2025:** Removed iWeb Technologies Inc.
 -   **v3.24 Dec 5th 2024:** Added NixOS
 -   **v3.23 Aug 8th 2019:** Added DornerWorks Ltd


From xen-devel-bounces@lists.xenproject.org Tue Dec 23 17:36:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 17:36:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192776.1511885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY6J2-00082R-8g; Tue, 23 Dec 2025 17:36:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192776.1511885; Tue, 23 Dec 2025 17:36:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY6J2-00082K-6B; Tue, 23 Dec 2025 17:36:20 +0000
Received: by outflank-mailman (input) for mailman id 1192776;
 Tue, 23 Dec 2025 17:36:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tvXp=65=gmail.com=bobbyeshleman@srs-se1.protection.inumbo.net>)
 id 1vY6J1-00082E-I5
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 17:36:19 +0000
Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com
 [2607:f8b0:4864:20::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e217880a-e025-11f0-9cce-f158ae23cfc8;
 Tue, 23 Dec 2025 18:36:16 +0100 (CET)
Received: by mail-pl1-x631.google.com with SMTP id
 d9443c01a7336-2a0833b5aeeso70595195ad.1
 for <xen-devel@lists.xenproject.org>; Tue, 23 Dec 2025 09:36:16 -0800 (PST)
Received: from localhost ([2a03:2880:2ff::]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2a2f3c66629sm134402475ad.14.2025.12.23.09.36.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Dec 2025 09:36:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e217880a-e025-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766511375; x=1767116175; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=gaoL0EgpSgvE3V8MqagB54mpW9ZMp6QjZ3FcYobRHig=;
        b=LxpYh6g/UT428RcIVydUGe8TEowPMIRCZr5oT/nvlGKPEp30QollncYfXyxoof0SLJ
         tMB2g1AoiYZI9hqizDs6fiM0uMJdtdjclma0HFRXz6rzFPzt15MPP6xH0xrmOmo7Eh/a
         X7FUz1teT/CFAybdIujHrluEMGe5c29YfvhLGH65owaZq74BTGLnnyMYmGW9wGsIwG6Z
         Ms4CJwX9qmUOcuzpfUoGFf9fGnRoGzeywTAzc38QwIWu5khGiwp/hOvqi1MEv3uiYVyp
         6Swrl3Y4zYW6arzJfQmrEbbTOGoV2GMwA1lopPOGl0C61NiDBnvyY/7RCCDazDcEtTNT
         rAhg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766511375; x=1767116175;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gaoL0EgpSgvE3V8MqagB54mpW9ZMp6QjZ3FcYobRHig=;
        b=SfZ+U5lJgDTx/6GU4rtuL4aLMPQpAW4KiT4F36vMFecNOK58c0txGhMsYK2YWXtbtP
         fc4/TTsDJaPXGQpDVapGzXrvzo5LYI8lWUxRT/x5eFZqZUVIwBTWADdvqZS0hnajEs6W
         kfxp6iuvQO6MsXtaMv8SgrFjePl0ZsoR1TQl8TA0F48xnEpNMcETuZR/N0xSV1Pj4EL8
         1bXPxlynre77gvQ0PCYCxOd9r0DhQ5ftRCeFjsTikAfGTzPcSNxd0b10JdeZ7NiFv1iS
         k4LRhTi0m4NKaHxeWlEZ3oyHJl6FkChzljCg+DboviJ9W7KNXd8ZS0bhpTFLYEyb6eFC
         pi3Q==
X-Gm-Message-State: AOJu0YwTDF52+U7VYYeudu5UvW+VBIBeg5aXDd8Ab+yJnvtVvydubyv+
	hiiPpoKz/I0CqhAtMnDORmuThrvoUGQAD0ixswqaqxHVeXw90U1K4Gb1IJNznQ==
X-Gm-Gg: AY/fxX6bxotl93Nl4v5xcx5u7bJPnb++ahKtMPgmHoLZ+MVV/Z3ppW9ln6MR9LptrSy
	u8QsehK1296HmjbWVF7VDv1LiS6aw9W8ptLQWA2bDkxg0PIQoAIsOHm6mzVidsvtrrnxa91ksLU
	A6f6IR9HwXY5vvU08dCdTAEOtplpYu7PHtXNYamMf8jolQmGWdpOHqOVXvkZq37Q1L6KYxZhgU7
	Oa2+rnhstPCjCSO8a3zJXjWaXAKascSmq1aj2kD6sjNPIVF3A8Vt9xJ8ZVTlsBdvHniVc6M10mb
	AEV+4qtycxsEZn2BqRmsEahv9WXtCg7WyC0kasrIsQTPU498Gp86nkEvQbx3VvcnIV9j7sz7tvs
	vjEfIJqlrleT1ajm7yWz6mBGyqkMlkxT9d5PzkYYJMDpuXZ/i9LfOh0rKVj2xU1+wVZ9RB586jT
	bO94gYeMTBpvz+XIWs
X-Google-Smtp-Source: AGHT+IFOlLFz4BIDf4rwNvqcLY+w0ZsHXcjhXNTnMfipqH0GcHREIqZ7Jse3ZslamL72RsvA/Aww7g==
X-Received: by 2002:a17:903:2342:b0:2a0:e5cd:80a1 with SMTP id d9443c01a7336-2a2f2a34fa1mr148796535ad.41.1766511375146;
        Tue, 23 Dec 2025 09:36:15 -0800 (PST)
From: Bobby Eshleman <bobbyeshleman@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Bobby Eshleman <bobbyeshleman@meta.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH] MAINTAINERS: remove myself as RISCV reviewer
Date: Tue, 23 Dec 2025 09:36:14 -0800
Message-ID: <20251223173614.2638823-1-bobbyeshleman@gmail.com>
X-Mailer: git-send-email 2.47.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Bobby Eshleman <bobbyeshleman@meta.com>

I haven't been actively reviewing Xen RISC-V patches for several years,
so remove myself from the reviewer list to better reflect the current
reality. The RISC-V port has come a long way thanks to Oleksii, current
contributors, and maintainers, and it has been exciting to see. Many
thanks to everyone, I hope we cross paths again in the future!

Signed-off-by: Bobby Eshleman <bobbyeshleman@meta.com>
---
 MAINTAINERS | 1 -
 1 file changed, 1 deletion(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index c70623153bc6..bf00be928c3d 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -506,7 +506,6 @@ F:	tools/hotplug/Linux/block-drbd-probe
 
 RISCV
 R:	Alistair Francis <alistair.francis@wdc.com>
-R:	Bob Eshleman <bobbyeshleman@gmail.com>
 R:	Connor Davis <connojdavis@gmail.com>
 R:	Oleksii Kurochko <oleksii.kurochko@gmail.com>
 S:	Supported
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 23 17:55:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2025 17:55:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192789.1511896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY6bd-0002kn-PE; Tue, 23 Dec 2025 17:55:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192789.1511896; Tue, 23 Dec 2025 17:55:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vY6bd-0002kg-LH; Tue, 23 Dec 2025 17:55:33 +0000
Received: by outflank-mailman (input) for mailman id 1192789;
 Tue, 23 Dec 2025 17:55:32 +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
 <SRS0=I0w9=65=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vY6bb-0002jy-SK
 for xen-devel@lists.xenproject.org; Tue, 23 Dec 2025 17:55:32 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 91ca203a-e028-11f0-b15b-2bf370ae4941;
 Tue, 23 Dec 2025 18:55:31 +0100 (CET)
Received: from DS1PR03MB7871.namprd03.prod.outlook.com (2603:10b6:8:21f::17)
 by DM6PR03MB5067.namprd03.prod.outlook.com (2603:10b6:5:1ec::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.11; Tue, 23 Dec
 2025 17:55:25 +0000
Received: from DS1PR03MB7871.namprd03.prod.outlook.com
 ([fe80::3a7e:e6ed:f8e9:9fb3]) by DS1PR03MB7871.namprd03.prod.outlook.com
 ([fe80::3a7e:e6ed:f8e9:9fb3%7]) with mapi id 15.20.9434.009; Tue, 23 Dec 2025
 17:55:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 91ca203a-e028-11f0-b15b-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=klvQgypjtq+EpJqJsUkMYgBCpyxv+uQIjqYl8ERMBOzibs7kZ1vqt2vvPp76nIaDqF3zuNUzxOuj+q3PEC8IEoJpS6TepV1cnCVFCqRWP4hTwgOfqmNtzQPySql4vyGROiIhpKDCsbwaCyQBZ/9Gms63h/XAQYi7OJQKrb8YDmCUEiDSGUqA+IgzbTlnEWYsUg/iDnfC8O9ZUDvikBywoCeOSk0f1+4fpS/q8IQisFFkdBEKze/LZFHlD7X7n+F2kbyzqQOgWXOs+62hh/WaqeI9xTHrv+6KMcUkHYJluXF4AStUtNZHurTfd/TAkm5XT0fDoFcxe/Gl+kYcv6EpMA==
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=nHH7BKBRfPHkAIvefv7tZmg+rxCnzOgE9VgJncB9Lew=;
 b=X9je9Q2X8QsLkwECxKiktp5yIVvBHNyyXEz/pgm6pIFu4TD6gPZKtvomsYsLDpVVbpWBv32cDflogAaTPIPO3MDtOajB0wQIa8ou/Mm7TQqH/QmSRyL0XKHqCW+fj5EdD67J3MfKRWNBhJGHm9QnMS5ETzQoICAZXxqWENRqWELekMiQE7QHY5PNqJFiYO6HOyUvadrqB7yc52fSvbTH6KnzXaCc6qiur0tm7a0GQ/2u+a/ZTJmh2zXgdLVoprjgWMWdoLwGQYP8jtsUGk3kDTPJEfKOi4bO5KYClyM7Btm8ydMZEhJETAx6HRdE3GxVMKXkfkhhFcbZvi1SppG/pw==
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=nHH7BKBRfPHkAIvefv7tZmg+rxCnzOgE9VgJncB9Lew=;
 b=thEzwRT34JH/uAkOSOPs8Jop2NFkMUtXJAwLxgvATa30pphyHQN7EEOLAFVlJZi4nxPwAnPbuVTE3qQdd9LqMpCgpFBrzlVB68041tAbcWNNuSKLw0TpYk7r/C+7krPeO1ejQa1xfErTvXHq+qFA3w2vJxr2oerRkbiKEhf+T4E=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 23 Dec 2025 18:55:21 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] xen/mm: move adjustment of claimed pages counters on
 allocation
Message-ID: <aUrXiaWnyM-eTJg2@Mac.lan>
References: <20251223081507.29325-1-roger.pau@citrix.com>
 <754a5e55-828d-4b3f-85cd-574760ddc69b@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <754a5e55-828d-4b3f-85cd-574760ddc69b@suse.com>
X-ClientProxiedBy: PAYP264CA0011.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:11e::16) To DS1PR03MB7871.namprd03.prod.outlook.com
 (2603:10b6:8:21f::17)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PR03MB7871:EE_|DM6PR03MB5067:EE_
X-MS-Office365-Filtering-Correlation-Id: 50a7f2d5-22a3-41de-eb87-08de424c7367
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?S1BCdHBCOUN5K0w3cjRoaU9uN3M0MndUc1pFZElMVmFNQ2d6dklveE11V3BL?=
 =?utf-8?B?M3hNNzlQWVF2aEh5b1d4NkJieUQzS0tDNzNyZVlYWWxmY2FpMzdJZU95OVk4?=
 =?utf-8?B?dHJadDRKd0FmYUk4YmsvNzZNc3YvMzJuWXZrMUIvNHVtbDk1S3JaZ1FqQ0F1?=
 =?utf-8?B?V1p3dnFZQ2crTE1qTys0SUM5c2JrRFhRUStCOGxQS1NoWkhIVWh0OCtMWmp3?=
 =?utf-8?B?ajZwbjNacGN0Kyt0V1p6bVluOElWNWpueUF5TjRKMFBadklNR3krWFRkMk1p?=
 =?utf-8?B?Wjkrd1l3MzhkeWVIUktCNHc3YVF4eTk0aWs3eVE5Y0hickIybmJRNVB2ZDFk?=
 =?utf-8?B?TDZ5aTExaXkxTGwwR09hK1N6c2JFNFd4eHJBaW10ODVvcUpaZzZHcUJMVmE2?=
 =?utf-8?B?bVluMWx2ZzY3aXNFYjRFUy9FRElKakpQMUt0M2Y3NUJJQkpSY1FqNjFpbnc5?=
 =?utf-8?B?Tm9ONXQrZVZCWW1QWWVyaFJoVCtmY0tYTDZOMit3emYyTnJITEZjRkhiektm?=
 =?utf-8?B?OFFHZlZjZ1hnN1ZLeUxic3hsVUhiK0graTVjaFUxRkd1WHVrbFRqd0lOcExp?=
 =?utf-8?B?ODB6YXh2Y1pTS1lSSVRBMjJVYnpUY1psb1gydU9DZ1cxa1pGNzg4U3lpNXNj?=
 =?utf-8?B?VDY5SWozTEtOVURNS1Q1NElkVlkwNUZtRnF1K1h1ZFFjZzBTcnB3UkFWai9z?=
 =?utf-8?B?M2V2YUxMVjFraHMxQmgxcGtPUmVWYTVRTFJraHN1MGNYQnNwRjkvZU5YV2Y3?=
 =?utf-8?B?TmFOR1RDRTBMT3I1OXNLbUoxZjhERERXMlNQVUxWeFZFNlViSVA3ekFuOHRH?=
 =?utf-8?B?dll4ajFVYVRUVTBvdUhXUlA3czErYlUvUysycWlrNTh5dEJSZmh6YjFpMHp5?=
 =?utf-8?B?TEJCcFBhcEVIN2lxVFBOYWMyREtnY0MzczZvVGVydnQ2cEprQi80TDJqbkJW?=
 =?utf-8?B?WmtQZFdBYldUVkwzQVM3Zit2N0dkbWxJRnNxTU44MDRxN2ljVE8zUk1lWk5l?=
 =?utf-8?B?MTZ6bFdaZXpqYjJIM0VOdnhGM1prL25hRVBURldIVFFKZ2lBeUZrcGd2azBW?=
 =?utf-8?B?SG9oTzhrS3o3NTlHcnNDVWxRaFlaaVdIQklvVDc3aENHZzU5NEZ4R1hCY2g1?=
 =?utf-8?B?OUJQMC8zZVRXdkpvMzQ5SHNxL1F3L25CdTk5dFRNN0dCR0pHTEkyZ0cwVUpQ?=
 =?utf-8?B?Mkx1YjlHUC9sazJibXl6SHRiVmZhSC9MRUJqVEVhSHMyaVpuZWlFRjZnVk1u?=
 =?utf-8?B?SzVxUHF0a3Vlb0hEcWRhWldVQU1aSVlMaWdnRGdxdkhzbFdFVGplRndvdVhM?=
 =?utf-8?B?Zkh4WHp2d0JmQmRPdTNEQ3V0L0hOZ3dXaitBWkFmek54eGoyTFlkT0x2RVR3?=
 =?utf-8?B?MTFKbEhWalBZR09iV0F5ZWUvdmVIUFJYU0QzNUk2QzNoS3RGWVhVK3hza1h3?=
 =?utf-8?B?NjNwUHNUbWF0b24yNDRNNWdIS0FxWk1TTUNoVENUekY0Q2NVK1Jpa1pyay9Q?=
 =?utf-8?B?a2ovdDlIZHhiRnJ0TncyUUNPSW9pa3g4T3BXNDV5bVN1cGJBMUo5R3RJanpZ?=
 =?utf-8?B?UlFYa3RFd3JZOUd1QlhXbjJaT2QvbXNEd1kxZlhMWlIvSENJSFpKRVE2Tmoy?=
 =?utf-8?B?Umx0NWk3eVoyUktYTVRWM3psUmRpTHJ5YlF4TnZyeFl0TEEzUGZjWHNQTnd5?=
 =?utf-8?B?UGdSeGo5UzROR2dnU25YVGxxUWtIbFpGbm9QWGlETkcyUjVkRW0rRXJtYUxH?=
 =?utf-8?B?Wll4SnNpdnZ4TC9CdDV5bHFldjd0amJFa1MzeFlTN0pOSzNJMGhjWjJjVEFR?=
 =?utf-8?B?ZFBVSm4yMmJJcmRNcHJNWnhQeHgvS2krMWMxTlh3RzJiM25GcGRmR1NBVjRx?=
 =?utf-8?B?eTNmZEJWVlhGTnhDaFVWUkx5MHhLc2Y4VWYrbDQwQ1pPUkRzZUlBc3g2eWFU?=
 =?utf-8?Q?3aWYlh4UrsJnay14/i3X/vyHmmToHlmQ?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS1PR03MB7871.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?STFDWnVLRUpBNGV2TG5BRWFLdWFXc2JUTm9sRUVtL1Nha2xwTXV2S0lKcFNL?=
 =?utf-8?B?REZyRUthMDVRY2hsRWw5TnJHYVJNTDNRUWVZT1dwcmlBMjFMN0p0NUp4MmU0?=
 =?utf-8?B?LytBU1VGQWptQXZnV0sySjFuZTlqRTlBK041OW1rMHVPT3l4S25WOWFhb0xz?=
 =?utf-8?B?eSthaTluVDlwTktlRHZRbTE2a2ZtZU1wT1lvTm9KL3JnU3R2RVJ5blAwQnhk?=
 =?utf-8?B?bTRBY0hUd0Urc01QU2t5RG5PSi9IRUNjWnVHU1FqMmFOOFZXN1RZWWluR3VI?=
 =?utf-8?B?TzJveFJXM2FtOXdkV3IxYlZPems2djE1ckJjZnEvVGNQbTFDVU4zbzZocW1k?=
 =?utf-8?B?Tmw2SXVKS2NKOUczZWYrSytWSmJHblo2ditZMHJ0UkVGa3BJb3RjRzdsV3pE?=
 =?utf-8?B?eCtwNms1SlcyL3o4V1NQd1JaNTBSV3d2ZjNscmlBNUV3UEZidVNtRDF2b2FX?=
 =?utf-8?B?NkZRd2JhRWRqTUFIWWtUOWUwbGYvV1JjdTVHeUp2OGI5N2lYMHZYWXFWOXNB?=
 =?utf-8?B?b2phZVZsUm1lZlU0THdvZ2c3bmNNM2pjbGgxZk1OSUhPUmNmcEprNEhxb252?=
 =?utf-8?B?Y3N6aWd6SXFHaHlZNmlIc2lzOE53U0tidUllTTdyT3ZaekJCQ3RDbVNOQ0hn?=
 =?utf-8?B?M3pTSlUzWGhtQ1JBenNicUZXQkFMbTJlRC9XK2xuTU9IUDR2K1lBZWM4cjUz?=
 =?utf-8?B?MUpJRlY5V3ROditpSk5XSDlhUEYzZVpxbXV4VnIyd2tROWs5Tlg3UzJiKzEx?=
 =?utf-8?B?QkdwSkRZM1RiS213QU9IYUxEaHk4REJORlZrbEtPSnpKK0VpWVl5VExyb1ZU?=
 =?utf-8?B?RFY1ZW9IdnNIbS95dlJmU3IwTjM5UTlZT1RwM0RJeS8rem56ektlSktrNTl6?=
 =?utf-8?B?cGxJSWM3Q1BUN2xzK25NWjUyN1YvU1RrZmdNYmNydittcUFhR0FPOWF5NURS?=
 =?utf-8?B?endPMDNNMWtndE5DWnVFR2xMOTM5cG80dTJKRjM0Z01ZdjVqcVVBUWdoaDlX?=
 =?utf-8?B?dnQyaWFFYXNyZW4xTk1NUVdaaDF4aExSUDRFVm43NkcwTWZnamxtWjQ3a2pX?=
 =?utf-8?B?RlBVMkRWUTFVajI1UkVCY0N5UFpybkVOaVF3cWRYQm9NTTkrSGtiZjZLaCtN?=
 =?utf-8?B?UmRLL1QvMCt4dGNDL2tJc2lza0NQc2lTV0VyUFRodGg4VzFwaGJrTDNVSkxM?=
 =?utf-8?B?SEpMcFl3UWNKY2xSdkdKdlF1YUc5aEVzamc5Qi9DKzR4NldSM0RSaGtvTUN0?=
 =?utf-8?B?R2NSeFdac2t4NnlYTWk4UHhnSU16WTdLVjEzNExqQlh5RGFlc0hia2lwdWp4?=
 =?utf-8?B?SGExWE5QcGYxMVZKWDVvbm5HNndMWWtGWUJNWkVWQmgvRTd3YVU0K1RhWlF3?=
 =?utf-8?B?T01YUWlsRjNkNEY3eFFaQlFuQ2RCazBMemRVS3RsS2hxbU9IcWZNa3NwSkNn?=
 =?utf-8?B?bnNOc1UyZS9CTk5jcUtqTUh3ODZoM0VYZ3FXcHZhY25YRFpNSkZmUVBhMTV1?=
 =?utf-8?B?eWhya1ZWV08zTkJzMTlEU2Q5OVFoQWJlaDBNeUZJM0dTclk0ank1Z3ByWHp6?=
 =?utf-8?B?dkhUejNiV2VGWXR1V3BrRXhuZTNkREppd1UzQklUS3o1cEdDS1VVcUQ1a1ZE?=
 =?utf-8?B?WlkxMmk0cG1qcDFkcWFHbUFqbUdkMzlkNXo4L0FzVUFSTjQzYkJCQkFOT3BH?=
 =?utf-8?B?NEw3SkRVTkFhSTZRZUVhN3IwUXhWRkRmRjNBRElzKytRNnBuSHY5WHVKNDEz?=
 =?utf-8?B?QWtqODl2djM1TDg0Q1NYcXB3UU16NFZtbjNaMlBTSjFtRXowYSthOWsxYVN3?=
 =?utf-8?B?aWk2NzgxaC81aUVBYUxyYVVsdFN2dngwMnI4a01sZXl1bXpHdzh6V2g4emhj?=
 =?utf-8?B?b0RqVGFMOWVHTWgvc3BxRHk5amlVWGN5SmdiU1NrcCtTemNWdEpjS3FtS3Bn?=
 =?utf-8?B?ZXFjS3R1VnZxQUJjNEtzNWFzQzgxYythVFdXd2F1Q3NTQW96VUJvK0tkYkVt?=
 =?utf-8?B?UGVYQWpaR200OEpwMzlFaEIxT0ZKZzNaSVc3S2hVd0xzM1FQay96OUQ0YjYw?=
 =?utf-8?B?aWZ5T1krMDFEeW5WZ1l3SGZ6bVIzRUUzeEFyTW1HVEl5RDY1aFBkODZKYzhi?=
 =?utf-8?B?MXQvZXN4K2pDQTR0WllhOEtOa0RsTEJGK0hsblEyYWV6SGdUSU1sNjZNM3dO?=
 =?utf-8?B?UXhJeW5hUEdyTTlPakY0dlhaUWdiNlEzV0lwaHdwMDQ2UzZNeWJtTjZSWndY?=
 =?utf-8?B?UElDQ0ljdkpBUmk2QWs4YXo1ZzhhUVNkNS9pK09HK2ZNWnNsaldORlg2MkhK?=
 =?utf-8?B?MkxscXdJdHFlMFZrNmxXY0k5Vkg5U3hQZFVUMnRMTHZUOENlWmFZQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 50a7f2d5-22a3-41de-eb87-08de424c7367
X-MS-Exchange-CrossTenant-AuthSource: DS1PR03MB7871.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Dec 2025 17:55:25.7424
 (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: gkxpBkwxgc5v24nQSpat0T3ZhnWw59GsVGeB4lrbV7N6TUHa7nWl6ocZqov3ctqQaCn4qIxluEid9Zs1JGl9dQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5067

On Tue, Dec 23, 2025 at 11:59:54AM +0100, Jan Beulich wrote:
> On 23.12.2025 09:15, Roger Pau Monne wrote:
> > The current logic splits the update of the amount of available memory in
> > the system (total_avail_pages) and pending claims into two separately
> > locked regions.  This leads to a window between counters adjustments where
> > the result of total_avail_pages - outstanding_claims doesn't reflect the
> > real amount of free memory available, and can return a negative value due
> > to total_avail_pages having been updated ahead of outstanding_claims.
> > 
> > Fix by adjusting outstanding_claims and d->outstanding_pages in the same
> > place where total_avail_pages is updated.  This can possibly lead to the
> > pages failing to be assigned to the domain later, after they have already
> > been subtracted from the claimed amount.  Ultimately this would result in a
> > domain losing part of it's claim, but that's better than the current skew
> > between total_avail_pages and outstanding_claims.
> 
> For the system as a whole - yes. For just the domain rather not. It may be
> a little cumbersome, but can't we restore the claim from the error path
> after failed assignment? (In fact the need to (optionally) pass a domain
> into free_heap_pages() would improve symmetry with alloc_heap_pages().)

Passing a domain parameter to free_heap_pages() is not that much of an
issue.  The problem with restoring the claim value on failure to
assign is the corner cases.  For example consider an allocation that
depletes the existing claim, allocating more than what was left to be
claimed.  Restoring the previous claim value on failure to assign to
the domain would be tricky.  It would require returning the consumed
claim from alloc_heap_pages(), so that alloc_domheap_pages() could
restore it on failure to assign.

However, I was looking at the possible failure causes of
assign_pages() and I'm not sure there's much point in attempting to
restore the claimed amount.  Current cases where assign_pages() will
fail:

 - Domain is dying: keeping the claim is irrelevant, the domain is
   dying anyway.

 - tot_pages > max_pages: inconsistent domain state, and a claim
   should never be bigger than max_pages.

 - tot_pages + alloc > max_pages: only possible if alloc is using
   claim pages plus unclaimed ones, as the claim cannot be bigger than
   max_pages.  Such alloc is doomed to fail anyway, and would point at
   the claim value being incorrectly set.

 - tot_pages + alloc < alloc: overflow of tot_pages, should never
   happen with claimed pages as tot_pages <= max_pages, and claim <=
   max_pages.

However that only covers current code in assign_pages(), there's no
guarantee that future code might introduce new failure cases.

Having said all that, I have a prototype that restores the claimed
amount that I could send to the list.  It involves adding two extra
parameters to free_heap_pages(): the domain and the claim amount to
restore.  It's not super-nice, but I was expecting it to be worse.

> > Fixes: 65c9792df600 ("mmu: Introduce XENMEM_claim_pages (subop of memory ops)")
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > ---
> > Arguably we could also get rid of domain_adjust_tot_pages() given what it
> > currently does, which will be a revert of:
> > 
> > 1c3b9dd61dab xen: centralize accounting for domain tot_pages
> > 
> > Opinions?  Should it be done in a separate commit, possibly as a clear
> > revert?  Maybe it's worth keeping the helper in case we need to add more
> > content there, and it's already introduced anyway.
> 
> Personally I think we're better off keeping that helper, even if it's now
> pretty thin.

Ack, sounds good to me.

> > --- a/xen/common/page_alloc.c
> > +++ b/xen/common/page_alloc.c
> > @@ -515,30 +515,6 @@ unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
> >      ASSERT(rspin_is_locked(&d->page_alloc_lock));
> >      d->tot_pages += pages;
> >  
> > -    /*
> > -     * can test d->outstanding_pages race-free because it can only change
> > -     * if d->page_alloc_lock and heap_lock are both held, see also
> > -     * domain_set_outstanding_pages below
> > -     */
> > -    if ( !d->outstanding_pages || pages <= 0 )
> > -        goto out;
> > -
> > -    spin_lock(&heap_lock);
> > -    BUG_ON(outstanding_claims < d->outstanding_pages);
> > -    if ( d->outstanding_pages < pages )
> > -    {
> > -        /* `pages` exceeds the domain's outstanding count. Zero it out. */
> > -        outstanding_claims -= d->outstanding_pages;
> > -        d->outstanding_pages = 0;
> > -    }
> > -    else
> > -    {
> > -        outstanding_claims -= pages;
> > -        d->outstanding_pages -= pages;
> > -    }
> > -    spin_unlock(&heap_lock);
> > -
> > -out:
> >      return d->tot_pages;
> >  }
> 
> Below here the first comment in domain_set_outstanding_pages() refers to
> the code being deleted, and hence imo wants updating, too.
> 
> > @@ -1071,6 +1047,26 @@ static struct page_info *alloc_heap_pages(
> >      total_avail_pages -= request;
> >      ASSERT(total_avail_pages >= 0);
> >  
> > +    if ( d && d->outstanding_pages && !(memflags & MEMF_no_refcount) )
> > +    {
> > +        /*
> > +         * Adjust claims in the same locked region where total_avail_pages is
> > +         * adjusted, not doing so would lead to a window where the amount of
> > +         * free memory (avail - claimed) would be incorrect.
> > +         *
> > +         * Note that by adjusting the claimed amount here it's possible for
> > +         * pages to fail to be assigned to the claiming domain while already
> > +         * having been subtracted from d->outstanding_pages.  Such claimed
> > +         * amount is then lost, as the pages that fail to be assigned to the
> > +         * domain are freed without replenishing the claim.
> > +         */
> > +        unsigned long outstanding = min(outstanding_claims, request);
> > +
> > +        outstanding_claims -= outstanding;
> > +        BUG_ON(outstanding > d->outstanding_pages);
> > +        d->outstanding_pages -= outstanding;
> > +    }
> 
> This now happening with the domain alloc lock not held imo also needs at
> least mentioning (if not discussing) in the description. Aiui it's safe as
> long as all updates of d->outstanding_pages happen with the heap lock
> held. Which in turn may want mentioning in a comment next to the field
> definition, for (now) being different from e.g. ->tot_pages and
> ->xenheap_pages.

I will add the comment to the field definition and update the commit
message, thanks for noticing.

Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 24 08:18:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 08:18:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192843.1511905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYK3x-0007z5-NS; Wed, 24 Dec 2025 08:17:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192843.1511905; Wed, 24 Dec 2025 08:17:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYK3x-0007yy-Kf; Wed, 24 Dec 2025 08:17:41 +0000
Received: by outflank-mailman (input) for mailman id 1192843;
 Wed, 24 Dec 2025 08:17:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wdbR=66=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vYK3w-0007ys-7t
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 08:17:40 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 01011d1e-e0a1-11f0-9cce-f158ae23cfc8;
 Wed, 24 Dec 2025 09:17:37 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BLAPR03MB5634.namprd03.prod.outlook.com (2603:10b6:208:285::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.11; Wed, 24 Dec
 2025 08:17:33 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9456.008; Wed, 24 Dec 2025
 08:17:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 01011d1e-e0a1-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=o39aVvLPtRuIP1N9jdIEFn8ucrGrvti/UAuF+LtCAzaQYV6eo4xEc70ajyDw7nHzjLlkX9pY51cPKEG5lDvOKXwMjzGbd5oSIhp/qfoGxLswHb/b2stk6E7+fBMKLxQiR6oEUu9eHlcUIuvFJni4refZVoxbayjNeDeeTOEFv81LIHC5MhWiHzCqgZMTzmWBnpo4xNP2lhAP1VbekotHwuNe1zI7OlxoKI1XFZ8/5TRAH4pJtRzc4vhT53N+WhyNqtV1qW7DIEiKq0eeD19zk0cB1PlJjs54HW8b5KWhX5dcbROyBPlyTcgTRPu9evBwUkKtVGoS7wwwl4Z2EfXsfQ==
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=CTahpwMeHwoRU7rCM0+wTlP3UJuNAFgkSFY/JcHmG0w=;
 b=A+Xa4V/K1OZ9lk2Pvelo/PR/iX4xSsaMXMeSRSvYP4wvb/yOlYR+ZiV18g3DDQ+/PFzArDQsagkxQVo/ZcRx4YO3MMOB1JxqCulZRVFhwu52+y2tq0e6Pux5TyHk8Cuym4V2kRLfCGaAa7lgXgdZ5PNFC+WY4VLfpkGVLQGBUU5t1J+opHZ4glfRmdpsih8bMrDscFjpOZJRHPMSR9b1aK+eHO835fnfXg1q58kc6+kUMbkADjzhCbWQ4eMq8HpGn1Bnh+gLO1sPtRNzLrZxYjWu254Fe/xP9bFDRDLNQtKEZV8kqijm970mnCpGGF5hJUODiRX6yuOvPbtNtIbEKA==
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=CTahpwMeHwoRU7rCM0+wTlP3UJuNAFgkSFY/JcHmG0w=;
 b=tSb0dFXtsyXMskGAEuxCl/PWwyxc8Arc+QZcAz47ZRg/f6pxXwSypJ3L9KIQHTI9f5SDQEncAsuOqRef2/1mMJiqgSbihzNr7tQGZRd7nUC9r8Jr1Uv//Vhewb6e9vm3zGB+4nRMvSjbojKEVdTdEaNlWS6HlR69YwfjeWLZJG4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 24 Dec 2025 09:17:29 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Bobby Eshleman <bobbyeshleman@gmail.com>
Cc: xen-devel@lists.xenproject.org, Bobby Eshleman <bobbyeshleman@meta.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH] MAINTAINERS: remove myself as RISCV reviewer
Message-ID: <aUuhmQt2BYrvWiDd@Mac.lan>
References: <20251223173614.2638823-1-bobbyeshleman@gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20251223173614.2638823-1-bobbyeshleman@gmail.com>
X-ClientProxiedBy: PA7P264CA0447.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:398::11) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BLAPR03MB5634:EE_
X-MS-Office365-Filtering-Correlation-Id: 9a91ad17-3032-4df0-2678-08de42c4e384
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bzMzTklocE93RjJ2b0kvS3E3ZmZLVlhmZ2NQNkxobmkwZ25rbzVqZWtaaHNi?=
 =?utf-8?B?V3ZTTFFWZFFnZkJwRmZtdmRXcnZpYjBxdml6bWZZRHRkNFBEdWQ1SzhwUSs4?=
 =?utf-8?B?TUZnN3I2SEY5N1prckJZWHZMYzluNE0wc2l6RHY0VTVpdWFUOW9VY3hqaEdC?=
 =?utf-8?B?N1RqVExGSjVLOVpzc283TGtlbW1TMm8rUHlNY1h2dzRKRTJjMGxlanpUTE42?=
 =?utf-8?B?RDJ0ZVc4QkpZS0pkeFBQbGpRR0VZTWlRMEhtVWhuaVViaHEwYUV0MUxBWVBr?=
 =?utf-8?B?QUFwVGVNOWZnYVFWZlF3aVVodzV1OUsxNWY3VStrY0RoN290MUpzcHE5OEE1?=
 =?utf-8?B?aGFudGgyMkVud2RCU252Q2hNbGtGRDZDR2JIcm5QKzhvaEVVa2ROU3VTUDFK?=
 =?utf-8?B?WlVxVTFnandIL1h0LzNtWlpvajdPY0VEMHBpZy9nK3FjOEROeERkMmdTK0xh?=
 =?utf-8?B?SnQ1RE1UM3RjMmFlcUJRclZXVU1COEd6YXZmd050RndtOXFUNE9rZlhHNURi?=
 =?utf-8?B?MHhtUjdrMm5sUExIYnJzOVR4TElCbS9BdXNWM085QXZyVE9jeDRBT1ltaHUv?=
 =?utf-8?B?UnQ3N3dMelFxTXBHbkZYdWFJd0xscE5kNmVhUEdaVy9WUlJ4MHFIWVpucXYz?=
 =?utf-8?B?d3k5dk5HU2JSZlV2T3V0bFlackRrMWVNbWVwaU5hVFM3Zis4TTJweGMxbENL?=
 =?utf-8?B?QitRazlVdGRJaE9Gc3pKeUYxSGk1Z0pST2xCVGNmOWE5c0MwY09weS9SY1hw?=
 =?utf-8?B?Y2xGRitlS2RQcTc5S2FMdGdsWmI0bFF5Z3E3NEdRVHNNNXo0ZWtmWnNoT3Rj?=
 =?utf-8?B?SUtwS3ExejdBdmh6RGhyY2t1SjlVeWlQMnJaV0lWNnRqeU1EaysrUmdrUFJl?=
 =?utf-8?B?R2JqS0N2ZDlBVnZRZFJzSk45WFB2c3NXZTkxNXdocFJTbmFoVE56S3lsajBX?=
 =?utf-8?B?NVppYW4wa0ZEYi8yZUlGcHJJMTVYRVA1RU83dms0RE1QZFpRM0QxdXpyWkRH?=
 =?utf-8?B?eGpYSFUyaWlXaXNXTXpVcTJjOVJBM3ovK1J3ZkRaR0RSUXRtNkFVQlJwVU5r?=
 =?utf-8?B?eSsyL0lFU3JncFJNZXFIMStQR2VQeExpVzk1STI2VzRiaWpmbkZKY1F0Zi9p?=
 =?utf-8?B?czgwUnIxbEduWW02V3AzMDZZKzB2aVJGRDFlMnk0MGRkeUkwUEJQN1hPNkhh?=
 =?utf-8?B?VGxwZCszOWJ0bnU4SGlSbVhNNHFvS1J3T2JENzZHbVdaQUhPMUV2UCtFZVRq?=
 =?utf-8?B?SVRGVXhrd3VCdXNIODhWMVpZak9UbHVUNzcxQk04NlBwNXVKdFhvajh6Vnlt?=
 =?utf-8?B?NWVSdUxBOHl0K2FuZXA0YTNEMFlpbUlwNnpHUmF6ZG90SGppN0VIalN1Z21z?=
 =?utf-8?B?Z1RJTzRrWjZ2bTlBdUY0WFJkNGdjajAzQUpobFJPUzFQVkFpNmFKWk03aUt6?=
 =?utf-8?B?Y0k0UllPajlHK00yUDRGNmprUTZyRkp5Q2pVSnhjWWlHbVZTd1RKdko1bHNK?=
 =?utf-8?B?S2tPSWxpckd4alNTb2xqV1VnRW9sM2E3NldTeDlpOTZJOUNpWTR2eVQ4Wnp3?=
 =?utf-8?B?dnpBSjVaaDZ6dXBRMUNZTUFKSXZlNUlUM3VJVXJqMXlsZWp4WnF2Ulg4Y2JE?=
 =?utf-8?B?bEVGWmRuRVdkY0lPQXk5UkgvT3NWdkU4U1hlaHB0Ry9xUkRndUlLOGlUc21r?=
 =?utf-8?B?WSt5WHM0OHFrNURUOEZ2dExUSmR3VW5IejFaTjMyVjNMUUtvV1NDTWNDcGZt?=
 =?utf-8?B?MUYyODVDTHJTK1R4UWE5dVgzY2Y3WjFOMGhJR2pHRXdpYVRBVDRtV0pLL2s3?=
 =?utf-8?B?NFl3T3Z2eUxSRVVHdVpQZ2NENU9oU0g4cnJRanQyOGRlczUzWm9UbHFsM3gr?=
 =?utf-8?B?TWUrcFd4Qi9ZcENqbTFMeFBqVEZ4ZGhMN1pzcE01S1cvTGZ0TGV0VDByT24x?=
 =?utf-8?Q?xUB7NuO9qbwlRwKvwXVKIuvN24oZotEC?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZjlKcWR3SHdQZ1kydXRrSFdmV25la1ZScDRpVGJ5OE1qcVNNZEE3MVVsdUxZ?=
 =?utf-8?B?YVNFckg4VDlBT0FvV25RMUJKZFNIYnlZbDRyaXkvek0xZGlLY2p5bFZyd05Q?=
 =?utf-8?B?MWdsY2lxL2RuZ0FrdmE5Vi9kbkxZdTltY0tLVkM5R0Z0WGV2R1ljTTFOcFU2?=
 =?utf-8?B?RDM1Zm1ld0ltTVRocFZQK0dBaDY3QUk3d0JYUHR3clM0RzBXRENhUzFZQWlT?=
 =?utf-8?B?ZFg2UkdwSkU3OWY3NUkwN3BaTlFOQ2o4Uy8vWkwrTUtTN29YT20rdE9UWjFU?=
 =?utf-8?B?MHRTQkFCZGZjSWtiWDk2SldDNG5tNzVnQ3RHMnIzUThGRzQzVGZacGs0UUlR?=
 =?utf-8?B?Q1diZXVBdlpNSkhGcU5pbVZXeXM3ZkNhWmt6encrbGZrdVl6cksxVEJMZFRu?=
 =?utf-8?B?UE5QbjhmMmlBTHZSdnlCNmxudEprbkJwaUJkQWY2UTQzK2lMaGlWckNGMzFs?=
 =?utf-8?B?d0RuOExzQ1EzTTQ5bmpjQmFqb0IzZnhQc3pIYWtMVXNTMjIwSjB2SzZFaHIx?=
 =?utf-8?B?QkN0SE01YUJvWGd0bHFFQTkzQUJybklBZ0FmQmphVGY3TCtxTWV4czdaQmJa?=
 =?utf-8?B?aDErQmxxNW04NVYyS2dpK0JCbGJJUC9CeVUvbXp1UEM2SVpGUkhuODdmMzBm?=
 =?utf-8?B?SlJZQTFVRTlBamRtRnNkVjBsbmVWTmV2K0lqa0FRWDVYQXgzbENUY2trb2E1?=
 =?utf-8?B?V0EzS2tJZXVFckhCMFNLV0tDKzQ0clhMSEtNTWNNbWNTZU9wbWhQc3ZQMW9V?=
 =?utf-8?B?SzRKMlc4eVdQN0wzV2NuaWxtUGdPSjBxRjdMbFdkSU5JM2ZGai9sc1VnN3Yy?=
 =?utf-8?B?MXVYWnhzdEFacEMreUQ3Uys0NmdsM3o4MjZsT0l3a2VEaHlHVDRPTWtjQzV0?=
 =?utf-8?B?R2FWdWVyWFFVSUhZTkVIdlZpaTNGRGRHcXlaMndFS1VrcFlMbnZqeWdVcGlB?=
 =?utf-8?B?QlY3Um1keUlhR0RZZ3JnT1BwNFNTZ3Yza2htWE1iNzd0SWx2RlRSaWdKMmRq?=
 =?utf-8?B?dVhNUzh1THo2OStiTmlFRDMrWlZrZTk0bmdDNjkrTG9kM3p0WUJUV0pLV1BB?=
 =?utf-8?B?Q3VsMXVQeUExaFVGa2hYVFlMd0M0dENVWHhjeklvbFVFVmNoanRZSlNmZmdS?=
 =?utf-8?B?dHcrUTFSU0ttNmtsb3NKaGJHeU90T0xEd3pUa0EvdE5RRisxWUdqYjRpcVdI?=
 =?utf-8?B?R1NSdWhycTJCRldObytPbDh2MHYzeXFvYXRIODBzcVIzZVJFQmEvL3h1Y3NH?=
 =?utf-8?B?WkFHMlVWTzUvMVY5SFpKbkZuRGxPWXhiRUthbGhnWDhDWFZsMHE2bEQxc2U4?=
 =?utf-8?B?OE8yVkdYUjlhdE9OUFJrNkhjODFMNm1Qb2d2VnhzZm0rallzdUlUeTFzbDd4?=
 =?utf-8?B?SGlNTFRLS0FUZit5NlBnUWtybXAxelJYWGpFY1ZQeGVGcVNjY3RJUHJrVmxs?=
 =?utf-8?B?NUM3SWVpbEZ3QlhvY3pETXcvWlc2eG5ybHAvNjFWRkNjeXdTQzBlUlJ4U2tW?=
 =?utf-8?B?U0F2K0pweUNjUmI3eDFTK2Y4eFRjVExoY2JZWEFDeEFLNFEzSkllTVVMQlhy?=
 =?utf-8?B?dWFWZnAzNVgvNDF0MklINHdqeXJmMzRSdWFTR3Y5bEJUOTRZRURBaDhoWVR4?=
 =?utf-8?B?OFRWOUt3WEZmSUdBblJlSCs5TU1IcU9FQjFvOEJYWHdhNzd4TnhCS2Y3N2RM?=
 =?utf-8?B?Y29UR010bTljUEU1c2JuNW5sS29QanA5RmdqaWltMFFVaGM2S2E5NEVBaUlI?=
 =?utf-8?B?Q01yN052dDdvSXhyV0JnWnNQclYrRnJPSk1QNXVwQUZacEt3eWswZ1NtU0p6?=
 =?utf-8?B?eks4L3dkc0NUUDVOUjZlUDNrbVI3Ris3RFJoczljZ2VSOTlKZ1Z1ZWRmZC9I?=
 =?utf-8?B?b21wUjQxRFQ1dmlMaEdzdDU1RU9OL3ZLbWhjZHByazFtV3JPT0tYSnlBNlQx?=
 =?utf-8?B?S1BMK1QvM1dSeDFBWGFBNDd1UENkWWlka3RDcjZoYkhTSHRCYytBMURLL3Qr?=
 =?utf-8?B?S256WkU0VFdXeEJqcE5wVVM3RUw0MEdDSkRKRVF4UzZ0YjlsTWhpOUVMWlhn?=
 =?utf-8?B?L3p2U05nOTMrdzF0RUNaQVV6VmRHV1QraTRuUWR2Q0VEOFdjRVBDaGtyeGxQ?=
 =?utf-8?B?L2M1M0lteEVsZjVCaDRmTytWclorc0Z4ZWZsUTJLR3dBbmlxU0hNMUZCdjIx?=
 =?utf-8?B?ZnpwMnc2RGtpVUgyUVI5UGh2QkJnUDJ0S2VIRXR3aHB6b0dLQy9jWVF3enlk?=
 =?utf-8?B?bXlyM3ZnL0ZVaWVLdnljLzlBQ0hpd3BnSjFVN2c1bEpFemp1U0FDcmpUZm9H?=
 =?utf-8?B?V1BkZ0NVYk5jdEJleDNnRDJZTWhjNG9NSm1kdkRXdmtxYmFOUFAzUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9a91ad17-3032-4df0-2678-08de42c4e384
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Dec 2025 08:17:33.3983
 (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: w3zLL2ObF1tM4F3yEHGBDtP8MaaB9E50peIBc+j0UG5bOh5N+CJjvyOQ/9ZzDDDooGWgT0E9y4WSwjl8IR3u3g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR03MB5634

On Tue, Dec 23, 2025 at 09:36:14AM -0800, Bobby Eshleman wrote:
> From: Bobby Eshleman <bobbyeshleman@meta.com>
> 
> I haven't been actively reviewing Xen RISC-V patches for several years,
> so remove myself from the reviewer list to better reflect the current
> reality. The RISC-V port has come a long way thanks to Oleksii, current
> contributors, and maintainers, and it has been exciting to see. Many
> thanks to everyone, I hope we cross paths again in the future!
> 
> Signed-off-by: Bobby Eshleman <bobbyeshleman@meta.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

FWIW, it would be better if the SoB matches the email address in the
R: entry.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 24 09:06:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 09:06:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192856.1511915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYKod-0005a4-28; Wed, 24 Dec 2025 09:05:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192856.1511915; Wed, 24 Dec 2025 09:05:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYKoc-0005Zx-Vf; Wed, 24 Dec 2025 09:05:54 +0000
Received: by outflank-mailman (input) for mailman id 1192856;
 Wed, 24 Dec 2025 09:05:54 +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
 <SRS0=jcWU=66=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vYKob-0005Zr-UV
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 09:05:54 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bee024db-e0a7-11f0-b15c-2bf370ae4941;
 Wed, 24 Dec 2025 10:05:52 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b736d883ac4so1006136266b.2
 for <xen-devel@lists.xenproject.org>; Wed, 24 Dec 2025 01:05:51 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b80464e01d9sm1568956866b.42.2025.12.24.01.05.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Dec 2025 01:05:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bee024db-e0a7-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766567151; x=1767171951; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=gesNZNDeS2jPSBits+A/Y3F+dFVM+6O+52QZzdLbCII=;
        b=ho8QS3iSTgqDfCXijJLA2zxD1vBWyDdCJ7W4sjWix+g5Xq6k2nqfjefYoF0nz7PN0y
         uts/3AitU8zAYol+mGBJ0cvi9U5/NHmIhUrnUh3kMLgT8U4WQ31/Cklii28FxY+MNdcX
         2pEBAJfX/rRcH6sEMQbGmfD5t4xTmMuo1XJgF1OdoeFyjXV+I0N3PhtJLsboQIuAiQ0d
         BJR9/c7Iivu9H5xEHugPc2iuPFF/txwc+F46jgjNUOghCg1SVUWfjO/sC7KBKzYy9nRQ
         mGPKDT+kIICMtETnM436gzhpm4BwHTEwP3KgN4lEN286nKaNb0nPFnBjll4CvG8AL+KU
         VRMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766567151; x=1767171951;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=gesNZNDeS2jPSBits+A/Y3F+dFVM+6O+52QZzdLbCII=;
        b=aF/G5YxJRGQXyAbCKblqsaahIEJ7Hw2BlG7PtVnUGtpt7Etw+RJOB+WSfD5KfVMG0C
         mS9vSa4WRseZd2CrL/RHuIgz/zQvAq9/EnB99qASuLpVzkLVP69kUO9ruFY/eDqlnhtB
         pLlmLeQgP26lSA1i2ulKF6RahzoNqSLA51xYgFxliv4CYYkEZuASbJTv0Uugx+DEZZmg
         7ZOHEQWO+DI76G6m6JjKN2FtjhbYlI3N1wcMUq8QvmhCT1IqxVC4NGAPTw875T09yN1r
         ozDeC2mQoQ37POw3LRIP+C31dTRBYF5PnF4T8OqtGugBKnx94e/yha2zPo5Asjg1/CIp
         MxgQ==
X-Forwarded-Encrypted: i=1; AJvYcCULaS2zeKDxqo+etlnAEdPP1Jlflrm0HSVta+GnQhzR+AH/8moYQwn8odL5kMd25qVHCMzs1vQzks8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx0Gy0W1vZVUqTu5wtWcp8T4EmRnJ4NlBWP1mJXnhadWaSjcdfd
	1k0QU17zmJwe0+OgZ9p0I4m1n8eRkMDuQOU235d7hjKwTl07sklCZpYi
X-Gm-Gg: AY/fxX4rgUL0aMuSQeFyLk/OCJ+eW3pDIfi6eJidX3+RyeBKv1eDr0GJb/ZjOLQs3mW
	66S3NwOyzWkSTkGv0hGDFjouGlZHiJgk68TFxIlVaNy/Jww5UrraxxIdII+qs0/lXsaP3Q1hvQ9
	RQHIJQJylTamgHK3Sze0PT3i5lDQN8hoCSfK830Xt7erin6fY2C7frJ3sUrOU3B4e0ZZzjdz+tR
	Gb8PXLbeK/+uXaV0AG03uS6Ll6RIdp+c9pFYI8c5dEck76PvYOvOHANnxYsjRMbO0ZoQd6x4jrF
	BrZEcJ2iszDiSKnNDGBS6G6VciXQgRNdkU+/Job4ANE7IDcV7Pu/q9MFLu6Cz5/mvI1heZ1ibPj
	zLdio/hQ9Te0/MzHl939IKDxUBHhw635Sw3n6hiYnilWACp7vDZsb9l0C7BICGFlbFhqg5bZ4No
	fTs6phHKAqygiIlDRyJEvQqUy5khtc4RudHseBOnKDQZSfim31k4xIfPeFQgFZkLPE
X-Google-Smtp-Source: AGHT+IFeA+KUDy2tCnVcee7ZdawLOXLnOaNqd7nVMpZ986OShD2ECoKzFscQfjMlUU/Aar97zmJ5rQ==
X-Received: by 2002:a17:907:706:b0:b7c:e758:a79d with SMTP id a640c23a62f3a-b803717dbf0mr1784720366b.37.1766567150699;
        Wed, 24 Dec 2025 01:05:50 -0800 (PST)
Message-ID: <ace5aa8d-d192-4f6e-a0b7-0005f759d151@gmail.com>
Date: Wed, 24 Dec 2025 10:05:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/3] xen/riscv: add RISC-V legacy SBI extension support
 for guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1766399205.git.oleksii.kurochko@gmail.com>
 <f4225d3134ec12a392a2e5d91414bfdf9d0665a1.1766399205.git.oleksii.kurochko@gmail.com>
 <74eec4dc-de48-4060-8f87-ba04023fda17@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <74eec4dc-de48-4060-8f87-ba04023fda17@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 12/23/25 5:11 PM, Jan Beulich wrote:
> On 22.12.2025 17:37, Oleksii Kurochko wrote:
>> +static int vsbi_legacy_ecall_handler(unsigned long eid, unsigned long fid,
>> +                                     struct cpu_user_regs *regs)
>> +{
>> +    int ret = 0;
>> +
>> +    switch ( eid )
>> +    {
>> +    case SBI_EXT_0_1_CONSOLE_PUTCHAR:
>> +        vsbi_print_char(regs->a0);
>> +        break;
>> +
>> +    case SBI_EXT_0_1_CONSOLE_GETCHAR:
>> +        ret = SBI_ERR_NOT_SUPPORTED;
>> +        break;
>> +
>> +    default:
>> +        /*
>> +         * TODO: domain_crash() is acceptable here while things are still under
>> +         * development.
>> +         * It shouldn't stay like this in the end though: guests should not
>> +         * be punished like this for something Xen hasn't implemented.
>> +         */
>> +        domain_crash(current->domain,
>> +                     "%s: Unsupported ecall: FID: #%lx, EID: #%lx\n",
> Hmm, wait - patch 1 says you would consistently use #%lu for FIDs. I can adjust
> while committing, unless you tell me not to.

I think that we should drop printing FID at all for Legacy extension as according to
the spec.:
   The SBI function ID field in a6 register is ignored because these are encoded as multiple SBI
   extension IDs.
And according to "Function Listing" FID will be 0:
   https://github.com/riscv-non-isa/riscv-sbi-doc/blob/master/src/ext-legacy.adoc#function-listing

I would be happy if you could drop printing of FID during commit. Let me know if you want me to
drop printing of FID in the next patch series version.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 09:18:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 09:18:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192863.1511927 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYL11-0007LC-5X; Wed, 24 Dec 2025 09:18:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192863.1511927; Wed, 24 Dec 2025 09:18:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYL11-0007L5-1I; Wed, 24 Dec 2025 09:18:43 +0000
Received: by outflank-mailman (input) for mailman id 1192863;
 Wed, 24 Dec 2025 09:18: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
 <SRS0=jcWU=66=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vYL0z-0007Kz-G5
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 09:18:41 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8920586a-e0a9-11f0-b15c-2bf370ae4941;
 Wed, 24 Dec 2025 10:18:40 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b7eff205947so827360266b.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Dec 2025 01:18:40 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037a5bdb9sm1748069466b.7.2025.12.24.01.18.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Dec 2025 01:18:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8920586a-e0a9-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766567920; x=1767172720; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=0r5Hsha4gUQFjOsJkLHL+CWPZx10FE5zfW8AqF73WNI=;
        b=AiYv9apQhrORyaOWQpzShfEN1TSCDZJ7tMtLOEpEWClBPRcUa82X1Ey2LGYV9YF5SW
         Nk+b8cxaXmDL1e3lEn3ycyok/e//Vatw7pnvnPfE/AL026ISkpNqGdlnPgXXY+rvKw/D
         bGujbbGIh6/VZMGcoagYMWDyKbMFi0z624H+A/Uf2K3oow3u5oWFr73+62/0X4OZeSGz
         miSFGjV9QubQjYNSRAoYvNbnPfPrGJp19P5/gpyTe5RCo8Qur9LsZlXSJxXQMkMbDJX5
         gG2hqdqnFlFWqCMkWuj1HrjjKeDhNBRGSxyAmwyG2GNNMvd54JryLdarVhwd3Z9sJviJ
         uSnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766567920; x=1767172720;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=0r5Hsha4gUQFjOsJkLHL+CWPZx10FE5zfW8AqF73WNI=;
        b=W6WlYrfQodI8/6Kd1NLf5c7ZrW/qlyf+28zMi9XMfH9TtCre+Y0xxMjAMi5dLMmoR6
         cuhqemWX0Voi7cJF90iDAVPgg55BahMRdFFEBlb4x2Tc93ld/1Pcp37h/QDpdT03E4zE
         J7QwTfYkEcjzyvOyoxhO4jcyPzrRgM+paAp9nDugtc2CbOVL93jAgxC+1K0+nl9U1g95
         cYMkhR+Nks4Oc7NT+7fPM5jociFsADq3uJ/FwOmSmX2XvPcwd/v+rPL8tT0BoDHV8clQ
         jq6sG+M1hoT+3uErlCEq7oFoaANFf47NmZpWnO1na0EQMF+gC8iiQHohqCH7ov+KwRPR
         lrRA==
X-Forwarded-Encrypted: i=1; AJvYcCXImGB5FVK7HPK0kzOqdvQ2QNb43aiz0lNRWA4Lw5H3yt7h5QYtk9fjx8QNMbo8xK8g5lgAlIectWc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw3rCXOArXF12docu5vCv1FyoAFd72Rb99hAmFktpdWPYEWRodY
	w1lk8tln1kp07m0wPV7g99LCEybx43HMXNJA3G0K9lEUpz2SKXKKvcyw
X-Gm-Gg: AY/fxX7ohfkwBNPPwhI/AUSrltmYCI9KPrR66FS/uRaCf382t2+QqF8d8viowoS9Bu2
	khZmsrJTOLWPvqzbZU7mvxBicj63eBSGbO6BzUc3rFsojFPInA3BlR8MUxuLtJKjABBVoR8/EYb
	3WKL+FNAsLtyPZUDWgrwuDKIFhM6Fz652Hh+9TPIMk6eAWFL/LVOxT0BLv5hurpUWoJ8MHZUIOm
	f3DKyduw91vdsARdBUVVHMvphljD3sVlc270WIH6ED6XdWRvPUIxNhHpG+3AKh+cxHoL2WhE1ak
	ozeF/AU9rWZ05/S7J1oyl/7hzxYhNWGiKMQiKg/ZSSLDKVHM2rhw/Nh/+lhodPkpdJyr+LCAblQ
	zQc6iymSM2GPw4X4W93UvUKYzJ9mjWlyYcxcYuSji/KdyCTm94VzftRY3z+z1szNofIxPtY9koH
	ApkeO42NIbwSoA3MQxAMyzhaB/A30n8N8IeYYe32HSbzlbZcNLiDxiJzJUnK5TH8zi
X-Google-Smtp-Source: AGHT+IHrraoXMDxoiNtAJWrMlqrjN1/jXW/2hxnrTK7tNdsl7VGvROkFYalkpzqZXaEbww3RlbQBRQ==
X-Received: by 2002:a17:907:940a:b0:b2d:830a:8c01 with SMTP id a640c23a62f3a-b80371df334mr1631515366b.61.1766567919557;
        Wed, 24 Dec 2025 01:18:39 -0800 (PST)
Message-ID: <fd28efb5-5db9-46d8-a112-6c6169d139d5@gmail.com>
Date: Wed, 24 Dec 2025 10:18:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/3] xen/riscv: add RISC-V virtual SBI base extension
 support for guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1766399205.git.oleksii.kurochko@gmail.com>
 <d7c8217605ad5d88a94baf32c2543654a415236d.1766399205.git.oleksii.kurochko@gmail.com>
 <6d7304db-7b75-4b69-aec6-663f951c37f7@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <6d7304db-7b75-4b69-aec6-663f951c37f7@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 12/23/25 5:13 PM, Jan Beulich wrote:
> On 22.12.2025 17:37, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/include/asm/sbi.h
>> +++ b/xen/arch/riscv/include/asm/sbi.h
>> @@ -14,6 +14,13 @@
>>   
>>   #include <xen/cpumask.h>
>>   
>> +/* Xen-controlled SBI version reported to guests */
>> +#define XEN_SBI_VER_MAJOR 0
>> +#define XEN_SBI_VER_MINOR 2
> Are these going to gain a 2nd use, justifying their placement here?

Good point. I don't have any plans now to use them somewhere else, so,
at least, for now it would be really put them to base-extension.c.

>
>> --- /dev/null
>> +++ b/xen/arch/riscv/vsbi/base-extension.c
>> @@ -0,0 +1,78 @@
>> +
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/lib.h>
>> +#include <xen/sched.h>
>> +#include <xen/version.h>
>> +
>> +#include <asm/processor.h>
>> +#include <asm/sbi.h>
>> +#include <asm/vsbi.h>
>> +
>> +static int vsbi_base_ecall_handler(unsigned long eid, unsigned long fid,
>> +                                   struct cpu_user_regs *regs)
>> +{
>> +    int ret = 0;
>> +    struct sbiret sbi_ret;
>> +
>> +    ASSERT(eid == SBI_EXT_BASE);
>> +
>> +    switch ( fid )
>> +    {
>> +    case SBI_EXT_BASE_GET_SPEC_VERSION:
>> +        regs->a1 = MASK_INSR(XEN_SBI_VER_MAJOR, SBI_SPEC_VERSION_MAJOR_MASK) |
>> +                   XEN_SBI_VER_MINOR;
>> +        break;
>> +
>> +    case SBI_EXT_BASE_GET_IMP_ID:
>> +        regs->a1 = SBI_XEN_IMPID;
>> +        break;
>> +
>> +    case SBI_EXT_BASE_GET_IMP_VERSION:
>> +        regs->a1 = (xen_major_version() << 16) | xen_minor_version();
>> +        break;
>> +
>> +    case SBI_EXT_BASE_GET_MVENDORID:
>> +    case SBI_EXT_BASE_GET_MARCHID:
>> +    case SBI_EXT_BASE_GET_MIMPID:
>> +        if ( is_hardware_domain(current->domain) )
>> +        {
>> +            sbi_ret = sbi_ecall(SBI_EXT_BASE, fid, 0, 0, 0, 0, 0, 0);
>> +            ret = sbi_ret.error;
>> +            regs->a1 = sbi_ret.value;
>> +        }
>> +        else
>> +            /*
>> +             * vSBI should present a consistent, virtualized view to guests.
>> +             * In particular, DomU-visible data must remain stable across
>> +             * migration and must not expose hardware-specific details.
>> +             *
>> +             * These register(s) must be readable in any implementation,
>> +             * but a value of 0 can be returned to indicate the field
>> +             * is not implemented.
>> +             */
>> +            regs->a1 = 0;
>> +
>> +        break;
>> +
>> +    case SBI_EXT_BASE_PROBE_EXT:
>> +        regs->a1 = vsbi_find_extension(regs->a0) ? 1 : 0;
>> +        break;
>> +
>> +    default:
>> +        /*
>> +         * TODO: domain_crash() is acceptable here while things are still under
>> +         * development.
>> +         * It shouldn't stay like this in the end though: guests should not
>> +         * be punished like this for something Xen hasn't implemented.
>> +         */
>> +        domain_crash(current->domain,
>> +                     "%s: Unsupported ecall: FID: #%lx, EID: #%lx\n",
> Same remark here as for patch 2.

I'll update to #%lu for FID.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 09:43:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 09:43:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192875.1511936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYLPF-0002kD-04; Wed, 24 Dec 2025 09:43:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192875.1511936; Wed, 24 Dec 2025 09:43:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYLPE-0002k6-Sw; Wed, 24 Dec 2025 09:43:44 +0000
Received: by outflank-mailman (input) for mailman id 1192875;
 Wed, 24 Dec 2025 09:43:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jcWU=66=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vYLPC-0002k0-Uu
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 09:43:42 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f6a96c1e-e0ac-11f0-9cce-f158ae23cfc8;
 Wed, 24 Dec 2025 10:43:12 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-598efcf3a89so5798120e87.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Dec 2025 01:43:12 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-59a1861f85dsm4822450e87.73.2025.12.24.01.43.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Dec 2025 01:43:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f6a96c1e-e0ac-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766569392; x=1767174192; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to
         :cc:subject:date:message-id:reply-to;
        bh=kTeZegnuJTiKkWXCugrXS1xONo6wmmfVLwXs4g/KXKA=;
        b=WU8fE095FYOu4Vp4DW4/APQGax/RJpzP5NtBLWLdFeSh2OmvDLlv059dHQbSN6AjDQ
         6VXE7HBpmqVk8QIKlIKfGuPK7vrQczeDJmq/d49wzUB43F8+1B04fCom8wTFezZxMTyc
         S09h1nIvyfS6b6oQ1mUU+d7gouTyrDOW1sltu3BjZPkMnOTlpYIoIjvBUOz2iyeuixSN
         /BsPoNG9J/X0ggPC5OFl6JPLYnp+q2/cpUzQd3jV/5BHKPJtVnohBQQXONMk4lxCDF+3
         puDNZNRU6HEAQ/4o6MlmGeH0NilKRdgn+Spng3+oHtVzPuZolDB5ttpp8NMAAdej3kSq
         DF+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766569392; x=1767174192;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=kTeZegnuJTiKkWXCugrXS1xONo6wmmfVLwXs4g/KXKA=;
        b=AKkPyt4vkyz25893hFOLDs55FW6CJizDzjq+/c0h437igrfF2ydLMvCk+47mxaUCvV
         BLRuO4nWP4RR/tbgyzLRh17dUvuese3Tc6z7p4B4SAsQxyCUvOICMXVxez/HOtS+5mT8
         DmZmqcYS37zkaBSpKMSr/ycX7x1/N3EJ2MC+0KxwumjyvJ/3PlcejIT8cKoTbdvjcWlz
         Ea0oka6Cba/1jOeFZDM/CA3SXiXpwaZzqWo/uwrzuGruCpJpPOEQNBaMbVMLLlZ3EQTs
         vhJcOGeF6pr+AU6hgtNM7SuZ4kvyHCJ7Jllw5bmGBvQsWOitBeg2YKrFMzDQaENiU6NZ
         ddpg==
X-Forwarded-Encrypted: i=1; AJvYcCWx/yCOY/k/Fn/yFP1YufktLRs558yRewAhECXmo19/vylum8aI4gBpTk4Nu4iLO2AFMHL4ZYuCf1k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz1rU081M8SuxndXI9w+dV//mHyxDVfEKTi8it4dNtP4cujcpW5
	RhskwfJUD7uaDVAj+o3J9ikpKsdJegA1ekjL9krg+lzOZTJG5G1uSbOA
X-Gm-Gg: AY/fxX7NOHPkElChAISpR6s2E4CwktSd+q6Ok545V07vCDa5VHr8zR+JdjODI3jcdHZ
	I2wOtJWZOr18R/9SHhQayoUyfhzhPduCrjO35TRcnSnhM1LAp8eK7wvY4+CpKn6LcmUuwAXWk+l
	R5YVPml5UTHXKjC5qYLnV5yoo6jPiT6CRnWA4DYE2AUH5MazAM3IkpvUqt6jWpmqw3wDDrEgdVn
	ymawqHRKGKqfJ41pRfz1Ou4Wf6E9zJfBCMTEGeymIO1COiZgiqbylWown5RK/jolRe66WJBILp0
	MvrYSYg7fUGdGxQfn54dWXYrZJAKGVDDSGh9xMtowWk5zQO6+okia9eUv+8GFSornhdYQmswcrW
	3oLDqbUHy7fZIvCusSsHybQX/MtbwkxtaYmNYWqGWImUNhDS1Bd93TRLaVKl0dNz80Zt5yD6w3n
	OO0C/F0vGE7dnVhWa1JtbE8CnUqwrVqK2nKpbbl/bUvm+Ccip2gI9j06pHqkUiru2s
X-Google-Smtp-Source: AGHT+IFb5TINByeCKF+DINOhGYc88r5vudLqxCzjPVayFnzj4v9iQdIAnCuQkl9p5OI268rR95pOAg==
X-Received: by 2002:a05:6512:3d1e:b0:598:8f91:a03e with SMTP id 2adb3069b0e04-59a17df1de2mr5709571e87.50.1766569391690;
        Wed, 24 Dec 2025 01:43:11 -0800 (PST)
Message-ID: <babde702-eaf1-4f97-8961-14f1e635128d@gmail.com>
Date: Wed, 24 Dec 2025 10:43:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/3] xen/riscv: add RISC-V legacy SBI extension support
 for guests
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1766399205.git.oleksii.kurochko@gmail.com>
 <f4225d3134ec12a392a2e5d91414bfdf9d0665a1.1766399205.git.oleksii.kurochko@gmail.com>
 <74eec4dc-de48-4060-8f87-ba04023fda17@suse.com>
 <ace5aa8d-d192-4f6e-a0b7-0005f759d151@gmail.com>
Content-Language: en-US
In-Reply-To: <ace5aa8d-d192-4f6e-a0b7-0005f759d151@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 12/24/25 10:05 AM, Oleksii Kurochko wrote:
>
> On 12/23/25 5:11 PM, Jan Beulich wrote:
>> On 22.12.2025 17:37, Oleksii Kurochko wrote:
>>> +static int vsbi_legacy_ecall_handler(unsigned long eid, unsigned 
>>> long fid,
>>> +                                     struct cpu_user_regs *regs)
>>> +{
>>> +    int ret = 0;
>>> +
>>> +    switch ( eid )
>>> +    {
>>> +    case SBI_EXT_0_1_CONSOLE_PUTCHAR:
>>> +        vsbi_print_char(regs->a0);
>>> +        break;
>>> +
>>> +    case SBI_EXT_0_1_CONSOLE_GETCHAR:
>>> +        ret = SBI_ERR_NOT_SUPPORTED;
>>> +        break;
>>> +
>>> +    default:
>>> +        /*
>>> +         * TODO: domain_crash() is acceptable here while things are 
>>> still under
>>> +         * development.
>>> +         * It shouldn't stay like this in the end though: guests 
>>> should not
>>> +         * be punished like this for something Xen hasn't implemented.
>>> +         */
>>> +        domain_crash(current->domain,
>>> +                     "%s: Unsupported ecall: FID: #%lx, EID: #%lx\n",
>> Hmm, wait - patch 1 says you would consistently use #%lu for FIDs. I 
>> can adjust
>> while committing, unless you tell me not to.
>
> I think that we should drop printing FID at all for Legacy extension 
> as according to
> the spec.:
>   The SBI function ID field in a6 register is ignored because these 
> are encoded as multiple SBI
>   extension IDs.
> And according to "Function Listing" FID will be 0:
> https://github.com/riscv-non-isa/riscv-sbi-doc/blob/master/src/ext-legacy.adoc#function-listing
>
> I would be happy if you could drop printing of FID during commit. Let 
> me know if you want me to
> drop printing of FID in the next patch series version.
>
EID printing should be also updated to #%#lx.

Sorry for noticing that only now.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 15:06:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 15:06:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192926.1511946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYQR9-0005Lh-R4; Wed, 24 Dec 2025 15:06:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192926.1511946; Wed, 24 Dec 2025 15:06:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYQR9-0005La-Nx; Wed, 24 Dec 2025 15:06:03 +0000
Received: by outflank-mailman (input) for mailman id 1192926;
 Wed, 24 Dec 2025 15:06:02 +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
 <SRS0=DYbN=66=suse.com=marco.crivellari@srs-se1.protection.inumbo.net>)
 id 1vYQR8-0005LU-8w
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 15:06:02 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0edc2140-e0da-11f0-b15c-2bf370ae4941;
 Wed, 24 Dec 2025 16:06:00 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-5942bac322dso6664023e87.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Dec 2025 07:06:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0edc2140-e0da-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766588760; x=1767193560; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7AxcJ++mDjVdg2vkVJXskNfABxiuOiTbK8B4BuH1PAo=;
        b=CdOoTDt9HymXaqk7oRgskgJysBSs/gKFCDOze+m36desJE6nDlvFbqQNPnWdKFeA/y
         borNQBAF0+w9Us4Qv9CCzrKA6kH7wEGI4lwJF9yraYGCg4afuEP8J/itWCJmtws+02fE
         VoWdv1mimrtyK2ReHCC21yjHtuAWoT/sWER++Yks/qUDtdMx1d5ZdWUE699L3g5HW7C0
         baSmjrNO+eAdqs0vvQodimsI3baP2PEiIqgwNLQOKVGvCybvXp6/8nHSDDkubSDPh9UV
         Wns3wKIyBVLX+fP050O+e6VGxPMPNb4N+3L9XY9zfMzc5lXYxGkkHOGOvehHmPAJDzKU
         KxnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766588760; x=1767193560;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=7AxcJ++mDjVdg2vkVJXskNfABxiuOiTbK8B4BuH1PAo=;
        b=EXokm6AwlmvRYQLAAy0zv/9oTpkm/NQSzJmy/o91sQofuF6XZgFiRpAogg6k7/B8A/
         pEQy+FFw8p177lhjjfFXbyMHfAE6NMQC3KkTWghcZZfAru8e2rP+vVkxdomykPC+wElT
         JlqihfBzj90rEoUzTmkflKq5gZVjNb8gqjGQxHWZ/a8Vxt5b/rnaR5TBtjGsFg9Hpje6
         YE1c0HLWg6qMueqprWDTunwfgyJ1Sue5WJUfQx+xfJtHxIKUWNeU+eB8bYHi7ufMFv3E
         Fa7T+YeEceagzX3yVxzi/1P/8VtmU0JNlbdD65cSQhehKYUxxEnWsOlf4u5L4vvjBwSd
         uIMw==
X-Forwarded-Encrypted: i=1; AJvYcCWGjg5zFjQnXctriuqHRahBRLaZx8hjNX6+WhHsKrRvbRzU47q3R1Gb+RvM7R3T+Cm7xQpc4XffYR4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwEcNV1dvjKIacXNlVAQ3fMmsDNw2O5NWjrJ+aZOS79r3c3DQg2
	uHjBTTNbuXZF5lD7kLA/XVNzRXtl0GD7GPJBo9UoTogblUwPhtNDw8Nl4oM7+X/XtMD8QWfj3bm
	vGnXUcUbXRXh4FKkVNTcnI1p+Hyxy2B70/y6whJGuqg==
X-Gm-Gg: AY/fxX6HwbHV8zbKMrxCOtansX3L5XmFuEKXiScQj8L326ytgdTbQ61FWUe/f5RpTHL
	qjwhUPdZ4IkeeBIMJa6G9ImGWqvs6EPqHbwM53KsUDUrxAWSnVBNzBoOmAjlc46snnzbwcRABfx
	3T6X2dePu4XFj0w/+n7gPQYWusJll9eCE1DMEEPQ0tQp80g+0TpMz6u/d+1j9DOqnyPLMr0O3Lo
	czfCkbLMfqkK2OR6cdXB7icMQwVHDZDO6m06/UiXu593/rKRliFrSQqz2b/YwTzQxseVe0rf57v
	A80qBvU017XguPZlToA64OqOhP59JGiOEsFzZm8=
X-Google-Smtp-Source: AGHT+IHVMuch2kTut9aphBozo1dC5IDPtF6bAMCdul3HMtqOKgey6ooHrpGe08sKt7YgR/cYTyIecO5t303sGEVu1JE=
X-Received: by 2002:a05:6512:2211:b0:59a:115f:5b86 with SMTP id
 2adb3069b0e04-59a17d08f04mr6718124e87.12.1766588760030; Wed, 24 Dec 2025
 07:06:00 -0800 (PST)
MIME-Version: 1.0
References: <20251106155831.306248-1-marco.crivellari@suse.com>
In-Reply-To: <20251106155831.306248-1-marco.crivellari@suse.com>
From: Marco Crivellari <marco.crivellari@suse.com>
Date: Wed, 24 Dec 2025 16:05:49 +0100
X-Gm-Features: AQt7F2o93fZnlXnIb_xtPnoUbRnCKdtLBd5hClRrFTCRxTDzaZg28FIXeuTcS4s
Message-ID: <CAAofZF4JXeLpXHNLeKXSY=Xz18XcOwA6FFvnX=0+NbKMh3rYrQ@mail.gmail.com>
Subject: Re: [PATCH 0/2] replace system_wq with system_percpu_wq, add
 WQ_PERCPU to alloc_workqueue
To: linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Cc: Tejun Heo <tj@kernel.org>, Lai Jiangshan <jiangshanlai@gmail.com>, 
	Frederic Weisbecker <frederic@kernel.org>, Sebastian Andrzej Siewior <bigeasy@linutronix.de>, 
	Michal Hocko <mhocko@suse.com>, Juergen Gross <jgross@suse.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, 
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Nov 6, 2025 at 4:58=E2=80=AFPM Marco Crivellari
<marco.crivellari@suse.com> wrote:
>  [...]
>   xen/events: replace use of system_wq with system_percpu_wq
>   xen: privcmd: WQ_PERCPU added to alloc_workqueue users
>
>  drivers/xen/events/events_base.c | 6 +++---
>  drivers/xen/privcmd.c            | 3 ++-
>  2 files changed, 5 insertions(+), 4 deletions(-)

Gentle ping.

Thanks!

--=20

Marco Crivellari

L3 Support Engineer


From xen-devel-bounces@lists.xenproject.org Wed Dec 24 17:03:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 17:03:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192949.1511963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSGz-0003Fz-7C; Wed, 24 Dec 2025 17:03:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192949.1511963; Wed, 24 Dec 2025 17:03:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSGz-0003Fp-29; Wed, 24 Dec 2025 17:03:41 +0000
Received: by outflank-mailman (input) for mailman id 1192949;
 Wed, 24 Dec 2025 17:03:40 +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
 <SRS0=jcWU=66=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vYSGx-0003CV-VW
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 17:03:39 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7e170a83-e0ea-11f0-b15c-2bf370ae4941;
 Wed, 24 Dec 2025 18:03:39 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-64baaa754c6so6082053a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 24 Dec 2025 09:03:39 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037ab7f7bsm1798927766b.18.2025.12.24.09.03.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Dec 2025 09:03:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7e170a83-e0ea-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766595818; x=1767200618; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Z+CX4PM1TSlKhl6ge6jDhJJvdmvI/i39oU9Gt3HuqSc=;
        b=VAtxeBZmCjadwaNlu88IyJOVNNWkT8e3Hg1ZbbDjKwldjoPqMNz79K/BY3Heeiwyvt
         QQz1QfFlDXGIGzO4Z9wp/9yWxFu3LQVdkq8JL5AnEImtaFYiEAUzG/y4FPKcc6u1wCJ+
         n6SFdVc2vsldKVlho1AUyNI2b5YtJIbh/80BtXrFLu3Eu7U3LWt1DCfJL0RQGyeLHUfd
         nSMP93pMUYPvSbJFAk47wjokOFAX+O+EfxiVMEDWv9/F2JQUtb6RjP9pjKANOrSX3biF
         rAc9BsSbaZk+4p+5Uet/3ZzbL2vtVI9nw0arFX01OLw8SUxKj8mzVA5z/7pxXPZWHDeO
         cHUQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766595818; x=1767200618;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Z+CX4PM1TSlKhl6ge6jDhJJvdmvI/i39oU9Gt3HuqSc=;
        b=qyNb0M3e/Rw4ee2kmkocChWB0eaQOwl863/wxhPDPO3A9L02fa/Sqo0ZhOTdZDnnZR
         eqmKhMkYYgjmqLTjzjH9Vhvu1g1oFmxgtPLVLUftdla2ensXvrcbxM50ANucWnYQGsd0
         /5GjtAyz7naPoGBKJ12CVoXFBn3pWukwKp4QndmRRa5f0hNCrGR6Gdqfi4AJI/DcgjDk
         k3fZ/2D6LNJ/Jj5v6M3k87xVjcnIHPQ0zmM8UPEFHhrRMSm9S4QwHldJTAK3zj0WFkPL
         HOu36VFPw9YXltbZAhwOiv+Aw9U5bFpXdMXD+rz3wtMT6CALPo2UH+jKWzbfSUJ4WR0G
         7hPg==
X-Gm-Message-State: AOJu0YxK7yq9ku4qB6+IGMBR/x6Q8xjLh+pb9a/PTNA/dflCUu9Udfr6
	yuwhi94fiK54okVZ8spZaDsp7pSjZifAIJ7nXMAD2eiWF+v4ussT9xvmHSK/FQ==
X-Gm-Gg: AY/fxX5TRVpBJROm5sWpj+trU/WNSShBuASTFtY6C3TXTcP+xMzT851b6L7xuLmYcy4
	vdJacovaGKr5tVVq69Zybauu2C2XNPKika/Cq6vz+3WVwfBvkGAtSAL9IOMin3X+QTFNNsl2Nma
	qjxeddRdMkD/2ZfoqB265W2rqieuicKPj/Z5jm0ZwKG4BEayaA0rJinoDCwGYPXnlT1fTnX6huC
	SbhG10gSd5Sj3K0zpUdmMabav/96DxaxThAFPqWCdLyCcqXM6qtifY3MXwR3L0pgT1qtw5RLKtt
	qo8Nuu++ceAGQhFW0KXKHIRG1Vf0XuS7s5ojvyBNV2g6JHOr/FLUFGH5Cod2FwJQpPQij6FoPeg
	CP5zfI4R2/VrAO/Bncc7kcIzf0KCgPdPAXLRaLZrRA4vbmZt9VZHChuPT3rNhK0yB6o8dejf7S4
	ejcN2zklxUV/BjYyTrYWeUi62w4ZW0JFCOqSPFt0adUsv22pSwyvNWFa0=
X-Google-Smtp-Source: AGHT+IH4u2/iCr5LDRPjPTjUt2EKuw6McarNGkOHJXK+wbRNb2InsTPLqP39yJFiwV7dZr3TMBqKDA==
X-Received: by 2002:a17:906:308a:b0:b83:15cb:d491 with SMTP id a640c23a62f3a-b8315cc015bmr165100066b.53.1766595818113;
        Wed, 24 Dec 2025 09:03:38 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 02/15] xen/riscv: implement arch_vcpu_{create,destroy}()
Date: Wed, 24 Dec 2025 18:03:15 +0100
Message-ID: <be49a360ad584edf5fd9891e5f4534a2c2586048.1766595589.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766595589.git.oleksii.kurochko@gmail.com>
References: <cover.1766595589.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce architecture-specific functions to create and destroy VCPUs.
Note that arch_vcpu_create() currently returns -EOPNOTSUPP, as the virtual
timer and interrupt controller are not yet implemented.

As part of this change, add continue_new_vcpu(), which will be used after
the first context_switch() of a new vCPU. Since this functionality is not
yet implemented, continue_new_vcpu() is currently provided as a stub.

Update the STACK_SIZE definition and introduce STACK_ORDER (to align with
other architectures) for allocating the vCPU stack.

Introduce struct cpu_info, which will be allocated in arch_vcpu_create()
and declare cpu_info inside arch_vcpu structure.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/Makefile              |  1 +
 xen/arch/riscv/domain.c              | 56 ++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/config.h  |  3 +-
 xen/arch/riscv/include/asm/current.h |  6 +++
 xen/arch/riscv/include/asm/domain.h  |  3 ++
 xen/arch/riscv/stubs.c               | 10 -----
 6 files changed, 68 insertions(+), 11 deletions(-)
 create mode 100644 xen/arch/riscv/domain.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 87c1148b0010..8863d4b15605 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -1,5 +1,6 @@
 obj-y += aplic.o
 obj-y += cpufeature.o
+obj-y += domain.o
 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
 obj-y += entry.o
 obj-y += imsic.o
diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
new file mode 100644
index 000000000000..e5fda1af4ee9
--- /dev/null
+++ b/xen/arch/riscv/domain.c
@@ -0,0 +1,56 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/mm.h>
+#include <xen/sched.h>
+
+static void continue_new_vcpu(struct vcpu *prev)
+{
+    BUG_ON("unimplemented\n");
+}
+
+int arch_vcpu_create(struct vcpu *v)
+{
+    int rc = 0;
+
+    BUILD_BUG_ON(sizeof(struct cpu_info) > STACK_SIZE);
+
+    v->arch.stack = alloc_xenheap_pages(STACK_ORDER, MEMF_node(vcpu_to_node(v)));
+    if ( !v->arch.stack )
+        return -ENOMEM;
+
+    v->arch.cpu_info = (struct cpu_info *)(v->arch.stack
+                                           + STACK_SIZE
+                                           - sizeof(struct cpu_info));
+    memset(v->arch.cpu_info, 0, sizeof(*v->arch.cpu_info));
+
+    v->arch.xen_saved_context.sp = (register_t)v->arch.cpu_info;
+    v->arch.xen_saved_context.ra = (register_t)continue_new_vcpu;
+
+    printk("Create vCPU with sp=%#lx, pc=%#lx, cpu_info(%#lx)\n",
+           v->arch.xen_saved_context.sp, v->arch.xen_saved_context.ra,
+           (unsigned long)v->arch.cpu_info);
+
+    /* Idle VCPUs don't need the rest of this setup */
+    if ( is_idle_vcpu(v) )
+        return rc;
+
+    /*
+     * As the vtimer and interrupt controller (IC) are not yet implemented,
+     * return an error.
+     *
+     * TODO: Drop this once the vtimer and IC are implemented.
+     */
+    rc = -EOPNOTSUPP;
+    goto fail;
+
+    return rc;
+
+ fail:
+    arch_vcpu_destroy(v);
+    return rc;
+}
+
+void arch_vcpu_destroy(struct vcpu *v)
+{
+    free_xenheap_pages(v->arch.stack, STACK_ORDER);
+}
diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h
index 1e08d3bf78be..86a95df018b5 100644
--- a/xen/arch/riscv/include/asm/config.h
+++ b/xen/arch/riscv/include/asm/config.h
@@ -143,7 +143,8 @@
 
 #define SMP_CACHE_BYTES (1 << 6)
 
-#define STACK_SIZE PAGE_SIZE
+#define STACK_ORDER 3
+#define STACK_SIZE (PAGE_SIZE << STACK_ORDER)
 
 #define IDENT_AREA_SIZE 64
 
diff --git a/xen/arch/riscv/include/asm/current.h b/xen/arch/riscv/include/asm/current.h
index 0c3ea70c2ec8..58c9f1506b7c 100644
--- a/xen/arch/riscv/include/asm/current.h
+++ b/xen/arch/riscv/include/asm/current.h
@@ -21,6 +21,12 @@ struct pcpu_info {
 /* tp points to one of these */
 extern struct pcpu_info pcpu_info[NR_CPUS];
 
+/* Per-VCPU state that lives at the top of the stack */
+struct cpu_info {
+    /* This should be the first member. */
+    struct cpu_user_regs guest_cpu_user_regs;
+};
+
 #define set_processor_id(id)    do { \
     tp->processor_id = (id);         \
 } while (0)
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 639cafdade99..a0ffbbc09c6f 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -49,6 +49,9 @@ struct arch_vcpu
         register_t ra;
     } xen_saved_context;
 
+    struct cpu_info *cpu_info;
+    void *stack;
+
     /* CSRs */
     register_t hstatus;
     register_t hedeleg;
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 164fc091b28a..eab826e8c3ae 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -126,16 +126,6 @@ void free_vcpu_struct(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-int arch_vcpu_create(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
-void arch_vcpu_destroy(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 void vcpu_switch_to_aarch64_mode(struct vcpu *v)
 {
     BUG_ON("unimplemented");
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 17:03:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 17:03:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192958.1512045 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSH7-00058o-Gi; Wed, 24 Dec 2025 17:03:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192958.1512045; Wed, 24 Dec 2025 17:03:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSH7-00057M-5y; Wed, 24 Dec 2025 17:03:49 +0000
Received: by outflank-mailman (input) for mailman id 1192958;
 Wed, 24 Dec 2025 17:03:48 +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
 <SRS0=jcWU=66=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vYSH5-0003CV-TU
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 17:03:47 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 82f9be44-e0ea-11f0-b15c-2bf370ae4941;
 Wed, 24 Dec 2025 18:03:47 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-64b9230f564so6920102a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Dec 2025 09:03:47 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037ab7f7bsm1798927766b.18.2025.12.24.09.03.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Dec 2025 09:03:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 82f9be44-e0ea-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766595827; x=1767200627; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2oxTmuSNbGknJOIWam5SQOKhN8ri960Ne582GEFVsMM=;
        b=WBFp+MejlcxPEu5iX2a9/1QxrXitFgaQp8+v4VYhsB7mfsrAoqLUn8nc4k8+mNybNz
         n5FHjL31C3CxKJd04/jZDjWtcAtsCHtAITFdB8DdmAu95yRB/SV9YI+/4ieTXC3UBqw8
         I64ng9JDLrOZ/sNVwyHGaGwOzlCi6Dts56azHM7dqo6/SWWsNfAHjZOmzkOMGlpBsbNs
         LPu0s1r8vAwkJxTvH2G5wm9wd4QKHqZLFXEjdEMrewP3exh0Eh0AiGc13gCoLE/oNMPZ
         Q9ZRZ7ZrrvNf8Ls2DJS+5DcL2K9NQhMQMGRta+91UwZsYKbaFmitZSGQaJ6JLt29Ki0x
         3kmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766595827; x=1767200627;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=2oxTmuSNbGknJOIWam5SQOKhN8ri960Ne582GEFVsMM=;
        b=ItFOWWw8JXEny6GuA10t7c41PMBoz8WTfzG5iLKKpjMbCZ3io1i1IB9bvj+6sX3Oik
         EZp6rxxJWQ6W+Yr+0chSYph9p5TZxuE/nvEQD8Pyy8zTMWMPC0f6VCHdMykUXZIZZ3ZA
         P50Wepkfw+nfWf1GPMewNpV6hItA6F8x1mPLFuYLyCvfxBt21Fum31TsHqzhv04xOVe6
         UrvoOmx8EoERIHp4VA7+gBQprRSdb31lj8ebA7dhJrLxfr1M0EShUBHNiA5SYkEBLQRV
         o2q4f/2AwWrvGT5pTd6Mjz7/thIgEljiu4wu5lfLRPlNq84A3iUxTV4RSA0hbFfktKXG
         CoNw==
X-Gm-Message-State: AOJu0Yw3DufBGAFO9KtPhqeg51MBtO6xZx1w0eqB3dxhrcPHBxnMHSbr
	TSSz4Qh29T9p+eUuDXKW51QZOTEyKDR1jhEljVR5UoDwp3mdp8OQiw649Bw0BQ==
X-Gm-Gg: AY/fxX4YCO8du3VeLAPdjJHIKMQHf/Z3YGUQNFy4jmMu9g+TYy9sfnnTd9ScM1oKl8N
	zIB/V+24PwMDxTYcAxTdUa1qmxDhyObGPUqLKt8NFrrdQ1Hx5/VB9wNSnN4ZEi7VUn1HWJgCT46
	aKMXe43sN6CRElNUH+b4boJwLrtj35n2zx+/RCD1SY3cPRSXfW6MNgmgQlJ3Wo5+/9FU7LwsI30
	/pKfmPToJTLO9MFMHs7xcQaTswaiSdKo3B/aj+wt/VFvZbG7DUdZ+UUUo/bT+WslD9IT/8QT1Mo
	mEI6CM9Fsyjz850w+uJcsiN4GNpBSZGCTcPtPU4hMlIXCHaTjxrcXCgtV3wx6pLn4CkcPhCQeqn
	0rNAVzeZSESBgGu+FaR7wGx1mtSxWnFJNfwqCCAqwnOB8hLOZLCRievnbfQpis6caUcqwai444q
	DKortep9dfdHu2kwbbig3yKxpF3FPMCrzWi4oIbyTPwPLQ/tSK0LYzd5FRU+kURqA4oQ==
X-Google-Smtp-Source: AGHT+IF9n4wrdQHHFlIxEhxL5KnGCIoX4DKXTBGq6kQ9H7BVz9NiSLos6Vc2q4neRXUgjTMfN2mSTg==
X-Received: by 2002:a17:907:608d:b0:b76:f57a:b0a7 with SMTP id a640c23a62f3a-b803705129emr2171318066b.31.1766595826555;
        Wed, 24 Dec 2025 09:03:46 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 11/15] xen/riscv: introduce ns_to_ticks()
Date: Wed, 24 Dec 2025 18:03:24 +0100
Message-ID: <e4e36ed2d02b760c925014db986041b82fd9b943.1766595589.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766595589.git.oleksii.kurochko@gmail.com>
References: <cover.1766595589.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/time.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/xen/arch/riscv/include/asm/time.h b/xen/arch/riscv/include/asm/time.h
index 63bdd471ccac..3d013a3ace0f 100644
--- a/xen/arch/riscv/include/asm/time.h
+++ b/xen/arch/riscv/include/asm/time.h
@@ -29,6 +29,11 @@ static inline s_time_t ticks_to_ns(uint64_t ticks)
     return muldiv64(ticks, MILLISECS(1), cpu_khz);
 }
 
+static inline uint64_t ns_to_ticks(s_time_t ns)
+{
+    return muldiv64(ns, cpu_khz, MILLISECS(1));
+}
+
 void preinit_xen_time(void);
 
 #endif /* ASM__RISCV__TIME_H */
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 17:03:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 17:03:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192956.1512032 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSH6-0004sv-E4; Wed, 24 Dec 2025 17:03:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192956.1512032; Wed, 24 Dec 2025 17:03:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSH6-0004rx-4j; Wed, 24 Dec 2025 17:03:48 +0000
Received: by outflank-mailman (input) for mailman id 1192956;
 Wed, 24 Dec 2025 17:03:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jcWU=66=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vYSH4-0003b7-Bs
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 17:03:46 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8162f76f-e0ea-11f0-9cce-f158ae23cfc8;
 Wed, 24 Dec 2025 18:03:44 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b7cee045187so1086233066b.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Dec 2025 09:03:44 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037ab7f7bsm1798927766b.18.2025.12.24.09.03.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Dec 2025 09:03:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8162f76f-e0ea-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766595824; x=1767200624; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=f81w3dP1tK2eL4eFxpXsxUA2ohrjxt2N+AHHpB9O6MY=;
        b=cixfmFkV76J2i6aUf83Gci9BXp7acnnehZOyNLl2lZLptxlmMx5UFw9uybJy/uOxS3
         9WOtavKThU0/fcbkQv5BWDhI8AKfVGtz2RbLC/mmkUd1u0o0EP/7W1kpAF6FR+5DxgZ4
         cE9/1OmNMF9jtD/0cwhzxo++KbkhgoqfxSFzVZQGj/2Q7wGRA+aQO6lJl067yTcRHnFW
         kEL/v/1Eba/IquCukZo1VfWvXhp0hJoS1xEiZ8H74B8Lb+Wl6AXzXpj9CY9ssGBSgbzV
         nWNpBzIlMN1RGg2Xuh+0Tiy0rWYqs0uJxDeOyROvfOV6U7xP2VT5NdSU0GlDzTpOKj7h
         9yDQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766595824; x=1767200624;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=f81w3dP1tK2eL4eFxpXsxUA2ohrjxt2N+AHHpB9O6MY=;
        b=i0cgsjigt5BH8xl/S7IEAyNLXaccp/VLNIAbNEr9dGnPgo59tBAt/ei9Uny/0fZQwB
         AUm4l+fmDjaMFP51J/X35bWOnlw2aeDQIAcUSU0eOFM2LU5Bx76/DMJ2oTGJ1X+O8k7d
         7FZ7TVvPQ+Ebs33+uAQciP+kWpWt/RG71ojfkORpoJrbxjD59ZSU81iB4m5FdCyT3Ga7
         OxLW4GyZXlqARyx/V30xvZKxuEChBQSmsV9zITIEvCgevcMxdbK3DUtOZjLXuJ4/guEm
         +Ti0XcR9E91DbPqQheuKVT9xTKQYwpb8xdTD3/OtKuY9JGLc84jGSrWC+6ACx3Azllm3
         kCPA==
X-Gm-Message-State: AOJu0Yzu5/WfQkeNCgNITqpN4+piC+skAYLeEfTWcXPL77O8mqU1Lk0G
	zVRPv+BzaDl8Mmxc58CO2uLPRMJdhaf/oVhbXhP7ZHgEJiCVLSBKpY+1AcpPDQ==
X-Gm-Gg: AY/fxX5TeXcrfT0SqvSSe1b+hXs5Cy7curRO2Oxu4OHM67C1FtpUOZDv4gfoeOZ7dfc
	EYziGZlRFmofKVD9IpPJpW+Iyi108WsroAMc6xp54bK9oLxGJsGPeqNBsTYF5qvI7ToAGTEequX
	ArXabQ/MaAsRVpC6N/Y17gFGBMJkEkKWjPE+GDSJI00D4LRUFGgNmokrNQtSamg5uxELOANdESs
	qvbvsP9JGcY8nVCAtKCRAD+ZTgBaU0AfxVILj5HaaS0fTnrRLqpM0VSzrRckMu2yISh6/naI01w
	esJPRlJ+4Mo9tRKw8SLoSjOXqNvXX8B2tdOtknEwJp2sb21uRpBUXkcyGRWj6BpDWkY0J9rSYgP
	duDrcZiGXEoOHEbLCogdfc6Vj/v7wZpsKmZrzmhnsGjebikkLXjmIkguFplgTD5YpPDLDZ4ewuD
	9tZbRbkluX4bZpZutCxAmiHdaBDNflsMOJBrBVqA/Ur7jLklX9O+nqHM0=
X-Google-Smtp-Source: AGHT+IHshSx3l5OrJNFlQ2SSgcsfwt3lta9Ueb5q3FYlqr00Fpc0Dn1/nt2xc9qJJ5HAxNygBYvj1w==
X-Received: by 2002:a17:907:7e85:b0:b3a:8070:e269 with SMTP id a640c23a62f3a-b8035649310mr2198873866b.14.1766595823899;
        Wed, 24 Dec 2025 09:03:43 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 08/15] xen/riscv: introduce vtimer_set_timer() and vtimer_expired()
Date: Wed, 24 Dec 2025 18:03:21 +0100
Message-ID: <8cd3efa488b3da2a6751c92d20bbfeb87b3ba39a.1766595589.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766595589.git.oleksii.kurochko@gmail.com>
References: <cover.1766595589.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce vtimer_set_timer() to program a vCPU’s virtual timer based on
guest-provided tick values. The function handles clearing pending timer
interrupts, converting ticks to nanoseconds, and correctly treating
(uint64_t)-1 as a request to disable the timer per the RISC-V SBI
specification.

Additionally, update vtimer_expired() to inject IRQ_VS_TIMER into
the target vCPU instead of panicking, enabling basic virtual timer
operation.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/vtimer.h |  2 ++
 xen/arch/riscv/vtimer.c             | 30 ++++++++++++++++++++++++++++-
 2 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/include/asm/vtimer.h b/xen/arch/riscv/include/asm/vtimer.h
index a2ca704cf0cc..2cacaf74b83b 100644
--- a/xen/arch/riscv/include/asm/vtimer.h
+++ b/xen/arch/riscv/include/asm/vtimer.h
@@ -22,4 +22,6 @@ void vcpu_timer_destroy(struct vcpu *v);
 
 int domain_vtimer_init(struct domain *d, struct xen_arch_domainconfig *config);
 
+void vtimer_set_timer(struct vtimer *t, const uint64_t ticks);
+
 #endif /* ASM__RISCV__VTIMER_H */
diff --git a/xen/arch/riscv/vtimer.c b/xen/arch/riscv/vtimer.c
index 5ba533690bc2..99a0c5986f1d 100644
--- a/xen/arch/riscv/vtimer.c
+++ b/xen/arch/riscv/vtimer.c
@@ -1,6 +1,8 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/domain.h>
 #include <xen/sched.h>
+#include <xen/time.h>
 
 #include <public/xen.h>
 
@@ -15,7 +17,9 @@ int domain_vtimer_init(struct domain *d, struct xen_arch_domainconfig *config)
 
 static void vtimer_expired(void *data)
 {
-    panic("%s: TBD\n", __func__);
+    struct vtimer *t = data;
+
+    vcpu_set_interrupt(t->v, IRQ_VS_TIMER);
 }
 
 int vcpu_vtimer_init(struct vcpu *v)
@@ -37,3 +41,27 @@ void vcpu_timer_destroy(struct vcpu *v)
 
     kill_timer(&v->arch.vtimer.timer);
 }
+
+void vtimer_set_timer(struct vtimer *t, const uint64_t ticks)
+{
+    s_time_t expires = ticks_to_ns(ticks - boot_clock_cycles);
+
+    vcpu_unset_interrupt(t->v, IRQ_VS_TIMER);
+
+    /*
+     * According to the RISC-V sbi spec:
+     *   If the supervisor wishes to clear the timer interrupt without
+     *   scheduling the next timer event, it can either request a timer
+     *   interrupt infinitely far into the future (i.e., (uint64_t)-1),
+     *   or it can instead mask the timer interrupt by clearing sie.STIE CSR
+     *   bit.
+     */
+    if ( ticks == ((uint64_t)~0ULL) )
+    {
+        stop_timer(&t->timer);
+
+        return;
+    }
+
+    set_timer(&t->timer, expires);
+}
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 17:03:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 17:03:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192957.1512037 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSH6-000530-UT; Wed, 24 Dec 2025 17:03:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192957.1512037; Wed, 24 Dec 2025 17:03:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSH6-00050i-OX; Wed, 24 Dec 2025 17:03:48 +0000
Received: by outflank-mailman (input) for mailman id 1192957;
 Wed, 24 Dec 2025 17:03:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jcWU=66=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vYSH5-0003b7-5H
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 17:03:47 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 81f799f9-e0ea-11f0-9cce-f158ae23cfc8;
 Wed, 24 Dec 2025 18:03:45 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b734fcbf1e3so1217320766b.3
 for <xen-devel@lists.xenproject.org>; Wed, 24 Dec 2025 09:03:45 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037ab7f7bsm1798927766b.18.2025.12.24.09.03.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Dec 2025 09:03:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 81f799f9-e0ea-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766595825; x=1767200625; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MGJ+8PA+B3BZDqfQOwxBtkdsNJonGtyAMvb81pE0IsY=;
        b=dD3IgTGK28E1oOIT4mnmx9bJdTBah48Zr5x/6Lw2WpQODtSfq622R/iiU66V64aDlh
         4csU1v/vJBxzzQ7adyMtsrJPcLuum/EaENybG/dmzBRQjqNVyYoZOMfBZb32q/mIsrnB
         a6o/mDRoS/6eZob0dmh8uBj9tuQmfprOjy+1OGPFVaGwZ6Vo/4xtbxUMCFi9jbTSREUN
         59EkXWDhBJyioegZD8O1Otn0+xI9zAndei9wwxwFvCFfchJelIHQfCilATDBwr5sKvmA
         lF2V1a3K/HRTFwqRZahLgzpYH5zRvkVfF/1yv3iTC3ua34GLvtdIEF3VXQigUetvam09
         AmNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766595825; x=1767200625;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=MGJ+8PA+B3BZDqfQOwxBtkdsNJonGtyAMvb81pE0IsY=;
        b=xQoGptxTYagrKW9NUF34jHWsdxhyd6GJOFi6WmEAfZcjb/m1mAmyQVHkrTsdmlZoEh
         UfUXQ/GTv23ccenJmjlPnnR8koGtEranhyCDiOpzFJLVa05NMsh0rh1iF9rOhQe4unSB
         6WCD6GPlQA5gp2YqAq1ZPLRLatfbVTKAmXA9XG/adPUVDqPFvKKszmKltf8+Fv1a3UtD
         2wVBcB8pTw2ZsRH+2+vlJqOY+rnBzdsgHB/EQ8yOK66fsfAjVaqhzQPqNBDTlfrxlUpf
         jr4pPSJnZRlvnHePH0UDN8NNpHgS/hDxRiPHFB8x8SPQv7pRDMW9Ub0r7X0Indu4Fall
         qj0A==
X-Gm-Message-State: AOJu0YxVxK0+cE2li83v/UHVGQa79rpJ2BLCYA7VyrRHjpLcMexmx1Qv
	SE/HcYAuvl2tnzhS6Zwy+kRx4vBMYklJJ3QKQY1+TZKA+4rnH9vzxVtPLN2ftQ==
X-Gm-Gg: AY/fxX4wTUnBG0wIIOYe4mepk3YL6NADegxvSZLoHNmk+3s2g3k9KAyswBEgGhoaw2K
	XidNgJZ1WQwkjFjLot8lt+7p4G3xEmK4qo/iOH5smGUk8Zateq8HHC9GeDysxJebyhokZpIORnt
	As4hPDFhM5jvdjRNBCS3fB8TNOYIEHXiQ2o3a3nUe6Tr6WH8eAr0uA2mZnNPmciUuinvr1XfIgI
	6I2beg0qLeOaGwWJzT4BwCYGjYywCdg8G3D7e+N2yWDGrE7yRaTaixbs2xs4XwtxPVhCqUPcHrf
	EDZvOcRJhPnnx/RR+Pv6tJkOXPzSgaMO/OVauirgwJuM8nA0TSfxU/vtLxNSteulHME6MV7ICrz
	N7UTSLiuDtZFY0MDtn5kPfd9mszHGcVfKoWBNsWu32dIrDW0zF4fEi77f/GpmRkEb/vSSbTQjyL
	J4V0i2UNLEHgdn3n64zQ6aQQ29tv/mYjlUQVy1dy8UFl7PTy+zM9ivEvk=
X-Google-Smtp-Source: AGHT+IE6Rng/74BQOORFuFqqd25NLbcHLdjnMNrygxPv5l6Eq0mWe3vHJVxozddH9FrS50pBgVXS9Q==
X-Received: by 2002:a17:907:8686:b0:b76:8163:f1f8 with SMTP id a640c23a62f3a-b80371d6725mr1938532166b.53.1766595824765;
        Wed, 24 Dec 2025 09:03:44 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 09/15] xen/riscv: add vtimer_{save,restore}()
Date: Wed, 24 Dec 2025 18:03:22 +0100
Message-ID: <c553efa44f384dcb9a49684c586a762b2a1444c9.1766595589.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766595589.git.oleksii.kurochko@gmail.com>
References: <cover.1766595589.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add implementations of vtimer_save() and vtimer_restore().

At the moment, vrtimer_save() does nothing as SSTC, which provided
virtualization-aware timer,  isn't supported yet, so emulated (SBI-based)
timer is used.

vtimer uses internal Xen timer: initialize it on the pcpu the vcpu is
running on, rather than the processor that it's creating the vcpu.

On vcpu restore migrate (when vtimer_restore() is going to be called)
the vtimer to the pcpu the vcpu is running on.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/vtimer.h |  3 +++
 xen/arch/riscv/vtimer.c             | 15 +++++++++++++++
 2 files changed, 18 insertions(+)

diff --git a/xen/arch/riscv/include/asm/vtimer.h b/xen/arch/riscv/include/asm/vtimer.h
index 2cacaf74b83b..e0f94f7c31c7 100644
--- a/xen/arch/riscv/include/asm/vtimer.h
+++ b/xen/arch/riscv/include/asm/vtimer.h
@@ -24,4 +24,7 @@ int domain_vtimer_init(struct domain *d, struct xen_arch_domainconfig *config);
 
 void vtimer_set_timer(struct vtimer *t, const uint64_t ticks);
 
+void vtimer_save(struct vcpu *v);
+void vtimer_restore(struct vcpu *v);
+
 #endif /* ASM__RISCV__VTIMER_H */
diff --git a/xen/arch/riscv/vtimer.c b/xen/arch/riscv/vtimer.c
index 99a0c5986f1d..4256fe9a2bb0 100644
--- a/xen/arch/riscv/vtimer.c
+++ b/xen/arch/riscv/vtimer.c
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/bug.h>
 #include <xen/domain.h>
 #include <xen/sched.h>
 #include <xen/time.h>
@@ -65,3 +66,17 @@ void vtimer_set_timer(struct vtimer *t, const uint64_t ticks)
 
     set_timer(&t->timer, expires);
 }
+
+void vtimer_save(struct vcpu *p)
+{
+    ASSERT(!is_idle_vcpu(p));
+
+    /* Nothing to do at the moment as SSTC isn't supported now. */
+}
+
+void vtimer_restore(struct vcpu *n)
+{
+    ASSERT(!is_idle_vcpu(n));
+
+    migrate_timer(&n->arch.vtimer.timer, n->processor);
+}
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 17:03:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 17:03:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192951.1511982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSH1-0003hF-Mo; Wed, 24 Dec 2025 17:03:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192951.1511982; Wed, 24 Dec 2025 17:03:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSH1-0003gu-H6; Wed, 24 Dec 2025 17:03:43 +0000
Received: by outflank-mailman (input) for mailman id 1192951;
 Wed, 24 Dec 2025 17:03:42 +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
 <SRS0=jcWU=66=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vYSH0-0003CV-Ph
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 17:03:42 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7fc64ca4-e0ea-11f0-b15c-2bf370ae4941;
 Wed, 24 Dec 2025 18:03:42 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-6418b55f86dso8317203a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Dec 2025 09:03:42 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037ab7f7bsm1798927766b.18.2025.12.24.09.03.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Dec 2025 09:03:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7fc64ca4-e0ea-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766595821; x=1767200621; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=v3trXYiveaHvhlgyXDqsatKIS2roH4Y0Sc6KIceNuMI=;
        b=NuV3PMpskygdAPgT8ca6gM4FGYNEOL3TKCj404/GxHKDeiH6+xIRwXBQonRl2KmNx3
         cyn/dK4qp4TM/pGn8xV+Fnj6e58zaKbCmdZBklcW0jPeAff0NSsytKajO2uHM3YEhyMp
         RFWeAdPLWAkK1amuVZZ0F0X3d1DzSiYQuJJ806f6Cl0EpC2ayISMxMPa1T972+h8J9Yr
         ANnHmhVPJwnjAEoBGvxqEM5QhWvFEp8uJU2wtsOHoSusE2hG8gJCwuF8EVtiRCit/tfm
         QklVcf9jT1C1zgL+P+5nZCdqZYJjsz0wQ14/ecYTEA3Hk1GQfUNLotK+DKUy/jN0KgTI
         L2cg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766595821; x=1767200621;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=v3trXYiveaHvhlgyXDqsatKIS2roH4Y0Sc6KIceNuMI=;
        b=u3h2bllInSCYIRgZujb4p94MrP7v7KRY6oUiQDjKUxL96HC+H4sMBF+pFyeAphI2+i
         sLTp2zJKW18yWz50zaXAJQQiNTZ5QI7JQorUgAP/tY9Pt4otmNKbY945xOtF7+gkEr42
         o10NFUVS6Ggm3bt+CEPXZ8CCZzkIVFHBLavERGiqisYawnu8aMo1PbeY9TeWkDTIbZs/
         6Syz77KgORnATAVP0pESXTCJRrQxQmsdxSNbMAzNzTUgVCFR9m8Hr2f2a6/mNPxbg+DY
         AKyp/ngEhk1rjilt/sU5G5tCVQG/dopeUIBXP5MfAbLfsGxkWCMOROZ9iqfImz47NXH9
         8PyQ==
X-Gm-Message-State: AOJu0YwOgzV6Msd1pURVVK1eQIGkjDZ/FHgv40h6cS+6IojoxcJjoHwh
	sgKKRFdJ6it0loI0MykIGp1CM15nVcscA9luYYC824wQf0BWAXPX4qL3Kaclmg==
X-Gm-Gg: AY/fxX7jeHF3KC/p+nekFjV6mGaP/+PjxB/aPJFwYJlQlfYHqioZ9WhGQGJXo22LAo0
	lbzH6AWrew0BlvDRHBsj6R5sApqqnw/Nsf2fbukGuKqx8Vd5QDfNHd88mP17cz5HyM5o61sK9w5
	pQjVdJdCdOfdL9oi6oeX65o/OC607sGn8N0hQS7KPh8ZabPxZ+40yVNp39tIVHfMeY3tFBMMA8z
	HzxIVf2InEF1CGRG61I6lWvLoIccG6WF6BiJJF5EE4sWwNNAICOTLbCq9wtzuopTigoQp6/zPT1
	JRQuh0KoigQFqbQP2HJhpEB+XCW0jM+VhV+vV5M9DwkwGBLtxvTpKNavZo4RfuALpVegzDu7+Gc
	U6tsJHvLAGvEXFjbOvskEaiI8u4GtWOG4mOgfpSI1pXkSNj7YoUYNJKqUvT06Y7y5iNBYwBOO5D
	2UWztLxc1MO0XaBP+oVaTjGHAtcEAPl1yY+UYpnz6nBz2bfscf3vcvITA=
X-Google-Smtp-Source: AGHT+IF9OfLAnUg/4nt8QKZLGFjhUX1TmmbLlZPfFQKnsGxPFkAGTeLHlwNnhCdhFUm6gHPgOXbSRA==
X-Received: by 2002:a17:907:1de2:b0:b80:4117:b6b3 with SMTP id a640c23a62f3a-b804117f48bmr1194562666b.10.1766595821194;
        Wed, 24 Dec 2025 09:03:41 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 05/15] xen/riscv: implement stub for smp_send_event_check_mask()
Date: Wed, 24 Dec 2025 18:03:18 +0100
Message-ID: <837c863f5995cc4371e82b481211b053656ec7e7.1766595589.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766595589.git.oleksii.kurochko@gmail.com>
References: <cover.1766595589.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Since SMP is not yet supported, it is acceptable to implement
smp_send_event_check_mask() as a stub.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/smp.c   | 8 ++++++++
 xen/arch/riscv/stubs.c | 5 -----
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/xen/arch/riscv/smp.c b/xen/arch/riscv/smp.c
index 4ca6a4e89200..e727fdb09612 100644
--- a/xen/arch/riscv/smp.c
+++ b/xen/arch/riscv/smp.c
@@ -1,3 +1,4 @@
+#include <xen/cpumask.h>
 #include <xen/smp.h>
 
 /*
@@ -13,3 +14,10 @@
 struct pcpu_info pcpu_info[NR_CPUS] = { [0 ... NR_CPUS - 1] = {
     .processor_id = NR_CPUS,
 }};
+
+void smp_send_event_check_mask(const cpumask_t *mask)
+{
+#if CONFIG_NR_CPUS > 1
+# error "smp_send_event_check_mask() unimplemented"
+#endif
+}
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index eab826e8c3ae..6ebb5139de69 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -65,11 +65,6 @@ int arch_monitor_domctl_event(struct domain *d,
 
 /* smp.c */
 
-void smp_send_event_check_mask(const cpumask_t *mask)
-{
-    BUG_ON("unimplemented");
-}
-
 void smp_send_call_function_mask(const cpumask_t *mask)
 {
     BUG_ON("unimplemented");
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 17:03:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 17:03:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192954.1512016 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSH4-0004We-Lt; Wed, 24 Dec 2025 17:03:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192954.1512016; Wed, 24 Dec 2025 17:03:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSH4-0004Vk-H1; Wed, 24 Dec 2025 17:03:46 +0000
Received: by outflank-mailman (input) for mailman id 1192954;
 Wed, 24 Dec 2025 17:03:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jcWU=66=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vYSH3-0003b7-K0
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 17:03:45 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 80ea9404-e0ea-11f0-9cce-f158ae23cfc8;
 Wed, 24 Dec 2025 18:03:44 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b73a9592fb8so1149477966b.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Dec 2025 09:03:44 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037ab7f7bsm1798927766b.18.2025.12.24.09.03.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Dec 2025 09:03:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 80ea9404-e0ea-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766595823; x=1767200623; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eVSU+W1QGWlyg8JQ8PYuBMuNclIYpGmrVspxyegORmI=;
        b=ZBAC5fYFgAiZeyasBl4AMnNhfyiqULx860sfQYCDYuZKoX5O7YFjTEFmtNTvEx/4qL
         bfOgjqbUGD5iskG0I9z9pJhk4Rujtp6F4Qgf4sT9392Q+E63HZpFczUDijQbssiBiTc+
         tpKyZuoLoosJQS2G739KfGtaHgaWS8xzxCktWSgW/w6ldU+LZWl/QCh8NafPJPADZ4sv
         s7ZXXnstL48FnasR0egQqE5rM08eb99chyTXZPNBX/vCncDUEFAZJWiXXvrTEk0IHN9h
         czrmjf3J47/z/9M+veX9QdtbQf73NCl1e74HSBWJwdO9/YSo6cO1/1XOD+Momx9sf6xI
         Xm7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766595823; x=1767200623;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=eVSU+W1QGWlyg8JQ8PYuBMuNclIYpGmrVspxyegORmI=;
        b=b9dk8hNrAFbXTSEyV5GpJrxh0CCXZEJ576COyZyClNqAu9TFPfDvKOJ2cy1PdhJhDP
         qaoXBcHsD+CVp8N59jAEM0qUoWjydLqqmnSmQtjAXLmzof27yx5FLnDvHn81udWI0aiD
         XFAA0Mdjh8ZS5SoIpKnoa2oOLwh/JvcXSTkbI2fA/zHlGYT0LJO2HYdukdnLEWaWD/UE
         JDwUBiaKNBG7UXAnbzmjcUYrJDKNMov6MkCG+Jtvn32PYnCZbZzPHObOdeOTkrHM1+jF
         p85hgr/Yw1cwSveGnRx88bUul+anb9Ls4xw/eIsdseTYeihxigJcAOxNxY6ZQcRptqZk
         rJBg==
X-Gm-Message-State: AOJu0YxzMeHElkjWfjn6iDLA1enbCkFCgSZ56thqBvikWCdRD1Zweo26
	V0s0hlPB0vAoIPCJA4b2MqnecN0zQcRndEjkA5XNUyS/rXtoHt1JNsXgOLA9QA==
X-Gm-Gg: AY/fxX5jrn5FkK+jkSzjxQhtbnTZ76eTGLE3TSZn0EmGcGZ5e6nyxr3K1noI8oUkHZH
	r8brMcV+8/M0wmdlermHGkyZ9j8hi+LKsnvw003Xzv9uh3ZGXPAVNIh8kW/xacqT0fnF3Q/4Jsr
	mxV5mrGaANxwtHb3RAKxSrOK/qmZC7bXcSaW+WE5T575WU4ckbqm1p+X3SI41+FZWQ5oaB6R7Ye
	K0++DNAS6WimOrnTW/mBaJTAGxCHPO7WVmFr9dSmUx3Aa6Wgkgjakskvodjwjvl89ajR03J88tT
	ejundnrBQCEvv02DjnmZqLno+EyTGvJ24dGjsDJ6QJ2hHcTMIojcM9PGey++3jkrMAigjVdQ8+Z
	eTgZPSTcJf+rOUHMmFVIA1RpuPdB2SxSaWquANoVxY0dG1+VfievMWBZB7i4+gLbcKt0jzy9HZZ
	nR8Fmv3nyYziAE5FTk/WlT0Oh2VW0LB+5IpqVQkPUGek/7DAQU3nl8evA=
X-Google-Smtp-Source: AGHT+IHyvwi6tzwoa0da4D5yRiLL+x7c5L6uyL4HDN/1K0/a4HJYGqOGf1921C5u1CXXdfwvsTy1xg==
X-Received: by 2002:a17:906:aa16:b0:b72:dcda:fe5a with SMTP id a640c23a62f3a-b802040097fmr1699255866b.5.1766595822996;
        Wed, 24 Dec 2025 09:03:42 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 07/15] xen/riscv: introduce tracking of pending vCPU interrupts, part 1
Date: Wed, 24 Dec 2025 18:03:20 +0100
Message-ID: <c6bd40a9a40ae3194bcfcf90b9a71d4c190ab7f6.1766595589.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766595589.git.oleksii.kurochko@gmail.com>
References: <cover.1766595589.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This patch is based on Linux kernel 6.16.0.

Introduce a lockless mechanism for tracking pending vCPU interrupts using
atomic bit operations. The design follows a multi-producer, single-consumer
model where the consumer is the vCPU itself.

Two bitmaps are added:
 - irqs_pending — represents interrupts currently pending
 - irqs_pending_mask — represents bits that have changed in irqs_pending

Introduce vcpu_(un)set_interrupt() to mark an interrupt in irqs_pending{_mask}
bitmap(s) to notify vCPU that it has or no an interrupt.

Other parts (such as vcpu_has_interrupts(), vcpu_flush_interrupts() and
vcpu_sync_interrupts()) of a lockless mechanism for tracking pending vCPU
interuupts are going to be introduced in a separate patch.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/domain.c                     | 47 +++++++++++++++++++++
 xen/arch/riscv/include/asm/domain.h         | 19 +++++++++
 xen/arch/riscv/include/asm/riscv_encoding.h |  1 +
 3 files changed, 67 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 164ab14a5209..8a010ae5b47e 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -5,9 +5,11 @@
 #include <xen/sched.h>
 #include <xen/smp.h>
 
+#include <asm/bitops.h>
 #include <asm/cpufeature.h>
 #include <asm/csr.h>
 #include <asm/riscv_encoding.h>
+#include <asm/system.h>
 #include <asm/vtimer.h>
 
 static void vcpu_csr_init(struct vcpu *v)
@@ -100,6 +102,9 @@ int arch_vcpu_create(struct vcpu *v)
     if ( is_idle_vcpu(v) )
         return rc;
 
+    bitmap_zero(v->arch.irqs_pending, RISCV_VCPU_NR_IRQS);
+    bitmap_zero(v->arch.irqs_pending_mask, RISCV_VCPU_NR_IRQS);
+
     if ( (rc = vcpu_vtimer_init(v)) )
         goto fail;
 
@@ -135,3 +140,45 @@ void vcpu_kick(struct vcpu *v)
         smp_send_event_check_mask(cpumask_of(v->processor));
     }
 }
+
+int vcpu_set_interrupt(struct vcpu *v, const unsigned int irq)
+{
+    /*
+     * We only allow VS-mode software, timer, and external
+     * interrupts when irq is one of the local interrupts
+     * defined by RISC-V privilege specification.
+     */
+    if ( irq < IRQ_LOCAL_MAX &&
+         irq != IRQ_VS_SOFT &&
+         irq != IRQ_VS_TIMER &&
+         irq != IRQ_VS_EXT )
+        return -EINVAL;
+
+    set_bit(irq, v->arch.irqs_pending);
+    smp_mb__before_atomic();
+    set_bit(irq, v->arch.irqs_pending_mask);
+
+    vcpu_kick(v);
+
+    return 0;
+}
+
+int vcpu_unset_interrupt(struct vcpu *v, const unsigned int irq)
+{
+    /*
+     * We only allow VS-mode software, timer, external
+     * interrupts when irq is one of the local interrupts
+     * defined by RISC-V privilege specification.
+     */
+    if ( irq < IRQ_LOCAL_MAX &&
+         irq != IRQ_VS_SOFT &&
+         irq != IRQ_VS_TIMER &&
+         irq != IRQ_VS_EXT )
+        return -EINVAL;
+
+    clear_bit(irq, v->arch.irqs_pending);
+    smp_mb__before_atomic();
+    set_bit(irq, v->arch.irqs_pending_mask);
+
+    return 0;
+}
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index be7ddaff30e7..a7538e0dc966 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -85,6 +85,22 @@ struct arch_vcpu
     register_t vstval;
     register_t vsatp;
     register_t vsepc;
+
+    /*
+     * VCPU interrupts
+     *
+     * We have a lockless approach for tracking pending VCPU interrupts
+     * implemented using atomic bitops. The irqs_pending bitmap represent
+     * pending interrupts whereas irqs_pending_mask represent bits changed
+     * in irqs_pending. Our approach is modeled around multiple producer
+     * and single consumer problem where the consumer is the VCPU itself.
+     *
+     * DECLARE_BITMAP() is needed here to support 64 vCPU local interrupts
+     * on RV32 host.
+     */
+#define RISCV_VCPU_NR_IRQS 64
+    DECLARE_BITMAP(irqs_pending, RISCV_VCPU_NR_IRQS);
+    DECLARE_BITMAP(irqs_pending_mask, RISCV_VCPU_NR_IRQS);
 }  __cacheline_aligned;
 
 struct paging_domain {
@@ -123,6 +139,9 @@ static inline void update_guest_memory_policy(struct vcpu *v,
 
 static inline void arch_vcpu_block(struct vcpu *v) {}
 
+int vcpu_set_interrupt(struct vcpu *v, const unsigned int irq);
+int vcpu_unset_interrupt(struct vcpu *v, const unsigned int irq);
+
 #endif /* ASM__RISCV__DOMAIN_H */
 
 /*
diff --git a/xen/arch/riscv/include/asm/riscv_encoding.h b/xen/arch/riscv/include/asm/riscv_encoding.h
index dd15731a86fa..32d25f2d3e94 100644
--- a/xen/arch/riscv/include/asm/riscv_encoding.h
+++ b/xen/arch/riscv/include/asm/riscv_encoding.h
@@ -91,6 +91,7 @@
 #define IRQ_M_EXT			11
 #define IRQ_S_GEXT			12
 #define IRQ_PMU_OVF			13
+#define IRQ_LOCAL_MAX		(IRQ_PMU_OVF + 1)
 
 #define MIP_SSIP			(_UL(1) << IRQ_S_SOFT)
 #define MIP_VSSIP			(_UL(1) << IRQ_VS_SOFT)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 17:03:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 17:03:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192953.1512002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSH3-00049T-ED; Wed, 24 Dec 2025 17:03:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192953.1512002; Wed, 24 Dec 2025 17:03:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSH3-00049E-7a; Wed, 24 Dec 2025 17:03:45 +0000
Received: by outflank-mailman (input) for mailman id 1192953;
 Wed, 24 Dec 2025 17:03:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jcWU=66=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vYSH2-0003b7-If
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 17:03:44 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8054301f-e0ea-11f0-9cce-f158ae23cfc8;
 Wed, 24 Dec 2025 18:03:43 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-b8052725de4so484933166b.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Dec 2025 09:03:43 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037ab7f7bsm1798927766b.18.2025.12.24.09.03.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Dec 2025 09:03:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8054301f-e0ea-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766595822; x=1767200622; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RsMdYupDzApAqnlVn5Mcs/WEIvYP7U3Z1iGkgA4AkDY=;
        b=LxT+L1hnxXMUYl2UXND0Yuf2TQIt7iQtlqORZDFl2bzt0WMyM73E3+Uqfa5c0eMFAt
         bntnmVg2Xmzhzjj3Q+mYAJtNRd6hIapoXcNnKDbn4M2U4V1SXHeP9XTazGTe1h8HfjsA
         M68/j17SmoRhcPl2o17cR4dcuEd8gOLu4vKG6xgKC6Hdvui5xai11pPsGWX7i6LFVRdZ
         FqY6sedZ21VJqtALSbHvPclLYCqsTHvugd3I9lZgfuFHBYou/jNmJo6SAelhqFs5vfJY
         PPrLM0FehTK42KcHhfKIbeM6Gzz334fDPoalTJmGb8s2kXLgMJ6UxsuPoN666AHwcvQD
         7OkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766595822; x=1767200622;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=RsMdYupDzApAqnlVn5Mcs/WEIvYP7U3Z1iGkgA4AkDY=;
        b=R6Qg9ja1bcK5iQ6xsS8JZGRoy5yLsy9dwS9abjLnhcrFb9W3cWMMC+u/xiiLJLk7bg
         k0wIzUgp5dRUoE1WGXmvwrHq7oaa5yxs3zJM9Ncb0ruJwUwXeSfGpVl1hVQYtq8oa9VM
         LFIwtXxLXO8M5mtPx0QA2E6w3RLm9zBku/PU34DrVbXULEM1ZGOWbWhk9HZB99B4X5k0
         UcYrQfToxsd5u9VdvB6ohb84ywtavyw1q++gxxUhiajLZ3PaiHCV7cUfETMSdtl3mzFW
         CN+eP1rGUJD5KKhPYahVjUlg5zZsaNmaqu/sSVMXrndS946pvedht6IUKjtlh4RqS+I3
         /qNQ==
X-Gm-Message-State: AOJu0Yy/euLGjNUm8WudLJUB+hzPbmAD3gWpg3N0UWWQ/Sd1zye07WL2
	OeTYgKXa5+b9gij+8YgI32U2XlvrdcsIErQSa9APIENgVitubV6vWTSNa0jxhw==
X-Gm-Gg: AY/fxX7YFw1MjlYOvcp6RvyVfeeSy6XgmrvFTo1pGHI/6AoClv2tPYL54lK/HFVzJPQ
	Pch4NiuHlmLhDAkv/oYWjBbImZYla6AH8VIEUtBDtYG1oOEkDjHOQ9S1lsSDQS23+ffILHsKcq6
	F8oEfyYNVm5VqYARBnFVjOrkN1BLE4+GXfyheiQGO4Hp0ieLqxGrILpMCE+v5nEXRkM+WPC1ueL
	j/yFcwhj9CprztD/mNP1EXDxTGjWjUA9KZRGs261C+tAo39V7XQFmJO6myG7HNGS/4rzieFWnd5
	oCbBm9keyj/KXbIWhxAvUkg5j3bO6wOo/vBsVTIUs+ni2O7tyERYeRN2PWPVzptB2SpmKlJuexR
	nr+l2ged2GLOrRU3hKwFrJVpD67E8Mv6oFq6OpafJ2jhe/RCijacrSa6o7EKGwsULIModrjW9jT
	n7q0Rr2qFYL6wypdtRGkuWkc7L6AC5JV8J8JpwMSC+sXaxMMtQMLx8BXU=
X-Google-Smtp-Source: AGHT+IHhUMpUxd3Xsuvj4VpMElwnJhkzHeXZnV3OSkbjZoCKDj/+fCc9yIGuUZtowk1PFuuqdElJhQ==
X-Received: by 2002:a17:907:948d:b0:b7a:1bde:1224 with SMTP id a640c23a62f3a-b80371e921fmr1846678166b.65.1766595822095;
        Wed, 24 Dec 2025 09:03:42 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 06/15] xen/riscv: introduce vcpu_kick() implementation
Date: Wed, 24 Dec 2025 18:03:19 +0100
Message-ID: <b27b8bc4e03901b7f3184f2a041c74497eedbb02.1766595589.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766595589.git.oleksii.kurochko@gmail.com>
References: <cover.1766595589.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a RISC-V implementation of vcpu_kick(), which unblocks the target
vCPU and sends an event check IPI if the vCPU was running on another
processor. This mirrors the behavior of Arm and enables proper vCPU
wakeup handling on RISC-V.

Remove the stub implementation from stubs.c, as it is now provided by
arch/riscv/domain.c.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/domain.c | 14 ++++++++++++++
 xen/arch/riscv/stubs.c  |  5 -----
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index dd3c237d163d..164ab14a5209 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -1,7 +1,9 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/cpumask.h>
 #include <xen/mm.h>
 #include <xen/sched.h>
+#include <xen/smp.h>
 
 #include <asm/cpufeature.h>
 #include <asm/csr.h>
@@ -121,3 +123,15 @@ void arch_vcpu_destroy(struct vcpu *v)
 {
     free_xenheap_pages(v->arch.stack, STACK_ORDER);
 }
+
+void vcpu_kick(struct vcpu *v)
+{
+    bool running = v->is_running;
+
+    vcpu_unblock(v);
+    if ( running && v != current )
+    {
+        perfc_incr(vcpu_kick);
+        smp_send_event_check_mask(cpumask_of(v->processor));
+    }
+}
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 6ebb5139de69..68ee859ca1a8 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -213,11 +213,6 @@ void vcpu_block_unless_event_pending(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-void vcpu_kick(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 struct vcpu *alloc_vcpu_struct(const struct domain *d)
 {
     BUG_ON("unimplemented");
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 17:03:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 17:03:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192955.1512026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSH5-0004pD-Ut; Wed, 24 Dec 2025 17:03:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192955.1512026; Wed, 24 Dec 2025 17:03:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSH5-0004od-Qq; Wed, 24 Dec 2025 17:03:47 +0000
Received: by outflank-mailman (input) for mailman id 1192955;
 Wed, 24 Dec 2025 17:03:46 +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
 <SRS0=jcWU=66=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vYSH4-0003CV-77
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 17:03:46 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7ce6cb94-e0ea-11f0-b15c-2bf370ae4941;
 Wed, 24 Dec 2025 18:03:37 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-b804646c718so554404266b.2
 for <xen-devel@lists.xenproject.org>; Wed, 24 Dec 2025 09:03:37 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037ab7f7bsm1798927766b.18.2025.12.24.09.03.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Dec 2025 09:03:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7ce6cb94-e0ea-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766595816; x=1767200616; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=Dl0Ake+HXqNEfqkHZLA61ApiAKY7FnWbGJ13njfYtKQ=;
        b=G35OaN8ZxT+N+5krgo/O/mUQ/ZwXR4z+BXx7lbj8KLTETYipvixTwdgy6uwFb1zHKS
         GrgXgbdkhDtvROe0fWEjP2ivPNQ+S4kYjd4PseuyViRzwUVKJKsbdlsQC+VSsaGW6kgg
         RfQjoACZz5YA1C6BNBRBu7OlldvqfcCG/aMCJry9iBCtenTD8hg8YWYSQLP0kSajgTRO
         lQsfRy96ctx6497K1ooJ3u5aMEauwMOW+DcyAkB55bZjjKUJiodRrvfrOCn/pU9GOu15
         oQWC8UEIIqONWRo0xIovTZpuuXMxx4jcFDfWINdVlYbm0tfIuK9qwb+HQp8qlMW4c6qq
         3xow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766595816; x=1767200616;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Dl0Ake+HXqNEfqkHZLA61ApiAKY7FnWbGJ13njfYtKQ=;
        b=Y+ZrU9dppgER837uEs2xVJ36fjEktckScMmMYEPLkNhMzPs6kdjKcJKUC8b+ESRRwc
         jm+9hMeXaDz1uXilNMXCQznqoa/ZEOzkEUtsOHb8Whc9kJLvIsJmPWYA7hozyMS24wc1
         bFEos0iVjy9uGSih9Fl2eQPXM5UOlio2Wat/Youa/G4bxVijyDOqcEdI47znhCouuj6Z
         Jh9pXdNMk3qssQIRrxCoWo/lQ+qRTft1CcePhfgLeYZmWN/koBLcFdyKoE0T7wGInyrh
         h0M91QG41ZoxX2kA1XWM9tdlK5HKrrotTVJsRJMmCO6D5+xd2Rat8ueKh666yVOdaeBN
         Pl0w==
X-Gm-Message-State: AOJu0YxZz4BVCOGYq/RNfWUzxXWx4319JWS5KqRjJYmdyY5D7GLWTGUA
	HKam59QHCaGQAHgqsanOnvTk4ps/DCuGMMOLS7iJHF1G2HWE335FzZh/NVM07Q==
X-Gm-Gg: AY/fxX7fqZwLql6WmsfSVStuvquhr2s6A/T0RgfaPGzhWWTH+i9gofpMm8X66afREiA
	AhXiOc87v8q6Q8YDVWqKowKWoAjjH9Sdp9xD1ehrWIqGTazVNOp+mVH7o4RYVGxF11NYkobR5ds
	OMMWzLbtWUY3BYTTGaQkRmOiGq2CEdi8LCE+q7GqF8BOHlWcW7c8qohmtwbddXWCl60l61uu5OE
	yl+XcaguUtIlKP0XfgjgXYU05Gnj2zV0qdyfv+RXlEmsTx2ObB4Su6WLYZVpYpCZ4mYtP7w4EWu
	6Fx7+bACQxNCVxw2ewJzMA5v5+tFp2lsAX2zftSyx4Rm6HZKTcujZG1n7j5/QLX5AO+5JEi1+oG
	ePXQJdQFjNhfA6zD2Fo9k5MRepaF+YBrtJpZmLKnWwZGBsXgnGMfM5EA2sGC9EfE34/cIVIjyAr
	5sTtrZrTsUdMbcdwOP4+qT6pTODg1YEAcF4kPOCN3FiuFncUm9aaqiFqs=
X-Google-Smtp-Source: AGHT+IGwOuzWLr3FRHp6q4S5/8OelYbfkz3Ei3PM9Zq/6NZE+5MxKeogyVq0QocQjIhpTgr3Uvj69Q==
X-Received: by 2002:a17:907:5c8:b0:b73:544d:b963 with SMTP id a640c23a62f3a-b8036ecf4c0mr1794500866b.13.1766595816253;
        Wed, 24 Dec 2025 09:03:36 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 00/15] xen/riscv: introduce vtimer related things.
Date: Wed, 24 Dec 2025 18:03:13 +0100
Message-ID: <cover.1766595589.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This patch series introduces the components necessary to implement a virtual
timer (vtimer).

Since the SSTC extension is not supported by Xen, an emulated (SBI-based)
timer is required. To address this, a virtual timer built on Xen’s timer
infrastructure is introduced, with save/restore support and SBI-based
programming.

To provide full guest software–based timer support, the following components
are also introduced:
- arch_vcpu_{create,destroy}() to initialize the virtual timer and other
  vCPU-related state not directly tied to timer functionality. As part of this
  work, struct arch_vcpu is introduced to describe the internal state of a
  virtual CPU, along with vcpu_csr_init() to initialize the relevant CSR state.
- Support functions required by the virtual timer, including:
  - vcpu_kick(), and a stub implementation of smp_send_event_check_mask()
    (since SMP is not yet supported in Xen), which is used by vcpu_kick().
  - Support for guest timer programming via interception of the SBI legacy
    SET_TIMER call from guest.
  - Implement reprogram_timer() using introduced sbi_set_timer().
  - Initial lockless tracking of pending vCPU interrupts using atomic bitmaps.
    Not full support, only vcpu_set_interrupt() and vcpu_unset_interrupt() are
    introduced. All others functions will be introduced separately. [1]
- Handling of hypervisor timer interrupts and dispatch into Xen’s generic timer
  softirq.

Oleksii Kurochko (15):
  xen/riscv: introduce struct arch_vcpu
  xen/riscv: implement arch_vcpu_{create,destroy}()
  xen/riscv: implement vcpu_csr_init()
  xen/riscv: introduce vtimer
  xen/riscv: implement stub for smp_send_event_check_mask()
  xen/riscv: introduce vcpu_kick() implementation
  xen/riscv: introduce tracking of pending vCPU interrupts, part 1
  xen/riscv: introduce vtimer_set_timer() and vtimer_expired()
  xen/riscv: add vtimer_{save,restore}()
  xen/riscv: implement SBI legacy SET_TIMER support for guests
  xen/riscv: introduce ns_to_ticks()
  xen/riscv: introduce sbi_set_timer()
  xen/riscv: implement reprogram_timer() using SBI
  xen/riscv: handle hypervisor timer interrupts
  xen/riscv: init tasklet subsystem

 xen/arch/riscv/Makefile                     |   2 +
 xen/arch/riscv/cpufeature.c                 |   1 +
 xen/arch/riscv/domain.c                     | 207 ++++++++++++++++++++
 xen/arch/riscv/include/asm/config.h         |   3 +-
 xen/arch/riscv/include/asm/cpufeature.h     |   1 +
 xen/arch/riscv/include/asm/current.h        |   6 +
 xen/arch/riscv/include/asm/domain.h         |  84 +++++++-
 xen/arch/riscv/include/asm/riscv_encoding.h |   3 +
 xen/arch/riscv/include/asm/sbi.h            |  17 ++
 xen/arch/riscv/include/asm/time.h           |   5 +
 xen/arch/riscv/include/asm/vtimer.h         |  30 +++
 xen/arch/riscv/sbi.c                        |  26 +++
 xen/arch/riscv/setup.c                      |   3 +
 xen/arch/riscv/smp.c                        |   8 +
 xen/arch/riscv/stubs.c                      |  35 ----
 xen/arch/riscv/time.c                       |  31 +++
 xen/arch/riscv/traps.c                      |  14 ++
 xen/arch/riscv/vsbi/legacy-extension.c      |   6 +
 xen/arch/riscv/vtimer.c                     |  82 ++++++++
 19 files changed, 526 insertions(+), 38 deletions(-)
 create mode 100644 xen/arch/riscv/domain.c
 create mode 100644 xen/arch/riscv/include/asm/vtimer.h
 create mode 100644 xen/arch/riscv/vtimer.c

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 17:03:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 17:03:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192948.1511955 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSGy-0003Cn-TW; Wed, 24 Dec 2025 17:03:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192948.1511955; Wed, 24 Dec 2025 17:03:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSGy-0003Cg-Ql; Wed, 24 Dec 2025 17:03:40 +0000
Received: by outflank-mailman (input) for mailman id 1192948;
 Wed, 24 Dec 2025 17:03:39 +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
 <SRS0=jcWU=66=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vYSGw-0003CV-UR
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 17:03:39 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7d646a97-e0ea-11f0-b15c-2bf370ae4941;
 Wed, 24 Dec 2025 18:03:38 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b734fcbf1e3so1217307366b.3
 for <xen-devel@lists.xenproject.org>; Wed, 24 Dec 2025 09:03:38 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037ab7f7bsm1798927766b.18.2025.12.24.09.03.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Dec 2025 09:03:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7d646a97-e0ea-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766595817; x=1767200617; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wpMnoBhXlHEbQcv+4CcUZ/GWflidq/CRvs1qhabX/PA=;
        b=G9pcf8rlJ11GmoH/zo4K3aolXbeoCsyXum94q4bVwUbKf0QT5vjesdVZUjjg0isMZE
         TDJsGkKmA4qrG1mxMogeVEN10wJqks8CnSJFhvQzpYh1WFbDZgst2KqDDTBxjF3F9tan
         62VA/L7m3D9mZbaYU2A/6Oe/Wcb1W5tUcuHIjqMmPJu/UrhPDw/jxl5OsUfWIpkDUgft
         RfJ54hdhHbsQ4y1CJ6sRmR0aQKwXdkvWuJDVZDfq931p9T1iabOXLwzskzBIPgGU8gYk
         PlM2acAO3mrJb9cJ+yI79QYDTCgmZuX58QXaoBjciBgW0cDlfgH1A6reYOHZVZEcbXa5
         qZOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766595817; x=1767200617;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=wpMnoBhXlHEbQcv+4CcUZ/GWflidq/CRvs1qhabX/PA=;
        b=VB7wog8KxkkodcztIlpg3sMV8M1F+w5GrYANATkHqRNhet4gyGbW58EXQ/9Nx6p0sg
         p8kghPCCn23RFXW6pUoDUJOj97qrl61Q58HhC26gBIw2+yQXdwR6j+vHWYUGqxaJkwze
         5/AICg9h+bOHljtH3CEuxYsoWlFLY5SiiuR3ic27InGpwRPO67ZVzpOZ6oe/pMqqzD48
         DGF8QZMCoI+cv9jCj9vHMWhSaEo2wKQc3FHLyuSIeTsBP3GYTXoD2oB0WWlG5eGuHNvy
         GQ/BphQHzgvb6R4ZEX1/7Qu59gO/7b+0PDbuuC7OIpoOSKoRgbo/EoF0fpghoXW7e2nR
         Vb+A==
X-Gm-Message-State: AOJu0YxCRrr3SXAN9V2Q13yfF8yWbdBDjj60GV9YPNxUzTvWItSxntrX
	Kg2s/jfNnXW5htHrGSs/WkR1h0GEQsoWsHWIvthMTOY/D3iZiLEZ/374nMGEfA==
X-Gm-Gg: AY/fxX5QqjLhE0cyJZ9v5CY4t04PXMwbhHMIx/72QfXAzYQEkHODPr9QIdJZEBdk8kY
	TnrRG3Eu0T/fkydAwf3/UDOoAUJIzjXPq5uqQF75TPgIqu2zud0v683n85kri/jvDA0vrkaYae7
	uX1IVxaGB2xm0sWnx/g2uLddXdEuLfUa5h60kp/RKH4tii+NQ1WwY5RkAppoTcj/bUDXilcR8pq
	Kwbcos58yohcGzbD1DpeuLvMG6tUDFQRUQWOqaEY6dJsSHLX44rWcVbkh48zQ9NDsRTPbk4jfIq
	S2j7HjEJEa7PmRyLVAr+gz62Puprh6Adb4yXCQoAbllUM4Bk8KcaFccXFy0ab7sMCGWVxoOvMC0
	m94GsDQ8XOj+a8pvVnFcdW0tq7RDYykuJwfbKgRzQ818Vgx7xC+HjuuN+A6kf5ckI91MmGGH59c
	hpyeh6dwehc+nxnzpuszA3rqDhSTYyIelt4omicjhRghm1jucicorYHHY=
X-Google-Smtp-Source: AGHT+IFGQXiCGFZ8YkznAaepnlm3r06T108zPJKrH4/O/E2AgvWDQNvAco8SXKUUx+l0Bwryvt9Q1w==
X-Received: by 2002:a17:907:7245:b0:b83:13ee:5875 with SMTP id a640c23a62f3a-b8313ee5957mr212455666b.50.1766595817168;
        Wed, 24 Dec 2025 09:03:37 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 01/15] xen/riscv: introduce struct arch_vcpu
Date: Wed, 24 Dec 2025 18:03:14 +0100
Message-ID: <3b531dff3755da010664111cf7d936ccba7c1f5d.1766595589.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766595589.git.oleksii.kurochko@gmail.com>
References: <cover.1766595589.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce structure with VCPU's registers which describes its state.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/domain.h | 58 ++++++++++++++++++++++++++++-
 1 file changed, 56 insertions(+), 2 deletions(-)

diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 316e7c6c8448..639cafdade99 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -22,9 +22,63 @@ struct hvm_domain
 struct arch_vcpu_io {
 };
 
-struct arch_vcpu {
+struct arch_vcpu
+{
     struct vcpu_vmid vmid;
-};
+
+    /* Xen's state: Callee-saved registers and tp, gp, ra */
+    struct
+    {
+        register_t s0;
+        register_t s1;
+        register_t s2;
+        register_t s3;
+        register_t s4;
+        register_t s5;
+        register_t s6;
+        register_t s7;
+        register_t s8;
+        register_t s9;
+        register_t s10;
+        register_t s11;
+
+        register_t sp;
+        register_t gp;
+
+        /* ra is used to jump to guest when creating new vcpu */
+        register_t ra;
+    } xen_saved_context;
+
+    /* CSRs */
+    register_t hstatus;
+    register_t hedeleg;
+    register_t hideleg;
+    register_t hvip;
+    register_t hip;
+    register_t hie;
+    register_t hgeie;
+    register_t henvcfg;
+    register_t hcounteren;
+    register_t htimedelta;
+    register_t htval;
+    register_t htinst;
+    register_t hstateen0;
+#ifdef CONFIG_RISCV_32
+    register_t henvcfgh;
+    register_t htimedeltah;
+#endif
+
+    /* VCSRs */
+    register_t vsstatus;
+    register_t vsip;
+    register_t vsie;
+    register_t vstvec;
+    register_t vsscratch;
+    register_t vscause;
+    register_t vstval;
+    register_t vsatp;
+    register_t vsepc;
+}  __cacheline_aligned;
 
 struct paging_domain {
     spinlock_t lock;
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 17:03:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 17:03:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192952.1511996 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSH3-00045z-1g; Wed, 24 Dec 2025 17:03:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192952.1511996; Wed, 24 Dec 2025 17:03:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSH2-00045q-TN; Wed, 24 Dec 2025 17:03:44 +0000
Received: by outflank-mailman (input) for mailman id 1192952;
 Wed, 24 Dec 2025 17:03:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jcWU=66=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vYSH0-0003b7-VP
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 17:03:42 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7f4a175e-e0ea-11f0-9cce-f158ae23cfc8;
 Wed, 24 Dec 2025 18:03:41 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b7a6e56193cso998928766b.3
 for <xen-devel@lists.xenproject.org>; Wed, 24 Dec 2025 09:03:41 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037ab7f7bsm1798927766b.18.2025.12.24.09.03.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Dec 2025 09:03:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7f4a175e-e0ea-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766595820; x=1767200620; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=g8XzwJhnCm5wKitCTTX5wDHC/h0G6FAP9bDwWltV38M=;
        b=nfgR1hChQELx+mxttjRdYhOFXOR1RF4K7nrL6wgUmEgNw3EKUYlPwi+XBrl/dnM2ME
         4vX0tuxnVVBQKKt465vlcY58VH6SqQByeDwgPS+rpOnCLtAvG9lnEtqysEBa4TJT3Bgo
         ITKm0bjs1Fc5wmT4IvfHAGI/RBlE5xSKNb/AJaiU+b7LI6+xJGLMb8YB2OG70ouOUklT
         kl/foLM1hRmEcwYd5ZACcE4/UjuTOLG6P8Vh7MbI73x3OYTzgXbXM2IToIvEglbcF0HY
         nArl3PzdqYlSeurj9cOZYDKT1cWri2/n32dUfdI2Fe14ZjbBCY0+9BEikKQUy/N/MBlq
         1Kew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766595820; x=1767200620;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=g8XzwJhnCm5wKitCTTX5wDHC/h0G6FAP9bDwWltV38M=;
        b=qyhwnoB/5tayQGys97/Dx6fs/FtQaBEypYUvKOFaLItSlZ7jWfDA7w4jvYovEOoa6b
         JCB15pg5MNM0nFtoNljLYUrZA4KW329osYZcbLeFIwRC8GxQYqQxE8+75Yj2HNaHyBBM
         ehIqfmstzCNuTU5WtXgJqaN3FTVMphPecTZucVTiu+olNJIG/8Dc/GYsgREY2/3RDOD9
         psjUyEBZJoKkWKYUq+k8FzrnkBZ1VmZJ/A+tejuNEx4gCZWgiYhDECK1J5veYoeHNiQX
         zxVCYZEy2lbMhFwxgTgYHdH2H7Cvs0s6j3j1slx+7c9jQEavE9zoY8BmInatIQRuw39Z
         jp7w==
X-Gm-Message-State: AOJu0YzhyFnMeeb2NrbUJra8j6baXJNSpGvDJXEGW6Lx39edHfYApBjZ
	wvpG9LbBYGitFamwHy6pb6aoOtH2vaXXjjoIOxLueurrwTJgWM3UVEqRcksemQ==
X-Gm-Gg: AY/fxX6Ipj8/Uoz6RxN6XFizFGQ8OozhgMWIBp6szchNqDkdDdxBkU8MVweYTcoE5cZ
	bGm1CU6oOhEZxJR9mbdcUGWSSVF4GbfPoRP/S1sGCefuAoYO1IxDHe5kekrJ+TFjlXDFkoYtcPn
	3hSKKa3ga9KquoqeJDZwfsR8+8asJrRYLwW8oYrEentZYHLqbkknvmm/B418Y4x+rLzNrmjIM0J
	Pz0B+aklR90TMgofG2JCdlJGMa2Yz3gu9/wjDH4H1k0h4UIsLAgi1bWoMFG8bUQ7of8dVbKCRwW
	/wmu/cacys820Pcgjqc1iMVj5/7n4Q3a9Qhy0WrJahWsvFto6RQB81B2Wup63dAoOqfpz7rwCQ3
	zj3BVbc9jDGyFU9fXINZZ8zpIL01TKa1snLVpRLf461kH87lFaS4qYwlK97Tb6IZHeFw6/+ga2C
	JvNOEEedBG4SNW8sRJxGI0xR+Wu/OZrRciZMbLdmlkDZDFpuFzw6EuQdUzGWMPaxBo4A==
X-Google-Smtp-Source: AGHT+IH6Bhd0noBuZdsNvUD5oseP8WhloVgyS5FPCVJYVoTkO6Qd/swFoYV/yyKbBks3zpi7Qwzu6g==
X-Received: by 2002:a17:907:7e85:b0:b7c:eb19:2094 with SMTP id a640c23a62f3a-b8037257589mr1663597366b.48.1766595820172;
        Wed, 24 Dec 2025 09:03:40 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 04/15] xen/riscv: introduce vtimer
Date: Wed, 24 Dec 2025 18:03:17 +0100
Message-ID: <94ffc70d3050e532290126560355dc548161f466.1766595589.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766595589.git.oleksii.kurochko@gmail.com>
References: <cover.1766595589.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce a virtual timer structure along with functions to initialize
and destroy the virtual timer.

Add a vtimer_expired() function and implement it as a stub, as the timer
and tasklet subsystems are not functional at this stage.

Call vcpu_vtimer_init() in arch_vcpu_create().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/Makefile             |  1 +
 xen/arch/riscv/domain.c             |  8 ++++--
 xen/arch/riscv/include/asm/domain.h |  4 +++
 xen/arch/riscv/include/asm/vtimer.h | 25 ++++++++++++++++++
 xen/arch/riscv/vtimer.c             | 39 +++++++++++++++++++++++++++++
 5 files changed, 75 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/vtimer.h
 create mode 100644 xen/arch/riscv/vtimer.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 8863d4b15605..5bd180130165 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -22,6 +22,7 @@ obj-y += traps.o
 obj-y += vmid.o
 obj-y += vm_event.o
 obj-y += vsbi/
+obj-y += vtimer.o
 
 $(TARGET): $(TARGET)-syms
 	$(OBJCOPY) -O binary -S $< $@
diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 44387d056546..dd3c237d163d 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -6,6 +6,7 @@
 #include <asm/cpufeature.h>
 #include <asm/csr.h>
 #include <asm/riscv_encoding.h>
+#include <asm/vtimer.h>
 
 static void vcpu_csr_init(struct vcpu *v)
 {
@@ -97,11 +98,14 @@ int arch_vcpu_create(struct vcpu *v)
     if ( is_idle_vcpu(v) )
         return rc;
 
+    if ( (rc = vcpu_vtimer_init(v)) )
+        goto fail;
+
     /*
-     * As the vtimer and interrupt controller (IC) are not yet implemented,
+     * As interrupt controller (IC) is not yet implemented,
      * return an error.
      *
-     * TODO: Drop this once the vtimer and IC are implemented.
+     * TODO: Drop this once IC is implemented.
      */
     rc = -EOPNOTSUPP;
     goto fail;
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index a0ffbbc09c6f..be7ddaff30e7 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -8,6 +8,7 @@
 #include <public/hvm/params.h>
 
 #include <asm/p2m.h>
+#include <asm/vtimer.h>
 
 struct vcpu_vmid {
     uint64_t generation;
@@ -52,6 +53,9 @@ struct arch_vcpu
     struct cpu_info *cpu_info;
     void *stack;
 
+    struct vtimer vtimer;
+    bool vtimer_initialized;
+
     /* CSRs */
     register_t hstatus;
     register_t hedeleg;
diff --git a/xen/arch/riscv/include/asm/vtimer.h b/xen/arch/riscv/include/asm/vtimer.h
new file mode 100644
index 000000000000..a2ca704cf0cc
--- /dev/null
+++ b/xen/arch/riscv/include/asm/vtimer.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * (c) 2023-2024 Vates
+ */
+
+#ifndef ASM__RISCV__VTIMER_H
+#define ASM__RISCV__VTIMER_H
+
+#include <xen/timer.h>
+
+struct domain;
+struct vcpu;
+struct xen_arch_domainconfig;
+
+struct vtimer {
+    struct vcpu *v;
+    struct timer timer;
+};
+
+int vcpu_vtimer_init(struct vcpu *v);
+void vcpu_timer_destroy(struct vcpu *v);
+
+int domain_vtimer_init(struct domain *d, struct xen_arch_domainconfig *config);
+
+#endif /* ASM__RISCV__VTIMER_H */
diff --git a/xen/arch/riscv/vtimer.c b/xen/arch/riscv/vtimer.c
new file mode 100644
index 000000000000..5ba533690bc2
--- /dev/null
+++ b/xen/arch/riscv/vtimer.c
@@ -0,0 +1,39 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/sched.h>
+
+#include <public/xen.h>
+
+#include <asm/vtimer.h>
+
+int domain_vtimer_init(struct domain *d, struct xen_arch_domainconfig *config)
+{
+    /* Nothing to do at the moment */
+
+    return 0;
+}
+
+static void vtimer_expired(void *data)
+{
+    panic("%s: TBD\n", __func__);
+}
+
+int vcpu_vtimer_init(struct vcpu *v)
+{
+    struct vtimer *t = &v->arch.vtimer;
+
+    t->v = v;
+    init_timer(&t->timer, vtimer_expired, t, v->processor);
+
+    v->arch.vtimer_initialized = true;
+
+    return 0;
+}
+
+void vcpu_timer_destroy(struct vcpu *v)
+{
+    if ( !v->arch.vtimer_initialized )
+        return;
+
+    kill_timer(&v->arch.vtimer.timer);
+}
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 17:03:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 17:03:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192950.1511976 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSH1-0003dq-CT; Wed, 24 Dec 2025 17:03:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192950.1511976; Wed, 24 Dec 2025 17:03:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSH1-0003dj-95; Wed, 24 Dec 2025 17:03:43 +0000
Received: by outflank-mailman (input) for mailman id 1192950;
 Wed, 24 Dec 2025 17:03:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jcWU=66=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vYSH0-0003b7-9u
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 17:03:42 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7eb2c3c4-e0ea-11f0-9cce-f158ae23cfc8;
 Wed, 24 Dec 2025 18:03:40 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b73a9592fb8so1149468466b.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Dec 2025 09:03:40 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037ab7f7bsm1798927766b.18.2025.12.24.09.03.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Dec 2025 09:03:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7eb2c3c4-e0ea-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766595819; x=1767200619; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eYGyfRUWi6/uVVhXroMlu9Z8bL0jkMCNXbGuPR68cNM=;
        b=A5WHCck/eKEbkoPJFUqyonrxJpV/dU0mZpjhYrHB9cuNLTU8I2OG6eFj6//lf5JJz6
         DIJOZCs4bmSGP1UTV7LeMsSW1XEp5H+mPAB56NC1ksB74Cq4b1E3zyuMNrQgp5rzBD7b
         2OtT22u2v/Wg3fHd58yw2+bD5E/8/YkIrs8H+m4IVu1dGOufyX0n4oxLCQ0sHzLkABip
         +gCbz6EhpfCkKghssBNEYfG6rnO7yAd9Foz7m2kEhFZ50YbVtuH32XaqcORWBWMpZU+k
         QU6TrdGDThLDauqe1EldA1ef94h3YdyT2s7JxW8FpyRdb+OYG3ExOW2sHunZuEhMG6LV
         nuIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766595819; x=1767200619;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=eYGyfRUWi6/uVVhXroMlu9Z8bL0jkMCNXbGuPR68cNM=;
        b=FMSY0ZIHsiDBJ4uUfy3nkbhkmAo9qkkGCjl6dRqSf4WlaainKZczRO8QV0xmqlmvUL
         jtwPvjbD0GWWb2c3qABXhIIt4eMBtoS4ElLUH8IQopYWj1knyen63Bb8/MrPS7yB3zDh
         k5ri6Qn1gWk94Ese3+hwXI3/4lx+p29dMAVNn7KhN/yZBByCyIiA6KHbQ/MSLjx8aDZp
         vKn/zfcrCTsfOt/uKFMv3bTOlAY1cVJX+6XIE9w3lkoUFv6g69TJmKuAAxBGq7/3QWX6
         4Bjty4go2DpRFuuQXghNkMQBhrS9aitslUNDzRGNqJHCHj9uVZ5Bv5DG8pC9IJvHn9kd
         wE4w==
X-Gm-Message-State: AOJu0YzGI+/sYFPcKzNt1S/y1mprhqU7pqDjQKzSzM64EYMMLfupv7fi
	parZV/JoSBEKPX4qXwZEkLVKVgOrBEIJvGtBjHg0WV2zaONtCV7p5GaWru7qQw==
X-Gm-Gg: AY/fxX4jyE4749i5Lo7GfnHVjVyocMOKKtkC0cm9OjCINrAV7r/hI1n4WTFMbgMjwzr
	mFzUff0nWd894gz4MxRObk2kurp+fVioYvmqiUVQV52HBolVCT38eZueDqJ2rfNDIN6QFhVa5zv
	ftefum2dYbBFRA29DyuKKVmHjgAgb50DFhscrL8jWW/7gw35WB0gtztbqTlooOW4l13E+bqvBFc
	N3qOQOlBRGoWfggKKufMPd04FKp6NluDo0aV/0S45Nyt9zPvb+v2zdlzpWaRtbg17d5BLAuBIrc
	egDnx1V0p+AJt0dRjIvsEuTiggCFsCv5VRLfWfBGlfzD8FgLGo3mGje+Hs4iqHytB/rUwPUJMfr
	xBnZF9FdEYsQXvPg4DIKFqwkdSCN/D4fBPpXRjG1gA8jFce2tB9AfeXEShW//1IbGwQ6+P3XC6O
	LpdSpVil5evk9KwHLN5KEriqKpNAAJYfjWoQBeMbs7Blg0LSNNeyBAZ5bvxb+SQEDVJw==
X-Google-Smtp-Source: AGHT+IGUckCWnWYOyuXH1beDmWPjVW2NAXJIsIoFW1Mos5tgYOhXiz+lRYQn8/fskyhC+hA73E/MOA==
X-Received: by 2002:a17:907:602f:b0:b83:1341:b656 with SMTP id a640c23a62f3a-b831341b7f3mr161394466b.22.1766595819157;
        Wed, 24 Dec 2025 09:03:39 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 03/15] xen/riscv: implement vcpu_csr_init()
Date: Wed, 24 Dec 2025 18:03:16 +0100
Message-ID: <bf617d77bb9e75bbd2930614bb86ff83b80adcfc.1766595589.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766595589.git.oleksii.kurochko@gmail.com>
References: <cover.1766595589.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement function to initialize VCPU's CSR registers to delegate handling
of some traps to VS-mode ( guest ), enable vstimecmp for VS-mode, and
allow some AIA-related register (thier vs* copies ) for VS-mode.

Add detection of Smstateen extension to properly initialize hstateen0 to
allow guest to access AIA-added state.

Add call of vcpu_csr_init() in arch_vcpu_create().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/cpufeature.c                 |  1 +
 xen/arch/riscv/domain.c                     | 63 +++++++++++++++++++++
 xen/arch/riscv/include/asm/cpufeature.h     |  1 +
 xen/arch/riscv/include/asm/riscv_encoding.h |  2 +
 4 files changed, 67 insertions(+)

diff --git a/xen/arch/riscv/cpufeature.c b/xen/arch/riscv/cpufeature.c
index 02b68aeaa49f..03e27b037be0 100644
--- a/xen/arch/riscv/cpufeature.c
+++ b/xen/arch/riscv/cpufeature.c
@@ -137,6 +137,7 @@ const struct riscv_isa_ext_data __initconst riscv_isa_ext[] = {
     RISCV_ISA_EXT_DATA(zbb),
     RISCV_ISA_EXT_DATA(zbs),
     RISCV_ISA_EXT_DATA(smaia),
+    RISCV_ISA_EXT_DATA(smstateen),
     RISCV_ISA_EXT_DATA(ssaia),
     RISCV_ISA_EXT_DATA(svade),
     RISCV_ISA_EXT_DATA(svpbmt),
diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index e5fda1af4ee9..44387d056546 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -3,6 +3,67 @@
 #include <xen/mm.h>
 #include <xen/sched.h>
 
+#include <asm/cpufeature.h>
+#include <asm/csr.h>
+#include <asm/riscv_encoding.h>
+
+static void vcpu_csr_init(struct vcpu *v)
+{
+    unsigned long hedeleg, hideleg, hstatus;
+
+    hedeleg = 0;
+    hedeleg |= (1U << CAUSE_MISALIGNED_FETCH);
+    hedeleg |= (1U << CAUSE_FETCH_ACCESS);
+    hedeleg |= (1U << CAUSE_ILLEGAL_INSTRUCTION);
+    hedeleg |= (1U << CAUSE_MISALIGNED_LOAD);
+    hedeleg |= (1U << CAUSE_LOAD_ACCESS);
+    hedeleg |= (1U << CAUSE_MISALIGNED_STORE);
+    hedeleg |= (1U << CAUSE_STORE_ACCESS);
+    hedeleg |= (1U << CAUSE_BREAKPOINT);
+    hedeleg |= (1U << CAUSE_USER_ECALL);
+    hedeleg |= (1U << CAUSE_FETCH_PAGE_FAULT);
+    hedeleg |= (1U << CAUSE_LOAD_PAGE_FAULT);
+    hedeleg |= (1U << CAUSE_STORE_PAGE_FAULT);
+    v->arch.hedeleg = hedeleg;
+
+    hstatus = HSTATUS_SPV | HSTATUS_SPVP;
+    v->arch.hstatus = hstatus;
+
+    hideleg = MIP_VSTIP |  MIP_VSEIP | MIP_VSSIP;
+    v->arch.hideleg = hideleg;
+
+    /*
+     * VS should access only the time counter directly.
+     * Everything else should trap.
+     */
+    v->arch.hcounteren |= HCOUNTEREN_TM;
+
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_svpbmt) )
+        v->arch.henvcfg |= ENVCFG_PBMTE;
+
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
+    {
+        /*
+         * If the hypervisor extension is implemented, the same three bitsare
+         * defined also in hypervisor CSR hstateen0 but concern only the state
+         * potentially accessible to a virtual machine executing in privilege
+         * modes VS and VU:
+         *      bit 60 CSRs siselect and sireg (really vsiselect and vsireg)
+         *      bit 59 CSRs siph and sieh (RV32 only) and stopi (really vsiph,
+         *             vsieh, and vstopi)
+         *      bit 58 all state of IMSIC guest interrupt files, including CSR
+         *             stopei (really vstopei)
+         * If one of these bits is zero in hstateen0, and the same bit is one
+         * in mstateen0, then an attempt to access the corresponding state from
+         * VS or VU-mode raises a virtual instruction exception.
+        */
+        v->arch.hstateen0 = SMSTATEEN0_AIA | SMSTATEEN0_IMSIC | SMSTATEEN0_SVSLCT;
+
+        /* Allow guest to access CSR_ENVCFG */
+        v->arch.hstateen0 |= SMSTATEEN0_HSENVCFG;
+    }
+}
+
 static void continue_new_vcpu(struct vcpu *prev)
 {
     BUG_ON("unimplemented\n");
@@ -30,6 +91,8 @@ int arch_vcpu_create(struct vcpu *v)
            v->arch.xen_saved_context.sp, v->arch.xen_saved_context.ra,
            (unsigned long)v->arch.cpu_info);
 
+    vcpu_csr_init(v);
+
     /* Idle VCPUs don't need the rest of this setup */
     if ( is_idle_vcpu(v) )
         return rc;
diff --git a/xen/arch/riscv/include/asm/cpufeature.h b/xen/arch/riscv/include/asm/cpufeature.h
index b69616038888..ef02a3e26d2c 100644
--- a/xen/arch/riscv/include/asm/cpufeature.h
+++ b/xen/arch/riscv/include/asm/cpufeature.h
@@ -36,6 +36,7 @@ enum riscv_isa_ext_id {
     RISCV_ISA_EXT_zbb,
     RISCV_ISA_EXT_zbs,
     RISCV_ISA_EXT_smaia,
+    RISCV_ISA_EXT_smstateen,
     RISCV_ISA_EXT_ssaia,
     RISCV_ISA_EXT_svade,
     RISCV_ISA_EXT_svpbmt,
diff --git a/xen/arch/riscv/include/asm/riscv_encoding.h b/xen/arch/riscv/include/asm/riscv_encoding.h
index 1f7e612366f8..dd15731a86fa 100644
--- a/xen/arch/riscv/include/asm/riscv_encoding.h
+++ b/xen/arch/riscv/include/asm/riscv_encoding.h
@@ -228,6 +228,8 @@
 #define ENVCFG_CBIE_INV			_UL(0x3)
 #define ENVCFG_FIOM			_UL(0x1)
 
+#define HCOUNTEREN_TM BIT(1, U)
+
 /* ===== User-level CSRs ===== */
 
 /* User Trap Setup (N-extension) */
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 17:03:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 17:03:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192959.1512066 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSHA-0005r1-0K; Wed, 24 Dec 2025 17:03:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192959.1512066; Wed, 24 Dec 2025 17:03:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSH9-0005pY-NR; Wed, 24 Dec 2025 17:03:51 +0000
Received: by outflank-mailman (input) for mailman id 1192959;
 Wed, 24 Dec 2025 17:03:49 +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
 <SRS0=jcWU=66=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vYSH7-0003CV-35
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 17:03:49 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 839eed93-e0ea-11f0-b15c-2bf370ae4941;
 Wed, 24 Dec 2025 18:03:48 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-b7ffa5d1b80so761541766b.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Dec 2025 09:03:48 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037ab7f7bsm1798927766b.18.2025.12.24.09.03.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Dec 2025 09:03:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 839eed93-e0ea-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766595828; x=1767200628; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+6n/yOP3bwyBec0cz6YcBSWP9PQeZ3Kxu2XaTVIzNOk=;
        b=RuDeQIWdrf9Wl6S/zUNA8ovCOt08MJiHa4Xe0IfBjlm1xAk3e1U5PPqjplZUQJMidT
         M+ApdGS24i7IDYAEME/EXL2uiHYM7g5ITxjPuf0pEcQsCWMYlT8jI0DEFdWOW8gr188v
         g2cDvOnXzriWRjRCQLH3JZ4r7SiBlZwfz1+kx1r/9aLg+ccYMMX1FJ948CXU7PVG09yP
         DTSvWvRg4gu0KjpocIkq/jDYE2Kju1M/MgQPv6m8N9bYOAUt67dmCTiaed0eJRzenKeB
         IomP8ZYz7w5NRC94IlURo5vCgZiHynePNLcodv2BGiCLyV1v9ZVgLhWwKWpdmpLAmRR7
         IkmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766595828; x=1767200628;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=+6n/yOP3bwyBec0cz6YcBSWP9PQeZ3Kxu2XaTVIzNOk=;
        b=Xi4mwjrbhRU7QB86rDTiFYygg2uAUal8oR6MBBn7aaQ1IDR8V0pkTkeCcz06UQW9FQ
         02WRQWo5N6pY89KryYU0DxRofG/kOYOB1XYJEfoeNbLBuUVSaarj1cOSeGop8jXlwzEd
         8NLnBkd+nlv8zMneW2f+l0fozvspRp8PPCrHhs3j15nCCVUhM2Yfxv/TqagzRKqpyEhm
         R512dPcPEjhKECNxX2XAMB+ZiWHap3DhyW8BoVlHMWBxZMS5k5nNUAYanq9NLoWdeYRx
         v1tDo48tTXAq7Yku/9Yh/4eBSeg3hh//tayZpjbDaM6WzxqZSmhimRiRoKmPpLkpxCJK
         I6Mg==
X-Gm-Message-State: AOJu0Yxr8U5teyWTQ6O5KFrDdgu7/cuBxwHNy+frWo774J9kDbvsnFBF
	Qeds/W+GpdpuaMY5nEDJSQQAIdRSVwndtw2uvsv1uAaoAfQ9Gzo9MwohRi8aAQ==
X-Gm-Gg: AY/fxX65YyluJbOV6Mr1wzL7g1K4jJz23G+Yyq8llB1pa2SdxIJDlPlQDR530U/6XLq
	Aqtfpga9cx9XwKRARWE53SGdWBFs8rEDCOX4I+3hPNG9w+lgvwMHWSJFE5aKOOTPnwSNVc8fn9c
	8Sgox9ZSDEHsVd+l9DewT36aL2ZR4Lknxd0zzrkglVuNPIKcvCvwzpnvA42ypzfmrsjBPiR5lma
	VKNPjSsEwbBKrmgKcjiAgCXOTbTd4ASv3U/VtmNSbAiYQFg12PpMZOs7eEEBZqokNVhXL3UrkKv
	joycJALXb+ZCcsFR4mwvi2E6Cx9mBN2epdnR9j08BHDsJCkejNB4l6xlpOPW6ekTwjfaBiiD2lg
	TeKB4zrE2n+Xb8nXZOM41vxMFxhGlQJE/EZqy5/ZC9PVtpZB4ZvU8xCPjXWDTQbWINAIu1wCLr1
	cco+9uuActqFACYmste9FXIY8sH2zY3R5uldtUWD0sGQu7x42Eky3tepo=
X-Google-Smtp-Source: AGHT+IGr4zgf4fLfUd2DDKV1cqCs5XI4c7sJYGYVApGkKJiqD3dWds42+WeKTJopx3ZyanuXcdWGLw==
X-Received: by 2002:a17:907:7eaa:b0:b73:885b:7554 with SMTP id a640c23a62f3a-b80371d5059mr1936670666b.45.1766595827506;
        Wed, 24 Dec 2025 09:03:47 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 12/15] xen/riscv: introduce sbi_set_timer()
Date: Wed, 24 Dec 2025 18:03:25 +0100
Message-ID: <84cf8fb2331614c6d0cc6e9030571f42bfc6d928.1766595589.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766595589.git.oleksii.kurochko@gmail.com>
References: <cover.1766595589.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce pointer to function which points to a specific sbi_set_timer()
implementation. It is done in this way as different OpenSBI version can
have different Extenion ID and/or funcion ID for TIME extension.

sbi_set_time() programs the clock for next event after stime_value
time. This function also clears the pending timer interrupt bit.

Introduce extension ID and SBI function ID for TIME extension.

Implement only sbi_set_timer_v02() as there is not to much sense
to support earlier version and, at the moment, Xen supports only v02.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/sbi.h | 17 +++++++++++++++++
 xen/arch/riscv/sbi.c             | 26 ++++++++++++++++++++++++++
 2 files changed, 43 insertions(+)

diff --git a/xen/arch/riscv/include/asm/sbi.h b/xen/arch/riscv/include/asm/sbi.h
index a88d3d57127a..c54dc7642ff1 100644
--- a/xen/arch/riscv/include/asm/sbi.h
+++ b/xen/arch/riscv/include/asm/sbi.h
@@ -33,6 +33,7 @@
 
 #define SBI_EXT_BASE                    0x10
 #define SBI_EXT_RFENCE                  0x52464E43
+#define SBI_EXT_TIME                    0x54494D45
 
 /* SBI function IDs for BASE extension */
 #define SBI_EXT_BASE_GET_SPEC_VERSION   0x0
@@ -65,6 +66,9 @@
 
 #define SBI_SPEC_VERSION_DEFAULT 0x1
 
+/* SBI function IDs for TIME extension */
+#define SBI_EXT_TIME_SET_TIMER  0x0
+
 struct sbiret {
     long error;
     long value;
@@ -138,6 +142,19 @@ int sbi_remote_hfence_gvma(const cpumask_t *cpu_mask, vaddr_t start,
 int sbi_remote_hfence_gvma_vmid(const cpumask_t *cpu_mask, vaddr_t start,
                                 size_t size, unsigned long vmid);
 
+/*
+ * Programs the clock for next event after stime_value time. This function also
+ * clears the pending timer interrupt bit.
+ * If the supervisor wishes to clear the timer interrupt without scheduling the
+ * next timer event, it can either request a timer interrupt infinitely far
+ * into the future (i.e., (uint64_t)-1), or it can instead mask the timer
+ * interrupt by clearing sie.STIE CSR bit.
+ *
+ * This SBI call returns 0 upon success or an implementation specific negative
+ * error code.
+ */
+extern int (*sbi_set_timer)(uint64_t stime_value);
+
 /*
  * Initialize SBI library
  *
diff --git a/xen/arch/riscv/sbi.c b/xen/arch/riscv/sbi.c
index 425dce44c679..206ea3462c50 100644
--- a/xen/arch/riscv/sbi.c
+++ b/xen/arch/riscv/sbi.c
@@ -249,6 +249,26 @@ static int (* __ro_after_init sbi_rfence)(unsigned long fid,
                                           unsigned long arg4,
                                           unsigned long arg5);
 
+static int cf_check sbi_set_timer_v02(uint64_t stime_value)
+{
+    struct sbiret ret;
+
+#ifdef CONFIG_RISCV_64
+    ret = sbi_ecall(SBI_EXT_TIME, SBI_EXT_TIME_SET_TIMER, stime_value, 0,
+                    0, 0, 0, 0);
+#else
+    ret = sbi_ecall(SBI_EXT_TIME, SBI_EXT_TIME_SET_TIMER, stime_value,
+                    stime_value >> 32, 0, 0, 0, 0);
+#endif
+
+    if ( ret.error )
+        return sbi_err_map_xen_errno(ret.error);
+    else
+        return 0;
+}
+
+int (* __ro_after_init sbi_set_timer)(uint64_t stime_value);
+
 int sbi_remote_sfence_vma(const cpumask_t *cpu_mask, vaddr_t start,
                           size_t size)
 {
@@ -326,6 +346,12 @@ int __init sbi_init(void)
             sbi_rfence = sbi_rfence_v02;
             printk("SBI v0.2 RFENCE extension detected\n");
         }
+
+        if ( sbi_probe_extension(SBI_EXT_TIME) > 0 )
+        {
+            sbi_set_timer = sbi_set_timer_v02;
+            printk("SBI v0.2 TIME extension detected\n");
+        }
     }
     else
         panic("Ooops. SBI spec version 0.1 detected. Need to add support");
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 17:03:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 17:03:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192962.1512073 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSHB-0006BI-JZ; Wed, 24 Dec 2025 17:03:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192962.1512073; Wed, 24 Dec 2025 17:03:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSHB-0006Aq-Dq; Wed, 24 Dec 2025 17:03:53 +0000
Received: by outflank-mailman (input) for mailman id 1192962;
 Wed, 24 Dec 2025 17:03:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jcWU=66=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vYSH9-0003b7-CD
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 17:03:51 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 843d05c1-e0ea-11f0-9cce-f158ae23cfc8;
 Wed, 24 Dec 2025 18:03:49 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b8052725de4so484940166b.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Dec 2025 09:03:49 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037ab7f7bsm1798927766b.18.2025.12.24.09.03.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Dec 2025 09:03:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 843d05c1-e0ea-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766595829; x=1767200629; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LTO1cOoieIDYOdGun+r3UsYomgD550c5mWk/kyaU2a4=;
        b=QjCWp3CdV+DoLKh/ULA4Nmql8c3AMT7xvflbHKZf60687J2Ega7TvOjFuXRVhBKwvu
         2dZ84oBhqRcBHVy1GhW3JdmgTQaent9xmWjWwJl71BOJg3V6SFYUvH98RB8PoomSBAeH
         CUD46v/aZ0jHiuoSS2iNIEB6otlck6DZb/bhQLW+5mdk2Pu4Fs2plpkguwkxGL8pS1qo
         pmHXKicH3paHkRNKTdJKTAf7PR8Uq/WDJ6z9yw2UkV5vjjKiygdY59evkePoD99s5BGg
         QUJmng3j6zmZ1noZzJBhGJgrjn2lkpcrP33OXrCmdOCr8xjeupvptoY9yP3m5iX4NBh2
         C5SA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766595829; x=1767200629;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=LTO1cOoieIDYOdGun+r3UsYomgD550c5mWk/kyaU2a4=;
        b=bcMUCwDg8n8Js++biMNE6oN6K7aVx42hwHK/LVsTn47uD9nIXRv8mmDLvPqqfmUw+l
         xIOtNtkYS2kKRmGSwc7HG2PGEHVbUoW83V7Aqyod2aI09ncCmX5a6eDb169ZhQP0lhz/
         eKrCDnFDaThXVu3ULyvdMODed2itnvxnSoXEuaQgfwLxqWYUJ3TfnCb+y/K3qR37j9wi
         WEP+n+nmF2Tq8NsZLWxITP8c1zM6tqEy93PIjG98Z3rtrmsdnO/dbqP3RVbXarbn5Bk/
         8twfJma1DEhiPmxbf+JB/AyVFRSe2EepBkenZm9alIclOnsLnQxe+/Z4asdBjMBIActO
         lGoA==
X-Gm-Message-State: AOJu0YyI5TZK2KszL/rgE46jH0ZaPrzH3Xh1dEn73aKQaSccwJPbL+N1
	8h60/ZZ2mmCsZqKSo1ea5zts/Dl+lgzfFkGvmso7XZomYCm0f833PHdDmhWUaw==
X-Gm-Gg: AY/fxX6kbyjuQG5LpDUXIxkpN8NJ91MYC5tNglgulrLik8eHG4NhZgvZDAs9YQSR0i/
	H3ARay/VEUP1gBBLJijxGKLbqbKkglwnxbNwkNXbNgtO8btkN9+NNnA2a5YJh6ys+ZG3mzqjsja
	v0og+dMrWoSaUKGUZSThV9ojQBIvvlGKCqlVn2vdMpa7i4oTtmh/Uedk5FIG7Ea7X5RE0Fu4KN1
	4RvlnfsBMUx1Jk12Wt0ekblPYkjOYnughCN3V70fZ9X/hbNFX0pyolBlVKOIXT+M2SxJ3axXmYn
	55CeXXbLFs+/8ansT6YChmBnCGLWx9w2KJ3PRJEtlJ+0pnr8dm4+TADBFNeO9jy3ksIiZZHzQ4T
	q8VMZNKvJLqRuloninkeXDyaDmnohHe2ADa9Xmjq58pYD+jLqYBBYu5EaVRw5o+s0Cojw8u3vte
	zQBq6pwCUlBuk4ie3KQT4bRtEXw6/hLkLWFdPfUcP+bua16KArMzDAHfM=
X-Google-Smtp-Source: AGHT+IHKRJ3z0OvQOS9JRD6aJDuls3Iyrs4+KvWrvJ864awhMFP6aCzaj6a9Ntxog0vGp55AnKTR8g==
X-Received: by 2002:a17:907:96a7:b0:b73:8e7d:4fa3 with SMTP id a640c23a62f3a-b8037051234mr2000256366b.32.1766595828640;
        Wed, 24 Dec 2025 09:03:48 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 13/15] xen/riscv: implement reprogram_timer() using SBI
Date: Wed, 24 Dec 2025 18:03:26 +0100
Message-ID: <43249171def325c49541ebdac141fe99d159b60f.1766595589.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766595589.git.oleksii.kurochko@gmail.com>
References: <cover.1766595589.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Enable Xen to handle timer reprogramming on RISC-V using
standard SBI calls.

Add a RISC-V implementation of reprogram_timer() to replace the stub:
- Re-enable the function previously stubbed in stubs.c.
- Use sbi_set_timer() to program the timer for the given timeout.
- Disable the timer when timeout == 0 by clearing the SIE.STIE bit.
- Calculate the deadline based on the current boot clock cycle count
  and timer ticks.
- Ensure correct behavior when the deadline is already passed.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/stubs.c |  5 -----
 xen/arch/riscv/time.c  | 31 +++++++++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 68ee859ca1a8..d120274af2fe 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -21,11 +21,6 @@ nodemask_t __read_mostly node_online_map = { { [0] = 1UL } };
 
 /* time.c */
 
-int reprogram_timer(s_time_t timeout)
-{
-    BUG_ON("unimplemented");
-}
-
 void send_timer_event(struct vcpu *v)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/riscv/time.c b/xen/arch/riscv/time.c
index e962f8518d78..53ba1cfb4a99 100644
--- a/xen/arch/riscv/time.c
+++ b/xen/arch/riscv/time.c
@@ -4,8 +4,12 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/sections.h>
+#include <xen/time.h>
 #include <xen/types.h>
 
+#include <asm/csr.h>
+#include <asm/sbi.h>
+
 unsigned long __ro_after_init cpu_khz; /* CPU clock frequency in kHz. */
 uint64_t __ro_after_init boot_clock_cycles;
 
@@ -39,6 +43,33 @@ static void __init preinit_dt_xen_time(void)
     cpu_khz = rate / 1000;
 }
 
+int reprogram_timer(s_time_t timeout)
+{
+    uint64_t deadline, now;
+    int rc;
+
+    if ( timeout == 0 )
+    {
+        /* Disable timers */
+        csr_clear(CSR_SIE, BIT(IRQ_S_TIMER, UL));
+
+        return 1;
+    }
+
+    deadline = ns_to_ticks(timeout) + boot_clock_cycles;
+    now = get_cycles();
+    if ( deadline <= now )
+        return 0;
+
+    /* Enable timer */
+    csr_set(CSR_SIE, BIT(IRQ_S_TIMER, UL));
+
+    if ( (rc = sbi_set_timer(deadline)) )
+        panic("%s: timer wasn't set because: %d\n", __func__, rc);
+
+    return 1;
+}
+
 void __init preinit_xen_time(void)
 {
     if ( acpi_disabled )
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 17:03:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 17:03:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192964.1512085 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSHC-0006Tm-UV; Wed, 24 Dec 2025 17:03:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192964.1512085; Wed, 24 Dec 2025 17:03:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSHC-0006TO-O8; Wed, 24 Dec 2025 17:03:54 +0000
Received: by outflank-mailman (input) for mailman id 1192964;
 Wed, 24 Dec 2025 17:03:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jcWU=66=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vYSHA-0003b7-BD
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 17:03:52 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 84fad15a-e0ea-11f0-9cce-f158ae23cfc8;
 Wed, 24 Dec 2025 18:03:50 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-64b7a38f07eso7666681a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Dec 2025 09:03:50 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037ab7f7bsm1798927766b.18.2025.12.24.09.03.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Dec 2025 09:03:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 84fad15a-e0ea-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766595830; x=1767200630; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xHV6F5htLdht8yZyJ/VwtJxiGcps1XdDoDnEGPAzWMU=;
        b=VYo6zE9bFqe4p5SdBZZ5wLqzpeT98++7+dfo3SZStcT0P5PnWsoegw0dxpZwtmLGW+
         275CsL0O5VIdPqYHt4DKMRW/LFDBepqg+Rz9ZQvbP3FWI/d+CydD33IcHwtYfrFBeRsb
         hODY3nOlkLT2ES5/wDbSz8NqZjhwoGJH8XYSNRSDkUCdKJcTcYNxsydczEwKUa2dKvFy
         oK0KEWfzE28cowcAkYWLUqRP5L++VhpZl8iOOPhyTE2jtBJB+Oz26Z7prT6S3kUaYrm/
         tMlt4iQ/BTzqA5L0Hk6Q5/jMvlZITDxA0jJW3lC6Qknb8OB9InCdZm5GgPUIW7pPBpNa
         NRXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766595830; x=1767200630;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=xHV6F5htLdht8yZyJ/VwtJxiGcps1XdDoDnEGPAzWMU=;
        b=Yu9e0h6S3P8n/tW0dDW2UHuH8j0RsqEw6Q8dSlisjpojbFN0B/MXI0VE3qLNdrxdK/
         bT1UJnzGS2zi7lGI8Yt2uCgeYbwT3+mjhhbo/o5HAt0yDF5Ut84Am8qd65SlqGrzQOQ1
         bfjU+4t3dEwHPO4M0GP1xox3YDH29NhXpgs0CpHEpzonlxfRNM6uFBwGuupfpF31BmPU
         hrVNxsF1oYO1/nnH9+yVH6GcjpibtUKBGveS1wYJg1UlJSjPnOwhitajI1+OPYUt3Tag
         SGMcHkkbmgrXjiP7Y7Mw51m3HafCywqpONbwkpUigmbgGQiFjgko4takBC+NfZ0hZ9jq
         n3jA==
X-Gm-Message-State: AOJu0YyYDs1iC65wRuuWMD1OBTox8qGp2fd6xRpn3H2/73XSRmvgxtrR
	tvUHyEM3Z9HAqUuVBLhnmTwgfI5nyimkwAzc8EUsugaF98lZY5ZN3Sspy7mKzg==
X-Gm-Gg: AY/fxX4mLv7aa6IXJlYQO2RF1df4gNxn8ROYo+YJajzEcF2iPSQYANAbI1z3FPOUSvS
	c30uPqdwt4atMeCRuTYI22RnmABCu1bJo/C38/0ksqxKA4FQdgf+2Q3f/CI38pySwyrksiv6i3/
	hqKxElESUK76OHDftPuSBo9/KqZUzF5chPCAXTe0kyYWD0N+/yUor9uhT56xGenU/bcR+xRAyzg
	mjX0BILplc96V8FkgXMTtavCxVrNS6aZC1ksaNVYUd6vmVqvw26Khy7UJA3QycSZUDcyoAxcnm8
	Y06hTmF5g6LvkRqKPsajVx/gaLAs7F4XRd4cle56qGq7O63NicKtz94Nz792WhvGrJ3oAst9TFM
	nisH4aRNyF+GoBDgfCviShEKHWPT9pyG2qYTubnLRXNj2uo1XpJDotOTBzMFoWvKWyqtmCegKsP
	5NEM5Yj616T1+GvSHt2u+nXFA2yO/v+w1CsEauGaMH/Vd+yzbTUzOsjJo=
X-Google-Smtp-Source: AGHT+IGCPZmbf6qTvckKYI4m1PncXD0B+3c5MgjqTyQZjgApVhhOZGr5y4+53c6unhHJQPTgfm0J4Q==
X-Received: by 2002:a17:907:97c5:b0:b6d:3fc9:e60c with SMTP id a640c23a62f3a-b8036f10dc8mr1977178266b.20.1766595829888;
        Wed, 24 Dec 2025 09:03:49 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 14/15] xen/riscv: handle hypervisor timer interrupts
Date: Wed, 24 Dec 2025 18:03:27 +0100
Message-ID: <c63eef564d0d350f009e253b24b567488e47eb13.1766595589.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766595589.git.oleksii.kurochko@gmail.com>
References: <cover.1766595589.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce timer_interrupt() to process IRQ_S_TIMER interrupts.
The handler disables further timer interrupts by clearing
SIE.STIE and raises TIMER_SOFTIRQ so the generic timer subsystem
can perform its processing.

Update do_trap() to dispatch IRQ_S_TIMER to this new handler.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/traps.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index e9c967786312..5fd12b1b21c3 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -10,6 +10,7 @@
 #include <xen/lib.h>
 #include <xen/nospec.h>
 #include <xen/sched.h>
+#include <xen/softirq.h>
 
 #include <asm/intc.h>
 #include <asm/processor.h>
@@ -108,6 +109,15 @@ static void do_unexpected_trap(const struct cpu_user_regs *regs)
     die();
 }
 
+static void timer_interrupt(unsigned long cause)
+{
+    /* Disable the timer to avoid more interrupts */
+    csr_clear(CSR_SIE, BIT(IRQ_S_TIMER, UL));
+
+    /* Signal the generic timer code to do its work */
+    raise_softirq(TIMER_SOFTIRQ);
+}
+
 void do_trap(struct cpu_user_regs *cpu_regs)
 {
     register_t pc = cpu_regs->sepc;
@@ -148,6 +158,10 @@ void do_trap(struct cpu_user_regs *cpu_regs)
                 intc_handle_external_irqs(cpu_regs);
                 break;
 
+            case IRQ_S_TIMER:
+                timer_interrupt(cause);
+                break;
+
             default:
                 break;
             }
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 17:03:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 17:03:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1192965.1512090 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSHD-0006aG-Gy; Wed, 24 Dec 2025 17:03:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1192965.1512090; Wed, 24 Dec 2025 17:03:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSHD-0006ZK-6R; Wed, 24 Dec 2025 17:03:55 +0000
Received: by outflank-mailman (input) for mailman id 1192965;
 Wed, 24 Dec 2025 17:03:52 +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
 <SRS0=jcWU=66=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vYSHA-0003CV-P6
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 17:03:52 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 85788b4e-e0ea-11f0-b15c-2bf370ae4941;
 Wed, 24 Dec 2025 18:03:51 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-64b8123c333so8864650a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 24 Dec 2025 09:03:51 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037ab7f7bsm1798927766b.18.2025.12.24.09.03.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Dec 2025 09:03:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 85788b4e-e0ea-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766595831; x=1767200631; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=R6hiHqwl+Z7Yh4uAVa4kDT1XiFyPodQcTQAl+wvwf0w=;
        b=XMALNBWcjzpRY9YOG2Vq53gnTeLAkbsnjDDqnc8OX9fy4TS7ewbiIou6BRaVcWHGor
         LnzI9weig+GZ8evxyotaZwrQ9PmCGhtptWul0MYTp1oV/PCYecw/b8pZd89SUfCUo/4a
         eRqUE+34U+ogkGkFJEcPE5A/QS7BOz1zZakNKrjuCI6klsxcDSJ+mNlFuXaOlNIV8LJB
         5lY5skjnlavdjvsjNwmPzh6rUiJA0sso6p0kxTHfece16DkFJiM/70UNdWcYBo30g0Y8
         MdE7QJoUMWImF2wHttUeuepV7jZfuk8hgQ0+M4Izc/ZCnOD/u8cvqPUCYyyjCxR22Q6o
         /b0Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766595831; x=1767200631;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=R6hiHqwl+Z7Yh4uAVa4kDT1XiFyPodQcTQAl+wvwf0w=;
        b=n6vBdwTYOmcoXWG0kPIcRv+f0jJSHS3lsUNkdS5X8F+BruBSSF1MwJTTJgFuuMq9d3
         XSATp4Dq4gcdIxcjge5pmqcPFwBh3RXueUWaFLrpesDLV3vqy13ZwW8sseNm4IqphnuM
         sltECfcTtdwOGBZ3dYX93pwN+K7YQMfn1drUdF9njg1E2mbI81kbyJyGCZZBqpE6Q5cL
         yau4wu98H6YE5IkLTJqdqZpaSgrRy9uCNM7RoobMfiyp0p35mqtaQw7k50f/CqjPWgz8
         5P1eIkzUOXpOyueehpuOLD4YPxK+KB2otEv6sy4HRBbLphZ5GBNyF5ezQJTndYX2HCjR
         6GQg==
X-Gm-Message-State: AOJu0YytEL9I6dhZPg53FIBVKb4y7oIMi0Pmy5gGw9GoeWgNL+KYQXpq
	ci0bvmQocoR+hvFhPZyrm7amaGHs1pim488dVfFjHMgP/TR4z+r3FzgqeAGkVw==
X-Gm-Gg: AY/fxX7/9Ilnyr0mn+M51tMYOvZpJwg5vGvT9VJd+tM/yir9J/NyBSU1/TkQe4sL0D4
	Y/fUSQBQmeeBQvWVxSVFA1Ajd9CO63k2Ednq+hL/XxE1QQe4wI8RQEbHkPPQDWssn6D1Wg4Y6gw
	VSlhdj9niqKbTLp+FGcKfrDysM+ieYDQXWKEBMmk9z7SdtFs7lbbPgQ5h+sA7nANeAXMUJk+y+x
	1ODiFM1EDieMRqutsFZWuX3W0ERjKbINu6qS1geeXQg/IXeILZ+Wig7yWmixd5L0WnsRCxpTyK6
	BejOd1dBPYsa8Zn8fZ7Pi6GyM9wa5DUDSOUWh78QYXOQQ4P0om5EtIY5Sp2GmwRqEO5fA2b0oy0
	xIkVYPrmHVXglR/dGdByY5MsSHfWIcQtCQUxRH2A7nmJTsPD3mw+w0syMDsVnJ2D29JEfTVCUXp
	fZ2nBgTmsCzy4bOyuNB/bOd+pNV50DW8MnRPO0nWAbFJQaBUVS1S1XKLo=
X-Google-Smtp-Source: AGHT+IFZDDoqLAbYXkPFbUkXKiCs+Oiox6J1OyndpU35+7MxaU1dUMcYECbzYLhVMAVG5FUxsi2txw==
X-Received: by 2002:a17:907:1c27:b0:b75:7b39:847a with SMTP id a640c23a62f3a-b80372228e5mr2019898966b.60.1766595830803;
        Wed, 24 Dec 2025 09:03:50 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 15/15] xen/riscv: init tasklet subsystem
Date: Wed, 24 Dec 2025 18:03:28 +0100
Message-ID: <7fd154cda45466ca4bd425bc05d191caccc7d96d.1766595589.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766595589.git.oleksii.kurochko@gmail.com>
References: <cover.1766595589.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As the tasklet subsystem is now initialized, it is necessary to implement
sync_local_execstate(), since it is invoked when something calls
tasklet_softirq_action(), which is registered in tasklet_subsys_init().

After introducing sync_local_execstate(), the following linker issue occurs:
  riscv64-linux-gnu-ld: prelink.o: in function `bitmap_and':
    /build/xen/./include/xen/bitmap.h:147: undefined reference to
                                           `sync_vcpu_execstate'
  riscv64-linux-gnu-ld: ./.xen-syms.0: hidden symbol
                        `sync_vcpu_execstate' isn't defined
  riscv64-linux-gnu-ld: final link failed: bad value
Therefore, an implementation of sync_vcpu_execstate() is provided, based on
the Arm code.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/domain.c | 23 +++++++++++++++++++++++
 xen/arch/riscv/setup.c  |  3 +++
 xen/arch/riscv/stubs.c  | 10 ----------
 3 files changed, 26 insertions(+), 10 deletions(-)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 8a010ae5b47e..574a5a34a389 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -141,6 +141,29 @@ void vcpu_kick(struct vcpu *v)
     }
 }
 
+void sync_local_execstate(void)
+{
+    /* Nothing to do -- no lazy switching */
+}
+
+void sync_vcpu_execstate(struct vcpu *v)
+{
+    /*
+     * We don't support lazy switching.
+     *
+     * However the context may have been saved from a remote pCPU so we
+     * need a barrier to ensure it is observed before continuing.
+     *
+     * Per vcpu_context_saved(), the context can be observed when
+     * v->is_running is false (the caller should check it before calling
+     * this function).
+     *
+     * Note this is a full barrier to also prevent update of the context
+     * to happen before it was observed.
+     */
+    smp_mb();
+}
+
 int vcpu_set_interrupt(struct vcpu *v, const unsigned int irq)
 {
     /*
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 9b4835960d20..e8dbd55ce79e 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -12,6 +12,7 @@
 #include <xen/serial.h>
 #include <xen/shutdown.h>
 #include <xen/smp.h>
+#include <xen/tasklet.h>
 #include <xen/timer.h>
 #include <xen/vmap.h>
 #include <xen/xvmalloc.h>
@@ -133,6 +134,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
         panic("Booting using ACPI isn't supported\n");
     }
 
+    tasklet_subsys_init();
+
     init_IRQ();
 
     riscv_fill_hwcap();
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index d120274af2fe..2b3eb01bf03c 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -91,16 +91,6 @@ void continue_running(struct vcpu *same)
     BUG_ON("unimplemented");
 }
 
-void sync_local_execstate(void)
-{
-    BUG_ON("unimplemented");
-}
-
-void sync_vcpu_execstate(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 void startup_cpu_idle_loop(void)
 {
     BUG_ON("unimplemented");
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 17:07:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 17:07:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193083.1512105 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSKo-00036i-V8; Wed, 24 Dec 2025 17:07:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193083.1512105; Wed, 24 Dec 2025 17:07:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYSKo-00036b-QU; Wed, 24 Dec 2025 17:07:38 +0000
Received: by outflank-mailman (input) for mailman id 1193083;
 Wed, 24 Dec 2025 17:07:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jcWU=66=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vYSHB-0003b7-1D
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 17:03:53 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 852d0b02-e0ea-11f0-9cce-f158ae23cfc8;
 Wed, 24 Dec 2025 18:03:51 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-64b61f82b5fso8046046a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Dec 2025 09:03:51 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037ab7f7bsm1798927766b.18.2025.12.24.09.03.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Dec 2025 09:03:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 852d0b02-e0ea-11f0-9cce-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766595830; x=1767200630; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QwTK78uer5FqwaU5f51ewDsBN5tAldzPPMkL2zu2Q7s=;
        b=hXvsCXcI4svtdYfylJXCsw4dx8MxbJd7aWco5vwlCob+Lwtu2tK8/C1AyGIn704hzB
         F9HtV6k91wVpOEjtdTmdPXtfGB5z990AMFbQTrCsZ4twhxOnoqbZ7oSuJuL9GAQNcJR7
         S6okmXKSUvOo4wxERaP1hxGk7dgVi9P4ZM7t5s6LVNVgfeyK9yX/+f4yy8+qaaSrsS3H
         uCqszC5mCh6QuwWtAzgRGxWxK2IX2LwcbaD0aL95KAhCV5tKnjg4jOn/SReJjdIX+j6h
         qv+dXiyNtCJIhRV3eBP2xGjP5SrI+5gIEH0pJ5QU4WT0dULK7wDLBW0+8OXDCbI46mt1
         7Agg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766595830; x=1767200630;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=QwTK78uer5FqwaU5f51ewDsBN5tAldzPPMkL2zu2Q7s=;
        b=Tu6rWkoxnMrLwF6chMe65tpwIEuAO46YMpfj5XyfGBEyM8/5uhNAIjhlnvczUtejSm
         TqA1HqdxWb15qwQoOQe4yeVLkTGXb/oETGZNY94ukhxZiuQTX6f/nYUkn/tj3CPLQXjS
         0927dTWd3gOixz8xGJkrZkhMtLSDue7GttrJ2ILARXueBTzCqUWJ4FP6CX7mx+dlwniX
         HkKYHpqCj5vCNkWOTzv0bcQK4LpiiTvNqEd1gefJWNgkAZodlEQeTzesdD4l+4z9FpuI
         DQLNdiX8UfdDT8YmlhkZQrzZ42aDdnn6QMhI2HJt/1xQifrKb3Jo36IwLNRT8KkFBQgO
         5lMg==
X-Gm-Message-State: AOJu0YyOOq+OqxuEtbvkr+NNFWXYoJ+R8gHFcRxZ08jF4tzwSzkazrHF
	W6JYK2jQ0jyq1CvYeKaFAfXG12sgfwoZsTkpBP61FlLS59q2Jwugczf4pehksA==
X-Gm-Gg: AY/fxX48F5hCg1CoVoFwIAUCNhNmpZIMGwzMuiB/2yQFJvL0XJ6YRCfvdMgRJVTT2gi
	arLaLfDhmUjkrtRfnzTB19uirqX2xB56Vm3QN/gkC4MSsoNxtT2YM+m7SlxyW+x4XD9ID5LXkw/
	TOGQFLAU6OHhbR5ww5xdFjgFqYBTW2GA29sR0ggrBwYmqO6uz+5rfRTgC/GvBi+NeV7rIDM3CU6
	ahrW67gSRD7aJIHIRLJaou9WpOBggHNCM2zOwLmJykw3Yf5nPmvspAyAEgvh8ORepRJm1/mu83B
	TJgjx5DgYHYKBUSPiWCJf5k8uRvKC7MadhjvWj8E9vvHOoBarouH0CMK+1Qppw0+gbeX3jAO2Jd
	o5e5YyOOjdwuO36ZW+XP3zWR0Mfd8pGRf7nb/VyRnSkFntR6FPowdJl6AupIVSMH+WLtUTdGmzb
	K98jFN+7N+QDbEvTxcwiDfQ5ereDWlIOeG6FJVqTrpdazUwIQ1+izA7N8p7TD5UzYAHQ==
X-Google-Smtp-Source: AGHT+IGl54jmOAYUGkIE1+LHb8Ib0Ru38nQPIsZR8jHbOJogShCm59AuodegHYJUA176Df1F0Piu+A==
X-Received: by 2002:a17:907:9801:b0:b73:6838:802c with SMTP id a640c23a62f3a-b80371d8c9bmr1801488066b.42.1766595825667;
        Wed, 24 Dec 2025 09:03:45 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 10/15] xen/riscv: implement SBI legacy SET_TIMER support for guests
Date: Wed, 24 Dec 2025 18:03:23 +0100
Message-ID: <dfead0f29d2b93350acc5a20b9f75d534dde5d25.1766595589.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1766595589.git.oleksii.kurochko@gmail.com>
References: <cover.1766595589.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add handling of the SBI_EXT_0_1_SET_TIMER function ID to the legacy
extension ecall handler. The handler now programs the vCPU’s virtual
timer via vtimer_set_timer() and returns SBI_SUCCESS.

This enables guests using the legacy SBI timer interface to schedule
timer events correctly.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/vsbi/legacy-extension.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/xen/arch/riscv/vsbi/legacy-extension.c b/xen/arch/riscv/vsbi/legacy-extension.c
index ca869942d693..7eb3a1f119d8 100644
--- a/xen/arch/riscv/vsbi/legacy-extension.c
+++ b/xen/arch/riscv/vsbi/legacy-extension.c
@@ -7,6 +7,7 @@
 
 #include <asm/processor.h>
 #include <asm/vsbi.h>
+#include <asm/vtimer.h>
 
 static void vsbi_print_char(char c)
 {
@@ -44,6 +45,11 @@ static int vsbi_legacy_ecall_handler(unsigned long eid, unsigned long fid,
         ret = SBI_ERR_NOT_SUPPORTED;
         break;
 
+    case SBI_EXT_0_1_SET_TIMER:
+        vtimer_set_timer(&current->arch.vtimer, regs->a0);
+        regs->a0 = SBI_SUCCESS;
+        break;
+
     default:
         /*
          * TODO: domain_crash() is acceptable here while things are still under
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 19:40:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 19:40:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193145.1512115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYUj1-0007bl-E3; Wed, 24 Dec 2025 19:40:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193145.1512115; Wed, 24 Dec 2025 19:40:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYUj1-0007be-BT; Wed, 24 Dec 2025 19:40:47 +0000
Received: by outflank-mailman (input) for mailman id 1193145;
 Wed, 24 Dec 2025 19:40:46 +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
 <SRS0=wdbR=66=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vYUj0-0007bY-5K
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 19:40:46 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6f87be5d-e100-11f0-b15c-2bf370ae4941;
 Wed, 24 Dec 2025 20:40:44 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by IA1PR03MB8045.namprd03.prod.outlook.com (2603:10b6:208:595::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.11; Wed, 24 Dec
 2025 19:40:41 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9456.008; Wed, 24 Dec 2025
 19:40:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6f87be5d-e100-11f0-b15c-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AHmS0Qxv8NM8ogVJ214CRTiklg+9YeT5PcrjQe1BrnXUh5QbOZyagyOMXMfcy+i9Rt2lBQOxO/7je5SnGwES5mpE6zQAZsRd7aKLKbHCSyc7jWNq9Nbo1PGvnIcfeNId2YFl3Ic6JEt4Xnnw+INc0hOv/BFfJfLp6tGNIIXPKEXMcejy8dRlB+COFSPLHdpln7aIOF2dRxtRG8YdvZxeyU5wK3lC2XyRw9/S5595p0cwIz10NMg2xPbazwT8MJ0XbRtCviEKlm4303J4BGF84a4dbDuXZF6llRHk3cF2HJ6Kk1ISCpv6TL2hiBKCqHEDEXty8BT24gNZgluy3tqdhw==
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=j0oWZInO9D34HewG0R9RMvVW/2/72U7bRMWj0mVYbtM=;
 b=EIfIVVXjZ5fU49oQoC7xMwtCJOUHaAFT7NVRTwiYcdhN2wdR6g5rPq9ntOvIxrfIU2AQwPWeUAW6joeX6JSMdIYspW/SUoKVJzq/r3PrmtZddntxk+tBVRJS59liuRb8+KEggnTJ+lAWiCL4yvgm9BSup7iXCgLXusmcI5e7luMjMmZmnKqxNZZ8VnTmv4FVTsyP3NwZT87+Tv+M4addSJ8OCwvpmz7QZwi2kc9ewW+6L0REPD18JQFAtPxdpYVpEHYdpcc//WFdWJm6nj0F3HmCSbwh5zZXxG9WeZ8cc9ZdDwSsgoBxXXw6YSZ6ytwb+pQUWi8OMoAAIDZeen68UA==
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=j0oWZInO9D34HewG0R9RMvVW/2/72U7bRMWj0mVYbtM=;
 b=ApBOUq9ZrQPl/DBlITlSOjkJPh9QebIAad/q1lRYSU80em5c4PfE+VPpRZPypKGM9UEm584Nbn6kXiFNRv8iijiGOWg69C4R2XPHa9RQHkel6zH5hSKy62eZ9h41JGoq2uvp9KD6+OzX/f4WZVEoXgKBPYlGaS7MSI8j2B0LUB4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 0/2] xen/mm: claims related fixes
Date: Wed, 24 Dec 2025 20:40:33 +0100
Message-ID: <20251224194035.60173-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PAZP264CA0099.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:1fb::7) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|IA1PR03MB8045:EE_
X-MS-Office365-Filtering-Correlation-Id: fa7b76a9-2b2f-47d8-57a7-08de4324527d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?R1dkY3NhUTgzYmZSZTNVMjdBa0dQalFFUVdidm9oRDBlbDdHU081RUZXNDdm?=
 =?utf-8?B?bFBRN01FWWNBdEZMYWFTekJwTXd6aFVuVm5pZGhYY2VmMmNvWHZTaXp4NGlD?=
 =?utf-8?B?aitNYXNCM0taUG5UbUp4R3QweHA2eWZsbE9OMzNGdHZwcVkxWG9OL0FtaGpu?=
 =?utf-8?B?UGEzZkdlVW5KVG5Eamd5N09nbi9wcG11Ni8yaVhwZFJTN0xTeGJKWERFT2hs?=
 =?utf-8?B?Rm8zeXVHL0ZnMFVRblBrMjBSU3g1c3BjUnFQcHpXRjM4aU45N2czVFl1VmlM?=
 =?utf-8?B?bmd0L2x3YWhydFhDUzdpM3AxZjhNR1dSNUQyWXczYytBQU5LbWp4bnZuUnhT?=
 =?utf-8?B?dHhTWmdCTzhkSjVEVVFJaTczWDMzMGVLbE5tbXd0VmIvSngvOWd3UFJYajMz?=
 =?utf-8?B?K2p1dmxVZVJlbS94WnZacGZzZUJQNWhuRm5qU1lSNTdhRVAvRFhqd2VUdnRG?=
 =?utf-8?B?T1Y2RnRSanJKdHlUT1R3ZHltaCtNTG56NFNlRURXOGlPWFljWUlBZXdhZFlq?=
 =?utf-8?B?VlpwOFNkdTFXRTVlaExDT0ZpYWw3bjdJZm9VQU1VWXhLUFo1M3VpV0sxVEZG?=
 =?utf-8?B?SzB6a3NGMUtMeFgxRElld2lVcXpRRmVLa1hRQ3FVbXJTUm43VUwvdURVSlRU?=
 =?utf-8?B?YkU4cjh0M2x5OFhkTndUc0wzOVNxU2JqYmRjOElDWXYxZ1lrN2w4OWg4elZ1?=
 =?utf-8?B?Y3JYdjk1cTMwdmlLQmZzc0kvWXhDcEpWWEVWdWFmQ2o3Tm9DVW9TeG44U1ds?=
 =?utf-8?B?WWVKUEcxL3dHL2FkUWxnTy84NTlzM3AwYk4rU0ZBTnZOb2JXUTJ3Y21XZmhO?=
 =?utf-8?B?Q1RDL1NneTdjbzBWRUxpcEVTbUFiMmE2UmhLY05LNG51aWdCRDlyWThjeDVI?=
 =?utf-8?B?cEZqSmxCVVQyY280aHNOUHUxYjU2OUlmVHFyUFA1WmtpVm1CSU1Fak13YVZI?=
 =?utf-8?B?NnNBdXFFbzQ3YVpRREJuMVVnSERqTWtHSks2ei9rVy9SWGFyNEpFbDJvMnBw?=
 =?utf-8?B?aUQ4a3MvblAwR2xhM0MvWmgzNjFUVjdSajFJa2E1ODBDUGtTWkJHbVNPTTBZ?=
 =?utf-8?B?a3czUjY0L2NPd1J3T0pkSGRhK1l3VXFaMVE2cUZNWUFIREZxMkpwNUJBK0dF?=
 =?utf-8?B?RDN5LzEwZHNMS0dvSURkSjljVFU4K1pUM2lnN3dUU2ZXL282L2lYdGQ0elZM?=
 =?utf-8?B?bXA5M2NtZDZwVzkxekVZVmZQWFEva3FvcmVDVi9IemNtRytWSlVzV2kzUEZt?=
 =?utf-8?B?NDBQcDdMWTFPb1VucnpUOVZXWDU1bGxYUzZWVzF6UW9DclpneUQzNGtHS3Jl?=
 =?utf-8?B?cC9rRDhyQTE2ZjVISDZCcEJDMDh4aWZTY1JlbDJNdkVtZ05zcXE1TjIvZXNu?=
 =?utf-8?B?Wk8zTGJ5MXNMRjZFZ0pJWUNrRUYvaDJwSG1DU2J4UUZONm1VQlQzVVlnUm9B?=
 =?utf-8?B?dk5TRzNIeTRHTkxnYkZGOU10bUIzTDNxTkZtRDBhY20rY3p0NDlaOGoyd25w?=
 =?utf-8?B?ZXc3M05OdlRCT0R1UkdxMHFzYU82UnFUaEpSRGJUWXNuaXpBQ0l0M0dvOTZr?=
 =?utf-8?B?U2YvUFVQbU51WTFJM1RkVDdGcTRacWp0UFJ2aTRQLzg2WHNQcDZxK1NDU2Ry?=
 =?utf-8?B?RHgxK1Znck9xRjdBSUVSeUQ0MmpkNE1RRFlVTTcycjJtYXdaeERoSWtKSzhz?=
 =?utf-8?B?WVhXZ2lIUndLbzYreUlGRndKaTh0cmdiTnp0a3ZwME5VQnJtSVlHaE40dk9L?=
 =?utf-8?B?dVZmOTlNQWkyd2RKYnBZdmV4SzNDRTZscSs1TGlacTlkbzRSclBOY0UyZmtu?=
 =?utf-8?B?WHEyNVFzNmY4Q3g5SHlYT0lnWStWbkQ2OEtuY1VKMXQ0ZHJiL0ErNlo1RDIz?=
 =?utf-8?B?c2krMXVUdzIrLzNwY21Fck1GY3dkaXFhd1Azb3lrcXc1dUtRYmltdnIxQUFm?=
 =?utf-8?Q?b//jqfee+4cti2RRsxpwiHi4XzJSHQfg?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?a082V1lPY05FdWkvdHJRTkV6WnhqM2VaNHJrL1ZSbkxqVGRqNmhSZERaOUVB?=
 =?utf-8?B?MWYxU2UxeXpudWhOSUZydk5SaEE4ZDVUcTRlcCtJSFAxYUlDU1RaS0dTVzBo?=
 =?utf-8?B?cTd4K2NrMjFKZTFGREFDOFNYNFVuWms4cXdKNStsc3hnS0hIRDZMckFKN0Ji?=
 =?utf-8?B?UlNxTmc1aThNSmc1RHBFS2lzU2NoSFdFbk1ZN1FQT3pBY1dlMFRFY1hnditz?=
 =?utf-8?B?VWlDSmNRTHVpazVmWFFOaWttRnhhNUZnZWRNTStBdmNzR2ZxdjZ5Y0lpcWRl?=
 =?utf-8?B?eUV1QlNoc0tGRmZmVWxjYnVmSG1YRks3VUF3RGZseVJEbmRUWEFVQVhGOTI4?=
 =?utf-8?B?eHd0Qy9JUHFxeStjRFpqL3JzbVN3QjhkV1lqYW1QSmdnS1lCWEdFSHFEaHRQ?=
 =?utf-8?B?VVk4R0xBMEdCd2FvNmJ3NCt5d0ZLdUV3RCtEWFdKUFJaZmtQVlRBYkdsUisx?=
 =?utf-8?B?VlluTTdITCtQa3ZlRHhuVkRPWG4rN0JhSk8yN3JoeGsxYXJnbWtzb3R6VzFY?=
 =?utf-8?B?a3BwbEU4YS9XenRSSWtoNm14OTg0UHlMSVRkZ2p0QkJTVW5PQUx6bDd6V1Zh?=
 =?utf-8?B?YVk1MFJzZ21CNlVwV3dMZ1JvYkl4empqYzJqWjhuaGMrbVdiM1IxWG1tblRE?=
 =?utf-8?B?T1lUekJ3NzBEZklXVmdhUkI5eVdwOVVEOEJHQ3hXdmt0dVVHU3BKSDFyeS9t?=
 =?utf-8?B?NDN5WnpwUEZFR1M4RFFIejJiRGgxdXIvaElHUk1sS2Y1SEpudzg4QitDdWVE?=
 =?utf-8?B?RGxGOGhqcmlTQ1RxZHFaRXlzRWd5V0doZ0k1UFA2TDZhTGFJVFhUeTY3c1ZW?=
 =?utf-8?B?L0NXekYzZHdpeGdYaHNPeFFPaHBEN2w0Q05NV1orcEhpUmtlWEtHcUxIeWx0?=
 =?utf-8?B?Wkl5amVTU0g0L2FjRkExclZZQXp1NnJOY1JGc0tFdWVGOHZLd21NRGZwekor?=
 =?utf-8?B?Y1IwSmM2Z09TbnhIWU85UXJNbTQxV09zWEN5T094RTdLWithckxvdWY4T0c0?=
 =?utf-8?B?SFFmR3o5RDJ1OVFZTndzNEdrUFFvOUxEUWlVSHVWdDNkSjZXRVlsRWg2V2Nq?=
 =?utf-8?B?WUlrTmpxZDhPTUg5dnFqcXMycDFqTjN6eEFIWGJUeGNXenFWMG9wRzlheWVz?=
 =?utf-8?B?MUh0ZExkUUptVUpzVzQvUnE3YkhER3BJNkMvM1Z3Rmp3a2VDWnFFM0tCVjBQ?=
 =?utf-8?B?MVNYRERnemt3TTlVS1J5dlVTalRNcStPUTlhT242b2lQM291WVdscC8wU0tY?=
 =?utf-8?B?Q25XQ2g1YldkcUJzQVVrYTQ2b3BtWHdRTjRqMzFzVHp5U2toMmcxbGljdUZ5?=
 =?utf-8?B?OWQ1VUNJUVd6VTVvSHpQMWtseXFaTXI2Rmltb2VrVXhhTkhZNVprSlJqd1pv?=
 =?utf-8?B?Qmk0S3ZKOHJhUDlDOFlxYVl1Y0J2SHcvWVZMN1A3UzdzeVNvNy93SnAwd09H?=
 =?utf-8?B?SmxrNUpFbURYNStlTmFJd1VFdy9WNzcrWERDdnYzcUkyMitTcVROZi90cE9K?=
 =?utf-8?B?YjFTdEE2dis2V0tqZHQ2OWE4aWZjSW9rWm9OZGhZd0NHUFM4UUY3aGFuSHpi?=
 =?utf-8?B?Wmpjb0QrNjFHZzNTZGVLZzJROXdPRHR3dkM4RjVHYXRNWWlpVk1EUnpMVWFq?=
 =?utf-8?B?bmEyMnUzMHBZQUlURW9KY0sxdjNHUjUwSFFoNjNqTVhDeHlZZ1cwYjRUNGhX?=
 =?utf-8?B?U1pjVytVVnlRUE5zNUd1TVNINFhVQXJaSEJHVlFpU3ExNEluREZYRk03SWxz?=
 =?utf-8?B?ejJUN2JueTl5RkFnMFRNWkZDcndzNjZhQWtQMGVZTkVQUDdzMkxiVHkwbnd3?=
 =?utf-8?B?MUFoZW9JNFA2dXBJdndOZEg0dUpDWGI1N0xNemxMcVFFYXcvZGVpcXAycWc2?=
 =?utf-8?B?V3c2NG1Sc2VLeU1xNE44QzR0czFxdEhHWW5UM21zcFFncUVWTnNvUnVMRk1E?=
 =?utf-8?B?WkNyQWcyRTRGZjBnSEZhYi9iYkNNTXJjajdWRWNrV1hrSGJZUGFPb0VFK0dU?=
 =?utf-8?B?ZXZ0ZVlZZmhHb2RxUDZHVU1wTXU5aHVGci8vS00vUTc1SGlnRS9TekxzNkVm?=
 =?utf-8?B?OStncUFZMkM5emJKQ0RrSGVQZ0lFR2cxOTZpZVliRjZ3czhlZlVEOUVaR3V0?=
 =?utf-8?B?NkQvRFJaVzFPbkVCTkRKWnRiZWIxTVhRSzQ2V21pT0VjSE5pZFE5ZUx2ZEto?=
 =?utf-8?B?ZDNqbEU0OXN6TXdUbmF3TFNQdHdzTStGdXAwZjdMSk5GcGZQUW5CdHJ3UVNa?=
 =?utf-8?B?RTgxYXpsOHRZaUxnSlU4ZFloRHFDUkpJditQTUFwWTRIL0hNdUU2SmNlN1Jq?=
 =?utf-8?B?UDNEY0dlNVFqMVZqaGdSTUlaeUY2aVRiaS84VW1mSWJCY1podVR1dz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fa7b76a9-2b2f-47d8-57a7-08de4324527d
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Dec 2025 19:40:41.5926
 (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: HRpz+agmOtRf4eviDLnOBDbg4Cg2NcfleMxbgnVJH94ZO4+7VKS2vWrBOKVEF4s8l2bhARAu4qm+/uot/oJLQg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR03MB8045

Hello,

Two claim related fixes.  First patch has already been posted to the
list, second patch is new.

Thanks, Roger.

Roger Pau Monne (2):
  xen/mm: move adjustment of claimed pages counters on allocation
  xen/mm: reject XENMEM_claim_pages when using LLC coloring

 xen/common/memory.c     |  3 ++
 xen/common/page_alloc.c | 88 ++++++++++++++++++++++-------------------
 xen/include/xen/sched.h |  3 +-
 3 files changed, 53 insertions(+), 41 deletions(-)

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 19:40:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 19:40:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193146.1512125 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYUj5-0007pk-PM; Wed, 24 Dec 2025 19:40:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193146.1512125; Wed, 24 Dec 2025 19:40:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYUj5-0007pc-MZ; Wed, 24 Dec 2025 19:40:51 +0000
Received: by outflank-mailman (input) for mailman id 1193146;
 Wed, 24 Dec 2025 19:40:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wdbR=66=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vYUj4-0007pC-JV
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 19:40:50 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 71772e5b-e100-11f0-9cce-f158ae23cfc8;
 Wed, 24 Dec 2025 20:40:47 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by IA1PR03MB8045.namprd03.prod.outlook.com (2603:10b6:208:595::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.11; Wed, 24 Dec
 2025 19:40:45 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9456.008; Wed, 24 Dec 2025
 19:40:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 71772e5b-e100-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sKljABgmgUiIALbTUnMz5Yg5P5BCqE3kHRPljKVn51QndLvPznKxo4XynplieoJ25eBZyXSZYWgT9FiMB2rvL+miBwU4gpySAXFa64TixU+eqUnkSA8jo1rqF2gaJI7/yxN/nN/BhgMumDCULsvsEd0Nt0C78oFg9jEvtfGSLgutr8Cda6lFaVRPZsNR4Fv090oY2opZOvB1LVj7FGcC82Qj2O0LCCrCmV2W02u+FzlQoyN2v72ZqTu8+sTmR+KtrKjvAfvriALseu84x9qz/YJyHye3m8fuNDPcoAS/nZsFdjRvo7uFFyUDELfytuXNjMfjOntosGIQYxQ8XaMObw==
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=t+/OaSnO+7dubGjNm/28Rt0UT4bJsYsC3HQ9wqyEhQQ=;
 b=RpMKHJCVdB9XE4SHjy8b84lLdyNbxdBuxK8jihcpHUNOcnnldV/aVDudIq96kdzBKr7aUHjXU/F0HjXgPAdTAI42UfyoBlrYc5MDceJRhddagaOogIfsaQOkWzMq37mz1KFVCMDxZWxtDI8s39z4d76Jkg1tgFEg6RhIJuu7nK/KVwl+bKfEOTuRz2CX8/eowqUhDbTIBCct+n9UrrGo9+0dpgSDvwk/QTlgAMM7I5Cth7q9q/uGjEU/gnzmLD6QKvwcuxg1abC6Jvb7oLqWvITVxjQO2RDREzkXS4Fi8zzcqYzxuOcN6NPhWTxpfQl6rKIG5AEKrRLInrPsiNKRcg==
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=t+/OaSnO+7dubGjNm/28Rt0UT4bJsYsC3HQ9wqyEhQQ=;
 b=fzRf8M4D4+CbjpX6MCuzufs8jOFiAc9N55XiZ+SCvvU5DXOeUFenJc+nr0mU0b6ZYUDT4ja3CQodksUr07K7WfQ+D2BSsWrz6cbbmKDa39OCjuAHAXUdBKz2WSTLiy8w4mpRgI98G8QZw14AfbJBgQQHWVF9Ynr37sFg4VVTc7w=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 1/2] xen/mm: move adjustment of claimed pages counters on allocation
Date: Wed, 24 Dec 2025 20:40:34 +0100
Message-ID: <20251224194035.60173-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251224194035.60173-1-roger.pau@citrix.com>
References: <20251224194035.60173-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PAZP264CA0010.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:21::15) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|IA1PR03MB8045:EE_
X-MS-Office365-Filtering-Correlation-Id: fe4c420f-3bb6-4374-eab8-08de432454bb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?c21yVm9Zc1YraU9WcUIranB5ekpRVkxaRDAxWDR3TXUrbEFPMng2UzdCcDkw?=
 =?utf-8?B?NkdpRjdub3NrbHRWdStsVVBDejAvMVpiRGxTL1FGNk1IbW5oOXhVYnJwbmxl?=
 =?utf-8?B?aFdhVTJUY0hrWXBwWW50bW5iNlBHRmovdU1mQjBWYU01aEk1SXd2ZnhVeDNJ?=
 =?utf-8?B?WVZ4NnFHWklwOGk4c3hHQkNGeHh3Umd2Mld6UVFyT2V1RjJpaENXVlhiVm5j?=
 =?utf-8?B?OUJBdDl1VFdkd1FjT2VMM0tYQS9URUkydEZvM2E4N3MrdFJtdHl3K3BGSHlW?=
 =?utf-8?B?Z2w5Y0RBL0FqRVM2TThsVmVNN3dYWmFGTlEzUzhFd0Z4RWRPbzBKbEVQQ3Vx?=
 =?utf-8?B?T2NvdDJOM0dtd3JrQ0lkZ0lYQXdpQWxLa1MrMjYwdmVlVFNuWmFhS3p3cEFp?=
 =?utf-8?B?UnFDRDBlMjhlMEV2QUVvalZLcXUxaFg0OXZvdGRXRGZEcGFpQklxT0ZJOVYy?=
 =?utf-8?B?TndiNjJEQ2RTMXNUTVNRejJET3liN3V2cVZxU3ZBcmxpUVdVOGluayt5dk1t?=
 =?utf-8?B?Z2owZUdsWHcrMmNDUW5CalNTZ0xCV0c2YXh6a1oxVEI1aHdUM1BaUE5KaVhE?=
 =?utf-8?B?cnRYZEUrakNzbmo0eENtRGpjQXBRMnkxMUxmRFZCbitWVjFRTUV4ZHZKZlZY?=
 =?utf-8?B?RWxZL1pCaHEveEJQUzNaUmRlTGRkOFVJemdyNDlMNkZad3dkTk5LQjA0L1FD?=
 =?utf-8?B?RW5IcGJ0eFkrU2xnOU9jMldCOXdUd2tGdCt3UnhiUGhTNFBBZlpPcXgzeGk1?=
 =?utf-8?B?c3JReDN3ZVh1U3BVV2JUY2U5YUl2Y0Q3UGJFNVB0MGc1bm1HbnZCMGYyUWdF?=
 =?utf-8?B?YXVCVENVVXZ6ck5SVFNXNmQ0d1pUOVJKVTNlVktVaVhGM2ZLSUJhRmRVbUkv?=
 =?utf-8?B?ekMwTFlPWHpkbHRHZ2hCaVNHcmJkSmhXOHZFb1RHQnNnTHVVdmczTEZaTFlC?=
 =?utf-8?B?dzNmQzlRV1phZEpZM3pJampmUlNzM2gzSEZlTW1SMld5cENsd1FnTlhyLzg1?=
 =?utf-8?B?N21BenNHdkVUSkRLZ3Ztd24xajd6VjdJOThicnRhcWIvdXRYQVA0Q1hkc041?=
 =?utf-8?B?RVQ0MzBJdmVZQlRXbWZBdjlUR091b0ljNmtwQUIyTnJWMnBlWmE4Y0NoL0Ew?=
 =?utf-8?B?ekJELzdLZGlFTGE4VGk1dHVDcFozQk16MHl4VzdJUkxKbkZQSjhyRkMvNmVj?=
 =?utf-8?B?QzM1aE90L3p5VHMzbzNHeUZwMEFmd0NjSEpxSGw2TFR5UzJHSkhGdS96YVpT?=
 =?utf-8?B?WG5iTm5NUWZuQktiVEI5Z2xZT3ZVazRSNUJuUzZ0ZmZ1UHZFeVl1MzM3RkdV?=
 =?utf-8?B?eXliOEVTUzdDN2JPaTFzc0ZOSnVMTFFEdzlSYktWdVVDYlR3NDQ2NVFjdVdt?=
 =?utf-8?B?RXdYTjFQUVNJaGIySjczc29PWkNKMWtndEU4ekRhY0drR21WSUlRSk93K2lJ?=
 =?utf-8?B?OGJnckoyZlprSlJybjEzYWZyTDlRcXR2MFppWWtWSnF4TzRaMjhpYTZLTEVG?=
 =?utf-8?B?VElNeDVuR24xQkJpZ2xrRFBtQklkYUZ2QUo3dUJBV1JDdWQrTDRtcFRmMmdK?=
 =?utf-8?B?dWdIUXJ2SWdaeVlGNWFKZWw1VFRHNWNIWU0rVGdWa1VTLzl5dHBMdVNyMUNi?=
 =?utf-8?B?cEFpQWF3aGYvYW13VFZDMyt3UmZXSVFYVzNTWHFOVnBmMXhIaG1NdE9TT2dH?=
 =?utf-8?B?WVpOOGErMk1XRUJNL09jTjQ0UFlVa3pvS2dXeTU4cXR0dVQ3bGp3RWlPdGo5?=
 =?utf-8?B?TktzL1YrT3MrZ1ZWbEhvOEJva0RwS25SVlFhMzVKWVIwY0l3akk2am5idGcw?=
 =?utf-8?B?dFlkbUQ2YlF1K04vdFlDeXNTM0ZkbWpxblRiZ0tvSHpubTNXV3RBdk56cGFH?=
 =?utf-8?B?WHNTUjB1am5ONlg2ODFjakxhMmZxOTRycW15ZzRVZUpOTGpHZ2NDRVFIdnhS?=
 =?utf-8?Q?PXW9WrNK2pTz4xU04i2PpI9wC/kqm3B+?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RGNGZ3R0aXN0QXRoZ240TFpiZ00rblRYeUk0THpPOUx4WHFyREk2eU9HK2ww?=
 =?utf-8?B?d0NPUG9wa2t2SDBOOVZFL0tDaGdaM0U3SFp1Z1ZZV0pLa0RIajdpYXZNWVRN?=
 =?utf-8?B?VXFHeDRtYVNmL0JMVGQ1K0NwR1p4T0dSRHBsQjhsVFd0WFF4OVA1OXN3OVls?=
 =?utf-8?B?Vi81VVJhRHlFMThVNktWNHd0dlZNWWdyd2V0djVxRkZtNHU2Yi8wb3VYVFlY?=
 =?utf-8?B?Ri9SMk9hQTRYSkNOSjZ0djN5QnBZcWpUZ3RmaWoySlc2TXRqVTdRcFRsdXpm?=
 =?utf-8?B?ZFRxVjhMS2VtM1VzbnZIdlF1RUhKVFg0UGFTU2NZY251NmdCZFlSNU1oMEN1?=
 =?utf-8?B?QzREMFJhWWpPWFd5MFR0SlF4Um80NHhHaVQ3d2J5K0Q2RU42RlZES1hwbHdZ?=
 =?utf-8?B?NHVpR1RkZlhXZGxDQitsYXB0eDhPdmN3SWxITHNuYmVDY1VrSS9GWDhPRVcw?=
 =?utf-8?B?d1hYZm4yQzRvY1ZFRk8vNzdhNWFPRDhXY01KMkFOL1h0Mmd3d3NpcGsrR3pq?=
 =?utf-8?B?cStqY1JQQS9XbTYyNmJPbzY4ZUNzNzhKNWdTSmp5M3hHTUc0OUdPZzZQb25B?=
 =?utf-8?B?SURNYStFT2YzU3c1azNXV2VZQ0EwY1ZNSk83STJVUmhBUVg2SWJRUXhoYWts?=
 =?utf-8?B?NHgrdDdqalZRSjBsTGFwYW1XOFBtcGxrU1g5V01JRWRjMERBNHhBTmpBR0E4?=
 =?utf-8?B?NmpUcnFId3lWaE5RSTZZcVhhRjVsdllkcGloUU5Bb3pBUDRSOGlUTFNmdEYw?=
 =?utf-8?B?elhldyt6TmFUL09KUjZMWFEzSnpBM2oreTNWQ0tRTDc4b0pDTFFndWhnMi9R?=
 =?utf-8?B?RGRLaGFENHV6TTFROWtKYjlNUXRCQnRpQXNycmxsNDJRckJtZEI4T0l4dTZP?=
 =?utf-8?B?RzV4djNJMzZibWNUWSt1ZTMwQWZoQXBCU2p2b0FWTkpKZ1plUmVyM2VZWUNs?=
 =?utf-8?B?MkgzY3p3VTRkY3c4c1FnNksxbi95N0pmbWhrd1ZvMXdFSGgremJTa3l0K3R5?=
 =?utf-8?B?VWt4akg4bU9VSms2ZzJqRTdTa3RJSUpwOXkzcUpuckhEQ3pWVjNKblF1VmdO?=
 =?utf-8?B?MjM3NmpYVnJwNFFKdFg2aFJFREFiQTFNQkk3eTdFdi85TksrUVRGY3hNbkJt?=
 =?utf-8?B?a3JGYm9KOU00ck5tdUMrTHpwRWJsSHdxc0U4S1A2TUZzeVpiYzAwSlp1SUVo?=
 =?utf-8?B?ODNTTG1BYUxjWjh6V2Mvb01DVzNubTQ3ODhXWFRBaWtTaFJLOTZWR24yUUxM?=
 =?utf-8?B?Qm9hbkVCY1g3NFVFamJOS0VrSlJCdkdoblVGKzlSUWhJcjRNVEJWc3VSaEUx?=
 =?utf-8?B?czl1L2gzM01CbWVtQUk1QWdOU1kxZVdhNjJ4NWV0YWtNRmRxeHM0empSOTNG?=
 =?utf-8?B?bHdFeHVJa1g5aHUwZm9jRXV4TklCL1kyc05XVkY4SWYwTW5RVWRobmN2TjFV?=
 =?utf-8?B?cTJaV0s5d3FSajh5Z1hMT2c4dFY2cm9uVnNHbGhjdVJSWWViaFArdmROSkow?=
 =?utf-8?B?K2VmL2dIdjYxOS93cWtRNUdEbERBNmlvV3JEcmxnTm1Dd2E1K05OOGJuOE1a?=
 =?utf-8?B?RU1yQTJOUy9jK3o0NFhUWDFNOU5WUDROYzZybGlzb2QrcUhIbU94SHp6QVRS?=
 =?utf-8?B?MjBmcVdwcFdhdC9XV2NURUlkNHN3Z1NaV1pGSW4vWFNjVnlKYjEyTWg2TUll?=
 =?utf-8?B?NThsT0trOU9hbGFiR3VNNkM1dXRLcUZBM0M0NWdsUnVUM3FhRVcrT0N0Mkdk?=
 =?utf-8?B?ZTVSUTY4cGR3Rm4xYk9nU0NKVXRKbWtXOXZjeTZTL0F1NmNXdm9NemxaLy9P?=
 =?utf-8?B?S1Ntd2tnTUtNTENGWldOdkEwNnVuc2ZISTJBbnBPbGVWSGhoVGkva1NRTTJQ?=
 =?utf-8?B?MzJ0OWE5aThjUkVVbGozeWk5dWFrZExnQjgwYkM5ZW1vMjZ0bUJqejBadWJK?=
 =?utf-8?B?WlZtV0lVWlhHODNqaGZGOERPcjhIZC9nN1ljaHRkdHk5UnYvcTM0VTVmeEVV?=
 =?utf-8?B?TlRuWEk5TUM0RlRXend2UkQ3Yy9CdTFveE9sRHc4SzZIc1FIWXhBM0FiYUo2?=
 =?utf-8?B?TzVsd2k0THlvdU01V3pLWnJPZ0FhL29tWFR3cGZCUEM1Y21VSjFFb2YzVWs5?=
 =?utf-8?B?TVVpcmZMOWZoaG9oRmJoY1ZiVk10M0t6eHhySHVFSTJqTVZqQ1o1UlVzVjdO?=
 =?utf-8?B?MVM4bWtGZEpTeEVNTXlSeWt0NUtQNjFNV0hkWmdYM3ZZVFptUGsvNDE1aU9x?=
 =?utf-8?B?WjlIbWVXK3NpZnlESVZkSDY3RjMrM0RUWUZGT0Rhc2FsODVVU0pyM3p3c25B?=
 =?utf-8?B?bmJPNUxlWlpOeHJwVlBOZHpEMjVWVUxLN0tkTEl1d3pJZ08xUG9MQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fe4c420f-3bb6-4374-eab8-08de432454bb
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Dec 2025 19:40:45.4405
 (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: JftJmo69iOimiHvpQ357kOW3PT8iQHJAlBMbca75rFD1GcWjbonUWauPKf78SOOYbUQuqRApNlsTy1kX0f9+hw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR03MB8045

The current logic splits the update of the amount of available memory in
the system (total_avail_pages) and pending claims into two separately
locked regions.  This leads to a window between counters adjustments where
the result of total_avail_pages - outstanding_claims doesn't reflect the
real amount of free memory available, and can return a negative value due
to total_avail_pages having been updated ahead of outstanding_claims.

Fix by adjusting outstanding_claims and d->outstanding_pages in the same
place where total_avail_pages is updated.  Note that accesses to
d->outstanding_pages is protected by the global heap_lock, just like
total_avail_pages or outstanding_claims.  Add a comment to the field
declaration, and also adjust the comment at the top of
domain_set_outstanding_pages() to be clearer in that regard.

Finally, due to claims being adjusted ahead of pages having been assigned
to the domain, add logic to re-gain the claim in case assign_page() fails.
Otherwise the page is freed and the claimed amount would be lost.

Fixes: 65c9792df600 ("mmu: Introduce XENMEM_claim_pages (subop of memory ops)")
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v1:
 - Regain the claim if allocated page cannot be assigned to the domain.
 - Adjust comments regarding d->outstanding_pages being protected by the
   heap_lock (instead of the d->page_alloc_lock).
---
 xen/common/page_alloc.c | 88 ++++++++++++++++++++++-------------------
 xen/include/xen/sched.h |  3 +-
 2 files changed, 50 insertions(+), 41 deletions(-)

diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 1f67b88a8933..b73f6e264514 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -515,30 +515,6 @@ unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
     ASSERT(rspin_is_locked(&d->page_alloc_lock));
     d->tot_pages += pages;
 
-    /*
-     * can test d->outstanding_pages race-free because it can only change
-     * if d->page_alloc_lock and heap_lock are both held, see also
-     * domain_set_outstanding_pages below
-     */
-    if ( !d->outstanding_pages || pages <= 0 )
-        goto out;
-
-    spin_lock(&heap_lock);
-    BUG_ON(outstanding_claims < d->outstanding_pages);
-    if ( d->outstanding_pages < pages )
-    {
-        /* `pages` exceeds the domain's outstanding count. Zero it out. */
-        outstanding_claims -= d->outstanding_pages;
-        d->outstanding_pages = 0;
-    }
-    else
-    {
-        outstanding_claims -= pages;
-        d->outstanding_pages -= pages;
-    }
-    spin_unlock(&heap_lock);
-
-out:
     return d->tot_pages;
 }
 
@@ -548,9 +524,10 @@ int domain_set_outstanding_pages(struct domain *d, unsigned long pages)
     unsigned long claim, avail_pages;
 
     /*
-     * take the domain's page_alloc_lock, else all d->tot_page adjustments
-     * must always take the global heap_lock rather than only in the much
-     * rarer case that d->outstanding_pages is non-zero
+     * Two locks are needed here:
+     *  - d->page_alloc_lock: protects accesses to d->{tot,max,extra}_pages.
+     *  - heap_lock: protects accesses to d->outstanding_pages, total_avail_pages
+     *    and outstanding_claims.
      */
     nrspin_lock(&d->page_alloc_lock);
     spin_lock(&heap_lock);
@@ -995,11 +972,11 @@ static void init_free_page_fields(struct page_info *pg)
 static struct page_info *alloc_heap_pages(
     unsigned int zone_lo, unsigned int zone_hi,
     unsigned int order, unsigned int memflags,
-    struct domain *d)
+    struct domain *d, unsigned int *claimed)
 {
     nodeid_t node;
     unsigned int i, buddy_order, zone, first_dirty;
-    unsigned long request = 1UL << order;
+    unsigned int request = 1UL << order;
     struct page_info *pg;
     bool need_tlbflush = false;
     uint32_t tlbflush_timestamp = 0;
@@ -1012,6 +989,7 @@ static struct page_info *alloc_heap_pages(
     ASSERT(zone_lo <= zone_hi);
     ASSERT(zone_hi < NR_ZONES);
 
+    BUILD_BUG_ON(MAX_ORDER >= sizeof(request) * 8);
     if ( unlikely(order > MAX_ORDER) )
         return NULL;
 
@@ -1071,6 +1049,28 @@ static struct page_info *alloc_heap_pages(
     total_avail_pages -= request;
     ASSERT(total_avail_pages >= 0);
 
+    if ( d && d->outstanding_pages && !(memflags & MEMF_no_refcount) )
+    {
+        /*
+         * Adjust claims in the same locked region where total_avail_pages is
+         * adjusted, not doing so would lead to a window where the amount of
+         * free memory (avail - claimed) would be incorrect.
+         *
+         * Note that by adjusting the claimed amount here it's possible for
+         * pages to fail to be assigned to the claiming domain while already
+         * having been subtracted from d->outstanding_pages.  Such claimed
+         * amount is then lost, as the pages that fail to be assigned to the
+         * domain are freed without replenishing the claim.
+         */
+        unsigned int outstanding = min(d->outstanding_pages, request);
+
+        BUG_ON(outstanding > outstanding_claims);
+        outstanding_claims -= outstanding;
+        d->outstanding_pages -= outstanding;
+        ASSERT(claimed);
+        *claimed = outstanding;
+    }
+
     check_low_mem_virq();
 
     if ( d != NULL )
@@ -1518,7 +1518,8 @@ static void free_color_heap_page(struct page_info *pg, bool need_scrub);
 
 /* Free 2^@order set of pages. */
 static void free_heap_pages(
-    struct page_info *pg, unsigned int order, bool need_scrub)
+    struct domain *d, struct page_info *pg, unsigned int order, bool need_scrub,
+    unsigned int claim)
 {
     unsigned long mask;
     mfn_t mfn = page_to_mfn(pg);
@@ -1553,6 +1554,12 @@ static void free_heap_pages(
 
     avail[node][zone] += 1 << order;
     total_avail_pages += 1 << order;
+    if ( d && claim )
+    {
+        outstanding_claims += claim;
+        d->outstanding_pages += claim;
+    }
+
     if ( need_scrub )
     {
         node_need_scrub[node] += 1 << order;
@@ -1842,7 +1849,7 @@ int online_page(mfn_t mfn, uint32_t *status)
     spin_unlock(&heap_lock);
 
     if ( (y & PGC_state) == PGC_state_offlined )
-        free_heap_pages(pg, 0, false);
+        free_heap_pages(NULL, pg, 0, false, 0);
 
     return ret;
 }
@@ -1918,7 +1925,7 @@ static void _init_heap_pages(const struct page_info *pg,
 
         if ( s )
             inc_order = min(inc_order, ffsl(s) - 1U);
-        free_heap_pages(mfn_to_page(_mfn(s)), inc_order, need_scrub);
+        free_heap_pages(NULL, mfn_to_page(_mfn(s)), inc_order, need_scrub, 0);
         s += (1UL << inc_order);
     }
 }
@@ -2452,7 +2459,7 @@ void *alloc_xenheap_pages(unsigned int order, unsigned int memflags)
     ASSERT_ALLOC_CONTEXT();
 
     pg = alloc_heap_pages(MEMZONE_XEN, MEMZONE_XEN,
-                          order, memflags | MEMF_no_scrub, NULL);
+                          order, memflags | MEMF_no_scrub, NULL, NULL);
     if ( unlikely(pg == NULL) )
         return NULL;
 
@@ -2467,7 +2474,7 @@ void free_xenheap_pages(void *v, unsigned int order)
     if ( v == NULL )
         return;
 
-    free_heap_pages(virt_to_page(v), order, false);
+    free_heap_pages(NULL, virt_to_page(v), order, false, 0);
 }
 
 #else  /* !CONFIG_SEPARATE_XENHEAP */
@@ -2523,7 +2530,7 @@ void free_xenheap_pages(void *v, unsigned int order)
     for ( i = 0; i < (1u << order); i++ )
         pg[i].count_info &= ~PGC_xen_heap;
 
-    free_heap_pages(pg, order, true);
+    free_heap_pages(NULL, pg, order, true, 0);
 }
 
 #endif  /* CONFIG_SEPARATE_XENHEAP */
@@ -2656,7 +2663,7 @@ struct page_info *alloc_domheap_pages(
 {
     struct page_info *pg = NULL;
     unsigned int bits = memflags >> _MEMF_bits, zone_hi = NR_ZONES - 1;
-    unsigned int dma_zone;
+    unsigned int dma_zone, claimed = 0;
 
     ASSERT_ALLOC_CONTEXT();
 
@@ -2679,12 +2686,13 @@ struct page_info *alloc_domheap_pages(
     else if ( !dma_bitsize )
         memflags &= ~MEMF_no_dma;
     else if ( (dma_zone = bits_to_zone(dma_bitsize)) < zone_hi )
-        pg = alloc_heap_pages(dma_zone + 1, zone_hi, order, memflags, d);
+        pg = alloc_heap_pages(dma_zone + 1, zone_hi, order, memflags, d,
+                              &claimed);
 
     if ( (pg == NULL) &&
          ((memflags & MEMF_no_dma) ||
           ((pg = alloc_heap_pages(MEMZONE_XEN + 1, zone_hi, order,
-                                  memflags, d)) == NULL)) )
+                                  memflags, d, &claimed)) == NULL)) )
          return NULL;
 
     if ( d && !(memflags & MEMF_no_owner) )
@@ -2701,7 +2709,7 @@ struct page_info *alloc_domheap_pages(
         }
         if ( assign_page(pg, order, d, memflags) )
         {
-            free_heap_pages(pg, order, memflags & MEMF_no_scrub);
+            free_heap_pages(d, pg, order, memflags & MEMF_no_scrub, claimed);
             return NULL;
         }
     }
@@ -2786,7 +2794,7 @@ void free_domheap_pages(struct page_info *pg, unsigned int order)
             scrub = 1;
         }
 
-        free_heap_pages(pg, order, scrub);
+        free_heap_pages(NULL, pg, order, scrub, 0);
     }
 
     if ( drop_dom_ref )
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 1f77e0869b5d..d922c908c29f 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -413,7 +413,8 @@ struct domain
     unsigned int     tot_pages;
 
     unsigned int     xenheap_pages;     /* pages allocated from Xen heap */
-    unsigned int     outstanding_pages; /* pages claimed but not possessed */
+    /* Pages claimed but not possessed, protected by global heap_lock. */
+    unsigned int     outstanding_pages;
     unsigned int     max_pages;         /* maximum value for domain_tot_pages() */
     unsigned int     extra_pages;       /* pages not included in domain_tot_pages() */
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 19:40:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 19:40:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193147.1512136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYUj7-00084O-VX; Wed, 24 Dec 2025 19:40:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193147.1512136; Wed, 24 Dec 2025 19:40:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYUj7-00084H-Sg; Wed, 24 Dec 2025 19:40:53 +0000
Received: by outflank-mailman (input) for mailman id 1193147;
 Wed, 24 Dec 2025 19:40:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wdbR=66=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vYUj7-0007pC-66
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 19:40:53 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 73eadf0a-e100-11f0-9cce-f158ae23cfc8;
 Wed, 24 Dec 2025 20:40:51 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by IA1PR03MB8045.namprd03.prod.outlook.com (2603:10b6:208:595::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.11; Wed, 24 Dec
 2025 19:40:50 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9456.008; Wed, 24 Dec 2025
 19:40:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 73eadf0a-e100-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FNYSBPm5XghbdV784WDNnxii09yXwxm4RkNLg0anI/GC0D6nHWLePAvJMxlwGqledod6qNM2LhVdnb+E2Mb2pgIISrQRQiMWTed4E2UiHqnEwuPOp9Ivz/xeiswAiPkrXvEye254DcdHMGbhpnAl5CH8XWYGb25OmvHXO8ofoWRpFrF9H/9MtcDnGYzQb895DS598y/A9KkLcvzdbcgmOhp1xgBuqARdwThOGXJtVQ9Sq35JDocOzeFrE+5/yNwAUNQaTrZghdXHtvr4K1wWgix/cHoc0SWC8yWWIZ7PjS18EKI5nUg1DXiWpUpk9YyJBMRaIsD1zffYevNKmzA+wA==
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=ibB7GBK4esDTfWKH202Z+KOXHrBuNaaGhAz82G4CK3I=;
 b=WT4Ec+09QQLEZ8+MvDNWT0DAU3awFSGLSn2osx5JElnTYh8Wr2DwVazNtVjzLENQMdWh4vq6+KhWRkb6HStbSyf2WJXOKw7pCJVu3NUvxhIJGVMMCMsXDxH2QiRm4mXf/O/1iwLGzJiRSHmvURSDpgpgD961oY1Vhlo2DgHpqDehASp4awOl1vqOkXJ0OHOrNhPB8GfrXuwtW46MBPXk20He7lzMYNMN7iJfxBJy+sOurhQak7vNP2NtI7vB9liAYaUCCcwudlNeIXRoENBAMK9+hNVKaas7VjcoBpITfKVNSbIKia/pPGYm9VYfwDXEVg+WnFojd21yNAIOAb9jFQ==
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=ibB7GBK4esDTfWKH202Z+KOXHrBuNaaGhAz82G4CK3I=;
 b=smo1jFD6gl7LJuxiNQpAi/JjBTH4XMallSQBPqNhfinQW9HLhOYcmHBDlCHGy/XTN5salp+duWlwft1675Au2kbKIfkiwoB9Wl+/1KSkKCcOvnQrDn33f3PsGNT36Qq4vIykpbZBJCw3jqHg5yKl7SRr5swA9CHywiYsVba6yqw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 2/2] xen/mm: reject XENMEM_claim_pages when using LLC coloring
Date: Wed, 24 Dec 2025 20:40:35 +0100
Message-ID: <20251224194035.60173-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251224194035.60173-1-roger.pau@citrix.com>
References: <20251224194035.60173-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PAZP264CA0074.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:1fa::9) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|IA1PR03MB8045:EE_
X-MS-Office365-Filtering-Correlation-Id: aa1e600b-fdaf-403f-ed99-08de4324575e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SWRhSVJNQlBOTmo4V3lZWEtINWVEbERXc1V5VUJ6NjN6TTd3bzBEMHNObk1K?=
 =?utf-8?B?SU5nMDBvMU9lSUplOTVUa09mb21kd2kvSFplaVMzU2pGZzdqWVBrSnU2eWF6?=
 =?utf-8?B?UklwTnRTanZNNTgvclAzM3lrOVBmR2dsU3lMUXh3aEFSS0ptWkk2NERnQVIz?=
 =?utf-8?B?YTQrc01lZ3NNeGNTYm9lUnQ3UTc3L20zNmoySmNHbVpLM2pFUS8xNVlyanM1?=
 =?utf-8?B?VlVOallXRGU3dHlucGpCN3E5clRBNG1JOTRBMzBYM0JSWnc5WEJIczB6elNW?=
 =?utf-8?B?QmZFWHZ2dEpHVjRMRlgxUXdTalpmWHkxTVNTMk9LemtzOVdZQ3JXMW5aSXFR?=
 =?utf-8?B?Q0piczI5cjFSMVRoaXZwSmZMU0w1dkovZGJQQTE4L0QzL2E1OE9SdUd3Zjd6?=
 =?utf-8?B?RlpEV2R2NTdiYS9LNnFmejBPWW42TFljdDNzcFk3cG10V2xqMUROVm12Mm5a?=
 =?utf-8?B?aDY3ODVvSUtIaStscmd2aEZhVDRDU29GTGsra3JoR044aEdXa1BhOHRhUG5V?=
 =?utf-8?B?bGl2VEZCdGtydC9Cd1hDcW1NSWpNdVJDUjVWSTZDVDhBTGhPcFNOM2lXaDRD?=
 =?utf-8?B?Wmk3VlN4SXFaMHEwbkdLVXMyMDFuaHZ4a3JsYmtBR05HNi9kZTkwbjcvS0xu?=
 =?utf-8?B?c24rNHc5RjYxdmdKV2E5NzdjV2dHaFZOQ0ZNMyt1UzNob2VxU3plckVQL2Mr?=
 =?utf-8?B?TlY0YzF0NnNrQk1lK05Sd0NaeDMwSGZHUEZyU0k4VEtKalJRai91K2Jxdnh6?=
 =?utf-8?B?S0FiNzZBZzBjbGxDSU14OWtKelJzQ1BiN3NWZ2V2ZExjTS9tK2lpc3Z1UXBI?=
 =?utf-8?B?VGhWNGI3eGpteC9rVzZhcUd4NnJ4Ym1JNWoyZCsrQ0N4ZXU3NXV3VHFhT0ZB?=
 =?utf-8?B?ZnM1MlQzdEJERnhML29xa0hvdlhkTkhUSTMvSE13dEFFcnBMb3pib1RvSUNE?=
 =?utf-8?B?TlcxK1FIN1JjM0xJMnFSbUEvaXBjODdOSWVnMldOUTYyZ1l2MFBMOFRESGVp?=
 =?utf-8?B?UFFSVTFRV2Ria1NpdFh1WThjMUFvY2VPVnVoZXdLczJCTGc3UEI2QjVpaTRz?=
 =?utf-8?B?QmQrTm5OWVBhYnN4cGhFL2gxWExkOE8vN2dCcGpyRC9yVWxvY2pUZDdvck85?=
 =?utf-8?B?Y293dFBNcE1GdUNLTGk2eG9VQ0o0a3FHUGJZa1hRMVlzOFh1R2tpNzVHSlVE?=
 =?utf-8?B?OVQzTDAvSFN2L29NUkFZaURmVW50THFSNlN1ei9SVUllamxPR21iU25keVVm?=
 =?utf-8?B?elMxNUlaZDZITWNPVWxhT3Y5bXVtaVltTXZaZjMydWNGNzFJa05hYnNrenBm?=
 =?utf-8?B?ekp4ZzFqdjBoZWpyQ2c4eEY5VERUcGZLbjBUZllXMlE3VWRIUWYvSTQ2M1Rn?=
 =?utf-8?B?UzFoS3pobC9WTUl6UjhFbDdmZVpNUmdpeU1YUmNxMmxXbFZoNlQ1emJlRlNY?=
 =?utf-8?B?NFJqUVhtWnJQVzlWVHBLdGJCbnRHaldGbzVoMG4xZE04QldsQjRiUk13aDRn?=
 =?utf-8?B?U0VyVnlieDhuZ3ZDR3RiTXRhMG9SUlhaV0o0VEwxYmRPQ0hTd2ZyM1hydWwx?=
 =?utf-8?B?cmliOGYxZVBDUTJBTHVYMk1QZ2JSb0hyL2Y1M2dzOUFSWCttQ0t0ZmtjMHBx?=
 =?utf-8?B?ZExiZnpBd1N4UGhjRXZIZ21ldE5LOTJSUzBhVFAzMUpxMVpCNDRoMGJwbzJS?=
 =?utf-8?B?blp6Qmt6VHZJVnd5SU9IeHFXbzBveENjRDdpZGRydzlaYi9TNVNpQU8vRTRQ?=
 =?utf-8?B?UWw2K3Rtc0dJSHhLTUIzSkhMVi9iYUxyd0FTWnRXeEtaZUFjTDhrUDRGSThL?=
 =?utf-8?B?bCtYaDNpenMvSEVoRS9SY1NqVEFDRVB4bmwzd205S1MwWncwZk4zQmdpdlQr?=
 =?utf-8?B?VGpxRUh4Uk1vU08wM01PNG1kSVBBYnZaOS9WRFp6RXNlS0t0ai9jTGs0dEJP?=
 =?utf-8?Q?1BIcQKz16C8WxtVZreAncO/seJnxU5vW?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?b0l6TDRiUXlQUU5KcytSYTRvbkkvVmpXbGFCSk02MTIxWlZ1djEvY3dzYmRy?=
 =?utf-8?B?cmw4SkNqclR0SWtJaHJYVHRZSWlZOGgxRzVMT3pPWFBhZy9VakJoYkExWTlL?=
 =?utf-8?B?UjZLQkhlMTJ0ZWxZd3RtRnhXeDJNMVBneTJvYVBmT1ZzYWZmRVBNdFlaMXFK?=
 =?utf-8?B?dFVRYzFEd2lpVEpNQm5MUTczTTJmb2dvb0I1ZDI3YUMyazlvZGs0VWREVVlS?=
 =?utf-8?B?aVVRWi9yZDVORlZ6ODJsTmo0ZmhTNFkrV1hFeHpneko5NjRpTXppT1ZtNkJo?=
 =?utf-8?B?NFNpZDh4aE5NYTJKNzhGNEpBUjErQ1BmZEJCeHRrRUpUS2Vqd2p1UlBKRllY?=
 =?utf-8?B?bXVLSkFlY3N4anVUZHhhK3JmT24vdTNkalREMmpMeGZnR1BQS0lDN3lZKzho?=
 =?utf-8?B?MFpSdFZkWUQ4QkYwY3YwdTZkOWJJN3pZU3BLRmxvRzMrd215bjEwQXlFNjJV?=
 =?utf-8?B?NnRiL0E5UjlBelR0OEs5QW1zRzdQcFZ2ZjhVeGFWTUViOW5SLzVlNVRsd1Z4?=
 =?utf-8?B?Y2djc2R3UmRYWDUyMklLeEVqaiszWlVnNTY0TkpqZXcxNFZ1Vmc3K3FIci9z?=
 =?utf-8?B?cDBmaVpOaEhBUytZd2FHN0pQZmliTVVnZjdUdUNIZk9EZi9ydU9ob253WkNP?=
 =?utf-8?B?d2t3NnJYbGxLNDRmQkdkaVpnMEdjanRhNVlRNEY0RDVQSXNGT3VDUkdwcmVT?=
 =?utf-8?B?TWZIU1d3SEJnMU9URXNsOENRdnZmekgybTg2eEhycmdPR3V4bWptYnFZZEZ4?=
 =?utf-8?B?VjZHS2hiOGlMSzhzM0dGb0piMWQvcjZEK3QvTVBWSXRVYi9aY0RPTGtLSEFn?=
 =?utf-8?B?STJLQnhwMndiRnZKaDhOK3Fuek0yV0trc21Fa1haSW12L3lGaVNRN21jc1c1?=
 =?utf-8?B?QVF3Si9ZYnhiZERONnowK3UrTlN0TDU4NnVlbkx6SmRWTGw5czJZQ04wMXFs?=
 =?utf-8?B?a25TRUExc1RJT2VlT2hiZHdJcXFTc1Vsb0Z4cnJYL1BQVWRGZ3p1c0tzNE5v?=
 =?utf-8?B?QlNnamt1SWdCc0phczNSckU1WlZkelRhYjdpbVljcVhIaW42ZW1mWnIvMnJl?=
 =?utf-8?B?VUdFcG0xZ1oxN2dHdU9Nbk5XanNQdzFuSXBQcGNwRk1EcTc1aHVTeC9YTTZ2?=
 =?utf-8?B?QUF5NmVkcXJnRDNNVlByblBwRDZ6b2Zoenk5Rm9XS3BYcmduWEZPb25iVmpa?=
 =?utf-8?B?a1ZRNzZneVRrTzVKRFAwcTE4SG1zUEdTeEdEZDl0bkVZempjNmdZVnVFeEg2?=
 =?utf-8?B?T0prOGRWdDR2bHNMNUVLRm1GMGpoQjBrNGlMdEk2bzNlSEdJdFN2UW9MZGFC?=
 =?utf-8?B?RU9hS3gyRUhBcHY2VGJleXc5SzEzbzlhZ0xBMXcwbFZaNmNDODMzR0doQUQr?=
 =?utf-8?B?NkJRWnhOVERnYzhUdFFqZWtDaW5OSmh6cU0wVTJQWGhWSW51UTNDN3dqNU55?=
 =?utf-8?B?RmRqRVRPd3NBcXE3UlkyR0NKK0N6bDB0T2RUZUdrNXlUZGhVK01sREhjaEV3?=
 =?utf-8?B?ZnlUei9BelpIb1BXdWNaYlhqRmFxQkVFTVY5cGpYQUVPWDg1RzU2MnZsUkdr?=
 =?utf-8?B?WGtpMHFZNzhKcGRTY1dSYnpYVjdNVUg2TjVUMkJhK0dJSytMTDZrUFFsK2t6?=
 =?utf-8?B?OU9kL08zYWRPQXZ5MU5FNE82VmRYc0hDSGM0cHVRSjhHQUZVZHFSSU03Qmto?=
 =?utf-8?B?ajFRd2tPd1VUdHFlZ3hyUEVJYlRFLzQ5WUt6SndwYXZzb09SMDZTSk1DSEln?=
 =?utf-8?B?SVZyRzZCZUY4emF3NzRjZ2o5RTlWK1RRaTMzT0ovdW5VZmtwT0MrY3pBWS9t?=
 =?utf-8?B?RDNGMHJ3Q0JrZVBUcVdiSGJTSER1NzZmNFArTE5uWktYbDlHOGp6NUtsMWU4?=
 =?utf-8?B?dSt6cGhvTklibEZyTE14SUJ1ZU5LUlI3QnRCQWFCUGNSTWg4YnY2V3Y2blRp?=
 =?utf-8?B?ZGx1RVEwbUxxVXR0SGJZVnptYjNndE91S0c5YkZvN3lpU0ZYakdCZ3VUdUx2?=
 =?utf-8?B?anJYbVptY2tGdU5WdlBqb3l4QXc0L2U1QWdZTXltN2oyZmJYMk1ZYzJna0xZ?=
 =?utf-8?B?azFDSzJZb3ZUQ0NRRCs2dEtEdjM1aFA3K1doTHlFcVR1TjU1d09kT3FQZ2FS?=
 =?utf-8?B?WC84VkZrSklrUHZpcWgvOU0zTGZ0MjZuZFBXb3dmeHFTNUtKUGE2VDlSMEFZ?=
 =?utf-8?B?L00yS1R4c0VVWllLSzBQTTQ1SzRNck9aMDY2cGZiQjJnQi9WZ2VRcHVXR2V3?=
 =?utf-8?B?STRiemVJanVNc1ZicXN0MCtaV0tZdFRaczFjek5RWDlOaHZaZlhGd3FVaFdt?=
 =?utf-8?B?SU1NVk1QMkdvMmMwNzc0dytPREwrODBKeW5hU3JjNWhWUTZjQ3dxUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: aa1e600b-fdaf-403f-ed99-08de4324575e
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Dec 2025 19:40:49.7646
 (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: 5su6wauNT2RJg3wNk948VCiSjISZFhLhIHEmIS9uYKkA+HW/WS4TSFJf5ceZosPGCaFaSkPQEEqBsEI4PaZnGw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR03MB8045

The coloring allocator ignores claims, reject the usage of the hypercall if
LLC coloring is enabled.  Note that the usage of alloc_color_heap_page() is
selected at boot time, and it's a system wide decision.  Once enabled all
domains will use alloc_color_heap_page() for allocations, which ignores any
outstanding claims.

The hypercall can be enabled if/when LLC coloring is adjusted to support
claims.

Fixes: 95debe51a936 ("xen: add cache coloring allocator for domains")
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/common/memory.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/common/memory.c b/xen/common/memory.c
index ae805ccbe4d1..3d978227276a 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -1660,6 +1660,9 @@ long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
         break;
 
     case XENMEM_claim_pages:
+        if ( llc_coloring_enabled )
+            return -EOPNOTSUPP;
+
         if ( unlikely(start_extent) )
             return -EINVAL;
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 24 20:34:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 20:34:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193193.1512145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYVYU-0006nq-Rn; Wed, 24 Dec 2025 20:33:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193193.1512145; Wed, 24 Dec 2025 20:33:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYVYU-0006nj-P6; Wed, 24 Dec 2025 20:33:58 +0000
Received: by outflank-mailman (input) for mailman id 1193193;
 Wed, 24 Dec 2025 20:33:58 +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
 <SRS0=e2J/=66=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vYVYU-0006nX-4N
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 20:33:58 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id de26c2b8-e107-11f0-b15c-2bf370ae4941;
 Wed, 24 Dec 2025 21:33:56 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB6985.namprd03.prod.outlook.com (2603:10b6:a03:433::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.11; Wed, 24 Dec
 2025 20:33:52 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9456.008; Wed, 24 Dec 2025
 20:33:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: de26c2b8-e107-11f0-b15c-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=A2xNm64AdSURhiw0w/BLo9fd7SDn1fxIKA6+0m299PX2TwuooDM9nObghmkyw9EciKhRWx+8OPU+li/+/TQrDXj2rys4e6igXe7dqRxc+/QvZs37Hoxf5n8vPVjaL5VQryZH7dMOn23ZQQaPkfJYRwsgwozFPu5c+DpOP329ZaF7zB0U2OFcnwi5Y+z6F5IKKNNOlGPjTzgsdxWT9qj2gDA3jXWjQVyF2FCnQd1oI2azR7OJAZfqge8qWUabon/YsLiUPX0ptghzxH7YdbreKqhKtFLOA+0R2rludnhvBKLqMuHG1yeNW6cicgSngE4xrvK0C7tkl0DACIgEYKtFaw==
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=fFY/S8DktWQ/eE9dIBCs2JqW4Lxis2xiMlqDxqD22ZM=;
 b=UXWwzkqfoTFgFloYGu8dlo62cYsmXHV7KOScfx40BsaQ+GauoSg9m9nu/MSRXaMeMsjIkJANJcXXo27ZGtxv3j15vHwuGFt5NZ3Eg5NJLlJ+UTmyskKk5fu80R/gm2e4nw2BehxWFruTFZJ9Gd7dtHJUX6MYRqA6EkAxZ9B1fFfEMejt5bOMG25aQR42Eq9wdlThSXAS1MOT3DYrzQYFXpQ0uI+Ojz2LNUw41fgwkcugSa1m1rZJ4j1rWP6FyGBaCD0eqmoGq8G6Whp0N6T2Snou6pxOov+Q312+rC+/EQYW+HBWo/0T1mZlkBv0T120yQ23YpUyzXzIxfQ3kOSk4A==
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=fFY/S8DktWQ/eE9dIBCs2JqW4Lxis2xiMlqDxqD22ZM=;
 b=NJMVMuZL2l7pHT/deDwKV5l+JEiElo25K/rPiD+Dj8dSVBSbQeqWis4DVP1YXrPfRSKtEV3Z0HHD8OcPRu5Nge1aKiInkO6b6g7M7dD3Kbu8pz6QDnScaVHdW5xtF9KyICtPjOIJAU/HrD87yEdFhNmwkrtA3KrxfDsQ7og5TUw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <23c0fcc3-234e-4eee-971a-7ed6cd045d1b@citrix.com>
Date: Wed, 24 Dec 2025 20:33:48 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2 2/2] xen/mm: reject XENMEM_claim_pages when using LLC
 coloring
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20251224194035.60173-1-roger.pau@citrix.com>
 <20251224194035.60173-3-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251224194035.60173-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0327.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a4::27) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SJ0PR03MB6985:EE_
X-MS-Office365-Filtering-Correlation-Id: 0f8d7361-5f6e-4dfc-3fc9-08de432bc024
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VEhhVnduQ3JFeTZpSjU1cDQ5RjE0QTMrWWp3a0xTS2lpbEtBZXo1eDJvY1JG?=
 =?utf-8?B?OXJHcllxcVBhQllTODBiaVE2WEJYZVhsZVI3em9keXFvTi9YWmRRSHJETmVU?=
 =?utf-8?B?Z3lBZ3ZBOVZDdEx4YXBTMERQendjN2xxaDZjMlc0cE96a2dBYXgzUWdBRHll?=
 =?utf-8?B?R2tibnFmWjdxSkNIeXZuL1VTNWdLMVQ2K093TngxSG9tTkY3Y3cwYXdxRDV2?=
 =?utf-8?B?MjA5VWR2VFJQaDNmUWpLZkp2ejlyN0w3MHdQUzdkQW84R3BuT1dKdkF4dmFF?=
 =?utf-8?B?RFBJdlFsTVhhYit2bnZrOG9Ja21SOG9EL2FNTDZJNWVaZDlsMkQ4RTNHZTFT?=
 =?utf-8?B?aWI5RnlZVkQyRWtldGVKcGVHUGRvd0Izb29HbGJUSDhDYm9xV2ZzL0VzQzRW?=
 =?utf-8?B?T3k2SGJZVnlDUHFFc1EyY2Z6U3FsYnFhOFVHTTNUTGJ5Y3VSdDYyMnh2UUZp?=
 =?utf-8?B?Q0tiamd4TWtMZ3pVK1FKZ2dHVmxDdmF4WXdBeVZ5ZzRxcnowNlVmNGZXOVpp?=
 =?utf-8?B?MWlmNnh4aG03ZUlXYzBscHFoOGk3RjNwZkdwR3pFcHpTeVFjYzlHT3puU0I5?=
 =?utf-8?B?enIzMElLa29oUlBoSUZuNnRFMmJqUHBQdmNnMDE3SEtTT1JKdGdXb1hjSEhZ?=
 =?utf-8?B?N2NFQ3NiRUM0R2NWSXJnU0F0RzNVVDAxRzFKZkhITzVwVXBOQ1NhUWU1SVVh?=
 =?utf-8?B?bE92OWwzd3VRdXRReXl0TlZWK1FkbitZa0s5Nng3RTRrWk5oU3dkektsaFRH?=
 =?utf-8?B?MmF3Skc3Y25hUVNPTE9vNnVRaXBtRllNelhsYVJsN0JQVFZZNHFuek9yMUhL?=
 =?utf-8?B?Qkl1akg0bkZ0RUtmdmJiUUJ3eVlJVS81eUFYc2s4anl0eTlaSm1RMFJ0N2xw?=
 =?utf-8?B?UUkwaVRWd09KQmlYK2dRaXprR3F2KzlubHhoM0FINXoxZFdLNnlvOExheSty?=
 =?utf-8?B?NTBJc3BUMGVROHQ3OHZ1WHduY2pSVmZ1SDJDOFlTcEljeVpvYXRPK2NFaUNQ?=
 =?utf-8?B?aHJIZTZOb05nU2kxWEtXeDFFYnpNRDdyWmR1aEFXaDBDajd4NG4rWUIxL0V5?=
 =?utf-8?B?NlZKYXorc2ZIUkthYjFUaUxGaVIxT1lmYzMzZjBIUTFRclhlWlVuS3JWS0pv?=
 =?utf-8?B?K1I3TVBzeFlUYWRqVVBDaGZIT0EzVER1REJzbHdkVmhVV1k3RWNKL3BmTGJs?=
 =?utf-8?B?clBxei9aeHNEU1BxUFB2MnpoaktURS9IU3lialFEVW1BMFE5RFVCUmxOUkhm?=
 =?utf-8?B?TW01V090Sk1WRWRWRFo0eXhnRDYzRi9xTDYyNjVIVkRxRW10dG1zaG0wYkJy?=
 =?utf-8?B?U0trbS80YkxpVURkRGlMbktnR0ZvYnJTMnBiaElYQkc0M09ySW9za21BeFda?=
 =?utf-8?B?MnFGTU5qOU9pWmV2NVd4dXBhMmlacVZwQVNRUzRmdjZwbmJFMUV4Vldvc1JT?=
 =?utf-8?B?UzlRODRsU2NSMjQvdDI3aSt5a0k3SlI1TVpjV0cwWXFnY1Z6RFZDRGNWcDYz?=
 =?utf-8?B?eW1PdTIvM1hieTFVQU11c0FlaUpyMVRnRktwK1FZblliQkEzK3pyYjUvamZ6?=
 =?utf-8?B?TGNyckhVZE9BZzBWMnRRS2pJRHBwSkV6VU5sOUtZcS9KeXJjNTg5N3U0eFMw?=
 =?utf-8?B?b3pSd05DTVltTnFYTlE0Uk02UjRVQWMwcVhzTzkvU25UajdaazFWekN5cG81?=
 =?utf-8?B?SStKYTQvRnY0VTNsTWthWjdnM3cwU0JQeFFITnlJVTNMaUUzekNNMFNMb09m?=
 =?utf-8?B?dEtETjk1eDhKdWMxRGV4SEs5cnJjTGJsMlVqS2prczk5c0hyMm54NUNnbDM2?=
 =?utf-8?B?OVJFMDBadGR4REUyUnZmZlpTemxvb2hvM2dFakJmWlBHOXg3ZEFndTdiaVNU?=
 =?utf-8?B?M2RYLy8zM2tuVGFkbFF1V2F3NUFPK05mOE1sZFovaXNrZU4rY2YzZEtnT0M5?=
 =?utf-8?Q?OZMYSuTmEUybVv6xC3JuCXgWD9tjnPOn?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YUIwOGhsbnIxcllORGFCNUkyUjJFa2krb0cyMDUydmtlUUN3elFUTEppelph?=
 =?utf-8?B?eHNPTmNUTjVDdnhQR0t5Q0RkQ0xyRTQ5NjNuUTZDbUltNFUyeE9tK2FNVVND?=
 =?utf-8?B?MU44cmt3ZDI3Tlhlb0ptekRXOHRWNzFjOGVhNW0rS2dRbGM2WSswZlRpR2Q2?=
 =?utf-8?B?SDZOMDFxMDF5Qms5STVEeC8rY1ZZd053ZGYwWmVOai9CZFpud0FHK1RnVGo4?=
 =?utf-8?B?QmM5TnArRDJLQUt0WmFhWDRHNWZ1cGFZNllnd3RYZnlSZFdBM09pbi84WFBQ?=
 =?utf-8?B?L0R1QVkzaFp2WC9BQWJsdGhISHBsQ29vcExSTGQvZjBEYi8yQ2JWQkdRWFly?=
 =?utf-8?B?YlowUnhkRlR4MmlaYkFubUpCN05RbzBHZVpUVm9KVXhMZ3ZEb1lYdlhHUUJi?=
 =?utf-8?B?ckpNa2tuK0MxNUFJcUtndUJxcFM1N0JaVmJRckZ2T3ovcEZVUVc5cXNXbFZW?=
 =?utf-8?B?dXh2UzduR0tvczB5WlVEOXA5eTZzT2NOQkJRUm5LNjJrcng5Szh0T0RwV2lT?=
 =?utf-8?B?dnd2WGRQVjdKQXJ4Tkl6TjQ3VGlNQWtmUzZ4SzE5ZHFIRWh2dnBHdnAzRE9Z?=
 =?utf-8?B?a2RoVXFNb3RoK3ZSemo4UStDVU1FUUs4Y3JlOEdBb1FFNm9BOXV2SC9KaCt0?=
 =?utf-8?B?elJpQ29qZ1dGNHI0R29Ga3p5VE1TY0cxWFdPbHdFcm5hQW9ZbTlRN0d3RkM0?=
 =?utf-8?B?ODg4Q0xYZFBocjhOUTJmWERZN2NrR25VVFF2b0FmSUZ4OXorVVMxU2IxQWlw?=
 =?utf-8?B?SlgwTGMzSmQrTU1vbStOVkljR2R3SmNlVm01OXF2Nmh5OXJDcGR6YUM2TkRG?=
 =?utf-8?B?ZFBoUFV4NUhCWnkrSFlTalFsWENTTW1zWDNGUGNTWnovL01CQStBd2JiTkNm?=
 =?utf-8?B?aGhvR2hMUnBoYk1oZmNnaUdTNXA0RzNRRmRmWEtrMDRTOURnMDFpMTJBWnl6?=
 =?utf-8?B?QVJPY3VEc2E1ZWE3bUFFa2xoaTJEcDlQN0dJcnMzc2JLTk5OM3dmRXU4WjBj?=
 =?utf-8?B?bGY4Zk9FL05oeTN1aFhPOXhoWVdpanJTZVFBN3huQ01LY25POVNqZXdFa0Yr?=
 =?utf-8?B?SEZ3WHNvNWxNaFkyTEVDNWo3dHh4bkZkOGZQV0Jjc3J2U0UyUjhXRWpiQzJI?=
 =?utf-8?B?dWtBbDQ1R3hITHFPdWxaOVF2WHRteFZVRm5lTVhvdzVYZnA2QzQxcUdwbks4?=
 =?utf-8?B?b3l1dGxVQVQwZTdXaUZpK1pBcnkvczN3ZEo5SVdmZVBrejVPTFZNVHJGVGpP?=
 =?utf-8?B?TXNSUTk3aWR0b3hjOGdGVnJhWXZYSkZsWUJnOFFFU0huKy9tVXVBUlU0RVRo?=
 =?utf-8?B?bC9aalY2dWxPNDU2YXdndGhCOHgyNVNhVGVTcnMvS0paTm9UbmJlNDdRYytM?=
 =?utf-8?B?bVFqbm9wN1QreFB4K1BteDZUL3YxK1VvYVpXRDBlRUN4OXlRa04wY25MOEYr?=
 =?utf-8?B?TEFMVU1LK0FyMzJ2TUhHRnpQNmZFejZzVElncGRoZHZOTTlMeWxaeFAzNTEw?=
 =?utf-8?B?TElzWVFhWERIWGxaalYxMytVMGIrZUhBdk9weHdqdVZNcjZFaTNreVB4RWpD?=
 =?utf-8?B?bk1Pd2RZMGRqbkdVREtzZ0hMWW1JVXoxWHlQQ1RidkdnQTh2MklrNSsxNGFG?=
 =?utf-8?B?NmtoeE96azJMMzNubTFRQmdVV2hvUVl4dHJXL1pWQWFnR2R4VWlvL01IMGFV?=
 =?utf-8?B?T0UxeVJ1YW52c1Z6cjFhM1FuMGkyaHNRd3NOcHJPalIxWGgxMklEcWFNUmsw?=
 =?utf-8?B?MTZWUWU1QnhjcFpldC9tNmQ5ZTlJYXJZQnlhWkU2TnJxNnV1NXdiSGg3NTQ4?=
 =?utf-8?B?a1ZXQ1Fwa0tCVE00S3liUmZEclVlSWxFMDhsV2V3ZzJGY3o3dENKclJwWXhZ?=
 =?utf-8?B?a0dCOGZNbmVKMmRneTkwcGpiaXdDeVRHRXNkSDh4NUMvR3Uya2tIeit0d2Mz?=
 =?utf-8?B?VUxydVlyOFNwUGl5TzZMYVNiQVM5b2gycGtVYzBhRXVVWDZRQzNZUFJkSmVJ?=
 =?utf-8?B?MTNnTks5MmZqdEszYi9USmswOHBLRHhhbGhKb0pQSGt2d3pucWNuQk40ajFj?=
 =?utf-8?B?SkJQYk9SY3NueGE2MG1WYVlhaFhad3QyQXBoUFdNYXBaR0pVQTdFTW5wSkFs?=
 =?utf-8?B?MHJrMVNQWGlpNFh4T0V1dmJONERsMGNKQ0FBdzFxa3J5UE5UcThhYXJFSUUy?=
 =?utf-8?B?SXFidjQyWG5CQ2VQaVhva1cwTEIyQ0xHakc3OXUwQlJJM2dBVDc0N1B4NW4w?=
 =?utf-8?B?S1Z0MmpZRzFCSjB6d1JMM0ZTK1JubnNEK3g2K3NsWFRnbEdEdWZrN2hsRWsr?=
 =?utf-8?B?N29tOXhaWXcyRHk2NlRHbWpEQWU0bjUxNmgvSG9ITlFHRjF6NWtPQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f8d7361-5f6e-4dfc-3fc9-08de432bc024
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Dec 2025 20:33:52.3141
 (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: GUoWc4mXOEnjM1JasfV0q3Hk2puTHrYVkFNdSG8qWatk62b3Fu8veVke2bmhIJ95hbxC7baVdJWiFIBMcZ2kuIlRuHbjwhtcrQE4aaDFHDI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6985

On 24/12/2025 7:40 pm, Roger Pau Monne wrote:
> The coloring allocator ignores claims, reject the usage of the hypercall if

Minor grammar nit.  You want a semicolon here rather than a comma.

> LLC coloring is enabled.  Note that the usage of alloc_color_heap_page() is
> selected at boot time, and it's a system wide decision.  Once enabled all
> domains will use alloc_color_heap_page() for allocations, which ignores any
> outstanding claims.
>
> The hypercall can be enabled if/when LLC coloring is adjusted to support
> claims.
>
> Fixes: 95debe51a936 ("xen: add cache coloring allocator for domains")
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Wed Dec 24 21:51:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 21:51:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193214.1512156 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYWlf-00084t-5b; Wed, 24 Dec 2025 21:51:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193214.1512156; Wed, 24 Dec 2025 21:51:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYWlf-00084m-2y; Wed, 24 Dec 2025 21:51:39 +0000
Received: by outflank-mailman (input) for mailman id 1193214;
 Wed, 24 Dec 2025 21:51:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=e2J/=66=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vYWld-00084g-IM
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 21:51:37 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b4e303d9-e112-11f0-9cce-f158ae23cfc8;
 Wed, 24 Dec 2025 22:51:32 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MW5PR03MB7006.namprd03.prod.outlook.com (2603:10b6:303:1a9::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.11; Wed, 24 Dec
 2025 21:51:28 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9456.008; Wed, 24 Dec 2025
 21:51:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b4e303d9-e112-11f0-9cce-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=j7J84sBHTnj8P1Uq60qgbGUVT7FpOiRSAFwnSU9zRlwGi88TcTwJW8KslT9bxz5p0hgUnc0TC5Luo1YE5k+9a/zLba4EJbQJ+bwrnZUrMRNyLtRDVqNWCoxbkDCrqC93lw5p1PIDtDWxNsiYIkTt3cp/va/h2CrrmzHkLS3JQ0vHV6TDuMA4WddtjDxV8y9ixz/NM+xWRQ7aP9CCfSne74t2AxDoGiM45d+QCBY4rloY5lar/PJdD/etEnsPcvwAFihIF05NKI8JCDdEJ4syO9hy08b6DiDoYX6FdRrFxcNBF0Az/hZXYVYTVqU2HDRowyLP3s1BTVl7b16J1Qyl1A==
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=IAYQp2jY0c2ffDuovH+vVpGvWCzGf1gztqyf7C9P4NM=;
 b=rQ1CUAmt3svudWNrqTAxKzWvImXjOqD07yZ1a+Oy8HJy7K0AYdKeaB73T+gZqUs+0JneEJjaWwWeSkKay3bBV0MWoMzpNZrDVKzXo11RfA9iV4kKzngrHcs4AgEJpOp5KB/29zejn0uLggELX5jz5kBzcliDlfmGelgOLJqj4KdoNWbcUKRvP724oPzWz/GesJXaBFysgHn56RnHlJEQ7hwLYnV1uMO5hzeQMDP2bJCShEykXXGgoUsbhHKrkdCR/R1e2ViI7blEOXUy1uaVZ7Hv4zt/hudYJMyH1tNAeSfNoTLuUQp+PDw4JAER2Z4wGud4OTW+znKL8Ln3T9asqQ==
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=IAYQp2jY0c2ffDuovH+vVpGvWCzGf1gztqyf7C9P4NM=;
 b=ooXN7DNpesMG+do+77oSgp1KM6aet5XrTWjHmViD1rRe3bM0w5cNQWdWQiliR90ngjF/mOWgVBILjpcZqRhRsT0ianc1h63vN/sVbZSK6G0BF1fK5ayruGeMSzxF6UvTcfVacgQq8ugcsjqJnGPjXrcrl+I9amTaYr3gwwyEOHs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e93e13e6-ae8a-4546-b495-791e9ce1d150@citrix.com>
Date: Wed, 24 Dec 2025 21:51:23 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2 2/2] xen/mm: reject XENMEM_claim_pages when using LLC
 coloring
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20251224194035.60173-1-roger.pau@citrix.com>
 <20251224194035.60173-3-roger.pau@citrix.com>
 <23c0fcc3-234e-4eee-971a-7ed6cd045d1b@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <23c0fcc3-234e-4eee-971a-7ed6cd045d1b@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0001.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:150::6) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|MW5PR03MB7006:EE_
X-MS-Office365-Filtering-Correlation-Id: 4e4d5274-b21e-4efc-1a43-08de4336974a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dzUxdnF4OVI2S3ZBbWlBbHI2SCtiYWV3ZWRUT3Z4NlJ0dVZwSXhIaGZDVitG?=
 =?utf-8?B?TW12bjR0SUJEWW16Qkd0OTAxNWlEdnV3YjFGTWdQdWtpeG1iOWxuYzN1cm9X?=
 =?utf-8?B?WENuR3I5bnZKTTdEQW5ORERZemVUR1FaOTBPTW5ha3pPbXJUTHVvTHN6M2po?=
 =?utf-8?B?WlA0WmtxcmFOUU00TEd6TDVSUXZsUEtndElTRTRqMTZVcEtnMkVkN3hDS1lP?=
 =?utf-8?B?TUVMYkU0RlJ5OUtVSExBQkU3bjduancyRUsydmRTUUhGd2RGcXI5SXNVWGRU?=
 =?utf-8?B?cUpIaWV2SFVORXNKdnlsbzZNaTNlNjErYjNQWVdaeFJuTlYzV0JxaUdqK0lR?=
 =?utf-8?B?aDhlTTYvOHd3cXR6OVNLZGZOS0lkNThvMWMzN3hsWEVhbXdwZkowTlN2Tm1I?=
 =?utf-8?B?cFJSWkYzVW5NSWRIV0YyTTltMkdIZ2R1b0ViOFg1MDkxVVVuM253QzgyL2Nl?=
 =?utf-8?B?ZElhOTFFajBPbHBSdmtOY0lIdW1MbEtvTEFpcm5XQnBpOEQySnBtbVNmNmZx?=
 =?utf-8?B?R0NGWDJoL3ZjL3FxM3h5ejlaQzc2S2ZIa3psRlM2b3JxRDdvZkRQOGNaZFoy?=
 =?utf-8?B?V3ZRbVgwV1NtUEcxUWY2bzVMOGpLazdTWGF2K3B3amdmbTMxZXp2ak5NZTJC?=
 =?utf-8?B?cUNDYnBHd25MTndpUlhMSi9IY1k2b0J0MDA1NGI4YTk2N0RpTHJCa1Jzczgy?=
 =?utf-8?B?bkFVT1lzYUtmdFhTU3lBaG9VbGVQL0w4cXdxNHM1clhjbWZKWVZ2ODB3Lzk5?=
 =?utf-8?B?MUQyMWZYTEJrS1VFU2cvb056WjY2dFVySzdzNGpYQUFDd2pqZ05GdlRvSU9Y?=
 =?utf-8?B?UENOYUlwa0ppekJNdW5hcVAxYmRrWkgvYTQvUVBpcGlOaDR3elQxRktaSWZR?=
 =?utf-8?B?MElsbHJSU2tzaFFiSGdiUXFPM3VsY0M0V1pra1p1R1JaY2VEQjkxR3cwVHhp?=
 =?utf-8?B?b3hkVlhVTVp2V0tUNk1wMzExakp3SVZZTzJJSnFTU3VaL21FSVJ3bjBRd0E1?=
 =?utf-8?B?Qy9WNHlwUzRQTWdjSFlXTVRGMzdiUmpUV2FiSytBNnlLZU50a3I2SVJWek8y?=
 =?utf-8?B?UzA5SUM4dUpGQmV3UGRUWW1wekZWNnlHNnJGanM5NHY3SjFZa1pKeFpqZkI4?=
 =?utf-8?B?L1drbFdoVXpENXlMdGdzSjJ5dEFsSDQ2R3RGaDB0aEhhNnZUOVMxS2pjeUk1?=
 =?utf-8?B?UUp5VW1UL1k0WVUySERRQjJLeTNLamdNV1dCK0RaTHB3S0RWSlYrNFNUZWNh?=
 =?utf-8?B?MDREN1QwR0g2RDFvSkJNa1Jqc2tvUlZiL0J4U0d1SzMrVCtzTGhmWW5uT2l0?=
 =?utf-8?B?dG90SDhmdWZxOXpvdXZTUjl3TlF5NDQvU0x2b084OEVuYm5JN0Y1S3ZQR3JC?=
 =?utf-8?B?WkpiREk1aGREVGJsaXB4TjYrMDVBWXZBeEpjM2ZySks5VUcxMmRsVVkyUEEz?=
 =?utf-8?B?aVJndnloNlFEYUpCNGg5YkZmR1RlSll5NzZxSlhOZ1BUM3lyNm1MeVVTWmpj?=
 =?utf-8?B?RWE3RlpOeVQ5QzhBQndvYnFqbkpnaVlYMzlOSE1YT2JLb0hTK3lRRTg4NTJm?=
 =?utf-8?B?MFZOeXNFdC9ZdFk2QThkY25QbkREU1NpM1lyVTJkUnpZZkFqVGxvOTFYSTFM?=
 =?utf-8?B?L1VVRVRUQXMza2orUnpVcmdRZzNzMDZXZVZvM3E1WHBXZk9HRm9Uc1YwSHA4?=
 =?utf-8?B?c2lnamNaYkZkdFdMMjZlNHAreStzb2lNZWhZVFAxemhCMlhsSVpiSUNsOGpD?=
 =?utf-8?B?MUwxaE53SjlvaWZ1dStvOGVRYWJRT0M5Vk1nTkVwaWl1dWFwczZWcE1SZkpp?=
 =?utf-8?B?eDJhMDhlNkZLL2xQdC9WTlB4ZUdXa1dIQXZ6SitqNzdoNFZlSmFEem5SMU4v?=
 =?utf-8?B?SU5lVEcwYkxMbUhqdVpYbklGOXptUG8rT3JlVThFU0Rjek9mUXNaMTNmWFJC?=
 =?utf-8?Q?fmNmg7GZM6aXTzZyt1RRRldKOC+wu17D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?V2wrdHpMbjhOeFZ2ZlJtMW0wRG1CenVrUVBkM2p3dkZVVTF2c2dHUjZOdkVq?=
 =?utf-8?B?ZVhCZSt4UXJlNCt0bit2QWZ4ZFo2QWdrT2ZMc0wwWmg4ajFuNkI1NEdGUEhp?=
 =?utf-8?B?M0xtczY2M2lLMjBUZWZhYkQwVy85dDNNcllPcWhETURHcjNjcWxQVWZMZ2oz?=
 =?utf-8?B?T01qYjZPTW1TM0lxcm1MdTNPQTcwVmZGQUg0SnBNWE5yQUNEVG5HRkJXMGxB?=
 =?utf-8?B?bFJNY2hzZjNIWThaQitvZ1MwTGlINnl2NlBQeG9vU0ZsUVpvUjNQTnlmZ3dx?=
 =?utf-8?B?ZllVaHp0b29VcWVNVnNwaWx3aUdzSUgrbCtmUzV6Um9laVNPeDNVZXlxMldP?=
 =?utf-8?B?S1IvWXJxQ1NNMWlrNVczZ1M3bUQ0Ym92QmhYN25CUEo5Yy9aeTVWMzJZeTlT?=
 =?utf-8?B?S2w1QmN3eU1vN2lCU1V6Rmk3Nnk5MHc5RWo4Mkx2ellvay8zdUV0VCtaMklt?=
 =?utf-8?B?SHZRVG1pSXhFTHY1aUI2Q0ZodkI2bkVReHYzelZKNWQrdlRFSDRpRmRGLzlH?=
 =?utf-8?B?MWJGODM2dXI5VXdmcENORnBWU3lacmJJUHQ0M3VKb0FjaDhvSDhkNXgrUWZt?=
 =?utf-8?B?dzVpTElvRVA4ZE5zb1RZUENrbDl3MkZnT2M0TnpJeGVSeTBTMm0wRnZva001?=
 =?utf-8?B?NTRSRmRra285aEtIYmNwM0VYRmtublFKY2NVWkJPQUxVMXZ2dUtLeGd5R3Vw?=
 =?utf-8?B?a2lGMm1JWG5ULzJzNDNFSjQ1VlNyeGd6YUJDekhmbGV2TngxQVJpZGNrRWc5?=
 =?utf-8?B?dE9mRzNZcWtHYXRpaExnYm1JZUNoMllrVjFmcWg0dkx0bUNueW5QZUtDRFRB?=
 =?utf-8?B?aWQwWVVzNG92WjVzVm1WSlk4bE5MSXovbEFtdFJqWHhIdWtXTFYwRXZEN3ND?=
 =?utf-8?B?K0tHaXEvZm5uYTljbXJ0Wm8xTHRpcWJ0UVl5OTBKU0J0Y214L0xQVUJjUUEx?=
 =?utf-8?B?S3B4ajloZTJ3MWtRSkg0eFBLL3h3L25ZK3VpK0JyaTJ2Y0xySjdrL2d3cDJJ?=
 =?utf-8?B?dUkrSk5KL2R3SzN0c0NZWmw5YWJIUExwVTQ5UVZrQ25zeEJ1MEtVcm85bEk3?=
 =?utf-8?B?UXl0Um55QTdzQWJ3NThvdzk1R0ZydzVFNFJuY2JCZktQaVk1RmloMHVaNC96?=
 =?utf-8?B?MGFYMkg3YnoreEtJTGNRanUwTjh1QWh5V0JYOVpsbmNtN0dDRWZieFFqbDFZ?=
 =?utf-8?B?Q0RNR3pob3o3OXc3eUQyQ1h2RU11aERvYlVwTnFweWJ4QjJ6ZnJWVVpJSGls?=
 =?utf-8?B?QlZhcVdMS1FBVmpQU2RaVmlIRlA3bThhc0pOTGhVUDU0ZEdUSExJWi9jN0tQ?=
 =?utf-8?B?R2NadTUyZFVqa1VTb0pNOWdVeDRqckg0MjlKQVdublkwb0ZWcWFWcyt4Sm9B?=
 =?utf-8?B?Q0RYMU5nd29Qa2YrdVJCaS81ZFk3YzlwRThSSW5LL0VjK1ZjOHE0T1hJRDhR?=
 =?utf-8?B?bmpvVm9ueVVqNzRkeXp1elRuUTR0UUlEdys2cERUWmZ1M25YMFNYNGNHbEhq?=
 =?utf-8?B?azZidzZDd1YxRDlWQ01tZ25aTjJDSEl4RDVCV2x4UEIxbm5ZNXg5VE5ZcWhm?=
 =?utf-8?B?TU0yNFNhRUhCSENoR2k4Qy9Yc2d4N1dxT3V3ODg0UUhwQ1ppOThuRHlwZEow?=
 =?utf-8?B?dFdINTNVL3ZLV205QlEwTGF0dWU2aXUrSUpqdnUvd1RtSVg2a2xNKzAzallY?=
 =?utf-8?B?eFJHK3JkbkxiNFIzaXlNa2tGRFdmdmxUNk5EY3IrZ0Z4WE9yRlJtMnNZRTNy?=
 =?utf-8?B?WEVla1FMbzB4cnZuT1N3aEFwZkFQQlBjZ1dvMWVpL1BSTDd6NUtnNThON0d1?=
 =?utf-8?B?L3JhTk1BNS9VNWovSHFVNkdwVmdmWS9vSDR3T1B1QVZFZlgrOS8rcTZqa09x?=
 =?utf-8?B?VlJOOHFyYVlNZDdWZTJoU3FVREEyRGFUNnB4NUNZa1JpbTljenlTajZveHlk?=
 =?utf-8?B?WFF5TjN1WGR1dWplWERaT0hYTWE5YUxERWkxYS9uYzBrWk9JK1Fxek04dVNM?=
 =?utf-8?B?cXNvZWRNVGhNejlHek1pWDN4TDFVSUMwUHhFaUpxT1JPWjdXZmxMZDlCbi92?=
 =?utf-8?B?dWs3NXF5Z0FaVjJKUWdsVDlNQnZuRFU0WTJBd1YybXJYdFRvWXIrdkdCSm0r?=
 =?utf-8?B?ZjNaaTNVZmdaRTBibkhjTUMxOXBrUHhycmdnRFd2RThSM2NyNnVqYnd2Q21D?=
 =?utf-8?B?Yk84RW5vYlJ5V3ZQRWtZQjNQakUwU2VtSnA0RVdtZXcraUpaRjZ3UUpRb1Vu?=
 =?utf-8?B?NDdVYm04S3pJdzVsdHdpckpmUmF3ODRCTFdlZHVQYjFYZ3FTbnV6QUR2UURr?=
 =?utf-8?B?M3crWEtWR1Fhc3VkU3VqVUUzdW1sVVZ3V3Q2RGVKK0tsUkFWZnprQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4e4d5274-b21e-4efc-1a43-08de4336974a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Dec 2025 21:51:28.0334
 (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: ASUIDv2XNMtyUvcsXBhJfl/ND3Owd9u26ViLdcU2sP8uWh+XiTjBCJ9qO4KTufMcQPGQHU3yFy8FXDNkrs6VblKNudBc+QofoVEWuwddSes=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR03MB7006

On 24/12/2025 8:33 pm, Andrew Cooper wrote:
> On 24/12/2025 7:40 pm, Roger Pau Monne wrote:
>> The coloring allocator ignores claims, reject the usage of the hypercall if
> Minor grammar nit.  You want a semicolon here rather than a comma.
>
>> LLC coloring is enabled.  Note that the usage of alloc_color_heap_page() is
>> selected at boot time, and it's a system wide decision.  Once enabled all
>> domains will use alloc_color_heap_page() for allocations, which ignores any
>> outstanding claims.
>>
>> The hypercall can be enabled if/when LLC coloring is adjusted to support
>> claims.
>>
>> Fixes: 95debe51a936 ("xen: add cache coloring allocator for domains")
>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

With whatever config I've got lying around, this doesn't compile.  It needs

diff --git a/xen/common/memory.c b/xen/common/memory.c
index 3d978227276a..10becf7c1f4c 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -16,6 +16,7 @@
 #include <xen/iocap.h>
 #include <xen/ioreq.h>
 #include <xen/lib.h>
+#include <xen/llc-coloring.h>
 #include <xen/mem_access.h>
 #include <xen/mm.h>
 #include <xen/numa.h>

added.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 24 22:31:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Dec 2025 22:31:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193226.1512166 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYXOK-0004gs-SS; Wed, 24 Dec 2025 22:31:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193226.1512166; Wed, 24 Dec 2025 22:31:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vYXOK-0004gl-Pl; Wed, 24 Dec 2025 22:31:36 +0000
Received: by outflank-mailman (input) for mailman id 1193226;
 Wed, 24 Dec 2025 22:31:35 +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
 <SRS0=e2J/=66=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vYXOJ-0004gf-4h
 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 22:31:35 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4c6d374c-e118-11f0-b15c-2bf370ae4941;
 Wed, 24 Dec 2025 23:31:33 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB6480.namprd03.prod.outlook.com (2603:10b6:510:b0::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.11; Wed, 24 Dec
 2025 22:31:29 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9456.008; Wed, 24 Dec 2025
 22:31:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c6d374c-e118-11f0-b15c-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QW7dXOLjF9ANr/B+dJ93CWI9Vvu6NLinurl3W6A/n/yI25w77/KSU5DLOq4fUf7f4+bVgwmTDwrOCpbzC9T+1/Rdph+bUk/Au+wnUQzuGcdzxdJbATBvwXo+xGJmZCMHJAS6H+Bnhd1ji68eJFdrgVM1o6vDHascqzpVyu4hwj4V2fKsiK3XnYRYj3M71O2SrYtcAofyFT/W7efON5nOCx/T2VPHnh0RVejMzw9YiYJZYorr+G4d90Rn+ldXRzy00M6khjRwydKNZofqxLruGPJTHitLYSYqVddMvGdW4QaqrHjPYNGbRRNkg/oFjyzIIK3GhFTeDMfE8KgpPtWKCg==
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=3DkZW9ANeNkDRudJ8QD3cLuqVFYFjj1HgGXb3KTV1as=;
 b=XPSqMRH+tF9MoMHlMwie8OGjJUYe5nM9TvgXrRczXJcm2l1Dul3BVkCDOzD6TsdoyqPdS7CxN6weLvjvtNvaMyenY1B2Ohn5cPPLQoibsTlIV+yWjaPts/mZMB2TsDq2/p5oBuwVr8JxON6xIKNDCp2Rgz9KixpCTFbMGe9mC1KNTVwvq4FvlzH0FO2Ju7MZR4uvsG5uo8/d1DQxyZPNY/BgNq7805+TTgd4FIRbbEwmYOeyN/RtExIXbRiFP96gRo0/4Jqnscv2alHN7IVrhStZf1TkgCarZHML4eVSMp3AgiZ/enQAsv7L4uONNJFL+IeJBt4eZWAnRY4/YojMVQ==
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=3DkZW9ANeNkDRudJ8QD3cLuqVFYFjj1HgGXb3KTV1as=;
 b=l55Nt5tB6qgQpU/AvfNiuDk9npcMJbdvUczxm7m1NUiOOsy1/Nh0BOHhrPpobwMVzOKOLmj3lv2YXRVtWy7VMSKCsXJFSmgdRt5N7WvQFVuTatHYoy75pD7dzr9npE+T7vHdIy2tWSGxPzEb/3+V07qFASXFiccVNlneSw/pSGM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <bf6a97ed-2daf-4057-a283-cfe820954c71@citrix.com>
Date: Wed, 24 Dec 2025 22:31:25 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2 1/2] xen/mm: move adjustment of claimed pages counters
 on allocation
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20251224194035.60173-1-roger.pau@citrix.com>
 <20251224194035.60173-2-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251224194035.60173-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0655.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:316::9) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH0PR03MB6480:EE_
X-MS-Office365-Filtering-Correlation-Id: 620e5a86-90d2-4419-b193-08de433c2e51
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ekJ6QXdnd3Y1Vjd2RkVsVHJCQlZKclhBajRjTDRRYWdPUUlVckxNSmUvckdq?=
 =?utf-8?B?M2c1UXc1YjFobWs5UVdMcjc5cGhCMExQK0VueDFMNU85a2lqUHJyRk5jRU5C?=
 =?utf-8?B?Uk1lWUIrQjZtZE9qbFdXb0Nhek5Say9GazBDZ1UyRjhtQ1NEWVBoeHEvZFZj?=
 =?utf-8?B?aFJrMmRVV3E2d0VwMXRzelRocVI5emlVUGc4dGZLZmppeTBDUVhybmFhVlRM?=
 =?utf-8?B?Smo0bEhaaUVqSlY3WHl0REVkY3F4QWcyazcwcUdUR2lhVXRISVR4NVVDV29N?=
 =?utf-8?B?K0xFRUxKZVVRakl5MDU2RHNudU1UUTRqQzVzZDFCdVAraEZiLy9HeXRVN1pS?=
 =?utf-8?B?YXp5ZkRnUzMvSFZDWm1COUNSSzB5dVFZOWFjYzV3OThmK2xYTlo0RWtGRzdq?=
 =?utf-8?B?aGlzcURaeUdpOXMzcXhoZlVBdzJFU0llRS9wbFh3VTVqTU13OEQvRVJYMXRj?=
 =?utf-8?B?QnFUUnMvSm9PUmJ4VFBjWUNmYjRkTm5mdmNqRWdKcU1LaFZnODdCZk5TS3JZ?=
 =?utf-8?B?VUFiV2I5VzlQRkNTNjBLa25RR0dlT1BEalpmN1RvZzZvNlMycHRkcWk5MUZP?=
 =?utf-8?B?UlJLMEk3OFVybU1ONEUyTnNXR2VNTHE2c0F3QmVIOE9hR2oyektCLzhUT0Jt?=
 =?utf-8?B?NmFoSXU5VDlqajRENlYxOXJMeUR1MjdxMnJDWVFHWkcrd3ZUY2N0aXRCdWZi?=
 =?utf-8?B?bkcrYjVQUFRyelZ5M2dKV3ZpbmNnK3FwQlRWSzBxeHBia0V5YjdZeDNtZzlM?=
 =?utf-8?B?MXhWQVFjQmF0dU5BdmZyanlURnZwV1BzUnlHS05QRlFlQWM4djJuMUtVVnNH?=
 =?utf-8?B?ZTFjNnBuNGF6cWdwazcyV2xMSXFmRWU3T2IrcE5XOHh6ZTI2VFBRbTVJSnZr?=
 =?utf-8?B?VW5xeXVxY1FQS1gzU1B5aGJZSHhid2ZmdzRaNkZSUlEwcFc0THl4SzdGOFli?=
 =?utf-8?B?eHNtbTZhWFgwdStZRWJkbE5jK3htanRwQWFaWlBYdU41WWdSVTFMbFpqby9L?=
 =?utf-8?B?NFFhckxpK2tIdjYvZU5iaEpxS3RWVitucFdzNlVCZ3E1SzBLRjlaYWdabU1u?=
 =?utf-8?B?djk2d3NnMlpwVWl3eUVHQVJVYU1PUzhBd3FYblV1bGF3QTlWaU5GcUFFcXhW?=
 =?utf-8?B?VWlSZFhQZHZtcmMvVE16dXUyUDMvWTNtQlllVndMZTJxRm5GbHJXOTZXOXEv?=
 =?utf-8?B?MHp5bDZLS0ZUTHBRakg1TkNXNWNqdFZOb1FveHpPV0JlNnAvL1d5WXRyVisx?=
 =?utf-8?B?YWtTdkRrMkJwRzJJTllTVTlsL3hyYXc0OXNSR0FDTURTbmE0NFFUTTE4dzNs?=
 =?utf-8?B?ZHg5MHh5aGVnZW00VktJbmg4QVhRdXRLYlpZdG1HRXRtajdBeUdDMGxpY2FS?=
 =?utf-8?B?NUIrVmhKY0pzNXN4ZE5JNWY0RVdKNGlUNVV2T05iY21ySVFhQzZUYUVVbnFV?=
 =?utf-8?B?TjIxb1RMaHBrc1pOb1ZubmlyZGZwclhLK0x1S0FSTHZCWXVESzNIUDBNRklD?=
 =?utf-8?B?RlFsL29oTXdqUHJGTVB5dEJER3NtMXZNRDd6aG4rQkc3MkVSekw2QTczQkRv?=
 =?utf-8?B?N2hGV1UrZlY1WFZuZS9yNmx2V29zT2krK05rYTlWYmZ4aFZ3YXB6MnAzSDhG?=
 =?utf-8?B?MFNDVytsWkRkU1JjR0YvVUp6N08xWXZ3aTc0ak5Zd0hUOExHVVkyd0ppZ1gv?=
 =?utf-8?B?Rm1QbGZ1blJjOHhweHphRElDVjRJOEQwRlk0aFNRN2lLY1hpSzR4cmR1SjZp?=
 =?utf-8?B?QjUrSmpKNzBxOHVUSHR4cmVSL3Z2Nkl6U2lEK0orSHhkQ3NwY2lJQjRJUExC?=
 =?utf-8?B?VFpiM1JFZ010OGk3QUk0a29iVytaK09tUzY0T204Y01MSG9pcWtZQlZvS2lR?=
 =?utf-8?B?bEdwSzlEWGRuaklyOVR1d2lGVWdkSDkxTFhSK1VUMWJUcjZ1TjI5c3pGZVN5?=
 =?utf-8?B?ekh2SUNhQURXMWYwTDZwVEhYMldoMWF5TzNCL0lKVitLd2QzcTJNYkVpS2Nq?=
 =?utf-8?B?NTRsUVA0ZHB3PT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VFI5SzB0N09xR2prMnJMQThMSHFrTHpqeU9UMlJXZ0hCbHJpWktLeCtDRXht?=
 =?utf-8?B?QlhobERnWDBhSWlyOU9TcVBBWldYb0lMSU42Wi94dEF5b3hRTS9mN2k4L1VP?=
 =?utf-8?B?cmdyOTFNbEJTcm9OV1lTOEVGTTdRcENqUnB6SzNqSmxQSkQxemZnaEhqSU5z?=
 =?utf-8?B?Z21ISUE5ZUVQZkFRdjF5OE90MUdGTGNEV2xTNGQ4d3dRbGU3U1pNTzNLOThR?=
 =?utf-8?B?L3ZmbEVDWk90SEVDbzllOEZkTTdFTm5Mc3lMMXk4SUVjVjJNaVlhKzJMbHdl?=
 =?utf-8?B?elN0RGNZWmk5aktmY0xUWVJHMGl0OVNkLzhtdSt5R2hMZGU1dXFiVUlyamxC?=
 =?utf-8?B?ZHVZc3dxUFEwcHk5MkJCRVQ5N0J3cnJ5MWM1U1RrMXVvRWdIRjlSQWV6OEx6?=
 =?utf-8?B?MkpjK1NZdTNwSGs2OUtIRXlmeXNjeGRxZG1UZkFEejNDUHVZZjNyVWFqT1FH?=
 =?utf-8?B?elEwOFh0bDR4SVhBL2IvN3BFRlJwZE11cjVCM3VBSGdGazczSXRRWFdFVlZy?=
 =?utf-8?B?ekFGdVRROEFiSHAxL2swMCtTZ1J5ZWxkYUNIMUNLemw2MnRsSW1lNkNibGhq?=
 =?utf-8?B?ZW9jZzNsck9SMTh3dStsWkJXMnk3UTV4KzhwZjlHMkJDYzFwaXVWRzRQVmRi?=
 =?utf-8?B?QnN1Yy9rQ1pRSGhBMUZhVnNCSDh5MDVmQVMvb1AvV2tJNlpFL29kODNiTFNl?=
 =?utf-8?B?Y0lTS1BkbzFKYitKRjNxejNMSjhGM253NE00WW5abUxFTXZ3eTB5MGNVQjE3?=
 =?utf-8?B?amxlbTJzamN4WmR6NDBscGNwZWRqTmdCUFJmbG9tZGV0bnFJWkphcFIxckNq?=
 =?utf-8?B?Z1FRWG5vazMrRGV6RUgxd2Q5Z3Q5VjNodGtTMXFoYmQ4OHFrdkswMVVTbjNJ?=
 =?utf-8?B?Zm5ZTTlVb290VU84WExUMVR0RHVaMktidXVSUnVSS08yUkRSRWhTd3ZQTXNN?=
 =?utf-8?B?NmNNZVRxSmFpT0pubEdGWEMxRFVXSXFvUThjSFJxTGhhN3Z2UHB4VFlkVFRt?=
 =?utf-8?B?bWZCQlgvemlCWDlyY3dEbklOSExoUmNsWXdaek1kQUV6eUZaaFB2bDFNZk9i?=
 =?utf-8?B?TTNUaGdEOWxacVBibitoMUs3STl2U09reEkyVUp0MzQwSUk0Tnk5Nzdnc0Vo?=
 =?utf-8?B?b1BQRkg4Qk83ODQ3VXdLMEdodnRBdVR0clMxYXJ2MGprOHJXZ2U0QUpFZlh3?=
 =?utf-8?B?OUNQd0VXMlhDUGs5aGxWZjhkYTJZaHJ2ZWdwTUgzVEJPWDQ3anJobVM2ZG5m?=
 =?utf-8?B?VzJycVZVUXhTdXNZQmVLVTZwRUV0Wk5HQzNqVzAyWFQ2bGcxNGdqeStGWHBH?=
 =?utf-8?B?UG9id2owWmd2Sy92bVFDa0JJOVRYMzNSdUNPdzRJVDFBNFp6MVdmZVpGd0Jy?=
 =?utf-8?B?bDJEUDhIczFXdEE5WEVDOEpmY2R3UUxYTThjQm9CRmJWYnNWSXI4TFFXRDFM?=
 =?utf-8?B?ZDdtbkYxRlRkQjNEcnBlUzYyd0c3Z3ZlZ3VCaXRLam1ZRDh2NStTVEpvTVVD?=
 =?utf-8?B?WTg1OG9zN3pjMGs3QXVod0NUb3pyYytSUlpaM3BiTzFOd05IMXA1bU1sM3hj?=
 =?utf-8?B?MzFwNE5pSU5uMnpzbXFDdVowWi93ZDdTQUxFZXo0U1U4ampZTGpQVE04bW1w?=
 =?utf-8?B?M2Zxc09yK09ZTUdZTUloN2U2WDRLVHp1bmhDa2l6dUQ2UGZLdlBCYUZ5YmVF?=
 =?utf-8?B?VE8zaFFDZjFhRFRNOHJkVHF0dCtIRWhDcDc0cWxGUTZLcXdQSkhWRDlEMmZx?=
 =?utf-8?B?UTJuZ1E5UENLdy9aVkk5Uy8rTVhNcFZDSU8ySEpaVGRCRWNETk82cGJlRVBi?=
 =?utf-8?B?K1Q0ZVR3N3VsdFdqOTVOZ29RUFprQ3FZWENWZmozTWFEWmFURkpEeW95eFlX?=
 =?utf-8?B?OWlXbXZlMm8zbTVMbS9jSWVZSUsvWUlYMEE2TzB4eDNyVGhWUW4rN1gwQW1Q?=
 =?utf-8?B?WjNoakZLQ0ZzL2t0ekFoTjh1WXhPTHQ5Y2pQUWVKY1hMNTBEQjdLK0hFTVZ3?=
 =?utf-8?B?ZnJrekVpSmFWMEtkUzhqQVdxc3EwVkJVSlJkS3g2dEV1V0ZSeFU4clFDWEg3?=
 =?utf-8?B?RmMrWU53OVRzMlNhZVlDbDBJUEVHSUh1RnljVlVxUzNZaUpUTDA5bnh6cGlN?=
 =?utf-8?B?Y2R2ZVAyS1g0ak1kZExVTndJcjM3c0NoMFVtTnZLbkFITUt5a1RTUzQ5dTBD?=
 =?utf-8?B?dEdrbGlHQjZ0RGVKaGluajB5ZGltcjJJZDdCL2FaZDIzdWVMaVFxb2M5TllR?=
 =?utf-8?B?aHU2MkYwWENrb21HK1dBQmw4V2J5YlZQTlpBa09IblpINlJ6eU1mZEhiVHBM?=
 =?utf-8?B?NFo3cHJlRXQ2ci94Ti9OaGYvVi9JY1FSUUg4Zi95bnovRXV1bUR0UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 620e5a86-90d2-4419-b193-08de433c2e51
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Dec 2025 22:31:28.8084
 (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: bootJhKXpgYgCUtaO6uRByxEB+MpKXW+XAjNJLooQGz1ZvhtJmKIzPmdKOn/wsujLetRz0ePiG7jxO+D2r064jchziFfcuaVG6BgZ1uk3Qk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6480

On 24/12/2025 7:40 pm, Roger Pau Monne wrote:
> The current logic splits the update of the amount of available memory in
> the system (total_avail_pages) and pending claims into two separately
> locked regions.  This leads to a window between counters adjustments where
> the result of total_avail_pages - outstanding_claims doesn't reflect the
> real amount of free memory available, and can return a negative value due
> to total_avail_pages having been updated ahead of outstanding_claims.
>
> Fix by adjusting outstanding_claims and d->outstanding_pages in the same
> place where total_avail_pages is updated.  Note that accesses to
> d->outstanding_pages is protected by the global heap_lock, just like
> total_avail_pages or outstanding_claims.  Add a comment to the field
> declaration, and also adjust the comment at the top of
> domain_set_outstanding_pages() to be clearer in that regard.
>
> Finally, due to claims being adjusted ahead of pages having been assigned
> to the domain, add logic to re-gain the claim in case assign_page() fails.
> Otherwise the page is freed and the claimed amount would be lost.
>
> Fixes: 65c9792df600 ("mmu: Introduce XENMEM_claim_pages (subop of memory ops)")
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
> Changes since v1:
>  - Regain the claim if allocated page cannot be assigned to the domain.
>  - Adjust comments regarding d->outstanding_pages being protected by the
>    heap_lock (instead of the d->page_alloc_lock).

This is a complicated patch, owing to the churn from adding extra
parameters.

I've had a go splitting this patch in half.  First to adjust the
parameters, and second the bugfix. 
https://gitlab.com/xen-project/hardware/xen-staging/-/commits/andrew/roger-claims

I think the result is nicer to follow.  Thoughts?

As to the logical part of the change, the extra parameters are ugly but
I can't see a better option.

> diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
> index 1f67b88a8933..b73f6e264514 100644
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -1071,6 +1049,28 @@ static struct page_info *alloc_heap_pages(
>      total_avail_pages -= request;
>      ASSERT(total_avail_pages >= 0);
>  
> +    if ( d && d->outstanding_pages && !(memflags & MEMF_no_refcount) )
> +    {
> +        /*
> +         * Adjust claims in the same locked region where total_avail_pages is
> +         * adjusted, not doing so would lead to a window where the amount of
> +         * free memory (avail - claimed) would be incorrect.
> +         *
> +         * Note that by adjusting the claimed amount here it's possible for
> +         * pages to fail to be assigned to the claiming domain while already
> +         * having been subtracted from d->outstanding_pages.  Such claimed
> +         * amount is then lost, as the pages that fail to be assigned to the
> +         * domain are freed without replenishing the claim.
> +         */
> +        unsigned int outstanding = min(d->outstanding_pages, request);
> +
> +        BUG_ON(outstanding > outstanding_claims);
> +        outstanding_claims -= outstanding;
> +        d->outstanding_pages -= outstanding;
> +        ASSERT(claimed);
> +        *claimed = outstanding;

Something that's not explicitly called out is that it is invalid to pass
claims=NULL for a non-NULL d.

There are only 3 callers, and two of them are updated in this way (the
3rd passing NULL for both), but it caught me a little off-guard.

In principle alloc_heap_pages() could return {pg, claimed} via a struct
which avoids this entanglement, but is unergonomic to express.

> @@ -1553,6 +1554,12 @@ static void free_heap_pages(
>  
>      avail[node][zone] += 1 << order;
>      total_avail_pages += 1 << order;
> +    if ( d && claim )
> +    {
> +        outstanding_claims += claim;
> +        d->outstanding_pages += claim;
> +    }

In the rework, I added a comment here:

+    if ( d && claim )
+    {
+        /*
+         * An allocation can consume part of a claim and subsequently
+         * fail.  In such a case, the claim needs re-crediting.
+         */
+        outstanding_claims += claim;
+        d->outstanding_pages += claim;
+    }


because it's very non-intuitive that `claim` is only non-zero in the
case of a failed domheap allocation.  Calling the parameter rebate (or
claim_rebate) would be clearer, but I'm not sure if it's a common enough
world to be terribly meaningful to non-native speakers.

It really is inconvenient that you can deplete the claim with part of a
single allocation.  The intended use doesn't care for this corner case;
you're supposed to claim what you need and have it drop exactly to zero
as construction progresses (anything else is a toolstack error).

However, taking such a simplification to the claims behaviour doesn't
help here AFAICT; you still need something to distinguish the rebate
case from others, so you can't drop the parameter entirely.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Dec 26 12:29:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Dec 2025 12:29:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193427.1512176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZ6wL-0007Ff-8l; Fri, 26 Dec 2025 12:29:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193427.1512176; Fri, 26 Dec 2025 12:29:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZ6wL-0007FX-4O; Fri, 26 Dec 2025 12:29:05 +0000
Received: by outflank-mailman (input) for mailman id 1193427;
 Fri, 26 Dec 2025 12:29:03 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vZ6wJ-0007Ex-DH
 for xen-devel@lists.xenproject.org; Fri, 26 Dec 2025 12:29:03 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vZ6wI-00Ayyb-25;
 Fri, 26 Dec 2025 12:29:02 +0000
Received: from [2a02:8012:3a1:0:7185:a579:c:f908]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vZ6wI-0030Dg-1l;
 Fri, 26 Dec 2025 12:29:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=laBISD0gn0VadDmoSAo/SlXqMGTwtJSauOuaZFWthqo=; b=alBI0+UgKZu0969ZD3uYLJqp5W
	LCfRNG/z9jaBqn8jua0jDyEwIEyMtY0uHzb8s9jyB7seW5L0176GmdgLapLvnOEG1S/QgTOz7eOzS
	PKBnlz34n3LuOo5u4LIW888vBjM2XMRipi+H7RA3aK5qIgPyyy0N5NKIZIVj3oWNbofI=;
Message-ID: <75823cb4-c14c-4a4a-b523-e131c820a4d3@xen.org>
Date: Fri, 26 Dec 2025 12:29:00 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 02/12] xen/arm: gic-v2: Implement GIC suspend/resume
 functions
Content-Language: en-GB
To: Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Saeed Nowshadi <saeed.nowshadi@xilinx.com>,
 Mykyta Poturai <mykyta_poturai@epam.com>
References: <cover.1765472890.git.mykola_kvach@epam.com>
 <fe8b4d92a8dfd7b4c40429d10233637a339ae8e6.1765472890.git.mykola_kvach@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <fe8b4d92a8dfd7b4c40429d10233637a339ae8e6.1765472890.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Mykola,

On 11/12/2025 18:43, Mykola Kvach wrote:
> diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
> index b23e72a3d0..0b2f7b3862 100644
> --- a/xen/arch/arm/gic-v2.c
> +++ b/xen/arch/arm/gic-v2.c
> @@ -1098,6 +1098,123 @@ static int gicv2_iomem_deny_access(struct domain *d)
>       return iomem_deny_access(d, mfn, mfn + nr);
>   }
>   
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +
> +/* This struct represent block of 32 IRQs */
> +struct irq_block {
> +    uint32_t icfgr[2]; /* 2 registers of 16 IRQs each */
> +    uint32_t ipriorityr[8];
> +    uint32_t isenabler;
> +    uint32_t isactiver;
> +    uint32_t itargetsr[8];
> +};
> +
> +/* GICv2 registers to be saved/restored on system suspend/resume */
> +struct gicv2_context {
> +    /* GICC context */
 > +    struct cpu_ctx {> +        uint32_t ctlr;
> +        uint32_t pmr;
> +        uint32_t bpr;
> +    } cpu;
> +
> +    /* GICD context */
> +    struct dist_ctx {
> +        uint32_t ctlr;
> +        struct irq_block *irqs;

To confirm my understanding, this will also include the PPIs, SGIs for 
the boot CPU, am I correct? If so, I would suggest to add a comment.

> +    } dist;
> +};
> +
> +static struct gicv2_context gic_ctx;
> +
> +static int gicv2_suspend(void)
> +{
> +    unsigned int i, blocks = DIV_ROUND_UP(gicv2_info.nr_lines, 32);
> +
> +    /* Save GICC configuration */
> +    gic_ctx.cpu.ctlr = readl_gicc(GICC_CTLR);
> +    gic_ctx.cpu.pmr = readl_gicc(GICC_PMR);
> +    gic_ctx.cpu.bpr = readl_gicc(GICC_BPR);
> +
> +    /* Save GICD configuration */
> +    gic_ctx.dist.ctlr = readl_gicd(GICD_CTLR);

Do we want to disable the GIC distributor and CPU interface on suspend?

> +
> +    for ( i = 0; i < blocks; i++ )
> +    {
> +        struct irq_block *irqs = gic_ctx.dist.irqs + i;
> +        size_t j, off = i * sizeof(irqs->isenabler);
> +
> +        irqs->isenabler = readl_gicd(GICD_ISENABLER + off);
> +        irqs->isactiver = readl_gicd(GICD_ISACTIVER + off);
> +
> +        off = i * sizeof(irqs->ipriorityr);
> +        for ( j = 0; j < ARRAY_SIZE(irqs->ipriorityr); j++ )
> +        {
> +            irqs->ipriorityr[j] = readl_gicd(GICD_IPRIORITYR + off + j * 4);
> +            irqs->itargetsr[j] = readl_gicd(GICD_ITARGETSR + off + j * 4);
> +        }
> +
> +        off = i * sizeof(irqs->icfgr);
> +        for ( j = 0; j < ARRAY_SIZE(irqs->icfgr); j++ )
> +            irqs->icfgr[j] = readl_gicd(GICD_ICFGR + off + j * 4);
> +    }
> +
> +    return 0;
> +}
> +
> +static void gicv2_resume(void)
> +{
> +    unsigned int i, blocks = DIV_ROUND_UP(gicv2_info.nr_lines, 32);
> +
> +    gicv2_cpu_disable();
 > +    /* Disable distributor */> +    writel_gicd(0, GICD_CTLR);
 > +> +    for ( i = 0; i < blocks; i++ )
> +    {
> +        struct irq_block *irqs = gic_ctx.dist.irqs + i;
> +        size_t j, off = i * sizeof(irqs->isenabler);
> +
> +        writel_gicd(0xffffffffU, GICD_ICENABLER + off);

NIT: Can we use GENMASK? This will make easier to confirm we have the 
correct number of bits.

[...]

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Dec 26 12:39:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Dec 2025 12:39:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193436.1512186 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZ76N-0000Wv-4V; Fri, 26 Dec 2025 12:39:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193436.1512186; Fri, 26 Dec 2025 12:39:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZ76N-0000Wo-0C; Fri, 26 Dec 2025 12:39:27 +0000
Received: by outflank-mailman (input) for mailman id 1193436;
 Fri, 26 Dec 2025 12:39:25 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vZ76L-0000Wi-Hp
 for xen-devel@lists.xenproject.org; Fri, 26 Dec 2025 12:39:25 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vZ76K-00AzAT-2f;
 Fri, 26 Dec 2025 12:39:25 +0000
Received: from [2a02:8012:3a1:0:7185:a579:c:f908]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vZ76K-003IZT-2n;
 Fri, 26 Dec 2025 12:39:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=fsQznIkrg6H7tvIDni1EPby3qUwh9TCBqZdL0/wLRLY=; b=HdKGgCR+VHy7fZY5lrcOAdbuI6
	AbdFW+6m7xee7lAQfj3nCPlxI1XwaVLANtYSkYgRCsGULCy5hht7hdCquyiD57268l8tqQHnjtaqI
	/tiDPtkPTef8zzvlOJhgGtYD0Am4wjBQD6lHIG+dlqZ9YwdCNItKK/vCwenaNkzhDn34=;
Message-ID: <a2be5ae1-7e4a-4137-9e36-6c5845a93ca1@xen.org>
Date: Fri, 26 Dec 2025 12:39:22 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 03/12] xen/arm: gic-v3: Implement GICv3 suspend/resume
 functions
Content-Language: en-GB
To: Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1765472890.git.mykola_kvach@epam.com>
 <9f084beff76e40fed2138ba2d59145a96b930c63.1765472890.git.mykola_kvach@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <9f084beff76e40fed2138ba2d59145a96b930c63.1765472890.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Mykola,

On 11/12/2025 18:43, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> System suspend may lead to a state where GIC would be powered down.
> Therefore, Xen should save/restore the context of GIC on suspend/resume.
> 
> Note that the context consists of states of registers which are
> controlled by the hypervisor. Other GIC registers which are accessible
> by guests are saved/restored on context switch.
> 
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> Changes in V7:
> - restore LPI regs on resume
> - add timeout during redist disabling
> - squash with suspend/resume handling for GICv3 eSPI registers
> - drop ITS guard paths so suspend/resume always runs; switch missing ctx
>    allocation to panic
> - trim TODO comments; narrow redistributor storage to PPI icfgr
> - keep distributor context allocation even without ITS; adjust resume
>    to use GENMASK(31, 0) for clearing enables
> - drop storage of the SGI configuration register, as SGIs are always
>    edge-triggered
> ---
>   xen/arch/arm/gic-v3-lpi.c              |   3 +
>   xen/arch/arm/gic-v3.c                  | 319 ++++++++++++++++++++++++-
>   xen/arch/arm/include/asm/gic_v3_defs.h |   1 +
>   3 files changed, 320 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/arm/gic-v3-lpi.c b/xen/arch/arm/gic-v3-lpi.c
> index de5052e5cf..61a6e18303 100644
> --- a/xen/arch/arm/gic-v3-lpi.c
> +++ b/xen/arch/arm/gic-v3-lpi.c
> @@ -391,6 +391,9 @@ static int cpu_callback(struct notifier_block *nfb, unsigned long action,
>       switch ( action )
>       {
>       case CPU_UP_PREPARE:
> +        if ( system_state == SYS_STATE_resume )
> +            break;

Do we need this check because we don't free the LPI pending table when 
the CPU is turned off?

If so, don't we already have a problem for CPU hotplug because the 
percpu area will be freed but not the pending table?

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sat Dec 27 14:23:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Dec 2025 14:23:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193522.1512221 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZVC6-0007Io-Kf; Sat, 27 Dec 2025 14:22:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193522.1512221; Sat, 27 Dec 2025 14:22:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZVC6-0007Gr-Bq; Sat, 27 Dec 2025 14:22:58 +0000
Received: by outflank-mailman (input) for mailman id 1193522;
 Fri, 26 Dec 2025 22:53:59 +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 <SRS0=z/ld=7A=gmail.com=21cnbao@srs-se1.protection.inumbo.net>)
 id 1vZGh5-0005LS-MD
 for xen-devel@lists.xenproject.org; Fri, 26 Dec 2025 22:53:59 +0000
Received: from mail-pl1-x629.google.com (mail-pl1-x629.google.com
 [2607:f8b0:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c2cf0b1d-e2ad-11f0-b15c-2bf370ae4941;
 Fri, 26 Dec 2025 23:53:58 +0100 (CET)
Received: by mail-pl1-x629.google.com with SMTP id
 d9443c01a7336-2a0c20ee83dso95950165ad.2
 for <xen-devel@lists.xenproject.org>; Fri, 26 Dec 2025 14:53:58 -0800 (PST)
Received: from barry-desktop.hub ([47.72.129.29])
 by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-34e772ac1acsm9981428a91.9.2025.12.26.14.53.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Dec 2025 14:53:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c2cf0b1d-e2ad-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766789637; x=1767394437; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6SwUY+FTc0pZhvaABGOEZvH4DFh2qP62P2nENr8WNe8=;
        b=UVmJFTOlGtzAxAt6hordVrb90Q76tvcAk3xlKFe+27k4A1w+Dk6F28KZ622R/4shId
         +l6fHi7oZa+3V5/tb03Ens6SBGE7CI0lhmgRduNjP5eiRZeCJ+cwdAVXETkQAu8KcXYX
         NHD6LRj292RykVYoELrGMzHW3I5cXSz/WsDxzlEXWioKl+SHsUZOEMTsRW2HJui6pm0v
         ZWGYG2LIgLRxyJS4tndGGbsUGdgScJctXnNtTwqYOTGTx2dWmXcFbIVmwIGMuW29/uSv
         dsm9iSR+ppYgdoE1FcotwIbkrb8nzwVDFOeBkdGa0Dx3PwJS4VjGqujmH7cSGDqgwkDh
         O4gA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766789637; x=1767394437;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=6SwUY+FTc0pZhvaABGOEZvH4DFh2qP62P2nENr8WNe8=;
        b=EtUQA+ei9xj/FlpFweGzjAd5CxBVB06Yf/w6TQBSVBwfiMwMQf6Qusf+7UC9PRboWD
         aFShUbYAsPtLDsqvzK4Q+0sKNG0SUoYfTiEXvavBlBZFGEE88nN+/nnn0EzB4m5XEabJ
         QSMY4dC/NUVVONuCHZWVOELWth6L6afP+InavfWhjqh1tBZcMNC+m04N0frMjix8PTZf
         F2VKNbG7KEi8PXVRFPFF7zhvKM4fSKxyBpgrLXF5sTeqqIUgB9hMuh3aiW4sKNrOuIBH
         /2YOy25ogZxHORTq4V4WXdVLFSXh0UqjHAFgeReM5RAYDI5Wd4nrKZDs8zv4HEdAXeYT
         yCaA==
X-Forwarded-Encrypted: i=1; AJvYcCUifogUQ5CV/qrbBs38ZUlGqeq4OZon4SUVJsTxyG8rJJEab/xaeVWZCDMSL252JEZcQ7Yv3NmblMY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwcojJ+GolqUF+WrEiEGF84TnhqtKBVy5ZDsnHzVWide0+GvMdv
	ZOe5hNBlCI9dqszu2ZAHmwY0Qu+/nDa+cKgkd90hFEE1tpnMF4J7s/ov
X-Gm-Gg: AY/fxX63sCuBAAuJ0rfeAUd/ieVrTWUcbNFgqpQeSWsmZuFfe2x98dcfPy8mqR8wGwu
	vARgU6eAZ5nW+2/fspfCNDMij2+IEKixUQ6Z+Jef6jJ2zXFkz216DIT9ueXkwXG0PwFpxBvM+on
	6F4ncqbFdpDRH9TnRauFU3JL8kjOiG/GLNePt6t9gjQ8AXOyff6Ps30nNxwCwcPb67Wl/aUotT2
	2ztRHA07xDN1uwAymBmfgl39uV4/z90Ku+ZIy5zI1yV+ZVlL+96Jq+V08R5/htJeKiGY9Jp6phT
	YkVsjqrSEDrTODnTPbFMN27VXC7N1KJm4zwY2a0eRIkoEvQR7gzC6NH2ep2yGbA1i3Io4mj8PwO
	CI4N/tpYjvimtzWqCvxBmOusS5SthTWLm2mGnU2TzKRy3/bVnPLw/2OUrQ2aHs45Y5yKV9GOWFQ
	n2HnI/jR6B12PffWD/r+2JX/s=
X-Google-Smtp-Source: AGHT+IHzo7zg63L6IUIixvYNdgE1EhLj43E4LWUqmZi99iaSKAA/lUr+ts9Nayt1nnGWbam/Z3t7Yw==
X-Received: by 2002:a17:903:1670:b0:2a2:bff6:42f2 with SMTP id d9443c01a7336-2a2f222b664mr247962585ad.6.1766789636697;
        Fri, 26 Dec 2025 14:53:56 -0800 (PST)
From: Barry Song <21cnbao@gmail.com>
To: catalin.marinas@arm.com,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	will@kernel.org,
	iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Barry Song <baohua@kernel.org>,
	Leon Romanovsky <leon@kernel.org>,
	Ada Couprie Diaz <ada.coupriediaz@arm.com>,
	Ard Biesheuvel <ardb@kernel.org>,
	Marc Zyngier <maz@kernel.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Tangquan Zheng <zhengtangquan@oppo.com>
Subject: [PATCH v2 5/8] dma-mapping: Support batch mode for dma_direct_sync_sg_for_*
Date: Sat, 27 Dec 2025 11:52:45 +1300
Message-ID: <20251226225254.46197-6-21cnbao@gmail.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20251226225254.46197-1-21cnbao@gmail.com>
References: <20251226225254.46197-1-21cnbao@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Barry Song <baohua@kernel.org>

Instead of performing a flush per SG entry, issue all cache
operations first and then flush once. This ultimately benefits
__dma_sync_sg_for_cpu() and __dma_sync_sg_for_device().

Cc: Leon Romanovsky <leon@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Tangquan Zheng <zhengtangquan@oppo.com>
Signed-off-by: Barry Song <baohua@kernel.org>
---
 kernel/dma/direct.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
index a219911c7b90..98bacf562ca1 100644
--- a/kernel/dma/direct.c
+++ b/kernel/dma/direct.c
@@ -402,12 +402,12 @@ void dma_direct_sync_sg_for_device(struct device *dev,
 
 		swiotlb_sync_single_for_device(dev, paddr, sg->length, dir);
 
-		if (!dev_is_dma_coherent(dev)) {
+		if (!dev_is_dma_coherent(dev))
 			arch_sync_dma_for_device(paddr, sg->length,
 					dir);
-			arch_sync_dma_flush();
-		}
 	}
+	if (!dev_is_dma_coherent(dev))
+		arch_sync_dma_flush();
 }
 #endif
 
@@ -423,10 +423,8 @@ void dma_direct_sync_sg_for_cpu(struct device *dev,
 	for_each_sg(sgl, sg, nents, i) {
 		phys_addr_t paddr = dma_to_phys(dev, sg_dma_address(sg));
 
-		if (!dev_is_dma_coherent(dev)) {
+		if (!dev_is_dma_coherent(dev))
 			arch_sync_dma_for_cpu(paddr, sg->length, dir);
-			arch_sync_dma_flush();
-		}
 
 		swiotlb_sync_single_for_cpu(dev, paddr, sg->length, dir);
 
@@ -434,8 +432,10 @@ void dma_direct_sync_sg_for_cpu(struct device *dev,
 			arch_dma_mark_clean(paddr, sg->length);
 	}
 
-	if (!dev_is_dma_coherent(dev))
+	if (!dev_is_dma_coherent(dev)) {
+		arch_sync_dma_flush();
 		arch_sync_dma_for_cpu_all();
+	}
 }
 
 /*
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat Dec 27 14:23:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Dec 2025 14:23:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193524.1512226 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZVC6-0007OC-UH; Sat, 27 Dec 2025 14:22:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193524.1512226; Sat, 27 Dec 2025 14:22:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZVC6-0007Li-JX; Sat, 27 Dec 2025 14:22:58 +0000
Received: by outflank-mailman (input) for mailman id 1193524;
 Fri, 26 Dec 2025 22:54:07 +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 <SRS0=z/ld=7A=gmail.com=21cnbao@srs-se1.protection.inumbo.net>)
 id 1vZGhD-0005LS-4R
 for xen-devel@lists.xenproject.org; Fri, 26 Dec 2025 22:54:07 +0000
Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com
 [2607:f8b0:4864:20::102a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c781b412-e2ad-11f0-b15c-2bf370ae4941;
 Fri, 26 Dec 2025 23:54:06 +0100 (CET)
Received: by mail-pj1-x102a.google.com with SMTP id
 98e67ed59e1d1-34ccbf37205so5620298a91.2
 for <xen-devel@lists.xenproject.org>; Fri, 26 Dec 2025 14:54:06 -0800 (PST)
Received: from barry-desktop.hub ([47.72.129.29])
 by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-34e772ac1acsm9981428a91.9.2025.12.26.14.53.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Dec 2025 14:54:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c781b412-e2ad-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766789645; x=1767394445; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pcGdIc/9DJZ3V/5WVf7vUUbl5wTlCyMzFQWvUiTQ7kw=;
        b=WU9Q8GH05agHSbpliYDlixm9kYzc2GJD5b+CNpwHkuD9RkdM7ZEDeqwOjJzLTi9Cqk
         VUG6Mv/20juTkabkrzKq6gfUJFQQ9umTrnge3PGasPe8PIszDGmp9VADCaJFeG7QtI6S
         uqCrmXJTcyMDZ4KhUn9h8VNxzeBYmo1sao2JmWpBYXsC1i4FhHklDFs1m9AjePRNogkJ
         ErP7LszBf0PMskExJjTK03HN4rI4JzyZpuO2IpS8tFIpEW+PbfnWe/6wiK4BrDMsQqLi
         sMziLQVQiRpZ6JOm4iqZ4Tr58Y+bONY2Ywq1AzOrcdu5HesGKCfsONFt3VVDHkhuaMR1
         zuXw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766789645; x=1767394445;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=pcGdIc/9DJZ3V/5WVf7vUUbl5wTlCyMzFQWvUiTQ7kw=;
        b=hdQW4oYsCkkk2yG6IGZs5LVFzekNWzkcX+MnO4+63e9+Sqo9pFyk/EdNVzeg9PefF1
         I9XjQeBnXva+iz1eYKITcdSpYosRePSjcPhvOyVsPCniQvJ0hmLJQfbsPM8wKcdlVFun
         1fWiQ+Dcb2uxwLdPGmZA7/cwWgaOS4jV9EcAjGbXdv613wKvIBNnbW9F4lnkZf/V4mlv
         lNAhwfho7tt10DtwllKPpj24PMhbXppkOJNjGRpddtp4c9ZTUcO+paaARQKJ4Lli+/DJ
         H+gzIP7Ru0VSqeBgSz3vr6qg0nPzJBW2KJ4fGh1xPd/jNRP8Mp96mH/8eckEwnCsIZCF
         NU9w==
X-Forwarded-Encrypted: i=1; AJvYcCVhPYkL7GlgcIaUNedRs4J6ctrvPirGvn+Oa46ktJyJ2ItGzbwsphrgnvfVhr6RpRIybKgjEhKnbHs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyLMqyi06bIp9pW1nGwg/WeosihDVWw8w+XHC3pFbq3auQ473p2
	drImO8ewk3G8wJd6szolKMcTSo6KVKMRKQ4MX5BDuhmuAAPVzQSlu3Hk
X-Gm-Gg: AY/fxX51h9wc4dq/xOTTRXbv0CTlujdIMp/deX6EGViXuj9X8Xke9gYohJvoMUCJlAU
	f6Wd4f/h3AaDBQEihMrvH4tYWSbJVT8hWh7eSugzh04QLt27cLlOj7DCyPLz0kIe24LNcwj0/E/
	q6BnN56EVldqC2HnS/cDT1ux9nNOOBY3OJKrrVWSq+mzbsitkAlRR1uGBCsHVcLfl5g/AnBwwnd
	rKxee1rxQfevl0eVFPFqgVwvpl14RCW1PKL3Eu5J4OIp9Jt5DKhqdHKXkIgz/w19Mw8ep0GuZ90
	HBeepZuaRiiKkwfBoyswoU89sOF1t1l3OhEvWYRbDh4wTy3Pq+jn3PZ9SOfMKNMNm/KOQT9TRSI
	mV1xNBB6Ez8JiG69mumw6+sx+pyE65ZmcdOmdVY1ZmlPP777SB0tHfQZXeHGPnd5YR28w8C4LEd
	O684jQ+d74z9Sw
X-Google-Smtp-Source: AGHT+IE+oJ1Ft1XOQ1XU6OeA4rerw4thrh1Pz4yYg+rxMS7HW6pD48/QipbV6W5OVknyxXIG+nvg1w==
X-Received: by 2002:a17:90b:5804:b0:34a:b459:bd10 with SMTP id 98e67ed59e1d1-34e921bf172mr21139744a91.24.1766789644533;
        Fri, 26 Dec 2025 14:54:04 -0800 (PST)
From: Barry Song <21cnbao@gmail.com>
To: catalin.marinas@arm.com,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	will@kernel.org,
	iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Barry Song <baohua@kernel.org>,
	Leon Romanovsky <leon@kernel.org>,
	Ada Couprie Diaz <ada.coupriediaz@arm.com>,
	Ard Biesheuvel <ardb@kernel.org>,
	Marc Zyngier <maz@kernel.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Tangquan Zheng <zhengtangquan@oppo.com>
Subject: [PATCH v2 6/8] dma-mapping: Support batch mode for dma_direct_{map,unmap}_sg
Date: Sat, 27 Dec 2025 11:52:46 +1300
Message-ID: <20251226225254.46197-7-21cnbao@gmail.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20251226225254.46197-1-21cnbao@gmail.com>
References: <20251226225254.46197-1-21cnbao@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Barry Song <baohua@kernel.org>

Leon suggested extending a flush argument to
dma_direct_unmap_phys(), dma_direct_map_phys(), and
dma_direct_sync_single_for_cpu(). For single-buffer cases, this
would use flush=true, while for SG cases flush=false would be
used, followed by a single flush after all cache operations are
issued in dma_direct_{map,unmap}_sg().

This ultimately benefits dma_map_sg() and dma_unmap_sg().

Cc: Leon Romanovsky <leon@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Tangquan Zheng <zhengtangquan@oppo.com>
Signed-off-by: Barry Song <baohua@kernel.org>
---
 kernel/dma/direct.c  | 17 +++++++++++++----
 kernel/dma/direct.h  | 16 ++++++++++------
 kernel/dma/mapping.c |  6 +++---
 3 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
index 98bacf562ca1..550a1a13148d 100644
--- a/kernel/dma/direct.c
+++ b/kernel/dma/direct.c
@@ -447,14 +447,19 @@ void dma_direct_unmap_sg(struct device *dev, struct scatterlist *sgl,
 {
 	struct scatterlist *sg;
 	int i;
+	bool need_sync = false;
 
 	for_each_sg(sgl,  sg, nents, i) {
-		if (sg_dma_is_bus_address(sg))
+		if (sg_dma_is_bus_address(sg)) {
 			sg_dma_unmark_bus_address(sg);
-		else
+		} else {
+			need_sync = true;
 			dma_direct_unmap_phys(dev, sg->dma_address,
-					      sg_dma_len(sg), dir, attrs);
+					      sg_dma_len(sg), dir, attrs, false);
+		}
 	}
+	if (need_sync && !dev_is_dma_coherent(dev))
+		arch_sync_dma_flush();
 }
 #endif
 
@@ -464,6 +469,7 @@ int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl, int nents,
 	struct pci_p2pdma_map_state p2pdma_state = {};
 	struct scatterlist *sg;
 	int i, ret;
+	bool need_sync = false;
 
 	for_each_sg(sgl, sg, nents, i) {
 		switch (pci_p2pdma_state(&p2pdma_state, dev, sg_page(sg))) {
@@ -475,8 +481,9 @@ int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl, int nents,
 			 */
 			break;
 		case PCI_P2PDMA_MAP_NONE:
+			need_sync = true;
 			sg->dma_address = dma_direct_map_phys(dev, sg_phys(sg),
-					sg->length, dir, attrs);
+					sg->length, dir, attrs, false);
 			if (sg->dma_address == DMA_MAPPING_ERROR) {
 				ret = -EIO;
 				goto out_unmap;
@@ -495,6 +502,8 @@ int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl, int nents,
 		sg_dma_len(sg) = sg->length;
 	}
 
+	if (need_sync && !dev_is_dma_coherent(dev))
+		arch_sync_dma_flush();
 	return nents;
 
 out_unmap:
diff --git a/kernel/dma/direct.h b/kernel/dma/direct.h
index a69326eed266..d4ad79828090 100644
--- a/kernel/dma/direct.h
+++ b/kernel/dma/direct.h
@@ -67,13 +67,15 @@ static inline void dma_direct_sync_single_for_device(struct device *dev,
 }
 
 static inline void dma_direct_sync_single_for_cpu(struct device *dev,
-		dma_addr_t addr, size_t size, enum dma_data_direction dir)
+		dma_addr_t addr, size_t size, enum dma_data_direction dir,
+		bool flush)
 {
 	phys_addr_t paddr = dma_to_phys(dev, addr);
 
 	if (!dev_is_dma_coherent(dev)) {
 		arch_sync_dma_for_cpu(paddr, size, dir);
-		arch_sync_dma_flush();
+		if (flush)
+			arch_sync_dma_flush();
 		arch_sync_dma_for_cpu_all();
 	}
 
@@ -85,7 +87,7 @@ static inline void dma_direct_sync_single_for_cpu(struct device *dev,
 
 static inline dma_addr_t dma_direct_map_phys(struct device *dev,
 		phys_addr_t phys, size_t size, enum dma_data_direction dir,
-		unsigned long attrs)
+		unsigned long attrs, bool flush)
 {
 	dma_addr_t dma_addr;
 
@@ -114,7 +116,8 @@ static inline dma_addr_t dma_direct_map_phys(struct device *dev,
 	if (!dev_is_dma_coherent(dev) &&
 	    !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO))) {
 		arch_sync_dma_for_device(phys, size, dir);
-		arch_sync_dma_flush();
+		if (flush)
+			arch_sync_dma_flush();
 	}
 	return dma_addr;
 
@@ -127,7 +130,8 @@ static inline dma_addr_t dma_direct_map_phys(struct device *dev,
 }
 
 static inline void dma_direct_unmap_phys(struct device *dev, dma_addr_t addr,
-		size_t size, enum dma_data_direction dir, unsigned long attrs)
+		size_t size, enum dma_data_direction dir, unsigned long attrs,
+		bool flush)
 {
 	phys_addr_t phys;
 
@@ -137,7 +141,7 @@ static inline void dma_direct_unmap_phys(struct device *dev, dma_addr_t addr,
 
 	phys = dma_to_phys(dev, addr);
 	if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC))
-		dma_direct_sync_single_for_cpu(dev, addr, size, dir);
+		dma_direct_sync_single_for_cpu(dev, addr, size, dir, flush);
 
 	swiotlb_tbl_unmap_single(dev, phys, size, dir,
 					 attrs | DMA_ATTR_SKIP_CPU_SYNC);
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 37163eb49f9f..d8cfa56a3cbb 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -166,7 +166,7 @@ dma_addr_t dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
 
 	if (dma_map_direct(dev, ops) ||
 	    (!is_mmio && arch_dma_map_phys_direct(dev, phys + size)))
-		addr = dma_direct_map_phys(dev, phys, size, dir, attrs);
+		addr = dma_direct_map_phys(dev, phys, size, dir, attrs, true);
 	else if (use_dma_iommu(dev))
 		addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
 	else if (ops->map_phys)
@@ -207,7 +207,7 @@ void dma_unmap_phys(struct device *dev, dma_addr_t addr, size_t size,
 	BUG_ON(!valid_dma_direction(dir));
 	if (dma_map_direct(dev, ops) ||
 	    (!is_mmio && arch_dma_unmap_phys_direct(dev, addr + size)))
-		dma_direct_unmap_phys(dev, addr, size, dir, attrs);
+		dma_direct_unmap_phys(dev, addr, size, dir, attrs, true);
 	else if (use_dma_iommu(dev))
 		iommu_dma_unmap_phys(dev, addr, size, dir, attrs);
 	else if (ops->unmap_phys)
@@ -373,7 +373,7 @@ void __dma_sync_single_for_cpu(struct device *dev, dma_addr_t addr, size_t size,
 
 	BUG_ON(!valid_dma_direction(dir));
 	if (dma_map_direct(dev, ops))
-		dma_direct_sync_single_for_cpu(dev, addr, size, dir);
+		dma_direct_sync_single_for_cpu(dev, addr, size, dir, true);
 	else if (use_dma_iommu(dev))
 		iommu_dma_sync_single_for_cpu(dev, addr, size, dir);
 	else if (ops->sync_single_for_cpu)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat Dec 27 14:23:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Dec 2025 14:23:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193528.1512238 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZVC7-0007af-F0; Sat, 27 Dec 2025 14:22:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193528.1512238; Sat, 27 Dec 2025 14:22:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZVC7-0007Xk-44; Sat, 27 Dec 2025 14:22:59 +0000
Received: by outflank-mailman (input) for mailman id 1193528;
 Fri, 26 Dec 2025 22:54:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z/ld=7A=gmail.com=21cnbao@srs-se1.protection.inumbo.net>)
 id 1vZGhS-0005PO-Lm
 for xen-devel@lists.xenproject.org; Fri, 26 Dec 2025 22:54:22 +0000
Received: from mail-pj1-x102b.google.com (mail-pj1-x102b.google.com
 [2607:f8b0:4864:20::102b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d04d09cc-e2ad-11f0-9ccf-f158ae23cfc8;
 Fri, 26 Dec 2025 23:54:21 +0100 (CET)
Received: by mail-pj1-x102b.google.com with SMTP id
 98e67ed59e1d1-34c27d14559so5934637a91.2
 for <xen-devel@lists.xenproject.org>; Fri, 26 Dec 2025 14:54:20 -0800 (PST)
Received: from barry-desktop.hub ([47.72.129.29])
 by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-34e772ac1acsm9981428a91.9.2025.12.26.14.54.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Dec 2025 14:54:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d04d09cc-e2ad-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766789659; x=1767394459; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=beONI3EcXYpecg+Q1bsEm+B77vz1JdIzHQgAsq5N5yU=;
        b=Bi+d2Xe6EpYxalXODCZaNgz1pxYc+/9EgXuB1brz7fM+MjinuVIIO8zW0xOQnN3a3P
         4JO8+ZLoIKPuitnMaSxsmZ5daFpXV/r3zXdLXJ1EQ0kz/1GfCiXbxbLdbtEAofT9czIV
         3DPwNecDjBHeA7QMMIkLpG3Q8bpMrfNb/Ecqoi4XKUwJ4doU4iZdkOi4XgfLiezht/i4
         4m5INJ02Hn6wnb1O09G4MbYS3v+hEaODE28mlJgXBS7Y42FZetQAowA7NYhLrc4wIqUP
         70OW3KOG6ObB/DiFmeASK557lu/jW8XLHsEB88QJvHgXrfwB9T2VMIWZa0/suuOUckas
         nVOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766789659; x=1767394459;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=beONI3EcXYpecg+Q1bsEm+B77vz1JdIzHQgAsq5N5yU=;
        b=hWUvpnfuf0G91bIS53viuycXK+nT6P0eKLs7Q8f3eGLZmKg4+vuativTThgoX7K1OZ
         9rWmOxpLl1GGshPuev5qAzs5XTNX7DQTGgkl8vlmXzqTxHCMHPouNbPePexQUVIebakW
         GIC07FPKKd61Ja7jg3R8nuPnsTyoHHmH6vcxSf8KCS/sto1bdrGU8fqmx/XzypQ/fF4c
         KaB3Q+YxQW6ze5zdN0ehKLOlXRghyNM1NNpg8cjfq1gD1OVNLBKSXEeqzv+vk6HSPcdy
         sQYSZ3XF7gfJb2KMUrKGExVv/8QXZjX8Uxo5u/GEAPZ3eQvWOKEfJRjqk/Ll+RKEXrzk
         VApA==
X-Forwarded-Encrypted: i=1; AJvYcCWCdj1ThwzaO8YgkVF5xD61AfUfZ2pJfF6tSG61ONAGcyblinzMFnLKUOCkkVMEOClroswzRlXKm8k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxKy3Phzog8acydMw94lQYXT3bt0MDC03DLhRJL3HJ/S23QvPnc
	xNUa5maNcjrTsDNLtG3cHWfCuyNjjZq6v7FX/bjvWUpfSZTe4vuDkAS4
X-Gm-Gg: AY/fxX5OEfhNguJ920YDimAphHQTYlCBvexY21xzxlUGsd7w7MMU0P+qoule5XIhmWd
	OolVKYUk4l1P/h73jPfd/+obAnO9jrLYg0DKloDS3MUaSu7VKtJq8KQv1LEs96AGdEpD6XRwGoq
	CeUOmAUu09GesIuUKBBuxtf10+f5ogTsWIIt3exyxN0V+VAgN04kEOMIkdtu/Xg1gVYQwsSa73C
	tomTSjyap4kKn3Pp9SFlP94BRTIaAlI9bZOSSvYtTWvindr2/iJ24owVuuaBSpR8ztTkA4SG/PX
	5Fo3HcdzHDrGhKe3YG5Ip4yn3Qtbbcbk7pkvbzCW5070jWx/y1h6Rnp2RXB/3LZNZct1nhWXhrh
	MtMYXXT9vM/JXCMvdk+Ec03kf3Z3vF3scyfNRa3aRLySqpF4eDyBMQIhQMEQ+DJvcIjPzdw4js1
	2QCtOSxHsCsmPU
X-Google-Smtp-Source: AGHT+IF3FBOgnhAE+C4yK80l6tVlXmB4Rfi7fJf1frV3RXQh1+Ry7oysljXY9g9IJMnKqHJpP4IhrA==
X-Received: by 2002:a17:90b:2787:b0:33b:cbb2:31ed with SMTP id 98e67ed59e1d1-34e91f6398cmr20025228a91.0.1766789659345;
        Fri, 26 Dec 2025 14:54:19 -0800 (PST)
From: Barry Song <21cnbao@gmail.com>
To: catalin.marinas@arm.com,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	will@kernel.org,
	iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Barry Song <baohua@kernel.org>,
	Leon Romanovsky <leon@kernel.org>,
	Ada Couprie Diaz <ada.coupriediaz@arm.com>,
	Ard Biesheuvel <ardb@kernel.org>,
	Marc Zyngier <maz@kernel.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Joerg Roedel <joro@8bytes.org>,
	Tangquan Zheng <zhengtangquan@oppo.com>
Subject: [PATCH RFC v2 8/8] dma-iommu: Support DMA sync batch mode for iommu_dma_sync_sg_for_{cpu, device}
Date: Sat, 27 Dec 2025 11:52:48 +1300
Message-ID: <20251226225254.46197-9-21cnbao@gmail.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20251226225254.46197-1-21cnbao@gmail.com>
References: <20251226225254.46197-1-21cnbao@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Barry Song <baohua@kernel.org>

Apply batched DMA synchronization to iommu_dma_sync_sg_for_cpu() and
iommu_dma_sync_sg_for_device(). For all buffers in an SG list, only
a single flush operation is needed.

I do not have the hardware to test this, so the patch is marked as
RFC. I would greatly appreciate any testing feedback.

Cc: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Joerg Roedel <joro@8bytes.org>
Cc: Tangquan Zheng <zhengtangquan@oppo.com>
Signed-off-by: Barry Song <baohua@kernel.org>
---
 drivers/iommu/dma-iommu.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index ffa940bdbbaf..b68dbfcb7846 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1131,10 +1131,9 @@ void iommu_dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sgl,
 			iommu_dma_sync_single_for_cpu(dev, sg_dma_address(sg),
 						      sg->length, dir);
 	} else if (!dev_is_dma_coherent(dev)) {
-		for_each_sg(sgl, sg, nelems, i) {
+		for_each_sg(sgl, sg, nelems, i)
 			arch_sync_dma_for_cpu(sg_phys(sg), sg->length, dir);
-			arch_sync_dma_flush();
-		}
+		arch_sync_dma_flush();
 	}
 }
 
@@ -1144,16 +1143,16 @@ void iommu_dma_sync_sg_for_device(struct device *dev, struct scatterlist *sgl,
 	struct scatterlist *sg;
 	int i;
 
-	if (sg_dma_is_swiotlb(sgl))
+	if (sg_dma_is_swiotlb(sgl)) {
 		for_each_sg(sgl, sg, nelems, i)
 			iommu_dma_sync_single_for_device(dev,
 							 sg_dma_address(sg),
 							 sg->length, dir);
-	else if (!dev_is_dma_coherent(dev))
-		for_each_sg(sgl, sg, nelems, i) {
+	} else if (!dev_is_dma_coherent(dev)) {
+		for_each_sg(sgl, sg, nelems, i)
 			arch_sync_dma_for_device(sg_phys(sg), sg->length, dir);
-			arch_sync_dma_flush();
-		}
+		arch_sync_dma_flush();
+	}
 }
 
 static phys_addr_t iommu_dma_map_swiotlb(struct device *dev, phys_addr_t phys,
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat Dec 27 14:23:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Dec 2025 14:23:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193514.1512197 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZVC5-00071c-Iu; Sat, 27 Dec 2025 14:22:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193514.1512197; Sat, 27 Dec 2025 14:22:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZVC5-00071U-Bu; Sat, 27 Dec 2025 14:22:57 +0000
Received: by outflank-mailman (input) for mailman id 1193514;
 Fri, 26 Dec 2025 22:53:30 +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 <SRS0=z/ld=7A=gmail.com=21cnbao@srs-se1.protection.inumbo.net>)
 id 1vZGgc-0005LS-Ct
 for xen-devel@lists.xenproject.org; Fri, 26 Dec 2025 22:53:30 +0000
Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com
 [2607:f8b0:4864:20::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b04268f1-e2ad-11f0-b15c-2bf370ae4941;
 Fri, 26 Dec 2025 23:53:28 +0100 (CET)
Received: by mail-pl1-x631.google.com with SMTP id
 d9443c01a7336-2a0d0788adaso67078725ad.3
 for <xen-devel@lists.xenproject.org>; Fri, 26 Dec 2025 14:53:27 -0800 (PST)
Received: from barry-desktop.hub ([47.72.129.29])
 by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-34e772ac1acsm9981428a91.9.2025.12.26.14.53.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Dec 2025 14:53:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b04268f1-e2ad-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766789605; x=1767394405; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6YZZU/iwW88zjNDDGdCYX7IlRTUynqMqN8pEJHwT790=;
        b=LfQXH98IWg6eWSlBrYs5gEFyVKLRlWCx2f9Tq83W6bRrNIgp+zi77pseksI5PHuWZq
         iVSfvAUnWlvyyBGNvbx0vTWgcqJLwe4I2umDVHs2aNN29OgO7j8wkVXJd3gRyiPMFiFz
         ByWUwkvMqDBvi3AJUO8mNVPSQRpQ9BkWocOYYWMU3LNI/SZjFD1mAfGY/vJkY8py2ove
         nOm+d9FlomtVmkWM3PMfGaVhDXb5VVNEYk2PSJzzyTP3VghzTOohdygcb9CQKdEI50jx
         O7B3Qz/2HDiILM6qS4cxzPH69ykyHKoZRV1ETKkYxORoZdmAI4AX1/a/GlYYmNkIe7fo
         IgqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766789605; x=1767394405;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=6YZZU/iwW88zjNDDGdCYX7IlRTUynqMqN8pEJHwT790=;
        b=TxwjOC9bv3MGZHj9a13pbAdNpJILBYLdq4nUq2Zhdx9DP5QS8QUP9RLTx3ndyPz9bs
         eQ0Fum30iPFb0KexdEctfvhnpm+27yhrKh3F/i5e8udvBRZmhHi1hXZlkRsYmpAzYUlX
         ZeUB3doSKm0wUAnkMfZREPzHCcskq83hL0siFFj30MQUOuRivhR8z0NmEn+UhGI99DkX
         HY9yiPX3EIbg6C0vjNToJ4dZ8sf0crUi/v9MPSgNvWalHX0VF4+Zveja5hN9usX8WX2+
         VjHGUxmBweBjlJMflmVxL29p6WPrRDXBK6XNh85jdebQ4qj4Jf3lOkoicuRxCmxfrrYu
         GniA==
X-Forwarded-Encrypted: i=1; AJvYcCWKQDonNL1Nq80SnlwpCaXGLL3ju1fLmVIFNciXebIB0NUh43erwz5xCVSYaeJRdLzMvs7uJM6cxc4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwoyAB261woAcbfKvHDoLHwNT2KKNszIzPAnEHHT5bJzs6vARY3
	XpnX6wtDA6Kc30Q/rvzuMwzUhL9gdSwE6fuRRW0TW+YZKKDr2z1SxHGP
X-Gm-Gg: AY/fxX7FJ6ueyi1/Tscbcy4vW6WfqemQsc7yu+pOf7GBOdKgHzYKKumGTPF1zLh7ukT
	FSTtwqOdh1z2s4XDNNnM2/KfrufRJ4R4J4xKVYf/U/RRwujGNq8fjaUqtXQuwn6gaBz7PkSP0e3
	Hgc5YmnV6gj+7+ah0M7dkw9cXskiHmSKqa2rwwV15bHHVZuhd3JcAj38plNPNhfLKSF5dfdSyXE
	zHXiSMFGHxtkvkrAFqDqkzpWVDNg5jAMhAAkQU2dX9ju2UAjnyNbF9W1MBGkBKhOMOVD36Gh7JM
	X2mTPdgJhOm7KIl04eArgx3z5qSLMCOQHObj2IwmUsd83tAEZcMLUbBlQUsJrWyI8Mnw5Jxp3yO
	osvmE4Jl9ioeL+MERVWEyy4T+4fNSUxyvProFr5kULaTqybaYchogxzDF84wOy5m4pYU9t02ZVn
	yF3+Q9vMIDh6w/
X-Google-Smtp-Source: AGHT+IEPpw6k3H5B3GfQJ5gfoJrvfI68uwFervPMjcjEQdlc2KG+bnnPwgqGQJuYg9SuR5JsgGZOMA==
X-Received: by 2002:a17:902:da81:b0:2a1:c72:a41d with SMTP id d9443c01a7336-2a2f2940678mr262079485ad.40.1766789605397;
        Fri, 26 Dec 2025 14:53:25 -0800 (PST)
From: Barry Song <21cnbao@gmail.com>
To: catalin.marinas@arm.com,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	will@kernel.org,
	iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Barry Song <baohua@kernel.org>,
	Leon Romanovsky <leon@kernel.org>,
	Ada Couprie Diaz <ada.coupriediaz@arm.com>,
	Ard Biesheuvel <ardb@kernel.org>,
	Marc Zyngier <maz@kernel.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Tangquan Zheng <zhengtangquan@oppo.com>
Subject: [PATCH v2 1/8] arm64: Provide dcache_by_myline_op_nosync helper
Date: Sat, 27 Dec 2025 11:52:41 +1300
Message-ID: <20251226225254.46197-2-21cnbao@gmail.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20251226225254.46197-1-21cnbao@gmail.com>
References: <20251226225254.46197-1-21cnbao@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Barry Song <baohua@kernel.org>

dcache_by_myline_op ensures completion of the data cache operations for a
region, while dcache_by_myline_op_nosync only issues them without waiting.
This enables deferred synchronization so completion for multiple regions
can be handled together later.

Cc: Leon Romanovsky <leon@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Tangquan Zheng <zhengtangquan@oppo.com>
Signed-off-by: Barry Song <baohua@kernel.org>
---
 arch/arm64/include/asm/assembler.h  | 24 +++++++++++++++++++-----
 arch/arm64/kernel/relocate_kernel.S |  3 ++-
 2 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/arch/arm64/include/asm/assembler.h b/arch/arm64/include/asm/assembler.h
index f0ca7196f6fa..b408ed61866f 100644
--- a/arch/arm64/include/asm/assembler.h
+++ b/arch/arm64/include/asm/assembler.h
@@ -371,14 +371,13 @@ alternative_endif
  * [start, end) with dcache line size explicitly provided.
  *
  * 	op:		operation passed to dc instruction
- * 	domain:		domain used in dsb instruction
  * 	start:          starting virtual address of the region
  * 	end:            end virtual address of the region
  *	linesz:		dcache line size
  * 	fixup:		optional label to branch to on user fault
  * 	Corrupts:       start, end, tmp
  */
-	.macro dcache_by_myline_op op, domain, start, end, linesz, tmp, fixup
+	.macro raw_dcache_by_myline_op op, start, end, linesz, tmp, fixup
 	sub	\tmp, \linesz, #1
 	bic	\start, \start, \tmp
 .Ldcache_op\@:
@@ -402,14 +401,13 @@ alternative_endif
 	add	\start, \start, \linesz
 	cmp	\start, \end
 	b.lo	.Ldcache_op\@
-	dsb	\domain
 
 	_cond_uaccess_extable .Ldcache_op\@, \fixup
 	.endm
 
 /*
  * Macro to perform a data cache maintenance for the interval
- * [start, end)
+ * [start, end) and wait for completion
  *
  * 	op:		operation passed to dc instruction
  * 	domain:		domain used in dsb instruction
@@ -420,7 +418,23 @@ alternative_endif
  */
 	.macro dcache_by_line_op op, domain, start, end, tmp1, tmp2, fixup
 	dcache_line_size \tmp1, \tmp2
-	dcache_by_myline_op \op, \domain, \start, \end, \tmp1, \tmp2, \fixup
+	raw_dcache_by_myline_op \op, \start, \end, \tmp1, \tmp2, \fixup
+	dsb \domain
+	.endm
+
+/*
+ * Macro to perform a data cache maintenance for the interval
+ * [start, end) without waiting for completion
+ *
+ * 	op:		operation passed to dc instruction
+ * 	start:          starting virtual address of the region
+ * 	end:            end virtual address of the region
+ * 	fixup:		optional label to branch to on user fault
+ * 	Corrupts:       start, end, tmp1, tmp2
+ */
+	.macro dcache_by_line_op_nosync op, start, end, tmp1, tmp2, fixup
+	dcache_line_size \tmp1, \tmp2
+	raw_dcache_by_myline_op \op, \start, \end, \tmp1, \tmp2, \fixup
 	.endm
 
 /*
diff --git a/arch/arm64/kernel/relocate_kernel.S b/arch/arm64/kernel/relocate_kernel.S
index 413f899e4ac6..71938eb3a3a3 100644
--- a/arch/arm64/kernel/relocate_kernel.S
+++ b/arch/arm64/kernel/relocate_kernel.S
@@ -64,7 +64,8 @@ SYM_CODE_START(arm64_relocate_new_kernel)
 	mov	x19, x13
 	copy_page x13, x12, x1, x2, x3, x4, x5, x6, x7, x8
 	add	x1, x19, #PAGE_SIZE
-	dcache_by_myline_op civac, sy, x19, x1, x15, x20
+	raw_dcache_by_myline_op civac, x19, x1, x15, x20
+	dsb	sy
 	b	.Lnext
 .Ltest_indirection:
 	tbz	x16, IND_INDIRECTION_BIT, .Ltest_destination
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat Dec 27 14:23:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Dec 2025 14:23:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193518.1512207 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZVC5-000778-Vu; Sat, 27 Dec 2025 14:22:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193518.1512207; Sat, 27 Dec 2025 14:22:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZVC5-00075u-Ql; Sat, 27 Dec 2025 14:22:57 +0000
Received: by outflank-mailman (input) for mailman id 1193518;
 Fri, 26 Dec 2025 22:53:43 +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 <SRS0=z/ld=7A=gmail.com=21cnbao@srs-se1.protection.inumbo.net>)
 id 1vZGgo-0005LS-Up
 for xen-devel@lists.xenproject.org; Fri, 26 Dec 2025 22:53:42 +0000
Received: from mail-pj1-x1036.google.com (mail-pj1-x1036.google.com
 [2607:f8b0:4864:20::1036])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b92433d8-e2ad-11f0-b15c-2bf370ae4941;
 Fri, 26 Dec 2025 23:53:42 +0100 (CET)
Received: by mail-pj1-x1036.google.com with SMTP id
 98e67ed59e1d1-34c71f462d2so8069953a91.0
 for <xen-devel@lists.xenproject.org>; Fri, 26 Dec 2025 14:53:42 -0800 (PST)
Received: from barry-desktop.hub ([47.72.129.29])
 by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-34e772ac1acsm9981428a91.9.2025.12.26.14.53.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Dec 2025 14:53:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b92433d8-e2ad-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766789620; x=1767394420; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XrpYuFgGuOqDarimfgNWi+H5QYEBWUzUVIbcnmljV6w=;
        b=I8qM87jmkRsHd6LGJrhefle/l7qlLLWvUBC8rJawsBsgCIb7dves6q3rdzZumCPBP5
         mS/5N4nVd9FPQ3q5Oj38ZSJwv7WIM+KZX5jaUiKUwo9OcIjCCCJ+NbCrtgz1cIt2PGmh
         g0pghCMvTNoEfmdwIz5OK/KaS6fMFoJjZwu37WpA/RD3QT4fOCfW1yJAh5RYk97szXFY
         +e6H9gY45y+0awD6eSWUhx27Wch9zEQopyFlnQ7j6+VDiqWvKPb7zy5TWySvvARACRkv
         mGd+GpkdB/J0BvdEl9JL7uOIlUb6cTuX45ywflUfJFLmLt1proYkDDnE25aaefmWGFPK
         dI7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766789620; x=1767394420;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=XrpYuFgGuOqDarimfgNWi+H5QYEBWUzUVIbcnmljV6w=;
        b=wOS+4Mbdw73QNe2HeqRopJ5bGrsBw4T3qlf3pSBhIfO/UljRb4kBdCbzR5qQPz1+8x
         ZlO7svB+OLDjp4BmvbFSdnhDg+DwqmT3pGdYaprLMFCaHG7D5S8fktWaYP0GdUZwI+N8
         nJqofl+jDzgha9gz7XU+fHYWZHzl+n4tIRqS4vBP7O13Ck/DwUTfP5CWKtQ4gjTKSiiJ
         EiSaIZt05pTBadeI7A/GL+Es4LECbuH1WNiQFfpg0AsBfQTbvFxDpg5IBGA0BAdv0g0F
         yPoD/tNSrVuGLByZIym+SP5ww15MVym650c4M+jL0gFsY2w3IIXlyiobyU698mK4aciV
         YPLg==
X-Forwarded-Encrypted: i=1; AJvYcCV0gMwMVScohb4KRMCvt/gPxAiFK4AnfuUI4e6SQ2pdK8a02kDoTx+EQy536MkW/2oR9KQe+0K/1e4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzqY7+g/iomYbz+oMeFw4iaDE7VsSLiBSC/0IBlsPy77FHHjqNN
	coe6XYmKDKvs7KonWfwAUR6EBU2wav++hT7IxqtSFiEj27ir4gimjNj9
X-Gm-Gg: AY/fxX5n5/LxM0dBooPf37UaZJ+wwQbIt3LA0ORN33zMNP8D6Cdhdf3R9QK4OYr10Ts
	t8yF5+m44OO4t7TRPrvcLgPHePN/910Zt/itsLm0E5tWmu/nUUDo+ODO0EqPtD2YfVsIXDH3MIJ
	pJ8D8Btd1SCnt4PWoEgEmEGdV72ALzGBYo9G/8AHOUDJZm0yiQvuEO4w1fOl+c6h+q9wxwfg4H5
	eAF18YXnFny6F3SZcStHMG5rG2QDoah3hHwqRyz151r6Iffq0sbbDzq0DmWZrwTiSYMRBVZOeTT
	jBsQ42VyVp3j6jvYY4dukX25UT8Pha6J03/SqjtgNbopaz7GObSITFO9c+gxcVCvVpQgFTqG1FH
	x/L+gN1brXdTz8gHZ7j8yoxUJWqetZe7cG7Q1mZAJY9P/r9CyzK0R1Jqpwsr+eqopwAVKM2oFwQ
	ADKGgNYVv/FctB
X-Google-Smtp-Source: AGHT+IGZAwVjw6Q14Ldbj2NnyfuDwpis8NstpDAoaBbm3hUZYJbQhE2SG8A3iUeExaHFKxkFLgGP9A==
X-Received: by 2002:a17:90b:528a:b0:330:6d5e:f174 with SMTP id 98e67ed59e1d1-34e921b05f6mr21341646a91.20.1766789620383;
        Fri, 26 Dec 2025 14:53:40 -0800 (PST)
From: Barry Song <21cnbao@gmail.com>
To: catalin.marinas@arm.com,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	will@kernel.org,
	iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Barry Song <baohua@kernel.org>,
	Leon Romanovsky <leon@kernel.org>,
	Ada Couprie Diaz <ada.coupriediaz@arm.com>,
	Ard Biesheuvel <ardb@kernel.org>,
	Marc Zyngier <maz@kernel.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Tangquan Zheng <zhengtangquan@oppo.com>
Subject: [PATCH v2 3/8] arm64: Provide dcache_inval_poc_nosync helper
Date: Sat, 27 Dec 2025 11:52:43 +1300
Message-ID: <20251226225254.46197-4-21cnbao@gmail.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20251226225254.46197-1-21cnbao@gmail.com>
References: <20251226225254.46197-1-21cnbao@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Barry Song <baohua@kernel.org>

dcache_inval_poc_nosync does not wait for the data cache invalidation to
complete. Later, we defer the synchronization so we can wait for all SG
entries together.

Cc: Leon Romanovsky <leon@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Tangquan Zheng <zhengtangquan@oppo.com>
Signed-off-by: Barry Song <baohua@kernel.org>
---
 arch/arm64/include/asm/cacheflush.h |  1 +
 arch/arm64/mm/cache.S               | 42 +++++++++++++++++++++--------
 2 files changed, 32 insertions(+), 11 deletions(-)

diff --git a/arch/arm64/include/asm/cacheflush.h b/arch/arm64/include/asm/cacheflush.h
index 9b6d0a62cf3d..382b4ac3734d 100644
--- a/arch/arm64/include/asm/cacheflush.h
+++ b/arch/arm64/include/asm/cacheflush.h
@@ -74,6 +74,7 @@ extern void icache_inval_pou(unsigned long start, unsigned long end);
 extern void dcache_clean_inval_poc(unsigned long start, unsigned long end);
 extern void dcache_inval_poc(unsigned long start, unsigned long end);
 extern void dcache_clean_poc(unsigned long start, unsigned long end);
+extern void dcache_inval_poc_nosync(unsigned long start, unsigned long end);
 extern void dcache_clean_poc_nosync(unsigned long start, unsigned long end);
 extern void dcache_clean_pop(unsigned long start, unsigned long end);
 extern void dcache_clean_pou(unsigned long start, unsigned long end);
diff --git a/arch/arm64/mm/cache.S b/arch/arm64/mm/cache.S
index 4a7c7e03785d..99a093d3aecb 100644
--- a/arch/arm64/mm/cache.S
+++ b/arch/arm64/mm/cache.S
@@ -132,17 +132,7 @@ alternative_else_nop_endif
 	ret
 SYM_FUNC_END(dcache_clean_pou)
 
-/*
- *	dcache_inval_poc(start, end)
- *
- * 	Ensure that any D-cache lines for the interval [start, end)
- * 	are invalidated. Any partial lines at the ends of the interval are
- *	also cleaned to PoC to prevent data loss.
- *
- *	- start   - kernel start address of region
- *	- end     - kernel end address of region
- */
-SYM_FUNC_START(__pi_dcache_inval_poc)
+.macro raw_dcache_inval_poc_macro
 	dcache_line_size x2, x3
 	sub	x3, x2, #1
 	tst	x1, x3				// end cache line aligned?
@@ -158,11 +148,41 @@ SYM_FUNC_START(__pi_dcache_inval_poc)
 3:	add	x0, x0, x2
 	cmp	x0, x1
 	b.lo	2b
+.endm
+
+/*
+ *	dcache_inval_poc(start, end)
+ *
+ * 	Ensure that any D-cache lines for the interval [start, end)
+ * 	are invalidated. Any partial lines at the ends of the interval are
+ *	also cleaned to PoC to prevent data loss.
+ *
+ *	- start   - kernel start address of region
+ *	- end     - kernel end address of region
+ */
+SYM_FUNC_START(__pi_dcache_inval_poc)
+	raw_dcache_inval_poc_macro
 	dsb	sy
 	ret
 SYM_FUNC_END(__pi_dcache_inval_poc)
 SYM_FUNC_ALIAS(dcache_inval_poc, __pi_dcache_inval_poc)
 
+/*
+ *	dcache_inval_poc_nosync(start, end)
+ *
+ * 	Issue the instructions of D-cache lines for the interval [start, end)
+ * 	for invalidation. Not necessarily cleaned to PoC till an explicit dsb
+ *	sy is issued later
+ *
+ *	- start   - kernel start address of region
+ *	- end     - kernel end address of region
+ */
+SYM_FUNC_START(__pi_dcache_inval_poc_nosync)
+	raw_dcache_inval_poc_macro
+	ret
+SYM_FUNC_END(__pi_dcache_inval_poc_nosync)
+SYM_FUNC_ALIAS(dcache_inval_poc_nosync, __pi_dcache_inval_poc_nosync)
+
 /*
  *	dcache_clean_poc(start, end)
  *
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat Dec 27 14:23:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Dec 2025 14:23:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193520.1512212 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZVC6-0007DO-9q; Sat, 27 Dec 2025 14:22:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193520.1512212; Sat, 27 Dec 2025 14:22:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZVC6-00079o-2B; Sat, 27 Dec 2025 14:22:58 +0000
Received: by outflank-mailman (input) for mailman id 1193520;
 Fri, 26 Dec 2025 22:53:52 +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 <SRS0=z/ld=7A=gmail.com=21cnbao@srs-se1.protection.inumbo.net>)
 id 1vZGgx-0005LS-TI
 for xen-devel@lists.xenproject.org; Fri, 26 Dec 2025 22:53:52 +0000
Received: from mail-pj1-x1032.google.com (mail-pj1-x1032.google.com
 [2607:f8b0:4864:20::1032])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be534a05-e2ad-11f0-b15c-2bf370ae4941;
 Fri, 26 Dec 2025 23:53:50 +0100 (CET)
Received: by mail-pj1-x1032.google.com with SMTP id
 98e67ed59e1d1-34a4078f669so7787370a91.1
 for <xen-devel@lists.xenproject.org>; Fri, 26 Dec 2025 14:53:50 -0800 (PST)
Received: from barry-desktop.hub ([47.72.129.29])
 by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-34e772ac1acsm9981428a91.9.2025.12.26.14.53.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Dec 2025 14:53:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: be534a05-e2ad-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766789629; x=1767394429; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9CBlUJRZIbYM1prFWy/0G8KDccWD/YxTB/AJqWrZ/Ys=;
        b=B9BV2hvxKWKha2D5IxGBNkC3dMvkslwO5soa+SKC9sZ/Z0c/8M9RyNpVFw9nnTf1+8
         8jRbrZes+HspOj6yz3AxIHWox5h3q2x2m2UeZbLvmEPuXeV7D2IoAnlf1Ko8W+JHKFB/
         WFX/dASYvpD4Z49QSwaPkTgNoSUUsEB3h1F02NF6Jcb/VV9QZVuUSb3urUHMHo8uDDOT
         g8Rs19vxqJ7PAMOCZwE5DKZ46p7rBu1p4iWuJlcHEi5H2zHKDTKPlodySuLezY7HvyNy
         xkAjEAhOlVLNncCxYy/d6AUup7pyl0Zsd88FJ+XFtXcWqcc03mAb8tNhnwsJCYLZNMsC
         hZPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766789629; x=1767394429;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=9CBlUJRZIbYM1prFWy/0G8KDccWD/YxTB/AJqWrZ/Ys=;
        b=LeYorYIAT6cy3UouEi3zaOKPxCiuv9+SY+mHCoMyg8COMkUJe5SZgGf6dt7H1aCBvV
         GQL+L2fVoJpcHenrNDIhvGUWmal5ZdPVTTZVQo9wxLjZUZhStBxVd1SD2mcMctpyh4W0
         o3+V6c11TyH/7gGnx5yQvnZ9AL2rWJcXxQBd4X22HeEseR44ep8WyFskAkisUGHvXtXl
         tGHXXBDgRnx3odlvdx583AkOa7NrUudlnkGdsKp38ucK5fWhk/Q9ctfTdRImklfJVE+h
         5Hs3XaJzka4mfUJ++EyfkrJBZ326DOMD3hBzPVnZvzOGu+DCUCbVGPoS+xoEXqI9S59A
         yoHA==
X-Forwarded-Encrypted: i=1; AJvYcCUiKBGS+rkf9gSVYaojmz43IZ53bfI1+LAbt9SNDqoQ6CU/ydA+Tp+YvE+xuJJ/VPjCfDMnrukhrPg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwaeaGFcd9Y+GINJfhuQXsFGlYN5eSFEHGskcTnWac1q80Vwzjs
	WnmP/lwx12KRRRwBCcyKRXjT9FIBFM+ForuBBvNAkrtFT3JSMD6+cN4O
X-Gm-Gg: AY/fxX52ACoAc/OUwboU2mY3k5nvDuIYgVvi01nEIr/oVSwlbhO4V4xV6/e1jCT14fI
	HtDbsfSP1pZeIVeNBmlcKFLHCVDsw55ZeLntHzz+SmCFahtKQh18QRDRIJGYNdCGBbOTv6lgwuh
	cHC4JHyhiTr9CjdEABeRXvAIor/JNdZPt7S5BQttTRrXW+t6f/g98mxtfLsPMadFhu9Q3QssYbm
	Gnju3CBtq4z3yOKqrjwV+vw8ji/KcgPYcPRfPOy8Y/zmjagg9rQPqZXFOIoy6RAHj29w9NLIeFG
	nHsnXMB2LPRuVJRR5el3UP+w61niEuYgQbiPOpNFTupni4FpnH0vrbcKFtdM7rVI/5VDUom8VRq
	bkrezkzt3W+mgpAC1X0f4GLjiZzAKQWW5rT8p7yhL2oC7H+590sMKf+1dmn0tXpGpdaQQZqDZ9k
	xd48bVgC0Iztpx
X-Google-Smtp-Source: AGHT+IF6GTCerKOqMOKSYSeLfAiimvUN3+7D1SxAsR14bBFsurGjwmGev9rAORcjp7S0YIZTn6CThQ==
X-Received: by 2002:a17:90b:560c:b0:32d:e780:e9d5 with SMTP id 98e67ed59e1d1-34e921c3003mr16987619a91.22.1766789629137;
        Fri, 26 Dec 2025 14:53:49 -0800 (PST)
From: Barry Song <21cnbao@gmail.com>
To: catalin.marinas@arm.com,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	will@kernel.org,
	iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Barry Song <baohua@kernel.org>,
	Leon Romanovsky <leon@kernel.org>,
	Ada Couprie Diaz <ada.coupriediaz@arm.com>,
	Ard Biesheuvel <ardb@kernel.org>,
	Marc Zyngier <maz@kernel.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Joerg Roedel <joro@8bytes.org>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Tangquan Zheng <zhengtangquan@oppo.com>
Subject: [PATCH v2 4/8] dma-mapping: Separate DMA sync issuing and completion waiting
Date: Sat, 27 Dec 2025 11:52:44 +1300
Message-ID: <20251226225254.46197-5-21cnbao@gmail.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20251226225254.46197-1-21cnbao@gmail.com>
References: <20251226225254.46197-1-21cnbao@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Barry Song <baohua@kernel.org>

Currently, arch_sync_dma_for_cpu and arch_sync_dma_for_device
always wait for the completion of each DMA buffer. That is,
issuing the DMA sync and waiting for completion is done in a
single API call.

For scatter-gather lists with multiple entries, this means
issuing and waiting is repeated for each entry, which can hurt
performance. Architectures like ARM64 may be able to issue all
DMA sync operations for all entries first and then wait for
completion together.

To address this, arch_sync_dma_for_* now issues DMA operations in
batch, followed by a flush. On ARM64, the flush is implemented
using a dsb instruction within arch_sync_dma_flush().

For now, add arch_sync_dma_flush() after each
arch_sync_dma_for_*() call. arch_sync_dma_flush() is defined as a
no-op on all architectures except arm64, so this patch does not
change existing behavior. Subsequent patches will introduce true
batching for SG DMA buffers.

Cc: Leon Romanovsky <leon@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Joerg Roedel <joro@8bytes.org>
Cc: Juergen Gross <jgross@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: Tangquan Zheng <zhengtangquan@oppo.com>
Signed-off-by: Barry Song <baohua@kernel.org>
---
 arch/arm64/include/asm/cache.h |  6 ++++++
 arch/arm64/mm/dma-mapping.c    |  4 ++--
 drivers/iommu/dma-iommu.c      | 37 +++++++++++++++++++++++++---------
 drivers/xen/swiotlb-xen.c      | 24 ++++++++++++++--------
 include/linux/dma-map-ops.h    |  6 ++++++
 kernel/dma/direct.c            |  8 ++++++--
 kernel/dma/direct.h            |  9 +++++++--
 kernel/dma/swiotlb.c           |  4 +++-
 8 files changed, 73 insertions(+), 25 deletions(-)

diff --git a/arch/arm64/include/asm/cache.h b/arch/arm64/include/asm/cache.h
index dd2c8586a725..487fb7c355ed 100644
--- a/arch/arm64/include/asm/cache.h
+++ b/arch/arm64/include/asm/cache.h
@@ -87,6 +87,12 @@ int cache_line_size(void);
 
 #define dma_get_cache_alignment	cache_line_size
 
+static inline void arch_sync_dma_flush(void)
+{
+	dsb(sy);
+}
+#define arch_sync_dma_flush arch_sync_dma_flush
+
 /* Compress a u64 MPIDR value into 32 bits. */
 static inline u64 arch_compact_of_hwid(u64 id)
 {
diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c
index b2b5792b2caa..ae1ae0280eef 100644
--- a/arch/arm64/mm/dma-mapping.c
+++ b/arch/arm64/mm/dma-mapping.c
@@ -17,7 +17,7 @@ void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
 {
 	unsigned long start = (unsigned long)phys_to_virt(paddr);
 
-	dcache_clean_poc(start, start + size);
+	dcache_clean_poc_nosync(start, start + size);
 }
 
 void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
@@ -28,7 +28,7 @@ void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
 	if (dir == DMA_TO_DEVICE)
 		return;
 
-	dcache_inval_poc(start, start + size);
+	dcache_inval_poc_nosync(start, start + size);
 }
 
 void arch_dma_prep_coherent(struct page *page, size_t size)
diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index c92088855450..6827763a3877 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1095,8 +1095,10 @@ void iommu_dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle,
 		return;
 
 	phys = iommu_iova_to_phys(iommu_get_dma_domain(dev), dma_handle);
-	if (!dev_is_dma_coherent(dev))
+	if (!dev_is_dma_coherent(dev)) {
 		arch_sync_dma_for_cpu(phys, size, dir);
+		arch_sync_dma_flush();
+	}
 
 	swiotlb_sync_single_for_cpu(dev, phys, size, dir);
 }
@@ -1112,8 +1114,10 @@ void iommu_dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle,
 	phys = iommu_iova_to_phys(iommu_get_dma_domain(dev), dma_handle);
 	swiotlb_sync_single_for_device(dev, phys, size, dir);
 
-	if (!dev_is_dma_coherent(dev))
+	if (!dev_is_dma_coherent(dev)) {
 		arch_sync_dma_for_device(phys, size, dir);
+		arch_sync_dma_flush();
+	}
 }
 
 void iommu_dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sgl,
@@ -1122,13 +1126,16 @@ void iommu_dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sgl,
 	struct scatterlist *sg;
 	int i;
 
-	if (sg_dma_is_swiotlb(sgl))
+	if (sg_dma_is_swiotlb(sgl)) {
 		for_each_sg(sgl, sg, nelems, i)
 			iommu_dma_sync_single_for_cpu(dev, sg_dma_address(sg),
 						      sg->length, dir);
-	else if (!dev_is_dma_coherent(dev))
-		for_each_sg(sgl, sg, nelems, i)
+	} else if (!dev_is_dma_coherent(dev)) {
+		for_each_sg(sgl, sg, nelems, i) {
 			arch_sync_dma_for_cpu(sg_phys(sg), sg->length, dir);
+			arch_sync_dma_flush();
+		}
+	}
 }
 
 void iommu_dma_sync_sg_for_device(struct device *dev, struct scatterlist *sgl,
@@ -1143,8 +1150,10 @@ void iommu_dma_sync_sg_for_device(struct device *dev, struct scatterlist *sgl,
 							 sg_dma_address(sg),
 							 sg->length, dir);
 	else if (!dev_is_dma_coherent(dev))
-		for_each_sg(sgl, sg, nelems, i)
+		for_each_sg(sgl, sg, nelems, i) {
 			arch_sync_dma_for_device(sg_phys(sg), sg->length, dir);
+			arch_sync_dma_flush();
+		}
 }
 
 static phys_addr_t iommu_dma_map_swiotlb(struct device *dev, phys_addr_t phys,
@@ -1219,8 +1228,10 @@ dma_addr_t iommu_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
 			return DMA_MAPPING_ERROR;
 	}
 
-	if (!coherent && !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO)))
+	if (!coherent && !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO))) {
 		arch_sync_dma_for_device(phys, size, dir);
+		arch_sync_dma_flush();
+	}
 
 	iova = __iommu_dma_map(dev, phys, size, prot, dma_mask);
 	if (iova == DMA_MAPPING_ERROR && !(attrs & DMA_ATTR_MMIO))
@@ -1242,8 +1253,10 @@ void iommu_dma_unmap_phys(struct device *dev, dma_addr_t dma_handle,
 	if (WARN_ON(!phys))
 		return;
 
-	if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC) && !dev_is_dma_coherent(dev))
+	if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC) && !dev_is_dma_coherent(dev)) {
 		arch_sync_dma_for_cpu(phys, size, dir);
+		arch_sync_dma_flush();
+	}
 
 	__iommu_dma_unmap(dev, dma_handle, size);
 
@@ -1836,8 +1849,10 @@ static int __dma_iova_link(struct device *dev, dma_addr_t addr,
 	bool coherent = dev_is_dma_coherent(dev);
 	int prot = dma_info_to_prot(dir, coherent, attrs);
 
-	if (!coherent && !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO)))
+	if (!coherent && !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO))) {
 		arch_sync_dma_for_device(phys, size, dir);
+		arch_sync_dma_flush();
+	}
 
 	return iommu_map_nosync(iommu_get_dma_domain(dev), addr, phys, size,
 			prot, GFP_ATOMIC);
@@ -2008,8 +2023,10 @@ static void iommu_dma_iova_unlink_range_slow(struct device *dev,
 			end - addr, iovad->granule - iova_start_pad);
 
 		if (!dev_is_dma_coherent(dev) &&
-		    !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO)))
+		    !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO))) {
 			arch_sync_dma_for_cpu(phys, len, dir);
+			arch_sync_dma_flush();
+		}
 
 		swiotlb_tbl_unmap_single(dev, phys, len, dir, attrs);
 
diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c
index ccf25027bec1..b79917e785a5 100644
--- a/drivers/xen/swiotlb-xen.c
+++ b/drivers/xen/swiotlb-xen.c
@@ -262,10 +262,12 @@ static dma_addr_t xen_swiotlb_map_phys(struct device *dev, phys_addr_t phys,
 
 done:
 	if (!dev_is_dma_coherent(dev) && !(attrs & DMA_ATTR_SKIP_CPU_SYNC)) {
-		if (pfn_valid(PFN_DOWN(dma_to_phys(dev, dev_addr))))
+		if (pfn_valid(PFN_DOWN(dma_to_phys(dev, dev_addr)))) {
 			arch_sync_dma_for_device(phys, size, dir);
-		else
+			arch_sync_dma_flush();
+		} else {
 			xen_dma_sync_for_device(dev, dev_addr, size, dir);
+		}
 	}
 	return dev_addr;
 }
@@ -287,10 +289,12 @@ static void xen_swiotlb_unmap_phys(struct device *hwdev, dma_addr_t dev_addr,
 	BUG_ON(dir == DMA_NONE);
 
 	if (!dev_is_dma_coherent(hwdev) && !(attrs & DMA_ATTR_SKIP_CPU_SYNC)) {
-		if (pfn_valid(PFN_DOWN(dma_to_phys(hwdev, dev_addr))))
+		if (pfn_valid(PFN_DOWN(dma_to_phys(hwdev, dev_addr)))) {
 			arch_sync_dma_for_cpu(paddr, size, dir);
-		else
+			arch_sync_dma_flush();
+		} else {
 			xen_dma_sync_for_cpu(hwdev, dev_addr, size, dir);
+		}
 	}
 
 	/* NOTE: We use dev_addr here, not paddr! */
@@ -308,10 +312,12 @@ xen_swiotlb_sync_single_for_cpu(struct device *dev, dma_addr_t dma_addr,
 	struct io_tlb_pool *pool;
 
 	if (!dev_is_dma_coherent(dev)) {
-		if (pfn_valid(PFN_DOWN(dma_to_phys(dev, dma_addr))))
+		if (pfn_valid(PFN_DOWN(dma_to_phys(dev, dma_addr)))) {
 			arch_sync_dma_for_cpu(paddr, size, dir);
-		else
+			arch_sync_dma_flush();
+		} else {
 			xen_dma_sync_for_cpu(dev, dma_addr, size, dir);
+		}
 	}
 
 	pool = xen_swiotlb_find_pool(dev, dma_addr);
@@ -331,10 +337,12 @@ xen_swiotlb_sync_single_for_device(struct device *dev, dma_addr_t dma_addr,
 		__swiotlb_sync_single_for_device(dev, paddr, size, dir, pool);
 
 	if (!dev_is_dma_coherent(dev)) {
-		if (pfn_valid(PFN_DOWN(dma_to_phys(dev, dma_addr))))
+		if (pfn_valid(PFN_DOWN(dma_to_phys(dev, dma_addr)))) {
 			arch_sync_dma_for_device(paddr, size, dir);
-		else
+			arch_sync_dma_flush();
+		} else {
 			xen_dma_sync_for_device(dev, dma_addr, size, dir);
+		}
 	}
 }
 
diff --git a/include/linux/dma-map-ops.h b/include/linux/dma-map-ops.h
index 4809204c674c..e7dd8a63b40e 100644
--- a/include/linux/dma-map-ops.h
+++ b/include/linux/dma-map-ops.h
@@ -361,6 +361,12 @@ static inline void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
 }
 #endif /* ARCH_HAS_SYNC_DMA_FOR_CPU */
 
+#ifndef arch_sync_dma_flush
+static inline void arch_sync_dma_flush(void)
+{
+}
+#endif
+
 #ifdef CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU_ALL
 void arch_sync_dma_for_cpu_all(void);
 #else
diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
index 50c3fe2a1d55..a219911c7b90 100644
--- a/kernel/dma/direct.c
+++ b/kernel/dma/direct.c
@@ -402,9 +402,11 @@ void dma_direct_sync_sg_for_device(struct device *dev,
 
 		swiotlb_sync_single_for_device(dev, paddr, sg->length, dir);
 
-		if (!dev_is_dma_coherent(dev))
+		if (!dev_is_dma_coherent(dev)) {
 			arch_sync_dma_for_device(paddr, sg->length,
 					dir);
+			arch_sync_dma_flush();
+		}
 	}
 }
 #endif
@@ -421,8 +423,10 @@ void dma_direct_sync_sg_for_cpu(struct device *dev,
 	for_each_sg(sgl, sg, nents, i) {
 		phys_addr_t paddr = dma_to_phys(dev, sg_dma_address(sg));
 
-		if (!dev_is_dma_coherent(dev))
+		if (!dev_is_dma_coherent(dev)) {
 			arch_sync_dma_for_cpu(paddr, sg->length, dir);
+			arch_sync_dma_flush();
+		}
 
 		swiotlb_sync_single_for_cpu(dev, paddr, sg->length, dir);
 
diff --git a/kernel/dma/direct.h b/kernel/dma/direct.h
index da2fadf45bcd..a69326eed266 100644
--- a/kernel/dma/direct.h
+++ b/kernel/dma/direct.h
@@ -60,8 +60,10 @@ static inline void dma_direct_sync_single_for_device(struct device *dev,
 
 	swiotlb_sync_single_for_device(dev, paddr, size, dir);
 
-	if (!dev_is_dma_coherent(dev))
+	if (!dev_is_dma_coherent(dev)) {
 		arch_sync_dma_for_device(paddr, size, dir);
+		arch_sync_dma_flush();
+	}
 }
 
 static inline void dma_direct_sync_single_for_cpu(struct device *dev,
@@ -71,6 +73,7 @@ static inline void dma_direct_sync_single_for_cpu(struct device *dev,
 
 	if (!dev_is_dma_coherent(dev)) {
 		arch_sync_dma_for_cpu(paddr, size, dir);
+		arch_sync_dma_flush();
 		arch_sync_dma_for_cpu_all();
 	}
 
@@ -109,8 +112,10 @@ static inline dma_addr_t dma_direct_map_phys(struct device *dev,
 	}
 
 	if (!dev_is_dma_coherent(dev) &&
-	    !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO)))
+	    !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO))) {
 		arch_sync_dma_for_device(phys, size, dir);
+		arch_sync_dma_flush();
+	}
 	return dma_addr;
 
 err_overflow:
diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c
index a547c7693135..7cdbfcdfef86 100644
--- a/kernel/dma/swiotlb.c
+++ b/kernel/dma/swiotlb.c
@@ -1595,8 +1595,10 @@ dma_addr_t swiotlb_map(struct device *dev, phys_addr_t paddr, size_t size,
 		return DMA_MAPPING_ERROR;
 	}
 
-	if (!dev_is_dma_coherent(dev) && !(attrs & DMA_ATTR_SKIP_CPU_SYNC))
+	if (!dev_is_dma_coherent(dev) && !(attrs & DMA_ATTR_SKIP_CPU_SYNC)) {
 		arch_sync_dma_for_device(swiotlb_addr, size, dir);
+		arch_sync_dma_flush();
+	}
 	return dma_addr;
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat Dec 27 14:23:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Dec 2025 14:23:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193399.1512286 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZVCG-0000sY-HB; Sat, 27 Dec 2025 14:23:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193399.1512286; Sat, 27 Dec 2025 14:23:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZVCG-0000sK-DA; Sat, 27 Dec 2025 14:23:08 +0000
Received: by outflank-mailman (input) for mailman id 1193399;
 Thu, 25 Dec 2025 23:33:08 +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
 <SRS0=J6E+=67=proton.me=milky_way_303030@srs-se1.protection.inumbo.net>)
 id 1vYupP-0001bd-BD
 for xen-devel@lists.xenproject.org; Thu, 25 Dec 2025 23:33:08 +0000
Received: from mail-106104.protonmail.ch (mail-106104.protonmail.ch
 [79.135.106.104]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0ede55c1-e1ea-11f0-b15c-2bf370ae4941;
 Fri, 26 Dec 2025 00:33:03 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ede55c1-e1ea-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=slzr66k5hffu7elgtpaepuwix4.protonmail; t=1766705581; x=1766964781;
	bh=7Tr239WhC1bzyzqRw3XyA3F9p1RiddyF6W1+H8Z5Fkk=;
	h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector;
	b=QSN7NCk+nUwtlg6yd3lBANLLVMihIpBb1QFKmB2hMMqUlfjEQhYgQG8WO+zBgmesX
	 Sp4XZ+Nu3aq8EfFZORcWeckw9oBcyUQkqLWHSO/bfVfrgmc1UhnrEXn7/DHEpsgEQs
	 WP+31s0rG8moXzQZv2iuKHrDuaKwakzjojmDKgsFuZi9KPNtdTFai9T7pka/zbr/kZ
	 oamE0en/IbtXXyUoN8ISv+kom9848aCWl3/lFjrWNwDd7r8mJfR/PAjJuCuh90P9GJ
	 kOjBrIIkGdu0YmHec66mZATc/yyD5iTCckN+WKsQNUybgPS2uxvZyMo/AVHyoHtRqu
	 6+qwOCq8XT05w==
Date: Thu, 25 Dec 2025 23:32:58 +0000
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
From: Milky <milky_way_303030@proton.me>
Subject: Cpufreq drivers not working on T480S
Message-ID: <dg8zeLW4X3RWRJt-1jas5pAqHft5GbxYxS5mNwc4ONE8tDEruL1-5a_e-vQu1RdOUWsMXxKe_Igcewy2zcbnOfkaGVG7y6hXLcLd78HI1po=@proton.me>
Feedback-ID: 171106842:user:proton
X-Pm-Message-ID: 16091d719555f62d4e5abfb781897edd66943b48
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

System is T480s with i5-8250U and Libreboot, booting Qubes R4.2 with Xen 4.=
17.5.

I=E2=80=99ve tested the following configurations:

1. `GRUB_CMDLINE_XEN_DEFAULT=3D"cpufreq=3Dxen:performance"` as per [the xen=
 docs](https://xenbits.xen.org/docs/unstable/misc/xen-command-line.html#cpu=
freq)
2. `GRUB_CMDLINE_XEN_DEFAULT=3D"cpufreq=3Ddom0-kernel dom0_vcpus_pin"` as p=
er [the xen wiki](http://wiki.xenproject.org/wiki/Xen_power_management#Doma=
in0_based_cpufreq); tho I suspect this option might be deprecated.
3. `GRUB_CMDLINE_XEN_DEFAULT=3D"cpufreq=3Dxen:hwp"`, which should have acti=
vated [this patch from the Qubes team](https://github.com/QubesOS/qubes-vmm=
-xen/pull/158).

In all cases, `cat /proc/cpuinfo` reports the fixed value `cpu Mhz: 1800`, =
confirmed also using `dmidecode`. `sysbench` in an AppVM with max vcpus con=
sistently reports about 1600 events per second, while the dom0 CPU stats in=
 the previous commands remain unchanged. `xenpm start 10 | grep 'Avg freq'`=
 reports bizarre values, like `609350368 KHz`.

The following commands were also checked:

```
$ xenpm get-cpufreq-para
[CPU0] failed to get cpufreq parameter
<...>

$ xenpm get-cpufreq-states
<no output>

$ lsmod | grep 'xen_acpi_processor'
<no output>

$ modprobe xen_acpi_processor
modprobe: ERROR: could not insert 'xen_acpi_processor': No such device
```

Based on (this Xen mailing list message)[https://old-list-archives.xen.org/=
archives/html/xen-devel/2020-01/msg02588.html], the `xen-acpi-processor` mo=
dule is what enables dom0 to pass critical information to Xen. Thus, it see=
ms a big part of the problem is that `xen-acpi-processor` is refusing to lo=
ad. =C2=A0

To rule out causes independent of Xen/Qubes, I booted using a Debian Live i=
mage. `sysbench` consistently reported 4000 events per second, while `/sys/=
cpuinfo` reliably showed a jump from 900Mhz to 3.4GHz.

In conclusion, only under Qubes/Xen, something seems to block the scaling d=
rivers from working on this system.

For each of the configurations above, I am pasting the complete output of `=
xl dmesg`. Let me know if there is anything else I should do.

```
########################################################################
# `cpufreq=3Dxen:performance`

(XEN) Built-in command line: ept=3Dexec-sp spec-ctrl=3Dunpriv-mmio
=C2=A0Xen 4.17.5
(XEN) Xen version 4.17.5 (mockbuild@[unknown]) (gcc (GCC) 12.3.1 20230508 (=
Red Hat 12.3.1-1)) debug=3Dn Fri Aug 22 16:12:56 CEST 2025
(XEN) Latest ChangeSet:
(XEN) build-id: d2dd0684651dcc833d35869ad2259cb6f0ba1d19
(XEN) Bootloader: GRUB 2.13
(XEN) Command line: placeholder cpufreq=3Dxen:performance,verbose loglvl=3D=
all dom0_mem=3Dmin:1024M dom0_mem=3Dmax:4096M ucode=3Dscan smt=3Doff gnttab=
_max_frames=3D2048 gnttab_max_maptrack_frames=3D4096 no-real-mode edd=3Doff
(XEN) Xen image load base address: 0x79200000
(XEN) Video information:
(XEN) =C2=A0VGA is text mode 80x25, font 8x16
(XEN) Disc information:
(XEN) =C2=A0Found 0 MBR signatures
(XEN) =C2=A0Found 0 EDD information structures
(XEN) CPU Vendor: Intel, Family 6 (0x6), Model 142 (0x8e), Stepping 10 (raw=
 000806ea)
(XEN) Multiboot-e820 RAM map:
(XEN) =C2=A0[0000000000000000, 0000000000000fff] (reserved)
(XEN) =C2=A0[0000000000001000, 000000000009ffff] (usable)
(XEN) =C2=A0[00000000000a0000, 00000000000fffff] (reserved)
(XEN) =C2=A0[0000000000100000, 000000007aa06fff] (usable)
(XEN) =C2=A0[000000007aa07000, 000000007fffffff] (reserved)
(XEN) =C2=A0[00000000e0000000, 00000000efffffff] (reserved)
(XEN) =C2=A0[00000000fd000000, 00000000fe00ffff] (reserved)
(XEN) =C2=A0[00000000fed10000, 00000000fed19fff] (reserved)
(XEN) =C2=A0[00000000fed80000, 00000000fed84fff] (reserved)
(XEN) =C2=A0[00000000fed90000, 00000000fed91fff] (reserved)
(XEN) =C2=A0[0000000100000000, 0000000a7fffffff] (usable)
(XEN) ACPI: RSDP 000F6010, 0024 (r2 COREv4)
(XEN) ACPI: XSDT 7AA0F0E0, 0064 (r1 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: FACP 7AA13020, 0114 (r6 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: DSDT 7AA0F280, 3D98 (r2 COREv4 COREBOOT 20110725 INTL 20241212)
(XEN) ACPI: FACS 7AA0F240, 0040
(XEN) ACPI: SSDT 7AA13140, 08EA (r2 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: MCFG 7AA13A30, 003C (r1 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: LPIT 7AA13A70, 0094 (r0 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: APIC 7AA13B10, 0072 (r3 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: SPCR 7AA13B90, 0058 (r4 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: DMAR 7AA13BF0, 0088 (r1 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: HPET 7AA13C80, 0038 (r1 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) System RAM: 40873MB (41854616kB)
(XEN) No NUMA configuration found
(XEN) Faking a node at 0000000000000000-0000000a80000000
(XEN) Domain heap initialised
(XEN) SMBIOS 3.0 present.
(XEN) Using APIC driver default
(XEN) ACPI: PM-Timer IO Port: 0x1808 (24 bits)
(XEN) ACPI: v5 SLEEP INFO: control[0:0], status[0:0]
(XEN) ACPI: SLEEP INFO: pm1x_cnt[1:1804,1:0], pm1x_evt[1:1800,1:0]
(XEN) ACPI: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 wakeup_vec[7aa0f24c],=
 vec_size[20]
(XEN) ACPI: Local APIC address 0xfee00000
(XEN) ACPI: IOAPIC (id[0x00] address[0xfec00000] gsi_base[0])
(XEN) IOAPIC[0]: apic_id 0, version 32, address 0xfec00000, GSI 0-119
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 high edge)
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
(XEN) ACPI: IRQ0 used by override.
(XEN) ACPI: IRQ2 used by override.
(XEN) ACPI: IRQ9 used by override.
(XEN) ACPI: HPET id: 0x8086a701 base: 0xfed00000
(XEN) PCI: MCFG configuration 0: base e0000000 segment 0000 buses 00 - ff
(XEN) PCI: MCFG area at e0000000 reserved in E820
(XEN) PCI: Using MCFG for segment 0000 bus 00-ff
(XEN) Using ACPI (MADT) for SMP configuration information
(XEN) SMP: Allowing 4 CPUs (0 hotplug CPUs)
(XEN) IRQ limits: 120 GSI, 840 MSI/MSI-X
(XEN) Switched to APIC driver x2apic_mixed
(XEN) BSP microcode revision: 0x000000f6
(XEN) FIRMWARE BUG: CPU 06-8e-0a, ucode 0x000000f6: RTM_ALWAYS_ABORT vs RTM=
 mismatch
(XEN) CPU0: TSC: ratio: 150 / 2
(XEN) CPU0: bus: 100 MHz base: 1800 MHz max: 3400 MHz
(XEN) CPU0: 400 ... 1800 MHz
(XEN) xstate: size: 0x440 and states: 0x1f
(XEN) CPU0: Intel machine check reporting enabled
(XEN) Speculative mitigation facilities:
(XEN) =C2=A0 Hardware hints: RSBA RFDS_NO
(XEN) =C2=A0 Hardware features: IBPB IBRS STIBP SSBD L1D_FLUSH MD_CLEAR SRB=
DS_CTRL GDS_CTRL
(XEN) =C2=A0 Compiled-in support: INDIRECT_THUNK RETURN_THUNK HARDEN_ARRAY =
HARDEN_BRANCH HARDEN_GUEST_ACCESS HARDEN_LOCK
(XEN) =C2=A0 Xen settings: BTI-Thunk: JMP, SPEC_CTRL: IBRS+ STIBP+ SSBD-, O=
ther: SRB_LOCK+ IBPB-ctxt L1D_FLUSH VERW BRANCH_HARDEN
(XEN) =C2=A0 L1TF: believed vulnerable, maxphysaddr L1D 46, CPUID 39, Safe =
address 8000000000
(XEN) =C2=A0 Support for HVM VMs: MSR_SPEC_CTRL MSR_VIRT_SPEC_CTRL RSB EAGE=
R_FPU
(XEN) =C2=A0 Support for PV VMs: MSR_SPEC_CTRL EAGER_FPU VERW
(XEN) =C2=A0 XPTI (64-bit PV only): Dom0 enabled, DomU enabled (with PCID)
(XEN) =C2=A0 PV L1TF shadowing: Dom0 disabled, DomU enabled
(XEN) Using scheduler: SMP Credit Scheduler rev2 (credit2)
(XEN) Initializing Credit2 scheduler
(XEN) =C2=A0load_precision_shift: 18
(XEN) =C2=A0load_window_shift: 30
(XEN) =C2=A0underload_balance_tolerance: 0
(XEN) =C2=A0overload_balance_tolerance: -3
(XEN) =C2=A0runqueues arrangement: socket
(XEN) =C2=A0cap enforcement granularity: 10ms
(XEN) load tracking window length 1073741824 ns
(XEN) Disabling HPET for being unreliable
(XEN) Platform timer is 3.580MHz ACPI PM Timer
(XEN) Detected 1799.989 MHz processor.
(XEN) Freed 1024kB unused BSS memory
(XEN) alt table ffff82d04042bf70 -> ffff82d04043b3f2
(XEN) cpu0: spurious 8259A interrupt: IRQ7
(XEN) Intel VT-d iommu 0 supported page sizes: 4kB, 2MB, 1GB
(XEN) Intel VT-d iommu 1 supported page sizes: 4kB, 2MB, 1GB
(XEN) Intel VT-d Snoop Control not enabled.
(XEN) Intel VT-d Dom0 DMA Passthrough not enabled.
(XEN) Intel VT-d Queued Invalidation enabled.
(XEN) Intel VT-d Interrupt Remapping enabled.
(XEN) Intel VT-d Posted Interrupt not enabled.
(XEN) Intel VT-d Shared EPT tables enabled.
(XEN) I/O virtualisation enabled
(XEN) =C2=A0- Dom0 mode: Relaxed
(XEN) Interrupt remapping enabled
(XEN) nr_sockets: 1
(XEN) Enabled directed EOI with ioapic_ack_old on!
(XEN) Enabling APIC mode. =C2=A0Using 1 I/O APICs
(XEN) ENABLING IO-APIC IRQs
(XEN) =C2=A0-> Using old ACK method
(XEN) ..TIMER: vector=3D0xF0 apic1=3D0 pin1=3D2 apic2=3D0 pin2=3D0
(XEN) TSC deadline timer enabled
(XEN) Allocated console ring of 32 KiB.
(XEN) HWP: 1 notify: 1 act-window: 1 energy-perf: 1 pkg-level: 0 peci: 0
(XEN) HWP: Hardware Duty Cycling (HDC) supported, enabled
(XEN) HWP: HW_FEEDBACK not supported
(XEN) Using HWP for cpufreq
(XEN) mwait-idle: MWAIT substates: 0x11142120
(XEN) mwait-idle: v0.4.1 model 0x8e
(XEN) mwait-idle: lapic_timer_reliable_states 0xffffffff
(XEN) VMX: Supported advanced features:
(XEN) =C2=A0- APIC MMIO access virtualisation
(XEN) =C2=A0- APIC TPR shadow
(XEN) =C2=A0- Extended Page Tables (EPT)
(XEN) =C2=A0- Virtual-Processor Identifiers (VPID)
(XEN) =C2=A0- Virtual NMI
(XEN) =C2=A0- MSR direct-access bitmap
(XEN) =C2=A0- Unrestricted Guest
(XEN) =C2=A0- VM Functions
(XEN) =C2=A0- Virtualisation Exceptions
(XEN) =C2=A0- Page Modification Logging
(XEN) HVM: ASIDs enabled.
(XEN) HVM: VMX enabled
(XEN) HVM: Hardware Assisted Paging (HAP) detected
(XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB
(XEN) alt table ffff82d04042bf70 -> ffff82d04043b3f2
(XEN) Brought up 4 CPUs
(XEN) Scheduling granularity: cpu, 1 CPU per sched-resource
(XEN) Initializing Credit2 scheduler
(XEN) =C2=A0load_precision_shift: 18
(XEN) =C2=A0load_window_shift: 30
(XEN) =C2=A0underload_balance_tolerance: 0
(XEN) =C2=A0overload_balance_tolerance: -3
(XEN) =C2=A0runqueues arrangement: socket
(XEN) =C2=A0cap enforcement granularity: 10ms
(XEN) load tracking window length 1073741824 ns
(XEN) Adding cpu 0 to runqueue 0
(XEN) =C2=A0First cpu on runqueue, activating
(XEN) Adding cpu 1 to runqueue 0
(XEN) Adding cpu 2 to runqueue 1
(XEN) =C2=A0First cpu on runqueue, activating
(XEN) Adding cpu 3 to runqueue 1
(XEN) mcheck_poll: Machine check polling timer started.
(XEN) NX (Execute Disable) protection active
(XEN) d0 has maximum 744 PIRQs
(XEN) *** Building a PV Dom0 ***
(XEN) =C2=A0Xen =C2=A0kernel: 64-bit, lsb
(XEN) =C2=A0Dom0 kernel: 64-bit, PAE, lsb, paddr 0x200000 -> 0x3c00000
(XEN) PHYSICAL MEMORY ARRANGEMENT:
(XEN) =C2=A0Dom0 alloc.: =C2=A0 0000000a58000000->0000000a5c000000 (1022144=
 pages to be allocated)
(XEN) =C2=A0Init. ramdisk: 0000000a7d8c0000->0000000a7ffff5b7
(XEN) VIRTUAL MEMORY ARRANGEMENT:
(XEN) =C2=A0Loaded kernel: ffffffff80200000->ffffffff83c00000
(XEN) =C2=A0Phys-Mach map: 0000008000000000->0000008000800000
(XEN) =C2=A0Start info: =C2=A0 =C2=A0ffffffff83c00000->ffffffff83c004b8
(XEN) =C2=A0Page tables: =C2=A0 ffffffff83c01000->ffffffff83c24000
(XEN) =C2=A0Boot stack: =C2=A0 =C2=A0ffffffff83c24000->ffffffff83c25000
(XEN) =C2=A0TOTAL: =C2=A0 =C2=A0 =C2=A0 =C2=A0 ffffffff80000000->ffffffff84=
000000
(XEN) =C2=A0ENTRY ADDRESS: ffffffff82b0de00
(XEN) Dom0 has maximum 4 VCPUs
(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) Scrubbing Free RAM in background
(XEN) Std. Loglevel: All
(XEN) Guest Loglevel: Nothing (Rate-limited: Errors and warnings)
(XEN) *** Serial input to DOM0 (type 'CTRL-a' three times to switch input)
(XEN) Freed 668kB init memory
(XEN) PCI add device 0000:00:00.0
(XEN) PCI add device 0000:00:02.0
(XEN) PCI add device 0000:00:04.0
(XEN) PCI add device 0000:00:14.0
(XEN) PCI add device 0000:00:14.2
(XEN) PCI add device 0000:00:1c.0
(XEN) PCI add device 0000:00:1c.6
(XEN) PCI add device 0000:00:1d.0
(XEN) PCI add device 0000:00:1f.0
(XEN) PCI add device 0000:00:1f.2
(XEN) PCI add device 0000:00:1f.3
(XEN) PCI add device 0000:00:1f.6
(XEN) PCI add device 0000:02:00.0
(XEN) PCI add device 0000:03:00.0
(XEN) PCI add device 0000:00:1f.1
(XEN) PCI remove device 0000:00:1f.1

########################################################################
# `cpufreq=3Ddom0-kernel dom0_vcpus_pin`

(XEN) Built-in command line: ept=3Dexec-sp spec-ctrl=3Dunpriv-mmio
=C2=A0Xen 4.17.5
(XEN) Xen version 4.17.5 (mockbuild@[unknown]) (gcc (GCC) 12.3.1 20230508 (=
Red Hat 12.3.1-1)) debug=3Dn Fri Aug 22 16:12:56 CEST 2025
(XEN) Latest ChangeSet:
(XEN) build-id: d2dd0684651dcc833d35869ad2259cb6f0ba1d19
(XEN) Bootloader: GRUB 2.13
(XEN) Command line: placeholder cpufreq=3Ddom0-kernel,verbose dom0_vcpus_pi=
n loglvl=3Dall dom0_mem=3Dmin:1024M dom0_mem=3Dmax:4096M ucode=3Dscan smt=
=3Doff gnttab_max_frames=3D2048 gnttab_max_maptrack_frames=3D4096 no-real-m=
ode edd=3Doff
(XEN) Xen image load base address: 0x79200000
(XEN) Video information:
(XEN) =C2=A0VGA is text mode 80x25, font 8x16
(XEN) Disc information:
(XEN) =C2=A0Found 0 MBR signatures
(XEN) =C2=A0Found 0 EDD information structures
(XEN) CPU Vendor: Intel, Family 6 (0x6), Model 142 (0x8e), Stepping 10 (raw=
 000806ea)
(XEN) Multiboot-e820 RAM map:
(XEN) =C2=A0[0000000000000000, 0000000000000fff] (reserved)
(XEN) =C2=A0[0000000000001000, 000000000009ffff] (usable)
(XEN) =C2=A0[00000000000a0000, 00000000000fffff] (reserved)
(XEN) =C2=A0[0000000000100000, 000000007aa06fff] (usable)
(XEN) =C2=A0[000000007aa07000, 000000007fffffff] (reserved)
(XEN) =C2=A0[00000000e0000000, 00000000efffffff] (reserved)
(XEN) =C2=A0[00000000fd000000, 00000000fe00ffff] (reserved)
(XEN) =C2=A0[00000000fed10000, 00000000fed19fff] (reserved)
(XEN) =C2=A0[00000000fed80000, 00000000fed84fff] (reserved)
(XEN) =C2=A0[00000000fed90000, 00000000fed91fff] (reserved)
(XEN) =C2=A0[0000000100000000, 0000000a7fffffff] (usable)
(XEN) ACPI: RSDP 000F6010, 0024 (r2 COREv4)
(XEN) ACPI: XSDT 7AA0F0E0, 0064 (r1 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: FACP 7AA13020, 0114 (r6 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: DSDT 7AA0F280, 3D98 (r2 COREv4 COREBOOT 20110725 INTL 20241212)
(XEN) ACPI: FACS 7AA0F240, 0040
(XEN) ACPI: SSDT 7AA13140, 08EA (r2 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: MCFG 7AA13A30, 003C (r1 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: LPIT 7AA13A70, 0094 (r0 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: APIC 7AA13B10, 0072 (r3 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: SPCR 7AA13B90, 0058 (r4 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: DMAR 7AA13BF0, 0088 (r1 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: HPET 7AA13C80, 0038 (r1 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) System RAM: 40873MB (41854616kB)
(XEN) No NUMA configuration found
(XEN) Faking a node at 0000000000000000-0000000a80000000
(XEN) Domain heap initialised
(XEN) SMBIOS 3.0 present.
(XEN) Using APIC driver default
(XEN) ACPI: PM-Timer IO Port: 0x1808 (24 bits)
(XEN) ACPI: v5 SLEEP INFO: control[0:0], status[0:0]
(XEN) ACPI: SLEEP INFO: pm1x_cnt[1:1804,1:0], pm1x_evt[1:1800,1:0]
(XEN) ACPI: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 wakeup_vec[7aa0f24c],=
 vec_size[20]
(XEN) ACPI: Local APIC address 0xfee00000
(XEN) ACPI: IOAPIC (id[0x00] address[0xfec00000] gsi_base[0])
(XEN) IOAPIC[0]: apic_id 0, version 32, address 0xfec00000, GSI 0-119
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 high edge)
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
(XEN) ACPI: IRQ0 used by override.
(XEN) ACPI: IRQ2 used by override.
(XEN) ACPI: IRQ9 used by override.
(XEN) ACPI: HPET id: 0x8086a701 base: 0xfed00000
(XEN) PCI: MCFG configuration 0: base e0000000 segment 0000 buses 00 - ff
(XEN) PCI: MCFG area at e0000000 reserved in E820
(XEN) PCI: Using MCFG for segment 0000 bus 00-ff
(XEN) Using ACPI (MADT) for SMP configuration information
(XEN) SMP: Allowing 4 CPUs (0 hotplug CPUs)
(XEN) IRQ limits: 120 GSI, 840 MSI/MSI-X
(XEN) Switched to APIC driver x2apic_mixed
(XEN) BSP microcode revision: 0x000000f6
(XEN) FIRMWARE BUG: CPU 06-8e-0a, ucode 0x000000f6: RTM_ALWAYS_ABORT vs RTM=
 mismatch
(XEN) CPU0: TSC: ratio: 150 / 2
(XEN) CPU0: bus: 100 MHz base: 1800 MHz max: 3400 MHz
(XEN) CPU0: 400 ... 1800 MHz
(XEN) xstate: size: 0x440 and states: 0x1f
(XEN) CPU0: Intel machine check reporting enabled
(XEN) Speculative mitigation facilities:
(XEN) =C2=A0 Hardware hints: RSBA RFDS_NO
(XEN) =C2=A0 Hardware features: IBPB IBRS STIBP SSBD L1D_FLUSH MD_CLEAR SRB=
DS_CTRL GDS_CTRL
(XEN) =C2=A0 Compiled-in support: INDIRECT_THUNK RETURN_THUNK HARDEN_ARRAY =
HARDEN_BRANCH HARDEN_GUEST_ACCESS HARDEN_LOCK
(XEN) =C2=A0 Xen settings: BTI-Thunk: JMP, SPEC_CTRL: IBRS+ STIBP+ SSBD-, O=
ther: SRB_LOCK+ IBPB-ctxt L1D_FLUSH VERW BRANCH_HARDEN
(XEN) =C2=A0 L1TF: believed vulnerable, maxphysaddr L1D 46, CPUID 39, Safe =
address 8000000000
(XEN) =C2=A0 Support for HVM VMs: MSR_SPEC_CTRL MSR_VIRT_SPEC_CTRL RSB EAGE=
R_FPU
(XEN) =C2=A0 Support for PV VMs: MSR_SPEC_CTRL EAGER_FPU VERW
(XEN) =C2=A0 XPTI (64-bit PV only): Dom0 enabled, DomU enabled (with PCID)
(XEN) =C2=A0 PV L1TF shadowing: Dom0 disabled, DomU enabled
(XEN) Using scheduler: SMP Credit Scheduler rev2 (credit2)
(XEN) Initializing Credit2 scheduler
(XEN) =C2=A0load_precision_shift: 18
(XEN) =C2=A0load_window_shift: 30
(XEN) =C2=A0underload_balance_tolerance: 0
(XEN) =C2=A0overload_balance_tolerance: -3
(XEN) =C2=A0runqueues arrangement: socket
(XEN) =C2=A0cap enforcement granularity: 10ms
(XEN) load tracking window length 1073741824 ns
(XEN) Disabling HPET for being unreliable
(XEN) Platform timer is 3.580MHz ACPI PM Timer
(XEN) Detected 1800.002 MHz processor.
(XEN) Freed 1024kB unused BSS memory
(XEN) alt table ffff82d04042bf70 -> ffff82d04043b3f2
(XEN) cpu0: spurious 8259A interrupt: IRQ7
(XEN) Intel VT-d iommu 0 supported page sizes: 4kB, 2MB, 1GB
(XEN) Intel VT-d iommu 1 supported page sizes: 4kB, 2MB, 1GB
(XEN) Intel VT-d Snoop Control not enabled.
(XEN) Intel VT-d Dom0 DMA Passthrough not enabled.
(XEN) Intel VT-d Queued Invalidation enabled.
(XEN) Intel VT-d Interrupt Remapping enabled.
(XEN) Intel VT-d Posted Interrupt not enabled.
(XEN) Intel VT-d Shared EPT tables enabled.
(XEN) I/O virtualisation enabled
(XEN) =C2=A0- Dom0 mode: Relaxed
(XEN) Interrupt remapping enabled
(XEN) nr_sockets: 1
(XEN) Enabled directed EOI with ioapic_ack_old on!
(XEN) Enabling APIC mode. =C2=A0Using 1 I/O APICs
(XEN) ENABLING IO-APIC IRQs
(XEN) =C2=A0-> Using old ACK method
(XEN) ..TIMER: vector=3D0xF0 apic1=3D0 pin1=3D2 apic2=3D0 pin2=3D0
(XEN) TSC deadline timer enabled
(XEN) Allocated console ring of 32 KiB.
(XEN) mwait-idle: MWAIT substates: 0x11142120
(XEN) mwait-idle: v0.4.1 model 0x8e
(XEN) mwait-idle: lapic_timer_reliable_states 0xffffffff
(XEN) VMX: Supported advanced features:
(XEN) =C2=A0- APIC MMIO access virtualisation
(XEN) =C2=A0- APIC TPR shadow
(XEN) =C2=A0- Extended Page Tables (EPT)
(XEN) =C2=A0- Virtual-Processor Identifiers (VPID)
(XEN) =C2=A0- Virtual NMI
(XEN) =C2=A0- MSR direct-access bitmap
(XEN) =C2=A0- Unrestricted Guest
(XEN) =C2=A0- VM Functions
(XEN) =C2=A0- Virtualisation Exceptions
(XEN) =C2=A0- Page Modification Logging
(XEN) HVM: ASIDs enabled.
(XEN) HVM: VMX enabled
(XEN) HVM: Hardware Assisted Paging (HAP) detected
(XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB
(XEN) alt table ffff82d04042bf70 -> ffff82d04043b3f2
(XEN) Brought up 4 CPUs
(XEN) Scheduling granularity: cpu, 1 CPU per sched-resource
(XEN) Initializing Credit2 scheduler
(XEN) =C2=A0load_precision_shift: 18
(XEN) =C2=A0load_window_shift: 30
(XEN) =C2=A0underload_balance_tolerance: 0
(XEN) =C2=A0overload_balance_tolerance: -3
(XEN) =C2=A0runqueues arrangement: socket
(XEN) =C2=A0cap enforcement granularity: 10ms
(XEN) load tracking window length 1073741824 ns
(XEN) Adding cpu 0 to runqueue 0
(XEN) =C2=A0First cpu on runqueue, activating
(XEN) Adding cpu 1 to runqueue 0
(XEN) Adding cpu 2 to runqueue 1
(XEN) =C2=A0First cpu on runqueue, activating
(XEN) Adding cpu 3 to runqueue 1
(XEN) mcheck_poll: Machine check polling timer started.
(XEN) NX (Execute Disable) protection active
(XEN) d0 has maximum 744 PIRQs
(XEN) *** Building a PV Dom0 ***
(XEN) =C2=A0Xen =C2=A0kernel: 64-bit, lsb
(XEN) =C2=A0Dom0 kernel: 64-bit, PAE, lsb, paddr 0x200000 -> 0x3c00000
(XEN) PHYSICAL MEMORY ARRANGEMENT:
(XEN) =C2=A0Dom0 alloc.: =C2=A0 0000000a58000000->0000000a5c000000 (1022144=
 pages to be allocated)
(XEN) =C2=A0Init. ramdisk: 0000000a7d8c0000->0000000a7ffff5b7
(XEN) VIRTUAL MEMORY ARRANGEMENT:
(XEN) =C2=A0Loaded kernel: ffffffff80200000->ffffffff83c00000
(XEN) =C2=A0Phys-Mach map: 0000008000000000->0000008000800000
(XEN) =C2=A0Start info: =C2=A0 =C2=A0ffffffff83c00000->ffffffff83c004b8
(XEN) =C2=A0Page tables: =C2=A0 ffffffff83c01000->ffffffff83c24000
(XEN) =C2=A0Boot stack: =C2=A0 =C2=A0ffffffff83c24000->ffffffff83c25000
(XEN) =C2=A0TOTAL: =C2=A0 =C2=A0 =C2=A0 =C2=A0 ffffffff80000000->ffffffff84=
000000
(XEN) =C2=A0ENTRY ADDRESS: ffffffff82b0de00
(XEN) Dom0 has maximum 4 VCPUs
(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) Scrubbing Free RAM in background
(XEN) Std. Loglevel: All
(XEN) Guest Loglevel: Nothing (Rate-limited: Errors and warnings)
(XEN) *** Serial input to DOM0 (type 'CTRL-a' three times to switch input)
(XEN) Freed 668kB init memory
(XEN) PCI add device 0000:00:00.0
(XEN) PCI add device 0000:00:02.0
(XEN) PCI add device 0000:00:04.0
(XEN) PCI add device 0000:00:14.0
(XEN) PCI add device 0000:00:14.2
(XEN) PCI add device 0000:00:1c.0
(XEN) PCI add device 0000:00:1c.6
(XEN) PCI add device 0000:00:1d.0
(XEN) PCI add device 0000:00:1f.0
(XEN) PCI add device 0000:00:1f.2
(XEN) PCI add device 0000:00:1f.3
(XEN) PCI add device 0000:00:1f.6
(XEN) PCI add device 0000:02:00.0
(XEN) PCI add device 0000:03:00.0
(XEN) PCI add device 0000:00:1f.1
(XEN) PCI remove device 0000:00:1f.1

########################################################################
# `cpufreq=3Dxen:hwp`

(XEN) Built-in command line: ept=3Dexec-sp spec-ctrl=3Dunpriv-mmio
=C2=A0Xen 4.17.5
(XEN) Xen version 4.17.5 (mockbuild@[unknown]) (gcc (GCC) 12.3.1 20230508 (=
Red Hat 12.3.1-1)) debug=3Dn Fri Aug 22 16:12:56 CEST 2025
(XEN) Latest ChangeSet:
(XEN) build-id: d2dd0684651dcc833d35869ad2259cb6f0ba1d19
(XEN) Bootloader: GRUB 2.13
(XEN) Command line: placeholder cpufreq=3Dxen:hwp,verbose loglvl=3Dall dom0=
_mem=3Dmin:1024M dom0_mem=3Dmax:4096M ucode=3Dscan smt=3Doff gnttab_max_fra=
mes=3D2048 gnttab_max_maptrack_frames=3D4096 no-real-mode edd=3Doff
(XEN) Xen image load base address: 0x79200000
(XEN) Video information:
(XEN) =C2=A0VGA is text mode 80x25, font 8x16
(XEN) Disc information:
(XEN) =C2=A0Found 0 MBR signatures
(XEN) =C2=A0Found 0 EDD information structures
(XEN) CPU Vendor: Intel, Family 6 (0x6), Model 142 (0x8e), Stepping 10 (raw=
 000806ea)
(XEN) Multiboot-e820 RAM map:
(XEN) =C2=A0[0000000000000000, 0000000000000fff] (reserved)
(XEN) =C2=A0[0000000000001000, 000000000009ffff] (usable)
(XEN) =C2=A0[00000000000a0000, 00000000000fffff] (reserved)
(XEN) =C2=A0[0000000000100000, 000000007aa06fff] (usable)
(XEN) =C2=A0[000000007aa07000, 000000007fffffff] (reserved)
(XEN) =C2=A0[00000000e0000000, 00000000efffffff] (reserved)
(XEN) =C2=A0[00000000fd000000, 00000000fe00ffff] (reserved)
(XEN) =C2=A0[00000000fed10000, 00000000fed19fff] (reserved)
(XEN) =C2=A0[00000000fed80000, 00000000fed84fff] (reserved)
(XEN) =C2=A0[00000000fed90000, 00000000fed91fff] (reserved)
(XEN) =C2=A0[0000000100000000, 0000000a7fffffff] (usable)
(XEN) ACPI: RSDP 000F6010, 0024 (r2 COREv4)
(XEN) ACPI: XSDT 7AA0F0E0, 0064 (r1 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: FACP 7AA13020, 0114 (r6 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: DSDT 7AA0F280, 3D98 (r2 COREv4 COREBOOT 20110725 INTL 20241212)
(XEN) ACPI: FACS 7AA0F240, 0040
(XEN) ACPI: SSDT 7AA13140, 08EA (r2 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: MCFG 7AA13A30, 003C (r1 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: LPIT 7AA13A70, 0094 (r0 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: APIC 7AA13B10, 0072 (r3 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: SPCR 7AA13B90, 0058 (r4 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: DMAR 7AA13BF0, 0088 (r1 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) ACPI: HPET 7AA13C80, 0038 (r1 COREv4 COREBOOT =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 CORE 20241212)
(XEN) System RAM: 40873MB (41854616kB)
(XEN) No NUMA configuration found
(XEN) Faking a node at 0000000000000000-0000000a80000000
(XEN) Domain heap initialised
(XEN) SMBIOS 3.0 present.
(XEN) Using APIC driver default
(XEN) ACPI: PM-Timer IO Port: 0x1808 (24 bits)
(XEN) ACPI: v5 SLEEP INFO: control[0:0], status[0:0]
(XEN) ACPI: SLEEP INFO: pm1x_cnt[1:1804,1:0], pm1x_evt[1:1800,1:0]
(XEN) ACPI: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 wakeup_vec[7aa0f24c],=
 vec_size[20]
(XEN) ACPI: Local APIC address 0xfee00000
(XEN) ACPI: IOAPIC (id[0x00] address[0xfec00000] gsi_base[0])
(XEN) IOAPIC[0]: apic_id 0, version 32, address 0xfec00000, GSI 0-119
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 high edge)
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
(XEN) ACPI: IRQ0 used by override.
(XEN) ACPI: IRQ2 used by override.
(XEN) ACPI: IRQ9 used by override.
(XEN) ACPI: HPET id: 0x8086a701 base: 0xfed00000
(XEN) PCI: MCFG configuration 0: base e0000000 segment 0000 buses 00 - ff
(XEN) PCI: MCFG area at e0000000 reserved in E820
(XEN) PCI: Using MCFG for segment 0000 bus 00-ff
(XEN) Using ACPI (MADT) for SMP configuration information
(XEN) SMP: Allowing 4 CPUs (0 hotplug CPUs)
(XEN) IRQ limits: 120 GSI, 840 MSI/MSI-X
(XEN) Switched to APIC driver x2apic_mixed
(XEN) BSP microcode revision: 0x000000f6
(XEN) FIRMWARE BUG: CPU 06-8e-0a, ucode 0x000000f6: RTM_ALWAYS_ABORT vs RTM=
 mismatch
(XEN) CPU0: TSC: ratio: 150 / 2
(XEN) CPU0: bus: 100 MHz base: 1800 MHz max: 3400 MHz
(XEN) CPU0: 400 ... 1800 MHz
(XEN) xstate: size: 0x440 and states: 0x1f
(XEN) CPU0: Intel machine check reporting enabled
(XEN) Speculative mitigation facilities:
(XEN) =C2=A0 Hardware hints: RSBA RFDS_NO
(XEN) =C2=A0 Hardware features: IBPB IBRS STIBP SSBD L1D_FLUSH MD_CLEAR SRB=
DS_CTRL GDS_CTRL
(XEN) =C2=A0 Compiled-in support: INDIRECT_THUNK RETURN_THUNK HARDEN_ARRAY =
HARDEN_BRANCH HARDEN_GUEST_ACCESS HARDEN_LOCK
(XEN) =C2=A0 Xen settings: BTI-Thunk: JMP, SPEC_CTRL: IBRS+ STIBP+ SSBD-, O=
ther: SRB_LOCK+ IBPB-ctxt L1D_FLUSH VERW BRANCH_HARDEN
(XEN) =C2=A0 L1TF: believed vulnerable, maxphysaddr L1D 46, CPUID 39, Safe =
address 8000000000
(XEN) =C2=A0 Support for HVM VMs: MSR_SPEC_CTRL MSR_VIRT_SPEC_CTRL RSB EAGE=
R_FPU
(XEN) =C2=A0 Support for PV VMs: MSR_SPEC_CTRL EAGER_FPU VERW
(XEN) =C2=A0 XPTI (64-bit PV only): Dom0 enabled, DomU enabled (with PCID)
(XEN) =C2=A0 PV L1TF shadowing: Dom0 disabled, DomU enabled
(XEN) Using scheduler: SMP Credit Scheduler rev2 (credit2)
(XEN) Initializing Credit2 scheduler
(XEN) =C2=A0load_precision_shift: 18
(XEN) =C2=A0load_window_shift: 30
(XEN) =C2=A0underload_balance_tolerance: 0
(XEN) =C2=A0overload_balance_tolerance: -3
(XEN) =C2=A0runqueues arrangement: socket
(XEN) =C2=A0cap enforcement granularity: 10ms
(XEN) load tracking window length 1073741824 ns
(XEN) Disabling HPET for being unreliable
(XEN) Platform timer is 3.580MHz ACPI PM Timer
(XEN) Detected 1799.993 MHz processor.
(XEN) Freed 1024kB unused BSS memory
(XEN) alt table ffff82d04042bf70 -> ffff82d04043b3f2
(XEN) cpu0: spurious 8259A interrupt: IRQ7
(XEN) Intel VT-d iommu 0 supported page sizes: 4kB, 2MB, 1GB
(XEN) Intel VT-d iommu 1 supported page sizes: 4kB, 2MB, 1GB
(XEN) Intel VT-d Snoop Control not enabled.
(XEN) Intel VT-d Dom0 DMA Passthrough not enabled.
(XEN) Intel VT-d Queued Invalidation enabled.
(XEN) Intel VT-d Interrupt Remapping enabled.
(XEN) Intel VT-d Posted Interrupt not enabled.
(XEN) Intel VT-d Shared EPT tables enabled.
(XEN) I/O virtualisation enabled
(XEN) =C2=A0- Dom0 mode: Relaxed
(XEN) Interrupt remapping enabled
(XEN) nr_sockets: 1
(XEN) Enabled directed EOI with ioapic_ack_old on!
(XEN) Enabling APIC mode. =C2=A0Using 1 I/O APICs
(XEN) ENABLING IO-APIC IRQs
(XEN) =C2=A0-> Using old ACK method
(XEN) ..TIMER: vector=3D0xF0 apic1=3D0 pin1=3D2 apic2=3D0 pin2=3D0
(XEN) TSC deadline timer enabled
(XEN) Allocated console ring of 32 KiB.
(XEN) HWP: 1 notify: 1 act-window: 1 energy-perf: 1 pkg-level: 0 peci: 0
(XEN) HWP: Hardware Duty Cycling (HDC) supported, enabled
(XEN) HWP: HW_FEEDBACK not supported
(XEN) Using HWP for cpufreq
(XEN) mwait-idle: MWAIT substates: 0x11142120
(XEN) mwait-idle: v0.4.1 model 0x8e
(XEN) mwait-idle: lapic_timer_reliable_states 0xffffffff
(XEN) VMX: Supported advanced features:
(XEN) =C2=A0- APIC MMIO access virtualisation
(XEN) =C2=A0- APIC TPR shadow
(XEN) =C2=A0- Extended Page Tables (EPT)
(XEN) =C2=A0- Virtual-Processor Identifiers (VPID)
(XEN) =C2=A0- Virtual NMI
(XEN) =C2=A0- MSR direct-access bitmap
(XEN) =C2=A0- Unrestricted Guest
(XEN) =C2=A0- VM Functions
(XEN) =C2=A0- Virtualisation Exceptions
(XEN) =C2=A0- Page Modification Logging
(XEN) HVM: ASIDs enabled.
(XEN) HVM: VMX enabled
(XEN) HVM: Hardware Assisted Paging (HAP) detected
(XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB
(XEN) alt table ffff82d04042bf70 -> ffff82d04043b3f2
(XEN) Brought up 4 CPUs
(XEN) Scheduling granularity: cpu, 1 CPU per sched-resource
(XEN) Initializing Credit2 scheduler
(XEN) =C2=A0load_precision_shift: 18
(XEN) =C2=A0load_window_shift: 30
(XEN) =C2=A0underload_balance_tolerance: 0
(XEN) =C2=A0overload_balance_tolerance: -3
(XEN) =C2=A0runqueues arrangement: socket
(XEN) =C2=A0cap enforcement granularity: 10ms
(XEN) load tracking window length 1073741824 ns
(XEN) Adding cpu 0 to runqueue 0
(XEN) =C2=A0First cpu on runqueue, activating
(XEN) Adding cpu 1 to runqueue 0
(XEN) Adding cpu 2 to runqueue 1
(XEN) =C2=A0First cpu on runqueue, activating
(XEN) Adding cpu 3 to runqueue 1
(XEN) mcheck_poll: Machine check polling timer started.
(XEN) NX (Execute Disable) protection active
(XEN) d0 has maximum 744 PIRQs
(XEN) *** Building a PV Dom0 ***
(XEN) =C2=A0Xen =C2=A0kernel: 64-bit, lsb
(XEN) =C2=A0Dom0 kernel: 64-bit, PAE, lsb, paddr 0x200000 -> 0x3c00000
(XEN) PHYSICAL MEMORY ARRANGEMENT:
(XEN) =C2=A0Dom0 alloc.: =C2=A0 0000000a58000000->0000000a5c000000 (1022144=
 pages to be allocated)
(XEN) =C2=A0Init. ramdisk: 0000000a7d8c0000->0000000a7ffff5b7
(XEN) VIRTUAL MEMORY ARRANGEMENT:
(XEN) =C2=A0Loaded kernel: ffffffff80200000->ffffffff83c00000
(XEN) =C2=A0Phys-Mach map: 0000008000000000->0000008000800000
(XEN) =C2=A0Start info: =C2=A0 =C2=A0ffffffff83c00000->ffffffff83c004b8
(XEN) =C2=A0Page tables: =C2=A0 ffffffff83c01000->ffffffff83c24000
(XEN) =C2=A0Boot stack: =C2=A0 =C2=A0ffffffff83c24000->ffffffff83c25000
(XEN) =C2=A0TOTAL: =C2=A0 =C2=A0 =C2=A0 =C2=A0 ffffffff80000000->ffffffff84=
000000
(XEN) =C2=A0ENTRY ADDRESS: ffffffff82b0de00
(XEN) Dom0 has maximum 4 VCPUs
(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) Scrubbing Free RAM in background
(XEN) Std. Loglevel: All
(XEN) Guest Loglevel: Nothing (Rate-limited: Errors and warnings)
(XEN) *** Serial input to DOM0 (type 'CTRL-a' three times to switch input)
(XEN) Freed 668kB init memory
(XEN) PCI add device 0000:00:00.0
(XEN) PCI add device 0000:00:02.0
(XEN) PCI add device 0000:00:04.0
(XEN) PCI add device 0000:00:14.0
(XEN) PCI add device 0000:00:14.2
(XEN) PCI add device 0000:00:1c.0
(XEN) PCI add device 0000:00:1c.6
(XEN) PCI add device 0000:00:1d.0
(XEN) PCI add device 0000:00:1f.0
(XEN) PCI add device 0000:00:1f.2
(XEN) PCI add device 0000:00:1f.3
(XEN) PCI add device 0000:00:1f.6
(XEN) PCI add device 0000:02:00.0
(XEN) PCI add device 0000:03:00.0
(XEN) PCI add device 0000:00:1f.1
(XEN) PCI remove device 0000:00:1f.1
```


From xen-devel-bounces@lists.xenproject.org Sat Dec 27 14:23:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Dec 2025 14:23:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193532.1512247 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZVC8-0007lI-2P; Sat, 27 Dec 2025 14:23:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193532.1512247; Sat, 27 Dec 2025 14:22:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZVC7-0007iX-K6; Sat, 27 Dec 2025 14:22:59 +0000
Received: by outflank-mailman (input) for mailman id 1193532;
 Sat, 27 Dec 2025 00:30:21 +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 <SRS0=4j1x=7B=gmail.com=21cnbao@srs-se1.protection.inumbo.net>)
 id 1vZICL-0000j8-C6
 for xen-devel@lists.xenproject.org; Sat, 27 Dec 2025 00:30:21 +0000
Received: from mail-qk1-x72b.google.com (mail-qk1-x72b.google.com
 [2607:f8b0:4864:20::72b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 38c1311a-e2bb-11f0-b15c-2bf370ae4941;
 Sat, 27 Dec 2025 01:30:19 +0100 (CET)
Received: by mail-qk1-x72b.google.com with SMTP id
 af79cd13be357-8b2ec756de0so794401785a.3
 for <xen-devel@lists.xenproject.org>; Fri, 26 Dec 2025 16:30:19 -0800 (PST)
Received: from barry-desktop.hub ([47.72.129.29])
 by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-34e772ac1acsm9981428a91.9.2025.12.26.14.53.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Dec 2025 14:53:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38c1311a-e2bb-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766795418; x=1767400218; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=/r7srQmiwZEhg1qAC5GzWj8afC3w1hmN+Jy3ezOc8f0=;
        b=iXDYOoXz6/KP7iKHkqxGxIz56GGhsqXPnadTM4wEwQ1FgI7qQ/87NxbVhe9LxuvivJ
         SkWCaUkay/aVDJdh+oaC9xhNp/00BtHTLKbQDwwhDpozjOom9fJFEkON6/L+Zvz6vxSX
         ailF84KVIHWhaQA2aNZ9hhhsNh1uz0rZQc0WBellX0mzR5aNmMi3KYFNKtps6rCpPfsR
         9heQXY16qp06g0VwApgFaTaKrr1kVWBbZI3nX+Had8A5rTNJW580PpGgXGOVUEToNyPa
         ZKgEy9//c2aLdkYJDyiMLg5QP2/gf3bSpSDVklxE4aI9kKpFnNSRexSZyshWJio5lGhi
         D2MQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766795418; x=1767400218;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/r7srQmiwZEhg1qAC5GzWj8afC3w1hmN+Jy3ezOc8f0=;
        b=aU/0UdMgUClcvmd2yvMmyWNIhYbkofjGb12/7HCc1w5C99GgJZOH/ffMddhC6a4NMv
         fMsTRZw2JkYa3d/CTXmT66iT98yg36HzX6ra/mROuI5+ArvATDFSTY2KDyUfigzyUXF8
         nskl86F0BfalM/uz4V8Qd9nlRzc9ej5RkiU6D73RN/zCES9jbaLhLb01Be02VbKoJUy7
         26DeJsMQ1KLhH813hktf7+2wl+j6FzPqE5SxSxYAjjITLuzYQB46yGBuGmfk8K4+m0jM
         xJ5v4gLX6SyM2xFEOmuSiVFMpb6vgviPoJBBOopT9XHH8GR6C90ygcVM3AR0pHaFolWV
         Tb1A==
X-Forwarded-Encrypted: i=1; AJvYcCUWN8x2xbhU32RaenDxWv6htg8OSz5ZqVRyj48DNLvXqOq3/dJnZO3tdyPQvUgu6h6U89I7XrIzQMo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxuNf5Pb32egnL9A3ggzLF6nbBCxfvCQgq2djIkPuWKD7W4a+EX
	Un/ce7Qhp3t+/6iLUq2ggjtyQEX33/ov3uvfBHLcwDiSn8rV/vBcl3JDSAdfBmg1
X-Gm-Gg: AY/fxX62iC+lwQZcIqyENBSvLcbmZwKbqTO9TAGzQFYCCXRFe6g23uOj4jwPUL1nBTE
	B0XAP9H4fD4E7/w7/j+xDEmqcPoBIM18yrGzv/MgG01HrJOl3k6mXox0TyQwfYtWs1JN5HTFiB7
	JjhSgDr2XGftRh0OpxgvdrA4hJ1bLVaTnWpcjTq99hbiIP7Y1kKqy//l+bhtyalyvjFOiCwBHYk
	eWGA4R84nuHCbu5pEuneFxY13GQQjSWLMNajWAYGryePo3dILGZThtYkJPe3iyw/GKqODkToR7Z
	WSpVmt26iNhN6xUb7SgyNsi8418CniaoKU44WdOzGBAAwX9a5cdgBXMUfPnlLEEzTZxgIJ4nCl4
	PXjAwVOFFRBh+22JQNjyYsvRw51xg+h9dqG/E8yty3k7mWpqipIIPGzS9hMM8iCtBDp/Q3V8AZO
	hJK91ORX5tFxV5
X-Google-Smtp-Source: AGHT+IGRk72ichKRcHInGwm03WbYMZHXhydzrv/dBjOlD3Ki0dbJk2IiVKSqfCl2HL9XczgL6zklJg==
X-Received: by 2002:a17:90a:e7c9:b0:32e:7340:a7f7 with SMTP id 98e67ed59e1d1-34e921131admr17034959a91.2.1766789597799;
        Fri, 26 Dec 2025 14:53:17 -0800 (PST)
From: Barry Song <21cnbao@gmail.com>
To: catalin.marinas@arm.com,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	will@kernel.org,
	iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Barry Song <baohua@kernel.org>,
	Leon Romanovsky <leon@kernel.org>,
	Ada Couprie Diaz <ada.coupriediaz@arm.com>,
	Ard Biesheuvel <ardb@kernel.org>,
	Marc Zyngier <maz@kernel.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Joerg Roedel <joro@8bytes.org>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Tangquan Zheng <zhengtangquan@oppo.com>,
	Huacai Zhou <zhouhuacai@oppo.com>
Subject: [PATCH v2 0/8] dma-mapping: arm64: support batched cache sync
Date: Sat, 27 Dec 2025 11:52:40 +1300
Message-ID: <20251226225254.46197-1-21cnbao@gmail.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Barry Song <baohua@kernel.org>

Many embedded ARM64 SoCs still lack hardware cache coherency support, which
causes DMA mapping operations to appear as hotspots in on-CPU flame graphs.

For an SG list with *nents* entries, the current dma_map/unmap_sg() and DMA
sync APIs perform cache maintenance one entry at a time. After each entry,
the implementation synchronously waits for the corresponding region’s
D-cache operations to complete. On architectures like arm64, efficiency can
be improved by issuing all entries’ operations first and then performing a
single batched wait for completion.

Tangquan's results show that batched synchronization can reduce
dma_map_sg() time by 64.61% and dma_unmap_sg() time by 66.60% on an MTK
phone platform (MediaTek Dimensity 9500). The tests were performed by
pinning the task to CPU7 and fixing the CPU frequency at 2.6 GHz,
running dma_map_sg() and dma_unmap_sg() on 10 MB buffers (10 MB / 4 KB
sg entries per buffer) for 200 iterations and then averaging the
results.

I also ran this patch set on an RK3588 Rock5B+ board and
observed that millions of DMA sync operations were batched.

v2:
 * Refine a large amount of arm64 asm code based on feedback from
   Robin, thanks!
 * Drop batch_add APIs and always use arch_sync_dma_for_* + flush,
   even for a single buffer, based on Leon’s suggestion, thanks!
 * Refine a large amount of code based on feedback from Leon, thanks!
 * Also add batch support for iommu_dma_sync_sg_for_{cpu,device}
v1 link:
 https://lore.kernel.org/lkml/20251219053658.84978-1-21cnbao@gmail.com/

v1, diff with RFC:
 * Drop a large number of #ifdef/#else/#endif blocks based on feedback
   from Catalin and Marek, thanks!
 * Also add batched iova link/unlink support, marked as RFC since I lack
   the required hardware. This was suggested by Marek, thanks!
RFC link:
 https://lore.kernel.org/lkml/20251029023115.22809-1-21cnbao@gmail.com/

Barry Song (8):
  arm64: Provide dcache_by_myline_op_nosync helper
  arm64: Provide dcache_clean_poc_nosync helper
  arm64: Provide dcache_inval_poc_nosync helper
  dma-mapping: Separate DMA sync issuing and completion waiting
  dma-mapping: Support batch mode for dma_direct_sync_sg_for_*
  dma-mapping: Support batch mode for dma_direct_{map,unmap}_sg
  dma-iommu: Support DMA sync batch mode for IOVA link and unlink
  dma-iommu: Support DMA sync batch mode for iommu_dma_sync_sg_for_{cpu,
    device}

 arch/arm64/include/asm/assembler.h  | 24 +++++++++---
 arch/arm64/include/asm/cache.h      |  6 +++
 arch/arm64/include/asm/cacheflush.h |  2 +
 arch/arm64/kernel/relocate_kernel.S |  3 +-
 arch/arm64/mm/cache.S               | 57 +++++++++++++++++++++++------
 arch/arm64/mm/dma-mapping.c         |  4 +-
 drivers/iommu/dma-iommu.c           | 35 ++++++++++++++----
 drivers/xen/swiotlb-xen.c           | 24 ++++++++----
 include/linux/dma-map-ops.h         |  6 +++
 kernel/dma/direct.c                 | 23 +++++++++---
 kernel/dma/direct.h                 | 21 ++++++++---
 kernel/dma/mapping.c                |  6 +--
 kernel/dma/swiotlb.c                |  4 +-
 13 files changed, 165 insertions(+), 50 deletions(-)

Cc: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Joerg Roedel <joro@8bytes.org>
Cc: Juergen Gross <jgross@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: Tangquan Zheng <zhengtangquan@oppo.com>
Cc: Huacai Zhou <zhouhuacai@oppo.com>
--
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat Dec 27 14:23:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Dec 2025 14:23:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193516.1512198 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZVC5-00072m-N6; Sat, 27 Dec 2025 14:22:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193516.1512198; Sat, 27 Dec 2025 14:22:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZVC5-00071v-J2; Sat, 27 Dec 2025 14:22:57 +0000
Received: by outflank-mailman (input) for mailman id 1193516;
 Fri, 26 Dec 2025 22:53:35 +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 <SRS0=z/ld=7A=gmail.com=21cnbao@srs-se1.protection.inumbo.net>)
 id 1vZGgh-0005LS-Ed
 for xen-devel@lists.xenproject.org; Fri, 26 Dec 2025 22:53:35 +0000
Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com
 [2607:f8b0:4864:20::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b4a835ac-e2ad-11f0-b15c-2bf370ae4941;
 Fri, 26 Dec 2025 23:53:34 +0100 (CET)
Received: by mail-pl1-x630.google.com with SMTP id
 d9443c01a7336-2a0eaf55d58so49804625ad.1
 for <xen-devel@lists.xenproject.org>; Fri, 26 Dec 2025 14:53:34 -0800 (PST)
Received: from barry-desktop.hub ([47.72.129.29])
 by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-34e772ac1acsm9981428a91.9.2025.12.26.14.53.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Dec 2025 14:53:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b4a835ac-e2ad-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766789613; x=1767394413; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ietD9HqJ7J3E+f0491dnZq0rlaTb/buis2UihkMu59I=;
        b=i+E7Eio6v+/1w81qhPQ1izZ67OWB0thOdDH8tGOAjtv/3g74RUFmUh5+16EGuVPYq+
         GDkOJS61rlmpGu6QYm6d7jNYwNtminXUQClteqJGvNlqJhzHjJwyU4BIKG9qHKb9R3Z2
         EeOluRM80IKjuZWrOZs2ukQgNK0Vh1yQFael+0nMhv6VElCD5Nzip4cssPoTakWydzTe
         DG0SCtDS5/A1ngtwiAcPUdVMECrcu/GEACSVeTd+9Pkyn4S4KTDrUxeoTJ8x7ZUWH2fO
         L3UE0tfQC+TVJ4+9sIiIiM93PjglcAbpxtEQtk5SNHROYnZcB4gBhKlY93aqXvvHgqU8
         xlSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766789613; x=1767394413;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ietD9HqJ7J3E+f0491dnZq0rlaTb/buis2UihkMu59I=;
        b=imkrCSLKUuMIg3AmbbAdO1yl89DpPWg/ezTWKeBLxy5V/npPFNckcPSSmueH2N7Qv6
         oKBcFSUZZDUNOvweyzRzr8EK9F905yeSh1n3Nv4KJl9Gf2Fpk5ZWUVRP3rhueZfxuGHh
         60jS1kaacx1F4tHIbKeSaHSHqorfDglHU9dSy+aMHmgo+Zw26ktIR/2iYvrYmFEss+96
         W5kGDK3iGHfK1uUOJ/jLuq8kHyQDfOCYe5CJnyEy2g50YDLfWAgND49O6fKDnmQptOm+
         2qYvVlWdQ1SkXczrgvaQN5xdZ2ERVBGFLLrGJXKpgufyPkVAeTa1fPEZBmSWU6DDP+ky
         ObFw==
X-Forwarded-Encrypted: i=1; AJvYcCUr2iCVuOT6iCVWkME3X6uP8a+AbTAVVR5bw2DS4tBXE5ZY75gsKtZ6WN58NSFgKniLUMOtDbZrh+8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzX5uisfBVZdsQdzkmeL29+rxmboIdZWcjZxjPCGMQUm3MeDref
	vsz8hnzY0iwvLK1SNmmWaXFcAAOEhty7nneobY3qUNCvy0HDYy3iCPUP
X-Gm-Gg: AY/fxX6Gu2v7WSHesOWAL3tW/oPt2EHFhvP8jMvvmiRLQO+ezKEGPO9FWVr79l2Na4t
	lVXN0LwTWU9oc4Y3kRds+ecQLkvRRyaOGk4zNHfeQhHpY1hpX6amDuwVyHWX3Gis/MsltfVmyNL
	cKD75oA3AK+g0wiJLwkghkE55HSXlCCeBlkgIyouE/TZ6mdef4s95Jm1gQWDydCCWouEO/X4Kxm
	75oUXeqw68q2YdVPlZkw6qICOGjII9iD/GLX8OzRFOLB88o9qU+KJp0pDRmgfjBrgIXy1kyydDL
	KkFodjNStTU/snOE6atpbdyW3sytuBNgPVo7OIOBMrsJ3HNLSCiLrw29KgW9/aNkKesaddPJoCp
	NhuUWuCBH3sNGI3HeBeZ1Wc7fJgg93j29U6q7ebNNEg9njxIG/CJ9VJV5Ujl4QYAlpyDO8UQ5MN
	wNCW5m8iS+v9X/
X-Google-Smtp-Source: AGHT+IE9oZQXckIJDcXvuEcMulX/ZaTRdgyK2lgHN5sr4Zh2/8KW3byPESPfAHlQDRzMXfnr9Ddibw==
X-Received: by 2002:a17:90b:2b46:b0:34a:be93:72ee with SMTP id 98e67ed59e1d1-34e90d6d322mr21171859a91.8.1766789612867;
        Fri, 26 Dec 2025 14:53:32 -0800 (PST)
From: Barry Song <21cnbao@gmail.com>
To: catalin.marinas@arm.com,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	will@kernel.org,
	iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Barry Song <baohua@kernel.org>,
	Leon Romanovsky <leon@kernel.org>,
	Ada Couprie Diaz <ada.coupriediaz@arm.com>,
	Ard Biesheuvel <ardb@kernel.org>,
	Marc Zyngier <maz@kernel.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Tangquan Zheng <zhengtangquan@oppo.com>
Subject: [PATCH v2 2/8] arm64: Provide dcache_clean_poc_nosync helper
Date: Sat, 27 Dec 2025 11:52:42 +1300
Message-ID: <20251226225254.46197-3-21cnbao@gmail.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20251226225254.46197-1-21cnbao@gmail.com>
References: <20251226225254.46197-1-21cnbao@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Barry Song <baohua@kernel.org>

dcache_clean_poc_nosync does not wait for the data cache clean to
complete. Later, we wait for completion of all scatter-gather entries
together.

Cc: Leon Romanovsky <leon@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Tangquan Zheng <zhengtangquan@oppo.com>
Signed-off-by: Barry Song <baohua@kernel.org>
---
 arch/arm64/include/asm/cacheflush.h |  1 +
 arch/arm64/mm/cache.S               | 15 +++++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/arch/arm64/include/asm/cacheflush.h b/arch/arm64/include/asm/cacheflush.h
index 28ab96e808ef..9b6d0a62cf3d 100644
--- a/arch/arm64/include/asm/cacheflush.h
+++ b/arch/arm64/include/asm/cacheflush.h
@@ -74,6 +74,7 @@ extern void icache_inval_pou(unsigned long start, unsigned long end);
 extern void dcache_clean_inval_poc(unsigned long start, unsigned long end);
 extern void dcache_inval_poc(unsigned long start, unsigned long end);
 extern void dcache_clean_poc(unsigned long start, unsigned long end);
+extern void dcache_clean_poc_nosync(unsigned long start, unsigned long end);
 extern void dcache_clean_pop(unsigned long start, unsigned long end);
 extern void dcache_clean_pou(unsigned long start, unsigned long end);
 extern long caches_clean_inval_user_pou(unsigned long start, unsigned long end);
diff --git a/arch/arm64/mm/cache.S b/arch/arm64/mm/cache.S
index 503567c864fd..4a7c7e03785d 100644
--- a/arch/arm64/mm/cache.S
+++ b/arch/arm64/mm/cache.S
@@ -178,6 +178,21 @@ SYM_FUNC_START(__pi_dcache_clean_poc)
 SYM_FUNC_END(__pi_dcache_clean_poc)
 SYM_FUNC_ALIAS(dcache_clean_poc, __pi_dcache_clean_poc)
 
+/*
+ *	dcache_clean_poc_nosync(start, end)
+ *
+ * 	Issue the instructions of D-cache lines for the interval [start, end).
+ * 	not necessarily cleaned to the PoC till an explicit dsb sy afterward.
+ *
+ *	- start   - virtual start address of region
+ *	- end     - virtual end address of region
+ */
+SYM_FUNC_START(__pi_dcache_clean_poc_nosync)
+	dcache_by_line_op_nosync cvac, x0, x1, x2, x3
+	ret
+SYM_FUNC_END(__pi_dcache_clean_poc_nosync)
+SYM_FUNC_ALIAS(dcache_clean_poc_nosync, __pi_dcache_clean_poc_nosync)
+
 /*
  *	dcache_clean_pop(start, end)
  *
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat Dec 27 14:23:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Dec 2025 14:23:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193526.1512230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZVC7-0007Si-7N; Sat, 27 Dec 2025 14:22:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193526.1512230; Sat, 27 Dec 2025 14:22:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZVC6-0007Rl-QA; Sat, 27 Dec 2025 14:22:58 +0000
Received: by outflank-mailman (input) for mailman id 1193526;
 Fri, 26 Dec 2025 22:54:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z/ld=7A=gmail.com=21cnbao@srs-se1.protection.inumbo.net>)
 id 1vZGhL-0005PO-LN
 for xen-devel@lists.xenproject.org; Fri, 26 Dec 2025 22:54:15 +0000
Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com
 [2607:f8b0:4864:20::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cbe7e2de-e2ad-11f0-9ccf-f158ae23cfc8;
 Fri, 26 Dec 2025 23:54:13 +0100 (CET)
Received: by mail-pl1-x631.google.com with SMTP id
 d9443c01a7336-2a0c20ee83dso95951645ad.2
 for <xen-devel@lists.xenproject.org>; Fri, 26 Dec 2025 14:54:13 -0800 (PST)
Received: from barry-desktop.hub ([47.72.129.29])
 by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-34e772ac1acsm9981428a91.9.2025.12.26.14.54.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Dec 2025 14:54:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cbe7e2de-e2ad-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766789652; x=1767394452; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9mp0y7L70LQWZn3MNrpl8AtI1agZhiyYjI11ja2HdtI=;
        b=iA9Z0ynNspOq4hSJCu4fV9+mYnLJtXYyW25dkUhEREUlxdQeFDubAKvcFB6pcDa2E3
         /EAXklbQWBf+MdkAyHuU5PbvSYeWjt9HWs8MEC8P/Oyh+qN/YFAKtYxevwZFdAstBre7
         NgvmY38+VuorWIQmppWX3GQjAUCTXoypzbUPt/hOU2C0XkUPrzZwgZUNy4R3aE/KL9s8
         xb8tfn9VekjPmtsK/e+ES+mLR4XJ+pacbAy8nv0yVH37O7SVbi3HDA8t9XRi6bGB3Kk+
         rjfkFVvJSi2zgq4w6HxIOqTzMby49TVSRWjcD8tOQhvSojiZjpxTFWGi/7Nu2wb+ynL7
         mPng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766789652; x=1767394452;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=9mp0y7L70LQWZn3MNrpl8AtI1agZhiyYjI11ja2HdtI=;
        b=P5ogKQGIHLxywtvHmQVO1q1kMLes/9h1IjUnQrjfTi9oHb7RWpe+D9V3mmN7kZa1yd
         ySFGowo2XcKDd5is5Br3No68PFIupoRkcPk5TqUw6O/Ua1dGcN8I/0CB2nfIDkxixOxO
         xgdsn9SOBsK9dCb3v3MijKFfUAahoOouJ9mnp5BL3ZF6Xg5hF119jGTrKQAjUJ1F5JcM
         7M2m6Oah7x+c9rSL8liVTgUwowFrTe9oggT/IaQJoV9N7Jvgq5TWgPoyrMXRhC5lY1py
         Qerm8eNeuDRa/i8LAMpqfV5QZ8/yolgBz+5cPnhFoETbWP9cOYS162bTMBj69iKZywfC
         XxOA==
X-Forwarded-Encrypted: i=1; AJvYcCXugTLxCNTCQHdWretT6O5e+xMC8tGq28s6z/vD7RifRRmNPhhPRN+e2hMDobPNOnObVrjgq1XVMS4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyh4b6Zuhbhe4MlDyyv7XCn9AoFuoRV7wdGIwObRCdLY2u9Iy4F
	irPmQdgqpWZrjIhr/lfahKQMNVmM3e+GdCUvdBg2Vr31f5APFPwk2Nq1
X-Gm-Gg: AY/fxX6iHU+qnMqSezYHR543BpwV4/g7h2SyT1fkdrlgfvWH5/pnK8C0u3itiY9VwO7
	uhPIi60XFz/SViMiHgLLs+tTHmiNoR7VMJrJG76/XpH+8D5v1ym9OGto6dgEbmg8jVQftlbnfQk
	nMFu66DN41DFO++unmB8AtC8nzq5eqo74DoBzdly37/GVQ9JmXZiXi3XuoqBlyz3SuPAootMKzK
	HmqudFhQLa7DLi4SOzAZPjeCmOUHa+o6BRzbxfYvRhOvse/Wpp8/ETULDhopwMTV4dUveQ3/ieo
	9eyPx1J/WrRQq1nFz/C5tTLtqp/dfLwIwipcrRIf7NvVABizg5kxMrY2FF5am+BeX2zZQHS5b8Q
	WzLeOeq/CqCXwx5YXNeQZpFp2Ff0eQXMcCckKHghFnXcP0fYOwxEBz0gUqZQXy4e08Z0ppnZA8D
	q6LJkkERrrcIOx
X-Google-Smtp-Source: AGHT+IH3Qyivahvz1Re89nhjkOGapFSbuTfRVGKZtZJZOQKn2pFT9vJfuh0AHXHFbf1hI+2p00nHuQ==
X-Received: by 2002:a17:902:f607:b0:2a1:4c31:335 with SMTP id d9443c01a7336-2a2f2717b88mr227808145ad.26.1766789652012;
        Fri, 26 Dec 2025 14:54:12 -0800 (PST)
From: Barry Song <21cnbao@gmail.com>
To: catalin.marinas@arm.com,
	m.szyprowski@samsung.com,
	robin.murphy@arm.com,
	will@kernel.org,
	iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Barry Song <baohua@kernel.org>,
	Leon Romanovsky <leon@kernel.org>,
	Ada Couprie Diaz <ada.coupriediaz@arm.com>,
	Ard Biesheuvel <ardb@kernel.org>,
	Marc Zyngier <maz@kernel.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Joerg Roedel <joro@8bytes.org>,
	Tangquan Zheng <zhengtangquan@oppo.com>
Subject: [PATCH RFC v2 7/8] dma-iommu: Support DMA sync batch mode for IOVA link and unlink
Date: Sat, 27 Dec 2025 11:52:47 +1300
Message-ID: <20251226225254.46197-8-21cnbao@gmail.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20251226225254.46197-1-21cnbao@gmail.com>
References: <20251226225254.46197-1-21cnbao@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Barry Song <baohua@kernel.org>

Apply batched DMA synchronization to __dma_iova_link() and
iommu_dma_iova_unlink_range_slow(). For multiple
sync_dma_for_device() and sync_dma_for_cpu() calls, we only
need to wait once for the completion of all sync operations,
rather than waiting for each one individually.

I do not have the hardware to test this, so it is marked as
RFC. I would greatly appreciate it if someone could test it.

Suggested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leon@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Joerg Roedel <joro@8bytes.org>
Cc: Tangquan Zheng <zhengtangquan@oppo.com>
Signed-off-by: Barry Song <baohua@kernel.org>
---
 drivers/iommu/dma-iommu.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index 6827763a3877..ffa940bdbbaf 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1849,10 +1849,8 @@ static int __dma_iova_link(struct device *dev, dma_addr_t addr,
 	bool coherent = dev_is_dma_coherent(dev);
 	int prot = dma_info_to_prot(dir, coherent, attrs);
 
-	if (!coherent && !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO))) {
+	if (!coherent && !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO)))
 		arch_sync_dma_for_device(phys, size, dir);
-		arch_sync_dma_flush();
-	}
 
 	return iommu_map_nosync(iommu_get_dma_domain(dev), addr, phys, size,
 			prot, GFP_ATOMIC);
@@ -1995,6 +1993,8 @@ int dma_iova_sync(struct device *dev, struct dma_iova_state *state,
 	dma_addr_t addr = state->addr + offset;
 	size_t iova_start_pad = iova_offset(iovad, addr);
 
+	if (!dev_is_dma_coherent(dev))
+		arch_sync_dma_flush();
 	return iommu_sync_map(domain, addr - iova_start_pad,
 		      iova_align(iovad, size + iova_start_pad));
 }
@@ -2008,6 +2008,8 @@ static void iommu_dma_iova_unlink_range_slow(struct device *dev,
 	struct iommu_dma_cookie *cookie = domain->iova_cookie;
 	struct iova_domain *iovad = &cookie->iovad;
 	size_t iova_start_pad = iova_offset(iovad, addr);
+	bool need_sync_dma = !dev_is_dma_coherent(dev) &&
+			!(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO));
 	dma_addr_t end = addr + size;
 
 	do {
@@ -2023,16 +2025,17 @@ static void iommu_dma_iova_unlink_range_slow(struct device *dev,
 			end - addr, iovad->granule - iova_start_pad);
 
 		if (!dev_is_dma_coherent(dev) &&
-		    !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO))) {
+		    !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO)))
 			arch_sync_dma_for_cpu(phys, len, dir);
-			arch_sync_dma_flush();
-		}
 
 		swiotlb_tbl_unmap_single(dev, phys, len, dir, attrs);
 
 		addr += len;
 		iova_start_pad = 0;
 	} while (addr < end);
+
+	if (need_sync_dma)
+		arch_sync_dma_flush();
 }
 
 static void __iommu_dma_iova_unlink(struct device *dev,
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat Dec 27 20:07:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Dec 2025 20:07:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193680.1512296 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZaZL-0003fB-0g; Sat, 27 Dec 2025 20:07:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193680.1512296; Sat, 27 Dec 2025 20:07:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZaZK-0003eg-Ts; Sat, 27 Dec 2025 20:07:18 +0000
Received: by outflank-mailman (input) for mailman id 1193680;
 Sat, 27 Dec 2025 20:07:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=yTPZ=7B=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1vZaZJ-0003eH-HT
 for xen-devel@lists.xenproject.org; Sat, 27 Dec 2025 20:07:17 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a1f29dbe-e35f-11f0-9ccf-f158ae23cfc8;
 Sat, 27 Dec 2025 21:07:14 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id D93F243922;
 Sat, 27 Dec 2025 20:07:11 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D8DB3C4CEF1;
 Sat, 27 Dec 2025 20:07:10 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a1f29dbe-e35f-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1766866031;
	bh=lH6Wqea3wfifSQZGhdMqsJ7bOl+AJwlkVM2iS90xz1k=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=S07xCoEAxobIYaBiV02L02bERdk0nmuGN+hFMXu5vrWuTP0EPXqj8aOiLirY/XSdI
	 hUxIfJKJxQwjEDf0cGJIE06esOvlyDzQZ6VVCU/XpJsQ+cPWzdco1dnfE+T0l6+FTy
	 Z2/1CSf3BiRqj8dt9aICAM5XJ05mm2CcfJWEP0XBNvwwasMfQqxa7wnz+aNmb4d5in
	 BrpW1mFFc8LnJZ2BxbHSkZt6MmcWRZfo9YGSkyb+kpl/KFt04NW0Tpiwp6VdFNnp6U
	 FdejPb3ayq/IL4kPtLQVDuEHA5EEs/rnzDON++8ec2joqb9vADZmaIG04lvTKhRmDr
	 059bfB7LX6s1A==
Date: Sat, 27 Dec 2025 22:07:06 +0200
From: Leon Romanovsky <leon@kernel.org>
To: Barry Song <21cnbao@gmail.com>
Cc: catalin.marinas@arm.com, m.szyprowski@samsung.com, robin.murphy@arm.com,
	will@kernel.org, iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org, Barry Song <baohua@kernel.org>,
	Ada Couprie Diaz <ada.coupriediaz@arm.com>,
	Ard Biesheuvel <ardb@kernel.org>, Marc Zyngier <maz@kernel.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Joerg Roedel <joro@8bytes.org>, Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Tangquan Zheng <zhengtangquan@oppo.com>
Subject: Re: [PATCH v2 4/8] dma-mapping: Separate DMA sync issuing and
 completion waiting
Message-ID: <20251227200706.GN11869@unreal>
References: <20251226225254.46197-1-21cnbao@gmail.com>
 <20251226225254.46197-5-21cnbao@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20251226225254.46197-5-21cnbao@gmail.com>

On Sat, Dec 27, 2025 at 11:52:44AM +1300, Barry Song wrote:
> From: Barry Song <baohua@kernel.org>
> 
> Currently, arch_sync_dma_for_cpu and arch_sync_dma_for_device
> always wait for the completion of each DMA buffer. That is,
> issuing the DMA sync and waiting for completion is done in a
> single API call.
> 
> For scatter-gather lists with multiple entries, this means
> issuing and waiting is repeated for each entry, which can hurt
> performance. Architectures like ARM64 may be able to issue all
> DMA sync operations for all entries first and then wait for
> completion together.
> 
> To address this, arch_sync_dma_for_* now issues DMA operations in
> batch, followed by a flush. On ARM64, the flush is implemented
> using a dsb instruction within arch_sync_dma_flush().
> 
> For now, add arch_sync_dma_flush() after each
> arch_sync_dma_for_*() call. arch_sync_dma_flush() is defined as a
> no-op on all architectures except arm64, so this patch does not
> change existing behavior. Subsequent patches will introduce true
> batching for SG DMA buffers.
> 
> Cc: Leon Romanovsky <leon@kernel.org>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> Cc: Robin Murphy <robin.murphy@arm.com>
> Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
> Cc: Ard Biesheuvel <ardb@kernel.org>
> Cc: Marc Zyngier <maz@kernel.org>
> Cc: Anshuman Khandual <anshuman.khandual@arm.com>
> Cc: Ryan Roberts <ryan.roberts@arm.com>
> Cc: Suren Baghdasaryan <surenb@google.com>
> Cc: Joerg Roedel <joro@8bytes.org>
> Cc: Juergen Gross <jgross@suse.com>
> Cc: Stefano Stabellini <sstabellini@kernel.org>
> Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> Cc: Tangquan Zheng <zhengtangquan@oppo.com>
> Signed-off-by: Barry Song <baohua@kernel.org>
> ---
>  arch/arm64/include/asm/cache.h |  6 ++++++
>  arch/arm64/mm/dma-mapping.c    |  4 ++--
>  drivers/iommu/dma-iommu.c      | 37 +++++++++++++++++++++++++---------
>  drivers/xen/swiotlb-xen.c      | 24 ++++++++++++++--------
>  include/linux/dma-map-ops.h    |  6 ++++++
>  kernel/dma/direct.c            |  8 ++++++--
>  kernel/dma/direct.h            |  9 +++++++--
>  kernel/dma/swiotlb.c           |  4 +++-
>  8 files changed, 73 insertions(+), 25 deletions(-)

<...>

> +#ifndef arch_sync_dma_flush
> +static inline void arch_sync_dma_flush(void)
> +{
> +}
> +#endif

Over the weekend I realized a useful advantage of the ARCH_HAVE_* config
options: they make it straightforward to inspect the entire DMA path simply
by looking at the .config.

Thanks,
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>


From xen-devel-bounces@lists.xenproject.org Sat Dec 27 20:09:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Dec 2025 20:09:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193690.1512305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZabf-0004Ay-Au; Sat, 27 Dec 2025 20:09:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193690.1512305; Sat, 27 Dec 2025 20:09:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZabf-0004Ar-8N; Sat, 27 Dec 2025 20:09:43 +0000
Received: by outflank-mailman (input) for mailman id 1193690;
 Sat, 27 Dec 2025 20:09:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=yTPZ=7B=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1vZabd-0004Ag-Pt
 for xen-devel@lists.xenproject.org; Sat, 27 Dec 2025 20:09:41 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f89ea0e0-e35f-11f0-9ccf-f158ae23cfc8;
 Sat, 27 Dec 2025 21:09:39 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id B71D743AB9;
 Sat, 27 Dec 2025 20:09:37 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A6A38C4CEF1;
 Sat, 27 Dec 2025 20:09:36 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f89ea0e0-e35f-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1766866177;
	bh=y+u6yKllr0W68e3y8Qfj41GWvPDO6M/CKO30+K0JRSk=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=UkotPNQvY3OS7Z6GK5eJREW5U1iKBosJXAf3OKZhq4w1e63KJ/6n6aLGdvhL0t9RI
	 qsawET5wu8X69005mh6s57Pu51m8COX9B90PGXro409saWdjcvqp/bYQzEVY5S5NG2
	 YIts3LU54RlZXyyGEde8YS5GTaAYv9wggXZREwV5m3akH9NKC8/HO8gZWCEiKuWSvd
	 vxDKsTSMCxwmQr8YlKHrU+GoWa5OP8vubgWVXShl/Qvt0n+FJVsO8VUBJuNf8n4FxZ
	 6khccCuOWwhueLLZ7+uDADNwuxl58ICHfO+AW4UZkA+oc+CY31hC1XeOqeTi+XkKA2
	 5iOODsc1HE7rQ==
Date: Sat, 27 Dec 2025 22:09:33 +0200
From: Leon Romanovsky <leon@kernel.org>
To: Barry Song <21cnbao@gmail.com>
Cc: catalin.marinas@arm.com, m.szyprowski@samsung.com, robin.murphy@arm.com,
	will@kernel.org, iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org, Barry Song <baohua@kernel.org>,
	Ada Couprie Diaz <ada.coupriediaz@arm.com>,
	Ard Biesheuvel <ardb@kernel.org>, Marc Zyngier <maz@kernel.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Tangquan Zheng <zhengtangquan@oppo.com>
Subject: Re: [PATCH v2 5/8] dma-mapping: Support batch mode for
 dma_direct_sync_sg_for_*
Message-ID: <20251227200933.GO11869@unreal>
References: <20251226225254.46197-1-21cnbao@gmail.com>
 <20251226225254.46197-6-21cnbao@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20251226225254.46197-6-21cnbao@gmail.com>

On Sat, Dec 27, 2025 at 11:52:45AM +1300, Barry Song wrote:
> From: Barry Song <baohua@kernel.org>
> 
> Instead of performing a flush per SG entry, issue all cache
> operations first and then flush once. This ultimately benefits
> __dma_sync_sg_for_cpu() and __dma_sync_sg_for_device().
> 
> Cc: Leon Romanovsky <leon@kernel.org>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> Cc: Robin Murphy <robin.murphy@arm.com>
> Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
> Cc: Ard Biesheuvel <ardb@kernel.org>
> Cc: Marc Zyngier <maz@kernel.org>
> Cc: Anshuman Khandual <anshuman.khandual@arm.com>
> Cc: Ryan Roberts <ryan.roberts@arm.com>
> Cc: Suren Baghdasaryan <surenb@google.com>
> Cc: Tangquan Zheng <zhengtangquan@oppo.com>
> Signed-off-by: Barry Song <baohua@kernel.org>
> ---
>  kernel/dma/direct.c | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)

<...>

> -		if (!dev_is_dma_coherent(dev)) {
> +		if (!dev_is_dma_coherent(dev))
>  			arch_sync_dma_for_device(paddr, sg->length,
>  					dir);
> -			arch_sync_dma_flush();
> -		}
>  	}
> +	if (!dev_is_dma_coherent(dev))
> +		arch_sync_dma_flush();

This patch should be squashed into the previous one. You introduced
arch_sync_dma_flush() there, and now you are placing it elsewhere.

Thanks


From xen-devel-bounces@lists.xenproject.org Sat Dec 27 20:14:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Dec 2025 20:14:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193701.1512316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZag3-0005kJ-Rq; Sat, 27 Dec 2025 20:14:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193701.1512316; Sat, 27 Dec 2025 20:14:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZag3-0005kC-Oc; Sat, 27 Dec 2025 20:14:15 +0000
Received: by outflank-mailman (input) for mailman id 1193701;
 Sat, 27 Dec 2025 20:14:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=yTPZ=7B=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1vZag1-0005k6-PL
 for xen-devel@lists.xenproject.org; Sat, 27 Dec 2025 20:14:13 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9b09d0e1-e360-11f0-9ccf-f158ae23cfc8;
 Sat, 27 Dec 2025 21:14:11 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id E7B164082A;
 Sat, 27 Dec 2025 20:14:09 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 32314C4CEF1;
 Sat, 27 Dec 2025 20:14:08 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9b09d0e1-e360-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1766866449;
	bh=5BvZzNPtiik1Rf2hGQJZuruUvtsWoa36oLJFsqbPeIg=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=j8mX/F/qNxveAViAw3M67+ZlSkxoNkRKoE+i7UiDr/K8/lElkqvuc9vkn65DJgg01
	 pF5Pb5lIKx8k8SBZHzueiJEkrfAz9wVBYC3qQhGt74fNQZUGCOWAUc01JwaEYXMdpM
	 FJit8Tv20CSZzdYdRg0UZB+Yo9Gdf3qhLW7C+ke6SKiJj1zsi7T5LNOYlCoMCpxGoE
	 n5D4Asm3R6CzLphE/Xh5kr1cHps3f5Rhemo2HeOJTBRXD1DzwfYcZIWAAXNYWEBlih
	 bSMq1kRI2kpZ5c18WLkXj+BEo8HgxpRnn/JvRkD8SEbP8nnzGwzQaYj+Higdc0Svrv
	 VyCS4ZKkgq3bA==
Date: Sat, 27 Dec 2025 22:14:06 +0200
From: Leon Romanovsky <leon@kernel.org>
To: Barry Song <21cnbao@gmail.com>
Cc: catalin.marinas@arm.com, m.szyprowski@samsung.com, robin.murphy@arm.com,
	will@kernel.org, iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org, Barry Song <baohua@kernel.org>,
	Ada Couprie Diaz <ada.coupriediaz@arm.com>,
	Ard Biesheuvel <ardb@kernel.org>, Marc Zyngier <maz@kernel.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Tangquan Zheng <zhengtangquan@oppo.com>
Subject: Re: [PATCH v2 6/8] dma-mapping: Support batch mode for
 dma_direct_{map,unmap}_sg
Message-ID: <20251227201406.GP11869@unreal>
References: <20251226225254.46197-1-21cnbao@gmail.com>
 <20251226225254.46197-7-21cnbao@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20251226225254.46197-7-21cnbao@gmail.com>

On Sat, Dec 27, 2025 at 11:52:46AM +1300, Barry Song wrote:
> From: Barry Song <baohua@kernel.org>
> 
> Leon suggested extending a flush argument to

Let's move this sentence out of the commit message and place it in the
changelog instead.

> dma_direct_unmap_phys(), dma_direct_map_phys(), and
> dma_direct_sync_single_for_cpu(). For single-buffer cases, this
> would use flush=true, while for SG cases flush=false would be
> used, followed by a single flush after all cache operations are
> issued in dma_direct_{map,unmap}_sg().
> 
> This ultimately benefits dma_map_sg() and dma_unmap_sg().
> 
> Cc: Leon Romanovsky <leon@kernel.org>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> Cc: Robin Murphy <robin.murphy@arm.com>
> Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
> Cc: Ard Biesheuvel <ardb@kernel.org>
> Cc: Marc Zyngier <maz@kernel.org>
> Cc: Anshuman Khandual <anshuman.khandual@arm.com>
> Cc: Ryan Roberts <ryan.roberts@arm.com>
> Cc: Suren Baghdasaryan <surenb@google.com>
> Cc: Tangquan Zheng <zhengtangquan@oppo.com>
> Signed-off-by: Barry Song <baohua@kernel.org>
> ---
>  kernel/dma/direct.c  | 17 +++++++++++++----
>  kernel/dma/direct.h  | 16 ++++++++++------
>  kernel/dma/mapping.c |  6 +++---
>  3 files changed, 26 insertions(+), 13 deletions(-)

Thanks,
Reviewed-by: Leon Romanovsky <leon@kernel.org>


From xen-devel-bounces@lists.xenproject.org Sat Dec 27 20:16:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Dec 2025 20:16:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193710.1512327 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZaiY-0006Jc-8q; Sat, 27 Dec 2025 20:16:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193710.1512327; Sat, 27 Dec 2025 20:16:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZaiY-0006JV-45; Sat, 27 Dec 2025 20:16:50 +0000
Received: by outflank-mailman (input) for mailman id 1193710;
 Sat, 27 Dec 2025 20:16:49 +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 <SRS0=yTPZ=7B=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1vZaiX-0006JP-NL
 for xen-devel@lists.xenproject.org; Sat, 27 Dec 2025 20:16:49 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f8753a5b-e360-11f0-b15c-2bf370ae4941;
 Sat, 27 Dec 2025 21:16:48 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 882B460010;
 Sat, 27 Dec 2025 20:16:46 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id CFEFAC4CEF1;
 Sat, 27 Dec 2025 20:16:45 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f8753a5b-e360-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1766866606;
	bh=YVbtQLZx9jfw9z6Q7qKoP3MRHyWD/+ZNiJGjIZfNTgg=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=uwKZl8KzwVtiip51+4heE0ashdbCeXp6U5OGLZVN5eA3XVOWJ7w0nu+JM1fdk1dvX
	 ZfbtAVStzxCNZU1JJKfXU2qcA4s2Zf/F+0PKbtzuf9B9+glwGNiVwxgC1bY3mVWDqt
	 x+OGDvSx4PZZI6McqMG+qakQtcWSE9+9tMu26q3QXTy1gMrTGcAo4CvA5PP9VpTn2Y
	 t+LQEj1YwktMsX15KqA9mAEHyv4WHQBDsuDqMqLw7BtRg6wMni6pYQYI3FZb8kWIWE
	 iFr0g/ZmzQ2XLCky+90/8NJrMcMB42KyHtG+QFBx2dI8aag00ktWTd4LyrTN8FnlYw
	 dWKdi+ikD9wGg==
Date: Sat, 27 Dec 2025 22:16:42 +0200
From: Leon Romanovsky <leon@kernel.org>
To: Barry Song <21cnbao@gmail.com>
Cc: catalin.marinas@arm.com, m.szyprowski@samsung.com, robin.murphy@arm.com,
	will@kernel.org, iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org, Barry Song <baohua@kernel.org>,
	Ada Couprie Diaz <ada.coupriediaz@arm.com>,
	Ard Biesheuvel <ardb@kernel.org>, Marc Zyngier <maz@kernel.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Joerg Roedel <joro@8bytes.org>,
	Tangquan Zheng <zhengtangquan@oppo.com>
Subject: Re: [PATCH RFC v2 8/8] dma-iommu: Support DMA sync batch mode for
 iommu_dma_sync_sg_for_{cpu, device}
Message-ID: <20251227201642.GQ11869@unreal>
References: <20251226225254.46197-1-21cnbao@gmail.com>
 <20251226225254.46197-9-21cnbao@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20251226225254.46197-9-21cnbao@gmail.com>

On Sat, Dec 27, 2025 at 11:52:48AM +1300, Barry Song wrote:
> From: Barry Song <baohua@kernel.org>
> 
> Apply batched DMA synchronization to iommu_dma_sync_sg_for_cpu() and
> iommu_dma_sync_sg_for_device(). For all buffers in an SG list, only
> a single flush operation is needed.
> 
> I do not have the hardware to test this, so the patch is marked as
> RFC. I would greatly appreciate any testing feedback.
> 
> Cc: Leon Romanovsky <leon@kernel.org>
> Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
> Cc: Ard Biesheuvel <ardb@kernel.org>
> Cc: Marc Zyngier <maz@kernel.org>
> Cc: Anshuman Khandual <anshuman.khandual@arm.com>
> Cc: Ryan Roberts <ryan.roberts@arm.com>
> Cc: Suren Baghdasaryan <surenb@google.com>
> Cc: Robin Murphy <robin.murphy@arm.com>
> Cc: Joerg Roedel <joro@8bytes.org>
> Cc: Tangquan Zheng <zhengtangquan@oppo.com>
> Signed-off-by: Barry Song <baohua@kernel.org>
> ---
>  drivers/iommu/dma-iommu.c | 15 +++++++--------
>  1 file changed, 7 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
> index ffa940bdbbaf..b68dbfcb7846 100644
> --- a/drivers/iommu/dma-iommu.c
> +++ b/drivers/iommu/dma-iommu.c
> @@ -1131,10 +1131,9 @@ void iommu_dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sgl,
>  			iommu_dma_sync_single_for_cpu(dev, sg_dma_address(sg),
>  						      sg->length, dir);
>  	} else if (!dev_is_dma_coherent(dev)) {
> -		for_each_sg(sgl, sg, nelems, i) {
> +		for_each_sg(sgl, sg, nelems, i)
>  			arch_sync_dma_for_cpu(sg_phys(sg), sg->length, dir);
> -			arch_sync_dma_flush();
> -		}
> +		arch_sync_dma_flush();

This and previous patches should be squashed into the one which
introduced arch_sync_dma_flush().

Thanks


From xen-devel-bounces@lists.xenproject.org Sat Dec 27 20:52:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Dec 2025 20:52:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193725.1512336 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZbGv-0003Tz-QL; Sat, 27 Dec 2025 20:52:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193725.1512336; Sat, 27 Dec 2025 20:52:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZbGv-0003Ts-Mb; Sat, 27 Dec 2025 20:52:21 +0000
Received: by outflank-mailman (input) for mailman id 1193725;
 Sat, 27 Dec 2025 20:52:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=4j1x=7B=gmail.com=21cnbao@srs-se1.protection.inumbo.net>)
 id 1vZbGu-0003Tm-LM
 for xen-devel@lists.xenproject.org; Sat, 27 Dec 2025 20:52:20 +0000
Received: from mail-qv1-xf2b.google.com (mail-qv1-xf2b.google.com
 [2607:f8b0:4864:20::f2b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ee59b419-e365-11f0-9ccf-f158ae23cfc8;
 Sat, 27 Dec 2025 21:52:18 +0100 (CET)
Received: by mail-qv1-xf2b.google.com with SMTP id
 6a1803df08f44-88a288811a4so91880106d6.3
 for <xen-devel@lists.xenproject.org>; Sat, 27 Dec 2025 12:52:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ee59b419-e365-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766868737; x=1767473537; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=COlE5Xveygh67jucjDOeVZnfTHNWpMeqgQJOQuwR0lI=;
        b=AS4fZxETxIfbfh6N0DDMwUF3A12SXf6QBp717dphgckyGWNyFgslEsfexuVAY+o7v9
         q3Hy/khm2+vRJyB7MpOCh1qu8RsgVyo5LAyoWJfVcqy0jFSdQy2F0sobH0eauWvOR39W
         E0kqvBEFc3gnv3h2aBaWdGa5VhJCanKNNHdQeByGEBhkAS9MDS79J2STYgSiu2sPdn3A
         m8WLFcxFlHNd6OYtfjX1XvrV6qtfp5iklcymk16piOy/7W9zZFM80bZ8dG4l2UC3UC7g
         uKiLn+T5dARDkZ0gDGJnCnt78tZmMvD1jSvH6Xdiebc4l3aAAy3qEuv0QZ52+MW+lXTr
         cbwg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766868737; x=1767473537;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=COlE5Xveygh67jucjDOeVZnfTHNWpMeqgQJOQuwR0lI=;
        b=M+kgkzulIxlRfPbrEqB4iGv5taEXwp/+bsXk1MyIoR34HYjXcZd9zsyHXsfmJiAlAl
         sNEEJVHyVvsC/5AMH1jqT/+DZlvDOWzwWN9sWOmpvHJIn48i9X/IY4mLSvZHg1zO+06G
         v42V5d7x+Jqjn+ZSuZxog3evVDL8WymNS+BjLhFw3N5quc4jmMiTa/bcQEyvo30epDHZ
         mMI1lrl6xdkyIz32HjLUU54/7UZOw//g20hdX+iYpBQJDGTpoSols0J97MAqip3AfCc0
         pPe1C0/I1SAQTjPXntE65XFY8j0TxX80S8zQrDa2fb7XeRE0ZabQ/bl2mhKBKBIporwS
         SL6g==
X-Forwarded-Encrypted: i=1; AJvYcCWGlOzjC8FU5P6q4hHix/bvPrnW/9O2cxxazs7myuTNkiFdeVvyfer4XDvj1busknmNObd0o0bHk6E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YziuhDqNDEoaZCLsmBGINJZHTk1HcEvZjWQalSHYQvKibP580i/
	/5lvEpnVYifLS6NjGNu4ezEU6cuFXQ16sCbDCWH6aonCrdPJzvckQ+irpLMGYdcaCV6miDCdUYx
	yliuD6o2r2GrlQX1322tk3Nt6nv3q1Bg=
X-Gm-Gg: AY/fxX6wZBmv2PtyxWhxOxc2IT1qNzyx5NFd/B4PuijmuXU+6yJwJ+d7TfPXINFvHO5
	Vggc5Mdx2uFXJtmu4moBFSpWqZ4GnJgWD1HhQGEf71xINvjrwVk1gT/4v8k8Nq7CCiDRJGit3GR
	kSWgUG6/Yph1UGCIxzqAngvL/6zlLrobOEtnKmsNxxmGIhP26KYoEZMiu+gY8OQ3VOm7Ej/7Cag
	NSNXRfyAVlXcYt2DppC2fUIYfsHrAgM+l6OsWjGiiwvCmqPpcOKFsJJzaADzNtjHyWcww==
X-Google-Smtp-Source: AGHT+IFWlfYgq6fvhPnudIMznElnMp57SUfWPdf1Abz4VW1qQ4SuUkwafpWDnswUCDqMkbSt41dCGCuIrkeU0fQZTZ4=
X-Received: by 2002:a05:6214:3a8a:b0:88f:cd09:9431 with SMTP id
 6a1803df08f44-88fcd0995d8mr271616716d6.41.1766868737130; Sat, 27 Dec 2025
 12:52:17 -0800 (PST)
MIME-Version: 1.0
References: <20251226225254.46197-1-21cnbao@gmail.com> <20251226225254.46197-6-21cnbao@gmail.com>
 <20251227200933.GO11869@unreal>
In-Reply-To: <20251227200933.GO11869@unreal>
From: Barry Song <21cnbao@gmail.com>
Date: Sun, 28 Dec 2025 09:52:05 +1300
X-Gm-Features: AQt7F2q5TMmxm7Qs_CjJBcT-WAtF0589kk4jJXu2nxeg2qZ04GIbkJZVDuQBxso
Message-ID: <CAGsJ_4yA83-K7PXiEtyidzF_j6qqKkt92z485KBS9+zGe_rjnw@mail.gmail.com>
Subject: Re: [PATCH v2 5/8] dma-mapping: Support batch mode for dma_direct_sync_sg_for_*
To: Leon Romanovsky <leon@kernel.org>
Cc: catalin.marinas@arm.com, m.szyprowski@samsung.com, robin.murphy@arm.com, 
	will@kernel.org, iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org, 
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, 
	Ada Couprie Diaz <ada.coupriediaz@arm.com>, Ard Biesheuvel <ardb@kernel.org>, Marc Zyngier <maz@kernel.org>, 
	Anshuman Khandual <anshuman.khandual@arm.com>, Ryan Roberts <ryan.roberts@arm.com>, 
	Suren Baghdasaryan <surenb@google.com>, Tangquan Zheng <zhengtangquan@oppo.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sun, Dec 28, 2025 at 9:09=E2=80=AFAM Leon Romanovsky <leon@kernel.org> w=
rote:
>
> On Sat, Dec 27, 2025 at 11:52:45AM +1300, Barry Song wrote:
> > From: Barry Song <baohua@kernel.org>
> >
> > Instead of performing a flush per SG entry, issue all cache
> > operations first and then flush once. This ultimately benefits
> > __dma_sync_sg_for_cpu() and __dma_sync_sg_for_device().
> >
> > Cc: Leon Romanovsky <leon@kernel.org>
> > Cc: Catalin Marinas <catalin.marinas@arm.com>
> > Cc: Will Deacon <will@kernel.org>
> > Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> > Cc: Robin Murphy <robin.murphy@arm.com>
> > Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
> > Cc: Ard Biesheuvel <ardb@kernel.org>
> > Cc: Marc Zyngier <maz@kernel.org>
> > Cc: Anshuman Khandual <anshuman.khandual@arm.com>
> > Cc: Ryan Roberts <ryan.roberts@arm.com>
> > Cc: Suren Baghdasaryan <surenb@google.com>
> > Cc: Tangquan Zheng <zhengtangquan@oppo.com>
> > Signed-off-by: Barry Song <baohua@kernel.org>
> > ---
> >  kernel/dma/direct.c | 14 +++++++-------
> >  1 file changed, 7 insertions(+), 7 deletions(-)
>
> <...>
>
> > -             if (!dev_is_dma_coherent(dev)) {
> > +             if (!dev_is_dma_coherent(dev))
> >                       arch_sync_dma_for_device(paddr, sg->length,
> >                                       dir);
> > -                     arch_sync_dma_flush();
> > -             }
> >       }
> > +     if (!dev_is_dma_coherent(dev))
> > +             arch_sync_dma_flush();
>
> This patch should be squashed into the previous one. You introduced
> arch_sync_dma_flush() there, and now you are placing it elsewhere.

Hi Leon,

The previous patch replaces all arch_sync_dma_for_* calls with
arch_sync_dma_for_* plus arch_sync_dma_flush(), without any
functional change. The subsequent patches then implement the
actual batching. I feel this is a better approach for reviewing
each change independently. Otherwise, the previous patch would
be too large.

Thanks
Barry


From xen-devel-bounces@lists.xenproject.org Sat Dec 27 20:59:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Dec 2025 20:59:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193735.1512346 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZbNt-0004Cu-Gc; Sat, 27 Dec 2025 20:59:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193735.1512346; Sat, 27 Dec 2025 20:59:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZbNt-0004Cn-Cb; Sat, 27 Dec 2025 20:59:33 +0000
Received: by outflank-mailman (input) for mailman id 1193735;
 Sat, 27 Dec 2025 20:59:32 +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 <SRS0=4j1x=7B=gmail.com=21cnbao@srs-se1.protection.inumbo.net>)
 id 1vZbNs-0004Ch-PD
 for xen-devel@lists.xenproject.org; Sat, 27 Dec 2025 20:59:32 +0000
Received: from mail-qt1-x82a.google.com (mail-qt1-x82a.google.com
 [2607:f8b0:4864:20::82a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f0625dc5-e366-11f0-b15c-2bf370ae4941;
 Sat, 27 Dec 2025 21:59:31 +0100 (CET)
Received: by mail-qt1-x82a.google.com with SMTP id
 d75a77b69052e-4eda057f3c0so90591531cf.2
 for <xen-devel@lists.xenproject.org>; Sat, 27 Dec 2025 12:59:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f0625dc5-e366-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766869170; x=1767473970; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LYfo4DcmoDPGkLlBpUwQdj2xZvXjZDeunEqpnCANZoQ=;
        b=CZcj86lDLEoBLoRSNyKO8lJXD3HEMMTLcFGbk/lJHR1xvTKk/MtDGPFbPP1+25WeWp
         ajTGhGqbV9k5lUjuiYZevAs6sfRfuHVlv5Eqv7vYivAkEeeABNTUPeFE1wMpIHFgH0sg
         GDoJFdac2QpElgA8aCw6ZCn+VZ/xsTiwAGZV+Y+AAMnLfwuwjntd5PUcP12vkXymwQ8q
         dc5kw4dAw2Ev023UPfORS9x0+XUsh0J0n1Ka3v6J9IsJkF4CnUxrw79wBSfItfysaax9
         0yvbTuX0VYp/1r/zv1OaqMOaGjPTj9HyypLlMEFlQXvkrnOAFFBSMmKeRBKRs49rAQel
         hx5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766869170; x=1767473970;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=LYfo4DcmoDPGkLlBpUwQdj2xZvXjZDeunEqpnCANZoQ=;
        b=KNAshGufcVd350gbpFaUblVdmRqrOJv6qxNL+zoPlb+HxkTQnCTyTjgwWjVDsVJ/VR
         ++ZNxSN+YvMOsUnfIEWr+li1trWi70HssveljG6165NPOdfdeZuva+XzHREy72hkUVRY
         LFCaOBns1+Vn/Iryb3JCaa1/AHd3QBavkPsg15tFQ2ppUH9RoFl0HvhDi03REu6ekrfy
         bwR/ool7jMZueV04gLTWXT+oXjtTuFYq5NIohpquYG+N27ctIXjV1oTLT9UxrZk5qTz1
         spUIZovDRVDlXEVSMsr7lirAVyIP1Apn2gev7PrKEPPq5hTbZeR5Fd6V2NGpmIJyknL1
         qidQ==
X-Forwarded-Encrypted: i=1; AJvYcCVstfMZKqbGQmpw6ZBcsrMllfMjvBFt0xI+aSRk4gtNCDWNxoCOEBMKZRWUrNyrX1Be6o8TKBjAjAE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YykOYA1th7cA2PpyHMk8h3udrEEENsP4hfNCo/HFW8XTIdWRPpR
	gA40BXyeHE1mhNGEzDxA4RFts6Z1dAMNYbuqFQ66ljwG7KTjURhryuwtN5c+Gkg5Buo+SX86yks
	7ZD9gUVdbkLtFRWNWVEuaBKZnSDmrxzQ=
X-Gm-Gg: AY/fxX4vum6k+6v6eGhswdLvtgsrOM0shzuXAnqv+Ug33DQAkmlPO0Z0Ss2LwaZVyLq
	BWeVGQI44mUO251ktqsLksvqlylA86oLdcC91uqPp1cJPx0Wgl9WhyIQXHswC7gLdnQU8JcDmye
	PdF+bgSO0RtvwxkSEBp4d7IKr5Z9YJwTQRcSd4w/6dnyT/GFgdY29uz01XzA4eXZqX/OJgQRUiv
	uR1Z8PrvWF83uydC4/f4atFqTO4yEKZpaI+9J8L5C2ESYXC5bUl5bYjhw9GWKyaRmRK2Q==
X-Google-Smtp-Source: AGHT+IHlaEEZSdrmBhcD5E1NDs69ZAi4VCsoBGkUPdmFJ+vi7IWuMZm/ebLyp+IkRb6IMCkz4IBpkkjebsgKR6Oxf8Q=
X-Received: by 2002:ac8:7583:0:b0:4f4:c0b3:f50d with SMTP id
 d75a77b69052e-4f4c1cc43famr221104131cf.2.1766869170002; Sat, 27 Dec 2025
 12:59:30 -0800 (PST)
MIME-Version: 1.0
References: <20251226225254.46197-1-21cnbao@gmail.com> <20251226225254.46197-9-21cnbao@gmail.com>
 <20251227201642.GQ11869@unreal>
In-Reply-To: <20251227201642.GQ11869@unreal>
From: Barry Song <21cnbao@gmail.com>
Date: Sun, 28 Dec 2025 09:59:18 +1300
X-Gm-Features: AQt7F2rxXlxLqJeMe-griN6e55GdsgQR49MF8zyADfJXBQnZzf4d6g65OQ5pwik
Message-ID: <CAGsJ_4xssfB7hNOWLDianQfx+9wC2e4qZKtRBUzEZ-v97Sa63Q@mail.gmail.com>
Subject: Re: [PATCH RFC v2 8/8] dma-iommu: Support DMA sync batch mode for
 iommu_dma_sync_sg_for_{cpu, device}
To: Leon Romanovsky <leon@kernel.org>
Cc: catalin.marinas@arm.com, m.szyprowski@samsung.com, robin.murphy@arm.com, 
	will@kernel.org, iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org, 
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, 
	Ada Couprie Diaz <ada.coupriediaz@arm.com>, Ard Biesheuvel <ardb@kernel.org>, Marc Zyngier <maz@kernel.org>, 
	Anshuman Khandual <anshuman.khandual@arm.com>, Ryan Roberts <ryan.roberts@arm.com>, 
	Suren Baghdasaryan <surenb@google.com>, Joerg Roedel <joro@8bytes.org>, 
	Tangquan Zheng <zhengtangquan@oppo.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sun, Dec 28, 2025 at 9:16=E2=80=AFAM Leon Romanovsky <leon@kernel.org> w=
rote:
>
> On Sat, Dec 27, 2025 at 11:52:48AM +1300, Barry Song wrote:
> > From: Barry Song <baohua@kernel.org>
> >
> > Apply batched DMA synchronization to iommu_dma_sync_sg_for_cpu() and
> > iommu_dma_sync_sg_for_device(). For all buffers in an SG list, only
> > a single flush operation is needed.
> >
> > I do not have the hardware to test this, so the patch is marked as
> > RFC. I would greatly appreciate any testing feedback.
> >
> > Cc: Leon Romanovsky <leon@kernel.org>
> > Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> > Cc: Catalin Marinas <catalin.marinas@arm.com>
> > Cc: Will Deacon <will@kernel.org>
> > Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
> > Cc: Ard Biesheuvel <ardb@kernel.org>
> > Cc: Marc Zyngier <maz@kernel.org>
> > Cc: Anshuman Khandual <anshuman.khandual@arm.com>
> > Cc: Ryan Roberts <ryan.roberts@arm.com>
> > Cc: Suren Baghdasaryan <surenb@google.com>
> > Cc: Robin Murphy <robin.murphy@arm.com>
> > Cc: Joerg Roedel <joro@8bytes.org>
> > Cc: Tangquan Zheng <zhengtangquan@oppo.com>
> > Signed-off-by: Barry Song <baohua@kernel.org>
> > ---
> >  drivers/iommu/dma-iommu.c | 15 +++++++--------
> >  1 file changed, 7 insertions(+), 8 deletions(-)
> >
> > diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
> > index ffa940bdbbaf..b68dbfcb7846 100644
> > --- a/drivers/iommu/dma-iommu.c
> > +++ b/drivers/iommu/dma-iommu.c
> > @@ -1131,10 +1131,9 @@ void iommu_dma_sync_sg_for_cpu(struct device *de=
v, struct scatterlist *sgl,
> >                       iommu_dma_sync_single_for_cpu(dev, sg_dma_address=
(sg),
> >                                                     sg->length, dir);
> >       } else if (!dev_is_dma_coherent(dev)) {
> > -             for_each_sg(sgl, sg, nelems, i) {
> > +             for_each_sg(sgl, sg, nelems, i)
> >                       arch_sync_dma_for_cpu(sg_phys(sg), sg->length, di=
r);
> > -                     arch_sync_dma_flush();
> > -             }
> > +             arch_sync_dma_flush();
>
> This and previous patches should be squashed into the one which
> introduced arch_sync_dma_flush().

Hi Leon,

The series is structured to first introduce no functional change by
replacing all arch_sync_dma_for_* calls with arch_sync_dma_for_* plus
arch_sync_dma_flush(). Subsequent patches then add batching for
different scenarios as separate changes.

Another issue is that I was unable to find a board that both runs
mainline and exercises the IOMMU paths affected by these changes.
As a result, patches 7 and 8 are marked as RFC, while the other
patches have been tested on a real board running mainline + changes.

Thanks
Barry


From xen-devel-bounces@lists.xenproject.org Sat Dec 27 21:45:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Dec 2025 21:45:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193750.1512356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZc6L-0002Ba-V7; Sat, 27 Dec 2025 21:45:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193750.1512356; Sat, 27 Dec 2025 21:45:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZc6L-0002BT-S4; Sat, 27 Dec 2025 21:45:29 +0000
Received: by outflank-mailman (input) for mailman id 1193750;
 Sat, 27 Dec 2025 21:45:28 +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 <SRS0=4j1x=7B=gmail.com=21cnbao@srs-se1.protection.inumbo.net>)
 id 1vZc6K-0002Az-5O
 for xen-devel@lists.xenproject.org; Sat, 27 Dec 2025 21:45:28 +0000
Received: from mail-qv1-xf2f.google.com (mail-qv1-xf2f.google.com
 [2607:f8b0:4864:20::f2f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5a366456-e36d-11f0-b15c-2bf370ae4941;
 Sat, 27 Dec 2025 22:45:26 +0100 (CET)
Received: by mail-qv1-xf2f.google.com with SMTP id
 6a1803df08f44-88ffcb14e11so34683096d6.0
 for <xen-devel@lists.xenproject.org>; Sat, 27 Dec 2025 13:45:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5a366456-e36d-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766871925; x=1767476725; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lt41blxsMyjhc3LV6WnC+/wCpChm6SDa9UhbOfqHfRs=;
        b=IclloBh96jd4HwYnKOq5XQoOSR8CpKlEqitOFbnTZwhX9JXh6yjq3/tpn/Ie55w8TP
         2DE8m0eOlxegIucmdBB9fDQ3SN6gtIQqaodNZFJ2LCrEwZeAn10ClMhrOyk4LCHGTs2c
         8EWlUjijUmF4ANmvLex7c+DK2BymJKmYSqh7yNBg2fASyfnsQi4t1Cm7q1j7Jm15TYnA
         etSJJ9yikI8nS8IL+Ivc975XVHf/ofpGwp8dRXEskJCLzNat2AZmtnWXz5UTsMg7Yql/
         Kifl/CDAzf3uEN33QWcbf/rCbXUkfh1O5hmncUGYUx40bE61+XMFKdI/pr0TIM+g6b0w
         hIAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766871925; x=1767476725;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=lt41blxsMyjhc3LV6WnC+/wCpChm6SDa9UhbOfqHfRs=;
        b=YYA8fYsc5B7BKAbaGlCOfxLeRU4xhX+SfniwL/LjHSsJNiscVy6G+iMXioswCT4uYy
         cJnUiOAHg3T404BwPXYiWtsO4LdGpsehf1V5Dc7sy9GrnFrqiffORJcpOXwpDVzhOwsu
         u45IoTL5n9Zvp1j+0me4mONdNeeAcoVkaNid5RKlDNYzBE2mOIlUfTZh3oZ+OLW8xAjQ
         NtrVqKZ6kPGwVFQKHdGH/ycNDPceCUmYo6E0gJeoefouIM9Q9XSB+Og0VcNUjBXtntWO
         eAzvchZCEW456KFXtA2XXzA31lGUyNy/i8b7GUHCh4EOwSmWAbIlCFEY4tOtzWfDabS/
         bpcw==
X-Forwarded-Encrypted: i=1; AJvYcCWT3YP5A20Y5pMk0EUpf5XEfBcP/c0evjQbsOk0tylDQe25Jtqtj3Lz4Q9nejDpexTiDqE6qCai5b0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx9w8rDuclboTI2X0i9rRsK1UOLw/qLmjoUvc2b58gVQM8EC1cY
	Lk39cQS3SH9ZiO74/VSWtf10khg/HqSvh6hc0Y/I5OoQWaMCFUaCaYIE60S9zhBBWFv/akDj+7y
	MHoPg8lojs8nLnQ9gjmyBgYAqqOI8w+mHNBPR
X-Gm-Gg: AY/fxX7zhFc7nilKnIKhqEwfgAAJmk7Bteraytk24TSiduNLyINx6Qidr3FXl6Bevag
	QWNA3MQ1g8ajvZMpjiFrfhqdVJC9lPT6iA7BWBwLT4ySpEnDNm3zkqX+RC7z/Xza7TCIvhgHqzb
	3lHA97NLAMg7KDthgdT1JZOXX0Bbr6Xsf4r45KNNXQZNQvzvcV8Hkyqo/yLbGC4Zvm0Hk8SxV1i
	mkIfVh9v2S0/BCHi2K9p5k+Qf+te808ROZGlhH9JhBNEi3QnD/VaQ69QtnZqByY5O1cpQ==
X-Google-Smtp-Source: AGHT+IHmBi29677t2O37ea1flM7K/Y0dIjXGGt2yXIRM7uMA6APSnauCpQ+0jFlHKgITt5UGFK02RSmCY0Fj091CN4k=
X-Received: by 2002:a05:6214:5092:b0:888:6ea5:a90b with SMTP id
 6a1803df08f44-88d7f5b331fmr425798726d6.0.1766871924468; Sat, 27 Dec 2025
 13:45:24 -0800 (PST)
MIME-Version: 1.0
References: <20251226225254.46197-1-21cnbao@gmail.com> <20251226225254.46197-5-21cnbao@gmail.com>
 <20251227200706.GN11869@unreal>
In-Reply-To: <20251227200706.GN11869@unreal>
From: Barry Song <21cnbao@gmail.com>
Date: Sun, 28 Dec 2025 10:45:13 +1300
X-Gm-Features: AQt7F2r-YxjjSYpd8cllnEqpFXg5kopB86XJsQIZsxDdh04rwEIBpc-UuQSQ9GE
Message-ID: <CAGsJ_4zyascnpQ1cB-BMO9PDeeRZTBAh8Z-j-ip=RcxApa4zSg@mail.gmail.com>
Subject: Re: [PATCH v2 4/8] dma-mapping: Separate DMA sync issuing and
 completion waiting
To: Leon Romanovsky <leon@kernel.org>
Cc: catalin.marinas@arm.com, m.szyprowski@samsung.com, robin.murphy@arm.com, 
	will@kernel.org, iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org, 
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, 
	Ada Couprie Diaz <ada.coupriediaz@arm.com>, Ard Biesheuvel <ardb@kernel.org>, Marc Zyngier <maz@kernel.org>, 
	Anshuman Khandual <anshuman.khandual@arm.com>, Ryan Roberts <ryan.roberts@arm.com>, 
	Suren Baghdasaryan <surenb@google.com>, Joerg Roedel <joro@8bytes.org>, Juergen Gross <jgross@suse.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, 
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, Tangquan Zheng <zhengtangquan@oppo.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sun, Dec 28, 2025 at 9:07=E2=80=AFAM Leon Romanovsky <leon@kernel.org> w=
rote:
>
> On Sat, Dec 27, 2025 at 11:52:44AM +1300, Barry Song wrote:
> > From: Barry Song <baohua@kernel.org>
> >
> > Currently, arch_sync_dma_for_cpu and arch_sync_dma_for_device
> > always wait for the completion of each DMA buffer. That is,
> > issuing the DMA sync and waiting for completion is done in a
> > single API call.
> >
> > For scatter-gather lists with multiple entries, this means
> > issuing and waiting is repeated for each entry, which can hurt
> > performance. Architectures like ARM64 may be able to issue all
> > DMA sync operations for all entries first and then wait for
> > completion together.
> >
> > To address this, arch_sync_dma_for_* now issues DMA operations in
> > batch, followed by a flush. On ARM64, the flush is implemented
> > using a dsb instruction within arch_sync_dma_flush().
> >
> > For now, add arch_sync_dma_flush() after each
> > arch_sync_dma_for_*() call. arch_sync_dma_flush() is defined as a
> > no-op on all architectures except arm64, so this patch does not
> > change existing behavior. Subsequent patches will introduce true
> > batching for SG DMA buffers.
> >
> > Cc: Leon Romanovsky <leon@kernel.org>
> > Cc: Catalin Marinas <catalin.marinas@arm.com>
> > Cc: Will Deacon <will@kernel.org>
> > Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> > Cc: Robin Murphy <robin.murphy@arm.com>
> > Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
> > Cc: Ard Biesheuvel <ardb@kernel.org>
> > Cc: Marc Zyngier <maz@kernel.org>
> > Cc: Anshuman Khandual <anshuman.khandual@arm.com>
> > Cc: Ryan Roberts <ryan.roberts@arm.com>
> > Cc: Suren Baghdasaryan <surenb@google.com>
> > Cc: Joerg Roedel <joro@8bytes.org>
> > Cc: Juergen Gross <jgross@suse.com>
> > Cc: Stefano Stabellini <sstabellini@kernel.org>
> > Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> > Cc: Tangquan Zheng <zhengtangquan@oppo.com>
> > Signed-off-by: Barry Song <baohua@kernel.org>
> > ---
> >  arch/arm64/include/asm/cache.h |  6 ++++++
> >  arch/arm64/mm/dma-mapping.c    |  4 ++--
> >  drivers/iommu/dma-iommu.c      | 37 +++++++++++++++++++++++++---------
> >  drivers/xen/swiotlb-xen.c      | 24 ++++++++++++++--------
> >  include/linux/dma-map-ops.h    |  6 ++++++
> >  kernel/dma/direct.c            |  8 ++++++--
> >  kernel/dma/direct.h            |  9 +++++++--
> >  kernel/dma/swiotlb.c           |  4 +++-
> >  8 files changed, 73 insertions(+), 25 deletions(-)
>
> <...>
>
> > +#ifndef arch_sync_dma_flush
> > +static inline void arch_sync_dma_flush(void)
> > +{
> > +}
> > +#endif
>
> Over the weekend I realized a useful advantage of the ARCH_HAVE_* config
> options: they make it straightforward to inspect the entire DMA path simp=
ly
> by looking at the .config.

I am not quite sure how much this benefits users, as the same
information could also be obtained by grepping for
#define arch_sync_dma_flush in the source code.

>
> Thanks,
> Reviewed-by: Leon Romanovsky <leonro@nvidia.com>

Thanks very much, Leon, for reviewing this over the weekend. One thing
you might have missed is that I place arch_sync_dma_flush() after all
arch_sync_dma_for_*() calls, for both single and sg cases. I also
used a Python script to scan the code and verify that every
arch_sync_dma_for_*() is followed by arch_sync_dma_flush(), to ensure
that no call is left out.

In the subsequent patches, for sg cases, the per-entry flush is
replaced by a single flush of the entire sg. Each sg case has
different characteristics: some are straightforward, while others
can be tricky and involve additional contexts.

Thanks
Barry


From xen-devel-bounces@lists.xenproject.org Sun Dec 28 12:49:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Dec 2025 12:49:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193781.1512366 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZqDL-0007n6-01; Sun, 28 Dec 2025 12:49:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193781.1512366; Sun, 28 Dec 2025 12:49:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZqDK-0007my-Qy; Sun, 28 Dec 2025 12:49:38 +0000
Received: by outflank-mailman (input) for mailman id 1193781;
 Sun, 28 Dec 2025 12:49:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eIfO=7C=bounce.vates.tech=bounce-md_30504962.69512754.v1-d36f786847d04c379ce739a8e79bc6c2@srs-se1.protection.inumbo.net>)
 id 1vZqDJ-0007ms-D4
 for xen-devel@lists.xenproject.org; Sun, 28 Dec 2025 12:49:37 +0000
Received: from mail137-23.atl71.mandrillapp.com
 (mail137-23.atl71.mandrillapp.com [198.2.137.23])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a42a1725-e3eb-11f0-9ccf-f158ae23cfc8;
 Sun, 28 Dec 2025 13:49:26 +0100 (CET)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-23.atl71.mandrillapp.com (Mailchimp) with ESMTP id
 4dfK1J5V8xz1XLFWK
 for <xen-devel@lists.xenproject.org>; Sun, 28 Dec 2025 12:49:24 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d36f786847d04c379ce739a8e79bc6c2; Sun, 28 Dec 2025 12:49:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a42a1725-e3eb-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1766926164; x=1767196164;
	bh=3XiTMeV+2IW1xdRQNSSLaOcS0uReSSjLIjsndGXvcE8=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=MUKPzb3XmYozgV02JCGMP3YUXqGSmhe7BDyIgw0l/Vgvp591kSYfzmpnCMcxOugN9
	 +edbdGinBZkuRbeKLFSj6U1tzkagBwCRN88y5rHt3NXhqkdQdfeNTgoSaLqRhWCPnv
	 /cmVa6ybNYa0WqdYBwtY+k6bbKbEiVPihmK+B+48S2hM2ko0EpJE1Q+YuG1EhiM0mo
	 G03892+5J9qAglGD+xcZEqzg3TjsahyOeMux9EKN2ri3ApkO/AKefEUGvhYyZ7moXR
	 SO4TZHNTd3U1SgSpeK9RPEoG2MMRahNFY6kMi1qgWniTVpVbDMU/ygY1urkkAEwETn
	 q3fdpr1ISkQ5Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1766926164; x=1767186664; i=teddy.astie@vates.tech;
	bh=3XiTMeV+2IW1xdRQNSSLaOcS0uReSSjLIjsndGXvcE8=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=of+TdZRsfX3uD8wiBEuSLDShvXkRpEiTADnY4tfXJR/FGVjUo4Abe48PWIShVGtGN
	 cIwGzarykgeVkEhWBUAhq/sMrkrXhMlkpasNLiq0Ix64Kl2nYxG5z0gzSi+z+Nv96p
	 zcZ0VsbCUBwqVGl7vZULE7i+9kIGYTRdImqFSfhicVHXBXJnGGk89+eVHgTy2sUaMY
	 8V+4sn3c6qXOCOpp5xNkIqYkk3QOW7UVMiJN6+cpiQu3YCx+xcknfT3CpF33Uw+KuC
	 B0+N3JPT8UEpob+ffoKJXWtau8UFh1n31cOQdcl8pLbgnKxQayAsIGHF7LHr9nEl6r
	 Rw58ujMYtd9OQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH]=20pvh:=20Introduce=20SIF=5FHVM=5FGHCB=20for=20SEV-ES/SNP=20guests?=
X-Mailer: git-send-email 2.52.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1766926163327
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>
Message-Id: <3b6f5146287d3402a09836b7cf876d4f8dc9eee1.1766889890.git.teddy.astie@vates.tech>
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.d36f786847d04c379ce739a8e79bc6c2?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251228:md
Date: Sun, 28 Dec 2025 12:49:24 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Under SEV, the pagetables needs to be post-processed to add the C-bit
(to make the mapping encrypted). The guest is expected to query the C-bit
through CPUID. However, under SEV-ES and SEV-SNP modes, this instruction
now triggers #VC instead. The guest would need to setup a IDT very early
and instead use the early-GHCB protocol to emulate CPUID, which is
complicated.

Alternatively, we can signal to the guest that it is a SEV-ES/SNP through
start_info structure, which is visible to the guest early on. All SEV-ES/SNP
guests have the GHCB MSR available, which can be trivially [1] used to get the
C-bit and proceed with the initialization avoiding CPUID instruction.

We integrate that to the PVH ABI and expect all SEV-enabled domain builders
to honor this flag for simplifying the PVH entry point logic of guests.

[1] Initial GHCB MSR value contains the C-bit. The guest can trivially read this
MSR and skip CPUID logic.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
Actually, C-bit itself cannot be a part of ABI as it is hardware-dependant
(and even firmware configuration dependant).
---
 docs/misc/pvh.pandoc     | 5 +++++
 xen/include/public/xen.h | 2 ++
 2 files changed, 7 insertions(+)

diff --git a/docs/misc/pvh.pandoc b/docs/misc/pvh.pandoc
index 3e18789d36..6453ee21eb 100644
--- a/docs/misc/pvh.pandoc
+++ b/docs/misc/pvh.pandoc
@@ -44,6 +44,11 @@ using HVMPARAMS, just like it's done on HVM guests.
 The setup of the hypercall page is also performed in the same way
 as HVM guests, using the hypervisor cpuid leaves and msr ranges.
 
+## SEV-ES/SNP guests ##
+
+The domain builder must set `SIF_HVM_GHCB` in start_info if the guest uses
+SEV-ES or SEV-SNP technologies; i.e requires the use of GHCB protocol.
+
 ## AP startup ##
 
 AP startup can be performed using hypercalls or the local APIC if present.
diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
index 7f15204c38..9b84df573b 100644
--- a/xen/include/public/xen.h
+++ b/xen/include/public/xen.h
@@ -890,6 +890,8 @@ typedef struct start_info start_info_t;
 #define SIF_MOD_START_PFN (1<<3)  /* Is mod_start a PFN? */
 #define SIF_VIRT_P2M_4TOOLS (1<<4) /* Do Xen tools understand a virt. mapped */
                                    /* P->M making the 3 level tree obsolete? */
+#define SIF_HVM_GHCB      (1<<5)   /* Domain is SEV-ES/SNP guest that requires */
+                                   /* use of GHCB. */
 #define SIF_PM_MASK       (0xFF<<8) /* reserve 1 byte for xen-pm options */
 
 /*
-- 
2.52.0



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Sun Dec 28 14:49:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Dec 2025 14:49:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193796.1512375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZs59-0005SM-53; Sun, 28 Dec 2025 14:49:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193796.1512375; Sun, 28 Dec 2025 14:49:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZs59-0005SF-1w; Sun, 28 Dec 2025 14:49:19 +0000
Received: by outflank-mailman (input) for mailman id 1193796;
 Sun, 28 Dec 2025 14:49:17 +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 <SRS0=8FLo=7C=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1vZs57-0005S9-Mn
 for xen-devel@lists.xenproject.org; Sun, 28 Dec 2025 14:49:17 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 61333ab9-e3fc-11f0-b15c-2bf370ae4941;
 Sun, 28 Dec 2025 15:49:16 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 5D15F403D6;
 Sun, 28 Dec 2025 14:49:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9D38BC4CEFB;
 Sun, 28 Dec 2025 14:49:13 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61333ab9-e3fc-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1766933354;
	bh=KsIQ/N3MhVA4l2rlxf/X6rqlexltaiPqA/C+R9KBRrw=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=qxr7ascqLWsFOwQZLmWr4VaoaU6kLt3JWfsyukATtuABzJxpEZhqUFeO5FQAhs+ir
	 u+cu2HY3hReFb+9sXcFor11aS/eIJMyuJ68Nmt/L+c2T0y3p+0rkU3gMrVEqEGGT26
	 hNG//3ORDr7c1ijghi5Ug5ZvJpG77gZxoqnLrhKcMTDOR0VSqIASJ2vv+Y8cPZIU/R
	 TyyELt1hdTT3RjWVZtdsFz/Yn3kHtB6+BiS+aVF/R8MuwUvFb7nETSS2aMOFPcoJA6
	 bNJ47oEeKqGd4FlgSKH6xIdPpwQG0Fv+x+JMZG7xHiN0aummhOQwA1dvg6SgWN7Jkc
	 XiChRt88500Gg==
Date: Sun, 28 Dec 2025 16:49:09 +0200
From: Leon Romanovsky <leon@kernel.org>
To: Barry Song <21cnbao@gmail.com>
Cc: catalin.marinas@arm.com, m.szyprowski@samsung.com, robin.murphy@arm.com,
	will@kernel.org, iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Ada Couprie Diaz <ada.coupriediaz@arm.com>,
	Ard Biesheuvel <ardb@kernel.org>, Marc Zyngier <maz@kernel.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Joerg Roedel <joro@8bytes.org>, Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Tangquan Zheng <zhengtangquan@oppo.com>
Subject: Re: [PATCH v2 4/8] dma-mapping: Separate DMA sync issuing and
 completion waiting
Message-ID: <20251228144909.GR11869@unreal>
References: <20251226225254.46197-1-21cnbao@gmail.com>
 <20251226225254.46197-5-21cnbao@gmail.com>
 <20251227200706.GN11869@unreal>
 <CAGsJ_4zyascnpQ1cB-BMO9PDeeRZTBAh8Z-j-ip=RcxApa4zSg@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CAGsJ_4zyascnpQ1cB-BMO9PDeeRZTBAh8Z-j-ip=RcxApa4zSg@mail.gmail.com>

On Sun, Dec 28, 2025 at 10:45:13AM +1300, Barry Song wrote:
> On Sun, Dec 28, 2025 at 9:07 AM Leon Romanovsky <leon@kernel.org> wrote:
> >
> > On Sat, Dec 27, 2025 at 11:52:44AM +1300, Barry Song wrote:
> > > From: Barry Song <baohua@kernel.org>
> > >
> > > Currently, arch_sync_dma_for_cpu and arch_sync_dma_for_device
> > > always wait for the completion of each DMA buffer. That is,
> > > issuing the DMA sync and waiting for completion is done in a
> > > single API call.
> > >
> > > For scatter-gather lists with multiple entries, this means
> > > issuing and waiting is repeated for each entry, which can hurt
> > > performance. Architectures like ARM64 may be able to issue all
> > > DMA sync operations for all entries first and then wait for
> > > completion together.
> > >
> > > To address this, arch_sync_dma_for_* now issues DMA operations in
> > > batch, followed by a flush. On ARM64, the flush is implemented
> > > using a dsb instruction within arch_sync_dma_flush().
> > >
> > > For now, add arch_sync_dma_flush() after each
> > > arch_sync_dma_for_*() call. arch_sync_dma_flush() is defined as a
> > > no-op on all architectures except arm64, so this patch does not
> > > change existing behavior. Subsequent patches will introduce true
> > > batching for SG DMA buffers.
> > >
> > > Cc: Leon Romanovsky <leon@kernel.org>
> > > Cc: Catalin Marinas <catalin.marinas@arm.com>
> > > Cc: Will Deacon <will@kernel.org>
> > > Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> > > Cc: Robin Murphy <robin.murphy@arm.com>
> > > Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
> > > Cc: Ard Biesheuvel <ardb@kernel.org>
> > > Cc: Marc Zyngier <maz@kernel.org>
> > > Cc: Anshuman Khandual <anshuman.khandual@arm.com>
> > > Cc: Ryan Roberts <ryan.roberts@arm.com>
> > > Cc: Suren Baghdasaryan <surenb@google.com>
> > > Cc: Joerg Roedel <joro@8bytes.org>
> > > Cc: Juergen Gross <jgross@suse.com>
> > > Cc: Stefano Stabellini <sstabellini@kernel.org>
> > > Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> > > Cc: Tangquan Zheng <zhengtangquan@oppo.com>
> > > Signed-off-by: Barry Song <baohua@kernel.org>
> > > ---
> > >  arch/arm64/include/asm/cache.h |  6 ++++++
> > >  arch/arm64/mm/dma-mapping.c    |  4 ++--
> > >  drivers/iommu/dma-iommu.c      | 37 +++++++++++++++++++++++++---------
> > >  drivers/xen/swiotlb-xen.c      | 24 ++++++++++++++--------
> > >  include/linux/dma-map-ops.h    |  6 ++++++
> > >  kernel/dma/direct.c            |  8 ++++++--
> > >  kernel/dma/direct.h            |  9 +++++++--
> > >  kernel/dma/swiotlb.c           |  4 +++-
> > >  8 files changed, 73 insertions(+), 25 deletions(-)
> >
> > <...>
> >
> > > +#ifndef arch_sync_dma_flush
> > > +static inline void arch_sync_dma_flush(void)
> > > +{
> > > +}
> > > +#endif
> >
> > Over the weekend I realized a useful advantage of the ARCH_HAVE_* config
> > options: they make it straightforward to inspect the entire DMA path simply
> > by looking at the .config.
> 
> I am not quite sure how much this benefits users, as the same
> information could also be obtained by grepping for
> #define arch_sync_dma_flush in the source code.

It differs slightly. Users no longer need to grep around or guess whether this
platform used the arch_sync_dma_flush path. A simple grep for ARCH_HAVE_ in
/proc/config.gz provides the answer.

> 
> >
> > Thanks,
> > Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
> 
> Thanks very much, Leon, for reviewing this over the weekend. One thing
> you might have missed is that I place arch_sync_dma_flush() after all
> arch_sync_dma_for_*() calls, for both single and sg cases. I also
> used a Python script to scan the code and verify that every
> arch_sync_dma_for_*() is followed by arch_sync_dma_flush(), to ensure
> that no call is left out.
> 
> In the subsequent patches, for sg cases, the per-entry flush is
> replaced by a single flush of the entire sg. Each sg case has
> different characteristics: some are straightforward, while others
> can be tricky and involve additional contexts.

I didn't overlook it, and I understand your rationale. However, this is
not how kernel patches should be structured. You should not introduce
code in patch X and then move it elsewhere in patch X + Y.

Place the code in the correct location from the start. Your patches are
small enough to review as is.

Thanks"
> 
> Thanks
> Barry


From xen-devel-bounces@lists.xenproject.org Sun Dec 28 14:50:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Dec 2025 14:50:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193804.1512386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZs6a-0006s7-DU; Sun, 28 Dec 2025 14:50:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193804.1512386; Sun, 28 Dec 2025 14:50:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZs6a-0006s0-Ax; Sun, 28 Dec 2025 14:50:48 +0000
Received: by outflank-mailman (input) for mailman id 1193804;
 Sun, 28 Dec 2025 14:50:47 +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 <SRS0=8FLo=7C=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1vZs6Z-0006rs-PP
 for xen-devel@lists.xenproject.org; Sun, 28 Dec 2025 14:50:47 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9711a2f2-e3fc-11f0-b15c-2bf370ae4941;
 Sun, 28 Dec 2025 15:50:46 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 2B69B43EC7;
 Sun, 28 Dec 2025 14:50:45 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9CDB8C4CEFB;
 Sun, 28 Dec 2025 14:50:44 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9711a2f2-e3fc-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1766933445;
	bh=qbiHTFr5GuNGzRGenhnbtkv5WysSVwMoyJI42ZMBbjI=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=uR1KTIMbxcfjIMp5BeqFx3rLg3y1/DslfD3E9dpTGsYLDXumEMvyTDlrtJexRliP8
	 4rMhxVlEgscTX6SMvyoGGbqBB9s3IhOyr0Dq1rOTTq9DRKyQCs5R4MMaiXq5SMJDv8
	 ypPf4xJu36IIq2elskChlmVCggK0X5P0P3iMsdzipt3Q/Pz09VtoJGRlajt3LsI+Wl
	 gbwuGIGXFZFArEze9cY3ogr29kq3DbeOzLDvfFkXuQM3i0eAPwqneC1a0xL9kATsPV
	 e7ey8Ht1VOWWZqIFGccgi1XAHIthQy1YRdTkX615ut3eBb5C2AjajZOKWeMy6qELr1
	 bfIt1iNGLWgqA==
Date: Sun, 28 Dec 2025 16:50:41 +0200
From: Leon Romanovsky <leon@kernel.org>
To: Barry Song <21cnbao@gmail.com>
Cc: catalin.marinas@arm.com, m.szyprowski@samsung.com, robin.murphy@arm.com,
	will@kernel.org, iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Ada Couprie Diaz <ada.coupriediaz@arm.com>,
	Ard Biesheuvel <ardb@kernel.org>, Marc Zyngier <maz@kernel.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Tangquan Zheng <zhengtangquan@oppo.com>
Subject: Re: [PATCH v2 5/8] dma-mapping: Support batch mode for
 dma_direct_sync_sg_for_*
Message-ID: <20251228145041.GS11869@unreal>
References: <20251226225254.46197-1-21cnbao@gmail.com>
 <20251226225254.46197-6-21cnbao@gmail.com>
 <20251227200933.GO11869@unreal>
 <CAGsJ_4yA83-K7PXiEtyidzF_j6qqKkt92z485KBS9+zGe_rjnw@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CAGsJ_4yA83-K7PXiEtyidzF_j6qqKkt92z485KBS9+zGe_rjnw@mail.gmail.com>

On Sun, Dec 28, 2025 at 09:52:05AM +1300, Barry Song wrote:
> On Sun, Dec 28, 2025 at 9:09 AM Leon Romanovsky <leon@kernel.org> wrote:
> >
> > On Sat, Dec 27, 2025 at 11:52:45AM +1300, Barry Song wrote:
> > > From: Barry Song <baohua@kernel.org>
> > >
> > > Instead of performing a flush per SG entry, issue all cache
> > > operations first and then flush once. This ultimately benefits
> > > __dma_sync_sg_for_cpu() and __dma_sync_sg_for_device().
> > >
> > > Cc: Leon Romanovsky <leon@kernel.org>
> > > Cc: Catalin Marinas <catalin.marinas@arm.com>
> > > Cc: Will Deacon <will@kernel.org>
> > > Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> > > Cc: Robin Murphy <robin.murphy@arm.com>
> > > Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
> > > Cc: Ard Biesheuvel <ardb@kernel.org>
> > > Cc: Marc Zyngier <maz@kernel.org>
> > > Cc: Anshuman Khandual <anshuman.khandual@arm.com>
> > > Cc: Ryan Roberts <ryan.roberts@arm.com>
> > > Cc: Suren Baghdasaryan <surenb@google.com>
> > > Cc: Tangquan Zheng <zhengtangquan@oppo.com>
> > > Signed-off-by: Barry Song <baohua@kernel.org>
> > > ---
> > >  kernel/dma/direct.c | 14 +++++++-------
> > >  1 file changed, 7 insertions(+), 7 deletions(-)
> >
> > <...>
> >
> > > -             if (!dev_is_dma_coherent(dev)) {
> > > +             if (!dev_is_dma_coherent(dev))
> > >                       arch_sync_dma_for_device(paddr, sg->length,
> > >                                       dir);
> > > -                     arch_sync_dma_flush();
> > > -             }
> > >       }
> > > +     if (!dev_is_dma_coherent(dev))
> > > +             arch_sync_dma_flush();
> >
> > This patch should be squashed into the previous one. You introduced
> > arch_sync_dma_flush() there, and now you are placing it elsewhere.
> 
> Hi Leon,
> 
> The previous patch replaces all arch_sync_dma_for_* calls with
> arch_sync_dma_for_* plus arch_sync_dma_flush(), without any
> functional change. The subsequent patches then implement the
> actual batching. I feel this is a better approach for reviewing
> each change independently. Otherwise, the previous patch would
> be too large.

Don't worry about it. Your patches are small enough.

> 
> Thanks
> Barry


From xen-devel-bounces@lists.xenproject.org Sun Dec 28 21:39:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Dec 2025 21:39:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193880.1512396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZyTN-0003da-0o; Sun, 28 Dec 2025 21:38:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193880.1512396; Sun, 28 Dec 2025 21:38:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vZyTM-0003dS-TN; Sun, 28 Dec 2025 21:38:44 +0000
Received: by outflank-mailman (input) for mailman id 1193880;
 Sun, 28 Dec 2025 21:38:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=r7bq=7C=gmail.com=21cnbao@srs-se1.protection.inumbo.net>)
 id 1vZyTL-0003dM-Fx
 for xen-devel@lists.xenproject.org; Sun, 28 Dec 2025 21:38:43 +0000
Received: from mail-qv1-xf29.google.com (mail-qv1-xf29.google.com
 [2607:f8b0:4864:20::f29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 92c36a84-e435-11f0-9ccf-f158ae23cfc8;
 Sun, 28 Dec 2025 22:38:41 +0100 (CET)
Received: by mail-qv1-xf29.google.com with SMTP id
 6a1803df08f44-8885b3c06caso137963826d6.1
 for <xen-devel@lists.xenproject.org>; Sun, 28 Dec 2025 13:38:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 92c36a84-e435-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1766957919; x=1767562719; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=s1g/LUZaFq6bDefX53BhgiuD5fkwRR70905nqxT15Dw=;
        b=Zs4MTrXQyMVxZwHsVERpALw67uiJyQBSoLpaJF2u2E1CAulZSDiq82rm974vlc64nE
         MliyWjW9kDheo+F8cnWCWJrsUE7psPGsX8z4bG66DQ8QBWi7RH78cs4pkKFLImIJviK6
         DWCSoKWNUvLbmfHbNo0BDBYak7a5xy7q8FhavSSyE6R434UthGVVTexJNpTYrY/N1MQN
         CTFuk+DBlHxOfiksImmgT6WLgs1mkRjww1HLS90xHDjVr2Qh/KQGzcpIoIinEHkTjJcy
         O+GThQq1wga+pIemB8YHpQ0Z7cQP5givBO902AcWc/UYZrNbhAVeuY4osZ/An9IfL9QX
         +x5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766957919; x=1767562719;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=s1g/LUZaFq6bDefX53BhgiuD5fkwRR70905nqxT15Dw=;
        b=Z6TqHMXDSTkQXB/lT9DmuAKcAEhwTHQ1R7cuPViCotoCqCzzQmDKHrMquEKXds7f8P
         AR6L2RVLzjW+2QIrgoDMV3UGqf9XTBM/bxq/KnaZJmiLwqeEbrYjebNyGZvhPpJK5JNV
         AGtPKHszhIml8PS3NSrao6m5ufANmCtJ53cnzwgXZtFW2l/bUD6p2dPAK3nB1Q0nzi9E
         RmZElaHf9TrwB5XzJ2P3FICr2kpvliiG2xCgDGcdlIz1/clrHxD99nKGXmpWpuKW4myo
         ULgvphHZ4tDZCTlbpJpOGkQ37nS9TZIHIPU7G02cHZhjBa+BzGomgHY0ZuIBpbA72GT2
         ldFg==
X-Forwarded-Encrypted: i=1; AJvYcCXaq9FEevHcMtJHZfC1bceeT0X0p5JTOwze6UzHkCn4Y3VA1X73hd4j2a6lcf8okhInauo+G6H3RHY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyBDTMCZ18v306WLvN2F2hxnEhbWHV2zKnX5gwOUvvetNfpRiQ7
	zvjeHKU0FhETlsa2de/U3vsHrZTCP0cJ+HFcOojvwJ8vHjGc0gmMg4HMLdATOi/gmZRzlAHi+DN
	Ipz926n2vWoyONj5OBQtLRefCRWDOTKo=
X-Gm-Gg: AY/fxX6jbkUHtQFlnDXJ6IlcW45L3CjnJC8Y/dCXBtAangcpg8Xi06Sm0mbY3Jsgk8H
	/zT86JpVhTWYpR745f31XRqJAmjKeHCMc9jv911GeLWi9h6B/9D0VepnWqmeQO0XB69tlOC0c7X
	xINZqJgC3xJ/v6qAIwS1/h8hf5PjZXPuyUyhVhzS5opHXZC1Ol0WwAUKa3snEtX1+UaXu1RsWBM
	uaL0RTRTWrQ7alzJNUZeS5PTFUFSCDVSzzIhl3lh+V/cmXDrTdT7nQE/rKTiU+WTeVmhYD+uC5B
	zxGo
X-Google-Smtp-Source: AGHT+IFgKeFJUcF4JlYrS+2alW/MpQ7kokvILpma/XvhkGlA5YEBPhAcAdbbpwwssSzZ4QYH5TR+I6xzr6+JAPDvDvM=
X-Received: by 2002:a05:6214:3106:b0:87d:cb8d:2a98 with SMTP id
 6a1803df08f44-88d851fbfafmr460409556d6.2.1766957918792; Sun, 28 Dec 2025
 13:38:38 -0800 (PST)
MIME-Version: 1.0
References: <20251226225254.46197-1-21cnbao@gmail.com> <20251226225254.46197-5-21cnbao@gmail.com>
 <20251227200706.GN11869@unreal> <CAGsJ_4zyascnpQ1cB-BMO9PDeeRZTBAh8Z-j-ip=RcxApa4zSg@mail.gmail.com>
 <20251228144909.GR11869@unreal>
In-Reply-To: <20251228144909.GR11869@unreal>
From: Barry Song <21cnbao@gmail.com>
Date: Mon, 29 Dec 2025 10:38:26 +1300
X-Gm-Features: AQt7F2qQRDPvBU46Q085z5nd3f2LlK_MxqFtI029gQlWHnLWh7NIEMxwcDVy0Zs
Message-ID: <CAGsJ_4y=yoYZn+_ztdfuOCj_dS-M0h8YWO51AXubPbeR1FH6uQ@mail.gmail.com>
Subject: Re: [PATCH v2 4/8] dma-mapping: Separate DMA sync issuing and
 completion waiting
To: Leon Romanovsky <leon@kernel.org>
Cc: catalin.marinas@arm.com, m.szyprowski@samsung.com, robin.murphy@arm.com, 
	will@kernel.org, iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org, 
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, 
	Ada Couprie Diaz <ada.coupriediaz@arm.com>, Ard Biesheuvel <ardb@kernel.org>, Marc Zyngier <maz@kernel.org>, 
	Anshuman Khandual <anshuman.khandual@arm.com>, Ryan Roberts <ryan.roberts@arm.com>, 
	Suren Baghdasaryan <surenb@google.com>, Joerg Roedel <joro@8bytes.org>, Juergen Gross <jgross@suse.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, 
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, Tangquan Zheng <zhengtangquan@oppo.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Dec 29, 2025 at 3:49=E2=80=AFAM Leon Romanovsky <leon@kernel.org> w=
rote:
>
> On Sun, Dec 28, 2025 at 10:45:13AM +1300, Barry Song wrote:
> > On Sun, Dec 28, 2025 at 9:07=E2=80=AFAM Leon Romanovsky <leon@kernel.or=
g> wrote:
> > >
> > > On Sat, Dec 27, 2025 at 11:52:44AM +1300, Barry Song wrote:
> > > > From: Barry Song <baohua@kernel.org>
> > > >
> > > > Currently, arch_sync_dma_for_cpu and arch_sync_dma_for_device
> > > > always wait for the completion of each DMA buffer. That is,
> > > > issuing the DMA sync and waiting for completion is done in a
> > > > single API call.
> > > >
> > > > For scatter-gather lists with multiple entries, this means
> > > > issuing and waiting is repeated for each entry, which can hurt
> > > > performance. Architectures like ARM64 may be able to issue all
> > > > DMA sync operations for all entries first and then wait for
> > > > completion together.
> > > >
> > > > To address this, arch_sync_dma_for_* now issues DMA operations in
> > > > batch, followed by a flush. On ARM64, the flush is implemented
> > > > using a dsb instruction within arch_sync_dma_flush().
> > > >
> > > > For now, add arch_sync_dma_flush() after each
> > > > arch_sync_dma_for_*() call. arch_sync_dma_flush() is defined as a
> > > > no-op on all architectures except arm64, so this patch does not
> > > > change existing behavior. Subsequent patches will introduce true
> > > > batching for SG DMA buffers.
> > > >
> > > > Cc: Leon Romanovsky <leon@kernel.org>
> > > > Cc: Catalin Marinas <catalin.marinas@arm.com>
> > > > Cc: Will Deacon <will@kernel.org>
> > > > Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> > > > Cc: Robin Murphy <robin.murphy@arm.com>
> > > > Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
> > > > Cc: Ard Biesheuvel <ardb@kernel.org>
> > > > Cc: Marc Zyngier <maz@kernel.org>
> > > > Cc: Anshuman Khandual <anshuman.khandual@arm.com>
> > > > Cc: Ryan Roberts <ryan.roberts@arm.com>
> > > > Cc: Suren Baghdasaryan <surenb@google.com>
> > > > Cc: Joerg Roedel <joro@8bytes.org>
> > > > Cc: Juergen Gross <jgross@suse.com>
> > > > Cc: Stefano Stabellini <sstabellini@kernel.org>
> > > > Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> > > > Cc: Tangquan Zheng <zhengtangquan@oppo.com>
> > > > Signed-off-by: Barry Song <baohua@kernel.org>
> > > > ---
> > > >  arch/arm64/include/asm/cache.h |  6 ++++++
> > > >  arch/arm64/mm/dma-mapping.c    |  4 ++--
> > > >  drivers/iommu/dma-iommu.c      | 37 +++++++++++++++++++++++++-----=
----
> > > >  drivers/xen/swiotlb-xen.c      | 24 ++++++++++++++--------
> > > >  include/linux/dma-map-ops.h    |  6 ++++++
> > > >  kernel/dma/direct.c            |  8 ++++++--
> > > >  kernel/dma/direct.h            |  9 +++++++--
> > > >  kernel/dma/swiotlb.c           |  4 +++-
> > > >  8 files changed, 73 insertions(+), 25 deletions(-)
> > >
> > > <...>
> > >
> > > > +#ifndef arch_sync_dma_flush
> > > > +static inline void arch_sync_dma_flush(void)
> > > > +{
> > > > +}
> > > > +#endif
> > >
> > > Over the weekend I realized a useful advantage of the ARCH_HAVE_* con=
fig
> > > options: they make it straightforward to inspect the entire DMA path =
simply
> > > by looking at the .config.
> >
> > I am not quite sure how much this benefits users, as the same
> > information could also be obtained by grepping for
> > #define arch_sync_dma_flush in the source code.
>
> It differs slightly. Users no longer need to grep around or guess whether=
 this
> platform used the arch_sync_dma_flush path. A simple grep for ARCH_HAVE_ =
in
> /proc/config.gz provides the answer.

In any case, it is only two or three lines of code, so I am fine with
either approach. Perhaps Marek, Robin, and others have a point here?

>
> >
> > >
> > > Thanks,
> > > Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
> >
> > Thanks very much, Leon, for reviewing this over the weekend. One thing
> > you might have missed is that I place arch_sync_dma_flush() after all
> > arch_sync_dma_for_*() calls, for both single and sg cases. I also
> > used a Python script to scan the code and verify that every
> > arch_sync_dma_for_*() is followed by arch_sync_dma_flush(), to ensure
> > that no call is left out.
> >
> > In the subsequent patches, for sg cases, the per-entry flush is
> > replaced by a single flush of the entire sg. Each sg case has
> > different characteristics: some are straightforward, while others
> > can be tricky and involve additional contexts.
>
> I didn't overlook it, and I understand your rationale. However, this is
> not how kernel patches should be structured. You should not introduce
> code in patch X and then move it elsewhere in patch X + Y.

I am not quite convinced by this concern. This patch only
separates DMA sync issuing from completion waiting, and it
reflects that the development is done step by step.

>
> Place the code in the correct location from the start. Your patches are
> small enough to review as is.

My point is that this patch places the code in the correct locations
from the start. It splits arch_sync_dma_for_*() into
arch_sync_dma_for_*() plus arch_sync_dma_flush() everywhere, without
introducing any functional changes from the outset.
The subsequent patches clearly show which parts are truly batched.

In the meantime, I do not have a strong preference here. If you think
it is better to move some of the straightforward batching code here,
I can follow that approach. Perhaps I could move patch 5, patch 8,
and the iommu_dma_iova_unlink_range_slow change from patch 7 here,
while keeping

  [PATCH 6] dma-mapping: Support batch mode for
  dma_direct_{map,unmap}_sg

and the IOVA link part from patch 7 as separate patches, since that
part is not straightforward. The IOVA link changes affect both
__dma_iova_link() and dma_iova_sync(), which are two separate
functions and require a deeper understanding of the contexts to
determine correctness. That part also lacks testing.

Would that be okay with you?

Thanks
Barry


From xen-devel-bounces@lists.xenproject.org Mon Dec 29 08:13:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Dec 2025 08:13:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193911.1512406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1va8N0-0002Vv-7H; Mon, 29 Dec 2025 08:12:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193911.1512406; Mon, 29 Dec 2025 08:12:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1va8N0-0002Vo-3T; Mon, 29 Dec 2025 08:12:50 +0000
Received: by outflank-mailman (input) for mailman id 1193911;
 Mon, 29 Dec 2025 08:12:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=PeLl=7D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1va8My-0002Vi-8r
 for xen-devel@lists.xenproject.org; Mon, 29 Dec 2025 08:12:48 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2484b588-e48e-11f0-9ccf-f158ae23cfc8;
 Mon, 29 Dec 2025 09:12:40 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-47795f6f5c0so47095585e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 29 Dec 2025 00:12:39 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47be3aea77bsm225400525e9.17.2025.12.29.00.12.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Dec 2025 00:12:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2484b588-e48e-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766995959; x=1767600759; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2N8yK39D9Qijs0V1Nkp7KCjwUA5tvQwd1AFnlJM64B8=;
        b=GyJ+s2AhUqvYrvEpXYR+FHYQnAPmaTNp8k7u1FY9iu10gDyNGpUU67Cyi71Xfny8Xj
         s8/Wl7o2wi+LX6/IkQFDrrIO9qQlBre9sxWgoEY0ZOaQHfRzjhTvvVM9tvBYXisLJNBi
         71t5YP+cxlh1QXiJKaRR0zdurEOpwOsraO3lTonCnOYxpnzymRPBzOoVHsx+axhiwGYj
         SddC3gbRmLRx0B2dakV4MJjLpUnSqHkr+HIlMrYXCYkuSFH53N7OaZ52/8jsOSxhGmTx
         c/71KPCXiGPn1HCc7hWLAvLG0wl0wLPLli9iaRWpZi7ZS9SEW5bkYJtxck/69iIA86Vb
         jsog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766995959; x=1767600759;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2N8yK39D9Qijs0V1Nkp7KCjwUA5tvQwd1AFnlJM64B8=;
        b=q9gg34Niz48oIe5CgAKIveqizKhPA+Bhv8za+2juUqdZaF9FGAM+DhaPwU49Jqn5E0
         zXS7P5xNOUhXVGIfiUaOBFasCFbAqa/Eoqf08ilN+CuCutpCxe1/SoDJVSBrNquz/lP6
         qsjN9xMz2k5F4bA00Sb/3uHUky1CIuU6Px7nZP0Zcc+R01y40uCHKwyK3iL5OJLB1Dom
         6VTj0ujeY5hWX0nZhOaYie2xbTDLzC/JOvrncHPNKMW4nN58uAe651SQqJsTsDTDxaIE
         hS3VcXLgsCN+FVkC6o+Avz6FN4tMPpsgLEB/zHCp4Lu/cOaZqQ+0v2LGt4fL2gy9XzY7
         XPqg==
X-Forwarded-Encrypted: i=1; AJvYcCVp06XH89DF6mTzBiCBdfRXxZY//kYXTYPbHpMhkj7QQauxv4N9KulbNSeo7O8wF8Aq6yg9JcvmzSQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz0bLnUYleg1raNNxO42itF33YYnOTrjjCncWHZghyHALoawLOO
	L1riVazHW2JbJY7zrB4uE14cZpvqEZOZf6M2iE5O0012fa9v4L7a4dhbhPX/iTNpsg==
X-Gm-Gg: AY/fxX4/PEAsmzblXk62SXXxbE3Bi7DZhXhKOxhOgARtY6xHxpcWJ0B9BkxW/JS8twd
	LjMC6kAL++yrNzNT0gZS5d2Qx+sOPLDTP/DDhp0MndZev26rEtf+479yITWeYd5l3gIdqILItHn
	63dmWAeGG5o+2K2f5EnpeerzILXNme90fCjlomX03aqkPlgfiCxPKvx8jqcB/0XhA0xJk+Bg9ro
	brN+kV/XHGYhdkO3UDgS7ydA4915dwGeF3QEMMus73X4LIFj4xtDAYt8x71H7HhonqLw5rY6UAD
	g9qcStpBZzE0/urYjfcsmeM6OWWtDm7sM4w94Kd7yLdK8FosREtNCaFN4Merj2ws+KZixALMsCc
	rHhoWkiN+W99msdeDoLDdgkf8amgkhlN+ISewdZTQiGasUciG11PnLs9r2+cgj4R8H9oTAO5ztb
	oHjEupEMi5LU+uY+uicLQGs3WJg9ZVuMxVEovxeenwmPHgtxrcQUuwWWMJDiigCZnnzrijocYeg
	T4=
X-Google-Smtp-Source: AGHT+IHTOBPaCd3i6HRzzNq5KWYv2pSkCSIs3T1YWzxq9s0DfldE4F8cvQzz36nZOzwHIhR3GzVOSQ==
X-Received: by 2002:a05:600c:1d1d:b0:477:8ba7:fe0a with SMTP id 5b1f17b1804b1-47d1957da90mr334813035e9.24.1766995959260;
        Mon, 29 Dec 2025 00:12:39 -0800 (PST)
Message-ID: <221c0357-833e-4dec-b265-ac15a1932281@suse.com>
Date: Mon, 29 Dec 2025 09:12:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/mm: move adjustment of claimed pages counters on
 allocation
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251223081507.29325-1-roger.pau@citrix.com>
 <754a5e55-828d-4b3f-85cd-574760ddc69b@suse.com> <aUrXiaWnyM-eTJg2@Mac.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aUrXiaWnyM-eTJg2@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.12.2025 18:55, Roger Pau Monné wrote:
> On Tue, Dec 23, 2025 at 11:59:54AM +0100, Jan Beulich wrote:
>> On 23.12.2025 09:15, Roger Pau Monne wrote:
>>> The current logic splits the update of the amount of available memory in
>>> the system (total_avail_pages) and pending claims into two separately
>>> locked regions.  This leads to a window between counters adjustments where
>>> the result of total_avail_pages - outstanding_claims doesn't reflect the
>>> real amount of free memory available, and can return a negative value due
>>> to total_avail_pages having been updated ahead of outstanding_claims.
>>>
>>> Fix by adjusting outstanding_claims and d->outstanding_pages in the same
>>> place where total_avail_pages is updated.  This can possibly lead to the
>>> pages failing to be assigned to the domain later, after they have already
>>> been subtracted from the claimed amount.  Ultimately this would result in a
>>> domain losing part of it's claim, but that's better than the current skew
>>> between total_avail_pages and outstanding_claims.
>>
>> For the system as a whole - yes. For just the domain rather not. It may be
>> a little cumbersome, but can't we restore the claim from the error path
>> after failed assignment? (In fact the need to (optionally) pass a domain
>> into free_heap_pages() would improve symmetry with alloc_heap_pages().)
> 
> Passing a domain parameter to free_heap_pages() is not that much of an
> issue.  The problem with restoring the claim value on failure to
> assign is the corner cases.  For example consider an allocation that
> depletes the existing claim, allocating more than what was left to be
> claimed.  Restoring the previous claim value on failure to assign to
> the domain would be tricky.  It would require returning the consumed
> claim from alloc_heap_pages(), so that alloc_domheap_pages() could
> restore it on failure to assign.
> 
> However, I was looking at the possible failure causes of
> assign_pages() and I'm not sure there's much point in attempting to
> restore the claimed amount.  Current cases where assign_pages() will
> fail:
> 
>  - Domain is dying: keeping the claim is irrelevant, the domain is
>    dying anyway.
> 
>  - tot_pages > max_pages: inconsistent domain state, and a claim
>    should never be bigger than max_pages.
> 
>  - tot_pages + alloc > max_pages: only possible if alloc is using
>    claim pages plus unclaimed ones, as the claim cannot be bigger than
>    max_pages.  Such alloc is doomed to fail anyway, and would point at
>    the claim value being incorrectly set.
> 
>  - tot_pages + alloc < alloc: overflow of tot_pages, should never
>    happen with claimed pages as tot_pages <= max_pages, and claim <=
>    max_pages.
> 
> However that only covers current code in assign_pages(), there's no
> guarantee that future code might introduce new failure cases.
> 
> Having said all that, I have a prototype that restores the claimed
> amount that I could send to the list.  It involves adding two extra
> parameters to free_heap_pages(): the domain and the claim amount to
> restore.  It's not super-nice, but I was expecting it to be worse.

With the justification above I'd be okay with the claim not being
restored upon failure; the extra logic could then be added if and when
an error case appears which would make it desirable to restore the
claim.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 29 08:22:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Dec 2025 08:22:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193920.1512415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1va8Vq-0004Ae-1G; Mon, 29 Dec 2025 08:21:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193920.1512415; Mon, 29 Dec 2025 08:21:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1va8Vp-0004AX-V3; Mon, 29 Dec 2025 08:21:57 +0000
Received: by outflank-mailman (input) for mailman id 1193920;
 Mon, 29 Dec 2025 08:21:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=PeLl=7D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1va8Vo-0004AR-PO
 for xen-devel@lists.xenproject.org; Mon, 29 Dec 2025 08:21:56 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6ed1c76a-e48f-11f0-9ccf-f158ae23cfc8;
 Mon, 29 Dec 2025 09:21:54 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-47755de027eso52216995e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Dec 2025 00:21:54 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea1b36fsm60601733f8f.5.2025.12.29.00.21.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Dec 2025 00:21:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6ed1c76a-e48f-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766996513; x=1767601313; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hytBz7VzpljCGb3OHq8gb/mWkNkwb/OUDvrC1jucXss=;
        b=Z3J+eqihll1HVpv7CDN7B0MMzo06F1uapADpLNo2nBHT7+HCPjVNtOtVLWuMThIhbr
         TQ+5/1GGuX641synQMDUYZZ7lS6H905deAuZ5lKch6V/WjNJUW7lvQCp4oKi7tRULjR9
         OA+r5YuNct+M1R+KkS7lL5ek1pMjBWSK66zvK1P5AXpq/JlRfyPbuUBpJLXmBqpSWGOn
         M7ZLCFDHa3Md/vjq9nKX8t/eKRSbN6msoVkDpk4L6k7G34/YMN89I7U8Z5LP5yz4rmnj
         dvsivrDBqcC2OdbbTwMpS2CIH2V+KZvLSd3CCJbUKUcgIwml539DtVOdnowxa4x7u/tu
         HT1g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766996513; x=1767601313;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hytBz7VzpljCGb3OHq8gb/mWkNkwb/OUDvrC1jucXss=;
        b=wTtCV8OCeqW/gIwB2lf9uMCyYMG7BLLYEiO4vBb02TtC4hqyhqfTbQS4T6nV3NcWyy
         x8E04xwjqvq73upmsUFawL5hRB+WgjD9odmwd2S2htTEWv6VZTMHllFw3Vz0PRcjgPya
         tE3agjZedp5oSBpT+7XvlD5qLsQdMP5YqCqboqVfu4SWU/SXgrWoVHPynVXEPOBdnuzu
         vxSFFr2+5q+iIJUby68Kp5lHbLYr9vB5QCiK8SVmUH4PmVohm2wW2x5iJlLEVGihrip8
         JoKMm3lLoGC3o+MvDDrmVNgcgKqMnq7xwFM+cLV9x4QprcoKmw2XsHccQdnvV5wIZf74
         5adA==
X-Forwarded-Encrypted: i=1; AJvYcCW0xOPA8kSwFQf2hmzsImtnlgPgoSa6X+xmUlTnC7BFxM46GVhW/Ca/raiScFjjoFOGxr190/yS/+I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyaZEYQQnZtdk1FTizNDBRrRVvcESz6P40QBixzEwt6yf/yTZT1
	ZuRdj7zFnHBrWZgbxoPf9ngtNjmFEOqyyxfCME9V+P95zZW595zCo7pJXNFtdKUgTg==
X-Gm-Gg: AY/fxX5ov9jsz1EbPurwECfGCxeVIrNyVW3WSycrfh0fmJIB4ir0ZbGI1aQRiKL2mPA
	zSPPN4k7knKO/AsA5rJWLCCOXHWpXG04Zo8lvbI/Cy4knE/Uij2mAPqiPy3Ss2BndZOEL9E0RmE
	qV/qHqrQcBnjTrhsZcmZcH8/nbq+M1mSEG3+eDHSDc404fjD+e5LxDAHK3zq36SKF7LgmLSx/89
	ydrRDxfE8+Odl/bB9UgT0pSioEDs+e33ZFxzbQi82I5kVwj0mXa56ujvCPksqabyU+L5cUtScqH
	ecDAkY0zah4uFj99YiPh27UkXur26UAy+f5Y2aLo5oqwUcDdyS92nFYLqXFnT6YxetVJaCYNo3N
	ErOubc4pvmf/yBbyruuV1/9fdEqCJ0n07Zgno+MNpvxkBXU2M2g0Q5rRc7J2yN0LnCv6KgqdaCt
	+abOw0VW8HYfeq5gQ7lmrXXyc9JGqgGubvlnKt6HxA08Kd1O5YlRcDZNG6Qr99k42kjoLYJRIvr
	AM=
X-Google-Smtp-Source: AGHT+IHIM0An+Rx3y22ipPqUB0hQNSemKQ8/qOroB2rLHU3HB0Ev9wNCNLiFCKQywRk2xWhNOCsgAw==
X-Received: by 2002:a05:600c:828c:b0:479:3a87:2092 with SMTP id 5b1f17b1804b1-47d19598e86mr264051965e9.36.1766996513465;
        Mon, 29 Dec 2025 00:21:53 -0800 (PST)
Message-ID: <7d439b75-801b-406d-98e0-29c207e1c1ba@suse.com>
Date: Mon, 29 Dec 2025 09:21:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] pvh: Introduce SIF_HVM_GHCB for SEV-ES/SNP guests
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <3b6f5146287d3402a09836b7cf876d4f8dc9eee1.1766889890.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <3b6f5146287d3402a09836b7cf876d4f8dc9eee1.1766889890.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.12.2025 13:49, Teddy Astie wrote:
> Under SEV, the pagetables needs to be post-processed to add the C-bit
> (to make the mapping encrypted). The guest is expected to query the C-bit
> through CPUID. However, under SEV-ES and SEV-SNP modes, this instruction
> now triggers #VC instead. The guest would need to setup a IDT very early
> and instead use the early-GHCB protocol to emulate CPUID, which is
> complicated.

But isn't this going to be needed for plain HVM anyway?

> --- a/xen/include/public/xen.h
> +++ b/xen/include/public/xen.h
> @@ -890,6 +890,8 @@ typedef struct start_info start_info_t;
>  #define SIF_MOD_START_PFN (1<<3)  /* Is mod_start a PFN? */
>  #define SIF_VIRT_P2M_4TOOLS (1<<4) /* Do Xen tools understand a virt. mapped */
>                                     /* P->M making the 3 level tree obsolete? */
> +#define SIF_HVM_GHCB      (1<<5)   /* Domain is SEV-ES/SNP guest that requires */
> +                                   /* use of GHCB. */

Naming-wise, do we really want to tie this to AMD (and hence exclude other
vendors, or require yet another bit to be allocated later)?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 29 08:45:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Dec 2025 08:45:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193932.1512426 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1va8s2-0007CL-QX; Mon, 29 Dec 2025 08:44:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193932.1512426; Mon, 29 Dec 2025 08:44:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1va8s2-0007CE-Ns; Mon, 29 Dec 2025 08:44:54 +0000
Received: by outflank-mailman (input) for mailman id 1193932;
 Mon, 29 Dec 2025 08:44:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=PeLl=7D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1va8s1-0007C8-JM
 for xen-devel@lists.xenproject.org; Mon, 29 Dec 2025 08:44:53 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a3ae2f85-e492-11f0-9ccf-f158ae23cfc8;
 Mon, 29 Dec 2025 09:44:51 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-477a2ab455fso85012385e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Dec 2025 00:44:51 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47be3aac6d9sm241224875e9.4.2025.12.29.00.44.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Dec 2025 00:44:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a3ae2f85-e492-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1766997891; x=1767602691; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=q2LxhFklo+9vcT4liU9CbBqJDKAbnLUQqaPmkX4LGtA=;
        b=J6dymoNl4cwrZzGrb/pM+zDPMo2kh5e+XHNAiJvqXcwmLh68L22KwwlT+fj0RMu6qc
         5qDX6ls/gsRN1ZEoAThqI+jdyVK41wzmIMtHSnm5RxB95mUTvUWprzciZgbX3rXxGbOz
         fNZq4a2zJ+6UXcoFTFVPyCqua8I62Sa0c3vvMlGkfhcMQtGNTD0e6zTdq2eHg7hH/3hQ
         CE9YUkgCHIGPwzysDLRmSSt80JHc+d1MKhH1lAmki9DrQ7/Q1/2nPig6LIpxa5OF6Qnj
         QYtIcdKdq5JyYyV4vcJw3xfpkZGPZmM8I1oEhMAkE12E9ZCzrqgyOhawy8eL25XNOt+W
         hP+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1766997891; x=1767602691;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=q2LxhFklo+9vcT4liU9CbBqJDKAbnLUQqaPmkX4LGtA=;
        b=OPH1PN7gsw5ufKViAPxqiDKYTZGhmlnqJTcsvCysMHEVcOt0tKhdWsWFPvrN6zquO6
         EdshxMe2+BlEWp+cz9NJvKqCim6ztN8MmCZZweFkwUbXNwVa1nkxLziV6DI3jGsifVSc
         JoejjoSLTroi7e10VRShFqTtwh7aYs9veoB6jOhiLOC+IBcT3OnHnIW6BBtNNZjiYjN1
         Bsn+4H/74R4FgrMxwBqXbUH09bCADHRj4oYl7mWHqMXTKHFO9wxgnfJVyuh7yjhI7KvN
         rh1tZJUjHiOlXSgERIGfI/4OJGbPE/BrQsveehDmK41GbQMrccEQXub+dQlG1Syz7MNx
         TJFA==
X-Forwarded-Encrypted: i=1; AJvYcCXOQLtfrrpWlxf9+6OaYsB7g8ZIjsdvXA9IjczYrTmghCn6myXnRAfhwo+FrnLaJDc4UvcyRc0YVTE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy0jmElfBF9aUH56JVnrt7Vl1VcbtHuELblJOZUd2shft6TxdKK
	wojOjb8EKq0pCmbwRMQhmGHujWfbEHTrfGk9KN+czGiXrealuEsxafw8JsvsISD5Ug==
X-Gm-Gg: AY/fxX6qTFKoM3WXaayyI3u2sc2rMlgINGDiQo/vD+XVmQk+YCSZVcwpk5/0+pW3jlq
	j37F18Hq4SCGBwsAXr93FumzPffUGDk6ugg74e67x953Dk4rHT9H29n1rvOymarxx2OisCIjHr8
	i0aa6EgvYxAW6g8+zp+/TrZsTXl+z7j19Srnb+hJCrrl/P5K9kCwjymkXZcgOazRV/zSkF5Rc+u
	/2CiXkQfz+VjtjyGEw4FENZ8Rg2oQYB+F9V1Fc6wGeBEbC6jM4FAW50ojUAKwKK59ZDYVX6ZEze
	TEjCuoP3ICOpaj3Xnpd2jV7yOV3NqIEGehL06ddZytHsoyjWOHuTmtxbuZvqU5XlQ7Y8P7zd9kY
	PfXp10qHNkfybmf8NjW5B4Jcdh+s7cuJT1rci0KV8RtZd4bkuDjGrAaDPv5vbomkakSpgm0CDyA
	8O2H30H7qBuTV9jXO5YbTLyFVTOEOtLIffMyf7OgvQ9LOq+J1wgOTgCCz7yQMGM/rEoibkVMwSu
	U8=
X-Google-Smtp-Source: AGHT+IHCc/3ftJop2txqh4Ayd4GWmGhqEZcmyUNzHxaY80ju8dyu/DdS2je2Xi0Tlpi4yO2GlOBMiQ==
X-Received: by 2002:a05:600c:1d1d:b0:477:abea:9023 with SMTP id 5b1f17b1804b1-47d19577fb8mr336159555e9.9.1766997890646;
        Mon, 29 Dec 2025 00:44:50 -0800 (PST)
Message-ID: <6ba614c0-740f-4c39-b81d-990a1d0add0a@suse.com>
Date: Mon, 29 Dec 2025 09:44:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] xen/mm: move adjustment of claimed pages counters
 on allocation
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Roger Pau Monne <roger.pau@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251224194035.60173-1-roger.pau@citrix.com>
 <20251224194035.60173-2-roger.pau@citrix.com>
 <bf6a97ed-2daf-4057-a283-cfe820954c71@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <bf6a97ed-2daf-4057-a283-cfe820954c71@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.12.2025 23:31, Andrew Cooper wrote:
> On 24/12/2025 7:40 pm, Roger Pau Monne wrote:
>> The current logic splits the update of the amount of available memory in
>> the system (total_avail_pages) and pending claims into two separately
>> locked regions.  This leads to a window between counters adjustments where
>> the result of total_avail_pages - outstanding_claims doesn't reflect the
>> real amount of free memory available, and can return a negative value due
>> to total_avail_pages having been updated ahead of outstanding_claims.
>>
>> Fix by adjusting outstanding_claims and d->outstanding_pages in the same
>> place where total_avail_pages is updated.  Note that accesses to
>> d->outstanding_pages is protected by the global heap_lock, just like
>> total_avail_pages or outstanding_claims.  Add a comment to the field
>> declaration, and also adjust the comment at the top of
>> domain_set_outstanding_pages() to be clearer in that regard.
>>
>> Finally, due to claims being adjusted ahead of pages having been assigned
>> to the domain, add logic to re-gain the claim in case assign_page() fails.
>> Otherwise the page is freed and the claimed amount would be lost.
>>
>> Fixes: 65c9792df600 ("mmu: Introduce XENMEM_claim_pages (subop of memory ops)")
>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>> ---
>> Changes since v1:
>>  - Regain the claim if allocated page cannot be assigned to the domain.
>>  - Adjust comments regarding d->outstanding_pages being protected by the
>>    heap_lock (instead of the d->page_alloc_lock).
> 
> This is a complicated patch, owing to the churn from adding extra
> parameters.
> 
> I've had a go splitting this patch in half.  First to adjust the
> parameters, and second the bugfix. 
> https://gitlab.com/xen-project/hardware/xen-staging/-/commits/andrew/roger-claims
> 
> I think the result is nicer to follow.  Thoughts?

Question (from the unfinished v1 thread) being whether we actually need the
restoration, given Roger's analysis of the affected failure cases.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 29 10:20:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Dec 2025 10:20:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193948.1512455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaALu-0001VK-Jq; Mon, 29 Dec 2025 10:19:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193948.1512455; Mon, 29 Dec 2025 10:19:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaALu-0001VD-HI; Mon, 29 Dec 2025 10:19:50 +0000
Received: by outflank-mailman (input) for mailman id 1193948;
 Mon, 29 Dec 2025 10:19:49 +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
 <SRS0=DabL=7D=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vaALs-0001V5-Ui
 for xen-devel@lists.xenproject.org; Mon, 29 Dec 2025 10:19:48 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e5b9909a-e49f-11f0-b15c-2bf370ae4941;
 Mon, 29 Dec 2025 11:19:47 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH4PR03MB7651.namprd03.prod.outlook.com (2603:10b6:610:244::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.14; Mon, 29 Dec
 2025 10:19:43 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9456.013; Mon, 29 Dec 2025
 10:19:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e5b9909a-e49f-11f0-b15c-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=igpOnhk1DDE0XA2Ce3dq+tpNlJWVSEiaYlyHUZT54oZqbRHLbfVNLgdqVeQsXfJuXsk4Fub56cVXf4LFg5rsXQKoGSLvrNya5eCn43mBiRZQ2gN01xNyoaWJhKqxfAZi3u3wEpg3EaU5aaER2fk2cHpEEhR7ktXo7V1phhWlM+lc57RBn8WHv48hT2yFnKnSVzNELZxUzIJWYUinT/QwKMkMiaJLSj4Espq56mSnzm95XLrM0zN6ezFwHn4NFwdRfi1sASK1t9emSN84rLxjh2dmfwQqOLqslBkZVgN6cQApVoicx7iosDobcSe3DUckfKurqL5/RDts8buHM85xxw==
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=iRflnwKw33HiN5K40h7jowoFDa0CqVfe9WwaEVyaqh8=;
 b=Hr0twQlulRK0QHPV57L2Rl5OTkqy+rQ3YnKxG+hyVanoRgwKrLeGk67rqEiC0UGWUyH+vBwD88cB3gYCt/Rrfi4zt3jJ6cG81x36h6KIyW5q3VQHpyr2MNlSQXhJpvbigJcFdzeYng/sa8k/inUWIwAY/05m6TgyTVXZLt7jJuZ9b5AOqieFQa8hTyPdf548JJkPcgwNJwqj13mprXEdLvgYxfmZy7IJTMYM0sU+I5iy9AU0LTintecnKe9MsRVusqs22H8A5LVRJCMq8YwTj2hqMNQn+Giyh0epFdcUEG/DzPoNbSz3nKRaIbL+aHdyE1kH6HlMxS+Rj65LAAY5ig==
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=iRflnwKw33HiN5K40h7jowoFDa0CqVfe9WwaEVyaqh8=;
 b=hLUFMoziEjL/iWE1O4lugbdp33Tvgbm0k6gDMGkqdvSYsSQUYkXMx/ACeI1WJGuuP33xlZ3ilOae6Bxoa7DZXQmtlN+j/VZ5cQ3xsQ6nuLMUBvcPTcd3bOchUghR8IAtn7YDiXbaGuw34058uUpoErndRKBth87JsRtIFYIqxn8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <96a84785-ae2a-4080-84ec-d1dd1ef89896@citrix.com>
Date: Mon, 29 Dec 2025 10:19:39 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 1/2] x86/cpu-policy: enable build of fuzzing harness by
 default
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <4a8f06b9-8210-487f-9dd7-e0221e2df9db@suse.com>
 <c3fcc1a5-6479-400b-b65d-35d7d7233b4a@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <c3fcc1a5-6479-400b-b65d-35d7d7233b4a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0430.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a0::34) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH4PR03MB7651:EE_
X-MS-Office365-Filtering-Correlation-Id: ce3ce37c-10fa-4395-3901-08de46c3c882
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bVl1M1dwRStoVld2UUp1a01EZTF1OXpNR2JOaFdBRHlaZENhMEdFengzSG9G?=
 =?utf-8?B?WU8rSFNLWlRlNnZWSVIwV0N1QjlvdVlIWjJnVktHYUIyclM5RkJDMEx3RFM0?=
 =?utf-8?B?QTd0MU4xTnB1Rm1KTUdZcy9wREtmays2NU9ydllUelBjalBOTTRUMlFvZWZZ?=
 =?utf-8?B?VHNDelphcTZLS1BDYlNvbWtHUU10U0k5RmFySFdmR1loSzZ5U2NxQjczdlIr?=
 =?utf-8?B?c0ZUT3NZNDJLVUV0RC9EVlVVbDl5L0dNRmtVR0tVT3RQUnJubG1QejFZY3I4?=
 =?utf-8?B?OTdxbjdodUpacEFNZ243TkZPbVRRbm1MRmJlL2ZBZHkzbGt4R3dJcDFaT1l4?=
 =?utf-8?B?ZEwwdGFLZ3RWRkJ1dzU0QUh6U1ZNYTFDTVVjTXEzTWdDZ3AvbElkSCt4cDdj?=
 =?utf-8?B?TjF5UmU2OXVhUGRLaWx2SWMveURjUzVJNEhwNmVSTDJNakl6c1hQVG5YYzRP?=
 =?utf-8?B?WXcyejdyQjNOM2FjOS9aWUpDdlRlUUZ4WHA1RlhYcm1nOGVBVGNORGVyOUNx?=
 =?utf-8?B?VzYzSDFyVzgvQ1NCSWVFbGhXS0pXM0huYXhmMGRHNDNpaGprZXBPRFlaU3NI?=
 =?utf-8?B?amsyT2kxdlo0bEsydnFpUFFYdUVVUFh5YmF3RTlpeHh2VFcycUVYYUpDcWRX?=
 =?utf-8?B?UFV0eGZBb0hEcTdQMXFHQnF0SzBhZXhZVnJUd2EzbVhCUUpiV3V4UmlzdXBV?=
 =?utf-8?B?QkF0dkF3L3RwaThTWHpBalN1TkpOVGdSVzBaSEFQellpT0ZpMy9iR29kSFlL?=
 =?utf-8?B?V3FBdDNqaEdPOTcxb2Fpbi9zdTVpY3VCUzVXNVU0ZjZlbE9Na0VkSDRCVjUy?=
 =?utf-8?B?TUFWSW5uclU3MVJvUTJYT1ZjMjUzZGZYZ1Btb2htM3JQRkNpRTB3Y2dwZDhS?=
 =?utf-8?B?OFB0R09DR0JrTGR0L0ozSEpvOCtwNmt1Z2RpK1A5Z3pOVUNkdTNQMnlQS3Z6?=
 =?utf-8?B?WFlVbG0yaGFzQUY3MUJDczE2UFIrdlFWdTZSSFRBUjBVbTZwSUxQM1hVcldz?=
 =?utf-8?B?elRPUWVKcGIxQWEvZWV0T2s4bVFYUjllc1hFcGFSY0hIUkQ1S0FrSUlQN3hn?=
 =?utf-8?B?MDhvcVpISWtkc1JuckdYVUhSTENyMmtsbjVUSWJqNjZQTEIvbjZleHV1S3lZ?=
 =?utf-8?B?UHVEMUJEdStORko4YmU1azd2eFFWb21tbDF3Tzl3aXhNbitQN3VReCt4Um0w?=
 =?utf-8?B?QXBSZGgyVEJ6eC9RUGI2a1RZU1lnMUROUkxpMjZPa3gyLzlnYUIrTHE1TStJ?=
 =?utf-8?B?ZFM4bVpxTDlNNjcwa0RhWnp0Vmg2U3djalVkRjR1ZjQ5akdrTkxnNThPY1JL?=
 =?utf-8?B?elQ5d2hrSWdQTEFaKytzUDc5R2Yyck5XZElLYjBUckZlSnREYzRtVWw2ZGZs?=
 =?utf-8?B?MjVoRmhvMVV0ZVFpajZJV0RROGh0V2d6S2g5UmNOQUo2UUJDSlBTUmxlRGJy?=
 =?utf-8?B?K1owN2R6REJhQkpuM1FTMmJSekRmOTN2TnMwL0NBRUdiYSt3T0NXTFpiMkVH?=
 =?utf-8?B?RU13ZjdMaFJvdlZnaWRvcXVGMStYZDdmWmppUEdueDJMUmljajlqUWRrdVZ1?=
 =?utf-8?B?TzV5K09ieVpNc1M4RWk1bUc5OUFSZnZjbTdTbDZpa3RRUWozcWJDVnlBYUFi?=
 =?utf-8?B?OE1aZWRQcDJkWDY4aUJNbzBUaVR1N3I5WXE0T2IrWW5DaTFzVjNCbkF3VGN0?=
 =?utf-8?B?WnJDN3VCRjVHcEVkc2VpR0duTFlHVXVsN0R3b1hqbWMyNDB0Y3ZJdm1DRWlS?=
 =?utf-8?B?OXFnTWtsVFpTY1RKWVBCeWFHdHF2L2k2dEhJS3oxTlN0RmdFTm5XaUlUdHVz?=
 =?utf-8?B?V3FzUTFrUnFVclBGSEcwZVBQV29td1JHNXcvOGhLQkY0NG9OTDAzNHRBdklL?=
 =?utf-8?B?ZEVVNGdPbkYyUS9sYVJROXBiRk80STJTMWFQNE42U05DZkJRQzhPYjF3SVBM?=
 =?utf-8?Q?4qTIRFvDN99MNIQrBja1wtMY8pl0s3Ax?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NU5taExBY1p2Y0RLVUY1K3kybmtuazNjT2NHOWFLTXNnbmdScGhpMDBIUS9R?=
 =?utf-8?B?UHFrcU5UaTViSDZHeFhwbEpNOGhtM0hVdW12THd6NjBOREdKRnBGNTNQQWZ4?=
 =?utf-8?B?WnhXWnB2czJ5WXpoTmwrdDFORGMzemQrZTdHd0gybmc5eGFnOURMRWtPNkZv?=
 =?utf-8?B?VnovcVd3ai9tZTh2SmgyakY1ODNIaXE3b3FhZ2hESlgzeGo1Qy9pWkJGSVA5?=
 =?utf-8?B?bmtXNVFmSENZb2pka0F5bUZNSjgzMFRMQXU2aEhHQWZKYTBpem9xSEV6TmtY?=
 =?utf-8?B?citqTUVPMkNDZmNOQzN6ZVc3NjFiRDlzUEdCMFFLRTcxemlKNVFDTlV4c3or?=
 =?utf-8?B?aU1YL3ljL1ZSUHlHUWdZbHJXeHQ4QWJhV3VSZjc2N0VuQXJBTFE5Ni9oY3pW?=
 =?utf-8?B?Ri9zMXEybTNqb3M4UEEyblNheUFUdDhNVzI0ZHd5OUNzeHN4c255ZmJ3cVQ0?=
 =?utf-8?B?alRscnBNZk1ZRC90bml3Y2c3aWVYYmgrVVZ0b1YvTDVTQ0w1VDRoa0tzTStF?=
 =?utf-8?B?Y2dvK21XNWRuT3RCWnVvb3hraEVEaWVQOFpIQUFCQXUzY1F3Z2hSSGw2S3dR?=
 =?utf-8?B?Y2p3WW5oYjZEQUlzeUhENUdCbnRTRkMyR0FsYjEya3VyL2JGb0tlS04yQ2l2?=
 =?utf-8?B?bEVaN1c3STdIQ1U5aC80d1NjZ2NSS050M0xCeTE4eExKb2RhQnNaOWkwcTFY?=
 =?utf-8?B?aDJFamdlK1ZYcU1QaEJEY3JHdjNYNEdiS2tiVWU5M3Rqdy96TmRFenB4ZUlo?=
 =?utf-8?B?b2VqcDBlcjRKcFk0SC9DNzBFdDdFeW1YaHNHZ2RqYTM0dVNOeHRkL2E1VUVk?=
 =?utf-8?B?b3Z2SkEzYzlmK242WnJWMHE3cGxFMGN3aFRqekxkdjREeFNaTnhZNjNKb0Ix?=
 =?utf-8?B?bEdYSlIwd1JBalBEaDU3SmxBS0VZL3NZUzBWSDl1RHZXYm5xQnBVUngyNndQ?=
 =?utf-8?B?MjREekI5dko2WXZrSGtkdFhxaTRtZE14Zy80T3YvZUVMeHYvY0Q1RlhLT1Ey?=
 =?utf-8?B?bk9DZjRISTYxN3NqWDQwTDl5Wk9NRWI1bzFCVGZCYnJEQ2ZXNGFOMjlmVzA4?=
 =?utf-8?B?Zm1VeGhXMHVRcmo3OGxsU3psRW9xUC80UjVkUkl1TkVYK0h3UEc3U0RXNmN0?=
 =?utf-8?B?a09JUDltSnFmOHRrTm1pc1pFcXRGbk9qMlBlWmZhUE9tdWdpVHVKdDVmQ3hl?=
 =?utf-8?B?QXBYQUVXYkZKYzlaVTRDMlJaa2VtUWJ6NUpCcHNWSSt5S0NWZlVVSHdhNzIv?=
 =?utf-8?B?WXZseUc0TWNxT3lTcXdmanVZWXk3YTRqVVNuUzhTUnI1RnkrUWFyMytQZ1RY?=
 =?utf-8?B?OUhreE9ESElycjR5dUFGN25hV3hCWFBOeS91ZXpxcm9Pbk44dkM4OTNudnlZ?=
 =?utf-8?B?cFc4NVd6TXNQVHZ0bklKTGFwMWlXMCs1cCtKb0xBRXgyS1pQMXZmSTUzZ0du?=
 =?utf-8?B?THRNVnh3MjRDcDF1dS9udTA3clI4RjE2Y1l2ejVKMGIyRmVwck12NFdnY094?=
 =?utf-8?B?NlFtOHYwNTVqMTN0Nm9IcTcyS3dNU2E3RkVjRjhiN3hpVlJYbFFwREIrV2dQ?=
 =?utf-8?B?Z1lablJ1bEMvN0FUY21NVDZiV2tiL2dCZUZxaHlSQW1aL1VBTHlrM3dwMXB2?=
 =?utf-8?B?cHN3RzNyaCtobWFyOVBrdzd2SWhhTzdVbXlEejcxQ3g0YmFJcGVEVmJVNWlh?=
 =?utf-8?B?VzVMMGtxbDBwd3pYalBjdUZnS1VtUkRUanBhdEdHYlRaVytIZGR1R3YzMys1?=
 =?utf-8?B?L2cxc0VEeTNIZ0g5TldndHN4TWxIZ2tBYTBUWk54a2VaK0lwNHZhZTFtQVZa?=
 =?utf-8?B?cG1BbVdFcE01ZjNLNC9UWENKVlJKVlZkT2xsaWpTTXJxS3Vab3NYREtaR0JM?=
 =?utf-8?B?M3FnMVp0NUZtZytRdTJ6dzdRVGVMMWlVTm9iNXovYUk1SG9wUVlXZ1BRY1Vr?=
 =?utf-8?B?N2RnS2dYaytKenByVE1FTU9DVk80dUc1cTZPQngzejBkNFd1cHdYbnJKZVJk?=
 =?utf-8?B?dVJWcE4zZGMwSjVyMUJtZ0h2ZkUwa2p3bHNnUEpnSlpLeS9CN2pTU0lEa0dZ?=
 =?utf-8?B?aWJNZTVsQ3FObWRQdmpVNkpZOTU3WEd2bHA3UitncTFrQW1qdkMxS2VEVG5N?=
 =?utf-8?B?ZDhDN214a3F6STBLQ25pZGhzNTIxc0F1TmprSFdsNEtWN0J4SDFMRzY3dVdT?=
 =?utf-8?B?ZkxPRllabHNZcTU1Wm1qdEJpSnNNZHJxTXhCcUlMTktURXdFRmFSU29KTXc3?=
 =?utf-8?B?RHc1VkRKdk5SdTlVYVgxM3dYR2V2QTIzaDkzcEp2Zk95WmFNNWtmUFR1ancz?=
 =?utf-8?B?NEVxS3RyaUxDUGc4Q0JDYW1Ob3RPU0R2SlBPN3ZONWlIM3lFSFlOUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ce3ce37c-10fa-4395-3901-08de46c3c882
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Dec 2025 10:19:43.1424
 (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: 7eVE3t0TYAqGpdfTYBxDzDnxHtH95NF92yopgDLm1P0H6ozOJ5vq2rTFN1c0LoM1BFQ63TIr1AdqVAAvm+IAFp+niFCRXpfUq+ST1nAc48I=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR03MB7651

On 22/12/2025 4:53 pm, Jan Beulich wrote:
> ... on x86, to make sure its bit-rotting can be limited at least a little.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>
> --- a/tools/fuzz/Makefile
> +++ b/tools/fuzz/Makefile
> @@ -4,6 +4,7 @@ include $(XEN_ROOT)/tools/Rules.mk
>  SUBDIRS-y :=
>  SUBDIRS-y += libelf
>  SUBDIRS-y += x86_instruction_emulator

Blank line here please.  Or it's going to get messy with extra additions.

Otherwise, Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

> +SUBDIRS-$(CONFIG_X86_64) += cpu-policy
>  
>  .PHONY: all clean distclean install uninstall
>  all clean distclean install uninstall: %: subdirs-%
>



From xen-devel-bounces@lists.xenproject.org Mon Dec 29 10:50:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Dec 2025 10:50:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193962.1512465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaApj-0006Pj-TN; Mon, 29 Dec 2025 10:50:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193962.1512465; Mon, 29 Dec 2025 10:50:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaApj-0006Pc-Qf; Mon, 29 Dec 2025 10:50:39 +0000
Received: by outflank-mailman (input) for mailman id 1193962;
 Mon, 29 Dec 2025 10:50:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rHFx=7D=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vaApi-0006PW-0z
 for xen-devel@lists.xenproject.org; Mon, 29 Dec 2025 10:50:38 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 33d20d45-e4a4-11f0-9ccf-f158ae23cfc8;
 Mon, 29 Dec 2025 11:50:35 +0100 (CET)
Received: from CH0P221CA0042.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:11d::26)
 by PH7PR12MB5595.namprd12.prod.outlook.com (2603:10b6:510:135::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.14; Mon, 29 Dec
 2025 10:50:31 +0000
Received: from DS3PEPF0000C37D.namprd04.prod.outlook.com
 (2603:10b6:610:11d:cafe::40) by CH0P221CA0042.outlook.office365.com
 (2603:10b6:610:11d::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9456.14 via Frontend Transport; Mon,
 29 Dec 2025 10:50:26 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 DS3PEPF0000C37D.mail.protection.outlook.com (10.167.23.7) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9478.4 via Frontend Transport; Mon, 29 Dec 2025 10:50:30 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 29 Dec
 2025 04:50:30 -0600
Received: from [10.252.147.171] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 29 Dec 2025 02:50:28 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 33d20d45-e4a4-11f0-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rLs/j8NvX8Ta+GX+gVbH4gAgRvmIl0YpDm/XwDWPbsF0OO6hbxVl/fOOMc3nq8EL/+Ev4DIh2Y/Pb4kjOVeDdOVJ4ARiKkhCSfIfmaWo/C5g5FkDe05wk0sgo4t4dOXdPo+ISYXcIHVeopJZHl/vJDPWMQL8qnDckp0z6MUDBfVXPLN0bibL+rwc8tMfm9YIOLTCDdXgwuoQxm8MDRzQWC+1+HmB3yLZuUUkke71Asnkmsi5AXcCJRWxKpJgxtnX1Aiz1VT/MqjpROb6UH+5nBrUiRC/hBcI4dT6bihuDBdbHjOl+iXrLypioIZV1PgnvSjnQYsWR8N3858BfdygUQ==
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=SxNag1C1nXyceWhu4QJM6GmgLPpj66DrvEE6xLUTqYo=;
 b=Ab0w7nyB3/T4hMd3K4dE0mNVrXVDCW1q59olc+sWShpKphot60GPutJ8wgUwUn0IxPaCQYlONbed21FAEDmYBh4Dupv7vlV42aoiELFgrFWkufkgT6mZh1jJX8Da7msnUXT20qo99/n3GDrRkIvyo0XMZ2x410Asn7yZvip7XUaDwxxzzWDGz/dp4BBCL8kzvPxL50zswKv0Jb0lmVTnWyJOr3ABt2leCXN4VXxd6cE8qTYuMndFrZBkV4AoXkz0FDA4LFrtbFl2T2sUioL5exVcxj7FBDY3Dkvrv368iEgbc7eqlwEP6w3XFuEWxAJ+gIN/BcL8ZLyp+Sylrkc/Fg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SxNag1C1nXyceWhu4QJM6GmgLPpj66DrvEE6xLUTqYo=;
 b=nQv/KB9suJV3a0a1WfN6WAyhb5LdNuiviiVdnHae2f47saifVS1iuEL0qLtVwvOWleo6VIcHFVwFOzk0WAlznUW4ME/KuvDbGUYrjUPkrU5J3cR2K3eSt9vjDnsfB73PA4mi+DvIMm1cyFvK7Omltju3AKCWO3mgSzmboX5uguY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <4c09cc87-307e-440d-9a1d-7ef2313ae466@amd.com>
Date: Mon, 29 Dec 2025 11:50:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/4] xen/arm: vcpu_vgic_free() updates
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>
References: <cover.1766504313.git.oleksii.kurochko@gmail.com>
 <ca86bf36375d19555961225f214b9d23557b0d3a.1766504313.git.oleksii.kurochko@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <ca86bf36375d19555961225f214b9d23557b0d3a.1766504313.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF0000C37D:EE_|PH7PR12MB5595:EE_
X-MS-Office365-Filtering-Correlation-Id: 10ffc10f-8e3f-4664-94ba-08de46c815ea
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?L2NudVJReit6MWpTbmtuM2JlZmVmTHIwUFltRldzZ2tzK3RodG8yMy85TTNE?=
 =?utf-8?B?TmdLd2lsQmpRQUhONWg4T0kwWTRRS0RFOUZuZS81MmIrVW9JVkV6TlRSL0xJ?=
 =?utf-8?B?bzNZNm1nSkRnVWE5R2lSKzVzRU9MeElkUWF3REFlNk5ML0k5U1NoYVVGU29m?=
 =?utf-8?B?cWZkV1pNaVJLb2JFVHpadENGbFQ0eTdMcVhsNHNuazNrNy9LVzdmY0NaeFFU?=
 =?utf-8?B?S1RGelF0TUpRTmZxUllGcGV0UmVsRmhpWEdaSUpZc2hyOWNWQkFmUFkrQUpr?=
 =?utf-8?B?bGJkZE1NU0xYVnh6SUdBQnZEd1Y1ZGZ6Y1Fxa3RtTCtSMnNJM3oxTkJkbUtF?=
 =?utf-8?B?VVF4SGxUQkVSQUd6dU9vaEozdVVsZ2xxRThtZ2l0U3FNeCtGWW9BaWlydHhn?=
 =?utf-8?B?T3NaVjRqbU13MU5jaHNUNngwSjVyaGFqL0FuMW95MWF6V1hqdS9XelZtS1RD?=
 =?utf-8?B?VVdJTGo5RDlxWWhicTJHOUd6Z2dWenlOdzBrSkJPcDJHblBSY2RaOG0rZG9o?=
 =?utf-8?B?VUJVY1dkNFpEbmhVWUxsSTZVR0NOWVNtL0s2MGdpUFFabFRQMENUZ2V5bjFz?=
 =?utf-8?B?clNtUHNWWVRXV2V5bzc3dHpmZkdLTkcvaStNTnBkNTdUQmFzc0c5dURYMElB?=
 =?utf-8?B?YmNtaTlrZUpDS3hGQW1yTHJZRlB0Y1VTdEthT0g1S2JEV3ZnZUlFMXVDMWNN?=
 =?utf-8?B?dElwZjdwVFppY2pPNkg3OXVOQzIvekFIdng0a3kyUWNEUVZNVGpMWkR2NGx2?=
 =?utf-8?B?dU5TdTIrQ0lLc2crbWtYa0dQWGxwUEdXUU9SUmhGc25OelZoVWxiVG03Sy9G?=
 =?utf-8?B?NzhhS0grQUVzUW80eGN5eG9vVjVSbnV1aW5Fd0NvOTF6d0VtMmorQVY4UVV5?=
 =?utf-8?B?REo3dGZGUVlwUGdkSHJZeVJGR280L0xyd1lueVBoQW1JZ0lZcnR2bEk0N0Q1?=
 =?utf-8?B?THViK3l6bXo5T2JEdUhrSjM0N2Y1K1UxZk1sVXVPM1BieGZ1RWN4N1pJVlNL?=
 =?utf-8?B?cDJtV0tHajJXSEMrbnQ5K3ZEQWlGYitqUXJaMzhvMUVuL2o4T3F0N1h3NUxJ?=
 =?utf-8?B?VUNteUFqSHlneUFVMEdQN0FLK2NEbXo2Rk4wdVlLNkJVZVRtWUpMNkZLcTB6?=
 =?utf-8?B?cGVHTVFEMUdLRDlPK3R2YW54aDlQdXREUHdGU202bEtpcnBFc3lrSTFNdDVN?=
 =?utf-8?B?eElLQmd4K2NUa1MxZ2xPamJxUytJYUZWeitGK3BRNGVaQVZGNWNsSkJxWGc4?=
 =?utf-8?B?Si85VXRDdk9EV1RiZllvMjRiUXVJOTdNUVB3aC9wMGtJRUhoS1c5Tm5FZksy?=
 =?utf-8?B?Tk1jQmVnVHhRWDllTW9qZUlkTVFUQ2hYN0JzbnR3d2dyd2N6Zk1MUzJ2Ulkr?=
 =?utf-8?B?NFRhWS8xb2pUWXE2M3RZM3liWE5TSEcvaVRLQWR6VVE2azMxd2xXeUhNMDdW?=
 =?utf-8?B?V0lRdkQzODJXbW8wR2JIU3V1R3paUzI4MlNoQ010TnFSM3pCRE4rSUU4bTNt?=
 =?utf-8?B?M1JKZ1AxbXl5blQrNy9ibHBXVFVxL296N2FJQUxqSzkvSkhkd1hzQ1B6ZnpQ?=
 =?utf-8?B?WXR4RWpCaUZVUzlSLzRBUDlyNyt6QjFQa3RTZnRMNW9mU2hmMEoybm9GNE5h?=
 =?utf-8?B?NENuM1VBVTBKVGxiaXFnQzUwVU1DTE1kN3k0Y1M0cnN2STNiYmpBcWFEVHNw?=
 =?utf-8?B?SkVrb28yaDFaS203Ky83WkFvT1pKdzFtc2pzTS84SjhxajJmVzFnS2o2WFlW?=
 =?utf-8?B?OHhsaGhRQVF4dVREV3lYaldUQTd3ZE5ZbXFwNEFNYjdCbHV5cm5ibUJoVGlU?=
 =?utf-8?B?RzVMM2NlQWNJRVpCTEp3VzlGaFh1V3JhRngxSXA4WkNZNzY5eXlsbitPK3lX?=
 =?utf-8?B?OWZhTG83SStlaXZ1cndGV3NWc3lZWmRhY1JlZExJdHVqcjQzMnNNZEIyeDFW?=
 =?utf-8?B?cXp0UTRKQjdNeUQ5VXJJZDM0VmFHUjk4a2RPS0lWbVQ5dmNJQnFRdkxKTjha?=
 =?utf-8?B?WGx1SjNQVUxhL0g3L0pkdXNKb0Zydzcwak9hUWtYd1o5aVVuMVdmMHJQWTdE?=
 =?utf-8?B?ZkZ0MUpGRWR3Z2lweGtLOFBuQW44N3M1em5Ia0RydTROT1YzL0l2RjFCN2NX?=
 =?utf-8?Q?1s8Q=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Dec 2025 10:50:30.7476
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 10ffc10f-8e3f-4664-94ba-08de46c815ea
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF0000C37D.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5595



On 23/12/2025 18:01, Oleksii Kurochko wrote:
> Use XFREE() instead of xfree() so that vcpu_vgic_free() can be idempotent.
> With XFREE(), vgic_vcpu->private_irqs is set to NULL, so calling
> vcpu_vgic_free() a second time is not an issue.
Usually it would be beneficial to back such statement with an example of a
situation where this is or will be the issue.

> 
> Update the prototype of vcpu_vgic_free() to return void to satisfy MISRA
> Rule 17.7, since the return value of vcpu_vgic_free() is not used by any
> callers.
> 
> Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Dec 29 11:08:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Dec 2025 11:08:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193972.1512477 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaB7F-0008DR-DU; Mon, 29 Dec 2025 11:08:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193972.1512477; Mon, 29 Dec 2025 11:08:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaB7F-0008DK-90; Mon, 29 Dec 2025 11:08:45 +0000
Received: by outflank-mailman (input) for mailman id 1193972;
 Mon, 29 Dec 2025 11:08:44 +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
 <SRS0=rHFx=7D=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vaB7E-0008DE-7t
 for xen-devel@lists.xenproject.org; Mon, 29 Dec 2025 11:08:44 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bafe3507-e4a6-11f0-b15c-2bf370ae4941;
 Mon, 29 Dec 2025 12:08:41 +0100 (CET)
Received: from PH0PR07CA0034.namprd07.prod.outlook.com (2603:10b6:510:e::9) by
 PH0PR12MB7012.namprd12.prod.outlook.com (2603:10b6:510:21c::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.14; Mon, 29 Dec
 2025 11:08:37 +0000
Received: from CY4PEPF0000E9CF.namprd03.prod.outlook.com
 (2603:10b6:510:e:cafe::aa) by PH0PR07CA0034.outlook.office365.com
 (2603:10b6:510:e::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9456.14 via Frontend Transport; Mon,
 29 Dec 2025 11:08:36 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CY4PEPF0000E9CF.mail.protection.outlook.com (10.167.241.134) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9478.4 via Frontend Transport; Mon, 29 Dec 2025 11:08:36 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 29 Dec
 2025 05:08:36 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 29 Dec
 2025 03:08:36 -0800
Received: from [10.252.147.171] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 29 Dec 2025 03:08:35 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bafe3507-e4a6-11f0-b15c-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OqpJGpXr2LKuONK2CmzCNgcyep2h+nG5leVlScEt9m8K2UlP+uvOaFVo5YO3fMIRr2iwPa7jI7TvCy79qih5g039OH0Sks1JrOkRETY6QdD8d2X6LXBNV5lA6wmCSQ/6vls3C7sWd3NFAn5mx404JEEs5OGTRPN9NwpQ8aUy07GnV0GpswpW7hmsgM8Ik/a78tLjdVonYPcSnQnnPISIZMwKskE31hpOgbC00Tqx/15tMRTzNcW1/Q6guxI99wtpgx5jHY30jC4eif79OVqDt88sVGyzU/RgRbKDLrMHQfMQTn3u1HfT0X4y3pl1oD5nHLkna5jWAhBwrMfOfOsm2w==
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=tSTLIE8bHMgEiSHrlpMrwwNtA5SbWqRVudIAsXzGG/Y=;
 b=R99VSZMFc5baZAawQwnoqMaIlV4j5nTUIZoGZDR4M07OXdhqUL4UTXF5D5/5SJoaMu1XZhR9tLBh7qxvWEy3LLvlQIKAv/PI6iELrg6gdzYYEN6LwUIONxfNwERRorhwGZDeN67zjFHUIYxGDHfjzFnCkSxDTVQ9f88XS5mkJDuovzpyPw1X5HImol6jolAH/y67FE48J6dV3gYntnk1eLiplXau7u/ueE2NEOXKFQSd7x6SOD1BHpXt5/YEnQng6Iy44ra8MajKEc23FL+Tdt19o2PEfv/oIOZ8zV2zBVaU9699sC6bfYvXymndi3chP7NfD86aLnWVaVhrLHOarg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tSTLIE8bHMgEiSHrlpMrwwNtA5SbWqRVudIAsXzGG/Y=;
 b=S7z7O5Hq7c6YIFZhxmxY7PgZGEw5ioSexwJkwyVoSo0LY7GG0DavdrpXPR0sxenQaq8A1BDlnY5bdQP7Fznzf4IkQTbPiPD4ZCccoNDI0ccIpVo6d64abndUTvLw4zTUndOx9f54J1ldABvSs8gOMuuIt91VD2dCsF8AM5mDRQ0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <9f2c9e4a-64e3-4e5e-b5da-976ab433f6cd@amd.com>
Date: Mon, 29 Dec 2025 12:08:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/4] xen/arm: optimize the size of struct vcpu
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>
References: <cover.1766504313.git.oleksii.kurochko@gmail.com>
 <0756ee97dd47f6acdefe593694b743eb6bfefacb.1766504313.git.oleksii.kurochko@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <0756ee97dd47f6acdefe593694b743eb6bfefacb.1766504313.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9CF:EE_|PH0PR12MB7012:EE_
X-MS-Office365-Filtering-Correlation-Id: 49299ae5-6540-4d9d-5130-08de46ca9d2d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WXB2dG5oR1JPdWszR2YrMHlXM3M4VWNyeTJ1YStDdWZmeEloQUNjdEVpZ08v?=
 =?utf-8?B?ZDFkSDB4WmZ6Z09OcGpLZzNJc2FqaU1SK0JkQmlKYTl2dEhhQTZjeDRlei9p?=
 =?utf-8?B?OXE0QXRnRGtEa29GL2k4WElVWVhTV252UFBIWVA2R0ZFVHBzeGE0em5Zc1Vq?=
 =?utf-8?B?QjRyV3ZsVENIdWZhckdGbStGTjRmU0tXWWVqUVF0UTd5RXE3QTQzOVZZREtI?=
 =?utf-8?B?VU1QN1dPQzJUdklNaDBGTSs3dlN0VGZhMXVNSFIxYXVmekRLT0Y3dDRDWEwz?=
 =?utf-8?B?emI5RkRRcnhYcE1SU1BSNUlsVmdicWw2Rk5rbkovMS9NTjNvU0hLRWhLbno0?=
 =?utf-8?B?aHdPdVRXUjZITGRacnp3Rk13ckc2R1hiQm13Z3U1NHIvY3k0dzUzenpnbFJl?=
 =?utf-8?B?OGhhZVp4NGNvWXZzZkJteHhGMmZnNUdVNGh4K2xiSkhsRlpINnkwSmk4M1Nx?=
 =?utf-8?B?TVdUU2NkbHZPUmphaVVuSVgrdkpod3FHMWczNzlwbytnbWQxUDk0dXJVMVdL?=
 =?utf-8?B?RVI3a1IvRVdCdVFBcENrSGtsQk01YkYyTTNuOHNKUlQ0UVBZNzh1Mjl3S0Vt?=
 =?utf-8?B?MnZuSDJKR3NJVkp1RXB0L0dBZDJTRGVXZkFXYU1EZ0tJWHFMVCt0SngyNXBJ?=
 =?utf-8?B?SFNqcDlONU0zT1FZazBsVzB2VnVjR1JOYnFMbk9wNy9TYXhQbDNCU3RnaVJn?=
 =?utf-8?B?a1kyUFRFKzk2ZElEZVhMMzJpK0pkMUhZOWM0WEdUaDJacmc2dmozbUJBNjdk?=
 =?utf-8?B?SWUyWmxNb2pFTFk4UGl5ekxpZVRWU0E5WlhiUUE1ZkRPWFh5SjZKMk5NMlFs?=
 =?utf-8?B?amFkMTJkSjVmbm53Z3RYQ2dZSjY0elpkaVlTYjk1c252UnlXTkxLV213RFBQ?=
 =?utf-8?B?c3Njd1Avc2x4V0pEQUtCZHNxV2cwUVo2UllkbFIrckUyME5UYkdJZ3VZSEJU?=
 =?utf-8?B?RWZuNGV0blFTOFFleG9CYll2SnZQSTZHTy85MXNNTXMyZzNuRE9SdS84OVhE?=
 =?utf-8?B?YkhWUTJ0YnhPWkh2RWEyZko5ZDQ4WDlsdmUyR3cyZXkvWFJlcGIzbWdXcXpC?=
 =?utf-8?B?ckw5SFE4T3pWY09WcE5FMU1vYzRVbHNvQWJLUnVPR2liQ2dpM2ZFV1B5eWZK?=
 =?utf-8?B?QnAxSlZjTm9SR0lTaGFjbVRzY0dveGlGV3J1enRZRkVraS96aHpRUFc2SGVi?=
 =?utf-8?B?WDcrbXlVSFBOTFlUUFBMVEZ1WU5VVXFhVE82VEFUb1VwSGZlaUw5dzdmVEJP?=
 =?utf-8?B?VWZkZmZmVUxlVG9xaFdSYjE2YitHYjlhVWZTTlczTVpuNUNHZGRqbzJsc1NT?=
 =?utf-8?B?VjErcTdBeXZRZlBQVHVkaWwrd2dBOHI1UHcvUGI2Qk15c0xlS1d3MGNDaHBW?=
 =?utf-8?B?VzNiWGUwZVY5NXNuM0w2eEJHUDNxSEkrQ2E3MFZDbCt4bVVTdHNyVkc2SHYx?=
 =?utf-8?B?S1d1b3BNL3dWb3NqNE5Wc2NhSEYzdUMxNFQ3WmZMcXliY1ozMjNtekZ6aEcv?=
 =?utf-8?B?VFhJdTRmdGhMcmxod3dvckJiNnRxQ0REK1ZIVXMzbzY5QTVYaENQMUpxSFd0?=
 =?utf-8?B?eCtDVXFMdHBLK0pjMW96UGZTeVIvaU5nOFUrNzhSejZKZDhlWkFlK1Y4NFdv?=
 =?utf-8?B?RUhCekFqWTFacFhmRk5OS2F5d0Y5eUVWbGtTdGlSM2hoTjJoeGlkSEtsNUlU?=
 =?utf-8?B?RG9oUWhHek9UZDI5MmI0MlRreW5UR01xQmpaL01PSTVkdEs0a2c4N0l3WXRB?=
 =?utf-8?B?eENxUVIzL2VNWWVqZjlHNlhFZXNwT3RmSkh0Q2lzV1ZYSW53S3M0UUJtck10?=
 =?utf-8?B?eXJkdUQxSTN1ZHJTOGFLaDNlRFJCenJJQUYwVTYvSDRyUCtuUkhpbS9CWVhT?=
 =?utf-8?B?czQ5Y0lwaVIrZGpZSkkza09ZVXFkTHVMT01KUHZEVTV4VmpNd1dQTlo5TjZr?=
 =?utf-8?B?NU5KM01BSDlSZzQ2b0l1eEpvSDR0NzBIbUZyTEpVMlNYOElyL1VQMGlwMnl3?=
 =?utf-8?B?RWtYWElHRno5Mmh1U0VEaU9NUUJXaUdTeTdHa0thL0FtMHd1MkNSMlh6OEFG?=
 =?utf-8?B?eEEwZlBJMVYwNmtRRXI4QlNCQ2M4Z25KK3doT2pHUHIrVXMzSi9rOHJvbDI5?=
 =?utf-8?Q?fbdM=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Dec 2025 11:08:36.6663
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 49299ae5-6540-4d9d-5130-08de46ca9d2d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9CF.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7012



On 23/12/2025 18:01, Oleksii Kurochko wrote:
> When CONFIG_NEW_VGIC=y and CONFIG_ARM_64=y, the size of struct vcpu
> exceeds one page, which requires allocating two pages and led to the
> introduction of MAX_PAGES_PER_VCPU.
> 
> To remove the need for MAX_PAGES_PER_VCPU in a follow-up patch, the vgic
> member of NEW_VGIC's struct vgic_vcpu member private_irq is changed to a
s/vgic_vcpu/vgic_cpu/
s/private_irq/private_irqs/

> pointer to struct vgic_irq.
> As a result, the size of struct vcpu for Arm64 is reduced to 2176 bytes,
> compared to 3840 bytes (without these changes and with CONFIG_ARM_64=y)
> and 4736 bytes (without these changes and with both CONFIG_ARM_64=y and
> CONFIG_NEW_VGIC=y).
You only touch new vGIC, so there should be no size reduction without it but the
paragraph reads as if the change affected both old and new vGIC. Also I would
mention that probably you provided the numbers based on a defconfig target.

> 
> Since the private_irqs member is now a pointer, vcpu_vgic_init() and
> vcpu_vgic_free() are updated to allocate and free private_irqs instance.
> 
> Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Other than that:
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Dec 29 11:10:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Dec 2025 11:10:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193981.1512485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaB8s-0001E6-MS; Mon, 29 Dec 2025 11:10:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193981.1512485; Mon, 29 Dec 2025 11:10:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaB8s-0001Dz-Jj; Mon, 29 Dec 2025 11:10:26 +0000
Received: by outflank-mailman (input) for mailman id 1193981;
 Mon, 29 Dec 2025 11:10:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rHFx=7D=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vaB8r-0001Dr-7v
 for xen-devel@lists.xenproject.org; Mon, 29 Dec 2025 11:10:25 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f799d02f-e4a6-11f0-9ccf-f158ae23cfc8;
 Mon, 29 Dec 2025 12:10:22 +0100 (CET)
Received: from PH8P220CA0004.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:345::24)
 by SA1PR12MB8988.namprd12.prod.outlook.com (2603:10b6:806:38e::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.14; Mon, 29 Dec
 2025 11:10:18 +0000
Received: from SN1PEPF00036F3E.namprd05.prod.outlook.com
 (2603:10b6:510:345:cafe::62) by PH8P220CA0004.outlook.office365.com
 (2603:10b6:510:345::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9456.14 via Frontend Transport; Mon,
 29 Dec 2025 11:10:12 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SN1PEPF00036F3E.mail.protection.outlook.com (10.167.248.22) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9478.4 via Frontend Transport; Mon, 29 Dec 2025 11:10:17 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Mon, 29 Dec
 2025 05:10:17 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 29 Dec
 2025 05:10:17 -0600
Received: from [10.252.147.171] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 29 Dec 2025 03:10:15 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f799d02f-e4a6-11f0-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NeQubH514eXMgZt47R8/lqtdJRqhA2Wfdl/lwQrnBcedYwo+l1o84Xcv2GXLDC1kZegkVEvEqBJxOAqUnUTLNWcK4gJ/JHMVzSYSYva7dhRkP6uIw6KQjwQUt+Xkp8kWr70P0W0gM/p1wNxsO1ExWWPJlKfTfpxMl4pGfsP8KzduGRg86JGAOVoUKLJefCImOPwVqBzSkQuKllNyHTStYhhx2aaFrRugPGViHeKDUQ3/YrYVV1B8ohgGuCKUVDkfOqdZSffHmO+a+q3Yr7RBFgE9rimS70e0FpY7EpV7ijigPU8PifrO6zu3Uh7YyNI9rFRvl0rz4iL+LaoXe2kN9w==
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=J0cV5rV+xQPEWNXLpe0WxtftRePmtn+2wnrRtPWXJ0w=;
 b=noKctoP4dbyW0qMJmTSdttxyS+iK7oYY8NyFy/q5MU8xbCyD1WfU6FYIOG8GF6LMTNZT7swyyBMl5jWGMwmLA1d/VIstDYXbGpAHyAxJeiiwVdHN3V8x8xANFYrInrft57J+hZ72KPaKXgbfRNkGn9229w2k3ZI7Coc9xs+UYJofB4tvuHt3qxq0lQifSXQuvSXk5lpU3ooeWOyQgIXJIAaoaJZW4eGXsrij435O+LUi/VK7EevOflhzQj4LrarwfNWRpmD/7SdURlvtOjPitpax0G1S5QV7JRqihxmtGLJ3TFMm6ADFZNySu81zR5D0baYe+8gIjb4MT/zIs+ecvg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=J0cV5rV+xQPEWNXLpe0WxtftRePmtn+2wnrRtPWXJ0w=;
 b=ZLHjVZc/P5bchwWWEJKLJH8srXLxKPv333wFpSdSzj4JbcRnoJ74NX9T/n91XccY9d3GsJtDmrIyM8VVcfshx721/rmjoICWWp3DxZLBNsmpeOEU49hY6uYcC4mK7SBtcOPrI07dwkGtm9rnesZIdZPJKjyj5TahsECGtV4p4qI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <9f343323-2743-4bd6-82de-afe3b48adb70@amd.com>
Date: Mon, 29 Dec 2025 12:10:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/4] xen/arm: optimize the size of struct vcpu
From: "Orzel, Michal" <michal.orzel@amd.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>
References: <cover.1766504313.git.oleksii.kurochko@gmail.com>
 <0756ee97dd47f6acdefe593694b743eb6bfefacb.1766504313.git.oleksii.kurochko@gmail.com>
 <9f2c9e4a-64e3-4e5e-b5da-976ab433f6cd@amd.com>
Content-Language: en-US
In-Reply-To: <9f2c9e4a-64e3-4e5e-b5da-976ab433f6cd@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F3E:EE_|SA1PR12MB8988:EE_
X-MS-Office365-Filtering-Correlation-Id: a28739f6-0f1b-4ecc-d38a-08de46cad976
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?REdNOS8xYlhtZytzUGdvdEJDbEVYdGh6akcxMGg2OElxc2hpL0Q5QkZBS3VP?=
 =?utf-8?B?VytEYjBqSUFzOXBxNGlCeEZ0QUx2S3hYb3FLWnltakViMStxeW1KOER5Yk11?=
 =?utf-8?B?YVlGbGUrbjl4WmU2czUwcWVLWktsQXplaXRzUjJ1bTJFQ1luOVNsWGNyakll?=
 =?utf-8?B?ZGRYYmh0NSsraTliYlB3S1JlZFAzbWpvN1BuNVdwWk9qejZZa21JN2pVS2tU?=
 =?utf-8?B?dmhnOERVUmplS2oyUlI4UUozeFFwQ05IaDVaM3IxUUpDbnYxWm5RNCtUV2xP?=
 =?utf-8?B?MitiWmlUQS9FRy9IUjhRaEYwRHp5OHJJeHhYTkxRZlBvOGZtcGVnUnp6eTFL?=
 =?utf-8?B?U3BZSGtGTllyczhiU25IS1JYa1drNlozNTJLc0pjeFRWZUtOaExTZ1MyWS9v?=
 =?utf-8?B?N28yYllMRTdvN3puNVBHbmxwMmJBaWhJYUNFaDh5TjJCVnFaUWNTWUtqdTFa?=
 =?utf-8?B?MStyUFRHaDRCQVhWOUQ3MERCanAyNkMzYWxEeW9mZmpBb3B1a0dTK01mbjNF?=
 =?utf-8?B?eHc2NDNXeGJtVmZJN2pzMU5QR3lsVWJHLzVTK0JTY0FqWlFSZ2hpUEhuOTUz?=
 =?utf-8?B?YWVPK1hydzk5am1kYUZha3pkT2wzMmF2T3c3c2JUQ3YvN1dHTGJUL2pCZUEx?=
 =?utf-8?B?WlEwcVh0NHlxelNsUGJCZWxLOXZ2cjJWZnFsYVVJM2VyQWJHOXJ0Y3dwYUlD?=
 =?utf-8?B?azVmbEFOY1lxc1A1QVFncU9HWk9SK3V3eEFlYysyMVR4bjVFaW5SQVFIemY3?=
 =?utf-8?B?MVowZ0N5WUdxeUV5MnJlcTRHckRJdmxoRE5ZRzQ0OUQ4MnBocTErRGxSSDZQ?=
 =?utf-8?B?cGYrSVhDVFYvK2xWK05OZlJtN0ZCTzhWSmVwSHc1VTV4ZTJpSXNRcnFmQXd0?=
 =?utf-8?B?dTBNN0hRc3JUMlR5UjF4dStpRngycEMveUoxTHV1K0pQRGVzZ2Y1TjFuMHZi?=
 =?utf-8?B?dFJ1VXRkeWZuRlZLQXdOWkkrRXFpbTFGY1FVWGl4bTBUNzllb2Z5NlN0Mjd2?=
 =?utf-8?B?R3V3YUttcE5PR2I3d3BJQmtJTnluazZ2VHlob01xUVRNSXhhSTlPTDZ0UWVj?=
 =?utf-8?B?ZlNaTjFYS2hIQkRteWdnT0pwQzdyRll2SXpaZ1lTbnNhcTlIS0dRN2NqdUx3?=
 =?utf-8?B?VGFucTdMZUpsY0RycXFSTEdYeDUzQThxOFBWZTlRRmtGODgyVGV5VDBwSVBX?=
 =?utf-8?B?Qk5GN0VlR0lhZUZFeGtFVk10RzgxYkcwWGJpUXl5WlkvWDdQK2JsTXg2UUov?=
 =?utf-8?B?U2twQUFNandpK3d1SFVJcWphd1BOcTF2K3FpUmRXUC9Rak1FNVYyaGlXdGkr?=
 =?utf-8?B?cmxLV1BvOEFPMmZUMFY5ZVAyMmp6aVNHOEFDUFljMktHRmgwSXpKYzliTlVP?=
 =?utf-8?B?aFpxbmI1eUVxNXQ4MjNKMXZodDJQOFRTeGtRZVlucmNXdU9lalRqaC9MRjJK?=
 =?utf-8?B?REx1NXVoNnN3S1VBS0M0L3J3K2tad016UHE5c2NvTElOVC91dSsra1l4Tzhm?=
 =?utf-8?B?SGE4a0UzWFhNVXhwcmRIOUNlcWtMQS9lTkFxSXk3Z2JaZW5XNUVxRXZvSjIv?=
 =?utf-8?B?YWEyanFsNHZKOUlOMi9oYkNuNVM2UmpiUS85MDVGdFBQcUdJOGRZdTk2akF3?=
 =?utf-8?B?Yko2UGo3c1FvTUtyNko4K1BiOVg3VWx2U1pyR2lEcXpnTTI1Mi9qMytVSk9h?=
 =?utf-8?B?NzNkVW1XTGdFaFduQXFzdUxHNzRzMi9yUFdXemV4VXJ2L3NXT1VKUUtnNjE5?=
 =?utf-8?B?dUticHpGbVowcHdBZDZFaVM0MjRnQlFIeWpiUHNtdzJ1ZDNxY1dyL2hwd3Vj?=
 =?utf-8?B?WUJIckJtQVR1THJyUjVGUkpGclRzeW95TFNKR2F0RmNJaVNIM05ZZitYc2E1?=
 =?utf-8?B?eWQ1ejhUZlZMTUhqcVlxSDJBTEQzSThuZGF1eTFIOVg3dThkaE5tVTZPK1pV?=
 =?utf-8?B?OEloR3QxNHQyUkwwNFRTN1NXYzl1MWJLZFFYODdpTTNYY3hDV3UxNW1XZFUw?=
 =?utf-8?B?cFJoc3FJQlo2VE56aE83bHlHdllJbWZoUzlxbjk1SGtoV21pL1JsWWEreFRh?=
 =?utf-8?B?LzBUSlI3SW5lOHRwT2NDcitod1QrQWxuK0RQQXhUUGI2aThseDE1dWhIS3NM?=
 =?utf-8?Q?cDXM=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Dec 2025 11:10:17.8325
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a28739f6-0f1b-4ecc-d38a-08de46cad976
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F3E.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8988



On 29/12/2025 12:08, Orzel, Michal wrote:
> 
> 
> On 23/12/2025 18:01, Oleksii Kurochko wrote:
>> When CONFIG_NEW_VGIC=y and CONFIG_ARM_64=y, the size of struct vcpu
>> exceeds one page, which requires allocating two pages and led to the
>> introduction of MAX_PAGES_PER_VCPU.
Also, I think it would be better to drop MAX_PAGES_PER_VCPU in this patch.

~Michal

>>
>> To remove the need for MAX_PAGES_PER_VCPU in a follow-up patch, the vgic
>> member of NEW_VGIC's struct vgic_vcpu member private_irq is changed to a
> s/vgic_vcpu/vgic_cpu/
> s/private_irq/private_irqs/
> 
>> pointer to struct vgic_irq.
>> As a result, the size of struct vcpu for Arm64 is reduced to 2176 bytes,
>> compared to 3840 bytes (without these changes and with CONFIG_ARM_64=y)
>> and 4736 bytes (without these changes and with both CONFIG_ARM_64=y and
>> CONFIG_NEW_VGIC=y).
> You only touch new vGIC, so there should be no size reduction without it but the
> paragraph reads as if the change affected both old and new vGIC. Also I would
> mention that probably you provided the numbers based on a defconfig target.
> 
>>
>> Since the private_irqs member is now a pointer, vcpu_vgic_init() and
>> vcpu_vgic_free() are updated to allocate and free private_irqs instance.
>>
>> Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Other than that:
> Acked-by: Michal Orzel <michal.orzel@amd.com>
> 
> ~Michal
> 
> 



From xen-devel-bounces@lists.xenproject.org Mon Dec 29 11:23:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Dec 2025 11:23:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1193998.1512499 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaBL4-00034n-EW; Mon, 29 Dec 2025 11:23:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1193998.1512499; Mon, 29 Dec 2025 11:23:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaBL4-00034g-Bt; Mon, 29 Dec 2025 11:23:02 +0000
Received: by outflank-mailman (input) for mailman id 1193998;
 Mon, 29 Dec 2025 11:23:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=DabL=7D=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vaBL2-00034a-FE
 for xen-devel@lists.xenproject.org; Mon, 29 Dec 2025 11:23:00 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b9302822-e4a8-11f0-9ccf-f158ae23cfc8;
 Mon, 29 Dec 2025 12:22:57 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH7PR03MB7956.namprd03.prod.outlook.com (2603:10b6:610:24a::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.13; Mon, 29 Dec
 2025 11:22:53 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9456.013; Mon, 29 Dec 2025
 11:22:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b9302822-e4a8-11f0-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=djcVfb1kX16wbg3FARs1kiDMQHycwdPgPWIi29NBA9kp+dnzLMQhZSXYnb2fklQdDRL3S0eiIj5XjWf1LXVfdl5ydSuFxdkOl4+RV3zoDLqeaXyKUu4pXlQEJSy6KKyM+ajjYljCJ6Da0UhLll0h6lA1k+clUTQ/uwmcQ0ELVsW5S5Q9pUK5SoXEwsup4QY5GbxV3bgsiUs7VDB/R6ht+dsXmyHbPXgQ/E71Q9X+RcgsQhNUH5yc3mA0c1nAZx/Chiwy+dSuZyJDnGJqqSjpQw53lZF15Xxu6GUj7+xXINj9bHc/prMx7HtC/qPUEfLHLhntFY3ZQMA7exi7TIOXRQ==
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=Flr+Yy4BdWQZEEB9Qi+QM49ScYRPaLKnbW5GK8JuaiE=;
 b=uNENIOw8tZnLA8swYJbMkyJ6Tp2pIsbPp68LGeWeWMj78BJ2ezUWXcroftXTuauDaHoTnjK98Iiua1rqtudCW+hm7+L2tTrYnLzdNFw3ioUovo8PuD/nNNVJQ+zx6rNc0Wdsoad9Qrg19PJXv9S02zokbnOLXoGzQnTqpl2BqG06fRZmez7duXRSPlJIB4UL3ZA4Dg05cyptCqxXwr07W0t4xMCihZJ6b4a/JqRQS07nYh6jEewm5MLBq0abxWCZw44k2r3cZXiyS6TtV+R3UeUpsOJNQ1hI1YoW/pj6v0OVmR4eouNXjgiFq7y19pYiWXPB6CxXQokAS+vQyKLGiQ==
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=Flr+Yy4BdWQZEEB9Qi+QM49ScYRPaLKnbW5GK8JuaiE=;
 b=UhKInlyri0B8VYVLnhtWKlHfoWFVTLtgvysan12WzYFXzEIo3MxCk1Y1E7SKq6rtGTboWAubhw3TAgkmg8DJEpfDijMEipaz/46XV0zENKNVN9+Z3OnlyEPnZK5hkoJBUt/sYlCSaJFqnX+ZYZ5uMBU/VnDgGjc0ETR6E6i0jlg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <ec5ecc50-d8e4-4385-9dd2-d20441d079da@citrix.com>
Date: Mon, 29 Dec 2025 11:22:50 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Penny Zheng <Penny.Zheng@amd.com>, Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 2/2] x86/cpu-policy: move copy-in/-out functions to arch
 library
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <4a8f06b9-8210-487f-9dd7-e0221e2df9db@suse.com>
 <41447fdb-bc9a-4b1a-afd0-9d878ab21301@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <41447fdb-bc9a-4b1a-afd0-9d878ab21301@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0145.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2c4::7) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH7PR03MB7956:EE_
X-MS-Office365-Filtering-Correlation-Id: f1259512-ac7e-4b43-cfe0-08de46cc9bd3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?aDRpa3V4SStQNExZQysva1Vqa1kyREhEeEhnQTF6cTJ0czJSYkpodkNjSjhP?=
 =?utf-8?B?NnpSRC9ucUVyS2JGOGFza2xzek5xT2FkYnY1SitJNjVtVDVNRVkwVzdWZmNM?=
 =?utf-8?B?R1ZJRzZGd3dTRmlPTFBJM05OZ3EwTU1jMnkwWTI3OG5yaExYa1kvL3lQa0NJ?=
 =?utf-8?B?Y2RRaTNFVEQ5dlNBYVVmS2JUTmdMRlBpUUZwRkFFYWdaZ3YzY2dFcmJmTiti?=
 =?utf-8?B?UHR4SXovRFFxVm5aV3pqSXN5VGZDTEFGbllHWmowbGtFSWxkZmVSVUpsNUVO?=
 =?utf-8?B?Z215dkp2SXNjaEEzeCtHc1dBbTRxcWFnTFVEdHhTS2RIUGhqU2JlcEV3TXlL?=
 =?utf-8?B?ZkRrY0R1OGMya2Y4VkRReTh3TjlVb0srNXNlWm5Kdjkvc0pjYXMvSnFzOHhV?=
 =?utf-8?B?K2VPM3NnbXVmeUNYeUptWis1UFZjOGdTcWFXTDR5eVBhdHdMUmFGK2RtWm9s?=
 =?utf-8?B?cDVORDNxK29QQmNROXZXdHI5UFcySjRlWmNNMEpNejI0aDdaZXRyTzVaNEg3?=
 =?utf-8?B?NEV5OFJoMFErMkV6ZGlXbnUxZUMyU3JSUDc1TXJ0L0NsNkxhUDFxSlU0c0Ni?=
 =?utf-8?B?K2x1alBOakxUSFZ3eHkvR2JQNk9xd3hNS2dUTWhFUnlhL2pxU3RWcS9rbWhO?=
 =?utf-8?B?c3FwWE9UbTZiTHo1ZXlmMnI2QURzKzk2Vm1hS2dzZm41V2djUjdVOE1xeENv?=
 =?utf-8?B?Q2NBV3d5RmdFNzR4TWZON0ZpTjBGSThLUktwZ0IwaFcwcVJPRjk5ajJsTVlH?=
 =?utf-8?B?K1JsZ0JySkRBeGRDSjVSbVJBdkZqWGRDeG9pVURuVGpIRTR4TG0vYnhPdHhl?=
 =?utf-8?B?eVduSi9ORzdTSVdDT3RUZTBGVmh3UG1SRzltYzUvL01EajBRQzIzYTJwY1lC?=
 =?utf-8?B?cnNPOUVlazFHVGVObENldHVjb2NVY3pqMG1CNFJDOE5YaDRSTWg3SXQ3YjVN?=
 =?utf-8?B?TjN3WWd0anZNbDdkOVl1RTRDWE1oMGRNeWg3VWF2MGc3Nyt3Y29Ga3pIOHM5?=
 =?utf-8?B?VHVNT3U3Y0ZOdk1VS1UzY3VzVlZ5SkgrbnVOR1l4UnRIaVRqdWR4SzJCSmRj?=
 =?utf-8?B?UE83aEx4bFl0c2x3TU9tWW5BaDZmUGh1aDB2c0daamdSclpISmg0T1ZnZDg1?=
 =?utf-8?B?RXlHL2RpVDhRSzY1cTVlelpxcVQ5N1FZOWFpUTVEZTh2bmJZQXgwSitkc0xi?=
 =?utf-8?B?U2xoaDNwWmpNSC9hS0pnNUYza0NIUCtSNVpBdDAvbmtnYmxadzN3YkpoNDQy?=
 =?utf-8?B?SVBHcFJTdGtTWCtGT0kyRWFXcEJQMXZwM1lLY3FUSDNXSXJ1RHZzaVRZQkNJ?=
 =?utf-8?B?WXFqcjlybEJUSzZHN2hUL3pIL1FXdGtKRDFqcVBrKzRqY1FSR013R3ZBdW5C?=
 =?utf-8?B?UzVPM1dKb3RTc1VDUWwyKzZlQTRJZ0kvV1p1NDVaU1FlQ0FGM0hTMVNLbmhh?=
 =?utf-8?B?WWF3eUJxNllEaGQ1bUl2OStCbkpXSTI2c1JLdU5oV0gxbU1XUWs3VlZCYldp?=
 =?utf-8?B?cGhmSE9WWVJocWx6dmNqRDhFV002Zk9UWU9nUXNnSityNU1EZTJrYUlkQWh3?=
 =?utf-8?B?U0xZaEFXdzNJVXBSWTEvTzQ5RVpMTkFDc0tqUElGaFZ1R3hLUGRSMFhZZzNw?=
 =?utf-8?B?d25TZWNGdllIbWFFTHl0SUl5bGdHc2xEaGxoNEFpbzJBeGxicE9NdkIxNGpv?=
 =?utf-8?B?U2NaNXlnZEhvK3JjVU5BNG1UWWN1RS91NUlweU9sREN0TThBcmdpYXgvZmtO?=
 =?utf-8?B?K1kzZFhacVR5VGxjejJxTU5lZC9UVTZNRWxNK0FoakNQVXp5K2llMldKbjdS?=
 =?utf-8?B?UHhDMHRhTGVJcFpVVDBtUm9BN3QwK0ZZTnl1YVpWODN4RjdBUXkrWGVmbWYx?=
 =?utf-8?B?YTd2ZDVjS01wV3AyU3RROE1MRU9PYnBlczQyWWNBcjFVb2xDUE9hV05ZY21L?=
 =?utf-8?Q?kZ/pg/X6/Cksv4lGDpEYQHAut1Qb6I+H?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dzJGVFZaazk0dDdYWDAvMHRROGtaeUcybWNnZklWVnAwZytrK3pSMHllaWQ4?=
 =?utf-8?B?WDYydDZNUk8xdi8zQTlCb211aDNlR25rUU12MnhPNTNrNGMyMmVRWHdTb2Rz?=
 =?utf-8?B?YXhSOG0rbytxV2hQR1lqK1Q3VG1kb2tMaGRnN0NRaEFzSzNQRllGSHNNY25E?=
 =?utf-8?B?REgxWDBjWkp4MFkvWUhHVDJoc3pBQ2V4cEs4SUU0dFVkb2swQzBmVGJWZTl2?=
 =?utf-8?B?M0srcXBYU0owTDVvL0NGSUtobktWMVh5L1BPQTZlNG1RZlZFN3dGUys1eXY2?=
 =?utf-8?B?UEZjNGI4ZDlvVStBK2hMbjhHYXVMYXdyeWNtRENjczNFVis1aUkvQUtVcTFD?=
 =?utf-8?B?bXhSVjZDN3lTcnVmRS9jS3U3cytYRk00ZStQTWJuUEozcVdEd2JRWWd1T0JL?=
 =?utf-8?B?ZE1vSXRZSkNHN3BBeml6VmhkaWI5WGkxSkpUQ0lBSnpuaGx4LzFuaDhpUkE1?=
 =?utf-8?B?MEZ4SXVwYzBUV09UdnM2MThBUmQ2ckE5T2UvaC82Z1J0WHBrUGVRQ1pBbEFQ?=
 =?utf-8?B?U00wUGw5YlR3Wml0VEVSZXMzc1REcGFnMk1Sc3NOSlJaWU5rN1NkMlVXLzdu?=
 =?utf-8?B?bllIb21qSER3bTVQN1NJOFM0S0lSMlFpaFM2SUNOWHY0V1cxdnByUTBhUEdl?=
 =?utf-8?B?WnNwOHNUNFF3d0hFbzlwMkJUekFjT3o3c2xiSGxUckFMZHFiaGJyUkppY29T?=
 =?utf-8?B?ZjVKZWY2QWl3aXhmRGVLeSt0UEdNWmtiN2h4SkFlMGxGT3VDT2Z4NHR0dlds?=
 =?utf-8?B?U3gxQzdZaGk4VGxGQk82K09uUmpGaUVVSEtQTHNMaDhBSEVkU2RVYjRpcWNI?=
 =?utf-8?B?QkprU0hzTUhMekpxR0ZwWDN2Ukp3bWU2OWdUYy9DUThpdC9iV3JoM0kzK25y?=
 =?utf-8?B?aDhWWmN0QmpnSEtPemExT0tia3U4MUwxUTMvdUFPd1lSaUVCSzhXSTg1SEhv?=
 =?utf-8?B?dmpySXFQZjF2UUticXB1dHo2K0pOZ2R6bVBseGZ0NWhlZlp0MkVpeGI4Tlht?=
 =?utf-8?B?aERrM2kzUE9NZW5EOGJ6Z0dIdHYzUHFsd05BUHRrUVpwb2Vod0JZMXErdnZL?=
 =?utf-8?B?SldsdHFiRXQycVYxbUxsdnQvYXBDSU1JNHk1bnB6ekw4OHBSbEJOeXJvcmtJ?=
 =?utf-8?B?MVhkKzZTY05NVWp5RHBYQ25PK0ZRVUMwSklDS1VuVUY1RDYzR2lqbDRZSjg1?=
 =?utf-8?B?K1RZRU1xQk5GczNZRXZWSWhNbFYwOU43SDhSa2MxK0RBRm52UEFPT1E4V3Ry?=
 =?utf-8?B?azFtWUtWMitBV2FnS3RoU3F3R2N2S1VPSmJiVitKYzVKaStybDFweDJGdmtv?=
 =?utf-8?B?bTFxY2ljL3Q0dFBPSmI5UndIcDB3WTdSdGN4NmFpYlhBR3psbk5xNWtsMjA1?=
 =?utf-8?B?MFNGQ1p1bjg5QmFuelNZUEQ2TlVia3NTSXBQWFVHaGNmRk1IcWRnV0pqRU1Q?=
 =?utf-8?B?MExEeXVVSDl0V2JBQ2FkczlTK1NCTk9XM1BYOW5XK3NYOVFhYWFNa0pPYUVN?=
 =?utf-8?B?V3ZTTUw3OEhKOGEvbGQxeEQ3enhSanZ5bnVoRFZpbTRqZk9BWWRWczhjVE5a?=
 =?utf-8?B?Zk1BVjhYRDV5V1AvQ25hZ01IK1lkNEQyRjFJdzZBbW5CL2pieno1bFFiZVY4?=
 =?utf-8?B?VkdUMFJvMit1a2prVlhIVCt2QmV3bVpDME4yclFCWXZmQUJrek8wUXQyWGph?=
 =?utf-8?B?eHA0eVBUSU1TZ3dhbHlHRy9XemVVZDZmcnFORFhmcnpiMyttRUNVeGEvcHhT?=
 =?utf-8?B?LzhGbDN6dTBqdlFTUm05NVRWbDhWaHVyMU5BeUVtR0FtRjMwY1BCd0x5THJI?=
 =?utf-8?B?SWUxSUI1S3FNU0NPbkhCSHhRdkpuQjV5ajlmTm11SkZ3c1FPd2EreXczK1FT?=
 =?utf-8?B?ZVRWWGdmazVnSnZhL0pHaHFXcTA1cEVJdlk5ZWVQZWk2RndqVklOWXpXWVIz?=
 =?utf-8?B?bE9pQ21MVGxxUTJCTStuQ0ZNdHRoQ1RJTjJGcktramozVjlHalN5c0lERUZQ?=
 =?utf-8?B?NkdzVkZKeUFMaWI4MGxXZWdRMWdaazM5UGYrbnVzM0tMNDFYcWpRbE9MZ01X?=
 =?utf-8?B?T04vRWlSSVNsaVZmajdSVnFsNEpHbmR2ZUZldnhCaWFHZGgreGZ1bEs5bVBG?=
 =?utf-8?B?MDlJcWxXTWkyZ3MyRTBkV1ZoMGRoemNJR0xISFpvM25SQUxpSjBpbTFVTzBC?=
 =?utf-8?B?K1g3NW9QdThBVDRmMHkvQnhSaVM0WlR6ZXNGRUVRMitUcERHaVE1TG4xT2Ny?=
 =?utf-8?B?dHFaRHpmVi94aTdRcmM5anF2K1FOSnZYWEJ5cDcvQWFHa0ZHT25KUTMzK3BD?=
 =?utf-8?B?dFhIWVlnYUtWd1c5R1JjZE1TZzVhMzM3dE9FaDR1aHpFc29MUXROdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f1259512-ac7e-4b43-cfe0-08de46cc9bd3
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Dec 2025 11:22:53.6243
 (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: 7RyyGGcLliS4s1uMqUCoS0zx1ailPPYA6cffcSvtqRh9nU8iQMGmEfoNpxfgMjZqNl0xPz4+ZhHwdCAOtcJ1jI7YK8YlsFe7m3ozuACr2as=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH7PR03MB7956

On 22/12/2025 4:54 pm, Jan Beulich wrote:
> --- a/tools/tests/cpu-policy/Makefile
> +++ b/tools/tests/cpu-policy/Makefile
> @@ -42,11 +42,15 @@ CFLAGS += $(APPEND_CFLAGS)
>  
>  LDFLAGS += $(APPEND_LDFLAGS)
>  
> -vpath %.c ../../../xen/lib/x86
> +vpath %.c $(XEN_ROOT)/xen/lib/x86
> +vpath %.c $(XEN_ROOT)/xen/arch/x86/lib
> +
> +lib-y :=
> +include $(XEN_ROOT)/xen/arch/x86/lib/Makefile.cpu-policy
>  
>  %.o: Makefile
>  
> -test-cpu-policy: test-cpu-policy.o msr.o cpuid.o policy.o
> +test-cpu-policy: test-cpu-policy.o cpuid.o policy.o $(lib-y)
>  	$(CC) $^ -o $@ $(LDFLAGS)
>  
>  -include $(DEPS_INCLUDE)
> --- a/xen/arch/x86/lib/Makefile
> +++ b/xen/arch/x86/lib/Makefile
> @@ -6,3 +6,5 @@ lib-y += generic-hweightl.o
>  lib-y += memcpy.o
>  lib-y += memset.o
>  lib-y += scrub-page.o
> +
> +include $(srcdir)/Makefile.cpu-policy
> --- /dev/null
> +++ b/xen/arch/x86/lib/Makefile.cpu-policy
> @@ -0,0 +1,2 @@
> +lib-y += cp-copy-from-buffer.o
> +lib-y += cp-copy-to-buffer.o

cp works as a name in source code because it's used by a type called
cpu_policy.

In this case, cp with it's UNIX association makes the file name very weird.


If we're going to be properly lib-ing the whole thing, then we're going
to have enough TUs for a directory anyway.

So, I think we want xen/arch/x86/lib/cpu-policy/copy-{to,from}-buffer.o
right from the outset.

Also, I'd really prefer not to have things split between the old and new
locations.  Everything wants to move in one go.

I'd suggest having one patch doing a wholesale move of xen/lib/x86 into
xen/arch/x86/lib/cpu-policy and fixing up the vpath's, then a subsequent
patch splitting copy-{to,from}-buffer.o out.

> --- /dev/null
> +++ b/xen/arch/x86/lib/cp-copy-from-buffer.c
> @@ -0,0 +1,238 @@
> +#ifdef __XEN__

Hmm.  I should sort out SPDX tags.  Defaults would say GPL-2-only, but
libxenguest is LGPL-2.1 so it probably ought to be LGPL.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Dec 29 11:27:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Dec 2025 11:27:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194007.1512508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaBPW-0003k4-UJ; Mon, 29 Dec 2025 11:27:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194007.1512508; Mon, 29 Dec 2025 11:27:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaBPW-0003jx-Re; Mon, 29 Dec 2025 11:27:38 +0000
Received: by outflank-mailman (input) for mailman id 1194007;
 Mon, 29 Dec 2025 11:27:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=DabL=7D=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vaBPV-0003jr-GJ
 for xen-devel@lists.xenproject.org; Mon, 29 Dec 2025 11:27:37 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5ed67c06-e4a9-11f0-9ccf-f158ae23cfc8;
 Mon, 29 Dec 2025 12:27:35 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH7PR03MB7956.namprd03.prod.outlook.com (2603:10b6:610:24a::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.13; Mon, 29 Dec
 2025 11:27:32 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9456.013; Mon, 29 Dec 2025
 11:27:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ed67c06-e4a9-11f0-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HzLVUInNWm4Qe3P34sKlG2KvGuX252OGMJ08v3RW3ja3NPCCOxyqYjbgEU4fAaGX1dNAQWqdrwy2VP/l1xJs8PE/OX2cN3WpxXv6NkoE7etrefWfLmXZ+DXv7dNpZPTjJ47vY/RpHifSA+My7ivCPGYLdxm1A9TjMIjzuTFxq5qrnNyESEiLsdQxmm2PZkMNOQ/bWj7h2O4MGBFfb67zI6QJ3zDTyp6OS1hDYlbTfHB/kCTHPFG9c1mciczAfsP/IBfS+CfPyszRfxNSWJQrMkIbhfZhEyg025BQU2uVPhJXsdZCmfRMB87wvVmDi5TGT1ryXcYkpXxPOsa/uJP06Q==
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=EqZyFhyNsQetKcGvUKjoour08w8x+Jyj2xRZXGX780Y=;
 b=XhVAH8Lmcua3VTTCfDpn97pmPNt6YeVSnFNgm/1UYbhwtVyV5w6N7KW7I1O88Gu7G5PslkGt72w4321x7AjWP4AXedce9GUPJsKt51m276CRJEd6n1c42pzuyA3W5jjyemU+a7hi0cr51OKKq5rucs+4Aq71KLawb3XPfkPi9v5yLfDDeiSQJB9byGF0NA03qXhhQkz5XPpaIEtPsc4MkMbpa/6IH/xGKw0iE2RCy7xyL4ceI8ktRrUE2IafgCXATpSg1+Z22dh4Wy9/1qXij4BmPMYloAqCyOyFUccsUOduswe4zuY3AQepO5mk463Iev5O0lYvd+ZDqEUVK+Qabw==
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=EqZyFhyNsQetKcGvUKjoour08w8x+Jyj2xRZXGX780Y=;
 b=wEaGGPqF8mkqnmBUX3OqQi5Q8WbnLON5U1RK3PICZKfMgdpQTArU82Ee9VhYmpkzWBBw7Ls/C2sRKD0cJC4CvIWMuyGBz+7U0RmWNg9OTc8tLQ1nTVBDbk//OYzLv7xTHRGQmjcR3Nh8VE6m47VAUngi8RFFETg7L2CrCPQxY8g=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <8962e97f-d410-44a5-8ae5-e0fde600a0b8@citrix.com>
Date: Mon, 29 Dec 2025 11:27:27 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v4 2/4] xen/arm: optimize the size of struct vcpu
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1766504313.git.oleksii.kurochko@gmail.com>
 <0756ee97dd47f6acdefe593694b743eb6bfefacb.1766504313.git.oleksii.kurochko@gmail.com>
 <9f2c9e4a-64e3-4e5e-b5da-976ab433f6cd@amd.com>
 <9f343323-2743-4bd6-82de-afe3b48adb70@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <9f343323-2743-4bd6-82de-afe3b48adb70@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P265CA0280.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a1::28) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH7PR03MB7956:EE_
X-MS-Office365-Filtering-Correlation-Id: fd1a933e-26df-4264-e9c6-08de46cd41ca
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bW1aeVAxcEEvOXozcENQY1hlM0hrOFB6R0NRcjBaM3FrUUltMllsL3ZyQ0VC?=
 =?utf-8?B?MWlSelJFRGRBY1puS3JuQ04vdkNlVkNENnpsemtpRStRaWpPZVdPYklONW1T?=
 =?utf-8?B?NlJBYll3MmtzY3JrcmlQbVl1SGI0OXlUT2NWeG9YZ1hDdFRtZGl3cEFPYUNu?=
 =?utf-8?B?dTFiSFkxVXdrNEdld2xTcnZxTEJFVG9YK1NROWtpckNyWFJHRjhPUy9mbUZD?=
 =?utf-8?B?ZFBwdHA5OTZQTWcwU2FSNFlUOHB5b0pnV3FmOTFkeTJaUk9wY2JKTHZ4c0lB?=
 =?utf-8?B?RVgwY1VrRUNNZFo5NU1PUC9vZU1lekhIS1JkU0hmM2x4OGNRRHBzZWhYbGhK?=
 =?utf-8?B?dmZPM21BSjBEenlWQ3RXMGd5Mk03UW9CMXNsNEFhUHlNZDVYeGJyT2NNcjRY?=
 =?utf-8?B?bVh1ZyttRkpkTTQ3aW9wYUUzNXVSdXdWeXFXZTRpR2NCV0ZsMkdmcG9zWDJJ?=
 =?utf-8?B?WWN3NFRKbjJZQ0w5RzBwU0FwVFFZQ05hTzVrQUpISEFJUGZhSlVORGhsYzAy?=
 =?utf-8?B?QUhBUFFjTnhVMFgyK3dTZEV4NERpZGFoNkExallKSUlWS0phVmFWT1RuK1Ar?=
 =?utf-8?B?dXFyQmhZeDJjaW83eU9USFlJaHRra24wbTlGNXJtT1p6ZmpNVVNvZ0JSZTQv?=
 =?utf-8?B?Y0FOY2o3UXVnNjViN29tUkdYbjIzcWRGMERXTVV4bHNmb05PNVJrVU05b2Jr?=
 =?utf-8?B?MTVPanZrcWZFZDZlWXVCd0l6MGNrTVFtYUx6ZnNFSktQWUVVdGRSSDZsZmZL?=
 =?utf-8?B?eFNNY0c5RFhBRkppRkt0c3hJSGxrdW9lNHIrTEdBVW10RWRzeFU2Wk9SRzJl?=
 =?utf-8?B?Q1pHQUUxWFBaWldnRTFuMm1hMnl4Z3IrK0J2QkwvajJEYm9uekpTckNzdzZ2?=
 =?utf-8?B?TVgxQUlBMDZIZWRDRGU3b05wWVRTanZOQml4K0RWTkswN1ZkTzdQK1NuSUlZ?=
 =?utf-8?B?Z3FGSm16anBwZjRXK0ZkMG1peVpkZCtTeFFOc2xSK0VuaEp0UysxcU5ueFBQ?=
 =?utf-8?B?MjIxRnJiWVNXRFBkNm1ma09vUkh2L1NqNmdZZGJpYjVxdUQ0UzVZdzJGQXUv?=
 =?utf-8?B?Yk1LVGdSZEdGMjR2aG5aQm9lVTM5eVNLMHBJNG54SmsxZnN6N25DQ0w0dVVQ?=
 =?utf-8?B?TGlXRks3SnNTM1FsQVRyNU5BZ21jVFN1ZnNINWVmckUwYXdieFlMVk96VkVB?=
 =?utf-8?B?MkQrOThGZTFpeElObCtqMml2MmkraU9tU25NajNDdXVUMmR6MUdXWG0xV2Qw?=
 =?utf-8?B?THZkUktsajZUOERSMnhFaDVWbjNJSVdxR2pTbC9HVUtWNWx1N2d2OGZWdysz?=
 =?utf-8?B?OC9BdUVScWhtWVVJOHhOUmc4MEJSNTVFTVVuOWtJRnVCc1lBOXEvUGZKeHg2?=
 =?utf-8?B?T1IyZUxvZGVuek41MFdGNVY1M1dpSjlOWmx4TFgzSlNrQjlXZmV6QVgvcm56?=
 =?utf-8?B?cW0yRkUyaERzL2dpdlRyVzhOS25jUnV4Z1g2MGxFNHRTa2xNUjdXVTNFSlgx?=
 =?utf-8?B?dzJoUzdVdHZ3aUZ1U0pZVFNVcVAwWjhGTXdjSWdoWWY0M2FmWlhJcDNSMm9h?=
 =?utf-8?B?T3ZLMERwNnBYRmZuYmw1MU51ZFJiWUJ2cUk4T1UwTWpXTERlR2FPRG9DL1NB?=
 =?utf-8?B?Q2NkSVZGeFpRVGR0aDN1eVQrK3FYMGlkNDI3ek4wRzYwckdtcTNmYXl2emVG?=
 =?utf-8?B?d3dnblI3eUpIcGtIdS9mUXVaQjAvUXRrUnd4VThGL21VTFFpMGdLYmlCU0RQ?=
 =?utf-8?B?Z3BseUFJalA1NzJRVjRQRFlYb2dDQkNnTFNEc3p1R2JQcnpqdUVjNU9pYzBr?=
 =?utf-8?B?Qjl0dXc1bEJibG5IVWVYd3EyVWx5UGtFd0J4dm9iZENoQ1BBbzZMMmVKUHJ2?=
 =?utf-8?B?WEhjREpOREdFUmE1T2NQdEJTK0g2OUF4ZFArR3g5d1RkT3pYZklBZFJwTHk2?=
 =?utf-8?Q?BcU4evQxCBQ7CFhRCtfQHKq0dHWzWIId?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?K3gzaDhLNVpSUFRSbHI4UVJXNnJicXRlOFA0OEFCUTlKN3Y4c2crdjgyT29Q?=
 =?utf-8?B?aHJXN0ZzUlBkd3BPaDRiSHdoK1pWYmxQUXBUbG16U2lPZURVUGdxb05ZMk9J?=
 =?utf-8?B?QkgvTWhiVm16NUo1QjNHVkV6OUFuUTRhK0VuSTJnemlDUWlDaDBObWNkTm5n?=
 =?utf-8?B?WjFBQUVOMHB0ZkN6a0lGNnFZNlNoR1RoTW1QcEM1dXI2bVN2QTZuL3U5cy9y?=
 =?utf-8?B?V0h3MTh3M2RRYmZmK3JSbFh4RFBmQXoxTjA2MGJ1YVhEMnFGNWh1ZHR6NWdY?=
 =?utf-8?B?eUd6VUtlclhZaVpwVUtBVGJIa0hFRjFkRTdheTZsVUl2Z3BEWGFtUXNOS2dm?=
 =?utf-8?B?RHVub0NZU25ubmcvdk1tUW14bUUzT0ZtUlY5OG9idWpEOFR2M0FVKzJpUHk3?=
 =?utf-8?B?eUJTcGlMWDZIVGRxYXFKMG9YUFZOT1lZWkY2TWFRNDJuQnRLYjh1MWhKZjVC?=
 =?utf-8?B?ZEgwMVZEbE5Vd3l5ejFGSFgybzJYQkhVbnltQTJUSzJXVmxRZ0dWcGVYZE0v?=
 =?utf-8?B?VUJZaDJpb1ZSOWZXRGJNbDRiTUFQeXpLQkVaQUZaMHFHZ1ZhOE0rZGdWK0JL?=
 =?utf-8?B?THRkcUkwd3IvKyt5bGIySzAvcnJjMmRZKzI4dW1GeC9tc3hnZWoybU9teVdH?=
 =?utf-8?B?K05pdGFES2piM04rc0RhQkNiZGN2MVR0S2RkbXJXOWh5U1hTSTlqWkdmRFFX?=
 =?utf-8?B?bHZQZTNieWcwNUFjWXE5c1JBY0xyMjhCcjhWMUhUTzlxT1RwOGJCS1BXTVc5?=
 =?utf-8?B?Z2VwcnVsU01yVDNXbUdxZzFJam5DTkg1bmsrVGRDYnVHc2o5N1o4eFQ3ekIr?=
 =?utf-8?B?OGRldlZFT3FGcWc1TklWdURFaXR4UWNhWG5hSnRmSm5sUjEwcStSY3hpSVdW?=
 =?utf-8?B?dUk4M2syZFFyK05MeW1VVHB4allsKzF5N0RnanF5MFNpa0cxbUp1cTVRc3Zh?=
 =?utf-8?B?ZVZKM1FPYUFHN09jVU91dzlmN1dHbFZzenpkWlh5cXpSd2FhcmRXRHRJNFhR?=
 =?utf-8?B?R1JGYjNzd2lJNUZVQ09zMWU0WFZZdlBCTkxibGR2SDdYaW81SFczWEZZdTl3?=
 =?utf-8?B?Vk10elJ3K3Jha1dXaE5ITk9OTGdIUno3STlTWGcyWWJkdmN4ZitUUklHNFAz?=
 =?utf-8?B?YStDMnR0MTQ0MHR1TzhzVkdPMFExNkZjZ245NEczL0VOQWlzaVdNaXI5aU9S?=
 =?utf-8?B?V0VsMWROV0ZhMktuR3ExTkpaV1VuSUZsb0lnMk9rRlZOQ09WQzVKckFJZjZw?=
 =?utf-8?B?Y0RFamhmMHJndVVGOXFVd2o4N1RwQVd0dnA5aVRFUWJtKzBuci92L2F5b2h3?=
 =?utf-8?B?SUxyRENuTUs4QS9KUkNtRmtqSUMrbkpBNEVWQ0ZIZXZPQkhnN29HNDJCWk0z?=
 =?utf-8?B?SkU0WStFOHFXeUtQVHliRVZoS0JPVVgybGhtemk1bTV6R3QwK2pSV2loaHNu?=
 =?utf-8?B?VW9GR1VFSjM3Y2ZRWUp1RVdDTUhGOC9FR1diSVcyL2k0OFcyVVdZYm9Rbzdy?=
 =?utf-8?B?UTgzZDIrKzNjNnpYT2NpT2dEM25sdytZWTdRNXJ6L2trYUw0RXFiUm9tWlVr?=
 =?utf-8?B?OHp5OGpZQlJxcWJydDcxMlhXZXZkWmtmWGxZY3F4RGduTXhuRWtMU1gzbnJF?=
 =?utf-8?B?Nmlld0MyYUhBdjhSditaTjJ6ZmRuL1Q3RlVBRjh0aXpHV3dWQm9OdElJNTk4?=
 =?utf-8?B?UXJ4T2VHZnpUL1NCbVpCZzlqRVpFemlvS3F3ckFLdDVuaUNGOTJJREZkSjlS?=
 =?utf-8?B?VG1QSW51dzRZV002SFp1N3VxM05HTExJMmdHcUdLVFBlRVZrY1JMQmRydExz?=
 =?utf-8?B?dGI0RUZISjFLNzJUVjVpZHYrZktaVXdhdmxVaFlHeVp6WEdHdW5CZkVmNWlG?=
 =?utf-8?B?VE5sRnd4VnRzMDVWWXhXWWxKQ1BDMnpKTFNvRjloN1dSQXpmVDFUNW16d1Jm?=
 =?utf-8?B?UkE4anFJakRtTjRqVEZCb092Z3ZrOGEwZnlabjZQejZEZFpydmRTNWpDdEU0?=
 =?utf-8?B?cERjSjA5SmJWMmMrUGUvQm9KM3FEd0pjN0xlTWxKMGJmWnJNT2hoR05zWFd0?=
 =?utf-8?B?UTJoOE52SExCYjlkK1lEenZLS1Z6THErU1BNTk5DMjY0R2crNmVvTi9adDR1?=
 =?utf-8?B?YnhyMDlvQVVoanBPdjg4eHpabTRzQTM5Y1pMWG9UWXdLSGg4VzZ0TDJoNllI?=
 =?utf-8?B?MVBPNXRpazFieTlzNm5jSzN0TW1lbHVFL0swNGlkdU02Wk9GOXBjTW1MSnV4?=
 =?utf-8?B?V0NlVEV2c2ZvRWtRODQvVzFvMCtxL2hqOFZwVW5FaWxibWI2VzJabUNGTjJL?=
 =?utf-8?B?a1lFU2MzNU13Yy9HNC82cTJyZ1hrVkIwSS9vekk1Umhsa0RMMDRwY0lNMzVv?=
 =?utf-8?Q?XBt+CU6yl7XcSLz0=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fd1a933e-26df-4264-e9c6-08de46cd41ca
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Dec 2025 11:27:32.0622
 (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: YpGOec401t3HxUHhg+SH3Bs+8lh+GWdfEWJhXpNuEZfUx4McNpnW/rGb40uZyocH5ler+2VfnhbcPDEhjfxezfu3GChiB0Aa+6dpKASi/sE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH7PR03MB7956

On 29/12/2025 11:10 am, Orzel, Michal wrote:
>
> On 29/12/2025 12:08, Orzel, Michal wrote:
>>
>> On 23/12/2025 18:01, Oleksii Kurochko wrote:
>>> When CONFIG_NEW_VGIC=y and CONFIG_ARM_64=y, the size of struct vcpu
>>> exceeds one page, which requires allocating two pages and led to the
>>> introduction of MAX_PAGES_PER_VCPU.
> Also, I think it would be better to drop MAX_PAGES_PER_VCPU in this patch.

Or at least shrink it to just 1, which would be minimal churn.

>
> ~Michal
>
>>> To remove the need for MAX_PAGES_PER_VCPU in a follow-up patch, the vgic
>>> member of NEW_VGIC's struct vgic_vcpu member private_irq is changed to a
>> s/vgic_vcpu/vgic_cpu/
>> s/private_irq/private_irqs/
>>
>>> pointer to struct vgic_irq.
>>> As a result, the size of struct vcpu for Arm64 is reduced to 2176 bytes,
>>> compared to 3840 bytes (without these changes and with CONFIG_ARM_64=y)
>>> and 4736 bytes (without these changes and with both CONFIG_ARM_64=y and
>>> CONFIG_NEW_VGIC=y).
>> You only touch new vGIC, so there should be no size reduction without it but the
>> paragraph reads as if the change affected both old and new vGIC. Also I would
>> mention that probably you provided the numbers based on a defconfig target.

I think that was stale from v1, where this patch was far larger and more
invasive.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Dec 29 12:39:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Dec 2025 12:39:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194023.1512518 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaCXA-00042E-R8; Mon, 29 Dec 2025 12:39:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194023.1512518; Mon, 29 Dec 2025 12:39:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaCXA-000427-OA; Mon, 29 Dec 2025 12:39:36 +0000
Received: by outflank-mailman (input) for mailman id 1194023;
 Mon, 29 Dec 2025 12:39:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Sd1l=7D=bounce.vates.tech=bounce-md_30504962.69527681.v1-11c129495fa742df9fe82a7d7a6f0cf9@srs-se1.protection.inumbo.net>)
 id 1vaCXA-000421-0E
 for xen-devel@lists.xenproject.org; Mon, 29 Dec 2025 12:39:36 +0000
Received: from mail136-3.atl41.mandrillapp.com
 (mail136-3.atl41.mandrillapp.com [198.2.136.3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6bce6bb9-e4b3-11f0-9ccf-f158ae23cfc8;
 Mon, 29 Dec 2025 13:39:31 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-3.atl41.mandrillapp.com (Mailchimp) with ESMTP id 4dfwlP5sSkzBsTwx4
 for <xen-devel@lists.xenproject.org>; Mon, 29 Dec 2025 12:39:29 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 11c129495fa742df9fe82a7d7a6f0cf9; Mon, 29 Dec 2025 12:39:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6bce6bb9-e4b3-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1767011969; x=1767281969;
	bh=2wHYd+DLVMV+Is74h/VwDQsZQyju8+YI5bbokfnCZd0=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=Y0NiD1sZBVrzM4XvDOO8fcoyKdmWT1MLOVVjZ3DfCLCeiJ4q2T59rLvPzq+MU6NuG
	 O1CaoKYKWVSR9hNMu9qEs9/mw6x5NdQrFPGDWQaYcfqqFmC/y+FQj77wpZzQ4BYFsW
	 G1pR72jmIn7Clt5gT+3/tikPjOGoCwrbN1uSyHwDvf6PWROkKVzaMp26oYqVuVs5cc
	 8W+Dktw0M1qSBIyV7WRObs9Gm40v1n2EMPLyqJi3ykFHq9IBumebMh/RNPj3t8qSMv
	 udckXDq95VCVQA8gxajud7kFqNDpOyFqgs8JHDB3pO9M3GaAZWd9yEy4iBPJeMmahH
	 09/X2usi7RXbQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1767011969; x=1767272469; i=teddy.astie@vates.tech;
	bh=2wHYd+DLVMV+Is74h/VwDQsZQyju8+YI5bbokfnCZd0=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=1lRnadWzwSghSOfxSSvR6JuizPriLUEeIXuLFfZjC19K3bVAcEYVugSy2d6k1QIkX
	 7pqsiGs3mg7oh/3llg+IztvmvYi2YncqPxlfzMjVug2uCRcFcWXfNxYBme59+ZCKfP
	 BEhaxF+JrUKjqeWjWGRAbjHX0zPZynb8FQnApeShkHXsrlPmoPq7Q/9e+8mS7+WInR
	 2wivLZdyn84girJLwgzbsPLVr3AgKXK5iJvNKrWikmY4f7w26GDNs0cIHQ0XtraZJx
	 ryC1y4XUP+3odNhGw+gMt/DH+Gw6Z5oPFg+561VoGHRtJBJByPs0Fwdfn5ExN8ekFR
	 3wbBB/9Uwlg6Q==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH]=20pvh:=20Introduce=20SIF=5FHVM=5FGHCB=20for=20SEV-ES/SNP=20guests?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1767011968454
Message-Id: <7bbd6560-c988-44d9-a2e8-448cceb455e2@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <3b6f5146287d3402a09836b7cf876d4f8dc9eee1.1766889890.git.teddy.astie@vates.tech> <7d439b75-801b-406d-98e0-29c207e1c1ba@suse.com>
In-Reply-To: <7d439b75-801b-406d-98e0-29c207e1c1ba@suse.com>
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.11c129495fa742df9fe82a7d7a6f0cf9?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251229:md
Date: Mon, 29 Dec 2025 12:39:29 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 29/12/2025 =C3=A0 09:24, Jan Beulich a =C3=A9crit=C2=A0:
> On 28.12.2025 13:49, Teddy Astie wrote:
>> Under SEV, the pagetables needs to be post-processed to add the C-bit
>> (to make the mapping encrypted). The guest is expected to query the C-bi=
t
>> through CPUID. However, under SEV-ES and SEV-SNP modes, this instruction
>> now triggers #VC instead. The guest would need to setup a IDT very early
>> and instead use the early-GHCB protocol to emulate CPUID, which is
>> complicated.
> 
> But isn't this going to be needed for plain HVM anyway?
> 

This hint is only relevant for PVH entry point. The other guest boot 
paths can still rely on other mechanisms, e.g UEFI boot doesn't rely on 
the IDT approach and relies instead on the UEFI firmware to provide the 
early GHCB handler for the OS.

 From a Linux implementation standpoint, as PVH entry-point doesn't live 
in compressed/ boot code of Linux, the early-GHCB handlers 
(do_vc_no_ghcb and do_boot_stage2_vc) don't exist from there; so we 
either need to reimplement in non-compressed code or use another approach.

>> --- a/xen/include/public/xen.h
>> +++ b/xen/include/public/xen.h
>> @@ -890,6 +890,8 @@ typedef struct start_info start_info_t;
>>   #define SIF_MOD_START_PFN (1<<3)  /* Is mod_start a PFN? */
>>   #define SIF_VIRT_P2M_4TOOLS (1<<4) /* Do Xen tools understand a virt. =
mapped */
>>                                      /* P->M making the 3 level tree obs=
olete? */
>> +#define SIF_HVM_GHCB      (1<<5)   /* Domain is SEV-ES/SNP guest that r=
equires */
>> +                                   /* use of GHCB. */
> 
> Naming-wise, do we really want to tie this to AMD (and hence exclude othe=
r
> vendors, or require yet another bit to be allocated later)?
> 

This is SEV-ES/SNP only, I don't think the same bit can be reused for 
another technology (unless it also uses the GHCB MSR). As the guest 
can't even check if it is Intel or AMD CPU at this point (if running 
under SEV-ES or SEV-SNP).

> Jan
> 

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Dec 29 12:43:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Dec 2025 12:43:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194032.1512530 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaCaY-0005Xk-A3; Mon, 29 Dec 2025 12:43:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194032.1512530; Mon, 29 Dec 2025 12:43:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaCaY-0005Xd-6J; Mon, 29 Dec 2025 12:43:06 +0000
Received: by outflank-mailman (input) for mailman id 1194032;
 Mon, 29 Dec 2025 12:43:05 +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 <SRS0=PeLl=7D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vaCaX-0005XV-1V
 for xen-devel@lists.xenproject.org; Mon, 29 Dec 2025 12:43:05 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ea7c1980-e4b3-11f0-b15c-2bf370ae4941;
 Mon, 29 Dec 2025 13:43:03 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-477632d9326so55933955e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 29 Dec 2025 04:43:03 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea227casm61921693f8f.15.2025.12.29.04.43.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Dec 2025 04:43:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ea7c1980-e4b3-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1767012183; x=1767616983; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Lmr7Q/HcT6fVIJ8ez55NnDaH+7UaV4yiXG3pMTu7JSc=;
        b=csqtyqRJZEqGyJ3/S96Ftb59l4BAByRYla4Fi29INQMdHesJ0xVOI0ZNGBpoTiJfFi
         Xf6SBR7kKzk9qnh6LkHYOr67LZqY+dgVQqoyB5j/EWZiqHYQm1x3bVH8SLhXokfORWWw
         /202xcPz5TqxomC44uDPiKvqUSnsyiC1/5iHpLx4iOhLP6/hgjMnOOmXgQPRBwPuMQVJ
         kfFLIm4YG+xmzLefCfbmOC6xfdwx6Iaqa+QzGTezNTUjapaA5QTpzcaFPuqN5Nnj2is9
         gFNNhJqOV7dNu6Yu9O452zMa2d28/um2yGl+JTf2a7TgiuBvyMambJdL9cLIKLv8K2+d
         mrtw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767012183; x=1767616983;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Lmr7Q/HcT6fVIJ8ez55NnDaH+7UaV4yiXG3pMTu7JSc=;
        b=II9O0weyuJyH08oWr13x28HKWjz27usn0FUrql40fYoJtlfLuDlg+FGga/YxpwUeU5
         vJIW9AS2Hikf+KotKpYpS/QitaKPTimNBWFYCQyX05TrbVEfhkFTpM1LMOxKXjmF3Zhc
         RKfSWo/re+eteIm3PsBxxW9Pdm7oYNruSxUV2BpNyzzc3XGlj820lEMEmHYgb8cbsEvK
         VpmxCfWGX+1EtxKxgfANB2kLyhdOXHv/QVFVdqquUmb+lw/Qn0ZJneHgL39CkpMXK6Re
         2eC2X7X70zhsp/DqXQbedZg1NtGfmaI/V2dH4gechuC36GniWq6zUmb4qCnwHUGW489m
         2yCA==
X-Forwarded-Encrypted: i=1; AJvYcCUHg+LgpPUobVvNUOho2u5tEBQcKK7pl6ega71JZh5lvbq+PaM+idvxWbEAXhb+TFknD0/nZwjHPnU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwXDBaDVSdrIWQgpIPu5665ulFKWR3o5bvm3/PfIMz/Cc3JLPzs
	AAP/EpfxtEQhx5rMA2ahN1nzeL9liAUc5M7Sx/VBDbed7ZLMrd4G9UlhicbBYyvg/w==
X-Gm-Gg: AY/fxX7MMOo1liL5606Yg8Bq9hhIAq02Cu7Bz+LzJOesyU9gUv2MWodzb22k4qF8uRm
	ciSj6XaitBJ+uwM653YtPp90tbiCLsaqR6rUKhwnGKlBbtdtO/AZOUak6L8OlCPskWOTN7/DF43
	5BX7J/5ckae9hvBHUPdtsd8TxaYDKwXNEUrwFaaJ25oaaK8cBV8WJi3bHJfnmnBkZqiV/0hs1hi
	t1kG/KK8VpDCfF03zULSzbcAjYvCG1DcxcsD/fEC4geUggWjVm9Mat2iFL8DnltW75bqQekUWz0
	iC/CcEX9KxQCg/kGLk55IK4xw4Mu/fw814TmbTanr0ay1MfcgFsBgiEhjXgcVIFSgEA/6jv0e3+
	d7CiV3VSnJE5+PoHSbVU4V3xGiYKyxY6gmRZeVHPBxlehTDQ/8mK5vff2bLx2go+4y+6vFYr/mD
	3BdVW3JANuBzvHp7d+kIzq8aEeYUj+zyR6gArJTmlUk+5S14zPxsoePGpukvXQvVIEXBRqUzy1p
	RY=
X-Google-Smtp-Source: AGHT+IFaVj/38g1E0VfHlSKU6YGecsW21efGK1p6pjlzWrqALiEm/1dV68lCKDbTzFVY9u+G9ChqOA==
X-Received: by 2002:a05:600c:198d:b0:46e:35a0:3587 with SMTP id 5b1f17b1804b1-47d195a06a0mr362164075e9.27.1767012182715;
        Mon, 29 Dec 2025 04:43:02 -0800 (PST)
Message-ID: <ca0bc5bb-ba16-474c-86a6-350cbf7e8f18@suse.com>
Date: Mon, 29 Dec 2025 13:43:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/cpu-policy: move copy-in/-out functions to arch
 library
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Penny Zheng <Penny.Zheng@amd.com>, Anthony PERARD
 <anthony.perard@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <4a8f06b9-8210-487f-9dd7-e0221e2df9db@suse.com>
 <41447fdb-bc9a-4b1a-afd0-9d878ab21301@suse.com>
 <ec5ecc50-d8e4-4385-9dd2-d20441d079da@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ec5ecc50-d8e4-4385-9dd2-d20441d079da@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29.12.2025 12:22, Andrew Cooper wrote:
> On 22/12/2025 4:54 pm, Jan Beulich wrote:
>> --- a/tools/tests/cpu-policy/Makefile
>> +++ b/tools/tests/cpu-policy/Makefile
>> @@ -42,11 +42,15 @@ CFLAGS += $(APPEND_CFLAGS)
>>  
>>  LDFLAGS += $(APPEND_LDFLAGS)
>>  
>> -vpath %.c ../../../xen/lib/x86
>> +vpath %.c $(XEN_ROOT)/xen/lib/x86
>> +vpath %.c $(XEN_ROOT)/xen/arch/x86/lib
>> +
>> +lib-y :=
>> +include $(XEN_ROOT)/xen/arch/x86/lib/Makefile.cpu-policy
>>  
>>  %.o: Makefile
>>  
>> -test-cpu-policy: test-cpu-policy.o msr.o cpuid.o policy.o
>> +test-cpu-policy: test-cpu-policy.o cpuid.o policy.o $(lib-y)
>>  	$(CC) $^ -o $@ $(LDFLAGS)
>>  
>>  -include $(DEPS_INCLUDE)
>> --- a/xen/arch/x86/lib/Makefile
>> +++ b/xen/arch/x86/lib/Makefile
>> @@ -6,3 +6,5 @@ lib-y += generic-hweightl.o
>>  lib-y += memcpy.o
>>  lib-y += memset.o
>>  lib-y += scrub-page.o
>> +
>> +include $(srcdir)/Makefile.cpu-policy
>> --- /dev/null
>> +++ b/xen/arch/x86/lib/Makefile.cpu-policy
>> @@ -0,0 +1,2 @@
>> +lib-y += cp-copy-from-buffer.o
>> +lib-y += cp-copy-to-buffer.o
> 
> cp works as a name in source code because it's used by a type called
> cpu_policy.
> 
> In this case, cp with it's UNIX association makes the file name very weird.
> 
> 
> If we're going to be properly lib-ing the whole thing, then we're going
> to have enough TUs for a directory anyway.
> 
> So, I think we want xen/arch/x86/lib/cpu-policy/copy-{to,from}-buffer.o
> right from the outset.

I did consider this, but didn't like it very much because of this implication:
Either I need to touch arch.mk again to specify yet another archive to the
linker (not very scalable). Or I need to teach the build system to know to
combine archives from sub-directories into the parent directory's (i.e. follow
how built_in.o are being treated).

As you ask for it, I'll use the former of the two approaches (for likely
being simpler). Let me know if you disagree, or if you know of another good
approach.

> Also, I'd really prefer not to have things split between the old and new
> locations.  Everything wants to move in one go.
> 
> I'd suggest having one patch doing a wholesale move of xen/lib/x86 into
> xen/arch/x86/lib/cpu-policy and fixing up the vpath's, then a subsequent
> patch splitting copy-{to,from}-buffer.o out.

Can do; I would have thought that doing the move piecemeal ought to be okay.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 29 14:13:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Dec 2025 14:13:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194045.1512539 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaDzw-00084n-Go; Mon, 29 Dec 2025 14:13:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194045.1512539; Mon, 29 Dec 2025 14:13:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaDzw-00084g-Dd; Mon, 29 Dec 2025 14:13:24 +0000
Received: by outflank-mailman (input) for mailman id 1194045;
 Mon, 29 Dec 2025 14:13:22 +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 <SRS0=PeLl=7D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vaDzu-00084Y-Rj
 for xen-devel@lists.xenproject.org; Mon, 29 Dec 2025 14:13:22 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 87597977-e4c0-11f0-b15c-2bf370ae4941;
 Mon, 29 Dec 2025 15:13:20 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso72628955e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Dec 2025 06:13:20 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47d1936d220sm588588865e9.8.2025.12.29.06.13.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Dec 2025 06:13:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 87597977-e4c0-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1767017600; x=1767622400; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=s25DVCqfHmQafw1ohr4pMsnXszddCek/2CFl1b0qNFI=;
        b=Qye6y1MQLaNGm6VNSPZ1568eI95JQgS4X7sd/3S4p9+MzL4+U90QVBXCIqVyF9hIfa
         Lm2VxG2Mb9sXh4csKQbUAzER8xXtbhuij/ByXaNUxb8X77+xqLensrGfxcRfR1NcvkQZ
         2JTOWB2QsFRn7dr81O7n+eFmz/Vi7i6rgirq+6uAiLDp79AxsszwVHxnfyeXcpUQoZg2
         cZD1A/n/AJC/dRv++6SP7VVDMXvrtRmXlVNG5sQhnNn+PCpnRtQU9EOZ4MvHIjLo6Xga
         O96YH778u6JqM2svf+J4OXj7egcTJaAPY5DqlBsGd4NUyJFDJwByprR34hHvZAvy7Igo
         5AhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767017600; x=1767622400;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=s25DVCqfHmQafw1ohr4pMsnXszddCek/2CFl1b0qNFI=;
        b=akve6/eWgs5tv5pV7cW1Dd+WFJHpuha5I5b7tpN6OnUXL+Enr23OBYl8YDJ0TiQivQ
         i+tpjRYcGezhDcjc+63QhoCQK1blrAvpiF/qktbrfJ/cEqucbowPzNSZgYN8/W9etCnn
         EvqCY5ImY61GCdrPeEm+j3WflUb/+FjHkTbGBiHz4KsfbVLG0BUTcd/BOnzwfXeOix17
         JhVc+n63kDL+3wopMYhD5jz9QUVL7f0PNg/CE0rfLLe1pnFK3RLiuU3KU7Lv+Mq8orey
         JIC9UaT6fSvTf5avGSAmwzM6Arg7GxCO3C2KdfePSizyCkD42tWe/W0ZqKlpds03cHKu
         jimA==
X-Forwarded-Encrypted: i=1; AJvYcCWUJAS9tz/YsHisANbzb6OdcYyf5MxzgDRi+UjcARUz/5VmJPcWMrRtJ+EhMrryezuGO/6v8ZftQUk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy4AGoUdFKQsB3tZPt7evftOE9L8EXEUO8BHbxKDzeF2ANBmqAe
	WzXxV9YTlxJOprOfMRjZoP5b4RRI6/3VrJNCUWmOxgsN/aFQbwaQgjV2D2AGqqBI4f6mAZF3Wmn
	RYvA=
X-Gm-Gg: AY/fxX7604iOQjDwEYE+2a0HLS/DN7nA5PGml78k7BSFZzdR3oIYnNpZ3qckj5RmCMD
	k2lHEiDK/YYiBlN+XFMYcyfhv5AXQAsZSJjSXOv45NbpXh7QzpKJUOkE4g3r0dQ3f65ioeYYwcl
	R1wAoQYAxBeOMGwpvPUbKfBGN+i8xrAImMguRjVsateOTjCwLpS1VnBHLppAa2e8zqMdh1wQcZD
	7BJy44MN3uVrV7OfSzHDhSy9zmV6aElcEsQ4+Nby+3SWBxERpCS79BIguCUl+m5dRav/U5eGfG2
	P3g2b+9VYG0SRoOG+2odUX/irVB80IZ00PshECzeMxMe0KblkNzF/1PrA4XOx8a0qf5oea4Hrcv
	6wsJ2Cgf0aXpDjQwdKs2wJhVD9WdC3dqGQ/Cz7E9MHJT03xqoYZFVjrT25Vp0sEgB69+33xoYhc
	hgCuW7sn8ANO7hbWmoHacfAq9K7LZJsRxJPR0D4UY9xbPQIiCSyF2tKc8hFMwYOJ+si9JJgLaLo
	To=
X-Google-Smtp-Source: AGHT+IF/RFWARPMdGLaHmnK3YtOHppclyuwVkHp60M5uoWSk96CEn+pNRkZaw05fJ0m17BFyJlz7GQ==
X-Received: by 2002:a05:600c:5489:b0:46e:59bd:f7e2 with SMTP id 5b1f17b1804b1-47d18bd5651mr361111165e9.11.1767017599784;
        Mon, 29 Dec 2025 06:13:19 -0800 (PST)
Message-ID: <b7a31f50-4fa7-4b53-ad92-3df6c4ff624c@suse.com>
Date: Mon, 29 Dec 2025 15:13:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] pvh: Introduce SIF_HVM_GHCB for SEV-ES/SNP guests
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <3b6f5146287d3402a09836b7cf876d4f8dc9eee1.1766889890.git.teddy.astie@vates.tech>
 <7d439b75-801b-406d-98e0-29c207e1c1ba@suse.com>
 <7bbd6560-c988-44d9-a2e8-448cceb455e2@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <7bbd6560-c988-44d9-a2e8-448cceb455e2@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29.12.2025 13:39, Teddy Astie wrote:
> Le 29/12/2025 à 09:24, Jan Beulich a écrit :
>> On 28.12.2025 13:49, Teddy Astie wrote:
>>> --- a/xen/include/public/xen.h
>>> +++ b/xen/include/public/xen.h
>>> @@ -890,6 +890,8 @@ typedef struct start_info start_info_t;
>>>   #define SIF_MOD_START_PFN (1<<3)  /* Is mod_start a PFN? */
>>>   #define SIF_VIRT_P2M_4TOOLS (1<<4) /* Do Xen tools understand a virt. mapped */
>>>                                      /* P->M making the 3 level tree obsolete? */
>>> +#define SIF_HVM_GHCB      (1<<5)   /* Domain is SEV-ES/SNP guest that requires */
>>> +                                   /* use of GHCB. */
>>
>> Naming-wise, do we really want to tie this to AMD (and hence exclude other
>> vendors, or require yet another bit to be allocated later)?
> 
> This is SEV-ES/SNP only, I don't think the same bit can be reused for 
> another technology (unless it also uses the GHCB MSR). As the guest 
> can't even check if it is Intel or AMD CPU at this point (if running 
> under SEV-ES or SEV-SNP).

If it was just telling AMD from Intel, that would be possible. There are
a few well-known differences in how certain instructions behave [1]. But
here you aren't after telling apart the vendors; you want to know whether
you're (fundamentally) on SVM or VT-x.

Of course I have to admit that I find it quite irritating that in order
to execute CPUID one has to have a #VC handler properly set up. This
inverses the typical flow of events. Did they really not think of some
replacement for at least the most basic information?

Jan

[1] Of course, such details can change going forward. Vendors did alter
the behavior of certain insns in the past.


From xen-devel-bounces@lists.xenproject.org Mon Dec 29 14:21:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Dec 2025 14:21:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194055.1512548 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaE7w-0001EW-6i; Mon, 29 Dec 2025 14:21:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194055.1512548; Mon, 29 Dec 2025 14:21:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaE7w-0001EP-3t; Mon, 29 Dec 2025 14:21:40 +0000
Received: by outflank-mailman (input) for mailman id 1194055;
 Mon, 29 Dec 2025 14:21:38 +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
 <SRS0=UciX=7D=gmail.com=jandryuk@srs-se1.protection.inumbo.net>)
 id 1vaE7u-0001EJ-IS
 for xen-devel@lists.xenproject.org; Mon, 29 Dec 2025 14:21:38 +0000
Received: from mail-yw1-x112b.google.com (mail-yw1-x112b.google.com
 [2607:f8b0:4864:20::112b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aef4d2b6-e4c1-11f0-b15c-2bf370ae4941;
 Mon, 29 Dec 2025 15:21:37 +0100 (CET)
Received: by mail-yw1-x112b.google.com with SMTP id
 00721157ae682-78fc7893c93so59085037b3.2
 for <xen-devel@lists.xenproject.org>; Mon, 29 Dec 2025 06:21:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aef4d2b6-e4c1-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1767018096; x=1767622896; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=z444mcpbqBo/U3loZCXm/YDc96pZitp2FUUv2yw0WA0=;
        b=Z/i5+HVZG0bs+zxhOvmygyDU28xkMsfLUQ7NGIc8KQVvvCf+gOlWHYsnwIXVK4uQNq
         0OMcDQMI91AcJvanht7wxGf9oyHRxwM0e657eqeqgiSE/ZN0qv6YtHN+Z5jc1kGXYKGo
         d6RJXzui/C6AD2oMPGvlddX+jkoXugXXe8hLqzsBuxl10NxUEkuI1QN7fGrdAnnEKQ1n
         NbRrUbFOAdfuTWUDqhb6RS1M6kgdwNWV+1jahA5reKSkGkWVnIpPmqcmBK8nhAuVs/UN
         oykQ7ryxLcKY4ryxYk3kLJEnHLdeExWQv2k0v9g3I050DFIyAkBr1AkphxYChL7tfygR
         WErg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767018096; x=1767622896;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=z444mcpbqBo/U3loZCXm/YDc96pZitp2FUUv2yw0WA0=;
        b=k+7fhv890TrZHgeGTt8kDNGOjD7ktTOc5duiRlawAPUkfw5LPoTA91g/9vH03yLUhb
         JeSVe8Uspmmkop9Xa9iR75FnAUHb1/7WTJM+CJjqOKpdZ6NBV/R5DNYfu9dZi6Rg/scl
         6++UTdX5lVxEVDX/pce+wgR3+kfPD2JdILqapEf2xzgDTKJ0X+YfDe20Zm9bKVGTozaE
         bdo5Lg1uYAv07VGHKixDUEqWYg485Sv4Kq0z3JawX7mcbE0j62aHdTQXXVTdVFY46awJ
         +2Z5AmpI1Db027cm+BlF2HELIqa7aYDJWtMm96F/rW7gDhVi77qpMzPqcY/VrT4xObUW
         w98w==
X-Gm-Message-State: AOJu0YwcBjdSRfQWYxyl6h4H88o98FfWt/hsrkXi2h9H/t9m6dMHf29m
	mIU8Xezu2A9Qr//yQtwd6sw0bi+3Ooh2gaUHwLpjA8MX3ELAldOe2Eu9zabka/w1XPxVSl0oioJ
	m+bjXDpviRUvjgLPS/nE/AwIDlFrwM1U=
X-Gm-Gg: AY/fxX7vmozi9GABhRX1E4nqWa3bETrBH3vwVO6L8qURtwlKsqrU39e1AX6hB7n31pD
	rTBYv6H23/KIVsgzCOl1rUdx9AALV5UE9Vl1j/5F8gM0RXpLHBmbYIu51qDtyKXS0Lol8y7tlsN
	vIUCp43j3mvounQTGS24NBaZjB3/IMNX/32/Task/J8ZamNQapKoXxBZqyLMk4asQSIzQQ9uD62
	QhN4ZQBJh4JhL9QJHWCfFFUqz1U2nn63UgpgRRte5HuzFibU73ddRXMTJl/+AfDl2MqNVqHUTJN
	3DotaUgipx6FcHzw/1J8/71QRLM=
X-Google-Smtp-Source: AGHT+IE9pEDqQtHUb/bjKuaIbCji207bhi5Fj7d175ksfCH14OxIzBJa59UWW1hNX02X0Cly7DhAr5t4UcyCaP6dTok=
X-Received: by 2002:a05:690c:6311:b0:788:17ef:4ecf with SMTP id
 00721157ae682-78fb407e423mr287567217b3.50.1767018095747; Mon, 29 Dec 2025
 06:21:35 -0800 (PST)
MIME-Version: 1.0
References: <dg8zeLW4X3RWRJt-1jas5pAqHft5GbxYxS5mNwc4ONE8tDEruL1-5a_e-vQu1RdOUWsMXxKe_Igcewy2zcbnOfkaGVG7y6hXLcLd78HI1po=@proton.me>
In-Reply-To: <dg8zeLW4X3RWRJt-1jas5pAqHft5GbxYxS5mNwc4ONE8tDEruL1-5a_e-vQu1RdOUWsMXxKe_Igcewy2zcbnOfkaGVG7y6hXLcLd78HI1po=@proton.me>
From: Jason Andryuk <jandryuk@gmail.com>
Date: Mon, 29 Dec 2025 09:21:24 -0500
X-Gm-Features: AQt7F2rbJsKstOaPs8sxnLYFgI_7U_kAosD5WrmQNWz1AFMLiwrBNgAjF9ZJHkM
Message-ID: <CAKf6xpsN_RnY2dHnXKj_-UySf1z0auye2qy=KHOEhcBbZ1un9A@mail.gmail.com>
Subject: Re: Cpufreq drivers not working on T480S
To: Milky <milky_way_303030@proton.me>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Milky,

On Sat, Dec 27, 2025 at 9:23=E2=80=AFAM Milky <milky_way_303030@proton.me> =
wrote:
>
> System is T480s with i5-8250U and Libreboot, booting Qubes R4.2 with Xen =
4.17.5.
>
> I=E2=80=99ve tested the following configurations:
>
> 1. `GRUB_CMDLINE_XEN_DEFAULT=3D"cpufreq=3Dxen:performance"` as per [the x=
en docs](https://xenbits.xen.org/docs/unstable/misc/xen-command-line.html#c=
pufreq)
> 2. `GRUB_CMDLINE_XEN_DEFAULT=3D"cpufreq=3Ddom0-kernel dom0_vcpus_pin"` as=
 per [the xen wiki](http://wiki.xenproject.org/wiki/Xen_power_management#Do=
main0_based_cpufreq); tho I suspect this option might be deprecated.
> 3. `GRUB_CMDLINE_XEN_DEFAULT=3D"cpufreq=3Dxen:hwp"`, which should have ac=
tivated [this patch from the Qubes team](https://github.com/QubesOS/qubes-v=
mm-xen/pull/158).

The dom0-kernel option is a legacy configuration and doesn't really
work.  You don't want it.  From the logs below, #1 and #3 enable HWP.

>
> In all cases, `cat /proc/cpuinfo` reports the fixed value `cpu Mhz: 1800`=
, confirmed also using `dmidecode`. `sysbench` in an AppVM with max vcpus c=
onsistently reports about 1600 events per second, while the dom0 CPU stats =
in the previous commands remain unchanged.

Xen domains don't see real-time updates of CPU frequency, so it's
working as intended.  xenpm is the way to query Xen for CPU info.

>`xenpm start 10 | grep 'Avg freq'` reports bizarre values, like `609350368=
 KHz`.

In my testing with HWP, CPU frequency was reported correctly by xenpm.
My 4.8GHz cpu shows 47xx MHz under load, but it would also throttle
down after a bit.

Ok, I previously wrote:
"""
The output of `xenpm get-cpufreq-average`
under HWP looks reasonable for scaling all the way up to 4800MHz
(which can only be hit briefly before throttling down) - I think I've
only seen ~4700MHz as a maximum in my use, and them it may drop to
~4200MHz for extended preiods.  Maybe try that command on your test
system?
"""

That is with the version of HWP upstreamed, which is a later version
than Qubes included in R4.2.

>
> The following commands were also checked:
>
> ```
> $ xenpm get-cpufreq-para
> [CPU0] failed to get cpufreq parameter
> <...>
>
> $ xenpm get-cpufreq-states
> <no output>
>
> $ lsmod | grep 'xen_acpi_processor'
> <no output>
>
> $ modprobe xen_acpi_processor
> modprobe: ERROR: could not insert 'xen_acpi_processor': No such device

Are you sure you are running these commands from dom0?  It looks like
xen_acpi_processor returns -ENODEV/No such device when modprobed from
a domU and not dom0.  You need dom0 to query Xen for this information.

> ```
>
> Based on (this Xen mailing list message)[https://old-list-archives.xen.or=
g/archives/html/xen-devel/2020-01/msg02588.html], the `xen-acpi-processor` =
module is what enables dom0 to pass critical information to Xen. Thus, it s=
eems a big part of the problem is that `xen-acpi-processor` is refusing to =
load.
>
> To rule out causes independent of Xen/Qubes, I booted using a Debian Live=
 image. `sysbench` consistently reported 4000 events per second, while `/sy=
s/cpuinfo` reliably showed a jump from 900Mhz to 3.4GHz.
>
> In conclusion, only under Qubes/Xen, something seems to block the scaling=
 drivers from working on this system.
>
> For each of the configurations above, I am pasting the complete output of=
 `xl dmesg`. Let me know if there is anything else I should do.
>
> ```
> ########################################################################
> # `cpufreq=3Dxen:performance`
>
> (XEN) Built-in command line: ept=3Dexec-sp spec-ctrl=3Dunpriv-mmio
>  Xen 4.17.5
> (XEN) Xen version 4.17.5 (mockbuild@[unknown]) (gcc (GCC) 12.3.1 20230508=
 (Red Hat 12.3.1-1)) debug=3Dn Fri Aug 22 16:12:56 CEST 2025

> (XEN) HWP: 1 notify: 1 act-window: 1 energy-perf: 1 pkg-level: 0 peci: 0
> (XEN) HWP: Hardware Duty Cycling (HDC) supported, enabled
> (XEN) HWP: HW_FEEDBACK not supported
> (XEN) Using HWP for cpufreq

HWP enabled

> ########################################################################
> # `cpufreq=3Ddom0-kernel dom0_vcpus_pin`
>
> (XEN) Built-in command line: ept=3Dexec-sp spec-ctrl=3Dunpriv-mmio
>  Xen 4.17.5
> (XEN) Xen version 4.17.5 (mockbuild@[unknown]) (gcc (GCC) 12.3.1 20230508=
 (Red Hat 12.3.1-1)) debug=3Dn Fri Aug 22 16:12:56 CEST 2025

No HWP line.

> ########################################################################
> # `cpufreq=3Dxen:hwp`
>
> (XEN) Built-in command line: ept=3Dexec-sp spec-ctrl=3Dunpriv-mmio
>  Xen 4.17.5
> (XEN) Xen version 4.17.5 (mockbuild@[unknown]) (gcc (GCC) 12.3.1 20230508=
 (Red Hat 12.3.1-1)) debug=3Dn Fri Aug 22 16:12:56 CEST 2025

> (XEN) Command line: placeholder cpufreq=3Dxen:hwp,verbose loglvl=3Dall do=
m0_mem=3Dmin:1024M dom0_mem=3Dmax:4096M ucode=3Dscan smt=3Doff gnttab_max_f=
rames=3D2048 gnttab_max_maptrack_frames=3D4096 no-real-mode edd=3Doff

> (XEN) HWP: 1 notify: 1 act-window: 1 energy-perf: 1 pkg-level: 0 peci: 0
> (XEN) HWP: Hardware Duty Cycling (HDC) supported, enabled
> (XEN) HWP: HW_FEEDBACK not supported
> (XEN) Using HWP for cpufreq

And HWP enabled again.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Mon Dec 29 14:40:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Dec 2025 14:40:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194070.1512558 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaEQ3-0004IW-KD; Mon, 29 Dec 2025 14:40:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194070.1512558; Mon, 29 Dec 2025 14:40:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaEQ3-0004IP-H6; Mon, 29 Dec 2025 14:40:23 +0000
Received: by outflank-mailman (input) for mailman id 1194070;
 Mon, 29 Dec 2025 14:40:22 +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 <SRS0=1Bjg=7D=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1vaEQ1-0004II-UT
 for xen-devel@lists.xenproject.org; Mon, 29 Dec 2025 14:40:21 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4bfc7018-e4c4-11f0-b15c-2bf370ae4941;
 Mon, 29 Dec 2025 15:40:19 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 2031943445;
 Mon, 29 Dec 2025 14:40:18 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8E160C16AAE;
 Mon, 29 Dec 2025 14:40:17 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4bfc7018-e4c4-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1767019218;
	bh=95eNv0h9dSeUKHPEZrk+7tpopWsRyVF7shUNwo04uqc=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=DszPpcjz/Spb2AyOl63ty/4z8XQXdNDT2k5mex3OvCAL3GdXV9aZIJusPmtNqz3rv
	 aMpD13xVXd9F6++80Vo1rqKhu2Ga2X8v/s+If0TACH4BOK0SOpTYDAwmAq+3imQSqX
	 TU2dgZQ3bGgJvLI+4AKBpfP48IAYG3OSGTJbGAl+h/VcM6+mA+OexW0F+EIc4a49N9
	 0IorIwjny+Ch/PyYfbziHYxnL5aVuMOQ2JKnD5Qs5cdZ6dFWJQFiTuT5Vt71qWYiJS
	 oWyNFHfT7qew344ucLY53r6xzG5+5DuL6XWs5/PDNykw9rtP/xzBZr5VoOvdsQfsZo
	 TfBOjJLvXo88Q==
Date: Mon, 29 Dec 2025 16:40:12 +0200
From: Leon Romanovsky <leon@kernel.org>
To: Barry Song <21cnbao@gmail.com>
Cc: catalin.marinas@arm.com, m.szyprowski@samsung.com, robin.murphy@arm.com,
	will@kernel.org, iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Ada Couprie Diaz <ada.coupriediaz@arm.com>,
	Ard Biesheuvel <ardb@kernel.org>, Marc Zyngier <maz@kernel.org>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Joerg Roedel <joro@8bytes.org>, Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Tangquan Zheng <zhengtangquan@oppo.com>
Subject: Re: [PATCH v2 4/8] dma-mapping: Separate DMA sync issuing and
 completion waiting
Message-ID: <20251229144012.GT11869@unreal>
References: <20251226225254.46197-1-21cnbao@gmail.com>
 <20251226225254.46197-5-21cnbao@gmail.com>
 <20251227200706.GN11869@unreal>
 <CAGsJ_4zyascnpQ1cB-BMO9PDeeRZTBAh8Z-j-ip=RcxApa4zSg@mail.gmail.com>
 <20251228144909.GR11869@unreal>
 <CAGsJ_4y=yoYZn+_ztdfuOCj_dS-M0h8YWO51AXubPbeR1FH6uQ@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CAGsJ_4y=yoYZn+_ztdfuOCj_dS-M0h8YWO51AXubPbeR1FH6uQ@mail.gmail.com>

On Mon, Dec 29, 2025 at 10:38:26AM +1300, Barry Song wrote:
> On Mon, Dec 29, 2025 at 3:49 AM Leon Romanovsky <leon@kernel.org> wrote:
> >
> > On Sun, Dec 28, 2025 at 10:45:13AM +1300, Barry Song wrote:
> > > On Sun, Dec 28, 2025 at 9:07 AM Leon Romanovsky <leon@kernel.org> wrote:
> > > >
> > > > On Sat, Dec 27, 2025 at 11:52:44AM +1300, Barry Song wrote:
> > > > > From: Barry Song <baohua@kernel.org>
> > > > >
> > > > > Currently, arch_sync_dma_for_cpu and arch_sync_dma_for_device
> > > > > always wait for the completion of each DMA buffer. That is,
> > > > > issuing the DMA sync and waiting for completion is done in a
> > > > > single API call.
> > > > >
> > > > > For scatter-gather lists with multiple entries, this means
> > > > > issuing and waiting is repeated for each entry, which can hurt
> > > > > performance. Architectures like ARM64 may be able to issue all
> > > > > DMA sync operations for all entries first and then wait for
> > > > > completion together.
> > > > >
> > > > > To address this, arch_sync_dma_for_* now issues DMA operations in
> > > > > batch, followed by a flush. On ARM64, the flush is implemented
> > > > > using a dsb instruction within arch_sync_dma_flush().
> > > > >
> > > > > For now, add arch_sync_dma_flush() after each
> > > > > arch_sync_dma_for_*() call. arch_sync_dma_flush() is defined as a
> > > > > no-op on all architectures except arm64, so this patch does not
> > > > > change existing behavior. Subsequent patches will introduce true
> > > > > batching for SG DMA buffers.
> > > > >
> > > > > Cc: Leon Romanovsky <leon@kernel.org>
> > > > > Cc: Catalin Marinas <catalin.marinas@arm.com>
> > > > > Cc: Will Deacon <will@kernel.org>
> > > > > Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> > > > > Cc: Robin Murphy <robin.murphy@arm.com>
> > > > > Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
> > > > > Cc: Ard Biesheuvel <ardb@kernel.org>
> > > > > Cc: Marc Zyngier <maz@kernel.org>
> > > > > Cc: Anshuman Khandual <anshuman.khandual@arm.com>
> > > > > Cc: Ryan Roberts <ryan.roberts@arm.com>
> > > > > Cc: Suren Baghdasaryan <surenb@google.com>
> > > > > Cc: Joerg Roedel <joro@8bytes.org>
> > > > > Cc: Juergen Gross <jgross@suse.com>
> > > > > Cc: Stefano Stabellini <sstabellini@kernel.org>
> > > > > Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> > > > > Cc: Tangquan Zheng <zhengtangquan@oppo.com>
> > > > > Signed-off-by: Barry Song <baohua@kernel.org>
> > > > > ---
> > > > >  arch/arm64/include/asm/cache.h |  6 ++++++
> > > > >  arch/arm64/mm/dma-mapping.c    |  4 ++--
> > > > >  drivers/iommu/dma-iommu.c      | 37 +++++++++++++++++++++++++---------
> > > > >  drivers/xen/swiotlb-xen.c      | 24 ++++++++++++++--------
> > > > >  include/linux/dma-map-ops.h    |  6 ++++++
> > > > >  kernel/dma/direct.c            |  8 ++++++--
> > > > >  kernel/dma/direct.h            |  9 +++++++--
> > > > >  kernel/dma/swiotlb.c           |  4 +++-
> > > > >  8 files changed, 73 insertions(+), 25 deletions(-)
> > > >
> > > > <...>
> > > >
> > > > > +#ifndef arch_sync_dma_flush
> > > > > +static inline void arch_sync_dma_flush(void)
> > > > > +{
> > > > > +}
> > > > > +#endif
> > > >
> > > > Over the weekend I realized a useful advantage of the ARCH_HAVE_* config
> > > > options: they make it straightforward to inspect the entire DMA path simply
> > > > by looking at the .config.
> > >
> > > I am not quite sure how much this benefits users, as the same
> > > information could also be obtained by grepping for
> > > #define arch_sync_dma_flush in the source code.
> >
> > It differs slightly. Users no longer need to grep around or guess whether this
> > platform used the arch_sync_dma_flush path. A simple grep for ARCH_HAVE_ in
> > /proc/config.gz provides the answer.
> 
> In any case, it is only two or three lines of code, so I am fine with
> either approach. Perhaps Marek, Robin, and others have a point here?
> 
> >
> > >
> > > >
> > > > Thanks,
> > > > Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
> > >
> > > Thanks very much, Leon, for reviewing this over the weekend. One thing
> > > you might have missed is that I place arch_sync_dma_flush() after all
> > > arch_sync_dma_for_*() calls, for both single and sg cases. I also
> > > used a Python script to scan the code and verify that every
> > > arch_sync_dma_for_*() is followed by arch_sync_dma_flush(), to ensure
> > > that no call is left out.
> > >
> > > In the subsequent patches, for sg cases, the per-entry flush is
> > > replaced by a single flush of the entire sg. Each sg case has
> > > different characteristics: some are straightforward, while others
> > > can be tricky and involve additional contexts.
> >
> > I didn't overlook it, and I understand your rationale. However, this is
> > not how kernel patches should be structured. You should not introduce
> > code in patch X and then move it elsewhere in patch X + Y.
> 
> I am not quite convinced by this concern. This patch only
> separates DMA sync issuing from completion waiting, and it
> reflects that the development is done step by step.
> 
> >
> > Place the code in the correct location from the start. Your patches are
> > small enough to review as is.
> 
> My point is that this patch places the code in the correct locations
> from the start. It splits arch_sync_dma_for_*() into
> arch_sync_dma_for_*() plus arch_sync_dma_flush() everywhere, without
> introducing any functional changes from the outset.
> The subsequent patches clearly show which parts are truly batched.
> 
> In the meantime, I do not have a strong preference here. If you think
> it is better to move some of the straightforward batching code here,
> I can follow that approach. Perhaps I could move patch 5, patch 8,
> and the iommu_dma_iova_unlink_range_slow change from patch 7 here,
> while keeping
> 
>   [PATCH 6] dma-mapping: Support batch mode for
>   dma_direct_{map,unmap}_sg
> 
> and the IOVA link part from patch 7 as separate patches, since that
> part is not straightforward. The IOVA link changes affect both
> __dma_iova_link() and dma_iova_sync(), which are two separate
> functions and require a deeper understanding of the contexts to
> determine correctness. That part also lacks testing.

Don't worry about testing. NVME, RDMA and GPU are using this path
and someone will test it.

> 
> Would that be okay with you?

I don't know, need to see the code.

Thanks

> 
> Thanks
> Barry


From xen-devel-bounces@lists.xenproject.org Mon Dec 29 15:06:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Dec 2025 15:06:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194081.1512568 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaEpE-0007Hx-Fx; Mon, 29 Dec 2025 15:06:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194081.1512568; Mon, 29 Dec 2025 15:06:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaEpE-0007Hq-D8; Mon, 29 Dec 2025 15:06:24 +0000
Received: by outflank-mailman (input) for mailman id 1194081;
 Mon, 29 Dec 2025 15:06:23 +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 <SRS0=PeLl=7D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vaEpD-0007He-4d
 for xen-devel@lists.xenproject.org; Mon, 29 Dec 2025 15:06:23 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ef44a2dc-e4c7-11f0-b15c-2bf370ae4941;
 Mon, 29 Dec 2025 16:06:21 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-47d3ffa6720so33985455e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Dec 2025 07:06:21 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea22674sm64321599f8f.10.2025.12.29.07.06.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Dec 2025 07:06:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ef44a2dc-e4c7-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1767020781; x=1767625581; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3ASk0IL4GdTMIFlqQWlB83En4Kn46atbuh9mB1I3mb0=;
        b=MOuEVaF2x9+I1MZ/nM2PTM1YCysu0axw+7xcbkFIgiqcF0pmQSskLUxv1Y2I5MwzGR
         d8PnSLb625tiaR1UyPxYEl41f0RKNt1TBjeYmPNkiQusMxw2UOidMJf8z8NbAzpcZJWG
         HaO3lwxXkeYKh/yyavsXH+sasEyHK8ov3Fb7AJ2nUc+UQOxqEcu7oDGS+LtYjKI4PJSt
         m3LhbItnvWJJ9vnsTYPwEExkvop9wRCV8Aj/ue7gljKnFwTsza7HmmpS1OmeBAtf4FQa
         mG4y7r0iUh+qMgzkOxexGX+kdJj0hVN9p6NYoYpY2FH2uoKH7Rz5GNusFgqV9BWyyarp
         ayOg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767020781; x=1767625581;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3ASk0IL4GdTMIFlqQWlB83En4Kn46atbuh9mB1I3mb0=;
        b=jVgrvAPRwGeCM/DoltpJlCM4oT65HaAkr0x7p6po4hMse0cH8q0VKYdxgAuaK21SYv
         Nqwo1MuW7MRvF7pdrSKCc3F/nHK7b5CsF+TqNBKtpGapbYmaRptpGPWNt0JQ6YzJjT1U
         v0Y7eZXToryYrzusafC9klkluQllzLY9xf+nh4O/HCqypMP5mGRLLwiDQEExvVUHYjXv
         h0mPoPWnTybgCVCPJysBppcSCRL1yY24I3drM09tmiGyDekFudwMeqoy54lSttSwHI/x
         XR9dCFBCif0GIxHjeGc2iZgjuvslYntpJUy1mx57gcDXgeqjsipa1Qc3+AZy4MOFocwd
         DmNQ==
X-Forwarded-Encrypted: i=1; AJvYcCXIeOF/eAdHQwTd9HhhA0oD6+0gI1qkzLfLMWlmXkWA/AmJveVEK3wRnjIeAokbUimF+cmt1HL3giM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw9L40NoGLRmJRygJ88rhoO3TKVAYJ+7rlHnvQ8Bvq4HqFrrtKv
	XCl7vbackRBI9rOLyMDLe4H5czE2AXZekSEbKO8wjaLMzLnS8Rk6Gcg2K7KBrO+5UA==
X-Gm-Gg: AY/fxX6/hudKTEb/mQBpTmdprV1NXkcde5532DzN4mJKc3IFB1xen8HU+a47X577r0i
	i6nmDQE7eNkj/xDFUzitPrsuN7csMwUi8hwl7VyGhqeuUKDgJwOP6CE+AqRjKcCQi/4wo15b59K
	XvvJbQIlZoW5zBrNNThoM1IEnIPiVs8Nu0LbhkikBWCCtuiLTX5k0lQMdrw1Q88PJkqyAKDOx0B
	ta+lxvyVHBL6jVojWtvRqO8m+tkWbR5jhLomCzG3LS1c5PLsA65mz1tsrT0SkB5QHTSqSOg3Zsx
	CXjbZoWzt2csroZnOzBevwFMKxmHHP+hLhDJ+E3SbiacEsmzgQv+MfTEYFXw9EDEqEb/YiUOMBd
	9vJ7tTt7NlTDwP8Ey6FgYiFdaATvKHtENuLM+t67HD/nhvi4t82AWp+OP9VLI3zPTKI6a9QEM/k
	tnP1iE6sfDXZV/KGpL26DFdMXnP5bU2LugfpsUMPv7yRTE+9mFQK2qACzycCKPNdMlokAJH8OQV
	pM=
X-Google-Smtp-Source: AGHT+IG63OAcNeeFyN1juc0f8JCIZDRtzgIO66IUyWBTlizbr/0n8P4gF1n2/wxZgoikfzqL+fHkhA==
X-Received: by 2002:a05:600c:190f:b0:475:dd89:acb with SMTP id 5b1f17b1804b1-47d195a72fbmr359283205e9.22.1767020780539;
        Mon, 29 Dec 2025 07:06:20 -0800 (PST)
Message-ID: <e77ddd04-3dfa-464c-9655-3cc853e1759e@suse.com>
Date: Mon, 29 Dec 2025 16:06:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 1/3] xen/riscv: add support of page lookup by GFN
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1766406895.git.oleksii.kurochko@gmail.com>
 <5d10efb00eebb35861135280dfee391d0c55cf0d.1766406895.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5d10efb00eebb35861135280dfee391d0c55cf0d.1766406895.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.12.2025 17:37, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -1057,3 +1057,188 @@ int map_regions_p2mt(struct domain *d,
>  
>      return rc;
>  }
> +
> +/*
> + * p2m_get_entry() should always return the correct order value, even if an
> + * entry is not present (i.e. the GFN is outside the range):
> + *   [p2m->lowest_mapped_gfn, p2m->max_mapped_gfn]    (1)
> + *
> + * This ensures that callers of p2m_get_entry() can determine what range of
> + * address space would be altered by a corresponding p2m_set_entry().
> + * Also, it would help to avoid costly page walks for GFNs outside range (1).
> + *
> + * Therefore, this function returns true for GFNs outside range (1), and in
> + * that case the corresponding level is returned via the level_out argument.
> + * Otherwise, it returns false and p2m_get_entry() performs a page walk to
> + * find the proper entry.
> + */
> +static bool check_outside_boundary(const struct p2m_domain *p2m, gfn_t gfn,
> +                                   gfn_t boundary, bool is_lower,
> +                                   unsigned int *level_out)
> +{
> +    unsigned int level = P2M_ROOT_LEVEL(p2m);
> +    bool ret = false;
> +
> +    ASSERT(p2m);
> +
> +    if ( is_lower ? gfn_x(gfn) < gfn_x(boundary)
> +                  : gfn_x(gfn) > gfn_x(boundary) )
> +    {
> +        for ( ; level; level-- )
> +        {
> +            unsigned long mask = BIT(P2M_GFN_LEVEL_SHIFT(level), UL) - 1;
> +
> +            if ( is_lower ? (gfn_x(gfn) | mask) < gfn_x(boundary)
> +                          : (gfn_x(gfn) & ~mask) > gfn_x(boundary) )
> +                break;
> +        }
> +
> +        ret = true;

For this case ...

> +    }
> +
> +    if ( level_out )
> +        *level_out = level;

... this is correct, but of "ret" is still false it very likely isn't, and
arranging things this way may end up being confusing. Perhaps "level" should
be constrained to the if()'s scope? The caller cares about the value only
when the return value is true, after all.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 29 15:13:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Dec 2025 15:13:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194091.1512578 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaEvt-0000XJ-4V; Mon, 29 Dec 2025 15:13:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194091.1512578; Mon, 29 Dec 2025 15:13:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaEvt-0000XC-1v; Mon, 29 Dec 2025 15:13:17 +0000
Received: by outflank-mailman (input) for mailman id 1194091;
 Mon, 29 Dec 2025 15:13:16 +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 <SRS0=PeLl=7D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vaEvs-0000X4-0J
 for xen-devel@lists.xenproject.org; Mon, 29 Dec 2025 15:13:16 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e55ef9c3-e4c8-11f0-b15c-2bf370ae4941;
 Mon, 29 Dec 2025 16:13:14 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-47d1d8a49f5so43683295e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Dec 2025 07:13:14 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47be273e4d5sm601847255e9.6.2025.12.29.07.13.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Dec 2025 07:13:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e55ef9c3-e4c8-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1767021193; x=1767625993; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cEMNAZJfg4M6BLD1chz6Ll2NrohFfZ5xUwnF0tVr3P8=;
        b=C6uBlLf6QJvjSti1ne9t3Kb+5Dx+0igsDJAwEV2f8VZAAnNF+HGC0mWqKrf94YzXki
         gCIelHvyRfce7UKK28FRLb4iynwjvhLVHmkwMWCsoNRAjQDLoiBADOw6Kg7A8kG+2bxx
         4evu6I4rJt1vjF9Ibus3jQ0ClhYTiB+IU4F/yw6WZr6DrhoMV6OgbSgrgz/WwAh0cwKO
         CGm4Q4pA3/DTM8g76Yvz5eWjxLR6rYGlpw77zDMDtHDF954TBqVntrqjb00b3aoxx4J1
         pDHMMN3kdxRKIxPXHlN3dagqne9KwsUYKm/mPKCoEhZusH8Bu2XclzwoKUSPR+xvDkEy
         ZTxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767021194; x=1767625994;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cEMNAZJfg4M6BLD1chz6Ll2NrohFfZ5xUwnF0tVr3P8=;
        b=QOyflxBaSTlab3uQe3Bt1Cp8rmgA7GaWJ4UXOZ2e5B8DWgaZzeFGjC/v45ycLBN45Y
         ptcvd2HF/Hb9YAo0llKBICj6FctCP+SSGAzvNfhwI1v1jS+uS60xhALMJkkkViJaiAUb
         zH1CWaPwB1Zk1y2zLURTi+4XMPSyTQEmS+I3u8zQBgG3Y+nPGfXPkVN+xXwXrx6ehwYR
         mkejjDf7ydangBZsm+rCS9eWBwy4+HeIujKft2ycZZCq8G+PdPSLUmNyoEUjLATaDoJ8
         5+aYMXOFMrEibs8JWgZ9yP3/+c6FoZAmTq926VrU2OQZt2UxEddDjFoU5eAQgJxQGAUs
         KqQQ==
X-Forwarded-Encrypted: i=1; AJvYcCUd1aSVb0tjCOwI0q+/r2WFQl8dQuXQ2Y1Uo57Tp286lkZzh2xbQ2NnYLC8GnYwjQRm83jropn3zcw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxlGWnI6Z9hvTOW/soS/S05gmOtYQhm7EF5PMSg9ckjFibVPTlY
	hP5WxepvKL+MMcRp9RSL4OnFIkOI+1/hqEei+y7TjtsIggA71OQTQa2ZMMjy999Hwg==
X-Gm-Gg: AY/fxX6oQGZZCZhLN0ZWVrUVV493AOMuTzE8nOl+cfsPLSdU931XwKyaeqQpRomDVU4
	JPmIjy5kEl29PO5C4xRrjAcGSnsfwZhAhwVEo6BIpaMuBPDGL48yJw49mol9eZvlANe7BVYohQc
	GOA+5H5HY7weAgrtj9U+RE34oPnoA8DDIcArMV/9xuIm9nJgHOSIG3JNd2sICMLf6ZCBzDH9bxd
	ei3eOypbG3nt66NP7UZXNsdkJ4pIOedR/BAmHahnr/hZKVEzwCEefKP0kIF7tgU/aQhwfArJu00
	AZM7vYuEkhF+bewXlVNb71O/eN4+6PMOy7VV9JB9YcCzI1zMPw5floWwaZUrx1rbvCZeH1DaVAN
	5pusLGCM+lbqafFjh8K2yXlBbXTqZO2aJlvj5jxSXv1RL3KyzZW2NBBfmSA20wVyLznQzGwQOom
	SQyAFhAy74hTjbvwoF9cj4v6ugL+3mAS9fmg04N/StFpHdiHHlKBvQhi9S6G67WmMy6E2cBf2AJ
	qU=
X-Google-Smtp-Source: AGHT+IEQQor23baGQpqgmj00MRK4HFtA48l2g20WC6VPZZV0WoL4ka1/1COdDqZVelsSsUeruESk9Q==
X-Received: by 2002:a05:600c:45cf:b0:47a:7fdd:2906 with SMTP id 5b1f17b1804b1-47d1954a550mr348010855e9.12.1767021193568;
        Mon, 29 Dec 2025 07:13:13 -0800 (PST)
Message-ID: <0a4fb29a-a0b5-4e20-91c4-425702677d11@suse.com>
Date: Mon, 29 Dec 2025 16:13:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 2/3] xen/riscv: introduce metadata table to store P2M
 type
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1766406895.git.oleksii.kurochko@gmail.com>
 <127d893e3b6a0da1195f9a128c8d0591e6ef473d.1766406895.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <127d893e3b6a0da1195f9a128c8d0591e6ef473d.1766406895.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22.12.2025 17:37, Oleksii Kurochko wrote:
> @@ -370,24 +396,96 @@ static struct page_info *p2m_alloc_page(struct p2m_domain *p2m)
>      return pg;
>  }
>  
> -static int p2m_set_type(pte_t *pte, p2m_type_t t)
> +/*
> + * `pte` – PTE entry for which the type `t` will be stored.
> + *
> + * If `t` >= p2m_first_external, a valid `ctx` must be provided.
> + */
> +static void p2m_set_type(pte_t *pte, p2m_type_t t,
> +                         const struct p2m_pte_ctx *ctx)
>  {
> -    int rc = 0;
> +    struct page_info **md_pg;
> +    struct md_t *metadata = NULL;
>  
> -    if ( t > p2m_first_external )
> -        panic("unimplemeted\n");
> -    else
> -        pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
> +    /*
> +     * It is sufficient to compare ctx->index with PAGETABLE_ENTRIES because,
> +     * even for the p2m root page table (which is a 16 KB page allocated as
> +     * four 4 KB pages), calc_offset() guarantees that the page-table index
> +     * will always fall within the range [0, 511].
> +     */
> +    ASSERT(ctx && ctx->index < PAGETABLE_ENTRIES);
>  
> -    return rc;
> +    /*
> +     * At the moment, p2m_get_root_pointer() returns one of four possible p2m
> +     * root pages, so there is no need to search for the correct ->pt_page
> +     * here.
> +     * Non-root page tables are 4 KB pages, so simply using ->pt_page is
> +     * sufficient.
> +     */
> +    md_pg = &ctx->pt_page->v.md.pg;
> +
> +    if ( !*md_pg && (t >= p2m_first_external) )
> +    {
> +        /*
> +         * Since p2m_alloc_page() initializes an allocated page with
> +         * zeros, p2m_invalid is expected to have the value 0 as well.
> +         */
> +        BUILD_BUG_ON(p2m_invalid);
> +
> +        ASSERT(ctx->p2m);

I think I previously asked for this to be moved out of the if(). Else you
may not notice a caller side issue until a point where a metadata page
actually needs allocating. (This could simply be folded into the earlier
ASSERT().)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 30 13:50:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 13:50:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194172.1512593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaa7N-0003xH-8Z; Tue, 30 Dec 2025 13:50:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194172.1512593; Tue, 30 Dec 2025 13:50:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaa7N-0003x9-3t; Tue, 30 Dec 2025 13:50:33 +0000
Received: by outflank-mailman (input) for mailman id 1194172;
 Tue, 30 Dec 2025 13:50:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=owPK=7E=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vaa7L-0003x2-I3
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 13:50:31 +0000
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com
 [2a00:1450:4864:20::432])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 80849b61-e586-11f0-9ccf-f158ae23cfc8;
 Tue, 30 Dec 2025 14:50:29 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-42fed090e5fso4609451f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 30 Dec 2025 05:50:29 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea2278dsm69961974f8f.18.2025.12.30.05.50.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Dec 2025 05:50:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 80849b61-e586-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1767102628; x=1767707428; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=ksrdaSIqpwx0gSdwMJzQe6JesX3RHk4cyQkoMRTQARM=;
        b=DG9vauJ3Q+u4E3CMWSlFW62Y+EV0S2oKGWz+M5zMLSLj/gPcWUXLcjoFpvlWn+aA3s
         J3ckXDTXuqL5ciVnt8oIwhIKsCK4RnyUiBYlOv+QnAFV2e9VMOYGVrpZv1tbx/O8vXZL
         Yuf/U5Clv4vAxdAl7JI3SDVx1rNz+ahe3JN40=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767102628; x=1767707428;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ksrdaSIqpwx0gSdwMJzQe6JesX3RHk4cyQkoMRTQARM=;
        b=H7Cg8OJuS0n8xDpQY1kurQ86NWHoWyE7WPpUBi1kMqRPU3aWSwG+uIk8uCC/SYT/3I
         hu/8cFIEy2KM9u5burQ+y7My0Jo9+gM+v2+5kV1s5q1i6E6q/lkg6/cGjElj7Cr4/8kA
         L22Bc0qA97W8mAHGJr23FLe0GGroVIV118lR1tAPf3cnNazXlT1VjSr0PHoRRGw8q8EA
         s1VXwO6ZECCI/E/pEM+Gjbyu4t08qUm7gnMJaDveJ+SnofqjTYamhHSlEBmxMLXIwF0J
         rUDW+fiI+HUcmbIXWGZ4dHmncJMKdUn/+KE3kNo95G0yFZN1YUsVi60IUGCJDrRR0CwS
         GuyQ==
X-Gm-Message-State: AOJu0YzgZWF1HCFb8lB1/F0r6/CsT+2d3ulYekmQpbOaPpFfZBqGhd6B
	WM4AalOe2SHoOuNfRLcZCF+R95O8TeLZVu6rtgXDtizwyxS25MjZtzPfs+nFa2p2lT97q0vopm+
	ZnAQp
X-Gm-Gg: AY/fxX4Cin9eeNug+DzMr7lxTvRqVYXjgxLdCA3Nw4Uh6no+QxuHnEhKWCbSj21SypI
	sWopjskHtNHMnXP9+2UB1TQ1wKBvYrTExXp1ukjvTy4uhQP5tC6cwlUBO9ejM5rYK61N880lE+D
	5/VkW7vyZQGy1tJLuQUZbEM1+nbdta4DGz0qFb1dpoOEGwbrLar/YPA1DJmoe7pO4tf+ZxFZwVK
	4tx8my2SXPGf2NVvh50fmluMSkX5Gb3oFAGV5Y09qqV9/T9MOD2QWoTUHZrGhIN7dA1RalK5fTg
	Kv7EQl40r/qgqJ+eDTEpZ/Yoy8yq/cn/jhG8FDOw9JznEQnVsRdQJg81JMS9TsFV5oi8EgNpv/t
	AUPsTuzezuL8XXU7bRQUGXeQ85XRyvlHwMi028oaxiZuo6VHSEES1leuamutoZzxCy7GQ1M5xcw
	6ibfzW6oHMMw+ePp9Sb72K/sQcz1PDOJHbDpwRmDgIDfZflGYWX9s+yWq4pmPkMA==
X-Google-Smtp-Source: AGHT+IHaqF47HJqm1YDjq1Jsb9kbryBaY7byzAQJ0uQrFuifDesZdt5QT7Jw47Hx4lpDmHAtkOf3Jg==
X-Received: by 2002:a05:6000:2508:b0:42b:3062:c647 with SMTP id ffacd0b85a97d-4324e4c9d6bmr40179989f8f.21.1767102628412;
        Tue, 30 Dec 2025 05:50:28 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH] xen: Move x86-ism out of muldiv64.c
Date: Tue, 30 Dec 2025 13:50:26 +0000
Message-Id: <20251230135026.188162-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Having an #ifdef CONFIG_X86 section in a common library is rude.

Furthermore, for x86 the main logic is 6 bytes, meaning it's ripe for
inlining.  Create an x86-specific asm/muldiv.h implementing arch_muldiv64().

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

bloat-o-meter results:

  add/remove: 0/1 grow/shrink: 1/2 up/down: 10/-39 (-29)
  Function                                     old     new   delta
  get_count                                    240     250     +10
  calibrate_apic_timer                         211     203      -8
  calibrate_tsc                                190     177     -13
  muldiv64                                      18       -     -18

The increase in get_count is from different register scheduling.
---
 xen/arch/x86/include/asm/muldiv.h | 20 ++++++++++++++++++++
 xen/include/xen/muldiv.h          |  8 ++++++++
 xen/lib/muldiv64.c                |  8 --------
 3 files changed, 28 insertions(+), 8 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/muldiv.h

diff --git a/xen/arch/x86/include/asm/muldiv.h b/xen/arch/x86/include/asm/muldiv.h
new file mode 100644
index 000000000000..563cab0564da
--- /dev/null
+++ b/xen/arch/x86/include/asm/muldiv.h
@@ -0,0 +1,20 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef X86_MULDIV_H
+#define X86_MULDIV_H
+
+#include <xen/stdint.h>
+
+static inline uint64_t attr_const arch_muldiv64(uint64_t a, uint32_t b, uint32_t c)
+{
+    asm_inline (
+        "mulq %[b]\n\t"
+        "divq %[c]"
+        : "+a" (a)
+        : [b] "rm" ((uint64_t)b), [c] "rm" ((uint64_t)c)
+        : "rdx" );
+
+    return a;
+}
+#define arch_muldiv64 arch_muldiv64
+
+#endif /* X86_MULDIV_H */
diff --git a/xen/include/xen/muldiv.h b/xen/include/xen/muldiv.h
index 8ed2c68caf84..e7f8fdcf01ea 100644
--- a/xen/include/xen/muldiv.h
+++ b/xen/include/xen/muldiv.h
@@ -4,6 +4,10 @@
 
 #include <xen/stdint.h>
 
+#if __has_include(<asm/muldiv.h>)
+# include <asm/muldiv.h>
+#endif
+
 uint64_t attr_const generic_muldiv64(uint64_t a, uint32_t b, uint32_t c);
 
 /*
@@ -12,7 +16,11 @@ uint64_t attr_const generic_muldiv64(uint64_t a, uint32_t b, uint32_t c);
  */
 static inline uint64_t attr_const muldiv64(uint64_t a, uint32_t b, uint32_t c)
 {
+#ifdef arch_muldiv64
+    return arch_muldiv64(a, b, c);
+#else
     return generic_muldiv64(a, b, c);
+#endif
 }
 
 #endif /* XEN_MULDIV_H */
diff --git a/xen/lib/muldiv64.c b/xen/lib/muldiv64.c
index 5e6db1b2f4d2..6ee86d124a21 100644
--- a/xen/lib/muldiv64.c
+++ b/xen/lib/muldiv64.c
@@ -2,13 +2,6 @@
 
 uint64_t generic_muldiv64(uint64_t a, uint32_t b, uint32_t c)
 {
-#ifdef CONFIG_X86
-    asm ( "mulq %1; divq %2" : "+a" (a)
-                             : "rm" ((uint64_t)b), "rm" ((uint64_t)c)
-                             : "rdx" );
-
-    return a;
-#else
     union {
         uint64_t ll;
         struct {
@@ -31,7 +24,6 @@ uint64_t generic_muldiv64(uint64_t a, uint32_t b, uint32_t c)
     res.l.low = (((rh % c) << 32) + (uint32_t)rl) / c;
 
     return res.ll;
-#endif
 }
 
 /*
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 30 13:50:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 13:50:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194175.1512603 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaa7n-0004Ih-EE; Tue, 30 Dec 2025 13:50:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194175.1512603; Tue, 30 Dec 2025 13:50:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaa7n-0004Ia-BH; Tue, 30 Dec 2025 13:50:59 +0000
Received: by outflank-mailman (input) for mailman id 1194175;
 Tue, 30 Dec 2025 13:50:58 +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
 <SRS0=owPK=7E=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vaa7m-0004Hp-5H
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 13:50:58 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9058b66c-e586-11f0-b15c-2bf370ae4941;
 Tue, 30 Dec 2025 14:50:57 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-47a8195e515so61479945e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 30 Dec 2025 05:50:56 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47d193d4f09sm609436115e9.12.2025.12.30.05.50.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Dec 2025 05:50:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9058b66c-e586-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1767102655; x=1767707455; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=tYBfgeYkXFs2JqwcJcMeiu4Xt+bQnFiJZLerrgLP0nQ=;
        b=izpVbiUZyAyrTTYVHQGEItgetepm+fzsi88ihswhr2n5ZzTQ4Hytm0o7RNQfWUWZJ3
         lvMDjBJ44kzkUT7BdNSdVsoNJs93BMyVhc0KZa5col4IewDLo7PMhpao9tc+NEchNMca
         8Pe3tQoqhb/lJhQoGtYALJDf3PwCyDc6JT6rY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767102655; x=1767707455;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tYBfgeYkXFs2JqwcJcMeiu4Xt+bQnFiJZLerrgLP0nQ=;
        b=vZ7Asnae43BoTPQ58SYYTa9mvD7oc0MQVvnTO6/OC80Ez8rmrVF5azYTIR5OYzijud
         Yqcg7b0Kej0lZwrkSkE3q7+kjx8c70aPwT51SdNotsjrbQQlGS68lDoVnqCYtimFo+pW
         ieh+PjDPB5tihxy+qsyV0cb22qeNd0F5oA7urSROzURFDrLtEnPm4Nti+Hn0VTY1Es3g
         Z0m6ku8orU5/8bGi5EQFt5nGMTKwVh87WyMbazSVr4pu6guTXmQuzgY4XIU7EY3r99P9
         V0ljRB0ty7diCgIYG248BAT2rStcX0zXEwGeB1/GA/VWCIMAZrylpEa5T84Eq5J6Y/Xx
         i7Sg==
X-Gm-Message-State: AOJu0YyLDwcadxPx7kB+mtw73I3r8wXOSLpRuMS13ryOJvQePza2NMg/
	QmIFrRWMXq/H2BBzHxDsGMxYJ7pyrX+5Y9knT7ji1+wkQJjwQsrmObfRHWPS3ejoewuXk6qZ4/4
	2nie7
X-Gm-Gg: AY/fxX49jt4496orboAF87ewfdWvohV52yhLnpJs/QqeigglcxzYW7xLsR9i5u4+/Y7
	edJPzPNtdtRcK2vZ0TyJTWkRi+B4l8OML/Joh7sbg5q6E4Etlg++JO+XsPlbCvJVunvMfLeey5l
	toagfCVZY6P0d1d/tD7mVwqTRohHw4y02sqH+xYp+2n8sakQ2PhsDyNwAgMuHS3n9Phko8QYD6Z
	YKGcjNDNfECmT26Fl+rsj2wUT0lFkmhmB/uAGpNCwX5pkXiFQ5r8nONd74ZnNzrlSk1xxHfY4TC
	QbyH7JeReMQ6CBWwiQ7RKAZtYp7r8Fg0QCWdMF97plU7cuSFGQgaQVlrcB2C7r/rjpzYfxQsB3t
	lWyvvtcPlAt3eLntNMa/wutHCi+gYQXhiGAJRe9lUtmgAGSR2gOycmM7nKRfLX/VC3gf9dWDF6k
	iLKa6vX3Ym44B8QT3T8tQ/gvDU9WmrQIAi01VkMnnR6T3BebavPtBBmJUV9bLs5A==
X-Google-Smtp-Source: AGHT+IGxPFz0/stvHz7GQfWtCzy3oHV6WfJm4ey2uSL3F/GsksQV6YA/+Rpmm3G3SOyxNE0g7JyK0Q==
X-Received: by 2002:a05:600c:444b:b0:477:561f:6fc8 with SMTP id 5b1f17b1804b1-47d19549625mr351100915e9.5.1767102655140;
        Tue, 30 Dec 2025 05:50:55 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 0/5] xen/lib: muldiv64() cleanup
Date: Tue, 30 Dec 2025 13:50:45 +0000
Message-Id: <20251230135050.188191-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Split out of lib.h, remove x86-isms from the common library.

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2237126270

Andrew Cooper (5):
  xen: Fix endian handling in muldiv64.c
  arm/time: Sort headers
  x86/time: Sort headers
  xen: Split muldiv64() out of lib.h
  xen: Move x86-ism out of muldiv64.c

 xen/arch/arm/time.c               | 21 ++++++++--------
 xen/arch/riscv/include/asm/time.h |  4 +--
 xen/arch/x86/emul-i8254.c         | 12 ++++-----
 xen/arch/x86/include/asm/muldiv.h | 20 +++++++++++++++
 xen/arch/x86/time.c               | 42 ++++++++++++++++---------------
 xen/common/bitops.c               | 12 +++++++++
 xen/include/xen/lib.h             |  2 --
 xen/include/xen/muldiv.h          | 26 +++++++++++++++++++
 xen/lib/muldiv64.c                | 19 +++++---------
 9 files changed, 105 insertions(+), 53 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/muldiv.h
 create mode 100644 xen/include/xen/muldiv.h

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 30 13:50:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 13:50:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194176.1512610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaa7n-0004LY-O0; Tue, 30 Dec 2025 13:50:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194176.1512610; Tue, 30 Dec 2025 13:50:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaa7n-0004Kh-Hx; Tue, 30 Dec 2025 13:50:59 +0000
Received: by outflank-mailman (input) for mailman id 1194176;
 Tue, 30 Dec 2025 13:50:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=owPK=7E=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vaa7m-0003x2-Lg
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 13:50:58 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 90e37f5f-e586-11f0-9ccf-f158ae23cfc8;
 Tue, 30 Dec 2025 14:50:56 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-47d3ffa5f33so18279435e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 30 Dec 2025 05:50:56 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47d193d4f09sm609436115e9.12.2025.12.30.05.50.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Dec 2025 05:50:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 90e37f5f-e586-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1767102656; x=1767707456; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QtIxME32IcIk9TL5Lyl1j6oY1OupajCDrpTY+bON6y0=;
        b=rxYGKRtY5KyM8OBR2oFd7WllbmBKLIc99mmihfHiRLZjTFni0ajRKKQGuKjTBw/fmM
         BDaMMP2vG4azqyIJKAfP1nf7ic4jsycJci18xPdn6O2/CPHgKh4gzHAgb7UzJC+NZYf4
         vG13Gd0SqKw+asx9ISUV3dDN9rIZpTpJ6B2oU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767102656; x=1767707456;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=QtIxME32IcIk9TL5Lyl1j6oY1OupajCDrpTY+bON6y0=;
        b=jAw6RNYsZGWKJWLIrOBL6ZmeBMWsfwnkAcLhBvnFOePvHr1vvcflTLzTZJ8+qhRn2Q
         fPIjYFFhM8QAefNUB3++jKllh0lYUY010sgpA8fBaGVeRrATqZcQZcdwDeqCtrZ8No+E
         Ssxe73JDX9QfHcq4gRuTYFI0wLpPwPInA59Ng8l1FNlfDu9dHbNkZ5nsSxmZR+XBNoIj
         StRIlx6D2iXOJPf7YQI/9hJJQCaQaTHvsguNaCh9nVzjDZVseviRbO9m50cpbyKuu4UZ
         v6m9lTu0dw88GsijRmB7EwJdenVOD7aAYpYWlYK9JO+l06v0a3f4AM7eeXQwC0X9a9Es
         ajJg==
X-Gm-Message-State: AOJu0YxPfR7fB6yktP/qoUzOB1XUa5nezWvsgQlw+861tSrmQWshTwrl
	lWch084WzwohnYvrujcZPVuF8ZAudc9IaZE8d06sozQPmTmVR6g++BEw4IhPqbLw11mCCVIRHyo
	UK1d8
X-Gm-Gg: AY/fxX6VeQ2OP3gNbMoRYl8MNao7xnh2hJLm+hLAId0QnsM90tetukqdzi+CLT91btd
	ItNYVgg7VR1vrgdbXeIqfz5NzckG7UU7KfuMWTLprE3LHjyzjQoPtlhq0ZxYBLhLMw3h1kwjp3k
	fs8W5OJ1QSjeVnsyJDXnPYb2uHWlTPK1S9lFIRldCtA0KtO1i8PgXGmbzPmMn3Hacmx8qxt2QXo
	aaPrtYuEbUgx5GJJqjRuw5C62609VARgcHfQKPJMszqNmk3Wkd3tcNIS8idyt/wNfwEjvXMDKqF
	9tQo2Y41pC/LnLJHXTaLSBMnhpTjG8AzQ76K/0EFNWf4a2WR7xZ3PEfG681kX1coibMuflaGe+z
	C3FzMPx8nZxnUNQWbpstNy7IqAZhigwz5a/VBGO0npngZPuSicJgpdm4OzsEcIi4uo6mw3CaxhU
	N6j1cUxhrKQ1Gp7X5ijqi9Y57Hl3ALVjTfMCbrblrdLGYn47aqjNvo6tGjraBFRg==
X-Google-Smtp-Source: AGHT+IGz0VmipjnUFVNKm5p4tVaOUfiltMaYqpjQFXB0M9G7EvjahUMK1UkSoaBtRX248rO2/cvc+A==
X-Received: by 2002:a05:600c:4e8f:b0:477:df7:b020 with SMTP id 5b1f17b1804b1-47d1957da79mr353493175e9.18.1767102655949;
        Tue, 30 Dec 2025 05:50:55 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 1/5] xen: Fix endian handling in muldiv64.c
Date: Tue, 30 Dec 2025 13:50:46 +0000
Message-Id: <20251230135050.188191-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251230135050.188191-1-andrew.cooper3@citrix.com>
References: <20251230135050.188191-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

WORDS_BIGENDIAN is a QEMU-ism.  In the very dim and distant past, we had a
fork of QEMU living in xen.git which wired WORDS_BIGENDIAN in the userspace
part of the build, but nothing ever wired it up in the hypervisor build.

Fixes: 86d5da49a6f7 ("[HVM] Support multiple HVM time device models coming soon.")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

I'm not sure that this wants backporting, seeing as we have no big-endian
architectures at all.  Otherwse, 4.20 and older can't rely on the existence of
__LITTLE_ENDIAN on older toolchains.
---
 xen/lib/muldiv64.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/xen/lib/muldiv64.c b/xen/lib/muldiv64.c
index 79411f5d59ea..f281578c09a4 100644
--- a/xen/lib/muldiv64.c
+++ b/xen/lib/muldiv64.c
@@ -13,10 +13,12 @@ uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c)
     union {
         uint64_t ll;
         struct {
-#ifdef WORDS_BIGENDIAN
+#if defined(__BIG_ENDIAN)
             uint32_t high, low;
-#else
+#elif defined(__LITTLE_ENDIAN)
             uint32_t low, high;
+#else
+# error Unknown Endianness
 #endif
         } l;
     } u, res;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 30 13:51:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 13:51:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194177.1512623 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaa7o-0004jz-Tp; Tue, 30 Dec 2025 13:51:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194177.1512623; Tue, 30 Dec 2025 13:51:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaa7o-0004jG-QF; Tue, 30 Dec 2025 13:51:00 +0000
Received: by outflank-mailman (input) for mailman id 1194177;
 Tue, 30 Dec 2025 13:50:59 +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
 <SRS0=owPK=7E=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vaa7n-0004Hp-2X
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 13:50:59 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 91bc9c58-e586-11f0-b15c-2bf370ae4941;
 Tue, 30 Dec 2025 14:50:58 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4779adb38d3so65504725e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 30 Dec 2025 05:50:58 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47d193d4f09sm609436115e9.12.2025.12.30.05.50.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Dec 2025 05:50:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 91bc9c58-e586-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1767102657; x=1767707457; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Nd20J3v7uhZuwD0WalGtR1GIlt9QmVuIoVXjLZvsMiU=;
        b=YKzEsi9AZ9awpWfhpN5LaKGr3wHEoS72QftTJYnIwliSfHBj/2cAsV1PDeuh5Dm5QE
         PGgrhRTzGE0775NU+qciVzBy8+sRfyKS84YfIFUHxsHLTw4zqOPiCx9IR5/Q/yj87J/C
         k46KWRaQuRQF4pqiqhG1bO+V+MczrmOZMkVVQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767102657; x=1767707457;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Nd20J3v7uhZuwD0WalGtR1GIlt9QmVuIoVXjLZvsMiU=;
        b=gEq/t9BctY9K1wUjzYIy1WPbEKqJg69oVXe0NGYBHIJm+xxqz578TqdgceShxeLoc/
         NpfhRvInkrY/xSqO7Hd8cJrZBOyp+EKhG/NByUTpedhxz7oXJSrLv8ID/b2cUDtQzNyk
         qYs+CP/2Z7Map5boYRcJ3xIxgMgU+kcN/jvirKTvzRSeHsgyXu5uFwpP9M1BHqCtH4GG
         KdFztd4HA0EIP3K47jx6EjZ3mO/Ikn5Xr9F9JS9M3xK7smfM9Z4v5xrODwKgY7/y33nL
         sIDtWQAtBqgpin+LuksZiPs+xnTVp6YSaF6Pk9+KLJidJQHyqkKznppn/P/8DThqzGwa
         Eb9Q==
X-Gm-Message-State: AOJu0YyG6fOancUeHv72yhZo0Zkhxm9fWkWlCbg2WzsZ0CZwBCkFNEcD
	oyHIPmdpas4N0TRp5lR8hCrDzi2anA22irmX02KXwyopOKeg69T+iKrQfIxAINHbyHj1aEdnZWn
	6bPQZ
X-Gm-Gg: AY/fxX5eTVrooJToFBZCV6rD+C9XlJe0EmDWjYsOY6rfw8Q3DsYwOGI3qYK2TNdF7ed
	E4hd3PR9K4DIDHXSuai9CZHzsDUWX/AHtYbDiem28oSrv4cqt6O+tTKIvbdBvMYqrCAHGeBYYDL
	0t4fXe0E7+dSj+sgXwtGZkNQ3o2a840D0egbsyfeADCjUVYC3ylNX9Ggp+m4F08iNZ2QG/xa046
	oqsxsKu9k5uwProSVWN0zA+e3W4kLxuF6roln7ysmizDXi4MV/Hx7Zwdt/KNscFmZH9mbhDnEVY
	J20W8gW0XVpAc0YBD0b2HVKniBgYi2muUDuD7omnjPFDPt12oROPaRCkibH/8DZS7jBMu5ljYUr
	8Nke1i+Zs9W0/a2BmsIl77WIAfkGj4v+IGpOAcXD2nop5ZmHYfmQsGsaCg2Go+zE1GW/p6Oe4Hz
	UaXZ5i3a+K+EjIs9WGfOBV+OwJi8PifQf2fU0PW88YkOpx7GI1R8zr10Q4Bukptg==
X-Google-Smtp-Source: AGHT+IEIrik/fSPnMFz32DPXSX6e7Ax0GK/XGex1e8Y/JwbScl0g+FWVTaUY/mmvFyW9YrfmzedVog==
X-Received: by 2002:a05:600c:1991:b0:479:3a86:dc1d with SMTP id 5b1f17b1804b1-47d195a63b0mr355075415e9.37.1767102657490;
        Tue, 30 Dec 2025 05:50:57 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 3/5] x86/time: Sort headers
Date: Tue, 30 Dec 2025 13:50:48 +0000
Message-Id: <20251230135050.188191-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251230135050.188191-1-andrew.cooper3@citrix.com>
References: <20251230135050.188191-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... in preparation for a logical change.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/x86/emul-i8254.c | 12 +++++------
 xen/arch/x86/time.c       | 42 ++++++++++++++++++++-------------------
 2 files changed, 28 insertions(+), 26 deletions(-)

diff --git a/xen/arch/x86/emul-i8254.c b/xen/arch/x86/emul-i8254.c
index 144aa168a3f0..c16ed0bead87 100644
--- a/xen/arch/x86/emul-i8254.c
+++ b/xen/arch/x86/emul-i8254.c
@@ -24,19 +24,19 @@
  * IN THE SOFTWARE.
  */
 
-#include <xen/types.h>
-#include <xen/mm.h>
-#include <xen/xmalloc.h>
-#include <xen/lib.h>
 #include <xen/errno.h>
+#include <xen/lib.h>
+#include <xen/mm.h>
 #include <xen/sched.h>
 #include <xen/trace.h>
-#include <asm/time.h>
+#include <xen/xmalloc.h>
+
+#include <asm/current.h>
 #include <asm/hvm/hvm.h>
 #include <asm/hvm/io.h>
 #include <asm/hvm/save.h>
 #include <asm/hvm/vpt.h>
-#include <asm/current.h>
+#include <asm/time.h>
 
 #define domain_vpit(x) (&(x)->arch.vpit)
 #define vcpu_vpit(x)   (domain_vpit((x)->domain))
diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c
index ece9ae0b342e..1aeb144c837a 100644
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -9,38 +9,40 @@
  * Copyright (c) 1991, 1992, 1995  Linus Torvalds
  */
 
+#include <xen/cpuidle.h>
+#include <xen/efi.h>
 #include <xen/errno.h>
 #include <xen/event.h>
-#include <xen/sched.h>
-#include <xen/lib.h>
+#include <xen/guest_access.h>
 #include <xen/init.h>
-#include <xen/param.h>
-#include <xen/time.h>
-#include <xen/timer.h>
-#include <xen/smp.h>
 #include <xen/irq.h>
+#include <xen/keyhandler.h>
+#include <xen/lib.h>
+#include <xen/param.h>
 #include <xen/pci_ids.h>
+#include <xen/sched.h>
+#include <xen/smp.h>
 #include <xen/softirq.h>
-#include <xen/efi.h>
-#include <xen/cpuidle.h>
 #include <xen/symbols.h>
-#include <xen/keyhandler.h>
-#include <xen/guest_access.h>
+#include <xen/time.h>
+#include <xen/timer.h>
+
+#include <asm/acpi.h>
 #include <asm/apic.h>
-#include <asm/io.h>
-#include <asm/iocap.h>
-#include <asm/msr.h>
-#include <asm/mpspec.h>
-#include <asm/processor.h>
+#include <asm/div64.h>
 #include <asm/fixmap.h>
 #include <asm/guest.h>
-#include <asm/mc146818rtc.h>
-#include <asm/mwait.h>
-#include <asm/div64.h>
-#include <asm/acpi.h>
 #include <asm/hpet.h>
 #include <asm/io-ports.h>
-#include <asm/setup.h> /* for early_time_init */
+#include <asm/io.h>
+#include <asm/iocap.h>
+#include <asm/mc146818rtc.h>
+#include <asm/mpspec.h>
+#include <asm/msr.h>
+#include <asm/mwait.h>
+#include <asm/processor.h>
+#include <asm/setup.h>
+
 #include <public/arch-x86/cpuid.h>
 
 /* opt_clocksource: Force clocksource to one of: pit, hpet, acpi. */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 30 13:51:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 13:51:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194178.1512628 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaa7p-0004mV-8g; Tue, 30 Dec 2025 13:51:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194178.1512628; Tue, 30 Dec 2025 13:51:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaa7p-0004m1-2q; Tue, 30 Dec 2025 13:51:01 +0000
Received: by outflank-mailman (input) for mailman id 1194178;
 Tue, 30 Dec 2025 13:50:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=owPK=7E=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vaa7n-0003x2-Lr
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 13:50:59 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 913cc739-e586-11f0-9ccf-f158ae23cfc8;
 Tue, 30 Dec 2025 14:50:57 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-47d493a9b96so15241325e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 30 Dec 2025 05:50:57 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47d193d4f09sm609436115e9.12.2025.12.30.05.50.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Dec 2025 05:50:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 913cc739-e586-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1767102657; x=1767707457; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1UY7wHDyhy76HSLMO+hhfmsr41moB2Cd+smhrFbq1w4=;
        b=ESfyf2lgf19tc2wGmLc+OROXcyM1Z0y9ILPtNWkZ9QEicMozKjhmxgvHh4UweXZpe6
         4mY/wvmtgKOW09uYfvJr9XZTXTogoavwemHV5W/+fKFPAdCV7pwNUI+ZT2odlhICACIo
         9X2aeQrzED/kZZoqSr7LZJqhUCJEIiVG2XHzI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767102657; x=1767707457;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=1UY7wHDyhy76HSLMO+hhfmsr41moB2Cd+smhrFbq1w4=;
        b=PuZX68xEAAhips6a49bYnfyVQ6AYWE46i9ndgD6rSuGIyfVZonq8C6EpQtx6PXcH9F
         sTrdl3QPWaw/wFzLqvJys+Prj7P3pPUKSE8I/KGK22z22y7q9HOTOBw148Tg+48r4ntg
         iFq5rbAJuJrXgh3umY9wcDGbVfw0PUALkhMt3x+bLDu+UOtv4z/wX7LltMm450YulvFM
         /zpkRXHfKYr2SCPBNwh8FD0z8MdvADj2IPMW0IJSrggUP17+KGB3lkq1R+Nb1uog+wlb
         IwaxrUOCTmRY57dZWBBMJrkGwAM+0U0xe7souLYqaAQ/QKWdEeOF3thBhecsGJQHetAp
         up8A==
X-Gm-Message-State: AOJu0YzfAO6c6tWxhxLSSw+DlWSltL89GHx8BnQmfis3Q9r6SG2vLK98
	bAGEGzbIWUBd+wmWRw09ljlUjdbGRPmezEr6c9COPRMoLhiRhjjoVr/0Q3AEYLd9ltYdj3qbo1l
	IlICz
X-Gm-Gg: AY/fxX5BDU9M9rUZtOw8BrBnaGiOld6PSd6+ksjFvN5fMljIxH86UdM08xqhKYmnlAx
	/UyjXhxQ2aCWS6zuFgg4/xfNpQBRP+/c83S4ej0IAivZ4LuNCu4QLUEbMOdPpEHelMdVmYYpggd
	echXWCm+fCqnwij9htiLTSN94h6uu28W4XLljZHwOMmiTFjbd7zhsfbcnoXy1+mRDhKKUtnCbru
	rtoWWzGcT0InjqEVw7CD2srjAuDGi5Mwibsu8Lt0DVdMdzZROgZmiDlds8L1duAt5ESmLQ+GQ4C
	2dfOWCJ5xWxQISJ2lKomwkZ2EuWZ68QzMnZy38+Oeoyc4Tm6+7yGSq/tDk/i47vkWe3475h6DKi
	kK2R4NJxLsujynIVQKRi5fH0BdtSnl2y3uHVUvfhvPn/E5SrdjE4RPP8UPMAhCzUkHtitn8yFog
	2cAS+NEK0cutbmQreKIO1Zf3kYpkjYhRQVIT2kIsZZT1jS90fl67hMkTJ50cDiHQ==
X-Google-Smtp-Source: AGHT+IGy5/FRM8UYMBjx296u1jcZ+PTdZEgmV9Spx3067pocOa7sOZEZT6PNJl7+yi0f/WXrIhKJmQ==
X-Received: by 2002:a05:600c:540e:b0:47a:7fd0:9f01 with SMTP id 5b1f17b1804b1-47d195522f7mr427457905e9.16.1767102656562;
        Tue, 30 Dec 2025 05:50:56 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 2/5] arm/time: Sort headers
Date: Tue, 30 Dec 2025 13:50:47 +0000
Message-Id: <20251230135050.188191-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251230135050.188191-1-andrew.cooper3@citrix.com>
References: <20251230135050.188191-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... in preparation for a logical change.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/arm/time.c | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
index 3710eab109d9..03dc5b51a890 100644
--- a/xen/arch/arm/time.c
+++ b/xen/arch/arm/time.c
@@ -8,26 +8,27 @@
  * Copyright (c) 2011 Citrix Systems.
  */
 
+#include <xen/acpi.h>
 #include <xen/console.h>
+#include <xen/cpu.h>
+#include <xen/delay.h>
 #include <xen/device_tree.h>
+#include <xen/event.h>
 #include <xen/init.h>
 #include <xen/irq.h>
 #include <xen/lib.h>
 #include <xen/mm.h>
-#include <xen/softirq.h>
+#include <xen/notifier.h>
 #include <xen/sched.h>
-#include <xen/time.h>
-#include <xen/delay.h>
 #include <xen/sched.h>
-#include <xen/event.h>
-#include <xen/acpi.h>
-#include <xen/cpu.h>
-#include <xen/notifier.h>
+#include <xen/softirq.h>
+#include <xen/time.h>
+
+#include <asm/cpufeature.h>
+#include <asm/platform.h>
 #include <asm/system.h>
 #include <asm/time.h>
 #include <asm/vgic.h>
-#include <asm/cpufeature.h>
-#include <asm/platform.h>
 
 uint64_t __read_mostly boot_count;
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 30 13:51:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 13:51:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194179.1512632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaa7p-0004sM-IZ; Tue, 30 Dec 2025 13:51:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194179.1512632; Tue, 30 Dec 2025 13:51:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaa7p-0004qt-E4; Tue, 30 Dec 2025 13:51:01 +0000
Received: by outflank-mailman (input) for mailman id 1194179;
 Tue, 30 Dec 2025 13:50:59 +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
 <SRS0=owPK=7E=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vaa7n-0004Hp-QX
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 13:50:59 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9243bd90-e586-11f0-b15c-2bf370ae4941;
 Tue, 30 Dec 2025 14:50:59 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-47d493a9b96so15241485e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 30 Dec 2025 05:50:59 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47d193d4f09sm609436115e9.12.2025.12.30.05.50.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Dec 2025 05:50:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9243bd90-e586-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1767102658; x=1767707458; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BA95S3BhSIKto2edzOKUoBHlxbVHXxGpOHtfMAICa9E=;
        b=OX6Qz1SjNO2ia+XIOznlQAuD20OlUeULYcUW5wuWRODxOcev+slGvGyvGVtZKwGoU8
         jtwuxVXOFPTUPl/njO3PaGDwx6G1lxQqCsjDg7IC+tIK+Miowuvk4EVinl068mKKA/ix
         tQ3LSp/o1NUI0V9S5/Vlypq8jGJc9W8+hYsDo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767102658; x=1767707458;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=BA95S3BhSIKto2edzOKUoBHlxbVHXxGpOHtfMAICa9E=;
        b=RUeVkdxXCHejDL6VjI27hGFQEf72DS+FrWxTGnzkuq9XdkyOlt/BLKMisscYL8pZfa
         apVrTHXHZz81TvUS8/uqyyJUEDk5XFK9B5ETUFS/D1sw6UWRWM3eYmd5I6qCrB8rdUaL
         FUoKrfJlp4L8qOwJ44chrnzKCSYF8Sm0cRtRPwaC09BxEt9mMBOFAbFuWp1N5xmkfwJM
         PVFUn2ClioXg1wVFaSTI4+oV97ej0kOwTg/Il1eqfWNwm45OcuKuwXcO7BPiigzdu5/k
         jMVp8CRXukyzLVjOVSjUHsFlJaFgXcnvWaqjL7qKXv8/ar+TQl5mVhEWpDES/eD3k7Zr
         A5Kw==
X-Gm-Message-State: AOJu0Ywi7OJUy28nGhFTm4Hx0799+E3wDdc90fL36K10QH959/bsEkCZ
	7vkYitKTmPO6xi6FJjGddtBVLD0bT3qgvzQZpSCNNHzDZWFRiYGwkJVNKjKw74+h27rxm+lOEd9
	VLbFQ
X-Gm-Gg: AY/fxX4L8vMftTx4GWCSbPM8r0fh2wrxfKbx1zBn6nPvEedjhbDrweEP16XaBzOnTgI
	2BSK7KSuzMjESB9yQSiIqh+ykEiGkgroMp9i8j4I0GTFUw4KpjCk14wAyGpAd66uCfPf+hwBbQk
	CNcA9lZYOLzmsKPMq65NgeBxWuekVdAc9JL6MmqriXsnUhL8579aVATa51uQH7423CEbNcUDWwS
	yJ02NxULbIaFPxZI9kmelLBLBGaFpdDMkRno8VNRVeG812McXGUCLho+3jA7GWYajnMo6VeblL5
	zTKVsQbilJHdqZ9LGB1RAUKIJjWnEOxviGl0E19K3QCfmfwNo8WEVH+MIftk58KUudde4grpFp/
	Qm4bRMzP+OBTM1TKEcJAJtsdtNB141f/E5Nmi38ecIoZyQq8Qwxz+AOmBpa0jYBrCM8jImPYAQH
	sJmOhft4Wzmih3wSs6MKTSdkCKgaEd+o6eTJhtnV7YcQVL/cOEqulm7+gr6sYQtw==
X-Google-Smtp-Source: AGHT+IGHHSTZHncvNOn5fM7OrVg5QV+HhJ37AY1we+U46sqn0o99VgKmX7EW8/pGnd+VQat7Trgrng==
X-Received: by 2002:a05:600c:45d3:b0:47d:4044:4ada with SMTP id 5b1f17b1804b1-47d40444b44mr238890195e9.13.1767102658310;
        Tue, 30 Dec 2025 05:50:58 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 4/5] xen: Split muldiv64() out of lib.h
Date: Tue, 30 Dec 2025 13:50:49 +0000
Message-Id: <20251230135050.188191-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251230135050.188191-1-andrew.cooper3@citrix.com>
References: <20251230135050.188191-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

muldiv64() has 7 users across all architectures, and is limited to time
handling functions.  Therefore, move it's declaration out of lib.h into a
dedicated header.

Rename the library function to generic_muldiv64(), as x86 is going to provide
an arch_muldiv64() in a subsequent change.

Explain what the function does, including the limitations; x86's version will
suffer a divide error rather than truncate the result to 64 bits.

Annotate it with attr_const, not that this allows the optimiser to improve any
of Xen's current users.  Add one selftest to check the internal precision,
putting it in bitops.c for want of any better place to locate it.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

The reason the selftest can't go in lib/muldiv64.c is because doing so would
exclude the test when the arch variant is used.
---
 xen/arch/arm/time.c               |  2 +-
 xen/arch/riscv/include/asm/time.h |  4 ++--
 xen/arch/x86/emul-i8254.c         |  2 +-
 xen/arch/x86/time.c               |  2 +-
 xen/common/bitops.c               | 12 ++++++++++++
 xen/include/xen/lib.h             |  2 --
 xen/include/xen/muldiv.h          | 18 ++++++++++++++++++
 xen/lib/muldiv64.c                |  5 ++---
 8 files changed, 37 insertions(+), 10 deletions(-)
 create mode 100644 xen/include/xen/muldiv.h

diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
index 03dc5b51a890..7d8b9c0032c1 100644
--- a/xen/arch/arm/time.c
+++ b/xen/arch/arm/time.c
@@ -16,8 +16,8 @@
 #include <xen/event.h>
 #include <xen/init.h>
 #include <xen/irq.h>
-#include <xen/lib.h>
 #include <xen/mm.h>
+#include <xen/muldiv.h>
 #include <xen/notifier.h>
 #include <xen/sched.h>
 #include <xen/sched.h>
diff --git a/xen/arch/riscv/include/asm/time.h b/xen/arch/riscv/include/asm/time.h
index 63bdd471ccac..34e46353cce5 100644
--- a/xen/arch/riscv/include/asm/time.h
+++ b/xen/arch/riscv/include/asm/time.h
@@ -3,8 +3,8 @@
 #define ASM__RISCV__TIME_H
 
 #include <xen/bug.h>
-#include <xen/lib.h>
-#include <xen/types.h>
+#include <xen/muldiv.h>
+
 #include <asm/csr.h>
 
 /* Clock cycles count at Xen startup */
diff --git a/xen/arch/x86/emul-i8254.c b/xen/arch/x86/emul-i8254.c
index c16ed0bead87..5e90a14a5957 100644
--- a/xen/arch/x86/emul-i8254.c
+++ b/xen/arch/x86/emul-i8254.c
@@ -25,8 +25,8 @@
  */
 
 #include <xen/errno.h>
-#include <xen/lib.h>
 #include <xen/mm.h>
+#include <xen/muldiv.h>
 #include <xen/sched.h>
 #include <xen/trace.h>
 #include <xen/xmalloc.h>
diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c
index 1aeb144c837a..c6323143eaf8 100644
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -17,7 +17,7 @@
 #include <xen/init.h>
 #include <xen/irq.h>
 #include <xen/keyhandler.h>
-#include <xen/lib.h>
+#include <xen/muldiv.h>
 #include <xen/param.h>
 #include <xen/pci_ids.h>
 #include <xen/sched.h>
diff --git a/xen/common/bitops.c b/xen/common/bitops.c
index 14e6265037f1..1ed88c966cfd 100644
--- a/xen/common/bitops.c
+++ b/xen/common/bitops.c
@@ -247,3 +247,15 @@ static void __init __constructor test_bitops(void)
     test_multiple_bits_set();
     test_hweight();
 }
+
+#include <xen/muldiv.h>
+
+/* Not a bitop, but here in lieu of any any better location */
+static void __init __constructor test_muldiv64(void)
+{
+    uint64_t res = muldiv64(0xffffffffffffffffULL,
+                            HIDE(0xffffffffU),
+                            HIDE(0xffffffffU));
+    if ( res != 0xffffffffffffffffULL )
+        panic("muldiv64(), expecting -1ULL, got 0x%"PRIx64"\n", res);
+}
diff --git a/xen/include/xen/lib.h b/xen/include/xen/lib.h
index 559e87636c02..bb0fd446b484 100644
--- a/xen/include/xen/lib.h
+++ b/xen/include/xen/lib.h
@@ -136,8 +136,6 @@ unsigned long long simple_strtoull(
 
 unsigned long long parse_size_and_unit(const char *s, const char **ps);
 
-uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c);
-
 /*
  * A slightly more typesafe variant of cmpxchg() when the entities dealt with
  * are pointers.
diff --git a/xen/include/xen/muldiv.h b/xen/include/xen/muldiv.h
new file mode 100644
index 000000000000..8ed2c68caf84
--- /dev/null
+++ b/xen/include/xen/muldiv.h
@@ -0,0 +1,18 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef XEN_MULDIV_H
+#define XEN_MULDIV_H
+
+#include <xen/stdint.h>
+
+uint64_t attr_const generic_muldiv64(uint64_t a, uint32_t b, uint32_t c);
+
+/*
+ * Calculate a * b / c using at least 96-bit internal precision.  The
+ * behaviour is undefined if the end result does not fit in a uint64_t.
+ */
+static inline uint64_t attr_const muldiv64(uint64_t a, uint32_t b, uint32_t c)
+{
+    return generic_muldiv64(a, b, c);
+}
+
+#endif /* XEN_MULDIV_H */
diff --git a/xen/lib/muldiv64.c b/xen/lib/muldiv64.c
index f281578c09a4..5e6db1b2f4d2 100644
--- a/xen/lib/muldiv64.c
+++ b/xen/lib/muldiv64.c
@@ -1,7 +1,6 @@
-#include <xen/lib.h>
+#include <xen/muldiv.h>
 
-/* Compute with 96 bit intermediate result: (a*b)/c */
-uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c)
+uint64_t generic_muldiv64(uint64_t a, uint32_t b, uint32_t c)
 {
 #ifdef CONFIG_X86
     asm ( "mulq %1; divq %2" : "+a" (a)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 30 13:51:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 13:51:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194180.1512642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaa7q-00054j-BC; Tue, 30 Dec 2025 13:51:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194180.1512642; Tue, 30 Dec 2025 13:51:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaa7q-00052P-39; Tue, 30 Dec 2025 13:51:02 +0000
Received: by outflank-mailman (input) for mailman id 1194180;
 Tue, 30 Dec 2025 13:51:00 +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
 <SRS0=owPK=7E=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vaa7o-0004Hp-QZ
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 13:51:00 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 92899115-e586-11f0-b15c-2bf370ae4941;
 Tue, 30 Dec 2025 14:50:59 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-477a219dbcaso80801895e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 30 Dec 2025 05:50:59 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47d193d4f09sm609436115e9.12.2025.12.30.05.50.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Dec 2025 05:50:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 92899115-e586-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1767102659; x=1767707459; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ksrdaSIqpwx0gSdwMJzQe6JesX3RHk4cyQkoMRTQARM=;
        b=bMMYNXN/EGK0xjrft53fh6BnE1Fx+Wcx9W4XVLGsqmU659IAc0hy5RFvxbfYgCLW2o
         uLIWI0gIqm1evIigzD6KK26cFoYQz7D8nwtoQY+62nWdX8ITxsZ9FIgB3tSJkCaY4/U/
         I68XYWwA/uRkTYmH/a5a0OF5jvxp4zOgkGEGE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767102659; x=1767707459;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ksrdaSIqpwx0gSdwMJzQe6JesX3RHk4cyQkoMRTQARM=;
        b=qiq/EbfjaFe0Xb6LP41jKOkRPBiPeRrt6ifdny40TJkVZmcdhwgQw1R7CYIKWMblrL
         HZ9sWplHDwZAWCH7i9+pBmU3Ny5HRegJIaRrbxPWTht0KwXGHqY0pCciIUXPgfER2vWu
         BjcU2qjT1IgxhM6ywMYJ/IaLFnjXuFEUo+kXwK6di9w3u0OEmpdbD2aaMKaQHER3gc6P
         kgs13oyaKq+XdhOZbs8gSWOGr0tVawA5F+skv8A67dPPVhmWCwkHdPchb0ifD6yJ4Gux
         6b2z9l6e733PBqK01rBx//JLar1fPzQoLoAzI5kawuNBFYo1aP/HVZJ1J9246EvCyvIX
         v5ZQ==
X-Gm-Message-State: AOJu0Yx50b0jx8eJEJcFDVhloeBcc3zqjv6TYSQN37dAtW7xX4VTpQtq
	02AO9tXn/r38BUrxfdysXRuNEaATocSMB1Jc/+dpMYwBDQNsv83hGg4as9GVautaSVkeQ07kETU
	xenAF
X-Gm-Gg: AY/fxX5HQ19Y0dLv47WOmpCqghbuSHSPLHYyHiNLZPnkeCAU3OuPeeyoP9K3ct0xiHS
	hGO138xMcSLXcR6K5ScXRQmv+X1sxxJrVJfh1y+i0JYbqEP8O+RE9nahIqJWZqHgoYXUyy2b3e5
	P0y0FTVV0dsweRp02siXsGytGbM5KpMlZO0tZ73bn/Ewu6rId7cZ9NkaSN9IERrQUOMoKRGvnwW
	vVrsvrTvkPmOtowz2hw54EE5vWEv3cgbKWgbwrQ4YsfAbV5VuAQtsYrWuzbw5CcYYe590qo26bk
	WwTYKeD+GBCADcGIEMzBEdDF/hSWgFlxPhsG0XtubA2zQzPRtqnJm/ZT4n3bsjYz4cZRcNQVWmt
	IZRRiBG0uHbqu8PV2tN4apBNvIgzkKWCqBQgZk0Qly/XStKxlxeuuQpQpXiI9OaOJohluO/M46b
	/WL72OJ5qN127C9Qmj2SkJ8DDJDcAfB+LMaUDLzBiwDBcnwoiDykkcKzzyasisC8lW1GhCd9wK
X-Google-Smtp-Source: AGHT+IFAEAT50mQmYWs22sCfPa37f8gLLjVlGYupZVaAxHbVUmEJjNhoe4o1wd6cNKhK2hePrh8pkA==
X-Received: by 2002:a05:600c:6812:b0:477:63b5:7148 with SMTP id 5b1f17b1804b1-47d1955b97cmr412637705e9.6.1767102658924;
        Tue, 30 Dec 2025 05:50:58 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 5/5] xen: Move x86-ism out of muldiv64.c
Date: Tue, 30 Dec 2025 13:50:50 +0000
Message-Id: <20251230135050.188191-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251230135050.188191-1-andrew.cooper3@citrix.com>
References: <20251230135050.188191-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Having an #ifdef CONFIG_X86 section in a common library is rude.

Furthermore, for x86 the main logic is 6 bytes, meaning it's ripe for
inlining.  Create an x86-specific asm/muldiv.h implementing arch_muldiv64().

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

bloat-o-meter results:

  add/remove: 0/1 grow/shrink: 1/2 up/down: 10/-39 (-29)
  Function                                     old     new   delta
  get_count                                    240     250     +10
  calibrate_apic_timer                         211     203      -8
  calibrate_tsc                                190     177     -13
  muldiv64                                      18       -     -18

The increase in get_count is from different register scheduling.
---
 xen/arch/x86/include/asm/muldiv.h | 20 ++++++++++++++++++++
 xen/include/xen/muldiv.h          |  8 ++++++++
 xen/lib/muldiv64.c                |  8 --------
 3 files changed, 28 insertions(+), 8 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/muldiv.h

diff --git a/xen/arch/x86/include/asm/muldiv.h b/xen/arch/x86/include/asm/muldiv.h
new file mode 100644
index 000000000000..563cab0564da
--- /dev/null
+++ b/xen/arch/x86/include/asm/muldiv.h
@@ -0,0 +1,20 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef X86_MULDIV_H
+#define X86_MULDIV_H
+
+#include <xen/stdint.h>
+
+static inline uint64_t attr_const arch_muldiv64(uint64_t a, uint32_t b, uint32_t c)
+{
+    asm_inline (
+        "mulq %[b]\n\t"
+        "divq %[c]"
+        : "+a" (a)
+        : [b] "rm" ((uint64_t)b), [c] "rm" ((uint64_t)c)
+        : "rdx" );
+
+    return a;
+}
+#define arch_muldiv64 arch_muldiv64
+
+#endif /* X86_MULDIV_H */
diff --git a/xen/include/xen/muldiv.h b/xen/include/xen/muldiv.h
index 8ed2c68caf84..e7f8fdcf01ea 100644
--- a/xen/include/xen/muldiv.h
+++ b/xen/include/xen/muldiv.h
@@ -4,6 +4,10 @@
 
 #include <xen/stdint.h>
 
+#if __has_include(<asm/muldiv.h>)
+# include <asm/muldiv.h>
+#endif
+
 uint64_t attr_const generic_muldiv64(uint64_t a, uint32_t b, uint32_t c);
 
 /*
@@ -12,7 +16,11 @@ uint64_t attr_const generic_muldiv64(uint64_t a, uint32_t b, uint32_t c);
  */
 static inline uint64_t attr_const muldiv64(uint64_t a, uint32_t b, uint32_t c)
 {
+#ifdef arch_muldiv64
+    return arch_muldiv64(a, b, c);
+#else
     return generic_muldiv64(a, b, c);
+#endif
 }
 
 #endif /* XEN_MULDIV_H */
diff --git a/xen/lib/muldiv64.c b/xen/lib/muldiv64.c
index 5e6db1b2f4d2..6ee86d124a21 100644
--- a/xen/lib/muldiv64.c
+++ b/xen/lib/muldiv64.c
@@ -2,13 +2,6 @@
 
 uint64_t generic_muldiv64(uint64_t a, uint32_t b, uint32_t c)
 {
-#ifdef CONFIG_X86
-    asm ( "mulq %1; divq %2" : "+a" (a)
-                             : "rm" ((uint64_t)b), "rm" ((uint64_t)c)
-                             : "rdx" );
-
-    return a;
-#else
     union {
         uint64_t ll;
         struct {
@@ -31,7 +24,6 @@ uint64_t generic_muldiv64(uint64_t a, uint32_t b, uint32_t c)
     res.l.low = (((rh % c) << 32) + (uint32_t)rl) / c;
 
     return res.ll;
-#endif
 }
 
 /*
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 30 13:54:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 13:54:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194216.1512664 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaaBG-0007Rq-Nl; Tue, 30 Dec 2025 13:54:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194216.1512664; Tue, 30 Dec 2025 13:54:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaaBG-0007Rj-Jr; Tue, 30 Dec 2025 13:54:34 +0000
Received: by outflank-mailman (input) for mailman id 1194216;
 Tue, 30 Dec 2025 13:54:34 +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
 <SRS0=owPK=7E=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vaaBG-0007RX-7A
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 13:54:34 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 11be3e64-e587-11f0-b15c-2bf370ae4941;
 Tue, 30 Dec 2025 14:54:33 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-47d1d8a49f5so48021825e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 30 Dec 2025 05:54:33 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea226d1sm70198245f8f.13.2025.12.30.05.54.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Dec 2025 05:54:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11be3e64-e587-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1767102872; x=1767707672; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=7tu/fYS4END1+h4Qjl1KijmHV3ettMWF8gZSQ2ye7nw=;
        b=RK7Ngxsyc+t6fifWMZPUQV1i2iAARqJrkDet7fxI2YgWE01i42kLPjGuigxBTOTkcV
         m4lONeXO4/g3sDmUnAbF0st/nYp/0KSRinL4rXltojR73RUAngVqX2hWIs3hZ9rTg0B+
         Zc1oJwEw+TK909IeiOa0DJb1Kmd/yss0Dud9E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767102872; x=1767707672;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7tu/fYS4END1+h4Qjl1KijmHV3ettMWF8gZSQ2ye7nw=;
        b=UaJiJTzIO1KMCut3zhXBKXD8DsCYJZpTH+VQkV1NZNzQ5ozpwBIUONrcD9KMzsLtMt
         DRy/9TtLcgsmkuZdZhnhj26sIHYfHO+wOvYw+Ix7i6m+q9aGxNEexZsAnnNscukJO5eu
         W4oTRxNxw/aVA54c2QUc0uoMVV6Icnc7DRsjVocoSwYlseKAN4EDu5zNVppT3wOrqe9Q
         YgXrXAzm5eVHzkhifYESIDKQLAX/f60nInpwDw7V+/t2GxIkItwdH9uC577WGyWIu4VA
         JB9TD1MmxALhiyyeFAEraamEddnp+F5XRyI07+DOlGGszALEY8teRwenRavRAxr/ocOZ
         UPig==
X-Gm-Message-State: AOJu0YyCs8uqOIP5XFpVIPx19B/T6rZJEyMf+oo8dl96wvU+7h1Br+dl
	ui2g/BF+DW6UdF9oIwsFvEoRQxV/FC34TEm2m02280lXlHvQMWb1yyGGcrM5tSwZVbsSMwc3wtK
	1fZwZ
X-Gm-Gg: AY/fxX5sT7TPSyhXGHVNAItqQu83+RzJhe4LKVbAOIDFLk2yk5kYpk8DWdF+pNsBN1n
	njc+GxEV9AtN0E/hfet0lw9Y4hQazaiuAHpTpIEBSi8PuAYGlXhmRGrCCIWdQpUWcFV350ncpPP
	/tG8P0ul8vN1pPkwrLACfxQLjRDqFVZXYkaKeYOpo7PFHJexOF8qmFci2mNS5ZmYtIYrnvpZSjb
	vi6nfpztYxQGb522Tg5dUHjeZPSHvmpdbFPBjh4pI4qmyJQ/iz/a81me2KZN89JBFXRIQD1BNiE
	36wzlPFm0bnaz+4V7cmVliXs4+7bKcjEXTtlr63gFCJPzGwob7JaTjYKa3tUVD13NhDxeTVFLsp
	czWten+kRdqHsTG5xAYcJGxmPibECxDy2g7LCH5yKql8uTsD43ZTvD7Dzxqc+tFY+ivTrCfsMED
	ghWTBnfiOeVOaWI50CteKrareRdWYmblRztv8fIu0lbzVTLhyk8Sd85IcCWHLe/w==
X-Google-Smtp-Source: AGHT+IGds8JKrPJVYpKbJ/GPvHVI0B4u7sWhxmvUk4U3sCURN+engOa1QqvXgpOOIpTebHtcCpk7Vg==
X-Received: by 2002:a05:600c:46ce:b0:477:fcb:226b with SMTP id 5b1f17b1804b1-47d1953c020mr347828535e9.2.1767102871569;
        Tue, 30 Dec 2025 05:54:31 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 0/4] x86/asm: .byte removal
Date: Tue, 30 Dec 2025 13:54:23 +0000
Message-Id: <20251230135427.188440-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The remaining conversion of .byte to real instructions following the toolchain
upgrade.

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2237162011

Andrew Cooper (4):
  x86/xstate: Deindent the logic in xrstor()
  x86/xstate: Rework XSAVE/XRSTOR given a newer toolchain baseline
  x86/i387: Rework fpu_fxrstor() given a newer toolchain baseline
  x86: Avoid using .byte for instructions where safe to do so

 xen/arch/x86/arch.mk                   |   4 +
 xen/arch/x86/i387.c                    |  65 ++++-----
 xen/arch/x86/include/asm/asm-defns.h   |   4 -
 xen/arch/x86/include/asm/msr.h         |   2 +
 xen/arch/x86/include/asm/prot-key.h    |   6 +-
 xen/arch/x86/include/asm/xstate.h      |   3 +-
 xen/arch/x86/x86_emulate/0f01.c        |   2 +-
 xen/arch/x86/x86_emulate/x86_emulate.c |  34 +++--
 xen/arch/x86/xstate.c                  | 176 ++++++++++++-------------
 9 files changed, 143 insertions(+), 153 deletions(-)

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 30 13:54:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 13:54:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194217.1512673 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaaBH-0007fe-Tt; Tue, 30 Dec 2025 13:54:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194217.1512673; Tue, 30 Dec 2025 13:54:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaaBH-0007fX-Qq; Tue, 30 Dec 2025 13:54:35 +0000
Received: by outflank-mailman (input) for mailman id 1194217;
 Tue, 30 Dec 2025 13:54:34 +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
 <SRS0=owPK=7E=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vaaBG-0007RX-SA
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 13:54:34 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 123aa444-e587-11f0-b15c-2bf370ae4941;
 Tue, 30 Dec 2025 14:54:33 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-477bf34f5f5so72873675e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 30 Dec 2025 05:54:33 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea226d1sm70198245f8f.13.2025.12.30.05.54.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Dec 2025 05:54:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 123aa444-e587-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1767102873; x=1767707673; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Fj4LBIkgsuTZTvHR2D7plIKvcLJKz3RzRrwX7uG+/rA=;
        b=wdhpvJ74jYKhyfxlG6jFwM0AgE6PHC7C4rQqNvubFs6o7St/E2KKZirU1mw2wpas4g
         Z9SCeB5D8j7QXwDlFTfYLOCw9Z/eUR/AzTKhVk7vZTE83bkApTDY7BRPYOUlRubE6Mf7
         RPQCjW1cigOQYEz2PmWYYKvQmajOHdwjjRluc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767102873; x=1767707673;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Fj4LBIkgsuTZTvHR2D7plIKvcLJKz3RzRrwX7uG+/rA=;
        b=P0iKm3JhSPVr2ceu5BoW79pI6TDLAAHbRL1aM0PNjj7Nd3eDCPfQOcQIRkKLXKV9Ry
         SVSP3dS75r7oyaWRJsmHvIQ4W0A5MDLdgKePAxod1+jNWiJEHRccu/tU7d/ip2uDdcqE
         Lm+LVtRm0LBK6WZTTSiUb0WYtuiY7fY4ZnQCcEU3NMfCch1Rff+lPlG9R6YPCbloBBLg
         syLdvQVY0eq+9hT+4UQnQzxEZxg7lsJF4VBZpfI0hoDlDnM2aOKu8lR2jiu+SAbX3Lx7
         +mbiXK/r3IcdlGq0Uslq23Tc5K9b6DyID3qOS5/BJ0YxObNu9eiC7EBecCJNaZCe1OAL
         gCsQ==
X-Gm-Message-State: AOJu0YwX8nPb44wKsApGr6mDj0sjmT4bNyij3bhiZ61YOsHgMhn0Mtzm
	troQ4eSujFVvR3d6XKfAfRKCfJcc8BpLBYHo7XLobr6t+5qvKLSTTw9m4dlQMKM3+KWQlFvnYOT
	DCK2b
X-Gm-Gg: AY/fxX43cvM7t2nXX1q224VSqIqtH66DdAPu9bLYpbnv4TS5RoQ80UhyfdKvAf/nE6V
	OTLONkcylzL1qjecPMKJmF5d453Fi5jIaNby45bx+YvzKCvbcJeUR9MJmz8cAio9pzvIrauPKfd
	UBk8CkT+RHd1kqIZxFiBPtjhGEquU7azPDdv9nXNiR2O053luaaROf/YBrPBEvHoyd5SUXFi2OM
	UAkQr3m+F+WNdK13GcLA3qvc924/qvMlzy3brZl4drtfGXTzy7iY5gZ9a3sbKlqRQgMT6lNd/ou
	hC4qPVFDjODoCIsaXxWPxq4KYetN3+h6jDTURDk5CCtKY12rIyV1TAcxewusJlqixvVqAnFOZwY
	uC9CscHshg7EKbxVwBP+InklRBz7XCADWg94PeSEL8pohpG2eoYFNmHTuiC5sm8n1EMB+vZolKb
	o2p6ezhYuSPPbfIpF5DWfvJlaN+RvBNnIVPDVMKVDbwHTtb3Dghd1rCET0hYekvw==
X-Google-Smtp-Source: AGHT+IEMX5GLBww93BLDQ//qBhV7DqxxfhjOyAzavyTo24n3r0wKnHq93KIb08ORzFBU2kARDwiTBw==
X-Received: by 2002:a05:600c:1988:b0:477:76c2:49c9 with SMTP id 5b1f17b1804b1-47d216f9b5cmr265963385e9.2.1767102873102;
        Tue, 30 Dec 2025 05:54:33 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 3/4] x86/i387: Rework fpu_fxrstor() given a newer toolchain baseline
Date: Tue, 30 Dec 2025 13:54:26 +0000
Message-Id: <20251230135427.188440-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251230135427.188440-1-andrew.cooper3@citrix.com>
References: <20251230135427.188440-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Use asm goto rather than hiding a memset() in the fixup section.  With the
compiler now able to see the write into fpu_ctxt (as opposed to the asm
constraint erroneously stating it as input-only), it validly objects to the
pointer being const.

While FXRSTOR oughtn't to fault on an all-zeros input, avoid a risk of an
infinite loop entirely by using a fixup scheme similar to xrstor(), and
crashing the domain if we run out options.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/i387.c | 65 ++++++++++++++++++++-------------------------
 1 file changed, 29 insertions(+), 36 deletions(-)

diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index b84cd6f7a9e1..e0714ab2267d 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -38,7 +38,8 @@ static inline void fpu_xrstor(struct vcpu *v, uint64_t mask)
 /* Restore x87 FPU, MMX, SSE and SSE2 state */
 static inline void fpu_fxrstor(struct vcpu *v)
 {
-    const fpusse_t *fpu_ctxt = &v->arch.xsave_area->fpu_sse;
+    fpusse_t *fpu_ctxt = &v->arch.xsave_area->fpu_sse;
+    unsigned int faults = 0;
 
     /*
      * Some CPUs don't save/restore FDP/FIP/FOP unless an exception
@@ -59,49 +60,41 @@ static inline void fpu_fxrstor(struct vcpu *v)
      * possibility, which may occur if the block was passed to us by control
      * tools or through VCPUOP_initialise, by silently clearing the block.
      */
+ retry:
     switch ( __builtin_expect(fpu_ctxt->x[FPU_WORD_SIZE_OFFSET], 8) )
     {
     default:
-        asm_inline volatile (
+        asm_inline volatile goto (
             "1: fxrstorq %0\n"
-            ".section .fixup,\"ax\"   \n"
-            "2: push %%"__OP"ax       \n"
-            "   push %%"__OP"cx       \n"
-            "   push %%"__OP"di       \n"
-            "   lea  %0,%%"__OP"di    \n"
-            "   mov  %1,%%ecx         \n"
-            "   xor  %%eax,%%eax      \n"
-            "   rep ; stosl           \n"
-            "   pop  %%"__OP"di       \n"
-            "   pop  %%"__OP"cx       \n"
-            "   pop  %%"__OP"ax       \n"
-            "   jmp  1b               \n"
-            ".previous                \n"
-            _ASM_EXTABLE(1b, 2b)
-            :
-            : "m" (*fpu_ctxt), "i" (sizeof(*fpu_ctxt) / 4) );
+            _ASM_EXTABLE(1b, %l[fault])
+            :: "m" (*fpu_ctxt)
+            :: fault );
         break;
+
     case 4: case 2:
-        asm_inline volatile (
-            "1: fxrstor %0         \n"
-            ".section .fixup,\"ax\"\n"
-            "2: push %%"__OP"ax    \n"
-            "   push %%"__OP"cx    \n"
-            "   push %%"__OP"di    \n"
-            "   lea  %0,%%"__OP"di \n"
-            "   mov  %1,%%ecx      \n"
-            "   xor  %%eax,%%eax   \n"
-            "   rep ; stosl        \n"
-            "   pop  %%"__OP"di    \n"
-            "   pop  %%"__OP"cx    \n"
-            "   pop  %%"__OP"ax    \n"
-            "   jmp  1b            \n"
-            ".previous             \n"
-            _ASM_EXTABLE(1b, 2b)
-            :
-            : "m" (*fpu_ctxt), "i" (sizeof(*fpu_ctxt) / 4) );
+        asm_inline volatile goto (
+            "1: fxrstor %0\n"
+            _ASM_EXTABLE(1b, %l[fault])
+            :: "m" (*fpu_ctxt)
+            :: fault );
         break;
     }
+
+    return;
+
+ fault:
+    faults++;
+
+    switch ( faults )
+    {
+    case 1: /* Stage 1: Reset all state. */
+        memset(fpu_ctxt, 0, sizeof(*fpu_ctxt));
+        goto retry;
+
+    default: /* Stage 2: Nothing else to do. */
+        domain_crash(v->domain, "Uncorrectable FXRSTOR fault\n");
+        return;
+    }
 }
 
 /*******************************/
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 30 13:54:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 13:54:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194218.1512684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaaBJ-0007uT-C5; Tue, 30 Dec 2025 13:54:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194218.1512684; Tue, 30 Dec 2025 13:54:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaaBJ-0007uL-6g; Tue, 30 Dec 2025 13:54:37 +0000
Received: by outflank-mailman (input) for mailman id 1194218;
 Tue, 30 Dec 2025 13:54:35 +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
 <SRS0=owPK=7E=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vaaBH-0007RX-SB
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 13:54:35 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 12575937-e587-11f0-b15c-2bf370ae4941;
 Tue, 30 Dec 2025 14:54:34 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-42b3b0d76fcso5737414f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 30 Dec 2025 05:54:34 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea226d1sm70198245f8f.13.2025.12.30.05.54.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Dec 2025 05:54:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 12575937-e587-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1767102873; x=1767707673; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MN4BFE0zEOL3BVNw4e4DwpxZUXh2vOZGnzYNY10L858=;
        b=HT7N8+PxYkzY+OrxbC1s3vhI7tWNqDVDu30adLMucxDWQXurWNVsBer3hNoA+8LMLo
         KMCmbxKQNp8eTcYWmqkd6nEK7/uM+HPbc94JNGSzB+zUVj1fJXvZNNjdYTThfYoJnGRe
         oqBA+1LVCTMTygoazKbwmtTdMTxkLDFJiLEyY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767102873; x=1767707673;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=MN4BFE0zEOL3BVNw4e4DwpxZUXh2vOZGnzYNY10L858=;
        b=b1ywm5xppRVvOvvMF0qMSsisnAC5O2bjt6W0LZ1hyxghznXzEVn8MsvD9ZYbRRtTNQ
         p/K9faL+M0UqkegrinMQ67wiiSIYuRFwAmJtbwoKDka06UWGpllZ9swqQnuvssPO7Y6d
         FmAraJn4Zanzfh0GBnoq4cc9tT+4vtX8FEAlNnQk3d0YTAg7yKicL5kyPhmNCN+4R6p6
         zDBabIQXflGL/PxtuJ8devKifOEjVRD5o//PIOXoXQfrB7c3fffGJ5MkrXBsBEFzlKAj
         gQzkquASeKKgFnTV7s7v3CZ1LwCXt8yH3Nd6apwakVerUNFm/USyj18nWzQ5Au8HexQK
         lPwA==
X-Gm-Message-State: AOJu0YwFFuYfNSlMTy0IIxiheEn6sdkvTXzRAiT3IA6awxLk/H3jwe7e
	s5ZvMztGIQfVTsR3QcflNOypWvHfeWvKWvDO9T0lnnLtFfWMPVjfY2z89qF+uTCm8kZ0IHMRTtN
	Pbjzy
X-Gm-Gg: AY/fxX6+MhpHlShmDda9TVgbduLPRTefg+tCsdNTaxTCnizJT29DQ1LnPtyCge5WHD9
	HupBfXWEGQyUJqwLJ9S5uxL5bw8gDiZ6vK16jUkNJDyFD8dNYkSmuYxSQ6BPIK8bLRZmYqot6iE
	E6OZZChSo60WQS4oh568uPlGCK4b1YVuYJzMy20LBg2e8D/aWoVTaKCfpUWhdzzS9Oe+JQa1OOs
	rEEv3nrxLLBVrvDEs2x5iB/Gbzn/3Vi2STOBKK1vhDutatWh1z/QGETgtGf9mrEe2E6NuZRmj9m
	rnLcWQ19Jkao+YEcsv0WxPojsflJPTL4IkD8MGJue2P/tEqDe6I6LWa9cjX4+t/vpqhe/G9ufz+
	Az0ddu9oDG3QopW1LuDWbnnsLipvVttHwmcX/78j7sE0WV8+SWcquIsxdIxxk7xud3osNjrTm37
	yYDCgV7Q1PRCgYrZYrbjee9ztuIB5ecQp5LOMc2bwz6JRBxtonr2aB71FR9bA52A==
X-Google-Smtp-Source: AGHT+IHFH/BV9WhXNCgKpX0SIy7xp1x+BfEGUzDeblCEGZc8taSwD0E9sOYy6vTP8EC8/FdC48ljbg==
X-Received: by 2002:a05:6000:178e:b0:430:b100:f594 with SMTP id ffacd0b85a97d-4324e50d9bcmr41314069f8f.50.1767102872660;
        Tue, 30 Dec 2025 05:54:32 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 2/4] x86/xstate: Rework XSAVE/XRSTOR given a newer toolchain baseline
Date: Tue, 30 Dec 2025 13:54:25 +0000
Message-Id: <20251230135427.188440-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251230135427.188440-1-andrew.cooper3@citrix.com>
References: <20251230135427.188440-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The new toolchain baseline knows all the mnemonics, so a plain memory operand
can be used, rather than needing to hard-code the ModRM byte as (%rdi).

For xrstor(), use asm goto rather than hiding the increment of the faults
variable inside the .fixup section.  Remove the loop and replace it with a
goto retry pattern.  Put the domain_crash() into the default case for fault
handling, and provide a concrete error message rather than leaving it as an
exercise for extra code diving.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/xstate.c | 77 ++++++++++++++++++++-----------------------
 1 file changed, 36 insertions(+), 41 deletions(-)

diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index 384f78bd5281..4215a83efefb 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -310,21 +310,21 @@ void xsave(struct vcpu *v, uint64_t mask)
     uint32_t hmask = mask >> 32;
     uint32_t lmask = mask;
     unsigned int fip_width = v->domain->arch.x87_fip_width;
-#define XSAVE(pfx) \
-        if ( v->arch.xcr0_accum & XSTATE_XSAVES_ONLY ) \
-            asm volatile ( ".byte " pfx "0x0f,0xc7,0x2f\n" /* xsaves */ \
-                           : "=m" (*ptr) \
-                           : "a" (lmask), "d" (hmask), "D" (ptr) ); \
-        else \
-            alternative_io(".byte " pfx "0x0f,0xae,0x27\n", /* xsave */ \
-                           ".byte " pfx "0x0f,0xae,0x37\n", /* xsaveopt */ \
-                           X86_FEATURE_XSAVEOPT, \
-                           "=m" (*ptr), \
-                           "a" (lmask), "d" (hmask), "D" (ptr))
+
+#define XSAVE(pfx)                                                      \
+    if ( v->arch.xcr0_accum & XSTATE_XSAVES_ONLY )                      \
+        asm volatile ( "xsaves %0"                                      \
+                       : "=m" (*ptr)                                    \
+                       : "a" (lmask), "d" (hmask) );                    \
+    else                                                                \
+        alternative_io("xsave %0",                                      \
+                       "xsaveopt %0", X86_FEATURE_XSAVEOPT,             \
+                       "=m" (*ptr),                                     \
+                       "a" (lmask), "d" (hmask))
 
     if ( fip_width == 8 || !(mask & X86_XCR0_X87) )
     {
-        XSAVE("0x48,");
+        XSAVE("rex64 ");
     }
     else if ( fip_width == 4 )
     {
@@ -349,7 +349,7 @@ void xsave(struct vcpu *v, uint64_t mask)
 
         ptr->fpu_sse.fip.addr = bad_fip;
 
-        XSAVE("0x48,");
+        XSAVE("rex64 ");
 
         /* FIP/FDP not updated? Restore the old FIP value. */
         if ( ptr->fpu_sse.fip.addr == bad_fip )
@@ -384,7 +384,7 @@ void xrstor(struct vcpu *v, uint64_t mask)
     uint32_t hmask = mask >> 32;
     uint32_t lmask = mask;
     struct xsave_struct *ptr = v->arch.xsave_area;
-    unsigned int faults, prev_faults;
+    unsigned int faults = 0;
 
     /*
      * Some CPUs don't save/restore FDP/FIP/FOP unless an exception
@@ -405,22 +405,15 @@ void xrstor(struct vcpu *v, uint64_t mask)
      * possibility, which may occur if the block was passed to us by control
      * tools or through VCPUOP_initialise, by silently adjusting state.
      */
-    for ( prev_faults = faults = 0; ; prev_faults = faults )
-    {
+ retry:
     switch ( __builtin_expect(ptr->fpu_sse.x[FPU_WORD_SIZE_OFFSET], 8) )
     {
-        BUILD_BUG_ON(sizeof(faults) != 4); /* Clang doesn't support %z in asm. */
-#define _xrstor(insn)                                               \
-        asm volatile ( "1: .byte " insn "\n"                        \
-                       "3:\n"                                       \
-                       "   .section .fixup,\"ax\"\n"                \
-                       "2: incl %[faults]\n"                        \
-                       "   jmp 3b\n"                                \
-                       "   .previous\n"                             \
-                       _ASM_EXTABLE(1b, 2b)                         \
-                       : [mem] "+m" (*ptr), [faults] "+g" (faults)  \
-                       : [lmask] "a" (lmask), [hmask] "d" (hmask),  \
-                         [ptr] "D" (ptr) )
+#define _xrstor(insn)                                       \
+        asm_inline volatile goto (                          \
+            "1: " insn " %0\n"                              \
+            _ASM_EXTABLE(1b, %l[fault])                     \
+            :: "m" (*ptr), "a" (lmask), "d" (hmask)         \
+            :: fault )
 
 #define XRSTOR(pfx) \
         if ( v->arch.xcr0_accum & XSTATE_XSAVES_ONLY ) \
@@ -432,13 +425,13 @@ void xrstor(struct vcpu *v, uint64_t mask)
                 ptr->xsave_hdr.xcomp_bv = ptr->xsave_hdr.xstate_bv | \
                                           XSTATE_COMPACTION_ENABLED; \
             } \
-            _xrstor(pfx "0x0f,0xc7,0x1f"); /* xrstors */ \
+            _xrstor(pfx "xrstors"); \
         } \
         else \
-            _xrstor(pfx "0x0f,0xae,0x2f") /* xrstor */
+            _xrstor(pfx "xrstor")
 
     default:
-        XRSTOR("0x48,");
+        XRSTOR("rex64 ");
         break;
 
     case 4: case 2:
@@ -449,8 +442,10 @@ void xrstor(struct vcpu *v, uint64_t mask)
 #undef _xrstor
     }
 
-    if ( likely(faults == prev_faults) )
-        break;
+    return;
+
+ fault:
+    faults++;
 
 #ifndef NDEBUG
     gprintk(XENLOG_WARNING, "fault#%u: mxcsr=%08x\n",
@@ -489,17 +484,17 @@ void xrstor(struct vcpu *v, uint64_t mask)
             ptr->xsave_hdr.xcomp_bv = 0;
         }
         memset(ptr->xsave_hdr.reserved, 0, sizeof(ptr->xsave_hdr.reserved));
-        continue;
+        goto retry;
 
     case 2: /* Stage 2: Reset all state. */
         ptr->fpu_sse.mxcsr = MXCSR_DEFAULT;
         ptr->xsave_hdr.xstate_bv = 0;
         ptr->xsave_hdr.xcomp_bv = v->arch.xcr0_accum & XSTATE_XSAVES_ONLY
             ? XSTATE_COMPACTION_ENABLED : 0;
-        continue;
-    }
+        goto retry;
 
-        domain_crash(current->domain);
+    default: /* Stage 3: Nothing else to do. */
+        domain_crash(v->domain, "Uncorrectable XRSTOR fault\n");
         return;
     }
 }
@@ -1041,17 +1036,17 @@ uint64_t read_bndcfgu(void)
 
     if ( cpu_has_xsavec )
     {
-        asm ( ".byte 0x0f,0xc7,0x27\n" /* xsavec */
+        asm ( "xsavec %0"
               : "=m" (*xstate)
-              : "a" (X86_XCR0_BNDCSR), "d" (0), "D" (xstate) );
+              : "a" (X86_XCR0_BNDCSR), "d" (0) );
 
         bndcsr = (void *)(xstate + 1);
     }
     else
     {
-        asm ( ".byte 0x0f,0xae,0x27\n" /* xsave */
+        asm ( "xsave %0"
               : "=m" (*xstate)
-              : "a" (X86_XCR0_BNDCSR), "d" (0), "D" (xstate) );
+              : "a" (X86_XCR0_BNDCSR), "d" (0) );
 
         bndcsr = (void *)xstate + xstate_offsets[ilog2(X86_XCR0_BNDCSR)];
     }
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 30 13:54:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 13:54:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194219.1512687 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaaBJ-0007xX-Jq; Tue, 30 Dec 2025 13:54:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194219.1512687; Tue, 30 Dec 2025 13:54:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaaBJ-0007wm-F1; Tue, 30 Dec 2025 13:54:37 +0000
Received: by outflank-mailman (input) for mailman id 1194219;
 Tue, 30 Dec 2025 13:54:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=owPK=7E=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vaaBI-0007fS-1J
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 13:54:36 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 120b39ed-e587-11f0-9ccf-f158ae23cfc8;
 Tue, 30 Dec 2025 14:54:33 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-430f2ee2f00so4688213f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 30 Dec 2025 05:54:33 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea226d1sm70198245f8f.13.2025.12.30.05.54.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Dec 2025 05:54:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 120b39ed-e587-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1767102873; x=1767707673; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Dfg9SOntw48QjjQPH4731TXdZMbOgAkel6auQMh8/BY=;
        b=VpiiVmCt1R6YGCSlUWQepLY5D+/PqyxfrUaEbRY8dL3Sz5jxTQzrE951o/7ZnIjuIt
         lhLq6yIHjAQS9SW6nsh6By6mZ0OGvjFrRoLn3RdqCmb2ev0wcJR20MeTCWc5XNpgy/TT
         8zFo/luVJOY7TtUCs8z5/0CtktDvYNGU0JhDk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767102873; x=1767707673;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Dfg9SOntw48QjjQPH4731TXdZMbOgAkel6auQMh8/BY=;
        b=jP6XoInLSgKAc4PQ/zEt3NL8rfcz+yyOG+jf7HGhiIredBHfpPMIDkA4fEYINss/Aa
         VsAU1eJX+ooRmv/GElFgdD3JQIHD42KAtdbE50ZKl+onmHZJaLa6Egux4WoTlyWAdtzF
         Lzg2sRLWM/bjlyDAc6XPBShL/KVn72pa58QeZioaziDUWd/bW6MdrQw+ZJsSXLCOTtBK
         UFAOiYMTKztBIpFKoP9G4xbcqU+uddmgfnT1UaHJoAx2F/iw25mKMt6q/9JnjDq/uVOR
         yvJXJPR4mwtk7MQiHEvgFU75IFZ1gQAli6w2/QXI0niqyCVPu8lR99aGgMzjc033XdYm
         AS6A==
X-Gm-Message-State: AOJu0YxW8XjMagdHAYxSlx9A4sqFsLjG32vuOBgwHe2wDuLTT85JTj2q
	8O4ePUhmTPV69tCLySQudT8VcTA8MbXRIKRDwd1PQazsuGpl0PbcWtX0SxQgjYDrQdDTQ4adTF9
	JoBqX
X-Gm-Gg: AY/fxX6PS1tOYLE7VrmRM9mPK6owmfzZUC9ixUmqVq/VwMrfbizISm3oauX0s74gYNV
	FTwYPg5M0FhfUFt0er98Ruer7HCc8fAbU0Jho8ejyz4azqU/p3+mkITi5k9GZmc2S47LSjC2Xom
	4zy/1nV0K9d5Ylkn0mm1h0Iv5DXYnHLIA+YPzjQ1nNR8j8ulO1HBxB+wKx73mBBY33ihbniN+x0
	KYRFgPMDoKJ7zrRxq4Cacyq9VCMw2k0MWgHtjHQWPmH/fP2GQdFORuNbm+Sytb4/btQDMQ5ZVly
	69+GaDQJgmbq0ajMgE4bsWlCDAMJq9mAQnCAB0sJVDUX/4TqntaWwEXBt4RPrNPBwi/W99EdgGW
	+gg8PERqpeIGsDCqJAc0KFfGk4NUYvBB2X/9E8NSbG/52U7X71OLNvaG78XXdFvN1l3xztoXKCt
	XOaMyJTDamOi2yLU/1Z6YVW1OjfjgQWu/Mct7PXcfLr6edGsMIK7+LXoY7AsdJXw==
X-Google-Smtp-Source: AGHT+IHx15LPlEcPx2ILuydl9rgMLwSDyB0zTQBjhnlj0f6IMxG0RthWvbrpoDSFJWWj/AEtUBimvQ==
X-Received: by 2002:a05:6000:310f:b0:431:4b7:a309 with SMTP id ffacd0b85a97d-4324e4cc2d7mr42430294f8f.20.1767102872062;
        Tue, 30 Dec 2025 05:54:32 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 1/4] x86/xstate: Deindent the logic in xrstor()
Date: Tue, 30 Dec 2025 13:54:24 +0000
Message-Id: <20251230135427.188440-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251230135427.188440-1-andrew.cooper3@citrix.com>
References: <20251230135427.188440-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... to improve the legibility of the following fix.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

Best reviewed with `git show --ignore-all-space`
---
 xen/arch/x86/xstate.c | 131 ++++++++++++++++++++++--------------------
 1 file changed, 68 insertions(+), 63 deletions(-)

diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index e990abc9d18c..384f78bd5281 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -407,19 +407,19 @@ void xrstor(struct vcpu *v, uint64_t mask)
      */
     for ( prev_faults = faults = 0; ; prev_faults = faults )
     {
-        switch ( __builtin_expect(ptr->fpu_sse.x[FPU_WORD_SIZE_OFFSET], 8) )
-        {
-            BUILD_BUG_ON(sizeof(faults) != 4); /* Clang doesn't support %z in asm. */
-#define _xrstor(insn) \
-        asm volatile ( "1: .byte " insn "\n" \
-                       "3:\n" \
-                       "   .section .fixup,\"ax\"\n" \
-                       "2: incl %[faults]\n" \
-                       "   jmp 3b\n" \
-                       "   .previous\n" \
-                       _ASM_EXTABLE(1b, 2b) \
-                       : [mem] "+m" (*ptr), [faults] "+g" (faults) \
-                       : [lmask] "a" (lmask), [hmask] "d" (hmask), \
+    switch ( __builtin_expect(ptr->fpu_sse.x[FPU_WORD_SIZE_OFFSET], 8) )
+    {
+        BUILD_BUG_ON(sizeof(faults) != 4); /* Clang doesn't support %z in asm. */
+#define _xrstor(insn)                                               \
+        asm volatile ( "1: .byte " insn "\n"                        \
+                       "3:\n"                                       \
+                       "   .section .fixup,\"ax\"\n"                \
+                       "2: incl %[faults]\n"                        \
+                       "   jmp 3b\n"                                \
+                       "   .previous\n"                             \
+                       _ASM_EXTABLE(1b, 2b)                         \
+                       : [mem] "+m" (*ptr), [faults] "+g" (faults)  \
+                       : [lmask] "a" (lmask), [hmask] "d" (hmask),  \
                          [ptr] "D" (ptr) )
 
 #define XRSTOR(pfx) \
@@ -437,62 +437,67 @@ void xrstor(struct vcpu *v, uint64_t mask)
         else \
             _xrstor(pfx "0x0f,0xae,0x2f") /* xrstor */
 
-        default:
-            XRSTOR("0x48,");
-            break;
-        case 4: case 2:
-            XRSTOR("");
-            break;
+    default:
+        XRSTOR("0x48,");
+        break;
+
+    case 4: case 2:
+        XRSTOR("");
+        break;
+
 #undef XRSTOR
 #undef _xrstor
-        }
-        if ( likely(faults == prev_faults) )
-            break;
+    }
+
+    if ( likely(faults == prev_faults) )
+        break;
+
 #ifndef NDEBUG
-        gprintk(XENLOG_WARNING, "fault#%u: mxcsr=%08x\n",
-                faults, ptr->fpu_sse.mxcsr);
-        gprintk(XENLOG_WARNING, "xs=%016lx xc=%016lx\n",
-                ptr->xsave_hdr.xstate_bv, ptr->xsave_hdr.xcomp_bv);
-        gprintk(XENLOG_WARNING, "r0=%016lx r1=%016lx\n",
-                ptr->xsave_hdr.reserved[0], ptr->xsave_hdr.reserved[1]);
-        gprintk(XENLOG_WARNING, "r2=%016lx r3=%016lx\n",
-                ptr->xsave_hdr.reserved[2], ptr->xsave_hdr.reserved[3]);
-        gprintk(XENLOG_WARNING, "r4=%016lx r5=%016lx\n",
-                ptr->xsave_hdr.reserved[4], ptr->xsave_hdr.reserved[5]);
+    gprintk(XENLOG_WARNING, "fault#%u: mxcsr=%08x\n",
+            faults, ptr->fpu_sse.mxcsr);
+    gprintk(XENLOG_WARNING, "xs=%016lx xc=%016lx\n",
+            ptr->xsave_hdr.xstate_bv, ptr->xsave_hdr.xcomp_bv);
+    gprintk(XENLOG_WARNING, "r0=%016lx r1=%016lx\n",
+            ptr->xsave_hdr.reserved[0], ptr->xsave_hdr.reserved[1]);
+    gprintk(XENLOG_WARNING, "r2=%016lx r3=%016lx\n",
+            ptr->xsave_hdr.reserved[2], ptr->xsave_hdr.reserved[3]);
+    gprintk(XENLOG_WARNING, "r4=%016lx r5=%016lx\n",
+            ptr->xsave_hdr.reserved[4], ptr->xsave_hdr.reserved[5]);
 #endif
-        switch ( faults )
+
+    switch ( faults )
+    {
+    case 1: /* Stage 1: Reset state to be loaded. */
+        ptr->xsave_hdr.xstate_bv &= ~mask;
+        /*
+         * Also try to eliminate fault reasons, even if this shouldn't be
+         * needed here (other code should ensure the sanity of the data).
+         */
+        if ( ((mask & X86_XCR0_SSE) ||
+              ((mask & X86_XCR0_YMM) &&
+               !(ptr->xsave_hdr.xcomp_bv & XSTATE_COMPACTION_ENABLED))) )
+            ptr->fpu_sse.mxcsr &= mxcsr_mask;
+        if ( v->arch.xcr0_accum & XSTATE_XSAVES_ONLY )
         {
-        case 1: /* Stage 1: Reset state to be loaded. */
-            ptr->xsave_hdr.xstate_bv &= ~mask;
-            /*
-             * Also try to eliminate fault reasons, even if this shouldn't be
-             * needed here (other code should ensure the sanity of the data).
-             */
-            if ( ((mask & X86_XCR0_SSE) ||
-                  ((mask & X86_XCR0_YMM) &&
-                   !(ptr->xsave_hdr.xcomp_bv & XSTATE_COMPACTION_ENABLED))) )
-                ptr->fpu_sse.mxcsr &= mxcsr_mask;
-            if ( v->arch.xcr0_accum & XSTATE_XSAVES_ONLY )
-            {
-                ptr->xsave_hdr.xcomp_bv &= this_cpu(xcr0) | this_cpu(xss);
-                ptr->xsave_hdr.xstate_bv &= ptr->xsave_hdr.xcomp_bv;
-                ptr->xsave_hdr.xcomp_bv |= XSTATE_COMPACTION_ENABLED;
-            }
-            else
-            {
-                ptr->xsave_hdr.xstate_bv &= this_cpu(xcr0);
-                ptr->xsave_hdr.xcomp_bv = 0;
-            }
-            memset(ptr->xsave_hdr.reserved, 0, sizeof(ptr->xsave_hdr.reserved));
-            continue;
-
-        case 2: /* Stage 2: Reset all state. */
-            ptr->fpu_sse.mxcsr = MXCSR_DEFAULT;
-            ptr->xsave_hdr.xstate_bv = 0;
-            ptr->xsave_hdr.xcomp_bv = v->arch.xcr0_accum & XSTATE_XSAVES_ONLY
-                                      ? XSTATE_COMPACTION_ENABLED : 0;
-            continue;
+            ptr->xsave_hdr.xcomp_bv &= this_cpu(xcr0) | this_cpu(xss);
+            ptr->xsave_hdr.xstate_bv &= ptr->xsave_hdr.xcomp_bv;
+            ptr->xsave_hdr.xcomp_bv |= XSTATE_COMPACTION_ENABLED;
         }
+        else
+        {
+            ptr->xsave_hdr.xstate_bv &= this_cpu(xcr0);
+            ptr->xsave_hdr.xcomp_bv = 0;
+        }
+        memset(ptr->xsave_hdr.reserved, 0, sizeof(ptr->xsave_hdr.reserved));
+        continue;
+
+    case 2: /* Stage 2: Reset all state. */
+        ptr->fpu_sse.mxcsr = MXCSR_DEFAULT;
+        ptr->xsave_hdr.xstate_bv = 0;
+        ptr->xsave_hdr.xcomp_bv = v->arch.xcr0_accum & XSTATE_XSAVES_ONLY
+            ? XSTATE_COMPACTION_ENABLED : 0;
+        continue;
+    }
 
         domain_crash(current->domain);
         return;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 30 13:54:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 13:54:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194220.1512703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaaBL-0008PY-Pr; Tue, 30 Dec 2025 13:54:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194220.1512703; Tue, 30 Dec 2025 13:54:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaaBL-0008PH-MQ; Tue, 30 Dec 2025 13:54:39 +0000
Received: by outflank-mailman (input) for mailman id 1194220;
 Tue, 30 Dec 2025 13:54:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=owPK=7E=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vaaBJ-0007fS-Ij
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 13:54:37 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 13560d4d-e587-11f0-9ccf-f158ae23cfc8;
 Tue, 30 Dec 2025 14:54:35 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-43284ed32a0so1534261f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 30 Dec 2025 05:54:35 -0800 (PST)
Received: from localhost.localdomain (host-92-26-102-188.as13285.net.
 [92.26.102.188]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4324ea226d1sm70198245f8f.13.2025.12.30.05.54.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Dec 2025 05:54:33 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 13560d4d-e587-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1767102875; x=1767707675; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ocUUAwnTL1KF0z21fxsbu2k7KeGdeeLnlr7V9yXtvoE=;
        b=NWvatK5fVo7Qj/w7aE1+5bOxBs5M6r8Q+l95R9qJSaCjIEBbOiyg3acj5ZKm+PgdVi
         KJoIOnFS2AN/uFmbwy/6ylLXLtqsyoCFCz0HyH/KMbnL5w2dQ8OSQ7wG+ELtN5rSu9ch
         2xe2B7D/sr1z/lh5+eaRgot3w33DyD+hBiJEk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767102875; x=1767707675;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ocUUAwnTL1KF0z21fxsbu2k7KeGdeeLnlr7V9yXtvoE=;
        b=L/vmqI/lleD5NztSuGSvaVK2nw0Ds8+GKEV7MeCDKXMCH5iifbi22N5YFEpiOn16Xv
         /a9baur4pvkHuXyDcIKaV2nj4mpmSqQUcukOoscVCjWfMPIEIPQoaX/l78szPcTxZF1y
         QJwAWEj+ZyyPH13UY4B9fM5HwfcaN71CkYQsRtnNacZ+kFqd7o/JVtpmuswHk+SgDUK8
         PCNyflafZ3GRrhdjzO8Zl3SK2TrsrJ3uBTg47KWs8JEAiuCZKDGKr6AA5jv6nqFBg4T/
         s/CUG4Ezl96z79if/N1WuQY1ZPBojPNtp2iwfsq+B9xoHjGDvJh6RauaihdssxUNmf8a
         byAw==
X-Gm-Message-State: AOJu0YwHI/B8vUwY5LigRpqlmCaCUoPRx52w0aVlYpwaYnZfSbp2oP0e
	pgyqUVplOVAfBcMpO16F7nQ5x6OEocya3g6X0z3I/LM+TkMv+BuMcHPQi1IYg36fmMxuLpZtS/R
	L+cRp
X-Gm-Gg: AY/fxX5RSvI7fCEVEzZnYtpwvTvJZwWpP7NfaL46uafhw6ISxYYD7AvP3kG8MA+u14v
	s7jyFr6jkKpPWVfIIiodENLLA/m8SdJrFSC7VZG0I1RweitTaps9Ms7/FVuFvMpMdBJ8Wz5UDlD
	f8yTqKWK9uQKGACiJuoE9WzteJTjE+7pbSzAttn5UGvbcJLvGHLx+iKutdTD0hPvDgq+K7iqdnS
	ubYV+qXXBG+s6ELmIk/HL0p2zhRmnyVLwQ7dE5rxQ2RVwlvwy+QTLEP6piAWgP5WHyielBj6vMR
	QZKLfluaWd3D8WFb6r4+6fQXkL+mQmBamuWy/Jt7dX3wTfLAgXOGVI6nLk50LdCHgNGxu9Z6zgO
	L8kCInjJSxneWmEzjhWWqes96AmrsAjJ7fKNIQ0Q+olSL/bC+DPZOEJIl+MRX3+xgd1Td81CZDm
	QOPD59ju5/q3+O4LLA7yUKhPt0A8JKyIg5HW41LodV5MyiUVeP5cF3Ghmgkuzovw==
X-Google-Smtp-Source: AGHT+IHPK1Lv1iG0BMQX95Z3SF3lU6JdbuzNbiixY6Ys1VFmvVMgqeumy+0QX+FwMP06bBxQ8HAc5w==
X-Received: by 2002:a05:6000:186e:b0:432:86e1:bd34 with SMTP id ffacd0b85a97d-43286e1bddemr16955684f8f.39.1767102874079;
        Tue, 30 Dec 2025 05:54:34 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 4/4] x86: Avoid using .byte for instructions where safe to do so
Date: Tue, 30 Dec 2025 13:54:27 +0000
Message-Id: <20251230135427.188440-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251230135427.188440-1-andrew.cooper3@citrix.com>
References: <20251230135427.188440-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The new toolchain baseline knows all of these instructions.

For the remaining uses of .byte for instructions, annotate the toolchain
minima.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/arch.mk                   |  4 +++
 xen/arch/x86/include/asm/asm-defns.h   |  4 ---
 xen/arch/x86/include/asm/msr.h         |  2 ++
 xen/arch/x86/include/asm/prot-key.h    |  6 ++---
 xen/arch/x86/include/asm/xstate.h      |  3 +--
 xen/arch/x86/x86_emulate/0f01.c        |  2 +-
 xen/arch/x86/x86_emulate/x86_emulate.c | 34 ++++++++++++--------------
 7 files changed, 26 insertions(+), 29 deletions(-)

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 0203138a819a..3d8d9bfe4916 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -16,7 +16,11 @@ CFLAGS-$(CONFIG_CC_IS_GCC) += -malign-data=abi
 $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
 $(call cc-option-add,CFLAGS,CC,-Wnested-externs)
 $(call as-option-add,CFLAGS,CC,".equ \"x\"$(comma)1",-DHAVE_AS_QUOTED_SYM)
+
+# Binutils >= 2.31, Clang >= 7
 $(call as-option-add,CFLAGS,CC,"movdiri %rax$(comma)(%rax)",-DHAVE_AS_MOVDIR)
+
+# Binutils >= 2.33, Clang >= 9
 $(call as-option-add,CFLAGS,CC,"enqcmd (%rax)$(comma)%rax",-DHAVE_AS_ENQCMD)
 
 # Check to see whether the assembler supports the .nop directive.
diff --git a/xen/arch/x86/include/asm/asm-defns.h b/xen/arch/x86/include/asm/asm-defns.h
index 239dc3af096c..f6fe4596a852 100644
--- a/xen/arch/x86/include/asm/asm-defns.h
+++ b/xen/arch/x86/include/asm/asm-defns.h
@@ -1,9 +1,5 @@
 #include <asm/page-bits.h>
 
-.macro clzero
-    .byte 0x0f, 0x01, 0xfc
-.endm
-
 /* binutils >= 2.41 or LLVM >= 19 */
 .macro eretu
     .byte 0xf3, 0x0f, 0x01, 0xca
diff --git a/xen/arch/x86/include/asm/msr.h b/xen/arch/x86/include/asm/msr.h
index 941a7612f4ba..1377d156f4e1 100644
--- a/xen/arch/x86/include/asm/msr.h
+++ b/xen/arch/x86/include/asm/msr.h
@@ -63,6 +63,8 @@ static inline void wrmsrns(uint32_t msr, uint64_t val)
     /*
      * WRMSR is 2 bytes.  WRMSRNS is 3 bytes.  Pad WRMSR with a redundant CS
      * prefix to avoid a trailing NOP.
+     *
+     * Binutils >= 2.40, Clang >= 16
      */
     alternative_input(".byte 0x2e; wrmsr",
                       ".byte 0x0f,0x01,0xc6", X86_FEATURE_WRMSRNS,
diff --git a/xen/arch/x86/include/asm/prot-key.h b/xen/arch/x86/include/asm/prot-key.h
index 8fb15b5c32e9..1752756fd9c1 100644
--- a/xen/arch/x86/include/asm/prot-key.h
+++ b/xen/arch/x86/include/asm/prot-key.h
@@ -19,16 +19,14 @@ static inline uint32_t rdpkru(void)
 {
     uint32_t pkru;
 
-    asm volatile ( ".byte 0x0f,0x01,0xee"
-                   : "=a" (pkru) : "c" (0) : "dx" );
+    asm volatile ( "rdpkru" : "=a" (pkru) : "c" (0) : "dx" );
 
     return pkru;
 }
 
 static inline void wrpkru(uint32_t pkru)
 {
-    asm volatile ( ".byte 0x0f,0x01,0xef"
-                   :: "a" (pkru), "d" (0), "c" (0) );
+    asm volatile ( "wrpkru" :: "a" (pkru), "d" (0), "c" (0) );
 }
 
 /*
diff --git a/xen/arch/x86/include/asm/xstate.h b/xen/arch/x86/include/asm/xstate.h
index e3b9745543d7..9cfee1fa9c5a 100644
--- a/xen/arch/x86/include/asm/xstate.h
+++ b/xen/arch/x86/include/asm/xstate.h
@@ -120,8 +120,7 @@ static inline uint64_t xgetbv(unsigned int index)
     uint32_t lo, hi;
 
     ASSERT(index); /* get_xcr0() should be used instead. */
-    asm volatile ( ".byte 0x0f,0x01,0xd0" /* xgetbv */
-                   : "=a" (lo), "=d" (hi) : "c" (index) );
+    asm volatile ( "xgetbv" : "=a" (lo), "=d" (hi) : "c" (index) );
 
     return lo | ((uint64_t)hi << 32);
 }
diff --git a/xen/arch/x86/x86_emulate/0f01.c b/xen/arch/x86/x86_emulate/0f01.c
index 1ba99609d6fd..4791465fc83f 100644
--- a/xen/arch/x86/x86_emulate/0f01.c
+++ b/xen/arch/x86/x86_emulate/0f01.c
@@ -122,7 +122,7 @@ int x86emul_0f01(struct x86_emulate_state *s,
         {
         case vex_none: /* serialize */
             host_and_vcpu_must_have(serialize);
-            asm volatile ( ".byte 0x0f, 0x01, 0xe8" );
+            asm volatile ( ".byte 0x0f, 0x01, 0xe8" ); /* Binutils >= 2.34, Clang >= 11 */
             break;
         case vex_f2: /* xsusldtrk */
             vcpu_must_have(tsxldtrk);
diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c
index d830aea430d4..a3b7142fde7e 100644
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -4748,27 +4748,25 @@ x86_emulate(
                  */
                 if ( vex.l )
                 {
-                    /* vpxor %xmmN, %xmmN, %xmmN */
-                    asm volatile ( ".byte 0xc5,0xf9,0xef,0xc0" );
-                    asm volatile ( ".byte 0xc5,0xf1,0xef,0xc9" );
-                    asm volatile ( ".byte 0xc5,0xe9,0xef,0xd2" );
-                    asm volatile ( ".byte 0xc5,0xe1,0xef,0xdb" );
-                    asm volatile ( ".byte 0xc5,0xd9,0xef,0xe4" );
-                    asm volatile ( ".byte 0xc5,0xd1,0xef,0xed" );
-                    asm volatile ( ".byte 0xc5,0xc9,0xef,0xf6" );
-                    asm volatile ( ".byte 0xc5,0xc1,0xef,0xff" );
+                    asm volatile ( "vpxor %xmm0, %xmm0, %xmm0" );
+                    asm volatile ( "vpxor %xmm1, %xmm1, %xmm1" );
+                    asm volatile ( "vpxor %xmm2, %xmm2, %xmm2" );
+                    asm volatile ( "vpxor %xmm3, %xmm3, %xmm3" );
+                    asm volatile ( "vpxor %xmm4, %xmm4, %xmm4" );
+                    asm volatile ( "vpxor %xmm5, %xmm5, %xmm5" );
+                    asm volatile ( "vpxor %xmm6, %xmm6, %xmm6" );
+                    asm volatile ( "vpxor %xmm7, %xmm7, %xmm7" );
                 }
                 else
                 {
-                    /* vpor %xmmN, %xmmN, %xmmN */
-                    asm volatile ( ".byte 0xc5,0xf9,0xeb,0xc0" );
-                    asm volatile ( ".byte 0xc5,0xf1,0xeb,0xc9" );
-                    asm volatile ( ".byte 0xc5,0xe9,0xeb,0xd2" );
-                    asm volatile ( ".byte 0xc5,0xe1,0xeb,0xdb" );
-                    asm volatile ( ".byte 0xc5,0xd9,0xeb,0xe4" );
-                    asm volatile ( ".byte 0xc5,0xd1,0xeb,0xed" );
-                    asm volatile ( ".byte 0xc5,0xc9,0xeb,0xf6" );
-                    asm volatile ( ".byte 0xc5,0xc1,0xeb,0xff" );
+                    asm volatile ( "vpor %xmm0, %xmm0, %xmm0" );
+                    asm volatile ( "vpor %xmm1, %xmm1, %xmm1" );
+                    asm volatile ( "vpor %xmm2, %xmm2, %xmm2" );
+                    asm volatile ( "vpor %xmm3, %xmm3, %xmm3" );
+                    asm volatile ( "vpor %xmm4, %xmm4, %xmm4" );
+                    asm volatile ( "vpor %xmm5, %xmm5, %xmm5" );
+                    asm volatile ( "vpor %xmm6, %xmm6, %xmm6" );
+                    asm volatile ( "vpor %xmm7, %xmm7, %xmm7" );
                 }
 
                 ASSERT(!state->simd_size);
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Dec 30 13:57:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 13:57:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194256.1512712 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaaEC-0001le-Cg; Tue, 30 Dec 2025 13:57:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194256.1512712; Tue, 30 Dec 2025 13:57:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaaEC-0001lV-A8; Tue, 30 Dec 2025 13:57:36 +0000
Received: by outflank-mailman (input) for mailman id 1194256;
 Tue, 30 Dec 2025 13:57:35 +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
 <SRS0=jMxH=7E=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vaa8e-0004Hp-6x
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 13:51:52 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b0cefed2-e586-11f0-b15c-2bf370ae4941;
 Tue, 30 Dec 2025 14:51:51 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM6PR03MB5194.namprd03.prod.outlook.com (2603:10b6:5:24c::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.14; Tue, 30 Dec
 2025 13:51:48 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9456.013; Tue, 30 Dec 2025
 13:51:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b0cefed2-e586-11f0-b15c-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XhQn5BUb1heFXnIWFvQyrxn6LMz1INFQeeRrfvCFdjT0ryuL4VRCJS+5HxQ0TgavA61ubdvvQyUDHgnfYlymjRzYHRcqmvB4RztzV12d368sTc2udYkcB/v//dnE8qaqbBAbrFx/jYqsWIqiwnxxHo3QTloLRsnIQDHBDozcMYoqC3PB569IDyXjurtc4Fg0Oo9K2Jbdee/znceBQr/K1LpiNcNz2AHay0E+v8i2j25ErYTnq4exPk3LgReRceXdCutqcxNLeLuDDbUOYi3+jQ8jFCpTUCnL455KZq0mjC0+otxdfHCq/fSHrOmWl/bmXMW/kSxPjHWsE3MtyeZB7A==
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=foobvr7qFQfX2w637ND+wjsBAvv+WwCG9mo2e3maVuE=;
 b=pQbkk10jZ5TTOUQykq5dO/xMDS1pDsySK2Dn8iXtNufn5HGvEyUxAq99CLgg6ehDxEEkmQ4jJDxinkeAnLUFIuCD+n7/CDU9BOT3/Cwbew1PcyDaA7ly5WU7fFGG7n2uBAmcaydYuF0GXzR2Of5wA+pMwvKuEaxMR/FmP/14AHh4jBGuBngNsKWb0fmLaMbja+Ji9mOXYDFmFgjVAgPnn/oOrIhJiSae3CmWDZ1ERyuSdYGULb0vikaUMORQoFx+zKBmsvFhsk1Yn1XJ0z1jIq9E9ekOUYdhvGly0SrhmFjRXCAIJzripi/bTMidQ6djqoEo3jyzSYKTRWohHgxZFA==
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=foobvr7qFQfX2w637ND+wjsBAvv+WwCG9mo2e3maVuE=;
 b=qwnBH5/QMIvx8qmtrgOxpfkkktyObRrd8yG23Ah/F2xpVMzIpleU4pVAjFBK5VkigIRPN59V/pBwwvgZSsXTTCURrrn5Rflm1HNlzri2D4UkBE+/pEBw9XO7ixKJ56MjyP80lsb2cRNVgyX++rCz8cZDOr52kLD1VzXlnXl/b/0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <47508916-128a-4bc2-b73f-ddb1924a2123@citrix.com>
Date: Tue, 30 Dec 2025 13:51:43 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH] xen: Move x86-ism out of muldiv64.c
To: Xen-devel <xen-devel@lists.xenproject.org>
References: <20251230135026.188162-1-andrew.cooper3@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251230135026.188162-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P123CA0082.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:138::15) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DM6PR03MB5194:EE_
X-MS-Office365-Filtering-Correlation-Id: 1e9fb0a8-1a40-43fc-f4da-08de47aa93c1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YzRHTUhLR0ZNQmN3Q1BuYnJmcHkyWFhPei9ja04rWmU3WWRGazNpR3NDaFk2?=
 =?utf-8?B?c0J6RGxMTUNEMGJaanNteit6N1NPenlNanBNR29mL0M1UnphclNCaHV2YkhY?=
 =?utf-8?B?NXJ1bnF6bE9iM2VTNzF1dFROd0ZaZkZiNXp4cm0zbnB6WTc3L29nL2VoT2tG?=
 =?utf-8?B?bERTZTNKdFpDMVdkR3hmWTQ3bDdHSnNzUkNyVTA2QjdRQVFQVHZWQWpiT3Rp?=
 =?utf-8?B?SVVrY0oydlZWYmlabGRhdjE2dHNIcXdzTWJ4dTYySjhHTHk0WVA1Rk5IYzVh?=
 =?utf-8?B?SjJuK0NLYnZmQ2JSOFNRNWxYemZjbDJpOU1Edko2bFlZR3paMmRnN25xMDRq?=
 =?utf-8?B?MExqZFpsQ1RyOXFTUEN1WVlaNjVrY3dJSWRQQjdVMll6WUx5M0tzQktaS1Jk?=
 =?utf-8?B?dCtyL1EvY29tb3BDYm5ZNUZzSHp6SGV4ZHlZTENZbm5DdkVrMlNycFVpVjM2?=
 =?utf-8?B?U1p5Y1pZZndQVWNZQmQ3NGszZ0NvSy9FRk1Nb3JuV3NpZXlGWG53K1VsaXVE?=
 =?utf-8?B?NU10c0JSV3RreEliUTQwV2VGeVhOQThnK0lVY1ZQOGZTVWZXUG5kblY3M3BF?=
 =?utf-8?B?Nmo4T3VTb3lmVEQ1QitEWUhwMGFiU0c3TFlKaGZyT0YySTlFY3VZUytUK3Fi?=
 =?utf-8?B?WmVFdDNyL0xvZ1lFUEFVU0thdTVjRnFPa2k0VVVtQ3hCZEdrWU5XQzhFOHNO?=
 =?utf-8?B?RmtMOStJeFlWRVhld2RXRkhwRVdwd0dGR2NJYW8yWks3VDJBNDZzRm93MXFG?=
 =?utf-8?B?SUQ1NEZ3TWVPdk5BTmdPRG1YR1NCR0ErL3pjZml6Yyt6NUJtMGwzRzFyL3Mv?=
 =?utf-8?B?TnFhMmFZNUxqSThtV0QrNkpSL3N3bmJZeGJFdTJEcG1kMkJmYlpHU01qTkFC?=
 =?utf-8?B?SmtLWnVrb3ZLWCt0Z3RyM0IvcmhPcjVkSnM3RHlRdXFCT2xTeUthZ3lsZXpR?=
 =?utf-8?B?UlpiWFhiLzdMU29UbWZWaDY2RDRCZ05Cc2VXTGhlOU55R3pvODQ5eUVVQitW?=
 =?utf-8?B?eE4wb08xUFNkanJVVXdDNHV1UWdlT21iSGNkQzBySjJWQzRkWGtxaWJuVnpG?=
 =?utf-8?B?NVVDOHVHTjR5ZXlMOFhFWjh3SDQ5M3k1RU1RVXJFUkNIeVFYa2tPaDIzNngw?=
 =?utf-8?B?UGJ5eGQ0MC9rclIvaGVIbThZM1VtVk9GQUdyMDM2UjUwSTVZWjdIM3o4VWNm?=
 =?utf-8?B?a0pHa0hyeGNwT2ZoMm9aemVra0xjbEQ2WmNwZ2piYTQyQldLOEdwWkFETEJr?=
 =?utf-8?B?T2Vzd3RwWjZkbm9jZjg4LzBqWmZab1NHZklDUW1CSm85SW9yUjFUanM2eldh?=
 =?utf-8?B?RG5xMHQ3bjQ0RE16d0FSL0x6eHNUZU1sY2l5eVZDNEdxSXB6TjU4UzU1NmJT?=
 =?utf-8?B?VWdzZGZrMlJ5SHpyenkzZ1pTN0FiUG1FYWhaN1pYaWZPVnJLZTlQVERvYXZF?=
 =?utf-8?B?SEtrYnU0QmdEUktCOCtIa1Z3azZlMm4vUVZCK3RnMGhuMnlWYzNtVGY2bWMw?=
 =?utf-8?B?TU9CSlpjRXh3ZnlvRCt2YVIrdnJjQ2JXa0s4eExzTlR6VU92d3IxbFErSmdX?=
 =?utf-8?B?OTRrNjVmWnBOY1NYdTlESElpVUNwRC9DQWhZNTBmQkl4QXFCUEhrZlRraVJk?=
 =?utf-8?B?TnlLbHN3Qk1MMkpaOHRGOGRGc1hIUGFuSUVaeElrelpPQmREL21jNGExWUYx?=
 =?utf-8?B?K1AxREVzb1pHYTZHbmpMLzZVZ1JiYXQyM3dKNFFGNjhzdjNwYkx4VGMyQU5t?=
 =?utf-8?B?ckYrYk5LajNBMTVSQWFCR3RNdnhTSUpsTVdWb3ZoSU5hL3Brb0pvbkR4WHZJ?=
 =?utf-8?B?dlp1cTFCc1VJL3BzN0NHUmhiaEpVOGJpR0IwMkVqVTg5SzJBR3N4ekdJdXNC?=
 =?utf-8?B?U0NCZEJKSDZweDdwMTlvUGVjS0VLZzFBaHVrZFhWbWJiNUNzeTErbG8ra2hl?=
 =?utf-8?Q?Klqs7HFbDxavObMqEAxd2wqVZH/3Qji6?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dkhWNzJnTmlsS3laR1VEdEtsTFo4TXpMVkdVV3VLYzZUY2x3eUV6NUUvdG1m?=
 =?utf-8?B?MDQyZkIrcVBmVGJxQ0MrTnptL1JXeU9BYUVlY0ppbVIveDZ5Z253UDRpQzhG?=
 =?utf-8?B?OVlOT3NGSTBHZlJRaTBQOFh4akUxdWZtUnFDdTIrS0RTd3FweFpOTGVXbmZi?=
 =?utf-8?B?OWZORTduQ3FSRWZqcktuc1JWQ2daVnFZSFJoVWZRWWhPUGswc0tObFNwdUZK?=
 =?utf-8?B?YnFSRWZaZFNTMjBzT2F1M3hHV0lydUk2cU1WOVhYWHFKbzNOblR3YTc2ZE4r?=
 =?utf-8?B?TEJ4OW9lYXhLRDFOMzdIT2ZwcWR4d1g2U2FsN1Bnd1RQbGJPcVZEeTJzR0or?=
 =?utf-8?B?b21vRGRNUXhsQjhCcHZySDJZejE5RHRzNWVmc3cxd3hZb0Y3UzFjZkNoZUlI?=
 =?utf-8?B?YnRhNng3R2k0azJoWTEySDhZTGNBNGM1dEVsU0YvdkxoTVQ5QzNZTmJxcWoy?=
 =?utf-8?B?VjZJZlFCc010UStjdzhwK3A1UXI3ZkVJbHBrNUhZNllyRWJCOG9BalN5d3Np?=
 =?utf-8?B?YlZmSHhUS1NQc2hIK0tjR01JTUtMd3FMV2ZBNlhDeE4wQTl6eXQreXBTSDk4?=
 =?utf-8?B?R2dyNThnbTFNNEFtYzZoOGVDdU9HYkhnREl1enJ4NXVoMDR2bm5Ld0VZZDFE?=
 =?utf-8?B?SEViQjlrdU9acy8wbzB6SXlHc0pkbzlPazRjOEhBcjV1dlQrSnlUODJrRjYz?=
 =?utf-8?B?YnhFc0c5Ti9wVWZHckpRQkdKL05sNEN6bjNHS2EyS2FQdFk2S3pmOFJOcjlK?=
 =?utf-8?B?bFRJZmhxZnVUbXp3WGxrK0xEL1hDRzlwR3JuSk1TTWV0bE1ndFdOMmpqa2VF?=
 =?utf-8?B?azlCSkJZRjByNkhINDlEVHNRcDhnTlNUbW5rV0ZSUDZZTDlONWVzVnhMYlJW?=
 =?utf-8?B?cWtKWW90Q1BKN3JUUkdwTEIxcGlxRHh5MFlDamtsamJORk9WYVRYYWpVUWlT?=
 =?utf-8?B?SVVuS3k5dGN3dUMrVThWU0lyVmNrYmhGTUhIaGJnUVJQQ2FrMG5lNGFDaTkw?=
 =?utf-8?B?bk5RNFQ4TTVtc1RwOG5mc2dDbldNTVVrVEV3Q1g1ZTc5aTNCR3dFeDZ5Y2pw?=
 =?utf-8?B?UkplVGEwZ2dYVk93aXFxVnlMdWVCMDJpbXdXZ01uNFRTcllGYlk3dWRlZ1V1?=
 =?utf-8?B?c21lM3kxdHloc3B1bk04UHE3Nmg2YVljS0xMekR1NDV3eTUvQUxxWkxoeElx?=
 =?utf-8?B?YUpHdFF0V0kwWFZOeVgzWjdSZElpd1psU3BpZFpKbXloQmdVWW9wbUhjZzll?=
 =?utf-8?B?RmdSdkhmcnh2YTcxOWdDOTZoaTcrTkw2SExvOGZDcWMxYVdjUWNYMDdnMys3?=
 =?utf-8?B?T05vL3RjcWkvNUJ5cGt4UkR4QmpJQ0QweGJieVdDdStsbEg2NnlyWFpTZUZi?=
 =?utf-8?B?dUkveUo3M0dxZU1qUnhja2d6NWZiUWFWZ0JNUGRJdWNMWUFnQThaRlZ2d2ds?=
 =?utf-8?B?d2JmeC9UdTdrcWplR3NtWXJPam1WK01Wa0tkQnRhcmRNZWRJZEVTNmRaRWJW?=
 =?utf-8?B?Z2xKTFRFY3lwVVpYZWlyWlAzbTg1RmhoRzB2S0VVVWxXWTB3dWYyQzk1bE8y?=
 =?utf-8?B?c3FjdjV1aTBtK2FuNC9tQzlDRUtEUVE4ajUvSk1GQklPbCtiWHZMK2NLNWtO?=
 =?utf-8?B?ek1sUU9pS1duMzg2T3ZuVDhxUVI0NjRLckk1VDMxWHRQeVFqelM1VWpkNURT?=
 =?utf-8?B?YTlmN1p6djJpZk1WZVVsRWhXVzZhNWR2VThDaUFoVUtIdU54OUxxVmdXTkRt?=
 =?utf-8?B?UEhqM3NuVlA4Z1JMNk9zbFpIMFFpWVIrTU9DR1RmU2lXeWU0R1ZpNE1HZ3Bw?=
 =?utf-8?B?WmpycjZSSkppbWdXL1U4L3VZY2tnV1BQVDRoVkVMTTF3WnFvZUtmV1NqWDVX?=
 =?utf-8?B?SVFXNmdqVjN4ZU12MkdSOTZsU2tDcEdweTU1Qi9zcmoycWVxVUNvNG12SlV5?=
 =?utf-8?B?dUlMTmhTVFNucktCTkZWTG5lUVhzbld2WEt0WVhST2xsSjgxMnY5czVxYWJT?=
 =?utf-8?B?RzhyZFM3a2JNTTE5ODYyL091eGNLd0tSR3ByTjlMWnNkWE84TmFrV2lyYW1z?=
 =?utf-8?B?R2hEOWpjSXpkTURIcmNLbXdwazByb0g1L0srYU9YVEFoTUpyOXFEVUZ5RHk2?=
 =?utf-8?B?WW9vUlhKRmdVOUtvY3lWcm9kYWlVMDgvWkhlMEo0aGlKQi9Xc3BObjdkMlBD?=
 =?utf-8?B?OFQ4eUI2dGIxL09KL054akR1ZUlHQXArTFF4TXQ0TkJYelczRjdqTWRNWGl1?=
 =?utf-8?B?dXRYUnM2a0lwSy9RZ3JpRGEvVzgvKzJMOE5lMG9RK3UxRXp5UXY0aS9qVU1G?=
 =?utf-8?B?VmdJNWx2RURlQXFUU2s5RmJOK3BHV2pRS0xTZTVZRTZ2dHQwdFpCQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1e9fb0a8-1a40-43fc-f4da-08de47aa93c1
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Dec 2025 13:51:48.4270
 (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: S3DmQV6rsLL5HVz+Pp5QRL1D3SlD5ZU/FVIMkpcfzPJvPah8NkQFQ74x2FL8bHvIjA2NEY2o9Yl2F7UqJMTlgI0Ygw+GokoLobG2LKAdrtU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5194

Sorry, please ignore this, and see the version which is 5/5 in a series.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 30 15:25:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 15:25:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194315.1512722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vabbK-0005x1-CC; Tue, 30 Dec 2025 15:25:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194315.1512722; Tue, 30 Dec 2025 15:25:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vabbK-0005wu-9W; Tue, 30 Dec 2025 15:25:34 +0000
Received: by outflank-mailman (input) for mailman id 1194315;
 Tue, 30 Dec 2025 15:25:33 +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
 <SRS0=hKsM=7E=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vabbI-0005wo-Tn
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 15:25:33 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c3f4c49e-e593-11f0-b15c-2bf370ae4941;
 Tue, 30 Dec 2025 16:25:26 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b79e7112398so1769199466b.3
 for <xen-devel@lists.xenproject.org>; Tue, 30 Dec 2025 07:25:26 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037ae2de9sm3757396866b.26.2025.12.30.07.25.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Dec 2025 07:25:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3f4c49e-e593-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1767108325; x=1767713125; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=XDug6IYjgs8gWf1ugYxdNlEv+J+emsZfHsQ3Vl4WJCE=;
        b=M+rBoFWYssB/58Ce5Bala6a08OojPhqJ8C44yL2NILUMH0szWa11+rfxIIo61SoFOc
         Sc9iClyqhmNn8mavbomdWY29UZdOKe9ySwmFeaZH0ZkD/bz306q/RZ5pmHF4nZ9PHtDi
         TLgCQaBQJHE8yLizwZ41Rq+x5fI5INluuoInsouwxYWRcWFqM4PnEutGTJN2HheR6j5p
         ThY7zuPuVMcH0IBLzqcpNBcyKVJjcP3G5n0rgrxX45N29H8jhT2ahDzQOdjeTI/cYEHz
         nS3/e+ynkEK0tUJKfGEZJDpDco9z/aq4JEZK0N8kSRbqmjaEVa8pugxld4el0h5mfiuz
         g5kg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767108325; x=1767713125;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=XDug6IYjgs8gWf1ugYxdNlEv+J+emsZfHsQ3Vl4WJCE=;
        b=AcILRr8DP7WvYvTEpXFtj6FV0kV7CwrCwqw6nyw7NBvaflmKehaDisKCka66mfQmt/
         HuV3fGRU9l9IGThFLN08Y1CxSLWx3q8zC+YPrE0QPev/qsCUsGTm8oY46SuE/YLITeWF
         V9sp6DGwjyg36eL2FZEWh/zgf3XVHocEqWEIpd6cruk/n9WDblN/AiHOM7D66bFDAA1G
         2RfSs0pSkC4WAJXMxHTaAAybd3AntjbsPFX8Ad5zpQR/3YcWg8tWIFh+oKVTBKQ71wXB
         tDhouTa3EIHjxc2Pm0rkIS6pHqkUeBuyO6GPsg5fEsm5rht2xShFoRVnTaePzAaeC299
         i4pA==
X-Forwarded-Encrypted: i=1; AJvYcCWbsssArftmd6QXyJfnh/tQ9CJRhRMYoP6VdUu9giqTPhMTLfSm7MUyB5t+Wgz+/pZTpKM7+eSH9/o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwOnIo/nsRnedfnnJ35Ih7CNTIp72jM8qFImycd/zQUaTTUj3xO
	7gb8n2aUc/my1Cdigz9wNZkeLxssP5FsrCJMa0KuDFPbS0UBVcVq6hlt
X-Gm-Gg: AY/fxX618q1A80WYiN+aUdKTBWnkHjLFtdLP5xcOdn8Wqtvee4vHn77fyFrxr+z6pMu
	xj4qvZpMD6loCyA1O2Z31vx70a/zs6KPEtHeq4EAAeg5r0fTwInmmuV8lzMQiKlYf6J/Ep/5JOq
	QkaPOVtWEhWYt1w7ZJS+XEC9+6hD7SMrA3qi2Z8aoyrbEr1xGaOX02KdLavuRxzRtyCEVJjA9ry
	2KxfdFJuJixZYuUeNSw52D2/4NIIVORzfGGMPWgwlcrysB47uNNhsS3RZb0wvVS2Y8HNzwUBF9E
	+qcwkcrf5z4gxQAqkzoYVELQV8LXWaXb9a4w3u1QYkskFiudu/dqsqwqmFj5wlJca5BobbfTf+p
	88QUrh5bPihsCn1x77APW8Rm/5zLSF7W9kO0kuZcHuZlEOSPaF//yvkWdwDUw3/awlHebPhYH4q
	zGjKexrJ5A7WaNA5cSdvNuBAtgvRH4psbh3rFKhIGa9IIxPP5eN1bEMYHuGuNt4/c=
X-Google-Smtp-Source: AGHT+IHgwVYFdxfX9iU+0zZq4PPD81b7G9BYoqFAhof4Z5+V6D7k3GNP6+9hBNQnvQYmFzRPgOtNhg==
X-Received: by 2002:a17:907:90d5:b0:b80:3fff:336a with SMTP id a640c23a62f3a-b803fff343cmr2383344066b.21.1767108325180;
        Tue, 30 Dec 2025 07:25:25 -0800 (PST)
Message-ID: <360d4fb9-52b9-400d-93a7-baa4b98e708a@gmail.com>
Date: Tue, 30 Dec 2025 16:25:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 1/3] xen/riscv: add support of page lookup by GFN
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1766406895.git.oleksii.kurochko@gmail.com>
 <5d10efb00eebb35861135280dfee391d0c55cf0d.1766406895.git.oleksii.kurochko@gmail.com>
 <e77ddd04-3dfa-464c-9655-3cc853e1759e@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <e77ddd04-3dfa-464c-9655-3cc853e1759e@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 12/29/25 4:06 PM, Jan Beulich wrote:
> On 22.12.2025 17:37, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -1057,3 +1057,188 @@ int map_regions_p2mt(struct domain *d,
>>   
>>       return rc;
>>   }
>> +
>> +/*
>> + * p2m_get_entry() should always return the correct order value, even if an
>> + * entry is not present (i.e. the GFN is outside the range):
>> + *   [p2m->lowest_mapped_gfn, p2m->max_mapped_gfn]    (1)
>> + *
>> + * This ensures that callers of p2m_get_entry() can determine what range of
>> + * address space would be altered by a corresponding p2m_set_entry().
>> + * Also, it would help to avoid costly page walks for GFNs outside range (1).
>> + *
>> + * Therefore, this function returns true for GFNs outside range (1), and in
>> + * that case the corresponding level is returned via the level_out argument.
>> + * Otherwise, it returns false and p2m_get_entry() performs a page walk to
>> + * find the proper entry.
>> + */
>> +static bool check_outside_boundary(const struct p2m_domain *p2m, gfn_t gfn,
>> +                                   gfn_t boundary, bool is_lower,
>> +                                   unsigned int *level_out)
>> +{
>> +    unsigned int level = P2M_ROOT_LEVEL(p2m);
>> +    bool ret = false;
>> +
>> +    ASSERT(p2m);
>> +
>> +    if ( is_lower ? gfn_x(gfn) < gfn_x(boundary)
>> +                  : gfn_x(gfn) > gfn_x(boundary) )
>> +    {
>> +        for ( ; level; level-- )
>> +        {
>> +            unsigned long mask = BIT(P2M_GFN_LEVEL_SHIFT(level), UL) - 1;
>> +
>> +            if ( is_lower ? (gfn_x(gfn) | mask) < gfn_x(boundary)
>> +                          : (gfn_x(gfn) & ~mask) > gfn_x(boundary) )
>> +                break;
>> +        }
>> +
>> +        ret = true;
> For this case ...
>
>> +    }
>> +
>> +    if ( level_out )
>> +        *level_out = level;
> ... this is correct, but of "ret" is still false it very likely isn't, and
> arranging things this way may end up being confusing. Perhaps "level" should
> be constrained to the if()'s scope? The caller cares about the value only
> when the return value is true, after all.

We could simply move the "|if ( level_out )"| check inside the|if| block, but
is this really a significant issue? We still need to check the return value,
and if it is false,|level_out| should just be ignored and there is not big
difference then if level_out will contain what it contained before the call
of check_outside_boundary() or it will be set to P2M_ROOT_LEVEL(p2m).

Alternatively, could we initialize|level| to a non-existent value in the
"ret=false" case, for example|P2M_MAX_ROOT_LEVEL| + 1, and return that value
via|level_out|?

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Dec 30 15:47:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 15:47:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194328.1512732 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vabwp-0000Pg-1L; Tue, 30 Dec 2025 15:47:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194328.1512732; Tue, 30 Dec 2025 15:47:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vabwo-0000PZ-Ua; Tue, 30 Dec 2025 15:47:46 +0000
Received: by outflank-mailman (input) for mailman id 1194328;
 Tue, 30 Dec 2025 15:47:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hKsM=7E=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vabwo-0000PT-2G
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 15:47:46 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e1631057-e596-11f0-9ccf-f158ae23cfc8;
 Tue, 30 Dec 2025 16:47:43 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-b73161849e1so1942597166b.2
 for <xen-devel@lists.xenproject.org>; Tue, 30 Dec 2025 07:47:43 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b916b82e7sm37697467a12.35.2025.12.30.07.47.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Dec 2025 07:47:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e1631057-e596-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1767109663; x=1767714463; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=tOsiXWkT3Vqpa3svg0cuIKul62QT5OR/bwWYKUwEdSg=;
        b=KJJN6LvJs1fNZHlZkEf9pHZ5O99Nyg4j3miAGkioCFOj8GfQayda42FYSgGylQi+uC
         i8tn7Xfi6d487/S92FFtX2VwdjxD/1+eoqDVfjW9XV1cQXBZEfPrwNFShaiZ4S4DW+17
         mm4MOhCEIOaaBY8fQ8Db79SJ1rlpAbE70xrh4h0pX13hu5HuECVwT+RHneP/FAJEZVJg
         Krtfyhjn0SotJSuPtqlQprwiLIP6R60p9uuGdDX54r+g3eYgWU1j1vu7x6htBEi0DaRm
         os3G8ZLQOrG17uCNShHcGiVGyoiMz5RkKuRnbT3uFTehFf07kEwiO/5GNUCI9hDzUf3q
         sofA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767109663; x=1767714463;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=tOsiXWkT3Vqpa3svg0cuIKul62QT5OR/bwWYKUwEdSg=;
        b=R7kQ6KVToJFdyrj6dhj1kim9WLfkLGfDO1AlD4OjiGopxDcikNeJRZJfYg62z0joln
         0+l/tPUOsBmycO3mXSZaO850Kzg7X6AMSNG/PqlaOig1QRK6iavob1Q3UKWvjGkzmuQc
         tg7qP4GuN//6ToPndZInINBCB4cRm/4Up8dlCOCEbZtHGfPLHzbOFrwaSp7YQ738LzxZ
         UffgMngR6euRGHCIlDFifeUWrEsdRZV2uc7N7dQ5wVLbiNXyw3COW3ZAenEG5Lzp/X7y
         Gl2eOgx/uScTwTUxV04MjciOVj8ylN7xhQv0QtGjipRHBcVpUk9mkYsZXD5mzZFVkHLx
         1zHg==
X-Forwarded-Encrypted: i=1; AJvYcCUUlENODTYGpscody0+BaFU7bwO7lFHJkAuZ1zQW3506gxBVylGoRL063TC1X7WjPZN+cySYX52tBs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwEAs0btQCxqQWLi/FPO3Ma+nnLuu6JJ0I0lU8lexSE5qasCZ9P
	SPgPAbYmiF3UmDkUx43veGwXx26+6lzOA/zUy0/QfVRv7LPnwDRwP7G3
X-Gm-Gg: AY/fxX5PvTWoOto2welyNPAlpUE2hPRbpuBY6YokTbvmSkDXEefIpYAF7NyfDpyISvh
	XVuGvLsezcxIW0X5dizHD8huG6lAA+zFfZrZIvXbYNmiJqk+qsEqGdets4R54NSiqgzY7FXyJle
	CRev0mNufdEXEW/fLD+GIi8j1BBYjo3YAyqIRIE+P3HLjFUT062UdvAqSyve8uqWiajeGv8/AMF
	Stze6fQuDqRKs4GmOHAaxaUmtLqb7tRjErjoBCoC4dQghm7wFizLYNw30jKoNhB33NEK14lEpaD
	kDipQ+571O8iBI13P/eJEwbEcAdWJLL2yBDQcnGy9g9rLN3M4qgZurFgjMnALdXGQwM0v1WrtPQ
	h9LsF1VHFbYCLPpMb042lziM1c7fz3UE0WjsO7yiz0slCaVwaBOMPIEGEzfcNq7rKfY7hHhJEKE
	hPDNCAWpVqzCiCsiXgqe2trPUHNCqt0ckuLwNV/68CiET2mE1l7XKjiY32OzcDfVwGVqTDMLctB
	Q==
X-Google-Smtp-Source: AGHT+IGUbcJE3QohoLaY3SzT83eik/wP+7hWm52vIoDKF9L8N2yTrhsAOtFze7fRGHC+9Y+594C4Gw==
X-Received: by 2002:a17:907:3e15:b0:b73:70db:4994 with SMTP id a640c23a62f3a-b803705dbc5mr2620079666b.34.1767109663026;
        Tue, 30 Dec 2025 07:47:43 -0800 (PST)
Message-ID: <ff4b8b38-3621-4ad9-8f43-d134c4e70567@gmail.com>
Date: Tue, 30 Dec 2025 16:47:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 2/3] xen/riscv: introduce metadata table to store P2M
 type
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1766406895.git.oleksii.kurochko@gmail.com>
 <127d893e3b6a0da1195f9a128c8d0591e6ef473d.1766406895.git.oleksii.kurochko@gmail.com>
 <0a4fb29a-a0b5-4e20-91c4-425702677d11@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <0a4fb29a-a0b5-4e20-91c4-425702677d11@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 12/29/25 4:13 PM, Jan Beulich wrote:
> On 22.12.2025 17:37, Oleksii Kurochko wrote:
>> @@ -370,24 +396,96 @@ static struct page_info *p2m_alloc_page(struct p2m_domain *p2m)
>>       return pg;
>>   }
>>   
>> -static int p2m_set_type(pte_t *pte, p2m_type_t t)
>> +/*
>> + * `pte` – PTE entry for which the type `t` will be stored.
>> + *
>> + * If `t` >= p2m_first_external, a valid `ctx` must be provided.
>> + */
>> +static void p2m_set_type(pte_t *pte, p2m_type_t t,
>> +                         const struct p2m_pte_ctx *ctx)
>>   {
>> -    int rc = 0;
>> +    struct page_info **md_pg;
>> +    struct md_t *metadata = NULL;
>>   
>> -    if ( t > p2m_first_external )
>> -        panic("unimplemeted\n");
>> -    else
>> -        pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>> +    /*
>> +     * It is sufficient to compare ctx->index with PAGETABLE_ENTRIES because,
>> +     * even for the p2m root page table (which is a 16 KB page allocated as
>> +     * four 4 KB pages), calc_offset() guarantees that the page-table index
>> +     * will always fall within the range [0, 511].
>> +     */
>> +    ASSERT(ctx && ctx->index < PAGETABLE_ENTRIES);
>>   
>> -    return rc;
>> +    /*
>> +     * At the moment, p2m_get_root_pointer() returns one of four possible p2m
>> +     * root pages, so there is no need to search for the correct ->pt_page
>> +     * here.
>> +     * Non-root page tables are 4 KB pages, so simply using ->pt_page is
>> +     * sufficient.
>> +     */
>> +    md_pg = &ctx->pt_page->v.md.pg;
>> +
>> +    if ( !*md_pg && (t >= p2m_first_external) )
>> +    {
>> +        /*
>> +         * Since p2m_alloc_page() initializes an allocated page with
>> +         * zeros, p2m_invalid is expected to have the value 0 as well.
>> +         */
>> +        BUILD_BUG_ON(p2m_invalid);
>> +
>> +        ASSERT(ctx->p2m);
> I think I previously asked for this to be moved out of the if(). Else you
> may not notice a caller side issue until a point where a metadata page
> actually needs allocating. (This could simply be folded into the earlier
> ASSERT().)

I think that I understand your intention and okay to fold ASSERT(ctx->p2m)
into the earlier ASSERT().
Just want to note that generally if the metadata page has been already
allocated and then p2m_set_type() will be called with ctx->p2m == NULL then
nothing serious will happen as basically ctx->p2m is needed in this function
only for allocation of metadata page.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Dec 30 15:50:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 15:50:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194337.1512742 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vabzR-0001so-Eg; Tue, 30 Dec 2025 15:50:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194337.1512742; Tue, 30 Dec 2025 15:50:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vabzR-0001sh-BT; Tue, 30 Dec 2025 15:50:29 +0000
Received: by outflank-mailman (input) for mailman id 1194337;
 Tue, 30 Dec 2025 15:50:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hKsM=7E=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vabzP-0001sb-Ve
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 15:50:27 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 413ec65a-e597-11f0-9ccf-f158ae23cfc8;
 Tue, 30 Dec 2025 16:50:24 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b7cf4a975d2so1543505366b.2
 for <xen-devel@lists.xenproject.org>; Tue, 30 Dec 2025 07:50:24 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037de0de1sm3695413366b.40.2025.12.30.07.50.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Dec 2025 07:50:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 413ec65a-e597-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1767109824; x=1767714624; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=n7gKOOgmmYdSIY6PAwcf6NmkP9o7a38tNEad4djOSS4=;
        b=GuPoCqmdaXAqg6SP70pxDTdlBBFZuBjWHhrMSNu+65vi6xQ8T7xpLCCQcTTX55FLxN
         8GVifEpUQlTwGOWl2DegyPr4kaRtOQySmG6szUUbhMYx2KvGE1GuNETdNZ602vdWy19s
         h2s03d3q8HZDmc7hNllRsLZ0GB5vM7Y0pc13h/qnAsvVhFnVGqMedArr6ce+SSIrw8gC
         paKOVtpgss1EELN++Odg3fHSi3yAsleezp2v4LSj0elZ8MZidQQRCiWHRTVOuCm84dbr
         qJDPht4z8WnlGs29RP0mMqVmGZ8lgxj4FcPEHVM4K/pxvGOcE9dYNrmfiLKU11qPy2Oc
         gYJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767109824; x=1767714624;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=n7gKOOgmmYdSIY6PAwcf6NmkP9o7a38tNEad4djOSS4=;
        b=KcJyahAMXT2ZNqdMWU8cebqJeyLQEbxNLuN3CTLx+uv3RZXnCOWRHf/JxGROoeBNtu
         NG2JkEQVYMgbFKLkh0pgSzEe+0zxG1R57IJE268KTXwsNA9kTR4Fb++ynQ1m0aR8lzuu
         aHM3OxECZmq792LbkEQyauuFW6gDTnSAUx1nNnwjL9kH6PoMRUysdpHin41ggSrKi6W3
         S5u7YS0JYQUYqsCXf0wtPKmA7i7D3Cf0ffkmJ8WW3yTe++2n9bo86g7dN2bMoq6tSBMx
         R0aJutZPXL7bDZW+4eh9E9LNZhVAD2k5mBr22f5DuBuYKu39OkcNUT4jJxcVWVSAxIhW
         1DaQ==
X-Gm-Message-State: AOJu0YxLf8jlHVlGVKzBQ3th5aTeAUo3nlYpWmwrjgnxM4OQXuWq3x06
	Q8LfZgzSxSg1uYE32VAO7hm6ziIyl3WgghCCk7HwsFerGToNBqW48V+/6Y9ljQ==
X-Gm-Gg: AY/fxX7M48MgqJA2CMx2liS2QbWA4L5+JH+l2C9WRDVWIxUppLGuvA/4oQON3Vc789Q
	B/V8Dds6njqqJoo424WWe/AkEd9lvETJQ1Pn94B0+J35mVt4vUbYJwKm56+fDsAIEz3aU+6iU9p
	Fj6DPrOfWUk/zO1RPJuq/NPg52X5Vf8mo+z6mc+M7p9/MdFWMFFH/fJBFFGJaTRz00D714PQF3G
	Jub++hPAZyRItK05ELCNpRKaGFGztvhxnPRz4/+c4bSTYe+hyfeoz7W+wLBm3IIYMJUbyhDz2lo
	MM1pZL6OhX7+/Odh+ZiY+8iZJYTKsP1kaMgs2Lh0D0bMYqUdMEDkh0/EVkVF2V+HncmjbZUVmVe
	0gR1WDy/uwK1kbyzHZ1ms2lJOUw83d6RpsJ7bRY8hDCLNNi0OS5AhQtYTUeh+GMI48aPkx+oqnW
	CYI2hTxLIoIFEeRord5ozHyVKkvnhZYzL7RwAamnAZ226SorlDD7MGVQ==
X-Google-Smtp-Source: AGHT+IHmPTleLF1vmAUMJ+0zoGqS1Qu6n/ZbaQyy5oVKptd2FFupdkOFy0+GoFZJ837xlHaFP7jySA==
X-Received: by 2002:a17:906:4fd0:b0:b70:b700:df98 with SMTP id a640c23a62f3a-b8036ebbe4amr3376642066b.5.1767109823599;
        Tue, 30 Dec 2025 07:50:23 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 1/1] xen/riscv: add RISC-V virtual SBI base extension support for guests
Date: Tue, 30 Dec 2025 16:50:11 +0100
Message-ID: <d49e5b9555d4f04d569e20d9c9feb23b298c7ee1.1767108625.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1767108625.git.oleksii.kurochko@gmail.com>
References: <cover.1767108625.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add support of virtual SBI base extension calls for RISC-V guests, delegating
hardware-specific queries to the underlying SBI and handling version and
firmware ID queries directly.

The changes include:
1. Define new SBI base extension function IDs (SBI_EXT_BASE_GET_MVENDORID,
   SBI_EXT_BASE_GET_MARCHID, SBI_EXT_BASE_GET_MIMPID).
2. Introduce XEN_SBI_VER_MAJOR, XEN_SBI_VER_MINOR for imeplenataion of
   SBI_EXT_BASE_GET_SPEC_VERSION.
4. Introduce SBI_XEN_IMPID to implement SBI_EXT_BASE_GET_IMP_ID.
5. Implement handling of SBI base extension functions, including version,
   firmware ID, and machine-specific queries.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v4:
 - Move definition of XEN_SBI_VER_{MAJOR, MINOR} to base-extension.c.
 - Correct string format for FID: s/#%#lx/#%lu.
 - Print first EID then FID (as vsbi/core.c code does).
---
Changes in v3:
 - s/XEN_SBI_IMPID/SBI_XEN_IMPID
 - Add ASSERT(eid == SBI_EXT_BASE) in vsbi_base_ecall_handler().
 - Fix code style for switch/case.
 - Use current instead of `vcpu` argument as it was dropped from
   vsbi_base_ecall_handler() prototype.
 - Add comments for define-s XEN_SBI_VER_{MAJOR, MINOR} and SBI_XEN_IMPID.
---
Changes in v2:
 - s/vsbi-base-extension.*/base-extension.*
 - Introduce VCPU_SBI_IMPID, XEN_SBI_VER_MINOR and XEN_SBI_VER_MAJOR.
 - Return VCPU_SBI_IMPID in the case of SBI_EXT_BASE_GET_IMP_ID.
 - Return Xen version in the case of SBI_EXT_BASE_GET_IMP_VERSION.
 - Use domain_crash() instead of panic() for default case.
 - For SBI_EXT_BASE_GET_{MVENDORID,MARCHID,MIMPID} abd SBI_EXT_BASE_PROBE_EXT
   add handling of a domain is h/w or not.
---
 xen/arch/riscv/include/asm/sbi.h     |  6 ++
 xen/arch/riscv/vsbi/Makefile         |  1 +
 xen/arch/riscv/vsbi/base-extension.c | 82 ++++++++++++++++++++++++++++
 3 files changed, 89 insertions(+)
 create mode 100644 xen/arch/riscv/vsbi/base-extension.c

diff --git a/xen/arch/riscv/include/asm/sbi.h b/xen/arch/riscv/include/asm/sbi.h
index 751bae6d6654..79f7ff5c5501 100644
--- a/xen/arch/riscv/include/asm/sbi.h
+++ b/xen/arch/riscv/include/asm/sbi.h
@@ -14,6 +14,9 @@
 
 #include <xen/cpumask.h>
 
+/* SBI-defined implementation ID */
+#define SBI_XEN_IMPID 7
+
 #define SBI_EXT_0_1_SET_TIMER               0x0
 #define SBI_EXT_0_1_CONSOLE_PUTCHAR         0x1
 #define SBI_EXT_0_1_CONSOLE_GETCHAR         0x2
@@ -32,6 +35,9 @@
 #define SBI_EXT_BASE_GET_IMP_ID         0x1
 #define SBI_EXT_BASE_GET_IMP_VERSION    0x2
 #define SBI_EXT_BASE_PROBE_EXT          0x3
+#define SBI_EXT_BASE_GET_MVENDORID      0x4
+#define SBI_EXT_BASE_GET_MARCHID        0x5
+#define SBI_EXT_BASE_GET_MIMPID         0x6
 
 /* SBI function IDs for RFENCE extension */
 #define SBI_EXT_RFENCE_REMOTE_FENCE_I           0x0
diff --git a/xen/arch/riscv/vsbi/Makefile b/xen/arch/riscv/vsbi/Makefile
index bc5755cb13d6..8ce470f787c5 100644
--- a/xen/arch/riscv/vsbi/Makefile
+++ b/xen/arch/riscv/vsbi/Makefile
@@ -1,2 +1,3 @@
+obj-y += base-extension.o
 obj-y += core.o
 obj-y += legacy-extension.o
diff --git a/xen/arch/riscv/vsbi/base-extension.c b/xen/arch/riscv/vsbi/base-extension.c
new file mode 100644
index 000000000000..41a95ae188dd
--- /dev/null
+++ b/xen/arch/riscv/vsbi/base-extension.c
@@ -0,0 +1,82 @@
+
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/lib.h>
+#include <xen/sched.h>
+#include <xen/version.h>
+
+#include <asm/processor.h>
+#include <asm/sbi.h>
+#include <asm/vsbi.h>
+
+/* Xen-controlled SBI version reported to guests */
+#define XEN_SBI_VER_MAJOR 0
+#define XEN_SBI_VER_MINOR 2
+
+static int vsbi_base_ecall_handler(unsigned long eid, unsigned long fid,
+                                   struct cpu_user_regs *regs)
+{
+    int ret = 0;
+    struct sbiret sbi_ret;
+
+    ASSERT(eid == SBI_EXT_BASE);
+
+    switch ( fid )
+    {
+    case SBI_EXT_BASE_GET_SPEC_VERSION:
+        regs->a1 = MASK_INSR(XEN_SBI_VER_MAJOR, SBI_SPEC_VERSION_MAJOR_MASK) |
+                   XEN_SBI_VER_MINOR;
+        break;
+
+    case SBI_EXT_BASE_GET_IMP_ID:
+        regs->a1 = SBI_XEN_IMPID;
+        break;
+
+    case SBI_EXT_BASE_GET_IMP_VERSION:
+        regs->a1 = (xen_major_version() << 16) | xen_minor_version();
+        break;
+
+    case SBI_EXT_BASE_GET_MVENDORID:
+    case SBI_EXT_BASE_GET_MARCHID:
+    case SBI_EXT_BASE_GET_MIMPID:
+        if ( is_hardware_domain(current->domain) )
+        {
+            sbi_ret = sbi_ecall(SBI_EXT_BASE, fid, 0, 0, 0, 0, 0, 0);
+            ret = sbi_ret.error;
+            regs->a1 = sbi_ret.value;
+        }
+        else
+            /*
+             * vSBI should present a consistent, virtualized view to guests.
+             * In particular, DomU-visible data must remain stable across
+             * migration and must not expose hardware-specific details.
+             *
+             * These register(s) must be readable in any implementation,
+             * but a value of 0 can be returned to indicate the field
+             * is not implemented.
+             */
+            regs->a1 = 0;
+
+        break;
+
+    case SBI_EXT_BASE_PROBE_EXT:
+        regs->a1 = vsbi_find_extension(regs->a0) ? 1 : 0;
+        break;
+
+    default:
+        /*
+         * TODO: domain_crash() is acceptable here while things are still under
+         * development.
+         * It shouldn't stay like this in the end though: guests should not
+         * be punished like this for something Xen hasn't implemented.
+         */
+        domain_crash(current->domain,
+                     "%s: Unsupported ecall: EID: #%#lx FID: #%lu\n",
+                     __func__, eid, fid);
+        break;
+    }
+
+    return ret;
+}
+
+VSBI_EXT(base, SBI_EXT_BASE, SBI_EXT_BASE, vsbi_base_ecall_handler)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 30 15:50:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 15:50:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194338.1512754 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vabzU-00027Y-Rm; Tue, 30 Dec 2025 15:50:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194338.1512754; Tue, 30 Dec 2025 15:50:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vabzU-00027R-N5; Tue, 30 Dec 2025 15:50:32 +0000
Received: by outflank-mailman (input) for mailman id 1194338;
 Tue, 30 Dec 2025 15:50:31 +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
 <SRS0=hKsM=7E=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vabzT-00026k-F9
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 15:50:31 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 407b754f-e597-11f0-b15c-2bf370ae4941;
 Tue, 30 Dec 2025 16:50:23 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-64c893f3a94so11523800a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 30 Dec 2025 07:50:23 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037de0de1sm3695413366b.40.2025.12.30.07.50.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Dec 2025 07:50:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 407b754f-e597-11f0-b15c-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1767109822; x=1767714622; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=yIG0sywHzPD2YdTunP/Jm/AGGTirviuhfinchXZhN1Q=;
        b=ZXFUMKMsQfFn9DnXWUVroUrfl4gSP4SHZ4VpRFYpxGX3JkJiA2rqaShSXjxdCw5Osn
         l6npQK45KKmscqn8IGtTXco4GosSkxSP+y3QZE2J55mXALenBsK1WLh59/M3K//OqG41
         aqBwSP9Ins7K2pq7T9SIirXlT/dQuCrInGi7eRn7w+i99Nq5ReE9GjBGUnBX1rZ4ExkN
         kD1WmLRrB9OwYyTnoLntPIRcvLXyy7T01TyDnAawm+s3Ej3E0j0eGxNt1UQ2Z/vvCxxj
         ArY+vFXorsuPIbIXzyJpdMse18Gt26KD7J+I8PFelaD1DuncT/TJSsRn1k4204wQpui7
         Mxew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767109822; x=1767714622;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yIG0sywHzPD2YdTunP/Jm/AGGTirviuhfinchXZhN1Q=;
        b=TEJTOl8oSjrxdLx8D18YdNDaGDPq6nSFNSZYvLDfdrVlS5uHwAdaguGxZrvKBJIig9
         NSsmnT9AbIKI/vBN+27GKDfcnUeb+R88CgM5q7wnQ1AedCJWVMKv26EQENbPMyJhEsrx
         e6T9aiNY1IAjsBFYlF5J9Jw6uaHSlFlb9zKyx+R0UdxBTI+PivjREDErttEjmsn6C6aN
         FRRy0oLMECVtNhDuf5AXNvaMQnxAuM4t4RFFuiu5I0ScQKekPEl2YbMIPjvbEIbsB3Xc
         5BHjdJDTHv3gjK7wC10dhbJM7bC1+xLMu62TELesvA4jZrGhtLSffURQFqyCKuE1r94z
         dbGQ==
X-Gm-Message-State: AOJu0Yxvs9euHKazqUJ7+R9rhz1Lz9qxHoXieRr2QSJ50X+BWlIEn7yK
	MSYP2hoduuVo5k92ZWaqP/I23THN9m8P7QMQiZpOmFCU75cZP4yC4WGLSgX4Lg==
X-Gm-Gg: AY/fxX7a4OhSCwHDCiBppHqkPkxcFwKveDbdpkSF/dFHneUV8AKCgeZMDXNfro72eWr
	9zdoLUFWbov7wBxXZrOgxH7P5J14AzjofmWG0hzzJU/KCeYLKQywM8dRZ+sUS0H61cu3t+MWccd
	ALA/RNpkmRoyyGniuUtuiGHQ1UvVdyZdQG1ep5+vN95lfbjERtJ4FyB1+jv5ZDAhcrANdBPEY9y
	CB5QNYdWjDGd5FPAPCS0xics+3qGabkld0gT/aOZGWpxO1pgyvUugOFx+iDCmiRJIsdKnM0KTO2
	zwLpGFHlZici5dJ0rtR5WajwVsKzeGbT5YHeWRfCZku3g2hFt1kvpTroReDtqaSVPGcQCJWvI7y
	sD4Y9pUiEAkDYwvgaFeVpJ/LItODs2IEm+mpo0L1Aeb6RzfAHOwX819wAB0xza+Y42ekUlXIXgD
	fWGMqfE/+NGhGdceMAxPjR0LCcH5Xy5WzQyE93ktnsyGwDMMjSUSE5kA==
X-Google-Smtp-Source: AGHT+IHs8CfExgzyYCDC078hUfShkbz1D6L4tU2JNLJdY7rvD2AqtKX1689fDE/TcYE2Qi2je+pWpA==
X-Received: by 2002:a17:907:3f9f:b0:b76:3d56:f666 with SMTP id a640c23a62f3a-b80205ed2bdmr3754182866b.26.1767109822391;
        Tue, 30 Dec 2025 07:50:22 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 0/1] RISC-V: Introduce vSBI framework
Date: Tue, 30 Dec 2025 16:50:10 +0100
Message-ID: <cover.1767108625.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the vSBI framework to handle extension ecall instruction calls
from a guest.

In this patch series, support is added for only a few extensions and FIDs,
just enough to boot the first guest domains and obtain logs from them. This
keeps the patch series independent from other ongoing work.

It was decided to start with support for the Legacy Extension, as it is still
supported by Linux (so we may need it anyway), and because some of its FIDs
require less functionality to implement at this stage compared to the more
modern extensions.

CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2238071752

---
Changes in v4:
 - First to patches were merged to staging.
 - Address comments for the last patch.
---
Changes in v3:
 - Address a comments from v2.
---
Changes in v2:
 - Address a comments from v1.
---

Oleksii Kurochko (1):
  xen/riscv: add RISC-V virtual SBI base extension support for guests

 xen/arch/riscv/include/asm/sbi.h     |  6 ++
 xen/arch/riscv/vsbi/Makefile         |  1 +
 xen/arch/riscv/vsbi/base-extension.c | 82 ++++++++++++++++++++++++++++
 3 files changed, 89 insertions(+)
 create mode 100644 xen/arch/riscv/vsbi/base-extension.c

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 30 15:52:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 15:52:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194361.1512762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vac1g-0002z0-4e; Tue, 30 Dec 2025 15:52:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194361.1512762; Tue, 30 Dec 2025 15:52:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vac1g-0002yt-1w; Tue, 30 Dec 2025 15:52:48 +0000
Received: by outflank-mailman (input) for mailman id 1194361;
 Tue, 30 Dec 2025 15:52:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hKsM=7E=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vac1e-0002yn-Nl
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 15:52:46 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 94a3b21e-e597-11f0-9ccf-f158ae23cfc8;
 Tue, 30 Dec 2025 16:52:44 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-64ba9a00b5aso11684488a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 30 Dec 2025 07:52:44 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b91599844sm35260022a12.25.2025.12.30.07.52.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Dec 2025 07:52:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 94a3b21e-e597-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1767109964; x=1767714764; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=bLkc9FoZq3YTct54aDb92kNA/9i0FxcpSqRx6vpEmH4=;
        b=T4J2qIzSdngydBnH7i7YMoSlx+Qa2qop9YNcleF/V8XmCTHyEqLPURE0UIfrRVTPcI
         qYZ9TXAmGxD/GuwmB7Cehtgj6zBCoLjQwd85f1vpI5hC70GkKGhW+iENyFQv7xgI8P5d
         Hs406XhKSilbILrkwQRBxBcJKF0wIOL6DK3HJ67XAspwyH/DZUa8W2rYINDJpuFI0pyt
         P6sE514b0A2dN/hjNX0cIeANmMnu/h6YhWqlPNQ+/d5cxlpV1F4Ft2VvDYKQ/kmgeGTF
         FRixBP4qsUpyo22ZyxvV8opIQQzFkR3oFeW8sKnUU7SLSJ6XDASaxe/kMfymmW4qdq2m
         f+Sg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767109964; x=1767714764;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=bLkc9FoZq3YTct54aDb92kNA/9i0FxcpSqRx6vpEmH4=;
        b=LBKdISjlnWph1RstnhvApItxx//UScq+4hiPssxGjwKPownFSaqBdRUgogA6HtgVDb
         O9jAwwtPiVh/FgIeCr+SmNC7U5G4o3pJWTfcriS3T3V9U0wknOkb3iA2b+JRcgF+VcCh
         1+lKkShPnoqC5iAZYa9AjDhAXO7vn80WAyNxiDfZrLO1W5EaYcn9dgKtxoS3ZDTeX5qD
         4XNjhYcPCxzPNX1sgopeq9C7TFFvU8G+jcn1cqYOcfQrdojnzPy6IjO/RnVxupdfsUHb
         RAa43Cokg8VC0Xp8BdZ0H9MnoldTesTNPHv1uxgIs82wqTv/puBq+3HncPJmop83++Zr
         e+kg==
X-Forwarded-Encrypted: i=1; AJvYcCVSvqVrNEtBrA07pMB3I74u6wAjRwzkc69Oj+8ucoBHjYJUh7mss9Vv+zZgh+SYEPpDssbMKIEwOEw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzjARdZrzIaMSK9HOtl1YsseSMONcEKg7loZLFg6sdZ8D/M66A8
	IVb0PfJsoN0wDE4bU2HM63FAjnd1igtc30ajiuAOh4Ifk6uFXOPPlA4M
X-Gm-Gg: AY/fxX5pXB9HyYrziExxc/9yJ+qr2aOLAdktEJc9IRGnXxbFCf20xK2zaOqsg0XYoA2
	CWnMqfGTAVPZvUHTiV92QRYew345M85IWxt5E/a5CCvIbPD3VTDii45Ji4OPjgk1gbl6rO6e7Nc
	1JJ3WOYYfYq0kqH/xjDBE9aJ9KUL3ZfGW8eYx1Y/W8RimuGgZ3iJNNcWA1aMYgiSVQu7N6mprdP
	rhjfRrQFqIEN9k5edZ1AYBRcwGG5lF/G20hGurioxTNeEQsMw0e7gukjY0ksgberL4EJx31tv+M
	U7/YamGqxApGO7ZSecqwD0jXkKHQdUDNODMH/1r3AXAPFg0hlAF3T2+Fh4MRESsNhQ6uAsYpmmm
	VbB3/wroBeou18dm3PF2cRSpv0cegOH2BrDUSB9IdsRD39PwmaAAKNFd+fa5Hb9LkaXEmhyofy4
	OsFdU80Nv2MYpQqDYn5D/As8FuYPcR3UqOV4IMs3pTTK28KHBYvQccladaCyRpoqk=
X-Google-Smtp-Source: AGHT+IF7nUKnadZrx5gs11egT3DU4G1WMv3sk3hckkCfKISBVERyvcgKwBe1iEgy5CNPXKoQH85fKg==
X-Received: by 2002:a05:6402:3596:b0:64d:1d2b:238f with SMTP id 4fb4d7f45d1cf-64d1d2b268cmr28013387a12.19.1767109963862;
        Tue, 30 Dec 2025 07:52:43 -0800 (PST)
Message-ID: <a691f12f-e453-4286-a0ff-d6db8f582874@gmail.com>
Date: Tue, 30 Dec 2025 16:52:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/4] xen/arm: vcpu_vgic_free() updates
To: "Orzel, Michal" <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1766504313.git.oleksii.kurochko@gmail.com>
 <ca86bf36375d19555961225f214b9d23557b0d3a.1766504313.git.oleksii.kurochko@gmail.com>
 <4c09cc87-307e-440d-9a1d-7ef2313ae466@amd.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <4c09cc87-307e-440d-9a1d-7ef2313ae466@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 12/29/25 11:50 AM, Orzel, Michal wrote:
>
> On 23/12/2025 18:01, Oleksii Kurochko wrote:
>> Use XFREE() instead of xfree() so that vcpu_vgic_free() can be idempotent.
>> With XFREE(), vgic_vcpu->private_irqs is set to NULL, so calling
>> vcpu_vgic_free() a second time is not an issue.
> Usually it would be beneficial to back such statement with an example of a
> situation where this is or will be the issue.

I think there is not a case now in current code base, but just common practice
to have such type of functions to be idempotent.

>
>> Update the prototype of vcpu_vgic_free() to return void to satisfy MISRA
>> Rule 17.7, since the return value of vcpu_vgic_free() is not used by any
>> callers.
>>
>> Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Michal Orzel <michal.orzel@amd.com>

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Dec 30 16:04:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 16:04:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194373.1512772 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vacCe-0005Jr-3T; Tue, 30 Dec 2025 16:04:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194373.1512772; Tue, 30 Dec 2025 16:04:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vacCe-0005Jk-0p; Tue, 30 Dec 2025 16:04:08 +0000
Received: by outflank-mailman (input) for mailman id 1194373;
 Tue, 30 Dec 2025 16:04:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hKsM=7E=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vacCc-0005Je-Gb
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 16:04:06 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2995876d-e599-11f0-9ccf-f158ae23cfc8;
 Tue, 30 Dec 2025 17:04:04 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-b832522b47cso556724166b.0
 for <xen-devel@lists.xenproject.org>; Tue, 30 Dec 2025 08:04:04 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8037f0cea9sm3624154066b.50.2025.12.30.08.04.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Dec 2025 08:04:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2995876d-e599-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1767110643; x=1767715443; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=fnhyMCr8T/iszehS58YhFGhLWSLr/RAMi197kNxHSnE=;
        b=NhwJPoCYrhTLz9tKLcL54kcndCPPxR/v8lRlD24XqMFxp1pr3FupfMdaK0BBwuMaIW
         ERfaVHGUPiABYxQ83O2M8pCtQ88kM0vAjVmxpg21+/ONcI9mkuBvnUVXRDZOB70PBXH5
         2Vh8jiOXbgEnW3ZhOWBpXT6lWWLKn2r4vju8Lvghi/YFgZn1McnNoRyyxSCMaywj48q0
         DvprPzjIH2cEf2892cYS2s0ZFdof8/pOh3NbPi6PUOVDJlBRrjKqxd5GR0WNBz7hSL40
         JsTn4PBWXZSecluPI74C0fwgmM/ka0zf4MKykT5mpBqSteT05o9FShMjakaLZKjHxqfz
         fPfA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767110643; x=1767715443;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=fnhyMCr8T/iszehS58YhFGhLWSLr/RAMi197kNxHSnE=;
        b=E61bE5ff3nU8UCh2Nxhg/DTJvJvmdxsDvbAGYnVUfgaXpDZcP2zzRK9cBjBFQB1HC+
         VwGMFpOkYxXaA2bGMZvKwFDv0mntvdiPHRbGVX1BxEngboeUC4qM12cKJiTW+/KMSi4r
         jxqOz2r+8oQvNL2JTLUrh46SoUXRaurozUPyoTSPeQH59tiXi7FKL+bOKkEmME5oaB5D
         zYEyfNSRrqQh/N+KifFCeSzN7Dh1ucAoW4DPBe9atm5KS68lohN/2Cj5P18tJ5iI4ouL
         7zMd7WHJgR/78ZjY7PtpO7HD3TNkddGu71Btg9Hg6EeYOUEpIwQHDqC/RgstSvUnemgN
         8i6w==
X-Forwarded-Encrypted: i=1; AJvYcCXiQFMO/jbltY3BqRZH2aCXqiEAON+sxmFA78bQCyVgmAchivBn5Gz5QhqKjJXGmykmFd9PeSCxFpw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YySkLR0YL1EX6zM14mqmtlUc9zt54uCXmpk0bAKRnWnJJweVhsR
	Y6yqTYmZr0Q+MpKPKjSGQU5BOPPWio/9crLFU4+QXFjN9RF6wLaqSDaUzg0s/A==
X-Gm-Gg: AY/fxX4JG+t1MWCqSoMif9chq9HTgobrb5BuKQRMah2B9bJH76lUWbWfrHIhCQ2H209
	TUPMTKkPOLDkRZGNbgTXv5fqCdJp/Iz1eXwwRkDU/kcw434Y4Fv1Ncex384POOOmBdN3Db8rlDg
	74osOKzqMvdeHLixniNW71ssnNQds6CeAWQqOIitT7xl9ZwidtpqGENozAe3esxB0kTBOdmSpTI
	bgH78lxbLlHDiowUsXWP76++LPUHQB87emW7j34ZRDx1WrANmeJbwvgFE5tfmxzgziyKtK4wiXT
	QfGptgAcxm+VvE1OSzviOICQrC9ezMSJtK7XqaYdITJLdxZHnchzVr0fBezjIuoANcH5j+OFjRc
	bg+d9WKeo7dHHXnJjhBkkP4XMp116RDlRvvQVoJ0803uNcxfWLuPtNtpA2l7up+JIMxNGsG/cpz
	EUo2Hi+VqUkx3sWmuQOpQSs4su7aM2dZ9Z0DrNxP0secdrBIaD+M+rcHoWn6u/SY8=
X-Google-Smtp-Source: AGHT+IErZpa+22bSz0+RlmLdzxxrIJqmj+e6rRQzrAD4CptdPmXHu8b4Ylvwh59XnT1ERFd9PacfGg==
X-Received: by 2002:a17:907:724e:b0:b6d:5bc3:e158 with SMTP id a640c23a62f3a-b8036f2ac34mr3630100566b.17.1767110643229;
        Tue, 30 Dec 2025 08:04:03 -0800 (PST)
Message-ID: <3ffe9668-84c6-4866-9833-20b5748bf339@gmail.com>
Date: Tue, 30 Dec 2025 17:04:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/4] xen/arm: optimize the size of struct vcpu
To: "Orzel, Michal" <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1766504313.git.oleksii.kurochko@gmail.com>
 <0756ee97dd47f6acdefe593694b743eb6bfefacb.1766504313.git.oleksii.kurochko@gmail.com>
 <9f2c9e4a-64e3-4e5e-b5da-976ab433f6cd@amd.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <9f2c9e4a-64e3-4e5e-b5da-976ab433f6cd@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 12/29/25 12:08 PM, Orzel, Michal wrote:
>
> On 23/12/2025 18:01, Oleksii Kurochko wrote:
>> When CONFIG_NEW_VGIC=y and CONFIG_ARM_64=y, the size of struct vcpu
>> exceeds one page, which requires allocating two pages and led to the
>> introduction of MAX_PAGES_PER_VCPU.
>>
>> To remove the need for MAX_PAGES_PER_VCPU in a follow-up patch, the vgic
>> member of NEW_VGIC's struct vgic_vcpu member private_irq is changed to a
> s/vgic_vcpu/vgic_cpu/
> s/private_irq/private_irqs/
>
>> pointer to struct vgic_irq.
>> As a result, the size of struct vcpu for Arm64 is reduced to 2176 bytes,
>> compared to 3840 bytes (without these changes and with CONFIG_ARM_64=y)
>> and 4736 bytes (without these changes and with both CONFIG_ARM_64=y and
>> CONFIG_NEW_VGIC=y).
> You only touch new vGIC, so there should be no size reduction without it but the
> paragraph reads as if the change affected both old and new vGIC. Also I would
> mention that probably you provided the numbers based on a defconfig target.

   Yes, all the numbers are provided based on defconfig target.
   I will update this paragraph in the following way to be more clear:
   As a result, the size of struct vcpu for Arm64 is reduced to 2176 bytes
   in the case when CONFIG_ARM_64=y and CONFIG_NEW_VGIC=y, compared to 3840
   bytes (without these changes and with CONFIG_ARM_64=y) and 4736 bytes
   (without these changes and with both CONFIG_ARM_64=y and CONFIG_NEW_VGIC=y).
   Note that all numbers are based on defconfig with the mentioned options
   enabled or disabled as specified.

>
>> Since the private_irqs member is now a pointer, vcpu_vgic_init() and
>> vcpu_vgic_free() are updated to allocate and free private_irqs instance.
>>
>> Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Other than that:
> Acked-by: Michal Orzel <michal.orzel@amd.com>

Thanks!

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Dec 30 17:06:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 17:06:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194389.1512784 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vadAN-0004em-F4; Tue, 30 Dec 2025 17:05:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194389.1512784; Tue, 30 Dec 2025 17:05:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vadAN-0004ef-BE; Tue, 30 Dec 2025 17:05:51 +0000
Received: by outflank-mailman (input) for mailman id 1194389;
 Tue, 30 Dec 2025 17:05:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jMxH=7E=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vadAM-0004eX-I0
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 17:05:50 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c7ac46f8-e5a1-11f0-9ccf-f158ae23cfc8;
 Tue, 30 Dec 2025 18:05:46 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB6392.namprd03.prod.outlook.com (2603:10b6:a03:397::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Tue, 30 Dec
 2025 17:05:42 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9456.013; Tue, 30 Dec 2025
 17:05:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c7ac46f8-e5a1-11f0-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HlPqDOZddeqUw7ktnlbv8gMLWK7VprypJvQe7ngFx4JPRoOF1CnybKjcONQsLdworEAwCDErBD37Rz/3d+LZKxboswJ7fnpCYDltlsZMC/+s9a4E57jUidh9WI2x84aWk2GzoKqW4iIpk+xvbtNR4ZqzRmg8gD4gZHUyztLuNgUuURlDxErySNg8Qwv3jXeOZBLOxzEwVTTC6Uqlnu+tgBX5lSslrDIrgraC4epBAAZGFn1q8ZPuXZQ6RTJA/5maDqKCaHMI4IFMENJJq5Pv0jmW69WH/39S1pilZ/alyi6nWMGVQhoNBrmbYbbtaYjYj2RXNcRdDZhIDh/d1ZPqCw==
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=q63IqMXSNUUEhyRsssGKpy01kGGBkJUz6SDQk1wca1k=;
 b=wZg0TKWKdrC5JIuqtdVKqmOkiJgnrbKvWCxLMAJMbNCVHBwhCYG/555OTjD/2hlCGmrBj+B9FQYMTlFawArPA8KNIp7Wagzr/o8JiwwsD2ERVnV0NEBVzjqFUdOnDQmSqzmwcioyW51fp37FU2om/jr2Kn4k9c7SLlamtTbfucfo9Btku8Dx06cg5bZB6QrFqtGAGdXZGlXezUrwu2mkeVLoxmJ8JVAWNe7rz3aVD3Rync9eluwwPkrrBqpfSAM0vvNw5uGJydmlyWLqoEG/nnqCcjX2w6mFEDmyUJjP4i13eWx1T1KHoVz52sehw6SCjqfSI3MnNkjHVTCZDk8XiA==
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=q63IqMXSNUUEhyRsssGKpy01kGGBkJUz6SDQk1wca1k=;
 b=FD/fzwSreB+5ZAvft418+7JkL+ICSqUreKc7xdjYNtULTtiD6emnio5U5u7m/sDjfZRzvbprmuhV31xm0o01Y8Sx1E+tL+ve9k/9pSofZ30snOvv6NOq3ssGkB1XOUNCIYqtuWuWN1qH28Wgg61ReZcH/fw5X6XuyM3sJBBfdP0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <191589a4-cb8c-4e92-866e-03d9a194db5f@citrix.com>
Date: Tue, 30 Dec 2025 17:05:38 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
Content-Language: en-GB
To: xen-devel <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 "consulting@bugseng.com" <consulting@bugseng.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Misra R17.1 in Xen
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0015.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ad::18) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SJ0PR03MB6392:EE_
X-MS-Office365-Filtering-Correlation-Id: c4d24537-ea19-44c7-4b0c-08de47c5a9e3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?b2hnTHlhVDdtTkZvV205SkhNNmRMNS9SK1dodDk3WnNrSjB1c2lUOFF5bTRw?=
 =?utf-8?B?L0dFSHJOV0x1TGFKaWdOeTdMVHE1d3I5T1JyZXNmaElLNEJROXlFLzBFRXlT?=
 =?utf-8?B?N0djL2dOWDBsSDEwNTJTZHpqQzFyRlNFaW5OMzlBVGNJbEJ4dWRWS1Z3TGNH?=
 =?utf-8?B?M3BMN0hLOUoybzFSNWJ5a0RvazFiMk4rSjhacC9Uck9ON091WEpkZzFjUEdr?=
 =?utf-8?B?VjJmQXVtMGhXODVQRXVvMm5QME5nMnMwWFpXWWxGc3d6Q2hrdDZhckRyWFEv?=
 =?utf-8?B?dXhvbmRidTgxcUc2SEQ4b2JZNUt2UnN3RjBUd2IrU1hxVXZ1Yno3OVRXeHh2?=
 =?utf-8?B?NHZBM2xSU3V4eFAwQ0ZuN1VDb0VGNmRKNzdwMWZxcTJPTHloVkNReWgrTGsw?=
 =?utf-8?B?TExUbVNjTC9GaE80T2hpYWRIcVdxaVRIa0ZhNlA0eUdHbTR5K25BUzIvdFdv?=
 =?utf-8?B?MnF2N1UrRml3aFJrRjl6WGxCa0UwYkZIbEpsczhmV09YNjloVnJBVTRGaTdh?=
 =?utf-8?B?SDdCOTlEaEZnT21iaFBFMEFuT2NhdllWMmhsM2djRC8vT0plb1V5U0RTOVZq?=
 =?utf-8?B?UVZyQ1pOMEFQTjF1NmxGcmVuY3pHMDlYT2ZvdWJ6RWt1MGh2U1VUUllseWpB?=
 =?utf-8?B?bzg1NVFlWXJUSnF0bVpHaGJqSzkwYUNqcGw3ZEVIb29sVkJZUE5UMENkNEw0?=
 =?utf-8?B?aDlYMTNsS0Vrbkl2dmttNmpnV1pENmpneExJQnUvdHNiYktPSlZrTW8yTWxB?=
 =?utf-8?B?cS9DbHdrT25oVDJvT1U1M3ZySmRVRTgyVC9kNEZVc3pRTlVGN1BnWnhDdXBl?=
 =?utf-8?B?RE1ONXRRRnRNTm5tdWgwTnpqMUJBZ21JcThDNzZ0OTBKUXM4NnFkYXUyUGJt?=
 =?utf-8?B?dHc5SThuY3hOaS9XM1hyMFZ4SlYxVFBEZC9QOC93UmZWSk1USnN6ekV3MjUz?=
 =?utf-8?B?L0N1cTNQVGVsUE5hYnN3L2lrWGlYTXRwRHRvaGR3M0ErczkrcEZjdzlnM1hZ?=
 =?utf-8?B?NXBvNk1zSyt0QnhUR2g4T216ZzRpQ3NFMjBzRDhKVzdSa2ZmOXdXRXpGYTlx?=
 =?utf-8?B?cWdWamNoa3FzRGp3TFB0SGJwc2l3WFQwb1dPMjRlUm4rczRsaW0zbzllaEhD?=
 =?utf-8?B?eFZPTWlsZHlNd0lHdG9jYzllZW9RZjlmTGZ2aEx5QjdYMFE3L0tjd3RTZXlS?=
 =?utf-8?B?V2wxcHRUeEJKdVdHRjRUK2Q2bCs0MWZVWjhBNUE4M3hDRktzTlFiOGRJNGhz?=
 =?utf-8?B?R3VNZ2c3WDRvd1VBNTNsNGNOM0ZjRlpWVTczbTd5cGxFVEI1WE5WYmlwekFT?=
 =?utf-8?B?M0s2STR2Nmp6YXF5b09pOEU5czFRWVdEQU40a1JlTE0xTitSd2hIU0I4cVNz?=
 =?utf-8?B?d2RyYUpKNW1LR1JTQVBVRlA2U3dxNXpGTkV1R3FvWERPUmtmNlVWTXBVVS9H?=
 =?utf-8?B?YjkycHFsOTY5QWh3cFRDQ3VjNWxwTEFNNnFwbjdWczZ0ZzBOTFFKQzRRYUd3?=
 =?utf-8?B?bVFlSFlYd0t4NDFyd3hOZEFWU1pEejBSeTk5bC9jUnRZYUQ4Qkg0cFRVbmRn?=
 =?utf-8?B?RFdRTlRlWHE5bXJzNXNLV0ozSlVXQUFZSWQ5bHllTmhRR0N4dzg0bGRZOXY0?=
 =?utf-8?B?MytLOEtIemhJZTU2SXdPSGlHTm5KcWp1djNWTXF1dXJESlVIUXVqaE1wT29J?=
 =?utf-8?B?THo3YmhudjlrWHhCNWlnTERaTmlzTC81d3BWRXU5VXFBdzN2Q1B5dzRHTzhn?=
 =?utf-8?B?bEQ2ZkxRNDBSRlZkVWdwQm1rck9udFJvdVdtYlgzZHF3Qy9xeDNUREd2SU9R?=
 =?utf-8?B?N2RTQUVod3dlaGlsZnorZXFsaEcyc0dqK3U5MCtSSFcrZHBxcDF4NDhZWHVX?=
 =?utf-8?B?a1IyNVdmVndqZjl3MnNsZkEvbVQzNnhabDI2RzZyT2lOVEc3dHRweUNBeVdx?=
 =?utf-8?Q?5zdSevAiEWPswmEeCGP4jWhMx/L9OtUC?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WHJaRVIyOGRCTTVxbldPY1NJK2twTWttUU5lQUFtaGc3Mm5rWkN3ZVVUV1Vq?=
 =?utf-8?B?NHlpcTd4dVpqdDZ5dUxUZTYraTNaakVSVnhDMjF5Mm50UUJrWmpGeVhZTFNR?=
 =?utf-8?B?NUJILytGR1lzbzJhOGxIbGhPN0VQR2JwNWQxRnc0aG5RQkNXeVV4WGl0MG9w?=
 =?utf-8?B?WnJJMGdGNzVNWDlnRUg3Vnp3SUsxbGZrTTNmSXd1WFFkNXdJTGdKMkU5ZmJH?=
 =?utf-8?B?NE5INmhPVVVKN1RITUVYRjFjc0tNKzB1TitpbS9CLzhNK0hSQnVkeGd0Z1Z3?=
 =?utf-8?B?MEtyZHh6R0JHMFpUc1ZCY21oMFV6U1pzQllqTkN5MS9GTy9ZdXNlUmx1RSsz?=
 =?utf-8?B?VklzdzZFekEwMDBya3hHS1NpYWlqcWZaYUVMWkNBZnEwZ3l2cGRMcXhPQnYv?=
 =?utf-8?B?UnNPbnFOdEdERk53NFhRcGRQc2xCUk5sd3pnUlhBUjA1UCs2RkVkUEpkZkpQ?=
 =?utf-8?B?YVFRUXJHUzRUUUE0NWNWUlUrVjU1UmlJWENvTFhxOVpvMFNJbzZyMjFDSEhh?=
 =?utf-8?B?Ujg2Q0w2dmk0Rmd1MXBaQUlrMVJ3OGhITS84VEZuU0lPbjNDQS8za1JabGhX?=
 =?utf-8?B?dG1IdUIxSndTTCt2RldWUlZEb0lMWHZVMlAvZnpncVdTNkdjdk9pNzA1RlFG?=
 =?utf-8?B?R3pJWFJXdVkrK2xOSzBJeHBpOVFwZm1wb0VGV214dnhpdXRaTzlNNUFSak12?=
 =?utf-8?B?YWZrL255Z2tFbmJHT1VYS1dnZ2tsTnZad2xPaDlwRTFwRzlsVFBXZFBONmRp?=
 =?utf-8?B?ZXhJOW1QVzhhamtFZGRaSU9ZWXg0d1VkQmdyOWpzYnkyLzF3SkZTRFVSVXNs?=
 =?utf-8?B?T3FjTkFOYWFrQVdKZzFoWlVrSitFcEd1VDBSeWI3WFkyYmlWRWliK0Q2dHB3?=
 =?utf-8?B?MUNSMG8zeGMzL2o5TGNkTU5OK3RSdmdNRjVEclBlcG5pbGpDK1E4RU9wVEhQ?=
 =?utf-8?B?c2M1cnFVbG5TS0xkeGVCaWowK3c2Y0RLbE1QZDd1ZW5jeVhQS1lJdHhOSVZC?=
 =?utf-8?B?a0NJUSsvWE9CeG00RFNMMzFyQjIvdWVxVTBpcmVMRjIzUTloUFpKOE53UXU5?=
 =?utf-8?B?MHo3bDZpOXZqb3hIb096UjN2VFEzSVI0bTl1UUU5bzJVWVIrNUxNdjMzbGxT?=
 =?utf-8?B?MjhsTkY1Q1NiNCtMcTEwRGN1MVZVM2F4aHBTT0JsV2EyQVRhTEV1V1J1MWdB?=
 =?utf-8?B?cWg1Q2dSSnpQekJMbkVoYzI0U0ZJd09UUlRMdnh1cGRhMGNGNUVuY2dXL1VM?=
 =?utf-8?B?MnZid0JNQXdOUVdWWVNqRG9VQlRyenQzenIwVC9iV1htV3lvZWFUU25MbUhN?=
 =?utf-8?B?OVFJODh4ZUhYWXI1QjJKK2RQM1JLKzB5STdDQjI4cWg1VmV4VHV5K3B6NE1s?=
 =?utf-8?B?b0IwdjF2UkFVSzJxOXdWNXB1ZEZnRnhyTWpZanFCT0pXcUhuTlZ1cERZMWhB?=
 =?utf-8?B?MGRzYWRVY2dnWG1UdnFZVDBGTTIxOHpORnJ5Z3gxNTJlQy85SGNhRmEvWkh3?=
 =?utf-8?B?eWxQM3hRT3hRbUlIRUgrNGt2VS9RT2ZNQU44TGgya3RsNEVmbm9UbDdsNnEy?=
 =?utf-8?B?blVoem9UaWRoOG9VNjRIeGtybTI1b080aHJmakdzUUI3bzBQKzU2RFR5d3RM?=
 =?utf-8?B?RWlGMGxlMkF0Y2dTVGRCeFR3bjBlZjdWWU1wbkFMb09kYmo2dUMwTFJ4elVN?=
 =?utf-8?B?T1RiZVRubW4vN1M4c2xaeU9LYzBneUJxTUN0cGR6OHVqemJpWDY1T3BrdGF0?=
 =?utf-8?B?aHlvRVZuaEVSVFVFNFh2Rnk3WndwRFBoUjd5V2FKM0RDdWF2N3dVUlo3YVlm?=
 =?utf-8?B?aHZWMW9OZ3hoOTZPY0orNmVUMTc5SjJuQUxBdm1YM3lPK0h3ZUlEdzVKNUJD?=
 =?utf-8?B?L01ReEZhOWNzaEliSmN1c2drTGwrdTRINFVOZXNoU3JzTjREQmVMaVN2K09L?=
 =?utf-8?B?dzZmZURFSzNOajRSRFBJb0FUWkVCZ2NBRzVNd3BzKzZUNUlPQ0EvU3A1Qnh4?=
 =?utf-8?B?azEzTnBsMHppNkgwN0ZGb2pSK2hQRHkrL0s2dUE4azBFaHhiQXZ4ZGxNLzlr?=
 =?utf-8?B?YnRBSHhuQVN1a2xlMmxyczdubm1TM0dsTGV0Vjg5MlErL2Vsa1ZRa01YT0lF?=
 =?utf-8?B?N1BtMkJxbEptRXpDVXRjdmZHbnlkdDFZb0hlNjhCelZCdmZuSkF5aWgxZEEx?=
 =?utf-8?B?aGQxNElUOW9QWHlVZjZzZFlmVUJ2QVlZMys4OG1NRWVoemw1dCtOdnRQWGFq?=
 =?utf-8?B?WHI4OXVacEZVMks4LzAxRSszcFZkejRDc1l2NVZoa2JXTTI1dURzdUYzRElR?=
 =?utf-8?B?ckJNbjR2NzZ5VTBYT09jQUJqeVI5RGl4OTFzNy9LMUJFekt1VkJmME56SFJU?=
 =?utf-8?Q?gUi0aj6t+SiixsMk=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c4d24537-ea19-44c7-4b0c-08de47c5a9e3
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Dec 2025 17:05:41.9222
 (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: vj9MV647u53w4CW8okGBtiRbrEDtmkkTTxWgy0Pp5XZJ9yNUyMTe1nfD/qGswSSIdJoumDnrVMmdvt0Fj1ypQOeqFHhf09nagL6vrrH8YDc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6392

Hello,

The x86_64-allcode run highlights one new violation of R17.1,
vmcoreinfo_append_str().  In writing this email, I've found another in
debugtrace_printk() meaning that we're missing some options in the
-allcode configuration.

In deviations.ecl we have:

-doc_begin="printf()-like functions are allowed to use the variadic features provided by stdarg.h."
-config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(^.*printk\\(.*\\)$)))"}
-config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(^.*printf\\(.*\\)$)))"}
-config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(name(panic)&&kind(function))))"}
-config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(name(elf_call_log_callback)&&kind(function))))"}
-config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(name(vprintk_common)&&kind(function))))"}
-config=MC3A2.R17.1,macros+={hide , "^va_(arg|start|copy|end)$"}
-doc_end


First, we have no printf() so that row should be removed.

But, more importantly this is safe if and only if the function
declaration uses __attribute__((__format__(printf, ...))) to cause the
compiler to perform format typechecking.

Is it possible to encode this attribute requirement in the Eclair
expression, so that e.g. accidentally dropping the attribute causes a
violation to be reported?  This would also be rather safer than assuming
that any prefix on printk() is safe.

Thanks,

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 30 17:34:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 17:34:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194407.1512809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vadcH-0000Co-Og; Tue, 30 Dec 2025 17:34:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194407.1512809; Tue, 30 Dec 2025 17:34:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vadcH-0000Ch-Lu; Tue, 30 Dec 2025 17:34:41 +0000
Received: by outflank-mailman (input) for mailman id 1194407;
 Tue, 30 Dec 2025 17:34:40 +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
 <SRS0=bdC4=7E=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vadcG-0000CX-4w
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 17:34:40 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d097eef0-e5a5-11f0-b15c-2bf370ae4941;
 Tue, 30 Dec 2025 18:34:38 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id A4C634EE0739;
 Tue, 30 Dec 2025 18:34:36 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d097eef0-e5a5-11f0-b15c-2bf370ae4941
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1767116077;
	b=dH2f7C13RYHKtVxI4yZrWfWgypzR0KMXNROahmnwuaQCGpbl3oOvI5Dx3hGimfeqPDc+
	 7eILRGiLWdAs8f8x9PQc4PySB54nslVzjK4N4c4DB9KoixR2icbZZY0bGljYTQCSuuAgV
	 bKrrXEgCGHvTxFfZTZDGqCFjzI0Q2cGuqn7+SOxM0u5pDzKroW+KF9WZFcPOlRcbOLWgb
	 WhbOGeql+IKo3kyEpITYuyeBdV9XZzZT4+O1KplI8GElSRhCP8qGMTiT66cDRR13uys29
	 Ii0iEZllClNDOSnkekRnuAufWQCHJfdUIHJepkSa73tgG1voq/49zN3VDyPX+HIrN4p+X
	 zri2pIv8ZOZm+jZDFNVY+MxcLxPpm945jbodv62BCT3RKw1NvXQ1nDN1YpfKIMa/bF4l6
	 9W0ngcQfcdtaxCXq6V8wBM7MDGhqtNqo582PluBfuyoCctI1B2LZADbo/c42HLM3sWf1d
	 mpIwqXfTjXluyE/pfp5JOpOGag/6gAlaXkayHPSUfgzL2iXatJboGDN5St72P5I70vgeW
	 Wks4oL6heT9eRTk/JZtetXB+AYRNi869MmpxTqMMqFp9foT0QWV4N2aQAOGJM2SvxJySQ
	 qBYSwlw5FHoPUC1b3GDGj0QyZ1EOwZkBaPr6Vd+GtQRCuxhfRHm3LQwNOjpy6gk=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1767116077;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=VD9yZ49TX3PZn18QGlS86Yttz4SfYHRGAunuDNXFAzI=;
	b=18KVQcOnF9WWgEo9cU+IKBbHOAgsaod+NKJpDVx6RL4gHv23Wbjp5+ty2J0LB1GIwgpn
	 l+LvIs/kZqcSu6uvFtpsUYQbsFQ57QeQAVDWnbfZC7yMWETNcG6bT59mMYM+0HWcNdLgf
	 z76ta0zcRWVpj5LMUCiZNJLWaatPQpugjMr6CYZ23Mx5JvkJGXyKdTG0tD7SZgmt9LV8/
	 FSDFM2Mbd1r+iTVbjn0ea6yl3XyCXS2efzgSTcNlxMFryX3gx/rYtbPsBKPOzM00MRqNq
	 o1mGBCVXV6h5MedTXzopKlTt2xLrAA3D9bPQWqHymLj3nh+oNT37vROMZUZq0HGu+AxK1
	 kYlXMNEfHW7C3+5IGhV9EeqTRHX8RC2gP0R4M0vvIaCctUtgm9rZQ3snqjyDxHwgj0p6o
	 gK6Vd5j22uwQRWjcAnSF3Pcs2tHSwgdVetSkUOayU2Gp4EANF7OUAsbBaMGLwAs7pjGm6
	 /LBUM9xiM7iRMJHeaDbJ/snQ9AmiuT04b/TvsBlIujN4aXfdBFRhCsE+FKbR6pOrK74vi
	 rYAW6sTodFWqHL8k5VX0AELTjLuxBHuXHHVU4k55M4Hdm4nGF7qyfH+XPgOoEe8qvuxts
	 oBdJCJmFbkw9fRVC95cMTkn6bS2XM9w2DwRLYE12W8wAUXjlTAWqfsPtmmN75DY=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1767116077; bh=dcfjUV6HjuqtPXYaGHUTDcjrdSCGRSOdJfeSFYXm+SE=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=SSUXJUOc23OL6m8IkJw6DgDmrWZXUw1xjyt0DssDD3rmq837+MdApKJNpNoz/pvZf
	 h/vIvVcWIl4xo248Im/n5Gcax+e+tTDLB11Rc3VhHJnA37nA7pVTv5bzFWpt9Zdrby
	 GBrNqCYSSOALh4nW3xbCWstMeT6sZIM7RBkPiCho+GeiAs48TtgNlLSR40jiba/sBX
	 TrRBW6sXKgOfiFtHnZVG9CW2xCH77ytOZ/Z9pE088t7FUKFj7Tzy30+e+aaDbkTbtv
	 72UKfZHiky5BHaVkEQj4rm/PL6JIxQpk6dkymsLawh9mBPK3TRF4GCviJ1/75jDzb8
	 XxeIElYyzojRQ==
MIME-Version: 1.0
Date: Tue, 30 Dec 2025 18:34:36 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>, Stefano Stabellini
 <sstabellini@kernel.org>, consulting@bugseng.com, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Julien Grall <julien@xen.org>, Bertrand Marquis
 <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: Misra R17.1 in Xen
In-Reply-To: <191589a4-cb8c-4e92-866e-03d9a194db5f@citrix.com>
References: <191589a4-cb8c-4e92-866e-03d9a194db5f@citrix.com>
Message-ID: <d87f8fc638192656fa2a44eb9eff7801@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-12-30 18:05, Andrew Cooper wrote:
> Hello,
> 
> The x86_64-allcode run highlights one new violation of R17.1,
> vmcoreinfo_append_str().  In writing this email, I've found another in
> debugtrace_printk() meaning that we're missing some options in the
> -allcode configuration.
> 
> In deviations.ecl we have:
> 
> -doc_begin="printf()-like functions are allowed to use the variadic 
> features provided by stdarg.h."
> -config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(^.*printk\\(.*\\)$)))"}
> -config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(^.*printf\\(.*\\)$)))"}
> -config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(name(panic)&&kind(function))))"}
> -config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(name(elf_call_log_callback)&&kind(function))))"}
> -config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(name(vprintk_common)&&kind(function))))"}
> -config=MC3A2.R17.1,macros+={hide , "^va_(arg|start|copy|end)$"}
> -doc_end
> 
> 
> First, we have no printf() so that row should be removed.
> 

I think it was for other variants of printf that are present in Xen 
(e.g. vsnprintf). Perhaps it could be restricted a bit to be more 
explicit.

> But, more importantly this is safe if and only if the function
> declaration uses __attribute__((__format__(printf, ...))) to cause the
> compiler to perform format typechecking.
> 
> Is it possible to encode this attribute requirement in the Eclair
> expression, so that e.g. accidentally dropping the attribute causes a
> violation to be reported?  This would also be rather safer than 
> assuming
> that any prefix on printk() is safe.
> 

Well, the UBs associated to that rule (to varargs in general) go beyond 
the formatting issues, but checking that the function decl has the 
attribute is a good suggestion to harden these deviations. I'll make 
some experiments and report back on this thread.

> Thanks,
> 
> ~Andrew

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Tue Dec 30 18:03:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 18:03:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194420.1512819 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vae3c-000433-Te; Tue, 30 Dec 2025 18:02:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194420.1512819; Tue, 30 Dec 2025 18:02:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vae3c-00042w-Qp; Tue, 30 Dec 2025 18:02:56 +0000
Received: by outflank-mailman (input) for mailman id 1194420;
 Tue, 30 Dec 2025 18:02:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VoJT=7E=bounce.vates.tech=bounce-md_30504962.695413cb.v1-ea307c6913e849d49b063105ab25fc5c@srs-se1.protection.inumbo.net>)
 id 1vae3c-00042q-Bn
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 18:02:56 +0000
Received: from mail136-3.atl41.mandrillapp.com
 (mail136-3.atl41.mandrillapp.com [198.2.136.3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c29cc45d-e5a9-11f0-9ccf-f158ae23cfc8;
 Tue, 30 Dec 2025 19:02:53 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-3.atl41.mandrillapp.com (Mailchimp) with ESMTP id 4dggt32ZyDzBsTxLg
 for <xen-devel@lists.xenproject.org>; Tue, 30 Dec 2025 18:02:51 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 ea307c6913e849d49b063105ab25fc5c; Tue, 30 Dec 2025 18:02:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c29cc45d-e5a9-11f0-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1767117771; x=1767387771;
	bh=0QvKxFevpIMvWkNT5zi3ZUTDjF7fRbGVgLlNFoV6eY8=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=oOs00qXnekHdWR7m6Uu4T1XL+i1SFhWxleUCxJ8KVhuPgVtbjH1yrDUpo6Qv/vkr4
	 nxSV+9nCskadk2b/gOt0EQRd7woVT+Svg3Zw/du2OPvk1/6XajURvBhoRkaEx+h9rS
	 XCCWztkoYVYsqyqqV7VC8n+QtFxd8bmYo2kNHMGSWOKbRH8mhTGMoNZ3D0gk+issPj
	 8oJr2wLbT9uS5hi/itYM7IYsT9GyvOmVbFFp9/kScwRQEBsYKVDBp0xwqT1t9PdaCf
	 jDbIlyF6ZznaAbKRDZqghNyooMvfQ/elvHBo7+bDMRdLfMs8zE55SgXdpY2Ndf8ieN
	 BZtYDe0EeeGHQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1767117771; x=1767378271; i=teddy.astie@vates.tech;
	bh=0QvKxFevpIMvWkNT5zi3ZUTDjF7fRbGVgLlNFoV6eY8=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=lPG29Y1DelDHIE5nfr/xf9Y7xIXaz29+lzdogJb5zFOs7+wMuOOgrQymTqIjCzuhE
	 28rLPmu+1xe0uilPO/hhNlzXywcFNAnfW7WkAXXccBAohpy8I4yQoFuHPYC5l1WlaT
	 pQtlnpBL5NO+RaouH64ANujLqhuLtJqfeFKSGLrDUlVtDGIA4Hz50GjQen3lA0zBPe
	 9DvNR1WsqeZqLxtePKX71lidEyeOne4985L0c/ckNbRzooBApKQXUJR0eeYmCe1k8X
	 LAzjeDTIAiombscYrk5Y02o3HkGGiPQWntvSdWH5e53m+JEFZcDpMwICFwJBtt96LI
	 Rc+muN8R8EukA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v4=201/1]=20xen/riscv:=20add=20RISC-V=20virtual=20SBI=20base=20extension=20support=20for=20guests?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1767117769480
Message-Id: <991068a3-0e17-4cae-9653-5be170f29ab6@vates.tech>
To: "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
Cc: "Alistair Francis" <alistair.francis@wdc.com>, "Connor Davis" <connojdavis@gmail.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>
References: <cover.1767108625.git.oleksii.kurochko@gmail.com> <d49e5b9555d4f04d569e20d9c9feb23b298c7ee1.1767108625.git.oleksii.kurochko@gmail.com>
In-Reply-To: <d49e5b9555d4f04d569e20d9c9feb23b298c7ee1.1767108625.git.oleksii.kurochko@gmail.com>
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.ea307c6913e849d49b063105ab25fc5c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251230:md
Date: Tue, 30 Dec 2025 18:02:51 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello,

Le 30/12/2025 =C3=A0 16:52, Oleksii Kurochko a =C3=A9crit=C2=A0:
> Add support of virtual SBI base extension calls for RISC-V guests, delega=
ting
> hardware-specific queries to the underlying SBI and handling version and
> firmware ID queries directly.
> 
> The changes include:
> 1. Define new SBI base extension function IDs (SBI_EXT_BASE_GET_MVENDORID=
,
>     SBI_EXT_BASE_GET_MARCHID, SBI_EXT_BASE_GET_MIMPID).
> 2. Introduce XEN_SBI_VER_MAJOR, XEN_SBI_VER_MINOR for imeplenataion of
>     SBI_EXT_BASE_GET_SPEC_VERSION.
> 4. Introduce SBI_XEN_IMPID to implement SBI_EXT_BASE_GET_IMP_ID.
> 5. Implement handling of SBI base extension functions, including version,
>     firmware ID, and machine-specific queries.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in v4:
>   - Move definition of XEN_SBI_VER_{MAJOR, MINOR} to base-extension.c.
>   - Correct string format for FID: s/#%#lx/#%lu.
>   - Print first EID then FID (as vsbi/core.c code does).
> ---
> Changes in v3:
>   - s/XEN_SBI_IMPID/SBI_XEN_IMPID
>   - Add ASSERT(eid =3D=3D SBI_EXT_BASE) in vsbi_base_ecall_handler().
>   - Fix code style for switch/case.
>   - Use current instead of `vcpu` argument as it was dropped from
>     vsbi_base_ecall_handler() prototype.
>   - Add comments for define-s XEN_SBI_VER_{MAJOR, MINOR} and SBI_XEN_IMPI=
D.
> ---
> Changes in v2:
>   - s/vsbi-base-extension.*/base-extension.*
>   - Introduce VCPU_SBI_IMPID, XEN_SBI_VER_MINOR and XEN_SBI_VER_MAJOR.
>   - Return VCPU_SBI_IMPID in the case of SBI_EXT_BASE_GET_IMP_ID.
>   - Return Xen version in the case of SBI_EXT_BASE_GET_IMP_VERSION.
>   - Use domain_crash() instead of panic() for default case.
>   - For SBI_EXT_BASE_GET_{MVENDORID,MARCHID,MIMPID} abd SBI_EXT_BASE_PROB=
E_EXT
>     add handling of a domain is h/w or not.
> ---
>   xen/arch/riscv/include/asm/sbi.h     |  6 ++
>   xen/arch/riscv/vsbi/Makefile         |  1 +
>   xen/arch/riscv/vsbi/base-extension.c | 82 ++++++++++++++++++++++++++++
>   3 files changed, 89 insertions(+)
>   create mode 100644 xen/arch/riscv/vsbi/base-extension.c
> 
> diff --git a/xen/arch/riscv/include/asm/sbi.h b/xen/arch/riscv/include/as=
m/sbi.h
> index 751bae6d6654..79f7ff5c5501 100644
> --- a/xen/arch/riscv/include/asm/sbi.h
> +++ b/xen/arch/riscv/include/asm/sbi.h
> @@ -14,6 +14,9 @@
>   
>   #include <xen/cpumask.h>
>   
> +/* SBI-defined implementation ID */
> +#define SBI_XEN_IMPID 7
> +
>   #define SBI_EXT_0_1_SET_TIMER               0x0
>   #define SBI_EXT_0_1_CONSOLE_PUTCHAR         0x1
>   #define SBI_EXT_0_1_CONSOLE_GETCHAR         0x2
> @@ -32,6 +35,9 @@
>   #define SBI_EXT_BASE_GET_IMP_ID         0x1
>   #define SBI_EXT_BASE_GET_IMP_VERSION    0x2
>   #define SBI_EXT_BASE_PROBE_EXT          0x3
> +#define SBI_EXT_BASE_GET_MVENDORID      0x4
> +#define SBI_EXT_BASE_GET_MARCHID        0x5
> +#define SBI_EXT_BASE_GET_MIMPID         0x6
>   
>   /* SBI function IDs for RFENCE extension */
>   #define SBI_EXT_RFENCE_REMOTE_FENCE_I           0x0
> diff --git a/xen/arch/riscv/vsbi/Makefile b/xen/arch/riscv/vsbi/Makefile
> index bc5755cb13d6..8ce470f787c5 100644
> --- a/xen/arch/riscv/vsbi/Makefile
> +++ b/xen/arch/riscv/vsbi/Makefile
> @@ -1,2 +1,3 @@
> +obj-y +=3D base-extension.o
>   obj-y +=3D core.o
>   obj-y +=3D legacy-extension.o
> diff --git a/xen/arch/riscv/vsbi/base-extension.c b/xen/arch/riscv/vsbi/b=
ase-extension.c
> new file mode 100644
> index 000000000000..41a95ae188dd
> --- /dev/null
> +++ b/xen/arch/riscv/vsbi/base-extension.c
> @@ -0,0 +1,82 @@
> +
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/lib.h>
> +#include <xen/sched.h>
> +#include <xen/version.h>
> +
> +#include <asm/processor.h>
> +#include <asm/sbi.h>
> +#include <asm/vsbi.h>
> +
> +/* Xen-controlled SBI version reported to guests */
> +#define XEN_SBI_VER_MAJOR 0
> +#define XEN_SBI_VER_MINOR 2
> +
> +static int vsbi_base_ecall_handler(unsigned long eid, unsigned long fid,
> +                                   struct cpu_user_regs *regs)
> +{
> +    int ret =3D 0;
> +    struct sbiret sbi_ret;
> +
> +    ASSERT(eid =3D=3D SBI_EXT_BASE);
> +
> +    switch ( fid )
> +    {
> +    case SBI_EXT_BASE_GET_SPEC_VERSION:
> +        regs->a1 =3D MASK_INSR(XEN_SBI_VER_MAJOR, SBI_SPEC_VERSION_MAJOR=
_MASK) |
> +                   XEN_SBI_VER_MINOR;
> +        break;
> +
> +    case SBI_EXT_BASE_GET_IMP_ID:
> +        regs->a1 =3D SBI_XEN_IMPID;
> +        break;
> +
> +    case SBI_EXT_BASE_GET_IMP_VERSION:
> +        regs->a1 =3D (xen_major_version() << 16) | xen_minor_version();
> +        break;
> +
> +    case SBI_EXT_BASE_GET_MVENDORID:
> +    case SBI_EXT_BASE_GET_MARCHID:
> +    case SBI_EXT_BASE_GET_MIMPID:
> +        if ( is_hardware_domain(current->domain) )
> +        {
> +            sbi_ret =3D sbi_ecall(SBI_EXT_BASE, fid, 0, 0, 0, 0, 0, 0);
> +            ret =3D sbi_ret.error;
> +            regs->a1 =3D sbi_ret.value;
> +        }
> +        else
> +            /*
> +             * vSBI should present a consistent, virtualized view to gue=
sts.
> +             * In particular, DomU-visible data must remain stable acros=
s
> +             * migration and must not expose hardware-specific details.
> +             *
> +             * These register(s) must be readable in any implementation,
> +             * but a value of 0 can be returned to indicate the field
> +             * is not implemented.
> +             */
> +            regs->a1 =3D 0;
> +
> +        break;
> +
> +    case SBI_EXT_BASE_PROBE_EXT:
> +        regs->a1 =3D vsbi_find_extension(regs->a0) ? 1 : 0;
> +        break;
> +
> +    default:
> +        /*
> +         * TODO: domain_crash() is acceptable here while things are stil=
l under
> +         * development.
> +         * It shouldn't stay like this in the end though: guests should =
not
> +         * be punished like this for something Xen hasn't implemented.
> +         */
> +        domain_crash(current->domain,
> +                     "%s: Unsupported ecall: EID: #%#lx FID: #%lu\n",
> +                     __func__, eid, fid);

I think we should rather report "SBI_ERR_NOT_SUPPORTED" (-2) instead 
(eventually logging a warning in Xen) ?

> +        break;
> +    }
> +
> +    return ret;
> +}
> +
> +VSBI_EXT(base, SBI_EXT_BASE, SBI_EXT_BASE, vsbi_base_ecall_handler)

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Tue Dec 30 18:29:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 18:29:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194443.1512864 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaeSi-0007EP-8J; Tue, 30 Dec 2025 18:28:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194443.1512864; Tue, 30 Dec 2025 18:28:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaeSi-0007EI-5J; Tue, 30 Dec 2025 18:28:52 +0000
Received: by outflank-mailman (input) for mailman id 1194443;
 Tue, 30 Dec 2025 18:28:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=bdC4=7E=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vaeSg-0007EC-Vq
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 18:28:50 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5aecaef3-e5ad-11f0-9ccf-f158ae23cfc8;
 Tue, 30 Dec 2025 19:28:36 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id E4BB74EE073F;
 Tue, 30 Dec 2025 19:28:35 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5aecaef3-e5ad-11f0-9ccf-f158ae23cfc8
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1767119316;
	b=GxnHOKuasmqw6k/s2o3tXGGo1Y0JjEDaZskhwGHZBYdzpXKSGRNmbVbGHFeTA7JGx8zf
	 A/i4LqJEeA0TXFJSiNFWdqJqtLK40C5chHrScv09Ioxvc8Rbkx+oykW8sSYz1g3EkKUa0
	 o6Qo3ewjIhcp+9Ap9PXJO8fZDnb+GJJabc/aam7+DRjQ6YQs4e7BiPlMCJIi07ezlHnzC
	 kMuTUM6YLYUQyFpVd0QXu4oPhd92JiQ07RkEP7v1jLGILNJo9S/flrtOWIi3VojDJ8Fvb
	 xbFDEn9kDEJx44uRIX9TIGUtsMzZGK18PVvFy5xbrfy5YOKX0O8aC0tDqGxfIPH+svM47
	 xvPdua8326DOC4qCA+qp9q5FbWlp2gpAiMvcCihDqiAKqefsLDKbASSBGRGoaGGwhhuqo
	 RnKjUtURHALVWSg9Z8NhZvDLnwdNq9KLk3D9cpKxR9zcxMAL9z847TZ4YihNpVdoqZ/vJ
	 kdufloj+umLtgATC2K/W3LsGcQF+dQiEa9L4gBIfpBsIHvTmYHK8QmTnj2qKD3en4VWJ9
	 W0K9DTt7mPhm5542D6efj93MW2pAgJiFow1q6PgwOqScT9pOT2nd6nBGVMoM7hRZN5/Ym
	 e/Yd0sHkUqZh4E0wuvXuLzsbe51RbMCczGmop9O9v28Vpbgl0bTdFaeCVbzJAUQ=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1767119316;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=qMAYbliFMkDTGZvSMeybrph5kn01G3GXrtbFc+mgyVA=;
	b=TFkjFcM/utBAK6V7jQzOhEZdbsQ/8xe8u4rq4xuknF4W7GiMUJLd2KDq46VUyDv+jI7f
	 IZPhHW2XMKsiFQzSATwcEsN5l6myOBDFu8+Fi3+6XKKDfSFJ+CPJQd/0xYmZE4PJJR98D
	 o2Q/GyDrdRoYxlI+i4RIdniIvcCPqfHy0GVGehp+Y6wcfshkXMjw5M2Vp93JKojHsb3BJ
	 d4KJLPmNCKbUCOQKngyTBpNZGTMCEyNZXkDEUb7WPNAIVGHACiW1msA45tVs3fnX7Zcuk
	 h6+bb8Ls1yhA8wX356o/Wd+wTT/rri+V7/ph8hxQeSIAe5jHX8WvDdepFNUBayjJuXcI6
	 xvyN9Nh16Iei5w0PmohbDQmj2UgJFsLvIuQsqC8n2wC/O4JWfHF+chSXiPhWg9ofVEdoR
	 Ngf/4rWdfvKCwthvUkhskjBUmo9IFjyBSu+v3bdAc3qALaMybNBr/gKE9fnWnRgfk2JBP
	 1jkqe+5vTQ325WgCn+U1zrfewCBr90CsrUGVKytTI+h/8FCPlaZH2CrpTqEt7MzYRvB73
	 GJp+VIIe4t4Z4Exs0vHzyAbOCU5OElVEW1GKqe5uyDl7jMHjPyAsVXbSIiWWmwuq+FMAs
	 kLbGgYeqis79R/ts8BfY2mMPNAPslu66Hx2cciz9UwYueskmXsoL0eqPO3qL7o8=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1767119316; bh=trMlDX9SjUoJohccGDMI00PEPdisa8sZUUeR+hAfsxU=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=gqAsHdnZL6aVqnaMvaY5ej2pd0+DaAmyvyI+Y2avqKgAK1imM7LIwl/ECAhdyeIyH
	 9OIhj8vd2ILWFKQF0KLrMRqVZ+gh1GEH68jZ8Wewq9t6QcD1UAxyz4iVJIePtTYeNd
	 y1cszqzAJZJsXEcyLyaNHFs/l9CUtlIr7x4VQyVZJl2tdCuWvJ6yW/0Adjbd2euEFD
	 93kSDm2OnyabJDlUAbVL+h34jEkaW3uaVOiAbct5DqBITOTJnGNww6IENNvNidxZC9
	 ZNxlLuCUp6oHGMBdpE3drHHGtao6xKoClI+ri07+Yb7qzvurLMO1BXSKcZVBiC7VYq
	 qzCz/e142POhQ==
MIME-Version: 1.0
Date: Tue, 30 Dec 2025 19:28:35 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>, Stefano Stabellini
 <sstabellini@kernel.org>, consulting@bugseng.com, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Julien Grall <julien@xen.org>, Bertrand Marquis
 <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: Misra R17.1 in Xen
In-Reply-To: <d87f8fc638192656fa2a44eb9eff7801@bugseng.com>
References: <191589a4-cb8c-4e92-866e-03d9a194db5f@citrix.com>
 <d87f8fc638192656fa2a44eb9eff7801@bugseng.com>
Message-ID: <6d065af376df5527dc6a8f0a47054d85@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-12-30 18:34, Nicola Vetrini wrote:
> On 2025-12-30 18:05, Andrew Cooper wrote:
>> Hello,
>> 
>> The x86_64-allcode run highlights one new violation of R17.1,
>> vmcoreinfo_append_str().  In writing this email, I've found another in
>> debugtrace_printk() meaning that we're missing some options in the
>> -allcode configuration.
>> 
>> In deviations.ecl we have:
>> 
>> -doc_begin="printf()-like functions are allowed to use the variadic 
>> features provided by stdarg.h."
>> -config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(^.*printk\\(.*\\)$)))"}
>> -config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(^.*printf\\(.*\\)$)))"}
>> -config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(name(panic)&&kind(function))))"}
>> -config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(name(elf_call_log_callback)&&kind(function))))"}
>> -config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(name(vprintk_common)&&kind(function))))"}
>> -config=MC3A2.R17.1,macros+={hide , "^va_(arg|start|copy|end)$"}
>> -doc_end
>> 
>> 
>> First, we have no printf() so that row should be removed.
>> 
> 
> I think it was for other variants of printf that are present in Xen 
> (e.g. vsnprintf). Perhaps it could be restricted a bit to be more 
> explicit.
> 
>> But, more importantly this is safe if and only if the function
>> declaration uses __attribute__((__format__(printf, ...))) to cause the
>> compiler to perform format typechecking.
>> 
>> Is it possible to encode this attribute requirement in the Eclair
>> expression, so that e.g. accidentally dropping the attribute causes a
>> violation to be reported?  This would also be rather safer than 
>> assuming
>> that any prefix on printk() is safe.
>> 
> 
> Well, the UBs associated to that rule (to varargs in general) go beyond 
> the formatting issues, but checking that the function decl has the 
> attribute is a good suggestion to harden these deviations. I'll make 
> some experiments and report back on this thread.

Currently it is possible to match on the presence of the attribute 
"format", not on its arguments. Since "printf" is the only archetype 
used with "format" I don't think this is a big issue currently, but I'll 
let you be the judge on that.

> 
>> Thanks,
>> 
>> ~Andrew

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Tue Dec 30 18:34:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2025 18:34:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194452.1512874 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaeYS-0000Kf-Ri; Tue, 30 Dec 2025 18:34:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194452.1512874; Tue, 30 Dec 2025 18:34:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaeYS-0000KX-P1; Tue, 30 Dec 2025 18:34:48 +0000
Received: by outflank-mailman (input) for mailman id 1194452;
 Tue, 30 Dec 2025 18:34:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jMxH=7E=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vaeYR-0000KR-3F
 for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 18:34:47 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 358baef5-e5ae-11f0-9ccf-f158ae23cfc8;
 Tue, 30 Dec 2025 19:34:44 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB6334.namprd03.prod.outlook.com (2603:10b6:510:ab::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Tue, 30 Dec
 2025 18:34:41 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%4]) with mapi id 15.20.9456.013; Tue, 30 Dec 2025
 18:34:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 358baef5-e5ae-11f0-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JwncIQ0II8rXNestI4op2tdgidrm2+7z000bJCECSxNdBJX4jsTpaxiY5MnZI6lGXMGjWq+wOEKG2/Y8RXlGlm1nqiDWvuZNdk1If/mzV+H1oSfc8XeG/7FQvYZYG19GGNi+fjcdiWMOYBl5k6HdOuZ/2N2kFmV4+t5EDnMGkunZKtys4ioEFxrFctUlNSk4CxU7PF0vUBEXRxN5obSDisftDYnKvIyl9zPUcVFa+l1snG1W/yEfQm1CL3GMBjEXwUnL1RgGtr0f/jpajJen98JJOlLFtAezl40kjADCe9lcEr9pLx/EXwe18CGxH7XnQQnrsmA6vi/Jm9KR1wk48A==
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=Zum6t0ZxTIiMX+9dFGcYgY+OxR75MgTnLxZOCThGZFM=;
 b=Sf3PYi3AJwOxWoas4MRpP40u/55MV1ANO0HPZJvKmIIBbh9LEwSQ5rGRYgh1j4FrXSOUBb8wLH55SMgZ5hclAez0egVkYHz+F0zX11kTex2Dd0M4y2xpKB70GEeNFlCdo+gNtF30GrZvitP50r576IULCG0qEFT1ZDCbFZh8RuOStXW2D5xCBfaHXMJzZv1qzPnKe91eZkdSoP5rywYVWAcAodVFhHLv27F5rE+27ciL5ao/Hl3RKqTTzx9JU0D9z8kDXZ0rwEWhOka1+w4M1KTNwkwvd7S6kzXKBX6pXsocIAQnHMYMImv2p9ZIHVMIAnHfqeJfoQEhGnmcgvhKkg==
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=Zum6t0ZxTIiMX+9dFGcYgY+OxR75MgTnLxZOCThGZFM=;
 b=f7TNQt/gOFtjVcL/xym0+CG7nfjo7tQAH2ZaMKsTn8frGr2oTb425FtIOOeiPjhnvjb3aHpdxRJfqs7t74xvuLLRdNl4wgvoY6s5FmAgGuIrUJRF6XMRbJB5Qrya8D6q7F8R7Q8qoyugWI6srwUP9bdbRAfg3MCWRAFWyRRszxY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <4da8ee06-5c67-46d6-a83c-90729ff9a1ec@citrix.com>
Date: Tue, 30 Dec 2025 18:34:36 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, consulting@bugseng.com,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
Subject: Re: Misra R17.1 in Xen
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <191589a4-cb8c-4e92-866e-03d9a194db5f@citrix.com>
 <d87f8fc638192656fa2a44eb9eff7801@bugseng.com>
 <6d065af376df5527dc6a8f0a47054d85@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <6d065af376df5527dc6a8f0a47054d85@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0022.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ae::14) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH0PR03MB6334:EE_
X-MS-Office365-Filtering-Correlation-Id: c5eb0904-ebd9-4c44-3396-08de47d21806
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cVVCRUQrMHRhUSs3Z0RPcmVWMERDd3EySE50dFlrYlR4VHA3ZW13SlJ0WkFP?=
 =?utf-8?B?TVhKdDJqakV3eXZpdU14OUsvVWMvRzBBb09BTU1ZUkc3eHNiNEx0NWFlU2FU?=
 =?utf-8?B?a0dVNTdFM3ozb3BMbnZBQnlobXBvRUxCZ3cybGFXU1E3alBNZWZTdzFkeDRP?=
 =?utf-8?B?RkJLUC8wcXpoQXF3bHRnOWZzSmxrOTVJUExCRnEvKzVPN2Z0UWdibS9LZHV0?=
 =?utf-8?B?eEttQUVkL2cyMjVLSmJCYmVwZWh0Q1ZZSWlvTnpoekR4a0kwTDYzNXFxMnJE?=
 =?utf-8?B?UVZzSllCRU90dk0wRHRIeDlOTlh3bkY5VWlhQmh4R3Z4UlkvaWoxV2dMYmVm?=
 =?utf-8?B?VTRHZ3VobGo2RkRsck9NYnR2b3ZVc2ZtK2tUM2s0ZzhBL2tvY3JxTEU5UWVC?=
 =?utf-8?B?SnRUd0k0VU5JNU5GZ1VpWTdLdlFpNFlHVFMwN0l2ZW9EY21CWXNVTUozeitG?=
 =?utf-8?B?cVBTOFdGazlKNGpsbGcyM2ZoZmdqU25tL1N6bVdKd0Q1d0N1WEtSTXhZK20r?=
 =?utf-8?B?Y09OZDIraytLR3lwUFFhWGIrWmNDQTJnclozTXY5VnRZdE1Wbi9TUkNFWEVF?=
 =?utf-8?B?US9qd1kxMjBmU1l6Qms0ZEJ3cDF6RVZWUjJTNFFMa3hBbVBNTGhqQ1lYNFVS?=
 =?utf-8?B?NzVFMjJpR2wrRmp6Tm5RQ3oxcmJIZGVrV1dmbHZ4N3pCSG1CSVdUREtodjQ4?=
 =?utf-8?B?SExUZ0Joc05BakkyRDJxZ1Jaa2lXZTd5TEZJVlR5QTIzNUE5TWdSMVhaVDJV?=
 =?utf-8?B?NHhoaUpHN1hQWk1yU1FFQVM0RC80NWFJbnorblN5WXovSW02WnprRldMZUtJ?=
 =?utf-8?B?Z1M2U1ZNVnB6UEsxSU85QjhnL2JmVmk5b3p5Y3FJUVZQM2xMc3hqSDVDMVlL?=
 =?utf-8?B?eEhmZEEyWEdNSWI3Q2Z4dmdkQThqR3RKTmU3eTNUbWx3VHNXRWVKMEo3YlQ3?=
 =?utf-8?B?S1I3OTFWTEJ0Sjk3eDhTWEdHZWd6NWZNQ3FnU1M0dXpFVWs5bnRtc3F1ak1i?=
 =?utf-8?B?T3hZSkdHNHY0bDByTFBzWGtqSHVFdllFU3JGY1JoQWZscW05K0ljWXpVNmhp?=
 =?utf-8?B?Vm9kMGlPNHNYZlpFaTMzbHhGS2Fuc0ZQQWY0MmtFVjJiM3diRG5pbTV0c3hl?=
 =?utf-8?B?Yk5sY241QjZPSlZwcERndzhzN0w4TWJFQmJwTThYeU4rWlE3RlhYRGpidzdv?=
 =?utf-8?B?M2lnclIxT2hnMjhEdndBZzlPc2tHRDIybGJnazZlTzgrVitwbnMxa1liUnE3?=
 =?utf-8?B?cTJsWTFrSU9YbDdOdmEzZ010TjhmR0t4NnUxVGpPT01GU2Y2SlU2Wi9zcy9s?=
 =?utf-8?B?WFdVcmhQaU5OZjNuamtlbnJiS25rTVRqMmVzc0lLSmRvMk5vRUx6ZEg5VGdO?=
 =?utf-8?B?YWdSZjFZZjl4aVdVTk0zU0lqenRralp4ZjdDa0tzRHhka1FzcjZ6TUIvTlZJ?=
 =?utf-8?B?M3RFN0tmZGRHbWFNcmZ6ZWtXSy9sOUFqVHk3NnN5S1N2VHNmdkJNb0dDb2xk?=
 =?utf-8?B?Y3hGUU9LMDF3TjRBSlM0ZmxEalFVdlZuTEtsUU1ISVBIWS9KK3RKQkUrL2Yx?=
 =?utf-8?B?TjNpRkIzOXVKWHZONnYyRlV0dXVmUTZUZm9OdytBQzR1OVRRRlhyZUNVRkZJ?=
 =?utf-8?B?NE0va3pPWW80SUNRRFdnUVd4RGROa3AvTnBleXA0eFlJNXdUZTltY0tWenlV?=
 =?utf-8?B?NUFqanpMSlUwTDIvekFZYzg5bTRXSGdNTXlBTmJoZzBGNU1pSGo1R2M3RGgr?=
 =?utf-8?B?Y1BNS3ZwOGdLazJRWlkzWG4zOG5rL2M1OUxCcTRWOVZwaGVQYmgzVjRLamdF?=
 =?utf-8?B?cWNhSE8zSEVDUkNvUmg2S2U4M2hEeE4xOWdCUWN0cWt2d0V2bzlxSUJtWUlo?=
 =?utf-8?B?bFZWZnJyMUhENE92NldvaytJM05PTEp1YmVXZktTWEVMK0NVSHdjWFpGSEtT?=
 =?utf-8?Q?UjVe5Td2OmvYcgY6Cf++jKq99bJXwJlu?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MDdqZjFsaWlwcXFJL2tzbEY1bmJqUERTRzZnVXQ5T0l6V3lDR2VyRHdnUDVN?=
 =?utf-8?B?VVNCRzhoZEpXcU55U24yUzJ6Umgxc3daL3l4czBtSEErMVgrN2o2ZXJDbDNI?=
 =?utf-8?B?elVwME9MaURCSHB3L2tiM3VpZW1KVmRLVFY5WmxJbkVVeStrUDR5blpGeDZt?=
 =?utf-8?B?d3B0SWwyOW1mTDQ0RFpoNGNVS0ZRbkRaUUxzbktKN09WNWlRWjFYWTZVcGFH?=
 =?utf-8?B?aFh3bFNEdzFMeXkzTTkxTnQwV0k0ZG0zMDRhL2hxL2VkWmFVU1pRZStTb25X?=
 =?utf-8?B?ZnRpSWp4dnlrYTZ4dStsUDJvdHltemphTVh4ODZ6bDY2NWNvV1pCVDhBWGVI?=
 =?utf-8?B?ZjNGOWxKTVBhdTg3NFB3eDVVRXVlWHp0S29lNG9ZdDJiaXNtMXNVdkxnSG9x?=
 =?utf-8?B?cXorQzRMV2NOQ2R4Qmw5d2FmVkdSQXJtZ3FXajVtaUxXWFE3N29RKzVrTUU1?=
 =?utf-8?B?OFJlNXpLWU11cXFFL2RHSGdXa2NsdzJKQXR6ODNMY2U1MEVvUk50QTJKcW9y?=
 =?utf-8?B?aDRuZWVIYml5aXZETGljN2doUjcvZ09yR1dKOHVlMVBCRzVSUGU4NEJydW1O?=
 =?utf-8?B?TGd6TXFVOVBraWFWUHZFbldxOWtRRjZqK2VZS2RUV0Q3T1FWeWZZT2laRDM4?=
 =?utf-8?B?NFRJTVBFVjNsR0U1YUdvUkRwNU5LZVBIQTFNT2dIZGpHRnV4VHBuL3A2TnBR?=
 =?utf-8?B?OGs0NnhaTmVwUXFXdFRCcVh4YVhGUUJIQjRQNUt2RTBkZVY2MnRKU29rNGhO?=
 =?utf-8?B?bTNVamRIZHZOWmJ0MmFNck85UHBqOGpqKzBTZkJEMmtzN0E4QUdqUjlUTjM1?=
 =?utf-8?B?b01DQllRZVArTmN1NFRGVFNuZG5RazBYRlliSjNZSEpVQkZOcmtkeU5zcjBs?=
 =?utf-8?B?ZW4xcXdCRjNFWmRTS2RYS1o5TGEzYVRSNWxmYlBVb3pueUxDblVqcThUOXNS?=
 =?utf-8?B?ZFArR1RacGlNM1ovWm5oRkhRZzFaei92UWVOYzhlMWk3RHZ5V2QvYkdVVmw3?=
 =?utf-8?B?Q1E1d3NFRWxXM3Q0dXpHOVVxM0thYUZ1ZjdwMFozUjNpQ0Y3cmtLWVEva2Qz?=
 =?utf-8?B?dDR4S0c4dllxMVo1T1BselN4UE91VVFoQTFtVHhjRjRGalJLc0FaaTMwU0px?=
 =?utf-8?B?dzl4YjlCbnQ5Q2o3a2pvYVp3MG5LRVhsQVhvZ1RUNU9KYnB4dFJuQ2dHTk0x?=
 =?utf-8?B?bW9PNWhzbitpbUpObC9rd05oZE40TXBTT3ZMbkNSMHB6cVFBUTB6Vzc5R092?=
 =?utf-8?B?NzM1MDRwVURRUTNQRjcyS2JvRkgxMHNLZVZ2S3JNWkJDK25sS09KaDBsbUJm?=
 =?utf-8?B?bkNaWDYyNWlYNVA4Sm5zelRWdG9NdUxleWNwNnI2RzFHaG5uc2RjcFhiNXVJ?=
 =?utf-8?B?dHlPTW9wa2NFbC9XMVU1ZjVtV1JaQ1pHakN1dVZFdDJNZXY4d2RKajVlMHhL?=
 =?utf-8?B?cmJ5eGFaSTBqV1NCT2w4NWRteGxFK1FtVS9OT3VZMU1VWTZjeUdjV2JvL0Jo?=
 =?utf-8?B?UXRISUN5aEpwVmFqUXo5VGcyK0JlcHZKc25mOTVOdTJLQXYvZTA2d3ArSzMr?=
 =?utf-8?B?c2JJanp1QzhMT3JReUdid1c2YThpSDlnMFFsY3RWT2FPU0FrTHBWR2JYNlRp?=
 =?utf-8?B?UkhPdzgvUS9OaUVaeEVyaUJWY2pSczdrRGQwYmxKeFMrM2MrU3hQU1Fsc2h1?=
 =?utf-8?B?clRQWW5ac1plRUpxQk5XSnVKeVhWS0RXOURpc3crSE9nQ29weU5PU2ErY3lm?=
 =?utf-8?B?dVpoZEhpOGZpMFZETitYRHllU2dRUWlNeDJmL0svNHF1RnBtb1c5UHpSNDFm?=
 =?utf-8?B?MnA2TDFvbllXcUNhNFVndDA3TnRIY1FDM2tEYkl4OTBoM0t0Z2pmTHIrRFRJ?=
 =?utf-8?B?U1ZtTGp0S1dSTUNkM2V4czFvZFo0VW5aVmQ5bFNzTHN2Wk9Tbzl4K2Q0TEtG?=
 =?utf-8?B?VXk5R1QwWlBNRjFIZnkzODk5dEhCTW9OeWt6cm5YbW12eXhOMHpMWGxZRHEr?=
 =?utf-8?B?K3JTM0RvYXVQRDJHWkVXenFOcldtRURkRVBjOXRiYUpyeTk2Z0VCcHEzS2lk?=
 =?utf-8?B?Rzl4UUtRQ1lUaXNuaEw1YnlvaG56NW5BQmp0SVIzRy96dHQ3VXVHcnJqQVRN?=
 =?utf-8?B?aTIrTzlBdmcyeDQ0MWkzQ3JaS1gxQ1dlMmJUOWdyMVFic1p3QWh6RjhkQUk0?=
 =?utf-8?B?VXEvU0V5a1pvd3RvZ3JweTlLQ1ZRck83QmNpSGhqMGowdlg3YVRWbjNwZWNr?=
 =?utf-8?B?WXZqMktMNktJM3QwNGd2SmZOZHA3dTEvZytxZmRnZmJMTjR6alc0WitreFVU?=
 =?utf-8?B?NU5wQTh1YjdDUXJWYVp5ZWh4YkxNQnZTdGRVVWVkamgzbDlDaEMrMWtlNnFL?=
 =?utf-8?Q?G5MF1NpQDYBp1Ehg=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c5eb0904-ebd9-4c44-3396-08de47d21806
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Dec 2025 18:34:40.5546
 (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: 6DAFTb6u7QZyfelBMZIT/BteypnueNepxt09FghFTakReyeQNuODqW89SeHLIUABdgkHxF6ZC//IFygbaGuR0rG8wZi3Fhv9K0ewhiYUNgg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6334

On 30/12/2025 6:28 pm, Nicola Vetrini wrote:
> On 2025-12-30 18:34, Nicola Vetrini wrote:
>> On 2025-12-30 18:05, Andrew Cooper wrote:
>>> Hello,
>>>
>>> The x86_64-allcode run highlights one new violation of R17.1,
>>> vmcoreinfo_append_str().  In writing this email, I've found another in
>>> debugtrace_printk() meaning that we're missing some options in the
>>> -allcode configuration.
>>>
>>> In deviations.ecl we have:
>>>
>>> -doc_begin="printf()-like functions are allowed to use the variadic
>>> features provided by stdarg.h."
>>> -config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(^.*printk\\(.*\\)$)))"}
>>>
>>> -config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(^.*printf\\(.*\\)$)))"}
>>>
>>> -config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(name(panic)&&kind(function))))"}
>>>
>>> -config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(name(elf_call_log_callback)&&kind(function))))"}
>>>
>>> -config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(name(vprintk_common)&&kind(function))))"}
>>>
>>> -config=MC3A2.R17.1,macros+={hide , "^va_(arg|start|copy|end)$"}
>>> -doc_end
>>>
>>>
>>> First, we have no printf() so that row should be removed.
>>>
>>
>> I think it was for other variants of printf that are present in Xen
>> (e.g. vsnprintf). Perhaps it could be restricted a bit to be more
>> explicit.
>>
>>> But, more importantly this is safe if and only if the function
>>> declaration uses __attribute__((__format__(printf, ...))) to cause the
>>> compiler to perform format typechecking.
>>>
>>> Is it possible to encode this attribute requirement in the Eclair
>>> expression, so that e.g. accidentally dropping the attribute causes a
>>> violation to be reported?  This would also be rather safer than
>>> assuming
>>> that any prefix on printk() is safe.
>>>
>>
>> Well, the UBs associated to that rule (to varargs in general) go
>> beyond the formatting issues, but checking that the function decl has
>> the attribute is a good suggestion to harden these deviations. I'll
>> make some experiments and report back on this thread.
>
> Currently it is possible to match on the presence of the attribute
> "format", not on its arguments. Since "printf" is the only archetype
> used with "format" I don't think this is a big issue currently, but
> I'll let you be the judge on that.

There's scanf as the other option to format, but I suppose for the
specifics of a deviation for va_list, not being able to
match/distinguish format from scanf is fine.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 31 01:51:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2025 01:51:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194487.1512885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1valMS-00079x-F3; Wed, 31 Dec 2025 01:50:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194487.1512885; Wed, 31 Dec 2025 01:50:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1valMS-00079p-Ai; Wed, 31 Dec 2025 01:50:52 +0000
Received: by outflank-mailman (input) for mailman id 1194487;
 Wed, 31 Dec 2025 01:50:51 +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
 <SRS0=tfgF=7F=proton.me=milky_way_303030@srs-se1.protection.inumbo.net>)
 id 1valMQ-00079j-Bw
 for xen-devel@lists.xenproject.org; Wed, 31 Dec 2025 01:50:51 +0000
Received: from mail-4325.protonmail.ch (mail-4325.protonmail.ch [185.70.43.25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1fff253f-e5eb-11f0-b15d-2bf370ae4941;
 Wed, 31 Dec 2025 02:50:47 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1fff253f-e5eb-11f0-b15d-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1767145845; x=1767405045;
	bh=c8OhEN6OvNXg3IwRpCyrEZiVCXT4kE1DBspJ95sgUnI=;
	h=Date:To:From:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector;
	b=TcGFZG+8ZuQeJniN8WJaJDb1MtRWTCXyMMn0uPQS/D480j5saXD7X03NIHlYz249P
	 NMOQHAH6+uUiJCa2uhqbeI4PnlaecxJ4eVkEQwHfvzTOiORTihdKxFOWnY5T0K59WO
	 zrsptC/ZAVZVcJmxTB+N5yIAHozx+t+FOv9EuF4h9QmIDvp/o/5r5KZ8S54KNsF0/3
	 wAIaYI1wKsqcBFNqQralSnaVcd/q6GCunzruX+h/Hulz8EePqJMphFplf4rI1UwsRP
	 vwHkPOKSItyGLHEnGyGYEKJPc5DG9kw91gjlMM82xick1BGLERGoKVLfvVotMp21cl
	 fz1QXWUQQLtOg==
Date: Wed, 31 Dec 2025 01:50:42 +0000
To: Jason Andryuk <jandryuk@gmail.com>, "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
From: Milky <milky_way_303030@proton.me>
Subject: Re: Cpufreq drivers not working on T480S
Message-ID: <DkXw78UBxXYCLNKCoThGPM1kde5JwARo3NhWtlBBrrFtLFVTnwNlwDlZYzuNlSdAs9XzE0aDPqgt9dri9YKJULULBXwJLEcEgbLOgzkVSVU=@proton.me>
In-Reply-To: <CAKf6xpvtF_cE7vMb9JfsVLkYH1XRXZG3nj+QO_72-zKJ3Cxh9w@mail.gmail.com>
References: <dg8zeLW4X3RWRJt-1jas5pAqHft5GbxYxS5mNwc4ONE8tDEruL1-5a_e-vQu1RdOUWsMXxKe_Igcewy2zcbnOfkaGVG7y6hXLcLd78HI1po=@proton.me> <CAKf6xpsN_RnY2dHnXKj_-UySf1z0auye2qy=KHOEhcBbZ1un9A@mail.gmail.com> <NqFx_tXl0Zmx2ft7YVNGodkDcUFK7nA8KWUQMjOmD0y4T5W3-sTcGxCt7ViSRObUeJog3069xTY0ODZIG5hrX-Th2MvE95dSze13MGQ2tOY=@proton.me> <CAKf6xpvtF_cE7vMb9JfsVLkYH1XRXZG3nj+QO_72-zKJ3Cxh9w@mail.gmail.com>
Feedback-ID: 171106842:user:proton
X-Pm-Message-ID: f45af63a56353d4c263f9805d817633c75e3d638
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

(Re-CC'ing the ML because I forgot by accident. Hopefully the quoted
sections provide sufficient context)

On Tuesday, December 30th, 2025 at 10:44 AM, Jason Andryuk <jandryuk@gmail.=
com> wrote:
>=20
>=20
> On Mon, Dec 29, 2025 at 6:59=E2=80=AFPM Milky milky_way_303030@proton.me =
wrote:
> > I've tried the command you suggested. Like `xenpm get-cpufreq-states`, =
it returns no output. I am pasting it below anyway, for completeness.
> >
> > ```=20
> > [root@dom0 username] xenpm get-cpufreq-average
> > <no output>
> > ```
> >
> > For the record, I tracked the original [thread](https://lists.xen.org/a=
rchives/html/xen-devel/2024-01/msg00787.html) where you posted that suggest=
ion.

[...]

> > > HWP enabled
> >
> > Indeed I noticed that in the `xl dmesg` logs too, which seemed reassuri=
ng, however I didn't want to jump to conclusions and the "HW_FEEDBACK not s=
upported" line raised some concerns (although I was unable to find out what=
 it means).
>
>
> HW_FEEDBACK support doesn't matter.

[...]

> > > > The following commands were also checked:
> > > >
> > > > ```
> > > > $ xenpm get-cpufreq-para
> > > > [CPU0] failed to get cpufreq parameter
>
>
> We want this to work to get info on how HWP is configured. It could
> be set to a power save mode, and xenpm set-cpufreq-para would let you
> set it to be more performant. It's bizarre that it is not working.

[...]

> You need xen-acpi-processor to upload ACPI CPU data to Xen. That lets
> Xen know how to run cpufreq for the CPUs. cpufreq will not be enabled
> without the ACPI CPU data upload. If you add to dom0's command line:
> loglevel=3D9 dyndbg=3D"module xen_acpi_processor +p"
> xen_acpi_processor.dyndbg=3D"func * +p"
>
> You'll hopefully enable the dynamic debugging.
>
> And do:
> sudo dmesg | grep xen.acpi
> maybe you'd get some info?
>
> Or `modprobe xen-acpi-processor dyndbg=3D=3Dpmf`
>
> You want to see messages like:
> ACPI CPU%u - P-states uploaded
> https://elixir.bootlin.com/linux/v6.18.2/source/drivers/xen/xen-acpi-proc=
essor.c#L248
>
> If you see this one:
> pr_warn("ACPI CPU%u missing some P-state data (%x), skipping\n",
> _pr->acpi_id, dst_perf->flags);
>
> Then that may be why it's not working.


As suggested, I added the debug parameters to the dom0 kernel. Before or
after `modprobe xen-acpi-processor dyndbg=3D=3Dpmf`, there is no useful
debug information that I could find, apart from the
`xen_acpi_processor:get_max_acpi_id` message as seen below.

```
# sudo dmesg | grep xen.acpi
[    2.282851] Kernel command line: placeholder root=3D/dev/mapper/qubes_do=
m0-root ro rd.luks.uuid=3D<...> rd.lvm.lv=3Dqubes_dom0/root rd.lvm.lv=3Dqub=
es_dom0/swap plymouth.ignore-serial-consoles 6.6.77-1.qubes.fc37.x86_64 x86=
_64 rhgb loglevel=3D9 "dyndbg=3Dmodule xen_acpi_processor +p" "xen_acpi_pro=
cessor.dyndbg=3Dfunc * +p" rd.qubes.hide_all_usb
[    5.224092] xen_acpi_processor: Max ACPI ID: 6

# sudo lsmod | grep xen_acpi
<no output>

# sudo modprobe xen-acpi-processor dyndbg=3D=3Dpmf
modprobe: ERROR: could not insert 'xen_acpi_processor': No such device
```


> You flashed the T480s with Coreboot? Maybe the Coreboot ACPI data
> lacks something?


I flased it with Coreboot, yes; more specifically, I executed manually
the build steps of Libreboot. It's possible I've made a mistake
somewhere. However, as I mentioned in my first message, scaling actually
works correctly when booting with vanilla Debian.


> Maybe also with Xen's command line try cpufreq=3Dxen:no-hwp to disable
> HWP and see if the regular ACPI cpufreq driver works better.
>
> I'm thinking it's something where xen-acpi-processor didn't upload
> ACPI CPU data, which means cpufreq isn't running. That may also be
> why you see that bogus CPU frequency.

After booting with `xen:no-hwp`, I wasn't sure how to check if the
regular ACPI cpufreq driver is operational. Is `xenpm` still the
correct way to query for CPU info? I've tried the following:

```
# sudo xl dmesg | grep -i hwp
(XEN) Command line: placeholder cpufreq=3Dxen:no-hwp,verbose loglvl=3Dall d=
om0_mem=3Dmin:1024M dom0_mem=3Dmax:4096M ucode=3Dscan smt=3Doff gnttab_max_=
frames=3D2048 gnttab_max_maptrack_frames=3D4096 no-real-mode edd=3Doff
(XEN) HWP: 1 notify: 1 act-window: 1 energy-perf: 1 pkg-level: 0 peci: 0
(XEN) HWP: Hardware Duty Cycling (HDC) supported, enabled
(XEN) HWP: HW_FEEDBACK not supported

# sudo xenpm get-cpufreq-para
[CPU0] failed to get cpufreq parameter
[CPU1] failed to get cpufreq parameter
[CPU2] failed to get cpufreq parameter
[CPU3] failed to get cpufreq parameter

# sudo xenpm get-cpufreq-average
<no output>

# sudo xenpm start 10 | grep 'Avg freq'
Avg freq 884114144 KHz
Avg freq 884114144 KHz
Avg freq 884114144 KHz
Avg freq 884114144 KHz
```



From xen-devel-bounces@lists.xenproject.org Wed Dec 31 08:26:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2025 08:26:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194514.1512895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1varWr-0001HC-Es; Wed, 31 Dec 2025 08:26:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194514.1512895; Wed, 31 Dec 2025 08:26:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1varWr-0001H5-C2; Wed, 31 Dec 2025 08:26:01 +0000
Received: by outflank-mailman (input) for mailman id 1194514;
 Wed, 31 Dec 2025 08:26:00 +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
 <SRS0=TQtY=7F=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1varWq-0001Gz-2J
 for xen-devel@lists.xenproject.org; Wed, 31 Dec 2025 08:26:00 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5520330d-e622-11f0-b15d-2bf370ae4941;
 Wed, 31 Dec 2025 09:25:58 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-64b8123c333so15542916a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 31 Dec 2025 00:25:58 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b9159a6d0sm37274445a12.28.2025.12.31.00.25.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Dec 2025 00:25:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5520330d-e622-11f0-b15d-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1767169557; x=1767774357; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=P/Fpjb0bF3HFDiGsBLIcCPc1rGuQa+vBiK0RSagfPnQ=;
        b=T7R5wK+86v0lAyT2ORKBSK4Yw5YMXWYg8FDR03ysfKrTFkVYg+sMD66Spcep2o5iBl
         P4Vc5B9SHJ0GYmk1k5xexWvFK1nJEJGrq1lOePobcIrsFeqm+ZJw1Il5d0sOxFXK1qsg
         htcKNHK70dv3IS+/Eo/48qjl3pMN+JTFqw0x7qXtY1IZ1jcUU1m9o1SldNKhzCvddm1/
         FJaxTx9FObvdQ+rh5W6L+7YQyqwsmsoD57PA8KDoXST1Y6kLzKbgqMKYpC7BvloB8KK5
         swJj9xj5hUC5ruNfnngrQ/R09KZIH5qb1SbCoMdF6h9tb+Ebx6lZyj8+mt1hR97LT6x1
         BNhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767169557; x=1767774357;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=P/Fpjb0bF3HFDiGsBLIcCPc1rGuQa+vBiK0RSagfPnQ=;
        b=LH71di7+mxnRXlJtJiTVpBI4DtnkfIb8Ezn5YKnxTog1k+LfBu/XvsyFPv0WizDc/v
         G5iPNRPaokfPu6gFsQOm3SkKYeG1eDG6WByd3ykc/x8MqOAU+SxSWd5NhrT/IO430o4d
         sbjGaocvta0jab6vsAsL+dL0bD1j1lJHDF84VGqfEdZe8yRsqLKGrmYCvKLqmXJvETc9
         TMkfEFkV36mj0+Tf/hm2YVpRMyLdb/SZuyB2jtEuLVmhTd8oWMGR0cF3sDEOIqSjxpdT
         Xbh5vKowoZmPdQSxDJF97jRZ8cS2cySFKQkuMHl83hS7o9KOLyah3C6XNqoJEzPtghNC
         pbYQ==
X-Forwarded-Encrypted: i=1; AJvYcCXwvdjDemxfcWvYhGt5xNIwS6S0G0biuNX9qmH/7vNtuGGlIc14bQmNCfFlPQ34CBLKx2DB+iblQMc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy2rz9HpagjiN0MivHDz9QTMi9vqaKun6ggcfXTFCN464I+YJd+
	+QMTVvjA4J1+5qpVo4PFKsFlbSNLz+sxR8SAY23HQq0bPhrcoNPeN9Qh
X-Gm-Gg: AY/fxX79frkZR9Oy3csgncwIT/JMgbKcHF3ObCC6+PoGIIxIr0DGuoAFAvfIamamHK5
	mluGaFfeVdi6iLdv6jwa1dBTRLH/tjbc7XH3yA+knXWOLxVcVCWX/e/Y1g+TsYGsJm8c/rg5Hgp
	IvFVLF812r33lvsVaoS7NA+t7DhA5uHHR0cId5E/HFt0A3cGlMy8gUPcb7Yw3v4dRIfIe1N3FUE
	c7vdN666POyL+S7UwVxnVkN4bCAMnRKGdlSqltDgVuXVV0uN2+AAS7RiyBZHolQilZuYkZtMHoK
	VhevypPI3pV9NA514efwFniskCyHd3TFuyEWaZhNr3g83eDzUaAinim/ieldjnCEVYqxnjEncEa
	VdwAbssF6b8zfmuWfHNn5rHzUIf5uz9llIz+wbMPLXPYfBusrUE87N5umlhaV4fCW8UgTM17nPs
	NE1/ni/6iX7S2rLA73pTuvu8T52Ak/v6W3/JczUac7WWjgseDN1QsyzK46mtSP5B4=
X-Google-Smtp-Source: AGHT+IFnhaGWdlnnfBTlaw87D6c3dx7QoDyTdPFMdXmu6aKrKNhf834Ni0Y6DnmUTkpR/CdQSJKCWA==
X-Received: by 2002:aa7:dad6:0:b0:64b:8d7a:71cf with SMTP id 4fb4d7f45d1cf-64b8ecb2eb3mr24844238a12.26.1767169557346;
        Wed, 31 Dec 2025 00:25:57 -0800 (PST)
Message-ID: <1cbe7c3e-bfe5-4ee7-a8f7-6a76089ef4d5@gmail.com>
Date: Wed, 31 Dec 2025 09:25:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/1] xen/riscv: add RISC-V virtual SBI base extension
 support for guests
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1767108625.git.oleksii.kurochko@gmail.com>
 <d49e5b9555d4f04d569e20d9c9feb23b298c7ee1.1767108625.git.oleksii.kurochko@gmail.com>
 <991068a3-0e17-4cae-9653-5be170f29ab6@vates.tech>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <991068a3-0e17-4cae-9653-5be170f29ab6@vates.tech>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hello Teddy,

On 12/30/25 7:02 PM, Teddy Astie wrote:
> Le 30/12/2025 à 16:52, Oleksii Kurochko a écrit :
>> Add support of virtual SBI base extension calls for RISC-V guests, delegating
>> hardware-specific queries to the underlying SBI and handling version and
>> firmware ID queries directly.
>>
>> The changes include:
>> 1. Define new SBI base extension function IDs (SBI_EXT_BASE_GET_MVENDORID,
>>      SBI_EXT_BASE_GET_MARCHID, SBI_EXT_BASE_GET_MIMPID).
>> 2. Introduce XEN_SBI_VER_MAJOR, XEN_SBI_VER_MINOR for imeplenataion of
>>      SBI_EXT_BASE_GET_SPEC_VERSION.
>> 4. Introduce SBI_XEN_IMPID to implement SBI_EXT_BASE_GET_IMP_ID.
>> 5. Implement handling of SBI base extension functions, including version,
>>      firmware ID, and machine-specific queries.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> ---
>> Changes in v4:
>>    - Move definition of XEN_SBI_VER_{MAJOR, MINOR} to base-extension.c.
>>    - Correct string format for FID: s/#%#lx/#%lu.
>>    - Print first EID then FID (as vsbi/core.c code does).
>> ---
>> Changes in v3:
>>    - s/XEN_SBI_IMPID/SBI_XEN_IMPID
>>    - Add ASSERT(eid == SBI_EXT_BASE) in vsbi_base_ecall_handler().
>>    - Fix code style for switch/case.
>>    - Use current instead of `vcpu` argument as it was dropped from
>>      vsbi_base_ecall_handler() prototype.
>>    - Add comments for define-s XEN_SBI_VER_{MAJOR, MINOR} and SBI_XEN_IMPID.
>> ---
>> Changes in v2:
>>    - s/vsbi-base-extension.*/base-extension.*
>>    - Introduce VCPU_SBI_IMPID, XEN_SBI_VER_MINOR and XEN_SBI_VER_MAJOR.
>>    - Return VCPU_SBI_IMPID in the case of SBI_EXT_BASE_GET_IMP_ID.
>>    - Return Xen version in the case of SBI_EXT_BASE_GET_IMP_VERSION.
>>    - Use domain_crash() instead of panic() for default case.
>>    - For SBI_EXT_BASE_GET_{MVENDORID,MARCHID,MIMPID} abd SBI_EXT_BASE_PROBE_EXT
>>      add handling of a domain is h/w or not.
>> ---
>>    xen/arch/riscv/include/asm/sbi.h     |  6 ++
>>    xen/arch/riscv/vsbi/Makefile         |  1 +
>>    xen/arch/riscv/vsbi/base-extension.c | 82 ++++++++++++++++++++++++++++
>>    3 files changed, 89 insertions(+)
>>    create mode 100644 xen/arch/riscv/vsbi/base-extension.c
>>
>> diff --git a/xen/arch/riscv/include/asm/sbi.h b/xen/arch/riscv/include/asm/sbi.h
>> index 751bae6d6654..79f7ff5c5501 100644
>> --- a/xen/arch/riscv/include/asm/sbi.h
>> +++ b/xen/arch/riscv/include/asm/sbi.h
>> @@ -14,6 +14,9 @@
>>    
>>    #include <xen/cpumask.h>
>>    
>> +/* SBI-defined implementation ID */
>> +#define SBI_XEN_IMPID 7
>> +
>>    #define SBI_EXT_0_1_SET_TIMER               0x0
>>    #define SBI_EXT_0_1_CONSOLE_PUTCHAR         0x1
>>    #define SBI_EXT_0_1_CONSOLE_GETCHAR         0x2
>> @@ -32,6 +35,9 @@
>>    #define SBI_EXT_BASE_GET_IMP_ID         0x1
>>    #define SBI_EXT_BASE_GET_IMP_VERSION    0x2
>>    #define SBI_EXT_BASE_PROBE_EXT          0x3
>> +#define SBI_EXT_BASE_GET_MVENDORID      0x4
>> +#define SBI_EXT_BASE_GET_MARCHID        0x5
>> +#define SBI_EXT_BASE_GET_MIMPID         0x6
>>    
>>    /* SBI function IDs for RFENCE extension */
>>    #define SBI_EXT_RFENCE_REMOTE_FENCE_I           0x0
>> diff --git a/xen/arch/riscv/vsbi/Makefile b/xen/arch/riscv/vsbi/Makefile
>> index bc5755cb13d6..8ce470f787c5 100644
>> --- a/xen/arch/riscv/vsbi/Makefile
>> +++ b/xen/arch/riscv/vsbi/Makefile
>> @@ -1,2 +1,3 @@
>> +obj-y += base-extension.o
>>    obj-y += core.o
>>    obj-y += legacy-extension.o
>> diff --git a/xen/arch/riscv/vsbi/base-extension.c b/xen/arch/riscv/vsbi/base-extension.c
>> new file mode 100644
>> index 000000000000..41a95ae188dd
>> --- /dev/null
>> +++ b/xen/arch/riscv/vsbi/base-extension.c
>> @@ -0,0 +1,82 @@
>> +
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/lib.h>
>> +#include <xen/sched.h>
>> +#include <xen/version.h>
>> +
>> +#include <asm/processor.h>
>> +#include <asm/sbi.h>
>> +#include <asm/vsbi.h>
>> +
>> +/* Xen-controlled SBI version reported to guests */
>> +#define XEN_SBI_VER_MAJOR 0
>> +#define XEN_SBI_VER_MINOR 2
>> +
>> +static int vsbi_base_ecall_handler(unsigned long eid, unsigned long fid,
>> +                                   struct cpu_user_regs *regs)
>> +{
>> +    int ret = 0;
>> +    struct sbiret sbi_ret;
>> +
>> +    ASSERT(eid == SBI_EXT_BASE);
>> +
>> +    switch ( fid )
>> +    {
>> +    case SBI_EXT_BASE_GET_SPEC_VERSION:
>> +        regs->a1 = MASK_INSR(XEN_SBI_VER_MAJOR, SBI_SPEC_VERSION_MAJOR_MASK) |
>> +                   XEN_SBI_VER_MINOR;
>> +        break;
>> +
>> +    case SBI_EXT_BASE_GET_IMP_ID:
>> +        regs->a1 = SBI_XEN_IMPID;
>> +        break;
>> +
>> +    case SBI_EXT_BASE_GET_IMP_VERSION:
>> +        regs->a1 = (xen_major_version() << 16) | xen_minor_version();
>> +        break;
>> +
>> +    case SBI_EXT_BASE_GET_MVENDORID:
>> +    case SBI_EXT_BASE_GET_MARCHID:
>> +    case SBI_EXT_BASE_GET_MIMPID:
>> +        if ( is_hardware_domain(current->domain) )
>> +        {
>> +            sbi_ret = sbi_ecall(SBI_EXT_BASE, fid, 0, 0, 0, 0, 0, 0);
>> +            ret = sbi_ret.error;
>> +            regs->a1 = sbi_ret.value;
>> +        }
>> +        else
>> +            /*
>> +             * vSBI should present a consistent, virtualized view to guests.
>> +             * In particular, DomU-visible data must remain stable across
>> +             * migration and must not expose hardware-specific details.
>> +             *
>> +             * These register(s) must be readable in any implementation,
>> +             * but a value of 0 can be returned to indicate the field
>> +             * is not implemented.
>> +             */
>> +            regs->a1 = 0;
>> +
>> +        break;
>> +
>> +    case SBI_EXT_BASE_PROBE_EXT:
>> +        regs->a1 = vsbi_find_extension(regs->a0) ? 1 : 0;
>> +        break;
>> +
>> +    default:
>> +        /*
>> +         * TODO: domain_crash() is acceptable here while things are still under
>> +         * development.
>> +         * It shouldn't stay like this in the end though: guests should not
>> +         * be punished like this for something Xen hasn't implemented.
>> +         */
>> +        domain_crash(current->domain,
>> +                     "%s: Unsupported ecall: EID: #%#lx FID: #%lu\n",
>> +                     __func__, eid, fid);
> I think we should rather report "SBI_ERR_NOT_SUPPORTED" (-2) instead
> (eventually logging a warning in Xen) ?

The final goal is to return|SBI_ERR_NOT_SUPPORTED|.|domain_crash()| is used
only temporarily and will be kept until a usable alternative (lets say fully
supported dom0less) is available.

~ Oleksii

>
>> +        break;
>> +    }
>> +
>> +    return ret;
>> +}
>> +
>> +VSBI_EXT(base, SBI_EXT_BASE, SBI_EXT_BASE, vsbi_base_ecall_handler)
> Teddy
>
>
> --
> Teddy Astie | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech
>
>
>


From xen-devel-bounces@lists.xenproject.org Wed Dec 31 08:27:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2025 08:27:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194523.1512905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1varYd-0001pC-PS; Wed, 31 Dec 2025 08:27:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194523.1512905; Wed, 31 Dec 2025 08:27:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1varYd-0001p5-MR; Wed, 31 Dec 2025 08:27:51 +0000
Received: by outflank-mailman (input) for mailman id 1194523;
 Wed, 31 Dec 2025 08:27:50 +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
 <SRS0=TQtY=7F=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1varYc-0001os-0q
 for xen-devel@lists.xenproject.org; Wed, 31 Dec 2025 08:27:50 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9719126c-e622-11f0-b15d-2bf370ae4941;
 Wed, 31 Dec 2025 09:27:48 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-64dfb22c7e4so7367764a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 31 Dec 2025 00:27:48 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64b91599605sm36937041a12.23.2025.12.31.00.27.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Dec 2025 00:27:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9719126c-e622-11f0-b15d-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1767169668; x=1767774468; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=fobpSK9AUXphPAhG1PyM5Pwgt4TvSHa2X/lrd8clEqM=;
        b=aIteteG8NdbWENjFWnS8zke9aG+mLSegZ/WJwUwY0JfykdaJ7YaRRE3XQ96yk+/HXW
         AuTZvGJUeipgaK0fX1JjWwJ/uaCl2JIlWFfe5WBIMgYjvt4rk+J923QVNCw8us27Bf93
         qYT/GbPEhqS89YobJtQbSzjgqQ9RWOs2Hhbslo4mSsxbQ1hfO8qwp+1163VJa+lyodNy
         nv0Hxz4bTe0+sd+6mhkJsttoRe71mTh11KI8ICwB5aKxRjSoCyy5B2BWpwS4sS2+1tnL
         NM5jI5kOG3eYYFoFdxVYmOxSM6nuQP4XZ5c8aIUm7Rw6WseWWXEksuk8SDBD2E4SWjys
         27/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1767169668; x=1767774468;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=fobpSK9AUXphPAhG1PyM5Pwgt4TvSHa2X/lrd8clEqM=;
        b=qY+VmKZeT3dY4T6obYboNEgi3HoqPhc475cQPBkRatm1z8Aw/eAqTNTBRe554pVZ92
         icT9wO3d+8FZ+7eF4y093uCvVaq0qD7l8Qc9Qw3JI6bI/jmsf+BZLn/o/N8LsShiUnwQ
         65bCKkaDxyAEvHMxz0728rsTE+QYYA0Xf+SYHpgXD3zREqRTTRPIsyp2bkchrjwEk3F7
         QMhFnS4yxZGGFrsbromR5gJshscf2gJ9Z2/sHmwARS/M+TBiJR/AgowjB3v+0xVP3QA5
         YDvH2wcQTSMfbp6vY02A72Tbarn1iLR2Zr3SrEQgftIrp8i5b2UD+ZyPJb2BIu4HxPkG
         moZg==
X-Forwarded-Encrypted: i=1; AJvYcCUtjVvLSE4I/IaE08ijgV9r+iwCv4JPJ8dVavsBmU6IyMk9T+xzL20KYb0gAOUsUcJo9jmIAA3L4oQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz/1SfxeTn9Kw4fbyCaLuvWgE+PLb0czu9CSLh+UFFxUz0npURj
	36IAllTZNhyQLX5dD5QqIlhSlMTvH7JAh8W+uFllIZ+8ReX+zJiadcYL
X-Gm-Gg: AY/fxX5jLKJyy6Kbp1keObCCdAPOJIBs3ZLO+4u9nIDNiOMJfN85Dk+BVa7Xd3DPK7a
	SzpIuGO0QPtH8mnQIF4bTP2fC6zYqJx5A+Eg1kAxAUz535lXjBgQX3xkZPJNbVg7UgWzMB5j4hD
	NlYmDvY1tvSydLWIaro4ZS94Hw8WZ+Vp1wciblKhb3yVPP+ZE3c/wv9eDrDsssJKe6bJ23uZNiR
	Vvl0RJ5k8SFm+WLri6SsMiBmljTuEjgUPCOrKj41ZPFZ/ivdY/BsgYmF8tD6Ak4eKI/Afka90QN
	FWKaipwHKVn+NbGjnNyz1AF0VTaP/prjU0sLjcRzb/3VeWM+P5YD1f9lVZyitHVKkGskn5c7Xtx
	4aOkczZJsTWzNInruH/70ABNu0rTE0/yofUUfNIJ/Jm4FS4+iO+TzC34sT0m6gCXdnWPEAwvtCM
	pdDTfUteL6Cfi+N4uTZ1vW7gW5G2uL9u9wrpnGolveY1be2LQyTg6C8fcRzmgnyCU=
X-Google-Smtp-Source: AGHT+IFFR875P5sAxSwb8eNWKE2TGpCv7OYBlEAvuaiumzld7urOY4EmCLTTRinr0c5I0yvFw6GWfQ==
X-Received: by 2002:a17:907:70d7:b0:b80:1403:764c with SMTP id a640c23a62f3a-b80205e6bd3mr3024207366b.24.1767169668174;
        Wed, 31 Dec 2025 00:27:48 -0800 (PST)
Message-ID: <096a8105-667e-43a6-856f-3ed52fb1c0a0@gmail.com>
Date: Wed, 31 Dec 2025 09:27:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/4] xen/arm: optimize the size of struct vcpu
To: "Orzel, Michal" <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1766504313.git.oleksii.kurochko@gmail.com>
 <0756ee97dd47f6acdefe593694b743eb6bfefacb.1766504313.git.oleksii.kurochko@gmail.com>
 <9f2c9e4a-64e3-4e5e-b5da-976ab433f6cd@amd.com>
 <9f343323-2743-4bd6-82de-afe3b48adb70@amd.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <9f343323-2743-4bd6-82de-afe3b48adb70@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 12/29/25 12:10 PM, Orzel, Michal wrote:
>
> On 29/12/2025 12:08, Orzel, Michal wrote:
>>
>> On 23/12/2025 18:01, Oleksii Kurochko wrote:
>>> When CONFIG_NEW_VGIC=y and CONFIG_ARM_64=y, the size of struct vcpu
>>> exceeds one page, which requires allocating two pages and led to the
>>> introduction of MAX_PAGES_PER_VCPU.
> Also, I think it would be better to drop MAX_PAGES_PER_VCPU in this patch.

Then I'll update alloc_vcpu_struct() and free_vcpu_struct() to:
  struct vcpu *alloc_vcpu_struct(const struct domain *d)
  {
      struct vcpu *v;
  
-    BUILD_BUG_ON(sizeof(*v) > MAX_PAGES_PER_VCPU * PAGE_SIZE);
-    v = alloc_xenheap_pages(get_order_from_bytes(sizeof(*v)), 0);
+    BUILD_BUG_ON(sizeof(*v) > PAGE_SIZE);
+    v = alloc_xenheap_pages(0, 0);
      if ( v != NULL )
-    {
-        unsigned int i;
-
-        for ( i = 0; i < DIV_ROUND_UP(sizeof(*v), PAGE_SIZE); i++ )
-            clear_page((void *)v + i * PAGE_SIZE);
-    }
+        clear_page(v);
  
      return v;
@@ -503,5 +488,5 @@ struct vcpu *alloc_vcpu_struct(const struct domain *d)
  void free_vcpu_struct(struct vcpu *v)
  {
-    free_xenheap_pages(v, get_order_from_bytes(sizeof(*v)));
+    free_xenheap_page(v);
  }

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Dec 31 11:23:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2025 11:23:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194535.1512914 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vauIU-0005Nj-On; Wed, 31 Dec 2025 11:23:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194535.1512914; Wed, 31 Dec 2025 11:23:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vauIU-0005Nc-MG; Wed, 31 Dec 2025 11:23:22 +0000
Received: by outflank-mailman (input) for mailman id 1194535;
 Wed, 31 Dec 2025 11:23:20 +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
 <SRS0=KlCN=7F=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vauIS-0005NU-0Z
 for xen-devel@lists.xenproject.org; Wed, 31 Dec 2025 11:23:20 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1a062afa-e63b-11f0-b15d-2bf370ae4941;
 Wed, 31 Dec 2025 12:23:16 +0100 (CET)
Received: from nico.tail79467d.ts.net (unknown [46.228.253.214])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id F22564EE0745;
 Wed, 31 Dec 2025 12:23:11 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1a062afa-e63b-11f0-b15d-2bf370ae4941
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=46.228.253.214
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1767180195;
	b=1Go5Mp+oNpR3wTCaoEn6TLkMX7BdPQvhFJeXXOpcyL0gmBRje/A8FsyvhEb8t81j/Q3l
	 05NIezIs1/QWUT/FQ74mnWP8SEpIL1qZiQyBhMWpYvxiylZf852ZYlOvZ9AgsYMjKulqp
	 8K+5578J0S+fK/Zkf0LgrpPjr8CrVx5HiZHO6QhlOvUGgL8nyg0H62g6C3ACaWxWj76a3
	 K/MK5JZwg56A/9Sw+L57dZpwvdlHjZfeYMgqTpUzHoNkqg9iuH4uJmWsHkLUtlStnAIti
	 P25LrKSp+OoKChm0hYRi0+eoL1kMgKROM6800kIOrjuLMznR67rw2HnC0Eyz/S/q3Jay/
	 q3Q1wwhUZb2k5jNLJathqrsgfTFFXfa0HeRVrckPo1y0/xIlNqa7Ai+YlQKzAfGSoK1BI
	 hjEeIuV/2z8+vs0xYJfzOxwIul3YbrwOt8y9ux/dzy57zWGT/Yam7L/tB5HeSD8hQJAbM
	 ARpvWGY537255JqIvAjDVQY9TJvm7ZN/801E4Rs634AKfVZCK0uedns+TBoXZIdyNXw4B
	 C0KfoYqmZZ38ZCuJKzTKSBWJ+cjtDx41PpfSextA8qmY08y7Y2owBz0FZ9w4pkdoJhgU8
	 BT0oe3n0xzHj4Wyh2FaxzTJDKxs2o5RCDFhV9NSFVGgSrg2V3czb0ghdi/oeP4g=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1767180195;
	h=DKIM-Signature:From:To:Cc:Subject:Date:Message-ID:X-Mailer:
	 MIME-Version:Content-Transfer-Encoding;
	bh=h8T//oEFRoqKd83Hn5Dtc+/fNA6sTXVBavX9GYkdTfA=;
	b=t+2ru1SwbdKapPD5ZdInuJs1cq2Tp+f0Cy6+nVQ/lrwqWmEbf6j+od0ijZILkth1m7s1
	 1YhOcKk1dTKpyxc9QqT9ELJfo3FNtj2MK5uXTZhPIdq4q2jo/tBA3iClIKqS7J6qSehf3
	 Ixuc1eDGM3tOw5DehKqMtaVjAUtcGbXGmJxC6ouStaxUXDLgmYPzcAEmzmu+Z4S87Ybxz
	 e3J7OquRJMQWSbJtCbpDO/0iIK3Tuu8e7nrDt4AXkmPm/lijB/C+iKoEesGPacVl35leb
	 ivcHaJ17cA/iQTPQ/2jkrDb2j4qWowNo1P1uCQGyga72Hi2O1mFz6BW3nga2SBuET8dTh
	 lZEXN0lFYPIho+sdxS3L0aJfvMf8Qo9OJoYLS+7qM2H51vapHeTYuleeIHtHkKO/guvoE
	 52R3ir0jvdKF8Q02x/pxXgr/zzMDBJkRLsl+lCsXGhH+ufRgtPa0/1FMnnVa0fFchAgLs
	 4HfkvDXpsDFYO75wUZRm3xFdfVqIPZKPW0IkSzEFsodX2H16uBmkb2IaCHti68q4rkPhu
	 cBFgbZIIVPvSODOfkC37DS/yLnmyifCkIRqZHhYad5HHZ41EjkU86WuQaUhNrSN4o5Q36
	 69Pun6p1z5mvm5XZPuOlPZbTEprUPtwt+nJSoraOLVtK6gKWP71aYA6sdY5bcBw=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=46.228.253.214
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1767180195; bh=LiusyckpAnrHrIbBjcv7AvQQOHCxMvLko16lHg5FGqg=;
	h=From:To:Cc:Subject:Date:From;
	b=l8EScjgLd185Ck1znZsKyFMavtun2OwLd+q1kwUXIFEwUmDjnQIWewU3Yq6DdCURK
	 n5bGbyBxCgHe10IeDDFCTE122qWlHkm5bjfzRZKb7JCvPRuXtgCdhmlPsQjwcgTiqB
	 9cU8Ymz7a8xjp+ChZf+FcqSoLmFBXoL6dZWdm7gUH+OUiKpl4j9JasuuY7Ae0kHX2m
	 OScVY0c0mCRsxZwFo02ybHjBareCXac2gNSEVsDTT/ulbGp+lmJH3h2nPNjIEhkSfn
	 LjCPKizfB3cO9q6j+qfbbngiuhB78gPky9t9W6AYKIaxE6CNTl4DTkGjOh6F5jilAm
	 JMSLskl3SfKMA==
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org,
	consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [XEN PATCH] xen: rework deviation to address varargs MISRA violations
Date: Wed, 31 Dec 2025 12:22:52 +0100
Message-ID: <d2ba22d6a36a4f2b952a80712aac2cfe632e8609.1767174251.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

MISRA C Rule 17.1 prohibits the use of the features that support
variadic functions. Make the deviation already in place for controlled
use of such features more general, relying on the presence of the
`format' attribute on the function declaration.

Add attributes where missing in order to avoid special-casing
certain functions that use variadic arguments.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
CI pipeline: https://gitlab.com/xen-project/people/bugseng/xen/-/pipelines/2239414827
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 12 +++++-------
 docs/misra/deviations.rst                        |  4 ++--
 xen/common/libelf/libelf-private.h               |  4 +++-
 xen/drivers/char/console.c                       |  4 +++-
 4 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 219ba6993b90..7dee4a488d45 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -570,13 +570,11 @@ safe."
 # Series 17.
 #
 
--doc_begin="printf()-like functions are allowed to use the variadic features provided by stdarg.h."
--config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(^.*printk\\(.*\\)$)))"}
--config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(^.*printf\\(.*\\)$)))"}
--config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(name(panic)&&kind(function))))"}
--config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(name(elf_call_log_callback)&&kind(function))))"}
--config=MC3A2.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(name(vprintk_common)&&kind(function))))"}
--config=MC3A2.R17.1,macros+={hide , "^va_(arg|start|copy|end)$"}
+-doc_begin="printf()-like or scanf()-like functions are allowed to use the variadic features provided by stdarg.h,
+provided that they are declared using the `format' attribute."
+-decl_selector+={format_attr, "property(format)"}
+-config=MC3A2.R17.1,reports+={deliberate, "any_area(^.*va_list.*$&&context(ancestor_or_self(format_attr)))"}
+-config=MC3A2.R17.1,macros+={deliberate , "^va_(arg|start|copy|end)$"}
 -doc_end
 
 -doc_begin="Not using the return value of a function does not endanger safety if it coincides with an actual argument."
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index b3431ef24e26..584907b048ec 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -570,8 +570,8 @@ Deviations related to MISRA C:2012 Rules:
      - Tagged as `deliberate` for ECLAIR.
 
    * - R17.1
-     - printf()-like functions  are allowed to use the variadic features provided
-       by `stdarg.h`.
+     - printf()-like or scanf()-like functions are allowed to use the variadic
+       features provided by `stdarg.h`.
      - Tagged as `deliberate` for ECLAIR.
 
    * - R17.7
diff --git a/xen/common/libelf/libelf-private.h b/xen/common/libelf/libelf-private.h
index e5c9cc109972..239d000f49d1 100644
--- a/xen/common/libelf/libelf-private.h
+++ b/xen/common/libelf/libelf-private.h
@@ -84,7 +84,9 @@
 #define elf_err(elf, fmt, args ... )                    \
     elf_call_log_callback(elf, 1, fmt , ## args );
 
-void elf_call_log_callback(struct elf_binary*, bool iserr, const char *fmt,...);
+void
+__attribute__ ((format (printf, 3, 4)))
+elf_call_log_callback(struct elf_binary*, bool iserr, const char *fmt, ...);
 
 #define safe_strcpy(d,s)                        \
 do { strncpy((d),(s),sizeof((d))-1);            \
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index a99605103552..2bdb4d5fb417 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -969,7 +969,9 @@ static void printk_start_of_line(const char *prefix)
     __putstr(tstr);
 }
 
-static void vprintk_common(const char *fmt, va_list args, const char *prefix)
+static void
+__attribute__ ((format (printf, 1, 0)))
+vprintk_common(const char *fmt, va_list args, const char *prefix)
 {
     struct vps {
         bool continued, do_print;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 31 14:44:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2025 14:44:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194565.1512925 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaxQM-00036s-EI; Wed, 31 Dec 2025 14:43:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194565.1512925; Wed, 31 Dec 2025 14:43:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaxQM-00036l-AV; Wed, 31 Dec 2025 14:43:42 +0000
Received: by outflank-mailman (input) for mailman id 1194565;
 Wed, 31 Dec 2025 14:43: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
 <SRS0=7szS=7F=samsung.com=m.szyprowski@srs-se1.protection.inumbo.net>)
 id 1vaxQL-00036f-2b
 for xen-devel@lists.xenproject.org; Wed, 31 Dec 2025 14:43:41 +0000
Received: from mailout1.w1.samsung.com (unknown [210.118.77.11])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 13616cbd-e657-11f0-b15d-2bf370ae4941;
 Wed, 31 Dec 2025 15:43:35 +0100 (CET)
Received: from eucas1p2.samsung.com (unknown [182.198.249.207])
 by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id
 20251231144330euoutp012b4b98da0a0ee7973e3abd06409fe05a~GU-PoEOpK3076130761euoutp014
 for <xen-devel@lists.xenproject.org>; Wed, 31 Dec 2025 14:43:30 +0000 (GMT)
Received: from eusmtip2.samsung.com (unknown [203.254.199.222]) by
 eucas1p2.samsung.com (KnoxPortal) with ESMTPA id
 20251231144330eucas1p2e45e514c58572acda6dc94e809f9d2ee~GU-PNyoET1215412154eucas1p27;
 Wed, 31 Dec 2025 14:43:30 +0000 (GMT)
Received: from [106.210.134.192] (unknown [106.210.134.192]) by
 eusmtip2.samsung.com (KnoxPortal) with ESMTPA id
 20251231144321eusmtip23facba6ecea740b65bcbedd64e01dd62~GU-GtmYe61784117841eusmtip2B;
 Wed, 31 Dec 2025 14:43:21 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 13616cbd-e657-11f0-b15d-2bf370ae4941
DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20251231144330euoutp012b4b98da0a0ee7973e3abd06409fe05a~GU-PoEOpK3076130761euoutp014
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;
	s=mail20170921; t=1767192210;
	bh=M8aPWywfPFOyTSGu0q6hhPXyHxVoa1F4hqfQwCmIl58=;
	h=Date:Subject:To:Cc:From:In-Reply-To:References:From;
	b=Alom80QxoG+L7ICMesd3Euki0jWEh5m9WrDQOO82KpT3M8GlUii6jb4NC/BUwrtla
	 x3F2P1lkvxBq8MsCMGMLR2GRCZGVZ1OzbjGOF4McE9zgsSSTUJqP6FtdiWlME5ilT5
	 BOXZctdYokjY0BnnWLe9y+syt3f3BRIA9KcPecjg=
Message-ID: <d19c559e-c93b-4a4d-9a0d-ec289ed4c2e6@samsung.com>
Date: Wed, 31 Dec 2025 15:43:19 +0100
MIME-Version: 1.0
User-Agent: Betterbird (Windows)
Subject: Re: [PATCH v2 4/8] dma-mapping: Separate DMA sync issuing and
 completion waiting
To: Barry Song <21cnbao@gmail.com>, Leon Romanovsky <leon@kernel.org>
Cc: catalin.marinas@arm.com, robin.murphy@arm.com, will@kernel.org,
	iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, Ada Couprie
	Diaz <ada.coupriediaz@arm.com>, Ard Biesheuvel <ardb@kernel.org>, Marc
	Zyngier <maz@kernel.org>, Anshuman Khandual <anshuman.khandual@arm.com>,
	Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
	Joerg Roedel <joro@8bytes.org>, Juergen Gross <jgross@suse.com>, Stefano
	Stabellini <sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, Tangquan Zheng <zhengtangquan@oppo.com>
Content-Language: en-US
From: Marek Szyprowski <m.szyprowski@samsung.com>
In-Reply-To: <CAGsJ_4y=yoYZn+_ztdfuOCj_dS-M0h8YWO51AXubPbeR1FH6uQ@mail.gmail.com>
Content-Transfer-Encoding: 8bit
X-CMS-MailID: 20251231144330eucas1p2e45e514c58572acda6dc94e809f9d2ee
X-Msg-Generator: CA
Content-Type: text/plain; charset="utf-8"
X-RootMTR: 20251228213843eucas1p298280bb01abe59739cd6e0482f570455
X-EPHeader: CA
X-CMS-RootMailID: 20251228213843eucas1p298280bb01abe59739cd6e0482f570455
References: <20251226225254.46197-1-21cnbao@gmail.com>
	<20251226225254.46197-5-21cnbao@gmail.com> <20251227200706.GN11869@unreal>
	<CAGsJ_4zyascnpQ1cB-BMO9PDeeRZTBAh8Z-j-ip=RcxApa4zSg@mail.gmail.com>
	<20251228144909.GR11869@unreal>
	<CGME20251228213843eucas1p298280bb01abe59739cd6e0482f570455@eucas1p2.samsung.com>
	<CAGsJ_4y=yoYZn+_ztdfuOCj_dS-M0h8YWO51AXubPbeR1FH6uQ@mail.gmail.com>

On 28.12.2025 22:38, Barry Song wrote:
> On Mon, Dec 29, 2025 at 3:49 AM Leon Romanovsky <leon@kernel.org> wrote:
>> On Sun, Dec 28, 2025 at 10:45:13AM +1300, Barry Song wrote:
>>> On Sun, Dec 28, 2025 at 9:07 AM Leon Romanovsky <leon@kernel.org> wrote:
>>>> On Sat, Dec 27, 2025 at 11:52:44AM +1300, Barry Song wrote:
>>>>> From: Barry Song <baohua@kernel.org>
>>>>>
>>>>> Currently, arch_sync_dma_for_cpu and arch_sync_dma_for_device
>>>>> always wait for the completion of each DMA buffer. That is,
>>>>> issuing the DMA sync and waiting for completion is done in a
>>>>> single API call.
>>>>>
>>>>> For scatter-gather lists with multiple entries, this means
>>>>> issuing and waiting is repeated for each entry, which can hurt
>>>>> performance. Architectures like ARM64 may be able to issue all
>>>>> DMA sync operations for all entries first and then wait for
>>>>> completion together.
>>>>>
>>>>> To address this, arch_sync_dma_for_* now issues DMA operations in
>>>>> batch, followed by a flush. On ARM64, the flush is implemented
>>>>> using a dsb instruction within arch_sync_dma_flush().
>>>>>
>>>>> For now, add arch_sync_dma_flush() after each
>>>>> arch_sync_dma_for_*() call. arch_sync_dma_flush() is defined as a
>>>>> no-op on all architectures except arm64, so this patch does not
>>>>> change existing behavior. Subsequent patches will introduce true
>>>>> batching for SG DMA buffers.
>>>>>
>>>>> Cc: Leon Romanovsky <leon@kernel.org>
>>>>> Cc: Catalin Marinas <catalin.marinas@arm.com>
>>>>> Cc: Will Deacon <will@kernel.org>
>>>>> Cc: Marek Szyprowski <m.szyprowski@samsung.com>
>>>>> Cc: Robin Murphy <robin.murphy@arm.com>
>>>>> Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>
>>>>> Cc: Ard Biesheuvel <ardb@kernel.org>
>>>>> Cc: Marc Zyngier <maz@kernel.org>
>>>>> Cc: Anshuman Khandual <anshuman.khandual@arm.com>
>>>>> Cc: Ryan Roberts <ryan.roberts@arm.com>
>>>>> Cc: Suren Baghdasaryan <surenb@google.com>
>>>>> Cc: Joerg Roedel <joro@8bytes.org>
>>>>> Cc: Juergen Gross <jgross@suse.com>
>>>>> Cc: Stefano Stabellini <sstabellini@kernel.org>
>>>>> Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>>>> Cc: Tangquan Zheng <zhengtangquan@oppo.com>
>>>>> Signed-off-by: Barry Song <baohua@kernel.org>
>>>>> ---
>>>>>   arch/arm64/include/asm/cache.h |  6 ++++++
>>>>>   arch/arm64/mm/dma-mapping.c    |  4 ++--
>>>>>   drivers/iommu/dma-iommu.c      | 37 +++++++++++++++++++++++++---------
>>>>>   drivers/xen/swiotlb-xen.c      | 24 ++++++++++++++--------
>>>>>   include/linux/dma-map-ops.h    |  6 ++++++
>>>>>   kernel/dma/direct.c            |  8 ++++++--
>>>>>   kernel/dma/direct.h            |  9 +++++++--
>>>>>   kernel/dma/swiotlb.c           |  4 +++-
>>>>>   8 files changed, 73 insertions(+), 25 deletions(-)
>>>> <...>
>>>>
>>>>> +#ifndef arch_sync_dma_flush
>>>>> +static inline void arch_sync_dma_flush(void)
>>>>> +{
>>>>> +}
>>>>> +#endif
>>>> Over the weekend I realized a useful advantage of the ARCH_HAVE_* config
>>>> options: they make it straightforward to inspect the entire DMA path simply
>>>> by looking at the .config.
>>> I am not quite sure how much this benefits users, as the same
>>> information could also be obtained by grepping for
>>> #define arch_sync_dma_flush in the source code.
>> It differs slightly. Users no longer need to grep around or guess whether this
>> platform used the arch_sync_dma_flush path. A simple grep for ARCH_HAVE_ in
>> /proc/config.gz provides the answer.
> In any case, it is only two or three lines of code, so I am fine with
> either approach. Perhaps Marek, Robin, and others have a point here?

If possible I would suggest to follow the already used style in the 
given code even if it means a bit larger patch.

>>>> Thanks,
>>>> Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
>>> Thanks very much, Leon, for reviewing this over the weekend. One thing
>>> you might have missed is that I place arch_sync_dma_flush() after all
>>> arch_sync_dma_for_*() calls, for both single and sg cases. I also
>>> used a Python script to scan the code and verify that every
>>> arch_sync_dma_for_*() is followed by arch_sync_dma_flush(), to ensure
>>> that no call is left out.
>>>
>>> In the subsequent patches, for sg cases, the per-entry flush is
>>> replaced by a single flush of the entire sg. Each sg case has
>>> different characteristics: some are straightforward, while others
>>> can be tricky and involve additional contexts.
>> I didn't overlook it, and I understand your rationale. However, this is
>> not how kernel patches should be structured. You should not introduce
>> code in patch X and then move it elsewhere in patch X + Y.
> I am not quite convinced by this concern. This patch only
> separates DMA sync issuing from completion waiting, and it
> reflects that the development is done step by step.
>
>> Place the code in the correct location from the start. Your patches are
>> small enough to review as is.
> My point is that this patch places the code in the correct locations
> from the start. It splits arch_sync_dma_for_*() into
> arch_sync_dma_for_*() plus arch_sync_dma_flush() everywhere, without
> introducing any functional changes from the outset.
> The subsequent patches clearly show which parts are truly batched.
>
> In the meantime, I do not have a strong preference here. If you think
> it is better to move some of the straightforward batching code here,
> I can follow that approach. Perhaps I could move patch 5, patch 8,
> and the iommu_dma_iova_unlink_range_slow change from patch 7 here,
> while keeping
>
>    [PATCH 6] dma-mapping: Support batch mode for
>    dma_direct_{map,unmap}_sg
>
> and the IOVA link part from patch 7 as separate patches, since that
> part is not straightforward. The IOVA link changes affect both
> __dma_iova_link() and dma_iova_sync(), which are two separate
> functions and require a deeper understanding of the contexts to
> determine correctness. That part also lacks testing.
>
> Would that be okay with you?

Yes, this will be okay. The changes are easy to understand, so we don't 
need to go there with such very small steps.

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland



From xen-devel-bounces@lists.xenproject.org Wed Dec 31 15:08:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2025 15:08:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194574.1512934 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaxoG-00066P-8j; Wed, 31 Dec 2025 15:08:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194574.1512934; Wed, 31 Dec 2025 15:08:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vaxoG-00066I-5y; Wed, 31 Dec 2025 15:08:24 +0000
Received: by outflank-mailman (input) for mailman id 1194574;
 Wed, 31 Dec 2025 15:08:22 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <cody.zuschlag@xenproject.org>) id 1vaxoE-00066C-Hi
 for xen-devel@lists.xenproject.org; Wed, 31 Dec 2025 15:08:22 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <cody.zuschlag@xenproject.org>) id 1vaxoE-001Hk8-0c
 for xen-devel@lists.xenproject.org; Wed, 31 Dec 2025 15:08:22 +0000
Received: from mail-vk1-f182.google.com ([209.85.221.182])
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <cody.zuschlag@xenproject.org>) id 1vaxoE-001CfW-1I
 for xen-devel@lists.xenproject.org; Wed, 31 Dec 2025 15:08:22 +0000
Received: by mail-vk1-f182.google.com with SMTP id
 71dfb90a1353d-55e8c539b11so7654166e0c.2
 for <xen-devel@lists.xenproject.org>; Wed, 31 Dec 2025 07:08:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Type:To:Subject:Message-ID:Date:
	From:MIME-Version; bh=U41R3gTQ0+/idXMOyzv5zTdUM6vSJ45ituaK+6Ib9xk=; b=c1qnG/L
	rucbbk+nxINawzWFKpuB3tDw9s1CU/JTAmGl8pJy19PG1HTB8I58n5vtpZtGRM8uZPSBorK4oi8Qw
	nX11JIZE9sw3B8BdttYqo3han0nIDRNGm2l4c6gQeuj0mPeGlwHIBeQc5iwgIpWUKJY9Ol1TqtEHZ
	5inPSa2RJQ=;
X-Gm-Message-State: AOJu0Yza9IMJ/P4C2gWne0JUxkHDOKQJrvf+VJMvLIHCynvgLlOxmZPP
	E5H7P6yc6X1W8cwk4i8ChnbrFBC2k+vxQu1eyPMayxzvLjgRcM5nskRKZRrlw9XORuBASPSwuKk
	ObyuvCBCxPHm7IuggYnRZeBJmCO11uQ4=
X-Google-Smtp-Source: AGHT+IFhqgcqYtqz08ex0f8BFZaWDkFWMRtXro1kMKM8yHap3hbLRxKViuFmmWSct+XWefHwGM4v4AhA/i39FauPWoI=
X-Received: by 2002:a05:6122:1781:b0:54b:bc2a:f58d with SMTP id
 71dfb90a1353d-5615bd19be1mr13653020e0c.3.1767193701945; Wed, 31 Dec 2025
 07:08:21 -0800 (PST)
MIME-Version: 1.0
From: Cody Zuschlag <cody.zuschlag@xenproject.org>
Date: Wed, 31 Dec 2025 16:08:09 +0100
X-Gmail-Original-Message-ID: <CAJbE=KwdDf9P-kec0zPbSQEvzARWT8LX_D=EGWGM_LPPtvyj=w@mail.gmail.com>
X-Gm-Features: AQt7F2rox-MyRHPGxhd4BJlJ-XH59UtFhRZObHT0p-uLaw_CLceQbS5qir2KAsY
Message-ID: <CAJbE=KwdDf9P-kec0zPbSQEvzARWT8LX_D=EGWGM_LPPtvyj=w@mail.gmail.com>
Subject: [ANNOUNCE] Call for agenda items for January 8 Xen Community Call @
 16:00 UTC
To: xen-devel@lists.xenproject.org, xen-announce@lists.xenprojet.org
Content-Type: multipart/alternative; boundary="000000000000da98c9064740d851"

--000000000000da98c9064740d851
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi everyone,

We=E2=80=99re getting ready for January's Xen Project Community Call on Thu=
rsday, 8
January 2026 at 16:00 UTC (4 pm UK time).

We=E2=80=99d love for you to join. Feel free to participate or just observe=
. This
call is a great opportunity to see what the community is working on, align
our various efforts, and share updates. Everyone is welcome!

*Preparation:*

   - Add any proposed agenda items or missing action items:
   https://cryptpad.fr/pad/#/2/pad/edit/Xq3h+gPoWoOOLtDIGebk+K8Q/
   - If any action items have been resolved or are no longer relevant, feel
   free to remove them from the doc. I attempted to clean up the doc, so fe=
el
   free to make any adjustments.



*Call Details:*

   - Date: Thursday, 8 January 2026
   - Time: 16:00 UTC (agenda begins at 16:05 UTC)
   - Find your local timezone here
   <https://www.worldtimebuddy.com/?qm=3D1&lid=3D5368361,2988507,5128581,26=
43743,100,1850147,6&h=3D2988507&date=3D2026-1-8&sln=3D17-18&hf=3Dundefined&=
c=3D1187>
   - Link to Join the Call: https://meet.jit.si/XenProjectCommunityCall


We plan to open the meeting room at 16:00 UTC, but to allow time for
switching between meetings and handling any technical issues, we=E2=80=99ll
officially start discussing the agenda at 16:05 UTC.

Want to be CC=E2=80=99d on future calls?

Add or remove yourself from our Sign-up Sheet
<https://cryptpad.fr/pad/#/2/pad/edit/D9vGzihPxxAOe6RFPz0sRCf+/>.

See you Thursday! Happy new year!


Cody Zuschlag
Xen Project - Community Manager

--000000000000da98c9064740d851
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div>Hi everyone,<br><br>We=E2=80=99re getting ready =
for January&#39;s Xen Project Community Call on Thursday, 8 January 2026 at=
 16:00 UTC (4 pm UK time).<br><br>We=E2=80=99d love for you to join. Feel f=
ree to participate or just observe. This call is a great opportunity to see=
 what the community is working on, align our various efforts, and share upd=
ates. Everyone is welcome!<br><br><b>Preparation:</b><br><ul><li style=3D"m=
argin-left:15px">Add any proposed agenda items or missing action items: <a =
href=3D"https://cryptpad.fr/pad/#/2/pad/edit/Xq3h+gPoWoOOLtDIGebk+K8Q/">htt=
ps://cryptpad.fr/pad/#/2/pad/edit/Xq3h+gPoWoOOLtDIGebk+K8Q/</a></li><li sty=
le=3D"margin-left:15px">If any action items have been resolved or are no lo=
nger relevant, feel free to remove them from the doc. I attempted to clean =
up the doc, so feel free to make any adjustments.</li></ul><br><b>Call Deta=
ils:<br></b><ul><li style=3D"margin-left:15px">Date: Thursday, 8 January 20=
26</li><li style=3D"margin-left:15px">Time: 16:00 UTC (agenda begins at 16:=
05 UTC)</li><li style=3D"margin-left:15px"><a href=3D"https://www.worldtime=
buddy.com/?qm=3D1&amp;lid=3D5368361,2988507,5128581,2643743,100,1850147,6&a=
mp;h=3D2988507&amp;date=3D2026-1-8&amp;sln=3D17-18&amp;hf=3Dundefined&amp;c=
=3D1187" target=3D"_blank">Find your local timezone here</a></li><li style=
=3D"margin-left:15px">Link to Join the Call:=C2=A0<a href=3D"https://meet.j=
it.si/XenProjectCommunityCall" target=3D"_blank">https://meet.jit.si/XenPro=
jectCommunityCall</a></li></ul><br></div><div>We plan to open the meeting r=
oom at 16:00 UTC, but to allow time for switching between meetings and hand=
ling any technical issues, we=E2=80=99ll officially start discussing the ag=
enda at 16:05 UTC.<br><br>Want to be CC=E2=80=99d on future calls?<br><br>A=
dd or remove yourself from our=C2=A0<a href=3D"https://cryptpad.fr/pad/#/2/=
pad/edit/D9vGzihPxxAOe6RFPz0sRCf+/" target=3D"_blank">Sign-up Sheet</a>.<br=
><br>See you Thursday! Happy new year!</div></div><div><br></div><div><div =
dir=3D"ltr" class=3D"gmail_signature" data-smartmail=3D"gmail_signature"><d=
iv dir=3D"ltr"><img src=3D"https://ci3.googleusercontent.com/mail-sig/AIorK=
4x5nkRDCOFJDJAv9aMXdZ0mghItsp3D36JrwBCQtitBSW_0NeDS6mBmJ2F4vZVE2oBOqnY6IaJU=
rl12"><br><div>Cody Zuschlag</div><div>Xen Project - Community Manager</div=
></div></div></div></div>

--000000000000da98c9064740d851--


From xen-devel-bounces@lists.xenproject.org Wed Dec 31 15:30:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2025 15:30:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194585.1512944 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vay9j-0001Me-Tb; Wed, 31 Dec 2025 15:30:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194585.1512944; Wed, 31 Dec 2025 15:30:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vay9j-0001MX-R4; Wed, 31 Dec 2025 15:30:35 +0000
Received: by outflank-mailman (input) for mailman id 1194585;
 Wed, 31 Dec 2025 15:30:33 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vay9h-0001MP-Pb
 for xen-devel@lists.xenproject.org; Wed, 31 Dec 2025 15:30:33 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vay9h-001IDH-0M;
 Wed, 31 Dec 2025 15:30:33 +0000
Received: from [213.226.64.151] (helo=[192.168.8.236])
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vay9h-001Dy5-0a;
 Wed, 31 Dec 2025 15:30:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=21dj1HuxM77VKz4tWKQE72pq1xIKbRJlIF5a8K0+pEc=; b=fooyLPqU4ssInDyzAz7BxOppP9
	Ly/KJjumao2xN8nMJ6p4UKi1e9MQgxEejismyjDHnOUxYkgYd4gfW1HQ24u3VmrvpevJEKUieilDB
	biyJZVqOfPQOSZayfln1rg3v9b3RHPqs+fVU761xGNZ55z6GVEw8uz+YU2Wu4t/HR8tI=;
Message-ID: <18f249c1-3717-42e4-86df-84552741702d@xen.org>
Date: Wed, 31 Dec 2025 15:30:31 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 4/8] arm/irq: Migrate IRQs from dyings CPUs
Content-Language: en-GB
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1762939773.git.mykyta_poturai@epam.com>
 <6371ac96102f48b55ffd884656770187ed3a7f84.1762939773.git.mykyta_poturai@epam.com>
 <8099d0ed-74bd-4c98-9441-296daf76c41e@xen.org>
 <5569161c-2edc-4409-901d-d65493f12496@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <5569161c-2edc-4409-901d-d65493f12496@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 12/12/2025 10:01, Mykyta Poturai wrote:
> On 16.11.25 13:24, Julien Grall wrote:
>> Hi,
>>
>> On 12/11/2025 10:51, Mykyta Poturai wrote:
>>> Move IRQs from dying CPU to the online ones.
>>> Guest-bound IRQs are already handled by scheduler in the process of
>>> moving vCPUs to active pCPUs, so we only need to handle IRQs used by Xen
>>> itself.
>>>
>>> If IRQ is to be migrated, it's affinity is set to a mask of all online
>>> CPUs. With current GIC implementation, this means they are routed to a
>>> random online CPU. This may cause extra moves if multiple cores are
>>> disabled in sequence, but should prevent all interrupts from piling up
>>> on CPU0 in case of repeated up-down cycles on different cores.
>>
>> Wouldn't they eventually all move to CPU0 in the case of suspend/resume
>> or if all the CPUs but CPU0 are turned off and then off? If so,
>> shouldn't we try to rebalance the interrupts?
>>
> 
> In case of disabling/enabling all cores in a sequence, yes. This was
> designed with the idea of achieving some balancing when
> enabling/disabling some cores for power saving reasons.

I understand how this may balance when disabling some cores. But I don't 
understand how it helps for enabling cores. Can you provide more details?

> I agree that
> proper balancing should be implemented, but it is a complex task on its
> own and requires a substantial amount of testing on different hardware
> to prove it is close to optimal. So I think implementing it is out of
> scope for what I’m trying to do here.

Can you provide some details about what you are trying and why it would 
be ok to avoid the balancing?

 > > If this would be okay, I can implement a relatively simple solution of
> just adding onlined CPUs back to the affinity mask for now. I think it
> should improve the situation for the “switching all cores” case.

Do you mean calling gic_irq_set_affinity() with the CPU? If so, Xen is 
still going to get one CPU from the affinity mask.

> 
>>>
>>> IRQs from CPU 0 are never migrated, as dying CPU 0 means we are either
>>> shutting down compeletely or entering system suspend.
>>
>> I can't find a place where __cpu_disable() is called on CPU0. Do you
>> have any pointer? In any case, I am not sure I want to bake that
>> assumption in more places of the code.
>>
> 
> I assume it would be called when suspend is implemented. In any case, I
> will rework this to replace the hard check for CPU 0 with the “is it the
> last CPU online” one.

AFAIK __cpu_disable() is not going to be called during suspend/resume 
for CPU0. So the only case is shutting down the platform.

> 
>>>
>>> Considering that all Xen-used IRQs are currently allocated during init
>>> on CPU 0, and setup_irq uses smp_processor_id for the initial affinity.
>>
>> Looking at the SMMU driver, we seems to request IRQs at the time the
>> device is attached. So are you sure about this?
>>
> 
> Indeed, I have missed that one. I will remove those statements then.

I think you need to have something in the commit message explaining why 
you are ignoring the balancing for the SMMU.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Dec 31 15:35:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2025 15:35:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1194594.1512955 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vayEE-0001vB-EQ; Wed, 31 Dec 2025 15:35:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1194594.1512955; Wed, 31 Dec 2025 15:35:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vayEE-0001v4-BZ; Wed, 31 Dec 2025 15:35:14 +0000
Received: by outflank-mailman (input) for mailman id 1194594;
 Wed, 31 Dec 2025 15:35:13 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vayED-0001uy-KO
 for xen-devel@lists.xenproject.org; Wed, 31 Dec 2025 15:35:13 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vayEC-001IGV-39;
 Wed, 31 Dec 2025 15:35:13 +0000
Received: from [213.226.64.151] (helo=[192.168.8.236])
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vayED-001EH7-08;
 Wed, 31 Dec 2025 15:35:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:
	References:Cc:To:From:Subject:MIME-Version:Date:Message-ID;
	bh=CihMYYJbpoIXf277OYZHUjp/wj51Xq3PLyghtTYVVSY=; b=jU31Z53S9Cd0OoJ3ERjQKE1WOq
	eJ9ADpVlMg0p/YLf/3nsdJiJjYzwWRX3DswBq8rgyVNEjunz1QBUpXFkTYE+a7EzdXj/Gkcd/+kpr
	U6TORZMq9wQjmVKeFCvOQ/CbYft8ZopMtqhUnlVrZfaVxpJzRun/sdxBKDhW6Joffwfg=;
Message-ID: <584bcb9e-ca3a-442a-9b6c-bdb5fb5fb8f4@xen.org>
Date: Wed, 31 Dec 2025 15:35:10 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 03/12] xen/arm: gic-v3: Implement GICv3 suspend/resume
 functions
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
To: Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org,
 Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1765472890.git.mykola_kvach@epam.com>
 <9f084beff76e40fed2138ba2d59145a96b930c63.1765472890.git.mykola_kvach@epam.com>
 <a2be5ae1-7e4a-4137-9e36-6c5845a93ca1@xen.org>
In-Reply-To: <a2be5ae1-7e4a-4137-9e36-6c5845a93ca1@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 26/12/2025 12:39, Julien Grall wrote:
> Hi Mykola,
> 
> On 11/12/2025 18:43, Mykola Kvach wrote:
>> From: Mykola Kvach <mykola_kvach@epam.com>
>>
>> System suspend may lead to a state where GIC would be powered down.
>> Therefore, Xen should save/restore the context of GIC on suspend/resume.
>>
>> Note that the context consists of states of registers which are
>> controlled by the hypervisor. Other GIC registers which are accessible
>> by guests are saved/restored on context switch.
>>
>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>> ---
>> Changes in V7:
>> - restore LPI regs on resume
>> - add timeout during redist disabling
>> - squash with suspend/resume handling for GICv3 eSPI registers
>> - drop ITS guard paths so suspend/resume always runs; switch missing ctx
>>    allocation to panic
>> - trim TODO comments; narrow redistributor storage to PPI icfgr
>> - keep distributor context allocation even without ITS; adjust resume
>>    to use GENMASK(31, 0) for clearing enables
>> - drop storage of the SGI configuration register, as SGIs are always
>>    edge-triggered
>> ---
>>   xen/arch/arm/gic-v3-lpi.c              |   3 +
>>   xen/arch/arm/gic-v3.c                  | 319 ++++++++++++++++++++++++-
>>   xen/arch/arm/include/asm/gic_v3_defs.h |   1 +
>>   3 files changed, 320 insertions(+), 3 deletions(-)
>>
>> diff --git a/xen/arch/arm/gic-v3-lpi.c b/xen/arch/arm/gic-v3-lpi.c
>> index de5052e5cf..61a6e18303 100644
>> --- a/xen/arch/arm/gic-v3-lpi.c
>> +++ b/xen/arch/arm/gic-v3-lpi.c
>> @@ -391,6 +391,9 @@ static int cpu_callback(struct notifier_block 
>> *nfb, unsigned long action,
>>       switch ( action )
>>       {
>>       case CPU_UP_PREPARE:
>> +        if ( system_state == SYS_STATE_resume )
>> +            break;
> 
> Do we need this check because we don't free the LPI pending table when 
> the CPU is turned off?
> 
> If so, don't we already have a problem for CPU hotplug because the 
> percpu area will be freed but not the pending table?

Looking at [1], we don't seem to support CPU OFF when the GICv3 ITS is 
enabled. So this change could be delayed. But CC Mykyta for awareness.

Cheers,

[1] 
https://lore.kernel.org/48bafdb8e6269a3d958065c6a1062ce2736632a0.1762939773.git.mykyta_poturai@epam.com

> 
> Cheers,
> 

-- 
Julien Grall



